From c97b1a08ea7a1e16c1a26c2416f2284a245659f3 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:09:01 -0700 Subject: [PATCH 01/18] feat(agoratoken): little-endian packing primitives --- internal/agoratoken/pack.go | 33 ++++++++++++++++++++++++++++++++ internal/agoratoken/pack_test.go | 27 ++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 internal/agoratoken/pack.go create mode 100644 internal/agoratoken/pack_test.go diff --git a/internal/agoratoken/pack.go b/internal/agoratoken/pack.go new file mode 100644 index 0000000..79a29a2 --- /dev/null +++ b/internal/agoratoken/pack.go @@ -0,0 +1,33 @@ +package agoratoken + +import ( + "bytes" + "encoding/binary" + "sort" +) + +func packUint16(buf *bytes.Buffer, v uint16) { + _ = binary.Write(buf, binary.LittleEndian, v) +} + +func packUint32(buf *bytes.Buffer, v uint32) { + _ = binary.Write(buf, binary.LittleEndian, v) +} + +func packString(buf *bytes.Buffer, s string) { + packUint16(buf, uint16(len(s))) + buf.WriteString(s) +} + +func packMapUint32(buf *bytes.Buffer, m map[uint16]uint32) { + packUint16(buf, uint16(len(m))) + keys := make([]int, 0, len(m)) + for k := range m { + keys = append(keys, int(k)) + } + sort.Ints(keys) + for _, k := range keys { + packUint16(buf, uint16(k)) + packUint32(buf, m[uint16(k)]) + } +} diff --git a/internal/agoratoken/pack_test.go b/internal/agoratoken/pack_test.go new file mode 100644 index 0000000..a51ff83 --- /dev/null +++ b/internal/agoratoken/pack_test.go @@ -0,0 +1,27 @@ +package agoratoken + +import ( + "bytes" + "encoding/hex" + "testing" +) + +func TestPackPrimitives(t *testing.T) { + var buf bytes.Buffer + packUint16(&buf, 0x0102) + packUint32(&buf, 0x03040506) + packString(&buf, "ab") + // uint16 LE: 02 01 | uint32 LE: 06 05 04 03 | len16 LE: 02 00 | "ab": 61 62 + if got := hex.EncodeToString(buf.Bytes()); got != "0201060504030200"+"6162" { + t.Fatalf("packing mismatch: %s", got) + } +} + +func TestPackMapUint32SortedByKey(t *testing.T) { + var buf bytes.Buffer + packMapUint32(&buf, map[uint16]uint32{2: 200, 1: 100}) + // count 02 00 | key1 01 00 val 64 00 00 00 | key2 02 00 val C8 00 00 00 + if got := hex.EncodeToString(buf.Bytes()); got != "0200"+"0100"+"64000000"+"0200"+"c8000000" { + t.Fatalf("map packing must be key-sorted, got: %s", got) + } +} From 52a35da1f5fbd29dec7f90f736aca426b1842c19 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:14:22 -0700 Subject: [PATCH 02/18] feat(agoratoken): AccessToken2 builder with RTC+RTM services Implements the version-007 Agora AccessToken2 builder producing a single token carrying both an RTC service (join + publish privileges) and an RTM service (login privilege), with a golden-vector test verified against the AgoraIO/Tools reference implementation. Co-Authored-By: Claude Sonnet 4.6 --- internal/agoratoken/accesstoken2.go | 163 +++++++++++++++++++++++ internal/agoratoken/accesstoken2_test.go | 78 +++++++++++ 2 files changed, 241 insertions(+) create mode 100644 internal/agoratoken/accesstoken2.go create mode 100644 internal/agoratoken/accesstoken2_test.go diff --git a/internal/agoratoken/accesstoken2.go b/internal/agoratoken/accesstoken2.go new file mode 100644 index 0000000..6d729ed --- /dev/null +++ b/internal/agoratoken/accesstoken2.go @@ -0,0 +1,163 @@ +package agoratoken + +import ( + "bytes" + "compress/zlib" + "crypto/hmac" + "crypto/rand" + "crypto/sha256" + "encoding/base64" + "encoding/binary" + "math/big" + "sort" + "strconv" +) + +const version2 = "007" + +const ( + serviceTypeRtc uint16 = 1 + serviceTypeRtm uint16 = 2 +) + +// RTC privileges. +const ( + privJoinChannel uint16 = 1 + privPublishAudioStream uint16 = 2 + privPublishVideoStream uint16 = 3 + privPublishDataStream uint16 = 4 +) + +// RTM privileges. +const privRtmLogin uint16 = 1 + +type service struct { + typ uint16 + privileges map[uint16]uint32 + packExtra func(buf *bytes.Buffer) +} + +func (s *service) pack(buf *bytes.Buffer) { + packUint16(buf, s.typ) + packMapUint32(buf, s.privileges) + if s.packExtra != nil { + s.packExtra(buf) + } +} + +// AccessToken2 builds a version-007 Agora token. salt/issueTs are fields so +// tests can pin them; production callers use NewAccessToken2 which seeds a +// cryptographically-random salt. +type AccessToken2 struct { + appID string + appCert string + issueTs uint32 + expire uint32 + salt uint32 + services map[uint16]*service +} + +// NewAccessToken2 seeds a random salt. issueTs is the token issue time (unix +// seconds); expire is seconds-from-issue for the token envelope. +func NewAccessToken2(appID, appCert string, issueTs, expire uint32) *AccessToken2 { + n, _ := rand.Int(rand.Reader, big.NewInt(0xFFFFFFFF)) + return &AccessToken2{ + appID: appID, + appCert: appCert, + issueTs: issueTs, + expire: expire, + salt: uint32(n.Int64()) + 1, + services: map[uint16]*service{}, + } +} + +// AddRtcService registers RTC join+publish privileges for uid on channel, each +// expiring at privilegeExpire (unix seconds). +func (t *AccessToken2) AddRtcService(channel string, uid uint32, privilegeExpire uint32) { + uidStr := "" + if uid != 0 { + uidStr = strconv.FormatUint(uint64(uid), 10) + } + svc := &service{ + typ: serviceTypeRtc, + privileges: map[uint16]uint32{ + privJoinChannel: privilegeExpire, + privPublishAudioStream: privilegeExpire, + privPublishVideoStream: privilegeExpire, + privPublishDataStream: privilegeExpire, + }, + } + svc.packExtra = func(buf *bytes.Buffer) { + packString(buf, channel) + packString(buf, uidStr) + } + t.services[serviceTypeRtc] = svc +} + +// AddRtmService registers an RTM login privilege for userID. +func (t *AccessToken2) AddRtmService(userID string, privilegeExpire uint32) { + svc := &service{ + typ: serviceTypeRtm, + privileges: map[uint16]uint32{privRtmLogin: privilegeExpire}, + } + svc.packExtra = func(buf *bytes.Buffer) { + packString(buf, userID) + } + t.services[serviceTypeRtm] = svc +} + +func hmacSha256(key, msg []byte) []byte { + m := hmac.New(sha256.New, key) + m.Write(msg) + return m.Sum(nil) +} + +func uint32LE(v uint32) []byte { + b := make([]byte, 4) + binary.LittleEndian.PutUint32(b, v) + return b +} + +// sign derives the per-token signing key: HMAC(key=issueTs, msg=cert) then +// HMAC(key=salt, msg=prev). +func (t *AccessToken2) sign() []byte { + h1 := hmacSha256(uint32LE(t.issueTs), []byte(t.appCert)) + return hmacSha256(uint32LE(t.salt), h1) +} + +// Build returns the "007"-prefixed base64 token. +func (t *AccessToken2) Build() (string, error) { + signing := t.sign() + + var m bytes.Buffer + packString(&m, t.appID) + packUint32(&m, t.issueTs) + packUint32(&m, t.expire) + packUint32(&m, t.salt) + packUint16(&m, uint16(len(t.services))) + keys := make([]int, 0, len(t.services)) + for k := range t.services { + keys = append(keys, int(k)) + } + sort.Ints(keys) + for _, k := range keys { + t.services[uint16(k)].pack(&m) + } + + signature := hmacSha256(signing, m.Bytes()) + + var content bytes.Buffer + packString(&content, string(signature)) + content.Write(m.Bytes()) + + var zbuf bytes.Buffer + zw := zlib.NewWriter(&zbuf) + if _, err := zw.Write(content.Bytes()); err != nil { + return "", err + } + if err := zw.Close(); err != nil { + return "", err + } + + return version2 + base64.StdEncoding.EncodeToString(zbuf.Bytes()), nil +} diff --git a/internal/agoratoken/accesstoken2_test.go b/internal/agoratoken/accesstoken2_test.go new file mode 100644 index 0000000..b257af0 --- /dev/null +++ b/internal/agoratoken/accesstoken2_test.go @@ -0,0 +1,78 @@ +package agoratoken + +import ( + "compress/zlib" + "encoding/base64" + "io" + "strings" + "testing" +) + +const ( + tvAppID = "970CA35de60c44645bbae8a215061b33" + tvCert = "5CFd2fd1755d40ecb72977518be15d3b" + tvChan = "7d72365eb983485397e3e3f9d460bdda" + tvUID = uint32(2882341273) +) + +// Authoritative token produced by a standalone reproduction of the Agora +// AccessToken2 reference implementation (AgoraIO/Tools +// DynamicKey/AgoraDynamicKey/go/src/accesstoken2/accesstoken.go) with the +// fixed test inputs below (issueTs=1111111111, expire=600, salt=1, RTC/RTM +// privilegeExpire=1111111711, RTM userID="2882341273"). +const wantCombined = "007eJxSYGj4W7VvnUzhlLlmvx7eS1LmbY/VOc4pMTVc89nr92tPb6hRYLA0N3B2NDZNSTUzSDYxMTMxTUpKTLVINDI0NTAzTDI2Pm5q5RTBxMDAyMDAwMTAyMDCwMggb2HlxAQmmcEkC5hUYDBPMTcyNjNNTbK0MDaxMDW2NE81TjVOs0wxMTNISklJ5GIwsrAwMjYxNDI3BpkFMQlZFBAAAP//xn0shw==" + +func fixedToken() *AccessToken2 { + tk := NewAccessToken2(tvAppID, tvCert, 1111111111, 600) + tk.salt = 1 // deterministic salt for tests + tk.AddRtcService(tvChan, tvUID, 1111111711) + tk.AddRtmService("2882341273", 1111111711) + return tk +} + +func TestBuildMatchesGoldenVector(t *testing.T) { + got, err := fixedToken().Build() + if err != nil { + t.Fatal(err) + } + if got != wantCombined { + t.Fatalf("token mismatch:\n got=%s\nwant=%s", got, wantCombined) + } +} + +func TestTokenDecodesToBothServices(t *testing.T) { + tok, _ := fixedToken().Build() + if !strings.HasPrefix(tok, "007") { + t.Fatalf("missing 007 version prefix") + } + raw, err := base64.StdEncoding.DecodeString(tok[3:]) + if err != nil { + t.Fatal(err) + } + zr, err := zlib.NewReader(strings.NewReader(string(raw))) + if err != nil { + t.Fatal(err) + } + if _, err := io.ReadAll(zr); err != nil { + t.Fatalf("payload not valid zlib: %v", err) + } + tk := fixedToken() + if _, ok := tk.services[serviceTypeRtc]; !ok { + t.Fatalf("RTC service missing") + } + if _, ok := tk.services[serviceTypeRtm]; !ok { + t.Fatalf("RTM service missing") + } +} + +func TestRandomSaltProducesDifferentTokens(t *testing.T) { + a := NewAccessToken2(tvAppID, tvCert, 1111111111, 600) + a.AddRtcService(tvChan, tvUID, 1111111711) + b := NewAccessToken2(tvAppID, tvCert, 1111111111, 600) + b.AddRtcService(tvChan, tvUID, 1111111711) + ta, _ := a.Build() + tb, _ := b.Build() + if ta == tb { + t.Fatalf("expected random salt to vary output") + } +} From 7775d155cd78e2c4e10dce3fe20bed4519fca1b5 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:18:42 -0700 Subject: [PATCH 03/18] fix(agoratoken): handle rand failure explicitly; drop vacuous service assertions --- internal/agoratoken/accesstoken2.go | 5 ++++- internal/agoratoken/accesstoken2_test.go | 7 ------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/internal/agoratoken/accesstoken2.go b/internal/agoratoken/accesstoken2.go index 6d729ed..7c208c4 100644 --- a/internal/agoratoken/accesstoken2.go +++ b/internal/agoratoken/accesstoken2.go @@ -60,7 +60,10 @@ type AccessToken2 struct { // NewAccessToken2 seeds a random salt. issueTs is the token issue time (unix // seconds); expire is seconds-from-issue for the token envelope. func NewAccessToken2(appID, appCert string, issueTs, expire uint32) *AccessToken2 { - n, _ := rand.Int(rand.Reader, big.NewInt(0xFFFFFFFF)) + n, err := rand.Int(rand.Reader, big.NewInt(0xFFFFFFFF)) + if err != nil { + panic("agoratoken: crypto/rand failed: " + err.Error()) + } return &AccessToken2{ appID: appID, appCert: appCert, diff --git a/internal/agoratoken/accesstoken2_test.go b/internal/agoratoken/accesstoken2_test.go index b257af0..c97cefc 100644 --- a/internal/agoratoken/accesstoken2_test.go +++ b/internal/agoratoken/accesstoken2_test.go @@ -56,13 +56,6 @@ func TestTokenDecodesToBothServices(t *testing.T) { if _, err := io.ReadAll(zr); err != nil { t.Fatalf("payload not valid zlib: %v", err) } - tk := fixedToken() - if _, ok := tk.services[serviceTypeRtc]; !ok { - t.Fatalf("RTC service missing") - } - if _, ok := tk.services[serviceTypeRtm]; !ok { - t.Fatalf("RTM service missing") - } } func TestRandomSaltProducesDifferentTokens(t *testing.T) { From 0f9f6bd3c08b7551b449b5de9ce7c54f762f270d Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:21:37 -0700 Subject: [PATCH 04/18] feat(convoai): register convoai playground command skeleton Adds the `agora convoai playground` command group with all required flags (--channel, --port, --uid, --agent-uid, --ttl, --no-open) and a stub RunE body; later tasks will fill in the server/token logic. Co-Authored-By: Claude Sonnet 4.6 --- internal/cli/commands.go | 1 + internal/cli/convoai.go | 55 ++++++++++++++++++++++++++++++++++++ internal/cli/convoai_test.go | 32 +++++++++++++++++++++ 3 files changed, 88 insertions(+) create mode 100644 internal/cli/convoai.go create mode 100644 internal/cli/convoai_test.go diff --git a/internal/cli/commands.go b/internal/cli/commands.go index 8acf710..b4c5dcc 100644 --- a/internal/cli/commands.go +++ b/internal/cli/commands.go @@ -108,6 +108,7 @@ Use "agora --help --all --json" for a machine-readable command tree (agent tooli root.AddCommand(a.buildUpgradeCommand()) root.AddCommand(a.buildOpenCommand()) root.AddCommand(a.buildMCPCommand()) + root.AddCommand(a.buildConvoaiCommand()) root.AddCommand(a.buildDoctorCommand()) root.AddCommand(a.buildEnvHelpCommand()) root.AddCommand(a.buildSkillsCommand()) diff --git a/internal/cli/convoai.go b/internal/cli/convoai.go new file mode 100644 index 0000000..d38225e --- /dev/null +++ b/internal/cli/convoai.go @@ -0,0 +1,55 @@ +package cli + +import "github.com/spf13/cobra" + +type playgroundOptions struct { + channel string + port int + uid int64 + agentUID int64 + ttl string + noOpen bool +} + +func (a *App) buildConvoaiCommand() *cobra.Command { + group := &cobra.Command{ + Use: "convoai", + Short: "Conversational AI developer tools", + Long: "Commands for building and testing Agora Conversational AI agents.", + } + group.AddCommand(a.buildConvoaiPlaygroundCommand()) + return group +} + +func (a *App) buildConvoaiPlaygroundCommand() *cobra.Command { + opts := &playgroundOptions{} + cmd := &cobra.Command{ + Use: "playground", + Short: "Start a local frontend to talk to your Conversational AI agent", + Long: `Serve a local web frontend that joins an RTC channel so you can talk to a +Conversational AI agent you start separately (e.g. a Python script on the +Agora Agents SDK). Point your agent at the same App ID and --channel.`, + Example: example(` + agora convoai playground --channel my-dev-room + agora convoai playground --channel my-dev-room --port 8787 --no-open +`), + RunE: func(cmd *cobra.Command, args []string) error { + return a.runConvoaiPlayground(cmd, opts) + }, + } + f := cmd.Flags() + f.StringVar(&opts.channel, "channel", "", "RTC channel to join (required; use the same value for your agent)") + f.IntVar(&opts.port, "port", 8787, "local server port (auto-increments if busy unless explicitly set)") + f.Int64Var(&opts.uid, "uid", 0, "browser RTC uid (0 = generate a non-zero uid)") + f.Int64Var(&opts.agentUID, "agent-uid", 0, "reserved agent uid printed in the wire block (0 = generate)") + f.StringVar(&opts.ttl, "ttl", "1h", "token lifetime") + f.BoolVar(&opts.noOpen, "no-open", false, "do not open the browser automatically") + _ = cmd.MarkFlagRequired("channel") + return cmd +} + +// runConvoaiPlayground is completed in later tasks. Temporary stub so the +// tree registers and tests compile. +func (a *App) runConvoaiPlayground(cmd *cobra.Command, opts *playgroundOptions) error { + return nil +} diff --git a/internal/cli/convoai_test.go b/internal/cli/convoai_test.go new file mode 100644 index 0000000..2df7260 --- /dev/null +++ b/internal/cli/convoai_test.go @@ -0,0 +1,32 @@ +package cli + +import ( + "testing" + + "github.com/spf13/cobra" +) + +func TestConvoaiPlaygroundIsRegistered(t *testing.T) { + // Use newTestApp (defined in mcp_test.go) to boot a real App and obtain + // its fully-wired root cobra command, matching the pattern used by sibling + // test files in this package. + a := newTestApp(t) + root := a.buildRoot() + + cmd, _, err := root.Find([]string{"convoai", "playground"}) + if err != nil { + t.Fatalf("convoai playground not found: %v", err) + } + if cmd.Name() != "playground" { + t.Fatalf("expected playground, got %q", cmd.Name()) + } + for _, name := range []string{"channel", "port", "uid", "agent-uid", "ttl", "no-open"} { + if cmd.Flag(name) == nil { + t.Fatalf("missing --%s flag", name) + } + } + // --channel must be marked required. + if ann := cmd.Flag("channel").Annotations[cobra.BashCompOneRequiredFlag]; len(ann) == 0 { + t.Fatalf("--channel must be required") + } +} From bcc253c3b701e58a4cb69a93df32c3c958b2b540 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:26:12 -0700 Subject: [PATCH 05/18] feat(convoai): startup resolution, channel/uid validation, convoai readiness Add pure helper functions (validateChannelName, resolveUID, resolveAgentUID, parseTTLSeconds, featureEnabled) plus resolvePlaygroundSession which resolves the active project, enforces an app certificate, and gates on the convoai feature being enabled before returning a populated playgroundSession. Co-Authored-By: Claude Sonnet 4.6 --- internal/cli/convoai.go | 126 ++++++++++++++++++++++++++++++++++- internal/cli/convoai_test.go | 32 +++++++++ 2 files changed, 157 insertions(+), 1 deletion(-) diff --git a/internal/cli/convoai.go b/internal/cli/convoai.go index d38225e..4237961 100644 --- a/internal/cli/convoai.go +++ b/internal/cli/convoai.go @@ -1,6 +1,14 @@ package cli -import "github.com/spf13/cobra" +import ( + "crypto/rand" + "fmt" + "math/big" + "strings" + "time" + + "github.com/spf13/cobra" +) type playgroundOptions struct { channel string @@ -48,6 +56,122 @@ Agora Agents SDK). Point your agent at the same App ID and --channel.`, return cmd } +// Agora channel-name rules: 1–64 bytes, ASCII printable minus space and a +// small reserved set. Mirrors the documented allowed set. +const channelAllowedPunct = "!#$%&()+-:;<=.>?@[]^_{}|~," + +func validateChannelName(name string) error { + if name == "" { + return &cliError{Message: "--channel is required and must not be empty", Code: "CHANNEL_INVALID"} + } + if len(name) > 64 { + return &cliError{Message: "--channel must be at most 64 bytes", Code: "CHANNEL_INVALID"} + } + for _, r := range name { + ok := (r >= 'a' && r <= 'z') || (r >= 'A' && r <= 'Z') || (r >= '0' && r <= '9') || + strings.ContainsRune(channelAllowedPunct, r) + if !ok { + return &cliError{Message: fmt.Sprintf("--channel contains an unsupported character: %q", r), Code: "CHANNEL_INVALID"} + } + } + return nil +} + +func randInt(min, max int64) int64 { + n, err := rand.Int(rand.Reader, big.NewInt(max-min+1)) + if err != nil { + panic("convoai: crypto/rand failed: " + err.Error()) + } + return min + n.Int64() +} + +func resolveUID(explicit int64) uint32 { + if explicit > 0 { + return uint32(explicit) + } + return uint32(randInt(1000, 9999999)) +} + +func resolveAgentUID(explicit int64) uint32 { + if explicit > 0 { + return uint32(explicit) + } + return uint32(randInt(10000000, 99999999)) +} + +func parseTTLSeconds(ttl string) (uint32, error) { + d, err := time.ParseDuration(ttl) + if err != nil { + return 0, &cliError{Message: fmt.Sprintf("invalid --ttl %q: %v", ttl, err), Code: "TTL_INVALID"} + } + if d <= 0 { + return 0, &cliError{Message: "--ttl must be positive", Code: "TTL_INVALID"} + } + return uint32(d.Seconds()), nil +} + +type playgroundSession struct { + appID string + appCert string + channel string + uid uint32 + agentUID uint32 + ttl uint32 // seconds + port int + explicitPort bool + noOpen bool +} + +func featureEnabled(features []featureItem, id string) bool { + for _, item := range features { + if item.Feature == id { + return item.Status == "enabled" || item.Status == "included" + } + } + return false +} + +func (a *App) resolvePlaygroundSession(cmd *cobra.Command, opts *playgroundOptions) (*playgroundSession, error) { + if err := validateChannelName(opts.channel); err != nil { + return nil, err + } + ttl, err := parseTTLSeconds(opts.ttl) + if err != nil { + return nil, err + } + target, err := a.resolveProjectTarget("") + if err != nil { + return nil, err + } + if target.project.SignKey == nil || *target.project.SignKey == "" { + return nil, &cliError{ + Message: fmt.Sprintf("project %q does not have an app certificate. Enable one in Agora Console or use a different project with `agora project use`.", target.project.Name), + Code: "PROJECT_NO_CERTIFICATE", + } + } + features, err := a.listProjectFeatures(target.project, target.region) + if err != nil { + return nil, err + } + if !featureEnabled(features, "convoai") { + return nil, &cliError{ + Message: "project is not Conversational-AI ready. Run `agora project feature enable convoai` first.", + Code: "CONVOAI_NOT_READY", + } + } + return &playgroundSession{ + appID: target.project.AppID, + appCert: *target.project.SignKey, + channel: opts.channel, + uid: resolveUID(opts.uid), + agentUID: resolveAgentUID(opts.agentUID), + ttl: ttl, + port: opts.port, + explicitPort: cmd.Flags().Changed("port"), + noOpen: opts.noOpen, + }, nil +} + // runConvoaiPlayground is completed in later tasks. Temporary stub so the // tree registers and tests compile. func (a *App) runConvoaiPlayground(cmd *cobra.Command, opts *playgroundOptions) error { diff --git a/internal/cli/convoai_test.go b/internal/cli/convoai_test.go index 2df7260..9de5191 100644 --- a/internal/cli/convoai_test.go +++ b/internal/cli/convoai_test.go @@ -1,11 +1,43 @@ package cli import ( + "strings" "testing" "github.com/spf13/cobra" ) +func TestValidateChannelName(t *testing.T) { + if err := validateChannelName(""); err == nil { + t.Fatal("empty channel must be rejected") + } + if err := validateChannelName(strings.Repeat("a", 65)); err == nil { + t.Fatal("channel over 64 bytes must be rejected") + } + if err := validateChannelName("bad space"); err == nil { + t.Fatal("space must be rejected") + } + if err := validateChannelName("my-dev_room.1"); err != nil { + t.Fatalf("valid channel rejected: %v", err) + } +} + +func TestResolveUIDGeneratesNonZero(t *testing.T) { + if got := resolveUID(0); got == 0 { + t.Fatal("generated uid must be non-zero") + } + if got := resolveUID(42); got != 42 { + t.Fatalf("explicit uid must pass through, got %d", got) + } +} + +func TestResolveDisjointAgentUID(t *testing.T) { + got := resolveAgentUID(0) + if got < 10000000 || got > 99999999 { + t.Fatalf("generated agent uid out of reserved range: %d", got) + } +} + func TestConvoaiPlaygroundIsRegistered(t *testing.T) { // Use newTestApp (defined in mcp_test.go) to boot a real App and obtain // its fully-wired root cobra command, matching the pattern used by sibling From b7cd90ec34259f0013ede06dd5737551f02a1010 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:32:32 -0700 Subject: [PATCH 06/18] feat(convoai): /api/get_config combined-token handler with loopback guard Co-Authored-By: Claude Sonnet 4.6 --- internal/cli/convoai_server.go | 89 ++++++++++++++++++++++++++++++++++ internal/cli/convoai_test.go | 74 ++++++++++++++++++++++++++++ 2 files changed, 163 insertions(+) create mode 100644 internal/cli/convoai_server.go diff --git a/internal/cli/convoai_server.go b/internal/cli/convoai_server.go new file mode 100644 index 0000000..b7f40af --- /dev/null +++ b/internal/cli/convoai_server.go @@ -0,0 +1,89 @@ +package cli + +import ( + "encoding/json" + "io/fs" + "net" + "net/http" + "strconv" + "time" + + "github.com/AgoraIO/cli/internal/agoratoken" +) + +type playgroundHandler struct { + sess *playgroundSession + static http.Handler // serves embedded assets; nil in unit tests +} + +func newPlaygroundHandler(sess *playgroundSession, assets fs.FS) http.Handler { + h := &playgroundHandler{sess: sess} + if assets != nil { + h.static = http.FileServer(http.FS(assets)) + } + mux := http.NewServeMux() + mux.HandleFunc("/api/get_config", h.handleGetConfig) + mux.HandleFunc("/", h.handleStatic) + return loopbackGuard(mux) +} + +// loopbackGuard rejects requests whose Host is not loopback (defeats DNS-rebinding). +func loopbackGuard(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + host := r.Host + if h, _, err := net.SplitHostPort(r.Host); err == nil { + host = h + } + if host != "127.0.0.1" && host != "localhost" && host != "::1" { + http.Error(w, "forbidden host", http.StatusForbidden) + return + } + next.ServeHTTP(w, r) + }) +} + +func (h *playgroundHandler) handleStatic(w http.ResponseWriter, r *http.Request) { + if h.static == nil { + http.NotFound(w, r) + return + } + h.static.ServeHTTP(w, r) +} + +func (h *playgroundHandler) handleGetConfig(w http.ResponseWriter, r *http.Request) { + uid := h.sess.uid + if q := r.URL.Query().Get("uid"); q != "" { + if parsed, err := strconv.ParseUint(q, 10, 32); err == nil && parsed != 0 { + uid = uint32(parsed) + } + } + + issue := uint32(time.Now().Unix()) + tk := agoratoken.NewAccessToken2(h.sess.appID, h.sess.appCert, issue, h.sess.ttl) + privExpire := issue + h.sess.ttl + tk.AddRtcService(h.sess.channel, uid, privExpire) + tk.AddRtmService(strconv.FormatUint(uint64(uid), 10), privExpire) + token, err := tk.Build() + if err != nil { + writeJSON(w, http.StatusInternalServerError, map[string]any{"code": 1, "msg": err.Error()}) + return + } + + writeJSON(w, http.StatusOK, map[string]any{ + "code": 0, + "data": map[string]any{ + "app_id": h.sess.appID, + "token": token, + "uid": strconv.FormatUint(uint64(uid), 10), + "channel_name": h.sess.channel, + "agent_uid": strconv.FormatUint(uint64(h.sess.agentUID), 10), + }, + }) +} + +func writeJSON(w http.ResponseWriter, status int, body any) { + w.Header().Set("Content-Type", "application/json") + // Same-origin only: no Access-Control-Allow-Origin header is emitted. + w.WriteHeader(status) + _ = json.NewEncoder(w).Encode(body) +} diff --git a/internal/cli/convoai_test.go b/internal/cli/convoai_test.go index 9de5191..d710962 100644 --- a/internal/cli/convoai_test.go +++ b/internal/cli/convoai_test.go @@ -1,6 +1,9 @@ package cli import ( + "encoding/json" + "net/http" + "net/http/httptest" "strings" "testing" @@ -62,3 +65,74 @@ func TestConvoaiPlaygroundIsRegistered(t *testing.T) { t.Fatalf("--channel must be required") } } + +func TestGetConfigMintsToken(t *testing.T) { + sess := &playgroundSession{ + appID: "970CA35de60c44645bbae8a215061b33", + appCert: "5CFd2fd1755d40ecb72977518be15d3b", + channel: "my-dev-room", + uid: 12345, + agentUID: 87654321, + ttl: 3600, + } + h := newPlaygroundHandler(sess, nil) + req := httptest.NewRequest(http.MethodGet, "/api/get_config", nil) + req.Host = "127.0.0.1:8787" + rec := httptest.NewRecorder() + h.ServeHTTP(rec, req) + if rec.Code != http.StatusOK { + t.Fatalf("status = %d", rec.Code) + } + var env struct { + Code int `json:"code"` + Data struct { + AppID string `json:"app_id"` + Token string `json:"token"` + UID string `json:"uid"` + ChannelName string `json:"channel_name"` + AgentUID string `json:"agent_uid"` + } `json:"data"` + } + if err := json.Unmarshal(rec.Body.Bytes(), &env); err != nil { + t.Fatal(err) + } + if env.Code != 0 || len(env.Data.Token) < 3 || env.Data.Token[:3] != "007" { + t.Fatalf("bad envelope: %+v", env) + } + if env.Data.UID != "12345" || env.Data.ChannelName != "my-dev-room" || env.Data.AgentUID != "87654321" { + t.Fatalf("field mismatch: %+v", env.Data) + } + if env.Data.AppID != sess.appID { + t.Fatalf("app_id mismatch: %s", env.Data.AppID) + } +} + +func TestGetConfigRejectsNonLoopbackHost(t *testing.T) { + sess := &playgroundSession{appID: "a", appCert: "b", channel: "c", uid: 1, ttl: 3600} + h := newPlaygroundHandler(sess, nil) + req := httptest.NewRequest(http.MethodGet, "/api/get_config", nil) + req.Host = "evil.example.com" + rec := httptest.NewRecorder() + h.ServeHTTP(rec, req) + if rec.Code != http.StatusForbidden { + t.Fatalf("expected 403 for non-loopback Host, got %d", rec.Code) + } +} + +func TestGetConfigUIDOverride(t *testing.T) { + sess := &playgroundSession{appID: "a", appCert: "b", channel: "c", uid: 12345, ttl: 3600} + h := newPlaygroundHandler(sess, nil) + req := httptest.NewRequest(http.MethodGet, "/api/get_config?uid=777", nil) + req.Host = "localhost:8787" + rec := httptest.NewRecorder() + h.ServeHTTP(rec, req) + var env struct { + Data struct { + UID string `json:"uid"` + } `json:"data"` + } + _ = json.Unmarshal(rec.Body.Bytes(), &env) + if env.Data.UID != "777" { + t.Fatalf("expected uid override 777, got %s", env.Data.UID) + } +} From e6ff587e243e87ca781c30242a663c8add5aab21 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:37:32 -0700 Subject: [PATCH 07/18] fix(convoai): case-insensitive loopback host check; uid=0 fallthrough test --- internal/cli/convoai_server.go | 6 ++++-- internal/cli/convoai_test.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/internal/cli/convoai_server.go b/internal/cli/convoai_server.go index b7f40af..afc4139 100644 --- a/internal/cli/convoai_server.go +++ b/internal/cli/convoai_server.go @@ -6,6 +6,7 @@ import ( "net" "net/http" "strconv" + "strings" "time" "github.com/AgoraIO/cli/internal/agoratoken" @@ -30,10 +31,11 @@ func newPlaygroundHandler(sess *playgroundSession, assets fs.FS) http.Handler { // loopbackGuard rejects requests whose Host is not loopback (defeats DNS-rebinding). func loopbackGuard(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - host := r.Host - if h, _, err := net.SplitHostPort(r.Host); err == nil { + host := strings.ToLower(r.Host) + if h, _, err := net.SplitHostPort(host); err == nil { host = h } + host = strings.TrimSuffix(host, ".") if host != "127.0.0.1" && host != "localhost" && host != "::1" { http.Error(w, "forbidden host", http.StatusForbidden) return diff --git a/internal/cli/convoai_test.go b/internal/cli/convoai_test.go index d710962..594033b 100644 --- a/internal/cli/convoai_test.go +++ b/internal/cli/convoai_test.go @@ -136,3 +136,33 @@ func TestGetConfigUIDOverride(t *testing.T) { t.Fatalf("expected uid override 777, got %s", env.Data.UID) } } + +func TestGetConfigUIDZeroFallsThrough(t *testing.T) { + sess := &playgroundSession{appID: "a", appCert: "b", channel: "c", uid: 12345, ttl: 3600} + h := newPlaygroundHandler(sess, nil) + req := httptest.NewRequest(http.MethodGet, "/api/get_config?uid=0", nil) + req.Host = "localhost:8787" + rec := httptest.NewRecorder() + h.ServeHTTP(rec, req) + var env struct { + Data struct { + UID string `json:"uid"` + } `json:"data"` + } + _ = json.Unmarshal(rec.Body.Bytes(), &env) + if env.Data.UID != "12345" { + t.Fatalf("uid=0 must fall through to session uid, got %s", env.Data.UID) + } +} + +func TestGetConfigAcceptsMixedCaseHost(t *testing.T) { + sess := &playgroundSession{appID: "a", appCert: "b", channel: "c", uid: 1, ttl: 3600} + h := newPlaygroundHandler(sess, nil) + req := httptest.NewRequest(http.MethodGet, "/api/get_config", nil) + req.Host = "LOCALHOST:8787" + rec := httptest.NewRecorder() + h.ServeHTTP(rec, req) + if rec.Code != http.StatusOK { + t.Fatalf("mixed-case localhost must be accepted, got %d", rec.Code) + } +} From 69bff981ff2a95a47c36278564a3190de6f2de92 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:40:33 -0700 Subject: [PATCH 08/18] feat(convoai): embed assets, port selection, serve with graceful shutdown Co-Authored-By: Claude Sonnet 4.6 --- internal/cli/convoai.go | 54 ++++++++++++++++++-- internal/cli/convoai_server.go | 21 ++++++++ internal/cli/convoai_test.go | 28 ++++++++++ internal/cli/playground/embed.go | 14 +++++ internal/cli/playground/webassets/index.html | 2 + 5 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 internal/cli/playground/embed.go create mode 100644 internal/cli/playground/webassets/index.html diff --git a/internal/cli/convoai.go b/internal/cli/convoai.go index 4237961..322e685 100644 --- a/internal/cli/convoai.go +++ b/internal/cli/convoai.go @@ -1,13 +1,20 @@ package cli import ( + "context" "crypto/rand" "fmt" "math/big" + "net" + "net/http" + "os" + "os/signal" "strings" "time" "github.com/spf13/cobra" + + "github.com/AgoraIO/cli/internal/cli/playground" ) type playgroundOptions struct { @@ -172,8 +179,49 @@ func (a *App) resolvePlaygroundSession(cmd *cobra.Command, opts *playgroundOptio }, nil } -// runConvoaiPlayground is completed in later tasks. Temporary stub so the -// tree registers and tests compile. func (a *App) runConvoaiPlayground(cmd *cobra.Command, opts *playgroundOptions) error { - return nil + sess, err := a.resolvePlaygroundSession(cmd, opts) + if err != nil { + return err + } + assets, err := playground.Assets() + if err != nil { + return err + } + ln, err := listenPlayground(sess.port, sess.explicitPort) + if err != nil { + return err + } + sess.port = ln.Addr().(*net.TCPAddr).Port + url := fmt.Sprintf("http://127.0.0.1:%d", sess.port) + + srv := &http.Server{Handler: newPlaygroundHandler(sess, assets)} + + a.printPlaygroundStartup(cmd, sess, url) + if !sess.noOpen && a.cfg.BrowserAutoOpen { + _ = openBrowser(url) + } + + ctx, stop := signal.NotifyContext(cmd.Context(), os.Interrupt) + defer stop() + errCh := make(chan error, 1) + go func() { errCh <- srv.Serve(ln) }() + + select { + case <-ctx.Done(): + shutdownCtx, cancel := context.WithTimeout(context.Background(), 3*time.Second) + defer cancel() + return srv.Shutdown(shutdownCtx) + case err := <-errCh: + if err == http.ErrServerClosed { + return nil + } + return err + } +} + +// printPlaygroundStartup is fully implemented in Task 7. Minimal temporary +// version so this task compiles and running the command shows the URL. +func (a *App) printPlaygroundStartup(cmd *cobra.Command, sess *playgroundSession, url string) { + fmt.Fprintf(cmd.OutOrStdout(), "Agora Convoai Playground running at %s (Ctrl-C to stop)\n", url) } diff --git a/internal/cli/convoai_server.go b/internal/cli/convoai_server.go index afc4139..dcc85c8 100644 --- a/internal/cli/convoai_server.go +++ b/internal/cli/convoai_server.go @@ -2,6 +2,7 @@ package cli import ( "encoding/json" + "fmt" "io/fs" "net" "net/http" @@ -89,3 +90,23 @@ func writeJSON(w http.ResponseWriter, status int, body any) { w.WriteHeader(status) _ = json.NewEncoder(w).Encode(body) } + +// listenPlayground binds 127.0.0.1:port. When explicit is false it auto- +// increments up to 20 ports past the requested one; when explicit is true a +// busy port is a hard error. +func listenPlayground(port int, explicit bool) (net.Listener, error) { + max := port + if !explicit { + max = port + 20 + } + for p := port; p <= max; p++ { + ln, err := net.Listen("tcp", fmt.Sprintf("127.0.0.1:%d", p)) + if err == nil { + return ln, nil + } + if explicit { + return nil, fmt.Errorf("port %d is in use", p) + } + } + return nil, fmt.Errorf("no free port found in %d-%d", port, max) +} diff --git a/internal/cli/convoai_test.go b/internal/cli/convoai_test.go index 594033b..9400452 100644 --- a/internal/cli/convoai_test.go +++ b/internal/cli/convoai_test.go @@ -2,6 +2,7 @@ package cli import ( "encoding/json" + "net" "net/http" "net/http/httptest" "strings" @@ -166,3 +167,30 @@ func TestGetConfigAcceptsMixedCaseHost(t *testing.T) { t.Fatalf("mixed-case localhost must be accepted, got %d", rec.Code) } } + +func TestListenFreePortAutoIncrements(t *testing.T) { + ln, err := net.Listen("tcp", "127.0.0.1:0") + if err != nil { + t.Fatal(err) + } + defer ln.Close() + busy := ln.Addr().(*net.TCPAddr).Port + + got, err := listenPlayground(busy, false /* not explicit */) + if err != nil { + t.Fatal(err) + } + defer got.Close() + if got.Addr().(*net.TCPAddr).Port == busy { + t.Fatal("expected auto-increment away from the busy port") + } +} + +func TestListenExplicitBusyPortFails(t *testing.T) { + ln, _ := net.Listen("tcp", "127.0.0.1:0") + defer ln.Close() + busy := ln.Addr().(*net.TCPAddr).Port + if _, err := listenPlayground(busy, true /* explicit */); err == nil { + t.Fatal("explicit busy port must hard-fail") + } +} diff --git a/internal/cli/playground/embed.go b/internal/cli/playground/embed.go new file mode 100644 index 0000000..9fe871e --- /dev/null +++ b/internal/cli/playground/embed.go @@ -0,0 +1,14 @@ +package playground + +import ( + "embed" + "io/fs" +) + +//go:embed webassets +var assets embed.FS + +// Assets returns the built frontend rooted at the webassets directory. +func Assets() (fs.FS, error) { + return fs.Sub(assets, "webassets") +} diff --git a/internal/cli/playground/webassets/index.html b/internal/cli/playground/webassets/index.html new file mode 100644 index 0000000..ba0bee0 --- /dev/null +++ b/internal/cli/playground/webassets/index.html @@ -0,0 +1,2 @@ +Agora Convoai Playground +

Playground assets not built. Run make playground-build.

From 940e41096210165c99d3d571c4af8cac90f1e437 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:43:47 -0700 Subject: [PATCH 09/18] fix(convoai): handle SIGTERM, add ReadHeaderTimeout, correct port comment --- internal/cli/convoai.go | 8 ++++++-- internal/cli/convoai_server.go | 6 +++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/internal/cli/convoai.go b/internal/cli/convoai.go index 322e685..1c1c156 100644 --- a/internal/cli/convoai.go +++ b/internal/cli/convoai.go @@ -10,6 +10,7 @@ import ( "os" "os/signal" "strings" + "syscall" "time" "github.com/spf13/cobra" @@ -195,14 +196,17 @@ func (a *App) runConvoaiPlayground(cmd *cobra.Command, opts *playgroundOptions) sess.port = ln.Addr().(*net.TCPAddr).Port url := fmt.Sprintf("http://127.0.0.1:%d", sess.port) - srv := &http.Server{Handler: newPlaygroundHandler(sess, assets)} + srv := &http.Server{ + Handler: newPlaygroundHandler(sess, assets), + ReadHeaderTimeout: 10 * time.Second, + } a.printPlaygroundStartup(cmd, sess, url) if !sess.noOpen && a.cfg.BrowserAutoOpen { _ = openBrowser(url) } - ctx, stop := signal.NotifyContext(cmd.Context(), os.Interrupt) + ctx, stop := signal.NotifyContext(cmd.Context(), os.Interrupt, syscall.SIGTERM) defer stop() errCh := make(chan error, 1) go func() { errCh <- srv.Serve(ln) }() diff --git a/internal/cli/convoai_server.go b/internal/cli/convoai_server.go index dcc85c8..48f13fd 100644 --- a/internal/cli/convoai_server.go +++ b/internal/cli/convoai_server.go @@ -91,9 +91,9 @@ func writeJSON(w http.ResponseWriter, status int, body any) { _ = json.NewEncoder(w).Encode(body) } -// listenPlayground binds 127.0.0.1:port. When explicit is false it auto- -// increments up to 20 ports past the requested one; when explicit is true a -// busy port is a hard error. +// listenPlayground binds 127.0.0.1:port. When explicit is false it tries the +// requested port and up to 20 following ports; when explicit is true a busy +// port is a hard error. func listenPlayground(port int, explicit bool) (net.Listener, error) { max := port if !explicit { From 1345bbe39ae9e115e468b298f7a642fd29cd4c5d Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:45:55 -0700 Subject: [PATCH 10/18] feat(convoai): wire block and JSON startup envelope Co-Authored-By: Claude Sonnet 4.6 --- internal/cli/convoai.go | 35 ++++++++++++++++++++++++++++++----- internal/cli/convoai_test.go | 14 ++++++++++++++ internal/cli/render.go | 10 ++++++++++ 3 files changed, 54 insertions(+), 5 deletions(-) diff --git a/internal/cli/convoai.go b/internal/cli/convoai.go index 1c1c156..81aa1dc 100644 --- a/internal/cli/convoai.go +++ b/internal/cli/convoai.go @@ -9,6 +9,7 @@ import ( "net/http" "os" "os/signal" + "strconv" "strings" "syscall" "time" @@ -201,7 +202,9 @@ func (a *App) runConvoaiPlayground(cmd *cobra.Command, opts *playgroundOptions) ReadHeaderTimeout: 10 * time.Second, } - a.printPlaygroundStartup(cmd, sess, url) + if err := a.printPlaygroundStartup(cmd, sess, url); err != nil { + return err + } if !sess.noOpen && a.cfg.BrowserAutoOpen { _ = openBrowser(url) } @@ -224,8 +227,30 @@ func (a *App) runConvoaiPlayground(cmd *cobra.Command, opts *playgroundOptions) } } -// printPlaygroundStartup is fully implemented in Task 7. Minimal temporary -// version so this task compiles and running the command shows the URL. -func (a *App) printPlaygroundStartup(cmd *cobra.Command, sess *playgroundSession, url string) { - fmt.Fprintf(cmd.OutOrStdout(), "Agora Convoai Playground running at %s (Ctrl-C to stop)\n", url) +func playgroundStartupData(sess *playgroundSession, url string) map[string]any { + return map[string]any{ + "url": url, + "appId": sess.appID, + "channel": sess.channel, + "uid": strconv.FormatUint(uint64(sess.uid), 10), + "agentUid": strconv.FormatUint(uint64(sess.agentUID), 10), + "port": sess.port, + } +} + +func (a *App) printPlaygroundStartup(cmd *cobra.Command, sess *playgroundSession, url string) error { + data := playgroundStartupData(sess, url) + if a.resolveOutputMode(cmd) == outputJSON { + return renderResult(cmd, "convoai playground", data) + } + out := cmd.OutOrStdout() + fmt.Fprintf(out, "\nAgora Convoai Playground\n") + fmt.Fprintf(out, " Open: %s\n\n", url) + fmt.Fprintf(out, "Wire your agent with these values:\n") + fmt.Fprintf(out, " APP_ID: %s\n", sess.appID) + fmt.Fprintf(out, " CHANNEL: %s\n", sess.channel) + fmt.Fprintf(out, " AGENT_UID: %s (join your agent with this uid)\n", data["agentUid"]) + fmt.Fprintf(out, " Use the same App Certificate as this project (see `agora project env --with-secrets`).\n\n") + fmt.Fprintf(out, "Press Ctrl-C to stop.\n") + return nil } diff --git a/internal/cli/convoai_test.go b/internal/cli/convoai_test.go index 9400452..f35fd70 100644 --- a/internal/cli/convoai_test.go +++ b/internal/cli/convoai_test.go @@ -194,3 +194,17 @@ func TestListenExplicitBusyPortFails(t *testing.T) { t.Fatal("explicit busy port must hard-fail") } } + +func TestPlaygroundStartupEnvelope(t *testing.T) { + sess := &playgroundSession{appID: "APP123", channel: "my-dev-room", uid: 12345, agentUID: 87654321, port: 8787} + data := playgroundStartupData(sess, "http://127.0.0.1:8787") + if data["appId"] != "APP123" || data["channel"] != "my-dev-room" { + t.Fatalf("bad envelope: %+v", data) + } + if data["url"] != "http://127.0.0.1:8787" || data["agentUid"] != "87654321" { + t.Fatalf("bad envelope: %+v", data) + } + if data["uid"] != "12345" { + t.Fatalf("bad uid: %+v", data) + } +} diff --git a/internal/cli/render.go b/internal/cli/render.go index 9174038..8185697 100644 --- a/internal/cli/render.go +++ b/internal/cli/render.go @@ -188,6 +188,16 @@ func renderResult(cmd *cobra.Command, command string, data any) error { case "open": m := data.(map[string]any) printBlock(out, "Open", [][2]string{{"Target", asString(m["target"])}, {"URL", asString(m["url"])}, {"Status", asString(m["status"])}}) + case "convoai playground": + m := data.(map[string]any) + printBlock(out, "Agora Convoai Playground", [][2]string{ + {"URL", asString(m["url"])}, + {"App ID", asString(m["appId"])}, + {"Channel", asString(m["channel"])}, + {"UID", asString(m["uid"])}, + {"Agent UID", asString(m["agentUid"])}, + {"Port", asString(m["port"])}, + }) default: encoded, _ := json.MarshalIndent(data, "", " ") fmt.Fprintf(out, "%s\n%s\n", command, string(encoded)) From 69087d703ce08c9ddf3c749a22c5ad7d3835abc1 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:51:16 -0700 Subject: [PATCH 11/18] refactor(convoai): remove unreachable render.go case; document inline startup output The "convoai playground" case added to render.go's pretty switch is dead code: printPlaygroundStartup only calls renderResult in JSON mode, where renderResult returns early via emitEnvelope before reaching the switch. Deleted the case and added a comment to convoai.go explaining why printPlaygroundStartup owns pretty rendering inline (the multi-line wire block doesn't fit printBlock's shape). JSON envelope unaffected: renderResult's JSON guard emits the envelope with data before the switch, so removing the pretty case doesn't affect JSON output. Co-Authored-By: Claude Opus 4.8 --- internal/cli/convoai.go | 4 ++++ internal/cli/render.go | 10 ---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/internal/cli/convoai.go b/internal/cli/convoai.go index 81aa1dc..db0ea6c 100644 --- a/internal/cli/convoai.go +++ b/internal/cli/convoai.go @@ -238,6 +238,10 @@ func playgroundStartupData(sess *playgroundSession, url string) map[string]any { } } +// printPlaygroundStartup renders the startup output directly rather than +// through renderResult's pretty switch: the human "wire block" (multi-line +// guidance + certificate reminder) doesn't fit printBlock's key/value shape. +// JSON mode still goes through renderResult so the envelope stays uniform. func (a *App) printPlaygroundStartup(cmd *cobra.Command, sess *playgroundSession, url string) error { data := playgroundStartupData(sess, url) if a.resolveOutputMode(cmd) == outputJSON { diff --git a/internal/cli/render.go b/internal/cli/render.go index 8185697..9174038 100644 --- a/internal/cli/render.go +++ b/internal/cli/render.go @@ -188,16 +188,6 @@ func renderResult(cmd *cobra.Command, command string, data any) error { case "open": m := data.(map[string]any) printBlock(out, "Open", [][2]string{{"Target", asString(m["target"])}, {"URL", asString(m["url"])}, {"Status", asString(m["status"])}}) - case "convoai playground": - m := data.(map[string]any) - printBlock(out, "Agora Convoai Playground", [][2]string{ - {"URL", asString(m["url"])}, - {"App ID", asString(m["appId"])}, - {"Channel", asString(m["channel"])}, - {"UID", asString(m["uid"])}, - {"Agent UID", asString(m["agentUid"])}, - {"Port", asString(m["port"])}, - }) default: encoded, _ := json.MarshalIndent(data, "", " ") fmt.Fprintf(out, "%s\n%s\n", command, string(encoded)) From 387454c3854a3d2dded765afb4520985643916c3 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:57:29 -0700 Subject: [PATCH 12/18] chore(convoai): frontend scaffold and source-hash tool Co-Authored-By: Claude Sonnet 4.6 --- .gitignore | 3 + cmd/playgroundhash/main.go | 73 + frontend/.npmrc | 3 + frontend/index.html | 13 + frontend/package-lock.json | 3956 ++++++++++++++++++++++++++++++++++++ frontend/package.json | 27 + frontend/src/main.tsx | 6 + frontend/src/styles.css | 123 ++ frontend/tsconfig.json | 8 + frontend/vite.config.ts | 18 + 10 files changed, 4230 insertions(+) create mode 100644 cmd/playgroundhash/main.go create mode 100644 frontend/.npmrc create mode 100644 frontend/index.html create mode 100644 frontend/package-lock.json create mode 100644 frontend/package.json create mode 100644 frontend/src/main.tsx create mode 100644 frontend/src/styles.css create mode 100644 frontend/tsconfig.json create mode 100644 frontend/vite.config.ts diff --git a/.gitignore b/.gitignore index 9d27f22..ded97cb 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,6 @@ _site/ # Python bytecode __pycache__/ *.py[cod] + +# Frontend dependencies (never commit node_modules) +frontend/node_modules/ diff --git a/cmd/playgroundhash/main.go b/cmd/playgroundhash/main.go new file mode 100644 index 0000000..011dbf0 --- /dev/null +++ b/cmd/playgroundhash/main.go @@ -0,0 +1,73 @@ +// Command playgroundhash computes a stable hash over the frontend/ source +// inputs. `-write` stamps it into webassets/SOURCE_HASH; `-check` compares. +package main + +import ( + "crypto/sha256" + "encoding/hex" + "flag" + "fmt" + "os" + "path/filepath" + "sort" + "strings" +) + +func main() { + write := flag.Bool("write", false, "write SOURCE_HASH") + check := flag.Bool("check", false, "check SOURCE_HASH") + flag.Parse() + + sum, err := hashFrontend("frontend") + if err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(2) + } + target := filepath.Join("internal", "cli", "playground", "webassets", "SOURCE_HASH") + switch { + case *write: + if err := os.WriteFile(target, []byte(sum+"\n"), 0o644); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(2) + } + case *check: + got, err := os.ReadFile(target) + if err != nil || strings.TrimSpace(string(got)) != sum { + fmt.Fprintln(os.Stderr, "frontend/ changed but webassets not rebuilt. Run `make playground-build`.") + os.Exit(1) + } + default: + fmt.Println(sum) + } +} + +func hashFrontend(root string) (string, error) { + var files []string + err := filepath.Walk(root, func(p string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info.IsDir() { + if info.Name() == "node_modules" || info.Name() == "dist" { + return filepath.SkipDir + } + return nil + } + files = append(files, p) + return nil + }) + if err != nil { + return "", err + } + sort.Strings(files) + h := sha256.New() + for _, f := range files { + b, err := os.ReadFile(f) + if err != nil { + return "", err + } + fmt.Fprintf(h, "%s\n", f) + h.Write(b) + } + return hex.EncodeToString(h.Sum(nil)), nil +} diff --git a/frontend/.npmrc b/frontend/.npmrc new file mode 100644 index 0000000..80eb8a8 --- /dev/null +++ b/frontend/.npmrc @@ -0,0 +1,3 @@ +# agora-agent-uikit ships workspace:* peer dep specifiers (pnpm monorepo); +# npm requires legacy-peer-deps mode to resolve them without error. +legacy-peer-deps=true diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000..c2eb024 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,13 @@ + + + + + + Agora Convoai Playground + + + +
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000..a070ec6 --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,3956 @@ +{ + "name": "agora-convoai-playground", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "agora-convoai-playground", + "dependencies": { + "agora-agent-client-toolkit": "1.2.0", + "agora-agent-uikit": "1.1.0", + "agora-rtc-react": "^2.5.1", + "agora-rtc-sdk-ng": "^4.24.3", + "react": "^19.2.4", + "react-dom": "^19.2.4" + }, + "devDependencies": { + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^4.3.0", + "typescript": "^5.3.0", + "vite": "^5.4.0", + "vite-plugin-compression": "^0.5.1", + "vitest": "^2.0.0" + } + }, + "node_modules/@agora-js/media": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/@agora-js/media/-/media-4.24.5.tgz", + "integrity": "sha512-nyByylhFpQlCgjDFsS5hNHJWoPkyspzGANOJ0SxvcEwz/zyiRdLjJCCEUHp9+3cGy0yn9rB9QIPiIMZgX0lcag==", + "license": "MIT", + "dependencies": { + "@agora-js/report": "4.24.5", + "@agora-js/shared": "4.24.5", + "agora-rte-extension": "^1.2.4", + "agora-rte-extension-ng": "^1.0.3", + "axios": "^1.16.1", + "webrtc-adapter": "8.2.0" + } + }, + "node_modules/@agora-js/protocol": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/@agora-js/protocol/-/protocol-4.24.5.tgz", + "integrity": "sha512-UmpLPxeCLwUJRc2LAgYEsQ40jDZqCjlDV998s1zz4M+UZsJWNAdwkc98l0aG9a2nzRDd+i+uS5gtb96zGdhEUA==", + "license": "MIT", + "dependencies": { + "@agora-js/media": "4.24.5", + "@agora-js/report": "4.24.5", + "@agora-js/shared": "4.24.5", + "@bufbuild/protobuf": "2.10.1", + "@types/pako": "^2.0.0", + "pako": "^2.1.0" + } + }, + "node_modules/@agora-js/report": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/@agora-js/report/-/report-4.24.5.tgz", + "integrity": "sha512-exR2PLhtOWYYzBF9zuM0VNTonoMF9hpMzy7p/kO+4bvAceYmAUSJXlpW/SIN7zYscG+spbSv7kpCvArbjgkwsg==", + "license": "MIT", + "dependencies": { + "@agora-js/shared": "4.24.5", + "axios": "^1.16.1" + } + }, + "node_modules/@agora-js/shared": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/@agora-js/shared/-/shared-4.24.5.tgz", + "integrity": "sha512-1+afw9kE7GUya8incBIuuEHsAEsnRq33hnrsxT3d6J2bqseMtsuMXWQGpbgCDjguPi11ndKtAM6avTif8+jdsA==", + "license": "MIT", + "dependencies": { + "axios": "^1.16.1", + "ua-parser-js": "^0.7.34" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bufbuild/protobuf": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.10.1.tgz", + "integrity": "sha512-ckS3+vyJb5qGpEYv/s1OebUHDi/xSNtfgw1wqKZo7MR9F2z+qXr0q5XagafAG/9O0QPVIUfST0smluYSTpYFkg==", + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.8.tgz", + "integrity": "sha512-cC52bHwM/n/CxS87FH0yWdngEZrjdtLW/qVruo68qg+prK7ZQ4YGdut2GyDVpoGeAYe/h899rVeOVm6Oi40k2A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lottiefiles/dotlottie-react": { + "version": "0.17.15", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-react/-/dotlottie-react-0.17.15.tgz", + "integrity": "sha512-4wYAjsJhM28eUvJ/gT3KRM6fcyT7EM9n7PDrP71LaBTacc6bSN43qFTSJc1Li3QxUiraz23p0Q8EJBzXo8DsRw==", + "license": "MIT", + "dependencies": { + "@lottiefiles/dotlottie-web": "0.63.0" + }, + "peerDependencies": { + "react": "^17 || ^18 || ^19" + } + }, + "node_modules/@lottiefiles/dotlottie-web": { + "version": "0.63.0", + "resolved": "https://registry.npmjs.org/@lottiefiles/dotlottie-web/-/dotlottie-web-0.63.0.tgz", + "integrity": "sha512-oYIkvu6E4n8fZH7ciQsVqamlUDeBnd6JbNYa1UWC/npkNzEHqM5saL3vk/nNorqdfjYwdcdmhLtYbnuwVy+3/Q==", + "license": "MIT" + }, + "node_modules/@radix-ui/number": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.2.tgz", + "integrity": "sha512-ceTwaxc4I5IOi97DgCotl3pqiyRGvffcc0oOsE2dQYaJOFIDsDt4VWG6xEbg1QePv9QWausCEIppud/tJ1wNig==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.5.tgz", + "integrity": "sha512-d86WIWFYNtGA0H/d8exstrTRTp7eWJYlYJbtNofxr/3ljupZYn6EFDG/Qgu/0Kc8v7yMUxySagqJsL1+PdYjWg==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.11.tgz", + "integrity": "sha512-Kdil9BB1rIFC/khmf4hC35bn8701AJcizTU7G7cUbEbk5XqqbjDuHW60uUfKqO5WojjZcbAW51Q7P0hRmMLw8A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.12.tgz", + "integrity": "sha512-nb67INpE0IahJKN7EYPp9m9YGwYeKlnzxT3MwXVkgCskaSJia97kG4T0ywpjNUSSnoJk/uvk12V8vbrEHEj+/Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-slot": "1.3.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.3.tgz", + "integrity": "sha512-rYOP8OMnuuPMQF1uhPVlGNcCDlkokKqGFE3JcxFViIkAXP7EvFWUliJAstrapypaBLJNHbZL6jGhbVDGTwmVhA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.0.tgz", + "integrity": "sha512-fOE+JtN9rygNZkCnHRBEP0TAvLldlhyOxMsbwFvTP4nAs+nBmfnna+o/Zski2wkmY1YMrFC0aSzsHoLY47iLrg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.19.tgz", + "integrity": "sha512-+HhbN2+YtkRgVirjZ2afMeutQRuGOrdkWR5+EFC58SJojGmtyNQwYzgi6tHBpOxvFHefMtPeHdgtjz0BOGxFQg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-dismissable-layer": "1.1.15", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.12", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-portal": "1.1.13", + "@radix-ui/react-presence": "1.1.7", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-controllable-state": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.2.tgz", + "integrity": "sha512-C3vFhbyi4SW3PmbAi6Awpu4OzJtd0MxGurvSsYtr7p7nM8RNB3VAF3CUmnp2j50knpkrRcB7+ycVXzgLgF6yNA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.15.tgz", + "integrity": "sha512-b0XaRlzn2QKuo10XyNgi2DAJDf5XC9d1nD3FJcuvCjbR7+4Ad28zmZsLsqx+hvDEzMnRuZaZxZm9gYObV6RmRA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-effect-event": "0.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.1.20.tgz", + "integrity": "sha512-slfm+rRaZRuQBvHq60lXvSVUPhid0IPtjSZzIuUlWZMUs01iYZNlGS3mJgRD3ChLQVBAYlKiL/tFyWGX+dz8Xw==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-menu": "2.1.20", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-use-controllable-state": "1.2.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.4.tgz", + "integrity": "sha512-cot/aB/mOm0IYVYTTmQcEEK1M48lZWi8FlYe5nDPQQ8NYZUlXEFgncJ9p2Kzer3RKSrY7cTTpEMLZKNo9QoP5Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.12.tgz", + "integrity": "sha512-jjk/lqTeNL0azUx5ZYzVrl4NgaDIrdzTNE4mABV9yBFI7FQqN7pIgzV1bTleUezP2QiTGA1BFTqY8MegDgWX9A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-use-callback-ref": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.2.tgz", + "integrity": "sha512-orBC88futVpqCmhX1p4cvquNHsELQ+w+vBJnuj3ftETI5bJb0bZn3Tqu3SWN2IOcPycTnMGnhwoermvISt72sA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.1.20", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.1.20.tgz", + "integrity": "sha512-VsUrXxFe9d2ScbZF0fR/oPR1+qjyeLs5p0jzG8h90puMoA9bq4SirYlXbE+USRg9Q2qTeJSFNqjw2nts8jJe4w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-collection": "1.1.12", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.15", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.12", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-popper": "1.3.3", + "@radix-ui/react-portal": "1.1.13", + "@radix-ui/react-presence": "1.1.7", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-roving-focus": "1.1.15", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-callback-ref": "1.1.2", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popover": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.19.tgz", + "integrity": "sha512-jkrTdQVxnIB8fpn0NyyxW9CTB5aCXZZelVz5z+Xmii6g5WxMqS3fInNslZ63puP39+Puu4jYohUK31y3dT87gQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-dismissable-layer": "1.1.15", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.12", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-popper": "1.3.3", + "@radix-ui/react-portal": "1.1.13", + "@radix-ui/react-presence": "1.1.7", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-controllable-state": "1.2.3", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.3.3.tgz", + "integrity": "sha512-mS7dGpyjv6b+gsDjLF7e0ia1W4Im1B1hSCy2yuXlHuvnZxHKagfDaobt/KAKt27EpZMit2pss8eJBVyVjEWM+g==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.11", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-layout-effect": "1.1.2", + "@radix-ui/react-use-rect": "1.1.2", + "@radix-ui/react-use-size": "1.1.2", + "@radix-ui/rect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.13.tgz", + "integrity": "sha512-z3oXfmaHLJTF1wktbjgD6cn9jiEbq3WSondB10LIuIt2m2Ym4iJlrW04/euMwENDdWDdE7z+OuY7Qyp1YpRSwA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-use-layout-effect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.7.tgz", + "integrity": "sha512-zBZ4QM5XG3JRanDmqXYf3MD6th4AFXFmgU6KNMFzUaV6F3uw9I5/zjMUvFriSEn5ewo1nxuibvyxJdmLlDcslA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.7.tgz", + "integrity": "sha512-bC3NiwsprbxKjuon9l7X6BUTw7FPVzEYaL92MPEY5SCd/9hUTPXVFtVwRix7778wtRsVao+zE062gL79FZleeQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.3.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.15.tgz", + "integrity": "sha512-40svmmugfM3mUN7VUDGVE1tQGOhyi8enlGD0CNJEcMM36C1f71PKM21DFgNHUfem0XnA+d8H8oN3Z9ZpJjSslg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-collection": "1.1.12", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-is-hydrated": "0.1.1", + "@radix-ui/react-use-layout-effect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.3.3.tgz", + "integrity": "sha512-L5RQTXz6Anxsf9CCv+pTgiAsUpyVj7rJxsGtmhFaEOJ++cVfXucv4qWfsIO0AIB4NAhi3yovWGVMKKS1Xf1Wrg==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.2", + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-collection": "1.1.12", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-direction": "1.1.2", + "@radix-ui/react-dismissable-layer": "1.1.15", + "@radix-ui/react-focus-guards": "1.1.4", + "@radix-ui/react-focus-scope": "1.1.12", + "@radix-ui/react-id": "1.1.2", + "@radix-ui/react-popper": "1.3.3", + "@radix-ui/react-portal": "1.1.13", + "@radix-ui/react-presence": "1.1.7", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-slot": "1.3.0", + "@radix-ui/react-use-callback-ref": "1.1.2", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-layout-effect": "1.1.2", + "@radix-ui/react-use-previous": "1.1.2", + "@radix-ui/react-visually-hidden": "1.2.7", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.0.tgz", + "integrity": "sha512-MojKku4U/miO8Av4Dkb+ctMAQx7JmY96LmtDQlAarCRtd7rN52QCSzBF+XAvr5S6coSVj9HEPBgHAHKEJVk/WA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.3" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.3.3.tgz", + "integrity": "sha512-1+mlB4/lxJfk5tgJ4g+R5mUCbRpPE1T9+UsEyeLYbGgMtwiMgmuTnfKz4Mw1nHALHjuwyxw4MLd4cSHn6pNSlQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.5", + "@radix-ui/react-compose-refs": "1.1.3", + "@radix-ui/react-context": "1.2.0", + "@radix-ui/react-primitive": "2.1.7", + "@radix-ui/react-use-controllable-state": "1.2.3", + "@radix-ui/react-use-previous": "1.1.2", + "@radix-ui/react-use-size": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.2.tgz", + "integrity": "sha512-xCso9j1/u8sEgP1RNHjFrXJLApL8LiqOkI1R4ywuN00rxWdYg4oQXuwKLS3i0j5NWLromUD27/4nlxj2UFVvIw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.3.tgz", + "integrity": "sha512-PLzC90MS+ReootmjC597dvopoelpZ8Q61HJkDXZSExitIq7PL55vHNnesAHwguHK0aPfBnpdNzQtv1uliaqQrA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-effect-event": "0.0.3", + "@radix-ui/react-use-layout-effect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.3.tgz", + "integrity": "sha512-6c8ZqvPTWILEKnyVkP53EGRCcpnJiKTC21sS/6R1GF5xKyHJJWQEPfkqlcgUkdRQivd6tb23abUwe4ngWmY0JA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-is-hydrated": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-is-hydrated/-/react-use-is-hydrated-0.1.1.tgz", + "integrity": "sha512-qwOiz4Tjo8CNnrOLAYUMXeZwDzXgXpvK4TKQPmWLECM9XoWvA6+0Z2/7Ag3A4ivjS4ovbLJPbskkxioFyBhr8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.2.tgz", + "integrity": "sha512-jrBWOxZITuGcnjRCM2t2U5ZPkCLxD+Ym6DjfssS5haTj2iiak/DOb64JeN6OdLfLgptb6/e2kKR+ZuTrGoZTPA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.2.tgz", + "integrity": "sha512-IGBQPtRFdhN6MQ8dbegVmBq1LVZluya3F1jWY+puIcQC3MHctRwTDSBWCkL/3ZcnMJLTMJ++Z+ktmvg0F89iCw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.2.tgz", + "integrity": "sha512-d8a+bBY/FxikNPlgJJoaBHZX+zKVbWHYJGTLnLvveQgFSTntkGdEKv3JDtHrMS0DNYpllz2nRsTLGLKYttbpmw==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.2.tgz", + "integrity": "sha512-giWQp+4mxjBPt4KZ0MmyuykFNWfbDxKt4x+fPkRYmgRFJSbCZFzUglvMb/Kjn38tm10YP4ufiQZDx3zna4LU6w==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.2" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.7.tgz", + "integrity": "sha512-1wNZBggTDK3GRuuQ6nP4k2yi7a6l7I5qbMPbZcRsrGsGVead/f/d5FhEzUvqFs0bcrDLx7n1zKQ3JvLR6whaaw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.7" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.2.tgz", + "integrity": "sha512-xnXE7wG13PI+cxieVssYXlQJuYVRhH9NBoxt3KNwzghDIA69GMm7d4wXRouHIYjE+KvS6U/MsMO73NdS2MH9ZA==", + "license": "MIT" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", + "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", + "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", + "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", + "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", + "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", + "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", + "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", + "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", + "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", + "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", + "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", + "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", + "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", + "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", + "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", + "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", + "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", + "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", + "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", + "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", + "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", + "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", + "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", + "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", + "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/pako": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/pako/-/pako-2.0.4.tgz", + "integrity": "sha512-VWDCbrLeVXJM9fihYodcLiIv0ku+AlOa/TQ1SvYOaBuyrSKgEcro95LJyIsJ4vSo6BXIxOKxiJAat04CmST9Fw==", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT", + "optional": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/@vitest/expect": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz", + "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz", + "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "2.1.9", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz", + "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz", + "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "2.1.9", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz", + "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "magic-string": "^0.30.12", + "pathe": "^1.1.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz", + "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz", + "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "2.1.9", + "loupe": "^3.1.2", + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agora-agent-client-toolkit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/agora-agent-client-toolkit/-/agora-agent-client-toolkit-1.2.0.tgz", + "integrity": "sha512-rbSDfk6veGsvNxSgccPa1zCCJ7QQw0NjoETHiHSXGURkzw90KwOQ2ZIOX6dueMFvZLUBr1UPQodCpOHroHY5bw==", + "license": "MIT", + "engines": { + "node": ">=20.0.0" + }, + "optionalDependencies": { + "@agora-js/report": ">=4.19.0", + "jszip": ">=3.0.0" + }, + "peerDependencies": { + "agora-rtc-sdk-ng": ">=4.23.4", + "agora-rtm": ">=2.0.0" + }, + "peerDependenciesMeta": { + "agora-rtm": { + "optional": true + } + } + }, + "node_modules/agora-agent-uikit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/agora-agent-uikit/-/agora-agent-uikit-1.1.0.tgz", + "integrity": "sha512-gDSleHFYavNEqf/SIUt8xA1Q+VAw4M9q/84MD/+fFG7Z15oSLH6hZnmI+8cr6yzPXBBXHX4dd9tRZod5UjaFyA==", + "license": "MIT", + "dependencies": { + "@lottiefiles/dotlottie-react": "^0.17.13", + "@radix-ui/react-dialog": "^1.1.15", + "@radix-ui/react-dropdown-menu": "^2.1.16", + "@radix-ui/react-popover": "^1.1.15", + "@radix-ui/react-select": "^2.2.6", + "@radix-ui/react-slot": "^1.2.4", + "@radix-ui/react-switch": "^1.2.6", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "^1.1.1", + "dompurify": "^3.3.3", + "lucide-react": ">=0.263.0", + "tailwind-merge": "^3.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "agora-agent-client-toolkit": "^1.2.0", + "agora-agent-client-toolkit-react": "^1.2.0", + "agora-rtc-react": ">=2.0.0", + "agora-rtm-sdk": ">=2.0.0", + "react": ">=18.0.0", + "react-dom": ">=18.0.0" + }, + "peerDependenciesMeta": { + "agora-agent-client-toolkit": { + "optional": true + }, + "agora-agent-client-toolkit-react": { + "optional": true + }, + "agora-rtc-react": { + "optional": true + }, + "agora-rtm-sdk": { + "optional": true + } + } + }, + "node_modules/agora-rtc-react": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/agora-rtc-react/-/agora-rtc-react-2.5.1.tgz", + "integrity": "sha512-ORPbV02p8dZ2GhQxo5kTarc0BYjObc2IeqRPv9mi5/fxDI5nMY6kg54R5fUvLQU05H3Q5Kecq7M2kuZzHfNo5Q==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/agora-rtc-sdk-ng": { + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/agora-rtc-sdk-ng/-/agora-rtc-sdk-ng-4.24.5.tgz", + "integrity": "sha512-xMs1U5FpdbCYzFTROlNOMgDMP7WN7Ab/jGKC9lY7iJi7LYz5Ek2Jz3hO2RiQCTKK5HRK35hi4J8o8IcnznhjXw==", + "license": "MIT", + "dependencies": { + "@agora-js/media": "4.24.5", + "@agora-js/protocol": "4.24.5", + "@agora-js/report": "4.24.5", + "@agora-js/shared": "4.24.5", + "agora-rte-extension": "^1.2.4", + "agora-rte-extension-ng": "^1.0.3", + "axios": "^1.16.1", + "formdata-polyfill": "^4.0.7", + "pako": "^2.1.0", + "ua-parser-js": "^0.7.34", + "webrtc-adapter": "8.2.0" + } + }, + "node_modules/agora-rte-extension": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/agora-rte-extension/-/agora-rte-extension-1.2.4.tgz", + "integrity": "sha512-0ovZz1lbe30QraG1cU+ji7EnQ8aUu+Hf3F+a8xPml3wPOyUQEK6CTdxV9kMecr9t+fIDrGeW7wgJTsM1DQE7Nw==", + "license": "ISC" + }, + "node_modules/agora-rte-extension-ng": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/agora-rte-extension-ng/-/agora-rte-extension-ng-1.0.3.tgz", + "integrity": "sha512-Gkh60IomlIrhq7ljDIy4zHgKEhfNx3c0Kto27wKCQp2wCabmHz9ucHT/7u9telUCA6YcNjnFMhenjdJx1JZeEA==", + "license": "MIT" + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.18.1.tgz", + "integrity": "sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.42", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.42.tgz", + "integrity": "sha512-c/jurFrDLyui7o1J86yLkRu4LMsTYcBohveus7/I2Hzdn9KIP2bdJPTue/lR1KH46enoPbD77GKeSYNdyPoD3Q==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/browserslist": { + "version": "4.28.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.5.tgz", + "integrity": "sha512-Cu2E6QejHWzuDMTkuwgpABFgDfZrXLQq5V13YOACZx4mFAG4IwGTbTfHPMr4WtxlHoXSM8FIuRwYYCz5XiabaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.10.42", + "caniuse-lite": "^1.0.30001800", + "electron-to-chromium": "^1.5.387", + "node-releases": "^2.0.50", + "update-browserslist-db": "^1.2.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001802", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001802.tgz", + "integrity": "sha512-vmv8ub2xwTNmljSKf82mtCk5JH7hC+YgzLj3P5zotvA0tPQ9016tdNNOG8WRca1IxOnhSsivB+J0z5FeE5LOUw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "license": "Apache-2.0", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.1.1.tgz", + "integrity": "sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "^1.1.1", + "@radix-ui/react-dialog": "^1.1.6", + "@radix-ui/react-id": "^1.1.0", + "@radix-ui/react-primitive": "^2.0.2" + }, + "peerDependencies": { + "react": "^18 || ^19 || ^19.0.0-rc", + "react-dom": "^18 || ^19 || ^19.0.0-rc" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT", + "optional": true + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "node_modules/dompurify": { + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.11.tgz", + "integrity": "sha512-zhlUV12GsaRzMsf9q5M254YhA4+VuF0fG+QFqu6aYpoGlKtz+w8//jBcGVYBgQkR5GHjUomejY84AV+/uPbWdw==", + "license": "(MPL-2.0 OR Apache-2.0)", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.387", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.387.tgz", + "integrity": "sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/expect-type": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.4.0.tgz", + "integrity": "sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT", + "optional": true + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC", + "optional": true + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT", + "optional": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", + "optional": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)", + "optional": true + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/loupe": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-1.23.0.tgz", + "integrity": "sha512-38BpJcD0JhFosxHApP/BYsBetLpQFRoTRzEzstM/XCc3jsAG7wqaY1lgVwxiUe3xqYE+lNxo2PkCmYwXWrwwIw==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.50", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", + "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/pako": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.2.0.tgz", + "integrity": "sha512-zJq6RP/5q+TO2OpFV3FHzlPnFjmkb7Nc99a5SNjJE+uu/PkpChs+NIZSSzbBoD+6kjiISXjfYdwj1ZRQ81dz/w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "(MIT AND Zlib)" + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/postcss": { + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT", + "optional": true + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/react": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz", + "integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz", + "integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.7" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "optional": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/rollup": { + "version": "4.62.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", + "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.9" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.62.2", + "@rollup/rollup-android-arm64": "4.62.2", + "@rollup/rollup-darwin-arm64": "4.62.2", + "@rollup/rollup-darwin-x64": "4.62.2", + "@rollup/rollup-freebsd-arm64": "4.62.2", + "@rollup/rollup-freebsd-x64": "4.62.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.62.2", + "@rollup/rollup-linux-arm-musleabihf": "4.62.2", + "@rollup/rollup-linux-arm64-gnu": "4.62.2", + "@rollup/rollup-linux-arm64-musl": "4.62.2", + "@rollup/rollup-linux-loong64-gnu": "4.62.2", + "@rollup/rollup-linux-loong64-musl": "4.62.2", + "@rollup/rollup-linux-ppc64-gnu": "4.62.2", + "@rollup/rollup-linux-ppc64-musl": "4.62.2", + "@rollup/rollup-linux-riscv64-gnu": "4.62.2", + "@rollup/rollup-linux-riscv64-musl": "4.62.2", + "@rollup/rollup-linux-s390x-gnu": "4.62.2", + "@rollup/rollup-linux-x64-gnu": "4.62.2", + "@rollup/rollup-linux-x64-musl": "4.62.2", + "@rollup/rollup-openbsd-x64": "4.62.2", + "@rollup/rollup-openharmony-arm64": "4.62.2", + "@rollup/rollup-win32-arm64-msvc": "4.62.2", + "@rollup/rollup-win32-ia32-msvc": "4.62.2", + "@rollup/rollup-win32-x64-gnu": "4.62.2", + "@rollup/rollup-win32-x64-msvc": "4.62.2", + "fsevents": "~2.3.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT", + "optional": true + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/sdp": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.2.tgz", + "integrity": "sha512-xZocWwfyp4hkbN4hLWxMjmv2Q8aNa9MhmOZ7L9aCZPT+dZsgRr6wZRrSYE3HTdyk/2pZKPSgqI7ns7Een1xMSA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT", + "optional": true + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tailwind-merge": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.6.0.tgz", + "integrity": "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.41", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.41.tgz", + "integrity": "sha512-O3oYyCMPYgNNHuO7Jjk3uacJWZF8loBgwrfd/5LE/HyZ3lUIOdniQ7DNXJcIgZbwioZxk0fLfI4EVnetdiX5jg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT", + "optional": true + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz", + "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.7", + "es-module-lexer": "^1.5.4", + "pathe": "^1.1.2", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite-plugin-compression": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/vite-plugin-compression/-/vite-plugin-compression-0.5.1.tgz", + "integrity": "sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "debug": "^4.3.3", + "fs-extra": "^10.0.0" + }, + "peerDependencies": { + "vite": ">=2.0.0" + } + }, + "node_modules/vitest": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz", + "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "2.1.9", + "@vitest/mocker": "2.1.9", + "@vitest/pretty-format": "^2.1.9", + "@vitest/runner": "2.1.9", + "@vitest/snapshot": "2.1.9", + "@vitest/spy": "2.1.9", + "@vitest/utils": "2.1.9", + "chai": "^5.1.2", + "debug": "^4.3.7", + "expect-type": "^1.1.0", + "magic-string": "^0.30.12", + "pathe": "^1.1.2", + "std-env": "^3.8.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.1", + "tinypool": "^1.0.1", + "tinyrainbow": "^1.2.0", + "vite": "^5.0.0", + "vite-node": "2.1.9", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "2.1.9", + "@vitest/ui": "2.1.9", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webrtc-adapter": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-8.2.0.tgz", + "integrity": "sha512-umxCMgedPAVq4Pe/jl3xmelLXLn4XZWFEMR5Iipb5wJ+k1xMX0yC4ZY9CueZUU1MjapFxai1tFGE7R/kotH6Ww==", + "license": "BSD-3-Clause", + "dependencies": { + "sdp": "^3.0.2" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000..058702f --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,27 @@ +{ + "name": "agora-convoai-playground", + "private": true, + "type": "module", + "scripts": { + "build": "vite build", + "dev": "vite", + "test": "vitest run" + }, + "dependencies": { + "agora-agent-client-toolkit": "1.2.0", + "agora-agent-uikit": "1.1.0", + "agora-rtc-react": "^2.5.1", + "agora-rtc-sdk-ng": "^4.24.3", + "react": "^19.2.4", + "react-dom": "^19.2.4" + }, + "devDependencies": { + "@types/react": "^19.2.14", + "@types/react-dom": "^19.2.3", + "@vitejs/plugin-react": "^4.3.0", + "typescript": "^5.3.0", + "vite": "^5.4.0", + "vite-plugin-compression": "^0.5.1", + "vitest": "^2.0.0" + } +} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx new file mode 100644 index 0000000..28a8c59 --- /dev/null +++ b/frontend/src/main.tsx @@ -0,0 +1,6 @@ +import React from 'react' +import { createRoot } from 'react-dom/client' +import App from './App' +import './styles.css' + +createRoot(document.getElementById('root')!).render() diff --git a/frontend/src/styles.css b/frontend/src/styles.css new file mode 100644 index 0000000..a4105da --- /dev/null +++ b/frontend/src/styles.css @@ -0,0 +1,123 @@ +*, *::before, *::after { + box-sizing: border-box; + margin: 0; + padding: 0; +} + +body { + font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, monospace; + font-size: 14px; + background: #0f1117; + color: #e0e0e0; + height: 100vh; + overflow: hidden; +} + +.app { + display: flex; + flex-direction: column; + height: 100vh; +} + +.app-body { + display: flex; + flex: 1; + overflow: hidden; +} + +.left { + display: flex; + flex-direction: column; + width: 320px; + min-width: 240px; + border-right: 1px solid #2a2d36; + padding: 16px; + gap: 12px; + overflow-y: auto; +} + +.right { + display: flex; + flex-direction: column; + flex: 1; + overflow: hidden; +} + +.transcript { + flex: 1; + overflow-y: auto; + padding: 16px; + display: flex; + flex-direction: column; + gap: 8px; +} + +.msg { + padding: 8px 12px; + border-radius: 6px; + max-width: 80%; + line-height: 1.5; + word-break: break-word; +} + +.msg-user { + background: #1e3a5f; + align-self: flex-end; + color: #cce4ff; +} + +.msg-agent { + background: #1e2a1e; + align-self: flex-start; + color: #b8f0b8; +} + +.status { + padding: 6px 16px; + background: #1a1d27; + border-top: 1px solid #2a2d36; + border-bottom: 1px solid #2a2d36; + font-size: 12px; + color: #888; + display: flex; + align-items: center; + gap: 8px; +} + +.status-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: #444; +} + +.status-dot.connected { + background: #4caf50; +} + +.status-dot.connecting { + background: #ff9800; +} + +.metrics { + padding: 6px 16px; + background: #0f1117; + border-top: 1px solid #2a2d36; + font-size: 11px; + color: #666; + display: flex; + gap: 16px; +} + +.metric { + display: flex; + gap: 4px; +} + +.metric-label { + color: #555; +} + +.metric-value { + color: #aaa; +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000..961a8ab --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "target": "ES2020", "module": "ESNext", "moduleResolution": "Bundler", + "jsx": "react-jsx", "strict": true, "skipLibCheck": true, + "types": ["vite/client", "vitest/globals"], "lib": ["ES2020", "DOM", "DOM.Iterable"] + }, + "include": ["src"] +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000..cc1c87d --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,18 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import compression from 'vite-plugin-compression' + +// agora-rtm is loaded from Agora's CDN as the UMD global `AgoraRTM`. +// agora-rtc-sdk-ng is bundled (its named ESM exports don't map cleanly to a +// UMD global — externalizing it is a spike-gated optimization, not done here). +export default defineConfig({ + plugins: [react(), compression({ ext: '.gz', deleteOriginalAssets: false })], + build: { + outDir: '../internal/cli/playground/webassets', + emptyOutDir: true, + rollupOptions: { + external: ['agora-rtm'], + output: { globals: { 'agora-rtm': 'AgoraRTM' } }, + }, + }, +}) From 43d9d75663f13f94d8e863434e6c7f36ee815489 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 16:59:31 -0700 Subject: [PATCH 13/18] chore(convoai): bundle agora-rtm instead of CDN externalization --- frontend/index.html | 1 - frontend/package-lock.json | 10 ++++++++++ frontend/package.json | 1 + frontend/vite.config.ts | 10 +++------- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/frontend/index.html b/frontend/index.html index c2eb024..11c3a17 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -4,7 +4,6 @@ Agora Convoai Playground -
diff --git a/frontend/package-lock.json b/frontend/package-lock.json index a070ec6..f15f0a6 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -10,6 +10,7 @@ "agora-agent-uikit": "1.1.0", "agora-rtc-react": "^2.5.1", "agora-rtc-sdk-ng": "^4.24.3", + "agora-rtm": "^2.2.3", "react": "^19.2.4", "react-dom": "^19.2.4" }, @@ -2276,6 +2277,15 @@ "integrity": "sha512-Gkh60IomlIrhq7ljDIy4zHgKEhfNx3c0Kto27wKCQp2wCabmHz9ucHT/7u9telUCA6YcNjnFMhenjdJx1JZeEA==", "license": "MIT" }, + "node_modules/agora-rtm": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/agora-rtm/-/agora-rtm-2.2.4.tgz", + "integrity": "sha512-c2BPYiIjAF7I8yMjplD+w8o0SieVGiuIDN0YSOT+Xg7GpGmK60F3IPzHMuWICMpmThcf3CS8NdmxXHIBh62+ug==", + "license": "Apache", + "peerDependencies": { + "agora-rtc-sdk-ng": "4.23.0" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 058702f..b67f1ab 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,6 +12,7 @@ "agora-agent-uikit": "1.1.0", "agora-rtc-react": "^2.5.1", "agora-rtc-sdk-ng": "^4.24.3", + "agora-rtm": "^2.2.3", "react": "^19.2.4", "react-dom": "^19.2.4" }, diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index cc1c87d..5d56783 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -2,17 +2,13 @@ import { defineConfig } from 'vite' import react from '@vitejs/plugin-react' import compression from 'vite-plugin-compression' -// agora-rtm is loaded from Agora's CDN as the UMD global `AgoraRTM`. -// agora-rtc-sdk-ng is bundled (its named ESM exports don't map cleanly to a -// UMD global — externalizing it is a spike-gated optimization, not done here). +// agora-rtc-sdk-ng and agora-rtm are both bundled. (CDN-externalizing the +// RTC SDK is a possible future optimization; agora-rtm has no reliable UMD +// CDN build, so it is bundled like the official quickstart.) export default defineConfig({ plugins: [react(), compression({ ext: '.gz', deleteOriginalAssets: false })], build: { outDir: '../internal/cli/playground/webassets', emptyOutDir: true, - rollupOptions: { - external: ['agora-rtm'], - output: { globals: { 'agora-rtm': 'AgoraRTM' } }, - }, }, }) From 4fa253abba46787dbb0488ac1a1832d3053454f8 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 17:08:25 -0700 Subject: [PATCH 14/18] feat(convoai): frontend harness (join, transcript, meters, status) Co-Authored-By: Claude Opus 4.8 --- frontend/src/App.tsx | 406 ++++++++++++ frontend/src/lib/conversation.test.ts | 19 + frontend/src/lib/conversation.ts | 97 +++ frontend/src/services/api.ts | 20 + frontend/src/types/conversation.ts | 22 + internal/cli/playground/webassets/SOURCE_HASH | 1 + .../assets/AgoraRTC_N-report.esm-Dhe53Dql.js | 13 + .../AgoraRTC_N-report.esm-Dhe53Dql.js.gz | Bin 0 -> 60721 bytes .../webassets/assets/index-9L6p1D6X.js | 583 ++++++++++++++++++ .../webassets/assets/index-9L6p1D6X.js.gz | Bin 0 -> 1508296 bytes .../webassets/assets/index-f-mbsEwT.css | 1 + .../webassets/assets/index-f-mbsEwT.css.gz | Bin 0 -> 582 bytes .../webassets/assets/jszip.min-CQVN0a9q.js | 12 + .../webassets/assets/jszip.min-CQVN0a9q.js.gz | Bin 0 -> 30062 bytes internal/cli/playground/webassets/index.html | 15 +- 15 files changed, 1187 insertions(+), 2 deletions(-) create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/lib/conversation.test.ts create mode 100644 frontend/src/lib/conversation.ts create mode 100644 frontend/src/services/api.ts create mode 100644 frontend/src/types/conversation.ts create mode 100644 internal/cli/playground/webassets/SOURCE_HASH create mode 100644 internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js create mode 100644 internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js.gz create mode 100644 internal/cli/playground/webassets/assets/index-9L6p1D6X.js create mode 100644 internal/cli/playground/webassets/assets/index-9L6p1D6X.js.gz create mode 100644 internal/cli/playground/webassets/assets/index-f-mbsEwT.css create mode 100644 internal/cli/playground/webassets/assets/index-f-mbsEwT.css.gz create mode 100644 internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js create mode 100644 internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js.gz diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx new file mode 100644 index 0000000..8c396cc --- /dev/null +++ b/frontend/src/App.tsx @@ -0,0 +1,406 @@ +import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react' +import AgoraRTC from 'agora-rtc-react' +import { + AgoraRTCProvider, + RemoteUser, + useClientEvent, + useJoin, + useLocalMicrophoneTrack, + usePublish, + useRemoteUsers, + useRTCClient, +} from 'agora-rtc-react' +import { + AgoraVoiceAI, + AgoraVoiceAIEvents, + TranscriptHelperMode, + type AgentState, + type AgentTranscription, + type AgentMetric, + type TranscriptHelperItem, + type UserTranscription, +} from 'agora-agent-client-toolkit' +import { AgentVisualizer } from 'agora-agent-uikit' +import { MicButtonWithVisualizer } from 'agora-agent-uikit/rtc' +import AgoraRTM from 'agora-rtm' +import type { RTMClient } from 'agora-rtm' +import { + getMessageList, + getCurrentInProgressMessage, + mapAgentVisualizerState, + normalizeTranscript, +} from './lib/conversation' +import { getConfig, type GetConfigResponse } from './services/api' + +// ─── Transcript panel ─────────────────────────────────────────────────────── + +interface TranscriptPanelProps { + transcript: TranscriptHelperItem>[] + localUid: string + agentUid: string +} + +function TranscriptPanel({ transcript, localUid, agentUid }: TranscriptPanelProps) { + const normalized = useMemo( + () => normalizeTranscript(transcript, localUid), + [transcript, localUid], + ) + const messageList = useMemo(() => getMessageList(normalized), [normalized]) + const inProgress = useMemo(() => getCurrentInProgressMessage(normalized), [normalized]) + + const all = inProgress ? [...messageList, inProgress] : messageList + + return ( +
+ {all.length === 0 && ( +
+ No transcript yet… +
+ )} + {all.map((msg, i) => { + const isUser = String(msg.uid) === localUid + return ( +
+ {msg.text} +
+ ) + })} +
+ ) +} + +// ─── Metrics strip ─────────────────────────────────────────────────────────── + +interface MetricsStripProps { + metrics: AgentMetric[] +} + +function MetricsStrip({ metrics }: MetricsStripProps) { + if (metrics.length === 0) return null + return ( +
+ {metrics.slice(-4).map((m, i) => ( +
+ {m.name}: + {m.value}ms +
+ ))} +
+ ) +} + +// ─── Status bar ────────────────────────────────────────────────────────────── + +interface StatusBarProps { + connectionState: string + agentState: AgentState | null + isAgentConnected: boolean +} + +function StatusBar({ connectionState, agentState, isAgentConnected }: StatusBarProps) { + const isConnected = connectionState === 'CONNECTED' + const isConnecting = connectionState === 'CONNECTING' || connectionState === 'RECONNECTING' + const dotClass = `status-dot ${isConnected ? 'connected' : isConnecting ? 'connecting' : ''}` + + return ( +
+ + RTC: {connectionState} + {isAgentConnected && agentState && · Agent: {agentState}} + {!isAgentConnected && isConnected && ( + · Waiting for agent to join… + )} +
+ ) +} + +// ─── Inner conversation component (inside AgoraRTCProvider) ────────────────── + +interface ConversationProps { + config: GetConfigResponse + rtmClient: RTMClient + onTokenWillExpire: (uid: string) => Promise<{ rtcToken: string; rtmToken: string }> +} + +function ConversationInner({ config, rtmClient, onTokenWillExpire }: ConversationProps) { + const client = useRTCClient() + const remoteUsers = useRemoteUsers() + + const [isReady, setIsReady] = useState(false) + useEffect(() => { + const id = setTimeout(() => setIsReady(true), 0) + return () => { + clearTimeout(id) + setIsReady(false) + } + }, []) + + const { isConnected } = useJoin( + { + appid: config.app_id, + channel: config.channel_name, + token: config.token, + uid: Number(config.uid), + }, + isReady, + ) + + const { localMicrophoneTrack } = useLocalMicrophoneTrack(isReady) + usePublish([localMicrophoneTrack]) + + const [connectionState, setConnectionState] = useState('CONNECTING') + const [agentState, setAgentState] = useState(null) + const [isAgentConnected, setIsAgentConnected] = useState(false) + const [transcript, setTranscript] = useState< + TranscriptHelperItem>[] + >([]) + const [metrics, setMetrics] = useState([]) + const [isMicEnabled, setIsMicEnabled] = useState(true) + + // Detect agent in remote users + useEffect(() => { + const found = remoteUsers.some((u) => String(u.uid) === config.agent_uid) + setIsAgentConnected(found) + }, [remoteUsers, config.agent_uid]) + + useClientEvent(client, 'user-joined', (user) => { + if (String(user.uid) === config.agent_uid) setIsAgentConnected(true) + }) + useClientEvent(client, 'user-left', (user) => { + if (String(user.uid) === config.agent_uid) setIsAgentConnected(false) + }) + useClientEvent(client, 'connection-state-change', (curState) => { + setConnectionState(curState) + }) + + // Token renewal + const handleTokenWillExpire = useCallback(async () => { + const uid = client.uid + if (!uid) return + try { + const { rtcToken, rtmToken } = await onTokenWillExpire(String(uid)) + await client.renewToken(rtcToken) + await rtmClient.renewToken(rtmToken) + } catch (err) { + console.error('Token renewal failed:', err) + } + }, [client, rtmClient, onTokenWillExpire]) + useClientEvent(client, 'token-privilege-will-expire', handleTokenWillExpire) + + // AgoraVoiceAI init + useEffect(() => { + if (!isReady || !isConnected) return + + let cancelled = false + ;(async () => { + try { + const ai = await AgoraVoiceAI.init({ + rtcEngine: client, + rtmConfig: { rtmEngine: rtmClient }, + renderMode: TranscriptHelperMode.TEXT, + }) + + if (cancelled) { + try { + ai.unsubscribe() + ai.destroy() + } catch {} + return + } + + ai.on(AgoraVoiceAIEvents.TRANSCRIPT_UPDATED, (t) => { + setTranscript([...t]) + }) + ai.on(AgoraVoiceAIEvents.AGENT_STATE_CHANGED, (_, event) => { + setAgentState(event.state) + }) + ai.on(AgoraVoiceAIEvents.AGENT_METRICS, (_, m) => { + setMetrics((prev) => [...prev, m].slice(-8)) + }) + + ai.subscribeMessage(config.channel_name) + } catch (err) { + if (!cancelled) { + console.error('[AgoraVoiceAI] init failed:', err) + } + } + })() + + return () => { + cancelled = true + try { + const ai = AgoraVoiceAI.getInstance() + if (ai) { + ai.unsubscribe() + ai.destroy() + } + } catch {} + } + }, [isReady, isConnected, client, rtmClient, config.channel_name]) + + // Mic toggle + const handleMicToggle = useCallback(async () => { + const next = !isMicEnabled + if (localMicrophoneTrack) { + try { + await localMicrophoneTrack.setEnabled(next) + } catch (err) { + console.error('Mic toggle failed:', err) + } + } + setIsMicEnabled(next) + }, [isMicEnabled, localMicrophoneTrack]) + + const visualizerState = useMemo( + () => mapAgentVisualizerState(agentState, isAgentConnected, connectionState), + [agentState, isAgentConnected, connectionState], + ) + + return ( +
+ +
+ {/* Left column: visualizer + mic control */} +
+ + + {/* Hidden RemoteUser audio players */} + {remoteUsers.map((u) => ( +
+ +
+ ))} + + {/* Mic button */} +
+ +
+ + {/* Waiting state */} + {!isAgentConnected && isConnected && ( +
+ Waiting for agent to join… +
+ )} +
+ + {/* Right column: transcript */} +
+ + +
+
+
+ ) +} + +// ─── Top-level App ──────────────────────────────────────────────────────────── + +export default function App() { + const [config, setConfig] = useState(null) + const [rtmClient, setRtmClient] = useState(null) + const [error, setError] = useState(null) + const [loading, setLoading] = useState(true) + const clientRef = useRef | null>(null) + + // Create RTC client once + if (!clientRef.current) { + clientRef.current = AgoraRTC.createClient({ mode: 'rtc', codec: 'vp8' }) + } + + useEffect(() => { + let cancelled = false + ;(async () => { + try { + const cfg = await getConfig() + + // Create and login RTM client + const rtm = new AgoraRTM.RTM(cfg.app_id, cfg.uid) + await rtm.login({ token: cfg.token }) + await rtm.subscribe(cfg.channel_name) + + if (!cancelled) { + setConfig(cfg) + setRtmClient(rtm as RTMClient) + } + } catch (err) { + if (!cancelled) { + console.error('Startup failed:', err) + setError(err instanceof Error ? err.message : 'Failed to initialize') + } + } finally { + if (!cancelled) setLoading(false) + } + })() + + return () => { + cancelled = true + } + }, []) + + const handleTokenWillExpire = useCallback( + async (uid: string) => { + const cfg = await getConfig({ uid }) + return { rtcToken: cfg.token, rtmToken: cfg.token } + }, + [], + ) + + if (loading) { + return ( +
+ Connecting… +
+ ) + } + + if (error || !config || !rtmClient) { + return ( +
+ {error || 'Configuration error'} +
+ ) + } + + return ( + + + + ) +} diff --git a/frontend/src/lib/conversation.test.ts b/frontend/src/lib/conversation.test.ts new file mode 100644 index 0000000..ae15110 --- /dev/null +++ b/frontend/src/lib/conversation.test.ts @@ -0,0 +1,19 @@ +import { expect, test } from 'vitest' +import { normalizeTranscript, normalizeTranscriptSpacing } from './conversation' + +test('normalizeTranscriptSpacing inserts spaces and collapses whitespace', () => { + expect(normalizeTranscriptSpacing('Hello.World,now ok')).toBe('Hello. World, now ok') +}) + +test("normalizeTranscript remaps uid '0' to the local uid and normalizes text", () => { + const out = normalizeTranscript( + [ + { uid: '0', text: 'Hi.There', turn_id: '1', status: 0 }, + { uid: '42', text: 'ok', turn_id: '2', status: 0 }, + ] as any, + 'local-9', + ) + expect(out[0].uid).toBe('local-9') + expect(out[0].text).toBe('Hi. There') + expect(out[1].uid).toBe('42') +}) diff --git a/frontend/src/lib/conversation.ts b/frontend/src/lib/conversation.ts new file mode 100644 index 0000000..e23f825 --- /dev/null +++ b/frontend/src/lib/conversation.ts @@ -0,0 +1,97 @@ +import { + type AgentState, + type AgentTranscription, + TurnStatus, + type TranscriptHelperItem, + type UserTranscription, +} from 'agora-agent-client-toolkit' +import { + type AgentVisualizerState, + type IMessageListItem, +} from 'agora-agent-uikit' + +export function normalizeTranscriptSpacing(text: string): string { + return text + .replace(/([.!?])([A-Za-z])/g, '$1 $2') + .replace(/,([A-Za-z])/g, ', $1') + .replace(/\s{2,}/g, ' ') + .trim() +} + +export function normalizeTimestampMs(timestamp: number): number { + return timestamp > 1e12 ? timestamp : timestamp * 1000 +} + +export function mapAgentVisualizerState( + agentState: AgentState | null, + isAgentConnected: boolean, + connectionState: string, +): AgentVisualizerState { + if (connectionState === 'DISCONNECTED' || connectionState === 'DISCONNECTING') { + return 'disconnected' + } + + if (connectionState === 'CONNECTING' || connectionState === 'RECONNECTING') { + return 'joining' + } + + if (!isAgentConnected) { + return 'not-joined' + } + + switch (agentState) { + case 'listening': + return 'listening' + case 'thinking': + return 'analyzing' + case 'speaking': + return 'talking' + case 'idle': + case 'silent': + default: + return 'ambient' + } +} + +function toMessageListItem( + item: TranscriptHelperItem>, +): IMessageListItem { + return { + turn_id: item.turn_id, + uid: Number(item.uid) || 0, + text: typeof item.text === 'string' ? item.text : '', + status: item.status as unknown as IMessageListItem['status'], + createdAt: + typeof item._time === 'number' + ? normalizeTimestampMs(item._time) + : undefined, + } +} + +export function normalizeTranscript( + transcript: TranscriptHelperItem>[], + localUid: string, +) { + return transcript.map((item) => { + const nextUid = item.uid === '0' ? localUid : item.uid + const nextText = + typeof item.text === 'string' ? normalizeTranscriptSpacing(item.text) : item.text + + return { ...item, uid: nextUid, text: nextText } + }) +} + +export function getMessageList( + transcript: TranscriptHelperItem>[], +) { + return transcript + .filter((item) => item.status !== TurnStatus.IN_PROGRESS) + .map(toMessageListItem) +} + +export function getCurrentInProgressMessage( + transcript: TranscriptHelperItem>[], +) { + const item = transcript.find((entry) => entry.status === TurnStatus.IN_PROGRESS) + return item ? toMessageListItem(item) : null +} diff --git a/frontend/src/services/api.ts b/frontend/src/services/api.ts new file mode 100644 index 0000000..a18847a --- /dev/null +++ b/frontend/src/services/api.ts @@ -0,0 +1,20 @@ +const API_BASE_URL = '/api' + +export interface GetConfigResponse { + app_id: string + token: string + uid: string + channel_name: string + agent_uid: string +} + +export async function getConfig(options?: { uid?: string | number }): Promise { + const params = new URLSearchParams() + if (options?.uid !== undefined && options.uid !== '') params.set('uid', String(options.uid)) + const query = params.toString() + const response = await fetch(`${API_BASE_URL}/get_config${query ? `?${query}` : ''}`) + if (!response.ok) throw new Error(`HTTP ${response.status}`) + const result = await response.json() + if (result.code !== 0 || !result.data) throw new Error(result.msg || 'Failed to get configuration') + return result.data as GetConfigResponse +} diff --git a/frontend/src/types/conversation.ts b/frontend/src/types/conversation.ts new file mode 100644 index 0000000..479cca0 --- /dev/null +++ b/frontend/src/types/conversation.ts @@ -0,0 +1,22 @@ +import type { RTMClient } from 'agora-rtm'; + +export interface AgoraTokenData { + token: string; + uid: string; + channel: string; + agentId?: string; + appId?: string; + agentUid?: string; +} + +export interface AgoraRenewalTokens { + rtcToken: string; + rtmToken: string; +} + +export interface ConversationComponentProps { + agoraData: AgoraTokenData; + rtmClient: RTMClient; + onTokenWillExpire: (uid: string) => Promise; + onEndConversation: () => void; +} diff --git a/internal/cli/playground/webassets/SOURCE_HASH b/internal/cli/playground/webassets/SOURCE_HASH new file mode 100644 index 0000000..70e575f --- /dev/null +++ b/internal/cli/playground/webassets/SOURCE_HASH @@ -0,0 +1 @@ +87e3042ef56379b9c5b4c33bbb5a9a49864941df3ffe51425922f2c7654da126 diff --git a/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js b/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js new file mode 100644 index 0000000..e4caf61 --- /dev/null +++ b/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js @@ -0,0 +1,13 @@ +import{c as In,g as Sn}from"./index-9L6p1D6X.js";var xe={exports:{}};(function(t,e){(function(r,n){var i="0.7.41",o="",c="?",l="function",E="undefined",d="object",p="string",I="major",_="model",R="name",T="type",A="vendor",O="version",m="architecture",D="console",N="mobile",g="tablet",x="smarttv",v="wearable",X="embedded",At=500,ht="Amazon",q="Apple",ct="ASUS",gt="BlackBerry",Ot="Browser",Q="Chrome",Ct="Edge",_t="Firefox",It="Google",kt="Honor",Ut="Huawei",S="Lenovo",s="LG",a="Microsoft",u="Motorola",f="Nvidia",L="OnePlus",w="Opera",B="OPPO",J="Samsung",Tt="Sharp",bt="Sony",Pt="Xiaomi",nt="Zebra",vt="Facebook",yt="Chromium OS",it="Mac OS",y=" Browser",st=function(F,k){var U={};for(var K in F)k[K]&&k[K].length%2===0?U[K]=k[K].concat(F[K]):U[K]=F[K];return U},ut=function(F){for(var k={},U=0;U0?W.length===2?typeof W[1]==l?this[W[0]]=W[1].call(this,Nt):this[W[0]]=W[1]:W.length===3?typeof W[1]===l&&!(W[1].exec&&W[1].test)?this[W[0]]=Nt?W[1].call(this,Nt,W[2]):n:this[W[0]]=Nt?Nt.replace(W[1],W[2]):n:W.length===4&&(this[W[0]]=Nt?W[3].call(this,Nt.replace(W[1],W[2])):n):this[W]=Nt||n;U+=2}},Jt=function(F,k){for(var U in k)if(typeof k[U]===d&&k[U].length>0){for(var K=0;K2&&(M[_]="iPad",M[T]=g),M},this.getEngine=function(){var M={};return M[R]=n,M[O]=n,zt.call(M,K,mt.engine),M},this.getOS=function(){var M={};return M[R]=n,M[O]=n,zt.call(M,K,mt.os),W&&!M[R]&&wt&&wt.platform&&wt.platform!="Unknown"&&(M[R]=wt.platform.replace(/chrome os/i,yt).replace(/macos/i,it)),M},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return K},this.setUA=function(M){return K=typeof M===p&&M.length>At?Lt(M,At):M,this},this.setUA(K),this};Rt.VERSION=i,Rt.BROWSER=ut([R,O,I]),Rt.CPU=ut([m]),Rt.DEVICE=ut([_,A,T,D,N,x,g,v,X]),Rt.ENGINE=Rt.OS=ut([R,O]),t.exports&&(e=t.exports=Rt),e.UAParser=Rt;var Wt=typeof r!==E&&(r.jQuery||r.Zepto);if(Wt&&!Wt.ua){var ie=new Rt;Wt.ua=ie.getResult(),Wt.ua.get=function(){return ie.getUA()},Wt.ua.set=function(F){ie.setUA(F);var k=ie.getResult();for(var U in k)Wt.ua[U]=k[U]}}})(typeof window=="object"?window:In)})(xe,xe.exports);var mn=xe.exports;const Nn=Sn(mn);function Vr(t,e){return function(){return t.apply(e,arguments)}}const{toString:gn}=Object.prototype,{getPrototypeOf:Kt}=Object,{iterator:ee,toStringTag:kr}=Symbol,pe=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),te=(t,e)=>{let r=t;const n=[];for(;r!=null&&r!==Object.prototype;){if(n.indexOf(r)!==-1)return!1;if(n.push(r),pe(r,e))return!0;r=Kt(r)}return!1},Cn=(t,e)=>t!=null&&te(t,e)?t[e]:void 0,Je=(t=>e=>{const r=gn.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),ft=t=>(t=t.toLowerCase(),e=>Je(e)===t),Ie=t=>e=>typeof e===t,{isArray:Bt}=Array,jt=Ie("undefined");function Yt(t){return t!==null&&!jt(t)&&t.constructor!==null&&!jt(t.constructor)&&at(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Wr=ft("ArrayBuffer");function bn(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Wr(t.buffer),e}const Ln=Ie("string"),at=Ie("function"),Gr=Ie("number"),Xt=t=>t!==null&&typeof t=="object",wn=t=>t===!0||t===!1,le=t=>{if(!Xt(t))return!1;const e=Kt(t);return(e===null||e===Object.prototype||Kt(e)===null)&&!te(t,kr)&&!te(t,ee)},Dn=t=>{if(!Xt(t)||Yt(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},Pn=ft("Date"),yn=ft("File"),Mn=t=>!!(t&&typeof t.uri<"u"),Un=t=>t&&typeof t.getParts<"u",vn=ft("Blob"),xn=ft("FileList"),Fn=t=>Xt(t)&&at(t.pipe);function Bn(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const cr=Bn(),ur=typeof cr.FormData<"u"?cr.FormData:void 0,Vn=t=>{if(!t)return!1;if(ur&&t instanceof ur)return!0;const e=Kt(t);if(!e||e===Object.prototype||!at(t.append))return!1;const r=Je(t);return r==="formdata"||r==="object"&&at(t.toString)&&t.toString()==="[object FormData]"},kn=ft("URLSearchParams"),[Wn,Gn,Hn,Kn]=["ReadableStream","Request","Response","Headers"].map(ft),jn=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function re(t,e,{allOwnKeys:r=!1}={}){if(t===null||typeof t>"u")return;let n,i;if(typeof t!="object"&&(t=[t]),Bt(t))for(n=0,i=t.length;n0;)if(i=r[n],e===i.toLowerCase())return i;return null}const xt=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Kr=t=>!jt(t)&&t!==xt;function Fe(...t){const{caseless:e,skipUndefined:r}=Kr(this)&&this||{},n={},i=(o,c)=>{if(c==="__proto__"||c==="constructor"||c==="prototype")return;const l=e&&typeof c=="string"&&Hr(n,c)||c,E=pe(n,l)?n[l]:void 0;le(E)&&le(o)?n[l]=Fe(E,o):le(o)?n[l]=Fe({},o):Bt(o)?n[l]=o.slice():(!r||!jt(o))&&(n[l]=o)};for(let o=0,c=t.length;o(re(e,(i,o)=>{r&&at(i)?Object.defineProperty(t,o,{__proto__:null,value:Vr(i,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,o,{__proto__:null,value:i,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),t),Xn=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),zn=(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),r&&Object.assign(t.prototype,r)},Jn=(t,e,r,n)=>{let i,o,c;const l={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),o=i.length;o-- >0;)c=i[o],(!n||n(c,t,e))&&!l[c]&&(e[c]=t[c],l[c]=!0);t=r!==!1&&Kt(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},qn=(t,e,r)=>{t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;const n=t.indexOf(e,r);return n!==-1&&n===r},Qn=t=>{if(!t)return null;if(Bt(t))return t;let e=t.length;if(!Gr(e))return null;const r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},$n=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Kt(Uint8Array)),Zn=(t,e)=>{const n=(t&&t[ee]).call(t);let i;for(;(i=n.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},ts=(t,e)=>{let r;const n=[];for(;(r=t.exec(e))!==null;)n.push(r);return n},es=ft("HTMLFormElement"),rs=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:ns}=Object.prototype,ss=ft("RegExp"),jr=(t,e)=>{const r=Object.getOwnPropertyDescriptors(t),n={};re(r,(i,o)=>{let c;(c=e(i,o,t))!==!1&&(n[o]=c||i)}),Object.defineProperties(t,n)},is=t=>{jr(t,(e,r)=>{if(at(t)&&["arguments","caller","callee"].includes(r))return!1;const n=t[r];if(at(n)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},os=(t,e)=>{const r={},n=i=>{i.forEach(o=>{r[o]=!0})};return Bt(t)?n(t):n(String(t).split(e)),r},as=()=>{},cs=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function us(t){return!!(t&&at(t.append)&&t[kr]==="FormData"&&t[ee])}const Es=t=>{const e=new WeakSet,r=n=>{if(Xt(n)){if(e.has(n))return;if(Yt(n))return n;if(!("toJSON"in n)){e.add(n);const i=Bt(n)?[]:{};return re(n,(o,c)=>{const l=r(o);!jt(l)&&(i[c]=l)}),e.delete(n),i}}return n};return r(t)},ls=ft("AsyncFunction"),_s=t=>t&&(Xt(t)||at(t))&&at(t.then)&&at(t.catch),Yr=((t,e)=>t?setImmediate:e?((r,n)=>(xt.addEventListener("message",({source:i,data:o})=>{i===xt&&o===r&&n.length&&n.shift()()},!1),i=>{n.push(i),xt.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",at(xt.postMessage)),ds=typeof queueMicrotask<"u"?queueMicrotask.bind(xt):typeof process<"u"&&process.nextTick||Yr,Xr=t=>t!=null&&at(t[ee]),ps=t=>t!=null&&te(t,ee)&&Xr(t),h={isArray:Bt,isArrayBuffer:Wr,isBuffer:Yt,isFormData:Vn,isArrayBufferView:bn,isString:Ln,isNumber:Gr,isBoolean:wn,isObject:Xt,isPlainObject:le,isEmptyObject:Dn,isReadableStream:Wn,isRequest:Gn,isResponse:Hn,isHeaders:Kn,isUndefined:jt,isDate:Pn,isFile:yn,isReactNativeBlob:Mn,isReactNative:Un,isBlob:vn,isRegExp:ss,isFunction:at,isStream:Fn,isURLSearchParams:kn,isTypedArray:$n,isFileList:xn,forEach:re,merge:Fe,extend:Yn,trim:jn,stripBOM:Xn,inherits:zn,toFlatObject:Jn,kindOf:Je,kindOfTest:ft,endsWith:qn,toArray:Qn,forEachEntry:Zn,matchAll:ts,isHTMLForm:es,hasOwnProperty:pe,hasOwnProp:pe,hasOwnInPrototypeChain:te,getSafeProp:Cn,reduceDescriptors:jr,freezeMethods:is,toObjectSet:os,toCamelCase:rs,noop:as,toFiniteNumber:cs,findKey:Hr,global:xt,isContextDefined:Kr,isSpecCompliantForm:us,toJSONObject:Es,isAsyncFn:ls,isThenable:_s,setImmediate:Yr,asap:ds,isIterable:Xr,isSafeIterable:ps},hs=h.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ts=t=>{const e={};let r,n,i;return t&&t.split(` +`).forEach(function(c){i=c.indexOf(":"),r=c.substring(0,i).trim().toLowerCase(),n=c.substring(i+1).trim(),!(!r||e[r]&&hs[r])&&(r==="set-cookie"?e[r]?e[r].push(n):e[r]=[n]:e[r]=e[r]?e[r]+", "+n:n)}),e};function Rs(t){let e=0,r=t.length;for(;ee;){const n=t.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return e===0&&r===t.length?t:t.slice(e,r)}const fs=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),As=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function qe(t,e){return h.isArray(t)?t.map(r=>qe(r,e)):Rs(String(t).replace(e,""))}const Os=t=>qe(t,fs),Is=t=>qe(t,As);function zr(t){const e=Object.create(null);return h.forEach(t.toJSON(),(r,n)=>{e[n]=Is(r)}),e}const Er=Symbol("internals");function qt(t){return t&&String(t).trim().toLowerCase()}function _e(t){return t===!1||t==null?t:h.isArray(t)?t.map(_e):Os(String(t))}function Ss(t){const e=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}const ms=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function be(t,e,r,n,i){if(h.isFunction(n))return n.call(this,e,r);if(i&&(e=r),!!h.isString(e)){if(h.isString(n))return e.indexOf(n)!==-1;if(h.isRegExp(n))return n.test(e)}}function Ns(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,r,n)=>r.toUpperCase()+n)}function gs(t,e){const r=h.toCamelCase(" "+e);["get","set","has"].forEach(n=>{Object.defineProperty(t,n+r,{__proto__:null,value:function(i,o,c){return this[n].call(this,e,i,o,c)},configurable:!0})})}let rt=class{constructor(e){e&&this.set(e)}set(e,r,n){const i=this;function o(l,E,d){const p=qt(E);if(!p)return;const I=h.findKey(i,p);(!I||i[I]===void 0||d===!0||d===void 0&&i[I]!==!1)&&(i[I||E]=_e(l))}const c=(l,E)=>h.forEach(l,(d,p)=>o(d,p,E));if(h.isPlainObject(e)||e instanceof this.constructor)c(e,r);else if(h.isString(e)&&(e=e.trim())&&!ms(e))c(Ts(e),r);else if(h.isObject(e)&&h.isSafeIterable(e)){let l=Object.create(null),E,d;for(const p of e){if(!h.isArray(p))throw new TypeError("Object iterator must return a key-value pair");d=p[0],h.hasOwnProp(l,d)?(E=l[d],l[d]=h.isArray(E)?[...E,p[1]]:[E,p[1]]):l[d]=p[1]}c(l,r)}else e!=null&&o(r,e,n);return this}get(e,r){if(e=qt(e),e){const n=h.findKey(this,e);if(n){const i=this[n];if(!r)return i;if(r===!0)return Ss(i);if(h.isFunction(r))return r.call(this,i,n);if(h.isRegExp(r))return r.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,r){if(e=qt(e),e){const n=h.findKey(this,e);return!!(n&&this[n]!==void 0&&(!r||be(this,this[n],n,r)))}return!1}delete(e,r){const n=this;let i=!1;function o(c){if(c=qt(c),c){const l=h.findKey(n,c);l&&(!r||be(n,n[l],l,r))&&(delete n[l],i=!0)}}return h.isArray(e)?e.forEach(o):o(e),i}clear(e){const r=Object.keys(this);let n=r.length,i=!1;for(;n--;){const o=r[n];(!e||be(this,this[o],o,e,!0))&&(delete this[o],i=!0)}return i}normalize(e){const r=this,n={};return h.forEach(this,(i,o)=>{const c=h.findKey(n,o);if(c){r[c]=_e(i),delete r[o];return}const l=e?Ns(o):String(o).trim();l!==o&&delete r[o],r[l]=_e(i),n[l]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const r=Object.create(null);return h.forEach(this,(n,i)=>{n!=null&&n!==!1&&(r[i]=e&&h.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,r])=>e+": "+r).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...r){const n=new this(e);return r.forEach(i=>n.set(i)),n}static accessor(e){const n=(this[Er]=this[Er]={accessors:{}}).accessors,i=this.prototype;function o(c){const l=qt(c);n[l]||(gs(i,c),n[l]=!0)}return h.isArray(e)?e.forEach(o):o(e),this}};rt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);h.reduceDescriptors(rt.prototype,({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(n){this[r]=n}}});h.freezeMethods(rt);const Cs="[REDACTED ****]";function bs(t){if(h.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(h.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function Ls(t,e){const r=new Set(e.map(o=>String(o).toLowerCase())),n=[],i=o=>{if(o===null||typeof o!="object"||h.isBuffer(o))return o;if(n.indexOf(o)!==-1)return;o instanceof rt&&(o=o.toJSON()),n.push(o);let c;if(h.isArray(o))c=[],o.forEach((l,E)=>{const d=i(l);h.isUndefined(d)||(c[E]=d)});else{if(!h.isPlainObject(o)&&bs(o))return n.pop(),o;c=Object.create(null);for(const[l,E]of Object.entries(o)){const d=r.has(l.toLowerCase())?Cs:i(E);h.isUndefined(d)||(c[l]=d)}}return n.pop(),c};return i(t)}let C=class Jr extends Error{static from(e,r,n,i,o,c){const l=new Jr(e.message,r||e.code,n,i,o);return Object.defineProperty(l,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),l.name=e.name,e.status!=null&&l.status==null&&(l.status=e.status),c&&Object.assign(l,c),l}constructor(e,r,n,i,o){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,r&&(this.code=r),n&&(this.config=n),i&&(this.request=i),o&&(this.response=o,this.status=o.status)}toJSON(){const e=this.config,r=e&&h.hasOwnProp(e,"redact")?e.redact:void 0,n=h.isArray(r)&&r.length>0?Ls(e,r):h.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};C.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";C.ERR_BAD_OPTION="ERR_BAD_OPTION";C.ECONNABORTED="ECONNABORTED";C.ETIMEDOUT="ETIMEDOUT";C.ECONNREFUSED="ECONNREFUSED";C.ERR_NETWORK="ERR_NETWORK";C.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";C.ERR_DEPRECATED="ERR_DEPRECATED";C.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";C.ERR_BAD_REQUEST="ERR_BAD_REQUEST";C.ERR_CANCELED="ERR_CANCELED";C.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";C.ERR_INVALID_URL="ERR_INVALID_URL";C.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const ws=null,qr=100;function Be(t){return h.isPlainObject(t)||h.isArray(t)}function Qr(t){return h.endsWith(t,"[]")?t.slice(0,-2):t}function Le(t,e,r){return t?t.concat(e).map(function(i,o){return i=Qr(i),!r&&o?"["+i+"]":i}).join(r?".":""):e}function Ds(t){return h.isArray(t)&&!t.some(Be)}const Ps=h.toFlatObject(h,{},null,function(e){return/^is[A-Z]/.test(e)});function Se(t,e,r){if(!h.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,r=h.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(D,N){return!h.isUndefined(N[D])});const n=r.metaTokens,i=r.visitor||T,o=r.dots,c=r.indexes,l=r.Blob||typeof Blob<"u"&&Blob,E=r.maxDepth===void 0?qr:r.maxDepth,d=l&&h.isSpecCompliantForm(e),p=[];if(!h.isFunction(i))throw new TypeError("visitor must be a function");function I(m){if(m===null)return"";if(h.isDate(m))return m.toISOString();if(h.isBoolean(m))return m.toString();if(!d&&h.isBlob(m))throw new C("Blob is not supported. Use a Buffer instead.");if(h.isArrayBuffer(m)||h.isTypedArray(m)){if(d&&typeof l=="function")return new l([m]);if(typeof Buffer<"u")return Buffer.from(m);throw new C("Blob is not supported. Use a Buffer instead.",C.ERR_NOT_SUPPORT)}return m}function _(m){if(m>E)throw new C("Object is too deeply nested ("+m+" levels). Max depth: "+E,C.ERR_FORM_DATA_DEPTH_EXCEEDED)}function R(m,D){if(E===1/0)return JSON.stringify(m);const N=[];return JSON.stringify(m,function(x,v){if(!h.isObject(v))return v;for(;N.length&&N[N.length-1]!==this;)N.pop();return N.push(v),_(D+N.length-1),v})}function T(m,D,N){let g=m;if(h.isReactNative(e)&&h.isReactNativeBlob(m))return e.append(Le(N,D,o),I(m)),!1;if(m&&!N&&typeof m=="object"){if(h.endsWith(D,"{}"))D=n?D:D.slice(0,-2),m=R(m,1);else if(h.isArray(m)&&Ds(m)||(h.isFileList(m)||h.endsWith(D,"[]"))&&(g=h.toArray(m)))return D=Qr(D),g.forEach(function(v,X){!(h.isUndefined(v)||v===null)&&e.append(c===!0?Le([D],X,o):c===null?D:D+"[]",I(v))}),!1}return Be(m)?!0:(e.append(Le(N,D,o),I(m)),!1)}const A=Object.assign(Ps,{defaultVisitor:T,convertValue:I,isVisitable:Be});function O(m,D,N=0){if(!h.isUndefined(m)){if(_(N),p.indexOf(m)!==-1)throw new Error("Circular reference detected in "+D.join("."));p.push(m),h.forEach(m,function(x,v){(!(h.isUndefined(x)||x===null)&&i.call(e,x,h.isString(v)?v.trim():v,D,A))===!0&&O(x,D?D.concat(v):[v],N+1)}),p.pop()}}if(!h.isObject(t))throw new TypeError("data must be an object");return O(t),e}function lr(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function Qe(t,e){this._pairs=[],t&&Se(t,this,e)}const $r=Qe.prototype;$r.append=function(e,r){this._pairs.push([e,r])};$r.toString=function(e){const r=e?n=>e.call(this,n,lr):lr;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};function ys(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Zr(t,e,r){if(!e)return t;t=t||"";const n=h.isFunction(r)?{serialize:r}:r,i=h.getSafeProp(n,"encode")||ys,o=h.getSafeProp(n,"serialize");let c;if(o?c=o(e,n):c=h.isURLSearchParams(e)?e.toString():new Qe(e,n).toString(i),c){const l=t.indexOf("#");l!==-1&&(t=t.slice(0,l)),t+=(t.indexOf("?")===-1?"?":"&")+c}return t}class _r{constructor(){this.handlers=[]}use(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){h.forEach(this.handlers,function(n){n!==null&&e(n)})}}const $e={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Ms=typeof URLSearchParams<"u"?URLSearchParams:Qe,Us=typeof FormData<"u"?FormData:null,vs=typeof Blob<"u"?Blob:null,xs={isBrowser:!0,classes:{URLSearchParams:Ms,FormData:Us,Blob:vs},protocols:["http","https","file","blob","url","data"]},Ze=typeof window<"u"&&typeof document<"u",Ve=typeof navigator=="object"&&navigator||void 0,Fs=Ze&&(!Ve||["ReactNative","NativeScript","NS"].indexOf(Ve.product)<0),Bs=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Vs=Ze&&window.location.href||"http://localhost",ks=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:Fs,hasStandardBrowserWebWorkerEnv:Bs,navigator:Ve,origin:Vs},Symbol.toStringTag,{value:"Module"})),tt={...ks,...xs};function Ws(t,e){return Se(t,new tt.classes.URLSearchParams,{visitor:function(r,n,i,o){return tt.isNode&&h.isBuffer(r)?(this.append(n,r.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...e})}const dr=qr;function tn(t){if(t>dr)throw new C("FormData field is too deeply nested ("+t+" levels). Max depth: "+dr,C.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Gs(t){const e=[],r=/\w+|\[(\w*)]/g;let n;for(;(n=r.exec(t))!==null;)tn(e.length),e.push(n[0]==="[]"?"":n[1]||n[0]);return e}function Hs(t){const e={},r=Object.keys(t);let n;const i=r.length;let o;for(n=0;n=r.length;return c=!c&&h.isArray(i)?i.length:c,E?(h.hasOwnProp(i,c)?i[c]=h.isArray(i[c])?i[c].concat(n):[i[c],n]:i[c]=n,!l):((!h.hasOwnProp(i,c)||!h.isObject(i[c]))&&(i[c]=[]),e(r,n,i[c],o)&&h.isArray(i[c])&&(i[c]=Hs(i[c])),!l)}if(h.isFormData(t)&&h.isFunction(t.entries)){const r={};return h.forEachEntry(t,(n,i)=>{e(Gs(n),i,r,0)}),r}return null}const Gt=(t,e)=>t!=null&&h.hasOwnProp(t,e)?t[e]:void 0;function Ks(t,e,r){if(h.isString(t))try{return(e||JSON.parse)(t),h.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}const ne={transitional:$e,adapter:["xhr","http","fetch"],transformRequest:[function(e,r){const n=r.getContentType()||"",i=n.indexOf("application/json")>-1,o=h.isObject(e);if(o&&h.isHTMLForm(e)&&(e=new FormData(e)),h.isFormData(e))return i?JSON.stringify(en(e)):e;if(h.isArrayBuffer(e)||h.isBuffer(e)||h.isStream(e)||h.isFile(e)||h.isBlob(e)||h.isReadableStream(e))return e;if(h.isArrayBufferView(e))return e.buffer;if(h.isURLSearchParams(e))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let l;if(o){const E=Gt(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return Ws(e,E).toString();if((l=h.isFileList(e))||n.indexOf("multipart/form-data")>-1){const d=Gt(this,"env"),p=d&&d.FormData;return Se(l?{"files[]":e}:e,p&&new p,E)}}return o||i?(r.setContentType("application/json",!1),Ks(e)):e}],transformResponse:[function(e){const r=Gt(this,"transitional")||ne.transitional,n=r&&r.forcedJSONParsing,i=Gt(this,"responseType"),o=i==="json";if(h.isResponse(e)||h.isReadableStream(e))return e;if(e&&h.isString(e)&&(n&&!i||o)){const l=!(r&&r.silentJSONParsing)&&o;try{return JSON.parse(e,Gt(this,"parseReviver"))}catch(E){if(l)throw E.name==="SyntaxError"?C.from(E,C.ERR_BAD_RESPONSE,this,null,Gt(this,"response")):E}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:tt.classes.FormData,Blob:tt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};h.forEach(["delete","get","head","post","put","patch","query"],t=>{ne.headers[t]={}});function we(t,e){const r=this||ne,n=e||r,i=rt.from(n.headers);let o=n.data;return h.forEach(t,function(l){o=l.call(r,o,i.normalize(),e?e.status:void 0)}),i.normalize(),o}function rn(t){return!!(t&&t.__CANCEL__)}let se=class extends C{constructor(e,r,n){super(e??"canceled",C.ERR_CANCELED,r,n),this.name="CanceledError",this.__CANCEL__=!0}};function nn(t,e,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?t(r):e(new C("Request failed with status code "+r.status,r.status>=400&&r.status<500?C.ERR_BAD_REQUEST:C.ERR_BAD_RESPONSE,r.config,r.request,r))}function js(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function Ys(t,e){t=t||10;const r=new Array(t),n=new Array(t);let i=0,o=0,c;return e=e!==void 0?e:1e3,function(E){const d=Date.now(),p=n[o];c||(c=d),r[i]=E,n[i]=d;let I=o,_=0;for(;I!==i;)_+=r[I++],I=I%t;if(i=(i+1)%t,i===o&&(o=(o+1)%t),d-c{r=p,i=null,o&&(clearTimeout(o),o=null),t(...d)};return[(...d)=>{const p=Date.now(),I=p-r;I>=n?c(d,p):(i=d,o||(o=setTimeout(()=>{o=null,c(i)},n-I)))},()=>i&&c(i)]}const he=(t,e,r=3)=>{let n=0;const i=Ys(50,250);return Xs(o=>{if(!o||typeof o.loaded!="number")return;const c=o.loaded,l=o.lengthComputable?o.total:void 0,E=l!=null?Math.min(c,l):c,d=Math.max(0,E-n),p=i(d);n=Math.max(n,E);const I={loaded:E,total:l,progress:l?E/l:void 0,bytes:d,rate:p||void 0,estimated:p&&l?(l-E)/p:void 0,event:o,lengthComputable:l!=null,[e?"download":"upload"]:!0};t(I)},r)},pr=(t,e)=>{const r=t!=null;return[n=>e[0]({lengthComputable:r,total:t,loaded:n}),e[1]]},hr=t=>(...e)=>h.asap(()=>t(...e)),zs=tt.hasStandardBrowserEnv?((t,e)=>r=>(r=new URL(r,tt.origin),t.protocol===r.protocol&&t.host===r.host&&(e||t.port===r.port)))(new URL(tt.origin),tt.navigator&&/(msie|trident)/i.test(tt.navigator.userAgent)):()=>!0,Js=tt.hasStandardBrowserEnv?{write(t,e,r,n,i,o,c){if(typeof document>"u")return;const l=[`${t}=${encodeURIComponent(e)}`];h.isNumber(r)&&l.push(`expires=${new Date(r).toUTCString()}`),h.isString(n)&&l.push(`path=${n}`),h.isString(i)&&l.push(`domain=${i}`),o===!0&&l.push("secure"),h.isString(c)&&l.push(`SameSite=${c}`),document.cookie=l.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let r=0;rt instanceof rt?{...t}:t;function Vt(t,e){t=t||{},e=e||{};const r=Object.create(null);Object.defineProperty(r,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function n(p,I,_,R){return h.isPlainObject(p)&&h.isPlainObject(I)?h.merge.call({caseless:R},p,I):h.isPlainObject(I)?h.merge({},I):h.isArray(I)?I.slice():I}function i(p,I,_,R){if(h.isUndefined(I)){if(!h.isUndefined(p))return n(void 0,p,_,R)}else return n(p,I,_,R)}function o(p,I){if(!h.isUndefined(I))return n(void 0,I)}function c(p,I){if(h.isUndefined(I)){if(!h.isUndefined(p))return n(void 0,p)}else return n(void 0,I)}function l(p){const I=h.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!h.isUndefined(I))if(h.isPlainObject(I)){if(h.hasOwnProp(I,p))return I[p]}else return;const _=h.hasOwnProp(t,"transitional")?t.transitional:void 0;if(h.isPlainObject(_)&&h.hasOwnProp(_,p))return _[p]}function E(p,I,_){if(h.hasOwnProp(e,_))return n(p,I);if(h.hasOwnProp(t,_))return n(void 0,p)}const d={url:o,method:o,data:o,baseURL:c,transformRequest:c,transformResponse:c,paramsSerializer:c,timeout:c,timeoutMessage:c,withCredentials:c,withXSRFToken:c,adapter:c,responseType:c,xsrfCookieName:c,xsrfHeaderName:c,onUploadProgress:c,onDownloadProgress:c,decompress:c,maxContentLength:c,maxBodyLength:c,beforeRedirect:c,transport:c,httpAgent:c,httpsAgent:c,cancelToken:c,socketPath:c,allowedSocketPaths:c,responseEncoding:c,validateStatus:E,headers:(p,I,_)=>i(Rr(p),Rr(I),_,!0)};return h.forEach(Object.keys({...t,...e}),function(I){if(I==="__proto__"||I==="constructor"||I==="prototype")return;const _=h.hasOwnProp(d,I)?d[I]:i,R=h.hasOwnProp(t,I)?t[I]:void 0,T=h.hasOwnProp(e,I)?e[I]:void 0,A=_(R,T,I);h.isUndefined(A)&&_!==E||(r[I]=A)}),h.hasOwnProp(e,"validateStatus")&&h.isUndefined(e.validateStatus)&&l("validateStatusUndefinedResolves")===!1&&(h.hasOwnProp(t,"validateStatus")?r.validateStatus=n(void 0,t.validateStatus):delete r.validateStatus),r}const ri=["content-type","content-length"];function ni(t,e,r){if(r!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([n,i])=>{ri.includes(n.toLowerCase())&&t.set(n,i)})}const si=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16)));function on(t){const e=Vt({},t),r=_=>h.hasOwnProp(e,_)?e[_]:void 0,n=r("data");let i=r("withXSRFToken");const o=r("xsrfHeaderName"),c=r("xsrfCookieName");let l=r("headers");const E=r("auth"),d=r("baseURL"),p=r("allowAbsoluteUrls"),I=r("url");if(e.headers=l=rt.from(l),e.url=Zr(sn(d,I,p,e),r("params"),r("paramsSerializer")),E){const _=h.getSafeProp(E,"username")||"",R=h.getSafeProp(E,"password")||"";try{l.set("Authorization","Basic "+btoa(_+":"+(R?si(R):"")))}catch(T){throw C.from(T,C.ERR_BAD_OPTION_VALUE,t)}}if(h.isFormData(n)&&(tt.hasStandardBrowserEnv||tt.hasStandardBrowserWebWorkerEnv||h.isReactNative(n)?l.setContentType(void 0):h.isFunction(n.getHeaders)&&ni(l,n.getHeaders(),r("formDataHeaderPolicy"))),tt.hasStandardBrowserEnv&&(h.isFunction(i)&&(i=i(e)),i===!0||i==null&&zs(e.url))){const R=o&&c&&Js.read(c);R&&l.set(o,R)}return e}const ii=typeof XMLHttpRequest<"u",oi=ii&&function(t){return new Promise(function(r,n){const i=on(t);let o=i.data;const c=rt.from(i.headers).normalize();let{responseType:l,onUploadProgress:E,onDownloadProgress:d}=i,p,I,_,R,T;function A(){R&&R(),T&&T(),i.cancelToken&&i.cancelToken.unsubscribe(p),i.signal&&i.signal.removeEventListener("abort",p)}let O=new XMLHttpRequest;O.open(i.method.toUpperCase(),i.url,!0),O.timeout=i.timeout;function m(){if(!O)return;const N=rt.from("getAllResponseHeaders"in O&&O.getAllResponseHeaders()),x={data:!l||l==="text"||l==="json"?O.responseText:O.response,status:O.status,statusText:O.statusText,headers:N,config:t,request:O};nn(function(X){r(X),A()},function(X){n(X),A()},x),O=null}"onloadend"in O?O.onloadend=m:O.onreadystatechange=function(){!O||O.readyState!==4||O.status===0&&!(O.responseURL&&O.responseURL.startsWith("file:"))||setTimeout(m)},O.onabort=function(){O&&(n(new C("Request aborted",C.ECONNABORTED,t,O)),A(),O=null)},O.onerror=function(g){const x=g&&g.message?g.message:"Network Error",v=new C(x,C.ERR_NETWORK,t,O);v.event=g||null,n(v),A(),O=null},O.ontimeout=function(){let g=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const x=i.transitional||$e;i.timeoutErrorMessage&&(g=i.timeoutErrorMessage),n(new C(g,x.clarifyTimeoutError?C.ETIMEDOUT:C.ECONNABORTED,t,O)),A(),O=null},o===void 0&&c.setContentType(null),"setRequestHeader"in O&&h.forEach(zr(c),function(g,x){O.setRequestHeader(x,g)}),h.isUndefined(i.withCredentials)||(O.withCredentials=!!i.withCredentials),l&&l!=="json"&&(O.responseType=i.responseType),d&&([_,T]=he(d,!0),O.addEventListener("progress",_)),E&&O.upload&&([I,R]=he(E),O.upload.addEventListener("progress",I),O.upload.addEventListener("loadend",R)),(i.cancelToken||i.signal)&&(p=N=>{O&&(n(!N||N.type?new se(null,t,O):N),O.abort(),A(),O=null)},i.cancelToken&&i.cancelToken.subscribe(p),i.signal&&(i.signal.aborted?p():i.signal.addEventListener("abort",p)));const D=js(i.url);if(D&&!tt.protocols.includes(D)){n(new C("Unsupported protocol "+D+":",C.ERR_BAD_REQUEST,t)),A();return}O.send(o||null)})},ai=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const r=new AbortController;let n=!1;const i=function(E){if(!n){n=!0,c();const d=E instanceof Error?E:this.reason;r.abort(d instanceof C?d:new se(d instanceof Error?d.message:d))}};let o=e&&setTimeout(()=>{o=null,i(new C(`timeout of ${e}ms exceeded`,C.ETIMEDOUT))},e);const c=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(E=>{E.unsubscribe?E.unsubscribe(i):E.removeEventListener("abort",i)}),t=null)};t.forEach(E=>E.addEventListener("abort",i,{once:!0}));const{signal:l}=r;return l.unsubscribe=()=>h.asap(c),l},ci=function*(t,e){let r=t.byteLength;if(r{const i=ui(t,e);let o=0,c,l=E=>{c||(c=!0,n&&n(E))};return new ReadableStream({async pull(E){try{const{done:d,value:p}=await i.next();if(d){l(),E.close();return}let I=p.byteLength;if(r){let _=o+=I;r(_)}E.enqueue(new Uint8Array(p))}catch(d){throw l(d),d}},cancel(E){return l(E),i.return()}},{highWaterMark:2})},Te=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,li=(t,e,r)=>e+2R>=2&&n.charCodeAt(R-2)===37&&n.charCodeAt(R-1)===51&&(n.charCodeAt(R)===68||n.charCodeAt(R)===100);d>=0&&(n.charCodeAt(d)===61?(E++,d--):p(d)&&(E++,d-=3)),E===1&&d>=0&&(n.charCodeAt(d)===61||p(d))&&E++;const _=Math.floor(c/4)*3-(E||0);return _>0?_:0}let o=0;for(let c=0,l=n.length;c=55296&&E<=56319&&c+1=56320&&d<=57343?(o+=4,c++):o+=3}else o+=3}return o}const tr="1.18.1",Ar=64*1024,{isFunction:oe}=h,di=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16))),Or=t=>{if(!h.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},Ir=(t,...e)=>{try{return!!t(...e)}catch{return!1}},pi=t=>{const e=t.indexOf("://");let r=t;return e!==-1&&(r=r.slice(e+3)),r.includes("@")||r.includes(":")},hi=t=>{const e=h.global!==void 0&&h.global!==null?h.global:globalThis,{ReadableStream:r,TextEncoder:n}=e;t=h.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:i,Request:o,Response:c}=t,l=i?oe(i):typeof fetch=="function",E=oe(o),d=oe(c);if(!l)return!1;const p=l&&oe(r),I=l&&(typeof n=="function"?(m=>D=>m.encode(D))(new n):async m=>new Uint8Array(await new o(m).arrayBuffer())),_=E&&p&&Ir(()=>{let m=!1;const D=new o(tt.origin,{body:new r,method:"POST",get duplex(){return m=!0,"half"}}),N=D.headers.has("Content-Type");return D.body!=null&&D.body.cancel(),m&&!N}),R=d&&p&&Ir(()=>h.isReadableStream(new c("").body)),T={stream:R&&(m=>m.body)};l&&["text","arrayBuffer","blob","formData","stream"].forEach(m=>{!T[m]&&(T[m]=(D,N)=>{let g=D&&D[m];if(g)return g.call(D);throw new C(`Response type '${m}' is not supported`,C.ERR_NOT_SUPPORT,N)})});const A=async m=>{if(m==null)return 0;if(h.isBlob(m))return m.size;if(h.isSpecCompliantForm(m))return(await new o(tt.origin,{method:"POST",body:m}).arrayBuffer()).byteLength;if(h.isArrayBufferView(m)||h.isArrayBuffer(m))return m.byteLength;if(h.isURLSearchParams(m)&&(m=m+""),h.isString(m))return(await I(m)).byteLength},O=async(m,D)=>{const N=h.toFiniteNumber(m.getContentLength());return N??A(D)};return async m=>{let{url:D,method:N,data:g,signal:x,cancelToken:v,timeout:X,onDownloadProgress:At,onUploadProgress:ht,responseType:q,headers:ct,withCredentials:gt="same-origin",fetchOptions:Ot,maxContentLength:Q,maxBodyLength:Ct}=on(m);const _t=h.isNumber(Q)&&Q>-1,It=h.isNumber(Ct)&&Ct>-1,kt=w=>h.hasOwnProp(m,w)?m[w]:void 0;let Ut=i||fetch;q=q?(q+"").toLowerCase():"text";let S=ai([x,v&&v.toAbortSignal()],X),s=null;const a=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let u,f=null;const L=()=>new C("Request body larger than maxBodyLength limit",C.ERR_BAD_REQUEST,m,s);try{let w;const B=kt("auth");if(B){const y=h.getSafeProp(B,"username")||"",st=h.getSafeProp(B,"password")||"";w={username:y,password:st}}if(pi(D)){const y=new URL(D,tt.origin);if(!w&&(y.username||y.password)){const st=Or(y.username),ut=Or(y.password);w={username:st,password:ut}}(y.username||y.password)&&(y.username="",y.password="",D=y.href)}if(w&&(ct.delete("authorization"),ct.set("Authorization","Basic "+btoa(di((w.username||"")+":"+(w.password||""))))),_t&&typeof D=="string"&&D.startsWith("data:")&&_i(D)>Q)throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s);if(It&&N!=="get"&&N!=="head"){const y=await A(g);if(typeof y=="number"&&isFinite(y)&&(u=y,y>Ct))throw L()}const J=It&&(h.isReadableStream(g)||h.isStream(g)),Tt=(y,st,ut)=>fr(y,Ar,St=>{if(It&&St>Ct)throw f=L();st&&st(St)},ut);if(_&&N!=="get"&&N!=="head"&&(ht||J)){if(u=u??await O(ct,g),u!==0||J){let y=new o(D,{method:"POST",body:g,duplex:"half"}),st;if(h.isFormData(g)&&(st=y.headers.get("content-type"))&&ct.setContentType(st),y.body){const[ut,St]=ht&&pr(u,he(hr(ht)))||[];g=Tt(y.body,ut,St)}}}else if(J&&!E&&p&&N!=="get"&&N!=="head")g=Tt(g);else if(J&&E&&!_&&N!=="get"&&N!=="head")throw new C("Stream request bodies are not supported by the current fetch implementation",C.ERR_NOT_SUPPORT,m,s);h.isString(gt)||(gt=gt?"include":"omit");const bt=E&&"credentials"in o.prototype;if(h.isFormData(g)){const y=ct.getContentType();y&&/^multipart\/form-data/i.test(y)&&!/boundary=/i.test(y)&&ct.delete("content-type")}ct.set("User-Agent","axios/"+tr,!1);const Pt={...Ot,signal:S,method:N.toUpperCase(),headers:zr(ct.normalize()),body:g,duplex:"half",credentials:bt?gt:void 0};s=E&&new o(D,Pt);let nt=await(E?Ut(s,Ot):Ut(D,Pt));const vt=rt.from(nt.headers);if(_t){const y=h.toFiniteNumber(vt.getContentLength());if(y!=null&&y>Q)throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s)}const yt=R&&(q==="stream"||q==="response");if(R&&nt.body&&(At||_t||yt&&a)){const y={};["status","statusText","headers"].forEach(Lt=>{y[Lt]=nt[Lt]});const st=h.toFiniteNumber(vt.getContentLength()),[ut,St]=At&&pr(st,he(hr(At),!0))||[];let Mt=0;const ge=Lt=>{if(_t&&(Mt=Lt,Mt>Q))throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s);ut&&ut(Lt)};nt=new c(fr(nt.body,Ar,ge,()=>{St&&St(),a&&a()}),y)}q=q||"text";let it=await T[h.findKey(T,q)||"text"](nt,m);if(_t&&!R&&!yt){let y;if(it!=null&&(typeof it.byteLength=="number"?y=it.byteLength:typeof it.size=="number"?y=it.size:typeof it=="string"&&(y=typeof n=="function"?new n().encode(it).byteLength:it.length)),typeof y=="number"&&y>Q)throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s)}return!yt&&a&&a(),await new Promise((y,st)=>{nn(y,st,{data:it,headers:rt.from(nt.headers),status:nt.status,statusText:nt.statusText,config:m,request:s})})}catch(w){if(a&&a(),S&&S.aborted&&S.reason instanceof C){const B=S.reason;throw B.config=m,s&&(B.request=s),w!==B&&Object.defineProperty(B,"cause",{__proto__:null,value:w,writable:!0,enumerable:!1,configurable:!0}),B}if(f)throw s&&!f.request&&(f.request=s),f;if(w instanceof C)throw s&&!w.request&&(w.request=s),w;if(w&&w.name==="TypeError"&&/Load failed|fetch/i.test(w.message)){const B=new C("Network Error",C.ERR_NETWORK,m,s,w&&w.response);throw Object.defineProperty(B,"cause",{__proto__:null,value:w.cause||w,writable:!0,enumerable:!1,configurable:!0}),B}throw C.from(w,w&&w.code,m,s,w&&w.response)}}},Ti=new Map,an=t=>{let e=t&&t.env||{};const{fetch:r,Request:n,Response:i}=e,o=[n,i,r];let c=o.length,l=c,E,d,p=Ti;for(;l--;)E=o[l],d=p.get(E),d===void 0&&p.set(E,d=l?new Map:hi(e)),p=d;return d};an();const er={http:ws,xhr:oi,fetch:{get:an}};h.forEach(er,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const Sr=t=>`- ${t}`,Ri=t=>h.isFunction(t)||t===null||t===!1;function fi(t,e){t=h.isArray(t)?t:[t];const{length:r}=t;let n,i;const o={};for(let c=0;c`adapter ${E} `+(d===!1?"is not supported by the environment":"is not available in the build"));let l=r?c.length>1?`since : +`+c.map(Sr).join(` +`):" "+Sr(c[0]):"as no adapter specified";throw new C("There is no suitable adapter to dispatch the request "+l,C.ERR_NOT_SUPPORT)}return i}const cn={getAdapter:fi,adapters:er};function De(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new se(null,t)}function mr(t){return De(t),t.headers=rt.from(t.headers),t.data=we.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),cn.getAdapter(t.adapter||ne.adapter,t)(t).then(function(n){De(t),t.response=n;try{n.data=we.call(t,t.transformResponse,n)}finally{delete t.response}return n.headers=rt.from(n.headers),n},function(n){if(!rn(n)&&(De(t),n&&n.response)){t.response=n.response;try{n.response.data=we.call(t,t.transformResponse,n.response)}finally{delete t.response}n.response.headers=rt.from(n.response.headers)}return Promise.reject(n)})}const me={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{me[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const Nr={};me.transitional=function(e,r,n){function i(o,c){return"[Axios v"+tr+"] Transitional option '"+o+"'"+c+(n?". "+n:"")}return(o,c,l)=>{if(e===!1)throw new C(i(c," has been removed"+(r?" in "+r:"")),C.ERR_DEPRECATED);return r&&!Nr[c]&&(Nr[c]=!0,console.warn(i(c," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(o,c,l):!0}};me.spelling=function(e){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Ai(t,e,r){if(typeof t!="object"||t===null)throw new C("options must be an object",C.ERR_BAD_OPTION_VALUE);const n=Object.keys(t);let i=n.length;for(;i-- >0;){const o=n[i],c=Object.prototype.hasOwnProperty.call(e,o)?e[o]:void 0;if(c){const l=t[o],E=l===void 0||c(l,o,t);if(E!==!0)throw new C("option "+o+" must be "+E,C.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new C("Unknown option "+o,C.ERR_BAD_OPTION)}}const de={assertOptions:Ai,validators:me},et=de.validators;let Ft=class{constructor(e){this.defaults=e||{},this.interceptors={request:new _r,response:new _r}}async request(e,r){try{return await this._request(e,r)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=(()=>{if(!i.stack)return"";const c=i.stack.indexOf(` +`);return c===-1?"":i.stack.slice(c+1)})();try{if(!n.stack)n.stack=o;else if(o){const c=o.indexOf(` +`),l=c===-1?-1:o.indexOf(` +`,c+1),E=l===-1?"":o.slice(l+1);String(n.stack).endsWith(E)||(n.stack+=` +`+o)}}catch{}}throw n}}_request(e,r){typeof e=="string"?(r=r||{},r.url=e):r=e||{},r=Vt(this.defaults,r);const{transitional:n,paramsSerializer:i,headers:o}=r;n!==void 0&&de.assertOptions(n,{silentJSONParsing:et.transitional(et.boolean),forcedJSONParsing:et.transitional(et.boolean),clarifyTimeoutError:et.transitional(et.boolean),legacyInterceptorReqResOrdering:et.transitional(et.boolean),advertiseZstdAcceptEncoding:et.transitional(et.boolean),validateStatusUndefinedResolves:et.transitional(et.boolean)},!1),i!=null&&(h.isFunction(i)?r.paramsSerializer={serialize:i}:de.assertOptions(i,{encode:et.function,serialize:et.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),de.assertOptions(r,{baseUrl:et.spelling("baseURL"),withXsrfToken:et.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let c=o&&h.merge(o.common,o[r.method]);o&&h.forEach(["delete","get","head","post","put","patch","query","common"],T=>{delete o[T]}),r.headers=rt.concat(c,o);const l=[];let E=!0;this.interceptors.request.forEach(function(A){if(typeof A.runWhen=="function"&&A.runWhen(r)===!1)return;E=E&&A.synchronous;const O=r.transitional||$e;O&&O.legacyInterceptorReqResOrdering?l.unshift(A.fulfilled,A.rejected):l.push(A.fulfilled,A.rejected)});const d=[];this.interceptors.response.forEach(function(A){d.push(A.fulfilled,A.rejected)});let p,I=0,_;if(!E){const T=[mr.bind(this),void 0];for(T.unshift(...l),T.push(...d),_=T.length,p=Promise.resolve(r);I<_;)p=p.then(T[I++],T[I++]);return p}_=l.length;let R=r;for(;I<_;){const T=l[I++],A=l[I++];try{R=T(R)}catch(O){A.call(this,O);break}}try{p=mr.call(this,R)}catch(T){return Promise.reject(T)}for(I=0,_=d.length;I<_;)p=p.then(d[I++],d[I++]);return p}getUri(e){e=Vt(this.defaults,e);const r=sn(e.baseURL,e.url,e.allowAbsoluteUrls,e);return Zr(r,e.params,e.paramsSerializer)}};h.forEach(["delete","get","head","options"],function(e){Ft.prototype[e]=function(r,n){return this.request(Vt(n||{},{method:e,url:r,data:n&&h.hasOwnProp(n,"data")?n.data:void 0}))}});h.forEach(["post","put","patch","query"],function(e){function r(n){return function(o,c,l){return this.request(Vt(l||{},{method:e,headers:n?{"Content-Type":"multipart/form-data"}:{},url:o,data:c}))}}Ft.prototype[e]=r(),e!=="query"&&(Ft.prototype[e+"Form"]=r(!0))});let Oi=class un{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(function(o){r=o});const n=this;this.promise.then(i=>{if(!n._listeners)return;let o=n._listeners.length;for(;o-- >0;)n._listeners[o](i);n._listeners=null}),this.promise.then=i=>{let o;const c=new Promise(l=>{n.subscribe(l),o=l}).then(i);return c.cancel=function(){n.unsubscribe(o)},c},e(function(o,c,l){n.reason||(n.reason=new se(o,c,l),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const e=new AbortController,r=n=>{e.abort(n)};return this.subscribe(r),e.signal.unsubscribe=()=>this.unsubscribe(r),e.signal}static source(){let e;return{token:new un(function(i){e=i}),cancel:e}}};function Ii(t){return function(r){return t.apply(null,r)}}function Si(t){return h.isObject(t)&&t.isAxiosError===!0}const ke={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ke).forEach(([t,e])=>{ke[e]=t});function En(t){const e=new Ft(t),r=Vr(Ft.prototype.request,e);return h.extend(r,Ft.prototype,e,{allOwnKeys:!0}),h.extend(r,e,null,{allOwnKeys:!0}),r.create=function(i){return En(Vt(t,i))},r}const Y=En(ne);Y.Axios=Ft;Y.CanceledError=se;Y.CancelToken=Oi;Y.isCancel=rn;Y.VERSION=tr;Y.toFormData=Se;Y.AxiosError=C;Y.Cancel=Y.CanceledError;Y.all=function(e){return Promise.all(e)};Y.spread=Ii;Y.isAxiosError=Si;Y.mergeConfig=Vt;Y.AxiosHeaders=rt;Y.formToJSON=t=>en(h.isHTMLForm(t)?new FormData(t):t);Y.getAdapter=cn.getAdapter;Y.HttpStatusCode=ke;Y.default=Y;const{Axios:co,AxiosError:uo,CanceledError:Eo,isCancel:lo,CancelToken:_o,VERSION:po,all:ho,Cancel:To,isAxiosError:Ro,spread:fo,toFormData:Ao,AxiosHeaders:Oo,HttpStatusCode:Io,formToJSON:So,getAdapter:mo,mergeConfig:No,create:go}=Y;(function(t){return t.WIN_10="Windows 10",t.WIN_81="Windows 8.1",t.WIN_8="Windows 8",t.WIN_7="Windows 7",t.WIN_VISTA="Windows Vista",t.WIN_SERVER_2003="Windows Server 2003",t.WIN_XP="Windows XP",t.WIN_2000="Windows 2000",t.ANDROID="Android",t.HARMONY_OS="HarmonyOS",t.OPEN_BSD="Open BSD",t.SUN_OS="Sun OS",t.LINUX="Linux",t.IOS="iOS",t.MAC_OS="Mac OS",t.CHROMIUM_OS="Chromium OS",t.QNX="QNX",t.UNIX="UNIX",t.BEOS="BeOS",t.OS_2="OS/2",t.SEARCH_BOT="Search Bot",t})({});(function(t){return t.CHROME="Chrome",t.SAFARI="Safari",t.EDGE="Edge",t.FIREFOX="Firefox",t.OPERA="OPR",t.QQ="QQBrowser",t.WECHAT="MicroMessenger",t})({});const mi=new Nn;mi.getResult();function Ni(){return!!window.navigator.userAgent.includes("AgoraWebView")}function gr(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&arguments[1]!==void 0?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0;super(r),G(this,"code",void 0),G(this,"message",void 0),G(this,"data",void 0),G(this,"name","AgoraRTCException"),this.code=e,this.message="AgoraRTCError ".concat(this.code,": ").concat(r),this.data=n}toString(){return this.data?"".concat(this.message,` +data: `).concat(JSON.stringify(this.data)):this.message}print(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error",r=arguments.length>1?arguments[1]:void 0;return e==="error"&&(r||console).error(this.toString()),e==="warning"&&(r||console).warn(this.toString()),this}throw(e){throw this.print("error",e),this}}function gi(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1e4;if(tn||(!(arguments.length>4&&arguments[4]!==void 0)||arguments[4])&&!function(i){return typeof i=="number"&&i%1==0}(t))throw new ot(lt.INVALID_PARAMS,"invalid ".concat(e,": the value range is [").concat(r,", ").concat(n,"]. integer only"))}function ae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:255,i=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(t==null)throw new ot(lt.INVALID_PARAMS,"".concat(e||"param"," cannot be empty"));if(!Ci(t,r,n,i))throw new ot(lt.INVALID_PARAMS,"Invalid ".concat(e||"string param",": Length of the string: [").concat(r,",").concat(n,"].").concat(i?" ASCII characters only.":""))}function Ci(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:255,n=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return typeof t=="string"&&t.length<=r&&t.length>=e&&(!n||function(i){if(typeof i!="string")return!1;for(let o=0;o255)return!1}return!0}(t))}var $t=function(t){return t.COVERED="COVERED",t.POSITION="POSITION",t.SIZE="SIZE",t.STYLE="STYLE",t}($t||{}),We=function(t){return t.UNMOUNTED="UNMOUNTED",t.INVALID_HTML_ELEMENT="INVALID_HTML_ELEMENT",t}(We||{});new class{constructor(){G(this,"_clientSize",null),G(this,"getClientWidth",()=>document.documentElement?document.documentElement.clientWidth:document.body.clientWidth),G(this,"getClientHeight",()=>document.documentElement?document.documentElement.clientHeight:document.body.clientHeight),G(this,"getStyle",t=>window.getComputedStyle(t,null)),G(this,"checkCssVisibleProperty",t=>{let e=!0;const r=this.getStyle(t),n=r.display,i=r.visibility,o=r.opacity,c=r.filter;return(n==="none"||["hidden","collapse"].includes(i)||Number(o)<.1)&&(e=!1),e?(c&&c.split(" ").filter(l=>{const E=l.split("(")[0];return["brightness","blur","opacity"].includes(E)}).map(l=>{const E=br(l.split(/\(|\)/),2),d=E[0],p=E[1];return[d,Number(p.match(/^[0-9\.]+/))]}).forEach(l=>{const E=br(l,2),d=E[0],p=E[1];switch(d){case"brightness":(p<.1||p>3)&&(e=!1);break;case"blur":p>3&&(e=!1);break;case"opacity":p<.1&&(e=!1)}}),e):!1}),G(this,"checkPropertyUpToAllParentNodes",(t,e)=>{let r=!0,n=!0;const i=c=>e(c);let o=t;for(;o&&n;)i(o)||(r=!1,n=!1),o=o.parentElement,o||(n=!1);return r}),G(this,"checkActualCssVisibleIncludeInherit",t=>this.checkPropertyUpToAllParentNodes(t,this.checkCssVisibleProperty)),G(this,"getSizeAboutClient",t=>{const e=t.getBoundingClientRect(),r=e.width,n=e.height,i=e.left,o=e.right,c=e.top,l=e.bottom,E=this.getClientWidth(),d=this.getClientHeight();return{width:r,height:n,left:i,right:o,top:c,bottom:l,clientWidth:E,clientHeight:d,clientMin:Math.min(E,d)}}),G(this,"checkActualSize",()=>{const t=this._clientSize,e=t.width,r=t.height,n=t.clientMin;return this.checkSizeIsVisible(e,r,n)}),G(this,"elementFromPoint",(t,e)=>document.elementFromPoint?document.elementFromPoint(t,e):null),G(this,"checkCoverForAPoint",(t,e,r)=>{const n=this.elementFromPoint(t,e);return n!==null&&n!==r}),G(this,"getPointPositionList",()=>{const t=this._clientSize,e=t.width,r=t.height,n=t.left,i=t.top,o=e/6,c=r/6,l=[],E=10**6;for(let d=0;d<5;d++)for(let p=0;p<5;p++){const I=(n*E+(d===0?.1:d===4?(o*d*E-1e5)/E:o*d)*E)/E,_=(i*E+(p===0?.1:p===4?(c*p*E-1e5)/E:c*p)*E)/E;l.push({x:I,y:_})}return[...l]}),G(this,"checkElementCover",t=>this.getPointPositionList().map(e=>this.checkCoverForAPoint(e.x,e.y,t)).filter(e=>!!e).length>6),G(this,"checkSizeIsVisible",(t,e,r)=>(t>50||r/t<=10)&&(e>50||r/e<=10)),G(this,"checkSizeOfPartInClient",()=>{const t=this._clientSize,e=t.left,r=t.right,n=t.top,i=t.bottom,o=t.clientHeight,c=t.clientWidth,l=t.clientMin;let E,d,p,I;if(e<0)E=0;else{if(!(e(this._clientSize=null,{visible:!1,reason:t})),G(this,"checkOneElementVisible",t=>{if(t instanceof HTMLElement){if(this.checkElementIsMountedOnDom(t)){if(this.checkActualCssVisibleIncludeInherit(t)){if(this._clientSize=this.getSizeAboutClient(t),this.checkElementCover(t))return this.returnHiddenResult($t.COVERED);{const e=this.checkActualSize(),r=this.checkSizeOfPartInClient();return e&&!r?this.returnHiddenResult($t.POSITION):e?(this._clientSize=null,{visible:!0}):this.returnHiddenResult($t.SIZE)}}return this.returnHiddenResult($t.STYLE)}return this.returnHiddenResult(We.UNMOUNTED)}return this.returnHiddenResult(We.INVALID_HTML_ELEMENT)}),G(this,"checkElementIsMountedOnDom",t=>this.checkPropertyUpToAllParentNodes(t,e=>e.nodeName.toUpperCase()!=="HTML"?e.parentElement!==null:!!document.documentElement))}};function bi(t){return new TextEncoder().encode(t)}const Lr=function(t,e){const r=new Uint8Array(t.byteLength+e.byteLength);return r.set(new Uint8Array(t),0),r.set(new Uint8Array(e),t.byteLength),r};class ln{constructor(){G(this,"_events",{}),G(this,"addListener",this.on)}getListeners(e){return this._events[e]?this._events[e].map(r=>r.listener):[]}on(e,r){this._events[e]||(this._events[e]=[]);const n=this._events[e];this._indexOfListener(n,r)===-1&&n.push({listener:r,once:!1})}once(e,r){this._events[e]||(this._events[e]=[]);const n=this._events[e];this._indexOfListener(n,r)===-1&&n.push({listener:r,once:!0})}off(e,r){if(!this._events[e])return;const n=this._events[e],i=this._indexOfListener(n,r);i!==-1&&n.splice(i,1),this._events[e].length===0&&delete this._events[e]}removeAllListeners(e){e?delete this._events[e]:this._events={}}emit(e){this._events[e]||(this._events[e]=[]);const r=this._events[e].map(c=>c);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o1?r-1:0),i=1;i{o.once&&this.off(e,o.listener);try{o.listener.apply(this,n)}catch(c){console.error("safeEmit event:".concat(e," error ").concat(c==null?void 0:c.toString()))}})}_indexOfListener(e,r){let n=e.length;for(;n--;)if(e[n].listener===r)return n;return-1}}let Li=function(t){return t.CREATE_CLIENT="createClient",t.CHECK_SYSTEM_REQUIREMENTS="checkSystemRequirements",t.SET_AREA="setArea",t.PRELOAD="PRELOAD",t.CHECK_VIDEO_TRACK_IS_ACTIVE="checkVideoTrackIsActive",t.CHECK_AUDIO_TRACK_IS_ACTIVE="checkAudioTrackIsActive",t.CREATE_MIC_AUDIO_TRACK="createMicrophoneAudioTrack",t.CREATE_CUSTOM_AUDIO_TRACK="createCustomAudioTrack",t.CREATE_BUFFER_AUDIO_TRACK="createBufferSourceAudioTrack",t.CREATE_CAM_VIDEO_TRACK="createCameraVideoTrack",t.CREATE_CUSTOM_VIDEO_TRACK="createCustomVideoTrack",t.CREATE_MIC_AND_CAM_TRACKS="createMicrophoneAndCameraTracks",t.CREATE_SCREEN_VIDEO_TRACK="createScreenVideoTrack",t.SET_ENCRYPTION_CONFIG="Client.setEncryptionConfig",t.START_PROXY_SERVER="Client.startProxyServer",t.STOP_PROXY_SERVER="Client.stopProxyServer",t.SET_PROXY_SERVER="Client.setProxyServer",t.SET_TURN_SERVER="Client.setTurnServer",t.SET_CLIENT_ROLE="Client.setClientRole",t.SET_LOW_STREAM_PARAMETER="Client.setLowStreamParameter",t.ENABLE_DUAL_STREAM="Client.enableDualStream",t.DISABLE_DUAL_STREAM="Client.disableDualStream",t.JOIN="Client.join",t.LEAVE="Client.leave",t.PUBLISH="Client.publish",t.UNPUBLISH="Client.unpublish",t.SUBSCRIBE="Client.subscribe",t.MASS_SUBSCRIBE="Client.massSubscribe",t.MASS_UNSUBSCRIBE="Client.massUnsubscribe",t.UNSUBSCRIBE="Client.unsubscribe",t.RENEW_TOKEN="Client.renewToken",t.SET_REMOTE_VIDEO_STREAM_TYPE="Client.setRemoteVideoStreamType",t.SET_STREAM_FALLBACK_OPTION="Client.setStreamFallbackOption",t.ENABLE_AUDIO_VOLUME_INDICATOR="Client.enableAudioVolumeIndicator",t.SEND_CUSTOM_REPORT_MESSAGE="Client.sendCustomReportMessage",t.INSPECT_VIDEO_CONTENT="Client.inspectVideoContent",t.STOP_INSPECT_VIDEO_CONTENT="Client.stopInspectVideoContent",t.JOIN_FALLBACK_TO_PROXY="Client._joinFallbackToProxy",t.ON_LIVE_STREAM_WARNING="Client.onLiveStreamWarning",t.ON_LIVE_STREAM_ERROR="Client.onLiveStreamingError",t.START_LIVE_STREAMING="Client.startLiveStreaming",t.SET_LIVE_TRANSCODING="Client.setLiveTranscoding",t.STOP_LIVE_STREAMING="Client.stopLiveStreaming",t.START_CHANNEL_MEDIA_RELAY="Client.startChannelMediaRelay",t.UPDATE_CHANNEL_MEDIA_RELAY="Client.updateChannelMediaRelay",t.STOP_CHANNEL_MEDIA_RELAY="Client.stopChannelMediaRelay",t.REQUEST_CONFIG_DISTRIBUTE="_config-distribute-request",t.SET_CONFIG_DISTRIBUTE="_configDistribute",t.LOCAL_TRACK_SET_MUTED="LocalTrack.setMute",t.LOCAL_AUDIO_TRACK_PLAY="LocalAudioTrack.play",t.LOCAL_AUDIO_TRACK_PLAY_IN_ELEMENT="LocalAudioTrack.playInElement",t.LOCAL_AUDIO_TRACK_STOP="LocalAudioTrack.stop",t.LOCAL_AUDIO_TRACK_SET_VOLUME="LocalAudioTrack.setVolume",t.MIC_AUDIO_TRACK_SET_DEVICE="MicrophoneAudioTrack.setDevice",t.BUFFER_AUDIO_TRACK_START="BufferSourceAudioTrack.startProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_STOP="BufferSourceAudioTrack.stopProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_PAUSE="BufferSourceAudioTrack.pauseProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_RESUME="BufferSourceAudioTrack.resumeProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_SEEK="BufferSourceAudioTrack.seekAudioBuffer",t.LOCAL_VIDEO_TRACK_PLAY="LocalVideoTrack.play",t.LOCAL_VIDEO_TRACK_STOP="LocalVideoTrack.stop",t.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE="LocalVideoTrack.getVideoElementVisibleStatus",t.LOCAL_VIDEO_TRACK_BEAUTY="LocalVideoTrack.setBeautyEffect",t.LOCAL_VIDEO_SEND_SEI_DATA="LocalVideoTrack.sendSeiData",t.CAM_VIDEO_TRACK_SET_DEVICE="CameraVideoTrack.setDevice",t.CAM_VIDEO_TRACK_SET_ENCODER_CONFIG="CameraVideoTrack.setEncoderConfiguration",t.REMOTE_VIDEO_TRACK_PLAY="RemoteVideoTrack.play",t.REMOTE_VIDEO_TRACK_STOP="RemoteVideoTrack.stop",t.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE="RemoteVideoTrack.getVideoElementVisibleStatus",t.REMOTE_AUDIO_TRACK_PLAY="RemoteAudioTrack.play",t.REMOTE_AUDIO_TRACK_STOP="RemoteAudioTrack.stop",t.REMOTE_AUDIO_SET_VOLUME="RemoteAudioTrack.setVolume",t.REMOTE_AUDIO_SET_OUTPUT_DEVICE="RemoteAudioTrack.setOutputDevice",t.GET_MEDIA_STREAM_TRACK="Track.getMediaStreamTrack",t.STREAM_TYPE_CHANGE="streamTypeChange",t.CONNECTION_STATE_CHANGE="connectionStateChange",t.LOAD_CONFIG_FROM_LOCALSTORAGE="loadConfigFromLocalStorage",t.IMAGE_MODERATION_UPLOAD="imageModerationUpload",t.REPUB_AFTER_PC_CONNECTED="repubAfterPCConnected",t.PRELOAD_MEDIA_FAILED="preloadMediaFailed",t.MISMATCH_DTLS_PARAMETERS="mismatchDtlsParameters",t.MISMATCH_ICE_PARAMETERS="mismatchIceParameters",t.VOS_FALLBACK_CN="vosFallbackCN",t.DATACHANNEL_FAILBACK="datachannelFailback",t}({}),Re=function(t){return t.TRACER="tracer",t}({});(function(t){return t[t.AUDIENCE_LEVEL_LOW_LATENCY=1]="AUDIENCE_LEVEL_LOW_LATENCY",t[t.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY=2]="AUDIENCE_LEVEL_ULTRA_LOW_LATENCY",t[t.AUDIENCE_LEVEL_SYNC_LATENCY=3]="AUDIENCE_LEVEL_SYNC_LATENCY",t})({});(function(t){return t.LEAVE="LEAVE",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.UID_BANNED="UID_BANNED",t.FALLBACK="FALLBACK",t.IP_BANNED="IP_BANNED",t.CHANNEL_BANNED="CHANNEL_BANNED",t.LICENSE_MISSING="LICENSE_MISSING",t.LICENSE_EXPIRED="LICENSE_EXPIRED",t.LICENSE_MINUTES_EXCEEDED="LICENSE_MINUTES_EXCEEDED",t.LICENSE_PERIOD_INVALID="LICENSE_PERIOD_INVALID",t.LICENSE_MULTIPLE_SDK_SERVICE="LICENSE_MULTIPLE_SDK_SERVICE",t.LICENSE_ILLEGAL="LICENSE_ILLEGAL",t.TOKEN_EXPIRE="TOKEN_EXPIRE",t.FALLBACK_TO_HLS="FALLBACK_TO_HLS",t.UID_CONFLICT="UID_CONFLICT",t})({});(function(t){return t[t.AUTO_SIMULCAST_STREAM=-1]="AUTO_SIMULCAST_STREAM",t[t.DISABLE_SIMULCAST_STREM=0]="DISABLE_SIMULCAST_STREM",t[t.ENABLE_SIMULCAST_STREAM=1]="ENABLE_SIMULCAST_STREAM",t})({});(function(t){return t.PEERCONNECTION_STATE_CHANGE="peerconnection-state-change",t.AUDIO_METADATA="audio-metadata",t.AUDIO_PTS="audio-pts",t.CONNECTION_STATE_CHANGE="connection-state-change",t.MEDIA_RECONNECT_START="media-reconnect-start",t.MEDIA_RECONNECT_END="media-reconnect-end",t.IS_USING_CLOUD_PROXY="is-using-cloud-proxy",t.USER_JOINED="user-joined",t.USER_LEAVED="user-left",t.USER_PUBLISHED="user-published",t.USER_UNPUBLISHED="user-unpublished",t.USER_INFO_UPDATED="user-info-updated",t.CLIENT_BANNED="client-banned",t.CHANNEL_MEDIA_RELAY_STATE="channel-media-relay-state",t.CHANNEL_MEDIA_RELAY_EVENT="channel-media-relay-event",t.VOLUME_INDICATOR="volume-indicator",t.CRYPT_ERROR="crypt-error",t.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="token-privilege-will-expire",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="token-privilege-did-expire",t.NETWORK_QUALITY="network-quality",t.STREAM_TYPE_CHANGED="stream-type-changed",t.STREAM_FALLBACK="stream-fallback",t.RECEIVE_METADATA="receive-metadata",t.STREAM_MESSAGE="stream-message",t.LIVE_STREAMING_ERROR="live-streaming-error",t.LIVE_STREAMING_WARNING="live-streaming-warning",t.EXCEPTION="exception",t.ERROR="error",t.P2P_LOST="p2p_lost",t.JOIN_FALLBACK_TO_PROXY="join-fallback-to-proxy",t.CHANNEL_FALLBACK_TO_WEBSOCKET="channel-fallback-to-websocket",t.MEDIA_CONNECTION_TYPE_CHANGE="media-connection-type-change",t.PUBLISHED_USER_LIST="published-user-list",t.USER_LIST="user-list",t.CONTENT_INSPECT_CONNECTION_STATE_CHANGE="content-inspect-connection-state-change",t.CONTENT_INSPECT_ERROR="content-inspect-error",t.CONTENT_INSPECT_RESULT="content-inspect-result",t.IMAGE_MODERATION_CONNECTION_STATE_CHANGE="image-moderation-connection-state-change",t.FALLBACK_TO_HLS="fallback-to-hls",t.FIRST_VIDEO_BUFFER_READY="first-video-buffer-ready",t.FIRST_VIDEO_PRE_RENDER="first-video-pre-render",t.AV1_DECODABLE_RESULT="av1-decodable-result",t})({});(function(t){return t.CONFIG="config",t.VOSERROR="vos_error",t.AP_ERROR="ap_error",t})({});(function(t){return t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.MULTI_IP="MULTI_IP",t.TIMEOUT="TIMEOUT",t.OFFLINE="OFFLINE",t.LEAVE="LEAVE",t.P2P_FAILED="P2P_FAILED",t.FALLBACK="FALLBACK",t.REGIONAL_DISTRIBUTION="REGIONAL_DISTRIBUTION",t})({});let Dt=function(t){return t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({}),ce=function(t){return t.NETWORK_STATE_CHANGE="NETWORK_STATE_CHANGE",t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({});const Zt=new class extends ln{set networkState(t){this.emit(ce.NETWORK_STATE_CHANGE,t,this._networkState),t===Dt.ONLINE?this.emit(ce.ONLINE):t===Dt.OFFLINE&&(this.onlineWaiter=new Promise(e=>{this.once(ce.ONLINE,()=>{this.onlineWaiter=void 0,e(Dt.ONLINE)})}),this.emit(ce.OFFLINE)),this._networkState=t}get networkState(){return this._networkState}get isOnline(){return this._networkState===Dt.ONLINE}constructor(){super(),G(this,"_moduleName","network-indicator"),G(this,"_networkState",Dt.ONLINE),G(this,"onlineWaiter",void 0),window.addEventListener("online",()=>{this.networkState=Dt.ONLINE}),window.addEventListener("offline",()=>{this.networkState=Dt.OFFLINE})}},Z=[];for(let t=0;t<256;++t)Z.push((t+256).toString(16).slice(1));const wr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);let Pe;const wi=new Uint8Array(16);function Di(t,e,r){var n,i,o,c;const l=(n=(i=(t=t||{}).random)!==null&&i!==void 0?i:(o=(c=t).rng)===null||o===void 0?void 0:o.call(c))!==null&&n!==void 0?n:function(){if(!Pe){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Pe=crypto.getRandomValues.bind(crypto)}return Pe(wi)}();if(l.length<16)throw new Error("Random bytes length must be >= 16");return l[6]=15&l[6]|64,l[8]=63&l[8]|128,function(E){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(Z[E[d+0]]+Z[E[d+1]]+Z[E[d+2]]+Z[E[d+3]]+"-"+Z[E[d+4]]+Z[E[d+5]]+"-"+Z[E[d+6]]+Z[E[d+7]]+"-"+Z[E[d+8]]+Z[E[d+9]]+"-"+Z[E[d+10]]+Z[E[d+11]]+Z[E[d+12]]+Z[E[d+13]]+Z[E[d+14]]+Z[E[d+15]]).toLowerCase()}(l)}function Pi(){return!wr||e||t?Di(t,e):wr();var t,e}function Ht(t){return window.TextEncoder?new TextEncoder().encode(t).length:t.length}function yi(t){let e=0;return(/DingTalk/i.test(navigator.userAgent)||/AliApp/i.test(navigator.userAgent))&&t.realFormData&&(t=t.realFormData),t.forEach(r=>{e+=typeof r=="string"?Ht(r):r.size}),e+138}function Mi(t,e,r){const n=t[e];if(!n||typeof n!="string")return[t];t[e]="";const i=Ht(JSON.stringify(t));let o=0;const c=[];let l=0;for(let E=0;E{window.setTimeout(e,t)})}function _n(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:7,e=arguments.length>1?arguments[1]:void 0;const r=Math.random().toString(16).substr(2,t).toLowerCase();return r.length===t?"".concat(e).concat(r):"".concat(e).concat(r)+_n(t-r.length,"")}function Ui(){let t,e=!1;try{t=Pi().replaceAll("-","")}catch{e=!0}return!e&&t&&t.length===32||(t=_n(32,"")),t.toUpperCase()}const Dr=new class{constructor(){G(this,"fnMap",new Map)}throttleByKey(t,e,r,n){for(var i=arguments.length,o=new Array(i>4?i-4:0),c=4;c{const d=this.fnMap.get(e);d&&d.fn(...d.args),this.fnMap.delete(e)},r);this.fnMap.set(e,{fn:t,threshold:r,timer:E,args:o,skipFn:n})}else l.skipFn&&l.skipFn(...l.args),this.fnMap.set(e,dt(dt({},l),{},{fn:t,args:o,skipFn:n}))}else{const l=window.setTimeout(()=>{const E=this.fnMap.get(e);E&&E.fn(...E.args),this.fnMap.delete(e)},r);this.fnMap.set(e,{fn:t,threshold:r,timer:l,args:o,skipFn:n})}}},Pr=Dr.throttleByKey.bind(Dr),Ge={timeout:500,timeoutFactor:1.5,maxRetryCount:1/0,maxRetryTimeout:1e4};function vi(t,e,r,n){const i=Object.assign({},Ge,n);let o=i.timeout;const c=async()=>{await function(d){return new Promise(p=>{window.setTimeout(p,d)})}(o),o*=i.timeoutFactor,o=Math.min(i.maxRetryTimeout,o)};let l=!1;const E=new Promise(async(d,p)=>{e=e||(()=>!1),r=r||(()=>!0);for(let I=0;Il=!0,E}let ue=0,Me=0;function He(t,e,r,n){return new Promise((i,o)=>{e.responseType=e.responseType||"json",e.data&&!r?(e.data=JSON.stringify(e.data),ue+=Ht(e.data)):r&&(e.data.size?ue+=e.data.size:e.data instanceof FormData?ue+=yi(e.data):ue+=Ht(JSON.stringify(e.data))),e.headers=e.headers||{},e.headers["Content-Type"]=e.headers["Content-Type"]||"application/json",e.method="POST",e.url=t,Y.request(e).then(c=>{typeof c.data=="string"?Me+=Ht(c.data):c.data instanceof ArrayBuffer||c.data instanceof Uint8Array?Me+=c.data.byteLength:Me+=Ht(JSON.stringify(c.data)),i(c.data)}).catch(c=>{Y.isCancel(c)?o(new ot(lt.OPERATION_ABORTED,"cancel token canceled")):c.code==="ECONNABORTED"?o(new ot(lt.NETWORK_TIMEOUT,c.message)):c.response?o(new ot(lt.NETWORK_RESPONSE_ERROR,c.response.status)):o(new ot(lt.NETWORK_ERROR,c.message))})})}async function xi(t,e){const r=new Blob([e.data],{type:"buffer"});return await He(t,dt(dt({},e),{},{data:r,headers:{"Content-Type":"application/octet-stream"}}),!0)}function Fi(t){if(t.match(/[0-9]+\.[0-9]+\.[0-9]+$/))return t;const e=t.match(/([0-9]+\.[0-9]+\.[0-9]+)\-([0-9]+)/);if(e&&e[1]&&e[2]){const r=e[1],n=e[2];return"".concat(r,".").concat(n)}return"4.0.0.999"}(function(t){return t.BANDWIDTH="bandwidth",t.CPU="cpu",t.NONE="none",t.OTHER="other",t})({});(function(t){return t.L1T1="L1T1",t.L1T2="L1T2",t.L1T3="L1T3",t.L1T3_KEY="L1T3_KEY",t.L2T1_KEY="L2T1_KEY",t.L2T2_KEY="L2T2_KEY",t.L2T3_KEY="L2T3_KEY",t.L3T1_KEY="L3T1_KEY",t.L3T2_KEY="L3T2_KEY",t.L3T3_KEY="L3T3_KEY",t})({});(function(t){return t[t.new=0]="new",t[t.connecting=1]="connecting",t[t.connected=2]="connected",t[t.disconnected=3]="disconnected",t[t.failed=4]="failed",t[t.closed=5]="closed",t})({});(function(t){return t.CERTIFICATE="certificate",t.CODEC="codec",t.CANDIDATE_PAIR="candidate-pair",t.LOCAL_CANDIDATE="local-candidate",t.REMOTE_CANDIDATE="remote-candidate",t.INBOUND="inbound-rtp",t.TRACK="track",t.OUTBOUND="outbound-rtp",t.PC="peer-connection",t.REMOTE_INBOUND="remote-inbound-rtp",t.REMOTE_OUTBOUND="remote-outbound-rtp",t.TRANSPORT="transport",t.CSRC="csrc",t.DATA_CHANNEL="data-channel",t.STREAM="stream",t.SENDER="sender",t.RECEIVER="receiver",t})({});var Bi=function(t){return t[t.kNone=1]="kNone",t[t.kMillisecondsFromSeconds=1e3]="kMillisecondsFromSeconds",t[t.kBytesToBits=8]="kBytesToBits",t}(Bi||{});const yr="websdk_ng_install_id";function Ue(){try{if(P("INSTALL_ID"))return P("INSTALL_ID");let t=window.localStorage.getItem(yr);return t||(t=Ui(),window.localStorage.setItem(yr,t)),Ke("INSTALL_ID",t),t}catch{return}}const dn=Fi("4.24.5"),pn=function(){try{return JSON.parse("true")===!0}catch{return!0}}(),Vi=["CHINA","GLOBAL"];(function(t){return t.Default="default",t.Auto="auto",t.Relay="relay",t.SdRtn="sd-rtn",t})({});const ki=function(){const t="us".concat("erna","me"),e="pa".concat("sswo","rd"),r=["t","s","t"];r.splice(1,0,"e");const n=r.join(""),i=[];for(let l=0;l<6;l++)i.push("1");const o=i.join(""),c={};return c[t]=n,c[e]=o,Object.assign(c,{turnServerURL:"",tcpport:3433,udpport:3478,forceturn:!1})}();window.DEFAULT_TURN_CONFIG=ki;const Wi={ENABLE_PUBLISHED_USER_LIST:!0,ENABLE_USER_LIST:!1,MAX_SUBSCRIPTION:50,SUBSCRIBE_AUDIO_FILTER_TOPN:void 0,ENABLE_PUBLISH_AUDIO_FILTER:void 0,ENABLE_USER_LICENSE_CHECK:!0,DISABLE_FEC:void 0,ENABLE_NTP_REPORT:!0,ENABLE_INSTANT_VIDEO:!1,ENABLE_USER_AUTO_REBALANCE_CHECK:!0,ENABLE_LOSSBASED_BWE:!0,ENABLE_AUT_CC:!0,FORCE_ENABLE_AUT_CC:!1,ENABLE_CC_FALLBACK:void 0,SUBSCRIBE_TWCC:!0,PUBLISH_TWCC:!1,ENABLE_SVC_DEFAULT_CODECS:["H264","VP8","VP9","AV1"],SVC:[],ENABLE_FULL_LINK_AV_SYNC:!1,SVC_MODE:null,ENABLE_AUT_FEEDBACK:!0,SVC_EXTENDED:["VP9"],ENABLE_JOIN_V4:!1,ENABLE_AP_COMPRESS:!0},Gi={MIN_FRAME_RATE:1,MAX_FRAME_RATE:30,MAX_THRESHOLD_FRAMERATE:30,BITRATE_MIN_THRESHOLD:100,BITRATE_MAX_THRESHOLD:100,MAX_SCALE:5,BWE_SCALE_UP_THRESHOLD:.6,BWE_SCALE_DOWN_THRESHOLD:.6,PERF_SCALE_UP_THRESHOLD:.7,PERF_SCALE_DOWN_THRESHOLD:.6,MOTION_RESOLUTION_FACTOR:.8,MOTION_BITRATE_FACTOR:.6,DETAIL_FRAMERATE_FACTOR:.8,DETAIL_BITRATE_FACTOR:.6,BALANCE_RESOLUTION_FACTOR:.9,BALANCE_FRAMERATE_FACTOR:.9,BALANCE_BITRATE_FACTOR:.6,OVERUSE_TIMES_THRESHOLD:10,UNDERUSE_TIMES_THRESHOLD:40},Hi={INSTALL_ID:""},Ki="v4.24.5-0-g604b18ede-dirty(6/25/2026, 6:06:10 PM)",ji={ENABLE_EVENT_REPORT:!0,UPLOAD_LOG:!1,ENABLE_AG_ADAPTATION:!0,FORCE_AG_HIGH_FRAMERATE:!1,FORCE_SUPPORT_AG_ADAPTATION:!1,ENCODER_CONFIG_LIMIT:{},CAMERA_CAPTURE_CONFIG:void 0,ENABLE_PRELOAD:!0,NEW_ICE_RESTART:!0,ICE_RESTART_INTERVAL:1e4,RESTART_SEQUENCE:["udp_tcp_relay","relay"],FIRST_TCP_CANDIDATE:!1,MAX_CONFIG_RETRY:10,ENABLE_CONFIG_RESTORE:!1,CONFIG_RESTORE_ERROR_API:["createClient","Client.join"],CONFIG_ERROR_MONITOR:["INVALID_OPERATION","UNEXPECTED_ERROR"],BLOCKED_CONFIG_MAX_TIME:864e5,FIRST_TCP_CANDIDATE_INTERVAL:1e3,TURN_DOMAIN:"edge.agora.io",TURN_DOMAINS:["edge.agora.io"],USE_TURN_IP:!0,NEW_TURN_MODE:4,NEW_FORCE_TURN:!1,USE_NEW_RENDER_FREEZE_TIME:!0,FLS_FALLBACK_TIMEOUT:3e4,RTE_DETAIL_REPORT_INTERVAL:6e4,ENCODE_EXCEPTION_TIMES:5,ENABLE_ENCODE_EXCEPTION:!0,ENCODE_EXCEPTION_VALIDATE_CODEC:["h264"],VIDEO_ENCODER_CONFIG_LIST:[{width:240,height:180},{width:320,height:240},{width:400,height:300},{width:480,height:360},{width:560,height:420},{width:640,height:480}],DELETE_NEQ_AFTER_USER_LEAVE:!0,UPDATE_RTP_CAP_IN_HOST:!1,IOS_BG_TAG:!0,IOS_AUTO_RESTART_BG_TAG:!0,IGNORE_UID_CHECK:!1,ENABLE_UP_SPS_PPS:!1,ENABLE_DOWN_SPS_PPS:!0,NO_EDGES_RETRY:!0,BUFFER_READY_FRAMES:3,FLS_SYNC_AV_PLAY_LIMIT:0,FLS_BUFFER_WAIT_TIME:1500,VOS_CONFIGURE:void 0,ENABLE_QUALITY_FALLBACK:!1,QUALITY_FALLBACK_REHEARSAL:!0,ENABLE_FLS_AV1_FIRST:!1,ENABLE_AP_MULTI_IP:!0,FLS_ENABLE_AV1_DETECT:!0,FLS_ENABLE_AV1_DECODE_DETECT:!0,ENABLE_SDP_ENDPOINT_LOG:!1,REMOTE_VIDEO_FREEZE_TIME_VERSION:2},H=dt(dt(dt(dt({},ji),{},{PROCESS_ID:"",ENCRYPT_AES:!0,AREAS:Vi,WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-web-2.ap.sd-rtn.com","cds-ap-web-3.agora.io","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-web-2.ap.sd-rtn.com","sua-ap-web-3.agora.io","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-ap-web-1.agora.io","uap-web-2.ap.sd-rtn.com","uap-ap-web-3.agora.io","uap-web-4.ap.sd-rtn.com"],LOG_UPLOAD_SERVER:"logservice.agora.io",EVENT_REPORT_DOMAIN:"statscollector-1.agora.io",EVENT_REPORT_BACKUP_DOMAIN:"web-2.statscollector.sd-rtn.com",GATEWAY_ADDRESS:[],GATEWAY_WSS_ADDRESS:"",LIVE_STREAMING_ADDRESS:"",HTTP_CONNECT_TIMEOUT:5e3,SIGNAL_REQUEST_TIMEOUT:1e4,REPORT_STATS:!0,NOT_REPORT_EVENT:[],PING_PONG_TIME_OUT:10,WEBSOCKET_TIMEOUT_MIN:1e4,EVENT_REPORT_SEND_INTERVAL:3e3,CONFIG_DISTRIBUTE_INTERVAL:3e5,ENABLE_CONFIG_DISTRIBUTE:!0,CANDIDATE_TIMEOUT:5e3,SHOW_REPORT_INVOKER_LOG:!1,SHOW_REPORT_USER_INVOKER_LOG:!0,JOIN_EXTEND:"",PUB_EXTEND:"",SUB_EXTEND:"",FORCE_TURN:!1,TURN_ENABLE_TCP:!0,TURN_ENABLE_UDP:!0,MAX_UPLOAD_CACHE:50,UPLOAD_CACHE_INTERVAL:2e3,AJAX_REQUEST_CONCURRENT:3,REPORT_APP_SCENARIO:void 0,GATEWAY_DOMAINS:["edge.agora.io","edge.sd-rtn.com"],CONNECT_GATEWAY_WITHOUT_DOMAIN:!1,WORKER_DOMAIN:"edge.agora.io",EVENT_REPORT_RETRY:!0,CHROME_FORCE_PLAN_B:!1,AUDIO_SOURCE_VOLUME_UPDATE_INTERVAL:400,AUDIO_SOURCE_AVG_VOLUME_DURATION:3e3,AUDIO_VOLUME_INDICATION_INTERVAL:2e3,VOLUME_VOICE_WEIGHT:10,GET_VOLUME_OF_MUTED_AUDIO_TRACK:!1,STATS_UPDATE_INTERVAL:250,NORMAL_EVENT_QUEUE_CAPACITY:100,CUSTOM_REPORT:!0,CUSTOM_REPORT_LIMIT:20,PROXY_SERVER_TYPE2:"webnginx-proxy.agora.io",PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com","webrtc-cloud-proxy.agora.io"],CUSTOM_PUB_ANSWER_MODIFIER:null,CUSTOM_SUB_ANSWER_MODIFIER:null,CUSTOM_PUB_OFFER_MODIFIER:null,CUSTOM_SUB_OFFER_MODIFIER:null,DSCP_TYPE:"high",REMOVE_NEW_CODECS:!0,FRAGEMENT_LENGTH:3,WEBSOCKET_COMPRESS:!1,SIMULCAST:!1,CHECK_VIDEO_VISIBLE_INTERVAL:3e4,CHECK_LOCAL_STATS_INTERVAL:250,PROFILE_SWITCH_INTERVAL:2e3,UNSUPPORTED_VIDEO_CODEC:[],ENUMERATE_DEVICES_INTERVAL:!1,ENUMERATE_DEVICES_INTERVAL_TIME:1e4,USE_NEW_TOKEN:!1,CLOSE_AFB_FOR_LOCAL_AP:!0,JOIN_MAX_CONCURRENCY:6,JOIN_WITH_FALLBACK_SIGNAL_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE:!1,JOIN_GATEWAY_TRY_443PORT_DURATION:2e3,JOIN_GATEWAY_USE_443PORT_ONLY:!1,JOIN_GATEWAY_USE_DUAL_DOMAIN:!0,JOIN_GATEWAY_FALLBACK_PORT:443,USE_TURN_SERVER_OF_GATEWAY:!1,H264_PROFILE_LEVEL_ID:"",USE_NEW_LOG:!1,LOG_VERSION:3,MEDIA_DEVICE_CONSTRAINTS:null,ENCRYPT_PROXY_USERNAME_AND_PSW:!0,SDP_LOGGING:!1,CSP_DETECTED_HOSTNAME_LIST:["agora.io","sd-rtn.com"],REMOTE_AUDIO_TRACK_USES_WEB_AUDIO:!1,LOCAL_AUDIO_TRACK_USES_WEB_AUDIO:!1,BITRATE_ADAPTER_TYPE:"STANDARD_BITRATE",AI_DENOISER_PARAMETERS:{excludedLinks:[]},ADJUST_3A_FROM_PLUGINS:!0,RAISE_H264_BASELINE_PRIORITY:!0,FILTER_SEND_H264_BASELINE:!1,FIRST_H264_PROFILE_LEVEL_ID:"42001f",FIRST_PACKETIZATION_MODE:"",X_GOOGLE_START_BITRATE:void 0,NEW_REPORT_SERVER:!1,NEW_REPORT_SERVER_DOMAINS:["data-reporting.agora.io","data-reporting.agora.io"],VIDEO_INSPECT_WORKER_MESSAGE_LENGTH_LIMIT:3e5,VIDEO_INSPECT_INTERVAL_MINIMUM:1e3,VIDEO_INSPECT_QUALITY_RATIO:.9,VIDEO_INSPECT_WORKER_MANAGER_HOST:"edge.agora.io",VIDEO_INSPECT_WORKER_MANAGER_PORT:"",VIDEO_INSPECT_WORKER_MANAGER_WSS:"",VIDEO_INSPECT_WORKER_PORT:"",SHOW_VIDEO_INSPECT_WORKER_MESSAGE:!1,STATS_COLLECTOR_PORT:443,FORCE_TURN_TCP:!1,WEBAUDIO_INIT_OPTIONS:void 0,FILTER_VIDEO_FEC:!0,FILTER_AUDIO_FEC:!1,CHROME_DUAL_STREAM_USE_ENCODING:!0,DISABLE_DUAL_STREAM_USE_ENCODING:!1,EXTENSION_USAGE_UPLOAD_INTERVAL:1e4,ICE_RESTART:!0,FINGERPRINT:null,ENABLE_VIDEO_FRAME_CALLBACK:!0,VIDEO_FREEZE_DURATION:500,SPATIALIZER_PARAMETERS:{},UPLOAD_LOG_INTERVAL:3e3,UPLOAD_LOG_REQUEST_RETRY_INTERVAL:2e3,UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL:2e4,UPLOAD_LOG_TRY_INTERVAL_WHILE_OFF:5e3,UPLOAD_LOG_RETRY_INTERVAL_V1:1e4,UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1:200,UPLOAD_LOG_LENGTH_EACH_TIME:10,APP_TYPE:0,DISABLE_WEBAUDIO:!1,CHANNEL_MEDIA_RELAY_SERVERS:void 0,KEEP_LAST_FRAME:!0,FORWARD_P2P_CREATION:!0,SYNC_GROUP:!0,BLOCK_LOCAL_CLIENT:!1,ENABLE_AUDIO_TOPN:!1,ENABLE_AUDIO_METADATA:!1,ENABLE_AUDIO_PTS:!1,TOPN_SMOOTH_LEVEL:void 0,TOPN_NEW_SPEAKER_DELAY:void 0,TOPN_SWITCH_HOLD_MS:void 0,TOPN_AUDIO_GAIN:void 0,TOPN_SILENCE_THRESHOLD:250,AP_AREA:!0,ENABLE_ENCODED_TRANSFORM:!1,ENABLE_VIDEO_SEI:!1,IMAGE_MODERATION_WORKER_HOST:"edge.agora.io",IMAGE_MODERATION_WORKER_WSS:"",IMAGE_MODERATION_WORKER_MESSAGE_LENGTH_LIMIT:3e5,IMAGE_MODERATION_INTERVAL_MINIMUM:1e3,SHOW_IMAGE_MODERATION_WORKER_MESSAGE:!1,IMAGE_MODERATION_QUALITY_RATIO:.9,IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL:5e3,SHOW_GLOBAL_CLIENT_LIST:!1,DATASTREAM_MAX_RETRANSMITS:10,TCP_CANDIDATE_ONLY:!1,EXTERNAL_SIGNAL_REQUEST_TIMEOUT:3e3,SHOW_P2P_LOG:!1,MAX_P2P_TIMEOUT:3e4,P2P_TOKEN_INTERVAL:1e3,SHOW_DATASTREAM2_LOG:!1,RESTRICTION_SET_PLAYBACK_DEVICE:!0,USE_PURE_ENCRYPTION_MASTER_KEY:!1,ENABLE_AUDIO_RED:!1,OPUS_PTIME:void 0,AUDIO_DUPLICATE_NUM:void 0,ENABLE_ABSSENDTIME_AS_SENTTS:!0,ACCOUNT_REGISTER_RETRY_TIMEOUT:1,ACCOUNT_REGISTER_RETRY_RATIO:2,ACCOUNT_REGISTER_RETRY_TIMEOUT_MAX:6e4,ACCOUNT_REGISTER_RETRY_COUNT_MAX:1e5,AUDIO_CONTEXT:null,WEBCS_BACKUP_CONNECT_TIMEOUT:6e3,PLAYER_STATE_DEFER:2e3,SIGNAL_REQUEST_WATCH_INTERVAL:1e3,FILEPATH_LENMAX:255,DUALSTREAM_OPERATION_CHECK:!0,MEDIA_ELEMENT_EXISTS_DEPTH:3,SHIM_CANDIDATE:!1,LEAVE_MSG_TIMEOUT:2e3,STATS_FILTER:{transportId:!0,googTrackId:!0},FILTER_VIDEO_CODEC:[],SIGNAL_CHANNEL:0,TRANSMITTER_INITIAL_RTT:30,TRANSMITTER_INITIAL_RTO:30,TRANSMITTER_MAX_BATCH_ACK_COUNT:2,TRANSMITTER_MAX_RTO:500,DATACHANNEL_COMPRESS:!1,DC_JOIN_WITH_FAILBACK:4e3,DC_CONNECTION_TIMEOUT:2e3,DC_PINGPONG_INTERVAL:2e3,DC_DEBUG_LOG:!1,UNSUPPORTED_VIDEO_UPLINK_CODEC:[],UNSUPPORTED_VIDEO_DOWNLINK_CODEC:[],USE_NEW_NETWORK_CONFIG:!1,AUTO_RESET_AUDIO_ROUTE:!1,PLUGIN_INFO:[],OVERUSE_DETECTOR_PARAMS:Gi,CUSTOM_ADAPTATION_DEFAULT_MODE:"",HIDE_NO_POSTER:!1,AP_CACHE_NUM:10,AP_UPDATE_INTERVAL:12e4,AP_CACHE_LIFETIME:12e4,MAX_PRELOAD_ASYNC_LENGTH:3,DISABLE_SCREEN_SHARE_REMB:!1},Wi),{},{USE_CANDIDATE_FROM_AP_DETAIL:!1,AP_REQUEST_DETAIL:void 0,ENABLE_ROLE_SELECT_EDGE:!1,CLIENT_ROLE_OPTIONS:void 0,REMOTE_VIDEO_STREAM_TYPE:void 0,COMPATIBLE_SDP_EXTENSION:["gdpr_forbidden"],LIMIT_BITRATE:void 0,EXPERIMENTS:{},USE_PUB_RTX:!0,USE_SUB_RTX:!0,ENABLE_DATASTREAM_2:!1,USE_XR:!0,ENABLE_PREALLOC_PC:!1,ENABLE_PRE_SUB:!1,ENABLE_SVC:!1,ENABLE_FORCE_HLS:!1,MAX_WEBAUDIO_VOLUME:300,ENABLE_VOS_FALLBACK:!1,ENABLE_FALLBACK_TO_HLS:!1,ENABLE_PRE_RENDER:!1,FORCE_DISABLE_AUTO_SUB:!1,ENABLE_PRE_SUB_WITH_PRE_PC:!0,PRE_USE_LOCAL_CODECS:!0},Hi),{},{K_MIN_RENDER_DELAY:66,USE_STANDARD_BITRATE_DEFAULT:!1,VIDEO_NEW_BITRATE_RATIO:void 0,VIDEO_STANDARD_BITRATE_VERSION:2,BASELINE_MORE_H264_BITRATE_RATIO:1.1,IGNORE_RTC_DEVICE_CHECK:!1,FLS_AUTOPLAY_EMITS:!1,ENABLE_DUAL_STREAM_FLAG:!1,FORBID_MODIFY_LOCAL_OFFER_SDP:!1,RESERVE_MID_1_MLINE:!1,PRE_SUB_NUM:1,DC_IN_ESM:!0,PRE_PLAYOUT_DELAY_HINT:void 0});function Ke(t,e,r){var n;Object.keys(H).includes(t)&&(Object.keys(Yi).includes(t)||(H[t]=e,t!=="ENABLE_VIDEO_SEI"&&t!=="ENABLE_AUDIO_TOPN"&&t!=="ENABLE_AUDIO_METADATA"&&t!=="ENABLE_AUDIO_PTS"||e!==!0||(H.ENABLE_ENCODED_TRANSFORM=!0),t==="USE_NEW_NETWORK_CONFIG"&&e&&(n=!!e,H.USE_NEW_NETWORK_CONFIG=n,n&&(H.WEBCS_DOMAIN=["webrtc2-2.ap.sd-rtn.com"],H.WEBCS_DOMAIN_BACKUP_LIST=["webrtc2-4.ap.sd-rtn.com"],H.CDS_AP=["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],H.ACCOUNT_REGISTER=["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],H.EVENT_REPORT_DOMAIN="web-2.statscollector.sd-rtn.com",H.EVENT_REPORT_BACKUP_DOMAIN="statscollector-1.agora.io",H.GATEWAY_DOMAINS=["edge.sd-rtn.com"])),t==="ENABLE_PRE_SUB"&&e&&(H.ENABLE_INSTANT_VIDEO=!0,H.ENABLE_PREALLOC_PC=!0),t==="ENABLE_SVC"&&e&&(H.ENABLE_AUT_CC=!0),t==="NEW_FORCE_TURN"&&e&&(H.NEW_TURN_MODE||(H.NEW_TURN_MODE=4))))}function P(t){if(t==="TURN_DOMAINS"){const e=H.TURN_DOMAINS;return e.includes(P("TURN_DOMAIN"))?e:[P("TURN_DOMAIN")].concat(e)}return H[t]}pn||(H.WEBCS_DOMAIN=["ap-web-1-oversea.agora.io","ap-web-1-north-america.agora.io"],H.WEBCS_DOMAIN_BACKUP_LIST=["ap-web-2-oversea.agora.io","ap-web-2-north-america.agora.io"],H.PROXY_CS=["proxy-ap-web-oversea.agora.io","proxy-ap-web-america.agora.io"],H.CDS_AP=["cds-ap-web-oversea.agora.io","cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],H.ACCOUNT_REGISTER=["sua-ap-web-oversea.agora.io","sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],H.UAP_AP=["uap-ap-web-oversea.agora.io","uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],H.LOG_UPLOAD_SERVER="logservice-oversea.agora.io",H.EVENT_REPORT_DOMAIN="statscollector-1-oversea.agora.io",H.EVENT_REPORT_BACKUP_DOMAIN="statscollector-2-oversea.agora.io",H.PROXY_SERVER_TYPE3="webrtc-cloud-proxy.agora.io",H.AREAS=["NORTH_AMERICA","OVERSEA"]);(function(t){return t[t.REALTIME=1]="REALTIME",t})({});const Yi={};var Xi=function(t){return t.SET_SESSION_ID="SET_SESSION_ID",t.SET_RTE_URL="SET_RTE_URL",t.SET_RTE_SID="SET_RTE_SID",t.SET_P2P_ID="SET_P2P_id",t.SET_DC_ID="SET_DC_id",t.SET_UID="SET_UID",t.SET_INT_UID="SET_INT_UID",t.SET_PUB_ID="SET_PUB_ID",t.SET_CLOUD_PROXY_SERVER_MODE="SET_CLOUD_PROXY_SERVER_MODE",t.KEY_METRIC_CLIENT_CREATED="KEY_METRIC_CLIENT_CREATED",t.KEY_METRIC_JOIN_START="KEY_METRIC_JOIN_START",t.KEY_METRIC_PRELOAD_START="KEY_METRIC_PRELOAD_START",t.KEY_METRIC_PRELOAD_END="KEY_METRIC_PRELOAD_END",t.KEY_METRIC_JOIN_END="KEY_METRIC_JOIN_END",t.KEY_METRIC_REQUEST_AP_START="KEY_METRIC_REQUEST_AP_START",t.KEY_METRIC_REQUEST_AP_END="KEY_METRIC_REQUEST_AP_END",t.KEY_METRIC_REQUEST_SUA_END="KEY_METRIC_REQUEST_SUA_END",t.KEY_METRIC_BEFORE_CONNECT="KEY_METRIC_BEFORE_CONNECT",t.KEY_METRIC_PEER_RECEIVER="KEY_METRIC_PEER_RECEIVER",t.KEY_METRIC_SIGNAL_CONNECTED="KEY_METRIC_SIGNAL_CONNECTED",t.KEY_METRIC_JOIN_REQ="KEY_METRIC_JOIN_REQ",t.KEY_METRIC_JOIN_REP="KEY_METRIC_JOIN_REP",t.KEY_METRIC_JOIN_GATEWAY_START="KEY_METRIC_JOIN_GATEWAY_START",t.KEY_METRIC_JOIN_GATEWAY_END="KEY_METRIC_JOIN_GATEWAY_END",t.KEY_METRIC_PEER_CONNECTION_START="KEY_METRIC_PEER_CONNECTION_START",t.KEY_METRIC_PEER_CONNECTION_END="KEY_METRIC_PEER_CONNECTION_END",t.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED="KEY_METRIC_FIRST_VIDEO_FRAME_DECODED",t.KEY_METRIC_DESCRIPTION_START="KEY_METRIC_DESCRIPTION_START",t.KEY_METRIC_ICE_CONNECTION_END="KEY_METRIC_ICE_CONNECTION_END",t.KEY_METRIC_SIGNAL_CHANNEL_OPEN="KEY_METRIC_SIGNAL_CHANNEL_OPEN",t.KEY_METRIC_PUBLISH="KEY_METRIC_PUBLISH",t.KEY_METRIC_SUBSCRIBE="KEY_METRIC_SUBSCRIBE",t.RECORD_JOIN_CHANNEL_SERVICE="RECORD_JOIN_CHANNEL_SERVICE",t.RESET_JOIN_CHANNEL_SERVICE_RECORDS="RESET_JOIN_CHANNEL_SERVICE_RECORDS",t.RESET_KEY_METRICS="RESET_KEY_METRICS",t.RESET_FIRST_VIDEO_FRAME_DECODED="RESET_FIRST_VIDEO_FRAME_DECODED",t.SET_USE_P2P="SET_USE_P2P",t.SET_TRANSPORT_TYPE="SET_TRANSPORT_TYPE",t}(Xi||{});(function(t){return t.h264="h264",t.h265="h265",t.vp8="vp8",t.vp9="vp9",t.av1="av1",t})({});(function(t){return t.opus="opus",t.pcma="pcma",t.pcmu="pcmu",t.g722="g722",t})({});(()=>{var t={8:(n,i,o)=>{o.r(i),o.d(i,{Parser:()=>ht,Printer:()=>Q,parse:()=>kt,print:()=>Ut});const c=` +`,l="".concat("\r").concat(c),E=" ";let d;function p(S){return S>="0"&&S<="9"}function I(S){return S>="!"&&S<="~"}function _(S){return I(S)||S>="€"&&S<="ÿ"}function R(S){return S==="!"||S>="#"&&S<="'"||S>="*"&&S<="+"||S>="-"&&S<="."||S>="0"&&S<="9"||S>="A"&&S<="Z"||S>="^"&&S<="~"}function T(S){return S>="1"&&S<="9"}function A(S){return S>="A"&&S<="Z"||S>="a"&&S<="z"}function O(S){return S==="d"||S==="h"||S==="m"||S==="s"}function m(S){return S>""&&S<" "||S>"\v"&&S<"\f"||S>""&&S<"ÿ"}function D(S){return A(S)||p(S)||S==="+"||S==="/"}function N(S){return p(S)||A(S)||S==="+"||S==="/"||S==="-"||S==="_"}function g(S){return A(S)||p(S)||S==="+"||S==="/"}function x(S,s){var a=Object.keys(S);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(S);s&&(u=u.filter(function(f){return Object.getOwnPropertyDescriptor(S,f).enumerable})),a.push.apply(a,u)}return a}function v(S){for(var s=1;s=0&&f<=255)return u;throw new Error("Invalid decimal uchar")}consumeIP6Address(s,a){let u=this.consumeHexpart(s,a);return s[u]===":"&&(u+=1,u=this.consumeIP4Address(s,u)),u}consumeHexpart(s,a){let u=a;if(s[u]===":"&&s[u+1]===":"){u+=2;try{u=this.consumeHexseq(s,u)}catch{}return u}if(u=this.consumeHexseq(s,u),s[u]===":"&&s[u+1]===":"){u+=2;try{u=this.consumeHexseq(s,u)}catch{}return u}return u}consumeHexseq(s,a){let u=a;for(;u=this.consumeHex4(s,u),s[u]===":"&&s[u+1]!==":";)u+=1;return u}consumeHex4(s,a){let u=0;for(;u<4;u++)if(!((f=s[a+u])>="0"&&f<="9"||f>="a"&&f<="f"||f>="A"&&f<="F")){if(u===0)throw new Error("Invalid hex 4");break}var f;return a+u}consumeFQDN(s,a){let u=a;for(;p(s[u])||A(s[u])||s[u]==="-"||s[u]===".";)u+=1;if(u-a<4)throw new Error("Invalid FQDN");return u}consumeExtnAddr(s,a){return this.consumeOneOrMore(s,a,_)}consumeMulticastAddress(s,a,u){switch(u){case"IP4":case"ip4":return this.consumeIP4MulticastAddress(s,a);case"IP6":case"ip6":return this.consumeIP6MulticastAddress(s,a);default:try{return this.consumeFQDN(s,a)}catch{return this.consumeExtnAddr(s,a)}}}consumeIP6MulticastAddress(s,a){const u=this.consumeHexpart(s,a);return s[u]==="/"?this.consumeInteger(s,u+1):u}consumeIP4MulticastAddress(s,a){let u=a+3;const f=s.slice(a,u),L=parseInt(f);if(L<224||L>239)throw new Error("Invalid IP4 multicast address, IPv4 multicast addresses may be in the range 224.0.0.0 to 239.255.255.255.");for(let w=0;w<3;w++){if(s[u]!==".")throw new Error("Invalid IP4 multicast address.");u+=1,u=this.consumeDecimalUChar(s,u)}return s[u]==="/"&&(u+=1),u=this.consumeTTL(s,u),s[u]==="/"&&(u=this.consumeInteger(s,u)),u}consumeInteger(s,a){if(!T(s[a]))throw new Error("Invalid integer.");for(a+=1;p(s[a]);)a+=1;return a}consumeTTL(s,a){if(s[a]==="0")return a+1;if(!T(s[a]))throw new Error("Invalid TTL.");a+=1;for(let u=0;u<2&&p(s[a]);u++)a+=1;return a}consumeToken(s,a){return this.consumeOneOrMore(s,a,R)}consumeTime(s,a){let u=a;if(s[u]==="0")return u+1;for(T(s[u])&&(u+=1);p(s[u]);)u++;if(u-a<10)throw new Error("Invalid time");return u}consumeAddress(s,a){return this.consumeTill(s,a,E)}consumeTypedTime(s,a){let u=a;return u=this.consumeOneOrMore(s,u,p),O(s[u])?u+1:u}consumeRepeatInterval(s,a){if(!T(s[a]))throw new Error("Invalid repeat interval");for(a+=1;p(s[a]);)a+=1;return O(s[a])&&(a+=1),a}consumePort(s,a){return this.consumeOneOrMore(s,a,p)}consume(s,a,u){for(let f=0;f=s.length)throw new Error("consume exceeding value length");if(s[a+f]!==u[f])throw new Error("consume ".concat(u," failed at ").concat(f))}return a+u.length}consumeTill(s,a,u){let f=a;for(;f!!y.trim()).map(this.parseLine),this.currentLine=0;const u=this.parseVersion(),f=this.parseOrigin(),L=this.parseSessionName(),w=this.parseInformation(),B=this.parseUri(),J=this.parseEmail(),Tt=this.parsePhone(),bt=this.parseConnection(),Pt=this.parseBandWidth(),nt=this.parseTimeFields(),vt=this.parseKey(),yt=this.parseSessionAttribute(),it=this.parseMediaDescription();if(this.currentLine!==this.records.length)throw new Error("parsing failed, non exhaustive sdp lines.");return{version:u,origin:f,sessionName:L,information:w,uri:B,emails:J,phones:Tt,connection:bt,bandwidths:Pt,timeFields:nt,key:vt,attributes:yt,mediaDescriptions:it}}getCurrentRecord(){const s=this.records[this.currentLine];if(!s)throw new Error("Record doesn't exit.");return s}probeEOL(s){for(let a=0;a=.");const u=s[0];if(s[1]!=="=")throw new Error('Invalid sdp line, should be a single character followed by an "=" sign.');return{type:u,value:s.slice(2),line:a,cur:0}}parseSessionAttribute(){const s=new ct;for(;this.currentLineR(f)&&f!==":"),_cur:0};a.value[a.cur]===":"&&(a.cur+=1,u.attValue=this.extractOneOrMore(a,m)),s.parse(u),this.currentLine++}return s.digest()}parseMediaAttributes(s){const a=new gt(s);for(;this.currentLineR(L)&&L!==":"),_cur:0};u.value[u.cur]===":"&&(u.cur+=1,f.attValue=this.extractOneOrMore(u,m)),a.parse(f),this.currentLine++}return a.digest()}parseKey(){const s=this.getCurrentRecord();if(s.type===d.KEY){if(s.value==="prompt"||s.value==="clear:"||s.value==="base64:"||s.value==="uri:")return s.value;throw this.currentLine++,new Error("Invalid key.")}}parseZone(){const s=this.getCurrentRecord();if(s.type===d.ZONE_ADJUSTMENTS){const a=[];for(;;)try{const u=this.extract(s,this.consumeTime);this.consumeSpaceForRecord(s);let f=!1;s.value[s.cur]==="-"&&(f=!0,s.cur+=1);const L=this.extract(s,this.consumeTypedTime);a.push({time:u,typedTime:L,back:f})}catch{break}if(a.length===0)throw new Error("Invalid zone adjustments");return this.currentLine++,a}return[]}parseRepeat(){const s=[];for(;;){const a=this.getCurrentRecord();if(a.type!==d.REPEAT)break;{const u=this.extract(a,this.consumeRepeatInterval),f=this.parseTypedTime(a);s.push({repeatInterval:u,typedTimes:f}),this.currentLine++}}return s}parseTypedTime(s){const a=[];for(;;)try{this.consumeSpaceForRecord(s),a.push(this.extract(s,this.consumeTypedTime))}catch{break}if(a.length===0)throw new Error("Invalid typed time.");return a}parseTime(){const s=this.getCurrentRecord(),a=this.extract(s,this.consumeTime);this.consumeSpaceForRecord(s);const u=this.extract(s,this.consumeTime);return this.currentLine++,{startTime:a,stopTime:u}}parseBandWidth(){const s=[];for(;this.currentLineB)throw new Error("error in length, should be less or equal than ".concat(B," characters."));return s._cur=f,L}consumeAttributeSpace(s){if(s.attValue[s._cur]!==E)throw new Error("Invalid space at ".concat(s._cur,"."));s._cur+=1}extract(s,a,...u){if(!s.attValue)throw new Error("Nothing to extract from attValue.");const f=a.call(this,s.attValue,s._cur,...u),L=s.attValue.slice(s._cur,f);return s._cur=f,L}atEnd(s){if(!s.attValue)throw new Error;return s._cur>=s.attValue.length}peekChar(s){if(!s.attValue)throw new Error;return s.attValue[s._cur]}peek(s,a){if(!s.attValue)throw new Error;for(let u=0;uw!==E&&m(w));u.push({name:f,value:L})}this.attributes.identities.push({assertionValue:a,extensions:u})}parseMsidSemantic(s){this.peekChar(s)===E&&this.consumeAttributeSpace(s);const a={semantic:this.extract(s,this.consumeToken),identifierList:[]};for(;;){try{this.consumeAttributeSpace(s)}catch{break}if(this.peekChar(s)==="*"){this.extract(s,this.consume,"*"),a.applyForAll=!0;break}{const u=this.extract(s,this.consumeTill,E);a.identifierList.push(u)}}this.attributes.msidSemantic=a}}class gt extends q{constructor(s){super(),X(this,"attributes",void 0),s.protos.indexOf("RTP")!==-1||s.protos.indexOf("rtp"),this.attributes={unrecognized:[],candidates:[],extmaps:[],fingerprints:[],imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[]}}parse(s){if(this.digested)throw new Error("already digested");try{switch(s.attField){case"extmap":this.parseExtmap(s);break;case"setup":this.parseSetup(s);break;case"ice-ufrag":this.parseIceUfrag(s);break;case"ice-pwd":this.parseIcePwd(s);break;case"ice-options":this.parseIceOptions(s);break;case"candidate":this.parseCandidate(s);break;case"remote-candidate":this.parseRemoteCandidate(s);break;case"end-of-candidates":this.parseEndOfCandidates();break;case"fingerprint":this.parseFingerprint(s);break;case"rtpmap":this.parseRtpmap(s);break;case"ptime":this.parsePtime(s);break;case"maxptime":this.parseMaxPtime(s);break;case"sendrecv":case"recvonly":case"sendonly":case"inactive":this.parseDirection(s);break;case"ssrc":this.parseSSRC(s);break;case"fmtp":this.parseFmtp(s);break;case"rtcp-fb":this.parseRtcpFb(s);break;case"rtcp-mux":this.parseRTCPMux();break;case"rtcp-mux-only":this.parseRTCPMuxOnly();break;case"rtcp-rsize":this.parseRTCPRsize();break;case"rtcp":this.parseRTCP(s);break;case"mid":this.parseMid(s);break;case"msid":this.parseMsid(s);break;case"imageattr":this.parseImageAttr(s);break;case"rid":this.parseRid(s);break;case"simulcast":this.parseSimulcast(s);break;case"sctp-port":this.parseSctpPort(s);break;case"max-message-size":this.parseMaxMessageSize(s);break;case"ssrc-group":this.parseSSRCGroup(s);break;default:s.ignored=!0,this.attributes.unrecognized.push(s)}}catch(a){throw console.error("parsing media attribute ".concat(s.attField,' error, "a=').concat(s.attField,":").concat(s.attValue,'"')),a}if(!s.ignored&&s.attValue&&!this.atEnd(s))throw new Error("attribute parsing error")}parseCandidate(s){const a=this.extractOneOrMore(s,D,[1,32]);this.consumeAttributeSpace(s);const u=this.extractOneOrMore(s,p,[1,5]);this.consumeAttributeSpace(s);const f=this.extract(s,this.consumeToken);this.consumeAttributeSpace(s);const L=this.extractOneOrMore(s,p,[1,10]);this.consumeAttributeSpace(s);const w=this.extract(s,this.consumeAddress);this.consumeAttributeSpace(s);const B=this.extract(s,this.consumePort);this.consumeAttributeSpace(s),this.extract(s,this.consume,"typ"),this.consumeAttributeSpace(s);const J={foundation:a,componentId:u,transport:f,priority:L,connectionAddress:w,port:B,type:this.extract(s,this.consumeToken),extension:{}};for(this.peek(s," raddr")&&(this.extract(s,this.consume," raddr"),this.consumeAttributeSpace(s),J.relAddr=this.extract(s,this.consumeAddress)),this.peek(s," rport")&&(this.extract(s,this.consume," rport"),this.consumeAttributeSpace(s),J.relPort=this.extract(s,this.consumePort));this.peekChar(s)===E;){this.consumeAttributeSpace(s);const Tt=this.extract(s,this.consumeToken);this.consumeAttributeSpace(s),J.extension[Tt]=this.extractOneOrMore(s,I)}this.attributes.candidates.push(J)}parseRemoteCandidate(s){const a=[];for(;;){const u=this.extractOneOrMore(s,p,[1,5]);this.consumeAttributeSpace(s);const f=this.extract(s,this.consumeAddress);this.consumeAttributeSpace(s);const L=this.extract(s,this.consumePort);a.push({componentId:u,connectionAddress:f,port:L});try{this.consumeAttributeSpace(s)}catch{break}}this.attributes.remoteCandidatesList.push(a)}parseEndOfCandidates(){if(this.attributes.endOfCandidates)throw new Error("must be only one line of end-of-candidates");this.attributes.endOfCandidates=!0}parseRtpmap(s){const a=this.extract(s,this.consumeToken);this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill,"/");this.extract(s,this.consume,"/");const f={encodingName:u,clockRate:this.extractOneOrMore(s,p)};this.atEnd(s)||this.peekChar(s)!=="/"||(this.extract(s,this.consume,"/"),f.encodingParameters=parseInt(this.extract(s,this.consumeTill),10));const L=this.attributes.payloads.find(w=>w.payloadType===parseInt(a,10));L?L.rtpMap=f:this.attributes.payloads.push({payloadType:parseInt(a,10),rtpMap:f,rtcpFeedbacks:[]})}parsePtime(s){if(this.attributes.ptime)throw new Error("must be only one line of ptime");this.attributes.ptime=this.extract(s,this.consumeTill)}parseMaxPtime(s){if(this.attributes.maxPtime)throw new Error("must be only one line of ptime");this.attributes.maxPtime=this.extract(s,this.consumeTill)}parseDirection(s){if(this.attributes.direction)throw new Error("must be only one line of direction info");this.attributes.direction=s.attField}parseSSRC(s){const a=this.extractOneOrMore(s,p);this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill,":");let f;this.peekChar(s)===":"&&(this.extract(s,this.consume,":"),f=this.extract(s,this.consumeTill));const L=this.attributes.ssrcs.find(w=>w.ssrcId===parseInt(a,10));L?L.attributes[u]=f:this.attributes.ssrcs.push({ssrcId:parseInt(a,10),attributes:{[u]:f}})}parseFmtp(s){const a=this.extract(s,this.consumeTill,E);this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill),f={};u.split(";").forEach(w=>{let[B,J]=w.split("=");B=B.trim();const Tt=typeof J=="string"?J.trim():null;typeof B=="string"&&B.length>0&&(f[B]=Tt)});const L=this.attributes.payloads.find(w=>w.payloadType===parseInt(a,10));L?L.fmtp={parameters:f}:this.attributes.payloads.push({payloadType:parseInt(a,10),rtcpFeedbacks:[],fmtp:{parameters:f}})}parseFmtParameters(s){const a={},u=this.extract(s,this.consumeTill,"=");s._cur++;const f=this.extract(s,this.consumeTill,";");for(a[u]=f;s.attValue[s._cur]===";";){const L=this.extract(s,this.consumeTill,"=");s._cur++;const w=this.extract(s,this.consumeTill,";");a[L]=w}return a}parseRtcpFb(s){let a="";a=this.peekChar(s)==="*"?this.extract(s,this.consume,"*"):this.extract(s,this.consumeTill,E),this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill,E);let f;if(u==="trr-int")f={type:u,interval:this.extract(s,this.consumeTill)};else{const L={type:u};this.peekChar(s)===E&&(this.consumeAttributeSpace(s),L.parameter=this.extract(s,this.consumeToken),this.peekChar(s)===E&&(L.additional=this.extract(s,this.consumeTill))),f=L}if(a==="*")this.attributes.rtcpFeedbackWildcards.push(f);else{const L=this.attributes.payloads.find(w=>w.payloadType===parseInt(a,10));L?L.rtcpFeedbacks.push(f):this.attributes.payloads.push({payloadType:parseInt(a,10),rtcpFeedbacks:[f]})}}parseRTCPMux(){if(this.attributes.rtcpMux)throw new Error("must be single line of rtcp-mux");this.attributes.rtcpMux=!0}parseRTCPMuxOnly(){if(this.attributes.rtcpMuxOnly)throw new Error("must be single line of rtcp-only");this.attributes.rtcpMuxOnly=!0}parseRTCPRsize(){if(this.attributes.rtcpRsize)throw new Error("must be single line of rtcp-rsize");this.attributes.rtcpRsize=!0}parseRTCP(s){if(this.attributes.rtcp)throw new Error("must be single line of rtcp");const a={port:this.extract(s,this.consumePort)};this.peekChar(s)===E&&(this.consumeAttributeSpace(s),a.netType=this.extractOneOrMore(s,R),this.consumeAttributeSpace(s),a.addressType=this.extractOneOrMore(s,R),this.consumeAttributeSpace(s),a.address=this.extract(s,this.consumeAddress)),this.attributes.rtcp=a}parseMsid(s){const a={id:this.extractOneOrMore(s,R,[1,64])};this.peekChar(s)===E&&(this.consumeAttributeSpace(s),a.appdata=this.extractOneOrMore(s,R,[1,64])),this.attributes.msids.push(a)}parseImageAttr(s){this.attributes.imageattr.push(s.attValue)}parseRid(s){const a=this.extractOneOrMore(s,f=>A(f)||p(f)||f==="_"||f==="-");this.consumeAttributeSpace(s);const u={id:a,direction:this.extract(s,this.consumeToken),params:[]};if(this.peekChar(s)===E){if(this.consumeAttributeSpace(s),this.peek(s,"pt=")){this.extract(s,this.consume,"pt=");const f=[];for(;;){const L=this.extract(s,this.consumeToken);f.push(L);try{this.extract(s,this.consume,",")}catch{break}}u.payloads=f,this.peekChar(s)===E&&this.extract(s,this.consume,E)}for(;;){const f=this.extract(s,this.consumeToken);switch(f){case"depend":{const L={type:f,rids:this.extract(s,this.consume,"=").split(",")};u.params.push(L);break}default:{const L={type:f};this.peekChar(s)==="="&&(this.extract(s,this.consume,"="),L.val=this.extract(s,this.consumeTill,";")),u.params.push(L)}}try{this.extract(s,this.consume,";")}catch{break}}}this.attributes.rids.push(u)}parseSimulcast(s){if(this.attributes.simulcast)throw new Error("must be single line of simulcast");this.attributes.simulcast=s.attValue,this.extract(s,this.consumeTill)}parseSctpPort(s){this.attributes.sctpPort=this.extractOneOrMore(s,p,[1,5])}parseMaxMessageSize(s){this.attributes.maxMessageSize=this.extractOneOrMore(s,p,[1,void 0])}digest(){return this.digested=!0,this.attributes}parseMid(s){this.attributes.mid=this.extract(s,this.consumeToken)}parseSSRCGroup(s){const a=this.extract(s,this.consumeToken),u=[];for(;;)try{this.consumeAttributeSpace(s);const f=this.extract(s,this.consumeInteger);u.push(parseInt(f,10))}catch{break}this.attributes.ssrcGroups.push({semantic:a,ssrcIds:u})}}function Ot(S,s,a){return s in S?Object.defineProperty(S,s,{value:a,enumerable:!0,configurable:!0,writable:!0}):S[s]=a,S}class Q{constructor(){Ot(this,"eol",l)}print(s,a){let u="";return a&&(this.eol=a),u+=this.printVersion(s.version),u+=this.printOrigin(s.origin),u+=this.printSessionName(s.sessionName),u+=this.printInformation(s.information),u+=this.printUri(s.uri),u+=this.printEmail(s.emails),u+=this.printPhone(s.phones),u+=this.printConnection(s.connection),u+=this.printBandwidth(s.bandwidths),u+=this.printTimeFields(s.timeFields),u+=this.printKey(s.key),u+=this.printSessionAttributes(s.attributes),u+=this.printMediaDescription(s.mediaDescriptions),u}printVersion(s){return"v=".concat(s).concat(this.eol)}printOrigin(s){return"o=".concat(s.username," ").concat(s.sessId," ").concat(s.sessVersion," ").concat(s.nettype," ").concat(s.addrtype," ").concat(s.unicastAddress).concat(this.eol)}printSessionName(s){return s?"s=".concat(s).concat(this.eol):""}printInformation(s){return s?"i=".concat(s).concat(this.eol):""}printUri(s){return s?"u=".concat(s).concat(this.eol):""}printEmail(s){let a="";for(const u of s)a+="e=".concat(u).concat(this.eol);return a}printPhone(s){let a="";for(const u of s)a+="e=".concat(u).concat(this.eol);return a}printConnection(s){return s?"c=".concat(s.nettype," ").concat(s.addrtype," ").concat(s.address).concat(this.eol):""}printBandwidth(s){let a="";for(const u of s)a+="b=".concat(u.bwtype,":").concat(u.bandwidth).concat(this.eol);return a}printTimeFields(s){let a="";for(const u of s){a+="t=".concat(u.time.startTime," ").concat(u.time.startTime).concat(this.eol);for(const f of u.repeats)a+="r=".concat(f.repeatInterval," ").concat(f.typedTimes.join(" ")).concat(this.eol);u.zoneAdjustments&&(a+="z=",a+="z=".concat(u.zoneAdjustments.map(f=>"".concat(f.time," ").concat(f.back?"-":""," ").concat(f.typedTime)).join(" ")).concat(this.eol),a+=this.eol)}return a}printKey(s){return s?"k=".concat(s).concat(this.eol):""}printAttributes(s){let a="";for(const u of s)a+="a=".concat(u.attField).concat(u.attValue?":".concat(u.attValue):"").concat(this.eol);return a}printMediaDescription(s){let a="";for(const u of s)a+=this.printMedia(u.media),a+=this.printInformation(u.information),a+=this.printConnections(u.connections),a+=this.printBandwidth(u.bandwidths),a+=this.printKey(u.key),a+=this.printMediaAttributes(u);return a}printConnections(s){let a="";for(const u of s)a+=this.printConnection(u);return a}printMedia(s){return"m=".concat(s.mediaType," ").concat(s.port," ").concat(s.protos.join("/")," ").concat(s.fmts.join(" ")).concat(this.eol)}printSessionAttributes(s){return new _t(this.eol).print(s)}printMediaAttributes(s){return new It(this.eol).print(s)}}class Ct{constructor(s){Ot(this,"eol",void 0),this.eol=s}printIceUfrag(s){return s===void 0?"":"a=ice-ufrag:".concat(s).concat(this.eol)}printIcePwd(s){return s===void 0?"":"a=ice-pwd:".concat(s).concat(this.eol)}printIceOptions(s){return s===void 0?"":"a=ice-options:".concat(s.join(E)).concat(this.eol)}printFingerprints(s){return s.length>0?s.map(a=>"a=fingerprint:".concat(a.hashFunction).concat(E).concat(a.fingerprint)).join(this.eol)+this.eol:""}printExtmap(s){return s.map(a=>"a=extmap:".concat(a.entry).concat(a.direction?"/".concat(a.direction):"").concat(E).concat(a.extensionName).concat(a.extensionAttributes?"".concat(E).concat(a.extensionAttributes):"").concat(this.eol)).join("")}printSetup(s){return s===void 0?"":"a=setup:".concat(s).concat(this.eol)}printUnrecognized(s){return s.map(a=>"a=".concat(a.attField).concat(a.attValue?":".concat(a.attValue):"").concat(this.eol)).join("")}}class _t extends Ct{print(s){let a="";return a+=this.printGroups(s.groups),a+=this.printMsidSemantic(s.msidSemantic),a+=this.printIceLite(s.iceLite),a+=this.printIceUfrag(s.iceUfrag),a+=this.printIcePwd(s.icePwd),a+=this.printIceOptions(s.iceOptions),a+=this.printFingerprints(s.fingerprints),a+=this.printSetup(s.setup),a+=this.printTlsId(s.tlsId),a+=this.printIdentity(s.identities),a+=this.printExtmap(s.extmaps),a+=this.printUnrecognized(s.unrecognized),a}printGroups(s){let a="";return s.length>0&&(a+=s.map(u=>"a=group:".concat(u.semantic).concat(u.identificationTag.map(f=>"".concat(E).concat(f)).join("")).concat(this.eol)).join("")),a}printIceLite(s){return s===void 0?"":"a=ice-lite"+this.eol}printTlsId(s){return s?"a=tls-id:".concat(s).concat(this.eol):""}printIdentity(s){return s.length===0?"":s.map(a=>"a=identity:".concat(a.assertionValue).concat(a.extensions.map(u=>"".concat(E).concat(u.name).concat(u.value?"=".concat(u.value):"")))).join(this.eol)+this.eol}printMsidSemantic(s){if(!s)return"";let a="a=msid-semantic:".concat(s.semantic);return s.applyForAll?a+="".concat(E,"*"):s.identifierList.length>0&&(a+=s.identifierList.map(u=>"".concat(E).concat(u))),a+this.eol}}class It extends Ct{print(s){const a=s.attributes;let u="";return u+=this.printRTCP(a.rtcp),u+=this.printIceUfrag(a.iceUfrag),u+=this.printIcePwd(a.icePwd),u+=this.printIceOptions(a.iceOptions),u+=this.printCandidates(a.candidates),u+=this.printRemoteCandidatesList(a.remoteCandidatesList),u+=this.printEndOfCandidates(a.endOfCandidates),u+=this.printFingerprints(a.fingerprints),u+=this.printSetup(a.setup),u+=this.printMid(a.mid),u+=this.printExtmap(a.extmaps),u+=this.printRTPRelated(a),u+=this.printPtime(a.ptime),u+=this.printMaxPtime(a.maxPtime),u+=this.printDirection(a.direction),u+=this.printSSRCGroups(a.ssrcGroups),u+=this.printSSRC(a.ssrcs),u+=this.printRTCPMux(a.rtcpMux),u+=this.printRTCPMuxOnly(a.rtcpMuxOnly),u+=this.printRTCPRsize(a.rtcpRsize),u+=this.printMSId(a.msids),u+=this.printImageattr(a.imageattr),u+=this.printRid(a.rids),u+=this.printSimulcast(a.simulcast),u+=this.printSCTPPort(a.sctpPort),u+=this.printMaxMessageSize(a.maxMessageSize),u+=this.printUnrecognized(a.unrecognized),u}printCandidates(s){return s.map(a=>"a=candidate:".concat(a.foundation).concat(E).concat(a.componentId).concat(E).concat(a.transport).concat(E).concat(a.priority).concat(E).concat(a.connectionAddress).concat(E).concat(a.port).concat(E,"typ").concat(E).concat(a.type).concat(a.relAddr?"".concat(E,"raddr").concat(E).concat(a.relAddr):"").concat(a.relPort?"".concat(E,"rport").concat(E).concat(a.relPort):"").concat(Object.keys(a.extension).map(u=>"".concat(E).concat(u).concat(E).concat(a.extension[u])).join("")).concat(this.eol)).join("")}printRemoteCandidatesList(s){return s.map(a=>"a=remote-candidates:".concat(a.join(E)).concat(this.eol)).join("")}printEndOfCandidates(s){return s===void 0?"":"a=end-of-candidates"+this.eol}printRTPRelated(s){if(!s.payloads)return"";const a=s.payloads;let u="";u+=s.rtcpFeedbackWildcards.map(f=>this.printRTCPFeedback("*",f)).join("");for(const f of a)u+=this.printRtpMap(f.payloadType,f.rtpMap),u+=this.printFmtp(f.payloadType,f.fmtp),u+=f.rtcpFeedbacks.map(L=>this.printRTCPFeedback(f.payloadType,L)).join("");return u}printFmtp(s,a){if(!a)return"";const u=Object.keys(a.parameters);return u.length===1&&a.parameters[u[0]]===null?"a=fmtp:".concat(s).concat(E).concat(u[0]).concat(this.eol):"a=fmtp:".concat(s).concat(E).concat(Object.keys(a.parameters).map(f=>"".concat(f,"=").concat(a.parameters[f])).join(";")).concat(this.eol)}printRtpMap(s,a){return a?"a=rtpmap:".concat(s).concat(E).concat(a.encodingName,"/").concat(a.clockRate).concat(a.encodingParameters?"/".concat(a.encodingParameters):"").concat(this.eol):""}printRTCPFeedback(s,a){let u="a=rtcp-fb:".concat(s).concat(E),f=a;return f.type==="trr-int"?u+="ttr-int".concat(E).concat(f.interval):(u+="".concat(f.type),f.parameter&&(u+="".concat(E).concat(f.parameter),f.additional&&(u+="".concat(E).concat(f.additional)))),u+this.eol}printPtime(s){return s===void 0?"":"a=ptime:".concat(s).concat(this.eol)}printMaxPtime(s){return s===void 0?"":"a=maxptime:".concat(s).concat(this.eol)}printDirection(s){return s===void 0?"":"a=".concat(s).concat(this.eol)}printSSRC(s){return s.map(a=>Object.keys(a.attributes).map(u=>"a=ssrc:".concat(a.ssrcId.toString(10)).concat(E).concat(u).concat(a.attributes[u]?":".concat(a.attributes[u]):"").concat(this.eol)).join("")).join("")}printRTCPMux(s){return s===void 0?"":"a=rtcp-mux".concat(this.eol)}printRTCPMuxOnly(s){return s===void 0?"":"a=rtcp-mux-only".concat(this.eol)}printRTCPRsize(s){return s===void 0?"":"a=rtcp-rsize".concat(this.eol)}printRTCP(s){if(s===void 0)return"";let a="a=rtcp:".concat(s.port);return s.netType&&(a+="".concat(E).concat(s.netType)),s.addressType&&(a+="".concat(E).concat(s.addressType)),s.address&&(a+="".concat(E).concat(s.address)),a+this.eol}printMSId(s){return s.map(a=>"a=msid:".concat(a.id).concat(a.appdata?"".concat(E).concat(a.appdata):"").concat(this.eol)).join("")}printImageattr(s){return s.map(a=>"a=imageattr:".concat(a).concat(this.eol)).join("")}printRid(s){return s.map(a=>{let u="a=rid:".concat(a.id).concat(E).concat(a.direction);return a.payloads&&(u+="".concat(E,"pt=").concat(a.payloads.join(","))),a.params.length>0&&(u+="".concat(E).concat(a.params.map(f=>f.type==="depend"?"depend=".concat(f.rids.join(",")):"".concat(f.type,"=").concat(f.val)).join(";"))),u+this.eol}).join("")}printSimulcast(s){return s===void 0?"":"a=simulcast:".concat(s).concat(this.eol)}printSCTPPort(s){return s===void 0?"":"a=sctp-port:".concat(s).concat(this.eol)}printMaxMessageSize(s){return s===void 0?"":"a=max-message-size:".concat(s).concat(this.eol)}printMid(s){return s===void 0?"":"a=mid:".concat(s).concat(this.eol)}printSSRCGroups(s){return s.map(a=>"a=ssrc-group:".concat(a.semantic).concat(a.ssrcIds.map(u=>"".concat(E).concat(u.toString(10))).join("")).concat(this.eol)).join("")}}function kt(S){return new ht().parse(S)}function Ut(S,s){return new Q().print(S,s)}}},e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}return r.d=(n,i)=>{for(var o in i)r.o(i,o)&&!r.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:i[o]})},r.o=(n,i)=>Object.prototype.hasOwnProperty.call(n,i),r.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r(8)})();function Mr(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r]+)(>|$)/g,function(E,d,p){if(p==="")return E;var I=c[d];return Array.isArray(I)?"$"+I.join("$"):typeof I=="number"?"$"+I:""}))}if(typeof o=="function"){var l=this;return t[Symbol.replace].call(this,i,function(){var E=arguments;return typeof E[E.length-1]!="object"&&(E=[].slice.call(E)).push(n(E,l)),o.apply(this,E)})}return t[Symbol.replace].call(this,i,o)},je.apply(this,arguments)}const hn=new class extends ln{constructor(){super(...arguments),V(this,"currentUploadLogID",0)}reportLogUploadError(t){const e=t.errorRange;e[e.length-1]&&e[e.length-1]>this.currentUploadLogID&&(this.currentUploadLogID=e[e.length-1],this.emit("REPORT_LOG_UPLOAD",t))}};class zi{constructor(e){V(this,"logger",void 0),V(this,"prefixLists",[]),this.logger=e}debug(){for(var e=arguments.length,r=new Array(e),n=0;n{for(const e in Et)if(Object.prototype.hasOwnProperty.call(Et,e)&&Et[e]===t)return e;return"DEFAULT"};class Ji{constructor(){V(this,"proxyServerURL",void 0),V(this,"logLevel",Et.DEBUG),V(this,"uploadState","collecting"),V(this,"uploadStartTimer",void 0),V(this,"uploadLogWaitingList",[]),V(this,"uploadLogUploadingList",[]),V(this,"uploadErrorCount",0),V(this,"currentLogID",0),V(this,"url",void 0),V(this,"extLog",(e,r)=>{this.appendLogToWaitingList(e,...r)})}debug(){for(var e=arguments.length,r=new Array(e),n=0;n{this.log(...r)},Date.now()-Ee);const i=Math.max(0,Math.min(4,r[0]));if(r[0]=ve()+" Agora-SDK [".concat(Qt(i),"]:"),this.appendLogToWaitingList(i,...r),i{this.uploadLog(...r)},Date.now()-Ee);const i=Math.max(0,Math.min(4,r[0]));r[0]=ve()+" Agora-SDK [".concat(Qt(i),"]:"),this.appendLogToWaitingList(i,...r)}appendLogToWaitingList(e){if(!P("UPLOAD_LOG"))return;for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i{typeof c=="object"&&(c=JSON.stringify(c)),o+="".concat(c," ")}),this.uploadLogWaitingList.push({payload_str:o,log_level:e,log_item_id:this.currentLogID++}),this.uploadState==="uploading"&&this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}startUpload(){this.uploadState="uploading",this.uploadStartTimer!==void 0&&(window.clearTimeout(this.uploadStartTimer),this.uploadStartTimer=void 0),this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}scheduleUploadStart(){this.uploadState!=="uploading"&&this.uploadStartTimer===void 0&&(this.uploadStartTimer=window.setTimeout(()=>{this.uploadStartTimer=void 0,P("UPLOAD_LOG")&&this.startUpload()},5e3))}async uploadLogs(){const e=this.uploadLogUploadingList,r={sdk_version:dn,process_id:P("PROCESS_ID"),payload:JSON.stringify(e)};return vi(async()=>{const n=await Y.post(this.url||(this.proxyServerURL?"https://".concat(this.proxyServerURL,"/ls/?h=").concat(P("LOG_UPLOAD_SERVER"),"&p=443&d=upload/v1"):"https://".concat(P("LOG_UPLOAD_SERVER"),"/upload/v1")),r,{responseType:"text"});if(n.data!=="OK"){const i=new Error("unexpected upload log response");throw i.response=n,i}},()=>(this.uploadLogUploadingList=[],!1),n=>{const i={status:-1,message:n.message,errorRange:e.map(o=>o.log_item_id)};return n.response?(i.status=n.response.status,i.data=n.response.data,i.headers=n.response.headers):n.request&&(i.status=n.request.status),hn.reportLogUploadError(i),!0},{timeout:P("UPLOAD_LOG_REQUEST_RETRY_INTERVAL"),maxRetryTimeout:P("UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL")})}uploadLogInterval(){this.uploadLogUploadingList.length===0&&this.uploadLogWaitingList.length===0||(this.uploadLogUploadingList.length===0&&(this.uploadLogUploadingList=this.uploadLogWaitingList.splice(0,P("UPLOAD_LOG_LENGTH_EACH_TIME"))),this.uploadLogs().then(()=>{this.uploadErrorCount=0,this.uploadLogWaitingList.length>0&&window.setTimeout(()=>this.uploadLogInterval(),P("UPLOAD_LOG_INTERVAL"))}).catch(e=>{this.uploadErrorCount+=1,this.uploadErrorCount<2?window.setTimeout(()=>this.uploadLogInterval(),P("UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1")):window.setTimeout(()=>this.uploadLogInterval(),P("UPLOAD_LOG_RETRY_INTERVAL_V1"))}))}}const z=new Ji;let Co=function(t){return t.FREE="free",t.UPLOADING="uploading",t}({}),bo=function(t){return t[t.MISC=0]="MISC",t[t.INTERNAL_EVENT=1]="INTERNAL_EVENT",t[t.PUBLIC_EVENT=2]="PUBLIC_EVENT",t[t.WEB_EVENT=3]="WEB_EVENT",t[t.INTERNAL_API=4]="INTERNAL_API",t[t.WEB_API=5]="WEB_API",t[t.PUBLIC_API=6]="PUBLIC_API",t}({});function Lo(t){return ae(t.reportId,"params.reportId",0,100,!1),ae(t.category,"params.category",0,100,!1),ae(t.event,"params.event",0,100,!1),ae(t.label,"params.label",0,100,!1),gi(t.value,"params.value",Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,!1),!0}let qi=function(t){return t[t.RECOVER=0]="RECOVER",t[t.WARNING=1]="WARNING",t[t.ERROR=2]="ERROR",t}({}),Qi=function(t){return t.CONFIG_DISTRIBUTE="config-distribute-error",t}({});const $i={sid:"",lts:0,success:null,cname:null,uid:null,peer:null,cid:null,elapse:null,extend:null,vid:0};let $=function(t){return t.PUBLISH="publish",t.SUBSCRIBE="subscribe",t.WS_COMPRESSOR_INIT="ws_compressor_init",t.SESSION_INIT="session_init",t.JOIN_CHOOSE_SERVER="join_choose_server",t.RTE_DETAIL="rte_detail_stats",t.REQ_USER_ACCOUNT="req_user_account",t.JOIN_GATEWAY="join_gateway",t.REJOIN_GATEWAY="rejoin_gateway",t.STREAM_SWITCH="stream_switch",t.REQUEST_PROXY_WORKER_MANAGER="request_proxy_worker_manager",t.REQUEST_PROXY_APPCENTER="request_proxy_appcenter",t.FIRST_VIDEO_RECEIVED="first_video_received",t.FIRST_AUDIO_RECEIVED="first_audio_received",t.FIRST_VIDEO_DECODE="first_video_decode",t.FIRST_AUDIO_DECODE="first_audio_decode",t.XLA_PEER_FIRST_VIDEO_FRAME="xla_peer_first_video_frame",t.ON_ADD_AUDIO_STREAM="on_add_audio_stream",t.ON_ADD_VIDEO_STREAM="on_add_video_stream",t.ON_UPDATE_STREAM="on_update_stream",t.ON_REMOVE_STREAM="on_remove_stream",t.USER_ANALYTICS="req_user_analytics",t.PC_STATS="pc_stats",t.UPDATE_REMOTE_RTPCAPABILITIES="update_remote_rtpCapabilities",t.AB_TEST="ab_test",t.ALARM_STATUS_NOTIFY="alarm_status_notify",t}({}),j=function(t){return t.SESSION="io.agora.pb.Wrtc.Session",t.JOIN_CHOOSE_SERVER="io.agora.pb.Wrtc.JoinChooseServer",t.RTE_DETAIL="io.agora.pb.Wrtc.RteDetailStats",t.REQ_USER_ACCOUNT="io.agora.pb.Wrtc.ReqUserAccount",t.JOIN_GATEWAY="io.agora.pb.Wrtc.JoinGateway",t.RE_JOIN_GATEWAY="io.agora.pb.Wrtc.ReJoinGateway",t.PUBLISH="io.agora.pb.Wrtc.Publish",t.SUBSCRIBE="io.agora.pb.Wrtc.Subscribe",t.WS_COMPRESSOR_INIT="io.agora.pb.Wrtc.WsCompressorInit",t.STREAM_SWITCH="io.agora.pb.Wrtc.StreamSwitch",t.AUDIO_SENDING_STOPPED="io.agora.pb.Wrtc.AudioSendingStopped",t.VIDEO_SENDING_STOPPED="io.agora.pb.Wrtc.VideoSendingStopped",t.REQUEST_PROXY_APPCENTER="io.agora.pb.Wrtc.RequestProxyAppCenter",t.REQUEST_PROXY_WORKER_MANAGER="io.agora.pb.Wrtc.RequestProxyWorkerManager",t.API_INVOKE="io.agora.pb.Wrtc.ApiInvoke",t.FIRST_VIDEO_RECEIVED="io.agora.pb.Wrtc.FirstVideoReceived",t.FIRST_AUDIO_RECEIVED="io.agora.pb.Wrtc.FirstAudioReceived",t.FIRST_VIDEO_DECODE="io.agora.pb.Wrtc.FirstVideoDecode",t.FIRST_AUDIO_DECODE="io.agora.pb.Wrtc.FirstAudioDecode",t.XLA_PEER_FIRST_VIDEO_FRAME="io.agora.pb.Wrtc.XLAPeerFirstVideoFrame",t.ON_ADD_AUDIO_STREAM="io.agora.pb.Wrtc.OnAddAudioStream",t.ON_ADD_VIDEO_STREAM="io.agora.pb.Wrtc.OnAddVideoStream",t.ON_UPDATE_STREAM="io.agora.pb.Wrtc.OnUpdateStream",t.ON_REMOVE_STREAM="io.agora.pb.Wrtc.OnRemoveStream",t.JOIN_CHANNEL_TIMEOUT="io.agora.pb.Wrtc.JoinChannelTimeout",t.PEER_PUBLISH_STATUS="io.agora.pb.Wrtc.PeerPublishStatus",t.WORKER_EVENT="io.agora.pb.Wrtc.WorkerEvent",t.AP_WORKER_EVENT="io.agora.pb.Wrtc.APWorkerEvent",t.JOIN_WEB_PROXY_AP="io.agora.pb.Wrtc.JoinWebProxyAP",t.WEBSOCKET_QUIT="io.agora.pb.Wrtc.WebSocketQuit",t.USER_ANALYTICS="io.agora.pb.Wrtc.UserAnalytics",t.AUTOPLAY_FAILED="io.agora.pb.Wrtc.AutoplayFailed",t.PC_STATS="io.agora.pb.Wrtc.PCStats",t.UPDATE_REMOTE_RTPCAPABILITIES="io.agora.pb.Wrtc.UpdateRemoteRTPCapabilities",t.AB_TEST="io.agora.pb.Wrtc.ABTest",t.ALARM_STATUS_NOTIFY="io.agora.pb.Wrtc.AlarmStatusNotify",t}({}),wo=function(t){return t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",t}({}),Zi=function(t){return t[t.SESSION=26]="SESSION",t[t.JOIN_CHOOSE_SERVER=27]="JOIN_CHOOSE_SERVER",t[t.REQ_USER_ACCOUNT=196]="REQ_USER_ACCOUNT",t[t.JOIN_GATEWAY=28]="JOIN_GATEWAY",t[t.PUBLISH=30]="PUBLISH",t[t.SUBSCRIBE=29]="SUBSCRIBE",t[t.WS_COMPRESSOR_INIT=9430]="WS_COMPRESSOR_INIT",t[t.STREAM_SWITCH=32]="STREAM_SWITCH",t[t.AUDIO_SENDING_STOPPED=33]="AUDIO_SENDING_STOPPED",t[t.VIDEO_SENDING_STOPPED=34]="VIDEO_SENDING_STOPPED",t[t.REQUEST_PROXY_APPCENTER=35]="REQUEST_PROXY_APPCENTER",t[t.REQUEST_PROXY_WORKER_MANAGER=36]="REQUEST_PROXY_WORKER_MANAGER",t[t.API_INVOKE=41]="API_INVOKE",t[t.FIRST_VIDEO_RECEIVED=348]="FIRST_VIDEO_RECEIVED",t[t.FIRST_AUDIO_RECEIVED=349]="FIRST_AUDIO_RECEIVED",t[t.FIRST_VIDEO_DECODE=350]="FIRST_VIDEO_DECODE",t[t.FIRST_AUDIO_DECODE=351]="FIRST_AUDIO_DECODE",t[t.ON_ADD_AUDIO_STREAM=352]="ON_ADD_AUDIO_STREAM",t[t.ON_ADD_VIDEO_STREAM=353]="ON_ADD_VIDEO_STREAM",t[t.ON_UPDATE_STREAM=356]="ON_UPDATE_STREAM",t[t.ON_REMOVE_STREAM=355]="ON_REMOVE_STREAM",t[t.JOIN_CHANNEL_TIMEOUT=407]="JOIN_CHANNEL_TIMEOUT",t[t.PEER_PUBLISH_STATUS=408]="PEER_PUBLISH_STATUS",t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",t[t.JOIN_WEB_PROXY_AP=700]="JOIN_WEB_PROXY_AP",t[t.WEBSOCKET_QUIT=671]="WEBSOCKET_QUIT",t[t.USER_ANALYTICS=1e4]="USER_ANALYTICS",t[t.AUTOPLAY_FAILED=9178]="AUTOPLAY_FAILED",t}({});const pt="[config-restore]",Ne="websdk_ng_",Ae=Ne+"blocked_config_hashes",rr=Ne+"api_failure_records",Tn=Ne+"global_parameter",Rn=Ne+"config_restore_state";function Ye(t){return t==null||typeof t!="object"?JSON.stringify(t):Array.isArray(t)?"["+t.map(e=>Ye(e)).join(",")+"]":"{"+Object.keys(t).sort().map(e=>JSON.stringify(e)+":"+Ye(t[e])).join(",")+"}"}function to(t){let e=2166136261;for(let r=0;r>>0).toString(36)}function fn(t){return to(Ye(t))}function Oe(){try{const t=window.localStorage.getItem(Rn);if(t)return JSON.parse(t)}catch{}return{currentConfigHash:"",configVerified:!1}}function Fr(t){try{window.localStorage.setItem(Rn,JSON.stringify(t))}catch{}}function nr(){try{const t=window.localStorage.getItem(rr);return t?JSON.parse(t):[]}catch(t){return z.debug("[error] ".concat(pt," error getting API failure records:"),t),[]}}function An(){return nr().reduce((t,e)=>t+e.count,0)}function Xe(){try{window.localStorage.removeItem(rr)}catch(t){z.debug("[error] ".concat(pt," error clearing API failure records:"),t)}}function eo(){try{const t=An(),e=P("MAX_CONFIG_RETRY");if(t({api:i.apiName,error:i.errorCode||i.errorMessage,count:i.count,lastTime:i.lastTimestamp}))}}),Xe()}catch(t){z.debug("[error] ".concat(pt," error restoring config:"),t)}}function Br(t,e){try{if(!P("ENABLE_CONFIG_RESTORE"))return;if(e&&e.name==="AgoraRTCException"){const d=P("CONFIG_ERROR_MONITOR");if(!Array.isArray(d)||!d.includes(e.code))return}const r=window.localStorage.getItem(Tn);if(!r||r.length<20||Oe().configVerified)return;const i=P("CONFIG_RESTORE_ERROR_API");if(!Array.isArray(i)||!i.includes(t))return;let o,c;e&&(e.code&&(o=e.code),c=e.message?e.message:typeof e=="string"?e:e.toString()),function(d,p,I){try{const _=nr(),R="".concat(d,":").concat(p||""),T=_.find(m=>"".concat(m.apiName,":").concat(m.errorCode||"")===R),A=Oe().currentConfigHash;if(T)T.count++,T.lastTimestamp=Date.now(),I&&(T.errorMessage=I),A&&(T.configHash=A);else{const m=Date.now();_.push({apiName:d,errorCode:p,errorMessage:I,count:1,firstTimestamp:m,lastTimestamp:m,configHash:A||void 0})}const O=_.length>20?_.slice(-20):_;window.localStorage.setItem(rr,JSON.stringify(O))}catch(_){z.debug("[error] ".concat(pt," error saving API failure record:"),_)}}(t,o,c);const l=An(),E=P("MAX_CONFIG_RETRY");z.debug("".concat(pt," API failure count: ").concat(l,"/").concat(E,", API: ").concat(t,", Error: ").concat(o||c)),l>=E&&eo()}catch{}}function Do(t){try{const e=fn(t),r=Oe();if(r.currentConfigHash&&r.currentConfigHash===e)return Fr({currentConfigHash:e,configVerified:!0}),Xe(),ze(),void z.debug("".concat(pt," config verified as safe, skip further checks"));Fr({currentConfigHash:e,configVerified:!1}),Xe(),ze()}catch(e){z.debug("[error] ".concat(pt," error on config applied:"),e)}}function Po(t){try{if(!P("ENABLE_CONFIG_RESTORE"))return!1;const e=fn(t),r=window.localStorage.getItem(Ae);if(!r)return!1;const n=JSON.parse(r),i=P("BLOCKED_CONFIG_MAX_TIME");return Date.now()-n.timestamp>i?(ze(),!1):n.configHashes.includes(e)}catch(e){return z.debug("[error] ".concat(pt," error checking blocked config:"),e),!1}}function ze(){try{window.localStorage.removeItem(Ae)}catch(t){z.debug("[error] ".concat(pt," error resetting blocked config:"),t)}}class ro{constructor(){V(this,"baseInfoMap",new Map),V(this,"proxyServer",void 0),V(this,"eventUploadTimer",void 0),V(this,"setSessionIdTimer",void 0),V(this,"url",void 0),V(this,"sids",new Set),V(this,"backupUrl",void 0),V(this,"_appId",void 0),V(this,"_aid",0),V(this,"keyEventUploadPendingItems",[]),V(this,"normalEventUploadPendingItems",[]),V(this,"apiInvokeUploadPendingItems",[]),V(this,"apiInvokeCount",0),V(this,"apiInvokeLoggedCount",0),V(this,"ltsList",[]),V(this,"lastSendNormalEventTime",Date.now()),V(this,"customReportCounterTimer",void 0),V(this,"customReportCount",0),V(this,"extApiInvoke",async e=>{for(const r of e){const n=b(b({},r),{},{sid:null,invokeId:++this.apiInvokeCount,tag:Re.TRACER});this.sendApiInvoke(n)}}),this.eventUploadTimer=window.setInterval(this.doSend.bind(this),P("EVENT_REPORT_SEND_INTERVAL")),this.setSessionIdTimer=window.setInterval(this.appendSessionId.bind(this),P("EVENT_REPORT_SEND_INTERVAL"))}getBaseInfoBySessionId(e){return this.baseInfoMap.get(e)}setAppId(e){this._appId=e,this._aid=parseInt(e.replace(/[a-fA-F0-9]{8}/g,r=>{let n=vr(r,2);return n[0]+n[1]}),16)||0}reportApiInvoke(e,r,n){r.timeout=r.timeout||6e4,r.reportResult=r.reportResult===void 0||r.reportResult;const i=Date.now();this.apiInvokeCount+=1;const o=this.apiInvokeCount,c=!!P("SHOW_REPORT_INVOKER_LOG"),l=!!P("SHOW_REPORT_USER_INVOKER_LOG"),E=c||l&&r.id;E&&(this.apiInvokeLoggedCount+=1);const d=this.apiInvokeLoggedCount;function p(T,A){if(E){let O="[apiInvoke-".concat(d,"]");if(r.id&&(O+="[".concat(r.id,"]")),r.name&&(O+="[".concat(r.name,"]"),r.name===Li.JOIN))return z.info("".concat(O," ").concat(T));z.info("".concat(O," ").concat(T),T==="start"?r.options:A||"")}}const I=()=>({tag:r.tag,invokeId:o,sid:e,name:r.name,apiInvokeTime:i,options:r.options,states:r.states||null});p("start");let _=!1;ye(r.timeout).then(()=>{_||(this.sendApiInvoke(b(b({},I()),{},{error:lt.API_INVOKE_TIMEOUT,success:!1})),p("timeout"),Br(r.name,new ot(lt.API_INVOKE_TIMEOUT)))});const R=new ot(lt.UNEXPECTED_ERROR,"".concat(r.name,": this api invoke is end"));return{onSuccess:T=>{const A=()=>{if(_)throw R;return _=!0,this.sendApiInvoke(b(b({},I()),{},{success:!0},r.reportResult&&{result:T})),p("onSuccess"),T};return n?Pr(A,r.name+"Success",n,()=>_=!0):A()},onError:T=>{const A=()=>{if(_)throw T;_=!0,this.sendApiInvoke(b(b({},I()),{},{success:!1,error:T})),Br(r.name,T),p("onFailure",T.toString())};return n?Pr(A,r.name+"Error",n,()=>_=!0):A()}}}_send(e,r,n){this.send({type:e,data:r},n)}_sendApiInvoke(e){return this.sendApiInvoke(e)}sessionInit(e,r){if(this.baseInfoMap.has(e))return;const n=Date.now(),i=this.createBaseInfo(e,n);i.cname=r.cname,i.rteUrl=r.rteUrl;const o=Object.assign({},{willUploadConsoleLog:P("UPLOAD_LOG"),maxTouchPoints:navigator.maxTouchPoints,areaVersion:pn?"global":"oversea",areas:P("AREAS")&&P("AREAS").join(",")},r.extend),c=r.stringUid,l=r.channelProfile,E=r.channelMode,d=r.isABTestSuccess,p=r.lsid,I=r.clientRole,_=Date.now(),R=b(b({},i),{},{eventType:$.SESSION_INIT,appid:r.appid,browser:navigator.userAgent,buildFormat:r.buildFormat,build:Ki,lts:_,elapse:_-n,extend:JSON.stringify(o),mode:r.mode,process:P("PROCESS_ID"),appType:P("APP_TYPE"),success:!0,version:dn,stringUid:c,channelProfile:l,channelMode:E,isABTestSuccess:d,lsid:p,clientType:Ni()?42:20,clientRole:I,serviceId:P("PROCESS_ID"),extensionID:P("PLUGIN_INFO").join(",")||"",rteUrl:r.rteUrl,rteSid:r.rteSid,installId:Ue()});this.send({type:j.SESSION,data:R},!0)}reportRteDetail(e){const r=this.baseInfoMap.get(e);if(!r)return;const n=r.info,i=Date.now(),o=b(b({},n),{},{eventType:$.RTE_DETAIL,lts:i,success:!0,elapse:i-r.startTime,vid:n.vid===void 0?0:Number(n.vid),ua:navigator.userAgent});this.send({type:j.RTE_DETAIL,data:o},!0)}joinChooseServer(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info;r.vid&&(i.vid=r.vid);const o=Date.now(),c=b(b({},i),{},{role:r.role,eventType:$.JOIN_CHOOSE_SERVER,lts:o,eventElapse:r.elapse||o-r.lts,chooseServerAddr:r.csAddr,errorCode:r.ec,elapse:o-n.startTime,success:r.succ,chooseServerAddrList:JSON.stringify(r.serverList),uid:r.uid?parseInt(r.uid):null,cid:r.cid?parseInt(r.cid):null,chooseServerIp:r.csIp||"",opid:r.opid,unilbsServerIds:r.unilbsServerIds,extend:r.extend||void 0,isHttp3:r.isHttp3,corssRegionTagReq:r.corssRegionTagReq||void 0,corssRegionTagRes:r.corssRegionTagRes||void 0,ua:navigator.userAgent,resourceTimingInfo:r.resourceTimingInfo||void 0});this.send({type:j.JOIN_CHOOSE_SERVER,data:c},!0)}reqUserAccount(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.REQ_USER_ACCOUNT,lts:o,success:r.success,serverAddress:r.serverAddr,stringUid:r.stringUid,uid:r.uid,errorCode:r.errorCode,elapse:r.elapse||o-n.startTime,eventElapse:o-r.lts,extend:JSON.stringify(r.extend)});this.send({type:j.REQ_USER_ACCOUNT,data:c},!0)}joinGateway(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info;r.vid&&(i.vid=r.vid),i.uid=r.uid,i.cid=r.cid;const o=Date.now(),c=r.firstSuccess,l=r.addr,E=r.isProxy,d=o-n.startTime,p=b(b({},i),{},{eventType:$.JOIN_GATEWAY,lts:o,gatewayAddr:r.addr,success:r.succ,errorCode:r.ec,errorMsg:r.errorMsg||"",elapse:d,eventElapse:o-r.lts,firstSuccess:c,signalChannel:r.signalChannel,preload:r.preload?1:0,installId:Ue(),isABTestSuccess:r.isABTestSuccess?1:0,gatewayIp:null,gatewayPort:null,isProxy:E?1:0}),I=p.success?1:0;if(r.succ&&(n.lastJoinSuccessTime=o),l)if(p.signalChannel==="1"){const _=je(/(\d+\.\d+\.\d+\.\d+):(\d+)/,{ip:1,port:2}),R=l.match(_);p.gatewayIp=R&&R.groups?R.groups.ip:"",p.gatewayPort=R&&R.groups?R.groups.port:""}else if(E){const _=l.match(/h=(\d{1,3}-){3}\d{1,3}/g),R=l.match(/p=[0-9]{1,6}/g);p.gatewayIp=_&&_.length?_[0].split("=")[1].replace(/-/g,"."):"",p.gatewayPort=R&&R.length?R[0].split("=")[1]:""}else{const _=l.match(/wss:\/\/(\d{1,3}-){3}\d{1,3}/g),R=l.match(/(:|p=)[0-9]{1,6}/g);p.gatewayIp=_&&_.length?_[0].split("//")[1].replace(/-/g,"."):"",p.gatewayPort=R&&R.length?R[0].split(/:|p=/g)[1]:""}if(c)this.send({type:j.JOIN_GATEWAY,data:p},!0);else{const _={isSuccess:I,port:p.gatewayPort};delete p.success,delete p.eventType,delete p.firstSuccess,delete p.gatewayPort,p.vid=Number(p.vid);const R=Object.assign({},p,_,{eventType:$.REJOIN_GATEWAY});this.send({type:j.RE_JOIN_GATEWAY,data:R},!0)}}joinChannelTimeout(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=Date.now(),o=b(b({},n.info),{},{lts:i,timeout:r,elapse:i-n.startTime});this.send({type:j.JOIN_CHANNEL_TIMEOUT,data:o},!0)}publish(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.PUBLISH,lts:o,eventElapse:r.eventElapse,elapse:o-n.startTime,success:r.succ,errorCode:r.ec,videoName:r.videoName,audioName:r.audioName,screenName:r.screenName,screenshare:r.screenshare,audio:r.audio,video:r.video,p2pid:r.p2pid,publishRequestid:r.publishRequestid});this.send({type:j.PUBLISH,data:c},!0)}subscribe(e,r,n){const i=this.baseInfoMap.get(e);if(!i)return;const o=i.info,c=Date.now(),l=b(b({},o),{},{eventType:$.SUBSCRIBE,lts:c,eventElapse:r.eventElapse,elapse:c-i.startTime,success:r.succ,errorCode:r.ec,video:r.video,audio:r.audio,subscribeRequestid:r.subscribeRequestid,p2pid:r.p2pid,preSsrc:r.preSsrc?1:0},n&&{extend:JSON.stringify({isMassSubscribe:!0})});typeof r.peerid=="string"?l.peerSuid=r.peerid:l.peer=r.peerid,this.send({type:j.SUBSCRIBE,data:l},!0)}wsCompressorInit(e){const r=[...this.baseInfoMap.keys()],n=r.length?r[0]:"UnableToGetSid",i=this.baseInfoMap.get(n);if(!i)return;const o=i.info,c=Date.now(),l=b(b({},o),{},{eventType:$.WS_COMPRESSOR_INIT,lts:c,eventElapse:e.eventElapse,elapse:c-i.startTime,status:e.status?1:2});this.send({type:j.WS_COMPRESSOR_INIT,data:l},!0)}firstXLAPeerFirstVideoFrame(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=r.peerPubStatusMs-(n.lastJoinSuccessTime||o),l=b(b({},i),{},{elapse:o-n.startTime,eventType:$.XLA_PEER_FIRST_VIDEO_FRAME,lts:o,peer:r.peer,width:r.width,height:r.height,ssrc:r.ssrc,p2pid:r.p2pid,peerPublishDuration:r.peerPublishDuration,joinChannelSuccessElapse:c,peerPubStatusMs:r.peerPubStatusMs-r.joinChannelStart,availablePublish:r.peerPublishDuration>c?1:0,preloadStart:Math.max(r.preloadStart-r.joinChannelStart,0),preloadEnd:Math.max(r.preloadEnd-r.joinChannelStart,0),encrypt:Math.max(r.apStart-r.joinChannelStart,0),ap:Math.max(r.apEnd-r.joinChannelStart,0),sua:Math.max(r.suaEnd-r.joinChannelStart,0),beforeConnect:Math.max(r.beforeConnect-r.joinChannelStart,0),peerRecevier:Math.max(r.peerReceiver-r.joinChannelStart,0),ice:Math.max(r.ice-r.joinChannelStart,0),pc:Math.max(r.pc-r.joinChannelStart,0),signalConnected:Math.max(r.signalConnected-r.joinChannelStart,0),joinReq:Math.max(r.joinReq-r.joinChannelStart,0),joinRes:Math.max(r.joinRes-r.joinChannelStart,0),userJoinNotify:Math.max(r.userJoinNotify-r.joinChannelStart,0),videoSsrcNotify:Math.max(r.videoAddNotify-r.joinChannelStart,0),subscribeDelayMs:Math.max(r.subscribeStart-r.videoAddNotify,0),subscribeStart:Math.max(r.subscribeStart-r.joinChannelStart,0),subscribeEnd:Math.max(r.subscribeEnd-r.joinChannelStart,0),firstReceived:Math.max(r.firstReceived-r.joinChannelStart,0),firstDecoded:Math.max(r.firstDecoded-r.joinChannelStart,0),firstPreRender:Math.max(r.firstPreRender-r.joinChannelStart,0),firstRender:Math.max(r.firstRender-r.joinChannelStart,0),playDelayMs:Math.max(r.playStart-r.subscribeEnd,0),playStart:Math.max(r.playStart-r.joinChannelStart,0),playEnd:Math.max(r.playEnd-r.joinChannelStart,0),isPreSub:r.isPreSub?1:0,isPrePc:r.isPrePc?1:0,isPreInstantVideo:r.isPreInstantVideo?1:0,firstReceivedEncodedFrame:r.firstReceivedEncodedFrame?Math.max(r.firstReceivedEncodedFrame-r.joinChannelStart,0):void 0,frameType:r.frameType||"",rtpTimestamp:r.rtpTimestamp||0,framePayloadType:r.framePayloadType||0,frameDataLength:r.frameDataLength||0,mimeType:r.mimeType||"",sdpEndPoint:r.sdpEndPoint?1:0});this.send({type:j.XLA_PEER_FIRST_VIDEO_FRAME,data:l},!0)}firstRemoteVideoDecode(e,r,n,i){const o=this.baseInfoMap.get(e);if(!o)return;const c=o.info,l=Date.now(),E=b(b(b({},c),i),{},{elapse:l-o.startTime,eventType:r,lts:l,firstDecodeFrame:Math.max((i.firstFrame||l)-o.startTime,0),apEnd:Math.max(i.apEnd-o.startTime,0),apStart:Math.max(i.apStart-o.startTime,0),joinGwEnd:Math.max(i.joinGwEnd-o.startTime,0),joinGwStart:Math.max(i.joinGwStart-o.startTime,0),pcEnd:Math.max(i.pcEnd-o.startTime,0),pcStart:Math.max(i.pcStart-o.startTime,0),subscriberEnd:Math.max(i.subscriberEnd-o.startTime,0),subscriberStart:Math.max(i.subscriberStart-o.startTime,0),videoAddNotify:Math.max(i.videoAddNotify-o.startTime,0)});this.send({type:n,data:E},!0)}firstRemoteFrame(e,r,n,i){const o=this.baseInfoMap.get(e);if(!o)return;const c=o.info,l=Date.now(),E=b(b(b({},c),i),{},{elapse:l-o.startTime,eventType:r,lts:l});this.send({type:n,data:E},!0)}abTest(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:i.vid===void 0?0:Number(i.vid),elapse:o-n.startTime,eventType:$.AB_TEST,lts:o});this.send({type:j.AB_TEST,data:c},!0)}pcStats(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:i.vid===void 0?0:Number(i.vid),elapse:o-n.startTime,eventType:$.PC_STATS,lts:o,preallocation:r.preallocation?1:0});this.send({type:j.PC_STATS,data:c},!0)}updateRemoteRTPCapabilities(e,r){if(e){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:i.vid===void 0?0:Number(i.vid),eventType:$.UPDATE_REMOTE_RTPCAPABILITIES,lts:o});this.send({type:j.UPDATE_REMOTE_RTPCAPABILITIES,data:c},!0)}}onGatewayStream(e,r,n,i){const o=this.baseInfoMap.get(e);if(!o)return;const c=o.info,l=Date.now(),E=b(b(b({},c),i),{},{eventType:r,lts:l});this.send({type:n,data:E},!0)}streamSwitch(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.STREAM_SWITCH,lts:o,isDual:r.isdual,elapse:o-n.startTime,success:r.succ});this.send({type:j.STREAM_SWITCH,data:c},!0)}requestProxyAppCenter(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.REQUEST_PROXY_APPCENTER,lts:o,eventElapse:o-r.lts,elapse:o-n.startTime,APAddr:r.APAddr,workerManagerList:r.workerManagerList,response:r.response,errorCode:r.ec,success:r.succ});this.send({type:j.REQUEST_PROXY_APPCENTER,data:c},!0)}requestProxyWorkerManager(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.REQUEST_PROXY_WORKER_MANAGER,lts:o,eventElapse:o-r.lts,elapse:o-n.startTime,workerManagerAddr:r.workerManagerAddr,response:r.response,errorCode:r.ec,success:r.succ});this.send({type:j.REQUEST_PROXY_WORKER_MANAGER,data:c},!0)}setProxyServer(e){this.proxyServer=e,e?z.debug("reportProxyServerurl: ".concat(e)):z.debug("disable reportProxyServerurl: ".concat(e))}peerPublishStatus(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{subscribeElapse:r.subscribeElapse,peer:r.peer,peerPublishDuration:Math.max(r.audioPublishDuration,r.videoPublishDuration),audiotag:r.audioPublishDuration>0?1:-1,videotag:r.videoPublishDuration>0?1:-1,lts:o,elapse:o-n.startTime,joinChannelSuccessElapse:o-(n.lastJoinSuccessTime||o),peerPublishDurationVideo:r.videoPublishDuration,peerPublishDurationAudio:r.audioPublishDuration});this.send({type:j.PEER_PUBLISH_STATUS,data:c},!0)}workerEvent(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o,productType:"WebRTC"});Mi(c,"payload",1300).forEach(l=>this.send({type:j.WORKER_EVENT,data:l},!0))}apworkerEvent(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o});this.send({type:j.AP_WORKER_EVENT,data:c},!0)}joinWebProxyAP(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o,extend:r.extend||void 0});this.send({type:j.JOIN_WEB_PROXY_AP,data:c},!0)}WebSocketQuit(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o});this.send({type:j.WEBSOCKET_QUIT,data:c},!0)}async sendCustomReportMessage(e,r){if(this.customReportCount+=r.length,this.customReportCount>P("CUSTOM_REPORT_LIMIT"))throw new ot(lt.CUSTOM_REPORT_FREQUENCY_TOO_HIGH);this.customReportCounterTimer||(this.customReportCounterTimer=window.setInterval(()=>{this.customReportCount=0},5e3));const n=Date.now(),i=r.map(o=>({type:j.USER_ANALYTICS,data:b(b({sid:e},o),{},{lts:n})}));try{P("NEW_REPORT_SERVER")?await this.postDataToStatsCollector2(i):await this.postDataToStatsCollector(i)}catch(o){throw z.error("send custom report message failed",o.toString()),new ot(lt.CUSTOM_REPORT_SEND_FAILED,o.message)}}reportAlarm(e,r){const n=e?this.baseInfoMap.get(e):void 0,i=n==null?void 0:n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:(i==null?void 0:i.vid)===void 0?0:Number(i.vid),elapse:n?o-n.startTime:0,eventType:$.ALARM_STATUS_NOTIFY,lts:o,installId:Ue(),processId:P("PROCESS_ID")});this.send({type:j.ALARM_STATUS_NOTIFY,data:c},!0)}sendApiInvoke(e){const r=P("NOT_REPORT_EVENT");if(e.tag&&r.includes&&r.includes(e.tag))return!1;if(e.sid===null)return this.apiInvokeUploadPendingItems.push(e),!1;const n=this.baseInfoMap.get(e.sid);if(!n)return this.apiInvokeUploadPendingItems.push(e),!1;const i=n.info,o=i.cname,c=i.uid,l=i.cid;let E;if(e.lts=e.lts||Date.now(),e.error)if(e.error instanceof ot){const p=e.error,I=p.code,_=p.message;E=I||_||e.error.toString()}else E=e.error.toString();const d={invokeId:e.invokeId,sid:e.sid,cname:o,cid:l,uid:c,lts:e.lts,success:e.success,elapse:e.lts-n.startTime,execElapse:e.lts-e.apiInvokeTime,apiName:e.name,options:e.options?JSON.stringify(e.options):void 0,execStates:e.states?JSON.stringify(e.states):void 0,execResult:e.result?JSON.stringify(e.result):void 0,errorCode:e.error?E:void 0,errorMsg:e.error?JSON.stringify(e.error):void 0};return this.send({type:j.API_INVOKE,data:d},!1),!0}addSid(e){this.sids.add(e)}removeSid(e){this.sids.delete(e)}appendSessionId(){const e=this.apiInvokeUploadPendingItems;if(e.length===0)return;const r=Array.from(this.sids).find(n=>n!==null);r&&e.forEach(n=>{n&&(n.sid=r,this.sendApiInvoke(Object.assign({},n)))}),e.length=0}send(e,r){if(r)return this.keyEventUploadPendingItems.push(e),void this.sendItems(this.keyEventUploadPendingItems,!0);this.normalEventUploadPendingItems.push(e),this.normalEventUploadPendingItems.length>P("NORMAL_EVENT_QUEUE_CAPACITY")&&this.normalEventUploadPendingItems.splice(0,1),this.normalEventUploadPendingItems.length>=10&&this.sendItems(this.normalEventUploadPendingItems,!1)}doSend(){this.keyEventUploadPendingItems.length>0&&this.sendItems(this.keyEventUploadPendingItems,!0),this.normalEventUploadPendingItems.length>0&&Date.now()-this.lastSendNormalEventTime>=5e3&&this.sendItems(this.normalEventUploadPendingItems,!1)}sendItems(e,r){const n=[],i=[];for(;e.length;){const o=e.shift();n.length<20?n.push(o):i.push(o)}e.push(...i);for(const o of[...n])this.ltsList.indexOf(o.data.lts)!==-1?(o.data.lts=this.ltsList[this.ltsList.length-1]+1,this.ltsList.push(o.data.lts)):(this.ltsList.push(o.data.lts),this.ltsList.sort((c,l)=>c-l));return r||(this.lastSendNormalEventTime=Date.now()),P("ENABLE_EVENT_REPORT")&&n.length&&(P("NEW_REPORT_SERVER")?this.postDataToStatsCollector2(n):this.postDataToStatsCollector(n)).catch((o=>c=>{P("EVENT_REPORT_RETRY")&&(r?this.keyEventUploadPendingItems=this.keyEventUploadPendingItems.concat(o):(this.normalEventUploadPendingItems=this.normalEventUploadPendingItems.concat(o),this.normalEventUploadPendingItems.length>P("NORMAL_EVENT_QUEUE_CAPACITY")&&(this.normalEventUploadPendingItems.splice(0,this.normalEventUploadPendingItems.length-P("NORMAL_EVENT_QUEUE_CAPACITY")),z.warning("report: drop normal events"))))})(n)),e}async postDataToStatsCollector2(e){Zt.networkState===Dt.OFFLINE&&await Promise.race([Zt.onlineWaiter,ye(2*Ge.maxRetryTimeout)]);const r=o=>{let c=new Uint8Array;return o.forEach(l=>{const E=bi(JSON.stringify(l.data)),d=new ArrayBuffer(5),p=(_=>{let R=0;return Object.entries(j).forEach(T=>{let A=vr(T,2),O=A[0];A[1]===_.type&&(R=Zi[O])}),R})(l),I=new DataView(d);I.setUint16(0,E.byteLength,!0),I.setUint8(2,255&p),I.setUint8(3,p>>>8&255),I.setUint8(4,p>>>16&255),c=Lr(c,new Uint8Array(d)),c=Lr(c,E)}),c},n="event";let i=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("NEW_REPORT_SERVER_DOMAINS")[0],"&p=443&d=").concat(n):"https://".concat(P("NEW_REPORT_SERVER_DOMAINS")[0],"/").concat(n);for(let o=0;o<2;o+=1){o===1&&(i=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("NEW_REPORT_SERVER_DOMAINS")[1],"&p=443&d=").concat(n):"https://".concat(P("NEW_REPORT_SERVER_DOMAINS")[1],"/").concat(n));try{await He(i,{timeout:1e4,data:r(e),headers:b(b({biz:"webrtc",sendts:Math.round(Date.now()/1e3),debug:"false"},this._appId&&{appid:this._appId}),{},{"Content-Type":"application/octet-stream"})},!0)}catch(c){if(o===1)throw c;continue}return}}async postDataToStatsCollector(e){let r=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const n=(E=>{const d=E&&E.data.sid&&this.baseInfoMap.get(E.data.sid);return d&&d.info.vid&&+d.info.vid||0})(e[0]),i=n?void 0:this._aid,o={msgType:"EventMessages",sentTs:Math.round(Date.now()/1e3),payloads:e.map(E=>JSON.stringify(E)),vid:n,aid:i};Zt.networkState===Dt.OFFLINE&&await Promise.race([Zt.onlineWaiter,ye(2*Ge.maxRetryTimeout)]);const c=r?"/events/proto-raws":"/events/messages";let l=this.url||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("EVENT_REPORT_DOMAIN"),"&p=").concat(P("STATS_COLLECTOR_PORT"),"&d=").concat(c):"https://".concat(P("EVENT_REPORT_DOMAIN"),":").concat(P("STATS_COLLECTOR_PORT")).concat(c));for(let E=0;E<2;E+=1){E===1&&(l=this.backupUrl||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("EVENT_REPORT_BACKUP_DOMAIN"),"&p=").concat(P("STATS_COLLECTOR_PORT"),"&d=").concat(c):"https://".concat(P("EVENT_REPORT_BACKUP_DOMAIN"),":").concat(P("STATS_COLLECTOR_PORT")).concat(c)));try{r?await xi(l,{timeout:1e4,data:o}):await He(l,{timeout:1e4,data:o})}catch(d){if(E===1)throw d;continue}return}}createBaseInfo(e,r){const n=Object.assign({},$i);return n.sid=e,this.baseInfoMap.set(e,{info:n,startTime:r}),n}reportResourceTiming(e,r){const n=performance.getEntriesByName(e),i=n[n.length-1];i&&this.reportApiInvoke(r,{name:"Client.resourceTiming",options:i,tag:Re.TRACER}).onSuccess()}}function yo(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(e,r,n){const i=n.value;if(typeof i=="function"){const o=t.className||e.__className__||(e.constructor.name==="AgoraRTCClient"?"Client":e.constructor.name);n.value=function(){for(var c,l=arguments.length,E=new Array(l),d=0;d(I.onSuccess(t.reportResult&&R),R)).catch(R=>{throw I.onError(R),R}):(I.onSuccess(t.reportResult&&_),_)}catch(_){throw I.onError(_),_}}}return n}}const sr=new ro;function no(t,e){sr.reportAlarm(t,e)}hn.on("REPORT_LOG_UPLOAD",t=>{t.networkState=Zt.networkState,sr.reportApiInvoke(null,{name:"logUploadError",options:t,tag:Re.TRACER}).onSuccess("logUploadError")});class Mo extends ot{constructor(e){super(e,arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",arguments.length>2?arguments[2]:void 0),V(this,"name","AgoraRTCException")}print(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error";return super.print(e,z)}throw(){super.throw(z)}}export{wo as AgoraEventUploadId,Ji as AgoraLogger,Mo as AgoraRTCError,lt as AgoraRTCErrorCode,$ as AgoraRTCEvent,ro as AgoraRTCEventReport,j as AgoraRTCEventUploadType,$i as EVENT_BASE_TEMPLATE,Zi as EventNameToID,qi as EventReportAlarmStatus,Qi as EventReportAlarmType,bo as LOG_TYPE,Co as LOG_UPLOAD_STATE,nr as _getApiFailureRecords,no as _reportAlarmFn,yo as apiInvoke,fn as hashConfig,to as hashString,Po as isConfigBlocked,Lo as isEventCustomReportParams,hn as logReportBus,z as logger,Do as onConfigApplied,Br as recordApiFailure,sr as report,Ye as stableStringify}; diff --git a/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js.gz b/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..8c1a513d798a4a0a2d7ab09d5219e9119c13b4dc GIT binary patch literal 60721 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%0DQ?Be%aRmj!l`SKTkU*hkfOVKu9J>vhg1QfNSt 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 in n?Fle(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var T9=(n,e,o)=>Gle(n,typeof e!="symbol"?e+"":e,o);function _mergeNamespaces(n,e){for(var o=0;od[I]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const I of document.querySelectorAll('link[rel="modulepreload"]'))d(I);new MutationObserver(I=>{for(const f of I)if(f.type==="childList")for(const S of f.addedNodes)S.tagName==="LINK"&&S.rel==="modulepreload"&&d(S)}).observe(document,{childList:!0,subtree:!0});function o(I){const f={};return I.integrity&&(f.integrity=I.integrity),I.referrerPolicy&&(f.referrerPolicy=I.referrerPolicy),I.crossOrigin==="use-credentials"?f.credentials="include":I.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function d(I){if(I.ep)return;I.ep=!0;const f=o(I);fetch(I.href,f)}})();var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var jsxRuntime={exports:{}},reactJsxRuntime_production={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var REACT_ELEMENT_TYPE$2=Symbol.for("react.transitional.element"),REACT_FRAGMENT_TYPE$2=Symbol.for("react.fragment");function jsxProd(n,e,o){var d=null;if(o!==void 0&&(d=""+o),e.key!==void 0&&(d=""+e.key),"key"in e){o={};for(var I in e)I!=="key"&&(o[I]=e[I])}else o=e;return e=o.ref,{$$typeof:REACT_ELEMENT_TYPE$2,type:n,key:d,ref:e!==void 0?e:null,props:o}}reactJsxRuntime_production.Fragment=REACT_FRAGMENT_TYPE$2;reactJsxRuntime_production.jsx=jsxProd;reactJsxRuntime_production.jsxs=jsxProd;jsxRuntime.exports=reactJsxRuntime_production;var jsxRuntimeExports=jsxRuntime.exports,client={exports:{}},reactDomClient_production={},scheduler={exports:{}},scheduler_production={};/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */(function(n){function e(ct,ht){var vt=ct.length;ct.push(ht);e:for(;0>>1,jt=ct[ar];if(0>>1;arI(pi,vt))yiI(fi,pi)?(ct[ar]=fi,ct[yi]=vt,ar=yi):(ct[ar]=pi,ct[ai]=vt,ar=ai);else if(yiI(fi,vt))ct[ar]=fi,ct[yi]=vt,ar=yi;else break e}}return ht}function I(ct,ht){var vt=ct.sortIndex-ht.sortIndex;return vt!==0?vt:ct.id-ht.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var S=Date,v=S.now();n.unstable_now=function(){return S.now()-v}}var L=[],x=[],F=1,Y=null,j=3,W=!1,re=!1,ee=!1,he=!1,ue=typeof setTimeout=="function"?setTimeout:null,Ee=typeof clearTimeout=="function"?clearTimeout:null,_e=typeof setImmediate<"u"?setImmediate:null;function De(ct){for(var ht=o(x);ht!==null;){if(ht.callback===null)d(x);else if(ht.startTime<=ct)d(x),ht.sortIndex=ht.expirationTime,e(L,ht);else break;ht=o(x)}}function Fe(ct){if(ee=!1,De(ct),!re)if(o(L)!==null)re=!0,Ve||(Ve=!0,rt());else{var ht=o(x);ht!==null&&Yt(Fe,ht.startTime-ct)}}var Ve=!1,Ge=-1,He=5,At=-1;function Bt(){return he?!0:!(n.unstable_now()-Atct&&Bt());){var ar=Y.callback;if(typeof ar=="function"){Y.callback=null,j=Y.priorityLevel;var jt=ar(Y.expirationTime<=ct);if(ct=n.unstable_now(),typeof jt=="function"){Y.callback=jt,De(ct),ht=!0;break t}Y===o(L)&&d(L),De(ct)}else d(L);Y=o(L)}if(Y!==null)ht=!0;else{var vr=o(x);vr!==null&&Yt(Fe,vr.startTime-ct),ht=!1}}break e}finally{Y=null,j=vt,W=!1}ht=void 0}}finally{ht?rt():Ve=!1}}}var rt;if(typeof _e=="function")rt=function(){_e(Tt)};else if(typeof MessageChannel<"u"){var ye=new MessageChannel,lt=ye.port2;ye.port1.onmessage=Tt,rt=function(){lt.postMessage(null)}}else rt=function(){ue(Tt,0)};function Yt(ct,ht){Ge=ue(function(){ct(n.unstable_now())},ht)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(ct){ct.callback=null},n.unstable_forceFrameRate=function(ct){0>ct||125ar?(ct.sortIndex=vt,e(x,ct),o(L)===null&&ct===o(x)&&(ee?(Ee(Ge),Ge=-1):ee=!0,Yt(Fe,vt-ar))):(ct.sortIndex=jt,e(L,ct),re||W||(re=!0,Ve||(Ve=!0,rt()))),ct},n.unstable_shouldYield=Bt,n.unstable_wrapCallback=function(ct){var ht=j;return function(){var vt=j;j=ht;try{return ct.apply(this,arguments)}finally{j=vt}}}})(scheduler_production);scheduler.exports=scheduler_production;var schedulerExports=scheduler.exports,react={exports:{}},react_production={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var REACT_ELEMENT_TYPE$1=Symbol.for("react.transitional.element"),REACT_PORTAL_TYPE$2=Symbol.for("react.portal"),REACT_FRAGMENT_TYPE$1=Symbol.for("react.fragment"),REACT_STRICT_MODE_TYPE$1=Symbol.for("react.strict_mode"),REACT_PROFILER_TYPE$1=Symbol.for("react.profiler"),REACT_CONSUMER_TYPE$1=Symbol.for("react.consumer"),REACT_CONTEXT_TYPE$1=Symbol.for("react.context"),REACT_FORWARD_REF_TYPE$1=Symbol.for("react.forward_ref"),REACT_SUSPENSE_TYPE$1=Symbol.for("react.suspense"),REACT_MEMO_TYPE$1=Symbol.for("react.memo"),REACT_LAZY_TYPE$2=Symbol.for("react.lazy"),REACT_ACTIVITY_TYPE$1=Symbol.for("react.activity"),MAYBE_ITERATOR_SYMBOL$1=Symbol.iterator;function getIteratorFn$1(n){return n===null||typeof n!="object"?null:(n=MAYBE_ITERATOR_SYMBOL$1&&n[MAYBE_ITERATOR_SYMBOL$1]||n["@@iterator"],typeof n=="function"?n:null)}var ReactNoopUpdateQueue={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},assign$1=Object.assign,emptyObject={};function Component(n,e,o){this.props=n,this.context=e,this.refs=emptyObject,this.updater=o||ReactNoopUpdateQueue}Component.prototype.isReactComponent={};Component.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Component.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function ComponentDummy(){}ComponentDummy.prototype=Component.prototype;function PureComponent(n,e,o){this.props=n,this.context=e,this.refs=emptyObject,this.updater=o||ReactNoopUpdateQueue}var pureComponentPrototype=PureComponent.prototype=new ComponentDummy;pureComponentPrototype.constructor=PureComponent;assign$1(pureComponentPrototype,Component.prototype);pureComponentPrototype.isPureReactComponent=!0;var isArrayImpl$1=Array.isArray;function noop$4(){}var ReactSharedInternals$2={H:null,A:null,T:null,S:null},hasOwnProperty$1=Object.prototype.hasOwnProperty;function ReactElement(n,e,o){var d=o.ref;return{$$typeof:REACT_ELEMENT_TYPE$1,type:n,key:e,ref:d!==void 0?d:null,props:o}}function cloneAndReplaceKey(n,e){return ReactElement(n.type,e,n.props)}function isValidElement(n){return typeof n=="object"&&n!==null&&n.$$typeof===REACT_ELEMENT_TYPE$1}function escape$1(n){var e={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(o){return e[o]})}var userProvidedKeyEscapeRegex=/\/+/g;function getElementKey(n,e){return typeof n=="object"&&n!==null&&n.key!=null?escape$1(""+n.key):e.toString(36)}function resolveThenable(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(noop$4,noop$4):(n.status="pending",n.then(function(e){n.status==="pending"&&(n.status="fulfilled",n.value=e)},function(e){n.status==="pending"&&(n.status="rejected",n.reason=e)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function mapIntoArray(n,e,o,d,I){var f=typeof n;(f==="undefined"||f==="boolean")&&(n=null);var S=!1;if(n===null)S=!0;else switch(f){case"bigint":case"string":case"number":S=!0;break;case"object":switch(n.$$typeof){case REACT_ELEMENT_TYPE$1:case REACT_PORTAL_TYPE$2:S=!0;break;case REACT_LAZY_TYPE$2:return S=n._init,mapIntoArray(S(n._payload),e,o,d,I)}}if(S)return I=I(n),S=d===""?"."+getElementKey(n,0):d,isArrayImpl$1(I)?(o="",S!=null&&(o=S.replace(userProvidedKeyEscapeRegex,"$&/")+"/"),mapIntoArray(I,e,o,"",function(x){return x})):I!=null&&(isValidElement(I)&&(I=cloneAndReplaceKey(I,o+(I.key==null||n&&n.key===I.key?"":(""+I.key).replace(userProvidedKeyEscapeRegex,"$&/")+"/")+S)),e.push(I)),1;S=0;var v=d===""?".":d+":";if(isArrayImpl$1(n))for(var L=0;L"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE$1)}catch(n){console.error(n)}}checkDCE$1(),reactDom.exports=reactDom_production;var reactDomExports=reactDom.exports;/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Scheduler=schedulerExports,React=reactExports,ReactDOM=reactDomExports;function formatProdErrorMessage(n){var e="https://react.dev/errors/"+n;if(1index$1||(n.current=valueStack[index$1],valueStack[index$1]=null,index$1--)}function push(n,e){index$1++,valueStack[index$1]=n.current,n.current=e}var contextStackCursor=createCursor(null),contextFiberStackCursor=createCursor(null),rootInstanceStackCursor=createCursor(null),hostTransitionProviderCursor=createCursor(null);function pushHostContainer(n,e){switch(push(rootInstanceStackCursor,e),push(contextFiberStackCursor,n),push(contextStackCursor,null),e.nodeType){case 9:case 11:n=(n=e.documentElement)&&(n=n.namespaceURI)?getOwnHostContext(n):0;break;default:if(n=e.tagName,e=e.namespaceURI)e=getOwnHostContext(e),n=getChildHostContextProd(e,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}pop(contextStackCursor),push(contextStackCursor,n)}function popHostContainer(){pop(contextStackCursor),pop(contextFiberStackCursor),pop(rootInstanceStackCursor)}function pushHostContext(n){n.memoizedState!==null&&push(hostTransitionProviderCursor,n);var e=contextStackCursor.current,o=getChildHostContextProd(e,n.type);e!==o&&(push(contextFiberStackCursor,n),push(contextStackCursor,o))}function popHostContext(n){contextFiberStackCursor.current===n&&(pop(contextStackCursor),pop(contextFiberStackCursor)),hostTransitionProviderCursor.current===n&&(pop(hostTransitionProviderCursor),HostTransitionContext._currentValue=sharedNotPendingObject)}var prefix,suffix;function describeBuiltInComponentFrame(n){if(prefix===void 0)try{throw Error()}catch(o){var e=o.stack.trim().match(/\n( *(at )?)/);prefix=e&&e[1]||"",suffix=-1)":-1I||L[d]!==x[I]){var F=` +`+L[d].replace(" at new "," at ");return n.displayName&&F.includes("")&&(F=F.replace("",n.displayName)),F}while(1<=d&&0<=I);break}}}finally{reentry=!1,Error.prepareStackTrace=o}return(o=n?n.displayName||n.name:"")?describeBuiltInComponentFrame(o):""}function describeFiber(n,e){switch(n.tag){case 26:case 27:case 5:return describeBuiltInComponentFrame(n.type);case 16:return describeBuiltInComponentFrame("Lazy");case 13:return n.child!==e&&e!==null?describeBuiltInComponentFrame("Suspense Fallback"):describeBuiltInComponentFrame("Suspense");case 19:return describeBuiltInComponentFrame("SuspenseList");case 0:case 15:return describeNativeComponentFrame(n.type,!1);case 11:return describeNativeComponentFrame(n.type.render,!1);case 1:return describeNativeComponentFrame(n.type,!0);case 31:return describeBuiltInComponentFrame("Activity");default:return""}}function getStackByFiberInDevAndProd(n){try{var e="",o=null;do e+=describeFiber(n,o),o=n,n=n.return;while(n);return e}catch(d){return` +Error generating stack: `+d.message+` +`+d.stack}}var hasOwnProperty=Object.prototype.hasOwnProperty,scheduleCallback$3=Scheduler.unstable_scheduleCallback,cancelCallback$1=Scheduler.unstable_cancelCallback,shouldYield=Scheduler.unstable_shouldYield,requestPaint=Scheduler.unstable_requestPaint,now=Scheduler.unstable_now,getCurrentPriorityLevel=Scheduler.unstable_getCurrentPriorityLevel,ImmediatePriority=Scheduler.unstable_ImmediatePriority,UserBlockingPriority=Scheduler.unstable_UserBlockingPriority,NormalPriority$1=Scheduler.unstable_NormalPriority,LowPriority=Scheduler.unstable_LowPriority,IdlePriority=Scheduler.unstable_IdlePriority,log$1=Scheduler.log,unstable_setDisableYieldValue=Scheduler.unstable_setDisableYieldValue,rendererID=null,injectedHook=null;function setIsStrictModeForDevtools(n){if(typeof log$1=="function"&&unstable_setDisableYieldValue(n),injectedHook&&typeof injectedHook.setStrictMode=="function")try{injectedHook.setStrictMode(rendererID,n)}catch{}}var clz32=Math.clz32?Math.clz32:clz32Fallback,log=Math.log,LN2=Math.LN2;function clz32Fallback(n){return n>>>=0,n===0?32:31-(log(n)/LN2|0)|0}var nextTransitionUpdateLane=256,nextTransitionDeferredLane=262144,nextRetryLane=4194304;function getHighestPriorityLanes(n){var e=n&42;if(e!==0)return e;switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return n&261888;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function getNextLanes(n,e,o){var d=n.pendingLanes;if(d===0)return 0;var I=0,f=n.suspendedLanes,S=n.pingedLanes;n=n.warmLanes;var v=d&134217727;return v!==0?(d=v&~f,d!==0?I=getHighestPriorityLanes(d):(S&=v,S!==0?I=getHighestPriorityLanes(S):o||(o=v&~n,o!==0&&(I=getHighestPriorityLanes(o))))):(v=d&~f,v!==0?I=getHighestPriorityLanes(v):S!==0?I=getHighestPriorityLanes(S):o||(o=d&~n,o!==0&&(I=getHighestPriorityLanes(o)))),I===0?0:e!==0&&e!==I&&!(e&f)&&(f=I&-I,o=e&-e,f>=o||f===32&&(o&4194048)!==0)?e:I}function checkIfRootIsPrerendering(n,e){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&e)===0}function computeExpirationTime(n,e){switch(n){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function claimNextRetryLane(){var n=nextRetryLane;return nextRetryLane<<=1,!(nextRetryLane&62914560)&&(nextRetryLane=4194304),n}function createLaneMap(n){for(var e=[],o=0;31>o;o++)e.push(n);return e}function markRootUpdated$1(n,e){n.pendingLanes|=e,e!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function markRootFinished(n,e,o,d,I,f){var S=n.pendingLanes;n.pendingLanes=o,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=o,n.entangledLanes&=o,n.errorRecoveryDisabledLanes&=o,n.shellSuspendCounter=0;var v=n.entanglements,L=n.expirationTimes,x=n.hiddenUpdates;for(o=S&~o;0"u")return null;try{return n.activeElement||n.body}catch{return n.body}}var escapeSelectorAttributeValueInsideDoubleQuotesRegex=/[\n"\\]/g;function escapeSelectorAttributeValueInsideDoubleQuotes(n){return n.replace(escapeSelectorAttributeValueInsideDoubleQuotesRegex,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function updateInput(n,e,o,d,I,f,S,v){n.name="",S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?n.type=S:n.removeAttribute("type"),e!=null?S==="number"?(e===0&&n.value===""||n.value!=e)&&(n.value=""+getToStringValue(e)):n.value!==""+getToStringValue(e)&&(n.value=""+getToStringValue(e)):S!=="submit"&&S!=="reset"||n.removeAttribute("value"),e!=null?setDefaultValue(n,S,getToStringValue(e)):o!=null?setDefaultValue(n,S,getToStringValue(o)):d!=null&&n.removeAttribute("value"),I==null&&f!=null&&(n.defaultChecked=!!f),I!=null&&(n.checked=I&&typeof I!="function"&&typeof I!="symbol"),v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?n.name=""+getToStringValue(v):n.removeAttribute("name")}function initInput(n,e,o,d,I,f,S,v){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(n.type=f),e!=null||o!=null){if(!(f!=="submit"&&f!=="reset"||e!=null)){track(n);return}o=o!=null?""+getToStringValue(o):"",e=e!=null?""+getToStringValue(e):o,v||e===n.value||(n.value=e),n.defaultValue=e}d=d??I,d=typeof d!="function"&&typeof d!="symbol"&&!!d,n.checked=v?n.checked:!!d,n.defaultChecked=!!d,S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"&&(n.name=S),track(n)}function setDefaultValue(n,e,o){e==="number"&&getActiveElement(n.ownerDocument)===n||n.defaultValue===""+o||(n.defaultValue=""+o)}function updateOptions(n,e,o,d){if(n=n.options,e){e={};for(var I=0;I"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),passiveBrowserEventsSupported=!1;if(canUseDOM)try{var options$1={};Object.defineProperty(options$1,"passive",{get:function(){passiveBrowserEventsSupported=!0}}),window.addEventListener("test",options$1,options$1),window.removeEventListener("test",options$1,options$1)}catch{passiveBrowserEventsSupported=!1}var root=null,startText=null,fallbackText=null;function getData(){if(fallbackText)return fallbackText;var n,e=startText,o=e.length,d,I="value"in root?root.value:root.textContent,f=I.length;for(n=0;n=documentMode),SPACEBAR_CHAR=" ",hasSpaceKeypress=!1;function isFallbackCompositionEnd(n,e){switch(n){case"keyup":return END_KEYCODES.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function getDataFromCustomEvent(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var isComposing=!1;function getNativeBeforeInputChars(n,e){switch(n){case"compositionend":return getDataFromCustomEvent(e);case"keypress":return e.which!==32?null:(hasSpaceKeypress=!0,SPACEBAR_CHAR);case"textInput":return n=e.data,n===SPACEBAR_CHAR&&hasSpaceKeypress?null:n;default:return null}}function getFallbackBeforeInputChars(n,e){if(isComposing)return n==="compositionend"||!canUseCompositionEvent&&isFallbackCompositionEnd(n,e)?(n=getData(),fallbackText=startText=root=null,isComposing=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:o,offset:e-n};n=d}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=getLeafNode(o)}}function containsNode(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?containsNode(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function getActiveElementDeep(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var e=getActiveElement(n.document);e instanceof n.HTMLIFrameElement;){try{var o=typeof e.contentWindow.location.href=="string"}catch{o=!1}if(o)n=e.contentWindow;else break;e=getActiveElement(n.document)}return e}function hasSelectionCapabilities(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}var skipSelectionChangeEvent=canUseDOM&&"documentMode"in document&&11>=document.documentMode,activeElement=null,activeElementInst=null,lastSelection=null,mouseDown=!1;function constructSelectEvent(n,e,o){var d=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;mouseDown||activeElement==null||activeElement!==getActiveElement(d)||(d=activeElement,"selectionStart"in d&&hasSelectionCapabilities(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),lastSelection&&shallowEqual(lastSelection,d)||(lastSelection=d,d=accumulateTwoPhaseListeners(activeElementInst,"onSelect"),0>=S,I-=S,treeContextId=1<<32-clz32(e)+I|o<He?(At=Ge,Ge=null):At=Ge.sibling;var Bt=j(ue,Ge,_e[He],De);if(Bt===null){Ge===null&&(Ge=At);break}n&&Ge&&Bt.alternate===null&&e(ue,Ge),Ee=f(Bt,Ee,He),Ve===null?Fe=Bt:Ve.sibling=Bt,Ve=Bt,Ge=At}if(He===_e.length)return o(ue,Ge),isHydrating&&pushTreeFork(ue,He),Fe;if(Ge===null){for(;He<_e.length;He++)Ge=Y(ue,_e[He],De),Ge!==null&&(Ee=f(Ge,Ee,He),Ve===null?Fe=Ge:Ve.sibling=Ge,Ve=Ge);return isHydrating&&pushTreeFork(ue,He),Fe}for(Ge=d(Ge);He<_e.length;He++)At=W(Ge,ue,He,_e[He],De),At!==null&&(n&&At.alternate!==null&&Ge.delete(At.key===null?He:At.key),Ee=f(At,Ee,He),Ve===null?Fe=At:Ve.sibling=At,Ve=At);return n&&Ge.forEach(function(Tt){return e(ue,Tt)}),isHydrating&&pushTreeFork(ue,He),Fe}function ee(ue,Ee,_e,De){if(_e==null)throw Error(formatProdErrorMessage(151));for(var Fe=null,Ve=null,Ge=Ee,He=Ee=0,At=null,Bt=_e.next();Ge!==null&&!Bt.done;He++,Bt=_e.next()){Ge.index>He?(At=Ge,Ge=null):At=Ge.sibling;var Tt=j(ue,Ge,Bt.value,De);if(Tt===null){Ge===null&&(Ge=At);break}n&&Ge&&Tt.alternate===null&&e(ue,Ge),Ee=f(Tt,Ee,He),Ve===null?Fe=Tt:Ve.sibling=Tt,Ve=Tt,Ge=At}if(Bt.done)return o(ue,Ge),isHydrating&&pushTreeFork(ue,He),Fe;if(Ge===null){for(;!Bt.done;He++,Bt=_e.next())Bt=Y(ue,Bt.value,De),Bt!==null&&(Ee=f(Bt,Ee,He),Ve===null?Fe=Bt:Ve.sibling=Bt,Ve=Bt);return isHydrating&&pushTreeFork(ue,He),Fe}for(Ge=d(Ge);!Bt.done;He++,Bt=_e.next())Bt=W(Ge,ue,He,Bt.value,De),Bt!==null&&(n&&Bt.alternate!==null&&Ge.delete(Bt.key===null?He:Bt.key),Ee=f(Bt,Ee,He),Ve===null?Fe=Bt:Ve.sibling=Bt,Ve=Bt);return n&&Ge.forEach(function(rt){return e(ue,rt)}),isHydrating&&pushTreeFork(ue,He),Fe}function he(ue,Ee,_e,De){if(typeof _e=="object"&&_e!==null&&_e.type===REACT_FRAGMENT_TYPE&&_e.key===null&&(_e=_e.props.children),typeof _e=="object"&&_e!==null){switch(_e.$$typeof){case REACT_ELEMENT_TYPE:e:{for(var Fe=_e.key;Ee!==null;){if(Ee.key===Fe){if(Fe=_e.type,Fe===REACT_FRAGMENT_TYPE){if(Ee.tag===7){o(ue,Ee.sibling),De=I(Ee,_e.props.children),De.return=ue,ue=De;break e}}else if(Ee.elementType===Fe||typeof Fe=="object"&&Fe!==null&&Fe.$$typeof===REACT_LAZY_TYPE$1&&resolveLazy(Fe)===Ee.type){o(ue,Ee.sibling),De=I(Ee,_e.props),coerceRef(De,_e),De.return=ue,ue=De;break e}o(ue,Ee);break}else e(ue,Ee);Ee=Ee.sibling}_e.type===REACT_FRAGMENT_TYPE?(De=createFiberFromFragment(_e.props.children,ue.mode,De,_e.key),De.return=ue,ue=De):(De=createFiberFromTypeAndProps(_e.type,_e.key,_e.props,null,ue.mode,De),coerceRef(De,_e),De.return=ue,ue=De)}return S(ue);case REACT_PORTAL_TYPE:e:{for(Fe=_e.key;Ee!==null;){if(Ee.key===Fe)if(Ee.tag===4&&Ee.stateNode.containerInfo===_e.containerInfo&&Ee.stateNode.implementation===_e.implementation){o(ue,Ee.sibling),De=I(Ee,_e.children||[]),De.return=ue,ue=De;break e}else{o(ue,Ee);break}else e(ue,Ee);Ee=Ee.sibling}De=createFiberFromPortal(_e,ue.mode,De),De.return=ue,ue=De}return S(ue);case REACT_LAZY_TYPE$1:return _e=resolveLazy(_e),he(ue,Ee,_e,De)}if(isArrayImpl(_e))return re(ue,Ee,_e,De);if(getIteratorFn(_e)){if(Fe=getIteratorFn(_e),typeof Fe!="function")throw Error(formatProdErrorMessage(150));return _e=Fe.call(_e),ee(ue,Ee,_e,De)}if(typeof _e.then=="function")return he(ue,Ee,unwrapThenable(_e),De);if(_e.$$typeof===REACT_CONTEXT_TYPE)return he(ue,Ee,readContextDuringReconciliation(ue,_e),De);throwOnInvalidObjectTypeImpl(ue,_e)}return typeof _e=="string"&&_e!==""||typeof _e=="number"||typeof _e=="bigint"?(_e=""+_e,Ee!==null&&Ee.tag===6?(o(ue,Ee.sibling),De=I(Ee,_e),De.return=ue,ue=De):(o(ue,Ee),De=createFiberFromText(_e,ue.mode,De),De.return=ue,ue=De),S(ue)):o(ue,Ee)}return function(ue,Ee,_e,De){try{thenableIndexCounter$1=0;var Fe=he(ue,Ee,_e,De);return thenableState$1=null,Fe}catch(Ge){if(Ge===SuspenseException||Ge===SuspenseActionException)throw Ge;var Ve=createFiberImplClass(29,Ge,null,ue.mode);return Ve.lanes=De,Ve.return=ue,Ve}finally{}}}var reconcileChildFibers=createChildReconciler(!0),mountChildFibers=createChildReconciler(!1),hasForceUpdate=!1;function initializeUpdateQueue(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function cloneUpdateQueue(n,e){n=n.updateQueue,e.updateQueue===n&&(e.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function createUpdate(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function enqueueUpdate(n,e,o){var d=n.updateQueue;if(d===null)return null;if(d=d.shared,executionContext&2){var I=d.pending;return I===null?e.next=e:(e.next=I.next,I.next=e),d.pending=e,e=getRootForUpdatedFiber(n),markUpdateLaneFromFiberToRoot(n,null,o),e}return enqueueUpdate$1(n,d,e,o),getRootForUpdatedFiber(n)}function entangleTransitions(n,e,o){if(e=e.updateQueue,e!==null&&(e=e.shared,(o&4194048)!==0)){var d=e.lanes;d&=n.pendingLanes,o|=d,e.lanes=o,markRootEntangled(n,o)}}function enqueueCapturedUpdate(n,e){var o=n.updateQueue,d=n.alternate;if(d!==null&&(d=d.updateQueue,o===d)){var I=null,f=null;if(o=o.firstBaseUpdate,o!==null){do{var S={lane:o.lane,tag:o.tag,payload:o.payload,callback:null,next:null};f===null?I=f=S:f=f.next=S,o=o.next}while(o!==null);f===null?I=f=e:f=f.next=e}else I=f=e;o={baseState:d.baseState,firstBaseUpdate:I,lastBaseUpdate:f,shared:d.shared,callbacks:d.callbacks},n.updateQueue=o;return}n=o.lastBaseUpdate,n===null?o.firstBaseUpdate=e:n.next=e,o.lastBaseUpdate=e}var didReadFromEntangledAsyncAction=!1;function suspendIfUpdateReadFromEntangledAsyncAction(){if(didReadFromEntangledAsyncAction){var n=currentEntangledActionThenable;if(n!==null)throw n}}function processUpdateQueue(n,e,o,d){didReadFromEntangledAsyncAction=!1;var I=n.updateQueue;hasForceUpdate=!1;var f=I.firstBaseUpdate,S=I.lastBaseUpdate,v=I.shared.pending;if(v!==null){I.shared.pending=null;var L=v,x=L.next;L.next=null,S===null?f=x:S.next=x,S=L;var F=n.alternate;F!==null&&(F=F.updateQueue,v=F.lastBaseUpdate,v!==S&&(v===null?F.firstBaseUpdate=x:v.next=x,F.lastBaseUpdate=L))}if(f!==null){var Y=I.baseState;S=0,F=x=L=null,v=f;do{var j=v.lane&-536870913,W=j!==v.lane;if(W?(workInProgressRootRenderLanes&j)===j:(d&j)===j){j!==0&&j===currentEntangledLane&&(didReadFromEntangledAsyncAction=!0),F!==null&&(F=F.next={lane:0,tag:v.tag,payload:v.payload,callback:null,next:null});e:{var re=n,ee=v;j=e;var he=o;switch(ee.tag){case 1:if(re=ee.payload,typeof re=="function"){Y=re.call(he,Y,j);break e}Y=re;break e;case 3:re.flags=re.flags&-65537|128;case 0:if(re=ee.payload,j=typeof re=="function"?re.call(he,Y,j):re,j==null)break e;Y=assign({},Y,j);break e;case 2:hasForceUpdate=!0}}j=v.callback,j!==null&&(n.flags|=64,W&&(n.flags|=8192),W=I.callbacks,W===null?I.callbacks=[j]:W.push(j))}else W={lane:j,tag:v.tag,payload:v.payload,callback:v.callback,next:null},F===null?(x=F=W,L=Y):F=F.next=W,S|=j;if(v=v.next,v===null){if(v=I.shared.pending,v===null)break;W=v,v=W.next,W.next=null,I.lastBaseUpdate=W,I.shared.pending=null}}while(!0);F===null&&(L=Y),I.baseState=L,I.firstBaseUpdate=x,I.lastBaseUpdate=F,f===null&&(I.shared.lanes=0),workInProgressRootSkippedLanes|=S,n.lanes=S,n.memoizedState=Y}}function callCallback(n,e){if(typeof n!="function")throw Error(formatProdErrorMessage(191,n));n.call(e)}function commitCallbacks(n,e){var o=n.callbacks;if(o!==null)for(n.callbacks=null,n=0;nf?f:8;var S=ReactSharedInternals.T,v={};ReactSharedInternals.T=v,dispatchOptimisticSetState(n,!1,e,o);try{var L=I(),x=ReactSharedInternals.S;if(x!==null&&x(v,L),L!==null&&typeof L=="object"&&typeof L.then=="function"){var F=chainThenableValue(L,d);dispatchSetStateInternal(n,e,F,requestUpdateLane(n))}else dispatchSetStateInternal(n,e,d,requestUpdateLane(n))}catch(Y){dispatchSetStateInternal(n,e,{then:function(){},status:"rejected",reason:Y},requestUpdateLane())}finally{ReactDOMSharedInternals.p=f,S!==null&&v.types!==null&&(S.types=v.types),ReactSharedInternals.T=S}}function noop$2(){}function startHostTransition(n,e,o,d){if(n.tag!==5)throw Error(formatProdErrorMessage(476));var I=ensureFormComponentIsStateful(n).queue;startTransition(n,I,e,sharedNotPendingObject,o===null?noop$2:function(){return requestFormReset$1(n),o(d)})}function ensureFormComponentIsStateful(n){var e=n.memoizedState;if(e!==null)return e;e={memoizedState:sharedNotPendingObject,baseState:sharedNotPendingObject,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:basicStateReducer,lastRenderedState:sharedNotPendingObject},next:null};var o={};return e.next={memoizedState:o,baseState:o,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:basicStateReducer,lastRenderedState:o},next:null},n.memoizedState=e,n=n.alternate,n!==null&&(n.memoizedState=e),e}function requestFormReset$1(n){var e=ensureFormComponentIsStateful(n);e.next===null&&(e=n.alternate.memoizedState),dispatchSetStateInternal(n,e.next.queue,{},requestUpdateLane())}function useHostTransitionStatus(){return readContext(HostTransitionContext)}function updateId(){return updateWorkInProgressHook().memoizedState}function updateRefresh(){return updateWorkInProgressHook().memoizedState}function refreshCache(n){for(var e=n.return;e!==null;){switch(e.tag){case 24:case 3:var o=requestUpdateLane();n=createUpdate(o);var d=enqueueUpdate(e,n,o);d!==null&&(scheduleUpdateOnFiber(d,e,o),entangleTransitions(d,e,o)),e={cache:createCache()},n.payload=e;return}e=e.return}}function dispatchReducerAction(n,e,o){var d=requestUpdateLane();o={lane:d,revertLane:0,gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},isRenderPhaseUpdate(n)?enqueueRenderPhaseUpdate(e,o):(o=enqueueConcurrentHookUpdate(n,e,o,d),o!==null&&(scheduleUpdateOnFiber(o,n,d),entangleTransitionUpdate(o,e,d)))}function dispatchSetState(n,e,o){var d=requestUpdateLane();dispatchSetStateInternal(n,e,o,d)}function dispatchSetStateInternal(n,e,o,d){var I={lane:d,revertLane:0,gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null};if(isRenderPhaseUpdate(n))enqueueRenderPhaseUpdate(e,I);else{var f=n.alternate;if(n.lanes===0&&(f===null||f.lanes===0)&&(f=e.lastRenderedReducer,f!==null))try{var S=e.lastRenderedState,v=f(S,o);if(I.hasEagerState=!0,I.eagerState=v,objectIs(v,S))return enqueueUpdate$1(n,e,I,0),workInProgressRoot===null&&finishQueueingConcurrentUpdates(),!1}catch{}finally{}if(o=enqueueConcurrentHookUpdate(n,e,I,d),o!==null)return scheduleUpdateOnFiber(o,n,d),entangleTransitionUpdate(o,e,d),!0}return!1}function dispatchOptimisticSetState(n,e,o,d){if(d={lane:2,revertLane:requestTransitionLane(),gesture:null,action:d,hasEagerState:!1,eagerState:null,next:null},isRenderPhaseUpdate(n)){if(e)throw Error(formatProdErrorMessage(479))}else e=enqueueConcurrentHookUpdate(n,o,d,2),e!==null&&scheduleUpdateOnFiber(e,n,2)}function isRenderPhaseUpdate(n){var e=n.alternate;return n===currentlyRenderingFiber||e!==null&&e===currentlyRenderingFiber}function enqueueRenderPhaseUpdate(n,e){didScheduleRenderPhaseUpdateDuringThisPass=didScheduleRenderPhaseUpdate=!0;var o=n.pending;o===null?e.next=e:(e.next=o.next,o.next=e),n.pending=e}function entangleTransitionUpdate(n,e,o){if(o&4194048){var d=e.lanes;d&=n.pendingLanes,o|=d,e.lanes=o,markRootEntangled(n,o)}}var ContextOnlyDispatcher={readContext,use:use$1,useCallback:throwInvalidHookError,useContext:throwInvalidHookError,useEffect:throwInvalidHookError,useImperativeHandle:throwInvalidHookError,useLayoutEffect:throwInvalidHookError,useInsertionEffect:throwInvalidHookError,useMemo:throwInvalidHookError,useReducer:throwInvalidHookError,useRef:throwInvalidHookError,useState:throwInvalidHookError,useDebugValue:throwInvalidHookError,useDeferredValue:throwInvalidHookError,useTransition:throwInvalidHookError,useSyncExternalStore:throwInvalidHookError,useId:throwInvalidHookError,useHostTransitionStatus:throwInvalidHookError,useFormState:throwInvalidHookError,useActionState:throwInvalidHookError,useOptimistic:throwInvalidHookError,useMemoCache:throwInvalidHookError,useCacheRefresh:throwInvalidHookError};ContextOnlyDispatcher.useEffectEvent=throwInvalidHookError;var HooksDispatcherOnMount={readContext,use:use$1,useCallback:function(n,e){return mountWorkInProgressHook().memoizedState=[n,e===void 0?null:e],n},useContext:readContext,useEffect:mountEffect,useImperativeHandle:function(n,e,o){o=o!=null?o.concat([n]):null,mountEffectImpl(4194308,4,imperativeHandleEffect.bind(null,e,n),o)},useLayoutEffect:function(n,e){return mountEffectImpl(4194308,4,n,e)},useInsertionEffect:function(n,e){mountEffectImpl(4,2,n,e)},useMemo:function(n,e){var o=mountWorkInProgressHook();e=e===void 0?null:e;var d=n();if(shouldDoubleInvokeUserFnsInHooksDEV){setIsStrictModeForDevtools(!0);try{n()}finally{setIsStrictModeForDevtools(!1)}}return o.memoizedState=[d,e],d},useReducer:function(n,e,o){var d=mountWorkInProgressHook();if(o!==void 0){var I=o(e);if(shouldDoubleInvokeUserFnsInHooksDEV){setIsStrictModeForDevtools(!0);try{o(e)}finally{setIsStrictModeForDevtools(!1)}}}else I=e;return d.memoizedState=d.baseState=I,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:I},d.queue=n,n=n.dispatch=dispatchReducerAction.bind(null,currentlyRenderingFiber,n),[d.memoizedState,n]},useRef:function(n){var e=mountWorkInProgressHook();return n={current:n},e.memoizedState=n},useState:function(n){n=mountStateImpl(n);var e=n.queue,o=dispatchSetState.bind(null,currentlyRenderingFiber,e);return e.dispatch=o,[n.memoizedState,o]},useDebugValue:mountDebugValue,useDeferredValue:function(n,e){var o=mountWorkInProgressHook();return mountDeferredValueImpl(o,n,e)},useTransition:function(){var n=mountStateImpl(!1);return n=startTransition.bind(null,currentlyRenderingFiber,n.queue,!0,!1),mountWorkInProgressHook().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,e,o){var d=currentlyRenderingFiber,I=mountWorkInProgressHook();if(isHydrating){if(o===void 0)throw Error(formatProdErrorMessage(407));o=o()}else{if(o=e(),workInProgressRoot===null)throw Error(formatProdErrorMessage(349));workInProgressRootRenderLanes&127||pushStoreConsistencyCheck(d,e,o)}I.memoizedState=o;var f={value:o,getSnapshot:e};return I.queue=f,mountEffect(subscribeToStore.bind(null,d,f,n),[n]),d.flags|=2048,pushSimpleEffect(9,{destroy:void 0},updateStoreInstance.bind(null,d,f,o,e),null),o},useId:function(){var n=mountWorkInProgressHook(),e=workInProgressRoot.identifierPrefix;if(isHydrating){var o=treeContextOverflow,d=treeContextId;o=(d&~(1<<32-clz32(d)-1)).toString(32)+o,e="_"+e+"R_"+o,o=localIdCounter++,0<\/script>",f=f.removeChild(f.firstChild);break;case"select":f=typeof d.is=="string"?S.createElement("select",{is:d.is}):S.createElement("select"),d.multiple?f.multiple=!0:d.size&&(f.size=d.size);break;default:f=typeof d.is=="string"?S.createElement(I,{is:d.is}):S.createElement(I)}}f[internalInstanceKey]=e,f[internalPropsKey]=d;e:for(S=e.child;S!==null;){if(S.tag===5||S.tag===6)f.appendChild(S.stateNode);else if(S.tag!==4&&S.tag!==27&&S.child!==null){S.child.return=S,S=S.child;continue}if(S===e)break e;for(;S.sibling===null;){if(S.return===null||S.return===e)break e;S=S.return}S.sibling.return=S.return,S=S.sibling}e.stateNode=f;e:switch(setInitialProperties(f,I,d),I){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break e;case"img":d=!0;break e;default:d=!1}d&&markUpdate(e)}}return bubbleProperties(e),preloadInstanceAndSuspendIfNeeded(e,e.type,n===null?null:n.memoizedProps,e.pendingProps,o),null;case 6:if(n&&e.stateNode!=null)n.memoizedProps!==d&&markUpdate(e);else{if(typeof d!="string"&&e.stateNode===null)throw Error(formatProdErrorMessage(166));if(n=rootInstanceStackCursor.current,popHydrationState(e)){if(n=e.stateNode,o=e.memoizedProps,d=null,I=hydrationParentFiber,I!==null)switch(I.tag){case 27:case 5:d=I.memoizedProps}n[internalInstanceKey]=e,n=!!(n.nodeValue===o||d!==null&&d.suppressHydrationWarning===!0||checkForUnmatchedText(n.nodeValue,o)),n||throwOnHydrationMismatch(e,!0)}else n=getOwnerDocumentFromRootContainer(n).createTextNode(d),n[internalInstanceKey]=e,e.stateNode=n}return bubbleProperties(e),null;case 31:if(o=e.memoizedState,n===null||n.memoizedState!==null){if(d=popHydrationState(e),o!==null){if(n===null){if(!d)throw Error(formatProdErrorMessage(318));if(n=e.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(formatProdErrorMessage(557));n[internalInstanceKey]=e}else resetHydrationState(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;bubbleProperties(e),n=!1}else o=upgradeHydrationErrorsToRecoverable(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=o),n=!0;if(!n)return e.flags&256?(popSuspenseHandler(e),e):(popSuspenseHandler(e),null);if(e.flags&128)throw Error(formatProdErrorMessage(558))}return bubbleProperties(e),null;case 13:if(d=e.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(I=popHydrationState(e),d!==null&&d.dehydrated!==null){if(n===null){if(!I)throw Error(formatProdErrorMessage(318));if(I=e.memoizedState,I=I!==null?I.dehydrated:null,!I)throw Error(formatProdErrorMessage(317));I[internalInstanceKey]=e}else resetHydrationState(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;bubbleProperties(e),I=!1}else I=upgradeHydrationErrorsToRecoverable(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=I),I=!0;if(!I)return e.flags&256?(popSuspenseHandler(e),e):(popSuspenseHandler(e),null)}return popSuspenseHandler(e),e.flags&128?(e.lanes=o,e):(o=d!==null,n=n!==null&&n.memoizedState!==null,o&&(d=e.child,I=null,d.alternate!==null&&d.alternate.memoizedState!==null&&d.alternate.memoizedState.cachePool!==null&&(I=d.alternate.memoizedState.cachePool.pool),f=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(f=d.memoizedState.cachePool.pool),f!==I&&(d.flags|=2048)),o!==n&&o&&(e.child.flags|=8192),scheduleRetryEffect(e,e.updateQueue),bubbleProperties(e),null);case 4:return popHostContainer(),n===null&&listenToAllSupportedEvents(e.stateNode.containerInfo),bubbleProperties(e),null;case 10:return popProvider(e.type),bubbleProperties(e),null;case 19:if(pop(suspenseStackCursor),d=e.memoizedState,d===null)return bubbleProperties(e),null;if(I=(e.flags&128)!==0,f=d.rendering,f===null)if(I)cutOffTailIfNeeded(d,!1);else{if(workInProgressRootExitStatus!==0||n!==null&&n.flags&128)for(n=e.child;n!==null;){if(f=findFirstSuspended(n),f!==null){for(e.flags|=128,cutOffTailIfNeeded(d,!1),n=f.updateQueue,e.updateQueue=n,scheduleRetryEffect(e,n),e.subtreeFlags=0,n=o,o=e.child;o!==null;)resetWorkInProgress(o,n),o=o.sibling;return push(suspenseStackCursor,suspenseStackCursor.current&1|2),isHydrating&&pushTreeFork(e,d.treeForkCount),e.child}n=n.sibling}d.tail!==null&&now()>workInProgressRootRenderTargetTime&&(e.flags|=128,I=!0,cutOffTailIfNeeded(d,!1),e.lanes=4194304)}else{if(!I)if(n=findFirstSuspended(f),n!==null){if(e.flags|=128,I=!0,n=n.updateQueue,e.updateQueue=n,scheduleRetryEffect(e,n),cutOffTailIfNeeded(d,!0),d.tail===null&&d.tailMode==="hidden"&&!f.alternate&&!isHydrating)return bubbleProperties(e),null}else 2*now()-d.renderingStartTime>workInProgressRootRenderTargetTime&&o!==536870912&&(e.flags|=128,I=!0,cutOffTailIfNeeded(d,!1),e.lanes=4194304);d.isBackwards?(f.sibling=e.child,e.child=f):(n=d.last,n!==null?n.sibling=f:e.child=f,d.last=f)}return d.tail!==null?(n=d.tail,d.rendering=n,d.tail=n.sibling,d.renderingStartTime=now(),n.sibling=null,o=suspenseStackCursor.current,push(suspenseStackCursor,I?o&1|2:o&1),isHydrating&&pushTreeFork(e,d.treeForkCount),n):(bubbleProperties(e),null);case 22:case 23:return popSuspenseHandler(e),popHiddenContext(),d=e.memoizedState!==null,n!==null?n.memoizedState!==null!==d&&(e.flags|=8192):d&&(e.flags|=8192),d?o&536870912&&!(e.flags&128)&&(bubbleProperties(e),e.subtreeFlags&6&&(e.flags|=8192)):bubbleProperties(e),o=e.updateQueue,o!==null&&scheduleRetryEffect(e,o.retryQueue),o=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),d=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(d=e.memoizedState.cachePool.pool),d!==o&&(e.flags|=2048),n!==null&&pop(resumedCache),null;case 24:return o=null,n!==null&&(o=n.memoizedState.cache),e.memoizedState.cache!==o&&(e.flags|=2048),popProvider(CacheContext),bubbleProperties(e),null;case 25:return null;case 30:return null}throw Error(formatProdErrorMessage(156,e.tag))}function unwindWork(n,e){switch(popTreeContext(e),e.tag){case 1:return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return popProvider(CacheContext),popHostContainer(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 26:case 27:case 5:return popHostContext(e),null;case 31:if(e.memoizedState!==null){if(popSuspenseHandler(e),e.alternate===null)throw Error(formatProdErrorMessage(340));resetHydrationState()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 13:if(popSuspenseHandler(e),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(formatProdErrorMessage(340));resetHydrationState()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return pop(suspenseStackCursor),null;case 4:return popHostContainer(),null;case 10:return popProvider(e.type),null;case 22:case 23:return popSuspenseHandler(e),popHiddenContext(),n!==null&&pop(resumedCache),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 24:return popProvider(CacheContext),null;case 25:return null;default:return null}}function unwindInterruptedWork(n,e){switch(popTreeContext(e),e.tag){case 3:popProvider(CacheContext),popHostContainer();break;case 26:case 27:case 5:popHostContext(e);break;case 4:popHostContainer();break;case 31:e.memoizedState!==null&&popSuspenseHandler(e);break;case 13:popSuspenseHandler(e);break;case 19:pop(suspenseStackCursor);break;case 10:popProvider(e.type);break;case 22:case 23:popSuspenseHandler(e),popHiddenContext(),n!==null&&pop(resumedCache);break;case 24:popProvider(CacheContext)}}function commitHookEffectListMount(n,e){try{var o=e.updateQueue,d=o!==null?o.lastEffect:null;if(d!==null){var I=d.next;o=I;do{if((o.tag&n)===n){d=void 0;var f=o.create,S=o.inst;d=f(),S.destroy=d}o=o.next}while(o!==I)}}catch(v){captureCommitPhaseError(e,e.return,v)}}function commitHookEffectListUnmount(n,e,o){try{var d=e.updateQueue,I=d!==null?d.lastEffect:null;if(I!==null){var f=I.next;d=f;do{if((d.tag&n)===n){var S=d.inst,v=S.destroy;if(v!==void 0){S.destroy=void 0,I=e;var L=o,x=v;try{x()}catch(F){captureCommitPhaseError(I,L,F)}}}d=d.next}while(d!==f)}}catch(F){captureCommitPhaseError(e,e.return,F)}}function commitClassCallbacks(n){var e=n.updateQueue;if(e!==null){var o=n.stateNode;try{commitCallbacks(e,o)}catch(d){captureCommitPhaseError(n,n.return,d)}}}function safelyCallComponentWillUnmount(n,e,o){o.props=resolveClassComponentProps(n.type,n.memoizedProps),o.state=n.memoizedState;try{o.componentWillUnmount()}catch(d){captureCommitPhaseError(n,e,d)}}function safelyAttachRef(n,e){try{var o=n.ref;if(o!==null){switch(n.tag){case 26:case 27:case 5:var d=n.stateNode;break;case 30:d=n.stateNode;break;default:d=n.stateNode}typeof o=="function"?n.refCleanup=o(d):o.current=d}}catch(I){captureCommitPhaseError(n,e,I)}}function safelyDetachRef(n,e){var o=n.ref,d=n.refCleanup;if(o!==null)if(typeof d=="function")try{d()}catch(I){captureCommitPhaseError(n,e,I)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof o=="function")try{o(null)}catch(I){captureCommitPhaseError(n,e,I)}else o.current=null}function commitHostMount(n){var e=n.type,o=n.memoizedProps,d=n.stateNode;try{e:switch(e){case"button":case"input":case"select":case"textarea":o.autoFocus&&d.focus();break e;case"img":o.src?d.src=o.src:o.srcSet&&(d.srcset=o.srcSet)}}catch(I){captureCommitPhaseError(n,n.return,I)}}function commitHostUpdate(n,e,o){try{var d=n.stateNode;updateProperties(d,n.type,o,e),d[internalPropsKey]=e}catch(I){captureCommitPhaseError(n,n.return,I)}}function isHostParent(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&&isSingletonScope(n.type)||n.tag===4}function getHostSibling(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||isHostParent(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.tag===27&&isSingletonScope(n.type)||n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function insertOrAppendPlacementNodeIntoContainer(n,e,o){var d=n.tag;if(d===5||d===6)n=n.stateNode,e?(o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o).insertBefore(n,e):(e=o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o,e.appendChild(n),o=o._reactRootContainer,o!=null||e.onclick!==null||(e.onclick=noop$1));else if(d!==4&&(d===27&&isSingletonScope(n.type)&&(o=n.stateNode,e=null),n=n.child,n!==null))for(insertOrAppendPlacementNodeIntoContainer(n,e,o),n=n.sibling;n!==null;)insertOrAppendPlacementNodeIntoContainer(n,e,o),n=n.sibling}function insertOrAppendPlacementNode(n,e,o){var d=n.tag;if(d===5||d===6)n=n.stateNode,e?o.insertBefore(n,e):o.appendChild(n);else if(d!==4&&(d===27&&isSingletonScope(n.type)&&(o=n.stateNode),n=n.child,n!==null))for(insertOrAppendPlacementNode(n,e,o),n=n.sibling;n!==null;)insertOrAppendPlacementNode(n,e,o),n=n.sibling}function commitHostSingletonAcquisition(n){var e=n.stateNode,o=n.memoizedProps;try{for(var d=n.type,I=e.attributes;I.length;)e.removeAttributeNode(I[0]);setInitialProperties(e,d,o),e[internalInstanceKey]=n,e[internalPropsKey]=o}catch(f){captureCommitPhaseError(n,n.return,f)}}var offscreenSubtreeIsHidden=!1,offscreenSubtreeWasHidden=!1,needsFormReset=!1,PossiblyWeakSet=typeof WeakSet=="function"?WeakSet:Set,nextEffect=null;function commitBeforeMutationEffects(n,e){if(n=n.containerInfo,eventsEnabled=_enabled,n=getActiveElementDeep(n),hasSelectionCapabilities(n)){if("selectionStart"in n)var o={start:n.selectionStart,end:n.selectionEnd};else e:{o=(o=n.ownerDocument)&&o.defaultView||window;var d=o.getSelection&&o.getSelection();if(d&&d.rangeCount!==0){o=d.anchorNode;var I=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{o.nodeType,f.nodeType}catch{o=null;break e}var S=0,v=-1,L=-1,x=0,F=0,Y=n,j=null;t:for(;;){for(var W;Y!==o||I!==0&&Y.nodeType!==3||(v=S+I),Y!==f||d!==0&&Y.nodeType!==3||(L=S+d),Y.nodeType===3&&(S+=Y.nodeValue.length),(W=Y.firstChild)!==null;)j=Y,Y=W;for(;;){if(Y===n)break t;if(j===o&&++x===I&&(v=S),j===f&&++F===d&&(L=S),(W=Y.nextSibling)!==null)break;Y=j,j=Y.parentNode}Y=W}o=v===-1||L===-1?null:{start:v,end:L}}else o=null}o=o||{start:0,end:0}}else o=null;for(selectionInformation={focusedElem:n,selectionRange:o},_enabled=!1,nextEffect=e;nextEffect!==null;)if(e=nextEffect,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nextEffect=n;else for(;nextEffect!==null;){switch(e=nextEffect,f=e.alternate,n=e.flags,e.tag){case 0:if(n&4&&(n=e.updateQueue,n=n!==null?n.events:null,n!==null))for(o=0;o title"))),setInitialProperties(f,d,o),f[internalInstanceKey]=n,markNodeAsHoistable(f),d=f;break e;case"link":var S=getHydratableHoistableCache("link","href",I).get(d+(o.href||""));if(S){for(var v=0;vhe&&(S=he,he=ee,ee=S);var ue=getNodeForCharacterOffset(v,ee),Ee=getNodeForCharacterOffset(v,he);if(ue&&Ee&&(W.rangeCount!==1||W.anchorNode!==ue.node||W.anchorOffset!==ue.offset||W.focusNode!==Ee.node||W.focusOffset!==Ee.offset)){var _e=Y.createRange();_e.setStart(ue.node,ue.offset),W.removeAllRanges(),ee>he?(W.addRange(_e),W.extend(Ee.node,Ee.offset)):(_e.setEnd(Ee.node,Ee.offset),W.addRange(_e))}}}}for(Y=[],W=v;W=W.parentNode;)W.nodeType===1&&Y.push({element:W,left:W.scrollLeft,top:W.scrollTop});for(typeof v.focus=="function"&&v.focus(),v=0;vo?32:o,ReactSharedInternals.T=null,o=pendingPassiveTransitions,pendingPassiveTransitions=null;var f=pendingEffectsRoot,S=pendingEffectsLanes;if(pendingEffectsStatus=0,pendingFinishedWork=pendingEffectsRoot=null,pendingEffectsLanes=0,executionContext&6)throw Error(formatProdErrorMessage(331));var v=executionContext;if(executionContext|=4,commitPassiveUnmountOnFiber(f.current),commitPassiveMountOnFiber(f,f.current,S,o),executionContext=v,flushSyncWorkAcrossRoots_impl(0,!1),injectedHook&&typeof injectedHook.onPostCommitFiberRoot=="function")try{injectedHook.onPostCommitFiberRoot(rendererID,f)}catch{}return!0}finally{ReactDOMSharedInternals.p=I,ReactSharedInternals.T=d,releaseRootPooledCache(n,e)}}function captureCommitPhaseErrorOnRoot(n,e,o){e=createCapturedValueAtFiber(o,e),e=createRootErrorUpdate(n.stateNode,e,2),n=enqueueUpdate(n,e,2),n!==null&&(markRootUpdated$1(n,2),ensureRootIsScheduled(n))}function captureCommitPhaseError(n,e,o){if(n.tag===3)captureCommitPhaseErrorOnRoot(n,n,o);else for(;e!==null;){if(e.tag===3){captureCommitPhaseErrorOnRoot(e,n,o);break}else if(e.tag===1){var d=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(legacyErrorBoundariesThatAlreadyFailed===null||!legacyErrorBoundariesThatAlreadyFailed.has(d))){n=createCapturedValueAtFiber(o,n),o=createClassErrorUpdate(2),d=enqueueUpdate(e,o,2),d!==null&&(initializeClassErrorUpdate(o,d,e,n),markRootUpdated$1(d,2),ensureRootIsScheduled(d));break}}e=e.return}}function attachPingListener(n,e,o){var d=n.pingCache;if(d===null){d=n.pingCache=new PossiblyWeakMap;var I=new Set;d.set(e,I)}else I=d.get(e),I===void 0&&(I=new Set,d.set(e,I));I.has(o)||(workInProgressRootDidAttachPingListener=!0,I.add(o),n=pingSuspendedRoot.bind(null,n,e,o),e.then(n,n))}function pingSuspendedRoot(n,e,o){var d=n.pingCache;d!==null&&d.delete(e),n.pingedLanes|=n.suspendedLanes&o,n.warmLanes&=~o,workInProgressRoot===n&&(workInProgressRootRenderLanes&o)===o&&(workInProgressRootExitStatus===4||workInProgressRootExitStatus===3&&(workInProgressRootRenderLanes&62914560)===workInProgressRootRenderLanes&&300>now()-globalMostRecentFallbackTime?!(executionContext&2)&&prepareFreshStack(n,0):workInProgressRootPingedLanes|=o,workInProgressSuspendedRetryLanes===workInProgressRootRenderLanes&&(workInProgressSuspendedRetryLanes=0)),ensureRootIsScheduled(n)}function retryTimedOutBoundary(n,e){e===0&&(e=claimNextRetryLane()),n=enqueueConcurrentRenderForLane(n,e),n!==null&&(markRootUpdated$1(n,e),ensureRootIsScheduled(n))}function retryDehydratedSuspenseBoundary(n){var e=n.memoizedState,o=0;e!==null&&(o=e.retryLane),retryTimedOutBoundary(n,o)}function resolveRetryWakeable(n,e){var o=0;switch(n.tag){case 31:case 13:var d=n.stateNode,I=n.memoizedState;I!==null&&(o=I.retryLane);break;case 19:d=n.stateNode;break;case 22:d=n.stateNode._retryCache;break;default:throw Error(formatProdErrorMessage(314))}d!==null&&d.delete(e),retryTimedOutBoundary(n,o)}function scheduleCallback$1(n,e){return scheduleCallback$3(n,e)}var firstScheduledRoot=null,lastScheduledRoot=null,didScheduleMicrotask=!1,mightHavePendingSyncWork=!1,isFlushingWork=!1,currentEventTransitionLane=0;function ensureRootIsScheduled(n){n!==lastScheduledRoot&&n.next===null&&(lastScheduledRoot===null?firstScheduledRoot=lastScheduledRoot=n:lastScheduledRoot=lastScheduledRoot.next=n),mightHavePendingSyncWork=!0,didScheduleMicrotask||(didScheduleMicrotask=!0,scheduleImmediateRootScheduleTask())}function flushSyncWorkAcrossRoots_impl(n,e){if(!isFlushingWork&&mightHavePendingSyncWork){isFlushingWork=!0;do for(var o=!1,d=firstScheduledRoot;d!==null;){if(n!==0){var I=d.pendingLanes;if(I===0)var f=0;else{var S=d.suspendedLanes,v=d.pingedLanes;f=(1<<31-clz32(42|n)+1)-1,f&=I&~(S&~v),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(o=!0,performSyncWorkOnRoot(d,f))}else f=workInProgressRootRenderLanes,f=getNextLanes(d,d===workInProgressRoot?f:0,d.cancelPendingCommit!==null||d.timeoutHandle!==-1),!(f&3)||checkIfRootIsPrerendering(d,f)||(o=!0,performSyncWorkOnRoot(d,f));d=d.next}while(o);isFlushingWork=!1}}function processRootScheduleInImmediateTask(){processRootScheduleInMicrotask()}function processRootScheduleInMicrotask(){mightHavePendingSyncWork=didScheduleMicrotask=!1;var n=0;currentEventTransitionLane!==0&&shouldAttemptEagerTransition()&&(n=currentEventTransitionLane);for(var e=now(),o=null,d=firstScheduledRoot;d!==null;){var I=d.next,f=scheduleTaskForRootDuringMicrotask(d,e);f===0?(d.next=null,o===null?firstScheduledRoot=I:o.next=I,I===null&&(lastScheduledRoot=o)):(o=d,(n!==0||f&3)&&(mightHavePendingSyncWork=!0)),d=I}pendingEffectsStatus!==0&&pendingEffectsStatus!==5||flushSyncWorkAcrossRoots_impl(n),currentEventTransitionLane!==0&&(currentEventTransitionLane=0)}function scheduleTaskForRootDuringMicrotask(n,e){for(var o=n.suspendedLanes,d=n.pingedLanes,I=n.expirationTimes,f=n.pendingLanes&-62914561;0v)break;var F=L.transferSize,Y=L.initiatorType;F&&isLikelyStaticResource(Y)&&(L=L.responseEnd,S+=F*(L"u"?null:document;function preconnectAs(n,e,o){var d=globalDocument;if(d&&typeof e=="string"&&e){var I=escapeSelectorAttributeValueInsideDoubleQuotes(e);I='link[rel="'+n+'"][href="'+I+'"]',typeof o=="string"&&(I+='[crossorigin="'+o+'"]'),preconnectsSet.has(I)||(preconnectsSet.add(I),n={rel:n,crossOrigin:o,href:e},d.querySelector(I)===null&&(e=d.createElement("link"),setInitialProperties(e,"link",n),markNodeAsHoistable(e),d.head.appendChild(e)))}}function prefetchDNS(n){previousDispatcher.D(n),preconnectAs("dns-prefetch",n,null)}function preconnect(n,e){previousDispatcher.C(n,e),preconnectAs("preconnect",n,e)}function preload(n,e,o){previousDispatcher.L(n,e,o);var d=globalDocument;if(d&&n&&e){var I='link[rel="preload"][as="'+escapeSelectorAttributeValueInsideDoubleQuotes(e)+'"]';e==="image"&&o&&o.imageSrcSet?(I+='[imagesrcset="'+escapeSelectorAttributeValueInsideDoubleQuotes(o.imageSrcSet)+'"]',typeof o.imageSizes=="string"&&(I+='[imagesizes="'+escapeSelectorAttributeValueInsideDoubleQuotes(o.imageSizes)+'"]')):I+='[href="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"]';var f=I;switch(e){case"style":f=getStyleKey(n);break;case"script":f=getScriptKey(n)}preloadPropsMap.has(f)||(n=assign({rel:"preload",href:e==="image"&&o&&o.imageSrcSet?void 0:n,as:e},o),preloadPropsMap.set(f,n),d.querySelector(I)!==null||e==="style"&&d.querySelector(getStylesheetSelectorFromKey(f))||e==="script"&&d.querySelector(getScriptSelectorFromKey(f))||(e=d.createElement("link"),setInitialProperties(e,"link",n),markNodeAsHoistable(e),d.head.appendChild(e)))}}function preloadModule(n,e){previousDispatcher.m(n,e);var o=globalDocument;if(o&&n){var d=e&&typeof e.as=="string"?e.as:"script",I='link[rel="modulepreload"][as="'+escapeSelectorAttributeValueInsideDoubleQuotes(d)+'"][href="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"]',f=I;switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=getScriptKey(n)}if(!preloadPropsMap.has(f)&&(n=assign({rel:"modulepreload",href:n},e),preloadPropsMap.set(f,n),o.querySelector(I)===null)){switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(o.querySelector(getScriptSelectorFromKey(f)))return}d=o.createElement("link"),setInitialProperties(d,"link",n),markNodeAsHoistable(d),o.head.appendChild(d)}}}function preinitStyle(n,e,o){previousDispatcher.S(n,e,o);var d=globalDocument;if(d&&n){var I=getResourcesFromRoot(d).hoistableStyles,f=getStyleKey(n);e=e||"default";var S=I.get(f);if(!S){var v={loading:0,preload:null};if(S=d.querySelector(getStylesheetSelectorFromKey(f)))v.loading=5;else{n=assign({rel:"stylesheet",href:n,"data-precedence":e},o),(o=preloadPropsMap.get(f))&&adoptPreloadPropsForStylesheet(n,o);var L=S=d.createElement("link");markNodeAsHoistable(L),setInitialProperties(L,"link",n),L._p=new Promise(function(x,F){L.onload=x,L.onerror=F}),L.addEventListener("load",function(){v.loading|=1}),L.addEventListener("error",function(){v.loading|=2}),v.loading|=4,insertStylesheet(S,e,d)}S={type:"stylesheet",instance:S,count:1,state:v},I.set(f,S)}}}function preinitScript(n,e){previousDispatcher.X(n,e);var o=globalDocument;if(o&&n){var d=getResourcesFromRoot(o).hoistableScripts,I=getScriptKey(n),f=d.get(I);f||(f=o.querySelector(getScriptSelectorFromKey(I)),f||(n=assign({src:n,async:!0},e),(e=preloadPropsMap.get(I))&&adoptPreloadPropsForScript(n,e),f=o.createElement("script"),markNodeAsHoistable(f),setInitialProperties(f,"link",n),o.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},d.set(I,f))}}function preinitModuleScript(n,e){previousDispatcher.M(n,e);var o=globalDocument;if(o&&n){var d=getResourcesFromRoot(o).hoistableScripts,I=getScriptKey(n),f=d.get(I);f||(f=o.querySelector(getScriptSelectorFromKey(I)),f||(n=assign({src:n,async:!0,type:"module"},e),(e=preloadPropsMap.get(I))&&adoptPreloadPropsForScript(n,e),f=o.createElement("script"),markNodeAsHoistable(f),setInitialProperties(f,"link",n),o.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},d.set(I,f))}}function getResource(n,e,o,d){var I=(I=rootInstanceStackCursor.current)?getHoistableRoot(I):null;if(!I)throw Error(formatProdErrorMessage(446));switch(n){case"meta":case"title":return null;case"style":return typeof o.precedence=="string"&&typeof o.href=="string"?(e=getStyleKey(o.href),o=getResourcesFromRoot(I).hoistableStyles,d=o.get(e),d||(d={type:"style",instance:null,count:0,state:null},o.set(e,d)),d):{type:"void",instance:null,count:0,state:null};case"link":if(o.rel==="stylesheet"&&typeof o.href=="string"&&typeof o.precedence=="string"){n=getStyleKey(o.href);var f=getResourcesFromRoot(I).hoistableStyles,S=f.get(n);if(S||(I=I.ownerDocument||I,S={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(n,S),(f=I.querySelector(getStylesheetSelectorFromKey(n)))&&!f._p&&(S.instance=f,S.state.loading=5),preloadPropsMap.has(n)||(o={rel:"preload",as:"style",href:o.href,crossOrigin:o.crossOrigin,integrity:o.integrity,media:o.media,hrefLang:o.hrefLang,referrerPolicy:o.referrerPolicy},preloadPropsMap.set(n,o),f||preloadStylesheet(I,n,o,S.state))),e&&d===null)throw Error(formatProdErrorMessage(528,""));return S}if(e&&d!==null)throw Error(formatProdErrorMessage(529,""));return null;case"script":return e=o.async,o=o.src,typeof o=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=getScriptKey(o),o=getResourcesFromRoot(I).hoistableScripts,d=o.get(e),d||(d={type:"script",instance:null,count:0,state:null},o.set(e,d)),d):{type:"void",instance:null,count:0,state:null};default:throw Error(formatProdErrorMessage(444,n))}}function getStyleKey(n){return'href="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"'}function getStylesheetSelectorFromKey(n){return'link[rel="stylesheet"]['+n+"]"}function stylesheetPropsFromRawProps(n){return assign({},n,{"data-precedence":n.precedence,precedence:null})}function preloadStylesheet(n,e,o,d){n.querySelector('link[rel="preload"][as="style"]['+e+"]")?d.loading=1:(e=n.createElement("link"),d.preload=e,e.addEventListener("load",function(){return d.loading|=1}),e.addEventListener("error",function(){return d.loading|=2}),setInitialProperties(e,"link",o),markNodeAsHoistable(e),n.head.appendChild(e))}function getScriptKey(n){return'[src="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"]'}function getScriptSelectorFromKey(n){return"script[async]"+n}function acquireResource(n,e,o){if(e.count++,e.instance===null)switch(e.type){case"style":var d=n.querySelector('style[data-href~="'+escapeSelectorAttributeValueInsideDoubleQuotes(o.href)+'"]');if(d)return e.instance=d,markNodeAsHoistable(d),d;var I=assign({},o,{"data-href":o.href,"data-precedence":o.precedence,href:null,precedence:null});return d=(n.ownerDocument||n).createElement("style"),markNodeAsHoistable(d),setInitialProperties(d,"style",I),insertStylesheet(d,o.precedence,n),e.instance=d;case"stylesheet":I=getStyleKey(o.href);var f=n.querySelector(getStylesheetSelectorFromKey(I));if(f)return e.state.loading|=4,e.instance=f,markNodeAsHoistable(f),f;d=stylesheetPropsFromRawProps(o),(I=preloadPropsMap.get(I))&&adoptPreloadPropsForStylesheet(d,I),f=(n.ownerDocument||n).createElement("link"),markNodeAsHoistable(f);var S=f;return S._p=new Promise(function(v,L){S.onload=v,S.onerror=L}),setInitialProperties(f,"link",d),e.state.loading|=4,insertStylesheet(f,o.precedence,n),e.instance=f;case"script":return f=getScriptKey(o.src),(I=n.querySelector(getScriptSelectorFromKey(f)))?(e.instance=I,markNodeAsHoistable(I),I):(d=o,(I=preloadPropsMap.get(f))&&(d=assign({},o),adoptPreloadPropsForScript(d,I)),n=n.ownerDocument||n,I=n.createElement("script"),markNodeAsHoistable(I),setInitialProperties(I,"link",d),n.head.appendChild(I),e.instance=I);case"void":return null;default:throw Error(formatProdErrorMessage(443,e.type))}else e.type==="stylesheet"&&!(e.state.loading&4)&&(d=e.instance,e.state.loading|=4,insertStylesheet(d,o.precedence,n));return e.instance}function insertStylesheet(n,e,o){for(var d=o.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),I=d.length?d[d.length-1]:null,f=I,S=0;S title"):null)}function isHostHoistableType(n,e,o){if(o===1||e.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return n=e.disabled,typeof e.precedence=="string"&&n==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function preloadResource(n){return!(n.type==="stylesheet"&&!(n.state.loading&3))}function suspendResource(n,e,o,d){if(o.type==="stylesheet"&&(typeof d.media!="string"||matchMedia(d.media).matches!==!1)&&!(o.state.loading&4)){if(o.instance===null){var I=getStyleKey(d.href),f=e.querySelector(getStylesheetSelectorFromKey(I));if(f){e=f._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(n.count++,n=onUnsuspend.bind(n),e.then(n,n)),o.state.loading|=4,o.instance=f,markNodeAsHoistable(f);return}f=e.ownerDocument||e,d=stylesheetPropsFromRawProps(d),(I=preloadPropsMap.get(I))&&adoptPreloadPropsForStylesheet(d,I),f=f.createElement("link"),markNodeAsHoistable(f);var S=f;S._p=new Promise(function(v,L){S.onload=v,S.onerror=L}),setInitialProperties(f,"link",d),o.instance=f}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(o,e),(e=o.state.preload)&&!(o.state.loading&3)&&(n.count++,o=onUnsuspend.bind(n),e.addEventListener("load",o),e.addEventListener("error",o))}}var estimatedBytesWithinLimit=0;function waitForCommitToBeReady(n,e){return n.stylesheets&&n.count===0&&insertSuspendedStylesheets(n,n.stylesheets),0estimatedBytesWithinLimit?50:800)+e);return n.unsuspend=o,function(){n.unsuspend=null,clearTimeout(d),clearTimeout(I)}}:null}function onUnsuspend(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)insertSuspendedStylesheets(this,this.stylesheets);else if(this.unsuspend){var n=this.unsuspend;this.unsuspend=null,n()}}}var precedencesByRoot=null;function insertSuspendedStylesheets(n,e){n.stylesheets=null,n.unsuspend!==null&&(n.count++,precedencesByRoot=new Map,e.forEach(insertStylesheetIntoRoot,n),precedencesByRoot=null,onUnsuspend.call(n))}function insertStylesheetIntoRoot(n,e){if(!(e.state.loading&4)){var o=precedencesByRoot.get(n);if(o)var d=o.get(null);else{o=new Map,precedencesByRoot.set(n,o);for(var I=n.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(n){console.error(n)}}checkDCE(),client.exports=reactDomClient_production;var clientExports=client.exports;/** + * @license agora-rtc-react + * @version 2.5.1 + * + * Copyright (c) Agora, Inc. + * + * This source code is licensed under the MIT license. + */var J6=Object.create,aS=Object.defineProperty,Q6=Object.getOwnPropertyDescriptor,Z6=Object.getOwnPropertyNames,$6=Object.getPrototypeOf,t8=Object.prototype.hasOwnProperty,e8=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),n8=(n,e)=>{for(var o in e)aS(n,o,{get:e[o],enumerable:!0})},sS=(n,e,o,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let I of Z6(e))!t8.call(n,I)&&I!==o&&aS(n,I,{get:()=>e[I],enumerable:!(d=Q6(e,I))||d.enumerable});return n},oo=(n,e,o)=>(sS(n,e,"default"),o),oa=(n,e,o)=>(o=n!=null?J6($6(n)):{},sS(!n||!n.__esModule?aS(o,"default",{value:n,enumerable:!0}):o,n)),ss=e8((n,e)=>{(function(o,d){typeof n=="object"&&typeof e<"u"?e.exports=d():typeof define=="function"&&define.amd?define(d):(o=typeof globalThis<"u"?globalThis:o||self).AgoraRTC=d()})(n,function(){function o(a,A){return A.forEach(function(l){l&&typeof l!="string"&&!Array.isArray(l)&&Object.keys(l).forEach(function(g){if(g!=="default"&&!(g in a)){var C=Object.getOwnPropertyDescriptor(l,g);Object.defineProperty(a,g,C.get?C:{enumerable:!0,get:function(){return l[g]}})}})}),Object.freeze(a)}var d=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function I(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var f=function(a){try{return!!a()}catch{return!0}},S=!f(function(){var a=(function(){}).bind();return typeof a!="function"||a.hasOwnProperty("prototype")}),v=S,L=Function.prototype,x=L.call,F=v&&L.bind.bind(x,x),Y=v?F:function(a){return function(){return x.apply(a,arguments)}},j=Y({}.isPrototypeOf),W=function(a){return a&&a.Math===Math&&a},re=W(typeof globalThis=="object"&&globalThis)||W(typeof window=="object"&&window)||W(typeof self=="object"&&self)||W(typeof d=="object"&&d)||W(typeof d=="object"&&d)||function(){return this}()||Function("return this")(),ee=S,he=Function.prototype,ue=he.apply,Ee=he.call,_e=typeof Reflect=="object"&&Reflect.apply||(ee?Ee.bind(ue):function(){return Ee.apply(ue,arguments)}),De=Y,Fe=De({}.toString),Ve=De("".slice),Ge=function(a){return Ve(Fe(a),8,-1)},He=Ge,At=Y,Bt=function(a){if(He(a)==="Function")return At(a)},Tt=typeof document=="object"&&document.all,rt=Tt===void 0&&Tt!==void 0?function(a){return typeof a=="function"||a===Tt}:function(a){return typeof a=="function"},ye={},lt=!f(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),Yt=S,ct=Function.prototype.call,ht=Yt?ct.bind(ct):function(){return ct.apply(ct,arguments)},vt={},ar={}.propertyIsEnumerable,jt=Object.getOwnPropertyDescriptor,vr=jt&&!ar.call({1:2},1);vt.f=vr?function(a){var A=jt(this,a);return!!A&&A.enumerable}:ar;var ai,pi,yi=function(a,A){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:A}},fi=f,Jn=Ge,xr=Object,pr=Y("".split),ei=fi(function(){return!xr("z").propertyIsEnumerable(0)})?function(a){return Jn(a)==="String"?pr(a,""):xr(a)}:xr,_i=function(a){return a==null},Gr=_i,oi=TypeError,Oi=function(a){if(Gr(a))throw new oi("Can't call method on "+a);return a},_o=ei,$n=Oi,gs=function(a){return _o($n(a))},Bs=rt,Kn=function(a){return typeof a=="object"?a!==null:Bs(a)},Tn={},Zn=Tn,hc=re,Fs=rt,bt=function(a){return Fs(a)?a:void 0},Es=function(a,A){return arguments.length<2?bt(Zn[a])||bt(hc[a]):Zn[a]&&Zn[a][A]||hc[a]&&hc[a][A]},Me=re.navigator,ot=Me&&Me.userAgent,Ct=ot?String(ot):"",Kt=re,Xr=Ct,Lr=Kt.process,Jr=Kt.Deno,zr=Lr&&Lr.versions||Jr&&Jr.version,ci=zr&&zr.v8;ci&&(pi=(ai=ci.split("."))[0]>0&&ai[0]<4?1:+(ai[0]+ai[1])),!pi&&Xr&&(!(ai=Xr.match(/Edge\/(\d+)/))||ai[1]>=74)&&(ai=Xr.match(/Chrome\/(\d+)/))&&(pi=+ai[1]);var ro=pi,Ho=ro,Oa=f,da=re.String,ua=!!Object.getOwnPropertySymbols&&!Oa(function(){var a=Symbol("symbol detection");return!da(a)||!(Object(a)instanceof Symbol)||!Symbol.sham&&Ho&&Ho<41}),Ns=ua&&!Symbol.sham&&typeof Symbol.iterator=="symbol",w1=Es,qc=rt,ag=j,du=Object,D1=Ns?function(a){return typeof a=="symbol"}:function(a){var A=w1("Symbol");return qc(A)&&ag(A.prototype,du(a))},oA=String,xA=function(a){try{return oA(a)}catch{return"Object"}},Mo=rt,_r=xA,rn=TypeError,dn=function(a){if(Mo(a))return a;throw new rn(_r(a)+" is not a function")},Io=dn,b1=_i,u1=function(a,A){var l=a[A];return b1(l)?void 0:Io(l)},N1=ht,Ic=rt,Sa=Kn,Wc=TypeError,Ll={exports:{}},mA=re,hs=Object.defineProperty,O1=re,gE=function(a,A){try{hs(mA,a,{value:A,configurable:!0,writable:!0})}catch{mA[a]=A}return A},EE="__core-js_shared__",Ag=Ll.exports=O1[EE]||gE(EE,{});(Ag.versions||(Ag.versions=[])).push({version:"3.46.0",mode:"pure",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Ml=Ll.exports,Cd=Ml,pd=function(a,A){return Cd[a]||(Cd[a]=A||{})},uu=Oi,Up=Object,L1=function(a){return Up(uu(a))},La=L1,hI=Y({}.hasOwnProperty),ts=Object.hasOwn||function(a,A){return hI(La(a),A)},Xs=Y,xp=0,II=Math.random(),hE=Xs(1.1.toString),fd=function(a){return"Symbol("+(a===void 0?"":a)+")_"+hE(++xp+II,36)},kl=pd,cg=ts,_d=fd,lg=ua,FA=Ns,md=re.Symbol,Xc=kl("wks"),IE=FA?md.for||md:md&&md.withoutSetter||_d,vo=function(a){return cg(Xc,a)||(Xc[a]=lg&&cg(md,a)?md[a]:IE("Symbol."+a)),Xc[a]},Po=ht,dg=Kn,zh=D1,$h=u1,Zh=function(a,A){var l,g;if(Ic(l=a.toString)&&!Sa(g=N1(l,a))||Ic(l=a.valueOf)&&!Sa(g=N1(l,a))||A!=="string")return g;throw new Wc("Can't convert object to primitive value")},Bd=TypeError,o0=vo("toPrimitive"),dr=function(a,A){if(!dg(a)||zh(a))return a;var l,g=$h(a,o0);if(g){if(l=Po(g,a,A),!dg(l)||zh(l))return l;throw new Bd("Can't convert object to primitive value")}return Zh(a,A)},Ze=D1,Nt=function(a){var A=dr(a,"string");return Ze(A)?A:A+""},Rr=Kn,ti=re.document,Ui=Rr(ti)&&Rr(ti.createElement),hn=function(a){return Ui?ti.createElement(a):{}},Uo=hn,zs=!lt&&!f(function(){return Object.defineProperty(Uo("div"),"a",{get:function(){return 7}}).a!==7}),GA=lt,M1=ht,A0=vt,sA=yi,CT=gs,pT=Nt,fT=ts,_T=zs,c0=Object.getOwnPropertyDescriptor;ye.f=GA?c0:function(a,A){if(a=CT(a),A=pT(A),_T)try{return c0(a,A)}catch{}if(fT(a,A))return sA(!M1(A0.f,a,A),a[A])};var Fp=f,Be=rt,Re=/#|\.prototype\./,Ke=function(a,A){var l=gt[Ye(a)];return l===Er||l!==Mt&&(Be(A)?Fp(A):!!A)},Ye=Ke.normalize=function(a){return String(a).replace(Re,".").toLowerCase()},gt=Ke.data={},Mt=Ke.NATIVE="N",Er=Ke.POLYFILL="P",cr=Ke,Ei=dn,Ji=S,xi=Bt(Bt.bind),qn=function(a,A){return Ei(a),A===void 0?a:Ji?xi(a,A):function(){return a.apply(A,arguments)}},mn={},Gs=lt&&f(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),ga=Kn,zc=String,g1=TypeError,Do=function(a){if(ga(a))return a;throw new g1(zc(a)+" is not an object")},Xo=lt,_m=zs,l0=Gs,d0=Do,gu=Nt,u0=TypeError,CI=Object.defineProperty,mT=Object.getOwnPropertyDescriptor,BT="enumerable",Gp="configurable",Vp="writable";mn.f=Xo?l0?function(a,A,l){if(d0(a),A=gu(A),d0(l),typeof a=="function"&&A==="prototype"&&"value"in l&&Vp in l&&!l[Vp]){var g=mT(a,A);g&&g[Vp]&&(a[A]=l.value,l={configurable:Gp in l?l[Gp]:g[Gp],enumerable:BT in l?l[BT]:g[BT],writable:!1})}return CI(a,A,l)}:CI:function(a,A,l){if(d0(a),A=gu(A),d0(l),_m)try{return CI(a,A,l)}catch{}if("get"in l||"set"in l)throw new u0("Accessors not supported");return"value"in l&&(a[A]=l.value),a};var ST=mn,A8=yi,g0=lt?function(a,A,l){return ST.f(a,A,A8(1,l))}:function(a,A,l){return a[A]=l,a},Sd=re,Kp=_e,u8=Bt,E8=rt,h8=ye.f,I8=cr,pI=Tn,fI=qn,_I=g0,I0=ts,b9=function(a){var A=function(l,g,C){if(this instanceof A){switch(arguments.length){case 0:return new a;case 1:return new a(l);case 2:return new a(l,g)}return new a(l,g,C)}return Kp(a,this,arguments)};return A.prototype=a.prototype,A},wn=function(a,A){var l,g,C,m,y,w,b,M,k,V=a.target,K=a.global,q=a.stat,ce=a.proto,oe=K?Sd:q?Sd[V]:Sd[V]&&Sd[V].prototype,le=K?pI:pI[V]||_I(pI,V,{})[V],pe=le.prototype;for(m in A)g=!(l=I8(K?m:V+(q?".":"#")+m,a.forced))&&oe&&I0(oe,m),w=le[m],g&&(b=a.dontCallGetSet?(k=h8(oe,m))&&k.value:oe[m]),y=g&&b?b:A[m],(l||ce||typeof w!=typeof y)&&(M=a.bind&&g?fI(y,Sd):a.wrap&&g?b9(y):ce&&E8(y)?u8(y):y,(a.sham||y&&y.sham||w&&w.sham)&&_I(M,"sham",!0),_I(le,m,M),ce&&(I0(pI,C=V+"Prototype")||_I(pI,C,{}),_I(pI[C],m,y),a.real&&pe&&(l||!pe[m])&&_I(pe,m,y)))},In=Math.ceil,C8=Math.floor,f8=Math.trunc||function(a){var A=+a;return(A>0?C8:In)(A)},m8=f8,RT=function(a){var A=+a;return A!=A||A===0?0:m8(A)},yT=RT,R8=Math.max,y8=Math.min,QT=function(a,A){var l=yT(a);return l<0?R8(l+A,0):y8(l,A)},TT=RT,Q8=Math.min,N9=function(a){var A=TT(a);return A>0?Q8(A,9007199254740991):0},O9=N9,CE=function(a){return O9(a.length)},ug=gs,T8=QT,D8=CE,L9=function(a){return function(A,l,g){var C=ug(A),m=D8(C);if(m===0)return!a&&-1;var y,w=T8(g,m);if(a&&l!=l){for(;m>w;)if((y=C[w++])!=y)return!0}else for(;m>w;w++)if((a||w in C)&&C[w]===l)return a||w||0;return!a&&-1}},mm={includes:L9(!0),indexOf:L9(!1)},wT=mm.includes;wn({target:"Array",proto:!0,forced:f(function(){return!Array(1).includes()})},{includes:function(a){return wT(this,a,arguments.length>1?arguments[1]:void 0)}});var b8=re,O8=Tn,Cc=function(a,A){var l=O8[a+"Prototype"],g=l&&l[A];if(g)return g;var C=b8[a],m=C&&C.prototype;return m&&m[A]},k8=Cc("Array","includes"),P8=Kn,U8=Ge,x8=vo("match"),E1=function(a){var A;return P8(a)&&((A=a[x8])!==void 0?!!A:U8(a)==="RegExp")},K8=E1,Y8=TypeError,M9={};M9[vo("toStringTag")]="z";var vT=String(M9)==="[object z]",DT=vT,j8=rt,Bm=Ge,k9=vo("toStringTag"),bT=Object,q8=Bm(function(){return arguments}())==="Arguments",pE=DT?Bm:function(a){var A,l,g;return a===void 0?"Undefined":a===null?"Null":typeof(l=function(C,m){try{return C[m]}catch{}}(A=bT(a),k9))=="string"?l:q8?Bm(A):(g=Bm(A))==="Object"&&j8(A.callee)?"Arguments":g},Sm=pE,W8=String,k1=function(a){if(Sm(a)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return W8(a)},z8=vo("match"),fE=wn,Z8=function(a){if(K8(a))throw new Y8("The method doesn't accept regular expressions");return a},eG=Oi,h1=k1,tG=function(a){var A=/./;try{"/./"[a](A)}catch{try{return A[z8]=!1,"/./"[a](A)}catch{}}return!1},rG=Y("".indexOf);fE({target:"String",proto:!0,forced:!tG("includes")},{includes:function(a){return!!~rG(h1(eG(this)),h1(Z8(a)),arguments.length>1?arguments[1]:void 0)}});var iG=Cc("String","includes"),P9=j,U9=k8,nG=iG,NT=Array.prototype,OT=String.prototype,x9=function(a){var A=a.includes;return a===NT||P9(NT,a)&&A===NT.includes?U9:typeof a=="string"||a===OT||P9(OT,a)&&A===OT.includes?nG:A},Rt=I(x9),oG=dn,LT=L1,MT=ei,sG=CE,Et=TypeError,F9="Reduce of empty array with no initial value",aG=function(a){return function(A,l,g,C){var m=LT(A),y=MT(m),w=sG(m);if(oG(l),w===0&&g<2)throw new Et(F9);var b=0,M=1;if(g<2)for(;;){if(b in y){C=y[b],b+=M;break}if(b+=M,w<=b)throw new Et(F9)}for(;w>b;b+=M)b in y&&(C=l(C,y[b],b,m));return C}},AG={left:aG()},cG=f,Hp=function(a,A){var l=[][a];return!!l&&cG(function(){l.call(null,A||function(){return 1},1)})},mI=re,lG=Ct,dG=Ge,Rm=function(a){return lG.slice(0,a.length)===a},BI=Rm("Bun/")?"BUN":Rm("Cloudflare-Workers")?"CLOUDFLARE":Rm("Deno/")?"DENO":Rm("Node.js/")?"NODE":mI.Bun&&typeof Bun.version=="string"?"BUN":mI.Deno&&typeof Deno.version=="object"?"DENO":dG(mI.process)==="process"?"NODE":mI.window&&mI.document?"BROWSER":"REST",_E=BI==="NODE",uG=AG.left;wn({target:"Array",proto:!0,forced:!_E&&ro>79&&ro<83||!Hp("reduce")},{reduce:function(a){var A=arguments.length;return uG(this,a,A,A>1?arguments[1]:void 0)}});var gG=Cc("Array","reduce"),ym=j,kT=gG,SI=Array.prototype,EG=function(a){var A=a.reduce;return a===SI||ym(SI,a)&&A===SI.reduce?kT:A},G9=EG,$c=I(G9),hG=Ge,C0=Array.isArray||function(a){return hG(a)==="Array"},IG=wn,V9=C0,VA=Y([].reverse),K9=[1,2];IG({target:"Array",proto:!0,forced:String(K9)===String(K9.reverse())},{reverse:function(){return V9(this)&&(this.length=this.length),VA(this)}});var p0=Cc("Array","reverse"),CG=j,pG=p0,PT=Array.prototype,H9=function(a){var A=a.reverse;return a===PT||CG(PT,a)&&A===PT.reverse?pG:A},Y9=H9,j9=I(Y9),fG=fd,Qm=pd("keys"),Tm=function(a){return Qm[a]||(Qm[a]=fG(a))},J9=!f(function(){function a(){}return a.prototype.constructor=null,Object.getPrototypeOf(new a)!==a.prototype}),RI=ts,_G=rt,q9=L1,wm=J9,W9=Tm("IE_PROTO"),UT=Object,mG=UT.prototype,xT=wm?UT.getPrototypeOf:function(a){var A=q9(a);if(RI(A,W9))return A[W9];var l=A.constructor;return _G(l)&&A instanceof l?l.prototype:A instanceof UT?mG:null},BG=Y,X9=dn,FT=Kn,SG=function(a){return FT(a)||a===null},GT=String,RG=TypeError,yG=function(a,A,l){try{return BG(X9(Object.getOwnPropertyDescriptor(a,A)[l]))}catch{}},QG=Kn,TG=Oi,wG=function(a){if(SG(a))return a;throw new RG("Can't set "+GT(a)+" as a prototype")},vG=Object.setPrototypeOf||("__proto__"in{}?function(){var a,A=!1,l={};try{(a=yG(Object.prototype,"__proto__","set"))(l,[]),A=l instanceof Array}catch{}return function(g,C){return TG(g),wG(C),QG(g)&&(A?a(g,C):g.__proto__=C),g}}():void 0),vm={},Dm={},VT=ts,DG=gs,bG=mm.indexOf,bm=Dm,Yp=Y([].push),Nm=function(a,A){var l,g=DG(a),C=0,m=[];for(l in g)!VT(bm,l)&&VT(g,l)&&Yp(m,l);for(;A.length>C;)VT(g,l=A[C++])&&(~bG(m,l)||Yp(m,l));return m},KT=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],NG=Nm,OG=KT.concat("length","prototype");vm.f=Object.getOwnPropertyNames||function(a){return NG(a,OG)};var yI={};yI.f=Object.getOwnPropertySymbols;var z9=Es,HT=vm,LG=yI,MG=Do,jp=Y([].concat),kG=z9("Reflect","ownKeys")||function(a){var A=HT.f(MG(a)),l=LG.f;return l?jp(A,l(a)):A},$9=ts,PG=kG,UG=ye,xG=mn,YT={},Z9=Nm,FG=KT,Om=Object.keys||function(a){return Z9(a,FG)},GG=lt,jT=Gs,VG=mn,KG=Do,Lm=gs,HG=Om;YT.f=GG&&!jT?Object.defineProperties:function(a,A){KG(a);for(var l,g=Lm(A),C=HG(A),m=C.length,y=0;m>y;)VG.f(a,l=C[y++],g[l]);return a};var Mm,eL=Es("document","documentElement"),YG=Do,jG=YT,tL=KT,km=Dm,iL=eL,JG=hn,JT="prototype",Pm="script",oL=Tm("IE_PROTO"),qT=function(){},sL=function(a){return"<"+Pm+">"+a+""},Um=function(a){a.write(sL("")),a.close();var A=a.parentWindow.Object;return a=null,A},QI=function(){try{Mm=new ActiveXObject("htmlfile")}catch{}var a,A,l;QI=typeof document<"u"?document.domain&&Mm?Um(Mm):(A=JG("iframe"),l="java"+Pm+":",A.style.display="none",iL.appendChild(A),A.src=String(l),(a=A.contentWindow.document).open(),a.write(sL("document.F=Object")),a.close(),a.F):Um(Mm);for(var g=tL.length;g--;)delete QI[JT][tL[g]];return QI()};km[oL]=!0;var TI=Object.create||function(a,A){var l;return a!==null?(qT[JT]=YG(a),l=new qT,qT[JT]=null,l[oL]=a):l=QI(),A===void 0?l:jG.f(l,A)},WT=Kn,AL=g0,XT=Error,xm=Y("".replace),Jp=String(new XT("zxcasd").stack),lL=/\n\s*at [^:]*:[^\n]*/,qG=lL.test(Jp),gL=yi,WG=!f(function(){var a=new Error("a");return!("stack"in a)||(Object.defineProperty(a,"stack",gL(1,7)),a.stack!==7)}),XG=g0,EL=function(a,A){if(qG&&typeof a=="string"&&!XT.prepareStackTrace)for(;A--;)a=xm(a,lL,"");return a},zG=WG,IL=Error.captureStackTrace,wI={},$G=wI,ZG=vo("iterator"),eV=Array.prototype,zT=function(a){return a!==void 0&&($G.Array===a||eV[ZG]===a)},vI=pE,CL=u1,tV=_i,rV=wI,fL=vo("iterator"),Fm=function(a){if(!tV(a))return CL(a,fL)||CL(a,"@@iterator")||rV[vI(a)]},mL=ht,iV=dn,nV=Do,oV=xA,qp=Fm,sV=TypeError,$T=function(a,A){var l=arguments.length<2?qp(a):A;if(iV(l))return nV(mL(l,a));throw new sV(oV(a)+" is not iterable")},aV=ht,BL=Do,AV=u1,RL=function(a,A,l){var g,C;BL(a);try{if(!(g=AV(a,"return"))){if(A==="throw")throw l;return l}g=aV(g,a)}catch(m){C=!0,g=m}if(A==="throw")throw l;if(C)throw g;return BL(g),l},ZT=qn,cV=ht,yL=Do,lV=xA,ew=zT,dV=CE,QL=j,uV=$T,gV=Fm,wL=RL,EV=TypeError,Wp=function(a,A){this.stopped=a,this.result=A},vL=Wp.prototype,Xp=function(a,A,l){var g,C,m,y,w,b,M,k=l&&l.that,V=!(!l||!l.AS_ENTRIES),K=!(!l||!l.IS_RECORD),q=!(!l||!l.IS_ITERATOR),ce=!(!l||!l.INTERRUPTED),oe=ZT(A,k),le=function(Se){return g&&wL(g,"normal"),new Wp(!0,Se)},pe=function(Se){return V?(yL(Se),ce?oe(Se[0],Se[1],le):oe(Se[0],Se[1])):ce?oe(Se,le):oe(Se)};if(K)g=a.iterator;else if(q)g=a;else{if(!(C=gV(a)))throw new EV(lV(a)+" is not iterable");if(ew(C)){for(m=0,y=dV(a);y>m;m++)if((w=pe(a[m]))&&QL(vL,w))return w;return new Wp(!1)}g=uV(a,C)}for(b=K?a.next:g.next;!(M=cV(b,g)).done;){try{w=pe(M.value)}catch(Se){wL(g,"throw",Se)}if(typeof w=="object"&&w&&QL(vL,w))return w}return new Wp(!1)},DL=k1,hV=wn,Gm=j,bL=xT,mE=vG,IV=function(a,A,l){for(var g=PG(A),C=xG.f,m=UG.f,y=0;y2&&Vm(l,arguments[2]);var C=[];return OL(a,pV,{that:C}),tw(l,"errors",C),l};mE?mE(DI,Km):IV(DI,Km,{name:!0});var ow=DI.prototype=NL(Km.prototype,{constructor:rw(1,DI),message:rw(1,""),name:rw(1,"AggregateError")});hV({global:!0},{AggregateError:DI});var Hm,BE,Ym,bI=rt,jm=re.WeakMap,Jm=bI(jm)&&/native code/.test(String(jm)),NI=re,qm=Kn,fV=g0,Wm=ts,sw=Ml,LL=Tm,_V=Dm,ML="Object already initialized",zp=NI.TypeError,aw=NI.WeakMap;if(Jm||sw.state){var Eu=sw.state||(sw.state=new aw);Eu.get=Eu.get,Eu.has=Eu.has,Eu.set=Eu.set,Hm=function(a,A){if(Eu.has(a))throw new zp(ML);return A.facade=a,Eu.set(a,A),A},BE=function(a){return Eu.get(a)||{}},Ym=function(a){return Eu.has(a)}}else{var OI=LL("state");_V[OI]=!0,Hm=function(a,A){if(Wm(a,OI))throw new zp(ML);return A.facade=a,fV(a,OI,A),A},BE=function(a){return Wm(a,OI)?a[OI]:{}},Ym=function(a){return Wm(a,OI)}}var SE,Xm,kL,I1={set:Hm,get:BE,has:Ym,enforce:function(a){return Ym(a)?BE(a):Hm(a,{})},getterFor:function(a){return function(A){var l;if(!qm(A)||(l=BE(A)).type!==a)throw new zp("Incompatible receiver, "+a+" required");return l}}},RE=lt,f0=ts,Aw=Function.prototype,PL=RE&&Object.getOwnPropertyDescriptor,gg=f0(Aw,"name"),zm={PROPER:gg&&(function(){}).name==="something",CONFIGURABLE:gg&&(!RE||RE&&PL(Aw,"name").configurable)},mV=g0,Eg=function(a,A,l,g){return g&&g.enumerable?a[A]=l:mV(a,A,l),a},BV=f,UL=rt,xL=Kn,SV=TI,hg=xT,RV=Eg,cw=vo("iterator"),FL=!1;[].keys&&("next"in(kL=[].keys())?(Xm=hg(hg(kL)))!==Object.prototype&&(SE=Xm):FL=!0);var yV=!xL(SE)||BV(function(){var a={};return SE[cw].call(a)!==a});UL((SE=yV?{}:SV(SE))[cw])||RV(SE,cw,function(){return this});var lw={IteratorPrototype:SE,BUGGY_SAFARI_ITERATORS:FL},QV=pE,dw=vT?{}.toString:function(){return"[object "+QV(this)+"]"},GL=vT,TV=mn.f,VL=g0,wV=ts,vV=dw,KL=vo("toStringTag"),Ig=function(a,A,l,g){var C=l?a:a&&a.prototype;C&&(wV(C,KL)||TV(C,KL,{configurable:!0,value:A}),g&&!GL&&VL(C,"toString",vV))},DV=lw.IteratorPrototype,bV=TI,NV=yi,HL=Ig,Cg=wI,OV=function(){return this},uw=function(a,A,l,g){var C=A+" Iterator";return a.prototype=bV(DV,{next:NV(+!g,l)}),HL(a,C,!1,!0),Cg[C]=OV,a},LV=wn,MV=ht,kV=zm,PV=uw,gw=xT,UV=Ig,YL=Eg,jL=wI,xV=lw,FV=kV.PROPER,$m=xV.BUGGY_SAFARI_ITERATORS,Zm=vo("iterator"),Ew="keys",eB="values",JL="entries",tB=function(){return this},rB=function(a,A,l,g,C,m,y){PV(l,A,g);var w,b,M,k=function(pe){if(pe===C&&oe)return oe;if(!$m&&pe&&pe in q)return q[pe];switch(pe){case Ew:case eB:case JL:return function(){return new l(this,pe)}}return function(){return new l(this)}},V=A+" Iterator",K=!1,q=a.prototype,ce=q[Zm]||q["@@iterator"]||C&&q[C],oe=!$m&&ce||k(C),le=A==="Array"&&q.entries||ce;if(le&&(w=gw(le.call(new a)))!==Object.prototype&&w.next&&(UV(w,V,!0,!0),jL[V]=tB),FV&&C===eB&&ce&&ce.name!==eB&&(K=!0,oe=function(){return MV(ce,this)}),C)if(b={values:k(eB),keys:m?oe:k(Ew),entries:k(JL)},y)for(M in b)($m||K||!(M in q))&&YL(q,M,b[M]);else LV({target:A,proto:!0,forced:$m||K},b);return y&&q[Zm]!==oe&&YL(q,Zm,oe,{}),jL[A]=oe,b},$p=function(a,A){return{value:a,done:A}},iB=gs,hw=wI,qL=I1;mn.f;var WL=rB,_0=$p,XL="Array Iterator",zL=qL.set,$L=qL.getterFor(XL);WL(Array,"Array",function(a,A){zL(this,{type:XL,target:iB(a),index:0,kind:A})},function(){var a=$L(this),A=a.target,l=a.index++;if(!A||l>=A.length)return a.target=null,_0(void 0,!0);switch(a.kind){case"keys":return _0(l,!1);case"values":return _0(A[l],!1)}return _0([l,A[l]],!1)},"values"),hw.Arguments=hw.Array;var GV=mn,m0=function(a,A,l){return GV.f(a,A,l)},ZL=Es,VV=m0,KV=lt,eM=vo("species"),nB=j,HV=TypeError,Iw=function(a,A){if(nB(A,a))return a;throw new HV("Incorrect invocation")},YV=rt,oB=Ml,jV=Y(Function.toString);YV(oB.inspectSource)||(oB.inspectSource=function(a){return jV(a)});var tM=oB.inspectSource,Cw=Y,JV=f,sB=rt,qV=pE,rM=tM,iM=function(){},nM=Es("Reflect","construct"),aB=/^\s*(?:class|function)\b/,WV=Cw(aB.exec),XV=!aB.test(iM),LI=function(a){if(!sB(a))return!1;try{return nM(iM,[],a),!0}catch{return!1}},pw=function(a){if(!sB(a))return!1;switch(qV(a)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return XV||!!WV(aB,rM(a))}catch{return!0}};pw.sham=!0;var B0,MI,oM,S0,Zp=!nM||JV(function(){var a;return LI(LI.call)||!LI(Object)||!LI(function(){a=!0})||a})?pw:LI,r3=Zp,kI=xA,sM=TypeError,AB=Do,cB=function(a){if(r3(a))return a;throw new sM(kI(a)+" is not a constructor")},zV=_i,$V=vo("species"),fw=function(a,A){var l,g=AB(a).constructor;return g===void 0||zV(l=AB(g)[$V])?A:cB(l)},pg=Y([].slice),ZV=TypeError,R0=function(a,A){if(a1?JK(arguments,1):[],l=qK.f(this),g=Zw(function(){return jK(WK(a),void 0,A)});return(g.error?l.reject:l.resolve)(g.value),l.promise}});var XK=Pl;wn({target:"Promise",stat:!0},{withResolvers:function(){var a=XK.f(this);return{promise:a.promise,resolve:a.resolve,reject:a.reject}}});var zK=wn,tv=hu,VM=f,rv=Es,KM=rt,$K=fw,HM=UM,iv=tv&&tv.prototype;zK({target:"Promise",proto:!0,real:!0,forced:!!tv&&VM(function(){iv.finally.call({then:function(){}},function(){})})},{finally:function(a){var A=$K(this,rv("Promise")),l=KM(a);return this.then(l?function(g){return HM(A,a()).then(function(){return g})}:a,l?function(g){return HM(A,a()).then(function(){throw g})}:a)}});var nv=Y,ZK=RT,eH=k1,tH=Oi,YM=nv("".charAt),jM=nv("".charCodeAt),ov=nv("".slice),JM=function(a){return function(A,l){var g,C,m=eH(tH(A)),y=ZK(l),w=m.length;return y<0||y>=w?a?"":void 0:(g=jM(m,y))<55296||g>56319||y+1===w||(C=jM(m,y+1))<56320||C>57343?a?YM(m,y):g:a?ov(m,y,y+2):C-56320+(g-55296<<10)+65536}},sv={codeAt:JM(!1),charAt:JM(!0)},rH=sv.charAt,iH=k1,av=I1,nH=rB,Av=$p,bB="String Iterator",oH=av.set,sH=av.getterFor(bB);nH(String,"String",function(a){oH(this,{type:bB,string:iH(a),index:0})},function(){var a,A=sH(this),l=A.string,g=A.index;return g>=l.length?Av(void 0,!0):(a=rH(l,g),A.index+=a.length,Av(a,!1))});var qM=Tn.Promise,aH={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},WM=re,XM=Ig,zM=wI;for(var cv in aH)XM(WM[cv],cv),zM[cv]=zM.Array;var $M=qM,Ft=I($M),AH=Cc("Array","values"),cH=pE,ZM=ts,lv=j,e6=AH,Ut=Array.prototype,lH={DOMTokenList:!0,NodeList:!0},dH=function(a){var A=a.values;return a===Ut||lv(Ut,a)&&A===Ut.values||ZM(lH,cH(a))?e6:A},U1=I(dH),t6=xA,uH=TypeError,NB=pg,gH=Math.floor,dv=function(a,A){var l=a.length;if(l<8)for(var g,C,m=1;m0;)a[C]=a[--C];C!==m++&&(a[C]=g)}else for(var y=gH(l/2),w=dv(NB(a,0,y),A),b=dv(NB(a,y),A),M=w.length,k=b.length,V=0,K=0;V3)){if(_H)return!0;if(LB)return LB<603;var a,A,l,g,C="";for(a=65;a<76;a++){switch(A=String.fromCharCode(a),a){case 66:case 69:case 70:case 72:l=3;break;case 68:case 71:l=4;break;default:l=2}for(g=0;g<47;g++)OE.push({k:A+g,v:l})}for(OE.sort(function(m,y){return y.v-m.v}),g=0;go6(b)?1:-1}}(a)),l=hv(C),g=0;gC;){if(A=+arguments[C++],TH(A,1114111)!==A)throw new fv(A+" is not a valid code point");l[C]=A<65536?d6(A):d6(55296+((A-=65536)>>10),A%1024+56320)}return wH(l,"")}});var vH=f,DH=vo("iterator"),MB=!vH(function(){var a=new URL("b?a=1&b=2&c=3","https://a"),A=a.searchParams,l=new URLSearchParams("a=1&a=2&b=3"),g="";return a.pathname="c%20d",A.forEach(function(C,m){A.delete("b"),g+=m+C}),l.delete("a",2),l.delete("b",void 0),!a.toJSON||!l.has("a",1)||l.has("a",2)||!l.has("a",void 0)||l.has("b")||!A.size&&!0||!A.sort||a.href!=="https://a/c%20d?a=1&c=3"||A.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!A[DH]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://тест").host!=="xn--e1aybc"||new URL("https://a#б").hash!=="#%D0%B1"||g!=="a1c3"||new URL("https://x",void 0).host!=="x"}),u6=Eg,kB=wn,g6=re,_v=ww,bH=Es,b0=ht,yd=Y,N0=lt,mv=MB,PB=Eg,NH=m0,UB=function(a,A,l){for(var g in A)l&&l.unsafe&&a[g]?a[g]=A[g]:u6(a,g,A[g],l);return a},Qd=Ig,d3=uw,xB=I1,Bv=Iw,Sv=rt,OH=ts,LH=qn,MH=pE,Rv=Do,yv=Kn,KA=k1,kH=TI,E6=yi,h6=$T,PH=Fm,u3=$p,za=R0,UH=BA,I6=vo("iterator"),O0="URLSearchParams",C6=O0+"Iterator",g3=xB.set,HA=xB.getterFor(O0),xH=xB.getterFor(C6),p6=_v("fetch"),mg=_v("Request"),YI=_v("Headers"),FB=mg&&mg.prototype,Zc=YI&&YI.prototype,FH=g6.TypeError,f6=g6.encodeURIComponent,GB=String.fromCharCode,E3=bH("String","fromCodePoint"),Qv=parseInt,h3=yd("".charAt),_6=yd([].join),ME=yd([].push),m6=yd("".replace),GH=yd([].shift),B6=yd([].splice),I3=yd("".split),Tv=yd("".slice),kE=yd(/./.exec),S6=/\+/g,VH=/^[0-9a-f]+$/i,wv=function(a,A){var l=Tv(a,A,A+2);return kE(VH,l)?Qv(l,16):NaN},R6=function(a){for(var A=0,l=128;l>0&&a&l;l>>=1)A++;return A},y6=function(a){var A=null;switch(a.length){case 1:A=a[0];break;case 2:A=(31&a[0])<<6|63&a[1];break;case 3:A=(15&a[0])<<12|(63&a[1])<<6|63&a[2];break;case 4:A=(7&a[0])<<18|(63&a[1])<<12|(63&a[2])<<6|63&a[3]}return A>1114111?null:A},T6=function(a){for(var A=(a=m6(a,S6," ")).length,l="",g=0;gA){l+="%",g++;continue}var m=wv(a,g+1);if(m!=m){l+=C,g++;continue}g+=2;var y=R6(m);if(y===0)C=GB(m);else{if(y===1||y>4){l+="�",g++;continue}for(var w=[m],b=1;bA||h3(a,g)!=="%");){var M=wv(a,g+1);if(M!=M){g+=3;break}if(M>191||M<128)break;ME(w,M),g+=2,b++}if(w.length!==y){l+="�";continue}var k=y6(w);k===null?l+="�":C=E3(k)}}l+=C,g++}return l},KH=/[!'()~]|%20/g,HH={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},w6=function(a){return HH[a]},v6=function(a){return m6(f6(a),KH,w6)},vv=d3(function(a,A){g3(this,{type:C6,target:HA(a).entries,index:0,kind:A})},O0,function(){var a=xH(this),A=a.target,l=a.index++;if(!A||l>=A.length)return a.target=null,u3(void 0,!0);var g=A[l];switch(a.kind){case"keys":return u3(g.key,!1);case"values":return u3(g.value,!1)}return u3([g.key,g.value],!1)},!0),Dv=function(a){this.entries=[],this.url=null,a!==void 0&&(yv(a)?this.parseObject(a):this.parseQuery(typeof a=="string"?h3(a,0)==="?"?Tv(a,1):a:KA(a)))};Dv.prototype={type:O0,bindURL:function(a){this.url=a,this.update()},parseObject:function(a){var A,l,g,C,m,y,w,b=this.entries,M=PH(a);if(M)for(l=(A=h6(a,M)).next;!(g=b0(l,A)).done;){if(m=(C=h6(Rv(g.value))).next,(y=b0(m,C)).done||(w=b0(m,C)).done||!b0(m,C).done)throw new FH("Expected sequence with length 2");ME(b,{key:KA(y.value),value:KA(w.value)})}else for(var k in a)OH(a,k)&&ME(b,{key:k,value:KA(a[k])})},parseQuery:function(a){if(a)for(var A,l,g=this.entries,C=I3(a,"&"),m=0;m0?arguments[0]:void 0));N0||(this.size=a.entries.length)},jI=VB.prototype;if(UB(jI,{append:function(a,A){var l=HA(this);za(arguments.length,2),ME(l.entries,{key:KA(a),value:KA(A)}),N0||this.length++,l.updateURL()},delete:function(a){for(var A=HA(this),l=za(arguments.length,1),g=A.entries,C=KA(a),m=l<2?void 0:arguments[1],y=m===void 0?m:KA(m),w=0;wl.key?1:-1}),a.updateURL()},forEach:function(a){for(var A,l=HA(this).entries,g=LH(a,arguments.length>1?arguments[1]:void 0),C=0;C1?KB(arguments[1]):{})}}),Sv(mg)){var HB=function(a){return Bv(this,FB),new mg(a,arguments.length>1?KB(arguments[1]):{})};FB.constructor=HB,HB.prototype=FB,kB({global:!0,dontCallGetSet:!0,forced:!0},{Request:HB})}}var F1,JI={URLSearchParams:VB,getState:HA},jH=Tn.URLSearchParams,b6=lt,N6=Y,bv=ht,Ul=f,Nv=Om,JH=yI,O6=vt,qH=L1,WH=ei,qI=Object.assign,YB=Object.defineProperty,XH=N6([].concat),zH=!qI||Ul(function(){if(b6&&qI({b:1},qI(YB({},"a",{enumerable:!0,get:function(){YB(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var a={},A={},l=Symbol("assign detection"),g="abcdefghijklmnopqrst";return a[l]=7,g.split("").forEach(function(C){A[C]=C}),qI({},a)[l]!==7||Nv(qI({},A)).join("")!==g})?function(a,A){for(var l=qH(a),g=arguments.length,C=1,m=JH.f,y=O6.f;g>C;)for(var w,b=WH(arguments[C++]),M=m?XH(Nv(b),m(b)):Nv(b),k=M.length,V=0;k>V;)w=M[V++],b6&&!bv(y,b,w)||(l[w]=b[w]);return l}:qI,$H=Do,ZH=RL,WI=lt,L6=mn,eY=yi,Ov=function(a,A,l){WI?L6.f(a,A,eY(0,l)):a[A]=l},rY=qn,iY=ht,nY=L1,oY=function(a,A,l,g){try{return g?A($H(l)[0],l[1]):A(l)}catch(C){ZH(a,"throw",C)}},sY=zT,jB=Zp,AY=CE,M6=Ov,lY=$T,dY=Fm,C3=Array,L0=Y,Lv=2147483647,gY=/[^\0-\u007E]/,k6=/[.\u3002\uFF0E\uFF61]/g,P6="Overflow: input needs wider integers to process",U6=RangeError,EY=L0(k6.exec),M0=Math.floor,Mv=String.fromCharCode,x6=L0("".charCodeAt),F6=L0([].join),PE=L0([].push),G6=L0("".replace),V6=L0("".split),k0=L0("".toLowerCase),JB=function(a){return a+22+75*(a<26)},hY=function(a,A,l){var g=0;for(a=l?M0(a/700):a>>1,a+=M0(a/A);a>455;)a=M0(a/35),g+=36;return M0(g+36*a/(a+38))},K6=function(a){var A=[];a=function(pe){for(var Se=[],be=0,Ue=pe.length;be=55296&&xe<=56319&&be=m&&gM0((Lv-y)/V))throw new U6(P6);for(y+=(k-m)*V,m=k,l=0;lLv)throw new U6(P6);if(g===m){for(var K=y,q=36;;){var ce=q<=w?1:q>=w+26?26:q-w;if(K1?arguments[1]:void 0,m=C!==void 0;m&&(C=rY(C,g>2?arguments[2]:void 0));var y,w,b,M,k,V,K=dY(A),q=0;if(!K||this===C3&&sY(K))for(y=AY(A),w=l?new this(y):C3(y);y>q;q++)V=m?C(A[q],q):A[q],M6(w,q,V);else for(w=l?new this:[],k=(M=lY(A,K)).next;!(b=iY(k,M)).done;q++)V=m?oY(M,C,[b.value,q],!0):b.value,M6(w,q,V);return w.length=q,w},Td=pg,pY=sv.codeAt,_Y=function(a){var A,l,g=[],C=V6(G6(k0(a),k6,"."),".");for(A=0;A?@[\\\]^|]/,W6=/[\0\t\n\r #/:<>?@[\\\]^|]/,tC=/^[\u0000-\u0020]+/,eS=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,NY=/[\t\n\r]/g,x0=function(a){var A,l,g,C;if(typeof a=="number"){for(A=[],l=0;l<4;l++)wY(A,a%256),a=RY(a/256);return f3(A,".")}if(typeof a=="object"){for(A="",g=function(m){for(var y=null,w=1,b=null,M=0,k=0;k<8;k++)m[k]!==0?(M>w&&(y=b,w=M),b=null,M=0):(b===null&&(b=k),++M);return M>w?b:y}(a),l=0;l<8;l++)C&&a[l]===0||(C&&(C=!1),g===l?(A+=l?":":"::",C=!0):(A+=j6(a[l],16),l<7&&(A+=":")));return"["+A+"]"}return a},Iu={},Fv=Pv({},Iu,{" ":1,'"':1,"<":1,">":1,"`":1}),Gv=Pv({},Fv,{"#":1,"?":1,"{":1,"}":1}),Vv=Pv({},Gv,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Cu=function(a,A){var l=pY(a,0);return l>32&&l<127&&!kv(A,a)?a:encodeURIComponent(a)},m3={ftp:21,file:null,http:80,https:443,ws:80,wss:443},B3=function(a,A){var l;return a.length===2&&vd(xl,$a(a,0))&&((l=$a(a,1))===":"||!A&&l==="|")},Kv=function(a){var A;return a.length>1&&B3(Sg(a,0,2))&&(a.length===2||(A=$a(a,2))==="/"||A==="\\"||A==="?"||A==="#")},Hv=function(a){return a==="."||$I(a)==="%2e"},Yv={},X6={},jv={},z6={},ek={},F0={},S3={},Jv={},tS={},R3={},rS={},y3={},pu={},rC={},iC={},iS={},nC={},Fl={},qv={},Rg={},fu={},nS=function(a,A,l){var g,C,m,y=wd(a);if(A){if(C=this.parse(y))throw new xE(C);this.searchParams=null}else{if(l!==void 0&&(g=new nS(l,!0)),C=this.parse(y,null,g))throw new xE(C);(m=$B(new BY)).bindURL(this),this.searchParams=m}};nS.prototype={type:"URL",parse:function(a,A,l){var g,C,m,y,w,b=this,M=A||Yv,k=0,V="",K=!1,q=!1,ce=!1;for(a=wd(a),A||(b.scheme="",b.username="",b.password="",b.host=null,b.port=null,b.path=[],b.query=null,b.fragment=null,b.cannotBeABaseURL=!1,a=zI(a,tC,""),a=zI(a,eS,"$1")),a=zI(a,NY,""),g=P0(a);k<=g.length;){switch(C=g[k],M){case Yv:if(!C||!vd(xl,C)){if(A)return ZI;M=jv;continue}V+=$I(C),M=X6;break;case X6:if(C&&(vd(_c,C)||C==="+"||C==="-"||C==="."))V+=$I(C);else{if(C!==":"){if(A)return ZI;V="",M=jv,k=0;continue}if(A&&(b.isSpecial()!==kv(m3,V)||V==="file"&&(b.includesCredentials()||b.port!==null)||b.scheme==="file"&&!b.host))return;if(b.scheme=V,A)return void(b.isSpecial()&&m3[b.scheme]===b.port&&(b.port=null));V="",b.scheme==="file"?M=rC:b.isSpecial()&&l&&l.scheme===b.scheme?M=z6:b.isSpecial()?M=Jv:g[k+1]==="/"?(M=ek,k++):(b.cannotBeABaseURL=!0,XI(b.path,""),M=qv)}break;case jv:if(!l||l.cannotBeABaseURL&&C!=="#")return ZI;if(l.cannotBeABaseURL&&C==="#"){b.scheme=l.scheme,b.path=Td(l.path),b.query=l.query,b.fragment="",b.cannotBeABaseURL=!0,M=fu;break}M=l.scheme==="file"?rC:F0;continue;case z6:if(C!=="/"||g[k+1]!=="/"){M=F0;continue}M=tS,k++;break;case ek:if(C==="/"){M=R3;break}M=Fl;continue;case F0:if(b.scheme=l.scheme,C===F1)b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.query=l.query;else if(C==="/"||C==="\\"&&b.isSpecial())M=S3;else if(C==="?")b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.query="",M=Rg;else{if(C!=="#"){b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.path.length--,M=Fl;continue}b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.query=l.query,b.fragment="",M=fu}break;case S3:if(!b.isSpecial()||C!=="/"&&C!=="\\"){if(C!=="/"){b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,M=Fl;continue}M=R3}else M=tS;break;case Jv:if(M=tS,C!=="/"||$a(V,k+1)!=="/")continue;k++;break;case tS:if(C!=="/"&&C!=="\\"){M=R3;continue}break;case R3:if(C==="@"){K&&(V="%40"+V),K=!0,m=P0(V);for(var oe=0;oe65535)return xv;b.port=b.isSpecial()&&Se===m3[b.scheme]?null:Se,V=""}if(A)return;M=nC;continue}return xv}V+=C;break;case rC:if(b.scheme="file",C==="/"||C==="\\")M=iC;else{if(!l||l.scheme!=="file"){M=Fl;continue}switch(C){case F1:b.host=l.host,b.path=Td(l.path),b.query=l.query;break;case"?":b.host=l.host,b.path=Td(l.path),b.query="",M=Rg;break;case"#":b.host=l.host,b.path=Td(l.path),b.query=l.query,b.fragment="",M=fu;break;default:Kv(f3(Td(g,k),""))||(b.host=l.host,b.path=Td(l.path),b.shortenPath()),M=Fl;continue}}break;case iC:if(C==="/"||C==="\\"){M=iS;break}l&&l.scheme==="file"&&!Kv(f3(Td(g,k),""))&&(B3(l.path[0],!0)?XI(b.path,l.path[0]):b.host=l.host),M=Fl;continue;case iS:if(C===F1||C==="/"||C==="\\"||C==="?"||C==="#"){if(!A&&B3(V))M=Fl;else if(V===""){if(b.host="",A)return;M=nC}else{if(y=b.parseHost(V))return y;if(b.host==="localhost"&&(b.host=""),A)return;V="",M=nC}continue}V+=C;break;case nC:if(b.isSpecial()){if(M=Fl,C!=="/"&&C!=="\\")continue}else if(A||C!=="?")if(A||C!=="#"){if(C!==F1&&(M=Fl,C!=="/"))continue}else b.fragment="",M=fu;else b.query="",M=Rg;break;case Fl:if(C===F1||C==="/"||C==="\\"&&b.isSpecial()||!A&&(C==="?"||C==="#")){if((w=$I(w=V))===".."||w==="%2e."||w===".%2e"||w==="%2e%2e"?(b.shortenPath(),C==="/"||C==="\\"&&b.isSpecial()||XI(b.path,"")):Hv(V)?C==="/"||C==="\\"&&b.isSpecial()||XI(b.path,""):(b.scheme==="file"&&!b.path.length&&B3(V)&&(b.host&&(b.host=""),V=$a(V,0)+":"),XI(b.path,V)),V="",b.scheme==="file"&&(C===F1||C==="?"||C==="#"))for(;b.path.length>1&&b.path[0]==="";)yY(b.path);C==="?"?(b.query="",M=Rg):C==="#"&&(b.fragment="",M=fu)}else V+=Cu(C,Gv);break;case qv:C==="?"?(b.query="",M=Rg):C==="#"?(b.fragment="",M=fu):C!==F1&&(b.path[0]+=Cu(C,Iu));break;case Rg:A||C!=="#"?C!==F1&&(C==="'"&&b.isSpecial()?b.query+="%27":b.query+=C==="#"?"%23":Cu(C,Iu)):(b.fragment="",M=fu);break;case fu:C!==F1&&(b.fragment+=Cu(C,Fv))}k++}},parseHost:function(a){var A,l,g;if($a(a,0)==="["){if($a(a,a.length-1)!=="]"||(A=function(C){var m,y,w,b,M,k,V,K=[0,0,0,0,0,0,0,0],q=0,ce=null,oe=0,le=function(){return $a(C,oe)};if(le()===":"){if($a(C,1)!==":")return;oe+=2,ce=++q}for(;le();){if(q===8)return;if(le()!==":"){for(m=y=0;y<4&&vd(ZB,le());)m=16*m+fc(le(),16),oe++,y++;if(le()==="."){if(y===0||(oe-=y,q>6))return;for(w=0;le();){if(b=null,w>0){if(!(le()==="."&&w<4))return;oe++}if(!vd(U0,le()))return;for(;vd(U0,le());){if(M=fc(le(),10),b===null)b=M;else{if(b===0)return;b=10*b+M}if(b>255)return;oe++}K[q]=256*K[q]+b,++w!=2&&w!==4||q++}if(w!==4)return;break}if(le()===":"){if(oe++,!le())return}else if(le())return;K[q++]=m}else{if(ce!==null)return;oe++,ce=++q}}if(ce!==null)for(k=q-ce,q=7;q!==0&&k>0;)V=K[q],K[q--]=K[ce+k-1],K[ce+--k]=V;else if(q!==8)return;return K}(Sg(a,1,-1)),!A))return _3;this.host=A}else if(this.isSpecial()){if(a=_Y(a),vd(bY,a)||(A=function(C){var m,y,w,b,M,k,V,K=QY(C,".");if(K.length&&K[K.length-1]===""&&K.length--,(m=K.length)>4)return C;for(y=[],w=0;w1&&$a(b,0)==="0"&&(M=vd(vY,b)?16:8,b=Sg(b,M===8?1:2)),b==="")k=0;else{if(!vd(M===10?eC:M===8?DY:ZB,b))return C;k=fc(b,M)}XI(y,k)}for(w=0;w=Y6(256,5-m))return null}else if(k>255)return null;for(V=q6(y),w=0;w1?arguments[1]:void 0,g=zB(A,new nS(a,!1,l));qB||(A.href=g.serialize(),A.origin=g.getOrigin(),A.protocol=g.getProtocol(),A.username=g.getUsername(),A.password=g.getPassword(),A.host=g.getHost(),A.hostname=g.getHostname(),A.port=g.getPort(),A.pathname=g.getPathname(),A.search=g.getSearch(),A.searchParams=g.getSearchParams(),A.hash=g.getHash())},C1=FE.prototype,rl=function(a,A){return{get:function(){return G1(this)[a]()},set:A&&function(l){return G1(this)[A](l)},configurable:!0,enumerable:!0}};if(qB&&(aA(C1,"href",rl("serialize","setHref")),aA(C1,"origin",rl("getOrigin")),aA(C1,"protocol",rl("getProtocol","setProtocol")),aA(C1,"username",rl("getUsername","setUsername")),aA(C1,"password",rl("getPassword","setPassword")),aA(C1,"host",rl("getHost","setHost")),aA(C1,"hostname",rl("getHostname","setHostname")),aA(C1,"port",rl("getPort","setPort")),aA(C1,"pathname",rl("getPathname","setPathname")),aA(C1,"search",rl("getSearch","setSearch")),aA(C1,"searchParams",rl("getSearchParams")),aA(C1,"hash",rl("getHash","setHash"))),p3(C1,"toJSON",function(){return G1(this).serialize()},{enumerable:!0}),p3(C1,"toString",function(){return G1(this).serialize()},{enumerable:!0}),Bg){var T3=Bg.createObjectURL,w3=Bg.revokeObjectURL;T3&&p3(FE,"createObjectURL",WB(T3,Bg)),w3&&p3(FE,"revokeObjectURL",WB(w3,Bg))}mY(FE,"URL"),H6({global:!0,forced:!IY,sham:!qB},{URL:FE});var Wv=wn,oS=f,Xv=R0,AS=k1,tk=MB,v3=Es("URL"),oC=tk&&oS(function(){v3.canParse()}),_u=oS(function(){return v3.canParse.length!==1});Wv({target:"URL",stat:!0,forced:!oC||_u},{canParse:function(a){var A=Xv(arguments.length,1),l=AS(a),g=A<2||arguments[1]===void 0?void 0:AS(arguments[1]);try{return!!new v3(l,g)}catch{return!1}}});var rk=wn,G0=R0,mu=k1,zv=MB,sC=Es("URL");rk({target:"URL",stat:!0,forced:!zv},{parse:function(a){var A=G0(arguments.length,1),l=mu(a),g=A<2||arguments[1]===void 0?void 0:mu(arguments[1]);try{return new sC(l,g)}catch{return null}}});var SA=I(Tn.URL);let il=!0,$v=!0;function D3(a,A,l){let g=a.match(A);return g&&g.length>=l&&parseInt(g[l],10)}function V0(a,A,l){if(!a.RTCPeerConnection)return;let g=a.RTCPeerConnection.prototype,C=g.addEventListener;g.addEventListener=function(y,w){if(y!==A)return C.apply(this,arguments);let b=M=>{let k=l(M);k&&(w.handleEvent?w.handleEvent(k):w(k))};return this._eventMap=this._eventMap||{},this._eventMap[A]||(this._eventMap[A]=new Map),this._eventMap[A].set(w,b),C.apply(this,[y,b])};let m=g.removeEventListener;g.removeEventListener=function(y,w){if(y!==A||!this._eventMap||!this._eventMap[A])return m.apply(this,arguments);if(!this._eventMap[A].has(w))return m.apply(this,arguments);let b=this._eventMap[A].get(w);return this._eventMap[A].delete(w),this._eventMap[A].size===0&&delete this._eventMap[A],Object.keys(this._eventMap).length===0&&delete this._eventMap,m.apply(this,[y,b])},Object.defineProperty(g,"on"+A,{get(){return this["_on"+A]},set(y){this["_on"+A]&&(this.removeEventListener(A,this["_on"+A]),delete this["_on"+A]),y&&this.addEventListener(A,this["_on"+A]=y)},enumerable:!0,configurable:!0})}function ik(a){return typeof a!="boolean"?new Error("Argument type: "+typeof a+". Please use a boolean."):(il=a,a?"adapter.js logging disabled":"adapter.js logging enabled")}function OY(a){return typeof a!="boolean"?new Error("Argument type: "+typeof a+". Please use a boolean."):($v=!a,"adapter.js deprecation warnings "+(a?"disabled":"enabled"))}function Zv(){if(typeof window=="object"){if(il)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function eD(a,A){$v&&console.warn(a+" is deprecated, please use "+A+" instead.")}function cS(a){return Object.prototype.toString.call(a)==="[object Object]"}function nk(a){var A;return cS(a)?$c(A=Object.keys(a)).call(A,function(l,g){let C=cS(a[g]),m=C?nk(a[g]):a[g],y=C&&!Object.keys(m).length;return m===void 0||y?l:Object.assign(l,{[g]:m})},{}):a}function tD(a,A,l){A&&!l.has(A.id)&&(l.set(A.id,A),Object.keys(A).forEach(g=>{g.endsWith("Id")?tD(a,a.get(A[g]),l):g.endsWith("Ids")&&A[g].forEach(C=>{tD(a,a.get(C),l)})}))}function sk(a,A,l){let g=l?"outbound-rtp":"inbound-rtp",C=new Map;if(A===null)return C;let m=[];return a.forEach(y=>{y.type==="track"&&y.trackIdentifier===A.id&&m.push(y)}),m.forEach(y=>{a.forEach(w=>{w.type===g&&w.trackId===y.id&&tD(a,w,C)})}),C}let ak=Zv;function rD(a,A){let l=a&&a.navigator;if(!l.mediaDevices)return;let g=function(y){if(typeof y!="object"||y.mandatory||y.optional)return y;let w={};return Object.keys(y).forEach(b=>{if(b==="require"||b==="advanced"||b==="mediaSource")return;let M=typeof y[b]=="object"?y[b]:{ideal:y[b]};M.exact!==void 0&&typeof M.exact=="number"&&(M.min=M.max=M.exact);let k=function(V,K){return V?V+K.charAt(0).toUpperCase()+K.slice(1):K==="deviceId"?"sourceId":K};if(M.ideal!==void 0){w.optional=w.optional||[];let V={};typeof M.ideal=="number"?(V[k("min",b)]=M.ideal,w.optional.push(V),V={},V[k("max",b)]=M.ideal,w.optional.push(V)):(V[k("",b)]=M.ideal,w.optional.push(V))}M.exact!==void 0&&typeof M.exact!="number"?(w.mandatory=w.mandatory||{},w.mandatory[k("",b)]=M.exact):["min","max"].forEach(V=>{M[V]!==void 0&&(w.mandatory=w.mandatory||{},w.mandatory[k(V,b)]=M[V])})}),y.advanced&&(w.optional=(w.optional||[]).concat(y.advanced)),w},C=function(y,w){if(A.version>=61)return w(y);if((y=JSON.parse(JSON.stringify(y)))&&typeof y.audio=="object"){let b=function(M,k,V){k in M&&!(V in M)&&(M[V]=M[k],delete M[k])};b((y=JSON.parse(JSON.stringify(y))).audio,"autoGainControl","googAutoGainControl"),b(y.audio,"noiseSuppression","googNoiseSuppression"),y.audio=g(y.audio)}if(y&&typeof y.video=="object"){let b=y.video.facingMode;b=b&&(typeof b=="object"?b:{ideal:b});let M=A.version<66;if(b&&(b.exact==="user"||b.exact==="environment"||b.ideal==="user"||b.ideal==="environment")&&(!l.mediaDevices.getSupportedConstraints||!l.mediaDevices.getSupportedConstraints().facingMode||M)){let k;if(delete y.video.facingMode,b.exact==="environment"||b.ideal==="environment"?k=["back","rear"]:b.exact!=="user"&&b.ideal!=="user"||(k=["front"]),k)return l.mediaDevices.enumerateDevices().then(V=>{V=V.filter(q=>q.kind==="videoinput");let K=V.find(q=>k.some(ce=>{var oe;return Rt(oe=q.label.toLowerCase()).call(oe,ce)}));return!K&&V.length&&Rt(k).call(k,"back")&&(K=V[V.length-1]),K&&(y.video.deviceId=b.exact?{exact:K.deviceId}:{ideal:K.deviceId}),y.video=g(y.video),ak("chrome: "+JSON.stringify(y)),w(y)})}y.video=g(y.video)}return ak("chrome: "+JSON.stringify(y)),w(y)},m=function(y){return A.version>=64?y:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[y.name]||y.name,message:y.message,constraint:y.constraint||y.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(l.getUserMedia=(function(y,w,b){C(y,M=>{l.webkitGetUserMedia(M,w,k=>{b&&b(m(k))})})}).bind(l),l.mediaDevices.getUserMedia){let y=l.mediaDevices.getUserMedia.bind(l.mediaDevices);l.mediaDevices.getUserMedia=function(w){return C(w,b=>y(b).then(M=>{if(b.audio&&!M.getAudioTracks().length||b.video&&!M.getVideoTracks().length)throw M.getTracks().forEach(k=>{k.stop()}),new DOMException("","NotFoundError");return M},M=>Ft.reject(m(M))))}}}function Ak(a){a.MediaStream=a.MediaStream||a.webkitMediaStream}function ck(a){if(typeof a=="object"&&a.RTCPeerConnection&&!("ontrack"in a.RTCPeerConnection.prototype)){Object.defineProperty(a.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(l){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=l)},enumerable:!0,configurable:!0});let A=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=l=>{l.stream.addEventListener("addtrack",g=>{let C;C=a.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(y=>y.track&&y.track.id===g.track.id):{track:g.track};let m=new Event("track");m.track=g.track,m.receiver=C,m.transceiver={receiver:C},m.streams=[l.stream],this.dispatchEvent(m)}),l.stream.getTracks().forEach(g=>{let C;C=a.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(y=>y.track&&y.track.id===g.id):{track:g};let m=new Event("track");m.track=g,m.receiver=C,m.transceiver={receiver:C},m.streams=[l.stream],this.dispatchEvent(m)})},this.addEventListener("addstream",this._ontrackpoly)),A.apply(this,arguments)}}else V0(a,"track",A=>(A.transceiver||Object.defineProperty(A,"transceiver",{value:{receiver:A.receiver}}),A))}function b3(a){if(typeof a=="object"&&a.RTCPeerConnection&&!("getSenders"in a.RTCPeerConnection.prototype)&&"createDTMFSender"in a.RTCPeerConnection.prototype){let A=function(C,m){return{track:m,get dtmf(){return this._dtmf===void 0&&(m.kind==="audio"?this._dtmf=C.createDTMFSender(m):this._dtmf=null),this._dtmf},_pc:C}};if(!a.RTCPeerConnection.prototype.getSenders){a.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let C=a.RTCPeerConnection.prototype.addTrack;a.RTCPeerConnection.prototype.addTrack=function(y,w){let b=C.apply(this,arguments);return b||(b=A(this,y),this._senders.push(b)),b};let m=a.RTCPeerConnection.prototype.removeTrack;a.RTCPeerConnection.prototype.removeTrack=function(y){m.apply(this,arguments);let w=this._senders.indexOf(y);w!==-1&&this._senders.splice(w,1)}}let l=a.RTCPeerConnection.prototype.addStream;a.RTCPeerConnection.prototype.addStream=function(C){this._senders=this._senders||[],l.apply(this,[C]),C.getTracks().forEach(m=>{this._senders.push(A(this,m))})};let g=a.RTCPeerConnection.prototype.removeStream;a.RTCPeerConnection.prototype.removeStream=function(C){this._senders=this._senders||[],g.apply(this,[C]),C.getTracks().forEach(m=>{let y=this._senders.find(w=>w.track===m);y&&this._senders.splice(this._senders.indexOf(y),1)})}}else if(typeof a=="object"&&a.RTCPeerConnection&&"getSenders"in a.RTCPeerConnection.prototype&&"createDTMFSender"in a.RTCPeerConnection.prototype&&a.RTCRtpSender&&!("dtmf"in a.RTCRtpSender.prototype)){let A=a.RTCPeerConnection.prototype.getSenders;a.RTCPeerConnection.prototype.getSenders=function(){let l=A.apply(this,[]);return l.forEach(g=>g._pc=this),l},Object.defineProperty(a.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function iD(a){if(!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.getStats;a.RTCPeerConnection.prototype.getStats=function(){let[l,g,C]=arguments;if(arguments.length>0&&typeof l=="function")return A.apply(this,arguments);if(A.length===0&&(arguments.length===0||typeof l!="function"))return A.apply(this,[]);let m=function(w){let b={};return w.result().forEach(M=>{let k={id:M.id,timestamp:M.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[M.type]||M.type};M.names().forEach(V=>{k[V]=M.stat(V)}),b[k.id]=k}),b},y=function(w){return new Map(Object.keys(w).map(b=>[b,w[b]]))};if(arguments.length>=2){let w=function(b){g(y(m(b)))};return A.apply(this,[w,l])}return new Ft((w,b)=>{A.apply(this,[function(M){w(y(m(M)))},b])}).then(g,C)}}function nD(a){if(!(typeof a=="object"&&a.RTCPeerConnection&&a.RTCRtpSender&&a.RTCRtpReceiver))return;if(!("getStats"in a.RTCRtpSender.prototype)){let l=a.RTCPeerConnection.prototype.getSenders;l&&(a.RTCPeerConnection.prototype.getSenders=function(){let C=l.apply(this,[]);return C.forEach(m=>m._pc=this),C});let g=a.RTCPeerConnection.prototype.addTrack;g&&(a.RTCPeerConnection.prototype.addTrack=function(){let C=g.apply(this,arguments);return C._pc=this,C}),a.RTCRtpSender.prototype.getStats=function(){let C=this;return this._pc.getStats().then(m=>sk(m,C.track,!0))}}if(!("getStats"in a.RTCRtpReceiver.prototype)){let l=a.RTCPeerConnection.prototype.getReceivers;l&&(a.RTCPeerConnection.prototype.getReceivers=function(){let g=l.apply(this,[]);return g.forEach(C=>C._pc=this),g}),V0(a,"track",g=>(g.receiver._pc=g.srcElement,g)),a.RTCRtpReceiver.prototype.getStats=function(){let g=this;return this._pc.getStats().then(C=>sk(C,g.track,!1))}}if(!("getStats"in a.RTCRtpSender.prototype)||!("getStats"in a.RTCRtpReceiver.prototype))return;let A=a.RTCPeerConnection.prototype.getStats;a.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof a.MediaStreamTrack){let l=arguments[0],g,C,m;return this.getSenders().forEach(y=>{y.track===l&&(g?m=!0:g=y)}),this.getReceivers().forEach(y=>(y.track===l&&(C?m=!0:C=y),y.track===l)),m||g&&C?Ft.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):g?g.getStats():C?C.getStats():Ft.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return A.apply(this,arguments)}}function O3(a){a.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(m=>this._shimmedLocalStreams[m][0])};let A=a.RTCPeerConnection.prototype.addTrack;a.RTCPeerConnection.prototype.addTrack=function(m,y){if(!y)return A.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let w=A.apply(this,arguments);return this._shimmedLocalStreams[y.id]?this._shimmedLocalStreams[y.id].indexOf(w)===-1&&this._shimmedLocalStreams[y.id].push(w):this._shimmedLocalStreams[y.id]=[y,w],w};let l=a.RTCPeerConnection.prototype.addStream;a.RTCPeerConnection.prototype.addStream=function(m){this._shimmedLocalStreams=this._shimmedLocalStreams||{},m.getTracks().forEach(b=>{if(this.getSenders().find(M=>M.track===b))throw new DOMException("Track already exists.","InvalidAccessError")});let y=this.getSenders();l.apply(this,arguments);let w=this.getSenders().filter(b=>y.indexOf(b)===-1);this._shimmedLocalStreams[m.id]=[m].concat(w)};let g=a.RTCPeerConnection.prototype.removeStream;a.RTCPeerConnection.prototype.removeStream=function(m){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[m.id],g.apply(this,arguments)};let C=a.RTCPeerConnection.prototype.removeTrack;a.RTCPeerConnection.prototype.removeTrack=function(m){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},m&&Object.keys(this._shimmedLocalStreams).forEach(y=>{let w=this._shimmedLocalStreams[y].indexOf(m);w!==-1&&this._shimmedLocalStreams[y].splice(w,1),this._shimmedLocalStreams[y].length===1&&delete this._shimmedLocalStreams[y]}),C.apply(this,arguments)}}function GE(a,A){if(!a.RTCPeerConnection)return;if(a.RTCPeerConnection.prototype.addTrack&&A.version>=65)return O3(a);let l=a.RTCPeerConnection.prototype.getLocalStreams;a.RTCPeerConnection.prototype.getLocalStreams=function(){let b=l.apply(this);return this._reverseStreams=this._reverseStreams||{},b.map(M=>this._reverseStreams[M.id])};let g=a.RTCPeerConnection.prototype.addStream;a.RTCPeerConnection.prototype.addStream=function(b){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},b.getTracks().forEach(M=>{if(this.getSenders().find(k=>k.track===M))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[b.id]){let M=new a.MediaStream(b.getTracks());this._streams[b.id]=M,this._reverseStreams[M.id]=b,b=M}g.apply(this,[b])};let C=a.RTCPeerConnection.prototype.removeStream;function m(b,M){let k=M.sdp;return Object.keys(b._reverseStreams||[]).forEach(V=>{let K=b._reverseStreams[V],q=b._streams[K.id];k=k.replace(new RegExp(q.id,"g"),K.id)}),new RTCSessionDescription({type:M.type,sdp:k})}a.RTCPeerConnection.prototype.removeStream=function(b){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},C.apply(this,[this._streams[b.id]||b]),delete this._reverseStreams[this._streams[b.id]?this._streams[b.id].id:b.id],delete this._streams[b.id]},a.RTCPeerConnection.prototype.addTrack=function(b,M){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let k=[].slice.call(arguments,1);if(k.length!==1||!k[0].getTracks().find(K=>K===b))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(K=>K.track===b))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let V=this._streams[M.id];if(V)V.addTrack(b),Ft.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let K=new a.MediaStream([b]);this._streams[M.id]=K,this._reverseStreams[K.id]=M,this.addStream(K)}return this.getSenders().find(K=>K.track===b)},["createOffer","createAnswer"].forEach(function(b){let M=a.RTCPeerConnection.prototype[b],k={[b](){let V=arguments;return arguments.length&&typeof arguments[0]=="function"?M.apply(this,[K=>{let q=m(this,K);V[0].apply(null,[q])},K=>{V[1]&&V[1].apply(null,K)},arguments[2]]):M.apply(this,arguments).then(K=>m(this,K))}};a.RTCPeerConnection.prototype[b]=k[b]});let y=a.RTCPeerConnection.prototype.setLocalDescription;a.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(b,M){let k=M.sdp;return Object.keys(b._reverseStreams||[]).forEach(V=>{let K=b._reverseStreams[V],q=b._streams[K.id];k=k.replace(new RegExp(K.id,"g"),q.id)}),new RTCSessionDescription({type:M.type,sdp:k})}(this,arguments[0]),y.apply(this,arguments)):y.apply(this,arguments)};let w=Object.getOwnPropertyDescriptor(a.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(a.RTCPeerConnection.prototype,"localDescription",{get(){let b=w.get.apply(this);return b.type===""?b:m(this,b)}}),a.RTCPeerConnection.prototype.removeTrack=function(b){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!b._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(b._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let M;this._streams=this._streams||{},Object.keys(this._streams).forEach(k=>{this._streams[k].getTracks().find(V=>b.track===V)&&(M=this._streams[k])}),M&&(M.getTracks().length===1?this.removeStream(this._reverseStreams[M.id]):M.removeTrack(b.track),this.dispatchEvent(new Event("negotiationneeded")))}}function oD(a,A){!a.RTCPeerConnection&&a.webkitRTCPeerConnection&&(a.RTCPeerConnection=a.webkitRTCPeerConnection),a.RTCPeerConnection&&A.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(l){let g=a.RTCPeerConnection.prototype[l],C={[l](){return arguments[0]=new(l==="addIceCandidate"?a.RTCIceCandidate:a.RTCSessionDescription)(arguments[0]),g.apply(this,arguments)}};a.RTCPeerConnection.prototype[l]=C[l]})}function lk(a,A){V0(a,"negotiationneeded",l=>{let g=l.target;if(!(A.version<72||g.getConfiguration&&g.getConfiguration().sdpSemantics==="plan-b")||g.signalingState==="stable")return l})}var sD=Object.freeze({__proto__:null,fixNegotiationNeeded:lk,shimAddTrackRemoveTrack:GE,shimAddTrackRemoveTrackWithNative:O3,shimGetDisplayMedia:function(a,A){a.navigator.mediaDevices&&"getDisplayMedia"in a.navigator.mediaDevices||a.navigator.mediaDevices&&(typeof A=="function"?a.navigator.mediaDevices.getDisplayMedia=function(l){return A(l).then(g=>{let C=l.video&&l.video.width,m=l.video&&l.video.height,y=l.video&&l.video.frameRate;return l.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:g,maxFrameRate:y||3}},C&&(l.video.mandatory.maxWidth=C),m&&(l.video.mandatory.maxHeight=m),a.navigator.mediaDevices.getUserMedia(l)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))},shimGetSendersWithDtmf:b3,shimGetStats:iD,shimGetUserMedia:rD,shimMediaStream:Ak,shimOnTrack:ck,shimPeerConnection:oD,shimSenderReceiverGetStats:nD});function lS(a,A){let l=a&&a.navigator,g=a&&a.MediaStreamTrack;if(l.getUserMedia=function(C,m,y){eD("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),l.mediaDevices.getUserMedia(C).then(m,y)},!(A.version>55&&"autoGainControl"in l.mediaDevices.getSupportedConstraints())){let C=function(y,w,b){w in y&&!(b in y)&&(y[b]=y[w],delete y[w])},m=l.mediaDevices.getUserMedia.bind(l.mediaDevices);if(l.mediaDevices.getUserMedia=function(y){return typeof y=="object"&&typeof y.audio=="object"&&(y=JSON.parse(JSON.stringify(y)),C(y.audio,"autoGainControl","mozAutoGainControl"),C(y.audio,"noiseSuppression","mozNoiseSuppression")),m(y)},g&&g.prototype.getSettings){let y=g.prototype.getSettings;g.prototype.getSettings=function(){let w=y.apply(this,arguments);return C(w,"mozAutoGainControl","autoGainControl"),C(w,"mozNoiseSuppression","noiseSuppression"),w}}if(g&&g.prototype.applyConstraints){let y=g.prototype.applyConstraints;g.prototype.applyConstraints=function(w){return this.kind==="audio"&&typeof w=="object"&&(w=JSON.parse(JSON.stringify(w)),C(w,"autoGainControl","mozAutoGainControl"),C(w,"noiseSuppression","mozNoiseSuppression")),y.apply(this,[w])}}}}function aD(a){typeof a=="object"&&a.RTCTrackEvent&&"receiver"in a.RTCTrackEvent.prototype&&!("transceiver"in a.RTCTrackEvent.prototype)&&Object.defineProperty(a.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function dS(a,A){if(typeof a!="object"||!a.RTCPeerConnection&&!a.mozRTCPeerConnection)return;!a.RTCPeerConnection&&a.mozRTCPeerConnection&&(a.RTCPeerConnection=a.mozRTCPeerConnection),A.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(C){let m=a.RTCPeerConnection.prototype[C],y={[C](){return arguments[0]=new(C==="addIceCandidate"?a.RTCIceCandidate:a.RTCSessionDescription)(arguments[0]),m.apply(this,arguments)}};a.RTCPeerConnection.prototype[C]=y[C]});let l={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},g=a.RTCPeerConnection.prototype.getStats;a.RTCPeerConnection.prototype.getStats=function(){let[C,m,y]=arguments;return g.apply(this,[C||null]).then(w=>{if(A.version<53&&!m)try{w.forEach(b=>{b.type=l[b.type]||b.type})}catch(b){if(b.name!=="TypeError")throw b;w.forEach((M,k)=>{w.set(k,Object.assign({},M,{type:l[M.type]||M.type}))})}return w}).then(m,y)}}function uS(a){if(typeof a!="object"||!a.RTCPeerConnection||!a.RTCRtpSender||a.RTCRtpSender&&"getStats"in a.RTCRtpSender.prototype)return;let A=a.RTCPeerConnection.prototype.getSenders;A&&(a.RTCPeerConnection.prototype.getSenders=function(){let g=A.apply(this,[]);return g.forEach(C=>C._pc=this),g});let l=a.RTCPeerConnection.prototype.addTrack;l&&(a.RTCPeerConnection.prototype.addTrack=function(){let g=l.apply(this,arguments);return g._pc=this,g}),a.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Ft.resolve(new Map)}}function AD(a){if(typeof a!="object"||!a.RTCPeerConnection||!a.RTCRtpSender||a.RTCRtpSender&&"getStats"in a.RTCRtpReceiver.prototype)return;let A=a.RTCPeerConnection.prototype.getReceivers;A&&(a.RTCPeerConnection.prototype.getReceivers=function(){let l=A.apply(this,[]);return l.forEach(g=>g._pc=this),l}),V0(a,"track",l=>(l.receiver._pc=l.srcElement,l)),a.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function cD(a){a.RTCPeerConnection&&!("removeStream"in a.RTCPeerConnection.prototype)&&(a.RTCPeerConnection.prototype.removeStream=function(A){eD("removeStream","removeTrack"),this.getSenders().forEach(l=>{var g;l.track&&Rt(g=A.getTracks()).call(g,l.track)&&this.removeTrack(l)})})}function lD(a){a.DataChannel&&!a.RTCDataChannel&&(a.RTCDataChannel=a.DataChannel)}function dD(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.addTransceiver;A&&(a.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let l=arguments[1]&&arguments[1].sendEncodings;l===void 0&&(l=[]),l=[...l];let g=l.length>0;g&&l.forEach(m=>{if("rid"in m&&!/^[a-z0-9]{0,16}$/i.test(m.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in m&&!(parseFloat(m.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in m&&!(parseFloat(m.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});let C=A.apply(this,arguments);if(g){let{sender:m}=C,y=m.getParameters();(!("encodings"in y)||y.encodings.length===1&&Object.keys(y.encodings[0]).length===0)&&(y.encodings=l,m.sendEncodings=l,this.setParametersPromises.push(m.setParameters(y).then(()=>{delete m.sendEncodings}).catch(()=>{delete m.sendEncodings})))}return C})}function uD(a){if(typeof a!="object"||!a.RTCRtpSender)return;let A=a.RTCRtpSender.prototype.getParameters;A&&(a.RTCRtpSender.prototype.getParameters=function(){let l=A.apply(this,arguments);return"encodings"in l||(l.encodings=[].concat(this.sendEncodings||[{}])),l})}function gD(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.createOffer;a.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ft.all(this.setParametersPromises).then(()=>A.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):A.apply(this,arguments)}}function ED(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.createAnswer;a.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ft.all(this.setParametersPromises).then(()=>A.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):A.apply(this,arguments)}}var hD=Object.freeze({__proto__:null,shimAddTransceiver:dD,shimCreateAnswer:ED,shimCreateOffer:gD,shimGetDisplayMedia:function(a,A){a.navigator.mediaDevices&&"getDisplayMedia"in a.navigator.mediaDevices||a.navigator.mediaDevices&&(a.navigator.mediaDevices.getDisplayMedia=function(l){if(!l||!l.video){let g=new DOMException("getDisplayMedia without video constraints is undefined");return g.name="NotFoundError",g.code=8,Ft.reject(g)}return l.video===!0?l.video={mediaSource:A}:l.video.mediaSource=A,a.navigator.mediaDevices.getUserMedia(l)})},shimGetParameters:uD,shimGetUserMedia:lS,shimOnTrack:aD,shimPeerConnection:dS,shimRTCDataChannel:lD,shimReceiverGetStats:AD,shimRemoveStream:cD,shimSenderGetStats:uS});function ID(a){if(typeof a=="object"&&a.RTCPeerConnection){if("getLocalStreams"in a.RTCPeerConnection.prototype||(a.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in a.RTCPeerConnection.prototype)){let A=a.RTCPeerConnection.prototype.addTrack;a.RTCPeerConnection.prototype.addStream=function(l){var g;this._localStreams||(this._localStreams=[]),Rt(g=this._localStreams).call(g,l)||this._localStreams.push(l),l.getAudioTracks().forEach(C=>A.call(this,C,l)),l.getVideoTracks().forEach(C=>A.call(this,C,l))},a.RTCPeerConnection.prototype.addTrack=function(l){for(var g=arguments.length,C=new Array(g>1?g-1:0),m=1;m{var w;this._localStreams?Rt(w=this._localStreams).call(w,y)||this._localStreams.push(y):this._localStreams=[y]}),A.apply(this,arguments)}}"removeStream"in a.RTCPeerConnection.prototype||(a.RTCPeerConnection.prototype.removeStream=function(A){this._localStreams||(this._localStreams=[]);let l=this._localStreams.indexOf(A);if(l===-1)return;this._localStreams.splice(l,1);let g=A.getTracks();this.getSenders().forEach(C=>{Rt(g).call(g,C.track)&&this.removeTrack(C)})})}}function CD(a){if(typeof a=="object"&&a.RTCPeerConnection&&("getRemoteStreams"in a.RTCPeerConnection.prototype||(a.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in a.RTCPeerConnection.prototype))){Object.defineProperty(a.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(l){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=l),this.addEventListener("track",this._onaddstreampoly=g=>{g.streams.forEach(C=>{var m;if(this._remoteStreams||(this._remoteStreams=[]),Rt(m=this._remoteStreams).call(m,C))return;this._remoteStreams.push(C);let y=new Event("addstream");y.stream=C,this.dispatchEvent(y)})})}});let A=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(){let l=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(g){g.streams.forEach(C=>{if(l._remoteStreams||(l._remoteStreams=[]),l._remoteStreams.indexOf(C)>=0)return;l._remoteStreams.push(C);let m=new Event("addstream");m.stream=C,l.dispatchEvent(m)})}),A.apply(l,arguments)}}}function ES(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype,l=A.createOffer,g=A.createAnswer,C=A.setLocalDescription,m=A.setRemoteDescription,y=A.addIceCandidate;A.createOffer=function(b,M){let k=arguments.length>=2?arguments[2]:arguments[0],V=l.apply(this,[k]);return M?(V.then(b,M),Ft.resolve()):V},A.createAnswer=function(b,M){let k=arguments.length>=2?arguments[2]:arguments[0],V=g.apply(this,[k]);return M?(V.then(b,M),Ft.resolve()):V};let w=function(b,M,k){let V=C.apply(this,[b]);return k?(V.then(M,k),Ft.resolve()):V};A.setLocalDescription=w,w=function(b,M,k){let V=m.apply(this,[b]);return k?(V.then(M,k),Ft.resolve()):V},A.setRemoteDescription=w,w=function(b,M,k){let V=y.apply(this,[b]);return k?(V.then(M,k),Ft.resolve()):V},A.addIceCandidate=w}function pD(a){let A=a&&a.navigator;if(A.mediaDevices&&A.mediaDevices.getUserMedia){let l=A.mediaDevices,g=l.getUserMedia.bind(l);A.mediaDevices.getUserMedia=C=>g(fD(C))}!A.getUserMedia&&A.mediaDevices&&A.mediaDevices.getUserMedia&&(A.getUserMedia=(function(l,g,C){A.mediaDevices.getUserMedia(l).then(g,C)}).bind(A))}function fD(a){return a&&a.video!==void 0?Object.assign({},a,{video:nk(a.video)}):a}function _D(a){if(!a.RTCPeerConnection)return;let A=a.RTCPeerConnection;a.RTCPeerConnection=function(l,g){if(l&&l.iceServers){let C=[];for(let m=0;mA.generateCertificate})}function mD(a){typeof a=="object"&&a.RTCTrackEvent&&"receiver"in a.RTCTrackEvent.prototype&&!("transceiver"in a.RTCTrackEvent.prototype)&&Object.defineProperty(a.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function hS(a){let A=a.RTCPeerConnection.prototype.createOffer;a.RTCPeerConnection.prototype.createOffer=function(l){if(l){l.offerToReceiveAudio!==void 0&&(l.offerToReceiveAudio=!!l.offerToReceiveAudio);let g=this.getTransceivers().find(m=>m.receiver.track.kind==="audio");l.offerToReceiveAudio===!1&&g?g.direction==="sendrecv"?g.setDirection?g.setDirection("sendonly"):g.direction="sendonly":g.direction==="recvonly"&&(g.setDirection?g.setDirection("inactive"):g.direction="inactive"):l.offerToReceiveAudio!==!0||g||this.addTransceiver("audio",{direction:"recvonly"}),l.offerToReceiveVideo!==void 0&&(l.offerToReceiveVideo=!!l.offerToReceiveVideo);let C=this.getTransceivers().find(m=>m.receiver.track.kind==="video");l.offerToReceiveVideo===!1&&C?C.direction==="sendrecv"?C.setDirection?C.setDirection("sendonly"):C.direction="sendonly":C.direction==="recvonly"&&(C.setDirection?C.setDirection("inactive"):C.direction="inactive"):l.offerToReceiveVideo!==!0||C||this.addTransceiver("video",{direction:"recvonly"})}return A.apply(this,arguments)}}function BD(a){typeof a!="object"||a.AudioContext||(a.AudioContext=a.webkitAudioContext)}var SD=Object.freeze({__proto__:null,shimAudioContext:BD,shimCallbacksAPI:ES,shimConstraints:fD,shimCreateOfferLegacy:hS,shimGetUserMedia:pD,shimLocalStreamsAPI:ID,shimRTCIceServerUrls:_D,shimRemoteStreamsAPI:CD,shimTrackEventTransceiver:mD}),RD=` +\v\f\r                 \u2028\u2029\uFEFF`,dk=Oi,uk=k1,CS=RD,yD=Y("".replace),gk=RegExp("^["+CS+"]+"),Ek=RegExp("(^|[^"+CS+"])["+CS+"]+$"),hk=function(a){return function(A){var l=uk(dk(A));return l=yD(l,gk,""),l=yD(l,Ek,"$1"),l}},Ik={trim:hk()},Ck=zm.PROPER,pk=f,QD=RD,fk=Ik.trim;wn({target:"String",proto:!0,forced:function(a){return pk(function(){return!!QD[a]()||"​…᠎"[a]()!=="​…᠎"||Ck&&QD[a].name!==a})}("trim")},{trim:function(){return fk(this)}});var mk=Cc("String","trim"),Bk=j,Sk=mk,pS=String.prototype,Rk=function(a){var A=a.trim;return typeof a=="string"||a===pS||Bk(pS,a)&&A===pS.trim?Sk:A},RA=I(Rk),yk={exports:{}};(function(a){let A={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};A.localCName=A.generateIdentifier(),A.splitLines=function(l){return l.trim().split(` +`).map(g=>g.trim())},A.splitSections=function(l){return l.split(` +m=`).map((g,C)=>(C>0?"m="+g:g).trim()+`\r +`)},A.getDescription=function(l){let g=A.splitSections(l);return g&&g[0]},A.getMediaSections=function(l){let g=A.splitSections(l);return g.shift(),g},A.matchPrefix=function(l,g){return A.splitLines(l).filter(C=>C.indexOf(g)===0)},A.parseCandidate=function(l){let g;g=l.indexOf("a=candidate:")===0?l.substring(12).split(" "):l.substring(10).split(" ");let C={foundation:g[0],component:{1:"rtp",2:"rtcp"}[g[1]]||g[1],protocol:g[2].toLowerCase(),priority:parseInt(g[3],10),ip:g[4],address:g[4],port:parseInt(g[5],10),type:g[7]};for(let m=8;m0?g[0].split("/")[1]:"sendrecv",uri:g[1],attributes:g.slice(2).join(" ")}},A.writeExtmap=function(l){return"a=extmap:"+(l.id||l.preferredId)+(l.direction&&l.direction!=="sendrecv"?"/"+l.direction:"")+" "+l.uri+(l.attributes?" "+l.attributes:"")+`\r +`},A.parseFmtp=function(l){let g={},C,m=l.substring(l.indexOf(" ")+1).split(";");for(let y=0;y{l.parameters[y]!==void 0?m.push(y+"="+l.parameters[y]):m.push(y)}),g+="a=fmtp:"+C+" "+m.join(";")+`\r +`}return g},A.parseRtcpFb=function(l){let g=l.substring(l.indexOf(" ")+1).split(" ");return{type:g.shift(),parameter:g.join(" ")}},A.writeRtcpFb=function(l){let g="",C=l.payloadType;return l.preferredPayloadType!==void 0&&(C=l.preferredPayloadType),l.rtcpFeedback&&l.rtcpFeedback.length&&l.rtcpFeedback.forEach(m=>{g+="a=rtcp-fb:"+C+" "+m.type+(m.parameter&&m.parameter.length?" "+m.parameter:"")+`\r +`}),g},A.parseSsrcMedia=function(l){let g=l.indexOf(" "),C={ssrc:parseInt(l.substring(7,g),10)},m=l.indexOf(":",g);return m>-1?(C.attribute=l.substring(g+1,m),C.value=l.substring(m+1)):C.attribute=l.substring(g+1),C},A.parseSsrcGroup=function(l){let g=l.substring(13).split(" ");return{semantics:g.shift(),ssrcs:g.map(C=>parseInt(C,10))}},A.getMid=function(l){let g=A.matchPrefix(l,"a=mid:")[0];if(g)return g.substring(6)},A.parseFingerprint=function(l){let g=l.substring(14).split(" ");return{algorithm:g[0].toLowerCase(),value:g[1].toUpperCase()}},A.getDtlsParameters=function(l,g){return{role:"auto",fingerprints:A.matchPrefix(l+g,"a=fingerprint:").map(A.parseFingerprint)}},A.writeDtlsParameters=function(l,g){let C="a=setup:"+g+`\r +`;return l.fingerprints.forEach(m=>{C+="a=fingerprint:"+m.algorithm+" "+m.value+`\r +`}),C},A.parseCryptoLine=function(l){let g=l.substring(9).split(" ");return{tag:parseInt(g[0],10),cryptoSuite:g[1],keyParams:g[2],sessionParams:g.slice(3)}},A.writeCryptoLine=function(l){return"a=crypto:"+l.tag+" "+l.cryptoSuite+" "+(typeof l.keyParams=="object"?A.writeCryptoKeyParams(l.keyParams):l.keyParams)+(l.sessionParams?" "+l.sessionParams.join(" "):"")+`\r +`},A.parseCryptoKeyParams=function(l){if(l.indexOf("inline:")!==0)return null;let g=l.substring(7).split("|");return{keyMethod:"inline",keySalt:g[0],lifeTime:g[1],mkiValue:g[2]?g[2].split(":")[0]:void 0,mkiLength:g[2]?g[2].split(":")[1]:void 0}},A.writeCryptoKeyParams=function(l){return l.keyMethod+":"+l.keySalt+(l.lifeTime?"|"+l.lifeTime:"")+(l.mkiValue&&l.mkiLength?"|"+l.mkiValue+":"+l.mkiLength:"")},A.getCryptoParameters=function(l,g){return A.matchPrefix(l+g,"a=crypto:").map(A.parseCryptoLine)},A.getIceParameters=function(l,g){let C=A.matchPrefix(l+g,"a=ice-ufrag:")[0],m=A.matchPrefix(l+g,"a=ice-pwd:")[0];return C&&m?{usernameFragment:C.substring(12),password:m.substring(10)}:null},A.writeIceParameters=function(l){let g="a=ice-ufrag:"+l.usernameFragment+`\r +a=ice-pwd:`+l.password+`\r +`;return l.iceLite&&(g+=`a=ice-lite\r +`),g},A.parseRtpParameters=function(l){let g={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},C=A.splitLines(l)[0].split(" ");g.profile=C[2];for(let y=3;y{g.headerExtensions.push(A.parseExtmap(y))});let m=A.matchPrefix(l,"a=rtcp-fb:* ").map(A.parseRtcpFb);return g.codecs.forEach(y=>{m.forEach(w=>{y.rtcpFeedback.find(b=>b.type===w.type&&b.parameter===w.parameter)||y.rtcpFeedback.push(w)})}),g},A.writeRtpDescription=function(l,g){let C="";C+="m="+l+" ",C+=g.codecs.length>0?"9":"0",C+=" "+(g.profile||"UDP/TLS/RTP/SAVPF")+" ",C+=g.codecs.map(y=>y.preferredPayloadType!==void 0?y.preferredPayloadType:y.payloadType).join(" ")+`\r +`,C+=`c=IN IP4 0.0.0.0\r +`,C+=`a=rtcp:9 IN IP4 0.0.0.0\r +`,g.codecs.forEach(y=>{C+=A.writeRtpMap(y),C+=A.writeFmtp(y),C+=A.writeRtcpFb(y)});let m=0;return g.codecs.forEach(y=>{y.maxptime>m&&(m=y.maxptime)}),m>0&&(C+="a=maxptime:"+m+`\r +`),g.headerExtensions&&g.headerExtensions.forEach(y=>{C+=A.writeExtmap(y)}),C},A.parseRtpEncodingParameters=function(l){let g=[],C=A.parseRtpParameters(l),m=C.fecMechanisms.indexOf("RED")!==-1,y=C.fecMechanisms.indexOf("ULPFEC")!==-1,w=A.matchPrefix(l,"a=ssrc:").map(K=>A.parseSsrcMedia(K)).filter(K=>K.attribute==="cname"),b=w.length>0&&w[0].ssrc,M,k=A.matchPrefix(l,"a=ssrc-group:FID").map(K=>K.substring(17).split(" ").map(q=>parseInt(q,10)));k.length>0&&k[0].length>1&&k[0][0]===b&&(M=k[0][1]),C.codecs.forEach(K=>{if(K.name.toUpperCase()==="RTX"&&K.parameters.apt){let q={ssrc:b,codecPayloadType:parseInt(K.parameters.apt,10)};b&&M&&(q.rtx={ssrc:M}),g.push(q),m&&(q=JSON.parse(JSON.stringify(q)),q.fec={ssrc:b,mechanism:y?"red+ulpfec":"red"},g.push(q))}}),g.length===0&&b&&g.push({ssrc:b});let V=A.matchPrefix(l,"b=");return V.length&&(V=V[0].indexOf("b=TIAS:")===0?parseInt(V[0].substring(7),10):V[0].indexOf("b=AS:")===0?1e3*parseInt(V[0].substring(5),10)*.95-16e3:void 0,g.forEach(K=>{K.maxBitrate=V})),g},A.parseRtcpParameters=function(l){let g={},C=A.matchPrefix(l,"a=ssrc:").map(w=>A.parseSsrcMedia(w)).filter(w=>w.attribute==="cname")[0];C&&(g.cname=C.value,g.ssrc=C.ssrc);let m=A.matchPrefix(l,"a=rtcp-rsize");g.reducedSize=m.length>0,g.compound=m.length===0;let y=A.matchPrefix(l,"a=rtcp-mux");return g.mux=y.length>0,g},A.writeRtcpParameters=function(l){let g="";return l.reducedSize&&(g+=`a=rtcp-rsize\r +`),l.mux&&(g+=`a=rtcp-mux\r +`),l.ssrc!==void 0&&l.cname&&(g+="a=ssrc:"+l.ssrc+" cname:"+l.cname+`\r +`),g},A.parseMsid=function(l){let g,C=A.matchPrefix(l,"a=msid:");if(C.length===1)return g=C[0].substring(7).split(" "),{stream:g[0],track:g[1]};let m=A.matchPrefix(l,"a=ssrc:").map(y=>A.parseSsrcMedia(y)).filter(y=>y.attribute==="msid");return m.length>0?(g=m[0].value.split(" "),{stream:g[0],track:g[1]}):void 0},A.parseSctpDescription=function(l){let g=A.parseMLine(l),C=A.matchPrefix(l,"a=max-message-size:"),m;C.length>0&&(m=parseInt(C[0].substring(19),10)),isNaN(m)&&(m=65536);let y=A.matchPrefix(l,"a=sctp-port:");if(y.length>0)return{port:parseInt(y[0].substring(12),10),protocol:g.fmt,maxMessageSize:m};let w=A.matchPrefix(l,"a=sctpmap:");if(w.length>0){let b=w[0].substring(10).split(" ");return{port:parseInt(b[0],10),protocol:b[1],maxMessageSize:m}}},A.writeSctpDescription=function(l,g){let C=[];return C=l.protocol!=="DTLS/SCTP"?["m="+l.kind+" 9 "+l.protocol+" "+g.protocol+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctp-port:"+g.port+`\r +`]:["m="+l.kind+" 9 "+l.protocol+" "+g.port+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctpmap:"+g.port+" "+g.protocol+` 65535\r +`],g.maxMessageSize!==void 0&&C.push("a=max-message-size:"+g.maxMessageSize+`\r +`),C.join("")},A.generateSessionId=function(){return Math.random().toString().substr(2,22)},A.writeSessionBoilerplate=function(l,g,C){let m,y=g!==void 0?g:2;return m=l||A.generateSessionId(),`v=0\r +o=`+(C||"thisisadapterortc")+" "+m+" "+y+` IN IP4 127.0.0.1\r +s=-\r +t=0 0\r +`},A.getDirection=function(l,g){let C=A.splitLines(l);for(let m=0;m(l.candidate&&Object.defineProperty(l,"candidate",{value:new a.RTCIceCandidate(l.candidate),writable:"false"}),l))}function TD(a){!a.RTCIceCandidate||a.RTCIceCandidate&&"relayProtocol"in a.RTCIceCandidate.prototype||V0(a,"icecandidate",A=>{if(A.candidate){let l=K0.parseCandidate(A.candidate.candidate);l.type==="relay"&&(A.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[l.priority>>24])}return A})}function mS(a,A){if(!a.RTCPeerConnection)return;"sctp"in a.RTCPeerConnection.prototype||Object.defineProperty(a.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});let l=function(w){if(!w||!w.sdp)return!1;let b=K0.splitSections(w.sdp);return b.shift(),b.some(M=>{let k=K0.parseMLine(M);return k&&k.kind==="application"&&k.protocol.indexOf("SCTP")!==-1})},g=function(w){let b=w.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(b===null||b.length<2)return-1;let M=parseInt(b[1],10);return M!=M?-1:M},C=function(w){let b=65536;return A.browser==="firefox"&&(b=A.version<57?w===-1?16384:2147483637:A.version<60?A.version===57?65535:65536:2147483637),b},m=function(w,b){let M=65536;A.browser==="firefox"&&A.version===57&&(M=65535);let k=K0.matchPrefix(w.sdp,"a=max-message-size:");return k.length>0?M=parseInt(k[0].substr(19),10):A.browser==="firefox"&&b!==-1&&(M=2147483637),M},y=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,A.browser==="chrome"&&A.version>=76){let{sdpSemantics:w}=this.getConfiguration();w==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0})}if(l(arguments[0])){let w=g(arguments[0]),b=C(w),M=m(arguments[0],w),k;k=b===0&&M===0?Number.POSITIVE_INFINITY:b===0||M===0?Math.max(b,M):Math.min(b,M);let V={};Object.defineProperty(V,"maxMessageSize",{get:()=>k}),this._sctp=V}return y.apply(this,arguments)}}function BS(a){if(!a.RTCPeerConnection||!("createDataChannel"in a.RTCPeerConnection.prototype))return;function A(g,C){let m=g.send;g.send=function(){let y=arguments[0],w=y.length||y.size||y.byteLength;if(g.readyState==="open"&&C.sctp&&w>C.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+C.sctp.maxMessageSize+" bytes)");return m.apply(g,arguments)}}let l=a.RTCPeerConnection.prototype.createDataChannel;a.RTCPeerConnection.prototype.createDataChannel=function(){let g=l.apply(this,arguments);return A(g,this),g},V0(a,"datachannel",g=>(A(g.channel,g.target),g))}function wD(a){if(!a.RTCPeerConnection||"connectionState"in a.RTCPeerConnection.prototype)return;let A=a.RTCPeerConnection.prototype;Object.defineProperty(A,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(A,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(l){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),l&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=l)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(l=>{let g=A[l];A[l]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=C=>{let m=C.target;if(m._lastConnectionState!==m.connectionState){m._lastConnectionState=m.connectionState;let y=new Event("connectionstatechange",C);m.dispatchEvent(y)}return C},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),g.apply(this,arguments)}})}function SS(a,A){if(!a.RTCPeerConnection||A.browser==="chrome"&&A.version>=71||A.browser==="safari"&&A.version>=605)return;let l=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(g){if(g&&g.sdp&&g.sdp.indexOf(` +a=extmap-allow-mixed`)!==-1){let C=g.sdp.split(` +`).filter(m=>RA(m).call(m)!=="a=extmap-allow-mixed").join(` +`);a.RTCSessionDescription&&g instanceof a.RTCSessionDescription?arguments[0]=new a.RTCSessionDescription({type:g.type,sdp:C}):g.sdp=C}return l.apply(this,arguments)}}function QS(a,A){if(!a.RTCPeerConnection||!a.RTCPeerConnection.prototype)return;let l=a.RTCPeerConnection.prototype.addIceCandidate;l&&l.length!==0&&(a.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(A.browser==="chrome"&&A.version<78||A.browser==="firefox"&&A.version<68||A.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Ft.resolve():l.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Ft.resolve())})}function wS(a,A){if(!a.RTCPeerConnection||!a.RTCPeerConnection.prototype)return;let l=a.RTCPeerConnection.prototype.setLocalDescription;l&&l.length!==0&&(a.RTCPeerConnection.prototype.setLocalDescription=function(){let g=arguments[0]||{};if(typeof g!="object"||g.type&&g.sdp)return l.apply(this,arguments);if(g={type:g.type,sdp:g.sdp},!g.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":g.type="offer";break;default:g.type="answer"}return g.sdp||g.type!=="offer"&&g.type!=="answer"?l.apply(this,[g]):(g.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(C=>l.apply(this,[C]))})}var MY=Object.freeze({__proto__:null,removeExtmapAllowMixed:SS,shimAddIceCandidateNullOrEmpty:QS,shimConnectionState:wD,shimMaxMessageSize:mS,shimParameterlessSetLocalDescription:wS,shimRTCIceCandidate:_S,shimRTCIceCandidateRelayProtocol:TD,shimSendThrowTypeError:BS});(function(){let{window:a}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},l=Zv,g=function(m){let y={browser:null,version:null};if(m===void 0||!m.navigator)return y.browser="Not a browser.",y;let{navigator:w}=m;if(w.mozGetUserMedia)y.browser="firefox",y.version=D3(w.userAgent,/Firefox\/(\d+)\./,1);else if(w.webkitGetUserMedia||m.isSecureContext===!1&&m.webkitRTCPeerConnection)y.browser="chrome",y.version=D3(w.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!m.RTCPeerConnection||!w.userAgent.match(/AppleWebKit\/(\d+)\./))return y.browser="Not a supported browser.",y;y.browser="safari",y.version=D3(w.userAgent,/AppleWebKit\/(\d+)\./,1),y.supportsUnifiedPlan=m.RTCRtpTransceiver&&"currentDirection"in m.RTCRtpTransceiver.prototype}return y}(a),C={browserDetails:g,commonShim:MY,extractVersion:D3,disableLog:ik,disableWarnings:OY,sdp:LY};switch(g.browser){case"chrome":if(!sD||!oD||!A.shimChrome)return l("Chrome shim is not included in this adapter release."),C;if(g.version===null)return l("Chrome shim can not determine version, not shimming."),C;l("adapter.js shimming chrome."),C.browserShim=sD,QS(a,g),wS(a),rD(a,g),Ak(a),oD(a,g),ck(a),GE(a,g),b3(a),iD(a),nD(a),lk(a,g),_S(a),TD(a),wD(a),mS(a,g),BS(a),SS(a,g);break;case"firefox":if(!hD||!dS||!A.shimFirefox)return l("Firefox shim is not included in this adapter release."),C;l("adapter.js shimming firefox."),C.browserShim=hD,QS(a,g),wS(a),lS(a,g),dS(a,g),aD(a),cD(a),uS(a),AD(a),lD(a),dD(a),uD(a),gD(a),ED(a),_S(a),wD(a),mS(a,g),BS(a);break;case"safari":if(!SD||!A.shimSafari)return l("Safari shim is not included in this adapter release."),C;l("adapter.js shimming safari."),C.browserShim=SD,QS(a,g),wS(a),_D(a),hS(a),ES(a),ID(a),CD(a),mD(a),pD(a),BD(a),_S(a),TD(a),mS(a,g),BS(a),SS(a,g);break;default:l("Unsupported browser!")}})({window:typeof window>"u"?void 0:window});var kY=f,DS=re.RegExp,PY=!kY(function(){var a=!0;try{DS(".","d")}catch{a=!1}var A={},l="",g=a?"dgimsy":"gimsy",C=function(w,b){Object.defineProperty(A,w,{get:function(){return l+=b,!0}})},m={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var y in a&&(m.hasIndices="d"),m)C(y,m[y]);return Object.getOwnPropertyDescriptor(DS.prototype,"flags").get.call(A)!==g||l!==g}),Ga=Do,Qk=ht,Tk=ts,aC=j,wk={correct:PY},bS=function(){var a=Ga(this),A="";return a.hasIndices&&(A+="d"),a.global&&(A+="g"),a.ignoreCase&&(A+="i"),a.multiline&&(A+="m"),a.dotAll&&(A+="s"),a.unicode&&(A+="u"),a.unicodeSets&&(A+="v"),a.sticky&&(A+="y"),A},vD=RegExp.prototype,AC=wk.correct?function(a){return a.flags}:function(a){return wk.correct||!aC(vD,a)||Tk(a,"flags")?a.flags:Qk(bS,a)},cC=Y,DD=Math.floor,L3=cC("".charAt),NS=cC("".replace),lC=cC("".slice),UY=/\$([$&'`]|\d{1,2})/g,xY=wn,FY=ht,OS=Y,bD=Oi,GY=rt,VY=Kn,KY=E1,H0=k1,HY=u1,vk=AC,YY=function(a,A,l,g,C,m){var y=l+a.length,w=g.length,b=UY;return NS(m,b,function(M,k){var V;switch(L3(k,0)){case"$":return"$";case"&":return a;case"`":return lC(A,0,l);case"'":return lC(A,y);case"<":V=C[lC(k,1,-1)];break;default:var K=+k;if(K===0)return M;if(K>w){var q=DD(K/10);return q===0?M:q<=w?g[q-1]===void 0?L3(k,1):g[q-1]+L3(k,1):M}V=g[K-1]}return V===void 0?"":V})},jY=vo("replace"),JY=TypeError,LS=OS("".indexOf),qY=OS("".replace),Dk=OS("".slice),WY=Math.max;xY({target:"String",proto:!0},{replaceAll:function(a,A){var l,g,C,m,y,w,b,M,k,V,K=bD(this),q=0,ce="";if(VY(a)){if((l=KY(a))&&(g=H0(bD(vk(a))),!~LS(g,"g")))throw new JY("`.replaceAll` does not allow non-global regexes");if(C=HY(a,jY))return FY(C,a,K,A);if(l)return qY(H0(K),a,A)}for(m=H0(K),y=H0(a),(w=GY(A))||(A=H0(A)),b=y.length,M=WY(1,b),k=LS(m,y);k!==-1;)V=w?H0(A(y,k,m)):YY(y,m,k,[],void 0,A),ce+=Dk(m,q,k)+V,q=k+b,k=k+M>m.length?-1:LS(m,y,k+M);return q0?us.length===2?typeof us[1]==C?this[us[0]]=us[1].call(this,ji):this[us[0]]=us[1]:us.length===3?typeof us[1]!==C||us[1].exec&&us[1].test?this[us[0]]=ji?ji.replace(us[1],us[2]):g:this[us[0]]=ji?us[1].call(this,ji,us[2]):g:us.length===4&&(this[us[0]]=ji?us[3].call(this,ji.replace(us[1],us[2])):g):this[us]=ji||g;wl+=2}},rE=function(ws,Ps){for(var to in Ps)if(typeof Ps[to]===y&&Ps[to].length>0){for(var Q1=0;Q12&&(ji[M]="iPad",ji[V]=pe),ji},this.getEngine=function(){var ji={};return ji[k]=g,ji[q]=g,nu.call(ji,Q1,us.engine),ji},this.getOS=function(){var ji={};return ji[k]=g,ji[q]=g,nu.call(ji,Q1,us.os),au&&!ji[k]&&su&&su.platform&&su.platform!="Unknown"&&(ji[k]=su.platform.replace(/chrome os/i,Kc).replace(/macos/i,tE)),ji},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return Q1},this.setUA=function(ji){return Q1=typeof ji===w&&ji.length>500?Cp(ji,500):ji,this},this.setUA(Q1),this};ou.VERSION="0.7.41",ou.BROWSER=dd([k,q,b]),ou.CPU=dd([ce]),ou.DEVICE=dd([M,K,V,oe,le,Se,pe,be,Ue]),ou.ENGINE=ou.OS=dd([k,q]),a.exports&&(A=a.exports=ou),A.UAParser=ou;var ud=typeof l!==m&&(l.jQuery||l.Zepto);if(ud&&!ud.ua){var YQ=new ou;ud.ua=YQ.getResult(),ud.ua.get=function(){return YQ.getUA()},ud.ua.set=function(ws){YQ.setUA(ws);var Ps=YQ.getResult();for(var to in Ps)ud.ua[to]=Ps[to]}}})(typeof window=="object"?window:d)})(OD,OD.exports);var Lk=I(OD.exports),Mk=TE.clear;wn({global:!0,bind:!0,forced:re.clearImmediate!==Mk},{clearImmediate:Mk});var kk=re,Pk=_e,ej=rt,tj=BI,Uk=Ct,rj=pg,xk=R0,dC=kk.Function,ij=/MSIE .\./.test(Uk)||tj==="BUN"&&function(){var a=kk.Bun.version.split(".");return a.length<3||a[0]==="0"&&(a[1]<3||a[1]==="3"&&a[2]==="0")}(),Fk=wn,Gk=re,Vk=TE.set,nj=function(a,A){var l=1;return ij?function(g,C){var m=xk(arguments.length,1)>l,y=ej(g)?g:dC(g),w=m?rj(arguments,l):[],b=m?function(){Pk(y,this,w)}:y;return a(b)}:a},Ea=Gk.setImmediate?nj(Vk):Vk;Fk({global:!0,bind:!0,forced:Gk.setImmediate!==Ea},{setImmediate:Ea});var Kk=I(Tn.setImmediate),oj=re,sj=Uw,aj=dn,Hk=R0,Aj=lt;wn({global:!0,dontCallGetSet:!0,forced:f(function(){return Aj&&Object.getOwnPropertyDescriptor(oj,"queueMicrotask").value.length!==1})},{queueMicrotask:function(a){Hk(arguments.length,1),sj(aj(a))}});var Yk=I(Tn.queueMicrotask);function jk(a,A){return function(){return a.apply(A,arguments)}}let{toString:cj}=Object.prototype,{getPrototypeOf:kS}=Object,{iterator:uC,toStringTag:Jk}=Symbol,M3=(gC=Object.create(null),a=>{let A=cj.call(a);return gC[A]||(gC[A]=A.slice(8,-1).toLowerCase())});var gC;let H1=a=>(a=a.toLowerCase(),A=>M3(A)===a),EC=a=>A=>typeof A===a,{isArray:hC}=Array,Dd=EC("undefined");function Bu(a){return a!==null&&!Dd(a)&&a.constructor!==null&&!Dd(a.constructor)&&mc(a.constructor.isBuffer)&&a.constructor.isBuffer(a)}let qk=H1("ArrayBuffer"),Za=EC("string"),mc=EC("function"),PS=EC("number"),VE=a=>a!==null&&typeof a=="object",IC=a=>{if(M3(a)!=="object")return!1;let A=kS(a);return!(A!==null&&A!==Object.prototype&&Object.getPrototypeOf(A)!==null||Jk in a||uC in a)},lj=H1("Date"),LD=H1("File"),CC=H1("Blob"),Wk=H1("FileList"),dj=H1("URLSearchParams"),[Xk,uj,zk,$k]=["ReadableStream","Request","Response","Headers"].map(H1);function k3(a,A){let l,g,{allOwnKeys:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(a!=null)if(typeof a!="object"&&(a=[a]),hC(a))for(l=0,g=a.length;l0;)if(g=l[C],A===g.toLowerCase())return g;return null}let KE=Nk!==void 0?Nk:typeof self<"u"?self:typeof window<"u"?window:global,Zk=a=>!Dd(a)&&a!==KE,kD=(US=typeof Uint8Array<"u"&&kS(Uint8Array),a=>US&&a instanceof US);var US;let e5=H1("HTMLFormElement"),t5=(a=>{let{hasOwnProperty:A}=a;return(l,g)=>A.call(l,g)})(Object.prototype),gj=H1("RegExp"),r5=(a,A)=>{let l=Object.getOwnPropertyDescriptors(a),g={};k3(l,(C,m)=>{let y;(y=A(C,m,a))!==!1&&(g[m]=y||C)}),Object.defineProperties(a,g)},Ej=H1("AsyncFunction"),i5=(PD=typeof Kk=="function",P3=mc(KE.postMessage),PD?Kk:P3?(yA="axios@".concat(Math.random()),Y0=[],KE.addEventListener("message",a=>{let{source:A,data:l}=a;A===KE&&l===yA&&Y0.length&&Y0.shift()()},!1),a=>{Y0.push(a),KE.postMessage(yA,"*")}):a=>setTimeout(a));var PD,P3,yA,Y0;let U3=Yk!==void 0?Yk.bind(KE):typeof process<"u"&&process.nextTick||i5;var Ht={isArray:hC,isArrayBuffer:qk,isBuffer:Bu,isFormData:a=>{let A;return a&&(typeof FormData=="function"&&a instanceof FormData||mc(a.append)&&((A=M3(a))==="formdata"||A==="object"&&mc(a.toString)&&a.toString()==="[object FormData]"))},isArrayBufferView:function(a){let A;return A=typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(a):a&&a.buffer&&qk(a.buffer),A},isString:Za,isNumber:PS,isBoolean:a=>a===!0||a===!1,isObject:VE,isPlainObject:IC,isEmptyObject:a=>{if(!VE(a)||Bu(a))return!1;try{return Object.keys(a).length===0&&Object.getPrototypeOf(a)===Object.prototype}catch{return!1}},isReadableStream:Xk,isRequest:uj,isResponse:zk,isHeaders:$k,isUndefined:Dd,isDate:lj,isFile:LD,isBlob:CC,isRegExp:gj,isFunction:mc,isStream:a=>VE(a)&&mc(a.pipe),isURLSearchParams:dj,isTypedArray:kD,isFileList:Wk,forEach:k3,merge:function a(){let{caseless:A,skipUndefined:l}=Zk(this)&&this||{},g={},C=(m,y)=>{let w=A&&MD(g,y)||y;IC(g[w])&&IC(m)?g[w]=a(g[w],m):IC(m)?g[w]=a({},m):hC(m)?g[w]=m.slice():l&&Dd(m)||(g[w]=m)};for(let m=0,y=arguments.length;m3&&arguments[3]!==void 0?arguments[3]:{};return k3(A,(C,m)=>{l&&mc(C)?a[m]=jk(C,l):a[m]=C},{allOwnKeys:g}),a},trim:a=>RA(a)?RA(a).call(a):a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:a=>(a.charCodeAt(0)===65279&&(a=a.slice(1)),a),inherits:(a,A,l,g)=>{a.prototype=Object.create(A.prototype,g),a.prototype.constructor=a,Object.defineProperty(a,"super",{value:A.prototype}),l&&Object.assign(a.prototype,l)},toFlatObject:(a,A,l,g)=>{let C,m,y,w={};if(A=A||{},a==null)return A;do{for(C=Object.getOwnPropertyNames(a),m=C.length;m-- >0;)y=C[m],g&&!g(y,a,A)||w[y]||(A[y]=a[y],w[y]=!0);a=l!==!1&&kS(a)}while(a&&(!l||l(a,A))&&a!==Object.prototype);return A},kindOf:M3,kindOfTest:H1,endsWith:(a,A,l)=>{a=String(a),(l===void 0||l>a.length)&&(l=a.length),l-=A.length;let g=a.indexOf(A,l);return g!==-1&&g===l},toArray:a=>{if(!a)return null;if(hC(a))return a;let A=a.length;if(!PS(A))return null;let l=new Array(A);for(;A-- >0;)l[A]=a[A];return l},forEachEntry:(a,A)=>{let l=(a&&a[uC]).call(a),g;for(;(g=l.next())&&!g.done;){let C=g.value;A.call(a,C[0],C[1])}},matchAll:(a,A)=>{let l,g=[];for(;(l=a.exec(A))!==null;)g.push(l);return g},isHTMLForm:e5,hasOwnProperty:t5,hasOwnProp:t5,reduceDescriptors:r5,freezeMethods:a=>{r5(a,(A,l)=>{if(mc(a)&&["arguments","caller","callee"].indexOf(l)!==-1)return!1;let g=a[l];mc(g)&&(A.enumerable=!1,"writable"in A?A.writable=!1:A.set||(A.set=()=>{throw Error("Can not rewrite read-only method '"+l+"'")}))})},toObjectSet:(a,A)=>{let l={},g=C=>{C.forEach(m=>{l[m]=!0})};return hC(a)?g(a):g(String(a).split(A)),l},toCamelCase:a=>a.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(A,l,g){return l.toUpperCase()+g}),noop:()=>{},toFiniteNumber:(a,A)=>a!=null&&Number.isFinite(a=+a)?a:A,findKey:MD,global:KE,isContextDefined:Zk,isSpecCompliantForm:function(a){return!!(a&&mc(a.append)&&a[Jk]==="FormData"&&a[uC])},toJSONObject:a=>{let A=new Array(10),l=(g,C)=>{if(VE(g)){if(A.indexOf(g)>=0)return;if(Bu(g))return g;if(!("toJSON"in g)){A[C]=g;let m=hC(g)?[]:{};return k3(g,(y,w)=>{let b=l(y,C+1);!Dd(b)&&(m[w]=b)}),A[C]=void 0,m}}return g};return l(a,0)},isAsyncFn:Ej,isThenable:a=>a&&(VE(a)||mc(a))&&mc(a.then)&&mc(a.catch),setImmediate:i5,asap:U3,isIterable:a=>a!=null&&mc(a[uC])};function Fn(a,A,l,g,C){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=a,this.name="AxiosError",A&&(this.code=A),l&&(this.config=l),g&&(this.request=g),C&&(this.response=C,this.status=C.status?C.status:null)}Ht.inherits(Fn,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ht.toJSONObject(this.config),code:this.code,status:this.status}}});let Gl=Fn.prototype,HE={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(a=>{HE[a]={value:a}}),Object.defineProperties(Fn,HE),Object.defineProperty(Gl,"isAxiosError",{value:!0}),Fn.from=(a,A,l,g,C,m)=>{let y=Object.create(Gl);Ht.toFlatObject(a,y,function(M){return M!==Error.prototype},M=>M!=="isAxiosError");let w=a&&a.message?a.message:"Error",b=A==null&&a?a.code:A;return Fn.call(y,w,b,l,g,C),a&&y.cause==null&&Object.defineProperty(y,"cause",{value:a,configurable:!0}),y.name=a&&a.name||"Error",m&&Object.assign(y,m),y};function pC(a){return Ht.isPlainObject(a)||Ht.isArray(a)}function n5(a){return Ht.endsWith(a,"[]")?a.slice(0,-2):a}function o5(a,A,l){return a?a.concat(A).map(function(g,C){return g=n5(g),!l&&C?"["+g+"]":g}).join(l?".":""):A}let UD=Ht.toFlatObject(Ht,{},null,function(a){return/^is[A-Z]/.test(a)});function x3(a,A,l){if(!Ht.isObject(a))throw new TypeError("target must be an object");A=A||new FormData;let g=(l=Ht.toFlatObject(l,{metaTokens:!0,dots:!1,indexes:!1},!1,function(K,q){return!Ht.isUndefined(q[K])})).metaTokens,C=l.visitor||M,m=l.dots,y=l.indexes,w=(l.Blob||typeof Blob<"u"&&Blob)&&Ht.isSpecCompliantForm(A);if(!Ht.isFunction(C))throw new TypeError("visitor must be a function");function b(K){if(K===null)return"";if(Ht.isDate(K))return K.toISOString();if(Ht.isBoolean(K))return K.toString();if(!w&&Ht.isBlob(K))throw new Fn("Blob is not supported. Use a Buffer instead.");return Ht.isArrayBuffer(K)||Ht.isTypedArray(K)?w&&typeof Blob=="function"?new Blob([K]):Buffer.from(K):K}function M(K,q,ce){let oe=K;if(K&&!ce&&typeof K=="object"){if(Ht.endsWith(q,"{}"))q=g?q:q.slice(0,-2),K=JSON.stringify(K);else if(Ht.isArray(K)&&function(le){return Ht.isArray(le)&&!le.some(pC)}(K)||(Ht.isFileList(K)||Ht.endsWith(q,"[]"))&&(oe=Ht.toArray(K)))return q=n5(q),oe.forEach(function(le,pe){!Ht.isUndefined(le)&&le!==null&&A.append(y===!0?o5([q],pe,m):y===null?q:q+"[]",b(le))}),!1}return!!pC(K)||(A.append(o5(ce,q,m),b(K)),!1)}let k=[],V=Object.assign(UD,{defaultVisitor:M,convertValue:b,isVisitable:pC});if(!Ht.isObject(a))throw new TypeError("data must be an object");return function K(q,ce){if(!Ht.isUndefined(q)){if(k.indexOf(q)!==-1)throw Error("Circular reference detected in "+ce.join("."));k.push(q),Ht.forEach(q,function(oe,le){(!(Ht.isUndefined(oe)||oe===null)&&C.call(A,oe,Ht.isString(le)?RA(le).call(le):le,ce,V))===!0&&K(oe,ce?ce.concat(le):[le])}),k.pop()}}(a),A}function YE(a){let A={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(a).replace(/[!'()~]|%20|%00/g,function(l){return A[l]})}function xS(a,A){this._pairs=[],a&&x3(a,this,A)}let s5=xS.prototype;function a5(a){return encodeURIComponent(a).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Su(a,A,l){if(!A)return a;let g=l&&l.encode||a5;Ht.isFunction(l)&&(l={serialize:l});let C=l&&l.serialize,m;if(m=C?C(A,l):Ht.isURLSearchParams(A)?A.toString():new xS(A,l).toString(g),m){let y=a.indexOf("#");y!==-1&&(a=a.slice(0,y)),a+=(a.indexOf("?")===-1?"?":"&")+m}return a}s5.append=function(a,A){this._pairs.push([a,A])},s5.toString=function(a){let A=a?function(l){return a.call(this,l,YE)}:YE;return this._pairs.map(function(l){return A(l[0])+"="+A(l[1])},"").join("&")};var fC=class{constructor(){this.handlers=[]}use(a,A,l){return this.handlers.push({fulfilled:a,rejected:A,synchronous:!!l&&l.synchronous,runWhen:l?l.runWhen:null}),this.handlers.length-1}eject(a){this.handlers[a]&&(this.handlers[a]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(a){Ht.forEach(this.handlers,function(A){A!==null&&a(A)})}},A5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},FS={exports:{}},c5=wn,xD=lt,GS=mn.f;c5({target:"Object",stat:!0,forced:Object.defineProperty!==GS,sham:!xD},{defineProperty:GS});var F3=Tn.Object,FD=FS.exports=function(a,A,l){return F3.defineProperty(a,A,l)};F3.defineProperty.sham&&(FD.sham=!0);var GD=I(FS.exports),l5=TypeError,VD=C0,d5=Zp,u5=Kn,hj=vo("species"),g5=Array,Ij=function(a){var A;return VD(a)&&(A=a.constructor,(d5(A)&&(A===g5||VD(A.prototype))||u5(A)&&(A=A[hj])===null)&&(A=void 0)),A===void 0?g5:A},E5=function(a,A){return new(Ij(a))(A===0?0:A)},h5=f,Cj=ro,KD=vo("species"),I5=function(a){return Cj>=51||!h5(function(){var A=[];return(A.constructor={})[KD]=function(){return{foo:1}},A[a](Boolean).foo!==1})},pj=wn,fj=f,_j=C0,mj=Kn,Bj=L1,C5=CE,p5=function(a){if(a>9007199254740991)throw l5("Maximum allowed index exceeded");return a},f5=Ov,HD=E5,Sj=I5,VS=ro,_5=vo("isConcatSpreadable"),Rj=VS>=51||!fj(function(){var a=[];return a[_5]=!1,a.concat()[0]!==a}),yj=function(a){if(!mj(a))return!1;var A=a[_5];return A!==void 0?!!A:_j(a)};pj({target:"Array",proto:!0,forced:!Rj||!Sj("concat")},{concat:function(a){var A,l,g,C,m,y=Bj(this),w=HD(y,0),b=0;for(A=-1,g=arguments.length;AV;V++)V in b&&(y=k(m=b[V],V,w));return q}},yg={forEach:N5(0)},J0=wn,q0=re,JD=ht,Nj=Y,jE=lt,JE=ua,Oj=f,QA=ts,O5=j,HS=Do,mC=gs,YS=Nt,L5=k1,jS=yi,BC=TI,M5=Om,k5=vm,qD=YD,Lj=yI,P5=ye,U5=mn,Mj=YT,x5=vt,F5=Eg,kj=m0,JS=pd,WD=Dm,G5=fd,Pj=vo,XD=_C,Uj=ha,xj=b5,V5=Ig,K5=I1,H3=yg.forEach,Bc=Tm("hidden"),qS="Symbol",j3="prototype",WS=K5.set,zD=K5.getterFor(qS),Vl=Object[j3],W0=q0.Symbol,W3=W0&&W0[j3],$D=q0.RangeError,H5=q0.TypeError,ZD=q0.QObject,eb=P5.f,qE=U5.f,WE=qD.f,Fj=x5.f,Y5=Nj([].push),Qg=JS("symbols"),z3=JS("op-symbols"),Gj=JS("wks"),tb=!ZD||!ZD[j3]||!ZD[j3].findChild,j5=function(a,A,l){var g=eb(Vl,A);g&&delete Vl[A],qE(a,A,l),g&&a!==Vl&&qE(Vl,A,g)},rb=jE&&Oj(function(){return BC(qE({},"a",{get:function(){return qE(this,"a",{value:7}).a}})).a!==7})?j5:qE,$3=function(a,A){var l=Qg[a]=BC(W3);return WS(l,{type:qS,tag:a,description:A}),jE||(l.description=A),l},XS=function(a,A,l){a===Vl&&XS(z3,A,l),HS(a);var g=YS(A);return HS(l),QA(Qg,g)?(l.enumerable?(QA(a,Bc)&&a[Bc][g]&&(a[Bc][g]=!1),l=BC(l,{enumerable:jS(0,!1)})):(QA(a,Bc)||qE(a,Bc,jS(1,BC(null))),a[Bc][g]=!0),rb(a,g,l)):qE(a,g,l)},ib=function(a,A){HS(a);var l=mC(A),g=M5(l).concat(W5(l));return H3(g,function(C){jE&&!JD(J5,l,C)||XS(a,C,l[C])}),a},J5=function(a){var A=YS(a),l=JD(Fj,this,A);return!(this===Vl&&QA(Qg,A)&&!QA(z3,A))&&(!(l||!QA(this,A)||!QA(Qg,A)||QA(this,Bc)&&this[Bc][A])||l)},nb=function(a,A){var l=mC(a),g=YS(A);if(l!==Vl||!QA(Qg,g)||QA(z3,g)){var C=eb(l,g);return!C||!QA(Qg,g)||QA(l,Bc)&&l[Bc][g]||(C.enumerable=!0),C}},q5=function(a){var A=WE(mC(a)),l=[];return H3(A,function(g){QA(Qg,g)||QA(WD,g)||Y5(l,g)}),l},W5=function(a){var A=a===Vl,l=WE(A?z3:mC(a)),g=[];return H3(l,function(C){!QA(Qg,C)||A&&!QA(Vl,C)||Y5(g,Qg[C])}),g};JE||(W0=function(){if(O5(W3,this))throw new H5("Symbol is not a constructor");var a=arguments.length&&arguments[0]!==void 0?L5(arguments[0]):void 0,A=G5(a),l=function(g){var C=this===void 0?q0:this;C===Vl&&JD(l,z3,g),QA(C,Bc)&&QA(C[Bc],A)&&(C[Bc][A]=!1);var m=jS(1,g);try{rb(C,A,m)}catch(y){if(!(y instanceof $D))throw y;j5(C,A,m)}};return jE&&tb&&rb(Vl,A,{configurable:!0,set:l}),$3(A,a)},F5(W3=W0[j3],"toString",function(){return zD(this).tag}),F5(W0,"withoutSetter",function(a){return $3(G5(a),a)}),x5.f=J5,U5.f=XS,Mj.f=ib,P5.f=nb,k5.f=qD.f=q5,Lj.f=W5,XD.f=function(a){return $3(Pj(a),a)},jE&&kj(W3,"description",{configurable:!0,get:function(){return zD(this).description}})),J0({global:!0,wrap:!0,forced:!JE,sham:!JE},{Symbol:W0}),H3(M5(Gj),function(a){Uj(a)}),J0({target:qS,stat:!0,forced:!JE},{useSetter:function(){tb=!0},useSimple:function(){tb=!1}}),J0({target:"Object",stat:!0,forced:!JE,sham:!jE},{create:function(a,A){return A===void 0?BC(a):ib(BC(a),A)},defineProperty:XS,defineProperties:ib,getOwnPropertyDescriptor:nb}),J0({target:"Object",stat:!0,forced:!JE},{getOwnPropertyNames:q5}),xj(),V5(W0,qS),WD[Bc]=!0;var ob=ua&&!!Symbol.for&&!!Symbol.keyFor,Vj=wn,Kj=Es,Hj=ts,Yj=k1,X5=pd,jj=ob,sb=X5("string-to-symbol-registry"),Jj=X5("symbol-to-string-registry");Vj({target:"Symbol",stat:!0,forced:!jj},{for:function(a){var A=Yj(a);if(Hj(sb,A))return sb[A];var l=Kj("Symbol")(A);return sb[A]=l,Jj[l]=A,l}});var ab=wn,qj=ts,Wj=D1,Xj=xA,zj=ob,zS=pd("symbol-to-string-registry");ab({target:"Symbol",stat:!0,forced:!zj},{keyFor:function(a){if(!Wj(a))throw new TypeError(Xj(a)+" is not a symbol");if(qj(zS,a))return zS[a]}});var z5=C0,$5=rt,Z5=Ge,$j=k1,Ab=Y([].push),ir=wn,eP=Es,cb=_e,Zj=ht,ef=Y,tP=f,rP=rt,iP=D1,lb=pg,eJ=function(a){if($5(a))return a;if(z5(a)){for(var A=a.length,l=[],g=0;g=l.length;return y=!y&&Ht.isArray(C)?C.length:y,b?(Ht.hasOwnProp(C,y)?C[y]=[C[y],g]:C[y]=g,!w):(C[y]&&Ht.isObject(C[y])||(C[y]=[]),A(l,g,C[y],m)&&Ht.isArray(C[y])&&(C[y]=function(M){let k={},V=Object.keys(M),K,q=V.length,ce;for(K=0;K{A(function(m){return DJ(Ht).call(Ht,/\w+|\[(\w*)]/g,m).map(y=>y[0]==="[]"?"":y[1]||y[0])}(g),C,l,0)}),l}return null}let uf={transitional:A5,adapter:["xhr","http","fetch"],transformRequest:[function(a,A){let l=A.getContentType()||"",g=l.indexOf("application/json")>-1,C=Ht.isObject(a);if(C&&Ht.isHTMLForm(a)&&(a=new FormData(a)),Ht.isFormData(a))return g?JSON.stringify(DP(a)):a;if(Ht.isArrayBuffer(a)||Ht.isBuffer(a)||Ht.isStream(a)||Ht.isFile(a)||Ht.isBlob(a)||Ht.isReadableStream(a))return a;if(Ht.isArrayBufferView(a))return a.buffer;if(Ht.isURLSearchParams(a))return A.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),a.toString();let m;if(C){if(l.indexOf("application/x-www-form-urlencoded")>-1)return Rb(a,this.formSerializer).toString();if((m=Ht.isFileList(a))||l.indexOf("multipart/form-data")>-1){let y=this.env&&this.env.FormData;return x3(m?{"files[]":a}:a,y&&new y,this.formSerializer)}}return C||g?(A.setContentType("application/json",!1),function(y,w,b){if(Ht.isString(y))try{return(w||JSON.parse)(y),RA(Ht).call(Ht,y)}catch(M){if(M.name!=="SyntaxError")throw M}return(b||JSON.stringify)(y)}(a)):a}],transformResponse:[function(a){let A=this.transitional||uf.transitional,l=A&&A.forcedJSONParsing,g=this.responseType==="json";if(Ht.isResponse(a)||Ht.isReadableStream(a))return a;if(a&&Ht.isString(a)&&(l&&!this.responseType||g)){let C=!(A&&A.silentJSONParsing)&&g;try{return JSON.parse(a,this.parseReviver)}catch(m){if(C)throw m.name==="SyntaxError"?Fn.from(m,Fn.ERR_BAD_RESPONSE,this,null,this.response):m}}return a}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:YA.classes.FormData,Blob:YA.classes.Blob},validateStatus:function(a){return a>=200&&a<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ht.forEach(["delete","get","head","post","put","patch"],a=>{uf.headers[a]={}});var vb=uf;let bJ=Ht.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Db=Symbol("internals");function QC(a){var A;return a&&RA(A=String(a)).call(A).toLowerCase()}function zE(a){return a===!1||a==null?a:Ht.isArray(a)?a.map(zE):String(a)}function TC(a,A,l,g,C){return Ht.isFunction(g)?g.call(this,A,l):(C&&(A=l),Ht.isString(A)?Ht.isString(g)?A.indexOf(g)!==-1:Ht.isRegExp(g)?g.test(A):void 0:void 0)}class wC{constructor(A){A&&this.set(A)}set(A,l,g){let C=this;function m(b,M,k){let V=QC(M);if(!V)throw new Error("header name must be a non-empty string");let K=Ht.findKey(C,V);(!K||C[K]===void 0||k===!0||k===void 0&&C[K]!==!1)&&(C[K||M]=zE(b))}let y=(b,M)=>Ht.forEach(b,(k,V)=>m(k,V,M));if(Ht.isPlainObject(A)||A instanceof this.constructor)y(A,l);else if(Ht.isString(A)&&(A=RA(A).call(A))&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(RA(w=A).call(w)))y((b=>{let M={},k,V,K;return b&&b.split(` +`).forEach(function(q){var ce,oe;K=q.indexOf(":"),k=RA(ce=q.substring(0,K)).call(ce).toLowerCase(),V=RA(oe=q.substring(K+1)).call(oe),!k||M[k]&&bJ[k]||(k==="set-cookie"?M[k]?M[k].push(V):M[k]=[V]:M[k]=M[k]?M[k]+", "+V:V)}),M})(A),l);else if(Ht.isObject(A)&&Ht.isIterable(A)){let b,M,k={};for(let V of A){if(!Ht.isArray(V))throw TypeError("Object iterator must return a key-value pair");k[M=V[0]]=(b=k[M])?Ht.isArray(b)?[...b,V[1]]:[b,V[1]]:V[1]}y(k,l)}else A!=null&&m(l,A,g);var w;return this}get(A,l){if(A=QC(A)){let g=Ht.findKey(this,A);if(g){let C=this[g];if(!l)return C;if(l===!0)return function(m){let y=Object.create(null),w=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,b;for(;b=w.exec(m);)y[b[1]]=b[2];return y}(C);if(Ht.isFunction(l))return l.call(this,C,g);if(Ht.isRegExp(l))return l.exec(C);throw new TypeError("parser must be boolean|regexp|function")}}}has(A,l){if(A=QC(A)){let g=Ht.findKey(this,A);return!(!g||this[g]===void 0||l&&!TC(0,this[g],g,l))}return!1}delete(A,l){let g=this,C=!1;function m(y){if(y=QC(y)){let w=Ht.findKey(g,y);!w||l&&!TC(0,g[w],w,l)||(delete g[w],C=!0)}}return Ht.isArray(A)?A.forEach(m):m(A),C}clear(A){let l=Object.keys(this),g=l.length,C=!1;for(;g--;){let m=l[g];A&&!TC(0,this[m],m,A,!0)||(delete this[m],C=!0)}return C}normalize(A){let l=this,g={};return Ht.forEach(this,(C,m)=>{var y;let w=Ht.findKey(g,m);if(w)return l[w]=zE(C),void delete l[m];let b=A?function(M){return RA(M).call(M).toLowerCase().replace(/([a-z\d])(\w*)/g,(k,V,K)=>V.toUpperCase()+K)}(m):RA(y=String(m)).call(y);b!==m&&delete l[m],l[b]=zE(C),g[b]=!0}),this}concat(){for(var A=arguments.length,l=new Array(A),g=0;g{g!=null&&g!==!1&&(l[C]=A&&Ht.isArray(g)?g.join(", "):g)}),l}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(A=>{let[l,g]=A;return l+": "+g}).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(A){return A instanceof this?A:new this(A)}static concat(A){let l=new this(A);for(var g=arguments.length,C=new Array(g>1?g-1:0),m=1;ml.set(y)),l}static accessor(A){let l=(this[Db]=this[Db]={accessors:{}}).accessors,g=this.prototype;function C(m){let y=QC(m);l[y]||(function(w,b){let M=Ht.toCamelCase(" "+b);["get","set","has"].forEach(k=>{Object.defineProperty(w,k+M,{value:function(V,K,q){return this[k].call(this,b,V,K,q)},configurable:!0})})}(g,m),l[y]=!0)}return Ht.isArray(A)?A.forEach(C):C(A),this}}wC.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Ht.reduceDescriptors(wC.prototype,(a,A)=>{let{value:l}=a,g=A[0].toUpperCase()+A.slice(1);return{get:()=>l,set(C){this[g]=C}}}),Ht.freezeMethods(wC);var Rc=wC;function yc(a,A){let l=this||vb,g=A||l,C=Rc.from(g.headers),m=g.data;return Ht.forEach(a,function(y){m=y.call(l,m,C.normalize(),A?A.status:void 0)}),C.normalize(),m}function bP(a){return!(!a||!a.__CANCEL__)}function vC(a,A,l){Fn.call(this,a??"canceled",Fn.ERR_CANCELED,A,l),this.name="CanceledError"}function TA(a,A,l){let g=l.config.validateStatus;l.status&&g&&!g(l.status)?A(new Fn("Request failed with status code "+l.status,[Fn.ERR_BAD_REQUEST,Fn.ERR_BAD_RESPONSE][Math.floor(l.status/100)-4],l.config,l.request,l)):a(l)}Ht.inherits(vC,Fn,{__CANCEL__:!0});let qi=function(a,A){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:3,g=0,C=function(m,y){m=m||10;let w=new Array(m),b=new Array(m),M,k=0,V=0;return y=y!==void 0?y:1e3,function(K){let q=Date.now(),ce=b[V];M||(M=q),w[k]=K,b[k]=q;let oe=V,le=0;for(;oe!==k;)le+=w[oe++],oe%=m;if(k=(k+1)%m,k===V&&(V=(V+1)%m),q-M1&&arguments[1]!==void 0?arguments[1]:Date.now(),w=null,b&&(clearTimeout(b),b=null),m(...K)};return[function(){let K=Date.now(),q=K-M;for(var ce=arguments.length,oe=new Array(ce),le=0;le=k?V(oe,K):(w=oe,b||(b=setTimeout(()=>{b=null,V(w)},k-q)))},()=>w&&V(w)]}(m=>{let y=m.loaded,w=m.lengthComputable?m.total:void 0,b=y-g,M=C(b);g=y,a({loaded:y,total:w,progress:w?y/w:void 0,bytes:b,rate:M||void 0,estimated:M&&w&&y<=w?(w-y)/M:void 0,event:m,lengthComputable:w!=null,[A?"download":"upload"]:!0})},l)},cR=(a,A)=>{let l=a!=null;return[g=>A[0]({lengthComputable:l,total:a,loaded:g}),A[1]]},bb=a=>function(){for(var A=arguments.length,l=new Array(A),g=0;ga(...l))};var Ob=YA.hasStandardBrowserEnv?((a,A)=>l=>(l=new SA(l,YA.origin),a.protocol===l.protocol&&a.host===l.host&&(A||a.port===l.port)))(new SA(YA.origin),YA.navigator&&/(msie|trident)/i.test(YA.navigator.userAgent)):()=>!0,NJ=YA.hasStandardBrowserEnv?{write(a,A,l,g,C,m,y){if(typeof document>"u")return;let w=["".concat(a,"=").concat(encodeURIComponent(A))];Ht.isNumber(l)&&w.push("expires=".concat(new Date(l).toUTCString())),Ht.isString(g)&&w.push("path=".concat(g)),Ht.isString(C)&&w.push("domain=".concat(C)),m===!0&&w.push("secure"),Ht.isString(y)&&w.push("SameSite=".concat(y)),document.cookie=w.join("; ")},read(a){if(typeof document>"u")return null;let A=document.cookie.match(new RegExp("(?:^|; )"+a+"=([^;]*)"));return A?decodeURIComponent(A[1]):null},remove(a){this.write(a,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};function gf(a,A,l){let g=!function(C){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(C)}(A);return a&&(g||l==0)?function(C,m){return m?C.replace(/\/?\/$/,"")+"/"+m.replace(/^\/+/,""):C}(a,A):A}function Lb(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Ef(a){for(var A=1;Aa instanceof Rc?Ef({},a):a;function $0(a,A){A=A||{};let l={};function g(M,k,V,K){return Ht.isPlainObject(M)&&Ht.isPlainObject(k)?Ht.merge.call({caseless:K},M,k):Ht.isPlainObject(k)?Ht.merge({},k):Ht.isArray(k)?k.slice():k}function C(M,k,V,K){return Ht.isUndefined(k)?Ht.isUndefined(M)?void 0:g(void 0,M,0,K):g(M,k,0,K)}function m(M,k){if(!Ht.isUndefined(k))return g(void 0,k)}function y(M,k){return Ht.isUndefined(k)?Ht.isUndefined(M)?void 0:g(void 0,M):g(void 0,k)}function w(M,k,V){return V in A?g(M,k):V in a?g(void 0,M):void 0}let b={url:m,method:m,data:m,baseURL:y,transformRequest:y,transformResponse:y,paramsSerializer:y,timeout:y,timeoutMessage:y,withCredentials:y,withXSRFToken:y,adapter:y,responseType:y,xsrfCookieName:y,xsrfHeaderName:y,onUploadProgress:y,onDownloadProgress:y,decompress:y,maxContentLength:y,maxBodyLength:y,beforeRedirect:y,transport:y,httpAgent:y,httpsAgent:y,cancelToken:y,socketPath:y,responseEncoding:y,validateStatus:w,headers:(M,k,V)=>C(Mb(M),Mb(k),0,!0)};return Ht.forEach(Object.keys(Ef(Ef({},a),A)),function(M){let k=b[M]||C,V=k(a[M],A[M],M);Ht.isUndefined(V)&&k!==w||(l[M]=V)}),l}var kb=a=>{let A=$0({},a),{data:l,withXSRFToken:g,xsrfHeaderName:C,xsrfCookieName:m,headers:y,auth:w}=A;if(A.headers=y=Rc.from(y),A.url=Su(gf(A.baseURL,A.url,A.allowAbsoluteUrls),a.params,a.paramsSerializer),w&&y.set("Authorization","Basic "+btoa((w.username||"")+":"+(w.password?unescape(encodeURIComponent(w.password)):""))),Ht.isFormData(l)){if(YA.hasStandardBrowserEnv||YA.hasStandardBrowserWebWorkerEnv)y.setContentType(void 0);else if(Ht.isFunction(l.getHeaders)){let b=l.getHeaders(),M=["content-type","content-length"];Object.entries(b).forEach(k=>{let[V,K]=k;Rt(M).call(M,V.toLowerCase())&&y.set(V,K)})}}if(YA.hasStandardBrowserEnv&&(g&&Ht.isFunction(g)&&(g=g(A)),g||g!==!1&&Ob(A.url))){let b=C&&m&&NJ.read(m);b&&y.set(C,b)}return A},NP=typeof XMLHttpRequest<"u"&&function(a){return new Ft(function(A,l){let g=kb(a),C=g.data,m=Rc.from(g.headers).normalize(),y,w,b,M,k,{responseType:V,onUploadProgress:K,onDownloadProgress:q}=g;function ce(){M&&M(),k&&k(),g.cancelToken&&g.cancelToken.unsubscribe(y),g.signal&&g.signal.removeEventListener("abort",y)}let oe=new XMLHttpRequest;function le(){if(!oe)return;let Se=Rc.from("getAllResponseHeaders"in oe&&oe.getAllResponseHeaders());TA(function(be){A(be),ce()},function(be){l(be),ce()},{data:V&&V!=="text"&&V!=="json"?oe.response:oe.responseText,status:oe.status,statusText:oe.statusText,headers:Se,config:a,request:oe}),oe=null}oe.open(g.method.toUpperCase(),g.url,!0),oe.timeout=g.timeout,"onloadend"in oe?oe.onloadend=le:oe.onreadystatechange=function(){oe&&oe.readyState===4&&(oe.status!==0||oe.responseURL&&oe.responseURL.indexOf("file:")===0)&&setTimeout(le)},oe.onabort=function(){oe&&(l(new Fn("Request aborted",Fn.ECONNABORTED,a,oe)),oe=null)},oe.onerror=function(Se){let be=new Fn(Se&&Se.message?Se.message:"Network Error",Fn.ERR_NETWORK,a,oe);be.event=Se||null,l(be),oe=null},oe.ontimeout=function(){let Se=g.timeout?"timeout of "+g.timeout+"ms exceeded":"timeout exceeded",be=g.transitional||A5;g.timeoutErrorMessage&&(Se=g.timeoutErrorMessage),l(new Fn(Se,be.clarifyTimeoutError?Fn.ETIMEDOUT:Fn.ECONNABORTED,a,oe)),oe=null},C===void 0&&m.setContentType(null),"setRequestHeader"in oe&&Ht.forEach(m.toJSON(),function(Se,be){oe.setRequestHeader(be,Se)}),Ht.isUndefined(g.withCredentials)||(oe.withCredentials=!!g.withCredentials),V&&V!=="json"&&(oe.responseType=g.responseType),q&&([b,k]=qi(q,!0),oe.addEventListener("progress",b)),K&&oe.upload&&([w,M]=qi(K),oe.upload.addEventListener("progress",w),oe.upload.addEventListener("loadend",M)),(g.cancelToken||g.signal)&&(y=Se=>{oe&&(l(!Se||Se.type?new vC(null,a,oe):Se),oe.abort(),oe=null)},g.cancelToken&&g.cancelToken.subscribe(y),g.signal&&(g.signal.aborted?y():g.signal.addEventListener("abort",y)));let pe=function(Se){let be=/^([-+\w]{1,25})(:?\/\/|:)/.exec(Se);return be&&be[1]||""}(g.url);pe&&YA.protocols.indexOf(pe)===-1?l(new Fn("Unsupported protocol "+pe+":",Fn.ERR_BAD_REQUEST,a)):oe.send(C||null)})},Pb=(a,A)=>{let{length:l}=a=a?a.filter(Boolean):[];if(A||l){let g,C=new AbortController,m=function(M){if(!g){g=!0,w();let k=M instanceof Error?M:this.reason;C.abort(k instanceof Fn?k:new vC(k instanceof Error?k.message:k))}},y=A&&setTimeout(()=>{y=null,m(new Fn("timeout ".concat(A," of ms exceeded"),Fn.ETIMEDOUT))},A),w=()=>{a&&(y&&clearTimeout(y),y=null,a.forEach(M=>{M.unsubscribe?M.unsubscribe(m):M.removeEventListener("abort",m)}),a=null)};a.forEach(M=>M.addEventListener("abort",m));let{signal:b}=C;return b.unsubscribe=()=>Ht.asap(w),b}},lR=I($M),OP=_C.f("asyncIterator"),OJ=I(OP);function dR(a,A){this.v=a,this.k=A}function wA(a){return function(){return new hf(a.apply(this,arguments))}}function hf(a){var A,l;function g(m,y){try{var w=a[m](y),b=w.value,M=b instanceof dR;lR.resolve(M?b.v:b).then(function(k){if(M){var V=m==="return"?"return":"next";if(!b.k||k.done)return g(V,k);k=a[V](k).value}C(w.done?"return":"normal",k)},function(k){g("throw",k)})}catch(k){C("throw",k)}}function C(m,y){switch(m){case"return":A.resolve({value:y,done:!0});break;case"throw":A.reject(y);break;default:A.resolve({value:y,done:!1})}(A=A.next)?g(A.key,A.arg):l=null}this._invoke=function(m,y){return new lR(function(w,b){var M={key:m,arg:y,resolve:w,reject:b,next:null};l?l=l.next=M:(A=l=M,g(m,y))})},typeof a.return!="function"&&(this.return=void 0)}function ri(a){return new dR(a,0)}function Z0(a){var A={},l=!1;function g(C,m){return l=!0,m=new lR(function(y){y(a[C](m))}),{done:!1,value:new dR(m,1)}}return A[z0!==void 0&&mb||"@@iterator"]=function(){return this},A.next=function(C){return l?(l=!1,C):g("next",C)},typeof a.throw=="function"&&(A.throw=function(C){if(l)throw l=!1,C;return g("throw",C)}),typeof a.return=="function"&&(A.return=function(C){return l?(l=!1,C):g("return",C)}),A}hf.prototype[typeof z0=="function"&&OJ||"@@asyncIterator"]=function(){return this},hf.prototype.next=function(a){return this._invoke("next",a)},hf.prototype.throw=function(a){return this._invoke("throw",a)},hf.prototype.return=function(a){return this._invoke("return",a)};var $E=I(OP);function Ub(a){var A,l,g,C=2;for(typeof Symbol<"u"&&(l=$E,g=Symbol.iterator);C--;){if(l&&(A=a[l])!=null)return A.call(a);if(g&&(A=a[g])!=null)return new uR(A.call(a));l="@@asyncIterator",g="@@iterator"}throw new TypeError("Object is not async iterable")}function uR(a){function A(l){if(Object(l)!==l)return Ft.reject(new TypeError(l+" is not an object."));var g=l.done;return Ft.resolve(l.value).then(function(C){return{value:C,done:g}})}return uR=function(l){this.s=l,this.n=l.next},uR.prototype={s:null,n:null,next:function(){return A(this.n.apply(this.s,arguments))},return:function(l){var g=this.s.return;return g===void 0?Ft.resolve({value:l,done:!0}):A(g.apply(this.s,arguments))},throw:function(l){var g=this.s.return;return g===void 0?Ft.reject(l):A(g.apply(this.s,arguments))}},new uR(a)}let ae=function*(a,A){let l=a.byteLength;if(!A||l{let C=LP(a,A),m,y=0,w=b=>{m||(m=!0,g&&g(b))};return new ReadableStream({async pull(b){try{let{done:M,value:k}=await C.next();if(M)return w(),void b.close();let V=k.byteLength;if(l){let K=y+=V;l(K)}b.enqueue(new Uint8Array(k))}catch(M){throw w(M),M}},cancel:b=>(w(b),C.return())},{highWaterMark:2})};function ER(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function MP(a){for(var A=1;A{let{Request:A,Response:l}=a;return{Request:A,Response:l}})(Ht.global),{ReadableStream:xb,TextEncoder:Fb}=Ht.global,jA=function(a){try{for(var A=arguments.length,l=new Array(A>1?A-1:0),g=1;g{a=Ht.merge.call({skipUndefined:!0},MJ,a);let{fetch:A,Request:l,Response:g}=a,C=A?hR(A):typeof fetch=="function",m=hR(l),y=hR(g);if(!C)return!1;let w=C&&hR(xb),b=C&&(typeof Fb=="function"?(M=new Fb,ce=>M.encode(ce)):async ce=>new Uint8Array(await new l(ce).arrayBuffer()));var M;let k=m&&w&&jA(()=>{let ce=!1,oe=new l(YA.origin,{body:new xb,method:"POST",get duplex(){return ce=!0,"half"}}).headers.has("Content-Type");return ce&&!oe}),V=y&&w&&jA(()=>Ht.isReadableStream(new g("").body)),K={stream:V&&(ce=>ce.body)};C&&["text","arrayBuffer","blob","formData","stream"].forEach(ce=>{!K[ce]&&(K[ce]=(oe,le)=>{let pe=oe&&oe[ce];if(pe)return pe.call(oe);throw new Fn("Response type '".concat(ce,"' is not supported"),Fn.ERR_NOT_SUPPORT,le)})});let q=async(ce,oe)=>Ht.toFiniteNumber(ce.getContentLength())??(async pe=>pe==null?0:Ht.isBlob(pe)?pe.size:Ht.isSpecCompliantForm(pe)?(await new l(YA.origin,{method:"POST",body:pe}).arrayBuffer()).byteLength:Ht.isArrayBufferView(pe)||Ht.isArrayBuffer(pe)?pe.byteLength:(Ht.isURLSearchParams(pe)&&(pe+=""),Ht.isString(pe)?(await b(pe)).byteLength:void 0))(oe);return async ce=>{let{url:oe,method:le,data:pe,signal:Se,cancelToken:be,timeout:Ue,onDownloadProgress:xe,onUploadProgress:Le,responseType:je,headers:dt,withCredentials:pt="same-origin",fetchOptions:zt}=kb(ce),gr=A||fetch;je=je?(je+"").toLowerCase():"text";let li=Pb([Se,be&&be.toAbortSignal()],Ue),ii=null,br=li&&li.unsubscribe&&(()=>{li.unsubscribe()}),Zi;try{if(Le&&k&&le!=="get"&&le!=="head"&&(Zi=await q(dt,pe))!==0){let ne,ve=new l(oe,{method:"POST",body:pe,duplex:"half"});if(Ht.isFormData(pe)&&(ne=ve.headers.get("content-type"))&&dt.setContentType(ne),ve.body){let[Pe,Lt]=cR(Zi,qi(bb(Le)));pe=gR(ve.body,65536,Pe,Lt)}}Ht.isString(pt)||(pt=pt?"include":"omit");let Hn=m&&"credentials"in l.prototype,ut=MP(MP({},zt),{},{signal:li,method:le.toUpperCase(),headers:dt.normalize().toJSON(),body:pe,duplex:"half",credentials:Hn?pt:void 0});ii=m&&new l(oe,ut);let kt=await(m?gr(ii,zt):gr(oe,ut)),Wt=V&&(je==="stream"||je==="response");if(V&&(xe||Wt&&br)){let ne={};["status","statusText","headers"].forEach(Kr=>{ne[Kr]=kt[Kr]});let ve=Ht.toFiniteNumber(kt.headers.get("content-length")),[Pe,Lt]=xe&&cR(ve,qi(bb(xe),!0))||[];kt=new g(gR(kt.body,65536,Pe,()=>{Lt&&Lt(),br&&br()}),ne)}je=je||"text";let It=await K[Ht.findKey(K,je)||"text"](kt,ce);return!Wt&&br&&br(),await new Ft((ne,ve)=>{TA(ne,ve,{data:It,headers:Rc.from(kt.headers),status:kt.status,statusText:kt.statusText,config:ce,request:ii})})}catch(Hn){throw br&&br(),Hn&&Hn.name==="TypeError"&&/Load failed|fetch/i.test(Hn.message)?Object.assign(new Fn("Network Error",Fn.ERR_NETWORK,ce,ii),{cause:Hn.cause||Hn}):Fn.from(Hn,Hn&&Hn.code,ce,ii)}}},kJ=new Map,PP=a=>{let A=a&&a.env||{},{fetch:l,Request:g,Response:C}=A,m=[g,C,l],y,w,b=m.length,M=kJ;for(;b--;)y=m[b],w=M.get(y),w===void 0&&M.set(y,w=b?new Map:kP(A)),M=w;return w};PP();let IR={http:null,xhr:NP,fetch:{get:PP}};Ht.forEach(IR,(a,A)=>{if(a){try{Object.defineProperty(a,"name",{value:A})}catch{}Object.defineProperty(a,"adapterName",{value:A})}});let UP=a=>"- ".concat(a),PJ=a=>Ht.isFunction(a)||a===null||a===!1;var xP={getAdapter:function(a,A){a=Ht.isArray(a)?a:[a];let{length:l}=a,g,C,m={};for(let y=0;y{let[b,M]=w;return"adapter ".concat(b," ")+(M===!1?"is not supported by the environment":"is not available in the build")});throw new Fn("There is no suitable adapter to dispatch the request "+(l?y.length>1?`since : +`+y.map(UP).join(` +`):" "+UP(y[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return C},adapters:IR};function Gb(a){if(a.cancelToken&&a.cancelToken.throwIfRequested(),a.signal&&a.signal.aborted)throw new vC(null,a)}function FP(a){return Gb(a),a.headers=Rc.from(a.headers),a.data=yc.call(a,a.transformRequest),["post","put","patch"].indexOf(a.method)!==-1&&a.headers.setContentType("application/x-www-form-urlencoded",!1),xP.getAdapter(a.adapter||vb.adapter,a)(a).then(function(A){return Gb(a),A.data=yc.call(a,a.transformResponse,A),A.headers=Rc.from(A.headers),A},function(A){return bP(A)||(Gb(a),A&&A.response&&(A.response.data=yc.call(a,a.transformResponse,A.response),A.response.headers=Rc.from(A.response.headers))),Ft.reject(A)})}let GP="1.13.2",If={};["object","boolean","number","function","string","symbol"].forEach((a,A)=>{If[a]=function(l){return typeof l===a||"a"+(A<1?"n ":" ")+a}});let Vb={};If.transitional=function(a,A,l){function g(C,m){return"[Axios v"+GP+"] Transitional option '"+C+"'"+m+(l?". "+l:"")}return(C,m,y)=>{if(a===!1)throw new Fn(g(m," has been removed"+(A?" in "+A:"")),Fn.ERR_DEPRECATED);return A&&!Vb[m]&&(Vb[m]=!0,console.warn(g(m," has been deprecated since v"+A+" and will be removed in the near future"))),!a||a(C,m,y)}},If.spelling=function(a){return(A,l)=>(console.warn("".concat(l," is likely a misspelling of ").concat(a)),!0)};var CR={assertOptions:function(a,A,l){if(typeof a!="object")throw new Fn("options must be an object",Fn.ERR_BAD_OPTION_VALUE);let g=Object.keys(a),C=g.length;for(;C-- >0;){let m=g[C],y=A[m];if(y){let w=a[m],b=w===void 0||y(w,m,a);if(b!==!0)throw new Fn("option "+m+" must be "+b,Fn.ERR_BAD_OPTION_VALUE)}else if(l!==!0)throw new Fn("Unknown option "+m,Fn.ERR_BAD_OPTION)}},validators:If};let nl=CR.validators,Cf=class{constructor(a){this.defaults=a||{},this.interceptors={request:new fC,response:new fC}}async request(a,A){try{return await this._request(a,A)}catch(l){if(l instanceof Error){let g={};Error.captureStackTrace?Error.captureStackTrace(g):g=new Error;let C=g.stack?g.stack.replace(/^.+\n/,""):"";try{l.stack?C&&!String(l.stack).endsWith(C.replace(/^.+\n.+\n/,""))&&(l.stack+=` +`+C):l.stack=C}catch{}}throw l}}_request(a,A){typeof a=="string"?(A=A||{}).url=a:A=a||{},A=$0(this.defaults,A);let{transitional:l,paramsSerializer:g,headers:C}=A;l!==void 0&&CR.assertOptions(l,{silentJSONParsing:nl.transitional(nl.boolean),forcedJSONParsing:nl.transitional(nl.boolean),clarifyTimeoutError:nl.transitional(nl.boolean)},!1),g!=null&&(Ht.isFunction(g)?A.paramsSerializer={serialize:g}:CR.assertOptions(g,{encode:nl.function,serialize:nl.function},!0)),A.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?A.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:A.allowAbsoluteUrls=!0),CR.assertOptions(A,{baseUrl:nl.spelling("baseURL"),withXsrfToken:nl.spelling("withXSRFToken")},!0),A.method=(A.method||this.defaults.method||"get").toLowerCase();let m=C&&Ht.merge(C.common,C[A.method]);C&&Ht.forEach(["delete","get","head","post","put","patch","common"],q=>{delete C[q]}),A.headers=Rc.concat(m,C);let y=[],w=!0;this.interceptors.request.forEach(function(q){typeof q.runWhen=="function"&&q.runWhen(A)===!1||(w=w&&q.synchronous,y.unshift(q.fulfilled,q.rejected))});let b=[],M;this.interceptors.response.forEach(function(q){b.push(q.fulfilled,q.rejected)});let k,V=0;if(!w){let q=[FP.bind(this),void 0];for(q.unshift(...y),q.push(...b),k=q.length,M=Ft.resolve(A);V{if(!g._listeners)return;let m=g._listeners.length;for(;m-- >0;)g._listeners[m](C);g._listeners=null}),this.promise.then=C=>{let m,y=new Ft(w=>{g.subscribe(w),m=w}).then(C);return y.cancel=function(){g.unsubscribe(m)},y},A(function(C,m,y){g.reason||(g.reason=new vC(C,m,y),l(g.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(A){this.reason?A(this.reason):this._listeners?this._listeners.push(A):this._listeners=[A]}unsubscribe(A){if(!this._listeners)return;let l=this._listeners.indexOf(A);l!==-1&&this._listeners.splice(l,1)}toAbortSignal(){let A=new AbortController,l=g=>{A.abort(g)};return this.subscribe(l),A.signal.unsubscribe=()=>this.unsubscribe(l),A.signal}static source(){let A;return{token:new e2(function(l){A=l}),cancel:A}}}var UJ=e2;let Kb={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Kb).forEach(a=>{let[A,l]=a;Kb[l]=A});var xJ=Kb;let eA=function a(A){let l=new pf(A),g=jk(pf.prototype.request,l);return Ht.extend(g,pf.prototype,l,{allOwnKeys:!0}),Ht.extend(g,l,null,{allOwnKeys:!0}),g.create=function(C){return a($0(A,C))},g}(vb);eA.Axios=pf,eA.CanceledError=vC,eA.CancelToken=UJ,eA.isCancel=bP,eA.VERSION=GP,eA.toFormData=x3,eA.AxiosError=Fn,eA.Cancel=eA.CanceledError,eA.all=function(a){return Ft.all(a)},eA.spread=function(a){return function(A){return a.apply(null,A)}},eA.isAxiosError=function(a){return Ht.isObject(a)&&a.isAxiosError===!0},eA.mergeConfig=$0,eA.AxiosHeaders=Rc,eA.formToJSON=a=>DP(Ht.isHTMLForm(a)?new FormData(a):a),eA.getAdapter=xP.getAdapter,eA.HttpStatusCode=xJ,eA.default=eA;var vA=eA;let FJ=()=>{};function ff(){let a={promise:void 0,isResolved:!1,isRejected:!1,isFinished:!1,resolve:void 0,reject:void 0,cancel:FJ};return a.promise=new Ft((A,l)=>{a.resolve=g=>{a.isFinished||(a.isResolved=!0,a.isFinished=!0,A(g),a.value=g)},a.reject=g=>{a.isFinished||(a.isRejected=!0,a.isFinished=!0,l(g))}}),a}let pR=new Map,fR=new Map,Qu=new Map,Vs=function(a){return a.WIN_10="Windows 10",a.WIN_81="Windows 8.1",a.WIN_8="Windows 8",a.WIN_7="Windows 7",a.WIN_VISTA="Windows Vista",a.WIN_SERVER_2003="Windows Server 2003",a.WIN_XP="Windows XP",a.WIN_2000="Windows 2000",a.ANDROID="Android",a.HARMONY_OS="HarmonyOS",a.OPEN_BSD="Open BSD",a.SUN_OS="Sun OS",a.LINUX="Linux",a.IOS="iOS",a.MAC_OS="Mac OS",a.CHROMIUM_OS="Chromium OS",a.QNX="QNX",a.UNIX="UNIX",a.BEOS="BeOS",a.OS_2="OS/2",a.SEARCH_BOT="Search Bot",a}({}),nn=function(a){return a.CHROME="Chrome",a.SAFARI="Safari",a.EDGE="Edge",a.FIREFOX="Firefox",a.OPERA="OPR",a.QQ="QQBrowser",a.WECHAT="MicroMessenger",a}({}),Hb=new Lk,Kl=Hb.getResult(),Yb=null;function Wi(a){if(!Yb){Kl=Hb.getResult();let A=function(w){if(w.engine.name==="Blink"&&w.browser.name!=="WeChat")return nn.CHROME;switch(w.browser.name){case"Chrome Headless":case"Chrome":case"Chromium":return nn.CHROME;case"Safari":case"Mobile Safari":return nn.SAFARI;case"Edge":return nn.EDGE;case"Firefox":return nn.FIREFOX;case"QQ":case"QQBrowser":return nn.QQ;case"Opera":return nn.OPERA;case"WeChat":return nn.WECHAT;default:return w.browser.name||""}}(Kl),l=VP(Kl),g=function(w){return w.os.name==="Windows"?w.os.version?w.os.name+" "+w.os.version:w.os.name:w.os.name||""}(Kl),C=Kl.os.version,m=VP(Kl,!1),y=Kl.device.type;if(!(A&&l&&g&&C))return{name:A,version:l,os:g,osVersion:C,browserVersion:m,deviceType:y};Yb={name:A,version:l,os:g,osVersion:C,browserVersion:m,deviceType:y}}return Yb}function VP(a){let A,l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return A=a.engine.name==="Blink"?a.engine.version||"":a.browser.version||"",l?A.split(".")[0]:A}function t2(){return Wi().os}function _f(){let a=Wi();return"".concat(a.os," ").concat(a.osVersion)}function DC(){let a=Wi();return!!(Kl.engine.name==="WebKit"&&a.os===Vs.MAC_OS&&navigator.maxTouchPoints&&navigator.maxTouchPoints>0&&a.name!==nn.SAFARI||Ma()&&a.name!==nn.SAFARI)}function Tg(){return Wi().name===nn.CHROME}function $s(){return Wi().name===nn.SAFARI}function KP(){let a=Wi();if(a.name!==nn.SAFARI||!a.browserVersion)return!1;let A=a.browserVersion.split(".");return Number(A[0])>15||Number(A[0])===15&&Number(A[1])>=4}function HP(){return Wi().name===nn.EDGE}function uo(){return Wi().name===nn.FIREFOX}function Ma(){return Wi().os===Vs.IOS}function Nd(a){let A=Wi();return!(A.name!==nn.CHROME||!A.osVersion)&&Number(A.version)>=a}function YP(a){let A=Wi();return!(A.name!==nn.CHROME||!A.osVersion)&&Number(A.version)=A&&Number(g.version)<=l:Number(g.version)===A)}function ol(a){let A=Wi();return!(A.name!==nn.EDGE||!A.osVersion)&&Number(A.version)>=a}function mf(a){let A=Wi();return!(A.name!==nn.FIREFOX||!A.osVersion)&&Number(A.version)>=a}function mR(a){let A=Wi();return!(A.name!==nn.SAFARI||!A.osVersion)&&Number(A.version)>=a}function BR(a,A,l){let g=Wi();if(g.os!==Vs.IOS||!g.osVersion)return!1;let C=g.osVersion.split(".");return l?A&&Number(C[0])===a&&Number(C[1])>A||Number(C[0])>a:A?Number(C[0])===a&&Number(C[1])>=A||Number(C[0])>a:Number(C[0])>=a}function jb(a,A,l){let g=Wi();if(g.os!==Vs.IOS||!g.osVersion)return!1;let C=g.osVersion.split(".");return l?A&&Number(C[0])===a&&Number(C[1])=a}function Bf(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])<14||Number(A[0])===14&&Number(A[1])<=6}function i2(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])===15}function SR(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])===16}function jP(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])===15&&Number(A[1])>=1}function Hl(){return $s()&&navigator.maxTouchPoints>0}function Jb(){return Wi().name===nn.WECHAT}function qb(){return window.navigator.appVersion&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)!==null&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)[1]<=35}function RR(){let a=t2();return function(){let{deviceType:A}=Wi();return A==="mobile"||A==="tablet"}()||a===Vs.ANDROID||a===Vs.IOS||a===Vs.HARMONY_OS}function Od(){let a=Wi();return a.name!==nn.EDGE&&a.name!==nn.SAFARI&&!!navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]./i)}function Ld(){return t2()===Vs.ANDROID}function bC(){let a=Wi();return Ld()&&(a.name===nn.CHROME||a.name===nn.WECHAT||/chrome|chromium/i.test(navigator.userAgent))}function Hr(a,A,l){return(A=function(g){var C=function(m,y){if(typeof m!="object"||!m)return m;var w=m[Symbol.toPrimitive];if(w!==void 0){var b=w.call(m,"string");if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(m)}(g);return typeof C=="symbol"?C:C+""}(A))in a?Object.defineProperty(a,A,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[A]=l,a}function JP(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Ot(a){for(var A=1;A1&&arguments[1]!==void 0?arguments[1]:"",l=arguments.length>2?arguments[2]:void 0;super(A),Hr(this,"code",void 0),Hr(this,"message",void 0),Hr(this,"data",void 0),Hr(this,"name","AgoraRTCException"),this.code=a,this.message="AgoraRTCError ".concat(this.code,": ").concat(A),this.data=l}toString(){return this.data?"".concat(this.message,` +data: `).concat(JSON.stringify(this.data)):this.message}print(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error",A=arguments.length>1?arguments[1]:void 0;return a==="error"&&(A||console).error(this.toString()),a==="warning"&&(A||console).warn(this.toString()),this}throw(a){throw this.print("error",a),this}};function Yl(a,A){if(typeof a!="boolean")throw new nt(fe.INVALID_PARAMS,"Invalid ".concat(A,": The value is of the boolean type."))}function zo(a,A,l){if(!Rt(l).call(l,a))throw new nt(fe.INVALID_PARAMS,"".concat(A," can only be set as ").concat(JSON.stringify(l)))}function Rn(a,A){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1e4;if(ag||(!(arguments.length>4&&arguments[4]!==void 0)||arguments[4])&&!function(C){return typeof C=="number"&&C%1==0}(a))throw new nt(fe.INVALID_PARAMS,"invalid ".concat(A,": the value range is [").concat(l,", ").concat(g,"]. integer only"))}function AA(a,A){if(typeof a!="number"){if(!(a.min||a.max||a.ideal||a.exact))throw new nt(fe.INVALID_PARAMS,"".concat(A," is not a valid ConstrainLong"));a.min!==void 0&&Rn(a.min,"".concat(A,".min"),0,1/0),a.max!==void 0&&Rn(a.max,"".concat(A,".max"),1,1/0),a.exact!==void 0&&Rn(a.exact,"".concat(A,".exact"),1,1/0),a.ideal!==void 0&&Rn(a.ideal,"".concat(A,".ideal"),1,1/0)}else Rn(a,A,1,1/0)}function Tr(a,A){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:255,C=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(a==null)throw new nt(fe.INVALID_PARAMS,"".concat(A||"param"," cannot be empty"));if(!yR(a,l,g,C))throw new nt(fe.INVALID_PARAMS,"Invalid ".concat(A||"string param",": Length of the string: [").concat(l,",").concat(g,"].").concat(C?" ASCII characters only.":""))}function Qc(a,A){if(!Array.isArray(a))throw new nt(fe.INVALID_PARAMS,"".concat(A," should be an array"))}function mo(a){return a==null}function yR(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:255,g=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return typeof a=="string"&&a.length<=l&&a.length>=A&&(!g||function(C){if(typeof C!="string")return!1;for(let m=0;m255)return!1}return!0}(a))}function Sf(a,A,l){if("getBigUint64"in DataView.prototype)return a.getBigUint64(A,l);let g=a.getUint32(A,l),C=a.getUint32(A+4,l),m=0,y=1;return BigInt(g*y+C*m)<>BigInt(32)),m=Number(l&BigInt(4294967295));a.setUint32(A,C,g),a.setUint32(A+4,m,g)}var Rf=function(a){return a.COVERED="COVERED",a.POSITION="POSITION",a.SIZE="SIZE",a.STYLE="STYLE",a}(Rf||{}),Wb=function(a){return a.UNMOUNTED="UNMOUNTED",a.INVALID_HTML_ELEMENT="INVALID_HTML_ELEMENT",a}(Wb||{});let Xb=new class{constructor(){Hr(this,"_clientSize",null),Hr(this,"getClientWidth",()=>document.documentElement?document.documentElement.clientWidth:document.body.clientWidth),Hr(this,"getClientHeight",()=>document.documentElement?document.documentElement.clientHeight:document.body.clientHeight),Hr(this,"getStyle",a=>window.getComputedStyle(a,null)),Hr(this,"checkCssVisibleProperty",a=>{var A;let l=!0,g=this.getStyle(a),{display:C,visibility:m,opacity:y,filter:w}=g;return(C==="none"||Rt(A=["hidden","collapse"]).call(A,m)||Number(y)<.1)&&(l=!1),!!l&&(w&&w.split(" ").filter(b=>{var M;let k=b.split("(")[0];return Rt(M=["brightness","blur","opacity"]).call(M,k)}).map(b=>{let[M,k]=b.split(/\(|\)/);return[M,Number(k.match(/^[0-9\.]+/))]}).forEach(b=>{let[M,k]=b;switch(M){case"brightness":(k<.1||k>3)&&(l=!1);break;case"blur":k>3&&(l=!1);break;case"opacity":k<.1&&(l=!1)}}),l)}),Hr(this,"checkPropertyUpToAllParentNodes",(a,A)=>{let l=!0,g=!0,C=y=>A(y),m=a;for(;m&&g;)C(m)||(l=!1,g=!1),m=m.parentElement,m||(g=!1);return l}),Hr(this,"checkActualCssVisibleIncludeInherit",a=>this.checkPropertyUpToAllParentNodes(a,this.checkCssVisibleProperty)),Hr(this,"getSizeAboutClient",a=>{let{width:A,height:l,left:g,right:C,top:m,bottom:y}=a.getBoundingClientRect(),w=this.getClientWidth(),b=this.getClientHeight();return{width:A,height:l,left:g,right:C,top:m,bottom:y,clientWidth:w,clientHeight:b,clientMin:Math.min(w,b)}}),Hr(this,"checkActualSize",()=>{let{width:a,height:A,clientMin:l}=this._clientSize;return this.checkSizeIsVisible(a,A,l)}),Hr(this,"elementFromPoint",(a,A)=>document.elementFromPoint?document.elementFromPoint(a,A):null),Hr(this,"checkCoverForAPoint",(a,A,l)=>{let g=this.elementFromPoint(a,A);return g!==null&&g!==l}),Hr(this,"getPointPositionList",()=>{let{width:a,height:A,left:l,top:g}=this._clientSize,C=a/6,m=A/6,y=[],w=10**6;for(let b=0;b<5;b++)for(let M=0;M<5;M++){let k=(l*w+(b===0?.1:b===4?(C*b*w-1e5)/w:C*b)*w)/w,V=(g*w+(M===0?.1:M===4?(m*M*w-1e5)/w:m*M)*w)/w;y.push({x:k,y:V})}return[...y]}),Hr(this,"checkElementCover",a=>this.getPointPositionList().map(A=>this.checkCoverForAPoint(A.x,A.y,a)).filter(A=>!!A).length>6),Hr(this,"checkSizeIsVisible",(a,A,l)=>(a>50||l/a<=10)&&(A>50||l/A<=10)),Hr(this,"checkSizeOfPartInClient",()=>{let{left:a,right:A,top:l,bottom:g,clientHeight:C,clientWidth:m,clientMin:y}=this._clientSize,w,b,M,k;if(a<0)w=0;else{if(!(a(this._clientSize=null,{visible:!1,reason:a})),Hr(this,"checkOneElementVisible",a=>{if(a instanceof HTMLElement){if(this.checkElementIsMountedOnDom(a)){if(this.checkActualCssVisibleIncludeInherit(a)){if(this._clientSize=this.getSizeAboutClient(a),this.checkElementCover(a))return this.returnHiddenResult(Rf.COVERED);{let A=this.checkActualSize(),l=this.checkSizeOfPartInClient();return A&&!l?this.returnHiddenResult(Rf.POSITION):A?(this._clientSize=null,{visible:!0}):this.returnHiddenResult(Rf.SIZE)}}return this.returnHiddenResult(Rf.STYLE)}return this.returnHiddenResult(Wb.UNMOUNTED)}return this.returnHiddenResult(Wb.INVALID_HTML_ELEMENT)}),Hr(this,"checkElementIsMountedOnDom",a=>this.checkPropertyUpToAllParentNodes(a,A=>A.nodeName.toUpperCase()!=="HTML"?A.parentElement!==null:!!document.documentElement))}};function yf(a){return new TextEncoder().encode(a)}let zb=function(a,A){let l=new Uint8Array(a.byteLength+A.byteLength);return l.set(new Uint8Array(a),0),l.set(new Uint8Array(A),a.byteLength),l},QR=async a=>function(A,l){let g="";return new Uint8Array(A).forEach(C=>{g+=C.toString(l).padStart(2,"0")}),g}(await crypto.subtle.digest("SHA-256",yf(a)),16),io=class{constructor(){Hr(this,"_events",{}),Hr(this,"addListener",this.on)}getListeners(a){return this._events[a]?this._events[a].map(A=>A.listener):[]}on(a,A){this._events[a]||(this._events[a]=[]);let l=this._events[a];this._indexOfListener(l,A)===-1&&l.push({listener:A,once:!1})}once(a,A){this._events[a]||(this._events[a]=[]);let l=this._events[a];this._indexOfListener(l,A)===-1&&l.push({listener:A,once:!0})}off(a,A){if(!this._events[a])return;let l=this._events[a],g=this._indexOfListener(l,A);g!==-1&&l.splice(g,1),this._events[a].length===0&&delete this._events[a]}removeAllListeners(a){a?delete this._events[a]:this._events={}}emit(a){this._events[a]||(this._events[a]=[]);let A=this._events[a].map(m=>m);for(var l=arguments.length,g=new Array(l>1?l-1:0),C=1;C1?A-1:0),g=1;g{C.once&&this.off(a,C.listener);try{C.listener.apply(this,l)}catch(m){console.error("safeEmit event:".concat(a," error ").concat(m==null?void 0:m.toString()))}})}_indexOfListener(a,A){let l=a.length;for(;l--;)if(a[l].listener===A)return l;return-1}},NC=null;function WP(){if(NC)return NC;if(window.electron)return NC=window.electron;if(!window.require)return null;try{return NC=window.require("electron"),NC}catch{return null}}let Co=function(a){return a.CREATE_CLIENT="createClient",a.CHECK_SYSTEM_REQUIREMENTS="checkSystemRequirements",a.SET_AREA="setArea",a.PRELOAD="PRELOAD",a.CHECK_VIDEO_TRACK_IS_ACTIVE="checkVideoTrackIsActive",a.CHECK_AUDIO_TRACK_IS_ACTIVE="checkAudioTrackIsActive",a.CREATE_MIC_AUDIO_TRACK="createMicrophoneAudioTrack",a.CREATE_CUSTOM_AUDIO_TRACK="createCustomAudioTrack",a.CREATE_BUFFER_AUDIO_TRACK="createBufferSourceAudioTrack",a.CREATE_CAM_VIDEO_TRACK="createCameraVideoTrack",a.CREATE_CUSTOM_VIDEO_TRACK="createCustomVideoTrack",a.CREATE_MIC_AND_CAM_TRACKS="createMicrophoneAndCameraTracks",a.CREATE_SCREEN_VIDEO_TRACK="createScreenVideoTrack",a.SET_ENCRYPTION_CONFIG="Client.setEncryptionConfig",a.START_PROXY_SERVER="Client.startProxyServer",a.STOP_PROXY_SERVER="Client.stopProxyServer",a.SET_PROXY_SERVER="Client.setProxyServer",a.SET_TURN_SERVER="Client.setTurnServer",a.SET_CLIENT_ROLE="Client.setClientRole",a.SET_LOW_STREAM_PARAMETER="Client.setLowStreamParameter",a.ENABLE_DUAL_STREAM="Client.enableDualStream",a.DISABLE_DUAL_STREAM="Client.disableDualStream",a.JOIN="Client.join",a.LEAVE="Client.leave",a.PUBLISH="Client.publish",a.UNPUBLISH="Client.unpublish",a.SUBSCRIBE="Client.subscribe",a.MASS_SUBSCRIBE="Client.massSubscribe",a.MASS_UNSUBSCRIBE="Client.massUnsubscribe",a.UNSUBSCRIBE="Client.unsubscribe",a.RENEW_TOKEN="Client.renewToken",a.SET_REMOTE_VIDEO_STREAM_TYPE="Client.setRemoteVideoStreamType",a.SET_STREAM_FALLBACK_OPTION="Client.setStreamFallbackOption",a.ENABLE_AUDIO_VOLUME_INDICATOR="Client.enableAudioVolumeIndicator",a.SEND_CUSTOM_REPORT_MESSAGE="Client.sendCustomReportMessage",a.INSPECT_VIDEO_CONTENT="Client.inspectVideoContent",a.STOP_INSPECT_VIDEO_CONTENT="Client.stopInspectVideoContent",a.JOIN_FALLBACK_TO_PROXY="Client._joinFallbackToProxy",a.ON_LIVE_STREAM_WARNING="Client.onLiveStreamWarning",a.ON_LIVE_STREAM_ERROR="Client.onLiveStreamingError",a.START_LIVE_STREAMING="Client.startLiveStreaming",a.SET_LIVE_TRANSCODING="Client.setLiveTranscoding",a.STOP_LIVE_STREAMING="Client.stopLiveStreaming",a.START_CHANNEL_MEDIA_RELAY="Client.startChannelMediaRelay",a.UPDATE_CHANNEL_MEDIA_RELAY="Client.updateChannelMediaRelay",a.STOP_CHANNEL_MEDIA_RELAY="Client.stopChannelMediaRelay",a.REQUEST_CONFIG_DISTRIBUTE="_config-distribute-request",a.SET_CONFIG_DISTRIBUTE="_configDistribute",a.LOCAL_TRACK_SET_MUTED="LocalTrack.setMute",a.LOCAL_AUDIO_TRACK_PLAY="LocalAudioTrack.play",a.LOCAL_AUDIO_TRACK_PLAY_IN_ELEMENT="LocalAudioTrack.playInElement",a.LOCAL_AUDIO_TRACK_STOP="LocalAudioTrack.stop",a.LOCAL_AUDIO_TRACK_SET_VOLUME="LocalAudioTrack.setVolume",a.MIC_AUDIO_TRACK_SET_DEVICE="MicrophoneAudioTrack.setDevice",a.BUFFER_AUDIO_TRACK_START="BufferSourceAudioTrack.startProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_STOP="BufferSourceAudioTrack.stopProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_PAUSE="BufferSourceAudioTrack.pauseProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_RESUME="BufferSourceAudioTrack.resumeProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_SEEK="BufferSourceAudioTrack.seekAudioBuffer",a.LOCAL_VIDEO_TRACK_PLAY="LocalVideoTrack.play",a.LOCAL_VIDEO_TRACK_STOP="LocalVideoTrack.stop",a.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE="LocalVideoTrack.getVideoElementVisibleStatus",a.LOCAL_VIDEO_TRACK_BEAUTY="LocalVideoTrack.setBeautyEffect",a.LOCAL_VIDEO_SEND_SEI_DATA="LocalVideoTrack.sendSeiData",a.CAM_VIDEO_TRACK_SET_DEVICE="CameraVideoTrack.setDevice",a.CAM_VIDEO_TRACK_SET_ENCODER_CONFIG="CameraVideoTrack.setEncoderConfiguration",a.REMOTE_VIDEO_TRACK_PLAY="RemoteVideoTrack.play",a.REMOTE_VIDEO_TRACK_STOP="RemoteVideoTrack.stop",a.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE="RemoteVideoTrack.getVideoElementVisibleStatus",a.REMOTE_AUDIO_TRACK_PLAY="RemoteAudioTrack.play",a.REMOTE_AUDIO_TRACK_STOP="RemoteAudioTrack.stop",a.REMOTE_AUDIO_SET_VOLUME="RemoteAudioTrack.setVolume",a.REMOTE_AUDIO_SET_OUTPUT_DEVICE="RemoteAudioTrack.setOutputDevice",a.GET_MEDIA_STREAM_TRACK="Track.getMediaStreamTrack",a.STREAM_TYPE_CHANGE="streamTypeChange",a.CONNECTION_STATE_CHANGE="connectionStateChange",a.LOAD_CONFIG_FROM_LOCALSTORAGE="loadConfigFromLocalStorage",a.IMAGE_MODERATION_UPLOAD="imageModerationUpload",a.REPUB_AFTER_PC_CONNECTED="repubAfterPCConnected",a.PRELOAD_MEDIA_FAILED="preloadMediaFailed",a.MISMATCH_DTLS_PARAMETERS="mismatchDtlsParameters",a.VOS_FALLBACK_CN="vosFallbackCN",a.DATACHANNEL_FAILBACK="datachannelFailback",a}({}),Gn=function(a){return a.TRACER="tracer",a}({});function TR(a){return Rn(a.timeout,"config.timeout",0,1e5),Rn(a.timeoutFactor,"config.timeoutFactor",0,100,!1),Rn(a.maxRetryCount,"config.maxRetryConfig",0,1/0),Rn(a.maxRetryTimeout,"config.maxRetryTimeout",0,1/0),!0}let XP=function(a){return a[a.AUDIENCE_LEVEL_LOW_LATENCY=1]="AUDIENCE_LEVEL_LOW_LATENCY",a[a.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY=2]="AUDIENCE_LEVEL_ULTRA_LOW_LATENCY",a[a.AUDIENCE_LEVEL_SYNC_LATENCY=3]="AUDIENCE_LEVEL_SYNC_LATENCY",a}({}),bi=function(a){return a.LEAVE="LEAVE",a.NETWORK_ERROR="NETWORK_ERROR",a.SERVER_ERROR="SERVER_ERROR",a.UID_BANNED="UID_BANNED",a.FALLBACK="FALLBACK",a.IP_BANNED="IP_BANNED",a.CHANNEL_BANNED="CHANNEL_BANNED",a.LICENSE_MISSING="LICENSE_MISSING",a.LICENSE_EXPIRED="LICENSE_EXPIRED",a.LICENSE_MINUTES_EXCEEDED="LICENSE_MINUTES_EXCEEDED",a.LICENSE_PERIOD_INVALID="LICENSE_PERIOD_INVALID",a.LICENSE_MULTIPLE_SDK_SERVICE="LICENSE_MULTIPLE_SDK_SERVICE",a.LICENSE_ILLEGAL="LICENSE_ILLEGAL",a.TOKEN_EXPIRE="TOKEN_EXPIRE",a.FALLBACK_TO_HLS="FALLBACK_TO_HLS",a.UID_CONFLICT="UID_CONFLICT",a}({});function eh(a){if(!Array.isArray(a)||a.length<1)return!1;try{a.forEach(A=>{if(!A.urls)throw Error()})}catch{return!1}return!0}function wR(a){return Tr(a.turnServerURL,"turnServerURL"),Tr(a.username,"username"),Tr(a.password,"password"),a.udpport&&Rn(a.udpport,"udpport",1,99999,!0),a.forceturn&&Yl(a.forceturn,"forceturn"),a.security&&Yl(a.security,"security"),a.tcpport&&Rn(a.tcpport,"tcpport",1,99999,!0),!0}let n2=function(a){return a[a.AUTO_SIMULCAST_STREAM=-1]="AUTO_SIMULCAST_STREAM",a[a.DISABLE_SIMULCAST_STREM=0]="DISABLE_SIMULCAST_STREM",a[a.ENABLE_SIMULCAST_STREAM=1]="ENABLE_SIMULCAST_STREAM",a}({});function OC(a){return a.level!==void 0&&zo(a.level,"level",[1,2,3]),a.delay!==void 0&&Rn(a.delay,"delay",0,3e3,!0),!0}let si=function(a){return a.PEERCONNECTION_STATE_CHANGE="peerconnection-state-change",a.AUDIO_METADATA="audio-metadata",a.AUDIO_PTS="audio-pts",a.CONNECTION_STATE_CHANGE="connection-state-change",a.MEDIA_RECONNECT_START="media-reconnect-start",a.MEDIA_RECONNECT_END="media-reconnect-end",a.IS_USING_CLOUD_PROXY="is-using-cloud-proxy",a.USER_JOINED="user-joined",a.USER_LEAVED="user-left",a.USER_PUBLISHED="user-published",a.USER_UNPUBLISHED="user-unpublished",a.USER_INFO_UPDATED="user-info-updated",a.CLIENT_BANNED="client-banned",a.CHANNEL_MEDIA_RELAY_STATE="channel-media-relay-state",a.CHANNEL_MEDIA_RELAY_EVENT="channel-media-relay-event",a.VOLUME_INDICATOR="volume-indicator",a.CRYPT_ERROR="crypt-error",a.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="token-privilege-will-expire",a.ON_TOKEN_PRIVILEGE_DID_EXPIRE="token-privilege-did-expire",a.NETWORK_QUALITY="network-quality",a.STREAM_TYPE_CHANGED="stream-type-changed",a.STREAM_FALLBACK="stream-fallback",a.RECEIVE_METADATA="receive-metadata",a.STREAM_MESSAGE="stream-message",a.LIVE_STREAMING_ERROR="live-streaming-error",a.LIVE_STREAMING_WARNING="live-streaming-warning",a.EXCEPTION="exception",a.ERROR="error",a.P2P_LOST="p2p_lost",a.JOIN_FALLBACK_TO_PROXY="join-fallback-to-proxy",a.CHANNEL_FALLBACK_TO_WEBSOCKET="channel-fallback-to-websocket",a.MEDIA_CONNECTION_TYPE_CHANGE="media-connection-type-change",a.PUBLISHED_USER_LIST="published-user-list",a.CONTENT_INSPECT_CONNECTION_STATE_CHANGE="content-inspect-connection-state-change",a.CONTENT_INSPECT_ERROR="content-inspect-error",a.CONTENT_INSPECT_RESULT="content-inspect-result",a.IMAGE_MODERATION_CONNECTION_STATE_CHANGE="image-moderation-connection-state-change",a.FALLBACK_TO_HLS="fallback-to-hls",a.FIRST_VIDEO_BUFFER_READY="first-video-buffer-ready",a.FIRST_VIDEO_PRE_RENDER="first-video-pre-render",a.AV1_DECODABLE_RESULT="av1-decodable-result",a}({}),LC=function(a){return a.CONFIG="config",a.VOSERROR="vos_error",a.AP_ERROR="ap_error",a}({}),xo=function(a){return a.NETWORK_ERROR="NETWORK_ERROR",a.SERVER_ERROR="SERVER_ERROR",a.MULTI_IP="MULTI_IP",a.TIMEOUT="TIMEOUT",a.OFFLINE="OFFLINE",a.LEAVE="LEAVE",a.P2P_FAILED="P2P_FAILED",a.FALLBACK="FALLBACK",a.REGIONAL_DISTRIBUTION="REGIONAL_DISTRIBUTION",a}({}),Va=function(a){return a.ONLINE="ONLINE",a.OFFLINE="OFFLINE",a}({}),Tu=function(a){return a.NETWORK_STATE_CHANGE="NETWORK_STATE_CHANGE",a.ONLINE="ONLINE",a.OFFLINE="OFFLINE",a}({});function rs(a,A){for(var l=arguments.length,g=new Array(l>2?l-2:0),C=2;C{a.emit(A,...g,m,y)})}function Wn(a,A){if(a.getListeners(A).length===0)return Ft.resolve();for(var l=arguments.length,g=new Array(l>2?l-2:0),C=2;C2?l-2:0),C=2;C2?C-2:0),y=2;y{l=w},w=>{g=w}),g!==null)throw g;if(l===null)throw new nt(fe.UNEXPECTED_ERROR,"handler is not sync");return l}let Xi=new class extends io{set networkState(a){this.emit(Tu.NETWORK_STATE_CHANGE,a,this._networkState),a===Va.ONLINE?this.emit(Tu.ONLINE):a===Va.OFFLINE&&(this.onlineWaiter=new Ft(A=>{this.once(Tu.ONLINE,()=>{this.onlineWaiter=void 0,A(Va.ONLINE)})}),this.emit(Tu.OFFLINE)),this._networkState=a}get networkState(){return this._networkState}get isOnline(){return this._networkState===Va.ONLINE}constructor(){super(),Hr(this,"_moduleName","network-indicator"),Hr(this,"_networkState",Va.ONLINE),Hr(this,"onlineWaiter",void 0),window.addEventListener("online",()=>{this.networkState=Va.ONLINE}),window.addEventListener("offline",()=>{this.networkState=Va.OFFLINE})}},on=[];for(let a=0;a<256;++a)on.push((a+256).toString(16).slice(1));let zP=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),s2,vR=new Uint8Array(16);function DR(){return zP?zP():function(l,g,C){var m,y,w,b;let M=(m=(y=(l=l||{}).random)!==null&&y!==void 0?y:(w=(b=l).rng)===null||w===void 0?void 0:w.call(b))!==null&&m!==void 0?m:function(){if(!s2){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");s2=crypto.getRandomValues.bind(crypto)}return s2(vR)}();if(M.length<16)throw new Error("Random bytes length must be >= 16");if(M[6]=15&M[6]|64,M[8]=63&M[8]|128,g){if((C=C||0)<0||C+16>g.length)throw new RangeError("UUID byte range ".concat(C,":").concat(C+15," is out of buffer bounds"));for(let k=0;k<16;++k)g[C+k]=M[k];return g}return function(k){let V=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(on[k[V+0]]+on[k[V+1]]+on[k[V+2]]+on[k[V+3]]+"-"+on[k[V+4]]+on[k[V+5]]+"-"+on[k[V+6]]+on[k[V+7]]+"-"+on[k[V+8]]+on[k[V+9]]+"-"+on[k[V+10]]+on[k[V+11]]+on[k[V+12]]+on[k[V+13]]+on[k[V+14]]+on[k[V+15]]).toLowerCase()}(M)}(a,A,void 0);var a,A}function sl(a,A){let l=a.indexOf(A);l!==-1&&a.splice(l,1)}function ns(a){let A=[];return a.forEach(l=>{A.indexOf(l)===-1&&A.push(l)}),A}function Fi(a){Ft!==void 0?Ft.resolve().then(a):setTimeout(a,0)}function no(a){return JSON.parse(JSON.stringify(a))}function qA(a){try{return no(a)}catch{return a}}let bR={};function Qi(a,A){bR[A]||(bR[A]=!0,a())}function th(a){let A=window.atob(a),l=new Uint8Array(new ArrayBuffer(A.length));for(let g=0;g1&&arguments[1]!==void 0?arguments[1]:16,l=new TextEncoder().encode(a);if(l.length>A)l=l.slice(0,A);else if(l.lengthy+w.length,0),C=new Uint8Array(new ArrayBuffer(g)),m=0;return A.forEach(y=>{C.set(y,m),m+=y.length}),C}function DA(a){return window.TextEncoder?new TextEncoder().encode(a).length:a.length}function Zs(a){let A=0;return(/DingTalk/i.test(navigator.userAgent)||/AliApp/i.test(navigator.userAgent))&&a.realFormData&&(a=a.realFormData),a.forEach(l=>{A+=typeof l=="string"?DA(l):l.size}),A+138}function Zb(a){let A=new nt(fe.TIMEOUT,"timeout");return new Ft((l,g)=>{window.setTimeout(()=>g(A),a)})}function Ks(a){return new Ft(A=>{window.setTimeout(A,a)})}function yn(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:7,A=arguments.length>1?arguments[1]:void 0,l=Math.random().toString(16).substr(2,a).toLowerCase();return l.length===a?"".concat(A).concat(l):"".concat(A).concat(l)+yn(a-l.length,"")}function Ln(){let a,A=!1;try{var l;a=ZY(l=DR()).call(l,"-","")}catch{A=!0}return!A&&a&&a.length===32||(a=yn(32,"")),a.toUpperCase()}let Ia=()=>{},al=new class{constructor(){Hr(this,"fnMap",new Map)}throttleByKey(a,A,l,g){for(var C=arguments.length,m=new Array(C>4?C-4:0),y=4;y{let M=this.fnMap.get(A);M&&M.fn(...M.args),this.fnMap.delete(A)},l);this.fnMap.set(A,{fn:a,threshold:l,timer:b,args:m,skipFn:g})}else w.skipFn&&w.skipFn(...w.args),this.fnMap.set(A,Ot(Ot({},w),{},{fn:a,args:m,skipFn:g}))}else{let w=window.setTimeout(()=>{let b=this.fnMap.get(A);b&&b.fn(...b.args),this.fnMap.delete(A)},l);this.fnMap.set(A,{fn:a,threshold:l,timer:w,args:m,skipFn:g})}}},e4=al.throttleByKey.bind(al);function Tf(a){return typeof a=="object"&&a!==null&&!(a instanceof RegExp)}function wu(a,A){if(!Tf(a)||!Tf(A)||Array.isArray(a)&&!Array.isArray(A)||!Array.isArray(a)&&Array.isArray(A))return A;if(Array.isArray(A)&&Array.isArray(a)){let l=[...a];for(let g=0;g0&&(l[g]=255&a,a>>=8,g++,g!==A););return l}function a2(a){return typeof a=="number"?a:a.exact||a.ideal||a.max||a.min||0}function vf(a,A){try{return typeof a=="object"&&typeof A=="object"&&JSON.stringify(a)===JSON.stringify(A)}catch{return!1}}function NR(a){return $c(a).call(a,(A,l)=>A+l,0)}function Df(a){let A="0123456789abcdef";function l(be){let Ue,xe="";for(Ue=0;Ue<=3;Ue++)xe+=A.charAt(be>>8*Ue+4&15)+A.charAt(be>>8*Ue&15);return xe}function g(be,Ue){let xe=(65535&be)+(65535&Ue);return(be>>16)+(Ue>>16)+(xe>>16)<<16|65535&xe}function C(be,Ue,xe,Le,je,dt){return g(function(pt,zt){return pt<>>32-zt}(g(g(Ue,be),g(Le,dt)),je),xe)}function m(be,Ue,xe,Le,je,dt,pt){return C(Ue&xe|~Ue&Le,be,Ue,je,dt,pt)}function y(be,Ue,xe,Le,je,dt,pt){return C(Ue&Le|xe&~Le,be,Ue,je,dt,pt)}function w(be,Ue,xe,Le,je,dt,pt){return C(Ue^xe^Le,be,Ue,je,dt,pt)}function b(be,Ue,xe,Le,je,dt,pt){return C(xe^(Ue|~Le),be,Ue,je,dt,pt)}let M=function(be){let Ue,xe=1+(be.length+8>>6),Le=new Array(16*xe);for(Ue=0;Ue<16*xe;Ue++)Le[Ue]=0;for(Ue=0;Ue>2]|=be.charCodeAt(Ue)<>2]|=128<0}lock(a){let A;this.locks+=1,this.logger("locked",a);let l=new Ft(C=>{A=()=>{this.locks-=1,this.logger("unlocked",a),C()}}),g=this.lockingPromise.then(()=>A);return this.lockingPromise=this.lockingPromise.then(()=>l),g}};function rh(a,A){return function(l,g,C){let m=C.value;if(typeof m!="function")throw new Error("Cannot use mutex on object property.");return C.value=async function(){let y=this[A];if(!y)throw new Error("mutex property key ".concat(A," doesn't exist on ").concat(a));let w=await y.lock("From ".concat(a,".").concat(g));try{for(var b=arguments.length,M=new Array(b),k=0;k{await function(M){return new Ft(k=>{window.setTimeout(k,M)})}(m),m*=C.timeoutFactor,m=Math.min(C.maxRetryTimeout,m)},w=!1,b=new Ft(async(M,k)=>{A=A||(()=>!1),l=l||(()=>!0);for(let V=0;Vw=!0,b}let bf,OR=class{constructor(a){Hr(this,"input",[]),Hr(this,"size",void 0),this.size=a}add(a){this.input.push(a),this.input.length>this.size&&this.input.splice(0,1)}mean(){var a;return this.input.length===0?0:$c(a=this.input).call(a,(A,l)=>A+l)/this.input.length}},Al=0,c2=0;function l2(a,A,l,g){return new Ft((C,m)=>{A.responseType=A.responseType||"json",A.data&&!l?(A.data=JSON.stringify(A.data),Al+=DA(A.data)):l&&(A.data.size?Al+=A.data.size:A.data instanceof FormData?Al+=Zs(A.data):Al+=DA(JSON.stringify(A.data))),A.headers=A.headers||{},A.headers["Content-Type"]=A.headers["Content-Type"]||"application/json",A.method="POST",A.url=a,vA.request(A).then(y=>{typeof y.data=="string"?c2+=DA(y.data):y.data instanceof ArrayBuffer||y.data instanceof Uint8Array?c2+=y.data.byteLength:c2+=DA(JSON.stringify(y.data)),C(y.data)}).catch(y=>{vA.isCancel(y)?m(new nt(fe.OPERATION_ABORTED,"cancel token canceled")):y.code==="ECONNABORTED"?m(new nt(fe.NETWORK_TIMEOUT,y.message)):y.response?m(new nt(fe.NETWORK_RESPONSE_ERROR,y.response.status)):m(new nt(fe.NETWORK_ERROR,y.message))})})}async function GJ(a,A){let l=new Blob([A.data],{type:"buffer"});return await l2(a,Ot(Ot({},A),{},{data:l,headers:{"Content-Type":"application/octet-stream"}}),!0)}let r4=()=>window.isSecureContext!==void 0;function Dr(a){if(Array.isArray(a))return a.map(l=>l);if(!i4(a))return a;let A={};for(let l in a){let g=a[l];i4(g)||Array.isArray(g)?A[l]=Dr(g):A[l]=g}return A}function i4(a){return!(typeof a!="object"||Array.isArray(a)||!a)}let wt=class{constructor(a){Hr(this,"input",[]),Hr(this,"size",void 0),this.size=a}add(a){this.input.push(a),this.input.length>this.size&&this.input.splice(0,1)}diffMean(){return this.input.length===0?0:(this.input[this.input.length-1]-this.input[0])/this.input.length}},cl={address:"unknown",candidateType:"unknown",id:"unknown",port:0,priority:0,protocol:"unknown",type:"unknown"},Ce={timestamp:0,bitrate:{actualEncoded:0,transmit:0},sendPacketLossRate:0,recvPacketLossRate:0,videoRecv:[],videoSend:[],audioRecv:[],audioSend:[],transport:{bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0},selectedCandidatePair:{id:"unknown",localCandidate:cl,remoteCandidate:cl},updateInterval:0},tt={firsCount:0,nacksCount:0,plisCount:0,framesDecodeCount:0,framesDecodeInterval:0,framesDecodeFreezeTime:0,decodeFrameRate:0,bytes:0,packetsLost:0,packetLostRate:0,packets:0,ssrc:0,qpSumPerFrame:0,framesDroppedCount:0,outputFrameRate:0,packetsDiscarded:0,framesAssembledFromMultiplePackets:0,totalProcessingDelay:0,avgDecodeMs:0,avgFramesAssembledFromMultiplePacketsMs:0,avgProcessingDelayMs:0,avgInterFrameDelayMs:0,totalAssemblyTime:0},ll={firsCount:0,nacksCount:0,plisCount:0,frameCount:0,bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0,qpSumPerFrame:0},As={bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0},Vn={jitterBufferMs:0,jitterMs:0,bytes:0,packetsLost:0,packetLostRate:0,packetsDiscarded:0,packets:0,ssrc:0,receivedFrames:0,droppedFrames:0,concealedSamples:0,totalSamplesReceived:0,silentConcealedSamples:0,concealmentEvents:0,freezeMs80:0,freezeMs200:0,freezeSamples80:0,freezeSamples200:0},Nf=class{constructor(a,A){Hr(this,"onFirstVideoReceived",void 0),Hr(this,"onFirstVideoDecoded",void 0),Hr(this,"onFirstAudioReceived",void 0),Hr(this,"onFirstVideoDecodedTimeout",void 0),Hr(this,"onFirstAudioDecoded",void 0),Hr(this,"onSelectedLocalCandidateChanged",void 0),Hr(this,"onSelectedRemoteCandidateChanged",void 0),Hr(this,"videoIsReady",!1),Hr(this,"videoIsReady2",{}),Hr(this,"pc",void 0),Hr(this,"options",void 0),Hr(this,"intervalTimer",void 0),Hr(this,"stats",Dr(Ce)),Hr(this,"isFirstVideoReceived",{}),Hr(this,"isFirstVideoDecoded",{}),Hr(this,"isFirstAudioReceived",{}),Hr(this,"isFirstAudioDecoded",{}),Hr(this,"isFirstVideoDecodedTimeout",{}),Hr(this,"lossRateWindowStats",[]),this.pc=a,this.options=A,this.intervalTimer=window.setInterval(async()=>{this.updateStats()},this.options.updateInterval)}getStats(){return this.stats}getSelectedCandidatePair(){return new Ft(a=>{a({local:Ot({},cl),remote:Ot({},cl)})})}setVideoIsReady(a){this.videoIsReady=a}setVideoIsReady2(a,A){this.videoIsReady2[a]=A}getVideoIsReady(a){return this.videoIsReady2[a]||!1}setIsFirstAudioDecoded(a){}destroy(){window.clearInterval(this.intervalTimer),this.pc=void 0}calcLossRate(a){this.lossRateWindowStats.push(a),this.lossRateWindowStats.length>this.options.lossRateInterval&&this.lossRateWindowStats.splice(0,1);let A=this.lossRateWindowStats.length,l=["videoSend","audioSend","videoRecv","audioRecv"],g=0,C=0,m=0,y=0;for(let w of l)a[w].forEach((b,M)=>{if(!this.lossRateWindowStats[A-1][w][M]||!this.lossRateWindowStats[0][w][M])return;let k=this.lossRateWindowStats[A-1][w][M].packets-this.lossRateWindowStats[0][w][M].packets,V=this.lossRateWindowStats[A-1][w][M].packetsLost-this.lossRateWindowStats[0][w][M].packetsLost;w==="videoSend"||w==="audioSend"?(g+=k,m+=V):(C+=k,y+=V),Number.isNaN(k)||Number.isNaN(k)?b.packetLostRate=0:b.packetLostRate=k<=0||V<=0?0:V/(k+V)});a.sendPacketLossRate=g<=0||m<=0?0:m/(g+m),a.recvPacketLossRate=C<=0||y<=0?0:y/(C+y)}},Ra=class extends Nf{constructor(){super(...arguments),Hr(this,"_stats",Ce),Hr(this,"lastDecodeVideoReceiverStats",new Map)}async updateStats(){let a=await this._getStats(),A=this.statsResponsesToObjects(a);this._stats=Dr(Ce);let l=A.filter(C=>C.type==="ssrc");this.processSSRCStats(l);let g=A.find(C=>C.type==="VideoBwe");g&&this.processBandwidthStats(g),this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}processBandwidthStats(a){this._stats.bitrate={actualEncoded:Number(a.googActualEncBitrate),targetEncoded:Number(a.googTargetEncBitrate),retransmit:Number(a.googRetransmitBitrate),transmit:Number(a.googTransmitBitrate)},this._stats.sendBandwidth=Number(a.googAvailableSendBandwidth)}processSSRCStats(a){a.forEach(A=>{var l;let g=Rt(l=A.id).call(l,"send");switch("".concat(A.mediaType,"_").concat(g?"send":"recv")){case"video_send":{let C=Dr(ll);C.codec=A.googCodecName,C.adaptionChangeReason="none",A.googCpuLimitedResolution&&(C.adaptionChangeReason="cpu"),A.googBandwidthLimitedResolution&&(C.adaptionChangeReason="bandwidth"),C.avgEncodeMs=Number(A.googAvgEncodeMs),C.inputFrame={width:Number(A.googFrameWidthInput)||Number(A.googFrameWidthSent),height:Number(A.googFrameHeightInput)||Number(A.googFrameHeightSent),frameRate:Number(A.googFrameRateInput)},C.sentFrame={width:Number(A.googFrameWidthSent),height:Number(A.googFrameHeightSent),frameRate:Number(A.googFrameRateInput)},C.firsCount=Number(A.googFirReceived),C.nacksCount=Number(A.googNacksReceived),C.plisCount=Number(A.googPlisReceived),C.frameCount=Number(A.framesEncoded),C.bytes=Number(A.bytesSent),C.packets=Number(A.packetsSent),C.packetsLost=Number(A.packetsLost),C.ssrc=Number(A.ssrc),C.rttMs=Number(A.googRtt||0),this._stats.videoSend.push(C),this._stats.rtt=C.rttMs;break}case"video_recv":{let C=Dr(tt),m=this.lastDecodeVideoReceiverStats.get(Number(A.ssrc));if(C.codec=A.googCodecName,C.targetDelayMs=Number(A.googTargetDelayMs),C.renderDelayMs=Number(A.googRenderDelayMs),C.currentDelayMs=Number(A.googCurrentDelayMs),C.minPlayoutDelayMs=Number(A.googMinPlayoutDelayMs),C.decodeMs=Number(A.googDecodeMs),C.maxDecodeMs=Number(A.googMaxDecodeMs),C.receivedFrame={width:Number(A.googFrameWidthReceived),height:Number(A.googFrameHeightReceived),frameRate:Number(A.googFrameRateReceived)},C.decodedFrame={width:Number(A.googFrameWidthReceived),height:Number(A.googFrameHeightReceived),frameRate:Number(A.googFrameRateDecoded)},C.decodeFrameRate=Number(A.googFrameRateDecoded),C.outputFrame={width:Number(A.googFrameWidthReceived),height:Number(A.googFrameHeightReceived),frameRate:Number(A.googFrameRateOutput)},C.jitterBufferMs=Number(A.googJitterBufferMs),C.firsCount=Number(A.googFirsSent),C.nacksCount=Number(A.googNacksSent),C.plisCount=Number(A.googPlisSent),C.framesDecodeCount=Number(A.framesDecoded),C.bytes=Number(A.bytesReceived),C.packets=Number(A.packetsReceived),C.packetsLost=Number(A.packetsLost),C.ssrc=Number(A.ssrc),C.packets>0&&!this.isFirstVideoReceived[C.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(C.ssrc),this.isFirstVideoReceived[C.ssrc]=!0),C.framesDecodeCount>0&&!this.isFirstVideoDecoded[C.ssrc]&&(this.onFirstVideoDecoded&&this.onFirstVideoDecoded(C.ssrc,C.decodedFrame.width,C.decodedFrame.height),this.isFirstVideoDecoded[C.ssrc]=!0),m){let y=m.stats,w=Date.now()-m.lts;C.framesDecodeFreezeTime=y.framesDecodeFreezeTime,C.framesDecodeInterval=y.framesDecodeInterval,C.framesDecodeCount>y.framesDecodeCount&&this.isFirstVideoDecoded[C.ssrc]?(m.lts=Date.now(),C.framesDecodeInterval=w,C.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(A.ssrc,10))?C.framesDecodeFreezeTime+=C.framesDecodeInterval:this.setVideoIsReady2(parseInt(A.ssrc,10),!0))):C.framesDecodeCount0&&!this.isFirstAudioReceived[C.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(C.ssrc),this.isFirstAudioReceived[C.ssrc]=!0),C.decodingNormal>0&&!this.isFirstAudioDecoded[C.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(C.ssrc),this.isFirstAudioDecoded[C.ssrc]=!0),this._stats.audioRecv.push(C);break}case"audio_send":{let C=Dr(As);C.codec=A.googCodecName,C.inputLevel=Math.abs(Number(A.audioInputLevel))/32767,C.aecReturnLoss=Number(A.googEchoCancellationReturnLoss||0),C.aecReturnLossEnhancement=Number(A.googEchoCancellationReturnLossEnhancement||0),C.residualEchoLikelihood=Number(A.googResidualEchoLikelihood||0),C.residualEchoLikelihoodRecentMax=Number(A.googResidualEchoLikelihoodRecentMax||0),C.bytes=Number(A.bytesSent),C.packets=Number(A.packetsSent),C.packetsLost=Number(A.packetsLost),C.ssrc=Number(A.ssrc),C.rttMs=Number(A.googRtt||0),this._stats.rtt=C.rttMs,this._stats.audioSend.push(C);break}}})}_getStats(){return new Ft((a,A)=>{this.pc.getStats(a,A)})}statsResponsesToObjects(a){let A=[];return a.result().forEach(l=>{let g={id:l.id,timestamp:l.timestamp.valueOf().toString(),type:l.type};l.names().forEach(C=>{g[C]=l.stat(C)}),A.push(g)}),A}},j1=function(a){return a.BANDWIDTH="bandwidth",a.CPU="cpu",a.NONE="none",a.OTHER="other",a}({}),Bo=function(a){return a.L1T1="L1T1",a.L1T2="L1T2",a.L1T3="L1T3",a.L1T3_KEY="L1T3_KEY",a.L2T1_KEY="L2T1_KEY",a.L2T2_KEY="L2T2_KEY",a.L2T3_KEY="L2T3_KEY",a.L3T1_KEY="L3T1_KEY",a.L3T2_KEY="L3T2_KEY",a.L3T3_KEY="L3T3_KEY",a}({}),LR=function(a){return a[a.new=0]="new",a[a.connecting=1]="connecting",a[a.connected=2]="connected",a[a.disconnected=3]="disconnected",a[a.failed=4]="failed",a[a.closed=5]="closed",a}({}),J1=function(a){return a.CERTIFICATE="certificate",a.CODEC="codec",a.CANDIDATE_PAIR="candidate-pair",a.LOCAL_CANDIDATE="local-candidate",a.REMOTE_CANDIDATE="remote-candidate",a.INBOUND="inbound-rtp",a.TRACK="track",a.OUTBOUND="outbound-rtp",a.PC="peer-connection",a.REMOTE_INBOUND="remote-inbound-rtp",a.REMOTE_OUTBOUND="remote-outbound-rtp",a.TRANSPORT="transport",a.CSRC="csrc",a.DATA_CHANNEL="data-channel",a.STREAM="stream",a.SENDER="sender",a.RECEIVER="receiver",a}({});var d2=function(a){return a[a.kNone=1]="kNone",a[a.kMillisecondsFromSeconds=1e3]="kMillisecondsFromSeconds",a[a.kBytesToBits=8]="kBytesToBits",a}(d2||{});function wg(a,A,l,g){let C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:d2.kNone;if(!A)return;let m=Number(A[l]);if(typeof m!="number")return;let y=Number(A[g]);if(typeof y!="number")return;if(!a)return y?m/y*C:void 0;let w=Number(a[l]);if(typeof w!="number")return;let b=Number(a[g]);if(typeof b!="number")return;let M=y-b;return M?(m-w)/M*C:void 0}let MR=class extends Nf{constructor(){super(...arguments),Hr(this,"_stats",Ce),Hr(this,"report",void 0),Hr(this,"lastDecodeVideoReceiverStats",new Map),Hr(this,"lastVideoFramesRecv",new Map),Hr(this,"lastVideoFramesSent",new Map),Hr(this,"lastVideoFramesDecode",new Map),Hr(this,"lastVideoFramesOutput",new Map),Hr(this,"lastVideoJBDelay",new Map),Hr(this,"lastAudioJBDelay",new Map),Hr(this,"mediaBytesSent",new Map),Hr(this,"mediaBytesRetransmit",new Map),Hr(this,"mediaBytesTargetEncode",new Map),Hr(this,"lastDecodeAudioReceiverStats",new Map),Hr(this,"lastAudioConcealment",new Map),Hr(this,"lastEncoderMs",new Map)}async updateStats(){this.report=await this.pc.getStats(),this._stats=Dr(Ce),this.report.forEach(a=>{switch(a.type){case J1.OUTBOUND:case J1.INBOUND:{let A=a.mediaType||a.kind,l=!A&&"frameWidth"in a,g=!A&&!("frameWidth"in a);a.type===J1.OUTBOUND?A==="audio"||g?this.processAudioOutboundStats(a):(A==="video"||l)&&this.processVideoOutboundStats(a):a.type===J1.INBOUND&&(A==="audio"||g?this.processAudioInboundStats(a):(A==="video"||l)&&this.processVideoInboundStats(a));break}case J1.TRANSPORT:{this.processTransportStats(a);let A=this.report.get(a.selectedCandidatePairId);A&&this.processCandidatePairStats(A);break}case J1.CANDIDATE_PAIR:a.selected&&this.processCandidatePairStats(a)}}),this.updateSendBitrate(),this._stats.updateInterval=Date.now()-this.stats.timestamp,this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}async getSelectedCandidatePair(){let a=await this.pc.getStats(),A={local:Ot({},cl),remote:Ot({},cl)};return a.forEach(l=>{let g;if(l.type===J1.TRANSPORT&&(g=a.get(l.selectedCandidatePairId)),l.type===J1.CANDIDATE_PAIR&&l.selected&&(g=l),g){let C=(m,y)=>{m.type=y.type,m.id=y.id,y.address&&(m.address=y.address),y.candidateType&&(m.candidateType=y.candidateType),y.port&&(m.port=y.port),y.priority&&(m.priority=y.priority),y.protocol&&(m.protocol=y.protocol),y.relayProtocol&&(m.relayProtocol=y.relayProtocol)};if(g.localCandidateId){let m=a.get(g.localCandidateId);m&&C(A.local,m)}if(g.remoteCandidateId){let m=a.get(g.remoteCandidateId);m&&C(A.remote,m)}}}),A}processCandidatePairStats(a){if(this._stats.sendBandwidth=a.availableOutgoingBitrate||0,a.currentRoundTripTime&&(this._stats.rtt=1e3*a.currentRoundTripTime),this._stats.videoSend.forEach(A=>{a.currentRoundTripTime&&(A.rttMs=1e3*a.currentRoundTripTime)}),this._stats.audioSend.forEach(A=>{a.currentRoundTripTime&&(A.rttMs=1e3*a.currentRoundTripTime)}),this._stats.selectedCandidatePair.id=a.id,a.localCandidateId){let A=this.report.get(a.localCandidateId);A&&this.processCandidateStats(A)}if(a.remoteCandidateId){let A=this.report.get(a.remoteCandidateId);A&&this.processCandidateStats(A)}}processCandidateStats(a){let A;a.type===J1.LOCAL_CANDIDATE&&(A=this._stats.selectedCandidatePair.localCandidate),a.type===J1.REMOTE_CANDIDATE&&(A=this._stats.selectedCandidatePair.remoteCandidate),A&&(A.type=a.type,A.id=a.id,a.address&&(A.address=a.address),a.candidateType&&(A.candidateType=a.candidateType),a.port&&(A.port=a.port),a.priority&&(A.priority=a.priority),a.protocol&&(A.protocol=a.protocol),a.relayProtocol&&(A.relayProtocol=a.relayProtocol),a.type===J1.LOCAL_CANDIDATE&&this.stats.selectedCandidatePair.localCandidate.id!==A.id&&this.onSelectedLocalCandidateChanged&&this.onSelectedLocalCandidateChanged(Ot({},A),Ot({},this.stats.selectedCandidatePair.localCandidate)),a.type===J1.REMOTE_CANDIDATE&&this.stats.selectedCandidatePair.remoteCandidate.id!==A.id&&this.onSelectedRemoteCandidateChanged&&this.onSelectedRemoteCandidateChanged(Ot({},A),Ot({},this.stats.selectedCandidatePair.remoteCandidate)))}processAudioInboundStats(a){let A=this._stats.audioRecv.find(g=>g.ssrc===a.ssrc);A||(A=Dr(Vn),this._stats.audioRecv.push(A)),A.ssrc=a.ssrc,A.packets=a.packetsReceived,A.packetsLost=a.packetsLost,A.packetsDiscarded=a.packetsDiscarded,A.bytes=a.bytesReceived,A.jitterMs=1e3*a.jitter,A.retransmittedBytesReceived=a.retransmittedBytesReceived,A.retransmittedPacketsReceived=a.retransmittedPacketsReceived,A.totalProcessingDelay=a.totalProcessingDelay,A.jitterBufferEmittedCount=a.jitterBufferEmittedCount,A.estimatedPlayoutTimestamp=a.estimatedPlayoutTimestamp;let l=this.lastDecodeAudioReceiverStats.get(A.ssrc);A.avgProcessingDelayMs=wg(l,A,"totalProcessingDelay","jitterBufferEmittedCount",d2.kMillisecondsFromSeconds),this.processAudioTrackReceiverStats(a,a.trackId,A),this.calculateAudioFreeze(A,l,a),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),A.receivedFrames||(A.receivedFrames=a.packetsReceived),A.droppedFrames||(A.droppedFrames=a.packetsLost),A.receivedFrames>0&&!this.isFirstAudioReceived[A.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(A.ssrc),this.isFirstAudioReceived[A.ssrc]=!0),A.outputLevel&&A.outputLevel>0&&!this.isFirstAudioDecoded[A.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(A.ssrc),this.isFirstAudioDecoded[A.ssrc]=!0),typeof a.concealedSamples=="number"&&(A.concealedSamples=a.concealedSamples),this.lastDecodeAudioReceiverStats.set(A.ssrc,Ot({},A))}calculateAudioFreeze(a,A,l){let g=this.lastAudioConcealment.get(a.ssrc);if(A!=null&&g!=null){let C=g.lts,m=l.timestamp,y=m-C;if(y<=0)return;let w=a.concealedSamples-A.concealedSamples-0,b=g.nonSilent+w,M=a.totalSamplesReceived-A.totalSamplesReceived;if(M<=0)return;let k=80*M/y,V=200*M/y,K=y/M,q=0;a.freezeSamples80=A.freezeSamples80,a.freezeMs80=A.freezeMs80,b>k&&(g.plc80>0?(a.freezeSamples80+=w,a.freezeMs80+=Math.round(w*K)):(a.freezeSamples80+=b,a.freezeMs80+=Math.round(b*K)),q=g.plc80+1);let ce=0;a.freezeSamples200=A.freezeSamples200,a.freezeMs200=A.freezeMs200,b>V&&(g.plc200>0?(a.freezeSamples200+=w,a.freezeMs200+=Math.round(w*K)):(a.freezeSamples200+=b,a.freezeMs200+=Math.round(b*K)),ce=g.plc200+1),this.lastAudioConcealment.set(a.ssrc,{nonSilent:w,lts:m,plc80:q,plc200:ce})}else a.freezeSamples80=0,a.freezeSamples200=0,a.freezeMs80=0,a.freezeMs200=0,this.lastAudioConcealment.set(a.ssrc,{nonSilent:0,lts:l.timestamp,plc80:0,plc200:0})}processVideoInboundStats(a){let A=this._stats.videoRecv.find(y=>y.ssrc===a.ssrc);A||(A=Dr(tt),this._stats.videoRecv.push(A)),A.ssrc=a.ssrc,A.packets=a.packetsReceived,A.packetsLost=a.packetsLost,A.bytes=a.bytesReceived,A.firsCount=a.firCount,A.nacksCount=a.nackCount,A.plisCount=a.pliCount,A.framesDecodeCount=a.framesDecoded,A.framesDroppedCount=a.framesDropped,A.totalInterFrameDelay=a.totalInterFrameDelay,A.totalSquaredInterFrameDelay=a.totalSquaredInterFrameDelay,A.totalFreezesDuration=a.totalFreezesDuration,A.totalProcessingDelay=a.totalProcessingDelay,A.packetsDiscarded=a.packetsDiscarded,A.framesAssembledFromMultiplePackets=a.framesAssembledFromMultiplePackets,A.totalAssemblyTime=a.totalAssemblyTime,A.keyFramesDecoded=a.keyFramesDecoded,A.retransmittedBytesReceived=a.retransmittedBytesReceived,A.retransmittedPacketsReceived=a.retransmittedPacketsReceived,A.estimatedPlayoutTimestamp=a.estimatedPlayoutTimestamp;let l=this.lastDecodeVideoReceiverStats.get(A.ssrc),g=this.lastVideoFramesDecode.get(A.ssrc),C=this.lastVideoFramesOutput.get(A.ssrc),m=Date.now();if(A.framesDecodeCount>0&&!this.isFirstVideoDecoded[A.ssrc]){let y=A.decodedFrame?A.decodedFrame.width:0,w=A.decodedFrame?A.decodedFrame.height:0;this.onFirstVideoDecoded&&this.onFirstVideoDecoded(A.ssrc,y,w),this.isFirstVideoDecoded[A.ssrc]=!0}if(l){let y=l.stats,w=m-l.lts;A.framesDecodeFreezeTime=y.framesDecodeFreezeTime,A.framesDecodeInterval=y.framesDecodeInterval,!this.isFirstVideoDecoded[A.ssrc]&&w>this.options.firstVideoDecodedTimeout&&!this.isFirstVideoDecodedTimeout[A.ssrc]&&(this.onFirstVideoDecodedTimeout&&this.onFirstVideoDecodedTimeout(A.ssrc),this.isFirstVideoDecodedTimeout[A.ssrc]=!0),A.framesDecodeCount>y.framesDecodeCount&&this.isFirstVideoDecoded[A.ssrc]?(l.lts=Date.now(),A.framesDecodeInterval=w,A.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(a.ssrc))?A.framesDecodeFreezeTime+=A.framesDecodeInterval:this.setVideoIsReady2(parseInt(a.ssrc,10),!0))):A.framesDecodeCounta.framesDecoded?A.qpSumPerFrame=a.qpSum/a.framesDecoded:A.qpSumPerFrame=(a.qpSum-l.qpSum)/(a.framesDecoded-l.stats.framesDecodeCount))}a.totalDecodeTime&&(A.decodeMs=1e3*a.totalDecodeTime,A.avgDecodeMs=wg(l==null?void 0:l.stats,A,"decodeMs","framesDecodeCount")),A.avgProcessingDelayMs=wg(l==null?void 0:l.stats,A,"totalProcessingDelay","framesDecodeCount",d2.kMillisecondsFromSeconds),A.avgFramesAssembledFromMultiplePacketsMs=wg(l==null?void 0:l.stats,A,"totalAssemblyTime","framesAssembledFromMultiplePackets",d2.kMillisecondsFromSeconds),A.avgInterFrameDelayMs=wg(l==null?void 0:l.stats,A,"totalInterFrameDelay","framesDecodeCount",d2.kMillisecondsFromSeconds),g&&m-g.lts>=800?(A.decodeFrameRate=Math.round((A.framesDecodeCount-g.count)/((m-g.lts)/1e3)),this.lastVideoFramesDecode.set(A.ssrc,{count:A.framesDecodeCount,lts:m,rate:A.decodeFrameRate})):g?A.decodeFrameRate=g.rate:this.lastVideoFramesDecode.set(A.ssrc,{count:A.framesDecodeCount,lts:m,rate:0}),A.framesDroppedCount&&a.framesReceived&&(C&&m-C.lts>=800?(A.outputFrameRate=Math.round((a.framesReceived-A.framesDroppedCount-C.count)/((m-C.lts)/1e3)),this.lastVideoFramesOutput.set(A.ssrc,{count:a.framesReceived-A.framesDroppedCount,lts:m,rate:Math.max(A.outputFrameRate,0)})):C?A.outputFrameRate=C.rate:this.lastVideoFramesOutput.set(A.ssrc,{count:a.framesReceived-A.framesDroppedCount,lts:m,rate:0})),this.processVideoTrackReceiverStats(a,a.trackId,A),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),a.framerateMean&&(A.framesRateFirefox=a.framerateMean),A.packets>0&&!this.isFirstVideoReceived[A.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(A.ssrc),this.isFirstVideoReceived[A.ssrc]=!0),this.lastDecodeVideoReceiverStats.set(A.ssrc,{stats:Ot({},A),lts:l?l.lts:Date.now(),qpSum:a.qpSum})}processVideoOutboundStats(a){let A=this._stats.videoSend.find(g=>g.ssrc===a.ssrc);A||(A=Dr(ll),this._stats.videoSend.push(A));let l=this.mediaBytesSent.get(a.ssrc);if(l)l.add(a.bytesSent);else{let g=new wt(10);g.add(a.bytesSent),this.mediaBytesSent.set(a.ssrc,g)}if(a.retransmittedBytesSent!==void 0){let g=this.mediaBytesRetransmit.get(a.ssrc);if(g)g.add(a.retransmittedBytesSent);else{let C=new wt(10);C.add(a.retransmittedBytesSent),this.mediaBytesRetransmit.set(a.ssrc,C)}}if(a.totalEncodedBytesTarget){let g=this.mediaBytesTargetEncode.get(a.ssrc);if(g)g.add(a.totalEncodedBytesTarget);else{let C=new wt(10);C.add(a.totalEncodedBytesTarget),this.mediaBytesTargetEncode.set(a.ssrc,C)}}if(A.ssrc=a.ssrc,A.bytes=a.bytesSent,A.packets=a.packetsSent,A.firsCount=a.firCount,A.nacksCount=a.nackCount,A.plisCount=a.pliCount,A.frameCount=a.framesEncoded,A.adaptionChangeReason=a.qualityLimitationReason,A.scalabilityMode=a.scalabilityMode,A.retransmittedBytesSent=a.retransmittedBytesSent,A.retransmittedPacketsSent=a.retransmittedPacketsSent,A.hugeFramesSent=a.hugeFramesSent,A.keyFramesEncoded=a.keyFramesEncoded,A.targetBitrate=a.targetBitrate,a.totalEncodeTime&&a.framesEncoded){let g=this.lastEncoderMs.get(a.ssrc);if(!g||g.lastFrameCount>a.framesEncoded)A.avgEncodeMs=1e3*a.totalEncodeTime/a.framesEncoded;else{let C=a.framesEncoded-g.lastFrameCount,m=a.totalEncodeTime-g.lastEncoderTime;A.avgEncodeMs=1e3*m/C}}if(a.framesEncoded&&a.qpSum){let g=this.lastEncoderMs.get(a.ssrc);!g||g.lastFrameCount>a.framesEncoded?A.qpSumPerFrame=a.qpSum/a.framesEncoded:A.qpSumPerFrame=(a.qpSum-g.lastQpSum)/(a.framesEncoded-g.lastFrameCount)}if(this.lastEncoderMs.set(a.ssrc,{lastFrameCount:a.framesEncoded,lastEncoderTime:a.totalEncodeTime,lastQpSum:a.qpSum,lts:Date.now()}),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),a.mediaSourceId&&this.processVideoMediaSource(a.mediaSourceId,A),this.processVideoTrackSenderStats(a,a.trackId,A),a.remoteId)this.processRemoteInboundStats(a.remoteId,A);else{let g=this.findRemoteStatsId(a.ssrc,J1.REMOTE_INBOUND);g&&this.processRemoteInboundStats(g,A)}}processAudioOutboundStats(a){let A=this._stats.audioSend.find(l=>l.ssrc===a.ssrc);if(A||(A=Dr(As),this._stats.audioSend.push(A)),A.ssrc=a.ssrc,A.packets=a.packetsSent,A.bytes=a.bytesSent,A.retransmittedBytesSent=a.retransmittedBytesSent,A.retransmittedPacketsSent=a.retransmittedPacketsSent,a.mediaSourceId&&this.processAudioMediaSource(a.mediaSourceId,A),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),this.processAudioTrackSenderStats(a,a.trackId,A),a.remoteId)this.processRemoteInboundStats(a.remoteId,A);else{let l=this.findRemoteStatsId(a.ssrc,J1.REMOTE_INBOUND);l&&this.processRemoteInboundStats(l,A)}}processTransportStats(a){this._stats.transport.bytesReceived=a.bytesReceived||this._stats.transport.bytesReceived,this._stats.transport.bytesSent=a.bytesSent||this._stats.transport.bytesSent,this._stats.transport.packetsReceived=a.packetsReceived||this._stats.transport.packetsReceived,this._stats.transport.packetsSent=a.packetsSent||this._stats.transport.packetsSent}findRemoteStatsId(a,A){var l;let g=Array.from(U1(l=this.report).call(l)).find(C=>C.type===A&&C.ssrc===a);return g?g.id:null}processVideoMediaSource(a,A){let l=this.report.get(a);l&&l.width&&l.height&&l.framesPerSecond&&(A.inputFrame={width:l.width,height:l.height,frameRate:l.framesPerSecond})}processAudioMediaSource(a,A){let l=this.report.get(a);l&&(A.inputLevel=l.audioLevel)}processVideoTrackSenderStats(a,A,l){var g,C,m,y;let w=A?this.report.get(A):void 0,b=(g=w==null?void 0:w.framesSent)!==null&&g!==void 0?g:a.framesSent;if(typeof b!="number")return;let M=(C=w==null?void 0:w.frameWidth)!==null&&C!==void 0?C:a.frameWidth,k=(m=w==null?void 0:w.frameHeight)!==null&&m!==void 0?m:a.frameHeight,V=(y=w==null?void 0:w.framesPerSecond)!==null&&y!==void 0?y:a.framesPerSecond;if(typeof M=="number"&&typeof k=="number"||(M=0,k=0),V==null){let K=Date.now(),q=this.lastVideoFramesSent.get(l.ssrc);q&&K-q.lts>=800?(V=Math.round((b-q.count)/((K-q.lts)/1e3)),this.lastVideoFramesSent.set(l.ssrc,{count:b,lts:K,rate:V})):q?V=q.rate:this.lastVideoFramesSent.set(l.ssrc,{count:b,lts:K,rate:0})}l.sentFrame={width:M,height:k,frameRate:Math.max(0,V)}}processVideoTrackReceiverStats(a,A,l){var g,C,m,y,w;let b=A?this.report.get(A):void 0,M=(g=b==null?void 0:b.framesReceived)!==null&&g!==void 0?g:a.framesReceived,k=(C=b==null?void 0:b.frameWidth)!==null&&C!==void 0?C:a.frameWidth,V=(m=b==null?void 0:b.frameHeight)!==null&&m!==void 0?m:a.frameHeight,K=(y=b==null?void 0:b.jitterBufferDelay)!==null&&y!==void 0?y:a.jitterBufferDelay,q=(w=b==null?void 0:b.jitterBufferEmittedCount)!==null&&w!==void 0?w:a.jitterBufferEmittedCount;if(typeof M=="number"){let ce=this.lastVideoFramesRecv.get(l.ssrc),oe=Date.now();l.framesReceivedCount=M;let le=0;ce&&oe-ce.lts>=800?(le=Math.round((M-ce.count)/((oe-ce.lts)/1e3)),this.lastVideoFramesRecv.set(l.ssrc,{count:M,lts:oe,rate:le})):ce?le=ce.rate:this.lastVideoFramesRecv.set(l.ssrc,{count:M,lts:oe,rate:0}),l.receivedFrame={width:k||0,height:V||0,frameRate:le||0},l.decodedFrame={width:k||0,height:V||0,frameRate:l.decodeFrameRate||0},l.outputFrame={width:k||0,height:V||0,frameRate:l.outputFrameRate||l.decodeFrameRate||0}}if(K&&q){let ce=this.lastVideoJBDelay.get(l.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0},oe=ce.jitterBufferMs,le=q-ce.jitterBufferEmittedCount;le>0&&(oe=1e3*(K-ce.jitterBufferDelay)/le),l.jitterBufferMs=oe,l.currentDelayMs=Math.round(oe),this.lastVideoJBDelay.set(l.ssrc,{jitterBufferDelay:K,jitterBufferEmittedCount:q,jitterBufferMs:l.currentDelayMs})}}processAudioTrackSenderStats(a,A,l){var g,C,m,y;let w=A?this.report.get(A):void 0,b=(g=(C=w==null?void 0:w.echoReturnLoss)!==null&&C!==void 0?C:a.echoReturnLoss)!==null&&g!==void 0?g:0,M=(m=(y=w==null?void 0:w.echoReturnLossEnhancement)!==null&&y!==void 0?y:a.echoReturnLossEnhancement)!==null&&m!==void 0?m:0;l.aecReturnLoss=b,l.aecReturnLossEnhancement=M}processAudioTrackReceiverStats(a,A,l){var g,C,m,y,w,b,M,k,V;let K=A?this.report.get(A):void 0,q=(g=K==null?void 0:K.removedSamplesForAcceleration)!==null&&g!==void 0?g:a.removedSamplesForAcceleration,ce=(C=K==null?void 0:K.totalSamplesReceived)!==null&&C!==void 0?C:a.totalSamplesReceived,oe=(m=K==null?void 0:K.jitterBufferDelay)!==null&&m!==void 0?m:a.jitterBufferDelay,le=(y=K==null?void 0:K.jitterBufferEmittedCount)!==null&&y!==void 0?y:a.jitterBufferEmittedCount,pe=(w=K==null?void 0:K.audioLevel)!==null&&w!==void 0?w:a==null?void 0:a.audioLevel,Se=(b=K==null?void 0:K.totalSamplesDuration)!==null&&b!==void 0?b:a==null?void 0:a.totalSamplesDuration,be=(M=K==null?void 0:K.concealedSamples)!==null&&M!==void 0?M:a.concealedSamples,Ue=(k=K==null?void 0:K.silentConcealedSamples)!==null&&k!==void 0?k:a.silentConcealedSamples,xe=(V=K==null?void 0:K.concealmentEvents)!==null&&V!==void 0?V:a.concealmentEvents;if(typeof ce=="number"&&(l.totalSamplesReceived=ce),typeof Ue=="number"&&(l.silentConcealedSamples=Ue),typeof xe=="number"&&(l.concealmentEvents=xe),typeof be=="number"&&(l.concealedSamples=be),q&&ce&&(l.accelerateRate=q/ce),oe&&le){let je=this.lastAudioJBDelay.get(l.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0},dt=je.jitterBufferMs,pt=le-je.jitterBufferEmittedCount;pt>0&&(dt=1e3*(oe-je.jitterBufferDelay)/pt),l.jitterBufferMs=Math.round(dt),this.lastAudioJBDelay.set(l.ssrc,{jitterBufferDelay:oe,jitterBufferEmittedCount:le,jitterBufferMs:l.jitterBufferMs})}l.outputLevel=pe;let Le=1920;Se&&ce&&(Le=ce/Se/50,l.receivedFrames=Math.round(ce/Le)),be&&(l.droppedFrames=Math.round(be/Le))}processRemoteInboundStats(a,A){let l=this.report.get(a);l&&(A.packetsLost=l.packetsLost,l.roundTripTime&&(A.rttMs=1e3*l.roundTripTime),l.jitter&&(A.jitterMs=1e3*l.jitter),l.timestamp&&(A.timestamp=l.timestamp))}getCodecFromCodecStats(a){let A=this.report.get(a);if(!A)return"";let l=A.mimeType.match(/\/(.*)$/);return l&&l[1]?l[1]:""}updateSendBitrate(){let a=0,A=null,l=null;this.mediaBytesSent.forEach(C=>{a+=C.diffMean()}),this.mediaBytesRetransmit.forEach(C=>{A=A===null?C.diffMean():A+C.diffMean()}),this.mediaBytesTargetEncode.forEach(C=>{l=l===null?C.diffMean():l+C.diffMean()});let g=A!==null?a-A:a;this._stats.bitrate={actualEncoded:8*g/(this.options.updateInterval/1e3),transmit:8*a/(this.options.updateInterval/1e3)},A!==null&&(this._stats.bitrate.retransmit=8*A/(this.options.updateInterval/1e3)),l!==null&&(this._stats.bitrate.targetEncoded=8*l/(this.options.updateInterval/1e3))}},$P=class extends Nf{updateStats(){return Ft.resolve()}};function MC(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:8,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:500,C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1e4,m=function(){let y=navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]*/i);return y&&y[0]?Number(y[0].split("/")[1]):null}();return m?m<76?new Ra(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C}):new MR(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C}):function(y){if(!window.RTCStatsReport)return!1;let w=y.getStats();return!!(w instanceof Ft||function(b){return!!b&&(typeof b=="object"||typeof b=="function")&&typeof b.then=="function"}(w))}(a)?new MR(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C}):new $P(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C})}let n4="websdk_ng_install_id";function Of(){try{if(Ie("INSTALL_ID"))return Ie("INSTALL_ID");let a=window.localStorage.getItem(n4);return a||(a=Ln(),window.localStorage.setItem(n4,a)),Mn("INSTALL_ID",a),a}catch{return}}let Cn=function(a){if(a.match(/[0-9]+\.[0-9]+\.[0-9]+$/))return a;let A=a.match(/([0-9]+\.[0-9]+\.[0-9]+)\-([0-9]+)/);if(A&&A[1]&&A[2]){let l=A[1],g=A[2];return"".concat(l,".").concat(g)}return"4.0.0.999"}("4.24.2"),u2=function(){try{return JSON.parse("true")===!0}catch{return!0}}(),ih=function(a){return a.Default="default",a.Auto="auto",a.Relay="relay",a.SdRtn="sd-rtn",a}({}),Ti=function(){let a="us".concat("erna","me"),A="pa".concat("sswo","rd"),l=["t","s","t"];l.splice(1,0,"e");let g=l.join(""),C=[];for(let w=0;w<6;w++)C.push("1");let m=C.join(""),y={};return y[a]=g,y[A]=m,Object.assign(y,{turnServerURL:"",tcpport:3433,udpport:3478,forceturn:!1})}();window.DEFAULT_TURN_CONFIG=Ti;let vn={ENABLE_PUBLISHED_USER_LIST:!0,MAX_SUBSCRIPTION:50,SUBSCRIBE_AUDIO_FILTER_TOPN:void 0,ENABLE_PUBLISH_AUDIO_FILTER:void 0,ENABLE_USER_LICENSE_CHECK:!0,DISABLE_FEC:void 0,ENABLE_NTP_REPORT:!1,ENABLE_INSTANT_VIDEO:!1,ENABLE_USER_AUTO_REBALANCE_CHECK:!0,ENABLE_LOSSBASED_BWE:!0,ENABLE_AUT_CC:!0,FORCE_ENABLE_AUT_CC:!1,ENABLE_CC_FALLBACK:void 0,SUBSCRIBE_TWCC:!0,PUBLISH_TWCC:!1,ENABLE_SVC_DEFAULT_CODECS:["H264","VP8","VP9","AV1"],SVC:[],ENABLE_FULL_LINK_AV_SYNC:!1,SVC_MODE:null,PRE_SUB_NUM:1,ENABLE_AUT_FEEDBACK:!0,SVC_EXTENDED:["VP9"]},kR={MIN_FRAME_RATE:1,MAX_FRAME_RATE:30,MAX_THRESHOLD_FRAMERATE:30,BITRATE_MIN_THRESHOLD:100,BITRATE_MAX_THRESHOLD:100,MAX_SCALE:5,BWE_SCALE_UP_THRESHOLD:.6,BWE_SCALE_DOWN_THRESHOLD:.6,PERF_SCALE_UP_THRESHOLD:.7,PERF_SCALE_DOWN_THRESHOLD:.6,MOTION_RESOLUTION_FACTOR:.8,MOTION_BITRATE_FACTOR:.6,DETAIL_FRAMERATE_FACTOR:.8,DETAIL_BITRATE_FACTOR:.6,BALANCE_RESOLUTION_FACTOR:.9,BALANCE_FRAMERATE_FACTOR:.9,BALANCE_BITRATE_FACTOR:.6,OVERUSE_TIMES_THRESHOLD:10,UNDERUSE_TIMES_THRESHOLD:40},o4="v4.24.2-0-g002485b1-dirty(12/12/2025, 5:26:54 PM)",mi={ENABLE_EVENT_REPORT:!0,UPLOAD_LOG:!1,ENABLE_AG_ADAPTATION:!0,FORCE_AG_HIGH_FRAMERATE:!1,FORCE_SUPPORT_AG_ADAPTATION:!1,ENCODER_CONFIG_LIMIT:{},CAMERA_CAPTURE_CONFIG:void 0,ENABLE_PRELOAD:!0,NEW_ICE_RESTART:!0,ICE_RESTART_INTERVAL:1e4,RESTART_SEQUENCE:["udp_tcp_relay","relay"],FIRST_TCP_CANDIDATE:!1,FIRST_TCP_CANDIDATE_INTERVAL:1e3,TURN_DOMAIN:"edge.agora.io",TURN_DOMAINS:["edge.agora.io"],USE_TURN_IP:!0,NEW_TURN_MODE:4,NEW_FORCE_TURN:!1,USE_NEW_RENDER_FREEZE_TIME:!1,FLS_FALLBACK_TIMEOUT:3e4,RTE_DETAIL_REPORT_INTERVAL:6e4,ENCODE_EXCEPTION_TIMES:5,ENABLE_ENCODE_EXCEPTION:!0,ENCODE_EXCEPTION_VALIDATE_CODEC:["h264"],VIDEO_ENCODER_CONFIG_LIST:[{width:240,height:180},{width:320,height:240},{width:400,height:300},{width:480,height:360},{width:560,height:420},{width:640,height:480}],DELETE_NEQ_AFTER_USER_LEAVE:!0,UPDATE_RTP_CAP_IN_HOST:!1,IOS_BG_TAG:!0,IOS_AUTO_RESTART_BG_TAG:!0,IGNORE_UID_CHECK:!1,ENABLE_UP_SPS_PPS:!1,ENABLE_DOWN_SPS_PPS:!1,NO_EDGES_RETRY:!0,BUFFER_READY_FRAMES:3,FLS_SYNC_AV_PLAY_LIMIT:0,FLS_BUFFER_WAIT_TIME:1500,VOS_CONFIGURE:void 0,ENABLE_QUALITY_FALLBACK:!1,QUALITY_FALLBACK_REHEARSAL:!0,ENABLE_FLS_AV1_FIRST:!1,ENABLE_AP_MULTI_IP:!0,FLS_ENABLE_AV1_DETECT:!0,FLS_ENABLE_AV1_DECODE_DETECT:!0},zi=Ot(Ot(Ot(Ot({},mi),{},{PROCESS_ID:"",ENCRYPT_AES:!0,AREAS:["CHINA","GLOBAL"],WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-web-2.ap.sd-rtn.com","cds-ap-web-3.agora.io","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-web-2.ap.sd-rtn.com","sua-ap-web-3.agora.io","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-ap-web-1.agora.io","uap-web-2.ap.sd-rtn.com","uap-ap-web-3.agora.io","uap-web-4.ap.sd-rtn.com"],LOG_UPLOAD_SERVER:"logservice.agora.io",EVENT_REPORT_DOMAIN:"statscollector-1.agora.io",EVENT_REPORT_BACKUP_DOMAIN:"web-2.statscollector.sd-rtn.com",GATEWAY_ADDRESS:[],GATEWAY_WSS_ADDRESS:"",LIVE_STREAMING_ADDRESS:"",HTTP_CONNECT_TIMEOUT:5e3,SIGNAL_REQUEST_TIMEOUT:1e4,REPORT_STATS:!0,NOT_REPORT_EVENT:[],PING_PONG_TIME_OUT:10,WEBSOCKET_TIMEOUT_MIN:1e4,EVENT_REPORT_SEND_INTERVAL:3e3,CONFIG_DISTRIBUTE_INTERVAL:3e5,ENABLE_CONFIG_DISTRIBUTE:!0,CANDIDATE_TIMEOUT:5e3,SHOW_REPORT_INVOKER_LOG:!1,SHOW_REPORT_USER_INVOKER_LOG:!0,JOIN_EXTEND:"",PUB_EXTEND:"",SUB_EXTEND:"",FORCE_TURN:!1,TURN_ENABLE_TCP:!0,TURN_ENABLE_UDP:!0,MAX_UPLOAD_CACHE:50,UPLOAD_CACHE_INTERVAL:2e3,AJAX_REQUEST_CONCURRENT:3,REPORT_APP_SCENARIO:void 0,GATEWAY_DOMAINS:["edge.agora.io","edge.sd-rtn.com"],CONNECT_GATEWAY_WITHOUT_DOMAIN:!1,WORKER_DOMAIN:"edge.agora.io",EVENT_REPORT_RETRY:!0,CHROME_FORCE_PLAN_B:!1,AUDIO_SOURCE_VOLUME_UPDATE_INTERVAL:400,AUDIO_SOURCE_AVG_VOLUME_DURATION:3e3,AUDIO_VOLUME_INDICATION_INTERVAL:2e3,VOLUME_VOICE_WEIGHT:10,GET_VOLUME_OF_MUTED_AUDIO_TRACK:!1,STATS_UPDATE_INTERVAL:250,NORMAL_EVENT_QUEUE_CAPACITY:100,CUSTOM_REPORT:!0,CUSTOM_REPORT_LIMIT:20,PROXY_SERVER_TYPE2:"webnginx-proxy.agora.io",PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com","webrtc-cloud-proxy.agora.io"],CUSTOM_PUB_ANSWER_MODIFIER:null,CUSTOM_SUB_ANSWER_MODIFIER:null,CUSTOM_PUB_OFFER_MODIFIER:null,CUSTOM_SUB_OFFER_MODIFIER:null,DSCP_TYPE:"high",REMOVE_NEW_CODECS:!0,FRAGEMENT_LENGTH:3,WEBSOCKET_COMPRESS:!1,SIMULCAST:!1,CHECK_VIDEO_VISIBLE_INTERVAL:3e4,CHECK_LOCAL_STATS_INTERVAL:250,PROFILE_SWITCH_INTERVAL:2e3,UNSUPPORTED_VIDEO_CODEC:[],ENUMERATE_DEVICES_INTERVAL:!1,ENUMERATE_DEVICES_INTERVAL_TIME:1e4,USE_NEW_TOKEN:!1,CLOSE_AFB_FOR_LOCAL_AP:!0,JOIN_MAX_CONCURRENCY:6,JOIN_WITH_FALLBACK_SIGNAL_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE:!1,JOIN_GATEWAY_TRY_443PORT_DURATION:2e3,JOIN_GATEWAY_USE_443PORT_ONLY:!1,JOIN_GATEWAY_USE_DUAL_DOMAIN:!0,JOIN_GATEWAY_FALLBACK_PORT:443,USE_TURN_SERVER_OF_GATEWAY:!1,H264_PROFILE_LEVEL_ID:"",USE_NEW_LOG:!1,LOG_VERSION:3,MEDIA_DEVICE_CONSTRAINTS:null,ENCRYPT_PROXY_USERNAME_AND_PSW:!0,SDP_LOGGING:!1,CSP_DETECTED_HOSTNAME_LIST:["agora.io","sd-rtn.com"],REMOTE_AUDIO_TRACK_USES_WEB_AUDIO:!1,LOCAL_AUDIO_TRACK_USES_WEB_AUDIO:!1,BITRATE_ADAPTER_TYPE:"STANDARD_BITRATE",AI_DENOISER_PARAMETERS:{excludedLinks:[]},ADJUST_3A_FROM_PLUGINS:!0,RAISE_H264_BASELINE_PRIORITY:!0,FILTER_SEND_H264_BASELINE:!1,FIRST_H264_PROFILE_LEVEL_ID:"42001f",FIRST_PACKETIZATION_MODE:"",X_GOOGLE_START_BITRATE:void 0,NEW_REPORT_SERVER:!1,NEW_REPORT_SERVER_DOMAINS:["data-reporting.agora.io","data-reporting.agora.io"],VIDEO_INSPECT_WORKER_MESSAGE_LENGTH_LIMIT:3e5,VIDEO_INSPECT_INTERVAL_MINIMUM:1e3,VIDEO_INSPECT_QUALITY_RATIO:.9,VIDEO_INSPECT_WORKER_MANAGER_HOST:"edge.agora.io",VIDEO_INSPECT_WORKER_MANAGER_PORT:"",VIDEO_INSPECT_WORKER_MANAGER_WSS:"",VIDEO_INSPECT_WORKER_PORT:"",SHOW_VIDEO_INSPECT_WORKER_MESSAGE:!1,STATS_COLLECTOR_PORT:443,FORCE_TURN_TCP:!1,WEBAUDIO_INIT_OPTIONS:void 0,FILTER_VIDEO_FEC:!0,FILTER_AUDIO_FEC:!1,CHROME_DUAL_STREAM_USE_ENCODING:!0,DISABLE_DUAL_STREAM_USE_ENCODING:!1,EXTENSION_USAGE_UPLOAD_INTERVAL:1e4,ICE_RESTART:!0,FINGERPRINT:null,ENABLE_VIDEO_FRAME_CALLBACK:!0,VIDEO_FREEZE_DURATION:500,SPATIALIZER_PARAMETERS:{},UPLOAD_LOG_INTERVAL:3e3,UPLOAD_LOG_REQUEST_RETRY_INTERVAL:2e3,UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL:2e4,UPLOAD_LOG_TRY_INTERVAL_WHILE_OFF:5e3,UPLOAD_LOG_RETRY_INTERVAL_V1:1e4,UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1:200,UPLOAD_LOG_LENGTH_EACH_TIME:10,APP_TYPE:0,DISABLE_WEBAUDIO:!1,CHANNEL_MEDIA_RELAY_SERVERS:void 0,KEEP_LAST_FRAME:!0,FORWARD_P2P_CREATION:!0,SYNC_GROUP:!0,BLOCK_LOCAL_CLIENT:!1,ENABLE_AUDIO_TOPN:!1,ENABLE_AUDIO_METADATA:!1,ENABLE_AUDIO_PTS:!1,TOPN_SMOOTH_LEVEL:void 0,TOPN_NEW_SPEAKER_DELAY:void 0,TOPN_SWITCH_HOLD_MS:void 0,TOPN_AUDIO_GAIN:void 0,TOPN_SILENCE_THRESHOLD:250,AP_AREA:!0,ENABLE_ENCODED_TRANSFORM:!1,ENABLE_VIDEO_SEI:!1,IMAGE_MODERATION_WORKER_HOST:"edge.agora.io",IMAGE_MODERATION_WORKER_WSS:"",IMAGE_MODERATION_WORKER_MESSAGE_LENGTH_LIMIT:3e5,IMAGE_MODERATION_INTERVAL_MINIMUM:1e3,SHOW_IMAGE_MODERATION_WORKER_MESSAGE:!1,IMAGE_MODERATION_QUALITY_RATIO:.9,IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL:5e3,SHOW_GLOBAL_CLIENT_LIST:!1,DATASTREAM_MAX_RETRANSMITS:10,TCP_CANDIDATE_ONLY:!1,EXTERNAL_SIGNAL_REQUEST_TIMEOUT:3e3,SHOW_P2P_LOG:!1,MAX_P2P_TIMEOUT:3e4,P2P_TOKEN_INTERVAL:1e3,SHOW_DATASTREAM2_LOG:!1,RESTRICTION_SET_PLAYBACK_DEVICE:!0,USE_PURE_ENCRYPTION_MASTER_KEY:!1,ENABLE_AUDIO_RED:!1,OPUS_PTIME:void 0,AUDIO_DUPLICATE_NUM:void 0,ENABLE_ABSSENDTIME_AS_SENTTS:!0,ACCOUNT_REGISTER_RETRY_TIMEOUT:1,ACCOUNT_REGISTER_RETRY_RATIO:2,ACCOUNT_REGISTER_RETRY_TIMEOUT_MAX:6e4,ACCOUNT_REGISTER_RETRY_COUNT_MAX:1e5,AUDIO_CONTEXT:null,WEBCS_BACKUP_CONNECT_TIMEOUT:6e3,PLAYER_STATE_DEFER:2e3,SIGNAL_REQUEST_WATCH_INTERVAL:1e3,FILEPATH_LENMAX:255,DUALSTREAM_OPERATION_CHECK:!0,MEDIA_ELEMENT_EXISTS_DEPTH:3,SHIM_CANDIDATE:!1,LEAVE_MSG_TIMEOUT:2e3,STATS_FILTER:{transportId:!0,googTrackId:!0},FILTER_VIDEO_CODEC:[],SIGNAL_CHANNEL:0,TRANSMITTER_INITIAL_RTT:30,TRANSMITTER_INITIAL_RTO:30,TRANSMITTER_MAX_BATCH_ACK_COUNT:2,TRANSMITTER_MAX_RTO:500,DATACHANNEL_COMPRESS:!1,DC_JOIN_WITH_FAILBACK:4e3,DC_CONNECTION_TIMEOUT:2e3,DC_PINGPONG_INTERVAL:2e3,DC_DEBUG_LOG:!1,UNSUPPORTED_VIDEO_UPLINK_CODEC:[],UNSUPPORTED_VIDEO_DOWNLINK_CODEC:[],USE_NEW_NETWORK_CONFIG:!1,AUTO_RESET_AUDIO_ROUTE:!1,PLUGIN_INFO:[],OVERUSE_DETECTOR_PARAMS:kR,CUSTOM_ADAPTATION_DEFAULT_MODE:"",HIDE_NO_POSTER:!1,AP_CACHE_NUM:10,AP_UPDATE_INTERVAL:12e4,AP_CACHE_LIFETIME:12e4,MAX_PRELOAD_ASYNC_LENGTH:3,DISABLE_SCREEN_SHARE_REMB:!1},vn),{},{USE_CANDIDATE_FROM_AP_DETAIL:!1,AP_REQUEST_DETAIL:void 0,ENABLE_ROLE_SELECT_EDGE:!1,CLIENT_ROLE_OPTIONS:void 0,REMOTE_VIDEO_STREAM_TYPE:void 0,COMPATIBLE_SDP_EXTENSION:["gdpr_forbidden"],LIMIT_BITRATE:void 0,EXPERIMENTS:{},USE_PUB_RTX:!0,USE_SUB_RTX:!0,ENABLE_DATASTREAM_2:!1,USE_XR:!0,ENABLE_PREALLOC_PC:!1,ENABLE_PRE_SUB:!1,ENABLE_SVC:!1,ENABLE_FORCE_HLS:!1,MAX_WEBAUDIO_VOLUME:300,ENABLE_VOS_FALLBACK:!1,ENABLE_FALLBACK_TO_HLS:!1,ENABLE_PRE_RENDER:!1,FORCE_DISABLE_AUTO_SUB:!1,ENABLE_PRE_SUB_WITH_PRE_PC:!0,PRE_USE_LOCAL_CODECS:!0},{INSTALL_ID:""}),{},{K_MIN_RENDER_DELAY:66,USE_STANDARD_BITRATE_DEFAULT:!1,VIDEO_NEW_BITRATE_RATIO:void 0,VIDEO_STANDARD_BITRATE_VERSION:2,BASELINE_MORE_H264_BITRATE_RATIO:1.1,IGNORE_RTC_DEVICE_CHECK:!1,FLS_AUTOPLAY_EMITS:!1,ENABLE_DUAL_STREAM_FLAG:!1,FORBID_MODIFY_LOCAL_OFFER_SDP:!1,RESERVE_MID_1_MLINE:!1});function Mn(a,A,l){var g,C,m;Rt(g=Object.keys(zi)).call(g,a)&&(!l&&Rt(C=Object.keys(Vr)).call(C,a)||(zi[a]=A,a!=="ENABLE_VIDEO_SEI"&&a!=="ENABLE_AUDIO_TOPN"&&a!=="ENABLE_AUDIO_METADATA"&&a!=="ENABLE_AUDIO_PTS"||A!==!0||(zi.ENABLE_ENCODED_TRANSFORM=!0),a==="USE_NEW_NETWORK_CONFIG"&&A&&(m=!!A,zi.USE_NEW_NETWORK_CONFIG=m,m&&(zi.WEBCS_DOMAIN=["webrtc2-2.ap.sd-rtn.com"],zi.WEBCS_DOMAIN_BACKUP_LIST=["webrtc2-4.ap.sd-rtn.com"],zi.CDS_AP=["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],zi.ACCOUNT_REGISTER=["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],zi.EVENT_REPORT_DOMAIN="web-2.statscollector.sd-rtn.com",zi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-1.agora.io",zi.GATEWAY_DOMAINS=["edge.sd-rtn.com"])),a==="ENABLE_PRE_SUB"&&A&&(zi.ENABLE_INSTANT_VIDEO=!0,zi.ENABLE_PREALLOC_PC=!0),a==="ENABLE_SVC"&&A&&(zi.ENABLE_AUT_CC=!0),a==="NEW_FORCE_TURN"&&A&&(zi.NEW_TURN_MODE||(zi.NEW_TURN_MODE=4))))}function Ie(a){if(a==="TURN_DOMAINS"){let A=zi.TURN_DOMAINS;return Rt(A).call(A,Ie("TURN_DOMAIN"))?A:[Ie("TURN_DOMAIN")].concat(A)}return zi[a]}u2||(zi.WEBCS_DOMAIN=["ap-web-1-oversea.agora.io","ap-web-1-north-america.agora.io"],zi.WEBCS_DOMAIN_BACKUP_LIST=["ap-web-2-oversea.agora.io","ap-web-2-north-america.agora.io"],zi.PROXY_CS=["proxy-ap-web-oversea.agora.io","proxy-ap-web-america.agora.io"],zi.CDS_AP=["cds-ap-web-oversea.agora.io","cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],zi.ACCOUNT_REGISTER=["sua-ap-web-oversea.agora.io","sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],zi.UAP_AP=["uap-ap-web-oversea.agora.io","uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],zi.LOG_UPLOAD_SERVER="logservice-oversea.agora.io",zi.EVENT_REPORT_DOMAIN="statscollector-1-oversea.agora.io",zi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-2-oversea.agora.io",zi.PROXY_SERVER_TYPE3="webrtc-cloud-proxy.agora.io",zi.AREAS=["NORTH_AMERICA","OVERSEA"]);let PR=function(a){return a[a.REALTIME=1]="REALTIME",a}({}),Vr={};var Pr=function(a){return a.SET_SESSION_ID="SET_SESSION_ID",a.SET_RTE_URL="SET_RTE_URL",a.SET_RTE_SID="SET_RTE_SID",a.SET_P2P_ID="SET_P2P_id",a.SET_DC_ID="SET_DC_id",a.SET_UID="SET_UID",a.SET_INT_UID="SET_INT_UID",a.SET_PUB_ID="SET_PUB_ID",a.SET_CLOUD_PROXY_SERVER_MODE="SET_CLOUD_PROXY_SERVER_MODE",a.KEY_METRIC_CLIENT_CREATED="KEY_METRIC_CLIENT_CREATED",a.KEY_METRIC_JOIN_START="KEY_METRIC_JOIN_START",a.KEY_METRIC_PRELOAD_START="KEY_METRIC_PRELOAD_START",a.KEY_METRIC_PRELOAD_END="KEY_METRIC_PRELOAD_END",a.KEY_METRIC_JOIN_END="KEY_METRIC_JOIN_END",a.KEY_METRIC_REQUEST_AP_START="KEY_METRIC_REQUEST_AP_START",a.KEY_METRIC_REQUEST_AP_END="KEY_METRIC_REQUEST_AP_END",a.KEY_METRIC_REQUEST_SUA_END="KEY_METRIC_REQUEST_SUA_END",a.KEY_METRIC_BEFORE_CONNECT="KEY_METRIC_BEFORE_CONNECT",a.KEY_METRIC_PEER_RECEIVER="KEY_METRIC_PEER_RECEIVER",a.KEY_METRIC_SIGNAL_CONNECTED="KEY_METRIC_SIGNAL_CONNECTED",a.KEY_METRIC_JOIN_REQ="KEY_METRIC_JOIN_REQ",a.KEY_METRIC_JOIN_REP="KEY_METRIC_JOIN_REP",a.KEY_METRIC_JOIN_GATEWAY_START="KEY_METRIC_JOIN_GATEWAY_START",a.KEY_METRIC_JOIN_GATEWAY_END="KEY_METRIC_JOIN_GATEWAY_END",a.KEY_METRIC_PEER_CONNECTION_START="KEY_METRIC_PEER_CONNECTION_START",a.KEY_METRIC_PEER_CONNECTION_END="KEY_METRIC_PEER_CONNECTION_END",a.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED="KEY_METRIC_FIRST_VIDEO_FRAME_DECODED",a.KEY_METRIC_DESCRIPTION_START="KEY_METRIC_DESCRIPTION_START",a.KEY_METRIC_ICE_CONNECTION_END="KEY_METRIC_ICE_CONNECTION_END",a.KEY_METRIC_SIGNAL_CHANNEL_OPEN="KEY_METRIC_SIGNAL_CHANNEL_OPEN",a.KEY_METRIC_PUBLISH="KEY_METRIC_PUBLISH",a.KEY_METRIC_SUBSCRIBE="KEY_METRIC_SUBSCRIBE",a.RECORD_JOIN_CHANNEL_SERVICE="RECORD_JOIN_CHANNEL_SERVICE",a.RESET_JOIN_CHANNEL_SERVICE_RECORDS="RESET_JOIN_CHANNEL_SERVICE_RECORDS",a.RESET_KEY_METRICS="RESET_KEY_METRICS",a.RESET_FIRST_VIDEO_FRAME_DECODED="RESET_FIRST_VIDEO_FRAME_DECODED",a.SET_USE_P2P="SET_USE_P2P",a.SET_TRANSPORT_TYPE="SET_TRANSPORT_TYPE",a}(Pr||{});let Ss=function(a){return a.h264="h264",a.h265="h265",a.vp8="vp8",a.vp9="vp9",a.av1="av1",a}({});(function(a){a.opus="opus",a.pcma="pcma",a.pcmu="pcmu",a.g722="g722"})({});let tA=128,E2=96,$o=1e3,sn=10,q1=0;var nh=(()=>{var a={8:(g,C,m)=>{m.r(C),m.d(C,{Parser:()=>pt,Printer:()=>br,parse:()=>kt,print:()=>Wt});let y=` +`,w="".concat("\r").concat(y),b=" ",M;function k(It){return It>="0"&&It<="9"}function V(It){return It>="!"&&It<="~"}function K(It){return V(It)||It>="€"&&It<="ÿ"}function q(It){return It==="!"||It>="#"&&It<="'"||It>="*"&&It<="+"||It>="-"&&It<="."||It>="0"&&It<="9"||It>="A"&&It<="Z"||It>="^"&&It<="~"}function ce(It){return It>="1"&&It<="9"}function oe(It){return It>="A"&&It<="Z"||It>="a"&&It<="z"}function le(It){return It==="d"||It==="h"||It==="m"||It==="s"}function pe(It){return It>""&&It<" "||It>"\v"&&It<"\f"||It>""&&It<"ÿ"}function Se(It){return oe(It)||k(It)||It==="+"||It==="/"}function be(It){return k(It)||oe(It)||It==="+"||It==="/"||It==="-"||It==="_"}function Ue(It){return oe(It)||k(It)||It==="+"||It==="/"}function xe(It,ne){var ve=Object.keys(It);if(Object.getOwnPropertySymbols){var Pe=Object.getOwnPropertySymbols(It);ne&&(Pe=Pe.filter(function(Lt){return Object.getOwnPropertyDescriptor(It,Lt).enumerable})),ve.push.apply(ve,Pe)}return ve}function Le(It){for(var ne=1;ne=0&&Lt<=255)return Pe;throw new Error("Invalid decimal uchar")}consumeIP6Address(ne,ve){let Pe=this.consumeHexpart(ne,ve);return ne[Pe]===":"&&(Pe+=1,Pe=this.consumeIP4Address(ne,Pe)),Pe}consumeHexpart(ne,ve){let Pe=ve;if(ne[Pe]===":"&&ne[Pe+1]===":"){Pe+=2;try{Pe=this.consumeHexseq(ne,Pe)}catch{}return Pe}if(Pe=this.consumeHexseq(ne,Pe),ne[Pe]===":"&&ne[Pe+1]===":"){Pe+=2;try{Pe=this.consumeHexseq(ne,Pe)}catch{}return Pe}return Pe}consumeHexseq(ne,ve){let Pe=ve;for(;Pe=this.consumeHex4(ne,Pe),ne[Pe]===":"&&ne[Pe+1]!==":";)Pe+=1;return Pe}consumeHex4(ne,ve){let Pe=0;for(;Pe<4;Pe++)if(!((Lt=ne[ve+Pe])>="0"&&Lt<="9"||Lt>="a"&&Lt<="f"||Lt>="A"&&Lt<="F")){if(Pe===0)throw new Error("Invalid hex 4");break}var Lt;return ve+Pe}consumeFQDN(ne,ve){let Pe=ve;for(;k(ne[Pe])||oe(ne[Pe])||ne[Pe]==="-"||ne[Pe]===".";)Pe+=1;if(Pe-ve<4)throw new Error("Invalid FQDN");return Pe}consumeExtnAddr(ne,ve){return this.consumeOneOrMore(ne,ve,K)}consumeMulticastAddress(ne,ve,Pe){switch(Pe){case"IP4":case"ip4":return this.consumeIP4MulticastAddress(ne,ve);case"IP6":case"ip6":return this.consumeIP6MulticastAddress(ne,ve);default:try{return this.consumeFQDN(ne,ve)}catch{return this.consumeExtnAddr(ne,ve)}}}consumeIP6MulticastAddress(ne,ve){let Pe=this.consumeHexpart(ne,ve);return ne[Pe]==="/"?this.consumeInteger(ne,Pe+1):Pe}consumeIP4MulticastAddress(ne,ve){let Pe=ve+3,Lt=ne.slice(ve,Pe),Kr=parseInt(Lt);if(Kr<224||Kr>239)throw new Error("Invalid IP4 multicast address, IPv4 multicast addresses may be in the range 224.0.0.0 to 239.255.255.255.");for(let co=0;co<3;co++){if(ne[Pe]!==".")throw new Error("Invalid IP4 multicast address.");Pe+=1,Pe=this.consumeDecimalUChar(ne,Pe)}return ne[Pe]==="/"&&(Pe+=1),Pe=this.consumeTTL(ne,Pe),ne[Pe]==="/"&&(Pe=this.consumeInteger(ne,Pe)),Pe}consumeInteger(ne,ve){if(!ce(ne[ve]))throw new Error("Invalid integer.");for(ve+=1;k(ne[ve]);)ve+=1;return ve}consumeTTL(ne,ve){if(ne[ve]==="0")return ve+1;if(!ce(ne[ve]))throw new Error("Invalid TTL.");ve+=1;for(let Pe=0;Pe<2&&k(ne[ve]);Pe++)ve+=1;return ve}consumeToken(ne,ve){return this.consumeOneOrMore(ne,ve,q)}consumeTime(ne,ve){let Pe=ve;if(ne[Pe]==="0")return Pe+1;for(ce(ne[Pe])&&(Pe+=1);k(ne[Pe]);)Pe++;if(Pe-ve<10)throw new Error("Invalid time");return Pe}consumeAddress(ne,ve){return this.consumeTill(ne,ve,b)}consumeTypedTime(ne,ve){let Pe=ve;return Pe=this.consumeOneOrMore(ne,Pe,k),le(ne[Pe])?Pe+1:Pe}consumeRepeatInterval(ne,ve){if(!ce(ne[ve]))throw new Error("Invalid repeat interval");for(ve+=1;k(ne[ve]);)ve+=1;return le(ne[ve])&&(ve+=1),ve}consumePort(ne,ve){return this.consumeOneOrMore(ne,ve,k)}consume(ne,ve,Pe){for(let Lt=0;Lt=ne.length)throw new Error("consume exceeding value length");if(ne[ve+Lt]!==Pe[Lt])throw new Error("consume ".concat(Pe," failed at ").concat(Lt))}return ve+Pe.length}consumeTill(ne,ve,Pe){let Lt=ve;for(;Lt!!RA(rE).call(rE)).map(this.parseLine),this.currentLine=0;let Pe=this.parseVersion(),Lt=this.parseOrigin(),Kr=this.parseSessionName(),co=this.parseInformation(),_n=this.parseUri(),Kc=this.parseEmail(),tE=this.parsePhone(),Dt=this.parseConnection(),dd=this.parseBandWidth(),rm=this.parseTimeFields(),lc=this.parseKey(),Cp=this.parseSessionAttribute(),nu=this.parseMediaDescription();if(this.currentLine!==this.records.length)throw new Error("parsing failed, non exhaustive sdp lines.");return{version:Pe,origin:Lt,sessionName:Kr,information:co,uri:_n,emails:Kc,phones:tE,connection:Dt,bandwidths:dd,timeFields:rm,key:lc,attributes:Cp,mediaDescriptions:nu}}getCurrentRecord(){let ne=this.records[this.currentLine];if(!ne)throw new Error("Record doesn't exit.");return ne}probeEOL(ne){for(let ve=0;ve=.");let Pe=ne[0];if(ne[1]!=="=")throw new Error('Invalid sdp line, should be a single character followed by an "=" sign.');return{type:Pe,value:ne.slice(2),line:ve,cur:0}}parseSessionAttribute(){let ne=new gr;for(;this.currentLineq(Lt)&&Lt!==":"),_cur:0};ve.value[ve.cur]===":"&&(ve.cur+=1,Pe.attValue=this.extractOneOrMore(ve,pe)),ne.parse(Pe),this.currentLine++}return ne.digest()}parseMediaAttributes(ne){let ve=new li(ne);for(;this.currentLineq(Kr)&&Kr!==":"),_cur:0};Pe.value[Pe.cur]===":"&&(Pe.cur+=1,Lt.attValue=this.extractOneOrMore(Pe,pe)),ve.parse(Lt),this.currentLine++}return ve.digest()}parseKey(){let ne=this.getCurrentRecord();if(ne.type===M.KEY){if(ne.value==="prompt"||ne.value==="clear:"||ne.value==="base64:"||ne.value==="uri:")return ne.value;throw this.currentLine++,new Error("Invalid key.")}}parseZone(){let ne=this.getCurrentRecord();if(ne.type===M.ZONE_ADJUSTMENTS){let ve=[];for(;;)try{let Pe=this.extract(ne,this.consumeTime);this.consumeSpaceForRecord(ne);let Lt=!1;ne.value[ne.cur]==="-"&&(Lt=!0,ne.cur+=1);let Kr=this.extract(ne,this.consumeTypedTime);ve.push({time:Pe,typedTime:Kr,back:Lt})}catch{break}if(ve.length===0)throw new Error("Invalid zone adjustments");return this.currentLine++,ve}return[]}parseRepeat(){let ne=[];for(;;){let ve=this.getCurrentRecord();if(ve.type!==M.REPEAT)break;{let Pe=this.extract(ve,this.consumeRepeatInterval),Lt=this.parseTypedTime(ve);ne.push({repeatInterval:Pe,typedTimes:Lt}),this.currentLine++}}return ne}parseTypedTime(ne){let ve=[];for(;;)try{this.consumeSpaceForRecord(ne),ve.push(this.extract(ne,this.consumeTypedTime))}catch{break}if(ve.length===0)throw new Error("Invalid typed time.");return ve}parseTime(){let ne=this.getCurrentRecord(),ve=this.extract(ne,this.consumeTime);this.consumeSpaceForRecord(ne);let Pe=this.extract(ne,this.consumeTime);return this.currentLine++,{startTime:ve,stopTime:Pe}}parseBandWidth(){let ne=[];for(;this.currentLine2?Pe-2:0),Kr=2;Kr_n)throw new Error("error in length, should be less or equal than ".concat(_n," characters."));return ne._cur=Lt,Kr}consumeAttributeSpace(ne){if(ne.attValue[ne._cur]!==b)throw new Error("Invalid space at ".concat(ne._cur,"."));ne._cur+=1}extract(ne,ve){if(!ne.attValue)throw new Error("Nothing to extract from attValue.");for(var Pe=arguments.length,Lt=new Array(Pe>2?Pe-2:0),Kr=2;Kr=ne.attValue.length}peekChar(ne){if(!ne.attValue)throw new Error;return ne.attValue[ne._cur]}peek(ne,ve){if(!ne.attValue)throw new Error;for(let Pe=0;Peco!==b&&pe(co));Pe.push({name:Lt,value:Kr})}this.attributes.identities.push({assertionValue:ve,extensions:Pe})}parseMsidSemantic(ne){this.peekChar(ne)===b&&this.consumeAttributeSpace(ne);let ve={semantic:this.extract(ne,this.consumeToken),identifierList:[]};for(;;){try{this.consumeAttributeSpace(ne)}catch{break}if(this.peekChar(ne)==="*"){this.extract(ne,this.consume,"*"),ve.applyForAll=!0;break}{let Pe=this.extract(ne,this.consumeTill,b);ve.identifierList.push(Pe)}}this.attributes.msidSemantic=ve}}class li extends zt{constructor(ne){super(),je(this,"attributes",void 0),ne.protos.indexOf("RTP")!==-1||ne.protos.indexOf("rtp"),this.attributes={unrecognized:[],candidates:[],extmaps:[],fingerprints:[],imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[]}}parse(ne){if(this.digested)throw new Error("already digested");try{switch(ne.attField){case"extmap":this.parseExtmap(ne);break;case"setup":this.parseSetup(ne);break;case"ice-ufrag":this.parseIceUfrag(ne);break;case"ice-pwd":this.parseIcePwd(ne);break;case"ice-options":this.parseIceOptions(ne);break;case"candidate":this.parseCandidate(ne);break;case"remote-candidate":this.parseRemoteCandidate(ne);break;case"end-of-candidates":this.parseEndOfCandidates();break;case"fingerprint":this.parseFingerprint(ne);break;case"rtpmap":this.parseRtpmap(ne);break;case"ptime":this.parsePtime(ne);break;case"maxptime":this.parseMaxPtime(ne);break;case"sendrecv":case"recvonly":case"sendonly":case"inactive":this.parseDirection(ne);break;case"ssrc":this.parseSSRC(ne);break;case"fmtp":this.parseFmtp(ne);break;case"rtcp-fb":this.parseRtcpFb(ne);break;case"rtcp-mux":this.parseRTCPMux();break;case"rtcp-mux-only":this.parseRTCPMuxOnly();break;case"rtcp-rsize":this.parseRTCPRsize();break;case"rtcp":this.parseRTCP(ne);break;case"mid":this.parseMid(ne);break;case"msid":this.parseMsid(ne);break;case"imageattr":this.parseImageAttr(ne);break;case"rid":this.parseRid(ne);break;case"simulcast":this.parseSimulcast(ne);break;case"sctp-port":this.parseSctpPort(ne);break;case"max-message-size":this.parseMaxMessageSize(ne);break;case"ssrc-group":this.parseSSRCGroup(ne);break;default:ne.ignored=!0,this.attributes.unrecognized.push(ne)}}catch(ve){throw console.error("parsing media attribute ".concat(ne.attField,' error, "a=').concat(ne.attField,":").concat(ne.attValue,'"')),ve}if(!ne.ignored&&ne.attValue&&!this.atEnd(ne))throw new Error("attribute parsing error")}parseCandidate(ne){let ve=this.extractOneOrMore(ne,Se,[1,32]);this.consumeAttributeSpace(ne);let Pe=this.extractOneOrMore(ne,k,[1,5]);this.consumeAttributeSpace(ne);let Lt=this.extract(ne,this.consumeToken);this.consumeAttributeSpace(ne);let Kr=this.extractOneOrMore(ne,k,[1,10]);this.consumeAttributeSpace(ne);let co=this.extract(ne,this.consumeAddress);this.consumeAttributeSpace(ne);let _n=this.extract(ne,this.consumePort);this.consumeAttributeSpace(ne),this.extract(ne,this.consume,"typ"),this.consumeAttributeSpace(ne);let Kc={foundation:ve,componentId:Pe,transport:Lt,priority:Kr,connectionAddress:co,port:_n,type:this.extract(ne,this.consumeToken),extension:{}};for(this.peek(ne," raddr")&&(this.extract(ne,this.consume," raddr"),this.consumeAttributeSpace(ne),Kc.relAddr=this.extract(ne,this.consumeAddress)),this.peek(ne," rport")&&(this.extract(ne,this.consume," rport"),this.consumeAttributeSpace(ne),Kc.relPort=this.extract(ne,this.consumePort));this.peekChar(ne)===b;){this.consumeAttributeSpace(ne);let tE=this.extract(ne,this.consumeToken);this.consumeAttributeSpace(ne),Kc.extension[tE]=this.extractOneOrMore(ne,V)}this.attributes.candidates.push(Kc)}parseRemoteCandidate(ne){let ve=[];for(;;){let Pe=this.extractOneOrMore(ne,k,[1,5]);this.consumeAttributeSpace(ne);let Lt=this.extract(ne,this.consumeAddress);this.consumeAttributeSpace(ne);let Kr=this.extract(ne,this.consumePort);ve.push({componentId:Pe,connectionAddress:Lt,port:Kr});try{this.consumeAttributeSpace(ne)}catch{break}}this.attributes.remoteCandidatesList.push(ve)}parseEndOfCandidates(){if(this.attributes.endOfCandidates)throw new Error("must be only one line of end-of-candidates");this.attributes.endOfCandidates=!0}parseRtpmap(ne){let ve=this.extract(ne,this.consumeToken);this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill,"/");this.extract(ne,this.consume,"/");let Lt={encodingName:Pe,clockRate:this.extractOneOrMore(ne,k)};this.atEnd(ne)||this.peekChar(ne)!=="/"||(this.extract(ne,this.consume,"/"),Lt.encodingParameters=parseInt(this.extract(ne,this.consumeTill),10));let Kr=this.attributes.payloads.find(co=>co.payloadType===parseInt(ve,10));Kr?Kr.rtpMap=Lt:this.attributes.payloads.push({payloadType:parseInt(ve,10),rtpMap:Lt,rtcpFeedbacks:[]})}parsePtime(ne){if(this.attributes.ptime)throw new Error("must be only one line of ptime");this.attributes.ptime=this.extract(ne,this.consumeTill)}parseMaxPtime(ne){if(this.attributes.maxPtime)throw new Error("must be only one line of ptime");this.attributes.maxPtime=this.extract(ne,this.consumeTill)}parseDirection(ne){if(this.attributes.direction)throw new Error("must be only one line of direction info");this.attributes.direction=ne.attField}parseSSRC(ne){let ve=this.extractOneOrMore(ne,k);this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill,":"),Lt;this.peekChar(ne)===":"&&(this.extract(ne,this.consume,":"),Lt=this.extract(ne,this.consumeTill));let Kr=this.attributes.ssrcs.find(co=>co.ssrcId===parseInt(ve,10));Kr?Kr.attributes[Pe]=Lt:this.attributes.ssrcs.push({ssrcId:parseInt(ve,10),attributes:{[Pe]:Lt}})}parseFmtp(ne){let ve=this.extract(ne,this.consumeTill,b);this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill),Lt={};Pe.split(";").forEach(co=>{let[_n,Kc]=co.split("=");_n=RA(_n).call(_n);let tE=typeof Kc=="string"?RA(Kc).call(Kc):null;typeof _n=="string"&&_n.length>0&&(Lt[_n]=tE)});let Kr=this.attributes.payloads.find(co=>co.payloadType===parseInt(ve,10));Kr?Kr.fmtp={parameters:Lt}:this.attributes.payloads.push({payloadType:parseInt(ve,10),rtcpFeedbacks:[],fmtp:{parameters:Lt}})}parseFmtParameters(ne){let ve={},Pe=this.extract(ne,this.consumeTill,"=");ne._cur++;let Lt=this.extract(ne,this.consumeTill,";");for(ve[Pe]=Lt;ne.attValue[ne._cur]===";";){let Kr=this.extract(ne,this.consumeTill,"=");ne._cur++;let co=this.extract(ne,this.consumeTill,";");ve[Kr]=co}return ve}parseRtcpFb(ne){let ve="";ve=this.peekChar(ne)==="*"?this.extract(ne,this.consume,"*"):this.extract(ne,this.consumeTill,b),this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill,b),Lt;if(Pe==="trr-int")Lt={type:Pe,interval:this.extract(ne,this.consumeTill)};else{let Kr={type:Pe};this.peekChar(ne)===b&&(this.consumeAttributeSpace(ne),Kr.parameter=this.extract(ne,this.consumeToken),this.peekChar(ne)===b&&(Kr.additional=this.extract(ne,this.consumeTill))),Lt=Kr}if(ve==="*")this.attributes.rtcpFeedbackWildcards.push(Lt);else{let Kr=this.attributes.payloads.find(co=>co.payloadType===parseInt(ve,10));Kr?Kr.rtcpFeedbacks.push(Lt):this.attributes.payloads.push({payloadType:parseInt(ve,10),rtcpFeedbacks:[Lt]})}}parseRTCPMux(){if(this.attributes.rtcpMux)throw new Error("must be single line of rtcp-mux");this.attributes.rtcpMux=!0}parseRTCPMuxOnly(){if(this.attributes.rtcpMuxOnly)throw new Error("must be single line of rtcp-only");this.attributes.rtcpMuxOnly=!0}parseRTCPRsize(){if(this.attributes.rtcpRsize)throw new Error("must be single line of rtcp-rsize");this.attributes.rtcpRsize=!0}parseRTCP(ne){if(this.attributes.rtcp)throw new Error("must be single line of rtcp");let ve={port:this.extract(ne,this.consumePort)};this.peekChar(ne)===b&&(this.consumeAttributeSpace(ne),ve.netType=this.extractOneOrMore(ne,q),this.consumeAttributeSpace(ne),ve.addressType=this.extractOneOrMore(ne,q),this.consumeAttributeSpace(ne),ve.address=this.extract(ne,this.consumeAddress)),this.attributes.rtcp=ve}parseMsid(ne){let ve={id:this.extractOneOrMore(ne,q,[1,64])};this.peekChar(ne)===b&&(this.consumeAttributeSpace(ne),ve.appdata=this.extractOneOrMore(ne,q,[1,64])),this.attributes.msids.push(ve)}parseImageAttr(ne){this.attributes.imageattr.push(ne.attValue)}parseRid(ne){let ve=this.extractOneOrMore(ne,Lt=>oe(Lt)||k(Lt)||Lt==="_"||Lt==="-");this.consumeAttributeSpace(ne);let Pe={id:ve,direction:this.extract(ne,this.consumeToken),params:[]};if(this.peekChar(ne)===b){if(this.consumeAttributeSpace(ne),this.peek(ne,"pt=")){this.extract(ne,this.consume,"pt=");let Lt=[];for(;;){let Kr=this.extract(ne,this.consumeToken);Lt.push(Kr);try{this.extract(ne,this.consume,",")}catch{break}}Pe.payloads=Lt,this.peekChar(ne)===b&&this.extract(ne,this.consume,b)}for(;;){let Lt=this.extract(ne,this.consumeToken);switch(Lt){case"depend":{let Kr={type:Lt,rids:this.extract(ne,this.consume,"=").split(",")};Pe.params.push(Kr);break}default:{let Kr={type:Lt};this.peekChar(ne)==="="&&(this.extract(ne,this.consume,"="),Kr.val=this.extract(ne,this.consumeTill,";")),Pe.params.push(Kr)}}try{this.extract(ne,this.consume,";")}catch{break}}}this.attributes.rids.push(Pe)}parseSimulcast(ne){if(this.attributes.simulcast)throw new Error("must be single line of simulcast");this.attributes.simulcast=ne.attValue,this.extract(ne,this.consumeTill)}parseSctpPort(ne){this.attributes.sctpPort=this.extractOneOrMore(ne,k,[1,5])}parseMaxMessageSize(ne){this.attributes.maxMessageSize=this.extractOneOrMore(ne,k,[1,void 0])}digest(){return this.digested=!0,this.attributes}parseMid(ne){this.attributes.mid=this.extract(ne,this.consumeToken)}parseSSRCGroup(ne){let ve=this.extract(ne,this.consumeToken),Pe=[];for(;;)try{this.consumeAttributeSpace(ne);let Lt=this.extract(ne,this.consumeInteger);Pe.push(parseInt(Lt,10))}catch{break}this.attributes.ssrcGroups.push({semantic:ve,ssrcIds:Pe})}}function ii(It,ne,ve){return ne in It?Object.defineProperty(It,ne,{value:ve,enumerable:!0,configurable:!0,writable:!0}):It[ne]=ve,It}class br{constructor(){ii(this,"eol",w)}print(ne,ve){let Pe="";return ve&&(this.eol=ve),Pe+=this.printVersion(ne.version),Pe+=this.printOrigin(ne.origin),Pe+=this.printSessionName(ne.sessionName),Pe+=this.printInformation(ne.information),Pe+=this.printUri(ne.uri),Pe+=this.printEmail(ne.emails),Pe+=this.printPhone(ne.phones),Pe+=this.printConnection(ne.connection),Pe+=this.printBandwidth(ne.bandwidths),Pe+=this.printTimeFields(ne.timeFields),Pe+=this.printKey(ne.key),Pe+=this.printSessionAttributes(ne.attributes),Pe+=this.printMediaDescription(ne.mediaDescriptions),Pe}printVersion(ne){return"v=".concat(ne).concat(this.eol)}printOrigin(ne){return"o=".concat(ne.username," ").concat(ne.sessId," ").concat(ne.sessVersion," ").concat(ne.nettype," ").concat(ne.addrtype," ").concat(ne.unicastAddress).concat(this.eol)}printSessionName(ne){return ne?"s=".concat(ne).concat(this.eol):""}printInformation(ne){return ne?"i=".concat(ne).concat(this.eol):""}printUri(ne){return ne?"u=".concat(ne).concat(this.eol):""}printEmail(ne){let ve="";for(let Pe of ne)ve+="e=".concat(Pe).concat(this.eol);return ve}printPhone(ne){let ve="";for(let Pe of ne)ve+="e=".concat(Pe).concat(this.eol);return ve}printConnection(ne){return ne?"c=".concat(ne.nettype," ").concat(ne.addrtype," ").concat(ne.address).concat(this.eol):""}printBandwidth(ne){let ve="";for(let Pe of ne)ve+="b=".concat(Pe.bwtype,":").concat(Pe.bandwidth).concat(this.eol);return ve}printTimeFields(ne){let ve="";for(let Pe of ne){ve+="t=".concat(Pe.time.startTime," ").concat(Pe.time.startTime).concat(this.eol);for(let Lt of Pe.repeats)ve+="r=".concat(Lt.repeatInterval," ").concat(Lt.typedTimes.join(" ")).concat(this.eol);Pe.zoneAdjustments&&(ve+="z=",ve+="z=".concat(Pe.zoneAdjustments.map(Lt=>"".concat(Lt.time," ").concat(Lt.back?"-":""," ").concat(Lt.typedTime)).join(" ")).concat(this.eol),ve+=this.eol)}return ve}printKey(ne){return ne?"k=".concat(ne).concat(this.eol):""}printAttributes(ne){let ve="";for(let Pe of ne)ve+="a=".concat(Pe.attField).concat(Pe.attValue?":".concat(Pe.attValue):"").concat(this.eol);return ve}printMediaDescription(ne){let ve="";for(let Pe of ne)ve+=this.printMedia(Pe.media),ve+=this.printInformation(Pe.information),ve+=this.printConnections(Pe.connections),ve+=this.printBandwidth(Pe.bandwidths),ve+=this.printKey(Pe.key),ve+=this.printMediaAttributes(Pe);return ve}printConnections(ne){let ve="";for(let Pe of ne)ve+=this.printConnection(Pe);return ve}printMedia(ne){return"m=".concat(ne.mediaType," ").concat(ne.port," ").concat(ne.protos.join("/")," ").concat(ne.fmts.join(" ")).concat(this.eol)}printSessionAttributes(ne){return new Hn(this.eol).print(ne)}printMediaAttributes(ne){return new ut(this.eol).print(ne)}}class Zi{constructor(ne){ii(this,"eol",void 0),this.eol=ne}printIceUfrag(ne){return ne===void 0?"":"a=ice-ufrag:".concat(ne).concat(this.eol)}printIcePwd(ne){return ne===void 0?"":"a=ice-pwd:".concat(ne).concat(this.eol)}printIceOptions(ne){return ne===void 0?"":"a=ice-options:".concat(ne.join(b)).concat(this.eol)}printFingerprints(ne){return ne.length>0?ne.map(ve=>"a=fingerprint:".concat(ve.hashFunction).concat(b).concat(ve.fingerprint)).join(this.eol)+this.eol:""}printExtmap(ne){return ne.map(ve=>"a=extmap:".concat(ve.entry).concat(ve.direction?"/".concat(ve.direction):"").concat(b).concat(ve.extensionName).concat(ve.extensionAttributes?"".concat(b).concat(ve.extensionAttributes):"").concat(this.eol)).join("")}printSetup(ne){return ne===void 0?"":"a=setup:".concat(ne).concat(this.eol)}printUnrecognized(ne){return ne.map(ve=>"a=".concat(ve.attField).concat(ve.attValue?":".concat(ve.attValue):"").concat(this.eol)).join("")}}class Hn extends Zi{print(ne){let ve="";return ve+=this.printGroups(ne.groups),ve+=this.printMsidSemantic(ne.msidSemantic),ve+=this.printIceLite(ne.iceLite),ve+=this.printIceUfrag(ne.iceUfrag),ve+=this.printIcePwd(ne.icePwd),ve+=this.printIceOptions(ne.iceOptions),ve+=this.printFingerprints(ne.fingerprints),ve+=this.printSetup(ne.setup),ve+=this.printTlsId(ne.tlsId),ve+=this.printIdentity(ne.identities),ve+=this.printExtmap(ne.extmaps),ve+=this.printUnrecognized(ne.unrecognized),ve}printGroups(ne){let ve="";return ne.length>0&&(ve+=ne.map(Pe=>"a=group:".concat(Pe.semantic).concat(Pe.identificationTag.map(Lt=>"".concat(b).concat(Lt)).join("")).concat(this.eol)).join("")),ve}printIceLite(ne){return ne===void 0?"":"a=ice-lite"+this.eol}printTlsId(ne){return ne?"a=tls-id:".concat(ne).concat(this.eol):""}printIdentity(ne){return ne.length===0?"":ne.map(ve=>"a=identity:".concat(ve.assertionValue).concat(ve.extensions.map(Pe=>"".concat(b).concat(Pe.name).concat(Pe.value?"=".concat(Pe.value):"")))).join(this.eol)+this.eol}printMsidSemantic(ne){if(!ne)return"";let ve="a=msid-semantic:".concat(ne.semantic);return ne.applyForAll?ve+="".concat(b,"*"):ne.identifierList.length>0&&(ve+=ne.identifierList.map(Pe=>"".concat(b).concat(Pe))),ve+this.eol}}class ut extends Zi{print(ne){let ve=ne.attributes,Pe="";return Pe+=this.printRTCP(ve.rtcp),Pe+=this.printIceUfrag(ve.iceUfrag),Pe+=this.printIcePwd(ve.icePwd),Pe+=this.printIceOptions(ve.iceOptions),Pe+=this.printCandidates(ve.candidates),Pe+=this.printRemoteCandidatesList(ve.remoteCandidatesList),Pe+=this.printEndOfCandidates(ve.endOfCandidates),Pe+=this.printFingerprints(ve.fingerprints),Pe+=this.printSetup(ve.setup),Pe+=this.printMid(ve.mid),Pe+=this.printExtmap(ve.extmaps),Pe+=this.printRTPRelated(ve),Pe+=this.printPtime(ve.ptime),Pe+=this.printMaxPtime(ve.maxPtime),Pe+=this.printDirection(ve.direction),Pe+=this.printSSRCGroups(ve.ssrcGroups),Pe+=this.printSSRC(ve.ssrcs),Pe+=this.printRTCPMux(ve.rtcpMux),Pe+=this.printRTCPMuxOnly(ve.rtcpMuxOnly),Pe+=this.printRTCPRsize(ve.rtcpRsize),Pe+=this.printMSId(ve.msids),Pe+=this.printImageattr(ve.imageattr),Pe+=this.printRid(ve.rids),Pe+=this.printSimulcast(ve.simulcast),Pe+=this.printSCTPPort(ve.sctpPort),Pe+=this.printMaxMessageSize(ve.maxMessageSize),Pe+=this.printUnrecognized(ve.unrecognized),Pe}printCandidates(ne){return ne.map(ve=>"a=candidate:".concat(ve.foundation).concat(b).concat(ve.componentId).concat(b).concat(ve.transport).concat(b).concat(ve.priority).concat(b).concat(ve.connectionAddress).concat(b).concat(ve.port).concat(b,"typ").concat(b).concat(ve.type).concat(ve.relAddr?"".concat(b,"raddr").concat(b).concat(ve.relAddr):"").concat(ve.relPort?"".concat(b,"rport").concat(b).concat(ve.relPort):"").concat(Object.keys(ve.extension).map(Pe=>"".concat(b).concat(Pe).concat(b).concat(ve.extension[Pe])).join("")).concat(this.eol)).join("")}printRemoteCandidatesList(ne){return ne.map(ve=>"a=remote-candidates:".concat(ve.join(b)).concat(this.eol)).join("")}printEndOfCandidates(ne){return ne===void 0?"":"a=end-of-candidates"+this.eol}printRTPRelated(ne){if(!ne.payloads)return"";let ve=ne.payloads,Pe="";Pe+=ne.rtcpFeedbackWildcards.map(Lt=>this.printRTCPFeedback("*",Lt)).join("");for(let Lt of ve)Pe+=this.printRtpMap(Lt.payloadType,Lt.rtpMap),Pe+=this.printFmtp(Lt.payloadType,Lt.fmtp),Pe+=Lt.rtcpFeedbacks.map(Kr=>this.printRTCPFeedback(Lt.payloadType,Kr)).join("");return Pe}printFmtp(ne,ve){if(!ve)return"";let Pe=Object.keys(ve.parameters);return Pe.length===1&&ve.parameters[Pe[0]]===null?"a=fmtp:".concat(ne).concat(b).concat(Pe[0]).concat(this.eol):"a=fmtp:".concat(ne).concat(b).concat(Object.keys(ve.parameters).map(Lt=>"".concat(Lt,"=").concat(ve.parameters[Lt])).join(";")).concat(this.eol)}printRtpMap(ne,ve){return ve?"a=rtpmap:".concat(ne).concat(b).concat(ve.encodingName,"/").concat(ve.clockRate).concat(ve.encodingParameters?"/".concat(ve.encodingParameters):"").concat(this.eol):""}printRTCPFeedback(ne,ve){let Pe="a=rtcp-fb:".concat(ne).concat(b),Lt=ve;return Lt.type==="trr-int"?Pe+="ttr-int".concat(b).concat(Lt.interval):(Pe+="".concat(Lt.type),Lt.parameter&&(Pe+="".concat(b).concat(Lt.parameter),Lt.additional&&(Pe+="".concat(b).concat(Lt.additional)))),Pe+this.eol}printPtime(ne){return ne===void 0?"":"a=ptime:".concat(ne).concat(this.eol)}printMaxPtime(ne){return ne===void 0?"":"a=maxptime:".concat(ne).concat(this.eol)}printDirection(ne){return ne===void 0?"":"a=".concat(ne).concat(this.eol)}printSSRC(ne){return ne.map(ve=>Object.keys(ve.attributes).map(Pe=>"a=ssrc:".concat(ve.ssrcId.toString(10)).concat(b).concat(Pe).concat(ve.attributes[Pe]?":".concat(ve.attributes[Pe]):"").concat(this.eol)).join("")).join("")}printRTCPMux(ne){return ne===void 0?"":"a=rtcp-mux".concat(this.eol)}printRTCPMuxOnly(ne){return ne===void 0?"":"a=rtcp-mux-only".concat(this.eol)}printRTCPRsize(ne){return ne===void 0?"":"a=rtcp-rsize".concat(this.eol)}printRTCP(ne){if(ne===void 0)return"";let ve="a=rtcp:".concat(ne.port);return ne.netType&&(ve+="".concat(b).concat(ne.netType)),ne.addressType&&(ve+="".concat(b).concat(ne.addressType)),ne.address&&(ve+="".concat(b).concat(ne.address)),ve+this.eol}printMSId(ne){return ne.map(ve=>"a=msid:".concat(ve.id).concat(ve.appdata?"".concat(b).concat(ve.appdata):"").concat(this.eol)).join("")}printImageattr(ne){return ne.map(ve=>"a=imageattr:".concat(ve).concat(this.eol)).join("")}printRid(ne){return ne.map(ve=>{let Pe="a=rid:".concat(ve.id).concat(b).concat(ve.direction);return ve.payloads&&(Pe+="".concat(b,"pt=").concat(ve.payloads.join(","))),ve.params.length>0&&(Pe+="".concat(b).concat(ve.params.map(Lt=>Lt.type==="depend"?"depend=".concat(Lt.rids.join(",")):"".concat(Lt.type,"=").concat(Lt.val)).join(";"))),Pe+this.eol}).join("")}printSimulcast(ne){return ne===void 0?"":"a=simulcast:".concat(ne).concat(this.eol)}printSCTPPort(ne){return ne===void 0?"":"a=sctp-port:".concat(ne).concat(this.eol)}printMaxMessageSize(ne){return ne===void 0?"":"a=max-message-size:".concat(ne).concat(this.eol)}printMid(ne){return ne===void 0?"":"a=mid:".concat(ne).concat(this.eol)}printSSRCGroups(ne){return ne.map(ve=>"a=ssrc-group:".concat(ve.semantic).concat(ve.ssrcIds.map(Pe=>"".concat(b).concat(Pe.toString(10))).join("")).concat(this.eol)).join("")}}function kt(It){return new pt().parse(It)}function Wt(It,ne){return new br().print(It,ne)}}},A={};function l(g){if(A[g])return A[g].exports;var C=A[g]={exports:{}};return a[g](C,C.exports,l),C.exports}return l.d=(g,C)=>{for(var m in C)l.o(C,m)&&!l.o(g,m)&&Object.defineProperty(g,m,{enumerable:!0,get:C[m]})},l.o=(g,C)=>Object.prototype.hasOwnProperty.call(g,C),l.r=g=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})},l(8)})();function ki(a){return nh.parse(a)}function ea(a,A){return nh.print(a,A)}var ZP=Cc("Array","keys"),s4=pE,VJ=ts,KJ=j,UR=ZP,oh=Array.prototype,xR={DOMTokenList:!0,NodeList:!0},go=function(a){var A=a.keys;return a===oh||KJ(oh,a)&&A===oh.keys||VJ(xR,s4(a))?UR:A},Hs=I(go);function ko(a,A,l){return(A=function(g){var C=function(m,y){if(typeof m!="object"||!m)return m;var w=m[Symbol.toPrimitive];if(w!==void 0){var b=w.call(m,"string");if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(m)}(g);return typeof C=="symbol"?C:C+""}(A))in a?Object.defineProperty(a,A,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[A]=l,a}function vg(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Yr(a){for(var A=1;A]+)(>|$)/g,function(b,M,k){if(k==="")return b;var V=y[M];return Array.isArray(V)?"$"+V.join("$"):typeof V=="number"?"$"+V:""}))}if(typeof m=="function"){var w=this;return a[Symbol.replace].call(this,C,function(){var b=arguments;return typeof b[b.length-1]!="object"&&(b=[].slice.call(b)).push(g(b,w)),m.apply(this,b)})}return a[Symbol.replace].call(this,C,m)},FR.apply(this,arguments)}let a4=new class extends io{constructor(){super(...arguments),ko(this,"currentUploadLogID",0)}reportLogUploadError(a){let{errorRange:A}=a;A[A.length-1]&&A[A.length-1]>this.currentUploadLogID&&(this.currentUploadLogID=A[A.length-1],this.emit("REPORT_LOG_UPLOAD",a))}};class vu{constructor(A){ko(this,"logger",void 0),ko(this,"prefixLists",[]),this.logger=A}debug(){for(var A=arguments.length,l=new Array(A),g=0;g{for(let A in so)if(Object.prototype.hasOwnProperty.call(so,A)&&so[A]===a)return A;return"DEFAULT"},X=new class{constructor(){ko(this,"proxyServerURL",void 0),ko(this,"logLevel",so.DEBUG),ko(this,"uploadState","collecting"),ko(this,"uploadLogWaitingList",[]),ko(this,"uploadLogUploadingList",[]),ko(this,"uploadErrorCount",0),ko(this,"currentLogID",0),ko(this,"url",void 0),ko(this,"extLog",(a,A)=>{this.appendLogToWaitingList(a,...A)})}debug(){for(var a=arguments.length,A=new Array(a),l=0;l{this.log(...A)},Date.now()-un);let g=Math.max(0,Math.min(4,A[0]));if(A[0]=GR()+" Agora-SDK [".concat(Pd(g),"]:"),this.appendLogToWaitingList(g,...A),g{this.uploadLog(...A)},Date.now()-un);let g=Math.max(0,Math.min(4,A[0]));A[0]=GR()+" Agora-SDK [".concat(Pd(g),"]:"),this.appendLogToWaitingList(g,...A)}appendLogToWaitingList(a){if(!Ie("UPLOAD_LOG"))return;for(var A=arguments.length,l=new Array(A>1?A-1:0),g=1;g{typeof m=="object"&&(m=JSON.stringify(m)),C+="".concat(m," ")}),this.uploadLogWaitingList.push({payload_str:C,log_level:a,log_item_id:this.currentLogID++}),this.uploadState==="uploading"&&this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}startUpload(){this.uploadState="uploading",this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}async uploadLogs(){let a=this.uploadLogUploadingList,A={sdk_version:Cn,process_id:Ie("PROCESS_ID"),payload:JSON.stringify(a)};return jl(async()=>{let l=await vA.post(this.url||(this.proxyServerURL?"https://".concat(this.proxyServerURL,"/ls/?h=").concat(Ie("LOG_UPLOAD_SERVER"),"&p=443&d=upload/v1"):"https://".concat(Ie("LOG_UPLOAD_SERVER"),"/upload/v1")),A,{responseType:"text"});if(l.data!=="OK"){let g=new Error("unexpected upload log response");throw g.response=l,g}},()=>(this.uploadLogUploadingList=[],!1),l=>{let g={status:-1,message:l.message,errorRange:a.map(C=>C.log_item_id)};return l.response?(g.status=l.response.status,g.data=l.response.data,g.headers=l.response.headers):l.request&&(g.status=l.request.status),a4.reportLogUploadError(g),!0},{timeout:Ie("UPLOAD_LOG_REQUEST_RETRY_INTERVAL"),maxRetryTimeout:Ie("UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL")})}uploadLogInterval(){this.uploadLogUploadingList.length===0&&this.uploadLogWaitingList.length===0||(this.uploadLogUploadingList.length===0&&(this.uploadLogUploadingList=this.uploadLogWaitingList.splice(0,Ie("UPLOAD_LOG_LENGTH_EACH_TIME"))),this.uploadLogs().then(()=>{this.uploadErrorCount=0,this.uploadLogWaitingList.length>0&&window.setTimeout(()=>this.uploadLogInterval(),Ie("UPLOAD_LOG_INTERVAL"))}).catch(a=>{this.uploadErrorCount+=1,this.uploadErrorCount<2?window.setTimeout(()=>this.uploadLogInterval(),Ie("UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1")):window.setTimeout(()=>this.uploadLogInterval(),Ie("UPLOAD_LOG_RETRY_INTERVAL_V1"))}))}};var A4;function tU(a){return Tr(a.reportId,"params.reportId",0,100,!1),Tr(a.category,"params.category",0,100,!1),Tr(a.event,"params.event",0,100,!1),Tr(a.label,"params.label",0,100,!1),Rn(a.value,"params.value",Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,!1),!0}(A4={}).FREE="free",A4.UPLOADING="uploading",function(a){a[a.MISC=0]="MISC",a[a.INTERNAL_EVENT=1]="INTERNAL_EVENT",a[a.PUBLIC_EVENT=2]="PUBLIC_EVENT",a[a.WEB_EVENT=3]="WEB_EVENT",a[a.INTERNAL_API=4]="INTERNAL_API",a[a.WEB_API=5]="WEB_API",a[a.PUBLIC_API=6]="PUBLIC_API"}({});let rU={sid:"",lts:0,success:null,cname:null,uid:null,peer:null,cid:null,elapse:null,extend:null,vid:0},Cs=function(a){return a.PUBLISH="publish",a.SUBSCRIBE="subscribe",a.WS_COMPRESSOR_INIT="ws_compressor_init",a.SESSION_INIT="session_init",a.JOIN_CHOOSE_SERVER="join_choose_server",a.RTE_DETAIL="rte_detail_stats",a.REQ_USER_ACCOUNT="req_user_account",a.JOIN_GATEWAY="join_gateway",a.REJOIN_GATEWAY="rejoin_gateway",a.STREAM_SWITCH="stream_switch",a.REQUEST_PROXY_WORKER_MANAGER="request_proxy_worker_manager",a.REQUEST_PROXY_APPCENTER="request_proxy_appcenter",a.FIRST_VIDEO_RECEIVED="first_video_received",a.FIRST_AUDIO_RECEIVED="first_audio_received",a.FIRST_VIDEO_DECODE="first_video_decode",a.FIRST_AUDIO_DECODE="first_audio_decode",a.XLA_PEER_FIRST_VIDEO_FRAME="xla_peer_first_video_frame",a.ON_ADD_AUDIO_STREAM="on_add_audio_stream",a.ON_ADD_VIDEO_STREAM="on_add_video_stream",a.ON_UPDATE_STREAM="on_update_stream",a.ON_REMOVE_STREAM="on_remove_stream",a.USER_ANALYTICS="req_user_analytics",a.PC_STATS="pc_stats",a.UPDATE_REMOTE_RTPCAPABILITIES="update_remote_rtpCapabilities",a.AB_TEST="ab_test",a}({}),Eo=function(a){return a.SESSION="io.agora.pb.Wrtc.Session",a.JOIN_CHOOSE_SERVER="io.agora.pb.Wrtc.JoinChooseServer",a.RTE_DETAIL="io.agora.pb.Wrtc.RteDetailStats",a.REQ_USER_ACCOUNT="io.agora.pb.Wrtc.ReqUserAccount",a.JOIN_GATEWAY="io.agora.pb.Wrtc.JoinGateway",a.RE_JOIN_GATEWAY="io.agora.pb.Wrtc.ReJoinGateway",a.PUBLISH="io.agora.pb.Wrtc.Publish",a.SUBSCRIBE="io.agora.pb.Wrtc.Subscribe",a.WS_COMPRESSOR_INIT="io.agora.pb.Wrtc.WsCompressorInit",a.STREAM_SWITCH="io.agora.pb.Wrtc.StreamSwitch",a.AUDIO_SENDING_STOPPED="io.agora.pb.Wrtc.AudioSendingStopped",a.VIDEO_SENDING_STOPPED="io.agora.pb.Wrtc.VideoSendingStopped",a.REQUEST_PROXY_APPCENTER="io.agora.pb.Wrtc.RequestProxyAppCenter",a.REQUEST_PROXY_WORKER_MANAGER="io.agora.pb.Wrtc.RequestProxyWorkerManager",a.API_INVOKE="io.agora.pb.Wrtc.ApiInvoke",a.FIRST_VIDEO_RECEIVED="io.agora.pb.Wrtc.FirstVideoReceived",a.FIRST_AUDIO_RECEIVED="io.agora.pb.Wrtc.FirstAudioReceived",a.FIRST_VIDEO_DECODE="io.agora.pb.Wrtc.FirstVideoDecode",a.FIRST_AUDIO_DECODE="io.agora.pb.Wrtc.FirstAudioDecode",a.XLA_PEER_FIRST_VIDEO_FRAME="io.agora.pb.Wrtc.XLAPeerFirstVideoFrame",a.ON_ADD_AUDIO_STREAM="io.agora.pb.Wrtc.OnAddAudioStream",a.ON_ADD_VIDEO_STREAM="io.agora.pb.Wrtc.OnAddVideoStream",a.ON_UPDATE_STREAM="io.agora.pb.Wrtc.OnUpdateStream",a.ON_REMOVE_STREAM="io.agora.pb.Wrtc.OnRemoveStream",a.JOIN_CHANNEL_TIMEOUT="io.agora.pb.Wrtc.JoinChannelTimeout",a.PEER_PUBLISH_STATUS="io.agora.pb.Wrtc.PeerPublishStatus",a.WORKER_EVENT="io.agora.pb.Wrtc.WorkerEvent",a.AP_WORKER_EVENT="io.agora.pb.Wrtc.APWorkerEvent",a.JOIN_WEB_PROXY_AP="io.agora.pb.Wrtc.JoinWebProxyAP",a.WEBSOCKET_QUIT="io.agora.pb.Wrtc.WebSocketQuit",a.USER_ANALYTICS="io.agora.pb.Wrtc.UserAnalytics",a.AUTOPLAY_FAILED="io.agora.pb.Wrtc.AutoplayFailed",a.PC_STATS="io.agora.pb.Wrtc.PCStats",a.UPDATE_REMOTE_RTPCAPABILITIES="io.agora.pb.Wrtc.UpdateRemoteRTPCapabilities",a.AB_TEST="io.agora.pb.Wrtc.ABTest",a}({});(function(a){a[a.WORKER_EVENT=156]="WORKER_EVENT",a[a.AP_WORKER_EVENT=160]="AP_WORKER_EVENT"})({});let kC=function(a){return a[a.SESSION=26]="SESSION",a[a.JOIN_CHOOSE_SERVER=27]="JOIN_CHOOSE_SERVER",a[a.REQ_USER_ACCOUNT=196]="REQ_USER_ACCOUNT",a[a.JOIN_GATEWAY=28]="JOIN_GATEWAY",a[a.PUBLISH=30]="PUBLISH",a[a.SUBSCRIBE=29]="SUBSCRIBE",a[a.WS_COMPRESSOR_INIT=9430]="WS_COMPRESSOR_INIT",a[a.STREAM_SWITCH=32]="STREAM_SWITCH",a[a.AUDIO_SENDING_STOPPED=33]="AUDIO_SENDING_STOPPED",a[a.VIDEO_SENDING_STOPPED=34]="VIDEO_SENDING_STOPPED",a[a.REQUEST_PROXY_APPCENTER=35]="REQUEST_PROXY_APPCENTER",a[a.REQUEST_PROXY_WORKER_MANAGER=36]="REQUEST_PROXY_WORKER_MANAGER",a[a.API_INVOKE=41]="API_INVOKE",a[a.FIRST_VIDEO_RECEIVED=348]="FIRST_VIDEO_RECEIVED",a[a.FIRST_AUDIO_RECEIVED=349]="FIRST_AUDIO_RECEIVED",a[a.FIRST_VIDEO_DECODE=350]="FIRST_VIDEO_DECODE",a[a.FIRST_AUDIO_DECODE=351]="FIRST_AUDIO_DECODE",a[a.ON_ADD_AUDIO_STREAM=352]="ON_ADD_AUDIO_STREAM",a[a.ON_ADD_VIDEO_STREAM=353]="ON_ADD_VIDEO_STREAM",a[a.ON_UPDATE_STREAM=356]="ON_UPDATE_STREAM",a[a.ON_REMOVE_STREAM=355]="ON_REMOVE_STREAM",a[a.JOIN_CHANNEL_TIMEOUT=407]="JOIN_CHANNEL_TIMEOUT",a[a.PEER_PUBLISH_STATUS=408]="PEER_PUBLISH_STATUS",a[a.WORKER_EVENT=156]="WORKER_EVENT",a[a.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",a[a.JOIN_WEB_PROXY_AP=700]="JOIN_WEB_PROXY_AP",a[a.WEBSOCKET_QUIT=671]="WEBSOCKET_QUIT",a[a.USER_ANALYTICS=1e4]="USER_ANALYTICS",a[a.AUTOPLAY_FAILED=9178]="AUTOPLAY_FAILED",a}({});function Sr(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(A,l,g){let C=g.value;if(typeof C=="function"){let m=a.className||A.__className__||(A.constructor.name==="AgoraRTCClient"?"Client":A.constructor.name);g.value=function(){for(var y,w=arguments.length,b=new Array(w),M=0;M(V.onSuccess(a.reportResult&&q),q)).catch(q=>{throw V.onError(q),q}):(V.onSuccess(a.reportResult&&K),K)}catch(K){throw V.onError(K),K}}}return g}}let tr=new class{constructor(){ko(this,"baseInfoMap",new Map),ko(this,"proxyServer",void 0),ko(this,"eventUploadTimer",void 0),ko(this,"setSessionIdTimer",void 0),ko(this,"url",void 0),ko(this,"sids",new Set),ko(this,"backupUrl",void 0),ko(this,"_appId",void 0),ko(this,"_aid",0),ko(this,"keyEventUploadPendingItems",[]),ko(this,"normalEventUploadPendingItems",[]),ko(this,"apiInvokeUploadPendingItems",[]),ko(this,"apiInvokeCount",0),ko(this,"apiInvokeLoggedCount",0),ko(this,"ltsList",[]),ko(this,"lastSendNormalEventTime",Date.now()),ko(this,"customReportCounterTimer",void 0),ko(this,"customReportCount",0),ko(this,"extApiInvoke",async a=>{for(let A of a){let l=Yr(Yr({},A),{},{sid:null,invokeId:++this.apiInvokeCount,tag:Gn.TRACER});this.sendApiInvoke(l)}}),this.eventUploadTimer=window.setInterval(this.doSend.bind(this),Ie("EVENT_REPORT_SEND_INTERVAL")),this.setSessionIdTimer=window.setInterval(this.appendSessionId.bind(this),Ie("EVENT_REPORT_SEND_INTERVAL"))}getBaseInfoBySessionId(a){return this.baseInfoMap.get(a)}setAppId(a){this._appId=a,this._aid=parseInt(a.replace(/[a-fA-F0-9]{8}/g,A=>{let[l,g]=A;return l+g}),16)||0}reportApiInvoke(a,A,l){A.timeout=A.timeout||6e4,A.reportResult=A.reportResult===void 0||A.reportResult;let g=Date.now();this.apiInvokeCount+=1;let C=this.apiInvokeCount,m=!!Ie("SHOW_REPORT_INVOKER_LOG"),y=!!Ie("SHOW_REPORT_USER_INVOKER_LOG"),w=m||y&&A.id;w&&(this.apiInvokeLoggedCount+=1);let b=this.apiInvokeLoggedCount;function M(q,ce){if(w){let oe="[apiInvoke-".concat(b,"]");if(A.id&&(oe+="[".concat(A.id,"]")),A.name&&(oe+="[".concat(A.name,"]"),A.name===Co.JOIN))return X.info("".concat(oe," ").concat(q));X.info("".concat(oe," ").concat(q),q==="start"?A.options:ce||"")}}let k=()=>({tag:A.tag,invokeId:C,sid:a,name:A.name,apiInvokeTime:g,options:A.options,states:A.states||null});M("start");let V=!1;Ks(A.timeout).then(()=>{V||(this.sendApiInvoke(Yr(Yr({},k()),{},{error:fe.API_INVOKE_TIMEOUT,success:!1})),M("timeout"))});let K=new nt(fe.UNEXPECTED_ERROR,"".concat(A.name,": this api invoke is end"));return{onSuccess:q=>{let ce=()=>{if(V)throw K;return V=!0,this.sendApiInvoke(Yr(Yr({},k()),{},{success:!0},A.reportResult&&{result:q})),M("onSuccess"),q};return l?e4(ce,A.name+"Success",l,()=>V=!0):ce()},onError:q=>{let ce=()=>{if(V)throw q;V=!0,this.sendApiInvoke(Yr(Yr({},k()),{},{success:!1,error:q})),M("onFailure",q.toString())};return l?e4(ce,A.name+"Error",l,()=>V=!0):ce()}}}_send(a,A,l){this.send({type:a,data:A},l)}_sendApiInvoke(a){return this.sendApiInvoke(a)}sessionInit(a,A){if(this.baseInfoMap.has(a))return;let l=Date.now(),g=this.createBaseInfo(a,l);g.cname=A.cname,g.rteUrl=A.rteUrl;let C=Object.assign({},{willUploadConsoleLog:Ie("UPLOAD_LOG"),maxTouchPoints:navigator.maxTouchPoints,areaVersion:u2?"global":"oversea",areas:Ie("AREAS")&&Ie("AREAS").join(",")},A.extend),{stringUid:m,channelProfile:y,channelMode:w,isABTestSuccess:b,lsid:M,clientRole:k}=A,V=Date.now(),K=Yr(Yr({},g),{},{eventType:Cs.SESSION_INIT,appid:A.appid,browser:navigator.userAgent,buildFormat:A.buildFormat,build:o4,lts:V,elapse:V-l,extend:JSON.stringify(C),mode:A.mode,process:Ie("PROCESS_ID"),appType:Ie("APP_TYPE"),success:!0,version:Cn,stringUid:m,channelProfile:y,channelMode:w,isABTestSuccess:b,lsid:M,clientType:Rt(q=window.navigator.userAgent).call(q,"AgoraWebView")?42:20,clientRole:k,serviceId:Ie("PROCESS_ID"),extensionID:Ie("PLUGIN_INFO").join(",")||"",rteUrl:A.rteUrl,rteSid:A.rteSid});var q;this.send({type:Eo.SESSION,data:K},!0)}reportRteDetail(a){let A=this.baseInfoMap.get(a);if(!A)return;let l=A.info,g=Date.now(),C=Yr(Yr({},l),{},{eventType:Cs.RTE_DETAIL,lts:g,success:!0,elapse:g-A.startTime,vid:l.vid===void 0?0:Number(l.vid),ua:navigator.userAgent});this.send({type:Eo.RTE_DETAIL,data:C},!0)}joinChooseServer(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info;A.vid&&(g.vid=A.vid);let C=Date.now(),m=Yr(Yr({},g),{},{role:A.role,eventType:Cs.JOIN_CHOOSE_SERVER,lts:C,eventElapse:A.elapse||C-A.lts,chooseServerAddr:A.csAddr,errorCode:A.ec,elapse:C-l.startTime,success:A.succ,chooseServerAddrList:JSON.stringify(A.serverList),uid:A.uid?parseInt(A.uid):null,cid:A.cid?parseInt(A.cid):null,chooseServerIp:A.csIp||"",opid:A.opid,unilbsServerIds:A.unilbsServerIds,extend:A.extend||void 0,isHttp3:A.isHttp3,corssRegionTagReq:A.corssRegionTagReq||void 0,corssRegionTagRes:A.corssRegionTagRes||void 0,ua:navigator.userAgent,resourceTimingInfo:A.resourceTimingInfo||void 0});this.send({type:Eo.JOIN_CHOOSE_SERVER,data:m},!0)}reqUserAccount(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.REQ_USER_ACCOUNT,lts:C,success:A.success,serverAddress:A.serverAddr,stringUid:A.stringUid,uid:A.uid,errorCode:A.errorCode,elapse:A.elapse||C-l.startTime,eventElapse:C-A.lts,extend:JSON.stringify(A.extend)});this.send({type:Eo.REQ_USER_ACCOUNT,data:m},!0)}joinGateway(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info;A.vid&&(g.vid=A.vid),g.uid=A.uid,g.cid=A.cid;let C=Date.now(),{firstSuccess:m,addr:y,isProxy:w}=A,b=C-l.startTime,M=Yr(Yr({},g),{},{eventType:Cs.JOIN_GATEWAY,lts:C,gatewayAddr:A.addr,success:A.succ,errorCode:A.ec,errorMsg:A.errorMsg||"",elapse:b,eventElapse:C-A.lts,firstSuccess:m,signalChannel:A.signalChannel,preload:A.preload?1:0,installId:Of(),isABTestSuccess:A.isABTestSuccess?1:0,gatewayIp:null,gatewayPort:null,isProxy:w?1:0}),k=M.success?1:0;if(A.succ&&(l.lastJoinSuccessTime=C),y)if(M.signalChannel==="1"){let V=FR(/(\d+\.\d+\.\d+\.\d+):(\d+)/,{ip:1,port:2}),K=y.match(V);M.gatewayIp=K&&K.groups?K.groups.ip:"",M.gatewayPort=K&&K.groups?K.groups.port:""}else if(w){let V=y.match(/h=(\d{1,3}-){3}\d{1,3}/g),K=y.match(/p=[0-9]{1,6}/g);M.gatewayIp=V&&V.length?V[0].split("=")[1].replace(/-/g,"."):"",M.gatewayPort=K&&K.length?K[0].split("=")[1]:""}else{let V=y.match(/wss:\/\/(\d{1,3}-){3}\d{1,3}/g),K=y.match(/(:|p=)[0-9]{1,6}/g);M.gatewayIp=V&&V.length?V[0].split("//")[1].replace(/-/g,"."):"",M.gatewayPort=K&&K.length?K[0].split(/:|p=/g)[1]:""}if(m)this.send({type:Eo.JOIN_GATEWAY,data:M},!0);else{let V={isSuccess:k,port:M.gatewayPort};delete M.success,delete M.eventType,delete M.firstSuccess,delete M.gatewayPort,M.vid=Number(M.vid);let K=Object.assign({},M,V,{eventType:Cs.REJOIN_GATEWAY});this.send({type:Eo.RE_JOIN_GATEWAY,data:K},!0)}}joinChannelTimeout(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=Date.now(),C=Yr(Yr({},l.info),{},{lts:g,timeout:A,elapse:g-l.startTime});this.send({type:Eo.JOIN_CHANNEL_TIMEOUT,data:C},!0)}publish(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.PUBLISH,lts:C,eventElapse:A.eventElapse,elapse:C-l.startTime,success:A.succ,errorCode:A.ec,videoName:A.videoName,audioName:A.audioName,screenName:A.screenName,screenshare:A.screenshare,audio:A.audio,video:A.video,p2pid:A.p2pid,publishRequestid:A.publishRequestid});this.send({type:Eo.PUBLISH,data:m},!0)}subscribe(a,A,l){let g=this.baseInfoMap.get(a);if(!g)return;let C=g.info,m=Date.now(),y=Yr(Yr({},C),{},{eventType:Cs.SUBSCRIBE,lts:m,eventElapse:A.eventElapse,elapse:m-g.startTime,success:A.succ,errorCode:A.ec,video:A.video,audio:A.audio,subscribeRequestid:A.subscribeRequestid,p2pid:A.p2pid,preSsrc:A.preSsrc?1:0},l&&{extend:JSON.stringify({isMassSubscribe:!0})});typeof A.peerid=="string"?y.peerSuid=A.peerid:y.peer=A.peerid,this.send({type:Eo.SUBSCRIBE,data:y},!0)}wsCompressorInit(a){var A;let l=[...Hs(A=this.baseInfoMap).call(A)],g=l.length?l[0]:"UnableToGetSid",C=this.baseInfoMap.get(g);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr({},m),{},{eventType:Cs.WS_COMPRESSOR_INIT,lts:y,eventElapse:a.eventElapse,elapse:y-C.startTime,status:a.status?1:2});this.send({type:Eo.WS_COMPRESSOR_INIT,data:w},!0)}firstXLAPeerFirstVideoFrame(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=A.peerPubStatusMs-(l.lastJoinSuccessTime||C),y=Yr(Yr({},g),{},{elapse:C-l.startTime,eventType:Cs.XLA_PEER_FIRST_VIDEO_FRAME,lts:C,peer:A.peer,width:A.width,height:A.height,ssrc:A.ssrc,p2pid:A.p2pid,peerPublishDuration:A.peerPublishDuration,joinChannelSuccessElapse:m,peerPubStatusMs:A.peerPubStatusMs-A.joinChannelStart,availablePublish:A.peerPublishDuration>m?1:0,preloadStart:Math.max(A.preloadStart-A.joinChannelStart,0),preloadEnd:Math.max(A.preloadEnd-A.joinChannelStart,0),encrypt:Math.max(A.apStart-A.joinChannelStart,0),ap:Math.max(A.apEnd-A.joinChannelStart,0),sua:Math.max(A.suaEnd-A.joinChannelStart,0),beforeConnect:Math.max(A.beforeConnect-A.joinChannelStart,0),peerRecevier:Math.max(A.peerReceiver-A.joinChannelStart,0),ice:Math.max(A.ice-A.joinChannelStart,0),pc:Math.max(A.pc-A.joinChannelStart,0),signalConnected:Math.max(A.signalConnected-A.joinChannelStart,0),joinReq:Math.max(A.joinReq-A.joinChannelStart,0),joinRes:Math.max(A.joinRes-A.joinChannelStart,0),userJoinNotify:Math.max(A.userJoinNotify-A.joinChannelStart,0),videoSsrcNotify:Math.max(A.videoAddNotify-A.joinChannelStart,0),subscribeDelayMs:Math.max(A.subscribeStart-A.videoAddNotify,0),subscribeStart:Math.max(A.subscribeStart-A.joinChannelStart,0),subscribeEnd:Math.max(A.subscribeEnd-A.joinChannelStart,0),firstReceived:Math.max(A.firstReceived-A.joinChannelStart,0),firstDecoded:Math.max(A.firstDecoded-A.joinChannelStart,0),firstPreRender:Math.max(A.firstPreRender-A.joinChannelStart,0),firstRender:Math.max(A.firstRender-A.joinChannelStart,0),playDelayMs:Math.max(A.playStart-A.subscribeEnd,0),playStart:Math.max(A.playStart-A.joinChannelStart,0),playEnd:Math.max(A.playEnd-A.joinChannelStart,0),isPreSub:A.isPreSub?1:0,isPrePc:A.isPrePc?1:0,isPreInstantVideo:A.isPreInstantVideo?1:0,firstReceivedEncodedFrame:A.firstReceivedEncodedFrame?Math.max(A.firstReceivedEncodedFrame-A.joinChannelStart,0):void 0,frameType:A.frameType||"",rtpTimestamp:A.rtpTimestamp||0,framePayloadType:A.framePayloadType||0,frameDataLength:A.frameDataLength||0,mimeType:A.mimeType||""});this.send({type:Eo.XLA_PEER_FIRST_VIDEO_FRAME,data:y},!0)}firstRemoteVideoDecode(a,A,l,g){let C=this.baseInfoMap.get(a);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr(Yr({},m),g),{},{elapse:y-C.startTime,eventType:A,lts:y,firstDecodeFrame:Math.max((g.firstFrame||y)-C.startTime,0),apEnd:Math.max(g.apEnd-C.startTime,0),apStart:Math.max(g.apStart-C.startTime,0),joinGwEnd:Math.max(g.joinGwEnd-C.startTime,0),joinGwStart:Math.max(g.joinGwStart-C.startTime,0),pcEnd:Math.max(g.pcEnd-C.startTime,0),pcStart:Math.max(g.pcStart-C.startTime,0),subscriberEnd:Math.max(g.subscriberEnd-C.startTime,0),subscriberStart:Math.max(g.subscriberStart-C.startTime,0),videoAddNotify:Math.max(g.videoAddNotify-C.startTime,0)});this.send({type:l,data:w},!0)}firstRemoteFrame(a,A,l,g){let C=this.baseInfoMap.get(a);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr(Yr({},m),g),{},{elapse:y-C.startTime,eventType:A,lts:y});this.send({type:l,data:w},!0)}abTest(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{vid:g.vid===void 0?0:Number(g.vid),elapse:C-l.startTime,eventType:Cs.AB_TEST,lts:C});this.send({type:Eo.AB_TEST,data:m},!0)}pcStats(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{vid:g.vid===void 0?0:Number(g.vid),elapse:C-l.startTime,eventType:Cs.PC_STATS,lts:C,preallocation:A.preallocation?1:0});this.send({type:Eo.PC_STATS,data:m},!0)}updateRemoteRTPCapabilities(a,A){if(a){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{vid:g.vid===void 0?0:Number(g.vid),eventType:Cs.UPDATE_REMOTE_RTPCAPABILITIES,lts:C});this.send({type:Eo.UPDATE_REMOTE_RTPCAPABILITIES,data:m},!0)}}onGatewayStream(a,A,l,g){let C=this.baseInfoMap.get(a);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr(Yr({},m),g),{},{eventType:A,lts:y});this.send({type:l,data:w},!0)}streamSwitch(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.STREAM_SWITCH,lts:C,isDual:A.isdual,elapse:C-l.startTime,success:A.succ});this.send({type:Eo.STREAM_SWITCH,data:m},!0)}requestProxyAppCenter(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.REQUEST_PROXY_APPCENTER,lts:C,eventElapse:C-A.lts,elapse:C-l.startTime,APAddr:A.APAddr,workerManagerList:A.workerManagerList,response:A.response,errorCode:A.ec,success:A.succ});this.send({type:Eo.REQUEST_PROXY_APPCENTER,data:m},!0)}requestProxyWorkerManager(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.REQUEST_PROXY_WORKER_MANAGER,lts:C,eventElapse:C-A.lts,elapse:C-l.startTime,workerManagerAddr:A.workerManagerAddr,response:A.response,errorCode:A.ec,success:A.succ});this.send({type:Eo.REQUEST_PROXY_WORKER_MANAGER,data:m},!0)}setProxyServer(a){this.proxyServer=a,a?X.debug("reportProxyServerurl: ".concat(a)):X.debug("disable reportProxyServerurl: ".concat(a))}peerPublishStatus(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{subscribeElapse:A.subscribeElapse,peer:A.peer,peerPublishDuration:Math.max(A.audioPublishDuration,A.videoPublishDuration),audiotag:A.audioPublishDuration>0?1:-1,videotag:A.videoPublishDuration>0?1:-1,lts:C,elapse:C-l.startTime,joinChannelSuccessElapse:C-(l.lastJoinSuccessTime||C),peerPublishDurationVideo:A.videoPublishDuration,peerPublishDurationAudio:A.audioPublishDuration});this.send({type:Eo.PEER_PUBLISH_STATUS,data:m},!0)}workerEvent(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now();(function(m,y,w){let b=m[y];if(!b||typeof b!="string")return[m];m[y]="";let M=DA(JSON.stringify(m)),k=0,V=[],K=0;for(let q=0;qthis.send({type:Eo.WORKER_EVENT,data:m},!0))}apworkerEvent(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{elapse:C-l.startTime,lts:C});this.send({type:Eo.AP_WORKER_EVENT,data:m},!0)}joinWebProxyAP(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{elapse:C-l.startTime,lts:C,extend:A.extend||void 0});this.send({type:Eo.JOIN_WEB_PROXY_AP,data:m},!0)}WebSocketQuit(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{elapse:C-l.startTime,lts:C});this.send({type:Eo.WEBSOCKET_QUIT,data:m},!0)}async sendCustomReportMessage(a,A){if(this.customReportCount+=A.length,this.customReportCount>Ie("CUSTOM_REPORT_LIMIT"))throw new nt(fe.CUSTOM_REPORT_FREQUENCY_TOO_HIGH);this.customReportCounterTimer||(this.customReportCounterTimer=window.setInterval(()=>{this.customReportCount=0},5e3));let l=Date.now(),g=A.map(C=>({type:Eo.USER_ANALYTICS,data:Yr(Yr({sid:a},C),{},{lts:l})}));try{Ie("NEW_REPORT_SERVER")?await this.postDataToStatsCollector2(g):await this.postDataToStatsCollector(g)}catch(C){throw X.error("send custom report message failed",C.toString()),new nt(fe.CUSTOM_REPORT_SEND_FAILED,C.message)}}sendApiInvoke(a){let A=Ie("NOT_REPORT_EVENT");if(a.tag&&Rt(A)&&Rt(A).call(A,a.tag))return!1;if(a.sid===null)return this.apiInvokeUploadPendingItems.push(a),!1;let l=this.baseInfoMap.get(a.sid);if(!l)return this.apiInvokeUploadPendingItems.push(a),!1;let{cname:g,uid:C,cid:m}=l.info,y;if(a.lts=a.lts||Date.now(),a.error)if(a.error instanceof nt){let{code:b,message:M}=a.error;y=b||M||a.error.toString()}else y=a.error.toString();let w={invokeId:a.invokeId,sid:a.sid,cname:g,cid:m,uid:C,lts:a.lts,success:a.success,elapse:a.lts-l.startTime,execElapse:a.lts-a.apiInvokeTime,apiName:a.name,options:a.options?JSON.stringify(a.options):void 0,execStates:a.states?JSON.stringify(a.states):void 0,execResult:a.result?JSON.stringify(a.result):void 0,errorCode:a.error?y:void 0,errorMsg:a.error?JSON.stringify(a.error):void 0};return this.send({type:Eo.API_INVOKE,data:w},!1),!0}addSid(a){this.sids.add(a)}removeSid(a){this.sids.delete(a)}appendSessionId(){let a=this.apiInvokeUploadPendingItems;if(a.length===0)return;let A=Array.from(this.sids).find(l=>l!==null);A&&a.forEach(l=>{l&&(l.sid=A,this.sendApiInvoke(Object.assign({},l)))}),a.length=0}send(a,A){if(A)return this.keyEventUploadPendingItems.push(a),void this.sendItems(this.keyEventUploadPendingItems,!0);this.normalEventUploadPendingItems.push(a),this.normalEventUploadPendingItems.length>Ie("NORMAL_EVENT_QUEUE_CAPACITY")&&this.normalEventUploadPendingItems.splice(0,1),this.normalEventUploadPendingItems.length>=10&&this.sendItems(this.normalEventUploadPendingItems,!1)}doSend(){this.keyEventUploadPendingItems.length>0&&this.sendItems(this.keyEventUploadPendingItems,!0),this.normalEventUploadPendingItems.length>0&&Date.now()-this.lastSendNormalEventTime>=5e3&&this.sendItems(this.normalEventUploadPendingItems,!1)}sendItems(a,A){let l=[],g=[];for(;a.length;){let m=a.shift();l.length<20?l.push(m):g.push(m)}a.push(...g);for(let m of[...l]){var C;this.ltsList.indexOf(m.data.lts)!==-1?(m.data.lts=this.ltsList[this.ltsList.length-1]+1,this.ltsList.push(m.data.lts)):(this.ltsList.push(m.data.lts),LE(C=this.ltsList).call(C,(y,w)=>y-w))}return A||(this.lastSendNormalEventTime=Date.now()),Ie("ENABLE_EVENT_REPORT")&&l.length&&(Ie("NEW_REPORT_SERVER")?this.postDataToStatsCollector2(l):this.postDataToStatsCollector(l)).catch((m=>y=>{Ie("EVENT_REPORT_RETRY")&&(A?this.keyEventUploadPendingItems=this.keyEventUploadPendingItems.concat(m):(this.normalEventUploadPendingItems=this.normalEventUploadPendingItems.concat(m),this.normalEventUploadPendingItems.length>Ie("NORMAL_EVENT_QUEUE_CAPACITY")&&(this.normalEventUploadPendingItems.splice(0,this.normalEventUploadPendingItems.length-Ie("NORMAL_EVENT_QUEUE_CAPACITY")),X.warning("report: drop normal events"))))})(l)),a}async postDataToStatsCollector2(a){Xi.networkState===Va.OFFLINE&&await Ft.race([Xi.onlineWaiter,Ks(2*os.maxRetryTimeout)]);let A=C=>{let m=new Uint8Array;return C.forEach(y=>{let w=yf(JSON.stringify(y.data)),b=new ArrayBuffer(5),M=(V=>{let K=0;return Object.entries(Eo).forEach(q=>{let[ce,oe]=q;oe===V.type&&(K=kC[ce])}),K})(y),k=new DataView(b);k.setUint16(0,w.byteLength,!0),k.setUint8(2,255&M),k.setUint8(3,M>>>8&255),k.setUint8(4,M>>>16&255),m=zb(m,new Uint8Array(b)),m=zb(m,w)}),m},l="event",g=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("NEW_REPORT_SERVER_DOMAINS")[0],"&p=443&d=").concat(l):"https://".concat(Ie("NEW_REPORT_SERVER_DOMAINS")[0],"/").concat(l);for(let C=0;C<2;C+=1){C===1&&(g=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("NEW_REPORT_SERVER_DOMAINS")[1],"&p=443&d=").concat(l):"https://".concat(Ie("NEW_REPORT_SERVER_DOMAINS")[1],"/").concat(l));try{await l2(g,{timeout:1e4,data:A(a),headers:Yr(Yr({biz:"webrtc",sendts:Math.round(Date.now()/1e3),debug:"false"},this._appId&&{appid:this._appId}),{},{"Content-Type":"application/octet-stream"})},!0)}catch(m){if(C===1)throw m;continue}return}}async postDataToStatsCollector(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=(w=>{let b=w&&w.data.sid&&this.baseInfoMap.get(w.data.sid);return b&&b.info.vid&&+b.info.vid||0})(a[0]),g=l?void 0:this._aid,C={msgType:"EventMessages",sentTs:Math.round(Date.now()/1e3),payloads:a.map(w=>JSON.stringify(w)),vid:l,aid:g};Xi.networkState===Va.OFFLINE&&await Ft.race([Xi.onlineWaiter,Ks(2*os.maxRetryTimeout)]);let m=A?"/events/proto-raws":"/events/messages",y=this.url||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("EVENT_REPORT_DOMAIN"),"&p=").concat(Ie("STATS_COLLECTOR_PORT"),"&d=").concat(m):"https://".concat(Ie("EVENT_REPORT_DOMAIN"),":").concat(Ie("STATS_COLLECTOR_PORT")).concat(m));for(let w=0;w<2;w+=1){w===1&&(y=this.backupUrl||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("EVENT_REPORT_BACKUP_DOMAIN"),"&p=").concat(Ie("STATS_COLLECTOR_PORT"),"&d=").concat(m):"https://".concat(Ie("EVENT_REPORT_BACKUP_DOMAIN"),":").concat(Ie("STATS_COLLECTOR_PORT")).concat(m)));try{A?await GJ(y,{timeout:1e4,data:C}):await l2(y,{timeout:1e4,data:C})}catch(b){if(w===1)throw b;continue}return}}createBaseInfo(a,A){let l=Object.assign({},rU);return l.sid=a,this.baseInfoMap.set(a,{info:l,startTime:A}),l}reportResourceTiming(a,A){let l=performance.getEntriesByName(a),g=l[l.length-1];g&&this.reportApiInvoke(A,{name:"Client.resourceTiming",options:g,tag:Gn.TRACER}).onSuccess()}};a4.on("REPORT_LOG_UPLOAD",a=>{a.networkState=Xi.networkState,tr.reportApiInvoke(null,{name:"logUploadError",options:a,tag:Gn.TRACER}).onSuccess("logUploadError")});let ze=class extends nt{constructor(a){super(a,arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",arguments.length>2?arguments[2]:void 0),ko(this,"name","AgoraRTCException")}print(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error";return super.print(a,X)}throw(){super.throw(X)}},ta={getDisplayMedia:!1,getStreamFromExtension:!1,supportUnifiedPlan:!1,supportMinBitrate:!1,supportSetRtpSenderParameters:!1,supportDualStream:!0,webAudioMediaStreamDest:!1,supportReplaceTrack:!1,supportWebGL:!1,webAudioWithAEC:!1,supportRequestFrame:!1,supportShareAudio:!1,supportDualStreamEncoding:!1,supportDataChannel:!1,supportPCSetConfiguration:!1,supportWebRTCEncodedTransform:!1,supportWebRTCInsertableStream:!1,supportRequestVideoFrameCallback:!1,supportWebCrypto:!1,supportSuppressLocalAudioPlayback:!1,supportRestrictOwnAudio:!1};function Bi(){return ta}function ra(){return"setSinkId"in HTMLAudioElement.prototype&&(!Ie("RESTRICTION_SET_PLAYBACK_DEVICE")||(Tg()||HP())&&!RR())}function Dg(){return!ta.supportUnifiedPlan||Ie("CHROME_FORCE_PLAN_B")&&Od()}function So(a){return!(uo()||YP(87)||Dg()||!Ie("ENABLE_PRE_SUB")&&(a==null||!a.autoSubscribe||Ie("FORCE_DISABLE_AUTO_SUB")))}function Lf(a){return Ie("ENABLE_INSTANT_VIDEO")?Ie("ENABLE_INSTANT_VIDEO"):!(a==null||!a.autoSubscribe||Ie("FORCE_DISABLE_AUTO_SUB"))}function dl(){return navigator.mediaDevices&&"getSupportedConstraints"in navigator.mediaDevices}function Mf(){if(dl()){let a=navigator.mediaDevices.getSupportedConstraints();return!(!("suppressLocalAudioPlayback"in a)||!a.suppressLocalAudioPlayback)}return Nd(141)||ol(141)||ZE(141)}function VR(){if(dl()){let a=navigator.mediaDevices.getSupportedConstraints();return!(!("restrictOwnAudio"in a)||!a.restrictOwnAudio)}return Nd(141)||ol(141)||ZE(125)}let Ys=function(a){return a.IOS_15_16_INTERRUPTION_START="ios15_16-interruption-start",a.IOS_15_16_INTERRUPTION_END="ios15_16-interruption-end",a.IOS_INTERRUPTION_START="ios-interruption-start",a.IOS_INTERRUPTION_END="ios-interruption-end",a.STATE_CHANGE="state-change",a}({});function sh(a,A,l){return{sampleRate:a,stereo:A,bitrate:l}}function Gi(a,A,l,g,C){return{width:a,height:A,frameRate:l,bitrateMin:g,bitrateMax:C}}function Jl(a,A,l,g,C){return{width:{max:a},height:{max:A},frameRate:l,bitrateMin:g,bitrateMax:C}}function KR(a,A){return{numSpatialLayers:a,numTemporalLayers:A}}let ql={"90p":Gi(160,90),"90p_1":Gi(160,90),"120p":Gi(160,120,15,30,65),"120p_1":Gi(160,120,15,30,65),"120p_3":Gi(120,120,15,30,50),"120p_4":Gi(212,120),"180p":Gi(320,180,15,30,140),"180p_1":Gi(320,180,15,30,140),"180p_3":Gi(180,180,15,30,100),"180p_4":Gi(240,180,15,30,120),"240p":Gi(320,240,15,40,200),"240p_1":Gi(320,240,15,40,200),"240p_3":Gi(240,240,15,40,140),"240p_4":Gi(424,240,15,40,220),"360p":Gi(640,360,15,80,400),"360p_1":Gi(640,360,15,80,400),"360p_3":Gi(360,360,15,80,260),"360p_4":Gi(640,360,30,80,600),"360p_6":Gi(360,360,30,80,400),"360p_7":Gi(480,360,15,80,320),"360p_8":Gi(480,360,30,80,490),"360p_9":Gi(640,360,15,80,800),"360p_10":Gi(640,360,24,80,800),"360p_11":Gi(640,360,24,80,1e3),"480p":Gi(640,480,15,100,500),"480p_1":Gi(640,480,15,100,500),"480p_2":Gi(640,480,30,100,1e3),"480p_3":Gi(480,480,15,100,400),"480p_4":Gi(640,480,30,100,750),"480p_6":Gi(480,480,30,100,600),"480p_8":Gi(848,480,15,100,610),"480p_9":Gi(848,480,30,100,930),"480p_10":Gi(640,480,10,100,400),"720p":Gi(1280,720,15,120,1130),"720p_auto":Gi(1280,720,30,900,3e3),"720p_1":Gi(1280,720,15,120,1130),"720p_2":Gi(1280,720,30,120,2e3),"720p_3":Gi(1280,720,30,120,1710),"720p_5":Gi(960,720,15,120,910),"720p_6":Gi(960,720,30,120,1380),"1080p":Gi(1920,1080,15,120,2080),"1080p_1":Gi(1920,1080,15,120,2080),"1080p_2":Gi(1920,1080,30,120,3e3),"1080p_3":Gi(1920,1080,30,120,3150),"1080p_5":Gi(1920,1080,60,120,4780),"1440p":Gi(2560,1440,30,120,4850),"1440p_1":Gi(2560,1440,30,120,4850),"1440p_2":Gi(2560,1440,60,120,7350),"4k":Gi(3840,2160,30,120,8910),"4k_1":Gi(3840,2160,30,120,8910),"4k_3":Gi(3840,2160,60,120,13500)},iU={"480p":Jl(640,480,5),"480p_1":Jl(640,480,5),"480p_2":Jl(640,480,30),"480p_3":Jl(640,480,15),"720p":Jl(1280,720,5),"720p_auto":Gi(1280,720,30,900,3e3),"720p_1":Jl(1280,720,5),"720p_2":Jl(1280,720,30),"720p_3":Jl(1280,720,15),"1080p":Jl(1920,1080,5),"1080p_1":Jl(1920,1080,5),"1080p_2":Jl(1920,1080,30),"1080p_3":Jl(1920,1080,15)},c4={"1SL1TL":KR(1,1),"3SL3TL":KR(3,3),"2SL3TL":KR(2,3)};function ya(a){return a||(a="480p_1"),typeof a=="string"?Object.assign({},ql[a]):a}function h2(a){return typeof a=="string"?Object.assign({},iU[a]):a}function kf(a){return typeof a=="string"?Object.assign({},c4[a]):a}let nU={speech_low_quality:sh(16e3,!1),speech_standard:sh(32e3,!1,18),music_standard:sh(48e3,!1),standard_stereo:sh(48e3,!0,56),high_quality:sh(48e3,!1,128),high_quality_stereo:sh(48e3,!0,192)};function Pf(a){return typeof a=="string"?Object.assign({},nU[a]):a}let ah=[];function HR(a){return zo(a,"mediaSource",["screen","window","application"]),!0}let nr=function(a){return a.NEED_RENEGOTIATE="@need_renegotiate",a.NEED_REPLACE_TRACK="@need_replace_track",a.NEED_REPLACE_MIXING_TRACK="@need_replace_mixing_track",a.NEED_CLOSE="@need_close",a.NEED_ENABLE_TRACK="@need_enable_track",a.NEED_DISABLE_TRACK="@need_disable_track",a.NEED_SESSION_ID="@need_sid",a.SET_OPTIMIZATION_MODE="@set_optimization_mode",a.GET_STATS="@get_stats",a.GET_RTC_STATS="@get_rtc_stats",a.GET_LOW_VIDEO_TRACK="@get_low_video_track",a.NEED_RESET_REMOTE_SDP="@need_reset_remote_sdp",a.NEED_UPDATE_VIDEO_ENCODER="@need_update_video_encoder",a.NEED_UPDATE_VIDEO_SEND_PARAMETERS="@need_update_video_send_parameters",a.NEED_MUTE_TRACK="@need_mute_track",a.NEED_UNMUTE_TRACK="@need_unmute_track",a}({}),$i=function(a){return a.SCREEN_TRACK="screen_track",a.CUSTOM_TRACK="custome_track",a.LOW_STREAM="low_stream",a.SCREEN_LOW_TRACK="screen_low_track",a}({}),bg=function(a){return a[a.HIGH_STREAM=0]="HIGH_STREAM",a[a.LOW_STREAM=1]="LOW_STREAM",a}({}),l4=function(a){return a[a.HIGH_STREAM=0]="HIGH_STREAM",a[a.LOW_STREAM=1]="LOW_STREAM",a[a.HIGH_STREAM_LAYER1=4]="HIGH_STREAM_LAYER1",a[a.HIGH_STREAM_LAYER2=5]="HIGH_STREAM_LAYER2",a[a.HIGH_STREAM_LAYER3=6]="HIGH_STREAM_LAYER3",a[a.HIGH_STREAM_LAYER4=7]="HIGH_STREAM_LAYER4",a[a.HIGH_STREAM_LAYER5=8]="HIGH_STREAM_LAYER5",a[a.HIGH_STREAM_LAYER6=9]="HIGH_STREAM_LAYER6",a}({}),Tc=function(a){return a[a.DISABLE=0]="DISABLE",a[a.LOW_STREAM=1]="LOW_STREAM",a[a.AUDIO_ONLY=2]="AUDIO_ONLY",a[a.HIGH_STREAM_LAYER1=3]="HIGH_STREAM_LAYER1",a[a.HIGH_STREAM_LAYER2=4]="HIGH_STREAM_LAYER2",a[a.HIGH_STREAM_LAYER3=5]="HIGH_STREAM_LAYER3",a[a.HIGH_STREAM_LAYER4=6]="HIGH_STREAM_LAYER4",a[a.HIGH_STREAM_LAYER5=7]="HIGH_STREAM_LAYER5",a[a.HIGH_STREAM_LAYER6=8]="HIGH_STREAM_LAYER6",a}({}),Wl=function(a){return a.TRANSCEIVER_UPDATED="transceiver-updated",a.SEI_TO_SEND="sei-to-send",a.SEI_RECEIVED="sei-received",a.TRACK_UPDATED="track-updated",a}({}),Du=function(a){return a.SOURCE_STATE_CHANGE="source-state-change",a.TRACK_ENDED="track-ended",a.BEAUTY_EFFECT_OVERLOAD="beauty-effect-overload",a.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",a.CLOSED="closed",a}({}),wc=function(a){return a.FIRST_FRAME_DECODED="first-frame-decoded",a.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",a.VIDEO_STATE_CHANGED="video-state-changed",a.PLAY_START="play-start",a.PLAY_END="play-end",a.FIRST_FRAME_RENDER="first-frame-render",a}({}),PC=function(a){return a.AUDIO="audio",a.VIDEO="video",a.DATA="data",a}({}),WA=function(a){return a.AUDIO_SOURCE_STATE_CHANGE="audio_source_state_change",a.RECEIVE_TRACK_BUFFER="receive_track_buffer",a.ON_AUDIO_BUFFER="on_audio_buffer",a.UPDATE_SOURCE="update_source",a}({});(function(a){a.UPDATE_TRACK_SOURCE="update-track-source"})({});let YR={sendVolumeLevel:0,sendBitrate:0,sendBytes:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,currentPacketLossRate:0},I2={sendBytes:0,sendBitrate:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,sendResolutionHeight:0,sendResolutionWidth:0,captureResolutionHeight:0,captureResolutionWidth:0,targetSendBitrate:0,totalDuration:0,totalFreezeTime:0,currentPacketLossRate:0},W1={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveLevel:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receivePacketsDiscarded:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},d4={uplinkNetworkQuality:0,downlinkNetworkQuality:0},Ah={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receiveResolutionHeight:0,receiveResolutionWidth:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},Bn=function(a){return a.ON_TRACK="on_track",a.ON_NODE="on_node",a}({}),XA=function(a){return a.REQUEST_UPDATE_CONSTRAINTS="request_update_constraints",a.REQUEST_CONSTRAINTS="request_constraints",a}({}),Qa=function(a){return a.IDLE="IDLE",a.INITING="INITING",a.INITEND="INITEND",a}({}),Ng=function(a){return a.STATE_CHANGE="state_change",a.RECORDING_DEVICE_CHANGED="recordingDeviceChanged",a.PLAYOUT_DEVICE_CHANGED="playoutDeviceChanged",a.CAMERA_DEVICE_CHANGED="cameraDeviceChanged",a}({}),Ta=function(a){return a.NONE="none",a.INIT="init",a.CANPLAY="canplay",a.PLAYING="playing",a.PAUSED="paused",a.SUSPEND="suspend",a.STALLED="stalled",a.WAITING="waiting",a.ERROR="error",a.DESTROYED="destroyed",a.ABORT="abort",a.ENDED="ended",a.EMPTIED="emptied",a.LOADEDDATA="loadeddata",a}({}),Vi=function(a){return a[a.VideoStateStopped=0]="VideoStateStopped",a[a.VideoStateStarting=1]="VideoStateStarting",a[a.VideoStateDecoding=2]="VideoStateDecoding",a[a.VideoStateFrozen=3]="VideoStateFrozen",a}({}),Dn={uninit:100,none:110,init:120,loadeddata:130,canplay:200,playing:210,paused:220,suspend:300,stalled:310,waiting:320,error:330,destroyed:340,abort:350,ended:360,emptied:370},de=function(a){return a.OPEN="open",a.MESSAGE="message",a.CLOSE="close",a.CLOSING="closing",a.ERROR="error",a}({});function Li(a,A,l,g,C){var m,y,w={};return Object.keys(g).forEach(function(b){w[b]=g[b]}),w.enumerable=!!w.enumerable,w.configurable=!!w.configurable,("value"in w||w.initializer)&&(w.writable=!0),w=$c(m=j9(y=l.slice()).call(y)).call(m,function(b,M){return M(a,A,b)||b},w),C&&w.initializer!==void 0&&(w.value=w.initializer?w.initializer.call(C):void 0,w.initializer=void 0),w.initializer===void 0?(Object.defineProperty(a,A,w),null):w}function $e(a,A,l){return(A=function(g){var C=function(m,y){if(typeof m!="object"||!m)return m;var w=m[Symbol.toPrimitive];if(w!==void 0){var b=w.call(m,"string");if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(m)}(g);return typeof C=="symbol"?C:C+""}(A))in a?Object.defineProperty(a,A,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[A]=l,a}function Fr(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Qn(a){for(var A=1;A{var l;tr.reportApiInvoke(null,{name:Co.GET_MEDIA_STREAM_TRACK,options:[],tag:Gn.TRACER}).onSuccess(((l=this._mediaStreamTrack)===null||l===void 0?void 0:l.label)||"")},this.mediaStreamTrack.id||this.getTrackId()),this._mediaStreamTrack}getRTCRtpTransceiver(A){return A===bg.LOW_STREAM?this._lowRtpTransceiver:this._rtpTransceiver}getMediaStreamTrackSettings(){return this.getMediaStreamTrack(!0).getSettings()}close(){this._isClosed=!0,this._lowRtpTransceiver=void 0,this._rtpTransceiver=void 0,function(A){let l=ah.indexOf(A);l!==-1&&ah.splice(l,1)}(this),this.emit(Du.CLOSED),this.removeAllListeners(Wl.SEI_RECEIVED)}_updateRtpTransceiver(A,l){if(l===bg.LOW_STREAM){if(this._lowRtpTransceiver===A)return;this._lowRtpTransceiver=A}else{if(this._rtpTransceiver===A)return;this._rtpTransceiver=A}this.emit(Wl.TRANSCEIVER_UPDATED,A,l)}}class UC extends u4{get isExternalTrack(){return this._isExternalTrack}get muted(){return this._muted}get enabled(){return this._enabled}get processorContext(){return this._processorContext}constructor(A,l){super(A,l),$e(this,"_enabled",!0),$e(this,"_muted",!1),$e(this,"_isExternalTrack",!1),$e(this,"_isClosed",!1),$e(this,"_enabledMutex",void 0),$e(this,"processor",void 0),$e(this,"_processorContext",void 0),$e(this,"_handleTrackEnded",()=>{this.onTrackEnded()}),this._enabledMutex=new Is("".concat(this.getTrackId())),A.addEventListener("ended",this._handleTrackEnded)}getTrackLabel(){var A,l;return(A=(l=this._originMediaStreamTrack)===null||l===void 0?void 0:l.label)!==null&&A!==void 0?A:""}close(){this._isClosed||(this.stop(),this._originMediaStreamTrack.stop(),this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack.stop(),this._mediaStreamTrack=null),this._originMediaStreamTrack=null,this._enabledMutex=null,X.debug("[".concat(this.getTrackId(),"] close")),this.emit(nr.NEED_CLOSE),super.close())}async _updateOriginMediaStreamTrack(A,l){let g=arguments.length>2&&arguments[2]!==void 0&&arguments[2];this._isExternalTrack=g,A!==this._originMediaStreamTrack&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),l&&this._originMediaStreamTrack.stop()),A.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=A,this._muted&&(this._originMediaStreamTrack.enabled=!1),this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this),this.processor&&this._processorContext&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this._processorContext}))}_getDefaultPlayerConfig(){return{}}onTrackEnded(){X.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(Du.TRACK_ENDED)}stateCheck(A,l){if(X.debug("check track state, [muted: ".concat(this._muted,", enabled: ").concat(this._enabled,"] to [").concat(A,": ").concat(l,"]")),Yl(l,A),this._enabled&&this._muted&&A==="enabled"&&l===!1)throw new nt(fe.TRACK_STATE_UNREACHABLE,"cannot set enabled while the track is muted").print("error",X);if(!this._enabled&&!this._muted&&A==="muted"&&l===!0)throw new nt(fe.TRACK_STATE_UNREACHABLE,"cannot set muted while the track is disabled").print("error",X)}getProcessorStats(){return this._processorContext&&this._processorContext.gatherStats()||[]}getProcessorUsage(){return this._processorContext?this._processorContext.gatherUsage():Ft.resolve([])}}let g4=window.AudioContext||window.webkitAudioContext,ch,vc=null,kn=new class extends io{constructor(){super(...arguments),$e(this,"prevState",void 0),$e(this,"curState",void 0),$e(this,"currentTime",void 0),$e(this,"currentTimeStuckAt",void 0),$e(this,"interruptDetectorTrack",void 0),$e(this,"onLocalAudioTrackMute",()=>{X.info("ios15-interruption-start"),this.emit(Ys.IOS_15_16_INTERRUPTION_START)}),$e(this,"onLocalAudioTrackUnmute",async()=>{X.info("ios15-interruption-end"),this.curState!=="running"||this.duringInterruption?X.info("ios15-interruption-end-canceled"):(vc&&await vc.suspend(),this.emit(Ys.IOS_15_16_INTERRUPTION_END))})}get duringInterruption(){return this.prevState==="running"&&this.curState==="interrupted"}bindInterruptDetectorTrack(a){X.debug("webaudio bindInterruptDetectorTrack ".concat(a.getTrackId())),this.interruptDetectorTrack||(this.interruptDetectorTrack=a,this.interruptDetectorTrack._mediaStreamTrack.onmute=this.onLocalAudioTrackMute,this.interruptDetectorTrack._mediaStreamTrack.onunmute=this.onLocalAudioTrackUnmute)}unbindInterruptDetectorTrack(a){X.debug("webaudio unbindInterruptDetectorTrack ".concat(a.getTrackId())),this.interruptDetectorTrack&&this.interruptDetectorTrack===a&&(this.interruptDetectorTrack._mediaStreamTrack&&(this.interruptDetectorTrack._mediaStreamTrack.onmute=null,this.interruptDetectorTrack._mediaStreamTrack.onunmute=null),this.interruptDetectorTrack=void 0)}};function wa(){if(!vc){if(function(){if(!g4)return void X.error("your browser is not support web audio");X.info("create audio context");let a=Qn({},Ie("WEBAUDIO_INIT_OPTIONS"));X.debug("audio context init option:",JSON.stringify(a)),vc=new g4(a),kn.curState=vc.state,vc.onstatechange=()=>{kn.prevState=kn.curState,kn.curState=vc?vc.state:void 0;let{prevState:A,curState:l}=kn,g=l==="running",C=l==="interrupted",m=A==="running",y=A==="suspended",w=A==="interrupted",b=Wi().osVersion;(Ma()||Hl())&&m&&C&&(X.info("ios".concat(b,"-interruption-start")),kn.emit(Ys.IOS_INTERRUPTION_START)),(Ma()||Hl())&&(y||w)&&g&&(X.info("ios".concat(b,"-interruption-end")),kn.emit(Ys.IOS_INTERRUPTION_END)),A!==l&&kn.emit(Ys.STATE_CHANGE,l,A)},setInterval(()=>{var A;let l=(A=vc)===null||A===void 0?void 0:A.currentTime;kn.currentTime!==l?(kn.currentTimeStuckAt&&(X.debug("AudioContext current time resume at ".concat(l)),kn.currentTimeStuckAt=void 0),kn.currentTime=l):(l!==kn.currentTimeStuckAt&&(tr.reportApiInvoke(null,{name:"WEB_AUDIO_CURRENT_TIME_STUCK",options:{currentTime:l},tag:Gn.TRACER}).onSuccess(),X.warning("AudioContext current time stuck at ".concat(l))),kn.currentTimeStuckAt=l)},5e3),async function(A){let l=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","touchend","keydown","keyup"],g,C,m=!1,y=!1,w=!1;function b(pe){A.state==="running"?M(!1):Ma()||Hl()?A.state==="suspended"&&(M(!0),pe&&A.resume().then(k,k)):A.state!=="closed"&&(M(!0),pe&&A.resume().then(k,k))}function M(pe){if(m!==pe){m=pe;for(let Se=0,be=l;Se",g=Se.children.item(0),g.controls=!1,g.disableRemotePlayback=!0,g.preload="auto",g.srcObject=pe.stream,C=()=>{if(Ie("IOS_AUTO_RESTART_BG_TAG")&&g&&g.srcObject&&!w&&(!g.paused||y!==!0)){g.paused||g.pause();try{w=!0,K()}catch{w=!1}return!0}},q(!0)}return kn.on(Ys.STATE_CHANGE,function(){b(!0)}),b(!1),C}(vc).then(A=>{ch=A})}(),!vc)throw new nt(fe.NOT_SUPPORTED,"can not create audio context");return vc}return vc}function X1(a){if(function(){if(E4!==null)return E4;let g=wa(),C=g.createBufferSource(),m=g.createGain(),y=g.createGain();C.connect(m),C.connect(y),C.disconnect(m);let w=!1;try{C.disconnect(m)}catch{w=!0}return C.disconnect(),E4=w,w}())return;let A=a.connect,l=a.disconnect;a.connect=(g,C,m)=>{var y;return a._inputNodes||(a._inputNodes=[]),Rt(y=a._inputNodes).call(y,g)||(g instanceof AudioNode?(a._inputNodes.push(g),A.call(a,g,C,m)):A.call(a,g,C)),a},a.disconnect=(g,C,m)=>{l.call(a),g?sl(a._inputNodes,g):a._inputNodes=[];for(let y of a._inputNodes)A.call(a,y)}}let E4=null;function h4(a,A){let l=!1,g=1/A;if(Ie("DISABLE_WEBAUDIO")){let C=window.setInterval(()=>{l?window.clearInterval(C):a(performance.now()/1e3)},1e3*g)}else{let C=wa(),m=C.createGain();m.gain.value=0,m.connect(C.destination);let y=()=>{if(l)return void(m=null);let w=C.createOscillator();w.onended=y,w.connect(m),w.start(0),w.stop(C.currentTime+g),a(C.currentTime)};y()}return()=>{l=!0}}class oU{constructor(){$e(this,"context",void 0),$e(this,"analyserNode",void 0),$e(this,"sourceNode",void 0),this.context=wa(),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4}updateSource(A){if(A!==this.sourceNode){if(this.sourceNode)try{this.sourceNode.disconnect(this.analyserNode)}catch{}this.sourceNode=A,A==null||A.connect(this.analyserNode)}}getVolumeLevel(){if(!this.sourceNode||(!this.context||Ma()||Hl()||this.context.state!=="running"&&this.context.resume(),!this.analyserNode))return 0;let A=new Float32Array(this.analyserNode.fftSize);if(this.analyserNode.getFloatTimeDomainData)this.analyserNode.getFloatTimeDomainData(A);else{let g=new Uint8Array(this.analyserNode.fftSize);this.analyserNode.getByteTimeDomainData(g);for(let C=0;Cg+C*C,0)/A.length;return Math.max(10*Math.log10(l)+100,0)/100}getAnalyserNode(){return this.analyserNode}rebuildAnalyser(){try{var A,l;(A=this.sourceNode)===null||A===void 0||A.disconnect(this.analyserNode),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4,(l=this.sourceNode)===null||l===void 0||l.connect(this.analyserNode)}catch{X.warning("rebuild analyser node failed.")}}destroy(){this.updateSource(void 0)}}class sU extends io{get processSourceNode(){return this.sourceNode}set processedNode(A){var l;if(!this.isDestroyed&&this._processedNode!==A){try{var g;(g=this.sourceNode)===null||g===void 0||g.disconnect(this.outputNode)}catch{}(l=this._processedNode)===null||l===void 0||l.disconnect(),this._processedNode=A,this.connect()}}get processedNode(){return this._processedNode}constructor(){super(),$e(this,"outputNode",void 0),$e(this,"outputTrack",void 0),$e(this,"isPlayed",!1),$e(this,"sourceNode",void 0),$e(this,"context",void 0),$e(this,"audioBufferNode",void 0),$e(this,"destNode",void 0),$e(this,"audioOutputLevel",0),$e(this,"volumeLevelAnalyser",void 0),$e(this,"_processedNode",void 0),$e(this,"playNode",void 0),$e(this,"isDestroyed",!1),$e(this,"onNoAudioInput",void 0),$e(this,"isNoAudioInput",!1),$e(this,"_noAudioInputCount",0),this.context=wa(),this.playNode=this.context.destination,this.outputNode=this.context.createGain(),X1(this.outputNode),this.volumeLevelAnalyser=new oU}startGetAudioBuffer(A){this.audioBufferNode||(this.audioBufferNode=this.context.createScriptProcessor(A),this.outputNode.connect(this.audioBufferNode),this.audioBufferNode.connect(this.context.destination),this.audioBufferNode.onaudioprocess=l=>{this.emit(WA.ON_AUDIO_BUFFER,function(g){for(let C=0;C{kn.emit("autoplay-failed")}),this.isPlayed=!0,this.playNode=A||this.context.destination,this.outputNode.connect(this.playNode)}stop(){if(this.isPlayed)try{this.outputNode.disconnect(this.playNode)}catch{}this.isPlayed=!1}getAccurateVolumeLevel(){return this.volumeLevelAnalyser.getVolumeLevel()}async checkHasAudioInput(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(A>5)return this.isNoAudioInput=!0,this.onNoAudioInput&&this.onNoAudioInput(),!1;Ma()||Hl()?this.context.state==="suspended"&&this.context.resume():this.context.state!=="running"&&this.context.resume();let l=this.volumeLevelAnalyser.getAnalyserNode(),g;l.getFloatTimeDomainData?(g=new Float32Array(l.fftSize),l.getFloatTimeDomainData(g)):(g=new Uint8Array(l.fftSize),l.getByteTimeDomainData(g));let C=!1;for(let m=0;m{if(X.debug("ready to rebuild web audio, state:",this.context.state),this.isNoAudioInput&&await this.checkHasAudioInput(),!this.isNoAudioInput||this.isDestroyed)return document.body.removeEventListener("click",this.rebuildWebAudio,!0),void X.debug("rebuild web audio success, current volume status",this.getAccurateVolumeLevel());this.context.resume().then(()=>X.info("resume success")),X.debug("rebuild web audio because of ios 12 bugs"),this.disconnect();let w=this.track;this.track=this.track.clone(),this.isCurrentTrackCloned?w.stop():this.isCurrentTrackCloned=!0;let b=new MediaStream([this.track]);this.sourceNode=this.context.createMediaStreamSource(b),X1(this.sourceNode),this.volumeLevelAnalyser.rebuildAnalyser();let M=this.outputNode.gain.value;this.outputNode=this.context.createGain(),this.outputNode.gain.setValueAtTime(M,this.context.currentTime),X1(this.outputNode),this.emit(WA.UPDATE_SOURCE),this.connect(),this.audioElement.srcObject=b,this.isPlayed&&this.play(this.playNode),this.checkHasAudioInput()}),A.kind!=="audio")throw new nt(fe.UNEXPECTED_ERROR);this.track=A;let m=new MediaStream([this.track]);if(this.isRemoteTrack=!!l,this.sourceNode=this.context.createMediaStreamSource(m),X1(this.sourceNode),g){let w=g.clone();w.enabled=!0,this.clonedTrack=w,X.debug("create an unmuted track ".concat(w.id," from the original track ").concat(g.id," to get the volume"));let b=this.context.createMediaStreamSource(new MediaStream([w]));X1(b),this.originVolumeLevelAnalyser=new oU,this.originVolumeLevelAnalyser.updateSource(b)}this.connect(),this.audioElement=document.createElement("audio"),this.audioElement.srcObject=m;let y=Wi();l&&y.os===Vs.IOS&&Number((C=y.osVersion)===null||C===void 0?void 0:C.split(".")[0])<15&&(kn.on(Ys.STATE_CHANGE,()=>{this.context.state==="suspended"?document.body.addEventListener("click",this.rebuildWebAudio,!0):this.context.state==="running"&&this.rebuildWebAudio()}),this.checkHasAudioInput().then(w=>{w||document.body.addEventListener("click",this.rebuildWebAudio,!0)}))}updateTrack(A){this.sourceNode.disconnect(),this.track=A,this.isCurrentTrackCloned=!1;let l=new MediaStream([A]);this.sourceNode=this.context.createMediaStreamSource(l),X1(this.sourceNode),this.processedNode||this.sourceNode.connect(this.outputNode),this.emit(WA.UPDATE_SOURCE),this.audioElement.srcObject=l}destroy(){var A;this.audioElement.srcObject=null,this.audioElement.remove(),kn.off("state-change",this.rebuildWebAudio),(A=this.originVolumeLevelAnalyser)===null||A===void 0||A.destroy(),this.clonedTrack=void 0,super.destroy()}createMediaStreamSourceNode(A){return this.context.createMediaStreamSource(new MediaStream([A]))}updateOriginTrack(A){let l=A.clone();l.enabled=!0,this.clonedTrack&&(this.clonedTrack.stop(),this.clonedTrack=l),X.debug("create an unmuted track ".concat(l.id," from the original track ").concat(A.id," to get the volume"));let g=this.context.createMediaStreamSource(new MediaStream([l]));X1(g),this.originVolumeLevelAnalyser&&this.originVolumeLevelAnalyser.updateSource(g)}getOriginVolumeLevel(){return this.originVolumeLevelAnalyser?this.originVolumeLevelAnalyser.getVolumeLevel():this.getAccurateVolumeLevel()}}async function jR(a,A,l){let g=(m,y)=>m?typeof m!="number"?m.max||m.exact||m.ideal||m.min||y:m:y,C={audio:!!l&&{mandatory:{chromeMediaSource:"desktop"}},video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:a,maxHeight:g(A.height,1080),maxWidth:g(A.width,1920)}}};return A.frameRate&&typeof A.frameRate!="number"?(C.video.mandatory.maxFrameRate=A.frameRate.max,C.video.mandatory.minFrameRate=A.frameRate.min):typeof A.frameRate=="number"&&(C.video.mandatory.maxFrameRate=A.frameRate),await navigator.mediaDevices.getUserMedia(C)}async function HJ(a,A){let l=await aU(a.mediaSource),{sourceId:g,audio:C}=await function(m){let y=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new Ft((w,b)=>{let M=document.createElement("div");M.innerText="share screen",M.setAttribute("style","text-align: center; height: 25px; line-height: 25px; border-radius: 4px 4px 0 0; background: #D4D2D4; border-bottom: solid 1px #B9B8B9;");let k=document.createElement("div");k.setAttribute("style","width: 100%; height: 500px; padding: 15px 25px ; box-sizing: border-box;");let V=document.createElement("div");V.innerText="Agora Web Screensharing wants to share the contents of your screen with webdemo.agorabeckon.com. Choose what you'd like to share.",V.setAttribute("style","height: 12%;");let K=document.createElement("div");K.setAttribute("style","width: 100%; height: 80%; background: #FFF; border: solid 1px #CBCBCB; display: flex; flex-wrap: wrap; justify-content: space-around; overflow-y: scroll; padding: 0 15px; box-sizing: border-box;");let q=document.createElement("div");q.setAttribute("style","display: flex; justify-content: space-between; padding: 16px 0;");let ce=document.createElement("button");ce.innerHTML="cancel",ce.setAttribute("style","width: 85px;"),ce.onclick=()=>{document.body.removeChild(pe);let Se=new Error("NotAllowedError");Se.name="NotAllowedError",b(Se)};let oe=y,le=document.createElement("div");if(y){let Se=document.createElement("input");Se.setAttribute("type","checkbox");let be=document.createElement("span");Se.setAttribute("style","margin-right: 6px;"),be.innerText="Share audio",Se.checked=oe,Se.onchange=()=>{oe=Se.checked},le.appendChild(Se),le.appendChild(be)}q.appendChild(le),q.appendChild(ce),k.appendChild(V),k.appendChild(K),k.appendChild(q);let pe=document.createElement("div");pe.setAttribute("style","position: fixed; z-index: 99999999; top: 50%; left: 50%; width: 620px; height: 525px; background: #ECECEC; border-radius: 4px; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);"),pe.appendChild(M),pe.appendChild(k),document.body.appendChild(pe),m.map(Se=>{if(Se.id){let be=document.createElement("div");be.setAttribute("style","width: 30%; height: 160px; padding: 20px 0; text-align: center;box-sizing: content-box;");let Ue=Se.thumbnail;try{let{width:xe}=Ue.getSize();xe>1920&&(Ue=Ue.resize({width:1920}))}catch(xe){throw xe&&xe.message.startsWith("Illegal invocation")&&console.error("Operate thumbnail error, please try to set contextIsolation: false. (https://github.com/electron/electron/issues/34953)"),xe}be.innerHTML='
'+Se.name.replace(/[\u00A0-\u9999<>\&]/g,function(xe){return"&#"+xe.charCodeAt(0)+";"})+"",be.onclick=()=>{document.body.removeChild(pe),w({sourceId:Se.id,audio:oe})},K.appendChild(be)}})})}(l,A);return await jR(g,a,C)}async function aU(a){let A=["window","screen"];a!=="application"&&a!=="window"||(A=["window"]),a==="screen"&&(A=["screen"]);let l=WP();if(!l)throw console.error("failed to fetch electron, please mount it to window"),new nt(fe.ELECTRON_IS_NULL);let g=null;try{var C;g=((C=l.desktopCapturer)===null||C===void 0?void 0:C.getSources({types:A}))||l.ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES",{types:A})}catch{g=null}g&&g.then||(g=new Ft((m,y)=>{l.desktopCapturer.getSources({types:A},(w,b)=>{w?y(w):m(b)})}));try{return await g}catch(m){throw new nt(fe.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,m.toString())}}let js=new Is("safari"),C4=!1,bo=!1;async function z1(a,A){let l=0,g=null;for(;l<2;)try{g=await $r(a,A,l>0);break}catch(C){if(C instanceof nt)throw X.error("[".concat(A,"] ").concat(C.toString())),C;let m=C2(C.name||C.code||C,C.message);if(m.code===fe.MEDIA_OPTION_INVALID){X.debug("[".concat(A,"] detect media option invalid, retry")),l+=1,await Ks(500);continue}throw X.error("[".concat(A,"] ").concat(m.toString())),m}if(!g)throw new nt(fe.UNEXPECTED_ERROR,"can not find stream after getUserMedia");return g}async function $r(a,A,l){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new nt(fe.NOT_SUPPORTED,"can not find getUserMedia");l&&(a.video&&(delete a.video.width,delete a.video.height),a.screen&&(delete a.screen.width,delete a.screen.height));let g=Bi(),C=new MediaStream;if(a.audioSource&&C.addTrack(a.audioSource),a.videoSource&&C.addTrack(a.videoSource),!a.audio&&!a.video&&!a.screen)return X.debug("Using Video Source/ Audio Source"),C;if(a.screen)if(WP())a.screen.sourceId?B2(C,await jR(a.screen.sourceId,a.screen,!!a.screenAudio)):B2(C,await HJ(a.screen,!!a.screenAudio));else if(Tg()&&a.screen.extensionId&&a.screen.mandatory){if(!g.getStreamFromExtension)throw new nt(fe.NOT_SUPPORTED,"This browser does not support screen sharing");X.debug("[".concat(A,'] Screen access on chrome stable, looking for extension"'));let K=await(y=a.screen.extensionId,w=A,new Ft((q,ce)=>{try{chrome.runtime.sendMessage(y,{getStream:!0},oe=>{if(!oe||!oe.streamId)return X.error("[".concat(w,"] No response from Chrome Plugin. Plugin not installed properly"),oe),void ce(new nt(fe.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));q(oe.streamId)})}catch(oe){X.error("[".concat(w,"] AgoraRTC screensharing plugin is not accessible(").concat(y,")"),oe.toString()),ce(new nt(fe.CHROME_PLUGIN_NOT_INSTALL))}}));a.screen.mandatory.chromeMediaSourceId=K,B2(C,await navigator.mediaDevices.getUserMedia({video:{mandatory:a.screen.mandatory}}))}else if(g.getDisplayMedia){var m;a.screen.mediaSource&&HR(a.screen.mediaSource);let K={width:a.screen.width,height:a.screen.height,frameRate:a.screen.frameRate,displaySurface:(m=a.screen.displaySurface)!==null&&m!==void 0?m:a.screen.mediaSource==="screen"?"monitor":a.screen.mediaSource},{selfBrowserSurface:q,surfaceSwitching:ce,systemAudio:oe,preferCurrentTab:le,windowAudio:pe,monitorTypeSurfaces:Se}=a.screen,be={selfBrowserSurface:q,surfaceSwitching:ce,systemAudio:oe,preferCurrentTab:le,windowAudio:pe,monitorTypeSurfaces:Se};!q&&delete be.selfBrowserSurface,!ce&&delete be.surfaceSwitching,!oe&&delete be.systemAudio,!le&&delete be.preferCurrentTab,!pe&&delete be.windowAudio,!Se&&delete be.monitorTypeSurfaces,X.debug("[".concat(A,"] getDisplayMedia:"),JSON.stringify({video:K,audio:a.screenAudio,controls:be})),B2(C,await navigator.mediaDevices.getDisplayMedia(Qn({video:K,audio:a.screenAudio},be)))}else{if(!uo())throw X.error("[".concat(A,"] This browser does not support screenSharing")),new nt(fe.NOT_SUPPORTED,"This browser does not support screen sharing");{a.screen.mediaSource&&HR(a.screen.mediaSource);let K={video:{mediaSource:a.screen.mediaSource,width:a.screen.width,height:a.screen.height,frameRate:a.screen.frameRate}};X.debug("[".concat(A,"] getUserMedia: ").concat(JSON.stringify(K))),B2(C,await navigator.mediaDevices.getUserMedia(K))}}var y,w;if(!a.video&&!a.audio)return C;let b={video:a.video,audio:a.audio},M=Ie("MEDIA_DEVICE_CONSTRAINTS");if(M)try{typeof M=="string"&&(M=JSON.parse(M)),b=wu(b,M)}catch{}X.debug("[".concat(A,"] GetUserMedia"),JSON.stringify(b)),Wi();let k,V=null;($s()||Ma()||DC())&&(V=await js.lock());try{k=await navigator.mediaDevices.getUserMedia(b)}catch(K){throw V&&V(),K}return b.audio&&(C4=!0),b.video&&(bo=!0),B2(C,k),V&&V(),C}function C2(a,A){switch(a){case"Starting video failed":case"OverconstrainedError":case"TrackStartError":return new nt(fe.MEDIA_OPTION_INVALID,"".concat(a,": ").concat(A));case"NotFoundError":case"DevicesNotFoundError":return new nt(fe.DEVICE_NOT_FOUND,"".concat(a,": ").concat(A));case"NotSupportedError":return new nt(fe.NOT_SUPPORTED,"".concat(a,": ").concat(A));case"NotReadableError":return new nt(fe.NOT_READABLE,"".concat(a,": ").concat(A));case"InvalidStateError":case"NotAllowedError":case"PERMISSION_DENIED":case"PermissionDeniedError":return new nt(fe.PERMISSION_DENIED,"".concat(a,": ").concat(A));case"ConstraintNotSatisfiedError":return new nt(fe.CONSTRAINT_NOT_SATISFIED,"".concat(a,": ").concat(A));default:return X.error("getUserMedia unexpected error",a),new nt(fe.UNEXPECTED_ERROR,"".concat(a,": ").concat(A))}}function B2(a,A){let l=a.getVideoTracks()[0],g=a.getAudioTracks()[0],C=A.getVideoTracks()[0],m=A.getAudioTracks()[0];m&&(g&&a.removeTrack(g),a.addTrack(m)),C&&(l&&a.removeTrack(l),a.addTrack(C))}let p1=new class extends io{get state(){return this._state}set state(a){a!==this._state&&(this.emit(Ng.STATE_CHANGE,a),this._state=a)}constructor(){super(),$e(this,"_state",Qa.IDLE),$e(this,"isAccessMicrophonePermission",!1),$e(this,"isAccessCameraPermission",!1),$e(this,"lastAccessMicrophonePermission",!1),$e(this,"lastAccessCameraPermission",!1),$e(this,"checkdeviceMatched",!1),$e(this,"deviceInfoMap",new Map),this.init().then(()=>{navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",this.updateDevicesInfo.bind(this)),window.setInterval(()=>{(Ie("ENUMERATE_DEVICES_INTERVAL")||(Ld()||t2()===Vs.HARMONY_OS)&&Od())&&this.updateDevicesInfo()},Ie("ENUMERATE_DEVICES_INTERVAL_TIME"))}).catch(a=>X.error(a.toString()))}async enumerateDevices(a,A){let l=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)throw new nt(fe.NOT_SUPPORTED,"enumerateDevices() not supported.");let g=await navigator.mediaDevices.enumerateDevices(),C=this.checkMediaDeviceInfoIsOk(g),m=!this.isAccessMicrophonePermission&&a,y=!this.isAccessCameraPermission&&A;C.audio&&(m=!1),C.video&&(y=!1);let w=null,b=null,M=null;if(!l&&(m||y)){if(js.isLocked&&(X.debug("[device manager] wait GUM lock"),(await js.lock())(),X.debug("[device manager] GUM unlock")),C4&&(m=!1,this.isAccessMicrophonePermission=!0),bo&&(y=!1,this.isAccessCameraPermission=!0),X.debug("[device manager] check media device permissions",a,A,m,y),m&&y){try{M=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch(k){let V=C2(k.name||k.code||k,k.message);if(V.code===fe.PERMISSION_DENIED)throw V;X.warning("getUserMedia failed in getDevices",V)}this.isAccessCameraPermission=!0,this.isAccessMicrophonePermission=!0}else if(m){try{w=await navigator.mediaDevices.getUserMedia({audio:a})}catch(k){let V=C2(k.name||k.code||k,k.message);if(V.code===fe.PERMISSION_DENIED)throw V;X.warning("getUserMedia failed in getDevices",V)}this.isAccessMicrophonePermission=!0}else if(y){try{b=await navigator.mediaDevices.getUserMedia({video:A})}catch(k){let V=C2(k.name||k.code||k,k.message);if(V.code===fe.PERMISSION_DENIED)throw V;X.warning("getUserMedia failed in getDevices",V)}this.isAccessCameraPermission=!0}X.debug("[device manager] mic permission",a,"cam permission",A)}try{let k=await navigator.mediaDevices.enumerateDevices();return w&&w.getTracks().forEach(V=>V.stop()),b&&b.getTracks().forEach(V=>V.stop()),M&&M.getTracks().forEach(V=>V.stop()),w=null,b=null,M=null,k}catch(k){return w&&w.getTracks().forEach(V=>V.stop()),b&&b.getTracks().forEach(V=>V.stop()),M&&M.getTracks().forEach(V=>V.stop()),w=null,b=null,M=null,new nt(fe.ENUMERATE_DEVICES_FAILED,k.toString()).throw()}}async getRecordingDevices(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,a)).filter(A=>A.kind==="audioinput")}async getCamerasDevices(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!1,!0,a)).filter(A=>A.kind==="videoinput")}async getSpeakers(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,a)).filter(A=>A.kind==="audiooutput")}searchDeviceIdByName(a){let A=null;return this.deviceInfoMap.forEach(l=>{l.device.label===a&&(A=l.device.deviceId)}),A}async getDeviceById(a){let A=(await this.enumerateDevices(!0,!0,!0)).find(l=>l.deviceId===a);if(!A)throw new nt(fe.DEVICE_NOT_FOUND,"deviceId: ".concat(a));return A}async init(){this.state=Qa.INITING;try{await this.updateDevicesInfo(),this.state=Qa.INITEND}catch(a){throw this.state=Qa.IDLE,(typeof isSecureContext=="boolean"?isSecureContext:location.protocol==="https:"||location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"||location.hostname==="::1")?(X.warning("Device Detection functionality cannot start properly.",a.toString()),a):new nt(fe.WEB_SECURITY_RESTRICT,"Your context is limited by web security, please try using https protocol or localhost.")}}async updateDevicesInfo(){let a=await this.enumerateDevices(!0,!0,!0),A=Date.now(),l=[];if(a[0]&&a[0].label&&this.checkdeviceMatched===!1){this.checkdeviceMatched=!0;let C=a.find(y=>y.kind==="audioinput"&&y.deviceId==="default"),m=a.find(y=>y.kind==="audiooutput"&&y.deviceId==="default");C&&m?m.groupId===C.groupId?X.debug("[device-check] default input ".concat(C.label," and output ").concat(m.label," is the same group")):X.debug("[device-check] default input ".concat(C.label," and output ").concat(m.label," is not the same group")):X.debug("[device-check] default input or output not found")}let g=this.checkMediaDeviceInfoIsOk(a);if(a.forEach(C=>{if(!C.deviceId)return;let m=this.deviceInfoMap.get("".concat(C.kind,"_").concat(C.deviceId));if((m?m.state:"INACTIVE")!=="ACTIVE"){let y={initAt:A,updateAt:A,device:C,state:"ACTIVE"};this.deviceInfoMap.set("".concat(C.kind,"_").concat(C.deviceId),y),l.push(y)}m&&(m.updateAt=A)}),this.deviceInfoMap.forEach((C,m)=>{C.state==="ACTIVE"&&C.updateAt!==A&&(C.state="INACTIVE",l.push(C))}),this.state!==Qa.INITEND)return g.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),void(g.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0));l.forEach(C=>{switch(C.device.kind){case"audioinput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(Ng.RECORDING_DEVICE_CHANGED,C);break;case"videoinput":this.lastAccessCameraPermission&&this.isAccessCameraPermission&&this.emit(Ng.CAMERA_DEVICE_CHANGED,C);break;case"audiooutput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(Ng.PLAYOUT_DEVICE_CHANGED,C)}}),g.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),g.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0)}checkMediaDeviceInfoIsOk(a){let A=a.filter(C=>C.kind==="audioinput"),l=a.filter(C=>C.kind==="videoinput"),g={audio:!1,video:!1};for(let C of A)if(C.label&&C.deviceId){g.audio=!0;break}for(let C of l)if(C.label&&C.deviceId){g.video=!0;break}return g}},JR=!1,cA=new class extends io{constructor(){super(...arguments),$e(this,"onAutoplayFailed",void 0),$e(this,"onAudioAutoplayFailed",void 0)}};function p4(){if(JR)return Ie("FLS_AUTOPLAY_EMITS")?(cA.onAutoplayFailed&&cA.onAutoplayFailed(),cA.emit("autoplay-failed")):void 0;{let a=A=>{A.preventDefault(),JR=!1,bC()?document.body.removeEventListener("click",a,!0):(document.body.removeEventListener("touchstart",a,!0),document.body.removeEventListener("mousedown",a,!0))};JR=!0,bC()?document.body.addEventListener("click",a,!0):(document.body.addEventListener("touchstart",a,!0),document.body.addEventListener("mousedown",a,!0)),X.info("detect media autoplay failed, document: https://docs.agora.io/cn/Voice/autoplay_policy_web_ng?platform=Web"),cA.onAutoplayFailed?cA.onAutoplayFailed():cA.onAudioAutoplayFailed?X.warning(`AgoraRTC.onAudioAutoplayFailed has been deprecated in favor of AgoraRTC.onAutoplayFailed. + + Please refer to the Agora document to migrate the newer API, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`):X.warning(`We have detected a media autoplay failed event, and found out that you haven't implemented AgoraRTC.onAutoplayFailed callback yet. + + It will cause audio/video element not playing automatically on some browsers without user interaction, possibly hurting user experiences. + + Please refer to the Agora document to properly handle autoplay failed event, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`),cA.emit("autoplay-failed")}}function Dc(a,A,l,g){if(!a)return;let C=tr.getBaseInfoBySessionId(a);if(!C)return;let m=C.info,y=Date.now(),w=Qn(Qn({},m),{},{vid:m.vid===void 0?0:Number(m.vid),lts:y,elapse:y-C.startTime,cbRegistered:cA.onAutoplayFailed||cA.onAudioAutoplayFailed?1:-1,errorMsg:l,mediaType:A,trackId:g,extend:void 0});tr.send({type:Eo.AUTOPLAY_FAILED,data:w},!0)}let qR=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","error"],va=new class{constructor(){$e(this,"onAutoplayFailed",void 0),$e(this,"elementMap",new Map),$e(this,"elementStateMap",new Map),$e(this,"elementsNeedToResume",[]),$e(this,"sinkIdMap",new Map),$e(this,"autoResumeAfterInterruption",a=>Ft.all(Array.from(this.elementMap.entries()).map(async A=>{let[l,g]=A,C=this.elementStateMap.get(l),m=g.srcObject.getAudioTracks()[0],y=m&&m.readyState;if(X.debug("resume after interrupted, ele: ".concat(C," audio: ").concat(y," ").concat(a)),y==="live"){if(a)return g.pause(),g.play();if(kn.curState==="running")return i2()?(g.pause(),g.play()):C&&C==="paused"?g.play():void 0}}))),$e(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{Array.from(this.elementMap.entries()).forEach(a=>{let[A,l]=a,g=l.srcObject.getAudioTracks()[0];g&&g.readyState==="live"&&(X.debug("auto resume after interruption inside autoResumeAfterInterruptionOnIOS15"),l.pause(),l.play())})}),this.autoResumeAudioElement(),kn.on(Ys.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),kn.on(Ys.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),kn.on(Ys.STATE_CHANGE,()=>{Ma()&&kn.prevState==="suspended"&&kn.curState==="running"&&this.autoResumeAfterInterruption()})}async setSinkID(a,A){let l=this.elementMap.get(a);if(this.sinkIdMap.set(a,A),l)try{await l.setSinkId(A)}catch(g){throw new nt(fe.PERMISSION_DENIED,"can not set sink id: "+g.toString())}}play(a,A,l,g){if(this.elementMap.has(A))return;let C=document.createElement("audio");C.autoplay=!0,C.srcObject=new MediaStream([a]),this.bindAudioElementEvents(A,C),this.elementMap.set(A,C),this.elementStateMap.set(A,Ta.INIT),this.setVolume(A,l);let m=this.sinkIdMap.get(A);if(m)try{C.setSinkId(m).catch(w=>{X.warning("[".concat(A,"] set sink id failed"),w.toString())})}catch(w){X.warning("[".concat(A,"] set sink id failed"),w.toString())}let y=C.play();y&&y.then&&y.catch(w=>{g&&Dc(g,"audio",w.message,A),X.warning("audio element play warning",w.toString()),this.elementMap.has(A)&&w.name==="NotAllowedError"&&(X.warning("detected audio element autoplay failed"),this.elementsNeedToResume.push(C),Fi(()=>{this.onAutoplayFailed&&this.onAutoplayFailed(),p4()}))})}updateTrack(a,A){let l=this.elementMap.get(a);l&&(l.srcObject=new MediaStream([A]))}isPlaying(a){return this.elementMap.has(a)&&this.elementStateMap.get(a)==="playing"}setVolume(a,A){let l=this.elementMap.get(a);l&&(A=Math.max(0,Math.min(100,A)),l.volume=A/100)}getVolume(a){let A=this.elementMap.get(a);return A?A.volume:0}stop(a){let A=this.elementMap.get(a);if(this.sinkIdMap.delete(a),!A)return;let l=this.elementsNeedToResume.indexOf(A);this.elementsNeedToResume.splice(l,1),A.srcObject=null,A.remove(),this.elementMap.delete(a),this.elementStateMap.delete(a)}bindAudioElementEvents(a,A){qR.forEach(l=>{A.addEventListener(l,g=>{let C=this.elementStateMap.get(a),m=g.type==="pause"?"paused":g.type;if(X.debug("[".concat(a,"] audio-element-status change ").concat(C," => ").concat(m)),g.type==="error"){let y=A==null?void 0:A.error;y&&X.error("[".concat(a,"] media error, code: ").concat(y.code,", message: ").concat(y.message))}this.elementStateMap.set(a,m)})})}getPlayerState(a){return this.elementStateMap.get(a)||"uninit"}autoResumeAudioElement(){let a=()=>{this.elementsNeedToResume.forEach(A=>{A.play().then(l=>{X.debug("Auto resume audio element success")}).catch(l=>{X.warning("Auto resume audio element failed!",l)})}),this.elementsNeedToResume=[]};new Ft(A=>{document.body?A():window.addEventListener("load",()=>A())}).then(()=>{bC()?document.body.addEventListener("click",a,!0):(document.body.addEventListener("touchstart",a,!0),document.body.addEventListener("mousedown",a,!0))})}};function J(){return function(a,A,l){let g=l.value;return typeof g=="function"&&(l.value=function(){this._isClosed&&new nt(fe.INVALID_OPERATION,"[".concat(this.getTrackId(),"] cannot operate a closed track")).print("warning",X);for(var C=arguments.length,m=new Array(C),y=0;y{w.then(b).catch(M)}):w}),l}}class f4 extends io{constructor(A){super(),$e(this,"name","VideoProcessorDestination"),$e(this,"ID","0"),$e(this,"_source",void 0),$e(this,"videoContext",void 0),$e(this,"inputTrack",void 0),this.videoContext=A}get kind(){return"video"}get enabled(){return!0}pipe(){throw new nt(fe.NOT_SUPPORTED,"VideoProcessor cannot pipe to any other Processor")}unpipe(){throw new nt(fe.NOT_SUPPORTED,"VideoProcessor cannot unpipe to any other Processor")}enable(){}disable(){}updateInput(A){if(A.context!==this.videoContext)throw new Error(`ProcessorContext passed to VideoTrack.processorDestination doesn't match it's belonging VideoTrack's context. +Probably you are making pipeline like this: +videoTrack1.pipe(processor).pipe(videoTrack2.processorDestination).`);A.track&&A.track!==this.inputTrack&&(this.videoContext.chained=!0,this.inputTrack=A.track,this.emit(Bn.ON_TRACK,A.track))}reset(){this.inputTrack=void 0,this.videoContext.chained=!1,this.emit(Bn.ON_TRACK,void 0)}}class AU extends io{set chained(A){this._chained=A}get chained(){return this._chained}constructor(A,l){super(),$e(this,"constraintsMap",new Map),$e(this,"statsRegistry",[]),$e(this,"usageRegistry",[]),$e(this,"trackId",void 0),$e(this,"direction",void 0),$e(this,"_chained",!1),this.trackId=A,this.direction=l}async getConstraints(){return await rs(this,XA.REQUEST_CONSTRAINTS)}async requestApplyConstraints(A,l){var g;return X.info("processor ".concat(l.name," requestApplyConstraints for ").concat(this.trackId)),A&&this.constraintsMap.set(l,A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(g=this.constraintsMap).call(g)))}async requestRevertConstraints(A){var l;if(this.constraintsMap.has(A))return X.info("processor ".concat(A.name," requestRevertConstraints for ").concat(this.trackId)),this.constraintsMap.delete(A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(l=this.constraintsMap).call(l)))}registerStats(A,l,g){this.statsRegistry.find(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l)||this.statsRegistry.push({processorName:A.name,processorID:A.ID,type:l,cb:g})}unregisterStats(A,l){let g=this.statsRegistry.findIndex(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l);g!==-1&&this.statsRegistry.splice(g,1)}gatherStats(){let A=[];for(let{processorID:l,processorName:g,type:C,cb:m}of this.statsRegistry)try{let y=m();A.push({processorID:l,processorName:g,type:C,stats:y})}catch(y){X.error(new nt(fe.UNEXPECTED_ERROR,y.message))}return A}registerUsage(A,l){this.usageRegistry.find(g=>g.processorID===A.ID&&g.processorName===A.name)||this.usageRegistry.push({processorID:A.ID,processorName:A.name,cb:l})}unregisterUsage(A){let l=this.usageRegistry.findIndex(g=>g.processorID===A.ID&&g.processorName===A.name);l!==-1&&this.usageRegistry.splice(l,1)}async gatherUsage(){let A=[];if(!this.chained)return[];for(let{cb:l}of this.usageRegistry)try{let g=l();g instanceof Ft&&(g=await g),A.push(Qn(Qn({},g),{},{direction:this.direction}))}catch(g){X.error("gather extension usage error",g)}return A}getDirection(){return this.direction}}class _4 extends io{constructor(A){super(),$e(this,"name","AudioProcessorDestination"),$e(this,"ID","0"),$e(this,"inputTrack",void 0),$e(this,"inputNode",void 0),$e(this,"audioProcessorContext",void 0),$e(this,"_source",void 0),this.audioProcessorContext=A}get kind(){return"audio"}get enabled(){return!0}pipe(){throw new nt(fe.NOT_SUPPORTED,"AudioProcessorDestination cannot pipe to any other Processor")}unpipe(){throw new nt(fe.NOT_SUPPORTED,"AudioProcessor cannot unpipe to any other Processor")}enable(){}disable(){}reset(){this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext.chained=!1,this.emit(Bn.ON_TRACK,void 0),this.emit(Bn.ON_NODE,void 0)}updateInput(A){if(A.context!==this.audioProcessorContext)throw new Error(`ProcessorContext passed to AudioTrack.processorDestination doesn't match it's belonging AudioTrack's context. + Probably you are making pipeline like this: audioTrack1.pipe(processor).pipe(audioTrack2.processorDestination).`);A.track&&this.inputTrack!==A.track&&(this.audioProcessorContext.chained=!0,this.inputTrack=A.track,this.emit(Bn.ON_TRACK,this.inputTrack)),A.node&&this.inputNode!==A.node&&(this.audioProcessorContext.chained=!0,this.inputNode=A.node,this.emit(Bn.ON_NODE,this.inputNode))}}class m4 extends io{set chained(A){this._chained=A}get chained(){return this._chained}constructor(A,l,g){super(),$e(this,"constraintsMap",new Map),$e(this,"statsRegistry",[]),$e(this,"audioContext",void 0),$e(this,"trackId",void 0),$e(this,"direction",void 0),$e(this,"usageRegistry",[]),$e(this,"_chained",!1),this.audioContext=A,this.trackId=l,this.direction=g}async getConstraints(){return rs(this,XA.REQUEST_CONSTRAINTS)}getAudioContext(){return this.audioContext}async requestApplyConstraints(A,l){var g;return X.info("processor ".concat(l.name," requestApplyConstraints for ").concat(this.trackId)),A&&this.constraintsMap.set(l,A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(g=this.constraintsMap).call(g)))}async requestRevertConstraints(A){var l;if(this.constraintsMap.has(A))return this.constraintsMap.delete(A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(l=this.constraintsMap).call(l)))}registerStats(A,l,g){this.statsRegistry.find(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l)||this.statsRegistry.push({processorName:A.name,processorID:A.ID,type:l,cb:g})}unregisterStats(A,l){let g=this.statsRegistry.findIndex(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l);g!==-1&&this.statsRegistry.splice(g,1)}gatherStats(){let A=[];for(let{processorID:l,processorName:g,type:C,cb:m}of this.statsRegistry)try{let y=m();A.push({processorID:l,processorName:g,type:C,stats:y})}catch(y){X.error(new nt(fe.UNEXPECTED_ERROR,y.message))}return A}registerUsage(A,l){this.usageRegistry.find(g=>g.processorID===A.ID&&g.processorName===A.name)||this.usageRegistry.push({processorID:A.ID,processorName:A.name,cb:l})}unregisterUsage(A){let l=this.usageRegistry.findIndex(g=>g.processorID===A.ID&&g.processorName===A.name);l!==-1&&this.usageRegistry.splice(l,1)}async gatherUsage(){let A=[];if(!this.chained)return[];for(let{cb:l}of this.usageRegistry)try{let g=l();g instanceof Ft&&(g=await g),A.push(Qn(Qn({},g),{},{direction:this.direction}))}catch(g){X.error("gather extension usage error",g)}return A}getDirection(){return this.direction}}class B4 extends io{get isPlayed(){return!0}get isFreeze(){return!1}constructor(){super(),$e(this,"context",void 0),$e(this,"processSourceNode",void 0),$e(this,"outputTrack",void 0),$e(this,"processedNode",void 0),$e(this,"clonedTrack",void 0),$e(this,"outputNode",void 0),this.outputNode=new Rs}setVolume(){}createOutputTrack(){throw new nt(fe.NOT_SUPPORTED,"can not create output MediaStreamTrack when WebAudio disabled")}getOriginVolumeLevel(){return 0}getAccurateVolumeLevel(){return 0}stopGetAudioBuffer(){}startGetAudioBuffer(){}play(){}stop(){}destroy(){}updateTrack(){}updateOriginTrack(){}createMediaStreamSourceNode(){}}class Rs{disconnect(){}connect(){}}function ao(a){return new Ft((A,l)=>{let g=!1,C=document.createElement("video");C.setAttribute("autoplay",""),C.setAttribute("muted",""),C.muted=!0,C.autoplay=!0,C.setAttribute("playsinline",""),C.setAttribute("style","position: fixed; top: 0; left: 0; width: 1px; height: 1px"),document.body.appendChild(C);let m=Ma()?"canplay":"playing";C.addEventListener(m,()=>{let y=C.videoWidth,w=C.videoHeight;!y&&uo()||(g=!0,C.srcObject=null,C.remove(),A([y,w]))}),C.srcObject=new MediaStream([a]),C.play().catch(Ia),setTimeout(()=>{g||(C.srcObject=null,C.remove(),A([C.videoWidth,C.videoHeight]))},4e3)})}function WR(a){let A={};a.facingMode&&(A.facingMode=a.facingMode),a.cameraId&&(A.deviceId={exact:a.cameraId});let l=ya(a.encoderConfig);return l.width!=null&&(A.width=l.width),l.height!=null&&(A.height=l.height),!qb()&&l.frameRate&&(A.frameRate=l.frameRate),HP()&&typeof A.frameRate=="object"&&(A.frameRate.max=60),uo()&&(A.frameRate={ideal:30,max:30}),A}function ul(a){let A={};return qb()||(a.AGC!==void 0&&(A.autoGainControl=a.AGC),a.AEC!==void 0&&(A.echoCancellation=a.AEC),a.ANS!==void 0&&(A.noiseSuppression=a.ANS,Tg()&&a.ANS&&(A.googHighpassFilter=a.ANS))),A}function Uf(a){let A=ul(a);if(a.encoderConfig){let l=Pf(a.encoderConfig);A.channelCount=l.stereo?2:1,A.sampleRate=l.sampleRate,A.sampleSize=l.sampleSize}return a.microphoneId&&(A.deviceId={exact:a.microphoneId}),Ld()&&(A.sampleRate=void 0),A}let xf=a=>{let A=a._encoderConfig;if(!A)return;let{frameRate:l,width:g,height:C}=a.getMediaStreamTrackSettings(),{frameRate:m=l,width:y=g,height:w=C}=A;if(!m||!y||!w)return;y=a2(y),w=a2(w),m=a2(m);let{max:b,min:M}=function(q,ce,oe){let le=200*Math.pow(oe/15,.6)*Math.pow(q*ce/640/360,.75);return{min:Math.floor(le),max:Math.floor(4*le)}}(y,w,m),{bitrateMax:k,bitrateMin:V}=A||{};k||X.debug("calculate bitrate: [w: ".concat(y,", h: ").concat(w,", fps: ").concat(m,"] => [brMax: ").concat(k,", brMin: ").concat(V,"]"));let{maxFramerate:K}=Ie("ENCODER_CONFIG_LIMIT");return K&&typeof K=="number"&&(m=Math.min(m,K)),{frameRate:m,bitrateMax:k||b,bitrateMin:V||M,scaleResolutionDownBy:1,scale:0}},XR=async(a,A,l)=>await(async(g,C,m)=>{let y=function(M){let k=[];for(let V=0;V{let A=document.createElement("canvas");return A.width=2,A.height=2,new Ft((l,g)=>{A.toBlob(async C=>{if(A.remove(),C){let m=await S4(C);l({buffer:m,width:A.width,height:A.height})}else g(new nt(fe.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},a,1)})},S4=async a=>{let A=await a.arrayBuffer();return new Uint8Array(A)};var $R,R4,Ff,y4,ZR,Q4,ey,cU,T4,ty,yr,qt,qe,Js,Si,w4,Gf,D4,eo,ry,b4,N4,O4,L4,M4,Yo,S2,Hi,gl,iy,lU,dU,uU,El,ny,Vf,gU,Kf,lh,Da;let xt=($R=Sr({argsMap:(a,A)=>[a.getTrackId(),A],throttleTime:300}),R4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),Ff=J(),y4=rh("LocalAudioTrack","_enabledMutex"),ZR=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),Q4=J(),ey=rh("LocalAudioTrack","_enabledMutex"),cU=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),T4=J(),ty=J(),yr=J(),qt=Sr({argsMap:a=>[a.getTrackId()]}),qe=J(),Js=Sr({argsMap:a=>[a.getTrackId()]}),Si=J(),w4=Sr({argsMap:a=>[a.getTrackId()]}),Gf=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),D4=Sr({argsMap:a=>[a.getTrackId()]}),Li((eo=class extends UC{get _source(){return this.initWebAudio()}set _source(a){this._trackSource=a}get processorContext(){return this._processorContext||(this._processorContext=this.initProcessor().processorContext),this._processorContext}get processorDestination(){return this._processorDestination||(this._processorDestination=this.initProcessor().processorDestination),this._processorDestination}get isPlaying(){return this._useAudioElement?va.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"LocalAudioTrack"}constructor(a,A,l,g){super(a,l),$e(this,"trackMediaType",PC.AUDIO),$e(this,"_encoderConfig",void 0),$e(this,"_trackSource",void 0),$e(this,"metadata",[]),$e(this,"_enabled",!0),$e(this,"_volume",100),$e(this,"_useAudioElement",!0),$e(this,"_bypassWebAudio",!1),$e(this,"processor",void 0),$e(this,"_processorContext",void 0),$e(this,"_processorDestination",void 0),$e(this,"_getOriginVolumeLevel",void 0),this._encoderConfig=A,this._getOriginVolumeLevel=!!g,this._trackSource=new B4,Ie("DISABLE_WEBAUDIO")&&(this._bypassWebAudio=!0),Ie("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1),$s()&&!vc?setTimeout(()=>this.initWebAudio()):this.initWebAudio()}setVolume(a){Rn(a,"volume",0,1e3),this._volume=a,this._source.setVolume(a/100),this._useAudioElement&&va.setVolume(this.getTrackId(),a);try{if(this._bypassWebAudio)return void X.debug("[".concat(this.getTrackId(),"] setVolume returned because no pass through WebAudio."));let A=this._source.createOutputTrack();this._mediaStreamTrack!==A&&(this._mediaStreamTrack=A,Wn(this,nr.NEED_REPLACE_TRACK,this).then(()=>{X.debug("[".concat(this.getTrackId(),"] replace web audio track success"))}).catch(l=>{X.warning("[".concat(this.getTrackId(),"] replace web audio track failed"),l)}))}catch{}}getVolumeLevel(){return this._muted&&this.enabled&&this._getOriginVolumeLevel?this._source.getOriginVolumeLevel():this._source.getAccurateVolumeLevel()}async setPlaybackDevice(a){if(!this._useAudioElement||!ra())throw new nt(fe.NOT_SUPPORTED,"your browser does not support setting the audio output device");await va.setSinkID(this.getTrackId(),a)}async setEnabled(a,A,l){return this._setEnabled(a,A,l)}async _setEnabled(a,A,l){if(!l){if(a===this._enabled)return;this.stateCheck("enabled",a)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),a),a){this._originMediaStreamTrack.enabled=!0;try{l||(this._enabled=!0),await Wn(this,nr.NEED_ENABLE_TRACK,this),X.info("[".concat(this.getTrackId(),"] setEnabled to ").concat(a," success"))}catch(g){throw l||(this._enabled=!1),X.error("[".concat(this.getTrackId(),"] setEnabled to true error"),g.toString()),g}}else{this._originMediaStreamTrack.enabled=!1,l||(this._enabled=!1);try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(g){throw l||(this._enabled=!0),X.error("[".concat(this.getTrackId(),"] setEnabled to false error"),g.toString()),g}}}async setMuted(a){a!==this._muted&&(this.stateCheck("muted",a),this._muted=a,this._originMediaStreamTrack.enabled=!a,X.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(a)),a?await Wn(this,nr.NEED_MUTE_TRACK,this):await Wn(this,nr.NEED_UNMUTE_TRACK,this))}getStats(){return Qi(()=>{X.warning("[deprecated] LocalAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalAudioStats instead")},"localAudioTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},YR)}setAudioFrameCallback(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!a)return this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(A),this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),this._source.on(WA.ON_AUDIO_BUFFER,l=>a(l))}play(){X.debug("[".concat(this.getTrackId(),"] start audio playback")),this._useAudioElement?(X.debug("[".concat(this.getTrackId(),"] start audio playback in element")),va.play(this._mediaStreamTrack,this.getTrackId(),this._volume)):this._source.play()}stop(){X.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._useAudioElement?va.stop(this.getTrackId()):this._source.stop()}close(){super.close(),this._processorDestination&&this.unbindProcessorDestinationEvents(this._processorDestination),this._processorContext&&this.unbindProcessorContextEvents(this._processorContext),this.unpipe(),this._processorDestination&&this._processorDestination._source&&this._processorDestination._source.unpipe(),this._source.destroy()}_updatePlayerSource(){let a=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];X.debug("[".concat(this.getTrackId(),"] update player source track")),a&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&va.updateTrack(this.getTrackId(),this._mediaStreamTrack)}async _updateOriginMediaStreamTrack(a,A){this._originMediaStreamTrack!==a&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),A&&this._originMediaStreamTrack.stop()),a.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=a,this._muted&&(this._originMediaStreamTrack.enabled=!1),this.processor&&this._processorContext&&this.processor.updateInput({track:a,context:this._processorContext}),this._mediaStreamTrack!==this._source.outputTrack?(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this)):this._source.updateTrack(this._originMediaStreamTrack),this._getOriginVolumeLevel&&this._source.updateOriginTrack(a))}renewMediaStreamTrack(a){return Ft.resolve(void 0)}pipe(a){if(this._bypassWebAudio)throw new nt(fe.INVALID_OPERATION,"Can not process AudioTrack when bypassWebAudio set to true.");if(this.processor===a)return a;if(a._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(a.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=a,this.processor._source=this,a.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),a}unpipe(){var a;if(!this.processor)return;let A=this.processor;(a=this._source.processSourceNode)===null||a===void 0||a.disconnect(),this.processor._source=!1,this.processor=void 0,A.reset()}bindProcessorDestinationEvents(a){a.on(Bn.ON_TRACK,async A=>{A?A!==this._mediaStreamTrack&&(this._mediaStreamTrack=A,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(A),await Wn(this,nr.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this))}),a.on(Bn.ON_NODE,A=>{this._source.processedNode=A})}unbindProcessorDestinationEvents(a){a.removeAllListeners(Bn.ON_TRACK),a.removeAllListeners(Bn.ON_NODE)}bindProcessorContextEvents(a){a.on(XA.REQUEST_CONSTRAINTS,async A=>{A(this._originMediaStreamTrack.getSettings())})}unbindProcessorContextEvents(a){a.removeAllListeners(XA.REQUEST_CONSTRAINTS)}initWebAudio(){return this._trackSource instanceof B4&&(this._trackSource=new I4(this._mediaStreamTrack,!1,this._getOriginVolumeLevel?this._mediaStreamTrack:void 0)),this._trackSource}initProcessor(){let a=new m4(this._source.context,this.getTrackId(),"local"),A=new _4(a);return this._processorContext=a,this._processorDestination=A,this.bindProcessorContextEvents(a),this.bindProcessorDestinationEvents(A),this._source.on(WA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:a})}),this._useAudioElement&&(this._useAudioElement=!1,this.isPlaying&&(va.stop(this.getTrackId()),this._source.play()),Wn(this,nr.NEED_REPLACE_MIXING_TRACK,this).then(()=>{X.debug("[".concat(this.getTrackId(),"] replace from origin track to web audio track success"))}).catch(l=>{X.warning("[".concat(this.getTrackId(),"] replace from origin track to web audio track failed"),l)})),{processorContext:a,processorDestination:A}}}).prototype,"setVolume",[$R],Object.getOwnPropertyDescriptor(eo.prototype,"setVolume"),eo.prototype),Li(eo.prototype,"setPlaybackDevice",[R4,Ff],Object.getOwnPropertyDescriptor(eo.prototype,"setPlaybackDevice"),eo.prototype),Li(eo.prototype,"setEnabled",[y4,ZR,Q4],Object.getOwnPropertyDescriptor(eo.prototype,"setEnabled"),eo.prototype),Li(eo.prototype,"setMuted",[ey,cU,T4],Object.getOwnPropertyDescriptor(eo.prototype,"setMuted"),eo.prototype),Li(eo.prototype,"getStats",[ty],Object.getOwnPropertyDescriptor(eo.prototype,"getStats"),eo.prototype),Li(eo.prototype,"setAudioFrameCallback",[yr],Object.getOwnPropertyDescriptor(eo.prototype,"setAudioFrameCallback"),eo.prototype),Li(eo.prototype,"play",[qt,qe],Object.getOwnPropertyDescriptor(eo.prototype,"play"),eo.prototype),Li(eo.prototype,"stop",[Js,Si],Object.getOwnPropertyDescriptor(eo.prototype,"stop"),eo.prototype),Li(eo.prototype,"close",[w4],Object.getOwnPropertyDescriptor(eo.prototype,"close"),eo.prototype),Li(eo.prototype,"pipe",[Gf],Object.getOwnPropertyDescriptor(eo.prototype,"pipe"),eo.prototype),Li(eo.prototype,"unpipe",[D4],Object.getOwnPropertyDescriptor(eo.prototype,"unpipe"),eo.prototype),eo),gn=(ry=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),b4=J(),N4=rh("MicrophoneAudioTrack","_enabledMutex"),O4=Sr({argsMap:(a,A,l)=>[a.getTrackId(),A,l]}),L4=J(),M4=Sr({argsMap:a=>[a.getTrackId()]}),Li((Yo=class extends xt{get __className__(){return"MicrophoneAudioTrack"}constructor(a,A,l,g){super(a,A.encoderConfig?Pf(A.encoderConfig):{},g,Ie("GET_VOLUME_OF_MUTED_AUDIO_TRACK")),$e(this,"_config",void 0),$e(this,"_deviceName","default"),$e(this,"_constraints",void 0),$e(this,"_originalConstraints",void 0),$e(this,"_enabled",!0),this._config=A,this._constraints=l,this._originalConstraints=l,this._deviceName=a.label,typeof A.bypassWebAudio=="boolean"&&(this._bypassWebAudio=A.bypassWebAudio),(i2()||SR())&&kn.bindInterruptDetectorTrack(this)}async setDevice(a){if(X.info("[".concat(this.getTrackId(),"] start set device to ").concat(a)),this._enabled)try{let A=await p1.getDeviceById(a),l={};l.audio=Qn({},this._constraints),l.audio.deviceId={exact:a},this._originMediaStreamTrack.stop();let g=null;try{g=await z1(l,this.getTrackId())}catch(C){throw X.error("[".concat(this.getTrackId(),"] setDevice failed"),C.toString()),g=await z1({audio:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(g.getAudioTracks()[0],!1),C}await this._updateOriginMediaStreamTrack(g.getAudioTracks()[0],!1),this._deviceName=A.label,this._config.microphoneId=a,this._constraints.deviceId={exact:a}}catch(A){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),A.toString()),A}else try{let A=await p1.getDeviceById(a);this._deviceName=A.label,this._config.microphoneId=a,this._constraints.deviceId={exact:a}}catch(A){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),A.toString()),A}X.info("[".concat(this.getTrackId(),"] set device to ").concat(a," success"))}async setEnabled(a,A,l){if(A)return X.debug("[".concat(this.getTrackId(),"] setEnabled false (do not close microphone)")),await super._setEnabled(a);if(!l){if(a===this._enabled)return;this.stateCheck("enabled",a)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),a),Ie("AUTO_RESET_AUDIO_ROUTE")&&(Ma()||Hl())){let y=navigator.audioSession;y&&(a||(y.type="playback"),y.type="auto")}if(!a){var g;this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop(),(g=this._source.clonedTrack)===null||g===void 0||g.stop(),l||(this._enabled=!1);try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(y){throw X.error("[".concat(this.getTrackId(),"] setEnabled false failed"),y.toString()),y}return}let C=Qn({},this._constraints),m=p1.searchDeviceIdByName(this._deviceName);m&&!C.deviceId&&(C.deviceId=m);try{l||(this._enabled=!0);let y=await z1({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(y.getAudioTracks()[0],!1),await Wn(this,nr.NEED_ENABLE_TRACK,this)}catch(y){throw l||(this._enabled=!1),X.error("[".concat(this.getTrackId(),"] setEnabled true failed"),y.toString()),y}X.info("[".concat(this.getTrackId(),"] setEnabled success"))}close(){super.close(),(i2()||SR())&&kn.unbindInterruptDetectorTrack(this),ah.some(a=>function(A){return"__className__"in A&&A.__className__==="MicrophoneAudioTrack"}(a))||ch&&ch()&&(tr.reportApiInvoke(null,{name:"BG_AUDIO_TAG_RESTART",options:{},tag:Gn.TRACER}).onSuccess(),X.debug("restart background audio tag success"))}onTrackEnded(){if((Ma()||Hl())&&this._enabled&&!this._isClosed&&kn.duringInterruption){let a=async()=>{kn.off(Ys.IOS_INTERRUPTION_END,a),this._enabled&&!this._isClosed&&(X.debug("[".concat(this.getTrackId(),"] try capture microphone media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};kn.on(Ys.IOS_INTERRUPTION_END,a)}else X.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(Du.TRACK_ENDED)}async renewMediaStreamTrack(a){let A=a||this._constraints,l=p1.searchDeviceIdByName(this._deviceName);if(l&&!A.deviceId&&(A.deviceId=l),this._constraints=A,this._enabled){this._originMediaStreamTrack.stop();let g=await z1({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(g.getAudioTracks()[0],!0)}}bindProcessorContextEvents(a){super.bindProcessorContextEvents(a),a.on(XA.REQUEST_UPDATE_CONSTRAINTS,async(A,l,g)=>{try{let C=Object.assign({},this._originalConstraints,...A);await this.renewMediaStreamTrack(C),l()}catch(C){g(C)}})}unbindProcessorContextEvents(a){super.unbindProcessorContextEvents(a),a.removeAllListeners(XA.REQUEST_UPDATE_CONSTRAINTS)}}).prototype,"setDevice",[ry,b4],Object.getOwnPropertyDescriptor(Yo.prototype,"setDevice"),Yo.prototype),Li(Yo.prototype,"setEnabled",[N4,O4,L4],Object.getOwnPropertyDescriptor(Yo.prototype,"setEnabled"),Yo.prototype),Li(Yo.prototype,"close",[M4],Object.getOwnPropertyDescriptor(Yo.prototype,"close"),Yo.prototype),Yo),xC=(S2=Sr({argsMap:(a,A)=>[a.getTrackId(),A,a.duration]}),Hi=J(),gl=Sr({argsMap:a=>[a.getTrackId()]}),iy=J(),lU=Sr({argsMap:a=>[a.getTrackId()]}),dU=J(),uU=Sr({argsMap:a=>[a.getTrackId()]}),El=J(),ny=Sr({argsMap:a=>[a.getTrackId()]}),Vf=J(),gU=Sr({argsMap:a=>[a.getTrackId()]}),Kf=Sr({argsMap:a=>[a.getTrackId()]}),lh=J(),Li((Da=class extends xt{get __className__(){return"BufferSourceAudioTrack"}constructor(a,A,l,g){super(A.createOutputTrack(),l,g),$e(this,"source",void 0),$e(this,"_bufferSource",void 0),this._useAudioElement=!1,this.source=a,this._bufferSource=A,this._bufferSource.on(WA.AUDIO_SOURCE_STATE_CHANGE,C=>{this.safeEmit(Du.SOURCE_STATE_CHANGE,C)});try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}}get currentState(){return this._bufferSource.currentState}get duration(){return this._bufferSource.duration}get playbackSpeed(){return this._bufferSource.playbackSpeed}getCurrentTime(){return this._bufferSource.currentTime}startProcessAudioBuffer(a){a&&this._bufferSource.updateOptions(a),this._bufferSource.startProcessAudioBuffer()}pauseProcessAudioBuffer(){this._bufferSource.pauseProcessAudioBuffer()}seekAudioBuffer(a){this._bufferSource.seekAudioBuffer(a)}resumeProcessAudioBuffer(){this._bufferSource.resumeProcessAudioBuffer()}stopProcessAudioBuffer(){this._bufferSource.stopProcessAudioBuffer()}close(){this.source=null,this._bufferSource.destroy(),super.close()}setAudioBufferPlaybackSpeed(a){Rn(a,"speed",0),this._bufferSource.setAudioBufferPlaybackSpeed(a)}}).prototype,"startProcessAudioBuffer",[S2,Hi],Object.getOwnPropertyDescriptor(Da.prototype,"startProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"pauseProcessAudioBuffer",[gl,iy],Object.getOwnPropertyDescriptor(Da.prototype,"pauseProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"seekAudioBuffer",[lU,dU],Object.getOwnPropertyDescriptor(Da.prototype,"seekAudioBuffer"),Da.prototype),Li(Da.prototype,"resumeProcessAudioBuffer",[uU,El],Object.getOwnPropertyDescriptor(Da.prototype,"resumeProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"stopProcessAudioBuffer",[ny,Vf],Object.getOwnPropertyDescriptor(Da.prototype,"stopProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"close",[gU],Object.getOwnPropertyDescriptor(Da.prototype,"close"),Da.prototype),Li(Da.prototype,"setAudioBufferPlaybackSpeed",[Kf,lh],Object.getOwnPropertyDescriptor(Da.prototype,"setAudioBufferPlaybackSpeed"),Da.prototype),Da);class Os extends xt{get __className__(){return"MixingAudioTrack"}get isActive(){for(let A of this.trackList)if(A._enabled&&!A._isClosed&&!A.muted)return!0;return!1}constructor(){let A=wa().createMediaStreamDestination();super(A.stream.getAudioTracks()[0],void 0,yn(8,"track-mix-")),$e(this,"trackList",void 0),$e(this,"destNode",void 0),this._useAudioElement=!1;try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}this.destNode=A,this.trackList=[]}hasAudioTrack(A){return this.trackList.indexOf(A)!==-1}addAudioTrack(A){this.trackList.indexOf(A)===-1?(X.debug("add ".concat(A.getTrackId()," to mixing track")),A._source.outputNode.connect(this.destNode),this.trackList.push(A),this.updateEncoderConfig()):X.debug("track ".concat(A.getTrackId()," is already added"))}removeAudioTrack(A){if(this.trackList.indexOf(A)!==-1){X.debug("remove ".concat(A.getTrackId()," from mixing track"));try{A._source.outputNode.disconnect(this.destNode)}catch{}sl(this.trackList,A),this.updateEncoderConfig()}}updateEncoderConfig(){let A={};this.trackList.forEach(l=>{l._encoderConfig&&((l._encoderConfig.bitrate||0)>(A.bitrate||0)&&(A.bitrate=l._encoderConfig.bitrate),(l._encoderConfig.sampleRate||0)>(A.sampleRate||0)&&(A.sampleRate=l._encoderConfig.sampleRate),(l._encoderConfig.sampleSize||0)>(A.sampleSize||0)&&(A.sampleSize=l._encoderConfig.sampleSize),l._encoderConfig.stereo&&(A.stereo=!0))}),this._encoderConfig=A}_updateRtpTransceiver(A){this._rtpTransceiver!==A&&(this._rtpTransceiver=A,this.trackList.forEach(l=>{l instanceof Os?l.emit(Wl.TRANSCEIVER_UPDATED,A):l._updateRtpTransceiver(A)}))}}class YJ extends sU{set currentState(A){A!==this._currentState&&(this._currentState=A,this.safeEmit(WA.AUDIO_SOURCE_STATE_CHANGE,this._currentState))}get currentState(){return this._currentState}constructor(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),$e(this,"audioBuffer",void 0),$e(this,"sourceNode",void 0),$e(this,"startPlayTime",0),$e(this,"startPlayOffset",0),$e(this,"pausePlayTime",0),$e(this,"options",void 0),$e(this,"currentLoopCount",0),$e(this,"currentPlaybackSpeed",100),$e(this,"_currentState","stopped"),this.audioBuffer=A,this.options=l,this.startPlayOffset=this.options.startPlayTime||0}createWebAudioDiagram(){return this.context.createGain()}get duration(){return this.audioBuffer?this.audioBuffer.duration:0}get playbackSpeed(){return this.currentPlaybackSpeed}get currentTime(){return this.audioBuffer?this.currentState==="stopped"?0:this.currentState==="paused"?this.pausePlayTime:((this.context.currentTime-this.startPlayTime)*(this.playbackSpeed/100)+this.startPlayOffset)%this.audioBuffer.duration:0}updateOptions(A){this.currentState==="stopped"?(this.options=A,this.startPlayOffset=this.options.startPlayTime||0):X.warning("can not set audio source options")}startProcessAudioBuffer(){this.sourceNode&&this.stopProcessAudioBuffer(),this.sourceNode=this.createSourceNode(),this.startSourceNode(),this.currentState="playing"}pauseProcessAudioBuffer(){this.sourceNode&&this.currentState==="playing"&&(this.pausePlayTime=this.currentTime,this.sourceNode.onended=null,this.sourceNode.stop(),this.sourceNode.buffer=null,this.sourceNode=this.createSourceNode(),this.currentState="paused")}seekAudioBuffer(A){this.sourceNode&&(this.sourceNode.onended=null,this.currentState==="playing"&&this.sourceNode.stop(),this.sourceNode=this.createSourceNode(),this.currentState==="playing"?(this.startPlayOffset=A,this.startSourceNode()):this.currentState==="paused"&&(this.pausePlayTime=A))}resumeProcessAudioBuffer(){this.currentState==="paused"&&this.sourceNode&&(this.startPlayOffset=this.pausePlayTime,this.pausePlayTime=0,this.startSourceNode(),this.currentState="playing")}stopProcessAudioBuffer(){if(this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop()}catch{}this.reset()}}destroy(){this.audioBuffer=null,super.destroy()}setAudioBufferPlaybackSpeed(A){this.sourceNode&&(this.currentState==="playing"&&(this.startPlayOffset=this.currentTime,this.startPlayTime=this.context.currentTime),this.sourceNode.playbackRate.value=A/100),this.currentPlaybackSpeed=A}startSourceNode(){this.sourceNode&&this.sourceNode.buffer&&(this.sourceNode.start(0,this.startPlayOffset),this.startPlayTime=this.context.currentTime,this.sourceNode.onended=this.handleSourceNodeEnded.bind(this))}createSourceNode(){let A=this.context.createBufferSource();return A.buffer=this.audioBuffer,A.loop=!!this.options.loop,A.connect(this.outputNode),A.playbackRate.value=this.currentPlaybackSpeed/100,A}handleSourceNodeEnded(){if(this.currentLoopCount+=1,this.options.cycle&&this.options.cycle>this.currentLoopCount)return this.startPlayOffset=0,this.sourceNode=void 0,void this.startProcessAudioBuffer();this.reset()}reset(){this.startPlayOffset=this.options.startPlayTime||0,this.currentState="stopped",this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=void 0),this.currentLoopCount=0}}let dh=new Map;function R2(a,A){if(a.length===0||A.length===0)return 1/0;let l=NR(a),g=NR(A);return Math.floor(g/l)}class $1{get rendFrameRate(){let A=Math.max(1,R2(this._render_interframe_delays_sizes,this._render_interframe_delays));return Math.floor(1e3/A)}get videoElementStatus(){return this._isInPage?this._videoElementStatus:Ta.DESTROYED}set videoElementStatus(A){A!==this._videoElementStatus&&(X.debug("[".concat(this.trackId,"] video-element-status change ").concat(this._videoElementStatus," => ").concat(A)),this._videoElementStatus=A)}get videoState(){return this._videoState}set videoState(A){var l;A!==this._videoState&&(this._videoState=A,(l=this.onVideoStateChanged)===null||l===void 0||l.call(this,this.videoState))}constructor(A){$e(this,"trackId",void 0),$e(this,"config",void 0),$e(this,"onFirstVideoFrameDecoded",void 0),$e(this,"onFirstVideoFrameRender",void 0),$e(this,"onVideoBufferReady",void 0),$e(this,"onVideoStateChanged",void 0),$e(this,"freezeTimeCounterList",[]),$e(this,"renderFreezeAccTime",0),$e(this,"renderFreezeAccTime2",0),$e(this,"isKeepLastFrame",!1),$e(this,"isDestroyed",!1),$e(this,"timeUpdatedCount",0),$e(this,"freezeTime",0),$e(this,"playbackTime",0),$e(this,"lastTimeUpdatedTime",0),$e(this,"autoplayFailed",!1),$e(this,"videoTrack",void 0),$e(this,"videoElement",void 0),$e(this,"cacheVideoElement",void 0),$e(this,"cancelRVFId",void 0),$e(this,"internal",!1),$e(this,"_render_interframe_delays",[]),$e(this,"_render_interframe_delays_sizes",[]),$e(this,"_videoState",Vi.VideoStateStopped),$e(this,"videoElementCheckInterval",void 0),$e(this,"videoElementFreezeTimeout",void 0),$e(this,"_videoElementStatus",Ta.NONE),$e(this,"_isInPage",!0),$e(this,"isGettingVideoDimensions",!1),$e(this,"startGetVideoDimensions",()=>{let l=()=>{if(this.isGettingVideoDimensions=!0,this.videoElement.videoWidth*this.videoElement.videoHeight>4)return X.debug("[".concat(this.trackId,"] current video dimensions:"),this.videoElement.videoWidth,this.videoElement.videoHeight),void(this.isGettingVideoDimensions=!1);setTimeout(l,500)};!this.isGettingVideoDimensions&&l()}),$e(this,"autoResumeAfterInterruption",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&kn.curState==="running"&&(X.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(_f())),jP()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),$e(this,"handleVideoEvents",l=>{switch(l.type){case"play":case"playing":l.type==="play"&&X.debug("[".concat(this.trackId,"] video element status: play")),this.startGetVideoDimensions(),this.videoElementStatus=Ta.PLAYING;break;case"loadeddata":if(this.videoState=Vi.VideoStateStarting,this.onFirstVideoFrameRender&&this.onFirstVideoFrameRender(),this.onFirstVideoFrameDecoded&&this.onFirstVideoFrameDecoded(),this.cacheVideoElement){try{this.cacheVideoElement.srcObject=null,this.cacheVideoElement.remove()}catch{}this.cacheVideoElement=void 0}break;case"canplay":this.videoElementStatus=Ta.CANPLAY;break;case"stalled":this.videoElementStatus=Ta.STALLED;break;case"suspend":this.videoElementStatus=Ta.SUSPEND;break;case"pause":this.videoElementStatus=Ta.PAUSED,Ma()||Hl()||$s()&&this.autoplayFailed||!this.videoTrack||this.videoTrack.readyState!=="live"||(X.debug("[track-".concat(this.trackId,"] video element paused, auto resume")),this.videoElement.play());break;case"waiting":this.videoElementStatus=Ta.WAITING;break;case"abort":this.videoElementStatus=Ta.ABORT;break;case"ended":this.videoElementStatus=Ta.ENDED;break;case"emptied":this.videoElementStatus=Ta.EMPTIED;break;case"error":{let g=this.videoElement.error;g&&(this.videoElementStatus=Ta.ERROR,X.error("[".concat(this.trackId,"] media error: ").concat(g.message," (").concat(g.code,")")));break}case"timeupdate":{let g=performance.now();if(this.timeUpdatedCount+=1,this.onVideoBufferReady&&this.timeUpdatedCount>Ie("BUFFER_READY_FRAMES")&&this.onVideoBufferReady(),this.timeUpdatedCount<10)return void(this.lastTimeUpdatedTime=g);let C=g-this.lastTimeUpdatedTime,m=this.lastTimeUpdatedTime;if(this.lastTimeUpdatedTime=g,f1.lastVisibleTimeIe("VIDEO_FREEZE_DURATION")&&(this.freezeTime+=C),this.playbackTime+=C;this.playbackTime>=6e3;){this.playbackTime-=6e3;let y=Math.min(6e3,this.freezeTime);this.freezeTimeCounterList.push(y),this.freezeTime=Math.max(0,this.freezeTime-6e3)}break}}}),$e(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&(X.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(_f())),jP()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),this.trackId=A.trackId,this.config=A,A.element instanceof HTMLVideoElement?this.videoElement=A.element:this.videoElement=document.createElement("video"),kn.on(Ys.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),kn.on(Ys.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16)}getVideoElement(){return this.videoElement}getContainerElement(){var A;return(A=this.videoElement.parentElement)!==null&&A!==void 0?A:void 0}updateConfig(A){this.config=A,this.trackId=A.trackId,A.element!==this.videoElement&&(this.destroy(),this.videoElement=A.element),this.videoTrack&&this.initVideoElement()}updateVideoTrack(A){this.videoTrack!==A&&(this.videoTrack=A,this.initVideoElement())}play(A){let l=this.videoElement.play();l&&l.catch&&l.catch(C=>{A&&Dc(A,"video",C.message,this.trackId),C.name==="NotAllowedError"?(X.warning("detected video element autoplay failed",C),this.autoplayFailed=!0,this.handleAutoPlayFailed()):X.warning("[".concat(this.trackId,"] play warning: "),C)});let g=Wi();if((g.name==="Safari"&&Number(g.version)===15||i2())&&l&&l.then){let C=()=>{this.config.mirror&&!this.config.noStyle&&(this.videoElement.style.transform="rotateY(180deg)")};l.then(C).catch(C)}}getCurrentFrame(){let A=document.createElement("canvas");A.width=this.videoElement.videoWidth,A.height=this.videoElement.videoHeight;let l=A.getContext("2d");if(!l)return X.error("create canvas context failed!"),new ImageData(2,2);l.drawImage(this.videoElement,0,0,A.width,A.height);let g=l.getImageData(0,0,A.width,A.height);return A.remove(),g}async getCurrentFrameToUint8Array(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,g=document.createElement("canvas");g.width=this.videoElement.videoWidth,g.height=this.videoElement.videoHeight;let C=g.getContext("2d");return C?(C.drawImage(this.videoElement,0,0,g.width,g.height),new Ft((m,y)=>{g.toBlob(async w=>{if(g.remove(),w){let b=await S4(w);m({buffer:b,width:g.width,height:g.height})}else y(new nt(fe.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},A,l<0?.1:l>1?1:l)})):await zR(A)}destroy(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.isDestroyed=!0,kn.off(Ys.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),kn.off(Ys.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),A?this.videoElement.pause():this.videoElement.srcObject=null,this.resetVideoElement(),this.freezeTimeCounterList=[],this.videoState=Vi.VideoStateStopped}initVideoElement(){if(this.videoElementStatus=Ta.INIT,!this.videoElementCheckInterval&&(y2.forEach(m=>{this.videoElement.addEventListener(m,this.handleVideoEvents)}),this.videoElementCheckInterval=window.setInterval(()=>{this._isInPage=function(m){return m!==document.body&&document.body.contains(m)}(this.videoElement)},1e3),Ie("ENABLE_VIDEO_FRAME_CALLBACK"))){var A,l;let m,y=()=>{document.visibilityState==="visible"&&(document.removeEventListener("visibilitychange",y),this.videoElementFreezeTimeout=window.setTimeout(w,Ie("VIDEO_FREEZE_DURATION")))},w=()=>{this.videoElementFreezeTimeout=void 0,this.videoState===Vi.VideoStateDecoding&&(document.visibilityState==="visible"?this.videoState=Vi.VideoStateFrozen:document.addEventListener("visibilitychange",y))},b=(M,k)=>{if(this.videoElementStatus===Ta.PLAYING){if(m){let q=k.presentationTime-m.presentationTime,ce=k.presentedFrames-m.presentedFrames;this._render_interframe_delays_sizes.push(ce),this._render_interframe_delays.push(q);let oe=NR(this._render_interframe_delays_sizes),le=oe-this._render_interframe_delays_sizes[0];if(oe>30&&le>5&&(this._render_interframe_delays_sizes.shift(),this._render_interframe_delays.shift()),this.videoState===Vi.VideoStateStarting&&(this.videoState=Vi.VideoStateDecoding),this.videoState===Vi.VideoStateDecoding&&this.onVideoStateChanged&&(this.videoElementFreezeTimeout&&window.clearTimeout(this.videoElementFreezeTimeout),this.videoElementFreezeTimeout=window.setTimeout(w,Ie("VIDEO_FREEZE_DURATION"))),qIe("VIDEO_FREEZE_DURATION")&&f1.lastVisibleTime>=f1.lastHiddenTime&&m.timestamp>f1.lastVisibleTime&&m.timestamp>f1.lastHiddenTime){let pe=Math.min(66,R2(this._render_interframe_delays_sizes,this._render_interframe_delays)),Se=Math.max(0,q-(ce-1)*pe);this.renderFreezeAccTime2+=Se>pe?Se:0,this.renderFreezeAccTime+=q}}m=Qn(Qn({},k),{},{timestamp:M})}else this.isSkipCalcRenderFreezeTime()&&(m=Qn(Qn({},k),{},{timestamp:M}));var V,K;Ie("ENABLE_VIDEO_FRAME_CALLBACK")&&(this.cancelRVFId=(V=(K=this.videoElement).requestVideoFrameCallback)===null||V===void 0?void 0:V.call(K,b))};this.cancelRVFId=(A=(l=this.videoElement).requestVideoFrameCallback)===null||A===void 0?void 0:A.call(l,b)}this.videoElement.controls=!1,this.videoElement.setAttribute("playsinline",""),Ld()&&!Ie("HIDE_NO_POSTER")&&(this.videoElement.poster="noposter");let g=Wi();this.config.noStyle||(g.name==="Safari"&&Number(g.version)===15||i2()||!this.config.mirror||(this.videoElement.style.transform="rotateY(180deg)"),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover"),this.videoElement.setAttribute("muted",""),this.videoElement.muted=!0,this.videoElement.srcObject&&this.videoElement.srcObject instanceof MediaStream?this.videoElement.srcObject.getVideoTracks()[0]!==this.videoTrack&&(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,uo()&&this.videoElement.load()):(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,uo()&&this.videoElement.load());let C=this.videoElement.play();C!==void 0&&C.catch(m=>{X.debug("[".concat(this.trackId,"] playback interrupted"),m.toString())})}resetVideoElement(){var A,l;y2.forEach(g=>{this.videoElement&&this.videoElement.removeEventListener(g,this.handleVideoEvents)}),this.videoElementCheckInterval&&(window.clearInterval(this.videoElementCheckInterval),this.videoElementCheckInterval=void 0),this.cancelRVFId&&this.videoElement&&((A=(l=this.videoElement).cancelVideoFrameCallback)===null||A===void 0||A.call(l,this.cancelRVFId),this.cancelRVFId=void 0),this.videoElementStatus=Ta.NONE}isSkipCalcRenderFreezeTime(){return this.videoElementStatus===Ta.DESTROYED||this.internal}handleAutoPlayFailed(){let A=l=>{l.preventDefault(),this.videoElement.play().then(()=>{X.debug("[".concat(this.trackId,"] Video element for trackId:").concat(this.trackId," autoplay resumed."))}).catch(g=>{X.error(g)}),this.autoplayFailed=!1,bC()?document.body.removeEventListener("click",A,!0):(document.body.removeEventListener("touchstart",A,!0),document.body.removeEventListener("mousedown",A,!0))};bC()?document.body.addEventListener("click",A,!0):(document.body.addEventListener("touchstart",A,!0),document.body.addEventListener("mousedown",A,!0)),p4()}}let y2=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","timeupdate","error"];class zA extends $1{constructor(A){let l=arguments.length>1&&arguments[1]!==void 0&&arguments[1];super(A),$e(this,"container",void 0),$e(this,"slot",void 0),this.slot=A.element,this.internal=l,this.updateConfig(A)}updateConfig(A){this.config=A,this.trackId=A.trackId;let l=A.element;var g;!this.internal||this.slot?(l!==this.slot&&(this.destroy(),this.slot=l),this.createElements()):(this.slot=l,l&&this.container?(this.internal=!1,this.container.id="agora-video-player-".concat(this.trackId),this.videoElement.id="video_".concat(this.trackId),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover",(g=this.slot)===null||g===void 0||g.appendChild(this.container)):this.createElements())}updateVideoTrack(A){this.videoTrack!==A&&(this.videoTrack=A,this.createElements())}play(A){var l;(l=this.container)!==null&&l!==void 0&&l.contains(this.videoElement)&&super.play(A)}getCurrentFrame(){var A;return(A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)?super.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameToUint8Array(A){var l;let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return(l=this.container)!==null&&l!==void 0&&l.contains(this.videoElement)?await super.getCurrentFrameToUint8Array(A,g):await zR(A)}destroy(){if(super.destroy(),this.videoElement.remove(),this.videoElement=document.createElement("video"),this.container){try{var A;this.container.remove(),(A=this.slot)===null||A===void 0||A.removeChild(this.container)}catch{}this.container=void 0}}createElements(){var A;this.container||(this.container=document.createElement("div")),this.container.id="agora-video-player-".concat(this.trackId),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.overflow="hidden",this.videoTrack?(this.container.style.backgroundColor="black",Ie("KEEP_LAST_FRAME")&&this.isKeepLastFrame&&this.videoElement.paused&&this.resetVideoElement(),this.mountedVideoElement()):this.unmountedVideoElement(),(A=this.slot)===null||A===void 0||A.appendChild(this.container)}mountedVideoElement(){var A;!this.container||(A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)||this.container.appendChild(this.videoElement),super.initVideoElement(),this.videoElement.id="video_".concat(this.trackId),this.videoElement.className="agora_video_player",this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.left="0",this.videoElement.style.top="0"}unmountedVideoElement(){var A;if((A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)){super.resetVideoElement();try{this.container&&this.container.removeChild(this.videoElement)}catch{}this.videoElement=document.createElement("video")}}resetVideoElement(){var A;(A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)&&(super.resetVideoElement(),this.cacheVideoElement=this.videoElement,this.videoElement=document.createElement("video"))}getContainerElement(){return this.container}}var oy,sy,k4,EU,P4,lA,Z1,FC,uh,Ca,Ud,ay,Hf,Mi,U4,We,x4,Xn,bc,F4,T2,G4,Ay,ec,bn,w2,gh,cy,hi,V4,K4,ly,H4,hU,Y4,dy,j4,tc;let Pi=(oy=Sr({argsMap:(a,A,l)=>[a.getTrackId(),typeof A=="string"?A:A instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",l]}),sy=J(),k4=Sr({argsMap:a=>[a.getTrackId()]}),EU=rh("LocalVideoTrack","_enabledMutex"),P4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),lA=J(),Z1=rh("LocalVideoTrack","_enabledMutex"),FC=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),uh=J(),Ca=Sr({argsMap:(a,A)=>[a.getTrackId(),A,a._saveEncodeBitrateRatio]}),Ud=J(),ay=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),Hf=J(),Mi=J(),U4=Sr({argsMap:(a,A,l)=>[a.getTrackId(),A,l]}),We=J(),x4=J(),Xn=J(),bc=Sr({argsMap:a=>[a.getTrackId()]}),F4=J(),T2=J(),G4=J(),Ay=J(),ec=J(),bn=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),w2=Sr({argsMap:a=>[a.getTrackId()]}),gh=Sr({argsMap:a=>[a.getTrackId()]}),cy=Sr({argsMap:(a,A,l)=>[a.getTrackId(),A.label,l]}),hi=class Ine extends UC{get videoHeight(){if($s()){let{height:A}=this._mediaStreamTrack.getSettings();return this._videoHeight=A,this._videoHeight}return this._videoHeight}get videoWidth(){if($s()){let{width:A}=this._mediaStreamTrack.getSettings();return this._videoWidth=A,this._videoWidth}return this._videoWidth}get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ta.PLAYING)}get processorDestination(){return this._processorDestination}get processorContext(){return this._processorContext}set processorContext(A){this._processorContext=A}get __className__(){return"LocalVideoTrack"}constructor(A,l,g,C,m,y){if(super(A,m),$e(this,"trackMediaType",PC.VIDEO),$e(this,"_player",void 0),$e(this,"isUseScaleResolutionDownBy",!1),$e(this,"_videoVisibleTimer",null),$e(this,"_previousVideoVisibleStatus",void 0),$e(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),$e(this,"_encoderConfig",void 0),$e(this,"_scalabilityMode",{numSpatialLayers:1,numTemporalLayers:1}),$e(this,"_optimizationMode",void 0),$e(this,"_saveEncodeBitrateRatio",1),$e(this,"_videoHeight",void 0),$e(this,"_videoWidth",void 0),$e(this,"_forceBitrateLimit",void 0),$e(this,"_enabled",!0),$e(this,"_processorDestination",void 0),$e(this,"_processorContext",void 0),$s()){let{width:w,height:b}=A.getSettings();this._videoWidth=w,this._videoHeight=b}else this.updateMediaStreamTrackResolution();if(this._scalabilityMode=g,this._optimizationMode=C,this._hints=y||[],l&&this._hints.indexOf($i.CUSTOM_TRACK)!==-1?this._encoderConfig=no(l):this._encoderConfig=l,this._hints.indexOf($i.SCREEN_TRACK)===-1)this.updateBitrateFromProfile();else if(_R(nn.CHROME,115)&&t2().indexOf("Windows")!==-1){let w=function(b,M){if("VideoFrame"in window&&"TransformStream"in window&&Bi().supportWebRTCInsertableStream){let k=new MediaStreamTrackProcessor(b),V=new MediaStreamTrackGenerator({kind:"video"}),K,q,ce=Date.now(),oe=()=>{le&&(clearInterval(le),le=void 0),K&&(K.close(),K=void 0),b.stop(),q=void 0,V.removeEventListener("ended",oe)},le=window.setInterval(()=>{if(q&&K&&Date.now()-ce>1e3)try{V.readyState==="live"?q.enqueue(K.clone()):oe()}catch{oe()}},1e3),pe=new TransformStream({transform:(Se,be)=>{V.readyState==="live"?(q=be,ce=Date.now(),K===void 0?(K=Se,be.enqueue(Se.clone())):(be.enqueue(K),K=Se)):Se.close()}});return V.addEventListener("ended",oe),k.readable.pipeThrough(pe).pipeTo(V.writable),V}}(A);w&&(X.info("local screen video track begin to inject frame"),this._mediaStreamTrack=w)}l&&this._hints.indexOf($i.CUSTOM_TRACK)!==-1&&this.setEncoderConfiguration(l),this._processorContext=new AU(this.getTrackId(),"local"),this._processorDestination=new f4(this.processorContext),this.bindProcessorDestinationEvents()}play(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof A=="string"){let C=document.getElementById(A);C?A=C:(X.warning("[".concat(this.getTrackId(),'] can not find "#').concat(A,'" element, use document.body')),A=document.body)}X.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(A instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(l));let g=Qn(Qn(Qn({},this._getDefaultPlayerConfig()),l),{},{trackId:this.getTrackId(),element:A});this._player?this._player.updateConfig(g):(A instanceof HTMLVideoElement?this._player=new $1(g):this._player=new zA(g),this._player.updateVideoTrack(this._mediaStreamTrack)),this._player.play(),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{let C=this.getVideoElementVisibleStatus();this.safeEmit(Du.VIDEO_ELEMENT_VISIBLE_STATUS,C)}catch{}},Ie("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,X.debug("[".concat(this.getTrackId(),"] stop video playback")))}async setEnabled(A,l){if(!l){if(A===this._enabled)return;this.stateCheck("enabled",A)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),A),!A){this._originMediaStreamTrack.enabled=!1;try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled to false error"),g.toString()),g}return l||(this._enabled=!1),void X.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}this._originMediaStreamTrack.enabled=!0;try{await Wn(this,nr.NEED_ENABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled to true error"),g.toString()),g}X.info("[".concat(this.getTrackId(),"] setEnabled to true success")),l||(this._enabled=!0)}async setMuted(A){A!==this._muted&&(this.stateCheck("muted",A),this._muted=A,this._originMediaStreamTrack.enabled=!A,X.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(A)),A?await Wn(this,nr.NEED_MUTE_TRACK,this):await Wn(this,nr.NEED_UNMUTE_TRACK,this))}async setSaveEncodeBitrateRatio(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this._saveEncodeBitrateRatio;if(this._saveEncodeBitrateRatio!==1&&this._encoderConfig&&this._encoderConfig.bitrateMax&&this._encoderConfig.bitrateMin){this._encoderConfig.bitrateMin=Math.floor(this._encoderConfig.bitrateMin*A),this._encoderConfig.bitrateMax=Math.floor(this._encoderConfig.bitrateMax*A),X.debug("[".concat(this.getTrackId(),"] set save encode bitrate ratio, ").concat(A)),this._saveEncodeBitrateRatio=1;try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(l){return l.throw(X)}}}async setEncoderConfiguration(A,l){if(!this._enabled)throw new nt(fe.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");if(A=ya(A),Ie("USE_STANDARD_BITRATE_DEFAULT")&&(delete A.bitrateMax,delete A.bitrateMin),this._forceBitrateLimit&&(A.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:A.bitrateMax,A.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:A.bitrateMin),A.width||A.height||A.frameRate){let g=WR({encoderConfig:A});($s()||Ma()||Hl())&&(g.deviceId=void 0),X.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(A),JSON.stringify(g));try{await this._originMediaStreamTrack.applyConstraints(g),this.updateMediaStreamTrackResolution()}catch(C){let m=new nt(fe.UNEXPECTED_ERROR,C.toString());throw X.error("[".concat(this.getTrackId(),"] applyConstraints error"),m.toString()),m}}this._encoderConfig=A,this._hints.indexOf($i.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(g){return g.throw(X)}}getStats(){return Qi(()=>{X.warning("[deprecated] LocalVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalVideoStats instead")},"localVideoTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},I2)}async setBeautyEffect(A){X.error("LocalVideoTrack.setBeautyEffect was deprecated, please migrate to agora-extension-beauty-effect")}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameImage(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return this._player?this._player.getCurrentFrameToUint8Array(A,l):await zR(A)}async findClosestProfile(){let{width:A,height:l,frameRate:g}=this.getMediaStreamTrackSettings(),{width:C,height:m,frameRate:y}=this._encoderConfig||{},w=a2(this._videoWidth||A||C||0),b=a2(this._videoHeight||l||m||0),M=function(k,V,K){if(!Array.isArray(Ie("VIDEO_ENCODER_CONFIG_LIST"))||Ie("VIDEO_ENCODER_CONFIG_LIST").length===0)return!1;let q=Math.min(k,V);return!(q>=480)&&Qn(Qn({},Ie("VIDEO_ENCODER_CONFIG_LIST").find(ce=>ce.height>q)),{},{frameRate:K})}(w,b,a2(g||y||15));if(M)return X.debug("[".concat(this.getTrackId(),"] find closest profile, ").concat(w,"x").concat(b," => ").concat(JSON.stringify(M))),this.setEncoderConfiguration(M)}async setBitrateLimit(A){X.debug("[".concat(this.getTrackId(),"] set bitrate limit, ").concat(JSON.stringify(A))),A&&(this._forceBitrateLimit=A,this._encoderConfig&&(this._encoderConfig.bitrateMax?this._encoderConfig.bitrateMax=this._encoderConfig.bitrateMax{let[l,g]=A;this._videoHeight=g,this._videoWidth=l}).catch(Ia)}_updatePlayerSource(){this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}_getDefaultPlayerConfig(){return{fit:"contain"}}async setSenderConfiguration(A){if(!this._enabled)throw new nt(fe.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");X.debug("[".concat(this.getTrackId(),"] setSenderConfiguration applyConstraints"),JSON.stringify(A)),A=ya(A),this._forceBitrateLimit&&(A.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:A.bitrateMax,A.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:A.bitrateMin),this._encoderConfig=A,this._hints.indexOf($i.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(l){return l.throw(X)}}updateBitrateFromProfile(){if(!this._encoderConfig)return;let{width:A,height:l,frameRate:g}=this.getMediaStreamTrackSettings();if(!A||!l||!g)return;let{bitrateMax:C,bitrateMin:m}=this._encoderConfig;if(m==null||C==null){let{max:y,min:w}=function(b,M,k,V,K){let q=Ie("BITRATE_ADAPTER_TYPE");if(q==="DEFAULT_BITRATE")return{min:V,max:K};if(K===void 0){let ce=Math.floor(200*Math.pow(k/15,.6)*Math.pow(b*M/640/360,.75));K=q==="STANDARD_BITRATE"?4*ce:2*ce,V=V??ce}else V=V??Math.floor(K/10);return{min:V,max:K}}(A,l,g,m,C);if(this._encoderConfig.bitrateMin=w,this._encoderConfig.bitrateMax=y,Ie("VIDEO_STANDARD_BITRATE_VERSION")&&m==null&&C==null){let[b,M]=function(k,V,K){let q=4*Math.floor(2e5*Math.pow(K/15,.6)*Math.pow(k*V/230400,.75)),ce=k*V,oe=new Map([[19200,.9],[230400,.85],[518400,.75],[921600,.7],[2073600,.6],[3686400,.5]]),le=new Map([[230400,.95],[518400,.9],[921600,.85],[2073600,.8]]),pe=U1(oe).call(oe).next().value,Se=1;if(oe.has(ce))pe=oe.get(ce);else{var be;let zt=LE(be=Array.from(oe.entries())).call(be,(li,ii)=>{let[br]=li,[Zi]=ii;return br-Zi}),gr=zt.find(li=>{let[ii]=li;return ii>ce});if(gr){let li=zt.indexOf(gr);if(li>0){let ii=zt[li-1],br=(ce-ii[0])/(gr[0]-ii[0]);pe=ii[1]+br*(gr[1]-ii[1])}else pe=gr[1]}else pe=zt[zt.length-1][1]}if(le.has(ce))Se=le.get(ce);else{var Ue;let zt=LE(Ue=Array.from(le.entries())).call(Ue,(li,ii)=>{let[br]=li,[Zi]=ii;return br-Zi}),gr=zt.find(li=>{let[ii]=li;return ii>ce});if(gr){let li=zt.indexOf(gr);if(li>0){let ii=zt[li-1],br=(ce-ii[0])/(gr[0]-ii[0]);Se=ii[1]+br*(gr[1]-ii[1])}else Se=gr[1]}else Se=zt[zt.length-1][1]}let xe=Ie("VIDEO_NEW_BITRATE_RATIO");xe&&xe>0&&(pe=xe/100);let Le=Math.floor(q*pe),je=Math.floor(65e4*Math.pow(k*V/230400,.5)*Math.pow(K/15,.69)),dt=Le,pt=Ie("VIDEO_STANDARD_BITRATE_VERSION");return pt&&pt>0&&(pt===1?dt=q:pt===2?dt=Le:pt===3&&(dt=je)),[Math.floor(dt/1e3),Se]}(A,l,g);this._encoderConfig.bitrateMax=b,this._encoderConfig.bitrateMin=w?Math.min(w,b):b,this._saveEncodeBitrateRatio=M,X.debug("[".concat(this.getTrackId(),"] update new bitrate from profile, [w: ").concat(A,", h: ").concat(l,", fps: ").concat(g,"] => [brMax: ").concat(this._encoderConfig.bitrateMax,", brMin: ").concat(this._encoderConfig.bitrateMin,", save_bitrate_ratio: ").concat(this._saveEncodeBitrateRatio,"]"))}else X.debug("[".concat(this.getTrackId(),"] update bitrate from profile, [w: ").concat(A,", h: ").concat(l,", fps: ").concat(g,"] => [brMax: ").concat(y,", brMin: ").concat(w,"]")),this._saveEncodeBitrateRatio=1}}getVideoElementVisibleStatus(){try{var A,l;let g=this==null||(A=this._player)===null||A===void 0?void 0:A.getContainerElement(),C={track:this,element:this==null||(l=this._player)===null||l===void 0?void 0:l.getVideoElement(),slot:g==null?void 0:g.parentElement},{element:m,slot:y}=C;if(this.isPlaying&&m instanceof HTMLVideoElement&&y instanceof HTMLElement){let w=Xb.checkOneElementVisible(m),b=Object.assign({},w);if(b.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=b.visible;let M=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});b.visible?M.onSuccess("Video is visible"):M.onSuccess("Invisible because of ".concat(b.reason))}return b}return}catch(g){throw new nt(fe.GET_VIDEO_ELEMENT_VISIBLE_ERROR,g.message)}}async renewMediaStreamTrack(A){}pipe(A){if(this.processor===A)return A;if(A._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(A.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=A,this.processor._source=this,A.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),A}unpipe(){if(!this.processor)return;let A=this.processor;this.processor._source=void 0,this.processor=void 0,A.reset()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe()}clone(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],g=this._encoderConfig;A&&(g=Qn(Qn({},g),ya(A))),g=qA(g);let C=yn(8,"track-video-cloned-"),m=new Ine(l?this._mediaStreamTrack.clone():this._mediaStreamTrack,g,qA(this._scalabilityMode),this._optimizationMode,C,qA(this._hints));return A&&g&&m.setEncoderConfiguration(g),X.debug("clone video track from ".concat(this.getTrackId()," to ").concat(C,", clone ").concat(l)),m}async replaceTrack(A,l){if(!(A instanceof MediaStreamTrack))throw new nt(fe.INVALID_PARAMS,"track should be an instance of MediaStreamTrack");if(A.kind!=="video")throw new nt(fe.INVALID_PARAMS,"track should be a video MediaStreamTrack");await this._updateOriginMediaStreamTrack(A,l,!0),this.updateMediaStreamTrackResolution()}sendSeiData(A){if(Qi(()=>{tr.reportApiInvoke(null,{name:Co.LOCAL_VIDEO_SEND_SEI_DATA,options:[],tag:Gn.TRACER}).onSuccess("")},this._mediaStreamTrack.id||this.getTrackId()),!Ie("ENABLE_VIDEO_SEI")||!Ie("ENABLE_ENCODED_TRANSFORM"))return void X.warning('To send/receive SEI, please call AgoraRTC.setParameter("ENABLE_VIDEO_SEI", true) before instantiate IAgoraRtcClient');if(A instanceof Uint8Array==0)return new nt(fe.INVALID_PARAMS,"Invalid argument type, ILocalVideoTrack.sendSeiData() only accept Uint8Array argument.").throw();let l=this.getRTCRtpTransceiver();if(!l)return void X.warning("Video track is not published, SEI can not be send");let g=l.sender.getParameters();if(g.codecs.length===0)return;let C=g.codecs[0].mimeType.toLocaleLowerCase();C==="video/h264"||C==="video/h265"?this.safeEmit("sei-to-send",A):X.warning("SEI is not supported by ".concat(C))}bindProcessorDestinationEvents(){this.processorDestination.on(Bn.ON_TRACK,async A=>{A?A!==this._mediaStreamTrack&&(this._mediaStreamTrack=A,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this))})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Bn.ON_TRACK)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(XA.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(XA.REQUEST_CONSTRAINTS)}},Li(hi.prototype,"play",[oy,sy],Object.getOwnPropertyDescriptor(hi.prototype,"play"),hi.prototype),Li(hi.prototype,"stop",[k4],Object.getOwnPropertyDescriptor(hi.prototype,"stop"),hi.prototype),Li(hi.prototype,"setEnabled",[EU,P4,lA],Object.getOwnPropertyDescriptor(hi.prototype,"setEnabled"),hi.prototype),Li(hi.prototype,"setMuted",[Z1,FC,uh],Object.getOwnPropertyDescriptor(hi.prototype,"setMuted"),hi.prototype),Li(hi.prototype,"setSaveEncodeBitrateRatio",[Ca,Ud],Object.getOwnPropertyDescriptor(hi.prototype,"setSaveEncodeBitrateRatio"),hi.prototype),Li(hi.prototype,"setEncoderConfiguration",[ay,Hf],Object.getOwnPropertyDescriptor(hi.prototype,"setEncoderConfiguration"),hi.prototype),Li(hi.prototype,"getStats",[Mi],Object.getOwnPropertyDescriptor(hi.prototype,"getStats"),hi.prototype),Li(hi.prototype,"setBeautyEffect",[U4,We],Object.getOwnPropertyDescriptor(hi.prototype,"setBeautyEffect"),hi.prototype),Li(hi.prototype,"getCurrentFrameData",[x4],Object.getOwnPropertyDescriptor(hi.prototype,"getCurrentFrameData"),hi.prototype),Li(hi.prototype,"getCurrentFrameImage",[Xn],Object.getOwnPropertyDescriptor(hi.prototype,"getCurrentFrameImage"),hi.prototype),Li(hi.prototype,"findClosestProfile",[bc,F4],Object.getOwnPropertyDescriptor(hi.prototype,"findClosestProfile"),hi.prototype),Li(hi.prototype,"setBitrateLimit",[T2],Object.getOwnPropertyDescriptor(hi.prototype,"setBitrateLimit"),hi.prototype),Li(hi.prototype,"setOptimizationMode",[G4],Object.getOwnPropertyDescriptor(hi.prototype,"setOptimizationMode"),hi.prototype),Li(hi.prototype,"setScalabiltyMode",[Ay],Object.getOwnPropertyDescriptor(hi.prototype,"setScalabiltyMode"),hi.prototype),Li(hi.prototype,"updateMediaStreamTrackResolution",[ec],Object.getOwnPropertyDescriptor(hi.prototype,"updateMediaStreamTrackResolution"),hi.prototype),Li(hi.prototype,"pipe",[bn],Object.getOwnPropertyDescriptor(hi.prototype,"pipe"),hi.prototype),Li(hi.prototype,"unpipe",[w2],Object.getOwnPropertyDescriptor(hi.prototype,"unpipe"),hi.prototype),Li(hi.prototype,"close",[gh],Object.getOwnPropertyDescriptor(hi.prototype,"close"),hi.prototype),Li(hi.prototype,"replaceTrack",[cy],Object.getOwnPropertyDescriptor(hi.prototype,"replaceTrack"),hi.prototype),hi),uy=(V4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),K4=J(),ly=rh("CameraVideoTrack","_enabledMutex"),H4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),hU=J(),Y4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),dy=J(),j4=Sr({argsMap:a=>[a.getTrackId()]}),tc=class Cne extends Pi{get __className__(){return"CameraVideoTrack"}constructor(A,l,g,C,m,y){super(A,ya(l.encoderConfig),C,m,y),$e(this,"_config",void 0),$e(this,"_originalConstraints",void 0),$e(this,"_constraints",void 0),$e(this,"_enabled",!0),$e(this,"_deviceName","default"),$e(this,"tryResumeVideoForIOS15_16WeChat",async()=>{(i2()||SR())&&!function(){let w=Wi();if(w.os!==Vs.IOS||!w.osVersion)return!1;let b=w.osVersion.split(".");return Number(b[0])===15&&Number(b[1])>=2}()&&Jb()&&this._enabled&&!this._isClosed&&(X.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS 15 device on WeChat.")),await this.renewMediaStreamTrack())}),this._config=l,this._originalConstraints=g,this._constraints=g,this._deviceName=A.label,this._encoderConfig=ya(this._config.encoderConfig),kn.on(Ys.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),kn.on(Ys.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),this.bindProcessorContextEvents()}async setDevice(A){return typeof A=="string"?this._setDeviceById(A):A.deviceId?this._setDeviceById(A.deviceId):A.facingMode?this._setDeviceByFacingModel(A.facingMode):void 0}async _setDeviceById(A){if(X.info("[".concat(this.getTrackId(),"] set device to ").concat(A)),this._enabled)try{let l=await p1.getDeviceById(A),g={};g.video=Qn({},this._constraints),g.video.deviceId={exact:A},g.video.facingMode=void 0,this._originMediaStreamTrack.stop();let C=null;try{C=await z1(g,this.getTrackId())}catch(m){throw X.error("[".concat(this.getTrackId(),"] setDevice failed"),m.toString()),C=await z1({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(C.getVideoTracks()[0],!1),m}await this._updateOriginMediaStreamTrack(C.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution(),this._deviceName=l.label,this._config.cameraId=A,this._constraints.deviceId={exact:A}}catch(l){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),l.toString()),l}else try{let l=await p1.getDeviceById(A);this._deviceName=l.label,this._config.cameraId=A,this._constraints.deviceId={exact:A}}catch(l){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),l.toString()),l}X.info("[".concat(this.getTrackId(),"] setDevice success"))}async _setDeviceByFacingModel(A){X.info("[".concat(this.getTrackId(),"] set facingMode ").concat(A));let l={video:Qn(Qn({},this._constraints),{},{deviceId:void 0,facingMode:{exact:A}})};if(this._enabled){this._originMediaStreamTrack.stop();let g=null;try{g=await z1(l,this.getTrackId())}catch(C){throw X.error("[".concat(this.getTrackId(),"] setDeviceByFacingModel failed"),C.toString()),g=await z1({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(g.getVideoTracks()[0],!1),C}await this._updateOriginMediaStreamTrack(g.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution()}this._deviceName="",this._config.facingMode=A,this._config.cameraId=void 0,this._constraints=Qn({},l.video),X.info("[".concat(this.getTrackId(),"] setDeviceByFacingModel success"))}async setEnabled(A,l){if(!l){if(A===this._enabled)return;this.stateCheck("enabled",A)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),A),A){try{if(this.isExternalTrack)this._originMediaStreamTrack.enabled=!0;else{let g=await z1({video:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(g.getVideoTracks()[0],!1)}await Wn(this,nr.NEED_ENABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled true error"),g.toString()),g}this.updateMediaStreamTrackResolution(),X.info("[".concat(this.getTrackId(),"] setEnabled to true success")),l||(this._enabled=!0)}else{this.isExternalTrack?this._originMediaStreamTrack.enabled=!1:(this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop()),l||(this._enabled=!1);try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled to false error"),g.toString()),g}X.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}}async setEncoderConfiguration(A,l){if(!this._enabled)throw new nt(fe.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");A=ya(A),Ie("USE_STANDARD_BITRATE_DEFAULT")&&(delete A.bitrateMax,delete A.bitrateMin),this._forceBitrateLimit&&(A.bitrateMax=this._forceBitrateLimit.max_bitrate||A.bitrateMax,A.bitrateMin=this._forceBitrateLimit.min_bitrate||A.bitrateMin);let g=no(this._config);g.encoderConfig=A;let C=WR(g);($s()||Ma()||Hl())&&(C.deviceId=void 0),X.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(A),JSON.stringify(C));try{await this._originMediaStreamTrack.applyConstraints(C),this.updateMediaStreamTrackResolution()}catch(m){let y=new nt(fe.UNEXPECTED_ERROR,m.toString());throw X.error("[".concat(this.getTrackId(),"] applyConstraints error"),y.toString()),y}this._config=g,this._constraints=C,this._originalConstraints=C,this._encoderConfig=A,this._hints.indexOf($i.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(m){return m.throw(X)}}_getDefaultPlayerConfig(){return{mirror:!0,fit:"cover"}}onTrackEnded(){if((Ma()||Hl())&&this._enabled&&!this._isClosed&&kn.duringInterruption){let A=async()=>{kn.off(Ys.IOS_INTERRUPTION_END,A),this._enabled&&!this._isClosed&&(X.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};kn.on(Ys.IOS_INTERRUPTION_END,A)}else X.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(Du.TRACK_ENDED)}async renewMediaStreamTrack(A){let l=A||this._constraints,g=p1.searchDeviceIdByName(this._deviceName);if(g&&!l.deviceId&&(l.deviceId={exact:g}),this._enabled){let C=await z1({video:l},this.getTrackId());this._constraints=l,await this._updateOriginMediaStreamTrack(C.getVideoTracks()[0],!0),this.updateMediaStreamTrackResolution()}}close(){super.close(),kn.off(Ys.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),kn.off(Ys.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat)}clone(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],g=this._encoderConfig;A&&(g=Qn(Qn({},g),ya(A))),g=qA(g);let C=yn(8,"track-cam-cloned-"),m=new Cne(l?this._mediaStreamTrack.clone():this._mediaStreamTrack,qA(Qn(Qn({},this._config),{},{encoderConfig:g})),qA(this._constraints),qA(this._scalabilityMode),this._optimizationMode,C);return A&&g&&m.setEncoderConfiguration(g),X.debug("clone track from ".concat(this.getTrackId()," to ").concat(C,", clone ").concat(l)),m}bindProcessorContextEvents(){this.processorContext.on(XA.REQUEST_UPDATE_CONSTRAINTS,async(A,l,g)=>{try{let C=Object.assign({},this._originalConstraints,...A);await this.renewMediaStreamTrack(C),l()}catch(C){g(C)}}),this.processorContext.on(XA.REQUEST_CONSTRAINTS,async A=>{A(this._originMediaStreamTrack.getSettings())})}},Li(tc.prototype,"setDevice",[V4,K4],Object.getOwnPropertyDescriptor(tc.prototype,"setDevice"),tc.prototype),Li(tc.prototype,"setEnabled",[ly,H4,hU],Object.getOwnPropertyDescriptor(tc.prototype,"setEnabled"),tc.prototype),Li(tc.prototype,"setEncoderConfiguration",[Y4,dy],Object.getOwnPropertyDescriptor(tc.prototype,"setEncoderConfiguration"),tc.prototype),Li(tc.prototype,"close",[j4],Object.getOwnPropertyDescriptor(tc.prototype,"close"),tc.prototype),tc);function Yf(a){let A=yn(8,"track-cus-"),l=tr.reportApiInvoke(null,{id:A,tag:Gn.TRACER,name:Co.CREATE_CUSTOM_AUDIO_TRACK,options:[a]}),g=new xt(a.mediaStreamTrack,a.encoderConfig?Pf(a.encoderConfig):{},A,!1);return X.info("create custom audio track success with config",a,"trackId",g.getTrackId()),l.onSuccess(g.getTrackId()),g}function Eh(a,A,l,g){l.optimizationMode&&(g&&g.width&&g.height?(l.encoderConfig=Qn(Qn({},g),{},{bitrateMin:g.bitrateMin,bitrateMax:g.bitrateMax}),l.optimizationMode!=="motion"&&l.optimizationMode!=="detail"||(A.contentHint=l.optimizationMode,A.contentHint===l.optimizationMode?X.debug("[".concat(a,"] set content hint to"),l.optimizationMode):X.debug("[".concat(a,"] set content hint failed")))):X.warning("[".concat(a,"] can not apply optimization mode bitrate config, no encoderConfig")))}var rc,gy,bA,J4,Nc,IU,rA,Fo,q4,W4,X4,z4,pa;class CU extends u4{getUserId(){return this._userId}constructor(A,l,g,C){super(A,"track-".concat(A.kind,"-").concat(l,"-").concat(C.clientId,"_").concat(yn(5,""))),$e(this,"_userId",void 0),$e(this,"_uintId",void 0),$e(this,"_isDestroyed",!1),$e(this,"store",void 0),$e(this,"processor",void 0),$e(this,"processorContext",void 0),this._userId=l,this._uintId=g,this.store=C}_updateOriginMediaStreamTrack(A){this._originMediaStreamTrack=A,this._mediaStreamTrack=A,this._updatePlayerSource(),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext})}_destroy(){this._isDestroyed=!0,X.info("[".concat(this.getTrackId(),"] is destroyed")),this.stop(),super.close()}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}}let D2=(rc=Sr({argsMap:(a,A,l)=>[a.getTrackId(),typeof A=="string"?A:A instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",l]}),gy=Sr({argsMap:a=>[a.getTrackId()]}),bA=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),J4=Sr({argsMap:a=>[a.getTrackId()]}),Li((Nc=class extends CU{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ta.PLAYING)}get __className__(){return"RemoteVideoTrack"}constructor(a,A,l,g,C){super(a,A,l,g),$e(this,"_videoVisibleTimer",null),$e(this,"_previousVideoVisibleStatus",void 0),$e(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),$e(this,"trackMediaType",PC.VIDEO),$e(this,"_videoWidth",void 0),$e(this,"_videoHeight",void 0),$e(this,"_player",void 0),$e(this,"_prePlayer",void 0),$e(this,"processorDestination",void 0),$e(this,"processorContext",void 0),this._prePlayer=C,this.updateMediaStreamTrackResolution(),this.processorContext=new AU(this.getTrackId(),"remote"),this.processorDestination=new f4(this.processorContext),this.bindProcessorDestinationEvents()}getStats(){return Qi(()=>{X.warning("[deprecated] RemoteVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteVideoStats instead")},"remoteVideoTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},Ah)}play(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.safeEmit(wc.PLAY_START),typeof a=="string"){let g=document.getElementById(a);g?a=g:(X.warning("[".concat(this.getTrackId(),'] can not find "#').concat(a,'" element, use document.body')),a=document.body)}X.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(a instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(A));let l=Qn(Qn({fit:"cover"},A),{},{trackId:this.getTrackId(),element:a});if(this._player)this._player.updateConfig(l);else{let g=!1,C=!1;a instanceof HTMLVideoElement?(this._player=new $1(l),this._prePlayer&&(this._prePlayer.destroy(),this._prePlayer=void 0,C=!0)):this._prePlayer&&!this._prePlayer.isDestroyed?(this._player=this._prePlayer,this._prePlayer=void 0,g=this._player.videoState>0,this._player.updateConfig(l)):this._player=new zA(l),this._player.updateVideoTrack(this._mediaStreamTrack),this._player.onFirstVideoFrameDecoded=()=>{this.store.subscribe(this.getUserId(),"video",void 0,void 0,Date.now()),this.safeEmit(wc.FIRST_FRAME_DECODED),C&&this.safeEmit(wc.FIRST_FRAME_RENDER)},this._player.onVideoStateChanged=m=>{this.safeEmit(wc.VIDEO_STATE_CHANGED,m)},g&&(this._player.onFirstVideoFrameDecoded(),this._player.onVideoStateChanged(this._player.videoState))}this._player.play(this.store.sessionId||void 0),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{let g=this.getVideoElementVisibleStatus();this.safeEmit(wc.VIDEO_ELEMENT_VISIBLE_STATUS,g)}catch{}},Ie("CHECK_VIDEO_VISIBLE_INTERVAL")),this.safeEmit(wc.PLAY_END)}stop(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(a),this._player=void 0,X.debug("[".concat(this.getTrackId(),"] stop video playback")))}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}updateMediaStreamTrackResolution(){ao(this._originMediaStreamTrack).then(a=>{let[A,l]=a;this._videoHeight=l,this._videoWidth=A}).catch(Ia)}_updatePlayerSource(){X.debug("[".concat(this.getTrackId(),"] update player source track")),this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}getVideoElementVisibleStatus(){try{var a,A;let l=this==null||(a=this._player)===null||a===void 0?void 0:a.getContainerElement(),g={track:this,element:this==null||(A=this._player)===null||A===void 0?void 0:A.getVideoElement(),slot:l==null?void 0:l.parentElement},{element:C,slot:m}=g;if(this.isPlaying&&C instanceof HTMLVideoElement&&m instanceof HTMLElement){let y=Xb.checkOneElementVisible(C),w=Object.assign({},y);if(w.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=w.visible;let b=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});w.visible?b.onSuccess("Video is visible"):b.onSuccess("Invisible because of ".concat(w.reason))}return w}return}catch(l){throw new nt(fe.GET_VIDEO_ELEMENT_VISIBLE_ERROR,l.message)}}pipe(a){if(this.processor===a)return a;if(a._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(a.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=a,this.processor._source=this,a.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),a}unpipe(){if(!this.processor)return;let a=this.processor;this.processor._source=void 0,this.processor=void 0,a.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Bn.ON_TRACK,async a=>{a?a!==this._mediaStreamTrack&&(this._mediaStreamTrack=a,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Bn.ON_TRACK)}_destroy(){this._prePlayer&&(this._prePlayer.destroy(),this._prePlayer=void 0),super._destroy(),this.unbindProcessorDestinationEvents()}_onSei(a){this.emit(Wl.SEI_RECEIVED,a)}}).prototype,"play",[rc],Object.getOwnPropertyDescriptor(Nc.prototype,"play"),Nc.prototype),Li(Nc.prototype,"stop",[gy],Object.getOwnPropertyDescriptor(Nc.prototype,"stop"),Nc.prototype),Li(Nc.prototype,"pipe",[bA],Object.getOwnPropertyDescriptor(Nc.prototype,"pipe"),Nc.prototype),Li(Nc.prototype,"unpipe",[J4],Object.getOwnPropertyDescriptor(Nc.prototype,"unpipe"),Nc.prototype),Nc),Og=(IU=Sr({argsMap:(a,A)=>[a.getTrackId(),A],throttleTime:300}),rA=Sr({argsMap:(a,A)=>[a.getTrackId(),A],throttleTime:300}),Fo=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),q4=Sr({argsMap:a=>[a.getTrackId()]}),W4=Sr({argsMap:a=>[a.getTrackId()]}),X4=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),z4=Sr({argsMap:a=>[a.getTrackId()]}),Li((pa=class extends CU{get isPlaying(){return this._useAudioElement?va.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"RemoteAudioTrack"}constructor(a,A,l,g){super(a,A,l,g),$e(this,"trackMediaType",PC.AUDIO),$e(this,"_source",void 0),$e(this,"_useAudioElement",!0),$e(this,"_volume",100),$e(this,"processorContext",void 0),$e(this,"processorDestination",void 0),$e(this,"_played",!1),$e(this,"_bypassWebAudio",!1),Ie("DISABLE_WEBAUDIO")?(this._source=new B4,this._bypassWebAudio=!0,this._useAudioElement=!0):(this._source=new I4(a,!0),Ie("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1)),this._source.once(WA.RECEIVE_TRACK_BUFFER,()=>{this.safeEmit(wc.FIRST_FRAME_DECODED)}),this.processorContext=new m4(this._source.context,this.getTrackId(),"remote"),this.processorDestination=new _4(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(WA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})})}setAudioFrameCallback(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!a)return this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(A),this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),this._source.on(WA.ON_AUDIO_BUFFER,l=>a(l))}setVolume(a){this._volume=a,this._useAudioElement?va.setVolume(this.getTrackId(),a):this._source.setVolume(a/100)}setAmplifiedVolume(a){this._useAudioElement&&this._played&&(va.stop(this.getTrackId()),this._source.play()),this._useAudioElement=!1,a=Math.min(a,Ie("MAX_WEBAUDIO_VOLUME")),this._volume=a,this._source.setVolume(a/100)}async setPlaybackDevice(a){if(!this._useAudioElement||!ra())throw new nt(fe.NOT_SUPPORTED,"your browser does not support setting the audio output device");await va.setSinkID(this.getTrackId(),a)}getVolumeLevel(){return this._source.getAccurateVolumeLevel()}getVolume(){return this._useAudioElement?va.getVolume(this.getTrackId()):this._source instanceof I4?this._source.getAudioVolume():0}getStats(){return Qi(()=>{X.warning("[deprecated] RemoteAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteAudioStats instead")},"remoteAudioTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},W1)}play(){X.debug("[".concat(this.getTrackId(),"] start audio playback")),this._played=!0,this._useAudioElement?(X.debug("[".concat(this.getTrackId(),"] use audio element to play")),va.play(this._mediaStreamTrack,this.getTrackId(),this._volume,this.store.sessionId||void 0)):(X.debug("[".concat(this.getTrackId(),"] use audio context to play")),this._source.play())}stop(){X.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._played=!1,this._useAudioElement?va.stop(this.getTrackId()):this._source.stop()}_destroy(){super._destroy(),this._played=!1,this.unbindProcessorDestinationEvents(),this._source.destroy()}_isFreeze(){return this._source.isFreeze}_updatePlayerSource(){let a=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];X.debug("[".concat(this.getTrackId(),"] update player source track")),a&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&va.updateTrack(this.getTrackId(),this._mediaStreamTrack)}pipe(a){if(this._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"can not pipe extension when WebAudio disabled");if(this.processor===a)return a;if(a._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(a.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=a,this.processor._source=this,a.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),a}unpipe(){var a;if(this._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"can not unpipe extension when WebAudio disabled");if(!this.processor)return;let A=this.processor;(a=this._source.processSourceNode)===null||a===void 0||a.disconnect(),this.processor._source=!1,this.processor=void 0,A.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Bn.ON_TRACK,async a=>{a?a!==this._mediaStreamTrack&&(this._mediaStreamTrack=a,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(a)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}),this.processorDestination.on(Bn.ON_NODE,a=>{this._source.processedNode=a;let A=!a;this._useAudioElement!==A&&(this._played?(this.stop(),this._useAudioElement=A,this.play()):this._useAudioElement=A)})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Bn.ON_TRACK),this.processorDestination.removeAllListeners(Bn.ON_NODE)}}).prototype,"setVolume",[IU],Object.getOwnPropertyDescriptor(pa.prototype,"setVolume"),pa.prototype),Li(pa.prototype,"setAmplifiedVolume",[rA],Object.getOwnPropertyDescriptor(pa.prototype,"setAmplifiedVolume"),pa.prototype),Li(pa.prototype,"setPlaybackDevice",[Fo],Object.getOwnPropertyDescriptor(pa.prototype,"setPlaybackDevice"),pa.prototype),Li(pa.prototype,"play",[q4],Object.getOwnPropertyDescriptor(pa.prototype,"play"),pa.prototype),Li(pa.prototype,"stop",[W4],Object.getOwnPropertyDescriptor(pa.prototype,"stop"),pa.prototype),Li(pa.prototype,"pipe",[X4],Object.getOwnPropertyDescriptor(pa.prototype,"pipe"),pa.prototype),Li(pa.prototype,"unpipe",[z4],Object.getOwnPropertyDescriptor(pa.prototype,"unpipe"),pa.prototype),pa),f1=new class extends io{get visibility(){return document.visibilityState}get lastHiddenTime(){return this._lastHiddenTime}get lastVisibleTime(){return this._lastVisibleTime}constructor(){super(),$e(this,"_lastHiddenTime",0),$e(this,"_lastVisibleTime",0),$e(this,"needUploadStats",[]),$e(this,"isCollectingStats",!1),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this._lastHiddenTime=performance.now():this._lastVisibleTime=performance.now(),this.isCollectingStats&&this.needUploadStats.push(document.visibilityState==="visible"?1:0),X.debug("current web page is ".concat(document.visibilityState)),this.emit("VISIBILITY_CHANGE",document.visibilityState)})}startCollectStats(){this.isCollectingStats=!0,this.needUploadStats.push(this.visibility==="visible"?1:0)}stopCollectStats(){this.isCollectingStats=!1,this.needUploadStats.length=0}};class $4 extends io{constructor(A,l){super(),$e(this,"trackMediaType",PC.DATA),$e(this,"_version",1),$e(this,"_type",3),$e(this,"_config",void 0),$e(this,"_originDataChannel",void 0),$e(this,"_dataStreamPacketHeader",new ArrayBuffer(4)),$e(this,"_dataStreamPacketHandler",{serialize:g=>g,deserialize:g=>g}),$e(this,"_datachannelEventMap",new Map),this._config=A,l&&(this._originDataChannel=l,this._bandDataChannelEvents(l)),this._initPacketHeader()}useDataStream(A){this._dataStreamPacketHandler=A}get id(){return this._config.id}get ordered(){return this._config.ordered}get maxRetransmits(){return Ie("DATASTREAM_MAX_RETRANSMITS")}get metadata(){return this._config.metadata}get readyState(){var A,l;return(A=(l=this._originDataChannel)===null||l===void 0?void 0:l.readyState)!==null&&A!==void 0?A:"connecting"}get _originDataChannelId(){var A,l;return(A=(l=this._originDataChannel)===null||l===void 0?void 0:l.id)!==null&&A!==void 0?A:null}getChannelId(){return this.id}getConfig(){return this._config}_close(){this._originDataChannel&&(this._unbindDataChannelEvents(this._originDataChannel),this._originDataChannel=void 0)}async _waitTillOpen(){return new Ft((A,l)=>{if(this._originDataChannel){this._originDataChannel.readyState==="open"&&A();let g=setTimeout(()=>{var C;l(new nt(fe.DATACHANNEL_CONNECTION_TIMEOUT,"Cannot create datachannel, id: ".concat((C=this._originDataChannel)===null||C===void 0?void 0:C.id)))},1e4);this._originDataChannel.onopen=()=>{clearTimeout(g),this._originDataChannel&&this._bandDataChannelEvents(this._originDataChannel),A()},this._originDataChannel.onerror=()=>{throw clearTimeout(g),new nt(fe.DATACHANNEL_CONNECTION_TIMEOUT)}}else l(new nt(fe.DATACHANNEL_CONNECTION_TIMEOUT,"cannot find dataChannel"))})}_updateOriginDataChannel(A){this._originDataChannel=A,this._bandDataChannelEvents(A)}_initPacketHeader(){let A=new DataView(this._dataStreamPacketHeader);A.setUint16(0,this._version),A.setUint8(2,this._type),A.setUint8(3,this._config.id)}_bandDataChannelEvents(A){this._unbindDataChannelEvents(A),[de.OPEN,de.CLOSE,de.ERROR].forEach(l=>{let g=()=>{this.emit(l)};this._datachannelEventMap.set(l,g),A.addEventListener(l,g)})}_unbindDataChannelEvents(A){Array.from(this._datachannelEventMap.entries()).forEach(l=>{let[g,C]=l;A.removeEventListener(g,C)}),this._datachannelEventMap.clear()}}class pU extends $4{constructor(A){super(A),$e(this,"_messageListener",void 0),this._messageListener=l=>{if(l.data.byteLengthSA.revokeObjectURL(a),0),new Worker(SA.createObjectURL(a))}let Z4=71,Ey=1,hy=2,Iy=1,eN=2;var Lg=function(a){return a[a.AUDIO_LEVEL=1]="AUDIO_LEVEL",a[a.METADATA=2]="METADATA",a[a.AUDIO_64_BIT_PTS=3]="AUDIO_64_BIT_PTS",a}(Lg||{});function Cy(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=a.getUint8(0);if(l!==Z4)return;let g=a.getUint16(1),C=Ey+hy+g,m=new Uint8Array(a.byteLength-C);m.set(new Uint8Array(a.buffer,C,a.byteLength-C));let y={m:l,tlvLen:g,tlv:[],frame:m},w=Ey+hy;for(;w>1:127&V})}else if(b===Lg.METADATA||b===Lg.AUDIO_64_BIT_PTS){let V=new Uint8Array(M);for(let K=0;Ky;M--,k++)b=b*M/k;return b}(A,a))+a*Math.log(.5)+(A-a)*Math.log(1-.5)-Math.log(l)+l*a,qf.set(g,C)),Cl&&b++;A[y]!==b&&(A[y]=b,m=!0)}return m}window.cache=qf;let _U=0;class rN{constructor(A){$e(this,"id",void 0),$e(this,"immediates",[]),$e(this,"lastNonSilence",-1),$e(this,"immediateSpeechActivityScore",hh),$e(this,"lastLevelChangedTime",Date.now()),$e(this,"levels",[]),$e(this,"longs",[]),$e(this,"longSpeechActivityScore",hh),$e(this,"mediums",[]),$e(this,"mediumSpeechActivityScore",hh),$e(this,"minLevel",0),$e(this,"nextMinLevel",0),$e(this,"nextMinLevelWindowLength",0),$e(this,"energyScore",0),this.id=A||"".concat(_U++),this.immediates.length=50,this.mediums.length=10,this.longs.length=1,this.levels.length=this.immediates.length}computeImmediates(){let A=this.immediates,l=this.levels,g=this.minLevel+py,C=!1;for(let m=0;mhh&&(this.lastNonSilence=A)}evaluateMediumSpeechActivityScore(){this.mediumSpeechActivityScore=fy(this.mediums[0],5,24)}evaluateSpeechActivityScores(A){this.computeImmediates()&&(this.evaluateImmediateSpeechActivityScore(),this.computeMediums()&&(this.evaluateMediumSpeechActivityScore(),this.computeLongs()&&this.evaluateLongSpeechActivityScore(A)))}getLastLevelChangedTime(){return this.lastLevelChangedTime}getLevels(){var A;return"[".concat(j9(A=[...this.levels]).call(A).join(),"]")}getSpeechActivityScore(A){switch(A){case 0:return this.immediateSpeechActivityScore;case 1:return this.mediumSpeechActivityScore;case 2:return this.longSpeechActivityScore;default:throw new Error("interval "+A)}}levelChanged(A,l){if(this.lastLevelChangedTime<=l){this.lastLevelChangedTime=l;let g=A;return A<0&&(g=0),A>Jf&&(g=Jf),this.levels.unshift(g),this.levels.length>this.immediates.length&&this.levels.pop(),this.updateMinLevel(g),g>=this.minLevel+py?g:g/2}return-1}levelTimedOut(){this.levelChanged(0,this.lastLevelChangedTime)}updateMinLevel(A){if(A!==0){if(this.minLevel===0||this.minLevel>A)return this.minLevel=A,this.nextMinLevel=0,void(this.nextMinLevelWindowLength=0);if(this.nextMinLevel===0)return this.nextMinLevel=A,void(this.nextMinLevelWindowLength=1);if(this.nextMinLevel>A&&(this.nextMinLevel=A),this.nextMinLevelWindowLength++,this.nextMinLevelWindowLength>=750){let l=Math.sqrt(this.minLevel*this.nextMinLevel);l<0?l=0:l>Jf&&(l=Jf),this.minLevel=l,this.nextMinLevel=0,this.nextMinLevelWindowLength=0}}}}class mU{constructor(A){$e(this,"algorithm",void 0),this.algorithm=A}execute(){let A=!this.algorithm;if(!A)try{let l=this.algorithm.runInDecisionMaker(this);l<=0?A=!0:setTimeout(this.execute.bind(this),l)}catch{A=!0}A&&this.algorithm&&this.algorithm.decisionMakerExited(this)}}class _y{constructor(A,l,g){$e(this,"isDominant",void 0),$e(this,"energyRanking",void 0),$e(this,"energyScore",void 0),this.isDominant=A,this.energyRanking=l,this.energyScore=g}}class BU extends io{constructor(A){super(),$e(this,"dominantId",null),$e(this,"lastDecisionTime",0),$e(this,"lastLevelChangedTime",0),$e(this,"lastLevelIdleTime",0),$e(this,"relativeSpeechActivities",[]),$e(this,"speakers",new Map),$e(this,"enableSilence",!1),$e(this,"timeoutToSilenceInterval",0),$e(this,"decisionMaker",null),$e(this,"loudest",[]),$e(this,"numLoudestToTrack",3),$e(this,"energyExpireTimeMs",250),$e(this,"energyAlphaPct",50),this.timeoutToSilenceInterval=A,this.enableSilence=A>0,this.relativeSpeechActivities.length=3}setLoudestConfig(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:3,l=arguments.length>1?arguments[1]:void 0,g=arguments.length>2?arguments[2]:void 0;this.numLoudestToTrack=A,l!=null&&(this.energyExpireTimeMs=l),g!=null&&(this.energyAlphaPct=g),this.loudest.length>A&&this.loudest.splice(A)}getDominantSpeaker(){return this.dominantId}isAmongLoudest(A){return this.loudest.some(l=>l.id===A)}levelChanged(A,l){let g=Date.now(),C=this.getOrCreateSpeaker(A);this.lastLevelChangedTime0&&this.lastDecisionTime-this.lastLevelChangedTime>=15e3?-1:this._runInDecisionMaker()}decisionMakerExited(A){this.decisionMaker===A&&(this.decisionMaker=null)}destroy(){this.decisionMaker=null,this.loudest.length=0,this.speakers.clear(),this.removeAllListeners()}addSpeakers(A){A.forEach(l=>{this.speakers.has(l.id)||this.speakers.set(l.id,l)})}removeSpeakers(A){A.forEach(l=>{this.speakers.delete(l.id)})}getOrCreateSpeaker(A){let l=this.speakers.get(A);return l||(l=new rN(A),this.speakers.set(A,l),this.maybeStartDecisionMaker()),l}updateLoudestList(A,l,g){let C=A.id===this.dominantId;if(l<0){let b=0;for(;b=this.numLoudestToTrack)this.loudest.splice(y,1);else if(b.id!==A.id)++y;else if(this.loudest.splice(y,1),this.loudest.lengththis.numLoudestToTrack&&this.loudest.splice(this.numLoudestToTrack,1)),new _y(C,w,A.energyScore)}maybeStartDecisionMaker(){!this.decisionMaker&&this.speakers.size>0&&(this.decisionMaker=new mU(this),this.decisionMaker.execute())}makeDecision(A){let l=null,g=null,C=this.speakers.size,m=null;if(C===0)m=null;else if(C===1){var y;let w=U1(y=this.speakers).call(y).next().value;this.enableSilence&&w&&(m=w.id,w.evaluateSpeechActivityScores(A),A-w.lastNonSilence>this.timeoutToSilenceInterval&&(m=null))}else{let w=this.dominantId==null?null:this.speakers.get(this.dominantId);if(w==null){let k=this.speakers.entries().next();k.value&&(m=k.value[0],w=k.value[1])}else m=w.id;w==null||w.evaluateSpeechActivityScores(A);let b=this.relativeSpeechActivities,M=2;for(let k of this.speakers.entries()){let[V,K]=k;if(K===w)continue;K.evaluateSpeechActivityScores(A);for(let le=0;le3&&ce>2&&oe>0&&ce>M&&(M=ce,m=V)}this.enableSilence&&w!=null&&m===w.id&&A-w.lastNonSilence>this.timeoutToSilenceInterval&&(m=null)}m==null&&!this.enableSilence||m===this.dominantId||(l=this.dominantId,this.dominantId=m,g=this.dominantId),g==null&&!this.enableSilence||g===l||this.emit("ActiveSpeakerChanged",g)}_runInDecisionMaker(){let A=Date.now(),l=300-(A-this.lastLevelIdleTime),g=0;l<=0?(this.lastLevelIdleTime!==0&&this.timeoutIdleLevels(A),this.lastLevelIdleTime=A):g=l;let C=300-(A-this.lastDecisionTime);return C<=0&&(this.lastDecisionTime=A,this.makeDecision(A),C=300-(Date.now()-A)),C>0&&g>C&&(g=C),g}timeoutIdleLevels(A){let l=[];for(let C of U1(g=this.speakers).call(g)){var g;let m=A-C.getLastLevelChangedTime();36e5this.speakers.delete(C))}}let Ao=new Map,Xl=null,Wf=null,iN=3,Ih=[],zl=new Map,Xf=new Map;class bu{get samples(){return this.actives+this.inactives}get activeRate(){return this.actives/this.samples}constructor(A,l){$e(this,"id",void 0),$e(this,"track",void 0),$e(this,"score",0),$e(this,"active",!0),$e(this,"muted",!1),$e(this,"timer",0),$e(this,"actives",0),$e(this,"inactives",0),this.id=A,this.track=l,this.setActive(zl.size<3)}autoCheckActive(){this.autoSetActive(),this.autoAdjustActive(),this.resetTimer(),this.actives=0,this.inactives=0}autoSetActive(){let A=this.active;this.active=this.activeRate>=.8;let{actives:l,inactives:g}=function(){let C=[],m=[];return Array.from(U1(zl).call(zl)).forEach(y=>{y.active?C.push(y):m.push(y)}),{actives:C,inactives:m}}();if(l.length>3){let C;l.forEach(m=>{(!C||C.score>m.score)&&(C=m)}),C&&C.setActive(!1)}if(l.length<3&&g.length>0){let C;g.forEach(m=>{(!C||C.score40&&C.activeRate-this.activeRate>.4?C.setActive(!0):this.active=!0)}this.setMuted(!this.active)}setActive(A){this.active=A,this.resetTimer(),this.setMuted(!A)}autoAdjustActive(){this.active?this.autoSwitchToInactive():this.autoSwitchToActive()}autoSwitchToActive(){let A=function(l){let g;return Array.from(U1(zl).call(zl)).forEach(C=>{!C.active||C.id===l||C.samples<40||(!g||C.score.4&&(A.setActive(!1),this.setActive(!0))}autoSwitchToInactive(){let A=function(l){let g;return Array.from(U1(zl).call(zl)).forEach(C=>{C.active||C.id===l||C.samples<40||(!g||C.score>g.score)&&(g=C)}),g}(this.id);A&&A.activeRate-this.activeRate>.4&&(A.setActive(!0),this.setActive(!1))}addSample(A){A?this.actives+=1:this.inactives+=1,this.samples>66.66666666666667&&this.autoCheckActive()}setMuted(A){this.track&&(this.track.enabled=!A,this.muted=A)}resetTimer(){this.clearTimer(),this.timer=window.setTimeout(()=>{if(this.samples!==0)return this.samples<50?this.resetTimer():void this.autoCheckActive()},1e3)}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=0)}}let zf;function nN(a){let A=zl.get(a);A&&(zl.delete(a),A.clearTimer())}let $f=new Map,SU=new Map,my="video/h264",By="video/h265";function oN(a,A,l){let g=new Uint8Array(a,A,l),C=[],m=0;for(;C.length=a.length)return"";let g=a[l];return 128&g?"":(g>>1&63)>=32||l+134,ta.supportUnifiedPlan=function(){if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let A=new RTCPeerConnection,l=!1;try{A.addTransceiver("audio"),l=!0}catch{}return A.close(),l}(),ta.supportMinBitrate=a.name===nn.CHROME||a.name===nn.EDGE,ta.supportSetRtpSenderParameters=function(){let A=Wi();return!!(window.RTCRtpSender&&window.RTCRtpSender.prototype.setParameters&&window.RTCRtpSender.prototype.getParameters)&&(!!Od()||!(!$s()&&!DC())||A.name===nn.FIREFOX&&Number(A.version)>=64)}(),a.name===nn.SAFARI&&(Number(a.version)>=14?ta.supportDualStream=!0:ta.supportDualStream=!1),ta.webAudioMediaStreamDest=function(){let A=Wi();return!(A.name===nn.SAFARI&&Number(A.version)<12)}(),ta.supportReplaceTrack=!!window.RTCRtpSender&&typeof RTCRtpSender.prototype.replaceTrack=="function",ta.supportWebGL=typeof WebGLRenderingContext<"u",ta.supportRequestFrame=!!window.CanvasCaptureMediaStreamTrack,Od()||(ta.webAudioWithAEC=!0),ta.supportShareAudio=function(){let A=Wi();return(A.os===Vs.WIN_10||A.os===Vs.WIN_81||A.os===Vs.WIN_7||A.os===Vs.LINUX||A.os===Vs.MAC_OS||A.os===Vs.CHROMIUM_OS)&&A.name===nn.CHROME&&Number(A.version)>=74}(),ta.supportDataChannel=!!(Nd(76)||mf(68)||mR(14)),ta.supportPCSetConfiguration=function(){let A=window.RTCPeerConnection;return!uo()&&!!A&&A.prototype.setConfiguration instanceof Function}(),ta.supportWebRTCEncodedTransform=Nd(87)||KP()||mf(117),ta.supportWebRTCInsertableStream=function(){let A=Wi();return(A.name===nn.CHROME||A.name===nn.EDGE)&&Number(A.version)>=94&&"MediaStreamTrackGenerator"in window&&"MediaStreamTrackProcessor"in window}(),ta.supportRequestVideoFrameCallback="requestVideoFrameCallback"in HTMLVideoElement.prototype,ta.supportWebCrypto=typeof window<"u"&&window.crypto!==void 0&&window.crypto.subtle!==void 0,ta.supportSuppressLocalAudioPlayback=Mf(),ta.supportRestrictOwnAudio=VR(),Fi(()=>{ta.supportDualStreamEncoding=function(){let A=Wi();return!!Ie("DISABLE_WEBAUDIO")||A.name==="Safari"&&Number(A.version)>=14||!!(A.name==="Chrome"&&/Windows/i.test(A.os||"")&&Number(A.version)>=100&&Ie("CHROME_DUAL_STREAM_USE_ENCODING"))}(),X.debug("browser ua: ",navigator.userAgent),X.info("browser info: ",a),X.info("browser compatibility: ",ta)})})();let RU=["CHINA","GLOBAL"],AN=[[0,1,2,3,4,5,5],[0,2,2,3,4,5,5],[0,3,3,3,4,5,5],[0,4,4,4,4,5,5],[0,5,5,5,5,5,5]],ys=[],po=[];function xd(a,A){return!!A&&ys.some(l=>l.uid===a&&l.channelName===A)}function cN(){return po.length>0}var ia=yg.forEach,yU=Hp("forEach")?[].forEach:function(a){return ia(this,a,arguments.length>1?arguments[1]:void 0)};wn({target:"Array",proto:!0,forced:[].forEach!==yU},{forEach:yU});var QU=Cc("Array","forEach"),TU=pE,Sy=ts,wU=j,Ry=QU,yy=Array.prototype,vU={DOMTokenList:!0,NodeList:!0},DU=function(a){var A=a.forEach;return a===yy||wU(yy,a)&&A===yy.forEach||Sy(vU,TU(a))?Ry:A},bU=I(DU),NU=L1,lN=Om;wn({target:"Object",stat:!0,forced:f(function(){lN(1)})},{keys:function(a){return lN(NU(a))}});var OU=I(Tn.Object.keys),LU=I(G9),MU=I(Y9),kU=wn,dN=C0,PU=Zp,UU=Kn,uN=QT,xU=CE,FU=gs,GU=Ov,VU=vo,KU=pg,HU=I5("slice"),YU=VU("species"),Qy=Array,jU=Math.max;kU({target:"Array",proto:!0,forced:!HU},{slice:function(a,A){var l,g,C,m=FU(this),y=xU(m),w=uN(a,y),b=uN(A===void 0?y:A,y);if(dN(m)&&(l=m.constructor,(PU(l)&&(l===Qy||dN(l.prototype))||UU(l)&&(l=l[YU])===null)&&(l=void 0),l===Qy||l===void 0))return KU(m,w,b);for(g=new(l===void 0?Qy:l)(jU(b-w,0)),C=0;w\?\@\[\]\^\_\{\}\|\~\,]{1,64}$/.test(a))throw X.error("Invalid Channel Name ".concat(a)),new ze(fe.INVALID_PARAMS,"The length must be within 64 bytes. The supported characters: a-z,A-Z,0-9,space,!, #, $, %, &, (, ), +, -, :, ;, <, =, ., >, ?, @, [, ], ^, _, {, }, |, ~, ,")}function r_(a){if(A=a,!(typeof A=="number"&&Math.floor(A)===A&&0<=A&&A<=4294967295||yR(a,1,255)))throw new ze(fe.INVALID_PARAMS,"[String uid] Length of the string: [1,255]. ASCII characters only. [Number uid] The value range is [0,10000]");var A;typeof a=="string"&&X.warn("You input a string as the user ID, to ensure better end-user experience, Agora highly suggests not using a string as the user ID.")}let Nu=function(a){return a.TRANSCODE="mix_streaming",a.RAW="raw_streaming",a}({}),zU={alpha:1,height:640,width:360,x:0,y:0,zOrder:0,audioChannel:0},ic={x:0,y:0,width:160,height:160,zOrder:255,alpha:1};function vy(a,A){Tr(a.url,"".concat(A,".url"),1,1e3,!1),mo(a.x)||Rn(a.x,"".concat(A,".x"),0,1e4),mo(a.y)||Rn(a.y,"".concat(A,".y"),0,1e4),mo(a.width)||Rn(a.width,"".concat(A,".width"),0,1e4),mo(a.height)||Rn(a.height,"".concat(A,".height"),0,1e4),mo(a.zOrder)||Rn(a.zOrder,"".concat(A,".zOrder"),0,255),mo(a.alpha)||Rn(a.alpha,"".concat(A,".alpha"),0,1,!1)}let $U={audioBitrate:48,audioChannels:1,audioSampleRate:48e3,backgroundColor:0,height:360,lowLatency:!1,videoBitrate:400,videoCodecProfile:100,videoCodecType:1,videoFrameRate:15,videoGop:30,width:640,images:[],userConfigs:[],userConfigExtraInfo:""},Mg=function(a){return a.WARNING="@live_uap-warning",a.ERROR="@line_uap-error",a.PUBLISH_STREAM_STATUS="@live_uap-publish-status",a.WORKER_STATUS="@live_uap-worker-status",a.REQUEST_NEW_ADDRESS="@live_uap-request-address",a}({}),Dy=function(a){return a.REQUEST_WORKER_MANAGER_LIST="@live_req_worker_manager",a}({}),Qs=function(a){return a[a.LIVE_STREAM_RESPONSE_SUCCEED=200]="LIVE_STREAM_RESPONSE_SUCCEED",a[a.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM=454]="LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM",a[a.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR=450]="LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR",a[a.LIVE_STREAM_RESPONSE_BAD_STREAM=451]="LIVE_STREAM_RESPONSE_BAD_STREAM",a[a.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR=400]="LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR",a[a.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST=404]="LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST",a[a.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED=456]="LIVE_STREAM_RESPONSE_NOT_AUTHORIZED",a[a.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE=457]="LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE",a[a.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN=429]="LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN",a[a.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH=452]="LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH",a[a.LIVE_STREAM_RESPONSE_NOT_SUPPORTED=453]="LIVE_STREAM_RESPONSE_NOT_SUPPORTED",a[a.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM=455]="LIVE_STREAM_RESPONSE_MAX_STREAM_NUM",a[a.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR=500]="LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR",a[a.LIVE_STREAM_RESPONSE_WORKER_LOST=501]="LIVE_STREAM_RESPONSE_WORKER_LOST",a[a.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT=502]="LIVE_STREAM_RESPONSE_RESOURCE_LIMIT",a[a.LIVE_STREAM_RESPONSE_WORKER_QUIT=503]="LIVE_STREAM_RESPONSE_WORKER_QUIT",a[a.ERROR_FAIL_SEND_MESSAGE=504]="ERROR_FAIL_SEND_MESSAGE",a[a.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE=30]="PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE",a[a.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT=31]="PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT",a[a.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH=32]="PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH",a[a.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN=33]="PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN",a}({});function gN(a){if(!a.channelName)throw new ze(fe.INVALID_PARAMS,"invalid channelName in info");if(typeof a.uid!="number")throw new ze(fe.INVALID_PARAMS,"invalid uid in info, uid must be a number");return a.token&&Tr(a.token,"info.token",1,2047),r_(a.uid),t_(a.channelName),!0}let NA=function(a){return a[a.SetSdkProfile=0]="SetSdkProfile",a[a.SetSourceChannel=1]="SetSourceChannel",a[a.SetSourceUserId=2]="SetSourceUserId",a[a.SetDestChannel=3]="SetDestChannel",a[a.StartPacketTransfer=4]="StartPacketTransfer",a[a.StopPacketTransfer=5]="StopPacketTransfer",a[a.UpdateDestChannel=6]="UpdateDestChannel",a[a.Reconnect=7]="Reconnect",a[a.SetVideoProfile=8]="SetVideoProfile",a}({}),ls=function(a){return a.NETWORK_DISCONNECTED="NETWORK_DISCONNECTED",a.NETWORK_CONNECTED="NETWORK_CONNECTED",a.PACKET_JOINED_SRC_CHANNEL="PACKET_JOINED_SRC_CHANNEL",a.PACKET_JOINED_DEST_CHANNEL="PACKET_JOINED_DEST_CHANNEL",a.PACKET_SENT_TO_DEST_CHANNEL="PACKET_SENT_TO_DEST_CHANNEL",a.PACKET_RECEIVED_VIDEO_FROM_SRC="PACKET_RECEIVED_VIDEO_FROM_SRC",a.PACKET_RECEIVED_AUDIO_FROM_SRC="PACKET_RECEIVED_AUDIO_FROM_SRC",a.PACKET_UPDATE_DEST_CHANNEL="PACKET_UPDATE_DEST_CHANNEL",a.PACKET_UPDATE_DEST_CHANNEL_REFUSED="PACKET_UPDATE_DEST_CHANNEL_REFUSED",a.PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE="PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE",a}({}),$A=function(a){return a.RELAY_STATE_IDLE="RELAY_STATE_IDLE",a.RELAY_STATE_CONNECTING="RELAY_STATE_CONNECTING",a.RELAY_STATE_RUNNING="RELAY_STATE_RUNNING",a.RELAY_STATE_FAILURE="RELAY_STATE_FAILURE",a}({}),Fd=function(a){return a.RELAY_OK="RELAY_OK",a.SERVER_CONNECTION_LOST="SERVER_CONNECTION_LOST",a.SRC_TOKEN_EXPIRED="SRC_TOKEN_EXPIRED",a.DEST_TOKEN_EXPIRED="DEST_TOKEN_EXPIRED",a}({}),an=function(a){return a.High="high",a.Low="low",a.Audio="audio",a.Screen="screen",a.ScreenLow="screen_low",a}({}),Pn=function(a){return a.DISCONNECT="disconnect",a.CONNECTION_STATE_CHANGE="connection-state-change",a.NETWORK_QUALITY="network-quality",a.STREAM_TYPE_CHANGE="stream-type-change",a.IS_P2P_DISCONNECTED="is-p2p-dis",a.DISCONNECT_P2P="dis-p2p",a.REQUEST_NEW_GATEWAY_LIST="req-gate-url",a.NEED_RENEW_SESSION="need-sid",a.REQUEST_P2P_CONNECTION_PARAMS="request-p2p-connection-params",a.JOIN_RESPONSE="join-response",a.RESET_CONNECTION_EVENTS="reset-connection-events",a.PRE_CONNECT_PC="pre-connect_pc",a.UPDATE_GATEWAY_CONFIG="update-gateway-config",a.VOS_FALLBACK="vos-fallback",a.VOS_FALLBACK_PROMISE="vos-fallback-promise",a.RESET_SIGNAL="reset-signal",a.DATACHANNEL_FAILBACK="datachannel-failback",a}({}),i_=function(a){return a.P2P_DISCONNECTED="P2P_DISCONNECTED",a.A_ROUND_WS_FAILED="A_ROUND_WS_FAILED",a.TIMEOUT="TIMEOUT",a.UNKNOWN_REASON="UNKNOWN_REASON",a}({}),na=function(a){return a[a.Nothing=0]="Nothing",a[a.Audio=1]="Audio",a[a.LwoVideo=2]="LwoVideo",a[a.Video=4]="Video",a[a.Data=8]="Data",a[a.DataStream0=256]="DataStream0",a[a.DataStream1=512]="DataStream1",a[a.DataStream2=1024]="DataStream2",a[a.DataStream3=2048]="DataStream3",a[a.DataStream4=4096]="DataStream4",a[a.DataStream5=8192]="DataStream5",a[a.DataStream6=16384]="DataStream6",a[a.DataStream7=32768]="DataStream7",a}({}),fn=function(a){return a.CHINA="CHINA",a.ASIA="ASIA",a.NORTH_AMERICA="NORTH_AMERICA",a.EUROPE="EUROPE",a.JAPAN="JAPAN",a.INDIA="INDIA",a.KOREA="KOREA",a.HKMC="HKMC",a.US="US",a.OCEANIA="OCEANIA",a.SOUTH_AMERICA="SOUTH_AMERICA",a.AFRICA="AFRICA",a.OVERSEA="OVERSEA",a.GLOBAL="GLOBAL",a.EXTENSIONS="EXTENSIONS",a}({}),n_=[fn.AFRICA,fn.ASIA,fn.CHINA,fn.EUROPE,fn.GLOBAL,fn.INDIA,fn.JAPAN,fn.NORTH_AMERICA,fn.OCEANIA,fn.OVERSEA,fn.SOUTH_AMERICA],ka=function(a){return a.CHINA="CN",a.ASIA="AS",a.NORTH_AMERICA="NA",a.EUROPE="EU",a.JAPAN="JP",a.INDIA="IN",a.KOREA="KR",a.HKMC="HK",a.US="US",a.OCEANIA="OC",a.SOUTH_AMERICA="SA",a.AFRICA="AF",a.OVERSEA="OVERSEA",a.GLOBAL="GLOBAL",a.EXTENSIONS="GLOBAL",a}({}),KC={CHINA:{},ASIA:{CODE:ka.ASIA,WEBCS_DOMAIN:["ap-web-1-asia.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-asia.agora.io"],PROXY_CS:["proxy-ap-web-asia.agora.io"],CDS_AP:["cds-ap-web-asia.agora.io","cds-ap-web-asia2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-asia.agora.io","sua-ap-web-asia2.agora.io"],UAP_AP:["uap-ap-web-asia.agora.io","uap-ap-web-asia2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-asia.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-asia.agora.io"],LOG_UPLOAD_SERVER:["logservice-asia.agora.io"],PROXY_SERVER_TYPE3:["southeast-asia.webrtc-cloud-proxy.sd-rtn.com"]},NORTH_AMERICA:{CODE:ka.NORTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-north-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-north-america.agora.io"],PROXY_CS:["proxy-ap-web-america.agora.io"],CDS_AP:["cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],UAP_AP:["uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-north-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-north-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-north-america.agora.io"],PROXY_SERVER_TYPE3:["east-usa.webrtc-cloud-proxy.sd-rtn.com"]},EUROPE:{CODE:ka.EUROPE,WEBCS_DOMAIN:["ap-web-1-europe.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-europe.agora.io"],PROXY_CS:["proxy-ap-web-europe.agora.io"],CDS_AP:["cds-ap-web-europe.agora.io","cds-ap-web-europe2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-europe.agora.io","sua-ap-web-europe.agora.io"],UAP_AP:["uap-ap-web-europe.agora.io","uap-ap-web-europe2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-europe.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-europe.agora.io"],LOG_UPLOAD_SERVER:["logservice-europe.agora.io"],PROXY_SERVER_TYPE3:["europe.webrtc-cloud-proxy.sd-rtn.com"]},JAPAN:{CODE:ka.JAPAN,WEBCS_DOMAIN:["ap-web-1-japan.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-japan.agora.io"],PROXY_CS:["proxy-ap-web-japan.agora.io"],CDS_AP:["cds-ap-web-japan.agora.io","cds-ap-web-japan2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-japan.agora.io","sua-ap-web-japan2.agora.io"],UAP_AP:["uap-ap-web-japan.agora.io","uap-ap-web-japan2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-japan.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-japan.agora.io"],LOG_UPLOAD_SERVER:["logservice-japan.agora.io"],PROXY_SERVER_TYPE3:["japan.webrtc-cloud-proxy.sd-rtn.com"]},INDIA:{CODE:ka.INDIA,WEBCS_DOMAIN:["ap-web-1-india.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-india.agora.io"],PROXY_CS:["proxy-ap-web-india.agora.io"],CDS_AP:["cds-ap-web-india.agora.io","cds-ap-web-india2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-india.agora.io","sua-ap-web-india2.agora.io"],UAP_AP:["uap-ap-web-india.agora.io","uap-ap-web-india2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-india.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-india.agora.io"],LOG_UPLOAD_SERVER:["logservice-india.agora.io"],PROXY_SERVER_TYPE3:["india.webrtc-cloud-proxy.sd-rtn.com"]},KOREA:{CODE:ka.KOREA,WEBCS_DOMAIN:["ap-web-1-korea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-korea.agora.io"],PROXY_CS:["proxy-ap-web-korea.agora.io"],CDS_AP:["cds-ap-web-korea.agora.io","cds-ap-web-korea2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-korea.agora.io","sua-ap-web-korea2.agora.io"],UAP_AP:["uap-ap-web-korea.agora.io","uap-ap-web-korea2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-korea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-korea.agora.io"],LOG_UPLOAD_SERVER:["logservice-korea.agora.io"],PROXY_SERVER_TYPE3:["korea.webrtc-cloud-proxy.sd-rtn.com"]},HKMC:{CODE:ka.HKMC,WEBCS_DOMAIN:["ap-web-1-hkmc.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-hkmc.agora.io"],PROXY_CS:["proxy-ap-web-hkmc.agora.io"],CDS_AP:["cds-ap-web-hkmc.agora.io","cds-ap-web-hkmc2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-hkmc.agora.io","sua-ap-web-hkmc2.agora.io"],UAP_AP:["uap-ap-web-hkmc.agora.io","uap-ap-web-hkmc2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-hkmc.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-hkmc.agora.io"],LOG_UPLOAD_SERVER:["logservice-hkmc.agora.io"],PROXY_SERVER_TYPE3:["hkmc.webrtc-cloud-proxy.sd-rtn.com"]},US:{CODE:ka.US,WEBCS_DOMAIN:["ap-web-1-us.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-us.agora.io"],PROXY_CS:["proxy-ap-web-us.agora.io"],CDS_AP:["cds-ap-web-us.agora.io","cds-ap-web-us2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-us.agora.io","sua-ap-web-us2.agora.io"],UAP_AP:["uap-ap-web-us.agora.io","uap-ap-web-us2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-us.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-us.agora.io"],LOG_UPLOAD_SERVER:["logservice-us.agora.io"],PROXY_SERVER_TYPE3:["us.webrtc-cloud-proxy.sd-rtn.com"]},OVERSEA:{CODE:ka.OVERSEA,WEBCS_DOMAIN:["ap-web-1-oversea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oversea.agora.io"],PROXY_CS:["proxy-ap-web-oversea.agora.io"],CDS_AP:["cds-ap-web-oversea.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oversea.agora.io"],UAP_AP:["uap-ap-web-oversea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oversea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oversea.agora.io"],LOG_UPLOAD_SERVER:["logservice-oversea.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.agora.io"]},GLOBAL:{CODE:ka.GLOBAL,WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-ap-web-3.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-ap-web-3.agora.io"],UAP_AP:["uap-ap-web-1.agora.io","uap-ap-web-3.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2.agora.io"],LOG_UPLOAD_SERVER:["logservice.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com"]},OCEANIA:{CODE:ka.OCEANIA,WEBCS_DOMAIN:["ap-web-1-oceania.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oceania.agora.io"],PROXY_CS:["proxy-ap-web-oceania.agora.io"],CDS_AP:["cds-ap-web-oceania.agora.io","cds-ap-web-oceania2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oceania.agora.io","sua-ap-web-oceania2.agora.io"],UAP_AP:["uap-ap-web-oceania.agora.io","uap-ap-web-oceania2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oceania.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oceania.agora.io"],LOG_UPLOAD_SERVER:["logservice-oceania.agora.io"],PROXY_SERVER_TYPE3:["oceania.webrtc-cloud-proxy.sd-rtn.com"]},SOUTH_AMERICA:{CODE:ka.SOUTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-south-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-south-america.agora.io"],PROXY_CS:["proxy-ap-web-south-america.agora.io"],CDS_AP:["cds-ap-web-south-america.agora.io","cds-ap-web-south-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-south-america.agora.io","sua-ap-web-south-america2.agora.io"],UAP_AP:["uap-ap-web-south-america.agora.io","uap-ap-web-south-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-south-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-south-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-america.agora.io"],PROXY_SERVER_TYPE3:["south-america.webrtc-cloud-proxy.sd-rtn.com"]},AFRICA:{CODE:ka.AFRICA,WEBCS_DOMAIN:["ap-web-1-africa.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-africa.agora.io"],PROXY_CS:["proxy-ap-web-africa.agora.io"],CDS_AP:["cds-ap-web-africa.agora.io","cds-ap-web-africa2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-africa.agora.io","sua-ap-web-africa2.agora.io"],UAP_AP:["uap-ap-web-africa.agora.io","uap-ap-web-africa2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-africa.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-africa.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-africa.agora.io"],PROXY_SERVER_TYPE3:["africa.webrtc-cloud-proxy.sd-rtn.com"]},EXTENSIONS:{}};u2&&(KC.CHINA={CODE:ka.CHINA,WEBCS_DOMAIN:["webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["proxy-web.ap.sd-rtn.com"],CDS_AP:["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-web-2.ap.sd-rtn.com","uap-web-4.ap.sd-rtn.com"],EVENT_REPORT_DOMAIN:["web-3.statscollector.sd-rtn.com"],EVENT_REPORT_BACKUP_DOMAIN:["web-4.statscollector.sd-rtn.com"],LOG_UPLOAD_SERVER:["logservice-china.agora.io"],PROXY_SERVER_TYPE3:["east-cn.webrtc-cloud-proxy.sd-rtn.com"]});let Il=function(a){return a.UPDATE_BITRATE_LIMIT="update_bitrate_limit",a.UPDATE_CLIENT_ROLE_OPTIONS="update_client_role_options",a.UPDATE_REMOTE_VIDEO_STREAM_TYPE="update_remote_video_stream_type",a.FALLBACK_TO_HLS="fallback_to_hls",a.UPDATE_VOS_CONFIGURE="update_vos_configure",a}({});function by(a){return!!a&&!(!a.uplink||!a.id)&&a.uplink.max_bitrate!==void 0&&a.uplink.min_bitrate!==void 0}class EN extends io{constructor(A,l){super(),Ae(this,"onICEConnectionStateChange",void 0),Ae(this,"onConnectionStateChange",void 0),Ae(this,"onDTLSTransportStateChange",void 0),Ae(this,"onDTLSTransportError",void 0),Ae(this,"onICETransportStateChange",void 0),Ae(this,"onFirstAudioReceived",void 0),Ae(this,"onFirstVideoReceived",void 0),Ae(this,"onFirstAudioDecoded",void 0),Ae(this,"onFirstVideoDecoded",void 0),Ae(this,"onFirstVideoRender",void 0),Ae(this,"onFirstVideoBufferReady",void 0),Ae(this,"onFirstVideoDecodedTimeout",void 0),Ae(this,"onSelectedLocalCandidateChanged",void 0),Ae(this,"onSelectedRemoteCandidateChanged",void 0),Ae(this,"onICECandidateError",void 0),Ae(this,"getLocalVideoStats",void 0)}}class Gd extends EN{constructor(A,l){super(A,l),Ae(this,"establishPromise",void 0)}}let $t=function(a){return a.VIDEO="video",a.AUDIO="audio",a}({}),Ls=function(a){return a.UDP_RELAY="udp_relay",a.UDP_TCP_RELAY="udp_tcp_relay",a.TCP_RELAY="tcp_relay",a.RELAY="relay",a}({}),$l=function(a){return a[a.FIRST_CONNECTION=0]="FIRST_CONNECTION",a[a.UDP_TCP_RESTART=1]="UDP_TCP_RESTART",a[a.RELAY_RESTART=2]="RELAY_RESTART",a[a.TCP_RESTART=3]="TCP_RESTART",a[a.OLD_FIRST_CONNECTION=10]="OLD_FIRST_CONNECTION",a[a.OLD_RESTART=11]="OLD_RESTART",a[a.DISCONNECTED_OR_FAILED=20]="DISCONNECTED_OR_FAILED",a}({}),Ch=["disconnected","failed"],St=function(a){return a.LocalVideoTrack="videoTrack",a.LocalAudioTrack="audioTrack",a.LocalVideoLowTrack="videoLowTrack",a}({}),An=function(a){return a.New="new",a.Connected="connected",a.Reconnecting="reconnecting",a.Disconnected="disconnected",a}({}),hr=function(a){return a.AudioMetadata="audioMetadata",a.AudioPts="audioPts",a.StateChange="stateChange",a.IceConnectionStateChange="iceConnectionStateChange",a.RequestMuteLocal="requestMuteLocal",a.RequestUnmuteLocal="requestUnmuteLocal",a.RequestRePublish="requestRePublish",a.RequestRePublishDataChannel="requestRePublishDataChannel",a.RequestReSubscribe="requestReSubscribe",a.RequestUploadStats="requestUploadStats",a.RequestUpload="requestUpload",a.MediaReconnectStart="MediaReconnectStart",a.MediaReconnectEnd="MediaReconnectEnd",a.NeedSignalRTT="NeedSignalRTT",a.RequestRestartICE="RequestRestartIce",a.PeerConnectionStateChange="PeerConnectionStateChange",a.RequestReconnect="RequestReconnect",a.RequestReconnectPC="RequestReconnectPC",a.RequestUnpublishForReconnectPC="RequestUnpublishForReconnectPC",a.P2PLost="P2PLost",a.UpdateVideoEncoder="UpdateVideoEncoder",a.ConnectionTypeChange="ConnectionTypeChange",a.RequestLowStreamParameter="RequestLowStreamParameter",a.QueryClientConnectionState="QueryClientConnectionState",a.LocalCandidate="LocalCandidate",a.RequestP2PMuteLocal="requestP2PMuteLocal",a.RequestP2PUnPublish="RequestP2PUnPublish",a.RequestP2PUnmuteRemote="RequestP2PUnmuteRemote",a.RequestP2PMuteRemote="RequestP2PMuteRemote",a.RequestP2PRestartICE="RequestP2PRestartICE",a.FirstVideoPreRender="FirstVideoPreRender",a.FirstVideoBufferReady="FirstVideoBufferReady",a}({}),Cl=function(a){return a.CONNECTING="CONNECTING",a.RECONNECTING="RECONNECTING",a.CONNECTED="CONNECTED",a.CLOSED="CLOSED",a}({}),Zl=function(a){return a[a.CONNECT_AP=0]="CONNECT_AP",a[a.AP_CONNECTED=1]="AP_CONNECTED",a[a.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",a[a.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",a[a.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",a[a.CONNECT_WORKER=5]="CONNECT_WORKER",a[a.WORKER_CONNECTED=6]="WORKER_CONNECTED",a[a.CLOSED=7]="CLOSED",a}({}),sa=function(a){return a.CONNECTION_STATE_CHANGE="connection-state-change",a.STATE_CHANGE="state-change",a.INSPECT_RESULT="inspect-result",a.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",a.REQUEST_NEW_WORKER_URL="request-new-worker-url",a}({}),Ou=function(a){return a.NETWORK_ERROR="NETWORK_ERROR",a.SERVER_ERROR="SERVER_ERROR",a.MULTI_IP="MULTI_IP",a.TIMEOUT="TIMEOUT",a.OFFLINE="OFFLINE",a.LEAVE="LEAVE",a.P2P_FAILED="P2P_FAILED",a.FALLBACK="FALLBACK",a}({}),Ms=function(a){return a.CONNECTED="transmitter:connected",a.RECONNECTING="transmitter:reconnecting",a.WILL_RECONNECT="transmitter:will_reconnect",a.CLOSED="transmitter:closed",a.FAILED="transmitter:failed",a.ON_MESSAGE="transmitter:on_message",a.REQUEST_NEW_URLS="transmitter:request_new_urls",a.RECONNECT_CREATE_CONNECTION="transmitter:reconnect_create_connection",a.ON_TOKEN_PRIVILEGE_DID_EXPIRE="transmitter:on_token_privilege_did_expire",a.TO_CONNECT_DATACHANNEL="transmitter:to_connect_datachannel",a.FAILBACK="transmitter:failback",a.PRE_CONNECT_PC="transmitter:pre_connect_pc",a}({}),nc=function(a){return a.CAMERA_CHANGED="camera-changed",a.MICROPHONE_CHANGED="microphone-changed",a.PLAYBACK_DEVICE_CHANGED="playback-device-changed",a.AUDIO_AUTOPLAY_FAILED="audio-autoplay-failed",a.AUTOPLAY_FAILED="autoplay-failed",a.AUDIO_CONTEXT_STATE_CHANGED="audio-context-state-changed",a.SECURITY_POLICY_VIOLATION="security-policy-violation",a}({}),ba=function(a){return a.CONNECTING="CONNECTING",a.RECONNECTING="RECONNECTING",a.CONNECTED="CONNECTED",a.CLOSED="CLOSED",a}({}),Pc=function(a){return a.CONNECTION_STATE_CHANGE="connection-state-change",a.STATE_CHANGE="state-change",a.INSPECT_RESULT="inspect-result",a.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",a.REQUEST_NEW_WORKER_URL="request-new-worker-url",a}({}),b2=function(a){return a[a.CONNECT_AP=0]="CONNECT_AP",a[a.AP_CONNECTED=1]="AP_CONNECTED",a[a.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",a[a.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",a[a.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",a[a.CONNECT_WORKER=5]="CONNECT_WORKER",a[a.WORKER_CONNECTED=6]="WORKER_CONNECTED",a[a.CLOSED=7]="CLOSED",a}({}),Ro=function(a){return a.CALL="call",a.CANDIDATE="candidate",a.PUBLISH="publish",a.UNPUBLISH="unpublish",a.CONTROL="control",a.RESTART_ICE="restart_ice",a.ACK="ack",a.RESPONSE="response",a.JOIN="join",a.CHECK="check",a}({}),_1=function(a){return a.ABORT="abort",a}({}),Vd=function(a){return a.MUTE_LOCAL_AUDIO="mute_local_audio",a.MUTE_LOCAL_VIDEO="mute_local_video",a.UNMUTE_LOCAL_AUDIO="unmute_local_audio",a.UNMUTE_LOCAL_VIDEO="unmute_local_video",a}({}),Ny=function(a){return a.P2P_TOKEN_TIMEOUT="p2p_token_timeout",a.P2P_TOKEN_CHANGED="p2p_token_changed",a}({}),jJ={[e_.ACCESS_POINT]:{[dA.NO_FLAG_SET]:{desc:"flag is zero",retry:!1},[dA.FLAG_SET_BUT_EMPTY]:{desc:"flag is empty",retry:!1},[dA.INVALID_FALG_SET]:{desc:"invalid flag",retry:!1},[dA.FLAG_SET_BUT_NO_RE]:{desc:"flag set unilbs but no request",retry:!1},[dA.INVALID_SERVICE_ID]:{desc:"invalid service id",retry:!1},[dA.NO_SERVICE_AVAILABLE]:{desc:"no service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_P2P]:{desc:"no unilbs p2p service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_VOICE]:{desc:"no unilbs voice service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_WEBRTC]:{desc:"no unilbs webrtc service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_CDS]:{desc:"no cds service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_CDN]:{desc:"no cdn dispatcher service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_TDS]:{desc:"no tds service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_REPORT]:{desc:"no unilbs report service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_APP_CENTER]:{desc:"no app center service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_ENV0]:{desc:"no unilbs sig env0 service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_VOET]:{desc:"no unilbs voet service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_STRING_UID]:{desc:"no string uid service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_WEBRTC_UNILBS]:{desc:"no webrtc unilbs service available",retry:!0}},[e_.UNILBS]:{[Oc.INVALID_VENDOR_KEY]:{desc:"invalid vendor key, can not find appid",retry:!1},[Oc.INVALID_CHANNEL_NAME]:{desc:"invalid channel name",retry:!1},[Oc.INTERNAL_ERROR]:{desc:"unilbs internal error",retry:!1},[Oc.NO_AUTHORIZED]:{desc:"invalid token, authorized failed",retry:!1},[Oc.DYNAMIC_KEY_TIMEOUT]:{desc:"dynamic key or token timeout",retry:!1},[Oc.NO_ACTIVE_STATUS]:{desc:"no active status",retry:!1},[Oc.DYNAMIC_KEY_EXPIRED]:{desc:"dynamic key expired",retry:!1},[Oc.STATIC_USE_DYNAMIC_KEY]:{desc:"static use dynamic key",retry:!1},[Oc.DYNAMIC_USE_STATIC_KEY]:{desc:"dynamic use static key",retry:!1},[Oc.USER_OVERLOAD]:{desc:"amount of users over load",retry:!1},[Oc.FORBIDDEN_REGION]:{desc:"the request is forbidden in this area",retry:!1},[Oc.CANNOT_MEET_AREA_DEMAND]:{desc:"unable to allocate services in this area",retry:!1},[Oc.REQ_DOWNGRADE_FALLBACK]:{desc:"request downgrade fallback",retry:!1}},[e_.STRING_UID_ALLOCATOR]:{[wy.IIIEGAL_APPID]:{desc:"invalid appid",retry:!1},[wy.IIIEGAL_UID]:{desc:"invalid string uid",retry:!1},[wy.INTERNAL_ERROR]:{desc:"string uid allocator internal error",retry:!0}}};function N2(a){let A=jJ[Math.floor(a/1e4)];if(!A)return{desc:"unknown error",retry:!1};let l=A[a%1e4];if(!l){if(Math.floor(a/1e4)===e_.ACCESS_POINT){let g=a%1e4;if(g.toString()[0]==="1")return{desc:a.toString(),retry:!1};if(g.toString()[0]==="2")return{desc:a.toString(),retry:!0}}return{desc:"unknown error",retry:!1}}return l}let Oy={[mr.K_TIMESTAMP_EXPIRED]:{desc:"K_TIMESTAMP_EXPIRED",action:"failed"},[mr.K_CHANNEL_PERMISSION_INVALID]:{desc:"K_CHANNEL_PERMISSION_INVALID",action:"failed"},[mr.K_CERTIFICATE_INVALID]:{desc:"K_CERTIFICATE_INVALID",action:"failed"},[mr.K_CHANNEL_NAME_EMPTY]:{desc:"K_CHANNEL_NAME_EMPTY",action:"failed"},[mr.K_CHANNEL_NOT_FOUND]:{desc:"K_CHANNEL_NOT_FOUND",action:"failed"},[mr.K_TICKET_INVALID]:{desc:"K_TICKET_INVALID",action:"failed"},[mr.K_CHANNEL_CONFLICTED]:{desc:"K_CHANNEL_CONFLICTED",action:"failed"},[mr.K_SERVICE_NOT_READY]:{desc:"K_SERVICE_NOT_READY",action:"tryNext"},[mr.K_SERVICE_TOO_HEAVY]:{desc:"K_SERVICE_TOO_HEAVY",action:"tryNext"},[mr.K_UID_BANNED]:{desc:"K_UID_BANNED",action:"failed"},[mr.K_IP_BANNED]:{desc:"K_IP_BANNED",action:"failed"},[mr.DATASTREAM2_NOT_AVAILABLE]:{desc:"DATASTREAM2_NOT_AVAILABLE",action:"quit"},[mr.K_AUTO_REBALANCE]:{desc:"k_AUTO_REBALANCE",action:"recover"},[mr.K_VOS_FALLBACK]:{desc:"K_VOS_FALLBACK",action:"tryNext"},[mr.ERR_INVALID_VENDOR_KEY]:{desc:"ERR_INVALID_VENDOR_KEY",action:"failed"},[mr.ERR_INVALID_CHANNEL_NAME]:{desc:"ERR_INVALID_CHANNEL_NAME",action:"failed"},[mr.WARN_NO_AVAILABLE_CHANNEL]:{desc:"WARN_NO_AVAILABLE_CHANNEL",action:"failed"},[mr.WARN_LOOKUP_CHANNEL_TIMEOUT]:{desc:"WARN_LOOKUP_CHANNEL_TIMEOUT",action:"tryNext"},[mr.WARN_LOOKUP_CHANNEL_REJECTED]:{desc:"WARN_LOOKUP_CHANNEL_REJECTED",action:"failed"},[mr.WARN_OPEN_CHANNEL_TIMEOUT]:{desc:"WARN_OPEN_CHANNEL_TIMEOUT",action:"tryNext"},[mr.WARN_OPEN_CHANNEL_REJECTED]:{desc:"WARN_OPEN_CHANNEL_REJECTED",action:"failed"},[mr.WARN_REQUEST_DEFERRED]:{desc:"WARN_REQUEST_DEFERRED",action:"failed"},[mr.ERR_DYNAMIC_KEY_TIMEOUT]:{desc:"ERR_DYNAMIC_KEY_TIMEOUT",action:"failed"},[mr.ERR_NO_AUTHORIZED]:{desc:"ERR_NO_AUTHORIZED",action:"failed"},[mr.ERR_VOM_SERVICE_UNAVAILABLE]:{desc:"ERR_VOM_SERVICE_UNAVAILABLE",action:"tryNext"},[mr.ERR_NO_CHANNEL_AVAILABLE_CODE]:{desc:"ERR_NO_CHANNEL_AVAILABLE_CODE",action:"failed"},[mr.ERR_MASTER_VOCS_UNAVAILABLE]:{desc:"ERR_MASTER_VOCS_UNAVAILABLE",action:"tryNext"},[mr.ERR_INTERNAL_ERROR]:{desc:"ERR_INTERNAL_ERROR",action:"tryNext"},[mr.ERR_NO_ACTIVE_STATUS]:{desc:"ERR_NO_ACTIVE_STATUS",action:"failed"},[mr.ERR_INVALID_UID]:{desc:"ERR_INVALID_UID",action:"failed"},[mr.ERR_DYNAMIC_KEY_EXPIRED]:{desc:"ERR_DYNAMIC_KEY_EXPIRED",action:"failed"},[mr.ERR_STATIC_USE_DYANMIC_KE]:{desc:"ERR_STATIC_USE_DYANMIC_KE",action:"failed"},[mr.ERR_DYNAMIC_USE_STATIC_KE]:{desc:"ERR_DYNAMIC_USE_STATIC_KE",action:"failed"},[mr.ERR_NO_VOCS_AVAILABLE]:{desc:"ERR_NO_VOCS_AVAILABLE",action:"tryNext"},[mr.ERR_NO_VOS_AVAILABLE]:{desc:"ERR_NO_VOS_AVAILABLE",action:"tryNext"},[mr.ERR_JOIN_CHANNEL_TIMEOUT]:{desc:"ERR_JOIN_CHANNEL_TIMEOUT",action:"tryNext"},[mr.ERR_JOIN_BY_MULTI_IP]:{desc:"ERR_JOIN_BY_MULTI_IP",action:"recover"},[mr.ERR_NOT_JOINED]:{desc:"ERR_NOT_JOINED",action:"failed"},[mr.ERR_REPEAT_JOIN_REQUEST]:{desc:"ERR_REPEAT_JOIN_REQUEST",action:"quit"},[mr.ERR_REPEAT_JOIN_CHANNEL]:{desc:"ERR_REPEAT_JOIN_CHANNEL",action:"quit"},[mr.ERR_INVALID_STRINGUID]:{desc:"ERR_INVALID_STRINGUID",action:"failed"},[mr.ERR_TOO_MANY_USERS]:{desc:"ERR_TOO_MANY_USERS",action:"tryNext"},[mr.ERR_SET_CLIENT_ROLE_TIMEOUT]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[mr.ERR_SET_CLIENT_ROLE_NO_PERMISSION]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[mr.ERR_SET_CLIENT_ROLE_ALREADY_IN_USE]:{desc:"ERR_SET_CLIENT_ROLE_ALREADY_IN_USE",action:"success"},[mr.ERR_PUBLISH_REQUEST_INVALID]:{desc:"ERR_PUBLISH_REQUEST_INVALID",action:"failed"},[mr.ERR_SUBSCRIBE_REQUEST_INVALID]:{desc:"ERR_SUBSCRIBE_REQUEST_INVALID",action:"failed"},[mr.ERR_NOT_SUPPORTED_MESSAGE]:{desc:"ERR_NOT_SUPPORTED_MESSAGE",action:"failed"},[mr.ERR_ILLEAGAL_PLUGIN]:{desc:"ERR_ILLEAGAL_PLUGIN",action:"failed"},[mr.ILLEGAL_CLIENT_ROLE_LEVEL]:{desc:"ILLEGAL_CLIENT_ROLE_LEVEL",action:"failed"},[mr.ERR_REJOIN_TOKEN_INVALID]:{desc:"ERR_REJOIN_TOKEN_INVALID",action:"failed"},[mr.ERR_REJOIN_USER_NOT_JOINED]:{desc:"ERR_REJOIN_NOT_JOINED",action:"failed"},[mr.ERR_INVALID_OPTIONAL_INFO]:{desc:"ERR_INVALID_OPTIONAL_INFO",action:"quit"},[mr.ERR_TEST_RECOVER]:{desc:"ERR_TEST_RECOVER",action:"recover"},[mr.ERR_TEST_TRYNEXT]:{desc:"ERR_TEST_TRYNEXT",action:"recover"},[mr.ERR_TEST_RETRY]:{desc:"ERR_TEST_RETRY",action:"recover"},[mr.ILLEGAL_AES_PASSWORD]:{desc:"ERR_TEST_RETRY",action:"failed"},[mr.ERR_TOO_MANY_BROADCASTERS]:{desc:"ERR_TOO_MANY_BROADCASTERS",action:"failed"},[mr.ERR_TOO_MANY_SUBSCRIBERS]:{desc:"ERR_TOO_MANY_SUBSCRIBERS",action:"failed"},[mr.ERR_LICENSE_ILLEGAL]:{desc:"ERR_LICENSE_ILLEGAL",action:"quit"},[mr.ERR_LICENSE_MISSING]:{desc:"ERR_LICENSE_MISSING",action:"quit"},[mr.ERR_LICENSE_EXPIRED]:{desc:"ERR_LICENSE_EXPIRED",action:"quit"},[mr.ERR_LICENSE_MINUTES_EXCEEDED]:{desc:"ERR_LICENSE_MINUTES_EXCEEDED",action:"quit"},[mr.ERR_LICENSE_PERIOD_INVALID]:{desc:"ERR_LICENSE_PERIOD_INVALID",action:"quit"},[mr.ERR_LICENSE_MULTIPLE_SDK_SERVICE]:{desc:"ERR_LICENSE_MULTIPLE_SDK_SERVICE",action:"quit"}};function O2(a){return Oy[a]||{desc:"UNKNOWN_ERROR_".concat(a),action:"failed"}}function Ly(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function o_(a){for(var A=1;A{A.onopen=null,A.onclose=null,A.onmessage=null,A.close()}),this.websockets.length=0}clearTimeout(){this.forceCloseTimeout&&clearTimeout(this.forceCloseTimeout),this.try443PortTimeout&&clearTimeout(this.try443PortTimeout),this.forceCloseTimeout=null,this.try443PortTimeout=null}logger(){var A;let l=Date.now()-this.startTime;for(var g=arguments.length,C=new Array(g),m=0;m{var q;return Rt(q=A.host).call(q,K)});w||(this.useDoubleDomain=!1);let b=[];if(this.useDoubleDomain)C.forEach(K=>{b.push(My(o_(o_({},A),{},{host:A.host.replace(w,K)}),l))});else{let K=o_({},A);if(l&&w){let q=C.find(ce=>ce!==w);q&&(K.host=K.host.replace(w,q))}b.push(My(K,l))}try{b.forEach(K=>{let q=new WebSocket(K);q.binaryType="arraybuffer",y.push(q),this.logger("ws is connecting:",q.url)})}catch(K){if(this.logger("ws create failed"),y.forEach(q=>q.close()),y.length=0,this.useDoubleDomain)return this.useDoubleDomain=!1,this.createWebSocket(A,l,g);if(!l&&Number(A.port)!==443)return this.createWebSocket(A,!0,g);throw new ze(fe.WS_ERR,"init websocket failed! Error: ".concat(K.toString()))}let M=ff();this.store&&this.store.recordJoinChannelService({urls:y.map(K=>K.url),service:"gateway"},this.recordIndex),y.forEach(K=>{K.onopen=()=>{this.logger("onopen: ws ".concat(K.url," open cost ").concat(Date.now()-m,"ms")),this.websockets.forEach(q=>{q!==K&&(q.onopen=null,q.onclose=null,q.onmessage=null,q.close(),this.logger("close backup websocket: ".concat(q.url)))}),this.websockets.length=0,M.resolve(K)},K.onclose=q=>{this.logger("onclose: ws ".concat(K.url," closed cost ").concat(Date.now()-m,"ms state: ").concat(K.readyState));let ce=y.every(oe=>oe.readyState===WebSocket.CLOSED||oe.readyState===WebSocket.CLOSING);this.logger("".concat(l?"443":"47xx"," websocket closed, all failed: ").concat(ce)),ce&&(l||this.isTry443PortFailed||this.useProxy)?(this.logger("onclose: all websocket is closed, ".concat(q.reason)),M.reject({code:q.code,reason:i_.A_ROUND_WS_FAILED})):!l&&ce&&!this.isNormalPortFailed&&this.try443PortTimeout&&(this.logger("all 47xx websocket is closed, try 443 port"),this.clearTimeout(),V()),l?this.isTry443PortFailed=ce:this.isNormalPortFailed=ce},K.onmessage=q=>this.logger("".concat(K.url," onmessage: ").concat(q.data))}),this.websockets.push(...y);let k=()=>{this.websockets.forEach(K=>K.readyState!==WebSocket.OPEN&&K.close())},V=()=>{if(M.isResolved)return k();Wi().os===Vs.MAC_OS&&uo()&&k(),this.createWebSocket(A,!0,!0).then(K=>{M.resolve(K)}).catch(K=>{this.isNormalPortFailed&&M.reject(K),this.logger("try 443 port to create ws failed")}),this.forceCloseTimeout=window.setTimeout(()=>{this.logger("5s timeout close un-opens, isWebsocket created: ",M.isResolved),this.forceCloseTimeout=null,k()},this.forceCloseWSDuration)};return g||(()=>{if(l||this.useProxy)return this.logger("add 5s timeout at ".concat(l?"try-443":"proxy"," condition")),this.forceCloseTimeout=window.setTimeout(()=>{this.forceCloseTimeout=null,k()},this.forceCloseWSDuration);this.try443PortTimeout=window.setTimeout(()=>{this.logger("2s timeout, isWebsocket created: ",M.isResolved),this.try443PortTimeout=null,V()},this.try443PortDuration)})(),M.promise}chooseBestWebsocket(A,l,g,C){return this.useDoubleDomain=!!l,typeof A=="string"&&(A=function(m){let y,w,b;return[,y,w,b]=m.match(ZU)||[],y||([,w,b]=m.match(e7)||[]),w&&b||([,w,b]=m.match(ky)||[]),w&&b||([,w]=m.match(s_)||[]),w||X.warning("un-destructible url: ",m),{proxy:y,host:w,port:b||"443"}}(A)),this.recordIndex=C,this.useProxy=!!A.proxy,g&&this.useProxy&&(X.warn("cannot use 443 only when use proxy"),g=!1),this.createWebSocket(A,!!g,!1).finally(()=>this.clearTimeout())}}function ph(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}class L2 extends io{get url(){return this.websocket&&this.websocket.url||this._websocketUrl}get reconnectMode(){return this._reconnectMode}set reconnectMode(A){var l;Rt(l=["tryNext","recover"]).call(l,A)&&this.resetReconnectCount(A),this._reconnectMode=A}get state(){return this._state}set state(A){A!==this._state&&(this._state=A,this._state==="reconnecting"?this.emit(qr.RECONNECTING,this.reconnectReason):this._state==="connected"?this.emit(qr.CONNECTED):this._state==="closed"?this.emit(qr.CLOSED):this._state==="failed"&&this.emit(qr.FAILED))}resetReconnectCount(A){X.debug("websocket reset reconnect count, reason: "+A),this.reconnectCount=0}constructor(A,l){let g=arguments.length>2&&arguments[2]!==void 0&&arguments[2],C=arguments.length>3&&arguments[3]!==void 0&&arguments[3],m=arguments.length>4&&arguments[4]!==void 0&&arguments[4],y=arguments.length>5?arguments[5]:void 0;super(),Ae(this,"_websocketUrl",null),Ae(this,"connectionID",0),Ae(this,"currentURLIndex",0),Ae(this,"urls",[]),Ae(this,"_reconnectMode","tryNext"),Ae(this,"reconnectReason",void 0),Ae(this,"_initMutex",void 0),Ae(this,"name",void 0),Ae(this,"_state","closed"),Ae(this,"reconnectInterrupter",void 0),Ae(this,"websocket",void 0),Ae(this,"retryConfig",void 0),Ae(this,"reconnectCount",0),Ae(this,"forceCloseTimeout",5e3),Ae(this,"onlineReconnectListener",void 0),Ae(this,"useCompress",void 0),Ae(this,"tryDoubleDomain",!1),Ae(this,"use443PortOnly",!1),Ae(this,"wsInflateLength",0),Ae(this,"wsDeflateLength",0),Ae(this,"closeEstablishingWs",()=>{}),Ae(this,"store",void 0),Ae(this,"joinGatewayRecordIndex",void 0),this.store=y,this.name=A,this.retryConfig=function(V){for(var K=1;K{V!==K&&(this.resetReconnectCount("network state change: ".concat(K," -> ").concat(V)),V===Va.ONLINE?(this.retryConfig.timeout=M,this.retryConfig.timeoutFactor=k):(this.retryConfig.timeout=w,this.retryConfig.timeoutFactor=b))})}getConnection(){return this.websocket||void 0}async init(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,g=await this._initMutex.lock();this._reconnectMode="tryNext",this.forceCloseTimeout=l,this.urls=A,this.state="connecting";try{var C;let m=ff(),y=this.urls[this.currentURLIndex];(C=this.store)===null||C===void 0||C.beforeConnect(),function(w){return!(Dg()||Ie("USE_NEW_TOKEN")||!Ie("ENABLE_PREALLOC_PC")&&(w==null||!w.autoSubscribe||Ie("FORCE_DISABLE_AUTO_SUB")))}(this.store)&&this.emit(Ms.PRE_CONNECT_PC),this.createWebSocketConnection(y).then(m.resolve).catch(m.reject),this.once(qr.CLOSED,()=>{m.reject(new nt(fe.WS_DISCONNECT))}),this.once(qr.CONNECTED,m.resolve),await m.promise}catch{}finally{g()}}close(A,l){if(this.currentURLIndex=0,this.resetReconnectCount("close"),this.reconnectInterrupter&&this.reconnectInterrupter(),this.websocket){this.websocket.onclose=null,this.websocket.onopen=null,this.websocket.onmessage=null;let g=this.websocket;l?setTimeout(()=>g.close(),500):g.close(),this.websocket=void 0,this._websocketUrl=null}this.state=A?"failed":"closed",this.closeEstablishingWs&&this.closeEstablishingWs()}reconnect(A,l){if(!this.websocket)return void X.warning("[".concat(this.name,"] can not reconnect, no websocket"));A!==void 0&&(this.reconnectMode=A),X.debug("[".concat(this.name,"] reconnect is triggered initiative")),typeof this.joinGatewayRecordIndex=="number"&&this.store&&this.store.recordJoinChannelService({status:"error",errors:[new Error(l)]},this.joinGatewayRecordIndex);let g=this.websocket.onclose;this.websocket.onclose=null,this.websocket.close(),g&&g.bind(this.websocket)({code:9999,reason:l})}sendMessage(A){let l=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this.websocket||this.websocket.readyState!==WebSocket.OPEN)throw new nt(fe.WS_ABORT,"websocket is not ready");try{l||(A=JSON.stringify(A)),this.websocket.send(A)}catch(g){throw new nt(fe.WS_ERR,"send websocket message error"+g.toString())}}setWsInflateData(A){this.wsDeflateLength=this.wsDeflateLength+A.originLength,this.wsInflateLength=this.wsInflateLength+A.compressedLength}getWsInflateData(){let A=this.wsInflateLength,l=this.wsDeflateLength;return this.clearWsInflateData(),{wsInflateLength:A,wsDeflateLength:l}}clearWsInflateData(){this.wsInflateLength=0,this.wsDeflateLength=0}async createWebSocketConnection(A){var l;let g=ff();this.connectionID+=1,this.joinGatewayRecordIndex=void 0;let C=k=>{var V;(V=this.store)===null||V===void 0||V.signalChannelOpen(),X.debug("[".concat(this.name,"] websocket opened:"),k),this.reconnectMode="retry",this.state="connected",this.resetReconnectCount("opened"),g.resolve()},m=async k=>{var V;if(X.debug("[".concat(this.name,"] websocket close ").concat((V=this.websocket)===null||V===void 0?void 0:V.url,", code: ").concat(k.code,", reason: ").concat(k.reason,", current mode: ").concat(this.reconnectMode)),this.reconnectCount>=this.retryConfig.maxRetryCount)g.reject(new nt(fe.WS_DISCONNECT,"websocket close: ".concat(k.code))),this.close();else{this.state==="connected"&&(this.reconnectReason=k.reason,this.state="reconnecting");let K=JA(this,qr.WILL_RECONNECT,this.reconnectMode,k.reason)||this.reconnectMode,q=await this.reconnectWithAction(K);if(this.state==="closed")return void X.debug("[".concat(this.connectionID,"] ws is closed, no need to reconnect"));if(!q)return g.reject(new nt(fe.WS_DISCONNECT,"websocket reconnect failed: ".concat(k.code))),this.close(!0);g.resolve()}},y=k=>{this.emit(qr.ON_MESSAGE,k)},w=k=>{X.warn("[".concat(this.connectionID,"] ws open error ").concat(k))};this.websocket&&(this.websocket.onclose=null,this.websocket.close()),Ie("GATEWAY_WSS_ADDRESS")&&this.name.startsWith("gateway")&&(A=Ie("GATEWAY_WSS_ADDRESS")),X.debug("[".concat(this.name,"] start connect, url:"),A);let b=(l=this.store)===null||l===void 0?void 0:l.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"});try{var M;this._websocketUrl=My(A);let k=await this.chooseBestWebsocketConnection(A);this.websocket=k,C&&C(this.websocket.url),this.websocket.onclose=m,this.websocket.onmessage=y,this.websocket.onerror=w,(M=this.store)===null||M===void 0||M.recordJoinChannelService({endTs:Date.now(),status:"success"},b),this.joinGatewayRecordIndex=b}catch(k){let V=this.state==="closed",K=k instanceof nt,q=K&&k.code===fe.WS_ABORT,ce=K&&k.code===fe.WS_ERR,oe=K?k.message:k&&(k.reason||k.toString());X.warning("[choose-best-ws] chooseBestWebsocket error: ".concat(oe)),this.store&&this.store.recordJoinChannelService({endTs:Date.now(),status:q?"aborted":"error",errors:[k]},b),V||ce?(g.reject(V?new nt(fe.WS_DISCONNECT,"websocket is closed: ".concat(oe)):new nt(fe.WS_ERR,"init websocket failed: ".concat(oe))),ce&&X.error("[".concat(this.name,"] init websocket failed: ").concat(oe))):m&&m(k)}return g.promise}async reconnectWithAction(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this.reconnectCount>=this.retryConfig.maxRetryCount||this.urls.length===0||this.state==="closed")return!1;X.warning("[choose-best-ws] action: =>",A),this.onlineReconnectListener||Xi.isOnline||!Xi.onlineWaiter||(this.onlineReconnectListener=Xi.onlineWaiter.then(()=>{this.onlineReconnectListener=void 0}));let g=!0;if(this.reconnectInterrupter=()=>g=!1,l){let y=Y1(this.reconnectCount,this.retryConfig);X.debug("[".concat(this.name,"] wait ").concat(y,"ms to reconnect websocket, mode: ").concat(A)),await Ft.race([Ks(y),this.onlineReconnectListener||new Ft(()=>{})])}if(this._state==="closed"||!g)return!1;this.reconnectCount+=1;let C=async(y,w)=>{this.emit(qr.RECONNECT_CREATE_CONNECTION,w),await this.createWebSocketConnection(y)};try{if(A==="retry")await C(this.urls[this.currentURLIndex],A);else if(A==="tryNext"){if(this.currentURLIndex+=1,this.currentURLIndex>=this.urls.length)return this.reconnectWithAction("recover",!1);X.debug("[".concat(this.name,"] websocket url length: ").concat(this.urls.length," current index: ").concat(this.currentURLIndex)),await C(this.urls[this.currentURLIndex],A)}else A==="recover"&&(X.debug("[".concat(this.name,"] request new urls")),this.resetReconnectCount("recover mode"),this.urls=await rs(this,qr.REQUEST_NEW_URLS),this.currentURLIndex=0,await C(this.urls[this.currentURLIndex],A))}catch(y){var m;X.error("[".concat(this.name,"] reconnect failed ").concat(y&&y.toString()));let w=y==null||(m=y.data)===null||m===void 0?void 0:m.desc;if(Array.isArray(w)){if(Rt(w).call(w,"dynamic key expired"))return this.emit(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1;if(Rt(w).call(w,"request downgrade fallback"))return this.emit(qr.ON_FALLBACK),!1}return this.reconnectWithAction(A,l)}return!0}}class Lu extends L2{constructor(A,l){super(A,l,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(A,l){let g=ff(),C=function(y,w){return new t7(y,w)}(this.forceCloseTimeout,this.store);this.closeEstablishingWs=()=>{X.debug("[choose-best-ws] close establishing websockets"),C.closeAllWebsockets(),g.reject(new nt(fe.WS_ABORT,"choose best websocket aborted"))};let m=Ie("GATEWAY_DOMAINS");return X.debug("[choose-best-ws] currentDomain: ",A,", domains: ",m,"total: ".concat(this.urls.length),"current: ".concat(this.currentURLIndex+1)),C.chooseBestWebsocket(A,this.tryDoubleDomain,this.use443PortOnly,l).then(g.resolve).catch(g.reject),g.promise.finally(()=>{this.closeEstablishingWs=void 0})}}class M2 extends L2{constructor(A,l){super(A,l,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(A,l){return new Ft((g,C)=>{let m=!1,y=[];this.closeEstablishingWs=()=>{X.debug("[choose-best-ws] close establishing websockets"),y.forEach(ce=>{ce.onclose=null,ce.onopen=null,ce.onmessage=null,ce.close()}),C(new nt(fe.WS_ABORT,"choose best websocket aborted"))};let w=Ie("GATEWAY_DOMAINS"),b,M=A.indexOf("?h="),k=w.find(ce=>M!==-1?Rt(A).call(A,ce,M):Rt(A).call(A,ce));X.debug("[choose-best-ws] currentDomain: ",k,", domains: ",w);let V=!this.tryDoubleDomain||!k;if(!V&&k){var K;let ce=Date.now();try{w.forEach(oe=>{let le=M===-1?A.replace(k,oe):A.substr(0,M)+A.substr(M).replace(k,oe),pe=new WebSocket(le);pe.binaryType="arraybuffer",y.push(pe),X.debug("[choose-best-ws] ws is connecting:",pe.url)})}catch{for(X.debug("[choose-best-ws] ws create failed, fallback to single url"),y.forEach(oe=>oe.close());y.length;)y.pop();V=!0}(K=this.store)===null||K===void 0||K.recordJoinChannelService({urls:y.map(oe=>oe.url),service:"gateway"},l),y.forEach(oe=>{oe.onopen=()=>{if(m)return;let le=Date.now()-ce;X.debug("[choose-best-ws] ws open cost ".concat(le,"ms")),y.filter(pe=>pe!==oe).forEach(pe=>{X.debug("[choose-best-ws]close backup websocket: ".concat(pe.url)),pe.close()}),m=!0,g(oe)},oe.onclose=le=>{b=le,!m&&(y.find(pe=>!(pe.readyState===WebSocket.CLOSED||pe.readyState===WebSocket.CLOSING))||(X.debug("[choose-best-ws] all websocket is closed"),m=!0,C(b)))},oe.onmessage=le=>{X.debug("[choose-best-ws]".concat(oe.url," onmessage: ").concat(le.data))}}),Ks(this.forceCloseTimeout).then(()=>{y.forEach(oe=>{oe.readyState!==WebSocket.OPEN&&oe.close()})})}if(V){var q;let ce;X.debug("[choose-best-ws] use single url: ",A),(q=this.store)===null||q===void 0||q.recordJoinChannelService({urls:[A],service:"gateway"},l);try{ce=new WebSocket(A),y.push(ce),ce.binaryType="arraybuffer"}catch(oe){let le=new nt(fe.WS_ERR,"init websocket failed! Error: ".concat(oe.toString()));return X.error("[".concat(this.name,"]").concat(le)),void C(le)}ce.onopen=()=>{g(ce)},ce.onclose=oe=>{C(oe)},ce.onmessage=oe=>{X.debug("[choose-best-ws]".concat(ce.url," onmessage: ").concat(oe.data))},Ks(this.forceCloseTimeout).then(()=>{ce&&ce.readyState!==WebSocket.OPEN&&ce.close()})}}).then(g=>(this.closeEstablishingWs=void 0,g)).catch(g=>{throw this.closeEstablishingWs=void 0,g})}}class r7 extends io{get connectionState(){return this._connectionState}set connectionState(A){A!==this._connectionState&&(this._connectionState=A,A===vi.CONNECTED?this.emit(or.WS_CONNECTED):A===vi.RECONNECTING?this.emit(or.WS_RECONNECTING,this._websocketReconnectReason):A===vi.CLOSED&&this.emit(or.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(A,l){super(),Ae(this,"__name__","AgoraRTCSignal"),Ae(this,"_disconnectedReason",void 0),Ae(this,"_websocketReconnectReason",void 0),Ae(this,"_connectionState",vi.CLOSED),Ae(this,"reconnectToken",void 0),Ae(this,"websocket",void 0),Ae(this,"openConnectionTime",void 0),Ae(this,"clientId",void 0),Ae(this,"lastMsgTime",Date.now()),Ae(this,"uploadCache",[]),Ae(this,"uploadCacheInterval",void 0),Ae(this,"rttRolling",new OR(5)),Ae(this,"pingpongTimer",void 0),Ae(this,"wsInflateDataTimer",void 0),Ae(this,"pingpongTimeoutCount",0),Ae(this,"ortc",void 0),Ae(this,"joinResponse",void 0),Ae(this,"multiIpOption",void 0),Ae(this,"initError",void 0),Ae(this,"spec",void 0),Ae(this,"store",void 0),Ae(this,"onWebsocketMessage",g=>{if(g.data instanceof ArrayBuffer)return void this.emit(or.ON_BINARY_DATA,g.data);let C=JSON.parse(g.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(C,"_id")){let m="res-@".concat(C._id);this.emit(m,C._result,C._message)}else if(Object.prototype.hasOwnProperty.call(C,"_type")){if(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED)switch(C._message.error_code){case 14:this.close(bi.UID_BANNED);break;case 15:this.close(bi.IP_BANNED);break;case 16:this.close(bi.CHANNEL_BANNED)}if(C._type===Or.ON_USER_LICENSE_BANNED)switch(C._message.error_code){case mr.ERR_LICENSE_MISSING:this.close(bi.LICENSE_MISSING);break;case mr.ERR_LICENSE_EXPIRED:this.close(bi.LICENSE_EXPIRED);break;case mr.ERR_LICENSE_MINUTES_EXCEEDED:this.close(bi.LICENSE_MINUTES_EXCEEDED);break;case mr.ERR_LICENSE_PERIOD_INVALID:this.close(bi.LICENSE_PERIOD_INVALID);break;case mr.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(bi.LICENSE_MULTIPLE_SDK_SERVICE);break;case mr.ERR_LICENSE_ILLEGAL:this.close(bi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=A.clientId,this.spec=A,this.store=l,this.websocket=new Lu("gateway-".concat(this.clientId),this.spec.retryConfig,!0,Ie("JOIN_GATEWAY_USE_DUAL_DOMAIN"),Ie("JOIN_GATEWAY_USE_443PORT_ONLY"),l),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===vi.CONNECTED&&this.reconnect("retry",xo.OFFLINE)})}async request(A,l,g,C){let m=yn(6,""),y={_id:m,_type:A,_message:l},w=this.websocket.connectionID,b=()=>new Ft((ce,oe)=>{if(this.connectionState===vi.CONNECTED)return ce();let le=()=>{this.off(or.WS_CLOSED,pe),ce()},pe=()=>{this.off(or.WS_CONNECTED,le),oe(new ze(fe.WS_ABORT))};this.once(or.WS_CONNECTED,le),this.once(or.WS_CLOSED,pe),A!==sr.PUBLISH&&A!==sr.PUBLISH_DATASTREAM&&A!==sr.SUBSCRIBE&&A!==sr.SUBSCRIBE_DATASTREAM&&A!==sr.UNSUBSCRIBE&&A!==sr.UNSUBSCRIBE_DATASTREAM&&A!==sr.UNPUBLISH&&A!==sr.UNPUBLISH_DATASTREAM&&A!==sr.CONTROL&&A!==sr.RESTART_ICE||this.once(or.DISCONNECT_P2P,()=>{oe(new ze(fe.DISCONNECT_P2P))}),A!==sr.PUBLISH&&A!==sr.RESTART_ICE||this.once(or.ABORT_P2P_EXECUTION,()=>{oe(new ze(fe.DISCONNECT_P2P))})});if(this.connectionState!==vi.CONNECTING&&this.connectionState!==vi.RECONNECTING||A===sr.JOIN||A===sr.REJOIN||await b(),this.websocket.sendMessage(y,!0),C)return;let M=new Ft((ce,oe)=>{let le=!1,pe=(be,Ue)=>{le=!0,ce({isSuccess:be==="success",message:Ue||{}}),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.emit(or.REQUEST_SUCCESS,A,l)};this.once("res-@".concat(m),pe);let Se=()=>{oe(new ze(fe.WS_ABORT,"type: ".concat(A))),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.off("res-@".concat(m),pe)};this.once(or.WS_CLOSED,Se),this.once(or.WS_RECONNECTING,Se),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||le||(X.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(A)),this.emit(or.REQUEST_TIMEOUT,A,l))})}),k=null;try{k=await M}catch(ce){if(this.connectionState===vi.CLOSED||A===sr.LEAVE)throw new ze(fe.WS_ABORT);return!this.spec.forceWaitGatewayResponse||g?ce.throw():A===sr.JOIN||A===sr.REJOIN?null:(await b(),await this.request(A,l))}if(k.isSuccess)return k.message;let V=Number(k.message.error_code||k.message.code),K=O2(V),q=new ze(fe.UNEXPECTED_RESPONSE,"".concat(K.desc,": ").concat(k.message.error_str),{code:V,data:k.message,desc:K.desc});return K.action==="success"?k.message:(X.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(A,", error_code: ").concat(V,", message: ").concat(K.desc,", action: ").concat(K.action)),V===mr.ERR_TOO_MANY_BROADCASTERS?((A===sr.JOIN||A===sr.REJOIN)&&(this.initError=q,this.close()),q.throw()):K.action==="failed"?q.throw():K.action==="quit"?(this.initError=q,this.close(),q.throw()):(V===mr.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=k.message.option,X.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",xo.MULTI_IP)):this.reconnect(K.action,xo.SERVER_ERROR),A===sr.JOIN||A===sr.REJOIN?null:await this.request(A,l)))}waitMessage(A,l){return new Ft(g=>{let C=m=>{(!l||l(m))&&(this.off(A,C),g(m))};this.on(A,C)})}uploadWRTCStats(A){if(!this.store.sessionId)return void X.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let l={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:A};this.upload(pn.WRTC_STATS,l)}upload(A,l){let g={_type:A,_message:l};try{this.websocket.sendMessage(g)}catch{let C=Ie("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(g),this.uploadCache.length>C&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==vi.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},Ie("UPLOAD_CACHE_INTERVAL")||2e3))}}send(A,l){let g={_type:A,_message:l};this.websocket.sendMessage(g)}init(A){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ft((l,g)=>{this.once(or.WS_CONNECTED,()=>l(this.joinResponse)),this.once(or.WS_CLOSED,C=>g(this.initError||new ze(fe.WS_ABORT,C))),this.connectionState=vi.CONNECTING,this.websocket.init(A).catch(g),this.wsInflateDataTimer&&window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=window.setInterval(()=>{this.handleWsInflateData()},2e4)})}close(A){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.wsInflateDataTimer&&(this.handleWsInflateData(),window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._disconnectedReason=A||bi.LEAVE,this.connectionState=vi.CLOSED,X.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close()}async join(){if(!this.joinResponse){this.emit(or.ABORT_P2P_EXECUTION),this.store.signalConnected();let A=await rs(this,or.REQUEST_JOIN_INFO);this.store.joinReq();let l=await this.request(sr.JOIN,A);if(this.ortc=A==null?void 0:A.ortc,this.store.joinRep(),!l)return this.emit(or.REPORT_JOIN_GATEWAY,i_.TIMEOUT,this.url||""),!1;this.joinResponse=l,this.emit(or.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}async rejoin(){if(!this.reconnectToken)throw new ze(fe.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");let A=o2(this,or.REQUEST_REJOIN_INFO);A.token=this.reconnectToken;let l=await this.request(sr.REJOIN,A);return!!l&&(this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),l.peers&&l.peers.forEach(g=>{this.emit(Or.ON_USER_ONLINE,{uid:g.uid}),g.audio&&this.emit(Or.ON_ADD_AUDIO_STREAM,{uid:g.uid,uint_id:g.uint_id,audio:!0,ssrcId:g.audio_ssrc}),g.video&&this.emit(Or.ON_ADD_VIDEO_STREAM,{uid:g.uid,uint_id:g.uint_id,video:!0,ssrcId:g.video_ssrc}),g.audio_mute?this.emit(Or.MUTE_AUDIO,{uid:g.uid}):this.emit(Or.UNMUTE_AUDIO,{uid:g.uid}),g.video_mute?this.emit(Or.MUTE_VIDEO,{uid:g.uid}):this.emit(Or.UNMUTE_VIDEO,{uid:g.uid}),g.audio_enable_local?this.emit(Or.ENABLE_LOCAL_AUDIO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_AUDIO,{uid:g.uid}),g.video_enable_local?this.emit(Or.ENABLE_LOCAL_VIDEO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_VIDEO,{uid:g.uid}),g.audio||g.video||this.emit(Or.ON_REMOVE_STREAM,{uid:g.uid,uint_id:g.uint_id})}),!0)}reconnect(A,l){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(A,l)}async downgradeCodec(A){if(!this.ortc)return!1;let l={downgrade_codec:A,ortc:this.ortc};return!!await this.request(sr.DOWNGRADE_CODEC,l)}handleNotification(A){X.debug("[".concat(this.clientId,"] receive notification: "),A);let l=O2(A.code);if(A.code===28&&"detail"in A&&(X.info("[".concat(this.clientId,"] receive recover notification: "),A.detail),this.emit(or.RECOVER_NOTIFICATION,A.detail)),l.action!=="success"){if(l.action!=="failed")return l.action==="quit"?A.code===mr.ERR_REPEAT_JOIN_CHANNEL&&Ie("IGNORE_UID_CHECK")?void this.close(bi.UID_CONFLICT):(l.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(bi.UID_BANNED),void this.close()):A.code===mr.K_VOS_FALLBACK&&"detail"in A?(X.info("[".concat(this.clientId,"] receive vos fallback notification: "),A.detail),A.detail==="FALLBACKCN"&&Ie("ENABLE_QUALITY_FALLBACK")?void rs(this,or.VOS_FALLBACK_PROMISE,A.detail).then(()=>{this.reconnect("recover",l.desc)}).catch(g=>{X.debug("[".concat(this.clientId,"] cancel vos fallback cn, error: "),g)}):A.detail==="fallback_hls"&&Ie("ENABLE_FALLBACK_TO_HLS")?(this.emit(or.VOS_FALLBACK,A.detail),void this.close(bi.FALLBACK_TO_HLS)):this.reconnect(l.action,l.desc)):void this.reconnect(l.action,xo.SERVER_ERROR);X.error("[".concat(this.clientId,"] ignore error: "),l.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;let A=Ie("PING_PONG_TIME_OUT"),l=Date.now();this.pingpongTimeoutCount>=A&&(X.warning("[".concat(this.clientId,"] PING-PONG Timeout. Last Socket Message: ").concat(l-this.lastMsgTime,"ms")),l-this.lastMsgTime>Ie("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",xo.TIMEOUT):this.request(sr.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let g=Date.now()-l;this.rttRolling.add(g),Ie("REPORT_STATS")&&this.send(sr.PING_BACK,{pingpongElapse:g})}).catch(g=>{})}handleWsInflateData(){let{wsInflateLength:A,wsDeflateLength:l}=this.websocket.getWsInflateData();A!==0&&l!==0&&this.upload(pn.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:l,ws_inflate_length:A})}handleWebsocketEvents(){this.websocket.on(qr.RECONNECT_CREATE_CONNECTION,A=>{this.emit(or.WS_RECONNECT_CREATE_CONNECTION,A)}),this.websocket.on(qr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(qr.CLOSED,()=>{this.connectionState=vi.CLOSED}),this.websocket.on(qr.FAILED,()=>{this._disconnectedReason=bi.NETWORK_ERROR,this.connectionState=vi.CLOSED}),this.websocket.on(qr.RECONNECTING,A=>{this._websocketReconnectReason=A,this.joinResponse=void 0,this.connectionState===vi.CONNECTED?this.connectionState=vi.RECONNECTING:this.connectionState=vi.CONNECTING}),this.websocket.on(qr.WILL_RECONNECT,(A,l,g)=>{let C=o2(this,or.IS_P2P_DISCONNECTED),m=C||A!=="retry";C&&A==="retry"&&(X.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),A="tryNext",l=i_.P2P_DISCONNECTED),m&&(X.debug("".concat(this.clientId," will renewSession, reconnect mode: ").concat(A)),this.emit(or.REPORT_JOIN_GATEWAY,l||i_.UNKNOWN_REASON,this.url||""),this.reconnectToken=void 0,this.emit(or.DISCONNECT_P2P)),g(A)}),this.websocket.on(qr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(A=>{X.warning("[".concat(this.clientId,"] rejoin failed ").concat(A)),this.reconnect("tryNext",xo.SERVER_ERROR)}):this.join().catch(A=>{if(this.emit(or.REPORT_JOIN_GATEWAY,A,this.url||""),A instanceof ze){if(A.code===fe.UNEXPECTED_RESPONSE&&A.data.code===mr.ERR_NO_AUTHORIZED)return this.initError=new ze(fe.TOKEN_EXPIRE,"dynamic key expired"),void this.close(bi.TOKEN_EXPIRE);X.error("[".concat(this.clientId,"] join gateway request failed"),A.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",xo.SERVER_ERROR):(this.initError=A,this.close())}})}),this.websocket.on(qr.REQUEST_NEW_URLS,(A,l)=>{rs(this,or.REQUEST_RECOVER,this.multiIpOption).then(A).catch(l)}),this.websocket.on(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(Ms.PRE_CONNECT_PC,()=>{this.emit(or.PRE_CONNECT_PC)}),this.websocket.on(qr.ON_FALLBACK,()=>{Ie("ENABLE_FALLBACK_TO_HLS")&&this.emit(or.VOS_FALLBACK,"fallback_hls")})}}let i7=function(a){return a.NATIVE_RTC="native_rtc",a.NATIVE_RTM="native_rtm",a.WEB_RTC="web_rtc",a.WEB_RTM="web_rtm",a}({}),ps=function(a){return a[a.CHOOSE_SERVER=11]="CHOOSE_SERVER",a[a.CLOUD_PROXY=18]="CLOUD_PROXY",a[a.CLOUD_PROXY_5=20]="CLOUD_PROXY_5",a[a.CLOUD_PROXY_FALLBACK=26]="CLOUD_PROXY_FALLBACK",a}({});function n7(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Py(a){for(var A=1;ARt(a).call(a,g));return l?a.split(".".concat(l))[0].replace(/-/g,"."):a}catch{return X.debug("serverUrlToIp error, fallback to url",a),a}}function IN(a,A){a.addresses||(a.addresses=[]);let l=function(w,b){if(Ie("CONNECT_GATEWAY_WITHOUT_DOMAIN"))return w.map(V=>{let{ip:K,port:q}=V;return{address:"".concat(K,":").concat(q)}});let M=Ie("GATEWAY_DOMAINS"),k=M[1]&&Rt(b).call(b,M[1])?1:0;return w.map(V=>{let{domain_prefix:K,port:q,ip:ce}=V;if(K)return{address:"".concat(K,".").concat(M[k++%M.length],":").concat(q)};let oe=/^[\.\:\d]+$/.test(ce),le=oe?"".concat(ce.replace(/[^\d]/g,"-"),".").concat(M[k++%M.length],":").concat(q):"".concat(ce,":").concat(q);return oe||X.debug("Cannot recognized as ip address: ".concat(ce,", use as host3")),{ip:ce,port:q,address:le}})}(a.addresses,A),g=Array.isArray(a.detail)&&a.detail[18];if(g&&typeof g=="string"){let w=g.split(";");for(let b=0;b=0&&a<.17?1:a>=.17&&a<.36?2:a>=.36&&a<.59?3:a>=.59&&a<=1?4:a>1?5:0}function YC(a,A){let l,g,C;switch(A){case ps.CHOOSE_SERVER:g=4096,C="choose server";break;case ps.CLOUD_PROXY:g=1048576,C="proxy";break;case ps.CLOUD_PROXY_5:g=4194304,C="proxy5";break;case ps.CLOUD_PROXY_FALLBACK:g=4194310,C="proxy fallback";break;default:throw new ze(fe.UNEXPECTED_ERROR,"multi unlibs response transformer get unknown service id",{csIp:a.detail&&a.detail[502],retry:!1})}if(a.response_body.forEach(m=>{m.buffer&&m.buffer.flag===g&&(l={code:m.buffer.code,addresses:(m.buffer.edges_services||[]).map(y=>Py(Py({},y),{},{ticket:m.buffer.cert})),server_ts:a.enter_ts,uid:m.buffer.uid,cid:m.buffer.cid,cname:m.buffer.cname,detail:Py(Py({},m.buffer.detail),a.detail),flag:m.buffer.flag,opid:a.opid,cert:m.buffer.cert})}),!l)throw new ze(fe.MULTI_UNILBS_RESPONSE_ERROR,"cannot parse response ".concat(C," from multi unilbs response"),{csIp:a.detail&&a.detail[502]});return l}async function CN(a,A){return await Ft.all(a.addresses.map(async l=>({address:ed(l.ip),tcpport:l.port,udpport:l.port,username:A&&Ie("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?A.toString():Ti.username,password:A&&Ie("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?await QR(A.toString()):Ti.password})))}function pN(a,A){let l=A.getMediaStreamTrack(!0).getSettings(),g=A.videoHeight||l.height,C=A.videoWidth||l.width;return g&&C?Math.max(Math.min(g,C)/Math.min(ZA(a.height),ZA(a.width)),1):(X.warning("can't get ori-track's height, default scale down 4 times for low stream"),4)}function fh(a){let{candidateType:A,relayProtocol:l,type:g,address:C,port:m,protocol:y}=a,w={candidateType:A,relayProtocol:l,protocol:y};if(g!=="local-candidate"){let b=C.split(".");b.length>=4&&(b[1]="*",b[2]="*"),w.address=b.join("."),w.port=m}return w}function Pt(a){let A=a.split(":"),l=a.split(/[-.]/),g=Rt(a).call(a,"-")?"-":".",C=a;return A.length>1?l.length>1?(l[1]="**",C=l[0]+g+"**:"+A[A.length-1]):C=A.length>2?A[0]+g+"**:"+A[A.length-1]:"**:"+A[A.length-1]:l.length>1&&(C=l[0]+g+"**"),C}function a_(a,A){return a.getTransceivers().find(l=>l.sender.track===A||l.receiver.track===A)}function k2(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ie("SVC_MODE");if(Ie("ENABLE_SVC"))return function(A){return A in Bo}(a)?a:Bo.L1T3}let Uc={[$t.VIDEO]:[{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"},{key:"video-orientation",extensionName:"urn:3gpp:video-orientation"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"playout-delay",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"},{key:"video-content-type",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type"},{key:"color-space",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/color-space"},{key:"video-timing",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-timing"}],[$t.AUDIO]:[{key:"ssrc-audio-level",extensionName:"urn:ietf:params:rtp-hdrext:ssrc-audio-level"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"}]};function gA(a){a.send&&(er($t.VIDEO,a.send.videoExtensions),er($t.AUDIO,a.send.audioExtensions)),a.recv&&(er($t.VIDEO,a.recv.videoExtensions),er($t.AUDIO,a.recv.audioExtensions)),a.sendrecv&&(er($t.VIDEO,a.sendrecv.videoExtensions),er($t.AUDIO,a.sendrecv.audioExtensions))}function Br(a,A){a.send&&(Ci($t.VIDEO,a.send.videoExtensions,A.send.videoExtensions),Ci($t.AUDIO,a.send.audioExtensions,A.send.audioExtensions)),a.recv&&(Ci($t.VIDEO,a.recv.videoExtensions,A.recv.videoExtensions),Ci($t.AUDIO,a.recv.audioExtensions,A.recv.audioExtensions))}function Ci(a,A,l){A.forEach(g=>{var C;let m=Uc[a].find(w=>{var b;let{key:M}=w;return Rt(b=g.extensionName).call(b,M)});if(!m)return;let y=l.find(w=>{let{extensionName:b}=w;return Rt(b).call(b,m.key)});y&&Rt(C=y.extensionName).call(C,"gdpr_forbidden")&&(g.extensionName=y.extensionName)})}function er(a,A){A.forEach(l=>{var g;let C=Uc[a].find(m=>{var y;let{key:w}=m;return Rt(y=l.extensionName).call(y,w)});Rt(g=l.extensionName).call(g,"gdpr_forbidden")&&C&&(l.extensionName=C.extensionName)})}function ur(a){return a==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"||Rt(a).call(a,"abs-send-time")}function Mu(a){return a==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"||Rt(a).call(a,"draft-holmer-rmcat-transport-wide-cc-extensions-01")}function Ur(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function EA(a){for(var A=1;A1&&arguments[1]!==void 0?arguments[1]:{},l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},g=arguments.length>3?arguments[3]:void 0,{filterRTX:C,filterVideoFec:m,filterAudioFec:y,filterAudioCodec:w,filterVideoCodec:b,unsupportedVideoUplinkCodec:M,unsupportedVideoDownlinkCodec:k}=A,{useXR:V}=l,K=[],q=[],ce=[],oe=[],le=!1,pe=!1;if(ki(a).mediaDescriptions.forEach(be=>{g&&g!==be.attributes.direction||(be.media.mediaType!=="video"||le||(q=be.attributes.payloads,oe=be.attributes.extmaps,le=!0),be.media.mediaType!=="audio"||pe||(K=be.attributes.payloads,ce=be.attributes.extmaps,pe=!0))}),!oe||q.length===0)throw new Error("Cannot get video capabilities from SDP.");if(!ce||K.length===0)throw new Error("Cannot get audio capabilities from SDP.");if(q.forEach(be=>{var Ue;(Ue=be.rtpMap)!==null&&Ue!==void 0&&Ue.clockRate&&(be.rtpMap.clockRate=parseInt(be.rtpMap.clockRate)),V&&be.rtcpFeedbacks.push({type:"rrtr"})}),K.forEach(be=>{var Ue;(Ue=be.rtpMap)!==null&&Ue!==void 0&&Ue.clockRate&&(be.rtpMap.clockRate=parseInt(be.rtpMap.clockRate)),V&&be.rtcpFeedbacks.push({type:"rrtr"})}),C&&(K=K.filter(be=>{var Ue;return((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLowerCase())!=="rtx"}),q=q.filter(be=>{var Ue;return((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLowerCase())!=="rtx"})),m){let be=q.filter(Le=>{var je;return/(red)|(ulpfec)|(flexfec)/i.test(((je=Le.rtpMap)===null||je===void 0?void 0:je.encodingName)||"")}),Ue=jo(be,q).map(Le=>Le.payloadType),xe=[...be.map(Le=>Le.payloadType),...Ue];q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType))}if(y&&(K=K.filter(be=>{var Ue;return!/(red)|(ulpfec)|(flexfec)/i.test(((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName)||"")})),w&&(w==null?void 0:w.length)>0&&(K=K.filter(be=>{var Ue;return Rt(w).call(w,((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLowerCase())||"")})),b&&(b==null?void 0:b.length)>0){let be=q.filter(Ue=>{var xe;return Rt(b).call(b,((xe=Ue.rtpMap)===null||xe===void 0?void 0:xe.encodingName.toLowerCase())||"")});q=be.concat(C?[]:jo(be,q))}let Se=Ie("UNSUPPORTED_VIDEO_CODEC");if(Se&&Se.length>0){let be=q.filter(Le=>Le.rtpMap&&Rt(Se).call(Se,Le.rtpMap.encodingName.toLowerCase())),Ue=jo(be,q),xe=be.concat(Ue).map(Le=>Le.payloadType);q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType)),X.debug("unsupportedVideoCodec: ".concat(Se,", toBeRemoved: ").concat(xe))}if(M&&M.length>0&&g==="sendonly"){let be=q.filter(Le=>Le.rtpMap&&Rt(M).call(M,Le.rtpMap.encodingName.toLowerCase())),Ue=jo(be,q),xe=be.concat(Ue).map(Le=>Le.payloadType);q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType)),X.debug("unsupportedVideoUplinkCodec: ".concat(M,", toBeRemoved: ").concat(xe))}if(k&&k.length>0&&g==="recvonly"){let be=q.filter(Le=>Le.rtpMap&&Rt(k).call(k,Le.rtpMap.encodingName.toLowerCase())),Ue=jo(be,q),xe=be.concat(Ue).map(Le=>Le.payloadType);q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType)),X.debug("unsupportedVideoDownlinkCodec: ".concat(k,", toBeRemoved: ").concat(xe))}return{audioCodecs:K,videoCodecs:q,audioExtensions:ce,videoExtensions:oe}}function fl(a){let A=ki(a),l,g;for(let C of A.mediaDescriptions){if(!l){let m=C.attributes.iceUfrag,y=C.attributes.icePwd;if(!m||!y)throw new Error("Cannot get iceUfrag or icePwd from SDP.");l={iceUfrag:m,icePwd:y}}if(!g){let m=C.attributes.fingerprints;m.length>0&&(g={fingerprints:m})}}if(!g&&A.attributes.fingerprints.length>0&&(g={fingerprints:A.attributes.fingerprints}),!g||!l)throw new Error("Cannot get iceParameters or dtlsParameters from SDP.");return{iceParameters:l,dtlsParameters:g}}function P2(a,A){let l=[],g=a.attributes.ssrcGroups.filter(y=>y.semantic==="FID"),C=a.attributes.ssrcGroups.find(y=>y.semantic==="SIM"),m=a.attributes.ssrcs;if(C)C.ssrcIds.forEach(y=>{var w;let b=(w=g.find(M=>M.ssrcIds[0]===y))===null||w===void 0?void 0:w.ssrcIds[1];l.push({ssrcId:y,rtx:A?b:void 0})});else if(g.length>0){let y=g[0].ssrcIds[0],w=g[0].ssrcIds[1];l.push({ssrcId:y,rtx:A?w:void 0})}else{if(m.length===0)throw new Error("No ssrcs found on local media description.");l.push({ssrcId:m[0].ssrcId})}return l}function ku(a,A,l){let{cname:g}=a,C=[];A&&(C=s7(A)),C.length===0&&(C=a.iceParameters.candidates.map(k=>({foundation:k.foundation,componentId:"1",transport:k.protocol,priority:k.priority.toString(),connectionAddress:k.ip,port:k.port.toString(),type:k.type,extension:{}})),X.debug("Using candidates from gateway."));let m={fingerprints:a.dtlsParameters.fingerprints.map(k=>({hashFunction:k.algorithm,fingerprint:k.fingerprint}))},y={iceUfrag:a.iceParameters.iceUfrag,icePwd:a.iceParameters.icePwd},w;switch(a.dtlsParameters.role){case"server":w="passive";break;case"client":w="active";break;case"auto":w="actpass"}let b=En(a.rtpCapabilities),M=[];return Array.isArray(l)&&l.length>0&&l.forEach(k=>{M.push({kind:$t.VIDEO,ssrcMsg:[{ssrcId:k.v,rtx:k.v_rtx}],mslabel:"".concat(k.v,"_").concat(k.a)},{kind:$t.AUDIO,ssrcMsg:[{ssrcId:k.a}],mslabel:"".concat(k.v,"_").concat(k.a)})}),{dtlsParameters:m,iceParameters:y,candidates:C,rtpCapabilities:b,setup:w,cname:g,preSSRCs:M}}function s7(a){let A=[];return a.ip&&typeof a.port=="number"&&(A=[{foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:a.ip,port:a.port.toString(),type:"host",extension:{}}],X.debug("Using remote candidate from AP ".concat(Pt(a.ip),":").concat(a.port)),a.ip6&&(A.push({foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:a.ip6,port:a.port.toString(),type:"host",extension:{}}),X.debug("Using IPV6 remote candidate from AP ".concat(Pt(a.ip6),":").concat(a.port)))),A}function U2(a,A,l){let g=[],C=[];return a.forEach(m=>{let{ssrcId:y,rtx:w}=m,b=yn(8,"track-"),M={ssrcId:y,attributes:EA({label:b,mslabel:l=l||yn(10,""),msid:"".concat(l," ").concat(b)},A&&{cname:A})};if(g.push(M),w!==void 0){let k={ssrcId:w,attributes:EA({label:b,mslabel:l,msid:"".concat(l," ").concat(b)},A&&{cname:A})};g.push(k),C.push({semantic:"FID",ssrcIds:[y,w]})}}),a.length>1&&C.push({semantic:"SIM",ssrcIds:a.map(m=>{let{ssrcId:y}=m;return y})}),{ssrcs:g,ssrcGroups:C}}function kg(a,A){A instanceof xt&&a.attributes.payloads.forEach(l=>{var g;let C=(g=l.rtpMap)===null||g===void 0?void 0:g.encodingName.toLowerCase();if(!C||["opus","pcmu","pcma","g722"].indexOf(C)===-1)return;l.fmtp||(l.fmtp={parameters:{}}),C==="opus"&&typeof Ie("OPUS_PTIME")=="number"?l.fmtp.parameters.ptime=Ie("OPUS_PTIME"):l.fmtp.parameters.minptime="10",l.fmtp.parameters.useinbandfec="1";let m=A._encoderConfig;m&&(C!=="pcmu"&&C!=="pcma"&&C!=="g722"&&(m.bitrate&&!uo()&&(l.fmtp.parameters.maxaveragebitrate="".concat(Math.floor(1e3*m.bitrate))),m.sampleRate&&(l.fmtp.parameters.maxplaybackrate="".concat(m.sampleRate),l.fmtp.parameters["sprop-maxcapturerate"]="".concat(m.sampleRate)),m.stereo&&(l.fmtp.parameters.stereo="1",l.fmtp.parameters["sprop-stereo"]="1")),A instanceof gn&&C==="opus"&&A._config.DTX&&(l.fmtp.parameters.usedtx="1"))})}function fN(a){let A=a.attributes.unrecognized.findIndex(l=>l.attField==="x-google-flag"&&l.attValue==="conference");A!==-1&&a.attributes.unrecognized.splice(A,1)}function Pu(a,A){var l;if(a.attributes.payloads.forEach(C=>{var m;((m=C.rtpMap)===null||m===void 0?void 0:m.encodingName.toLowerCase())==="h264"&&C.fmtp&&C.fmtp.parameters&&Ie("ENABLE_UP_SPS_PPS")&&(C.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),!(A instanceof Pi&&A._encoderConfig&&A._hints.indexOf($i.SCREEN_TRACK)===-1))return;let g=A._encoderConfig;Bi().supportMinBitrate&&g.bitrateMin&&a.attributes.payloads.forEach(C=>{var m,y;Rt(m=["h264","h265","vp8","vp9","av1"]).call(m,((y=C.rtpMap)===null||y===void 0?void 0:y.encodingName.toLowerCase())||"")&&(C.fmtp||(C.fmtp={parameters:{}}),C.fmtp.parameters["x-google-min-bitrate"]="".concat(g.bitrateMin))}),Bi().supportMinBitrate&&!Rt(l=A._hints).call(l,$i.LOW_STREAM)&&g.bitrateMax&&a.attributes.payloads.forEach(C=>{var m,y;Rt(m=["h264","h265","vp8","vp9","av1"]).call(m,((y=C.rtpMap)===null||y===void 0?void 0:y.encodingName.toLowerCase())||"")&&(C.fmtp||(C.fmtp={parameters:{}}),C.fmtp.parameters["x-google-start-bitrate"]="".concat(Ie("X_GOOGLE_START_BITRATE")||Math.floor(g.bitrateMax)))})}function xy(a){if(a.media.mediaType!=="video")return;let A=Wi();if(A.name!==nn.SAFARI&&A.os!==Vs.IOS)return;let l=a.attributes.extmaps.findIndex(g=>/video-orientation/g.test(g.extensionName));l!==-1&&a.attributes.extmaps.splice(l,1)}function ds(a,A,l){if(!A)return;let g,C;if(a.media.mediaType==="video"?(g=l.videoExtensions,C=l.videoCodecs):(g=l.audioExtensions,C=l.audioCodecs),A.twcc===!0){let m=g.find(y=>Mu(y.extensionName));if(m){let y=m.extensionName;a.attributes.extmaps.find(w=>Mu(w.extensionName))||a.attributes.extmaps.push({entry:m.entry,extensionName:y}),function(w,b){return b.filter(M=>!!w.find(k=>k.payloadType===M.payloadType&&!!k.rtcpFeedbacks.find(V=>V.type==="transport-cc")))}(C,a.attributes.payloads).forEach(w=>{w.rtcpFeedbacks.find(b=>b.type==="transport-cc")||w.rtcpFeedbacks.push({type:"transport-cc"})})}}else if(A.twcc===!1){let m=a.attributes.extmaps.findIndex(y=>Mu(y.extensionName));m!==-1&&a.attributes.extmaps.splice(m,1),a.attributes.payloads.forEach(y=>{let w=y.rtcpFeedbacks.findIndex(b=>b.type==="transport-cc");w!==-1&&y.rtcpFeedbacks.splice(w,1)})}if(A.remb===!0){let m=g.find(y=>ur(y.extensionName));if(m){let y=m.extensionName;a.attributes.extmaps.find(w=>w.extensionName===y)||a.attributes.extmaps.push({entry:m.entry,extensionName:y}),function(w,b){return b.filter(M=>!!w.find(k=>k.payloadType===M.payloadType&&!!k.rtcpFeedbacks.find(V=>V.type==="goog-remb")))}(C,a.attributes.payloads).forEach(w=>{w.rtcpFeedbacks.find(b=>b.type==="goog-remb")||w.rtcpFeedbacks.push({type:"goog-remb"})})}}else if(A.remb===!1){let m=a.attributes.extmaps.findIndex(y=>ur(y.extensionName));m!==-1&&a.attributes.extmaps.splice(m,1),a.attributes.payloads.forEach(y=>{let w=y.rtcpFeedbacks.findIndex(b=>b.type==="goog-remb");w!==-1&&y.rtcpFeedbacks.splice(w,1)})}}function Fy(a,A,l){if(uo()||a.media.mediaType!=="video"||!(A instanceof Pi)||l!=="vp9"&&l!=="vp8"||l==="vp8"&&!Ie("SIMULCAST")||l==="vp9"&&Ie("ENABLE_SVC")||A._scalabilityMode===void 0||A._scalabilityMode.numSpatialLayers<=1)return;let g=l==="vp8"?2:A._scalabilityMode.numSpatialLayers,C=a.attributes.ssrcs[0],m=a.attributes.ssrcGroups.find(w=>w.semantic==="FID"&&w.ssrcIds[0]===C.ssrcId),y={semantic:"SIM",ssrcIds:[C.ssrcId]};for(let w=1;wC.extensionName==="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension");return a.close(),g}catch{return}}async function Kd(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=new RTCPeerConnection;l.addTransceiver("video",{direction:"sendonly"}),l.addTransceiver("audio",{direction:"sendonly"}),l.addTransceiver("video",{direction:"recvonly"}),l.addTransceiver("audio",{direction:"recvonly"});let g=(await l.createOffer()).sdp,{send:C,recv:m,sendrecv:y}=function(){let w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},M=arguments.length>2?arguments[2]:void 0,k=jr(M,w,b,"sendonly"),V=jr(M,w,b,"recvonly"),K={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},q={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},ce={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(t1(k,V,"videoExtensions",K,q,ce),t1(k,V,"videoCodecs",K,q,ce),t1(k,V,"audioExtensions",K,q,ce),t1(k,V,"audioCodecs",K,q,ce),Ie("RAISE_H264_BASELINE_PRIORITY")){let oe=[],le=[];if(ce.videoCodecs.forEach((pe,Se)=>{var be;if(((be=pe.rtpMap)===null||be===void 0?void 0:be.encodingName.toLocaleLowerCase())==="h264"){var Ue,xe;let Le=ce.videoCodecs[Se+1],je=Le&&_N(pe,Le),dt=(Ue=pe.fmtp)===null||Ue===void 0?void 0:Ue.parameters["profile-level-id"],pt=(xe=pe.fmtp)===null||xe===void 0?void 0:xe.parameters["packetization-mode"];!dt||dt!==Ie("FIRST_H264_PROFILE_LEVEL_ID")||Ie("FIRST_PACKETIZATION_MODE")&&pt!==Ie("FIRST_PACKETIZATION_MODE")?je?le.push([pe,Le]):le.push([pe]):je?oe.push([pe,Le]):oe.push([pe])}}),oe.length>0&&le.length>0){X.debug("raising H264 baseline profile priority"),ce.videoCodecs.forEach((Se,be)=>{var Ue;if(((Ue=Se.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLocaleLowerCase())==="h264"){let xe=_N(Se,ce.videoCodecs[be+1]),Le=oe.shift()||le.shift()||[];Le.length>0&&(xe?ce.videoCodecs.splice(be,2,...Le):ce.videoCodecs.splice(be,1,...Le))}});let pe=q.videoCodecs.filter(Se=>{var be,Ue;return((be=Se.rtpMap)===null||be===void 0?void 0:be.encodingName.toLocaleLowerCase())==="h264"&&((Ue=Se.fmtp)===null||Ue===void 0?void 0:Ue.parameters["profile-level-id"])!==Ie("FIRST_H264_PROFILE_LEVEL_ID")});if(pe.length>0){let Se=jo(pe,q.videoCodecs).map(Ue=>Ue.payloadType),be=[...pe.map(Ue=>Ue.payloadType),...Se];q.videoCodecs=q.videoCodecs.filter(Ue=>!Rt(be).call(be,Ue.payloadType))}Ie("FILTER_SEND_H264_BASELINE")&&(K.videoCodecs=K.videoCodecs.filter(Se=>{var be,Ue;return!(((be=Se.rtpMap)===null||be===void 0?void 0:be.encodingName.toLocaleLowerCase())==="h264"&&((Ue=Se.fmtp)===null||Ue===void 0?void 0:Ue.parameters["profile-level-id"])!==Ie("FIRST_H264_PROFILE_LEVEL_ID"))}))}return{send:K,recv:q,sendrecv:ce}}return{send:K,recv:q,sendrecv:ce}}(a,A,g);try{l.close()}catch{}return{send:C,recv:m,sendrecv:y}}function e1(){let a={audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},A=jr(arguments.length>2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"recvonly"),l={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},g={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},C={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(t1(a,A,"videoExtensions",l,g,C),t1(a,A,"videoCodecs",l,g,C),t1(a,A,"audioExtensions",l,g,C),t1(a,A,"audioCodecs",l,g,C),Ie("RAISE_H264_BASELINE_PRIORITY")){let m=C.videoCodecs.findIndex(y=>y.rtpMap&&y.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&y.fmtp&&y.fmtp.parameters["profile-level-id"]==="42001f");if(m!==-1){let y=C.videoCodecs.findIndex(w=>w.rtpMap&&w.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(y!(w.rtpMap&&w.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&w.fmtp&&w.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:l,recv:g,sendrecv:C}}function t1(a,A,l,g,C,m){if(l==="videoExtensions"||l==="audioExtensions"){let y=[];return a[l].forEach(w=>{A[l].some((b,M)=>{if(w.entry===b.entry&&w.extensionName===b.extensionName)return y.push(M),!0})?m[l].push(w):g[l].push(w)}),void A[l].forEach((w,b)=>{y.indexOf(b)===-1&&C[l].push(w)})}if(l==="videoCodecs"||l==="audioCodecs"){let y=[];return a[l].forEach(w=>{A[l].some((b,M)=>{if(w.payloadType===b.payloadType&&JSON.stringify(w)===JSON.stringify(b))return y.push(M),!0})?m[l].push(w):g[l].push(w)}),void A[l].forEach((w,b)=>{y.indexOf(b)===-1&&C[l].push(w)})}}function En(a){let{send:A,recv:l,sendrecv:g}=a;if(!g){if(!A||!l)throw new Error("cannot merge rtp capabilities because one of send or recv is empty!");return{send:A,recv:l}}let C,m;return A?(C={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},C.audioCodecs=[...A.audioCodecs,...g.audioCodecs],C.videoCodecs=[...A.videoCodecs,...g.videoCodecs],C.audioExtensions=[...A.audioExtensions,...g.audioExtensions],C.videoExtensions=[...A.videoExtensions,...g.videoExtensions]):C=no(g),l?(m={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},m.audioCodecs=[...l.audioCodecs,...g.audioCodecs],m.videoCodecs=[...l.videoCodecs,...g.videoCodecs],m.audioExtensions=[...l.audioExtensions,...g.audioExtensions],m.videoExtensions=[...l.videoExtensions,...g.videoExtensions]):m=no(g),{send:C,recv:m}}function No(a){a.media.mediaType==="audio"&&a.attributes.payloads.filter(A=>{var l;return((l=A.rtpMap)===null||l===void 0?void 0:l.encodingName.toLowerCase())==="opus"}).forEach(A=>{A.fmtp||(A.fmtp={parameters:{}}),A.fmtp.parameters.stereo="1",A.fmtp.parameters["sprop-stereo"]="1"})}function _h(a,A,l,g){let C=[];if(a===$t.VIDEO){if(Ie("H264_PROFILE_LEVEL_ID")&&g==="h264"&&(C=A.videoCodecs.filter(m=>{var y;return Rt(y=m.rtpMap&&m.rtpMap.encodingName.toLowerCase()||"").call(y,g)&&m&&m.fmtp&&m.fmtp.parameters["profile-level-id"]===Ie("H264_PROFILE_LEVEL_ID")})),!Array.isArray(C)||C.length===0){let m=[],y=[],w=[],b=[];if(l.videoCodecs.forEach(M=>{let k=M.rtpMap&&M.rtpMap.encodingName.toLowerCase()||"";Rt(k).call(k,g)?m.push(M):Rt(k).call(k,"vp9")?y.push(M):Rt(k).call(k,"vp8")?w.push(M):Rt(k).call(k,"h264")&&b.push(M)}),m.length===0){let M="";y.length!==0?(m=y,M="vp9"):w.length!==0?(m=w,M="vp8"):b.length!==0&&(m=b,M="h264"),X.warning("codec ".concat(g," not included in rtpCapabilities, fallback to default payloads: ").concat(M))}m.length!==0&&(C=A.videoCodecs.filter(M=>m.some(k=>k.payloadType===M.payloadType)))}if(C.length===0&&(X.warning("codec ".concat(g," not included in rtpCapabilities, fallback to default payloads: ").concat(A.videoCodecs[0].rtpMap&&A.videoCodecs[0].rtpMap.encodingName)),C=A.videoCodecs),Ie("USE_PUB_RTX")||Ie("USE_SUB_RTX")){let m=jo(C,A.videoCodecs);C=[...C,...m]}}else{C=A.audioCodecs.filter(y=>{var w;return Rt(w=y.rtpMap&&y.rtpMap.encodingName.toLowerCase()||"").call(w,g)});let m=A.audioCodecs.filter(y=>{var w;return Rt(w=y.rtpMap&&y.rtpMap.encodingName.toLowerCase()||"").call(w,"red")});C.length===0&&(X.warning("codec ".concat(g," not included in rtpCapabilities, fallback to opus")),C=A.audioCodecs.filter(y=>{var w;return Rt(w=y.rtpMap&&y.rtpMap.encodingName.toLowerCase()||"").call(w,"opus")})),Ie("ENABLE_AUDIO_RED")&&m.length!==0&&(C=[...m,...C])}return C}function jo(a,A){let l=a.map(g=>g.payloadType.toString());return A.filter(g=>g.rtpMap&&g.rtpMap.encodingName==="rtx"&&g.fmtp&&g.fmtp.parameters.apt&&Rt(l).call(l,g.fmtp&&g.fmtp.parameters.apt))}async function gi(a,A,l){let g=A.toString(),C=Pa(g,"offer","remote","exchangeSDP");await a.setRemoteDescription({type:"offer",sdp:g});let m=await a.createAnswer();if(!m.sdp)throw new Error("cannot get answer sdp");let y=m.sdp;y=Gy(y,l||{}),C==null||C(y||""),await a.setLocalDescription({type:"answer",sdp:y})}function Gy(a,A,l){if(Ie("FORBID_MODIFY_LOCAL_OFFER_SDP"))return a;let g=ki(a),{useXR:C}=A;return g.mediaDescriptions.forEach(m=>{var y;m.attributes.mid&&(Array.isArray(l)&&!Rt(l).call(l,m.attributes.mid)||(m.media.mediaType==="audio"&&No(m),m.media.mediaType==="video"&&function(w){w.media.mediaType==="video"&&Ie("ENABLE_DOWN_SPS_PPS")&&w.attributes.payloads.filter(b=>{var M;return((M=b.rtpMap)===null||M===void 0?void 0:M.encodingName.toLowerCase())==="h264"}).forEach(b=>{b.fmtp||(b.fmtp={parameters:{}}),b.fmtp.parameters["sps-pps-idr-in-keyframe"]="1"})}(m),C&&Rt(y=["audio","video"]).call(y,m.media.mediaType)&&m.attributes.payloads.forEach(w=>{w.rtcpFeedbacks.findIndex(b=>b.type==="rrtr")===-1&&w.rtcpFeedbacks.push({type:"rrtr"})})))}),ea(g)}function Pa(a,A,l,g){if(Ie("SDP_LOGGING"))return X.upload("exchanging ".concat(l," ").concat(A," SDP during P2PConnection.").concat(g,` +`),a),A==="offer"?C=>{Pa(C,"answer",l==="local"?"remote":"local",g)}:void 0}async function A_(a,A,l){try{var g;if(!Bi().supportSetRtpSenderParameters||!function(b){return b==="vp9"||b==="av1"}(a)||!Ie("ENABLE_SVC"))return;let C={},m={},y=A.getParameters(),w=(g=y.encodings)===null||g===void 0?void 0:g[0];m.scalabilityMode=k2(l),w&&Object.assign(w,m),Object.assign(y,C),await A.setParameters(y),X.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode success: ".concat(JSON.stringify(y.encodings)))}catch(C){X.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode failed",C)}}function xc(a){let A=Ie("COMPATIBLE_SDP_EXTENSION");return!!(Array.isArray(A)&&A.length>0)&&A.some(l=>Rt(a).call(a,l))}function _N(a,A){try{var l;return((l=a.fmtp)===null||l===void 0?void 0:l.parameters.apt)===A.payloadType.toString()}catch{return!1}}function mN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function LA(a,A){return typeof Ie(a)===A?Ie(a):void 0}function rr(){try{let a=Ie("EXPERIMENTS")||{};return typeof a=="string"||Array.isArray(a)?{}:function(A){for(var l=1;l1&&arguments[1]!==void 0)||arguments[1])&&X.debug("install service ".concat(a.name)),qs[a.name]=a}function td(a){let A=qs[a];if(!A)throw new nt(fe.INVALID_OPERATION,"".concat(a," not found, please use AgoraRTC.use(").concat(a,"Service) to load it first"));return A}function Qt(a,A){return td("DataStream").create(a,A)}function ln(){return td("InterceptFrame").create()}function Cr(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Oo(a){for(var A=1;A255||"".concat(A.apResponse.cid,"_").concat(A.apResponse.cert).length<22?(X.debug("[".concat(this.store.clientId,"] Dc is not supported, because ticket length is incorrect, it has to be between 22 and 255")),k=!0):A.apResponse.addresses.some(V=>V.fingerprint)||Ie("FINGERPRINT")||(X.debug("[".concat(this.store.clientId,"] Dc is not supported, because fingerprint does not exist")),k=!0),k&&this.resetSignal()}this.store.joinGatewayStart(),A.cloudProxyServer!=="disabled"&&(this.hasChangeBGPAddress=!0);let C=Date.now(),m=Fc.get(A.cname);if(m||(m=new Map,Fc.set(A.cname,m)),this._isProactiveJoin=!0,m.has(A.uid)){let k=new ze(fe.UID_CONFLICT);throw tr.joinGateway(A.sid,{lts:C,succ:!1,ec:k.code,addr:null,uid:A.uid,cid:A.cid,firstSuccess:this._isProactiveJoin,isProxy:!!A.proxyServer||this.usingProxy,signalChannel:this.store.useDcSignal?"1":"0",preload:A.preload}),k}m.set(A.uid,!0),this.joinInfo=A,this.key=l;let y=0;this.joinGatewayStartTime=C;let w=A.proxyServer,b=this.store.useDcSignal?"datachannel":"websocket";try{X.debug("[".concat(this.store.clientId,"] use ").concat(b," join uid ").concat(y));let k=A.gatewayAddrs.map(K=>{let{address:q}=K,[ce,oe]=q.split(":"),le={host:ce,port:oe};return A.proxyServer&&(le.proxy=A.proxyServer),le}),V;V=this.store.useDcSignal?await this.signal.init(A.apResponse.addresses):await this.signal.init(k),y=V.uid,X.debug("[".concat(this.store.clientId,"] ").concat(b," join uid ").concat(y," cost ").concat(Date.now()-this.joinGatewayStartTime))}catch(k){var M;throw k.code===fe.INIT_DATACHANNEL_TIMEOUT&&this.signal.__name__==="AgoraRTCSignal"||tr.joinGateway(A.sid,{lts:C,succ:!1,ec:((M=k.data)===null||M===void 0?void 0:M.desc)||k.code,errorMsg:k.message,addr:this.signal.url,uid:A.uid,cid:A.cid,firstSuccess:this._isProactiveJoin,isProxy:!!w||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:A.preload}),k&&k.code===fe.INIT_DATACHANNEL_TIMEOUT?(X.warning("[".concat(this.store.clientId,"] User join datachannel failed"),k.toString()),this.resetSignal(),k):(X.error("[".concat(this.store.clientId,"] User join failed"),k.toString()),m.delete(A.uid),this.signal.close(),k)}return this.state="CONNECTED",this.inChannelInfo.joinAt=Date.now(),X.debug("[".concat(this.store.clientId,"] Connected to gateway server")),this.trafficStatsInterval=window.setInterval(()=>{this.updateTrafficStats().catch(k=>{X.warning("[".concat(this.store.clientId,"] get traffic stats error"),k.toString())})},3e3),this.networkQualityInterval=window.setInterval(()=>{navigator&&navigator.onLine!==void 0&&!navigator.onLine?this.emit(Pn.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6}):this._signalTimeout?this.emit(Pn.NETWORK_QUALITY,{downlinkNetworkQuality:5,uplinkNetworkQuality:5}):this.state==="CONNECTED"&&this._statsCollector.trafficStats?this.emit(Pn.NETWORK_QUALITY,{uplinkNetworkQuality:Uy(this._statsCollector.trafficStats.B_unq),downlinkNetworkQuality:Uy(this._statsCollector.trafficStats.B_dnq)}):this.emit(Pn.NETWORK_QUALITY,{uplinkNetworkQuality:0,downlinkNetworkQuality:0})},2e3),this.store.joinGatewayEnd(),y}async leave(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0],l=arguments.length>1?arguments[1]:void 0;if(this.state!=="DISCONNECTED"){l!==bi.FALLBACK&&(this.state="DISCONNECTING");try{A||this.signal.connectionState!==vi.CONNECTED||await function(g,C){return C===1/0?g:Ft.race([g,Zb(C)])}(this.signal.request(sr.LEAVE,void 0,!0),3e3)}catch(g){X.warning("[".concat(this.store.clientId,"] leave request failed, ignore"),g)}this.signal.close(l),l!==bi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}}async publish(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));let C={state:"offer",p2p_id:this.store.p2pId,ortc:l,mode:this.spec.mode,extend:Ie("PUB_EXTEND"),twcc:!!Ie("PUBLISH_TWCC"),rtx:!!Ie("USE_PUB_RTX")};try{return(await this.signal.request(sr.PUBLISH,C,!0))._message}catch(m){if(g&&m.data&&m.data.code===mr.ERR_PUBLISH_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receive publish error code, retry"),m.toString()),await this.tryUnpubBeforeRepub(A,l),this.publish(A,l,!1);throw m}}async publishDataChannel(A,l,g){var C;if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));let m={stream_id:l.streamId,ordered:l.ordered?1:0,max_retrans_times:(C=l.maxRetransmits)!==null&&C!==void 0?C:10,channel_id:l.channelId,metadata:l.metadata};try{await this.signal.request(sr.PUBLISH_DATASTREAM,m,!0)}catch(y){if(g&&y.data&&y.data.code===mr.ERR_PUBLISH_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receive publish datachannels error code, retry"),y.toString()),await this.tryUnpubDataChannelBeforeRepub(A,l),this.publishDataChannel(A,l,!1);throw y}}async unpublish(A,l){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await this.signal.request(sr.UNPUBLISH,{stream_id:l,ortc:A},!0)}catch(g){X.warning("[".concat(this.store.clientId,"] unpublish warning: "),g)}}async unpublishDataChannel(A){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ft.all(A.map(l=>this.signal.request(sr.UNPUBLISH_DATASTREAM,{channel_id:l},!0)))}catch(l){X.warning("unpublish datachannels warning: ",l)}}async presubscribe(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not presubscribe when connection state is ".concat(this.state));let C={stream_id:A,stream_type:l,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!Ie("SUBSCRIBE_TWCC"),rtx:!!Ie("USE_SUB_RTX")||void 0,extend:Ie("SUB_EXTEND"),svc:Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0};try{return await this.signal.request(sr.PRE_SUBSCRIBE,C,!0)}catch(m){if(g&&m.data&&m.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] pre-subscribe error, retry"),m.toString()),this.presubscribe(A,l,!1);throw m}}async subscribe(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not subscribe when connection state is ".concat(this.state));let C={stream_id:A,stream_type:l.stream_type,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!Ie("SUBSCRIBE_TWCC"),rtx:!!Ie("USE_SUB_RTX"),extend:Ie("SUB_EXTEND"),ssrcId:l.ssrcId,svc:Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0};try{return(await this.signal.request(sr.SUBSCRIBE,C,!0))._message}catch(m){if(g&&m.data&&m.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receiver subscribe error code, retry"),m.toString()),await this.tryUnsubBeforeResub(A,l),await this.subscribe(A,l,!1);throw m}}async subscribeDataChannel(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not subscribe datachannel when connection state is ".concat(this.state));let C={uid:A,stream_id:l.id,channel_id:l.datachannelId};try{return void await this.signal.request(sr.SUBSCRIBE_DATASTREAM,C,!0)}catch(m){if(g&&m.data&&m.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receiver subscribe datachannel error code, retry"),m.toString()),await this.tryUnsubDataChannelBeforeResub(A,l),await this.subscribeDataChannel(A,l,!1);throw m}}async subscribeAll(A,l){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not massSubscribe when connection state is ".concat(this.state));let g={p2p_id:this.store.p2pId,users:A,dtx:!1,rtx:!!Ie("USE_SUB_RTX"),twcc:!!Ie("SUBSCRIBE_TWCC"),svc:Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0};try{return await this.signal.request(sr.SUBSCRIBE_STREAMS,g,!0)}catch(C){if(l&&C.data&&C.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receiver massSubscribe error code, retry"),C.toString()),await this.tryMassUnsubBeforeResub(A),await this.subscribeAll(A,!1);throw C}}async setVideoProfile(A){let l=function(g){if(!(g.bitrateMax&&g.bitrateMin&&g.frameRate&&g.height&&g.width))return;let C=g.frameRate,m=g.width,y=g.height,w=!0;return typeof C!="number"&&(C=C.exact||C.ideal||C.max||C.min||0,C||(w=!1)),typeof m!="number"&&(m=m.exact||m.ideal||m.max||m.min||0,m||(w=!1)),typeof y!="number"&&(y=y.exact||y.ideal||y.max||y.min||0,C||(w=!1)),w?{stream_type:0,width:m,height:y,fps:C,start_bps:1e3*g.bitrateMax,min_bps:1e3*g.bitrateMin,target_bps:1e3*g.bitrateMax}:void 0}(A);if(l)return this.signal.request(sr.SET_VIDEO_PROFILE,l);X.debug("[".concat(this.store.clientId,"] encoder config is not complete, do not report to gateway"))}async unsubscribe(A,l){try{await this.signal.request(sr.UNSUBSCRIBE,{p2p_id:this.store.p2pId,ortc:A,stream_id:l},!0)}catch(g){X.warning("[".concat(this.store.clientId,"] unsubscribe warning: "),g)}}async unsubscribeDataChannel(A,l){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ft.all(A.map(g=>this.signal.request(sr.UNSUBSCRIBE_DATASTREAM,{stream_id:g,uid:l},!0)))}catch(g){X.warning("unsubscribeDataChannel warning: ",g)}}async massUnsubscribe(A){try{await this.signal.request(sr.UNSUBSCRIBE_STREAMS,A,!0)}catch(l){X.warning("[".concat(this.store.clientId,"] massUnsubscribeAll warning: "),l)}}async reconnectPC(A){let{iceParameters:l,dtlsParameters:g,rtpCapabilities:C}=A;return{gatewayEstablishParams:await this.signal.request(sr.CONNECT_PC,{p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:{iceParameters:l,dtlsParameters:g,rtpCapabilities:C}},!0),gatewayAddress:this.getCurrentGatewayAddress()}}getGatewayInfo(){return this.signal.request(sr.GATEWAY_INFO)}async renewToken(A){await this.signal.request(sr.RENEW_TOKEN,A),this.key=A.token}updateClientRole(A,l){l&&(this._clientRoleOptions=Object.assign({},l)),Ie("CLIENT_ROLE_OPTIONS")&&(X.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(Ie("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," ")),this._clientRoleOptions=Object.assign({},Ie("CLIENT_ROLE_OPTIONS"))),this.role=A}async setClientRole(A,l){if(l&&(this._clientRoleOptions=Object.assign({},l)),Ie("CLIENT_ROLE_OPTIONS")&&(this._clientRoleOptions=Object.assign({},Ie("CLIENT_ROLE_OPTIONS")),X.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(Ie("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," "))),this.state!=="CONNECTED")return void(this.role=A);let g,C=0;A==="audience"?this._clientRoleOptions&&this._clientRoleOptions.delay?(g=this._clientRoleOptions.delay,C=1):C=this._clientRoleOptions&&this._clientRoleOptions.level?this._clientRoleOptions.level:2:C=0;let m=Object.assign({},l);delete m.delay,delete m.level,await this.signal.request(sr.SET_CLIENT_ROLE,Oo(Oo({role:A,level:C,delay:g},m),{},{client_ts:Date.now()})),this.role=A}async setDualStreamMode(A,l,g){await this.signal.request(sr.SET_DUAL_STREAM_MODE,{mode:A},g,l)}async setRemoteVideoStreamType(A,l){await this.signal.request(sr.SWITCH_VIDEO_STREAM,{stream_id:A,stream_type:l})}async setDefaultRemoteVideoStreamType(A){await this.signal.request(sr.DEFAULT_VIDEO_STREAM,{stream_type:A})}async setStreamFallbackOption(A,l){await this.signal.request(sr.SET_FALLBACK_OPTION,{stream_id:A,fallback_type:l})}async pickSVCLayer(A,l){await this.signal.request(sr.PICK_SVC_LAYER,{stream_id:A,spatial_layer:l.spatialLayer,temporal_layer:l.temporalLayer})}async setRTM2Flag(A){await this.signal.request(sr.SET_RTM2_FLAG,{rtm2_flag:A})}async sendExtensionMessage(A,l,g){if(this.store.useP2P)return this.signal.sendExtensionMessage(A,l,g)}getInChannelInfo(){return this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt),Oo({},this.inChannelInfo)}async setConfigure(A){if(A&&Array.isArray(A)&&A.length!==0)return this.signal.request(sr.CONFIGURE,A)}async getGatewayVersion(){return(await this.signal.request(sr.GATEWAY_INFO)).version}reset(){if(this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt,this.inChannelInfo.joinAt=null),this.trafficStatsInterval&&(window.clearInterval(this.trafficStatsInterval),this.trafficStatsInterval=void 0),this.joinInfo){let A=Fc.get(this.joinInfo.cname);A&&A.delete(this.joinInfo.uid)}this.joinInfo=void 0,this.key=void 0,this.networkQualityInterval&&(window.clearInterval(this.networkQualityInterval),this.networkQualityInterval=void 0),this.usingProxy=!1}updateTurnConfigFromSignal(){if(!this.joinInfo)return;let A=function(l){let g;return g=l.startsWith("dc")?l.match(/(dc\:\/\/)?([^:]+):(\d+)/):l.match(/(wss\:\/\/)?([^:]+):(\d+)/),g?{username:Ti.username,password:Ti.password,turnServerURL:g[2],tcpport:parseInt(g[3])+30,udpport:parseInt(g[3])+30,forceturn:!1}:null}((this.joinInfo.cloudProxyServer==="disabled"?this.signal.url:this.joinInfo.gatewayAddrs[this.signal.currentURLIndex].address)||"");this.joinInfo.turnServer.serversFromGateway=[],A&&this.joinInfo.turnServer.mode!=="off"&&this.joinInfo.cloudProxyServer==="disabled"&&this.joinInfo.turnServer.serversFromGateway.push(Oo(Oo({},Ti),{},{turnServerURL:A.turnServerURL,tcpport:A.tcpport,udpport:A.udpport,username:this.joinInfo.uid.toString(),password:this.joinInfo.token}))}async updateTrafficStats(){if(this.state!=="CONNECTED")return;let A=await this.signal.request(sr.TRAFFIC_STATS,void 0,!0);A.timestamp=Date.now(),A.ntp_offset!=null&&(this.ntpOffset=A.ntp_offset),A.peer_delay.forEach(l=>{let g=this._statsCollector.trafficStats&&this._statsCollector.trafficStats.peer_delay.find(C=>C.peer_uid===l.peer_uid);g&&g.B_st!==l.B_st&&Fi(()=>{this.emit(Pn.STREAM_TYPE_CHANGE,l.peer_uid,l.B_st)})}),this._statsCollector.updateTrafficStats(A)}getJoinMessage(A){var l,g,C,m;if(!this.joinInfo||!this.key)throw new ze(fe.UNEXPECTED_ERROR,"can not generate join message, no join info");let y=Object.assign({},this.joinInfo.apResponse),w=Ie("REPORT_APP_SCENARIO");if(typeof w!="string")try{w=JSON.stringify(w)}catch{w=void 0}var b;w&&w.length>128&&(w=void 0),this.store.hasStartJoinChannel=!0,this.store.isABTestSuccess||this.emit(Pn.UPDATE_GATEWAY_CONFIG),b=this.store.clientId,Rt(po).call(po,b)||po.push(b);let M=So(this.store),k=!((l=this.isPreallocation)===null||l===void 0||!l.call(this)),V=Lf(this.store),K=rr(),q=Nd(87)||KP()||mf(117),ce=(function(){let Se=Wi();if(Se.name!==nn.SAFARI||!Se.browserVersion)return!1;let be=Se.browserVersion.split(".");return Number(be[0])>18||Number(be[0])===18&&Number(be[1])>=4}()||BR(18,4,!1))&&r2(18,6,!0)&&this.spec.codec==="h264"&&Ie("ENABLE_ABSSENDTIME_AS_SENTTS"),oe=!(((g=y.detail)===null||g===void 0?void 0:g[3])!=="CN"||!Ie("ENABLE_QUALITY_FALLBACK"))&&Ie("ENABLE_QUALITY_FALLBACK"),le=!!Ie("ENABLE_AP_MULTI_IP")&&((C=y.detail)===null||C===void 0?void 0:C[5])==="multi-ip",pe=Oo({license:this.joinInfo.license,p2p_id:this.store.p2pId,session_id:this.joinInfo.sid,app_id:this.joinInfo.appId,channel_key:this.key,channel_name:this.joinInfo.cname,sdk_version:Cn,browser:navigator.userAgent,process_id:Ie("PROCESS_ID"),mode:this.store.useP2P?"p2p":this.spec.mode,codec:this.spec.codec,role:this.role,has_changed_gateway:le||this.hasChangeBGPAddress,ap_response:y,extend:Ie("JOIN_EXTEND"),details:{6:this.joinInfo.stringUid,cservice_map:this.joinInfo.cloudProxyServer==="proxy3"?"1":this.joinInfo.cloudProxyServer==="proxy5"?"2":void 0},features:{rejoin:!0},optionalInfo:this.joinInfo.optionalInfo,appScenario:w,attributes:{userAttributes:Oo(Oo({enableEncodedTransform:(!!Ie("ENABLE_AUDIO_METADATA")||!!Ie("ENABLE_AUDIO_PTS"))&&q||!!Ie("ENABLE_AUDIO_TOPN")&&_R(nn.CHROME,87,116)||void 0,enableAudioMetadata:!!Ie("ENABLE_AUDIO_METADATA")&&q,enableAudioPts:!!Ie("ENABLE_AUDIO_PTS")&&q,topnSmoothLevel:Ie("TOPN_SMOOTH_LEVEL"),topnNewSpeakerDelay:Ie("TOPN_NEW_SPEAKER_DELAY"),topnSwitchHoldMs:Ie("TOPN_SWITCH_HOLD_MS"),topnAudioGain:Ie("TOPN_AUDIO_GAIN"),enableNetworkQualityProbe:this.store.networkQualityProbe,enablePublishedUserList:Ie("ENABLE_PUBLISHED_USER_LIST"),maxSubscription:Ie("MAX_SUBSCRIPTION"),subscribeAudioFilterTopN:LA("SUBSCRIBE_AUDIO_FILTER_TOPN","number"),enablePublishAudioFilter:LA("ENABLE_PUBLISH_AUDIO_FILTER","boolean"),enableUserLicenseCheck:LA("ENABLE_USER_LICENSE_CHECK","boolean"),enableRTX:Ie("USE_PUB_RTX")===!0||Ie("USE_SUB_RTX")===!0||void 0,disableFEC:Ie("DISABLE_FEC"),enableNTPReport:!!Ie("ENABLE_NTP_REPORT")||void 0,enableInstantVideo:V,enableFulllinkAvSync:!!Ie("ENABLE_FULL_LINK_AV_SYNC")||void 0,enableDataStream2:LA("ENABLE_DATASTREAM_2","boolean"),enableAutFeedback:!!Ie("FORCE_ENABLE_AUT_CC")||!Dg()&&(!!Ie("ENABLE_AUT_FEEDBACK")||void 0),rtm2Flag:typeof this.joinInfo.rtmFlag=="number"?this.joinInfo.rtmFlag:void 0,enableUserAutoRebalanceCheck:!!Ie("ENABLE_USER_AUTO_REBALANCE_CHECK"),enableXR:LA("USE_XR","boolean"),enableLossbasedBwe:LA("ENABLE_LOSSBASED_BWE","boolean"),enableAutCC:!!Ie("FORCE_ENABLE_AUT_CC")||!Dg()&&(!!Ie("ENABLE_AUT_CC")||void 0),enableCCFallback:LA("ENABLE_CC_FALLBACK","boolean"),enablePreallocPC:k,preSubNum:M?LA("PRE_SUB_NUM","number"):void 0,enablePubTWCC:LA("PUBLISH_TWCC","boolean"),enableSubTWCC:LA("SUBSCRIBE_TWCC","boolean"),enablePubRTX:LA("USE_PUB_RTX","boolean"),enableSubRTX:LA("USE_SUB_RTX","boolean"),enableSubSVC:Ie("ENABLE_SVC")?Ie("ENABLE_SVC_DEFAULT_CODECS"):Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0,enableSvcExtended:Ie("ENABLE_SVC")&&Array.isArray(Ie("SVC_EXTENDED"))&&Ie("SVC_EXTENDED").length!==0?Ie("SVC_EXTENDED"):void 0,enableVosFallback:Ie("ENABLE_VOS_FALLBACK"),enableQualityFallback:oe},K),{},{audioDuplicate:LA("ENABLE_AUDIO_RED","boolean")?(m=LA("AUDIO_DUPLICATE_NUM","number"))!==null&&m!==void 0?m:2:void 0,senttsUsesAbsSendTime:!!ce||void 0,enableDualStreamFlag:LA("ENABLE_DUAL_STREAM_FLAG","boolean")})},join_ts:this.joinGatewayStartTime},A);return this.joinInfo.stringUid&&(pe.string_uid=this.joinInfo.stringUid),this.joinInfo.aesmode&&this.joinInfo.aespassword&&(pe.aes_mode=this.joinInfo.aesmode,Ie("ENCRYPT_AES")?(pe.aes_secret=this.joinInfo.aespassword,pe.aes_encrypt=!0):pe.aes_secret=this.joinInfo.aespassword,this.joinInfo.aessalt&&(pe.aes_salt=this.joinInfo.aessalt)),y.addresses[this.signal.websocket.currentURLIndex]&&(pe.ap_response.ticket=y.addresses[this.signal.websocket.currentURLIndex].ticket,delete y.addresses),this.joinInfo.defaultVideoStream!==void 0&&(pe.default_video_stream=this.joinInfo.defaultVideoStream),pe}getRejoinMessage(){if(!this.joinInfo)throw new ze(fe.UNEXPECTED_ERROR,"can not generate rejoin message, no join info");return{session_id:this.joinInfo.sid,channel_name:this.joinInfo.cname,cid:this.joinInfo.cid,uid:this.joinInfo.uid,vid:Number(this.joinInfo.vid)}}handleSignalEvents(){this.signal.on(or.WS_RECONNECT_CREATE_CONNECTION,A=>{this.joinGatewayStartTime=Date.now()}),this.signal.on(or.WS_RECONNECTING,A=>{this.joinInfo&&tr.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:A||xo.NETWORK_ERROR}),this.joinInfo&&(this.state="RECONNECTING",tr.sessionInit(this.joinInfo.sid,{lts:new Date().getTime(),extend:this.isSignalRecover?{recover:!0}:{rejoin:!0},cname:this.joinInfo.cname,appid:this.joinInfo.appId,mode:this.spec.mode,stringUid:this.joinInfo.stringUid,channelProfile:this.spec.mode==="live"?1:0,channelMode:0,lsid:this.joinInfo.sid,clientRole:this.role==="audience"?2:1,buildFormat:1}),this.isSignalRecover=!1,this.joinGatewayStartTime=Date.now())}),this.signal.on(or.WS_CLOSED,A=>{let l;switch(A){case bi.LEAVE:l=xo.LEAVE;break;case bi.UID_BANNED:case bi.IP_BANNED:case bi.CHANNEL_BANNED:case bi.SERVER_ERROR:l=xo.SERVER_ERROR;break;case bi.FALLBACK:l=xo.FALLBACK;break;case bi.LICENSE_MISSING:case bi.LICENSE_EXPIRED:case bi.LICENSE_MINUTES_EXCEEDED:case bi.LICENSE_PERIOD_INVALID:case bi.LICENSE_MULTIPLE_SDK_SERVICE:case bi.LICENSE_ILLEGAL:case bi.TOKEN_EXPIRE:l=A;break;default:l=xo.NETWORK_ERROR}X.debug("[".concat(this.store.clientId,"] [signal] websocket closed, reason: ").concat(l||"undefined -> "+xo.NETWORK_ERROR)),this.joinInfo&&tr.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:A===bi.LEAVE?1:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:l}),this._disconnectedReason=A,A!==bi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}),this.signal.on(or.WS_CONNECTED,()=>{if(this.updateTurnConfigFromSignal(),this.state="CONNECTED",this.joinInfo){if(this.role==="audience"){let A=Ie("CLIENT_ROLE_OPTIONS")||this._clientRoleOptions;A&&(A.level||A.delay)&&(X.debug("[".concat(this.store.clientId,"] patch to send set client role, role: ").concat(this.role,", mode: ").concat(this.spec.mode,", level: ").concat(A.level,", delay: ").concat(A.delay)),this.setClientRole(this.role,A))}if(tr.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!0,ec:null,vid:this.joinInfo.vid,addr:this.signal.url,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload,isABTestSuccess:this.store.isABTestSuccess}),this._isProactiveJoin=!1,this.joinInfo.useLocalAccessPoint&&this.joinInfo.setLocalAPVersion===1){let A=this.signal.url&&this.signal.url.match(/wss\:\/\/([^:]+):(\d+)/);if(!A)return void X.error("[".concat(this.store.clientId,"] set local access point after joined failed: ").concat(A));Mn("EVENT_REPORT_DOMAIN",A[1]),Mn("EVENT_REPORT_BACKUP_DOMAIN",A[1]),Mn("LOG_UPLOAD_SERVER","".concat(A[1],":6444"))}}}),this.signal.on(Or.ON_UPLINK_STATS,A=>{this._statsCollector.updateUplinkStats(A)}),this.signal.on(or.REQUEST_RECOVER,(A,l,g)=>{if(!this.joinInfo)return g(new ze(fe.UNEXPECTED_ERROR,"gateway: can not recover, no join info"));A&&(this.joinInfo.multiIP=A,this.hasChangeBGPAddress=!0),this.isSignalRecover=!0,rs(this,Pn.REQUEST_NEW_GATEWAY_LIST).then(l).catch(g)}),this.signal.on(or.REQUEST_JOIN_INFO,async(A,l,g)=>{var C,m,y;if(this.updateTurnConfigFromSignal(),this.store.useP2P)return void A(this.getJoinMessage({ortc:{}}));let w=no((C=this.joinInfo)===null||C===void 0?void 0:C.turnServer);if(Ie("NEW_TURN_MODE")&&w&&((m=this.joinInfo)===null||m===void 0?void 0:m.cloudProxyServer)==="disabled"){var b;let K=w.servers.map(oe=>"turnServerURL"in oe&&Ie("USE_TURN_IP")?Oo(Oo({},oe),{},{turnServerURL:HC(oe.turnServerURL)}):oe),q=(b=w.serversFromGateway)===null||b===void 0?void 0:b.map(oe=>Ie("USE_TURN_IP")?Oo(Oo({},oe),{},{turnServerURL:HC(oe.turnServerURL)}):oe),ce=this.signal.currentURLIndex;K.length>0&&(K=[K[ce%K.length]],w.servers=K),Array.isArray(q)&&q.length>0&&(q=[q[0]],w.serversFromGateway=q),X.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(ce))}let{iceParameters:M,dtlsParameters:k,rtpCapabilities:V}=await rs(this,Pn.REQUEST_P2P_CONNECTION_PARAMS,{turnServer:w,cloudProxyServer:(y=this.joinInfo)===null||y===void 0?void 0:y.cloudProxyServer});try{A(this.getJoinMessage({ortc:{iceParameters:M,dtlsParameters:k,rtpCapabilities:V,version:"2"}}))}catch(K){l(K)}}),this.signal.on(or.REQUEST_REJOIN_INFO,A=>{A(this.getRejoinMessage())}),this.signal.on(or.REPORT_JOIN_GATEWAY,(A,l)=>{if(!this.joinInfo)return;let g,C="";var m;A instanceof ze?(g=((m=A.data)===null||m===void 0?void 0:m.desc)||A.code,C=A.message):g=A,tr.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!1,ec:g,errorMsg:C,addr:l,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload})}),this.signal.on(or.IS_P2P_DISCONNECTED,A=>{A(o2(this,Pn.IS_P2P_DISCONNECTED))}),this.signal.on(or.DISCONNECT_P2P,()=>{this.emit(Pn.DISCONNECT_P2P)}),this.signal.on(or.REQUEST_SUCCESS,()=>{this._signalTimeout=!1}),this.signal.on(or.REQUEST_TIMEOUT,()=>{this._signalTimeout=!0}),this.signal.on(or.JOIN_RESPONSE,A=>{let l=this.getCurrentGatewayAddress();this.emit(Pn.JOIN_RESPONSE,A,l)}),this.signal.on(or.PRE_CONNECT_PC,async(A,l)=>{if(this.joinInfo){var g,C;this.updateTurnConfigFromSignal();let y=this.getCurrentGatewayAddress(),w=no((g=this.joinInfo)===null||g===void 0?void 0:g.turnServer);if(Ie("NEW_TURN_MODE")&&w&&((C=this.joinInfo)===null||C===void 0?void 0:C.cloudProxyServer)==="disabled"){var m;let M=w.servers.map(K=>"turnServerURL"in K&&Ie("USE_TURN_IP")?Oo(Oo({},K),{},{turnServerURL:HC(K.turnServerURL)}):K),k=(m=w.serversFromGateway)===null||m===void 0?void 0:m.map(K=>Ie("USE_TURN_IP")?Oo(Oo({},K),{},{turnServerURL:HC(K.turnServerURL)}):K),V=this.signal.currentURLIndex;M.length>0&&(M=[M[V%M.length]],w.servers=M),Array.isArray(k)&&k.length>0&&(k=[k[0]],w.serversFromGateway=k),X.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(V,",in pre pc"))}let b=Ie("FINGERPRINT")||this.joinInfo.apResponse.addresses[this.signal.currentURLIndex].fingerprint;if(y&&b){let M=s7(y);rs(this,Pn.PRE_CONNECT_PC,{candidates:M,fingerprint:b,turnServer:w}).then(k=>{A==null||A(k)}).catch(l||(()=>{}))}}}),this.signal.on(or.RECOVER_NOTIFICATION,A=>{this.joinInfo&&typeof Ie("AP_REQUEST_DETAIL")=="string"&&(this.joinInfo.apRequestDetail="".concat(Ie("AP_REQUEST_DETAIL"),";").concat(A))}),this.signal.on(or.VOS_FALLBACK,A=>{this.emit(Pn.VOS_FALLBACK,A)}),this.signal.on(or.DATACHANNEL_FAILBACK,A=>{X.warning("[".concat(this.store.clientId,"] User join datachannel failed")),this.reset(),this.resetSignal(),this.emit(Pn.DATACHANNEL_FAILBACK)})}async tryUnsubBeforeResub(A,l){try{await this.signal.request(sr.UNSUBSCRIBE,{p2p_id:this.store.p2pId,stream_id:A,ortc:[l]},!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] tryUnsubBeforeResub warning"),g),g}}async tryUnsubDataChannelBeforeResub(A,l){try{await this.signal.request(sr.UNSUBSCRIBE,{stream_id:l.id},!0)}catch(g){throw X.warning("unsubscribe datachannel warning",g),g}}async tryUnpubBeforeRepub(A,l){try{await this.signal.request(sr.UNPUBLISH,{stream_id:A,ortc:l},!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] tryUnpubBeforeRepub warning: "),g),g}}async tryUnpubDataChannelBeforeRepub(A,l){try{await this.signal.request(sr.UNPUBLISH_DATASTREAM,{channnel_id:l.channelId},!0)}catch(g){throw X.warning("unpublish datastream warning: ",g),g}}async tryMassUnsubBeforeResub(A){let l={users:A.map(g=>({stream_id:g.stream_id,stream_type:g.stream_type}))};try{await this.signal.request(sr.UNSUBSCRIBE_STREAMS,l,!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] tryMassUnsubBeforeResub warning"),g),g}}async muteLocal(A,l){let g={action:A.find(C=>C.stream_type===an.Audio)?"mute_local_audio":"mute_local_video",p2p_id:this.store.p2pId,ortc:A,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway muteLocal warning: "),C),C}}async unmuteLocal(A,l){let g={action:A.find(C=>C.stream_type===an.Audio)?"unmute_local_audio":"unmute_local_video",p2p_id:this.store.p2pId,ortc:A,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway unmuteLocal warning: "),C),C}}async muteRemote(A,l){let g={action:A===$t.AUDIO?"mute_remote_audio":"mute_remote_video",p2p_id:this.store.p2pId,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway muteRemote warning: "),C),C}}async unmuteRemote(A,l){let g={action:A===$t.AUDIO?"unmute_remote_audio":"unmute_remote_video",p2p_id:this.store.p2pId,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway unmuteRemote warning: "),C),C}}uploadWRTCStats(A){this.signal.uploadWRTCStats(A)}upload(A,l){this.signal.upload(A,l)}getSignalRTT(){return this.signal.rtt}async restartICE(A){let l={p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:A};try{return await this.signal.request(sr.RESTART_ICE,l,!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] P2PChannel.restartICE warning: "),g),g}}reconnect(A,l){this.state==="CONNECTED"&&this.signal.reconnect(A||void 0,l||xo.P2P_FAILED)}getCurrentGatewayAddress(){var A,l;if(!Ie("GATEWAY_WSS_ADDRESS"))return Ie("USE_CANDIDATE_FROM_AP_DETAIL")&&(A=this.joinInfo)!==null&&A!==void 0&&A.apGatewayAddress?(X.debug("[".concat(this.store.clientId,"] use candidate from ap detail, ").concat(JSON.stringify(this.joinInfo.apGatewayAddress))),this.joinInfo.apGatewayAddress):(l=this.joinInfo)!==null&&l!==void 0&&l.gatewayAddrs?this.joinInfo.gatewayAddrs[this.signal.currentURLIndex]:void 0}async setPublishAudioFilterEnabled(A){await this.signal.request(sr.SET_PARAMETER,{enablePublishAudioFilter:A})}downgradeCodec(A){this.signal.downgradeCodec(A)}resetSignal(){this.signal&&(this.signal.removeAllListeners(),this.signal.close(bi.FALLBACK)),this.store.useDcSignal=!1,this.signal=new r7(Oo(Oo({},this.spec),{},{retryConfig:this.spec.websocketRetryConfig}),this.store),this.handleSignalEvents(),this.emit(Pn.RESET_SIGNAL)}}let Hd=0,fs=0;function iA(a,A,l,g){return new Ft((C,m)=>{A.timeout=A.timeout||Ie("HTTP_CONNECT_TIMEOUT"),A.responseType=A.responseType||"json",A.data&&!l?(A.data=JSON.stringify(A.data),Hd+=DA(A.data)):l&&(A.data.size?Hd+=A.data.size:A.data instanceof FormData?Hd+=Zs(A.data):Hd+=DA(JSON.stringify(A.data))),A.headers=A.headers||{},A.headers["Content-Type"]=A.headers["Content-Type"]||"application/json",A.method="POST",A.url=a,vA.request(A).then(y=>{typeof y.data=="string"?fs+=DA(y.data):y.data instanceof ArrayBuffer||y.data instanceof Uint8Array?fs+=y.data.byteLength:fs+=DA(JSON.stringify(y.data)),g&&C({data:y.data,headers:y.headers}),C(y.data)}).catch(y=>{vA.isCancel(y)?m(new ze(fe.OPERATION_ABORTED,"cancel token canceled")):y.code==="ECONNABORTED"?m(new ze(fe.NETWORK_TIMEOUT,y.message)):y.response?m(new ze(fe.NETWORK_RESPONSE_ERROR,y.response.status)):m(new ze(fe.NETWORK_ERROR,y.message))})})}(function(){var a;function A(ut){var kt=0;return function(){return kt>>0)+"_",It=0;return function ne(ve){if(this instanceof ne)throw new TypeError("Symbol is not a constructor");return new kt(Wt+(ve||"")+"_"+It++,ve)}}),m("Symbol.iterator",function(ut){if(ut)return ut;ut=Symbol("Symbol.iterator");for(var kt="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Wt=0;Wt"u"||!FormData.prototype.keys)){var be=function(ut,kt){for(var Wt=0;Wt{let a=Ie("AREAS");return a.length===0&&a.push(fn.GLOBAL),$c(a).call(a,(A,l,g)=>{let C=rd(l);return C?g===0?C:"".concat(A,",").concat(C):A},"")},rd=a=>a===fn.OVERSEA?"".concat(ka.ASIA,",").concat(ka.EUROPE,",").concat(ka.AFRICA,",").concat(ka.NORTH_AMERICA,",").concat(ka.SOUTH_AMERICA,",").concat(ka.OCEANIA):ka[a],jC=a=>{let A={CODE:"",WEBCS_DOMAIN:[],WEBCS_DOMAIN_BACKUP_LIST:[],PROXY_CS:[],CDS_AP:[],ACCOUNT_REGISTER:[],UAP_AP:[],EVENT_REPORT_DOMAIN:[],EVENT_REPORT_BACKUP_DOMAIN:[],LOG_UPLOAD_SERVER:[],PROXY_SERVER_TYPE3:[]};return a.map(l=>{let g=KC[l],C=Object.keys(g);C&&C.map(m=>{m!=="CODE"&&(A[m]=A[m].concat(g[m]))})}),A},Go={GLOBAL:{ASIA:[fn.CHINA,fn.JAPAN,fn.INDIA,fn.KOREA,fn.HKMC],EUROPE:[],NORTH_AMERICA:[fn.US],SOUTH_AMERICA:[],OCEANIA:[],AFRICA:[]}},Pg=Object.keys(Go[fn.GLOBAL]),Uu=[fn.CHINA,fn.NORTH_AMERICA,fn.EUROPE,fn.ASIA,fn.JAPAN,fn.INDIA,fn.OCEANIA,fn.SOUTH_AMERICA,fn.AFRICA,fn.KOREA,fn.HKMC,fn.US],qJ=function(a,A){let l=[];if(Rt(a).call(a,fn.GLOBAL)){let m=[fn.GLOBAL,fn.OVERSEA],y=Object.keys(KC);if(A===fn.GLOBAL)throw new ze(fe.INVALID_PARAMS,"GLOBAL is an invalid excludedArea value");if(A===fn.CHINA)l=[fn.OVERSEA];else if(C=A,Rt(Pg).call(Pg,C)){let w=(g=A,Go[fn.GLOBAL][g]||[]),b=[...m,A,...w];l=y.filter(M=>!Rt(b).call(b,M))}else if(function(w){let b=!1;return Pg.forEach(M=>{var k;Rt(k=Go[fn.GLOBAL][M]).call(k,w)&&(b=!0)}),b}(A)){let w=function(M){let k;return Pg.forEach(V=>{var K;Rt(K=Go[fn.GLOBAL][V]).call(K,M)&&(k=V)}),k}(A),b=[...m,w,A];l=y.filter(M=>!Rt(b).call(b,M))}else l=a;l=function(w){let b=[];return Uu.forEach(M=>{Rt(w).call(w,M)&&b.push(M)}),b.concat(w.filter(M=>!Rt(Uu).call(Uu,M)))}(l)}else l=a;var g,C;return l};function a7(a){var A,l;if(!a&&Rt(A=Ie("AREAS")).call(A,fn.EXTENSIONS))return X.debug("update area from ap : reset"),void mh(RU,!0);if(!Rt(l=Ie("AREAS")).call(l,fn.GLOBAL)||!a)return;let g=KC.EXTENSIONS;g&&(g={CODE:rd(fn.EXTENSIONS),WEBCS_DOMAIN:["ap-web-1-".concat(a,".agora.io")],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-".concat(a,".ap.sd-rtn.com")],PROXY_CS:["proxy-ap-web-".concat(a,".agora.io")],CDS_AP:["cds-ap-web-1-".concat(a,".agora.io"),"cds-ap-web-2-".concat(a,".ap.sd-rtn.com")],ACCOUNT_REGISTER:["sua-ap-web-1-".concat(a,".agora.io"),"sua-ap-web-2-".concat(a,".ap.sd-rtn.com")],UAP_AP:["uap-ap-web-1-".concat(a,".agora.io"),"uap-ap-web-2-".concat(a,".ap.sd-rtn.com")],EVENT_REPORT_DOMAIN:["statscollector-1-".concat(a,".agora.io")],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-".concat(a,".agora.io")],LOG_UPLOAD_SERVER:["logservice-".concat(a,".agora.io")],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy-".concat(a,".agora.io")]},X.debug("update area from ap success: ".concat(a,",config is "),g),Mn("AREAS",[fn.EXTENSIONS],!0),Object.keys(g).map(C=>{C==="LOG_UPLOAD_SERVER"||C==="EVENT_REPORT_DOMAIN"||C==="EVENT_REPORT_BACKUP_DOMAIN"||C==="PROXY_SERVER_TYPE3"?Mn(C,g[C][0]):Mn(C,g[C])}))}function mh(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=tr.reportApiInvoke(null,{name:Co.SET_AREA,options:a,tag:Gn.TRACER});try{let g=[];if(typeof a=="string"&&(g=[a]),Array.isArray(a)&&(a.forEach(m=>{if(!Rt(n_).call(n_,m))throw new ze(fe.INVALID_PARAMS,"invalid area code")}),g=a),Object.prototype.toString.call(a)==="[object Object]"){let{areaCode:m,excludedArea:y}=a;if(!m)throw new ze(fe.INVALID_PARAMS,"area code is needed");let w=m;typeof m=="string"&&(w=[m]),g=y?qJ(w,y):w}if(!A){if(Vr.AREAS){let m=new ze(fe.PROHIBITED_OPERATION,"setArea is prohibited because of config-distribute");return l.onError(m),void X.warning("setArea is prohibited because of config-distribute")}if(Rt(g).call(g,fn.GLOBAL)&&Ie("AREAS")===fn.EXTENSIONS){let m=new ze(fe.PROHIBITED_OPERATION,"setArea is prohibited because of ap extensions");return l.onError(m),void X.warning("setArea is prohibited because of ap extensions")}}Mn("AREAS",g,A);let C=jC(g);Object.keys(C).map(m=>{m==="LOG_UPLOAD_SERVER"||m==="EVENT_REPORT_DOMAIN"||m==="EVENT_REPORT_BACKUP_DOMAIN"||m==="PROXY_SERVER_TYPE3"?Mn(m,C[m][0]):Mn(m,C[m])}),X.debug("set area success:",g.join(","))}catch(g){throw l.onError(g),g}l.onSuccess()}function A7(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function m1(a){for(var A=1;A{w=Date.now();let k=await iA(M,{data:y,cancelToken:g,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"}});if(b=Date.now()-w,k.code!==0){let q=new ze(fe.UNEXPECTED_RESPONSE,"live streaming ap error, code"+k.code,{retry:!0,responseTime:b});throw X.error(q.toString()),q}let V=JSON.parse(k.json_body);if(V.code!==200){let q=new ze(fe.UNEXPECTED_RESPONSE,"live streaming app center error, code: ".concat(V.code,", reason: ").concat(V.reason),{code:V.code,responseTime:b});throw X.error(q.toString()),q}if(!V.servers||V.servers.length===0){let q=new ze(fe.UNEXPECTED_RESPONSE,"live streaming app center empty server",{code:V.code,responseTime:b});throw X.error(q.toString()),q}let K=function(q,ce){return{addressList:q.servers.map(oe=>"wss://".concat(oe.address.replace(/\./g,"-"),".").concat(Ie("WORKER_DOMAIN"),":").concat(oe.wss,"?serviceName=").concat(encodeURIComponent(ce))),workerToken:q.workerToken,vid:q.vid}}(V,A);return Ie("LIVE_STREAMING_ADDRESS")&&(K.addressList=Ie("LIVE_STREAMING_ADDRESS")instanceof Array?Ie("LIVE_STREAMING_ADDRESS"):[Ie("LIVE_STREAMING_ADDRESS")]),m1(m1({},K),{},{responseTime:b})},(k,V)=>(tr.apworkerEvent(l.sid,{success:!0,sc:200,serviceName:A,responseDetail:JSON.stringify(k.addressList),firstSuccess:V===0,responseTime:b,serverIp:a[V%a.length]}),!1),(k,V)=>(tr.apworkerEvent(l.sid,{success:!1,sc:k.data&&k.data.code||200,serviceName:A,responseTime:b,serverIp:a[V%a.length]}),!!(k.code!==fe.OPERATION_ABORTED&&k.code!==fe.UNEXPECTED_RESPONSE||k.data&&k.data.retry)&&(M=a[(V+1)%a.length],!0)),C)}let c_=1;function c7(a,A,l,g){let{url:C,areaCode:m}=a,{clientId:y,sid:w}=A,b=Date.now(),M,k=A.role,[V,K]=RN(A,m,[ps.CHOOSE_SERVER]),q=Xi.networkState;return jl(async()=>{q&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(g&&g.maxRetryTimeout||os.maxRetryTimeout)]),q=Xi.networkState;let{data:ce,headers:oe}=await iA(C,{data:V,cancelToken:l,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);M=oe.http3==="1"?1:-1,tr.reportResourceTiming(C,w),d7(ce,C,A,b,[ps.CHOOSE_SERVER],M);let le=YC(ce,ps.CHOOSE_SERVER);return SN(le),IN(le,C)},ce=>(ce&&tr.joinChooseServer(w,{role:k,lts:b,succ:!0,csAddr:C,opid:K,serverList:ce.gatewayAddrs.map(oe=>oe.address),ec:null,cid:ce.cid.toString(),uid:ce.uid.toString(),csIp:ce.csIp,unilbsServerIds:[ps.CHOOSE_SERVER].toString(),isHttp3:M,corssRegionTagReq:A.apRequestDetail,corssRegionTagRes:ce.res.detail&&ce.res.detail[38],vid:ce.vid}),!1),ce=>ce.code!==fe.OPERATION_ABORTED&&(ce.code===fe.CAN_NOT_GET_GATEWAY_SERVER?ce.data.retry:(tr.joinChooseServer(w,{role:k,lts:b,succ:!1,csAddr:C,serverList:null,opid:K,ec:ce.code,csIp:ce.data&&ce.data.csIp,unilbsServerIds:[ps.CHOOSE_SERVER].toString(),extend:JSON.stringify({networkState:q}),isHttp3:M,corssRegionTagReq:A.apRequestDetail}),X.warning("[".concat(y||"sid-".concat(w.slice(0,6)),"] Choose server network error, retry"),ce),!0)),g)}function l7(a,A,l,g){let C,{url:m,areaCode:y,serviceIds:w}=a,b=Date.now(),M=A.role,[k,V]=RN(A,y,w),K;return jl(async()=>{K&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(g&&g.maxRetryTimeout||os.maxRetryTimeout)]),K=Xi.networkState;let{data:q,headers:ce}=await iA(m,{data:k,cancelToken:l,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);C=ce.http3==="1"?1:-1,tr.reportResourceTiming(m,A.sid),d7(q,m,A,b,w,C);let oe=YC(q,ps.CHOOSE_SERVER),le=YC(q,A.cloudProxyServer==="proxy5"?ps.CLOUD_PROXY_5:A.cloudProxyServer==="proxy3"||A.cloudProxyServer==="proxy4"?ps.CLOUD_PROXY:ps.CLOUD_PROXY_FALLBACK),pe=performance.getEntriesByName(m),Se=pe[pe.length-1],be;return Se&&(be={name:Se.name,protocol:"nextHopProtocol"in Se?Se.nextHopProtocol:"",dnscost:"domainLookupEnd"in Se&&"domainLookupStart"in Se&&typeof Se.domainLookupEnd=="number"&&typeof Se.domainLookupStart=="number"?Se.domainLookupEnd-Se.domainLookupStart:-1,tcpTlsCost:"connectEnd"in Se&&"connectStart"in Se&&typeof Se.connectEnd=="number"&&typeof Se.connectStart=="number"?Se.connectEnd-Se.connectStart:-1,reqCost:"requestStart"in Se&&typeof Se.requestStart=="number"&&"responseEnd"in Se&&typeof Se.responseEnd=="number"?Se.responseEnd-Se.requestStart:-1,handleCost:"leave_ts"in q&&"enter_ts"in q&&typeof q.leave_ts=="number"&&typeof q.enter_ts=="number"?q.leave_ts-q.enter_ts:-1}),SN(oe),{gatewayInfo:IN(oe,m),proxyInfo:le,url:m,resourceTimingInfo:be}},q=>{var ce;return q.gatewayInfo&&tr.joinChooseServer(A.sid,{role:M,lts:b,succ:!0,csAddr:m,serverList:q.gatewayInfo.gatewayAddrs.map(oe=>oe.address),ec:null,opid:V,cid:q.gatewayInfo.cid.toString(),uid:q.gatewayInfo.uid.toString(),csIp:q.gatewayInfo.csIp,unilbsServerIds:w.toString(),isHttp3:C,corssRegionTagReq:A.apRequestDetail,corssRegionTagRes:q.gatewayInfo.res.detail&&q.gatewayInfo.res.detail[38],vid:(ce=q.gatewayInfo)===null||ce===void 0?void 0:ce.vid,resourceTimingInfo:q.resourceTimingInfo?JSON.stringify(q.resourceTimingInfo):void 0}),q.proxyInfo&&tr.joinWebProxyAP(A.sid,{lts:b,sucess:1,apServerAddr:m,turnServerAddrList:q.proxyInfo.addresses.map(oe=>oe.ip).join(","),errorCode:null,eventType:A.cloudProxyServer,unilbsServerIds:w.toString()}),!1},q=>q.code!==fe.OPERATION_ABORTED&&(q.code===fe.CAN_NOT_GET_GATEWAY_SERVER?q.data.retry:(tr.joinWebProxyAP(A.sid,{lts:b,sucess:0,apServerAddr:m,turnServerAddrList:null,errorCode:q.code,eventType:A.cloudProxyServer,unilbsServerIds:w.toString(),extend:JSON.stringify({networkState:K})}),X.warning("[".concat(A.clientId,"] multi unilbs network error, retry"),q),!0)),g)}let d7=(a,A,l,g,C,m)=>{let{sid:y,clientId:w,cloudProxyServer:b}=l,M=[],k=V=>{V.flag===4096?tr.joinChooseServer(y,{role:l.role,lts:g,succ:!1,csAddr:A,opid:a.opid,serverList:null,ec:V.error.message,csIp:V.error.data&&V.error.data.csIp,unilbsServerIds:C.toString(),isHttp3:m,corssRegionTagReq:l.apRequestDetail}):V.flag!==1048576&&V.flag!==4194304&&V.flag!==4194310||tr.joinWebProxyAP(y,{lts:g,sucess:0,apServerAddr:A,turnServerAddrList:null,errorCode:V.error.code,eventType:b,unilbsServerIds:C.toString()})};if(a.response_body.forEach(V=>{let K=V.buffer.code;if(V.uri===23&&K===0&&!V.buffer.edges_services)if(V.buffer.flag===4194310)X.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers"),V.buffer.edges_services=[];else{let q={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:Ie("NO_EDGES_RETRY"),csIp:a.detail[502]}),flag:V.buffer.flag};M.push(q),k(q)}if(K!==0){let q=N2(K),ce={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,q.desc,{desc:q.desc,retry:q.retry,csIp:a.detail[502]}),flag:V.buffer.flag};V.buffer.flag===4194310?X.warning(ce.error.toString()):M.push(ce),k(ce)}}),M.length)throw X.warning("[".concat(w||"sid-".concat(y.slice(0,6)),"] multi unilbs ").concat(A," failed, ").concat(M.map(V=>"flag: ".concat(V.flag,", message: ").concat(V.error.message,", retry: ").concat(V.error.data.retry)).join(" | "))),new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,M.map(V=>"flag: ".concat(V.flag,", message: ").concat(V.error.message)).join(" | "),{retry:!!M.find(V=>V.error.data.retry),csIp:a.detail[502],desc:[...new Set(M.map(V=>{var K;return V==null||(K=V.error)===null||K===void 0||(K=K.data)===null||K===void 0?void 0:K.desc}).filter(V=>!!V))]})},SN=a=>{var A,l,g,C;if(a.addresses&&a.addresses.length===0&&a.code===0)throw new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,"void gateway address",{retry:!0,csIp:a.detail&&a.detail[502]});if(Ie("AP_AREA")&&((g=a.detail)!==null&&g!==void 0&&g[23]&&typeof((C=a.detail)===null||C===void 0?void 0:C[23])=="string"?a7(a.detail[23].toLowerCase()):a7()),(A=a.detail)!==null&&A!==void 0&&A[19]&&typeof((l=a.detail)===null||l===void 0?void 0:l[19])=="string"){let y=a.detail[19],w=y==null?void 0:y.split(";");for(let b=0;b0){X.debug("assign gateway address to",Ie("GATEWAY_ADDRESS"));let y=Ie("GATEWAY_ADDRESS").map(w=>{var b,M;let k=(b=(M=a.addresses.find(V=>V.ip===w.ip&&V.port===w.port))===null||M===void 0?void 0:M.fingerprint)!==null&&b!==void 0?b:"";return{ip:w.ip,port:w.port,ticket:a.addresses[0]&&a.addresses[0].ticket,fingerprint:w.fingerprint||k}});a.addresses=y}},WJ=(a,A)=>{if(a.response_body&&a.response_body.length){let l=a.response_body[0];if(l.buffer.code!==0){let g=N2(l.buffer.code);throw new ze(fe.UPDATE_TICKET_FAILED,"[".concat(l.buffer.code,"]: ").concat(g.desc),{retry:g.retry})}return l.buffer.ticket}throw X.debug("update ticket request received ap response without response body:",A),new ze(fe.UPDATE_TICKET_FAILED,"cannot find response body from ap response",{retry:!1})},RN=(a,A,l)=>{let g=Math.floor(Math.random()*1e12),C=a.role==="host"?"1":a.role==="audience"?"2":void 0,m={appid:a.appId,client_ts:Date.now(),opid:g,sid:a.sid,request_bodies:[{uri:22,buffer:{cname:a.cname,detail:m1(m1(m1({6:a.stringUid,11:A,12:Ie("USE_NEW_TOKEN")?"1":void 0},C?{17:C}:{}),{},{22:A},a.apRequestDetail?{33:a.apRequestDetail}:{}),a.apRTM?{26:"RTM2"}:{}),key:a.token,service_ids:l,uid:a.uid||0}}]};m.request_bodies.forEach(w=>{a.multiIP&&a.multiIP.gateway_ip&&(w.buffer.detail[5]=JSON.stringify({vocs_ip:[a.multiIP.uni_lbs_ip],vos_ip:[a.multiIP.gateway_ip]}))});let y=new FormData;return y.append("request",JSON.stringify(m)),[y,g]},u7=(a,A)=>{let l=Math.floor(Math.random()*1e12),g={appid:a.appId,client_ts:Date.now(),opid:l,sid:a.sid,request_bodies:[{uri:28,buffer:{cname:a.cname,detail:{1:"",6:a.stringUid,12:"1"},token:a.token,service_ids:A,uid:a.uid||0,edges_services:a.apResponse.addresses.map(m=>({ip:m.ip,port:m.port}))}}]},C=new FormData;return C.append("request",JSON.stringify(g)),[C,l]},x2=0;function Bh(a){return Ft.all(a.map(A=>A.then(l=>{throw l},l=>l))).then(A=>{throw A},A=>A)}let Ug=async a=>{let{fragementLength:A,referenceList:l,asyncMapHandler:g,allFailedhandler:C,promisesCollector:m}=a,y=0,w=A,b,M=0,k=async()=>{let V=(()=>{let K=y*w,q=K+w;return l.slice(K,q).map(g)})();m&&m.push(...V);try{b=await Bh(V)}catch(K){if(M+=w,y++,!(M>=l.length))return void await k();C(K)}V.forEach(K=>K.cancel())};return await k(),b},yN=async a=>{let{referenceList:A,asyncMapHandler:l,closeFn:g}=a,C=A.length,m=0,y=async()=>{let w=l(A.shift());try{return await w}catch(b){if(m++,m>=C||g!=null&&g(b))throw b;return y()}};return y()};async function XJ(){if(typeof VideoDecoder>"u")return!0;let a,A=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,85,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,149,160,133,4,144,43,122,168,159,120,159,205,39,82,131,57,52,87,187,68,23,248,134,204,226,97,17,49,183,55,236,219,249,221,98,208,215,190,59,179,167,213,47,1,246,150,14,194,245,159,83,35,64,103,218,38,21,82,3,135,21,185,84,248,134],l=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,148,62,134,140,92,172,141,77,35,94,181,164,65,169,65,156,154,43,221,162,11,252,67,102,113,48,136,137,219,62,43,113,239,23,126,250,186,252,10,138,218,25,193,244,74,68,194,209,107,23,52,206,199,78,72,98,103,151,71,96,62,51,210,158,72,231,158],g=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,143,233,163,51,196,98,95,151,224,22,134,33,240,150,248,67,18,34,196,142,81,238,173,140,80,205,232,132,144,67,12,131,157,4,171,243,86,122,35,6,166,184,243,85,126,13,206,103,152,62,168,160,187,2,241,138,52,211,72,121,128,151,63,147,128,19,42],C=[18,0,50,138,1,48,192,64,253,248,65,17,67,192,32,0,16,0,0,0,0,0,0,0,195,12,48,144,64,32,0,209,75,61,9,204,25,115,79,226,115,63,63,208,70,210,220,153,126,241,237,37,107,195,153,1,99,112,230,189,209,169,130,10,11,22,167,215,159,205,197,7,183,162,26,48,254,141,134,103,32,16,235,45,1,15,18,119,169,110,206,251,51,115,202,60,148,1,46,39,109,25,28,86,168,15,77,211,239,2,58,43,146,26,230,184,81,48,140,226,226,250,222,146,171,133,164,13,188,180,64,122,142,146,32,208,238,170,193,35,53,44,225],m=[18,0,50,107,48,0,133,125,248,65,26,195,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,204,24,122,65,56,165,18,52,206,218,4,187,51,97,9,29,191,90,253,106,185,31,197,155,52,205,245,185,203,131,20,226,25,124,95,113,220,113,141,15,15,104,211,144,152,237,150,157,127,51,143,24,231,218,171,255,176,241,128,229,149,150,148,66,245,228,91,27,182,228,136,61,182,237,133,45,220,24,103,214,152],y=[18,0,50,122,48,1,9,253,248,65,26,67,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,198,182,231,242,220,235,163,140,12,36,36,166,46,132,210,4,71,23,218,132,27,30,17,45,244,79,31,243,195,136,100,169,76,88,142,85,204,217,121,168,29,163,198,17,251,223,73,12,212,244,139,123,151,179,75,216,96,208,136,40,229,42,59,149,10,116,228,85,99,93,221,108,255,140,248,20,30,167,122,109,206,164,108,197,110,251,23,243,133,160,63,13,207,177,12,128];return await new Ft((w,b)=>{let M;(async function(){a&&a.state!=="closed"||await async function(){a=new VideoDecoder({output:V=>{V.close(),clearTimeout(M),w(!0)},error:V=>{clearTimeout(M),w(!1)}}),await a.configure({codec:"av01.0.05M.08",width:160,height:90})}();let k=[A,l,g,C,m,y];for(let V=0;V{w(!1)},5e3)})}async function Ky(a,A,l,g){return{gatewayInfo:await async function(C,m,y,w){let b=null,M=[],k=async()=>{let K=Ie("WEBCS_DOMAIN").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(oe=>({url:C.proxyServer?"https://".concat(C.proxyServer,"/ap/?url=").concat(oe+"/api/v2/transpond/webrtc?v=2"):"https://".concat(oe,"/api/v2/transpond/webrtc?v=2"),areaCode:r1()})),q=w.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:K.map(oe=>oe.url)}),ce=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:K,asyncMapHandler:oe=>(X.debug("[".concat(C.clientId,"] Connect to choose_server:"),oe.url),c7(oe,C,m,y)),allFailedhandler:oe=>{throw w.recordJoinChannelService({endTs:Date.now(),status:"error",errors:oe},q),oe[0]},promisesCollector:M});return w.recordJoinChannelService({endTs:Date.now(),status:"success"},q),ce},V=async()=>{if(await Ks(1e3),b!==null)return b;let K=Ie("WEBCS_DOMAIN_BACKUP_LIST").map(oe=>({url:C.proxyServer?"https://".concat(C.proxyServer,"/ap/?url=").concat(oe+"/api/v2/transpond/webrtc?v=2"):"https://".concat(oe,"/api/v2/transpond/webrtc?v=2"),areaCode:r1()})),q=w.recordJoinChannelService({endTs:void 0,startTs:Date.now(),status:"pending",service:"chooseServer",urls:K.map(oe=>oe.url)}),ce=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:K,asyncMapHandler:oe=>(X.debug("[".concat(C.clientId,"] Connect to backup choose_server:"),oe.url),c7(oe,C,m,y)),allFailedhandler:oe=>{throw w.recordJoinChannelService({endTs:Date.now(),status:"error",errors:oe},q),oe[0]},promisesCollector:M});return w.recordJoinChannelService({endTs:Date.now(),status:"success"},q),ce};try{return b=await Bh([k(),V()]),M.length&&M.forEach(K=>K.cancel&&typeof K.cancel=="function"&&K.cancel()),b}catch(K){throw K[0]}}(a,A,l,g)}}async function QN(a,A,l,g,C){let m=a.cloudProxyServer;if(m==="disabled"){if(a.useLocalAccessPoint)return await Ky(a,A,l,C);if(Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY")){let{gatewayInfo:K,proxyInfo:q}=await TN(a,A,l,C);if(a.turnServer&&a.turnServer.mode!=="auto")return{gatewayInfo:K};let ce=q.map(oe=>({turnServerURL:oe.address,tcpport:oe.tcpport||Ti.tcpport,udpport:oe.udpport||Ti.udpport,username:oe.username||Ti.username,password:oe.password||Ti.password,forceturn:!1,security:!0}));if(C.useP2P){var y;let oe=(y=a.uid)!==null&&y!==void 0?y:K.uid,le="glb:".concat(oe.toString()),pe=await QR(le),Se=q.map(be=>({turnServerURL:be.address,tcpport:be.tcpport||Ti.tcpport,udpport:be.udpport||Ti.udpport,username:le,password:pe,forceturn:!1,security:!0}));ce.push(...Se)}return a.turnServer={mode:"manual",servers:ce},{gatewayInfo:K}}return await Ky(a,A,l,C)}let{proxyInfo:w,gatewayInfo:b}=await TN(a,A,l,C),M={gatewayInfo:b},k=w.map(K=>({turnServerURL:K.address,tcpport:m==="proxy3"?void 0:K.tcpport?K.tcpport:Ti.tcpport,udpport:m==="proxy4"?void 0:K.udpport?K.udpport:Ti.udpport,username:K.username||Ti.username,password:K.password||Ti.password,forceturn:m!=="proxy4",security:m==="proxy5"}));if(C.useP2P){var V;let K=(V=a.uid)!==null&&V!==void 0?V:b.uid,q="glb:".concat(K.toString()),ce=await QR(q),oe=w.map(le=>({turnServerURL:le.address,tcpport:m==="proxy3"?void 0:le.tcpport||Ti.tcpport,udpport:m==="proxy4"?void 0:le.udpport||Ti.udpport,username:q,password:ce,forceturn:m!=="proxy4",security:m==="proxy5"}));k.push(...oe)}return a.turnServer={mode:"manual",servers:k},X.debug("[".concat(a.clientId,"] set proxy server: ").concat(a.proxyServer,", mode: ").concat(m)),M}async function g7(a,A,l,g,C){let m=Ie("ACCOUNT_REGISTER").slice(0,Ie("AJAX_REQUEST_CONCURRENT")),y=[];y=A.proxyServer?m.map(b=>"https://".concat(A.proxyServer,"/ap/?url=").concat(b+"/api/v1")):m.map(b=>"https://".concat(b,"/api/v1"));let w=C==null?void 0:C.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"stringUID",urls:y});try{let b=await async function(M,k,V,K,q){let ce=Date.now(),oe={sid:V.sid,opid:10,appid:V.appId,string_uid:k},le=M[0],pe=await jl(()=>iA(le+"".concat(le.indexOf("?")===-1?"?":"&","action=stringuid"),{data:oe,cancelToken:K,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}}),(Se,be)=>{if(Se.code===0){if(Se.uid<=0||Se.uid>=Math.pow(2,32))throw X.error("Invalid Uint Uid ".concat(k," => ").concat(Se.uid),Se),tr.reqUserAccount(oe.sid,{lts:ce,success:!1,serverAddr:le,stringUid:oe.string_uid,uid:Se.uid,errorCode:fe.INVALID_UINT_UID_FROM_STRING_UID,extend:oe}),new ze(fe.INVALID_UINT_UID_FROM_STRING_UID);return tr.reqUserAccount(oe.sid,{lts:ce,success:!0,serverAddr:le,stringUid:oe.string_uid,uid:Se.uid,errorCode:null,extend:oe}),!1}let Ue=N2(Se.code);return Ue.retry&&(le=M[(be+1)%M.length]),tr.reqUserAccount(oe.sid,{lts:ce,success:!1,serverAddr:le,stringUid:oe.string_uid,uid:Se.uid,errorCode:Ue.desc,extend:oe}),Ue.retry},(Se,be)=>Se.code!==fe.OPERATION_ABORTED&&(tr.reqUserAccount(oe.sid,{lts:ce,success:!1,serverAddr:le,stringUid:oe.string_uid,uid:null,errorCode:Se.code,extend:oe}),le=M[(be+1)%M.length],!0),q);if(pe.code!==0){let Se=N2(pe.code);throw new ze(fe.UNEXPECTED_RESPONSE,Se.desc)}return pe}(y,a,A,l,g);return C==null||C.recordJoinChannelService({status:"success",endTs:Date.now()},w),b.uid}catch(b){throw C==null||C.recordJoinChannelService({status:"error",endTs:Date.now(),errors:[b]},w),b}}async function hA(a,A,l){let g=Ie("ACCOUNT_REGISTER"),C=[];C=A.proxyServer?g.map(m=>"https://".concat(A.proxyServer,"/ap/?url=").concat(m+"/api/v1")):g.map(m=>"https://".concat(m,"/api/v1"));try{return await yN({referenceList:C,asyncMapHandler:m=>async function(y,w,b,M){let k=Date.now(),V={sid:b.sid,opid:10,appid:b.appId,string_uid:w};try{let K=await iA(y+"".concat(y.indexOf("?")===-1?"?":"&","action=stringuid"),{data:V,cancelToken:M,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}});if(K.code!==0){let q=N2(K.code);throw new ze(fe.UNEXPECTED_RESPONSE,"preload sua error:".concat(q.desc),q)}if(K.uid<=0||K.uid>=Math.pow(2,32))throw new ze(fe.INVALID_UINT_UID_FROM_STRING_UID);return{requestTime:k,url:y,req:V,uid:K.uid,elapse:Date.now()-k}}catch(K){throw K}}(m,a,A,l),closeFn:m=>m.code===fe.OPERATION_ABORTED||m.code===fe.UNEXPECTED_RESPONSE&&!m.data.retry})}catch(m){throw m}}async function JC(a,A,l){let g=Ie("CDS_AP").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(b=>a.proxyServer?"https://".concat(a.proxyServer,"/ap/?url=").concat(b+"/api/v1"):"https://".concat(b,"/api/v1?action=config")),C=g.map(b=>function(M,k,V,K){let q=Wi(),ce={flag:64,cipher_method:0,features:m1(m1(m1(m1(m1({install_id:Of(),device:q.name,system:q.os,system_general:navigator.userAgent,vendor:k.appId,version:Cn,cname:k.cname,session_id:k.sid,proxyServer:k.proxyServer,sdk_type:i7.WEB_RTC,browser_name:q.name,browser_version:q.version,user_agent:navigator.userAgent,channel_name:k.cname},k.stringUid&&{string_uid:k.stringUid}),k.uid&&{uid:k.uid+""}),q.os&&{os_name:q.os}),q.osVersion&&{os_version:q.osVersion}),{},{detail:""})};return jl(()=>iA(M,{data:ce,timeout:1e3,cancelToken:V,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":54}}),void 0,oe=>oe.code!==fe.OPERATION_ABORTED,K)}(b,a,A,l)),m=null,y=null,w={};try{m=await Bh(C)}catch(b){if(b.code===fe.OPERATION_ABORTED)throw b;y=b}if(C.forEach(b=>b.cancel()),tr.reportApiInvoke(a.sid,{name:Co.REQUEST_CONFIG_DISTRIBUTE,options:{error:y,res:m}}).onSuccess(),m&&m.test_tags)try{w=function(b){if(!b.test_tags)return{};let M=b.test_tags,k=Object.keys(M),V={};return k.forEach(K=>{var q;let ce=RA(q=K.slice(4)).call(q),oe=JSON.parse(M[K]),le=oe[1];V[ce]={tag:oe[0]||"",value:le}}),V}(m)}catch{}return w}async function Hy(a,A){let l=Ie("WEBCS_DOMAIN").concat(Ie("WEBCS_DOMAIN_BACKUP_LIST")).map(g=>({url:"https://".concat(g,"/api/v2/transpond/webrtc?v=2"),areaCode:r1(),serviceIds:[ps.CHOOSE_SERVER,ps.CLOUD_PROXY_FALLBACK]}));try{return await yN({referenceList:l,asyncMapHandler:g=>async function(C,m,y){let w,{url:b,areaCode:M,serviceIds:k}=C,V=Date.now(),[K,q]=RN(m,M,k),ce=Xi.networkState;try{ce&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(os.maxRetryTimeout)]),ce=Xi.networkState;let{data:oe,headers:le}=await iA(b,{data:K,cancelToken:y,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);w=le.http3==="1"?1:-1,(be=>{let Ue=[];if(be.response_body.forEach(xe=>{let Le=xe.buffer.code;if(xe.uri===23&&Le===0&&!xe.buffer.edges_services)if(xe.buffer.flag===4194310)xe.buffer.edges_services=[];else{let je={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:Ie("NO_EDGES_RETRY"),csIp:be.detail[502]}),flag:xe.buffer.flag};Ue.push(je)}if(Le!==0){let je=N2(Le),dt={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,je.desc,{desc:je.desc,retry:je.retry,csIp:be.detail[502]}),flag:xe.buffer.flag};xe.buffer.flag===4194310?X.warning(dt.error.toString()):Ue.push(dt)}}),Ue.length)throw new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,Ue.map(xe=>"flag: ".concat(xe.flag,", message: ").concat(xe.error.message)).join(" | "),{retry:!!Ue.find(xe=>xe.error.data.retry),csIp:be.detail[502],desc:[...new Set(Ue.map(xe=>{var Le;return xe==null||(Le=xe.error)===null||Le===void 0||(Le=Le.data)===null||Le===void 0?void 0:Le.desc}).filter(xe=>!!xe))]})})(oe);let pe=YC(oe,ps.CHOOSE_SERVER),Se=YC(oe,ps.CLOUD_PROXY_FALLBACK);return SN(pe),{gatewayInfo:IN(pe,b),proxyInfo:Se,opid:q,requestTime:V,url:b,isHttp3:w,elapse:Date.now()-V}}catch(oe){throw oe}}(g,a,A),closeFn:g=>g.code===fe.OPERATION_ABORTED||g.code===fe.CAN_NOT_GET_GATEWAY_SERVER&&!g.data.retry})}catch(g){throw g}}async function TN(a,A,l,g){let C=Ie("PROXY_SERVER_TYPE3"),m=(q,ce,oe)=>{let le=oe||C;return Array.isArray(le)&&(le=ce%2==0&&C[1]||C[0]),"https://".concat(le,"/ap/?url=").concat(q)},y=null,w=[],b=async()=>{let q=Ie("WEBCS_DOMAIN").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map((le,pe)=>{let Se;return Se=a.cloudProxyServer==="disabled"&&a.proxyServer?m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe,a.proxyServer):a.cloudProxyServer==="disabled"||a.cloudProxyServer==="fallback"?"https://".concat(le,"/api/v2/transpond/webrtc?v=2"):m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe),{url:Se,areaCode:r1(),serviceIds:[ps.CHOOSE_SERVER,a.cloudProxyServer==="proxy5"?ps.CLOUD_PROXY_5:a.cloudProxyServer==="proxy3"||a.cloudProxyServer==="proxy4"?ps.CLOUD_PROXY:ps.CLOUD_PROXY_FALLBACK]}}),ce=g.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:q.map(le=>le.url)}),oe=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:q,asyncMapHandler:le=>(X.debug("[".concat(a.clientId,"] Connect to choose_server:"),le.url),l7(le,a,A,l)),allFailedhandler:le=>{throw g.recordJoinChannelService({endTs:Date.now(),status:"error",errors:le},ce),le[0]},promisesCollector:w});return g.recordJoinChannelService({endTs:Date.now(),status:"success"},ce),oe},M=async()=>{if(await Ks(1e3),y!==null)return y;let q=Ie("WEBCS_DOMAIN_BACKUP_LIST").map((le,pe)=>{let Se;return Se=a.cloudProxyServer==="disabled"&&a.proxyServer?m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe,a.proxyServer):a.cloudProxyServer==="disabled"||a.cloudProxyServer==="fallback"?"https://".concat(le,"/api/v2/transpond/webrtc?v=2"):m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe),{url:Se,areaCode:r1(),serviceIds:[ps.CHOOSE_SERVER,a.cloudProxyServer==="proxy5"?ps.CLOUD_PROXY_5:a.cloudProxyServer==="proxy3"||a.cloudProxyServer==="proxy4"?ps.CLOUD_PROXY:ps.CLOUD_PROXY_FALLBACK]}}),ce=g.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:q.map(le=>le.url)}),oe=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:q,asyncMapHandler:le=>(X.debug("[".concat(a.clientId,"] Connect to backup choose_server:"),le.url),l7(le,a,A,l)),allFailedhandler:le=>{throw g.recordJoinChannelService({endTs:Date.now(),status:"error",errors:le},ce),le[0]},promisesCollector:w});return g.recordJoinChannelService({endTs:Date.now(),status:"success"},ce),oe},k,V,K;try{({gatewayInfo:k,proxyInfo:V,url:K}=await Bh([b(),M()]))}catch(q){throw q[0]}if(w.length&&w.forEach(q=>q.cancel&&typeof q.cancel=="function"&&q.cancel()),!k||!V)throw new ze(fe.UNEXPECTED_ERROR,"missing gateway or proxy response").print();if(a.apUrl=K,a.cloudProxyServer!=="disabled"&&Array.isArray(C)&&K){let q=/^https?:\/\/(.+?)(\/.*)?$/.exec(K)[1];Rt(C).call(C,q)&&(a.proxyServer=q,X.setProxyServer(q),tr.setProxyServer(q))}return y={gatewayInfo:k,proxyInfo:await CN(V,k.uid)},y}async function l_(a,A,l){let g=Ie("UAP_AP").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(m=>a.proxyServer?"https://".concat(a.proxyServer,"/ap/?url=").concat(m+"/api/v1?action=uap"):"https://".concat(m,"/api/v1?action=uap")),C=g.map(m=>function(y,w,b,M){let k={command:"convergeAllocateEdge",sid:w.sid,appId:w.appId,token:w.token,ts:Date.now(),version:Cn,cname:w.cname,uid:w.uid.toString(),requestId:c_,seq:c_};c_+=1;let V={service_name:"tele_channel",json_body:JSON.stringify(k)};return jl(async()=>{let K=await iA(y,{data:V,cancelToken:b,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":61}});if(K.code!==0){let ce=new ze(fe.UNEXPECTED_RESPONSE,"cross channel ap error, code"+K.code,{retry:!0});throw X.error(ce.toString()),ce}let q=JSON.parse(K.json_body);if(q.code!==200){let ce=new ze(fe.UNEXPECTED_RESPONSE,"cross channel app center error, code: ".concat(q.code,", reason: ").concat(q.reason));throw X.error(ce.toString()),ce}if(!q.servers||q.servers.length===0){let ce=new ze(fe.UNEXPECTED_RESPONSE,"cross channel app center empty server");throw X.error(ce.toString()),ce}return{vid:q.vid,workerToken:q.workerToken,addressList:(Ie("CHANNEL_MEDIA_RELAY_SERVERS")||q.servers).map(ce=>"wss://".concat(ce.address.replace(/\./g,"-"),".").concat(Ie("WORKER_DOMAIN"),":").concat(ce.wss))}},void 0,K=>!!(K.code!==fe.OPERATION_ABORTED&&K.code!==fe.UNEXPECTED_RESPONSE||K.data&&K.data.retry),M)}(m,a,A,l));try{let m=await Bh(C);return C.forEach(y=>y.cancel()),m}catch(m){throw m[0]}}async function d_(a,A,l){let g=null,C=[],m=async y=>{let w=Ie(y?"WEBCS_DOMAIN_BACKUP_LIST":"WEBCS_DOMAIN").map(b=>a.proxyServer?"https://".concat(a.proxyServer,"/ap/?url=").concat(b+"/api/v2/transpond/webrtc?v=2"):"https://".concat(b,"/api/v2/transpond/webrtc?v=2"));return y&&(await Ks(1e3),g!==null)?g:await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:w,asyncMapHandler:b=>(X.debug("[".concat(a.clientId,"] update ticket, Connect to ").concat(y?"backup":""," choose_server:"),b),function(M,k,V,K){let[q]=u7(k,[ps.CHOOSE_SERVER]),ce=Xi.networkState;return jl(async()=>{ce&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(K&&K.maxRetryTimeout||os.maxRetryTimeout)]),ce=Xi.networkState;let oe=await iA(M,{data:q,cancelToken:V,headers:{"Content-Type":"multipart/form-data;"}},!0);return WJ(oe,M)},()=>!1,oe=>oe.code!==fe.OPERATION_ABORTED&&(oe.code===fe.UPDATE_TICKET_FAILED?oe.data.retry:(X.warning("[".concat(k.clientId,"] update ticket network error, retry"),oe),!0)),K)}(b,a,A,l)),allFailedhandler:b=>{throw b[0]},promisesCollector:C})};try{return g=await Bh([m(!1),m(!0)]),C.length&&C.forEach(y=>y.cancel&&typeof y.cancel=="function"&&y.cancel()),g}catch(y){throw y[0]}}function Yy(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function qC(a){for(var A=1;A{this.updateConfigDistribute()},Ie("CONFIG_DISTRIBUTE_INTERVAL")))}stopGetConfigDistribute(){this.interval&&clearInterval(this.interval),this.interval=void 0,this.joinInfo=void 0,this.cancelToken=void 0,this.configs=void 0,this.limit_bitrate=void 0}async awaitConfigDistributeComplete(){this.mutex.isLocked&&(await this.mutex.lock())()}async updateConfigDistribute(){if(this.mutableParamsRead||(this.mutableParamsRead=!0,tr.reportApiInvoke(null,{options:void 0,name:Co.LOAD_CONFIG_FROM_LOCALSTORAGE,tag:Gn.TRACER}).onSuccess(JSON.stringify(Vr))),!this.joinInfo||!this.cancelToken||!this.retryConfig)return void X.debug("[config-distribute] get config distribute interrupted have no joininfo");let A,l=await this.mutex.lock();try{A=await JC(this.joinInfo,this.cancelToken,this.retryConfig),X.debug("[config-distribute] get config distribute",JSON.stringify(A));let g=function(C){var m;let y=LE(m=Object.keys(C).filter(M=>/^webrtc_ng_global_parameter/.test(M))).call(m);for(let M=0;MM;k--){let V=y[k],K=C[V].value;if(typeof K.__priority=="number"){let q=K.__priority,ce=y[k-1],oe=C[ce].value;if(typeof oe.__priority=="number"){if(!(q>oe.__priority))continue;{let le=V;y[k]=y[k-1],y[k-1]=le}}else{let le=V;y[k]=y[k-1],y[k-1]=le}}}let w=Date.now(),b={};return y.forEach(M=>{let k=C[M].value.__expires;k&&k<=w||(b[M]=C[M])}),b}(A);this.cacheGlobalParameterConfig(g),this.store.hasStartJoinChannel||(this.store.isABTestSuccess=!0),this.configs=g}catch(g){let C=new ze(fe.NETWORK_RESPONSE_ERROR,g);X.warning("[config-distribute] ".concat(C.toString()))}finally{l()}}getBitrateLimit(){return this.limit_bitrate||void 0}handleBitrateLimit(A){by(A)&&(this.limit_bitrate?this.limit_bitrate&&this.limit_bitrate.id!==A.id&&this.emit(Il.UPDATE_BITRATE_LIMIT,A):this.emit(Il.UPDATE_BITRATE_LIMIT,A))}getLowStreamConfigDistribute(){return this.limit_bitrate&&qC({},this.limit_bitrate.low_stream_uplink)}handleABTestConfigDistribute(A){try{let l={},g=Object.keys(A),C=[];g.forEach(m=>{let y=A[m].value;l[m]=y;let w=y.__id;if(w&&this.configCache[m]&&this.configCache[m].__id===w)return;let b=y.__type,M=A[m].value,k=A[m].tag,V=0;b?b===PR.REALTIME&&(V=1):Object.keys(M).some(K=>Object.prototype.hasOwnProperty.call(mi,K)||!cN()&&Object.prototype.hasOwnProperty.call(vn,K)?(V=1,!0):void 0),C.push({tag:k,isApplied:V,feature:m,params:JSON.stringify(y)})}),C.forEach(m=>{let{tag:y,feature:w,params:b,isApplied:M}=m;this.store.sessionId&&tr.abTest(this.store.sessionId,{intSucc:1,isApplied:M,tag:y,feature:w,params:b,cid:this.store.cid,uid:this.store.intUid})}),this.configCache=l}catch(l){X.debug("handleABTestConfigDistribute error",l)}}cacheGlobalParameterConfig(A){let l=function(C){let m={};return Object.keys(C).forEach(y=>{let w=C[y].value,b=w.__expires,M=w.__type;Object.keys(w).forEach(k=>{k==="__id"||k==="__type"||k==="__priority"||k==="__expires"||Object.prototype.hasOwnProperty.call(m,k)||(m[k]=qC(qC({value:w[k]},b&&{expires:b}),M&&{type:M}))})}),m}(A);try{var g;let C=(g=l.LIMIT_BITRATE)===null||g===void 0?void 0:g.value;delete l.LIMIT_BITRATE,C&&by(C)&&this.handleBitrateLimit(C),this.limit_bitrate=C,this.handleGlobalParameterConfig(l),this.handleABTestConfigDistribute(A),function(w){try{let b=Date.now();Object.keys(w).forEach(M=>{let{value:k,type:V,expires:K}=w[M];K&&K<=b||((V===PR.REALTIME||Object.prototype.hasOwnProperty.call(mi,M))&&(Vr[M]=k,zi[M]=k,X.debug("Update realtime parameters from config distribute",M,k)),V||cN()||!Object.prototype.hasOwnProperty.call(vn,M)||(Vr[M]=k,zi[M]=k,X.debug("Update gateway parameters from config distribute",M,k)))})}catch(b){X.error("Error update config immediately: ".concat(w),b.message)}}(l);let m=JSON.stringify(l),y=window.btoa(m);window.localStorage.setItem("websdk_ng_global_parameter",y),X.debug("Caching global parameters ".concat(m))}catch(C){X.error("Error caching global parameters:",C.message)}}handleGlobalParameterConfig(A){try{let l=Date.now();Object.keys(A).forEach(g=>{switch(g){case"CLIENT_ROLE_OPTIONS":if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:m,expires:y}=A[g];if(y&&y<=l)return;vf(zi[g],m)||(Vr[g]=m,zi[g]=m,this.emit(Il.UPDATE_CLIENT_ROLE_OPTIONS,m),X.debug("Updating client role options: ".concat(JSON.stringify(m))))}break;case"REMOTE_VIDEO_STREAM_TYPE":if(Object.prototype.hasOwnProperty.call(zi,g)){var C;let{value:m,expires:y}=A[g];if(y&&y<=l)return;typeof m=="number"&&Rt(C=[0,1,4,5,6,7,8,9]).call(C,m)&&(Vr[g]={value:m},zi[g]=m,this.emit(Il.UPDATE_REMOTE_VIDEO_STREAM_TYPE,m),X.debug("Updating client remote stream type: ".concat(JSON.stringify(m))))}break;case"ENABLE_FORCE_HLS":if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:m,expires:y}=A[g];if(y&&y<=l)return;vf(zi[g],m)||(Vr[g]=m,zi[g]=m,this.emit(Il.FALLBACK_TO_HLS,m),X.debug("Updating enable force hls: ".concat(JSON.stringify(m))))}break;case"VOS_CONFIGURE":if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:m,expires:y}=A[g];if(y&&y<=l)return;vf(zi[g],m)||(Vr[g]=m,zi[g]=m,this.emit(Il.UPDATE_VOS_CONFIGURE,m),X.debug("Updating vos configure: ".concat(JSON.stringify(m))))}}})}catch(l){X.error("Error handling global parameter config:",l.message)}}}class E7 extends io{constructor(){super(...arguments),Ae(this,"resultStorage",new Map)}setLocalAudioStats(A,l,g){this.record("AUDIO_INPUT_LEVEL_TOO_LOW",A,this.checkAudioInputLevel(g,l)),this.record("SEND_AUDIO_BITRATE_TOO_LOW",A,this.checkSendAudioBitrate(g,l))}setLocalVideoStats(A,l,g){this.record("SEND_VIDEO_BITRATE_TOO_LOW",A,this.checkSendVideoBitrate(g,l)),this.record("FRAMERATE_INPUT_TOO_LOW",A,this.checkFramerateInput(g,l)),this.record("FRAMERATE_SENT_TOO_LOW",A,this.checkFramerateSent(g)),!l.muted&&this.record("VIDEO_ENCODE_FAILED",A,this.checResolutionSent(g))}setRemoteAudioStats(A,l){let g=A.getUserId();this.record("AUDIO_OUTPUT_LEVEL_TOO_LOW",g,this.checkAudioOutputLevel(l))}setRemoteVideoStats(A,l){let g=A.getUserId();this.record("RECV_VIDEO_DECODE_FAILED",g,this.checkVideoDecode(l))}record(A,l,g){if(Ie("STATS_UPDATE_INTERVAL")>500)return;this.resultStorage.has(A)||this.resultStorage.set(A,{result:[],isPrevNormal:!0});let C=this.resultStorage.get(A);if(!C)return;C.result.push(g);let m=A==="VIDEO_ENCODE_FAILED"?Ie("ENCODE_EXCEPTION_TIMES"):5;if(C.result.length>=m){var y;let w=Rt(y=C.result).call(y,!0);C.isPrevNormal&&!w&&this.emit("exception",Yd[A],A,l),!C.isPrevNormal&&w&&this.emit("exception",Yd[A]+2e3,A+"_RECOVER",l),C.isPrevNormal=w,C.result=[]}}checkAudioOutputLevel(A){return!(A.receiveBitrate>0&&A.receiveLevel===0)}checkAudioInputLevel(A,l){return l instanceof Os&&!l.isActive||!!l.muted||A.sendVolumeLevel!==0}checkFramerateInput(A,l){let g=null;l._encoderConfig&&l._encoderConfig.frameRate&&(g=ZA(l._encoderConfig.frameRate));let C=A.captureFrameRate;return!g||!C||!(g>10&&C<5||g<10&&g>=5&&C<=1)}checkFramerateSent(A){return!(A.captureFrameRate&&A.sendFrameRate&&A.captureFrameRate>5&&A.sendFrameRate<=1)}checResolutionSent(A){var l;return!(!A.codecType||Rt(l=Ie("ENCODE_EXCEPTION_VALIDATE_CODEC")).call(l,A.codecType.toLocaleLowerCase()))||!A.captureFrameRate||A.sendFrameRate!==0||A.sendResolutionWidth!==0||A.sendResolutionHeight!==0}checkSendVideoBitrate(A,l){return!!l.muted||A.sendBitrate!==0}checkSendAudioBitrate(A,l){return l instanceof Os&&!l.isActive||!!l.muted||A.sendBitrate!==0}checkVideoDecode(A){return A.receiveBitrate===0||A.decodeFrameRate!==0}}let Yd={FRAMERATE_INPUT_TOO_LOW:1001,FRAMERATE_SENT_TOO_LOW:1002,SEND_VIDEO_BITRATE_TOO_LOW:1003,RECV_VIDEO_DECODE_FAILED:1005,AUDIO_INPUT_LEVEL_TOO_LOW:2001,AUDIO_OUTPUT_LEVEL_TOO_LOW:2002,SEND_AUDIO_BITRATE_TOO_LOW:2003,VIDEO_ENCODE_FAILED:2004},aa=new class{markSubscribeStart(a,A){performance.mark("agora-web-sdk/".concat(a,"/subscribe-").concat(A))}markPublishStart(a,A){performance.mark("agora-web-sdk/".concat(a,"/publish-").concat(A))}measureFromSubscribeStart(a,A){let l=performance.getEntriesByName("agora-web-sdk/".concat(a,"/subscribe-").concat(A));if(l.length>0){let g=l[l.length-1];return Math.round(performance.now()-g.startTime)}return 0}measureFromPublishStart(a,A){let l=performance.getEntriesByName("agora-web-sdk/".concat(a,"/publish-").concat(A));if(l.length>0){let g=l[l.length-1];return Math.round(performance.now()-g.startTime)}return 0}};function WC(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function jd(a){for(var A=1;A{this.p2pChannel&&(this.updateRemoteStats(this.p2pChannel),this.updateLocalStats(this.p2pChannel))}),this.store=A,this.exceptionMonitor=new E7,this.exceptionMonitor.on("exception",(l,g,C)=>{this.onStatsException&&this.onStatsException(l,g,C)})}startUpdateStats(){this.updateStatsInterval||(this.updateStatsInterval=window.setInterval(this.updateStats,1e3))}stopUpdateStats(){this.updateStatsInterval&&(window.clearInterval(this.updateStatsInterval),this.updateStatsInterval=void 0)}reset(){this.localStats=new Map,this.remoteStats=new Map,this.trafficStats=void 0,this.trafficStatsPeerList=[],this.uplinkStats=void 0}getLocalAudioTrackStats(){return this.localStats.get(St.LocalAudioTrack)||jd({},YR)}getLocalVideoTrackStats(){return this.localStats.get(St.LocalVideoTrack)||jd({},I2)}getRemoteAudioTrackStats(A){let l=(m,y)=>{if(!this.trafficStats)return y;let w=this.trafficStats.peer_delay.find(b=>b.peer_uid===m);return w&&(y.publishDuration=w.B_ppad+(Date.now()-this.trafficStats.timestamp)),y},g={};if(A){var C;let m=(C=this.remoteStats.get(A))===null||C===void 0?void 0:C.audioStats;m&&(g[A]=l(A,m))}else Array.from(this.remoteStats.entries()).forEach(m=>{let[y,{audioStats:w}]=m;w&&(g[y]=l(y,w))});return g}getRemoteNetworkQualityStats(A){let l={};if(A){var g;let C=(g=this.remoteStats.get(A))===null||g===void 0?void 0:g.networkStats;C&&(l[A]=C)}else Array.from(this.remoteStats.entries()).forEach(C=>{let[m,{networkStats:y}]=C;y&&(l[m]=y)});return l}getNetworkQuality(){let A=0,l=0;return this.trafficStats&&(A=Uy(this.trafficStats.B_unq),l=Uy(this.trafficStats.B_dnq)),{uplinkNetworkQuality:A,downlinkNetworkQuality:l}}getRemoteVideoTrackStats(A){let l=(m,y)=>{if(!this.trafficStats)return y;let w=this.trafficStats.peer_delay.find(b=>b.peer_uid===m);return w&&(y.publishDuration=w.B_ppvd+(Date.now()-this.trafficStats.timestamp)),y},g={};if(A){var C;let m=(C=this.remoteStats.get(A))===null||C===void 0?void 0:C.videoStats;m&&(g[A]=l(A,m))}else Array.from(this.remoteStats.entries()).forEach(m=>{let[y,{videoStats:w}]=m;w&&(g[y]=l(y,w))});return g}getRTCStats(){let A=0,l=0,g=0,C=0,m=this.localStats.get(St.LocalAudioTrack);m&&(A+=m.sendBytes,l+=m.sendBitrate);let y=this.localStats.get(St.LocalVideoTrack);y&&(A+=y.sendBytes,l+=y.sendBitrate);let w=this.localStats.get(St.LocalVideoLowTrack);w&&(A+=w.sendBytes,l+=w.sendBitrate),this.remoteStats.forEach(M=>{let{audioStats:k,videoStats:V}=M;k&&(g+=k.receiveBytes,C+=k.receiveBitrate),V&&(g+=V.receiveBytes,C+=V.receiveBitrate)});let b=1;return this.trafficStats&&(b+=this.trafficStats.peer_delay.length),{Duration:0,UserCount:b,SendBitrate:l,SendBytes:A,RecvBytes:g,RecvBitrate:C,OutgoingAvailableBandwidth:this.uplinkStats?this.uplinkStats.B_uab/1e3:0,RTT:this.trafficStats?2*this.trafficStats.B_acd:0}}addLocalStats(A){this.localStats.set(A,void 0)}removeLocalStats(A){A?this.localStats.delete(A):this.localStats.clear()}addRemoteStats(A){this.remoteStats.set(A,{})}removeRemoteStats(A){A?this.remoteStats.delete(A):this.remoteStats.clear()}addP2PChannel(A){this.p2pChannel=A}updateTrafficStats(A){A.peer_delay=A.peer_delay.filter(l=>l.B_ppad!==void 0||l.B_ppvd!==void 0),A.peer_delay.filter(l=>this.trafficStatsPeerList.indexOf(l.peer_uid)===-1).forEach(l=>{var g;let C=(g=this.p2pChannel)===null||g===void 0?void 0:g.getRemoteMedia(l.peer_uid),m=C!=null&&C.videoSSRC?aa.measureFromSubscribeStart(this.store.clientId,C.videoSSRC):0,y=C!=null&&C.audioSSRC?aa.measureFromSubscribeStart(this.store.clientId,C.audioSSRC):0;l.B_ppad!==void 0&&l.B_ppvd!==void 0&&(this.onUploadPublishDuration&&this.onUploadPublishDuration(l.peer_uid,l.B_ppad,l.B_ppvd,m>y?m:y),this.trafficStatsPeerList.push(l.peer_uid))}),this.trafficStats=A}updateUplinkStats(A){this.uplinkStats&&this.uplinkStats.B_fir!==A.B_fir&&X.debug("[".concat(this.store.clientId,"]: Period fir changes to ").concat(A.B_fir)),this.uplinkStats=A}static isRemoteVideoFreeze(A,l,g){if(!A)return!1;let C=!!g&&l.framesDecodeFreezeTime>g.framesDecodeFreezeTime,m=!g||l.framesDecodeCount>g.framesDecodeCount;return C||!m}static isRemoteAudioFreeze(A){return!!A&&A._isFreeze()}isLocalVideoFreeze(A){return!(!A.inputFrame||!A.sentFrame)&&A.inputFrame.frameRate>5&&A.sentFrame.frameRate<3}updateLocalStats(A){Array.from(this.localStats.entries()).forEach(l=>{let[g,C]=l;switch(g){case St.LocalVideoTrack:case St.LocalVideoLowTrack:{let w=C,b=jd({},I2),M=A.getStats(),k=A.getLocalMedia(g);if(M){let V=M.videoSend.find(K=>K.ssrc===(k==null?void 0:k.ssrcs[0].ssrcId));if(V){let K=A.getLocalVideoSize(),q=A.getEncoderConfig(St.LocalVideoTrack);var m;(V.codec==="H264"||V.codec==="H265"||V.codec==="VP8"||V.codec==="VP9"||V.codec==="AV1X"||V.codec==="AV1")&&(b.codecType=V.codec,(w==null?void 0:w.codecType)!==V.codec&&((m=this.onVideoCodecChanged)===null||m===void 0||m.call(this,V.codec.toLocaleLowerCase()))),b.sendBytes=V.bytes,b.sendBitrate=w?8*Math.max(0,b.sendBytes-w.sendBytes):0,V.inputFrame?(b.captureFrameRate=V.inputFrame.frameRate,b.captureResolutionHeight=V.inputFrame.height,b.captureResolutionWidth=V.inputFrame.width):K&&(b.captureResolutionWidth=K.width,b.captureResolutionHeight=K.height),V.sentFrame?(b.sendFrameRate=V.sentFrame.frameRate,b.sendResolutionHeight=V.sentFrame.height,b.sendResolutionWidth=V.sentFrame.width):K&&(b.sendResolutionWidth=K.width,b.sendResolutionHeight=K.height),V.avgEncodeMs&&(b.encodeDelay=V.avgEncodeMs),q&&q.bitrateMax?b.targetSendBitrate=1e3*q.bitrateMax:V.targetBitrate&&(b.targetSendBitrate=V.targetBitrate),b.sendPackets=V.packets,b.sendPacketsLost=V.packetsLost,b.sendJitterMs=V.jitterMs,b.sendRttMs=V.rttMs,b.totalDuration=w?w.totalDuration+1:1,b.totalFreezeTime=w?w.totalFreezeTime:0,this.isLocalVideoFreeze(V)&&(b.totalFreezeTime+=1),V.scalabilityMode&&this.scalabilityMode!==V.scalabilityMode&&(X.debug("[".concat(this.store.clientId,"]: The scalabilityMode of the video sending stream is ").concat(V.scalabilityMode)),this.scalabilityMode=V.scalabilityMode)}this.trafficStats&&(b.currentPacketLossRate=(this.trafficStats.B_pvlr4||0)/100)}var y;this.localStats.set(g,b),((w==null?void 0:w.sendResolutionWidth)!==b.sendResolutionWidth||(w==null?void 0:w.sendResolutionHeight)!==b.sendResolutionHeight)&&((y=this.onStatsChanged)===null||y===void 0||y.call(this,"resolution",{width:b.sendResolutionWidth,height:b.sendResolutionHeight})),b&&k&&this.exceptionMonitor.setLocalVideoStats(this.store.uid,k.track,b);break}case St.LocalAudioTrack:{let w=C,b=jd({},YR),M=A.getStats(),k=A.getLocalMedia(g);if(M){let V=M.audioSend.find(K=>K.ssrc===(k==null?void 0:k.ssrcs[0].ssrcId));if(V){if(V.codec!=="opus"&&V.codec!=="aac"&&V.codec!=="PCMU"&&V.codec!=="PCMA"&&V.codec!=="G722"||(b.codecType=V.codec),V.inputLevel)b.sendVolumeLevel=Math.round(32767*V.inputLevel);else{let K=A.getLocalAudioVolume();K&&(b.sendVolumeLevel=Math.round(32767*K))}b.sendBytes=V.bytes,b.sendPackets=V.packets,b.sendPacketsLost=V.packetsLost,b.sendJitterMs=V.jitterMs,b.sendRttMs=V.rttMs,b.sendBitrate=w?8*Math.max(0,b.sendBytes-w.sendBytes):0}}this.trafficStats&&(b.currentPacketLossRate=(this.trafficStats.B_palr4||0)/100),this.localStats.set(St.LocalAudioTrack,b),b&&k&&this.exceptionMonitor.setLocalAudioStats(this.store.uid,k.track,b);break}}})}updateRemoteStats(A){Array.from(this.remoteStats.entries()).forEach(l=>{var g,C;let[m,{videoStats:y,audioStats:w,videoPcStats:b}]=l,M=w,k=y,V=b,K=jd({},W1),q=jd({},Ah),ce=jd({},d4),{audioTrack:oe,videoTrack:le,audioSSRC:pe,videoSSRC:Se}=A.getRemoteMedia(m),be;be=this.store.useP2P?A.getStats(!0):A.getStats();let Ue=(g=be)===null||g===void 0?void 0:g.audioRecv.find(dt=>dt.ssrc===pe),xe=(C=be)===null||C===void 0?void 0:C.videoRecv.find(dt=>dt.ssrc===Se),Le=this.trafficStats&&this.trafficStats.peer_delay.find(dt=>dt.peer_uid===m);if(Ue&&(Ue.codec!=="opus"&&Ue.codec!=="aac"&&Ue.codec!=="PCMU"&&Ue.codec!=="PCMA"&&Ue.codec!=="G722"||(K.codecType=Ue.codec),Ue.outputLevel?K.receiveLevel=Math.round(32767*Ue.outputLevel):oe&&(K.receiveLevel=Math.round(32767*oe.getVolumeLevel())),K.receiveBytes=Ue.bytes,K.receivePackets=Ue.packets,K.receivePacketsLost=Ue.packetsLost,K.receivePacketsDiscarded=Ue.packetsDiscarded,K.packetLossRate=K.receivePacketsLost/(K.receivePackets+K.receivePacketsLost),K.receiveBitrate=M?8*Math.max(0,K.receiveBytes-M.receiveBytes):0,K.totalDuration=M?M.totalDuration+1:1,K.totalFreezeTime=M?M.totalFreezeTime:0,K.freezeRate=K.totalFreezeTime/K.totalDuration,K.receiveDelay=Ue.jitterBufferMs,K.totalDuration>10&&F2.isRemoteAudioFreeze(oe)&&(K.totalFreezeTime+=1)),xe){var je;xe.codec!=="H264"&&xe.codec!=="H265"&&xe.codec!=="VP8"&&xe.codec!=="VP9"&&xe.codec!=="AV1X"&&xe.codec!=="AV1"||(q.codecType=xe.codec),q.receiveBytes=xe.bytes,q.receiveBitrate=k?8*Math.max(0,q.receiveBytes-k.receiveBytes):0,q.decodeFrameRate=xe.decodeFrameRate<0?0:xe.decodeFrameRate,q.renderFrameRate=xe.decodeFrameRate<0?0:xe.decodeFrameRate,xe.outputFrame&&(q.renderFrameRate=xe.outputFrame.frameRate),xe.receivedFrame?(q.receiveFrameRate=xe.receivedFrame.frameRate,q.receiveResolutionHeight=xe.receivedFrame.height,q.receiveResolutionWidth=xe.receivedFrame.width):le&&(q.receiveResolutionHeight=le._videoHeight||0,q.receiveResolutionWidth=le._videoWidth||0),xe.framesRateFirefox!==void 0&&(q.receiveFrameRate=Math.round(xe.framesRateFirefox)),q.receivePackets=xe.packets,q.receivePacketsLost=xe.packetsLost,q.packetLossRate=q.receivePacketsLost/(q.receivePackets+q.receivePacketsLost);let dt=k?k.totalFreezeTime:0,pt=k?k.totalDuration:0;q.totalDuration=k?k.totalDuration+1:1,q.totalFreezeTime=(je=xe.totalFreezesDuration)!==null&&je!==void 0?je:dt||0,q.receiveDelay=xe.jitterBufferMs||0;let zt=!!Se&&A.getRemoteVideoIsReady(Se);xe.totalFreezesDuration===void 0&&le&&zt&&F2.isRemoteVideoFreeze(le,xe,V)&&(q.totalFreezeTime+=1),q.freezeRate=Math.max(0,Math.min((q.totalFreezeTime-dt)/(q.totalDuration-pt),1))}Le&&(K.end2EndDelay=Le.B_ad,q.end2EndDelay=Le.B_vd,K.transportDelay=Le.B_ed,q.transportDelay=Le.B_ed,K.currentPacketLossRate=Le.B_ealr4/100,q.currentPacketLossRate=Le.B_evlr4/100,ce.uplinkNetworkQuality=Le.B_punq?Le.B_punq:0,ce.downlinkNetworkQuality=Le.B_pdnq?Le.B_pdnq:0),this.remoteStats.set(m,{audioStats:K,videoStats:q,videoPcStats:xe,networkStats:ce}),oe&&this.exceptionMonitor.setRemoteAudioStats(oe,K),le&&this.exceptionMonitor.setRemoteVideoStats(le,q)})}}class u_{constructor(){Ae(this,"destChannelMediaInfos",new Map),Ae(this,"srcChannelMediaInfo",void 0)}setSrcChannelInfo(A){gN(A),this.srcChannelMediaInfo=A}addDestChannelInfo(A){gN(A),this.destChannelMediaInfos.set(A.channelName,A)}removeDestChannelInfo(A){t_(A),this.destChannelMediaInfos.delete(A)}getSrcChannelMediaInfo(){return this.srcChannelMediaInfo}getDestChannelMediaInfo(){return this.destChannelMediaInfos}}function jy(a){if(!(a instanceof u_))return new ze(fe.INVALID_PARAMS,"Config should be instance of [ChannelMediaRelayConfiguration]").throw();let A=a.getSrcChannelMediaInfo(),l=a.getDestChannelMediaInfo();if(!A)return new ze(fe.INVALID_PARAMS,"srcChannelMediaInfo should not be empty").throw();if(l.size===0)return new ze(fe.INVALID_PARAMS,"destChannelMediaInfo should not be empty").throw()}class xg{get hasVideo(){return this._video_enabled_&&!this._video_muted_&&this._video_added_}get hasAudio(){return this._audio_enabled_&&!this._audio_muted_&&this._audio_added_}get audioTrack(){if(this.hasAudio||this._audio_pre_subscribed)return this._audioTrack}get videoTrack(){if(this.hasVideo||this._video_pre_subscribed)return this._videoTrack}get dataChannels(){return this._dataChannels}constructor(A,l){Ae(this,"uid",void 0),Ae(this,"_uintid",void 0),Ae(this,"_trust_in_room_",!0),Ae(this,"_trust_audio_enabled_state_",!0),Ae(this,"_trust_video_enabled_state_",!0),Ae(this,"_trust_audio_mute_state_",!0),Ae(this,"_trust_video_mute_state_",!0),Ae(this,"_audio_muted_",!1),Ae(this,"_video_muted_",!1),Ae(this,"_audio_enabled_",!0),Ae(this,"_video_enabled_",!0),Ae(this,"_audio_added_",!1),Ae(this,"_video_added_",!1),Ae(this,"_is_pre_created",!1),Ae(this,"_video_pre_subscribed",!1),Ae(this,"_audio_pre_subscribed",!1),Ae(this,"_trust_video_stream_added_state_",!0),Ae(this,"_trust_audio_stream_added_state_",!0),Ae(this,"_audioTrack",void 0),Ae(this,"_videoTrack",void 0),Ae(this,"_dataChannels",[]),Ae(this,"_audioSSRC",void 0),Ae(this,"_videoSSRC",void 0),Ae(this,"_audioOrtc",void 0),Ae(this,"_videoOrtc",void 0),Ae(this,"_cname",void 0),Ae(this,"_rtxSsrcId",void 0),Ae(this,"_videoMid",void 0),Ae(this,"_audioMid",void 0),this.uid=A,this._uintid=l}}function wN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Jy(a){for(var A=1;A`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 2 +a=msid-semantic: WMS +a=ice-lite`.concat(a?` +a=extmap-allow-mixed`:"",` +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +m=application 9 UDP/DTLS/SCTP webrtc-datachannel +c=IN IP4 127.0.0.1 +a=mid:2 +`),g_="9",G2=2e4,i1=4e4,Jd=class{get localCapabilities(){return no(this._localCapabilities)}get rtpCapabilities(){return no(this._rtpCapabilities)}get candidates(){return no(this._candidates)}get iceParameters(){return no(this._iceParameters)}get dtlsParameters(){return no(this._dtlsParameters)}constructor(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=arguments.length>2&&arguments[2]!==void 0&&arguments[2],g=arguments.length>3&&arguments[3]!==void 0&&arguments[3];Ae(this,"sessionDesc",void 0),Ae(this,"_localCapabilities",void 0),Ae(this,"_rtpCapabilities",void 0),Ae(this,"_candidates",void 0),Ae(this,"_originCandidates",void 0),Ae(this,"_iceParameters",void 0),Ae(this,"_isUseExtmapAllowMixed",void 0),Ae(this,"_isUseLocalCodecs",void 0),Ae(this,"_isUseDataChannel",void 0),Ae(this,"_dtlsParameters",void 0),Ae(this,"setup",void 0),Ae(this,"currentMidIndex",void 0),Ae(this,"cname",void 0),Ae(this,"useLocalCodecsMids",[]),Ae(this,"preloadSsrcs",[]),Ae(this,"firefoxSsrcMidMap",new Map),this._isUseExtmapAllowMixed=A,this._isUseLocalCodecs=l,this._isUseDataChannel=g,a=no(a);let{iceParameters:C,dtlsParameters:m,candidates:y,rtpCapabilities:w,setup:b,localCapabilities:M,cname:k}=a;this._rtpCapabilities=w,this._candidates=y,this._originCandidates=no(y),this._iceParameters=C,this._dtlsParameters=m,this._localCapabilities=M,this.setup=b,this.cname=k,[this.sessionDesc]=this.updateRemoteRTPCapabilities(w),this.currentMidIndex=this.sessionDesc.mediaDescriptions.length-1}checkPreloadSsrcs(a){return a.length===this.preloadSsrcs.length&&a.every(A=>{var l;return Rt(l=this.preloadSsrcs).call(l,A)})}preloadRemoteMedia(a){let A=0,l=[],g=[];for(;a>0;){let C=[Jy({ssrcId:i1+A},Ie("USE_SUB_RTX")?{rtx:i1+A+1}:{})],m="".concat(i1+A,"_").concat(G2+A),{ssrcs:y,ssrcGroups:w}=U2(C,this.cname,Ie("SYNC_GROUP")?m:void 0),b=this.preCreateOrRecycleSendMedia("video",y,w,void 0),M=[{ssrcId:G2+A}],k="".concat(i1+A,"_").concat(G2+A),{ssrcs:V,ssrcGroups:K}=U2(M,this.cname,Ie("SYNC_GROUP")?k:void 0),q=this.preCreateOrRecycleSendMedia("audio",V,K,void 0);a--,A+=2,l.push(b,q),g.push(y[0].ssrcId,V[0].ssrcId)}return this.useLocalCodecsMids.push(...l),this.preloadSsrcs=g,{mids:l,preSSRCs:g,isAvailable:!0}}preCreateOrRecycleSendMedia(a,A,l,g){let C=this.rtpCapabilities.send.videoCodecs,m=this._isUseLocalCodecs||C.length===0?this.localCapabilities.recv:this.rtpCapabilities.send;X.debug("create or recycle send media without remote rtp capabilities, ssrcs ",A[0].ssrcId);let y=a===$t.VIDEO?m.videoCodecs:m.audioCodecs,w=a===$t.VIDEO?m.videoExtensions:m.audioExtensions;this.currentMidIndex+=1;let b="".concat(this.currentMidIndex),M={media:{mediaType:a,port:g_,protos:["UDP","TLS","RTP","SAVPF"],fmts:y.map(k=>k.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:w,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:l,rtcpFeedbackWildcards:[],payloads:y,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(b)}};return M=this.mungSendMediaDesc(M,g),this.sessionDesc.mediaDescriptions.push(M),this.updateBundleMids(),b}toString(){return ea(this.sessionDesc)}send(a,A,l,g){let{ssrcs:C,ssrcGroups:m}=U2(A,this.cname,Ie("SYNC_GROUP")?l:void 0),y=this.findPreloadMediaDesc(C);if(y){if(uo()&&this.firefoxSsrcMidMap.set(C[0].ssrcId,y.attributes.mid),g&&(g.twcc||g.remb)){let w=this.sessionDesc.mediaDescriptions.indexOf(y);return this.sessionDesc.mediaDescriptions[w]=this.mungSendMediaDesc(y,g),{mid:y.attributes.mid,needExchangeSDP:!0}}return{mid:y.attributes.mid,needExchangeSDP:!1}}{let w=this.findAvailableMediaIndex(a,C),b;return w===-1||w===1&&($s()||function(){let M=Wi();return!(M.name!==nn.CHROME||!M.osVersion)&&Number(M.version)<=90}()||Nd(143)||ol(143)||Ie("RESERVE_MID_1_MLINE")||Ie("ENABLE_ENCODED_TRANSFORM")&&Tg())||w===0&&!function(M){let k=Wi();return!(k.name!==nn.FIREFOX||!k.osVersion)&&Number(k.version)===M}(138)&&Ie("USE_SUB_RTX")||Bf()?(b=this.createOrRecycleSendMedia(a,C,m,"sendonly",g),this.updateBundleMids()):(b=no(this.sessionDesc.mediaDescriptions[w]),b.attributes.direction="sendonly",b.attributes.ssrcs=C,b.attributes.ssrcGroups=m,this.sessionDesc.mediaDescriptions[w]=this.mungSendMediaDesc(b,g)),uo()&&this.firefoxSsrcMidMap.set(C[0].ssrcId,b.attributes.mid),{mid:b.attributes.mid,needExchangeSDP:!0}}}sendDataChannel(){let{mediaDesc:a,needExchangeSDP:A}=this.createOrRecycleDataChannel();return this.updateBundleMids(),{mid:a.attributes.mid,needExchangeSDP:A}}batchSend(a){let A=a.map(C=>{let{kind:m,ssrcMsg:y,mslabel:w}=C;return this.send(m,y,w)}),l=[],g=!1;return A.forEach(C=>{let{mid:m,needExchangeSDP:y}=C;y&&(g=!0),l.push(m)}),{mids:l,needExchangeSDP:g}}stopSending(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>l.attributes.mid&&a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");A.forEach(l=>{l.attributes.mid==="0"||uo()||Bf()?l.attributes.ssrcs=[]:(l.attributes.ssrcs=[],l.attributes.direction="inactive",l.media.port="0")}),this.updateBundleMids()}mute(a){let A=this.sessionDesc.mediaDescriptions.find(l=>l.attributes.mid===a);if(!A)throw new Error("mediaDescription not found with ".concat(a," in remote SDP when calling RemoteSDP.mute."));A.attributes.direction="inactive"}unmute(a){let A=this.sessionDesc.mediaDescriptions.find(l=>l.attributes.mid===a);if(!A)throw new Error("mediaDescription not found with ".concat(a," in remote SDP when calling RemoteSDP.unmute."));A.attributes.direction="sendonly"}muteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="inactive"})}unmuteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="recvonly"})}receive(a,A,l,g){a.forEach((C,m)=>{this.createOrRecycleRecvMedia(C,[],"recvonly",A,l,g[m])}),this.updateBundleMids()}stopReceiving(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");A.forEach(l=>{l.media.port="0",l.attributes.direction="inactive"}),this.updateBundleMids()}updateRemoteRTPCapabilities(a){let A=this.sessionDesc||ki((l=this._isUseExtmapAllowMixed,this._isUseDataChannel?vN(l):`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 +a=msid-semantic: WMS +a=ice-lite`.concat(l?` +a=extmap-allow-mixed`:"",` +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +`)));var l;this._rtpCapabilities=a;let g=!1,C=this.rtpCapabilities.send,m=this.localCapabilities.send,y=this.localCapabilities.recv,w=y.videoCodecs,b=y.audioCodecs,M=y.videoExtensions,k=y.audioExtensions;for(let ce of A.mediaDescriptions){var V;if(ce.attributes.direction!=="sendonly"||typeof ce.attributes.mid!="string"||!Rt(V=this.useLocalCodecsMids).call(V,ce.attributes.mid)){if(g=!0,ce.attributes.iceUfrag=this._iceParameters.iceUfrag,ce.attributes.icePwd=this._iceParameters.icePwd,ce.attributes.fingerprints=this._dtlsParameters.fingerprints,ce.attributes.candidates=this._candidates,ce.attributes.setup=this.setup,ce.media.mediaType==="application"&&(ce.attributes.sctpPort="5000"),ce.media.mediaType==="video")if(this._isUseLocalCodecs&&ce.attributes.direction==="sendonly"){var K;ce.media.fmts=w.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=w,ce.attributes.extmaps=M;let oe=ce.attributes.mid;typeof oe!="string"||Rt(K=this.useLocalCodecsMids).call(K,oe)||this.useLocalCodecsMids.push(oe)}else if(C.videoCodecs.length===0){let oe=m.videoCodecs.filter(le=>{var pe,Se;return(pe=le.rtpMap)===null||pe===void 0?void 0:Rt(Se=pe.encodingName.toLowerCase()).call(Se,"vp8")});oe.length===0&&oe.push(m.videoCodecs[0]),ce.media.fmts=oe.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=oe,ce.attributes.extmaps=[]}else ce.media.fmts=C.videoCodecs.map(oe=>oe.payloadType.toString(10)),ce.attributes.payloads=C.videoCodecs,ce.attributes.extmaps=C.videoExtensions;if(ce.media.mediaType==="audio")if(this._isUseLocalCodecs&&ce.attributes.direction==="sendonly"){var q;ce.media.fmts=b.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=b,ce.attributes.extmaps=k;let oe=ce.attributes.mid;typeof oe!="string"||Rt(q=this.useLocalCodecsMids).call(q,oe)||this.useLocalCodecsMids.push(oe)}else if(C.audioCodecs.length===0){let oe=m.audioCodecs.filter(le=>{var pe,Se;return(pe=le.rtpMap)===null||pe===void 0?void 0:Rt(Se=pe.encodingName.toLowerCase()).call(Se,"opus")})||[m.audioCodecs[0]];ce.media.fmts=oe.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=oe,ce.attributes.extmaps=[]}else ce.media.fmts=C.audioCodecs.map(oe=>oe.payloadType.toString(10)),ce.attributes.payloads=C.audioCodecs,ce.attributes.extmaps=C.audioExtensions,No(ce)}}return this.sessionDesc=A,this.currentMidIndex=A.mediaDescriptions.length-1,[this.sessionDesc,g]}updateCandidates(a){let A=this._originCandidates.filter(g=>g.transport==="udp"),l=[];if(A.forEach(g=>{l.push(Jy(Jy({},g),{},{foundation:"tcpcandidate",priority:Number(g.priority)-1+"",transport:"tcp",port:Number(g.port)+90+""}))}),A.length!==0){switch(a){case Ls.TCP_RELAY:this._candidates=l;break;case Ls.UDP_TCP_RELAY:case Ls.RELAY:this._candidates=[...A,...l];break;default:this._candidates=A}for(let g of this.sessionDesc.mediaDescriptions)g.attributes.candidates=this.candidates}}restartICE(a){a=no(a),this._iceParameters=a,this.sessionDesc.mediaDescriptions.forEach(A=>{A.attributes.iceUfrag=a.iceUfrag,A.attributes.icePwd=a.icePwd})}predictReceivingMids(a){let A=[];for(let l=0;l{let g=l.media.mediaType===a&&l.media.port!=="0"&&(l.attributes.direction==="sendonly"||l.attributes.direction==="sendrecv")&&l.attributes.ssrcs.length===0;if(uo()){if(g){let C=this.firefoxSsrcMidMap.get(A[0].ssrcId);return!(C||l.attributes.mid!=="0"&&l.attributes.mid!=="1")||!(!C||C!==l.attributes.mid)}return!1}return g})}createOrRecycleDataChannel(){for(let l of this.sessionDesc.mediaDescriptions)if(l.media.mediaType==="application")return{mediaDesc:l,needExchangeSDP:!1};this.currentMidIndex+=1;let a="".concat(this.currentMidIndex),A={media:{mediaType:"application",port:g_,protos:["UDP","DTLS","SCTP"],fmts:["webrtc-datachannel"]},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:[],fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[],rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,mid:"".concat(a),sctpPort:"5000"}};return this.sessionDesc.mediaDescriptions.push(A),{mediaDesc:A,needExchangeSDP:!0}}createOrRecycleRecvMedia(a,A,l,g,C,m){let y=a._mediaStreamTrack.kind,w=this.rtpCapabilities.recv,b=_h(y,w,this.localCapabilities.send,y===$t.VIDEO?g:C),M=y===$t.VIDEO?w.videoExtensions:w.audioExtensions;this.currentMidIndex+=1;let k="".concat(this.currentMidIndex),V={media:{mediaType:y,port:g_,protos:["UDP","TLS","RTP","SAVPF"],fmts:b.map(q=>q.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:M,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:b,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:l,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(k)}};V=this.mungRecvMediaDsec(V,a,m);let K=this.findFirstClosedMedia(y);if(K){let q=this.sessionDesc.mediaDescriptions.indexOf(K);this.sessionDesc.mediaDescriptions[q]=V}else this.sessionDesc.mediaDescriptions.push(V);return V}updateRemoteDtlsParameters(a){let A=new Set(this._dtlsParameters.fingerprints.map(C=>C.fingerprint)),l=new Set(a.map(C=>C.fingerprint)),g=!1;A.size!==l.size&&(g=!0);for(let C of A)l.has(C)||(g=!0);return g}updateRemoteCodec(a,A,l){let g=[...new Set(this._rtpCapabilities.recv.videoCodecs.map(V=>V.rtpMap&&V.rtpMap.encodingName.toLowerCase()||"").filter(V=>{var K;return Rt(K=Object.keys(Ss)).call(K,V)}))],C=new Set(A);if(g.every(V=>C.has(V)))return X.debug("codecs has not changed, no need to updateRemoteCodec, codecs: ".concat(A)),!1;let m=this._rtpCapabilities.recv.videoCodecs.filter(V=>A.some(K=>{var q;return Rt(q=V.rtpMap&&V.rtpMap.encodingName.toLowerCase()||"").call(q,K)}));if(m.length===0)return X.debug("updateRemoteCodec failed, because cannot find matched codec, remoteCapabilities codecs: ".concat(g," codecs: ").concat(A)),!1;let y=[...new Set(m.map(V=>V.rtpMap&&V.rtpMap.encodingName.toLowerCase()||""))],w;if(X.debug("updateRemoteCodec, from ".concat(g," to ").concat(y)),a.length===0)w=this.sessionDesc.mediaDescriptions.filter(V=>V.media.mediaType==="video"&&V.attributes.direction==="recvonly");else if(w=this.sessionDesc.mediaDescriptions.filter(V=>V.attributes.mid&&V.media.mediaType==="video"&&Rt(a).call(a,V.attributes.mid)&&V.attributes.direction==="recvonly"),w.length!==a.length)return X.debug("updateRemoteCodec failed, because cannot find mids, mids: ".concat(a,", codecs: ").concat(A)),!1;if(Ie("USE_PUB_RTX")||Ie("USE_SUB_RTX")){let V=jo(m,this.rtpCapabilities.recv.videoCodecs);m.push(...V)}this._rtpCapabilities.recv.videoCodecs=m;let b=this.localCapabilities.send,M=this.rtpCapabilities.recv,k=_h($t.VIDEO,M,b,l);return w.forEach(V=>{let K=k.map(q=>q.payloadType.toString(10));X.debug("updateRemoteCodec mid: ".concat(V.attributes.mid,", from"),V.attributes.payloads,"to",k),V.attributes.payloads=k,V.media.fmts=K}),X.debug("updateRemoteCodec success, mids: ".concat(a,", codecs: ").concat(A,", remote recv: ").concat(this._rtpCapabilities.recv.videoCodecs.length,", remote send: ").concat(this._rtpCapabilities.send.videoCodecs.length)),!0}createOrRecycleSendMedia(a,A,l,g,C){let m=this.rtpCapabilities.send.videoCodecs,y=this._isUseLocalCodecs||m.length===0?this.localCapabilities.recv:this.rtpCapabilities.send,w=a===$t.VIDEO?y.videoCodecs:y.audioCodecs,b=a===$t.VIDEO?y.videoExtensions:y.audioExtensions;this.currentMidIndex+=1;let M="".concat(this.currentMidIndex),k={media:{mediaType:a,port:g_,protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(K=>K.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:b,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:l,rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:g,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(M)}};k=this.mungSendMediaDesc(k,C);let V=this.findFirstClosedMedia(a);if(V){let K=this.sessionDesc.mediaDescriptions.indexOf(V);this.sessionDesc.mediaDescriptions[K]=k}else this.sessionDesc.mediaDescriptions.push(k);return k}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(a=>a.media.port!=="0").map(a=>a.attributes.mid)}mungRecvMediaDsec(a,A,l){let g=no(a);return fN(g),kg(g,A),Pu(g,A),xy(g),ds(g,l,this.localCapabilities.send),g}mungSendMediaDesc(a,A){let l=no(a);return l.attributes&&l.attributes.payloads&&Array.isArray(l.attributes.payloads)&&l.attributes.payloads.length>0&&l.attributes.payloads.forEach(g=>{g.rtpMap&&g.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&Ie("ENABLE_DOWN_SPS_PPS")&&(g.fmtp&&g.fmtp.parameters||(g.fmtp={parameters:{}}),g.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),ds(l,A,this.localCapabilities.recv),No(l),l}updateRecvMedia(a,A){let l=this.sessionDesc.mediaDescriptions.findIndex(g=>g.attributes.mid===a);if(l!==-1){let g=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[l],A);this.sessionDesc.mediaDescriptions[l]=g}}bumpMid(a){this.currentMidIndex+=a}findFirstClosedMedia(a){return this.sessionDesc.mediaDescriptions.find(A=>uo()?A.media.port==="0"&&A.media.mediaType===a:A.media.port==="0")}findPreloadMediaDesc(a){return this.sessionDesc.mediaDescriptions.find(A=>{var l;return((l=A.attributes)===null||l===void 0||(l=l.ssrcs[0])===null||l===void 0?void 0:l.ssrcId)===a[0].ssrcId})}getSSRC(a){var A;return(A=this.sessionDesc.mediaDescriptions.find(l=>l.attributes.mid===a))===null||A===void 0?void 0:A.attributes.ssrcs}};function DN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function xu(a){for(var A=1;A=A.length-1&&g===H2.DOWN)return a;let m=xu(xu({},a),{},{scale:g===H2.DOWN?++C:--C});switch(l){case"maintain-framerate":m=xu(xu({},m),A[C].motion);break;case"maintain-resolution":m=xu(xu({},m),A[C].detail);break;case"balanced":m=xu(xu({},m),A[C].balanced)}return m}function qy(a,A){if(A){let l={overUse:0,underUse:0,adaptationList:NN(A)};E_.set(a,l)}else E_.delete(a)}function NN(a){let A=xu({},a),{bitrateMax:l,frameRate:g,scaleResolutionDownBy:C,bitrateMin:m}=A,{MIN_FRAME_RATE:y,MAX_THRESHOLD_FRAMERATE:w,MAX_SCALE:b,BITRATE_MIN_THRESHOLD:M,BITRATE_MAX_THRESHOLD:k,BWE_SCALE_UP_THRESHOLD:V,BWE_SCALE_DOWN_THRESHOLD:K,PERF_SCALE_DOWN_THRESHOLD:q,PERF_SCALE_UP_THRESHOLD:ce,BALANCE_BITRATE_FACTOR:oe,BALANCE_FRAMERATE_FACTOR:le,BALANCE_RESOLUTION_FACTOR:pe,MOTION_RESOLUTION_FACTOR:Se,MOTION_BITRATE_FACTOR:be,DETAIL_FRAMERATE_FACTOR:Ue,DETAIL_BITRATE_FACTOR:xe}=kR,Le=Math.min(A.frameRate,w),je=[{scale:0,threshold:{bwe_down:Math.round(Math.pow(K,1)*l),bwe_up:l,fps_down:Math.round(Math.pow(q,1)*Le),fps_up:g},balanced:{scaleResolutionDownBy:1,frameRate:g,bitrateMax:l,bitrateMin:m},motion:{scaleResolutionDownBy:1,frameRate:g,bitrateMax:l,bitrateMin:m},detail:{scaleResolutionDownBy:1,frameRate:g,bitrateMax:l,bitrateMin:m}}];for(let dt=1;dt<=b;dt++){let pt={bwe_up:Math.round(Math.pow(V,dt)*l),bwe_down:Math.round(Math.pow(K,dt+1)*l),fps_up:Math.round(Math.pow(ce,dt)*Le),fps_down:Math.round(Math.pow(q,dt+1)*Le)},zt={scaleResolutionDownBy:C/Math.pow(pe,dt),frameRate:Math.max(Math.round(Math.pow(le,dt)*g),y),bitrateMax:Math.max(Math.round(Math.pow(oe,dt)*l),k),bitrateMin:Math.max(Math.round(Math.pow(oe,dt)*m),M)},gr={scaleResolutionDownBy:C/Math.pow(Se,dt),frameRate:g,bitrateMax:Math.max(Math.round(Math.pow(be,dt)*l),k),bitrateMin:Math.max(Math.round(Math.pow(be,dt)*m),M)},li={scaleResolutionDownBy:1,frameRate:Math.max(Math.round(Math.pow(Ue,dt)*g),y),bitrateMax:Math.max(Math.round(Math.pow(xe,dt)*l),k),bitrateMin:Math.max(Math.round(Math.pow(xe,dt)*m),M)};je.push({scale:dt,threshold:pt,balanced:zt,motion:gr,detail:li})}return je}function ON(a,A,l,g,C,m){let y=E_.get(a)||{overUse:0,underUse:0,adaptationList:NN(C)},{adaptationList:w}=y;E_.set(a,y);let{OVERUSE_TIMES_THRESHOLD:b,UNDERUSE_TIMES_THRESHOLD:M}=kR,{scale:k}=g,V,K;return typeof A=="number"&&A>0&&function(q,ce,oe,le){if(ce>=oe.length)return!1;let{threshold:{fps_down:pe}}=oe[ce];return Ie("FORCE_AG_HIGH_FRAMERATE")&&le==="maintain-framerate"&&(pe=oe[0].threshold.fps_down),qb)||typeof l=="number"&&l>0&&function(q,ce,oe){if(ce>=oe.length)return!1;let{threshold:{bwe_down:le}}=oe[ce];return qb)?(y.overUse=0,y.underUse=0,V=bN(g,w,m,H2.DOWN),[V,K]):(typeof A=="number"&&A>0&&typeof l=="number"&&l>0&&function(q,ce,oe,le){if(ce===0)return;let{threshold:{fps_up:pe}}=oe[ce];return Ie("FORCE_AG_HIGH_FRAMERATE")&&le==="maintain-framerate"&&(pe=oe[1].threshold.fps_up),q>pe}(A,k,w,m)&&function(q,ce,oe){if(ce===0)return;let{threshold:{bwe_up:le}}=oe[ce];return q>le}(l,k,w)&&(y.underUse++,y.underUse>M&&(y.overUse=0,y.underUse=0,V=bN(g,w,m,H2.UP),V.scale===0&&(K=j1.NONE))),[V,K])}function LN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Wy(a){for(var A=1;A{let M=h_.get(a);if(!Ie("ENABLE_AG_ADAPTATION")||!M)return XC(a,l),void C(A);let k=m();if(k.sendPackets>0&&k.OutgoingAvailableBandwidth>0){if(y===-1)return void(y=Date.now());if(Date.now()-y<1e3)return;let V=k.sendFrameRate,K=k.OutgoingAvailableBandwidth,[q,ce]=ON(a,V,K,M.adaptationConfig,A,g);ce&&(l.qualityLimitationReason=ce),q&&M.adaptationConfig.scale!==q.scale&&(X.debug("[".concat(a,"] applyAdaptation: ").concat(l.qualityLimitationReason,` + sendFps `).concat(V,", bwe ").concat(K,", switch from ").concat(M.adaptationConfig.scale," to ").concat(q.scale," ")),M.adaptationConfig=Wy(Wy({},M.adaptationConfig),q),C(q))}},Ie("CHECK_LOCAL_STATS_INTERVAL")),b=Wy({},A);h_.set(a,{timer:w,adaptationConfig:b,originConfig:A,adaptationFunc:C}),X.debug("[".concat(a,"] start adaptation, originConfig: ").concat(JSON.stringify(A),", degradationPreference: ").concat(g))}function XC(a,A){let l=h_.get(a);if(l){let{timer:g}=l;window.clearTimeout(g),h_.delete(a)}A.qualityLimitationReason=j1.NONE,qy(a)}function $J(a,A){var l;let g;switch(A){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=a._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return g}function kN(a){let A=Bi();if(a.some(l=>l._bypassWebAudio))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");if(!A.webAudioMediaStreamDest)throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks because your browser does not support audio mixing")}function j2(a,A){kN(a);let l=new Os;return a.forEach(g=>l.addAudioTrack(g)),l}let I_=!Bi().supportUnifiedPlan||Ie("CHROME_FORCE_PLAN_B")&&Od();function C_(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(a.useDcSignal)return l={spec:A,store:a},td("DataChannelConnection").create(l);var l;return I_?function(g){return td("PlanBConnection").create(g)}({spec:A,store:a}):new Gc(A,a)}function nA(a){return a&&(a.iceConnectionState==="disconnected"||a.iceConnectionState==="checking"||a.iceConnectionState==="failed")}function Fg(a){try{if(a.iceServers)return!1;if(a.turnServer&&a.turnServer.mode!=="off"){if(eh(a.turnServer.servers))return!1;if(Ie("FORCE_TURN_TCP")||a.turnServer.servers.concat(a.turnServer.serversFromGateway||[]).some(A=>A.forceturn))return!0}return!1}catch{return!1}}var fr;function I7(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function _l(a){for(var A=1;AA.rtpMap&&A.rtpMap.encodingName.toLowerCase()||"").filter(A=>{var l;return Rt(l=Object.keys(Ss)).call(l,A)}))]}constructor(A,l){super(A,l),Ae(this,"id",yn(5,"connection-")),Ae(this,"store",void 0),Ae(this,"peerConnection",void 0),Ae(this,"forceTurn",!1),Ae(this,"remoteSDP",void 0),Ae(this,"initialOffer",void 0),Ae(this,"transportEventReceiver",void 0),Ae(this,"statsFilter",void 0),Ae(this,"extension",{useXR:Ie("USE_XR")}),Ae(this,"localCapabilities",void 0),Ae(this,"remoteCodecs",void 0),Ae(this,"localCandidateCount",0),Ae(this,"allCandidatesReceived",!1),Ae(this,"isPreallocation",!1),Ae(this,"isPreRender",!1),Ae(this,"preMediaMap",new Map),Ae(this,"dataStreamChannelMap",new Map),Ae(this,"establishPromise",void 0),Ae(this,"recoveredDataChannelIds",[]),Ae(this,"currentDataChannelId",1),Ae(this,"supportAV1RtpSpec",!1),Ae(this,"mutex",void 0),Ae(this,"qualityLimitationReason",j1.NONE),Ae(this,"isFirstConnected",!1),this.store=l,this.forceTurn=Fg(A),this.mutex=new Is("P2PConnection-mutex",l.clientId),this.peerConnection=new RTCPeerConnection(pm.resolvePCConfiguration(A),{optional:[{googDscp:!0}]}),this.isFirstConnected=!1,this.statsFilter=MC(this.peerConnection,Ie("STATS_UPDATE_INTERVAL"),void 0,uo()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,A.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(A){return this.preMediaMap.get(A)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(A,l){if(this.remoteCodecs=l,!this.remoteSDP)return void X.debug("[P2PConnection] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(l));if(this.remoteSDP.updateRemoteCodec(A,l,this.store.codec)){let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}else X.debug("[P2PConnection] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});let l=await this.peerConnection.createOffer();if(!l.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let g=fl(l.sdp),C=await Kd({filterRTX:!Ie("USE_PUB_RTX")&&!Ie("USE_SUB_RTX"),filterVideoFec:Ie("FILTER_VIDEO_FEC"),filterAudioFec:Ie("FILTER_AUDIO_FEC"),filterVideoCodec:Ie("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:Ie("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:Ie("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=En(C),this.initialOffer=l,Ie("ENABLE_SVC")&&this.store.codec=="av1"){let y=await OA();var A;y&&(this.supportAV1RtpSpec=!0,(A=C.send)===null||A===void 0||A.videoExtensions.push(y))}let m;return l.sdp&&xc(l.sdp)&&(m=no(C),gA(m)),_l(_l({},g),{},{rtpCapabilities:m||C,offerSDP:l.sdp})}catch(l){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,l.toString())}}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.initialOffer.sdp&&xc(this.initialOffer.sdp)&&Br(A.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Jd(_l(_l({},A),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!Ie("ENABLE_PRE_SUB_WITH_PRE_PC")||!Ie("PRE_USE_LOCAL_CODECS"))&&So(this.store)),A.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);let l=this.remoteSDP.toString(),g=Gy(this.initialOffer.sdp,this.extension),C=this.logSDPExchange(g||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:g}),C==null||C(l),await this.peerConnection.setRemoteDescription({type:"answer",sdp:l});let m=this.peerConnection.getTransceivers()[0];if(m!=null&&m.receiver&&this.tryBindTransportEvents(m.receiver),So(this.store))if(A.preallocation&&Ie("ENABLE_PRE_SUB_WITH_PRE_PC")){let y=Ie("PRE_SUB_NUM"),{mids:w,preSSRCs:b}=this.remoteSDP.preloadRemoteMedia(y);await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media, in pre pc,add preload ssrcs ").concat(b)),this.presetMedia(w,b)}else{let{preSSRCs:y=[]}=A,w=y.map(M=>M.ssrcMsg[0].ssrcId);if(y.length===0)return;let{mids:b}=this.remoteSDP.batchSend(y.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[P2PConnection.connect] preload media, after join, add preload ssrcs ".concat(w)),this.presetMedia(b,w)}}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(l.toString()))}}presetMedia(A,l){A.forEach((g,C)=>{this.peerConnection.getTransceivers().forEach(m=>{if(m.mid!=null&&g===m.mid&&m.receiver.track){let y=m.receiver.track,w;y.kind==="video"&&Ie("ENABLE_PRE_RENDER")&&(w=new zA({trackId:"track-".concat(y.kind,"-unknown-").concat(this.store.clientId,"_").concat(yn(5,""))},!0),w.updateVideoTrack(y),w.onFirstVideoFrameRender=()=>{var b;let M=this.preMediaMap.get(l[C]);M&&(M.firstVideoRender=Date.now()),(b=this.onFirstVideoRender)===null||b===void 0||b.call(this,l[C])},w.onVideoBufferReady=()=>{var b;(b=this.onFirstVideoBufferReady)===null||b===void 0||b.call(this,l[C])},w.play(this.store.sessionId||void 0),this.isPreRender=!0),this.preMediaMap.set(l[C],{mid:g,track:y,player:w,transceiver:m})}}),this.store.peerReceiver()})}checkDtlsParameters(A){return!!this.remoteSDP&&A.length>0&&this.remoteSDP.updateRemoteDtlsParameters(A)}async updateRemoteConnect(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateRemoteConnect before remote SDP created");let l=!1,{rtpCapabilities:g}=A;if([,l]=this.remoteSDP.updateRemoteRTPCapabilities(g),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){let y=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);l=l||y}let{preSSRCs:C=[]}=A,m=C.map(y=>y.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(m)){let y=[],w=[];if(Array.from(this.preMediaMap.entries()).every(b=>{let[M,{mid:k,player:V,track:K}]=b;return y.push(k),w.push(M),this.preMediaMap.delete(M),V&&V.destroy(),!0}),y.length>0&&(this.remoteSDP.stopSending(y),await gi(this.peerConnection,this.remoteSDP,this.extension),X.warn("[P2PConnection.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(w)),tr.reportApiInvoke(this.store.sessionId,{name:Co.PRELOAD_MEDIA_FAILED,options:[C,w],tag:Gn.TRACER}).onSuccess()),C.length>0){let{mids:b}=this.remoteSDP.batchSend(C.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[P2PConnection.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(m)),this.presetMedia(b,m)}}l?(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[P2PConnection] updateRemoteConnect by exchanging SDP.")):X.debug("[P2PConnection] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.updateRemoteConnect failed; ".concat(l.toString()))}}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From P2PConnection.send"));try{if(!C.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let y=[],w=k2();A.forEach(le=>{let pe=C.peerConnection.addTransceiver(le._mediaStreamTrack,_l({direction:"sendonly"},le.trackMediaType==="video"&&C.supportAV1RtpSpec&&w?{sendEncodings:[{scalabilityMode:w}]}:{}));y.push(pe),le._updateRtpTransceiver(pe)}),uo()&&Ie("SIMULCAST")===!0&&(yield ri(C.applySimulcastForFirefox(y,A)));let b=yield ri(C.peerConnection.createOffer()),M=C.remoteSDP.predictReceivingMids(A.length),k=C.mungSendOfferSDP(b.sdp,A,M),V=ki(k),K=M.map(le=>{let pe=V.mediaDescriptions.find(Se=>Se.attributes.mid===le);if(!pe)throw new Error("Cannot extract ssrc from mediaDescription.");return P2(pe,Ie("USE_PUB_RTX"))}),q;try{q=yield K}catch(le){q=[],C.remoteSDP.receive(A,l,g,q);let pe=C.remoteSDP.toString();throw yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:pe})),yield ri(C.stopSending(M,!0)),le}C.remoteSDP.receive(A,l,g,q);let ce=C.remoteSDP.toString(),oe=C.logSDPExchange(k,"offer","local","send");return yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.applySimulcastEncodings(y,A)),yield ri(C.applySendEncodings(y,A)),oe==null||oe(ce),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:ce})),y.map((le,pe)=>{let Se=M[pe];return{localSSRC:K[pe],id:Se,transceiver:le}})}catch(y){throw y instanceof nt?y:new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(y.toString()))}finally{m()}})()}async createDataChannels(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.createDataChannels before remote SDP created");let g=this.dataStreamChannelMap.get(A);if(g&&g.readyState==="open")X.debug("[P2PConnection] Channels are already available and can be reused directly.");else{let m=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof m!="number")throw new Error("create DataChannel error, because cannot get dc id");g=this.peerConnection.createDataChannel("datastream-channel",{id:m,negotiated:!0,ordered:!1,maxRetransmits:Ie("DATASTREAM_MAX_RETRANSMITS")}),g.binaryType="arraybuffer",this.dataStreamChannelMap.set(A,g)}l.forEach(m=>{m._updateOriginDataChannel(g)});let{needExchangeSDP:C}=this.remoteSDP.sendDataChannel();if(C){let m=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:m});let y=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(y),X.debug("[P2PConnection] createDataChannels by exchanging SDP.")}else X.debug("[P2PConnection] createDataChannels no need to exchange SDP.");return}catch(g){throw g instanceof nt?g:new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.createDataChannels failed; ".concat(g.toString()))}}async stopDataChannels(A){try{let l=this.dataStreamChannelMap.get(A);return l&&(l.id&&this.recoveredDataChannelIds.push(l.id),l.close()),void this.dataStreamChannelMap.delete(A)}catch(l){throw l instanceof nt?l:new nt(fe.DATACHANNEL_FAILED,"P2PConnection.stopDataChannels failed; ".concat(l.toString()))}}async stopSending(A,l){let g=l?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let C=this.peerConnection.getTransceivers().filter(b=>A.indexOf(b.mid)!==-1);if(C.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");C.map(b=>{var M;XC(this.id+b.mid,this),b.direction="inactive",(M=b.stop)===null||M===void 0||M.call(b)});let m=await this.peerConnection.createOffer(),y=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(A);let w=this.remoteSDP.toString();y==null||y(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(C){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(C.toString()))}finally{g&&g()}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);y&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," by exchanging SDP.")));let w=this.peerConnection.getTransceivers().find(b=>b.mid===m);if(!w)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,id:m,transceiver:w}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async batchReceive(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");let{mids:l,needExchangeSDP:g}=this.remoteSDP.batchSend(A);return g&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [P2PConnection] batchReceive by exchanging SDP."))),l.map(C=>{let m=this.peerConnection.getTransceivers().find(y=>y.mid===C);if(!m)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:m.receiver.track,id:C,transceiver:m}})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(l.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");A.forEach(m=>{Array.from(this.preMediaMap.entries()).some(y=>{let[w,{mid:b,player:M}]=y;if(b===m)return this.preMediaMap.delete(w),M&&M.destroy(),!0})}),this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}async muteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.mute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteRemote failed; ".concat(l.toString()))}}async unmuteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.unmute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteRemote failed; ".concat(l.toString()))}}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(y=>{y.direction="inactive"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.muteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(async(y,w)=>{y.direction="sendonly"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.unmuteRemote(A),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(A,this.remoteCodecs,this.store.codec);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(l.toString()))}}restartICE(A){var l=this;return wA(function*(){let g=yield ri(l.mutex.lock("From P2PConnection.restartICE"));try{if(!l.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");let C=Bi().supportPCSetConfiguration,m=Ie("FORCE_TURN_TCP")||l.forceTurn;if(A===Ls.RELAY&&!C)return;if(C&&!m){let V=A===Ls.RELAY?"relay":"all",K=l.peerConnection.getConfiguration();K.iceTransportPolicy!==V&&(X.debug("[".concat(l.store.clientId,"] restartICE change iceTransportPolicy from [").concat(K.iceTransportPolicy,"] to [").concat(V,"]")),K.iceTransportPolicy=V,l.peerConnection.setConfiguration(K))}l.remoteSDP.updateCandidates(A);let y=yield ri(l.peerConnection.createOffer({iceRestart:!0}));if(!y.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let w=fl(y.sdp),{remoteIceParameters:b}=yield w.iceParameters;l.remoteSDP.restartICE(b);let M=l.remoteSDP.toString(),k=l.logSDPExchange(y.sdp||"","offer","local","restartICE");l.store.descriptionStart(),yield ri(l.peerConnection.setLocalDescription(y)),k==null||k(M),yield ri(l.peerConnection.setRemoteDescription({type:"answer",sdp:M}))}catch(C){X.warning("[".concat(l.store.clientId,"] restart ICE failed, abort operation"),C)}finally{g()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;let A=await this.mutex.lock("From P2PConnection.extendCandidate");try{this.remoteSDP.updateCandidates(Ls.TCP_RELAY),await gi(this.peerConnection,this.remoteSDP,this.extension)}catch(l){X.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),l)}finally{A()}}close(){var A;this.peerConnection.getTransceivers().forEach(l=>{XC(this.id+l.mid,this)}),this.preMediaMap.forEach(l=>{let{player:g}=l;g&&g.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return _l(_l({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l],[A]);this.remoteSDP.updateRecvMedia(A,l);let m=this.remoteSDP.toString(),y=this.logSDPExchange(C,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),y==null||y(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getTransceivers().filter(C=>C.mid===A);g.length===1&&(this.isVP8Simulcast(l)?uo()||await this.applySimulcastEncodings(g,[l]):await this.applySendEncodings(g,[l]))}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getTransceivers().find(C=>C.mid===l);g&&await g.sender.replaceTrack(A._mediaStreamTrack)}async getSelectedCandidatePair(){let A=this.peerConnection.getReceivers();if(A.length>0&&A[0].transport&&A[0].transport.iceTransport&&A[0].transport.iceTransport.getSelectedCandidatePair&&A[0].transport.iceTransport.getSelectedCandidatePair()){let l=A[0].transport.iceTransport,{local:g,remote:C}=l.getSelectedCandidatePair();return{local:_l(_l({},cl),{},{candidateType:g.type,protocol:g.protocol,address:g.address,port:g.port}),remote:_l(_l({},cl),{},{candidateType:C.type,protocol:C.protocol,address:C.address,port:C.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A;(A=this.onICEConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=A=>{if(A&&(A.errorCode||A.errorText)){var l;let g="code: ".concat(A.errorCode,", message: ").concat(A.errorText),C=A.port?"local: ".concat(A.port):"",m=Pt(A.url||"");X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICECandidateError(").concat(g,"), url: ").concat(m||"",", host_candidate:").concat(C)),(l=this.onICECandidateError)===null||l===void 0||l.call(this,g)}},this.peerConnection.onicegatheringstatechange=A=>{A&&A.target&&"iceGatheringState"in A.target&&X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(A.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=A=>{A.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},Ie("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A){let l={iceServers:[]},g=A.cloudProxyServer||"disabled";return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:Ie("NEW_TURN_MODE")&&l.iceServers&&g==="disabled"?(Ie("USE_TURN_SERVER_OF_GATEWAY")?A.turnServer.serversFromGateway&&l.iceServers.push(...pm.newTurnServerConfigToIceServers(A.turnServer.serversFromGateway)):l.iceServers.push(...pm.newTurnServerConfigToIceServers(A.turnServer.servers)),Ie("NEW_FORCE_TURN")&&(l.iceTransportPolicy="relay")):A.turnServer.mode!=="off"&&(l.iceServers&&l.iceServers.push(...pm.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...pm.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),Ie("FORCE_TURN_TCP")?l.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(C=>{C.forceturn&&(l.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(l.encodedInsertableStreams=!0),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&!Ie("FORCE_TURN_TCP")&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}static newTurnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{let C=Ie("NEW_TURN_MODE");C===1?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}):C===2?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}):C===3?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}):C===4&&(l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}))}),l}tryBindTransportEvents(A){let l=A.transport;if(l){this.transportEventReceiver=A,l.onstatechange=()=>{var C;l!=null&&l.state&&((C=this.onDTLSTransportStateChange)===null||C===void 0||C.call(this,l.state))},l.onerror=C=>{var m;(m=this.onDTLSTransportError)===null||m===void 0||m.call(this,"error"in C?C.error:C)};let g=l.iceTransport;g&&(g.onstatechange=()=>{let C=l==null?void 0:l.iceTransport.state;var m;C&&((m=this.onICETransportStateChange)===null||m===void 0||m.call(this,C))},g.getSelectedCandidatePair&&(g.onselectedcandidatepairchange=()=>{if(g.getSelectedCandidatePair()){let{local:C,remote:m}=g.getSelectedCandidatePair()||{};if(C&&m){let y=C.address+":"+C.port,w=m.address+":"+m.port;X.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Pt(y)),", remote ").concat(JSON.stringify(Pt(w))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(A,l){var g,C;if(l||(l=this.peerConnection.getSenders().find(oe=>oe.track===A._mediaStreamTrack)),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(A))return X.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Bi().supportSetRtpSenderParameters)return X.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let m={},y={};switch(A._optimizationMode){case"motion":m.degradationPreference="maintain-framerate";break;case"detail":m.degradationPreference="maintain-resolution";break;case"balanced":m.degradationPreference="balanced"}let w=a_(this.peerConnection,A._mediaStreamTrack),b=xf(A);if(MN(A)&&w&&l&&b&&this.getLocalVideoStats&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)){var M;let oe=m.degradationPreference||(Rt(M=A._hints).call(M,$i.CUSTOM_TRACK)?Ie("CUSTOM_ADAPTATION_DEFAULT_MODE"):"maintain-framerate");h7(this.id+w.mid,b,this,oe,le=>{l&&this.updateAdaptation(l,le)},this.getLocalVideoStats.bind(this))}if(A._encoderConfig){var k;let{bitrateMax:oe,frameRate:le,scaleResolutionDownBy:pe}=A._encoderConfig;oe&&(y.maxBitrate=1e3*oe),(Rt(k=A._hints).call(k,$i.LOW_STREAM)||A.isUseScaleResolutionDownBy)&&(le&&(y.maxFramerate=ZA(le)),pe&&pe>=1&&(y.scaleResolutionDownBy=pe))}let{maxFramerate:V}=Ie("ENCODER_CONFIG_LIMIT");if(V&&typeof V=="number"&&(y.maxFramerate=y.maxFramerate?Math.min(y.maxFramerate,V):V),Ie("DSCP_TYPE")&&Od()){var K;let oe=Ie("DSCP_TYPE");Rt(K=["very-low","low","medium","high"]).call(K,oe)&&(y.networkPriority=oe)}let q=l.getParameters(),ce=(C=q.encodings)===null||C===void 0?void 0:C[0];uo()&&!ce&&(m.encodings=[y]),ce&&Object.assign(ce,y),Object.assign(q,m),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(q.encodings))),await l.setParameters(q),await A_(this.store.codec,l,Ie("SVC_MODE"))}async updateAdaptation(A,l){var g,C;if(!A)return X.debug("[updateAdaptation] no rtpSender found");if(!Bi().supportSetRtpSenderParameters)return X.debug("[updateAdaptation] Browser not support set rtp-sender parameters");let m={},{bitrateMax:y,frameRate:w,scaleResolutionDownBy:b}=l;y&&(m.maxBitrate=1e3*y),w&&(m.maxFramerate=ZA(w)),b&&b>=1&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)&&(m.scaleResolutionDownBy=b);let M=A.getParameters(),k=(C=M.encodings)===null||C===void 0?void 0:C[0];k&&Object.assign(k,m),Object.assign(M,{});try{await A.setParameters(M),X.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify(M.encodings)))}catch(V){!("transport"in A)||A.transport&&A.transport.state==="connected"?this.peerConnectionState!=="connected"?X.debug("[updateAdaptation] peerConnection not connected}"):X.debug("[updateAdaptation] updateRtpSenderEncodings failed",V):X.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let w=g[y],b=C.mediaDescriptions.find(M=>M.attributes.mid===w);b&&(kg(b,m),Fy(b,m,this.store.codec))}),ea(C)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onFirstVideoDecodedTimeout=A=>{var l;(l=this.onFirstVideoDecodedTimeout)===null||l===void 0||l.call(this,A)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(A,l){if(A.length===l.length)for(let b=0;b200&&(y=k._scalabilityMode)!==null&&y!==void 0&&y.numSpatialLayers&&((w=k._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let V={},K={high:1e3*(k._encoderConfig.bitrateMax-50),medium:5e4};V.encodings=[{rid:"m",active:!0,maxBitrate:K.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:K.high}];let q=M.sender.getParameters();await M.sender.setParameters(Object.assign(q,V))}}}async applySimulcastEncodings(A,l){if(!uo()&&A.length===l.length)for(let g=0;g200&&(m=A._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((y=A._scalabilityMode)===null||y===void 0?void 0:y.numSpatialLayers)>1)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("[".concat(this.store.clientId,"] exchanging ").concat(g," ").concat(l," SDP during P2PConnection.").concat(C,` +`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}async getRemoteSSRC(A){if(!this.remoteSDP)return;let l=this.remoteSDP.getSSRC(A);return l&&l.length!==0?l[0].ssrcId:void 0}setConfiguration(A){if(Bi().supportPCSetConfiguration){let l=pm.resolvePCConfiguration(A);this.peerConnection.setConfiguration(l)}A.isPreallocation&&(this.isPreallocation=!0)}},Vt(fr.prototype,"updateRemoteRTPCapabilities",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateRemoteRTPCapabilities"),fr.prototype),Vt(fr.prototype,"connect",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"connect"),fr.prototype),Vt(fr.prototype,"updateRemoteConnect",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateRemoteConnect"),fr.prototype),Vt(fr.prototype,"createDataChannels",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"createDataChannels"),fr.prototype),Vt(fr.prototype,"receive",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"receive"),fr.prototype),Vt(fr.prototype,"batchReceive",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"batchReceive"),fr.prototype),Vt(fr.prototype,"stopReceiving",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"stopReceiving"),fr.prototype),Vt(fr.prototype,"muteRemote",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"muteRemote"),fr.prototype),Vt(fr.prototype,"unmuteRemote",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"unmuteRemote"),fr.prototype),Vt(fr.prototype,"muteLocal",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"muteLocal"),fr.prototype),Vt(fr.prototype,"unmuteLocal",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"unmuteLocal"),fr.prototype),Vt(fr.prototype,"close",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"close"),fr.prototype),Vt(fr.prototype,"updateEncoderConfig",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateEncoderConfig"),fr.prototype),Vt(fr.prototype,"updateSendParameters",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateSendParameters"),fr.prototype),Vt(fr.prototype,"replaceTrack",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"replaceTrack"),fr.prototype),Vt(fr.prototype,"updateAdaptation",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateAdaptation"),fr.prototype),Vt(fr.prototype,"getRemoteSSRC",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"getRemoteSSRC"),fr.prototype),fr);function _a(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From P2PConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{if(!l)return g.stopCapture&&g.stopCapture();if(l.paused&&l.play(),l.videoHeight>2&&l.videoWidth>2){let k=l.videoWidth,V=l.videoHeight/k,K=g.width*V;Math.abs(K-g.height)>=2&&(X.debug("adjust low stream resolution","".concat(g.width,"x").concat(g.height," -> ").concat(g.width,"x").concat(K)),g.height=K)}y.drawImage(l,0,0,g.width,g.height),b.requestFrame&&b.requestFrame(),m!==a._mediaStreamTrack&&(m=a._mediaStreamTrack,l.srcObject=new MediaStream([m]))},g.stopCapture=h4(()=>g.startCapture&&g.startCapture(),C);let M=b.stop;return b.stop=()=>{M.call(b),l&&(l.remove(),l.srcObject=null,l=null),g&&(g.width=0,g.remove(),g.stopCapture&&g.stopCapture(),g.startCapture=void 0,g.stopCapture=void 0,g=null),X.debug("clean low stream renderer")},b}var Gg=function(a){return a[a.Video_Send_Type=190]="Video_Send_Type",a}(Gg||{}),qd=function(a){return a[a.Video_Send_Qp_Sum=2143]="Video_Send_Qp_Sum",a[a.Video_Send_Freeze=2082]="Video_Send_Freeze",a[a.Video_Recv_Qp_Sum=2144]="Video_Recv_Qp_Sum",a[a.Video_Recv_Freeze=2084]="Video_Recv_Freeze",a[a.Video_Render_Freeze_Time=2109]="Video_Render_Freeze_Time",a[a.Video_Render_Freeze_Time_Render=2147]="Video_Render_Freeze_Time_Render",a[a.Video_Render_Freeze_Time_Render2=2223]="Video_Render_Freeze_Time_Render2",a[a.Audio_Recv_Freeze=2083]="Audio_Recv_Freeze",a}(qd||{}),Wr=function(a){return a[a.Video_Send_Retransmit=2062]="Video_Send_Retransmit",a[a.Video_Send_Target_Encoded=2064]="Video_Send_Target_Encoded",a[a.Video_Send_Actual_Encoded=2060]="Video_Send_Actual_Encoded",a[a.Video_Send_Transmit=2066]="Video_Send_Transmit",a[a.Video_Send_Bandwidth=2061]="Video_Send_Bandwidth",a[a.Video_Capture_Height=2033]="Video_Capture_Height",a[a.Video_Capture_Width=2035]="Video_Capture_Width",a[a.Video_Capture_Frame_Rate=2034]="Video_Capture_Frame_Rate",a[a.Video_Send_Low_Height=2073]="Video_Send_Low_Height",a[a.Video_Send_Low_Frame_Rate=2075]="Video_Send_Low_Frame_Rate",a[a.Video_Send_Low_Width=2077]="Video_Send_Low_Width",a[a.Video_Send_Low_Bitrate=2069]="Video_Send_Low_Bitrate",a[a.Video_Send_Low_Package_Lost=2070]="Video_Send_Low_Package_Lost",a[a.Video_Send_Low_Package_Rate=2071]="Video_Send_Low_Package_Rate",a[a.Video_Send_Frame_Rate=2002]="Video_Send_Frame_Rate",a[a.Video_Send_Width=2003]="Video_Send_Width",a[a.Video_Send_Height=2004]="Video_Send_Height",a[a.Video_Send_Disabled=2095]="Video_Send_Disabled",a[a.Video_Send_Adaptation=2032]="Video_Send_Adaptation",a[a.Video_Send_Player_Status=2128]="Video_Send_Player_Status",a[a.Video_Send_Nacks=2009]="Video_Send_Nacks",a[a.Video_Send_Plis=2010]="Video_Send_Plis",a[a.Video_Send_Firs=2011]="Video_Send_Firs",a[a.Video_Send_Avg_Encode=2007]="Video_Send_Avg_Encode",a[a.Video_Send_Huge_Frame_Sent=2174]="Video_Send_Huge_Frame_Sent",a[a.Video_Send_Bytes_Retransmit=2173]="Video_Send_Bytes_Retransmit",a[a.Video_Send_Packages_Retransmit=2172]="Video_Send_Packages_Retransmit",a[a.Video_Send_Key_Frames_Encoded=2207]="Video_Send_Key_Frames_Encoded",a[a.Video_Send_Bitrate=2012]="Video_Send_Bitrate",a[a.Video_Send_Package_Rate=2031]="Video_Send_Package_Rate",a[a.Video_Send_Package_Lost=2005]="Video_Send_Package_Lost",a[a.Audio_Capture_PCM_Level=2104]="Audio_Capture_PCM_Level",a[a.Audio_Send_Level=2038]="Audio_Send_Level",a[a.Audio_Send_Bitrate=2039]="Audio_Send_Bitrate",a[a.Audio_Send_Package_Rate=2040]="Audio_Send_Package_Rate",a[a.Audio_Send_AEC_Return_Loss=2041]="Audio_Send_AEC_Return_Loss",a[a.Audio_Send_AEC_Return_Loss_Enhancement=2042]="Audio_Send_AEC_Return_Loss_Enhancement",a[a.Audio_Send_Freeze=2081]="Audio_Send_Freeze",a[a.Audio_Send_Disabled=2096]="Audio_Send_Disabled",a[a.Audio_Send_Bytes_Retransmit=2179]="Audio_Send_Bytes_Retransmit",a[a.Audio_Send_Packages_Retransmit=2180]="Audio_Send_Packages_Retransmit",a[a.Video_Recv_Height=2019]="Video_Recv_Height",a[a.Video_Recv_Width=2018]="Video_Recv_Width",a[a.Video_Recv_Frame_Rate_Output=2155]="Video_Recv_Frame_Rate_Output",a[a.Video_Recv_Jitter_Buffer=2023]="Video_Recv_Jitter_Buffer",a[a.Video_Recv_Current_Delay=2024]="Video_Recv_Current_Delay",a[a.Video_Recv_Nacks=2026]="Video_Recv_Nacks",a[a.Video_Recv_Plis=2027]="Video_Recv_Plis",a[a.Video_Recv_Firs=2028]="Video_Recv_Firs",a[a.Video_Recv_Disabled=2101]="Video_Recv_Disabled",a[a.Video_Recv_Player_Status=2129]="Video_Recv_Player_Status",a[a.Video_Recv_I_Frame_Delay=2149]="Video_Recv_I_Frame_Delay",a[a.Video_Render_Frame_Rate_Render=2022]="Video_Render_Frame_Rate_Render",a[a.Video_Render_Freeze_Duration=2156]="Video_Render_Freeze_Duration",a[a.Audio_Render_Level=2043]="Audio_Render_Level",a[a.Audio_Render_Freeze_Time_80ms=2226]="Audio_Render_Freeze_Time_80ms",a[a.Audio_Render_Freeze_Time_200ms=2227]="Audio_Render_Freeze_Time_200ms",a[a.Audio_Render_Freeze_Samples_80ms=2228]="Audio_Render_Freeze_Samples_80ms",a[a.Audio_Render_Freeze_Samples_200ms=2229]="Audio_Render_Freeze_Samples_200ms",a[a.Audio_Recv_PCM_Level=2105]="Audio_Recv_PCM_Level",a[a.Audio_Recv_Disabled=2102]="Audio_Recv_Disabled",a[a.Audio_Recv_Jitter_Buffer=2054]="Audio_Recv_Jitter_Buffer",a[a.Audio_Recv_Current_Delay=2047]="Audio_Recv_Current_Delay",a[a.Audio_Recv_Player_Status=2130]="Audio_Recv_Player_Status",a[a.Audio_Recv_Bitrate=2044]="Audio_Recv_Bitrate",a[a.Audio_Recv_Concealed_Samples=2148]="Audio_Recv_Concealed_Samples",a[a.Audio_Recv_Total_Samples_Received=2224]="Audio_Recv_Total_Samples_Received",a}(Wr||{}),yo=function(a){return a[a.Video_Render_Frame_Rate_Decode=2021]="Video_Render_Frame_Rate_Decode",a[a.Video_Recv_Frame_Rate=2020]="Video_Recv_Frame_Rate",a[a.Video_Recv_Frame_Dropped=2181]="Video_Recv_Frame_Dropped",a[a.Video_Recv_Bytes_Retransmit=2175]="Video_Recv_Bytes_Retransmit",a[a.Video_Recv_Packages_Retransmit=2176]="Video_Recv_Packages_Retransmit",a[a.Video_Recv_Packages_Discarded=2198]="Video_Recv_Packages_Discarded",a[a.Video_Recv_Avg_Decode=2200]="Video_Recv_Avg_Decode",a[a.Video_Recv_Avg_Processing_Delay=2202]="Video_Recv_Avg_Processing_Delay",a[a.Video_Recv_Avg_Assembly_Time=2203]="Video_Recv_Avg_Assembly_Time",a[a.Video_Recv_Avg_Inter_Frame_Delay=2204]="Video_Recv_Avg_Inter_Frame_Delay",a[a.Video_Recv_Key_Frames_Decoded=2206]="Video_Recv_Key_Frames_Decoded",a[a.Video_Recv_Package_Lost=2014]="Video_Recv_Package_Lost",a[a.Video_Recv_Bitrate=2029]="Video_Recv_Bitrate",a[a.Video_Recv_Package_Rate=2078]="Video_Recv_Package_Rate",a[a.Audio_Recv_Jitter=2055]="Audio_Recv_Jitter",a[a.Audio_Recv_Bytes_Retransmit=2178]="Audio_Recv_Bytes_Retransmit",a[a.Audio_Recv_Packages_Retransmit=2177]="Audio_Recv_Packages_Retransmit",a[a.Audio_Recv_Packages_Discarded=2199]="Audio_Recv_Packages_Discarded",a[a.Audio_Recv_Avg_Processing_Delay=2201]="Audio_Recv_Avg_Processing_Delay",a[a.Audio_Recv_Package_Rate=2046]="Audio_Recv_Package_Rate",a[a.Audio_Recv_Package_Lost=2045]="Audio_Recv_Package_Lost",a[a.Audio_Recv_AV_Sync_TIME=2237]="Audio_Recv_AV_Sync_TIME",a}(yo||{}),ma=function(a){return a[a.RTT=2006]="RTT",a[a.CONN_TYPE=801]="CONN_TYPE",a[a.STATS_UPDATE_INTERVAL=2205]="STATS_UPDATE_INTERVAL",a}(ma||{}),Ua=function(a){return a[a.RTC_PEER_CONNECTION_STATE=2219]="RTC_PEER_CONNECTION_STATE",a[a.PAGE_VISIBILITY=2233]="PAGE_VISIBILITY",a}(Ua||{}),Xy=function(a){return a[a.Transport_Send_Bitrate=2234]="Transport_Send_Bitrate",a[a.Transport_Recv_Bitrate=2235]="Transport_Recv_Bitrate",a}(Xy||{});let B1=1e3,zy=6,W2=3,ZJ=Math.max(zy,W2,60);function wr(a,A,l){l!=null&&Number.isFinite(l)&&(a[A]=Math.round(Math.max(0,l)))}function p_(a){let A={[ma.CONN_TYPE]:0,[ma.RTT]:a.rtt,[ma.STATS_UPDATE_INTERVAL]:a.updateInterval?Math.round(Math.max(0,a.updateInterval)):void 0};switch(a.selectedCandidatePair.localCandidate.candidateType){case"relay":{let l=a.selectedCandidatePair.localCandidate.relayProtocol;l==="udp"&&(A[ma.CONN_TYPE]=1),l==="tcp"&&(A[ma.CONN_TYPE]=3),l==="tls"&&(A[ma.CONN_TYPE]=4);break}case"srflx":A[ma.CONN_TYPE]=2;break;case"unknown":A[ma.CONN_TYPE]=5;break;default:A[ma.CONN_TYPE]=0}return A}function C7(a){let A=0;switch(a){case"none":A=0;break;case"cpu":A=1;break;case"bandwidth":A=2;break;case"other":A=3}return A}class p7 extends io{constructor(A){super(),Ae(this,"store",void 0),Ae(this,"uploadWRTCStatsTimer",void 0),Ae(this,"uploadOutboundDenoiserStatsTimer",void 0),Ae(this,"uploadExtStatsTimer",void 0),Ae(this,"uploadExtUsageStatsTimer",void 0),Ae(this,"uploadInboundExtStatsTimer",void 0),Ae(this,"requestStats",void 0),Ae(this,"requestTransportStats",void 0),Ae(this,"requestLocalMedia",void 0),Ae(this,"requestRemoteMedia",void 0),Ae(this,"requestAllTracks",void 0),Ae(this,"requestVideoIsReady",void 0),Ae(this,"requestUploadStats",void 0),Ae(this,"requestUpload",void 0),Ae(this,"uploadOutboundStarted",!1),Ae(this,"uploadInboundStarted",!1),Ae(this,"uploadTransportStarted",!1),Ae(this,"uploadBaseStatsStarted",!1),Ae(this,"uploadExtensionUsageStarted",!1),Ae(this,"lastRecvStats",void 0),Ae(this,"lastSendStats",void 0),Ae(this,"lastRefRecvStats",void 0),Ae(this,"lastRefSendStats",void 0),Ae(this,"lastNormalRecvStats",void 0),Ae(this,"lastNormalSendStats",void 0),Ae(this,"lastExtendStats",{}),Ae(this,"needUploadStats",{}),Ae(this,"needUploadRenderFreezeTime",!0),Ae(this,"lastUploadCompensateTime",-1),Ae(this,"uploadCompensateDeltaTime",0),this.store=A}uploadWRTCStats(A){if(!this.requestStats||!this.requestUploadStats)return;let l=A%W2==0,g=A%zy==0,C=A%60==0,m,y;if(this.uploadTransportStarted&&(m=this.requestStats(),this.store.useP2P&&(y=this.requestStats(!0))),!m&&this.uploadOutboundStarted&&(m=this.requestStats()),!y&&this.uploadInboundStarted&&(y=this.requestStats(!0)),m||y){var w;let b={};if(this.uploadTransportStarted&&m){let k=this.getTransportStats(m,l?this.lastRefSendStats:void 0,y,l);k&&(b.misc=[k])}if(this.uploadOutboundStarted&&m){let k=this.getOutboundStats(m,g?this.lastNormalSendStats:void 0,l?this.lastRefSendStats:void 0,this.lastSendStats,C);k&&(b.outbound=[k])}if(this.uploadInboundStarted&&y){this.uploadCompensateStats(A);let k=this.getInboundStats(y,g?this.lastNormalRecvStats:void 0,l?this.lastRefRecvStats:void 0,this.lastRecvStats);k&&(b.inbound=k)}let M=(w=this.requestTransportStats)===null||w===void 0?void 0:w.call(this).connectState;if(M&&(Array.isArray(b.misc)?b.misc[0]&&b.misc[0].addition&&(b.misc[0].addition[Ua.RTC_PEER_CONNECTION_STATE]=LR[M]):b.misc=[{addition:{[Ua.RTC_PEER_CONNECTION_STATE]:LR[M]}}]),f1.needUploadStats.length>0||g){let k=f1.needUploadStats.shift()||(f1.visibility==="visible"?1:0);Array.isArray(b.misc)?b.misc[0]&&b.misc[0].addition&&(b.misc[0].addition[Ua.PAGE_VISIBILITY]=k):b.misc=[{addition:{[Ua.PAGE_VISIBILITY]:k}}]}this.needUploadStats.sendType&&(Array.isArray(b.outbound)&&b.outbound[0]&&b.outbound[0].high&&(b.outbound[0].high[Gg.Video_Send_Type]=this.needUploadStats.sendType),this.needUploadStats.sendType=void 0),this.requestUploadStats(b)}this.lastRecvStats=y,this.lastSendStats=m,g&&(this.lastNormalRecvStats=y,this.lastNormalSendStats=m),l&&(this.lastRefRecvStats=y,this.lastRefSendStats=m)}startUploadWRTCStats(){if(this.uploadWRTCStatsTimer)return;this.uploadBaseStatsStarted=!0,f1.startCollectStats();let A=1;this.uploadWRTCStatsTimer=window.setInterval(()=>{if(!this.uploadTransportStarted&&!this.uploadInboundStarted&&!this.uploadOutboundStarted){if(this.uploadBaseStatsStarted){var l,g;let C=(l=this.requestTransportStats)===null||l===void 0?void 0:l.call(this);return void(C&&((g=this.requestUploadStats)===null||g===void 0||g.call(this,{misc:[{addition:{[Ua.RTC_PEER_CONNECTION_STATE]:LR[C.connectState]}}]})))}return this.stopUploadWRTCStats()}this.uploadWRTCStats(A),++A===ZJ+1&&(A=1)},B1)}uploadCompensateStats(A){if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;let l=A%W2==0&&this.needUploadRenderFreezeTime;if(!this.uploadInboundStarted||!l)return;if(this.lastUploadCompensateTime===-1)return void(this.lastUploadCompensateTime=Date.now());let g=Math.max(-6e3,Date.now()-this.lastUploadCompensateTime-6e3);if(this.uploadCompensateDeltaTime+=g,this.lastUploadCompensateTime=Date.now(),this.uploadCompensateDeltaTime<6e3)return;let C=Math.min(Math.floor(this.uploadCompensateDeltaTime/6e3),10);this.uploadCompensateDeltaTime-=6e3*C;let m=this.requestStats(!0);new Array(C).fill(0).forEach(()=>{if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;let y={};if(this.uploadInboundStarted&&m){let w=this.requestRemoteMedia()||[],b=[];w.forEach(M=>{let[k,V]=M,K={peer:k.uid};if(k._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(k._videoSSRC)&&V.has($t.VIDEO)&&k.videoTrack){let q=function(ce,oe,le){if(!oe.videoRecv.find(Se=>Se.ssrc===ce))return;let pe={};if(le&&le._player){let Se=le._player,{renderFreezeAccTime2:be,videoElementStatus:Ue}=Se;if(f1.visibility==="visible"&&Ue===Ta.PLAYING&&Bi().supportRequestVideoFrameCallback){let xe=Math.min(6e3,be);Se.renderFreezeAccTime2=Math.max(0,be-xe),wr(pe,qd.Video_Render_Freeze_Time_Render2,xe),Ie("USE_NEW_RENDER_FREEZE_TIME")&&wr(pe,qd.Video_Render_Freeze_Time_Render,xe)}}return pe}(k._videoSSRC,m,k.videoTrack);q&&(K.video=q)}K.video&&b.push(K)}),b.length>0&&(y.inbound=b,this.requestUploadStats(y))}})}stopUploadWRTCStats(){window.clearInterval(this.uploadWRTCStatsTimer),this.uploadWRTCStatsTimer=void 0,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0}getTransportStats(A,l,g,C){if(!this.requestStats)return;if(!C)return A.rtt==null?void 0:{addition:{[ma.RTT]:A.rtt,[ma.CONN_TYPE]:void 0,[ma.STATS_UPDATE_INTERVAL]:A.updateInterval||void 0}};let m=p_(A);if(this.store.useP2P){if(g){let y=p_(g);m[ma.CONN_TYPE]&&y[ma.CONN_TYPE]&&(m[ma.CONN_TYPE]+=y[ma.CONN_TYPE]<<3)}m[ma.CONN_TYPE]?m[ma.CONN_TYPE]+=110:m[ma.CONN_TYPE]=110}else{m[ma.CONN_TYPE]?m[ma.CONN_TYPE]+=100:m[ma.CONN_TYPE]=100;let y=function(w,b){return b?[Math.ceil(8*(w.transport.bytesSent-b.transport.bytesSent)/(w.timestamp-b.timestamp)),Math.ceil(8*(w.transport.bytesReceived-b.transport.bytesReceived)/(w.timestamp-b.timestamp))]:[0,0]}(A,l);m[Xy.Transport_Send_Bitrate]=y[0],m[Xy.Transport_Recv_Bitrate]=y[1]}return{addition:m}}getOutboundStats(A,l,g,C,m){if(!this.requestUploadStats||!this.requestLocalMedia)return;let y=this.requestLocalMedia();if(!y||y.length===0)return;let w,b,M;return y.forEach(k=>{let[V,{track:K,ssrcs:q}]=k;switch(V){case St.LocalVideoLowTrack:case St.LocalVideoTrack:if(V===St.LocalVideoTrack){var ce;let oe=function(be,Ue,xe,Le,je,dt){let pt=Ue.videoSend.find(ii=>ii.ssrc===be);if(!pt)return;let zt={},{sentFrame:gr,inputFrame:li}=pt;if(Le&&(wr(zt,qd.Video_Send_Qp_Sum,pt.qpSumPerFrame),li&&gr)){let ii=li.frameRate,br=gr.frameRate;zt[qd.Video_Send_Freeze]=function(Zi,Hn){let ut=!0;return ut=!(Zi<=5)&&(Zi<=10?Hn<3:Zi<=20?Hn<4:Hn<5),ut}(ii,br)?1:0}if(je){switch(gr&&(wr(zt,Wr.Video_Send_Height,gr.height),wr(zt,Wr.Video_Send_Width,gr.width),wr(zt,Wr.Video_Send_Frame_Rate,gr.frameRate)),zt[Wr.Video_Send_Disabled]=xe._originMediaStreamTrack&&!xe._originMediaStreamTrack.enabled||xe._mediaStreamTrack&&!xe._mediaStreamTrack.enabled?1:0,pt.adaptionChangeReason){case"none":zt[Wr.Video_Send_Adaptation]=0;break;case"cpu":zt[Wr.Video_Send_Adaptation]=1;break;case"bandwidth":zt[Wr.Video_Send_Adaptation]=2;break;case"other":zt[Wr.Video_Send_Adaptation]=3}let ii=0;pt.adaptionChangeReason&&(ii+=C7(pt.adaptionChangeReason)),Ue.qualityLimitationReason&&(ii+=C7(Ue.qualityLimitationReason)<<3),zt[Wr.Video_Send_Adaptation]=ii,zt[Wr.Video_Send_Player_Status]=Dn[xe._player?xe._player.videoElementStatus:"uninit"],wr(zt,Wr.Video_Send_Nacks,pt.nacksCount),wr(zt,Wr.Video_Send_Plis,pt.plisCount),wr(zt,Wr.Video_Send_Firs,pt.firsCount),wr(zt,Wr.Video_Send_Avg_Encode,pt.avgEncodeMs),wr(zt,Wr.Video_Send_Huge_Frame_Sent,pt.hugeFramesSent),wr(zt,Wr.Video_Send_Bytes_Retransmit,pt.retransmittedBytesSent),wr(zt,Wr.Video_Send_Packages_Retransmit,pt.retransmittedPacketsSent),wr(zt,Wr.Video_Send_Key_Frames_Encoded,pt.keyFramesEncoded);let br=je.videoSend.find(Zi=>Zi.ssrc===be);if(br){let Zi=B1*W2;br.timestamp&&pt.timestamp&&(Zi=pt.timestamp-br.timestamp),br.packets!=null&&pt.packets!=null&&wr(zt,Wr.Video_Send_Package_Rate,1e3*(pt.packets-br.packets)/Zi),pt.packetsLost!=null&&br.packetsLost!=null&&wr(zt,Wr.Video_Send_Package_Lost,pt.packetsLost-br.packetsLost),br.bytes!=null&&pt.bytes!=null&&wr(zt,Wr.Video_Send_Bitrate,8*(pt.bytes-br.bytes)/Zi)}}return zt}(q[0].ssrcId,A,K,l,g),le=K.__className__==="CameraVideoTrack"?3:Rt(ce=K._hints).call(ce,$i.SCREEN_TRACK)?7:10;(this.lastExtendStats.sendType!==le||m)&&(this.needUploadStats={sendType:le},this.lastExtendStats.sendType=le);let pe=K&&function(be,Ue,xe,Le){let je=Ue.videoSend.find(pt=>pt.ssrc===be);if(!je)return null;let dt={};if(Le){let pt=je.inputFrame,zt=pt&&pt.height||xe.videoHeight||0,gr=pt&&pt.width||xe.videoWidth||0,li=pt&&pt.frameRate||0;wr(dt,Wr.Video_Capture_Height,zt),wr(dt,Wr.Video_Capture_Width,gr),wr(dt,Wr.Video_Capture_Frame_Rate,li)}return dt}(q[0].ssrcId,A,K,!!g),Se=function(be,Ue){let xe={};return Ue&&(wr(xe,Wr.Video_Send_Retransmit,be.bitrate.retransmit),wr(xe,Wr.Video_Send_Target_Encoded,be.bitrate.targetEncoded),wr(xe,Wr.Video_Send_Actual_Encoded,be.bitrate.actualEncoded),wr(xe,Wr.Video_Send_Transmit,be.bitrate.transmit),wr(xe,Wr.Video_Send_Bandwidth,be.sendBandwidth)),xe}(A,!!g);b=Object.assign({},oe,pe,Se)}else M=function(oe,le,pe,Se,be){let Ue=le.videoSend.find(Le=>Le.ssrc===oe);if(!Ue)return;let xe={};if(Se){let Le=Ue.sentFrame;Le&&(wr(xe,Wr.Video_Send_Low_Height,Le.height),wr(xe,Wr.Video_Send_Low_Width,Le.width),wr(xe,Wr.Video_Send_Low_Frame_Rate,Le.frameRate));let je=Se.videoSend.find(dt=>dt.ssrc===oe);if(je){let dt=B1*zy;je.timestamp&&Ue.timestamp&&(dt=Ue.timestamp-je.timestamp),je.packets!=null&&Ue.packets!=null&&wr(xe,Wr.Video_Send_Low_Package_Rate,1e3*(Ue.packets-je.packets)/dt),Ue.packetsLost!=null&&je.packetsLost!=null&&wr(xe,Wr.Video_Send_Low_Package_Lost,Ue.packetsLost-je.packetsLost),je.bytes!=null&&Ue.bytes!=null&&wr(xe,Wr.Video_Send_Low_Bitrate,8*(Ue.bytes-je.bytes)/dt)}}return xe}(q[0].ssrcId,A,0,g);break;case St.LocalAudioTrack:w=K&&function(oe,le,pe,Se,be,Ue){let xe=le.audioSend.find(je=>je.ssrc===oe);if(!xe)return;let Le={};if(be){Le[Wr.Audio_Send_Disabled]=pe._originMediaStreamTrack&&!pe._originMediaStreamTrack.enabled||pe._mediaStreamTrack&&!pe._mediaStreamTrack.enabled?1:0;let je=100*pe._source.getAccurateVolumeLevel(),dt=xe.inputLevel;if(dt!=null){let zt=Math.ceil(50*Math.log10(100*dt+1));wr(Le,Wr.Audio_Send_Level,zt)}wr(Le,Wr.Audio_Capture_PCM_Level,je),wr(Le,Wr.Audio_Send_AEC_Return_Loss,xe.aecReturnLoss),wr(Le,Wr.Audio_Send_AEC_Return_Loss_Enhancement,xe.aecReturnLossEnhancement),wr(Le,Wr.Audio_Send_Bytes_Retransmit,xe.retransmittedBytesSent),wr(Le,Wr.Audio_Send_Packages_Retransmit,xe.retransmittedPacketsSent),Le[Wr.Audio_Send_Freeze]=0;let pt=be.audioSend.find(zt=>zt.ssrc===oe);if(pt){let zt=B1*zy;pt.timestamp&&xe.timestamp&&(zt=xe.timestamp-pt.timestamp),pt.bytes!=null&&xe.bytes!=null&&wr(Le,Wr.Audio_Send_Bitrate,8*(xe.bytes-pt.bytes)/zt),pt.packets!=null&&xe.packets!=null&&wr(Le,Wr.Audio_Send_Package_Rate,1e3*(xe.packets-pt.packets)/zt)}}return Le}(q[0].ssrcId,A,K,0,g)}}),{high:b,low:M,audio:w}}getInboundStats(A,l,g,C){if(!this.requestRemoteMedia)return;let m=this.requestRemoteMedia()||[],y=[];return m.forEach(w=>{let[b,M]=w,k={peer:b.uid},V;if(M.has($t.VIDEO)&&b.videoTrack){let K=b._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(b._videoSSRC)||!1,q=b.videoTrack?function(ce,oe,le,pe,Se,be,Ue,xe){let Le=oe.videoRecv.find(br=>br.ssrc===ce);if(!Le)return;let je={},{receivedFrame:dt,outputFrame:pt,decodeFrameRate:zt}=Le;wr(je,yo.Video_Render_Frame_Rate_Decode,zt),Le.framesRateFirefox&&wr(je,yo.Video_Recv_Frame_Rate,Le.framesRateFirefox),dt&&wr(je,yo.Video_Recv_Frame_Rate,dt.frameRate),wr(je,yo.Video_Recv_Frame_Dropped,Le.framesDroppedCount),wr(je,yo.Video_Recv_Bytes_Retransmit,Le.retransmittedBytesReceived),wr(je,yo.Video_Recv_Packages_Retransmit,Le.retransmittedPacketsReceived),wr(je,yo.Video_Recv_Packages_Discarded,Le.packetsDiscarded),wr(je,yo.Video_Recv_Avg_Decode,Le.avgDecodeMs),wr(je,yo.Video_Recv_Avg_Processing_Delay,Le.avgProcessingDelayMs),wr(je,yo.Video_Recv_Avg_Assembly_Time,Le.avgFramesAssembledFromMultiplePacketsMs),wr(je,yo.Video_Recv_Avg_Inter_Frame_Delay,Le.avgInterFrameDelayMs),wr(je,yo.Video_Recv_Key_Frames_Decoded,Le.keyFramesDecoded);let gr=xe&&xe.videoRecv.find(br=>br.ssrc===ce);if(gr){let br=oe.timestamp-xe.timestamp||B1;Le.packetsLost!=null&&gr.packetsLost!=null&&wr(je,yo.Video_Recv_Package_Lost,Le.packetsLost-gr.packetsLost),gr.bytes!=null&&Le.bytes!=null&&wr(je,yo.Video_Recv_Bitrate,8*(Le.bytes-gr.bytes)/br),gr.packets!=null&&Le.packets!=null&&wr(je,yo.Video_Recv_Package_Rate,1e3*(Le.packets-gr.packets)/br)}let li=be&&be.videoRecv.find(br=>br.ssrc===ce);if(li&&(wr(je,qd.Video_Recv_Qp_Sum,Le.qpSumPerFrame),je[qd.Video_Recv_Freeze]=pe&&F2.isRemoteVideoFreeze(le,Le,li)?1:0),Ue){var ii;let br=Ue.videoRecv.find(Hn=>Hn.ssrc===ce);dt?(wr(je,Wr.Video_Recv_Height,dt.height),wr(je,Wr.Video_Recv_Width,dt.width)):le&&(wr(je,Wr.Video_Recv_Height,le._videoHeight||0),wr(je,Wr.Video_Recv_Width,le._videoWidth||0)),pt&&wr(je,Wr.Video_Recv_Frame_Rate_Output,pt.frameRate);let Zi=(ii=le._player)===null||ii===void 0?void 0:ii.rendFrameRate.toFixed(0);if(Zi&&wr(je,Wr.Video_Render_Frame_Rate_Render,+Zi),wr(je,Wr.Video_Recv_Jitter_Buffer,Le.jitterBufferMs),wr(je,Wr.Video_Recv_Current_Delay,Le.currentDelayMs),wr(je,Wr.Video_Recv_Firs,Le.firsCount),wr(je,Wr.Video_Recv_Nacks,Le.nacksCount),wr(je,Wr.Video_Recv_Plis,Le.plisCount),le){je[Wr.Video_Recv_Disabled]=le._originMediaStreamTrack.enabled&&le._mediaStreamTrack.enabled?0:1;let Hn=le._player;if(Hn){let{freezeTimeCounterList:ut,renderFreezeAccTime:kt,renderFreezeAccTime2:Wt,videoElementStatus:It}=Hn;if(ut&&ut.length>0&&wr(je,qd.Video_Render_Freeze_Time,ut.splice(0,1)[0]),Se&&f1.visibility==="visible"&&It===Ta.PLAYING&&Bi().supportRequestVideoFrameCallback){let ne=Math.min(6e3,Wt);Hn.renderFreezeAccTime2=Math.max(0,Wt-ne),wr(je,qd.Video_Render_Freeze_Time_Render2,ne);let ve=Math.min(6e3,kt);Hn.renderFreezeAccTime=Math.max(0,kt-ve),wr(je,qd.Video_Render_Freeze_Time_Render,Ie("USE_NEW_RENDER_FREEZE_TIME")?ne:ve)}if(typeof Le.totalFreezesDuration=="number"){let ne=br&&br.totalFreezesDuration?Le.totalFreezesDuration-br.totalFreezesDuration:Le.totalFreezesDuration;wr(je,Wr.Video_Render_Freeze_Duration,1e3*ne)}}}if(je[Wr.Video_Recv_Player_Status]=Dn[le._player?le._player.videoElementStatus:"uninit"],br&&Le.totalInterFrameDelay!==void 0&&Le.totalSquaredInterFrameDelay!==void 0&&br.totalInterFrameDelay!==void 0&&br.totalSquaredInterFrameDelay!==void 0){let Hn=Le.totalInterFrameDelay-br.totalInterFrameDelay,ut=Le.totalSquaredInterFrameDelay-br.totalSquaredInterFrameDelay,kt=Le.framesDecodeCount-br.framesDecodeCount,Wt=Hn/kt*1e3,It=Math.round(1e3*Math.sqrt((ut-Math.pow(Hn,2)/kt)/kt));!isNaN(It)&&Wt+It>Math.max(3*Wt,Wt+150)&&(je[Wr.Video_Recv_I_Frame_Delay]=It)}}return je}(b._videoSSRC,A,b.videoTrack,K===!0,this.needUploadRenderFreezeTime,l,g,C):void 0;if(q&&(k.video=q),b.videoTrack){let ce=A.videoRecv.find(oe=>oe.ssrc===b._videoSSRC);ce&&ce.estimatedPlayoutTimestamp&&(V=ce.estimatedPlayoutTimestamp)}}if(M.has($t.AUDIO)&&b.audioTrack){let K=b.audioTrack?function(q,ce,oe,le,pe,Se){let be=ce.audioRecv.find(je=>je.ssrc===q);if(!be)return;let Ue={};wr(Ue,yo.Audio_Recv_Jitter,be.jitterMs),wr(Ue,yo.Audio_Recv_Bytes_Retransmit,be.retransmittedBytesReceived),wr(Ue,yo.Audio_Recv_Packages_Retransmit,be.retransmittedPacketsReceived),wr(Ue,yo.Audio_Recv_Packages_Discarded,be.packetsDiscarded),wr(Ue,yo.Audio_Recv_Avg_Processing_Delay,be.avgProcessingDelayMs);let xe=Se&&Se.audioRecv.find(je=>je.ssrc===q);if(xe){let je=B1;be.packets!=null&&xe.packets!=null&&wr(Ue,yo.Audio_Recv_Package_Rate,1e3*(be.packets-xe.packets)/je),be.packetsLost!=null&&xe.packetsLost!=null&&wr(Ue,yo.Audio_Recv_Package_Lost,be.packetsLost-xe.packetsLost)}if(le){let{receivedFrames:je,droppedFrames:dt}=be;je!=null&&dt!=null&&(Ue[qd.Audio_Recv_Freeze]=(Le=je)===0||100*dt/Le>20?1:0)}var Le;if(pe){let je=100*oe._source.getAccurateVolumeLevel(),dt=be.outputLevel;if(dt!=null){let zt=Math.ceil(50*Math.log10(100*dt+1));wr(Ue,Wr.Audio_Render_Level,zt)}wr(Ue,Wr.Audio_Recv_PCM_Level,je),oe&&(Ue[Wr.Audio_Recv_Disabled]=oe._originMediaStreamTrack.enabled&&oe._mediaStreamTrack.enabled?0:1),wr(Ue,Wr.Audio_Recv_Jitter_Buffer,be.jitterBufferMs),wr(Ue,Wr.Audio_Recv_Current_Delay,be.jitterBufferMs),Ue[Wr.Audio_Recv_Player_Status]=Dn[va.getPlayerState(oe.getTrackId())];let pt=pe.audioRecv.find(zt=>zt.ssrc===q);if(pt){pt.bytes!=null&&be.bytes!=null&&wr(Ue,Wr.Audio_Recv_Bitrate,8*(be.bytes-pt.bytes)/(B1*W2));let zt=be.concealedSamples-pt.concealedSamples;zt>0&&wr(Ue,Wr.Audio_Recv_Concealed_Samples,zt);let gr=be.totalSamplesReceived-pt.totalSamplesReceived;gr>0&&wr(Ue,Wr.Audio_Recv_Total_Samples_Received,gr);let li=be.freezeSamples80-pt.freezeSamples80;li>0&&wr(Ue,Wr.Audio_Render_Freeze_Samples_80ms,li);let ii=be.freezeSamples200-pt.freezeSamples200;ii>0&&wr(Ue,Wr.Audio_Render_Freeze_Samples_200ms,ii);let br=be.freezeMs80-pt.freezeMs80;wr(Ue,Wr.Audio_Render_Freeze_Time_80ms,br<0?0:br);let Zi=be.freezeMs200-pt.freezeMs200;wr(Ue,Wr.Audio_Render_Freeze_Time_200ms,Zi<0?0:Zi)}}return Ue}(b._audioSSRC,A,b.audioTrack,l,g,C):void 0;if(K&&(k.audio=K),b.audioTrack&&V){let q=A.audioRecv.find(ce=>ce.ssrc===b._audioSSRC);if(q&&q.estimatedPlayoutTimestamp){let ce=q.estimatedPlayoutTimestamp-V;k.audio?k.audio[yo.Audio_Recv_AV_Sync_TIME]=ce:k.audio={[yo.Audio_Recv_AV_Sync_TIME]:ce}}}}(k.video||k.audio)&&y.push(k)}),this.needUploadRenderFreezeTime=!this.needUploadRenderFreezeTime,y}startUploadTransportStats(){this.uploadTransportStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats()}stopUploadTransportStats(){this.uploadTransportStarted=!1}startUploadOutboundStats(){this.uploadOutboundStarted||(this.uploadOutboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=window.setInterval(()=>{if(!this.requestAllTracks||!this.requestUpload)return;let A=(this.requestAllTracks()||[]).find(l=>l instanceof gn);if(A&&A._external.getDenoiserStats){let l=A._external.getDenoiserStats();l&&this.requestUpload(pn.DENOISER_STATS,l)}},2e3),this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=window.setInterval(()=>{!this.requestAllTracks||!this.requestUpload||this.requestAllTracks().forEach(A=>{A.getProcessorStats().forEach(l=>{this.requestUpload&&this.requestUpload(l.type,l.stats)})})},2e3))}stopUploadOutboundStats(){this.uploadOutboundStarted&&(this.uploadOutboundStarted=!1,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=void 0,this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=void 0)}startUploadInboundStats(){this.uploadInboundStarted||(this.uploadInboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=window.setInterval(()=>{!this.requestUpload||!this.requestRemoteMedia||(this.requestRemoteMedia()||[]).forEach(A=>{let[l,g]=A;g.has($t.VIDEO)&&l.videoTrack&&l.videoTrack.getProcessorStats().forEach(C=>{this.requestUpload&&this.requestUpload(C.type,C.stats)}),g.has($t.AUDIO)&&l.audioTrack&&l.audioTrack.getProcessorStats().forEach(C=>{this.requestUpload&&this.requestUpload(C.type,C.stats)})})},2e3))}stopUploadInboundStats(){this.uploadInboundStarted&&(this.uploadInboundStarted=!1,this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0,this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=void 0)}startUploadExtensionUsageStats(){if(this.uploadExtensionUsageStarted)return;this.uploadExtensionUsageStarted=!0,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer);let A=new Map;this.uploadExtUsageStatsTimer=window.setInterval(async()=>{let l=Date.now(),g={connectionInterval:Ie("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3,details:[],lts:l},C=[],m=this.requestAllTracks&&this.requestAllTracks()||[];for(let M of m)!M.muted&&M.enabled&&(C=C.concat(await M.getProcessorUsage()));let y=this.requestRemoteMedia&&this.requestRemoteMedia()||[];for(let[M,k]of y)k.has($t.VIDEO)&&M.videoTrack&&(C=C.concat(await M.videoTrack.getProcessorUsage())),k.has($t.AUDIO)&&M.audioTrack&&(C=C.concat(await M.audioTrack.getProcessorUsage()));if(C.length===0)return;g.details=function(M,k){let V={};for(let{id:oe,value:le,level:pe,direction:Se}of M){var K;let be=(K=k.get(oe))!==null&&K!==void 0?K:0,Ue=le===2?be+Ie("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3:be;var q,ce;k.set(oe,Ue),V[oe]?(le===2&&(V[oe].value=le),pe>V[oe].level&&(V[oe].level=pe),Se==="remote"&&(V[oe].remoteUidCount+=1),V[oe].totalTs=(q=k.get(oe))!==null&&q!==void 0?q:0):V[oe]={value:le,level:pe,remoteUidCount:Se==="local"?0:1,totalTs:(ce=k.get(oe))!==null&&ce!==void 0?ce:0}}return Object.keys(V).map(oe=>{let{level:le,value:pe,totalTs:Se}=V[oe];return{id:oe,level:le,value:pe,totalTs:Se}})}(C,A);let w=Date.now(),b=w>l?w:l+1;this.requestUpload&&this.requestUpload(pn.EXTENSION_USAGE_STATS,{usageStats:g,sendTs:b})},Ie("EXTENSION_USAGE_UPLOAD_INTERVAL"))}stopUploadExtensionUsageStats(){this.uploadExtensionUsageStarted&&(this.uploadExtensionUsageStarted=!1,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer),this.uploadExtUsageStatsTimer=void 0)}stopUploadBaseStats(){this.uploadBaseStatsStarted=!1,f1.stopCollectStats()}}let tq=Ie("ICE_RESTART_INTERVAL"),$y=new Map,Vg=new Map,Fu=[Ls.UDP_TCP_RELAY,Ls.TCP_RELAY,Ls.RELAY],UN=Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Bi().supportPCSetConfiguration;function f7(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=$y.get(a.id);l&&(window.clearTimeout(l),$y.delete(a.id));let g=Vg.get(a.id);A&&g&&g.index===Fu.length-1&&(X.debug("[".concat(a.id,"] reset ICE restart policy")),Vg.delete(a.id))}function _7(a,A,l){if($y.size===0&&Vg.size===0&&(Array.isArray(Ie("RESTART_SEQUENCE"))&&Ie("RESTART_SEQUENCE").length>0&&!function(w,b){if(w.length!==b.length)return!1;for(let M=0;MV===k).length!==b.filter(V=>V===k).length)return!1}return!0}(Fu,Ie("RESTART_SEQUENCE"))&&(Fu=Ie("RESTART_SEQUENCE").filter(w=>{var b;if(Rt(b=Object.values(Ls)).call(b,w))return!0}),X.debug("use reconnection policy from config distribution, queues: ".concat(Fu.join(" => ")))),UN=Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Bi().supportPCSetConfiguration),Fu.length===0)return void l();let g,{index:C=0,type:m}=Vg.get(a.id)||{};if(UN&&m===Ls.RELAY)return void l();let y=m&&C>=Fu.length-1;if(UN)m=Ls.RELAY;else{if(y)return void l();m?(C++,m=Fu[C]):(m=Fu[0],C=0)}X.debug("[".concat(a.id,"] choose ICE restart policy: ").concat(m,", index: ").concat(C)),A(m),Vg.set(a.id,{index:C,type:m}),g=window.setTimeout(()=>_7(a,A,l),tq),$y.set(a.id,g)}var Di;function Sh(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function IA(a){for(var A=1;A{let m=await this.mutex.lock("Locking from P2PChannel.handleMuteLocalTrack");try{if(!this.connection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel.handleMuteLocalTrack before connection established."));let y=this.filterTobeMutedTracks(l);if(y.length===0)return void g();let w=y.find(M=>M[0]==="videoLowTrack");if(w){let M=w[1];this.store.enableInstantMuteRestore?(M.track._originMediaStreamTrack.enabled=!1,X.info("[".concat(this.store.clientId,"] P2PChannel muteLocalLowTrack without close sender because enableInstantMuteRestore is true"))):M.track._originMediaStreamTrack.stop()}this.store.enableInstantMuteRestore?X.info("[".concat(this.store.clientId,"] P2PChannel muteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.muteLocal(y.map(M=>{let[,{id:k}]=M;return k}));let b=this.createMuteMessage(y);await Wn(this,hr.RequestMuteLocal,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleUnmuteLocalTrack",async(l,g,C)=>{let m=await this.mutex.lock("Locking from P2PChannel.handleUnmuteLocalTrack");try{if(!this.connection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel.handleUnmuteLocalTrack before connection established."));let y=this.filterTobeUnmutedTracks(l);if(y.length===0)return void g();let w=y.find(M=>M[0]==="videoLowTrack");if(w){let M=w[1];if(this.store.enableInstantMuteRestore)M.track._originMediaStreamTrack.enabled=!0,X.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalLowTrack without close sender because enableInstantMuteRestore is true"));else{if(M.track._originMediaStreamTrack.stop(),!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding){let k=l._mediaStreamTrack.clone();M.track._mediaStreamTrack=k,M.track._originMediaStreamTrack=k}else{let k=PN(l,o2(this,hr.RequestLowStreamParameter));M.track._mediaStreamTrack=k,M.track._originMediaStreamTrack=k}await new Ft((k,V)=>{this.handleReplaceTrack(M.track,k,V,!0)})}}this.store.enableInstantMuteRestore?X.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.unmuteLocal(y.map(M=>{let[,{id:k}]=M;return k}));let b=this.createUnmuteMessage(y);await Wn(this,hr.RequestUnmuteLocal,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleUpdateVideoEncoder",async(l,g,C,m)=>{let y;m||(y=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoEncoder"));try{let b=this.localTrackMap.get(St.LocalVideoTrack);if(!this.connection||!b||b.track!==l||this.state!==An.Connected)return void g();let{id:M,track:k}=b;await this.connection.updateSendParameters(M,k),await this.connection.updateEncoderConfig(M,k),this.emit(hr.UpdateVideoEncoder,k),g()}catch(b){C(b)}finally{var w;(w=y)===null||w===void 0||w()}}),Ae(this,"handleUpdateVideoSendParameters",async(l,g,C)=>{let m=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoSendParameters");try{let y=this.localTrackMap.get(St.LocalVideoTrack);if(!this.connection||!y||y.track!==l||this.state!==An.Connected)return void g();let{id:w,track:b}=y;await this.connection.updateSendParameters(w,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleReplaceMixingTrack",async(l,g,C,m)=>{if(!this.connection||this.state!==An.Connected)return void g();let y=j2([l]),w;X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(y.getTrackId(),"]")),typeof m=="boolean"&&m||(w=await this.mutex.lock("From P2PChannel.handleReplaceMixingTrack"));try{await this.replaceTrack(l,y),g()}catch(M){C(M)}finally{var b;(b=w)===null||b===void 0||b()}}),Ae(this,"handleReplaceTrack",async(l,g,C,m)=>{let y;X.debug("[".concat(this.store.clientId,"] P2PChannel handleReplaceTrack for [track-id-").concat(l.getTrackId(),"]")),typeof m=="boolean"&&m||(y=await this.mutex.lock("From P2PChannel.handleReplaceTrack"));try{var w;let M=Array.from(this.localTrackMap.entries()).find(k=>{let[,{track:V}]=k;return l===V});if(!this.connection||!M||this.state!==An.Connected)return void g();if(await((w=this.connection)===null||w===void 0?void 0:w.replaceTrack(l,M[1].id)),this.isPlanB){let k=M[1];k.id=l._mediaStreamTrack.id,this.localTrackMap.set(M[0],k)}if(M[0]===St.LocalVideoTrack&&!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding){let k=this.localTrackMap.get(St.LocalVideoLowTrack);if(k){let V=l._mediaStreamTrack.clone();k.track._originMediaStreamTrack.stop(),k.track._mediaStreamTrack=V,k.track._originMediaStreamTrack=V,await new Ft((K,q)=>{this.handleReplaceTrack(k.track,K,q,!0)})}}g()}catch(M){C(M)}finally{var b;(b=y)===null||b===void 0||b()}}),Ae(this,"handleGetRTCStats",l=>{l(this.statsCollector.getRTCStats())}),Ae(this,"handleGetLocalVideoStats",l=>{l(this.statsCollector.getLocalVideoTrackStats())}),Ae(this,"handleGetLocalAudioStats",l=>{l(this.statsCollector.getLocalAudioTrackStats())}),Ae(this,"handleGetRemoteVideoStats",l=>this.statsCollector.getRemoteVideoTrackStats(l.uid)[l.uid]),Ae(this,"handleGetRemoteAudioStats",l=>this.statsCollector.getRemoteAudioTrackStats(l.uid)[l.uid]),this.store=a,this.statsCollector=A,this.statsCollector.addP2PChannel(this),this.statsUploader=new p7(this.store),this.bindStatsUploaderEvents(),this.mutex=new Is("P2PChannel-mutex",this.store.clientId),this.isPlanB=!Bi().supportUnifiedPlan||Ie("CHROME_FORCE_PLAN_B")&&Od(),this.shouldForwardP2PCreation=Ie("FORWARD_P2P_CREATION")&&Bi().supportPCSetConfiguration&&RR(),this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection))}async startP2PConnection(a,A){var l;this.state=An.New,this._forceTurn=Fg(a),X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] forceTurn: ").concat(this._forceTurn));let g=this.shouldForwardP2PCreation&&((l=this.connection)===null||l===void 0?void 0:l.peerConnectionState)==="closed";if((!this.shouldForwardP2PCreation||g||A)&&((g||A)&&this.connection&&(X.warning("[".concat(this.store.clientId,"] P2PChannel.startP2PConnection ForwardP2P closed.")),this.resetConnection(this.connection)),this.connection=C_(this.store,a),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)),!this.connection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel.startConnection before P2PConnection initialization .");return this._pcStatsUploadType=Ie("NEW_ICE_RESTART")?$l.FIRST_CONNECTION:$l.OLD_FIRST_CONNECTION,this._isTryConnecting=!0,this._isStartRestartIce=!1,this._iceError=null,this.connection.setConfiguration(a),this.connection.establishPromise}async connect(a){if(!this.connection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel.connect before P2PChannel.startP2PConnection .");if(!this.isPreallocation()||this.state!==An.Connected){this.store.peerConnectionStart();let A=await this.connection.connect(a);return this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=An.Connected,A}if(this.connection instanceof Gc&&this.connection.checkDtlsParameters(a.dtlsParameters.fingerprints))return X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] dtls parameters mismatch, try next.")),tr.reportApiInvoke(this.store.sessionId,{name:Co.MISMATCH_DTLS_PARAMETERS,options:[a.dtlsParameters.fingerprints],tag:Gn.TRACER}).onSuccess(),void setTimeout(()=>{this.emit(hr.RequestReconnect)});await this.connection.updateRemoteConnect(a)}updateRemoteRTPCapabilities(a){let A=Array.from(this.localTrackMap.entries()).filter(C=>{var m;let[y]=C;return Rt(m=[St.LocalVideoLowTrack,St.LocalVideoTrack]).call(m,y)}),l=A.map(C=>{let[,{id:m}]=C;return m}),g=A.map(C=>{let[m]=C;return m});if(this.connection instanceof Gc||this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"){if(tr.updateRemoteRTPCapabilities(this.store.sessionId,{trackTypes:JSON.stringify(g),localCodecs:JSON.stringify(this.connection.localCodecs),remoteCodecs:JSON.stringify(a)}),!Rt(a).call(a,this.store.codec)){let C=["vp9","vp8","h264"].find(m=>Rt(a).call(a,m));C&&(this.store.codec=C,X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId," updateRemoteRTPCapabilities] default codec is not available, hence the fallback to ").concat(C,".")))}this.connection.updateRemoteRTPCapabilities(l,a)}}async getEstablishParams(){var a;return this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof Gc&&this.connection.peerConnectionState!=="closed"&&Rt(a=[An.New,An.Connected]).call(a,this.state)?this.connection.establishPromise:void 0}async publishDataChannel(a){if(!this.connection||this.state!==An.Connected){if(this.state===An.Disconnected)throw new nt(fe.UNEXPECTED_ERROR,"PeerConnection already disconnected.");return a.forEach(l=>{var g;Rt(g=this.pendingLocalDataChannels).call(g,l)||this.pendingLocalDataChannels.push(l)}),[]}let A=this.filterTobePublishedDataChannels(a);return A.length===0?[]:(A.forEach(l=>{let g=Date.now();this.store.publish(l.id.toString(),"datachannel",g)}),await this.connection.createDataChannels(this.store.uid,A),A.forEach(l=>{this.localDataChannels.push(l);let g=Date.now();this.store.publish(l.id+"","datachannel",void 0,g)}),a.map(l=>({streamId:l.id,ordered:l.ordered,maxRetransmits:l.maxRetransmits,metadata:l.metadata,channelId:l._originDataChannelId})))}publish(a,A,l){var g=this;return wA(function*(){let C=yield ri(g.mutex.lock("From P2PChannel.publish"));try{var m;let y=g.connection&&Rt(m=["disconnected","failed"]).call(m,g.connection.peerConnectionState);if(!g.connection||g.state!==An.Connected||y){if(g.state===An.Disconnected)throw new nt(fe.UNEXPECTED_ERROR,"PeerConnection already disconnected.");g.throwIfTrackTypeNotMatch(a);let b=a.filter(M=>g.pendingLocalTracks.indexOf(M)===-1);return g.pendingLocalTracks=g.pendingLocalTracks.concat(b),void(y&&(g._isWaitPcToRePub=!0))}g.store.pubId=g.store.pubId+1,aa.markPublishStart(g.store.clientId,g.store.pubId);let w=g.filterTobePublishedTracks(a,A,l);if(w.length===0)return void(yield ri(g.tryToUnmuteAudio(a)));yield*Z0(z2(g.doPublish(g.connection,w)))}finally{C()}})()}doPublish(a,A){var l=this;return wA(function*(){A.forEach(K=>{let{track:q,type:ce}=K,oe=Date.now();l.store.publish(q.getTrackId(),ce===St.LocalAudioTrack?"audio":"video",oe)}),l.bindLocalTrackEvents(A);let g=A.map(K=>{let{track:q}=K;return q}),C=yield ri(a.send(g,l.store.codec,l.store.audioCodec)),m=(yield ri(C.next())).value,y=l.createGatewayPublishMessage(A,m),w;try{w=yield y}catch(K){throw C.throw(K),(K==null?void 0:K.code)===fe.WS_ABORT&&A.forEach(q=>{let{track:ce}=q;l.pendingLocalTracks.indexOf(ce)===-1&&l.pendingLocalTracks.push(ce)}),l.unbindLocalTrackEvents(A),K}let b=l.mapPubResToRemoteConfig(y,w,g),M=(yield ri(C.next(b))).value;if(l.state===An.Disconnected)throw new nt(fe.UNEXPECTED_ERROR,"PeerConnection already disconnected.");Ie("ENABLE_VIDEO_SEI");let k=Ie("ENABLE_ENCODED_TRANSFORM"),V=Ie("ENABLE_AUDIO_METADATA");g.forEach(async K=>{let q=K.getRTCRtpTransceiver();if(!q||!k)return;let{interceptLocalVideoFrame:ce,interceptLocalAudioFrame:oe}=ln();K.trackMediaType===$t.VIDEO?await ce(q.sender,K):K.trackMediaType===$t.AUDIO&&await oe(q.sender,{metadata:V?()=>{let le=K.metadata.shift();return le&&le.value}:void 0})}),A.forEach(K=>{let{type:q}=K;l.statsCollector.addLocalStats(q)}),l.assignLocalTracks(A,M),l.statsUploader.startUploadOutboundStats(),A.forEach(K=>{let{track:q,type:ce}=K,oe=Date.now();l.store.publish(q.getTrackId(),ce===St.LocalAudioTrack?"audio":"video",void 0,oe)})})()}async updateVideoStreamParameter(a,A){let l=this.localTrackMap.get(A);if(!l||!this.connection)return;if(!(l.track instanceof Pi))return X.warn("[updateVideoStreamParameter]: track is not an instance of LocalVideoTrack");let{track:g}=l,C=function(m,y){let w={};return m.height&&m.width&&(w.scaleResolutionDownBy=pN(m,y)),w.maxFramerate=m.framerate?ZA(m.framerate):void 0,w.maxBitrate=m.bitrate?1e3*m.bitrate:void 0,w}(a,g);if(g._encoderConfig||(g._encoderConfig={}),A!==St.LocalVideoLowTrack||!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding)C.scaleResolutionDownBy!=null&&(g._encoderConfig.scaleResolutionDownBy=C.scaleResolutionDownBy);else{let m=g._originMediaStreamTrack;if(!m.canvas)return X.warn("[".concat(g.getTrackId(),"] no canvas on track"));(function(y,w){let b=y.canvas;w.width&&(b.width=ZA(w.width)),w.height&&(b.height=ZA(w.height)),w.framerate&&(b.stopCapture&&b.stopCapture(),b.stopCapture=h4(()=>{!b.startCapture&&b.stopCapture&&b.stopCapture(),b.startCapture&&b.startCapture()},ZA(w.framerate)))})(m,a)}C.maxBitrate!=null&&(g._encoderConfig.bitrateMax=C.maxBitrate/1e3),C.maxFramerate!=null&&(g._encoderConfig.frameRate&&typeof g._encoderConfig.frameRate=="object"?g._encoderConfig.frameRate.max=C.maxFramerate:g._encoderConfig.frameRate={max:C.maxFramerate}),X.debug("[".concat(g.getTrackId(),"] LowStreamEncoderConfig: , ").concat(JSON.stringify(g._encoderConfig))),await this.connection.updateRtpSenderEncodings(g)}publishLowStream(a){var A=this;return wA(function*(){if(!A.connection||A.state!==An.Connected)return;let l=yield ri(A.mutex.lock("Locking from P2PChannel.publishLowStream"));try{let C=A.localTrackMap.get(St.LocalVideoTrack);if(!C)throw new nt(fe.UNEXPECTED_ERROR,"Could not find high stream");if(A.localTrackMap.has(St.LocalVideoLowTrack))throw new nt(fe.UNEXPECTED_ERROR,"[".concat(A.store.clientId,"] Can't publish low stream when stream already publish"));let m=[{track:A.getLowVideoTrack(C.track,a),type:St.LocalVideoLowTrack}];if(yield*Z0(z2(A.doPublish(A.connection,m))),C.track.muted||!C.track.enabled){var g;let y=(g=A.localTrackMap.get(St.LocalVideoLowTrack))===null||g===void 0?void 0:g.id;y!==void 0&&(yield ri(A.connection.muteLocal([y])))}}finally{l()}})()}async republish(){this.pendingLocalTracks.length>0&&(X.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await rs(this,hr.RequestRePublish,this.pendingLocalTracks),this.emit(hr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[]),this.pendingLocalDataChannels.length>0&&(X.debug("Emit P2PChannelEvents.RequestRePublishDataChannel to republish datachannels."),await rs(this,hr.RequestRePublishDataChannel,this.pendingLocalDataChannels),this.pendingLocalDataChannels=[]),this._isWaitPcToRePub=!1}async reSubscribe(a){for(let A=this.pendingRemoteTracks.length-1;A>=0;A--){let{user:l,kind:g}=this.pendingRemoteTracks[A];(g!==$t.AUDIO||l._audio_added_&&l._audioSSRC)&&(g!==$t.VIDEO||l._video_added_&&l._videoSSRC)||this.pendingRemoteTracks.splice(A,1)}if(a)await rs(this,hr.RequestReSubscribe,this.pendingRemoteTracks);else for(let{user:A,kind:l}of this.pendingRemoteTracks)await this.subscribe(A,l,l===$t.VIDEO?A._videoSSRC:A._audioSSRC);this.pendingRemoteTracks.forEach(A=>{let{user:l}=A;this.emit(hr.MediaReconnectEnd,l.uid)}),this.pendingRemoteTracks=[]}async unpublish(a){if(!this.connection||this.state!==An.Connected)return void a.forEach(g=>{let C=this.pendingLocalTracks.indexOf(g);C!==-1&&this.pendingLocalTracks.splice(C,1)});let A=this.filterTobeUnpublishedTracks(a);if(A.length===0)return;let l=A.find(g=>g[0]==="videoLowTrack");return l&&l[1].track.close(),this.doUnpublish(this.connection,A)}async unpublishDataChannel(a){if(!this.connection||this.state!==An.Connected)return void a.forEach(l=>{let g=this.pendingLocalDataChannels.indexOf(l);g!==-1&&this.pendingLocalDataChannels.splice(g,1)});let A=this.filterTobeUnpublishedDataChannels(a);return A.length!==0?(A.forEach(l=>{let g=this.localDataChannels.indexOf(l);g!==-1&&this.localDataChannels.splice(g,1)}),this.localDataChannels.length===0&&await this.connection.stopDataChannels(this.store.uid),A.map(l=>l.id)):void 0}async unpublishLowStream(){if(!this.connection||this.state!==An.Connected)return;let a=this.localTrackMap.get(St.LocalVideoLowTrack);if(!a)return;a.track.close();let A=[[St.LocalVideoLowTrack,a]];return this.doUnpublish(this.connection,A)}async doUnpublish(a,A){let l=this.createGatewayUnpublishMessage(A);return await a.stopSending(A.map(g=>{let[,{id:C}]=g;return C})),this.withdrawLocalTracks(A),this.unbindLocalTrackEvents(A.map(g=>{let[C,{track:m}]=g;return{type:C,track:m}})),A.forEach(g=>{let[C]=g;this.statsCollector.removeLocalStats(C)}),this.localTrackMap.size===0&&this.statsUploader.stopUploadOutboundStats(),l}async subscribeDataChannel(a,A){if(!this.connection||this.state!==An.Connected)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");let l=A.filter(g=>{var C;return!((C=this.remoteDataChannelMap.get(a))!==null&&C!==void 0&&C.get(g.id))});if(l.length!==0)return await this.connection.createDataChannels(a.uid,l),l.forEach(g=>{var C;this.remoteDataChannelMap.has(a)?(C=this.remoteDataChannelMap.get(a))===null||C===void 0||C.set(g.id,g):this.remoteDataChannelMap.set(a,new Map([[g.id,g]]));let m=this.pendingRemoteDataChannels.findIndex(y=>{let{user:w,id:b}=y;return w.uid===a.uid&&b===g.id});m!==-1&&this.pendingRemoteDataChannels.splice(m,1)}),l.map(g=>g.id)}async subscribe(a,A,l,g,C){var m;if(!this.connection||this.state!==An.Connected)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");if((m=this.remoteUserMap.get(a))!==null&&m!==void 0&&m.has(A))return;let y,w,b,M,k=this.connection.getPreMedia(l);if(k)X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] preSSRCMap has ssrcId: ").concat(l,", no need to send sub to gateway.")),b=k.transceiver,y=k.track,w=k.mid,M=k.player,k.firstVideoRender&&this.store.firstVideoFrameDecoded(a.uid,{firstPreRender:k.firstVideoRender});else if(C){let q=C.find(oe=>{let{stream_type:le}=oe;return le===A});if(!q)throw new nt(fe.UNEXPECTED_ERROR,"Cannot subscribe to remote ".concat(A," for user: ").concat(a.uid," because subscribe answer from gateway does not contain stream_type: ").concat(A,"."));let ce=await this.connection.receive(A,q.ssrcs,String(a._uintid),q.attributes);(this.connection instanceof Gc||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(b=ce.transceiver),y=ce.track,w=ce.id}else{let q=await this.connection.receive(A,[{ssrcId:l,rtx:g}],String(a._uintid),void 0);(this.connection instanceof Gc||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(b=q.transceiver),y=q.track,w=q.id}if(A===$t.AUDIO?(a._audioTrack?a._audioTrack._updateOriginMediaStreamTrack(y):(a._audioTrack=new Og(y,a.uid,a._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(a._audioTrack.getTrackId()))),b&&a._audioTrack._updateRtpTransceiver(b),this.bindRemoteTrackEvents(a,a._audioTrack)):(a._videoTrack?a._videoTrack._updateOriginMediaStreamTrack(y):(a._videoTrack=new D2(y,a.uid,a._uintid,this.store,M),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(a._videoTrack.getTrackId())),a._videoTrack.once(wc.PLAY_START,()=>{this.store.firstVideoFrameDecoded(a.uid,{playStart:Date.now()})}),a._videoTrack.once(wc.PLAY_END,()=>{this.store.firstVideoFrameDecoded(a.uid,{playEnd:Date.now()}),this.reportVideoFirstFrameRender(a)}),M?a._videoTrack.once(wc.FIRST_FRAME_RENDER,()=>{this.store.firstVideoFrameDecoded(a.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(a)}):a._videoTrack.once(wc.FIRST_FRAME_DECODED,()=>{this.store.firstVideoFrameDecoded(a.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(a)})),b&&a._videoTrack._updateRtpTransceiver(b),this.bindRemoteTrackEvents(a,a._videoTrack)),b&&Ie("ENABLE_ENCODED_TRANSFORM")){let{interceptRemoteVideoFrame:q,interceptRemoteAudioFrame:ce}=ln();A==$t.VIDEO?await q(b.receiver,{onSei:Ie("ENABLE_VIDEO_SEI")&&(oe=>{var le;return(le=a._videoTrack)===null||le===void 0?void 0:le._onSei(oe)}),onFirstFrame:oe=>{var le;let pe=Array.from(Hs(le=this.remoteUserMap).call(le)).find(Se=>Se._videoSSRC===oe.ssrc);pe&&this.store.firstVideoFrameDecoded(pe.uid,{firstReceivedEncodedFrame:Date.now(),frameType:oe.type,rtpTimestamp:oe.rtpTimestamp,framePayloadType:oe.payloadType,frameDataLength:oe.length,mimeType:oe.mimeType})}}):A==$t.AUDIO&&await ce(b.receiver,{enableTopn:!!Ie("ENABLE_AUDIO_TOPN"),enableMetadata:!!Ie("ENABLE_AUDIO_METADATA"),enablePts:!!Ie("ENABLE_AUDIO_PTS"),onMetadata:oe=>{this.safeEmit(hr.AudioMetadata,oe)},onPts:oe=>{this.safeEmit(hr.AudioPts,oe)}})}let V=this.remoteUserMap.get(a);V?V.set(A,w):this.remoteUserMap.set(a,new Map([[A,w]])),this.statsCollector.addRemoteStats(a.uid),this.statsUploader.startUploadInboundStats();let K=this.pendingRemoteTracks.findIndex(q=>{let{user:ce,kind:oe}=q;return ce.uid===a.uid&&A===oe});K!==-1&&(this.pendingRemoteTracks.splice(K,1),this.emit(hr.MediaReconnectEnd,a.uid))}async massSubscribe(a){return this.massSubscribeNoLock(a)}async massSubscribeNoLock(a){if(!this.connection||this.state!==An.Connected)throw new nt(fe.INVALID_OPERATION,"Cannot subscribeAll remote users when peerConnection disconnected.");a=a.filter(C=>{var m;let{user:y,mediaType:w}=C;return!((m=this.remoteUserMap.get(y))!==null&&m!==void 0&&m.has(w))});let A=[],l=new Map;a.forEach(C=>{if(!this.connection)return;let m=this.connection.getPreMedia(C.ssrcId);if(m){let{track:y,mid:w,transceiver:b,player:M}=m;l.set(C.ssrcId,{track:y,id:w,transceiver:b,player:M})}else A.push(C)});let g=await this.connection.batchReceive(A.map(C=>{let{user:m,mediaType:y,ssrcId:w,rtxSsrcId:b}=C;return{kind:y,ssrcMsg:[{ssrcId:w,rtx:b}],mslabel:String(m._uintid)}}));A.forEach((C,m)=>{l.set(C.ssrcId,g[m])});for(let{user:C,mediaType:m,ssrcId:y}of a){let w=l.get(y);if(!w)return void X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] cannot find ").concat(C.uid," subscribe data,").concat(m,", ").concat(y));let{track:b,id:M,transceiver:k,player:V}=w;if(k&&Ie("ENABLE_ENCODED_TRANSFORM")){let{interceptRemoteVideoFrame:ce,interceptRemoteAudioFrame:oe}=ln();m==$t.VIDEO?await ce(k.receiver,{onSei:Ie("ENABLE_VIDEO_SEI")&&(le=>{var pe;return(pe=C._videoTrack)===null||pe===void 0?void 0:pe._onSei(le)}),onFirstFrame:le=>{var pe;let Se=Array.from(Hs(pe=this.remoteUserMap).call(pe)).find(be=>be._videoSSRC===le.ssrc);Se&&this.store.firstVideoFrameDecoded(Se.uid,{firstReceivedEncodedFrame:Date.now(),frameType:le.type,rtpTimestamp:le.rtpTimestamp,framePayloadType:le.payloadType,frameDataLength:le.length,mimeType:le.mimeType})}}):m==$t.AUDIO&&await oe(k.receiver,{enableTopn:!!Ie("ENABLE_AUDIO_TOPN"),enableMetadata:!!Ie("ENABLE_AUDIO_METADATA"),enablePts:!!Ie("ENABLE_AUDIO_PTS"),onMetadata:le=>{this.safeEmit(hr.AudioMetadata,le)},onPts:le=>{this.safeEmit(hr.AudioPts,le)}})}if(m===$t.AUDIO?(C._audioTrack?C._audioTrack._updateOriginMediaStreamTrack(b):(C._audioTrack=new Og(b,C.uid,C._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(C._audioTrack.getTrackId()))),k&&C._audioTrack._updateRtpTransceiver(k),this.bindRemoteTrackEvents(C,C._audioTrack)):(C._videoTrack?C._videoTrack._updateOriginMediaStreamTrack(b):(C._videoTrack=new D2(b,C.uid,C._uintid,this.store,V),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(C._videoTrack.getTrackId()))),k&&C._videoTrack._updateRtpTransceiver(k),this.bindRemoteTrackEvents(C,C._videoTrack)),Ie("ENABLE_VIDEO_SEI")&&k){let{interceptRemoteVideoFrame:ce,interceptRemoteAudioFrame:oe}=ln();m==$t.VIDEO?await ce(k.receiver,{onSei:le=>{var pe;(pe=C._videoTrack)===null||pe===void 0||pe._onSei(le)},onFirstFrame:le=>{var pe;let Se=Array.from(Hs(pe=this.remoteUserMap).call(pe)).find(be=>be._videoSSRC===le.ssrc);Se&&this.store.firstVideoFrameDecoded(Se.uid,{firstReceivedEncodedFrame:Date.now(),frameType:le.type,rtpTimestamp:le.rtpTimestamp,framePayloadType:le.payloadType,frameDataLength:le.length,mimeType:le.mimeType})}}):m==$t.AUDIO&&await oe(k.receiver)}let K=this.remoteUserMap.get(C);K?K.set(m,M):this.remoteUserMap.set(C,new Map([[m,M]])),this.statsCollector.addRemoteStats(C.uid),this.statsUploader.startUploadInboundStats();let q=this.pendingRemoteTracks.findIndex(ce=>{let{user:oe,kind:le}=ce;return oe.uid===C.uid&&m===le});q!==-1&&(this.pendingRemoteTracks.splice(q,1),this.emit(hr.MediaReconnectEnd,C.uid))}}async unsubscribe(a,A,l){let g=this.pendingRemoteTracks.filter(y=>{let{user:w,kind:b}=y;return A!==void 0?w.uid===a.uid&&A===b:w.uid===a.uid});if(g.forEach(y=>{let w=this.pendingRemoteTracks.indexOf(y);this.pendingRemoteTracks.splice(w,1)}),this.connection&&this.state===An.Connected||l||g.forEach(y=>{let{kind:w}=y;var b;if(w===$t.AUDIO)(b=a._audioTrack)===null||b===void 0||b._destroy(),a._audioTrack=void 0;else if(w===$t.VIDEO){var M;(M=a._videoTrack)===null||M===void 0||M._destroy(),a._videoTrack=void 0}}),!this.connection||this.state!==An.Connected)return;let C=this.filterTobeUnSubscribedTracks(a,A);if(C.length===0)return;await this.connection.stopReceiving(C.map(y=>{let[,{id:w}]=y;return w}));let m=this.createUnsubscribeMessage(C);return this.withdrawRemoteTracks(C),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),C.forEach(y=>{let[w,{kind:b}]=y;var M,k;if(b===$t.VIDEO&&w._videoSSRC&&((M=this.connection)===null||M===void 0||M.setStatsRemoteVideoIsReady(w._videoSSRC,!1)),b===$t.VIDEO)this.unbindRemoteTrackEvents(w._videoTrack),l||((k=w._videoTrack)===null||k===void 0||k._destroy(),w._videoTrack=void 0);else if(b===$t.AUDIO){var V;this.unbindRemoteTrackEvents(w._audioTrack),!l&&((V=w._audioTrack)===null||V===void 0||V._destroy(),w._audioTrack=void 0)}}),m}async unsubscribeDataChannel(a,A){if(A.forEach(C=>{let m=this.pendingRemoteDataChannels.findIndex(y=>y.id===C.id);m!==-1&&this.pendingRemoteDataChannels.splice(m,1)}),!this.connection)return;let l=this.filterTobeUnSubscribedDataChannels(a,A);if(l.length===0)return;A.forEach(C=>{C._close()});let g=this.remoteDataChannelMap.get(a);return l.forEach(C=>{g&&g.delete(C.id)}),g&&g.size===0&&(this.remoteDataChannelMap.delete(a),await this.connection.stopDataChannels(a.uid)),l.map(C=>C.id)}async massUnsubscribe(a){return this.massUnsubscribeNoLock(a)}async massUnsubscribeNoLock(a){let A=[];for(let{user:C,mediaType:m}of a){let y=this.pendingRemoteTracks.filter(w=>{let{user:b,kind:M}=w;return m!==void 0?b.uid===C.uid&&m===M:b.uid===C.uid});y.forEach(w=>{let b=this.pendingRemoteTracks.indexOf(w);this.pendingRemoteTracks.splice(b,1)}),A=A.concat(y)}if(!this.connection||this.state!==An.Connected)return void A.forEach(C=>{let{user:m,kind:y}=C;var w;if(y===$t.AUDIO)(w=m._audioTrack)===null||w===void 0||w._destroy(),m._audioTrack=void 0;else if(y===$t.VIDEO){var b;(b=m._videoTrack)===null||b===void 0||b._destroy(),m._videoTrack=void 0}});let l=$c(a).call(a,(C,m)=>{let{user:y,mediaType:w}=m,b=this.filterTobeUnSubscribedTracks(y,w);return C.concat(b)},[]);if(l.length===0)return;await this.connection.stopReceiving(l.map(C=>{let[,{id:m}]=C;return m}));let g=this.createUnsubscribeAllMessage(l);return this.withdrawRemoteTracks(l),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),l.forEach(C=>{let[m,{kind:y}]=C;var w,b;if(y===$t.VIDEO&&m._videoSSRC&&((w=this.connection)===null||w===void 0||w.setStatsRemoteVideoIsReady(m._videoSSRC,!1)),y===$t.VIDEO)this.unbindRemoteTrackEvents(m._videoTrack),(b=m._videoTrack)===null||b===void 0||b._destroy(),m._videoTrack=void 0;else if(y===$t.AUDIO){var M;this.unbindRemoteTrackEvents(m._audioTrack),(M=m._audioTrack)===null||M===void 0||M._destroy(),m._audioTrack=void 0}}),g}isPreSubScribe(a){return!this.connection||this.state!==An.Connected?!1:!!this.connection.getPreMedia(a)}async muteRemote(a,A){if(!this.connection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(a.uid,"."));if(!l.get(A))return void X.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."));let g=A===$t.VIDEO?a._videoSSRC:a._audioSSRC;g!==void 0&&this.connection.setStatsRemoteVideoIsReady(g,!1)}async unmuteRemote(a,A){return this.unmuteRemoteNoLock(a,A)}async unmuteRemoteNoLock(a,A){if(!this.connection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(a.uid,"."));l.get(A)||X.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."))}addAudioMetadata(a){let A=this.localTrackMap.get(St.LocalAudioTrack),l=A&&A.track;l&&l.metadata.push(a)}getAllTracks(a){let A=this.localTrackMap.get(St.LocalAudioTrack);if((A==null?void 0:A.track)instanceof Os){let l=A.track;return Array.from(this.localTrackMap.entries()).filter(g=>{let[C]=g;return C!==St.LocalAudioTrack}).filter(g=>{let[C]=g;return!(a&&C===St.LocalVideoLowTrack)}).map(g=>{let[,{track:C}]=g;return C}).concat(l.trackList)}return Array.from(this.localTrackMap.entries()).filter(l=>{let[g]=l;return!(a&&g===St.LocalVideoLowTrack)}).map(l=>{let[,{track:g}]=l;return g})}getAllDataChannels(){return this.localDataChannels}reportPublishEvent(a,A,l,g,C){if(a){let y=this.localTrackMap.get(St.LocalAudioTrack),w=g?this.localTrackMap.get(St.LocalVideoLowTrack):this.localTrackMap.get(St.LocalVideoTrack);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.track.getTrackLabel(),videoName:w==null?void 0:w.track.getTrackLabel(),screenshare:(w==null?void 0:w.track._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}else{var m;l||(l=[]);let y=l.find(b=>b instanceof xt),w=g?(m=this.localTrackMap.get(St.LocalVideoTrack))===null||m===void 0?void 0:m.track:l.find(b=>b instanceof Pi);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.getTrackLabel(),videoName:w==null?void 0:w.getTrackLabel(),screenshare:(w==null?void 0:w._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}}reportSubscribeEvent(a,A,l,g){let C=g===$t.VIDEO?l._videoSSRC:l._audioSSRC;C&&tr.subscribe(this.store.sessionId,{succ:a,ec:A,video:g===$t.VIDEO,audio:g===$t.AUDIO,peerid:l.uid,subscribeRequestid:C,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,C),preSsrc:this.isPreSubScribe(C)})}reset(){X.debug("[".concat(this.store.clientId,"] P2PChannel.reset")),this.mutex=new Is("P2PChannel-mutex",this.store.clientId),this.connection&&(this.resetConnection(this.connection),this.connection=void 0),this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.statsUploader.stopUploadBaseStats(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();let a=this.localTrackMap.get(St.LocalAudioTrack);if((a==null?void 0:a.track)instanceof Os){if(a.track.trackList.length>0){let A=a.track;a.track.trackList.forEach(l=>{A.removeAudioTrack(l)})}a.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.iceFailedCount=0,this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.localDataChannels=[],this.remoteDataChannelMap.clear(),this.pendingLocalDataChannels=[],this.pendingRemoteDataChannels=[],this.state=An.Disconnected}getStats(){var a;return(a=this.connection)===null||a===void 0?void 0:a.getStats()}getRemoteVideoIsReady(a){var A;return((A=this.connection)===null||A===void 0?void 0:A.getRemoteVideoIsReady(a))||!1}getLocalAudioVolume(){let a=this.localTrackMap.get(St.LocalAudioTrack);if(a)return a.track.getVolumeLevel()}getLocalVideoSize(){let a=this.localTrackMap.get(St.LocalVideoTrack);if(a)return{width:a.track.videoWidth||0,height:a.track.videoHeight||0}}getEncoderConfig(a){let A=this.localTrackMap.get(a);return A&&A.track instanceof Pi||A&&A.track instanceof xt?A.track._encoderConfig:void 0}getLocalMedia(a){return this.localTrackMap.get(a)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}async hasRemoteMediaWithLock(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}getRemoteMedia(a){var A;let l=Array.from(Hs(A=this.remoteUserMap).call(A)).find(g=>g.uid===a);return l?{audioTrack:l.audioTrack,audioSSRC:l._audioSSRC,videoTrack:l.videoTrack,videoSSRC:l._videoSSRC}:{}}getAudioLevels(){let a=Array.from(this.remoteUserMap.entries()).map(l=>{let[g]=l;return{uid:g.uid,level:g.audioTrack?100*g.audioTrack._source.getAccurateVolumeLevel():0}}),A=this.localTrackMap.get(St.LocalAudioTrack);return A&&a.push({level:100*A.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),a=LE(a).call(a,(l,g)=>l.level-g.level),a}async disconnectForReconnect(){this.connection&&(X.debug("[".concat(this.store.clientId,"] P2PChannel.disconnectForReconnect closing P2PConnection")),this.state=An.Reconnecting,Ie("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A]=a;var l;A._videoTrack&&A._videoTrack._player&&((l=A._videoTrack._player.getVideoElement())===null||l===void 0||l.pause(),A._videoTrack._player.isKeepLastFrame=!0,A._videoTrack._originMediaStreamTrack.stop())}),this.resetConnection(this.connection),this.connection=void 0,this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)),this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(a=>{var A;let[l,{track:g}]=a;switch(l){case St.LocalVideoTrack:Rt(A=g._hints).call(A,$i.LOW_STREAM)?g.close():this.pendingLocalTracks.push(g);break;case St.LocalAudioTrack:g instanceof Os?this.pendingLocalTracks=this.pendingLocalTracks.concat(g.trackList):this.pendingLocalTracks.push(g);case St.LocalVideoLowTrack:}}),this.emit(hr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;Array.from(Hs(l).call(l)).forEach(g=>{this.setPendingRemoteMedia(A,g)}),this.emit(hr.MediaReconnectStart,A.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.localDataChannels.length!==0&&(this.localDataChannels.forEach(a=>{this.pendingLocalDataChannels.push(a)}),this.localDataChannels.length=0),this.remoteDataChannelMap.size!==0&&(Array.from(this.remoteDataChannelMap.entries()).forEach(a=>{let[A,l]=a;Array.from(Hs(l).call(l)).forEach(g=>{this.setPendingRemoteDataChannel(A,g)})}),this.remoteDataChannelMap.clear()),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),X.debug("[".concat(this.store.clientId,"] P2PChannel disconnected, waiting to reconnect.")))}hasPendingRemoteDataChannel(a,A){for(let l of this.pendingRemoteDataChannels){let{user:g,id:C}=l;if((a instanceof xg?a.uid:a)===g.uid&&C===A)return!0}return!1}setPendingRemoteDataChannel(a,A){this.hasPendingRemoteDataChannel(a,A)||this.pendingRemoteDataChannels.push({user:a,id:A})}hasPendingRemoteMedia(a,A){for(let l of this.pendingRemoteTracks){let{user:g,kind:C}=l;if((a instanceof xg?a.uid:a)===g.uid&&A===C)return!0}return!1}setPendingRemoteMedia(a,A){this.hasPendingRemoteMedia(a,A)||this.pendingRemoteTracks.push({user:a,kind:A})}restartICE(a){var A=this;return wA(function*(){if(!A.connection||A.state!==An.Connected)return;let l=yield ri(A.mutex.lock("From P2PChannel.restartICE")),g;try{g=yield ri(A.connection.restartICE(a));let m=yield ri(g.next());if(m.done)return;let y=m.value,w=yield y;switch(nA(A.connection)&&A.reportPCStats(Date.now(),!1,A._pcStatsUploadType),a){case Ls.UDP_TCP_RELAY:A._pcStatsUploadType=$l.UDP_TCP_RESTART;break;case Ls.TCP_RELAY:A._pcStatsUploadType=$l.TCP_RESTART;break;case Ls.RELAY:A._pcStatsUploadType=$l.RELAY_RESTART;break;default:A._pcStatsUploadType=$l.OLD_RESTART}A._isTryConnecting=!0,g.next(w)}catch(m){var C;(C=g)===null||C===void 0||C.throw(m)}finally{l()}})()}getUplinkNetworkQuality(){if(!this.connection)return 0;let a=this.connection.getStats(),A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalAudioTrack),g=a.videoSend.find(q=>q.ssrc===(A==null?void 0:A.ssrcs[0].ssrcId)),C=a.audioSend.find(q=>q.ssrc===(l==null?void 0:l.ssrcs[0].ssrcId));if(!g||!C)return 1;let m=JA(this,hr.NeedSignalRTT),y=g?g.rttMs:void 0,w=C?C.rttMs:void 0,b=y&&w?(y+w)/2:y||w,M=(b&&m?(b+m)/2:b||m)||0,k=100*a.sendPacketLossRate*.7/50+.3*M/1500,V=k<.17?1:k<.36?2:k<.59?3:k<.1?4:5,K=A==null?void 0:A.track;if(K&&K._encoderConfig&&K._hints.indexOf($i.SCREEN_TRACK)===-1){let q=K._encoderConfig.bitrateMax,ce=a.bitrate.actualEncoded;if(q&&ce){let oe=(1e3*q-ce)/(1e3*q);return AN[oe<.15?0:oe<.3?1:oe<.45?2:oe<.6?3:4][V]}}return V}getDownlinkNetworkQuality(){if(!this.connection)return 0;let a=this.connection.getStats(),A=0;return Array.from(this.remoteUserMap.entries()).forEach(l=>{let[g]=l,C=g._audioSSRC,m=g._videoSSRC,y=a.audioRecv.find(ce=>ce.ssrc===C),w=a.videoRecv.find(ce=>ce.ssrc===m);if(!y&&!w)return void(A+=1);let b=JA(this,hr.NeedSignalRTT),M=a.rtt,k=(M&&b?(M+b)/2:M||b)||0,V=y?y.jitterMs:void 0,K=a.recvPacketLossRate,q=.7*K*100/50+.3*k/1500;V&&(q=.6*K*100/50+.2*k/1500+.2*V/400),A+=q<.1?1:q<.17?2:q<.36?3:q<.59?4:5}),this.remoteUserMap.size>0?Math.round(A/this.remoteUserMap.size):A}async muteLocalTrack(a){return new Ft((A,l)=>{this.handleMuteLocalTrack(a,A,l)})}async replaceTrack(a,A){var l;if(X.debug("[".concat(this.store.clientId,"] P2PChannel replaceTrack from [").concat(a.getTrackId(),"] to [").concat(A.getTrackId(),"]")),!this.connection||this.state!==An.Connected)return;let g=Array.from(this.localTrackMap.entries()).find(m=>{let[,{track:y}]=m;return a===y});if(!g)return;let C=g[0];if(a!==A&&(this.unbindLocalTrackEvents([{track:a,type:C}]),this.bindLocalTrackEvents([{track:A,type:C}]),g[1].track=A),await((l=this.connection)===null||l===void 0?void 0:l.replaceTrack(A,g[1].id)),this.isPlanB){let m=g[1];m.id=A._mediaStreamTrack.id,this.localTrackMap.set(C,m)}if(C===St.LocalVideoTrack&&!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding){let m=this.localTrackMap.get(St.LocalVideoLowTrack);if(m){let y=a._mediaStreamTrack.clone();m.track._originMediaStreamTrack.stop(),m.track._mediaStreamTrack=y,m.track._originMediaStreamTrack=y,await new Ft((w,b)=>{this.handleReplaceTrack(m.track,w,b,!0)})}}}filterTobePublishedTracks(a,A,l){let g=[],C=this.getAllTracks();a=ns(a=a.filter(b=>C.indexOf(b)===-1));let m,y=!1,w=this.localTrackMap.get(St.LocalAudioTrack);for(let b of a){if(b instanceof Pi&&(this.localTrackMap.has(St.LocalVideoTrack)||y?new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(g.push({track:b,type:St.LocalVideoTrack}),y=!0),A)){let M=this.getLowVideoTrack(b,l);g.push({track:M,type:St.LocalVideoLowTrack})}if(b instanceof xt)if(w){let M=w.track;if(M instanceof Os)kN([b]),M.addAudioTrack(b),this.bindLocalAudioTrackEvents(b,!0);else{let k=j2([M,b]);X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(k.getTrackId(),"]")),this.replaceTrack(M,k)}}else m instanceof Os?(kN([b]),m.addAudioTrack(b)):m||!b._useAudioElement&&Bi().webAudioMediaStreamDest&&!b._bypassWebAudio?m=j2(m?[b,m]:[b]):m=b}return m&&(X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will send audioTrack [").concat(m.getTrackId(),"]")),g.push({track:m,type:St.LocalAudioTrack})),g}filterTobeUnpublishedTracks(a){let A=[],l=this.getAllTracks();a=ns(a=a.filter(g=>l.indexOf(g)!==-1));for(let g of a){if(g instanceof xt){let C=this.localTrackMap.get(St.LocalAudioTrack);if(!C)continue;C.track instanceof Os?(C.track.removeAudioTrack(g),this.unbindLocalAudioTrackEvents(g),C.track.trackList.length===0&&(A.push([St.LocalAudioTrack,C]),C.track.close())):A.push([St.LocalAudioTrack,C])}if(g instanceof Pi){let C=this.localTrackMap.get(St.LocalVideoTrack);if(!C)continue;A.push([St.LocalVideoTrack,C]);let m=this.localTrackMap.get(St.LocalVideoLowTrack);m&&A.push([St.LocalVideoLowTrack,m])}}return A}filterTobePublishedDataChannels(a){return a=(a=ns(a)).filter(A=>this.localDataChannels.findIndex(l=>l.id===A.id)===-1)}filterTobeUnpublishedDataChannels(a){return a=(a=(a=ns(a)).filter(A=>this.localDataChannels.indexOf(A)!==-1)).filter(A=>A._originDataChannel)}bindLocalTrackEvents(a){a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.addListener(nr.GET_STATS,this.handleGetLocalVideoStats),l.addListener(nr.GET_RTC_STATS,this.handleGetRTCStats),l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.addListener(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.bindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(a,A){a instanceof Os?a.trackList.forEach(l=>{l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),a.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),A||(a.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),a.addListener(nr.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack)))}unbindLocalTrackEvents(a){a||(a=Array.from(this.localTrackMap.entries()).map(A=>{let[l,{track:g}]=A;return{track:g,type:l}})),a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.off(nr.GET_STATS,this.handleGetLocalVideoStats),l.off(nr.GET_RTC_STATS,this.handleGetRTCStats),l.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.off(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.off(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.unbindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(a){a instanceof Os?a.trackList.forEach(A=>{A.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),A.off(nr.GET_STATS,this.handleGetLocalAudioStats),A.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.off(nr.GET_STATS,this.handleGetLocalAudioStats),a.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),a.off(nr.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack),a.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(a,A){A instanceof D2&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteVideoStats(a))}),A instanceof Og&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteAudioStats(a))})}unbindRemoteTrackEvents(a){a&&a.removeAllListeners(nr.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;l.has($t.AUDIO)&&this.unbindRemoteTrackEvents(A._audioTrack),l.has($t.VIDEO)&&this.unbindRemoteTrackEvents(A._videoTrack)})}createGatewayPublishMessage(a,A){return a.map((l,g)=>{var C;let m,y,{track:w,type:b}=l;switch(b){case St.LocalAudioTrack:m=an.Audio,y={dtx:w instanceof gn&&w._config.DTX,hq:!1,lq:!1,stereo:!1,speech:!1};break;case St.LocalVideoTrack:m=Rt(C=w._hints).call(C,$i.SCREEN_TRACK)?an.Screen:an.High,y=IA(IA({},o7(w)),{},{codec:this.store.codec,svc_mode:k2()});break;case St.LocalVideoLowTrack:m=an.Low,y=IA(IA({},o7(w)),{},{codec:this.store.codec,svc_mode:k2()})}return{stream_type:m,attributes:y,ssrcs:A[g]}})}createGatewayUnpublishMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}assignLocalTracks(a,A){a.forEach((l,g)=>{let{track:C,type:m}=l;this.localTrackMap.set(m,{track:C,id:A[g].id,ssrcs:A[g].localSSRC})})}withdrawLocalTracks(a){a.forEach(A=>{let[l]=A;this.localTrackMap.delete(l)})}bindConnectionEvents(a){a.onConnectionStateChange=async A=>{if(X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onConnectionStateChange(").concat(A,")")),this.emit(hr.PeerConnectionStateChange,A),A==="connecting"&&a instanceof Gc&&!uo()&&Ie("FIRST_TCP_CANDIDATE")&&window.setTimeout(()=>{A==="connecting"&&a.extendCandidate()},Ie("FIRST_TCP_CANDIDATE_INTERVAL")),A!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),A==="connected"&&(this._restartTimer&&(window.clearTimeout(this._restartTimer),this._restartTimer=void 0),a instanceof Gc&&f7(a,!0),this._isTryConnecting&&this.reportPCStats(Date.now(),!0,this._pcStatsUploadType),this._isTryConnecting=!1,this._isStartRestartIce=!1,this._pcStatsUploadType=$l.DISCONNECTED_OR_FAILED,JA(this,hr.QueryClientConnectionState)==="CONNECTED"&&this._isWaitPcToRePub)){let l=this.pendingLocalTracks.map(C=>C.getTrackId()),g=this.pendingLocalDataChannels.map(C=>"dc_".concat(C.id));tr.reportApiInvoke(this.store.sessionId,{name:Co.REPUB_AFTER_PC_CONNECTED,options:l.concat(g),tag:Gn.TRACER}).onSuccess(),this.republish()}if(Ie("NEW_ICE_RESTART")&&a instanceof Gc&&!uo()&&!this._forceTurn&&!this.store.useDcSignal){if(Rt(Ch).call(Ch,A)){if(this._isStartRestartIce)return;this._isStartRestartIce=!0;let l=C=>{nA(a)&&(X.debug("[".concat(this.store.clientId,"] [P2PChannel] try to restartICE, type is ").concat(C)),JA(this,hr.QueryClientConnectionState)==="CONNECTED"&&this.emit(hr.RequestRestartICE,C))},g=()=>{nA(a)&&(this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),X.debug("[".concat(this.store.clientId,"] P2PConnection disconnected timeout, force reconnect")),setTimeout(()=>this.emit(hr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())};return void(this._restartTimer=window.setTimeout(()=>{_7(a,l,g)},800))}}else{if(A==="disconnected"&&a.iceConnectionState==="disconnected")return setTimeout(()=>{a.iceConnectionState==="disconnected"&&Ie("ICE_RESTART")&&JA(this,hr.QueryClientConnectionState)==="CONNECTED"&&this.emit(hr.RequestRestartICE)},800),void setTimeout(()=>{a.peerConnectionState==="disconnected"&&(X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection disconnected timeout 4000ms, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),this._isTryConnecting=!1,setTimeout(()=>this.emit(hr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())},4e3);A==="failed"&&(X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection state failed, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),setTimeout(()=>this.emit(hr.P2PLost),0),this.iceFailedCount+=1,await this.requestReconnect())}},a.onICEConnectionStateChange=A=>{A!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(A,")")),tr.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:A,tag:Gn.TRACER}).onSuccess(),this.emit(hr.IceConnectionStateChange,A)},a.onICETransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(A,")"))},a.onDTLSTransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(A,")"))},a.onDTLSTransportError=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(A,")"))},a.onFirstAudioDecoded=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(m=>m._audioSSRC===A);var C;g&&(this.store.subscribe(g.uid,"audio",void 0,void 0,void 0,Date.now()),(C=g.audioTrack)===null||C===void 0||C.emit(wc.FIRST_FRAME_DECODED),tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_DECODE,Eo.FIRST_AUDIO_DECODE,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId}))},a.onFirstAudioReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._audioSSRC===A);g&&tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_RECEIVED,Eo.FIRST_AUDIO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId})},a.onFirstVideoDecoded=(A,l,g)=>{var C;let m=Array.from(Hs(C=this.remoteUserMap).call(C)).find(y=>y._videoSSRC===A);m&&this.store.firstVideoFrameDecoded(m.uid,{firstDecoded:Date.now()}),this.reportVideoFirstFrameDecoded(A,l,g)},a.onFirstVideoRender=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&(this.store.firstVideoFrameDecoded(g.uid,{firstPreRender:Date.now()}),this.reportVideoFirstFrameRender(g),this.emit(hr.FirstVideoPreRender,g.uid,A))},a.onFirstVideoReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&(this.store.firstVideoFrameDecoded(g.uid,{firstReceived:Date.now()}),tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_VIDEO_RECEIVED,Eo.FIRST_VIDEO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId}))},a.onFirstVideoBufferReady=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&this.emit(hr.FirstVideoBufferReady,g.uid,A)},a.onSelectedLocalCandidateChanged=(A,l)=>{let g=A.candidateType==="relay",C=l.candidateType==="relay";l.candidateType!=="unknown"&&g===C||this.emit(hr.ConnectionTypeChange,g),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onSelectedRemoteCandidateChanged=(A,l)=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onFirstVideoDecodedTimeout=A=>{this.reportVideoFirstFrameDecoded(A,void 0,void 0,!0)},a.getLocalVideoStats=()=>{let A=this.statsCollector.getLocalVideoTrackStats(),l=this.statsCollector.getRTCStats();return IA(IA({},A),l)},a.onICECandidateError=A=>{this._iceError=A}}fallbackConnection(){X.debug("[".concat(this.store.clientId,"] [P2PChannel] try to fallback connection")),this.state===An.Connected?(X.debug("[".concat(this.store.clientId,"] [P2PChannel] fallback to websocket but P2PChannel state still connected, disconnect first")),this.disconnectForReconnect()):(this.connection&&this.resetConnection(this.connection),this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)))}resetConnection(a){a instanceof Gc&&function(A){Vg.delete(A.id),f7(A)}(a),a.close(),this.emit(hr.PeerConnectionStateChange,"closed"),function(A){A.onConnectionStateChange=void 0,A.onICEConnectionStateChange=void 0,A.onICETransportStateChange=void 0,A.onDTLSTransportStateChange=void 0,A.onDTLSTransportError=void 0,A.onFirstAudioDecoded=void 0,A.onFirstAudioReceived=void 0,A.onFirstVideoDecoded=void 0,A.onFirstVideoReceived=void 0,A.onSelectedLocalCandidateChanged=void 0,A.onSelectedRemoteCandidateChanged=void 0,A.onFirstVideoDecodedTimeout=void 0,A.getLocalVideoStats=void 0}(a),this._isWaitPcToRePub=!1}filterTobeMutedTracks(a){let A=[];if(this.getAllTracks().indexOf(a)===-1)return A;let l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive||A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g&&(A.push(g),g[0]===St.LocalVideoTrack)){let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}return A}filterTobeUnmutedTracks(a){let A=[],l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive&&A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g)if(g[0]===St.LocalVideoTrack){A.push(g);let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}else A.push(g);return A}createMuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}createUnmuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}filterTobeUnSubscribedTracks(a,A){let l=[],g=this.remoteUserMap.get(a);if(!g)return l;if(A){let C=g.get(A);if(!C)return l;l.push([a,{kind:A,id:C}])}else Array.from(g.entries()).forEach(C=>{let[m,y]=C;l.push([a,{kind:m,id:y}])});return l}filterTobeUnSubscribedDataChannels(a,A){let l=[];return A.forEach(g=>{var C;(C=this.remoteDataChannelMap.get(a))!==null&&C!==void 0&&C.has(g.id)&&l.push(g)}),l}createUnsubscribeMessage(a){let A=[];return a.forEach(l=>{let[g,{kind:C,id:m}]=l;switch(C){case $t.VIDEO:return void(g._videoSSRC&&A.push({stream_type:$t.VIDEO,ssrcId:g._videoSSRC}));case $t.AUDIO:return void(g._audioSSRC&&A.push({stream_type:$t.AUDIO,ssrcId:g._audioSSRC}))}}),A}createUnsubscribeAllMessage(a){let A=new Map;return a.forEach(l=>{let[g,{kind:C}]=l;if(A.has(g)){let m=A.get(g);C===$t.VIDEO?m|=na.Video:m|=na.Audio,A.set(g,m)}else C===$t.VIDEO?A.set(g,na.Video):A.set(g,na.Audio)}),{users:Array.from(A.entries()).map(l=>{let[g,C]=l;return{stream_id:g.uid,stream_type:C}})}}withdrawRemoteTracks(a){a.forEach(A=>{let[l,{kind:g}]=A,C=this.remoteUserMap.get(l);C&&(C.delete(g),Array.from(C.entries()).length===0&&this.remoteUserMap.delete(l))})}async updateBitrateLimit(a){let A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalVideoLowTrack);A&&(await A.track.setBitrateLimit(a.uplink),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(A.track,g,C,!0)})),l&&a.low_stream_uplink&&(await l.track.setBitrateLimit({max_bitrate:a.low_stream_uplink.bitrate,min_bitrate:a.low_stream_uplink.bitrate||0}),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(l.track,g,C,!0)}))}isP2PDisconnected(){return this.connection?this.connection.peerConnectionState!=="connected":!0}isPreallocation(){return!(!this.connection||!("name"in this.connection)||this.connection.name!=="DataChannelConnection"||this.connection.peerConnectionState==="closed")||this.connection instanceof Gc&&this.connection.isPreallocation}isPreSub(){return(this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof Gc)&&this.connection.isPreSub()}isPreRender(){return this.connection instanceof Gc&&this.connection.isPreRender}mapPubResToRemoteConfig(a,A,l){return a.map((g,C)=>{var m;let{stream_type:y}=g,w=(m=A.find(b=>{let{stream_type:M}=b;return y===M}))===null||m===void 0?void 0:m.attributes;if(w&&Ie("DISABLE_SCREEN_SHARE_REMB")){let b=l[C]._hints;(Rt(b).call(b,$i.SCREEN_TRACK)||Rt(b).call(b,$i.SCREEN_LOW_TRACK))&&(w.remb=!1,X.debug("disable remb for screen share, hints:",b))}return w})}async tryToUnmuteAudio(a){for(let l=0;l{let[,{id:y}]=m;return y})));let C=this.createUnmuteMessage(g);return void await Wn(this,hr.RequestUnmuteLocal,C)}}bindStatsUploaderEvents(){this.statsUploader.requestStats=()=>this.getStats(),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=a=>{var A;return!((A=this.connection)===null||A===void 0||!A.getRemoteVideoIsReady(a))},this.statsUploader.requestUpload=(a,A)=>this.emit(hr.RequestUpload,a,A),this.statsUploader.requestUploadStats=a=>this.emit(hr.RequestUploadStats,a),this.statsUploader.requestAllTracks=()=>this.getAllTracks(),this.statsUploader.requestTransportStats=()=>{var a;return{connectState:((a=this.connection)===null||a===void 0?void 0:a.peerConnectionState)||"closed"}}}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await Ks(Y1(this.dtlsFailedCount,os)),this.emit(hr.RequestReconnect)}async reconnectP2P(){let a=Array.from(this.localTrackMap.entries()),A=this.createGatewayUnpublishMessage(a);Array.from(this.remoteUserMap.entries()),A.length>0&&await rs(this,hr.RequestUnpublishForReconnectPC,A),this.disconnectForReconnect(),this.emit(hr.RequestReconnectPC)}canPublishLowStream(){return this.localTrackMap.has(St.LocalVideoTrack)||this.pendingLocalTracks.some(a=>a instanceof Pi)}throwIfTrackTypeNotMatch(a){if(a.filter(A=>A instanceof Pi).length>1)throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(a.filter(A=>A instanceof xt).length>1&&(a.some(A=>A instanceof xt&&A._bypassWebAudio)||!Bi().webAudioMediaStreamDest))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(let A of a){if(A instanceof Pi&&this.pendingLocalTracks.some(l=>l instanceof Pi))throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(A instanceof xt&&this.pendingLocalTracks.some(l=>l instanceof xt)&&(!Bi().webAudioMediaStreamDest||A._bypassWebAudio||this.pendingLocalTracks.some(l=>l instanceof xt&&l._bypassWebAudio)))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(a,A){var l;let g=!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding,C=IA(IA({},{width:160,height:120,framerate:15,bitrate:50}),A),m;m=g?a._mediaStreamTrack.clone():PN(a,C);let y=yn(8,"track-low-"),w=new Pi(m,IA(IA({},g&&{scaleResolutionDownBy:pN(C,a)}),{},{frameRate:C.framerate,bitrateMax:C.bitrate,bitrateMin:C.bitrate}),void 0,void 0,y);return w.on(Wl.TRANSCEIVER_UPDATED,b=>{a._updateRtpTransceiver(b,bg.LOW_STREAM)}),w._hints.push($i.LOW_STREAM),Rt(l=a._hints).call(l,$i.SCREEN_TRACK)&&w._hints.push($i.SCREEN_LOW_TRACK),a.on("sei-to-send",b=>{w.emit("sei-to-send",b)}),a.addListener(nr.NEED_CLOSE,()=>{w.close()}),w}async globalLock(){return this.mutex.lock("From P2PChannel.globalLock")}async reportPCStats(a,A,l){let g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;if(this.connection&&this.connection instanceof Gc){var C,m,y,w;let b=this.store.keyMetrics.descriptionStart||0,{iceConnectionState:M,dtlsTransportState:k,peerConnectionState:V}=this.connection,{local:K,remote:q}=await this.connection.getSelectedCandidatePair();tr.pcStats(this.store.sessionId,{startTime:b,eventElapse:a-b||0,iceconnectionsate:M,dtlsstate:k,connectionstate:V,intSucc:A?1:2,error:this._iceError||g||"",selectedLocalCandidateProtocol:(C=K==null?void 0:K.protocol)!==null&&C!==void 0?C:"",selectedLocalCandidateType:(m=K.candidateType)!==null&&m!==void 0?m:"",selectedLocalCandidateAddress:"".concat(K.address,":").concat(K.port),selectedRemoteCandidateProtocol:(y=q.protocol)!==null&&y!==void 0?y:"",selectedRemoteCandidateType:(w=q.candidateType)!==null&&w!==void 0?w:"",selectedRemoteCandidateAddress:"".concat(q.address,":").concat(q.port),restartCnt:l,preallocation:this.connection.isPreallocation}),this._iceError=null}}reportVideoFirstFrameRender(a){let A=this.store.keyMetrics,l=A.firstVideoFrameDecoded.find(k=>k.userId===a.uid);if(!l)return;let{isInternalUpload:g,isExternalUpload:C}=l;if(g&&C)return;let{subscribeEnd:m,firstPreRender:y,peerPublishDuration:w,peerPubStatusMs:b}=l,{firstRender:M=0}=l;if(m&&(M||y)&&w&&b){l.isInternalUpload=!0;let{playEnd:k}=l;k&&(l.isExternalUpload=!0);let{firstPreRender:V=0}=l;M=V||M;let K=a.videoTrack,q={peer:a._uintid,width:(K==null?void 0:K._videoWidth)||0,height:(K==null?void 0:K._videoHeight)||0,ssrc:a._videoSSRC||0,p2pid:this.store.p2pId,peerPublishDuration:w,peerPubStatusMs:b,joinChannelStart:A.joinStart||0,preloadStart:A.preloadStart||0,preloadEnd:A.preloadEnd||0,apStart:A.requestAPStart||0,apEnd:A.requestAPEnd||0,suaEnd:A.requestSUAEnd||0,beforeConnect:A.beforeConnect||0,peerReceiver:A.peerReceiver||0,ice:A.iceConnectionEnd||0,pc:A.peerConnectionEnd||0,signalConnected:A.signalConnected||0,joinReq:A.joinReq||0,joinRes:A.joinRep||0,userJoinNotify:l.userJoinNotify||0,videoAddNotify:l.videoAddNotify||0,subscribeStart:l.subscribeStart||0,subscribeEnd:l.subscribeEnd||0,firstReceived:l.firstReceived||0,firstDecoded:l.firstDecoded||0,firstPreRender:V||0,firstRender:k?Math.max(M,k):Math.max(M,m),playStart:l.playStart||0,playEnd:l.playEnd||0,isPreSub:!(!a._videoSSRC||!this.isPreSubScribe(a._videoSSRC)),isPrePc:this.isPreallocation(),isPreInstantVideo:Lf(this.store),firstReceivedEncodedFrame:l.firstReceivedEncodedFrame||0,frameType:l.frameType||"",rtpTimestamp:l.rtpTimestamp||0,framePayloadType:l.framePayloadType||0,frameDataLength:l.frameDataLength||0,mimeType:l.mimeType||""};tr.firstXLAPeerFirstVideoFrame(this.store.sessionId,q)}}reportVideoFirstFrameDecoded(a,A,l,g){var C;let m=Array.from(Hs(C=this.remoteUserMap).call(C)).find(y=>y._videoSSRC===a);if(m){g||this.store.subscribe(m.uid,"video",void 0,void 0,void 0,void 0,Date.now());let y=this.store.keyMetrics,w=y.subscribe.find(b=>b.userId===m.uid&&b.type==="video");tr.firstRemoteVideoDecode(this.store.sessionId,Cs.FIRST_VIDEO_DECODE,Eo.FIRST_VIDEO_DECODE,{peer:m._uintid,videowidth:A,videoheight:l,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId,apEnd:y.requestAPEnd||0,apStart:y.requestAPStart||0,joinGwEnd:y.joinGatewayEnd||0,joinGwStart:y.joinGatewayStart||0,pcEnd:y.peerConnectionEnd||0,pcStart:y.peerConnectionStart||0,subscriberEnd:(w==null?void 0:w.subscribeEnd)||0,subscriberStart:(w==null?void 0:w.subscribeStart)||0,videoAddNotify:(w==null?void 0:w.streamAdded)||0,state:g?1:0,firstFrame:(w==null?void 0:w.firstFrame)||0})}}async remoteMediaSsrcChanged(a,A,l){if(!this.connection)return!1;let g=this.remoteUserMap.get(a);if(!g)return!1;let C=g.get(A);if(!C)return!1;let m=await this.connection.getRemoteSSRC(C);return m!==void 0&&m!==l}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(a=>{let[A,{track:l}]=a;A===St.LocalVideoLowTrack?l._updateRtpTransceiver(void 0,bg.LOW_STREAM):l._updateRtpTransceiver(void 0)})}},Vt(Di.prototype,"startP2PConnection",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"startP2PConnection"),Di.prototype),Vt(Di.prototype,"connect",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"connect"),Di.prototype),Vt(Di.prototype,"updateRemoteRTPCapabilities",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"updateRemoteRTPCapabilities"),Di.prototype),Vt(Di.prototype,"publishDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"publishDataChannel"),Di.prototype),Vt(Di.prototype,"unpublish",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unpublish"),Di.prototype),Vt(Di.prototype,"unpublishDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unpublishDataChannel"),Di.prototype),Vt(Di.prototype,"unpublishLowStream",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unpublishLowStream"),Di.prototype),Vt(Di.prototype,"subscribeDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"subscribeDataChannel"),Di.prototype),Vt(Di.prototype,"subscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"subscribe"),Di.prototype),Vt(Di.prototype,"massSubscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"massSubscribe"),Di.prototype),Vt(Di.prototype,"unsubscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unsubscribe"),Di.prototype),Vt(Di.prototype,"unsubscribeDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unsubscribeDataChannel"),Di.prototype),Vt(Di.prototype,"massUnsubscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"massUnsubscribe"),Di.prototype),Vt(Di.prototype,"muteRemote",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"muteRemote"),Di.prototype),Vt(Di.prototype,"unmuteRemote",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unmuteRemote"),Di.prototype),Vt(Di.prototype,"hasRemoteMediaWithLock",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"hasRemoteMediaWithLock"),Di.prototype),Vt(Di.prototype,"disconnectForReconnect",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"disconnectForReconnect"),Di.prototype),Vt(Di.prototype,"updateBitrateLimit",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"updateBitrateLimit"),Di.prototype),Vt(Di.prototype,"remoteMediaSsrcChanged",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"remoteMediaSsrcChanged"),Di.prototype),Di);function Aa(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From P2PChannel.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b0&&(g.firstRecvTs=Date.now()-m);let w=l.mediaDelay+y;w<=0?(A.pop(),zC(l.context,C),w=0):w=Math.min(w,Rh),setTimeout(()=>A.length&&Jo(a),w)}function zC(a,A){a.safeEmit(si.STREAM_MESSAGE,A.uid,A.payload),a.onStreamMessage&&a.onStreamMessage(A)}function GN(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,l=arguments.length>2?arguments[2]:void 0;if(!a.syncWithAudio)return zC(l,{uid:a.uid,payload:a.payload});let g="".concat(l.id,"-").concat(a.uid),C=oc.get(g)||[],m=C.findIndex(M=>a.sendTs>=M.sendTs),y=Kg(Kg({},a),{},{context:l,mediaDelay:A,recvTs:Date.now()});m===-1?C.push(y):C.splice(m,0,y),oc.set(g,C);let w=!1;var b;S1.has(g)?w=!((b=S1.get(g))===null||b===void 0||!b.isSyncing):S1.set(g,{isSyncing:w,firstRecvTs:0,firstSendTs:0}),w||Jo(g)}let m7=Wi().name;function $2(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function VN(a){for(var A=1;A{let m=l.shift();m&&await m(),l.length>0&&g{l.push(async()=>{try{let k=await a(...y);b(k)}catch(k){M(k)}}),g{X.warn("Your browser does not support preloading, this feature be run in a secure environment")},"preload_webcrypto_not_supported");if(!l&&l!==null)throw new nt(fe.INVALID_PARAMS,"Invalid token: ".concat(l,". If you don not use token, set it to null"));l&&Tr(l,"token",1,2047),Tr(a,"appid",1,2047),t_(A),g&&r_(g);let w=Ln();X.debug("preload channel ".concat(A,", uid is ").concat(g));let b={appId:a,cname:A,token:l||a,uid:typeof g!="string"?g:null,sid:w,proxyServer:C,role:y},M,k;typeof g=="string"?(b.stringUid=g,[k,M]=await Ft.all([hA(g,{sid:w,appId:a},rI.token),Hy(VN(VN({},b),{},{token:l||a,uid:0}),rI.token)]),b.uid=k.uid,M.gatewayInfo.uid=b.uid,M.gatewayInfo.res.uid=b.uid):(m&&(b.stringUid=m),M=await Hy(b,rI.token));let V={sid:w,appId:a,cname:A,token:l||a,uid:b.stringUid||g,intUid:b.uid||M.gatewayInfo.uid,stringUid:b.stringUid,ts:Date.now(),sua:k,ap:M};await iI(V),Zy++}catch(w){throw eQ++,function(b){tI||(tI=window.setTimeout(()=>{let k="";f_.forEach((V,K)=>{k+="".concat(K,": ").concat(V," ;")}),tr.reportApiInvoke(null,{name:Co.PRELOAD,options:{success:Zy,failed:eQ,err:k}}).onError(b),Zy=0,eQ=0,f_.clear(),tI=null},Vu));let M=f_.get(b.code)||0;f_.set(b.code,M+1)}(w),w}}async function tQ(a){try{if(Ie("AP_REQUEST_DETAIL")||Ie("ENABLE_ROLE_SELECT_EDGE"))return;let A=ep(a);if(!A||a.cloudProxyServer!=="disabled")return;let l=await async function(g,C){try{let m=await window.crypto.subtle.importKey("raw",$b(C),"AES-GCM",!1,["decrypt"]),y=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:B7},m,th(g));return JSON.parse(window.atob(Md(new Uint8Array(y))))}catch{return}}(A,a.token||a.appId);if(!l||!function(g,C){return g.cname===C.cname&&g.appId===C.appId&&g.token===C.token?C.stringUid?g.stringUid===C.stringUid:typeof C.uid=="number"?g.uid===C.uid:g.uid==C.uid:!1}(l,a))return;if(l&&Date.now()-l.ts=0;b--)if(w(y[b]))return b;return-1}(l,y=>g in y);if(C===-1)return;let m=l.splice(C,1)[0];return iQ(yh,JSON.stringify(l)),m[g]}catch(l){X.warn("Error delete preload info: ".concat(A),l.message),iQ(yh,"")}}async function iI(a){let A;try{a.uid&&ep({appId:a.appId,cname:a.cname,token:a.token,uid:a.uid,stringUid:a.stringUid});let l=y7(a),g=await async function(m,y){try{let w=await window.crypto.subtle.importKey("raw",$b(y),"AES-GCM",!1,["encrypt"]),b=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:B7},w,th(window.btoa(JSON.stringify(m))));return Md(new Uint8Array(b))}catch{return}}(a,a.token||a.appId);if(!g)return;A=R7(yh);let C=A?JSON.parse(A):[];C.push({[l]:g}),C.length>Ie("AP_CACHE_NUM")&&C.shift(),iQ(yh,JSON.stringify(C))}catch(l){X.warn("Error caching server parameters:",l.message),iQ(yh,"")}}function rQ(a){if(a){let A=Xd.get(a);A&&(window.clearTimeout(A),A=null,Xd.delete(a)),Rt(eI).call(eI,a)||a.cloudProxyServer!=="disabled"||eI.push(a)}if(Xd.size0){let A=eI.shift();Xd.set(A,window.setTimeout(async()=>{let{appId:l,cname:g,token:C,stringUid:m,uid:y,proxyServer:w,role:b}=A;try{await iq(l,g,C,y,w,m,b),Xd.has(A)&&rQ(A)}catch(M){X.warn("update preload failed",M.message),KN(A)}},Ie("AP_UPDATE_INTERVAL")))}}function KN(a){let A=eI.indexOf(a);A!==-1&&eI.splice(A,1);let l=Xd.get(a);l&&(window.clearTimeout(l),l=null,Xd.delete(a),rQ())}function S7(a,A){let l=a.sua,g=a.ap;A&&l&&tr.reqUserAccount(a.sid,{lts:l.requestTime,elapse:l.elapse,success:!0,serverAddr:l.url,stringUid:A,uid:a.intUid,errorCode:null,extend:l.req}),tr.reportResourceTiming(a.ap.url,a.sid),tr.joinWebProxyAP(a.sid,{lts:g.requestTime,elapse:g.elapse,sucess:1,apServerAddr:g.url,turnServerAddrList:g.proxyInfo.addresses.map(C=>C.ip).join(","),eventType:"disabled",unilbsServerIds:[ps.CHOOSE_SERVER,ps.CLOUD_PROXY_FALLBACK].toString()}),tr.joinChooseServer(a.sid,{lts:g.requestTime,elapse:g.elapse,succ:!0,csAddr:g.url,opid:g.opid,serverList:g.gatewayInfo.gatewayAddrs.map(C=>C.address),ec:null,cid:g.gatewayInfo.cid.toString(),uid:g.gatewayInfo.uid.toString(),csIp:g.gatewayInfo.csIp,unilbsServerIds:[ps.CHOOSE_SERVER].toString(),isHttp3:g.isHttp3})}function R7(a){return window.atob(window.localStorage.getItem(a)||"")}function iQ(a,A){window.localStorage.setItem(a,window.btoa(A))}function y7(a){let A="".concat(a.appId,"_").concat(a.cname);return typeof a.uid=="string"&&(A+="_s_".concat(a.uid)),typeof a.uid=="number"&&(A+="_".concat(a.uid)),a.token&&(A+="_".concat(a.token)),Df(A)}function nQ(a){let A=function(){let l=aq.pop();return l?(l.offset=l.limit=0,l):{bytes:new Uint8Array(64),offset:0,limit:0}}();return function(l,g){let C=l.appId;C!==void 0&&(Vo(g,10),Qh(g,C));let m=l.cid;m!==void 0&&(Vo(g,16),Vo(g,m));let y=l.cname;y!==void 0&&(Vo(g,26),Qh(g,y));let w=l.deviceId;w!==void 0&&(Vo(g,34),Qh(g,w));let b=l.elapse;b!==void 0&&(Vo(g,40),Th(g,b));let M=l.fileSize;M!==void 0&&(Vo(g,48),Th(g,tp(M)));let k=l.height;k!==void 0&&(Vo(g,56),Th(g,tp(k)));let V=l.jpg;V!==void 0&&(Vo(g,66),Vo(g,V.length),T7(g,V));let K=l.networkType;K!==void 0&&(Vo(g,72),Th(g,tp(K)));let q=l.osType;q!==void 0&&(Vo(g,80),Th(g,tp(q)));let ce=l.requestId;ce!==void 0&&(Vo(g,90),Qh(g,ce));let oe=l.sdkVersion;oe!==void 0&&(Vo(g,98),Qh(g,oe));let le=l.sequence;le!==void 0&&(Vo(g,104),Th(g,tp(le)));let pe=l.sid;pe!==void 0&&(Vo(g,114),Qh(g,pe));let Se=l.timestamp;Se!==void 0&&(Vo(g,120),Th(g,Se));let be=l.uid;be!==void 0&&(Vo(g,128),Vo(g,be));let Ue=l.vid;Ue!==void 0&&(Vo(g,136),Vo(g,Ue));let xe=l.width;xe!==void 0&&(Vo(g,144),Th(g,tp(xe)));let Le=l.service;Le!==void 0&&(Vo(g,152),Vo(g,Le));let je=l.callbackData;je!==void 0&&(Vo(g,162),Vo(g,je.length),T7(g,je));let dt=l.ticket;dt!==void 0&&(Vo(g,170),Qh(g,dt));let pt=l.vendorConfigs;pt!==void 0&&(Vo(g,178),Qh(g,pt))}(a,A),function(l){let g=l.bytes,C=l.limit;return g.length===C?g:g.subarray(0,C)}(A)}function oq(a){return function(l){let g={};e:for(;!Q7(l);){let C=S_(l);switch(C>>>3){case 0:break e;case 1:g.code=S_(l);break;case 2:g.msg=B_(l,S_(l));break;case 3:g.requestId=B_(l,S_(l));break;case 4:g.timestamp=v7(l,!1);break;default:sq(l,7&C)}}return g}({bytes:A=a,offset:0,limit:A.length});var A}function sq(a,A){switch(A){case 0:for(;128&id(a););break;case 2:rp(a,S_(a));break;case 5:rp(a,4);break;case 1:rp(a,8);break;default:throw new Error("Unimplemented type: "+A)}}function tp(a){return{low:a|=0,high:a>>31,unsigned:a>=0}}let aq=[];function rp(a,A){if(a.offset+A>a.limit)throw new Error("Skip past limit");a.offset+=A}function Q7(a){return a.offset>=a.limit}function __(a,A){let l=a.bytes,g=a.offset,C=a.limit,m=g+A;if(m>l.length){let y=new Uint8Array(2*m);y.set(l),a.bytes=y}return a.offset=m,m>C&&(a.limit=m),g}function m_(a,A){let l=a.offset;if(l+A>a.limit)throw new Error("Read past limit");return a.offset+=A,l}function T7(a,A){let l=__(a,A.length);a.bytes.set(A,l)}function B_(a,A){let l=m_(a,A),g=String.fromCharCode,C=a.bytes,m="�",y="";for(let w=0;w=A?y+=m:(b=C[w+l+1],(192&b)!=128?y+=m:(V=(31&K)<<6|63&b,V<128?y+=m:(y+=g(V),w++))):(240&K)==224?w+2>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],(49344&(b|M<<8))!=32896?y+=m:(V=(15&K)<<12|(63&b)<<6|63&M,V<2048||V>=55296&&V<=57343?y+=m:(y+=g(V),w+=2))):(248&K)==240?w+3>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],k=C[w+l+3],(12632256&(b|M<<8|k<<16))!=8421504?y+=m:(V=(7&K)<<18|(63&b)<<12|(63&M)<<6|63&k,V<65536||V>1114111?y+=m:(V-=65536,y+=g(55296+(V>>10),56320+(1023&V)),w+=3))):y+=m:y+=g(K)}return y}function Qh(a,A){let l=A.length,g=0;for(let y=0;y=55296&&w<=56319&&y+1=55296&&w<=56319&&y+1>6&31|192:(w<65536?m[C++]=w>>12&15|224:(m[C++]=w>>18&7|240,m[C++]=w>>12&63|128),m[C++]=w>>6&63|128),m[C++]=63&w|128)}}function id(a){return a.bytes[m_(a,1)]}function w7(a,A){let l=__(a,1);a.bytes[l]=A}function S_(a){let A,l=0,g=0;do A=id(a),l<32&&(g|=(127&A)<>>=0;A>=128;)w7(a,127&A|128),A>>>=7;w7(a,A)}function v7(a,A){let l,g=0,C=0,m=0;return l=id(a),g=127&l,128&l&&(l=id(a),g|=(127&l)<<7,128&l&&(l=id(a),g|=(127&l)<<14,128&l&&(l=id(a),g|=(127&l)<<21,128&l&&(l=id(a),C=127&l,128&l&&(l=id(a),C|=(127&l)<<7,128&l&&(l=id(a),C|=(127&l)<<14,128&l&&(l=id(a),C|=(127&l)<<21,128&l&&(l=id(a),m=127&l,128&l&&(l=id(a),m|=(127&l)<<7))))))))),{low:g|C<<28,high:C>>>4|m<<24,unsigned:A}}function Th(a,A){let l=A.low>>>0,g=(A.low>>>28|A.high<<4)>>>0,C=A.high>>>24,m=C===0?g===0?l<16384?l<128?1:2:l<1<<21?3:4:g<16384?g<128?5:6:g<1<<21?7:8:C<128?9:10,y=__(a,m),w=a.bytes;switch(m){case 10:w[y+9]=C>>>7&1;case 9:w[y+8]=m!==9?128|C:127&C;case 8:w[y+7]=m!==8?g>>>21|128:g>>>21&127;case 7:w[y+6]=m!==7?g>>>14|128:g>>>14&127;case 6:w[y+5]=m!==6?g>>>7|128:g>>>7&127;case 5:w[y+4]=m!==5?128|g:127&g;case 4:w[y+3]=m!==4?l>>>21|128:l>>>21&127;case 3:w[y+2]=m!==3?l>>>14|128:l>>>14&127;case 2:w[y+1]=m!==2?l>>>7|128:l>>>7&127;case 1:w[y]=m!==1?128|l:127&l}}let R_={},wh={},oQ=4294967296,Aq=oQ*oQ,nd=Aq/2;YN(0,!0);let HN=YN(0),D7=vh(0,-2147483648,!1),cq=vh(-1,2147483647,!1);function YN(a,A){let l,g,C;return A?(C=0<=(a>>>=0)&&a<256)&&(g=wh[a],g)?g:(l=vh(a,0,!0),C&&(wh[a]=l),l):(C=-128<=(a|=0)&&a<128)&&(g=R_[a],g)?g:(l=vh(a,a<0?-1:0,!1),C&&(R_[a]=l),l)}function vh(a,A,l){return{low:0|a,high:0|A,unsigned:!!l}}function y_(a,A){if(isNaN(a))return HN;{if(a<=-9223372036854776e3)return D7;if(a+1>=nd)return cq}return a<0?HN:vh(a%oQ|0,a/oQ|0,A)}function Ku(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}class Q_ extends io{get connectionState(){return this._connectionState}set connectionState(A){if(this._connectionState===A)return;let l=this._connectionState;this._connectionState=A,this.emit(Pc.CONNECTION_STATE_CHANGE,A,l)}get quality(){return this._quality}set quality(A){this._quality=A>1?1:A<.1?.1:A,this._qualityTimer&&(window.clearTimeout(this._qualityTimer),this._qualityTimer=null),this._quality>=1||(this._qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this._qualityRatio},6e4))}constructor(A){var l;super(),Ae(this,"name","AgoraRTCImageModeration"),Ae(this,"_connectionState",ba.CONNECTING),Ae(this,"_sequence",0),Ae(this,"_moderationStartTime",void 0),Ae(this,"_workerConnection",void 0),Ae(this,"_workerMessageLengthLimit",void 0),Ae(this,"_qualityRatio",void 0),Ae(this,"_connectInfo",void 0),Ae(this,"_cancelTokenSource",vA.CancelToken.source()),Ae(this,"_retryConfig",void 0),Ae(this,"_moderationInterval",void 0),Ae(this,"_moderationTimer",null),Ae(this,"_moderationMode",1),Ae(this,"_quality",1),Ae(this,"_qualityTimer",null),Ae(this,"_ticket",void 0),Ae(this,"_moderationIntervalMinimum",void 0),Ae(this,"_uploadFailedNum",0),Ae(this,"_uploadNum",0),Ae(this,"_uploadTimer",null),Ae(this,"_extraInfo",void 0),Ae(this,"_vendor",""),Ae(this,"_encoder",new TextEncoder),Ae(this,"_moderationId",void 0),Ae(this,"inspectImage",()=>{if(this.connectionState!==ba.CONNECTED)throw new ze(fe.OPERATION_ABORTED,"image moderation service connection status is ".concat(this.connectionState));this._moderationTimer&&(window.clearInterval(this._moderationTimer),this._moderationTimer=null),this._moderationTimer=window.setInterval(()=>{this.connectionState===ba.CONNECTED?this.requestToInspectImage():X.debug("[".concat(this._moderationId,"] Moderation State is not connected , "),this.connectionState)},this._moderationInterval{X.debug("[".concat(this._moderationId,"] Moderation operation :").concat(b2[g]," ").concat(C||""))}),this.handleWorkerEvents()}async init(A,l){this.emit(Pc.STATE_CHANGE,b2.CONNECT_AP),this._connectInfo=A;let g=this._cancelTokenSource.token;return this._retryConfig=l,new Ft((C,m)=>{this.on(Pc.CONNECTION_STATE_CHANGE,(y,w)=>{y===ba.CONNECTED&&C()}),this.requestAP(A,g,l).then(y=>{this.connectWorker(y)}).catch(y=>{m(y)})})}updateConfig(A){var l;this._moderationInterval=(l=A.interval)!==null&&l!==void 0?l:1e3,A.extraInfo&&(this._extraInfo=this._encoder.encode(A.extraInfo)),A.vendor&&(this._vendor=A.vendor),X.debug("[".concat(this._moderationId,"] updateConfig: ").concat(JSON.stringify(A))),this.connectionState===ba.CONNECTED&&this.inspectImage()}async requestAP(A,l,g){let C=Ie("WEBCS_DOMAIN").map(b=>"https://".concat(b,"/api/v1")),m=await function(b,M,k,V){let{appId:K,areaCode:q,cname:ce,sid:oe,token:le,uid:pe}=M;x2++;let Se="moderation_plugin",be={service_name:Se,json_body:JSON.stringify({appId:K,areaCode:q,cname:ce,command:"allocateEdge",requestId:x2,seq:x2,sid:oe,appToken:le,ts:Date.now(),uid:pe+""})},Ue,xe,Le=b[0];return jl(async()=>{Ue=Date.now();let je=await iA(Le,{data:be,cancelToken:k,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(xe=Date.now()-Ue,je.code!==0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap error, code"+je.code,{retry:!0,responseTime:xe});throw X.error(gr.toString()),gr}let dt=JSON.parse(je.json_body);if(dt.code!==200){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap error, code: ".concat(dt.code,", reason: ").concat(dt.reason),{code:dt.code,responseTime:xe});throw X.error(gr.toString()),gr}if(!dt.servers||!Array.isArray(dt.servers)||dt.servers.length===0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap empty server",{code:dt.code,responseTime:xe});throw X.error(gr.toString()),gr}if(!dt.servers.some(gr=>!!gr.wss)){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap empty port",{code:dt.code,responseTime:xe});throw X.error(gr.toString()),gr}let pt=Ie("IMAGE_MODERATION_WORKER_WSS");if(pt)return{addressList:[pt],workerToken:dt.workerToken,vid:dt.vid,responseTime:xe};let zt=Ie("IMAGE_MODERATION_WORKER_HOST");return{addressList:dt.servers.map(gr=>{let{address:li,wss:ii}=gr;if(li&&ii)return"wss://".concat(li.replace(/\./g,"-"),".").concat(zt,":").concat(ii,"/moderation")}).filter(gr=>!!gr),workerToken:dt.workerToken,vid:dt.vid,ticket:dt.appTicket,responseTime:xe}},(je,dt)=>(tr.apworkerEvent(oe,{success:!0,sc:200,serviceName:Se,responseDetail:JSON.stringify(je.addressList),firstSuccess:dt===0,responseTime:xe,serverIp:b[dt%b.length]}),!1),(je,dt)=>(tr.apworkerEvent(oe,{success:!1,sc:je.data&&je.data.code||200,serviceName:Se,responseTime:xe,serverIp:b[dt%b.length]}),!!(je.code!==fe.OPERATION_ABORTED&&je.code!==fe.UNEXPECTED_RESPONSE||je.data&&je.data.retry)&&(Le=b[(dt+1)%b.length],!0)),V)}(C,A,l,g);this.emit(Pc.STATE_CHANGE,b2.AP_CONNECTED);let{addressList:y,ticket:w}=m;return this._ticket=w,y}async connectWorker(A){this.emit(Pc.STATE_CHANGE,b2.CONNECT_WORKER),await this._workerConnection.init(A,1e4)}handleWorkerEvents(){this._workerConnection.on(qr.CONNECTED,async()=>{this.emit(Pc.STATE_CHANGE,b2.WORKER_CONNECTED,this._workerConnection.url),this.connectionState=ba.CONNECTED}),this._workerConnection.on(qr.CLOSED,()=>{this.connectionState=ba.CLOSED}),this._workerConnection.on(qr.FAILED,()=>{this.connectionState=ba.CLOSED}),this._workerConnection.on(qr.RECONNECTING,()=>{this.connectionState=this.connectionState===ba.CONNECTED?ba.RECONNECTING:ba.CONNECTING}),this._workerConnection.on(qr.ON_MESSAGE,async A=>{if(A.data instanceof ArrayBuffer){let l=oq(new Uint8Array(A.data));Ie("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&X.debug("[".concat(this._moderationId,"] Response message for worker of image moderation "),JSON.stringify(l)),this._uploadNum++,l.code===void 0||l.code===0||(this._uploadFailedNum++,X.error("[".concat(this._moderationId,"] Error response from worke, code is ").concat(l.code,", msg is ").concat(l.msg)),this._uploadTimer||(this._uploadTimer=window.setTimeout(()=>{tr.reportApiInvoke(this._connectInfo.sid||null,{name:Co.IMAGE_MODERATION_UPLOAD,options:[this._uploadFailedNum,this._uploadNum,l.code],tag:Gn.TRACER}).onError(new ze(fe.IMAGE_MODERATION_UPLOAD_FAILED,l.msg)),this._uploadTimer=null},Ie("IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL"))))}else X.error("[".concat(this._moderationId,"] Unexpected message type from worker"))}),this._workerConnection.on(qr.WILL_RECONNECT,(A,l,g)=>{A==="recover"&&g(A),g("tryNext")}),this._workerConnection.on(qr.REQUEST_NEW_URLS,(A,l)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(A).catch(l)})}static intToLong(A){return{low:A|=0,high:A>>31,unsigned:A>=0}}async requestToInspectImage(){let A=JA(this,Pc.CLIENT_LOCAL_VIDEO_TRACK),l={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(A){if(!A.isPlaying)return void(Ie("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&X.debug("Only the track being played can be inspected"));this._sequence++;let g=await this.generateRequestData(A,l);this._workerConnection.sendMessage(g,!0,!0)}else Ie("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&X.debug("Only the track being published can be inspected")}async generateRequestData(A,l){let{appId:g,cname:C,cid:m,vid:y,sid:w,uid:b}=l,M=Date.now(),k=await A.getCurrentFrameImage("image/jpeg",this.quality),V=await XR(k,g,C),K=this._sequence+"-"+m+"-"+b+"-"+M+"-"+yn(12,""),q={appId:g,cid:m,cname:C,deviceId:"",elapse:Q_.intToLong(Number(M-this._moderationStartTime)),fileSize:k.buffer.byteLength,height:k.height,width:k.width,jpg:V,networkType:6,osType:7,requestId:K,sdkVersion:"4.24.2",sequence:this._sequence,sid:w,timestamp:y_(M),uid:b,vid:y,service:this._moderationMode,ticket:this._ticket,callbackData:this._extraInfo,vendorConfigs:this._vendor};this._extraInfo===void 0&&delete q.callbackData;let ce=nQ(q);if(ce.byteLength1024)throw new ze(fe.INVALID_PARAMS,"config.extraInfo length cannot exceed 1024 bytes");if(a&&a.vendor&&a.vendor.length>1024)throw new ze(fe.INVALID_PARAMS,"config.vendor length cannot exceed 1024 bytes")}let aQ={name:"ImageModeration",create:function(a){let{config:A}=a;return sQ(A),new Q_(A)}};var T_,AQ,ca,jN,b7,Dh,JN,qN,WN,XN,cQ,lQ,zN,N7,$N,O7,Hu,L7,ZN,M7,k7,ip,dQ,uQ,P7,eO,U7,w_,tO,rO,iO,x7,nO,F7,gQ,fo,np,G7,op,v_,sc,Hg,Jt;function xa(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function ac(a){for(var A=1;A{if(!Array.isArray(A)){if(!(A instanceof UC))return[A];A=[A]}return A.map(l=>l?Object(l).toString():"null")}}),ca=Sr({argsMap:(a,A)=>(A||(A=[]),Array.isArray(A)||A.trackMediaType!==PC.DATA?(Array.isArray(A)||(A=[A]),A.map(l=>l.getTrackId())):[A.getChannelId()])}),jN=Sr({argsMap:(a,A,l,g)=>[typeof A=="object"?A.uid:A,l,g]}),b7=Sr({argsMap:(a,A,l)=>[A,l]}),Dh=Sr({argsMap:(a,A)=>A.map(l=>{let{user:g,mediaType:C}=l;return[g==null?void 0:g.uid,C]})}),JN=Sr({argsMap:(a,A,l,g)=>[typeof A=="object"?A.uid:A,l,g]}),qN=Sr({argsMap:(a,A)=>A.map(l=>{let{user:g,mediaType:C}=l;return{uid:g==null?void 0:g.uid,mediaType:C}})}),WN=Sr(),XN=Sr(),cQ=Sr(),lQ=Sr(),zN=Sr(),N7=Sr(),$N=Sr(),O7=Sr(),Hu=Sr(),L7=Sr(),ZN=Sr(),M7=Sr(),k7=Sr(),ip=Sr(),dQ=Sr(),uQ=Sr(),P7=Sr({argsMap:(a,A)=>[A]}),eO=Sr(),U7=Sr(),w_=Sr(),tO=Sr(),rO=Sr(),iO=Sr(),x7=Sr(),nO=Sr(),F7=Sr({argsMap:(a,A)=>(Array.isArray(A)||(A=[A]),[JSON.stringify(A)])}),gQ=Sr(),fo=Sr(),np=Sr(),G7=Sr(),op=Sr(),v_=Sr(),sc=Sr({reportResult:!0}),Hg=Sr(),Jt=class extends io{get connectionState(){return this._gateway.state}get remoteUsers(){return this._users}get localTracks(){return this._p2pChannel.getAllTracks(!0)}get uid(){return this._uid}get channelName(){return this._channelName}get localDataChannels(){return this._p2pChannel.getAllDataChannels()}get mode(){return this._config.mode}get role(){var a;return((a=this._config)===null||a===void 0?void 0:a.role)||"audience"}get codec(){return this._config.codec}get audioCodec(){return this._config.audioCodec||"opus"}get isStringUID(){return!!this._joinInfo&&!!this._joinInfo.stringUid}get __className__(){return"Client"}constructor(a,A){let l;if(super(),Ae(this,"store",void 0),Ae(this,"_uid",void 0),Ae(this,"_channelName",void 0),Ae(this,"_uintUid",void 0),Ae(this,"_users",[]),Ae(this,"_config",void 0),Ae(this,"_clientId",void 0),Ae(this,"_appId",void 0),Ae(this,"_sessionId",null),Ae(this,"_key",void 0),Ae(this,"_rtmConfig",{}),Ae(this,"_joinInfo",void 0),Ae(this,"_gateway",void 0),Ae(this,"_statsCollector",void 0),Ae(this,"_configDistribute",void 0),Ae(this,"_leaveMutex",void 0),Ae(this,"_publishMutex",void 0),Ae(this,"_renewTokenMutex",void 0),Ae(this,"_subscribeMutex",void 0),Ae(this,"_encryptionMode","none"),Ae(this,"_encryptionSecret",null),Ae(this,"_encryptionSalt",null),Ae(this,"_encryptDataStream",!1),Ae(this,"_encryptDataStreamKey",null),Ae(this,"_encryptDataStreamIv",null),Ae(this,"_proxyServer",void 0),Ae(this,"_turnServer",{servers:[],mode:"auto"}),Ae(this,"_cloudProxyServerMode","disabled"),Ae(this,"_isDualStreamEnabled",!1),Ae(this,"_defaultStreamFallbackType",void 0),Ae(this,"_lowStreamParameter",void 0),Ae(this,"_streamFallbackTypeCacheMap",new Map),Ae(this,"_remoteStreamTypeCacheMap",new Map),Ae(this,"_axiosCancelSource",vA.CancelToken.source()),Ae(this,"_audioVolumeIndicationInterval",void 0),Ae(this,"_networkQualityInterval",void 0),Ae(this,"_userOfflineTimeout",void 0),Ae(this,"_streamRemovedTimeout",void 0),Ae(this,"_rteDetailInterval",void 0),Ae(this,"_liveTranscodeStreamingClient",void 0),Ae(this,"_liveRawStreamingClient",void 0),Ae(this,"_channelMediaRelayClient",void 0),Ae(this,"_networkQualitySensitivity","normal"),Ae(this,"_p2pChannel",void 0),Ae(this,"_useLocalAccessPoint",!1),Ae(this,"_setLocalAPVersion",void 0),Ae(this,"_joinAndNotLeaveYet",!1),Ae(this,"_numberOfJoinCount",0),Ae(this,"_joinResponse",null),Ae(this,"_remoteDefaultVideoStreamType",void 0),Ae(this,"_inspect",void 0),Ae(this,"_moderation",void 0),Ae(this,"_license",void 0),Ae(this,"_pendingPublishedUsers",[]),Ae(this,"ntpAlignErrorCount",0),Ae(this,"remoteInboundOffset",0),Ae(this,"_peerConnectionState",void 0),Ae(this,"_pendingRtpCapabilityChange",void 0),Ae(this,"_fallbackServerInfo",void 0),Ae(this,"_dualStreamMode",void 0),Ae(this,"_handleLocalTrackEnable",(C,m,y)=>{this.publish(C,!1).then(m).catch(y)}),Ae(this,"_handleLocalTrackDisable",(C,m,y)=>{this.unpublish(C).then(m).catch(y)}),Ae(this,"_handleUserOnline",C=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C.uid,this.channelName))return void X.debug("[".concat(C.uid,"] will be ignored in local"));this.isStringUID&&typeof C.uid!="string"&&X.error("[".concat(this._clientId,"] StringUID is Mixed with UintUID"));let m=this._users.find(y=>y.uid===C.uid);if(m)m._trust_in_room_=!0,m._is_pre_created&&(m._is_pre_created=!1,this.safeEmit(si.USER_JOINED,m));else{let y=new xg(C.uid,C.uint_id||C.uid);this._users.push(y),X.debug("[".concat(this._clientId,"] user online"),C.uid),this.store.firstVideoFrameDecoded(y.uid,{userJoinNotify:Date.now()}),this.safeEmit(si.USER_JOINED,y)}}),Ae(this,"_handleUserOffline",C=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C.uid,this.channelName))return;let m=this._users.find(y=>y.uid===C.uid);m&&(this._handleRemoveStream(C),this._handleRemoveDataChannels(C),m._audio_pre_subscribed||m._video_pre_subscribed?m._is_pre_created=!0:sl(this._users,m),this._remoteStreamTypeCacheMap.delete(m.uid),this._streamFallbackTypeCacheMap.delete(m.uid),X.debug("[".concat(this._clientId,"] user offline"),C.uid,"reason:",C.reason),this.safeEmit(si.USER_LEAVED,m,C.reason))}),Ae(this,"_handleAddAudioOrVideoStream",(C,m,y,w,b,M,k,V)=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(m,this.channelName))return;let K=this._users.find(oe=>oe.uid===m);if(!K)return void X.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));X.debug("[".concat(this._clientId,"] stream added with uid ").concat(m,", type ").concat(C)),this.store.subscribe(K.uid,C,void 0,void 0,void 0,Date.now()),C==="video"&&this.store.firstVideoFrameDecoded(K.uid,{videoAddNotify:Date.now()});let q=C==="audio"?K.hasAudio:K.hasVideo;K._uintid||(K._uintid=M||m),C==="audio"?K._trust_audio_stream_added_state_=!0:K._trust_video_stream_added_state_=!0,C==="audio"?(K._audio_added_=!0,y!==void 0&&(K._audioSSRC=y),w!==void 0&&(K._cname=w),k&&(K._audioOrtc=k)):(K._video_added_=!0,y!==void 0&&(K._videoSSRC=y),w!==void 0&&(K._cname=w),V!==void 0&&(K._rtxSsrcId=V),k&&(K._videoOrtc=k)),(C==="audio"?K.hasAudio:K.hasVideo)&&!q&&(X.info("[".concat(this._clientId,"] remote user ").concat(K.uid," published ").concat(C)),this.safeEmit(si.USER_PUBLISHED,K,C)),C==="video"?tr.onGatewayStream(this._sessionId,Cs.ON_ADD_VIDEO_STREAM,Eo.ON_ADD_VIDEO_STREAM,{peer:M||m,ssrc:K._videoSSRC}):tr.onGatewayStream(this._sessionId,Cs.ON_ADD_AUDIO_STREAM,Eo.ON_ADD_AUDIO_STREAM,{peer:M||m,ssrc:K._audioSSRC}),this._p2pChannel.remoteMediaSsrcChanged(K,C,y).then(oe=>{if(oe&&(X.debug("[".concat(this._clientId,"] resubscribe ").concat(C," for user ").concat(K.uid," after rejoin because SSRC id changed.")),this._p2pChannel instanceof Wd))return this._p2pChannel.unsubscribe(K,C,!0).then(()=>this._subscribe(K,C,!0).catch(le=>{X.error("[".concat(this._clientId,"] resubscribe error"),le.toString())}))}),this._p2pChannel.hasPendingRemoteMedia(K,C)&&(X.debug("[".concat(this._clientId,"] resubscribe ").concat(C," for user ").concat(K.uid," after reconnect.")),this._subscribe(K,C,!0).catch(oe=>{X.error("[".concat(this._clientId,"] resubscribe error"),oe.toString())}));let ce=this._getEncodingName(b);C==="video"&&(ce==="unknown"?this.safeEmit(si.AV1_DECODABLE_RESULT,!1):$s()||Ma()||(ce==null?void 0:ce.toLocaleLowerCase())!==Ss.av1||XJ().then(oe=>{Ie("FLS_ENABLE_AV1_DECODE_DETECT")&&this.safeEmit(si.AV1_DECODABLE_RESULT,oe),oe||this._gateway.downgradeCodec(ce)}))}),Ae(this,"_handleRemoveStream",C=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C.uid,this.channelName))return;let m=this._users.find(w=>w.uid===C.uid);if(!m)return void X.warning("[".concat(this._clientId,"] can not find target user!(on_remove_stream)"));X.debug("[".concat(this._clientId,"] stream removed with uid ").concat(C.uid));let y=()=>{};m.hasAudio&&m.hasVideo?y=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished audio track")),this.safeEmit(si.USER_UNPUBLISHED,m,"audio"),X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished video track")),this.safeEmit(si.USER_UNPUBLISHED,m,"video")}:m.hasVideo?y=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished video track")),this.safeEmit(si.USER_UNPUBLISHED,m,"video")}:m.hasAudio&&(y=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished audio track")),this.safeEmit(si.USER_UNPUBLISHED,m,"audio")}),m._video_pre_subscribed||m._audio_pre_subscribed||(m._trust_audio_stream_added_state_=!0,m._trust_video_stream_added_state_=!0,m._audio_added_=!1,m._video_added_=!1,this._p2pChannel instanceof Wd&&this._p2pChannel.unsubscribe(m).then(w=>{if(w)return this._gateway.unsubscribe(w,m.uid)}),m._audioSSRC=void 0,m._videoSSRC=void 0,m._audioOrtc=void 0,m._videoOrtc=void 0,m._rtxSsrcId=void 0),tr.onGatewayStream(this._sessionId,Cs.ON_REMOVE_STREAM,Eo.ON_REMOVE_STREAM,{peer:C.uint_id||C.uid}),y()}),Ae(this,"_handleSetStreamLocalEnable",(C,m,y)=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(m,this.channelName))return;let w=this._users.find(k=>k.uid===m);if(!w)return void X.error("[".concat(this._clientId,"] can not find target user!(disable_local)"));X.debug("[".concat(this._clientId,"] local ").concat(C," ").concat(y?"enabled":"disabled"," with uid ").concat(m));let b=C==="audio"?w.hasAudio:w.hasVideo;if(C==="audio"){w._trust_audio_enabled_state_=!0;let k=w._audio_enabled_;if(w._audio_enabled_=y,w._audio_enabled_===k)return;{let V=w._audio_enabled_?"enable-local-audio":"disable-local-audio";X.debug("[".concat(this._clientId,"] user-info-updated, uid: ").concat(m,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,m,V)}}else{w._trust_video_enabled_state_=!0;let k=w._video_enabled_;if(w._video_enabled_=y,w._video_enabled_===k)return;{let V=w._video_enabled_?"enable-local-video":"disable-local-video";X.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(m,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,m,V)}}let M=C==="audio"?w.hasAudio:w.hasVideo;return b!==M?!b&&M?(X.info("[".concat(this._clientId,"] remote user ").concat(m," published ").concat(C)),void this.safeEmit(si.USER_PUBLISHED,w,C)):(C==="video"&&w._videoTrack&&w._videoTrack._destroy(),C==="audio"&&w._audioTrack,this._p2pChannel.muteRemote(w,C),X.info("[".concat(this._clientId,"] remote user ").concat(m," unpublished ").concat(C)),void this.safeEmit(si.USER_UNPUBLISHED,w,C)):void 0}),Ae(this,"_handleMuteStream",(C,m,y)=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C,this.channelName))return;X.debug("[".concat(this._clientId,"] receive mute message"),C,m,y);let w=this._users.find(k=>k.uid===C);if(!w)return void X.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(C));let b=m==="audio"?w.hasAudio:w.hasVideo;if(m==="audio"){w._trust_audio_mute_state_=!0;let k=w._audio_muted_;if(w._audio_muted_=y,w._audio_muted_===k)return;{let V=w._audio_muted_?"mute-audio":"unmute-audio";X.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(C,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,C,V)}}else{w._trust_video_mute_state_=!0;let k=w._video_muted_;if(w._video_muted_=y,w._video_muted_===k)return;{let V=w._video_muted_?"mute-video":"unmute-video";X.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(C,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,C,V)}}let M=m==="audio"?w.hasAudio:w.hasVideo;if(b!==M){if(!b&&M)return(m==="audio"?w._audioSSRC:w._videoSSRC)?(X.info("[".concat(this._clientId,"] remote user ").concat(C," published ").concat(m)),void this.safeEmit(si.USER_PUBLISHED,w,m)):void X.warning("[".concat(this._clientId,"] remote user ").concat(C," receive ").concat(m," unmute message before add stream message, ").concat(m," SSRC doesn't exist yet."));m==="video"&&w._videoTrack&&!w._video_pre_subscribed&&w._videoTrack._destroy(),m==="audio"&&w._audioTrack,this._p2pChannel.muteRemote(w,m),X.info("[".concat(this._clientId,"] remote user ").concat(C," unpublished ").concat(m)),this.safeEmit(si.USER_UNPUBLISHED,w,m)}}),Ae(this,"_handleP2PLost",async C=>{X.debug("[".concat(this._clientId,"] receive p2p lost"),C),parseInt(C.p2pid,10)===this.store.p2pId?await this._p2pChannel.requestReconnect():X.warning("[".concat(this._clientId,"] P2PLost stream not found"),C)}),Ae(this,"_handleTokenWillExpire",()=>{X.debug("[".concat(this._clientId,"] received message onTokenPrivilegeWillExpire")),this.safeEmit(si.ON_TOKEN_PRIVILEGE_WILL_EXPIRE)}),Ae(this,"_handleBeforeUnload",C=>{C.type==="beforeunload"&&C.returnValue!==void 0&&C.returnValue!==""||(this.leave(),X.info("[".concat(this._clientId,"] auto leave onbeforeunload or pagehide")))}),Ae(this,"_handleUpdateNetworkQuality",()=>{if(this._networkQualitySensitivity==="normal")return;if(navigator&&navigator.onLine!==void 0&&!navigator.onLine)return void this.safeEmit(si.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6});let C={downlinkNetworkQuality:0,uplinkNetworkQuality:0};C.uplinkNetworkQuality=this._p2pChannel.getUplinkNetworkQuality(),C.downlinkNetworkQuality=this._p2pChannel.getDownlinkNetworkQuality(),this.safeEmit(si.NETWORK_QUALITY,C)}),Ae(this,"_handleP2PAddAudioOrVideoStream",(C,m,y,w)=>{let b=this._users.find(k=>k.uid===m);if(!b)return void X.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));X.debug("[".concat(this._clientId,"] stream added with uid ").concat(m,", type ").concat(C)),this.store.subscribe(b.uid,C,void 0,void 0,void 0,Date.now());let M=C==="audio"?b.hasAudio:b.hasVideo;C==="audio"?b._trust_audio_stream_added_state_=!0:b._trust_video_stream_added_state_=!0,C==="audio"?(b._audio_added_=!0,y!==void 0&&(b._audioSSRC=y),w!==void 0&&(b._audioMid=w)):(b._video_added_=!0,y!==void 0&&(b._videoSSRC=y),w!==void 0&&(b._videoMid=w)),(C==="audio"?b.hasAudio:b.hasVideo)&&!M&&(X.info("[".concat(this._clientId,"] remote user ").concat(b.uid," published ").concat(C)),this.safeEmit(si.USER_PUBLISHED,b,C)),this._p2pChannel.hasPendingRemoteMedia(b,C)&&(X.debug("[".concat(this._clientId,"] resubscribe ").concat(C," for user ").concat(b.uid," after reconnect.")),this._subscribe(b,C,!0).catch(k=>{X.error("[".concat(this._clientId,"] resubscribe error"),k.toString())}))}),this._config=a,this._clientId=A||yn(5,"client-"),this.store=new class{constructor(C,m,y,w,b){Hr(this,"state",void 0),this.state={codec:C,audioCodec:m,mode:y,clientId:w,sessionId:null,p2pId:0,dcId:0,pubId:0,subId:0,keyMetrics:{publish:[],subscribe:[],firstVideoFrameDecoded:[]},joinChannelServiceRecords:[],cloudProxyServerMode:"disabled",useP2P:!1,p2pTransport:ih.Default,hasStartJoinChannel:!1,isABTestSuccess:!1,rteUrl:void 0,rteSid:void 0,autoSubscribe:!1,enableInstantMuteRestore:!1,networkQualityProbe:!1,useDcSignal:!!b}}dispatch(C){this.state=function(m,y){switch(y.type){case Pr.SET_SESSION_ID:return Ot(Ot({},m),{},{sessionId:y.sessionId});case Pr.SET_P2P_ID:return Ot(Ot({},m),{},{p2pId:y.p2pId});case Pr.SET_UID:return Ot(Ot({},m),{},{uid:y.uid});case Pr.SET_INT_UID:return Ot(Ot({},m),{},{intUid:y.intUid});case Pr.SET_PUB_ID:return Ot(Ot({},m),{},{pubId:y.pubId});case Pr.KEY_METRIC_CLIENT_CREATED:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{clientCreated:y.metric})});case Pr.KEY_METRIC_JOIN_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinStart:y.metric})});case Pr.KEY_METRIC_PRELOAD_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{preloadStart:y.metric})});case Pr.KEY_METRIC_PRELOAD_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{preloadEnd:y.metric})});case Pr.KEY_METRIC_JOIN_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinEnd:y.metric})});case Pr.KEY_METRIC_REQUEST_AP_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{requestAPStart:y.metric})});case Pr.KEY_METRIC_REQUEST_AP_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{requestAPEnd:y.metric})});case Pr.KEY_METRIC_REQUEST_SUA_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{requestSUAEnd:y.metric})});case Pr.KEY_METRIC_BEFORE_CONNECT:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{beforeConnect:y.metric})});case Pr.KEY_METRIC_PEER_RECEIVER:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{peerReceiver:y.metric})});case Pr.KEY_METRIC_SIGNAL_CONNECTED:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{signalConnected:y.metric})});case Pr.KEY_METRIC_JOIN_REQ:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinReq:y.metric})});case Pr.KEY_METRIC_JOIN_REP:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinRep:y.metric})});case Pr.KEY_METRIC_JOIN_GATEWAY_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinGatewayStart:y.metric})});case Pr.KEY_METRIC_JOIN_GATEWAY_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinGatewayEnd:y.metric})});case Pr.KEY_METRIC_PEER_CONNECTION_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{peerConnectionStart:y.metric})});case Pr.KEY_METRIC_PEER_CONNECTION_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{peerConnectionEnd:y.metric})});case Pr.KEY_METRIC_DESCRIPTION_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{descriptionStart:y.metric})});case Pr.KEY_METRIC_SIGNAL_CHANNEL_OPEN:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{signalChannelOpen:y.metric})});case Pr.KEY_METRIC_ICE_CONNECTION_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{iceConnectionEnd:y.metric})});case Pr.KEY_METRIC_PUBLISH:{let w=m.keyMetrics.publish,b=w.findIndex(M=>M.trackId===y.metric.trackId);return b!==-1?(w[b]=Ot(Ot({},w[b]),y.metric),Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{publish:[...w]})})):Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{publish:[...m.keyMetrics.publish,y.metric]})})}case Pr.KEY_METRIC_SUBSCRIBE:{let w=m.keyMetrics.subscribe,b=w.findIndex(M=>M.userId===y.metric.userId&&M.type===y.metric.type);return b!==-1?(w[b]=Ot(Ot({},w[b]),y.metric),Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{subscribe:[...w]})})):Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{subscribe:[...m.keyMetrics.subscribe,y.metric]})})}case Pr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED:{let w=m.keyMetrics.firstVideoFrameDecoded,b=w.findIndex(M=>M.userId===y.metric.userId);return b!==-1?(w[b]=Ot(Ot({},w[b]),y.metric),Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{firstVideoFrameDecoded:[...w]})})):Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{firstVideoFrameDecoded:[...m.keyMetrics.firstVideoFrameDecoded,y.metric]})})}case Pr.RESET_FIRST_VIDEO_FRAME_DECODED:return m.keyMetrics.firstVideoFrameDecoded=[],m;case Pr.SET_CLOUD_PROXY_SERVER_MODE:return m.cloudProxyServerMode=y.mode,m;case Pr.RECORD_JOIN_CHANNEL_SERVICE:return typeof y.index!="number"?m.joinChannelServiceRecords=[...m.joinChannelServiceRecords,y.record]:(m.joinChannelServiceRecords[y.index]=Ot(Ot({},m.joinChannelServiceRecords[y.index]),y.record),m.joinChannelServiceRecords=[...m.joinChannelServiceRecords]),m;case Pr.RESET_JOIN_CHANNEL_SERVICE_RECORDS:return m.joinChannelServiceRecords=[],m;case Pr.RESET_KEY_METRICS:return m.keyMetrics={publish:[],subscribe:[],firstVideoFrameDecoded:[]},m;case Pr.SET_USE_P2P:return Ot(Ot({},m),{},{useP2P:y.val});case Pr.SET_TRANSPORT_TYPE:return Ot(Ot({},m),{},{p2pTransport:y.val});case Pr.SET_RTE_URL:return Ot(Ot({},m),{},{rteUrl:y.rteUrl});case Pr.SET_RTE_SID:return Ot(Ot({},m),{},{rteSid:y.rteSid});default:return m}}(this.state,C)}get useDcSignal(){return this.state.useDcSignal}set useDcSignal(C){this.state.useDcSignal=C}set autoSubscribe(C){this.state.autoSubscribe=C}get autoSubscribe(){return this.state.autoSubscribe}set enableInstantMuteRestore(C){this.state.enableInstantMuteRestore=C}get enableInstantMuteRestore(){return this.state.enableInstantMuteRestore}set networkQualityProbe(C){this.state.networkQualityProbe=C}get networkQualityProbe(){return this.state.networkQualityProbe}set sessionId(C){this.dispatch({type:Pr.SET_SESSION_ID,sessionId:C})}get sessionId(){return this.state.sessionId}set rteUrl(C){this.dispatch({type:Pr.SET_RTE_URL,rteUrl:C})}get rteUrl(){return this.state.rteUrl}set rteSid(C){this.dispatch({type:Pr.SET_RTE_SID,rteSid:C})}get rteSid(){return this.state.rteSid}set cid(C){this.state.cid=C}get cid(){return this.state.cid}set codec(C){this.state.codec=C}get codec(){return this.state.codec}get mode(){return this.state.mode}get audioCodec(){return this.state.audioCodec}get clientId(){return this.state.clientId}set p2pId(C){this.dispatch({type:Pr.SET_P2P_ID,p2pId:C})}get p2pId(){return this.state.p2pId}set dcId(C){this.dispatch({type:Pr.SET_DC_ID,dcId:C})}get dcId(){return this.state.dcId}set uid(C){this.dispatch({type:Pr.SET_UID,uid:C})}get uid(){return this.state.uid}set intUid(C){this.dispatch({type:Pr.SET_INT_UID,intUid:C})}get intUid(){return this.state.intUid}set pubId(C){this.dispatch({type:Pr.SET_PUB_ID,pubId:C})}get pubId(){return this.state.pubId}set cloudProxyServerMode(C){this.dispatch({type:Pr.SET_CLOUD_PROXY_SERVER_MODE,mode:C})}get cloudProxyServerMode(){return this.state.cloudProxyServerMode}set useP2P(C){this.dispatch({type:Pr.SET_USE_P2P,val:C})}get useP2P(){return this.state.useP2P}set p2pTransport(C){this.dispatch({type:Pr.SET_TRANSPORT_TYPE,val:C})}get p2pTransport(){return this.state.p2pTransport}set hasStartJoinChannel(C){this.state.hasStartJoinChannel=C}get hasStartJoinChannel(){return this.state.hasStartJoinChannel}set isABTestSuccess(C){this.state.isABTestSuccess=C}get isABTestSuccess(){return this.state.isABTestSuccess}clientCreated(){this.dispatch({type:Pr.KEY_METRIC_CLIENT_CREATED,metric:Date.now()})}joinStart(){this.dispatch({type:Pr.KEY_METRIC_JOIN_START,metric:Date.now()})}preloadStart(){this.dispatch({type:Pr.KEY_METRIC_PRELOAD_START,metric:Date.now()})}preloadEnd(){this.dispatch({type:Pr.KEY_METRIC_PRELOAD_END,metric:Date.now()})}joinEnd(){this.dispatch({type:Pr.KEY_METRIC_JOIN_END,metric:Date.now()})}requestAPStart(){this.dispatch({type:Pr.KEY_METRIC_REQUEST_AP_START,metric:Date.now()})}requestAPEnd(){this.dispatch({type:Pr.KEY_METRIC_REQUEST_AP_END,metric:Date.now()})}requestSUAEnd(){this.dispatch({type:Pr.KEY_METRIC_REQUEST_SUA_END,metric:Date.now()})}beforeConnect(){this.dispatch({type:Pr.KEY_METRIC_BEFORE_CONNECT,metric:Date.now()})}peerReceiver(){this.dispatch({type:Pr.KEY_METRIC_PEER_RECEIVER,metric:Date.now()})}signalConnected(){this.dispatch({type:Pr.KEY_METRIC_SIGNAL_CONNECTED,metric:Date.now()})}joinReq(){this.dispatch({type:Pr.KEY_METRIC_JOIN_REQ,metric:Date.now()})}joinRep(){this.dispatch({type:Pr.KEY_METRIC_JOIN_REP,metric:Date.now()})}joinGatewayStart(){this.dispatch({type:Pr.KEY_METRIC_JOIN_GATEWAY_START,metric:Date.now()})}joinGatewayEnd(){this.dispatch({type:Pr.KEY_METRIC_JOIN_GATEWAY_END,metric:Date.now()})}peerConnectionStart(){this.dispatch({type:Pr.KEY_METRIC_PEER_CONNECTION_START,metric:Date.now()})}peerConnectionEnd(){this.dispatch({type:Pr.KEY_METRIC_PEER_CONNECTION_END,metric:Date.now()})}firstVideoFrameDecoded(C,m){this.dispatch({type:Pr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED,metric:Ot({userId:C},m)})}descriptionStart(){this.dispatch({type:Pr.KEY_METRIC_DESCRIPTION_START,metric:Date.now()})}signalChannelOpen(){this.dispatch({type:Pr.KEY_METRIC_SIGNAL_CHANNEL_OPEN,metric:Date.now()})}iceConnectionEnd(){this.dispatch({type:Pr.KEY_METRIC_ICE_CONNECTION_END,metric:Date.now()})}publish(C,m,y,w){this.dispatch({type:Pr.KEY_METRIC_PUBLISH,metric:Ot(Ot({trackId:C,type:m},y&&{publishStart:y}),w&&{publishEnd:w})})}subscribe(C,m,y,w,b,M,k){this.dispatch({type:Pr.KEY_METRIC_SUBSCRIBE,metric:Ot(Ot(Ot(Ot(Ot({userId:C,type:m},y&&{subscribeStart:y}),w&&{subscribeEnd:w}),b&&{firstFrame:b}),M&&{streamAdded:M}),k&&{firstDecoded:k})})}massSubscribe(C,m,y,w){C.forEach(b=>{this.dispatch({type:Pr.KEY_METRIC_SUBSCRIBE,metric:Ot(Ot(Ot({userId:b.userId,type:b.type},m&&{subscribeStart:m}),y&&{subscribeEnd:y}),w&&{firstFrame:w})})})}get keyMetrics(){return this.state.keyMetrics}recordJoinChannelService(C,m){C.service==="gateway"&&Array.isArray(C.urls)&&(C.urls=C.urls.map(y=>y.replace(/(\d+)-\d+-\d+-(\d+)/,"$1-*-*-$2")));try{return typeof m!="number"?(this.dispatch({type:Pr.RECORD_JOIN_CHANNEL_SERVICE,record:Ot(Ot({},C),{},{sessionId:this.sessionId,cloudProxyMode:this.cloudProxyServerMode,uid:this.uid})}),this.state.joinChannelServiceRecords.length-1):(m<0||m>=this.state.joinChannelServiceRecords.length||this.dispatch({type:Pr.RECORD_JOIN_CHANNEL_SERVICE,record:C,index:m}),m)}catch{return 0}}resetJoinChannelServiceRecords(){this.dispatch({type:Pr.RESET_JOIN_CHANNEL_SERVICE_RECORDS})}resetKeyMetrics(){this.dispatch({type:Pr.RESET_KEY_METRICS})}resetFirstVideoFrameDecoded(){this.dispatch({type:Pr.RESET_FIRST_VIDEO_FRAME_DECODED})}get joinChannelServiceRecords(){try{return this.state.joinChannelServiceRecords}catch{return[]}}}(a.codec,a.audioCodec,a.mode,this._clientId,Ie("SIGNAL_CHANNEL")===1),this._leaveMutex=new Is("client-leave",this._clientId),this._publishMutex=new Is("client-publish",this._clientId),this._renewTokenMutex=new Is("client-renewtoken",this._clientId),this._subscribeMutex=new Is("client-subscribe",this._clientId),this.store.clientCreated(),a.proxyServer&&this.setProxyServer(a.proxyServer,!0),a.turnServer&&this.setTurnServer(a.turnServer,!0),X.info("[".concat(this._clientId,"] Initializing AgoraRTC client v").concat(Cn," build: ").concat(o4,", mode: ").concat(this.mode,", codec: ").concat(this.codec)),a.clientRoleOptions)try{OC(a.clientRoleOptions),l=Object.assign({},a.clientRoleOptions)}catch(C){X.warning("[".concat(this._clientId,"] ").concat(C.toString()))}var g;this._statsCollector=new F2(this.store),this._statsCollector.onStatsException=(C,m,y)=>{X.warn("[".concat(this._clientId,"] receive exception msg, code: ").concat(C,", msg: ").concat(m,", uid: ").concat(y)),C===Yd.VIDEO_ENCODE_FAILED&&this.localTracks.forEach(w=>{w instanceof uy&&Ie("ENABLE_ENCODE_EXCEPTION")&&w.findClosestProfile()}),this.safeEmit(si.EXCEPTION,{code:C,msg:m,uid:y})},this._statsCollector.onUploadPublishDuration=(C,m,y,w)=>{let b=this._users.find(M=>M.uid===C);b&&(this.store.keyMetrics&&(this.store.firstVideoFrameDecoded(b.uid,{peerPublishDuration:y,peerPubStatusMs:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(b)),tr.peerPublishStatus(this._sessionId,{subscribeElapse:w,audioPublishDuration:m,videoPublishDuration:y,peer:b._uintid}))},this._statsCollector.onVideoCodecChanged=C=>{if(Ie("VIDEO_STANDARD_BITRATE_VERSION")&&(C==="av1"||C==="h265"||C==="h264")){let m=this.localTracks.find(y=>y instanceof Pi);m&&m._saveEncodeBitrateRatio!==1&&m.setSaveEncodeBitrateRatio(C==="h264"?Ie("BASELINE_MORE_H264_BITRATE_RATIO"):void 0)}},this.store.useP2P=a.mode==="p2p",this._gateway=new fa(this.store,{clientId:this._clientId,mode:this.mode,codec:this.codec,websocketRetryConfig:a.websocketRetryConfig||os,httpRetryConfig:a.httpRetryConfig||os,forceWaitGatewayResponse:a.forceWaitGatewayResponse===void 0||a.forceWaitGatewayResponse,statsCollector:this._statsCollector,role:a.role,clientRoleOptions:l}),this._configDistribute=new zJ(this._clientId,this.store),this.store.useP2P?(this._p2pChannel=(g={store:this.store,statsCollector:this._statsCollector},td("P2PChannel").create(g)),this._handleP2PEvents()):this._p2pChannel=new Wd(this.store,this._statsCollector),this._handleP2PChannelEvents(),this._handleGatewayEvents(),this._handleGatewaySignalEvents()}async joinMeta(a,A,l,g,C){let m=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],y=arguments.length>6&&arguments[6]!==void 0&&arguments[6];Mn("JOIN_GATEWAY_USE_443PORT_ONLY",m),Mn("JOIN_GATEWAY_USE_DUAL_DOMAIN",y);let w=this._gateway.signal.websocket;return w instanceof Lu&&(w.use443PortOnly=m,w.tryDoubleDomain=y),async function(b,M,k){pR.get(b)||pR.set(b,[]),fR.get(b)||fR.set(b,M),Qu.get(b)||Qu.set(b,0);let V=pR.get(b),K=fR.get(b);if(!V||!K)throw new Error("concurrent: deferQueue or maxConcurrency is null");if(Qu.get(b)===K){let pe=ff();V.push(pe),await pe.promise}Qu.set(b,Qu.get(b)+1);for(var q=arguments.length,ce=new Array(q>3?q-3:0),oe=3;oe0&&(V[0].resolve(),V.shift()),Qu.get(b)===0&&(pR.set(b,[]),fR.set(b,0),Qu.set(b,0)),le}("client.join",Ie("JOIN_MAX_CONCURRENCY"),this.join.bind(this),a,A,l,g,C)}async join(a,A,l,g,C){let m=++this._numberOfJoinCount;this.store.joinStart(),g&&(this.store.uid=g);let y=(bf||bf||(bf=(window.location.protocol.split(":")[0]||"").toUpperCase(),bf))==="HTTPS",w=r4()?window.isSecureContext:"Browser Not Support";(!r4()&&!y||!window.isSecureContext)&&X.warning("The website must be running in a secure context (About secure context: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts ), otherwise the media collection will be restricted by the browser");let b;tr.setAppId(a);try{if(!l&&l!==null)throw new ze(fe.INVALID_PARAMS,"Invalid token: ".concat(l,". If you don not use token, set it to null"));if(l&&Tr(l,"token",1,2047),Tr(a,"appid",1,2047),t_(A),g&&r_(g),C)if(typeof C=="string")Tr(C,"optionalInfo",1,256),b=C;else{if(typeof C!="object")throw new ze(fe.INVALID_PARAMS,"Invalid options: options is not a string or object");{let{autoSubscribe:le,enableInstantMuteRestore:pe,networkQualityProbe:Se}=C;le&&(Yl(le,"autoSubscribe"),X.info("[".concat(this._clientId,"] join: autoSubscribe: ").concat(le)),this.store.autoSubscribe=le),pe&&(Yl(pe,"enableInstantMuteRestore"),X.info("[".concat(this._clientId,"] join: enableInstantMuteRestore: ").concat(pe)),this.store.enableInstantMuteRestore=pe),Se&&(Yl(Se,"networkQualityProbe"),X.info("[".concat(this._clientId,"] join: networkQualityProbe: ").concat(Se)),this.store.networkQualityProbe=Se)}}}catch(le){throw tr.reportApiInvoke(Ln(),{name:Co.JOIN,options:[a,A,l,g],states:{isHttps:y,isSecureContext:w},tag:Gn.TRACER}).onError(le),le}if(this._leaveMutex.isLocked&&(X.debug("[".concat(this._clientId,"] join: waiting leave operation")),(await this._leaveMutex.lock())(),X.debug("[".concat(this._clientId,"] join: continue"))),this._joinAndNotLeaveYet=!0,this.connectionState!=="DISCONNECTED"){let le=new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already in connecting/connected state"));throw tr.reportApiInvoke(Ln(),{name:Co.JOIN,options:[a,A,l,g],states:{isHttps:y,isSecureContext:w},tag:Gn.TRACER}).onError(le),le}this._gateway.state="CONNECTING",this.store.preloadStart();let M=await tQ({appId:a,cname:A,uid:g,stringUid:typeof g=="string"?g:void 0,token:l||a,cloudProxyServer:this._cloudProxyServerMode});if(this.store.preloadEnd(),!this._joinAndNotLeaveYet)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));let k=(M==null?void 0:M.sid)||Ln();X.info("[".concat(this._clientId,"] start join channel ").concat(A,", join number: ").concat(m)),this._sessionId||(this._sessionId=k,this.store.sessionId=this._sessionId);let V=tr.reportApiInvoke(this._sessionId,{id:this._clientId,name:Co.JOIN,options:[a,A,l,g],states:{isHttps:y,isSecureContext:w},tag:Gn.TRACER}),K=ac(ac(ac({},this._rtmConfig),{},{role:this.role,clientId:this._clientId,appId:a,sid:this._sessionId,cname:A,uid:typeof g!="string"?g:null,turnServer:this._turnServer,proxyServer:this._proxyServer,token:l||a,cloudProxyServer:this._cloudProxyServerMode,optionalInfo:b,license:this._license,useLocalAccessPoint:this._useLocalAccessPoint,preload:!!M},this._remoteDefaultVideoStreamType!==void 0&&{defaultVideoStream:this._remoteDefaultVideoStreamType}),{},{apRequestDetail:Ie("AP_REQUEST_DETAIL")||void 0});if(this._useLocalAccessPoint&&(K.setLocalAPVersion=this._setLocalAPVersion),typeof g=="string"&&(K.stringUid=g,this._uintUid?(K.uid=this._uintUid,this._uintUid=void 0):K.uid=0),this._encryptionMode!=="none"&&this._encryptionSecret){if(K.aesmode=this._encryptionMode,K.aespassword=await(async le=>{let pe=function(xe){let Le=window.atob(`MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCMnXAHkKIGAM+x4N22gCI+Wyu +STM9ztkT3uYslTT2PuKmZfPzhH6kVdO7PTjGCOZnAsyb3oTtWat0KcxQ4jxvqQV+ +HvYl3iI1Yd4vl2c3qRMJPLtRDfNxa2Mcxgq7e9aEUibzdd0st+OJAy3tOj/Y0aVy +xQiYDz3vqa6bP29adwIDAQAB`),je=new Uint8Array(new ArrayBuffer(Le.length));for(let dt=0;dt{this.connectionState==="CONNECTING"&&q===this._sessionId&&tr.joinChannelTimeout(this._sessionId,5)},5e3);try{var ce;let le,pe=K.cloudProxyServer;if(Rt(ce=["proxy3","proxy4","proxy5"]).call(ce,pe)){let Le=Ie("PROXY_SERVER_TYPE3");Array.isArray(Le)?K.proxyServer=Le[0]:K.proxyServer=Le}if(tr.setProxyServer(K.proxyServer),X.setProxyServer(K.proxyServer),this.store.requestAPStart(),M){if(X.debug("[".concat(this._clientId,"] get serverInfo Success from Preload Cache ").concat(K.stringUid?", ".concat(K.stringUid," => ").concat(M.intUid):""," ")),K.stringUid&&!K.uid&&(K.uid=M.intUid),le={gatewayInfo:M.ap.gatewayInfo},Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY")&&K.turnServer.mode==="auto")if(M.ap.proxyInfo.addresses.length===0)X.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers");else{let Le=(await CN(M.ap.proxyInfo,M.ap.gatewayInfo.uid)).map(je=>({turnServerURL:je.address,tcpport:je.tcpport||Ti.tcpport,udpport:je.udpport||Ti.udpport,username:je.username||Ti.username,password:je.password||Ti.password,forceturn:!1,security:!0}));K.turnServer={mode:"manual",servers:Le}}S7(M,K.stringUid)}else{if(K.stringUid&&!K.uid){let Le;[Le,le]=await Ft.all([g7(K.stringUid,K,this._axiosCancelSource.token,this._config.httpRetryConfig||os,this.store).finally(()=>{this.store.requestSUAEnd()}),QN(K,this._axiosCancelSource.token,this._config.httpRetryConfig||os,!0,this.store).finally(()=>{this.store.requestAPEnd()})]),X.debug("[".concat(this._clientId,"] getUserAccount Success ").concat(K.stringUid," => ").concat(Le)),K.uid=Le,le.gatewayInfo.uid=Le,le.gatewayInfo.res.uid=Le}else le=await QN(K,this._axiosCancelSource.token,this._config.httpRetryConfig||os,!0,this.store);if(!this._joinAndNotLeaveYet)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"))}this.store.requestAPEnd(),setTimeout(()=>{this._configDistribute.startGetConfigDistribute(K,this._axiosCancelSource.token),this._configDistribute.on(Il.UPDATE_BITRATE_LIMIT,Le=>{this._p2pChannel.updateBitrateLimit(Le)}),this._configDistribute.on(Il.UPDATE_CLIENT_ROLE_OPTIONS,Le=>{this._setClientRoleOptions(Le)}),this._configDistribute.on(Il.UPDATE_REMOTE_VIDEO_STREAM_TYPE,Le=>{var je;Rt(je=[0,1,4,5,6,7,8,9]).call(je,Le)&&(this.remoteUsers.forEach(dt=>{this._remoteStreamTypeCacheMap.get(dt.uid)!==Le&&this.setRemoteVideoStreamType(dt.uid,Le)}),this.setRemoteDefaultVideoStreamType(Le))}),this._configDistribute.on(Il.FALLBACK_TO_HLS,Le=>{Le&&this.safeEmit(si.FALLBACK_TO_HLS,LC.CONFIG)}),this._configDistribute.on(Il.UPDATE_VOS_CONFIGURE,Le=>{this._gateway.setConfigure(Le).catch(je=>{X.debug("[".concat(this._clientId,"] auto set vos config failed"),je)})})},0),this._key=l||a;let Se=le.gatewayInfo,be=K.uid?K.uid:Se.uid;this._joinInfo=ac(ac({},K),{},{cid:Se.cid,uid:be,vid:Se.vid,apResponse:Se.res,apGatewayAddress:Se.apGatewayAddress,uni_lbs_ip:Se.uni_lbs_ip,gatewayAddrs:Se.gatewayAddrs}),this.store.intUid=be,this.store.cid=Se.cid;let Ue=await this._joinGateway();if(!this._joinAndNotLeaveYet)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));V.onSuccess(Ue),this._appId=a,this._channelName=K.cname,this._uid=Ue,this.store.uid=Ue,setTimeout(()=>{this._networkQualityInterval&&window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=window.setInterval(this._handleUpdateNetworkQuality,2e3),!$s()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener($s()?"beforeunload":"pagehide",this._handleBeforeUnload),this._statsCollector.startUpdateStats()},0);let xe=K.stringUid?"string uid: ".concat(K.stringUid,",uid: ").concat(K.uid):"uid: ".concat(this._uid);return X.info("[".concat(this._clientId,"] Joining channel success: channel: ").concat(A,",").concat(xe)),setTimeout(()=>{X.startUpload()},5e3),this.store.joinEnd(),oe=this,Rt(ys).call(ys,oe)||ys.push(oe),this._cloudProxyServerMode==="disabled"&&Bi().supportWebCrypto&&Ie("ENABLE_PRELOAD")&&rQ(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0),this._sessionId&&tr.reportRteDetail(this._sessionId),this._rteDetailInterval=window.setInterval(()=>{this._sessionId&&tr.reportRteDetail(this._sessionId)},Ie("RTE_DETAIL_REPORT_INTERVAL")||6e4),Ue}catch(le){let pe=Array.isArray(le)?le[0]:le;throw pe&&pe.code===fe.OPERATION_ABORTED?X.warning("[".concat(this._clientId,"] join number: ").concat(m,", Joining channel failed, rollback"),pe):X.error("[".concat(this._clientId,"] join number: ").concat(m,", Joining channel failed, rollback"),pe),pe.code!==fe.OPERATION_ABORTED&&this._numberOfJoinCount===m&&(this._gateway.state="DISCONNECTED",this._reset()),V.onError(pe),pe}var oe}async _joinGateway(){if(!this._joinInfo||!this._key)throw new ze(fe.INVALID_OPERATION);try{return await this._gateway.join(this._joinInfo,this._key,!(this._joinInfo.cloudProxyServer!=="disabled"||this._joinInfo.proxyServer||!Ie("JOIN_WITH_FALLBACK_SIGNAL_PROXY")))}catch(a){if(a.code===fe.INIT_DATACHANNEL_TIMEOUT){if(this._gateway.leave(!0,bi.FALLBACK),X.debug("[".concat(this._clientId,"] join by datachannel timeout, fallback to websocket")),!this._joinInfo||!this._key)throw new ze(fe.INVALID_OPERATION);return tr.reportApiInvoke(this._sessionId,{name:Co.DATACHANNEL_FAILBACK,options:[this.store.clientId],tag:Gn.TRACER}).onSuccess(),await this._joinGateway()}throw a}}async leave(){X.info("[".concat(this._clientId,"] Leaving channel"));let a=()=>{!$s()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener($s()?"beforeunload":"pagehide",this._handleBeforeUnload),this._reset(),function(l){let g=ys.indexOf(l);g!==-1&&ys.splice(g,1)}(this),this._statsCollector.stopUpdateStats()};this.store.useDcSignal||a();let A=await this._leaveMutex.lock();if(this.connectionState==="DISCONNECTED")return X.info("[".concat(this._clientId,"] Leaving channel repeated, success")),void A();await this._gateway.leave(this.connectionState!=="CONNECTED",bi.LEAVE),X.info("[".concat(this._clientId,"] Leaving channel success")),this._joinAndNotLeaveYet=!1,this.store.resetJoinChannelServiceRecords(),A(),this.store.useDcSignal&&a()}async publish(a){let A=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!Array.isArray(a)){if(!(a instanceof UC))return this._publishDataChannel(a);a=[a]}if(a.length===0)throw new ze(fe.INVALID_PARAMS,"param list is empty");let l=a;if(this._gateway.role==="audience")throw new ze(fe.INVALID_OPERATION,"audience can not publish stream");for(let C of l){if(!(C instanceof UC))throw new ze(fe.INVALID_PARAMS,"parameter is not local track");if(!C._enabled&&A)throw new ze(fe.TRACK_IS_DISABLED,"can not publish a disabled track: ".concat(C.getTrackId()))}X.info("[".concat(this._clientId,"] Publishing tracks, id ").concat(l.map(C=>"".concat(C.getTrackId()," "))));let g=await this._publishMutex.lock();await this._configDistribute.awaitConfigDistributeComplete(),A&&l.forEach(C=>{let m=this._configDistribute.getBitrateLimit();C instanceof Pi&&m&&C.setBitrateLimit(m.uplink)});try{await this._publishHighStream(l),X.info("[".concat(this._clientId,"] Publish success, id ").concat(l.map(C=>"".concat(C.getTrackId()," "))))}catch(C){throw X.error("[".concat(this._clientId,"] publish error"),C.toString()),C}finally{g()}}async _publishDataChannel(a){if(a==null)throw new ze(fe.INVALID_PARAMS,"parameter is not local track or datachannel config, config is ".concat(JSON.stringify(a)));Rn(a.id,"id",0,65535,!0),Yl(a.ordered,"ordered"),Tr(a.metadata,"metadata",0,512),X.info("[".concat(this._clientId,"] Publishing datachannels, id ").concat(a.id));let A=await this._publishMutex.lock();try{if(this._p2pChannel.getAllDataChannels().findIndex(C=>C.id===a.id)!==-1)throw new ze(fe.INVALID_PARAMS,"Invalid id: ".concat(a.id,". If you want to republish the datachannel, unpublish first"));if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't publish datachannel, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish datachannel in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&Ie("FORCE_TURN")&&!Ie("TURN_ENABLE_TCP")&&!Ie("TURN_ENABLE_UDP"))throw new ze(fe.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");let l=function(C){return Qt(C,!1)}(a),g=await this._p2pChannel.publishDataChannel([l]);if(g.length>0){if(typeof l._originDataChannelId!="number")throw X.error("[".concat(this._clientId,"] can not publish with mediaType datachannel, cannot get RTCDatachannel id")),new ze(fe.CREATE_DATACHANNEL_ERROR);try{await Ft.all(g.map(C=>this._uid&&this._gateway.publishDataChannel(this._uid,C,!0))),await l._waitTillOpen()}catch(C){if(C.code!==fe.DISCONNECT_P2P)throw C}}return X.info("[".concat(this._clientId,"] Publish dataChannels success, id ").concat(l.id)),l}catch(l){throw X.error("[".concat(this._clientId,"] publish datachannels error"),l.toString()),l}finally{A()}}async unpublish(a){if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't unpublish stream, haven't joined yet!");let A=[];if(a)if(Array.isArray(a))A=a;else{if(!(a instanceof UC))return this._unpublishDataChannel([a]);A=[a]}else this.store.useP2P||await this._unpublishDataChannel(),A=this._p2pChannel.getAllTracks(!0);X.info("[".concat(this._clientId,"] Unpublish tracks, tracks ").concat(A.map(g=>"".concat(g.getTrackId()," "))," "));let l=await this._publishMutex.lock();try{if(this.store.useP2P){let g=await this._p2pChannel.unpublish(A);g&&await this._gateway.sendExtensionMessage(Ro.UNPUBLISH,{unpubMsg:g},!0)}else{let g=await this._p2pChannel.unpublish(A);g&&await this._gateway.unpublish(g,this._uid),X.info("[".concat(this._clientId,"] Unpublish success,tracks ").concat(A.map(C=>"".concat(C.getTrackId()))))}}catch(g){throw X.error("[".concat(this._clientId,"] unpublish error"),g.toString()),g}finally{l&&l()}}async _unpublishDataChannel(a){a!==void 0&&a.length!==0||(a=this._p2pChannel.getAllDataChannels()),X.info("[".concat(this._clientId,"] Unpublish datachannels, datachannels ").concat(a.map(l=>"".concat(l.id," "))," "));let A=await this._publishMutex.lock();try{let l=await this._p2pChannel.unpublishDataChannel(a);l&&await this._gateway.unpublishDataChannel(l),X.info("[".concat(this._clientId,"] Unpublish dataChannel success,dataChannel ").concat(a.map(g=>"".concat(g.id))))}catch(l){throw X.error("[".concat(this._clientId,"] unpublish dataChannel error"),l.toString()),l}finally{A&&A()}}async subscribe(a,A,l){if(!(a instanceof xg)){let g=this.remoteUsers.find(C=>C.uid===a);if(!g)throw new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");a=g}return A==="datachannel"?this._subscribeDataChannel(a,l):this._subscribe(a,A)}async presubscribe(a,A){if(zo(A,"mediaType",["audio","video"]),this.store.useP2P)throw new ze(fe.INVALID_OPERATION,"can't presub at p2p mode");if(!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can't presub when not join");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can't presub in ".concat(this.connectionState," state"));let l=A===$t.AUDIO,g=A===$t.VIDEO,C=await this._subscribeMutex.lock();try{let{ssrcId:m,ortc:y,rtxSsrcId:w,cname:b,uint_id:M}=await this._gateway.presubscribe(a,A,!0);if(m==null)throw new ze(fe.UNEXPECTED_RESPONSE,"no ssrc id");let k=this._users.find(K=>K.uid===a);k||(k=new xg(a,M||a),k._is_pre_created=!0,this._users.push(k)),b&&(k._cname=b),k._uintid||(k._uintid=M||a),l&&(k._audioSSRC=m,k._audio_pre_subscribed=!0,y&&(k._audioOrtc=y)),g&&(k._videoSSRC=m,k._video_pre_subscribed=!0,y&&(k._videoOrtc=y),w!=null&&(k._rtxSsrcId=w)),X.info("[".concat(this._clientId,"] presub succeed ssrc: ").concat(m)),await this._p2pChannel.subscribe(k,A,m,w,y);let V=l?k._audioTrack:k._videoTrack;if(!V)throw new ze(fe.UNEXPECTED_ERROR,"can not find remote track in user");return l&&(k._trust_audio_stream_added_state_=!0,k._audio_added_=!0),g&&(k._trust_video_stream_added_state_=!0,k._video_added_=!0),V}catch(m){throw X.error("[".concat(this._clientId,"] presub user ").concat(a," error"),m),m}finally{C()}}async _subscribeDataChannel(a,A){var l;if(Rn(A,"channelId",0,65535,!0),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe datachannel, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe datachannel in ".concat(this.connectionState," state"));if(!this._users.find(y=>y===a))throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", this user is not in the channel")),new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");if(!a.hasAudio&&!a.hasVideo&&a._dataChannels.length===0)throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", user is not published")),new ze(fe.INVALID_REMOTE_USER,"user is not published");let g=(l=a._dataChannels)===null||l===void 0?void 0:l.find(y=>y.id===A);if(!g)throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType datachannel, remote datachannel is not published")),new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);let C=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"] subscribe user ").concat(a.uid,", mediaType: datachannel"));try{let y=await this._p2pChannel.subscribeDataChannel(a,[g]);if(y&&Rt(y).call(y,g.id))try{var m;if(typeof g._originDataChannelId!="number")throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType datachannel, cannot get RTCDatachannel")),new ze(fe.CREATE_DATACHANNEL_ERROR);let w={id:g.id,datachannelId:g._originDataChannelId,ordered:g.ordered,maxRetransmits:g.maxRetransmits,metadata:(m=g.metadata)!==null&&m!==void 0?m:""};await this._gateway.subscribeDataChannel(a.uid,w,!0),await g._waitTillOpen()}catch(w){if((w==null?void 0:w.code)!==fe.WS_ABORT)throw await this._p2pChannel.unsubscribeDataChannel(a,[g]),w;await this._p2pChannel.unsubscribeDataChannel(a,[g]),this._p2pChannel.setPendingRemoteDataChannel(a,g.id)}return X.info("[".concat(this._clientId,"] subscribe success user ").concat(a.uid,", mediaType: datachannel")),g}finally{C()}}async _p2pSubscribe(a,A,l){if(zo(A,"mediaType",["audio","video"]),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(C=>C===a)){let C=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", this user is not in the channel")),C}if(!a.hasAudio&&!a.hasVideo){let C=new ze(fe.INVALID_REMOTE_USER,"user is not published");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", user is not published")),C}if(!l&&(A==="audio"&&!a.hasAudio||A==="video"&&!a.hasVideo)){let C=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType ").concat(A,", remote track is not published")),C}let g=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"] subscribe user ").concat(a.uid,", mediaType: ").concat(A));try{if(await this._p2pChannel.hasRemoteMediaWithLock(a,A))await this._p2pChannel.unmuteRemote(a,A);else try{let m=A==="audio"?a._audioSSRC:a._videoSSRC,y=A==="audio"?a._audioMid:a._videoMid;this.store.subscribe(a.uid,A,Date.now()),this.store.useP2P&&await this._p2pChannel.subscribe(a,A,m,y)}catch(m){throw m}X.info("[".concat(this._clientId,"] subscribe success user ").concat(a.uid,", mediaType: ").concat(A)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(a.uid,this._defaultStreamFallbackType).catch(m=>{X.warning("[".concat(this._clientId,"] auto set fallback failed"),m)});let C=A==="audio"?a._audioTrack:a._videoTrack;if(!C)throw new ze(fe.UNEXPECTED_ERROR,"can not find remote track in user object");return C}catch(C){throw X.error("[".concat(this._clientId,"] subscribe user ").concat(a.uid," error"),C),C}finally{g()}}async _subscribe(a,A,l){if(this.store.useP2P)return this._p2pSubscribe(a,A);if(zo(A,"mediaType",["audio","video"]),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(b=>b===a)){let b=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", this user is not in the channel")),b}if(!a.hasAudio&&!a.hasVideo){let b=new ze(fe.INVALID_REMOTE_USER,"user is not published");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", user is not published")),b}if(!(l||(A!=="audio"||a.hasAudio&&a._audioSSRC!==void 0)&&(A!=="video"||a.hasVideo&&a._videoSSRC!==void 0))){let b=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType ").concat(A,", remote track is not published")),b}let g=A==="audio"?a._audioSSRC:a._videoSSRC,C=A==="audio"?a._audioOrtc:a._videoOrtc,m=A==="video"?a._rtxSsrcId:void 0,y={stream_type:A==="audio"?$t.AUDIO:$t.VIDEO,ssrcId:g};A==="video"&&this.store.firstVideoFrameDecoded(a.uid,{subscribeStart:Date.now()});let w=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"] subscribe user ").concat(a.uid,", mediaType: ").concat(A));try{if(await this._p2pChannel.hasRemoteMediaWithLock(a,A))await this._p2pChannel.unmuteRemote(a,A);else try{let M=A==="audio"?a._audioSSRC:a._videoSSRC;M!==void 0&&M!==g&&(g=M,C=A==="audio"?a._audioOrtc:a._videoOrtc,m=A==="video"?a._rtxSsrcId:void 0,y={stream_type:A==="audio"?$t.AUDIO:$t.VIDEO,ssrcId:g}),aa.markSubscribeStart(this.store.clientId,g),this.store.subscribe(a.uid,A,Date.now()),await this._p2pChannel.subscribe(a,A,g,m,C);try{this._p2pChannel.isPreSubScribe(g)||await this._gateway.subscribe(a.uid,y,!0)}catch(k){if((k==null?void 0:k.code)!==fe.WS_ABORT)throw await this._p2pChannel.unsubscribe(a,A),k;await this._p2pChannel.unsubscribe(a,A,!0),this._p2pChannel.setPendingRemoteMedia(a,A)}this.store.subscribe(a.uid,A,void 0,Date.now()),this._p2pChannel.reportSubscribeEvent(!0,null,a,A)}catch(M){throw this._p2pChannel.reportSubscribeEvent(!1,M==null?void 0:M.code,a,A),M}X.info("[".concat(this._clientId,"] subscribe success user ").concat(a.uid,", mediaType: ").concat(A)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(a.uid,this._defaultStreamFallbackType).catch(M=>{X.warning("[".concat(this._clientId,"] auto set fallback failed"),M)});let b=A==="audio"?a._audioTrack:a._videoTrack;if(!b)throw new ze(fe.UNEXPECTED_ERROR,"can not find remote track in user object");return A==="video"&&(this.store.firstVideoFrameDecoded(a.uid,{subscribeEnd:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(a)),b}catch(b){throw X.error("[".concat(this._clientId,"] subscribe user ").concat(a.uid," error"),b),b}finally{w()}}async massSubscribe(a){if(Qc(a,"subscribeList"),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));let A=Date.now(),l=new Map,g=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"]start massSubscribe user ").concat(a.map(w=>{let{user:b,mediaType:M}=w;return"user: ".concat(b==null?void 0:b.uid,", mediaType: ").concat(M)}).join("; ")));let C=(a=[...a]).map(w=>{let{user:b,mediaType:M}=w;return{user:b,mediaType:M}}),m=await this._p2pChannel.globalLock();try{var y;for(let b=a.length-1;b>=0;b--){let M=a[b],{user:k,mediaType:V}=M;if(zo(V,"mediaType",["audio","video"]),!k){let ce=new ze(fe.INVALID_PARAMS,"user property does not exist in subscribeList item");throw X.error("[".concat(this._clientId,"] user property does not exist in subscribeList item")),ce}if(!this._users.find(ce=>ce===k)){let ce=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");X.error("[".concat(this._clientId,"] can not massSubscribe ").concat(k.uid,", this user is not in the channel")),C[b].error=ce,a.splice(b,1);continue}if(V==="audio"&&(!k.hasAudio||k._audioSSRC===void 0)||V==="video"&&(!k.hasVideo||k._videoSSRC===void 0)){let ce=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);X.error("[".concat(this._clientId,"] can not subscribe ").concat(k.uid," with mediaType ").concat(V,", remote user is not published")),C[b].error=ce,a.splice(b,1);continue}let K=na.Video|na.LwoVideo,q=l.get(k);if(q){if(V==="video"?q&K:q&na.Audio){a.splice(b,1),X.warning("[".concat(this._clientId,"] repeat massSubscribe user:").concat(k.uid,", mediaType:").concat(V," twice"));continue}l.set(k,q|(V==="video"?K:na.Audio))}else l.set(k,V==="video"?K:na.Audio)}for(let b=a.length-1;b>=0;b--){let M=a[b],{user:k,mediaType:V}=M,K=na.Video|na.LwoVideo;if(this._p2pChannel.hasRemoteMedia(k,V)){await this._p2pChannel.unmuteRemoteNoLock(k,V);let q=l.get(k);l.set(k,V==="video"?q^K:q^na.Audio),a.splice(b,1)}}this.store.massSubscribe(a.map(b=>({userId:b.user.uid,type:b.mediaType})),A);let w=$c(y=Array.from(l.entries())).call(y,(b,M)=>{let[k,V]=M;if(V===0)return b;let K={stream_id:k.uid,stream_type:V};return V&na.Audio&&(K.audio_ssrc=k._audioSSRC),V&na.Video&&(K.video_ssrc=k._videoSSRC),b.push(K),b},[]);try{a.length>0&&await this._p2pChannel.massSubscribeNoLock(a.map(M=>{let{user:k,mediaType:V}=M;return{user:k,mediaType:V,ssrcId:V===$t.VIDEO?k._videoSSRC:k._audioSSRC,rtxSsrcId:V===$t.VIDEO?k._rtxSsrcId:void 0}}));let b=new Map;if(w=w.filter(M=>M.video_ssrc&&!this._p2pChannel.isPreSubScribe(M.video_ssrc)||M.audio_ssrc&&!this._p2pChannel.isPreSubScribe(M.audio_ssrc)||!M.video_ssrc&&!M.audio_ssrc),w.length>0){let M=await this._gateway.subscribeAll(w,!0);((M==null?void 0:M.users)||[]).forEach(k=>{let{stream_id:V,video_error_code:K,audio_error_code:q,error_code:ce}=k;(K||q||ce)&&b.set(V,{video_error_code:K,audio_error_code:q,error_code:ce})})}if(Array.from(b.entries()).length>0){let M=[];Array.from(b.entries()).forEach(k=>{let[V,K]=k,q=this.remoteUsers.find(ce=>ce.uid===V);if(q){let ce;K.error_code||K.video_error_code&&K.audio_error_code?ce=void 0:K.video_error_code?ce=$t.VIDEO:K.audio_error_code&&(ce=$t.AUDIO),M.push({user:q,mediaType:ce})}}),M.length>0&&await this._p2pChannel.massUnsubscribeNoLock(M)}for(let M of C){let k=b.get(M.user.uid);if(k){let V=k.error_code||M.mediaType==="audio"&&k.audio_error_code||M.mediaType==="video"&&k.video_error_code;if(V){let K=O2(V);X.error("user:".concat(M.user.uid," mediaType:").concat(M.mediaType," has massSubscribe error ").concat(K.desc)),M.error=new ze(fe.SUBSCRIBE_FAILED,"code ".concat(V,": ").concat(K.desc))}}M.error||(M.mediaType==="video"?M.track=M.user.videoTrack:M.track=M.user.audioTrack)}return this.store.massSubscribe(C.filter(M=>!M.error).map(M=>({userId:M.user.uid,type:M.mediaType})),void 0,Date.now()),C.forEach(M=>{var k;tr.subscribe(this.store.sessionId,{succ:!!M.error,ec:((k=M.error)===null||k===void 0?void 0:k.code)||null,video:M.mediaType===$t.VIDEO,audio:M.mediaType===$t.AUDIO,peerid:M.user.uid,subscribeRequestid:M.mediaType===$t.VIDEO?M.user._videoSSRC:M.user._audioSSRC,p2pid:this.store.p2pId,eventElapse:Math.floor(performance.now()-A),preSsrc:this._p2pChannel.isPreSubScribe(M.user._videoSSRC)},!0)}),X.info("[".concat(this._clientId,"] massSubscribe success ").concat(a.map(M=>{let{user:k,mediaType:V}=M;return"user: ".concat(k==null?void 0:k.uid,", mediaType: ").concat(V)}).join("; "))),C}catch(b){throw await this._p2pChannel.massUnsubscribeNoLock(a),b}}finally{m(),g()}}async unsubscribe(a,A,l){if(!(a instanceof xg)){let C=this.remoteUsers.find(m=>m.uid===a);if(!C)throw new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");a=C}if(A||this.store.useP2P){if(A==="datachannel")return this._unsubscribeDataChannel(a,l)}else await this._unsubscribeDataChannel(a,l);if(A&&zo(A,"mediaType",["audio","video"]),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't unsubscribe stream, haven't joined yet!");if(!this._users.find(C=>C===a)){let C=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not unsubscribe ").concat(a.uid,", user is not in the channel")),C}X.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(a.uid,", mediaType: ").concat(A));let g=await this._subscribeMutex.lock();try{if(this.store.useP2P)await this._p2pChannel.unsubscribe(a,A);else{let C=await this._p2pChannel.unsubscribe(a,A);C&&await this._gateway.unsubscribe(C,a.uid),A&&A!=="audio"||(a._audio_pre_subscribed=!1),A&&A!=="video"||(a._video_pre_subscribed=!1),a._is_pre_created&&sl(this._users,a),X.info("[".concat(this._clientId,"] unsubscribe success uid: ").concat(a.uid,", mediaType: ").concat(A))}}catch(C){if(C.code===fe.DISCONNECT_P2P)return void X.warning("disconnecting p2p, abort unsubscribe request.");throw X.error("[".concat(this._clientId,"] unsubscribe user ").concat(a.uid," error"),C.toString()),C}finally{g()}}async _unsubscribeDataChannel(a,A){if(A&&Rn(A,"id",0,65535,!0),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't unsubscribe datachannel, haven't joined yet!");if(!this._users.find(g=>g===a)){let g=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not unsubscribe ").concat(a.uid,", user is not in the channel")),g}let l;if(typeof A=="number"){let g=a._dataChannels.find(C=>C.id===A);g&&(l=[g])}else l=a._dataChannels;if(l===void 0){let g=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);throw X.error("[".concat(this._clientId,"] can not unsubscribe ").concat(a.uid," with channelId ").concat(A,", remote datachannel is not published")),g}X.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(a.uid,", mediaType: datachannel, ids: ").concat(l.map(g=>g.id)));try{let g=await this._p2pChannel.unsubscribeDataChannel(a,l);g&&await this._gateway.unsubscribeDataChannel(g,a.uid),X.info("[".concat(this._clientId,"] unsubscribe datachannel success uid: ").concat(a.uid,", mediaType: datachannel, ids: ").concat(g))}catch(g){if(g.code===fe.DISCONNECT_P2P)return void X.warning("disconnecting p2p, abort unsubscribe request.");throw X.error("[".concat(this._clientId,"] unsubscribe user ").concat(a.uid," error"),g.toString()),g}}async massUnsubscribe(a){if(Qc(a,"unsubscribeList"),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't unsubscribeAll stream, haven't joined yet!");X.info("[".concat(this._clientId,"] start massUnsubscribe ").concat(a.map(l=>{let{user:g,mediaType:C}=l;return"user: ".concat(g==null?void 0:g.uid,", mediaType: ").concat(C,";")}).join())),a=[...a];let A=new Map;for(let l=a.length-1;l>=0;l--){let{user:g,mediaType:C}=a[l];if(!g){let y=new ze(fe.INVALID_PARAMS,"user property does not exist in unsubscribeList item");throw X.error("[".concat(this._clientId,"] user property does not exist in unsubscribeList item")),y}if(zo(C,"mediaType",["video","audio",void 0]),!this._users.find(y=>y===g)){X.warning("[".concat(this._clientId,"] can not unsubscribe ").concat(g.uid,", user is not in the channel")),a.splice(l,1);continue}let m=na.Video|na.LwoVideo;if(A.has(g)){let y=A.get(g),w;switch(C){case"video":w=y&m;break;case"audio":w=y&na.Audio;break;default:w=y&(na.Audio|m)}if(w){X.warning("[".concat(this._clientId,"] repeat massUnsubscribe user:").concat(g.uid,",mediaType:").concat(C," twice.")),a.splice(l,1);continue}C?C==="audio"?A.set(g,y|na.Audio):C==="video"&&A.set(g,y|m):A.set(g,y|na.Audio|m)}else C?C==="audio"?A.set(g,na.Audio):C==="video"&&A.set(g,m):A.set(g,na.Audio|m)}try{let l=await this._p2pChannel.massUnsubscribe(a);l&&await this._gateway.massUnsubscribe(l),X.info("[".concat(this._clientId,"] massUnsubscribe success ").concat(a.map(g=>{let{user:C,mediaType:m}=g;return"user: ".concat(C==null?void 0:C.uid,", mediaType: ").concat(m,";")}).join()))}catch(l){if(l.code===fe.DISCONNECT_P2P)return void X.warning("[".concat(this._clientId,"] disconnecting p2p, abort unsubscribe request."));throw X.error("[".concat(this._clientId,"] massUnsubscribe error"),l.toString()),l}}async setLowStreamParameter(a){(function(l){if(!l)throw new nt(fe.INVALID_PARAMS);mo(l.width)||AA(l.width,"streamParameter.width"),mo(l.height)||AA(l.height,"streamParameter.height"),mo(l.framerate)||AA(l.framerate,"streamParameter.framerate"),mo(l.bitrate)||Rn(l.bitrate,"streamParameter.bitrate")})(a),(!a.width&&a.height||a.width&&!a.height)&&X.warning("[".concat(this._clientId,"] The width and height parameters take effect only when both are set")),X.info("[".concat(this._clientId,"] set low stream parameter to"),JSON.stringify(a));let A=this._configDistribute.getLowStreamConfigDistribute();if(A&&A.bitrate&&a.bitrate&&A.bitrate{X.warning("[".concat(this._clientId,"] set dual stream mode failed"),l.toString())}):X.debug("[".concat(this._clientId,"] haven't joined yet, cache dual stream mode ").concat(a)),a){case n2.AUTO_SIMULCAST_STREAM:X.info("[".concat(this._clientId,"] set dual stream mode to ").concat(a));break;case n2.DISABLE_SIMULCAST_STREM:return this.disableDualStream();case n2.ENABLE_SIMULCAST_STREAM:return this.enableDualStream()}}catch(l){throw X.error("[".concat(this._clientId,"] set dual stream mode error"),l.toString()),l}}async enableDualStream(){if(!Bi().supportDualStream)throw tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),new ze(fe.NOT_SUPPORTED,"Your browser is not support dual stream");if(this._isDualStreamEnabled)throw new ze(fe.INVALID_OPERATION,"Dual stream is already enabled");if(this._p2pChannel.canPublishLowStream())try{await this._publishLowStream()}catch(a){throw tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),a}this._isDualStreamEnabled=!0,this._dualStreamMode=n2.ENABLE_SIMULCAST_STREAM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(a=>{X.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),a.toString())}),tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!0}),X.info("[".concat(this._clientId,"] enable dual stream"))}async disableDualStream(){if(this._isDualStreamEnabled){if(!this._joinInfo)return this._isDualStreamEnabled=!1,void X.info("[".concat(this._clientId,"] disable dual stream before join"));if(this._p2pChannel.getLocalMedia(St.LocalVideoLowTrack))try{let a=await this._p2pChannel.unpublishLowStream();a&&await this._gateway.unpublish(a,this._joinInfo.stringUid||this._joinInfo.uid)}catch(a){throw tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!1}),a}this._isDualStreamEnabled=!1,this._dualStreamMode=n2.DISABLE_SIMULCAST_STREM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(a=>{X.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),a.toString())}),tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!0}),X.info("[".concat(this._clientId,"] disable dual stream"))}}async setClientRole(a,A){if(function(g){zo(g,"role",["audience","host"])}(a),A&&OC(A),this.mode==="rtc"||this.mode==="p2p")throw X.warning("[".concat(this._clientId,"]").concat(this.mode," mode can not use setClientRole")),new ze(fe.INVALID_OPERATION,"".concat(this.mode," mode can not use setClientRole"));if(A&&A.level&&a==="host")throw new ze(fe.INVALID_OPERATION,"host mode can not set audience latency level");if(a==="audience"&&this._p2pChannel.hasLocalMedia())throw new ze(fe.INVALID_OPERATION,"can not set client role to audience when publishing stream");let l=this._config.role;if(this._joinInfo&&(this._joinInfo.role=a),a!==l&&Ie("ENABLE_ROLE_SELECT_EDGE")?(this._gateway.updateClientRole(a,A),this._config.role=a,this._gateway.reconnect("recover",xo.REGIONAL_DISTRIBUTION)):(await this._gateway.setClientRole(a,A),this._config.role=a),X.info("[".concat(this._clientId,"] set client role to ").concat(a,", level: ").concat(A&&A.level)),l==="audience"&&a!=="audience"&&this._pendingRtpCapabilityChange&&this._p2pChannel instanceof Wd){let{video_codec:g}=this._pendingRtpCapabilityChange;this._p2pChannel.updateRemoteRTPCapabilities(g.map(C=>C.toLowerCase()).filter(C=>{var m;return Rt(m=Object.keys(Ss)).call(m,C)}))}}async _setClientRoleOptions(a){if(this.mode==="rtc"||this.mode==="p2p"||this._config.role!=="audience"||this._p2pChannel.hasLocalMedia())return;let A=!1;try{a&&OC(a),await this._gateway.setClientRole(this._config.role,a),A=!0}catch{}finally{X.info("[".concat(this._clientId,"] set client role options ").concat(A?"succeed":"failed",", options is ").concat(a))}}getRemoteInboundOffset(){var a;let A=(a=this._p2pChannel.getStats())===null||a===void 0?void 0:a.audioSend[0];if(!A||!A.timestamp)return 0;let l=A.timestamp-Date.now();return Math.abs(l)>1e3+A.rttMs+100?this.ntpAlignErrorCount+=1:this.ntpAlignErrorCount=0,this.ntpAlignErrorCount>=3?l:0}getNtpWallTimeInMs(){return document.visibilityState==="visible"&&(this.remoteInboundOffset=this.getRemoteInboundOffset()),this.remoteInboundOffset+Date.now()+this._gateway.ntpOffset}setProxyServer(a,A){if(Tr(a,"proxyServer"),!A){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Set proxy server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new ze(fe.INVALID_OPERATION,"You have already set the proxy")}this._proxyServer=a,tr.setProxyServer(this._proxyServer),X.setProxyServer(this._proxyServer),X.info("[".concat(this._clientId,"] Set proxy server ").concat(A?"by initialize call":""," success."))}setTurnServer(a,A){if(Array.isArray(a)||(a=[a]),!A){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Set turn server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new ze(fe.INVALID_OPERATION,"You have already set the proxy")}if(eh(a))return this._turnServer={servers:a,mode:"original-manual"},void X.info("[".concat(this._clientId,"] Set original turnserver ").concat(A?"by initialize call":""," success: ").concat(a.map(l=>l.urls).join(","),"."));a.forEach(l=>wR(l)),this._turnServer={servers:a,mode:"manual"},X.info("[".concat(this._clientId,"] Set turnserver ").concat(A?"by initialize call":""," success."))}setLicense(a){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"you should set license before join channel");if(Tr(a,"license",32,32),!/^[A-Za-z\d]+$/.test(a))throw new ze(fe.INVALID_PARAMS,"license should only contains characters from A-Z a-z 0-9");this._license=a,X.info("[".concat(this._clientId,"] set license success"),a)}startProxyServer(a){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Start proxy server before join channel");if(this._proxyServer||this._turnServer.mode==="manual"||this._useLocalAccessPoint)throw new ze(fe.INVALID_OPERATION,"You have already set the proxy");let A=[3,4,5],l;switch(a===void 0&&(a=3),a){case 1:case 2:throw new ze(fe.NOT_SUPPORTED,"proxy mode 1/2 has been deprecated and not supported.");case 3:l="proxy3";break;case 4:l="proxy4";break;case 5:l="proxy5";break;default:throw new ze(fe.INVALID_PARAMS,"proxy server mode must be ".concat(A.join("|")))}this._cloudProxyServerMode=l,this.store.cloudProxyServerMode=l,X.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode)}stopProxyServer(){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Stop proxy server after leave channel");tr.setProxyServer(),X.setProxyServer(),this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled",X.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode),this._proxyServer=void 0,this._turnServer={mode:"auto",servers:[]}}setLocalAccessPointsV2(a){if(!a.accessPoints)throw new ze(fe.INVALID_PARAMS,"accessPoints is required.");Qc(a.accessPoints.serverList,"accessPoints.serverList"),Tr(a.accessPoints.domain,"accessPoints.domain");let A=(K,q)=>{Rn(K,q,0,65535,!0)},l=443;if(a.accessPoints.port&&(A(a.accessPoints.port,"accessPoints.port"),l=a.accessPoints.port),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new ze(fe.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");Ie("CLOSE_AFB_FOR_LOCAL_AP")&&(Mn("JOIN_WITH_FALLBACK_SIGNAL_PROXY",!1),Mn("JOIN_WITH_FALLBACK_MEDIA_PROXY",!1));let g=/^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,C=a.accessPoints.domain,m=a.accessPoints.serverList.map(K=>g.test(K)?"".concat(K.replace(/\./g,"-"),".").concat(C):K),y=m.map(K=>"".concat(K,":").concat(l));this._useLocalAccessPoint=!0,this._setLocalAPVersion=2,Mn("WEBCS_DOMAIN",y),Mn("WEBCS_DOMAIN_BACKUP_LIST",y),Mn("GATEWAY_DOMAINS",[C]),a.report&&a.report.hostname&&Array.isArray(a.report.hostname)&&a.report.hostname.length?(Qc(a.report.hostname,"report.hostname"),Mn("EVENT_REPORT_DOMAIN",a.report.hostname[0]),Mn("EVENT_REPORT_BACKUP_DOMAIN",a.report.hostname[1]||a.report.hostname[0])):(Mn("EVENT_REPORT_DOMAIN",m[0]),Mn("EVENT_REPORT_BACKUP_DOMAIN",m[1]||m[0]));let w=6443;a.report&&a.report.port&&(A(a.report.port,"report.port"),w=a.report.port),Mn("STATS_COLLECTOR_PORT",w),a.report?Mn("ENABLE_EVENT_REPORT",!0):Mn("ENABLE_EVENT_REPORT",!1);let b="";a.log&&a.log.hostname&&Array.isArray(a.log.hostname)&&a.log.hostname.length?(Qc(a.log.hostname,"log.hostname"),b=a.log.hostname[0]):b=m[0];let M=6444;a.log&&a.log.port&&(A(a.log.port,"log.port"),M=a.log.port),Mn("LOG_UPLOAD_SERVER","".concat(b,":").concat(M));let k=[];a.cds&&a.cds.hostname&&Array.isArray(a.cds.hostname)&&a.cds.hostname.length?(Qc(a.cds.hostname,"cds.hostname"),k=a.cds.hostname):k=m;let V=443;a.cds&&a.cds.port&&(A(a.cds.port,"cds.port"),V=a.cds.port),Mn("CDS_AP",k.map(K=>"".concat(K,":").concat(V))),a.cds?Mn("ENABLE_CONFIG_DISTRIBUTE",!0):Mn("ENABLE_CONFIG_DISTRIBUTE",!1),X.info("set local access point v2 success")}setLocalAccessPoints(a,A){if(Qc(a,"serverList"),Tr(A,"domain"),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new ze(fe.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");let l=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;a=a.map(g=>l.test(g)?"".concat(g.replace(/\./g,"-"),".").concat(A):g),this._useLocalAccessPoint=!0,this._setLocalAPVersion=1,Mn("WEBCS_DOMAIN",a),Mn("WEBCS_DOMAIN_BACKUP_LIST",a),Mn("GATEWAY_DOMAINS",[A]),Mn("EVENT_REPORT_DOMAIN",a[0]),Mn("EVENT_REPORT_BACKUP_DOMAIN",a[1]||a[0]),Mn("LOG_UPLOAD_SERVER","".concat(a[0],":6444")),X.info("[".concat(this._clientId,"] set local access point success"))}async setRemoteDefaultVideoStreamType(a){if(zo(a,"streamType",[0,1,4,5,6,7,8,9]),this._remoteDefaultVideoStreamType=a,this._joinInfo)try{await this._gateway.setDefaultRemoteVideoStreamType(a),this._joinInfo.defaultVideoStream=this._remoteDefaultVideoStreamType}catch(A){throw X.error("[".concat(this._clientId,"] set default remote video stream type error"),A.toString()),A}else X.debug("[".concat(this._clientId,"] haven't joined yet, cache remoteDefaultVideoStreamType ").concat(a))}async setRemoteVideoStreamType(a,A){zo(A,"streamType",[0,1,4,5,6,7,8,9]);try{await this._gateway.setRemoteVideoStreamType(a,A),setTimeout(()=>{let l=this._users.find(g=>g.uid===a);l&&l.videoTrack&&l.videoTrack.updateMediaStreamTrackResolution()},2e3)}catch(l){throw X.error("[".concat(this._clientId,"] set remote video stream type error"),l.toString()),l}X.info("[".concat(this._clientId,"] set remote ").concat(a," video stream type to ").concat(A)),this._remoteStreamTypeCacheMap.set(a,A)}async setStreamFallbackOption(a,A){zo(A,"fallbackType",[0,1,2,3,4,5,6,7,8]);try{await this._gateway.setStreamFallbackOption(a,A)}catch(l){throw X.error("[".concat(this._clientId,"] set stream fallback option"),l.toString()),l}X.info("[".concat(this._clientId,"] set remote ").concat(a," stream fallback type to ").concat(A)),this._streamFallbackTypeCacheMap.set(a,A)}setEncryptionConfig(a,A,l,g){(function(m){zo(m,"encryptionMode",["aes-128-xts","aes-256-xts","aes-128-ecb","sm4-128-ecb","aes-128-gcm","aes-256-gcm","aes-128-gcm2","aes-256-gcm2","none"])})(a),Tr(A,"secret");let C=["aes-128-gcm2","aes-256-gcm2"];if(Rt(C).call(C,a)){if(!l||!(l instanceof Uint8Array&&l.length===32))throw new ze(fe.INVALID_PARAMS,"salt must be an Uint8Array and exactly equal to 32 bytes")}else if(l)throw new ze(fe.INVALID_PARAMS,"current encrypt mode does not need salt");if(g){if(Yl(g,"encryptDataStream"),!Rt(C).call(C,a))throw new ze(fe.INVALID_PARAMS,"current encrypt mode does not support data stream");this._encryptDataStream=!0}new RegExp(`^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*,.<>?/:;'"|{}\\[\\]])(?=.{8,})`).test(A)||X.warning(`The secret is not strong: + The secret must contain at least 1 lowercase alphabetical character, + The secret must contain at least 1 uppercase alphabetical character, + The secret must contain at least 1 numeric character, + The secret must contain at least one special character, + The secret must be eight characters or longer. + `),this._encryptionMode=a,this._encryptionSecret=A,l&&(this._encryptionSalt=Md(l))}async renewToken(a){if(Tr(a,"token",1,2047),!this._key||!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"renewToken should not be called before user join");let A=this._key;this._key=a,this._joinInfo&&(this._joinInfo.token=a);let l=await this._renewTokenMutex.lock();try{if(Ie("USE_NEW_TOKEN")){X.debug("[".concat(this._clientId,"] start renew token with ticket from unilbs"));let g=await d_(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||os);X.debug("[".concat(this._clientId,"] get ticket from unilbs success")),await this._gateway.renewToken({token:a,ticket:g})}else X.debug("[".concat(this._clientId,"] start renew token without ticket")),await this._gateway.renewToken({token:a});X.debug("[".concat(this._clientId,"] renewToken success"))}catch(g){throw this._key=A,this._joinInfo.token=A,X.error("[".concat(this._clientId,"] renewToken failed"),g.toString()),g}finally{l()}}enableAudioVolumeIndicator(){this._audioVolumeIndicationInterval?X.warning("you have already enabled audio volume indicator!"):this._audioVolumeIndicationInterval=window.setInterval(()=>{let a=this._p2pChannel.getAudioLevels();this.safeEmit(si.VOLUME_INDICATOR,a)},Ie("AUDIO_VOLUME_INDICATION_INTERVAL")||2e3)}getRTCStats(){let a=this._statsCollector.getRTCStats(),A=this._gateway.getInChannelInfo();return a.Duration=Math.round(A.duration/1e3),a}async startLiveStreaming(a,A){if(!A){if(this.codec!=="h264")throw new ze(fe.LIVE_STREAMING_INVALID_RAW_STREAM,"raw streaming is only support h264");if(!this._p2pChannel.hasLocalMedia())throw new ze(fe.LIVE_STREAMING_INVALID_RAW_STREAM,"can not find stream to raw streaming")}if(this._liveRawStreamingClient&&this._liveRawStreamingClient.hasUrl(a)||this._liveTranscodeStreamingClient&&this._liveTranscodeStreamingClient.hasUrl(a))throw new ze(fe.LIVE_STREAMING_TASK_CONFLICT);let l=A?Nu.TRANSCODE:Nu.RAW;return this._createLiveStreamingClient(l).startLiveStreamingTask(a,l)}setLiveTranscoding(a){return this._createLiveStreamingClient(Nu.TRANSCODE).setTranscodingConfig(a)}async stopLiveStreaming(a){let A=[this._liveRawStreamingClient,this._liveTranscodeStreamingClient].filter(l=>l&&l.hasUrl(a));if(!A.length)throw new ze(fe.INVALID_PARAMS,"can not find live streaming url to stop");await Ft.all(A.map(l=>l&&l.stopLiveStreamingTask(a)))}async startChannelMediaRelay(a){jy(a),await this._createChannelMediaRelayClient().startChannelMediaRelay(a)}async updateChannelMediaRelay(a){jy(a),await this._createChannelMediaRelayClient().updateChannelMediaRelay(a)}async stopChannelMediaRelay(){await this._createChannelMediaRelayClient().stopChannelMediaRelay(),this._statsCollector.onStatsChanged&&(this._statsCollector.onStatsChanged=void 0)}sendAudioMetadata(a){this._p2pChannel instanceof Wd&&this._p2pChannel.addAudioMetadata(a)}async sendStreamMessage(a){var A;let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not send data stream, not joined");if((typeof a=="string"||a instanceof Uint8Array)&&(a={payload:a}),typeof a.payload=="string"){let C=new TextEncoder;a.payload=C.encode(a.payload)}let g=!1;if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Rt(A=["aes-128-gcm2","aes-256-gcm2"]).call(A,this._encryptionMode)&&(g=!0,a.payload=await async function(C,m,y){var w;let b=$c(w=Array.from(y)).call(w,(oe,le)=>oe+le,0),M={serverTs:0,seq:q1++,length:y.length,checkSum:b},k=new Uint8Array(wf(b,2)),V=new ArrayBuffer(sn),K=new DataView(V);K.setUint32(0,M.serverTs),K.setUint16(4,M.seq),K.setUint16(6,M.length),K.setUint16(8,M.checkSum);let q=16-y.length%16;y=Qf(y,new Uint8Array(q));let ce=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:C,tagLength:tA,additionalData:k},m,y);return Qf(new Uint8Array(V),new Uint8Array(ce))}(this._encryptDataStreamIv,this._encryptDataStreamKey,a.payload)),new Blob([a.payload]).size>1024)throw new ze(fe.INVALID_PARAMS,g?"encrypted stream message out of range.":"stream message out of range.");return this._gateway.signal.request(sr.DATA_STREAM,{payload:Md(a.payload),syncWithAudio:a.syncWithAudio,sendTs:Date.now()-rq},!l)}sendMetadata(a){if(!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not send metadata, not joined");if(new Blob([a]).size>1024)throw new ze(fe.METADATA_OUT_OF_RANGE);return this._gateway.signal.request(sr.SEND_METADATA,{session_id:this._joinInfo.sid,metadata:Md(a)})}async sendCustomReportMessage(a){if(Array.isArray(a)||(a=[a]),a.forEach(tU),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not send custom report, not joined");await tr.sendCustomReportMessage(this._joinInfo.sid,a)}getLocalAudioStats(){return this._statsCollector.getLocalAudioTrackStats()}getRemoteAudioStats(){return this._statsCollector.getRemoteAudioTrackStats()}getLocalVideoStats(){return this._statsCollector.getLocalVideoTrackStats()}getRemoteVideoStats(){return this._statsCollector.getRemoteVideoTrackStats()}getRemoteNetworkQuality(){let a=this._statsCollector.getRemoteNetworkQualityStats();if(Ie("DELETE_NEQ_AFTER_USER_LEAVE")){let A=this._users.map(l=>l.uid+"");Object.keys(a).forEach(l=>{Rt(A).call(A,l)||delete a[l]})}return a}getNetworkQuality(){return this._statsCollector.getNetworkQuality()}async pickSVCLayer(a,A){zo(A.spatialLayer,"spatialLayer",[0,1,2,3]),zo(A.temporalLayer,"temporalLayer",[0,1,2,3]);try{await this._gateway.pickSVCLayer(a,A)}catch(l){throw X.error("[".concat(this._clientId,"] pick SVC layer failed"),l.toString()),l}}async setRTMConfig(a){let{apRTM:A=!1,rtmFlag:l}=a;if(Yl(A,"apRTM"),Rn(l,"rtmFlag",0),this._rtmConfig.apRTM=A,this._rtmConfig.rtmFlag=l,X.debug("[".concat(this._clientId,"] setRTMconfig ").concat(JSON.stringify(a)," in ").concat(this.connectionState," state")),(this.connectionState==="CONNECTED"||this.connectionState==="RECONNECTING")&&this._joinInfo)return this._joinInfo.apRTM=A,this._joinInfo.rtmFlag=l,this._gateway.setRTM2Flag(l)}_reset(){if(X.debug("[".concat(this._clientId,"] reset client")),function(a){let A=po.indexOf(a);A!==-1&&po.splice(A,1)}(this._clientId),this.store.hasStartJoinChannel=!1,this.store.isABTestSuccess=!1,this.store.autoSubscribe=!1,this._pendingRtpCapabilityChange=void 0,this._axiosCancelSource.cancel(),this._axiosCancelSource=vA.CancelToken.source(),this._streamFallbackTypeCacheMap=new Map,this._remoteStreamTypeCacheMap=new Map,this._configDistribute.stopGetConfigDistribute(),this._joinInfo&&KN(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0,this._sessionId&&tr.reportRteDetail(this._sessionId)),this._fallbackServerInfo=void 0,this._joinInfo=void 0,this._proxyServer=void 0,this._defaultStreamFallbackType=void 0,this._sessionId&&tr.removeSid(this._sessionId),this._sessionId=null,this.store.sessionId=null,this.store.resetFirstVideoFrameDecoded(),this._statsCollector.reset(),this._key=void 0,this._appId=void 0,this._uid=void 0,this.store.uid=void 0,this._channelName=void 0,this._encryptionMode="none",this._encryptionSecret=null,this._encryptionSalt=null,this._encryptDataStreamKey=null,this._encryptDataStreamIv=null,this._pendingPublishedUsers=[],this._users.forEach(a=>{a._audioTrack&&a._audioTrack._destroy(),a._videoTrack&&a._videoTrack._destroy(),a._dataChannels&&(a._dataChannels.forEach(A=>A._close()),a._dataChannels.length=0)}),this._users=[],this._audioVolumeIndicationInterval&&(window.clearInterval(this._audioVolumeIndicationInterval),this._audioVolumeIndicationInterval=void 0),this._cloudProxyServerMode==="fallback"&&(this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled"),this._p2pChannel.reset(),this._publishMutex=new Is("client-publish",this._clientId),this._subscribeMutex=new Is("client-subscribe",this._clientId),this._networkQualityInterval&&(window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=void 0),this._liveRawStreamingClient&&(this._liveRawStreamingClient.terminate(),this._liveRawStreamingClient.removeAllListeners(),this._liveRawStreamingClient=void 0),this._liveTranscodeStreamingClient&&(this._liveTranscodeStreamingClient.terminate(),this._liveTranscodeStreamingClient.removeAllListeners(),this._liveTranscodeStreamingClient=void 0),this._channelMediaRelayClient&&(this._channelMediaRelayClient.dispose(),this._channelMediaRelayClient=void 0),this._inspect)try{this._inspect.close(),this._inspect=void 0}catch{}if(this._moderation)try{this.setImageModeration(!1)}catch{}}_startSession(a,A){var l;let g=a||Ln();a?X.debug("[".concat(this._clientId,"] new Session ").concat(g)):X.debug("[".concat(this._clientId,"] renewSession ").concat(this._sessionId," => ").concat(g));let C=a?"":this._sessionId||"";this._sessionId=g,this.store.sessionId=g,tr.addSid(g);let m={lts:new Date().getTime(),mode:this.mode,buildFormat:1,stringUid:(A==null?void 0:A.stringUid)||((l=this._joinInfo)===null||l===void 0?void 0:l.stringUid),channelProfile:this.mode==="live"?1:0,channelMode:0,isABTestSuccess:Number(this._configDistribute.isSuccess),lsid:C,clientRole:this.role==="audience"?2:1,rteUrl:this.store.rteUrl,rteSid:this.store.rteSid};tr.sessionInit(this._sessionId,ac({cname:A.channel,appid:A.appId},m)),this._joinInfo&&(this._joinInfo.sid=g),this._gateway.joinInfo&&(this._gateway.joinInfo.sid=g)}async _publishHighStream(a){if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&Ie("FORCE_TURN")&&!Ie("TURN_ENABLE_TCP")&&!Ie("TURN_ENABLE_UDP"))throw new ze(fe.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");X.debug("[".concat(this._clientId,"] publish high stream"));try{let l=await this._p2pChannel.publish(a,this._isDualStreamEnabled,this._lowStreamParameter);if(this.store.useP2P){let g=(await l.next()).value;if(g){try{await this._gateway.sendExtensionMessage(Ro.PUBLISH,g,!0)}catch(C){throw l.throw(C),C}await l.next()}this._p2pChannel.reportPublishEvent(!0,null)}else{let g=(await l.next()).value;if(g){var A;let C;try{C=await this._gateway.publish(this._uid,g,!0)}catch(m){if(m.code!==fe.DISCONNECT_P2P)throw l.throw(m),m}await l.next(((A=C)===null||A===void 0?void 0:A.ortc)||[])}this._p2pChannel.reportPublishEvent(!0,null);for(let C of a)C instanceof Pi&&C._encoderConfig&&this._gateway.setVideoProfile(C._encoderConfig).catch(m=>{X.debug("[".concat(this._clientId,"] stop setVideoProfile, because websocket is closed"))}),!C.muted&&C.enabled||await this._p2pChannel.muteLocalTrack(C)}}catch(l){if(this._p2pChannel.reportPublishEvent(!1,l==null?void 0:l.code,a),(l==null?void 0:l.code)===fe.WS_ABORT)return;throw l}}async _publishLowStream(){if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));X.debug("[".concat(this._clientId,"] publish low stream"));let a=this._configDistribute.getLowStreamConfigDistribute();a&&a.bitrate&&(this._lowStreamParameter||(this._lowStreamParameter={width:160,height:120,framerate:15,bitrate:50}),this._lowStreamParameter&&this._lowStreamParameter.bitrate&&a.bitrate{if(!this._joinInfo||!this._appId)return new ze(fe.INVALID_OPERATION,"can not create live streaming client, please join channel first").throw();let l=(g={joinInfo:this._joinInfo,appId:this._appId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig},td("LiveStreaming").create(g));var g;return l.onLiveStreamError=(C,m)=>{tr.reportApiInvoke(this._sessionId,{name:Co.ON_LIVE_STREAM_ERROR,options:[C,m],tag:Gn.TRACER}).onSuccess(),this.safeEmit(si.LIVE_STREAMING_ERROR,C,m)},l.onLiveStreamWarning=(C,m)=>{tr.reportApiInvoke(this._sessionId,{name:Co.ON_LIVE_STREAM_WARNING,options:[C,m],tag:Gn.TRACER}).onSuccess(),this.safeEmit(si.LIVE_STREAMING_WARNING,C,m)},l.on(Dy.REQUEST_WORKER_MANAGER_LIST,(C,m,y)=>{if(!this._joinInfo)return y(new ze(fe.INVALID_OPERATION,"can not find join info to get worker manager"));(async function(w,b,M,k){let V=Ie("UAP_AP").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(K=>b.proxyServer?"https://".concat(b.proxyServer,"/ap/?url=").concat(K+"/api/v1?action=uap"):"https://".concat(K,"/api/v1?action=uap"));return await BN(V,w,b,M,k)})(C,this._joinInfo,this._axiosCancelSource.token,os).then(m).catch(y)}),l};return a===Nu.RAW?(this._liveRawStreamingClient=this._liveRawStreamingClient||A(),this._liveRawStreamingClient):(this._liveTranscodeStreamingClient=this._liveTranscodeStreamingClient||A(),this._liveTranscodeStreamingClient)}_createChannelMediaRelayClient(){if(!this._joinInfo)return new ze(fe.INVALID_OPERATION,"can not create channel media relay client, please join channel first").throw();if(!this._channelMediaRelayClient){let{sendResolutionWidth:A,sendResolutionHeight:l}=this.getLocalVideoStats(),g=(a={joinInfo:this._joinInfo,clientId:this._clientId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig,resolution:{width:A,height:l}},td("ChannelMediaRelay").create(a));g.on("state",C=>{C===$A.RELAY_STATE_FAILURE&&g&&g.dispose(),this.safeEmit(si.CHANNEL_MEDIA_RELAY_STATE,C)}),g.on("event",C=>{this.safeEmit(si.CHANNEL_MEDIA_RELAY_EVENT,C)}),this._channelMediaRelayClient=g,this._statsCollector.onStatsChanged=(C,m)=>{var y;C==="resolution"&&((y=this._channelMediaRelayClient)===null||y===void 0||y.setVideoProfile(m))}}var a;return this._channelMediaRelayClient}_handleUpdateDataChannel(a,A){let{added:l,deleted:g}=a,C=[];if(A){let m=[];this._users.forEach(y=>{y._dataChannels.forEach(w=>{l.every(b=>b.uid!==y._uintid||b.stream_id!==w.id)&&m.push({uid:y._uintid,stream_id:w.id,ordered:w.ordered,max_retrans_times:w.maxRetransmits,metadata:w.metadata})})}),m.length>0&&this._handleUpdateDataChannel({added:[],deleted:m})}Array.isArray(l)&&l.length>0&&l.forEach(m=>{let{uid:y,stream_id:w,ordered:b,max_retrans_times:M,metadata:k}=m,V=this._users.find(K=>K._uintid===y);if(!V)return void X.error("[".concat(this._clientId,"] can not find target user!(on_add_data_channel)"));if(X.debug("[".concat(this._clientId,"] data_channel added with uid ").concat(y)),Rt(C).call(C,V)||C.push(V),V._uintid||(V._uintid=y),V._dataChannels.findIndex(K=>K.id===m.stream_id)===-1){let K={id:w,ordered:!!b,maxRetransmits:M,metadata:k},q=function(ce){return Qt(ce,!0)}(K);V._dataChannels.push(q),X.info("[".concat(this._clientId,"] remote user ").concat(V.uid," published datachannel")),A||this.safeEmit(si.USER_PUBLISHED,V,"datachannel",K)}this._p2pChannel.hasPendingRemoteDataChannel(V,m.stream_id)&&(X.debug("[".concat(this._clientId,"] resubscribe datachannel for user ").concat(V.uid," after reconnect.")),this._subscribeDataChannel(V,m.stream_id).catch(K=>{X.error("[".concat(this._clientId,"] resubscribe datachannel error"),K.toString())}))}),A&&(this.safeEmit(si.PUBLISHED_USER_LIST,this._pendingPublishedUsers),this._pendingPublishedUsers=[]),Array.isArray(g)&&g.length>0&&g.forEach(m=>{let{uid:y,stream_id:w}=m,b=this._users.find(k=>k._uintid===y);if(!b)return void X.error("[".concat(this._clientId,"] can not find target user!(on_delete_data_channel)"));let M=b._dataChannels.find(k=>k.id===m.stream_id);M&&(X.debug("[".concat(this._clientId,"] data_stream delete with uid ").concat(y)),this._p2pChannel.unsubscribeDataChannel(b,[M]).then(k=>{if(b._dataChannels=b._dataChannels.filter(V=>V!==M),k)return this._gateway.unsubscribeDataChannel(k,b.uid)}),X.info("[".concat(this._clientId,"] remote user ").concat(y," unpublished datachannel ,id:").concat(M.id)),this.safeEmit(si.USER_UNPUBLISHED,b,"datachannel",M._config))})}_getEncodingName(a){var A,l;if(!this._joinResponse)return;let g=(A=this._joinResponse.ortc.rtpCapabilities.sendrecv)===null||A===void 0?void 0:A.videoCodecs;if(!g)return;for(let w of g){var C;if(w.payloadType===a)return w==null||(C=w.rtpMap)===null||C===void 0?void 0:C.encodingName}let m=(l=this._joinResponse.ortc.rtpCapabilities.recv)===null||l===void 0?void 0:l.videoCodecs;if(m)for(let w of m){var y;if(w.payloadType===a)return w==null||(y=w.rtpMap)===null||y===void 0?void 0:y.encodingName}return a===0?"unknown":void 0}_handleRemoveDataChannels(a){let A=this._users.find(l=>l.uid===a.uid);if(A){if(A._dataChannels!==void 0&&A._dataChannels.length>0){X.debug("[".concat(this._clientId,"] datachannel removed with uid ").concat(a.uid));let l=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(A.uid," unpublished datachannel")),A._dataChannels.forEach(g=>{this.safeEmit(si.USER_UNPUBLISHED,A,"datachannel",g._config)})};this._p2pChannel.unsubscribeDataChannel(A,A._dataChannels).then(g=>{if(g)return this._gateway.unsubscribeDataChannel(g,A.uid)}),l()}}else X.warning("[".concat(this._clientId,"] can not find target user!(on_remove_datachannel)"))}_handleGatewayEvents(){this._gateway.on(Pn.UPDATE_GATEWAY_CONFIG,()=>{(function(){let a;try{a=window.localStorage.getItem("websdk_ng_global_parameter")}catch(A){return void X.error("Error loading sdk config",A.message)}if(a)try{let A=JSON.parse(window.atob(a)),l=Date.now();Object.keys(A).forEach(g=>{let{value:C,type:m,expires:y}=A[g];y&&y<=l||m||cN()||!Object.prototype.hasOwnProperty.call(vn,g)||(Vr[g]=C,zi[g]=C,X.debug("Update gateway parameters from config distribute",g,C))})}catch(A){X.error("Error update config from local cache",A.message)}})()}),this._gateway.on(Pn.DISCONNECT_P2P,async()=>{await this._p2pChannel.disconnectForReconnect()}),this._gateway.on(Pn.CONNECTION_STATE_CHANGE,(a,A,l)=>{var g;if(l===bi.FALLBACK)return;let C=()=>{this.safeEmit(si.CONNECTION_STATE_CHANGE,a,A,l)};if(tr.reportApiInvoke(this._sessionId||((g=this._gateway.joinInfo)===null||g===void 0?void 0:g.sid)||null,{name:Co.CONNECTION_STATE_CHANGE,options:[a,A,l],tag:Gn.TRACER}).onSuccess(JSON.stringify({cur:a,prev:A,reason:l})),X.info("[".concat(this._clientId,"] signal connection state change: ").concat(A," -> ").concat(a)),a==="DISCONNECTED")return this._reset(),void C();if(a==="RECONNECTING")this._users.forEach(y=>{y._trust_in_room_=!1,y._trust_audio_enabled_state_=!1,y._trust_video_enabled_state_=!1,y._trust_audio_mute_state_=!1,y._trust_video_mute_state_=!1,y._trust_audio_stream_added_state_=!1,y._trust_video_stream_added_state_=!1,y._is_pre_created||(y._audio_pre_subscribed||(y._audioSSRC=void 0,y._audioOrtc=void 0),y._video_pre_subscribed||(y._videoSSRC=void 0,y._videoOrtc=void 0,y._rtxSsrcId=void 0),y._cname=void 0)}),this._userOfflineTimeout&&window.clearTimeout(this._userOfflineTimeout),this._streamRemovedTimeout&&window.clearTimeout(this._streamRemovedTimeout),this._userOfflineTimeout=void 0,this._streamRemovedTimeout=void 0;else if(a==="CONNECTED"){var m;this._streamFallbackTypeCacheMap.forEach((y,w)=>{this._gateway.setStreamFallbackOption(w,y).catch(b=>{X.warning("[".concat(this._clientId,"] auto set stream fallback option failed"),b)})}),this._remoteStreamTypeCacheMap.forEach((y,w)=>{this._gateway.setRemoteVideoStreamType(w,y).catch(b=>{X.warning("[".concat(this._clientId,"] auto set remote stream type failed"),b)})}),Ie("VOS_CONFIGURE")&&Array.isArray(Ie("VOS_CONFIGURE"))&&Ie("VOS_CONFIGURE").length>0&&(this._gateway.setConfigure(Ie("VOS_CONFIGURE")).catch(y=>{X.debug("[".concat(this._clientId,"] auto set vos config failed"),y)}),X.debug("[".concat(this._clientId,"] ws connected auto set vos config"))),this._remoteDefaultVideoStreamType!==void 0&&((m=this._joinInfo)===null||m===void 0?void 0:m.defaultVideoStream)===void 0&&this.setRemoteDefaultVideoStreamType(this._remoteDefaultVideoStreamType).then(()=>{X.debug("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway connected"))}).catch(y=>{X.error("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway failed, ").concat(y))}),this._dualStreamMode&&this._gateway.setDualStreamMode(this._dualStreamMode).catch(y=>{X.warning("[".concat(this._clientId,"] auto set dual stream mode failed"),y)}),this.store.useP2P||(this._p2pChannel.republish(),this._userOfflineTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._userOfflineTimeout=void 0,this._users.filter(y=>!y._trust_in_room_).forEach(y=>{X.debug("[".concat(this._clientId,"] user offline timeout, emit user offline ").concat(y.uid)),this._handleUserOffline({uid:y.uid})}))},3e3),this._streamRemovedTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._streamRemovedTimeout=void 0,this._users.forEach(y=>{y._trust_audio_mute_state_||(X.debug("[".concat(this._clientId,"] auto dispatch audio unmute event ").concat(y.uid)),this._handleMuteStream(y.uid,$t.AUDIO,!1)),y._trust_video_mute_state_||(X.debug("[".concat(this._clientId,"] auto dispatch video unmute event ").concat(y.uid)),this._handleMuteStream(y.uid,$t.VIDEO,!1)),y._trust_audio_enabled_state_||(X.debug("[".concat(this._clientId,"] auto dispatch enable local audio ").concat(y.uid)),this._handleSetStreamLocalEnable("audio",y.uid,!0)),y._trust_video_enabled_state_||(X.debug("[".concat(this._clientId,"] auto dispatch enable local video ").concat(y.uid)),this._handleSetStreamLocalEnable("video",y.uid,!0)),y._trust_video_stream_added_state_||(X.debug("[".concat(this._clientId,"] auto dispatch reset video stream added ").concat(y.uid)),this._handleResetAddStream(y,"video")),y._trust_audio_stream_added_state_||(X.debug("[".concat(this._clientId,"] auto dispatch reset audio stream added ").concat(y.uid)),this._handleResetAddStream(y,"audio")),y._video_added_||y._audio_added_||(X.debug("[".concat(this._clientId,"] auto dispatch stream remove ").concat(y.uid)),this._handleRemoveStream({uid:y.uid,uint_id:y._uintid}))}))},1e3))}C()}),this._gateway.on(Pn.REQUEST_NEW_GATEWAY_LIST,async(a,A)=>{if(!this._joinInfo)return A(new ze(fe.UNEXPECTED_ERROR,"can not recover, no join info"));try{let l;if(this._fallbackServerInfo)l=this._fallbackServerInfo,this._fallbackServerInfo=void 0,this._joinInfo.preload=!1,tr.reportApiInvoke(this._sessionId,{name:Co.VOS_FALLBACK_CN,options:{cur:l.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!0},tag:Gn.TRACER}).onSuccess(),X.info("[".concat(this._clientId,"] use fallback cn server info"));else{let C=await tQ(ac(ac({},this._joinInfo),{},{uid:this._joinInfo.uid,stringUid:void 0}));C?(l=C.ap,S7(C),this._joinInfo.preload=!0):(l=await Ky(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||os,this.store),this._joinInfo.preload=!1)}this._joinInfo&&(this._joinInfo.apResponse=l.gatewayInfo.res,this._joinInfo.gatewayAddrs=l.gatewayInfo.gatewayAddrs,this._joinInfo.uni_lbs_ip=l.gatewayInfo.uni_lbs_ip);let g=[];l.gatewayInfo.gatewayAddrs.forEach(C=>{let{address:m}=C,[y,w]=m.split(":");this._joinInfo&&this._joinInfo.proxyServer?g.push({proxy:this._joinInfo.proxyServer,host:y,port:w}):g.push({host:y,port:w})}),a(g)}catch(l){A(l)}}),this._gateway.on(Pn.NETWORK_QUALITY,a=>{this._networkQualitySensitivity==="normal"&&this.safeEmit(si.NETWORK_QUALITY,a)}),this._gateway.on(Pn.STREAM_TYPE_CHANGE,(a,A)=>{this.safeEmit(si.STREAM_TYPE_CHANGED,a,A),tr.reportApiInvoke(this._sessionId,{name:Co.STREAM_TYPE_CHANGE,options:[a,A],tag:Gn.TRACER}).onSuccess(JSON.stringify({uid:a,streamType:A}))}),this._gateway.isPreSub=()=>"isPreSub"in this._p2pChannel&&this._p2pChannel.isPreSub(),this._gateway.isPreallocation=()=>"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation(),this._gateway.on(Pn.IS_P2P_DISCONNECTED,a=>{this._p2pChannel.isP2PDisconnected()?a(!0):this._p2pChannel.hasLocalMedia()||this._p2pChannel.hasRemoteMedia()?a(!1):a(!0)}),this._gateway.on(Pn.REQUEST_P2P_CONNECTION_PARAMS,async(a,A,l)=>{try{let g=await this._p2pChannel.getEstablishParams();g&&"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation()||(g=await this._p2pChannel.startP2PConnection(a)),A(g)}catch(g){l(g)}}),this._gateway.on(Pn.JOIN_RESPONSE,(a,A)=>{if(this.store.useP2P)return;let l;this._joinResponse=a,a.attributes?l=a.attributes.userAttributes.preSubSsrcs:X.debug("no attributes in joinResponse");let g=ku(a.ortc,A,l);this._p2pChannel.connect(g)}),this._gateway.on(Pn.PRE_CONNECT_PC,async(a,A,l)=>{let{candidates:g,fingerprint:C,turnServer:m}=a;if(this._joinInfo&&g.length>0&&!this._p2pChannel.isPlanB){let{cert:w,cid:b}=this._joinInfo.apResponse,M="".concat(b,"_").concat(w);if(M.length<4||M.length>256)return void X.debug("[".concat(this._clientId,"] ufrag length is not valid, length: ").concat(M.length));await this._p2pChannel.startP2PConnection({turnServer:m,cloudProxyServer:this._joinInfo.cloudProxyServer,isPreallocation:!0});try{var y;A(await this._p2pChannel.connect({iceParameters:{iceUfrag:"".concat(b,"_").concat(w),icePwd:"".concat(b,"_").concat(w)},dtlsParameters:{fingerprints:[{hashFunction:"sha-256",fingerprint:(y=Ie("FINGERPRINT"))!==null&&y!==void 0?y:C}]},candidates:g,rtpCapabilities:{send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},setup:"active",cname:"o/i14u9pJrxRKAsu",preallocation:!0}))}catch(k){k.code&&k.code===fe.EXCHANGE_SDP_FAILED&&await this._p2pChannel.startP2PConnection({turnServer:m,cloudProxyServer:this._joinInfo.cloudProxyServer},!0),l(k)}}}),this._gateway.on(Pn.VOS_FALLBACK,a=>{a==="fallback_hls"&&this.safeEmit(si.FALLBACK_TO_HLS,LC.VOSERROR)}),this._gateway.on(Pn.RESET_SIGNAL,()=>{this._p2pChannel instanceof Wd&&this._p2pChannel.fallbackConnection(),this._handleGatewaySignalEvents()}),this._gateway.on(Pn.DATACHANNEL_FAILBACK,()=>{tr.reportApiInvoke(this._sessionId,{name:Co.DATACHANNEL_FAILBACK,options:{},tag:Gn.TRACER}).onSuccess(),this._joinGateway()})}_handleGatewaySignalEvents(){this._gateway.signal.on(Or.ON_USER_ONLINE,this._handleUserOnline),this._gateway.signal.on(Or.ON_USER_OFFLINE,this._handleUserOffline),this._gateway.signal.on(Or.ON_ADD_AUDIO_STREAM,a=>this._handleAddAudioOrVideoStream("audio",a.uid,a.ssrcId,a.cname,a.pt,a.uint_id,a.ortc)),this._gateway.signal.on(Or.ON_ADD_VIDEO_STREAM,a=>this._handleAddAudioOrVideoStream("video",a.uid,a.ssrcId,a.cname,a.pt,a.uint_id,a.ortc,a.rtxSsrcId)),this._gateway.signal.on(Or.ON_REMOTE_DATASTREAM_UPDATE,a=>{this._handleUpdateDataChannel(a)}),this._gateway.signal.on(Or.ON_REMOTE_FULL_DATASTREAM_INFO,a=>{this._handleUpdateDataChannel({added:a.datastreams||[],deleted:[]},!0)}),this._gateway.signal.on(Or.ON_REMOVE_STREAM,this._handleRemoveStream),this._gateway.signal.on(Or.ON_P2P_LOST,this._handleP2PLost),this._gateway.signal.on(Or.MUTE_AUDIO,a=>this._handleMuteStream(a.uid,$t.AUDIO,!0)),this._gateway.signal.on(Or.UNMUTE_AUDIO,a=>this._handleMuteStream(a.uid,$t.AUDIO,!1)),this._gateway.signal.on(Or.MUTE_VIDEO,a=>this._handleMuteStream(a.uid,$t.VIDEO,!0)),this._gateway.signal.on(Or.UNMUTE_VIDEO,a=>this._handleMuteStream(a.uid,$t.VIDEO,!1)),this._gateway.signal.on(Or.RECEIVE_METADATA,a=>{let A=th(a.metadata);this.safeEmit(si.RECEIVE_METADATA,a.uid,A)}),this._gateway.signal.on(Or.ON_DATA_STREAM,async a=>{var A;if(!a)return;let l=th(a.payload);if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Rt(A=["aes-128-gcm2","aes-256-gcm2"]).call(A,this._encryptionMode)){if(a.payload.lengthw.uid===a.uid),y=C==null?void 0:C.audioRecv.find(w=>w.ssrc===(m==null?void 0:m._audioSSRC));g=y==null?void 0:y.jitterBufferMs}(g==null||Number.isNaN(g))&&(g=0),GN(ac(ac({},a),{},{payload:l}),g,{id:this._clientId,onStreamMessage:typeof this.onStreamMessage=="function"?this.onStreamMessage.bind(this):void 0,safeEmit:this.safeEmit.bind(this)})}),this._gateway.signal.on(Or.ON_CRYPT_ERROR,()=>{Qi(()=>{X.warning("[".concat(this._clientId,"] on crypt error")),this.safeEmit(si.CRYPT_ERROR)},this._sessionId)}),this._gateway.signal.on(Or.ON_TOKEN_PRIVILEGE_WILL_EXPIRE,this._handleTokenWillExpire),this._gateway.signal.on(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{X.warning("[".concat(this._clientId,"] received message onTokenPrivilegeDidExpire, please get new token and join again")),this._gateway.leave(!0,bi.TOKEN_EXPIRE),this.safeEmit(si.ON_TOKEN_PRIVILEGE_DID_EXPIRE),this._reset()}),this._gateway.signal.on(Or.ON_STREAM_FALLBACK_UPDATE,a=>{X.debug("[".concat(this._clientId,"] stream fallback peerId: ").concat(a.stream_id,", attr: ").concat(a.stream_type)),this.safeEmit(si.STREAM_FALLBACK,a.stream_id,a.stream_type===1?"fallback":"recover")}),this._gateway.signal.on(Or.ENABLE_MULTI_STREAM,a=>{this._dualStreamMode===n2.AUTO_SIMULCAST_STREAM&&this.enableDualStream().catch(A=>{X.debug("[".concat(this._clientId,"] set dual stream mode error"),A.toString())})}),this._gateway.signal.on(Or.ON_PUBLISH_STREAM,a=>{this.uid===this._uid&&(this._p2pChannel.reportPublishEvent(!0,null,void 0,!1,JSON.stringify({proxy:a.proxy})),X.info("[".concat(this._clientId,"] on publish stream, ").concat(JSON.stringify(a))))}),this._gateway.signal.on(Or.ENABLE_LOCAL_VIDEO,a=>{this._handleSetStreamLocalEnable("video",a.uid,!0)}),this._gateway.signal.on(Or.DISABLE_LOCAL_VIDEO,a=>{this._handleSetStreamLocalEnable("video",a.uid,!1)}),this._gateway.signal.on(or.REQUEST_TIMEOUT,(a,A)=>{if(this._joinInfo)switch(a){case sr.PUBLISH:{if(!A)return;let C=A.ortc;if(C){var l,g;let m=C.some(b=>{let{stream_type:M}=b;return M===an.Audio}),y=C.some(b=>{let{stream_type:M}=b;return M!==an.Audio}),w=C.some(b=>{let{stream_type:M}=b;return M===an.Screen||M===an.ScreenLow});A.state==="offer"&&tr.publish(this._joinInfo.sid,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:!1,ec:fe.TIMEOUT,audio:m,video:y,p2pid:A.p2p_id,publishRequestid:this.store.pubId,screenshare:w,audioName:m?(l=C.find(b=>{let{stream_type:M}=b;return M===an.Audio}))===null||l===void 0||(l=l.ssrcs[0])===null||l===void 0?void 0:l.ssrcId.toString():void 0,videoName:y?(g=C.find(b=>{let{stream_type:M}=b;return M!==an.Audio}))===null||g===void 0||(g=g.ssrcs[0])===null||g===void 0?void 0:g.ssrcId.toString():void 0})}break}case sr.SUBSCRIBE:A&&tr.subscribe(this._joinInfo.sid,{succ:!1,ec:fe.TIMEOUT,audio:A.stream_type===$t.AUDIO,video:A.stream_type===$t.VIDEO,peerid:A.stream_id,subscribeRequestid:A.ssrcId,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,A.ssrcId),preSsrc:this._p2pChannel.isPreSubScribe(A.ssrcId)})}}),this._gateway.signal.on(Or.ON_P2P_OK,a=>{this.uid,this._uid}),this._gateway.signal.on(Or.ON_PUBLISHED_USER_LIST,a=>{if(a==null||!a.users)return;Ie("BLOCK_LOCAL_CLIENT")&&(a.users=a.users.filter(g=>!xd(g.string_id||g.stream_id,this.channelName)));let A=[],l=[];for(let g of a.users){let C=this._users.find(k=>k._uintid===g.stream_id);C?C._trust_in_room_=!0:(C=new xg(g.string_id||g.stream_id,g.stream_id),this._users.push(C),this.store.firstVideoFrameDecoded(C.uid,{userJoinNotify:Date.now()}),this.getListeners(si.PUBLISHED_USER_LIST).length===0&&(X.debug("[".concat(this._clientId,"] user online"),g.stream_id),this.safeEmit(si.USER_JOINED,C)));let m=na.Audio&g.stream_type,y=(na.Video|na.LwoVideo)&g.stream_type,w=(65280&g.stream_type)!=0,b=m&&C.hasAudio,M=y&&C.hasVideo;y&&(C._trust_video_stream_added_state_=!0,C._video_added_=!0,C._videoSSRC=g.video_ssrc,C._rtxSsrcId=g.video_rtx),m&&(C._trust_audio_stream_added_state_=!0,C._audio_added_=!0,C._audioSSRC=g.audio_ssrc),m&&!b&&this.getListeners(si.PUBLISHED_USER_LIST).length===0&&(X.info("[".concat(this._clientId,"] remote user ").concat(C.uid," published audio")),this.safeEmit(si.USER_PUBLISHED,C,"audio")),y&&!M&&this.getListeners(si.PUBLISHED_USER_LIST).length===0&&(X.info("[".concat(this._clientId,"] remote user ").concat(C.uid," published video")),this.safeEmit(si.USER_PUBLISHED,C,"video")),(m&&!b||y&&!M||w)&&A.push(C),y&&this._p2pChannel.hasPendingRemoteMedia(C,"video")&&l.push({user:C,mediaType:"video"}),m&&this._p2pChannel.hasPendingRemoteMedia(C,"audio")&&l.push({user:C,mediaType:"audio"})}l.length>0&&(X.debug("[".concat(this._clientId,"] RE massSubscribe after reconnect ").concat(l.map(g=>"user: ".concat(g.user.uid,", mediaType: ").concat(g.mediaType)).join("; ")," ")),this.massSubscribe(l).catch(g=>{X.error("[".concat(this._clientId,"] mass resubscribe error"),g.toString())})),this.getListeners(si.PUBLISHED_USER_LIST).length>0?Ie("ENABLE_DATASTREAM_2")?this._pendingPublishedUsers=A:(X.info("[".concat(this._clientId,"] client emit user-list event, users: ").concat(A.map(g=>g.uid).join(", "))),this.safeEmit(si.PUBLISHED_USER_LIST,A)):X.info("[".concat(this._clientId,"] client not emit user-list event case there is no user-list listener, users: ").concat(A.map(g=>g.uid).join(", ")))}),this._gateway.signal.on(Or.ON_RTP_CAPABILITY_CHANGE,a=>{let{video_codec:A}=a;if(this._p2pChannel instanceof Wd){if(this.role==="audience"&&Ie("UPDATE_RTP_CAP_IN_HOST"))return this._pendingRtpCapabilityChange=a,void X.debug("[".concat(this._clientId,"] no need to change rtp capability because of audience, params: ").concat(JSON.stringify(a)));this._p2pChannel.updateRemoteRTPCapabilities(A.map(l=>l.toLowerCase()).filter(l=>{var g;return Rt(g=Object.keys(Ss)).call(g,l)}))}}),this._gateway.signal.on(or.VOS_FALLBACK_PROMISE,async(a,A,l)=>{if(a==="FALLBACKCN"&&Ie("ENABLE_QUALITY_FALLBACK")){if(!this._joinInfo)return l(new ze(fe.UNEXPECTED_ERROR,"can not recover, no join info"));X.info("[".concat(this._clientId,"] try fallback to cn, start request new server info"));let C=this._joinInfo.apRequestDetail;try{this._joinInfo.apRequestDetail=a;let m=await Ky(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||os,this.store);if(Ie("QUALITY_FALLBACK_REHEARSAL"))return tr.reportApiInvoke(this._sessionId,{name:Co.VOS_FALLBACK_CN,options:{cur:m.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:Gn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=C,void l();this._fallbackServerInfo=m,A()}catch(m){var g;let y=m==null||(g=m.data)===null||g===void 0?void 0:g.desc;Ie("QUALITY_FALLBACK_REHEARSAL")?(tr.reportApiInvoke(this._sessionId,{name:Co.VOS_FALLBACK_CN,options:{cur:"failed, errorReason: "+y||"unknown",prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:Gn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=C):Array.isArray(y)&&Rt(y).call(y,"request downgrade fallback")&&this.safeEmit(si.FALLBACK_TO_HLS,LC.AP_ERROR),l(m)}}else l()})}_handleP2PEvents(){this._gateway.signal.on(Or.ON_USER_OFFLINE,()=>{this._p2pChannel.disconnectForReconnect()}),this._gateway.signal.on(Ro.PUBLISH,(a,A,l)=>{let{uid:g}=a;a.forEach(C=>{let{kind:m,ssrcs:y,mid:w,isMuted:b}=C;this._handleP2PAddAudioOrVideoStream(m,g,y[0].ssrcId,w);let M=this._users.find(k=>k.uid===g);return M&&this.store.useP2P?this._p2pChannel.mockSubscribe(M,m,y[0].ssrcId,w).then(()=>{A()}).catch(l):A(),this._handleMuteStream(g,m,!!b)})}),this._gateway.signal.on(Ro.CALL,async(a,A,l)=>{if(this.store.useP2P)try{var g;A(await this._p2pChannel.startP2P({turnServer:(g=this._joinInfo)===null||g===void 0?void 0:g.turnServer},a))}catch(C){l(C)}}),this._gateway.signal.on(or.P2P_CONNECTION,async a=>{this.store.useP2P&&(await this._p2pChannel).p2pConnect(a)}),this._gateway.signal.on(Ro.UNPUBLISH,async(a,A,l)=>{if(this.store.useP2P){let{unpubMsg:g,uid:C}=a,m=this._users.find(y=>y.uid===C);if(!m)return X.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(C)),void A();try{g.forEach(async y=>{let{stream_type:w}=y,b=w===an.Audio?$t.AUDIO:$t.VIDEO;await this._p2pChannel.unsubscribe(m,b),this._handleMuteStream(C,b,!0)}),A()}catch(y){l(y)}}}),this._gateway.signal.on(Ro.CONTROL,async(a,A)=>{let{action:l}=a;switch(l){case Vd.MUTE_LOCAL_VIDEO:this._handleMuteStream(A,$t.VIDEO,!0);break;case Vd.MUTE_LOCAL_AUDIO:this._handleMuteStream(A,$t.AUDIO,!0);break;case Vd.UNMUTE_LOCAL_VIDEO:this._handleP2PAddAudioOrVideoStream("video",A),this._handleMuteStream(A,$t.VIDEO,!1);break;case Vd.UNMUTE_LOCAL_AUDIO:this._handleP2PAddAudioOrVideoStream("audio",A),this._handleMuteStream(A,$t.AUDIO,!1)}}),this._gateway.signal.on(Ro.RESTART_ICE,async(a,A,l)=>{if(this.store.useP2P)try{let{direction:g,iceParameter:C}=a;g!==uA.SEND_ONLY||C?A(await this._p2pChannel.restartICE(g,C)):(this._p2pChannel.handleDisconnect(g),A())}catch(g){l(g)}}),this._gateway.signal.on(Ro.CANDIDATE,a=>{if(this.store.useP2P){let{candidate:A,direction:l}=a;this._p2pChannel.addRemoteCandidate(A,l)}}),this._p2pChannel.on(hr.RequestP2PRestartICE,async(a,A,l)=>{try{let{direction:g}=a;A(await this._gateway.sendExtensionMessage(Ro.RESTART_ICE,a,g===uA.SEND_ONLY))}catch(g){l(g)}}),this._p2pChannel.on(hr.LocalCandidate,a=>{this._gateway.sendExtensionMessage(Ro.CANDIDATE,JSON.stringify(a),!0)}),this._p2pChannel.on(hr.RequestP2PMuteLocal,async(a,A,l)=>{try{await this._gateway.sendExtensionMessage(Ro.CONTROL,a,!0),A()}catch(g){l(g)}}),this._p2pChannel.on(hr.RequestP2PUnmuteRemote,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.unmuteRemote(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.RequestP2PMuteRemote,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.muteRemote(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.StateChange,(a,A)=>{A===An.Connected&&this._p2pChannel.republish()})}_handleP2PChannelEvents(){this._p2pChannel.on(hr.PeerConnectionStateChange,a=>{let A=this._peerConnectionState;a!==A&&(this.safeEmit(si.PEERCONNECTION_STATE_CHANGE,a,A),this._peerConnectionState=a)}),this._p2pChannel.on(hr.RequestMuteLocal,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.muteLocal(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.RequestUnmuteLocal,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.unmuteLocal(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.RequestRePublish,(a,A,l)=>{this.publish(a,!1).then(A).catch(l)}),this._p2pChannel.on(hr.RequestRePublishDataChannel,(a,A,l)=>{Ft.all(a.map(async g=>{let C=await this._p2pChannel.publishDataChannel([g]);try{C.forEach(m=>{this._uid&&this._gateway.publishDataChannel(this._uid,m,!0)})}catch(m){if(m.code!==fe.DISCONNECT_P2P)throw m}})).then(A).catch(l)}),this._p2pChannel.on(hr.RequestReSubscribe,async(a,A,l)=>{try{for(let{user:g,kind:C}of a)C===$t.VIDEO?await this.subscribe(g,"video"):await this.subscribe(g,"audio");A()}catch(g){l(g)}}),this._p2pChannel.on(hr.RequestUpload,(a,A)=>{this._gateway.upload(a,A)}),this._p2pChannel.on(hr.RequestUploadStats,a=>{this._gateway.uploadWRTCStats(a)}),this._p2pChannel.on(hr.MediaReconnectStart,a=>{this.safeEmit(si.MEDIA_RECONNECT_START,a)}),this._p2pChannel.on(hr.MediaReconnectEnd,a=>{this.safeEmit(si.MEDIA_RECONNECT_END,a)}),this._p2pChannel.on(hr.NeedSignalRTT,a=>{a(this._gateway.getSignalRTT())}),this._p2pChannel.on(hr.RequestRestartICE,async a=>{if(this.store.useP2P)return;let A=await this._p2pChannel.restartICE(a),l=await A.next();if(l.done)return;let g=l.value,C;try{C=await this._gateway.restartICE({iceParameters:g})}catch(y){return void A.throw(y)}let{iceParameters:m}=function(y){let w=y.iceParameters;return{iceParameters:{iceUfrag:w.iceUfrag,icePwd:w.icePwd}}}(C);await A.next({remoteIceParameters:m})}),this._p2pChannel.on(hr.RequestReconnect,async()=>{this._gateway.reconnect()}),this._p2pChannel.on(hr.RequestReconnectPC,async()=>{var a;let{iceParameters:A,dtlsParameters:l,rtpCapabilities:g}=await this._p2pChannel.startP2PConnection({turnServer:(a=this._joinInfo)===null||a===void 0?void 0:a.turnServer}),{gatewayEstablishParams:C,gatewayAddress:m}=await this._gateway.reconnectPC({iceParameters:A,dtlsParameters:l,rtpCapabilities:g}),y=ku(C,m);await this._p2pChannel.connect(y),await this._p2pChannel.republish(),await this._p2pChannel.reSubscribe()}),this._p2pChannel.on(hr.RequestUnpublishForReconnectPC,async(a,A,l)=>{this._joinInfo&&this._uid!==void 0?(await this._gateway.unpublish(a,this._uid),A()):l()}),this._p2pChannel.on(hr.P2PLost,()=>{this.safeEmit(si.P2P_LOST,this.store.uid)}),this._p2pChannel.on(hr.UpdateVideoEncoder,a=>{a._encoderConfig&&this._gateway.setVideoProfile(a._encoderConfig)}),this._p2pChannel.on(hr.ConnectionTypeChange,a=>{this.safeEmit(si.IS_USING_CLOUD_PROXY,a),this._gateway.setUsingProxy(a)}),this._p2pChannel.on(hr.FirstVideoBufferReady,(a,A)=>{this.safeEmit(si.FIRST_VIDEO_BUFFER_READY,a,A)}),this._p2pChannel.on(hr.FirstVideoPreRender,(a,A)=>{this.safeEmit(si.FIRST_VIDEO_PRE_RENDER,a,A)}),this._p2pChannel.on(hr.RequestLowStreamParameter,a=>{a(this._lowStreamParameter||{width:160,height:120,framerate:15,bitrate:50})}),this._p2pChannel.on(hr.QueryClientConnectionState,a=>{a(this.connectionState)}),this._p2pChannel.on(hr.AudioMetadata,a=>{this.safeEmit(si.AUDIO_METADATA,a)}),this._p2pChannel.on(hr.AudioPts,a=>{this.safeEmit(si.AUDIO_PTS,Number(a))})}getKeyMetrics(){return this.store.keyMetrics}async enableContentInspect(a){if(!this._joinInfo||this.connectionState!=="CONNECTED")throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] can not create content inspect, please join channel first"));if(this._inspect)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Inspect content service already in connecting/connected state"));try{let l=(A={config:a},td("ContentInspect").create(A));this._inspect=l,this.handleVideoInspectEvents(l);let{appId:g,cname:C,sid:m,token:y,uid:w,cid:b,vid:M}=this._joinInfo;await l.init({appId:g,areaCode:"",cname:C,sid:m,token:y,uid:w,cid:b,vid:M?Number(M):0},os)}catch(l){throw Array.isArray(l)?l[0]:l}var A}handleVideoInspectEvents(a){a.on(sa.CONNECTION_STATE_CHANGE,(A,l)=>{if(this.safeEmit(si.CONTENT_INSPECT_CONNECTION_STATE_CHANGE,A,l),l===Cl.CONNECTED){if(this.connectionState!=="CONNECTED")return void this.safeEmit(si.CONTENT_INSPECT_ERROR,new ze(fe.OPERATION_ABORTED,"Content inspect was cancelled because it left the channel"));a.inspectImage()}}),a.on(sa.INSPECT_RESULT,(A,l)=>{var g;if((l==null?void 0:l.code)===fe.INVALID_OPERATION&&this.connectionState==="DISCONNECTED")return X.debug("Stop inspect content because that has left channel"),this==null||(g=this._inspect)===null||g===void 0||g.close(),void(this._inspect=void 0);this.safeEmit(si.CONTENT_INSPECT_RESULT,A,l)}),a.on(sa.CLIENT_LOCAL_VIDEO_TRACK,A=>{A(this.localTracks.filter(l=>l.trackMediaType==="video")[0])})}async disableContentInspect(){if(!this._inspect)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] inspectVideoContent not started"));try{this._inspect.close(),this._inspect=void 0}catch(a){throw Array.isArray(a)?a[0]:a}}async setImageModeration(a,A){if(Yl(a,"enabled"),a){if(!A)throw new ze(fe.INVALID_PARAMS,"config is required");if(sQ(A),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not create image moderation, please join channel first");try{if(this._moderation)this._moderation.updateConfig(A);else{let g=(l={config:A},td("ImageModeration").create(l));this._moderation=g,this.handleImageModerationEvents(g);let{appId:C,cname:m,sid:y,token:w,uid:b,cid:M,vid:k}=this._joinInfo;await g.init({appId:C,areaCode:"",cname:m,sid:y,token:w,uid:b,cid:M,vid:k?Number(k):0},os)}}catch(g){throw Array.isArray(g)?g[0]:g}}else{var l;if(!this._moderation)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] image moderation not started"));try{this._moderation.close(),this._moderation.removeAllListeners(),this._moderation=void 0}catch(g){throw Array.isArray(g)?g[0]:g}}}handleImageModerationEvents(a){a.on(Pc.CONNECTION_STATE_CHANGE,(A,l)=>{if(this.safeEmit(si.IMAGE_MODERATION_CONNECTION_STATE_CHANGE,A,l),A===ba.CONNECTED){if(this.connectionState!=="CONNECTED")throw this.setImageModeration(!1),new ze(fe.OPERATION_ABORTED,"Image moderation was cancelled because it left the channel");a.inspectImage()}}),a.on(Pc.CLIENT_LOCAL_VIDEO_TRACK,A=>{A(this.localTracks.filter(l=>l.trackMediaType==="video")[0])})}setP2PTransport(a){if(function(A){zo(A,"transport",["default","auto","relay","sd-rtn"])}(a),this.mode!=="p2p")throw new ze(fe.INVALID_OPERATION,"only p2p mode can set p2pTransport");this.store.p2pTransport=a,X.info("[".concat(this._clientId,"] set client p2pTransport to ").concat(a))}getJoinChannelServiceRecords(){return X.debug("getJoinChannelServiceRecords"),this.store.joinChannelServiceRecords}async setPublishAudioFilterEnabled(a){Yl(a,"enabled"),Mn("ENABLE_PUBLISH_AUDIO_FILTER",a),this._joinInfo&&await this._gateway.setPublishAudioFilterEnabled(a)}_setRteInfo(a,A){this.store.rteUrl=a,this.store.rteSid=A}_isPreRender(){return"isPreRender"in this._p2pChannel&&this._p2pChannel.isPreRender()}_handleResetAddStream(a,A){switch(A){case"audio":a._audio_added_=!1,a._trust_audio_stream_added_state_=!0;break;case"video":a._video_added_=!1,a._trust_video_stream_added_state_=!0}}},Vt(Jt.prototype,"leave",[T_],Object.getOwnPropertyDescriptor(Jt.prototype,"leave"),Jt.prototype),Vt(Jt.prototype,"publish",[AQ],Object.getOwnPropertyDescriptor(Jt.prototype,"publish"),Jt.prototype),Vt(Jt.prototype,"unpublish",[ca],Object.getOwnPropertyDescriptor(Jt.prototype,"unpublish"),Jt.prototype),Vt(Jt.prototype,"subscribe",[jN],Object.getOwnPropertyDescriptor(Jt.prototype,"subscribe"),Jt.prototype),Vt(Jt.prototype,"presubscribe",[b7],Object.getOwnPropertyDescriptor(Jt.prototype,"presubscribe"),Jt.prototype),Vt(Jt.prototype,"massSubscribe",[Dh],Object.getOwnPropertyDescriptor(Jt.prototype,"massSubscribe"),Jt.prototype),Vt(Jt.prototype,"unsubscribe",[JN],Object.getOwnPropertyDescriptor(Jt.prototype,"unsubscribe"),Jt.prototype),Vt(Jt.prototype,"massUnsubscribe",[qN],Object.getOwnPropertyDescriptor(Jt.prototype,"massUnsubscribe"),Jt.prototype),Vt(Jt.prototype,"setLowStreamParameter",[WN],Object.getOwnPropertyDescriptor(Jt.prototype,"setLowStreamParameter"),Jt.prototype),Vt(Jt.prototype,"setDualStreamMode",[XN],Object.getOwnPropertyDescriptor(Jt.prototype,"setDualStreamMode"),Jt.prototype),Vt(Jt.prototype,"enableDualStream",[cQ],Object.getOwnPropertyDescriptor(Jt.prototype,"enableDualStream"),Jt.prototype),Vt(Jt.prototype,"disableDualStream",[lQ],Object.getOwnPropertyDescriptor(Jt.prototype,"disableDualStream"),Jt.prototype),Vt(Jt.prototype,"setClientRole",[zN],Object.getOwnPropertyDescriptor(Jt.prototype,"setClientRole"),Jt.prototype),Vt(Jt.prototype,"_setClientRoleOptions",[N7],Object.getOwnPropertyDescriptor(Jt.prototype,"_setClientRoleOptions"),Jt.prototype),Vt(Jt.prototype,"setProxyServer",[$N],Object.getOwnPropertyDescriptor(Jt.prototype,"setProxyServer"),Jt.prototype),Vt(Jt.prototype,"setTurnServer",[O7],Object.getOwnPropertyDescriptor(Jt.prototype,"setTurnServer"),Jt.prototype),Vt(Jt.prototype,"setLicense",[Hu],Object.getOwnPropertyDescriptor(Jt.prototype,"setLicense"),Jt.prototype),Vt(Jt.prototype,"startProxyServer",[L7],Object.getOwnPropertyDescriptor(Jt.prototype,"startProxyServer"),Jt.prototype),Vt(Jt.prototype,"stopProxyServer",[ZN],Object.getOwnPropertyDescriptor(Jt.prototype,"stopProxyServer"),Jt.prototype),Vt(Jt.prototype,"setLocalAccessPointsV2",[M7],Object.getOwnPropertyDescriptor(Jt.prototype,"setLocalAccessPointsV2"),Jt.prototype),Vt(Jt.prototype,"setLocalAccessPoints",[k7],Object.getOwnPropertyDescriptor(Jt.prototype,"setLocalAccessPoints"),Jt.prototype),Vt(Jt.prototype,"setRemoteDefaultVideoStreamType",[ip],Object.getOwnPropertyDescriptor(Jt.prototype,"setRemoteDefaultVideoStreamType"),Jt.prototype),Vt(Jt.prototype,"setRemoteVideoStreamType",[dQ],Object.getOwnPropertyDescriptor(Jt.prototype,"setRemoteVideoStreamType"),Jt.prototype),Vt(Jt.prototype,"setStreamFallbackOption",[uQ],Object.getOwnPropertyDescriptor(Jt.prototype,"setStreamFallbackOption"),Jt.prototype),Vt(Jt.prototype,"setEncryptionConfig",[P7],Object.getOwnPropertyDescriptor(Jt.prototype,"setEncryptionConfig"),Jt.prototype),Vt(Jt.prototype,"renewToken",[eO],Object.getOwnPropertyDescriptor(Jt.prototype,"renewToken"),Jt.prototype),Vt(Jt.prototype,"enableAudioVolumeIndicator",[U7],Object.getOwnPropertyDescriptor(Jt.prototype,"enableAudioVolumeIndicator"),Jt.prototype),Vt(Jt.prototype,"startLiveStreaming",[w_],Object.getOwnPropertyDescriptor(Jt.prototype,"startLiveStreaming"),Jt.prototype),Vt(Jt.prototype,"setLiveTranscoding",[tO],Object.getOwnPropertyDescriptor(Jt.prototype,"setLiveTranscoding"),Jt.prototype),Vt(Jt.prototype,"stopLiveStreaming",[rO],Object.getOwnPropertyDescriptor(Jt.prototype,"stopLiveStreaming"),Jt.prototype),Vt(Jt.prototype,"startChannelMediaRelay",[iO],Object.getOwnPropertyDescriptor(Jt.prototype,"startChannelMediaRelay"),Jt.prototype),Vt(Jt.prototype,"updateChannelMediaRelay",[x7],Object.getOwnPropertyDescriptor(Jt.prototype,"updateChannelMediaRelay"),Jt.prototype),Vt(Jt.prototype,"stopChannelMediaRelay",[nO],Object.getOwnPropertyDescriptor(Jt.prototype,"stopChannelMediaRelay"),Jt.prototype),Vt(Jt.prototype,"sendCustomReportMessage",[F7],Object.getOwnPropertyDescriptor(Jt.prototype,"sendCustomReportMessage"),Jt.prototype),Vt(Jt.prototype,"pickSVCLayer",[gQ],Object.getOwnPropertyDescriptor(Jt.prototype,"pickSVCLayer"),Jt.prototype),Vt(Jt.prototype,"setRTMConfig",[fo],Object.getOwnPropertyDescriptor(Jt.prototype,"setRTMConfig"),Jt.prototype),Vt(Jt.prototype,"enableContentInspect",[np],Object.getOwnPropertyDescriptor(Jt.prototype,"enableContentInspect"),Jt.prototype),Vt(Jt.prototype,"disableContentInspect",[G7],Object.getOwnPropertyDescriptor(Jt.prototype,"disableContentInspect"),Jt.prototype),Vt(Jt.prototype,"setImageModeration",[op],Object.getOwnPropertyDescriptor(Jt.prototype,"setImageModeration"),Jt.prototype),Vt(Jt.prototype,"setP2PTransport",[v_],Object.getOwnPropertyDescriptor(Jt.prototype,"setP2PTransport"),Jt.prototype),Vt(Jt.prototype,"getJoinChannelServiceRecords",[sc],Object.getOwnPropertyDescriptor(Jt.prototype,"getJoinChannelServiceRecords"),Jt.prototype),Vt(Jt.prototype,"setPublishAudioFilterEnabled",[Hg],Object.getOwnPropertyDescriptor(Jt.prototype,"setPublishAudioFilterEnabled"),Jt.prototype),Jt);function oO(){var a;let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{codec:"vp8",audioCodec:"opus",mode:"rtc"},l=yn(5,"client-"),g=tr.reportApiInvoke(null,{id:l,name:Co.CREATE_CLIENT,options:[A],tag:Gn.TRACER});try{(function(C){zo(C.codec,"config.codec",["vp8","vp9","av1","h264","h265"]),zo(C.mode,"config.mode",["rtc","live","p2p"]),C.audioCodec!==void 0&&zo(C.audioCodec,"config.audioCodec",["opus","pcmu","pcma","g722"]),C.proxyServer!==void 0&&Tr(C.proxyServer,"config.proxyServer",1,1e4),C.turnServer!==void 0&&wR(C.turnServer),C.httpRetryConfig!==void 0&&TR(C.httpRetryConfig),C.websocketRetryConfig!==void 0&&TR(C.websocketRetryConfig)})(A)}catch(C){throw g.onError(C),C}return(jb(16,0,!0)||r2(16,0,!0))&&(A.codec==="vp9"&&(A.codec="vp8",X.debug("browser not support vp9, force use vp8")),Mn("UNSUPPORTED_VIDEO_CODEC",["vp9"])),A.audioCodec===void 0&&(A.audioCodec="opus"),g.onSuccess(),new V7(ac(ac({forceWaitGatewayResponse:!0},A),{},{role:Rt(a=["rtc","p2p"]).call(a,A.mode)?"host":A.role||"audience"}),l)}function sO(){let a=!1,A=Wi();return(A.name===nn.CHROME&&Number(A.version)>=58&&(Kl.engine.name!=="WebKit"||function(){let l=Wi();if(DC()){if(l.os===Vs.MAC_OS)return!0;if(l.os===Vs.IOS){let g=Kl.os.version&&Kl.os.version.split(".");if(g&&Number(g[0])===14&&g[1]&&Number(g[1])>=3||g&&Number(g[0])>14)return!0}}return!1}())||A.name===nn.FIREFOX&&Number(A.version)>=56||A.name===nn.OPERA&&Number(A.version)>=45||A.name===nn.SAFARI&&Number(A.version)>=11||A.name==="WebKit"&&(Ma()||Hl())&&A.osVersion&&Number(A.osVersion.split(".")[0])>=11||Jb()||Wi().name===nn.QQ)&&(a=!0),a}class D_{constructor(A,l){Ae(this,"id",0),Ae(this,"element",void 0),Ae(this,"peerPair",void 0),Ae(this,"context",void 0),Ae(this,"audioPlayerElement",void 0),Ae(this,"audioTrack",void 0),D_.count+=1,this.id=D_.count,this.element=A,this.context=l}initPeers(){this.peerPair=[new RTCPeerConnection,new RTCPeerConnection],this.peerPair[1].ontrack=A=>{let l=document.createElement("audio");l.srcObject=new MediaStream([A.track]),l.play(),this.audioPlayerElement=l}}async switchSdp(){if(!this.peerPair)return;let A=async(g,C)=>{let m=C==="offer"?await g.createOffer():await g.createAnswer();return await g.setLocalDescription(m),g.iceGatheringState==="complete"?g.localDescription:new Ft(y=>{g.onicegatheringstatechange=()=>{g.iceGatheringState==="complete"&&y(g.localDescription)}})},l=async(g,C)=>await g.setRemoteDescription(C);try{let g=await A(this.peerPair[0],"offer");await l(this.peerPair[1],g);let C=await A(this.peerPair[1],"answer");await l(this.peerPair[0],C)}catch(g){throw new ze(fe.LOCAL_AEC_ERROR,g.toString()).print()}}async getTracksFromMediaElement(A){if(this.audioTrack)return this.audioTrack;let l;try{A instanceof HTMLVideoElement&&(A.captureStream?A.captureStream():A.mozCaptureStream()),l=this.context.createMediaStreamDestination(),this.context.createMediaElementSource(A).connect(l)}catch(C){throw new ze(fe.LOCAL_AEC_ERROR,C.toString()).print()}if(!l)throw new ze(fe.LOCAL_AEC_ERROR,"no dest node when local aec").print();let g=l.stream.getAudioTracks()[0];return this.audioTrack=g,g}getElement(){return this.element}async startEchoCancellation(){this.context.resume(),this.peerPair&&this.close(),this.initPeers();let A=this.element,l=await this.getTracksFromMediaElement(A);this.peerPair&&this.peerPair[0].addTrack(l),await this.switchSdp()}close(){X.debug("close echo cancellation unit, id is",this.id),this.audioPlayerElement&&this.audioPlayerElement.pause(),this.peerPair&&this.peerPair.forEach(A=>{A.close()}),this.peerPair=void 0,this.audioPlayerElement=void 0}}var Ka,b_;Ae(D_,"count",0);let lq=window.AudioContext||window.webkitAudioContext,dq=new(Ka=Sr({report:tr}),Vt((b_=class{constructor(){Ae(this,"units",[]),Ae(this,"context",void 0)}processExternalMediaAEC(a){if(!this._doesEnvironmentNeedAEC())return X.debug("the system does not need to process local aec"),-1;this.context||(this.context=new lq);let A=this.units.find(l=>l&&l.getElement()===a);return A||(A=new D_(a,this.context),this.units.push(A)),A.startEchoCancellation(),X.debug("start processing local audio echo cancellation, id is",A.id),A.id}_doesEnvironmentNeedAEC(){return Wi().name!==nn.SAFARI}}).prototype,"processExternalMediaAEC",[Ka],Object.getOwnPropertyDescriptor(b_.prototype,"processExternalMediaAEC"),b_.prototype),b_);function Yg(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function K7(a){for(var A=1;A1&&arguments[1]!==void 0&&arguments[1];if(!aO)return;let l=Ts._cspEventHandlerPointer;if(l&&A)return void console.error(l,A);let g=C=>{if(!(C&&C.blockedURI&&(Ts.onSecurityPolicyViolation||Ts.getListeners(nc.SECURITY_POLICY_VIOLATION).length>0)))return;let m=C.blockedURI;Ie("CSP_DETECTED_HOSTNAME_LIST").some(y=>Rt(m).call(m,y))&&(Ts.onSecurityPolicyViolation&&typeof Ts.onSecurityPolicyViolation=="function"&&Ts.onSecurityPolicyViolation(C),Ts.getListeners(nc.SECURITY_POLICY_VIOLATION).length>0&&Ts.safeEmit(nc.SECURITY_POLICY_VIOLATION,C))};l&&aO.removeEventListener("securitypolicyviolation",l),(A||a&&typeof a=="function"||Ts.getListeners(nc.SECURITY_POLICY_VIOLATION).length>0)&&aO.addEventListener("securitypolicyviolation",g),Ts._cspEventHandlerPointer=g}var uq=j,AO=AC,hQ=RegExp.prototype,gq=function(a){return a===hQ||uq(hQ,a)?AO(a):a.flags},CA=I(gq);function Yu(a){let A=a.length;for(;--A>=0;)a[A]=0}let cO=256,H7=286,od=30,ju=15,nI=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Ha=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),lO=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ac=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),jg=new Array(576);Yu(jg);let sp=new Array(60);Yu(sp);let N_=new Array(512);Yu(N_);let O_=new Array(256);Yu(O_);let ml=new Array(29);Yu(ml);let Bl=new Array(od);function sd(a,A,l,g,C){this.static_tree=a,this.extra_bits=A,this.extra_base=l,this.elems=g,this.max_length=C,this.has_stree=a&&a.length}let dO,IQ,Y7;function CQ(a,A){this.dyn_tree=a,this.max_code=0,this.stat_desc=A}Yu(Bl);let j7=a=>a<256?N_[a]:N_[256+(a>>>7)],ap=(a,A)=>{a.pending_buf[a.pending++]=255&A,a.pending_buf[a.pending++]=A>>>8&255},cc=(a,A,l)=>{a.bi_valid>16-l?(a.bi_buf|=A<>16-a.bi_valid,a.bi_valid+=l-16):(a.bi_buf|=A<{cc(a,l[2*A],l[2*A+1])},J7=(a,A)=>{let l=0;do l|=1&a,a>>>=1,l<<=1;while(--A>0);return l>>>1},q7=(a,A,l)=>{let g=new Array(16),C,m,y=0;for(C=1;C<=ju;C++)y=y+l[C-1]<<1,g[C]=y;for(m=0;m<=A;m++){let w=a[2*m+1];w!==0&&(a[2*m]=J7(g[w]++,w))}},bh=a=>{let A;for(A=0;A{a.bi_valid>8?ap(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0},L_=(a,A,l,g)=>{let C=2*A,m=2*l;return a[C]{let g=a.heap[l],C=l<<1;for(;C<=a.heap_len&&(C{let g,C,m,y,w=0;if(a.sym_next!==0)do g=255&a.pending_buf[a.sym_buf+w++],g+=(255&a.pending_buf[a.sym_buf+w++])<<8,C=a.pending_buf[a.sym_buf+w++],g===0?Ju(a,C,A):(m=O_[C],Ju(a,m+cO+1,A),y=nI[m],y!==0&&(C-=ml[m],cc(a,C,y)),g--,m=j7(g),Ju(a,m,l),y=Ha[m],y!==0&&(g-=Bl[m],cc(a,g,y)));while(w{let l=A.dyn_tree,g=A.stat_desc.static_tree,C=A.stat_desc.has_stree,m=A.stat_desc.elems,y,w,b,M=-1;for(a.heap_len=0,a.heap_max=573,y=0;y>1;y>=1;y--)ad(a,l,y);b=m;do y=a.heap[1],a.heap[1]=a.heap[a.heap_len--],ad(a,l,1),w=a.heap[1],a.heap[--a.heap_max]=y,a.heap[--a.heap_max]=w,l[2*b]=l[2*y]+l[2*w],a.depth[b]=(a.depth[y]>=a.depth[w]?a.depth[y]:a.depth[w])+1,l[2*y+1]=l[2*w+1]=b,a.heap[1]=b++,ad(a,l,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],((k,V)=>{let K=V.dyn_tree,q=V.max_code,ce=V.stat_desc.static_tree,oe=V.stat_desc.has_stree,le=V.stat_desc.extra_bits,pe=V.stat_desc.extra_base,Se=V.stat_desc.max_length,be,Ue,xe,Le,je,dt,pt=0;for(Le=0;Le<=ju;Le++)k.bl_count[Le]=0;for(K[2*k.heap[k.heap_max]+1]=0,be=k.heap_max+1;be<573;be++)Ue=k.heap[be],Le=K[2*K[2*Ue+1]+1]+1,Le>Se&&(Le=Se,pt++),K[2*Ue+1]=Le,Ue>q||(k.bl_count[Le]++,je=0,Ue>=pe&&(je=le[Ue-pe]),dt=K[2*Ue],k.opt_len+=dt*(Le+je),oe&&(k.static_len+=dt*(ce[2*Ue+1]+je)));if(pt!==0){do{for(Le=Se-1;k.bl_count[Le]===0;)Le--;k.bl_count[Le]--,k.bl_count[Le+1]+=2,k.bl_count[Se]--,pt-=2}while(pt>0);for(Le=Se;Le!==0;Le--)for(Ue=k.bl_count[Le];Ue!==0;)xe=k.heap[--be],xe>q||(K[2*xe+1]!==Le&&(k.opt_len+=(Le-K[2*xe+1])*K[2*xe],K[2*xe+1]=Le),Ue--)}})(a,A),q7(l,M,a.bl_count)},pQ=(a,A,l)=>{let g,C,m=-1,y=A[1],w=0,b=7,M=4;for(y===0&&(b=138,M=3),A[2*(l+1)+1]=65535,g=0;g<=l;g++)C=y,y=A[2*(g+1)+1],++w{let g,C,m=-1,y=A[1],w=0,b=7,M=4;for(y===0&&(b=138,M=3),g=0;g<=l;g++)if(C=y,y=A[2*(g+1)+1],!(++w{cc(a,0+(g?1:0),3),W7(a),ap(a,l),ap(a,~l),l&&a.pending_buf.set(a.window.subarray(A,A+l),a.pending),a.pending+=l};var zd=a=>{uO||((()=>{let A,l,g,C,m,y=new Array(16);for(g=0,C=0;C<28;C++)for(ml[C]=g,A=0;A<1<>=7;C{let C,m,y=0;a.level>0?(a.strm.data_type===2&&(a.strm.data_type=(w=>{let b,M=4093624447;for(b=0;b<=31;b++,M>>>=1)if(1&M&&w.dyn_ltree[2*b]!==0)return 0;if(w.dyn_ltree[18]!==0||w.dyn_ltree[20]!==0||w.dyn_ltree[26]!==0)return 1;for(b=32;b{let b;for(pQ(w,w.dyn_ltree,w.l_desc.max_code),pQ(w,w.dyn_dtree,w.d_desc.max_code),M_(w,w.bl_desc),b=18;b>=3&&w.bl_tree[2*Ac[b]+1]===0;b--);return w.opt_len+=3*(b+1)+5+5+4,b})(a),C=a.opt_len+3+7>>>3,m=a.static_len+3+7>>>3,m<=C&&(C=m)):C=m=l+5,l+4<=C&&A!==-1?qu(a,A,l,g):a.strategy===4||m===C?(cc(a,2+(g?1:0),3),Nh(a,jg,sp)):(cc(a,4+(g?1:0),3),((w,b,M,k)=>{let V;for(cc(w,b-257,5),cc(w,M-1,5),cc(w,k-4,4),V=0;V(a.pending_buf[a.sym_buf+a.sym_next++]=A,a.pending_buf[a.sym_buf+a.sym_next++]=A>>8,a.pending_buf[a.sym_buf+a.sym_next++]=l,A===0?a.dyn_ltree[2*l]++:(a.matches++,A--,a.dyn_ltree[2*(O_[l]+cO+1)]++,a.dyn_dtree[2*j7(A)]++),a.sym_next===a.sym_end),k_=a=>{cc(a,2,3),Ju(a,256,jg),(A=>{A.bi_valid===16?(ap(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(a)},Z7={_tr_init:zd,_tr_stored_block:qu,_tr_flush_block:z7,_tr_tally:$7,_tr_align:k_},oI=(a,A,l,g)=>{let C=65535&a|0,m=a>>>16&65535|0,y=0;for(;l!==0;){y=l>2e3?2e3:l,l-=y;do C=C+A[g++]|0,m=m+C|0;while(--y);C%=65521,m%=65521}return C|m<<16|0};let ex=new Uint32Array((()=>{let a,A=[];for(var l=0;l<256;l++){a=l;for(var g=0;g<8;g++)a=1&a?3988292384^a>>>1:a>>>1;A[l]=a}return A})());var pA=(a,A,l,g)=>{let C=ex,m=g+l;a^=-1;for(let y=g;y>>8^C[255&(a^A[y])];return-1^a},Oh={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},P_={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_UNKNOWN:2,Z_DEFLATED:8};let{_tr_init:Ap,_tr_stored_block:fQ,_tr_flush_block:Eq,_tr_tally:Lh,_tr_align:cp}=Z7,{Z_NO_FLUSH:Jg,Z_PARTIAL_FLUSH:hq,Z_FULL_FLUSH:Iq,Z_FINISH:Ad,Z_BLOCK:tx,Z_OK:Ya,Z_STREAM_END:rx,Z_STREAM_ERROR:Sl,Z_DATA_ERROR:Cq,Z_BUF_ERROR:gO,Z_DEFAULT_COMPRESSION:pq,Z_FILTERED:U_,Z_HUFFMAN_ONLY:_Q,Z_RLE:fq,Z_FIXED:EO,Z_DEFAULT_STRATEGY:ix,Z_UNKNOWN:nx,Z_DEFLATED:x_}=P_,hO=286,ox=30,sx=19,_q=2*hO+1,mq=15,Mh=258,$d=262,kh=42,Ph=113,Wu=666,sI=(a,A)=>(a.msg=Oh[A],A),ax=a=>2*a-(a>4?9:0),R1=a=>{let A=a.length;for(;--A>=0;)a[A]=0},Bq=a=>{let A,l,g,C=a.w_size;A=a.hash_size,g=A;do l=a.head[--g],a.head[g]=l>=C?l-C:0;while(--A);A=C,g=A;do l=a.prev[--g],a.prev[g]=l>=C?l-C:0;while(--A)},Uh=(a,A,l)=>(A<{let A=a.state,l=A.pending;l>a.avail_out&&(l=a.avail_out),l!==0&&(a.output.set(A.pending_buf.subarray(A.pending_out,A.pending_out+l),a.next_out),a.next_out+=l,A.pending_out+=l,a.total_out+=l,a.avail_out-=l,A.pending-=l,A.pending===0&&(A.pending_out=0))},Rl=(a,A)=>{Eq(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,A),a.block_start=a.strstart,ks(a.strm)},Zo=(a,A)=>{a.pending_buf[a.pending++]=A},F_=(a,A)=>{a.pending_buf[a.pending++]=A>>>8&255,a.pending_buf[a.pending++]=255&A},IO=(a,A,l,g)=>{let C=a.avail_in;return C>g&&(C=g),C===0?0:(a.avail_in-=C,A.set(a.input.subarray(a.next_in,a.next_in+C),l),a.state.wrap===1?a.adler=oI(a.adler,A,C,l):a.state.wrap===2&&(a.adler=pA(a.adler,A,C,l)),a.next_in+=C,a.total_in+=C,C)},G_=(a,A)=>{let l,g,C=a.max_chain_length,m=a.strstart,y=a.prev_length,w=a.nice_match,b=a.strstart>a.w_size-$d?a.strstart-(a.w_size-$d):0,M=a.window,k=a.w_mask,V=a.prev,K=a.strstart+Mh,q=M[m+y-1],ce=M[m+y];a.prev_length>=a.good_match&&(C>>=2),w>a.lookahead&&(w=a.lookahead);do if(l=A,M[l+y]===ce&&M[l+y-1]===q&&M[l]===M[m]&&M[++l]===M[m+1]){m+=2,l++;do;while(M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&my){if(a.match_start=A,y=g,g>=w)break;q=M[m+y-1],ce=M[m+y]}}while((A=V[A&k])>b&&--C!=0);return y<=a.lookahead?y:a.lookahead},lp=a=>{let A=a.w_size,l,g,C;do{if(g=a.window_size-a.lookahead-a.strstart,a.strstart>=A+(A-$d)&&(a.window.set(a.window.subarray(A,A+A-g),0),a.match_start-=A,a.strstart-=A,a.block_start-=A,a.insert>a.strstart&&(a.insert=a.strstart),Bq(a),g+=A),a.strm.avail_in===0)break;if(l=IO(a.strm,a.window,a.strstart+a.lookahead,g),a.lookahead+=l,a.lookahead+a.insert>=3)for(C=a.strstart-a.insert,a.ins_h=a.window[C],a.ins_h=Uh(a,a.ins_h,a.window[C+1]);a.insert&&(a.ins_h=Uh(a,a.ins_h,a.window[C+3-1]),a.prev[C&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=C,C++,a.insert--,!(a.lookahead+a.insert<3)););}while(a.lookahead<$d&&a.strm.avail_in!==0)},CO=(a,A)=>{let l,g,C,m=a.pending_buf_size-5>a.w_size?a.w_size:a.pending_buf_size-5,y=0,w=a.strm.avail_in;do{if(l=65535,C=a.bi_valid+42>>3,a.strm.avail_outg+a.strm.avail_in&&(l=g+a.strm.avail_in),l>C&&(l=C),l>8,a.pending_buf[a.pending-2]=~l,a.pending_buf[a.pending-1]=~l>>8,ks(a.strm),g&&(g>l&&(g=l),a.strm.output.set(a.window.subarray(a.block_start,a.block_start+g),a.strm.next_out),a.strm.next_out+=g,a.strm.avail_out-=g,a.strm.total_out+=g,a.block_start+=g,l-=g),l&&(IO(a.strm,a.strm.output,a.strm.next_out,l),a.strm.next_out+=l,a.strm.avail_out-=l,a.strm.total_out+=l)}while(y===0);return w-=a.strm.avail_in,w&&(w>=a.w_size?(a.matches=2,a.window.set(a.strm.input.subarray(a.strm.next_in-a.w_size,a.strm.next_in),0),a.strstart=a.w_size,a.insert=a.strstart):(a.window_size-a.strstart<=w&&(a.strstart-=a.w_size,a.window.set(a.window.subarray(a.w_size,a.w_size+a.strstart),0),a.matches<2&&a.matches++,a.insert>a.strstart&&(a.insert=a.strstart)),a.window.set(a.strm.input.subarray(a.strm.next_in-w,a.strm.next_in),a.strstart),a.strstart+=w,a.insert+=w>a.w_size-a.insert?a.w_size-a.insert:w),a.block_start=a.strstart),a.high_waterC&&a.block_start>=a.w_size&&(a.block_start-=a.w_size,a.strstart-=a.w_size,a.window.set(a.window.subarray(a.w_size,a.w_size+a.strstart),0),a.matches<2&&a.matches++,C+=a.w_size,a.insert>a.strstart&&(a.insert=a.strstart)),C>a.strm.avail_in&&(C=a.strm.avail_in),C&&(IO(a.strm,a.window,a.strstart,C),a.strstart+=C,a.insert+=C>a.w_size-a.insert?a.w_size-a.insert:C),a.high_water>3,C=a.pending_buf_size-C>65535?65535:a.pending_buf_size-C,m=C>a.w_size?a.w_size:C,g=a.strstart-a.block_start,(g>=m||(g||A===Ad)&&A!==Jg&&a.strm.avail_in===0&&g<=C)&&(l=g>C?C:g,y=A===Ad&&a.strm.avail_in===0&&l===g?1:0,fQ(a,a.block_start,l,y),a.block_start+=l,ks(a.strm)),y?3:1)},pO=(a,A)=>{let l,g;for(;;){if(a.lookahead<$d){if(lp(a),a.lookahead<$d&&A===Jg)return 1;if(a.lookahead===0)break}if(l=0,a.lookahead>=3&&(a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),l!==0&&a.strstart-l<=a.w_size-$d&&(a.match_length=G_(a,l)),a.match_length>=3)if(g=Lh(a,a.strstart-a.match_start,a.match_length-3),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=3){a.match_length--;do a.strstart++,a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(--a.match_length!=0);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+1]);else g=Lh(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(g&&(Rl(a,!1),a.strm.avail_out===0))return 1}return a.insert=a.strstart<2?a.strstart:2,A===Ad?(Rl(a,!0),a.strm.avail_out===0?3:4):a.sym_next&&(Rl(a,!1),a.strm.avail_out===0)?1:2},dp=(a,A)=>{let l,g,C;for(;;){if(a.lookahead<$d){if(lp(a),a.lookahead<$d&&A===Jg)return 1;if(a.lookahead===0)break}if(l=0,a.lookahead>=3&&(a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=2,l!==0&&a.prev_length4096)&&(a.match_length=2)),a.prev_length>=3&&a.match_length<=a.prev_length){C=a.strstart+a.lookahead-3,g=Lh(a,a.strstart-1-a.prev_match,a.prev_length-3),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=C&&(a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(--a.prev_length!=0);if(a.match_available=0,a.match_length=2,a.strstart++,g&&(Rl(a,!1),a.strm.avail_out===0))return 1}else if(a.match_available){if(g=Lh(a,0,a.window[a.strstart-1]),g&&Rl(a,!1),a.strstart++,a.lookahead--,a.strm.avail_out===0)return 1}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(g=Lh(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<2?a.strstart:2,A===Ad?(Rl(a,!0),a.strm.avail_out===0?3:4):a.sym_next&&(Rl(a,!1),a.strm.avail_out===0)?1:2};function Xu(a,A,l,g,C){this.good_length=a,this.max_lazy=A,this.nice_length=l,this.max_chain=g,this.func=C}let zu=[new Xu(0,0,0,0,CO),new Xu(4,4,8,4,pO),new Xu(4,5,16,8,pO),new Xu(4,6,32,32,pO),new Xu(4,4,16,16,dp),new Xu(8,16,32,32,dp),new Xu(8,16,128,128,dp),new Xu(8,32,128,256,dp),new Xu(32,128,258,1024,dp),new Xu(32,258,258,4096,dp)];function fO(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=x_,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(2*_q),this.dyn_dtree=new Uint16Array(2*(2*ox+1)),this.bl_tree=new Uint16Array(2*(2*sx+1)),R1(this.dyn_ltree),R1(this.dyn_dtree),R1(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(mq+1),this.heap=new Uint16Array(2*hO+1),R1(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*hO+1),R1(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}let V_=a=>{if(!a)return 1;let A=a.state;return!A||A.strm!==a||A.status!==kh&&A.status!==57&&A.status!==69&&A.status!==73&&A.status!==91&&A.status!==103&&A.status!==Ph&&A.status!==Wu?1:0},ja=a=>{if(V_(a))return sI(a,Sl);a.total_in=a.total_out=0,a.data_type=nx;let A=a.state;return A.pending=0,A.pending_out=0,A.wrap<0&&(A.wrap=-A.wrap),A.status=A.wrap===2?57:A.wrap?kh:Ph,a.adler=A.wrap===2?0:1,A.last_flush=-2,Ap(A),Ya},Ax=a=>{let A=ja(a);return A===Ya&&(l=>{l.window_size=2*l.w_size,R1(l.head),l.max_lazy_match=zu[l.level].max_lazy,l.good_match=zu[l.level].good_length,l.nice_match=zu[l.level].nice_length,l.max_chain_length=zu[l.level].max_chain,l.strstart=0,l.block_start=0,l.lookahead=0,l.insert=0,l.match_length=l.prev_length=2,l.match_available=0,l.ins_h=0})(a.state),A},_O=(a,A,l,g,C,m)=>{if(!a)return Sl;let y=1;if(A===pq&&(A=6),g<0?(y=0,g=-g):g>15&&(y=2,g-=16),C<1||C>9||l!==x_||g<8||g>15||A<0||A>9||m<0||m>EO||g===8&&y!==1)return sI(a,Sl);g===8&&(g=9);let w=new fO;return a.state=w,w.strm=a,w.status=kh,w.wrap=y,w.gzhead=null,w.w_bits=g,w.w_size=1<{if(V_(a)||A>tx||A<0)return a?sI(a,Sl):Sl;let l=a.state;if(!a.output||a.avail_in!==0&&!a.input||l.status===Wu&&A!==Ad)return sI(a,a.avail_out===0?gO:Sl);let g=l.last_flush;if(l.last_flush=A,l.pending!==0){if(ks(a),a.avail_out===0)return l.last_flush=-1,Ya}else if(a.avail_in===0&&ax(A)<=ax(g)&&A!==Ad)return sI(a,gO);if(l.status===Wu&&a.avail_in!==0)return sI(a,gO);if(l.status===kh&&l.wrap===0&&(l.status=Ph),l.status===kh){let C=x_+(l.w_bits-8<<4)<<8,m=-1;if(m=l.strategy>=_Q||l.level<2?0:l.level<6?1:l.level===6?2:3,C|=m<<6,l.strstart!==0&&(C|=32),C+=31-C%31,F_(l,C),l.strstart!==0&&(F_(l,a.adler>>>16),F_(l,65535&a.adler)),a.adler=1,l.status=Ph,ks(a),l.pending!==0)return l.last_flush=-1,Ya}if(l.status===57){if(a.adler=0,Zo(l,31),Zo(l,139),Zo(l,8),l.gzhead)Zo(l,(l.gzhead.text?1:0)+(l.gzhead.hcrc?2:0)+(l.gzhead.extra?4:0)+(l.gzhead.name?8:0)+(l.gzhead.comment?16:0)),Zo(l,255&l.gzhead.time),Zo(l,l.gzhead.time>>8&255),Zo(l,l.gzhead.time>>16&255),Zo(l,l.gzhead.time>>24&255),Zo(l,l.level===9?2:l.strategy>=_Q||l.level<2?4:0),Zo(l,255&l.gzhead.os),l.gzhead.extra&&l.gzhead.extra.length&&(Zo(l,255&l.gzhead.extra.length),Zo(l,l.gzhead.extra.length>>8&255)),l.gzhead.hcrc&&(a.adler=pA(a.adler,l.pending_buf,l.pending,0)),l.gzindex=0,l.status=69;else if(Zo(l,0),Zo(l,0),Zo(l,0),Zo(l,0),Zo(l,0),Zo(l,l.level===9?2:l.strategy>=_Q||l.level<2?4:0),Zo(l,3),l.status=Ph,ks(a),l.pending!==0)return l.last_flush=-1,Ya}if(l.status===69){if(l.gzhead.extra){let C=l.pending,m=(65535&l.gzhead.extra.length)-l.gzindex;for(;l.pending+m>l.pending_buf_size;){let w=l.pending_buf_size-l.pending;if(l.pending_buf.set(l.gzhead.extra.subarray(l.gzindex,l.gzindex+w),l.pending),l.pending=l.pending_buf_size,l.gzhead.hcrc&&l.pending>C&&(a.adler=pA(a.adler,l.pending_buf,l.pending-C,C)),l.gzindex+=w,ks(a),l.pending!==0)return l.last_flush=-1,Ya;C=0,m-=w}let y=new Uint8Array(l.gzhead.extra);l.pending_buf.set(y.subarray(l.gzindex,l.gzindex+m),l.pending),l.pending+=m,l.gzhead.hcrc&&l.pending>C&&(a.adler=pA(a.adler,l.pending_buf,l.pending-C,C)),l.gzindex=0}l.status=73}if(l.status===73){if(l.gzhead.name){let C,m=l.pending;do{if(l.pending===l.pending_buf_size){if(l.gzhead.hcrc&&l.pending>m&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m)),ks(a),l.pending!==0)return l.last_flush=-1,Ya;m=0}C=l.gzindexm&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m)),l.gzindex=0}l.status=91}if(l.status===91){if(l.gzhead.comment){let C,m=l.pending;do{if(l.pending===l.pending_buf_size){if(l.gzhead.hcrc&&l.pending>m&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m)),ks(a),l.pending!==0)return l.last_flush=-1,Ya;m=0}C=l.gzindexm&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m))}l.status=103}if(l.status===103){if(l.gzhead.hcrc){if(l.pending+2>l.pending_buf_size&&(ks(a),l.pending!==0))return l.last_flush=-1,Ya;Zo(l,255&a.adler),Zo(l,a.adler>>8&255),a.adler=0}if(l.status=Ph,ks(a),l.pending!==0)return l.last_flush=-1,Ya}if(a.avail_in!==0||l.lookahead!==0||A!==Jg&&l.status!==Wu){let C=l.level===0?CO(l,A):l.strategy===_Q?((m,y)=>{let w;for(;;){if(m.lookahead===0&&(lp(m),m.lookahead===0)){if(y===Jg)return 1;break}if(m.match_length=0,w=Lh(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,w&&(Rl(m,!1),m.strm.avail_out===0))return 1}return m.insert=0,y===Ad?(Rl(m,!0),m.strm.avail_out===0?3:4):m.sym_next&&(Rl(m,!1),m.strm.avail_out===0)?1:2})(l,A):l.strategy===fq?((m,y)=>{let w,b,M,k,V=m.window;for(;;){if(m.lookahead<=Mh){if(lp(m),m.lookahead<=Mh&&y===Jg)return 1;if(m.lookahead===0)break}if(m.match_length=0,m.lookahead>=3&&m.strstart>0&&(M=m.strstart-1,b=V[M],b===V[++M]&&b===V[++M]&&b===V[++M])){k=m.strstart+Mh;do;while(b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&Mm.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=3?(w=Lh(m,1,m.match_length-3),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(w=Lh(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),w&&(Rl(m,!1),m.strm.avail_out===0))return 1}return m.insert=0,y===Ad?(Rl(m,!0),m.strm.avail_out===0?3:4):m.sym_next&&(Rl(m,!1),m.strm.avail_out===0)?1:2})(l,A):zu[l.level].func(l,A);if(C!==3&&C!==4||(l.status=Wu),C===1||C===3)return a.avail_out===0&&(l.last_flush=-1),Ya;if(C===2&&(A===hq?cp(l):A!==tx&&(fQ(l,0,0,!1),A===Iq&&(R1(l.head),l.lookahead===0&&(l.strstart=0,l.block_start=0,l.insert=0))),ks(a),a.avail_out===0))return l.last_flush=-1,Ya}return A!==Ad?Ya:l.wrap<=0?rx:(l.wrap===2?(Zo(l,255&a.adler),Zo(l,a.adler>>8&255),Zo(l,a.adler>>16&255),Zo(l,a.adler>>24&255),Zo(l,255&a.total_in),Zo(l,a.total_in>>8&255),Zo(l,a.total_in>>16&255),Zo(l,a.total_in>>24&255)):(F_(l,a.adler>>>16),F_(l,65535&a.adler)),ks(a),l.wrap>0&&(l.wrap=-l.wrap),l.pending!==0?Ya:rx)},Sq=(a,A)=>{let l=A.length;if(V_(a))return Sl;let g=a.state,C=g.wrap;if(C===2||C===1&&g.status!==kh||g.lookahead)return Sl;if(C===1&&(a.adler=oI(a.adler,A,l,0)),g.wrap=0,l>=g.w_size){C===0&&(R1(g.head),g.strstart=0,g.block_start=0,g.insert=0);let b=new Uint8Array(g.w_size);b.set(A.subarray(l-g.w_size,l),0),A=b,l=g.w_size}let m=a.avail_in,y=a.next_in,w=a.input;for(a.avail_in=l,a.next_in=0,a.input=A,lp(g);g.lookahead>=3;){let b=g.strstart,M=g.lookahead-2;do g.ins_h=Uh(g,g.ins_h,g.window[b+3-1]),g.prev[b&g.w_mask]=g.head[g.ins_h],g.head[g.ins_h]=b,b++;while(--M);g.strstart=b,g.lookahead=2,lp(g)}return g.strstart+=g.lookahead,g.block_start=g.strstart,g.insert=g.lookahead,g.lookahead=0,g.match_length=g.prev_length=2,g.match_available=0,a.next_in=y,a.input=w,a.avail_in=m,g.wrap=C,Ya},K_={deflateInit:(a,A)=>_O(a,A,x_,15,8,ix),deflateInit2:_O,deflateReset:Ax,deflateResetKeep:ja,deflateSetHeader:(a,A)=>V_(a)||a.state.wrap!==2?Sl:(a.state.gzhead=A,Ya),deflate:lx,deflateEnd:a=>{if(V_(a))return Sl;let A=a.state.status;return a.state=null,A===Ph?sI(a,Cq):Ya},deflateSetDictionary:Sq,deflateInfo:"pako deflate (from Nodeca project)"};let Rq=(a,A)=>Object.prototype.hasOwnProperty.call(a,A);var mQ={assign:function(a){let A=Array.prototype.slice.call(arguments,1);for(;A.length;){let l=A.shift();if(l){if(typeof l!="object")throw new TypeError(l+"must be non-object");for(let g in l)Rq(l,g)&&(a[g]=l[g])}}return a},flattenChunks:a=>{let A=0;for(let g=0,C=a.length;g=252?6:a>=248?5:a>=240?4:a>=224?3:a>=192?2:1;aI[254]=aI[254]=1;var H_={string2buf:a=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(a);let A,l,g,C,m,y=a.length,w=0;for(C=0;C>>6,A[m++]=128|63&l):l<65536?(A[m++]=224|l>>>12,A[m++]=128|l>>>6&63,A[m++]=128|63&l):(A[m++]=240|l>>>18,A[m++]=128|l>>>12&63,A[m++]=128|l>>>6&63,A[m++]=128|63&l);return A},buf2string:(a,A)=>{let l=A||a.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(a.subarray(0,A));let g,C,m=new Array(2*l);for(C=0,g=0;g4)m[C++]=65533,g+=w-1;else{for(y&=w===2?31:w===3?15:7;w>1&&g1?m[C++]=65533:y<65536?m[C++]=y:(y-=65536,m[C++]=55296|y>>10&1023,m[C++]=56320|1023&y)}}return((y,w)=>{if(w<65534&&y.subarray&&dx)return String.fromCharCode.apply(null,y.length===w?y:y.subarray(0,w));let b="";for(let M=0;M{(A=A||a.length)>a.length&&(A=a.length);let l=A-1;for(;l>=0&&(192&a[l])==128;)l--;return l<0||l===0?A:l+aI[a[l]]>A?l:A}},ux=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};let gx=Object.prototype.toString,{Z_NO_FLUSH:BQ,Z_SYNC_FLUSH:Ex,Z_FULL_FLUSH:yq,Z_FINISH:mO,Z_OK:SQ,Z_STREAM_END:BO,Z_DEFAULT_COMPRESSION:SO,Z_DEFAULT_STRATEGY:RO,Z_DEFLATED:RQ}=P_;function xh(a){this.options=mQ.assign({level:SO,method:RQ,chunkSize:16384,windowBits:15,memLevel:8,strategy:RO},a||{});let A=this.options;A.raw&&A.windowBits>0?A.windowBits=-A.windowBits:A.gzip&&A.windowBits>0&&A.windowBits<16&&(A.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ux,this.strm.avail_out=0;let l=K_.deflateInit2(this.strm,A.level,A.method,A.windowBits,A.memLevel,A.strategy);if(l!==SQ)throw new Error(Oh[l]);if(A.header&&K_.deflateSetHeader(this.strm,A.header),A.dictionary){let g;if(g=typeof A.dictionary=="string"?H_.string2buf(A.dictionary):gx.call(A.dictionary)==="[object ArrayBuffer]"?new Uint8Array(A.dictionary):A.dictionary,l=K_.deflateSetDictionary(this.strm,g),l!==SQ)throw new Error(Oh[l]);this._dict_set=!0}}function Y_(a,A){let l=new xh(A);if(l.push(a,!0),l.err)throw l.msg||Oh[l.err];return l.result}xh.prototype.push=function(a,A){let l=this.strm,g=this.options.chunkSize,C,m;if(this.ended)return!1;for(m=A===~~A?A:A===!0?mO:BQ,typeof a=="string"?l.input=H_.string2buf(a):gx.call(a)==="[object ArrayBuffer]"?l.input=new Uint8Array(a):l.input=a,l.next_in=0,l.avail_in=l.input.length;;)if(l.avail_out===0&&(l.output=new Uint8Array(g),l.next_out=0,l.avail_out=g),(m===Ex||m===yq)&&l.avail_out<=6)this.onData(l.output.subarray(0,l.next_out)),l.avail_out=0;else{if(C=K_.deflate(l,m),C===BO)return l.next_out>0&&this.onData(l.output.subarray(0,l.next_out)),C=K_.deflateEnd(this.strm),this.onEnd(C),this.ended=!0,C===SQ;if(l.avail_out!==0){if(m>0&&l.next_out>0)this.onData(l.output.subarray(0,l.next_out)),l.avail_out=0;else if(l.avail_in===0)break}else this.onData(l.output)}return!0},xh.prototype.onData=function(a){this.chunks.push(a)},xh.prototype.onEnd=function(a){a===SQ&&(this.result=mQ.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg};var j_={deflate:Y_,deflateRaw:function(a,A){return(A=A||{}).raw=!0,Y_(a,A)}};let yQ=16209;var Qq=function(a,A){let l,g,C,m,y,w,b,M,k,V,K,q,ce,oe,le,pe,Se,be,Ue,xe,Le,je,dt,pt,zt=a.state;l=a.next_in,dt=a.input,g=l+(a.avail_in-5),C=a.next_out,pt=a.output,m=C-(A-a.avail_out),y=C+(a.avail_out-257),w=zt.dmax,b=zt.wsize,M=zt.whave,k=zt.wnext,V=zt.window,K=zt.hold,q=zt.bits,ce=zt.lencode,oe=zt.distcode,le=(1<>>24,K>>>=be,q-=be,be=Se>>>16&255,be===0)pt[C++]=65535&Se;else{if(!(16&be)){if(!(64&be)){Se=ce[(65535&Se)+(K&(1<>>=be,q-=be),q<15&&(K+=dt[l++]<>>24,K>>>=be,q-=be,be=Se>>>16&255,!(16&be)){if(!(64&be)){Se=oe[(65535&Se)+(K&(1<w){a.msg="invalid distance too far back",zt.mode=yQ;break e}if(K>>>=be,q-=be,be=C-m,xe>be){if(be=xe-be,be>M&&zt.sane){a.msg="invalid distance too far back",zt.mode=yQ;break e}if(Le=0,je=V,k===0){if(Le+=b-be,be2;)pt[C++]=je[Le++],pt[C++]=je[Le++],pt[C++]=je[Le++],Ue-=3;Ue&&(pt[C++]=je[Le++],Ue>1&&(pt[C++]=je[Le++]))}else{Le=C-xe;do pt[C++]=pt[Le++],pt[C++]=pt[Le++],pt[C++]=pt[Le++],Ue-=3;while(Ue>2);Ue&&(pt[C++]=pt[Le++],Ue>1&&(pt[C++]=pt[Le++]))}break}}break}}while(l>3,l-=Ue,q-=Ue<<3,K&=(1<{let b=w.bits,M,k,V,K,q,ce,oe=0,le=0,pe=0,Se=0,be=0,Ue=0,xe=0,Le=0,je=0,dt=0,pt=null,zt=new Uint16Array(16),gr=new Uint16Array(16),li,ii,br,Zi=null;for(oe=0;oe<=AI;oe++)zt[oe]=0;for(le=0;le=1&&zt[Se]===0;Se--);if(be>Se&&(be=Se),Se===0)return C[m++]=20971520,C[m++]=20971520,w.bits=1,0;for(pe=1;pe0&&(a===0||Se!==1))return-1;for(gr[1]=0,oe=1;oe852||a===2&&je>592)return 1;for(;;){li=oe-xe,y[le]+1=ce?(ii=Zi[y[le]-ce],br=pt[y[le]-ce]):(ii=96,br=0),M=1<>xe)+k]=li<<24|ii<<16|br|0;while(k!==0);for(M=1<>=1;if(M!==0?(dt&=M-1,dt+=M):dt=0,le++,--zt[oe]==0){if(oe===Se)break;oe=A[l+y[le]]}if(oe>be&&(dt&K)!==V){for(xe===0&&(xe=be),q+=pe,Ue=oe-xe,Le=1<852||a===2&&je>592)return 1;V=dt&K,C[V]=be<<24|Ue<<16|q-m|0}}return dt!==0&&(C[q+dt]=oe-xe<<24|64<<16|0),w.bits=be,0};let{Z_FINISH:yO,Z_BLOCK:wq,Z_TREES:wQ,Z_OK:qg,Z_STREAM_END:QO,Z_NEED_DICT:vq,Z_STREAM_ERROR:cd,Z_DATA_ERROR:TO,Z_MEM_ERROR:vQ,Z_BUF_ERROR:Dq,Z_DEFLATED:Zd}=P_,Wg=16180,cI=16190,Xg=16191,DQ=16192,bQ=16194,q_=16199,W_=16200,wO=16206,Ba=16209,NQ=a=>(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24);function vO(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}let zg=a=>{if(!a)return 1;let A=a.state;return!A||A.strm!==a||A.mode16211?1:0},DO=a=>{if(zg(a))return cd;let A=a.state;return a.total_in=a.total_out=A.total=0,a.msg="",A.wrap&&(a.adler=1&A.wrap),A.mode=Wg,A.last=0,A.havedict=0,A.flags=-1,A.dmax=32768,A.head=null,A.hold=0,A.bits=0,A.lencode=A.lendyn=new Int32Array(852),A.distcode=A.distdyn=new Int32Array(592),A.sane=1,A.back=-1,qg},bO=a=>{if(zg(a))return cd;let A=a.state;return A.wsize=0,A.whave=0,A.wnext=0,DO(a)},Ix=(a,A)=>{let l;if(zg(a))return cd;let g=a.state;return A<0?(l=0,A=-A):(l=5+(A>>4),A<48&&(A&=15)),A&&(A<8||A>15)?cd:(g.window!==null&&g.wbits!==A&&(g.window=null),g.wrap=l,g.wbits=A,bO(a))},Cx=(a,A)=>{if(!a)return cd;let l=new vO;a.state=l,l.strm=a,l.window=null,l.mode=Wg;let g=Ix(a,A);return g!==qg&&(a.state=null),g},NO,OO,px=!0,bq=a=>{if(px){NO=new Int32Array(512),OO=new Int32Array(32);let A=0;for(;A<144;)a.lens[A++]=8;for(;A<256;)a.lens[A++]=9;for(;A<280;)a.lens[A++]=7;for(;A<288;)a.lens[A++]=8;for(J_(1,a.lens,0,288,NO,0,a.work,{bits:9}),A=0;A<32;)a.lens[A++]=5;J_(2,a.lens,0,32,OO,0,a.work,{bits:5}),px=!1}a.lencode=NO,a.lenbits=9,a.distcode=OO,a.distbits=5},fx=(a,A,l,g)=>{let C,m=a.state;return m.window===null&&(m.wsize=1<=m.wsize?(m.window.set(A.subarray(l-m.wsize,l),0),m.wnext=0,m.whave=m.wsize):(C=m.wsize-m.wnext,C>g&&(C=g),m.window.set(A.subarray(l-g,l-g+C),m.wnext),(g-=C)?(m.window.set(A.subarray(l-g,l),0),m.wnext=g,m.whave=m.wsize):(m.wnext+=C,m.wnext===m.wsize&&(m.wnext=0),m.whave{let l,g,C,m,y,w,b,M,k,V,K,q,ce,oe,le,pe,Se,be,Ue,xe,Le,je,dt=0,pt=new Uint8Array(4),zt,gr,li=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(zg(a)||!a.output||!a.input&&a.avail_in!==0)return cd;l=a.state,l.mode===Xg&&(l.mode=DQ),y=a.next_out,C=a.output,b=a.avail_out,m=a.next_in,g=a.input,w=a.avail_in,M=l.hold,k=l.bits,V=w,K=b,je=qg;e:for(;;)switch(l.mode){case Wg:if(l.wrap===0){l.mode=DQ;break}for(;k<16;){if(w===0)break e;w--,M+=g[m++]<>>8&255,l.check=pA(l.check,pt,2,0),M=0,k=0,l.mode=16181;break}if(l.head&&(l.head.done=!1),!(1&l.wrap)||(((255&M)<<8)+(M>>8))%31){a.msg="incorrect header check",l.mode=Ba;break}if((15&M)!==Zd){a.msg="unknown compression method",l.mode=Ba;break}if(M>>>=4,k-=4,Le=8+(15&M),l.wbits===0&&(l.wbits=Le),Le>15||Le>l.wbits){a.msg="invalid window size",l.mode=Ba;break}l.dmax=1<>8&1),512&CA(l)&&4&l.wrap&&(pt[0]=255&M,pt[1]=M>>>8&255,l.check=pA(l.check,pt,2,0)),M=0,k=0,l.mode=16182;case 16182:for(;k<32;){if(w===0)break e;w--,M+=g[m++]<>>8&255,pt[2]=M>>>16&255,pt[3]=M>>>24&255,l.check=pA(l.check,pt,4,0)),M=0,k=0,l.mode=16183;case 16183:for(;k<16;){if(w===0)break e;w--,M+=g[m++]<>8),512&CA(l)&&4&l.wrap&&(pt[0]=255&M,pt[1]=M>>>8&255,l.check=pA(l.check,pt,2,0)),M=0,k=0,l.mode=16184;case 16184:if(1024&CA(l)){for(;k<16;){if(w===0)break e;w--,M+=g[m++]<>>8&255,l.check=pA(l.check,pt,2,0)),M=0,k=0}else l.head&&(l.head.extra=null);l.mode=16185;case 16185:if(1024&CA(l)&&(q=l.length,q>w&&(q=w),q&&(l.head&&(Le=l.head.extra_len-l.length,l.head.extra||(l.head.extra=new Uint8Array(l.head.extra_len)),l.head.extra.set(g.subarray(m,m+q),Le)),512&CA(l)&&4&l.wrap&&(l.check=pA(l.check,g,q,m)),w-=q,m+=q,l.length-=q),l.length))break e;l.length=0,l.mode=16186;case 16186:if(2048&CA(l)){if(w===0)break e;q=0;do Le=g[m+q++],l.head&&Le&&l.length<65536&&(l.head.name+=String.fromCharCode(Le));while(Le&&q>9&1,l.head.done=!0),a.adler=l.check=0,l.mode=Xg;break;case 16189:for(;k<32;){if(w===0)break e;w--,M+=g[m++]<>>=7&k,k-=7&k,l.mode=wO;break}for(;k<3;){if(w===0)break e;w--,M+=g[m++]<>>=1,k-=1,3&M){case 0:l.mode=16193;break;case 1:if(bq(l),l.mode=q_,A===wQ){M>>>=2,k-=2;break e}break;case 2:l.mode=16196;break;case 3:a.msg="invalid block type",l.mode=Ba}M>>>=2,k-=2;break;case 16193:for(M>>>=7&k,k-=7&k;k<32;){if(w===0)break e;w--,M+=g[m++]<>>16^65535)){a.msg="invalid stored block lengths",l.mode=Ba;break}if(l.length=65535&M,M=0,k=0,l.mode=bQ,A===wQ)break e;case bQ:l.mode=16195;case 16195:if(q=l.length,q){if(q>w&&(q=w),q>b&&(q=b),q===0)break e;C.set(g.subarray(m,m+q),y),w-=q,m+=q,b-=q,y+=q,l.length-=q;break}l.mode=Xg;break;case 16196:for(;k<14;){if(w===0)break e;w--,M+=g[m++]<>>=5,k-=5,l.ndist=1+(31&M),M>>>=5,k-=5,l.ncode=4+(15&M),M>>>=4,k-=4,l.nlen>286||l.ndist>30){a.msg="too many length or distance symbols",l.mode=Ba;break}l.have=0,l.mode=16197;case 16197:for(;l.have>>=3,k-=3}for(;l.have<19;)l.lens[li[l.have++]]=0;if(l.lencode=l.lendyn,l.lenbits=7,zt={bits:l.lenbits},je=J_(0,l.lens,0,19,l.lencode,0,l.work,zt),l.lenbits=zt.bits,je){a.msg="invalid code lengths set",l.mode=Ba;break}l.have=0,l.mode=16198;case 16198:for(;l.have>>24,pe=dt>>>16&255,Se=65535&dt,!(le<=k);){if(w===0)break e;w--,M+=g[m++]<>>=le,k-=le,l.lens[l.have++]=Se;else{if(Se===16){for(gr=le+2;k>>=le,k-=le,l.have===0){a.msg="invalid bit length repeat",l.mode=Ba;break}Le=l.lens[l.have-1],q=3+(3&M),M>>>=2,k-=2}else if(Se===17){for(gr=le+3;k>>=le,k-=le,Le=0,q=3+(7&M),M>>>=3,k-=3}else{for(gr=le+7;k>>=le,k-=le,Le=0,q=11+(127&M),M>>>=7,k-=7}if(l.have+q>l.nlen+l.ndist){a.msg="invalid bit length repeat",l.mode=Ba;break}for(;q--;)l.lens[l.have++]=Le}}if(l.mode===Ba)break;if(l.lens[256]===0){a.msg="invalid code -- missing end-of-block",l.mode=Ba;break}if(l.lenbits=9,zt={bits:l.lenbits},je=J_(1,l.lens,0,l.nlen,l.lencode,0,l.work,zt),l.lenbits=zt.bits,je){a.msg="invalid literal/lengths set",l.mode=Ba;break}if(l.distbits=6,l.distcode=l.distdyn,zt={bits:l.distbits},je=J_(2,l.lens,l.nlen,l.ndist,l.distcode,0,l.work,zt),l.distbits=zt.bits,je){a.msg="invalid distances set",l.mode=Ba;break}if(l.mode=q_,A===wQ)break e;case q_:l.mode=W_;case W_:if(w>=6&&b>=258){a.next_out=y,a.avail_out=b,a.next_in=m,a.avail_in=w,l.hold=M,l.bits=k,Qq(a,K),y=a.next_out,C=a.output,b=a.avail_out,m=a.next_in,g=a.input,w=a.avail_in,M=l.hold,k=l.bits,l.mode===Xg&&(l.back=-1);break}for(l.back=0;dt=l.lencode[M&(1<>>24,pe=dt>>>16&255,Se=65535&dt,!(le<=k);){if(w===0)break e;w--,M+=g[m++]<>be)],le=dt>>>24,pe=dt>>>16&255,Se=65535&dt,!(be+le<=k);){if(w===0)break e;w--,M+=g[m++]<>>=be,k-=be,l.back+=be}if(M>>>=le,k-=le,l.back+=le,l.length=Se,pe===0){l.mode=16205;break}if(32&pe){l.back=-1,l.mode=Xg;break}if(64&pe){a.msg="invalid literal/length code",l.mode=Ba;break}l.extra=15&pe,l.mode=16201;case 16201:if(l.extra){for(gr=l.extra;k>>=l.extra,k-=l.extra,l.back+=l.extra}l.was=l.length,l.mode=16202;case 16202:for(;dt=l.distcode[M&(1<>>24,pe=dt>>>16&255,Se=65535&dt,!(le<=k);){if(w===0)break e;w--,M+=g[m++]<>be)],le=dt>>>24,pe=dt>>>16&255,Se=65535&dt,!(be+le<=k);){if(w===0)break e;w--,M+=g[m++]<>>=be,k-=be,l.back+=be}if(M>>>=le,k-=le,l.back+=le,64&pe){a.msg="invalid distance code",l.mode=Ba;break}l.offset=Se,l.extra=15&pe,l.mode=16203;case 16203:if(l.extra){for(gr=l.extra;k>>=l.extra,k-=l.extra,l.back+=l.extra}if(l.offset>l.dmax){a.msg="invalid distance too far back",l.mode=Ba;break}l.mode=16204;case 16204:if(b===0)break e;if(q=K-b,l.offset>q){if(q=l.offset-q,q>l.whave&&l.sane){a.msg="invalid distance too far back",l.mode=Ba;break}q>l.wnext?(q-=l.wnext,ce=l.wsize-q):ce=l.wnext-q,q>l.length&&(q=l.length),oe=l.window}else oe=C,ce=y-l.offset,q=l.length;q>b&&(q=b),b-=q,l.length-=q;do C[y++]=oe[ce++];while(--q);l.length===0&&(l.mode=W_);break;case 16205:if(b===0)break e;C[y++]=l.length,b--,l.mode=W_;break;case wO:if(l.wrap){for(;k<32;){if(w===0)break e;w--,M|=g[m++]<Cx(a,15),inflateInit2:Cx,inflate:Nq,inflateEnd:a=>{if(zg(a))return cd;let A=a.state;return A.window&&(A.window=null),a.state=null,qg},inflateGetHeader:(a,A)=>{if(zg(a))return cd;let l=a.state;return 2&l.wrap?(l.head=A,A.done=!1,qg):cd},inflateSetDictionary:(a,A)=>{let l=A.length,g,C,m;return zg(a)?cd:(g=a.state,g.wrap!==0&&g.mode!==cI?cd:g.mode===cI&&(C=1,C=oI(C,A,l,0),C!==g.check)?TO:(m=fx(a,A,l,l),m?(g.mode=16210,vQ):(g.havedict=1,qg)))},inflateInfo:"pako inflate (from Nodeca project)"},_x=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};let mx=Object.prototype.toString,{Z_NO_FLUSH:Oq,Z_FINISH:Lq,Z_OK:Zg,Z_STREAM_END:LO,Z_NEED_DICT:MO,Z_STREAM_ERROR:Mq,Z_DATA_ERROR:Bx,Z_MEM_ERROR:kq}=P_;function OQ(a){this.options=mQ.assign({chunkSize:65536,windowBits:15,to:""},a||{});let A=this.options;A.raw&&A.windowBits>=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,A.windowBits===0&&(A.windowBits=-15)),!(A.windowBits>=0&&A.windowBits<16)||a&&a.windowBits||(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&!(15&A.windowBits)&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ux,this.strm.avail_out=0;let l=$g.inflateInit2(this.strm,A.windowBits);if(l!==Zg)throw new Error(Oh[l]);if(this.header=new _x,$g.inflateGetHeader(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=H_.string2buf(A.dictionary):mx.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(l=$g.inflateSetDictionary(this.strm,A.dictionary),l!==Zg)))throw new Error(Oh[l])}function Sx(a,A){let l=new OQ(A);if(l.push(a),l.err)throw l.msg||Oh[l.err];return l.result}OQ.prototype.push=function(a,A){let l=this.strm,g=this.options.chunkSize,C=this.options.dictionary,m,y,w;if(this.ended)return!1;for(y=A===~~A?A:A===!0?Lq:Oq,mx.call(a)==="[object ArrayBuffer]"?l.input=new Uint8Array(a):l.input=a,l.next_in=0,l.avail_in=l.input.length;;){for(l.avail_out===0&&(l.output=new Uint8Array(g),l.next_out=0,l.avail_out=g),m=$g.inflate(l,y),m===MO&&C&&(m=$g.inflateSetDictionary(l,C),m===Zg?m=$g.inflate(l,y):m===Bx&&(m=MO));l.avail_in>0&&m===LO&&l.state.wrap>0&&a[l.next_in]!==0;)$g.inflateReset(l),m=$g.inflate(l,y);switch(m){case Mq:case Bx:case MO:case kq:return this.onEnd(m),this.ended=!0,!1}if(w=l.avail_out,l.next_out&&(l.avail_out===0||m===LO))if(this.options.to==="string"){let b=H_.utf8border(l.output,l.next_out),M=l.next_out-b,k=H_.buf2string(l.output,b);l.next_out=M,l.avail_out=g-M,M&&l.output.set(l.output.subarray(b,b+M),0),this.onData(k)}else this.onData(l.output.length===l.next_out?l.output:l.output.subarray(0,l.next_out));if(m!==Zg||w!==0){if(m===LO)return m=$g.inflateEnd(this.strm),this.onEnd(m),this.ended=!0,!0;if(l.avail_in===0)break}}return!0},OQ.prototype.onData=function(a){this.chunks.push(a)},OQ.prototype.onEnd=function(a){a===Zg&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=mQ.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg};var Pq={inflate:Sx,inflateRaw:function(a,A){return(A=A||{}).raw=!0,Sx(a,A)}};let{deflate:kO,deflateRaw:X_}=j_,{inflate:Uq,inflateRaw:xq}=Pq;var Fq=kO,Gq=X_,Vq=Uq,up=xq,Rx=function(a){return a[a.ONE_BYTE=0]="ONE_BYTE",a[a.TWO_BYTE=1]="TWO_BYTE",a}(Rx||{});class Ep{constructor(){Ae(this,"_sequence",0),Ae(this,"_startTime",Date.now()),Ae(this,"isUseOneByte",!0)}get startTime(){let A=Date.now()-this._startTime;return A128){let w=new Uint8Array(4);w.set([1,0,0,0]);let b={id:0,length:4,data:w.buffer},M={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[b]};l.commonPacketHeader.extension=1,l.extension=M,l.payload=this.compress(A),l.commonPacketHeader.length=8+(l.extension.length+2)+l.payload.byteLength}else l.commonPacketHeader.length=8+l.payload.byteLength;Ie("SHOW_DATASTREAM2_LOG")&&X.debug("send data header: ".concat(JSON.stringify(l.commonPacketHeader)));let g=new ArrayBuffer(l.commonPacketHeader.length),C=new Uint8Array(g),m=new DataView(g),y=0;if(m.setUint16(y,l.commonPacketHeader.extension<<15|l.commonPacketHeader.reserved<<14|l.commonPacketHeader.length,!0),y+=2,m.setUint32(y,l.commonPacketHeader.sequence,!0),y+=4,m.setUint16(y,l.commonStreamHeader,!0),y+=2,l.extension){let w=this.serializeExtension(l.extension);C.set(new Uint8Array(w),y),y+=w.byteLength}if(C.set(new Uint8Array(l.payload),y),y+=l.payload.byteLength,y!==l.commonPacketHeader.length)throw Error("serialize error!");return g}deserialize(A){if(A.byteLength<4)return new ArrayBuffer(0);let l=new DataView(A),g=0,C=l.getUint16(g,!0);g+=2;let m={length:16383&C,reserved:(16384&C)>>14,extension:(32768&C)>>15,sequence:l.getUint16(g+2,!0)<<16|l.getUint16(g,!0)},y,w;if(g+=4,Ie("SHOW_DATASTREAM2_LOG")&&X.debug("receive data header: ".concat(JSON.stringify(m))),l.getUint16(g,!0),g+=2,m.extension){w=this.deserializeExtension(A.slice(g)),g+=2+w.length,y=A.slice(g);let b=!1;if(w.datas.length>0){let M=w.datas.find(k=>k.id===0);M&&(b=(1&new DataView(M.data).getUint32(0,!0))==1)}y=b?this.decompress(y):y}else y=A.slice(8);return y}serializeExtension(A){let{profile:l,length:g,datas:C}=A,m=new ArrayBuffer(g+2),y=new Uint8Array(m),w=new DataView(m),b=0;if(w.setUint8(b++,l),w.setUint8(b++,g),C.forEach(M=>{l?(w.setUint8(b++,M.id),w.setUint8(b++,M.length),y.set(new Uint8Array(M.data),b),b+=M.data.byteLength):(w.setUint8(b++,M.id|M.length<<4),y.set(new Uint8Array(M.data),b),b+=M.data.byteLength)}),b!==g+2)throw Error("serialize extension error, is ".concat(b,"!==").concat(g+2));return m}deserializeExtension(A){let l=new DataView(A),g=0,C=l.getUint8(g);g++;let m=l.getUint8(g);g++;let y=C===Rx.TWO_BYTE,w=[],b=new DataView(A,2),M=0;for(;M>4,M++),V>0&&(K=b.buffer.slice(M+2,M+2+V),M+=K.byteLength),w.push({id:k,length:V,data:K})}if(M!==m)throw Error("parse error");return{profile:C,length:m,datas:w}}decompress(A){return Vq(new Uint8Array(A))}compress(A){return Fq(new Uint8Array(A))}}let yx={name:"DataStream",create:(a,A)=>{let l=A?new pU(a):new fU(a);return l.useDataStream(new Ep),l}};class Kq extends io{constructor(A,l,g){super(),Ae(this,"ws",void 0),Ae(this,"requestId",1),Ae(this,"heartBeatTimer",void 0),Ae(this,"joinInfo",void 0),Ae(this,"clientId",void 0),Ae(this,"onOpen",()=>{this.emit("open"),this.startHeartBeatCheck()}),Ae(this,"onClose",C=>{this.emit("close"),this.dispose()}),Ae(this,"onMessage",C=>{let m=JSON.parse(C.data);if(!m||m.command!=="serverResponse"||!m.requestId)return m&&m.command==="serverStatus"&&m.serverStatus&&m.serverStatus.command?(this.emit("status",m.serverStatus),void this.emit(m.serverStatus.command,m.serverStatus)):void 0;this.emit("req_".concat(m.requestId),m)}),this.joinInfo=A,this.clientId=l,this.ws=new M2("cross-channel-".concat(this.clientId),g),this.ws.on(qr.RECONNECTING,()=>{this.ws.reconnectMode="retry",this.emit("reconnecting")}),this.ws.on(qr.CONNECTED,this.onOpen),this.ws.on(qr.ON_MESSAGE,this.onMessage),this.ws.on(qr.CLOSED,this.onClose)}isConnect(){return this.ws.state==="connected"}sendMessage(A){let l=this.requestId++;return A.requestId=l,A.seq=l,this.ws.sendMessage(A),l}waitStatus(A){return new Ft((l,g)=>{let C=window.setTimeout(()=>{g(new ze(fe.TIMEOUT,"wait status timeout, status: ".concat(A)))},5e3);this.once(A,m=>{window.clearTimeout(C),m.state&&m.state!==0?g(new ze(fe.CROSS_CHANNEL_WAIT_STATUS_ERROR,"wait status error, status: ".concat(A))):l(void 0)}),this.once("dispose",()=>{window.clearTimeout(C),g(new ze(fe.WS_ABORT))})})}async request(A){if(this.ws.state==="closed")throw new ze(fe.WS_DISCONNECT);let l=()=>new Ft((y,w)=>{this.ws.once(qr.CLOSED,()=>w(new ze(fe.WS_ABORT))),this.ws.once(qr.CONNECTED,y)});this.ws.state!=="connected"&&await l();let g=this.sendMessage(A),C=new Ft((y,w)=>{let b=()=>{w(new ze(fe.WS_ABORT))};this.ws.once(qr.RECONNECTING,b),this.ws.once(qr.CLOSED,b),this.once("req_".concat(g),y),Ks(3e3).then(()=>{this.removeAllListeners("req_".concat(g)),this.ws.off(qr.RECONNECTING,b),this.ws.off(qr.CLOSED,b),w(new ze(fe.TIMEOUT,"cross channel ws request timeout"))})}),m=await C;if(!m||m.code!==200)throw new ze(fe.CROSS_CHANNEL_SERVER_ERROR_RESPONSE,"response: ".concat(JSON.stringify(m)));return m}async connect(A){this.ws.removeAllListeners(qr.REQUEST_NEW_URLS),this.ws.on(qr.REQUEST_NEW_URLS,l=>{l(A)}),await this.ws.init(A)}dispose(){this.clearHeartBeatCheck(),this.emit("dispose"),this.removeAllListeners(),this.ws.close()}sendPing(A){let l=this.requestId++;return A.requestId=l,this.ws.sendMessage(A),l}startHeartBeatCheck(){this.heartBeatTimer&&window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=window.setInterval(()=>{this.sendPing({command:"ping",appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sid:this.joinInfo.sid,ts:+new Date,requestId:0})},3e3)}clearHeartBeatCheck(){window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=void 0}}class Fa extends io{set state(A){A!==this._state&&(A!==$A.RELAY_STATE_FAILURE&&(this.errorCode=Fd.RELAY_OK),this.emit("state",A,this.errorCode),this._state=A)}get state(){return this._state}constructor(A,l,g,C,m){super(),Ae(this,"joinInfo",void 0),Ae(this,"sid",void 0),Ae(this,"clientId",void 0),Ae(this,"cancelToken",vA.CancelToken.source()),Ae(this,"workerToken",void 0),Ae(this,"requestId",0),Ae(this,"signal",void 0),Ae(this,"prevChannelMediaConfig",void 0),Ae(this,"httpRetryConfig",void 0),Ae(this,"_resolution",void 0),Ae(this,"_state",$A.RELAY_STATE_IDLE),Ae(this,"errorCode",Fd.RELAY_OK),Ae(this,"onStatus",y=>{X.debug("[".concat(this.clientId,"] ChannelMediaStatus: ").concat(JSON.stringify(y))),y&&y.command&&(y.command==="onAudioPacketReceived"&&this.emit("event",ls.PACKET_RECEIVED_AUDIO_FROM_SRC),y.command==="onVideoPacketReceived"&&this.emit("event",ls.PACKET_RECEIVED_VIDEO_FROM_SRC),y.command==="onSrcTokenPrivilegeDidExpire"&&(this.errorCode=Fd.SRC_TOKEN_EXPIRED,this.state=$A.RELAY_STATE_FAILURE),y.command==="onDestTokenPrivilegeDidExpire"&&(this.errorCode=Fd.DEST_TOKEN_EXPIRED,this.state=$A.RELAY_STATE_FAILURE))}),Ae(this,"onReconnect",async()=>{X.debug("[".concat(this.clientId,"] ChannelMediaSocket disconnect, reconnecting")),this.emit("event",ls.NETWORK_DISCONNECTED),this.state=$A.RELAY_STATE_IDLE,this.prevChannelMediaConfig&&this.sendStartRelayMessage(this.prevChannelMediaConfig).catch(y=>{this.state!==$A.RELAY_STATE_IDLE&&(X.error("auto restart channel media relay failed",y.toString()),this.errorCode=Fd.SERVER_CONNECTION_LOST,this.state=$A.RELAY_STATE_FAILURE)})}),this.joinInfo=A,this.clientId=l,this.sid=Ln(),this.signal=new Kq(this.joinInfo,this.clientId,g),this.httpRetryConfig=C,this._resolution=m}async startChannelMediaRelay(A){if(this.state!==$A.RELAY_STATE_IDLE)throw new ze(fe.INVALID_OPERATION);this.state=$A.RELAY_STATE_CONNECTING,await this.connect(),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: connect success"));try{await this.sendStartRelayMessage(A)}catch(l){throw l.data&&l.data.serverResponse&&l.data.serverResponse.command==="SetSourceChannel"?new ze(fe.CROSS_CHANNEL_FAILED_JOIN_SRC):l.data&&l.data.serverResponse&&l.serverResponse.command==="SetDestChannelStatus"?new ze(fe.CROSS_CHANNEL_FAILED_JOIN_DEST):l.data&&l.data.serverResponse&&l.serverResponse.command==="StartPacketTransfer"?new ze(fe.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST):l}this.prevChannelMediaConfig=A}async updateChannelMediaRelay(A){if(this.state!==$A.RELAY_STATE_RUNNING)throw new ze(fe.INVALID_OPERATION);await this.sendUpdateMessage(A),this.prevChannelMediaConfig=A}async setVideoProfile(A){if(this._resolution=A,this.state!==$A.RELAY_STATE_RUNNING)throw new ze(fe.INVALID_OPERATION);let l=this.genMessage(NA.SetVideoProfile);await this.signal.request(l),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: setVideoProfile success"))}async stopChannelMediaRelay(){await this.sendStopRelayMessage(),X.debug("[".concat(this.clientId,"] stopChannelMediaRelay: send stop message success")),this.state=$A.RELAY_STATE_IDLE,this.dispose()}dispose(){X.debug("[".concat(this.clientId,"] disposeChannelMediaRelay")),this.cancelToken.cancel(),this.cancelToken=vA.CancelToken.source(),this.state=$A.RELAY_STATE_IDLE,this.emit("dispose"),this.signal.dispose(),this.prevChannelMediaConfig=void 0}async connect(){let A=await l_(this.joinInfo,this.cancelToken.token,this.httpRetryConfig);this.workerToken=A.workerToken,await this.signal.connect(A.addressList),this.emit("event",ls.NETWORK_CONNECTED),this.signal.on("status",this.onStatus),this.signal.on("reconnecting",this.onReconnect)}async sendStartRelayMessage(A){let l=this.genMessage(NA.SetSdkProfile,A);await this.signal.request(l),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSdkProfile success"));let g=this.genMessage(NA.SetSourceChannel,A);await this.signal.request(g),await this.signal.waitStatus("SetSourceChannelStatus"),this.emit("event",ls.PACKET_JOINED_SRC_CHANNEL),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceChannel success"));let C=this.genMessage(NA.SetSourceUserId,A);await this.signal.request(C),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceUserId success"));let m=this.genMessage(NA.SetDestChannel,A);await this.signal.request(m),await this.signal.waitStatus("SetDestChannelStatus"),this.emit("event",ls.PACKET_JOINED_DEST_CHANNEL),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetDestChannel success"));let y=this.genMessage(NA.StartPacketTransfer,A);await this.signal.request(y),this.emit("event",ls.PACKET_SENT_TO_DEST_CHANNEL),this.state=$A.RELAY_STATE_RUNNING,X.debug("[".concat(this.clientId,"] startChannelMediaRelay: StartPacketTransfer success")),this.setVideoProfile(this._resolution)}async sendUpdateMessage(A){let l=this.genMessage(NA.UpdateDestChannel,A);await this.signal.request(l),this.emit("event",ls.PACKET_UPDATE_DEST_CHANNEL),X.debug("[".concat(this.clientId,"] sendUpdateMessage: UpdateDestChannel success"))}async sendStopRelayMessage(){let A=this.genMessage(NA.StopPacketTransfer);await this.signal.request(A),X.debug("[".concat(this.clientId,"] sendStopRelayMessage: StopPacketTransfer success"))}genMessage(A,l){let g=[],C=[],m=[];this.requestId+=1;let y={appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sdkVersion:Cn,sid:this.sid,ts:Date.now(),requestId:this.requestId,seq:this.requestId,allocate:!0,clientRequest:{}};y.sdkVersion==="4.24.2"&&(y.sdkVersion="0.0.1");let w=null,b=null;switch(A){case NA.SetSdkProfile:return y.clientRequest={command:"SetSdkProfile",type:"multi_channel"},y;case NA.SetSourceChannel:if(b=l&&l.getSrcChannelMediaInfo(),!b)throw new ze(fe.UNEXPECTED_ERROR,"can not find source config");return y.clientRequest={command:"SetSourceChannel",uid:"0",channelName:b.channelName,token:b.token||this.joinInfo.appId},y;case NA.SetSourceUserId:if(b=l&&l.getSrcChannelMediaInfo(),!b)throw new ze(fe.UNEXPECTED_ERROR,"can not find source config");return y.clientRequest={command:"SetSourceUserId",uid:b.uid+""},y;case NA.SetDestChannel:if(w=l&&l.getDestChannelMediaInfo(),!w)throw new ze(fe.UNEXPECTED_ERROR,"can not find dest config");return w.forEach(M=>{g.push(M.channelName),C.push(M.uid+""),m.push(M.token||this.joinInfo.appId)}),y.clientRequest={command:"SetDestChannel",channelName:g,uid:C,token:m},y;case NA.StartPacketTransfer:return y.clientRequest={command:"StartPacketTransfer"},y;case NA.Reconnect:return y.clientRequest={command:"Reconnect"},y;case NA.StopPacketTransfer:return y.clientRequest={command:"StopPacketTransfer"},y;case NA.UpdateDestChannel:if(w=l&&l.getDestChannelMediaInfo(),!w)throw new ze(fe.UNEXPECTED_ERROR,"can not find dest config");return w.forEach(M=>{g.push(M.channelName),C.push(M.uid+""),m.push(M.token||this.joinInfo.appId)}),y.clientRequest={command:"UpdateDestChannel",channelName:g,uid:C,token:m},y;case NA.SetVideoProfile:y.clientRequest={command:"SetVideoProfile",width:this._resolution.width,height:this._resolution.height}}return y}}let PO={name:"ChannelMediaRelay",create:function(a){return new Fa(a.joinInfo,a.clientId,a.websocketRetryConfig||os,a.httpRetryConfig||os,a.resolution)}};function Qx(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function hp(a){for(var A=1;A{this.reconnectMode="retry",this.startPingPong()}),Ae(this,"handleWebSocketMessage",m=>{if(!m.data)return;let y=JSON.parse(m.data);y.requestId?this.emit("@".concat(y.requestId,"-").concat(y.sid),y):(tr.workerEvent(this.spec.sid,{actionType:"status",serverCode:y.code,workerType:this.serviceMode===Nu.TRANSCODE?1:2}),this.emit(Mg.PUBLISH_STREAM_STATUS,y))}),this.spec=l,this.token=A,this.serviceMode=C,this.websocket=new M2("live-streaming",g),this.websocket.on(qr.CONNECTED,this.handleWebSocketOpen),this.websocket.on(qr.ON_MESSAGE,this.handleWebSocketMessage),this.websocket.on(qr.REQUEST_NEW_URLS,(m,y)=>{rs(this,Mg.REQUEST_NEW_ADDRESS).then(m).catch(y)}),this.websocket.on(qr.RECONNECTING,()=>{this.websocket.reconnectMode=this.reconnectMode})}init(A){return this.websocket.init(A)}async request(A,l,g,C){this.reqId+=1,A==="request"&&(this.commandReqId+=1);let m=this.commandReqId,y=this.reqId;if(!y||!this.websocket)throw new ze(fe.UNEXPECTED_ERROR);let w=hp({command:A,sdkVersion:Cn==="4.24.2"?"0.0.1":Cn,seq:y,requestId:y,allocate:g,cname:this.spec.cname,appId:this.spec.appId,sid:this.spec.sid,uid:this.spec.uid.toString(),ts:Math.floor(Date.now()/1e3)},l);if(this.websocket.state==="closed")throw new ze(fe.WS_DISCONNECT);let b=()=>new Ft((K,q)=>{this.websocket.once(qr.CLOSED,()=>q(new ze(fe.WS_ABORT))),this.websocket.once(qr.CONNECTED,K)});this.websocket.state!=="connected"&&await b(),w.clientRequest&&(w.clientRequest.workerToken=this.token);let M=new Ft((K,q)=>{let ce=()=>{q(new ze(fe.WS_ABORT))};this.websocket.once(qr.RECONNECTING,ce),this.websocket.once(qr.CLOSED,ce),this.once("@".concat(y,"-").concat(this.spec.sid),oe=>{K(oe)})});C&&tr.workerEvent(this.spec.sid,hp(hp({},C),{},{requestId:m,actionType:"request",payload:JSON.stringify(l.clientRequest),serverCode:0,code:0}));let k=Date.now();this.websocket.sendMessage(w);let V=null;try{V=await M}catch(K){if(this.websocket.state==="closed")throw K;return await b(),await this.request(A,l,g)}return C&&tr.workerEvent(this.spec.sid,hp(hp({},C),{},{requestId:m,actionType:"response",payload:JSON.stringify(V.serverResponse),serverCode:V.code,success:V.code===200,responseTime:Date.now()-k})),V.code!==200&&this.handleResponseError(V),V}tryNextAddress(){this.reconnectMode="tryNext",this.websocket.reconnect("tryNext")}close(){let A=Cn==="4.24.2"?"0.0.1":Cn;this.reqId+=1,this.websocket.state==="connected"?(this.websocket.sendMessage({command:"request",appId:this.spec.appId,cname:this.spec.cname,uid:this.spec.uid.toString(),sdkVersion:A,sid:this.spec.sid,seq:this.reqId,ts:Math.floor(Date.now()/1e3),requestId:this.reqId,clientRequest:{command:"DestroyWorker"}}),this.websocket.close(!1,!0)):this.websocket.close(!1),this.pingpongTimer&&(window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0)}handleResponseError(A){switch(A.code){case Qs.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM:return void X.warning("live stream response already exists stream");case Qs.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR:case Qs.LIVE_STREAM_RESPONSE_BAD_STREAM:case Qs.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR:return new ze(fe.LIVE_STREAMING_INVALID_ARGUMENT,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST:if(A.serverResponse.command==="UnpublishStream")return;throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case Qs.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED:return new ze(fe.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{let l=new ze(fe.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE);return this.emit(Mg.WARNING,l,A.serverResponse.url)}case Qs.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN:{let l=new ze(fe.LIVE_STREAMING_WARN_FREQUENT_REQUEST);return this.emit(Mg.WARNING,l,A.serverResponse.url)}case Qs.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH:throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case Qs.LIVE_STREAM_RESPONSE_NOT_SUPPORTED:return new ze(fe.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM:{let l=new ze(fe.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT);return this.emit(Mg.WARNING,l,A.serverResponse.url)}case Qs.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR:return new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT:throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream resource limit",{retry:!0,changeAddress:!0});case Qs.LIVE_STREAM_RESPONSE_WORKER_LOST:case Qs.LIVE_STREAM_RESPONSE_WORKER_QUIT:if(A.serverResponse.command==="UnpublishStream")return;throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case Qs.ERROR_FAIL_SEND_MESSAGE:if(A.serverResponse.command==="UnpublishStream")return;if(A.serverResponse.command==="UpdateTranscoding"||A.serverResponse.command==="ControlStream")return new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{code:A.code}).throw();throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case Qs.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:return new ze(fe.LIVE_STREAMING_CDN_ERROR,"",{code:A.code}).throw()}}startPingPong(){this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(()=>{this.websocket.state==="connected"&&this.request("ping",{}).catch(Ia)},6e3)}}function UO(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function n1(a){for(var A=1;A1&&arguments[1]!==void 0?arguments[1]:os,g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:os;super(),Ae(this,"onLiveStreamWarning",void 0),Ae(this,"onLiveStreamError",void 0),Ae(this,"spec",void 0),Ae(this,"retryTimeout",1e4),Ae(this,"connection",void 0),Ae(this,"httpRetryConfig",void 0),Ae(this,"wsRetryConfig",void 0),Ae(this,"streamingTasks",new Map),Ae(this,"isStartingStreamingTask",!1),Ae(this,"taskMutex",new Is("live-streaming")),Ae(this,"cancelToken",vA.CancelToken.source()),Ae(this,"transcodingConfig",void 0),Ae(this,"uapResponse",void 0),Ae(this,"lastTaskId",1),Ae(this,"statusError",new Map),this.spec=A,this.httpRetryConfig=g,this.wsRetryConfig=l}async setTranscodingConfig(A){let l=n1(n1({},$U),A);l.videoCodecProfile!==66&&l.videoCodecProfile!==77&&l.videoCodecProfile!==100&&(X.debug("[".concat(this.spec.clientId,"] set transcoding config, fix video codec profile: ").concat(l.videoCodecProfile," -> 100")),l.videoCodecProfile=100),l.transcodingUsers||(l.transcodingUsers=l.userConfigs),l.transcodingUsers&&(l.transcodingUsers=l.transcodingUsers.map(y=>n1(n1(n1({},zU),y),{},{zOrder:y.zOrder?y.zOrder+1:1}))),function(y){mo(y.width)||Rn(y.width,"config.width",0,1e4),mo(y.height)||Rn(y.height,"config.height",0,1e4),mo(y.videoBitrate)||Rn(y.videoBitrate,"config.videoBitrate",1,1e6),mo(y.videoFrameRate)||Rn(y.videoFrameRate,"config.videoFrameRate"),mo(y.lowLatency)||Yl(y.lowLatency,"config.lowLatency"),mo(y.audioSampleRate)||zo(y.audioSampleRate,"config.audioSampleRate",[32e3,44100,48e3]),mo(y.audioBitrate)||Rn(y.audioBitrate,"config.audioBitrate",1,128),mo(y.audioChannels)||zo(y.audioChannels,"config.audioChannels",[1,2,3,4,5]),mo(y.videoGop)||Rn(y.videoGop,"config.videoGop"),mo(y.videoCodecProfile)||zo(y.videoCodecProfile,"config.videoCodecProfile",[66,77,100]),mo(y.userCount)||Rn(y.userCount,"config.userCount",0,17),mo(y.backgroundColor)||Rn(y.backgroundColor,"config.backgroundColor",0,16777215),mo(y.userConfigExtraInfo)||Tr(y.userConfigExtraInfo,"config.userConfigExtraInfo",0,4096,!1),y.transcodingUsers&&!mo(y.transcodingUsers)&&(Qc(y.transcodingUsers,"config.transcodingUsers"),y.transcodingUsers.forEach((w,b)=>{r_(w.uid),mo(w.x)||Rn(w.x,"transcodingUser[".concat(b,"].x"),0,1e4),mo(w.y)||Rn(w.y,"transcodingUser[".concat(b,"].y"),0,1e4),mo(w.width)||Rn(w.width,"transcodingUser[".concat(b,"].width"),0,1e4),mo(w.height)||Rn(w.height,"transcodingUser[".concat(b,"].height"),0,1e4),mo(w.zOrder)||Rn(w.zOrder-1,"transcodingUser[".concat(b,"].zOrder"),0,100),mo(w.alpha)||Rn(w.alpha,"transcodingUser[".concat(b,"].alpha"),0,1,!1)})),mo(y.watermark)||vy(y.watermark,"watermark"),mo(y.backgroundImage)||vy(y.backgroundImage,"backgroundImage"),y.images&&!mo(y.images)&&(Qc(y.images,"config.images"),y.images.forEach((w,b)=>{vy(w,"images[".concat(b,"]"))}))}(l);let g=[];l.images&&g.push(...l.images.map(y=>n1(n1(n1({},ic),y),{},{zOrder:255}))),l.backgroundImage&&(g.push(n1(n1(n1({},ic),l.backgroundImage),{},{zOrder:0})),delete l.backgroundImage),l.watermark&&(g.push(n1(n1(n1({},ic),l.watermark),{},{zOrder:255})),delete l.watermark),l.images=g,l.transcodingUsers&&(l.userConfigs=l.transcodingUsers.map(y=>n1({},y)),l.userCount=l.transcodingUsers.length,delete l.transcodingUsers);let C=(l.userConfigs||[]).map(y=>typeof y.uid=="number"?Ft.resolve(y.uid):g7(y.uid,this.spec,this.cancelToken.token,this.httpRetryConfig));if((await Ft.all(C)).forEach((y,w)=>{l.userConfigs&&l.userConfigs[w]&&(l.userConfigs[w].uid=y)}),this.transcodingConfig=l,this.connection)try{var m;let y=await this.connection.request("request",{clientRequest:{command:"UpdateTranscoding",transcodingConfig:this.transcodingConfig}},!1,{command:"UpdateTranscoding",workerType:1,requestByUser:!0,tid:Array.from(U1(m=this.streamingTasks).call(m)).map(w=>w.taskId).join("#")});X.debug("[".concat(this.spec.clientId,"] update live transcoding config success, code: ").concat(y.code,", config:"),JSON.stringify(this.transcodingConfig))}catch(y){if(!y.data||!y.data.retry)throw y;y.data.changeAddress&&this.connection.tryNextAddress(),this.streamingTasks.forEach(w=>{X.warning("[".concat(this.spec.clientId,"] live streaming receive error"),y.toString(),"try to republish",w.url),this.startLiveStreamingTask(w.url,w.mode,y).then(()=>{X.debug("[".concat(this.spec.clientId,"] live streaming republish ").concat(w.url," success"))}).catch(b=>{X.error("[".concat(this.spec.clientId,"] live streaming republish failed"),w.url,b.toString()),this.onLiveStreamError&&this.onLiveStreamError(w.url,b)})})}}async startLiveStreamingTask(A,l,g){if(!this.transcodingConfig&&l===Nu.TRANSCODE)throw new ze(fe.INVALID_OPERATION,"[LiveStreaming] no transcoding config found, can not start transcoding streaming task");let C={command:"PublishStream",ts:Date.now(),url:A,uid:this.spec.uid.toString(),autoDestroyTime:100,acceptImageTimeout:!0};X.debug("[".concat(this.spec.clientId,"] start live streaming ").concat(A,", mode: ").concat(l));let m=await this.taskMutex.lock();if(!this.connection&&g)return void m();if(this.streamingTasks.get(A)&&!g)return m(),new ze(fe.LIVE_STREAMING_TASK_CONFLICT).throw();try{this.connection||(this.connection=await this.connect(l))}catch(w){throw m(),w}switch(l){case Nu.TRANSCODE:C.transcodingConfig=n1({},this.transcodingConfig)}this.uapResponse&&this.uapResponse.vid&&(C.vid=this.uapResponse.vid),this.isStartingStreamingTask=!0;let y=this.lastTaskId++;try{let w=new Ft((M,k)=>{Ks(this.retryTimeout).then(()=>{if(g)return k(g);let V=this.statusError.get(A);return V?(this.statusError.delete(A),k(V)):void 0})}),b=await Ft.race([this.connection.request("request",{clientRequest:C},!0,{url:A,command:"PublishStream",workerType:l===Nu.TRANSCODE?1:2,requestByUser:!g,tid:y.toString()}),w]);this.isStartingStreamingTask=!1,X.debug("[".concat(this.spec.clientId,"] live streaming started, code: ").concat(b.code)),this.streamingTasks.set(A,{clientRequest:C,mode:l,url:A,taskId:y}),m()}catch(w){if(m(),this.isStartingStreamingTask=!1,!w.data||!w.data.retry||g)throw w;return w.data.changeAddress?(this.connection.tryNextAddress(),await this.startLiveStreamingTask(A,l,w)):await this.startLiveStreamingTask(A,l,w)}}stopLiveStreamingTask(A){return new Ft((l,g)=>{let C=this.streamingTasks.get(A);if(!C||!this.connection)return new ze(fe.UNEXPECTED_ERROR,"can not find streaming task to stop").throw();let m=C.mode;C.abortTask=()=>{X.debug("[".concat(this.spec.clientId,"] stop live streaming success(worker exception)")),this.streamingTasks.delete(A),l()},this.connection.request("request",{clientRequest:{command:"UnpublishStream",url:C.url}},!1,{url:A,command:"UnPublishStream",workerType:m===Nu.TRANSCODE?1:2,requestByUser:!0,tid:(this.lastTaskId++).toString()}).then(y=>{X.debug("[".concat(this.spec.clientId,"] stop live streaming success, code: ").concat(y.code)),this.streamingTasks.delete(A),this.streamingTasks.size===0&&(this.connection&&this.connection.close(),this.connection=void 0),l()}).catch(g)})}resetAllTask(){var A;let l=Array.from(U1(A=this.streamingTasks).call(A));this.terminate();for(let g of l)this.startLiveStreamingTask(g.url,g.mode).catch(C=>{this.onLiveStreamError&&this.onLiveStreamError(g.url,C)})}terminate(){this.cancelToken&&this.cancelToken.cancel(),this.streamingTasks=new Map,this.isStartingStreamingTask=!1,this.statusError=new Map,this.cancelToken=vA.CancelToken.source(),this.uapResponse=void 0,this.connection&&this.connection.close(),this.connection=void 0}async connect(A){if(this.connection)throw new ze(fe.UNEXPECTED_ERROR,"live streaming connection has already connected");let l=await rs(this,Dy.REQUEST_WORKER_MANAGER_LIST,A);return this.uapResponse=l,this.connection=new Hq(l.workerToken,this.spec,this.wsRetryConfig,A),this.connection.on(Mg.WARNING,(g,C)=>this.onLiveStreamWarning&&this.onLiveStreamWarning(C,g)),this.connection.on(Mg.PUBLISH_STREAM_STATUS,g=>this.handlePublishStreamServer(g)),this.connection.on(Mg.REQUEST_NEW_ADDRESS,(g,C)=>{if(!this.connection)return C(new ze(fe.UNEXPECTED_ERROR,"can not get new live streaming address list"));rs(this,Dy.REQUEST_WORKER_MANAGER_LIST,A).then(m=>{this.uapResponse=m,g(m.addressList)}).catch(C)}),await this.connection.init(l.addressList),this.connection}handlePublishStreamServer(A){let l=A.serverStatus&&A.serverStatus.url||"empty_url",g=this.streamingTasks.get(l),C=A.reason;switch(A.code){case Qs.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:{let y=new ze(fe.LIVE_STREAMING_CDN_ERROR,"",{code:A.code});if(g)return X.error(y.toString()),this.onLiveStreamError&&this.onLiveStreamError(l,y);if(!this.isStartingStreamingTask)return;this.statusError.set(l,y)}case Qs.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{let y=new ze(fe.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE,C);return this.onLiveStreamWarning&&this.onLiveStreamWarning(l,y)}case Qs.LIVE_STREAM_RESPONSE_WORKER_LOST:case Qs.LIVE_STREAM_RESPONSE_WORKER_QUIT:{var m;if(!this.connection)return;this.connection.tryNextAddress();let y=Array.from(U1(m=this.streamingTasks).call(m));for(let w of y)w.abortTask?w.abortTask():(X.warning("[".concat(this.spec.clientId,"] publish stream status code"),A.code,"try to republish",w.url),this.startLiveStreamingTask(w.url,w.mode,new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:A.code})).then(()=>{X.debug("[".concat(this.spec.clientId,"] republish live stream success"),w.url)}).catch(b=>{X.error(b.toString()),this.onLiveStreamError&&this.onLiveStreamError(w.url,b)}));return}}}hasUrl(A){return this.streamingTasks.has(A)}}let Yq={name:"LiveStreaming",create:function(a){return new xO(a.joinInfo,a.websocketRetryConfig||os,a.httpRetryConfig||os)}};function jq(a){let A=Dx();return function(l,g){let C=l.appId;C!==void 0&&(Un(g,10),$u(g,C));let m=l.cid;m!==void 0&&(Un(g,16),Un(g,m));let y=l.cname;y!==void 0&&(Un(g,26),$u(g,y));let w=l.deviceId;w!==void 0&&(Un(g,34),$u(g,w));let b=l.elapse;b!==void 0&&(Un(g,40),Gh(g,b));let M=l.fileSize;M!==void 0&&(Un(g,48),Gh(g,yl(M)));let k=l.height;k!==void 0&&(Un(g,56),Gh(g,yl(k)));let V=l.jpg;V!==void 0&&(Un(g,66),Un(g,V.length),function(Hn,ut){let kt=Fh(Hn,ut.length);Hn.bytes.set(ut,kt)}(g,V));let K=l.networkType;K!==void 0&&(Un(g,72),Gh(g,yl(K)));let q=l.osType;q!==void 0&&(Un(g,80),Gh(g,yl(q)));let ce=l.requestId;ce!==void 0&&(Un(g,90),$u(g,ce));let oe=l.sdkVersion;oe!==void 0&&(Un(g,98),$u(g,oe));let le=l.sequence;le!==void 0&&(Un(g,104),Gh(g,yl(le)));let pe=l.sid;pe!==void 0&&(Un(g,114),$u(g,pe));let Se=l.timestamp;Se!==void 0&&(Un(g,120),Gh(g,Se));let be=l.uid;be!==void 0&&(Un(g,128),Un(g,be));let Ue=l.vid;Ue!==void 0&&(Un(g,136),Un(g,Ue));let xe=l.width;xe!==void 0&&(Un(g,144),Gh(g,yl(xe)));let Le=l.service;Le!==void 0&&(Un(g,152),Un(g,Le));let je=l.callbackData;je!==void 0&&(Un(g,162),$u(g,je));let dt=l.jpgEncryption;dt!==void 0&&(Un(g,168),Un(g,dt));let pt=l.requestType;pt!==void 0&&(Un(g,176),Un(g,pt));let zt=l.scorePorn;zt!==void 0&&(Un(g,185),jO(g,zt));let gr=l.scoreSexy;gr!==void 0&&(Un(g,193),jO(g,gr));let li=l.scoreNeutral;li!==void 0&&(Un(g,201),jO(g,li));let ii=l.scene;ii!==void 0&&(Un(g,208),Un(g,ii));let br=l.ossFilePrefix;br!==void 0&&(Un(g,218),$u(g,br));let Zi=l.serviceVendor;if(Zi!==void 0)for(let Hn of Zi){Un(g,226);let ut=Dx();qq(Hn,ut),Un(g,ut.limit),Nx(g,ut),Xq(ut)}}(a,A),function(l){let g=l.bytes,C=l.limit;return g.length===C?g:g.subarray(0,C)}(A)}function Jq(a){return function(l){let g={};e:for(;!VO(l);){let C=eu(l);switch(C>>>3){case 0:break e;case 1:g.code=eu(l);break;case 2:g.msg=bx(l,eu(l));break;case 3:{let m=Wq(l);g.data=FO(l),l.limit=m;break}default:Tx(l,7&C)}}return g}({bytes:A=a,offset:0,limit:A.length});var A}function FO(a){let A={};e:for(;!VO(a);){let l=eu(a);switch(l>>>3){case 0:break e;case 1:A.requestId=bx(a,eu(a));break;case 2:A.requestType=eu(a)>>>0;break;case 3:A.scorePorn=YO(a);break;case 4:A.scoreSexy=YO(a);break;case 5:A.scoreNeutral=YO(a);break;case 6:A.requestScene=eu(a)>>>0;break;case 7:A.scene=eu(a)>>>0;break;default:Tx(a,7&l)}}return A}function qq(a,A){let l=a.service;l!==void 0&&(Un(A,8),Un(A,l));let g=a.vendor;g!==void 0&&(Un(A,16),Un(A,g));let C=a.token;C!==void 0&&(Un(A,26),$u(A,C));let m=a.callbackUrl;m!==void 0&&(Un(A,34),$u(A,m))}function Wq(a){let A=eu(a),l=a.limit;return a.limit=a.offset+A,l}function Tx(a,A){switch(A){case 0:for(;128&HO(a););break;case 2:LQ(a,eu(a));break;case 5:LQ(a,4);break;case 1:LQ(a,8);break;default:throw new Error("Unimplemented type: "+A)}}let wx=new Float32Array(1);new Uint8Array(wx.buffer);let GO=new Float64Array(1),y1=new Uint8Array(GO.buffer);function yl(a){return{low:a|=0,high:a>>31,unsigned:a>=0}}let vx=[];function Dx(){let a=vx.pop();return a?(a.offset=a.limit=0,a):{bytes:new Uint8Array(64),offset:0,limit:0}}function Xq(a){vx.push(a)}function LQ(a,A){if(a.offset+A>a.limit)throw new Error("Skip past limit");a.offset+=A}function VO(a){return a.offset>=a.limit}function Fh(a,A){let l=a.bytes,g=a.offset,C=a.limit,m=g+A;if(m>l.length){let y=new Uint8Array(2*m);y.set(l),a.bytes=y}return a.offset=m,m>C&&(a.limit=m),g}function KO(a,A){let l=a.offset;if(l+A>a.limit)throw new Error("Read past limit");return a.offset+=A,l}function bx(a,A){let l=KO(a,A),g=String.fromCharCode,C=a.bytes,m="�",y="";for(let w=0;w=A?y+=m:(b=C[w+l+1],(192&b)!=128?y+=m:(V=(31&K)<<6|63&b,V<128?y+=m:(y+=g(V),w++))):(240&K)==224?w+2>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],(49344&(b|M<<8))!=32896?y+=m:(V=(15&K)<<12|(63&b)<<6|63&M,V<2048||V>=55296&&V<=57343?y+=m:(y+=g(V),w+=2))):(248&K)==240?w+3>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],k=C[w+l+3],(12632256&(b|M<<8|k<<16))!=8421504?y+=m:(V=(7&K)<<18|(63&b)<<12|(63&M)<<6|63&k,V<65536||V>1114111?y+=m:(V-=65536,y+=g(55296+(V>>10),56320+(1023&V)),w+=3))):y+=m:y+=g(K)}return y}function $u(a,A){let l=A.length,g=0;for(let y=0;y=55296&&w<=56319&&y+1=55296&&w<=56319&&y+1>6&31|192:(w<65536?m[C++]=w>>12&15|224:(m[C++]=w>>18&7|240,m[C++]=w>>12&63|128),m[C++]=w>>6&63|128),m[C++]=63&w|128)}}function Nx(a,A){let l=Fh(a,A.limit),g=a.bytes,C=A.bytes;for(let m=0,y=A.limit;m>>=0;A>=128;)MQ(a,127&A|128),A>>>=7;MQ(a,A)}function Gh(a,A){let l=A.low>>>0,g=(A.low>>>28|A.high<<4)>>>0,C=A.high>>>24,m=C===0?g===0?l<16384?l<128?1:2:l<1<<21?3:4:g<16384?g<128?5:6:g<1<<21?7:8:C<128?9:10,y=Fh(a,m),w=a.bytes;switch(m){case 10:w[y+9]=C>>>7&1;case 9:w[y+8]=m!==9?128|C:127&C;case 8:w[y+7]=m!==8?g>>>21|128:g>>>21&127;case 7:w[y+6]=m!==7?g>>>14|128:g>>>14&127;case 6:w[y+5]=m!==6?g>>>7|128:g>>>7&127;case 5:w[y+4]=m!==5?128|g:127&g;case 4:w[y+3]=m!==4?l>>>21|128:l>>>21&127;case 3:w[y+2]=m!==3?l>>>14|128:l>>>14&127;case 2:w[y+1]=m!==2?l>>>7|128:l>>>7&127;case 1:w[y]=m!==1?128|l:127&l}}function Ox(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}let zq=new Map([["moderation",1],["supervise",2]]);class $q extends io{get connectionState(){return this._connectionState}set connectionState(A){if(this._connectionState===A)return;let l=this._connectionState;this._connectionState=A,this.emit(sa.CONNECTION_STATE_CHANGE,l,A)}get inspectType(){return this._inspectType}set inspectType(A){var l;this._inspectMode=$c(l=A.map(g=>zq.get(g)||0)).call(l,(g,C)=>g+C),this._inspectType=A}get quality(){return this._quality}set quality(A){this._quality=A>1?1:A<.1?.1:A,this.qualityTimer&&(window.clearTimeout(this.qualityTimer),this.qualityTimer=null),this._quality>=1||(this.qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this.qualityRatio},6e4))}constructor(A){super(),Ae(this,"name","AgoraRTCVideoContentInspect"),Ae(this,"_connectionState",Cl.CONNECTING),Ae(this,"_innerConnectionState",void 0),Ae(this,"sequence",0),Ae(this,"inspectStartTime",void 0),Ae(this,"workerManagerConnection",void 0),Ae(this,"workerConnection",void 0),Ae(this,"workerMessageLengthLimit",void 0),Ae(this,"inspectIntervalMinimum",void 0),Ae(this,"qualityRatio",void 0),Ae(this,"_connectInfo",void 0),Ae(this,"_cancelTokenSource",vA.CancelToken.source()),Ae(this,"_retryConfig",void 0),Ae(this,"wmSequence",0),Ae(this,"inspectInterval",void 0),Ae(this,"inspectTimer",null),Ae(this,"ossFilePrefix",void 0),Ae(this,"extraInfo",void 0),Ae(this,"_inspectType",void 0),Ae(this,"_inspectMode",void 0),Ae(this,"_quality",1),Ae(this,"qualityTimer",null),Ae(this,"_inspectId",void 0),Ae(this,"_needWorkUrlOnly",!1),Ae(this,"inspectImage",()=>{if(this.connectionState!==Cl.CONNECTED)throw new ze(fe.OPERATION_ABORTED,"content inspect service connection status is ".concat(this.connectionState));this.inspectTimer&&(window.clearInterval(this.inspectTimer),this.inspectTimer=null),this.inspectTimer=window.setInterval(()=>{this.connectionState===Cl.CONNECTED?this.requestToInspectImage():X.debug("[".concat(this._inspectId,"] Inspect State is not connected , "),this.connectionState)},this.inspectInterval{this._innerConnectionState=l,X.debug("[".concat(this._inspectId,"] Inspect operation :").concat(Zl[l]," ").concat(g||""))}),this.handleWorkerManagerEvents(),this.workerConnection=new M2("worker-"+this._inspectId,os),this.handleWorkerEvents()}async init(A,l){this.emit(sa.STATE_CHANGE,Zl.CONNECT_AP),this._connectInfo=A;let g=this._cancelTokenSource.token;return this._retryConfig=l,new Ft((C,m)=>{this.on(sa.CONNECTION_STATE_CHANGE,(y,w)=>{w===Cl.CONNECTED&&C()}),this.requestAP(A,g,l).then(y=>{this.connectWorkerManager(y)}).catch(y=>{m(y)})})}async requestAP(A,l,g){let C=Ie("WEBCS_DOMAIN").map(w=>"https://".concat(w,"/api/v1")),m=await function(w,b,M,k){let{appId:V,areaCode:K,cname:q,sid:ce,token:oe,uid:le}=b;x2++;let pe="image_moderation_api",Se={service_name:pe,json_body:JSON.stringify({appId:V,areaCode:K,cname:q,command:"allocateEdge",requestId:x2,seq:x2,sid:ce,token:oe,ts:Date.now(),uid:le+""})},be,Ue,xe=w[0];return jl(async()=>{be=Date.now();let Le=await iA(xe,{data:Se,cancelToken:M,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(Ue=Date.now()-be,Le.code!==0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"image inspect ap error, code"+Le.code,{retry:!0,responseTime:Ue});throw X.error(gr.toString()),gr}let je=JSON.parse(Le.json_body);if(je.code!==200){let gr=new ze(fe.UNEXPECTED_RESPONSE,"image inspect ap error, code: ".concat(je.code,", reason: ").concat(je.reason),{code:je.code,responseTime:Ue});throw X.error(gr.toString()),gr}if(!je.servers||!Array.isArray(je.servers)||je.servers.length===0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"image inspect ap empty server",{code:je.code,responseTime:Ue});throw X.error(gr.toString()),gr}let dt=Ie("VIDEO_INSPECT_WORKER_MANAGER_WSS");if(dt)return{addressList:[dt],workerToken:je.workerToken,vid:je.vid,responseTime:Ue};let pt=Ie("VIDEO_INSPECT_WORKER_MANAGER_HOST"),zt=Ie("VIDEO_INSPECT_WORKER_MANAGER_PORT");return{addressList:je.servers.map(gr=>{let{address:li,wss:ii}=gr;if(li&&ii)return"wss://".concat(li.replace(/\./g,"-"),".").concat(pt,":").concat(zt||ii)}).filter(gr=>!!gr),workerToken:je.workerToken,vid:je.vid,responseTime:Ue}},(Le,je)=>(tr.apworkerEvent(ce,{success:!0,sc:200,serviceName:pe,responseDetail:JSON.stringify(Le.addressList),firstSuccess:je===0,responseTime:Ue,serverIp:w[je%w.length]}),!1),(Le,je)=>(tr.apworkerEvent(ce,{success:!1,sc:Le.data&&Le.data.code||200,serviceName:pe,responseTime:Ue,serverIp:w[je%w.length]}),!!(Le.code!==fe.OPERATION_ABORTED&&Le.code!==fe.UNEXPECTED_RESPONSE||Le.data&&Le.data.retry)&&(xe=w[(je+1)%w.length],!0)),k)}(C,A,l,g);this.emit(sa.STATE_CHANGE,Zl.AP_CONNECTED);let{addressList:y}=m;return this.wmSequence++,y}async connectWorkerManager(A){let l=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._needWorkUrlOnly=l,this.emit(sa.STATE_CHANGE,Zl.CONNECT_WORKER_MANAGER),await this.workerManagerConnection.init(A,1e4)}async connectWorker(A){await this.workerConnection.init([A])}handleWorkerManagerEvents(){this.workerManagerConnection.on(qr.CONNECTED,async()=>{this.emit(sa.STATE_CHANGE,Zl.WORKER_MANAGER_CONNECTED,this.workerManagerConnection.url),this.workerManagerConnection.sendMessage({appId:this._connectInfo.appId,cname:this._connectInfo.cname,uid:this._connectInfo.uid+"",sdkVersion:"4.24.2",sid:this._connectInfo.sid,seq:this.wmSequence,ts:Number(Date.now()),requestId:Math.floor(1e12*Math.random()),allocate:!0,clientRequest:{command:"join"}},!0)}),this.workerManagerConnection.on(qr.CLOSED,()=>{this._innerConnectionState{this._innerConnectionState{this._innerConnectionState{this.emit(sa.STATE_CHANGE,Zl.GET_WORKER_MANAGER_RESPONSE);let l=this.workerManagerConnection.url;this.workerManagerConnection.close();let g=JSON.parse(A.data);if(g.code!==200)throw X.error("[".concat(this._inspectId,"] Unexpected code ").concat(g.code," from worker manager")),new ze(fe.UNEXPECTED_RESPONSE,"response code of worker is unexpected",g);if(!(g.serverResponse&&g.serverResponse.portWss&&l))throw X.error("[".concat(this._inspectId,"] Unexpected content from worker manager : ").concat(JSON.stringify(g))),new ze(fe.UNEXPECTED_RESPONSE,"response content of worker is unexpected",g);{let C=Ie("VIDEO_INSPECT_WORKER_PORT")||g.serverResponse.portWss,m=l.replace(/:\d+\/?$/,":".concat(C));this.emit(sa.STATE_CHANGE,Zl.CONNECT_WORKER,m),this._needWorkUrlOnly?this.emit(sa.REQUEST_NEW_WORKER_URL,m):await this.connectWorker(m)}}),this.workerManagerConnection.on(qr.WILL_RECONNECT,(A,l,g)=>{g(A)}),this.workerManagerConnection.on(qr.REQUEST_NEW_URLS,(A,l)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(A).catch(l)})}handleWorkerEvents(){this.workerConnection.on(qr.CONNECTED,async()=>{this.emit(sa.STATE_CHANGE,Zl.WORKER_CONNECTED,this.workerConnection.url),this.connectionState=Cl.CONNECTED}),this.workerConnection.on(qr.ON_MESSAGE,async A=>{if(A.data instanceof ArrayBuffer){let g=Jq(new Uint8Array(A.data));if(Ie("SHOW_VIDEO_INSPECT_WORKER_MESSAGE")&&X.debug("[".concat(this._inspectId,"] Response message for worker of inspect content "),JSON.stringify(g)),g.code===200){if(Array.isArray(this.inspectType)&&this.inspectType.length===1&&this.inspectType[0]==="supervise")return void this.emit(sa.INSPECT_RESULT,void 0,void 0);if(g.data&&g.data.scorePorn&&g.data.scoreSexy&&g.data.scoreNeutral){var l;let C={porn:g.data.scorePorn,sexy:g.data.scoreSexy,neutral:g.data.scoreNeutral},m=$c(l=Object.keys(C)).call(l,(w,b)=>C[w]>C[b]?w:b,"porn"),y=Object.keys(C).find(w=>w===m);this.emit(sa.INSPECT_RESULT,y)}else this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.UNEXPECTED_RESPONSE,g.code+"","There is an unexpected data on message"))}else this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.UNEXPECTED_RESPONSE,g.code+"",g.msg))}else X.error("[".concat(this._inspectId,"] Unexpected message type from worker")),this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.UNEXPECTED_RESPONSE,"invalid worker message type"))}),this.workerConnection.on(qr.CLOSED,()=>{this.connectionState=Cl.CLOSED}),this.workerConnection.on(qr.FAILED,()=>{this.connectionState=Cl.CLOSED}),this.workerConnection.on(qr.RECONNECTING,()=>{this.connectionState=this.connectionState===Cl.CONNECTED?Cl.RECONNECTING:Cl.CONNECTING}),this.workerConnection.on(qr.WILL_RECONNECT,(A,l,g)=>{A==="recover"&&g(A),g("tryNext")}),this.workerConnection.on(qr.REQUEST_NEW_URLS,(A,l)=>{this.workerManagerConnection.close(),this.once(sa.REQUEST_NEW_WORKER_URL,g=>{A([g])}),this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(g=>{this.connectWorkerManager(g,!0)}).catch(g=>{l(g)})})}async requestToInspectImage(){this.sequence++;let A=JA(this,sa.CLIENT_LOCAL_VIDEO_TRACK),l={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(A){if(!A.isPlaying)return void this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.INVALID_OPERATION,"Only the track being played can be inspected"));let g=await this.generateRequestData(A,l);this.workerConnection.sendMessage(g,!0,!0)}else this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.INVALID_OPERATION,"Only the track being published can be inspected"))}async generateRequestData(A,l){let{appId:g,cname:C,cid:m,vid:y,sid:w,uid:b}=l,M=Date.now(),k=await A.getCurrentFrameImage("image/jpeg",this.quality),V=await XR(k,g,C),K=this.sequence+"-"+m+"-"+b+"-"+M+"-"+yn(12,""),q={appId:g,cid:m,cname:C,deviceId:"",elapse:(ce=Number(M-this.inspectStartTime),{low:ce|=0,high:ce>>31,unsigned:ce>=0}),fileSize:V.byteLength,jpgEncryption:2,height:k.height,width:k.width,jpg:V,networkType:6,osType:7,requestId:K,sdkVersion:"4.24.2",sequence:this.sequence,sid:w,timestamp:y_(M),uid:b,vid:y,service:this._inspectMode,callbackData:this.extraInfo,ossFilePrefix:this.ossFilePrefix};var ce;this.extraInfo===void 0&&delete q.callbackData,this.ossFilePrefix===void 0&&delete q.ossFilePrefix;let oe=jq(q);if(oe.byteLength{var m;if(!Rt(m=["supervise","moderation"]).call(m,C))throw new ze(fe.INVALID_PARAMS,"".concat(C," is not a valid inspect type."))}),l.inspectType=g}if(l&&l.extraInfo&&l.extraInfo.length>1024)throw new ze(fe.INVALID_PARAMS,"inspectConfig.extraInfo length cannot exceed 1024 bytes")}(A),new $q(A)}};var z_=I(Tn.Object.getOwnPropertySymbols),eW=wn,tW=mm.indexOf,rW=Hp,kQ=Bt([].indexOf),Lx=!!kQ&&1/kQ([1],1,-0)<0;eW({target:"Array",proto:!0,forced:Lx||!rW("indexOf")},{indexOf:function(a){var A=arguments.length>1?arguments[1]:void 0;return Lx?kQ(this,a,A)||0:tW(this,a,A)}});var iW=Cc("Array","indexOf"),nW=j,JO=iW,$_=Array.prototype,Mx=function(a){var A=a.indexOf;return a===$_||nW($_,a)&&A===$_.indexOf?JO:A},PQ=I(Mx);function kx(a,A){if(a==null)return{};var l,g,C=function(y,w){if(y==null)return{};var b={};for(var M in y)if({}.hasOwnProperty.call(y,M)){if(PQ(w).call(w,M)!==-1)continue;b[M]=y[M]}return b}(a,A);if(z_){var m=z_(a);for(g=0;gle.payloadType.toString(10)),oe.attributes.payloads=q,oe.attributes.extmaps=V.videoExtensions),oe.media.mediaType==="audio"&&(oe.media.fmts=ce.map(le=>le.payloadType.toString(10)),oe.attributes.payloads=ce,oe.attributes.extmaps=V.audioExtensions,No(oe));this.sessionDesc=k,this.currentMidIndex=k.mediaDescriptions.length-1}toString(){return ea(this.sessionDesc)}hasMid(a){return Array.isArray(a)?a.every(A=>this.hasMid(A)):this.sessionDesc.mediaDescriptions.some(A=>A.attributes.mid===a)}send(a,A,l,g,C){l=l.replace(/ /g,"-");let{ssrcs:m,ssrcGroups:y}=U2(A,this.cname,Ie("SYNC_GROUP")?l:void 0),w=this.findPreloadMediaDesc(m);if(w){if(uo()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,w.attributes.mid),C&&(C.twcc||C.remb)){let b=this.sessionDesc.mediaDescriptions.indexOf(w);return this.sessionDesc.mediaDescriptions[b]=this.mungSendMediaDesc(w,C),{mid:w.attributes.mid,needExchangeSDP:!0}}return{mid:w.attributes.mid,needExchangeSDP:!1}}{let b=this.findAvailableMediaIndex(a,m,g),M;return b===-1?(M=this.createOrRecycleSendMedia(a,m,y,"sendonly",g,C),this.updateBundleMids()):(M=no(this.sessionDesc.mediaDescriptions[b]),M.attributes.direction="sendonly",M.attributes.ssrcs=m,M.attributes.ssrcGroups=y,this.sessionDesc.mediaDescriptions[b]=this.mungSendMediaDesc(M,C)),uo()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,M.attributes.mid),{needExchangeSDP:!0,mid:M.attributes.mid}}}stopSending(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>l.attributes.mid&&a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");A.forEach(l=>{l.attributes.ssrcs=[]}),this.updateBundleMids()}receive(a,A,l){let g=[];return a.forEach(C=>{let m=C._mediaStreamTrack.kind,y=this.findAvailableRecvMediaIndex(m),w,b=!1;y===-1?(b=!0,w=this.createOrRecycleRecvMedia(C,[],"recvonly",A,l),this.updateBundleMids()):(w=no(this.sessionDesc.mediaDescriptions[y]),w.attributes.direction="recvonly"),g.push({mid:w.attributes.mid,needCreateTransceiver:b})}),g}stopReceiving(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");A.forEach(l=>{l.media.port="0",l.attributes.direction="inactive"}),this.updateBundleMids()}addRemoteCandidate(a){let{foundation:A,protocol:l,address:g,port:C,type:m,relatedAddress:y,relatedPort:w,priority:b}=new RTCIceCandidate(a),M={foundation:A??"",componentId:"1",transport:l??"",priority:b?b+"":"",connectionAddress:g??"",port:C?C+"":"",type:m?m+"":"",relAddr:y??"",relPort:w?w+"":"",extension:{}};this.candidates.some(k=>k.priority===M.priority&&k.connectionAddress===M.connectionAddress&&k.port===M.port)||(this._candidates.push(M),this.sessionDesc.mediaDescriptions.forEach(k=>{k.attributes.candidates=this.candidates}))}clearRemoteCandidate(){this._candidates=[],this.sessionDesc.mediaDescriptions[0].attributes.candidates=this._candidates}createOrRecycleRecvMedia(a,A,l,g,C){let m=a._mediaStreamTrack.kind,y=this.rtpCapabilities.recv,w=_h(m,y,this.localCapabilities.send,m===$t.AUDIO?C:g),b=m===$t.VIDEO?y.videoExtensions:y.audioExtensions,M="".concat(++this.currentMidIndex),k={media:{mediaType:m,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(K=>K.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:b,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:l,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(M)}};k=this.mungRecvMediaDsec(k,a);let V=this.findFirstClosedMedia(m);if(V){let K=this.sessionDesc.mediaDescriptions.indexOf(V);this.sessionDesc.mediaDescriptions[K]=k}else this.sessionDesc.mediaDescriptions.push(k);return k}muteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="inactive"})}unmuteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="recvonly"})}findAvailableMediaIndex(a,A,l){return this.sessionDesc.mediaDescriptions.findIndex(g=>{let C=g.media.mediaType===a&&g.media.port!=="0"&&(g.attributes.direction==="sendonly"||g.attributes.direction==="sendrecv")&&g.attributes.ssrcs.length===0;if(uo()){if(C){let m=this.firefoxSsrcMidMap.get(A[0].ssrcId);return!(m||g.attributes.mid!=="0"&&g.attributes.mid!=="1")||!(!m||m!==g.attributes.mid)}return!1}return C&&g.attributes.mid===l})}findAvailableRecvMediaIndex(a){return this.sessionDesc.mediaDescriptions.findIndex(A=>{let l=A.media.mediaType===a&&A.media.port!=="0"&&(A.attributes.direction==="recvonly"||A.attributes.direction==="sendrecv");return A.attributes.mid!=="0"&&A.attributes.mid!=="1"&&l})}predictReceivingMids(a){let A=[];for(let l=0;l{A.attributes.iceUfrag=a.iceUfrag,A.attributes.icePwd=a.icePwd})}createOrRecycleSendMedia(a,A,l,g,C,m){let y=this.rtpCapabilities.send,w=a===$t.VIDEO?y.videoCodecs:y.audioCodecs,b=a===$t.VIDEO?y.videoExtensions:y.audioExtensions;uo()&&(C="".concat(++this.currentMidIndex));let M={media:{mediaType:a,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(V=>V.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:b,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:l,rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:g,rtcpMux:!0,rtcpRsize:!0,mid:C}};M=this.mungSendMediaDesc(M,m);let k=this.findFirstClosedMedia(a);if(k){let V=this.sessionDesc.mediaDescriptions.indexOf(k);this.sessionDesc.mediaDescriptions[V]=M}else this.sessionDesc.mediaDescriptions.push(M);return M}mungRecvMediaDsec(a,A,l){let g=no(a);return fN(g),kg(g,A),Pu(g,A),xy(g),ds(g,l,this.localCapabilities.send),g}mungSendMediaDesc(a,A){let l=no(a);return ds(l,A,this.localCapabilities.recv),No(l),l}updateRecvMedia(a,A){let l=this.sessionDesc.mediaDescriptions.findIndex(g=>g.attributes.mid===a);if(l!==-1){let g=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[l],A);this.sessionDesc.mediaDescriptions[l]=g}}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(a=>a.media.port!=="0").map(a=>a.attributes.mid)}findPreloadMediaDesc(a){return this.sessionDesc.mediaDescriptions.find(A=>{var l;return((l=A.attributes)===null||l===void 0||(l=l.ssrcs[0])===null||l===void 0?void 0:l.ssrcId)===a[0].ssrcId})}findFirstClosedMedia(a){return this.sessionDesc.mediaDescriptions.find(A=>uo()?A.media.port==="0"&&A.media.mediaType===a:A.media.port==="0")}},UQ=["sdp"];var xn;function WO(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function eE(a){for(var A=1;A2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"sendonly"),K={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},q={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},ce={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(t1(V,k,"videoExtensions",K,q,ce),t1(V,k,"videoCodecs",K,q,ce),t1(V,k,"audioExtensions",K,q,ce),t1(V,k,"audioCodecs",K,q,ce),Ie("RAISE_H264_BASELINE_PRIORITY")){let oe=ce.videoCodecs.findIndex(le=>le.rtpMap&&le.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&le.fmtp&&le.fmtp.parameters["profile-level-id"]==="42001f");if(oe!==-1){let le=ce.videoCodecs.findIndex(pe=>pe.rtpMap&&pe.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(le!(pe.rtpMap&&pe.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&pe.fmtp&&pe.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:K,recv:q,sendrecv:ce}}({},{},g);this.remoteSDP=new qO({remoteIceParameters:C.iceParameters,remoteDtlsParameters:C.dtlsParameters,candidates:[],remoteRTPCapabilities:m,localCapabilities:this.localCapabilities,direction:this.direction,setup:"actpass",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()}),this.isReady=!0;let y=await this.peerConnection.createAnswer();if(!y.sdp)throw new Error("Cannot get answer sdp when trying to establish PeerConnection.");let w=fl(y.sdp);await this.peerConnection.setLocalDescription(y);let b=await e1({},{},y.sdp);this.localCapabilities=En(b);let M=this.peerConnection.getTransceivers()[0];return M!=null&&M.receiver&&M.receiver.transport&&this.tryBindTransportEvents(M.receiver.transport),eE(eE({},w),{},{sdp:y.sdp})}{this.peerConnection.addTransceiver("video",{direction:"sendonly"}),this.peerConnection.addTransceiver("audio",{direction:"sendonly"});let g=await this.peerConnection.createOffer();if(!g.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let C=fl(g.sdp);return this.initialOffer=g,eE(eE({},C),{},{sdp:g.sdp})}}catch(l){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,l.toString())}}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");await this.peerConnection.setLocalDescription(this.initialOffer);let{sdp:l,iceParameters:g,dtlsParameters:C}=A,m=await e1({},{},l);this.remoteSDP=new qO({remoteIceParameters:g,remoteDtlsParameters:C,candidates:[],remoteRTPCapabilities:m,localCapabilities:this.localCapabilities,direction:this.direction,setup:"active",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()});let y=this.peerConnection.getTransceivers()[0];y!=null&&y.sender&&y.sender.transport&&this.tryBindTransportEvents(y.sender.transport)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(l.toString()))}}async addRemoteCandidate(A){try{A&&this.pendingCandidates.push(A),this.peerConnection.remoteDescription&&this.isReady&&(this.pendingCandidates.forEach(l=>{this.peerConnection.addIceCandidate(l)}),this.pendingCandidates=[])}catch(l){throw new nt(fe.ADD_CANDIDATE_FAILED,"P2PConnection.addRemoteCandidate failed; ".concat(l.toString()))}}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From P2PConnection.send"));try{if(!C.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let y=[],w=C.remoteSDP.receive(A,l,g);A.forEach((le,pe)=>{if(w[pe].needCreateTransceiver){let Se=C.peerConnection.addTransceiver(le._mediaStreamTrack,{direction:"sendonly"});y.push(Se),le._updateRtpTransceiver(Se)}else{let Se=C.peerConnection.getTransceivers().find(be=>be.mid===w[pe].mid);if(!Se)throw new Error("cannot find transceiver when sendPeerconnection send, mid is ".concat(w[pe].mid));y.push(Se),le._updateRtpTransceiver(Se)}}),uo()&&Ie("SIMULCAST")===!0&&(yield ri(C.applySimulcastForFirefox(y,A)));let b=w.map(le=>le.mid),M=yield ri(C.peerConnection.createOffer()),k=C.mungSendOfferSDP(M.sdp,A,b),V=ki(k),K=b.map(le=>{let pe=V.mediaDescriptions.find(Se=>Se.attributes.mid===le);if(!pe)throw new Error("Cannot extract ssrc from mediaDescription.");return P2(pe,Ie("USE_PUB_RTX"))}),q=y.map((le,pe)=>{let Se=b[pe];return{localSSRC:K[pe],id:Se}});yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k}));try{yield q}catch(le){let pe=C.remoteSDP.toString();throw yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:pe})),yield ri(C.stopSending(b,!0)),le}yield ri(C.applySimulcastEncodings(y,A)),yield ri(C.applySendEncodings(y,A));let ce=C.remoteSDP.toString(),oe=C.logSDPExchange(k,"offer","local","send");return oe==null||oe(ce),yield ri(C.setRemoteDescription({type:"answer",sdp:ce})),y.map((le,pe)=>{let Se=b[pe];return{localSSRC:K[pe],id:Se}})}catch(y){throw y instanceof nt?y:new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(y.toString()))}finally{m()}})()}async stopSending(A,l){let g=l?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let C=this.peerConnection.getTransceivers().filter(b=>A.indexOf(b.mid)!==-1);if(C.length!==A.length)throw new Error("Transceivers' length (".concat(C.length,") doesn't match mids' length (").concat(A.length,") when trying to call P2PConnection.stopSending."));C.map(b=>{var M;b.direction="inactive",(M=b.stop)===null||M===void 0||M.call(b)});let m=await this.peerConnection.createOffer(),y=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(A);let w=this.remoteSDP.toString();y==null||y(w),await this.setRemoteDescription({type:"answer",sdp:w})}catch(C){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(C.toString()))}finally{g&&g()}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);if(y){let b=this.remoteSDP.toString(),M=this.logSDPExchange(b,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:b});let k=await this.peerConnection.createAnswer(),V=this.mungReceiveAnswerSDP(k.sdp,m,A);M==null||M(V||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:V}),X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," by exchanging SDP."))}else X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," no need to exchange SDP."));let w=this.peerConnection.getTransceivers().find(b=>b.mid===m);if(!w||w.mid===null)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,mid:w.mid,transceiver:w}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async mockReceive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);if(y){let w=this.remoteSDP.toString(),b=this.logSDPExchange(w,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:w});let M=await this.peerConnection.createAnswer(),k=this.mungReceiveAnswerSDP(M.sdp,m,A);b==null||b(k||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:k}),X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," by exchanging SDP."))}else X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," no need to exchange SDP."))}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","stopReceiving");await this.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}async restartICE(A){try{if(this.store.p2pTransport===ih.Auto&&(this.store.p2pTransport=ih.SdRtn,Bi().supportPCSetConfiguration&&this.peerConnection.setConfiguration(gT.resolvePCConfiguration(this.spec,this.store.p2pTransport))),this.restartCnt>3&&(this.restartCnt=0,Bi().supportPCSetConfiguration&&this.peerConnection.setConfiguration(gT.resolvePCConfiguration(this.spec,this.store.p2pTransport,++this.curTurnServerIndex))),!A){this.restartCnt++,this.isReady=!1;let l=await this.peerConnection.createOffer({iceRestart:!0});if(!l.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let{iceParameters:g}=fl(l.sdp);return this.store.descriptionStart(),this.direction===uA.SEND_ONLY&&await this.peerConnection.setLocalDescription(l),g}if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");if(this.remoteSDP.restartICE(A),this.store.descriptionStart(),this.direction===uA.RECEIVE_ONLY){this.restartCnt++,await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()});let l=await this.peerConnection.createAnswer();if(!l.sdp)throw new Error("Cannot get answer sdp when trying to iceRestart.");let{iceParameters:g}=fl(l.sdp);return await this.peerConnection.setLocalDescription(l),g}await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()}),this.isReady=!0}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}close(){var A;this.peerConnection.close(),this.peerConnection.onicecandidate=null,(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.transport=void 0,this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l],[A]);this.remoteSDP.updateRecvMedia(A,l);let m=this.remoteSDP.toString(),y=this.logSDPExchange(C,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),y==null||y(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getTransceivers().filter(C=>C.mid===A);g.length===1&&(this.isVP8Simulcast(l)?uo()||await this.applySimulcastEncodings(g,[l]):await this.applySendEncodings(g,[l]))}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getTransceivers().find(C=>C.mid===l);g&&await g.sender.replaceTrack(A._mediaStreamTrack)}async getSelectedCandidatePair(){let A=this.peerConnection.getReceivers();if(A.length>0&&A[0].transport&&A[0].transport.iceTransport&&A[0].transport.iceTransport.getSelectedCandidatePair&&A[0].transport.iceTransport.getSelectedCandidatePair()){let l=A[0].transport.iceTransport,{local:g,remote:C}=l.getSelectedCandidatePair();return{local:eE(eE({},cl),{},{candidateType:g.type,protocol:g.protocol,address:g.address,port:g.port}),remote:eE(eE({},cl),{},{candidateType:C.type,protocol:C.protocol,address:C.address,port:C.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A,l;Rt(A=["connected","completed"]).call(A,this.peerConnection.iceConnectionState)&&(this.isReady=!1),(l=this.onICEConnectionStateChange)===null||l===void 0||l.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;this.peerConnection.connectionState==="connected"&&(this.restartCnt=0),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.startICECandidate()}startICECandidate(){this.peerConnection.onicecandidate||(this.localCandidateCount=0,this.peerConnection.onicecandidate=A=>{if(A.candidate){var l;A.candidate.candidate&&((l=this.onLocalCandidate)===null||l===void 0||l.call(this,A.candidate.toJSON())),this.localCandidateCount+=1}else X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount)})}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A,l){let g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,C={iceServers:[]};var m;return A.iceServers?C.iceServers=A.iceServers:A.turnServer&&A.turnServer.mode!=="off"&&(eh(A.turnServer.servers)?C.iceServers=A.turnServer.servers:(C.iceServers&&C.iceServers.push(...gT.turnServerConfigToIceServers(A.turnServer.servers,l,g)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&C.iceServers&&A.turnServer.serversFromGateway&&C.iceServers.push(...gT.turnServerConfigToIceServers(A.turnServer.serversFromGateway,l,g)),Rt(m=[ih.Relay,ih.SdRtn]).call(m,l)&&(C.iceTransportPolicy="relay"),Ie("FORCE_TURN_TCP")?C.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(y=>{y.forceturn&&(C.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(C.encodedInsertableStreams=!0),X.debug("P2PConnection p2pTransport is ".concat(l)),C}static turnServerConfigToIceServers(A,l){let g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,C=[],m=A.filter(w=>w.tcpport);X.debug("P2PConnection turnServers is ".concat(m,", current index is ").concat(g));let y=m.length>g?m[g]:m[0];switch(l){case ih.SdRtn:let w=A.filter(M=>{var k;return Rt(k=M.username).call(k,"glb:")&&M.turnServerURL==M.turnServerURL}),b=w.length>g?w[g]:w[0];b&&(C.push({username:b.username,credential:b.password,credentialType:"password",urls:"turn:".concat(ed(b.turnServerURL),":").concat(b.tcpport,"?transport=udp")}),C.push({username:b.username,credential:b.password,credentialType:"password",urls:"turns:".concat(ed(b.turnServerURL),":").concat(b.tcpport,"?transport=tcp")}));break;case ih.Relay:y&&(C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turn:".concat(y.turnServerURL,":").concat(y.tcpport,"?transport=udp")}),C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turns:".concat(ed(y.turnServerURL),":").concat(y.tcpport,"?transport=tcp")}));break;default:y&&(C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turn:".concat(y.turnServerURL,":").concat(y.tcpport,"?transport=udp")}),C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turns:".concat(ed(y.turnServerURL),":").concat(y.tcpport,"?transport=tcp")}),C.push({username:y.username,credential:y.password,credentialType:"password",urls:"stun:".concat(y.turnServerURL,":").concat(y.tcpport)}))}return C}tryBindTransportEvents(A){if(A){this.transport=A,A.onstatechange=()=>{var g;A!=null&&A.state&&((g=this.onDTLSTransportStateChange)===null||g===void 0||g.call(this,A.state))},A.onerror=g=>{var C;(C=this.onDTLSTransportError)===null||C===void 0||C.call(this,"error"in g?g.error:g)};let l=A.iceTransport;l&&(l.onstatechange=()=>{let g=A==null?void 0:A.iceTransport.state;var C;g&&((C=this.onICETransportStateChange)===null||C===void 0||C.call(this,g))},l.getSelectedCandidatePair&&(l.onselectedcandidatepairchange=()=>{if(l.getSelectedCandidatePair()){let{local:g,remote:C}=l.getSelectedCandidatePair()||{};if(g&&C){let m=g.address+":"+g.port,y=C.address+":"+C.port;X.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Pt(m)),", remote ").concat(JSON.stringify(Pt(y))))}}}))}}tryUnbindTransportEvents(){this.transport&&(this.transport.onstatechange=null,this.transport.onerror=null,this.transport.iceTransport&&(this.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(A,l){var g;if(l||(l=this.peerConnection.getSenders().find(k=>k.track===A._mediaStreamTrack)),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(A))return X.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Bi().supportSetRtpSenderParameters)return X.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let C={},m={};switch(A._optimizationMode){case"motion":C.degradationPreference="maintain-framerate";break;case"detail":C.degradationPreference="maintain-resolution";break;default:C.degradationPreference="balanced"}if(A._encoderConfig){var y;let{bitrateMax:k,frameRate:V,scaleResolutionDownBy:K}=A._encoderConfig;k&&(m.maxBitrate=1e3*k),Rt(y=A._hints).call(y,$i.LOW_STREAM)&&(V&&(m.maxFramerate=ZA(V)),K&&K>=1&&(m.scaleResolutionDownBy=K))}if(Ie("DSCP_TYPE")&&Od()){var w;let k=Ie("DSCP_TYPE");Rt(w=["very-low","low","medium","high"]).call(w,k)&&(m.networkPriority=k)}let b=l.getParameters(),M=(g=b.encodings)===null||g===void 0?void 0:g[0];uo()&&!M&&(C.encodings=[m]),M&&Object.assign(M,m),Object.assign(b,C),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(b.encodings))),await l.setParameters(b)}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let w=g[y],b=C.mediaDescriptions.find(M=>M.attributes.mid===w);b&&(kg(b,m),Fy(b,m,this.store.codec))}),ea(C)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onFirstVideoDecodedTimeout=A=>{var l;(l=this.onFirstVideoDecodedTimeout)===null||l===void 0||l.call(this,A)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(A,l){if(A.length===l.length)for(let b=0;b200&&(y=k._scalabilityMode)!==null&&y!==void 0&&y.numSpatialLayers&&((w=k._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let V={},K={high:1e3*(k._encoderConfig.bitrateMax-50),medium:5e4};V.encodings=[{rid:"m",active:!0,maxBitrate:K.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:K.high}];let q=M.sender.getParameters();await M.sender.setParameters(Object.assign(q,V))}}}async applySimulcastEncodings(A,l){if(!uo()&&A.length===l.length)for(let g=0;g200&&(m=A._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((y=A._scalabilityMode)===null||y===void 0?void 0:y.numSpatialLayers)>1)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("[".concat(this.store.clientId,"] exchanging ").concat(g," ").concat(l," SDP during P2PConnection.").concat(C,` +`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(y=>{y.direction="inactive"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.muteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(async y=>{y.direction="sendonly"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.unmuteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(l.toString()))}}async getRemoteSSRC(A,l){var g;if(l=l??((g=this.currentRemoteDescription)===null||g===void 0?void 0:g.sdp)){var C;let m=(C=ki(l).mediaDescriptions.find(y=>y.attributes.mid===A))===null||C===void 0?void 0:C.attributes.ssrcs;return m==null?void 0:m[0].ssrcId}}async setRemoteDescription(A){var l;await this.peerConnection.setRemoteDescription(A),Rt(l=["connected","completed"]).call(l,this.peerConnection.iceConnectionState)||(this.isReady=!0,this.addRemoteCandidate())}mungReceiveAnswerSDP(A,l,g){let C=ki(A),m=C.mediaDescriptions.find(y=>y.attributes.mid===l);return m&&g===$t.AUDIO&&m.media.mediaType==="audio"&&No(m),ea(C)}},Vt(xn.prototype,"establish",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"establish"),xn.prototype),Vt(xn.prototype,"connect",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"connect"),xn.prototype),Vt(xn.prototype,"receive",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"receive"),xn.prototype),Vt(xn.prototype,"mockReceive",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"mockReceive"),xn.prototype),Vt(xn.prototype,"stopReceiving",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"stopReceiving"),xn.prototype),Vt(xn.prototype,"restartICE",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"restartICE"),xn.prototype),Vt(xn.prototype,"close",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"close"),xn.prototype),Vt(xn.prototype,"updateEncoderConfig",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"updateEncoderConfig"),xn.prototype),Vt(xn.prototype,"updateSendParameters",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"updateSendParameters"),xn.prototype),Vt(xn.prototype,"replaceTrack",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"replaceTrack"),xn.prototype),Vt(xn.prototype,"muteLocal",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"muteLocal"),xn.prototype),Vt(xn.prototype,"unmuteLocal",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"unmuteLocal"),xn.prototype),xn);function ld(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From P2PConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleMuteLocalTrack");try{if(!this.sendConnection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established."));let b=this.filterTobeMutedTracks(l);if(b.length===0)return void g();let M=b.find(q=>q[0]==="videoLowTrack");M&&M[1].track._originMediaStreamTrack.stop(),await this.sendConnection.muteLocal(b.map(q=>{let[,{id:ce}]=q;return ce}));let k=!1;var y,w;l.trackMediaType==="video"?k=!((y=this.localTrackMap.get(St.LocalAudioTrack))===null||y===void 0||!y.track._muted):k=((w=this.localTrackMap.get(St.LocalVideoTrack))===null||w===void 0?void 0:w.id)===void 0;let V=this.createMuteMessage(b);await Wn(this,hr.RequestMuteLocal,V);let K=l.trackMediaType==="video"?Vd.MUTE_LOCAL_VIDEO:Vd.MUTE_LOCAL_AUDIO;await Wn(this,hr.RequestP2PMuteLocal,{action:K,message:V,isMuteAll:k}),g()}catch(b){C(b)}finally{m()}}),Ae(this,"handleUnmuteLocalTrack",async(l,g,C)=>{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleUnmuteLocalTrack");try{if(!this.sendConnection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleUnmuteLocalTrack before sendConnection established."));let y=this.filterTobeUnmutedTracks(l);if(y.length===0)return void g();await this.sendConnection.unmuteLocal(y.map(M=>{let[,{id:k}]=M;return k}));let w=this.createUnmuteMessage(y),b=l.trackMediaType==="video"?Vd.UNMUTE_LOCAL_VIDEO:Vd.UNMUTE_LOCAL_AUDIO;await Wn(this,hr.RequestP2PMuteLocal,{action:b,message:w}),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleUpdateVideoEncoder",async(l,g,C,m)=>{let y;typeof m=="boolean"&&m||(y=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoEncoder"));try{let b=this.localTrackMap.get(St.LocalVideoTrack);if(!this.sendConnection||!b||b.track!==l||this.state!==An.Connected)return void g();let{id:M,track:k}=b;M&&(await this.sendConnection.updateSendParameters(M,k),await this.sendConnection.updateEncoderConfig(M,k),this.emit(hr.UpdateVideoEncoder,k)),g()}catch(b){C(b)}finally{var w;(w=y)===null||w===void 0||w()}}),Ae(this,"handleUpdateVideoSendParameters",async(l,g,C)=>{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoSendParameters");try{let y=this.localTrackMap.get(St.LocalVideoTrack);if(!this.sendConnection||!y||y.track!==l||this.state!==An.Connected)return void g();let{id:w,track:b}=y;w&&await this.sendConnection.updateSendParameters(w,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleReplaceTrack",async(l,g,C,m)=>{let y;X.debug("[".concat(this.store.clientId,"] P2PChannel2 handleReplaceTrack for [track-id-").concat(l.getTrackId(),"]")),typeof m=="boolean"&&m||(y=await this.sendMutex.lock("From P2PChannel2.handleReplaceTrack"));try{var w;let M=Array.from(this.localTrackMap.entries()).find(k=>{let[,{track:V}]=k;return l===V});if(!this.sendConnection||!M||M[1].id===void 0||this.state!==An.Connected)return void g();if(await((w=this.sendConnection)===null||w===void 0?void 0:w.replaceTrack(l,M[1].id)),M[0]===St.LocalVideoTrack&&Bi().supportDualStreamEncoding){let k=this.localTrackMap.get(St.LocalVideoLowTrack);if(k){let V=l._mediaStreamTrack.clone();k.track._originMediaStreamTrack.stop(),k.track._mediaStreamTrack=V,k.track._originMediaStreamTrack=V,await new Ft((K,q)=>{this.handleReplaceTrack(k.track,K,q,!0)})}}g()}catch(M){C(M)}finally{var b;(b=y)===null||b===void 0||b()}}),Ae(this,"handleGetLocalVideoStats",l=>{l(this.statsCollector.getLocalVideoTrackStats())}),Ae(this,"handleGetLocalAudioStats",l=>{l(this.statsCollector.getLocalAudioTrackStats())}),Ae(this,"handleGetRemoteVideoStats",l=>this.statsCollector.getRemoteVideoTrackStats(l.uid)[l.uid]),Ae(this,"handleGetRemoteAudioStats",l=>this.statsCollector.getRemoteAudioTrackStats(l.uid)[l.uid]),this.store=a,this.statsCollector=A,this.statsCollector.addP2PChannel(this),this.statsUploader=new p7(a),this.bindStatsUploaderEvents(),this.sendMutex=new Is("P2PChannel2-send-mutex",a.clientId),this.recvMutex=new Is("P2PChannel2-recv-mutex",a.clientId),this.reconnectInterval=window.setInterval(()=>{[this.sendConnection,this.recvConnection].forEach(l=>{l&&(l.iceConnectionState!=="disconnected"&&l.iceConnectionState!=="failed"||this.handleDisconnect(l.direction))})},Ie("ICE_RESTART_INTERVAL"))}async startP2PConnection(a,A){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support startP2PConnection.")}async connect(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support connect.")}async startP2P(a,A){let l;try{if(A){this.recvConnection&&(X.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset recvConnection.")),this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection)),l=await this.recvMutex.lock("From P2PChannel.startP2P"),this.recvConnection=new xQ(a,this.store,uA.RECEIVE_ONLY),this.bindConnectionEvents(this.recvConnection);let g=await this.recvConnection.establish(A);return{iceParameters:g.iceParameters,dtlsParameters:g.dtlsParameters,sdp:g.sdp}}{this.state=An.New,this.sendConnection&&(X.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset sendConnection.")),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection)),l=await this.sendMutex.lock("From P2PChannel.startP2P"),this.sendConnection=new xQ(a,this.store),this.store.peerConnectionStart(),this.bindConnectionEvents(this.sendConnection);let g=await this.sendConnection.establish();return{iceParameters:g.iceParameters,dtlsParameters:g.dtlsParameters,sdp:g.sdp}}}finally{l&&l()}}async p2pConnect(a){if(!this.sendConnection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel2.p2pConnect before P2PChannel2.startP2PConnection .");this.store.peerConnectionStart(),await this.sendConnection.connect(a),this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=An.Connected}async addRemoteCandidate(a,A){if(A===uA.RECEIVE_ONLY){if(!this.sendConnection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.sendConnection.addRemoteCandidate(a)}else{if(!this.recvConnection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.recvConnection.addRemoteCandidate(a)}}publish(a,A,l){var g=this;return wA(function*(){let C=yield ri(g.sendMutex.lock("From P2PChannel.publish"));try{if(!g.sendConnection||g.state!==An.Connected){g.throwIfTrackTypeNotMatch(a);let M=a.filter(k=>g.pendingLocalTracks.indexOf(k)===-1);return void(g.pendingLocalTracks=g.pendingLocalTracks.concat(M))}g.store.pubId=g.store.pubId+1,aa.markPublishStart(g.store.clientId,g.store.pubId);let m=g.filterTobePublishedTracks(a,A,l);if(m.length===0)return void(yield ri(g.tryToUnmuteAudio(a)));m.forEach(M=>{let{track:k,type:V}=M,K=Date.now();g.store.publish(k.getTrackId(),V===St.LocalAudioTrack?"audio":"video",K)}),g.bindLocalTrackEvents(m);let y=yield ri(g.sendConnection.send(m.map(M=>{let{track:k}=M;return k}),g.store.codec,g.store.audioCodec)),w=(yield ri(y.next())).value,b=g.createGatewayPublishMessage(m,w);try{yield b}catch(M){throw y.throw(M),(M==null?void 0:M.code)===fe.WS_ABORT&&m.forEach(k=>{let{track:V}=k;g.pendingLocalTracks.indexOf(V)===-1&&g.pendingLocalTracks.push(V)}),g.unbindLocalTrackEvents(m),M}yield ri(y.next()),m.forEach(M=>{let{type:k}=M;g.statsCollector.addLocalStats(k)}),g.statsUploader.startUploadOutboundStats(),g.assignLocalTracks(m,w),m.forEach(M=>{let{track:k,type:V}=M,K=Date.now();g.store.publish(k.getTrackId(),V===St.LocalAudioTrack?"audio":"video",void 0,K)}),g.startUploadUplinkState()}finally{C()}})()}async unpublish(a){if(!this.sendConnection||this.state!==An.Connected)return void(a.length===0?this.pendingLocalTracks.length=0:this.pendingLocalTracks=this.pendingLocalTracks.filter(C=>!Rt(a).call(a,C)));let A=this.filterTobeUnpublishedTracks(a);if(A.length===0)return;let l=A.find(C=>C[0]==="videoLowTrack");l&&l[1].track.close();let g=this.createGatewayUnpublishMessage(A);if(await this.sendConnection.stopSending(A.map(C=>{let[,{id:m}]=C;return m})),this.withdrawLocalTracks(A),this.unbindLocalTrackEvents(A.map(C=>{let[m,{track:y}]=C;return{type:m,track:y}})),A.forEach(C=>{let[m]=C;this.statsCollector.removeLocalStats(m)}),this.localTrackMap.size===0&&(this.statsUploader.stopUploadOutboundStats(),this.stopUploadUplinkState()),this.sendConnection&&this.state===An.Connected)return l&&l[1].track.close(),g;a.forEach(C=>{let m=this.pendingLocalTracks.indexOf(C);m!==-1&&this.pendingLocalTracks.splice(m,1)})}startUploadUplinkState(){if(this.uploadUnplinkStarted)return;this.uploadUnplinkStarted=!0,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval);let a=()=>{let A=[],l=[];Array.from(this.localTrackMap.entries()).forEach(g=>{let[C,{track:m,ssrcs:y}]=g,w={stream_type:$J(m,C),ssrcs:y};m._muted||!m._enabled?A.push(w):l.push(w)}),A.length>0&&A.forEach(g=>{Wn(this,hr.RequestMuteLocal,[g])}),l.length>0&&l.forEach(g=>{Wn(this,hr.RequestUnmuteLocal,[g])})};a(),this.uplinkStateUploadInterval=window.setInterval(()=>{a()},3e3)}stopUploadUplinkState(){this.uploadUnplinkStarted&&(this.uploadUnplinkStarted=!1,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval))}publishLowStream(a){return wA(function*(){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support publishLowStream.")})()}async republish(){this.pendingLocalTracks.length>0&&(X.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await rs(this,hr.RequestRePublish,this.pendingLocalTracks),this.emit(hr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[])}async unpublishLowStream(){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support unpublishLowStream.")}async subscribe(a,A,l,g){var C;if(!this.recvConnection)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");if((C=this.remoteUserMap.get(a))!==null&&C!==void 0&&C.has(A))return;let{track:m,mid:y,transceiver:w}=await this.recvConnection.receive(A,[{ssrcId:l}],String(a.uid),g);A===$t.AUDIO?(a._audioTrack?a._audioTrack._updateOriginMediaStreamTrack(m):(a._audioTrack=new Og(m,a.uid,a._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(a._audioTrack.getTrackId()))),w&&a._audioTrack._updateRtpTransceiver(w),this.bindRemoteTrackEvents(a,a._audioTrack)):(a._videoSSRC=l,a._videoTrack?a._videoTrack._updateOriginMediaStreamTrack(m):(a._videoTrack=new D2(m,a.uid,a._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(a._videoTrack.getTrackId()))),w&&a._videoTrack._updateRtpTransceiver(w),this.bindRemoteTrackEvents(a,a._videoTrack));let b=this.remoteUserMap.get(a);b?b.set(A,y):this.remoteUserMap.set(a,new Map([[A,y]])),this.statsCollector.addRemoteStats(a.uid),this.statsUploader.startUploadInboundStats(),this.startUploadDownlinkState();let M=this.pendingRemoteTracks.findIndex(k=>{let{user:V,kind:K}=k;return V.uid===a.uid&&A===K});M!==-1&&(this.pendingRemoteTracks.splice(M,1),this.emit(hr.MediaReconnectEnd,a.uid))}async mockSubscribe(a,A,l,g){if(!this.recvConnection)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");await this.recvConnection.mockReceive(A,[{ssrcId:l}],String(a.uid),g)}async unsubscribe(a,A,l){let g=this.pendingRemoteTracks.filter(m=>{let{user:y,kind:w}=m;return A!==void 0?y.uid===a.uid&&A===w:y.uid===a.uid});if(g.forEach(m=>{let y=this.pendingRemoteTracks.indexOf(m);this.pendingRemoteTracks.splice(y,1)}),this.recvConnection||l||g.forEach(m=>{let{kind:y}=m;var w;if(y===$t.AUDIO)(w=a._audioTrack)===null||w===void 0||w._destroy(),a._audioTrack=void 0;else if(y===$t.VIDEO){var b;(b=a._videoTrack)===null||b===void 0||b._destroy(),a._videoTrack=void 0}}),!this.recvConnection)return;let C=this.filterTobeUnSubscribedTracks(a,A);C.length!==0&&(await this.recvConnection.stopReceiving(C.map(m=>{let[,{id:y}]=m;return y})),this.withdrawRemoteTracks(C),this.remoteUserMap.size===0&&(this.statsUploader.stopUploadInboundStats(),this.stopUploadDownlinkState()),C.forEach(m=>{let[y,{kind:w}]=m;var b,M;if(w===$t.VIDEO&&y._videoSSRC&&((b=this.recvConnection)===null||b===void 0||b.setStatsRemoteVideoIsReady(y._videoSSRC,!1)),w===$t.VIDEO)this.unbindRemoteTrackEvents(y._videoTrack),l||((M=y._videoTrack)===null||M===void 0||M._destroy(),y._videoTrack=void 0);else if(w===$t.AUDIO){var k;this.unbindRemoteTrackEvents(y._audioTrack),!l&&((k=y._audioTrack)===null||k===void 0||k._destroy(),y._audioTrack=void 0)}}),C.forEach(m=>{let[,{kind:y}]=m;Wn(this,hr.RequestP2PMuteRemote,y)}))}startUploadDownlinkState(){if(this.uploadDownlinkStarted)return;this.uploadDownlinkStarted=!0,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval);let a=()=>Array.from(this.remoteUserMap.entries()).forEach(A=>{let[,l]=A;[$t.VIDEO,$t.AUDIO].forEach(g=>{l.has(g)?Wn(this,hr.RequestP2PUnmuteRemote,g):Wn(this,hr.RequestP2PMuteRemote,g)})});a(),this.downlinkStatsUploadInterval=window.setInterval(()=>{a()},3e3)}stopUploadDownlinkState(){this.uploadDownlinkStarted&&(this.uploadDownlinkStarted=!1,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval))}getAllDataChannels(){return this.localDataChannels}async massSubscribe(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massSubscribe.")}async massSubscribeNoLock(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massSubscribeNoLock.")}async massUnsubscribe(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massUnsubscribe.")}async massUnsubscribeNoLock(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massUnsubscribeNoLock.")}async muteRemote(a,A){if(!this.recvConnection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(a.uid,"."));if(!l.get(A))return void X.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."));let g=A===$t.VIDEO?a._videoSSRC:a._audioSSRC;g!==void 0&&this.recvConnection.setStatsRemoteVideoIsReady(g,!1)}async unmuteRemote(a,A){return this.unmuteRemoteNoLock(a,A)}async unmuteRemoteNoLock(a,A){if(!this.recvConnection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(a.uid,"."));l.get(A)||X.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."))}getAllTracks(a){let A=this.localTrackMap.get(St.LocalAudioTrack);if((A==null?void 0:A.track)instanceof Os){let l=A.track;return Array.from(this.localTrackMap.entries()).filter(g=>{let[C]=g;return C!==St.LocalAudioTrack}).filter(g=>{let[C]=g;return!(a&&C===St.LocalVideoLowTrack)}).map(g=>{let[,{track:C}]=g;return C}).concat(l.trackList)}return Array.from(this.localTrackMap.entries()).filter(l=>{let[g]=l;return!(a&&g===St.LocalVideoLowTrack)}).map(l=>{let[,{track:g}]=l;return g})}reportPublishEvent(a,A,l,g,C){if(a){let y=this.localTrackMap.get(St.LocalAudioTrack),w=g?this.localTrackMap.get(St.LocalVideoLowTrack):this.localTrackMap.get(St.LocalVideoTrack);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.track.getTrackLabel(),videoName:w==null?void 0:w.track.getTrackLabel(),screenshare:(w==null?void 0:w.track._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}else{var m;l||(l=[]);let y=l.find(b=>b instanceof xt),w=g?(m=this.localTrackMap.get(St.LocalVideoTrack))===null||m===void 0?void 0:m.track:l.find(b=>b instanceof Pi);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.getTrackLabel(),videoName:w==null?void 0:w.getTrackLabel(),screenshare:(w==null?void 0:w._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}}reportSubscribeEvent(a,A,l,g){let C=g===$t.VIDEO?l._videoSSRC:l._audioSSRC;C&&tr.subscribe(this.store.sessionId,{succ:a,ec:A,video:g===$t.VIDEO,audio:g===$t.AUDIO,peerid:l.uid,subscribeRequestid:g===$t.VIDEO?l._videoSSRC:l._audioSSRC,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,C)})}reset(){X.debug("[".concat(this.store.clientId,"] P2PChannel2.reset")),this.sendMutex=new Is("P2PChannel2-send-mutex",this.store.clientId),this.sendMutex=new Is("P2PChannel2-recv-mutex",this.store.clientId),this.sendConnection&&(this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0),this.recvConnection&&(this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();let a=this.localTrackMap.get(St.LocalAudioTrack);if((a==null?void 0:a.track)instanceof Os){if(a.track.trackList.length>0){let A=a.track;a.track.trackList.forEach(l=>{A.removeAudioTrack(l)})}a.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.reconnectInterval&&(window.clearInterval(this.reconnectInterval),this.reconnectInterval=void 0),this.state=An.Disconnected}getStats(a){var A,l;return a?(l=this.recvConnection)===null||l===void 0?void 0:l.getStats():(A=this.sendConnection)===null||A===void 0?void 0:A.getStats()}getRemoteVideoIsReady(a){var A;return((A=this.recvConnection)===null||A===void 0?void 0:A.getRemoteVideoIsReady(a))||!1}getLocalAudioVolume(){let a=this.localTrackMap.get(St.LocalAudioTrack);if(a)return a.track.getVolumeLevel()}getLocalVideoSize(){let a=this.localTrackMap.get(St.LocalVideoTrack);if(a)return{width:a.track.videoWidth||0,height:a.track.videoHeight||0}}getEncoderConfig(a){let A=this.localTrackMap.get(a);return A&&A.track instanceof Pi||A&&A.track instanceof xt?A.track._encoderConfig:void 0}getLocalMedia(a){return this.localTrackMap.get(a)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}async hasRemoteMediaWithLock(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}getRemoteMedia(a){var A;let l=Array.from(Hs(A=this.remoteUserMap).call(A)).find(g=>g.uid===a);return l?{audioTrack:l.audioTrack,audioSSRC:l._audioSSRC,videoTrack:l.videoTrack,videoSSRC:l._videoSSRC}:{}}getAudioLevels(){let a=Array.from(this.remoteUserMap.entries()).map(l=>{let[g]=l;return{uid:g.uid,level:g.audioTrack?100*g.audioTrack._source.getAccurateVolumeLevel():0}}),A=this.localTrackMap.get(St.LocalAudioTrack);return A&&a.push({level:100*A.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),a=LE(a).call(a,(l,g)=>l.level-g.level),a}async disconnectForReconnect(){this.sendConnection&&this.recvConnection&&(X.debug("[".concat(this.store.clientId,"] P2PChannel2.disconnectForReconnect closing P2PConnection")),this.state=An.Reconnecting,Ie("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A]=a;var l;A._videoTrack&&A._videoTrack._player&&((l=A._videoTrack._player.getVideoElement())===null||l===void 0||l.pause(),A._videoTrack._player.isKeepLastFrame=!0,A._videoTrack._originMediaStreamTrack.stop())}),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0,this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0,this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(a=>{var A;let[l,{track:g}]=a;switch(l){case St.LocalVideoTrack:Rt(A=g._hints).call(A,$i.LOW_STREAM)?g.close():this.pendingLocalTracks.push(g);break;case St.LocalAudioTrack:g instanceof Os?this.pendingLocalTracks=this.pendingLocalTracks.concat(g.trackList):this.pendingLocalTracks.push(g);case St.LocalVideoLowTrack:}}),this.emit(hr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;Array.from(Hs(l).call(l)).forEach(g=>{this.setPendingRemoteMedia(A,g)}),this.emit(hr.MediaReconnectStart,A.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),X.debug("[".concat(this.store.clientId,"] P2PChannel2 disconnected, waiting to reconnect.")))}hasPendingRemoteMedia(a,A){for(let l of this.pendingRemoteTracks){let{user:g,kind:C}=l;if((a instanceof xg?a.uid:a)===g.uid&&A===C)return!0}return!1}setPendingRemoteMedia(a,A){this.hasPendingRemoteMedia(a,A)||this.pendingRemoteTracks.push({user:a,kind:A})}async restartICE(a,A){let l,g;if(a===uA.SEND_ONLY){if(!this.sendConnection)throw new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established.");l=await this.sendMutex.lock("From P2PChannel.restartICE"),g=this.sendConnection}else{if(!this.recvConnection)throw new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before recvConnection established.");l=await this.recvMutex.lock("From P2PChannel.restartICE"),g=this.recvConnection}try{if(A){let C=await g.restartICE(A);return g.isInRestartIce=!1,C}{let C=await g.restartICE();if(C){let m=await rs(this,hr.RequestP2PRestartICE,{direction:uA.RECEIVE_ONLY,iceParameter:C});await g.restartICE(m),g.isInRestartIce=!1}}}finally{l()}}getUplinkNetworkQuality(){if(!this.sendConnection)return 0;let a=this.sendConnection.getStats(),A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalAudioTrack),g=a.videoSend.find(q=>{var ce;return q.ssrc===(A==null||(ce=A.ssrcs)===null||ce===void 0?void 0:ce[0].ssrcId)}),C=a.audioSend.find(q=>{var ce;return q.ssrc===(l==null||(ce=l.ssrcs)===null||ce===void 0?void 0:ce[0].ssrcId)});if(!g||!C)return 1;let m=JA(this,hr.NeedSignalRTT),y=g?g.rttMs:void 0,w=C?C.rttMs:void 0,b=y&&w?(y+w)/2:y||w,M=(b&&m?(b+m)/2:b||m)||0,k=100*a.sendPacketLossRate*.7/50+.3*M/1500,V=k<.17?1:k<.36?2:k<.59?3:k<.1?4:5,K=A==null?void 0:A.track;if(K&&K._encoderConfig&&K._hints.indexOf($i.SCREEN_TRACK)===-1){let q=K._encoderConfig.bitrateMax,ce=a.bitrate.actualEncoded;if(q&&ce){let oe=(1e3*q-ce)/(1e3*q);return AN[oe<.15?0:oe<.3?1:oe<.45?2:oe<.6?3:4][V]}}return V}getDownlinkNetworkQuality(){if(!this.recvConnection)return 0;let a=this.recvConnection.getStats(),A=0;return Array.from(this.remoteUserMap.entries()).forEach(l=>{let[g]=l,C=g._audioSSRC,m=g._videoSSRC,y=a.audioRecv.find(ce=>ce.ssrc===C),w=a.videoRecv.find(ce=>ce.ssrc===m);if(!y&&!w)return void(A+=1);let b=JA(this,hr.NeedSignalRTT),M=a.rtt,k=(M&&b?(M+b)/2:M||b)||0,V=y?y.jitterMs:void 0,K=a.recvPacketLossRate,q=.7*K*100/50+.3*k/1500;V&&(q=.6*K*100/50+.2*k/1500+.2*V/400),A+=q<.1?1:q<.17?2:q<.36?3:q<.59?4:5}),this.remoteUserMap.size>0?Math.round(A/this.remoteUserMap.size):A}async muteLocalTrack(a){return new Ft((A,l)=>{this.handleMuteLocalTrack(a,A,l)})}filterTobePublishedTracks(a,A,l){let g=[],C=Bi(),m=this.getAllTracks();a=ns(a=a.filter(b=>m.indexOf(b)===-1));let y=!1,w=!1;for(let b of a){if(b instanceof Pi&&(this.localTrackMap.has(St.LocalVideoTrack)||y?new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(g.push({track:b,type:St.LocalVideoTrack}),y=!0),A)){let M=this.getLowVideoTrack(b,l);g.push({track:M,type:St.LocalVideoLowTrack})}if(b instanceof xt){let M=this.localTrackMap.get(St.LocalAudioTrack);if(M){if(!(M.track instanceof Os))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(b._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");M.track.addAudioTrack(b),this.bindLocalAudioTrackEvents(b,!0)}else if(w){let k=g.find(V=>{let{type:K}=V;return K===St.LocalAudioTrack});if(!(k.track instanceof Os))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(b._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");k.track.addAudioTrack(b)}else{if(!C.webAudioMediaStreamDest||b instanceof Os||b._bypassWebAudio)g.push({track:b,type:St.LocalAudioTrack});else{let k=new Os;k.addAudioTrack(b),g.push({track:k,type:St.LocalAudioTrack})}w=!0}}}return g}filterTobeUnpublishedTracks(a){let A=[],l=this.getAllTracks();a=ns(a=a.filter(g=>l.indexOf(g)!==-1));for(let g of a){if(g instanceof xt){let C=this.localTrackMap.get(St.LocalAudioTrack);if(!C)continue;C.track instanceof Os?(C.track.removeAudioTrack(g),this.unbindLocalAudioTrackEvents(g),C.track.trackList.length===0&&(A.push([St.LocalAudioTrack,C]),C.track.close())):A.push([St.LocalAudioTrack,C])}if(g instanceof Pi){let C=this.localTrackMap.get(St.LocalVideoTrack);if(!C)continue;A.push([St.LocalVideoTrack,C]);let m=this.localTrackMap.get(St.LocalVideoLowTrack);m&&A.push([St.LocalVideoLowTrack,m])}}return A}bindLocalTrackEvents(a){a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.addListener(nr.GET_STATS,this.handleGetLocalVideoStats),l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.addListener(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.bindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(a,A){a instanceof Os?a.trackList.forEach(l=>{l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),a.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),A||a.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack))}unbindLocalTrackEvents(a){a||(a=Array.from(this.localTrackMap.entries()).map(A=>{let[l,{track:g}]=A;return{track:g,type:l}})),a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.off(nr.GET_STATS,this.handleGetLocalVideoStats),l.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.off(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.off(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.unbindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(a){a instanceof Os?a.trackList.forEach(A=>{A.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),A.off(nr.GET_STATS,this.handleGetLocalAudioStats),A.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.off(nr.GET_STATS,this.handleGetLocalAudioStats),a.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),a.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(a,A){A instanceof D2&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteVideoStats(a))}),A instanceof Og&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteAudioStats(a))})}unbindRemoteTrackEvents(a){a&&a.removeAllListeners(nr.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;l.has($t.AUDIO)&&this.unbindRemoteTrackEvents(A._audioTrack),l.has($t.VIDEO)&&this.unbindRemoteTrackEvents(A._videoTrack)})}createGatewayPublishMessage(a,A){return a.map((l,g)=>{var C;let m,{track:y,type:w}=l;switch(w){case St.LocalAudioTrack:m=an.Audio;break;case St.LocalVideoTrack:m=Rt(C=y._hints).call(C,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:m=an.Low}return{kind:w===St.LocalAudioTrack?$t.AUDIO:$t.VIDEO,stream_type:m,mid:A[g].id,ssrcs:A[g].localSSRC,isMuted:y.muted||!y.enabled}})}createGatewayUnpublishMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}assignLocalTracks(a,A){a.forEach((l,g)=>{let{track:C,type:m}=l;this.localTrackMap.set(m,{track:C,id:A[g].id,ssrcs:A[g].localSSRC})})}withdrawLocalTracks(a){a.forEach(A=>{let[l]=A;this.localTrackMap.delete(l)})}bindConnectionEvents(a){a.onConnectionStateChange=async A=>{var l;X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: ").concat(a.name,".onConnectionStateChange(").concat(A,")")),this.emit(hr.PeerConnectionStateChange,A),A!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),A==="connected"&&(a.isInRestartIce=!1),Rt(l=this._restartStates).call(l,A)&&!a.isInRestartIce&&(A==="disconnected"&&await Ks(800),a.iceConnectionState!=="disconnected"&&a.iceConnectionState!=="failed"||this.handleDisconnect(a.direction))},a.onICEConnectionStateChange=A=>{A!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(A,")")),tr.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:A,tag:Gn.TRACER}).onSuccess(),this.emit(hr.IceConnectionStateChange,A)},a.onICETransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(A,")"))},a.onDTLSTransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(A,")"))},a.onDTLSTransportError=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(A,")"))},a.onFirstAudioDecoded=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(m=>m._audioSSRC===A);var C;g&&(this.store.subscribe(g.uid,"audio",void 0,void 0,void 0,Date.now()),(C=g.audioTrack)===null||C===void 0||C.emit(wc.FIRST_FRAME_DECODED),tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_DECODE,Eo.FIRST_AUDIO_DECODE,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId}))},a.onFirstAudioReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._audioSSRC===A);g&&tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_RECEIVED,Eo.FIRST_AUDIO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId})},a.onFirstVideoDecoded=(A,l,g)=>{this.reportVideoFirstFrameDecoded(A,l,g)},a.onFirstVideoReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_VIDEO_RECEIVED,Eo.FIRST_VIDEO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId})},a.onSelectedLocalCandidateChanged=(A,l)=>{let g=A.candidateType==="relay",C=l.candidateType==="relay";l.candidateType!=="unknown"&&g===C||this.emit(hr.ConnectionTypeChange,g),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onSelectedRemoteCandidateChanged=(A,l)=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onFirstVideoDecodedTimeout=A=>{this.reportVideoFirstFrameDecoded(A,void 0,void 0,!0)},a.onLocalCandidate=A=>{this.emit(hr.LocalCandidate,{candidate:A,direction:a.direction})}}unbindConnectionEvents(a){a.onConnectionStateChange=void 0,a.onICEConnectionStateChange=void 0,a.onICETransportStateChange=void 0,a.onDTLSTransportStateChange=void 0,a.onDTLSTransportError=void 0,a.onFirstAudioDecoded=void 0,a.onFirstAudioReceived=void 0,a.onFirstVideoDecoded=void 0,a.onFirstVideoReceived=void 0,a.onSelectedLocalCandidateChanged=void 0,a.onSelectedRemoteCandidateChanged=void 0,a.onFirstVideoDecodedTimeout=void 0,a.onLocalCandidate=void 0}async handleDisconnect(a){let A=a===uA.SEND_ONLY?this.sendConnection:this.recvConnection;A&&!A.isInRestartIce&&(A.isInRestartIce=!0,X.debug("[".concat(this.store.clientId,"] [P2PChannel-").concat(A.name,"] start use restartICE")),a===uA.SEND_ONLY?this.restartICE(a):rs(this,hr.RequestP2PRestartICE,{direction:uA.SEND_ONLY}))}filterTobeMutedTracks(a){let A=[];if(this.getAllTracks().indexOf(a)===-1)return A;let l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive||A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g&&(A.push(g),g[0]===St.LocalVideoTrack)){let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}return A}filterTobeUnmutedTracks(a){let A=[],l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive&&A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g)if(g[0]===St.LocalVideoTrack){A.push(g);let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}else A.push(g);return A}createMuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}createUnmuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}filterTobeUnSubscribedTracks(a,A){let l=[],g=this.remoteUserMap.get(a);if(!g)return l;if(A){let C=g.get(A);if(!C)return l;l.push([a,{kind:A,id:C}])}else Array.from(g.entries()).forEach(C=>{let[m,y]=C;l.push([a,{kind:m,id:y}])});return l}createUnsubscribeMessage(a){let A=[];return a.forEach(l=>{let[g,{kind:C,id:m}]=l;switch(C){case $t.VIDEO:return void(g._videoSSRC&&A.push({stream_type:$t.VIDEO,ssrcId:g._videoSSRC}));case $t.AUDIO:return void(g._audioSSRC&&A.push({stream_type:$t.AUDIO,ssrcId:g._audioSSRC}))}}),A}withdrawRemoteTracks(a){a.forEach(A=>{let[l,{kind:g}]=A,C=this.remoteUserMap.get(l);C&&(C.delete(g),Array.from(C.entries()).length===0&&this.remoteUserMap.delete(l))})}async updateBitrateLimit(a){let A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalVideoLowTrack);A&&(await A.track.setBitrateLimit(a.uplink),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(A.track,g,C,!0)})),l&&a.low_stream_uplink&&(await l.track.setBitrateLimit({max_bitrate:a.low_stream_uplink.bitrate,min_bitrate:a.low_stream_uplink.bitrate||0}),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(l.track,g,C,!0)}))}isP2PDisconnected(){if(this.sendConnection&&this.recvConnection){let a=this.sendConnection.peerConnectionState,A=this.recvConnection.peerConnectionState;return a!=="connected"&&A!=="connected"}return!0}async tryToUnmuteAudio(a){for(let A=0;Athis.getStats(a),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()).filter(a=>{let[,{ssrcs:A}]=a;return!!A}),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=a=>{var A;return!((A=this.recvConnection)===null||A===void 0||!A.getRemoteVideoIsReady(a))},this.statsUploader.requestUpload=(a,A)=>this.emit(hr.RequestUpload,a,A),this.statsUploader.requestUploadStats=a=>this.emit(hr.RequestUploadStats,a),this.statsUploader.requestAllTracks=()=>this.getAllTracks()}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await Ks(Y1(this.dtlsFailedCount,os)),this.emit(hr.RequestReconnect)}async reconnectP2P(){}canPublishLowStream(){return this.localTrackMap.has(St.LocalVideoTrack)||this.pendingLocalTracks.some(a=>a instanceof Pi)}throwIfTrackTypeNotMatch(a){if(a.filter(A=>A instanceof Pi).length>1)throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(a.filter(A=>A instanceof xt).length>1&&(a.some(A=>A instanceof xt&&A._bypassWebAudio)||!Bi().webAudioMediaStreamDest))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(let A of a){if(A instanceof Pi&&this.pendingLocalTracks.some(l=>l instanceof Pi))throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(A instanceof xt&&this.pendingLocalTracks.some(l=>l instanceof xt)&&(!Bi().webAudioMediaStreamDest||A._bypassWebAudio||this.pendingLocalTracks.some(l=>l instanceof xt&&l._bypassWebAudio)))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(a,A){let l=!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding,g=em(em({},{width:160,height:120,framerate:15,bitrate:50}),A),C;C=l?a._mediaStreamTrack.clone():PN(a,g);let m=yn(8,"track-low-"),y=new Pi(C,em(em({},l&&{scaleResolutionDownBy:pN(g,a)}),{},{frameRate:g.framerate,bitrateMax:g.bitrate,bitrateMin:g.bitrate}),void 0,void 0,m);return y.on(Wl.TRANSCEIVER_UPDATED,w=>{a._updateRtpTransceiver(w,bg.LOW_STREAM)}),y._hints.push($i.LOW_STREAM),a.addListener(nr.NEED_CLOSE,()=>{y.close()}),y}async globalLock(){return this.recvMutex.lock("From P2PChannel2.globalLock")}reportVideoFirstFrameDecoded(a,A,l,g){var C;let m=Array.from(Hs(C=this.remoteUserMap).call(C)).find(y=>y._videoSSRC===a);if(m){g||this.store.subscribe(m.uid,"video",void 0,void 0,void 0,void 0,Date.now());let y=this.store.keyMetrics,w=y.subscribe.find(b=>b.userId===m.uid&&b.type==="video");tr.firstRemoteVideoDecode(this.store.sessionId,Cs.FIRST_VIDEO_DECODE,Eo.FIRST_VIDEO_DECODE,{peer:m._uintid,videowidth:A,videoheight:l,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId,apEnd:y.requestAPEnd||0,apStart:y.requestAPStart||0,joinGwEnd:y.joinGatewayEnd||0,joinGwStart:y.joinGatewayStart||0,pcEnd:y.peerConnectionEnd||0,pcStart:y.peerConnectionStart||0,subscriberEnd:(w==null?void 0:w.subscribeEnd)||0,subscriberStart:(w==null?void 0:w.subscribeStart)||0,videoAddNotify:(w==null?void 0:w.streamAdded)||0,state:g?1:0})}}async remoteMediaSsrcChanged(a,A,l){if(!this.recvConnection)return!1;let g=this.remoteUserMap.get(a);if(!g)return!1;let C=g.get(A);if(!C)return!1;let m=await this.recvConnection.getRemoteSSRC(C);return m!==void 0&&m!==l}isPreSubScribe(a){return!1}async publishDataChannel(a){throw new nt(fe.NOT_SUPPORTED)}async unpublishDataChannel(a){throw new nt(fe.NOT_SUPPORTED)}async subscribeDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}async unsubscribeDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}hasPendingRemoteDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}setPendingRemoteDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}async preConnect(a){throw new nt(fe.NOT_SUPPORTED)}getEstablishParams(){throw new nt(fe.NOT_SUPPORTED)}async reSubscribe(a){throw new nt(fe.NOT_SUPPORTED)}reportVideoFirstFrameRender(a){}async updateVideoStreamParameter(a,A){throw new nt(fe.NOT_SUPPORTED)}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(a=>{let[A,{track:l}]=a;A===St.LocalVideoLowTrack?l._updateRtpTransceiver(void 0,bg.LOW_STREAM):l._updateRtpTransceiver(void 0)})}},Vt(Lo.prototype,"p2pConnect",[Px],Object.getOwnPropertyDescriptor(Lo.prototype,"p2pConnect"),Lo.prototype),Vt(Lo.prototype,"unpublish",[Ux],Object.getOwnPropertyDescriptor(Lo.prototype,"unpublish"),Lo.prototype),Vt(Lo.prototype,"unpublishLowStream",[xx],Object.getOwnPropertyDescriptor(Lo.prototype,"unpublishLowStream"),Lo.prototype),Vt(Lo.prototype,"subscribe",[XO],Object.getOwnPropertyDescriptor(Lo.prototype,"subscribe"),Lo.prototype),Vt(Lo.prototype,"mockSubscribe",[FQ],Object.getOwnPropertyDescriptor(Lo.prototype,"mockSubscribe"),Lo.prototype),Vt(Lo.prototype,"unsubscribe",[Fx],Object.getOwnPropertyDescriptor(Lo.prototype,"unsubscribe"),Lo.prototype),Vt(Lo.prototype,"muteRemote",[zO],Object.getOwnPropertyDescriptor(Lo.prototype,"muteRemote"),Lo.prototype),Vt(Lo.prototype,"unmuteRemote",[Gx],Object.getOwnPropertyDescriptor(Lo.prototype,"unmuteRemote"),Lo.prototype),Vt(Lo.prototype,"hasRemoteMediaWithLock",[Z_],Object.getOwnPropertyDescriptor(Lo.prototype,"hasRemoteMediaWithLock"),Lo.prototype),Vt(Lo.prototype,"disconnectForReconnect",[Vx],Object.getOwnPropertyDescriptor(Lo.prototype,"disconnectForReconnect"),Lo.prototype),Vt(Lo.prototype,"remoteMediaSsrcChanged",[Kx],Object.getOwnPropertyDescriptor(Lo.prototype,"remoteMediaSsrcChanged"),Lo.prototype),Lo);function Ql(a){return function(A,l,g){let C=A[l];if(typeof C!="function")throw new Error("Cannot use mutex on object property.");return g.value=async function(){for(var m=arguments.length,y=new Array(m),w=0;w{this.signal.connectionState===vi.CONNECTED&&this.check(),this.userMap.size===0?this.tokenInterval=window.setTimeout(g,1e3):this.tokenInterval=window.setTimeout(g,3*Ie("P2P_TOKEN_INTERVAL"))};g()}async send(A,l,g,C,m){var y;if(this.userMap.size===0)return;let w=Array.from(U1(y=this.userMap).call(y))[0].token;typeof l!="string"&&(l=JSON.stringify(l)),C=C??yn(6,""),m=m??this._sequence++;let b={_id:C,_type:A,_seq:m,_message:l,token:"".concat(this.token,"_").concat(w)};Ie("SHOW_P2P_LOG")&&X.debug("send message",b,"noNeedResponse : ".concat(g)),this.splitMessage(JSON.stringify(b)).forEach(k=>{this.signal.request(sr.DATA_STREAM,{payload:Md(this.encoder.encode(k))})});let M=new Ft((k,V)=>{let K=window.setTimeout(()=>{this.off("res-@".concat(C,"_ack"),q),this.off("res-@".concat(C),oe),this.off(_1.ABORT,ce),X.debug("[external-signal] request timeout, type: ".concat(A,", requestId: ").concat(C)),this.userMap.size===0?V(new nt(fe.INVALID_REMOTE_USER)):V(new nt(fe.TIMEOUT))},Ie("EXTERNAL_SIGNAL_REQUEST_TIMEOUT")),q=()=>{K&&window.clearTimeout(K),this.off(_1.ABORT,ce),g&&k()},ce=()=>{K&&window.clearTimeout(K),this.off("res-@".concat(C,"_ack"),q),this.off("res-@".concat(C),oe),V(new nt(fe.EXTERNAL_SIGNAL_ABORT,"type: ".concat(A,", requestId: ").concat(C)))};this.once(_1.ABORT,ce),this.once("res-@".concat(C,"_ack"),q);let oe=(pe,Se)=>{le=!0,K&&window.clearTimeout(K),this.off("res-@".concat(C,"_ack"),q),this.off(_1.ABORT,ce),pe==="success"?k(Se):V(new nt(fe.P2P_MESSAGE_FAILED,"request ".concat(A," failed, requestId: ").concat(C)))},le=!1;g||(this.once("res-@".concat(C),oe),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{le||X.warning("external_signal request timeout, type: ".concat(A,", requestId: ").concat(C,", ").concat(b))}))});try{return await M}catch(k){if(k.code===fe.TIMEOUT)return await this.send(A,l,g,C,m);throw k}}onMessage(A){var l;let{_uid:g}=A,C,m=this.userMap.get(g);if(m)C=m.splitMessageMap;else{if(this.userMap.size>0||!("_type"in A)||A._type!==Ro.CHECK)return;let{token:M}=A;C=new Map,m={uid:g,isStart:!0,token:M,splitMessageMap:C,nextExpectedSequenceNumber:0,receivedMessagesMap:new Map},this.userMap.set(g,m),this.signal.emit(Or.ON_USER_ONLINE,{uid:g}),this.handleUserOnline()}if("id"in A&&"total"in A){var y;let{id:M,total:k}=A,V=(y=C.get(M))!==null&&y!==void 0?y:[];if(V.push(A),C.has(M)||C.set(M,V),V.length!==k)return;{let K=LE(V).call(V,(q,ce)=>q.index-ce.index).map(q=>q.payload).join("");C.delete(M),(A=JSON.parse(K))._uid=g}}let{_type:w,token:b}=A;if(Rt(l=[Ro.ACK,Ro.CHECK]).call(l,w))return w===Ro.CHECK&&this.handleCheckToken(m,b),void this.receiveMessage(A);b==="".concat(m.token,"_").concat(this.token)?this.handleReceivedMessage(A):X.debug('Receive unexpected message", '.concat(b,", cur_token: ").concat(m.token,"_").concat(this.token),A)}check(){let A={_id:yn(6,""),token:this.token,_type:Ro.CHECK};Ie("SHOW_P2P_LOG")&&X.debug("send message",A),this.signal.request(sr.DATA_STREAM,{payload:Md(this.encoder.encode(JSON.stringify(A)))})}ack(A){let l={_id:A,_type:Ro.ACK,token:this.token};Ie("SHOW_P2P_LOG")&&X.debug("send message",l),this.signal.request(sr.DATA_STREAM,{payload:Md(this.encoder.encode(JSON.stringify(l)))})}response(A,l,g){this.send(Ro.RESPONSE,JSON.stringify({success:!g,message:l}),!0,A)}handleReceivedMessage(A){let l=()=>{this.userMap.forEach(M=>{let{receivedMessagesMap:k,nextExpectedSequenceNumber:V}=M;for(;k.has(V);){let K=k.get(V);k.delete(V),this.receiveMessage(K),M.nextExpectedSequenceNumber++}})};if(!A)return void l();let{_uid:g,_seq:C}=A,m=this.userMap.get(g),{receivedMessagesMap:y,isStart:w,nextExpectedSequenceNumber:b}=m;if(C{this.response(A._id,w)}).catch(()=>{this.response(A._id,void 0,!0)});break;case Ro.ACK:this.getListeners("res-@".concat(l,"_ack")).length>0&&this.emit("res-@".concat(l,"_ack"));break;case Ro.RESPONSE:{let{success:w,message:b}=y;this.emit("res-@".concat(l),w?"success":"failed",b);break}}}}splitMessage(A){if(A.length0;){m++;let b={id:C,index:m,total:w,payload:A.slice(0,y),token:"".concat(this.token,"_").concat(g)};JSON.stringify(b).length>Vh.MAX_MESSAGE_SIZE?y-=50:(l.push(b),A=A.slice(y))}return l.map(b=>JSON.stringify(b))}handleCheckToken(A,l){return A.token!==l?(X.debug("token changed, from ".concat(A.token," to ").concat(l)),this.reset(A.uid,l),!1):(this.tokenTimeout&&(window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0),this.tokenTimeout=window.setTimeout(()=>{X.debug("token timeout, ".concat(l)),this.reset(A.uid)},Ie("MAX_P2P_TIMEOUT")),!0)}async handleUserOnline(){let A=await rs(this.signal,Ro.CALL,void 0),l=await this.send(Ro.CALL,A);this.signal.emit(or.P2P_CONNECTION,l,!0)}async reset(A,l){let g=this.userMap.get(A);g&&(this.emit(_1.ABORT),this.signal.emit(Or.ON_USER_OFFLINE,{uid:g.uid,reason:Ny.P2P_TOKEN_CHANGED}),this._sequence=0,this.userMap.clear(),l||(X.debug("change local token from ".concat(l," to ").concat(l)),this.token=yn(6,"")))}clear(){this._sequence=0,this.userMap.clear(),this.tokenInterval&&window.clearTimeout(this.tokenInterval),this.tokenInterval=void 0,this.tokenTimeout&&window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0,this.emit(_1.ABORT)}}Ae(Vh,"MAX_SIZE",1),Ae(Vh,"MAX_MESSAGE_SIZE",1024);class sW extends io{get connectionState(){return this._connectionState}set connectionState(A){A!==this._connectionState&&(this._connectionState=A,A===vi.CONNECTED?this.emit(or.WS_CONNECTED):A===vi.RECONNECTING?this.emit(or.WS_RECONNECTING,this._websocketReconnectReason):A===vi.CLOSED&&this.emit(or.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(A,l){super(),Ae(this,"__name__","P2PSignal"),Ae(this,"_disconnectedReason",void 0),Ae(this,"_websocketReconnectReason",void 0),Ae(this,"_connectionState",vi.CLOSED),Ae(this,"reconnectToken",void 0),Ae(this,"p2pToken",void 0),Ae(this,"websocket",void 0),Ae(this,"openConnectionTime",void 0),Ae(this,"clientId",void 0),Ae(this,"lastMsgTime",Date.now()),Ae(this,"uploadCache",[]),Ae(this,"uploadCacheInterval",void 0),Ae(this,"rttRolling",new OR(5)),Ae(this,"pingpongTimer",void 0),Ae(this,"pingpongTimeoutCount",0),Ae(this,"joinResponse",void 0),Ae(this,"multiIpOption",void 0),Ae(this,"initError",void 0),Ae(this,"spec",void 0),Ae(this,"store",void 0),Ae(this,"_external_signal",void 0),Ae(this,"onWebsocketMessage",g=>{if(g.data instanceof ArrayBuffer)return void this.emit(or.ON_BINARY_DATA,g.data);let C=JSON.parse(g.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(C,"_id")){let m="res-@".concat(C._id);this.emit(m,C._result,C._message)}else if(Object.prototype.hasOwnProperty.call(C,"_type")){switch(C._type){case Or.ON_DATA_STREAM:return void this.handleDataStream(C._message);case Or.MUTE_AUDIO:case Or.MUTE_VIDEO:case Or.ON_P2P_LOST:case Or.ON_USER_ONLINE:return;case Or.ON_USER_OFFLINE:let{uid:m}=C._message;return X.debug("[".concat(this.clientId,"] user-offline uid: ").concat(m)),void this._external_signal.reset(m)}if(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED)switch(C._message.error_code){case 14:this.close(bi.UID_BANNED);break;case 15:this.close(bi.IP_BANNED);break;case 16:this.close(bi.CHANNEL_BANNED)}if(C._type===Or.ON_USER_LICENSE_BANNED)switch(C._message.error_code){case mr.ERR_LICENSE_MISSING:this.close(bi.LICENSE_MISSING);break;case mr.ERR_LICENSE_EXPIRED:this.close(bi.LICENSE_EXPIRED);break;case mr.ERR_LICENSE_MINUTES_EXCEEDED:this.close(bi.LICENSE_MINUTES_EXCEEDED);break;case mr.ERR_LICENSE_PERIOD_INVALID:this.close(bi.LICENSE_PERIOD_INVALID);break;case mr.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(bi.LICENSE_MULTIPLE_SDK_SERVICE);break;case mr.ERR_LICENSE_ILLEGAL:this.close(bi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=A.clientId,this.spec=A,this.store=l,this.websocket=new Lu("gateway-".concat(this.clientId),this.spec.retryConfig,!0,Ie("JOIN_GATEWAY_USE_DUAL_DOMAIN"),Ie("JOIN_GATEWAY_USE_443PORT_ONLY"),l),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===vi.CONNECTED&&this.reconnect("retry",xo.OFFLINE)}),this.p2pToken=yn(6,""),this._external_signal=new Vh(this,this.p2pToken)}async request(A,l,g,C){let m=yn(6,""),y={_id:m,_type:A,_message:l},w=this.websocket.connectionID,b=()=>new Ft((ce,oe)=>{if(this.connectionState===vi.CONNECTED)return ce();let le=()=>{this.off(or.WS_CLOSED,pe),ce()},pe=()=>{this.off(or.WS_CONNECTED,le),oe(new nt(fe.WS_ABORT))};this.once(or.WS_CONNECTED,le),this.once(or.WS_CLOSED,pe)});if(this.connectionState!==vi.CONNECTING&&this.connectionState!==vi.RECONNECTING||A===sr.JOIN||A===sr.REJOIN||await b(),this.websocket.sendMessage(y,!0),C)return;let M=new Ft((ce,oe)=>{let le=!1,pe=(be,Ue)=>{le=!0,ce({isSuccess:be==="success",message:Ue||{}}),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.emit(or.REQUEST_SUCCESS,A,l)};this.once("res-@".concat(m),pe);let Se=()=>{oe(new nt(fe.WS_ABORT,"type: ".concat(A))),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.off("res-@".concat(m),pe)};this.once(or.WS_CLOSED,Se),this.once(or.WS_RECONNECTING,Se),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||le||(X.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(A)),this.emit(or.REQUEST_TIMEOUT,A,l))})}),k=null;try{k=await M}catch(ce){if(this.connectionState===vi.CLOSED||A===sr.LEAVE)throw new nt(fe.WS_ABORT);return!this.spec.forceWaitGatewayResponse||g?ce.throw():A===sr.JOIN||A===sr.REJOIN?null:(await b(),await this.request(A,l))}if(k.isSuccess)return k.message;let V=Number(k.message.error_code||k.message.code),K=O2(V),q=new nt(fe.UNEXPECTED_RESPONSE,"".concat(K.desc,": ").concat(k.message.error_str),{code:V,data:k.message,desc:K.desc});return K.action==="success"?k.message:(X.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(A,", error_code: ").concat(V,", message: ").concat(K.desc,", action: ").concat(K.action)),V===mr.ERR_TOO_MANY_BROADCASTERS?((A===sr.JOIN||A===sr.REJOIN)&&(this.initError=q,this.close()),q.throw()):K.action==="failed"?q.throw():K.action==="quit"?(this.initError=q,this.close(),q.throw()):(V===mr.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=k.message.option,X.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",xo.MULTI_IP)):this.reconnect(K.action,xo.SERVER_ERROR),A===sr.JOIN||A===sr.REJOIN?null:await this.request(A,l)))}waitMessage(A,l){return new Ft(g=>{let C=m=>{(!l||l(m))&&(this.off(A,C),g(m))};this.on(A,C)})}uploadWRTCStats(A){if(!this.store.sessionId)return void X.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let l={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:A};this.upload(pn.WRTC_STATS,l)}upload(A,l){let g={_type:A,_message:l};try{this.websocket.sendMessage(g)}catch{let C=Ie("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(g),this.uploadCache.length>C&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==vi.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},Ie("UPLOAD_CACHE_INTERVAL")||2e3))}}send(A,l){let g={_type:A,_message:l};this.websocket.sendMessage(g)}async sendExtensionMessage(A,l,g){return await this._external_signal.send(A,l,g)}init(A){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ft((l,g)=>{this.once(or.WS_CONNECTED,()=>l(this.joinResponse)),this.once(or.WS_CLOSED,()=>g(this.initError||new nt(fe.WS_ABORT))),this.connectionState=vi.CONNECTING,this.websocket.init(A).catch(g)})}close(A){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._external_signal.clear(),this._disconnectedReason=A||bi.LEAVE,this.connectionState=vi.CLOSED,X.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close(),this.p2pToken=yn(6,""),this._external_signal.clear(),this._external_signal=new Vh(this,this.p2pToken)}async join(){if(!this.joinResponse){this.emit(or.ABORT_P2P_EXECUTION);let A=await rs(this,or.REQUEST_JOIN_INFO),l=await this.request(sr.JOIN,A);if(!l)return this.emit(or.REPORT_JOIN_GATEWAY,fe.TIMEOUT,this.url||""),!1;this.joinResponse=l,this.emit(or.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}reconnect(A,l){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(A,l)}async downgradeCodec(A){return!1}handleDataStream(A){try{var l;let g=th(A.payload),C=new TextDecoder().decode(g),m=JSON.parse(C);"total"in m&&"id"in m||Rt(l=Object.values(Ro)).call(l,m._type)?(m._uid=A.uid,this._external_signal.onMessage(m)):this.emit(Or.ON_DATA_STREAM,A)}catch{this.emit(Or.ON_DATA_STREAM,A)}}handleNotification(A){X.debug("[".concat(this.clientId,"] receive notification: "),A);let l=O2(A.code);if(l.action!=="success"){if(l.action!=="failed")return l.action==="quit"?A.code===mr.ERR_REPEAT_JOIN_CHANNEL&&Ie("IGNORE_UID_CHECK")?void this.close(bi.UID_CONFLICT):(l.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(bi.UID_BANNED),void this.close()):void this.reconnect(l.action,xo.SERVER_ERROR);X.error("[".concat(this.clientId,"] ignore error: "),l.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;let A=Ie("PING_PONG_TIME_OUT"),l=Date.now();this.pingpongTimeoutCount>=A&&(X.warning("[".concat(this.clientId,"] PINGPONG Timeout. Last Socket Message: ").concat(l-this.lastMsgTime,"ms")),l-this.lastMsgTime>Ie("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",xo.TIMEOUT):this.request(sr.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let g=Date.now()-l;this.rttRolling.add(g),Ie("REPORT_STATS")&&this.send(sr.PING_BACK,{pingpongElapse:g})}).catch(g=>{})}handleWebsocketEvents(){this.websocket.on(qr.RECONNECT_CREATE_CONNECTION,A=>{this.emit(or.WS_RECONNECT_CREATE_CONNECTION,A)}),this.websocket.on(qr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(qr.CLOSED,()=>{this.connectionState=vi.CLOSED}),this.websocket.on(qr.FAILED,()=>{this._disconnectedReason=bi.NETWORK_ERROR,this.connectionState=vi.CLOSED}),this.websocket.on(qr.RECONNECTING,A=>{this._websocketReconnectReason=A,this.joinResponse=void 0,this.connectionState===vi.CONNECTED?this.connectionState=vi.RECONNECTING:this.connectionState=vi.CONNECTING}),this.websocket.on(qr.WILL_RECONNECT,(A,l,g)=>{A!=="retry"?(X.debug("".concat(this.clientId," websocket will_connect event, renewSession reconnectMode is ").concat(A)),this.reconnectToken=void 0):X.debug("".concat(this.clientId," reconnect mode is retry, no need to renew session")),g(A)}),this.websocket.on(qr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.join().catch(A=>{if(this.emit(or.REPORT_JOIN_GATEWAY,A,this.url||""),A instanceof nt&&A.code===fe.UNEXPECTED_RESPONSE&&A.data.code===mr.ERR_NO_AUTHORIZED)return X.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",xo.SERVER_ERROR);X.error("[".concat(this.clientId,"] join gateway request failed"),A.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",xo.SERVER_ERROR):(this.initError=A,this.close())})}),this.websocket.on(qr.REQUEST_NEW_URLS,(A,l)=>{rs(this,or.REQUEST_RECOVER,this.multiIpOption).then(A).catch(l)}),this.websocket.on(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE)})}}let Yx={name:"P2PChannel",create:function(a){let{store:A,statsCollector:l}=a;return new oW(A,l)},createSubmodule:function(a){let{store:A,spec:l}=a;return new sW(l,A)}};function $O(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function GQ(a){for(var A=1;Aoe.payloadType.toString(10));let q=m.videoCodecs.filter(oe=>{var le,pe;return(le=oe.rtpMap)===null||le===void 0?void 0:Rt(pe=le.encodingName.toLowerCase()).call(pe,b)}),ce=m.videoCodecs.filter(oe=>!Rt(q).call(q,oe));K.attributes.payloads=[...q,...ce],K.attributes.extmaps=m.videoExtensions}K.media.mediaType==="audio"&&(K.media.fmts=m.audioCodecs.map(q=>q.payloadType.toString(10)),K.attributes.payloads=m.audioCodecs,K.attributes.extmaps=m.audioExtensions),k.mediaDescriptions[V]=this.mungMediaDesc(K)}this.sessionDesc=k,this.currentMidIndex=k.mediaDescriptions.length-1}toString(){return ea(this.sessionDesc)}send(A,l,g){let{ssrcs:C,ssrcGroups:m}=U2(l,this.cname),y=this.sessionDesc.mediaDescriptions.find(M=>A===$t.VIDEO?M.media.mediaType==="video":M.media.mediaType==="audio"),w=C[0].attributes.label,b=C[0].attributes.mslabel;return y.attributes.ssrcs=y.attributes.ssrcs.concat(C),y.attributes.ssrcGroups=y.attributes.ssrcGroups.concat(m),{id:w,mslabel:b}}batchSend(A){return A.map(l=>{let{kind:g,ssrcMsg:C}=l;return this.send(g,C,void 0)})}stopSending(A){this.sessionDesc.mediaDescriptions.forEach(l=>{let g=[],C=[],m=[];l.attributes.ssrcs.forEach(y=>{Rt(A).call(A,y.attributes.label||"")?m.push(y):g.push(y)}),l.attributes.ssrcGroups.forEach(y=>{var w;Rt(w=m.map(b=>b.ssrcId)).call(w,y.ssrcIds[0])||C.push(y)}),l.attributes.ssrcs=g,l.attributes.ssrcGroups=C})}mute(A){let l=this.sessionDesc.mediaDescriptions.find(g=>g.attributes.mid===A);if(!l)throw new Error("mediaDescription not found with ".concat(A," in remote SDP when calling RemoteSDP.mute."));l.attributes.direction="inactive"}unmute(A){let l=this.sessionDesc.mediaDescriptions.find(g=>g.attributes.mid===A);if(!l)throw new Error("mediaDescription not found with ".concat(A," in remote SDP when calling RemoteSDP.unmute."));l.attributes.direction="sendonly"}receive(A,l,g){A.forEach((C,m)=>{let y=C._mediaStreamTrack,w=this.sessionDesc.mediaDescriptions.findIndex(M=>M.attributes.mid===y.kind),b=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[w],C);this.sessionDesc.mediaDescriptions[w]=b})}stopReceiving(A){}updateCandidates(A){let l=this._originCandidates.filter(C=>C.transport==="udp"),g=[];if(l.forEach(C=>{g.push(GQ(GQ({},C),{},{foundation:"tcpcandidate",priority:Number(C.priority)-1+"",transport:"tcp",port:Number(C.port)+90+""}))}),l.length!==0){switch(A){case Ls.TCP_RELAY:this.candidates=g;break;case Ls.UDP_TCP_RELAY:case Ls.RELAY:this.candidates=[...l,...g];break;default:this.candidates=l}for(let C of this.sessionDesc.mediaDescriptions)C.attributes.candidates=this.candidates}}restartICE(A){A=no(A),this.iceParameters=A,this.sessionDesc.mediaDescriptions.forEach(l=>{l.attributes.iceUfrag=A.iceUfrag,l.attributes.icePwd=A.icePwd})}predictReceivingMids(A){let l=[];for(let g=0;gC.attributes.mid===A);if(g!==-1){let C=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[g],l);this.sessionDesc.mediaDescriptions[g]=C}}bumpMid(A){this.currentMidIndex+=A}updateTrackLabel(A,l,g){let C=this.sessionDesc.mediaDescriptions.find(y=>A===$t.VIDEO?y.attributes.mid==="video":y.attributes.mid==="audio");if(C){let y=C.attributes.ssrcs.find(w=>w.attributes.label===l);var m;y&&(y.attributes.label=g,(m=y.attributes.msid)===null||m===void 0||m.replace(l,g))}}mungMediaDesc(A){let l=no(A);return fN(l),function(g){let C=g.attributes.extmaps.find(m=>Mu(m.extensionName));C&&g.attributes.extmaps.splice(g.attributes.extmaps.indexOf(C),1),g.attributes.payloads.forEach(m=>{let y=m.rtcpFeedbacks.findIndex(w=>w.type==="transport-cc");y!==-1&&m.rtcpFeedbacks.splice(y,1)})}(l),l}getSSRC(A){for(let l of this.sessionDesc.mediaDescriptions)for(let g of l.attributes.ssrcs)if(g.attributes.label===A)return[g]}}var zn;function tm(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function VQ(a){for(var A=1;AA.rtpMap&&A.rtpMap.encodingName.toLowerCase()||"").filter(A=>{var l;return Rt(l=Object.keys(Ss)).call(l,A)}))]}constructor(A,l){super(A,l),Ae(this,"store",void 0),Ae(this,"peerConnection",void 0),Ae(this,"remoteSDP",void 0),Ae(this,"initialOffer",void 0),Ae(this,"statsFilter",void 0),Ae(this,"useRTX",!1),Ae(this,"localCapabilities",void 0),Ae(this,"localCandidateCount",0),Ae(this,"allCandidatesReceived",!1),Ae(this,"establishPromise",void 0),Ae(this,"mutex",void 0),this.store=l,this.mutex=new Is("P2PConnection-mutex",l.clientId),this.peerConnection=new RTCPeerConnection(w9.resolvePCConfiguration(A),{optional:[{googDscp:!0}]}),this.statsFilter=MC(this.peerConnection,Ie("STATS_UPDATE_INTERVAL"),void 0,uo()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,this.establishPromise=this.establish()}async establish(){try{let A=await this.peerConnection.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});if(!A.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let l=fl(A.sdp),g=jr(A.sdp,{filterRTX:!this.useRTX,filterVideoFec:Ie("FILTER_VIDEO_FEC"),filterAudioFec:Ie("FILTER_AUDIO_FEC"),filterAudioCodec:["opus"]});return this.localCapabilities=g,this.initialOffer=A,VQ(VQ({},l),{},{rtpCapabilities:{send:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},recv:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},sendrecv:g},offerSDP:A.sdp})}catch(A){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,A.toString())}}async updateRemoteConnect(){}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.remoteSDP=new aW(VQ(VQ({},A),{},{rtpCapabilities:A.rtpCapabilities.send,localCapabilities:this.localCapabilities,sdkCodec:this.store.codec}));let l=this.remoteSDP.toString();await this.peerConnection.setLocalDescription(this.initialOffer),await this.peerConnection.setRemoteDescription({type:"answer",sdp:l})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(l.toString()))}}async updateRemoteRTPCapabilities(A,l){throw new nt(fe.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}getPreMedia(A){}send(A,l){var g=this;return wA(function*(){let C=yield ri(g.mutex.lock());try{if(!g.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let m=A.map(K=>g.peerConnection.addTrack(K._mediaStreamTrack)),y=yield ri(g.peerConnection.createOffer()),w=ki(y.sdp),b=A.map(K=>{let q=K._mediaStreamTrack,ce=w.mediaDescriptions.find(oe=>oe.attributes.mid===q.kind);if(!ce)throw new Error("Cannot extract ssrc from mediaDescription.");return function(oe,le,pe){let Se=oe.attributes.ssrcs.filter(Ue=>Ue.attributes.label===le),be=oe.attributes.ssrcGroups;if(Se.length===0)throw new Error("Cannot extract ssrc from plan-b SDP.");if(be&&Se.length>1){let Ue=be.find(xe=>xe.ssrcIds.indexOf(Se[0].ssrcId)!==-1);return Ue?[{ssrcId:Ue.ssrcIds[0],rtx:pe?Ue.ssrcIds[1]:void 0}]:[{ssrcId:Se[0].ssrcId}]}return[{ssrcId:Se[0].ssrcId}]}(ce,q.id,g.useRTX)}),M;try{M=yield b}catch(K){throw m.forEach(q=>{$s()&&q.replaceTrack(null),g.peerConnection.removeTrack(q)}),K}let k=g.mungSendOfferSDP(y.sdp,A);g.remoteSDP.receive(A,l,M);let V=g.remoteSDP.toString();return yield ri(g.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(g.applySendEncodings(m,A)),yield ri(g.peerConnection.setRemoteDescription({type:"answer",sdp:V})),A.map((K,q)=>{let ce=K._mediaStreamTrack.id;return{localSSRC:b[q],id:ce}})}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(m.toString()))}finally{C()}})()}async stopSending(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let l=this.peerConnection.getSenders().filter(m=>{var y;return A.indexOf(((y=m.track)===null||y===void 0?void 0:y.id)||"")!==-1});if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");l.map(m=>{$s()&&m.replaceTrack(null),this.peerConnection.removeTrack(m)});let g=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(g),this.remoteSDP.stopReceiving(A);let C=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:C})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(l.toString()))}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{id:m,mslabel:y}=this.remoteSDP.send(A,l,C),w=new Ft((k,V)=>{let K=setTimeout(()=>{V(new Error("Cannot receive track, id: ".concat(m)))},1e4),q=ce=>{let oe=Wi();if((oe.name==="Safari"&&Number(oe.version)===11||Ma())&&ce.track.id!==m&&ce.streams[0].id===y){var le;let pe=ce.streams[0].getTracks()[0];return(le=this.remoteSDP)===null||le===void 0||le.updateTrackLabel(A,m,ce.track.id),this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k(pe)}if(ce.track.id===m)return this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k(ce.track)};this.peerConnection.addEventListener("track",q)}),b=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:b});let M=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(M),{track:await w,id:m}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let g=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(g)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}async muteRemote(A){}async unmuteRemote(A){}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let l=this.peerConnection.getSenders().filter(g=>{var C;return A.indexOf(((C=g.track)===null||C===void 0?void 0:C.id)||"")!==-1});if(l.length!==A.length)throw new Error("sender' length doesn't match mids' length.");l.map(g=>{if($s()&&g.track)g.track.enabled=!1;else{let C=g.getParameters();C.encodings.forEach(m=>m.active=!1),g.setParameters(C)}})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let l=this.peerConnection.getSenders().filter(m=>{var y;return A.indexOf(((y=m.track)===null||y===void 0?void 0:y.id)||"")!==-1});if(l.length!==A.length)throw new Error("Senders' length doesn't match mids' length.");l.map(async m=>{if($s()&&m.track)m.track.enabled=!0;else{let y=m.getParameters();y.encodings.forEach(w=>w.active=!0),await m.setParameters(y)}});let g=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(g);let C=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:C})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(l.toString()))}}restartICE(A){var l=this;return wA(function*(){let g=yield ri(l.mutex.lock("From P2PConnection.restartICE"));try{if(!l.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");let C=Bi().supportPCSetConfiguration;if(A===Ls.RELAY&&!C)return;if(C){let M=l.peerConnection.getConfiguration(),k=A===Ls.RELAY?"relay":"all";M.iceTransportPolicy!==k&&(X.debug("[".concat(l.store.clientId,"] restartICE change iceTransportPolicy from [").concat(M.iceTransportPolicy,"] to [").concat(k,"]")),M.iceTransportPolicy=k,l.peerConnection.setConfiguration(M))}A!==Ls.RELAY&&l.remoteSDP.updateCandidates(A);let m=yield ri(l.peerConnection.createOffer({iceRestart:!0}));if(!m.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let y=fl(m.sdp),{remoteIceParameters:w}=yield y.iceParameters;l.remoteSDP.restartICE(w);let b=l.remoteSDP.toString();yield ri(l.peerConnection.setLocalDescription(m)),yield ri(l.peerConnection.setRemoteDescription({type:"answer",sdp:b}))}catch(C){X.warning("[".concat(l.store.clientId,"] restart ICE failed, abort operation"),C)}finally{g()}})()}close(){var A;this.peerConnection.close(),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l]);this.remoteSDP.updateRecvMedia(l._mediaStreamTrack.kind,l);let m=this.remoteSDP.toString();await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getSenders().filter(C=>{var m;return((m=C.track)===null||m===void 0?void 0:m.id)===A});g.length===1&&await this.applySendEncodings(g,[l])}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getSenders().find(C=>{var m;return((m=C.track)===null||m===void 0?void 0:m.id)===l});g&&await g.replaceTrack(A._mediaStreamTrack)}createDataChannels(A,l){throw new nt(fe.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}stopDataChannels(A){throw new nt(fe.NOT_SUPPORTED,"Planb mode does not support stopDataChannels.")}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A;(A=this.onICEConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidate=A=>{A.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},Ie("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A){let l={iceServers:[],sdpSemantics:"plan-b"};return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&A.turnServer.mode!=="off"&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:(l.iceServers&&l.iceServers.push(...w9.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...w9.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(g=>{g.forceturn&&(l.iceTransportPolicy="relay")}))),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}async updateRtpSenderEncodings(A,l){var g;if(l||(l=this.peerConnection.getSenders().find(M=>{var k;return((k=M.track)===null||k===void 0?void 0:k.id)===A._mediaStreamTrack.id})),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(!Bi().supportSetRtpSenderParameters)return X.warn("Browser not support set rtp-sender parameters");let C={},m={};if(A instanceof Pi)switch(A._optimizationMode){case"motion":C.degradationPreference="maintain-framerate";break;case"detail":C.degradationPreference="maintain-resolution";break;default:C.degradationPreference="balanced"}if(Ie("DSCP_TYPE")&&Od()){var y;let M=Ie("DSCP_TYPE");Rt(y=["very-low","low","medium","high"]).call(y,M)&&(m.networkPriority=M)}let w=l.getParameters(),b=(g=w.encodings)===null||g===void 0?void 0:g[0];b&&Object.assign(b,m),Object.assign(w,C),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(w.encodings))),await l.setParameters(w)}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let y=C._mediaStreamTrack,w=g.mediaDescriptions.find(b=>b.attributes.mid===y.kind);w&&kg(w,C)}),ea(g)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0}async batchReceive(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");let l=this.remoteSDP.batchSend(A).map((m,y)=>{let{id:w,mslabel:b}=m,{kind:M}=A[y];return new Ft((k,V)=>{let K=setTimeout(()=>{V(new Error("Cannot receive track, id: ".concat(w)))},1e4),q=ce=>{let oe=Wi();if(oe.name==="Safari"&&Number(oe.version)===11&&ce.track.id!==w&&ce.streams[0].id===b){var le;let pe=ce.streams[0].getTracks()[0];return(le=this.remoteSDP)===null||le===void 0||le.updateTrackLabel(M,w,ce.track.id),this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k({track:pe,id:w})}if(ce.track.id===w)return this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k({track:ce.track,id:w})};this.peerConnection.addEventListener("track",q)})}),g=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:g});let C=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(C),await Ft.all(l)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(l.toString()))}}async getRemoteSSRC(A){if(!this.remoteSDP)return;let l=this.remoteSDP.getSSRC(A);return l==null?void 0:l[0].ssrcId}setConfiguration(A){if(Bi().supportPCSetConfiguration){let l=w9.resolvePCConfiguration(A);this.peerConnection.setConfiguration(l)}}},Vt(zn.prototype,"connect",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"connect"),zn.prototype),Vt(zn.prototype,"stopSending",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"stopSending"),zn.prototype),Vt(zn.prototype,"receive",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"receive"),zn.prototype),Vt(zn.prototype,"stopReceiving",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"stopReceiving"),zn.prototype),Vt(zn.prototype,"muteRemote",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"muteRemote"),zn.prototype),Vt(zn.prototype,"unmuteRemote",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"unmuteRemote"),zn.prototype),Vt(zn.prototype,"muteLocal",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"muteLocal"),zn.prototype),Vt(zn.prototype,"unmuteLocal",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"unmuteLocal"),zn.prototype),Vt(zn.prototype,"close",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"close"),zn.prototype),Vt(zn.prototype,"updateEncoderConfig",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"updateEncoderConfig"),zn.prototype),Vt(zn.prototype,"updateSendParameters",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"updateSendParameters"),zn.prototype),Vt(zn.prototype,"replaceTrack",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"replaceTrack"),zn.prototype),Vt(zn.prototype,"getRemoteSSRC",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"getRemoteSSRC"),zn.prototype),zn);function Tl(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("Locking from P2PConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b1&&arguments[1]!==void 0?arguments[1]:{};if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support audio encoded transform");if(jf.has(a)||!a.track)return;let l={track:a.track};if(Tg()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");let C=null;try{C=a.createEncodedStreams()}catch(y){return void X.error("create audio-encoded-streams error",y&&y.message)}let m=new TransformStream({transform(y,w){l.controller||(l.controller=w),a.track&&a.track.id!==l.track.id&&(X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g));let b=A.metadata&&A.metadata();b?function(M,k){let{chunk:V,controller:K}=k,q=Lg.METADATA;V.data=function(ce,oe,le){let pe=le.byteLength,Se=pe+Iy+eN,be=Ey+hy+Se,Ue=new ArrayBuffer(ce.byteLength+be),xe=new DataView(Ue);xe.setUint8(0,Z4),xe.setUint16(1,Se),xe.setUint8(3,oe),xe.setUint16(4,pe);for(let je=0;je"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"audio-metadata-tx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),m.port1.onmessage=w=>{var b;if(w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id)X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g);else if(w.data.getMetadata){let M=A.metadata&&A.metadata();M&&m.port1.postMessage({metadata:M})}},l.worker=C}function g(){if(a.track){if(this.id!==a.track.id)return;a.track.removeEventListener("ended",g)}let C=jf.get(a);if(C){jf.delete(a);try{var m,y;(m=C.controller)===null||m===void 0||m.terminate(),(y=C.worker)===null||y===void 0||y.terminate()}catch(w){X.warning(w&&w.message)}}}jf.set(a,l),a.track.addEventListener("ended",g)},interceptRemoteAudioFrame:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support audio encoded transform");if($f.has(a))return;let l={track:a.track,onMetadata:A.onMetadata,onPts:A.onPts};if(Tg()&&!Ma()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");_R(nn.CHROME,87,116)||(A.enableTopn=!1);let C=null;try{C=a.createEncodedStreams()}catch(y){return void X.error("create audio-encoded-streams error",y&&y.message)}let m=new TransformStream({transform(y,w){l.controller||(l.controller=w),a.track&&a.track.id!==l.track.id&&(X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g)),A.enableTopn?function(b,M,k){var V;let K=Cy(new DataView(M.data));if(!K)return k.enqueue(M);let q=b.track.id;SU.set(q,b.track);let ce=(V=K.tlv.find(Ue=>Ue.tag===Lg.AUDIO_LEVEL))===null||V===void 0?void 0:V.value,oe=0;typeof ce=="number"&&(oe=127-ce);let le=Math.round(Math.pow(10,oe/60)-1),{selected:pe,speaker:Se}=function(Ue,xe){let Le=Ao.get(Ue);if(Le||(Le=function(je){let dt=new rN;return Ao.set(je,dt),Xl||(Xl=new BU(Ie("TOPN_SILENCE_THRESHOLD")||500),Xl.on("ActiveSpeakerChanged",pt=>{pt!=null&&(Wf=pt)})),Xl.addSpeakers([dt]),dt}(Ue)),Ao.size<=iN)return{selected:!0,speaker:Le};if(!Xl)throw new Error("no active speaker detector");return Xl.levelChanged(Le.id,xe),Ih=Xl.loudest.map(je=>je.id),Wf&&!Rt(Ih).call(Ih,Wf)&&Ih.length>=iN&&Ih.pop(),{selected:Rt(Ih).call(Ih,Le.id)||Le.id===Wf,speaker:Le}}(b,le),be=function(Ue,xe,Le){let je=zl.get(Ue)||new bu(Ue,xe);return je.score=Le,zl.set(Ue,je),function(dt){if(Xf.set(dt,!0),!zf)return void(zf=Date.now());let pt=Date.now();pt-zf>1e3&&(Xf.get(dt)?Xf.set(dt,!1):(nN(dt),Xf.delete(dt)),zf=pt)}(Ue),je}(q,b.track,Se.energyScore);be.addSample(pe),be.active&&(M.data=K.frame.buffer,k.enqueue(M))}(a,y,w):A.enableMetadata||A.enablePts?function(b,M,k,V){let K=new DataView(b.data),q=K.getUint8(0),ce;if(128&q&&q!==71){let pe=function(Se){if(Se.byteLength<=0)return[];let be=[],Ue=0;for(;Ue>7,je=127&Se.getUint8(Ue);if(!(Le&&Ue+4<=Se.byteLength)){Ue++;break}{let dt=Se.getUint32(Ue,!1),pt=(16776192&dt)>>10,zt=1023&dt;be.push({pt:je,ts_offset:pt,length:zt,data:new Uint8Array}),Ue+=4}}let xe=Se.byteLength-Ue;for(let Le of be){if(Le.length>xe)return console.warn("Broken red payload"),[];Le.length>0&&(Le.data=new Uint8Array(Se.buffer,Se.byteOffset+Ue,Le.length),Ue+=Le.length,xe-=Le.length)}if(xe>0){let Le={pt:be.length>0?be[be.length-1].pt:0,ts_offset:0,length:xe,data:new Uint8Array(Se.buffer,Se.byteOffset+Ue,xe)};be.push(Le)}return be}(K);if(pe.length>0){let Se=function(be){let Ue=0;for(let je=0;je>>0;xe[Le++]=dt>>24&255,xe[Le++]=dt>>16&255,xe[Le++]=dt>>8&255,xe[Le++]=255&dt}else xe[Le++]=127&be[je].pt;for(let je of be)xe.set(je.data,Le),Le+=je.length;return xe}(pe.map(be=>{let Ue=new Uint8Array(be.length);Ue.set(be.data);let xe=Cy(new DataView(Ue.buffer));return xe!=null&&xe.frame&&(be.data=xe==null?void 0:xe.frame),ce=xe,be}));b.data=Se.buffer}}else ce=Cy(K),ce&&(b.data=ce.frame.buffer);if(M.enqueue(b),!ce)return;let oe=ce.tlv.find(pe=>pe.tag===Lg.METADATA);oe&&k&&oe.value instanceof Uint8Array&&k(oe.value);let le=ce.tlv.find(pe=>pe.tag===Lg.AUDIO_64_BIT_PTS);le&&V&&le.value instanceof Uint8Array&&le.value.length==8&&V(new DataView(le.value.buffer).getBigUint64(0,!0))}(y,w,A.onMetadata,A.onPts):w.enqueue(y)}});C.readable.pipeThrough(m).pipeTo(C.writable)}else{if(typeof RTCRtpScriptTransform>"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"audio-metadata-rx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),m.port1.onmessage=w=>{var b;w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id?(X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g)):w.data.metadata&&l.onMetadata?l.onMetadata(w.data.metadata):w.data.pts&&l.onPts&&l.onPts(w.data.pts)},l.worker=C}function g(){a.track.removeEventListener("ended",g),function(C){let m=$f.get(C);if(m){(function(b){let M=Ao.get(b);M&&(Ao.delete(b),Xl&&(Xl.removeSpeakers([M]),Ao.size===0&&(Xl.destroy(),Xl=null)))})(C),nN(C.track.id),$f.delete(C);try{var y,w;(y=m.controller)===null||y===void 0||y.terminate(),(w=m.worker)===null||w===void 0||w.terminate()}catch(b){X.warning(b&&b.message)}}}(a)}$f.set(a,l),a.track.addEventListener("ended",g)},interceptLocalVideoFrame:async function(a,A){if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support video encoded transform");if(Zf.has(a)||!a.track)return;let l={track:a.track};if(Tg()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");let C=null;try{C=a.createEncodedStreams()}catch(w){return void X.error("create video-encoded-streams error",w&&w.message)}let m=[];A.on("sei-to-send",w=>{m.push(w)});let y=new TransformStream({transform(w,b){l.controller||(l.controller=b),a.track&&a.track.id!==l.track.id&&(X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g));let M=aN(new Uint8Array(w.data)),k=m.shift();if(k){let V=function(K,q,ce){switch(ce){case my:return function(oe,le){let pe=sN(le),Se=pe.length,be=Math.floor(Se/255),Ue=Se%255,xe=new Uint8Array(6+be+1+Se+oe.byteLength);xe[0]=0,xe[1]=0,xe[2]=0,xe[3]=1,xe[4]=6,xe[5]=101;let Le=0;for(;Le"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"sei-tx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),A.on("sei-to-send",w=>{m.port1.postMessage({sei:w})}),m.port1.onmessage=w=>{var b;w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id&&(X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g))},l.worker=C}}function g(){if(a.track){if(this.id!==a.track.id)return;a.track.removeEventListener("ended",g)}let C=Zf.get(a);if(C){Zf.delete(a);try{var m,y;(m=C.controller)===null||m===void 0||m.terminate(),(y=C.worker)===null||y===void 0||y.terminate()}catch(w){X.warning(w&&w.message)}}}Zf.set(a,l),a.track.addEventListener("ended",g)},interceptRemoteVideoFrame:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support video encoded transform");if(!a.track)return;if(VC.has(a)){let C=VC.get(a);return void(C&&(C.onSei=A.onSei))}let l={track:a.track,onSei:A.onSei};if(Tg()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");let C=null;try{C=a.createEncodedStreams()}catch(y){return void X.error("create video-encoded-streams error",y&&y.message)}let m=new TransformStream({transform(y,w){if(l.controller||(l.controller=w),!l.firstFrameInfo){var b;let k=y.getMetadata()||{};l.firstFrameInfo=Qn({type:y.type,rtpTimestamp:y.timestamp,payloadType:k.payloadType||0,ssrc:k.synchronizationSource||0,length:y.data.byteLength},"mimeType"in k?{mimeType:k.mimeType}:{}),(b=A.onFirstFrame)===null||b===void 0||b.call(A,l.firstFrameInfo)}a.track&&a.track.id!==l.track.id&&(X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g));let M=function(k,V){switch(V){case my:return function(K){let q=new DataView(K.data),ce=0;for(;ce+4"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"sei-rx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),m.port1.onmessage=w=>{var b;if(w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id)X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g);else if(w.data.sei&&l.onSei)l.onSei(w.data.sei);else if(w.data.firstFrameInfo&&A.onFirstFrame){var M;(M=A.onFirstFrame)===null||M===void 0||M.call(A,w.data.firstFrameInfo)}},l.worker=C}function g(){if(a.track){if(this.id!==a.track.id)return;a.track.removeEventListener("ended",g)}(function(C){let m=VC.get(C);if(m){VC.delete(C);try{var y,w;(y=m.controller)===null||y===void 0||y.terminate(),(w=m.worker)===null||w===void 0||w.terminate()}catch(b){X.warning(b&&b.message)}}})(a)}VC.set(a,l),a.track.addEventListener("ended",g)}},lW={name:"InterceptFrame",create:()=>cW};var Yi;function jx(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function ru(a){for(var A=1;AA.rtpMap&&A.rtpMap.encodingName.toLowerCase()||"").filter(A=>{var l;return Rt(l=Object.keys(Ss)).call(l,A)}))]}constructor(A,l,g){super(A,l),Ae(this,"id",yn(5,"connection-")),Ae(this,"store",void 0),Ae(this,"peerConnection",void 0),Ae(this,"forceTurn",!1),Ae(this,"remoteSDP",void 0),Ae(this,"initialOffer",void 0),Ae(this,"transportEventReceiver",void 0),Ae(this,"statsFilter",void 0),Ae(this,"extension",{useXR:Ie("USE_XR")}),Ae(this,"localCapabilities",void 0),Ae(this,"remoteCodecs",void 0),Ae(this,"localCandidateCount",0),Ae(this,"allCandidatesReceived",!1),Ae(this,"isPreallocation",!1),Ae(this,"preMediaMap",new Map),Ae(this,"dataStreamChannelMap",new Map),Ae(this,"establishPromise",void 0),Ae(this,"recoveredDataChannelIds",[]),Ae(this,"currentDataChannelId",1),Ae(this,"supportAV1RtpSpec",!1),Ae(this,"mutex",void 0),Ae(this,"qualityLimitationReason",j1.NONE),Ae(this,"isFirstConnected",!1),this.store=l,this.forceTurn=Fg(A),this.mutex=new Is("NVConnectionExtension-mutex",l.clientId),this.peerConnection=g,this.isFirstConnected=!1,this.statsFilter=MC(this.peerConnection,Ie("STATS_UPDATE_INTERVAL"),void 0,uo()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,A.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(A){return this.preMediaMap.get(A)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(A,l){if(this.remoteCodecs=l,!this.remoteSDP)return void X.debug("[NVConnectionExtension] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(l));if(this.remoteSDP.updateRemoteCodec(A,l,this.store.codec)){let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}else X.debug("[NVConnectionExtension] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});let l=await this.peerConnection.createOffer();if(!l.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let g=fl(l.sdp),C=await Kd({filterRTX:!Ie("USE_PUB_RTX")&&!Ie("USE_SUB_RTX"),filterVideoFec:Ie("FILTER_VIDEO_FEC"),filterAudioFec:Ie("FILTER_AUDIO_FEC"),filterVideoCodec:Ie("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:Ie("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:Ie("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=En(C),this.initialOffer=l,Ie("ENABLE_SVC")&&this.store.codec=="av1"){let y=await OA();var A;y&&(this.supportAV1RtpSpec=!0,(A=C.send)===null||A===void 0||A.videoExtensions.push(y))}let m;return l.sdp&&xc(l.sdp)&&(m=no(C),gA(m)),ru(ru({},g),{},{rtpCapabilities:m||C,offerSDP:l.sdp})}catch(l){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,l.toString())}}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish NVConnectionExtension without initial offer.");this.initialOffer.sdp&&xc(this.initialOffer.sdp)&&Br(A.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Jd(ru(ru({},A),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!Ie("ENABLE_PRE_SUB_WITH_PRE_PC")||!Ie("PRE_USE_LOCAL_CODECS"))&&So(this.store),!0),A.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);let l=this.remoteSDP.toString(),g=Gy(this.initialOffer.sdp,this.extension),C=this.logSDPExchange(g||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:g}),C==null||C(l),await this.peerConnection.setRemoteDescription({type:"answer",sdp:l});let m=this.peerConnection.getTransceivers()[0];if(m!=null&&m.receiver&&this.tryBindTransportEvents(m.receiver),So(this.store))if(A.preallocation&&Ie("ENABLE_PRE_SUB_WITH_PRE_PC")){let y=Ie("PRE_SUB_NUM"),{mids:w,preSSRCs:b}=this.remoteSDP.preloadRemoteMedia(y);await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] preload media, in pre pc,add preload ssrcs ").concat(b)),this.presetMedia(w,b)}else{let{preSSRCs:y=[]}=A,w=y.map(M=>M.ssrcMsg[0].ssrcId);if(y.length===0)return;let{mids:b}=this.remoteSDP.batchSend(y.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[NVConnectionExtension.connect] preload media, after join, add preload ssrcs ".concat(w)),this.presetMedia(b,w)}}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.connect failed; ".concat(l.toString()))}}presetMedia(A,l){A.forEach((g,C)=>{this.peerConnection.getTransceivers().forEach(m=>{if(m.mid!=null&&g===m.mid&&m.receiver.track){let y=m.receiver.track,w;y.kind==="video"&&Ie("ENABLE_PRE_RENDER")&&(w=new zA({trackId:"track-".concat(y.kind,"-unknown-").concat(this.store.clientId,"_").concat(yn(5,""))},!0),w.updateVideoTrack(y),w.onFirstVideoFrameRender=()=>{var b;let M=this.preMediaMap.get(l[C]);M&&(M.firstVideoRender=Date.now()),(b=this.onFirstVideoRender)===null||b===void 0||b.call(this,l[C])},w.onVideoBufferReady=()=>{var b;(b=this.onFirstVideoBufferReady)===null||b===void 0||b.call(this,l[C])},w.play(this.store.sessionId||void 0)),this.preMediaMap.set(l[C],{mid:g,track:y,player:w,transceiver:m})}}),this.store.peerReceiver()})}checkDtlsParameters(A){return!!this.remoteSDP&&A.length>0&&this.remoteSDP.updateRemoteDtlsParameters(A)}async updateRemoteConnect(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateRemoteConnect before remote SDP created");let l=!1,{rtpCapabilities:g}=A;if([,l]=this.remoteSDP.updateRemoteRTPCapabilities(g),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){let y=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);l=l||y}let{preSSRCs:C=[]}=A,m=C.map(y=>y.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(m)){let y=[],w=[];if(Array.from(this.preMediaMap.entries()).every(b=>{let[M,{mid:k,player:V,track:K}]=b;return y.push(k),w.push(M),this.preMediaMap.delete(M),V&&V.destroy(),!0}),y.length>0&&(this.remoteSDP.stopSending(y),await gi(this.peerConnection,this.remoteSDP,this.extension),X.warn("[NVConnectionExtension.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(w)),tr.reportApiInvoke(this.store.sessionId,{name:Co.PRELOAD_MEDIA_FAILED,options:[C,w],tag:Gn.TRACER}).onSuccess()),C.length>0){let{mids:b}=this.remoteSDP.batchSend(C.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[NVConnectionExtension.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(m)),this.presetMedia(b,m)}}l?(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[NVConnectionExtension] updateRemoteConnect by exchanging SDP.")):X.debug("[NVConnectionExtension] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.updateRemoteConnect failed; ".concat(l.toString()))}}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From NVConnectionExtension.send"));try{if(!C.remoteSDP)throw new Error("Cannot call NVConnectionExtension.send before remote SDP created");let y=[],w=k2();A.forEach(le=>{let pe=C.peerConnection.addTransceiver(le._mediaStreamTrack,ru({direction:"sendonly"},le.trackMediaType==="video"&&C.supportAV1RtpSpec&&w?{sendEncodings:[{scalabilityMode:w}]}:{}));y.push(pe),le._updateRtpTransceiver(pe)}),uo()&&Ie("SIMULCAST")===!0&&(yield ri(C.applySimulcastForFirefox(y,A)));let b=yield ri(C.peerConnection.createOffer()),M=C.remoteSDP.predictReceivingMids(A.length),k=C.mungSendOfferSDP(b.sdp,A,M),V=ki(k),K=M.map(le=>{let pe=V.mediaDescriptions.find(Se=>Se.attributes.mid===le);if(!pe)throw new Error("Cannot extract ssrc from mediaDescription.");return P2(pe,Ie("USE_PUB_RTX"))}),q;try{q=yield K}catch(le){q=[],C.remoteSDP.receive(A,l,g,q);let pe=C.remoteSDP.toString();throw yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:pe})),yield ri(C.stopSending(M,!0)),le}C.remoteSDP.receive(A,l,g,q);let ce=C.remoteSDP.toString(),oe=C.logSDPExchange(k,"offer","local","send");return yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.applySimulcastEncodings(y,A)),yield ri(C.applySendEncodings(y,A)),oe==null||oe(ce),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:ce})),y.map((le,pe)=>{let Se=M[pe];return{localSSRC:K[pe],id:Se,transceiver:le}})}catch(y){throw y instanceof nt?y:new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.send failed; ".concat(y.toString()))}finally{m()}})()}async createDataChannels(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.createDataChannels before remote SDP created");let g=this.dataStreamChannelMap.get(A);if(g&&g.readyState==="open")X.debug("[NVConnectionExtension] Channels are already available and can be reused directly.");else{let m=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof m!="number")throw new Error("create DataChannel error, because cannot get dc id");g=this.peerConnection.createDataChannel("datastream-channel",{id:m,negotiated:!0,ordered:!1,maxRetransmits:Ie("DATASTREAM_MAX_RETRANSMITS")}),g.binaryType="arraybuffer",this.dataStreamChannelMap.set(A,g)}l.forEach(m=>{m._updateOriginDataChannel(g)});let{needExchangeSDP:C}=this.remoteSDP.sendDataChannel();if(C){let m=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:m});let y=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(y),X.debug("[NVConnectionExtension] createDataChannels by exchanging SDP.")}else X.debug("[NVConnectionExtension] createDataChannels no need to exchange SDP.");return}catch(g){throw g instanceof nt?g:new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.createDataChannels failed; ".concat(g.toString()))}}async stopDataChannels(A){try{let l=this.dataStreamChannelMap.get(A);return l&&(l.id&&this.recoveredDataChannelIds.push(l.id),l.close()),void this.dataStreamChannelMap.delete(A)}catch(l){throw l instanceof nt?l:new nt(fe.DATACHANNEL_FAILED,"NVConnectionExtension.stopDataChannels failed; ".concat(l.toString()))}}async stopSending(A,l){let g=l?void 0:await this.mutex.lock("From NVConnectionExtension.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopSending before remote SDP created");let C=this.peerConnection.getTransceivers().filter(b=>A.indexOf(b.mid)!==-1);if(C.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call NVConnectionExtension.stopSending.");C.map(b=>{var M;XC(this.id+b.mid,this),b.direction="inactive",(M=b.stop)===null||M===void 0||M.call(b)});let m=await this.peerConnection.createOffer(),y=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(A);let w=this.remoteSDP.toString();y==null||y(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(C){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.stopSending failed; ".concat(C.toString()))}finally{g&&g()}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);y&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] receive ").concat(A," by exchanging SDP.")));let w=this.peerConnection.getTransceivers().find(b=>b.mid===m);if(!w)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,id:m,transceiver:w}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(m.toString()))}}async batchReceive(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.batchReceive before remoteSDP created.");let{mids:l,needExchangeSDP:g}=this.remoteSDP.batchSend(A);return g&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] batchReceive by exchanging SDP."))),l.map(C=>{let m=this.peerConnection.getTransceivers().find(y=>y.mid===C);if(!m)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:m.receiver.track,id:C,transceiver:m}})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(l.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopReceiving before remote SDP created.");A.forEach(m=>{Array.from(this.preMediaMap.entries()).some(y=>{let[w,{mid:b,player:M}]=y;if(b===m)return this.preMediaMap.delete(w),M&&M.destroy(),!0})}),this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension stopReceiving failed; ".concat(l.toString()))}}async muteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.mute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteRemote failed; ".concat(l.toString()))}}async unmuteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.unmute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteRemote failed; ".concat(l.toString()))}}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(y=>{y.direction="inactive"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.muteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(async(y,w)=>{y.direction="sendonly"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.unmuteRemote(A),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(A,this.remoteCodecs,this.store.codec);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteLocal failed; ".concat(l.toString()))}}restartICE(A){var l=this;return wA(function*(){let g=yield ri(l.mutex.lock("From NVConnectionExtension.restartICE"));try{if(!l.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");let C=Bi().supportPCSetConfiguration,m=Ie("FORCE_TURN_TCP")||l.forceTurn;if(A===Ls.RELAY&&!C)return;if(C&&!m){let V=A===Ls.RELAY?"relay":"all",K=l.peerConnection.getConfiguration();K.iceTransportPolicy!==V&&(X.debug("[".concat(l.store.clientId,"] restartICE change iceTransportPolicy from [").concat(K.iceTransportPolicy,"] to [").concat(V,"]")),K.iceTransportPolicy=V,l.peerConnection.setConfiguration(K))}l.remoteSDP.updateCandidates(A);let y=yield ri(l.peerConnection.createOffer({iceRestart:!0}));if(!y.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let w=fl(y.sdp),{remoteIceParameters:b}=yield w.iceParameters;l.remoteSDP.restartICE(b);let M=l.remoteSDP.toString(),k=l.logSDPExchange(y.sdp||"","offer","local","restartICE");l.store.descriptionStart(),yield ri(l.peerConnection.setLocalDescription(y)),k==null||k(M),yield ri(l.peerConnection.setRemoteDescription({type:"answer",sdp:M}))}catch(C){X.warning("[".concat(l.store.clientId,"] restart ICE failed, abort operation"),C)}finally{g()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;let A=await this.mutex.lock("From NVConnectionExtension.extendCandidate");try{this.remoteSDP.updateCandidates(Ls.TCP_RELAY),await gi(this.peerConnection,this.remoteSDP,this.extension)}catch(l){X.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),l)}finally{A()}}close(){var A;this.peerConnection.getTransceivers().forEach(l=>{XC(this.id+l.mid,this)}),this.preMediaMap.forEach(l=>{let{player:g}=l;g&&g.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return ru(ru({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l],[A]);this.remoteSDP.updateRecvMedia(A,l);let m=this.remoteSDP.toString(),y=this.logSDPExchange(C,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),y==null||y(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getTransceivers().filter(C=>C.mid===A);g.length===1&&(this.isVP8Simulcast(l)?uo()||await this.applySimulcastEncodings(g,[l]):await this.applySendEncodings(g,[l]))}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getTransceivers().find(C=>C.mid===l);g&&await g.sender.replaceTrack(A._mediaStreamTrack)}async getSelectedCandidatePair(){let A=this.peerConnection.getReceivers();if(A.length>0&&A[0].transport&&A[0].transport.iceTransport&&A[0].transport.iceTransport.getSelectedCandidatePair&&A[0].transport.iceTransport.getSelectedCandidatePair()){let l=A[0].transport.iceTransport,{local:g,remote:C}=l.getSelectedCandidatePair();return{local:ru(ru({},cl),{},{candidateType:g.type,protocol:g.protocol,address:g.address,port:g.port}),remote:ru(ru({},cl),{},{candidateType:C.type,protocol:C.protocol,address:C.address,port:C.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A;(A=this.onICEConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=A=>{if(A&&(A.errorCode||A.errorText)){var l;let g="code: ".concat(A.errorCode,", message: ").concat(A.errorText),C=A.port?"local: ".concat(A.port):"",m=Pt(A.url||"");X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: NVConnectionExtension.onICECandidateError(").concat(g,"), url: ").concat(m||"",", host_candidate:").concat(C)),(l=this.onICECandidateError)===null||l===void 0||l.call(this,g)}},this.peerConnection.onicegatheringstatechange=A=>{A&&A.target&&"iceGatheringState"in A.target&&X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(A.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=A=>{A.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},Ie("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A){let l={iceServers:[]},g=A.cloudProxyServer||"disabled";return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:Ie("NEW_TURN_MODE")&&l.iceServers&&g==="disabled"?(Ie("USE_TURN_SERVER_OF_GATEWAY")?A.turnServer.serversFromGateway&&l.iceServers.push(...ET.newTurnServerConfigToIceServers(A.turnServer.serversFromGateway)):l.iceServers.push(...ET.newTurnServerConfigToIceServers(A.turnServer.servers)),Ie("NEW_FORCE_TURN")&&(l.iceTransportPolicy="relay")):A.turnServer.mode!=="off"&&(l.iceServers&&l.iceServers.push(...ET.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...ET.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),Ie("FORCE_TURN_TCP")?l.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(C=>{C.forceturn&&(l.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(l.encodedInsertableStreams=!0),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&!Ie("FORCE_TURN_TCP")&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}static newTurnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{let C=Ie("NEW_TURN_MODE");C===1?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}):C===2?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}):C===3?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}):C===4&&(l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}))}),l}tryBindTransportEvents(A){let l=A.transport;if(l){this.transportEventReceiver=A,l.onstatechange=()=>{var C;l!=null&&l.state&&((C=this.onDTLSTransportStateChange)===null||C===void 0||C.call(this,l.state))},l.onerror=C=>{var m;(m=this.onDTLSTransportError)===null||m===void 0||m.call(this,"error"in C?C.error:C)};let g=l.iceTransport;g&&(g.onstatechange=()=>{let C=l==null?void 0:l.iceTransport.state;var m;C&&((m=this.onICETransportStateChange)===null||m===void 0||m.call(this,C))},g.getSelectedCandidatePair&&(g.onselectedcandidatepairchange=()=>{if(g.getSelectedCandidatePair()){let{local:C,remote:m}=g.getSelectedCandidatePair()||{};if(C&&m){let y=C.address+":"+C.port,w=m.address+":"+m.port;X.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Pt(y)),", remote ").concat(JSON.stringify(Pt(w))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(A,l){var g,C;if(l||(l=this.peerConnection.getSenders().find(oe=>oe.track===A._mediaStreamTrack)),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(A))return X.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Bi().supportSetRtpSenderParameters)return X.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let m={},y={};switch(A._optimizationMode){case"motion":m.degradationPreference="maintain-framerate";break;case"detail":m.degradationPreference="maintain-resolution";break;case"balanced":m.degradationPreference="balanced"}let w=a_(this.peerConnection,A._mediaStreamTrack),b=xf(A);if(MN(A)&&w&&l&&b&&this.getLocalVideoStats&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)){var M;let oe=m.degradationPreference||(Rt(M=A._hints).call(M,$i.CUSTOM_TRACK)?Ie("CUSTOM_ADAPTATION_DEFAULT_MODE"):"maintain-framerate");h7(this.id+w.mid,b,this,oe,le=>{l&&this.updateAdaptation(l,le)},this.getLocalVideoStats.bind(this))}if(A._encoderConfig){var k;let{bitrateMax:oe,frameRate:le,scaleResolutionDownBy:pe}=A._encoderConfig;oe&&(y.maxBitrate=1e3*oe),(Rt(k=A._hints).call(k,$i.LOW_STREAM)||A.isUseScaleResolutionDownBy)&&(le&&(y.maxFramerate=ZA(le)),pe&&pe>=1&&(y.scaleResolutionDownBy=pe))}let{maxFramerate:V}=Ie("ENCODER_CONFIG_LIMIT");if(V&&typeof V=="number"&&(y.maxFramerate=y.maxFramerate?Math.min(y.maxFramerate,V):V),Ie("DSCP_TYPE")&&Od()){var K;let oe=Ie("DSCP_TYPE");Rt(K=["very-low","low","medium","high"]).call(K,oe)&&(y.networkPriority=oe)}let q=l.getParameters(),ce=(C=q.encodings)===null||C===void 0?void 0:C[0];uo()&&!ce&&(m.encodings=[y]),ce&&Object.assign(ce,y),Object.assign(q,m),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(q.encodings))),await l.setParameters(q),await A_(this.store.codec,l,Ie("SVC_MODE"))}async updateAdaptation(A,l){var g,C;if(!A)return X.debug("[updateAdaptation] no rtpSender found");if(!Bi().supportSetRtpSenderParameters)return X.debug("[updateAdaptation] Browser not support set rtp-sender parameters");let m={},{bitrateMax:y,frameRate:w,scaleResolutionDownBy:b}=l;y&&(m.maxBitrate=1e3*y),w&&(m.maxFramerate=ZA(w)),b&&b>=1&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)&&(m.scaleResolutionDownBy=b);let M=A.getParameters(),k=(C=M.encodings)===null||C===void 0?void 0:C[0];k&&Object.assign(k,m),Object.assign(M,{});try{await A.setParameters(M),X.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify(M.encodings)))}catch(V){!("transport"in A)||A.transport&&A.transport.state==="connected"?this.peerConnectionState!=="connected"?X.debug("[updateAdaptation] peerConnection not connected}"):X.debug("[updateAdaptation] updateRtpSenderEncodings failed",V):X.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let w=g[y],b=C.mediaDescriptions.find(M=>M.attributes.mid===w);b&&(kg(b,m),Fy(b,m,this.store.codec))}),ea(C)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onFirstVideoDecodedTimeout=A=>{var l;(l=this.onFirstVideoDecodedTimeout)===null||l===void 0||l.call(this,A)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(A,l){if(A.length===l.length)for(let b=0;b200&&(y=k._scalabilityMode)!==null&&y!==void 0&&y.numSpatialLayers&&((w=k._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let V={},K={high:1e3*(k._encoderConfig.bitrateMax-50),medium:5e4};V.encodings=[{rid:"m",active:!0,maxBitrate:K.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:K.high}];let q=M.sender.getParameters();await M.sender.setParameters(Object.assign(q,V))}}}async applySimulcastEncodings(A,l){if(!uo()&&A.length===l.length)for(let g=0;g200&&(m=A._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((y=A._scalabilityMode)===null||y===void 0?void 0:y.numSpatialLayers)>1)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("[".concat(this.store.clientId,"] exchanging ").concat(g," ").concat(l," SDP during NVConnectionExtension.").concat(C,` +`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}async getRemoteSSRC(A){if(!this.remoteSDP)return;let l=this.remoteSDP.getSSRC(A);return l&&l.length!==0?l[0].ssrcId:void 0}setConfiguration(A){if(Bi().supportPCSetConfiguration){let l=ET.resolvePCConfiguration(A);this.peerConnection.setConfiguration(l)}A.isPreallocation&&(this.isPreallocation=!0)}},Vt(Yi.prototype,"updateRemoteRTPCapabilities",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateRemoteRTPCapabilities"),Yi.prototype),Vt(Yi.prototype,"connect",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"connect"),Yi.prototype),Vt(Yi.prototype,"updateRemoteConnect",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateRemoteConnect"),Yi.prototype),Vt(Yi.prototype,"createDataChannels",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"createDataChannels"),Yi.prototype),Vt(Yi.prototype,"receive",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"receive"),Yi.prototype),Vt(Yi.prototype,"batchReceive",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"batchReceive"),Yi.prototype),Vt(Yi.prototype,"stopReceiving",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"stopReceiving"),Yi.prototype),Vt(Yi.prototype,"muteRemote",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"muteRemote"),Yi.prototype),Vt(Yi.prototype,"unmuteRemote",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"unmuteRemote"),Yi.prototype),Vt(Yi.prototype,"muteLocal",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"muteLocal"),Yi.prototype),Vt(Yi.prototype,"unmuteLocal",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"unmuteLocal"),Yi.prototype),Vt(Yi.prototype,"close",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"close"),Yi.prototype),Vt(Yi.prototype,"updateEncoderConfig",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateEncoderConfig"),Yi.prototype),Vt(Yi.prototype,"updateSendParameters",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateSendParameters"),Yi.prototype),Vt(Yi.prototype,"replaceTrack",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"replaceTrack"),Yi.prototype),Vt(Yi.prototype,"updateAdaptation",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateAdaptation"),Yi.prototype),Vt(Yi.prototype,"getRemoteSSRC",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"getRemoteSSRC"),Yi.prototype),Yi);function o1(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From NVConnectionExtension.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{let C=setTimeout(()=>{this.closeSignal(),g(new ze(fe.DATACHANNEL_CONNECTION_TIMEOUT,"Datachannel connection timed out, candidates: ".concat(JSON.stringify(A.candidates))))},Ie("DC_CONNECTION_TIMEOUT"));this.dataChannel.onopen=()=>{if(this.dataChannel.readyState==="open")return clearTimeout(C),void l()},this.dataChannel.onerror=m=>{this.closeSignal(),g(m)},this.dataChannel.addEventListener("close",()=>{g(new ze(fe.DATACHANNEL_CONNECTION_TIMEOUT))})}),{transmitter:this.dataChannel,close:this.closeSignal.bind(this)}}async updateRemoteRTPCapabilities(A,l){return this._p2pConnection.updateRemoteRTPCapabilities(A,l)}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From DataChannelConnection.send"));try{return yield*Z0(lI(C._p2pConnection.send(A,l,g)))}finally{m()}})()}async stopSending(A,l){return this._p2pConnection.stopSending(A,l)}async createDataChannels(A,l){return this._p2pConnection.createDataChannels(A,l)}async stopDataChannels(A){return this._p2pConnection.stopDataChannels(A)}async receive(A,l,g,C){return this._nvMedia?(X.debug("[DataChannelConnection] receive ".concat(A," by DataChannel.")),await this._nvMedia.reveiveByRTCMedia(A,l,this.cname)):(X.debug("[DataChannelConnection] receive ".concat(A," by WebRTC.")),await this._p2pConnection.receive(A,l,g,C))}async batchReceive(A){return[...await this._p2pConnection.batchReceive(A)]}async stopReceiving(A){return await this._p2pConnection.stopReceiving(A)}async muteRemote(A){return await this._p2pConnection.muteRemote(A)}async unmuteRemote(A){return await this._p2pConnection.unmuteRemote(A)}async muteLocal(A){return await this._p2pConnection.muteLocal(A)}async unmuteLocal(A){return await this._p2pConnection.unmuteLocal(A)}restartICE(A){var l=this;return wA(function*(){return yield*Z0(lI(l._p2pConnection.restartICE(A)))})()}close(){var A;(A=this._nvMedia)===null||A===void 0||A.close(),this._p2pConnection.close(),this.unbindConnectionEvents(this._p2pConnection)}getStats(){return this._p2pConnection.getStats()}getRemoteVideoIsReady(A){return this._p2pConnection.getRemoteVideoIsReady(A)}updateRemoteConnect(A){var l;return(l=this._nvMedia)===null||l===void 0||l.setRemoteRtpCapabilities(A),this._p2pConnection.updateRemoteConnect(A)}async updateEncoderConfig(A,l){return await this._p2pConnection.updateEncoderConfig(A,l)}async updateSendParameters(A,l){return await this._p2pConnection.updateSendParameters(A,l)}setStatsRemoteVideoIsReady(A,l){this._p2pConnection.setStatsRemoteVideoIsReady(A,l)}async replaceTrack(A,l){return await this._p2pConnection.replaceTrack(A,l)}async getRemoteSSRC(A){return this._p2pConnection.getRemoteSSRC(A)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("exchanging ".concat(g," ").concat(l," SDP during DataChannelConnection.").concat(C,` +`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}static resolvePCConfiguration(A){let l={iceServers:[]};return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&A.turnServer.mode!=="off"&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:(l.iceServers&&l.iceServers.push(...o8.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...o8.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),Ie("FORCE_TURN_TCP")?l.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(g=>{g.forceturn&&(l.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(l.encodedInsertableStreams=!0),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&!Ie("FORCE_TURN_TCP")&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}bindPCEvents(){this._p2pConnection.onICEConnectionStateChange=A=>{var l;return(l=this.onICEConnectionStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onConnectionStateChange=A=>{var l;return(l=this.onConnectionStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onDTLSTransportStateChange=A=>{var l;return(l=this.onDTLSTransportStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onDTLSTransportError=A=>{var l;return(l=this.onDTLSTransportError)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onICETransportStateChange=A=>{var l;return(l=this.onICETransportStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstAudioReceived=A=>{var l;return(l=this.onFirstAudioReceived)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoReceived=A=>{var l;return(l=this.onFirstVideoReceived)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstAudioDecoded=A=>{var l;return(l=this.onFirstAudioDecoded)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoRender=A=>{var l;return(l=this.onFirstVideoRender)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoBufferReady=A=>{var l;return(l=this.onFirstVideoBufferReady)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoDecoded=(A,l,g)=>{var C;return(C=this.onFirstVideoDecoded)===null||C===void 0?void 0:C.call(this,A,l,g)},this._p2pConnection.onFirstVideoDecodedTimeout=A=>{var l;return(l=this.onFirstVideoDecodedTimeout)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onSelectedLocalCandidateChanged=(A,l)=>{var g;return(g=this.onSelectedLocalCandidateChanged)===null||g===void 0?void 0:g.call(this,A,l)},this._p2pConnection.onSelectedRemoteCandidateChanged=(A,l)=>{var g;return(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0?void 0:g.call(this,A,l)}}closeSignal(){this.dataChannel.close(),this.peerConnection.close()}unbindConnectionEvents(A){A.onConnectionStateChange=void 0,A.onICEConnectionStateChange=void 0,A.onICETransportStateChange=void 0,A.onDTLSTransportStateChange=void 0,A.onDTLSTransportError=void 0,A.onFirstAudioDecoded=void 0,A.onFirstAudioReceived=void 0,A.onFirstVideoDecoded=void 0,A.onFirstVideoReceived=void 0,A.onSelectedLocalCandidateChanged=void 0,A.onSelectedRemoteCandidateChanged=void 0,A.onFirstVideoDecodedTimeout=void 0}setConfiguration(A){this._p2pConnection.setConfiguration(A)}},Vt(Nn.prototype,"connect",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"connect"),Nn.prototype),Vt(Nn.prototype,"updateRemoteRTPCapabilities",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"updateRemoteRTPCapabilities"),Nn.prototype),Vt(Nn.prototype,"createDataChannels",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"createDataChannels"),Nn.prototype),Vt(Nn.prototype,"receive",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"receive"),Nn.prototype),Vt(Nn.prototype,"stopReceiving",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"stopReceiving"),Nn.prototype),Vt(Nn.prototype,"muteRemote",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"muteRemote"),Nn.prototype),Vt(Nn.prototype,"unmuteRemote",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"unmuteRemote"),Nn.prototype),Vt(Nn.prototype,"muteLocal",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"muteLocal"),Nn.prototype),Vt(Nn.prototype,"unmuteLocal",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"unmuteLocal"),Nn.prototype),Vt(Nn.prototype,"close",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"close"),Nn.prototype),Vt(Nn.prototype,"updateEncoderConfig",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"updateEncoderConfig"),Nn.prototype),Vt(Nn.prototype,"updateSendParameters",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"updateSendParameters"),Nn.prototype),Vt(Nn.prototype,"replaceTrack",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"replaceTrack"),Nn.prototype),Vt(Nn.prototype,"getRemoteSSRC",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"getRemoteSSRC"),Nn.prototype),Nn);function Vc(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From DataChannelConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{}),Ae(this,"_store",void 0),Ae(this,"_joinChannelServiceRecordIndex",void 0),Ae(this,"_transmitter",void 0),Ae(this,"_useCompress",void 0),Ae(this,"_inflateLength",0),Ae(this,"_deflateLength",0),this._store=C,this._name=A,this._retryConfig=function(m){for(var y=1;yg.close(),500):g.close(),this._transmitter=void 0}this.state=A?"failed":"closed",this._closeEstablishingTransmitter&&this._closeEstablishingTransmitter()}reconnect(A,l){if(!this._transmitter)return void X.warning("[".concat(this._name,"] can not reconnect, no websocket"));var g;A!==void 0&&(this.reconnectMode=A),X.debug("[".concat(this._name,"] reconnect is triggered initiative")),typeof this._joinChannelServiceRecordIndex=="number"&&((g=this._store)===null||g===void 0||g.recordJoinChannelService({status:"error",errors:[new Error(l)]},this._joinChannelServiceRecordIndex));let C=this._transmitter.onclose;this._transmitter.onclose=null,this._transmitter.close(),C&&C.bind(this._transmitter)({code:9999,reason:l})}getInflateData(){let A=this._inflateLength,l=this._deflateLength;return this.clearInflateData(),{inflateLength:A,deflateLength:l}}setInflateData(A){this._deflateLength=this._deflateLength+A.originLength,this._inflateLength=this._inflateLength+A.compressedLength}clearInflateData(){this._inflateLength=0,this._deflateLength=0}}let iu=function(a){return a[a.Default=0]="Default",a[a.Ack=1]="Ack",a}({});class EW{constructor(A,l,g){Ae(this,"version",1),Ae(this,"initialRTO",void 0),Ae(this,"maxBatchAckCount",void 0),Ae(this,"maxRTO",void 0),Ae(this,"initialRTT",void 0),Ae(this,"ID",void 0),Ae(this,"rtt",void 0),Ae(this,"packetNumber",1),Ae(this,"rtoRatioMap",new Map),Ae(this,"timeoutMap",new Map),Ae(this,"unorderedPacketQueue",[]),Ae(this,"batchAckPacketQueue",[]),Ae(this,"lastOrderedPacketNumber",0),Ae(this,"batchAckTimer",void 0),Ae(this,"sendImpl",void 0),Ae(this,"receiveImpl",void 0),this.sendImpl=A,this.receiveImpl=l,this.ID=yn(7,"transmitter-"),this.initialRTO=(g==null?void 0:g.initialRTO)!==void 0?g.initialRTO:Ie("TRANSMITTER_INITIAL_RTO"),this.initialRTT=(g==null?void 0:g.initialRTT)!==void 0?g.initialRTT:Ie("TRANSMITTER_INITIAL_RTT"),this.rtt=(g==null?void 0:g.initialRTT)!==void 0?g.initialRTT:Ie("TRANSMITTER_INITIAL_RTT"),this.maxBatchAckCount=(g==null?void 0:g.maxBatchAckCount)!==void 0?g.maxBatchAckCount:Ie("TRANSMITTER_MAX_BATCH_ACK_COUNT"),this.maxRTO=(g==null?void 0:g.maxRTO)!==void 0?g.maxRTO:Ie("TRANSMITTER_MAX_RTO")}packetize(A,l){return{type:iu.Default,version:this.version,packetNumber:l,payload:A}}serialize(A){switch(A.type){case iu.Default:{let l;typeof A.payload=="string"?l=new TextEncoder().encode(A.payload):l=A.payload;let g=new ArrayBuffer(l.length+15),C=new DataView(g);return C.setUint16(0,A.version),C.setUint8(2,A.type),C.setUint32(3,A.packetNumber),qP(C,7,BigInt(A.sendTs)),new Uint8Array(C.buffer).set(l,15),g}case iu.Ack:{let l=new ArrayBuffer(16),g=new DataView(l);return g.setUint16(0,A.version),g.setUint8(2,A.type),g.setUint32(3,A.maxAckPacketNumber),g.setUint8(7,A.shift),qP(g,8,BigInt(A.ackSendTs)),l}}}deserialize(A){let l=new DataView(A),g=l.getUint16(0),C=l.getUint8(2);switch(C){case iu.Default:{let m=l.getUint32(3),y=Sf(l,7),w=A.slice(15),b=new Uint8Array(w);return{version:g,type:C,packetNumber:m,sendTs:Number(y),payload:b}}case iu.Ack:{let m=l.getUint32(3),y=l.getUint8(7),w=Sf(l,8);return{version:g,type:C,maxAckPacketNumber:m,shift:y,ackSendTs:Number(w)}}default:throw X.error("[".concat(this.ID,"] Unrecognized packet type ").concat(C)),new Error("Unrecognized packet type ".concat(C))}}sendMessage(A){Ie("DC_DEBUG_LOG")&&typeof A=="string"&&X.debug("[".concat(this.ID,"] sending message packet"),JSON.parse(A));let l=this.packetize(A,this.packetNumber);this.packetNumber=this.packetNumber===4294967295?1:this.packetNumber+1;let g=this.calculateRTO(l),C=window.setTimeout(()=>{this.resendMessage(l)},g);this.timeoutMap.set(l.packetNumber,C),this.sendPacket(l)}onData(A){let l=this.deserialize(A);l.type===iu.Default?this.ack(l):l.type===iu.Ack&&(this.updateRTT(l,Math.round(performance.now())),this.clearRTO(l))}close(){this.rtt=this.initialRTT,this.packetNumber=1,Array.from(this.timeoutMap.entries()).forEach(A=>{let[l,g]=A;window.clearTimeout(g)}),this.timeoutMap=new Map,this.rtoRatioMap=new Map,this.unorderedPacketQueue=[],this.batchAckPacketQueue=[],this.lastOrderedPacketNumber=0,this.batchAckTimer!==void 0&&window.clearTimeout(this.batchAckTimer)}resendMessage(A){let l=this.calculateRTO(A),g=window.setTimeout(()=>{Ie("DC_DEBUG_LOG")&&typeof A.payload=="string"&&X.debug("[".concat(this.ID,"] resending message packet"),JSON.parse(A.payload),"timeout: ".concat(l)),this.resendMessage(A)},l);this.timeoutMap.set(A.packetNumber,g),this.sendPacket(A)}calculateRTO(A){let l=this.rtoRatioMap.get(A.packetNumber);if(l===void 0)return this.rtoRatioMap.set(A.packetNumber,1),this.initialRTO;{let g=9*this.rtt/8*l;return this.rtoRatioMap.set(A.packetNumber,l+1),g>this.maxRTO?this.maxRTO:g}}updateRTT(A,l){let g=A.ackSendTs;this.rtt=this.rtt*(7/8)+(l-g-this.rtt)/8}ack(A){if(A.packetNumber===this.lastOrderedPacketNumber+1)for(this.batchAckPacketQueue.length>=this.maxBatchAckCount&&this.batchAck(),this.batchAckTimer?this.batchAckPacketQueue.push(A):(this.batchAckPacketQueue.push(A),this.batchAckTimer=window.setTimeout(()=>{this.batchAck()},this.rtt/8)),this.lastOrderedPacketNumber+=1,this.receiveImpl(A.payload);;){let l=this.unorderedPacketQueue[0];if(!l){this.unorderedPacketQueue.shift();break}this.batchAckTimer&&this.batchAck(),this.receiveImpl(l.payload),this.unorderedPacketQueue.shift(),this.lastOrderedPacketNumber+=1}else if(A.packetNumber<=this.lastOrderedPacketNumber){let l={ackSendTs:A.sendTs,maxAckPacketNumber:A.packetNumber,shift:0,type:iu.Ack,version:this.version};Ie("DC_DEBUG_LOG")&&X.debug("[".concat(this.ID,"] sending ack packet"),l,"packetNumber: ".concat(A.packetNumber)),this.sendPacket(l)}else if(A.packetNumber>this.lastOrderedPacketNumber){this.unorderedPacketQueue[A.packetNumber-this.lastOrderedPacketNumber-2]=A;let l={ackSendTs:A.sendTs,maxAckPacketNumber:A.packetNumber,shift:0,type:iu.Ack,version:this.version};Ie("DC_DEBUG_LOG")&&X.debug("[".concat(this.ID,"] sending ack packet"),l,"packetNumber: ".concat(A.packetNumber)),this.sendPacket(l)}}batchAck(){window.clearTimeout(this.batchAckTimer),this.batchAckTimer=void 0;let A={ackSendTs:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].sendTs,maxAckPacketNumber:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].packetNumber,shift:this.batchAckPacketQueue.length-1,type:iu.Ack,version:this.version};Ie("DC_DEBUG_LOG")&&X.debug("[".concat(this.ID,"] sending batch ack packet"),A,"shift: ".concat(this.batchAckPacketQueue.length-1)),this.sendPacket(A),this.batchAckPacketQueue=[]}sendPacket(A){A.type===iu.Default&&(A.sendTs=Math.round(performance.now()));let l=this.serialize(A);this.sendImpl(l)}clearRTO(A){for(let l=A.maxAckPacketNumber-A.shift;l<=A.maxAckPacketNumber;l++){let g=this.timeoutMap.get(l);g!==void 0&&window.clearTimeout(g),this.timeoutMap.delete(l),this.rtoRatioMap.delete(l)}}}class qx extends gW{constructor(A,l){super(A,l,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3?arguments[3]:void 0),Ae(this,"_initMutex",void 0),Ae(this,"_reconnectInterrupter",void 0),Ae(this,"_url",void 0),Ae(this,"_transmitter",void 0),Ae(this,"_addresses",void 0),Ae(this,"_reliableTransmission",void 0),Ae(this,"_textEncoder",void 0),Ae(this,"_textDecoder",void 0),this._textEncoder=new TextEncoder,this._textDecoder=new TextDecoder,this._initMutex=new Is("datachannel");let{timeout:g,timeoutFactor:C}=l,m=Math.max(300,Math.floor(3*g/5)),y=Math.max(1.2,Math.floor(8*C)/10);Va.ONLINE&&(this._retryConfig.timeout=m,this._retryConfig.timeoutFactor=y),Xi.on(Tu.NETWORK_STATE_CHANGE,(w,b)=>{w!==b&&(this.resetReconnectCount("network state change: ".concat(b," -> ").concat(w)),w===Va.ONLINE?(this._retryConfig.timeout=m,this._retryConfig.timeoutFactor=y):(this._retryConfig.timeout=g,this._retryConfig.timeoutFactor=C))})}getConnection(){if(this._reliableTransmission)return this._reliableTransmission}async init(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;this._forceCloseTimeout=l;let g=(C,m)=>{this._addresses=A,this.currentURLIndex=this._addresses.findIndex(w=>w.fingerprint||Ie("FINGERPRINT"));let y=this._addresses[this.currentURLIndex];this.state="connecting",this.createTransmitterConnection(y).then(C).catch(m),this.once(Ms.CLOSED,()=>m(new ze(fe.WS_DISCONNECT))),this.once(Ms.CONNECTED,()=>C())};return this._initMutex.lock().then(C=>new Ft((m,y)=>{g(m,y)}).then(()=>{C()}).catch(()=>{C()}))}async sendMessage(A){let l=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this._transmitter||!this._reliableTransmission)throw new ze(fe.WS_ABORT,"datachannel is not ready");try{l||(A=JSON.stringify(A));let g=this._textEncoder.encode(A),C=Gq(g,{raw:!0});this._reliableTransmission.sendMessage(C)}catch(g){throw new ze(fe.WS_ERR,"send datachannel signal message error"+g.toString())}}unbindDcCloseEventListener(){this._transmitter&&(this._transmitter.onclose=null)}sendMessageWithJSON(A){let l=JSON.stringify(A);return{compressed:l,compressedLength:l.length,origin:A}}sendMessageWithUint8Array(A){return{compressed:A,compressedLength:A.byteLength,origin:A}}createTransmitterConnection(A){return this.connectionID+=1,this._joinChannelServiceRecordIndex=void 0,this._url="dc://".concat(A.ip,":").concat(A.port),new Ft((l,g)=>{var C;let m=()=>{X.debug("[".concat(this._name,"] datachannel opened:"),this._url),this.reconnectMode="recover",this.state="connected",this.resetReconnectCount("opened"),l()},y=async k=>{var V;if((V=this._closeEstablishingTransmitter)===null||V===void 0||V.call(this),X.debug("[".concat(this._name,"] datachannel close ").concat(this._url,", code: ").concat(k.code,", reason: ").concat(k.reason,", current mode: ").concat(this.reconnectMode)),this._reconnectCount{try{var V;(V=this._reliableTransmission)===null||V===void 0||V.onData(k.data)}catch(K){console.log(K)}};this._transmitter&&(this._transmitter.onclose=null,this._transmitter.close()),this._reliableTransmission&&(this._reliableTransmission.close(),this._reliableTransmission=void 0),X.debug("[".concat(this._name,"] start connect, address: ").concat(JSON.stringify(A)));let b=(C=this._store)===null||C===void 0?void 0:C.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"}),M=Date.now();rs(this,Ms.TO_CONNECT_DATACHANNEL).then(k=>{var V,K;if(!k)throw new Error("transmissonInfo not exist yet");let{transmitter:q,close:ce}=k;this._transmitter=q,(V=this._store)===null||V===void 0||V.signalChannelOpen();let oe=Date.now()-M;X.debug("[choose dc] dc open cost ".concat(oe,"ms")),this._reliableTransmission=new EW(le=>{var pe;this._transmitter&&this._transmitter.readyState==="open"&&((pe=this._transmitter)===null||pe===void 0||pe.send(le))},le=>{if(typeof le=="string")this.emit(Ms.ON_MESSAGE,le);else{let pe=up(le,{raw:!0}).buffer,Se=this._textDecoder.decode(pe);this.emit(Ms.ON_MESSAGE,Se)}}),this._closeEstablishingTransmitter=()=>{var le;(le=this._reliableTransmission)===null||le===void 0||le.close(),this._reliableTransmission=void 0,ce()},m&&m(),q.onclose=y,q.onmessage=w,(K=this._store)===null||K===void 0||K.recordJoinChannelService({endTs:Date.now(),status:"success"},b),this._joinChannelServiceRecordIndex=b}).catch(k=>{var V;if((V=this._store)===null||V===void 0||V.recordJoinChannelService({endTs:Date.now(),status:k instanceof ze&&k.code===fe.WS_ABORT?"aborted":"error",errors:[k]},b),this.state!=="closed"){if(k instanceof ze&&k.code===fe.WS_ERR){let K=new ze(fe.WS_ERR,"init datachannel failed! Error: ".concat(k.toString()));return X.error("[".concat(this._name,"]").concat(K)),void g(K)}y&&y(k)}else g(new ze(fe.WS_DISCONNECT,"datachannel is closed: ".concat(k.toString())))})})}async reconnectWithAction(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._reconnectCount>=this._retryConfig.maxRetryCount||!this._addresses||this.state==="closed")return!1;this._onlineReconnectListener||Xi.networkState!==Va.OFFLINE||(this._onlineReconnectListener=Xi.onlineWaiter&&Xi.onlineWaiter.then(()=>{this._onlineReconnectListener=void 0}));let g=!0;if(this._reconnectInterrupter=()=>{g=!1},l){let w=Y1(this._reconnectCount,this._retryConfig);X.debug("[".concat(this._name,"] wait ").concat(w,"ms to reconnect datachannel, mode: ").concat(A)),await Ft.race([Ks(w),this._onlineReconnectListener||new Ft(()=>{})])}if(this.state==="closed"||!g)return!1;this._reconnectCount+=1;let C=async(w,b)=>{this.emit(Ms.RECONNECT_CREATE_CONNECTION,b),await this.createTransmitterConnection(w)};try{if(A==="retry"){let w=this._addresses[this.currentURLIndex];await C(w,A)}else if(A==="tryNext"){this.currentURLIndex+=1;for(let b=this.currentURLIndex;b=this._addresses.length)return X.debug("[".concat(this._name,"] the available addresses are exhausted, change to recover")),await this.reconnectWithAction("recover",!1);X.debug("[".concat(this._name,"] datachannel url length: ").concat(this._addresses.length," current index: ").concat(this.currentURLIndex));let w=this._addresses[this.currentURLIndex];await C(w,A)}else A==="recover"&&(X.debug("[".concat(this._name,"] start to failback to websocket")),this.resetReconnectCount("recover mode"),this.emit(Ms.FAILBACK));return!0}catch(w){var m,y;return X.error("[".concat(this._name,"] reconnect failed"),w.toString()),w!=null&&(m=w.data)!==null&&m!==void 0&&m.desc&&Array.isArray(w.data.desc)&&w.data.desc.length&&Rt(y=w.data.desc).call(y,"dynamic key expired")?(this.emit(Ms.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1):await this.reconnectWithAction(A,l)}}}class hW extends io{get connectionState(){return this._connectionState}set connectionState(A){A!==this._connectionState&&(this._connectionState=A,A===vi.CONNECTED?this.emit(or.WS_CONNECTED):A===vi.RECONNECTING?this.emit(or.WS_RECONNECTING,this._websocketReconnectReason):A===vi.CLOSED&&this.emit(or.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket?this.websocket.url:null}get rtt(){return this.rttRolling.mean()}processPendingNotifications(){this.pendingNotifications.length!==0&&(X.debug("[".concat(this.clientId,"] processing ").concat(this.pendingNotifications.length," pending notifications")),this.pendingNotifications.forEach(A=>{let{type:l,message:g}=A;this.emit(l,g),l===Or.ON_NOTIFICATION&&this.handleNotification(g),l===Or.ON_USER_BANNED&&this.handleUserBanned(g)}),this.pendingNotifications=[])}handleUserBanned(A){switch(A.error_code){case 14:this.close(bi.UID_BANNED);break;case 15:this.close(bi.IP_BANNED);break;case 16:this.close(bi.CHANNEL_BANNED)}}constructor(A,l){super(),Ae(this,"__name__","DataChannelSignal"),Ae(this,"_disconnectedReason",void 0),Ae(this,"_websocketReconnectReason",void 0),Ae(this,"_connectionState",vi.CLOSED),Ae(this,"reconnectToken",void 0),Ae(this,"websocket",void 0),Ae(this,"openConnectionTime",void 0),Ae(this,"clientId",void 0),Ae(this,"lastMsgTime",Date.now()),Ae(this,"uploadCache",[]),Ae(this,"uploadCacheInterval",void 0),Ae(this,"rttRolling",new OR(5)),Ae(this,"pingpongTimer",void 0),Ae(this,"inflateDataTimer",void 0),Ae(this,"pingpongTimeoutCount",0),Ae(this,"ortc",void 0),Ae(this,"joinResponse",void 0),Ae(this,"multiIpOption",void 0),Ae(this,"initError",void 0),Ae(this,"spec",void 0),Ae(this,"store",void 0),Ae(this,"isJoining",!1),Ae(this,"pendingNotifications",[]),Ae(this,"onWebsocketMessage",g=>{if(g instanceof ArrayBuffer)return void this.emit(or.ON_BINARY_DATA,g);let C=JSON.parse(g);if(Ie("DC_DEBUG_LOG")&&X.debug("[datachannel-signal] received packet",C),this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(C,"_id")){let m="res-@".concat(C._id);this.emit(m,C._result,C._message)}else Object.prototype.hasOwnProperty.call(C,"_type")&&(this.isJoining?C._type===Or.ON_NOTIFICATION||C._type===Or.ON_USER_BANNED?(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED&&this.handleUserBanned(C._message)):(this.pendingNotifications.push({type:C._type,message:C._message}),X.debug("[".concat(this.clientId,"] cached notification during join: ").concat(C._type))):(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED&&this.handleUserBanned(C._message)))}),this.clientId=A.clientId,this.spec=A,this.store=l,this.websocket=new qx("gateway-".concat(this.clientId),this.spec.retryConfig,!0,l),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===vi.CONNECTED&&this.reconnect("retry",Ou.OFFLINE)})}async request(A,l,g,C){let m=yn(6,""),y={_id:m,_type:A,_message:l},w=this.websocket.connectionID,b=()=>new Ft((ce,oe)=>{if(this.connectionState===vi.CONNECTED)return ce();let le=()=>{this.off(or.WS_CLOSED,pe),ce()},pe=()=>{this.off(or.WS_CONNECTED,le),oe(new ze(fe.WS_ABORT))};this.once(or.WS_CONNECTED,le),this.once(or.WS_CLOSED,pe),A!==sr.PUBLISH&&A!==sr.SUBSCRIBE&&A!==sr.UNSUBSCRIBE&&A!==sr.UNPUBLISH&&A!==sr.CONTROL&&A!==sr.RESTART_ICE||this.once(or.DISCONNECT_P2P,()=>{oe(new ze(fe.DISCONNECT_P2P))}),A!==sr.PUBLISH&&A!==sr.RESTART_ICE||this.once(or.ABORT_P2P_EXECUTION,()=>{oe(new ze(fe.DISCONNECT_P2P))})});if(this.connectionState!==vi.CONNECTING&&this.connectionState!==vi.RECONNECTING||A===sr.JOIN||A===sr.REJOIN||await b(),A===sr.LEAVE&&(this.websocket.unbindDcCloseEventListener(),C=!0),Ie("DC_DEBUG_LOG")&&X.debug("[datachannel-signal] sendMessage",y),await this.websocket.sendMessage(y,!0,!1),C)return;let M=new Ft((ce,oe)=>{let le=!1,pe=(be,Ue)=>{le=!0,ce({isSuccess:be==="success",message:Ue||{}}),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.emit(or.REQUEST_SUCCESS,A,l)};this.once("res-@".concat(m),pe);let Se=()=>{oe(new ze(fe.WS_ABORT,"type: ".concat(A))),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.off("res-@".concat(m),pe)};this.once(or.WS_CLOSED,Se),this.once(or.WS_RECONNECTING,Se),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||le||(X.warning("dc request timeout, type: ".concat(A)),this.emit(or.REQUEST_TIMEOUT,A,l))})}),k=null;try{k=await M}catch(ce){if(this.connectionState===vi.CLOSED||A===sr.LEAVE)throw new ze(fe.WS_ABORT);return!this.spec.forceWaitGatewayResponse||g?ce.throw():A===sr.JOIN||A===sr.REJOIN?null:(await b(),await this.request(A,l))}if(k.isSuccess)return k.message;let V=Number(k.message.error_code||k.message.code),K=O2(V),q=new ze(fe.UNEXPECTED_RESPONSE,"".concat(K.desc,": ").concat(k.message.error_str),{code:V,data:k.message});return K.action==="success"?k.message:(X.warning("[".concat(this.websocket.connectionID,"] unexpected response from type ").concat(A,", error_code: ").concat(V,", message: ").concat(K.desc,", action: ").concat(K.action)),V===mr.ERR_TOO_MANY_BROADCASTERS?((A===sr.JOIN||A===sr.REJOIN)&&(this.initError=q,this.close()),q.throw()):K.action==="failed"?q.throw():K.action==="quit"?(this.initError=q,this.close(),q.throw()):(V===mr.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=k.message.option,X.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Ou.MULTI_IP)):this.reconnect(K.action,Ou.SERVER_ERROR),A===sr.JOIN||A===sr.REJOIN?null:await this.request(A,l)))}waitMessage(A,l){return new Ft(g=>{let C=m=>{(!l||l(m))&&(this.off(A,C),g(m))};this.on(A,C)})}uploadWRTCStats(A){if(!this.store.sessionId)return void X.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let l={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:A};this.upload(pn.WRTC_STATS,l)}upload(A,l){let g={_type:A,_message:l};try{this.websocket.sendMessage(g)}catch{let C=Ie("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(g),this.uploadCache.length>C&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==vi.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},Ie("UPLOAD_CACHE_INTERVAL")||2e3))}}async send(A,l){let g={_type:A,_message:l};await this.websocket.sendMessage(g)}init(A){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ft((l,g)=>{this.once(or.WS_CONNECTED,()=>l(this.joinResponse)),this.once(or.WS_CLOSED,()=>g(this.initError||new ze(fe.WS_ABORT))),this.connectionState=vi.CONNECTING,this.websocket.init(A).catch(g),this.websocket.once(Ms.FAILBACK,()=>{g(new ze(fe.INIT_DATACHANNEL_TIMEOUT))}),this.inflateDataTimer&&window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=window.setInterval(()=>{this.handleInflateData()},2e4),setTimeout(()=>{this.openConnectionTime===void 0&&(X.debug("[".concat(this.clientId,"] init datachannel timeout while join with failback to websocket")),g(new ze(fe.INIT_DATACHANNEL_TIMEOUT)))},Ie("DC_JOIN_WITH_FAILBACK"))})}close(A){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.inflateDataTimer&&(this.handleInflateData(),window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this.isJoining=!1,this.pendingNotifications=[],this._disconnectedReason=A||bi.LEAVE,this.connectionState=vi.CLOSED,X.debug("[".concat(this.clientId,"] ")+"will close datachannel in signal"),this.websocket.close(),A===bi.FALLBACK&&(this.websocket.removeAllListeners(),this.websocket=new qx("gateway-".concat(this.clientId),this.spec.retryConfig,!0,this.store),this.handleWebsocketEvents())}async join(){if(this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),Ie("DC_PINGPONG_INTERVAL")),!this.joinResponse){this.emit(or.ABORT_P2P_EXECUTION),this.store.signalConnected();let A=await rs(this,or.REQUEST_JOIN_INFO);this.store.joinReq(),this.isJoining=!0,this.pendingNotifications=[];let l=await this.request(sr.JOIN,A);if(this.store.joinRep(),this.ortc=A==null?void 0:A.ortc,!l)return this.emit(or.REPORT_JOIN_GATEWAY,fe.TIMEOUT,this.url||""),!1;this.joinResponse=l,this.emit(or.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=vi.CONNECTED,this.isJoining=!1,this.processPendingNotifications(),!0}async rejoin(){if(!this.reconnectToken)throw new ze(fe.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");let A=o2(this,or.REQUEST_REJOIN_INFO);A.token=this.reconnectToken;let l=await this.request(sr.REJOIN,A);return!!l&&(this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),Ie("DC_PINGPONG_INTERVAL")),l.peers&&l.peers.forEach(g=>{this.emit(Or.ON_USER_ONLINE,{uid:g.uid}),g.audio&&this.emit(Or.ON_ADD_AUDIO_STREAM,{uid:g.uid,uint_id:g.uint_id,audio:!0,ssrcId:g.audio_ssrc}),g.video&&this.emit(Or.ON_ADD_VIDEO_STREAM,{uid:g.uid,uint_id:g.uint_id,video:!0,ssrcId:g.video_ssrc}),g.audio_mute?this.emit(Or.MUTE_AUDIO,{uid:g.uid}):this.emit(Or.UNMUTE_AUDIO,{uid:g.uid}),g.video_mute?this.emit(Or.MUTE_VIDEO,{uid:g.uid}):this.emit(Or.UNMUTE_VIDEO,{uid:g.uid}),g.audio_enable_local?this.emit(Or.ENABLE_LOCAL_AUDIO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_AUDIO,{uid:g.uid}),g.video_enable_local?this.emit(Or.ENABLE_LOCAL_VIDEO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_VIDEO,{uid:g.uid}),g.audio||g.video||this.emit(Or.ON_REMOVE_STREAM,{uid:g.uid,uint_id:g.uint_id})}),!0)}reconnect(A,l){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(A,l)}async downgradeCodec(A){if(!this.ortc)return!1;let l={downgrade_codec:A,ortc:this.ortc};return!!await this.request(sr.DOWNGRADE_CODEC,l)}handleNotification(A){X.debug("[".concat(this.clientId,"] receive notification: "),A);let l=O2(A.code);if(l.action!=="success"){if(l.action!=="failed")return l.action==="quit"?(l.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(bi.UID_BANNED),void this.close()):void this.reconnect(l.action,Ou.SERVER_ERROR);X.error("[".concat(this.clientId,"] ignore error: "),l.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1,Ie("DC_DEBUG_LOG")&&console.debug("[datachannel-signal] pingpongTimeoutCount: ".concat(this.pingpongTimeoutCount));let A=Ie("PING_PONG_TIME_OUT"),l=Date.now();this.pingpongTimeoutCount>=A&&(X.warning("[datachannel-signal] PINGPONG Timeout. Last Socket Message: ".concat(l-this.lastMsgTime,"ms")),l-this.lastMsgTime>Ie("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("recover",Ou.FALLBACK):this.request(sr.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let g=Date.now()-l;this.rttRolling.add(g),Ie("REPORT_STATS")&&this.send(sr.PING_BACK,{pingpongElapse:g})}).catch(g=>{})}handleInflateData(){let{inflateLength:A,deflateLength:l}=this.websocket.getInflateData();A!==0&&l!==0&&this.upload(pn.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:l,ws_inflate_length:A})}handleWebsocketEvents(){this.websocket.on(Ms.RECONNECT_CREATE_CONNECTION,A=>{this.emit(or.WS_RECONNECT_CREATE_CONNECTION,A)}),this.websocket.on(Ms.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(Ms.CLOSED,()=>{this.connectionState=vi.CLOSED}),this.websocket.on(Ms.FAILED,()=>{this._disconnectedReason=bi.NETWORK_ERROR,this.connectionState=vi.CLOSED}),this.websocket.on(Ms.RECONNECTING,A=>{this._websocketReconnectReason=A,this.joinResponse=void 0,this.connectionState===vi.CONNECTED?this.connectionState=vi.RECONNECTING:this.connectionState=vi.CONNECTING}),this.websocket.on(Ms.WILL_RECONNECT,(A,l)=>{if(o2(this,or.IS_P2P_DISCONNECTED)&&A==="retry")return X.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),this.reconnectToken=void 0,this.emit(or.NEED_RENEW_SESSION),this.emit(or.DISCONNECT_P2P),l("tryNext");A!=="retry"&&(X.debug("".concat(this.clientId," websockt will_connect event, renewSession reconnectMode is ").concat(A)),this.reconnectToken=void 0,this.emit(or.NEED_RENEW_SESSION),this.emit(or.DISCONNECT_P2P)),l(A)}),this.websocket.on(Ms.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(A=>{X.warning("[".concat(this.clientId,"] rejoin failed ").concat(A)),this.reconnect("tryNext",Ou.SERVER_ERROR)}):this.join().catch(A=>{if(this.emit(or.REPORT_JOIN_GATEWAY,A.message||A.code,this.url||""),A instanceof ze&&A.code===fe.UNEXPECTED_RESPONSE&&A.data.code===mr.ERR_NO_AUTHORIZED)return X.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",Ou.SERVER_ERROR);X.error("[".concat(this.clientId,"] join gateway request failed"),A.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Ou.SERVER_ERROR):(this.initError=A,this.close())})}),this.websocket.on(Ms.REQUEST_NEW_URLS,(A,l)=>{rs(this,or.REQUEST_RECOVER,this.multiIpOption).then(A).catch(l)}),this.websocket.on(Ms.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(Ms.TO_CONNECT_DATACHANNEL,(A,l)=>{rs(this,or.PRE_CONNECT_PC).then(A).catch(l)}),this.websocket.on(Ms.FAILBACK,()=>{this.openConnectionTime!==void 0&&this.emit(or.DATACHANNEL_FAILBACK)})}}let IW={name:"DataChannelConnection",create:function(a){let{store:A,spec:l}=a;return new uW(l,A)}},Wx={name:"DataChannelSignal",create:function(a){let{store:A,spec:l}=a;return new hW(l,A)}};Of(),Mn("PROCESS_ID","process-".concat(yn(8,""),"-").concat(yn(4,""),"-").concat(yn(4,""),"-").concat(yn(4,""),"-").concat(yn(12,""))),function(){let a;try{a=window.localStorage.getItem("websdk_ng_global_parameter")}catch(A){return void X.error("Error loading sdk config",A.message)}if(a)try{let A=JSON.parse(window.atob(a)),l=Date.now();X.debug("Loading global parameters from cache",A),Object.keys(A).forEach(g=>{if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:C,expires:m}=A[g];if(m&&m<=l)return;Vr[g]=C,zi[g]=C}})}catch(A){X.error("Error loading mutableParamsCache: ".concat(a),A.message)}}(),Array.isArray(Vr.AREAS)&&Vr.AREAS.length>0&&mh(Vr.AREAS,!0);let ZO=(a,A,l)=>{X.debug("setParameter key:".concat(a,", value:").concat(JSON.stringify(A))),Mn(a,A,l)};MA(PO,!1),MA(Yq,!1),MA(aQ,!1),MA(Zq,!1),MA(yx,!1),MA(Yx,!1),MA(Ip,!1),MA(lW,!1),MA(IW,!1),MA(Wx,!1);let Ts=function(a){let A=new io,l=a,g={getListeners:A.getListeners.bind(A),on:(C,m)=>(function(y,w){y===nc.SECURITY_POLICY_VIOLATION&&EQ(w,!0)}(C,m),A.on.bind(A)(C,m)),addListener:A.addListener.bind(A),once:A.once.bind(A),off:A.off.bind(A),removeAllListeners:A.removeAllListeners.bind(A),emit:A.emit.bind(A),safeEmit:A.safeEmit.bind(A)};return K7(K7({},l),g)}({__TRACK_LIST__:ah,VERSION:Cn,BUILD:o4,ESM_BUNDLER:!1,ESM:!1,UMD:!0,DEV:!1,setParameter:ZO,getParameter:Ie,getSupportedCodec:async function(){let a={audio:[],video:[]};try{let A=new RTCPeerConnection,l=await async function(g){let C;return Bi().supportUnifiedPlan?(g.addTransceiver("video",{direction:"recvonly"}),g.addTransceiver("audio",{direction:"recvonly"}),C=(await g.createOffer()).sdp):C=(await g.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0})).sdp,C}(A);if(!l)return a;A.close(),A=null,a=function(g){let C={video:[],audio:[]};return g.match(/ VP8/i)&&C.video.push("VP8"),g.match(/ VP9/i)&&C.video.push("VP9"),g.match(/ AV1/i)&&C.video.push("AV1"),g.match(/ H264/i)&&C.video.push("H264"),g.match(/ H265/i)&&C.video.push("H265"),g.match(/ opus/i)&&C.audio.push("OPUS"),g.match(/ PCMU/i)&&C.audio.push("PCMU"),g.match(/ PCMA/i)&&C.audio.push("PCMA"),g.match(/ G722/i)&&C.audio.push("G722"),C}(l)}catch(A){throw new ze(fe.CREATE_OFFER_FAILED,A.toString&&A.toString()).print()}return a},checkSystemRequirements:function(){let a=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],A=tr.reportApiInvoke(null,{name:Co.CHECK_SYSTEM_REQUIREMENTS,options:[],tag:Gn.TRACER}),l=function(){let m=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],y=!1;try{let w=window.RTCPeerConnection,b=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,M=window.WebSocket;y=!(!w||!M),m&&!b&&(y=!1),y&&Ld()&&YP(75)&&new w().close()}catch(w){X.error("check system requirement failed: ",w),y=!1}return y}(a),g=sO();X.debug("checkSystemRequirements, api:",l,"browser",g);let C=l&&g;return A.onSuccess(C),Ie("IGNORE_RTC_DEVICE_CHECK")?l:C},getDevices:function(a){return p1.enumerateDevices(!0,!0,a)},getMicrophones:function(a){return p1.getRecordingDevices(a)},getCameras:function(a){return p1.getCamerasDevices(a)},getElectronScreenSources:aU,getPlaybackDevices:function(a){return p1.getSpeakers(a)},createClient:oO,createCameraVideoTrack:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=Ie("CAMERA_CAPTURE_CONFIG"),l=yn(8,"track-cam-"),g=tr.reportApiInvoke(null,{id:l,tag:Gn.TRACER,name:Co.CREATE_CAM_VIDEO_TRACK,options:[Qn({},a),A]});A&&(a.encoderConfig=A);let C=WR(a),m=null;X.info("start create camera video track with config",JSON.stringify(a),"trackId",l);try{m=(await z1({video:C},l)).getVideoTracks()[0]||null}catch(w){throw g.onError(w),w}if(!m){let w=new nt(fe.UNEXPECTED_ERROR,"can not find track in media stream");return g.onError(w),w.throw(X)}if(a.optimizationMode&&Eh(l,m,a,ya(a.encoderConfig)),Ie("USE_STANDARD_BITRATE_DEFAULT")){let w=ya(a.encoderConfig);a.encoderConfig=w,delete w.bitrateMax,delete w.bitrateMin}let y=new uy(m,a,C,a.scalabiltyMode?kf(a.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},a.optimizationMode,l);return g.onSuccess(y.getTrackId()),X.info("create camera video success, trackId:",l),y},createCustomVideoTrack:function(a){let A=yn(8,"track-cus-"),l=tr.reportApiInvoke(null,{id:A,tag:Gn.TRACER,name:Co.CREATE_CUSTOM_VIDEO_TRACK,options:[a]});Ie("USE_STANDARD_BITRATE_DEFAULT")&&(delete a.bitrateMax,delete a.bitrateMin);let g=new Pi(a.mediaStreamTrack,{width:a.width,height:a.height,frameRate:a.frameRate,bitrateMax:a.bitrateMax,bitrateMin:a.bitrateMin},a.scalabiltyMode?kf(a.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},a.optimizationMode,A,[$i.CUSTOM_TRACK]);return l.onSuccess(g.getTrackId()),X.info("create custom video track success with config",a,"trackId",g.getTrackId()),g},createScreenVideoTrack:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"disable",l=typeof A=="object"?function(K){let q=ul(K);return Mf()&&K.suppressLocalAudioPlayback&&(q.suppressLocalAudioPlayback=K.suppressLocalAudioPlayback),VR()&&K.restrictOwnAudio&&(q.restrictOwnAudio=!0),q}(A):void 0;l&&(A="auto");let g=yn(8,"track-scr-v-"),C=tr.reportApiInvoke(null,{id:g,tag:Gn.TRACER,name:Co.CREATE_SCREEN_VIDEO_TRACK,options:[Qn({},a),A]});a.encoderConfig?typeof a.encoderConfig=="string"||a.encoderConfig.width&&a.encoderConfig.height||(a.encoderConfig.width={max:1920},a.encoderConfig.height={max:1080}):a.encoderConfig="1080p_2";let m=function(K){let q={};K.screenSourceType&&(q.mediaSource=K.screenSourceType),K.extensionId&&Tg()&&(q.extensionId=K.extensionId);let{displaySurface:ce,selfBrowserSurface:oe,surfaceSwitching:le,systemAudio:pe,preferCurrentTab:Se,windowAudio:be,monitorTypeSurfaces:Ue}=K;(Nd(107)||ol(107)||ZE(93))&&(ce&&(zo(ce,"displaySurface",["browser","window","monitor"]),q.displaySurface=ce),oe?(zo(oe,"selfBrowserSurface",["exclude","include"]),q.selfBrowserSurface=oe):q.selfBrowserSurface="include",le&&(zo(le,"surfaceSwitching",["exclude","include"]),q.surfaceSwitching=le)),(Nd(105)||ol(105)||ZE(91))&&pe&&(zo(pe,"systemAudio",["exclude","include"]),q.systemAudio=pe),(Nd(94)||ol(94)||ZE(80))&&Se&&(q.preferCurrentTab=!0),(Nd(141)||ol(141)||ZE(125))&&be&&(zo(be,"windowAudio",["exclude","system"]),q.windowAudio=be),(Nd(119)||ol(119)||ZE(105))&&Ue&&(zo(Ue,"monitorTypeSurfaces",["exclude","include"]),q.monitorTypeSurfaces=Ue),K.electronScreenSourceId&&(q.sourceId=K.electronScreenSourceId);let xe=K.encoderConfig?h2(K.encoderConfig):null;return q.mandatory={chromeMediaSource:"desktop",maxWidth:xe?xe.width:void 0,maxHeight:xe?xe.height:void 0},xe&&(xe.frameRate&&(typeof xe.frameRate=="number"?(q.mandatory.maxFrameRate=xe.frameRate,q.mandatory.minFrameRate=xe.frameRate):(q.mandatory.maxFrameRate=xe.frameRate.max||xe.frameRate.ideal||xe.frameRate.exact||void 0,q.mandatory.minFrameRate=xe.frameRate.min||xe.frameRate.ideal||xe.frameRate.exact||void 0),q.frameRate=xe.frameRate),xe.width&&(q.width=xe.width),xe.height&&(q.height=xe.height)),q}(a),y=null,w=null,b=Bi();if(!b.supportShareAudio&&A==="enable"){let K=new nt(fe.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return C.onError(K),K.throw(X)}X.info("start create screen video track with config",a,"withAudio",A,"trackId",g);let M=b.supportShareAudio&&A!=="disable";try{let K=await z1({screen:m,screenAudio:M?l||!0:void 0},g);y=K.getVideoTracks()[0]||null,w=K.getAudioTracks()[0]||null}catch(K){throw C.onError(K),K}if(!y){let K=new nt(fe.UNEXPECTED_ERROR,"can not find track in media stream");return C.onError(K),K.throw(X)}if(!w&&A==="enable"){y&&y.stop();let K=new nt(fe.SHARE_AUDIO_NOT_ALLOWED);return C.onError(K),K.throw(X)}a.optimizationMode||(a.optimizationMode="detail"),a.optimizationMode&&(Eh(g,y,a,a.encoderConfig&&h2(a.encoderConfig)||void 0),a.encoderConfig&&typeof a.encoderConfig!="string"&&(a.encoderConfig.bitrateMin=a.encoderConfig.bitrateMax));let k=new Pi(y,a.encoderConfig?h2(a.encoderConfig):{},a.scalabiltyMode?kf(a.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},a.optimizationMode,g,[$i.SCREEN_TRACK]);if(!w)return C.onSuccess(k.getTrackId()),X.info("create screen video track success","video:",k.getTrackId()),k;let V=new xt(w,void 0,yn(8,"track-scr-a-"),!1);return C.onSuccess([k.getTrackId(),V.getTrackId()]),X.info("create screen video track success","video:",k.getTrackId(),"audio:",V.getTrackId()),[k,V]},createMicrophoneAndCameraTracks:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=Ie("CAMERA_CAPTURE_CONFIG"),g=yn(8,"track-mic-"),C=yn(8,"track-cam-"),m=tr.reportApiInvoke(null,{id:"".concat(g,"-").concat(C),tag:Gn.TRACER,name:Co.CREATE_MIC_AND_CAM_TRACKS,options:[a,A,l]});l&&(A.encoderConfig=l);let y=WR(A),w=Uf(a),b=null,M=null;X.info("start create camera video track(".concat(C,") and microphone audio track(").concat(g,") with config, audio: ").concat(JSON.stringify(a),", video: ").concat(JSON.stringify(A)));try{let K=await z1({audio:w,video:y},"".concat(g,"-").concat(C));b=K.getAudioTracks()[0],M=K.getVideoTracks()[0]}catch(K){throw m.onError(K),K}if(!b||!M){let K=new nt(fe.UNEXPECTED_ERROR,"can not find tracks in media stream");return m.onError(K),K.throw(X)}if(A.optimizationMode&&Eh(C,M,A,ya(A.encoderConfig)),Ie("USE_STANDARD_BITRATE_DEFAULT")){let K=ya(A.encoderConfig);A.encoderConfig=K,delete K.bitrateMax,delete K.bitrateMin}let k=new gn(b,a,w,g),V=new uy(M,A,y,A.scalabiltyMode?kf(A.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},A.optimizationMode,C);return m.onSuccess([k.getTrackId(),V.getTrackId()]),X.info("create camera video track(".concat(C,") and microphone audio track(").concat(g,") success")),[k,V]},createMicrophoneAudioTrack:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=yn(8,"track-mic-"),l=tr.reportApiInvoke(null,{id:A,tag:Gn.TRACER,name:Co.CREATE_MIC_AUDIO_TRACK,options:[a]}),g=Uf(a),C=null;X.info("start create microphone audio track with config",JSON.stringify(a),"trackId",A);try{C=(await z1({audio:g},A)).getAudioTracks()[0]||null}catch(y){throw l.onError(y),y}if(!C){let y=new nt(fe.UNEXPECTED_ERROR,"can not find track in media stream");return l.onError(y),y.throw(X)}let m=new gn(C,a,g,A);return l.onSuccess(m.getTrackId()),X.info("create microphone audio track success, trackId:",A),m},createCustomAudioTrack:Yf,createBufferSourceAudioTrack:async function(a){var A;let{cacheOnlineFile:l,encoderConfig:g}=a,{source:C}=a,m={source:C instanceof AudioBuffer?"AudioBuffer":C instanceof File?(A=File.name)!==null&&A!==void 0?A:"File":C,cacheOnlineFile:l,encoderConfig:g},y=yn(8,"track-buf-"),w=tr.reportApiInvoke(null,{id:y,tag:Gn.TRACER,name:Co.CREATE_BUFFER_AUDIO_TRACK,options:[m]});if(Ie("DISABLE_WEBAUDIO"))throw new nt(fe.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");X.info("start create buffer source audio track with config",JSON.stringify(m),"trackId",y);let b=C;if(!(C instanceof AudioBuffer))try{C=await async function(V,K){let q=null;if(typeof V=="string"){let oe=dh.get(V);if(oe)return X.debug("use cached audio resource: ",V),oe;try{q=(await jl(()=>vA.get(V,{responseType:"arraybuffer"}),void 0,void 0,{maxRetryCount:3})).data}catch(le){throw new nt(fe.FETCH_AUDIO_FILE_FAILED,le.toString())}}else q=await new Ft((oe,le)=>{let pe=new FileReader;pe.onload=Se=>{Se.target?oe(Se.target.result):le(new nt(fe.READ_LOCAL_AUDIO_FILE_ERROR))},pe.onerror=()=>{le(new nt(fe.READ_LOCAL_AUDIO_FILE_ERROR))},pe.readAsArrayBuffer(V)});let ce=await function(oe){let le=wa();return new Ft((pe,Se)=>{le.decodeAudioData(oe,be=>{pe(be)},be=>{Se(new nt(fe.DECODE_AUDIO_FILE_FAILED,be.toString()))})})}(q);return typeof V=="string"&&K&&dh.set(V,ce),ce}(C,l)}catch(V){return w.onError(V),V.throw(X)}let M=new YJ(C),k=new xC(b,M,g?Pf(g):{},y);return X.info("create buffer source audio track success, trackId:",y),w.onSuccess(k.getTrackId()),k},setAppType:function(a){if(X.debug("setAppType: ".concat(a)),!(Number.isInteger(a)&&a>=0))throw X.debug("Invalid appType"),new ze(fe.INVALID_PARAMS,"invalid app type",a);Mn("APP_TYPE",Math.floor(a))},setLogLevel:function(a){X.setLogLevel(a)},enableLogUpload:function(){Ie("USE_NEW_LOG")?Mn("UPLOAD_LOG",!0):X.enableLogUpload()},disableLogUpload:function(){Ie("USE_NEW_LOG")?Mn("UPLOAD_LOG",!1):X.disableLogUpload()},createChannelMediaRelayConfiguration:function(){return new u_},checkAudioTrackIsActive:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,l=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.CHECK_AUDIO_TRACK_IS_ACTIVE,options:[A]});if(!(a instanceof xt||a instanceof Og)){let b=new ze(fe.INVALID_TRACK,"the parameter is not a audio track");return l.onError(b),b.throw()}A&&A<1e3&&(A=1e3);let g=a instanceof xt?a.getTrackLabel():"remote_track",C=a.getVolumeLevel(),m=C,y=C,w=Date.now();return new Ft(b=>{let M=setInterval(()=>{let k=a.getVolumeLevel();m=k>m?k:m,y=k1e-4,K=Date.now()-w;if(V||K>A){clearInterval(M);let q=V,ce={duration:K,deviceLabel:g,maxVolumeLevel:m,result:q};X.info("[track-".concat(a.getTrackId(),"] check audio track active completed. ").concat(JSON.stringify(ce))),l.onSuccess(ce),b(q)}},200)})},checkVideoTrackIsActive:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,l=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.CHECK_VIDEO_TRACK_IS_ACTIVE,options:[A]});if(!(a instanceof Pi||a instanceof D2)){let V=new ze(fe.INVALID_TRACK,"the parameter is not a video track");return l.onError(V),V.throw()}A&&A<1e3&&(A=1e3);let g=a instanceof Pi?a.getTrackLabel():"remote_track",C=a.getMediaStreamTrack(!0),m=document.createElement("video");m.style.width="1px",m.style.height="1px",m.setAttribute("muted",""),m.muted=!0,m.setAttribute("playsinline",""),m.controls=!1,($s()||DC())&&(m.style.opacity="0.01",m.style.position="fixed",m.style.left="0",m.style.top="0",document.body.appendChild(m)),m.srcObject=new MediaStream([C]),m.play();let y=document.createElement("canvas");y.width=160,y.height=120;let w=0,b=0;try{let V=Date.now();w=await function(K,q,ce,oe){let le,pe=0,Se=null;return new Ft((be,Ue)=>{function xe(){pe>oe&&le&&(le(),be(pe));let Le=ce.getContext("2d");if(!Le){let pt=new ze(fe.UNEXPECTED_ERROR,"can not get canvas 2d context.");return X.error(pt.toString()),void Ue(pt)}Le.drawImage(K,0,0,160,120);let je=Le.getImageData(0,0,ce.width,ce.height),dt=Math.floor(je.data.length/3);if(Se){for(let pt=0;pt{le&&(le(),be(pe))},q),le=h4(()=>{xe()},30)})}(m,A,y,4),b=Date.now()-V}catch(V){throw l.onError(V),V}m7===nn.SAFARI&&(m.pause(),m.remove()),m.srcObject=null;let M=w>4,k={duration:b,changedPicNum:w,deviceLabel:g,result:M};return X.info("[track-".concat(a.getTrackId(),"] check video track active completed. ").concat(JSON.stringify(k))),l.onSuccess(k),M},setArea:mh,audioElementPlayCenter:va,resumeAudioContext:function(){return va.autoResumeAfterInterruption(!0)},processExternalMediaAEC:function(a){dq.processExternalMediaAEC(a)},registerExtensions:function(a){let A=Ie("PLUGIN_INFO")||[];a.forEach(l=>{"name"in l&&!Rt(A).call(A,l.name)&&A.push(l.name);let g=l;g.__registered__=!0,g.logger.hookLog=X.extLog,g.reporter.hookApiInvoke=tr.extApiInvoke,g.parameters&&Object.keys(g.parameters).forEach(C=>{g.parameters[C]=Ie(C)})}),ZO("PLUGIN_INFO",A)},ChannelMediaRelayError:Fd,ChannelMediaRelayEvent:ls,ChannelMediaRelayState:$A,RemoteStreamFallbackType:Tc,RemoteStreamType:l4,ConnectionDisconnectedReason:bi,AudienceLatencyLevelType:XP,AREAS:fn,preload:async function(a,A,l,g){return ZC(a,A,l,g)},startLastmileProbeTest:async function(a,A,l,g){let C={state:"unavailable"};await ZC(a,A,l,g);let m=await tQ({appId:a,cname:A,token:l||a,uid:g,cloudProxyServer:"disabled"});if(!m)return C;await iI(m);let y,w=oO({mode:"rtc",codec:"vp8"});try{y=await w.join(a,A,l,g,{networkQualityProbe:!0})}catch{return C}let b=new nq,M=b.createMuteAudioTrack(),k=await Yf({mediaStreamTrack:M});await w.publish([k]);let[V,K,q]=await new Ft((be,Ue)=>{let xe=setTimeout(()=>{clearTimeout(xe),be([!0,null,"audio"])},5e3);w.on("user-published",async(Le,je)=>{Le.uid===y&&(clearTimeout(xe),be([!1,Le,je]))})});if(V||!K)return await w.unpublish([k]),await w.leave(),k.close(),b.close(),C;await w.subscribe(K,q),await new Ft((be,Ue)=>{let xe=setTimeout(()=>{clearTimeout(xe),be(null)},5e3)});let ce=w.getRTCStats(),oe=w.getLocalAudioStats(),le=ce.RTT,pe=oe.sendJitterMs,Se=oe.currentPacketLossRate;return C={state:"complete",rtt:le,packetLossRate:Se,jitter:pe,networkQuality:((be,Ue,xe)=>{let Le=1;if(xe>0){let gr=Math.log(100*xe)/Math.log(2)+1;gr=Math.min(5,Math.max(0,gr)),Le=1-gr/5}let je=1;if(be>0){let gr=Math.log(be/40)/Math.log(2)+1;gr=Math.min(5,Math.max(0,gr)),je=1-gr/5}let dt=1;if(Ue>0){let gr=Math.log(Ue/10)/Math.log(2.5)+1;gr=Math.min(5,Math.max(0,gr)),dt=1-gr/5}let pt=.5*Le+.3*je+.2*dt,zt=0;return zt=pt>=.8?1:pt>=.6?2:pt>=.4?3:pt>=.2?4:5,zt})(le,pe,Se)},await w.unsubscribe(K),await w.unpublish([k]),await w.leave(),k.close(),b.close(),await iI(m),C}});return Object.defineProperties(Ts,{onAudioAutoplayFailed:{get:()=>cA.onAudioAutoplayFailed,set:a=>{cA.onAudioAutoplayFailed=a}},onAutoplayFailed:{get:()=>cA.onAutoplayFailed,set:a=>{cA.onAutoplayFailed=a}},_onSecurityPolicyViolation:{value:void 0,writable:!0},_cspEventHandlerPointer:{value:void 0,writable:!0},onSecurityPolicyViolation:{get:()=>Ts._onSecurityPolicyViolation,set(a){Ts._onSecurityPolicyViolation=a,EQ(a)}},__CLIENT_LIST__:{get:()=>Ie("SHOW_GLOBAL_CLIENT_LIST")?ys:[]}}),p1.on(Ng.CAMERA_DEVICE_CHANGED,a=>{X.info("camera device changed",JSON.stringify(a)),Ts.onCameraChanged&&Ts.onCameraChanged(a),Ts.safeEmit(nc.CAMERA_CHANGED,a)}),p1.on(Ng.RECORDING_DEVICE_CHANGED,a=>{X.info("microphone device changed",JSON.stringify(a)),Ts.onMicrophoneChanged&&Ts.onMicrophoneChanged(a),Ts.safeEmit(nc.MICROPHONE_CHANGED,a)}),p1.on(Ng.PLAYOUT_DEVICE_CHANGED,a=>{X.debug("playout device changed",JSON.stringify(a)),Ts.onPlaybackDeviceChanged&&Ts.onPlaybackDeviceChanged(a),Ts.safeEmit(nc.PLAYBACK_DEVICE_CHANGED,a)}),va.onAutoplayFailed=()=>{X.info("detect audio element autoplay failed"),cA.onAudioAutoplayFailed&&cA.onAudioAutoplayFailed()},kn.on("autoplay-failed",()=>{X.info("detect webaudio autoplay failed"),cA.onAudioAutoplayFailed&&cA.onAudioAutoplayFailed(),Ts.safeEmit(nc.AUTOPLAY_FAILED)}),kn.on(Ys.STATE_CHANGE,(a,A)=>{X.info("audio context state changed: ".concat(A," => ").concat(a)),Ts.onAudioContextStateChanged&&Ts.onAudioContextStateChanged(a,A),Ts.safeEmit(nc.AUDIO_CONTEXT_STATE_CHANGED,a,A)}),Xi.on(Tu.NETWORK_STATE_CHANGE,(a,A)=>{X.info("[network-indicator] network state changed, ".concat(A," => ").concat(a))}),window&&(window.__ARTC__=Ts),Ts})}),Mr={};n8(Mr,{AgoraRTCProvider:()=>p8,AgoraRTCReactError:()=>Je,AgoraRTCScreenShareProvider:()=>g8,LocalAudioTrack:()=>TS,LocalUser:()=>uY,LocalVideoTrack:()=>RS,RemoteAudioTrack:()=>vS,RemoteUser:()=>fY,RemoteVideoTrack:()=>yS,TrackBoundary:()=>tY,VERSION:()=>SY,default:()=>TY,useAutoPlayAudioTrack:()=>pl,useAutoPlayVideoTrack:()=>hl,useClientEvent:()=>d8,useConnectionState:()=>v8,useCurrentUID:()=>w8,useIsConnected:()=>kr,useJoin:()=>N8,useLocalCameraTrack:()=>B8,useLocalMicrophoneTrack:()=>F8,useLocalScreenTrack:()=>J8,useNetworkQuality:()=>L8,usePublish:()=>M8,useRTCClient:()=>Sn,useRTCScreenShareClient:()=>S8,useRemoteAudioTracks:()=>G8,useRemoteUserTrack:()=>gp,useRemoteUsers:()=>X8,useRemoteVideoTracks:()=>H8,useTrackEvent:()=>l8,useVolumeLevel:()=>V8});var TL=oa(ss());function Xe(n,e,o){return n.on(e,o),()=>n.off(e,o)}function i8(n){try{return n()}catch(e){console.error(e)}}function Ii(n){return()=>n.forEach(i8)}function nL(n,e){let o=setInterval(n,e);return()=>clearInterval(o)}function as(n,e){let o=setTimeout(n,e);return()=>clearTimeout(o)}function Lc(){let n,e,o;function d(){if(e){let x=e;e=void 0,x()}}async function I(){if(o){let x=o;o=void 0;try{await x()}catch(F){console.error(F)}}}async function f(x){n=!0,await I();try{o=await x()}catch(F){console.error(F)}n=!1,d()}async function S(){n=!0,await I(),n=!1,d()}function v(x){n?e=()=>f(x):f(x)}function L(){n?e=S:S()}return{run:v,dispose:L}}var kc=typeof document<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function a8(n){return n!=null&&typeof n.then=="function"}function di(){let n=reactExports.useRef(!1);return reactExports.useEffect(()=>(n.current=!1,()=>{n.current=!0}),[]),n}function c8(){let n=di();function e(o,d){return new Promise(async(I,f)=>{try{let S=await o;n.current||I(S)}catch(S){n.current?d&&d(S):f(S)}})}return reactExports.useCallback(e,[n])}function fp(n){let e=c8(),[o,d]=reactExports.useState();return kc(()=>{a8(n)?e(n).then(d):d(n)},[n,e]),o}function Ai(n,e){let o=reactExports.useRef();reactExports.useEffect(()=>{let{run:d,dispose:I}=o.current||(o.current=Lc());return d(n),I},e)}function rL(n,e){let o=n.split("."),d=e.split("."),I=Math.max(o.length,d.length);for(let f=0;fv)return 1;if(S{d.current=o},[o]),reactExports.useEffect(()=>{if(n)return Xe(n,e,(...I)=>{d.current&&d.current(...I)})},[e,n])}function l8(n,e,o){let d=reactExports.useRef(o);kc(()=>{d.current=o},[o]),reactExports.useEffect(()=>{if(n)return Xe(n,e,(...I)=>{d.current&&d.current(...I)})},[e,n])}var aL=reactExports.createContext(null);function p8({client:n,children:e}){return jsxRuntimeExports.jsx(aL.Provider,{value:n,children:e})}function _8(n){let e=reactExports.useContext(aL);return n||e}function Sn(n){let e=_8(n);if(!e)throw new Error("Agora RTC client not found. Should be wrapped in ");return e}var cL=reactExports.createContext(null);function g8({client:n,children:e}){return jsxRuntimeExports.jsx(cL.Provider,{value:n,children:e})}function S8(n){let e=reactExports.useContext(cL);return n||e}function v8(n){let e=Sn(n),[o,d]=reactExports.useState(e?e.connectionState:"DISCONNECTED");return reactExports.useEffect(()=>{if(e){d(e.connectionState);let I;return Ii([Xe(e,"connection-state-change",f=>{I==null||I(),f==="CONNECTED"?I=as(()=>d(f),0):d(f)}),()=>I==null?void 0:I()])}else d("DISCONNECTED")},[e]),o}function kr(n){let e=Sn(n),[o,d]=reactExports.useState(e?e.connectionState==="CONNECTED":!1);return reactExports.useEffect(()=>{if(e){d(e.connectionState==="CONNECTED");let I;return Ii([Xe(e,"connection-state-change",f=>{I==null||I(),I=as(()=>d(f==="CONNECTED"),0)}),()=>I==null?void 0:I()])}else d(!1)},[e]),o}function w8(n){let e=Sn(n),[o,d]=reactExports.useState(e==null?void 0:e.uid);return reactExports.useEffect(()=>{if(e)return Xe(e,"connection-state-change",I=>{if(I==="CONNECTED")return as(()=>d(e.uid),0);I==="DISCONNECTED"&&d(void 0)})},[e]),o}var Je=class extends Error{constructor(e,o){var n=(...Tde)=>(super(...Tde),T9(this,"rtcMethod"),T9(this,"rtcError"),T9(this,"name","AgoraRTCReactException"),this);n(typeof o=="string"?o:o.message),this.rtcMethod=e,this.rtcError=o}log(e){console[e](this)}};function N8(n,e=!0,o){let d=Sn(o),I=kr(o),f=reactExports.useRef(),[S,v]=reactExports.useState(!1),[L,x]=reactExports.useState(0),[F,Y]=reactExports.useState(null),j=di();return Ai(async()=>{if(j.current||(Y(null),x(0),v(!1)),e&&d){try{j.current||v(!0);let{appid:re,channel:ee,token:he,uid:ue}=typeof n=="function"?await n():n,Ee=await d.join(re,ee,he,ue);j.current||x(Ee)}catch(re){console.error(re),j.current||Y(new Je("IAgoraRTCClient.join",re))}j.current||v(!1);let W=f.current||(f.current=Lc());return Ii([()=>{W.dispose()},()=>{W.run(()=>d.unpublish(d.localTracks))},()=>{for(let re of d.localTracks)re.isPlaying&&re.stop(),re.close();W.run(()=>d.leave())}])}},[e,o]),{data:L,isLoading:S,isConnected:I,error:F}}var dL=()=>({uplinkNetworkQuality:0,downlinkNetworkQuality:0,delay:0});function L8(n){let e=Sn(n),[o,d]=reactExports.useState(dL);return reactExports.useEffect(()=>{if(e)return Xe(e,"network-quality",I=>d({uplinkNetworkQuality:I.uplinkNetworkQuality,downlinkNetworkQuality:I.downlinkNetworkQuality,delay:e.getRTCStats().RTT??0}));d(dL())},[e]),o}var uL=oa(ss());function M8(n,e=!0,o){let d=Sn(o),I=kr(o),f=reactExports.useRef([]),[S,v]=reactExports.useState(!1),[L,x]=reactExports.useState(null),F=di();return Ai(async()=>{if(F.current||(v(!1),x(null)),!d||!I||!e)return;let Y=n.filter(Boolean),j=ee=>{let he=rL(uL.default.VERSION,"4.18.2")>=0;return he||new Je("usePublish","please check your agora-rtc-sdk-ng version in package.json, it's recommend upgrade to >= 4.18.2").log("warn"),he?d.mode!=="live"||d.role!=="audience":!0},W=ee=>f.current.some(he=>he&&he.getTrackId()===ee.getTrackId()),re=ee=>j()&&ee.enabled&&e&&!W(ee);for(let ee=0;ee(ue==null?void 0:ue.trackMediaType)===he.trackMediaType));try{F.current||v(!0),await d.publish(he)}catch(ue){console.error(ue),F.current||x(new Je("IAgoraRTCClient.publish",ue))}F.current||v(!1)}}f.current=Y},[I,e,d,n]),{isLoading:S,error:L}}function V8(n){let[e,o]=reactExports.useState(0);return reactExports.useEffect(()=>{if(n)return nL(()=>{o(n.getVolumeLevel())},1e3)},[n]),e}var hL=oa(ss());function F8(n=!0,e={ANS:!0,AEC:!0}){let[o,d]=reactExports.useState(null),[I,f]=reactExports.useState(!1),[S,v]=reactExports.useState(null),L=di();return Ai(async()=>{if(L.current||(f(!1),v(null)),n&&!o){try{L.current||f(!0);let x=await hL.default.createMicrophoneAudioTrack(e);L.current||d(x)}catch(x){console.error(x),L.current||v(new Je("IAgoraRTC.createMicrophoneAudioTrack",x))}L.current||f(!1)}},[n]),{localMicrophoneTrack:o,isLoading:I,error:S}}var pL=oa(ss());function B8(n=!0,e){let[o,d]=reactExports.useState(null),[I,f]=reactExports.useState(!1),[S,v]=reactExports.useState(null),L=di();return Ai(async()=>{if(L.current||(f(!1),v(null)),n&&!o){try{L.current||f(!0);let x=await pL.default.createCameraVideoTrack(e);L.current||d(x)}catch(x){console.error(x),L.current||v(new Je("IAgoraRTC.createCameraVideoTrack",x))}L.current||f(!1)}},[n]),{localCameraTrack:o,isLoading:I,error:S}}function G8(n,e){let o=Sn(e),[d,I]=reactExports.useState([]),f=kr(),S=reactExports.useRef([]),[v,L]=reactExports.useState(!1),[x,F]=reactExports.useState(null),Y=di();return Ai(async()=>{if(Y.current||F(null),!Array.isArray(n)||!f)return;let j=async ee=>{if(!ee.audioTrack&&n.some(({uid:he})=>ee.uid===he)){try{Y.current||L(!0),await o.subscribe(ee,"audio")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.subscribe",he))}ee.audioTrack&&!S.current.some(he=>he.getUserId()===ee.uid)&&S.current.push(ee.audioTrack),S.current=S.current.map(he=>ee.audioTrack&&he.getUserId()===ee.uid&&he.getTrackId()!==ee.audioTrack.getTrackId()?ee.audioTrack:he),Y.current||(I([...S.current]),L(!1))}},W=async ee=>{if(n.some(({uid:he})=>ee.uid===he)){Y.current||(S.current=S.current.filter(he=>he.getUserId()!==ee.uid),I([...S.current]));try{Y.current||L(!0),await o.unsubscribe(ee,"audio")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.unsubscribe",he))}Y.current||L(!1)}};n.map(ee=>{!ee.audioTrack&&ee.hasAudio&&j(ee)});let re=[];for(let ee=0;eeue.uid===he.getUserId())){let ue=o.remoteUsers.find(Ee=>Ee.uid===he.getUserId());ue&&re.push({user:ue,mediaType:"audio"}),S.current.splice(ee,1),ee--}}if(re.length>0){try{Y.current||L(!0),await o.massUnsubscribe(re)}catch(ee){console.error(ee),Y.current||F(new Je("IAgoraRTCClient.massUnsubscribe",ee))}Y.current||(I(S.current.slice()),L(!1))}return Ii([Xe(o,"user-published",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="audio"&&j(ee)}),Xe(o,"user-unpublished",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="audio"&&W(ee)})])},[f,o,n]),{audioTracks:d,isLoading:v,error:x}}function H8(n,e){let o=Sn(e),[d,I]=reactExports.useState([]),f=kr(),S=reactExports.useRef([]),[v,L]=reactExports.useState(!1),[x,F]=reactExports.useState(null),Y=di();return Ai(async()=>{if(Y.current||F(null),!Array.isArray(n)||!f)return;let j=async ee=>{if(!ee.videoTrack&&n.some(({uid:he})=>ee.uid===he)){try{Y.current||L(!0),await o.subscribe(ee,"video")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.subscribe",he))}ee.videoTrack&&!S.current.some(he=>he.getUserId()===ee.uid)&&S.current.push(ee.videoTrack),S.current=S.current.map(he=>ee.videoTrack&&he.getUserId()===ee.uid&&he.getTrackId()!==ee.videoTrack.getTrackId()?ee.videoTrack:he),Y.current||(I([...S.current]),L(!1))}},W=async ee=>{if(n.some(({uid:he})=>ee.uid===he)){Y.current||(S.current=S.current.filter(he=>he.getUserId()!==ee.uid),I([...S.current]));try{Y.current||L(!0),await o.unsubscribe(ee,"video")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.unsubscribe",he))}Y.current||L(!1)}};n.map(ee=>{!ee.videoTrack&&ee.hasVideo&&j(ee)});let re=[];for(let ee=0;eeue.uid===he.getUserId())){let ue=o.remoteUsers.find(Ee=>Ee.uid===he.getUserId());ue&&re.push({user:ue,mediaType:"video"}),S.current.splice(ee,1),ee--}}if(re.length>0){try{Y.current||L(!0),await o.massUnsubscribe(re)}catch(ee){console.error(ee),Y.current||F(new Je("IAgoraRTCClient.massUnsubscribe",ee))}Y.current||(I(S.current.slice()),L(!1))}return Ii([Xe(o,"user-published",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="video"&&j(ee)}),Xe(o,"user-unpublished",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="video"&&W(ee)})])},[f,o,n]),{videoTracks:d,isLoading:v,error:x}}function gp(n,e,o){let d=Sn(o),I=e==="audio"?"audioTrack":"videoTrack",[f,S]=reactExports.useState(n&&n[I]),v=kr(),L=reactExports.useRef(),[x,F]=reactExports.useState(!1),[Y,j]=reactExports.useState(null);return reactExports.useEffect(()=>{if(!n||!v)return;let W=!1;W||j(null);let re=e==="audio"?"hasAudio":"hasVideo",ee=n.uid,he=async(_e,De)=>{if(_e[I]&&d.remoteUsers.some(({uid:Fe})=>_e.uid===Fe))try{W||F(!0),await d.unsubscribe(_e,De)}catch(Fe){W||j(new Je("IAgoraRTCClient.unsubscribe",Fe)),console.error(Fe)}W||(S(void 0),F(!1))},ue=async(_e,De)=>{try{!_e[I]&&d.remoteUsers.some(({uid:Fe})=>_e.uid===Fe)&&(W||F(!0),await d.subscribe(_e,De)),W||S(_e[I])}catch(Fe){W||j(new Je("IAgoraRTCClient.subscribe",Fe)),console.error(Fe)}W||F(!1)},Ee=L.current||(L.current=Lc());return!n[I]&&n[re]?Ee.run(()=>ue(n,e)):S(n[I]),Ii([()=>{W=!0,Ee.dispose()},Xe(d,"user-published",(_e,De)=>{_e.uid===ee&&De===e&&Ee.run(()=>ue(_e,e))}),Xe(d,"user-unpublished",(_e,De)=>{_e.uid===ee&&De===e&&Ee.run(()=>he(_e,e))})])},[v,d,n,e,I]),{track:f,isLoading:x,error:Y}}function X8(n){let e=Sn(n),[o,d]=reactExports.useState(e?e.remoteUsers:[]);return reactExports.useEffect(()=>{if(e){let I=()=>d(e.remoteUsers.slice());return Ii([Xe(e,"user-joined",I),Xe(e,"user-left",I),Xe(e,"user-published",I),Xe(e,"user-unpublished",I)])}},[e]),o}var _L=oa(ss());function J8(n=!0,e,o){let[d,I]=reactExports.useState(null),[f,S]=reactExports.useState(!1),[v,L]=reactExports.useState(null),x=di();return Ai(async()=>{if(x.current||(S(!1),L(null)),n&&!d){try{x.current||S(!0);let F=await _L.default.createScreenVideoTrack(e,o);x.current||I(F)}catch(F){console.error(F),x.current||L(new Je("IAgoraRTC.createScreenVideoTrack",F))}x.current||S(!1)}},[n]),{screenTrack:d,isLoading:f,error:v}}function $8(){let n=new Map,e=1500;return{onMount:o=>{let d=n.get(o);d&&(d(),n.delete(o))},onUnmount:o=>{let d=n.get(o);d&&d(),n.set(o,as(()=>{o.isPlaying&&o.stop(),n.delete(o)},e))},dispose:()=>{for(let[o,d]of n)o.isPlaying&&o.stop(),d&&d();n.clear()}}}var gS=reactExports.createContext(void 0);function tY({children:n}){let[e]=reactExports.useState($8);return reactExports.useEffect(()=>e.dispose,[e]),jsxRuntimeExports.jsx(gS.Provider,{value:e,children:n})}function hl(n,e,o,d){let I=reactExports.useContext(gS);reactExports.useEffect(()=>{if(n)return d&&e?n.play(d,o||void 0):n.stop(),I?(I.onMount(n),()=>I.onUnmount(n)):()=>{n.isPlaying&&n.stop()}},[n,d,e,I,o])}function pl(n,e){let o=reactExports.useContext(gS);kc(()=>{if(n)return e?n.play():n.stop(),o?(o.onMount(n),()=>o.onUnmount(n)):()=>{n.isPlaying&&n.stop()}},[n,e,o])}function TS({track:n,play:e=!1,volume:o,disabled:d,muted:I,children:f}){let S=fp(n);return pl(S,e),reactExports.useEffect(()=>{S&&o!=null&&S.setVolume(o)},[S,o]),reactExports.useEffect(()=>{S&&d!=null&&S.setEnabled(!d).catch(console.warn)},[d,S]),reactExports.useEffect(()=>{S&&I!=null&&S.setMuted(I).catch(console.warn)},[I,S]),f?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:f}):null}var Sp={position:"relative",width:"100%",height:"100%",overflow:"hidden",background:"#000"},Tp={width:"100%",height:"100%"},Mc={position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",zIndex:2},cs=(n,e)=>reactExports.useMemo(()=>({...n,...e}),[n,e]);function RS({track:n,play:e,disabled:o,muted:d,style:I,videoPlayerConfig:f,...S}){let v=cs(Tp,I),[L,x]=reactExports.useState(null),F=fp(n);return hl(F,e,f,L),reactExports.useEffect(()=>{F&&o!=null&&F.setEnabled(!o).catch(console.warn)},[o,F]),reactExports.useEffect(()=>{F&&d!=null&&F.setMuted(d).catch(console.warn)},[d,F]),jsxRuntimeExports.jsx("div",{...S,ref:x,style:v})}var aY={width:"100%",height:"100%",background:"#1a1e21 center/cover no-repeat",filter:"blur(16px) brightness(0.4)"},cY={position:"absolute",top:"50%",left:"50%",maxWidth:"50%",maxHeight:"50%",aspectRatio:"1",transform:"translate(-50%, -50%)",borderRadius:"50%",overflow:"hidden",objectFit:"cover"};function Rp({cover:n}){return jsxRuntimeExports.jsx("div",{style:Mc,children:typeof n=="string"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{style:{...aY,backgroundImage:`url(${n})`}}),jsxRuntimeExports.jsx("img",{src:n,style:cY})]}):n()})}function uY({micOn:n,cameraOn:e,audioTrack:o,videoTrack:d,playAudio:I,playVideo:f,volume:S,cover:v,children:L,style:x,...F}){let Y=cs(Sp,x);return f=f??!!e,I=I??!!n,jsxRuntimeExports.jsxs("div",{...F,style:Y,children:[jsxRuntimeExports.jsx(RS,{disabled:!e,play:f,track:d}),jsxRuntimeExports.jsx(TS,{disabled:!n,play:I,track:o,volume:S}),v&&!e&&jsxRuntimeExports.jsx(Rp,{cover:v}),jsxRuntimeExports.jsx("div",{style:Mc,children:L})]})}function vS({track:n,play:e=!1,playbackDeviceId:o,volume:d,children:I}){return pl(n,e),reactExports.useEffect(()=>{n&&o!=null&&n.setPlaybackDevice(o).catch(console.warn)},[n,o]),reactExports.useEffect(()=>{n&&d!=null&&n.setVolume(d)},[n,d]),I?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:I}):null}function yS({track:n,play:e,style:o,videoPlayerConfig:d,...I}){let f=cs(Tp,o),[S,v]=reactExports.useState(null);return hl(n,e,d,S),jsxRuntimeExports.jsx("div",{...I,ref:v,style:f})}function fY({user:n,playVideo:e,playAudio:o,playbackDeviceId:d,volume:I,cover:f,style:S,children:v,videoPlayerConfig:L,...x}){let F=cs(Sp,S),{track:Y}=gp(n,"video"),{track:j}=gp(n,"audio");return e=e??(n==null?void 0:n.hasVideo),o=o??(n==null?void 0:n.hasAudio),jsxRuntimeExports.jsxs("div",{...x,style:F,children:[jsxRuntimeExports.jsx(yS,{play:e,track:Y,videoPlayerConfig:L}),jsxRuntimeExports.jsx(vS,{play:o,playbackDeviceId:d,track:j,volume:I}),f&&!e&&jsxRuntimeExports.jsx(Rp,{cover:f}),jsxRuntimeExports.jsx("div",{style:Mc,children:v})]})}var SL=oa(ss()),IS=class{constructor(){T9(this,"appType",1001);SL.default.setAppType(this.appType)}};new IS;var SY="2.5.1";oo(Mr,oa(ss()));var TY=TL.default;const agoraRtcReact=Object.freeze(Object.defineProperty({__proto__:null,AgoraRTCProvider:p8,AgoraRTCReactError:Je,AgoraRTCScreenShareProvider:g8,LocalAudioTrack:TS,LocalUser:uY,LocalVideoTrack:RS,RemoteAudioTrack:vS,RemoteUser:fY,RemoteVideoTrack:yS,TrackBoundary:tY,VERSION:SY,default:TY,useAutoPlayAudioTrack:pl,useAutoPlayVideoTrack:hl,useClientEvent:d8,useConnectionState:v8,useCurrentUID:w8,useIsConnected:kr,useJoin:N8,useLocalCameraTrack:B8,useLocalMicrophoneTrack:F8,useLocalScreenTrack:J8,useNetworkQuality:L8,usePublish:M8,useRTCClient:Sn,useRTCScreenShareClient:S8,useRemoteAudioTracks:G8,useRemoteUserTrack:gp,useRemoteUsers:X8,useRemoteVideoTracks:H8,useTrackEvent:l8,useVolumeLevel:V8},Symbol.toStringTag,{value:"Module"})),scriptRel="modulepreload",assetsURL=function(n){return"/"+n},seen={},__vitePreload=function(e,o,d){let I=Promise.resolve();if(o&&o.length>0){document.getElementsByTagName("link");const S=document.querySelector("meta[property=csp-nonce]"),v=(S==null?void 0:S.nonce)||(S==null?void 0:S.getAttribute("nonce"));I=Promise.allSettled(o.map(L=>{if(L=assetsURL(L),L in seen)return;seen[L]=!0;const x=L.endsWith(".css"),F=x?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${L}"]${F}`))return;const Y=document.createElement("link");if(Y.rel=x?"stylesheet":scriptRel,x||(Y.as="script"),Y.crossOrigin="",Y.href=L,v&&Y.setAttribute("nonce",v),document.head.appendChild(Y),x)return new Promise((j,W)=>{Y.addEventListener("load",j),Y.addEventListener("error",()=>W(new Error(`Unable to preload CSS for ${L}`)))})}))}function f(S){const v=new Event("vite:preloadError",{cancelable:!0});if(v.payload=S,window.dispatchEvent(v),!v.defaultPrevented)throw S}return I.then(S=>{for(const v of S||[])v.status==="rejected"&&f(v.reason);return e().catch(f)})};var TranscriptHelperMode=(n=>(n.TEXT="text",n.WORD="word",n.CHUNK="chunk",n.UNKNOWN="unknown",n.AUTO="auto",n))(TranscriptHelperMode||{}),MessageType=(n=>(n.USER_TRANSCRIPTION="user.transcription",n.AGENT_TRANSCRIPTION="assistant.transcription",n.MSG_INTERRUPTED="message.interrupt",n.MSG_METRICS="message.metrics",n.MSG_ERROR="message.error",n.MSG_STATE="message.state",n.IMAGE_UPLOAD="image.upload",n.MESSAGE_INFO="message.info",n.MESSAGE_SAL_STATUS="message.sal_status",n))(MessageType||{}),ModuleType=(n=>(n.LLM="llm",n.MLLM="mllm",n.TTS="tts",n.CONTEXT="context",n.UNKNOWN="unknown",n))(ModuleType||{}),ConversationalAIError=class extends Error{constructor(n,e){super(n),this.name="ConversationalAIError",(e==null?void 0:e.cause)!==void 0&&(this.cause=e.cause)}},NotInitializedError=class extends ConversationalAIError{constructor(){super("AgoraVoiceAI is not initialized. Call await AgoraVoiceAI.init(config) before using getInstance()."),this.name="NotInitializedError"}},RTMRequiredError=class extends ConversationalAIError{constructor(n){super(`[AgoraVoiceAI] ${n}() requires RTM. Pass rtmConfig: { rtmEngine } when calling AgoraVoiceAI.init().`),this.name="RTMRequiredError"}},TurnStatus=(n=>(n[n.IN_PROGRESS=0]="IN_PROGRESS",n[n.END=1]="END",n[n.INTERRUPTED=2]="INTERRUPTED",n))(TurnStatus||{}),AgoraVoiceAIEvents=(n=>(n.AGENT_STATE_CHANGED="agent-state-changed",n.AGENT_INTERRUPTED="agent-interrupted",n.AGENT_METRICS="agent-metrics",n.AGENT_ERROR="agent-error",n.TRANSCRIPT_UPDATED="transcript-updated",n.DEBUG_LOG="debug-log",n.MESSAGE_RECEIPT_UPDATED="message-receipt-updated",n.MESSAGE_ERROR="message-error",n.MESSAGE_SAL_STATUS="message-sal-status",n))(AgoraVoiceAIEvents||{}),EventHelper=class{constructor(){this._eventMap=new Map,this._onceWrappers=new Map,this._logLevel=0,this._maxListeners=10,this._warnedEvents=new Set}setMaxListeners(n){return this._maxListeners=n,this}setLogLevel(n){return this._logLevel=n,this}get logLevel(){return this._logLevel}getListenerCounts(){const n={};for(const[e,o]of this._eventMap)n[String(e)]=o.length;return n}once(n,e){const o=(...d)=>{this.off(n,o),this._onceWrappers.delete(e),e(...d)};return this._onceWrappers.set(e,o),this.on(n,o),this}on(n,e){const o=this._eventMap.get(n)??[];return o.push(e),this._eventMap.set(n,o),this._maxListeners>0&&o.length>this._maxListeners&&!this._warnedEvents.has(n)&&(this._warnedEvents.add(n),console.warn(`[ConversationalAI] Possible listener leak: ${String(n)} has ${o.length} listeners (max: ${this._maxListeners}). Use setMaxListeners() to increase if intentional.`)),this._logLevel>=2&&console.debug(`Subscribed to event: ${String(n)}`),this}off(n,e){const o=this._eventMap.get(n);if(o){const d=this._onceWrappers.get(e)??e;this._eventMap.set(n,o.filter(I=>I!==d)),this._onceWrappers.delete(e),this._logLevel>=2&&console.debug(`Unsubscribed from event: ${String(n)}`)}return this}removeAllEventListeners(){this._eventMap.clear(),this._onceWrappers.clear(),this._logLevel>=2&&console.debug("Removed all event listeners")}emit(n,...e){const o=this._eventMap.get(n)??[];for(const d of o)try{d&&d(...e)}catch(I){if(this._logLevel>=1){const f=I,S=f.stack||f.message;console.error(`Error handling event ${String(n)}: ${S}`)}}return this._logLevel>=2&&console.debug({args:e},`Emitted event: ${String(n)}`),this}},MAX_ZIP_SIZE=4*1024*1024,LogManager=class{constructor(){this.currentSize=0,this.logs=[],this.textEncoder=new TextEncoder}addLog(n,...e){try{const o=new Date().toISOString(),d=e.map(v=>typeof v=="string"?v:JSON.stringify(v)).join(" "),I=`${o} ${d} +`,f=this.textEncoder.encode(I).length,S={message:I,size:f};if(this.logs.push(S),this.currentSize+=f,this.currentSize>MAX_ZIP_SIZE){let v=0,L=0;for(const x of this.logs)if(v+=x.size,L++,this.currentSize-v<=MAX_ZIP_SIZE)break;this.logs=this.logs.slice(L),this.currentSize-=v}}catch(o){console.info("Error in addLog:",o)}}async downloadLogs(){let n;try{n=(await __vitePreload(async()=>{const{default:e}=await import("./jszip.min-CQVN0a9q.js").then(o=>o.j);return{default:e}},[])).default}catch{throw new Error("[ConversationalAI] downloadLogs requires jszip. Install it with: npm install jszip")}try{const e=new n,o=this.logs.map(f=>f.message).join("");e.file("log.txt",o);const d=await e.generateAsync({type:"blob"}),I=new File([d],"logs.zip",{type:"application/zip"});return this.clear(),I}catch(e){return console.error("Error creating log file:",e),null}}clear(){this.logs=[],this.currentSize=0}info(...n){this.addLog("info",...n)}log(...n){this.addLog("log",...n)}debug(...n){this.addLog("debug",...n)}error(...n){this.addLog("error",...n)}warn(...n){this.addLog("warn",...n)}},logger=new LogManager,genTraceID=(n=8)=>{let e="";const o="abcdefghijklmnopqrstuvwxyz0123456789",d=o.length;for(let I=0;I{if(typeof n=="string")return n;try{return JSON.stringify(n)}catch{return String(n)}},factoryFormatLog=n=>(...e)=>`[${n.tag}] ${e.map(safeStringify).join(" ")}`,ConsoleMetricsReporter=class{report(n,e){console.debug(`[ConversationalAI:metrics] ${n}`,e)}},AgoraMetricsReporter=class{constructor(){this.reporter=null}async init(){try{const{default:n}=await __vitePreload(async()=>{const{default:e}=await import("./AgoraRTC_N-report.esm-Dhe53Dql.js");return{default:e}},[]);if(typeof n!="function"){console.warn("[ConversationalAI] @agora-js/report default export is not a constructor. Falling back to console metrics.");return}this.reporter=new n}catch(n){n instanceof Error&&("code"in n&&n.code==="MODULE_NOT_FOUND"||n.message.includes("Cannot find module"))?console.warn("[ConversationalAI] @agora-js/report not found. Falling back to console metrics. Install it with: pnpm add @agora-js/report"):console.error("[ConversationalAI] Failed to initialize @agora-js/report:",n)}}report(n,e){this.reporter?this.reporter.report(n,e):console.debug(`[ConversationalAI:metrics] ${n}`,e)}},SubRenderPTS=class{constructor(n,e,o){this._pts=0,this._intervalRef=null,this._isRunning=!1,this._interval=n,this.callMessagePrint=e,this.handleQueue=o}get pts(){return this._pts}get isRunning(){return this._isRunning}setRunning(n){this._isRunning=n}setInterval(n){this._interval=n}_preSetupInterval(){if(!this._isRunning){this.callMessagePrint("error","_preSetupInterval","Message service is not running");return}}setupIntervalForWords(n){if(this._preSetupInterval(),n!=null&&n.isForce){this._intervalRef&&(clearInterval(this._intervalRef),this._intervalRef=null),this._intervalRef=setInterval(()=>this.handleQueue(this._pts),this._interval);return}this._intervalRef||(this._intervalRef=setInterval(()=>this.handleQueue(this._pts),this._interval))}teardownInterval(){this._intervalRef&&(clearInterval(this._intervalRef),this._intervalRef=null)}get intervalRef(){return this._intervalRef}setIntervalRef(n){this._intervalRef=n}setPts(n){n>0&&n>this._pts&&(this._pts=n)}reset(){this.teardownInterval(),this._pts=0,this._isRunning=!1}},SELF_USER_ID=0,SubRenderQueue=class{constructor(n,e){this.queue=[],this.lastPoppedQueueItem=null,this.chatHistory=[],this.transcriptChunk=null,this.callMessagePrint=n,this.mutateChatHistory=e}processQueue(n){const e=this.queue.length;if(e!==0){if(e===1){const o=this.queue[0];this._handleTurnObj(o,n),this.mutateChatHistory();return}if(e>2&&this.callMessagePrint("error","Queue length is greater than 2, but it should not happen"),e>1){this.queue=this.queue.sort((S,v)=>S.turn_id-v.turn_id);const o=this.queue[this.queue.length-1],d=this.queue[this.queue.length-2];if(!o.words.length){this._handleTurnObj(d,n),this.mutateChatHistory();return}if(o.words[0].start_ms>n){this._handleTurnObj(d,n),this.mutateChatHistory();return}const f=this.chatHistory.find(S=>S.turn_id===d.turn_id&&S.stream_id===d.stream_id);if(!f){this.callMessagePrint("warn","No corresponding chatHistory item found",d);return}f.status=2,this.lastPoppedQueueItem=this.queue.shift(),this._handleTurnObj(o,n),this.mutateChatHistory();return}}}_handleTurnObj(n,e){let o=this.chatHistory.find(x=>x.turn_id===n.turn_id&&x.stream_id===n.stream_id);this.callMessagePrint("debug","handleTurnObj",n,"correspondingChatHistoryItem",o),o||(this.callMessagePrint("debug","handleTurnObj","No corresponding chatHistory item found","push to chatHistory"),o={turn_id:n.turn_id,uid:n.uid,stream_id:n.stream_id,_time:new Date().getTime(),text:"",status:n.status,metadata:n},this.appendChatHistory(o)),o._time=new Date().getTime(),o.metadata=n,n.status===2&&(o.status=2);const d=[],I=[];for(const x of n.words)x.start_ms<=e?d.push(x):I.push(x);const f=I.length===0,S=d.length>0&&d[d.length-1].word_status!==0;if(f&&S){o.text=n.text,o.status=n.status,this.lastPoppedQueueItem=this.queue.shift();return}const v=d.filter(x=>x.start_ms<=e).map(x=>x.word).join("");if(o.text=v,d.length>0&&d[d.length-1].word_status===2){this.lastPoppedQueueItem=this.queue.shift();return}}appendChatHistory(n){n.turn_id===0?this.chatHistory=[n,...this.chatHistory]:this.chatHistory.push(n)}interruptQueue(n){const e=n.turn_id,o=n.start_ms,d=this.queue.find(S=>S.turn_id===e);if(this.callMessagePrint("debug","interruptQueue",`turn_id: ${e}, start_ms: ${o}, correspondingQueueItem: ${d}`),!d)return;d.status=2;const I=d.words.filter(S=>S.start_ms<=o),f=d.words.filter(S=>S.start_ms>o);I.length===0?d.words.forEach(S=>{S.word_status=2}):(I[I.length-1].word_status=2,I!=null&&I[I.length-2]&&(I[I.length-2].word_status=2),f.forEach(S=>{S.word_status=2}),d.words=[...I,...f])}pushToQueue(n){const e=this.queue.find(d=>d.turn_id===n.turn_id),o=this.queue.reduce((d,I)=>Math.max(d,I.turn_id),0);if(!e){if(n.turn_id({...I,word_status:0})).sort((I,f)=>I.start_ms-f.start_ms).reduce((I,f)=>(I.find(S=>S.start_ms===f.start_ms)||I.push(f),I),[]);return e!==0&&o.length>0&&(o[o.length-1].word_status=e),o}reset(){this.queue=[],this.lastPoppedQueueItem=null,this.chatHistory=[],this.transcriptChunk=null}};SubRenderQueue.self_uid=SELF_USER_ID;var TAG="CovSubRenderController",SELF_USER_ID2=0,DEFAULT_INTERVAL=200,DEFAULT_CHUNK_INTERVAL=100,formatLog=factoryFormatLog({tag:TAG}),_CovSubRenderController=class v9{constructor(e={}){this._mode="unknown",this._agentMessageState=null,this._transcriptChunk=null,this.onChatHistoryUpdated=null,this.onAgentInterrupted=null,this.onDebugLog=null,this.onAgentMetrics=null,this.onAgentError=null,this.onMessageReceipt=null,this.onMessageError=null,this.onMessageSalStatus=null,this._enableLog=e.enableLog??!1,this.callMessagePrint=(d="debug",...I)=>{var f;this._enableLog&&(logger[d](formatLog(...I)),(f=this.onDebugLog)==null||f.call(this,`[${d}] ${formatLog(...I)}`))},this.callMessagePrint("debug",`${v9.NAME} initialized`);const o=e.interval??DEFAULT_INTERVAL;this._queue=new SubRenderQueue(this.callMessagePrint,this._mutateChatHistory.bind(this)),this._pts=new SubRenderPTS(o,this.callMessagePrint,this._queue.processQueue.bind(this._queue)),this.onChatHistoryUpdated=e.onChatHistoryUpdated??null,this.onAgentStateChanged=e.onAgentStateChanged??null,this.onAgentInterrupted=e.onAgentInterrupted??null,this.onDebugLog=e.onDebugLog??null,this.onAgentMetrics=e.onAgentMetrics??null,this.onAgentError=e.onAgentError??null,this.onMessageReceipt=e.onMessageReceipt??null,this.onMessageError=e.onMessageError??null,this.onMessageSalStatus=e.onMessageSalStatus??null}get chatHistory(){return this._queue.chatHistory}_mutateChatHistory(){var e;this.callMessagePrint("debug",">>> onChatHistoryUpdated",`pts: ${this._pts.pts}, chatHistory length: ${this._queue.chatHistory.length}`,this._queue.chatHistory.map(o=>`${o.uid}:${o.text}[status: ${o.status}]`).join(` +`)),(e=this.onChatHistoryUpdated)==null||e.call(this,this._queue.chatHistory)}handleTextMessage(e,o){const d=o.turn_id,I=o.text||"",f=o.stream_id,S=1,L=o.object==="user.transcription"?`${v9.self_uid}`:`${e}`,x=this._queue.chatHistory.find(F=>F.turn_id===d&&F.stream_id===f&&F.uid===L);x?(x.text=I,x.status=S,x.metadata=o,x._time=new Date().getTime(),this.callMessagePrint("debug","[Text Mode]",`[${e}]`,x)):(this.callMessagePrint("debug","[Text Mode]",`[${e}]`,"new item",o),this._queue.appendChatHistory({turn_id:d,uid:L,stream_id:f,_time:new Date().getTime(),text:I,status:S,metadata:o})),this._mutateChatHistory()}_handleTranscriptChunk(){if(!this._transcriptChunk){this.callMessagePrint("warn","[chunk Mode]","_handleTranscriptChunk","missing _transcriptChunk");return}const e=this._transcriptChunk.index,o=this._transcriptChunk.data,d=o.text.length,I=this._transcriptChunk.uid,f=e+1>=d?d:e+1;this._transcriptChunk.index=f;const S=o.text.substring(0,f),v=S.length>0&&o.turn_status!==0&&S.length===o.text.length,L=o.object==="user.transcription"?`${v9.self_uid}`:`${I}`,x=this._queue.chatHistory.find(F=>F.turn_id===o.turn_id&&F.stream_id===o.stream_id&&F.uid===L);x?(x.text=S,x.status=v?o.turn_status:x.status,x.metadata=o,x._time=Date.now(),this.callMessagePrint("debug","[chunk Mode]",`[${I}]`,"update transcriptChunk",x)):(this.callMessagePrint("debug","[chunk Mode]",`[${I}]`,"new transcriptChunk",this._transcriptChunk),this._queue.appendChatHistory({turn_id:o.turn_id,uid:L,stream_id:o.stream_id,_time:Date.now(),text:S,status:o.turn_status,metadata:o})),this._mutateChatHistory()}handleChunkTextMessage(e,o){var d;if(this.callMessagePrint("debug","[chunk Mode]",`[${e}]`,"new item",o),this._transcriptChunk&&this._transcriptChunk.data.turn_id{var S;return f.turn_id===((S=this._transcriptChunk)==null?void 0:S.data.turn_id)&&f.uid===e});I&&(I.status=1),this._transcriptChunk=null}this._transcriptChunk={index:((d=this._transcriptChunk)==null?void 0:d.index)??0,data:o,uid:e},this._pts.intervalRef||this._pts.setIntervalRef(setInterval(this._handleTranscriptChunk.bind(this),DEFAULT_CHUNK_INTERVAL))}handleMessageInterrupt(e,o){var f;this.callMessagePrint("debug","<<< [onInterrupted]",`pts: ${this._pts.pts}, uid: ${e}`,o);const d=o.turn_id,I=Math.min(o.start_ms,this._pts.pts)||o.start_ms;if(this._queue.interruptQueue({turn_id:d,start_ms:I}),this._transcriptChunk){this._pts.teardownInterval();const S=this._queue.chatHistory.find(v=>{var L;return v.turn_id===((L=this._transcriptChunk)==null?void 0:L.data.turn_id)&&v.uid===e});S&&(S.status=2),this._transcriptChunk=null}this._mutateChatHistory(),(f=this.onAgentInterrupted)==null||f.call(this,`${e}`,{turnID:d,timestamp:I})}handleMessageMetrics(e,o){var S;const d=o.latency_ms,I=o.module,f=o.metric_name;if(!Object.values(ModuleType).includes(I)){this.callMessagePrint("warn","Unknown metric module:",o);return}(S=this.onAgentMetrics)==null||S.call(this,`${e}`,{type:I,name:f,value:d,timestamp:o.send_ts})}handleMessageSalStatus(e,o){var d;this.callMessagePrint("debug","handleMessageSalStatus",o),(d=this.onMessageSalStatus)==null||d.call(this,`${e}`,o)}handleMessageError(e,o){var S,v;const d=o.code||-1,I=o.message,f=o.module;if(!Object.values(ModuleType).includes(f)){this.callMessagePrint("warn","Unknown error module:",o);return}if(f==="context"){try{const L=JSON.parse(I),x={type:(L==null?void 0:L.module)==="picture"?"image":"unknown",code:d,message:I,timestamp:(o==null?void 0:o.send_ts)||Date.now()};(S=this.onMessageError)==null||S.call(this,`${e}`,x)}catch(L){this.callMessagePrint("error","Failed to parse context error message",L,o)}return}(v=this.onAgentError)==null||v.call(this,`${e}`,{type:f,code:d,message:I,timestamp:(o==null?void 0:o.send_ts)||Date.now()})}handleMessageInfo(e,o){var d;try{const I=(o==null?void 0:o.message)||"",f=JSON.parse(I),S=o==null?void 0:o.module,v=o==null?void 0:o.turn_id;if(!I||!f||!S||!v){this.callMessagePrint("error","handleMessageInfo","Invalid message object",o);return}const L=(o==null?void 0:o.resource_type)==="picture"?"image":"unknown";(d=this.onMessageReceipt)==null||d.call(this,e,{moduleType:S,messageType:L,message:I,turnId:v})}catch(I){this.callMessagePrint("debug","handleMessageInfo","Failed to parse message string from image info message",I,o)}}handleAgentStatus(e){var L,x,F,Y,j,W;const o=e.stateChanged,d=Number(o.turn_id),I=Number.isFinite(d)?d:-1,f=Number(((L=this._agentMessageState)==null?void 0:L.turn_id)??-1);if((Number.isFinite(f)?f:-1)>I){this.callMessagePrint("debug","handleAgentStatus","ignore older message(turn_id)");return}const v=e.timestamp;if(Number(((x=this._agentMessageState)==null?void 0:x.timestamp)??0)>=v){this.callMessagePrint("debug","handleAgentStatus","ignore older message(timestamp)");return}this.callMessagePrint("debug",">>> handleAgentStatus",`pts: ${this._pts.pts}, uid: ${e.publisher}`,`prev-state: ${(F=this._agentMessageState)==null?void 0:F.state}, prev-turn_id: ${(Y=this._agentMessageState)==null?void 0:Y.turn_id}, prev-timestamp: ${(j=this._agentMessageState)==null?void 0:j.timestamp}`,`current-state: ${e.stateChanged.state}, turn_id: ${e.stateChanged.turn_id}, timestamp: ${e.timestamp}`),this._agentMessageState={state:o.state,turn_id:o.turn_id,timestamp:v},(W=this.onAgentStateChanged)==null||W.call(this,e.publisher,{state:o.state,turnID:Number(o.turn_id),timestamp:v,reason:""})}handleWordAgentMessage(e,o){var L;if(typeof o.turn_status>"u"){this.callMessagePrint("debug","[Word Mode]",`[${e}]`,"Drop message with undefined turn_status",o.turn_id);return}const d=o.turn_id,I=o.text||"",f=o.words||[],S=o.stream_id,v=(L=this._queue.lastPoppedQueueItem)==null?void 0:L.turn_id;if(v&&d!==0&&d<=v){this.callMessagePrint("debug","[Word Mode]",`[${e}]`,"Drop message with turn_id less than last popped queue item",`turn_id: ${d}, last popped queue item turn_id: ${v}`);return}this._queue.pushToQueue({uid:o.object==="user.transcription"?`${v9.self_uid}`:`${e}`,turn_id:d,words:f,text:I,status:o.turn_status,stream_id:S})}setMode(e){if(this._mode!=="unknown"&&this._mode!=="auto"){this.callMessagePrint("warn",`setMode ignored: mode already locked to ${this._mode}, cannot change to ${e}`);return}if(e==="unknown"){this.callMessagePrint("warn","Unknown mode should not be set");return}e==="chunk"?this._pts.setInterval(DEFAULT_CHUNK_INTERVAL):e!=="auto"&&this._pts.setInterval(DEFAULT_INTERVAL),this.callMessagePrint("debug","setMode",e),this._mode=e}handleMessage(e,o){const d=e==null?void 0:e.object;if(!Object.values(MessageType).includes(d)){this.callMessagePrint("info","<<< [unknown message]",o,e);return}const I=e.object==="assistant.transcription",f=e.object==="user.transcription",S=e.object==="message.interrupt",v=e.object==="message.metrics",L=e.object==="message.error",x=e.object==="message.info",F=e.object==="message.sal_status";if(I&&(this._mode==="unknown"||this._mode==="auto")&&(!e.words||Array.isArray(e.words)&&e.words.length===0?this.setMode("text"):(this._pts.setupIntervalForWords({isForce:!0}),this.setMode("word"))),I&&this._mode==="word"){this._pts.setupIntervalForWords({isForce:!1}),this.handleWordAgentMessage(o.publisher,e);return}if(I&&this._mode==="text"){this.handleTextMessage(o.publisher,e);return}if(I&&this._mode==="chunk"){this.handleChunkTextMessage(o.publisher,e);return}if(f){this.handleTextMessage(o.publisher,e);return}if(S){this.handleMessageInterrupt(o.publisher,e);return}if(x){this.handleMessageInfo(o.publisher,e);return}if(v){this.handleMessageMetrics(o.publisher,e);return}if(L){this.handleMessageError(o.publisher,e);return}if(F){this.handleMessageSalStatus(o.publisher,e);return}}run(){this._pts.setRunning(!0)}setPts(e){this._pts.setPts(e)}cleanup(){this.callMessagePrint("debug","cleanup"),this._pts.reset(),this._queue.reset(),this._mode="unknown",this._agentMessageState=null,this._transcriptChunk=null}};_CovSubRenderController.NAME=TAG;_CovSubRenderController.self_uid=SELF_USER_ID2;var CovSubRenderController=_CovSubRenderController,ChunkedMessageAssembler=class{constructor(n=3e4,e=1e3,o=!1){this.cache=new Map,this.timestamps=new Map,this.ttlMs=n,this.maxCacheSize=e,this.enableLog=o}assemble(n){this.evictStale();const e=n.split("|");if(e.length!==4)return null;const[o,d,I,f]=e,S=parseInt(d,10),v=I==="???"?-1:parseInt(I,10);if(isNaN(S)||v!==-1&&isNaN(v))return this.enableLog&&console.warn("[ChunkedMessageAssembler] Non-numeric part index/sum",{msgId:o}),null;if(v!==-1&&v<=0)return this.enableLog&&console.warn("[ChunkedMessageAssembler] Invalid part_sum",{msgId:o,part_sum:v}),null;if(S<1)return this.enableLog&&console.warn("[ChunkedMessageAssembler] Invalid part_idx: must be >= 1 (1-based wire format)",{msgId:o,rawPartIdx:S}),null;const L=S-1;if(v!==-1&&L>=v)return this.enableLog&&console.warn("[ChunkedMessageAssembler] part_idx >= part_sum",{msgId:o,part_idx:L,part_sum:v}),null;if(!this.cache.has(o)&&this.cache.size>=this.maxCacheSize){const F=this.findOldestKey();F&&(this.cache.delete(F),this.timestamps.delete(F))}this.cache.has(o)||(this.cache.set(o,[]),this.timestamps.set(o,Date.now()));const x=this.cache.get(o);if(x.some(F=>F.part_idx===L))return null;if(x.push({part_idx:L,part_sum:v,content:f}),x.sort((F,Y)=>F.part_idx-Y.part_idx),v!==-1&&x.length===v){const F=x.map(Y=>Y.content).join("");this.cache.delete(o),this.timestamps.delete(o);try{const Y=atob(F);return JSON.parse(Y)}catch{return this.enableLog&&console.warn("[ChunkedMessageAssembler] Failed to decode chunk payload",{msgId:o}),null}}return null}clear(){this.cache.clear(),this.timestamps.clear()}evictStale(){const n=Date.now();for(const[e,o]of this.timestamps)n-o>this.ttlMs&&(this.cache.delete(e),this.timestamps.delete(e))}findOldestKey(){let n,e=1/0;for(const[o,d]of this.timestamps)d{var I;this.enableLog&&(logger[o](formatLog2(...d)),(I=this.onDebugLog)==null||I.call(this,`[${o}] ${formatLog2(...d)}`))},this.callMessagePrint("debug",`${bs.NAME} initialized, version: ${bs.VERSION}`);const e=(o,d)=>(...I)=>{try{o(...I)}catch(f){this.callMessagePrint("error",`Error in ${d} callback`,f)}};this.covSubRenderController=new CovSubRenderController({enableLog:this.enableLog,onChatHistoryUpdated:e(this.onChatHistoryUpdated.bind(this),"onChatHistoryUpdated"),onAgentStateChanged:e(this.onAgentStateChanged.bind(this),"onAgentStateChanged"),onAgentInterrupted:e(this.onAgentInterrupted.bind(this),"onAgentInterrupted"),onDebugLog:e(this.onDebugLog.bind(this),"onDebugLog"),onAgentMetrics:e(this.onAgentMetrics.bind(this),"onAgentMetrics"),onAgentError:e(this.onAgentError.bind(this),"onAgentError"),onMessageReceipt:e(this.onMessageReceiptUpdated.bind(this),"onMessageReceipt"),onMessageError:e(this.onMessageError.bind(this),"onMessageError"),onMessageSalStatus:e(this.onMessageSalStatus.bind(this),"onMessageSalStatus")})}static getInstance(){if(!bs._instance)throw new NotInitializedError;return bs._instance}static getState(){var e;return((e=bs._instance)==null?void 0:e.getState())??null}getState(){return{initialized:!!this.rtcEngine,channel:this.channel,hasRtm:!!this.rtmEngine,renderMode:this.renderMode,listenerCounts:this.getListenerCounts()}}getCfg(){if(!this.rtcEngine)throw new NotInitializedError;return{rtcEngine:this.rtcEngine,renderMode:this.renderMode,channel:this.channel,enableLog:this.enableLog}}requireRTM(e="requireRTM"){if(!this.rtmEngine)throw new RTMRequiredError(e);return this.rtmEngine}static async init(e){if(bs._initPromise)try{await bs._initPromise}catch{}bs._initPromise=bs._doInit(e);try{return await bs._initPromise}finally{bs._initPromise=null}}static _validateEngines(e){var S;if(!(typeof process>"u"||!1))return;const d=(v,L,x)=>{if(typeof x!="function")throw new ConversationalAIError(`[AgoraVoiceAI] Invalid ${v}: expected \`${L}\` to be a function.`)},I=e.rtcEngine;d("rtcEngine","rtcEngine.on(eventName, listener)",I==null?void 0:I.on),d("rtcEngine","rtcEngine.off(eventName, listener)",I==null?void 0:I.off);const f=(S=e.rtmConfig)==null?void 0:S.rtmEngine;f&&(d("rtmEngine","rtmEngine.publish(channelName, message, options?)",f.publish),d("rtmEngine","rtmEngine.addEventListener(eventName, listener)",f.addEventListener),d("rtmEngine","rtmEngine.removeEventListener(eventName, listener)",f.removeEventListener))}static async _doInit(e){var d,I;bs._validateEngines(e);const o=e.enableAgoraMetrics?new AgoraMetricsReporter:new ConsoleMetricsReporter;return o instanceof AgoraMetricsReporter&&await o.init(),(d=bs._instance)!=null&&d.rtcEngine?(bs._instance.covSubRenderController.cleanup(),bs._instance.unsubscribe(),bs._instance.removeAllEventListeners()):bs._instance||(bs._instance=new bs),bs._instance.rtcEngine=e.rtcEngine,bs._instance.rtmEngine=((I=e.rtmConfig)==null?void 0:I.rtmEngine)??null,bs._instance.renderMode=e.renderMode??"unknown",bs._instance.enableLog=e.enableLog??!1,bs._instance.setLogLevel(e.enableLog?2:0),bs._instance.metricsReporter=o,bs._instance}subscribeMessage(e){this.bindRtcEvents(),this.rtmEngine&&this.bindRtmEvents(),this.channel=e,this.covSubRenderController.setMode(this.renderMode),this.covSubRenderController.run(),this._startEventTimeoutWarnings()}unsubscribe(){this._clearEventTimeout(),this.unbindRtcEvents(),this.rtmEngine&&this.unbindRtmEvents(),this.channel=null,this.covSubRenderController.cleanup(),this.chunkedAssembler.clear()}destroy(){const e=bs._instance;e&&(e.callMessagePrint("debug",`${bs.NAME} destroyed`),e._clearEventTimeout(),e.covSubRenderController.cleanup(),e.chunkedAssembler.clear(),e.unbindRtcEvents(),e.rtcEngine=null,e.unbindRtmEvents(),e.rtmEngine=null,e.renderMode="unknown",e.channel=null,e.removeAllEventListeners(),bs._instance=null)}async chat(e,o){switch(o.messageType){case"text":return this.sendText(e,o);case"image":return this.sendImage(e,o);default:throw new ConversationalAIError(`Unsupported chat message type: ${o.messageType}. Supported types: TEXT, IMAGE.`)}}async sendText(e,o){const d=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${d}] [chat] ${e}`,o);const I=this.requireRTM("sendText"),f={priority:o.priority??"interrupted",interruptable:o.responseInterruptable??!0,message:o.text??""};try{const S=JSON.stringify(f),v={channelType:"USER",customType:"user.transcription"};this.callMessagePrint("debug",`msg: [traceID: ${d}] rtm publish`,S);const L=await I.publish(e,S,v);this.callMessagePrint("debug",`>>> [traceID:${d}] [chat]`,"successfully sent chat message",L)}catch(S){throw this.callMessagePrint("error",`>>> [traceID:${d}] [chat]`,"failed to send chat message",S),new ConversationalAIError(`Failed to send chat message: ${S.message??S}`,{cause:S})}}async sendImage(e,o){const d=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${d}] [chat] ${e}`,o);const I=this.requireRTM("sendImage"),f={uuid:o.uuid,image_url:(o==null?void 0:o.url)||"",image_base64:(o==null?void 0:o.base64)||""};try{const S=JSON.stringify(f),v={channelType:"USER",customType:"image.upload"};this.callMessagePrint("debug",`msg: [traceID: ${d}] rtm publish`,S);const L=await I.publish(e,S,v);this.callMessagePrint("debug",`>>> [traceID:${d}] [chat]`,"successfully sent image message",L)}catch(S){throw this.callMessagePrint("error",`>>> [traceID:${d}] [chat]`,"failed to send image message",S),new ConversationalAIError(`Failed to send image message: ${S.message??S}`,{cause:S})}}async interrupt(e){const o=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${o}] [interrupt]`,e);const d=this.requireRTM("interrupt"),I={channelType:"USER",customType:"message.interrupt"},f=JSON.stringify({customType:"message.interrupt"});try{const S=await d.publish(e,f,I);this.callMessagePrint("debug",`>>> [traceID:${o}] [interrupt]`,"successfully sent interrupt message",S)}catch(S){throw this.callMessagePrint("error",`>>> [traceID:${o}] [interrupt]`,"failed to send interrupt message",S),new ConversationalAIError(`Failed to send interrupt: ${S.message??S}`,{cause:S})}}onChatHistoryUpdated(e){this.callMessagePrint("debug",">>> transcript-updated",e),this.emit("transcript-updated",e)}onAgentStateChanged(e,o){this.callMessagePrint("debug",">>> agent-state-changed",e,o),this.emit("agent-state-changed",e,o)}onAgentInterrupted(e,o){this.callMessagePrint("debug",">>> agent-interrupted",e,o),this.emit("agent-interrupted",e,o)}onDebugLog(e){this.emit("debug-log",e)}onAgentMetrics(e,o){this.callMessagePrint("debug",">>> agent-metrics",e,o),this.emit("agent-metrics",e,o)}onAgentError(e,o){this.callMessagePrint("error",">>> agent-error",e,o),this.emit("agent-error",e,o)}onMessageReceiptUpdated(e,o){this.callMessagePrint("debug",">>> message-receipt-updated",e,o),this.emit("message-receipt-updated",e,o)}onMessageError(e,o){this.callMessagePrint("error",">>> message-error",e,o),this.emit("message-error",e,o)}onMessageSalStatus(e,o){this.callMessagePrint("debug",">>> message-sal-status",e,o),this.emit("message-sal-status",e,o)}_clearEventTimeout(){this._eventTimeoutId!==null&&(clearTimeout(this._eventTimeoutId),this._eventTimeoutId=null),this._trackTranscriptHandler&&(this.off("transcript-updated",this._trackTranscriptHandler),this._trackTranscriptHandler=null),this._trackStateHandler&&(this.off("agent-state-changed",this._trackStateHandler),this._trackStateHandler=null)}_startEventTimeoutWarnings(){}bindRtcEvents(){this.getCfg().rtcEngine.on("audio-pts",this._boundHandleRtcAudioPTS),this.getCfg().rtcEngine.on("stream-message",this._boundHandleRtcStreamMessage)}unbindRtcEvents(){var e,o;(e=this.rtcEngine)==null||e.off("audio-pts",this._boundHandleRtcAudioPTS),(o=this.rtcEngine)==null||o.off("stream-message",this._boundHandleRtcStreamMessage)}bindRtmEvents(){this.rtmEngine.addEventListener("message",this._boundHandleRtmMessage),this.rtmEngine.addEventListener("presence",this._boundHandleRtmPresence),this.rtmEngine.addEventListener("status",this._boundHandleRtmStatus)}unbindRtmEvents(){var d;const e=["message","presence","status"],o=[this._boundHandleRtmMessage,this._boundHandleRtmPresence,this._boundHandleRtmStatus];for(let I=0;I>> [traceID:${o}] message`,`Publisher: ${e.publisher}, type: ${e.messageType}`);const d=e.message;let I;if(typeof d=="string")try{I=JSON.parse(d)}catch{this.callMessagePrint("warn",`>>> [traceID:${o}] message`,"Failed to parse RTM message",d);return}else if(d instanceof Uint8Array)try{const S=new TextDecoder("utf-8").decode(d);I=JSON.parse(S)}catch{this.callMessagePrint("warn",`>>> [traceID:${o}] message`,"Failed to parse RTM binary message");return}else{this.callMessagePrint("warn",`>>> [traceID:${o}] message`,"Unsupported message type received");return}this.callMessagePrint("debug",`>>> [traceID:${o}] message`,I);try{this.covSubRenderController.handleMessage(I,{publisher:e.publisher})}catch(f){this.callMessagePrint("error",`>>> [traceID:${o}] message`,"Error handling RTM message",f)}}_handleRtmPresence(e){const o=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${o}] presence`,`Publisher: ${e.publisher}`);const d=e.stateChanged;d&&typeof d.state=="string"&&typeof d.turn_id<"u"?(this.callMessagePrint("debug",`>>> [traceID:${o}] presence`,`State changed: ${d.state}, Turn ID: ${d.turn_id}, timestamp: ${e.timestamp}`),this.covSubRenderController.handleAgentStatus({...e,stateChanged:{state:d.state,turn_id:String(d.turn_id)}})):this.callMessagePrint("debug",`>>> [traceID:${o}] presence`,"No state change detected, skipping handling presence event")}_handleRtmStatus(e){const o=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${o}] status`,e)}};_AgoraVoiceAI.NAME=TAG2;_AgoraVoiceAI.VERSION=VERSION;_AgoraVoiceAI._instance=null;_AgoraVoiceAI._initPromise=null;var AgoraVoiceAI=_AgoraVoiceAI;function r(n){var e,o,d="";if(typeof n=="string"||typeof n=="number")d+=n;else if(typeof n=="object")if(Array.isArray(n)){var I=n.length;for(e=0;en.length)&&(e=n.length);for(var o=0,d=Array(e);o2?d-2:0),f=2;f1?o-1:0),I=1;I"u"?null:unapply(BigInt.prototype.toString),symbolToString=typeof Symbol>"u"?null:unapply(Symbol.prototype.toString),objectHasOwnProperty=unapply(Object.prototype.hasOwnProperty),objectToString=unapply(Object.prototype.toString),regExpTest=unapply(RegExp.prototype.test),typeErrorCreate=unconstruct(TypeError);function unapply(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var o=arguments.length,d=new Array(o>1?o-1:0),I=1;I2&&arguments[2]!==void 0?arguments[2]:stringToLowerCase;if(setPrototypeOf&&setPrototypeOf(n,null),!arrayIsArray(e))return n;let d=e.length;for(;d--;){let I=e[d];if(typeof I=="string"){const f=o(I);f!==I&&(isFrozen(e)||(e[d]=f),I=f)}n[I]=!0}return n}function cleanArray(n){for(let e=0;e/g),TMPLIT_EXPR=seal(/\${[\w\W]*/g),DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]+$/),ARIA_ATTR=seal(/^aria-[\-\w]+$/),IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i),ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),DOCTYPE_NAME=seal(/^html$/i),CUSTOM_ELEMENT=seal(/^[a-z][.\w]*(-[.\w]+)+$/i),ELEMENT_MARKUP_PROBE=seal(/<[/\w!]/g),COMMENT_MARKUP_PROBE=seal(/<[/\w]/g),FALLBACK_TAG_CLOSE=seal(/<\/no(script|embed|frames)/i),SELF_CLOSING_TAG=seal(/\/>/i),NODE_TYPE={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},getGlobal=function(){return typeof window>"u"?null:window},_createTrustedTypesPolicy=function(e,o){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let d=null;const I="data-tt-policy-suffix";o&&o.hasAttribute(I)&&(d=o.getAttribute(I));const f="dompurify"+(d?"#"+d:"");try{return e.createPolicy(f,{createHTML(S){return S},createScriptURL(S){return S}})}catch{return console.warn("TrustedTypes policy "+f+" could not be created."),null}},_createHooksMap=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},_resolveSetOption=function(e,o,d,I){return objectHasOwnProperty(e,o)&&arrayIsArray(e[o])?addToSet(I.base?clone(I.base):{},e[o],I.transform):d};function createDOMPurify(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const e=dr=>createDOMPurify(dr);if(e.version="3.4.11",e.removed=[],!n||!n.document||n.document.nodeType!==NODE_TYPE.document||!n.Element)return e.isSupported=!1,e;let o=n.document;const d=o,I=d.currentScript;n.DocumentFragment;const f=n.HTMLTemplateElement,S=n.Node,v=n.Element,L=n.NodeFilter,x=n.NamedNodeMap;x===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;const F=n.DOMParser,Y=n.trustedTypes,j=v.prototype,W=lookupGetter(j,"cloneNode"),re=lookupGetter(j,"remove"),ee=lookupGetter(j,"nextSibling"),he=lookupGetter(j,"childNodes"),ue=lookupGetter(j,"parentNode"),Ee=lookupGetter(j,"shadowRoot"),_e=lookupGetter(j,"attributes"),De=S&&S.prototype?lookupGetter(S.prototype,"nodeType"):null,Fe=S&&S.prototype?lookupGetter(S.prototype,"nodeName"):null;if(typeof f=="function"){const dr=o.createElement("template");dr.content&&dr.content.ownerDocument&&(o=dr.content.ownerDocument)}let Ve,Ge="",He,At=!1,Bt=0;const Tt=function(){if(Bt>0)throw typeErrorCreate('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},rt=function(Ze){Tt(),Bt++;try{return Ve.createHTML(Ze)}finally{Bt--}},ye=function(Ze){Tt(),Bt++;try{return Ve.createScriptURL(Ze)}finally{Bt--}},lt=function(){return At||(He=_createTrustedTypesPolicy(Y,I),At=!0),He},Yt=o,ct=Yt.implementation,ht=Yt.createNodeIterator,vt=Yt.createDocumentFragment,ar=Yt.getElementsByTagName,jt=d.importNode;let vr=_createHooksMap();e.isSupported=typeof entries=="function"&&typeof ue=="function"&&ct&&ct.createHTMLDocument!==void 0;const ai=MUSTACHE_EXPR,pi=ERB_EXPR,yi=TMPLIT_EXPR,fi=DATA_ATTR,Jn=ARIA_ATTR,xr=IS_SCRIPT_OR_DATA,pr=ATTR_WHITESPACE,ei=CUSTOM_ELEMENT;let _i=IS_ALLOWED_URI,Gr=null;const oi=addToSet({},[...html$1,...svg$1,...svgFilters,...mathMl$1,...text]);let Oi=null;const _o=addToSet({},[...html,...svg,...mathMl,...xml]);let $n=Object.seal(create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),gs=null,Bs=null;const Kn=Object.seal(create(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Tn=!0,Zn=!0,hc=!1,Fs=!0,bt=!1,Es=!0,Me=!1,ot=!1,Ct=null,Kt=null,Xr=!1,Lr=!1,Jr=!1,zr=!1,ci=!0,ro=!1;const Ho="user-content-";let Oa=!0,da=!1,ua={},Ns=null;const w1=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let qc=null;const ag=addToSet({},["audio","video","img","source","image","track"]);let du=null;const D1=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),oA="http://www.w3.org/1998/Math/MathML",xA="http://www.w3.org/2000/svg",Mo="http://www.w3.org/1999/xhtml";let _r=Mo,rn=!1,dn=null;const Io=addToSet({},[oA,xA,Mo],stringToString),b1=freeze(["mi","mo","mn","ms","mtext"]);let u1=addToSet({},b1);const N1=freeze(["annotation-xml"]);let Ic=addToSet({},N1);const Sa=addToSet({},["title","style","font","a","script"]);let Wc=null;const Ll=["application/xhtml+xml","text/html"],mA="text/html";let hs=null,O1=null;const gE=o.createElement("form"),EE=function(Ze){return Ze instanceof RegExp||Ze instanceof Function},Ag=function(){let Ze=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(O1&&O1===Ze)return;(!Ze||typeof Ze!="object")&&(Ze={}),Ze=clone(Ze),Wc=Ll.indexOf(Ze.PARSER_MEDIA_TYPE)===-1?mA:Ze.PARSER_MEDIA_TYPE,hs=Wc==="application/xhtml+xml"?stringToString:stringToLowerCase,Gr=_resolveSetOption(Ze,"ALLOWED_TAGS",oi,{transform:hs}),Oi=_resolveSetOption(Ze,"ALLOWED_ATTR",_o,{transform:hs}),dn=_resolveSetOption(Ze,"ALLOWED_NAMESPACES",Io,{transform:stringToString}),du=_resolveSetOption(Ze,"ADD_URI_SAFE_ATTR",D1,{transform:hs,base:D1}),qc=_resolveSetOption(Ze,"ADD_DATA_URI_TAGS",ag,{transform:hs,base:ag}),Ns=_resolveSetOption(Ze,"FORBID_CONTENTS",w1,{transform:hs}),gs=_resolveSetOption(Ze,"FORBID_TAGS",clone({}),{transform:hs}),Bs=_resolveSetOption(Ze,"FORBID_ATTR",clone({}),{transform:hs}),ua=objectHasOwnProperty(Ze,"USE_PROFILES")?Ze.USE_PROFILES&&typeof Ze.USE_PROFILES=="object"?clone(Ze.USE_PROFILES):Ze.USE_PROFILES:!1,Tn=Ze.ALLOW_ARIA_ATTR!==!1,Zn=Ze.ALLOW_DATA_ATTR!==!1,hc=Ze.ALLOW_UNKNOWN_PROTOCOLS||!1,Fs=Ze.ALLOW_SELF_CLOSE_IN_ATTR!==!1,bt=Ze.SAFE_FOR_TEMPLATES||!1,Es=Ze.SAFE_FOR_XML!==!1,Me=Ze.WHOLE_DOCUMENT||!1,Lr=Ze.RETURN_DOM||!1,Jr=Ze.RETURN_DOM_FRAGMENT||!1,zr=Ze.RETURN_TRUSTED_TYPE||!1,Xr=Ze.FORCE_BODY||!1,ci=Ze.SANITIZE_DOM!==!1,ro=Ze.SANITIZE_NAMED_PROPS||!1,Oa=Ze.KEEP_CONTENT!==!1,da=Ze.IN_PLACE||!1,_i=isRegex(Ze.ALLOWED_URI_REGEXP)?Ze.ALLOWED_URI_REGEXP:IS_ALLOWED_URI,_r=typeof Ze.NAMESPACE=="string"?Ze.NAMESPACE:Mo,u1=objectHasOwnProperty(Ze,"MATHML_TEXT_INTEGRATION_POINTS")&&Ze.MATHML_TEXT_INTEGRATION_POINTS&&typeof Ze.MATHML_TEXT_INTEGRATION_POINTS=="object"?clone(Ze.MATHML_TEXT_INTEGRATION_POINTS):addToSet({},b1),Ic=objectHasOwnProperty(Ze,"HTML_INTEGRATION_POINTS")&&Ze.HTML_INTEGRATION_POINTS&&typeof Ze.HTML_INTEGRATION_POINTS=="object"?clone(Ze.HTML_INTEGRATION_POINTS):addToSet({},N1);const Nt=objectHasOwnProperty(Ze,"CUSTOM_ELEMENT_HANDLING")&&Ze.CUSTOM_ELEMENT_HANDLING&&typeof Ze.CUSTOM_ELEMENT_HANDLING=="object"?clone(Ze.CUSTOM_ELEMENT_HANDLING):create(null);if($n=create(null),objectHasOwnProperty(Nt,"tagNameCheck")&&EE(Nt.tagNameCheck)&&($n.tagNameCheck=Nt.tagNameCheck),objectHasOwnProperty(Nt,"attributeNameCheck")&&EE(Nt.attributeNameCheck)&&($n.attributeNameCheck=Nt.attributeNameCheck),objectHasOwnProperty(Nt,"allowCustomizedBuiltInElements")&&typeof Nt.allowCustomizedBuiltInElements=="boolean"&&($n.allowCustomizedBuiltInElements=Nt.allowCustomizedBuiltInElements),seal($n),bt&&(Zn=!1),Jr&&(Lr=!0),ua&&(Gr=addToSet({},text),Oi=create(null),ua.html===!0&&(addToSet(Gr,html$1),addToSet(Oi,html)),ua.svg===!0&&(addToSet(Gr,svg$1),addToSet(Oi,svg),addToSet(Oi,xml)),ua.svgFilters===!0&&(addToSet(Gr,svgFilters),addToSet(Oi,svg),addToSet(Oi,xml)),ua.mathMl===!0&&(addToSet(Gr,mathMl$1),addToSet(Oi,mathMl),addToSet(Oi,xml))),Kn.tagCheck=null,Kn.attributeCheck=null,objectHasOwnProperty(Ze,"ADD_TAGS")&&(typeof Ze.ADD_TAGS=="function"?Kn.tagCheck=Ze.ADD_TAGS:arrayIsArray(Ze.ADD_TAGS)&&(Gr===oi&&(Gr=clone(Gr)),addToSet(Gr,Ze.ADD_TAGS,hs))),objectHasOwnProperty(Ze,"ADD_ATTR")&&(typeof Ze.ADD_ATTR=="function"?Kn.attributeCheck=Ze.ADD_ATTR:arrayIsArray(Ze.ADD_ATTR)&&(Oi===_o&&(Oi=clone(Oi)),addToSet(Oi,Ze.ADD_ATTR,hs))),objectHasOwnProperty(Ze,"ADD_URI_SAFE_ATTR")&&arrayIsArray(Ze.ADD_URI_SAFE_ATTR)&&addToSet(du,Ze.ADD_URI_SAFE_ATTR,hs),objectHasOwnProperty(Ze,"FORBID_CONTENTS")&&arrayIsArray(Ze.FORBID_CONTENTS)&&(Ns===w1&&(Ns=clone(Ns)),addToSet(Ns,Ze.FORBID_CONTENTS,hs)),objectHasOwnProperty(Ze,"ADD_FORBID_CONTENTS")&&arrayIsArray(Ze.ADD_FORBID_CONTENTS)&&(Ns===w1&&(Ns=clone(Ns)),addToSet(Ns,Ze.ADD_FORBID_CONTENTS,hs)),Oa&&(Gr["#text"]=!0),Me&&addToSet(Gr,["html","head","body"]),Gr.table&&(addToSet(Gr,["tbody"]),delete gs.tbody),Ze.TRUSTED_TYPES_POLICY){if(typeof Ze.TRUSTED_TYPES_POLICY.createHTML!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ze.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Rr=Ve;Ve=Ze.TRUSTED_TYPES_POLICY;try{Ge=rt("")}catch(ti){throw Ve=Rr,ti}}else Ze.TRUSTED_TYPES_POLICY===null?(Ve=void 0,Ge=""):(Ve===void 0&&(Ve=lt()),Ve&&typeof Ge=="string"&&(Ge=rt("")));freeze&&freeze(Ze),O1=Ze},Ml=addToSet({},[...svg$1,...svgFilters,...svgDisallowed]),Cd=addToSet({},[...mathMl$1,...mathMlDisallowed]),pd=function(Ze,Nt,Rr){return Nt.namespaceURI===Mo?Ze==="svg":Nt.namespaceURI===oA?Ze==="svg"&&(Rr==="annotation-xml"||u1[Rr]):!!Ml[Ze]},uu=function(Ze,Nt,Rr){return Nt.namespaceURI===Mo?Ze==="math":Nt.namespaceURI===xA?Ze==="math"&&Ic[Rr]:!!Cd[Ze]},Up=function(Ze,Nt,Rr){return Nt.namespaceURI===xA&&!Ic[Rr]||Nt.namespaceURI===oA&&!u1[Rr]?!1:!Cd[Ze]&&(Sa[Ze]||!Ml[Ze])},L1=function(Ze){let Nt=ue(Ze);(!Nt||!Nt.tagName)&&(Nt={namespaceURI:_r,tagName:"template"});const Rr=stringToLowerCase(Ze.tagName),ti=stringToLowerCase(Nt.tagName);return dn[Ze.namespaceURI]?Ze.namespaceURI===xA?pd(Rr,Nt,ti):Ze.namespaceURI===oA?uu(Rr,Nt,ti):Ze.namespaceURI===Mo?Up(Rr,Nt,ti):!!(Wc==="application/xhtml+xml"&&dn[Ze.namespaceURI]):!1},La=function(Ze){arrayPush(e.removed,{element:Ze});try{ue(Ze).removeChild(Ze)}catch{if(re(Ze),!ue(Ze))throw typeErrorCreate("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},hI=function(Ze){const Nt=he(Ze);if(Nt){const ti=[];arrayForEach(Nt,Ui=>{arrayPush(ti,Ui)}),arrayForEach(ti,Ui=>{try{re(Ui)}catch{}})}const Rr=_e(Ze);if(Rr)for(let ti=Rr.length-1;ti>=0;--ti){const Ui=Rr[ti],hn=Ui&&Ui.name;if(typeof hn=="string")try{Ze.removeAttribute(hn)}catch{}}},ts=function(Ze,Nt){try{arrayPush(e.removed,{attribute:Nt.getAttributeNode(Ze),from:Nt})}catch{arrayPush(e.removed,{attribute:null,from:Nt})}if(Nt.removeAttribute(Ze),Ze==="is")if(Lr||Jr)try{La(Nt)}catch{}else try{Nt.setAttribute(Ze,"")}catch{}},Xs=function(Ze){const Nt=_e(Ze);if(Nt)for(let Rr=Nt.length-1;Rr>=0;--Rr){const ti=Nt[Rr],Ui=ti&&ti.name;if(!(typeof Ui!="string"||Oi[hs(Ui)]))try{Ze.removeAttribute(Ui)}catch{}}},xp=function(Ze){const Nt=[Ze];for(;Nt.length>0;){const Rr=Nt.pop();(De?De(Rr):Rr.nodeType)===NODE_TYPE.element&&Xs(Rr);const Ui=he(Rr);if(Ui)for(let hn=Ui.length-1;hn>=0;--hn)Nt.push(Ui[hn])}},II=function(Ze){let Nt=null,Rr=null;if(Xr)Ze=""+Ze;else{const hn=stringMatch(Ze,/^[\r\n\t ]+/);Rr=hn&&hn[0]}Wc==="application/xhtml+xml"&&_r===Mo&&(Ze=''+Ze+"");const ti=Ve?rt(Ze):Ze;if(_r===Mo)try{Nt=new F().parseFromString(ti,Wc)}catch{}if(!Nt||!Nt.documentElement){Nt=ct.createDocument(_r,"template",null);try{Nt.documentElement.innerHTML=rn?Ge:ti}catch{}}const Ui=Nt.body||Nt.documentElement;return Ze&&Rr&&Ui.insertBefore(o.createTextNode(Rr),Ui.childNodes[0]||null),_r===Mo?ar.call(Nt,Me?"html":"body")[0]:Me?Nt.documentElement:Ui},hE=function(Ze){return ht.call(Ze.ownerDocument||Ze,Ze,L.SHOW_ELEMENT|L.SHOW_COMMENT|L.SHOW_TEXT|L.SHOW_PROCESSING_INSTRUCTION|L.SHOW_CDATA_SECTION,null)},fd=function(Ze){return Ze=stringReplace(Ze,ai," "),Ze=stringReplace(Ze,pi," "),Ze=stringReplace(Ze,yi," "),Ze},kl=function(Ze){var Nt;Ze.normalize();const Rr=ht.call(Ze.ownerDocument||Ze,Ze,L.SHOW_TEXT|L.SHOW_COMMENT|L.SHOW_CDATA_SECTION|L.SHOW_PROCESSING_INSTRUCTION,null);let ti=Rr.nextNode();for(;ti;)ti.data=fd(ti.data),ti=Rr.nextNode();const Ui=(Nt=Ze.querySelectorAll)===null||Nt===void 0?void 0:Nt.call(Ze,"template");Ui&&arrayForEach(Ui,hn=>{_d(hn.content)&&kl(hn.content)})},cg=function(Ze){const Nt=Fe?Fe(Ze):null;return typeof Nt!="string"||hs(Nt)!=="form"?!1:typeof Ze.nodeName!="string"||typeof Ze.textContent!="string"||typeof Ze.removeChild!="function"||Ze.attributes!==_e(Ze)||typeof Ze.removeAttribute!="function"||typeof Ze.setAttribute!="function"||typeof Ze.namespaceURI!="string"||typeof Ze.insertBefore!="function"||typeof Ze.hasChildNodes!="function"||Ze.nodeType!==De(Ze)||Ze.childNodes!==he(Ze)},_d=function(Ze){if(!De||typeof Ze!="object"||Ze===null)return!1;try{return De(Ze)===NODE_TYPE.documentFragment}catch{return!1}},lg=function(Ze){if(!De||typeof Ze!="object"||Ze===null)return!1;try{return typeof De(Ze)=="number"}catch{return!1}};function FA(dr,Ze,Nt){dr.length!==0&&arrayForEach(dr,Rr=>{Rr.call(e,Ze,Nt,O1)})}const md=function(Ze,Nt){return!!(Es&&Ze.hasChildNodes()&&!lg(Ze.firstElementChild)&®ExpTest(ELEMENT_MARKUP_PROBE,Ze.textContent)&®ExpTest(ELEMENT_MARKUP_PROBE,Ze.innerHTML)||Es&&Ze.namespaceURI===Mo&&Nt==="style"&&lg(Ze.firstElementChild)||Ze.nodeType===NODE_TYPE.processingInstruction||Es&&Ze.nodeType===NODE_TYPE.comment&®ExpTest(COMMENT_MARKUP_PROBE,Ze.data))},Xc=function(Ze,Nt){if(!gs[Nt]&&dg(Nt)&&($n.tagNameCheck instanceof RegExp&®ExpTest($n.tagNameCheck,Nt)||$n.tagNameCheck instanceof Function&&$n.tagNameCheck(Nt)))return!1;if(Oa&&!Ns[Nt]){const Rr=ue(Ze),ti=he(Ze);if(ti&&Rr){const Ui=ti.length;for(let hn=Ui-1;hn>=0;--hn){const Uo=da?ti[hn]:W(ti[hn],!0);Rr.insertBefore(Uo,ee(Ze))}}}return La(Ze),!0},IE=function(Ze){if(FA(vr.beforeSanitizeElements,Ze,null),cg(Ze))return La(Ze),!0;const Nt=hs(Fe?Fe(Ze):Ze.nodeName);if(FA(vr.uponSanitizeElement,Ze,{tagName:Nt,allowedTags:Gr}),md(Ze,Nt))return La(Ze),!0;if(gs[Nt]||!(Kn.tagCheck instanceof Function&&Kn.tagCheck(Nt))&&!Gr[Nt])return Xc(Ze,Nt);if((De?De(Ze):Ze.nodeType)===NODE_TYPE.element&&!L1(Ze)||(Nt==="noscript"||Nt==="noembed"||Nt==="noframes")&®ExpTest(FALLBACK_TAG_CLOSE,Ze.innerHTML))return La(Ze),!0;if(bt&&Ze.nodeType===NODE_TYPE.text){const ti=fd(Ze.textContent);Ze.textContent!==ti&&(arrayPush(e.removed,{element:Ze.cloneNode()}),Ze.textContent=ti)}return FA(vr.afterSanitizeElements,Ze,null),!1},vo=function(Ze,Nt,Rr){if(Bs[Nt]||ci&&(Nt==="id"||Nt==="name")&&(Rr in o||Rr in gE))return!1;const ti=Oi[Nt]||Kn.attributeCheck instanceof Function&&Kn.attributeCheck(Nt,Ze);if(!(Zn&®ExpTest(fi,Nt))){if(!(Tn&®ExpTest(Jn,Nt))){if(ti){if(!du[Nt]){if(!regExpTest(_i,stringReplace(Rr,pr,""))){if(!((Nt==="src"||Nt==="xlink:href"||Nt==="href")&&Ze!=="script"&&stringIndexOf(Rr,"data:")===0&&qc[Ze])){if(!(hc&&!regExpTest(xr,stringReplace(Rr,pr,"")))){if(Rr)return!1}}}}}else if(!(dg(Ze)&&($n.tagNameCheck instanceof RegExp&®ExpTest($n.tagNameCheck,Ze)||$n.tagNameCheck instanceof Function&&$n.tagNameCheck(Ze))&&($n.attributeNameCheck instanceof RegExp&®ExpTest($n.attributeNameCheck,Nt)||$n.attributeNameCheck instanceof Function&&$n.attributeNameCheck(Nt,Ze))||Nt==="is"&&$n.allowCustomizedBuiltInElements&&($n.tagNameCheck instanceof RegExp&®ExpTest($n.tagNameCheck,Rr)||$n.tagNameCheck instanceof Function&&$n.tagNameCheck(Rr))))return!1}}return!0},Po=addToSet({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),dg=function(Ze){return!Po[stringToLowerCase(Ze)]&®ExpTest(ei,Ze)},zh=function(Ze,Nt,Rr,ti){if(Ve&&typeof Y=="object"&&typeof Y.getAttributeType=="function"&&!Rr)switch(Y.getAttributeType(Ze,Nt)){case"TrustedHTML":return rt(ti);case"TrustedScriptURL":return ye(ti)}return ti},$h=function(Ze,Nt,Rr,ti){try{Rr?Ze.setAttributeNS(Rr,Nt,ti):Ze.setAttribute(Nt,ti),cg(Ze)?La(Ze):arrayPop(e.removed)}catch{ts(Nt,Ze)}},Zh=function(Ze){FA(vr.beforeSanitizeAttributes,Ze,null);const Nt=Ze.attributes;if(!Nt||cg(Ze))return;const Rr={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Oi,forceKeepAttr:void 0};let ti=Nt.length;const Ui=hs(Ze.nodeName);for(;ti--;){const hn=Nt[ti],Uo=hn.name,zs=hn.namespaceURI,GA=hn.value,M1=hs(Uo),A0=GA;let sA=Uo==="value"?A0:stringTrim(A0);if(Rr.attrName=M1,Rr.attrValue=sA,Rr.keepAttr=!0,Rr.forceKeepAttr=void 0,FA(vr.uponSanitizeAttribute,Ze,Rr),sA=Rr.attrValue,ro&&(M1==="id"||M1==="name")&&stringIndexOf(sA,Ho)!==0&&(ts(Uo,Ze),sA=Ho+sA),Es&®ExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,sA)){ts(Uo,Ze);continue}if(M1==="attributename"&&stringMatch(sA,"href")){ts(Uo,Ze);continue}if(!Rr.forceKeepAttr){if(!Rr.keepAttr){ts(Uo,Ze);continue}if(!Fs&®ExpTest(SELF_CLOSING_TAG,sA)){ts(Uo,Ze);continue}if(bt&&(sA=fd(sA)),!vo(Ui,M1,sA)){ts(Uo,Ze);continue}sA=zh(Ui,M1,zs,sA),sA!==A0&&$h(Ze,Uo,zs,sA)}}FA(vr.afterSanitizeAttributes,Ze,null)},Bd=function(Ze){let Nt=null;const Rr=hE(Ze);for(FA(vr.beforeSanitizeShadowDOM,Ze,null);Nt=Rr.nextNode();)if(FA(vr.uponSanitizeShadowNode,Nt,null),IE(Nt),Zh(Nt),_d(Nt.content)&&Bd(Nt.content),(De?De(Nt):Nt.nodeType)===NODE_TYPE.element){const Ui=Ee(Nt);_d(Ui)&&(o0(Ui),Bd(Ui))}FA(vr.afterSanitizeShadowDOM,Ze,null)},o0=function(Ze){const Nt=[{node:Ze,shadow:null}];for(;Nt.length>0;){const Rr=Nt.pop();if(Rr.shadow){Bd(Rr.shadow);continue}const ti=Rr.node,hn=(De?De(ti):ti.nodeType)===NODE_TYPE.element,Uo=he(ti);if(Uo)for(let zs=Uo.length-1;zs>=0;--zs)Nt.push({node:Uo[zs],shadow:null});if(hn){const zs=Fe?Fe(ti):null;if(typeof zs=="string"&&hs(zs)==="template"){const GA=ti.content;_d(GA)&&Nt.push({node:GA,shadow:null})}}if(hn){const zs=Ee(ti);_d(zs)&&Nt.push({node:null,shadow:zs},{node:zs,shadow:null})}}};return e.sanitize=function(dr){let Ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Nt=null,Rr=null,ti=null,Ui=null;if(rn=!dr,rn&&(dr=""),typeof dr!="string"&&!lg(dr)&&(dr=stringifyValue(dr),typeof dr!="string"))throw typeErrorCreate("dirty is not a string, aborting");if(!e.isSupported)return dr;ot?(Gr=Ct,Oi=Kt):Ag(Ze),(vr.uponSanitizeElement.length>0||vr.uponSanitizeAttribute.length>0)&&(Gr=clone(Gr)),vr.uponSanitizeAttribute.length>0&&(Oi=clone(Oi)),e.removed=[];const hn=da&&typeof dr!="string"&&lg(dr);if(hn){const GA=Fe?Fe(dr):dr.nodeName;if(typeof GA=="string"){const M1=hs(GA);if(!Gr[M1]||gs[M1])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}if(cg(dr))throw typeErrorCreate("root node is clobbered and cannot be sanitized in-place");try{o0(dr)}catch(M1){throw hI(dr),M1}}else if(lg(dr))Nt=II(""),Rr=Nt.ownerDocument.importNode(dr,!0),Rr.nodeType===NODE_TYPE.element&&Rr.nodeName==="BODY"||Rr.nodeName==="HTML"?Nt=Rr:Nt.appendChild(Rr),o0(Rr);else{if(!Lr&&!bt&&!Me&&dr.indexOf("<")===-1)return Ve&&zr?rt(dr):dr;if(Nt=II(dr),!Nt)return Lr?null:zr?Ge:""}Nt&&Xr&&La(Nt.firstChild);const Uo=hE(hn?dr:Nt);try{for(;ti=Uo.nextNode();)IE(ti),Zh(ti),_d(ti.content)&&Bd(ti.content)}catch(GA){throw hn&&hI(dr),GA}if(hn)return arrayForEach(e.removed,GA=>{GA.element&&xp(GA.element)}),bt&&kl(dr),dr;if(Lr){if(bt&&kl(Nt),Jr)for(Ui=vt.call(Nt.ownerDocument);Nt.firstChild;)Ui.appendChild(Nt.firstChild);else Ui=Nt;return(Oi.shadowroot||Oi.shadowrootmode)&&(Ui=jt.call(d,Ui,!0)),Ui}let zs=Me?Nt.outerHTML:Nt.innerHTML;return Me&&Gr["!doctype"]&&Nt.ownerDocument&&Nt.ownerDocument.doctype&&Nt.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,Nt.ownerDocument.doctype.name)&&(zs=" +`+zs),bt&&(zs=fd(zs)),Ve&&zr?rt(zs):zs},e.setConfig=function(){let dr=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ag(dr),ot=!0,Ct=Gr,Kt=Oi},e.clearConfig=function(){O1=null,ot=!1,Ct=null,Kt=null,Ve=He,Ge=""},e.isValidAttribute=function(dr,Ze,Nt){O1||Ag({});const Rr=hs(dr),ti=hs(Ze);return vo(Rr,ti,Nt)},e.addHook=function(dr,Ze){typeof Ze=="function"&&objectHasOwnProperty(vr,dr)&&arrayPush(vr[dr],Ze)},e.removeHook=function(dr,Ze){if(objectHasOwnProperty(vr,dr)){if(Ze!==void 0){const Nt=arrayLastIndexOf(vr[dr],Ze);return Nt===-1?void 0:arraySplice(vr[dr],Nt,1)[0]}return arrayPop(vr[dr])}},e.removeHooks=function(dr){objectHasOwnProperty(vr,dr)&&(vr[dr]=[])},e.removeAllHooks=function(){vr=_createHooksMap()},e}createDOMPurify();const concatArrays=(n,e)=>{const o=new Array(n.length+e.length);for(let d=0;d({classGroupId:n,validator:e}),createClassPartObject=(n=new Map,e=null,o)=>({nextPart:n,validators:e,classGroupId:o}),CLASS_PART_SEPARATOR="-",EMPTY_CONFLICTS=[],ARBITRARY_PROPERTY_PREFIX="arbitrary..",createClassGroupUtils=n=>{const e=createClassMap(n),{conflictingClassGroups:o,conflictingClassGroupModifiers:d}=n;return{getClassGroupId:S=>{if(S.startsWith("[")&&S.endsWith("]"))return getGroupIdForArbitraryProperty(S);const v=S.split(CLASS_PART_SEPARATOR),L=v[0]===""&&v.length>1?1:0;return getGroupRecursive(v,L,e)},getConflictingClassGroupIds:(S,v)=>{if(v){const L=d[S],x=o[S];return L?x?concatArrays(x,L):L:x||EMPTY_CONFLICTS}return o[S]||EMPTY_CONFLICTS}}},getGroupRecursive=(n,e,o)=>{if(n.length-e===0)return o.classGroupId;const I=n[e],f=o.nextPart.get(I);if(f){const x=getGroupRecursive(n,e+1,f);if(x)return x}const S=o.validators;if(S===null)return;const v=e===0?n.join(CLASS_PART_SEPARATOR):n.slice(e).join(CLASS_PART_SEPARATOR),L=S.length;for(let x=0;xn.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=n.slice(1,-1),o=e.indexOf(":"),d=e.slice(0,o);return d?ARBITRARY_PROPERTY_PREFIX+d:void 0})(),createClassMap=n=>{const{theme:e,classGroups:o}=n;return processClassGroups(o,e)},processClassGroups=(n,e)=>{const o=createClassPartObject();for(const d in n){const I=n[d];processClassesRecursively(I,o,d,e)}return o},processClassesRecursively=(n,e,o,d)=>{const I=n.length;for(let f=0;f{if(typeof n=="string"){processStringDefinition(n,e,o);return}if(typeof n=="function"){processFunctionDefinition(n,e,o,d);return}processObjectDefinition(n,e,o,d)},processStringDefinition=(n,e,o)=>{const d=n===""?e:getPart(e,n);d.classGroupId=o},processFunctionDefinition=(n,e,o,d)=>{if(isThemeGetter(n)){processClassesRecursively(n(d),e,o,d);return}e.validators===null&&(e.validators=[]),e.validators.push(createClassValidatorObject(o,n))},processObjectDefinition=(n,e,o,d)=>{const I=Object.entries(n),f=I.length;for(let S=0;S{let o=n;const d=e.split(CLASS_PART_SEPARATOR),I=d.length;for(let f=0;f"isThemeGetter"in n&&n.isThemeGetter===!0,createLruCache=n=>{if(n<1)return{get:()=>{},set:()=>{}};let e=0,o=Object.create(null),d=Object.create(null);const I=(f,S)=>{o[f]=S,e++,e>n&&(e=0,d=o,o=Object.create(null))};return{get(f){let S=o[f];if(S!==void 0)return S;if((S=d[f])!==void 0)return I(f,S),S},set(f,S){f in o?o[f]=S:I(f,S)}}},IMPORTANT_MODIFIER="!",MODIFIER_SEPARATOR=":",EMPTY_MODIFIERS=[],createResultObject=(n,e,o,d,I)=>({modifiers:n,hasImportantModifier:e,baseClassName:o,maybePostfixModifierPosition:d,isExternal:I}),createParseClassName=n=>{const{prefix:e,experimentalParseClassName:o}=n;let d=I=>{const f=[];let S=0,v=0,L=0,x;const F=I.length;for(let ee=0;eeL?x-L:void 0;return createResultObject(f,W,j,re)};if(e){const I=e+MODIFIER_SEPARATOR,f=d;d=S=>S.startsWith(I)?f(S.slice(I.length)):createResultObject(EMPTY_MODIFIERS,!1,S,void 0,!0)}if(o){const I=d;d=f=>o({className:f,parseClassName:I})}return d},createSortModifiers=n=>{const e=new Map;return n.orderSensitiveModifiers.forEach((o,d)=>{e.set(o,1e6+d)}),o=>{const d=[];let I=[];for(let f=0;f0&&(I.sort(),d.push(...I),I=[]),d.push(S)):I.push(S)}return I.length>0&&(I.sort(),d.push(...I)),d}},createConfigUtils=n=>({cache:createLruCache(n.cacheSize),parseClassName:createParseClassName(n),sortModifiers:createSortModifiers(n),postfixLookupClassGroupIds:createPostfixLookupClassGroupIds(n),...createClassGroupUtils(n)}),createPostfixLookupClassGroupIds=n=>{const e=Object.create(null),o=n.postfixLookupClassGroups;if(o)for(let d=0;d{const{parseClassName:o,getClassGroupId:d,getConflictingClassGroupIds:I,sortModifiers:f,postfixLookupClassGroupIds:S}=e,v=[],L=n.trim().split(SPLIT_CLASSES_REGEX);let x="";for(let F=L.length-1;F>=0;F-=1){const Y=L[F],{isExternal:j,modifiers:W,hasImportantModifier:re,baseClassName:ee,maybePostfixModifierPosition:he}=o(Y);if(j){x=Y+(x.length>0?" "+x:x);continue}let ue=!!he,Ee;if(ue){const Ge=ee.substring(0,he);Ee=d(Ge);const He=Ee&&S[Ee]?d(ee):void 0;He&&He!==Ee&&(Ee=He,ue=!1)}else Ee=d(ee);if(!Ee){if(!ue){x=Y+(x.length>0?" "+x:x);continue}if(Ee=d(ee),!Ee){x=Y+(x.length>0?" "+x:x);continue}ue=!1}const _e=W.length===0?"":W.length===1?W[0]:f(W).join(":"),De=re?_e+IMPORTANT_MODIFIER:_e,Fe=De+Ee;if(v.indexOf(Fe)>-1)continue;v.push(Fe);const Ve=I(Ee,ue);for(let Ge=0;Ge0?" "+x:x)}return x},twJoin=(...n)=>{let e=0,o,d,I="";for(;e{if(typeof n=="string")return n;let e,o="";for(let d=0;d{let o,d,I,f;const S=L=>{const x=e.reduce((F,Y)=>Y(F),n());return o=createConfigUtils(x),d=o.cache.get,I=o.cache.set,f=v,v(L)},v=L=>{const x=d(L);if(x)return x;const F=mergeClassList(L,o);return I(L,F),F};return f=S,(...L)=>f(twJoin(...L))},fallbackThemeArr=[],fromTheme=n=>{const e=o=>o[n]||fallbackThemeArr;return e.isThemeGetter=!0,e},arbitraryValueRegex=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,arbitraryVariableRegex=/^\((?:(\w[\w-]*):)?(.+)\)$/i,fractionRegex=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,tshirtUnitRegex=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,lengthUnitRegex=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,colorFunctionRegex=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,shadowRegex=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,imageRegex=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,isFraction=n=>fractionRegex.test(n),isNumber=n=>!!n&&!Number.isNaN(Number(n)),isInteger=n=>!!n&&Number.isInteger(Number(n)),isPercent=n=>n.endsWith("%")&&isNumber(n.slice(0,-1)),isTshirtSize=n=>tshirtUnitRegex.test(n),isAny=()=>!0,isLengthOnly=n=>lengthUnitRegex.test(n)&&!colorFunctionRegex.test(n),isNever=()=>!1,isShadow=n=>shadowRegex.test(n),isImage=n=>imageRegex.test(n),isAnyNonArbitrary=n=>!isArbitraryValue(n)&&!isArbitraryVariable(n),isNamedContainerQuery=n=>n.startsWith("@container")&&(n[10]==="/"&&n[11]!==void 0||n[11]==="s"&&n[16]!==void 0&&n.startsWith("-size/",10)||n[11]==="n"&&n[18]!==void 0&&n.startsWith("-normal/",10)),isArbitrarySize=n=>getIsArbitraryValue(n,isLabelSize,isNever),isArbitraryValue=n=>arbitraryValueRegex.test(n),isArbitraryLength=n=>getIsArbitraryValue(n,isLabelLength,isLengthOnly),isArbitraryNumber=n=>getIsArbitraryValue(n,isLabelNumber,isNumber),isArbitraryWeight=n=>getIsArbitraryValue(n,isLabelWeight,isAny),isArbitraryFamilyName=n=>getIsArbitraryValue(n,isLabelFamilyName,isNever),isArbitraryPosition=n=>getIsArbitraryValue(n,isLabelPosition,isNever),isArbitraryImage=n=>getIsArbitraryValue(n,isLabelImage,isImage),isArbitraryShadow=n=>getIsArbitraryValue(n,isLabelShadow,isShadow),isArbitraryVariable=n=>arbitraryVariableRegex.test(n),isArbitraryVariableLength=n=>getIsArbitraryVariable(n,isLabelLength),isArbitraryVariableFamilyName=n=>getIsArbitraryVariable(n,isLabelFamilyName),isArbitraryVariablePosition=n=>getIsArbitraryVariable(n,isLabelPosition),isArbitraryVariableSize=n=>getIsArbitraryVariable(n,isLabelSize),isArbitraryVariableImage=n=>getIsArbitraryVariable(n,isLabelImage),isArbitraryVariableShadow=n=>getIsArbitraryVariable(n,isLabelShadow,!0),isArbitraryVariableWeight=n=>getIsArbitraryVariable(n,isLabelWeight,!0),getIsArbitraryValue=(n,e,o)=>{const d=arbitraryValueRegex.exec(n);return d?d[1]?e(d[1]):o(d[2]):!1},getIsArbitraryVariable=(n,e,o=!1)=>{const d=arbitraryVariableRegex.exec(n);return d?d[1]?e(d[1]):o:!1},isLabelPosition=n=>n==="position"||n==="percentage",isLabelImage=n=>n==="image"||n==="url",isLabelSize=n=>n==="length"||n==="size"||n==="bg-size",isLabelLength=n=>n==="length",isLabelNumber=n=>n==="number",isLabelFamilyName=n=>n==="family-name",isLabelWeight=n=>n==="number"||n==="weight",isLabelShadow=n=>n==="shadow",getDefaultConfig=()=>{const n=fromTheme("color"),e=fromTheme("font"),o=fromTheme("text"),d=fromTheme("font-weight"),I=fromTheme("tracking"),f=fromTheme("leading"),S=fromTheme("breakpoint"),v=fromTheme("container"),L=fromTheme("spacing"),x=fromTheme("radius"),F=fromTheme("shadow"),Y=fromTheme("inset-shadow"),j=fromTheme("text-shadow"),W=fromTheme("drop-shadow"),re=fromTheme("blur"),ee=fromTheme("perspective"),he=fromTheme("aspect"),ue=fromTheme("ease"),Ee=fromTheme("animate"),_e=()=>["auto","avoid","all","avoid-page","page","left","right","column"],De=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Fe=()=>[...De(),isArbitraryVariable,isArbitraryValue],Ve=()=>["auto","hidden","clip","visible","scroll"],Ge=()=>["auto","contain","none"],He=()=>[isArbitraryVariable,isArbitraryValue,L],At=()=>[isFraction,"full","auto",...He()],Bt=()=>[isInteger,"none","subgrid",isArbitraryVariable,isArbitraryValue],Tt=()=>["auto",{span:["full",isInteger,isArbitraryVariable,isArbitraryValue]},isInteger,isArbitraryVariable,isArbitraryValue],rt=()=>[isInteger,"auto",isArbitraryVariable,isArbitraryValue],ye=()=>["auto","min","max","fr",isArbitraryVariable,isArbitraryValue],lt=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Yt=()=>["start","end","center","stretch","center-safe","end-safe"],ct=()=>["auto",...He()],ht=()=>[isFraction,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...He()],vt=()=>[isFraction,"screen","full","dvw","lvw","svw","min","max","fit",...He()],ar=()=>[isFraction,"screen","full","lh","dvh","lvh","svh","min","max","fit",...He()],jt=()=>[n,isArbitraryVariable,isArbitraryValue],vr=()=>[...De(),isArbitraryVariablePosition,isArbitraryPosition,{position:[isArbitraryVariable,isArbitraryValue]}],ai=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pi=()=>["auto","cover","contain",isArbitraryVariableSize,isArbitrarySize,{size:[isArbitraryVariable,isArbitraryValue]}],yi=()=>[isPercent,isArbitraryVariableLength,isArbitraryLength],fi=()=>["","none","full",x,isArbitraryVariable,isArbitraryValue],Jn=()=>["",isNumber,isArbitraryVariableLength,isArbitraryLength],xr=()=>["solid","dashed","dotted","double"],pr=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ei=()=>[isNumber,isPercent,isArbitraryVariablePosition,isArbitraryPosition],_i=()=>["","none",re,isArbitraryVariable,isArbitraryValue],Gr=()=>["none",isNumber,isArbitraryVariable,isArbitraryValue],oi=()=>["none",isNumber,isArbitraryVariable,isArbitraryValue],Oi=()=>[isNumber,isArbitraryVariable,isArbitraryValue],_o=()=>[isFraction,"full",...He()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[isTshirtSize],breakpoint:[isTshirtSize],color:[isAny],container:[isTshirtSize],"drop-shadow":[isTshirtSize],ease:["in","out","in-out"],font:[isAnyNonArbitrary],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[isTshirtSize],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[isTshirtSize],shadow:[isTshirtSize],spacing:["px",isNumber],text:[isTshirtSize],"text-shadow":[isTshirtSize],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",isFraction,isArbitraryValue,isArbitraryVariable,he]}],container:["container"],"container-type":[{"@container":["","normal","size",isArbitraryVariable,isArbitraryValue]}],"container-named":[isNamedContainerQuery],columns:[{columns:[isNumber,isArbitraryValue,isArbitraryVariable,v]}],"break-after":[{"break-after":_e()}],"break-before":[{"break-before":_e()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Fe()}],overflow:[{overflow:Ve()}],"overflow-x":[{"overflow-x":Ve()}],"overflow-y":[{"overflow-y":Ve()}],overscroll:[{overscroll:Ge()}],"overscroll-x":[{"overscroll-x":Ge()}],"overscroll-y":[{"overscroll-y":Ge()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:At()}],"inset-x":[{"inset-x":At()}],"inset-y":[{"inset-y":At()}],start:[{"inset-s":At(),start:At()}],end:[{"inset-e":At(),end:At()}],"inset-bs":[{"inset-bs":At()}],"inset-be":[{"inset-be":At()}],top:[{top:At()}],right:[{right:At()}],bottom:[{bottom:At()}],left:[{left:At()}],visibility:["visible","invisible","collapse"],z:[{z:[isInteger,"auto",isArbitraryVariable,isArbitraryValue]}],basis:[{basis:[isFraction,"full","auto",v,...He()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[isNumber,isFraction,"auto","initial","none",isArbitraryValue]}],grow:[{grow:["",isNumber,isArbitraryVariable,isArbitraryValue]}],shrink:[{shrink:["",isNumber,isArbitraryVariable,isArbitraryValue]}],order:[{order:[isInteger,"first","last","none",isArbitraryVariable,isArbitraryValue]}],"grid-cols":[{"grid-cols":Bt()}],"col-start-end":[{col:Tt()}],"col-start":[{"col-start":rt()}],"col-end":[{"col-end":rt()}],"grid-rows":[{"grid-rows":Bt()}],"row-start-end":[{row:Tt()}],"row-start":[{"row-start":rt()}],"row-end":[{"row-end":rt()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ye()}],"auto-rows":[{"auto-rows":ye()}],gap:[{gap:He()}],"gap-x":[{"gap-x":He()}],"gap-y":[{"gap-y":He()}],"justify-content":[{justify:[...lt(),"normal"]}],"justify-items":[{"justify-items":[...Yt(),"normal"]}],"justify-self":[{"justify-self":["auto",...Yt()]}],"align-content":[{content:["normal",...lt()]}],"align-items":[{items:[...Yt(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Yt(),{baseline:["","last"]}]}],"place-content":[{"place-content":lt()}],"place-items":[{"place-items":[...Yt(),"baseline"]}],"place-self":[{"place-self":["auto",...Yt()]}],p:[{p:He()}],px:[{px:He()}],py:[{py:He()}],ps:[{ps:He()}],pe:[{pe:He()}],pbs:[{pbs:He()}],pbe:[{pbe:He()}],pt:[{pt:He()}],pr:[{pr:He()}],pb:[{pb:He()}],pl:[{pl:He()}],m:[{m:ct()}],mx:[{mx:ct()}],my:[{my:ct()}],ms:[{ms:ct()}],me:[{me:ct()}],mbs:[{mbs:ct()}],mbe:[{mbe:ct()}],mt:[{mt:ct()}],mr:[{mr:ct()}],mb:[{mb:ct()}],ml:[{ml:ct()}],"space-x":[{"space-x":He()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":He()}],"space-y-reverse":["space-y-reverse"],size:[{size:ht()}],"inline-size":[{inline:["auto",...vt()]}],"min-inline-size":[{"min-inline":["auto",...vt()]}],"max-inline-size":[{"max-inline":["none",...vt()]}],"block-size":[{block:["auto",...ar()]}],"min-block-size":[{"min-block":["auto",...ar()]}],"max-block-size":[{"max-block":["none",...ar()]}],w:[{w:[v,"screen",...ht()]}],"min-w":[{"min-w":[v,"screen","none",...ht()]}],"max-w":[{"max-w":[v,"screen","none","prose",{screen:[S]},...ht()]}],h:[{h:["screen","lh",...ht()]}],"min-h":[{"min-h":["screen","lh","none",...ht()]}],"max-h":[{"max-h":["screen","lh",...ht()]}],"font-size":[{text:["base",o,isArbitraryVariableLength,isArbitraryLength]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,isArbitraryVariableWeight,isArbitraryWeight]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",isPercent,isArbitraryValue]}],"font-family":[{font:[isArbitraryVariableFamilyName,isArbitraryFamilyName,e]}],"font-features":[{"font-features":[isArbitraryValue]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[I,isArbitraryVariable,isArbitraryValue]}],"line-clamp":[{"line-clamp":[isNumber,"none",isArbitraryVariable,isArbitraryNumber]}],leading:[{leading:[f,...He()]}],"list-image":[{"list-image":["none",isArbitraryVariable,isArbitraryValue]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",isArbitraryVariable,isArbitraryValue]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:jt()}],"text-color":[{text:jt()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...xr(),"wavy"]}],"text-decoration-thickness":[{decoration:[isNumber,"from-font","auto",isArbitraryVariable,isArbitraryLength]}],"text-decoration-color":[{decoration:jt()}],"underline-offset":[{"underline-offset":[isNumber,"auto",isArbitraryVariable,isArbitraryValue]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:He()}],"tab-size":[{tab:[isInteger,isArbitraryVariable,isArbitraryValue]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",isArbitraryVariable,isArbitraryValue]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",isArbitraryVariable,isArbitraryValue]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:vr()}],"bg-repeat":[{bg:ai()}],"bg-size":[{bg:pi()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},isInteger,isArbitraryVariable,isArbitraryValue],radial:["",isArbitraryVariable,isArbitraryValue],conic:[isInteger,isArbitraryVariable,isArbitraryValue]},isArbitraryVariableImage,isArbitraryImage]}],"bg-color":[{bg:jt()}],"gradient-from-pos":[{from:yi()}],"gradient-via-pos":[{via:yi()}],"gradient-to-pos":[{to:yi()}],"gradient-from":[{from:jt()}],"gradient-via":[{via:jt()}],"gradient-to":[{to:jt()}],rounded:[{rounded:fi()}],"rounded-s":[{"rounded-s":fi()}],"rounded-e":[{"rounded-e":fi()}],"rounded-t":[{"rounded-t":fi()}],"rounded-r":[{"rounded-r":fi()}],"rounded-b":[{"rounded-b":fi()}],"rounded-l":[{"rounded-l":fi()}],"rounded-ss":[{"rounded-ss":fi()}],"rounded-se":[{"rounded-se":fi()}],"rounded-ee":[{"rounded-ee":fi()}],"rounded-es":[{"rounded-es":fi()}],"rounded-tl":[{"rounded-tl":fi()}],"rounded-tr":[{"rounded-tr":fi()}],"rounded-br":[{"rounded-br":fi()}],"rounded-bl":[{"rounded-bl":fi()}],"border-w":[{border:Jn()}],"border-w-x":[{"border-x":Jn()}],"border-w-y":[{"border-y":Jn()}],"border-w-s":[{"border-s":Jn()}],"border-w-e":[{"border-e":Jn()}],"border-w-bs":[{"border-bs":Jn()}],"border-w-be":[{"border-be":Jn()}],"border-w-t":[{"border-t":Jn()}],"border-w-r":[{"border-r":Jn()}],"border-w-b":[{"border-b":Jn()}],"border-w-l":[{"border-l":Jn()}],"divide-x":[{"divide-x":Jn()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Jn()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...xr(),"hidden","none"]}],"divide-style":[{divide:[...xr(),"hidden","none"]}],"border-color":[{border:jt()}],"border-color-x":[{"border-x":jt()}],"border-color-y":[{"border-y":jt()}],"border-color-s":[{"border-s":jt()}],"border-color-e":[{"border-e":jt()}],"border-color-bs":[{"border-bs":jt()}],"border-color-be":[{"border-be":jt()}],"border-color-t":[{"border-t":jt()}],"border-color-r":[{"border-r":jt()}],"border-color-b":[{"border-b":jt()}],"border-color-l":[{"border-l":jt()}],"divide-color":[{divide:jt()}],"outline-style":[{outline:[...xr(),"none","hidden"]}],"outline-offset":[{"outline-offset":[isNumber,isArbitraryVariable,isArbitraryValue]}],"outline-w":[{outline:["",isNumber,isArbitraryVariableLength,isArbitraryLength]}],"outline-color":[{outline:jt()}],shadow:[{shadow:["","none",F,isArbitraryVariableShadow,isArbitraryShadow]}],"shadow-color":[{shadow:jt()}],"inset-shadow":[{"inset-shadow":["none",Y,isArbitraryVariableShadow,isArbitraryShadow]}],"inset-shadow-color":[{"inset-shadow":jt()}],"ring-w":[{ring:Jn()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:jt()}],"ring-offset-w":[{"ring-offset":[isNumber,isArbitraryLength]}],"ring-offset-color":[{"ring-offset":jt()}],"inset-ring-w":[{"inset-ring":Jn()}],"inset-ring-color":[{"inset-ring":jt()}],"text-shadow":[{"text-shadow":["none",j,isArbitraryVariableShadow,isArbitraryShadow]}],"text-shadow-color":[{"text-shadow":jt()}],opacity:[{opacity:[isNumber,isArbitraryVariable,isArbitraryValue]}],"mix-blend":[{"mix-blend":[...pr(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":pr()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[isNumber]}],"mask-image-linear-from-pos":[{"mask-linear-from":ei()}],"mask-image-linear-to-pos":[{"mask-linear-to":ei()}],"mask-image-linear-from-color":[{"mask-linear-from":jt()}],"mask-image-linear-to-color":[{"mask-linear-to":jt()}],"mask-image-t-from-pos":[{"mask-t-from":ei()}],"mask-image-t-to-pos":[{"mask-t-to":ei()}],"mask-image-t-from-color":[{"mask-t-from":jt()}],"mask-image-t-to-color":[{"mask-t-to":jt()}],"mask-image-r-from-pos":[{"mask-r-from":ei()}],"mask-image-r-to-pos":[{"mask-r-to":ei()}],"mask-image-r-from-color":[{"mask-r-from":jt()}],"mask-image-r-to-color":[{"mask-r-to":jt()}],"mask-image-b-from-pos":[{"mask-b-from":ei()}],"mask-image-b-to-pos":[{"mask-b-to":ei()}],"mask-image-b-from-color":[{"mask-b-from":jt()}],"mask-image-b-to-color":[{"mask-b-to":jt()}],"mask-image-l-from-pos":[{"mask-l-from":ei()}],"mask-image-l-to-pos":[{"mask-l-to":ei()}],"mask-image-l-from-color":[{"mask-l-from":jt()}],"mask-image-l-to-color":[{"mask-l-to":jt()}],"mask-image-x-from-pos":[{"mask-x-from":ei()}],"mask-image-x-to-pos":[{"mask-x-to":ei()}],"mask-image-x-from-color":[{"mask-x-from":jt()}],"mask-image-x-to-color":[{"mask-x-to":jt()}],"mask-image-y-from-pos":[{"mask-y-from":ei()}],"mask-image-y-to-pos":[{"mask-y-to":ei()}],"mask-image-y-from-color":[{"mask-y-from":jt()}],"mask-image-y-to-color":[{"mask-y-to":jt()}],"mask-image-radial":[{"mask-radial":[isArbitraryVariable,isArbitraryValue]}],"mask-image-radial-from-pos":[{"mask-radial-from":ei()}],"mask-image-radial-to-pos":[{"mask-radial-to":ei()}],"mask-image-radial-from-color":[{"mask-radial-from":jt()}],"mask-image-radial-to-color":[{"mask-radial-to":jt()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":De()}],"mask-image-conic-pos":[{"mask-conic":[isNumber]}],"mask-image-conic-from-pos":[{"mask-conic-from":ei()}],"mask-image-conic-to-pos":[{"mask-conic-to":ei()}],"mask-image-conic-from-color":[{"mask-conic-from":jt()}],"mask-image-conic-to-color":[{"mask-conic-to":jt()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:vr()}],"mask-repeat":[{mask:ai()}],"mask-size":[{mask:pi()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",isArbitraryVariable,isArbitraryValue]}],filter:[{filter:["","none",isArbitraryVariable,isArbitraryValue]}],blur:[{blur:_i()}],brightness:[{brightness:[isNumber,isArbitraryVariable,isArbitraryValue]}],contrast:[{contrast:[isNumber,isArbitraryVariable,isArbitraryValue]}],"drop-shadow":[{"drop-shadow":["","none",W,isArbitraryVariableShadow,isArbitraryShadow]}],"drop-shadow-color":[{"drop-shadow":jt()}],grayscale:[{grayscale:["",isNumber,isArbitraryVariable,isArbitraryValue]}],"hue-rotate":[{"hue-rotate":[isNumber,isArbitraryVariable,isArbitraryValue]}],invert:[{invert:["",isNumber,isArbitraryVariable,isArbitraryValue]}],saturate:[{saturate:[isNumber,isArbitraryVariable,isArbitraryValue]}],sepia:[{sepia:["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-filter":[{"backdrop-filter":["","none",isArbitraryVariable,isArbitraryValue]}],"backdrop-blur":[{"backdrop-blur":_i()}],"backdrop-brightness":[{"backdrop-brightness":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-contrast":[{"backdrop-contrast":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-grayscale":[{"backdrop-grayscale":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-invert":[{"backdrop-invert":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-opacity":[{"backdrop-opacity":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-saturate":[{"backdrop-saturate":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-sepia":[{"backdrop-sepia":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":He()}],"border-spacing-x":[{"border-spacing-x":He()}],"border-spacing-y":[{"border-spacing-y":He()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",isArbitraryVariable,isArbitraryValue]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[isNumber,"initial",isArbitraryVariable,isArbitraryValue]}],ease:[{ease:["linear","initial",ue,isArbitraryVariable,isArbitraryValue]}],delay:[{delay:[isNumber,isArbitraryVariable,isArbitraryValue]}],animate:[{animate:["none",Ee,isArbitraryVariable,isArbitraryValue]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[ee,isArbitraryVariable,isArbitraryValue]}],"perspective-origin":[{"perspective-origin":Fe()}],rotate:[{rotate:Gr()}],"rotate-x":[{"rotate-x":Gr()}],"rotate-y":[{"rotate-y":Gr()}],"rotate-z":[{"rotate-z":Gr()}],scale:[{scale:oi()}],"scale-x":[{"scale-x":oi()}],"scale-y":[{"scale-y":oi()}],"scale-z":[{"scale-z":oi()}],"scale-3d":["scale-3d"],skew:[{skew:Oi()}],"skew-x":[{"skew-x":Oi()}],"skew-y":[{"skew-y":Oi()}],transform:[{transform:[isArbitraryVariable,isArbitraryValue,"","none","gpu","cpu"]}],"transform-origin":[{origin:Fe()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:_o()}],"translate-x":[{"translate-x":_o()}],"translate-y":[{"translate-y":_o()}],"translate-z":[{"translate-z":_o()}],"translate-none":["translate-none"],zoom:[{zoom:[isInteger,isArbitraryVariable,isArbitraryValue]}],accent:[{accent:jt()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:jt()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",isArbitraryVariable,isArbitraryValue]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":jt()}],"scrollbar-track-color":[{"scrollbar-track":jt()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":He()}],"scroll-mx":[{"scroll-mx":He()}],"scroll-my":[{"scroll-my":He()}],"scroll-ms":[{"scroll-ms":He()}],"scroll-me":[{"scroll-me":He()}],"scroll-mbs":[{"scroll-mbs":He()}],"scroll-mbe":[{"scroll-mbe":He()}],"scroll-mt":[{"scroll-mt":He()}],"scroll-mr":[{"scroll-mr":He()}],"scroll-mb":[{"scroll-mb":He()}],"scroll-ml":[{"scroll-ml":He()}],"scroll-p":[{"scroll-p":He()}],"scroll-px":[{"scroll-px":He()}],"scroll-py":[{"scroll-py":He()}],"scroll-ps":[{"scroll-ps":He()}],"scroll-pe":[{"scroll-pe":He()}],"scroll-pbs":[{"scroll-pbs":He()}],"scroll-pbe":[{"scroll-pbe":He()}],"scroll-pt":[{"scroll-pt":He()}],"scroll-pr":[{"scroll-pr":He()}],"scroll-pb":[{"scroll-pb":He()}],"scroll-pl":[{"scroll-pl":He()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",isArbitraryVariable,isArbitraryValue]}],fill:[{fill:["none",...jt()]}],"stroke-w":[{stroke:[isNumber,isArbitraryVariableLength,isArbitraryLength,isArbitraryNumber]}],stroke:[{stroke:["none",...jt()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},twMerge=createTailwindMerge(getDefaultConfig);function cn(...n){return twMerge(clsx(n))}var N3=Object.defineProperty,G3=(n,e,o)=>e in n?N3(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o,p=(n,e,o)=>G3(n,typeof e!="symbol"?e+"":e,o),V3=class{requestAnimationFrame(n){return requestAnimationFrame(n)}cancelAnimationFrame(n){cancelAnimationFrame(n)}},J3=class{constructor(){p(this,"_lastHandleId",0),p(this,"_lastImmediate",null)}requestAnimationFrame(n){return this._lastHandleId>=Number.MAX_SAFE_INTEGER&&(this._lastHandleId=0),this._lastHandleId+=1,this._lastImmediate=setImmediate(()=>{n(Date.now())}),this._lastHandleId}cancelAnimationFrame(n){this._lastImmediate&&clearImmediate(this._lastImmediate)}},q3=class{constructor(){p(this,"_strategy"),this._strategy=typeof requestAnimationFrame=="function"?new V3:new J3}requestAnimationFrame(n){return this._strategy.requestAnimationFrame(n)}cancelAnimationFrame(n){this._strategy.cancelAnimationFrame(n)}},E=typeof window<"u"&&typeof window.document<"u",_2=new Uint8Array([80,75,3,4]),K3=["v","ip","op","layers","fr","w","h"],X2="0.63.0",Y2="@lottiefiles/dotlottie-web",Q3=.75,X3=4,Y3=(()=>{var e;var n=typeof document<"u"?(e=document.currentScript)==null?void 0:e.src:void 0;return function(o={}){var d;function I(Be,Re,Ke){return(Re=f(Re))in Be?Object.defineProperty(Be,Re,{value:Ke,enumerable:!0,configurable:!0,writable:!0}):Be[Re]=Ke,Be}function f(Be){var Re=S(Be,"string");return typeof Re=="symbol"?Re:Re+""}function S(Be,Re){if(typeof Be!="object"||!Be)return Be;var Ke=Be[Symbol.toPrimitive];if(Ke!==void 0){var Ye=Ke.call(Be,Re);if(typeof Ye!="object")return Ye;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Re==="string"?String:Number)(Be)}var v=o,L,x,F=new Promise((Be,Re)=>{L=Be,x=Re}),Y=Object.assign({},v),j="./this.program",W="",re;typeof document<"u"&&document.currentScript&&(W=document.currentScript.src),n&&(W=n),W.startsWith("blob:")?W="":W=W.substr(0,W.replace(/[?#].*/,"").lastIndexOf("/")+1),re=async Be=>{if(Be=await fetch(Be,{credentials:"same-origin"}),Be.ok)return Be.arrayBuffer();throw Error(Be.status+" : "+Be.url)};var ee=v.printErr||console.error.bind(console);Object.assign(v,Y),Y=null,v.thisProgram&&(j=v.thisProgram);var he=v.wasmBinary,ue,Ee=!1,_e,De,Fe,Ve,Ge,He,At,Bt,Tt;function rt(){var Be=ue.buffer;v.HEAP8=De=new Int8Array(Be),v.HEAP16=Ve=new Int16Array(Be),v.HEAPU8=Fe=new Uint8Array(Be),v.HEAPU16=Ge=new Uint16Array(Be),v.HEAP32=He=new Int32Array(Be),v.HEAPU32=At=new Uint32Array(Be),v.HEAPF32=Bt=new Float32Array(Be),v.HEAPF64=Tt=new Float64Array(Be)}var ye=[],lt=[],Yt=[];function ct(){var Be=v.preRun.shift();ye.unshift(Be)}var ht=0,vt=null;function ar(Be){var Re;throw(Re=v.onAbort)===null||Re===void 0||Re.call(v,Be),Be="Aborted("+Be+")",ee(Be),Ee=!0,Be=new WebAssembly.RuntimeError(Be+". Build with -sASSERTIONS for more info."),x(Be),Be}var jt=Be=>Be.startsWith("data:application/octet-stream;base64,"),vr;async function ai(Be){if(!he)try{var Re=await re(Be);return new Uint8Array(Re)}catch{}if(Be==vr&&he)Be=new Uint8Array(he);else throw"both async and sync fetching of the wasm failed";return Be}async function pi(Be,Re){try{var Ke=await ai(Be);return await WebAssembly.instantiate(Ke,Re)}catch(Ye){ee(`failed to asynchronously prepare wasm: ${Ye}`),ar(Ye)}}async function yi(Be){var Re=vr;if(!he&&typeof WebAssembly.instantiateStreaming=="function"&&!jt(Re)&&typeof fetch=="function")try{var Ke=fetch(Re,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(Ke,Be)}catch(Ye){ee(`wasm streaming compile failed: ${Ye}`),ee("falling back to ArrayBuffer instantiation")}return pi(Re,Be)}class fi{constructor(Re){I(this,"name","ExitStatus"),this.message=`Program terminated with exit(${Re})`,this.status=Re}}var Jn=Be=>{for(;00&&arguments[0]!==void 0?arguments[0]:0,Re=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN;var Ke=Fe,Ye=Be+Re;for(Re=Be;Ke[Re]&&!(Re>=Ye);)++Re;if(16gt?Ye+=String.fromCharCode(gt):(gt-=65536,Ye+=String.fromCharCode(55296|gt>>10,56320|gt&1023))}}else Ye+=String.fromCharCode(gt)}return Ye};class _i{constructor(Re){this.Ca=Re-24}}var Gr=0,oi=(Be,Re,Ke)=>{var Ye=Fe;if(0=Mt){var Er=Be.charCodeAt(++gt);Mt=65536+((Mt&1023)<<10)|Er&1023}if(127>=Mt){if(Re>=Ke)break;Ye[Re++]=Mt}else{if(2047>=Mt){if(Re+1>=Ke)break;Ye[Re++]=192|Mt>>6}else{if(65535>=Mt){if(Re+2>=Ke)break;Ye[Re++]=224|Mt>>12}else{if(Re+3>=Ke)break;Ye[Re++]=240|Mt>>18,Ye[Re++]=128|Mt>>12&63}Ye[Re++]=128|Mt>>6&63}Ye[Re++]=128|Mt&63}}Ye[Re]=0}},Oi={},_o=Be=>{for(;Be.length;){var Re=Be.pop();Be.pop()(Re)}};function $n(Be){return this.fromWireType(At[Be>>2])}var gs={},Bs={},Kn={},Tn,Zn=(Be,Re,Ke)=>{function Ye(cr){if(cr=Ke(cr),cr.length!==Be.length)throw new Tn("Mismatched type converter count");for(var Ei=0;EiKn[cr]=Re);var gt=Array(Re.length),Mt=[],Er=0;Re.forEach((cr,Ei)=>{Bs.hasOwnProperty(cr)?gt[Ei]=Bs[cr]:(Mt.push(cr),gs.hasOwnProperty(cr)||(gs[cr]=[]),gs[cr].push(()=>{gt[Ei]=Bs[cr],++Er,Er===Mt.length&&Ye(gt)}))}),Mt.length===0&&Ye(gt)},hc,Fs=Be=>{for(var Re="";Fe[Be];)Re+=hc[Fe[Be++]];return Re},bt;function Es(Be,Re){let Ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var Ye=Re.name;if(!Be)throw new bt(`type "${Ye}" must have a positive integer typeid pointer`);if(Bs.hasOwnProperty(Be)){if(Ke.hb)return;throw new bt(`Cannot register type '${Ye}' twice`)}Bs[Be]=Re,delete Kn[Be],gs.hasOwnProperty(Be)&&(Re=gs[Be],delete gs[Be],Re.forEach(gt=>gt()))}function Me(Be,Re){let Ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Es(Be,Re,Ke)}var ot=Be=>{throw new bt(Be.Aa.Da.Ba.name+" instance already deleted")},Ct=!1,Kt=()=>{},Xr=(Be,Re,Ke)=>Re===Ke?Be:Ke.Ga===void 0?null:(Be=Xr(Be,Re,Ke.Ga),Be===null?null:Ke.$a(Be)),Lr={},Jr={},zr=(Be,Re)=>{if(Re===void 0)throw new bt("ptr should not be undefined");for(;Be.Ga;)Re=Be.Qa(Re),Be=Be.Ga;return Jr[Re]},ci=(Be,Re)=>{if(!Re.Da||!Re.Ca)throw new Tn("makeClassHandle requires ptr and ptrType");if(!!Re.Ha!=!!Re.Fa)throw new Tn("Both smartPtrType and smartPtr must be specified");return Re.count={value:1},ro(Object.create(Be,{Aa:{value:Re,writable:!0}}))},ro=Be=>typeof FinalizationRegistry>"u"?(ro=Re=>Re,Be):(Ct=new FinalizationRegistry(Re=>{Re=Re.Aa,--Re.count.value,Re.count.value===0&&(Re.Fa?Re.Ha.Ka(Re.Fa):Re.Da.Ba.Ka(Re.Ca))}),ro=Re=>{var Ke=Re.Aa;return Ke.Fa&&Ct.register(Re,{Aa:Ke},Re),Re},Kt=Re=>{Ct.unregister(Re)},ro(Be));function Ho(){}var Oa=(Be,Re)=>Object.defineProperty(Re,"name",{value:Be}),da=(Be,Re,Ke)=>{if(Be[Re].Ea===void 0){var Ye=Be[Re];Be[Re]=function(){for(var gt=arguments.length,Mt=new Array(gt),Er=0;Er{if(v.hasOwnProperty(Be)){if(Ke===void 0||v[Be].Ea!==void 0&&v[Be].Ea[Ke]!==void 0)throw new bt(`Cannot register public name '${Be}' twice`);if(da(v,Be,Be),v[Be].Ea.hasOwnProperty(Ke))throw new bt(`Cannot register multiple overloads of a function with the same number of arguments (${Ke})!`);v[Be].Ea[Ke]=Re}else v[Be]=Re,v[Be].Na=Ke},Ns=Be=>{Be=Be.replace(/[^a-zA-Z0-9_]/g,"$");var Re=Be.charCodeAt(0);return 48<=Re&&57>=Re?`_${Be}`:Be};function w1(Be,Re,Ke,Ye,gt,Mt,Er,cr){this.name=Be,this.constructor=Re,this.Ma=Ke,this.Ka=Ye,this.Ga=gt,this.bb=Mt,this.Qa=Er,this.$a=cr,this.jb=[]}var qc=(Be,Re,Ke)=>{for(;Re!==Ke;){if(!Re.Qa)throw new bt(`Expected null or instance of ${Ke.name}, got an instance of ${Re.name}`);Be=Re.Qa(Be),Re=Re.Ga}return Be};function ag(Be,Re){if(Re===null){if(this.Ta)throw new bt(`null is not a valid ${this.name}`);return 0}if(!Re.Aa)throw new bt(`Cannot pass "${Cd(Re)}" as a ${this.name}`);if(!Re.Aa.Ca)throw new bt(`Cannot pass deleted object as a pointer of type ${this.name}`);return qc(Re.Aa.Ca,Re.Aa.Da.Ba,this.Ba)}function du(Be,Re){if(Re===null){if(this.Ta)throw new bt(`null is not a valid ${this.name}`);if(this.Sa){var Ke=this.Ua();return Be!==null&&Be.push(this.Ka,Ke),Ke}return 0}if(!Re||!Re.Aa)throw new bt(`Cannot pass "${Cd(Re)}" as a ${this.name}`);if(!Re.Aa.Ca)throw new bt(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.Ra&&Re.Aa.Da.Ra)throw new bt(`Cannot convert argument of type ${Re.Aa.Ha?Re.Aa.Ha.name:Re.Aa.Da.name} to parameter type ${this.name}`);if(Ke=qc(Re.Aa.Ca,Re.Aa.Da.Ba,this.Ba),this.Sa){if(Re.Aa.Fa===void 0)throw new bt("Passing raw pointer to smart pointer is illegal");switch(this.ob){case 0:if(Re.Aa.Ha===this)Ke=Re.Aa.Fa;else throw new bt(`Cannot convert argument of type ${Re.Aa.Ha?Re.Aa.Ha.name:Re.Aa.Da.name} to parameter type ${this.name}`);break;case 1:Ke=Re.Aa.Fa;break;case 2:if(Re.Aa.Ha===this)Ke=Re.Aa.Fa;else{var Ye=Re.clone();Ke=this.kb(Ke,gE(()=>Ye.delete())),Be!==null&&Be.push(this.Ka,Ke)}break;default:throw new bt("Unsupporting sharing policy")}}return Ke}function D1(Be,Re){if(Re===null){if(this.Ta)throw new bt(`null is not a valid ${this.name}`);return 0}if(!Re.Aa)throw new bt(`Cannot pass "${Cd(Re)}" as a ${this.name}`);if(!Re.Aa.Ca)throw new bt(`Cannot pass deleted object as a pointer of type ${this.name}`);if(Re.Aa.Da.Ra)throw new bt(`Cannot convert argument of type ${Re.Aa.Da.name} to parameter type ${this.name}`);return qc(Re.Aa.Ca,Re.Aa.Da.Ba,this.Ba)}function oA(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji,xi){this.name=Be,this.Ba=Re,this.Ta=Ke,this.Ra=Ye,this.Sa=gt,this.ib=Mt,this.ob=Er,this.Ya=cr,this.Ua=Ei,this.kb=Ji,this.Ka=xi,gt||Re.Ga!==void 0?this.toWireType=du:(this.toWireType=Ye?ag:D1,this.Ja=null)}var xA=(Be,Re,Ke)=>{if(!v.hasOwnProperty(Be))throw new Tn("Replacing nonexistent public symbol");v[Be].Ea!==void 0&&Ke!==void 0?v[Be].Ea[Ke]=Re:(v[Be]=Re,v[Be].Na=Ke)},Mo,_r=function(Be,Re){let Ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return Be.includes("j")?(Be=Be.replace(/p/g,"i"),Re=(0,v["dynCall_"+Be])(Re,...Ke)):Re=Mo.get(Re)(...Ke),Re},rn=(Be,Re)=>function(){for(var Ke=arguments.length,Ye=new Array(Ke),gt=0;gt{Be=Fs(Be);var Ke=Be.includes("j")?rn(Be,Re):Mo.get(Re);if(typeof Ke!="function")throw new bt(`unknown function pointer with signature ${Be}: ${Re}`);return Ke},Io,b1=Be=>{Be=Rr(Be);var Re=Fs(Be);return Nt(Be),Re},u1=(Be,Re)=>{function Ke(Mt){gt[Mt]||Bs[Mt]||(Kn[Mt]?Kn[Mt].forEach(Ke):(Ye.push(Mt),gt[Mt]=!0))}var Ye=[],gt={};throw Re.forEach(Ke),new Io(`${Be}: `+Ye.map(b1).join([", "]))},N1=(Be,Re)=>{for(var Ke=[],Ye=0;Ye>2]);return Ke};function Ic(Be){for(var Re=1;ReMt)throw new bt("argTypes array size mismatch! Must at least get return value and 'this' types!");var Er=Re[1]!==null&&Ke!==null,cr=Ic(Re),Ei=Re[0].name!=="void",Ji=Mt-2,xi=Array(Ji),qn=[],mn=[];return Oa(Be,function(){for(var Gs=arguments.length,ga=new Array(Gs),zc=0;zc{Be=Be.trim();let Re=Be.indexOf("(");return Re!==-1?Be.substr(0,Re):Be},Ll=[],mA=[],hs=Be=>{9{if(!Be)throw new bt("Cannot use deleted val. handle = "+Be);return mA[Be]},gE=Be=>{switch(Be){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let Re=Ll.pop()||mA.length;return mA[Re]=Be,mA[Re+1]=1,Re}},EE={name:"emscripten::val",fromWireType:Be=>{var Re=O1(Be);return hs(Be),Re},toWireType:(Be,Re)=>gE(Re),Ia:8,readValueFromPointer:$n,Ja:null},Ag=(Be,Re,Ke)=>{switch(Re){case 1:return Ke?function(Ye){return this.fromWireType(De[Ye])}:function(Ye){return this.fromWireType(Fe[Ye])};case 2:return Ke?function(Ye){return this.fromWireType(Ve[Ye>>1])}:function(Ye){return this.fromWireType(Ge[Ye>>1])};case 4:return Ke?function(Ye){return this.fromWireType(He[Ye>>2])}:function(Ye){return this.fromWireType(At[Ye>>2])};default:throw new TypeError(`invalid integer width (${Re}): ${Be}`)}},Ml=(Be,Re)=>{var Ke=Bs[Be];if(Ke===void 0)throw Be=`${Re} has unknown type ${b1(Be)}`,new bt(Be);return Ke},Cd=Be=>{if(Be===null)return"null";var Re=typeof Be;return Re==="object"||Re==="array"||Re==="function"?Be.toString():""+Be},pd=(Be,Re)=>{switch(Re){case 4:return function(Ke){return this.fromWireType(Bt[Ke>>2])};case 8:return function(Ke){return this.fromWireType(Tt[Ke>>3])};default:throw new TypeError(`invalid float width (${Re}): ${Be}`)}},uu=(Be,Re,Ke)=>{switch(Re){case 1:return Ke?Ye=>De[Ye]:Ye=>Fe[Ye];case 2:return Ke?Ye=>Ve[Ye>>1]:Ye=>Ge[Ye>>1];case 4:return Ke?Ye=>He[Ye>>2]:Ye=>At[Ye>>2];default:throw new TypeError(`invalid integer width (${Re}): ${Be}`)}},Up=Object.assign({optional:!0},EE),L1=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,La=(Be,Re)=>{for(var Ke=Be>>1,Ye=Ke+Re/2;!(Ke>=Ye)&&Ge[Ke];)++Ke;if(Ke<<=1,32=Re/2);++Ye){var gt=Ve[Be+2*Ye>>1];if(gt==0)break;Ke+=String.fromCharCode(gt)}return Ke},hI=(Be,Re,Ke)=>{var Ye;if((Ye=Ke)!==null&&Ye!==void 0||(Ke=2147483647),2>Ke)return 0;Ke-=2;var gt=Re;Ke=Ke<2*Be.length?Ke/2:Be.length;for(var Mt=0;Mt>1]=Be.charCodeAt(Mt),Re+=2;return Ve[Re>>1]=0,Re-gt},ts=Be=>2*Be.length,Xs=(Be,Re)=>{for(var Ke=0,Ye="";!(Ke>=Re/4);){var gt=He[Be+4*Ke>>2];if(gt==0)break;++Ke,65536<=gt?(gt-=65536,Ye+=String.fromCharCode(55296|gt>>10,56320|gt&1023)):Ye+=String.fromCharCode(gt)}return Ye},xp=(Be,Re,Ke)=>{var Ye;if((Ye=Ke)!==null&&Ye!==void 0||(Ke=2147483647),4>Ke)return 0;var gt=Re;Ke=gt+Ke-4;for(var Mt=0;Mt=Er){var cr=Be.charCodeAt(++Mt);Er=65536+((Er&1023)<<10)|cr&1023}if(He[Re>>2]=Er,Re+=4,Re+4>Ke)break}return He[Re>>2]=0,Re-gt},II=Be=>{for(var Re=0,Ke=0;Ke=Ye&&++Ke,Re+=4}return Re},hE=0,fd=(Be,Re,Ke)=>{var Ye=[];return Be=Be.toWireType(Ye,Ke),Ye.length&&(At[Re>>2]=gE(Ye)),Be},kl=[],cg=Be=>{var Re=kl.length;return kl.push(Be),Re},_d=(Be,Re)=>{for(var Ke=Array(Be),Ye=0;Ye>2],"parameter "+Ye);return Ke},lg=Reflect.construct,FA={},md=Be=>{if(!(Be instanceof fi||Be=="unwind"))throw Be},Xc=Be=>{var Re;throw _e=Be,xr||0{if(!Ee)try{if(Be(),!(xr||0{if(!dg){var Be={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:j||"./this.program"},Re;for(Re in vo)vo[Re]===void 0?delete Be[Re]:Be[Re]=vo[Re];var Ke=[];for(Re in Be)Ke.push(`${Re}=${Be[Re]}`);dg=Ke}return dg},dg,zh=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Be=>crypto.getRandomValues(Be);ar("initRandomDevice")},$h=Be=>($h=zh())(Be);Tn=v.InternalError=class extends Error{constructor(Be){super(Be),this.name="InternalError"}};for(var Zh=Array(256),Bd=0;256>Bd;++Bd)Zh[Bd]=String.fromCharCode(Bd);hc=Zh,bt=v.BindingError=class extends Error{constructor(Be){super(Be),this.name="BindingError"}},Object.assign(Ho.prototype,{isAliasOf:function(Be){if(!(this instanceof Ho&&Be instanceof Ho))return!1;var Re=this.Aa.Da.Ba,Ke=this.Aa.Ca;Be.Aa=Be.Aa;var Ye=Be.Aa.Da.Ba;for(Be=Be.Aa.Ca;Re.Ga;)Ke=Re.Qa(Ke),Re=Re.Ga;for(;Ye.Ga;)Be=Ye.Qa(Be),Ye=Ye.Ga;return Re===Ye&&Ke===Be},clone:function(){if(this.Aa.Ca||ot(this),this.Aa.Pa)return this.Aa.count.value+=1,this;var Be=ro,Re=Object,Ke=Re.create,Ye=Object.getPrototypeOf(this),gt=this.Aa;return Be=Be(Ke.call(Re,Ye,{Aa:{value:{count:gt.count,Oa:gt.Oa,Pa:gt.Pa,Ca:gt.Ca,Da:gt.Da,Fa:gt.Fa,Ha:gt.Ha}}})),Be.Aa.count.value+=1,Be.Aa.Oa=!1,Be},delete(){if(this.Aa.Ca||ot(this),this.Aa.Oa&&!this.Aa.Pa)throw new bt("Object already scheduled for deletion");Kt(this);var Be=this.Aa;--Be.count.value,Be.count.value===0&&(Be.Fa?Be.Ha.Ka(Be.Fa):Be.Da.Ba.Ka(Be.Ca)),this.Aa.Pa||(this.Aa.Fa=void 0,this.Aa.Ca=void 0)},isDeleted:function(){return!this.Aa.Ca},deleteLater:function(){if(this.Aa.Ca||ot(this),this.Aa.Oa&&!this.Aa.Pa)throw new bt("Object already scheduled for deletion");return this.Aa.Oa=!0,this}}),Object.assign(oA.prototype,{cb(Be){return this.Ya&&(Be=this.Ya(Be)),Be},Wa(Be){var Re;(Re=this.Ka)===null||Re===void 0||Re.call(this,Be)},Ia:8,readValueFromPointer:$n,fromWireType:function(Be){function Re(){return this.Sa?ci(this.Ba.Ma,{Da:this.ib,Ca:Ke,Ha:this,Fa:Be}):ci(this.Ba.Ma,{Da:this,Ca:Be})}var Ke=this.cb(Be);if(!Ke)return this.Wa(Be),null;var Ye=zr(this.Ba,Ke);if(Ye!==void 0)return Ye.Aa.count.value===0?(Ye.Aa.Ca=Ke,Ye.Aa.Fa=Be,Ye.clone()):(Ye=Ye.clone(),this.Wa(Be),Ye);if(Ye=this.Ba.bb(Ke),Ye=Lr[Ye],!Ye)return Re.call(this);Ye=this.Ra?Ye.Za:Ye.pointerType;var gt=Xr(Ke,this.Ba,Ye.Ba);return gt===null?Re.call(this):this.Sa?ci(Ye.Ba.Ma,{Da:Ye,Ca:gt,Ha:this,Fa:Be}):ci(Ye.Ba.Ma,{Da:Ye,Ca:gt})}}),Io=v.UnboundTypeError=((Be,Re)=>{var Ke=Oa(Re,function(Ye){this.name=Re,this.message=Ye,Ye=Error(Ye).stack,Ye!==void 0&&(this.stack=this.toString()+` +`+Ye.replace(/^Error(:[^\n]*)?\n/,""))});return Ke.prototype=Object.create(Be.prototype),Ke.prototype.constructor=Ke,Ke.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Ke})(Error,"UnboundTypeError"),mA.push(0,1,void 0,1,null,1,!0,1,!1,1),v.count_emval_handles=()=>mA.length/2-5-Ll.length;var o0={c:(Be,Re,Ke,Ye)=>ar(`Assertion failed: ${Be?ei(Be):""}, at: `+[Re?Re?ei(Re):"":"unknown filename",Ke,Ye?Ye?ei(Ye):"":"unknown function"]),j:(Be,Re,Ke)=>{var Ye=new _i(Be);throw At[Ye.Ca+16>>2]=0,At[Ye.Ca+4>>2]=Re,At[Ye.Ca+8>>2]=Ke,Gr=Be,Gr},P:()=>{},M:()=>{},N:()=>{},R:function(){},O:()=>{},T:()=>ar(""),w:Be=>{var Re=Oi[Be];delete Oi[Be];var Ke=Re.Ua,Ye=Re.Ka,gt=Re.Xa,Mt=gt.map(Er=>Er.gb).concat(gt.map(Er=>Er.mb));Zn([Be],Mt,Er=>{var cr={};return gt.forEach((Ei,Ji)=>{var xi=Er[Ji],qn=Ei.eb,mn=Ei.fb,Gs=Er[Ji+gt.length],ga=Ei.lb,zc=Ei.nb;cr[Ei.ab]={read:g1=>xi.fromWireType(qn(mn,g1)),write:(g1,Do)=>{var Xo=[];ga(zc,g1,Gs.toWireType(Xo,Do)),_o(Xo)}}}),[{name:Re.name,fromWireType:Ei=>{var Ji={},xi;for(xi in cr)Ji[xi]=cr[xi].read(Ei);return Ye(Ei),Ji},toWireType:(Ei,Ji)=>{for(var xi in cr)if(!(xi in Ji))throw new TypeError(`Missing field: "${xi}"`);var qn=Ke();for(xi in cr)cr[xi].write(qn,Ji[xi]);return Ei!==null&&Ei.push(Ye,qn),qn},Ia:8,readValueFromPointer:$n,Ja:Ye}]})},F:()=>{},_:(Be,Re,Ke,Ye)=>{Re=Fs(Re),Me(Be,{name:Re,fromWireType:function(gt){return!!gt},toWireType:function(gt,Mt){return Mt?Ke:Ye},Ia:8,readValueFromPointer:function(gt){return this.fromWireType(Fe[gt])},Ja:null})},k:(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji,xi,qn,mn)=>{xi=Fs(xi),Mt=dn(gt,Mt),cr&&(cr=dn(Er,cr)),Ji&&(Ji=dn(Ei,Ji)),mn=dn(qn,mn);var Gs=Ns(xi);ua(Gs,function(){u1(`Cannot construct ${xi} due to unbound types`,[Ye])}),Zn([Be,Re,Ke],Ye?[Ye]:[],ga=>{if(ga=ga[0],Ye)var zc=ga.Ba,g1=zc.Ma;else g1=Ho.prototype;ga=Oa(xi,function(){if(Object.getPrototypeOf(this)!==Do)throw new bt("Use 'new' to construct "+xi);if(Xo.La===void 0)throw new bt(xi+" has no accessible constructor");for(var d0=arguments.length,gu=new Array(d0),u0=0;u0{var Er=N1(Re,Ke);gt=dn(Ye,gt),Zn([],[Be],cr=>{cr=cr[0];var Ei=`constructor ${cr.name}`;if(cr.Ba.La===void 0&&(cr.Ba.La=[]),cr.Ba.La[Re-1]!==void 0)throw new bt(`Cannot register multiple constructors with identical number of parameters (${Re-1}) for class '${cr.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return cr.Ba.La[Re-1]=()=>{u1(`Cannot construct ${cr.name} due to unbound types`,Er)},Zn([],Er,Ji=>(Ji.splice(1,0,null),cr.Ba.La[Re-1]=Sa(Ei,Ji,null,gt,Mt),[])),[]})},d:(Be,Re,Ke,Ye,gt,Mt,Er,cr)=>{var Ei=N1(Ke,Ye);Re=Fs(Re),Re=Wc(Re),Mt=dn(gt,Mt),Zn([],[Be],Ji=>{function xi(){u1(`Cannot call ${qn} due to unbound types`,Ei)}Ji=Ji[0];var qn=`${Ji.name}.${Re}`;Re.startsWith("@@")&&(Re=Symbol[Re.substring(2)]),cr&&Ji.Ba.jb.push(Re);var mn=Ji.Ba.Ma,Gs=mn[Re];return Gs===void 0||Gs.Ea===void 0&&Gs.className!==Ji.name&&Gs.Na===Ke-2?(xi.Na=Ke-2,xi.className=Ji.name,mn[Re]=xi):(da(mn,Re,qn),mn[Re].Ea[Ke-2]=xi),Zn([],Ei,ga=>(ga=Sa(qn,ga,Ji,Mt,Er),mn[Re].Ea===void 0?(ga.Na=Ke-2,mn[Re]=ga):mn[Re].Ea[Ke-2]=ga,[])),[]})},Y:Be=>Me(Be,EE),D:(Be,Re,Ke,Ye)=>{function gt(){}Re=Fs(Re),gt.values={},Me(Be,{name:Re,constructor:gt,fromWireType:function(Mt){return this.constructor.values[Mt]},toWireType:(Mt,Er)=>Er.value,Ia:8,readValueFromPointer:Ag(Re,Ke,Ye),Ja:null}),ua(Re,gt)},m:(Be,Re,Ke)=>{var Ye=Ml(Be,"enum");Re=Fs(Re),Be=Ye.constructor,Ye=Object.create(Ye.constructor.prototype,{value:{value:Ke},constructor:{value:Oa(`${Ye.name}_${Re}`,function(){})}}),Be.values[Ke]=Ye,Be[Re]=Ye},A:(Be,Re,Ke)=>{Re=Fs(Re),Me(Be,{name:Re,fromWireType:Ye=>Ye,toWireType:(Ye,gt)=>gt,Ia:8,readValueFromPointer:pd(Re,Ke),Ja:null})},u:(Be,Re,Ke,Ye,gt,Mt)=>{var Er=N1(Re,Ke);Be=Fs(Be),Be=Wc(Be),gt=dn(Ye,gt),ua(Be,function(){u1(`Cannot call ${Be} due to unbound types`,Er)},Re-1),Zn([],Er,cr=>(xA(Be,Sa(Be,[cr[0],null].concat(cr.slice(1)),null,gt,Mt),Re-1),[]))},n:(Be,Re,Ke,Ye,gt)=>{if(Re=Fs(Re),gt===-1&&(gt=4294967295),gt=cr=>cr,Ye===0){var Mt=32-8*Ke;gt=cr=>cr<>>Mt}var Er=Re.includes("unsigned")?function(cr,Ei){return Ei>>>0}:function(cr,Ei){return Ei};Me(Be,{name:Re,fromWireType:gt,toWireType:Er,Ia:8,readValueFromPointer:uu(Re,Ke,Ye!==0),Ja:null})},g:(Be,Re,Ke)=>{function Ye(Mt){return new gt(De.buffer,At[Mt+4>>2],At[Mt>>2])}var gt=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][Re];Ke=Fs(Ke),Me(Be,{name:Ke,fromWireType:Ye,Ia:8,readValueFromPointer:Ye},{hb:!0})},o:Be=>{Me(Be,Up)},v:(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji,xi,qn)=>{Ke=Fs(Ke),Mt=dn(gt,Mt),cr=dn(Er,cr),Ji=dn(Ei,Ji),qn=dn(xi,qn),Zn([Be],[Re],mn=>(mn=mn[0],[new oA(Ke,mn.Ba,!1,!1,!0,mn,Ye,Mt,cr,Ji,qn)]))},Z:(Be,Re)=>{Re=Fs(Re),Me(Be,{name:Re,fromWireType:function(Ke){for(var Ye=At[Ke>>2],gt=Ke+4,Mt,Er=gt,cr=0;cr<=Ye;++cr){var Ei=gt+cr;(cr==Ye||Fe[Ei]==0)&&(Er=Er?ei(Er,Ei-Er):"",Mt===void 0?Mt=Er:(Mt+="\0",Mt+=Er),Er=Ei+1)}return Nt(Ke),Mt},toWireType:function(Ke,Ye){Ye instanceof ArrayBuffer&&(Ye=new Uint8Array(Ye));var gt,Mt=typeof Ye=="string";if(!(Mt||Ye instanceof Uint8Array||Ye instanceof Uint8ClampedArray||Ye instanceof Int8Array))throw new bt("Cannot pass non-string to std::string");if(Mt)for(var Er=gt=0;Er=cr?gt++:2047>=cr?gt+=2:55296<=cr&&57343>=cr?(gt+=4,++Er):gt+=3}else gt=Ye.length;if(Er=Ze(4+gt+1),cr=Er+4,At[Er>>2]=gt,Mt)oi(Ye,cr,gt+1);else if(Mt)for(Mt=0;Mt{if(Ke=Fs(Ke),Re===2)var Ye=La,gt=hI,Mt=ts,Er=cr=>Ge[cr>>1];else Re===4&&(Ye=Xs,gt=xp,Mt=II,Er=cr=>At[cr>>2]);Me(Be,{name:Ke,fromWireType:cr=>{for(var Ei=At[cr>>2],Ji,xi=cr+4,qn=0;qn<=Ei;++qn){var mn=cr+4+qn*Re;(qn==Ei||Er(mn)==0)&&(xi=Ye(xi,mn-xi),Ji===void 0?Ji=xi:(Ji+="\0",Ji+=xi),xi=mn+Re)}return Nt(cr),Ji},toWireType:(cr,Ei)=>{if(typeof Ei!="string")throw new bt(`Cannot pass non-string to C++ string type ${Ke}`);var Ji=Mt(Ei),xi=Ze(4+Ji+Re);return At[xi>>2]=Ji/Re,gt(Ei,xi+4,Ji+Re),cr!==null&&cr.push(Nt,xi),xi},Ia:8,readValueFromPointer:$n,Ja(cr){Nt(cr)}})},x:(Be,Re,Ke,Ye,gt,Mt)=>{Oi[Be]={name:Fs(Re),Ua:dn(Ke,Ye),Ka:dn(gt,Mt),Xa:[]}},i:(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji)=>{Oi[Be].Xa.push({ab:Fs(Re),gb:Ke,eb:dn(Ye,gt),fb:Mt,mb:Er,lb:dn(cr,Ei),nb:Ji})},$:(Be,Re)=>{Re=Fs(Re),Me(Be,{pb:!0,name:Re,Ia:0,fromWireType:()=>{},toWireType:()=>{}})},K:()=>{xr=!1,hE=0},I:()=>{throw 1/0},C:(Be,Re,Ke)=>(Be=O1(Be),Re=Ml(Re,"emval::as"),fd(Re,Ke,Be)),q:(Be,Re,Ke,Ye)=>(Be=kl[Be],Re=O1(Re),Be(null,Re,Ke,Ye)),W:hs,E:(Be,Re)=>(Be=O1(Be),Re=O1(Re),Be==Re),p:(Be,Re,Ke)=>{var Ye=_d(Be,Re),gt=Ye.shift();Be--;var Mt=Array(Be);return Re=`methodCaller<(${Ye.map(Er=>Er.name).join(", ")}) => ${gt.name}>`,cg(Oa(Re,(Er,cr,Ei,Ji)=>{for(var xi=0,qn=0;qn{9{var Re=O1(Be);_o(Re),hs(Be)},s:(Be,Re)=>(Be=Ml(Be,"_emval_take_value"),Be=Be.readValueFromPointer(Re),gE(Be)),G:(Be,Re)=>{if(FA[Be]&&(clearTimeout(FA[Be].id),delete FA[Be]),!Re)return 0;var Ke=setTimeout(()=>{delete FA[Be],IE(()=>ti(Be,performance.now()))},Re);return FA[Be]={id:Ke,qb:Re},0},H:(Be,Re,Ke,Ye)=>{var gt=new Date().getFullYear(),Mt=new Date(gt,0,1).getTimezoneOffset();gt=new Date(gt,6,1).getTimezoneOffset(),At[Be>>2]=60*Math.max(Mt,gt),He[Re>>2]=+(Mt!=gt),Re=Er=>{var cr=Math.abs(Er);return`UTC${0<=Er?"-":"+"}${String(Math.floor(cr/60)).padStart(2,"0")}${String(cr%60).padStart(2,"0")}`},Be=Re(Mt),Re=Re(gt),gtperformance.now(),J:Be=>{var Re=Fe.length;if(Be>>>=0,2147483648=Ke;Ke*=2){var Ye=Re*(1+.2/Ke);Ye=Math.min(Ye,Be+100663296);e:{Ye=(Math.min(2147483648,65536*Math.ceil(Math.max(Be,Ye)/65536))-ue.buffer.byteLength+65535)/65536|0;try{ue.grow(Ye),rt();var gt=1;break e}catch{}gt=void 0}if(gt)return!0}return!1},V:(Be,Re)=>{var Ke=0;return Po().forEach((Ye,gt)=>{var Mt=Re+Ke;for(gt=At[Be+4*gt>>2]=Mt,Mt=0;Mt{var Ke=Po();At[Be>>2]=Ke.length;var Ye=0;return Ke.forEach(gt=>Ye+=gt.length+1),At[Re>>2]=Ye,0},S:()=>52,Q:()=>52,l:zs,f:sA,e:fT,B:GA,aa:pT,a:M1,b:CT,h:A0,t:_T,U:Xc,L:(Be,Re)=>($h(Fe.subarray(Be,Be+Re)),0)},dr;(async function(Be,Re){function Ke(Mt){var Er;return dr=Mt.exports,ue=dr.da,rt(),Mo=dr.ga,lt.unshift(dr.ea),ht--,(Er=v.monitorRunDependencies)===null||Er===void 0||Er.call(v,ht),ht==0&&vt&&(Mt=vt,vt=null,Mt()),dr}ht++,(Be=v.monitorRunDependencies)===null||Be===void 0||Be.call(v,ht);var Ye={a:o0};if(v.instantiateWasm)try{return v.instantiateWasm(Ye,Ke)}catch(Mt){ee(`Module.instantiateWasm callback failed with error: ${Mt}`),x(Mt)}(Re=vr)!==null&&Re!==void 0||(vr=jt("DotLottiePlayer.wasm")?"DotLottiePlayer.wasm":v.locateFile?v.locateFile("DotLottiePlayer.wasm",W):W+"DotLottiePlayer.wasm");try{var gt=await yi(Ye);return Ke(gt.instance),gt}catch(Mt){x(Mt)}})();var Ze=Be=>(Ze=dr.fa)(Be),Nt=Be=>(Nt=dr.ha)(Be),Rr=Be=>(Rr=dr.ia)(Be),ti=(Be,Re)=>(ti=dr.ja)(Be,Re),Ui=(Be,Re)=>(Ui=dr.ka)(Be,Re),hn=Be=>(hn=dr.la)(Be),Uo=()=>(Uo=dr.ma)();v.dynCall_jiii=(Be,Re,Ke,Ye)=>(v.dynCall_jiii=dr.na)(Be,Re,Ke,Ye),v.dynCall_jii=(Be,Re,Ke)=>(v.dynCall_jii=dr.oa)(Be,Re,Ke),v.dynCall_vjii=(Be,Re,Ke,Ye,gt)=>(v.dynCall_vjii=dr.pa)(Be,Re,Ke,Ye,gt),v.dynCall_vjfii=(Be,Re,Ke,Ye,gt,Mt)=>(v.dynCall_vjfii=dr.qa)(Be,Re,Ke,Ye,gt,Mt),v.dynCall_vjiii=(Be,Re,Ke,Ye,gt,Mt)=>(v.dynCall_vjiii=dr.ra)(Be,Re,Ke,Ye,gt,Mt),v.dynCall_vj=(Be,Re,Ke)=>(v.dynCall_vj=dr.sa)(Be,Re,Ke),v.dynCall_vjiiiii=(Be,Re,Ke,Ye,gt,Mt,Er,cr)=>(v.dynCall_vjiiiii=dr.ta)(Be,Re,Ke,Ye,gt,Mt,Er,cr),v.dynCall_vjiffii=(Be,Re,Ke,Ye,gt,Mt,Er,cr)=>(v.dynCall_vjiffii=dr.ua)(Be,Re,Ke,Ye,gt,Mt,Er,cr),v.dynCall_vjiiii=(Be,Re,Ke,Ye,gt,Mt,Er)=>(v.dynCall_vjiiii=dr.va)(Be,Re,Ke,Ye,gt,Mt,Er),v.dynCall_viijii=(Be,Re,Ke,Ye,gt,Mt,Er)=>(v.dynCall_viijii=dr.wa)(Be,Re,Ke,Ye,gt,Mt,Er),v.dynCall_iiiiij=(Be,Re,Ke,Ye,gt,Mt,Er)=>(v.dynCall_iiiiij=dr.xa)(Be,Re,Ke,Ye,gt,Mt,Er),v.dynCall_iiiiijj=(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei)=>(v.dynCall_iiiiijj=dr.ya)(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei),v.dynCall_iiiiiijj=(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji)=>(v.dynCall_iiiiiijj=dr.za)(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji);function zs(Be,Re){var Ke=Uo();try{return Mo.get(Be)(Re)}catch(Ye){if(hn(Ke),Ye!==Ye+0)throw Ye;Ui(1,0)}}function GA(Be,Re,Ke,Ye,gt,Mt){var Er=Uo();try{return Mo.get(Be)(Re,Ke,Ye,gt,Mt)}catch(cr){if(hn(Er),cr!==cr+0)throw cr;Ui(1,0)}}function M1(Be,Re){var Ke=Uo();try{Mo.get(Be)(Re)}catch(Ye){if(hn(Ke),Ye!==Ye+0)throw Ye;Ui(1,0)}}function A0(Be,Re,Ke,Ye){var gt=Uo();try{Mo.get(Be)(Re,Ke,Ye)}catch(Mt){if(hn(gt),Mt!==Mt+0)throw Mt;Ui(1,0)}}function sA(Be,Re,Ke){var Ye=Uo();try{return Mo.get(Be)(Re,Ke)}catch(gt){if(hn(Ye),gt!==gt+0)throw gt;Ui(1,0)}}function CT(Be,Re,Ke){var Ye=Uo();try{Mo.get(Be)(Re,Ke)}catch(gt){if(hn(Ye),gt!==gt+0)throw gt;Ui(1,0)}}function pT(Be){var Re=Uo();try{Mo.get(Be)()}catch(Ke){if(hn(Re),Ke!==Ke+0)throw Ke;Ui(1,0)}}function fT(Be,Re,Ke,Ye){var gt=Uo();try{return Mo.get(Be)(Re,Ke,Ye)}catch(Mt){if(hn(gt),Mt!==Mt+0)throw Mt;Ui(1,0)}}function _T(Be,Re,Ke,Ye,gt){var Mt=Uo();try{Mo.get(Be)(Re,Ke,Ye,gt)}catch(Er){if(hn(Mt),Er!==Er+0)throw Er;Ui(1,0)}}var c0;vt=function Be(){c0||Fp(),c0||(vt=Be)};function Fp(){function Be(){if(!c0&&(c0=!0,v.calledRun=!0,!Ee)){var Re;if(Jn(lt),L(v),(Re=v.onRuntimeInitialized)===null||Re===void 0||Re.call(v),v.postRun)for(typeof v.postRun=="function"&&(v.postRun=[v.postRun]);v.postRun.length;){var Ke=v.postRun.shift();Yt.unshift(Ke)}Jn(Yt)}}if(!(0{setTimeout(()=>v.setStatus(""),1),Be()},1)):Be())}}if(v.preInit)for(typeof v.preInit=="function"&&(v.preInit=[v.preInit]);0n})}static async _loadWithBackup(){return this._ModulePromise||(this._ModulePromise=this._tryLoad(this._wasmURL).catch(async n=>{let e=`https://unpkg.com/${Y2}@${X2}/dist/dotlottie-player.wasm`;console.warn(`Primary WASM load failed from ${this._wasmURL}. Error: ${n.message}`),console.warn(`Attempting to load WASM from backup URL: ${e}`);try{return await this._tryLoad(e)}catch(o){throw console.error(`Primary WASM URL failed: ${n.message}`),console.error(`Backup WASM URL failed: ${o.message}`),new Error("WASM loading failed from all sources.")}})),this._ModulePromise}static async load(){return this._loadWithBackup()}static setWasmUrl(n){n!==this._wasmURL&&(this._wasmURL=n,this._ModulePromise=null)}};p(A1,"_ModulePromise",null),p(A1,"_wasmURL",`https://cdn.jsdelivr.net/npm/${Y2}@${X2}/dist/dotlottie-player.wasm`);var Z2=class{constructor(){p(this,"_eventListeners",new Map)}addEventListener(n,e){let o=this._eventListeners.get(n);o||(o=new Set,this._eventListeners.set(n,o)),o.add(e)}removeEventListener(n,e){let o=this._eventListeners.get(n);o&&(e?(o.delete(e),o.size===0&&this._eventListeners.delete(n)):this._eventListeners.delete(n))}dispatch(n){var e;(e=this._eventListeners.get(n.type))==null||e.forEach(o=>o(n))}removeAllEventListeners(){this._eventListeners.clear()}},N=class{static _initializeObserver(){if(this._observer)return;let n=e=>{e.forEach(o=>{let d=this._observedCanvases.get(o.target);d&&(o.isIntersecting?d.unfreeze():d.freeze())})};this._observer=new IntersectionObserver(n,{threshold:0})}static observe(n,e){var o;this._initializeObserver(),!this._observedCanvases.has(n)&&(this._observedCanvases.set(n,e),(o=this._observer)==null||o.observe(n))}static unobserve(n){var e,o;(e=this._observer)==null||e.unobserve(n),this._observedCanvases.delete(n),this._observedCanvases.size===0&&((o=this._observer)==null||o.disconnect(),this._observer=null)}};p(N,"_observer",null),p(N,"_observedCanvases",new Map);var G=class{static _initializeObserver(){if(this._observer)return;let n=e=>{e.forEach(o=>{let d=this._observedCanvases.get(o.target);if(!d)return;let[I,f]=d;clearTimeout(f);let S=setTimeout(()=>{I.resize()},100);this._observedCanvases.set(o.target,[I,S])})};this._observer=new ResizeObserver(n)}static observe(n,e){var o;this._initializeObserver(),!this._observedCanvases.has(n)&&(this._observedCanvases.set(n,[e,0]),(o=this._observer)==null||o.observe(n))}static unobserve(n){var o;let e=this._observedCanvases.get(n);if(e){let d=e[1];d&&clearTimeout(d)}(o=this._observer)==null||o.unobserve(n),this._observedCanvases.delete(n),!this._observedCanvases.size&&this._observer&&(this._observer.disconnect(),this._observer=null)}};p(G,"_observer",null),p(G,"_observedCanvases",new Map);function t0(n){return/^#([\da-f]{6}|[\da-f]{8})$/iu.test(n)}function e0(n){if(!t0(n))return 0;let e=n.replace("#","");return e=e.length===6?`${e}ff`:e,parseInt(e,16)}function V2(n){if(n.byteLength<4)return!1;let e=new Uint8Array(n.slice(0,_2.byteLength));for(let o=0;o<_2.length;o+=1)if(_2[o]!==e[o])return!1;return!0}function J2(n){return K3.every(e=>Object.prototype.hasOwnProperty.call(n,e))}function q2(n){if(typeof n=="string")try{return J2(JSON.parse(n))}catch{return!1}else return J2(n)}function d1(){return 1+((E?window.devicePixelRatio:1)-1)*Q3}function l1(n){let e=n.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight,d=window.innerWidth||document.documentElement.clientWidth;return!(e.bottom<0||e.top>o||e.right<0||e.left>d)}function z(n){let e=n.target;if(e instanceof HTMLCanvasElement){let o=e.getBoundingClientRect();if(o.width===0||o.height===0||e.width===0||e.height===0)return null;let d=e.width/o.width,I=e.height/o.height,f=(n.clientX-o.left)*d,S=(n.clientY-o.top)*I;return!Number.isFinite(f)||!Number.isFinite(S)||Number.isNaN(f)||Number.isNaN(S)?null:{x:f,y:S}}return null}function t3(n){let e=n.replace("OpenUrl: ",""),o=e.indexOf(" | Target: "),d,I;o===-1?(d=e,I="_blank"):(d=e.substring(0,o),I=e.substring(o+11)),window.open(d,I)}var K2=(n,e)=>{let o=new n.VectorChar,d=new Uint8Array(e);for(let I=0;In==="reverse"?e.Mode.Reverse:n==="bounce"?e.Mode.Bounce:n==="reverse-bounce"?e.Mode.ReverseBounce:e.Mode.Forward,i0=(n,e)=>n==="contain"?e.Fit.Contain:n==="cover"?e.Fit.Cover:n==="fill"?e.Fit.Fill:n==="fit-height"?e.Fit.FitHeight:n==="fit-width"?e.Fit.FitWidth:e.Fit.None,n0=(n,e)=>{let o=new e.VectorFloat;return o.push_back(n[0]),o.push_back(n[1]),o},v2=(n,e)=>{let o=new e.VectorFloat;return n.length!==2||(o.push_back(n[0]),o.push_back(n[1])),o},p2=(n,e)=>n?{align:n0(n.align??[.5,.5],e),fit:i0(n.fit??"contain",e)}:e.createDefaultLayout(),e3=class wo{constructor(e){var o,d;p(this,"_canvas",null),p(this,"_pendingLoad",null),p(this,"_context",null),p(this,"_eventManager"),p(this,"_animationFrameId",null),p(this,"_frameManager"),p(this,"_dotLottieCore",null),p(this,"_stateMachineId",""),p(this,"_stateMachineConfig",null),p(this,"_isStateMachineRunning",!1),p(this,"_stateMachineObserverHandle",null),p(this,"_stateMachineInternalMessageObserver",null),p(this,"_dotLottieObserverHandle",null),p(this,"_renderConfig",{}),p(this,"_isFrozen",!1),p(this,"_backgroundColor",null),p(this,"_boundOnClick",null),p(this,"_boundOnPointerUp",null),p(this,"_boundOnPointerDown",null),p(this,"_boundOnPointerMove",null),p(this,"_boundOnPointerEnter",null),p(this,"_boundOnPointerLeave",null),p(this,"_bufferMismatchCount",0),p(this,"_lastExpectedBufferSize",0),this._canvas=e.canvas??null,this._eventManager=new Z2,this._frameManager=new q3,this._renderConfig={...e.renderConfig,devicePixelRatio:((o=e.renderConfig)==null?void 0:o.devicePixelRatio)||d1(),freezeOnOffscreen:((d=e.renderConfig)==null?void 0:d.freezeOnOffscreen)??!0},A1.load().then(I=>{wo._wasmModule=I;let f=new I.CallbackObserver;f.setOnLoad(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"load"})},0)}),f.setOnLoadError(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"loadError",error:new Error("failed to load")})},0)}),f.setOnPlay(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"play"})},0)}),f.setOnPause(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"pause"})},0)}),f.setOnStop(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"stop"})},0)}),f.setOnLoop(S=>{setTimeout(()=>{this._eventManager.dispatch({type:"loop",loopCount:S})},0)}),f.setOnComplete(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"complete"})},0)}),f.setOnFrame(S=>{setTimeout(()=>{this._eventManager.dispatch({type:"frame",currentFrame:S})},0)}),f.setOnRender(S=>{setTimeout(()=>{this._eventManager.dispatch({type:"render",currentFrame:S})},0)}),this._dotLottieCore=new I.DotLottiePlayer({animationId:e.animationId??"",themeId:e.themeId??"",stateMachineId:"",autoplay:e.autoplay??!1,backgroundColor:0,loopAnimation:e.loop??!1,loopCount:e.loopCount??0,mode:f2(e.mode??"forward",I),segment:v2(e.segment??[],I),speed:e.speed??1,useFrameInterpolation:e.useFrameInterpolation??!0,marker:e.marker??"",layout:p2(e.layout,I)}),this._stateMachineId=e.stateMachineId??"",this._stateMachineConfig=e.stateMachineConfig??null,this._dotLottieObserverHandle=this._dotLottieCore.subscribe(f),this._eventManager.dispatch({type:"ready"}),e.data?this._canvas?this._loadFromData(e.data):this._pendingLoad={data:e.data}:e.src&&(this._canvas?this._loadFromSrc(e.src):this._pendingLoad={src:e.src}),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor)}).catch(I=>{this._eventManager.dispatch({type:"loadError",error:new Error(`Failed to load wasm module: ${I}`)})})}_dispatchError(e){console.error(e),this._eventManager.dispatch({type:"loadError",error:new Error(e)})}async _fetchData(e){let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch animation data from URL: ${e}. ${o.status}: ${o.statusText}`);let d=await o.arrayBuffer();return V2(d)?d:new TextDecoder().decode(d)}_loadFromData(e){if(this._dotLottieCore===null||wo._wasmModule===null)return;if(!this._canvas){console.warn("[dotlottie-web] Cannot load animation without canvas. Call setCanvas() first.");return}let o=this._canvas.width,d=this._canvas.height,I=!1;if(typeof e=="string"){if(!q2(e)){this._dispatchError("Invalid Lottie JSON string: The provided string does not conform to the Lottie JSON format.");return}I=this._dotLottieCore.loadAnimationData(e,o,d)}else if(e instanceof ArrayBuffer){if(!V2(e)){this._dispatchError("Invalid dotLottie ArrayBuffer: The provided ArrayBuffer does not conform to the dotLottie format.");return}I=this._dotLottieCore.loadDotLottieData(K2(wo._wasmModule,e),o,d)}else if(typeof e=="object"){if(!q2(e)){this._dispatchError("Invalid Lottie JSON object: The provided object does not conform to the Lottie JSON format.");return}I=this._dotLottieCore.loadAnimationData(JSON.stringify(e),o,d)}else{this._dispatchError(`Unsupported data type for animation data. Expected: + - string (Lottie JSON), + - ArrayBuffer (dotLottie), + - object (Lottie JSON). + Received: ${typeof e}`);return}I&&(this._renderConfig.quality!==void 0&&this._dotLottieCore.setQuality(this._renderConfig.quality),E&&this.resize(),setTimeout(()=>{this._eventManager.dispatch({type:"frame",currentFrame:this.currentFrame})},0),this._dotLottieCore.render(),this._draw(),this._stateMachineId?this.stateMachineLoad(this._stateMachineId)&&this.stateMachineStart()&&this._startAnimationLoop():this._dotLottieCore.isPlaying()&&this._startAnimationLoop(),E&&this._canvas instanceof HTMLCanvasElement&&(this._renderConfig.freezeOnOffscreen&&(N.observe(this._canvas,this),l1(this._canvas)||this.freeze()),this._renderConfig.autoResize&&G.observe(this._canvas,this)))}_loadFromSrc(e){this._fetchData(e).then(o=>this._loadFromData(o)).catch(o=>this._dispatchError(`Failed to load animation data from URL: ${e}. ${o}`))}get buffer(){return this._dotLottieCore?this._dotLottieCore.buffer():null}get activeAnimationId(){var e;return(e=this._dotLottieCore)==null?void 0:e.activeAnimationId()}get activeThemeId(){var e;return(e=this._dotLottieCore)==null?void 0:e.activeThemeId()}get layout(){var o;let e=(o=this._dotLottieCore)==null?void 0:o.config().layout;if(e)return{align:[e.align.get(0),e.align.get(1)],fit:(()=>{var d,I,f,S,v,L;switch(e.fit){case((d=wo._wasmModule)==null?void 0:d.Fit.Contain):return"contain";case((I=wo._wasmModule)==null?void 0:I.Fit.Cover):return"cover";case((f=wo._wasmModule)==null?void 0:f.Fit.Fill):return"fill";case((S=wo._wasmModule)==null?void 0:S.Fit.FitHeight):return"fit-height";case((v=wo._wasmModule)==null?void 0:v.Fit.FitWidth):return"fit-width";case((L=wo._wasmModule)==null?void 0:L.Fit.None):return"none";default:return"contain"}})()}}get marker(){var e;return(e=this._dotLottieCore)==null?void 0:e.config().marker}get manifest(){var e;try{let o=(e=this._dotLottieCore)==null?void 0:e.manifestString();if(this._dotLottieCore===null||!o)return null;let d=JSON.parse(o);return Object.keys(d).length===0?null:d}catch{return null}}get renderConfig(){return this._renderConfig}get segment(){var o;let e=(o=this._dotLottieCore)==null?void 0:o.config().segment;if(e&&e.size()===2)return[e.get(0),e.get(1)]}get loop(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().loopAnimation)??!1}get mode(){var o,d,I,f;let e=(o=this._dotLottieCore)==null?void 0:o.config().mode;return e===((d=wo._wasmModule)==null?void 0:d.Mode.Reverse)?"reverse":e===((I=wo._wasmModule)==null?void 0:I.Mode.Bounce)?"bounce":e===((f=wo._wasmModule)==null?void 0:f.Mode.ReverseBounce)?"reverse-bounce":"forward"}get isFrozen(){return this._isFrozen}get isStateMachineRunning(){return this._isStateMachineRunning}get backgroundColor(){return this._backgroundColor??""}get autoplay(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().autoplay)??!1}get useFrameInterpolation(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().useFrameInterpolation)??!1}get speed(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().speed)??0}get isReady(){return this._dotLottieCore!==null}get isLoaded(){var e;return((e=this._dotLottieCore)==null?void 0:e.isLoaded())??!1}get isPlaying(){var e;return((e=this._dotLottieCore)==null?void 0:e.isPlaying())??!1}get isPaused(){var e;return((e=this._dotLottieCore)==null?void 0:e.isPaused())??!1}get isStopped(){var e;return((e=this._dotLottieCore)==null?void 0:e.isStopped())??!1}get currentFrame(){return this._dotLottieCore?Math.round(this._dotLottieCore.currentFrame()*100)/100:0}get loopCount(){var e;return((e=this._dotLottieCore)==null?void 0:e.loopCount())??0}get totalFrames(){var e;return((e=this._dotLottieCore)==null?void 0:e.totalFrames())??0}get duration(){var e;return((e=this._dotLottieCore)==null?void 0:e.duration())??0}get segmentDuration(){var e;return((e=this._dotLottieCore)==null?void 0:e.segmentDuration())??0}get canvas(){return this._canvas}load(e){this._dotLottieCore===null||wo._wasmModule===null||(this._stopAnimationLoop(),this._cleanupCanvas(),this._isFrozen=!1,this._dotLottieCore.setConfig({animationId:e.animationId??"",themeId:e.themeId??"",stateMachineId:"",autoplay:e.autoplay??!1,backgroundColor:0,loopAnimation:e.loop??!1,loopCount:e.loopCount??0,mode:f2(e.mode??"forward",wo._wasmModule),segment:v2(e.segment??[],wo._wasmModule),speed:e.speed??1,useFrameInterpolation:e.useFrameInterpolation??!0,marker:e.marker??"",layout:p2(e.layout,wo._wasmModule)}),e.data?this._canvas?this._loadFromData(e.data):this._pendingLoad={data:e.data}:e.src&&(this._canvas?this._loadFromSrc(e.src):this._pendingLoad={src:e.src}),this.setBackgroundColor(e.backgroundColor??""))}_draw(){if(!(this._dotLottieCore===null||this._canvas===null)&&(!this._context&&"getContext"in this._canvas&&typeof this._canvas.getContext=="function"&&(typeof HTMLCanvasElement<"u"&&this._canvas instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&this._canvas instanceof OffscreenCanvas)&&(this._context=this._canvas.getContext("2d")),this._context)){let e=this._dotLottieCore.buffer(),o=this._canvas.width*this._canvas.height*X3;if(e.byteLength!==o){this._lastExpectedBufferSize===o?this._bufferMismatchCount+=1:(this._bufferMismatchCount=1,this._lastExpectedBufferSize=o),this._bufferMismatchCount===10&&console.warn(`[dotlottie-web] Persistent buffer size mismatch detected. Expected ${o} bytes for canvas ${this._canvas.width}x${this._canvas.height}, but got ${e.byteLength} bytes. This may indicate a WASM memory allocation issue or invalid canvas dimensions.`);return}this._bufferMismatchCount=0,this._lastExpectedBufferSize=o;let d=null,I=new Uint8ClampedArray(e,0,e.byteLength);typeof ImageData>"u"?(d=this._context.createImageData(this._canvas.width,this._canvas.height),d.data.set(I)):d=new ImageData(I,this._canvas.width,this._canvas.height),this._context.putImageData(d,0,0)}}_cleanupCanvas(){this._canvas&&E&&this._canvas instanceof HTMLCanvasElement&&(N.unobserve(this._canvas),G.unobserve(this._canvas),this._cleanupStateMachineListeners())}_initializeCanvas(){this._context=null,this._canvas&&E&&this._canvas instanceof HTMLCanvasElement&&this.isLoaded&&(this._renderConfig.freezeOnOffscreen&&(N.observe(this._canvas,this),l1(this._canvas)||this.freeze()),this._renderConfig.autoResize&&G.observe(this._canvas,this),this._isStateMachineRunning&&this._setupStateMachineListeners()),this._canvas&&this._dotLottieCore&&this.isLoaded&&this._dotLottieCore.resize(this._canvas.width,this._canvas.height)&&(this._dotLottieCore.render(),this._draw())}_stopAnimationLoop(){this._animationFrameId!==null&&(this._frameManager.cancelAnimationFrame(this._animationFrameId),this._animationFrameId=null)}_startAnimationLoop(){this._animationFrameId===null&&this._dotLottieCore&&!this._isFrozen&&(this._dotLottieCore.isPlaying()||this._isStateMachineRunning)&&(this._animationFrameId=this._frameManager.requestAnimationFrame(this._animationLoop.bind(this)))}_animationLoop(){if(this._dotLottieCore===null){this._stopAnimationLoop();return}if(!this._dotLottieCore.isPlaying()&&!this._isStateMachineRunning){this._stopAnimationLoop();return}try{this._dotLottieCore.tick()&&this._draw(),this._animationFrameId=this._frameManager.requestAnimationFrame(this._animationLoop.bind(this))}catch(e){console.error("Error in animation frame:",e),this._eventManager.dispatch({type:"renderError",error:e}),e instanceof WebAssembly.RuntimeError&&this.destroy()}}play(){this._dotLottieCore===null||!this.isLoaded||(this._stopAnimationLoop(),(this._dotLottieCore.play()||this._dotLottieCore.isPlaying())&&(this._isFrozen=!1,this._startAnimationLoop()),this._canvas&&E&&this._canvas instanceof HTMLCanvasElement&&this._renderConfig.freezeOnOffscreen&&!l1(this._canvas)&&this.freeze())}pause(){this._dotLottieCore!==null&&(this._dotLottieCore.pause(),this._stopAnimationLoop())}stop(){if(this._dotLottieCore===null)return;let e=this._dotLottieCore.stop();this._stopAnimationLoop(),e&&(this._eventManager.dispatch({type:"frame",currentFrame:this.currentFrame}),this._dotLottieCore.render(),this._draw())}setFrame(e){this._dotLottieCore!==null&&this._dotLottieCore.seek(e)&&this._dotLottieCore.render()&&this._draw()}setSpeed(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),speed:e})}setBackgroundColor(e){this._dotLottieCore!==null&&(E&&this._canvas instanceof HTMLCanvasElement?this._canvas.style.backgroundColor=e:this._dotLottieCore.setConfig({...this._dotLottieCore.config(),backgroundColor:e0(e)}),this._backgroundColor=e)}setLoop(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),loopAnimation:e})}setLoopCount(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),loopCount:e})}setUseFrameInterpolation(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),useFrameInterpolation:e})}addEventListener(e,o){this._eventManager.addEventListener(e,o)}removeEventListener(e,o){this._eventManager.removeEventListener(e,o)}destroy(){var e,o,d,I;this._stopAnimationLoop(),this._isStateMachineRunning=!1,this._cleanupCanvas(),this._stateMachineObserverHandle&&((e=this._dotLottieCore)==null||e.stateMachineUnsubscribe(this._stateMachineObserverHandle),this._stateMachineObserverHandle.delete(),this._stateMachineObserverHandle=null),this._stateMachineInternalMessageObserver&&((o=this._dotLottieCore)==null||o.stateMachineInternalUnsubscribe(this._stateMachineInternalMessageObserver),this._stateMachineInternalMessageObserver.delete(),this._stateMachineInternalMessageObserver=null),this._dotLottieObserverHandle&&((d=this._dotLottieCore)==null||d.unsubscribe(this._dotLottieObserverHandle),this._dotLottieObserverHandle.delete(),this._dotLottieObserverHandle=null),(I=this._dotLottieCore)==null||I.delete(),this._dotLottieCore=null,this._context=null,this._eventManager.dispatch({type:"destroy"}),this._eventManager.removeAllEventListeners(),this._cleanupStateMachineListeners()}freeze(){this._animationFrameId!==null&&(this._stopAnimationLoop(),this._isFrozen=!0,this._eventManager.dispatch({type:"freeze"}))}unfreeze(){this._animationFrameId===null&&(this._isFrozen=!1,this._eventManager.dispatch({type:"unfreeze"}),this._startAnimationLoop())}resize(){if(!(!this._dotLottieCore||!this.isLoaded||!this._canvas)){if(E&&this._canvas instanceof HTMLCanvasElement){let e=this._renderConfig.devicePixelRatio||window.devicePixelRatio||1,{height:o,width:d}=this._canvas.getBoundingClientRect();o!==0&&d!==0&&(this._canvas.width=d*e,this._canvas.height=o*e)}this._dotLottieCore.resize(this._canvas.width,this._canvas.height)&&(this._dotLottieCore.render(),this._draw())}}setCanvas(e){if(!(!e||this._canvas===e)&&(this._canvas&&this._cleanupCanvas(),this._canvas=e,this._initializeCanvas(),this._pendingLoad)){let o=this._pendingLoad;this._pendingLoad=null,o.data?this._loadFromData(o.data):o.src&&this._loadFromSrc(o.src)}}setTransform(e){if(!this._dotLottieCore||!wo._wasmModule)return!1;let o=new wo._wasmModule.VectorFloat;for(let I of e)o.push_back(I);let d=this._dotLottieCore.setTransform(o);return d&&this._dotLottieCore.render()&&this._draw(),d}getTransform(){if(!this._dotLottieCore)return;let e=[0,0,0,0,0,0,0,0,0],o=this._dotLottieCore.getTransform();for(let d=0;d0&&typeof e[0]=="object"&&e[0]!==null&&"t"in e[0]&&"s"in e[0]}getSlotIds(){if(!this._dotLottieCore)return[];let e=this._dotLottieCore.getSlotIds(),o=[];for(let d=0;d{setTimeout(()=>{this._isStateMachineRunning=!0,this._eventManager.dispatch({type:"stateMachineStart"}),this._startAnimationLoop()},0)}),e.setOnStop(()=>{setTimeout(()=>{var d;this._isStateMachineRunning=!1,this._eventManager.dispatch({type:"stateMachineStop"}),(d=this._dotLottieCore)!=null&&d.isPlaying()||this._stopAnimationLoop()},0)}),e.setOnCustomEvent(d=>{this._eventManager.dispatch({type:"stateMachineCustomEvent",eventName:d})}),e.setOnBooleanInputValueChange((d,I,f)=>{this._eventManager.dispatch({type:"stateMachineBooleanInputValueChange",inputName:d,newValue:f,oldValue:I})}),e.setOnNumericInputValueChange((d,I,f)=>{this._eventManager.dispatch({type:"stateMachineNumericInputValueChange",inputName:d,newValue:f,oldValue:I})}),e.setOnStringInputValueChange((d,I,f)=>{this._eventManager.dispatch({type:"stateMachineStringInputValueChange",inputName:d,newValue:f,oldValue:I})}),e.setOnInputFired(d=>{this._eventManager.dispatch({type:"stateMachineInputFired",inputName:d})}),e.setOnTransition((d,I)=>{this._eventManager.dispatch({type:"stateMachineTransition",fromState:d,toState:I})}),e.setOnStateEntered(d=>{this._eventManager.dispatch({type:"stateMachineStateEntered",state:d})}),e.setOnStateExit(d=>{this._eventManager.dispatch({type:"stateMachineStateExit",state:d})}),e.setOnError(d=>{this._eventManager.dispatch({type:"stateMachineError",error:d})});let o=new wo._wasmModule.CallbackStateMachineInternalObserver;o.setOnMessage(d=>{E?d.startsWith("OpenUrl: ")&&t3(d):this._eventManager.dispatch({type:"stateMachineInternalMessage",message:d})}),this._stateMachineObserverHandle=this._dotLottieCore.stateMachineSubscribe(e),this._stateMachineInternalMessageObserver=this._dotLottieCore.stateMachineInternalSubscribe(o)}_cleanupStateMachineObservers(){var e,o;this._stateMachineObserverHandle&&((e=this._dotLottieCore)==null||e.stateMachineUnsubscribe(this._stateMachineObserverHandle),this._stateMachineObserverHandle.delete(),this._stateMachineObserverHandle=null),this._stateMachineInternalMessageObserver&&((o=this._dotLottieCore)==null||o.stateMachineInternalUnsubscribe(this._stateMachineInternalMessageObserver),this._stateMachineInternalMessageObserver.delete(),this._stateMachineInternalMessageObserver=null)}stateMachineLoad(e){if(!this._dotLottieCore||!wo._wasmModule)return!1;this._cleanupStateMachineObservers();let o=this._dotLottieCore.stateMachineLoad(e);return o&&this._setupStateMachineObservers(),o}stateMachineLoadData(e){if(!this._dotLottieCore||!wo._wasmModule)return!1;this._cleanupStateMachineObservers();let o=this._dotLottieCore.stateMachineLoadData(e);return o&&this._setupStateMachineObservers(),o}stateMachineSetConfig(e){this._stateMachineConfig=e}stateMachineStart(){if(wo._wasmModule===null||this._dotLottieCore===null)return!1;let e=wo._wasmModule.createDefaultOpenUrlPolicy();if(this._stateMachineConfig){let d=this._stateMachineConfig.openUrlPolicy;if(d&&typeof d.requireUserInteraction=="boolean"&&(e.requireUserInteraction=d.requireUserInteraction),d==null?void 0:d.whitelist){e.whitelist=new wo._wasmModule.VectorString;for(let I of d.whitelist)e.whitelist.push_back(I)}}let o=this._dotLottieCore.stateMachineStart(e);return o&&(this._isStateMachineRunning=!0,this._setupStateMachineListeners(),this._startAnimationLoop()),o}stateMachineStop(){if(!this._dotLottieCore)return!1;let e=this._dotLottieCore.stateMachineStop();return e&&(this._cleanupStateMachineObservers(),this._isStateMachineRunning=!1,this._cleanupStateMachineListeners(),this._dotLottieCore.isPlaying()||this._stopAnimationLoop()),e}stateMachineGetStatus(){var e;return((e=this._dotLottieCore)==null?void 0:e.stateMachineStatus())??""}stateMachineGetCurrentState(){var e;return((e=this._dotLottieCore)==null?void 0:e.stateMachineCurrentState())??""}stateMachineGetActiveId(){var e;return((e=this._dotLottieCore)==null?void 0:e.activeStateMachineId())??""}stateMachineOverrideState(e,o=!1){var d;return((d=this._dotLottieCore)==null?void 0:d.stateMachineOverrideCurrentState(e,o))??!1}stateMachineGet(e){var o;return((o=this._dotLottieCore)==null?void 0:o.getStateMachine(e))??""}stateMachineGetListeners(){if(!this._dotLottieCore)return[];let e=this._dotLottieCore.stateMachineFrameworkSetup(),o=[];for(let d=0;d"u")throw new Error("Worker is not supported in this environment.");let n=new Blob([new Uint8Array([34,117,115,101,32,115,116,114,105,99,116,34,59,10,40,40,41,32,61,62,32,123,10,32,32,118,97,114,32,95,95,100,101,102,80,114,111,112,32,61,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,59,10,32,32,118,97,114,32,95,95,100,101,102,78,111,114,109,97,108,80,114,111,112,32,61,32,40,111,98,106,44,32,107,101,121,44,32,118,97,108,117,101,41,32,61,62,32,107,101,121,32,105,110,32,111,98,106,32,63,32,95,95,100,101,102,80,114,111,112,40,111,98,106,44,32,107,101,121,44,32,123,32,101,110,117,109,101,114,97,98,108,101,58,32,116,114,117,101,44,32,99,111,110,102,105,103,117,114,97,98,108,101,58,32,116,114,117,101,44,32,119,114,105,116,97,98,108,101,58,32,116,114,117,101,44,32,118,97,108,117,101,32,125,41,32,58,32,111,98,106,91,107,101,121,93,32,61,32,118,97,108,117,101,59,10,32,32,118,97,114,32,95,95,112,117,98,108,105,99,70,105,101,108,100,32,61,32,40,111,98,106,44,32,107,101,121,44,32,118,97,108,117,101,41,32,61,62,32,95,95,100,101,102,78,111,114,109,97,108,80,114,111,112,40,111,98,106,44,32,116,121,112,101,111,102,32,107,101,121,32,33,61,61,32,34,115,121,109,98,111,108,34,32,63,32,107,101,121,32,43,32,34,34,32,58,32,107,101,121,44,32,118,97,108,117,101,41,59,10,10,32,32,47,47,32,115,114,99,47,97,110,105,109,97,116,105,111,110,45,102,114,97,109,101,45,109,97,110,97,103,101,114,46,116,115,10,32,32,118,97,114,32,87,101,98,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,59,10,32,32,32,32,125,10,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,32,123,10,32,32,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,78,111,100,101,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,108,97,115,116,72,97,110,100,108,101,73,100,34,44,32,48,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,108,97,115,116,73,109,109,101,100,105,97,116,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,32,62,61,32,78,117,109,98,101,114,46,77,65,88,95,83,65,70,69,95,73,78,84,69,71,69,82,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,32,61,32,48,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,32,43,61,32,49,59,10,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,73,109,109,101,100,105,97,116,101,32,61,32,115,101,116,73,109,109,101,100,105,97,116,101,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,40,68,97,116,101,46,110,111,119,40,41,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,59,10,32,32,32,32,125,10,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,95,105,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,108,97,115,116,73,109,109,101,100,105,97,116,101,41,32,123,10,32,32,32,32,32,32,32,32,99,108,101,97,114,73,109,109,101,100,105,97,116,101,40,116,104,105,115,46,95,108,97,115,116,73,109,109,101,100,105,97,116,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,97,110,97,103,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,114,97,116,101,103,121,34,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,114,97,116,101,103,121,32,61,32,116,121,112,101,111,102,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,61,61,32,34,102,117,110,99,116,105,111,110,34,32,63,32,110,101,119,32,87,101,98,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,40,41,32,58,32,110,101,119,32,78,111,100,101,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,40,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,115,116,114,97,116,101,103,121,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,59,10,32,32,32,32,125,10,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,114,97,116,101,103,121,46,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,59,10,32,32,32,32,125,10,32,32,125,59,10,10,32,32,47,47,32,115,114,99,47,99,111,110,115,116,97,110,116,115,46,116,115,10,32,32,118,97,114,32,73,83,95,66,82,79,87,83,69,82,32,61,32,116,121,112,101,111,102,32,119,105,110,100,111,119,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,32,38,38,32,116,121,112,101,111,102,32,119,105,110,100,111,119,46,100,111,99,117,109,101,110,116,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,59,10,32,32,118,97,114,32,90,73,80,95,83,73,71,78,65,84,85,82,69,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,91,56,48,44,32,55,53,44,32,51,44,32,52,93,41,59,10,32,32,118,97,114,32,76,79,84,84,73,69,95,74,83,79,78,95,77,65,78,68,65,84,79,82,89,95,70,73,69,76,68,83,32,61,32,91,34,118,34,44,32,34,105,112,34,44,32,34,111,112,34,44,32,34,108,97,121,101,114,115,34,44,32,34,102,114,34,44,32,34,119,34,44,32,34,104,34,93,59,10,32,32,118,97,114,32,80,65,67,75,65,71,69,95,86,69,82,83,73,79,78,32,61,32,34,48,46,54,51,46,48,34,59,10,32,32,118,97,114,32,80,65,67,75,65,71,69,95,78,65,77,69,32,61,32,34,64,108,111,116,116,105,101,102,105,108,101,115,47,100,111,116,108,111,116,116,105,101,45,119,101,98,34,59,10,32,32,118,97,114,32,68,69,70,65,85,76,84,95,68,80,82,95,70,65,67,84,79,82,32,61,32,48,46,55,53,59,10,32,32,118,97,114,32,66,89,84,69,83,95,80,69,82,95,80,73,88,69,76,32,61,32,52,59,10,10,32,32,47,47,32,115,114,99,47,99,111,114,101,47,100,111,116,108,111,116,116,105,101,45,112,108,97,121,101,114,46,106,115,10,32,32,118,97,114,32,99,114,101,97,116,101,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,77,111,100,117,108,101,32,61,32,40,40,41,32,61,62,32,123,10,32,32,32,32,118,97,114,32,95,115,99,114,105,112,116,78,97,109,101,32,61,32,116,121,112,101,111,102,32,100,111,99,117,109,101,110,116,32,33,61,32,34,117,110,100,101,102,105,110,101,100,34,32,63,32,100,111,99,117,109,101,110,116,46,99,117,114,114,101,110,116,83,99,114,105,112,116,63,46,115,114,99,32,58,32,118,111,105,100,32,48,59,10,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,116,105,111,110,40,109,111,100,117,108,101,65,114,103,32,61,32,123,125,41,32,123,10,32,32,32,32,32,32,118,97,114,32,109,111,100,117,108,101,82,116,110,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,101,44,32,114,44,32,116,50,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,114,32,61,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,114,41,41,32,105,110,32,101,32,63,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,101,44,32,114,44,32,123,32,118,97,108,117,101,58,32,116,50,44,32,101,110,117,109,101,114,97,98,108,101,58,32,116,114,117,101,44,32,99,111,110,102,105,103,117,114,97,98,108,101,58,32,116,114,117,101,44,32,119,114,105,116,97,98,108,101,58,32,116,114,117,101,32,125,41,32,58,32,101,91,114,93,32,61,32,116,50,44,32,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,116,50,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,105,32,61,32,95,116,111,80,114,105,109,105,116,105,118,101,40,116,50,44,32,34,115,116,114,105,110,103,34,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,115,121,109,98,111,108,34,32,61,61,32,116,121,112,101,111,102,32,105,32,63,32,105,32,58,32,105,32,43,32,34,34,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,95,116,111,80,114,105,109,105,116,105,118,101,40,116,50,44,32,114,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,34,111,98,106,101,99,116,34,32,33,61,32,116,121,112,101,111,102,32,116,50,32,124,124,32,33,116,50,41,32,114,101,116,117,114,110,32,116,50,59,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,116,50,91,83,121,109,98,111,108,46,116,111,80,114,105,109,105,116,105,118,101,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,33,61,61,32,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,105,32,61,32,101,46,99,97,108,108,40,116,50,44,32,114,32,124,124,32,34,100,101,102,97,117,108,116,34,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,34,111,98,106,101,99,116,34,32,33,61,32,116,121,112,101,111,102,32,105,41,32,114,101,116,117,114,110,32,105,59,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,64,64,116,111,80,114,105,109,105,116,105,118,101,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,112,114,105,109,105,116,105,118,101,32,118,97,108,117,101,46,34,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,34,115,116,114,105,110,103,34,32,61,61,61,32,114,32,63,32,83,116,114,105,110,103,32,58,32,78,117,109,98,101,114,41,40,116,50,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,104,32,61,32,109,111,100,117,108,101,65,114,103,44,32,97,97,44,32,98,97,44,32,99,97,32,61,32,110,101,119,32,80,114,111,109,105,115,101,40,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,97,32,61,32,97,59,10,32,32,32,32,32,32,32,32,98,97,32,61,32,98,59,10,32,32,32,32,32,32,125,41,44,32,102,97,32,61,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,123,125,44,32,104,41,44,32,104,97,32,61,32,34,46,47,116,104,105,115,46,112,114,111,103,114,97,109,34,44,32,112,32,61,32,34,34,44,32,105,97,59,10,32,32,32,32,32,32,34,117,110,100,101,102,105,110,101,100,34,32,33,61,32,116,121,112,101,111,102,32,100,111,99,117,109,101,110,116,32,38,38,32,100,111,99,117,109,101,110,116,46,99,117,114,114,101,110,116,83,99,114,105,112,116,32,38,38,32,40,112,32,61,32,100,111,99,117,109,101,110,116,46,99,117,114,114,101,110,116,83,99,114,105,112,116,46,115,114,99,41,59,10,32,32,32,32,32,32,95,115,99,114,105,112,116,78,97,109,101,32,38,38,32,40,112,32,61,32,95,115,99,114,105,112,116,78,97,109,101,41,59,10,32,32,32,32,32,32,112,46,115,116,97,114,116,115,87,105,116,104,40,34,98,108,111,98,58,34,41,32,63,32,112,32,61,32,34,34,32,58,32,112,32,61,32,112,46,115,117,98,115,116,114,40,48,44,32,112,46,114,101,112,108,97,99,101,40,47,91,63,35,93,46,42,47,44,32,34,34,41,46,108,97,115,116,73,110,100,101,120,79,102,40,34,47,34,41,32,43,32,49,41,59,10,32,32,32,32,32,32,105,97,32,61,32,97,115,121,110,99,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,97,119,97,105,116,32,102,101,116,99,104,40,97,44,32,123,32,99,114,101,100,101,110,116,105,97,108,115,58,32,34,115,97,109,101,45,111,114,105,103,105,110,34,32,125,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,97,46,111,107,41,32,114,101,116,117,114,110,32,97,46,97,114,114,97,121,66,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,69,114,114,111,114,40,97,46,115,116,97,116,117,115,32,43,32,34,32,58,32,34,32,43,32,97,46,117,114,108,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,118,97,114,32,116,32,61,32,104,46,112,114,105,110,116,69,114,114,32,124,124,32,99,111,110,115,111,108,101,46,101,114,114,111,114,46,98,105,110,100,40,99,111,110,115,111,108,101,41,59,10,32,32,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,104,44,32,102,97,41,59,10,32,32,32,32,32,32,102,97,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,104,46,116,104,105,115,80,114,111,103,114,97,109,32,38,38,32,40,104,97,32,61,32,104,46,116,104,105,115,80,114,111,103,114,97,109,41,59,10,32,32,32,32,32,32,118,97,114,32,106,97,32,61,32,104,46,119,97,115,109,66,105,110,97,114,121,44,32,107,97,44,32,108,97,32,61,32,102,97,108,115,101,44,32,109,97,44,32,117,44,32,120,44,32,121,44,32,122,44,32,67,44,32,68,44,32,110,97,44,32,111,97,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,112,97,40,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,107,97,46,98,117,102,102,101,114,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,56,32,61,32,117,32,61,32,110,101,119,32,73,110,116,56,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,49,54,32,61,32,121,32,61,32,110,101,119,32,73,110,116,49,54,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,85,56,32,61,32,120,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,85,49,54,32,61,32,122,32,61,32,110,101,119,32,85,105,110,116,49,54,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,51,50,32,61,32,67,32,61,32,110,101,119,32,73,110,116,51,50,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,85,51,50,32,61,32,68,32,61,32,110,101,119,32,85,105,110,116,51,50,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,70,51,50,32,61,32,110,97,32,61,32,110,101,119,32,70,108,111,97,116,51,50,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,70,54,52,32,61,32,111,97,32,61,32,110,101,119,32,70,108,111,97,116,54,52,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,113,97,32,61,32,91,93,44,32,114,97,32,61,32,91,93,44,32,115,97,32,61,32,91,93,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,116,97,40,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,104,46,112,114,101,82,117,110,46,115,104,105,102,116,40,41,59,10,32,32,32,32,32,32,32,32,113,97,46,117,110,115,104,105,102,116,40,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,70,32,61,32,48,44,32,71,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,117,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,111,110,65,98,111,114,116,59,10,32,32,32,32,32,32,32,32,40,95,104,36,111,110,65,98,111,114,116,32,61,32,104,46,111,110,65,98,111,114,116,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,111,110,65,98,111,114,116,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,111,110,65,98,111,114,116,46,99,97,108,108,40,104,44,32,97,41,59,10,32,32,32,32,32,32,32,32,97,32,61,32,34,65,98,111,114,116,101,100,40,34,32,43,32,97,32,43,32,34,41,34,59,10,32,32,32,32,32,32,32,32,116,40,97,41,59,10,32,32,32,32,32,32,32,32,108,97,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,97,32,61,32,110,101,119,32,87,101,98,65,115,115,101,109,98,108,121,46,82,117,110,116,105,109,101,69,114,114,111,114,40,97,32,43,32,34,46,32,66,117,105,108,100,32,119,105,116,104,32,45,115,65,83,83,69,82,84,73,79,78,83,32,102,111,114,32,109,111,114,101,32,105,110,102,111,46,34,41,59,10,32,32,32,32,32,32,32,32,98,97,40,97,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,97,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,118,97,32,61,32,40,97,41,32,61,62,32,97,46,115,116,97,114,116,115,87,105,116,104,40,34,100,97,116,97,58,97,112,112,108,105,99,97,116,105,111,110,47,111,99,116,101,116,45,115,116,114,101,97,109,59,98,97,115,101,54,52,44,34,41,44,32,119,97,59,10,32,32,32,32,32,32,97,115,121,110,99,32,102,117,110,99,116,105,111,110,32,120,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,106,97,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,97,119,97,105,116,32,105,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,123,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,97,32,61,61,32,119,97,32,38,38,32,106,97,41,32,97,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,106,97,41,59,10,32,32,32,32,32,32,32,32,101,108,115,101,32,116,104,114,111,119,32,34,98,111,116,104,32,97,115,121,110,99,32,97,110,100,32,115,121,110,99,32,102,101,116,99,104,105,110,103,32,111,102,32,116,104,101,32,119,97,115,109,32,102,97,105,108,101,100,34,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,97,115,121,110,99,32,102,117,110,99,116,105,111,110,32,121,97,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,119,97,105,116,32,120,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,119,97,105,116,32,87,101,98,65,115,115,101,109,98,108,121,46,105,110,115,116,97,110,116,105,97,116,101,40,99,44,32,98,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,40,96,102,97,105,108,101,100,32,116,111,32,97,115,121,110,99,104,114,111,110,111,117,115,108,121,32,112,114,101,112,97,114,101,32,119,97,115,109,58,32,36,123,100,125,96,41,44,32,117,97,40,100,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,97,115,121,110,99,32,102,117,110,99,116,105,111,110,32,122,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,119,97,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,106,97,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,87,101,98,65,115,115,101,109,98,108,121,46,105,110,115,116,97,110,116,105,97,116,101,83,116,114,101,97,109,105,110,103,32,38,38,32,33,118,97,40,98,41,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,102,101,116,99,104,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,102,101,116,99,104,40,98,44,32,123,32,99,114,101,100,101,110,116,105,97,108,115,58,32,34,115,97,109,101,45,111,114,105,103,105,110,34,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,119,97,105,116,32,87,101,98,65,115,115,101,109,98,108,121,46,105,110,115,116,97,110,116,105,97,116,101,83,116,114,101,97,109,105,110,103,40,99,44,32,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,40,96,119,97,115,109,32,115,116,114,101,97,109,105,110,103,32,99,111,109,112,105,108,101,32,102,97,105,108,101,100,58,32,36,123,100,125,96,41,44,32,116,40,34,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,65,114,114,97,121,66,117,102,102,101,114,32,105,110,115,116,97,110,116,105,97,116,105,111,110,34,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,121,97,40,98,44,32,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,108,97,115,115,32,65,97,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,116,104,105,115,44,32,34,110,97,109,101,34,44,32,34,69,120,105,116,83,116,97,116,117,115,34,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,96,80,114,111,103,114,97,109,32,116,101,114,109,105,110,97,116,101,100,32,119,105,116,104,32,101,120,105,116,40,36,123,97,125,41,96,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,117,115,32,61,32,97,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,66,97,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,48,32,60,32,97,46,108,101,110,103,116,104,59,32,41,32,97,46,115,104,105,102,116,40,41,40,104,41,59,10,32,32,32,32,32,32,125,44,32,67,97,32,61,32,104,46,110,111,69,120,105,116,82,117,110,116,105,109,101,32,124,124,32,116,114,117,101,44,32,68,97,32,61,32,34,117,110,100,101,102,105,110,101,100,34,32,33,61,32,116,121,112,101,111,102,32,84,101,120,116,68,101,99,111,100,101,114,32,63,32,110,101,119,32,84,101,120,116,68,101,99,111,100,101,114,40,41,32,58,32,118,111,105,100,32,48,44,32,69,97,32,61,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,97,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,48,32,38,38,32,97,114,103,117,109,101,110,116,115,91,48,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,48,93,32,58,32,48,59,10,32,32,32,32,32,32,32,32,108,101,116,32,98,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,49,32,38,38,32,97,114,103,117,109,101,110,116,115,91,49,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,49,93,32,58,32,78,97,78,59,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,120,44,32,100,32,61,32,97,32,43,32,98,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,98,32,61,32,97,59,32,99,91,98,93,32,38,38,32,33,40,98,32,62,61,32,100,41,59,32,41,32,43,43,98,59,10,32,32,32,32,32,32,32,32,105,102,32,40,49,54,32,60,32,98,32,45,32,97,32,38,38,32,99,46,98,117,102,102,101,114,32,38,38,32,68,97,41,32,114,101,116,117,114,110,32,68,97,46,100,101,99,111,100,101,40,99,46,115,117,98,97,114,114,97,121,40,97,44,32,98,41,41,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,100,32,61,32,34,34,59,32,97,32,60,32,98,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,99,91,97,43,43,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,32,38,32,49,50,56,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,99,91,97,43,43,93,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,49,57,50,32,61,61,32,40,101,32,38,32,50,50,52,41,41,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,40,101,32,38,32,51,49,41,32,60,60,32,54,32,124,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,99,91,97,43,43,93,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,50,50,52,32,61,61,32,40,101,32,38,32,50,52,48,41,32,63,32,40,101,32,38,32,49,53,41,32,60,60,32,49,50,32,124,32,102,32,60,60,32,54,32,124,32,107,32,58,32,40,101,32,38,32,55,41,32,60,60,32,49,56,32,124,32,102,32,60,60,32,49,50,32,124,32,107,32,60,60,32,54,32,124,32,99,91,97,43,43,93,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,54,53,53,51,54,32,62,32,101,32,63,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,32,58,32,40,101,32,45,61,32,54,53,53,51,54,44,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,53,53,50,57,54,32,124,32,101,32,62,62,32,49,48,44,32,53,54,51,50,48,32,124,32,101,32,38,32,49,48,50,51,41,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,99,108,97,115,115,32,70,97,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,67,97,32,61,32,97,32,45,32,50,52,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,71,97,32,61,32,48,44,32,72,97,32,61,32,48,44,32,72,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,120,59,10,32,32,32,32,32,32,32,32,105,102,32,40,48,32,60,32,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,98,32,43,32,99,32,45,32,49,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,101,32,61,32,48,59,32,101,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,53,53,50,57,54,32,60,61,32,102,32,38,38,32,53,55,51,52,51,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,43,43,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,32,61,32,54,53,53,51,54,32,43,32,40,40,102,32,38,32,49,48,50,51,41,32,60,60,32,49,48,41,32,124,32,107,32,38,32,49,48,50,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,49,50,55,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,102,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,48,52,55,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,49,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,57,50,32,124,32,102,32,62,62,32,54,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,54,53,53,51,53,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,50,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,50,50,52,32,124,32,102,32,62,62,32,49,50,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,51,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,50,52,48,32,124,32,102,32,62,62,32,49,56,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,50,56,32,124,32,102,32,62,62,32,49,50,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,50,56,32,124,32,102,32,62,62,32,54,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,50,56,32,124,32,102,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,100,91,98,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,73,97,32,61,32,123,125,44,32,74,97,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,97,46,108,101,110,103,116,104,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,97,46,112,111,112,40,41,59,10,32,32,32,32,32,32,32,32,32,32,97,46,112,111,112,40,41,40,98,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,73,40,97,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,68,91,97,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,74,32,61,32,123,125,44,32,75,32,61,32,123,125,44,32,75,97,32,61,32,123,125,44,32,76,44,32,78,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,40,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,103,32,61,32,99,40,103,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,46,108,101,110,103,116,104,32,33,61,61,32,97,46,108,101,110,103,116,104,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,77,105,115,109,97,116,99,104,101,100,32,116,121,112,101,32,99,111,110,118,101,114,116,101,114,32,99,111,117,110,116,34,41,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,108,32,61,32,48,59,32,108,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,108,41,32,77,40,97,91,108,93,44,32,103,91,108,93,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,97,46,102,111,114,69,97,99,104,40,40,103,41,32,61,62,32,75,97,91,103,93,32,61,32,98,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,65,114,114,97,121,40,98,46,108,101,110,103,116,104,41,44,32,102,32,61,32,91,93,44,32,107,32,61,32,48,59,10,32,32,32,32,32,32,32,32,98,46,102,111,114,69,97,99,104,40,40,103,44,32,108,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,75,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,103,41,32,63,32,101,91,108,93,32,61,32,75,91,103,93,32,58,32,40,102,46,112,117,115,104,40,103,41,44,32,74,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,103,41,32,124,124,32,40,74,91,103,93,32,61,32,91,93,41,44,32,74,91,103,93,46,112,117,115,104,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,101,91,108,93,32,61,32,75,91,103,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,43,43,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,61,61,32,102,46,108,101,110,103,116,104,32,38,38,32,100,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,41,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,48,32,61,61,61,32,102,46,108,101,110,103,116,104,32,38,38,32,100,40,101,41,59,10,32,32,32,32,32,32,125,44,32,76,97,44,32,79,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,98,32,61,32,34,34,59,32,120,91,97,93,59,32,41,32,98,32,43,61,32,76,97,91,120,91,97,43,43,93,93,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,80,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,77,97,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,99,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,50,32,38,38,32,97,114,103,117,109,101,110,116,115,91,50,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,50,93,32,58,32,123,125,59,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,46,110,97,109,101,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,116,121,112,101,32,34,36,123,100,125,34,32,109,117,115,116,32,104,97,118,101,32,97,32,112,111,115,105,116,105,118,101,32,105,110,116,101,103,101,114,32,116,121,112,101,105,100,32,112,111,105,110,116,101,114,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,75,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,46,104,98,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,116,121,112,101,32,39,36,123,100,125,39,32,116,119,105,99,101,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,75,91,97,93,32,61,32,98,59,10,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,75,97,91,97,93,59,10,32,32,32,32,32,32,32,32,74,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,32,38,38,32,40,98,32,61,32,74,91,97,93,44,32,100,101,108,101,116,101,32,74,91,97,93,44,32,98,46,102,111,114,69,97,99,104,40,40,101,41,32,61,62,32,101,40,41,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,77,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,99,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,50,32,38,38,32,97,114,103,117,109,101,110,116,115,91,50,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,50,93,32,58,32,123,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,77,97,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,79,97,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,97,46,65,97,46,68,97,46,66,97,46,110,97,109,101,32,43,32,34,32,105,110,115,116,97,110,99,101,32,97,108,114,101,97,100,121,32,100,101,108,101,116,101,100,34,41,59,10,32,32,32,32,32,32,125,44,32,80,97,32,61,32,102,97,108,115,101,44,32,81,97,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,125,44,32,82,97,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,98,32,61,61,61,32,99,41,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,99,46,71,97,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,97,32,61,32,82,97,40,97,44,32,98,44,32,99,46,71,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,32,61,61,61,32,97,32,63,32,110,117,108,108,32,58,32,99,46,36,97,40,97,41,59,10,32,32,32,32,32,32,125,44,32,83,97,32,61,32,123,125,44,32,84,97,32,61,32,123,125,44,32,85,97,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,98,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,112,116,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,117,110,100,101,102,105,110,101,100,34,41,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,97,46,71,97,59,32,41,32,98,32,61,32,97,46,81,97,40,98,41,44,32,97,32,61,32,97,46,71,97,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,84,97,91,98,93,59,10,32,32,32,32,32,32,125,44,32,86,97,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,68,97,32,124,124,32,33,98,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,109,97,107,101,67,108,97,115,115,72,97,110,100,108,101,32,114,101,113,117,105,114,101,115,32,112,116,114,32,97,110,100,32,112,116,114,84,121,112,101,34,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,33,98,46,72,97,32,33,61,61,32,33,33,98,46,70,97,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,66,111,116,104,32,115,109,97,114,116,80,116,114,84,121,112,101,32,97,110,100,32,115,109,97,114,116,80,116,114,32,109,117,115,116,32,98,101,32,115,112,101,99,105,102,105,101,100,34,41,59,10,32,32,32,32,32,32,32,32,98,46,99,111,117,110,116,32,61,32,123,32,118,97,108,117,101,58,32,49,32,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,81,40,79,98,106,101,99,116,46,99,114,101,97,116,101,40,97,44,32,123,32,65,97,58,32,123,32,118,97,108,117,101,58,32,98,44,32,119,114,105,116,97,98,108,101,58,32,116,114,117,101,32,125,32,125,41,41,59,10,32,32,32,32,32,32,125,44,32,81,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,34,117,110,100,101,102,105,110,101,100,34,32,61,61,61,32,116,121,112,101,111,102,32,70,105,110,97,108,105,122,97,116,105,111,110,82,101,103,105,115,116,114,121,41,32,114,101,116,117,114,110,32,81,32,61,32,40,98,41,32,61,62,32,98,44,32,97,59,10,32,32,32,32,32,32,32,32,80,97,32,61,32,110,101,119,32,70,105,110,97,108,105,122,97,116,105,111,110,82,101,103,105,115,116,114,121,40,40,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,98,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,45,45,98,46,99,111,117,110,116,46,118,97,108,117,101,59,10,32,32,32,32,32,32,32,32,32,32,48,32,61,61,61,32,98,46,99,111,117,110,116,46,118,97,108,117,101,32,38,38,32,40,98,46,70,97,32,63,32,98,46,72,97,46,75,97,40,98,46,70,97,41,32,58,32,98,46,68,97,46,66,97,46,75,97,40,98,46,67,97,41,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,81,32,61,32,40,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,98,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,99,46,70,97,32,38,38,32,80,97,46,114,101,103,105,115,116,101,114,40,98,44,32,123,32,65,97,58,32,99,32,125,44,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,81,97,32,61,32,40,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,80,97,46,117,110,114,101,103,105,115,116,101,114,40,98,41,59,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,81,40,97,41,59,10,32,32,32,32,32,32,125,44,32,87,97,32,61,32,91,93,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,88,97,40,41,32,123,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,89,97,32,61,32,40,97,44,32,98,41,32,61,62,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,98,44,32,34,110,97,109,101,34,44,32,123,32,118,97,108,117,101,58,32,97,32,125,41,44,32,90,97,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,97,91,98,93,46,69,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,97,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,32,61,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,101,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,41,44,32,95,107,101,121,32,61,32,48,59,32,95,107,101,121,32,60,32,95,108,101,110,59,32,95,107,101,121,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,91,95,107,101,121,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,97,91,98,93,46,69,97,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,101,46,108,101,110,103,116,104,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,70,117,110,99,116,105,111,110,32,39,36,123,99,125,39,32,99,97,108,108,101,100,32,119,105,116,104,32,97,110,32,105,110,118,97,108,105,100,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,40,36,123,101,46,108,101,110,103,116,104,125,41,32,45,32,101,120,112,101,99,116,115,32,111,110,101,32,111,102,32,40,36,123,97,91,98,93,46,69,97,125,41,33,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,91,98,93,46,69,97,91,101,46,108,101,110,103,116,104,93,46,97,112,112,108,121,40,116,104,105,115,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,46,69,97,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,46,69,97,91,100,46,78,97,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,36,97,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,104,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,99,32,124,124,32,118,111,105,100,32,48,32,33,61,61,32,104,91,97,93,46,69,97,32,38,38,32,118,111,105,100,32,48,32,33,61,61,32,104,91,97,93,46,69,97,91,99,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,112,117,98,108,105,99,32,110,97,109,101,32,39,36,123,97,125,39,32,116,119,105,99,101,96,41,59,10,32,32,32,32,32,32,32,32,32,32,90,97,40,104,44,32,97,44,32,97,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,104,91,97,93,46,69,97,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,99,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,109,117,108,116,105,112,108,101,32,111,118,101,114,108,111,97,100,115,32,111,102,32,97,32,102,117,110,99,116,105,111,110,32,119,105,116,104,32,116,104,101,32,115,97,109,101,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,40,36,123,99,125,41,33,96,41,59,10,32,32,32,32,32,32,32,32,32,32,104,91,97,93,46,69,97,91,99,93,32,61,32,98,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,104,91,97,93,32,61,32,98,44,32,104,91,97,93,46,78,97,32,61,32,99,59,10,32,32,32,32,32,32,125,44,32,97,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,97,46,114,101,112,108,97,99,101,40,47,91,94,97,45,122,65,45,90,48,45,57,95,93,47,103,44,32,34,36,34,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,48,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,52,56,32,60,61,32,98,32,38,38,32,53,55,32,62,61,32,98,32,63,32,96,95,36,123,97,125,96,32,58,32,97,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,98,98,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,97,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,99,111,110,115,116,114,117,99,116,111,114,32,61,32,98,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,77,97,32,61,32,99,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,75,97,32,61,32,100,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,71,97,32,61,32,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,98,98,32,61,32,102,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,81,97,32,61,32,107,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,36,97,32,61,32,103,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,106,98,32,61,32,91,93,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,99,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,98,32,33,61,61,32,99,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,81,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,69,120,112,101,99,116,101,100,32,110,117,108,108,32,111,114,32,105,110,115,116,97,110,99,101,32,111,102,32,36,123,99,46,110,97,109,101,125,44,32,103,111,116,32,97,110,32,105,110,115,116,97,110,99,101,32,111,102,32,36,123,98,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,98,46,81,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,98,46,71,97,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,98,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,84,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,110,117,108,108,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,34,36,123,101,98,40,98,41,125,34,32,97,115,32,97,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,100,101,108,101,116,101,100,32,111,98,106,101,99,116,32,97,115,32,97,32,112,111,105,110,116,101,114,32,111,102,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,98,40,98,46,65,97,46,67,97,44,32,98,46,65,97,46,68,97,46,66,97,44,32,116,104,105,115,46,66,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,102,98,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,84,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,110,117,108,108,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,83,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,116,104,105,115,46,85,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,97,32,38,38,32,97,46,112,117,115,104,40,116,104,105,115,46,75,97,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,32,124,124,32,33,98,46,65,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,34,36,123,101,98,40,98,41,125,34,32,97,115,32,97,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,100,101,108,101,116,101,100,32,111,98,106,101,99,116,32,97,115,32,97,32,112,111,105,110,116,101,114,32,111,102,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,82,97,32,38,38,32,98,46,65,97,46,68,97,46,82,97,41,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,96,67,97,110,110,111,116,32,99,111,110,118,101,114,116,32,97,114,103,117,109,101,110,116,32,111,102,32,116,121,112,101,32,36,123,98,46,65,97,46,72,97,32,63,32,98,46,65,97,46,72,97,46,110,97,109,101,32,58,32,98,46,65,97,46,68,97,46,110,97,109,101,125,32,116,111,32,112,97,114,97,109,101,116,101,114,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,99,32,61,32,99,98,40,98,46,65,97,46,67,97,44,32,98,46,65,97,46,68,97,46,66,97,44,32,116,104,105,115,46,66,97,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,83,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,98,46,65,97,46,70,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,80,97,115,115,105,110,103,32,114,97,119,32,112,111,105,110,116,101,114,32,116,111,32,115,109,97,114,116,32,112,111,105,110,116,101,114,32,105,115,32,105,108,108,101,103,97,108,34,41,59,10,32,32,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,116,104,105,115,46,111,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,46,65,97,46,72,97,32,61,61,61,32,116,104,105,115,41,32,99,32,61,32,98,46,65,97,46,70,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,67,97,110,110,111,116,32,99,111,110,118,101,114,116,32,97,114,103,117,109,101,110,116,32,111,102,32,116,121,112,101,32,36,123,98,46,65,97,46,72,97,32,63,32,98,46,65,97,46,72,97,46,110,97,109,101,32,58,32,98,46,65,97,46,68,97,46,110,97,109,101,125,32,116,111,32,112,97,114,97,109,101,116,101,114,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,32,61,32,98,46,65,97,46,70,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,50,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,46,65,97,46,72,97,32,61,61,61,32,116,104,105,115,41,32,99,32,61,32,98,46,65,97,46,70,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,46,99,108,111,110,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,32,61,32,116,104,105,115,46,107,98,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,98,40,40,41,32,61,62,32,100,91,34,100,101,108,101,116,101,34,93,40,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,97,32,38,38,32,97,46,112,117,115,104,40,116,104,105,115,46,75,97,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,34,85,110,115,117,112,112,111,114,116,105,110,103,32,115,104,97,114,105,110,103,32,112,111,108,105,99,121,34,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,104,98,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,84,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,110,117,108,108,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,34,36,123,101,98,40,98,41,125,34,32,97,115,32,97,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,100,101,108,101,116,101,100,32,111,98,106,101,99,116,32,97,115,32,97,32,112,111,105,110,116,101,114,32,111,102,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,98,46,65,97,46,68,97,46,82,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,99,111,110,118,101,114,116,32,97,114,103,117,109,101,110,116,32,111,102,32,116,121,112,101,32,36,123,98,46,65,97,46,68,97,46,110,97,109,101,125,32,116,111,32,112,97,114,97,109,101,116,101,114,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,98,40,98,46,65,97,46,67,97,44,32,98,46,65,97,46,68,97,46,66,97,44,32,116,104,105,115,46,66,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,105,98,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,44,32,109,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,97,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,66,97,32,61,32,98,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,84,97,32,61,32,99,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,82,97,32,61,32,100,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,83,97,32,61,32,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,105,98,32,61,32,102,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,111,98,32,61,32,107,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,89,97,32,61,32,103,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,85,97,32,61,32,108,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,107,98,32,61,32,110,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,75,97,32,61,32,109,59,10,32,32,32,32,32,32,32,32,101,32,124,124,32,118,111,105,100,32,48,32,33,61,61,32,98,46,71,97,32,63,32,116,104,105,115,46,116,111,87,105,114,101,84,121,112,101,32,61,32,102,98,32,58,32,40,116,104,105,115,46,116,111,87,105,114,101,84,121,112,101,32,61,32,100,32,63,32,100,98,32,58,32,104,98,44,32,116,104,105,115,46,74,97,32,61,32,110,117,108,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,106,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,104,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,82,101,112,108,97,99,105,110,103,32,110,111,110,101,120,105,115,116,101,110,116,32,112,117,98,108,105,99,32,115,121,109,98,111,108,34,41,59,10,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,33,61,61,32,104,91,97,93,46,69,97,32,38,38,32,118,111,105,100,32,48,32,33,61,61,32,99,32,63,32,104,91,97,93,46,69,97,91,99,93,32,61,32,98,32,58,32,40,104,91,97,93,32,61,32,98,44,32,104,91,97,93,46,78,97,32,61,32,99,41,59,10,32,32,32,32,32,32,125,44,32,82,44,32,107,98,32,61,32,102,117,110,99,116,105,111,110,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,99,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,50,32,38,38,32,97,114,103,117,109,101,110,116,115,91,50,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,50,93,32,58,32,91,93,59,10,32,32,32,32,32,32,32,32,97,46,105,110,99,108,117,100,101,115,40,34,106,34,41,32,63,32,40,97,32,61,32,97,46,114,101,112,108,97,99,101,40,47,112,47,103,44,32,34,105,34,41,44,32,98,32,61,32,40,48,44,32,104,91,34,100,121,110,67,97,108,108,95,34,32,43,32,97,93,41,40,98,44,32,46,46,46,99,41,41,32,58,32,98,32,61,32,82,46,103,101,116,40,98,41,40,46,46,46,99,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,108,98,32,61,32,40,97,44,32,98,41,32,61,62,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,50,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,99,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,50,41,44,32,95,107,101,121,50,32,61,32,48,59,32,95,107,101,121,50,32,60,32,95,108,101,110,50,59,32,95,107,101,121,50,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,91,95,107,101,121,50,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,50,93,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,107,98,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,125,44,32,83,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,79,40,97,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,46,105,110,99,108,117,100,101,115,40,34,106,34,41,32,63,32,108,98,40,97,44,32,98,41,32,58,32,82,46,103,101,116,40,98,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,34,102,117,110,99,116,105,111,110,34,32,33,61,32,116,121,112,101,111,102,32,99,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,117,110,107,110,111,119,110,32,102,117,110,99,116,105,111,110,32,112,111,105,110,116,101,114,32,119,105,116,104,32,115,105,103,110,97,116,117,114,101,32,36,123,97,125,58,32,36,123,98,125,96,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,109,98,44,32,111,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,110,98,40,97,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,79,40,97,41,59,10,32,32,32,32,32,32,32,32,84,40,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,112,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,99,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,101,91,102,93,32,124,124,32,75,91,102,93,32,124,124,32,40,75,97,91,102,93,32,63,32,75,97,91,102,93,46,102,111,114,69,97,99,104,40,99,41,32,58,32,40,100,46,112,117,115,104,40,102,41,44,32,101,91,102,93,32,61,32,116,114,117,101,41,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,91,93,44,32,101,32,61,32,123,125,59,10,32,32,32,32,32,32,32,32,98,46,102,111,114,69,97,99,104,40,99,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,109,98,40,96,36,123,97,125,58,32,96,32,43,32,100,46,109,97,112,40,111,98,41,46,106,111,105,110,40,91,34,44,32,34,93,41,41,59,10,32,32,32,32,32,32,125,44,32,113,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,91,93,44,32,100,32,61,32,48,59,32,100,32,60,32,97,59,32,100,43,43,41,32,99,46,112,117,115,104,40,68,91,98,32,43,32,52,32,42,32,100,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,114,98,40,97,41,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,98,32,61,32,49,59,32,98,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,98,41,32,105,102,32,40,110,117,108,108,32,33,61,61,32,97,91,98,93,32,38,38,32,118,111,105,100,32,48,32,61,61,61,32,97,91,98,93,46,74,97,41,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,115,98,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,98,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,105,102,32,40,50,32,62,32,102,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,97,114,103,84,121,112,101,115,32,97,114,114,97,121,32,115,105,122,101,32,109,105,115,109,97,116,99,104,33,32,77,117,115,116,32,97,116,32,108,101,97,115,116,32,103,101,116,32,114,101,116,117,114,110,32,118,97,108,117,101,32,97,110,100,32,39,116,104,105,115,39,32,116,121,112,101,115,33,34,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,110,117,108,108,32,33,61,61,32,98,91,49,93,32,38,38,32,110,117,108,108,32,33,61,61,32,99,44,32,103,32,61,32,114,98,40,98,41,44,32,108,32,61,32,34,118,111,105,100,34,32,33,61,61,32,98,91,48,93,46,110,97,109,101,44,32,110,32,61,32,102,32,45,32,50,44,32,109,32,61,32,65,114,114,97,121,40,110,41,44,32,113,32,61,32,91,93,44,32,114,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,89,97,40,97,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,51,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,65,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,51,41,44,32,95,107,101,121,51,32,61,32,48,59,32,95,107,101,121,51,32,60,32,95,108,101,110,51,59,32,95,107,101,121,51,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,65,91,95,107,101,121,51,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,51,93,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,46,108,101,110,103,116,104,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,113,46,108,101,110,103,116,104,32,61,32,107,32,63,32,50,32,58,32,49,59,10,32,32,32,32,32,32,32,32,32,32,113,91,48,93,32,61,32,101,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,118,32,61,32,98,91,49,93,46,116,111,87,105,114,101,84,121,112,101,40,114,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,113,91,49,93,32,61,32,118,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,119,32,61,32,48,59,32,119,32,60,32,110,59,32,43,43,119,41,32,109,91,119,93,32,61,32,98,91,119,32,43,32,50,93,46,116,111,87,105,114,101,84,121,112,101,40,114,44,32,65,91,119,93,41,44,32,113,46,112,117,115,104,40,109,91,119,93,41,59,10,32,32,32,32,32,32,32,32,32,32,65,32,61,32,100,40,46,46,46,113,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,41,32,74,97,40,114,41,59,10,32,32,32,32,32,32,32,32,32,32,101,108,115,101,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,119,32,61,32,107,32,63,32,49,32,58,32,50,59,32,119,32,60,32,98,46,108,101,110,103,116,104,59,32,119,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,69,32,61,32,49,32,61,61,61,32,119,32,63,32,118,32,58,32,109,91,119,32,45,32,50,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,98,91,119,93,46,74,97,32,38,38,32,98,91,119,93,46,74,97,40,69,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,32,61,32,108,32,63,32,98,91,48,93,46,102,114,111,109,87,105,114,101,84,121,112,101,40,65,41,32,58,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,116,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,97,46,116,114,105,109,40,41,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,32,61,32,97,46,105,110,100,101,120,79,102,40,34,40,34,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,45,49,32,33,61,61,32,98,32,63,32,97,46,115,117,98,115,116,114,40,48,44,32,98,41,32,58,32,97,59,10,32,32,32,32,32,32,125,44,32,118,98,32,61,32,91,93,44,32,85,32,61,32,91,93,44,32,119,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,57,32,60,32,97,32,38,38,32,48,32,61,61,61,32,45,45,85,91,97,32,43,32,49,93,32,38,38,32,40,85,91,97,93,32,61,32,118,111,105,100,32,48,44,32,118,98,46,112,117,115,104,40,97,41,41,59,10,32,32,32,32,32,32,125,44,32,86,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,67,97,110,110,111,116,32,117,115,101,32,100,101,108,101,116,101,100,32,118,97,108,46,32,104,97,110,100,108,101,32,61,32,34,32,43,32,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,85,91,97,93,59,10,32,32,32,32,32,32,125,44,32,103,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,118,111,105,100,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,50,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,110,117,108,108,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,52,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,116,114,117,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,54,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,102,97,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,56,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,32,61,32,118,98,46,112,111,112,40,41,32,124,124,32,85,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,32,32,85,91,98,93,32,61,32,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,85,91,98,32,43,32,49,93,32,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,120,98,32,61,32,123,10,32,32,32,32,32,32,32,32,110,97,109,101,58,32,34,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,34,44,10,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,119,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,97,44,32,98,41,32,61,62,32,103,98,40,98,41,44,10,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,125,44,32,121,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,117,91,100,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,120,91,100,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,50,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,121,91,100,32,62,62,32,49,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,122,91,100,32,62,62,32,49,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,52,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,67,91,100,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,68,91,100,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,105,110,116,101,103,101,114,32,119,105,100,116,104,32,40,36,123,98,125,41,58,32,36,123,97,125,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,122,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,75,91,97,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,99,41,32,116,104,114,111,119,32,97,32,61,32,96,36,123,98,125,32,104,97,115,32,117,110,107,110,111,119,110,32,116,121,112,101,32,36,123,111,98,40,97,41,125,96,44,32,110,101,119,32,80,40,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,101,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,97,41,32,114,101,116,117,114,110,32,34,110,117,108,108,34,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,116,121,112,101,111,102,32,97,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,111,98,106,101,99,116,34,32,61,61,61,32,98,32,124,124,32,34,97,114,114,97,121,34,32,61,61,61,32,98,32,124,124,32,34,102,117,110,99,116,105,111,110,34,32,61,61,61,32,98,32,63,32,97,46,116,111,83,116,114,105,110,103,40,41,32,58,32,34,34,32,43,32,97,59,10,32,32,32,32,32,32,125,44,32,65,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,52,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,116,105,111,110,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,110,97,91,99,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,56,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,116,105,111,110,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,111,97,91,99,32,62,62,32,51,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,102,108,111,97,116,32,119,105,100,116,104,32,40,36,123,98,125,41,58,32,36,123,97,125,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,66,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,40,100,41,32,61,62,32,117,91,100,93,32,58,32,40,100,41,32,61,62,32,120,91,100,93,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,50,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,40,100,41,32,61,62,32,121,91,100,32,62,62,32,49,93,32,58,32,40,100,41,32,61,62,32,122,91,100,32,62,62,32,49,93,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,52,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,40,100,41,32,61,62,32,67,91,100,32,62,62,32,50,93,32,58,32,40,100,41,32,61,62,32,68,91,100,32,62,62,32,50,93,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,105,110,116,101,103,101,114,32,119,105,100,116,104,32,40,36,123,98,125,41,58,32,36,123,97,125,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,67,98,32,61,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,123,32,111,112,116,105,111,110,97,108,58,32,116,114,117,101,32,125,44,32,120,98,41,44,32,68,98,32,61,32,34,117,110,100,101,102,105,110,101,100,34,32,33,61,32,116,121,112,101,111,102,32,84,101,120,116,68,101,99,111,100,101,114,32,63,32,110,101,119,32,84,101,120,116,68,101,99,111,100,101,114,40,34,117,116,102,45,49,54,108,101,34,41,32,58,32,118,111,105,100,32,48,44,32,69,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,32,62,62,32,49,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,100,32,61,32,99,32,43,32,98,32,47,32,50,59,32,33,40,99,32,62,61,32,100,41,32,38,38,32,122,91,99,93,59,32,41,32,43,43,99,59,10,32,32,32,32,32,32,32,32,99,32,60,60,61,32,49,59,10,32,32,32,32,32,32,32,32,105,102,32,40,51,50,32,60,32,99,32,45,32,97,32,38,38,32,68,98,41,32,114,101,116,117,114,110,32,68,98,46,100,101,99,111,100,101,40,120,46,115,117,98,97,114,114,97,121,40,97,44,32,99,41,41,59,10,32,32,32,32,32,32,32,32,99,32,61,32,34,34,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,100,32,61,32,48,59,32,33,40,100,32,62,61,32,98,32,47,32,50,41,59,32,43,43,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,121,91,97,32,43,32,50,32,42,32,100,32,62,62,32,49,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,32,101,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,99,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,70,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,99,59,10,32,32,32,32,32,32,32,32,40,95,99,32,61,32,99,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,99,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,99,32,58,32,99,32,61,32,50,49,52,55,52,56,51,54,52,55,59,10,32,32,32,32,32,32,32,32,105,102,32,40,50,32,62,32,99,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,99,32,45,61,32,50,59,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,59,10,32,32,32,32,32,32,32,32,99,32,61,32,99,32,60,32,50,32,42,32,97,46,108,101,110,103,116,104,32,63,32,99,32,47,32,50,32,58,32,97,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,101,32,61,32,48,59,32,101,32,60,32,99,59,32,43,43,101,41,32,121,91,98,32,62,62,32,49,93,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,101,41,44,32,98,32,43,61,32,50,59,10,32,32,32,32,32,32,32,32,121,91,98,32,62,62,32,49,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,32,45,32,100,59,10,32,32,32,32,32,32,125,44,32,71,98,32,61,32,40,97,41,32,61,62,32,50,32,42,32,97,46,108,101,110,103,116,104,44,32,72,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,48,44,32,100,32,61,32,34,34,59,32,33,40,99,32,62,61,32,98,32,47,32,52,41,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,67,91,97,32,43,32,52,32,42,32,99,32,62,62,32,50,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,32,101,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,43,43,99,59,10,32,32,32,32,32,32,32,32,32,32,54,53,53,51,54,32,60,61,32,101,32,63,32,40,101,32,45,61,32,54,53,53,51,54,44,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,53,53,50,57,54,32,124,32,101,32,62,62,32,49,48,44,32,53,54,51,50,48,32,124,32,101,32,38,32,49,48,50,51,41,41,32,58,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,59,10,32,32,32,32,32,32,125,44,32,73,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,99,50,59,10,32,32,32,32,32,32,32,32,40,95,99,50,32,61,32,99,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,99,50,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,99,50,32,58,32,99,32,61,32,50,49,52,55,52,56,51,54,52,55,59,10,32,32,32,32,32,32,32,32,105,102,32,40,52,32,62,32,99,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,59,10,32,32,32,32,32,32,32,32,99,32,61,32,100,32,43,32,99,32,45,32,52,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,101,32,61,32,48,59,32,101,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,53,53,50,57,54,32,60,61,32,102,32,38,38,32,53,55,51,52,51,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,43,43,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,102,32,61,32,54,53,53,51,54,32,43,32,40,40,102,32,38,32,49,48,50,51,41,32,60,60,32,49,48,41,32,124,32,107,32,38,32,49,48,50,51,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,67,91,98,32,62,62,32,50,93,32,61,32,102,59,10,32,32,32,32,32,32,32,32,32,32,98,32,43,61,32,52,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,52,32,62,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,67,91,98,32,62,62,32,50,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,32,45,32,100,59,10,32,32,32,32,32,32,125,44,32,74,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,98,32,61,32,48,44,32,99,32,61,32,48,59,32,99,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,53,53,50,57,54,32,60,61,32,100,32,38,38,32,53,55,51,52,51,32,62,61,32,100,32,38,38,32,43,43,99,59,10,32,32,32,32,32,32,32,32,32,32,98,32,43,61,32,52,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,75,98,32,61,32,48,44,32,76,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,97,32,61,32,97,46,116,111,87,105,114,101,84,121,112,101,40,100,44,32,99,41,59,10,32,32,32,32,32,32,32,32,100,46,108,101,110,103,116,104,32,38,38,32,40,68,91,98,32,62,62,32,50,93,32,61,32,103,98,40,100,41,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,125,44,32,77,98,32,61,32,91,93,44,32,78,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,77,98,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,77,98,46,112,117,115,104,40,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,79,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,65,114,114,97,121,40,97,41,44,32,100,32,61,32,48,59,32,100,32,60,32,97,59,32,43,43,100,41,32,99,91,100,93,32,61,32,122,98,40,68,91,98,32,43,32,52,32,42,32,100,32,62,62,32,50,93,44,32,34,112,97,114,97,109,101,116,101,114,32,34,32,43,32,100,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,80,98,32,61,32,82,101,102,108,101,99,116,46,99,111,110,115,116,114,117,99,116,44,32,81,98,32,61,32,123,125,44,32,82,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,40,97,32,105,110,115,116,97,110,99,101,111,102,32,65,97,32,124,124,32,34,117,110,119,105,110,100,34,32,61,61,32,97,41,41,32,116,104,114,111,119,32,97,59,10,32,32,32,32,32,32,125,44,32,83,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,111,110,69,120,105,116,59,10,32,32,32,32,32,32,32,32,109,97,32,61,32,97,59,10,32,32,32,32,32,32,32,32,67,97,32,124,124,32,48,32,60,32,75,98,32,124,124,32,40,40,95,104,36,111,110,69,120,105,116,32,61,32,104,46,111,110,69,120,105,116,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,104,36,111,110,69,120,105,116,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,95,104,36,111,110,69,120,105,116,46,99,97,108,108,40,104,44,32,97,41,44,32,108,97,32,61,32,116,114,117,101,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,65,97,40,97,41,59,10,32,32,32,32,32,32,125,44,32,84,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,108,97,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,97,40,41,44,32,33,40,67,97,32,124,124,32,48,32,60,32,75,98,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,97,32,61,32,97,32,61,32,109,97,44,32,83,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,98,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,82,98,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,85,98,32,61,32,123,125,44,32,87,98,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,86,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,85,83,69,82,58,32,34,119,101,98,95,117,115,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,76,79,71,78,65,77,69,58,32,34,119,101,98,95,117,115,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,80,65,84,72,58,32,34,47,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,80,87,68,58,32,34,47,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,72,79,77,69,58,32,34,47,104,111,109,101,47,119,101,98,95,117,115,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,76,65,78,71,58,32,40,34,111,98,106,101,99,116,34,32,61,61,32,116,121,112,101,111,102,32,110,97,118,105,103,97,116,111,114,32,38,38,32,110,97,118,105,103,97,116,111,114,46,108,97,110,103,117,97,103,101,115,32,38,38,32,110,97,118,105,103,97,116,111,114,46,108,97,110,103,117,97,103,101,115,91,48,93,32,124,124,32,34,67,34,41,46,114,101,112,108,97,99,101,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,45,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,95,34,10,32,32,32,32,32,32,32,32,32,32,32,32,41,32,43,32,34,46,85,84,70,45,56,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,95,58,32,104,97,32,124,124,32,34,46,47,116,104,105,115,46,112,114,111,103,114,97,109,34,10,32,32,32,32,32,32,32,32,32,32,125,44,32,98,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,98,32,105,110,32,85,98,41,32,118,111,105,100,32,48,32,61,61,61,32,85,98,91,98,93,32,63,32,100,101,108,101,116,101,32,97,91,98,93,32,58,32,97,91,98,93,32,61,32,85,98,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,98,32,105,110,32,97,41,32,99,46,112,117,115,104,40,96,36,123,98,125,61,36,123,97,91,98,93,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,86,98,32,61,32,99,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,86,98,59,10,32,32,32,32,32,32,125,44,32,86,98,44,32,88,98,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,34,111,98,106,101,99,116,34,32,61,61,32,116,121,112,101,111,102,32,99,114,121,112,116,111,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,99,114,121,112,116,111,46,103,101,116,82,97,110,100,111,109,86,97,108,117,101,115,41,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,97,41,32,61,62,32,99,114,121,112,116,111,46,103,101,116,82,97,110,100,111,109,86,97,108,117,101,115,40,97,41,59,10,32,32,32,32,32,32,32,32,117,97,40,34,105,110,105,116,82,97,110,100,111,109,68,101,118,105,99,101,34,41,59,10,32,32,32,32,32,32,125,44,32,89,98,32,61,32,40,97,41,32,61,62,32,40,89,98,32,61,32,88,98,40,41,41,40,97,41,59,10,32,32,32,32,32,32,76,32,61,32,104,46,73,110,116,101,114,110,97,108,69,114,114,111,114,32,61,32,99,108,97,115,115,32,101,120,116,101,110,100,115,32,69,114,114,111,114,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,34,73,110,116,101,114,110,97,108,69,114,114,111,114,34,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,90,98,32,61,32,65,114,114,97,121,40,50,53,54,41,44,32,36,98,32,61,32,48,59,32,50,53,54,32,62,32,36,98,59,32,43,43,36,98,41,32,90,98,91,36,98,93,32,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,36,98,41,59,10,32,32,32,32,32,32,76,97,32,61,32,90,98,59,10,32,32,32,32,32,32,80,32,61,32,104,46,66,105,110,100,105,110,103,69,114,114,111,114,32,61,32,99,108,97,115,115,32,101,120,116,101,110,100,115,32,69,114,114,111,114,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,34,66,105,110,100,105,110,103,69,114,114,111,114,34,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,88,97,46,112,114,111,116,111,116,121,112,101,44,32,123,10,32,32,32,32,32,32,32,32,105,115,65,108,105,97,115,79,102,58,32,102,117,110,99,116,105,111,110,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,40,116,104,105,115,32,105,110,115,116,97,110,99,101,111,102,32,88,97,32,38,38,32,97,32,105,110,115,116,97,110,99,101,111,102,32,88,97,41,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,116,104,105,115,46,65,97,46,68,97,46,66,97,44,32,99,32,61,32,116,104,105,115,46,65,97,46,67,97,59,10,32,32,32,32,32,32,32,32,32,32,97,46,65,97,32,61,32,97,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,97,46,65,97,46,68,97,46,66,97,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,97,32,61,32,97,46,65,97,46,67,97,59,32,98,46,71,97,59,32,41,32,99,32,61,32,98,46,81,97,40,99,41,44,32,98,32,61,32,98,46,71,97,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,100,46,71,97,59,32,41,32,97,32,61,32,100,46,81,97,40,97,41,44,32,100,32,61,32,100,46,71,97,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,32,61,61,61,32,100,32,38,38,32,99,32,61,61,61,32,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,99,108,111,110,101,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,67,97,32,124,124,32,79,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,65,97,46,80,97,41,32,114,101,116,117,114,110,32,116,104,105,115,46,65,97,46,99,111,117,110,116,46,118,97,108,117,101,32,43,61,32,49,44,32,116,104,105,115,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,81,44,32,98,32,61,32,79,98,106,101,99,116,44,32,99,32,61,32,98,46,99,114,101,97,116,101,44,32,100,32,61,32,79,98,106,101,99,116,46,103,101,116,80,114,111,116,111,116,121,112,101,79,102,40,116,104,105,115,41,44,32,101,32,61,32,116,104,105,115,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,97,40,10,32,32,32,32,32,32,32,32,32,32,32,32,99,46,99,97,108,108,40,98,44,32,100,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,65,97,58,32,123,32,118,97,108,117,101,58,32,123,32,99,111,117,110,116,58,32,101,46,99,111,117,110,116,44,32,79,97,58,32,101,46,79,97,44,32,80,97,58,32,101,46,80,97,44,32,67,97,58,32,101,46,67,97,44,32,68,97,58,32,101,46,68,97,44,32,70,97,58,32,101,46,70,97,44,32,72,97,58,32,101,46,72,97,32,125,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,97,46,65,97,46,99,111,117,110,116,46,118,97,108,117,101,32,43,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,97,46,65,97,46,79,97,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,91,34,100,101,108,101,116,101,34,93,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,67,97,32,124,124,32,79,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,65,97,46,79,97,32,38,38,32,33,116,104,105,115,46,65,97,46,80,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,79,98,106,101,99,116,32,97,108,114,101,97,100,121,32,115,99,104,101,100,117,108,101,100,32,102,111,114,32,100,101,108,101,116,105,111,110,34,41,59,10,32,32,32,32,32,32,32,32,32,32,81,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,116,104,105,115,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,45,45,97,46,99,111,117,110,116,46,118,97,108,117,101,59,10,32,32,32,32,32,32,32,32,32,32,48,32,61,61,61,32,97,46,99,111,117,110,116,46,118,97,108,117,101,32,38,38,32,40,97,46,70,97,32,63,32,97,46,72,97,46,75,97,40,97,46,70,97,41,32,58,32,97,46,68,97,46,66,97,46,75,97,40,97,46,67,97,41,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,80,97,32,124,124,32,40,116,104,105,115,46,65,97,46,70,97,32,61,32,118,111,105,100,32,48,44,32,116,104,105,115,46,65,97,46,67,97,32,61,32,118,111,105,100,32,48,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,105,115,68,101,108,101,116,101,100,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,33,116,104,105,115,46,65,97,46,67,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,100,101,108,101,116,101,76,97,116,101,114,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,67,97,32,124,124,32,79,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,65,97,46,79,97,32,38,38,32,33,116,104,105,115,46,65,97,46,80,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,79,98,106,101,99,116,32,97,108,114,101,97,100,121,32,115,99,104,101,100,117,108,101,100,32,102,111,114,32,100,101,108,101,116,105,111,110,34,41,59,10,32,32,32,32,32,32,32,32,32,32,87,97,46,112,117,115,104,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,79,97,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,105,98,46,112,114,111,116,111,116,121,112,101,44,32,123,10,32,32,32,32,32,32,32,32,99,98,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,89,97,32,38,38,32,40,97,32,61,32,116,104,105,115,46,89,97,40,97,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,87,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,116,104,105,115,36,75,97,59,10,32,32,32,32,32,32,32,32,32,32,40,95,116,104,105,115,36,75,97,32,61,32,116,104,105,115,46,75,97,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,116,104,105,115,36,75,97,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,116,104,105,115,36,75,97,46,99,97,108,108,40,116,104,105,115,44,32,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,98,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,83,97,32,63,32,86,97,40,116,104,105,115,46,66,97,46,77,97,44,32,123,32,68,97,58,32,116,104,105,115,46,105,98,44,32,67,97,58,32,99,44,32,72,97,58,32,116,104,105,115,44,32,70,97,58,32,97,32,125,41,32,58,32,86,97,40,116,104,105,115,46,66,97,46,77,97,44,32,123,32,68,97,58,32,116,104,105,115,44,32,67,97,58,32,97,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,116,104,105,115,46,99,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,99,41,32,114,101,116,117,114,110,32,116,104,105,115,46,87,97,40,97,41,44,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,85,97,40,116,104,105,115,46,66,97,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,33,61,61,32,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,61,32,100,46,65,97,46,99,111,117,110,116,46,118,97,108,117,101,41,32,114,101,116,117,114,110,32,100,46,65,97,46,67,97,32,61,32,99,44,32,100,46,65,97,46,70,97,32,61,32,97,44,32,100,46,99,108,111,110,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,100,32,61,32,100,46,99,108,111,110,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,87,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,116,104,105,115,46,66,97,46,98,98,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,83,97,91,100,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,100,41,32,114,101,116,117,114,110,32,98,46,99,97,108,108,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,116,104,105,115,46,82,97,32,63,32,100,46,90,97,32,58,32,100,46,112,111,105,110,116,101,114,84,121,112,101,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,82,97,40,99,44,32,116,104,105,115,46,66,97,44,32,100,46,66,97,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,32,61,61,61,32,101,32,63,32,98,46,99,97,108,108,40,116,104,105,115,41,32,58,32,116,104,105,115,46,83,97,32,63,32,86,97,40,100,46,66,97,46,77,97,44,32,123,32,68,97,58,32,100,44,32,67,97,58,32,101,44,32,72,97,58,32,116,104,105,115,44,32,70,97,58,32,97,32,125,41,32,58,32,86,97,40,100,46,66,97,46,77,97,44,32,123,32,68,97,58,32,100,44,32,67,97,58,32,101,32,125,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,109,98,32,61,32,104,46,85,110,98,111,117,110,100,84,121,112,101,69,114,114,111,114,32,61,32,40,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,89,97,40,98,44,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,98,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,100,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,69,114,114,111,114,40,100,41,46,115,116,97,99,107,59,10,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,33,61,61,32,100,32,38,38,32,40,116,104,105,115,46,115,116,97,99,107,32,61,32,116,104,105,115,46,116,111,83,116,114,105,110,103,40,41,32,43,32,34,92,110,34,32,43,32,100,46,114,101,112,108,97,99,101,40,47,94,69,114,114,111,114,40,58,91,94,92,110,93,42,41,63,92,110,47,44,32,34,34,41,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,46,112,114,111,116,111,116,121,112,101,32,61,32,79,98,106,101,99,116,46,99,114,101,97,116,101,40,97,46,112,114,111,116,111,116,121,112,101,41,59,10,32,32,32,32,32,32,32,32,99,46,112,114,111,116,111,116,121,112,101,46,99,111,110,115,116,114,117,99,116,111,114,32,61,32,99,59,10,32,32,32,32,32,32,32,32,99,46,112,114,111,116,111,116,121,112,101,46,116,111,83,116,114,105,110,103,32,61,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,32,61,61,61,32,116,104,105,115,46,109,101,115,115,97,103,101,32,63,32,116,104,105,115,46,110,97,109,101,32,58,32,96,36,123,116,104,105,115,46,110,97,109,101,125,58,32,36,123,116,104,105,115,46,109,101,115,115,97,103,101,125,96,59,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,41,40,69,114,114,111,114,44,32,34,85,110,98,111,117,110,100,84,121,112,101,69,114,114,111,114,34,41,59,10,32,32,32,32,32,32,85,46,112,117,115,104,40,48,44,32,49,44,32,118,111,105,100,32,48,44,32,49,44,32,110,117,108,108,44,32,49,44,32,116,114,117,101,44,32,49,44,32,102,97,108,115,101,44,32,49,41,59,10,32,32,32,32,32,32,104,46,99,111,117,110,116,95,101,109,118,97,108,95,104,97,110,100,108,101,115,32,61,32,40,41,32,61,62,32,85,46,108,101,110,103,116,104,32,47,32,50,32,45,32,53,32,45,32,118,98,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,118,97,114,32,108,99,32,61,32,123,10,32,32,32,32,32,32,32,32,99,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,117,97,40,10,32,32,32,32,32,32,32,32,32,32,96,65,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,36,123,97,32,63,32,69,97,40,97,41,32,58,32,34,34,125,44,32,97,116,58,32,96,32,43,32,91,98,32,63,32,98,32,63,32,69,97,40,98,41,32,58,32,34,34,32,58,32,34,117,110,107,110,111,119,110,32,102,105,108,101,110,97,109,101,34,44,32,99,44,32,100,32,63,32,100,32,63,32,69,97,40,100,41,32,58,32,34,34,32,58,32,34,117,110,107,110,111,119,110,32,102,117,110,99,116,105,111,110,34,93,10,32,32,32,32,32,32,32,32,41,44,10,32,32,32,32,32,32,32,32,106,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,110,101,119,32,70,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,100,46,67,97,32,43,32,49,54,32,62,62,32,50,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,68,91,100,46,67,97,32,43,32,52,32,62,62,32,50,93,32,61,32,98,59,10,32,32,32,32,32,32,32,32,32,32,68,91,100,46,67,97,32,43,32,56,32,62,62,32,50,93,32,61,32,99,59,10,32,32,32,32,32,32,32,32,32,32,71,97,32,61,32,97,59,10,32,32,32,32,32,32,32,32,32,32,72,97,43,43,59,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,71,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,80,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,77,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,78,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,82,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,79,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,84,58,32,40,41,32,61,62,32,117,97,40,34,34,41,44,10,32,32,32,32,32,32,32,32,119,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,73,97,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,73,97,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,98,46,85,97,44,32,100,32,61,32,98,46,75,97,44,32,101,32,61,32,98,46,88,97,44,32,102,32,61,32,101,46,109,97,112,40,40,107,41,32,61,62,32,107,46,103,98,41,46,99,111,110,99,97,116,40,101,46,109,97,112,40,40,107,41,32,61,62,32,107,46,109,98,41,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,97,93,44,32,102,44,32,40,107,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,103,32,61,32,123,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,46,102,111,114,69,97,99,104,40,40,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,109,32,61,32,107,91,110,93,44,32,113,32,61,32,108,46,101,98,44,32,114,32,61,32,108,46,102,98,44,32,65,32,61,32,107,91,110,32,43,32,101,46,108,101,110,103,116,104,93,44,32,118,32,61,32,108,46,108,98,44,32,119,32,61,32,108,46,110,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,91,108,46,97,98,93,32,61,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,58,32,40,69,41,32,61,62,32,109,46,102,114,111,109,87,105,114,101,84,121,112,101,40,113,40,114,44,32,69,41,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,119,114,105,116,101,58,32,40,69,44,32,100,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,66,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,40,119,44,32,69,44,32,65,46,116,111,87,105,114,101,84,121,112,101,40,66,44,32,100,97,41,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,74,97,40,66,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,46,110,97,109,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,108,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,110,32,61,32,123,125,44,32,109,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,109,32,105,110,32,103,41,32,110,91,109,93,32,61,32,103,91,109,93,46,114,101,97,100,40,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,40,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,109,32,105,110,32,103,41,32,105,102,32,40,33,40,109,32,105,110,32,110,41,41,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,77,105,115,115,105,110,103,32,102,105,101,108,100,58,32,34,36,123,109,125,34,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,113,32,61,32,99,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,109,32,105,110,32,103,41,32,103,91,109,93,46,119,114,105,116,101,40,113,44,32,110,91,109,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,108,32,38,38,32,108,46,112,117,115,104,40,100,44,32,113,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,113,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,100,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,70,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,95,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,33,33,101,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,101,44,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,32,63,32,99,32,58,32,100,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,102,117,110,99,116,105,111,110,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,120,91,101,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,107,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,44,32,109,44,32,113,44,32,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,109,32,61,32,79,40,109,41,59,10,32,32,32,32,32,32,32,32,32,32,102,32,61,32,83,40,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,103,32,38,38,32,40,103,32,61,32,83,40,107,44,32,103,41,41,59,10,32,32,32,32,32,32,32,32,32,32,110,32,38,38,32,40,110,32,61,32,83,40,108,44,32,110,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,32,61,32,83,40,113,44,32,114,41,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,65,32,61,32,97,98,40,109,41,59,10,32,32,32,32,32,32,32,32,32,32,36,97,40,65,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,111,110,115,116,114,117,99,116,32,36,123,109,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,91,100,93,41,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,97,44,32,98,44,32,99,93,44,32,100,32,63,32,91,100,93,32,58,32,91,93,44,32,40,118,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,32,61,32,118,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,119,32,61,32,118,46,66,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,69,32,61,32,119,46,77,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,69,32,61,32,88,97,46,112,114,111,116,111,116,121,112,101,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,32,61,32,89,97,40,109,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,79,98,106,101,99,116,46,103,101,116,80,114,111,116,111,116,121,112,101,79,102,40,116,104,105,115,41,32,33,61,61,32,100,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,85,115,101,32,39,110,101,119,39,32,116,111,32,99,111,110,115,116,114,117,99,116,32,34,32,43,32,109,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,66,46,76,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,109,32,43,32,34,32,104,97,115,32,110,111,32,97,99,99,101,115,115,105,98,108,101,32,99,111,110,115,116,114,117,99,116,111,114,34,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,52,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,78,97,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,52,41,44,32,95,107,101,121,52,32,61,32,48,59,32,95,107,101,121,52,32,60,32,95,108,101,110,52,59,32,95,107,101,121,52,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,78,97,91,95,107,101,121,52,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,52,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,117,98,32,61,32,66,46,76,97,91,78,97,46,108,101,110,103,116,104,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,117,98,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,84,114,105,101,100,32,116,111,32,105,110,118,111,107,101,32,99,116,111,114,32,111,102,32,36,123,109,125,32,119,105,116,104,32,105,110,118,97,108,105,100,32,110,117,109,98,101,114,32,111,102,32,112,97,114,97,109,101,116,101,114,115,32,40,36,123,78,97,46,108,101,110,103,116,104,125,41,32,45,32,101,120,112,101,99,116,101,100,32,40,36,123,79,98,106,101,99,116,46,107,101,121,115,40,66,46,76,97,41,46,116,111,83,116,114,105,110,103,40,41,125,41,32,112,97,114,97,109,101,116,101,114,115,32,105,110,115,116,101,97,100,33,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,117,98,46,97,112,112,108,121,40,116,104,105,115,44,32,78,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,97,32,61,32,79,98,106,101,99,116,46,99,114,101,97,116,101,40,69,44,32,123,32,99,111,110,115,116,114,117,99,116,111,114,58,32,123,32,118,97,108,117,101,58,32,118,32,125,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,46,112,114,111,116,111,116,121,112,101,32,61,32,100,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,66,32,61,32,110,101,119,32,98,98,40,109,44,32,118,44,32,100,97,44,32,114,44,32,119,44,32,102,44,32,103,44,32,110,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,66,46,71,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,101,97,36,86,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,95,101,97,36,86,97,32,61,32,40,101,97,32,61,32,66,46,71,97,41,46,86,97,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,101,97,36,86,97,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,101,97,36,86,97,32,58,32,101,97,46,86,97,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,66,46,71,97,46,86,97,46,112,117,115,104,40,66,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,119,32,61,32,110,101,119,32,105,98,40,109,44,32,66,44,32,116,114,117,101,44,32,102,97,108,115,101,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,97,32,61,32,110,101,119,32,105,98,40,109,32,43,32,34,42,34,44,32,66,44,32,102,97,108,115,101,44,32,102,97,108,115,101,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,69,32,61,32,110,101,119,32,105,98,40,109,32,43,32,34,32,99,111,110,115,116,42,34,44,32,66,44,32,102,97,108,115,101,44,32,116,114,117,101,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,83,97,91,97,93,32,61,32,123,32,112,111,105,110,116,101,114,84,121,112,101,58,32,101,97,44,32,90,97,58,32,69,32,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,106,98,40,65,44,32,118,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,119,44,32,101,97,44,32,69,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,114,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,113,98,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,83,40,100,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,91,97,93,44,32,40,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,103,32,61,32,103,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,96,99,111,110,115,116,114,117,99,116,111,114,32,36,123,103,46,110,97,109,101,125,96,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,61,61,61,32,103,46,66,97,46,76,97,32,38,38,32,40,103,46,66,97,46,76,97,32,61,32,91,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,33,61,61,32,103,46,66,97,46,76,97,91,98,32,45,32,49,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,109,117,108,116,105,112,108,101,32,99,111,110,115,116,114,117,99,116,111,114,115,32,119,105,116,104,32,105,100,101,110,116,105,99,97,108,32,110,117,109,98,101,114,32,111,102,32,112,97,114,97,109,101,116,101,114,115,32,40,36,123,98,32,45,32,49,125,41,32,102,111,114,32,99,108,97,115,115,32,39,36,123,103,46,110,97,109,101,125,39,33,32,79,118,101,114,108,111,97,100,32,114,101,115,111,108,117,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,111,110,108,121,32,112,101,114,102,111,114,109,101,100,32,117,115,105,110,103,32,116,104,101,32,112,97,114,97,109,101,116,101,114,32,99,111,117,110,116,44,32,110,111,116,32,97,99,116,117,97,108,32,116,121,112,101,32,105,110,102,111,33,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,103,46,66,97,46,76,97,91,98,32,45,32,49,93,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,111,110,115,116,114,117,99,116,32,36,123,103,46,110,97,109,101,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,107,44,32,40,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,46,115,112,108,105,99,101,40,49,44,32,48,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,46,66,97,46,76,97,91,98,32,45,32,49,93,32,61,32,115,98,40,108,44,32,110,44,32,110,117,108,108,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,100,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,113,98,40,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,116,98,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,102,32,61,32,83,40,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,91,97,93,44,32,40,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,109,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,97,108,108,32,36,123,113,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,110,32,61,32,110,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,113,32,61,32,96,36,123,110,46,110,97,109,101,125,46,36,123,98,125,96,59,10,32,32,32,32,32,32,32,32,32,32,32,32,98,46,115,116,97,114,116,115,87,105,116,104,40,34,64,64,34,41,32,38,38,32,40,98,32,61,32,83,121,109,98,111,108,91,98,46,115,117,98,115,116,114,105,110,103,40,50,41,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,103,32,38,38,32,110,46,66,97,46,106,98,46,112,117,115,104,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,114,32,61,32,110,46,66,97,46,77,97,44,32,65,32,61,32,114,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,61,61,61,32,65,32,124,124,32,118,111,105,100,32,48,32,61,61,61,32,65,46,69,97,32,38,38,32,65,46,99,108,97,115,115,78,97,109,101,32,33,61,61,32,110,46,110,97,109,101,32,38,38,32,65,46,78,97,32,61,61,61,32,99,32,45,32,50,32,63,32,40,109,46,78,97,32,61,32,99,32,45,32,50,44,32,109,46,99,108,97,115,115,78,97,109,101,32,61,32,110,46,110,97,109,101,44,32,114,91,98,93,32,61,32,109,41,32,58,32,40,90,97,40,114,44,32,98,44,32,113,41,44,32,114,91,98,93,46,69,97,91,99,32,45,32,50,93,32,61,32,109,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,108,44,32,40,118,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,32,61,32,115,98,40,113,44,32,118,44,32,110,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,61,61,61,32,114,91,98,93,46,69,97,32,63,32,40,118,46,78,97,32,61,32,99,32,45,32,50,44,32,114,91,98,93,32,61,32,118,41,32,58,32,114,91,98,93,46,69,97,91,99,32,45,32,50,93,32,61,32,118,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,89,58,32,40,97,41,32,61,62,32,77,40,97,44,32,120,98,41,44,10,32,32,32,32,32,32,32,32,68,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,101,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,101,46,118,97,108,117,101,115,32,61,32,123,125,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,58,32,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,99,111,110,115,116,114,117,99,116,111,114,46,118,97,108,117,101,115,91,102,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,102,44,32,107,41,32,61,62,32,107,46,118,97,108,117,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,121,98,40,98,44,32,99,44,32,100,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,36,97,40,98,44,32,101,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,109,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,122,98,40,97,44,32,34,101,110,117,109,34,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,100,46,99,111,110,115,116,114,117,99,116,111,114,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,79,98,106,101,99,116,46,99,114,101,97,116,101,40,100,46,99,111,110,115,116,114,117,99,116,111,114,46,112,114,111,116,111,116,121,112,101,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,108,117,101,58,32,123,32,118,97,108,117,101,58,32,99,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,58,32,123,32,118,97,108,117,101,58,32,89,97,40,96,36,123,100,46,110,97,109,101,125,95,36,123,98,125,96,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,97,46,118,97,108,117,101,115,91,99,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,65,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,100,41,32,61,62,32,100,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,100,44,32,101,41,32,61,62,32,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,65,98,40,98,44,32,99,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,117,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,113,98,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,79,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,116,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,83,40,100,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,36,97,40,10,32,32,32,32,32,32,32,32,32,32,32,32,97,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,97,108,108,32,36,123,97,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,98,32,45,32,49,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,107,44,32,40,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,106,98,40,97,44,32,115,98,40,97,44,32,91,103,91,48,93,44,32,110,117,108,108,93,46,99,111,110,99,97,116,40,103,46,115,108,105,99,101,40,49,41,41,44,32,110,117,108,108,44,32,101,44,32,102,41,44,32,98,32,45,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,110,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,45,49,32,61,61,61,32,101,32,38,38,32,40,101,32,61,32,52,50,57,52,57,54,55,50,57,53,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,40,103,41,32,61,62,32,103,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,61,32,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,51,50,32,45,32,56,32,42,32,99,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,40,103,41,32,61,62,32,103,32,60,60,32,102,32,62,62,62,32,102,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,98,46,105,110,99,108,117,100,101,115,40,34,117,110,115,105,103,110,101,100,34,41,32,63,32,102,117,110,99,116,105,111,110,40,103,44,32,108,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,32,62,62,62,32,48,59,10,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,103,44,32,108,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,59,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,32,110,97,109,101,58,32,98,44,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,101,44,32,116,111,87,105,114,101,84,121,112,101,58,32,107,44,32,73,97,58,32,56,44,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,66,98,40,98,44,32,99,44,32,48,32,33,61,61,32,100,41,44,32,74,97,58,32,110,117,108,108,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,103,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,101,40,117,46,98,117,102,102,101,114,44,32,68,91,102,32,43,32,52,32,62,62,32,50,93,44,32,68,91,102,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,91,73,110,116,56,65,114,114,97,121,44,32,85,105,110,116,56,65,114,114,97,121,44,32,73,110,116,49,54,65,114,114,97,121,44,32,85,105,110,116,49,54,65,114,114,97,121,44,32,73,110,116,51,50,65,114,114,97,121,44,32,85,105,110,116,51,50,65,114,114,97,121,44,32,70,108,111,97,116,51,50,65,114,114,97,121,44,32,70,108,111,97,116,54,52,65,114,114,97,121,93,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,79,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,32,110,97,109,101,58,32,99,44,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,100,44,32,73,97,58,32,56,44,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,100,32,125,44,32,123,32,104,98,58,32,116,114,117,101,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,111,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,67,98,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,118,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,44,32,109,44,32,113,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,79,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,102,32,61,32,83,40,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,103,32,61,32,83,40,107,44,32,103,41,59,10,32,32,32,32,32,32,32,32,32,32,110,32,61,32,83,40,108,44,32,110,41,59,10,32,32,32,32,32,32,32,32,32,32,113,32,61,32,83,40,109,44,32,113,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,97,93,44,32,91,98,93,44,32,40,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,32,61,32,114,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,110,101,119,32,105,98,40,99,44,32,114,46,66,97,44,32,102,97,108,115,101,44,32,102,97,108,115,101,44,32,116,114,117,101,44,32,114,44,32,100,44,32,102,44,32,103,44,32,110,44,32,113,41,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,90,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,100,32,61,32,68,91,99,32,62,62,32,50,93,44,32,101,32,61,32,99,32,43,32,52,44,32,102,44,32,107,32,61,32,101,44,32,103,32,61,32,48,59,32,103,32,60,61,32,100,59,32,43,43,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,101,32,43,32,103,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,32,61,61,32,100,32,124,124,32,48,32,61,61,32,120,91,108,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,32,107,32,63,32,69,97,40,107,44,32,108,32,45,32,107,41,32,58,32,34,34,44,32,118,111,105,100,32,48,32,61,61,61,32,102,32,63,32,102,32,61,32,107,32,58,32,40,102,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,48,41,44,32,102,32,43,61,32,107,41,44,32,107,32,61,32,108,32,43,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,99,44,32,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,66,117,102,102,101,114,32,38,38,32,40,100,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,100,41,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,44,32,102,32,61,32,34,115,116,114,105,110,103,34,32,61,61,32,116,121,112,101,111,102,32,100,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,40,102,32,124,124,32,100,32,105,110,115,116,97,110,99,101,111,102,32,85,105,110,116,56,65,114,114,97,121,32,124,124,32,100,32,105,110,115,116,97,110,99,101,111,102,32,85,105,110,116,56,67,108,97,109,112,101,100,65,114,114,97,121,32,124,124,32,100,32,105,110,115,116,97,110,99,101,111,102,32,73,110,116,56,65,114,114,97,121,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,34,67,97,110,110,111,116,32,112,97,115,115,32,110,111,110,45,115,116,114,105,110,103,32,116,111,32,115,116,100,58,58,115,116,114,105,110,103,34,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,107,32,61,32,101,32,61,32,48,59,32,107,32,60,32,100,46,108,101,110,103,116,104,59,32,43,43,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,103,32,61,32,100,46,99,104,97,114,67,111,100,101,65,116,40,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,49,50,55,32,62,61,32,103,32,63,32,101,43,43,32,58,32,50,48,52,55,32,62,61,32,103,32,63,32,101,32,43,61,32,50,32,58,32,53,53,50,57,54,32,60,61,32,103,32,38,38,32,53,55,51,52,51,32,62,61,32,103,32,63,32,40,101,32,43,61,32,52,44,32,43,43,107,41,32,58,32,101,32,43,61,32,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,101,32,61,32,100,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,32,97,99,40,52,32,43,32,101,32,43,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,32,61,32,107,32,43,32,52,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,68,91,107,32,62,62,32,50,93,32,61,32,101,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,41,32,72,40,100,44,32,103,44,32,101,32,43,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,105,102,32,40,102,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,102,32,61,32,48,59,32,102,32,60,32,101,59,32,43,43,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,100,46,99,104,97,114,67,111,100,101,65,116,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,53,53,32,60,32,108,41,32,116,104,114,111,119,32,84,40,103,41,44,32,110,101,119,32,80,40,34,83,116,114,105,110,103,32,104,97,115,32,85,84,70,45,49,54,32,99,111,100,101,32,117,110,105,116,115,32,116,104,97,116,32,100,111,32,110,111,116,32,102,105,116,32,105,110,32,56,32,98,105,116,115,34,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,120,91,103,32,43,32,102,93,32,61,32,108,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,102,111,114,32,40,102,32,61,32,48,59,32,102,32,60,32,101,59,32,43,43,102,41,32,120,91,103,32,43,32,102,93,32,61,32,100,91,102,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,99,32,38,38,32,99,46,112,117,115,104,40,84,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,121,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,79,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,69,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,70,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,71,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,40,103,41,32,61,62,32,122,91,103,32,62,62,32,49,93,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,52,32,61,61,61,32,98,32,38,38,32,40,100,32,61,32,72,98,44,32,101,32,61,32,73,98,44,32,102,32,61,32,74,98,44,32,107,32,61,32,40,103,41,32,61,62,32,68,91,103,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,99,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,108,32,61,32,68,91,103,32,62,62,32,50,93,44,32,110,44,32,109,32,61,32,103,32,43,32,52,44,32,113,32,61,32,48,59,32,113,32,60,61,32,108,59,32,43,43,113,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,114,32,61,32,103,32,43,32,52,32,43,32,113,32,42,32,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,113,32,61,61,32,108,32,124,124,32,48,32,61,61,32,107,40,114,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,32,61,32,100,40,109,44,32,114,32,45,32,109,41,44,32,118,111,105,100,32,48,32,61,61,61,32,110,32,63,32,110,32,61,32,109,32,58,32,40,110,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,48,41,44,32,110,32,43,61,32,109,41,44,32,109,32,61,32,114,32,43,32,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,103,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,103,44,32,108,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,34,115,116,114,105,110,103,34,32,33,61,32,116,121,112,101,111,102,32,108,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,110,111,110,45,115,116,114,105,110,103,32,116,111,32,67,43,43,32,115,116,114,105,110,103,32,116,121,112,101,32,36,123,99,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,110,32,61,32,102,40,108,41,44,32,109,32,61,32,97,99,40,52,32,43,32,110,32,43,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,68,91,109,32,62,62,32,50,93,32,61,32,110,32,47,32,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,40,108,44,32,109,32,43,32,52,44,32,110,32,43,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,103,32,38,38,32,103,46,112,117,115,104,40,84,44,32,109,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,40,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,103,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,120,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,73,97,91,97,93,32,61,32,123,32,110,97,109,101,58,32,79,40,98,41,44,32,85,97,58,32,83,40,99,44,32,100,41,44,32,75,97,58,32,83,40,101,44,32,102,41,44,32,88,97,58,32,91,93,32,125,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,105,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,73,97,91,97,93,46,88,97,46,112,117,115,104,40,123,32,97,98,58,32,79,40,98,41,44,32,103,98,58,32,99,44,32,101,98,58,32,83,40,100,44,32,101,41,44,32,102,98,58,32,102,44,32,109,98,58,32,107,44,32,108,98,58,32,83,40,103,44,32,108,41,44,32,110,98,58,32,110,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,36,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,32,112,98,58,32,116,114,117,101,44,32,110,97,109,101,58,32,98,44,32,73,97,58,32,48,44,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,125,44,32,116,111,87,105,114,101,84,121,112,101,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,125,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,75,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,75,98,32,61,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,73,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,73,110,102,105,110,105,116,121,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,67,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,122,98,40,98,44,32,34,101,109,118,97,108,58,58,97,115,34,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,76,98,40,98,44,32,99,44,32,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,113,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,77,98,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,86,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,40,110,117,108,108,44,32,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,87,58,32,119,98,44,10,32,32,32,32,32,32,32,32,69,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,86,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,32,61,61,32,98,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,112,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,79,98,40,97,44,32,98,41,44,32,101,32,61,32,100,46,115,104,105,102,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,97,45,45,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,96,109,101,116,104,111,100,67,97,108,108,101,114,60,40,36,123,100,46,109,97,112,40,40,107,41,32,61,62,32,107,46,110,97,109,101,41,46,106,111,105,110,40,34,44,32,34,41,125,41,32,61,62,32,36,123,101,46,110,97,109,101,125,62,96,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,98,40,10,32,32,32,32,32,32,32,32,32,32,32,32,89,97,40,98,44,32,40,107,44,32,103,44,32,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,109,32,61,32,48,44,32,113,32,61,32,48,59,32,113,32,60,32,97,59,32,43,43,113,41,32,102,91,113,93,32,61,32,100,91,113,93,46,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,40,110,32,43,32,109,41,44,32,109,32,43,61,32,100,91,113,93,46,73,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,32,49,32,61,61,61,32,99,32,63,32,80,98,40,103,44,32,102,41,32,58,32,103,46,97,112,112,108,121,40,107,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,76,98,40,101,44,32,108,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,122,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,57,32,60,32,97,32,38,38,32,40,85,91,97,32,43,32,49,93,32,43,61,32,49,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,99,97,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,74,97,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,119,98,40,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,115,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,122,98,40,97,44,32,34,95,101,109,118,97,108,95,116,97,107,101,95,118,97,108,117,101,34,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,97,46,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,103,98,40,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,71,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,81,98,91,97,93,32,38,38,32,40,99,108,101,97,114,84,105,109,101,111,117,116,40,81,98,91,97,93,46,105,100,41,44,32,100,101,108,101,116,101,32,81,98,91,97,93,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,98,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,81,98,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,84,98,40,40,41,32,61,62,32,98,99,40,97,44,32,112,101,114,102,111,114,109,97,110,99,101,46,110,111,119,40,41,41,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,81,98,91,97,93,32,61,32,123,32,105,100,58,32,99,44,32,113,98,58,32,98,32,125,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,72,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,40,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,68,97,116,101,40,41,41,46,103,101,116,70,117,108,108,89,101,97,114,40,41,44,32,102,32,61,32,110,101,119,32,68,97,116,101,40,101,44,32,48,44,32,49,41,46,103,101,116,84,105,109,101,122,111,110,101,79,102,102,115,101,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,110,101,119,32,68,97,116,101,40,101,44,32,54,44,32,49,41,46,103,101,116,84,105,109,101,122,111,110,101,79,102,102,115,101,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,97,32,62,62,32,50,93,32,61,32,54,48,32,42,32,77,97,116,104,46,109,97,120,40,102,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,67,91,98,32,62,62,32,50,93,32,61,32,78,117,109,98,101,114,40,102,32,33,61,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,40,107,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,103,32,61,32,77,97,116,104,46,97,98,115,40,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,96,85,84,67,36,123,48,32,60,61,32,107,32,63,32,34,45,34,32,58,32,34,43,34,125,36,123,83,116,114,105,110,103,40,77,97,116,104,46,102,108,111,111,114,40,103,32,47,32,54,48,41,41,46,112,97,100,83,116,97,114,116,40,50,44,32,34,48,34,41,125,36,123,83,116,114,105,110,103,40,103,32,37,32,54,48,41,46,112,97,100,83,116,97,114,116,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,50,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,48,34,10,32,32,32,32,32,32,32,32,32,32,32,32,41,125,96,59,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,98,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,98,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,60,32,102,32,63,32,40,72,40,97,44,32,99,44,32,49,55,41,44,32,72,40,98,44,32,100,44,32,49,55,41,41,32,58,32,40,72,40,97,44,32,100,44,32,49,55,41,44,32,72,40,98,44,32,99,44,32,49,55,41,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,98,97,58,32,40,41,32,61,62,32,112,101,114,102,111,114,109,97,110,99,101,46,110,111,119,40,41,44,10,32,32,32,32,32,32,32,32,74,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,120,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,97,32,62,62,62,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,49,52,55,52,56,51,54,52,56,32,60,32,97,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,49,59,32,52,32,62,61,32,99,59,32,99,32,42,61,32,50,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,32,42,32,40,49,32,43,32,48,46,50,32,47,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,100,32,61,32,77,97,116,104,46,109,105,110,40,100,44,32,97,32,43,32,49,48,48,54,54,51,50,57,54,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,97,58,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,32,61,32,40,77,97,116,104,46,109,105,110,40,50,49,52,55,52,56,51,54,52,56,44,32,54,53,53,51,54,32,42,32,77,97,116,104,46,99,101,105,108,40,77,97,116,104,46,109,97,120,40,97,44,32,100,41,32,47,32,54,53,53,51,54,41,41,32,45,32,107,97,46,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,32,43,32,54,53,53,51,53,41,32,47,32,54,53,53,51,54,32,124,32,48,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,97,46,103,114,111,119,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,32,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,41,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,86,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,87,98,40,41,46,102,111,114,69,97,99,104,40,40,100,44,32,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,98,32,43,32,99,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,68,91,97,32,43,32,52,32,42,32,101,32,62,62,32,50,93,32,61,32,102,59,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,102,32,61,32,48,59,32,102,32,60,32,100,46,108,101,110,103,116,104,59,32,43,43,102,41,32,117,91,101,43,43,93,32,61,32,100,46,99,104,97,114,67,111,100,101,65,116,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,117,91,101,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,32,43,61,32,100,46,108,101,110,103,116,104,32,43,32,49,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,88,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,87,98,40,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,97,32,62,62,32,50,93,32,61,32,99,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,99,46,102,111,114,69,97,99,104,40,40,101,41,32,61,62,32,100,32,43,61,32,101,46,108,101,110,103,116,104,32,43,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,98,32,62,62,32,50,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,83,58,32,40,41,32,61,62,32,53,50,44,10,32,32,32,32,32,32,32,32,81,58,32,40,41,32,61,62,32,53,50,44,10,32,32,32,32,32,32,32,32,108,58,32,99,99,44,10,32,32,32,32,32,32,32,32,102,58,32,100,99,44,10,32,32,32,32,32,32,32,32,101,58,32,101,99,44,10,32,32,32,32,32,32,32,32,66,58,32,102,99,44,10,32,32,32,32,32,32,32,32,97,97,58,32,103,99,44,10,32,32,32,32,32,32,32,32,97,58,32,104,99,44,10,32,32,32,32,32,32,32,32,98,58,32,105,99,44,10,32,32,32,32,32,32,32,32,104,58,32,106,99,44,10,32,32,32,32,32,32,32,32,116,58,32,107,99,44,10,32,32,32,32,32,32,32,32,85,58,32,83,98,44,10,32,32,32,32,32,32,32,32,76,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,89,98,40,120,46,115,117,98,97,114,114,97,121,40,97,44,32,97,32,43,32,98,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,87,59,10,32,32,32,32,32,32,40,97,115,121,110,99,32,102,117,110,99,116,105,111,110,40,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,44,32,95,119,97,41,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,97,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,59,10,32,32,32,32,32,32,32,32,32,32,87,32,61,32,100,46,101,120,112,111,114,116,115,59,10,32,32,32,32,32,32,32,32,32,32,107,97,32,61,32,87,46,100,97,59,10,32,32,32,32,32,32,32,32,32,32,112,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,82,32,61,32,87,46,103,97,59,10,32,32,32,32,32,32,32,32,32,32,114,97,46,117,110,115,104,105,102,116,40,87,46,101,97,41,59,10,32,32,32,32,32,32,32,32,32,32,70,45,45,59,10,32,32,32,32,32,32,32,32,32,32,40,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,32,61,32,104,46,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,99,105,101,115,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,46,99,97,108,108,40,104,44,32,70,41,59,10,32,32,32,32,32,32,32,32,32,32,48,32,61,61,32,70,32,38,38,32,71,32,38,38,32,40,100,32,61,32,71,44,32,71,32,61,32,110,117,108,108,44,32,100,40,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,87,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,70,43,43,59,10,32,32,32,32,32,32,32,32,40,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,32,61,32,104,46,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,99,105,101,115,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,46,99,97,108,108,40,104,44,32,70,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,123,32,97,58,32,108,99,32,125,59,10,32,32,32,32,32,32,32,32,105,102,32,40,104,46,105,110,115,116,97,110,116,105,97,116,101,87,97,115,109,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,104,46,105,110,115,116,97,110,116,105,97,116,101,87,97,115,109,40,98,44,32,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,40,96,77,111,100,117,108,101,46,105,110,115,116,97,110,116,105,97,116,101,87,97,115,109,32,99,97,108,108,98,97,99,107,32,102,97,105,108,101,100,32,119,105,116,104,32,101,114,114,111,114,58,32,36,123,100,125,96,41,44,32,98,97,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,40,95,119,97,32,61,32,119,97,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,119,97,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,119,97,32,58,32,119,97,32,61,32,118,97,40,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,41,32,63,32,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,32,58,32,104,46,108,111,99,97,116,101,70,105,108,101,32,63,32,104,46,108,111,99,97,116,101,70,105,108,101,40,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,44,32,112,41,32,58,32,112,32,43,32,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,119,97,105,116,32,122,97,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,97,40,99,46,105,110,115,116,97,110,99,101,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,98,97,40,100,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,40,41,59,10,32,32,32,32,32,32,118,97,114,32,97,99,32,61,32,40,97,41,32,61,62,32,40,97,99,32,61,32,87,46,102,97,41,40,97,41,44,32,84,32,61,32,40,97,41,32,61,62,32,40,84,32,61,32,87,46,104,97,41,40,97,41,44,32,110,98,32,61,32,40,97,41,32,61,62,32,40,110,98,32,61,32,87,46,105,97,41,40,97,41,44,32,98,99,32,61,32,40,97,44,32,98,41,32,61,62,32,40,98,99,32,61,32,87,46,106,97,41,40,97,44,32,98,41,44,32,88,32,61,32,40,97,44,32,98,41,32,61,62,32,40,88,32,61,32,87,46,107,97,41,40,97,44,32,98,41,44,32,89,32,61,32,40,97,41,32,61,62,32,40,89,32,61,32,87,46,108,97,41,40,97,41,44,32,90,32,61,32,40,41,32,61,62,32,40,90,32,61,32,87,46,109,97,41,40,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,106,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,106,105,105,105,32,61,32,87,46,110,97,41,40,97,44,32,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,106,105,105,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,106,105,105,32,61,32,87,46,111,97,41,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,32,61,32,87,46,112,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,102,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,102,105,105,32,61,32,87,46,113,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,32,61,32,87,46,114,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,32,61,32,87,46,115,97,41,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,105,32,61,32,87,46,116,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,102,102,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,102,102,105,105,32,61,32,87,46,117,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,32,61,32,87,46,118,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,105,105,106,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,105,105,106,105,105,32,61,32,87,46,119,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,32,61,32,87,46,120,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,106,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,106,32,61,32,87,46,121,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,105,106,106,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,105,106,106,32,61,32,87,46,122,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,41,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,99,99,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,100,32,33,61,61,32,100,32,43,32,48,41,32,116,104,114,111,119,32,100,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,102,99,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,107,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,32,33,61,61,32,103,32,43,32,48,41,32,116,104,114,111,119,32,103,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,104,99,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,100,32,33,61,61,32,100,32,43,32,48,41,32,116,104,114,111,119,32,100,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,106,99,40,97,44,32,98,44,32,99,44,32,100,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,32,33,61,61,32,102,32,43,32,48,41,32,116,104,114,111,119,32,102,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,99,40,97,44,32,98,44,32,99,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,32,33,61,61,32,101,32,43,32,48,41,32,116,104,114,111,119,32,101,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,105,99,40,97,44,32,98,44,32,99,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,32,33,61,61,32,101,32,43,32,48,41,32,116,104,114,111,119,32,101,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,103,99,40,97,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,32,33,61,61,32,99,32,43,32,48,41,32,116,104,114,111,119,32,99,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,101,99,40,97,44,32,98,44,32,99,44,32,100,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,32,33,61,61,32,102,32,43,32,48,41,32,116,104,114,111,119,32,102,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,107,99,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,44,32,101,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,107,32,33,61,61,32,107,32,43,32,48,41,32,116,104,114,111,119,32,107,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,109,99,59,10,32,32,32,32,32,32,71,32,61,32,102,117,110,99,116,105,111,110,32,110,99,40,41,32,123,10,32,32,32,32,32,32,32,32,109,99,32,124,124,32,111,99,40,41,59,10,32,32,32,32,32,32,32,32,109,99,32,124,124,32,40,71,32,61,32,110,99,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,111,99,40,41,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,97,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,109,99,32,38,38,32,40,109,99,32,61,32,116,114,117,101,44,32,104,46,99,97,108,108,101,100,82,117,110,32,61,32,116,114,117,101,44,32,33,108,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,59,10,32,32,32,32,32,32,32,32,32,32,32,32,66,97,40,114,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,97,97,40,104,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,40,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,32,61,32,104,46,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,101,100,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,46,99,97,108,108,40,104,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,104,46,112,111,115,116,82,117,110,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,104,46,112,111,115,116,82,117,110,32,38,38,32,40,104,46,112,111,115,116,82,117,110,32,61,32,91,104,46,112,111,115,116,82,117,110,93,41,59,32,104,46,112,111,115,116,82,117,110,46,108,101,110,103,116,104,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,104,46,112,111,115,116,82,117,110,46,115,104,105,102,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,97,46,117,110,115,104,105,102,116,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,66,97,40,115,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,40,48,32,60,32,70,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,104,46,112,114,101,82,117,110,41,32,102,111,114,32,40,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,104,46,112,114,101,82,117,110,32,38,38,32,40,104,46,112,114,101,82,117,110,32,61,32,91,104,46,112,114,101,82,117,110,93,41,59,32,104,46,112,114,101,82,117,110,46,108,101,110,103,116,104,59,32,41,32,116,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,66,97,40,113,97,41,59,10,32,32,32,32,32,32,32,32,32,32,48,32,60,32,70,32,124,124,32,40,104,46,115,101,116,83,116,97,116,117,115,32,63,32,40,104,46,115,101,116,83,116,97,116,117,115,40,34,82,117,110,110,105,110,103,46,46,46,34,41,44,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,104,46,115,101,116,83,116,97,116,117,115,40,34,34,41,44,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,49,41,41,32,58,32,97,40,41,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,104,46,112,114,101,73,110,105,116,41,10,32,32,32,32,32,32,32,32,102,111,114,32,40,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,104,46,112,114,101,73,110,105,116,32,38,38,32,40,104,46,112,114,101,73,110,105,116,32,61,32,91,104,46,112,114,101,73,110,105,116,93,41,59,32,48,32,60,32,104,46,112,114,101,73,110,105,116,46,108,101,110,103,116,104,59,32,41,32,104,46,112,114,101,73,110,105,116,46,112,111,112,40,41,40,41,59,10,32,32,32,32,32,32,111,99,40,41,59,10,32,32,32,32,32,32,109,111,100,117,108,101,82,116,110,32,61,32,99,97,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,82,116,110,59,10,32,32,32,32,125,59,10,32,32,125,41,40,41,59,10,32,32,118,97,114,32,100,111,116,108,111,116,116,105,101,95,112,108,97,121,101,114,95,100,101,102,97,117,108,116,32,61,32,99,114,101,97,116,101,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,77,111,100,117,108,101,59,10,10,32,32,47,47,32,115,114,99,47,99,111,114,101,47,100,111,116,108,111,116,116,105,101,45,119,97,115,109,45,108,111,97,100,101,114,46,116,115,10,32,32,118,97,114,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,82,101,110,100,101,114,101,114,76,111,97,100,101,114,32,105,115,32,97,32,115,116,97,116,105,99,32,99,108,97,115,115,32,97,110,100,32,99,97,110,110,111,116,32,98,101,32,105,110,115,116,97,110,116,105,97,116,101,100,46,34,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,95,116,114,121,76,111,97,100,40,117,114,108,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,117,108,101,32,61,32,97,119,97,105,116,32,100,111,116,108,111,116,116,105,101,95,112,108,97,121,101,114,95,100,101,102,97,117,108,116,40,123,32,108,111,99,97,116,101,70,105,108,101,58,32,40,41,32,61,62,32,117,114,108,32,125,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,84,114,105,101,115,32,116,111,32,108,111,97,100,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,32,102,114,111,109,32,116,104,101,32,112,114,105,109,97,114,121,32,85,82,76,44,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,97,32,98,97,99,107,117,112,32,85,82,76,32,105,102,32,110,101,99,101,115,115,97,114,121,46,10,32,32,32,32,32,42,32,84,104,114,111,119,115,32,97,110,32,101,114,114,111,114,32,105,102,32,98,111,116,104,32,85,82,76,115,32,102,97,105,108,32,116,111,32,108,111,97,100,32,116,104,101,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,80,114,111,109,105,115,101,60,77,111,100,117,108,101,62,32,45,32,65,32,112,114,111,109,105,115,101,32,116,104,97,116,32,114,101,115,111,108,118,101,115,32,116,111,32,116,104,101,32,108,111,97,100,101,100,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,95,108,111,97,100,87,105,116,104,66,97,99,107,117,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,32,61,32,116,104,105,115,46,95,116,114,121,76,111,97,100,40,116,104,105,115,46,95,119,97,115,109,85,82,76,41,46,99,97,116,99,104,40,97,115,121,110,99,32,40,105,110,105,116,105,97,108,69,114,114,111,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,97,99,107,117,112,85,114,108,32,61,32,96,104,116,116,112,115,58,47,47,117,110,112,107,103,46,99,111,109,47,36,123,80,65,67,75,65,71,69,95,78,65,77,69,125,64,36,123,80,65,67,75,65,71,69,95,86,69,82,83,73,79,78,125,47,100,105,115,116,47,100,111,116,108,111,116,116,105,101,45,112,108,97,121,101,114,46,119,97,115,109,96,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,96,80,114,105,109,97,114,121,32,87,65,83,77,32,108,111,97,100,32,102,97,105,108,101,100,32,102,114,111,109,32,36,123,116,104,105,115,46,95,119,97,115,109,85,82,76,125,46,32,69,114,114,111,114,58,32,36,123,105,110,105,116,105,97,108,69,114,114,111,114,46,109,101,115,115,97,103,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,96,65,116,116,101,109,112,116,105,110,103,32,116,111,32,108,111,97,100,32,87,65,83,77,32,102,114,111,109,32,98,97,99,107,117,112,32,85,82,76,58,32,36,123,98,97,99,107,117,112,85,114,108,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,119,97,105,116,32,116,104,105,115,46,95,116,114,121,76,111,97,100,40,98,97,99,107,117,112,85,114,108,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,98,97,99,107,117,112,69,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,80,114,105,109,97,114,121,32,87,65,83,77,32,85,82,76,32,102,97,105,108,101,100,58,32,36,123,105,110,105,116,105,97,108,69,114,114,111,114,46,109,101,115,115,97,103,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,66,97,99,107,117,112,32,87,65,83,77,32,85,82,76,32,102,97,105,108,101,100,58,32,36,123,98,97,99,107,117,112,69,114,114,111,114,46,109,101,115,115,97,103,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,87,65,83,77,32,108,111,97,100,105,110,103,32,102,97,105,108,101,100,32,102,114,111,109,32,97,108,108,32,115,111,117,114,99,101,115,46,34,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,80,117,98,108,105,99,32,109,101,116,104,111,100,32,116,111,32,108,111,97,100,32,116,104,101,32,87,101,98,65,115,115,101,109,98,108,121,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,32,85,116,105,108,105,122,101,115,32,97,32,112,114,105,109,97,114,121,32,97,110,100,32,98,97,99,107,117,112,32,85,82,76,32,102,111,114,32,114,111,98,117,115,116,110,101,115,115,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,80,114,111,109,105,115,101,60,77,111,100,117,108,101,62,32,45,32,65,32,112,114,111,109,105,115,101,32,116,104,97,116,32,114,101,115,111,108,118,101,115,32,116,111,32,116,104,101,32,108,111,97,100,101,100,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,108,111,97,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,108,111,97,100,87,105,116,104,66,97,99,107,117,112,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,97,32,110,101,119,32,85,82,76,32,102,111,114,32,116,104,101,32,87,65,83,77,32,102,105,108,101,32,97,110,100,32,105,110,118,97,108,105,100,97,116,101,115,32,116,104,101,32,99,117,114,114,101,110,116,32,109,111,100,117,108,101,32,112,114,111,109,105,115,101,46,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,114,105,110,103,32,45,32,32,84,104,101,32,110,101,119,32,85,82,76,32,102,111,114,32,116,104,101,32,87,65,83,77,32,102,105,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,115,101,116,87,97,115,109,85,114,108,40,117,114,108,41,32,123,10,32,32,32,32,32,32,105,102,32,40,117,114,108,32,61,61,61,32,116,104,105,115,46,95,119,97,115,109,85,82,76,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,119,97,115,109,85,82,76,32,61,32,117,114,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,32,61,32,110,117,108,108,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,47,47,32,101,115,108,105,110,116,45,100,105,115,97,98,108,101,45,110,101,120,116,45,108,105,110,101,32,64,116,121,112,101,115,99,114,105,112,116,45,101,115,108,105,110,116,47,110,97,109,105,110,103,45,99,111,110,118,101,110,116,105,111,110,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,44,32,34,95,77,111,100,117,108,101,80,114,111,109,105,115,101,34,44,32,110,117,108,108,41,59,10,32,32,47,47,32,85,82,76,32,102,111,114,32,116,104,101,32,87,65,83,77,32,102,105,108,101,44,32,99,111,110,115,116,114,117,99,116,101,100,32,117,115,105,110,103,32,112,97,99,107,97,103,101,32,105,110,102,111,114,109,97,116,105,111,110,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,44,32,34,95,119,97,115,109,85,82,76,34,44,32,96,104,116,116,112,115,58,47,47,99,100,110,46,106,115,100,101,108,105,118,114,46,110,101,116,47,110,112,109,47,36,123,80,65,67,75,65,71,69,95,78,65,77,69,125,64,36,123,80,65,67,75,65,71,69,95,86,69,82,83,73,79,78,125,47,100,105,115,116,47,100,111,116,108,111,116,116,105,101,45,112,108,97,121,101,114,46,119,97,115,109,96,41,59,10,10,32,32,47,47,32,115,114,99,47,101,118,101,110,116,45,109,97,110,97,103,101,114,46,116,115,10,32,32,118,97,114,32,69,118,101,110,116,77,97,110,97,103,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,34,44,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,108,101,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,103,101,116,40,116,121,112,101,41,59,10,32,32,32,32,32,32,105,102,32,40,33,108,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,32,61,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,115,101,116,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,115,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,103,101,116,40,116,121,112,101,41,59,10,32,32,32,32,32,32,105,102,32,40,33,108,105,115,116,101,110,101,114,115,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,115,105,122,101,32,61,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,116,121,112,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,116,121,112,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,100,105,115,112,97,116,99,104,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,103,101,116,40,101,118,101,110,116,46,116,121,112,101,41,59,10,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,63,46,102,111,114,69,97,99,104,40,40,108,105,115,116,101,110,101,114,41,32,61,62,32,108,105,115,116,101,110,101,114,40,101,118,101,110,116,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,109,111,118,101,65,108,108,69,118,101,110,116,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,32,32,125,10,32,32,125,59,10,10,32,32,47,47,32,115,114,99,47,111,102,102,115,99,114,101,101,110,45,111,98,115,101,114,118,101,114,46,116,115,10,32,32,118,97,114,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,115,116,97,116,105,99,32,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,114,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,116,101,114,115,101,99,116,105,111,110,79,98,115,101,114,118,101,114,67,97,108,108,98,97,99,107,32,61,32,40,101,110,116,114,105,101,115,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,101,110,116,114,105,101,115,46,102,111,114,69,97,99,104,40,40,101,110,116,114,121,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,103,101,116,40,101,110,116,114,121,46,116,97,114,103,101,116,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,110,116,114,121,46,105,115,73,110,116,101,114,115,101,99,116,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,117,110,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,101,119,32,73,110,116,101,114,115,101,99,116,105,111,110,79,98,115,101,114,118,101,114,40,105,110,116,101,114,115,101,99,116,105,111,110,79,98,115,101,114,118,101,114,67,97,108,108,98,97,99,107,44,32,123,10,32,32,32,32,32,32,32,32,116,104,114,101,115,104,111,108,100,58,32,48,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,111,98,115,101,114,118,101,40,99,97,110,118,97,115,44,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,104,97,115,40,99,97,110,118,97,115,41,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,101,116,40,99,97,110,118,97,115,44,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,100,101,108,101,116,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,105,122,101,32,61,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,100,105,115,99,111,110,110,101,99,116,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,125,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,114,34,44,32,110,117,108,108,41,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,34,44,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,41,59,10,10,32,32,47,47,32,115,114,99,47,114,101,115,105,122,101,45,111,98,115,101,114,118,101,114,46,116,115,10,32,32,118,97,114,32,82,69,83,73,90,69,95,68,69,66,79,85,78,67,69,95,84,73,77,69,32,61,32,49,48,48,59,10,32,32,118,97,114,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,115,116,97,116,105,99,32,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,114,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,105,122,101,72,97,110,100,108,101,114,32,61,32,40,101,110,116,114,105,101,115,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,101,110,116,114,105,101,115,46,102,111,114,69,97,99,104,40,40,101,110,116,114,121,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,101,108,101,109,101,110,116,32,61,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,103,101,116,40,101,110,116,114,121,46,116,97,114,103,101,116,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,101,108,101,109,101,110,116,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,91,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,44,32,116,105,109,101,111,117,116,93,32,61,32,101,108,101,109,101,110,116,59,10,32,32,32,32,32,32,32,32,32,32,99,108,101,97,114,84,105,109,101,111,117,116,40,116,105,109,101,111,117,116,41,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,110,101,119,84,105,109,101,111,117,116,32,61,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,82,69,83,73,90,69,95,68,69,66,79,85,78,67,69,95,84,73,77,69,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,101,116,40,101,110,116,114,121,46,116,97,114,103,101,116,44,32,91,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,44,32,110,101,119,84,105,109,101,111,117,116,93,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,101,119,32,82,101,115,105,122,101,79,98,115,101,114,118,101,114,40,114,101,115,105,122,101,72,97,110,100,108,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,111,98,115,101,114,118,101,40,99,97,110,118,97,115,44,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,104,97,115,40,99,97,110,118,97,115,41,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,101,116,40,99,97,110,118,97,115,44,32,91,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,44,32,48,93,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,101,108,101,109,101,110,116,32,61,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,103,101,116,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,105,102,32,40,101,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,116,105,109,101,111,117,116,73,100,32,61,32,101,108,101,109,101,110,116,91,49,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,105,109,101,111,117,116,73,100,41,32,99,108,101,97,114,84,105,109,101,111,117,116,40,116,105,109,101,111,117,116,73,100,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,100,101,108,101,116,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,105,122,101,32,38,38,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,46,100,105,115,99,111,110,110,101,99,116,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,125,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,114,34,44,32,110,117,108,108,41,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,34,44,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,41,59,10,10,32,32,47,47,32,115,114,99,47,117,116,105,108,115,46,116,115,10,32,32,102,117,110,99,116,105,111,110,32,105,115,72,101,120,67,111,108,111,114,40,99,111,108,111,114,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,47,94,35,40,91,92,100,97,45,102,93,123,54,125,124,91,92,100,97,45,102,93,123,56,125,41,36,47,105,117,46,116,101,115,116,40,99,111,108,111,114,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,104,101,120,83,116,114,105,110,103,84,111,82,71,66,65,73,110,116,40,99,111,108,111,114,72,101,120,41,32,123,10,32,32,32,32,105,102,32,40,33,105,115,72,101,120,67,111,108,111,114,40,99,111,108,111,114,72,101,120,41,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,125,10,32,32,32,32,108,101,116,32,104,101,120,32,61,32,99,111,108,111,114,72,101,120,46,114,101,112,108,97,99,101,40,34,35,34,44,32,34,34,41,59,10,32,32,32,32,104,101,120,32,61,32,104,101,120,46,108,101,110,103,116,104,32,61,61,61,32,54,32,63,32,96,36,123,104,101,120,125,102,102,96,32,58,32,104,101,120,59,10,32,32,32,32,114,101,116,117,114,110,32,112,97,114,115,101,73,110,116,40,104,101,120,44,32,49,54,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,68,111,116,76,111,116,116,105,101,40,102,105,108,101,68,97,116,97,41,32,123,10,32,32,32,32,105,102,32,40,102,105,108,101,68,97,116,97,46,98,121,116,101,76,101,110,103,116,104,32,60,32,52,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,99,111,110,115,116,32,102,105,108,101,83,105,103,110,97,116,117,114,101,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,102,105,108,101,68,97,116,97,46,115,108,105,99,101,40,48,44,32,90,73,80,95,83,73,71,78,65,84,85,82,69,46,98,121,116,101,76,101,110,103,116,104,41,41,59,10,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,90,73,80,95,83,73,71,78,65,84,85,82,69,46,108,101,110,103,116,104,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,105,102,32,40,90,73,80,95,83,73,71,78,65,84,85,82,69,91,105,93,32,33,61,61,32,102,105,108,101,83,105,103,110,97,116,117,114,101,91,105,93,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,76,111,116,116,105,101,74,83,79,78,40,106,115,111,110,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,76,79,84,84,73,69,95,74,83,79,78,95,77,65,78,68,65,84,79,82,89,95,70,73,69,76,68,83,46,101,118,101,114,121,40,40,102,105,101,108,100,41,32,61,62,32,79,98,106,101,99,116,46,112,114,111,116,111,116,121,112,101,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,46,99,97,108,108,40,106,115,111,110,44,32,102,105,101,108,100,41,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,76,111,116,116,105,101,40,102,105,108,101,68,97,116,97,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,102,105,108,101,68,97,116,97,32,61,61,61,32,34,115,116,114,105,110,103,34,41,32,123,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,115,76,111,116,116,105,101,74,83,79,78,40,74,83,79,78,46,112,97,114,115,101,40,102,105,108,101,68,97,116,97,41,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,95,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,115,76,111,116,116,105,101,74,83,79,78,40,102,105,108,101,68,97,116,97,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,103,101,116,68,101,102,97,117,108,116,68,80,82,40,41,32,123,10,32,32,32,32,99,111,110,115,116,32,100,112,114,32,61,32,73,83,95,66,82,79,87,83,69,82,32,63,32,119,105,110,100,111,119,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,58,32,49,59,10,32,32,32,32,114,101,116,117,114,110,32,49,32,43,32,40,100,112,114,32,45,32,49,41,32,42,32,68,69,70,65,85,76,84,95,68,80,82,95,70,65,67,84,79,82,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,101,108,101,109,101,110,116,41,32,123,10,32,32,32,32,99,111,110,115,116,32,114,101,99,116,32,61,32,101,108,101,109,101,110,116,46,103,101,116,66,111,117,110,100,105,110,103,67,108,105,101,110,116,82,101,99,116,40,41,59,10,32,32,32,32,99,111,110,115,116,32,118,105,101,119,112,111,114,116,72,101,105,103,104,116,32,61,32,119,105,110,100,111,119,46,105,110,110,101,114,72,101,105,103,104,116,32,124,124,32,100,111,99,117,109,101,110,116,46,100,111,99,117,109,101,110,116,69,108,101,109,101,110,116,46,99,108,105,101,110,116,72,101,105,103,104,116,59,10,32,32,32,32,99,111,110,115,116,32,118,105,101,119,112,111,114,116,87,105,100,116,104,32,61,32,119,105,110,100,111,119,46,105,110,110,101,114,87,105,100,116,104,32,124,124,32,100,111,99,117,109,101,110,116,46,100,111,99,117,109,101,110,116,69,108,101,109,101,110,116,46,99,108,105,101,110,116,87,105,100,116,104,59,10,32,32,32,32,114,101,116,117,114,110,32,33,40,114,101,99,116,46,98,111,116,116,111,109,32,60,32,48,32,124,124,32,114,101,99,116,46,116,111,112,32,62,32,118,105,101,119,112,111,114,116,72,101,105,103,104,116,32,124,124,32,114,101,99,116,46,114,105,103,104,116,32,60,32,48,32,124,124,32,114,101,99,116,46,108,101,102,116,32,62,32,118,105,101,119,112,111,114,116,87,105,100,116,104,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,32,123,10,32,32,32,32,99,111,110,115,116,32,99,97,110,118,97,115,32,61,32,101,118,101,110,116,46,116,97,114,103,101,116,59,10,32,32,32,32,105,102,32,40,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,99,116,32,61,32,99,97,110,118,97,115,46,103,101,116,66,111,117,110,100,105,110,103,67,108,105,101,110,116,82,101,99,116,40,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,99,116,46,119,105,100,116,104,32,61,61,61,32,48,32,124,124,32,114,101,99,116,46,104,101,105,103,104,116,32,61,61,61,32,48,32,124,124,32,99,97,110,118,97,115,46,119,105,100,116,104,32,61,61,61,32,48,32,124,124,32,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,99,97,108,101,88,32,61,32,99,97,110,118,97,115,46,119,105,100,116,104,32,47,32,114,101,99,116,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,99,97,108,101,89,32,61,32,99,97,110,118,97,115,46,104,101,105,103,104,116,32,47,32,114,101,99,116,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,40,101,118,101,110,116,46,99,108,105,101,110,116,88,32,45,32,114,101,99,116,46,108,101,102,116,41,32,42,32,115,99,97,108,101,88,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,40,101,118,101,110,116,46,99,108,105,101,110,116,89,32,45,32,114,101,99,116,46,116,111,112,41,32,42,32,115,99,97,108,101,89,59,10,32,32,32,32,32,32,105,102,32,40,33,78,117,109,98,101,114,46,105,115,70,105,110,105,116,101,40,120,41,32,124,124,32,33,78,117,109,98,101,114,46,105,115,70,105,110,105,116,101,40,121,41,32,124,124,32,78,117,109,98,101,114,46,105,115,78,97,78,40,120,41,32,124,124,32,78,117,109,98,101,114,46,105,115,78,97,78,40,121,41,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,32,120,44,32,121,32,125,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,104,97,110,100,108,101,79,112,101,110,85,114,108,40,109,101,115,115,97,103,101,41,32,123,10,32,32,32,32,99,111,110,115,116,32,99,111,110,116,101,110,116,32,61,32,109,101,115,115,97,103,101,46,114,101,112,108,97,99,101,40,34,79,112,101,110,85,114,108,58,32,34,44,32,34,34,41,59,10,32,32,32,32,99,111,110,115,116,32,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,32,61,32,99,111,110,116,101,110,116,46,105,110,100,101,120,79,102,40,34,32,124,32,84,97,114,103,101,116,58,32,34,41,59,10,32,32,32,32,108,101,116,32,117,114,108,84,111,79,112,101,110,59,10,32,32,32,32,108,101,116,32,116,97,114,103,101,116,59,10,32,32,32,32,105,102,32,40,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,32,61,61,61,32,45,49,41,32,123,10,32,32,32,32,32,32,117,114,108,84,111,79,112,101,110,32,61,32,99,111,110,116,101,110,116,59,10,32,32,32,32,32,32,116,97,114,103,101,116,32,61,32,34,95,98,108,97,110,107,34,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,117,114,108,84,111,79,112,101,110,32,61,32,99,111,110,116,101,110,116,46,115,117,98,115,116,114,105,110,103,40,48,44,32,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,41,59,10,32,32,32,32,32,32,116,97,114,103,101,116,32,61,32,99,111,110,116,101,110,116,46,115,117,98,115,116,114,105,110,103,40,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,32,43,32,34,32,124,32,84,97,114,103,101,116,58,32,34,46,108,101,110,103,116,104,41,59,10,32,32,32,32,125,10,32,32,32,32,119,105,110,100,111,119,46,111,112,101,110,40,117,114,108,84,111,79,112,101,110,44,32,116,97,114,103,101,116,41,59,10,32,32,125,10,10,32,32,47,47,32,115,114,99,47,117,116,105,108,115,47,118,101,99,116,111,114,45,99,104,97,114,46,116,115,10,32,32,118,97,114,32,116,111,86,101,99,116,111,114,67,104,97,114,32,61,32,40,109,111,100,117,108,101,44,32,100,97,116,97,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,118,101,99,116,111,114,67,104,97,114,32,61,32,110,101,119,32,109,111,100,117,108,101,46,86,101,99,116,111,114,67,104,97,114,40,41,59,10,32,32,32,32,99,111,110,115,116,32,117,105,110,116,56,65,114,114,97,121,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,100,97,116,97,41,59,10,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,117,105,110,116,56,65,114,114,97,121,46,108,101,110,103,116,104,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,98,121,116,101,32,61,32,117,105,110,116,56,65,114,114,97,121,91,105,93,59,10,32,32,32,32,32,32,105,102,32,40,98,121,116,101,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,116,121,112,101,111,102,32,98,121,116,101,32,61,61,61,32,34,110,117,109,98,101,114,34,41,32,123,10,32,32,32,32,32,32,32,32,118,101,99,116,111,114,67,104,97,114,46,112,117,115,104,95,98,97,99,107,40,98,121,116,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,118,101,99,116,111,114,67,104,97,114,59,10,32,32,125,59,10,10,32,32,47,47,32,115,114,99,47,100,111,116,108,111,116,116,105,101,46,116,115,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,32,61,32,40,109,111,100,101,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,105,102,32,40,109,111,100,101,32,61,61,61,32,34,114,101,118,101,114,115,101,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,82,101,118,101,114,115,101,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,34,98,111,117,110,99,101,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,66,111,117,110,99,101,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,34,114,101,118,101,114,115,101,45,98,111,117,110,99,101,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,82,101,118,101,114,115,101,66,111,117,110,99,101,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,70,111,114,119,97,114,100,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,70,105,116,32,61,32,40,102,105,116,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,105,102,32,40,102,105,116,32,61,61,61,32,34,99,111,110,116,97,105,110,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,67,111,110,116,97,105,110,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,99,111,118,101,114,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,67,111,118,101,114,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,102,105,108,108,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,70,105,108,108,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,102,105,116,45,104,101,105,103,104,116,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,70,105,116,72,101,105,103,104,116,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,102,105,116,45,119,105,100,116,104,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,70,105,116,87,105,100,116,104,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,78,111,110,101,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,65,108,105,103,110,32,61,32,40,97,108,105,103,110,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,99,111,114,101,65,108,105,103,110,32,61,32,110,101,119,32,109,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,99,111,114,101,65,108,105,103,110,46,112,117,115,104,95,98,97,99,107,40,97,108,105,103,110,91,48,93,41,59,10,32,32,32,32,99,111,114,101,65,108,105,103,110,46,112,117,115,104,95,98,97,99,107,40,97,108,105,103,110,91,49,93,41,59,10,32,32,32,32,114,101,116,117,114,110,32,99,111,114,101,65,108,105,103,110,59,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,32,61,32,40,115,101,103,109,101,110,116,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,99,111,114,101,115,101,103,109,101,110,116,32,61,32,110,101,119,32,109,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,105,102,32,40,115,101,103,109,101,110,116,46,108,101,110,103,116,104,32,33,61,61,32,50,41,32,114,101,116,117,114,110,32,99,111,114,101,115,101,103,109,101,110,116,59,10,32,32,32,32,99,111,114,101,115,101,103,109,101,110,116,46,112,117,115,104,95,98,97,99,107,40,115,101,103,109,101,110,116,91,48,93,41,59,10,32,32,32,32,99,111,114,101,115,101,103,109,101,110,116,46,112,117,115,104,95,98,97,99,107,40,115,101,103,109,101,110,116,91,49,93,41,59,10,32,32,32,32,114,101,116,117,114,110,32,99,111,114,101,115,101,103,109,101,110,116,59,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,32,61,32,40,108,97,121,111,117,116,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,105,102,32,40,33,108,97,121,111,117,116,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,99,114,101,97,116,101,68,101,102,97,117,108,116,76,97,121,111,117,116,40,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,97,108,105,103,110,58,32,99,114,101,97,116,101,67,111,114,101,65,108,105,103,110,40,108,97,121,111,117,116,46,97,108,105,103,110,32,63,63,32,91,48,46,53,44,32,48,46,53,93,44,32,109,111,100,117,108,101,41,44,10,32,32,32,32,32,32,102,105,116,58,32,99,114,101,97,116,101,67,111,114,101,70,105,116,40,108,97,121,111,117,116,46,102,105,116,32,63,63,32,34,99,111,110,116,97,105,110,34,44,32,109,111,100,117,108,101,41,10,32,32,32,32,125,59,10,32,32,125,59,10,32,32,118,97,114,32,95,68,111,116,76,111,116,116,105,101,32,61,32,99,108,97,115,115,32,95,68,111,116,76,111,116,116,105,101,32,123,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,114,101,97,116,101,115,32,97,32,110,101,119,32,68,111,116,76,111,116,116,105,101,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,32,102,111,114,32,114,101,110,100,101,114,105,110,103,32,76,111,116,116,105,101,32,97,110,105,109,97,116,105,111,110,115,46,10,32,32,32,32,32,42,32,73,110,105,116,105,97,108,105,122,101,115,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,44,32,101,118,101,110,116,32,115,121,115,116,101,109,44,32,97,110,100,32,108,111,97,100,115,32,97,110,105,109,97,116,105,111,110,32,105,102,32,115,114,99,32,111,114,32,100,97,116,97,32,105,115,32,112,114,111,118,105,100,101,100,32,105,110,32,99,111,110,102,105,103,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,67,111,110,102,105,103,117,114,97,116,105,111,110,32,111,98,106,101,99,116,32,115,112,101,99,105,102,121,105,110,103,32,97,110,105,109,97,116,105,111,110,32,115,111,117,114,99,101,44,32,112,108,97,121,98,97,99,107,32,115,101,116,116,105,110,103,115,44,32,97,110,100,32,114,101,110,100,101,114,105,110,103,32,111,112,116,105,111,110,115,10,32,32,32,32,32,42,47,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,99,97,110,118,97,115,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,112,101,110,100,105,110,103,76,111,97,100,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,99,111,110,116,101,120,116,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,101,118,101,110,116,77,97,110,97,103,101,114,34,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,102,114,97,109,101,77,97,110,97,103,101,114,34,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,100,111,116,76,111,116,116,105,101,67,111,114,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,34,44,32,34,34,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,34,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,114,101,110,100,101,114,67,111,110,102,105,103,34,44,32,123,125,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,105,115,70,114,111,122,101,110,34,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,47,47,32,66,111,117,110,100,32,101,118,101,110,116,32,108,105,115,116,101,110,101,114,115,32,102,111,114,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,67,108,105,99,107,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,34,44,32,48,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,34,44,32,48,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,32,99,111,110,102,105,103,46,99,97,110,118,97,115,32,63,63,32,110,117,108,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,32,61,32,110,101,119,32,69,118,101,110,116,77,97,110,97,103,101,114,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,32,61,32,110,101,119,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,97,110,97,103,101,114,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,32,61,32,123,10,32,32,32,32,32,32,32,32,46,46,46,99,111,110,102,105,103,46,114,101,110,100,101,114,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,58,32,99,111,110,102,105,103,46,114,101,110,100,101,114,67,111,110,102,105,103,63,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,103,101,116,68,101,102,97,117,108,116,68,80,82,40,41,44,10,32,32,32,32,32,32,32,32,47,47,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,105,115,32,116,114,117,101,32,98,121,32,100,101,102,97,117,108,116,32,116,111,32,112,114,101,118,101,110,116,32,117,110,110,101,99,101,115,115,97,114,121,32,114,101,110,100,101,114,105,110,103,32,119,104,101,110,32,116,104,101,32,99,97,110,118,97,115,32,105,115,32,111,102,102,115,99,114,101,101,110,10,32,32,32,32,32,32,32,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,58,32,99,111,110,102,105,103,46,114,101,110,100,101,114,67,111,110,102,105,103,63,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,63,63,32,116,114,117,101,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,46,108,111,97,100,40,41,46,116,104,101,110,40,40,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,32,109,111,100,117,108,101,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,32,61,32,110,101,119,32,109,111,100,117,108,101,46,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,76,111,97,100,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,97,100,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,76,111,97,100,69,114,114,111,114,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,114,114,111,114,58,32,110,101,119,32,69,114,114,111,114,40,34,102,97,105,108,101,100,32,116,111,32,108,111,97,100,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,80,108,97,121,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,112,108,97,121,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,80,97,117,115,101,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,112,97,117,115,101,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,111,112,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,115,116,111,112,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,76,111,111,112,40,40,108,111,111,112,67,111,117,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,111,112,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,67,111,109,112,108,101,116,101,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,99,111,109,112,108,101,116,101,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,70,114,97,109,101,40,40,99,117,114,114,101,110,116,70,114,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,102,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,82,101,110,100,101,114,40,40,99,117,114,114,101,110,116,70,114,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,114,101,110,100,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,32,110,101,119,32,109,111,100,117,108,101,46,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,40,123,10,32,32,32,32,32,32,32,32,32,32,97,110,105,109,97,116,105,111,110,73,100,58,32,99,111,110,102,105,103,46,97,110,105,109,97,116,105,111,110,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,116,104,101,109,101,73,100,58,32,99,111,110,102,105,103,46,116,104,101,109,101,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,47,47,32,70,73,88,77,69,58,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,105,100,32,105,115,32,110,111,116,32,117,115,101,102,117,108,44,32,115,105,110,99,101,32,116,104,101,32,108,111,97,100,32,97,110,100,32,115,116,97,114,116,32,111,102,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,114,101,113,117,105,114,101,32,116,111,32,98,101,32,99,111,110,116,114,111,108,108,101,100,32,98,121,32,116,104,101,32,102,114,97,109,101,119,111,114,107,10,32,32,32,32,32,32,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,97,117,116,111,112,108,97,121,58,32,99,111,110,102,105,103,46,97,117,116,111,112,108,97,121,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,48,44,10,32,32,32,32,32,32,32,32,32,32,108,111,111,112,65,110,105,109,97,116,105,111,110,58,32,99,111,110,102,105,103,46,108,111,111,112,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,58,32,99,111,110,102,105,103,46,108,111,111,112,67,111,117,110,116,32,63,63,32,48,44,10,32,32,32,32,32,32,32,32,32,32,109,111,100,101,58,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,40,99,111,110,102,105,103,46,109,111,100,101,32,63,63,32,34,102,111,114,119,97,114,100,34,44,32,109,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,40,99,111,110,102,105,103,46,115,101,103,109,101,110,116,32,63,63,32,91,93,44,32,109,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,32,32,115,112,101,101,100,58,32,99,111,110,102,105,103,46,115,112,101,101,100,32,63,63,32,49,44,10,32,32,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,99,111,110,102,105,103,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,63,63,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,32,32,109,97,114,107,101,114,58,32,99,111,110,102,105,103,46,109,97,114,107,101,114,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,40,99,111,110,102,105,103,46,108,97,121,111,117,116,44,32,109,111,100,117,108,101,41,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,61,32,99,111,110,102,105,103,46,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,63,63,32,34,34,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,32,61,32,99,111,110,102,105,103,46,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,32,63,63,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,117,98,115,99,114,105,98,101,40,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,114,101,97,100,121,34,32,125,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,99,111,110,102,105,103,46,100,97,116,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,99,111,110,102,105,103,46,100,97,116,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,100,97,116,97,58,32,99,111,110,102,105,103,46,100,97,116,97,32,125,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,99,111,110,102,105,103,46,115,114,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,83,114,99,40,99,111,110,102,105,103,46,115,114,99,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,115,114,99,58,32,99,111,110,102,105,103,46,115,114,99,32,125,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,99,111,110,102,105,103,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,99,111,110,102,105,103,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,46,99,97,116,99,104,40,40,101,114,114,111,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,32,32,101,114,114,111,114,58,32,110,101,119,32,69,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,108,111,97,100,32,119,97,115,109,32,109,111,100,117,108,101,58,32,36,123,101,114,114,111,114,125,96,41,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,109,101,115,115,97,103,101,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,109,101,115,115,97,103,101,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,108,111,97,100,69,114,114,111,114,34,44,32,101,114,114,111,114,58,32,110,101,119,32,69,114,114,111,114,40,109,101,115,115,97,103,101,41,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,97,115,121,110,99,32,95,102,101,116,99,104,68,97,116,97,40,115,114,99,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,97,119,97,105,116,32,102,101,116,99,104,40,115,114,99,41,59,10,32,32,32,32,32,32,105,102,32,40,33,114,101,115,112,111,110,115,101,46,111,107,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,102,101,116,99,104,32,97,110,105,109,97,116,105,111,110,32,100,97,116,97,32,102,114,111,109,32,85,82,76,58,32,36,123,115,114,99,125,46,32,36,123,114,101,115,112,111,110,115,101,46,115,116,97,116,117,115,125,58,32,36,123,114,101,115,112,111,110,115,101,46,115,116,97,116,117,115,84,101,120,116,125,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,100,97,116,97,32,61,32,97,119,97,105,116,32,114,101,115,112,111,110,115,101,46,97,114,114,97,121,66,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,105,102,32,40,105,115,68,111,116,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,97,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,84,101,120,116,68,101,99,111,100,101,114,40,41,46,100,101,99,111,100,101,40,100,97,116,97,41,59,10,32,32,32,32,125,10,32,32,32,32,95,108,111,97,100,70,114,111,109,68,97,116,97,40,100,97,116,97,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,34,91,100,111,116,108,111,116,116,105,101,45,119,101,98,93,32,67,97,110,110,111,116,32,108,111,97,100,32,97,110,105,109,97,116,105,111,110,32,119,105,116,104,111,117,116,32,99,97,110,118,97,115,46,32,67,97,108,108,32,115,101,116,67,97,110,118,97,115,40,41,32,102,105,114,115,116,46,34,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,108,101,116,32,108,111,97,100,101,100,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,100,97,116,97,32,61,61,61,32,34,115,116,114,105,110,103,34,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,32,32,34,73,110,118,97,108,105,100,32,76,111,116,116,105,101,32,74,83,79,78,32,115,116,114,105,110,103,58,32,84,104,101,32,112,114,111,118,105,100,101,100,32,115,116,114,105,110,103,32,100,111,101,115,32,110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,116,104,101,32,76,111,116,116,105,101,32,74,83,79,78,32,102,111,114,109,97,116,46,34,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,68,97,116,97,40,100,97,116,97,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,100,97,116,97,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,66,117,102,102,101,114,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,68,111,116,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,32,32,34,73,110,118,97,108,105,100,32,100,111,116,76,111,116,116,105,101,32,65,114,114,97,121,66,117,102,102,101,114,58,32,84,104,101,32,112,114,111,118,105,100,101,100,32,65,114,114,97,121,66,117,102,102,101,114,32,100,111,101,115,32,110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,116,104,101,32,100,111,116,76,111,116,116,105,101,32,102,111,114,109,97,116,46,34,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,68,111,116,76,111,116,116,105,101,68,97,116,97,40,116,111,86,101,99,116,111,114,67,104,97,114,40,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,44,32,100,97,116,97,41,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,116,121,112,101,111,102,32,100,97,116,97,32,61,61,61,32,34,111,98,106,101,99,116,34,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,32,32,34,73,110,118,97,108,105,100,32,76,111,116,116,105,101,32,74,83,79,78,32,111,98,106,101,99,116,58,32,84,104,101,32,112,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,100,111,101,115,32,110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,116,104,101,32,76,111,116,116,105,101,32,74,83,79,78,32,102,111,114,109,97,116,46,34,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,68,97,116,97,40,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,100,97,116,97,41,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,96,85,110,115,117,112,112,111,114,116,101,100,32,100,97,116,97,32,116,121,112,101,32,102,111,114,32,97,110,105,109,97,116,105,111,110,32,100,97,116,97,46,32,69,120,112,101,99,116,101,100,58,32,10,32,32,32,32,32,32,32,32,32,32,45,32,115,116,114,105,110,103,32,40,76,111,116,116,105,101,32,74,83,79,78,41,44,10,32,32,32,32,32,32,32,32,32,32,45,32,65,114,114,97,121,66,117,102,102,101,114,32,40,100,111,116,76,111,116,116,105,101,41,44,10,32,32,32,32,32,32,32,32,32,32,45,32,111,98,106,101,99,116,32,40,76,111,116,116,105,101,32,74,83,79,78,41,46,32,10,32,32,32,32,32,32,32,32,32,32,82,101,99,101,105,118,101,100,58,32,36,123,116,121,112,101,111,102,32,100,97,116,97,125,96,10,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,81,117,97,108,105,116,121,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,102,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,58,32,116,104,105,115,46,99,117,114,114,101,110,116,70,114,97,109,101,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,115,109,76,111,97,100,101,100,32,61,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,115,109,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,115,109,83,116,97,114,116,101,100,32,61,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,115,109,83,116,97,114,116,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,97,117,116,111,82,101,115,105,122,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,108,111,97,100,70,114,111,109,83,114,99,40,115,114,99,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,102,101,116,99,104,68,97,116,97,40,115,114,99,41,46,116,104,101,110,40,40,100,97,116,97,41,32,61,62,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,100,97,116,97,41,41,46,99,97,116,99,104,40,40,101,114,114,111,114,41,32,61,62,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,108,111,97,100,32,97,110,105,109,97,116,105,111,110,32,100,97,116,97,32,102,114,111,109,32,85,82,76,58,32,36,123,115,114,99,125,46,32,36,123,101,114,114,111,114,125,96,41,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,114,97,119,32,112,105,120,101,108,32,98,117,102,102,101,114,32,99,111,110,116,97,105,110,105,110,103,32,116,104,101,32,114,101,110,100,101,114,101,100,32,97,110,105,109,97,116,105,111,110,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,82,71,66,65,32,112,105,120,101,108,32,100,97,116,97,32,97,115,32,97,32,85,105,110,116,56,65,114,114,97,121,32,102,111,114,32,97,100,118,97,110,99,101,100,32,105,109,97,103,101,32,112,114,111,99,101,115,115,105,110,103,32,111,114,32,99,117,115,116,111,109,32,114,101,110,100,101,114,105,110,103,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,98,117,102,102,101,114,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,98,117,102,102,101,114,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,73,68,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,97,110,105,109,97,116,105,111,110,32,102,114,111,109,32,97,32,109,117,108,116,105,45,97,110,105,109,97,116,105,111,110,32,100,111,116,76,111,116,116,105,101,32,102,105,108,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,32,115,112,101,99,105,102,105,99,32,97,110,105,109,97,116,105,111,110,32,105,115,32,97,99,116,105,118,101,32,111,114,32,102,111,114,32,115,105,110,103,108,101,45,97,110,105,109,97,116,105,111,110,32,102,105,108,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,73,68,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,116,104,101,109,101,32,97,112,112,108,105,101,100,32,116,111,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,32,116,104,101,109,101,32,105,115,32,97,99,116,105,118,101,46,32,84,104,101,109,101,115,32,109,111,100,105,102,121,32,99,111,108,111,114,115,32,97,110,100,32,118,105,115,117,97,108,32,112,114,111,112,101,114,116,105,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,97,99,116,105,118,101,84,104,101,109,101,73,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,99,116,105,118,101,84,104,101,109,101,73,100,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,108,97,121,111,117,116,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,102,111,114,32,112,111,115,105,116,105,111,110,105,110,103,32,97,110,100,32,115,99,97,108,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,73,110,99,108,117,100,101,115,32,102,105,116,32,109,111,100,101,32,40,99,111,110,116,97,105,110,44,32,99,111,118,101,114,44,32,102,105,108,108,44,32,101,116,99,46,41,32,97,110,100,32,97,108,105,103,110,109,101,110,116,32,91,120,44,32,121,93,32,118,97,108,117,101,115,32,40,48,45,49,32,114,97,110,103,101,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,108,97,121,111,117,116,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,97,121,111,117,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,108,97,121,111,117,116,59,10,32,32,32,32,32,32,105,102,32,40,108,97,121,111,117,116,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,32,32,97,108,105,103,110,58,32,91,108,97,121,111,117,116,46,97,108,105,103,110,46,103,101,116,40,48,41,44,32,108,97,121,111,117,116,46,97,108,105,103,110,46,103,101,116,40,49,41,93,44,10,32,32,32,32,32,32,32,32,32,32,102,105,116,58,32,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,108,97,121,111,117,116,46,102,105,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,67,111,110,116,97,105,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,99,111,110,116,97,105,110,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,67,111,118,101,114,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,99,111,118,101,114,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,70,105,108,108,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,105,108,108,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,70,105,116,72,101,105,103,104,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,105,116,45,104,101,105,103,104,116,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,70,105,116,87,105,100,116,104,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,105,116,45,119,105,100,116,104,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,110,111,110,101,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,99,111,110,116,97,105,110,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,40,41,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,109,97,114,107,101,114,32,110,97,109,101,32,105,102,32,97,32,109,97,114,107,101,114,45,98,97,115,101,100,32,115,101,103,109,101,110,116,32,105,115,32,115,101,116,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,32,109,97,114,107,101,114,32,105,115,32,97,99,116,105,118,101,46,32,85,115,101,32,115,101,116,77,97,114,107,101,114,40,41,32,116,111,32,97,99,116,105,118,97,116,101,32,97,32,110,97,109,101,100,32,115,101,103,109,101,110,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,109,97,114,107,101,114,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,109,97,114,107,101,114,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,97,114,107,101,114,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,109,97,110,105,102,101,115,116,32,99,111,110,116,97,105,110,105,110,103,32,109,101,116,97,100,97,116,97,32,97,98,111,117,116,32,97,110,105,109,97,116,105,111,110,115,44,32,116,104,101,109,101,115,44,32,97,110,100,32,115,116,97,116,101,115,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,110,117,108,108,32,105,102,32,110,111,32,109,97,110,105,102,101,115,116,32,105,115,32,97,118,97,105,108,97,98,108,101,32,111,114,32,105,102,32,116,104,101,32,108,111,97,100,101,100,32,97,110,105,109,97,116,105,111,110,32,100,111,101,115,110,39,116,32,105,110,99,108,117,100,101,32,111,110,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,109,97,110,105,102,101,115,116,40,41,32,123,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,97,110,105,102,101,115,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,109,97,110,105,102,101,115,116,83,116,114,105,110,103,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,33,109,97,110,105,102,101,115,116,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,97,110,105,102,101,115,116,74,115,111,110,32,61,32,74,83,79,78,46,112,97,114,115,101,40,109,97,110,105,102,101,115,116,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,79,98,106,101,99,116,46,107,101,121,115,40,109,97,110,105,102,101,115,116,74,115,111,110,41,46,108,101,110,103,116,104,32,61,61,61,32,48,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,97,110,105,102,101,115,116,74,115,111,110,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,95,101,114,114,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,114,101,110,100,101,114,105,110,103,32,99,111,110,102,105,103,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,73,110,99,108,117,100,101,115,32,115,101,116,116,105,110,103,115,32,108,105,107,101,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,44,32,97,117,116,111,82,101,115,105,122,101,44,32,97,110,100,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,114,101,110,100,101,114,67,111,110,102,105,103,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,112,108,97,121,98,97,99,107,32,115,101,103,109,101,110,116,32,97,115,32,91,115,116,97,114,116,70,114,97,109,101,44,32,101,110,100,70,114,97,109,101,93,46,10,32,32,32,32,32,42,32,73,102,32,110,111,32,115,101,103,109,101,110,116,32,105,115,32,115,101,116,44,32,114,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,97,110,100,32,116,104,101,32,102,117,108,108,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,115,101,103,109,101,110,116,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,101,103,109,101,110,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,115,101,103,109,101,110,116,59,10,32,32,32,32,32,32,105,102,32,40,115,101,103,109,101,110,116,32,38,38,32,115,101,103,109,101,110,116,46,115,105,122,101,40,41,32,61,61,61,32,50,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,115,101,103,109,101,110,116,46,103,101,116,40,48,41,44,32,115,101,103,109,101,110,116,46,103,101,116,40,49,41,93,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,108,111,111,112,32,99,111,110,102,105,103,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,115,101,116,32,116,111,32,108,111,111,112,32,99,111,110,116,105,110,117,111,117,115,108,121,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,108,111,111,112,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,108,111,111,112,65,110,105,109,97,116,105,111,110,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,32,109,111,100,101,46,10,32,32,32,32,32,42,32,68,101,116,101,114,109,105,110,101,115,32,112,108,97,121,98,97,99,107,32,100,105,114,101,99,116,105,111,110,58,32,39,102,111,114,119,97,114,100,39,44,32,39,114,101,118,101,114,115,101,39,44,32,39,98,111,117,110,99,101,39,32,40,102,111,114,119,97,114,100,32,116,104,101,110,32,114,101,118,101,114,115,101,41,44,32,111,114,32,39,114,101,118,101,114,115,101,45,98,111,117,110,99,101,39,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,109,111,100,101,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,109,111,100,101,59,10,32,32,32,32,32,32,105,102,32,40,109,111,100,101,32,61,61,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,77,111,100,101,46,82,101,118,101,114,115,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,114,101,118,101,114,115,101,34,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,77,111,100,101,46,66,111,117,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,98,111,117,110,99,101,34,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,77,111,100,101,46,82,101,118,101,114,115,101,66,111,117,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,114,101,118,101,114,115,101,45,98,111,117,110,99,101,34,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,111,114,119,97,114,100,34,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,114,101,110,100,101,114,105,110,103,32,105,115,32,99,117,114,114,101,110,116,108,121,32,102,114,111,122,101,110,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,102,114,101,101,122,101,40,41,32,104,97,115,32,98,101,101,110,32,99,97,108,108,101,100,32,97,110,100,32,116,104,101,32,114,101,110,100,101,114,105,110,103,32,108,111,111,112,32,105,115,32,112,97,117,115,101,100,32,116,111,32,115,97,118,101,32,114,101,115,111,117,114,99,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,70,114,111,122,101,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,97,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,105,115,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,97,110,100,32,114,117,110,110,105,110,103,46,10,32,32,32,32,32,42,32,84,114,117,101,32,97,102,116,101,114,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,32,105,115,32,99,97,108,108,101,100,32,97,110,100,32,117,110,116,105,108,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,32,105,115,32,99,97,108,108,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,98,97,99,107,103,114,111,117,110,100,32,99,111,108,111,114,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,104,101,32,98,97,99,107,103,114,111,117,110,100,32,99,111,108,111,114,32,97,115,32,97,32,115,116,114,105,110,103,32,40,101,46,103,46,44,32,39,35,70,70,70,70,70,70,39,32,111,114,32,39,116,114,97,110,115,112,97,114,101,110,116,39,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,97,117,116,111,112,108,97,121,32,99,111,110,102,105,103,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,111,110,102,105,103,117,114,101,100,32,116,111,32,115,116,97,114,116,32,112,108,97,121,105,110,103,32,97,117,116,111,109,97,116,105,99,97,108,108,121,32,119,104,101,110,32,108,111,97,100,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,97,117,116,111,112,108,97,121,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,97,117,116,111,112,108,97,121,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,102,114,97,109,101,32,105,110,116,101,114,112,111,108,97,116,105,111,110,32,115,101,116,116,105,110,103,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,102,114,97,109,101,32,105,110,116,101,114,112,111,108,97,116,105,111,110,32,105,115,32,101,110,97,98,108,101,100,32,102,111,114,32,115,109,111,111,116,104,101,114,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,32,115,112,101,101,100,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,104,101,32,115,112,101,101,100,32,109,117,108,116,105,112,108,105,101,114,32,40,49,32,61,32,110,111,114,109,97,108,32,115,112,101,101,100,44,32,50,32,61,32,100,111,117,98,108,101,32,115,112,101,101,100,44,32,48,46,53,32,61,32,104,97,108,102,32,115,112,101,101,100,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,115,112,101,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,115,112,101,101,100,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,32,97,110,100,32,99,111,114,101,32,112,108,97,121,101,114,32,104,97,118,101,32,98,101,101,110,32,105,110,105,116,105,97,108,105,122,101,100,46,10,32,32,32,32,32,42,32,67,104,101,99,107,32,116,104,105,115,32,98,101,102,111,114,101,32,112,101,114,102,111,114,109,105,110,103,32,111,112,101,114,97,116,105,111,110,115,32,116,104,97,116,32,114,101,113,117,105,114,101,32,116,104,101,32,112,108,97,121,101,114,32,116,111,32,98,101,32,114,101,97,100,121,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,82,101,97,100,121,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,33,61,61,32,110,117,108,108,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,97,110,32,97,110,105,109,97,116,105,111,110,32,104,97,115,32,98,101,101,110,32,115,117,99,99,101,115,115,102,117,108,108,121,32,108,111,97,100,101,100,32,97,110,100,32,105,115,32,114,101,97,100,121,32,102,111,114,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,32,67,104,101,99,107,32,116,104,105,115,32,98,101,102,111,114,101,32,99,97,108,108,105,110,103,32,112,108,97,121,40,41,32,111,114,32,111,116,104,101,114,32,112,108,97,121,98,97,99,107,32,109,101,116,104,111,100,115,32,116,111,32,101,110,115,117,114,101,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,114,101,97,100,121,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,76,111,97,100,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,76,111,97,100,101,100,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,112,108,97,121,105,110,103,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,97,110,105,109,97,116,105,111,110,32,105,115,32,97,99,116,105,118,101,108,121,32,112,108,97,121,105,110,103,44,32,102,97,108,115,101,32,119,104,101,110,32,112,97,117,115,101,100,44,32,115,116,111,112,112,101,100,44,32,111,114,32,110,111,116,32,115,116,97,114,116,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,80,108,97,121,105,110,103,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,80,108,97,121,105,110,103,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,112,97,117,115,101,100,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,112,97,117,115,101,40,41,32,104,97,115,32,98,101,101,110,32,99,97,108,108,101,100,32,97,110,100,32,97,110,105,109,97,116,105,111,110,32,105,115,32,110,111,116,32,112,108,97,121,105,110,103,32,111,114,32,115,116,111,112,112,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,80,97,117,115,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,80,97,117,115,101,100,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,115,116,111,112,112,101,100,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,115,116,111,112,40,41,32,104,97,115,32,98,101,101,110,32,99,97,108,108,101,100,32,111,114,32,97,110,105,109,97,116,105,111,110,32,104,97,115,110,39,116,32,115,116,97,114,116,101,100,32,121,101,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,83,116,111,112,112,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,83,116,111,112,112,101,100,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,32,110,117,109,98,101,114,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,116,114,97,99,107,105,110,103,32,112,108,97,121,98,97,99,107,32,112,111,115,105,116,105,111,110,32,111,114,32,105,109,112,108,101,109,101,110,116,105,110,103,32,99,117,115,116,111,109,32,102,114,97,109,101,32,100,105,115,112,108,97,121,115,46,32,82,111,117,110,100,101,100,32,116,111,32,50,32,100,101,99,105,109,97,108,32,112,108,97,99,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,99,117,114,114,101,110,116,70,114,97,109,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,77,97,116,104,46,114,111,117,110,100,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,117,114,114,101,110,116,70,114,97,109,101,40,41,32,42,32,49,48,48,41,32,47,32,49,48,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,116,105,109,101,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,104,97,115,32,99,111,109,112,108,101,116,101,100,32,97,32,108,111,111,112,32,100,117,114,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,32,73,110,99,114,101,109,101,110,116,115,32,101,97,99,104,32,116,105,109,101,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,99,111,109,112,108,101,116,101,115,32,111,110,101,32,102,117,108,108,32,99,121,99,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,108,111,111,112,67,111,117,110,116,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,108,111,111,112,67,111,117,110,116,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,116,111,116,97,108,32,110,117,109,98,101,114,32,111,102,32,102,114,97,109,101,115,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,85,115,101,32,119,105,116,104,32,99,117,114,114,101,110,116,70,114,97,109,101,32,116,111,32,99,97,108,99,117,108,97,116,101,32,112,108,97,121,98,97,99,107,32,112,114,111,103,114,101,115,115,32,97,115,32,97,32,112,101,114,99,101,110,116,97,103,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,116,111,116,97,108,70,114,97,109,101,115,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,116,111,116,97,108,70,114,97,109,101,115,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,116,111,116,97,108,32,100,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,110,32,115,101,99,111,110,100,115,46,10,32,32,32,32,32,42,32,82,101,112,114,101,115,101,110,116,115,32,116,104,101,32,116,105,109,101,32,116,111,32,112,108,97,121,32,102,114,111,109,32,116,104,101,32,102,105,114,115,116,32,102,114,97,109,101,32,116,111,32,116,104,101,32,108,97,115,116,32,97,116,32,110,111,114,109,97,108,32,115,112,101,101,100,32,40,115,112,101,101,100,32,61,32,49,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,100,117,114,97,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,100,117,114,97,116,105,111,110,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,100,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,115,101,103,109,101,110,116,32,105,110,32,115,101,99,111,110,100,115,46,10,32,32,32,32,32,42,32,73,102,32,110,111,32,115,101,103,109,101,110,116,32,105,115,32,115,101,116,44,32,114,101,116,117,114,110,115,32,116,104,101,32,102,117,108,108,32,97,110,105,109,97,116,105,111,110,32,100,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,97,110,118,97,115,32,101,108,101,109,101,110,116,32,117,115,101,100,32,102,111,114,32,114,101,110,100,101,114,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,104,101,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,44,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,44,32,111,114,32,82,101,110,100,101,114,83,117,114,102,97,99,101,32,115,101,116,32,100,117,114,105,110,103,32,105,110,105,116,105,97,108,105,122,97,116,105,111,110,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,99,97,110,118,97,115,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,118,97,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,68,121,110,97,109,105,99,97,108,108,121,32,108,111,97,100,115,32,97,32,110,101,119,32,97,110,105,109,97,116,105,111,110,44,32,114,101,112,108,97,99,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,111,110,101,32,105,102,32,97,110,121,46,10,32,32,32,32,32,42,32,83,116,111,112,115,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,44,32,99,108,101,97,110,115,32,117,112,32,114,101,115,111,117,114,99,101,115,44,32,97,110,100,32,108,111,97,100,115,32,102,114,111,109,32,116,104,101,32,112,114,111,118,105,100,101,100,32,115,114,99,32,111,114,32,100,97,116,97,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,67,111,110,102,105,103,117,114,97,116,105,111,110,32,102,111,114,32,116,104,101,32,110,101,119,32,97,110,105,109,97,116,105,111,110,32,40,97,108,108,32,67,111,110,102,105,103,32,112,114,111,112,101,114,116,105,101,115,32,101,120,99,101,112,116,32,99,97,110,118,97,115,41,10,32,32,32,32,32,42,47,10,32,32,32,32,108,111,97,100,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,97,110,105,109,97,116,105,111,110,73,100,58,32,99,111,110,102,105,103,46,97,110,105,109,97,116,105,111,110,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,116,104,101,109,101,73,100,58,32,99,111,110,102,105,103,46,116,104,101,109,101,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,97,117,116,111,112,108,97,121,58,32,99,111,110,102,105,103,46,97,117,116,111,112,108,97,121,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,48,44,10,32,32,32,32,32,32,32,32,108,111,111,112,65,110,105,109,97,116,105,111,110,58,32,99,111,110,102,105,103,46,108,111,111,112,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,58,32,99,111,110,102,105,103,46,108,111,111,112,67,111,117,110,116,32,63,63,32,48,44,10,32,32,32,32,32,32,32,32,109,111,100,101,58,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,40,99,111,110,102,105,103,46,109,111,100,101,32,63,63,32,34,102,111,114,119,97,114,100,34,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,40,99,111,110,102,105,103,46,115,101,103,109,101,110,116,32,63,63,32,91,93,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,115,112,101,101,100,58,32,99,111,110,102,105,103,46,115,112,101,101,100,32,63,63,32,49,44,10,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,99,111,110,102,105,103,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,63,63,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,58,32,99,111,110,102,105,103,46,109,97,114,107,101,114,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,40,99,111,110,102,105,103,46,108,97,121,111,117,116,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,105,102,32,40,99,111,110,102,105,103,46,100,97,116,97,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,99,111,110,102,105,103,46,100,97,116,97,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,100,97,116,97,58,32,99,111,110,102,105,103,46,100,97,116,97,32,125,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,99,111,110,102,105,103,46,115,114,99,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,83,114,99,40,99,111,110,102,105,103,46,115,114,99,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,115,114,99,58,32,99,111,110,102,105,103,46,115,114,99,32,125,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,99,111,110,102,105,103,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,63,63,32,34,34,41,59,10,32,32,32,32,125,10,32,32,32,32,95,100,114,97,119,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,99,111,110,116,101,120,116,32,38,38,32,34,103,101,116,67,111,110,116,101,120,116,34,32,105,110,32,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,116,121,112,101,111,102,32,116,104,105,115,46,95,99,97,110,118,97,115,46,103,101,116,67,111,110,116,101,120,116,32,61,61,61,32,34,102,117,110,99,116,105,111,110,34,32,38,38,32,40,116,121,112,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,124,124,32,116,121,112,101,111,102,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,103,101,116,67,111,110,116,101,120,116,40,34,50,100,34,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,111,110,116,101,120,116,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,117,102,102,101,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,98,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,32,42,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,32,42,32,66,89,84,69,83,95,80,69,82,95,80,73,88,69,76,59,10,32,32,32,32,32,32,32,32,105,102,32,40,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,32,33,61,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,32,61,61,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,43,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,32,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,61,61,61,32,49,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,91,100,111,116,108,111,116,116,105,101,45,119,101,98,93,32,80,101,114,115,105,115,116,101,110,116,32,98,117,102,102,101,114,32,115,105,122,101,32,109,105,115,109,97,116,99,104,32,100,101,116,101,99,116,101,100,46,32,69,120,112,101,99,116,101,100,32,36,123,101,120,112,101,99,116,101,100,76,101,110,103,116,104,125,32,98,121,116,101,115,32,102,111,114,32,99,97,110,118,97,115,32,36,123,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,125,120,36,123,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,125,44,32,98,117,116,32,103,111,116,32,36,123,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,125,32,98,121,116,101,115,46,32,84,104,105,115,32,109,97,121,32,105,110,100,105,99,97,116,101,32,97,32,87,65,83,77,32,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,105,115,115,117,101,32,111,114,32,105,110,118,97,108,105,100,32,99,97,110,118,97,115,32,100,105,109,101,110,115,105,111,110,115,46,96,10,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,61,32,48,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,32,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,108,101,116,32,105,109,97,103,101,68,97,116,97,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,99,108,97,109,112,101,100,66,117,102,102,101,114,32,61,32,110,101,119,32,85,105,110,116,56,67,108,97,109,112,101,100,65,114,114,97,121,40,98,117,102,102,101,114,44,32,48,44,32,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,73,109,97,103,101,68,97,116,97,32,61,61,61,32,34,117,110,100,101,102,105,110,101,100,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,109,97,103,101,68,97,116,97,32,61,32,116,104,105,115,46,95,99,111,110,116,101,120,116,46,99,114,101,97,116,101,73,109,97,103,101,68,97,116,97,40,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,32,32,32,32,105,109,97,103,101,68,97,116,97,46,100,97,116,97,46,115,101,116,40,99,108,97,109,112,101,100,66,117,102,102,101,114,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,105,109,97,103,101,68,97,116,97,32,61,32,110,101,119,32,73,109,97,103,101,68,97,116,97,40,99,108,97,109,112,101,100,66,117,102,102,101,114,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,46,112,117,116,73,109,97,103,101,68,97,116,97,40,105,109,97,103,101,68,97,116,97,44,32,48,44,32,48,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,105,110,105,116,105,97,108,105,122,101,67,97,110,118,97,115,40,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,38,38,32,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,97,117,116,111,82,101,115,105,122,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,38,38,32,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,105,122,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,105,122,101,40,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,114,101,115,105,122,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,33,61,61,32,110,117,108,108,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,46,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,61,61,32,110,117,108,108,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,38,38,32,33,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,38,38,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,32,124,124,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,76,111,111,112,46,98,105,110,100,40,116,104,105,115,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,97,110,105,109,97,116,105,111,110,76,111,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,32,38,38,32,33,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,97,100,118,97,110,99,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,116,105,99,107,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,97,100,118,97,110,99,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,76,111,111,112,46,98,105,110,100,40,116,104,105,115,41,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,34,69,114,114,111,114,32,105,110,32,97,110,105,109,97,116,105,111,110,32,102,114,97,109,101,58,34,44,32,101,114,114,111,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,114,101,110,100,101,114,69,114,114,111,114,34,44,32,101,114,114,111,114,32,125,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,101,114,114,111,114,32,105,110,115,116,97,110,99,101,111,102,32,87,101,98,65,115,115,101,109,98,108,121,46,82,117,110,116,105,109,101,69,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,100,101,115,116,114,111,121,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,116,97,114,116,115,32,111,114,32,114,101,115,117,109,101,115,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,102,114,111,109,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,85,110,102,114,101,101,122,101,115,32,114,101,110,100,101,114,105,110,103,32,105,102,32,102,114,111,122,101,110,32,97,110,100,32,115,116,97,114,116,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,108,111,111,112,46,32,85,112,100,97,116,101,115,32,105,115,80,108,97,121,105,110,103,32,115,116,97,116,101,32,116,111,32,116,114,117,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,112,108,97,121,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,33,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,112,108,97,121,105,110,103,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,112,108,97,121,40,41,59,10,32,32,32,32,32,32,105,102,32,40,112,108,97,121,105,110,103,32,124,124,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,38,38,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,38,38,32,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,80,97,117,115,101,115,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,97,116,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,83,116,111,112,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,108,111,111,112,32,119,104,105,108,101,32,112,114,101,115,101,114,118,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,32,112,111,115,105,116,105,111,110,46,32,85,112,100,97,116,101,115,32,105,115,80,97,117,115,101,100,32,115,116,97,116,101,32,116,111,32,116,114,117,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,112,97,117,115,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,112,97,117,115,101,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,116,111,112,115,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,97,110,100,32,114,101,115,101,116,115,32,116,111,32,116,104,101,32,115,116,97,114,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,72,97,108,116,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,108,111,111,112,32,97,110,100,32,114,101,116,117,114,110,115,32,116,111,32,116,104,101,32,98,101,103,105,110,110,105,110,103,46,32,85,112,100,97,116,101,115,32,105,115,83,116,111,112,112,101,100,32,115,116,97,116,101,32,116,111,32,116,114,117,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,111,107,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,105,102,32,40,111,107,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,102,114,97,109,101,34,44,32,99,117,114,114,101,110,116,70,114,97,109,101,58,32,116,104,105,115,46,99,117,114,114,101,110,116,70,114,97,109,101,32,125,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,101,107,115,32,116,111,32,97,32,115,112,101,99,105,102,105,99,32,102,114,97,109,101,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,97,110,100,32,114,101,110,100,101,114,115,32,105,116,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,105,109,112,108,101,109,101,110,116,105,110,103,32,99,117,115,116,111,109,32,115,99,114,117,98,98,105,110,103,32,99,111,110,116,114,111,108,115,32,111,114,32,112,114,101,99,105,115,101,32,102,114,97,109,101,32,112,111,115,105,116,105,111,110,105,110,103,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,114,97,109,101,32,45,32,84,104,101,32,116,97,114,103,101,116,32,102,114,97,109,101,32,110,117,109,98,101,114,32,116,111,32,115,101,101,107,32,116,111,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,70,114,97,109,101,40,102,114,97,109,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,85,112,100,97,116,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,101,107,40,102,114,97,109,101,41,59,10,32,32,32,32,32,32,105,102,32,40,102,114,97,109,101,85,112,100,97,116,101,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,114,101,110,100,101,114,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,115,112,101,101,100,46,10,32,32,32,32,32,42,32,86,97,108,117,101,115,32,97,98,111,118,101,32,49,32,115,112,101,101,100,32,117,112,32,112,108,97,121,98,97,99,107,44,32,98,101,108,111,119,32,49,32,115,108,111,119,32,105,116,32,100,111,119,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,112,101,101,100,32,45,32,80,108,97,121,98,97,99,107,32,115,112,101,101,100,32,109,117,108,116,105,112,108,105,101,114,32,40,101,46,103,46,44,32,50,32,102,111,114,32,50,120,32,115,112,101,101,100,44,32,48,46,53,32,102,111,114,32,104,97,108,102,32,115,112,101,101,100,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,112,101,101,100,40,115,112,101,101,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,115,112,101,101,100,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,98,97,99,107,103,114,111,117,110,100,32,99,111,108,111,114,32,111,102,32,116,104,101,32,99,97,110,118,97,115,32,111,114,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,70,111,114,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,44,32,115,101,116,115,32,116,104,101,32,67,83,83,32,98,97,99,107,103,114,111,117,110,100,46,32,70,111,114,32,111,116,104,101,114,32,115,117,114,102,97,99,101,115,44,32,114,101,110,100,101,114,115,32,98,101,104,105,110,100,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,108,111,114,32,45,32,67,83,83,32,99,111,108,111,114,32,115,116,114,105,110,103,32,40,101,46,103,46,44,32,39,35,70,70,70,70,70,70,39,44,32,39,114,103,98,97,40,48,44,48,44,48,44,48,46,53,41,39,44,32,39,116,114,97,110,115,112,97,114,101,110,116,39,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,99,111,108,111,114,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,115,116,121,108,101,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,61,32,99,111,108,111,114,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,104,101,120,83,116,114,105,110,103,84,111,82,71,66,65,73,110,116,40,99,111,108,111,114,41,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,61,32,99,111,108,111,114,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,69,110,97,98,108,101,115,32,111,114,32,100,105,115,97,98,108,101,115,32,99,111,110,116,105,110,117,111,117,115,32,108,111,111,112,105,110,103,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,87,104,101,110,32,101,110,97,98,108,101,100,32,119,105,116,104,32,108,111,111,112,67,111,117,110,116,32,115,101,116,32,116,111,32,48,44,32,97,110,105,109,97,116,105,111,110,32,114,101,112,101,97,116,115,32,105,110,100,101,102,105,110,105,116,101,108,121,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,111,111,112,32,45,32,84,114,117,101,32,116,111,32,101,110,97,98,108,101,32,108,111,111,112,105,110,103,44,32,102,97,108,115,101,32,116,111,32,112,108,97,121,32,111,110,99,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,76,111,111,112,40,108,111,111,112,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,108,111,111,112,65,110,105,109,97,116,105,111,110,58,32,108,111,111,112,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,97,100,100,105,116,105,111,110,97,108,32,116,105,109,101,115,32,116,111,32,114,101,112,108,97,121,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,97,102,116,101,114,32,116,104,101,32,102,105,114,115,116,32,112,108,97,121,46,10,32,32,32,32,32,42,32,82,101,113,117,105,114,101,115,32,108,111,111,112,32,116,111,32,98,101,32,116,114,117,101,46,32,65,32,118,97,108,117,101,32,111,102,32,48,32,109,101,97,110,115,32,105,110,102,105,110,105,116,101,32,114,101,112,108,97,121,115,59,32,97,32,112,111,115,105,116,105,118,101,32,118,97,108,117,101,32,110,32,109,101,97,110,115,10,32,32,32,32,32,42,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,115,32,97,32,116,111,116,97,108,32,111,102,32,110,32,43,32,49,32,116,105,109,101,115,32,40,105,110,105,116,105,97,108,32,112,108,97,121,32,43,32,110,32,114,101,112,108,97,121,115,41,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,111,111,112,67,111,117,110,116,32,45,32,78,117,109,98,101,114,32,111,102,32,97,100,100,105,116,105,111,110,97,108,32,114,101,112,108,97,121,115,32,40,48,32,61,32,105,110,102,105,110,105,116,101,44,32,49,32,61,32,112,108,97,121,115,32,116,119,105,99,101,44,32,50,32,61,32,112,108,97,121,115,32,116,104,114,101,101,32,116,105,109,101,115,44,32,101,116,99,46,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,76,111,111,112,67,111,117,110,116,40,108,111,111,112,67,111,117,110,116,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,69,110,97,98,108,101,115,32,111,114,32,100,105,115,97,98,108,101,115,32,102,114,97,109,101,32,105,110,116,101,114,112,111,108,97,116,105,111,110,32,102,111,114,32,115,109,111,111,116,104,101,114,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,32,87,104,101,110,32,101,110,97,98,108,101,100,44,32,105,110,116,101,114,112,111,108,97,116,101,115,32,98,101,116,119,101,101,110,32,102,114,97,109,101,115,46,32,87,104,101,110,32,100,105,115,97,98,108,101,100,44,32,115,104,111,119,115,32,101,120,97,99,116,32,102,114,97,109,101,45,98,121,45,102,114,97,109,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,45,32,84,114,117,101,32,102,111,114,32,115,109,111,111,116,104,32,105,110,116,101,114,112,111,108,97,116,105,111,110,44,32,102,97,108,115,101,32,102,111,114,32,101,120,97,99,116,32,102,114,97,109,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,85,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,40,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,117,98,115,99,114,105,98,101,115,32,116,111,32,97,110,105,109,97,116,105,111,110,32,101,118,101,110,116,115,32,108,105,107,101,32,112,108,97,121,44,32,112,97,117,115,101,44,32,102,114,97,109,101,44,32,99,111,109,112,108,101,116,101,44,32,101,116,99,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,114,101,97,99,116,32,116,111,32,97,110,105,109,97,116,105,111,110,32,115,116,97,116,101,32,99,104,97,110,103,101,115,32,97,110,100,32,112,108,97,121,98,97,99,107,32,112,114,111,103,114,101,115,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,121,112,101,32,45,32,69,118,101,110,116,32,116,121,112,101,32,116,111,32,108,105,115,116,101,110,32,102,111,114,32,40,101,46,103,46,44,32,39,112,108,97,121,39,44,32,39,102,114,97,109,101,39,44,32,39,99,111,109,112,108,101,116,101,39,41,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,105,115,116,101,110,101,114,32,45,32,67,97,108,108,98,97,99,107,32,102,117,110,99,116,105,111,110,32,105,110,118,111,107,101,100,32,119,104,101,110,32,116,104,101,32,101,118,101,110,116,32,111,99,99,117,114,115,10,32,32,32,32,32,42,47,10,32,32,32,32,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,85,110,115,117,98,115,99,114,105,98,101,115,32,102,114,111,109,32,97,110,105,109,97,116,105,111,110,32,101,118,101,110,116,115,46,10,32,32,32,32,32,42,32,73,102,32,110,111,32,108,105,115,116,101,110,101,114,32,105,115,32,112,114,111,118,105,100,101,100,44,32,114,101,109,111,118,101,115,32,97,108,108,32,108,105,115,116,101,110,101,114,115,32,102,111,114,32,116,104,101,32,103,105,118,101,110,32,101,118,101,110,116,32,116,121,112,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,121,112,101,32,45,32,69,118,101,110,116,32,116,121,112,101,32,116,111,32,115,116,111,112,32,108,105,115,116,101,110,105,110,103,32,102,111,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,105,115,116,101,110,101,114,32,45,32,83,112,101,99,105,102,105,99,32,99,97,108,108,98,97,99,107,32,116,111,32,114,101,109,111,118,101,44,32,111,114,32,117,110,100,101,102,105,110,101,100,32,116,111,32,114,101,109,111,118,101,32,97,108,108,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,108,101,97,110,115,32,117,112,32,97,110,100,32,100,101,115,116,114,111,121,115,32,116,104,101,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,44,32,114,101,108,101,97,115,105,110,103,32,97,108,108,32,114,101,115,111,117,114,99,101,115,46,10,32,32,32,32,32,42,32,83,116,111,112,115,32,112,108,97,121,98,97,99,107,44,32,114,101,109,111,118,101,115,32,101,118,101,110,116,32,108,105,115,116,101,110,101,114,115,44,32,97,110,100,32,102,114,101,101,115,32,87,65,83,77,32,109,101,109,111,114,121,46,32,67,97,108,108,32,119,104,101,110,32,116,104,101,32,112,108,97,121,101,114,32,105,115,32,110,111,32,108,111,110,103,101,114,32,110,101,101,100,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,100,101,115,116,114,111,121,40,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,117,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,100,101,115,116,114,111,121,34,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,114,101,109,111,118,101,65,108,108,69,118,101,110,116,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,80,97,117,115,101,115,32,116,104,101,32,114,101,110,100,101,114,105,110,103,32,108,111,111,112,32,119,105,116,104,111,117,116,32,99,104,97,110,103,105,110,103,32,112,108,97,121,98,97,99,107,32,115,116,97,116,101,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,114,101,100,117,99,105,110,103,32,67,80,85,47,71,80,85,32,117,115,97,103,101,32,119,104,101,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,111,102,102,115,99,114,101,101,110,32,111,114,32,104,105,100,100,101,110,46,32,68,105,115,112,97,116,99,104,101,115,32,39,102,114,101,101,122,101,39,32,101,118,101,110,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,102,114,101,101,122,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,102,114,101,101,122,101,34,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,115,117,109,101,115,32,116,104,101,32,114,101,110,100,101,114,105,110,103,32,108,111,111,112,32,97,102,116,101,114,32,98,101,105,110,103,32,102,114,111,122,101,110,46,10,32,32,32,32,32,42,32,82,101,115,116,97,114,116,115,32,102,114,97,109,101,32,114,101,110,100,101,114,105,110,103,32,119,104,105,108,101,32,109,97,105,110,116,97,105,110,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,32,115,116,97,116,101,46,32,68,105,115,112,97,116,99,104,101,115,32,39,117,110,102,114,101,101,122,101,39,32,101,118,101,110,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,117,110,102,114,101,101,122,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,33,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,117,110,102,114,101,101,122,101,34,32,125,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,99,97,108,99,117,108,97,116,101,115,32,97,110,100,32,117,112,100,97,116,101,115,32,99,97,110,118,97,115,32,100,105,109,101,110,115,105,111,110,115,32,98,97,115,101,100,32,111,110,32,99,117,114,114,101,110,116,32,115,105,122,101,46,10,32,32,32,32,32,42,32,67,97,108,108,32,116,104,105,115,32,119,104,101,110,32,116,104,101,32,99,97,110,118,97,115,32,99,111,110,116,97,105,110,101,114,32,115,105,122,101,32,99,104,97,110,103,101,115,32,116,111,32,109,97,105,110,116,97,105,110,32,112,114,111,112,101,114,32,114,101,110,100,101,114,105,110,103,46,32,85,115,117,97,108,108,121,32,104,97,110,100,108,101,100,32,98,121,32,97,117,116,111,82,101,115,105,122,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,105,122,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,116,104,105,115,46,105,115,76,111,97,100,101,100,32,124,124,32,33,116,104,105,115,46,95,99,97,110,118,97,115,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,100,112,114,32,61,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,119,105,110,100,111,119,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,49,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,123,32,104,101,105,103,104,116,58,32,99,108,105,101,110,116,72,101,105,103,104,116,44,32,119,105,100,116,104,58,32,99,108,105,101,110,116,87,105,100,116,104,32,125,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,103,101,116,66,111,117,110,100,105,110,103,67,108,105,101,110,116,82,101,99,116,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,99,108,105,101,110,116,72,101,105,103,104,116,32,33,61,61,32,48,32,38,38,32,99,108,105,101,110,116,87,105,100,116,104,32,33,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,32,61,32,99,108,105,101,110,116,87,105,100,116,104,32,42,32,100,112,114,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,32,99,108,105,101,110,116,72,101,105,103,104,116,32,42,32,100,112,114,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,105,122,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,105,122,101,40,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,105,122,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,99,97,110,118,97,115,32,101,108,101,109,101,110,116,32,117,115,101,100,32,102,111,114,32,114,101,110,100,101,114,105,110,103,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,109,111,118,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,116,111,32,97,32,100,105,102,102,101,114,101,110,116,32,99,97,110,118,97,115,32,119,105,116,104,111,117,116,32,114,101,99,114,101,97,116,105,110,103,32,116,104,101,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,97,110,118,97,115,32,45,32,78,101,119,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,44,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,44,32,111,114,32,82,101,110,100,101,114,83,117,114,102,97,99,101,32,116,111,32,114,101,110,100,101,114,32,116,111,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,67,97,110,118,97,115,40,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,99,97,110,118,97,115,32,124,124,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,61,61,32,99,97,110,118,97,115,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,32,99,97,110,118,97,115,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,110,105,116,105,97,108,105,122,101,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,112,101,110,100,105,110,103,32,61,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,105,102,32,40,112,101,110,100,105,110,103,46,100,97,116,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,112,101,110,100,105,110,103,46,100,97,116,97,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,112,101,110,100,105,110,103,46,115,114,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,83,114,99,40,112,101,110,100,105,110,103,46,115,114,99,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,112,112,108,105,101,115,32,97,32,51,120,51,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,116,111,32,116,104,101,32,101,110,116,105,114,101,32,97,110,105,109,97,116,105,111,110,32,111,110,32,116,104,101,32,99,97,110,118,97,115,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,116,114,97,110,115,108,97,116,101,44,32,114,111,116,97,116,101,44,32,115,99,97,108,101,44,32,111,114,32,115,107,101,119,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,114,101,110,100,101,114,105,110,103,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,114,97,110,115,102,111,114,109,32,45,32,57,45,101,108,101,109,101,110,116,32,97,114,114,97,121,32,114,101,112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,105,110,32,114,111,119,45,109,97,106,111,114,32,111,114,100,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,119,97,115,32,97,112,112,108,105,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,114,97,110,115,102,111,114,109,40,116,114,97,110,115,102,111,114,109,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,118,97,108,32,111,102,32,116,114,97,110,115,102,111,114,109,41,32,123,10,32,32,32,32,32,32,32,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,46,112,117,115,104,95,98,97,99,107,40,118,97,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,111,107,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,84,114,97,110,115,102,111,114,109,40,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,41,59,10,32,32,32,32,32,32,105,102,32,40,111,107,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,111,107,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,51,120,51,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,97,112,112,108,105,101,100,32,116,111,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,97,32,57,45,101,108,101,109,101,110,116,32,97,114,114,97,121,32,114,101,112,114,101,115,101,110,116,105,110,103,32,97,102,102,105,110,101,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,115,32,40,116,114,97,110,115,108,97,116,105,111,110,44,32,114,111,116,97,116,105,111,110,44,32,115,99,97,108,101,44,32,115,107,101,119,41,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,97,110,115,102,111,114,109,32,97,114,114,97,121,32,111,102,32,57,32,110,117,109,98,101,114,115,44,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,84,114,97,110,115,102,111,114,109,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,114,97,110,115,102,111,114,109,32,61,32,91,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,84,114,97,110,115,102,111,114,109,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,116,114,97,110,115,102,111,114,109,91,105,93,32,61,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,46,103,101,116,40,105,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,97,110,115,102,111,114,109,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,97,32,102,114,97,109,101,32,114,97,110,103,101,32,116,111,32,112,108,97,121,32,105,110,115,116,101,97,100,32,111,102,32,116,104,101,32,102,117,108,108,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,112,108,97,121,105,110,103,32,115,112,101,99,105,102,105,99,32,115,101,99,116,105,111,110,115,32,111,114,32,99,114,101,97,116,105,110,103,32,97,110,105,109,97,116,105,111,110,32,115,101,113,117,101,110,99,101,115,32,102,114,111,109,32,115,117,98,115,101,99,116,105,111,110,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,114,116,70,114,97,109,101,32,45,32,83,116,97,114,116,105,110,103,32,102,114,97,109,101,32,110,117,109,98,101,114,32,40,105,110,99,108,117,115,105,118,101,41,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,101,110,100,70,114,97,109,101,32,45,32,69,110,100,105,110,103,32,102,114,97,109,101,32,110,117,109,98,101,114,32,40,105,110,99,108,117,115,105,118,101,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,101,103,109,101,110,116,40,115,116,97,114,116,70,114,97,109,101,44,32,101,110,100,70,114,97,109,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,40,91,115,116,97,114,116,70,114,97,109,101,44,32,101,110,100,70,114,97,109,101,93,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,112,108,97,121,98,97,99,107,32,100,105,114,101,99,116,105,111,110,32,109,111,100,101,46,10,32,32,32,32,32,42,32,67,111,110,116,114,111,108,115,32,119,104,101,116,104,101,114,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,115,32,102,111,114,119,97,114,100,44,32,105,110,32,114,101,118,101,114,115,101,44,32,111,114,32,97,108,116,101,114,110,97,116,101,115,32,40,98,111,117,110,99,101,41,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,109,111,100,101,32,45,32,80,108,97,121,98,97,99,107,32,109,111,100,101,58,32,39,102,111,114,119,97,114,100,39,44,32,39,114,101,118,101,114,115,101,39,44,32,39,98,111,117,110,99,101,39,44,32,111,114,32,39,114,101,118,101,114,115,101,45,98,111,117,110,99,101,39,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,77,111,100,101,40,109,111,100,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,109,111,100,101,58,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,40,109,111,100,101,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,85,112,100,97,116,101,115,32,114,101,110,100,101,114,105,110,103,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,108,105,107,101,32,97,117,116,111,82,101,115,105,122,101,44,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,44,32,97,110,100,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,46,10,32,32,32,32,32,42,32,68,121,110,97,109,105,99,97,108,108,121,32,99,104,97,110,103,101,115,32,104,111,119,32,116,104,101,32,99,97,110,118,97,115,32,98,101,104,97,118,101,115,32,119,105,116,104,111,117,116,32,114,101,108,111,97,100,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,80,97,114,116,105,97,108,32,82,101,110,100,101,114,67,111,110,102,105,103,32,119,105,116,104,32,112,114,111,112,101,114,116,105,101,115,32,116,111,32,117,112,100,97,116,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,82,101,110,100,101,114,67,111,110,102,105,103,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,123,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,44,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,44,32,113,117,97,108,105,116,121,44,32,46,46,46,114,101,115,116,67,111,110,102,105,103,32,125,32,61,32,99,111,110,102,105,103,59,10,32,32,32,32,32,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,32,61,32,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,46,46,46,114,101,115,116,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,47,47,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,105,115,32,97,32,115,112,101,99,105,97,108,32,99,97,115,101,44,32,105,116,32,115,104,111,117,108,100,32,98,101,32,115,101,116,32,116,111,32,116,104,101,32,100,101,102,97,117,108,116,32,118,97,108,117,101,32,105,102,32,105,116,39,115,32,110,111,116,32,112,114,111,118,105,100,101,100,10,32,32,32,32,32,32,32,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,58,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,103,101,116,68,101,102,97,117,108,116,68,80,82,40,41,44,10,32,32,32,32,32,32,32,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,58,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,63,63,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,46,46,46,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,123,32,113,117,97,108,105,116,121,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,105,102,32,40,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,81,117,97,108,105,116,121,40,113,117,97,108,105,116,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,97,117,116,111,82,101,115,105,122,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,105,115,70,114,111,122,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,117,110,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,119,105,116,99,104,101,115,32,116,111,32,97,32,100,105,102,102,101,114,101,110,116,32,97,110,105,109,97,116,105,111,110,32,119,105,116,104,105,110,32,97,32,109,117,108,116,105,45,97,110,105,109,97,116,105,111,110,32,100,111,116,76,111,116,116,105,101,32,102,105,108,101,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,108,111,97,100,32,97,32,100,105,102,102,101,114,101,110,116,32,97,110,105,109,97,116,105,111,110,32,98,121,32,105,116,115,32,73,68,32,119,105,116,104,111,117,116,32,99,114,101,97,116,105,110,103,32,97,32,110,101,119,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,97,110,105,109,97,116,105,111,110,73,100,32,45,32,73,68,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,116,111,32,108,111,97,100,32,40,109,117,115,116,32,101,120,105,115,116,32,105,110,32,116,104,101,32,109,97,110,105,102,101,115,116,41,10,32,32,32,32,32,42,47,10,32,32,32,32,108,111,97,100,65,110,105,109,97,116,105,111,110,40,97,110,105,109,97,116,105,111,110,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,40,41,32,61,61,61,32,97,110,105,109,97,116,105,111,110,73,100,32,124,124,32,33,116,104,105,115,46,95,99,97,110,118,97,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,40,97,110,105,109,97,116,105,111,110,73,100,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,81,117,97,108,105,116,121,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,99,116,105,118,97,116,101,115,32,97,32,110,97,109,101,100,32,109,97,114,107,101,114,32,116,111,32,112,108,97,121,32,111,110,108,121,32,116,104,97,116,32,109,97,114,107,101,100,32,115,101,103,109,101,110,116,46,10,32,32,32,32,32,42,32,77,97,114,107,101,114,115,32,100,101,102,105,110,101,32,110,97,109,101,100,32,115,101,99,116,105,111,110,115,32,119,105,116,104,105,110,32,97,110,32,97,110,105,109,97,116,105,111,110,46,32,85,115,101,32,109,97,114,107,101,114,115,40,41,32,116,111,32,108,105,115,116,32,97,118,97,105,108,97,98,108,101,32,109,97,114,107,101,114,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,109,97,114,107,101,114,32,45,32,78,97,109,101,32,111,102,32,116,104,101,32,109,97,114,107,101,114,32,116,111,32,97,99,116,105,118,97,116,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,77,97,114,107,101,114,40,109,97,114,107,101,114,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,97,108,108,32,109,97,114,107,101,114,115,32,100,101,102,105,110,101,100,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,119,105,116,104,32,116,104,101,105,114,32,116,105,109,101,32,97,110,100,32,100,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,77,97,114,107,101,114,115,32,114,101,112,114,101,115,101,110,116,32,110,97,109,101,100,32,115,101,99,116,105,111,110,115,32,116,104,97,116,32,99,97,110,32,98,101,32,112,108,97,121,101,100,32,117,115,105,110,103,32,115,101,116,77,97,114,107,101,114,40,41,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,109,97,114,107,101,114,32,111,98,106,101,99,116,115,32,119,105,116,104,32,110,97,109,101,44,32,116,105,109,101,44,32,97,110,100,32,100,117,114,97,116,105,111,110,32,112,114,111,112,101,114,116,105,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,109,97,114,107,101,114,115,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,115,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,109,97,114,107,101,114,115,40,41,59,10,32,32,32,32,32,32,105,102,32,40,109,97,114,107,101,114,115,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,109,97,114,107,101,114,115,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,109,97,114,107,101,114,115,46,103,101,116,40,105,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,115,117,108,116,46,112,117,115,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,109,97,114,107,101,114,46,110,97,109,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,105,109,101,58,32,109,97,114,107,101,114,46,116,105,109,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,100,117,114,97,116,105,111,110,58,32,109,97,114,107,101,114,46,100,117,114,97,116,105,111,110,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,115,117,108,116,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,112,112,108,105,101,115,32,97,32,116,104,101,109,101,32,116,111,32,116,104,101,32,97,110,105,109,97,116,105,111,110,44,32,109,111,100,105,102,121,105,110,103,32,99,111,108,111,114,115,32,97,110,100,32,118,105,115,117,97,108,32,112,114,111,112,101,114,116,105,101,115,46,10,32,32,32,32,32,42,32,84,104,101,109,101,115,32,97,114,101,32,112,114,101,100,101,102,105,110,101,100,32,105,110,32,116,104,101,32,100,111,116,76,111,116,116,105,101,32,109,97,110,105,102,101,115,116,46,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,109,101,32,119,97,115,32,115,117,99,99,101,115,115,102,117,108,108,121,32,108,111,97,100,101,100,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,104,101,109,101,73,100,32,45,32,73,68,32,111,102,32,116,104,101,32,116,104,101,109,101,32,116,111,32,97,112,112,108,121,32,40,109,117,115,116,32,101,120,105,115,116,32,105,110,32,109,97,110,105,102,101,115,116,41,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,109,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,104,101,109,101,40,116,104,101,109,101,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,76,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,84,104,101,109,101,40,116,104,101,109,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,101,109,101,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,101,109,101,76,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,109,111,118,101,115,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,112,112,108,105,101,100,32,116,104,101,109,101,32,97,110,100,32,114,101,115,116,111,114,101,115,32,111,114,105,103,105,110,97,108,32,97,110,105,109,97,116,105,111,110,32,99,111,108,111,114,115,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,114,101,118,101,114,116,32,116,111,32,116,104,101,32,100,101,102,97,117,108,116,32,97,112,112,101,97,114,97,110,99,101,32,97,102,116,101,114,32,97,112,112,108,121,105,110,103,32,97,32,116,104,101,109,101,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,109,101,32,119,97,115,32,114,101,115,101,116,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,101,116,84,104,101,109,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,82,101,115,101,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,101,116,84,104,101,109,101,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,101,109,101,82,101,115,101,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,101,109,101,82,101,115,101,116,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,112,112,108,105,101,115,32,97,32,99,117,115,116,111,109,32,116,104,101,109,101,32,102,114,111,109,32,116,104,101,109,101,32,100,97,116,97,32,105,110,115,116,101,97,100,32,111,102,32,109,97,110,105,102,101,115,116,32,116,104,101,109,101,32,73,68,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,100,121,110,97,109,105,99,97,108,108,121,32,103,101,110,101,114,97,116,101,100,32,111,114,32,117,115,101,114,45,99,114,101,97,116,101,100,32,116,104,101,109,101,115,32,110,111,116,32,105,110,32,116,104,101,32,109,97,110,105,102,101,115,116,46,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,104,101,109,101,68,97,116,97,32,45,32,84,104,101,109,101,32,100,97,116,97,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,32,111,114,32,97,32,115,116,114,117,99,116,117,114,101,100,32,84,104,101,109,101,32,111,98,106,101,99,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,109,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,96,96,96,116,121,112,101,115,99,114,105,112,116,10,32,32,32,32,32,42,32,47,47,32,85,115,105,110,103,32,97,32,115,116,114,105,110,103,32,40,101,120,105,115,116,105,110,103,32,98,101,104,97,118,105,111,114,41,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,39,123,34,114,117,108,101,115,34,58,91,123,34,105,100,34,58,34,98,103,34,44,34,116,121,112,101,34,58,34,67,111,108,111,114,34,44,34,118,97,108,117,101,34,58,91,49,44,48,44,48,93,125,93,125,39,41,59,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,47,47,32,85,115,105,110,103,32,97,32,84,104,101,109,101,32,111,98,106,101,99,116,32,40,110,101,119,32,98,101,104,97,118,105,111,114,41,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,123,10,32,32,32,32,32,42,32,32,32,114,117,108,101,115,58,32,91,10,32,32,32,32,32,42,32,32,32,32,32,123,10,32,32,32,32,32,42,32,32,32,32,32,32,32,105,100,58,32,39,98,97,99,107,103,114,111,117,110,100,95,99,111,108,111,114,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,116,121,112,101,58,32,39,67,111,108,111,114,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,118,97,108,117,101,58,32,91,48,46,50,44,32,48,46,52,44,32,48,46,56,93,10,32,32,32,32,32,42,32,32,32,32,32,125,44,10,32,32,32,32,32,42,32,32,32,32,32,123,10,32,32,32,32,32,42,32,32,32,32,32,32,32,105,100,58,32,39,116,105,116,108,101,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,116,121,112,101,58,32,39,84,101,120,116,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,118,97,108,117,101,58,32,123,10,32,32,32,32,32,42,32,32,32,32,32,32,32,32,32,116,101,120,116,58,32,39,72,101,108,108,111,32,87,111,114,108,100,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,32,32,102,111,110,116,83,105,122,101,58,32,52,56,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,32,32,102,105,108,108,67,111,108,111,114,58,32,91,49,44,32,49,44,32,49,93,10,32,32,32,32,32,42,32,32,32,32,32,32,32,125,10,32,32,32,32,32,42,32,32,32,32,32,125,10,32,32,32,32,32,42,32,32,32,93,10,32,32,32,32,32,42,32,125,41,59,10,32,32,32,32,32,42,32,96,96,96,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,104,101,109,101,68,97,116,97,40,116,104,101,109,101,68,97,116,97,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,68,97,116,97,83,116,114,105,110,103,32,61,32,116,121,112,101,111,102,32,116,104,101,109,101,68,97,116,97,32,61,61,61,32,34,115,116,114,105,110,103,34,32,63,32,116,104,101,109,101,68,97,116,97,32,58,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,116,104,101,109,101,68,97,116,97,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,76,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,116,104,101,109,101,68,97,116,97,83,116,114,105,110,103,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,101,109,101,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,101,109,101,76,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,109,117,108,116,105,112,108,101,32,115,108,111,116,32,118,97,108,117,101,115,32,97,116,32,111,110,99,101,32,102,111,114,32,112,97,114,97,109,101,116,101,114,105,122,101,100,32,97,110,105,109,97,116,105,111,110,115,46,10,32,32,32,32,32,42,32,83,108,111,116,115,32,97,108,108,111,119,32,114,117,110,116,105,109,101,32,99,117,115,116,111,109,105,122,97,116,105,111,110,32,111,102,32,99,111,108,111,114,115,44,32,116,101,120,116,44,32,105,109,97,103,101,115,44,32,111,114,32,111,116,104,101,114,32,112,114,111,112,101,114,116,105,101,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,115,32,45,32,79,98,106,101,99,116,32,109,97,112,112,105,110,103,32,115,108,111,116,32,73,68,115,32,116,111,32,116,104,101,105,114,32,118,97,108,117,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,108,111,116,115,40,115,108,111,116,115,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,115,40,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,115,108,111,116,115,41,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,114,101,103,105,111,110,32,84,121,112,101,100,32,83,108,111,116,32,65,80,73,115,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,101,99,107,32,105,102,32,118,97,108,117,101,32,105,115,32,97,110,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,32,40,104,97,115,32,111,98,106,101,99,116,115,32,119,105,116,104,32,39,116,39,32,97,110,100,32,39,115,39,32,112,114,111,112,101,114,116,105,101,115,41,10,32,32,32,32,32,42,47,10,32,32,32,32,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,65,114,114,97,121,46,105,115,65,114,114,97,121,40,118,97,108,117,101,41,32,38,38,32,118,97,108,117,101,46,108,101,110,103,116,104,32,62,32,48,32,38,38,32,116,121,112,101,111,102,32,118,97,108,117,101,91,48,93,32,61,61,61,32,34,111,98,106,101,99,116,34,32,38,38,32,118,97,108,117,101,91,48,93,32,33,61,61,32,110,117,108,108,32,38,38,32,34,116,34,32,105,110,32,118,97,108,117,101,91,48,93,32,38,38,32,34,115,34,32,105,110,32,118,97,108,117,101,91,48,93,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,97,108,108,32,115,108,111,116,32,73,68,115,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,115,108,111,116,32,73,68,32,115,116,114,105,110,103,115,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,73,100,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,100,115,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,73,100,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,100,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,105,100,115,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,105,100,115,46,112,117,115,104,40,105,100,115,86,101,99,116,111,114,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,100,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,116,121,112,101,32,111,102,32,97,32,115,108,111,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,113,117,101,114,121,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,115,108,111,116,32,116,121,112,101,32,40,39,99,111,108,111,114,39,44,32,39,103,114,97,100,105,101,110,116,39,44,32,39,116,101,120,116,39,44,32,39,115,99,97,108,97,114,39,44,32,39,118,101,99,116,111,114,39,44,32,39,112,111,115,105,116,105,111,110,39,44,32,39,105,109,97,103,101,39,41,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,84,121,112,101,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,121,112,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,84,121,112,101,40,115,108,111,116,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,116,121,112,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,121,112,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,99,117,114,114,101,110,116,32,118,97,108,117,101,32,111,102,32,97,32,115,108,111,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,113,117,101,114,121,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,112,97,114,115,101,100,32,115,108,111,116,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,83,116,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,115,108,111,116,83,116,114,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,74,83,79,78,46,112,97,114,115,101,40,115,108,111,116,83,116,114,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,97,108,108,32,115,108,111,116,115,32,97,115,32,97,110,32,111,98,106,101,99,116,32,119,105,116,104,32,115,108,111,116,32,73,68,115,32,97,115,32,107,101,121,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,79,98,106,101,99,116,32,99,111,110,116,97,105,110,105,110,103,32,97,108,108,32,115,108,111,116,115,44,32,111,114,32,101,109,112,116,121,32,111,98,106,101,99,116,32,105,102,32,110,111,116,32,108,111,97,100,101,100,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,99,111,110,115,116,32,115,108,111,116,115,32,61,32,100,111,116,76,111,116,116,105,101,46,103,101,116,83,108,111,116,115,40,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,123,125,59,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,74,83,79,78,46,112,97,114,115,101,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,115,83,116,114,40,41,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,125,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,99,111,108,111,114,32,115,108,111,116,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,99,111,108,111,114,32,91,114,44,32,103,44,32,98,44,32,97,93,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,114,101,100,32,99,111,108,111,114,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,67,111,108,111,114,83,108,111,116,40,39,109,121,67,111,108,111,114,39,44,32,91,49,44,32,48,44,32,48,44,32,49,93,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,99,111,108,111,114,32,40,114,101,100,32,116,111,32,98,108,117,101,41,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,67,111,108,111,114,83,108,111,116,40,39,109,121,67,111,108,111,114,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,91,49,44,32,48,44,32,48,44,32,49,93,32,92,125,44,32,92,123,32,116,58,32,54,48,44,32,115,58,32,91,48,44,32,48,44,32,49,44,32,49,93,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,67,111,108,111,114,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,104,105,115,46,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,117,108,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,115,99,97,108,97,114,32,115,108,111,116,32,118,97,108,117,101,32,40,115,105,110,103,108,101,32,110,117,109,98,101,114,32,108,105,107,101,32,114,111,116,97,116,105,111,110,44,32,111,112,97,99,105,116,121,41,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,110,117,109,98,101,114,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,114,111,116,97,116,105,111,110,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,83,99,97,108,97,114,83,108,111,116,40,39,114,111,116,97,116,105,111,110,39,44,32,52,53,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,114,111,116,97,116,105,111,110,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,83,99,97,108,97,114,83,108,111,116,40,39,114,111,116,97,116,105,111,110,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,48,32,92,125,44,32,92,123,32,116,58,32,54,48,44,32,115,58,32,51,54,48,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,99,97,108,97,114,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,121,112,101,111,102,32,118,97,108,117,101,32,33,61,61,32,34,110,117,109,98,101,114,34,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,117,108,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,118,101,99,116,111,114,32,115,108,111,116,32,118,97,108,117,101,32,40,50,68,32,111,114,32,51,68,32,112,111,105,110,116,32,102,111,114,32,112,111,115,105,116,105,111,110,44,32,115,99,97,108,101,44,32,101,116,99,46,41,10,32,32,32,32,32,42,32,72,97,110,100,108,101,115,32,98,111,116,104,32,34,118,101,99,116,111,114,34,32,97,110,100,32,34,112,111,115,105,116,105,111,110,34,32,115,108,111,116,32,116,121,112,101,115,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,118,101,99,116,111,114,32,91,120,44,32,121,93,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,115,99,97,108,101,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,86,101,99,116,111,114,83,108,111,116,40,39,115,99,97,108,101,39,44,32,91,49,53,48,44,32,49,53,48,93,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,112,111,115,105,116,105,111,110,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,86,101,99,116,111,114,83,108,111,116,40,39,112,111,115,105,116,105,111,110,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,91,48,44,32,48,93,32,92,125,44,32,92,123,32,116,58,32,54,48,44,32,115,58,32,91,49,48,48,44,32,50,48,48,93,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,86,101,99,116,111,114,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,104,105,115,46,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,117,108,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,103,114,97,100,105,101,110,116,32,115,108,111,116,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,103,114,97,100,105,101,110,116,32,91,111,102,102,115,101,116,44,32,114,44,32,103,44,32,98,44,32,46,46,46,93,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,114,101,100,32,116,111,32,98,108,117,101,32,103,114,97,100,105,101,110,116,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,71,114,97,100,105,101,110,116,83,108,111,116,40,39,109,121,71,114,97,100,105,101,110,116,39,44,32,91,48,44,32,49,44,32,48,44,32,48,44,32,49,44,32,48,44,32,48,44,32,49,93,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,103,114,97,100,105,101,110,116,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,71,114,97,100,105,101,110,116,83,108,111,116,40,39,109,121,71,114,97,100,105,101,110,116,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,91,48,44,32,49,44,32,48,44,32,48,44,32,49,44,32,48,44,32,48,44,32,49,93,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,71,114,97,100,105,101,110,116,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,104,105,115,46,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,116,101,120,116,32,115,108,111,116,32,118,97,108,117,101,32,40,97,108,119,97,121,115,32,115,116,97,116,105,99,32,45,32,116,101,120,116,32,100,111,99,117,109,101,110,116,115,32,100,111,110,39,116,32,115,117,112,112,111,114,116,32,97,110,105,109,97,116,105,111,110,41,10,32,32,32,32,32,42,32,83,117,112,112,111,114,116,115,32,112,97,114,116,105,97,108,32,117,112,100,97,116,101,115,32,45,32,111,110,108,121,32,112,114,111,118,105,100,101,100,32,112,114,111,112,101,114,116,105,101,115,32,119,105,108,108,32,98,101,32,99,104,97,110,103,101,100,44,32,111,116,104,101,114,115,32,105,110,104,101,114,105,116,32,102,114,111,109,32,101,120,105,115,116,105,110,103,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,101,120,116,32,100,111,99,117,109,101,110,116,32,112,114,111,112,101,114,116,105,101,115,32,40,112,97,114,116,105,97,108,32,97,108,108,111,119,101,100,41,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,101,116,32,97,108,108,32,112,114,111,112,101,114,116,105,101,115,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,101,120,116,83,108,111,116,40,39,116,105,116,108,101,39,44,32,92,123,32,116,58,32,39,72,101,108,108,111,32,87,111,114,108,100,39,44,32,115,58,32,50,52,44,32,102,99,58,32,91,48,44,32,48,44,32,48,44,32,49,93,32,92,125,41,59,10,32,32,32,32,32,42,32,47,47,32,80,97,114,116,105,97,108,32,117,112,100,97,116,101,32,45,32,111,110,108,121,32,99,104,97,110,103,101,32,116,101,120,116,44,32,107,101,101,112,32,101,120,105,115,116,105,110,103,32,102,111,110,116,32,115,105,122,101,44,32,99,111,108,111,114,44,32,101,116,99,46,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,101,120,116,83,108,111,116,40,39,116,105,116,108,101,39,44,32,92,123,32,116,58,32,39,78,101,119,32,84,101,120,116,39,32,92,125,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,101,120,116,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,120,105,115,116,105,110,103,86,97,108,117,101,32,61,32,74,83,79,78,46,112,97,114,115,101,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,41,41,59,10,32,32,32,32,32,32,108,101,116,32,109,101,114,103,101,100,84,101,120,116,68,111,99,32,61,32,118,97,108,117,101,59,10,32,32,32,32,32,32,105,102,32,40,101,120,105,115,116,105,110,103,86,97,108,117,101,32,38,38,32,34,107,34,32,105,110,32,101,120,105,115,116,105,110,103,86,97,108,117,101,32,38,38,32,65,114,114,97,121,46,105,115,65,114,114,97,121,40,101,120,105,115,116,105,110,103,86,97,108,117,101,91,34,107,34,93,41,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,107,101,121,102,114,97,109,101,48,32,61,32,101,120,105,115,116,105,110,103,86,97,108,117,101,91,34,107,34,93,91,48,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,34,115,34,32,105,110,32,107,101,121,102,114,97,109,101,48,32,38,38,32,116,121,112,101,111,102,32,107,101,121,102,114,97,109,101,48,91,34,115,34,93,32,61,61,61,32,34,111,98,106,101,99,116,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,109,101,114,103,101,100,84,101,120,116,68,111,99,32,61,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,46,46,46,107,101,121,102,114,97,109,101,48,91,34,115,34,93,44,10,32,32,32,32,32,32,32,32,32,32,32,32,46,46,46,118,97,108,117,101,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,10,32,32,32,32,32,32,32,32,97,58,32,48,44,10,32,32,32,32,32,32,32,32,107,58,32,91,123,32,116,58,32,48,44,32,115,58,32,109,101,114,103,101,100,84,101,120,116,68,111,99,32,125,93,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,115,101,116,32,97,32,115,108,111,116,32,116,111,32,105,116,115,32,111,114,105,103,105,110,97,108,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,114,101,115,101,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,101,116,83,108,111,116,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,101,116,83,108,111,116,40,115,108,111,116,73,100,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,108,101,97,114,32,97,32,115,108,111,116,39,115,32,99,117,115,116,111,109,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,99,108,101,97,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,99,108,101,97,114,83,108,111,116,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,108,101,97,114,83,108,111,116,40,115,108,111,116,73,100,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,115,101,116,32,97,108,108,32,115,108,111,116,115,32,116,111,32,116,104,101,105,114,32,111,114,105,103,105,110,97,108,32,118,97,108,117,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,101,116,83,108,111,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,101,116,83,108,111,116,115,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,108,101,97,114,32,97,108,108,32,115,108,111,116,32,99,117,115,116,111,109,32,118,97,108,117,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,99,108,101,97,114,83,108,111,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,108,101,97,114,83,108,111,116,115,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,101,110,100,114,101,103,105,111,110,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,85,112,100,97,116,101,115,32,116,104,101,32,108,97,121,111,117,116,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,102,111,114,32,112,111,115,105,116,105,111,110,105,110,103,32,97,110,100,32,115,99,97,108,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,104,111,119,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,102,105,116,115,32,97,110,100,32,97,108,105,103,110,115,32,119,105,116,104,105,110,32,116,104,101,32,99,97,110,118,97,115,32,119,105,116,104,111,117,116,32,114,101,113,117,105,114,105,110,103,32,97,32,114,101,108,111,97,100,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,97,121,111,117,116,32,45,32,78,101,119,32,108,97,121,111,117,116,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,119,105,116,104,32,102,105,116,32,109,111,100,101,32,97,110,100,32,97,108,105,103,110,109,101,110,116,32,118,97,108,117,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,76,97,121,111,117,116,40,108,97,121,111,117,116,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,40,108,97,121,111,117,116,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,97,32,99,117,115,116,111,109,32,118,105,101,119,112,111,114,116,32,114,101,103,105,111,110,32,102,111,114,32,114,101,110,100,101,114,105,110,103,32,97,32,112,111,114,116,105,111,110,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,68,101,102,105,110,101,115,32,97,32,114,101,99,116,97,110,103,117,108,97,114,32,97,114,101,97,32,116,111,32,114,101,110,100,101,114,44,32,117,115,101,102,117,108,32,102,111,114,32,105,109,112,108,101,109,101,110,116,105,110,103,32,97,110,105,109,97,116,105,111,110,32,99,108,105,112,112,105,110,103,32,111,114,32,112,97,110,110,105,110,103,32,101,102,102,101,99,116,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,88,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,39,115,32,116,111,112,45,108,101,102,116,32,99,111,114,110,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,89,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,39,115,32,116,111,112,45,108,101,102,116,32,99,111,114,110,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,119,105,100,116,104,32,45,32,87,105,100,116,104,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,32,105,110,32,112,105,120,101,108,115,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,104,101,105,103,104,116,32,45,32,72,101,105,103,104,116,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,32,105,110,32,112,105,120,101,108,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,118,105,101,119,112,111,114,116,32,119,97,115,32,115,101,116,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,86,105,101,119,112,111,114,116,40,120,44,32,121,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,86,105,101,119,112,111,114,116,40,120,44,32,121,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,111,110,102,105,103,117,114,101,115,32,116,104,101,32,85,82,76,32,102,111,114,32,108,111,97,100,105,110,103,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,32,67,97,108,108,32,116,104,105,115,32,98,101,102,111,114,101,32,99,114,101,97,116,105,110,103,32,97,110,121,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,115,32,116,111,32,108,111,97,100,32,116,104,101,32,87,65,83,77,32,102,114,111,109,32,97,32,99,117,115,116,111,109,32,67,68,78,32,111,114,32,108,111,99,97,108,32,112,97,116,104,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,117,114,108,32,45,32,85,82,76,32,112,111,105,110,116,105,110,103,32,116,111,32,116,104,101,32,100,111,116,108,111,116,116,105,101,32,87,65,83,77,32,102,105,108,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,115,101,116,87,97,115,109,85,114,108,40,117,114,108,41,32,123,10,32,32,32,32,32,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,46,115,101,116,87,97,115,109,85,114,108,40,117,114,108,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,82,101,103,105,115,116,101,114,32,97,32,99,117,115,116,111,109,32,102,111,110,116,32,102,111,114,32,117,115,101,32,105,110,32,97,110,105,109,97,116,105,111,110,115,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,111,110,116,78,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,102,111,110,116,32,116,111,32,114,101,103,105,115,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,111,110,116,83,111,117,114,99,101,32,45,32,69,105,116,104,101,114,32,97,32,85,82,76,32,115,116,114,105,110,103,32,116,111,32,102,101,116,99,104,32,116,104,101,32,102,111,110,116,44,32,111,114,32,65,114,114,97,121,66,117,102,102,101,114,47,85,105,110,116,56,65,114,114,97,121,32,111,102,32,102,111,110,116,32,100,97,116,97,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,80,114,111,109,105,115,101,60,98,111,111,108,101,97,110,62,32,45,32,116,114,117,101,32,105,102,32,114,101,103,105,115,116,114,97,116,105,111,110,32,115,117,99,99,101,101,100,101,100,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,114,101,103,105,115,116,101,114,70,111,110,116,40,102,111,110,116,78,97,109,101,44,32,102,111,110,116,83,111,117,114,99,101,41,32,123,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,117,108,101,32,61,32,97,119,97,105,116,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,46,108,111,97,100,40,41,59,10,32,32,32,32,32,32,32,32,108,101,116,32,102,111,110,116,68,97,116,97,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,102,111,110,116,83,111,117,114,99,101,32,61,61,61,32,34,115,116,114,105,110,103,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,97,119,97,105,116,32,102,101,116,99,104,40,102,111,110,116,83,111,117,114,99,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,114,101,115,112,111,110,115,101,46,111,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,102,101,116,99,104,32,102,111,110,116,32,102,114,111,109,32,85,82,76,58,32,36,123,102,111,110,116,83,111,117,114,99,101,125,46,32,83,116,97,116,117,115,58,32,36,123,114,101,115,112,111,110,115,101,46,115,116,97,116,117,115,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,97,119,97,105,116,32,114,101,115,112,111,110,115,101,46,97,114,114,97,121,66,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,111,110,116,83,111,117,114,99,101,32,105,110,115,116,97,110,99,101,111,102,32,85,105,110,116,56,65,114,114,97,121,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,116,101,109,112,66,117,102,102,101,114,32,61,32,102,111,110,116,83,111,117,114,99,101,46,98,117,102,102,101,114,46,115,108,105,99,101,40,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,79,102,102,115,101,116,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,79,102,102,115,101,116,32,43,32,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,76,101,110,103,116,104,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,101,109,112,66,117,102,102,101,114,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,66,117,102,102,101,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,116,101,109,112,66,117,102,102,101,114,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,110,101,119,32,65,114,114,97,121,66,117,102,102,101,114,40,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,76,101,110,103,116,104,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,102,111,110,116,68,97,116,97,41,46,115,101,116,40,102,111,110,116,83,111,117,114,99,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,102,111,110,116,83,111,117,114,99,101,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,115,117,99,99,101,115,115,32,61,32,109,111,100,117,108,101,46,114,101,103,105,115,116,101,114,70,111,110,116,40,102,111,110,116,78,97,109,101,44,32,116,111,86,101,99,116,111,114,67,104,97,114,40,109,111,100,117,108,101,44,32,102,111,110,116,68,97,116,97,41,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,115,117,99,99,101,115,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,114,101,103,105,115,116,101,114,32,102,111,110,116,32,34,36,123,102,111,110,116,78,97,109,101,125,34,46,32,70,111,110,116,32,100,97,116,97,32,109,97,121,32,98,101,32,105,110,118,97,108,105,100,46,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,117,99,99,101,115,115,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,69,114,114,111,114,32,114,101,103,105,115,116,101,114,105,110,103,32,102,111,110,116,32,34,36,123,102,111,110,116,78,97,109,101,125,34,58,96,44,32,101,114,114,111,114,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,65,110,105,109,97,116,101,115,32,115,109,111,111,116,104,108,121,32,116,111,32,97,32,115,112,101,99,105,102,105,99,32,102,114,97,109,101,32,111,118,101,114,32,97,32,100,117,114,97,116,105,111,110,32,117,115,105,110,103,32,108,105,110,101,97,114,32,101,97,115,105,110,103,46,10,32,32,32,32,32,42,32,67,114,101,97,116,101,115,32,97,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,116,114,97,110,115,105,116,105,111,110,105,110,103,32,102,114,111,109,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,32,116,111,32,116,104,101,32,116,97,114,103,101,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,114,97,109,101,32,45,32,84,97,114,103,101,116,32,102,114,97,109,101,32,110,117,109,98,101,114,32,116,111,32,116,119,101,101,110,32,116,111,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,100,117,114,97,116,105,111,110,32,45,32,68,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,105,110,32,115,101,99,111,110,100,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,119,101,101,110,32,115,116,97,114,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,116,119,101,101,110,40,102,114,97,109,101,44,32,100,117,114,97,116,105,111,110,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,32,61,32,91,48,44,32,48,44,32,49,44,32,49,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,86,101,99,116,111,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,118,97,108,32,111,102,32,101,97,115,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,101,97,115,105,110,103,86,101,99,116,111,114,46,112,117,115,104,95,98,97,99,107,40,118,97,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,116,119,101,101,110,40,102,114,97,109,101,44,32,100,117,114,97,116,105,111,110,44,32,101,97,115,105,110,103,86,101,99,116,111,114,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,116,97,114,116,32,97,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,116,111,32,97,32,115,112,101,99,105,102,105,99,32,109,97,114,107,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,109,97,114,107,101,114,32,45,32,84,104,101,32,109,97,114,107,101,114,32,110,97,109,101,32,116,111,32,116,119,101,101,110,32,116,111,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,100,117,114,97,116,105,111,110,32,45,32,68,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,105,110,32,115,101,99,111,110,100,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,119,101,101,110,32,119,97,115,32,115,116,97,114,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,116,119,101,101,110,84,111,77,97,114,107,101,114,40,109,97,114,107,101,114,44,32,100,117,114,97,116,105,111,110,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,32,61,32,91,48,44,32,48,44,32,49,44,32,49,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,86,101,99,116,111,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,118,97,108,32,111,102,32,101,97,115,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,101,97,115,105,110,103,86,101,99,116,111,114,46,112,117,115,104,95,98,97,99,107,40,118,97,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,116,119,101,101,110,84,111,77,97,114,107,101,114,40,109,97,114,107,101,114,44,32,100,117,114,97,116,105,111,110,44,32,101,97,115,105,110,103,86,101,99,116,111,114,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,111,114,105,103,105,110,97,108,32,100,105,109,101,110,115,105,111,110,115,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,97,115,32,100,101,102,105,110,101,100,32,105,110,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,119,105,100,116,104,32,97,110,100,32,104,101,105,103,104,116,32,105,110,32,112,105,120,101,108,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,39,115,32,105,110,116,114,105,110,115,105,99,32,115,105,122,101,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,79,98,106,101,99,116,32,119,105,116,104,32,119,105,100,116,104,32,97,110,100,32,104,101,105,103,104,116,32,112,114,111,112,101,114,116,105,101,115,32,105,110,32,112,105,120,101,108,115,10,32,32,32,32,32,42,47,10,32,32,32,32,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,46,103,101,116,40,48,41,32,63,63,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,46,103,101,116,40,49,41,32,63,63,32,48,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,119,105,100,116,104,44,10,32,32,32,32,32,32,32,32,104,101,105,103,104,116,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,79,114,105,101,110,116,101,100,32,66,111,117,110,100,105,110,103,32,66,111,120,32,40,79,66,66,41,32,112,111,105,110,116,115,32,111,102,32,97,32,108,97,121,101,114,32,98,121,32,105,116,115,32,110,97,109,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,56,32,110,117,109,98,101,114,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,52,32,99,111,114,110,101,114,32,112,111,105,110,116,115,32,40,120,44,121,41,32,105,110,32,99,108,111,99,107,119,105,115,101,32,111,114,100,101,114,32,102,114,111,109,32,116,111,112,45,108,101,102,116,58,32,91,120,48,44,32,121,48,44,32,120,49,44,32,121,49,44,32,120,50,44,32,121,50,44,32,120,51,44,32,121,51,93,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,97,121,101,114,78,97,109,101,32,45,32,78,97,109,101,32,111,102,32,116,104,101,32,108,97,121,101,114,32,116,111,32,103,101,116,32,98,111,117,110,100,115,32,102,111,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,56,32,110,117,109,98,101,114,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,98,111,117,110,100,105,110,103,32,98,111,120,32,99,111,114,110,101,114,115,44,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,108,97,121,101,114,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,76,97,121,101,114,66,111,117,110,100,105,110,103,66,111,120,40,108,97,121,101,114,78,97,109,101,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,98,111,117,110,100,115,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,103,101,116,76,97,121,101,114,66,111,117,110,100,115,40,108,97,121,101,114,78,97,109,101,41,59,10,32,32,32,32,32,32,105,102,32,40,33,98,111,117,110,100,115,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,105,102,32,40,98,111,117,110,100,115,46,115,105,122,101,40,41,32,33,61,61,32,56,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,105,110,116,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,56,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,112,111,105,110,116,115,46,112,117,115,104,40,98,111,117,110,100,115,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,112,111,105,110,116,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,111,110,118,101,114,116,115,32,116,104,101,109,101,32,100,97,116,97,32,105,110,116,111,32,76,111,116,116,105,101,32,115,108,111,116,32,102,111,114,109,97,116,32,102,111,114,32,100,121,110,97,109,105,99,32,99,111,110,116,101,110,116,32,114,101,112,108,97,99,101,109,101,110,116,46,10,32,32,32,32,32,42,32,85,116,105,108,105,116,121,32,102,117,110,99,116,105,111,110,32,102,111,114,32,116,114,97,110,115,102,111,114,109,105,110,103,32,116,104,101,109,101,32,100,101,102,105,110,105,116,105,111,110,115,32,105,110,116,111,32,115,108,111,116,45,99,111,109,112,97,116,105,98,108,101,32,100,97,116,97,32,115,116,114,117,99,116,117,114,101,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,104,101,109,101,32,45,32,84,104,101,109,101,32,100,97,116,97,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,115,32,45,32,83,108,111,116,32,100,101,102,105,110,105,116,105,111,110,115,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,97,110,115,102,111,114,109,101,100,32,115,108,111,116,115,32,100,97,116,97,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,116,114,97,110,115,102,111,114,109,84,104,101,109,101,84,111,76,111,116,116,105,101,83,108,111,116,115,40,116,104,101,109,101,44,32,115,108,111,116,115,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,116,114,97,110,115,102,111,114,109,84,104,101,109,101,84,111,76,111,116,116,105,101,83,108,111,116,115,40,116,104,101,109,101,44,32,115,108,111,116,115,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,114,101,103,105,111,110,32,83,116,97,116,101,32,77,97,99,104,105,110,101,10,32,32,32,32,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,67,97,108,108,98,97,99,107,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,97,114,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,34,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,111,112,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,34,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,67,117,115,116,111,109,69,118,101,110,116,40,40,101,118,101,110,116,78,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,34,44,32,101,118,101,110,116,78,97,109,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,40,40,105,110,112,117,116,78,97,109,101,44,32,111,108,100,86,97,108,117,101,44,32,110,101,119,86,97,108,117,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,32,105,110,112,117,116,78,97,109,101,44,32,110,101,119,86,97,108,117,101,44,32,111,108,100,86,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,40,40,105,110,112,117,116,78,97,109,101,44,32,111,108,100,86,97,108,117,101,44,32,110,101,119,86,97,108,117,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,32,105,110,112,117,116,78,97,109,101,44,32,110,101,119,86,97,108,117,101,44,32,111,108,100,86,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,40,40,105,110,112,117,116,78,97,109,101,44,32,111,108,100,86,97,108,117,101,44,32,110,101,119,86,97,108,117,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,32,105,110,112,117,116,78,97,109,101,44,32,110,101,119,86,97,108,117,101,44,32,111,108,100,86,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,73,110,112,117,116,70,105,114,101,100,40,40,105,110,112,117,116,78,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,34,44,32,105,110,112,117,116,78,97,109,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,84,114,97,110,115,105,116,105,111,110,40,40,102,114,111,109,83,116,97,116,101,44,32,116,111,83,116,97,116,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,34,44,32,102,114,111,109,83,116,97,116,101,44,32,116,111,83,116,97,116,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,97,116,101,69,110,116,101,114,101,100,40,40,115,116,97,116,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,34,44,32,115,116,97,116,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,97,116,101,69,120,105,116,40,40,115,116,97,116,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,34,44,32,115,116,97,116,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,69,114,114,111,114,40,40,101,114,114,111,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,34,44,32,101,114,114,111,114,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,109,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,67,97,108,108,98,97,99,107,83,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,115,109,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,46,115,101,116,79,110,77,101,115,115,97,103,101,40,40,109,101,115,115,97,103,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,109,101,115,115,97,103,101,46,115,116,97,114,116,115,87,105,116,104,40,34,79,112,101,110,85,114,108,58,32,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,104,97,110,100,108,101,79,112,101,110,85,114,108,40,109,101,115,115,97,103,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,34,44,32,109,101,115,115,97,103,101,32,125,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,117,98,115,99,114,105,98,101,40,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,83,117,98,115,99,114,105,98,101,40,115,109,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,76,111,97,100,115,32,97,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,98,121,32,105,116,115,32,73,68,32,102,114,111,109,32,116,104,101,32,100,111,116,76,111,116,116,105,101,32,109,97,110,105,102,101,115,116,46,10,32,32,32,32,32,42,32,83,116,97,116,101,32,109,97,99,104,105,110,101,115,32,101,110,97,98,108,101,32,105,110,116,101,114,97,99,116,105,118,101,44,32,101,118,101,110,116,45,100,114,105,118,101,110,32,97,110,105,109,97,116,105,111,110,32,98,101,104,97,118,105,111,114,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,45,32,84,104,101,32,73,68,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,116,111,32,108,111,97,100,32,40,109,117,115,116,32,101,120,105,115,116,32,105,110,32,109,97,110,105,102,101,115,116,41,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,76,111,97,100,32,97,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,102,114,111,109,32,100,97,116,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,32,45,32,84,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,100,97,116,97,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,41,59,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,99,111,110,102,105,103,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,84,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,99,111,110,102,105,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,67,111,110,102,105,103,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,32,61,32,99,111,110,102,105,103,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,116,97,114,116,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,115,116,97,114,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,32,124,124,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,114,101,79,112,101,110,85,114,108,32,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,99,114,101,97,116,101,68,101,102,97,117,108,116,79,112,101,110,85,114,108,80,111,108,105,99,121,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,111,112,101,110,85,114,108,80,111,108,105,99,121,32,61,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,46,111,112,101,110,85,114,108,80,111,108,105,99,121,59,10,32,32,32,32,32,32,32,32,105,102,32,40,111,112,101,110,85,114,108,80,111,108,105,99,121,32,38,38,32,116,121,112,101,111,102,32,111,112,101,110,85,114,108,80,111,108,105,99,121,46,114,101,113,117,105,114,101,85,115,101,114,73,110,116,101,114,97,99,116,105,111,110,32,61,61,61,32,34,98,111,111,108,101,97,110,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,114,101,79,112,101,110,85,114,108,46,114,101,113,117,105,114,101,85,115,101,114,73,110,116,101,114,97,99,116,105,111,110,32,61,32,111,112,101,110,85,114,108,80,111,108,105,99,121,46,114,101,113,117,105,114,101,85,115,101,114,73,110,116,101,114,97,99,116,105,111,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,111,112,101,110,85,114,108,80,111,108,105,99,121,63,46,119,104,105,116,101,108,105,115,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,114,101,79,112,101,110,85,114,108,46,119,104,105,116,101,108,105,115,116,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,83,116,114,105,110,103,40,41,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,117,114,108,32,111,102,32,111,112,101,110,85,114,108,80,111,108,105,99,121,46,119,104,105,116,101,108,105,115,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,114,101,79,112,101,110,85,114,108,46,119,104,105,116,101,108,105,115,116,46,112,117,115,104,95,98,97,99,107,40,117,114,108,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,114,116,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,99,111,114,101,79,112,101,110,85,114,108,41,59,10,32,32,32,32,32,32,105,102,32,40,115,116,97,114,116,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,97,114,116,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,116,111,112,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,115,116,111,112,112,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,111,112,112,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,59,10,32,32,32,32,32,32,105,102,32,40,115,116,111,112,112,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,111,112,112,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,117,115,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,117,115,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,97,116,117,115,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,117,115,40,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,67,117,114,114,101,110,116,83,116,97,116,101,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,67,117,114,114,101,110,116,83,116,97,116,101,40,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,97,99,116,105,118,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,73,68,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,97,99,116,105,118,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,73,68,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,65,99,116,105,118,101,73,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,99,116,105,118,101,83,116,97,116,101,77,97,99,104,105,110,101,73,100,40,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,79,118,101,114,114,105,100,101,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,32,45,32,84,104,101,32,115,116,97,116,101,32,116,111,32,111,118,101,114,114,105,100,101,32,116,111,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,105,109,109,101,100,105,97,116,101,32,45,32,87,104,101,116,104,101,114,32,116,111,32,105,109,109,101,100,105,97,116,101,108,121,32,116,114,97,110,115,105,116,105,111,110,32,116,111,32,116,104,101,32,115,116,97,116,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,111,118,101,114,114,105,100,101,32,119,97,115,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,83,116,97,116,101,40,115,116,97,116,101,44,32,105,109,109,101,100,105,97,116,101,32,61,32,102,97,108,115,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,67,117,114,114,101,110,116,83,116,97,116,101,40,115,116,97,116,101,44,32,105,109,109,101,100,105,97,116,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,115,112,101,99,105,102,105,99,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,98,121,32,73,68,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,45,32,84,104,101,32,73,68,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,116,111,32,103,101,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,100,97,116,97,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,103,101,116,83,116,97,116,101,77,97,99,104,105,110,101,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,108,105,115,116,32,111,102,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,108,105,115,116,101,110,101,114,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,108,105,115,116,101,110,101,114,32,110,97,109,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,70,114,97,109,101,119,111,114,107,83,101,116,117,112,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,108,105,115,116,101,110,101,114,115,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,46,112,117,115,104,40,108,105,115,116,101,110,101,114,115,86,101,99,116,111,114,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,108,105,115,116,101,110,101,114,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,97,32,98,111,111,108,101,97,110,32,105,110,112,117,116,32,118,97,108,117,101,32,102,111,114,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,98,111,111,108,101,97,110,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,104,101,32,98,111,111,108,101,97,110,32,118,97,108,117,101,32,116,111,32,115,101,116,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,97,32,110,117,109,101,114,105,99,32,105,110,112,117,116,32,118,97,108,117,101,32,102,111,114,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,110,117,109,101,114,105,99,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,104,101,32,110,117,109,101,114,105,99,32,118,97,108,117,101,32,116,111,32,115,101,116,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,97,32,115,116,114,105,110,103,32,105,110,112,117,116,32,118,97,108,117,101,32,102,111,114,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,115,116,114,105,110,103,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,104,101,32,115,116,114,105,110,103,32,118,97,108,117,101,32,116,111,32,115,101,116,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,98,111,111,108,101,97,110,32,105,110,112,117,116,32,118,97,108,117,101,32,102,114,111,109,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,98,111,111,108,101,97,110,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,98,111,111,108,101,97,110,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,110,117,109,101,114,105,99,32,105,110,112,117,116,32,118,97,108,117,101,32,102,114,111,109,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,110,117,109,101,114,105,99,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,110,117,109,101,114,105,99,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,115,116,114,105,110,103,32,105,110,112,117,116,32,118,97,108,117,101,32,102,114,111,109,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,115,116,114,105,110,103,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,115,116,114,105,110,103,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,108,108,32,116,104,101,32,105,110,112,117,116,115,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,109,97,99,104,105,110,101,46,32,82,101,116,117,114,110,115,32,116,104,101,32,107,101,121,32,110,97,109,101,44,32,102,111,108,108,111,119,101,100,32,98,121,32,105,116,39,115,32,116,121,112,101,32,97,115,32,97,32,115,116,114,105,110,103,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,110,32,97,114,114,97,121,32,111,102,32,105,110,112,117,116,32,107,101,121,115,32,102,111,108,108,111,119,101,100,32,98,121,32,105,116,39,115,32,116,121,112,101,32,97,116,32,110,43,49,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,112,117,116,115,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,112,117,116,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,105,110,112,117,116,115,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,105,110,112,117,116,115,46,112,117,115,104,40,105,110,112,117,116,115,86,101,99,116,111,114,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,112,117,116,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,70,105,114,101,32,97,110,32,101,118,101,110,116,32,105,110,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,101,118,101,110,116,32,116,111,32,102,105,114,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,99,108,105,99,107,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,99,108,105,99,107,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,99,108,105,99,107,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,117,112,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,100,111,119,110,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,109,111,118,101,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,101,110,116,101,114,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,101,120,105,116,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,95,111,110,67,108,105,99,107,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,85,112,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,68,111,119,110,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,77,111,118,101,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,69,110,116,101,114,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,76,101,97,118,101,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,33,61,61,32,110,117,108,108,32,38,38,32,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,67,108,105,99,107,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,32,61,32,116,104,105,115,46,95,111,110,67,108,105,99,107,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,99,108,105,99,107,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,85,112,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,85,112,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,117,112,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,68,111,119,110,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,68,111,119,110,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,100,111,119,110,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,77,111,118,101,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,77,111,118,101,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,109,111,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,69,110,116,101,114,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,69,110,116,101,114,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,101,110,116,101,114,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,69,120,105,116,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,76,101,97,118,101,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,108,101,97,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,99,108,105,99,107,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,117,112,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,100,111,119,110,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,109,111,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,101,110,116,101,114,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,108,101,97,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,101,110,100,114,101,103,105,111,110,10,32,32,125,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,95,68,111,116,76,111,116,116,105,101,44,32,34,95,119,97,115,109,77,111,100,117,108,101,34,44,32,110,117,108,108,41,59,10,32,32,118,97,114,32,68,111,116,76,111,116,116,105,101,32,61,32,95,68,111,116,76,111,116,116,105,101,59,10,10,32,32,47,47,32,115,114,99,47,119,111,114,107,101,114,47,100,111,116,108,111,116,116,105,101,46,119,111,114,107,101,114,46,116,115,10,32,32,118,97,114,32,105,110,115,116,97,110,99,101,115,77,97,112,32,61,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,59,10,32,32,118,97,114,32,101,118,101,110,116,72,97,110,100,108,101,114,77,97,112,32,61,32,123,10,32,32,32,32,114,101,97,100,121,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,82,101,97,100,121,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,99,111,109,112,108,101,116,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,67,111,109,112,108,101,116,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,76,111,97,100,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,108,111,97,100,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,69,114,114,111,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,69,114,114,111,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,76,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,108,111,97,100,69,114,114,111,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,110,100,101,114,69,114,114,111,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,69,114,114,111,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,82,101,110,100,101,114,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,114,101,110,100,101,114,69,114,114,111,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,111,112,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,111,112,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,76,111,111,112,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,108,111,111,112,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,108,97,121,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,108,97,121,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,80,108,97,121,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,112,108,97,121,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,97,117,115,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,97,117,115,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,80,97,117,115,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,112,97,117,115,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,111,112,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,111,112,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,111,112,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,111,112,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,102,114,97,109,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,70,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,102,114,97,109,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,110,100,101,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,82,101,110,100,101,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,114,101,110,100,101,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,102,114,101,101,122,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,101,101,122,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,70,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,102,114,101,101,122,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,117,110,102,114,101,101,122,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,117,110,102,114,101,101,122,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,85,110,102,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,117,110,102,114,101,101,122,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,100,101,115,116,114,111,121,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,100,101,115,116,114,111,121,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,68,101,115,116,114,111,121,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,100,101,115,116,114,111,121,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,47,47,32,101,115,108,105,110,116,45,100,105,115,97,98,108,101,45,110,101,120,116,45,108,105,110,101,32,110,111,45,115,101,99,114,101,116,115,47,110,111,45,115,101,99,114,101,116,115,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,99,111,109,109,97,110,100,115,32,61,32,123,10,32,32,32,32,115,101,116,84,114,97,110,115,102,111,114,109,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,84,114,97,110,115,102,111,114,109,40,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,116,114,97,110,115,102,111,114,109,41,59,10,32,32,32,32,125,44,10,32,32,32,32,103,101,116,84,114,97,110,115,102,111,114,109,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,103,101,116,84,114,97,110,115,102,111,114,109,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,103,101,116,68,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,83,116,97,116,101,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,32,61,32,123,10,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,58,32,105,110,115,116,97,110,99,101,46,108,111,111,112,67,111,117,110,116,44,10,32,32,32,32,32,32,32,32,105,115,76,111,97,100,101,100,58,32,105,110,115,116,97,110,99,101,46,105,115,76,111,97,100,101,100,44,10,32,32,32,32,32,32,32,32,105,115,80,97,117,115,101,100,58,32,105,110,115,116,97,110,99,101,46,105,115,80,97,117,115,101,100,44,10,32,32,32,32,32,32,32,32,105,115,80,108,97,121,105,110,103,58,32,105,110,115,116,97,110,99,101,46,105,115,80,108,97,121,105,110,103,44,10,32,32,32,32,32,32,32,32,105,115,83,116,111,112,112,101,100,58,32,105,110,115,116,97,110,99,101,46,105,115,83,116,111,112,112,101,100,44,10,32,32,32,32,32,32,32,32,105,115,70,114,111,122,101,110,58,32,105,110,115,116,97,110,99,101,46,105,115,70,114,111,122,101,110,44,10,32,32,32,32,32,32,32,32,108,111,111,112,58,32,105,110,115,116,97,110,99,101,46,108,111,111,112,44,10,32,32,32,32,32,32,32,32,109,111,100,101,58,32,105,110,115,116,97,110,99,101,46,109,111,100,101,44,10,32,32,32,32,32,32,32,32,115,112,101,101,100,58,32,105,110,115,116,97,110,99,101,46,115,112,101,101,100,44,10,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,58,32,105,110,115,116,97,110,99,101,46,99,117,114,114,101,110,116,70,114,97,109,101,44,10,32,32,32,32,32,32,32,32,116,111,116,97,108,70,114,97,109,101,115,58,32,105,110,115,116,97,110,99,101,46,116,111,116,97,108,70,114,97,109,101,115,44,10,32,32,32,32,32,32,32,32,100,117,114,97,116,105,111,110,58,32,105,110,115,116,97,110,99,101,46,100,117,114,97,116,105,111,110,44,10,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,105,110,115,116,97,110,99,101,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,44,10,32,32,32,32,32,32,32,32,114,101,110,100,101,114,67,111,110,102,105,103,58,32,105,110,115,116,97,110,99,101,46,114,101,110,100,101,114,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,58,32,105,110,115,116,97,110,99,101,46,109,97,114,107,101,114,44,10,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,105,110,115,116,97,110,99,101,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,115,58,32,105,110,115,116,97,110,99,101,46,109,97,114,107,101,114,115,40,41,44,10,32,32,32,32,32,32,32,32,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,58,32,105,110,115,116,97,110,99,101,46,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,44,10,32,32,32,32,32,32,32,32,97,99,116,105,118,101,84,104,101,109,101,73,100,58,32,105,110,115,116,97,110,99,101,46,97,99,116,105,118,101,84,104,101,109,101,73,100,44,10,32,32,32,32,32,32,32,32,97,117,116,111,112,108,97,121,58,32,105,110,115,116,97,110,99,101,46,97,117,116,111,112,108,97,121,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,105,110,115,116,97,110,99,101,46,115,101,103,109,101,110,116,44,10,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,105,110,115,116,97,110,99,101,46,108,97,121,111,117,116,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,58,32,105,110,115,116,97,110,99,101,46,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,44,10,32,32,32,32,32,32,32,32,105,115,82,101,97,100,121,58,32,105,110,115,116,97,110,99,101,46,105,115,82,101,97,100,121,44,10,32,32,32,32,32,32,32,32,109,97,110,105,102,101,115,116,58,32,105,110,115,116,97,110,99,101,46,109,97,110,105,102,101,115,116,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,115,116,97,116,101,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,76,97,121,111,117,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,97,121,111,117,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,108,97,121,111,117,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,76,97,121,111,117,116,40,108,97,121,111,117,116,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,77,97,99,104,105,110,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,118,97,108,117,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,118,97,108,117,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,118,97,108,117,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,118,97,108,117,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,67,111,110,102,105,103,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,99,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,67,111,110,102,105,103,40,99,111,110,102,105,103,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,118,97,108,117,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,118,97,108,117,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,97,116,117,115,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,97,116,117,115,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,67,117,114,114,101,110,116,83,116,97,116,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,67,117,114,114,101,110,116,83,116,97,116,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,65,99,116,105,118,101,73,100,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,65,99,116,105,118,101,73,100,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,83,116,97,116,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,109,109,101,100,105,97,116,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,109,109,101,100,105,97,116,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,83,116,97,116,101,40,115,116,97,116,101,44,32,105,109,109,101,100,105,97,116,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,77,97,99,104,105,110,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,99,114,101,97,116,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,99,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,115,77,97,112,46,104,97,115,40,105,110,115,116,97,110,99,101,73,100,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,110,101,119,32,68,111,116,76,111,116,116,105,101,40,99,111,110,102,105,103,41,59,10,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,32,104,101,105,103,104,116,59,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,119,105,100,116,104,32,61,32,119,105,100,116,104,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,115,77,97,112,46,115,101,116,40,105,110,115,116,97,110,99,101,73,100,44,32,105,110,115,116,97,110,99,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,118,101,110,116,115,32,61,32,91,10,32,32,32,32,32,32,32,32,34,99,111,109,112,108,101,116,101,34,44,10,32,32,32,32,32,32,32,32,34,102,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,34,108,111,97,100,34,44,10,32,32,32,32,32,32,32,32,34,108,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,34,114,101,110,100,101,114,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,34,108,111,111,112,34,44,10,32,32,32,32,32,32,32,32,34,112,97,117,115,101,34,44,10,32,32,32,32,32,32,32,32,34,112,108,97,121,34,44,10,32,32,32,32,32,32,32,32,34,115,116,111,112,34,44,10,32,32,32,32,32,32,32,32,34,100,101,115,116,114,111,121,34,44,10,32,32,32,32,32,32,32,32,34,102,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,34,117,110,102,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,34,114,101,110,100,101,114,34,44,10,32,32,32,32,32,32,32,32,34,114,101,97,100,121,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,34,10,32,32,32,32,32,32,93,59,10,32,32,32,32,32,32,101,118,101,110,116,115,46,102,111,114,69,97,99,104,40,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,101,118,101,110,116,44,32,101,118,101,110,116,72,97,110,100,108,101,114,77,97,112,91,101,118,101,110,116,93,40,105,110,115,116,97,110,99,101,73,100,41,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,44,10,32,32,32,32,100,101,115,116,114,111,121,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,100,101,115,116,114,111,121,40,41,59,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,115,77,97,112,46,100,101,108,101,116,101,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,102,114,101,101,122,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,99,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,108,111,97,100,40,99,111,110,102,105,103,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,65,110,105,109,97,116,105,111,110,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,97,110,105,109,97,116,105,111,110,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,97,110,105,109,97,116,105,111,110,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,40,97,110,105,109,97,116,105,111,110,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,84,104,101,109,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,116,104,101,109,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,84,104,101,109,101,40,116,104,101,109,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,84,104,101,109,101,68,97,116,97,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,68,97,116,97,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,116,104,101,109,101,68,97,116,97,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,116,104,101,109,101,68,97,116,97,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,97,117,115,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,112,97,117,115,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,108,97,121,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,112,108,97,121,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,103,105,115,116,101,114,70,111,110,116,58,32,97,115,121,110,99,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,123,32,102,111,110,116,78,97,109,101,44,32,102,111,110,116,83,111,117,114,99,101,32,125,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,68,111,116,76,111,116,116,105,101,46,114,101,103,105,115,116,101,114,70,111,110,116,40,102,111,110,116,78,97,109,101,44,32,102,111,110,116,83,111,117,114,99,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,115,105,122,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,32,104,101,105,103,104,116,59,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,119,105,100,116,104,32,61,32,119,105,100,116,104,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,70,114,97,109,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,102,114,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,70,114,97,109,101,40,102,114,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,77,111,100,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,109,111,100,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,77,111,100,101,40,109,111,100,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,82,101,110,100,101,114,67,111,110,102,105,103,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,67,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,114,101,110,100,101,114,67,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,82,101,110,100,101,114,67,111,110,102,105,103,40,114,101,110,100,101,114,67,111,110,102,105,103,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,83,101,103,109,101,110,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,101,103,109,101,110,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,101,103,109,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,83,101,103,109,101,110,116,40,115,101,103,109,101,110,116,91,48,93,44,32,115,101,103,109,101,110,116,91,49,93,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,83,112,101,101,100,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,112,101,101,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,112,101,101,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,83,112,101,101,100,40,115,112,101,101,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,85,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,85,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,40,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,87,97,115,109,85,114,108,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,68,111,116,76,111,116,116,105,101,46,115,101,116,87,97,115,109,85,114,108,40,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,117,114,108,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,111,112,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,116,111,112,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,117,110,102,114,101,101,122,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,117,110,102,114,101,101,122,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,116,119,101,101,110,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,102,114,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,100,117,114,97,116,105,111,110,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,100,117,114,97,116,105,111,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,116,119,101,101,110,40,102,114,97,109,101,44,32,100,117,114,97,116,105,111,110,41,59,10,32,32,32,32,125,44,10,32,32,32,32,116,119,101,101,110,84,111,77,97,114,107,101,114,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,109,97,114,107,101,114,59,10,32,32,32,32,32,32,99,111,110,115,116,32,100,117,114,97,116,105,111,110,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,100,117,114,97,116,105,111,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,116,119,101,101,110,84,111,77,97,114,107,101,114,40,109,97,114,107,101,114,44,32,100,117,114,97,116,105,111,110,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,86,105,101,119,112,111,114,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,86,105,101,119,112,111,114,116,40,120,44,32,121,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,125,44,10,32,32,32,32,97,110,105,109,97,116,105,111,110,83,105,122,101,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,123,32,104,101,105,103,104,116,44,32,119,105,100,116,104,32,125,32,61,32,105,110,115,116,97,110,99,101,46,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,104,101,105,103,104,116,44,10,32,32,32,32,32,32,32,32,119,105,100,116,104,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,77,97,114,107,101,114,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,109,97,114,107,101,114,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,77,97,114,107,101,114,40,109,97,114,107,101,114,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,76,111,111,112,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,111,112,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,108,111,111,112,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,76,111,111,112,40,108,111,111,112,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,76,111,111,112,67,111,117,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,111,112,67,111,117,110,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,108,111,111,112,67,111,117,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,76,111,111,112,67,111,117,110,116,40,108,111,111,112,67,111,117,110,116,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,102,117,110,99,116,105,111,110,32,101,120,101,99,117,116,101,67,111,109,109,97,110,100,40,114,112,99,82,101,113,117,101,115,116,41,32,123,10,32,32,32,32,99,111,110,115,116,32,109,101,116,104,111,100,32,61,32,114,112,99,82,101,113,117,101,115,116,46,109,101,116,104,111,100,59,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,99,111,109,109,97,110,100,115,91,109,101,116,104,111,100,93,32,61,61,61,32,34,102,117,110,99,116,105,111,110,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,109,97,110,100,115,91,109,101,116,104,111,100,93,40,114,112,99,82,101,113,117,101,115,116,41,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,77,101,116,104,111,100,32,36,123,109,101,116,104,111,100,125,32,105,115,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,105,110,32,99,111,109,109,97,110,100,115,46,96,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,115,101,108,102,46,111,110,109,101,115,115,97,103,101,32,61,32,97,115,121,110,99,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,97,119,97,105,116,32,101,120,101,99,117,116,101,67,111,109,109,97,110,100,40,101,118,101,110,116,46,100,97,116,97,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,101,118,101,110,116,46,100,97,116,97,46,105,100,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,101,118,101,110,116,46,100,97,116,97,46,109,101,116,104,111,100,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,32,99,97,116,99,104,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,101,114,114,111,114,82,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,101,118,101,110,116,46,100,97,116,97,46,105,100,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,101,118,101,110,116,46,100,97,116,97,46,109,101,116,104,111,100,44,10,32,32,32,32,32,32,32,32,101,114,114,111,114,58,32,101,114,114,111,114,46,109,101,115,115,97,103,101,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,101,114,114,111,114,82,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,100,117,109,109,121,32,61,32,34,34,59,10,32,32,118,97,114,32,100,111,116,108,111,116,116,105,101,95,119,111,114,107,101,114,95,100,101,102,97,117,108,116,32,61,32,100,117,109,109,121,59,10,125,41,40,41,59,10])],{type:"application/javascript"}),e=URL.createObjectURL(n),o=new Worker(e);return URL.revokeObjectURL(e),o}},r0=a0,s0=class{constructor(){p(this,"_workers",new Map),p(this,"_animationWorkerMap",new Map)}getWorker(n){return this._workers.has(n)||this._workers.set(n,new r0),this._workers.get(n)}assignAnimationToWorker(n,e){this._animationWorkerMap.set(n,e)}unassignAnimationFromWorker(n){this._animationWorkerMap.delete(n)}sendMessage(n,e,o){this.getWorker(n).postMessage(e,o||[])}broadcastMessage(n,e){this._workers.forEach(o=>{o.postMessage(n,e||[])})}terminateWorker(n){let e=this._workers.get(n);e&&(e.terminate(),this._workers.delete(n))}};function Q2(n,e){if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement){let{height:o,width:d}=n.getBoundingClientRect();if(o!==0&&d!==0)return{width:d*e,height:o*e}}return{width:n.width,height:n.height}}function m2(){return Date.now().toString(36)+Math.random().toString(36).substr(2,9)}var g2=class Pp{constructor(e){var I,f;if(p(this,"_eventManager",new Z2),p(this,"_id"),p(this,"_worker"),p(this,"_canvas"),p(this,"_dotLottieInstanceState",{loopCount:0,markers:[],autoplay:!1,backgroundColor:"",currentFrame:0,duration:0,loop:!1,mode:"forward",segment:[0,0],segmentDuration:0,speed:1,totalFrames:0,isLoaded:!1,isPlaying:!1,isPaused:!1,isStopped:!0,isFrozen:!1,useFrameInterpolation:!1,renderConfig:{devicePixelRatio:d1()},activeAnimationId:"",activeThemeId:"",layout:void 0,marker:void 0,isReady:!1,manifest:null}),p(this,"_created",!1),p(this,"_boundOnClick",null),p(this,"_boundOnPointerUp",null),p(this,"_boundOnPointerDown",null),p(this,"_boundOnPointerMove",null),p(this,"_boundOnPointerEnter",null),p(this,"_boundOnPointerLeave",null),p(this,"_pendingConfig",null),e.canvas){let S=typeof HTMLCanvasElement<"u"&&e.canvas instanceof HTMLCanvasElement,v=typeof OffscreenCanvas<"u"&&e.canvas instanceof OffscreenCanvas;if(!S&&!v)throw new Error("Worker-based DotLottie requires HTMLCanvasElement or OffscreenCanvas")}this._canvas=e.canvas??null,this._id=`dotlottie-${m2()}`;let o=e.workerId||"defaultWorker";this._worker=Pp._workerManager.getWorker(o),Pp._workerManager.assignAnimationToWorker(this._id,o),Pp._wasmUrl&&this._sendMessage("setWasmUrl",{url:Pp._wasmUrl});let d={...e,renderConfig:{...e.renderConfig,devicePixelRatio:((I=e.renderConfig)==null?void 0:I.devicePixelRatio)||d1(),freezeOnOffscreen:((f=e.renderConfig)==null?void 0:f.freezeOnOffscreen)??!0}};this._pendingConfig=d,this._canvas&&(this._create(d),this._pendingConfig=null),this._worker.addEventListener("message",this._handleWorkerEvent.bind(this))}async _handleWorkerEvent(e){let o=e.data;if(!o.id&&(o.method==="onLoad"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event),E&&this._canvas instanceof HTMLCanvasElement&&(this._dotLottieInstanceState.renderConfig.freezeOnOffscreen&&(N.observe(this._canvas,this),l1(this._canvas)||await this.freeze()),this._dotLottieInstanceState.renderConfig.autoResize&&G.observe(this._canvas,this))),o.method==="onComplete"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onDestroy"&&o.result.instanceId===this._id&&this._eventManager.dispatch(o.result.event),o.method==="onUnfreeze"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._dotLottieInstanceState.isFrozen=!1,this._eventManager.dispatch(o.result.event)),o.method==="onFrame"&&o.result.instanceId===this._id&&(this._dotLottieInstanceState.currentFrame=o.result.event.currentFrame,this._eventManager.dispatch(o.result.event)),o.method==="onRender"&&o.result.instanceId===this._id&&this._eventManager.dispatch(o.result.event),o.method==="onFreeze"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onPause"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onPlay"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStop"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onLoadError"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onRenderError"&&o.result.instanceId===this._id&&this._eventManager.dispatch(o.result.event),o.method==="onReady"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onLoop"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStart"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._setupStateMachineListeners(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStop"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._cleanupStateMachineListeners(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineTransition"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStateEntered"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStateExit"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineCustomEvent"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineError"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineBooleanInputValueChange"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineNumericInputValueChange"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStringInputValueChange"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineInputFired"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineInternalMessage"&&o.result.instanceId===this._id)){await this._updateDotLottieInstanceState();let d=o.result.event;d.message.startsWith("OpenUrl: ")&&t3(d.message)}}async _create(e){var I;if(!this._canvas)return;let o;this._canvas instanceof HTMLCanvasElement?o=this._canvas.transferControlToOffscreen():o=this._canvas;let{instanceId:d}=await this._sendMessage("create",{instanceId:this._id,config:{...e,canvas:o},...Q2(this._canvas,((I=e.renderConfig)==null?void 0:I.devicePixelRatio)||d1())},[o]);if(d!==this._id)throw new Error("Instance ID mismatch");this._created=!0,await this._updateDotLottieInstanceState()}get loopCount(){return this._dotLottieInstanceState.loopCount}get isLoaded(){return this._dotLottieInstanceState.isLoaded}get isPlaying(){return this._dotLottieInstanceState.isPlaying}get isPaused(){return this._dotLottieInstanceState.isPaused}get isStopped(){return this._dotLottieInstanceState.isStopped}get currentFrame(){return this._dotLottieInstanceState.currentFrame}get isFrozen(){return this._dotLottieInstanceState.isFrozen}get segmentDuration(){return this._dotLottieInstanceState.segmentDuration}get totalFrames(){return this._dotLottieInstanceState.totalFrames}get segment(){return this._dotLottieInstanceState.segment}get speed(){return this._dotLottieInstanceState.speed}get duration(){return this._dotLottieInstanceState.duration}get isReady(){return this._dotLottieInstanceState.isReady}get mode(){return this._dotLottieInstanceState.mode}get canvas(){return this._canvas}async setCanvas(e){let o=typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement,d=typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas;if(!o&&!d)throw new Error("Worker-based DotLottie requires HTMLCanvasElement or OffscreenCanvas");if(this._canvas!==e){if(this._created&&this._canvas!==null)throw new Error("Cannot change canvas after worker instance is already created with a different canvas.");this._canvas=e,!this._created&&this._pendingConfig&&(await this._create(this._pendingConfig),this._pendingConfig=null)}}get autoplay(){return this._dotLottieInstanceState.autoplay}get backgroundColor(){return this._dotLottieInstanceState.backgroundColor}get loop(){return this._dotLottieInstanceState.loop}get useFrameInterpolation(){return this._dotLottieInstanceState.useFrameInterpolation}get renderConfig(){return this._dotLottieInstanceState.renderConfig}get manifest(){return this._dotLottieInstanceState.manifest}get activeAnimationId(){return this._dotLottieInstanceState.activeAnimationId}get marker(){return this._dotLottieInstanceState.marker}get activeThemeId(){return this._dotLottieInstanceState.activeThemeId}get layout(){return this._dotLottieInstanceState.layout}async play(){this._created&&(await this._sendMessage("play",{instanceId:this._id}),await this._updateDotLottieInstanceState(),E&&this._canvas instanceof HTMLCanvasElement&&this._dotLottieInstanceState.renderConfig.freezeOnOffscreen&&!l1(this._canvas)&&await this.freeze())}async pause(){this._created&&(await this._sendMessage("pause",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async stop(){this._created&&(await this._sendMessage("stop",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async setSpeed(e){this._created&&(await this._sendMessage("setSpeed",{instanceId:this._id,speed:e}),await this._updateDotLottieInstanceState())}async setMode(e){this._created&&(await this._sendMessage("setMode",{instanceId:this._id,mode:e}),await this._updateDotLottieInstanceState())}async setFrame(e){this._created&&(await this._sendMessage("setFrame",{frame:e,instanceId:this._id}),await this._updateDotLottieInstanceState())}async setSegment(e,o){this._created&&(await this._sendMessage("setSegment",{instanceId:this._id,segment:[e,o]}),await this._updateDotLottieInstanceState())}async setRenderConfig(e){if(!this._created)return;let{devicePixelRatio:o,freezeOnOffscreen:d,quality:I,...f}=e;await this._sendMessage("setRenderConfig",{instanceId:this._id,renderConfig:{...this._dotLottieInstanceState.renderConfig,...f,devicePixelRatio:o||d1(),freezeOnOffscreen:d??!0,...I!==void 0&&{quality:I}}}),await this._updateDotLottieInstanceState(),E&&this._canvas instanceof HTMLCanvasElement&&(this._dotLottieInstanceState.renderConfig.autoResize?G.observe(this._canvas,this):G.unobserve(this._canvas),this._dotLottieInstanceState.renderConfig.freezeOnOffscreen?(N.observe(this._canvas,this),l1(this._canvas)||await this.freeze()):(N.unobserve(this._canvas),this._dotLottieInstanceState.isFrozen&&await this.unfreeze()))}async setUseFrameInterpolation(e){this._created&&(await this._sendMessage("setUseFrameInterpolation",{instanceId:this._id,useFrameInterpolation:e}),await this._updateDotLottieInstanceState())}async setTheme(e){if(!this._created)return!1;let o=this._sendMessage("setTheme",{instanceId:this._id,themeId:e});return await this._updateDotLottieInstanceState(),o}async load(e){if(!this._created){this._pendingConfig&&(this._pendingConfig={...this._pendingConfig,...e});return}await this._sendMessage("load",{config:e,instanceId:this._id}),await this._updateDotLottieInstanceState()}async setLoop(e){this._created&&(await this._sendMessage("setLoop",{instanceId:this._id,loop:e}),await this._updateDotLottieInstanceState())}async setLoopCount(e){this._created&&(await this._sendMessage("setLoopCount",{instanceId:this._id,loopCount:e}),await this._updateDotLottieInstanceState())}async resize(){if(!this._created||!this._canvas)return;let{height:e,width:o}=Q2(this._canvas,this._dotLottieInstanceState.renderConfig.devicePixelRatio||d1());await this._sendMessage("resize",{height:e,instanceId:this._id,width:o}),await this._updateDotLottieInstanceState()}async destroy(){this._created&&(this._created=!1,await this._sendMessage("destroy",{instanceId:this._id}),this._cleanupStateMachineListeners(),Pp._workerManager.unassignAnimationFromWorker(this._id),this._eventManager.removeAllEventListeners(),E&&this._canvas instanceof HTMLCanvasElement&&(N.unobserve(this._canvas),G.unobserve(this._canvas)))}async freeze(){this._created&&(await this._sendMessage("freeze",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async unfreeze(){this._created&&(await this._sendMessage("unfreeze",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async setBackgroundColor(e){this._created&&(await this._sendMessage("setBackgroundColor",{instanceId:this._id,backgroundColor:e}),await this._updateDotLottieInstanceState())}async loadAnimation(e){this._created&&(await this._sendMessage("loadAnimation",{animationId:e,instanceId:this._id}),await this._updateDotLottieInstanceState())}async setLayout(e){this._created&&(await this._sendMessage("setLayout",{instanceId:this._id,layout:e}),await this._updateDotLottieInstanceState())}async _updateDotLottieInstanceState(){if(!this._created)return;let e=await this._sendMessage("getDotLottieInstanceState",{instanceId:this._id});this._dotLottieInstanceState=e.state}markers(){return this._dotLottieInstanceState.markers}async setMarker(e){this._created&&(await this._sendMessage("setMarker",{instanceId:this._id,marker:e}),await this._updateDotLottieInstanceState())}async setThemeData(e){if(!this._created)return!1;let o=await this._sendMessage("setThemeData",{instanceId:this._id,themeData:e});return await this._updateDotLottieInstanceState(),o}async setViewport(e,o,d,I){return this._created?this._sendMessage("setViewport",{x:e,y:o,width:d,height:I,instanceId:this._id}):!1}async animationSize(){return this._created?this._sendMessage("animationSize",{instanceId:this._id}):{height:0,width:0}}async tween(e,o){return this._created?this._sendMessage("tween",{instanceId:this._id,frame:e,duration:o}):!1}async tweenToMarker(e,o){return this._created?this._sendMessage("tweenToMarker",{instanceId:this._id,marker:e,duration:o}):!1}async setTransform(e){return this._created?this._sendMessage("setTransform",{instanceId:this._id,transform:e}):!1}async getTransform(){if(this._created)return this._sendMessage("getTransform",{instanceId:this._id})}async _sendMessage(e,o,d){let I={id:`dotlottie-request-${m2()}`,method:e,params:o};return this._worker.postMessage(I,d||[]),new Promise((f,S)=>{let v=L=>{let x=L.data;x.id===I.id&&(this._worker.removeEventListener("message",v),x.error?S(new Error(`Failed to execute method ${e}: ${x.error}`)):f(x.result))};this._worker.addEventListener("message",v)})}addEventListener(e,o){this._eventManager.addEventListener(e,o)}removeEventListener(e,o){this._eventManager.removeEventListener(e,o)}static setWasmUrl(e){Pp._wasmUrl=e}static async registerFont(e,o){try{let d=m2();return Pp._workerManager.broadcastMessage({id:d,method:"registerFont",params:{fontName:e,fontSource:o}}),!0}catch(d){return console.error(`Error broadcasting registerFont for "${e}":`,d),!1}}async stateMachineLoad(e){if(!this._created)return!1;let o=await this._sendMessage("stateMachineLoad",{instanceId:this._id,stateMachineId:e});return await this._updateDotLottieInstanceState(),o}async stateMachineLoadData(e){if(!this._created)return!1;let o=await this._sendMessage("stateMachineLoadData",{instanceId:this._id,stateMachineData:e});return await this._updateDotLottieInstanceState(),o}async stateMachineStart(){if(!this._created)return!1;let e=await this._sendMessage("stateMachineStart",{instanceId:this._id});return e&&(this._setupStateMachineListeners(),await this._updateDotLottieInstanceState()),e}async stateMachineStop(){return this._created?(this._cleanupStateMachineListeners(),this._sendMessage("stateMachineStop",{instanceId:this._id})):!1}async stateMachineSetNumericInput(e,o){return this._created?this._sendMessage("stateMachineSetNumericInput",{instanceId:this._id,name:e,value:o}):!1}async stateMachineSetBooleanInput(e,o){return this._created?this._sendMessage("stateMachineSetBooleanInput",{instanceId:this._id,name:e,value:o}):!1}async stateMachineSetConfig(e){this._created&&this._sendMessage("stateMachineSetConfig",{instanceId:this._id,config:e})}async stateMachineSetStringInput(e,o){return this._created?this._sendMessage("stateMachineSetStringInput",{instanceId:this._id,name:e,value:o}):!1}async stateMachineGetNumericInput(e){if(this._created)return this._sendMessage("stateMachineGetNumericInput",{instanceId:this._id,name:e})}async stateMachineGetBooleanInput(e){if(this._created)return this._sendMessage("stateMachineGetBooleanInput",{instanceId:this._id,name:e})}async stateMachineGetStringInput(e){if(this._created)return this._sendMessage("stateMachineGetStringInput",{instanceId:this._id,name:e})}async stateMachineGetInputs(){if(this._created)return this._sendMessage("stateMachineGetInputs",{instanceId:this._id})}async stateMachineFireEvent(e){this._created&&this._sendMessage("stateMachineFireEvent",{instanceId:this._id,name:e})}async stateMachineGetStatus(){return this._created?this._sendMessage("stateMachineGetStatus",{instanceId:this._id}):""}async stateMachineGetCurrentState(){return this._created?this._sendMessage("stateMachineGetCurrentState",{instanceId:this._id}):""}async stateMachineGetActiveId(){return this._created?this._sendMessage("stateMachineGetActiveId",{instanceId:this._id}):""}async stateMachineOverrideState(e,o=!1){return this._created?this._sendMessage("stateMachineOverrideState",{instanceId:this._id,state:e,immediate:o}):!1}async stateMachineGet(e){return this._created?this._sendMessage("stateMachineGet",{instanceId:this._id,stateMachineId:e}):""}async stateMachineGetListeners(){return this._created?this._sendMessage("stateMachineGetListeners",{instanceId:this._id}):[]}async stateMachinePostClickEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostClickEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerUpEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerUpEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerDownEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerDownEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerMoveEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerMoveEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerEnterEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerEnterEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerExitEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerExitEvent",{instanceId:this._id,x:e,y:o})}_onClick(e){let o=z(e);o&&this._sendMessage("stateMachinePostClickEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerUp(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerUpEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerDown(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerDownEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerMove(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerMoveEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerEnter(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerEnterEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerLeave(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerExitEvent",{instanceId:this._id,x:o.x,y:o.y})}async _setupStateMachineListeners(){if(E&&this._canvas instanceof HTMLCanvasElement&&this.isLoaded){let e=await this._sendMessage("stateMachineGetListeners",{instanceId:this._id});if(e.length===0)return;this._cleanupStateMachineListeners(),e.includes("Click")&&(this._boundOnClick=this._onClick.bind(this),this._canvas.addEventListener("click",this._boundOnClick)),e.includes("PointerUp")&&(this._boundOnPointerUp=this._onPointerUp.bind(this),this._canvas.addEventListener("pointerup",this._boundOnPointerUp)),e.includes("PointerDown")&&(this._boundOnPointerDown=this._onPointerDown.bind(this),this._canvas.addEventListener("pointerdown",this._boundOnPointerDown)),e.includes("PointerMove")&&(this._boundOnPointerMove=this._onPointerMove.bind(this),this._canvas.addEventListener("pointermove",this._boundOnPointerMove)),e.includes("PointerEnter")&&(this._boundOnPointerEnter=this._onPointerEnter.bind(this),this._canvas.addEventListener("pointerenter",this._boundOnPointerEnter)),e.includes("PointerExit")&&(this._boundOnPointerLeave=this._onPointerLeave.bind(this),this._canvas.addEventListener("pointerleave",this._boundOnPointerLeave))}}_cleanupStateMachineListeners(){E&&this._canvas instanceof HTMLCanvasElement&&(this._boundOnClick&&(this._canvas.removeEventListener("click",this._boundOnClick),this._boundOnClick=null),this._boundOnPointerUp&&(this._canvas.removeEventListener("pointerup",this._boundOnPointerUp),this._boundOnPointerUp=null),this._boundOnPointerDown&&(this._canvas.removeEventListener("pointerdown",this._boundOnPointerDown),this._boundOnPointerDown=null),this._boundOnPointerMove&&(this._canvas.removeEventListener("pointermove",this._boundOnPointerMove),this._boundOnPointerMove=null),this._boundOnPointerEnter&&(this._canvas.removeEventListener("pointerenter",this._boundOnPointerEnter),this._boundOnPointerEnter=null),this._boundOnPointerLeave&&(this._canvas.removeEventListener("pointerleave",this._boundOnPointerLeave),this._boundOnPointerLeave=null))}};p(g2,"_workerManager",new s0),p(g2,"_wasmUrl","");var K1=({animationId:n,autoplay:e,backgroundColor:o,className:d,createDotLottie:I,data:f,dotLottieRefCallback:S,layout:v,loop:L,mode:x,playOnHover:F,renderConfig:Y,segment:j,speed:W,src:re,stateMachineConfig:ee,stateMachineId:he,style:ue,themeData:Ee,themeId:_e,useFrameInterpolation:De,workerId:Fe,...Ve})=>{let Ge=reactExports.useRef(null),He=reactExports.useRef(null),At=reactExports.useRef(S),Bt={speed:W,mode:x,loop:L,useFrameInterpolation:De,segment:j,backgroundColor:o,autoplay:e,themeId:_e,workerId:Fe,src:re,data:f,layout:v,renderConfig:Y,animationId:n,stateMachineConfig:ee,stateMachineId:he},Tt=reactExports.useRef(Bt);At.current=S,Tt.current=Bt;let rt=reactExports.useCallback(ye=>{var lt,Yt;He.current=ye,ye?Ge.current=I({...Tt.current,canvas:ye}):((lt=Ge.current)==null||lt.destroy(),Ge.current=null),(Yt=At.current)==null||Yt.call(At,Ge.current)},[]);return reactExports.useEffect(()=>{var lt,Yt;let ye=ct=>{var ht,vt;F&&(ct.type==="mouseenter"&&((ht=Ge.current)==null||ht.play()),ct.type==="mouseleave"&&((vt=Ge.current)==null||vt.pause()))};return(lt=He.current)==null||lt.addEventListener("mouseenter",ye),(Yt=He.current)==null||Yt.addEventListener("mouseleave",ye),()=>{var ct,ht;(ct=He.current)==null||ct.removeEventListener("mouseenter",ye),(ht=He.current)==null||ht.removeEventListener("mouseleave",ye)}},[F]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setSpeed(W??1)},[W]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setMode(x??"forward")},[x]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setLoop(L??!1)},[L]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setUseFrameInterpolation(De??!0)},[De]),reactExports.useEffect(()=>{var ye;typeof(j==null?void 0:j[0])=="number"&&typeof j[1]=="number"&&((ye=Ge.current)==null||ye.setSegment(j[0],j[1]))},[j]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setBackgroundColor(o??"")},[o]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setRenderConfig(Y??{})},[JSON.stringify(Y)]),reactExports.useEffect(()=>{var ye;typeof f!="string"&&typeof f!="object"||((ye=Ge.current)==null||ye.load({data:f,...Tt.current}))},[f]),reactExports.useEffect(()=>{var ye;typeof re=="string"&&((ye=Ge.current)==null||ye.load({src:re,...Tt.current}))},[re]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setMarker(Ve.marker??"")},[Ve.marker]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.loadAnimation(n??"")},[n]),reactExports.useEffect(()=>{var ye;typeof _e=="string"&&((ye=Ge.current)==null||ye.setTheme(_e))},[_e]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setThemeData(Ee??"")},[Ee]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setLayout(v??{})},[v==null?void 0:v.fit,(v==null?void 0:v.align)&&v.align[0],(v==null?void 0:v.align)&&v.align[1]]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)!=null&&ye.isLoaded&&(typeof he=="string"&&he?Ge.current.stateMachineLoad(he)&&Ge.current.stateMachineStart():Ge.current.stateMachineStop())},[he]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.stateMachineSetConfig(ee??null)},[ee]),jsxRuntimeExports.jsx("div",{className:d,...!d&&{style:{width:"100%",height:"100%",lineHeight:0,...ue}},children:jsxRuntimeExports.jsx("canvas",{ref:rt,style:{width:"100%",height:"100%"},...Ve})})},h0=n=>new V1(n),E0=n=>jsxRuntimeExports.jsx(K1,{...n,createDotLottie:h0});function setRef$1(n,e){if(typeof n=="function")return n(e);n!=null&&(n.current=e)}function composeRefs(...n){return e=>{let o=!1;const d=n.map(I=>{const f=setRef$1(I,e);return!o&&typeof f=="function"&&(o=!0),f});if(o)return()=>{for(let I=0;I{let{children:I,...f}=o,S=null,v=!1;const L=[];isLazyComponent(I)&&typeof use=="function"&&(I=use(I._payload)),reactExports.Children.forEach(I,j=>{var W;if(isSlottable(j)){v=!0;const re=j;let ee="child"in re.props?re.props.child:re.props.children;isLazyComponent(ee)&&typeof use=="function"&&(ee=use(ee._payload)),S=getSlottableElementFromSlottable(re,ee),L.push((W=S==null?void 0:S.props)==null?void 0:W.children)}else L.push(j)}),S?S=reactExports.cloneElement(S,void 0,L):!v&&reactExports.Children.count(I)===1&&reactExports.isValidElement(I)&&(S=I);const x=S?getElementRef$1(S):void 0,F=useComposedRefs(d,x);if(!S){if(I||I===0)throw new Error(v?createSlottableError(n):createSlotError(n));return I}const Y=mergeProps(f,S.props??{});return S.type!==reactExports.Fragment&&(Y.ref=d?F:x),reactExports.cloneElement(S,Y)});return e.displayName=`${n}.Slot`,e}var Slot$3=createSlot("Slot"),SLOTTABLE_IDENTIFIER=Symbol.for("radix.slottable"),getSlottableElementFromSlottable=(n,e)=>{if("child"in n.props){const o=n.props.child;return reactExports.isValidElement(o)?reactExports.cloneElement(o,void 0,n.props.children(o.props.children)):null}return reactExports.isValidElement(e)?e:null};function mergeProps(n,e){const o={...e};for(const d in e){const I=n[d],f=e[d];/^on[A-Z]/.test(d)?I&&f?o[d]=(...v)=>{const L=f(...v);return I(...v),L}:I&&(o[d]=I):d==="style"?o[d]={...I,...f}:d==="className"&&(o[d]=[I,f].filter(Boolean).join(" "))}return{...n,...o}}function getElementRef$1(n){var d,I;let e=(d=Object.getOwnPropertyDescriptor(n.props,"ref"))==null?void 0:d.get,o=e&&"isReactWarning"in e&&e.isReactWarning;return o?n.ref:(e=(I=Object.getOwnPropertyDescriptor(n,"ref"))==null?void 0:I.get,o=e&&"isReactWarning"in e&&e.isReactWarning,o?n.props.ref:n.props.ref||n.ref)}function isSlottable(n){return reactExports.isValidElement(n)&&typeof n.type=="function"&&"__radixId"in n.type&&n.type.__radixId===SLOTTABLE_IDENTIFIER}var REACT_LAZY_TYPE=Symbol.for("react.lazy");function isLazyComponent(n){return n!=null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===REACT_LAZY_TYPE&&"_payload"in n&&isPromiseLike(n._payload)}function isPromiseLike(n){return typeof n=="object"&&n!==null&&"then"in n}var createSlotError=n=>`${n} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,createSlottableError=n=>`${n} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,use=React2[" use ".trim().toString()];const falsyToString=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,cx=clsx,cva=(n,e)=>o=>{var d;if((e==null?void 0:e.variants)==null)return cx(n,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:I,defaultVariants:f}=e,S=Object.keys(I).map(x=>{const F=o==null?void 0:o[x],Y=f==null?void 0:f[x];if(F===null)return null;const j=falsyToString(F)||falsyToString(Y);return I[x][j]}),v=o&&Object.entries(o).reduce((x,F)=>{let[Y,j]=F;return j===void 0||(x[Y]=j),x},{}),L=e==null||(d=e.compoundVariants)===null||d===void 0?void 0:d.reduce((x,F)=>{let{class:Y,className:j,...W}=F;return Object.entries(W).every(re=>{let[ee,he]=re;return Array.isArray(he)?he.includes({...f,...v}[ee]):{...f,...v}[ee]===he})?[...x,Y,j]:x},[]);return cx(n,S,L,o==null?void 0:o.class,o==null?void 0:o.className)};/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const mergeClasses=(...n)=>n.filter((e,o,d)=>!!e&&e.trim()!==""&&d.indexOf(e)===o).join(" ").trim();/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const toKebabCase=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const toCamelCase=n=>n.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,o,d)=>d?d.toUpperCase():o.toLowerCase());/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const toPascalCase=n=>{const e=toCamelCase(n);return e.charAt(0).toUpperCase()+e.slice(1)};/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var defaultAttributes={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const hasA11yProp=n=>{for(const e in n)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1},LucideContext=reactExports.createContext({}),useLucideContext=()=>reactExports.useContext(LucideContext),Icon=reactExports.forwardRef(({color:n,size:e,strokeWidth:o,absoluteStrokeWidth:d,className:I="",children:f,iconNode:S,...v},L)=>{const{size:x=24,strokeWidth:F=2,absoluteStrokeWidth:Y=!1,color:j="currentColor",className:W=""}=useLucideContext()??{},re=d??Y?Number(o??F)*24/Number(e??x):o??F;return reactExports.createElement("svg",{ref:L,...defaultAttributes,width:e??x??defaultAttributes.width,height:e??x??defaultAttributes.height,stroke:n??j,strokeWidth:re,className:mergeClasses("lucide",W,I),...!f&&!hasA11yProp(v)&&{"aria-hidden":"true"},...v},[...S.map(([ee,he])=>reactExports.createElement(ee,he)),...Array.isArray(f)?f:[f]])});/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const createLucideIcon=(n,e)=>{const o=reactExports.forwardRef(({className:d,...I},f)=>reactExports.createElement(Icon,{ref:f,iconNode:e,className:mergeClasses(`lucide-${toKebabCase(toPascalCase(n))}`,`lucide-${n}`,d),...I}));return o.displayName=toPascalCase(n),o};/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const __iconNode$5=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Check=createLucideIcon("check",__iconNode$5);/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const __iconNode$4=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],ChevronDown=createLucideIcon("chevron-down",__iconNode$4);/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const __iconNode$3=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]],MicOff=createLucideIcon("mic-off",__iconNode$3);/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const __iconNode$2=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],Mic=createLucideIcon("mic",__iconNode$2);/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const __iconNode$1=[["path",{d:"M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196",key:"w8jjjt"}],["path",{d:"M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2",key:"1xawa7"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],VideoOff=createLucideIcon("video-off",__iconNode$1);/** + * @license lucide-react v1.23.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const __iconNode=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],Video=createLucideIcon("video",__iconNode);var ambient_default="data:application/zip;base64,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",analyzing_default="data:application/zip;base64,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",disconnected_default="data:application/zip;base64,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",joining_default="data:application/zip;base64,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",listening_default="data:application/zip;base64,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",not_joined_default="data:application/zip;base64,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",talking_default="data:application/zip;base64,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",bundledAnimations={"not-joined":not_joined_default,joining:joining_default,ambient:ambient_default,listening:listening_default,analyzing:analyzing_default,talking:talking_default,disconnected:disconnected_default},stateToText={"not-joined":"Not Joined",joining:"Joining",ambient:"Ambient",listening:"Listening",analyzing:"Analyzing",talking:"Talking",disconnected:"Disconnected"},sizeClasses$1={sm:{container:"w-32 h-32",text:"text-sm"},md:{container:"w-48 h-48",text:"text-base"},lg:{container:"w-64 h-64",text:"text-lg"}},AgentVisualizer=reactExports.forwardRef(({state:n,size:e="md",lottiePaths:o,className:d,...I},f)=>{const S=stateToText[n],v=sizeClasses$1[e],L=(o==null?void 0:o[n])??bundledAnimations[n];return jsxRuntimeExports.jsxs("div",{ref:f,className:cn("flex flex-col items-center justify-center gap-4",d),...I,children:[jsxRuntimeExports.jsx("div",{className:cn("flex items-center justify-center",v.container),children:jsxRuntimeExports.jsx(E0,{src:L,loop:!0,autoplay:!0,className:"h-full w-full"})}),S&&jsxRuntimeExports.jsx("p",{className:cn("text-foreground text-center font-medium",v.text),children:S})]})});AgentVisualizer.displayName="AgentVisualizer";var buttonVariants=cva("relative inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground",destructive:"bg-destructive text-font",secondary:"bg-secondary text-secondary-foreground",ghost:"hover:bg-accent hover:text-accent-foreground"},size:{default:"h-12 px-4 py-4 rounded-md",icon:"h-10 w-10 rounded-md"}},defaultVariants:{variant:"default",size:"default"}});function Button({className:n,variant:e,size:o,asChild:d=!1,label:I,labelClassName:f,...S}){const v=d?Slot$3:"button",L=jsxRuntimeExports.jsx(v,{"data-slot":"button",className:cn(buttonVariants({variant:e,size:o,className:n})),...S});return I?jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[L,jsxRuntimeExports.jsx("p",{className:cn("text-muted-foreground mt-2 text-xs",f),children:I})]}):L}var ConversationContext=reactExports.createContext(null),useConversation=()=>{const n=reactExports.useContext(ConversationContext);if(!n)throw new Error("useConversation must be used within Conversation");return n},useConversationNames=()=>{const n=reactExports.useContext(ConversationContext);return n?{agentName:n.agentName,userName:n.userName}:{agentName:"Agent",userName:"User"}},Conversation=reactExports.forwardRef(({className:n,height:e="h-[400px]",agentName:o="Agent",userName:d="User",...I},f)=>{const S=reactExports.useRef(null),[v,L]=reactExports.useState(!1),x=reactExports.useCallback(j=>{S.current=j,typeof f=="function"?f(j):f&&(f.current=j)},[f]),F=reactExports.useCallback(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},[]);reactExports.useEffect(()=>{const j=S.current,W=()=>{if(j){const{scrollTop:he,scrollHeight:ue,clientHeight:Ee}=j,_e=ue-he-Ee<100;L(!_e)}};let re=null;const ee=new MutationObserver(()=>{re&&cancelAnimationFrame(re),re=requestAnimationFrame(F)});return j&&(ee.observe(j,{childList:!0,subtree:!0}),j.addEventListener("scroll",W)),()=>{ee.disconnect(),re&&cancelAnimationFrame(re),j&&j.removeEventListener("scroll",W)}},[F]);const Y=reactExports.useMemo(()=>({scrollRef:S,agentName:o,userName:d}),[o,d]);return jsxRuntimeExports.jsx(ConversationContext.Provider,{value:Y,children:jsxRuntimeExports.jsxs("div",{ref:x,className:cn("relative flex flex-col overflow-scroll",e,n),...I,children:[jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0",children:I.children}),v&&jsxRuntimeExports.jsx(ConversationScrollButton,{onClick:F})]})})});Conversation.displayName="Conversation";var ConversationContent=reactExports.forwardRef(({className:n,padding:e="p-4",...o},d)=>jsxRuntimeExports.jsx("div",{ref:d,className:cn("flex flex-col gap-1",e,n),...o}));ConversationContent.displayName="ConversationContent";var ConversationEmptyState=reactExports.forwardRef(({className:n,icon:e,title:o="No messages yet",description:d="Start a conversation to see messages here",...I},f)=>jsxRuntimeExports.jsxs("div",{ref:f,className:cn("flex h-full flex-col items-center justify-center gap-3 p-8 text-center",n),...I,children:[e&&jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:e}),jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx("h3",{className:"font-semibold",children:o}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-sm",children:d})]})]}));ConversationEmptyState.displayName="ConversationEmptyState";var ConversationScrollButton=reactExports.forwardRef(({className:n,...e},o)=>{const{scrollRef:d}=useConversation();return jsxRuntimeExports.jsx(Button,{ref:o,className:cn("absolute bottom-4 left-1/2 -translate-x-1/2 shadow-md",n),onClick:()=>{d.current&&(d.current.scrollTop=d.current.scrollHeight)},...e,children:jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4"})})});ConversationScrollButton.displayName="ConversationScrollButton";var Message=reactExports.forwardRef(({className:n,from:e,name:o,children:d,...I},f)=>{const{agentName:S,userName:v}=useConversationNames(),L=e==="user",x=o??(L?v:S);return jsxRuntimeExports.jsx("div",{ref:f,className:cn("flex w-full",n),style:{justifyContent:L?"flex-end":"flex-start"},...I,children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-0.5",style:{alignItems:L?"flex-end":"flex-start"},children:[x&&jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-muted-foreground",children:x}),d]})})});Message.displayName="Message";var MessageContent=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx("div",{ref:o,className:cn("flex max-w-xs flex-col gap-2 rounded-2xl px-1 py-1 bg-secondary text-foreground",n),...e}));MessageContent.displayName="MessageContent";function composeEventHandlers(n,e,{checkForDefaultPrevented:o=!0}={}){return function(I){if(n==null||n(I),o===!1||!I||!I.defaultPrevented)return e==null?void 0:e(I)}}function createContextScope(n,e=[]){let o=[];function d(f,S){const v=reactExports.createContext(S);v.displayName=f+"Context";const L=o.length;o=[...o,S];const x=Y=>{var ue;const{scope:j,children:W,...re}=Y,ee=((ue=j==null?void 0:j[n])==null?void 0:ue[L])||v,he=reactExports.useMemo(()=>re,Object.values(re));return jsxRuntimeExports.jsx(ee.Provider,{value:he,children:W})};x.displayName=f+"Provider";function F(Y,j,W={}){var ue;const{optional:re=!1}=W,ee=((ue=j==null?void 0:j[n])==null?void 0:ue[L])||v,he=reactExports.useContext(ee);if(he)return he;if(S!==void 0)return S;if(!re)throw new Error(`\`${Y}\` must be used within \`${f}\``)}return[x,F]}const I=()=>{const f=o.map(S=>reactExports.createContext(S));return function(v){const L=(v==null?void 0:v[n])||f;return reactExports.useMemo(()=>({[`__scope${n}`]:{...v,[n]:L}}),[v,L])}};return I.scopeName=n,[d,composeContextScopes(I,...e)]}function composeContextScopes(...n){const e=n[0];if(n.length===1)return e;const o=()=>{const d=n.map(I=>({useScope:I(),scopeName:I.scopeName}));return function(f){const S=d.reduce((v,{useScope:L,scopeName:x})=>{const Y=L(f)[`__scope${x}`];return{...v,...Y}},{});return reactExports.useMemo(()=>({[`__scope${e.scopeName}`]:S}),[S])}};return o.scopeName=e.scopeName,o}var useLayoutEffect2=globalThis!=null&&globalThis.document?reactExports.useLayoutEffect:()=>{},useInsertionEffect=React2[" useInsertionEffect ".trim().toString()]||useLayoutEffect2;function useControllableState({prop:n,defaultProp:e,onChange:o=()=>{},caller:d}){const[I,f,S]=useUncontrolledState({defaultProp:e,onChange:o}),v=n!==void 0,L=v?n:I;{const F=reactExports.useRef(n!==void 0);reactExports.useEffect(()=>{const Y=F.current;Y!==v&&console.warn(`${d} is changing from ${Y?"controlled":"uncontrolled"} to ${v?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),F.current=v},[v,d])}const x=reactExports.useCallback(F=>{var Y;if(v){const j=isFunction$2(F)?F(n):F;j!==n&&((Y=S.current)==null||Y.call(S,j))}else f(F)},[v,n,f,S]);return[L,x]}function useUncontrolledState({defaultProp:n,onChange:e}){const[o,d]=reactExports.useState(n),I=reactExports.useRef(o),f=reactExports.useRef(e);return useInsertionEffect(()=>{f.current=e},[e]),reactExports.useEffect(()=>{var S;I.current!==o&&((S=f.current)==null||S.call(f,o),I.current=o)},[o,I]),[o,d,f]}function isFunction$2(n){return typeof n=="function"}var NODES=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Primitive=NODES.reduce((n,e)=>{const o=createSlot(`Primitive.${e}`),d=reactExports.forwardRef((I,f)=>{const{asChild:S,...v}=I,L=S?o:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),jsxRuntimeExports.jsx(L,{...v,ref:f})});return d.displayName=`Primitive.${e}`,{...n,[e]:d}},{});function dispatchDiscreteCustomEvent(n,e){n&&reactDomExports.flushSync(()=>n.dispatchEvent(e))}function createCollection(n){const e=n+"CollectionProvider",[o,d]=createContextScope(e),[I,f]=o(e,{collectionRef:{current:null},itemMap:new Map}),S=ee=>{const{scope:he,children:ue}=ee,Ee=reactExports.useRef(null),_e=reactExports.useRef(new Map).current;return jsxRuntimeExports.jsx(I,{scope:he,itemMap:_e,collectionRef:Ee,children:ue})};S.displayName=e;const v=n+"CollectionSlot",L=createSlot(v),x=reactExports.forwardRef((ee,he)=>{const{scope:ue,children:Ee}=ee,_e=f(v,ue),De=useComposedRefs(he,_e.collectionRef);return jsxRuntimeExports.jsx(L,{ref:De,children:Ee})});x.displayName=v;const F=n+"CollectionItemSlot",Y="data-radix-collection-item",j=createSlot(F),W=reactExports.forwardRef((ee,he)=>{const{scope:ue,children:Ee,..._e}=ee,De=reactExports.useRef(null),Fe=useComposedRefs(he,De),Ve=f(F,ue);return reactExports.useEffect(()=>(Ve.itemMap.set(De,{ref:De,..._e}),()=>void Ve.itemMap.delete(De))),jsxRuntimeExports.jsx(j,{[Y]:"",ref:Fe,children:Ee})});W.displayName=F;function re(ee){const he=f(n+"CollectionConsumer",ee);return reactExports.useCallback(()=>{const Ee=he.collectionRef.current;if(!Ee)return[];const _e=Array.from(Ee.querySelectorAll(`[${Y}]`));return Array.from(he.itemMap.values()).sort((Ve,Ge)=>_e.indexOf(Ve.ref.current)-_e.indexOf(Ge.ref.current))},[he.collectionRef,he.itemMap])}return[{Provider:S,Slot:x,ItemSlot:W},re,d]}var DirectionContext=reactExports.createContext(void 0);function useDirection(n){const e=reactExports.useContext(DirectionContext);return n||e||"ltr"}function useCallbackRef$1(n){const e=reactExports.useRef(n);return reactExports.useEffect(()=>{e.current=n}),reactExports.useMemo(()=>(...o)=>{var d;return(d=e.current)==null?void 0:d.call(e,...o)},[])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=reactExports.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),DismissableLayer=reactExports.forwardRef((n,e)=>{const{disableOutsidePointerEvents:o=!1,deferPointerDownOutside:d=!1,onEscapeKeyDown:I,onPointerDownOutside:f,onFocusOutside:S,onInteractOutside:v,onDismiss:L,...x}=n,F=reactExports.useContext(DismissableLayerContext),[Y,j]=reactExports.useState(null),W=(Y==null?void 0:Y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,re]=reactExports.useState({}),ee=useComposedRefs(e,j),he=Array.from(F.layers),[ue]=[...F.layersWithOutsidePointerEventsDisabled].slice(-1),Ee=ue?he.indexOf(ue):-1,_e=Y?he.indexOf(Y):-1,De=F.layersWithOutsidePointerEventsDisabled.size>0,Fe=_e>=Ee,Ve=reactExports.useRef(!1),Ge=usePointerDownOutside(Tt=>{f==null||f(Tt),v==null||v(Tt),Tt.defaultPrevented||L==null||L()},{ownerDocument:W,deferPointerDownOutside:d,isDeferredPointerDownOutsideRef:Ve,dismissableSurfaces:F.dismissableSurfaces,shouldHandlePointerDownOutside:reactExports.useCallback(Tt=>{if(!(Tt instanceof Node))return!1;const rt=[...F.branches].some(ye=>ye.contains(Tt));return Fe&&!rt},[F.branches,Fe])}),He=useFocusOutside(Tt=>{if(d&&Ve.current)return;const rt=Tt.target;[...F.branches].some(lt=>lt.contains(rt))||(S==null||S(Tt),v==null||v(Tt),Tt.defaultPrevented||L==null||L())},W),At=Y?_e===he.length-1:!1,Bt=useCallbackRef$1(Tt=>{Tt.key==="Escape"&&(I==null||I(Tt),!Tt.defaultPrevented&&L&&(Tt.preventDefault(),L()))});return reactExports.useEffect(()=>{if(At)return W.addEventListener("keydown",Bt,{capture:!0}),()=>W.removeEventListener("keydown",Bt,{capture:!0})},[W,At,Bt]),reactExports.useEffect(()=>{if(Y)return o&&(F.layersWithOutsidePointerEventsDisabled.size===0&&(originalBodyPointerEvents=W.body.style.pointerEvents,W.body.style.pointerEvents="none"),F.layersWithOutsidePointerEventsDisabled.add(Y)),F.layers.add(Y),dispatchUpdate(),()=>{o&&(F.layersWithOutsidePointerEventsDisabled.delete(Y),F.layersWithOutsidePointerEventsDisabled.size===0&&(W.body.style.pointerEvents=originalBodyPointerEvents))}},[Y,W,o,F]),reactExports.useEffect(()=>()=>{Y&&(F.layers.delete(Y),F.layersWithOutsidePointerEventsDisabled.delete(Y),dispatchUpdate())},[Y,F]),reactExports.useEffect(()=>{const Tt=()=>re({});return document.addEventListener(CONTEXT_UPDATE,Tt),()=>document.removeEventListener(CONTEXT_UPDATE,Tt)},[]),jsxRuntimeExports.jsx(Primitive.div,{...x,ref:ee,style:{pointerEvents:De?Fe?"auto":"none":void 0,...n.style},onFocusCapture:composeEventHandlers(n.onFocusCapture,He.onFocusCapture),onBlurCapture:composeEventHandlers(n.onBlurCapture,He.onBlurCapture),onPointerDownCapture:composeEventHandlers(n.onPointerDownCapture,Ge.onPointerDownCapture)})});DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=reactExports.forwardRef((n,e)=>{const o=reactExports.useContext(DismissableLayerContext),d=reactExports.useRef(null),I=useComposedRefs(e,d);return reactExports.useEffect(()=>{const f=d.current;if(f)return o.branches.add(f),()=>{o.branches.delete(f)}},[o.branches]),jsxRuntimeExports.jsx(Primitive.div,{...n,ref:I})});DismissableLayerBranch.displayName=BRANCH_NAME;function useDismissableLayerSurface(){const n=reactExports.useContext(DismissableLayerContext),[e,o]=reactExports.useState(null);return reactExports.useEffect(()=>{if(e)return n.dismissableSurfaces.add(e),()=>{n.dismissableSurfaces.delete(e)}},[e,n.dismissableSurfaces]),o}var IS_TRUE=()=>!0;function usePointerDownOutside(n,e){const{ownerDocument:o=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:d=!1,isDeferredPointerDownOutsideRef:I,dismissableSurfaces:f,shouldHandlePointerDownOutside:S=IS_TRUE}=e,v=useCallbackRef$1(n),L=reactExports.useRef(!1),x=reactExports.useRef(!1),F=reactExports.useRef(new Map),Y=reactExports.useRef(()=>{});return reactExports.useEffect(()=>{function j(){x.current=!1,I.current=!1,F.current.clear()}function W(){return Array.from(F.current.values()).some(Boolean)}function re(_e){if(!x.current)return;const De=_e.target;De instanceof Node&&[...f].some(Ve=>Ve.contains(De))||F.current.set(_e.type,!0),_e.type==="click"&&window.setTimeout(()=>{x.current&&Y.current()},0)}function ee(_e){x.current&&F.current.set(_e.type,!1)}const he=_e=>{if(_e.target&&!L.current){let De=function(){o.removeEventListener("click",Y.current);const Ve=W();j(),Ve||handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,v,Fe,{discrete:!0})};if(!S(_e.target)){o.removeEventListener("click",Y.current),j(),L.current=!1;return}const Fe={originalEvent:_e};x.current=!0,I.current=d&&_e.button===0,F.current.clear(),!d||_e.button!==0?De():(o.removeEventListener("click",Y.current),Y.current=De,o.addEventListener("click",Y.current,{once:!0}))}else o.removeEventListener("click",Y.current),j();L.current=!1},ue=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const _e of ue)o.addEventListener(_e,re,!0),o.addEventListener(_e,ee);const Ee=window.setTimeout(()=>{o.addEventListener("pointerdown",he)},0);return()=>{window.clearTimeout(Ee),o.removeEventListener("pointerdown",he),o.removeEventListener("click",Y.current);for(const _e of ue)o.removeEventListener(_e,re,!0),o.removeEventListener(_e,ee)}},[o,v,d,I,f,S]),{onPointerDownCapture:()=>L.current=!0}}function useFocusOutside(n,e=globalThis==null?void 0:globalThis.document){const o=useCallbackRef$1(n),d=reactExports.useRef(!1);return reactExports.useEffect(()=>{const I=f=>{f.target&&!d.current&&handleAndDispatchCustomEvent(FOCUS_OUTSIDE,o,{originalEvent:f},{discrete:!1})};return e.addEventListener("focusin",I),()=>e.removeEventListener("focusin",I)},[e,o]),{onFocusCapture:()=>d.current=!0,onBlurCapture:()=>d.current=!1}}function dispatchUpdate(){const n=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(n)}function handleAndDispatchCustomEvent(n,e,o,{discrete:d}){const I=o.originalEvent.target,f=new CustomEvent(n,{bubbles:!1,cancelable:!0,detail:o});e&&I.addEventListener(n,e,{once:!0}),d?dispatchDiscreteCustomEvent(I,f):I.dispatchEvent(f)}var count$1=0,guards=null;function useFocusGuards(){reactExports.useEffect(()=>{guards||(guards={start:createFocusGuard(),end:createFocusGuard()});const{start:n,end:e}=guards;return document.body.firstElementChild!==n&&document.body.insertAdjacentElement("afterbegin",n),document.body.lastElementChild!==e&&document.body.insertAdjacentElement("beforeend",e),count$1++,()=>{count$1===1&&(guards==null||guards.start.remove(),guards==null||guards.end.remove(),guards=null),count$1=Math.max(0,count$1-1)}},[])}function createFocusGuard(){const n=document.createElement("span");return n.setAttribute("data-radix-focus-guard",""),n.tabIndex=0,n.style.outline="none",n.style.opacity="0",n.style.position="fixed",n.style.pointerEvents="none",n}var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=reactExports.forwardRef((n,e)=>{const{loop:o=!1,trapped:d=!1,onMountAutoFocus:I,onUnmountAutoFocus:f,...S}=n,[v,L]=reactExports.useState(null),x=useCallbackRef$1(I),F=useCallbackRef$1(f),Y=reactExports.useRef(null),j=useComposedRefs(e,L),W=reactExports.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;reactExports.useEffect(()=>{if(d){let ee=function(_e){if(W.paused||!v)return;const De=_e.target;v.contains(De)?Y.current=De:focus(Y.current,{select:!0})},he=function(_e){if(W.paused||!v)return;const De=_e.relatedTarget;De!==null&&(v.contains(De)||focus(Y.current,{select:!0}))},ue=function(_e){if(document.activeElement===document.body)for(const Fe of _e)Fe.removedNodes.length>0&&focus(v)};document.addEventListener("focusin",ee),document.addEventListener("focusout",he);const Ee=new MutationObserver(ue);return v&&Ee.observe(v,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",ee),document.removeEventListener("focusout",he),Ee.disconnect()}}},[d,v,W.paused]),reactExports.useEffect(()=>{if(v){focusScopesStack.add(W);const ee=document.activeElement;if(!v.contains(ee)){const ue=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS);v.addEventListener(AUTOFOCUS_ON_MOUNT,x),v.dispatchEvent(ue),ue.defaultPrevented||(focusFirst(removeLinks(getTabbableCandidates(v)),{select:!0}),document.activeElement===ee&&focus(v))}return()=>{v.removeEventListener(AUTOFOCUS_ON_MOUNT,x),setTimeout(()=>{const ue=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS);v.addEventListener(AUTOFOCUS_ON_UNMOUNT,F),v.dispatchEvent(ue),ue.defaultPrevented||focus(ee??document.body,{select:!0}),v.removeEventListener(AUTOFOCUS_ON_UNMOUNT,F),focusScopesStack.remove(W)},0)}}},[v,x,F,W]);const re=reactExports.useCallback(ee=>{if(!o&&!d||W.paused)return;const he=ee.key==="Tab"&&!ee.altKey&&!ee.ctrlKey&&!ee.metaKey,ue=document.activeElement;if(he&&ue){const Ee=ee.currentTarget,[_e,De]=getTabbableEdges(Ee);_e&&De?!ee.shiftKey&&ue===De?(ee.preventDefault(),o&&focus(_e,{select:!0})):ee.shiftKey&&ue===_e&&(ee.preventDefault(),o&&focus(De,{select:!0})):ue===Ee&&ee.preventDefault()}},[o,d,W.paused]);return jsxRuntimeExports.jsx(Primitive.div,{tabIndex:-1,...S,ref:j,onKeyDown:re})});FocusScope.displayName=FOCUS_SCOPE_NAME;function focusFirst(n,{select:e=!1}={}){const o=document.activeElement;for(const d of n)if(focus(d,{select:e}),document.activeElement!==o)return}function getTabbableEdges(n){const e=getTabbableCandidates(n),o=findVisible(e,n),d=findVisible(e.reverse(),n);return[o,d]}function getTabbableCandidates(n){const e=[],o=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:d=>{const I=d.tagName==="INPUT"&&d.type==="hidden";return d.disabled||d.hidden||I?NodeFilter.FILTER_SKIP:d.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)e.push(o.currentNode);return e}function findVisible(n,e){const o=typeof e.checkVisibility=="function"&&e.checkVisibility({checkVisibilityCSS:!0});for(const d of n)if(!(o?!d.checkVisibility({checkVisibilityCSS:!0}):isHidden(d,{upTo:e})))return d}function isHidden(n,{upTo:e}){if(getComputedStyle(n).visibility==="hidden")return!0;for(;n;){if(e!==void 0&&n===e)return!1;if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}function isSelectableInput(n){return n instanceof HTMLInputElement&&"select"in n}function focus(n,{select:e=!1}={}){if(n&&n.focus){const o=document.activeElement;n.focus({preventScroll:!0}),n!==o&&isSelectableInput(n)&&e&&n.select()}}var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let n=[];return{add(e){const o=n[0];e!==o&&(o==null||o.pause()),n=arrayRemove(n,e),n.unshift(e)},remove(e){var o;n=arrayRemove(n,e),(o=n[0])==null||o.resume()}}}function arrayRemove(n,e){const o=[...n],d=o.indexOf(e);return d!==-1&&o.splice(d,1),o}function removeLinks(n){return n.filter(e=>e.tagName!=="A")}var useReactId=React2[" useId ".trim().toString()]||(()=>{}),count=0;function useId(n){const[e,o]=reactExports.useState(useReactId());return useLayoutEffect2(()=>{o(d=>d??String(count++))},[n]),e?`radix-${e}`:""}const sides=["top","right","bottom","left"],min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=n=>({x:n,y:n}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"};function clamp$1(n,e,o){return max(n,min(e,o))}function evaluate(n,e){return typeof n=="function"?n(e):n}function getSide(n){return n.split("-")[0]}function getAlignment(n){return n.split("-")[1]}function getOppositeAxis(n){return n==="x"?"y":"x"}function getAxisLength(n){return n==="y"?"height":"width"}function getSideAxis(n){const e=n[0];return e==="t"||e==="b"?"y":"x"}function getAlignmentAxis(n){return getOppositeAxis(getSideAxis(n))}function getAlignmentSides(n,e,o){o===void 0&&(o=!1);const d=getAlignment(n),I=getAlignmentAxis(n),f=getAxisLength(I);let S=I==="x"?d===(o?"end":"start")?"right":"left":d==="start"?"bottom":"top";return e.reference[f]>e.floating[f]&&(S=getOppositePlacement(S)),[S,getOppositePlacement(S)]}function getExpandedPlacements(n){const e=getOppositePlacement(n);return[getOppositeAlignmentPlacement(n),e,getOppositeAlignmentPlacement(e)]}function getOppositeAlignmentPlacement(n){return n.includes("start")?n.replace("start","end"):n.replace("end","start")}const lrPlacement=["left","right"],rlPlacement=["right","left"],tbPlacement=["top","bottom"],btPlacement=["bottom","top"];function getSideList(n,e,o){switch(n){case"top":case"bottom":return o?e?rlPlacement:lrPlacement:e?lrPlacement:rlPlacement;case"left":case"right":return e?tbPlacement:btPlacement;default:return[]}}function getOppositeAxisPlacements(n,e,o,d){const I=getAlignment(n);let f=getSideList(getSide(n),o==="start",d);return I&&(f=f.map(S=>S+"-"+I),e&&(f=f.concat(f.map(getOppositeAlignmentPlacement)))),f}function getOppositePlacement(n){const e=getSide(n);return oppositeSideMap[e]+n.slice(e.length)}function expandPaddingObject(n){return{top:0,right:0,bottom:0,left:0,...n}}function getPaddingObject(n){return typeof n!="number"?expandPaddingObject(n):{top:n,right:n,bottom:n,left:n}}function rectToClientRect(n){const{x:e,y:o,width:d,height:I}=n;return{width:d,height:I,top:o,left:e,right:e+d,bottom:o+I,x:e,y:o}}function computeCoordsFromPlacement(n,e,o){let{reference:d,floating:I}=n;const f=getSideAxis(e),S=getAlignmentAxis(e),v=getAxisLength(S),L=getSide(e),x=f==="y",F=d.x+d.width/2-I.width/2,Y=d.y+d.height/2-I.height/2,j=d[v]/2-I[v]/2;let W;switch(L){case"top":W={x:F,y:d.y-I.height};break;case"bottom":W={x:F,y:d.y+d.height};break;case"right":W={x:d.x+d.width,y:Y};break;case"left":W={x:d.x-I.width,y:Y};break;default:W={x:d.x,y:d.y}}switch(getAlignment(e)){case"start":W[S]-=j*(o&&x?-1:1);break;case"end":W[S]+=j*(o&&x?-1:1);break}return W}async function detectOverflow(n,e){var o;e===void 0&&(e={});const{x:d,y:I,platform:f,rects:S,elements:v,strategy:L}=n,{boundary:x="clippingAncestors",rootBoundary:F="viewport",elementContext:Y="floating",altBoundary:j=!1,padding:W=0}=evaluate(e,n),re=getPaddingObject(W),he=v[j?Y==="floating"?"reference":"floating":Y],ue=rectToClientRect(await f.getClippingRect({element:(o=await(f.isElement==null?void 0:f.isElement(he)))==null||o?he:he.contextElement||await(f.getDocumentElement==null?void 0:f.getDocumentElement(v.floating)),boundary:x,rootBoundary:F,strategy:L})),Ee=Y==="floating"?{x:d,y:I,width:S.floating.width,height:S.floating.height}:S.reference,_e=await(f.getOffsetParent==null?void 0:f.getOffsetParent(v.floating)),De=await(f.isElement==null?void 0:f.isElement(_e))?await(f.getScale==null?void 0:f.getScale(_e))||{x:1,y:1}:{x:1,y:1},Fe=rectToClientRect(f.convertOffsetParentRelativeRectToViewportRelativeRect?await f.convertOffsetParentRelativeRectToViewportRelativeRect({elements:v,rect:Ee,offsetParent:_e,strategy:L}):Ee);return{top:(ue.top-Fe.top+re.top)/De.y,bottom:(Fe.bottom-ue.bottom+re.bottom)/De.y,left:(ue.left-Fe.left+re.left)/De.x,right:(Fe.right-ue.right+re.right)/De.x}}const MAX_RESET_COUNT=50,computePosition$1=async(n,e,o)=>{const{placement:d="bottom",strategy:I="absolute",middleware:f=[],platform:S}=o,v=S.detectOverflow?S:{...S,detectOverflow},L=await(S.isRTL==null?void 0:S.isRTL(e));let x=await S.getElementRects({reference:n,floating:e,strategy:I}),{x:F,y:Y}=computeCoordsFromPlacement(x,d,L),j=d,W=0;const re={};for(let ee=0;ee({name:"arrow",options:n,async fn(e){const{x:o,y:d,placement:I,rects:f,platform:S,elements:v,middlewareData:L}=e,{element:x,padding:F=0}=evaluate(n,e)||{};if(x==null)return{};const Y=getPaddingObject(F),j={x:o,y:d},W=getAlignmentAxis(I),re=getAxisLength(W),ee=await S.getDimensions(x),he=W==="y",ue=he?"top":"left",Ee=he?"bottom":"right",_e=he?"clientHeight":"clientWidth",De=f.reference[re]+f.reference[W]-j[W]-f.floating[re],Fe=j[W]-f.reference[W],Ve=await(S.getOffsetParent==null?void 0:S.getOffsetParent(x));let Ge=Ve?Ve[_e]:0;(!Ge||!await(S.isElement==null?void 0:S.isElement(Ve)))&&(Ge=v.floating[_e]||f.floating[re]);const He=De/2-Fe/2,At=Ge/2-ee[re]/2-1,Bt=min(Y[ue],At),Tt=min(Y[Ee],At),rt=Bt,ye=Ge-ee[re]-Tt,lt=Ge/2-ee[re]/2+He,Yt=clamp$1(rt,lt,ye),ct=!L.arrow&&getAlignment(I)!=null&<!==Yt&&f.reference[re]/2-(ltlt<=0)){var Tt,rt;const lt=(((Tt=f.flip)==null?void 0:Tt.index)||0)+1,Yt=Ge[lt];if(Yt&&(!(Y==="alignment"?Ee!==getSideAxis(Yt):!1)||Bt.every(vt=>getSideAxis(vt.placement)===Ee?vt.overflows[0]>0:!0)))return{data:{index:lt,overflows:Bt},reset:{placement:Yt}};let ct=(rt=Bt.filter(ht=>ht.overflows[0]<=0).sort((ht,vt)=>ht.overflows[1]-vt.overflows[1])[0])==null?void 0:rt.placement;if(!ct)switch(W){case"bestFit":{var ye;const ht=(ye=Bt.filter(vt=>{if(Ve){const ar=getSideAxis(vt.placement);return ar===Ee||ar==="y"}return!0}).map(vt=>[vt.placement,vt.overflows.filter(ar=>ar>0).reduce((ar,jt)=>ar+jt,0)]).sort((vt,ar)=>vt[1]-ar[1])[0])==null?void 0:ye[0];ht&&(ct=ht);break}case"initialPlacement":ct=v;break}if(I!==ct)return{reset:{placement:ct}}}return{}}}};function getSideOffsets(n,e){return{top:n.top-e.height,right:n.right-e.width,bottom:n.bottom-e.height,left:n.left-e.width}}function isAnySideFullyClipped(n){return sides.some(e=>n[e]>=0)}const hide$2=function(n){return n===void 0&&(n={}),{name:"hide",options:n,async fn(e){const{rects:o,platform:d}=e,{strategy:I="referenceHidden",...f}=evaluate(n,e);switch(I){case"referenceHidden":{const S=await d.detectOverflow(e,{...f,elementContext:"reference"}),v=getSideOffsets(S,o.reference);return{data:{referenceHiddenOffsets:v,referenceHidden:isAnySideFullyClipped(v)}}}case"escaped":{const S=await d.detectOverflow(e,{...f,altBoundary:!0}),v=getSideOffsets(S,o.floating);return{data:{escapedOffsets:v,escaped:isAnySideFullyClipped(v)}}}default:return{}}}}},originSides=new Set(["left","top"]);async function convertValueToCoords(n,e){const{placement:o,platform:d,elements:I}=n,f=await(d.isRTL==null?void 0:d.isRTL(I.floating)),S=getSide(o),v=getAlignment(o),L=getSideAxis(o)==="y",x=originSides.has(S)?-1:1,F=f&&L?-1:1,Y=evaluate(e,n);let{mainAxis:j,crossAxis:W,alignmentAxis:re}=typeof Y=="number"?{mainAxis:Y,crossAxis:0,alignmentAxis:null}:{mainAxis:Y.mainAxis||0,crossAxis:Y.crossAxis||0,alignmentAxis:Y.alignmentAxis};return v&&typeof re=="number"&&(W=v==="end"?re*-1:re),L?{x:W*F,y:j*x}:{x:j*x,y:W*F}}const offset$2=function(n){return n===void 0&&(n=0),{name:"offset",options:n,async fn(e){var o,d;const{x:I,y:f,placement:S,middlewareData:v}=e,L=await convertValueToCoords(e,n);return S===((o=v.offset)==null?void 0:o.placement)&&(d=v.arrow)!=null&&d.alignmentOffset?{}:{x:I+L.x,y:f+L.y,data:{...L,placement:S}}}}},shift$2=function(n){return n===void 0&&(n={}),{name:"shift",options:n,async fn(e){const{x:o,y:d,placement:I,platform:f}=e,{mainAxis:S=!0,crossAxis:v=!1,limiter:L={fn:ue=>{let{x:Ee,y:_e}=ue;return{x:Ee,y:_e}}},...x}=evaluate(n,e),F={x:o,y:d},Y=await f.detectOverflow(e,x),j=getSideAxis(getSide(I)),W=getOppositeAxis(j);let re=F[W],ee=F[j];if(S){const ue=W==="y"?"top":"left",Ee=W==="y"?"bottom":"right",_e=re+Y[ue],De=re-Y[Ee];re=clamp$1(_e,re,De)}if(v){const ue=j==="y"?"top":"left",Ee=j==="y"?"bottom":"right",_e=ee+Y[ue],De=ee-Y[Ee];ee=clamp$1(_e,ee,De)}const he=L.fn({...e,[W]:re,[j]:ee});return{...he,data:{x:he.x-o,y:he.y-d,enabled:{[W]:S,[j]:v}}}}}},limitShift$2=function(n){return n===void 0&&(n={}),{options:n,fn(e){const{x:o,y:d,placement:I,rects:f,middlewareData:S}=e,{offset:v=0,mainAxis:L=!0,crossAxis:x=!0}=evaluate(n,e),F={x:o,y:d},Y=getSideAxis(I),j=getOppositeAxis(Y);let W=F[j],re=F[Y];const ee=evaluate(v,e),he=typeof ee=="number"?{mainAxis:ee,crossAxis:0}:{mainAxis:0,crossAxis:0,...ee};if(L){const _e=j==="y"?"height":"width",De=f.reference[j]-f.floating[_e]+he.mainAxis,Fe=f.reference[j]+f.reference[_e]-he.mainAxis;WFe&&(W=Fe)}if(x){var ue,Ee;const _e=j==="y"?"width":"height",De=originSides.has(getSide(I)),Fe=f.reference[Y]-f.floating[_e]+(De&&((ue=S.offset)==null?void 0:ue[Y])||0)+(De?0:he.crossAxis),Ve=f.reference[Y]+f.reference[_e]+(De?0:((Ee=S.offset)==null?void 0:Ee[Y])||0)-(De?he.crossAxis:0);reVe&&(re=Ve)}return{[j]:W,[Y]:re}}}},size$2=function(n){return n===void 0&&(n={}),{name:"size",options:n,async fn(e){var o,d;const{placement:I,rects:f,platform:S,elements:v}=e,{apply:L=()=>{},...x}=evaluate(n,e),F=await S.detectOverflow(e,x),Y=getSide(I),j=getAlignment(I),W=getSideAxis(I)==="y",{width:re,height:ee}=f.floating;let he,ue;Y==="top"||Y==="bottom"?(he=Y,ue=j===(await(S.isRTL==null?void 0:S.isRTL(v.floating))?"start":"end")?"left":"right"):(ue=Y,he=j==="end"?"top":"bottom");const Ee=ee-F.top-F.bottom,_e=re-F.left-F.right,De=min(ee-F[he],Ee),Fe=min(re-F[ue],_e),Ve=!e.middlewareData.shift;let Ge=De,He=Fe;if((o=e.middlewareData.shift)!=null&&o.enabled.x&&(He=_e),(d=e.middlewareData.shift)!=null&&d.enabled.y&&(Ge=Ee),Ve&&!j){const Bt=max(F.left,0),Tt=max(F.right,0),rt=max(F.top,0),ye=max(F.bottom,0);W?He=re-2*(Bt!==0||Tt!==0?Bt+Tt:max(F.left,F.right)):Ge=ee-2*(rt!==0||ye!==0?rt+ye:max(F.top,F.bottom))}await L({...e,availableWidth:He,availableHeight:Ge});const At=await S.getDimensions(v.floating);return re!==At.width||ee!==At.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return typeof window<"u"}function getNodeName(n){return isNode(n)?(n.nodeName||"").toLowerCase():"#document"}function getWindow(n){var e;return(n==null||(e=n.ownerDocument)==null?void 0:e.defaultView)||window}function getDocumentElement(n){var e;return(e=(isNode(n)?n.ownerDocument:n.document)||window.document)==null?void 0:e.documentElement}function isNode(n){return hasWindow()?n instanceof Node||n instanceof getWindow(n).Node:!1}function isElement(n){return hasWindow()?n instanceof Element||n instanceof getWindow(n).Element:!1}function isHTMLElement(n){return hasWindow()?n instanceof HTMLElement||n instanceof getWindow(n).HTMLElement:!1}function isShadowRoot(n){return!hasWindow()||typeof ShadowRoot>"u"?!1:n instanceof ShadowRoot||n instanceof getWindow(n).ShadowRoot}function isOverflowElement(n){const{overflow:e,overflowX:o,overflowY:d,display:I}=getComputedStyle$1(n);return/auto|scroll|overlay|hidden|clip/.test(e+d+o)&&I!=="inline"&&I!=="contents"}function isTableElement(n){return/^(table|td|th)$/.test(getNodeName(n))}function isTopLayer(n){try{if(n.matches(":popover-open"))return!0}catch{}try{return n.matches(":modal")}catch{return!1}}const willChangeRe=/transform|translate|scale|rotate|perspective|filter/,containRe=/paint|layout|strict|content/,isNotNone=n=>!!n&&n!=="none";let isWebKitValue;function isContainingBlock(n){const e=isElement(n)?getComputedStyle$1(n):n;return isNotNone(e.transform)||isNotNone(e.translate)||isNotNone(e.scale)||isNotNone(e.rotate)||isNotNone(e.perspective)||!isWebKit()&&(isNotNone(e.backdropFilter)||isNotNone(e.filter))||willChangeRe.test(e.willChange||"")||containRe.test(e.contain||"")}function getContainingBlock(n){let e=getParentNode(n);for(;isHTMLElement(e)&&!isLastTraversableNode(e);){if(isContainingBlock(e))return e;if(isTopLayer(e))return null;e=getParentNode(e)}return null}function isWebKit(){return isWebKitValue==null&&(isWebKitValue=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),isWebKitValue}function isLastTraversableNode(n){return/^(html|body|#document)$/.test(getNodeName(n))}function getComputedStyle$1(n){return getWindow(n).getComputedStyle(n)}function getNodeScroll(n){return isElement(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function getParentNode(n){if(getNodeName(n)==="html")return n;const e=n.assignedSlot||n.parentNode||isShadowRoot(n)&&n.host||getDocumentElement(n);return isShadowRoot(e)?e.host:e}function getNearestOverflowAncestor(n){const e=getParentNode(n);return isLastTraversableNode(e)?n.ownerDocument?n.ownerDocument.body:n.body:isHTMLElement(e)&&isOverflowElement(e)?e:getNearestOverflowAncestor(e)}function getOverflowAncestors(n,e,o){var d;e===void 0&&(e=[]),o===void 0&&(o=!0);const I=getNearestOverflowAncestor(n),f=I===((d=n.ownerDocument)==null?void 0:d.body),S=getWindow(I);if(f){const v=getFrameElement(S);return e.concat(S,S.visualViewport||[],isOverflowElement(I)?I:[],v&&o?getOverflowAncestors(v):[])}else return e.concat(I,getOverflowAncestors(I,[],o))}function getFrameElement(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}function getCssDimensions(n){const e=getComputedStyle$1(n);let o=parseFloat(e.width)||0,d=parseFloat(e.height)||0;const I=isHTMLElement(n),f=I?n.offsetWidth:o,S=I?n.offsetHeight:d,v=round(o)!==f||round(d)!==S;return v&&(o=f,d=S),{width:o,height:d,$:v}}function unwrapElement(n){return isElement(n)?n:n.contextElement}function getScale(n){const e=unwrapElement(n);if(!isHTMLElement(e))return createCoords(1);const o=e.getBoundingClientRect(),{width:d,height:I,$:f}=getCssDimensions(e);let S=(f?round(o.width):o.width)/d,v=(f?round(o.height):o.height)/I;return(!S||!Number.isFinite(S))&&(S=1),(!v||!Number.isFinite(v))&&(v=1),{x:S,y:v}}const noOffsets=createCoords(0);function getVisualOffsets(n){const e=getWindow(n);return!isWebKit()||!e.visualViewport?noOffsets:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function shouldAddVisualOffsets(n,e,o){return e===void 0&&(e=!1),!o||e&&o!==getWindow(n)?!1:e}function getBoundingClientRect(n,e,o,d){e===void 0&&(e=!1),o===void 0&&(o=!1);const I=n.getBoundingClientRect(),f=unwrapElement(n);let S=createCoords(1);e&&(d?isElement(d)&&(S=getScale(d)):S=getScale(n));const v=shouldAddVisualOffsets(f,o,d)?getVisualOffsets(f):createCoords(0);let L=(I.left+v.x)/S.x,x=(I.top+v.y)/S.y,F=I.width/S.x,Y=I.height/S.y;if(f){const j=getWindow(f),W=d&&isElement(d)?getWindow(d):d;let re=j,ee=getFrameElement(re);for(;ee&&d&&W!==re;){const he=getScale(ee),ue=ee.getBoundingClientRect(),Ee=getComputedStyle$1(ee),_e=ue.left+(ee.clientLeft+parseFloat(Ee.paddingLeft))*he.x,De=ue.top+(ee.clientTop+parseFloat(Ee.paddingTop))*he.y;L*=he.x,x*=he.y,F*=he.x,Y*=he.y,L+=_e,x+=De,re=getWindow(ee),ee=getFrameElement(re)}}return rectToClientRect({width:F,height:Y,x:L,y:x})}function getWindowScrollBarX(n,e){const o=getNodeScroll(n).scrollLeft;return e?e.left+o:getBoundingClientRect(getDocumentElement(n)).left+o}function getHTMLOffset(n,e){const o=n.getBoundingClientRect(),d=o.left+e.scrollLeft-getWindowScrollBarX(n,o),I=o.top+e.scrollTop;return{x:d,y:I}}function convertOffsetParentRelativeRectToViewportRelativeRect(n){let{elements:e,rect:o,offsetParent:d,strategy:I}=n;const f=I==="fixed",S=getDocumentElement(d),v=e?isTopLayer(e.floating):!1;if(d===S||v&&f)return o;let L={scrollLeft:0,scrollTop:0},x=createCoords(1);const F=createCoords(0),Y=isHTMLElement(d);if((Y||!Y&&!f)&&((getNodeName(d)!=="body"||isOverflowElement(S))&&(L=getNodeScroll(d)),Y)){const W=getBoundingClientRect(d);x=getScale(d),F.x=W.x+d.clientLeft,F.y=W.y+d.clientTop}const j=S&&!Y&&!f?getHTMLOffset(S,L):createCoords(0);return{width:o.width*x.x,height:o.height*x.y,x:o.x*x.x-L.scrollLeft*x.x+F.x+j.x,y:o.y*x.y-L.scrollTop*x.y+F.y+j.y}}function getClientRects(n){return Array.from(n.getClientRects())}function getDocumentRect(n){const e=getDocumentElement(n),o=getNodeScroll(n),d=n.ownerDocument.body,I=max(e.scrollWidth,e.clientWidth,d.scrollWidth,d.clientWidth),f=max(e.scrollHeight,e.clientHeight,d.scrollHeight,d.clientHeight);let S=-o.scrollLeft+getWindowScrollBarX(n);const v=-o.scrollTop;return getComputedStyle$1(d).direction==="rtl"&&(S+=max(e.clientWidth,d.clientWidth)-I),{width:I,height:f,x:S,y:v}}const SCROLLBAR_MAX=25;function getViewportRect(n,e){const o=getWindow(n),d=getDocumentElement(n),I=o.visualViewport;let f=d.clientWidth,S=d.clientHeight,v=0,L=0;if(I){f=I.width,S=I.height;const F=isWebKit();(!F||F&&e==="fixed")&&(v=I.offsetLeft,L=I.offsetTop)}const x=getWindowScrollBarX(d);if(x<=0){const F=d.ownerDocument,Y=F.body,j=getComputedStyle(Y),W=F.compatMode==="CSS1Compat"&&parseFloat(j.marginLeft)+parseFloat(j.marginRight)||0,re=Math.abs(d.clientWidth-Y.clientWidth-W);re<=SCROLLBAR_MAX&&(f-=re)}else x<=SCROLLBAR_MAX&&(f+=x);return{width:f,height:S,x:v,y:L}}function getInnerBoundingClientRect(n,e){const o=getBoundingClientRect(n,!0,e==="fixed"),d=o.top+n.clientTop,I=o.left+n.clientLeft,f=isHTMLElement(n)?getScale(n):createCoords(1),S=n.clientWidth*f.x,v=n.clientHeight*f.y,L=I*f.x,x=d*f.y;return{width:S,height:v,x:L,y:x}}function getClientRectFromClippingAncestor(n,e,o){let d;if(e==="viewport")d=getViewportRect(n,o);else if(e==="document")d=getDocumentRect(getDocumentElement(n));else if(isElement(e))d=getInnerBoundingClientRect(e,o);else{const I=getVisualOffsets(n);d={x:e.x-I.x,y:e.y-I.y,width:e.width,height:e.height}}return rectToClientRect(d)}function hasFixedPositionAncestor(n,e){const o=getParentNode(n);return o===e||!isElement(o)||isLastTraversableNode(o)?!1:getComputedStyle$1(o).position==="fixed"||hasFixedPositionAncestor(o,e)}function getClippingElementAncestors(n,e){const o=e.get(n);if(o)return o;let d=getOverflowAncestors(n,[],!1).filter(v=>isElement(v)&&getNodeName(v)!=="body"),I=null;const f=getComputedStyle$1(n).position==="fixed";let S=f?getParentNode(n):n;for(;isElement(S)&&!isLastTraversableNode(S);){const v=getComputedStyle$1(S),L=isContainingBlock(S);!L&&v.position==="fixed"&&(I=null),(f?!L&&!I:!L&&v.position==="static"&&!!I&&(I.position==="absolute"||I.position==="fixed")||isOverflowElement(S)&&!L&&hasFixedPositionAncestor(n,S))?d=d.filter(F=>F!==S):I=v,S=getParentNode(S)}return e.set(n,d),d}function getClippingRect(n){let{element:e,boundary:o,rootBoundary:d,strategy:I}=n;const S=[...o==="clippingAncestors"?isTopLayer(e)?[]:getClippingElementAncestors(e,this._c):[].concat(o),d],v=getClientRectFromClippingAncestor(e,S[0],I);let L=v.top,x=v.right,F=v.bottom,Y=v.left;for(let j=1;j{S(!1,1e-7)},1e3)}Ge===1&&!rectsAreEqual(x,n.getBoundingClientRect())&&S(),De=!1}try{o=new IntersectionObserver(Fe,{..._e,root:I.ownerDocument})}catch{o=new IntersectionObserver(Fe,_e)}o.observe(n)}return S(!0),f}function autoUpdate(n,e,o,d){d===void 0&&(d={});const{ancestorScroll:I=!0,ancestorResize:f=!0,elementResize:S=typeof ResizeObserver=="function",layoutShift:v=typeof IntersectionObserver=="function",animationFrame:L=!1}=d,x=unwrapElement(n),F=I||f?[...x?getOverflowAncestors(x):[],...e?getOverflowAncestors(e):[]]:[];F.forEach(ue=>{I&&ue.addEventListener("scroll",o,{passive:!0}),f&&ue.addEventListener("resize",o)});const Y=x&&v?observeMove(x,o):null;let j=-1,W=null;S&&(W=new ResizeObserver(ue=>{let[Ee]=ue;Ee&&Ee.target===x&&W&&e&&(W.unobserve(e),cancelAnimationFrame(j),j=requestAnimationFrame(()=>{var _e;(_e=W)==null||_e.observe(e)})),o()}),x&&!L&&W.observe(x),e&&W.observe(e));let re,ee=L?getBoundingClientRect(n):null;L&&he();function he(){const ue=getBoundingClientRect(n);ee&&!rectsAreEqual(ee,ue)&&o(),ee=ue,re=requestAnimationFrame(he)}return o(),()=>{var ue;F.forEach(Ee=>{I&&Ee.removeEventListener("scroll",o),f&&Ee.removeEventListener("resize",o)}),Y==null||Y(),(ue=W)==null||ue.disconnect(),W=null,L&&cancelAnimationFrame(re)}}const offset$1=offset$2,shift$1=shift$2,flip$1=flip$2,size$1=size$2,hide$1=hide$2,arrow$2=arrow$3,limitShift$1=limitShift$2,computePosition=(n,e,o)=>{const d=new Map,I={platform,...o},f={...I.platform,_c:d};return computePosition$1(n,e,{...I,platform:f})};var isClient=typeof document<"u",noop=function(){},index=isClient?reactExports.useLayoutEffect:noop;function deepEqual(n,e){if(n===e)return!0;if(typeof n!=typeof e)return!1;if(typeof n=="function"&&n.toString()===e.toString())return!0;let o,d,I;if(n&&e&&typeof n=="object"){if(Array.isArray(n)){if(o=n.length,o!==e.length)return!1;for(d=o;d--!==0;)if(!deepEqual(n[d],e[d]))return!1;return!0}if(I=Object.keys(n),o=I.length,o!==Object.keys(e).length)return!1;for(d=o;d--!==0;)if(!{}.hasOwnProperty.call(e,I[d]))return!1;for(d=o;d--!==0;){const f=I[d];if(!(f==="_owner"&&n.$$typeof)&&!deepEqual(n[f],e[f]))return!1}return!0}return n!==n&&e!==e}function getDPR(n){return typeof window>"u"?1:(n.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(n,e){const o=getDPR(n);return Math.round(e*o)/o}function useLatestRef(n){const e=reactExports.useRef(n);return index(()=>{e.current=n}),e}function useFloating(n){n===void 0&&(n={});const{placement:e="bottom",strategy:o="absolute",middleware:d=[],platform:I,elements:{reference:f,floating:S}={},transform:v=!0,whileElementsMounted:L,open:x}=n,[F,Y]=reactExports.useState({x:0,y:0,strategy:o,placement:e,middlewareData:{},isPositioned:!1}),[j,W]=reactExports.useState(d);deepEqual(j,d)||W(d);const[re,ee]=reactExports.useState(null),[he,ue]=reactExports.useState(null),Ee=reactExports.useCallback(vt=>{vt!==Ve.current&&(Ve.current=vt,ee(vt))},[]),_e=reactExports.useCallback(vt=>{vt!==Ge.current&&(Ge.current=vt,ue(vt))},[]),De=f||re,Fe=S||he,Ve=reactExports.useRef(null),Ge=reactExports.useRef(null),He=reactExports.useRef(F),At=L!=null,Bt=useLatestRef(L),Tt=useLatestRef(I),rt=useLatestRef(x),ye=reactExports.useCallback(()=>{if(!Ve.current||!Ge.current)return;const vt={placement:e,strategy:o,middleware:j};Tt.current&&(vt.platform=Tt.current),computePosition(Ve.current,Ge.current,vt).then(ar=>{const jt={...ar,isPositioned:rt.current!==!1};lt.current&&!deepEqual(He.current,jt)&&(He.current=jt,reactDomExports.flushSync(()=>{Y(jt)}))})},[j,e,o,Tt,rt]);index(()=>{x===!1&&He.current.isPositioned&&(He.current.isPositioned=!1,Y(vt=>({...vt,isPositioned:!1})))},[x]);const lt=reactExports.useRef(!1);index(()=>(lt.current=!0,()=>{lt.current=!1}),[]),index(()=>{if(De&&(Ve.current=De),Fe&&(Ge.current=Fe),De&&Fe){if(Bt.current)return Bt.current(De,Fe,ye);ye()}},[De,Fe,ye,Bt,At]);const Yt=reactExports.useMemo(()=>({reference:Ve,floating:Ge,setReference:Ee,setFloating:_e}),[Ee,_e]),ct=reactExports.useMemo(()=>({reference:De,floating:Fe}),[De,Fe]),ht=reactExports.useMemo(()=>{const vt={position:o,left:0,top:0};if(!ct.floating)return vt;const ar=roundByDPR(ct.floating,F.x),jt=roundByDPR(ct.floating,F.y);return v?{...vt,transform:"translate("+ar+"px, "+jt+"px)",...getDPR(ct.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:ar,top:jt}},[o,v,ct.floating,F.x,F.y]);return reactExports.useMemo(()=>({...F,update:ye,refs:Yt,elements:ct,floatingStyles:ht}),[F,ye,Yt,ct,ht])}const arrow$1=n=>{function e(o){return{}.hasOwnProperty.call(o,"current")}return{name:"arrow",options:n,fn(o){const{element:d,padding:I}=typeof n=="function"?n(o):n;return d&&e(d)?d.current!=null?arrow$2({element:d.current,padding:I}).fn(o):{}:d?arrow$2({element:d,padding:I}).fn(o):{}}}},offset=(n,e)=>{const o=offset$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},shift=(n,e)=>{const o=shift$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},limitShift=(n,e)=>({fn:limitShift$1(n).fn,options:[n,e]}),flip=(n,e)=>{const o=flip$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},size=(n,e)=>{const o=size$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},hide=(n,e)=>{const o=hide$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},arrow=(n,e)=>{const o=arrow$1(n);return{name:o.name,fn:o.fn,options:[n,e]}};var NAME$1="Arrow",Arrow$1=reactExports.forwardRef((n,e)=>{const{children:o,width:d=10,height:I=5,...f}=n;return jsxRuntimeExports.jsx(Primitive.svg,{...f,ref:e,width:d,height:I,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:n.asChild?o:jsxRuntimeExports.jsx("polygon",{points:"0,0 30,0 15,10"})})});Arrow$1.displayName=NAME$1;var Root=Arrow$1;function useSize(n){const[e,o]=reactExports.useState(void 0);return useLayoutEffect2(()=>{if(n){o({width:n.offsetWidth,height:n.offsetHeight});const d=new ResizeObserver(I=>{if(!Array.isArray(I)||!I.length)return;const f=I[0];let S,v;if("borderBoxSize"in f){const L=f.borderBoxSize,x=Array.isArray(L)?L[0]:L;S=x.inlineSize,v=x.blockSize}else S=n.offsetWidth,v=n.offsetHeight;o({width:S,height:v})});return d.observe(n,{box:"border-box"}),()=>d.unobserve(n)}else o(void 0)},[n]),e}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=n=>{const{__scopePopper:e,children:o}=n,[d,I]=reactExports.useState(null),[f,S]=reactExports.useState(void 0);return jsxRuntimeExports.jsx(PopperProvider,{scope:e,anchor:d,onAnchorChange:I,placementState:f,setPlacementState:S,children:o})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$1="PopperAnchor",PopperAnchor=reactExports.forwardRef((n,e)=>{const{__scopePopper:o,virtualRef:d,...I}=n,f=usePopperContext(ANCHOR_NAME$1,o),S=reactExports.useRef(null),v=f.onAnchorChange,L=reactExports.useCallback(re=>{S.current=re,re&&v(re)},[v]),x=useComposedRefs(e,L),F=reactExports.useRef(null);reactExports.useEffect(()=>{if(!d)return;const re=F.current;F.current=d.current,re!==F.current&&v(F.current)});const Y=f.placementState&&getSideAndAlignFromPlacement(f.placementState),j=Y==null?void 0:Y[0],W=Y==null?void 0:Y[1];return d?null:jsxRuntimeExports.jsx(Primitive.div,{"data-radix-popper-side":j,"data-radix-popper-align":W,...I,ref:x})});PopperAnchor.displayName=ANCHOR_NAME$1;var CONTENT_NAME$3="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$3),PopperContent=reactExports.forwardRef((n,e)=>{var pr,ei,_i,Gr,oi,Oi;const{__scopePopper:o,side:d="bottom",sideOffset:I=0,align:f="center",alignOffset:S=0,arrowPadding:v=0,avoidCollisions:L=!0,collisionBoundary:x=[],collisionPadding:F=0,sticky:Y="partial",hideWhenDetached:j=!1,updatePositionStrategy:W="optimized",onPlaced:re,...ee}=n,he=usePopperContext(CONTENT_NAME$3,o),[ue,Ee]=reactExports.useState(null),_e=useComposedRefs(e,Ee),[De,Fe]=reactExports.useState(null),Ve=useSize(De),Ge=(Ve==null?void 0:Ve.width)??0,He=(Ve==null?void 0:Ve.height)??0,At=d+(f!=="center"?"-"+f:""),Bt=typeof F=="number"?F:{top:0,right:0,bottom:0,left:0,...F},Tt=Array.isArray(x)?x:[x],rt=Tt.length>0,ye={padding:Bt,boundary:Tt.filter(isNotNull),altBoundary:rt},{refs:lt,floatingStyles:Yt,placement:ct,isPositioned:ht,middlewareData:vt}=useFloating({strategy:"fixed",placement:At,whileElementsMounted:(..._o)=>autoUpdate(..._o,{animationFrame:W==="always"}),elements:{reference:he.anchor},middleware:[offset({mainAxis:I+He,alignmentAxis:S}),L&&shift({mainAxis:!0,crossAxis:!1,limiter:Y==="partial"?limitShift():void 0,...ye}),L&&flip({...ye}),size({...ye,apply:({elements:_o,rects:$n,availableWidth:gs,availableHeight:Bs})=>{const{width:Kn,height:Tn}=$n.reference,Zn=_o.floating.style;Zn.setProperty("--radix-popper-available-width",`${gs}px`),Zn.setProperty("--radix-popper-available-height",`${Bs}px`),Zn.setProperty("--radix-popper-anchor-width",`${Kn}px`),Zn.setProperty("--radix-popper-anchor-height",`${Tn}px`)}}),De&&arrow({element:De,padding:v}),transformOrigin({arrowWidth:Ge,arrowHeight:He}),j&&hide({strategy:"referenceHidden",...ye,boundary:rt?ye.boundary:void 0})]}),ar=he.setPlacementState;useLayoutEffect2(()=>(ar(ct),()=>{ar(void 0)}),[ct,ar]);const[jt,vr]=getSideAndAlignFromPlacement(ct),ai=useCallbackRef$1(re);useLayoutEffect2(()=>{ht&&(ai==null||ai())},[ht,ai]);const pi=(pr=vt.arrow)==null?void 0:pr.x,yi=(ei=vt.arrow)==null?void 0:ei.y,fi=((_i=vt.arrow)==null?void 0:_i.centerOffset)!==0,[Jn,xr]=reactExports.useState();return useLayoutEffect2(()=>{ue&&xr(window.getComputedStyle(ue).zIndex)},[ue]),jsxRuntimeExports.jsx("div",{ref:lt.setFloating,"data-radix-popper-content-wrapper":"",style:{...Yt,transform:ht?Yt.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Jn,"--radix-popper-transform-origin":[(Gr=vt.transformOrigin)==null?void 0:Gr.x,(oi=vt.transformOrigin)==null?void 0:oi.y].join(" "),...((Oi=vt.hide)==null?void 0:Oi.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:n.dir,children:jsxRuntimeExports.jsx(PopperContentProvider,{scope:o,placedSide:jt,placedAlign:vr,onArrowChange:Fe,arrowX:pi,arrowY:yi,shouldHideArrow:fi,children:jsxRuntimeExports.jsx(Primitive.div,{"data-side":jt,"data-align":vr,...ee,ref:_e,style:{...ee.style,animation:ht?void 0:"none"}})})})});PopperContent.displayName=CONTENT_NAME$3;var ARROW_NAME$2="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},PopperArrow=reactExports.forwardRef(function(e,o){const{__scopePopper:d,...I}=e,f=useContentContext(ARROW_NAME$2,d),S=OPPOSITE_SIDE[f.placedSide];return jsxRuntimeExports.jsx("span",{ref:f.onArrowChange,style:{position:"absolute",left:f.arrowX,top:f.arrowY,[S]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[f.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[f.placedSide],visibility:f.shouldHideArrow?"hidden":void 0},children:jsxRuntimeExports.jsx(Root,{...I,ref:o,style:{...I.style,display:"block"}})})});PopperArrow.displayName=ARROW_NAME$2;function isNotNull(n){return n!==null}var transformOrigin=n=>({name:"transformOrigin",options:n,fn(e){var he,ue,Ee;const{placement:o,rects:d,middlewareData:I}=e,S=((he=I.arrow)==null?void 0:he.centerOffset)!==0,v=S?0:n.arrowWidth,L=S?0:n.arrowHeight,[x,F]=getSideAndAlignFromPlacement(o),Y={start:"0%",center:"50%",end:"100%"}[F],j=(((ue=I.arrow)==null?void 0:ue.x)??0)+v/2,W=(((Ee=I.arrow)==null?void 0:Ee.y)??0)+L/2;let re="",ee="";return x==="bottom"?(re=S?Y:`${j}px`,ee=`${-L}px`):x==="top"?(re=S?Y:`${j}px`,ee=`${d.floating.height+L}px`):x==="right"?(re=`${-L}px`,ee=S?Y:`${W}px`):x==="left"&&(re=`${d.floating.width+L}px`,ee=S?Y:`${W}px`),{data:{x:re,y:ee}}}});function getSideAndAlignFromPlacement(n){const[e,o="center"]=n.split("-");return[e,o]}var Root2$1=Popper,Anchor=PopperAnchor,Content=PopperContent,Arrow=PopperArrow,PORTAL_NAME$3="Portal",Portal$1=reactExports.forwardRef((n,e)=>{var v;const{container:o,...d}=n,[I,f]=reactExports.useState(!1);useLayoutEffect2(()=>f(!0),[]);const S=o||I&&((v=globalThis==null?void 0:globalThis.document)==null?void 0:v.body);return S?reactDomExports.createPortal(jsxRuntimeExports.jsx(Primitive.div,{...d,ref:e}),S):null});Portal$1.displayName=PORTAL_NAME$3;function useStateMachine(n,e){return reactExports.useReducer((o,d)=>e[o][d]??o,n)}var Presence=n=>{const{present:e,children:o}=n,d=usePresence(e),I=typeof o=="function"?o({present:d.isPresent}):reactExports.Children.only(o),f=useStableComposedRefs(d.ref,getElementRef(I));return typeof o=="function"||d.isPresent?reactExports.cloneElement(I,{ref:f}):null};Presence.displayName="Presence";function usePresence(n){const[e,o]=reactExports.useState(),d=reactExports.useRef(null),I=reactExports.useRef(n),f=reactExports.useRef("none"),S=reactExports.useRef(void 0),v=n?"mounted":"unmounted",[L,x]=useStateMachine(v,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return reactExports.useEffect(()=>{L==="mounted"?(f.current=S.current??getAnimationName(d.current),S.current=void 0):f.current="none"},[L]),useLayoutEffect2(()=>{const F=d.current,Y=I.current;if(Y!==n){const W=f.current,re=getAnimationName(F);n?(S.current=re,x("MOUNT")):re==="none"||(F==null?void 0:F.display)==="none"?x("UNMOUNT"):x(Y&&W!==re?"ANIMATION_OUT":"UNMOUNT"),I.current=n}},[n,x]),useLayoutEffect2(()=>{if(e){let F;const Y=e.ownerDocument.defaultView??window,j=re=>{const he=getAnimationName(d.current).includes(CSS.escape(re.animationName));if(re.target===e&&he&&(x("ANIMATION_END"),!I.current)){const ue=e.style.animationFillMode;e.style.animationFillMode="forwards",F=Y.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=ue)})}},W=re=>{re.target===e&&(f.current=getAnimationName(d.current))};return e.addEventListener("animationstart",W),e.addEventListener("animationcancel",j),e.addEventListener("animationend",j),()=>{Y.clearTimeout(F),e.removeEventListener("animationstart",W),e.removeEventListener("animationcancel",j),e.removeEventListener("animationend",j)}}else x("ANIMATION_END")},[e,x]),{isPresent:["mounted","unmountSuspended"].includes(L),ref:reactExports.useCallback(F=>{if(F){const Y=getComputedStyle(F);d.current=Y,S.current=getAnimationName(Y)}else d.current=null;o(F)},[])}}function setRef(n,e){if(typeof n=="function")return n(e);n!=null&&(n.current=e)}function useStableComposedRefs(...n){const e=reactExports.useRef(n);return e.current=n,reactExports.useCallback(o=>{const d=e.current;let I=!1;const f=d.map(S=>{const v=setRef(S,o);return!I&&typeof v=="function"&&(I=!0),v});if(I)return()=>{for(let S=0;S"u")return null;var e=Array.isArray(n)?n[0]:n;return e.ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(n){return n&&(n.host||unwrapHost(n.parentNode))},correctTargets=function(n,e){return e.map(function(o){if(n.contains(o))return o;var d=unwrapHost(o);return d&&n.contains(d)?d:(console.error("aria-hidden",o,"in not contained inside",n,". Doing nothing"),null)}).filter(function(o){return!!o})},applyAttributeToOthers=function(n,e,o,d){var I=correctTargets(e,Array.isArray(n)?n:[n]);markerMap[o]||(markerMap[o]=new WeakMap);var f=markerMap[o],S=[],v=new Set,L=new Set(I),x=function(Y){!Y||v.has(Y)||(v.add(Y),x(Y.parentNode))};I.forEach(x);var F=function(Y){!Y||L.has(Y)||Array.prototype.forEach.call(Y.children,function(j){if(v.has(j))F(j);else try{var W=j.getAttribute(d),re=W!==null&&W!=="false",ee=(counterMap.get(j)||0)+1,he=(f.get(j)||0)+1;counterMap.set(j,ee),f.set(j,he),S.push(j),ee===1&&re&&uncontrolledNodes.set(j,!0),he===1&&j.setAttribute(o,"true"),re||j.setAttribute(d,"true")}catch(ue){console.error("aria-hidden: cannot operate on ",j,ue)}})};return F(e),v.clear(),lockCount++,function(){S.forEach(function(Y){var j=counterMap.get(Y)-1,W=f.get(Y)-1;counterMap.set(Y,j),f.set(Y,W),j||(uncontrolledNodes.has(Y)||Y.removeAttribute(d),uncontrolledNodes.delete(Y)),W||Y.removeAttribute(o)}),lockCount--,lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(n,e,o){o===void 0&&(o="data-aria-hidden");var d=Array.from(Array.isArray(n)?n:[n]),I=getDefaultParent(n);return I?(d.push.apply(d,Array.from(I.querySelectorAll("[aria-live], script"))),applyAttributeToOthers(d,I,o,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(e){for(var o,d=1,I=arguments.length;d"u")return zeroGap;var e=getOffset(n),o=document.documentElement.clientWidth,d=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,d-o+e[2]-e[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(n,e,o,d){var I=n.left,f=n.top,S=n.right,v=n.gap;return o===void 0&&(o="margin"),` + .`.concat(noScrollbarsClassName,` { + overflow: hidden `).concat(d,`; + padding-right: `).concat(v,"px ").concat(d,`; + } + body[`).concat(lockAttribute,`] { + overflow: hidden `).concat(d,`; + overscroll-behavior: contain; + `).concat([e&&"position: relative ".concat(d,";"),o==="margin"&&` + padding-left: `.concat(I,`px; + padding-top: `).concat(f,`px; + padding-right: `).concat(S,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(v,"px ").concat(d,`; + `),o==="padding"&&"padding-right: ".concat(v,"px ").concat(d,";")].filter(Boolean).join(""),` + } + + .`).concat(zeroRightClassName,` { + right: `).concat(v,"px ").concat(d,`; + } + + .`).concat(fullWidthClassName,` { + margin-right: `).concat(v,"px ").concat(d,`; + } + + .`).concat(zeroRightClassName," .").concat(zeroRightClassName,` { + right: 0 `).concat(d,`; + } + + .`).concat(fullWidthClassName," .").concat(fullWidthClassName,` { + margin-right: 0 `).concat(d,`; + } + + body[`).concat(lockAttribute,`] { + `).concat(removedBarSizeVariable,": ").concat(v,`px; + } +`)},getCurrentUseCounter=function(){var n=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(n)?n:0},useLockAttribute=function(){reactExports.useEffect(function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var n=getCurrentUseCounter()-1;n<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,n.toString())}},[])},RemoveScrollBar=function(n){var e=n.noRelative,o=n.noImportant,d=n.gapMode,I=d===void 0?"margin":d;useLockAttribute();var f=reactExports.useMemo(function(){return getGapWidth(I)},[I]);return reactExports.createElement(Style,{styles:getStyles(f,!e,I,o?"":"!important")})},passiveSupported=!1;if(typeof window<"u")try{var options=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}});window.addEventListener("test",options,options),window.removeEventListener("test",options,options)}catch{passiveSupported=!1}var nonPassive=passiveSupported?{passive:!1}:!1,alwaysContainsScroll=function(n){return n.tagName==="TEXTAREA"},elementCanBeScrolled=function(n,e){if(!(n instanceof Element))return!1;var o=window.getComputedStyle(n);return o[e]!=="hidden"&&!(o.overflowY===o.overflowX&&!alwaysContainsScroll(n)&&o[e]==="visible")},elementCouldBeVScrolled=function(n){return elementCanBeScrolled(n,"overflowY")},elementCouldBeHScrolled=function(n){return elementCanBeScrolled(n,"overflowX")},locationCouldBeScrolled=function(n,e){var o=e.ownerDocument,d=e;do{typeof ShadowRoot<"u"&&d instanceof ShadowRoot&&(d=d.host);var I=elementCouldBeScrolled(n,d);if(I){var f=getScrollVariables(n,d),S=f[1],v=f[2];if(S>v)return!0}d=d.parentNode}while(d&&d!==o.body);return!1},getVScrollVariables=function(n){var e=n.scrollTop,o=n.scrollHeight,d=n.clientHeight;return[e,o,d]},getHScrollVariables=function(n){var e=n.scrollLeft,o=n.scrollWidth,d=n.clientWidth;return[e,o,d]},elementCouldBeScrolled=function(n,e){return n==="v"?elementCouldBeVScrolled(e):elementCouldBeHScrolled(e)},getScrollVariables=function(n,e){return n==="v"?getVScrollVariables(e):getHScrollVariables(e)},getDirectionFactor=function(n,e){return n==="h"&&e==="rtl"?-1:1},handleScroll=function(n,e,o,d,I){var f=getDirectionFactor(n,window.getComputedStyle(e).direction),S=f*d,v=o.target,L=e.contains(v),x=!1,F=S>0,Y=0,j=0;do{if(!v)break;var W=getScrollVariables(n,v),re=W[0],ee=W[1],he=W[2],ue=ee-he-f*re;(re||ue)&&elementCouldBeScrolled(n,v)&&(Y+=ue,j+=re);var Ee=v.parentNode;v=Ee&&Ee.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Ee.host:Ee}while(!L&&v!==document.body||L&&(e.contains(v)||e===v));return(F&&Math.abs(Y)<1||!F&&Math.abs(j)<1)&&(x=!0),x},getTouchXY=function(n){return"changedTouches"in n?[n.changedTouches[0].clientX,n.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(n){return[n.deltaX,n.deltaY]},extractRef=function(n){return n&&"current"in n?n.current:n},deltaCompare=function(n,e){return n[0]===e[0]&&n[1]===e[1]},generateStyle=function(n){return` + .block-interactivity-`.concat(n,` {pointer-events: none;} + .allow-interactivity-`).concat(n,` {pointer-events: all;} +`)},idCounter=0,lockStack=[];function RemoveScrollSideCar(n){var e=reactExports.useRef([]),o=reactExports.useRef([0,0]),d=reactExports.useRef(),I=reactExports.useState(idCounter++)[0],f=reactExports.useState(styleSingleton)[0],S=reactExports.useRef(n);reactExports.useEffect(function(){S.current=n},[n]),reactExports.useEffect(function(){if(n.inert){document.body.classList.add("block-interactivity-".concat(I));var ee=__spreadArray([n.lockRef.current],(n.shards||[]).map(extractRef),!0).filter(Boolean);return ee.forEach(function(he){return he.classList.add("allow-interactivity-".concat(I))}),function(){document.body.classList.remove("block-interactivity-".concat(I)),ee.forEach(function(he){return he.classList.remove("allow-interactivity-".concat(I))})}}},[n.inert,n.lockRef.current,n.shards]);var v=reactExports.useCallback(function(ee,he){if("touches"in ee&&ee.touches.length===2||ee.type==="wheel"&&ee.ctrlKey)return!S.current.allowPinchZoom;var ue=getTouchXY(ee),Ee=o.current,_e="deltaX"in ee?ee.deltaX:Ee[0]-ue[0],De="deltaY"in ee?ee.deltaY:Ee[1]-ue[1],Fe,Ve=ee.target,Ge=Math.abs(_e)>Math.abs(De)?"h":"v";if("touches"in ee&&Ge==="h"&&Ve.type==="range")return!1;var He=window.getSelection(),At=He&&He.anchorNode,Bt=At?At===Ve||At.contains(Ve):!1;if(Bt)return!1;var Tt=locationCouldBeScrolled(Ge,Ve);if(!Tt)return!0;if(Tt?Fe=Ge:(Fe=Ge==="v"?"h":"v",Tt=locationCouldBeScrolled(Ge,Ve)),!Tt)return!1;if(!d.current&&"changedTouches"in ee&&(_e||De)&&(d.current=Fe),!Fe)return!0;var rt=d.current||Fe;return handleScroll(rt,he,ee,rt==="h"?_e:De)},[]),L=reactExports.useCallback(function(ee){var he=ee;if(!(!lockStack.length||lockStack[lockStack.length-1]!==f)){var ue="deltaY"in he?getDeltaXY(he):getTouchXY(he),Ee=e.current.filter(function(Fe){return Fe.name===he.type&&(Fe.target===he.target||he.target===Fe.shadowParent)&&deltaCompare(Fe.delta,ue)})[0];if(Ee&&Ee.should){he.cancelable&&he.preventDefault();return}if(!Ee){var _e=(S.current.shards||[]).map(extractRef).filter(Boolean).filter(function(Fe){return Fe.contains(he.target)}),De=_e.length>0?v(he,_e[0]):!S.current.noIsolation;De&&he.cancelable&&he.preventDefault()}}},[]),x=reactExports.useCallback(function(ee,he,ue,Ee){var _e={name:ee,delta:he,target:ue,should:Ee,shadowParent:getOutermostShadowParent(ue)};e.current.push(_e),setTimeout(function(){e.current=e.current.filter(function(De){return De!==_e})},1)},[]),F=reactExports.useCallback(function(ee){o.current=getTouchXY(ee),d.current=void 0},[]),Y=reactExports.useCallback(function(ee){x(ee.type,getDeltaXY(ee),ee.target,v(ee,n.lockRef.current))},[]),j=reactExports.useCallback(function(ee){x(ee.type,getTouchXY(ee),ee.target,v(ee,n.lockRef.current))},[]);reactExports.useEffect(function(){return lockStack.push(f),n.setCallbacks({onScrollCapture:Y,onWheelCapture:Y,onTouchMoveCapture:j}),document.addEventListener("wheel",L,nonPassive),document.addEventListener("touchmove",L,nonPassive),document.addEventListener("touchstart",F,nonPassive),function(){lockStack=lockStack.filter(function(ee){return ee!==f}),document.removeEventListener("wheel",L,nonPassive),document.removeEventListener("touchmove",L,nonPassive),document.removeEventListener("touchstart",F,nonPassive)}},[]);var W=n.removeScrollBar,re=n.inert;return reactExports.createElement(reactExports.Fragment,null,re?reactExports.createElement(f,{styles:generateStyle(I)}):null,W?reactExports.createElement(RemoveScrollBar,{noRelative:n.noRelative,gapMode:n.gapMode}):null)}function getOutermostShadowParent(n){for(var e=null;n!==null;)n instanceof ShadowRoot&&(e=n.host,n=n.host),n=n.parentNode;return e}const SideCar=exportSidecar(effectCar,RemoveScrollSideCar);var ReactRemoveScroll=reactExports.forwardRef(function(n,e){return reactExports.createElement(RemoveScroll,__assign({},n,{ref:e,sideCar:SideCar}))});ReactRemoveScroll.classNames=RemoveScroll.classNames;var Chip=reactExports.forwardRef(({children:n,...e},o)=>jsxRuntimeExports.jsx("div",{ref:o,className:"bg-card-layer-1 relative inline-flex items-center justify-center gap-2 rounded-full p-3",...e,children:n}));Chip.displayName="Chip";var agoraRTCPromise=null;function importAgoraRTC(){return agoraRTCPromise||(agoraRTCPromise=__vitePreload(()=>Promise.resolve().then(()=>agoraRtcReact),void 0).then(n=>n.default)),agoraRTCPromise}function useAudioDevices({enabled:n=!0}={}){const[e,o]=reactExports.useState([]),[d,I]=reactExports.useState(n),[f,S]=reactExports.useState(null),[v,L]=reactExports.useState(!1),x=reactExports.useRef(null),F=reactExports.useCallback(async()=>{if(!(!n||typeof window>"u"))try{I(!0),S(null);const Y=await importAgoraRTC();x.current=Y;const W=(await Y.getMicrophones()).map(re=>{let ee=re.label||`Microphone ${re.deviceId.slice(0,8)}`;return ee=ee.replace(/\s*\([^)]*\)/g,"").trim(),{deviceId:re.deviceId,label:ee,groupId:re.groupId}});o(W),L(!0)}catch(Y){S(Y instanceof Error?Y.message:"Failed to get audio devices")}finally{I(!1)}},[n]);return reactExports.useEffect(()=>{if(!n){o([]),I(!1),S(null),L(!1);return}F()},[n,F]),reactExports.useEffect(()=>{if(!n||typeof window>"u")return;let Y=!0,j=()=>{};return importAgoraRTC().then(W=>{if(!Y)return;const re=()=>{F()};W.on("microphone-changed",re),j=()=>{W.off("microphone-changed",re)}}),()=>{Y=!1,j()}},[n,F]),{devices:e,loading:d,error:f,hasPermission:v,loadDevices:F}}var PREFIX="[agora-agent-uikit]",isVerbose=()=>typeof window<"u"&&!!window.__AGORA_UIKIT_DEBUG__,debug={log:(...n)=>{isVerbose()&&console.debug(PREFIX,...n)},warn:(...n)=>{console.warn(PREFIX,...n)},error:(...n)=>{console.error(PREFIX,...n)}},POPOVER_NAME="Popover",[createPopoverContext]=createContextScope(POPOVER_NAME,[createPopperScope]),usePopperScope$1=createPopperScope(),[PopoverProvider,usePopoverContext]=createPopoverContext(POPOVER_NAME),Popover$1=n=>{const{__scopePopover:e,children:o,open:d,defaultOpen:I,onOpenChange:f,modal:S=!1}=n,v=usePopperScope$1(e),L=reactExports.useRef(null),[x,F]=reactExports.useState(!1),[Y,j]=useControllableState({prop:d,defaultProp:I??!1,onChange:f,caller:POPOVER_NAME});return jsxRuntimeExports.jsx(Root2$1,{...v,children:jsxRuntimeExports.jsx(PopoverProvider,{scope:e,contentId:useId(),triggerRef:L,open:Y,onOpenChange:j,onOpenToggle:reactExports.useCallback(()=>j(W=>!W),[j]),hasCustomAnchor:x,onCustomAnchorAdd:reactExports.useCallback(()=>F(!0),[]),onCustomAnchorRemove:reactExports.useCallback(()=>F(!1),[]),modal:S,children:o})})};Popover$1.displayName=POPOVER_NAME;var ANCHOR_NAME="PopoverAnchor",PopoverAnchor=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopoverContext(ANCHOR_NAME,o),f=usePopperScope$1(o),{onCustomAnchorAdd:S,onCustomAnchorRemove:v}=I;return reactExports.useEffect(()=>(S(),()=>v()),[S,v]),jsxRuntimeExports.jsx(Anchor,{...f,...d,ref:e})});PopoverAnchor.displayName=ANCHOR_NAME;var TRIGGER_NAME$3="PopoverTrigger",PopoverTrigger$1=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopoverContext(TRIGGER_NAME$3,o),f=usePopperScope$1(o),S=useComposedRefs(e,I.triggerRef),v=jsxRuntimeExports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":I.open,"aria-controls":I.open?I.contentId:void 0,"data-state":getState$2(I.open),...d,ref:S,onClick:composeEventHandlers(n.onClick,I.onOpenToggle)});return I.hasCustomAnchor?v:jsxRuntimeExports.jsx(Anchor,{asChild:!0,...f,children:v})});PopoverTrigger$1.displayName=TRIGGER_NAME$3;var PORTAL_NAME$2="PopoverPortal",[PortalProvider$2,usePortalContext$2]=createPopoverContext(PORTAL_NAME$2,{forceMount:void 0}),PopoverPortal=n=>{const{__scopePopover:e,forceMount:o,children:d,container:I}=n,f=usePopoverContext(PORTAL_NAME$2,e);return jsxRuntimeExports.jsx(PortalProvider$2,{scope:e,forceMount:o,children:jsxRuntimeExports.jsx(Presence,{present:o||f.open,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,container:I,children:d})})})};PopoverPortal.displayName=PORTAL_NAME$2;var CONTENT_NAME$2="PopoverContent",PopoverContent$1=reactExports.forwardRef((n,e)=>{const o=usePortalContext$2(CONTENT_NAME$2,n.__scopePopover),{forceMount:d=o.forceMount,...I}=n,f=usePopoverContext(CONTENT_NAME$2,n.__scopePopover);return jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:f.modal?jsxRuntimeExports.jsx(PopoverContentModal,{...I,ref:e}):jsxRuntimeExports.jsx(PopoverContentNonModal,{...I,ref:e})})});PopoverContent$1.displayName=CONTENT_NAME$2;var Slot$2=createSlot("PopoverContent.RemoveScroll"),PopoverContentModal=reactExports.forwardRef((n,e)=>{const o=usePopoverContext(CONTENT_NAME$2,n.__scopePopover),d=reactExports.useRef(null),I=useComposedRefs(e,d),f=reactExports.useRef(!1);return reactExports.useEffect(()=>{const S=d.current;if(S)return hideOthers(S)},[]),jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot$2,allowPinchZoom:!0,children:jsxRuntimeExports.jsx(PopoverContentImpl,{...n,ref:I,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(n.onCloseAutoFocus,S=>{var v;S.preventDefault(),f.current||(v=o.triggerRef.current)==null||v.focus()}),onPointerDownOutside:composeEventHandlers(n.onPointerDownOutside,S=>{const v=S.detail.originalEvent,L=v.button===0&&v.ctrlKey===!0,x=v.button===2||L;f.current=x},{checkForDefaultPrevented:!1}),onFocusOutside:composeEventHandlers(n.onFocusOutside,S=>S.preventDefault(),{checkForDefaultPrevented:!1})})})}),PopoverContentNonModal=reactExports.forwardRef((n,e)=>{const o=usePopoverContext(CONTENT_NAME$2,n.__scopePopover),d=reactExports.useRef(!1),I=reactExports.useRef(!1);return jsxRuntimeExports.jsx(PopoverContentImpl,{...n,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:f=>{var S,v;(S=n.onCloseAutoFocus)==null||S.call(n,f),f.defaultPrevented||(d.current||(v=o.triggerRef.current)==null||v.focus(),f.preventDefault()),d.current=!1,I.current=!1},onInteractOutside:f=>{var L,x;(L=n.onInteractOutside)==null||L.call(n,f),f.defaultPrevented||(d.current=!0,f.detail.originalEvent.type==="pointerdown"&&(I.current=!0));const S=f.target;((x=o.triggerRef.current)==null?void 0:x.contains(S))&&f.preventDefault(),f.detail.originalEvent.type==="focusin"&&I.current&&f.preventDefault()}})}),PopoverContentImpl=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,trapFocus:d,onOpenAutoFocus:I,onCloseAutoFocus:f,disableOutsidePointerEvents:S,onEscapeKeyDown:v,onPointerDownOutside:L,onFocusOutside:x,onInteractOutside:F,...Y}=n,j=usePopoverContext(CONTENT_NAME$2,o),W=usePopperScope$1(o);return useFocusGuards(),jsxRuntimeExports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:I,onUnmountAutoFocus:f,children:jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:S,onInteractOutside:F,onEscapeKeyDown:v,onPointerDownOutside:L,onFocusOutside:x,onDismiss:()=>j.onOpenChange(!1),deferPointerDownOutside:!0,children:jsxRuntimeExports.jsx(Content,{"data-state":getState$2(j.open),role:"dialog",id:j.contentId,...W,...Y,ref:e,style:{...Y.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),CLOSE_NAME$1="PopoverClose",PopoverClose=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopoverContext(CLOSE_NAME$1,o);return jsxRuntimeExports.jsx(Primitive.button,{type:"button",...d,ref:e,onClick:composeEventHandlers(n.onClick,()=>I.onOpenChange(!1))})});PopoverClose.displayName=CLOSE_NAME$1;var ARROW_NAME$1="PopoverArrow",PopoverArrow=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopperScope$1(o);return jsxRuntimeExports.jsx(Arrow,{...I,...d,ref:e})});PopoverArrow.displayName=ARROW_NAME$1;function getState$2(n){return n?"open":"closed"}var Root2=Popover$1,Trigger=PopoverTrigger$1,Portal=PopoverPortal,Content2=PopoverContent$1;function clamp(n,[e,o]){return Math.min(o,Math.max(e,n))}function usePrevious(n){const e=reactExports.useRef({value:n,previous:n});return reactExports.useMemo(()=>(e.current.value!==n&&(e.current.previous=e.current.value,e.current.value=n),e.current.previous),[n])}var VISUALLY_HIDDEN_STYLES=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),NAME="VisuallyHidden",VisuallyHidden=reactExports.forwardRef((n,e)=>jsxRuntimeExports.jsx(Primitive.span,{...n,ref:e,style:{...VISUALLY_HIDDEN_STYLES,...n.style}}));VisuallyHidden.displayName=NAME;var OPEN_KEYS=[" ","Enter","ArrowUp","ArrowDown"],SELECTION_KEYS=[" ","Enter"],SELECT_NAME="Select",[Collection,useCollection,createCollectionScope]=createCollection(SELECT_NAME),[createSelectContext]=createContextScope(SELECT_NAME,[createCollectionScope,createPopperScope]),usePopperScope=createPopperScope(),[SelectProviderImpl,useSelectContext]=createSelectContext(SELECT_NAME),[SelectNativeOptionsProvider,useSelectNativeOptionsContext]=createSelectContext(SELECT_NAME),PROVIDER_NAME="SelectProvider";function SelectProvider(n){const{__scopeSelect:e,children:o,open:d,defaultOpen:I,onOpenChange:f,value:S,defaultValue:v,onValueChange:L,dir:x,name:F,autoComplete:Y,disabled:j,required:W,form:re,internal_do_not_use_render:ee}=n,he=usePopperScope(e),[ue,Ee]=reactExports.useState(null),[_e,De]=reactExports.useState(null),[Fe,Ve]=reactExports.useState(!1),Ge=useDirection(x),[He,At]=useControllableState({prop:d,defaultProp:I??!1,onChange:f,caller:SELECT_NAME}),[Bt,Tt]=useControllableState({prop:S,defaultProp:v,onChange:L,caller:SELECT_NAME}),rt=reactExports.useRef(null),ye=reactExports.useRef(Bt);reactExports.useEffect(()=>{const ai=re?ue==null?void 0:ue.ownerDocument.getElementById(re):ue==null?void 0:ue.form;if(ai instanceof HTMLFormElement){const pi=()=>Tt(ye.current);return ai.addEventListener("reset",pi),()=>ai.removeEventListener("reset",pi)}},[re,ue,Tt]);const lt=ue?!!re||!!ue.closest("form"):!0,[Yt,ct]=reactExports.useState(new Set),ht=useId(),vt=Array.from(Yt).map(ai=>ai.props.value).join(";"),ar=reactExports.useCallback(ai=>{ct(pi=>new Set(pi).add(ai))},[]),jt=reactExports.useCallback(ai=>{ct(pi=>{const yi=new Set(pi);return yi.delete(ai),yi})},[]),vr={required:W,trigger:ue,onTriggerChange:Ee,valueNode:_e,onValueNodeChange:De,valueNodeHasChildren:Fe,onValueNodeHasChildrenChange:Ve,contentId:ht,value:Bt,onValueChange:Tt,open:He,onOpenChange:At,dir:Ge,triggerPointerDownPosRef:rt,disabled:j,name:F,autoComplete:Y,form:re,nativeOptions:Yt,nativeSelectKey:vt,isFormControl:lt};return jsxRuntimeExports.jsx(Root2$1,{...he,children:jsxRuntimeExports.jsx(SelectProviderImpl,{scope:e,...vr,children:jsxRuntimeExports.jsx(Collection.Provider,{scope:e,children:jsxRuntimeExports.jsx(SelectNativeOptionsProvider,{scope:e,onNativeOptionAdd:ar,onNativeOptionRemove:jt,children:isFunction$1(ee)?ee(vr):o})})})})}SelectProvider.displayName=PROVIDER_NAME;var Select=n=>{const{__scopeSelect:e,children:o,...d}=n;return jsxRuntimeExports.jsx(SelectProvider,{__scopeSelect:e,...d,internal_do_not_use_render:({isFormControl:I})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[o,I?jsxRuntimeExports.jsx(SelectBubbleInput,{__scopeSelect:e}):null]})})};Select.displayName=SELECT_NAME;var TRIGGER_NAME$2="SelectTrigger",SelectTrigger=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,disabled:d=!1,...I}=n,f=usePopperScope(o),S=useSelectContext(TRIGGER_NAME$2,o),v=S.disabled||d,L=useComposedRefs(e,S.onTriggerChange),x=useCollection(o),F=reactExports.useRef("touch"),[Y,j,W]=useTypeaheadSearch(ee=>{const he=x().filter(_e=>!_e.disabled),ue=he.find(_e=>_e.value===S.value),Ee=findNextItem(he,ee,ue);Ee!==void 0&&S.onValueChange(Ee.value)}),re=ee=>{v||(S.onOpenChange(!0),W()),ee&&(S.triggerPointerDownPosRef.current={x:Math.round(ee.pageX),y:Math.round(ee.pageY)})};return jsxRuntimeExports.jsx(Anchor,{asChild:!0,...f,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"combobox","aria-controls":S.open?S.contentId:void 0,"aria-expanded":S.open,"aria-required":S.required,"aria-autocomplete":"none",dir:S.dir,"data-state":S.open?"open":"closed",disabled:v,"data-disabled":v?"":void 0,"data-placeholder":shouldShowPlaceholder(S.value)?"":void 0,...I,ref:L,onClick:composeEventHandlers(I.onClick,ee=>{ee.currentTarget.focus(),F.current!=="mouse"&&re(ee)}),onPointerDown:composeEventHandlers(I.onPointerDown,ee=>{F.current=ee.pointerType;const he=ee.target;he.hasPointerCapture(ee.pointerId)&&he.releasePointerCapture(ee.pointerId),ee.button===0&&ee.ctrlKey===!1&&ee.pointerType==="mouse"&&(re(ee),ee.preventDefault())}),onKeyDown:composeEventHandlers(I.onKeyDown,ee=>{const he=Y.current!=="";!(ee.ctrlKey||ee.altKey||ee.metaKey)&&ee.key.length===1&&j(ee.key),!(he&&ee.key===" ")&&OPEN_KEYS.includes(ee.key)&&(re(),ee.preventDefault())})})})});SelectTrigger.displayName=TRIGGER_NAME$2;var VALUE_NAME="SelectValue",SelectValue=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,className:d,style:I,children:f,placeholder:S="",...v}=n,L=useSelectContext(VALUE_NAME,o),{onValueNodeHasChildrenChange:x}=L,F=f!==void 0,Y=useComposedRefs(e,L.onValueNodeChange);useLayoutEffect2(()=>{x(F)},[x,F]);const j=shouldShowPlaceholder(L.value);return jsxRuntimeExports.jsx(Primitive.span,{...v,asChild:j?!1:v.asChild,ref:Y,style:{pointerEvents:"none"},children:jsxRuntimeExports.jsx(reactExports.Fragment,{children:j?S:f},j?"placeholder":"value")})});SelectValue.displayName=VALUE_NAME;var ICON_NAME="SelectIcon",SelectIcon=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,children:d,...I}=n;return jsxRuntimeExports.jsx(Primitive.span,{"aria-hidden":!0,...I,ref:e,children:d||"▼"})});SelectIcon.displayName=ICON_NAME;var PORTAL_NAME$1="SelectPortal",[PortalProvider$1,usePortalContext$1]=createSelectContext(PORTAL_NAME$1,{forceMount:void 0}),SelectPortal=n=>{const{__scopeSelect:e,forceMount:o,...d}=n;return jsxRuntimeExports.jsx(PortalProvider$1,{scope:n.__scopeSelect,forceMount:o,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,...d})})};SelectPortal.displayName=PORTAL_NAME$1;var CONTENT_NAME$1="SelectContent",SelectContent=reactExports.forwardRef((n,e)=>{const o=usePortalContext$1(CONTENT_NAME$1,n.__scopeSelect),{forceMount:d=o.forceMount,...I}=n,f=useSelectContext(CONTENT_NAME$1,n.__scopeSelect),[S,v]=reactExports.useState();return useLayoutEffect2(()=>{v(new DocumentFragment)},[]),jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:({present:L})=>L?jsxRuntimeExports.jsx(SelectContentImpl,{...I,ref:e}):jsxRuntimeExports.jsx(SelectContentFragment,{...I,fragment:S})})});SelectContent.displayName=CONTENT_NAME$1;var SelectContentFragment=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,children:d,fragment:I}=n;return I?reactDomExports.createPortal(jsxRuntimeExports.jsx(SelectContentProvider,{scope:o,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:o,children:jsxRuntimeExports.jsx("div",{ref:e,children:d})})}),I):null});SelectContentFragment.displayName="SelectContentFragment";var CONTENT_MARGIN=10,[SelectContentProvider,useSelectContentContext]=createSelectContext(CONTENT_NAME$1),CONTENT_IMPL_NAME="SelectContentImpl",Slot$1=createSlot("SelectContent.RemoveScroll"),SelectContentImpl=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o}=n,{position:d="item-aligned",onCloseAutoFocus:I,onEscapeKeyDown:f,onPointerDownOutside:S,side:v,sideOffset:L,align:x,alignOffset:F,arrowPadding:Y,collisionBoundary:j,collisionPadding:W,sticky:re,hideWhenDetached:ee,avoidCollisions:he,...ue}=n,Ee=useSelectContext(CONTENT_NAME$1,o),[_e,De]=reactExports.useState(null),[Fe,Ve]=reactExports.useState(null),Ge=useComposedRefs(e,De),[He,At]=reactExports.useState(null),[Bt,Tt]=reactExports.useState(null),rt=useCollection(o),[ye,lt]=reactExports.useState(!1),Yt=reactExports.useRef(!1);reactExports.useEffect(()=>{if(_e)return hideOthers(_e)},[_e]),useFocusGuards();const ct=reactExports.useCallback(xr=>{const[pr,...ei]=rt().map(oi=>oi.ref.current),[_i]=ei.slice(-1),Gr=document.activeElement;for(const oi of xr)if(oi===Gr||(oi==null||oi.scrollIntoView({block:"nearest"}),oi===pr&&Fe&&(Fe.scrollTop=0),oi===_i&&Fe&&(Fe.scrollTop=Fe.scrollHeight),oi==null||oi.focus(),document.activeElement!==Gr))return},[rt,Fe]),ht=reactExports.useCallback(()=>ct([He,_e]),[ct,He,_e]);reactExports.useEffect(()=>{ye&&ht()},[ye,ht]);const{onOpenChange:vt,triggerPointerDownPosRef:ar}=Ee;reactExports.useEffect(()=>{if(_e){let xr={x:0,y:0};const pr=_i=>{var Gr,oi;xr={x:Math.abs(Math.round(_i.pageX)-(((Gr=ar.current)==null?void 0:Gr.x)??0)),y:Math.abs(Math.round(_i.pageY)-(((oi=ar.current)==null?void 0:oi.y)??0))}},ei=_i=>{xr.x<=10&&xr.y<=10?_i.preventDefault():_i.composedPath().includes(_e)||vt(!1),document.removeEventListener("pointermove",pr),ar.current=null};return ar.current!==null&&(document.addEventListener("pointermove",pr),document.addEventListener("pointerup",ei,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",pr),document.removeEventListener("pointerup",ei,{capture:!0})}}},[_e,vt,ar]),reactExports.useEffect(()=>{const xr=()=>vt(!1);return window.addEventListener("blur",xr),window.addEventListener("resize",xr),()=>{window.removeEventListener("blur",xr),window.removeEventListener("resize",xr)}},[vt]);const[jt,vr]=useTypeaheadSearch(xr=>{const pr=rt().filter(Gr=>!Gr.disabled),ei=pr.find(Gr=>Gr.ref.current===document.activeElement),_i=findNextItem(pr,xr,ei);_i&&setTimeout(()=>{var Gr;return(Gr=_i.ref.current)==null?void 0:Gr.focus()})}),ai=reactExports.useCallback((xr,pr,ei)=>{const _i=!Yt.current&&!ei;(Ee.value!==void 0&&Ee.value===pr||_i)&&(At(xr),_i&&(Yt.current=!0))},[Ee.value]),pi=reactExports.useCallback(()=>_e==null?void 0:_e.focus(),[_e]),yi=reactExports.useCallback((xr,pr,ei)=>{const _i=!Yt.current&&!ei;(Ee.value!==void 0&&Ee.value===pr||_i)&&Tt(xr)},[Ee.value]),fi=d==="popper"?SelectPopperPosition:SelectItemAlignedPosition,Jn=fi===SelectPopperPosition?{side:v,sideOffset:L,align:x,alignOffset:F,arrowPadding:Y,collisionBoundary:j,collisionPadding:W,sticky:re,hideWhenDetached:ee,avoidCollisions:he}:{};return jsxRuntimeExports.jsx(SelectContentProvider,{scope:o,content:_e,viewport:Fe,onViewportChange:Ve,itemRefCallback:ai,selectedItem:He,onItemLeave:pi,itemTextRefCallback:yi,focusSelectedItem:ht,selectedItemText:Bt,position:d,isPositioned:ye,searchRef:jt,children:jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot$1,allowPinchZoom:!0,children:jsxRuntimeExports.jsx(FocusScope,{asChild:!0,trapped:Ee.open,onMountAutoFocus:xr=>{xr.preventDefault()},onUnmountAutoFocus:composeEventHandlers(I,xr=>{var pr;(pr=Ee.trigger)==null||pr.focus({preventScroll:!0}),xr.preventDefault()}),children:jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:f,onPointerDownOutside:S,onFocusOutside:xr=>xr.preventDefault(),onDismiss:()=>Ee.onOpenChange(!1),children:jsxRuntimeExports.jsx(fi,{role:"listbox",id:Ee.contentId,"data-state":Ee.open?"open":"closed",dir:Ee.dir,onContextMenu:xr=>xr.preventDefault(),...ue,...Jn,onPlaced:()=>lt(!0),ref:Ge,style:{display:"flex",flexDirection:"column",outline:"none",...ue.style},onKeyDown:composeEventHandlers(ue.onKeyDown,xr=>{const pr=xr.ctrlKey||xr.altKey||xr.metaKey;if(xr.key==="Tab"&&xr.preventDefault(),!pr&&xr.key.length===1&&vr(xr.key),["ArrowUp","ArrowDown","Home","End"].includes(xr.key)){let _i=rt().filter(Gr=>!Gr.disabled).map(Gr=>Gr.ref.current);if(["ArrowUp","End"].includes(xr.key)&&(_i=_i.slice().reverse()),["ArrowUp","ArrowDown"].includes(xr.key)){const Gr=xr.target,oi=_i.indexOf(Gr);_i=_i.slice(oi+1)}setTimeout(()=>ct(_i)),xr.preventDefault()}})})})})})})});SelectContentImpl.displayName=CONTENT_IMPL_NAME;var ITEM_ALIGNED_POSITION_NAME="SelectItemAlignedPosition",SelectItemAlignedPosition=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,onPlaced:d,...I}=n,f=useSelectContext(CONTENT_NAME$1,o),S=useSelectContentContext(CONTENT_NAME$1,o),[v,L]=reactExports.useState(null),[x,F]=reactExports.useState(null),Y=useComposedRefs(e,F),j=useCollection(o),W=reactExports.useRef(!1),re=reactExports.useRef(!0),{viewport:ee,selectedItem:he,selectedItemText:ue,focusSelectedItem:Ee}=S,_e=reactExports.useCallback(()=>{if(f.trigger&&f.valueNode&&v&&x&&ee&&he&&ue){const Ge=f.trigger.getBoundingClientRect(),He=x.getBoundingClientRect(),At=f.valueNode.getBoundingClientRect(),Bt=ue.getBoundingClientRect();if(f.dir!=="rtl"){const Gr=Bt.left-He.left,oi=At.left-Gr,Oi=Ge.left-oi,_o=Ge.width+Oi,$n=Math.max(_o,He.width),gs=window.innerWidth-CONTENT_MARGIN,Bs=clamp(oi,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,gs-$n)]);v.style.minWidth=_o+"px",v.style.left=Bs+"px"}else{const Gr=He.right-Bt.right,oi=window.innerWidth-At.right-Gr,Oi=window.innerWidth-Ge.right-oi,_o=Ge.width+Oi,$n=Math.max(_o,He.width),gs=window.innerWidth-CONTENT_MARGIN,Bs=clamp(oi,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,gs-$n)]);v.style.minWidth=_o+"px",v.style.right=Bs+"px"}const Tt=j(),rt=window.innerHeight-CONTENT_MARGIN*2,ye=ee.scrollHeight,lt=window.getComputedStyle(x),Yt=parseInt(lt.borderTopWidth,10),ct=parseInt(lt.paddingTop,10),ht=parseInt(lt.borderBottomWidth,10),vt=parseInt(lt.paddingBottom,10),ar=Yt+ct+ye+vt+ht,jt=Math.min(he.offsetHeight*5,ar),vr=window.getComputedStyle(ee),ai=parseInt(vr.paddingTop,10),pi=parseInt(vr.paddingBottom,10),yi=Ge.top+Ge.height/2-CONTENT_MARGIN,fi=rt-yi,Jn=he.offsetHeight/2,xr=he.offsetTop+Jn,pr=Yt+ct+xr,ei=ar-pr;if(pr<=yi){const Gr=Tt.length>0&&he===Tt[Tt.length-1].ref.current;v.style.bottom="0px";const oi=x.clientHeight-ee.offsetTop-ee.offsetHeight,Oi=Math.max(fi,Jn+(Gr?pi:0)+oi+ht),_o=pr+Oi;v.style.height=_o+"px"}else{const Gr=Tt.length>0&&he===Tt[0].ref.current;v.style.top="0px";const Oi=Math.max(yi,Yt+ee.offsetTop+(Gr?ai:0)+Jn)+ei;v.style.height=Oi+"px",ee.scrollTop=pr-yi+ee.offsetTop}v.style.margin=`${CONTENT_MARGIN}px 0`,v.style.minHeight=jt+"px",v.style.maxHeight=rt+"px",d==null||d(),requestAnimationFrame(()=>W.current=!0)}},[j,f.trigger,f.valueNode,v,x,ee,he,ue,f.dir,d]);useLayoutEffect2(()=>_e(),[_e]);const[De,Fe]=reactExports.useState();useLayoutEffect2(()=>{x&&Fe(window.getComputedStyle(x).zIndex)},[x]);const Ve=reactExports.useCallback(Ge=>{Ge&&re.current===!0&&(_e(),Ee==null||Ee(),re.current=!1)},[_e,Ee]);return jsxRuntimeExports.jsx(SelectViewportProvider,{scope:o,contentWrapper:v,shouldExpandOnScrollRef:W,onScrollButtonChange:Ve,children:jsxRuntimeExports.jsx("div",{ref:L,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:De},children:jsxRuntimeExports.jsx(Primitive.div,{...I,ref:Y,style:{boxSizing:"border-box",maxHeight:"100%",...I.style}})})})});SelectItemAlignedPosition.displayName=ITEM_ALIGNED_POSITION_NAME;var POPPER_POSITION_NAME="SelectPopperPosition",SelectPopperPosition=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,align:d="start",collisionPadding:I=CONTENT_MARGIN,...f}=n,S=usePopperScope(o);return jsxRuntimeExports.jsx(Content,{...S,...f,ref:e,align:d,collisionPadding:I,style:{boxSizing:"border-box",...f.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});SelectPopperPosition.displayName=POPPER_POSITION_NAME;var[SelectViewportProvider,useSelectViewportContext]=createSelectContext(CONTENT_NAME$1,{}),VIEWPORT_NAME="SelectViewport",SelectViewport=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,nonce:d,...I}=n,f=useSelectContentContext(VIEWPORT_NAME,o),S=useSelectViewportContext(VIEWPORT_NAME,o),v=useComposedRefs(e,f.onViewportChange),L=reactExports.useRef(0);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:d}),jsxRuntimeExports.jsx(Collection.Slot,{scope:o,children:jsxRuntimeExports.jsx(Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...I,ref:v,style:{position:"relative",flex:1,overflow:"hidden auto",...I.style},onScroll:composeEventHandlers(I.onScroll,x=>{const F=x.currentTarget,{contentWrapper:Y,shouldExpandOnScrollRef:j}=S;if(j!=null&&j.current&&Y){const W=Math.abs(L.current-F.scrollTop);if(W>0){const re=window.innerHeight-CONTENT_MARGIN*2,ee=parseFloat(Y.style.minHeight),he=parseFloat(Y.style.height),ue=Math.max(ee,he);if(ue0?De:0,Y.style.justifyContent="flex-end")}}}L.current=F.scrollTop})})})]})});SelectViewport.displayName=VIEWPORT_NAME;var GROUP_NAME="SelectGroup",[SelectGroupContextProvider,useSelectGroupContext]=createSelectContext(GROUP_NAME),SelectGroup=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n,I=useId();return jsxRuntimeExports.jsx(SelectGroupContextProvider,{scope:o,id:I,children:jsxRuntimeExports.jsx(Primitive.div,{role:"group","aria-labelledby":I,...d,ref:e})})});SelectGroup.displayName=GROUP_NAME;var LABEL_NAME="SelectLabel",SelectLabel=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n,I=useSelectGroupContext(LABEL_NAME,o);return jsxRuntimeExports.jsx(Primitive.div,{id:I.id,...d,ref:e})});SelectLabel.displayName=LABEL_NAME;var ITEM_NAME="SelectItem",[SelectItemContextProvider,useSelectItemContext]=createSelectContext(ITEM_NAME),SelectItem=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,value:d,disabled:I=!1,textValue:f,...S}=n,v=useSelectContext(ITEM_NAME,o),L=useSelectContentContext(ITEM_NAME,o),x=v.value===d,[F,Y]=reactExports.useState(f??""),[j,W]=reactExports.useState(!1),re=useCallbackRef$1(_e=>{var De;return(De=L.itemRefCallback)==null?void 0:De.call(L,_e,d,I)}),ee=useComposedRefs(e,re),he=useId(),ue=reactExports.useRef("touch"),Ee=()=>{I||(v.onValueChange(d),v.onOpenChange(!1))};return jsxRuntimeExports.jsx(SelectItemContextProvider,{scope:o,value:d,disabled:I,textId:he,isSelected:x,onItemTextChange:reactExports.useCallback(_e=>{Y(De=>De||((_e==null?void 0:_e.textContent)??"").trim())},[]),children:jsxRuntimeExports.jsx(Collection.ItemSlot,{scope:o,value:d,disabled:I,textValue:F,children:jsxRuntimeExports.jsx(Primitive.div,{role:"option","aria-labelledby":he,"data-highlighted":j?"":void 0,"aria-selected":x&&j,"data-state":x?"checked":"unchecked","aria-disabled":I||void 0,"data-disabled":I?"":void 0,tabIndex:I?void 0:-1,...S,ref:ee,onFocus:composeEventHandlers(S.onFocus,()=>W(!0)),onBlur:composeEventHandlers(S.onBlur,()=>W(!1)),onClick:composeEventHandlers(S.onClick,()=>{ue.current!=="mouse"&&Ee()}),onPointerUp:composeEventHandlers(S.onPointerUp,()=>{ue.current==="mouse"&&Ee()}),onPointerDown:composeEventHandlers(S.onPointerDown,_e=>{ue.current=_e.pointerType}),onPointerMove:composeEventHandlers(S.onPointerMove,_e=>{var De;ue.current=_e.pointerType,I?(De=L.onItemLeave)==null||De.call(L):ue.current==="mouse"&&_e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:composeEventHandlers(S.onPointerLeave,_e=>{var De;_e.currentTarget===document.activeElement&&((De=L.onItemLeave)==null||De.call(L))}),onKeyDown:composeEventHandlers(S.onKeyDown,_e=>{var Fe;I||_e.target!==_e.currentTarget||((Fe=L.searchRef)==null?void 0:Fe.current)!==""&&_e.key===" "||(SELECTION_KEYS.includes(_e.key)&&Ee(),_e.key===" "&&_e.preventDefault())})})})})});SelectItem.displayName=ITEM_NAME;var ITEM_TEXT_NAME="SelectItemText",SelectItemText=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,className:d,style:I,...f}=n,S=useSelectContext(ITEM_TEXT_NAME,o),v=useSelectContentContext(ITEM_TEXT_NAME,o),L=useSelectItemContext(ITEM_TEXT_NAME,o),x=useSelectNativeOptionsContext(ITEM_TEXT_NAME,o),[F,Y]=reactExports.useState(null),j=useCallbackRef$1(Ee=>{var _e;return(_e=v.itemTextRefCallback)==null?void 0:_e.call(v,Ee,L.value,L.disabled)}),W=useComposedRefs(e,Y,L.onItemTextChange,j),re=F==null?void 0:F.textContent,ee=reactExports.useMemo(()=>jsxRuntimeExports.jsx("option",{value:L.value,disabled:L.disabled,children:re},L.value),[L.disabled,L.value,re]),{onNativeOptionAdd:he,onNativeOptionRemove:ue}=x;return useLayoutEffect2(()=>(he(ee),()=>ue(ee)),[he,ue,ee]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Primitive.span,{id:L.textId,...f,ref:W}),L.isSelected&&S.valueNode&&!S.valueNodeHasChildren&&!shouldShowPlaceholder(S.value)?reactDomExports.createPortal(f.children,S.valueNode):null]})});SelectItemText.displayName=ITEM_TEXT_NAME;var ITEM_INDICATOR_NAME="SelectItemIndicator",SelectItemIndicator=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n;return useSelectItemContext(ITEM_INDICATOR_NAME,o).isSelected?jsxRuntimeExports.jsx(Primitive.span,{"aria-hidden":!0,...d,ref:e}):null});SelectItemIndicator.displayName=ITEM_INDICATOR_NAME;var SCROLL_UP_BUTTON_NAME="SelectScrollUpButton",SelectScrollUpButton=reactExports.forwardRef((n,e)=>{const o=useSelectContentContext(SCROLL_UP_BUTTON_NAME,n.__scopeSelect),d=useSelectViewportContext(SCROLL_UP_BUTTON_NAME,n.__scopeSelect),[I,f]=reactExports.useState(!1),S=useComposedRefs(e,d.onScrollButtonChange);return useLayoutEffect2(()=>{if(o.viewport&&o.isPositioned){let v=function(){const x=L.scrollTop>0;f(x)};const L=o.viewport;return v(),L.addEventListener("scroll",v),()=>L.removeEventListener("scroll",v)}},[o.viewport,o.isPositioned]),I?jsxRuntimeExports.jsx(SelectScrollButtonImpl,{...n,ref:S,onAutoScroll:()=>{const{viewport:v,selectedItem:L}=o;v&&L&&(v.scrollTop=v.scrollTop-L.offsetHeight)}}):null});SelectScrollUpButton.displayName=SCROLL_UP_BUTTON_NAME;var SCROLL_DOWN_BUTTON_NAME="SelectScrollDownButton",SelectScrollDownButton=reactExports.forwardRef((n,e)=>{const o=useSelectContentContext(SCROLL_DOWN_BUTTON_NAME,n.__scopeSelect),d=useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME,n.__scopeSelect),[I,f]=reactExports.useState(!1),S=useComposedRefs(e,d.onScrollButtonChange);return useLayoutEffect2(()=>{if(o.viewport&&o.isPositioned){let v=function(){const x=L.scrollHeight-L.clientHeight,F=Math.ceil(L.scrollTop)L.removeEventListener("scroll",v)}},[o.viewport,o.isPositioned]),I?jsxRuntimeExports.jsx(SelectScrollButtonImpl,{...n,ref:S,onAutoScroll:()=>{const{viewport:v,selectedItem:L}=o;v&&L&&(v.scrollTop=v.scrollTop+L.offsetHeight)}}):null});SelectScrollDownButton.displayName=SCROLL_DOWN_BUTTON_NAME;var SelectScrollButtonImpl=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,onAutoScroll:d,...I}=n,f=useSelectContentContext("SelectScrollButton",o),S=reactExports.useRef(null),v=useCollection(o),L=reactExports.useCallback(()=>{S.current!==null&&(window.clearInterval(S.current),S.current=null)},[]);return reactExports.useEffect(()=>()=>L(),[L]),useLayoutEffect2(()=>{var F;const x=v().find(Y=>Y.ref.current===document.activeElement);(F=x==null?void 0:x.ref.current)==null||F.scrollIntoView({block:"nearest"})},[v]),jsxRuntimeExports.jsx(Primitive.div,{"aria-hidden":!0,...I,ref:e,style:{flexShrink:0,...I.style},onPointerDown:composeEventHandlers(I.onPointerDown,()=>{S.current===null&&(S.current=window.setInterval(d,50))}),onPointerMove:composeEventHandlers(I.onPointerMove,()=>{var x;(x=f.onItemLeave)==null||x.call(f),S.current===null&&(S.current=window.setInterval(d,50))}),onPointerLeave:composeEventHandlers(I.onPointerLeave,()=>{L()})})}),SEPARATOR_NAME="SelectSeparator",SelectSeparator=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n;return jsxRuntimeExports.jsx(Primitive.div,{"aria-hidden":!0,...d,ref:e})});SelectSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="SelectArrow",SelectArrow=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n,I=usePopperScope(o);return useSelectContentContext(ARROW_NAME,o).position==="popper"?jsxRuntimeExports.jsx(Arrow,{...I,...d,ref:e}):null});SelectArrow.displayName=ARROW_NAME;var BUBBLE_INPUT_NAME$1="SelectBubbleInput",SelectBubbleInput=reactExports.forwardRef(({__scopeSelect:n,...e},o)=>{const d=useSelectContext(BUBBLE_INPUT_NAME$1,n),{value:I,onValueChange:f,required:S,disabled:v,name:L,autoComplete:x,form:F}=d,{nativeOptions:Y,nativeSelectKey:j}=d,W=reactExports.useRef(null),re=useComposedRefs(o,W),ee=I??"",he=usePrevious(ee),ue=Array.from(Y).some(Ee=>(Ee.props.value??"")==="");return reactExports.useEffect(()=>{const Ee=W.current;if(!Ee)return;const _e=window.HTMLSelectElement.prototype,Fe=Object.getOwnPropertyDescriptor(_e,"value").set;if(he!==ee&&Fe){const Ve=new Event("change",{bubbles:!0});Fe.call(Ee,ee),Ee.dispatchEvent(Ve)}},[he,ee]),jsxRuntimeExports.jsxs(Primitive.select,{"aria-hidden":!0,required:S,tabIndex:-1,name:L,autoComplete:x,disabled:v,form:F,onChange:Ee=>f(Ee.target.value),...e,style:{...VISUALLY_HIDDEN_STYLES,...e.style},ref:re,defaultValue:ee,children:[shouldShowPlaceholder(I)&&!ue?jsxRuntimeExports.jsx("option",{value:""}):null,Array.from(Y)]},j)});SelectBubbleInput.displayName=BUBBLE_INPUT_NAME$1;function isFunction$1(n){return typeof n=="function"}function shouldShowPlaceholder(n){return n===""||n===void 0}function useTypeaheadSearch(n){const e=useCallbackRef$1(n),o=reactExports.useRef(""),d=reactExports.useRef(0),I=reactExports.useCallback(S=>{const v=o.current+S;e(v),function L(x){o.current=x,window.clearTimeout(d.current),x!==""&&(d.current=window.setTimeout(()=>L(""),1e3))}(v)},[e]),f=reactExports.useCallback(()=>{o.current="",window.clearTimeout(d.current)},[]);return reactExports.useEffect(()=>()=>window.clearTimeout(d.current),[]),[o,I,f]}function findNextItem(n,e,o){const I=e.length>1&&Array.from(e).every(x=>x===e[0])?e[0]:e,f=o?n.indexOf(o):-1;let S=wrapArray(n,Math.max(f,0));I.length===1&&(S=S.filter(x=>x!==o));const L=S.find(x=>x.textValue.toLowerCase().startsWith(I.toLowerCase()));return L!==o?L:void 0}function wrapArray(n,e){return n.map((o,d)=>n[(e+d)%n.length])}var DIALOG_NAME="Dialog",[createDialogContext]=createContextScope(DIALOG_NAME),[DialogProvider,useDialogContext]=createDialogContext(DIALOG_NAME),Dialog$1=n=>{const{__scopeDialog:e,children:o,open:d,defaultOpen:I,onOpenChange:f,modal:S=!0}=n,v=reactExports.useRef(null),L=reactExports.useRef(null),[x,F]=useControllableState({prop:d,defaultProp:I??!1,onChange:f,caller:DIALOG_NAME});return jsxRuntimeExports.jsx(DialogProvider,{scope:e,triggerRef:v,contentRef:L,contentId:useId(),titleId:useId(),descriptionId:useId(),open:x,onOpenChange:F,onOpenToggle:reactExports.useCallback(()=>F(Y=>!Y),[F]),modal:S,children:o})};Dialog$1.displayName=DIALOG_NAME;var TRIGGER_NAME$1="DialogTrigger",DialogTrigger=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(TRIGGER_NAME$1,o),f=useComposedRefs(e,I.triggerRef);return jsxRuntimeExports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":I.open,"aria-controls":I.open?I.contentId:void 0,"data-state":getState$1(I.open),...d,ref:f,onClick:composeEventHandlers(n.onClick,I.onOpenToggle)})});DialogTrigger.displayName=TRIGGER_NAME$1;var PORTAL_NAME="DialogPortal",[PortalProvider,usePortalContext]=createDialogContext(PORTAL_NAME,{forceMount:void 0}),DialogPortal$1=n=>{const{__scopeDialog:e,forceMount:o,children:d,container:I}=n,f=useDialogContext(PORTAL_NAME,e);return jsxRuntimeExports.jsx(PortalProvider,{scope:e,forceMount:o,children:reactExports.Children.map(d,S=>jsxRuntimeExports.jsx(Presence,{present:o||f.open,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,container:I,children:S})}))})};DialogPortal$1.displayName=PORTAL_NAME;var OVERLAY_NAME="DialogOverlay",DialogOverlay$1=reactExports.forwardRef((n,e)=>{const o=usePortalContext(OVERLAY_NAME,n.__scopeDialog),{forceMount:d=o.forceMount,...I}=n,f=useDialogContext(OVERLAY_NAME,n.__scopeDialog);return f.modal?jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:jsxRuntimeExports.jsx(DialogOverlayImpl,{...I,ref:e})}):null});DialogOverlay$1.displayName=OVERLAY_NAME;var Slot=createSlot("DialogOverlay.RemoveScroll"),DialogOverlayImpl=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(OVERLAY_NAME,o),f=useDismissableLayerSurface(),S=useComposedRefs(e,f);return jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,shards:[I.contentRef],children:jsxRuntimeExports.jsx(Primitive.div,{"data-state":getState$1(I.open),...d,ref:S,style:{pointerEvents:"auto",...d.style}})})}),CONTENT_NAME="DialogContent",DialogContent$1=reactExports.forwardRef((n,e)=>{const o=usePortalContext(CONTENT_NAME,n.__scopeDialog),{forceMount:d=o.forceMount,...I}=n,f=useDialogContext(CONTENT_NAME,n.__scopeDialog);return jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:f.modal?jsxRuntimeExports.jsx(DialogContentModal,{...I,ref:e}):jsxRuntimeExports.jsx(DialogContentNonModal,{...I,ref:e})})});DialogContent$1.displayName=CONTENT_NAME;var DialogContentModal=reactExports.forwardRef((n,e)=>{const o=useDialogContext(CONTENT_NAME,n.__scopeDialog),d=reactExports.useRef(null),I=useComposedRefs(e,o.contentRef,d);return reactExports.useEffect(()=>{const f=d.current;if(f)return hideOthers(f)},[]),jsxRuntimeExports.jsx(DialogContentImpl,{...n,ref:I,trapFocus:o.open,disableOutsidePointerEvents:o.open,onCloseAutoFocus:composeEventHandlers(n.onCloseAutoFocus,f=>{var S;f.preventDefault(),(S=o.triggerRef.current)==null||S.focus()}),onPointerDownOutside:composeEventHandlers(n.onPointerDownOutside,f=>{const S=f.detail.originalEvent,v=S.button===0&&S.ctrlKey===!0;(S.button===2||v)&&f.preventDefault()}),onFocusOutside:composeEventHandlers(n.onFocusOutside,f=>f.preventDefault())})}),DialogContentNonModal=reactExports.forwardRef((n,e)=>{const o=useDialogContext(CONTENT_NAME,n.__scopeDialog),d=reactExports.useRef(!1),I=reactExports.useRef(!1);return jsxRuntimeExports.jsx(DialogContentImpl,{...n,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:f=>{var S,v;(S=n.onCloseAutoFocus)==null||S.call(n,f),f.defaultPrevented||(d.current||(v=o.triggerRef.current)==null||v.focus(),f.preventDefault()),d.current=!1,I.current=!1},onInteractOutside:f=>{var L,x;(L=n.onInteractOutside)==null||L.call(n,f),f.defaultPrevented||(d.current=!0,f.detail.originalEvent.type==="pointerdown"&&(I.current=!0));const S=f.target;((x=o.triggerRef.current)==null?void 0:x.contains(S))&&f.preventDefault(),f.detail.originalEvent.type==="focusin"&&I.current&&f.preventDefault()}})}),DialogContentImpl=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,trapFocus:d,onOpenAutoFocus:I,onCloseAutoFocus:f,...S}=n,v=useDialogContext(CONTENT_NAME,o);return useFocusGuards(),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:I,onUnmountAutoFocus:f,children:jsxRuntimeExports.jsx(DismissableLayer,{role:"dialog",id:v.contentId,"aria-describedby":v.descriptionId,"aria-labelledby":v.titleId,"data-state":getState$1(v.open),...S,ref:e,deferPointerDownOutside:!0,onDismiss:()=>v.onOpenChange(!1)})})})}),TITLE_NAME="DialogTitle",DialogTitle$1=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(TITLE_NAME,o);return jsxRuntimeExports.jsx(Primitive.h2,{id:I.titleId,...d,ref:e})});DialogTitle$1.displayName=TITLE_NAME;var DESCRIPTION_NAME="DialogDescription",DialogDescription$1=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(DESCRIPTION_NAME,o);return jsxRuntimeExports.jsx(Primitive.p,{id:I.descriptionId,...d,ref:e})});DialogDescription$1.displayName=DESCRIPTION_NAME;var CLOSE_NAME="DialogClose",DialogClose$1=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(CLOSE_NAME,o);return jsxRuntimeExports.jsx(Primitive.button,{type:"button",...d,ref:e,onClick:composeEventHandlers(n.onClick,()=>I.onOpenChange(!1))})});DialogClose$1.displayName=CLOSE_NAME;function getState$1(n){return n?"open":"closed"}var SWITCH_NAME="Switch",[createSwitchContext]=createContextScope(SWITCH_NAME),[SwitchProviderImpl,useSwitchContext]=createSwitchContext(SWITCH_NAME);function SwitchProvider(n){const{__scopeSwitch:e,checked:o,children:d,defaultChecked:I,disabled:f,form:S,name:v,onCheckedChange:L,required:x,value:F="on",internal_do_not_use_render:Y}=n,[j,W]=useControllableState({prop:o,defaultProp:I??!1,onChange:L,caller:SWITCH_NAME}),[re,ee]=reactExports.useState(null),[he,ue]=reactExports.useState(null),Ee=reactExports.useRef(!1),_e=re?!!S||!!re.closest("form"):!0,De={checked:j,setChecked:W,disabled:f,control:re,setControl:ee,name:v,form:S,value:F,hasConsumerStoppedPropagationRef:Ee,required:x,defaultChecked:I,isFormControl:_e,bubbleInput:he,setBubbleInput:ue};return jsxRuntimeExports.jsx(SwitchProviderImpl,{scope:e,...De,children:isFunction(Y)?Y(De):d})}var TRIGGER_NAME="SwitchTrigger",SwitchTrigger=reactExports.forwardRef(({__scopeSwitch:n,onClick:e,...o},d)=>{const{control:I,form:f,value:S,disabled:v,checked:L,required:x,setControl:F,setChecked:Y,hasConsumerStoppedPropagationRef:j,isFormControl:W,bubbleInput:re}=useSwitchContext(TRIGGER_NAME,n),ee=useComposedRefs(d,F),he=reactExports.useRef(L);return reactExports.useEffect(()=>{const ue=f?I==null?void 0:I.ownerDocument.getElementById(f):I==null?void 0:I.form;if(ue instanceof HTMLFormElement){const Ee=()=>Y(he.current);return ue.addEventListener("reset",Ee),()=>ue.removeEventListener("reset",Ee)}},[I,f,Y]),jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"switch","aria-checked":L,"aria-required":x,"data-state":getState(L),"data-disabled":v?"":void 0,disabled:v,value:S,...o,ref:ee,onClick:composeEventHandlers(e,ue=>{Y(Ee=>!Ee),re&&W&&(j.current=ue.isPropagationStopped(),j.current||ue.stopPropagation())})})});SwitchTrigger.displayName=TRIGGER_NAME;var Switch=reactExports.forwardRef((n,e)=>{const{__scopeSwitch:o,name:d,checked:I,defaultChecked:f,required:S,disabled:v,value:L,onCheckedChange:x,form:F,...Y}=n;return jsxRuntimeExports.jsx(SwitchProvider,{__scopeSwitch:o,checked:I,defaultChecked:f,disabled:v,required:S,onCheckedChange:x,name:d,form:F,value:L,internal_do_not_use_render:({isFormControl:j})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SwitchTrigger,{...Y,ref:e,__scopeSwitch:o}),j&&jsxRuntimeExports.jsx(SwitchBubbleInput,{__scopeSwitch:o})]})})});Switch.displayName=SWITCH_NAME;var THUMB_NAME="SwitchThumb",SwitchThumb=reactExports.forwardRef((n,e)=>{const{__scopeSwitch:o,...d}=n,I=useSwitchContext(THUMB_NAME,o);return jsxRuntimeExports.jsx(Primitive.span,{"data-state":getState(I.checked),"data-disabled":I.disabled?"":void 0,...d,ref:e})});SwitchThumb.displayName=THUMB_NAME;var BUBBLE_INPUT_NAME="SwitchBubbleInput",SwitchBubbleInput=reactExports.forwardRef(({__scopeSwitch:n,...e},o)=>{const{control:d,hasConsumerStoppedPropagationRef:I,checked:f,defaultChecked:S,required:v,disabled:L,name:x,value:F,form:Y,bubbleInput:j,setBubbleInput:W}=useSwitchContext(BUBBLE_INPUT_NAME,n),re=useComposedRefs(o,W),ee=usePrevious(f),he=useSize(d);reactExports.useEffect(()=>{const Ee=j;if(!Ee)return;const _e=window.HTMLInputElement.prototype,Fe=Object.getOwnPropertyDescriptor(_e,"checked").set,Ve=!I.current;if(ee!==f&&Fe){const Ge=new Event("click",{bubbles:Ve});Fe.call(Ee,f),Ee.dispatchEvent(Ge)}},[j,ee,f,I]);const ue=reactExports.useRef(f);return jsxRuntimeExports.jsx(Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:S??ue.current,required:v,disabled:L,name:x,value:F,form:Y,...e,tabIndex:-1,ref:re,style:{...e.style,...he,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});SwitchBubbleInput.displayName=BUBBLE_INPUT_NAME;function isFunction(n){return typeof n=="function"}function getState(n){return n?"checked":"unchecked"}function SimpleVisualizer({data:n,className:e,activeColor:o="#374151",inactiveColor:d="#d1d5db",barWidth:I=3,barHeight:f=16,barGap:S=2}){return jsxRuntimeExports.jsx("div",{className:cn("flex items-center justify-start",e),style:{gap:`${S}px`,height:`${f*2}px`},role:"img","aria-label":"Audio level indicator",children:n.map((v,L)=>jsxRuntimeExports.jsx("div",{style:{width:`${I}px`,height:`${f}px`,backgroundColor:v>0?o:d,borderRadius:"9999px",transition:"background-color 75ms",willChange:"background-color"}},L))})}var MicButton=reactExports.forwardRef(({state:n="idle",icon:e=jsxRuntimeExports.jsx(Mic,{className:"h-4 w-4"}),showErrorBadge:o=!1,audioData:d,className:I,disabled:f,...S},v)=>{const L=n==="processing",x=n==="error";return jsxRuntimeExports.jsxs("button",{ref:v,disabled:f||x,className:cn("relative inline-flex items-center justify-center rounded-lg border px-3 py-2 text-sm font-medium transition-colors",!x&&"border-input bg-background hover:bg-accent focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",x&&"border-destructive bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:ring-destructive cursor-not-allowed focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",f&&"cursor-not-allowed opacity-50",I),"aria-label":x?"Microphone error":n==="listening"?"Microphone active":"Microphone",...S,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-center gap-1.5",children:[x?jsxRuntimeExports.jsx(MicOff,{className:"h-4 w-4"}):e,d&&d.length>0&&jsxRuntimeExports.jsx(SimpleVisualizer,{data:d,className:L?"text-slate-400":""})]}),x&&o&&jsxRuntimeExports.jsx("div",{className:"absolute -top-2 -right-2 flex h-5 w-5 items-center justify-center rounded-full bg-amber-400 text-amber-900",children:jsxRuntimeExports.jsx("span",{className:"text-xs leading-none font-bold",children:"!"})})]})});MicButton.displayName="MicButton";var Response=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx("div",{ref:o,className:cn("text-sm leading-relaxed break-words whitespace-pre-wrap",n),...e}));Response.displayName="Response";var EMessageStatus=(n=>(n[n.IN_PROGRESS=0]="IN_PROGRESS",n[n.END=1]="END",n[n.INTERRUPTED=2]="INTERRUPTED",n))(EMessageStatus||{});new Set(Object.values(EMessageStatus).filter(n=>typeof n=="number"));var sizeClasses={sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12"},getInitials=(n,e)=>e?e.toUpperCase():n?n.split(" ").slice(0,2).map(o=>o[0]).join("").toUpperCase():"?",Avatar=reactExports.forwardRef(({className:n,src:e,icon:o,initials:d,name:I,size:f="md",bgColor:S="bg-gradient-to-br from-blue-500 to-blue-600",alt:v="avatar",...L},x)=>{const[F,Y]=reactExports.useState(!1),j=getInitials(I,d);return jsxRuntimeExports.jsx("div",{ref:x,className:cn("ring-border flex items-center justify-center overflow-hidden rounded-full ring-1",sizeClasses[f],n),...L,children:e&&!F?jsxRuntimeExports.jsx("img",{src:e,alt:v,className:"h-full w-full object-cover",onError:()=>Y(!0)}):o?jsxRuntimeExports.jsx("div",{className:cn("h-full w-full flex items-center justify-center text-white",S),children:o}):jsxRuntimeExports.jsx("div",{className:cn("h-full w-full flex items-center justify-center text-xs font-semibold text-white",S),children:j})})});Avatar.displayName="Avatar";function useVideoPlayback({videoTrack:n,useMediaStream:e,videoContainerRef:o,videoElementRef:d,debugLabel:I="useVideoPlayback"}){const[f,S]=reactExports.useState(!1);return reactExports.useEffect(()=>{if(!e||!n||!d.current){e&&S(!1);return}try{const v=n.getMediaStreamTrack(),L=new MediaStream([v]);d.current.srcObject=L,d.current.play().catch(x=>{x.name!=="AbortError"&&debug.error(`${I}: MediaStream playback failed`,x)}),S(!0)}catch(v){debug.error(`${I}: failed to attach MediaStream`,v),S(!1)}return()=>{d.current&&(d.current.srcObject=null),S(!1)}},[n,e,I]),reactExports.useEffect(()=>{if(e||!n||!o.current){e||S(!1);return}try{n.play(o.current),S(!0)}catch(v){debug.error(`${I}: failed to play video track`,v),S(!1)}return()=>{try{n.stop(),S(!1)}catch(v){debug.error(`${I}: failed to stop video track`,v)}}},[n,e,I]),{isPlaying:f}}var AvatarVideoDisplay=reactExports.forwardRef(({className:n,videoTrack:e,state:o="disconnected",showStatus:d=!1,placeholder:I,useMediaStream:f=!1,objectFit:S="cover",...v},L)=>{const x=reactExports.useRef(null),F=reactExports.useRef(null),{isPlaying:Y}=useVideoPlayback({videoTrack:e??null,useMediaStream:f,videoContainerRef:x,videoElementRef:F,debugLabel:"AvatarVideoDisplay"}),j=!Y||o==="disconnected";return jsxRuntimeExports.jsxs("div",{ref:L,className:cn("relative overflow-hidden rounded-lg bg-muted","flex items-center justify-center",n),...v,children:[!f&&jsxRuntimeExports.jsx("div",{ref:x,className:cn("absolute inset-2 rounded-lg overflow-hidden",j&&"hidden")}),f&&jsxRuntimeExports.jsx("video",{ref:F,autoPlay:!0,playsInline:!0,className:cn("absolute inset-2 w-[calc(100%-1rem)] h-[calc(100%-1rem)] rounded-lg",j&&"hidden"),style:{objectFit:S}}),j&&jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-gradient-to-br from-slate-800 to-slate-900 text-muted-foreground",children:I||jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-16 w-16 rounded-full bg-slate-700/50 flex items-center justify-center",children:jsxRuntimeExports.jsx("svg",{className:"h-8 w-8",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:jsxRuntimeExports.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"})})}),jsxRuntimeExports.jsx("p",{className:"text-sm",children:o==="loading"?"Connecting...":"No video"})]})}),d&&o!=="disconnected"&&jsxRuntimeExports.jsxs("div",{className:"absolute top-2 right-2 rounded-full bg-black/60 px-2 py-1 text-xs text-white backdrop-blur-sm",children:[o==="loading"&&"Connecting...",o==="connected"&&Y&&jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("span",{className:"h-2 w-2 rounded-full bg-green-500 animate-pulse"}),"Live"]})]})]})});AvatarVideoDisplay.displayName="AvatarVideoDisplay";var LocalVideoPreview=reactExports.forwardRef(({className:n,videoTrack:e,isMirrored:o=!0,showLabel:d=!1,label:I="You",placeholder:f,useMediaStream:S=!1,isVideoMuted:v=!1,onToggleMute:L,showMuteControl:x=!1,objectFit:F="cover",...Y},j)=>{const W=reactExports.useRef(null),re=reactExports.useRef(null),[ee,he]=reactExports.useState(!1),{isPlaying:ue}=useVideoPlayback({videoTrack:e??null,useMediaStream:S,videoContainerRef:W,videoElementRef:re,debugLabel:"LocalVideoPreview"}),Ee=!ue;return jsxRuntimeExports.jsxs("div",{ref:j,className:cn("relative overflow-hidden rounded-lg bg-muted","flex items-center justify-center",n),onMouseEnter:()=>he(!0),onMouseLeave:()=>he(!1),...Y,children:[!S&&jsxRuntimeExports.jsx("div",{ref:W,className:cn("absolute inset-2 rounded-lg overflow-hidden",o&&"scale-x-[-1]",Ee&&"hidden")}),S&&jsxRuntimeExports.jsx("video",{ref:re,autoPlay:!0,playsInline:!0,muted:!0,className:cn("absolute inset-2 w-[calc(100%-1rem)] h-[calc(100%-1rem)] rounded-lg",o&&"scale-x-[-1]",Ee&&"hidden"),style:{objectFit:F}}),Ee&&jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-gradient-to-br from-slate-700 to-slate-800 text-muted-foreground",children:f||jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-12 w-12 rounded-full bg-slate-600/50 flex items-center justify-center",children:jsxRuntimeExports.jsx(Video,{className:"h-6 w-6"})}),jsxRuntimeExports.jsx("p",{className:"text-xs",children:"Camera off"})]})}),d&&ue&&I&&jsxRuntimeExports.jsx("div",{className:"absolute bottom-2 left-2 rounded-full bg-black/60 px-2 py-1 text-xs text-white backdrop-blur-sm",children:I}),x&&L&&ue&&ee&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/30 backdrop-blur-[2px]",children:jsxRuntimeExports.jsx("button",{onClick:_e=>{_e.stopPropagation(),L()},className:cn("flex items-center justify-center rounded-full p-4 transition-all","bg-black/60 hover:bg-black/80 text-white","shadow-lg backdrop-blur-sm"),"aria-label":v?"Unmute video":"Mute video",children:v?jsxRuntimeExports.jsx(VideoOff,{className:"h-6 w-6"}):jsxRuntimeExports.jsx(Video,{className:"h-6 w-6"})})})]})});LocalVideoPreview.displayName="LocalVideoPreview";function Popover({...n}){return jsxRuntimeExports.jsx(Root2,{"data-slot":"popover",...n})}function PopoverTrigger({...n}){return jsxRuntimeExports.jsx(Trigger,{"data-slot":"popover-trigger",...n})}function PopoverContent({className:n,align:e="center",sideOffset:o=4,...d}){return jsxRuntimeExports.jsx(Portal,{children:jsxRuntimeExports.jsx(Content2,{"data-slot":"popover-content",align:e,sideOffset:o,className:cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",n),...d})})}var CameraSelector=reactExports.forwardRef(({devices:n=[],value:e,onValueChange:o,disabled:d=!1,onDisabledChange:I,hasError:f=!1,className:S},v)=>{const[L,x]=reactExports.useState(!1),F=n.find(W=>W.deviceId===e)||n[0],Y=()=>{I==null||I(!d)},j=W=>{o==null||o(W),x(!1)};return jsxRuntimeExports.jsxs("div",{ref:v,className:cn("inline-flex items-center gap-2 rounded-lg border bg-background px-3 py-2",f&&"border-destructive",S),children:[jsxRuntimeExports.jsx("button",{onClick:Y,"aria-label":"Toggle camera",className:cn("flex h-8 w-8 items-center justify-center rounded-full transition-colors","focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none",f?"bg-destructive/10 text-destructive hover:bg-destructive/20":d?"bg-muted text-muted-foreground hover:bg-muted/80":"bg-primary/10 text-primary hover:bg-primary/20"),children:f||d?jsxRuntimeExports.jsx(VideoOff,{className:"h-4 w-4"}):jsxRuntimeExports.jsx(Video,{className:"h-4 w-4"})}),n.length>0&&jsxRuntimeExports.jsxs(Popover,{open:L,onOpenChange:x,children:[jsxRuntimeExports.jsxs(PopoverTrigger,{"aria-label":"Select camera device",className:"flex items-center gap-2 text-sm hover:text-foreground/80",disabled:d||f,children:[jsxRuntimeExports.jsx("span",{className:"max-w-[150px] truncate",children:(F==null?void 0:F.label)||"Select camera"}),jsxRuntimeExports.jsx(ChevronDown,{className:cn("h-4 w-4 transition-transform",L&&"rotate-180")})]}),jsxRuntimeExports.jsx(PopoverContent,{align:"start",sideOffset:8,className:"w-64 p-1",children:n.map(W=>jsxRuntimeExports.jsxs("button",{onClick:()=>j(W.deviceId),className:cn("flex w-full items-center justify-between rounded px-3 py-2 text-sm hover:bg-accent",W.deviceId===e&&"bg-accent"),children:[jsxRuntimeExports.jsx("span",{className:"truncate",children:W.label}),W.deviceId===e&&jsxRuntimeExports.jsx(Check,{className:"h-4 w-4 flex-shrink-0"})]},W.deviceId))})]}),n.length===0&&!f&&jsxRuntimeExports.jsx("span",{className:"text-sm text-muted-foreground",children:"No cameras available"}),f&&jsxRuntimeExports.jsx("div",{className:"ml-auto flex h-5 w-5 items-center justify-center rounded-full bg-amber-400 text-amber-900",children:jsxRuntimeExports.jsx("span",{className:"text-xs font-bold leading-none",children:"!"})})]})});CameraSelector.displayName="CameraSelector";var VideoGrid=reactExports.forwardRef(({className:n,avatar:e,chat:o,localVideo:d,controls:I,...f},S)=>jsxRuntimeExports.jsxs("div",{ref:S,className:cn("grid h-full w-full",n),style:{gridTemplateColumns:"40% 60%",gridTemplateRows:"1fr 1fr",gap:"1rem"},...f,children:[jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",style:{gridRow:"1"},children:o}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",style:{gridRow:"1 / 3",gridColumn:"2"},children:e}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",style:{gridRow:"2"},children:d})]}));VideoGrid.displayName="VideoGrid";var VideoGridWithControls=reactExports.forwardRef(({className:n,avatar:e,chat:o,localVideo:d,controls:I,...f},S)=>jsxRuntimeExports.jsxs("div",{ref:S,className:cn("grid h-full w-full gap-4","grid-cols-2 grid-rows-2",n),...f,children:[jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",children:o}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",children:e}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",children:d}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg p-4 flex items-center justify-center",children:I})]}));VideoGridWithControls.displayName="VideoGridWithControls";var MobileTabs=reactExports.forwardRef(({className:n,tabs:e,activeTab:o,onTabChange:d,tabPosition:I="top",...f},S)=>{var j;const[v,L]=reactExports.useState(((j=e[0])==null?void 0:j.id)||""),x=o!==void 0?o:v,F=W=>{o===void 0&&L(W),d==null||d(W)},Y=jsxRuntimeExports.jsx("div",{className:"flex border-b bg-muted/30",role:"tablist",children:e.map((W,re)=>jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsxs("button",{role:"tab","aria-selected":x===W.id,onClick:()=>F(W.id),className:cn("cursor-pointer flex flex-1 items-center justify-center gap-2 px-3 py-2 text-sm font-medium transition-colors",x===W.id?"bg-background text-foreground border-b-2 border-primary":"text-muted-foreground hover:text-foreground"),children:[W.icon&&jsxRuntimeExports.jsx("span",{className:"h-4 w-4",children:W.icon}),jsxRuntimeExports.jsx("span",{children:W.label})]}),rejsxRuntimeExports.jsx("div",{role:"tabpanel",className:cn("flex-1 overflow-hidden",W.id===x?"":"hidden"),children:W.content},W.id)),I==="bottom"&&Y]})});MobileTabs.displayName="MobileTabs";var ValuePicker=reactExports.forwardRef(({items:n,value:e,onValueChange:o,placeholder:d="Select a value...",label:I,disabled:f,open:S,onOpenChange:v,maxHeight:L},x)=>{const F=n.find(j=>j.id===e),Y=!!L;return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[I&&jsxRuntimeExports.jsx("label",{className:"text-small font-medium",children:I}),jsxRuntimeExports.jsxs(Select,{value:e,onValueChange:o,open:S,onOpenChange:v,children:[jsxRuntimeExports.jsxs(SelectTrigger,{ref:x,disabled:f,className:cn("bg-input-field-bg text-font-high text-normal inline-flex w-full items-center justify-between border p-3 font-medium outline-hidden","data-[state=closed]:rounded-md data-[state=open]:rounded-none","data-[placeholder]:text-muted-foreground","disabled:pointer-events-none disabled:opacity-50"),children:[jsxRuntimeExports.jsx(SelectValue,{placeholder:d,asChild:!0,children:jsxRuntimeExports.jsx("span",{className:"truncate leading-tight",children:(F==null?void 0:F.name)||d})}),jsxRuntimeExports.jsx(SelectIcon,{asChild:!0,children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-5"})})]}),jsxRuntimeExports.jsx(SelectPortal,{children:jsxRuntimeExports.jsxs(SelectContent,{className:cn("bg-input-field-bg text-font-high text-normal border-t-primary-brand relative z-50 w-[var(--radix-select-trigger-width)] overflow-hidden rounded-br-md rounded-bl-md border p-0","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2","data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2","data-[side=top]:slide-in-from-bottom-2"),position:"popper",sideOffset:0,children:[Y&&jsxRuntimeExports.jsx(SelectScrollUpButton,{className:"flex cursor-default items-center justify-center py-1",children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-4 rotate-180"})}),jsxRuntimeExports.jsx(SelectViewport,{className:cn(Y&&"overflow-y-auto"),style:Y?{maxHeight:L}:void 0,children:n.length===0?jsxRuntimeExports.jsx("div",{className:"text-muted-foreground py-6 text-center text-sm",children:"No items found."}):n.map(j=>jsxRuntimeExports.jsxs(SelectItem,{value:j.id,className:cn("bg-input-field-bg text-normal relative flex cursor-pointer items-center gap-2 rounded-sm p-3 pr-8 outline-hidden select-none","transition-colors hover:rounded-none hover:bg-[var(--color-neutral)]/25","data-[state=checked]:rounded-none data-[state=checked]:bg-[var(--color-neutral)]/15","focus-visible:bg-[var(--color-neutral)]/15"),children:[jsxRuntimeExports.jsx(SelectItemText,{className:"flex-1",children:j.name}),jsxRuntimeExports.jsx("span",{className:"pointer-events-none absolute right-3 flex size-4 items-center justify-center",children:jsxRuntimeExports.jsx(SelectItemIndicator,{children:jsxRuntimeExports.jsx(Check,{className:"size-4"})})})]},j.id))}),Y&&jsxRuntimeExports.jsx(SelectScrollDownButton,{className:"flex cursor-default items-center justify-center py-1",children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-4"})})]})})]})]})});ValuePicker.displayName="ValuePicker";var Dialog=Dialog$1,DialogPortal=DialogPortal$1,DialogClose=DialogClose$1,DialogOverlay=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx(DialogOverlay$1,{ref:o,className:cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",n),...e}));DialogOverlay.displayName=DialogOverlay$1.displayName;var DialogContent=reactExports.forwardRef(({className:n,children:e,...o},d)=>jsxRuntimeExports.jsxs(DialogPortal,{children:[jsxRuntimeExports.jsx(DialogOverlay,{}),jsxRuntimeExports.jsx(DialogContent$1,{ref:d,style:{position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},className:cn("z-50 grid w-[calc(100%-2rem)] max-w-2xl gap-4 border bg-background p-4 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 rounded-lg","sm:w-full sm:p-6","max-h-[90vh] overflow-y-auto",n),...o,children:e})]}));DialogContent.displayName=DialogContent$1.displayName;var DialogHeader=({className:n,...e})=>jsxRuntimeExports.jsx("div",{className:cn("flex flex-col space-y-1.5 text-center sm:text-left pl-1",n),...e});DialogHeader.displayName="DialogHeader";var DialogTitle=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx(DialogTitle$1,{ref:o,className:cn("text-lg font-semibold leading-none tracking-tight",n),...e}));DialogTitle.displayName=DialogTitle$1.displayName;var DialogDescription=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx(DialogDescription$1,{ref:o,className:cn("text-sm text-muted-foreground",n),...e}));DialogDescription.displayName=DialogDescription$1.displayName;var DEFAULT_LANGUAGES=[{id:"en-US",name:"English (US)"},{id:"en-GB",name:"English (UK)"},{id:"es-ES",name:"Spanish (Spain)"},{id:"es-MX",name:"Spanish (Mexico)"},{id:"fr-FR",name:"French"},{id:"de-DE",name:"German"},{id:"it-IT",name:"Italian"},{id:"pt-BR",name:"Portuguese (Brazil)"},{id:"ja-JP",name:"Japanese"},{id:"ko-KR",name:"Korean"},{id:"zh-CN",name:"Chinese (Simplified)"},{id:"zh-TW",name:"Chinese (Traditional)"}],AgentSettings=reactExports.forwardRef(({selectedMicId:n,onMicChange:e,enableAivad:o,onEnableAivadChange:d,language:I,onLanguageChange:f,prompt:S,onPromptChange:v,greeting:L,onGreetingChange:x,languages:F=DEFAULT_LANGUAGES,disabled:Y=!1,className:j},W)=>{const{devices:re}=useAudioDevices({enabled:!!e}),ee="system-default",he=[{id:ee,name:"System Default"},...re.map(Ee=>({id:Ee.deviceId,name:Ee.label}))],ue=Ee=>{e==null||e(Ee===ee?"":Ee)};return jsxRuntimeExports.jsxs("div",{ref:W,className:cn("flex flex-col gap-6",j),children:[e&&jsxRuntimeExports.jsx(ValuePicker,{label:"Microphone",items:he,value:n||ee,onValueChange:ue,placeholder:"Select a microphone...",maxHeight:"200px"}),jsxRuntimeExports.jsx(ValuePicker,{label:"Speech Recognition Language",items:F,value:I,onValueChange:f,placeholder:"Select a language...",disabled:Y,maxHeight:"300px"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between bg-input-field-bg border rounded-md p-3 pr-4",children:[jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:"AI Turn Detection"}),jsxRuntimeExports.jsx(Switch,{checked:o,onCheckedChange:d,disabled:Y,style:{width:"44px",height:"24px",padding:"2px"},className:cn("peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors","focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background","disabled:cursor-not-allowed disabled:opacity-50",o?"bg-primary":"bg-input"),children:jsxRuntimeExports.jsx(SwitchThumb,{style:{transform:o?"translateX(20px)":"translateX(0)"},className:cn("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform")})})]}),v&&jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx("label",{htmlFor:"agent-prompt",className:"text-small font-medium",children:"System Prompt"}),jsxRuntimeExports.jsx("textarea",{id:"agent-prompt",value:S||"",onChange:Ee=>v(Ee.target.value),disabled:Y,placeholder:"You are a helpful AI assistant...",rows:6,className:cn("w-full rounded-md border border-input bg-input-field-bg px-3 py-2 text-sm","focus:outline-none focus:ring-2 focus:ring-ring","disabled:cursor-not-allowed disabled:opacity-50","resize-none")})]}),x&&jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx("label",{htmlFor:"agent-greeting",className:"text-small font-medium",children:"Greeting Message"}),jsxRuntimeExports.jsx("input",{id:"agent-greeting",type:"text",value:L||"",onChange:Ee=>x(Ee.target.value),disabled:Y,placeholder:"Hello! How can I help you today?",className:cn("w-full rounded-md border border-input bg-input-field-bg px-3 py-2 text-sm","focus:outline-none focus:ring-2 focus:ring-ring","disabled:cursor-not-allowed disabled:opacity-50")})]})]})});AgentSettings.displayName="AgentSettings";var SettingsDialog=reactExports.forwardRef(({open:n,onOpenChange:e,title:o="Agent Settings",description:d="Configure your agent settings and session preferences.",children:I,...f},S)=>jsxRuntimeExports.jsx(Dialog,{open:n,onOpenChange:e,children:jsxRuntimeExports.jsxs(DialogContent,{ref:S,children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:o}),jsxRuntimeExports.jsx(DialogDescription,{children:d}),jsxRuntimeExports.jsxs(DialogClose,{className:"cursor-pointer absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",children:[jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntimeExports.jsx("path",{d:"M18 6 6 18"}),jsxRuntimeExports.jsx("path",{d:"m6 6 12 12"})]}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]}),jsxRuntimeExports.jsx(AgentSettings,{...f}),I]})}));SettingsDialog.displayName="SettingsDialog";function CopyButton({text:n}){const[e,o]=reactExports.useState(!1),d=reactExports.useRef(null);reactExports.useEffect(()=>()=>{d.current!==null&&clearTimeout(d.current)},[]);const I=()=>{d.current!==null&&clearTimeout(d.current),d.current=setTimeout(()=>{o(!1),d.current=null},2e3)},f=async()=>{try{await navigator.clipboard.writeText(n),o(!0),I()}catch{try{const S=document.createElement("textarea");S.value=n,S.style.position="fixed",S.style.opacity="0",document.body.appendChild(S),S.select(),document.execCommand("copy"),document.body.removeChild(S),o(!0),I()}catch{}}};return jsxRuntimeExports.jsx("button",{type:"button",onClick:f,className:"ml-2 shrink-0 rounded px-2 py-0.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-colors",children:e?"Copied":"Copy"})}var SessionPanel=reactExports.forwardRef(({agentId:n,payload:e,className:o,...d},I)=>{if(!n)return null;const f=e?JSON.stringify(e,null,2):"";return jsxRuntimeExports.jsxs("div",{ref:I,className:cn("space-y-4 border-t pt-4 mt-4",o),...d,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-muted-foreground",children:"Agent ID"}),jsxRuntimeExports.jsx(CopyButton,{text:n})]}),jsxRuntimeExports.jsx("code",{className:"mt-1 block rounded-md bg-muted px-3 py-2 text-xs font-mono break-all",children:n})]}),e&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-muted-foreground",children:"Join Request Body"}),jsxRuntimeExports.jsx(CopyButton,{text:f})]}),jsxRuntimeExports.jsx("pre",{className:"mt-1 max-h-64 overflow-auto rounded-md bg-muted px-3 py-2 text-xs font-mono whitespace-pre-wrap break-all",children:f})]})]})});SessionPanel.displayName="SessionPanel";function MicButtonWithVisualizer({isEnabled:n,setIsEnabled:e,track:o,enabledColor:d="#A0FAFF",disabledColor:I="#DE344A",onToggle:f,className:S="",localMicrophoneTrack:v}){const[L,x]=reactExports.useState(Array(5).fill({height:0})),F=Sn(),Y=reactExports.useRef(n);Y.current=n;const j=reactExports.useRef(null),W=reactExports.useRef(null),re=reactExports.useRef(void 0),ee=o||v;reactExports.useEffect(()=>{const Ee=()=>{if(!W.current)return;const Fe=new Uint8Array(W.current.frequencyBinCount);W.current.getByteFrequencyData(Fe);const Ve=Math.floor(Fe.length/5),Ge=Array(5).fill(0).map((He,At)=>{const Bt=At*Ve,Tt=Bt+Ve,rt=Fe.slice(Bt,Tt),ye=rt.reduce((ct,ht)=>ct+ht,0)/rt.length,lt=Math.min(60,ye/255*100*1.2);return{height:Math.pow(lt/60,.7)*60}});x(Ge),re.current=requestAnimationFrame(Ee)},_e=()=>{re.current&&cancelAnimationFrame(re.current),j.current&&(j.current.close(),j.current=null),x(Array(5).fill({height:0}))};return ee&&n?(async()=>{if(ee)try{j.current=new AudioContext,W.current=j.current.createAnalyser(),W.current.fftSize=64,W.current.smoothingTimeConstant=.5;let Fe;if(ee instanceof MediaStream)Fe=ee;else{const Ge=ee.getMediaStreamTrack();Fe=new MediaStream([Ge])}j.current.createMediaStreamSource(Fe).connect(W.current),Ee()}catch(Fe){debug.error("MicButtonWithVisualizer: failed to setup audio analyser",Fe)}})():_e(),()=>_e()},[ee,n]);const he=async()=>{if(f){await f();return}const Ee=ee&&!(ee instanceof MediaStream)?ee:null;if(Ee){const _e=!n;try{await Ee.setEnabled(_e),_e?await F.publish(Ee):await F.unpublish(Ee),e(_e)}catch(De){debug.error("MicButtonWithVisualizer: failed to toggle microphone",De),Ee.setEnabled(Y.current)}}else e(!n)},ue=n?d:I;return jsxRuntimeExports.jsxs("button",{onClick:he,className:`group relative flex h-16 w-16 items-center justify-center rounded-full border-2 shadow-lg transition-all duration-300 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none ${S}`,style:{borderColor:ue},"aria-label":n?"Mute microphone":"Unmute microphone",children:[jsxRuntimeExports.jsx("div",{className:"absolute inset-0 flex items-center justify-center gap-1",children:L.map((Ee,_e)=>jsxRuntimeExports.jsx("div",{className:"w-1 rounded-full transition-all duration-100 group-hover:bg-black group-active:bg-black",style:{height:`${Ee.height}%`,transform:`scaleY(${Math.max(.1,Ee.height/100)})`,transformOrigin:"center",backgroundColor:ue}},_e))}),jsxRuntimeExports.jsx("div",{className:"relative z-10 transition-colors duration-300",children:n?jsxRuntimeExports.jsx(Mic,{size:24,className:"transition-colors duration-300 group-hover:text-black group-active:text-black",style:{color:d}}):jsxRuntimeExports.jsx(MicOff,{size:24,className:"transition-colors duration-300 group-hover:text-black group-active:text-black",style:{color:I}})})]})}var agoraRtm={exports:{}},AgoraRTC_NProduction={exports:{}},hasRequiredAgoraRTC_NProduction;function requireAgoraRTC_NProduction(){return hasRequiredAgoraRTC_NProduction||(hasRequiredAgoraRTC_NProduction=1,function(n,e){var o={};(function(d,I){n.exports=I()})(commonjsGlobal,function(){function d(t,s){return s.forEach(function(c){c&&typeof c!="string"&&!Array.isArray(c)&&Object.keys(c).forEach(function(u){if(u!=="default"&&!(u in t)){var h=Object.getOwnPropertyDescriptor(c,u);Object.defineProperty(t,u,h.get?h:{enumerable:!0,get:function(){return c[u]}})}})}),Object.freeze(t)}var I=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof commonjsGlobal<"u"?commonjsGlobal:typeof self<"u"?self:{};function f(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var S=function(t){try{return!!t()}catch{return!0}},v=!S(function(){var t=(function(){}).bind();return typeof t!="function"||t.hasOwnProperty("prototype")}),L=v,x=Function.prototype,F=x.call,Y=L&&x.bind.bind(F,F),j=L?Y:function(t){return function(){return F.apply(t,arguments)}},W=j({}.isPrototypeOf),re=function(t){return t&&t.Math===Math&&t},ee=re(typeof globalThis=="object"&&globalThis)||re(typeof window=="object"&&window)||re(typeof self=="object"&&self)||re(typeof I=="object"&&I)||re(typeof I=="object"&&I)||function(){return this}()||Function("return this")(),he=v,ue=Function.prototype,Ee=ue.apply,_e=ue.call,De=typeof Reflect=="object"&&Reflect.apply||(he?_e.bind(Ee):function(){return _e.apply(Ee,arguments)}),Fe=j,Ve=Fe({}.toString),Ge=Fe("".slice),He=function(t){return Ge(Ve(t),8,-1)},At=He,Bt=j,Tt=function(t){if(At(t)==="Function")return Bt(t)},rt=typeof document=="object"&&document.all,ye=rt===void 0&&rt!==void 0?function(t){return typeof t=="function"||t===rt}:function(t){return typeof t=="function"},lt={},Yt=!S(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),ct=v,ht=Function.prototype.call,vt=ct?ht.bind(ht):function(){return ht.apply(ht,arguments)},ar={},jt={}.propertyIsEnumerable,vr=Object.getOwnPropertyDescriptor,ai=vr&&!jt.call({1:2},1);ar.f=ai?function(t){var s=vr(this,t);return!!s&&s.enumerable}:jt;var pi,yi,fi=function(t,s){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:s}},Jn=S,xr=He,pr=Object,ei=j("".split),_i=Jn(function(){return!pr("z").propertyIsEnumerable(0)})?function(t){return xr(t)==="String"?ei(t,""):pr(t)}:pr,Gr=function(t){return t==null},oi=Gr,Oi=TypeError,_o=function(t){if(oi(t))throw new Oi("Can't call method on "+t);return t},$n=_i,gs=_o,Bs=function(t){return $n(gs(t))},Kn=ye,Tn=function(t){return typeof t=="object"?t!==null:Kn(t)},Zn={},hc=Zn,Fs=ee,bt=ye,Es=function(t){return bt(t)?t:void 0},Me=function(t,s){return arguments.length<2?Es(hc[t])||Es(Fs[t]):hc[t]&&hc[t][s]||Fs[t]&&Fs[t][s]},ot=ee.navigator,Ct=ot&&ot.userAgent,Kt=Ct?String(Ct):"",Xr=ee,Lr=Kt,Jr=Xr.process,zr=Xr.Deno,ci=Jr&&Jr.versions||zr&&zr.version,ro=ci&&ci.v8;ro&&(yi=(pi=ro.split("."))[0]>0&&pi[0]<4?1:+(pi[0]+pi[1])),!yi&&Lr&&(!(pi=Lr.match(/Edge\/(\d+)/))||pi[1]>=74)&&(pi=Lr.match(/Chrome\/(\d+)/))&&(yi=+pi[1]);var Ho=yi,Oa=Ho,da=S,ua=ee.String,Ns=!!Object.getOwnPropertySymbols&&!da(function(){var t=Symbol("symbol detection");return!ua(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Oa&&Oa<41}),w1=Ns&&!Symbol.sham&&typeof Symbol.iterator=="symbol",qc=Me,ag=ye,du=W,D1=Object,oA=w1?function(t){return typeof t=="symbol"}:function(t){var s=qc("Symbol");return ag(s)&&du(s.prototype,D1(t))},xA=String,Mo=function(t){try{return xA(t)}catch{return"Object"}},_r=ye,rn=Mo,dn=TypeError,Io=function(t){if(_r(t))return t;throw new dn(rn(t)+" is not a function")},b1=Io,u1=Gr,N1=function(t,s){var c=t[s];return u1(c)?void 0:b1(c)},Ic=vt,Sa=ye,Wc=Tn,Ll=TypeError,mA={exports:{}},hs=ee,O1=Object.defineProperty,gE=ee,EE=function(t,s){try{O1(hs,t,{value:s,configurable:!0,writable:!0})}catch{hs[t]=s}return s},Ag="__core-js_shared__",Ml=mA.exports=gE[Ag]||EE(Ag,{});(Ml.versions||(Ml.versions=[])).push({version:"3.49.0",mode:"pure",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Cd=mA.exports,pd=Cd,uu=function(t,s){return pd[t]||(pd[t]=s||{})},Up=_o,L1=Object,La=function(t){return L1(Up(t))},hI=La,ts=j({}.hasOwnProperty),Xs=Object.hasOwn||function(t,s){return ts(hI(t),s)},xp=j,II=0,hE=Math.random(),fd=xp(1.1.toString),kl=function(t){return"Symbol("+(t===void 0?"":t)+")_"+fd(++II+hE,36)},cg=uu,_d=Xs,lg=kl,FA=Ns,md=w1,Xc=ee.Symbol,IE=cg("wks"),vo=md?Xc.for||Xc:Xc&&Xc.withoutSetter||lg,Po=function(t){return _d(IE,t)||(IE[t]=FA&&_d(Xc,t)?Xc[t]:vo("Symbol."+t)),IE[t]},dg=vt,zh=Tn,$h=oA,Zh=N1,Bd=function(t,s){var c,u;if(Sa(c=t.toString)&&!Wc(u=Ic(c,t))||Sa(c=t.valueOf)&&!Wc(u=Ic(c,t)))return u;throw new Ll("Can't convert object to primitive value")},o0=TypeError,dr=Po("toPrimitive"),Ze=function(t,s){if(!zh(t)||$h(t))return t;var c,u=Zh(t,dr);if(u){if(c=dg(u,t,s),!zh(c)||$h(c))return c;throw new o0("Can't convert object to primitive value")}return Bd(t)},Nt=oA,Rr=function(t){var s=Ze(t,"string");return Nt(s)?s:s+""},ti=Tn,Ui=ee.document,hn=ti(Ui)&&ti(Ui.createElement),Uo=function(t){return hn?Ui.createElement(t):{}},zs=Uo,GA=!Yt&&!S(function(){return Object.defineProperty(zs("div"),"a",{get:function(){return 7}}).a!==7}),M1=Yt,A0=vt,sA=ar,CT=fi,pT=Bs,fT=Rr,_T=Xs,c0=GA,Fp=Object.getOwnPropertyDescriptor;lt.f=M1?Fp:function(t,s){if(t=pT(t),s=fT(s),c0)try{return Fp(t,s)}catch{}if(_T(t,s))return CT(!A0(sA.f,t,s),t[s])};var Be=S,Re=ye,Ke=/#|\.prototype\./,Ye=function(t,s){var c=Mt[gt(t)];return c===cr||c!==Er&&(Re(s)?Be(s):!!s)},gt=Ye.normalize=function(t){return String(t).replace(Ke,".").toLowerCase()},Mt=Ye.data={},Er=Ye.NATIVE="N",cr=Ye.POLYFILL="P",Ei=Ye,Ji=Io,xi=v,qn=Tt(Tt.bind),mn=function(t,s){return Ji(t),s===void 0?t:xi?qn(t,s):function(){return t.apply(s,arguments)}},Gs={},ga=Yt&&S(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),zc=Tn,g1=String,Do=TypeError,Xo=function(t){if(zc(t))return t;throw new Do(g1(t)+" is not an object")},_m=Yt,l0=GA,d0=ga,gu=Xo,u0=Rr,CI=TypeError,mT=Object.defineProperty,BT=Object.getOwnPropertyDescriptor,Gp="enumerable",Vp="configurable",ST="writable";Gs.f=_m?d0?function(t,s,c){if(gu(t),s=u0(s),gu(c),typeof t=="function"&&s==="prototype"&&"value"in c&&ST in c&&!c[ST]){var u=BT(t,s);u&&u[ST]&&(t[s]=c.value,c={configurable:Vp in c?c[Vp]:u[Vp],enumerable:Gp in c?c[Gp]:u[Gp],writable:!1})}return mT(t,s,c)}:mT:function(t,s,c){if(gu(t),s=u0(s),gu(c),l0)try{return mT(t,s,c)}catch{}if("get"in c||"set"in c)throw new CI("Accessors not supported");return"value"in c&&(t[s]=c.value),t};var A8=Gs,g0=fi,Sd=Yt?function(t,s,c){return A8.f(t,s,g0(1,c))}:function(t,s,c){return t[s]=c,t},Kp=ee,u8=De,E8=Tt,h8=ye,I8=lt.f,pI=Ei,fI=Zn,_I=mn,I0=Sd,b9=Xs,wn=function(t){var s=function(c,u,h){if(this instanceof s){switch(arguments.length){case 0:return new t;case 1:return new t(c);case 2:return new t(c,u)}return new t(c,u,h)}return u8(t,this,arguments)};return s.prototype=t.prototype,s},In=function(t,s){var c,u,h,_,B,Q,T,D,O,P=t.target,U=t.global,H=t.stat,$=t.proto,Z=U?Kp:H?Kp[P]:Kp[P]&&Kp[P].prototype,te=U?fI:fI[P]||I0(fI,P,{})[P],se=te.prototype;for(_ in s)u=!(c=pI(U?_:P+(H?".":"#")+_,t.forced))&&Z&&b9(Z,_),Q=te[_],u&&(T=t.dontCallGetSet?(O=I8(Z,_))&&O.value:Z[_]),B=u&&T?T:s[_],(c||$||typeof Q!=typeof B)&&(D=t.bind&&u?_I(B,Kp):t.wrap&&u?wn(B):$&&h8(B)?E8(B):B,(t.sham||B&&B.sham||Q&&Q.sham)&&I0(D,"sham",!0),I0(te,_,D),$&&(b9(fI,h=P+"Prototype")||I0(fI,h,{}),I0(fI[h],_,B),t.real&&se&&(c||!se[_])&&I0(se,_,B)))},C8=Math.ceil,f8=Math.floor,m8=Math.trunc||function(t){var s=+t;return(s>0?f8:C8)(s)},RT=m8,yT=function(t){var s=+t;return s!=s||s===0?0:RT(s)},R8=yT,y8=Math.max,QT=Math.min,TT=function(t,s){var c=R8(t);return c<0?y8(c+s,0):QT(c,s)},Q8=yT,N9=Math.min,O9=function(t){var s=Q8(t);return s>0?N9(s,9007199254740991):0},CE=O9,ug=function(t){return CE(t.length)},T8=Bs,D8=TT,L9=ug,mm=function(t){return function(s,c,u){var h=T8(s),_=L9(h);if(_===0)return!t&&-1;var B,Q=D8(u,_);if(t&&c!=c){for(;_>Q;)if((B=h[Q++])!=B)return!0}else for(;_>Q;Q++)if((t||Q in h)&&h[Q]===c)return t||Q||0;return!t&&-1}},wT={includes:mm(!0),indexOf:mm(!1)},b8=In,O8=wT.includes,Cc=S,k8=Cc(function(){return!Array(1).includes()}),P8=Cc(function(){return[,1].includes(void 0,1)});b8({target:"Array",proto:!0,forced:k8||P8},{includes:function(t){return O8(this,t,arguments.length>1?arguments[1]:void 0)}});var U8=ee,x8=Zn,E1=function(t,s){var c=x8[t+"Prototype"],u=c&&c[s];if(u)return u;var h=U8[t],_=h&&h.prototype;return _&&_[s]},K8=E1("Array","includes"),Y8=Tn,M9=He,vT=Po("match"),DT=function(t){var s;return Y8(t)&&((s=t[vT])!==void 0?!!s:M9(t)==="RegExp")},j8=DT,Bm=TypeError,k9={};k9[Po("toStringTag")]="z";var bT=String(k9)==="[object z]",q8=bT,pE=ye,Sm=He,W8=Po("toStringTag"),k1=Object,z8=Sm(function(){return arguments}())==="Arguments",fE=q8?Sm:function(t){var s,c,u;return t===void 0?"Undefined":t===null?"Null":typeof(c=function(h,_){try{return h[_]}catch{}}(s=k1(t),W8))=="string"?c:z8?Sm(s):(u=Sm(s))==="Object"&&pE(s.callee)?"Arguments":u},Z8=fE,eG=String,h1=function(t){if(Z8(t)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return eG(t)},tG=Po("match"),rG=In,iG=function(t){if(j8(t))throw new Bm("The method doesn't accept regular expressions");return t},P9=_o,U9=h1,nG=function(t){var s=/./;try{"/./"[t](s)}catch{try{return s[tG]=!1,"/./"[t](s)}catch{}}return!1},NT=j("".indexOf);rG({target:"String",proto:!0,forced:!nG("includes")},{includes:function(t){return!!~NT(U9(P9(this)),U9(iG(t)),arguments.length>1?arguments[1]:void 0)}});var OT=E1("String","includes"),x9=W,Rt=K8,oG=OT,LT=Array.prototype,MT=String.prototype,sG=function(t){var s=t.includes;return t===LT||x9(LT,t)&&s===LT.includes?Rt:typeof t=="string"||t===MT||x9(MT,t)&&s===MT.includes?oG:s},Et=f(sG),F9=Io,aG=La,AG=_i,cG=ug,Hp=TypeError,mI="Reduce of empty array with no initial value",lG=function(t){return function(s,c,u,h){var _=aG(s),B=AG(_),Q=cG(_);if(F9(c),Q===0&&u<2)throw new Hp(mI);var T=t?Q-1:0,D=t?-1:1;if(u<2)for(;;){if(T in B){h=B[T],T+=D;break}if(T+=D,t?T<0:Q<=T)throw new Hp(mI)}for(;t?T>=0:Q>T;T+=D)T in B&&(h=c(h,B[T],T,_));return h}},dG={left:lG(!1)},Rm=S,BI=function(t,s){var c=[][t];return!!c&&Rm(function(){c.call(null,s||function(){return 1},1)})},_E=ee,uG=Kt,gG=He,ym=function(t){return uG.slice(0,t.length)===t},kT=ym("Bun/")?"BUN":ym("Cloudflare-Workers")?"CLOUDFLARE":ym("Deno/")?"DENO":ym("Node.js/")?"NODE":_E.Bun&&typeof Bun.version=="string"?"BUN":_E.Deno&&typeof Deno.version=="object"?"DENO":gG(_E.process)==="process"?"NODE":_E.window&&_E.document?"BROWSER":"REST",SI=kT==="NODE",EG=dG.left;In({target:"Array",proto:!0,forced:!SI&&Ho>79&&Ho<83||!BI("reduce")},{reduce:function(t){var s=arguments.length;return EG(this,t,s,s>1?arguments[1]:void 0)}});var G9=E1("Array","reduce"),$c=W,hG=G9,C0=Array.prototype,IG=function(t){var s=t.reduce;return t===C0||$c(C0,t)&&s===C0.reduce?hG:s},V9=IG,VA=f(V9),K9=He,p0=Array.isArray||function(t){return K9(t)==="Array"},CG=In,pG=p0,PT=j([].reverse),H9=[1,2];CG({target:"Array",proto:!0,forced:String(H9)===String(H9.reverse())},{reverse:function(){return pG(this)&&(this.length=this.length),PT(this)}});var Y9=E1("Array","reverse"),j9=W,fG=Y9,Qm=Array.prototype,Tm=function(t){var s=t.reverse;return t===Qm||j9(Qm,t)&&s===Qm.reverse?fG:s},J9=Tm,RI=f(J9),_G=kl,q9=uu("keys"),wm=function(t){return q9[t]||(q9[t]=_G(t))},W9=!S(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),UT=Xs,mG=ye,xT=La,BG=W9,X9=wm("IE_PROTO"),FT=Object,SG=FT.prototype,GT=BG?FT.getPrototypeOf:function(t){var s=xT(t);if(UT(s,X9))return s[X9];var c=s.constructor;return mG(c)&&s instanceof c?c.prototype:s instanceof FT?SG:null},RG=j,yG=Io,QG=Tn,TG=function(t){return QG(t)||t===null},wG=String,vG=TypeError,vm=function(t,s,c){try{return RG(yG(Object.getOwnPropertyDescriptor(t,s)[c]))}catch{}},Dm=Tn,VT=_o,DG=function(t){if(TG(t))return t;throw new vG("Can't set "+wG(t)+" as a prototype")},bG=Object.setPrototypeOf||("__proto__"in{}?function(){var t,s=!1,c={};try{(t=vm(Object.prototype,"__proto__","set"))(c,[]),s=c instanceof Array}catch{}return function(u,h){return VT(u),DG(h),Dm(u)&&(s?t(u,h):u.__proto__=h),u}}():void 0),bm={},Yp={},Nm=Xs,KT=Bs,NG=wT.indexOf,OG=Yp,yI=j([].push),z9=function(t,s){var c,u=KT(t),h=0,_=[];for(c in u)!Nm(OG,c)&&Nm(u,c)&&yI(_,c);for(;s.length>h;)Nm(u,c=s[h++])&&(~NG(_,c)||yI(_,c));return _},HT=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],LG=z9,MG=HT.concat("length","prototype");bm.f=Object.getOwnPropertyNames||function(t){return LG(t,MG)};var jp={};jp.f=Object.getOwnPropertySymbols;var kG=Me,$9=bm,PG=jp,UG=Xo,xG=j([].concat),YT=kG("Reflect","ownKeys")||function(t){var s=$9.f(UG(t)),c=PG.f;return c?xG(s,c(t)):s},Z9=Xs,FG=YT,Om=lt,GG=Gs,jT={},VG=z9,KG=HT,Lm=Object.keys||function(t){return VG(t,KG)},HG=Yt,Mm=ga,eL=Gs,YG=Xo,jG=Bs,tL=Lm;jT.f=HG&&!Mm?Object.defineProperties:function(t,s){YG(t);for(var c,u=jG(s),h=tL(s),_=h.length,B=0;_>B;)eL.f(t,c=h[B++],u[c]);return t};var km,iL=Me("document","documentElement"),JG=Xo,JT=jT,Pm=HT,oL=Yp,qT=iL,sL=Uo,Um="prototype",QI="script",TI=wm("IE_PROTO"),WT=function(){},AL=function(t){return"<"+QI+">"+t+""},XT=function(t){t.write(AL("")),t.close();var s=t.parentWindow.Object;return t=null,s},xm=function(){try{km=new ActiveXObject("htmlfile")}catch{}var t,s,c;xm=typeof document<"u"?document.domain&&km?XT(km):(s=sL("iframe"),c="java"+QI+":",s.style.display="none",qT.appendChild(s),s.src=String(c),(t=s.contentWindow.document).open(),t.write(AL("document.F=Object")),t.close(),t.F):XT(km);for(var u=Pm.length;u--;)delete xm[Um][Pm[u]];return xm()};oL[TI]=!0;var Jp=Object.create||function(t,s){var c;return t!==null?(WT[Um]=JG(t),c=new WT,WT[Um]=null,c[TI]=t):c=xm(),s===void 0?c:JT.f(c,s)},lL=Tn,qG=Sd,gL=Error,WG=j("".replace),XG=String(new gL("zxcasd").stack),EL=/\n\s*at [^:]*:[^\n]*/,zG=EL.test(XG),IL=fi,wI=!S(function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",IL(1,7)),t.stack!==7)}),$G=Sd,ZG=function(t,s){if(zG&&typeof t=="string"&&!gL.prepareStackTrace)for(;s--;)t=WG(t,EL,"");return t},eV=wI,zT=Error.captureStackTrace,vI={},CL=vI,tV=Po("iterator"),rV=Array.prototype,fL=function(t){return t!==void 0&&(CL.Array===t||rV[tV]===t)},Fm=fE,mL=N1,iV=Gr,nV=vI,oV=Po("iterator"),qp=function(t){if(!iV(t))return mL(t,oV)||mL(t,"@@iterator")||nV[Fm(t)]},sV=vt,$T=Io,aV=Xo,BL=Mo,AV=qp,RL=TypeError,ZT=function(t,s){var c=arguments.length<2?AV(t):s;if($T(c))return aV(sV(c,t));throw new RL(BL(t)+" is not iterable")},cV=vt,yL=Xo,lV=N1,ew=function(t,s,c){var u,h;yL(t);try{if(!(u=lV(t,"return"))){if(s==="throw")throw c;return c}u=cV(u,t)}catch(_){h=!0,u=_}if(s==="throw")throw c;if(h)throw u;return yL(u),c},dV=mn,QL=vt,uV=Xo,gV=Mo,wL=fL,EV=ug,Wp=W,vL=ZT,Xp=qp,DL=ew,hV=TypeError,Gm=function(t,s){this.stopped=t,this.result=s},bL=Gm.prototype,mE=function(t,s,c){var u,h,_,B,Q,T,D,O=c&&c.that,P=!(!c||!c.AS_ENTRIES),U=!(!c||!c.IS_RECORD),H=!(!c||!c.IS_ITERATOR),$=!(!c||!c.INTERRUPTED),Z=dV(s,O),te=function(me){var Qe=u;return u=void 0,Qe&&DL(Qe,"normal"),new Gm(!0,me)},se=function(me){return P?(uV(me),$?Z(me[0],me[1],te):Z(me[0],me[1])):$?Z(me,te):Z(me)};if(U)u=t.iterator;else if(H)u=t;else{if(!(h=Xp(t)))throw new hV(gV(t)+" is not iterable");if(wL(h)){for(_=0,B=EV(t);B>_;_++)if((Q=se(t[_]))&&Wp(bL,Q))return Q;return new Gm(!1)}u=vL(t,h)}for(T=U?t.next:u.next;!(D=QL(T,u)).done;){var ge=D.value;try{Q=se(ge)}catch(me){if(!u)throw me;DL(u,"throw",me)}if(typeof Q=="object"&&Q&&Wp(bL,Q))return Q}return new Gm(!1)},IV=h1,NL=In,tw=W,rw=GT,Vm=bG,CV=function(t,s,c){for(var u=FG(s),h=GG.f,_=Om.f,B=0;B2&&Km(c,arguments[2]);var h=[];return DI(t,Ym,{that:h}),iw(c,"errors",h),c};Vm?Vm(bI,BE):CV(bI,BE,{name:!0});var jm=bI.prototype=OL(BE.prototype,{constructor:nw(1,bI),message:nw(1,""),name:nw(1,"AggregateError")});NL({global:!0},{AggregateError:bI});var Jm,NI,qm,fV=ye,Wm=ee.WeakMap,sw=fV(Wm)&&/native code/.test(String(Wm)),LL=ee,_V=Tn,ML=Sd,zp=Xs,aw=Cd,Eu=wm,OI=Yp,SE="Object already initialized",Xm=LL.TypeError,kL=LL.WeakMap;if(sw||aw.state){var I1=aw.state||(aw.state=new kL);I1.get=I1.get,I1.has=I1.has,I1.set=I1.set,Jm=function(t,s){if(I1.has(t))throw new Xm(SE);return s.facade=t,I1.set(t,s),s},NI=function(t){return I1.get(t)||{}},qm=function(t){return I1.has(t)}}else{var RE=Eu("state");OI[RE]=!0,Jm=function(t,s){if(zp(t,RE))throw new Xm(SE);return s.facade=t,ML(t,RE,s),s},NI=function(t){return zp(t,RE)?t[RE]:{}},qm=function(t){return zp(t,RE)}}var f0,Aw,PL,gg={set:Jm,get:NI,has:qm,enforce:function(t){return qm(t)?NI(t):Jm(t,{})},getterFor:function(t){return function(s){var c;if(!_V(s)||(c=NI(s)).type!==t)throw new Xm("Incompatible receiver, "+t+" required");return c}}},zm=Yt,mV=Xs,Eg=Function.prototype,BV=zm&&Object.getOwnPropertyDescriptor,UL=mV(Eg,"name"),xL={PROPER:UL&&(function(){}).name==="something",CONFIGURABLE:UL&&(!zm||zm&&BV(Eg,"name").configurable)},SV=Sd,hg=function(t,s,c,u){return u&&u.enumerable?t[s]=c:SV(t,s,c),t},RV=S,cw=ye,FL=Tn,yV=Jp,lw=GT,QV=hg,dw=Po("iterator"),GL=!1;[].keys&&("next"in(PL=[].keys())?(Aw=lw(lw(PL)))!==Object.prototype&&(f0=Aw):GL=!0);var TV=!FL(f0)||RV(function(){var t={};return f0[dw].call(t)!==t});cw((f0=TV?{}:yV(f0))[dw])||QV(f0,dw,function(){return this});var VL={IteratorPrototype:f0,BUGGY_SAFARI_ITERATORS:GL},wV=fE,vV=bT?{}.toString:function(){return"[object "+wV(this)+"]"},KL=bT,Ig=Gs.f,DV=Sd,bV=Xs,NV=vV,HL=Po("toStringTag"),Cg=function(t,s,c,u){var h=c?t:t&&t.prototype;h&&(bV(h,HL)||Ig(h,HL,{configurable:!0,value:s}),u&&!KL&&DV(h,"toString",NV))},OV=VL.IteratorPrototype,uw=Jp,LV=fi,MV=Cg,kV=vI,PV=function(){return this},gw=function(t,s,c,u){var h=s+" Iterator";return t.prototype=uw(OV,{next:LV(+!u,c)}),MV(t,h,!1,!0),kV[h]=PV,t},UV=In,YL=vt,jL=xL,xV=gw,FV=GT,$m=Cg,Zm=hg,Ew=vI,eB=VL,JL=jL.PROPER,tB=eB.BUGGY_SAFARI_ITERATORS,rB=Po("iterator"),$p="keys",iB="values",hw="entries",qL=function(){return this},WL=function(t,s,c,u,h,_,B){xV(c,s,u);var Q,T,D,O=function(se){if(se===h&&Z)return Z;if(!tB&&se&&se in H)return H[se];switch(se){case $p:case iB:case hw:return function(){return new c(this,se)}}return function(){return new c(this)}},P=s+" Iterator",U=!1,H=t.prototype,$=H[rB]||H["@@iterator"]||h&&H[h],Z=!tB&&$||O(h),te=s==="Array"&&H.entries||$;if(te&&(Q=FV(te.call(new t)))!==Object.prototype&&Q.next&&($m(Q,P,!0,!0),Ew[P]=qL),JL&&h===iB&&$&&$.name!==iB&&(U=!0,Z=function(){return YL($,this)}),h)if(T={values:O(iB),keys:_?Z:O($p),entries:O(hw)},B)for(D in T)(tB||U||!(D in H))&&Zm(H,D,T[D]);else UV({target:s,proto:!0,forced:tB||U},T);return B&&H[rB]!==Z&&Zm(H,rB,Z,{}),Ew[s]=Z,T},_0=function(t,s){return{value:t,done:s}},XL=Bs,zL=vI,$L=gg;Gs.f;var GV=WL,m0=_0,ZL="Array Iterator",VV=$L.set,KV=$L.getterFor(ZL);GV(Array,"Array",function(t,s){VV(this,{type:ZL,target:XL(t),index:0,kind:s})},function(){var t=KV(this),s=t.target,c=t.index++;if(!s||c>=s.length)return t.target=null,m0(void 0,!0);switch(t.kind){case"keys":return m0(c,!1);case"values":return m0(s[c],!1)}return m0([c,s[c]],!1)},"values"),zL.Arguments=zL.Array;var eM=Gs,nB=function(t,s,c){return eM.f(t,s,c)},HV=Me,Iw=nB,YV=Yt,oB=Po("species"),jV=W,tM=TypeError,Cw=function(t,s){if(jV(s,t))return t;throw new tM("Incorrect invocation")},JV=ye,sB=Cd,qV=j(Function.toString);JV(sB.inspectSource)||(sB.inspectSource=function(t){return qV(t)});var rM=sB.inspectSource,iM=j,nM=S,aB=ye,WV=fE,XV=rM,LI=function(){},pw=Me("Reflect","construct"),B0=/^\s*(?:class|function)\b/,MI=iM(B0.exec),oM=!B0.test(LI),S0=function(t){if(!aB(t))return!1;try{return pw(LI,[],t),!0}catch{return!1}},Zp=function(t){if(!aB(t))return!1;switch(WV(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return oM||!!MI(B0,XV(t))}catch{return!0}};Zp.sham=!0;var r3,kI,sM,AB,cB=!pw||nM(function(){var t;return S0(S0.call)||!S0(Object)||!S0(function(){t=!0})||t})?Zp:S0,zV=cB,$V=Mo,fw=TypeError,pg=Xo,ZV=function(t){if(zV(t))return t;throw new fw($V(t)+" is not a constructor")},R0=Gr,aM=Po("species"),P1=function(t,s){var c,u=pg(t).constructor;return u===void 0||R0(c=pg(u)[aM])?s:ZV(c)},yE=j([].slice),eK=TypeError,QE=function(t,s){if(t1?XK(arguments,1):[],c=zK.f(this),u=VM(function(){return GM(tv(t),void 0,s)});return(u.error?c.reject:c.resolve)(u.value),c.promise}});var $K=Rd;In({target:"Promise",stat:!0},{withResolvers:function(){var t=$K.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var HM=In,iv=Q0,nv=S,ZK=Me,eH=ye,tH=P1,YM=xM,jM=iv&&iv.prototype;HM({target:"Promise",proto:!0,real:!0,forced:!!iv&&nv(function(){jM.finally.call({then:function(){}},function(){})})},{finally:function(t){var s=tH(this,ZK("Promise")),c=eH(t);return this.then(c?function(u){return YM(s,t()).then(function(){return u})}:t,c?function(u){return YM(s,t()).then(function(){throw u})}:t)}});var ov=j,JM=yT,sv=h1,rH=_o,iH=ov("".charAt),av=ov("".charCodeAt),nH=ov("".slice),Av=function(t){return function(s,c){var u,h,_=sv(rH(s)),B=JM(c),Q=_.length;return B<0||B>=Q?t?"":void 0:(u=av(_,B))<55296||u>56319||B+1===Q||(h=av(_,B+1))<56320||h>57343?t?iH(_,B):u:t?nH(_,B,B+2):h-56320+(u-55296<<10)+65536}},bB={codeAt:Av(!1),charAt:Av(!0)},oH=bB.charAt,sH=h1,qM=gg,aH=WL,WM=_0,XM="String Iterator",zM=qM.set,cv=qM.getterFor(XM);aH(String,"String",function(t){zM(this,{type:XM,string:sH(t),index:0})},function(){var t,s=cv(this),c=s.string,u=s.index;return u>=c.length?WM(void 0,!0):(t=oH(c,u),s.index+=t.length,WM(t,!1))});var $M=Zn.Promise,Ft={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},AH=ee,cH=Cg,ZM=vI;for(var lv in Ft)cH(AH[lv],lv),ZM[lv]=ZM.Array;var e6=$M,Ut=f(e6),lH=E1("Array","values"),dH=fE,U1=Xs,t6=W,uH=lH,NB=Array.prototype,gH={DOMTokenList:!0,NodeList:!0},dv=function(t){var s=t.values;return t===NB||t6(NB,t)&&s===NB.values||U1(gH,dH(t))?uH:s},BA=f(dv),uv=Mo,EH=TypeError,r6=yE,i6=Math.floor,gv=function(t,s){var c=t.length;if(c<8)for(var u,h,_=1;_0;)t[h]=t[--h];h!==_++&&(t[h]=u)}else for(var B=i6(c/2),Q=gv(r6(t,0,B),s),T=gv(r6(t,B),s),D=Q.length,O=T.length,P=0,U=0;P3)){if(mH)return!0;if(c6)return c6<603;var t,s,c,u,h="";for(t=65;t<76;t++){switch(s=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:c=3;break;case 68:case 71:c=4;break;default:c=2}for(u=0;u<47;u++)_g.push({k:s+u,v:c})}for(_g.sort(function(_,B){return B.v-_.v}),u=0;u<_g.length;u++)s=_g[u].k.charAt(0),h.charAt(h.length-1)!==s&&(h+=s);return h!=="DGBEFHACIJK"}});o6({target:"Array",proto:!0,forced:SH||!pv||!RH||!LE},{sort:function(t){t!==void 0&&pH(t);var s=fH(this);if(LE)return t===void 0?l6(s):l6(s,t);var c,u,h=[],_=Iv(s);for(u=0;u<_;u++)u in s&&BH(h,s[u]);for(OE(h,function(B){return function(Q,T){if(T===void 0)return-1;if(Q===void 0)return 1;if(B!==void 0)return+B(Q,T)||0;var D=Cv(Q),O=Cv(T);return D===O?0:D>O?1:-1}}(t)),c=Iv(h),u=0;uh;){if(DH(s=+arguments[h],1114111)!==s)throw new MB(s+" is not a valid code point");c[h++]=s<65536?u6(s):u6(55296+((s-=65536)>>10),s%1024+56320)}return g6(c,"")}});var _v=S,bH=Po("iterator"),b0=!_v(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),s=t.searchParams,c=new URLSearchParams("a=1&a=2&b=3"),u="";return t.pathname="c%20d",s.forEach(function(h,_){s.delete("b"),u+=_+h}),c.delete("a",2),c.delete("b",void 0),!t.toJSON||!c.has("a",1)||c.has("a",2)||!c.has("a",void 0)||c.has("b")||!s.size&&!0||!s.sort||t.href!=="https://a/c%20d?a=1&c=3"||s.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!s[bH]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://тест").host!=="xn--e1aybc"||new URL("https://a#б").hash!=="#%D0%B1"||u!=="a1c3"||new URL("https://x",void 0).host!=="x"}),yd=hg,N0=In,mv=ee,PB=Nw,NH=Me,UB=vt,Qd=j,d3=Yt,xB=b0,Bv=hg,Sv=nB,OH=function(t,s,c){for(var u in s)c&&c.unsafe&&t[u]?t[u]=s[u]:yd(t,u,s[u],c);return t},LH=Cg,MH=gw,Rv=gg,yv=Cw,KA=ye,kH=Xs,E6=mn,h6=fE,PH=Xo,u3=Tn,za=h1,UH=Jp,I6=fi,O0=ZT,C6=qp,g3=_0,HA=QE,xH=n6,p6=Po("iterator"),mg="URLSearchParams",YI=mg+"Iterator",FB=Rv.set,Zc=Rv.getterFor(mg),FH=Rv.getterFor(YI),f6=PB("fetch"),GB=PB("Request"),E3=PB("Headers"),Qv=GB&&GB.prototype,h3=E3&&E3.prototype,_6=mv.TypeError,ME=mv.encodeURIComponent,m6=String.fromCharCode,GH=NH("String","fromCodePoint"),B6=parseInt,I3=Qd("".charAt),Tv=Qd([].join),kE=Qd([].push),S6=Qd("".replace),VH=Qd([].shift),wv=Qd([].splice),R6=Qd("".split),y6=Qd("".slice),T6=Qd(/./.exec),KH=/\+/g,HH=/^[0-9a-f]+$/i,w6=function(t,s){var c=y6(t,s,s+2);return T6(HH,c)?B6(c,16):NaN},v6=function(t){for(var s=0,c=128;c>0&&t&c;c>>=1)s++;return s},vv=function(t){var s=null,c=t.length;switch(c){case 1:s=t[0];break;case 2:s=(31&t[0])<<6|63&t[1];break;case 3:s=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:s=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return s===null||s>1114111||s>=55296&&s<=57343||s<(c>3?65536:c>2?2048:c>1?128:0)?null:s},Dv=function(t){for(var s=(t=S6(t,KH," ")).length,c="",u=0;us){c+="%",u++;continue}var _=w6(t,u+1);if(_!=_){c+=h,u++;continue}u+=2;var B=v6(_);if(B===0)h=m6(_);else{if(B===1||B>4){c+="�",u++;continue}for(var Q=[_],T=1;Ts||I3(t,u)!=="%");){var D=w6(t,u+1);if(D!=D||D>191||D<128||T===1&&(_===224&&D<160||_===237&&D>159||_===240&&D<144||_===244&&D>143))break;kE(Q,D),u+=2,T++}if(Q.length!==B){c+="�";continue}var O=vv(Q);if(O===null){for(var P=0;P=s.length)return t.target=null,g3(void 0,!0);var u=s[c];switch(t.kind){case"keys":return g3(u.key,!1);case"values":return g3(u.value,!1)}return g3([u.key,u.value],!1)},!0),HB=function(t){this.entries=[],this.url=null,t!==void 0&&(u3(t)?this.parseObject(t):this.parseQuery(typeof t=="string"?I3(t,0)==="?"?y6(t,1):t:za(t)))};HB.prototype={type:mg,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var s,c,u,h,_,B,Q,T=this.entries,D=C6(t);if(D)for(c=(s=O0(t,D)).next;!(u=UB(c,s)).done;){if(_=(h=O0(PH(u.value))).next,(B=UB(_,h)).done||(Q=UB(_,h)).done||!UB(_,h).done)throw new _6("Expected sequence with length 2");kE(T,{key:za(B.value),value:za(Q.value)})}else for(var O in t)kH(t,O)&&kE(T,{key:O,value:za(t[O])})},parseQuery:function(t){if(t)for(var s,c,u=this.entries,h=R6(t,"&"),_=0;_0?arguments[0]:void 0));d3||(this.size=t.entries.length)},JI=F1.prototype;if(OH(JI,{append:function(t,s){var c=Zc(this);HA(arguments.length,2),kE(c.entries,{key:za(t),value:za(s)}),d3||this.size++,c.updateURL()},delete:function(t){for(var s=Zc(this),c=HA(arguments.length,1),u=s.entries,h=za(t),_=c<2?void 0:arguments[1],B=_===void 0?_:za(_),Q=0;Qc.key?1:-1}),t.updateURL()},forEach:function(t){for(var s,c=Zc(this).entries,u=E6(t,arguments.length>1?arguments[1]:void 0),h=0;h1?N6(arguments[1]):{})}}),KA(GB)){var bv=function(t){return yv(this,Qv),new GB(t,arguments.length>1?N6(arguments[1]):{})};Qv.constructor=bv,bv.prototype=Qv,N0({global:!0,dontCallGetSet:!0,forced:!0},{Request:bv})}}var Ul,Nv={URLSearchParams:F1,getState:Zc},JH=Zn.URLSearchParams,O6=Yt,qH=j,WH=vt,qI=S,YB=Lm,XH=jp,zH=ar,$H=La,ZH=_i,WI=Object.assign,L6=Object.defineProperty,eY=qH([].concat),Ov=!WI||qI(function(){if(O6&&WI({b:1},WI(L6({},"a",{enumerable:!0,get:function(){L6(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var t={},s={},c=Symbol("assign detection"),u="abcdefghijklmnopqrst";return t[c]=7,u.split("").forEach(function(h){s[h]=h}),WI({},t)[c]!==7||YB(WI({},s)).join("")!==u})?function(t,s){for(var c=$H(t),u=arguments.length,h=1,_=XH.f,B=zH.f;u>h;)for(var Q,T=ZH(arguments[h++]),D=_?eY(YB(T),_(T)):YB(T),O=D.length,P=0;O>P;)Q=D[P++],O6&&!WH(B,T,Q)||(c[Q]=T[Q]);return c}:WI,rY=Xo,iY=ew,nY=Yt,oY=Gs,sY=fi,jB=function(t,s,c){nY?oY.f(t,s,sY(0,c)):t[s]=c},AY=Yt,M6=p0,lY=TypeError,dY=Object.getOwnPropertyDescriptor,C3=AY&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}()?function(t,s){if(M6(t)&&!dY(t,"length").writable)throw new lY("Cannot set read only .length");return t.length=s}:function(t,s){return t.length=s},L0=mn,Lv=vt,gY=La,k6=function(t,s,c,u){try{return u?s(rY(c)[0],c[1]):s(c)}catch(h){iY(t,"throw",h)}},P6=fL,U6=cB,EY=ug,M0=jB,Mv=C3,x6=ZT,F6=qp,PE=ew,G6=Array,V6=function(t){var s=U6(this),c=arguments.length,u=c>1?arguments[1]:void 0,h=u!==void 0;h&&(u=L0(u,c>2?arguments[2]:void 0));var _,B,Q,T,D,O,P=gY(t),U=F6(P),H=0;if(!U||this===G6&&P6(U))for(_=EY(P),B=s?new this(_):G6(_);_>H;H++)O=h?u(P[H],H):P[H],M0(B,H,O);else for(B=s?new this:[],D=(T=x6(P,U)).next;!(Q=Lv(D,T)).done;H++){O=h?k6(T,u,[Q.value,H],!0):Q.value;try{M0(B,H,O)}catch($){PE(T,"throw",$)}}return Mv(B,H),B},k0=j,JB=2147483647,hY=/[^\0-\u007E]/,K6=/[.\u3002\uFF0E\uFF61]/g,H6="Overflow: input needs wider integers to process",qB=RangeError,IY=k0(K6.exec),UE=Math.floor,WB=String.fromCharCode,el=k0("".charCodeAt),p3=k0([].join),aA=k0([].push),CY=k0("".replace),kv=k0("".split),Pv=k0("".toLowerCase),P0=function(t){return t+22+75*(t<26)},Td=function(t,s,c){var u=0;for(t=c?UE(t/700):t>>1,t+=UE(t/s);t>455;)t=UE(t/35),u+=36;return UE(u+36*t/(t+38))},pY=function(t){var s=[];t=function(se){for(var ge=[],me=0,Qe=se.length;me=55296&&Oe<=56319&&me=_&&uUE((JB-B)/P))throw new qB(H6);for(B+=(O-_)*P,_=O,c=0;cJB)throw new qB(H6);if(u===_){for(var U=B,H=36;;){var $=H<=Q?1:H>=Q+26?26:H-Q;if(U<$)break;var Z=U-$,te=36-$;aA(s,WB(P0($+Z%te))),U=UE(Z/te),H+=36}aA(s,WB(P0(U))),Q=Td(B,P,D===T),B=0,D++}}B++,_++}return p3(s,"")},_Y=In,wd=Yt,mY=b0,XB=ee,Uv=mn,tl=j,zB=hg,G1=nB,BY=Cw,$B=Xs,Bg=Ov,xE=V6,fc=yE,RY=bB.codeAt,Y6=function(t){var s,c,u=[],h=kv(CY(Pv(t),K6,"."),".");for(s=0;s?@[\\\]^|]/,X6=/[\0\t\n\r #/:<>?@[\\\]^|]/,jv=/^[\u0000-\u0020]+/,z6=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ek=/[\t\n\r]/g,F0=function(t){var s,c,u,h;if(typeof t=="number"){for(s=[],c=0;c<4;c++)NY(s,t%256),t=_3(t/256);return U0(s,".")}if(typeof t=="object"){for(s="",u=function(_){for(var B=null,Q=1,T=null,D=0,O=0;O<8;O++)_[O]!==0?(D>Q&&(B=T,Q=D),T=null,D=0):(T===null&&(T=O),++D);return D>Q?T:B}(t),c=0;c<8;c++)h&&t[c]===0||(h&&(h=!1),u===c?(s+=c?":":"::",h=!0):(s+=vY(t[c],16),c<7&&(s+=":")));return"["+s+"]"}return t},S3={},Jv=Bg({},S3,{" ":1,'"':1,"#":1,"<":1,">":1}),tS=Bg({},Jv,{"'":1}),R3=Bg({},S3,{" ":1,'"':1,"<":1,">":1,"`":1}),rS=Bg({},R3,{"#":1,"?":1,"{":1,"}":1,"^":1}),y3=Bg({},rS,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),pu=function(t,s){var c=RY(t,0);return c>=32&&c<127&&!$B(s,t)?t:t==="'"&&$B(s,t)?"%27":wY(t)},rC={ftp:21,file:null,http:80,https:443,ws:80,wss:443},iC=function(t,s){var c;return t.length===2&&_c(Gv,xl(t,0))&&((c=xl(t,1))===":"||!s&&c==="|")},iS=function(t){var s;return t.length>1&&iC(tC(t,0,2))&&(t.length===2||(s=xl(t,2))==="/"||s==="\\"||s==="?"||s==="#")},nC=function(t){return t==="."||eS(t)==="%2e"},Fl={},qv={},Rg={},fu={},nS={},FE={},C1={},rl={},T3={},w3={},Wv={},oS={},Xv={},AS={},tk={},v3={},oC={},_u={},rk={},G0={},mu={},zv=function(t,s,c){var u,h,_,B=$a(t);if(s){if(h=this.parse(B))throw new $I(h);this.searchParams=null}else{if(c!==void 0&&(u=new zv(c,!0)),h=this.parse(B,null,u))throw new $I(h);(_=QY(new yY)).bindURL(this),this.searchParams=_}};zv.prototype={type:"URL",parse:function(t,s,c){var u,h,_,B,Q,T=this,D=s||Fl,O=0,P="",U=!1,H=!1,$=!1;for(t=$a(t),s||(T.scheme="",T.username="",T.password="",T.host=null,T.port=null,T.path=[],T.query=null,T.fragment=null,T.cannotBeABaseURL=!1,t=ZB(t,jv,""),t=ZB(t,z6,"$1")),t=ZB(t,ek,""),u=xE(t);O<=u.length;){switch(h=u[O],D){case Fl:if(!h||!_c(Gv,h)){if(s)return x0;D=Rg;continue}P+=eS(h),D=qv;break;case qv:if(h&&_c(Vv,h))P+=eS(h);else{if(h!==":"){if(s)return x0;P="",D=Rg,O=0;continue}if(s&&(T.isSpecial()!==$B(rC,P)||P==="file"&&(T.includesCredentials()||T.port!==null)||T.scheme==="file"&&T.host===""))return;if(T.scheme=P,s)return void(T.isSpecial()&&rC[T.scheme]===T.port&&(T.port=null));P="",T.scheme==="file"?D=AS:T.isSpecial()&&c&&c.scheme===T.scheme?D=fu:T.isSpecial()?D=rl:u[O+1]==="/"?(D=nS,O++):(T.cannotBeABaseURL=!0,eC(T.path,""),D=rk)}break;case Rg:if(!c||c.cannotBeABaseURL&&h!=="#")return x0;if(c.cannotBeABaseURL&&h==="#"){T.scheme=c.scheme,T.path=fc(c.path),T.query=c.query,T.fragment="",T.cannotBeABaseURL=!0,D=mu;break}D=c.scheme==="file"?AS:FE;continue;case fu:if(h!=="/"||u[O+1]!=="/"){D=FE;continue}D=T3,O++;break;case nS:if(h==="/"){D=w3;break}D=_u;continue;case FE:if(T.scheme=c.scheme,h===Ul)T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.query=c.query;else if(h==="/"||h==="\\"&&T.isSpecial())D=C1;else if(h==="?")T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.query="",D=G0;else{if(h!=="#"){T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.path.length&&T.path.length--,D=_u;continue}T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.query=c.query,T.fragment="",D=mu}break;case C1:if(!T.isSpecial()||h!=="/"&&h!=="\\"){if(h!=="/"){T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,D=_u;continue}D=w3}else D=T3;break;case rl:if(D=T3,h!=="/"||u[O+1]!=="/")continue;O++;break;case T3:if(h!=="/"&&h!=="\\"){D=w3;continue}break;case w3:if(h==="@"){U&&(P="%40"+P),U=!0,_=xE(P);for(var Z=0;Z<_.length;Z++){var te=_[Z];if(te!==":"||$){var se=pu(te,y3);$?T.password+=se:T.username+=se}else $=!0}P=""}else if(h===Ul||h==="/"||h==="?"||h==="#"||h==="\\"&&T.isSpecial()){if(U&&P==="")return"Invalid authority";O-=xE(P).length+1,P="",D=Wv}else P+=h;break;case Wv:case oS:if(s&&T.scheme==="file"){D=v3;continue}if(h!==":"||H){if(h===Ul||h==="/"||h==="?"||h==="#"||h==="\\"&&T.isSpecial()){if(T.isSpecial()&&P==="")return Iu;if(s&&P===""&&(T.includesCredentials()||T.port!==null))return;if(B=T.parseHost(P))return B;if(P="",D=oC,s)return;continue}h==="["?H=!0:h==="]"&&(H=!1),P+=h}else{if(P==="")return Iu;if(s===oS)return;if(B=T.parseHost(P))return B;P="",D=Xv}break;case Xv:if(!_c(Cu,h)){if(h===Ul||h==="/"||h==="?"||h==="#"||h==="\\"&&T.isSpecial()||s){if(P!==""){var ge=ZI(P,10);if(ge>65535)return Fv;T.port=T.isSpecial()&&ge===rC[T.scheme]?null:ge,P=""}if(s)return;D=oC;continue}return Fv}P+=h;break;case AS:if(T.scheme="file",T.host="",h==="/"||h==="\\")D=tk;else{if(!c||c.scheme!=="file"){D=_u;continue}switch(h){case Ul:T.host=c.host,T.path=fc(c.path),T.query=c.query;break;case"?":T.host=c.host,T.path=fc(c.path),T.query="",D=G0;break;case"#":T.host=c.host,T.path=fc(c.path),T.query=c.query,T.fragment="",D=mu;break;default:T.host=c.host,iS(U0(fc(u,O),""))||(T.path=fc(c.path),T.shortenPath()),D=_u;continue}}break;case tk:if(h==="/"||h==="\\"){D=v3;break}c&&c.scheme==="file"&&(T.host=c.host,!iS(U0(fc(u,O),""))&&iC(c.path[0],!0)&&eC(T.path,c.path[0])),D=_u;continue;case v3:if(h===Ul||h==="/"||h==="\\"||h==="?"||h==="#"){if(!s&&iC(P))D=_u;else if(P===""){if(T.host="",s)return;D=oC}else{if(B=T.parseHost(P))return B;if(T.host==="localhost"&&(T.host=""),s)return;P="",D=oC}continue}P+=h;break;case oC:if(T.isSpecial()){if(D=_u,h!=="/"&&h!=="\\")continue}else if(s||h!=="?")if(s||h!=="#"){if(h!==Ul&&(D=_u,h!=="/"))continue}else T.fragment="",D=mu;else T.query="",D=G0;break;case _u:if(h===Ul||h==="/"||h==="\\"&&T.isSpecial()||!s&&(h==="?"||h==="#")){if((Q=eS(Q=P))===".."||Q==="%2e."||Q===".%2e"||Q==="%2e%2e"?(T.shortenPath(),h==="/"||h==="\\"&&T.isSpecial()||eC(T.path,"")):nC(P)?h==="/"||h==="\\"&&T.isSpecial()||eC(T.path,""):(T.scheme==="file"&&!T.path.length&&iC(P)&&(T.host!==null&&T.host!==""&&(T.host=""),P=xl(P,0)+":"),eC(T.path,P)),P="",T.scheme==="file"&&(h===Ul||h==="?"||h==="#"))for(;T.path.length>1&&T.path[0]==="";)bY(T.path);h==="?"?(T.query="",D=G0):h==="#"&&(T.fragment="",D=mu)}else P+=pu(h,rS);break;case rk:h==="?"?(T.query="",D=G0):h==="#"?(T.fragment="",D=mu):h!==Ul&&(T.path[0]+=pu(h,S3));break;case G0:s||h!=="#"?h!==Ul&&(T.query+=pu(h,T.isSpecial()?tS:Jv)):(T.fragment="",D=mu);break;case mu:h!==Ul&&(T.fragment+=pu(h,R3))}O++}},parseHost:function(t){var s,c,u;if(xl(t,0)==="["){if(xl(t,t.length-1)!=="]"||(s=function(h){var _,B,Q,T,D,O,P,U=[0,0,0,0,0,0,0,0],H=0,$=null,Z=0,te=function(){return xl(h,Z)};if(te()===":"){if(xl(h,1)!==":")return;Z+=2,$=++H}for(;te();){if(H===8)return;if(te()!==":"){for(_=B=0;B<4&&_c(Hv,te());)_=16*_+ZI(te(),16),Z++,B++;if(te()==="."){if(B===0||(Z-=B,H>6))return;for(Q=0;te();){if(T=null,Q>0){if(!(te()==="."&&Q<4))return;Z++}if(!_c(Cu,te()))return;for(;_c(Cu,te());){if(D=ZI(te(),10),T===null)T=D;else{if(T===0)return;T=10*T+D}if(T>255)return;Z++}U[H]=256*U[H]+T,++Q!=2&&Q!==4||H++}if(Q!==4)return;break}if(te()===":"){if(Z++,!te())return}else if(te())return;U[H++]=_}else{if($!==null)return;Z++,$=++H}}if($!==null)for(O=H-$,H=7;H!==0&&O>0;)P=U[H],U[H--]=U[$+O-1],U[$+--O]=P;else if(H!==8)return;return U}(tC(t,1,-1)),!s))return Iu;this.host=s}else if(this.isSpecial()){if(t=Y6(t),_c(Yv,t))return Iu;if(function(h){var _,B,Q=W6(h,".");if(Q[Q.length-1]===""){if(Q.length===1)return!1;Q.length--}return _=Q[Q.length-1],!!_c(Kv,_)||!!_c(m3,_)&&((B=tC(_,2))===""||!!_c(Hv,B))}(t)){if(s=function(h){var _,B,Q,T,D,O,P,U=W6(h,".");if(U.length&&U[U.length-1]===""&&U.length--,(_=U.length)>4)return null;for(B=[],Q=0;Q<_;Q++){if((T=U[Q])==="")return null;if(D=10,T.length>1&&xl(T,0)==="0"&&(D=_c(m3,T)?16:8,T=tC(T,D===8?1:2)),T==="")O=0;else{if(!_c(D===10?Kv:D===8?B3:Hv,T))return null;O=ZI(T,D)}eC(B,O)}for(Q=0;Q<_;Q++)if(O=B[Q],Q===_-1){if(O>=xv(256,5-_))return null}else if(O>255)return null;for(P=DY(B),Q=0;Q1&&B[0]===""&&(D+="/."),D+=t.cannotBeABaseURL?B[0]:B.length?"/"+U0(B,"/"):"",Q!==null&&(D+="?"+Q),T!==null&&(D+="#"+T),D},setHref:function(t){var s=this.parse(t);if(s)throw new $I(s);this.searchParams.update()},getOrigin:function(){var t=this.scheme,s=this.port;if(t==="blob")try{return new sC(this.path[0]).origin}catch{return"null"}return t!=="file"&&this.isSpecial()?t+"://"+F0(this.host)+(s!==null?":"+s:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(t){this.parse($a(t)+":",Fl)},getUsername:function(){return this.username},setUsername:function(t){var s=xE($a(t));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var c=0;c1?arguments[1]:void 0,u=XI(s,new zv(t,!1,c));wd||(s.href=u.serialize(),s.origin=u.getOrigin(),s.protocol=u.getProtocol(),s.username=u.getUsername(),s.password=u.getPassword(),s.host=u.getHost(),s.hostname=u.getHostname(),s.port=u.getPort(),s.pathname=u.getPathname(),s.search=u.getSearch(),s.searchParams=u.getSearchParams(),s.hash=u.getHash())},SA=sC.prototype,il=function(t,s){return{get:function(){return zI(this)[t]()},set:s&&function(c){return zI(this)[s](c)},configurable:!0,enumerable:!0}};if(wd&&(G1(SA,"href",il("serialize","setHref")),G1(SA,"origin",il("getOrigin")),G1(SA,"protocol",il("getProtocol","setProtocol")),G1(SA,"username",il("getUsername","setUsername")),G1(SA,"password",il("getPassword","setPassword")),G1(SA,"host",il("getHost","setHost")),G1(SA,"hostname",il("getHostname","setHostname")),G1(SA,"port",il("getPort","setPort")),G1(SA,"pathname",il("getPathname","setPathname")),G1(SA,"search",il("getSearch","setSearch")),G1(SA,"searchParams",il("getSearchParams")),G1(SA,"hash",il("getHash","setHash"))),zB(SA,"toJSON",function(){return zI(this).serialize()},{enumerable:!0}),zB(SA,"toString",function(){return zI(this).serialize()},{enumerable:!0}),Sg){var $v=Sg.createObjectURL,D3=Sg.revokeObjectURL;$v&&zB(sC,"createObjectURL",Uv($v,Sg)),D3&&zB(sC,"revokeObjectURL",Uv(D3,Sg))}vd(sC,"URL"),_Y({global:!0,forced:!mY,sham:!wd},{URL:sC});var V0=In,ik=S,OY=QE,Zv=h1,eD=b0,cS=Me("URL"),nk=eD&&ik(function(){cS.canParse()}),tD=ik(function(){return cS.canParse.length!==1});V0({target:"URL",stat:!0,forced:!nk||tD},{canParse:function(t){var s=OY(arguments.length,1),c=Zv(t),u=s<2||arguments[1]===void 0?void 0:Zv(arguments[1]);try{return!!new cS(c,u)}catch{return!1}}});var sk=In,ak=QE,rD=h1,Ak=b0,ck=Me("URL");sk({target:"URL",stat:!0,forced:!Ak},{parse:function(t){var s=ak(arguments.length,1),c=rD(t),u=s<2||arguments[1]===void 0?void 0:rD(arguments[1]);try{return new ck(c,u)}catch{return null}}});var b3=f(Zn.URL);let iD=!0,nD=!0;function O3(t,s,c){const u=t.match(s);return u&&u.length>=c&&parseInt(u[c],10)}function GE(t,s,c){if(!t.RTCPeerConnection)return;const u=t.RTCPeerConnection.prototype,h=u.addEventListener;u.addEventListener=function(B,Q){if(B!==s)return h.apply(this,arguments);const T=D=>{const O=c(D);O&&(Q.handleEvent?Q.handleEvent(O):Q(O))};return this._eventMap=this._eventMap||{},this._eventMap[s]||(this._eventMap[s]=new Map),this._eventMap[s].set(Q,T),h.apply(this,[B,T])};const _=u.removeEventListener;u.removeEventListener=function(B,Q){if(B!==s||!this._eventMap||!this._eventMap[s])return _.apply(this,arguments);if(!this._eventMap[s].has(Q))return _.apply(this,arguments);const T=this._eventMap[s].get(Q);return this._eventMap[s].delete(Q),this._eventMap[s].size===0&&delete this._eventMap[s],Object.keys(this._eventMap).length===0&&delete this._eventMap,_.apply(this,[B,T])},Object.defineProperty(u,"on"+s,{get(){return this["_on"+s]},set(B){this["_on"+s]&&(this.removeEventListener(s,this["_on"+s]),delete this["_on"+s]),B&&this.addEventListener(s,this["_on"+s]=B)},enumerable:!0,configurable:!0})}function oD(t){return typeof t!="boolean"?new Error("Argument type: "+typeof t+". Please use a boolean."):(iD=t,t?"adapter.js logging disabled":"adapter.js logging enabled")}function lk(t){return typeof t!="boolean"?new Error("Argument type: "+typeof t+". Please use a boolean."):(nD=!t,"adapter.js deprecation warnings "+(t?"disabled":"enabled"))}function sD(){if(typeof window=="object"){if(iD)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function lS(t,s){nD&&console.warn(t+" is deprecated, please use "+s+" instead.")}function aD(t){return Object.prototype.toString.call(t)==="[object Object]"}function dS(t){var s;return aD(t)?VA(s=Object.keys(t)).call(s,function(c,u){const h=aD(t[u]),_=h?dS(t[u]):t[u],B=h&&!Object.keys(_).length;return _===void 0||B?c:Object.assign(c,{[u]:_})},{}):t}function uS(t,s,c){s&&!c.has(s.id)&&(c.set(s.id,s),Object.keys(s).forEach(u=>{u.endsWith("Id")?uS(t,t.get(s[u]),c):u.endsWith("Ids")&&s[u].forEach(h=>{uS(t,t.get(h),c)})}))}function AD(t,s,c){const u=c?"outbound-rtp":"inbound-rtp",h=new Map;if(s===null)return h;const _=[];return t.forEach(B=>{B.type==="track"&&B.trackIdentifier===s.id&&_.push(B)}),_.forEach(B=>{t.forEach(Q=>{Q.type===u&&Q.trackId===B.id&&uS(t,Q,h)})}),h}const cD=sD;function lD(t,s){const c=t&&t.navigator;if(!c.mediaDevices)return;const u=function(B){if(typeof B!="object"||B.mandatory||B.optional)return B;const Q={};return Object.keys(B).forEach(T=>{if(T==="require"||T==="advanced"||T==="mediaSource")return;const D=typeof B[T]=="object"?B[T]:{ideal:B[T]};D.exact!==void 0&&typeof D.exact=="number"&&(D.min=D.max=D.exact);const O=function(P,U){return P?P+U.charAt(0).toUpperCase()+U.slice(1):U==="deviceId"?"sourceId":U};if(D.ideal!==void 0){Q.optional=Q.optional||[];let P={};typeof D.ideal=="number"?(P[O("min",T)]=D.ideal,Q.optional.push(P),P={},P[O("max",T)]=D.ideal,Q.optional.push(P)):(P[O("",T)]=D.ideal,Q.optional.push(P))}D.exact!==void 0&&typeof D.exact!="number"?(Q.mandatory=Q.mandatory||{},Q.mandatory[O("",T)]=D.exact):["min","max"].forEach(P=>{D[P]!==void 0&&(Q.mandatory=Q.mandatory||{},Q.mandatory[O(P,T)]=D[P])})}),B.advanced&&(Q.optional=(Q.optional||[]).concat(B.advanced)),Q},h=function(B,Q){if(s.version>=61)return Q(B);if((B=JSON.parse(JSON.stringify(B)))&&typeof B.audio=="object"){const T=function(D,O,P){O in D&&!(P in D)&&(D[P]=D[O],delete D[O])};T((B=JSON.parse(JSON.stringify(B))).audio,"autoGainControl","googAutoGainControl"),T(B.audio,"noiseSuppression","googNoiseSuppression"),B.audio=u(B.audio)}if(B&&typeof B.video=="object"){let T=B.video.facingMode;T=T&&(typeof T=="object"?T:{ideal:T});const D=s.version<66;if(T&&(T.exact==="user"||T.exact==="environment"||T.ideal==="user"||T.ideal==="environment")&&(!c.mediaDevices.getSupportedConstraints||!c.mediaDevices.getSupportedConstraints().facingMode||D)){let O;if(delete B.video.facingMode,T.exact==="environment"||T.ideal==="environment"?O=["back","rear"]:T.exact!=="user"&&T.ideal!=="user"||(O=["front"]),O)return c.mediaDevices.enumerateDevices().then(P=>{P=P.filter(H=>H.kind==="videoinput");let U=P.find(H=>O.some($=>{var Z;return Et(Z=H.label.toLowerCase()).call(Z,$)}));return!U&&P.length&&Et(O).call(O,"back")&&(U=P[P.length-1]),U&&(B.video.deviceId=T.exact?{exact:U.deviceId}:{ideal:U.deviceId}),B.video=u(B.video),cD("chrome: "+JSON.stringify(B)),Q(B)})}B.video=u(B.video)}return cD("chrome: "+JSON.stringify(B)),Q(B)},_=function(B){return s.version>=64?B:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[B.name]||B.name,message:B.message,constraint:B.constraint||B.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(c.getUserMedia=(function(B,Q,T){h(B,D=>{c.webkitGetUserMedia(D,Q,O=>{T&&T(_(O))})})}).bind(c),c.mediaDevices.getUserMedia){const B=c.mediaDevices.getUserMedia.bind(c.mediaDevices);c.mediaDevices.getUserMedia=function(Q){return h(Q,T=>B(T).then(D=>{if(T.audio&&!D.getAudioTracks().length||T.video&&!D.getVideoTracks().length)throw D.getTracks().forEach(O=>{O.stop()}),new DOMException("","NotFoundError");return D},D=>Ut.reject(_(D))))}}}function dD(t){t.MediaStream=t.MediaStream||t.webkitMediaStream}function uD(t){if(typeof t=="object"&&t.RTCPeerConnection&&!("ontrack"in t.RTCPeerConnection.prototype)){Object.defineProperty(t.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(c){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=c)},enumerable:!0,configurable:!0});const s=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=c=>{c.stream.addEventListener("addtrack",u=>{let h;h=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(B=>B.track&&B.track.id===u.track.id):{track:u.track};const _=new Event("track");_.track=u.track,_.receiver=h,_.transceiver={receiver:h},_.streams=[c.stream],this.dispatchEvent(_)}),c.stream.getTracks().forEach(u=>{let h;h=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(B=>B.track&&B.track.id===u.id):{track:u};const _=new Event("track");_.track=u,_.receiver=h,_.transceiver={receiver:h},_.streams=[c.stream],this.dispatchEvent(_)})},this.addEventListener("addstream",this._ontrackpoly)),s.apply(this,arguments)}}else GE(t,"track",s=>(s.transceiver||Object.defineProperty(s,"transceiver",{value:{receiver:s.receiver}}),s))}function gD(t){if(typeof t=="object"&&t.RTCPeerConnection&&!("getSenders"in t.RTCPeerConnection.prototype)&&"createDTMFSender"in t.RTCPeerConnection.prototype){const s=function(h,_){return{track:_,get dtmf(){return this._dtmf===void 0&&(_.kind==="audio"?this._dtmf=h.createDTMFSender(_):this._dtmf=null),this._dtmf},_pc:h}};if(!t.RTCPeerConnection.prototype.getSenders){t.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const h=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addTrack=function(B,Q){let T=h.apply(this,arguments);return T||(T=s(this,B),this._senders.push(T)),T};const _=t.RTCPeerConnection.prototype.removeTrack;t.RTCPeerConnection.prototype.removeTrack=function(B){_.apply(this,arguments);const Q=this._senders.indexOf(B);Q!==-1&&this._senders.splice(Q,1)}}const c=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(h){this._senders=this._senders||[],c.apply(this,[h]),h.getTracks().forEach(_=>{this._senders.push(s(this,_))})};const u=t.RTCPeerConnection.prototype.removeStream;t.RTCPeerConnection.prototype.removeStream=function(h){this._senders=this._senders||[],u.apply(this,[h]),h.getTracks().forEach(_=>{const B=this._senders.find(Q=>Q.track===_);B&&this._senders.splice(this._senders.indexOf(B),1)})}}else if(typeof t=="object"&&t.RTCPeerConnection&&"getSenders"in t.RTCPeerConnection.prototype&&"createDTMFSender"in t.RTCPeerConnection.prototype&&t.RTCRtpSender&&!("dtmf"in t.RTCRtpSender.prototype)){const s=t.RTCPeerConnection.prototype.getSenders;t.RTCPeerConnection.prototype.getSenders=function(){const c=s.apply(this,[]);return c.forEach(u=>u._pc=this),c},Object.defineProperty(t.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function ED(t){if(!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){const c=Array.prototype.slice.call(arguments),u=c[0],h=c[1],_=c[2];if(arguments.length>0&&typeof u=="function")return s.apply(this,arguments);if(s.length===0&&(arguments.length===0||typeof u!="function"))return s.apply(this,[]);const B=function(T){const D={};return T.result().forEach(O=>{const P={id:O.id,timestamp:O.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[O.type]||O.type};O.names().forEach(U=>{P[U]=O.stat(U)}),D[P.id]=P}),D},Q=function(T){return new Map(Object.keys(T).map(D=>[D,T[D]]))};if(arguments.length>=2){const T=function(D){h(Q(B(D)))};return s.apply(this,[T,u])}return new Ut((T,D)=>{s.apply(this,[function(O){T(Q(B(O)))},D])}).then(h,_)}}function hD(t){if(!(typeof t=="object"&&t.RTCPeerConnection&&t.RTCRtpSender&&t.RTCRtpReceiver))return;if(!("getStats"in t.RTCRtpSender.prototype)){const c=t.RTCPeerConnection.prototype.getSenders;c&&(t.RTCPeerConnection.prototype.getSenders=function(){const h=c.apply(this,[]);return h.forEach(_=>_._pc=this),h});const u=t.RTCPeerConnection.prototype.addTrack;u&&(t.RTCPeerConnection.prototype.addTrack=function(){const h=u.apply(this,arguments);return h._pc=this,h}),t.RTCRtpSender.prototype.getStats=function(){const h=this;return this._pc.getStats().then(_=>AD(_,h.track,!0))}}if(!("getStats"in t.RTCRtpReceiver.prototype)){const c=t.RTCPeerConnection.prototype.getReceivers;c&&(t.RTCPeerConnection.prototype.getReceivers=function(){const u=c.apply(this,[]);return u.forEach(h=>h._pc=this),u}),GE(t,"track",u=>(u.receiver._pc=u.srcElement,u)),t.RTCRtpReceiver.prototype.getStats=function(){const u=this;return this._pc.getStats().then(h=>AD(h,u.track,!1))}}if(!("getStats"in t.RTCRtpSender.prototype)||!("getStats"in t.RTCRtpReceiver.prototype))return;const s=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof t.MediaStreamTrack){const c=arguments[0];let u,h,_;return this.getSenders().forEach(B=>{B.track===c&&(u?_=!0:u=B)}),this.getReceivers().forEach(B=>(B.track===c&&(h?_=!0:h=B),B.track===c)),_||u&&h?Ut.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):u?u.getStats():h?h.getStats():Ut.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return s.apply(this,arguments)}}function ID(t){t.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(_=>this._shimmedLocalStreams[_][0])};const s=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addTrack=function(_,B){if(!B)return s.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const Q=s.apply(this,arguments);return this._shimmedLocalStreams[B.id]?this._shimmedLocalStreams[B.id].indexOf(Q)===-1&&this._shimmedLocalStreams[B.id].push(Q):this._shimmedLocalStreams[B.id]=[B,Q],Q};const c=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(_){this._shimmedLocalStreams=this._shimmedLocalStreams||{},_.getTracks().forEach(T=>{if(this.getSenders().find(O=>O.track===T))throw new DOMException("Track already exists.","InvalidAccessError")});const B=this.getSenders();c.apply(this,arguments);const Q=this.getSenders().filter(T=>B.indexOf(T)===-1);this._shimmedLocalStreams[_.id]=[_].concat(Q)};const u=t.RTCPeerConnection.prototype.removeStream;t.RTCPeerConnection.prototype.removeStream=function(_){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[_.id],u.apply(this,arguments)};const h=t.RTCPeerConnection.prototype.removeTrack;t.RTCPeerConnection.prototype.removeTrack=function(_){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},_&&Object.keys(this._shimmedLocalStreams).forEach(B=>{const Q=this._shimmedLocalStreams[B].indexOf(_);Q!==-1&&this._shimmedLocalStreams[B].splice(Q,1),this._shimmedLocalStreams[B].length===1&&delete this._shimmedLocalStreams[B]}),h.apply(this,arguments)}}function CD(t,s){if(!t.RTCPeerConnection)return;if(t.RTCPeerConnection.prototype.addTrack&&s.version>=65)return ID(t);const c=t.RTCPeerConnection.prototype.getLocalStreams;t.RTCPeerConnection.prototype.getLocalStreams=function(){const T=c.apply(this);return this._reverseStreams=this._reverseStreams||{},T.map(D=>this._reverseStreams[D.id])};const u=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(T){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},T.getTracks().forEach(D=>{if(this.getSenders().find(P=>P.track===D))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[T.id]){const D=new t.MediaStream(T.getTracks());this._streams[T.id]=D,this._reverseStreams[D.id]=T,T=D}u.apply(this,[T])};const h=t.RTCPeerConnection.prototype.removeStream;function _(T,D){let O=D.sdp;return Object.keys(T._reverseStreams||[]).forEach(P=>{const U=T._reverseStreams[P],H=T._streams[U.id];O=O.replace(new RegExp(H.id,"g"),U.id)}),new RTCSessionDescription({type:D.type,sdp:O})}t.RTCPeerConnection.prototype.removeStream=function(T){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},h.apply(this,[this._streams[T.id]||T]),delete this._reverseStreams[this._streams[T.id]?this._streams[T.id].id:T.id],delete this._streams[T.id]},t.RTCPeerConnection.prototype.addTrack=function(T,D){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const O=[].slice.call(arguments,1);if(O.length!==1||!O[0].getTracks().find(H=>H===T))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(H=>H.track===T))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const U=this._streams[D.id];if(U)U.addTrack(T),Ut.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const H=new t.MediaStream([T]);this._streams[D.id]=H,this._reverseStreams[H.id]=D,this.addStream(H)}return this.getSenders().find(H=>H.track===T)},["createOffer","createAnswer"].forEach(function(T){const D=t.RTCPeerConnection.prototype[T],O={[T](){const P=arguments;return arguments.length&&typeof arguments[0]=="function"?D.apply(this,[U=>{const H=_(this,U);P[0].apply(null,[H])},U=>{P[1]&&P[1].apply(null,U)},arguments[2]]):D.apply(this,arguments).then(U=>_(this,U))}};t.RTCPeerConnection.prototype[T]=O[T]});const B=t.RTCPeerConnection.prototype.setLocalDescription;t.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(T,D){let O=D.sdp;return Object.keys(T._reverseStreams||[]).forEach(P=>{const U=T._reverseStreams[P],H=T._streams[U.id];O=O.replace(new RegExp(U.id,"g"),H.id)}),new RTCSessionDescription({type:D.type,sdp:O})}(this,arguments[0]),B.apply(this,arguments)):B.apply(this,arguments)};const Q=Object.getOwnPropertyDescriptor(t.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(t.RTCPeerConnection.prototype,"localDescription",{get(){const T=Q.get.apply(this);return T.type===""?T:_(this,T)}}),t.RTCPeerConnection.prototype.removeTrack=function(T){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!T._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(T._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let D;this._streams=this._streams||{},Object.keys(this._streams).forEach(O=>{this._streams[O].getTracks().find(P=>T.track===P)&&(D=this._streams[O])}),D&&(D.getTracks().length===1?this.removeStream(this._reverseStreams[D.id]):D.removeTrack(T.track),this.dispatchEvent(new Event("negotiationneeded")))}}function ES(t,s){!t.RTCPeerConnection&&t.webkitRTCPeerConnection&&(t.RTCPeerConnection=t.webkitRTCPeerConnection),t.RTCPeerConnection&&s.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(c){const u=t.RTCPeerConnection.prototype[c],h={[c](){return arguments[0]=new(c==="addIceCandidate"?t.RTCIceCandidate:t.RTCSessionDescription)(arguments[0]),u.apply(this,arguments)}};t.RTCPeerConnection.prototype[c]=h[c]})}function pD(t,s){GE(t,"negotiationneeded",c=>{const u=c.target;if(!(s.version<72||u.getConfiguration&&u.getConfiguration().sdpSemantics==="plan-b")||u.signalingState==="stable")return c})}var fD=Object.freeze({__proto__:null,fixNegotiationNeeded:pD,shimAddTrackRemoveTrack:CD,shimAddTrackRemoveTrackWithNative:ID,shimGetDisplayMedia:function(t,s){t.navigator.mediaDevices&&"getDisplayMedia"in t.navigator.mediaDevices||t.navigator.mediaDevices&&(typeof s=="function"?t.navigator.mediaDevices.getDisplayMedia=function(c){return s(c).then(u=>{const h=c.video&&c.video.width,_=c.video&&c.video.height,B=c.video&&c.video.frameRate;return c.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:u,maxFrameRate:B||3}},h&&(c.video.mandatory.maxWidth=h),_&&(c.video.mandatory.maxHeight=_),t.navigator.mediaDevices.getUserMedia(c)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))},shimGetSendersWithDtmf:gD,shimGetStats:ED,shimGetUserMedia:lD,shimMediaStream:dD,shimOnTrack:uD,shimPeerConnection:ES,shimSenderReceiverGetStats:hD});function _D(t,s){const c=t&&t.navigator,u=t&&t.MediaStreamTrack;if(c.getUserMedia=function(h,_,B){lS("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),c.mediaDevices.getUserMedia(h).then(_,B)},!(s.version>55&&"autoGainControl"in c.mediaDevices.getSupportedConstraints())){const h=function(B,Q,T){Q in B&&!(T in B)&&(B[T]=B[Q],delete B[Q])},_=c.mediaDevices.getUserMedia.bind(c.mediaDevices);if(c.mediaDevices.getUserMedia=function(B){return typeof B=="object"&&typeof B.audio=="object"&&(B=JSON.parse(JSON.stringify(B)),h(B.audio,"autoGainControl","mozAutoGainControl"),h(B.audio,"noiseSuppression","mozNoiseSuppression")),_(B)},u&&u.prototype.getSettings){const B=u.prototype.getSettings;u.prototype.getSettings=function(){const Q=B.apply(this,arguments);return h(Q,"mozAutoGainControl","autoGainControl"),h(Q,"mozNoiseSuppression","noiseSuppression"),Q}}if(u&&u.prototype.applyConstraints){const B=u.prototype.applyConstraints;u.prototype.applyConstraints=function(Q){return this.kind==="audio"&&typeof Q=="object"&&(Q=JSON.parse(JSON.stringify(Q)),h(Q,"autoGainControl","mozAutoGainControl"),h(Q,"noiseSuppression","mozNoiseSuppression")),B.apply(this,[Q])}}}}function mD(t){typeof t=="object"&&t.RTCTrackEvent&&"receiver"in t.RTCTrackEvent.prototype&&!("transceiver"in t.RTCTrackEvent.prototype)&&Object.defineProperty(t.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function hS(t,s){if(typeof t!="object"||!t.RTCPeerConnection&&!t.mozRTCPeerConnection)return;!t.RTCPeerConnection&&t.mozRTCPeerConnection&&(t.RTCPeerConnection=t.mozRTCPeerConnection),s.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(h){const _=t.RTCPeerConnection.prototype[h],B={[h](){return arguments[0]=new(h==="addIceCandidate"?t.RTCIceCandidate:t.RTCSessionDescription)(arguments[0]),_.apply(this,arguments)}};t.RTCPeerConnection.prototype[h]=B[h]});const c={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},u=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){const h=Array.prototype.slice.call(arguments),_=h[0],B=h[1],Q=h[2];return u.apply(this,[_||null]).then(T=>{if(s.version<53&&!B)try{T.forEach(D=>{D.type=c[D.type]||D.type})}catch(D){if(D.name!=="TypeError")throw D;T.forEach((O,P)=>{T.set(P,Object.assign({},O,{type:c[O.type]||O.type}))})}return T}).then(B,Q)}}function BD(t){if(typeof t!="object"||!t.RTCPeerConnection||!t.RTCRtpSender||t.RTCRtpSender&&"getStats"in t.RTCRtpSender.prototype)return;const s=t.RTCPeerConnection.prototype.getSenders;s&&(t.RTCPeerConnection.prototype.getSenders=function(){const u=s.apply(this,[]);return u.forEach(h=>h._pc=this),u});const c=t.RTCPeerConnection.prototype.addTrack;c&&(t.RTCPeerConnection.prototype.addTrack=function(){const u=c.apply(this,arguments);return u._pc=this,u}),t.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Ut.resolve(new Map)}}function SD(t){if(typeof t!="object"||!t.RTCPeerConnection||!t.RTCRtpSender||t.RTCRtpSender&&"getStats"in t.RTCRtpReceiver.prototype)return;const s=t.RTCPeerConnection.prototype.getReceivers;s&&(t.RTCPeerConnection.prototype.getReceivers=function(){const c=s.apply(this,[]);return c.forEach(u=>u._pc=this),c}),GE(t,"track",c=>(c.receiver._pc=c.srcElement,c)),t.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function RD(t){t.RTCPeerConnection&&!("removeStream"in t.RTCPeerConnection.prototype)&&(t.RTCPeerConnection.prototype.removeStream=function(s){lS("removeStream","removeTrack"),this.getSenders().forEach(c=>{var u;c.track&&Et(u=s.getTracks()).call(u,c.track)&&this.removeTrack(c)})})}function dk(t){t.DataChannel&&!t.RTCDataChannel&&(t.RTCDataChannel=t.DataChannel)}function uk(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.addTransceiver;s&&(t.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let c=arguments[1]&&arguments[1].sendEncodings;c===void 0&&(c=[]),c=[...c];const u=c.length>0;u&&c.forEach(_=>{if("rid"in _&&!/^[a-z0-9]{0,16}$/i.test(_.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in _&&!(parseFloat(_.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in _&&!(parseFloat(_.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const h=s.apply(this,arguments);if(u){const _=h.sender,B=_.getParameters();(!("encodings"in B)||B.encodings.length===1&&Object.keys(B.encodings[0]).length===0)&&(B.encodings=c,_.sendEncodings=c,this.setParametersPromises.push(_.setParameters(B).then(()=>{delete _.sendEncodings}).catch(()=>{delete _.sendEncodings})))}return h})}function CS(t){if(typeof t!="object"||!t.RTCRtpSender)return;const s=t.RTCRtpSender.prototype.getParameters;s&&(t.RTCRtpSender.prototype.getParameters=function(){const c=s.apply(this,arguments);return"encodings"in c||(c.encodings=[].concat(this.sendEncodings||[{}])),c})}function yD(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.createOffer;t.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ut.all(this.setParametersPromises).then(()=>s.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):s.apply(this,arguments)}}function gk(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.createAnswer;t.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ut.all(this.setParametersPromises).then(()=>s.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):s.apply(this,arguments)}}var Ek=Object.freeze({__proto__:null,shimAddTransceiver:uk,shimCreateAnswer:gk,shimCreateOffer:yD,shimGetDisplayMedia:function(t,s){t.navigator.mediaDevices&&"getDisplayMedia"in t.navigator.mediaDevices||t.navigator.mediaDevices&&(t.navigator.mediaDevices.getDisplayMedia=function(c){if(!c||!c.video){const u=new DOMException("getDisplayMedia without video constraints is undefined");return u.name="NotFoundError",u.code=8,Ut.reject(u)}return c.video===!0?c.video={mediaSource:s}:c.video.mediaSource=s,t.navigator.mediaDevices.getUserMedia(c)})},shimGetParameters:CS,shimGetUserMedia:_D,shimOnTrack:mD,shimPeerConnection:hS,shimRTCDataChannel:dk,shimReceiverGetStats:SD,shimRemoveStream:RD,shimSenderGetStats:BD});function hk(t){if(typeof t=="object"&&t.RTCPeerConnection){if("getLocalStreams"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in t.RTCPeerConnection.prototype)){const s=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addStream=function(c){var u;this._localStreams||(this._localStreams=[]),Et(u=this._localStreams).call(u,c)||this._localStreams.push(c),c.getAudioTracks().forEach(h=>s.call(this,h,c)),c.getVideoTracks().forEach(h=>s.call(this,h,c))},t.RTCPeerConnection.prototype.addTrack=function(c){for(var u=arguments.length,h=new Array(u>1?u-1:0),_=1;_{var Q;this._localStreams?Et(Q=this._localStreams).call(Q,B)||this._localStreams.push(B):this._localStreams=[B]}),s.apply(this,arguments)}}"removeStream"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.removeStream=function(s){this._localStreams||(this._localStreams=[]);const c=this._localStreams.indexOf(s);if(c===-1)return;this._localStreams.splice(c,1);const u=s.getTracks();this.getSenders().forEach(h=>{Et(u).call(u,h.track)&&this.removeTrack(h)})})}}function Ik(t){if(typeof t=="object"&&t.RTCPeerConnection&&("getRemoteStreams"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in t.RTCPeerConnection.prototype))){Object.defineProperty(t.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(c){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=c),this.addEventListener("track",this._onaddstreampoly=u=>{u.streams.forEach(h=>{var _;if(this._remoteStreams||(this._remoteStreams=[]),Et(_=this._remoteStreams).call(_,h))return;this._remoteStreams.push(h);const B=new Event("addstream");B.stream=h,this.dispatchEvent(B)})})}});const s=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){const c=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(u){u.streams.forEach(h=>{if(c._remoteStreams||(c._remoteStreams=[]),c._remoteStreams.indexOf(h)>=0)return;c._remoteStreams.push(h);const _=new Event("addstream");_.stream=h,c.dispatchEvent(_)})}),s.apply(c,arguments)}}}function Ck(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype,c=s.createOffer,u=s.createAnswer,h=s.setLocalDescription,_=s.setRemoteDescription,B=s.addIceCandidate;s.createOffer=function(T,D){const O=arguments.length>=2?arguments[2]:arguments[0],P=c.apply(this,[O]);return D?(P.then(T,D),Ut.resolve()):P},s.createAnswer=function(T,D){const O=arguments.length>=2?arguments[2]:arguments[0],P=u.apply(this,[O]);return D?(P.then(T,D),Ut.resolve()):P};let Q=function(T,D,O){const P=h.apply(this,[T]);return O?(P.then(D,O),Ut.resolve()):P};s.setLocalDescription=Q,Q=function(T,D,O){const P=_.apply(this,[T]);return O?(P.then(D,O),Ut.resolve()):P},s.setRemoteDescription=Q,Q=function(T,D,O){const P=B.apply(this,[T]);return O?(P.then(D,O),Ut.resolve()):P},s.addIceCandidate=Q}function pk(t){const s=t&&t.navigator;if(s.mediaDevices&&s.mediaDevices.getUserMedia){const c=s.mediaDevices,u=c.getUserMedia.bind(c);s.mediaDevices.getUserMedia=h=>u(QD(h))}!s.getUserMedia&&s.mediaDevices&&s.mediaDevices.getUserMedia&&(s.getUserMedia=(function(c,u,h){s.mediaDevices.getUserMedia(c).then(u,h)}).bind(s))}function QD(t){return t&&t.video!==void 0?Object.assign({},t,{video:dS(t.video)}):t}function fk(t){if(!t.RTCPeerConnection)return;const s=t.RTCPeerConnection;t.RTCPeerConnection=function(c,u){if(c&&c.iceServers){const h=[];for(let _=0;_s.generateCertificate})}function mk(t){typeof t=="object"&&t.RTCTrackEvent&&"receiver"in t.RTCTrackEvent.prototype&&!("transceiver"in t.RTCTrackEvent.prototype)&&Object.defineProperty(t.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Bk(t){const s=t.RTCPeerConnection.prototype.createOffer;t.RTCPeerConnection.prototype.createOffer=function(c){if(c){c.offerToReceiveAudio!==void 0&&(c.offerToReceiveAudio=!!c.offerToReceiveAudio);const u=this.getTransceivers().find(_=>_.receiver.track.kind==="audio");c.offerToReceiveAudio===!1&&u?u.direction==="sendrecv"?u.setDirection?u.setDirection("sendonly"):u.direction="sendonly":u.direction==="recvonly"&&(u.setDirection?u.setDirection("inactive"):u.direction="inactive"):c.offerToReceiveAudio!==!0||u||this.addTransceiver("audio",{direction:"recvonly"}),c.offerToReceiveVideo!==void 0&&(c.offerToReceiveVideo=!!c.offerToReceiveVideo);const h=this.getTransceivers().find(_=>_.receiver.track.kind==="video");c.offerToReceiveVideo===!1&&h?h.direction==="sendrecv"?h.setDirection?h.setDirection("sendonly"):h.direction="sendonly":h.direction==="recvonly"&&(h.setDirection?h.setDirection("inactive"):h.direction="inactive"):c.offerToReceiveVideo!==!0||h||this.addTransceiver("video",{direction:"recvonly"})}return s.apply(this,arguments)}}function Sk(t){typeof t!="object"||t.AudioContext||(t.AudioContext=t.webkitAudioContext)}var pS=Object.freeze({__proto__:null,shimAudioContext:Sk,shimCallbacksAPI:Ck,shimConstraints:QD,shimCreateOfferLegacy:Bk,shimGetUserMedia:pk,shimLocalStreamsAPI:hk,shimRTCIceServerUrls:fk,shimRemoteStreamsAPI:Ik,shimTrackEventTransceiver:mk}),Rk=` +\v\f\r                 \u2028\u2029\uFEFF`,RA=_o,yk=h1,fS=Rk,K0=j("".replace),LY=RegExp("^["+fS+"]+"),_S=RegExp("(^|[^"+fS+"])["+fS+"]+$"),TD=function(t){return function(s){var c=yk(RA(s));return 1&t&&(c=K0(c,LY,"")),2&t&&(c=K0(c,_S,"$1")),c}},mS={trim:TD(3)},BS=xL.PROPER,wD=S,SS=Rk,QS=mS.trim;In({target:"String",proto:!0,forced:function(t){return wD(function(){return!!SS[t]()||"​…᠎"[t]()!=="​…᠎"||BS&&SS[t].name!==t})}("trim")},{trim:function(){return QS(this)}});var wS=E1("String","trim"),MY=W,kY=wS,DS=String.prototype,PY=function(t){var s=t.trim;return typeof t=="string"||t===DS||MY(DS,t)&&s===DS.trim?kY:s},Ga=f(PY),Qk={exports:{}};(function(t){const s={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};s.localCName=s.generateIdentifier(),s.splitLines=function(c){return c.trim().split(` +`).map(u=>u.trim())},s.splitSections=function(c){return c.split(` +m=`).map((u,h)=>(h>0?"m="+u:u).trim()+`\r +`)},s.getDescription=function(c){const u=s.splitSections(c);return u&&u[0]},s.getMediaSections=function(c){const u=s.splitSections(c);return u.shift(),u},s.matchPrefix=function(c,u){return s.splitLines(c).filter(h=>h.indexOf(u)===0)},s.parseCandidate=function(c){let u;u=c.indexOf("a=candidate:")===0?c.substring(12).split(" "):c.substring(10).split(" ");const h={foundation:u[0],component:{1:"rtp",2:"rtcp"}[u[1]]||u[1],protocol:u[2].toLowerCase(),priority:parseInt(u[3],10),ip:u[4],address:u[4],port:parseInt(u[5],10),type:u[7]};for(let _=8;_0?u[0].split("/")[1]:"sendrecv",uri:u[1],attributes:u.slice(2).join(" ")}},s.writeExtmap=function(c){return"a=extmap:"+(c.id||c.preferredId)+(c.direction&&c.direction!=="sendrecv"?"/"+c.direction:"")+" "+c.uri+(c.attributes?" "+c.attributes:"")+`\r +`},s.parseFmtp=function(c){const u={};let h;const _=c.substring(c.indexOf(" ")+1).split(";");for(let B=0;B<_.length;B++)h=_[B].trim().split("="),u[h[0].trim()]=h[1];return u},s.writeFmtp=function(c){let u="",h=c.payloadType;if(c.preferredPayloadType!==void 0&&(h=c.preferredPayloadType),c.parameters&&Object.keys(c.parameters).length){const _=[];Object.keys(c.parameters).forEach(B=>{c.parameters[B]!==void 0?_.push(B+"="+c.parameters[B]):_.push(B)}),u+="a=fmtp:"+h+" "+_.join(";")+`\r +`}return u},s.parseRtcpFb=function(c){const u=c.substring(c.indexOf(" ")+1).split(" ");return{type:u.shift(),parameter:u.join(" ")}},s.writeRtcpFb=function(c){let u="",h=c.payloadType;return c.preferredPayloadType!==void 0&&(h=c.preferredPayloadType),c.rtcpFeedback&&c.rtcpFeedback.length&&c.rtcpFeedback.forEach(_=>{u+="a=rtcp-fb:"+h+" "+_.type+(_.parameter&&_.parameter.length?" "+_.parameter:"")+`\r +`}),u},s.parseSsrcMedia=function(c){const u=c.indexOf(" "),h={ssrc:parseInt(c.substring(7,u),10)},_=c.indexOf(":",u);return _>-1?(h.attribute=c.substring(u+1,_),h.value=c.substring(_+1)):h.attribute=c.substring(u+1),h},s.parseSsrcGroup=function(c){const u=c.substring(13).split(" ");return{semantics:u.shift(),ssrcs:u.map(h=>parseInt(h,10))}},s.getMid=function(c){const u=s.matchPrefix(c,"a=mid:")[0];if(u)return u.substring(6)},s.parseFingerprint=function(c){const u=c.substring(14).split(" ");return{algorithm:u[0].toLowerCase(),value:u[1].toUpperCase()}},s.getDtlsParameters=function(c,u){return{role:"auto",fingerprints:s.matchPrefix(c+u,"a=fingerprint:").map(s.parseFingerprint)}},s.writeDtlsParameters=function(c,u){let h="a=setup:"+u+`\r +`;return c.fingerprints.forEach(_=>{h+="a=fingerprint:"+_.algorithm+" "+_.value+`\r +`}),h},s.parseCryptoLine=function(c){const u=c.substring(9).split(" ");return{tag:parseInt(u[0],10),cryptoSuite:u[1],keyParams:u[2],sessionParams:u.slice(3)}},s.writeCryptoLine=function(c){return"a=crypto:"+c.tag+" "+c.cryptoSuite+" "+(typeof c.keyParams=="object"?s.writeCryptoKeyParams(c.keyParams):c.keyParams)+(c.sessionParams?" "+c.sessionParams.join(" "):"")+`\r +`},s.parseCryptoKeyParams=function(c){if(c.indexOf("inline:")!==0)return null;const u=c.substring(7).split("|");return{keyMethod:"inline",keySalt:u[0],lifeTime:u[1],mkiValue:u[2]?u[2].split(":")[0]:void 0,mkiLength:u[2]?u[2].split(":")[1]:void 0}},s.writeCryptoKeyParams=function(c){return c.keyMethod+":"+c.keySalt+(c.lifeTime?"|"+c.lifeTime:"")+(c.mkiValue&&c.mkiLength?"|"+c.mkiValue+":"+c.mkiLength:"")},s.getCryptoParameters=function(c,u){return s.matchPrefix(c+u,"a=crypto:").map(s.parseCryptoLine)},s.getIceParameters=function(c,u){const h=s.matchPrefix(c+u,"a=ice-ufrag:")[0],_=s.matchPrefix(c+u,"a=ice-pwd:")[0];return h&&_?{usernameFragment:h.substring(12),password:_.substring(10)}:null},s.writeIceParameters=function(c){let u="a=ice-ufrag:"+c.usernameFragment+`\r +a=ice-pwd:`+c.password+`\r +`;return c.iceLite&&(u+=`a=ice-lite\r +`),u},s.parseRtpParameters=function(c){const u={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},h=s.splitLines(c)[0].split(" ");u.profile=h[2];for(let B=3;B{u.headerExtensions.push(s.parseExtmap(B))});const _=s.matchPrefix(c,"a=rtcp-fb:* ").map(s.parseRtcpFb);return u.codecs.forEach(B=>{_.forEach(Q=>{B.rtcpFeedback.find(T=>T.type===Q.type&&T.parameter===Q.parameter)||B.rtcpFeedback.push(Q)})}),u},s.writeRtpDescription=function(c,u){let h="";h+="m="+c+" ",h+=u.codecs.length>0?"9":"0",h+=" "+(u.profile||"UDP/TLS/RTP/SAVPF")+" ",h+=u.codecs.map(B=>B.preferredPayloadType!==void 0?B.preferredPayloadType:B.payloadType).join(" ")+`\r +`,h+=`c=IN IP4 0.0.0.0\r +`,h+=`a=rtcp:9 IN IP4 0.0.0.0\r +`,u.codecs.forEach(B=>{h+=s.writeRtpMap(B),h+=s.writeFmtp(B),h+=s.writeRtcpFb(B)});let _=0;return u.codecs.forEach(B=>{B.maxptime>_&&(_=B.maxptime)}),_>0&&(h+="a=maxptime:"+_+`\r +`),u.headerExtensions&&u.headerExtensions.forEach(B=>{h+=s.writeExtmap(B)}),h},s.parseRtpEncodingParameters=function(c){const u=[],h=s.parseRtpParameters(c),_=h.fecMechanisms.indexOf("RED")!==-1,B=h.fecMechanisms.indexOf("ULPFEC")!==-1,Q=s.matchPrefix(c,"a=ssrc:").map(U=>s.parseSsrcMedia(U)).filter(U=>U.attribute==="cname"),T=Q.length>0&&Q[0].ssrc;let D;const O=s.matchPrefix(c,"a=ssrc-group:FID").map(U=>U.substring(17).split(" ").map(H=>parseInt(H,10)));O.length>0&&O[0].length>1&&O[0][0]===T&&(D=O[0][1]),h.codecs.forEach(U=>{if(U.name.toUpperCase()==="RTX"&&U.parameters.apt){let H={ssrc:T,codecPayloadType:parseInt(U.parameters.apt,10)};T&&D&&(H.rtx={ssrc:D}),u.push(H),_&&(H=JSON.parse(JSON.stringify(H)),H.fec={ssrc:T,mechanism:B?"red+ulpfec":"red"},u.push(H))}}),u.length===0&&T&&u.push({ssrc:T});let P=s.matchPrefix(c,"b=");return P.length&&(P=P[0].indexOf("b=TIAS:")===0?parseInt(P[0].substring(7),10):P[0].indexOf("b=AS:")===0?1e3*parseInt(P[0].substring(5),10)*.95-16e3:void 0,u.forEach(U=>{U.maxBitrate=P})),u},s.parseRtcpParameters=function(c){const u={},h=s.matchPrefix(c,"a=ssrc:").map(Q=>s.parseSsrcMedia(Q)).filter(Q=>Q.attribute==="cname")[0];h&&(u.cname=h.value,u.ssrc=h.ssrc);const _=s.matchPrefix(c,"a=rtcp-rsize");u.reducedSize=_.length>0,u.compound=_.length===0;const B=s.matchPrefix(c,"a=rtcp-mux");return u.mux=B.length>0,u},s.writeRtcpParameters=function(c){let u="";return c.reducedSize&&(u+=`a=rtcp-rsize\r +`),c.mux&&(u+=`a=rtcp-mux\r +`),c.ssrc!==void 0&&c.cname&&(u+="a=ssrc:"+c.ssrc+" cname:"+c.cname+`\r +`),u},s.parseMsid=function(c){let u;const h=s.matchPrefix(c,"a=msid:");if(h.length===1)return u=h[0].substring(7).split(" "),{stream:u[0],track:u[1]};const _=s.matchPrefix(c,"a=ssrc:").map(B=>s.parseSsrcMedia(B)).filter(B=>B.attribute==="msid");return _.length>0?(u=_[0].value.split(" "),{stream:u[0],track:u[1]}):void 0},s.parseSctpDescription=function(c){const u=s.parseMLine(c),h=s.matchPrefix(c,"a=max-message-size:");let _;h.length>0&&(_=parseInt(h[0].substring(19),10)),isNaN(_)&&(_=65536);const B=s.matchPrefix(c,"a=sctp-port:");if(B.length>0)return{port:parseInt(B[0].substring(12),10),protocol:u.fmt,maxMessageSize:_};const Q=s.matchPrefix(c,"a=sctpmap:");if(Q.length>0){const T=Q[0].substring(10).split(" ");return{port:parseInt(T[0],10),protocol:T[1],maxMessageSize:_}}},s.writeSctpDescription=function(c,u){let h=[];return h=c.protocol!=="DTLS/SCTP"?["m="+c.kind+" 9 "+c.protocol+" "+u.protocol+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctp-port:"+u.port+`\r +`]:["m="+c.kind+" 9 "+c.protocol+" "+u.port+`\r +`,`c=IN IP4 0.0.0.0\r +`,"a=sctpmap:"+u.port+" "+u.protocol+` 65535\r +`],u.maxMessageSize!==void 0&&h.push("a=max-message-size:"+u.maxMessageSize+`\r +`),h.join("")},s.generateSessionId=function(){return Math.random().toString().substr(2,22)},s.writeSessionBoilerplate=function(c,u,h){let _;const B=u!==void 0?u:2;return _=c||s.generateSessionId(),`v=0\r +o=`+(h||"thisisadapterortc")+" "+_+" "+B+` IN IP4 127.0.0.1\r +s=-\r +t=0 0\r +`},s.getDirection=function(c,u){const h=s.splitLines(c);for(let _=0;_(c.candidate&&Object.defineProperty(c,"candidate",{value:new t.RTCIceCandidate(c.candidate),writable:"false"}),c))}function vD(t){!t.RTCIceCandidate||t.RTCIceCandidate&&"relayProtocol"in t.RTCIceCandidate.prototype||GE(t,"icecandidate",s=>{if(s.candidate){const c=aC.parseCandidate(s.candidate.candidate);c.type==="relay"&&(s.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[c.priority>>24])}return s})}function AC(t,s){if(!t.RTCPeerConnection)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});const c=function(Q){if(!Q||!Q.sdp)return!1;const T=aC.splitSections(Q.sdp);return T.shift(),T.some(D=>{const O=aC.parseMLine(D);return O&&O.kind==="application"&&O.protocol.indexOf("SCTP")!==-1})},u=function(Q){const T=Q.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(T===null||T.length<2)return-1;const D=parseInt(T[1],10);return D!=D?-1:D},h=function(Q){let T=65536;return s.browser==="firefox"&&(T=s.version<57?Q===-1?16384:2147483637:s.version<60?s.version===57?65535:65536:2147483637),T},_=function(Q,T){let D=65536;s.browser==="firefox"&&s.version===57&&(D=65535);const O=aC.matchPrefix(Q.sdp,"a=max-message-size:");return O.length>0?D=parseInt(O[0].substr(19),10):s.browser==="firefox"&&T!==-1&&(D=2147483637),D},B=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,s.browser==="chrome"&&s.version>=76&&this.getConfiguration().sdpSemantics==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0}),c(arguments[0])){const Q=u(arguments[0]),T=h(Q),D=_(arguments[0],Q);let O;O=T===0&&D===0?Number.POSITIVE_INFINITY:T===0||D===0?Math.max(T,D):Math.min(T,D);const P={};Object.defineProperty(P,"maxMessageSize",{get:()=>O}),this._sctp=P}return B.apply(this,arguments)}}function cC(t){if(!t.RTCPeerConnection||!("createDataChannel"in t.RTCPeerConnection.prototype))return;function s(u,h){const _=u.send;u.send=function(){const B=arguments[0],Q=B.length||B.size||B.byteLength;if(u.readyState==="open"&&h.sctp&&Q>h.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+h.sctp.maxMessageSize+" bytes)");return _.apply(u,arguments)}}const c=t.RTCPeerConnection.prototype.createDataChannel;t.RTCPeerConnection.prototype.createDataChannel=function(){const u=c.apply(this,arguments);return s(u,this),u},GE(t,"datachannel",u=>(s(u.channel,u.target),u))}function DD(t){if(!t.RTCPeerConnection||"connectionState"in t.RTCPeerConnection.prototype)return;const s=t.RTCPeerConnection.prototype;Object.defineProperty(s,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(s,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(c){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),c&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=c)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(c=>{const u=s[c];s[c]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=h=>{const _=h.target;if(_._lastConnectionState!==_.connectionState){_._lastConnectionState=_.connectionState;const B=new Event("connectionstatechange",h);_.dispatchEvent(B)}return h},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),u.apply(this,arguments)}})}function L3(t,s){if(!t.RTCPeerConnection||s.browser==="chrome"&&s.version>=71||s.browser==="safari"&&s.version>=605)return;const c=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(u){if(u&&u.sdp&&u.sdp.indexOf(` +a=extmap-allow-mixed`)!==-1){const h=u.sdp.split(` +`).filter(_=>Ga(_).call(_)!=="a=extmap-allow-mixed").join(` +`);t.RTCSessionDescription&&u instanceof t.RTCSessionDescription?arguments[0]=new t.RTCSessionDescription({type:u.type,sdp:h}):u.sdp=h}return c.apply(this,arguments)}}function NS(t,s){if(!t.RTCPeerConnection||!t.RTCPeerConnection.prototype)return;const c=t.RTCPeerConnection.prototype.addIceCandidate;c&&c.length!==0&&(t.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(s.browser==="chrome"&&s.version<78||s.browser==="firefox"&&s.version<68||s.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Ut.resolve():c.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Ut.resolve())})}function lC(t,s){if(!t.RTCPeerConnection||!t.RTCPeerConnection.prototype)return;const c=t.RTCPeerConnection.prototype.setLocalDescription;c&&c.length!==0&&(t.RTCPeerConnection.prototype.setLocalDescription=function(){let u=arguments[0]||{};if(typeof u!="object"||u.type&&u.sdp)return c.apply(this,arguments);if(u={type:u.type,sdp:u.sdp},!u.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":u.type="offer";break;default:u.type="answer"}return u.sdp||u.type!=="offer"&&u.type!=="answer"?c.apply(this,[u]):(u.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(h=>c.apply(this,[h]))})}var UY=Object.freeze({__proto__:null,removeExtmapAllowMixed:L3,shimAddIceCandidateNullOrEmpty:NS,shimConnectionState:DD,shimMaxMessageSize:AC,shimParameterlessSetLocalDescription:lC,shimRTCIceCandidate:bS,shimRTCIceCandidateRelayProtocol:vD,shimSendThrowTypeError:cC});(function(){let t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).window,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const c=sD,u=function(_){const B={browser:null,version:null};if(_===void 0||!_.navigator)return B.browser="Not a browser.",B;const Q=_.navigator;if(Q.mozGetUserMedia)B.browser="firefox",B.version=O3(Q.userAgent,/Firefox\/(\d+)\./,1);else if(Q.webkitGetUserMedia||_.isSecureContext===!1&&_.webkitRTCPeerConnection)B.browser="chrome",B.version=O3(Q.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!_.RTCPeerConnection||!Q.userAgent.match(/AppleWebKit\/(\d+)\./))return B.browser="Not a supported browser.",B;B.browser="safari",B.version=O3(Q.userAgent,/AppleWebKit\/(\d+)\./,1),B.supportsUnifiedPlan=_.RTCRtpTransceiver&&"currentDirection"in _.RTCRtpTransceiver.prototype}return B}(t),h={browserDetails:u,commonShim:UY,extractVersion:O3,disableLog:oD,disableWarnings:lk,sdp:wk};switch(u.browser){case"chrome":if(!fD||!ES||!s.shimChrome)return c("Chrome shim is not included in this adapter release."),h;if(u.version===null)return c("Chrome shim can not determine version, not shimming."),h;c("adapter.js shimming chrome."),h.browserShim=fD,NS(t,u),lC(t),lD(t,u),dD(t),ES(t,u),uD(t),CD(t,u),gD(t),ED(t),hD(t),pD(t,u),bS(t),vD(t),DD(t),AC(t,u),cC(t),L3(t,u);break;case"firefox":if(!Ek||!hS||!s.shimFirefox)return c("Firefox shim is not included in this adapter release."),h;c("adapter.js shimming firefox."),h.browserShim=Ek,NS(t,u),lC(t),_D(t,u),hS(t,u),mD(t),RD(t),BD(t),SD(t),dk(t),uk(t),CS(t),yD(t),gk(t),bS(t),DD(t),AC(t,u),cC(t);break;case"safari":if(!pS||!s.shimSafari)return c("Safari shim is not included in this adapter release."),h;c("adapter.js shimming safari."),h.browserShim=pS,NS(t,u),lC(t),fk(t),Bk(t),Ck(t),hk(t),Ik(t),mk(t),pk(t),Sk(t),bS(t),vD(t),AC(t,u),cC(t),L3(t,u);break;default:c("Unsupported browser!")}})({window:typeof window>"u"?void 0:window}),In({target:"Array",stat:!0},{isArray:p0});var xY=f(Zn.Array.isArray),FY=TypeError,OS=function(t){if(t>9007199254740991)throw new FY("Maximum allowed index exceeded");return t},bD=p0,GY=cB,VY=Tn,KY=Po("species"),H0=Array,HY=function(t){var s;return bD(t)&&(s=t.constructor,(GY(s)&&(s===H0||bD(s.prototype))||VY(s)&&(s=s[KY])===null)&&(s=void 0)),s===void 0?H0:s},vk=function(t,s){return new(HY(t))(s===0?0:s)},YY=S,jY=Ho,JY=Po("species"),LS=function(t){return jY>=51||!YY(function(){var s=[];return(s.constructor={})[JY]=function(){return{foo:1}},s[t](Boolean).foo!==1})},qY=In,Dk=S,WY=p0,XY=Tn,zY=La,$Y=ug,MS=OS,bk=jB,ZY=C3,ND=vk,Nk=LS,OD=Ho,Lk=Po("isConcatSpreadable"),Mk=OD>=51||!Dk(function(){var t=[];return t[Lk]=!1,t.concat()[0]!==t}),kk=function(t){if(!XY(t))return!1;var s=t[Lk];return s!==void 0?!!s:WY(t)};qY({target:"Array",proto:!0,forced:!Mk||!Nk("concat")},{concat:function(t){var s,c,u,h,_,B=zY(this),Q=ND(B,0),T=0;for(s=-1,u=arguments.length;sse;se++)if((Q||se in $)&&(U=te(P=$[se],se,H),t))if(s)uC(me,se,U);else if(U)switch(t){case 3:return!0;case 5:return P;case 6:return se;case 2:uC(me,ge++,P)}else switch(t){case 4:return!1;case 7:uC(me,ge++,P)}return _?-1:u||h?h:me}},M3={forEach:Jk(0)},gC=In,H1=ee,EC=vt,hC=j,Dd=Yt,Bu=Ns,qk=S,Za=Xs,mc=W,PS=Xo,VE=Bs,IC=Rr,lj=h1,LD=fi,CC=Jp,Wk=Lm,dj=bm,Xk=Pk,uj=jp,zk=lt,$k=Gs,k3=jT,MD=ar,KE=hg,Zk=nB,kD=uu,US=Yp,e5=kl,t5=Po,gj=dC,r5=Ea,Ej=Hk,i5=Cg,PD=gg,P3=M3.forEach,yA=wm("hidden"),Y0="Symbol",U3="prototype",Ht=PD.set,Fn=PD.getterFor(Y0),Gl=Object[U3],HE=H1.Symbol,pC=HE&&HE[U3],n5=H1.RangeError,o5=H1.TypeError,UD=H1.QObject,x3=zk.f,YE=$k.f,xS=Xk.f,s5=MD.f,a5=hC([].push),Su=kD("symbols"),fC=kD("op-symbols"),A5=kD("wks"),FS=!UD||!UD[U3]||!UD[U3].findChild,c5=function(t,s,c){var u=x3(Gl,s);return u&&delete Gl[s],YE(t,s,c),u&&t!==Gl&&YE(Gl,s,u),t},xD=Dd&&qk(function(){return CC(YE({},"a",{get:function(){return YE(this,"a",{value:7}).a}})).a!==7})?c5:YE,GS=function(t,s){var c=Su[t]=CC(pC);return Ht(c,{type:Y0,tag:t,description:s}),Dd||(c.description=s),c},F3=function(t,s,c){t===Gl&&F3(fC,s,c),PS(t);var u=IC(s);return PS(c),Za(Su,u)?(("enumerable"in c?!c.enumerable:!Za(t,u)||Za(t,yA)&&t[yA][u])?(Za(t,yA)||YE(t,yA,LD(1,CC(null))),t[yA][u]=!0):(Za(t,yA)&&t[yA][u]&&(t[yA][u]=!1),c=CC(c,{enumerable:LD(0,!1)})),xD(t,u,c)):YE(t,u,c)},FD=function(t,s){PS(t);var c=VE(s),u=Wk(c).concat(d5(c));return P3(u,function(h){Dd&&!EC(GD,c,h)||F3(t,h,c[h])}),t},GD=function(t){var s=IC(t),c=EC(s5,this,s);return!(this===Gl&&Za(Su,s)&&!Za(fC,s))&&(!(c||!Za(this,s)||!Za(Su,s)||Za(this,yA)&&this[yA][s])||c)},l5=function(t,s){var c=VE(t),u=IC(s);if(c!==Gl||!Za(Su,u)||Za(fC,u)){var h=x3(c,u);return!h||!Za(Su,u)||Za(c,yA)&&c[yA][u]||(h.enumerable=!0),h}},VD=function(t){var s=xS(VE(t)),c=[];return P3(s,function(u){Za(Su,u)||Za(US,u)||a5(c,u)}),c},d5=function(t){var s=t===Gl,c=xS(s?fC:VE(t)),u=[];return P3(c,function(h){!Za(Su,h)||s&&!Za(Gl,h)||a5(u,Su[h])}),u};Bu||(HE=function(){if(mc(pC,this))throw new o5("Symbol is not a constructor");var t=arguments.length&&arguments[0]!==void 0?lj(arguments[0]):void 0,s=e5(t),c=function(u){var h=this===void 0?H1:this;h===Gl&&EC(c,fC,u),Za(h,yA)&&Za(h[yA],s)&&(h[yA][s]=!1);var _=LD(1,u);try{xD(h,s,_)}catch(B){if(!(B instanceof n5))throw B;c5(h,s,_)}};return Dd&&FS&&xD(Gl,s,{configurable:!0,set:c}),GS(s,t)},KE(pC=HE[U3],"toString",function(){return Fn(this).tag}),KE(HE,"withoutSetter",function(t){return GS(e5(t),t)}),MD.f=GD,$k.f=F3,k3.f=FD,zk.f=l5,dj.f=Xk.f=VD,uj.f=d5,gj.f=function(t){return GS(t5(t),t)},Dd&&Zk(pC,"description",{configurable:!0,get:function(){return Fn(this).description}})),gC({global:!0,wrap:!0,forced:!Bu,sham:!Bu},{Symbol:HE}),P3(Wk(A5),function(t){r5(t)}),gC({target:Y0,stat:!0,forced:!Bu},{useSetter:function(){FS=!0},useSimple:function(){FS=!1}}),gC({target:"Object",stat:!0,forced:!Bu,sham:!Dd},{create:function(t,s){return s===void 0?CC(t):FD(CC(t),s)},defineProperty:F3,defineProperties:FD,getOwnPropertyDescriptor:l5}),gC({target:"Object",stat:!0,forced:!Bu},{getOwnPropertyNames:VD}),Ej(),i5(HE,Y0),US[yA]=!0;var u5=Ns&&!!Symbol.for&&!!Symbol.keyFor,hj=In,g5=Me,Ij=Xs,E5=h1,h5=uu,Cj=u5,KD=h5("string-to-symbol-registry"),I5=h5("symbol-to-string-registry");hj({target:"Symbol",stat:!0,forced:!Cj},{for:function(t){var s=E5(t);if(Ij(KD,s))return KD[s];var c=g5("Symbol")(s);return KD[s]=c,I5[c]=s,c}});var pj=In,fj=Xs,_j=oA,mj=Mo,Bj=u5,C5=uu("symbol-to-string-registry");pj({target:"Symbol",stat:!0,forced:!Bj},{keyFor:function(t){if(!_j(t))throw new TypeError(mj(t)+" is not a symbol");if(fj(C5,t))return C5[t]}});var p5=Tn,f5=gg.get,HD=j,Sj=Xs,VS=SyntaxError,_5=parseInt,Rj=String.fromCharCode,yj=HD("".charAt),YD=HD("".slice),m5=HD(/./.exec),B5={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "},S5=/^[\da-f]{4}$/i,Qj=/^[\u0000-\u001F]$/,R5=!S(function(){var t="9007199254740993",s=JSON.rawJSON(t);return!JSON.isRawJSON(s)||JSON.stringify(s)!==t}),_C=In,y5=Me,Q5=De,T5=vt,j0=j,w5=S,ha=p0,KS=ye,Tj=function(t){if(!p5(t))return!1;var s=f5(t);return!!s&&s.type==="RawJSON"},v5=oA,D5=He,b5=h1,wj=yE,vj=function(t,s){for(var c=!0,u="";st.length)&&(s=t.length);for(var c=0,u=new Array(s);cQ){var H=$S(U/10);return H===0?D:H<=Q?u[H-1]===void 0?ZS(O,1):u[H-1]+ZS(O,1):D}P=u[U-1]}return P===void 0?"":P})},lJ=Po("replace"),dJ=TypeError,Eb=eR("".indexOf),uJ=eR("".replace),hb=eR("".slice),sP=Math.max;nJ({target:"String",proto:!0},{replaceAll:function(t,s){var c,u,h,_,B,Q,T,D,O,P,U=gb(this),H=0,$="";if(oJ(t)){if((c=sJ(t))&&(u=X0(gb(AJ(t))),!~Eb(u,"g")))throw new dJ("`.replaceAll` does not allow non-global regexes");if(h=aJ(t,lJ))return nP(h,t,U,s);if(c)return uJ(X0(U),t,s)}for(_=X0(U),B=X0(t),(Q=oP(s))||(s=X0(s)),T=B.length,D=sP(1,T),O=Eb(_,B);O!==-1;)P=Q?X0(s(B,O,_)):cJ(B,_,O,[],void 0,s),$+=hb(_,H,O)+P,H=O+T,O=O+D>_.length?-1:Eb(_,B,O+D);return H<_.length&&($+=hb(_,H)),$}});var gJ=E1("String","replaceAll"),EJ=W,Ib=gJ,Cb=String.prototype,hJ=function(t){var s=t.replaceAll;return typeof t=="string"||t===Cb||EJ(Cb,t)&&s===Cb.replaceAll?Ib:s},aP=f(hJ),pb=ee;In({global:!0,forced:pb.globalThis!==pb},{globalThis:pb});var yu=f(ee),fb={exports:{}};(function(t,s){(function(c,u){var h="function",_="undefined",B="object",Q="string",T="major",D="model",O="name",P="type",U="vendor",H="version",$="architecture",Z="console",te="mobile",se="tablet",ge="smarttv",me="wearable",Qe="embedded",Oe="Amazon",we="Apple",Ne="ASUS",et="BlackBerry",st="Browser",Xt="Chrome",lr="Firefox",ft="Google",Ir="Huawei",ui="LG",Nr="Microsoft",Ki="Motorola",it="Opera",mt="Samsung",Gt="Sharp",at="Sony",ie="Xiaomi",Te="Zebra",ke="Facebook",_t="Chromium OS",Ar="Mac OS",ni=function(ho){for(var To={},On=0;On0?es.length===2?typeof es[1]==h?this[es[0]]=es[1].call(this,Xa):this[es[0]]=es[1]:es.length===3?typeof es[1]!==h||es[1].exec&&es[1].test?this[es[0]]=Xa?Xa.replace(es[1],es[2]):u:this[es[0]]=Xa?es[1].call(this,Xa,es[2]):u:es.length===4&&(this[es[0]]=Xa?es[3].call(this,Xa.replace(es[1],es[2])):u):this[es]=Xa||u;Ol+=2}},_s=function(ho,To){for(var On in To)if(typeof To[On]===B&&To[On].length>0){for(var la=0;la2&&(Ri[D]="iPad",Ri[P]=se),Ri},this.getEngine=function(){var Ri={};return Ri[O]=u,Ri[H]=u,a1.call(Ri,la,es.engine),Ri},this.getOS=function(){var Ri={};return Ri[O]=u,Ri[H]=u,a1.call(Ri,la,es.os),!Ri[O]&&lu&&lu.platform!="Unknown"&&(Ri[O]=lu.platform.replace(/chrome os/i,_t).replace(/macos/i,Ar)),Ri},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return la},this.setUA=function(Ri){return la=typeof Ri===Q&&Ri.length>350?Nl(Ri,350):Ri,this},this.setUA(la),this};UA.VERSION="0.7.34",UA.BROWSER=ni([O,H,T]),UA.CPU=ni([$]),UA.DEVICE=ni([D,U,P,Z,te,ge,se,me,Qe]),UA.ENGINE=UA.OS=ni([O,H]),t.exports&&(s=t.exports=UA),s.UAParser=UA;var xs=typeof c!==_&&(c.jQuery||c.Zepto);if(xs&&!xs.ua){var Ec=new UA;xs.ua=Ec.getResult(),xs.ua.get=function(){return Ec.getUA()},xs.ua.set=function(ho){Ec.setUA(ho);var To=Ec.getResult();for(var On in To)xs.ua[On]=To[On]}}})(typeof window=="object"?window:I)})(fb,fb.exports);var IJ=f(fb.exports),AP=fg.clear;In({global:!0,bind:!0,forced:ee.clearImmediate!==AP},{clearImmediate:AP});var tf=ee,cP=De,lP=ye,CJ=kT,dP=Kt,_b=yE,uP=QE,pJ=tf.Function,gP=/MSIE .\./.test(dP)||CJ==="BUN"&&function(){var t=tf.Bun.version.split(".");return t.length<3||t[0]==="0"&&(t[1]<3||t[1]==="3"&&t[2]==="0")}(),EP=In,z0=ee,mb=fg.set,rf=function(t,s){var c=1;return gP?function(u,h){var _=uP(arguments.length,1)>c,B=lP(u)?u:pJ(u),Q=_?_b(arguments,c):[],T=_?function(){cP(B,this,Q)}:B;return t(T)}:t},hP=z0.setImmediate?rf(mb):mb;EP({global:!0,bind:!0,forced:z0.setImmediate!==hP},{setImmediate:hP});var IP=f(Zn.setImmediate),Ae=ee,CP=CM,fJ=Io,Bb=QE,Sb=Yt;In({global:!0,dontCallGetSet:!0,forced:S(function(){return Sb&&Object.getOwnPropertyDescriptor(Ae,"queueMicrotask").value.length!==1})},{queueMicrotask:function(t){Bb(arguments.length,1),CP(fJ(t))}});var pP=f(Zn.queueMicrotask);function fP(t,s){return function(){return t.apply(s,arguments)}}const _J=Object.prototype.toString,nf=Object.getPrototypeOf,sf=Symbol.iterator,YA=Symbol.toStringTag,af=(Rb=Object.create(null),t=>{const s=_J.call(t);return Rb[s]||(Rb[s]=s.slice(8,-1).toLowerCase())});var Rb;const bd=t=>(t=t.toLowerCase(),s=>af(s)===t),Af=t=>s=>typeof s===t,SC=Array.isArray,RC=Af("undefined");function cf(t){return t!==null&&!RC(t)&&t.constructor!==null&&!RC(t.constructor)&&Sc(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const _P=bd("ArrayBuffer"),mJ=Af("string"),Sc=Af("function"),yb=Af("number"),yC=t=>t!==null&&typeof t=="object",tR=t=>{if(af(t)!=="object")return!1;const s=nf(t);return!(s!==null&&s!==Object.prototype&&Object.getPrototypeOf(s)!==null||YA in t||sf in t)},rR=bd("Date"),mP=bd("File"),BP=bd("Blob"),lf=bd("FileList"),SP=yu!==void 0?yu:typeof self<"u"?self:typeof window<"u"?window:typeof commonjsGlobal<"u"?commonjsGlobal:{},RP=SP.FormData!==void 0?SP.FormData:void 0,BJ=bd("URLSearchParams"),iR=ir(["ReadableStream","Request","Response","Headers"].map(bd),4),yP=iR[0],SJ=iR[1],RJ=iR[2],yJ=iR[3];function df(t,s){let c,u,h=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}).allOwnKeys,_=h!==void 0&&h;if(t!=null)if(typeof t!="object"&&(t=[t]),SC(t))for(c=0,u=t.length;c0;)if(u=c[h],s===u.toLowerCase())return u;return null}const XE=yu!==void 0?yu:typeof self<"u"?self:typeof window<"u"?window:commonjsGlobal,TP=t=>!RC(t)&&t!==XE,wP=(nR=typeof Uint8Array<"u"&&nf(Uint8Array),t=>nR&&t instanceof nR);var nR;const QJ=bd("HTMLFormElement"),Qb=(t=>{let s=Object.prototype.hasOwnProperty;return(c,u)=>s.call(c,u)})(),TJ=bd("RegExp"),oR=(t,s)=>{const c=Object.getOwnPropertyDescriptors(t),u={};df(c,(h,_)=>{let B;(B=s(h,_,t))!==!1&&(u[_]=B||h)}),Object.defineProperties(t,u)},sR=bd("AsyncFunction"),aR=(vP=typeof IP=="function",Tb=Sc(XE.postMessage),vP?IP:Tb?(wb="axios@".concat(Math.random()),AR=[],XE.addEventListener("message",t=>{let s=t.source,c=t.data;s===XE&&c===wb&&AR.length&&AR.shift()()},!1),t=>{AR.push(t),XE.postMessage(wb,"*")}):t=>setTimeout(t));var vP,Tb,wb,AR;const wJ=pP!==void 0?pP.bind(XE):typeof process<"u"&&process.nextTick||aR;var yt={isArray:SC,isArrayBuffer:_P,isBuffer:cf,isFormData:t=>{if(!t)return!1;if(RP&&t instanceof RP)return!0;const s=nf(t);if(!s||s===Object.prototype||!Sc(t.append))return!1;const c=af(t);return c==="formdata"||c==="object"&&Sc(t.toString)&&t.toString()==="[object FormData]"},isArrayBufferView:function(t){let s;return s=typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&_P(t.buffer),s},isString:mJ,isNumber:yb,isBoolean:t=>t===!0||t===!1,isObject:yC,isPlainObject:tR,isEmptyObject:t=>{if(!yC(t)||cf(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},isReadableStream:yP,isRequest:SJ,isResponse:RJ,isHeaders:yJ,isUndefined:RC,isDate:rR,isFile:mP,isReactNativeBlob:t=>!(!t||t.uri===void 0),isReactNative:t=>t&&t.getParts!==void 0,isBlob:BP,isRegExp:TJ,isFunction:Sc,isStream:t=>yC(t)&&Sc(t.pipe),isURLSearchParams:BJ,isTypedArray:wP,isFileList:lf,forEach:df,merge:function t(){const s=TP(this)&&this||{},c=s.caseless,u=s.skipUndefined,h={},_=(D,O)=>{if(O==="__proto__"||O==="constructor"||O==="prototype")return;const P=c&&QP(h,O)||O,U=Qb(h,P)?h[P]:void 0;tR(U)&&tR(D)?h[P]=t(U,D):tR(D)?h[P]=t({},D):SC(D)?h[P]=D.slice():u&&RC(D)||(h[P]=D)};for(var B=arguments.length,Q=new Array(B),T=0;T{c&&Sc(u)?Object.defineProperty(t,h,{__proto__:null,value:fP(u,c),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,h,{__proto__:null,value:u,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:(arguments.length>3&&arguments[3]!==void 0?arguments[3]:{}).allOwnKeys}),t},trim:t=>Ga(t)?Ga(t).call(t):t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),inherits:(t,s,c,u)=>{t.prototype=Object.create(s.prototype,u),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:s.prototype}),c&&Object.assign(t.prototype,c)},toFlatObject:(t,s,c,u)=>{let h,_,B;const Q={};if(s=s||{},t==null)return s;do{for(h=Object.getOwnPropertyNames(t),_=h.length;_-- >0;)B=h[_],u&&!u(B,t,s)||Q[B]||(s[B]=t[B],Q[B]=!0);t=c!==!1&&nf(t)}while(t&&(!c||c(t,s))&&t!==Object.prototype);return s},kindOf:af,kindOfTest:bd,endsWith:(t,s,c)=>{t=String(t),(c===void 0||c>t.length)&&(c=t.length),c-=s.length;const u=t.indexOf(s,c);return u!==-1&&u===c},toArray:t=>{if(!t)return null;if(SC(t))return t;let s=t.length;if(!yb(s))return null;const c=new Array(s);for(;s-- >0;)c[s]=t[s];return c},forEachEntry:(t,s)=>{const c=(t&&t[sf]).call(t);let u;for(;(u=c.next())&&!u.done;){const h=u.value;s.call(t,h[0],h[1])}},matchAll:(t,s)=>{let c;const u=[];for(;(c=t.exec(s))!==null;)u.push(c);return u},isHTMLForm:QJ,hasOwnProperty:Qb,hasOwnProp:Qb,reduceDescriptors:oR,freezeMethods:t=>{oR(t,(s,c)=>{var u;if(Sc(t)&&Et(u=["arguments","caller","callee"]).call(u,c))return!1;const h=t[c];Sc(h)&&(s.enumerable=!1,"writable"in s?s.writable=!1:s.set||(s.set=()=>{throw Error("Can not rewrite read-only method '"+c+"'")}))})},toObjectSet:(t,s)=>{const c={},u=h=>{h.forEach(_=>{c[_]=!0})};return SC(t)?u(t):u(String(t).split(s)),c},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(s,c,u){return c.toUpperCase()+u}),noop:()=>{},toFiniteNumber:(t,s)=>t!=null&&Number.isFinite(t=+t)?t:s,findKey:QP,global:XE,isContextDefined:TP,isSpecCompliantForm:function(t){return!!(t&&Sc(t.append)&&t[YA]==="FormData"&&t[sf])},toJSONObject:t=>{const s=new WeakSet,c=u=>{if(yC(u)){if(s.has(u))return;if(cf(u))return u;if(!("toJSON"in u)){s.add(u);const h=SC(u)?[]:{};return df(u,(_,B)=>{const Q=c(_);!RC(Q)&&(h[B]=Q)}),s.delete(u),h}}return u};return c(t)},isAsyncFn:sR,isThenable:t=>t&&(yC(t)||Sc(t))&&Sc(t.then)&&Sc(t.catch),setImmediate:aR,asap:wJ,isIterable:t=>t!=null&&Sc(t[sf])};const vJ=yt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),DJ=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),DP=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function uf(t,s){return yt.isArray(t)?t.map(c=>uf(c,s)):function(c){let u=0,h=c.length;for(;uu;){const _=c.charCodeAt(h-1);if(_!==9&&_!==32)break;h-=1}return u===0&&h===c.length?c:c.slice(u,h)}(String(t).replace(s,""))}const vb=t=>uf(t,DJ),bJ=t=>uf(t,DP);function Db(t){const s=Object.create(null);return yt.forEach(t.toJSON(),(c,u)=>{s[u]=bJ(c)}),s}const QC=Symbol("internals");function zE(t){var s;return t&&Ga(s=String(t)).call(s).toLowerCase()}function TC(t){return t===!1||t==null?t:yt.isArray(t)?t.map(TC):vb(String(t))}function wC(t,s,c,u,h){return yt.isFunction(u)?u.call(this,s,c):(h&&(s=c),yt.isString(s)?yt.isString(u)?s.indexOf(u)!==-1:yt.isRegExp(u)?u.test(s):void 0:void 0)}class Rc{constructor(s){s&&this.set(s)}set(s,c,u){const h=this;function _(T,D,O){const P=zE(D);if(!P)throw new Error("header name must be a non-empty string");const U=yt.findKey(h,P);(!U||h[U]===void 0||O===!0||O===void 0&&h[U]!==!1)&&(h[U||D]=TC(T))}const B=(T,D)=>yt.forEach(T,(O,P)=>_(O,P,D));if(yt.isPlainObject(s)||s instanceof this.constructor)B(s,c);else if(yt.isString(s)&&(s=Ga(s).call(s))&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(Ga(Q=s).call(Q)))B((T=>{const D={};let O,P,U;return T&&T.split(` +`).forEach(function(H){var $,Z;U=H.indexOf(":"),O=Ga($=H.substring(0,U)).call($).toLowerCase(),P=Ga(Z=H.substring(U+1)).call(Z),!O||D[O]&&vJ[O]||(O==="set-cookie"?D[O]?D[O].push(P):D[O]=[P]:D[O]=D[O]?D[O]+", "+P:P)}),D})(s),c);else if(yt.isObject(s)&&yt.isIterable(s)){let T,D,O={};for(const P of s){if(!yt.isArray(P))throw TypeError("Object iterator must return a key-value pair");O[D=P[0]]=(T=O[D])?yt.isArray(T)?[...T,P[1]]:[T,P[1]]:P[1]}B(O,c)}else s!=null&&_(c,s,u);var Q;return this}get(s,c){if(s=zE(s)){const u=yt.findKey(this,s);if(u){const h=this[u];if(!c)return h;if(c===!0)return function(_){const B=Object.create(null),Q=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let T;for(;T=Q.exec(_);)B[T[1]]=T[2];return B}(h);if(yt.isFunction(c))return c.call(this,h,u);if(yt.isRegExp(c))return c.exec(h);throw new TypeError("parser must be boolean|regexp|function")}}}has(s,c){if(s=zE(s)){const u=yt.findKey(this,s);return!(!u||this[u]===void 0||c&&!wC(0,this[u],u,c))}return!1}delete(s,c){const u=this;let h=!1;function _(B){if(B=zE(B)){const Q=yt.findKey(u,B);!Q||c&&!wC(0,u[Q],Q,c)||(delete u[Q],h=!0)}}return yt.isArray(s)?s.forEach(_):_(s),h}clear(s){const c=Object.keys(this);let u=c.length,h=!1;for(;u--;){const _=c[u];s&&!wC(0,this[_],_,s,!0)||(delete this[_],h=!0)}return h}normalize(s){const c=this,u={};return yt.forEach(this,(h,_)=>{var B;const Q=yt.findKey(u,_);if(Q)return c[Q]=TC(h),void delete c[_];const T=s?function(D){return Ga(D).call(D).toLowerCase().replace(/([a-z\d])(\w*)/g,(O,P,U)=>P.toUpperCase()+U)}(_):Ga(B=String(_)).call(B);T!==_&&delete c[_],c[T]=TC(h),u[T]=!0}),this}concat(){for(var s=arguments.length,c=new Array(s),u=0;u{u!=null&&u!==!1&&(c[h]=s&&yt.isArray(u)?u.join(", "):u)}),c}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(s=>{let c=ir(s,2);return c[0]+": "+c[1]}).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(s){return s instanceof this?s:new this(s)}static concat(s){const c=new this(s);for(var u=arguments.length,h=new Array(u>1?u-1:0),_=1;_c.set(B)),c}static accessor(s){const c=(this[QC]=this[QC]={accessors:{}}).accessors,u=this.prototype;function h(_){const B=zE(_);c[B]||(function(Q,T){const D=yt.toCamelCase(" "+T);["get","set","has"].forEach(O=>{Object.defineProperty(Q,O+D,{__proto__:null,value:function(P,U,H){return this[O].call(this,T,P,U,H)},configurable:!0})})}(u,_),c[B]=!0)}return yt.isArray(s)?s.forEach(h):h(s),this}}Rc.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),yt.reduceDescriptors(Rc.prototype,(t,s)=>{let c=t.value,u=s[0].toUpperCase()+s.slice(1);return{get:()=>c,set(h){this[u]=h}}}),yt.freezeMethods(Rc);var yc=Rc;const bP="[REDACTED ****]";function vC(t,s){const c=new Set(s.map(_=>String(_).toLowerCase())),u=[],h=_=>{if(_===null||typeof _!="object"||yt.isBuffer(_))return _;if(u.indexOf(_)!==-1)return;let B;if(_ instanceof yc&&(_=_.toJSON()),u.push(_),yt.isArray(_))B=[],_.forEach((T,D)=>{const O=h(T);yt.isUndefined(O)||(B[D]=O)});else{if(!yt.isPlainObject(_)&&function(T){if(yt.hasOwnProp(T,"toJSON"))return!0;let D=Object.getPrototypeOf(T);for(;D&&D!==Object.prototype;){if(yt.hasOwnProp(D,"toJSON"))return!0;D=Object.getPrototypeOf(D)}return!1}(_))return u.pop(),_;B=Object.create(null);for(const T of Object.entries(_)){var Q=ir(T,2);const D=Q[0],O=Q[1],P=c.has(D.toLowerCase())?bP:h(O);yt.isUndefined(P)||(B[D]=P)}}return u.pop(),B};return h(t)}class TA extends Error{static from(s,c,u,h,_,B){const Q=new TA(s.message,c||s.code,u,h,_);return Q.cause=s,Q.name=s.name,s.status!=null&&Q.status==null&&(Q.status=s.status),B&&Object.assign(Q,B),Q}constructor(s,c,u,h,_){super(s),Object.defineProperty(this,"message",{__proto__:null,value:s,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,c&&(this.code=c),u&&(this.config=u),h&&(this.request=h),_&&(this.response=_,this.status=_.status)}toJSON(){const s=this.config,c=s&&yt.hasOwnProp(s,"redact")?s.redact:void 0,u=yt.isArray(c)&&c.length>0?vC(s,c):yt.toJSONObject(s);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:u,code:this.code,status:this.status}}}TA.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",TA.ERR_BAD_OPTION="ERR_BAD_OPTION",TA.ECONNABORTED="ECONNABORTED",TA.ETIMEDOUT="ETIMEDOUT",TA.ECONNREFUSED="ECONNREFUSED",TA.ERR_NETWORK="ERR_NETWORK",TA.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",TA.ERR_DEPRECATED="ERR_DEPRECATED",TA.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",TA.ERR_BAD_REQUEST="ERR_BAD_REQUEST",TA.ERR_CANCELED="ERR_CANCELED",TA.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",TA.ERR_INVALID_URL="ERR_INVALID_URL",TA.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";var qi=TA;function cR(t){return yt.isPlainObject(t)||yt.isArray(t)}function bb(t){return yt.endsWith(t,"[]")?t.slice(0,-2):t}function Ob(t,s,c){return t?t.concat(s).map(function(u,h){return u=bb(u),!c&&h?"["+u+"]":u}).join(c?".":""):s}const NJ=yt.toFlatObject(yt,{},null,function(t){return/^is[A-Z]/.test(t)});function gf(t,s,c){if(!yt.isObject(t))throw new TypeError("target must be an object");s=s||new FormData;const u=(c=yt.toFlatObject(c,{metaTokens:!0,dots:!1,indexes:!1},!1,function($,Z){return!yt.isUndefined(Z[$])})).metaTokens,h=c.visitor||P,_=c.dots,B=c.indexes,Q=c.Blob||typeof Blob<"u"&&Blob,T=c.maxDepth===void 0?100:c.maxDepth,D=Q&&yt.isSpecCompliantForm(s);if(!yt.isFunction(h))throw new TypeError("visitor must be a function");function O($){if($===null)return"";if(yt.isDate($))return $.toISOString();if(yt.isBoolean($))return $.toString();if(!D&&yt.isBlob($))throw new qi("Blob is not supported. Use a Buffer instead.");return yt.isArrayBuffer($)||yt.isTypedArray($)?D&&typeof Blob=="function"?new Blob([$]):Buffer.from($):$}function P($,Z,te){let se=$;if(yt.isReactNative(s)&&yt.isReactNativeBlob($))return s.append(Ob(te,Z,_),O($)),!1;if($&&!te&&typeof $=="object"){if(yt.endsWith(Z,"{}"))Z=u?Z:Z.slice(0,-2),$=JSON.stringify($);else if(yt.isArray($)&&function(ge){return yt.isArray(ge)&&!ge.some(cR)}($)||(yt.isFileList($)||yt.endsWith(Z,"[]"))&&(se=yt.toArray($)))return Z=bb(Z),se.forEach(function(ge,me){!yt.isUndefined(ge)&&ge!==null&&s.append(B===!0?Ob([Z],me,_):B===null?Z:Z+"[]",O(ge))}),!1}return!!cR($)||(s.append(Ob(te,Z,_),O($)),!1)}const U=[],H=Object.assign(NJ,{defaultVisitor:P,convertValue:O,isVisitable:cR});if(!yt.isObject(t))throw new TypeError("data must be an object");return function $(Z,te){let se=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(!yt.isUndefined(Z)){if(se>T)throw new qi("Object is too deeply nested ("+se+" levels). Max depth: "+T,qi.ERR_FORM_DATA_DEPTH_EXCEEDED);if(U.indexOf(Z)!==-1)throw Error("Circular reference detected in "+te.join("."));U.push(Z),yt.forEach(Z,function(ge,me){(!(yt.isUndefined(ge)||ge===null)&&h.call(s,ge,yt.isString(me)?Ga(me).call(me):me,te,H))===!0&&$(ge,te?te.concat(me):[me],se+1)}),U.pop()}}(t),s}function Lb(t){const s={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(c){return s[c]})}function Ef(t,s){this._pairs=[],t&&gf(t,this,s)}const Mb=Ef.prototype;function $0(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function kb(t,s,c){if(!s)return t;const u=c&&c.encode||$0,h=yt.isFunction(c)?{serialize:c}:c,_=h&&h.serialize;let B;if(B=_?_(s,h):yt.isURLSearchParams(s)?s.toString():new Ef(s,h).toString(u),B){const Q=t.indexOf("#");Q!==-1&&(t=t.slice(0,Q)),t+=(t.indexOf("?")===-1?"?":"&")+B}return t}Mb.append=function(t,s){this._pairs.push([t,s])},Mb.toString=function(t){const s=t?function(c){return t.call(this,c,Lb)}:Lb;return this._pairs.map(function(c){return s(c[0])+"="+s(c[1])},"").join("&")};var NP=class{constructor(){this.handlers=[]}use(t,s,c){return this.handlers.push({fulfilled:t,rejected:s,synchronous:!!c&&c.synchronous,runWhen:c?c.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){yt.forEach(this.handlers,function(s){s!==null&&t(s)})}},Pb={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},lR={exports:{}},OP=In,OJ=Yt,dR=Gs.f;OP({target:"Object",stat:!0,forced:Object.defineProperty!==dR,sham:!OJ},{defineProperty:dR});var wA=Zn.Object,hf=lR.exports=function(t,s,c){return wA.defineProperty(t,s,c)};wA.defineProperty.sham&&(hf.sham=!0);var ri=f(lR.exports),Z0=f(dC.f("iterator"));function $E(t){return $E=typeof WE=="function"&&typeof Z0=="symbol"?function(s){return typeof s}:function(s){return s&&typeof WE=="function"&&s.constructor===WE&&s!==WE.prototype?"symbol":typeof s},$E(t)}var Ub=f(dC.f("toPrimitive"));function uR(t){var s=function(c,u){if($E(c)!=="object"||c===null)return c;var h=c[Ub];if(h!==void 0){var _=h.call(c,u);if($E(_)!=="object")return _;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(c)}(t,"string");return $E(s)==="symbol"?s:String(s)}function ae(t,s,c){return(s=uR(s))in t?ri(t,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):t[s]=c,t}var LP=f(JH),LJ={isBrowser:!0,classes:{URLSearchParams:LP!==void 0?LP:Ef,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]};const gR=typeof window<"u"&&typeof document<"u",ER=typeof navigator=="object"&&navigator||void 0,MP=gR&&(!ER||["ReactNative","NativeScript","NS"].indexOf(ER.product)<0),hR=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",MJ=gR&&window.location.href||"http://localhost";function xb(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Fb(t){for(var s=1;s=c.length;return B=!B&&yt.isArray(h)?h.length:B,T?(yt.hasOwnProp(h,B)?h[B]=yt.isArray(h[B])?h[B].concat(u):[h[B],u]:h[B]=u,!Q):(yt.hasOwnProp(h,B)&&yt.isObject(h[B])||(h[B]=[]),s(c,u,h[B],_)&&yt.isArray(h[B])&&(h[B]=function(D){const O={},P=Object.keys(D);let U;const H=P.length;let $;for(U=0;U{s(function(_){return YP(yt).call(yt,/\w+|\[(\w*)]/g,_).map(B=>B[0]==="[]"?"":B[1]||B[0])}(u),h,c,0)}),c}return null}const ol=(t,s)=>t!=null&&yt.hasOwnProp(t,s)?t[s]:void 0,mf={transitional:Pb,adapter:["xhr","http","fetch"],transformRequest:[function(t,s){const c=s.getContentType()||"",u=c.indexOf("application/json")>-1,h=yt.isObject(t);if(h&&yt.isHTMLForm(t)&&(t=new FormData(t)),yt.isFormData(t))return u?JSON.stringify(_R(t)):t;if(yt.isArrayBuffer(t)||yt.isBuffer(t)||yt.isStream(t)||yt.isFile(t)||yt.isBlob(t)||yt.isReadableStream(t))return t;if(yt.isArrayBufferView(t))return t.buffer;if(yt.isURLSearchParams(t))return s.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let _;if(h){const B=ol(this,"formSerializer");if(c.indexOf("application/x-www-form-urlencoded")>-1)return kJ(t,B).toString();if((_=yt.isFileList(t))||c.indexOf("multipart/form-data")>-1){const Q=ol(this,"env"),T=Q&&Q.FormData;return gf(_?{"files[]":t}:t,T&&new T,B)}}return h||u?(s.setContentType("application/json",!1),function(B,Q,T){if(yt.isString(B))try{return(Q||JSON.parse)(B),Ga(yt).call(yt,B)}catch(D){if(D.name!=="SyntaxError")throw D}return(T||JSON.stringify)(B)}(t)):t}],transformResponse:[function(t){const s=ol(this,"transitional")||mf.transitional,c=s&&s.forcedJSONParsing,u=ol(this,"responseType"),h=u==="json";if(yt.isResponse(t)||yt.isReadableStream(t))return t;if(t&&yt.isString(t)&&(c&&!u||h)){const _=!(s&&s.silentJSONParsing)&&h;try{return JSON.parse(t,ol(this,"parseReviver"))}catch(B){if(_)throw B.name==="SyntaxError"?qi.from(B,qi.ERR_BAD_RESPONSE,this,null,ol(this,"response")):B}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:jA.classes.FormData,Blob:jA.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};yt.forEach(["delete","get","head","post","put","patch","query"],t=>{mf.headers[t]={}});var mR=mf;function BR(t,s){const c=this||mR,u=s||c,h=yc.from(u.headers);let _=u.data;return yt.forEach(t,function(B){_=B.call(c,_,h.normalize(),s?s.status:void 0)}),h.normalize(),_}function jb(t){return!(!t||!t.__CANCEL__)}var r2=class extends qi{constructor(t,s,c){super(t??"canceled",qi.ERR_CANCELED,s,c),this.name="CanceledError",this.__CANCEL__=!0}};function ZE(t,s,c){const u=c.config.validateStatus;c.status&&u&&!u(c.status)?s(new qi("Request failed with status code "+c.status,c.status>=400&&c.status<500?qi.ERR_BAD_REQUEST:qi.ERR_BAD_RESPONSE,c.config,c.request,c)):t(c)}const Bf=function(t,s){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:3,u=0;const h=function(_,B){_=_||10;const Q=new Array(_),T=new Array(_);let D,O=0,P=0;return B=B!==void 0?B:1e3,function(U){const H=Date.now(),$=T[P];D||(D=H),Q[O]=U,T[O]=H;let Z=P,te=0;for(;Z!==O;)te+=Q[Z++],Z%=_;if(O=(O+1)%_,O===P&&(P=(P+1)%_),H-D1&&arguments[1]!==void 0?arguments[1]:Date.now(),Q=null,T&&(clearTimeout(T),T=null),_(...U)};return[function(){const U=Date.now(),H=U-D;for(var $=arguments.length,Z=new Array($),te=0;te<$;te++)Z[te]=arguments[te];H>=O?P(Z,U):(Q=Z,T||(T=setTimeout(()=>{T=null,P(Q)},O-H)))},()=>Q&&P(Q)]}(_=>{if(!_||typeof _.loaded!="number")return;const B=_.loaded,Q=_.lengthComputable?_.total:void 0,T=Q!=null?Math.min(B,Q):B,D=Math.max(0,T-u),O=h(D);u=Math.max(u,T),t({loaded:T,total:Q,progress:Q?T/Q:void 0,bytes:D,rate:O||void 0,estimated:O&&Q?(Q-T)/O:void 0,event:_,lengthComputable:Q!=null,[s?"download":"upload"]:!0})},c)},i2=(t,s)=>{const c=t!=null;return[u=>s[0]({lengthComputable:c,total:t,loaded:u}),s[1]]},SR=t=>function(){for(var s=arguments.length,c=new Array(s),u=0;ut(...c))};var jP=jA.hasStandardBrowserEnv?((t,s)=>c=>(c=new b3(c,jA.origin),t.protocol===c.protocol&&t.host===c.host&&(s||t.port===c.port)))(new b3(jA.origin),jA.navigator&&/(msie|trident)/i.test(jA.navigator.userAgent)):()=>!0,Hl=jA.hasStandardBrowserEnv?{write(t,s,c,u,h,_,B){if(typeof document>"u")return;const Q=["".concat(t,"=").concat(encodeURIComponent(s))];yt.isNumber(c)&&Q.push("expires=".concat(new Date(c).toUTCString())),yt.isString(u)&&Q.push("path=".concat(u)),yt.isString(h)&&Q.push("domain=".concat(h)),_===!0&&Q.push("secure"),yt.isString(B)&&Q.push("SameSite=".concat(B)),document.cookie=Q.join("; ")},read(t){if(typeof document>"u")return null;const s=document.cookie.split(";");for(let c=0;cnull,remove(){}};function Jb(t,s,c){let u=!function(h){return typeof h=="string"&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(h)}(s);return t&&(u||c===!1)?function(h,_){return _?h.replace(/\/?\/$/,"")+"/"+_.replace(/^\/+/,""):h}(t,s):s}function qb(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function RR(t){for(var s=1;st instanceof yc?RR({},t):t;function Ld(t,s){s=s||{};const c=Object.create(null);function u(D,O,P,U){return yt.isPlainObject(D)&&yt.isPlainObject(O)?yt.merge.call({caseless:U},D,O):yt.isPlainObject(O)?yt.merge({},O):yt.isArray(O)?O.slice():O}function h(D,O,P,U){return yt.isUndefined(O)?yt.isUndefined(D)?void 0:u(void 0,D,0,U):u(D,O,0,U)}function _(D,O){if(!yt.isUndefined(O))return u(void 0,O)}function B(D,O){return yt.isUndefined(O)?yt.isUndefined(D)?void 0:u(void 0,D):u(void 0,O)}function Q(D,O,P){return yt.hasOwnProp(s,P)?u(D,O):yt.hasOwnProp(t,P)?u(void 0,D):void 0}Object.defineProperty(c,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});const T={url:_,method:_,data:_,baseURL:B,transformRequest:B,transformResponse:B,paramsSerializer:B,timeout:B,timeoutMessage:B,withCredentials:B,withXSRFToken:B,adapter:B,responseType:B,xsrfCookieName:B,xsrfHeaderName:B,onUploadProgress:B,onDownloadProgress:B,decompress:B,maxContentLength:B,maxBodyLength:B,beforeRedirect:B,transport:B,httpAgent:B,httpsAgent:B,cancelToken:B,socketPath:B,allowedSocketPaths:B,responseEncoding:B,validateStatus:Q,headers:(D,O,P)=>h(Od(D),Od(O),0,!0)};return yt.forEach(Object.keys(RR(RR({},t),s)),function(D){if(D==="__proto__"||D==="constructor"||D==="prototype")return;const O=yt.hasOwnProp(T,D)?T[D]:h,P=O(yt.hasOwnProp(t,D)?t[D]:void 0,yt.hasOwnProp(s,D)?s[D]:void 0,D);yt.isUndefined(P)&&O!==Q||(c[D]=P)}),c}const bC=["content-type","content-length"];var Hr=t=>{const s=Ld({},t),c=H=>yt.hasOwnProp(s,H)?s[H]:void 0,u=c("data");let h=c("withXSRFToken");const _=c("xsrfHeaderName"),B=c("xsrfCookieName");let Q=c("headers");const T=c("auth"),D=c("baseURL"),O=c("allowAbsoluteUrls"),P=c("url");var U;if(s.headers=Q=yc.from(Q),s.url=kb(Jb(D,P,O),t.params,t.paramsSerializer),T&&Q.set("Authorization","Basic "+btoa((T.username||"")+":"+(T.password?(U=T.password,encodeURIComponent(U).replace(/%([0-9A-F]{2})/gi,(H,$)=>String.fromCharCode(parseInt($,16)))):""))),yt.isFormData(u)&&(jA.hasStandardBrowserEnv||jA.hasStandardBrowserWebWorkerEnv?Q.setContentType(void 0):yt.isFunction(u.getHeaders)&&function(H,$,Z){Z==="content-only"?Object.entries($).forEach(te=>{let se=ir(te,2),ge=se[0],me=se[1];Et(bC).call(bC,ge.toLowerCase())&&H.set(ge,me)}):H.set($)}(Q,u.getHeaders(),c("formDataHeaderPolicy"))),jA.hasStandardBrowserEnv&&(yt.isFunction(h)&&(h=h(s)),h===!0||h==null&&jP(s.url))){const H=_&&B&&Hl.read(B);H&&Q.set(_,H)}return s},JP=typeof XMLHttpRequest<"u"&&function(t){return new Ut(function(s,c){var u;const h=Hr(t);let _=h.data;const B=yc.from(h.headers).normalize();let Q,T,D,O,P,U=h.responseType,H=h.onUploadProgress,$=h.onDownloadProgress;function Z(){O&&O(),P&&P(),h.cancelToken&&h.cancelToken.unsubscribe(Q),h.signal&&h.signal.removeEventListener("abort",Q)}let te=new XMLHttpRequest;function se(){if(!te)return;const Oe=yc.from("getAllResponseHeaders"in te&&te.getAllResponseHeaders());ZE(function(we){s(we),Z()},function(we){c(we),Z()},{data:U&&U!=="text"&&U!=="json"?te.response:te.responseText,status:te.status,statusText:te.statusText,headers:Oe,config:t,request:te}),te=null}if(te.open(h.method.toUpperCase(),h.url,!0),te.timeout=h.timeout,"onloadend"in te?te.onloadend=se:te.onreadystatechange=function(){te&&te.readyState===4&&(te.status!==0||te.responseURL&&te.responseURL.startsWith("file:"))&&setTimeout(se)},te.onabort=function(){te&&(c(new qi("Request aborted",qi.ECONNABORTED,t,te)),Z(),te=null)},te.onerror=function(Oe){const we=Oe&&Oe.message?Oe.message:"Network Error",Ne=new qi(we,qi.ERR_NETWORK,t,te);Ne.event=Oe||null,c(Ne),Z(),te=null},te.ontimeout=function(){let Oe=h.timeout?"timeout of "+h.timeout+"ms exceeded":"timeout exceeded";const we=h.transitional||Pb;h.timeoutErrorMessage&&(Oe=h.timeoutErrorMessage),c(new qi(Oe,we.clarifyTimeoutError?qi.ETIMEDOUT:qi.ECONNABORTED,t,te)),Z(),te=null},_===void 0&&B.setContentType(null),"setRequestHeader"in te&&yt.forEach(Db(B),function(Oe,we){te.setRequestHeader(we,Oe)}),yt.isUndefined(h.withCredentials)||(te.withCredentials=!!h.withCredentials),U&&U!=="json"&&(te.responseType=h.responseType),$){var ge=ir(Bf($,!0),2);D=ge[0],P=ge[1],te.addEventListener("progress",D)}if(H&&te.upload){var me=ir(Bf(H),2);T=me[0],O=me[1],te.upload.addEventListener("progress",T),te.upload.addEventListener("loadend",O)}(h.cancelToken||h.signal)&&(Q=Oe=>{te&&(c(!Oe||Oe.type?new r2(null,t,te):Oe),te.abort(),Z(),te=null)},h.cancelToken&&h.cancelToken.subscribe(Q),h.signal&&(h.signal.aborted?Q():h.signal.addEventListener("abort",Q)));const Qe=function(Oe){const we=/^([-+\w]{1,25}):(?:\/\/)?/.exec(Oe);return we&&we[1]||""}(h.url);!Qe||Et(u=jA.protocols).call(u,Qe)?te.send(_||null):c(new qi("Unsupported protocol "+Qe+":",qi.ERR_BAD_REQUEST,t))})},Ot=(t,s)=>{if(t=t?t.filter(Boolean):[],!s&&!t.length)return;const c=new AbortController;let u=!1;const h=function(T){if(!u){u=!0,B();const D=T instanceof Error?T:this.reason;c.abort(D instanceof qi?D:new r2(D instanceof Error?D.message:D))}};let _=s&&setTimeout(()=>{_=null,h(new qi("timeout of ".concat(s,"ms exceeded"),qi.ETIMEDOUT))},s);const B=()=>{t&&(_&&clearTimeout(_),_=null,t.forEach(T=>{T.unsubscribe?T.unsubscribe(h):T.removeEventListener("abort",h)}),t=null)};t.forEach(T=>T.addEventListener("abort",h));const Q=c.signal;return Q.unsubscribe=()=>yt.asap(B),Q},fe=f(e6),nt=dC.f("asyncIterator"),Yl=f(nt);function zo(t,s){this.v=t,this.k=s}function Rn(t){var s,c;function u(_,B){try{var Q=t[_](B),T=Q.value,D=T instanceof zo;fe.resolve(D?T.v:T).then(function(O){if(D){var P=_==="return"?"return":"next";if(!T.k||O.done)return u(P,O);O=t[P](O).value}h(Q.done?"return":"normal",O)},function(O){u("throw",O)})}catch(O){h("throw",O)}}function h(_,B){switch(_){case"return":s.resolve({value:B,done:!0});break;case"throw":s.reject(B);break;default:s.resolve({value:B,done:!1})}(s=s.next)?u(s.key,s.arg):c=null}this._invoke=function(_,B){return new fe(function(Q,T){var D={key:_,arg:B,resolve:Q,reject:T,next:null};c?c=c.next=D:(s=c=D,u(_,B))})},typeof t.return!="function"&&(this.return=void 0)}function AA(t){return function(){return new Rn(t.apply(this,arguments))}}function Tr(t){return new zo(t,0)}function Qc(t){var s={},c=!1;function u(h,_){return c=!0,{done:!1,value:new zo(_=new fe(function(B){B(t[h](_))}),1)}}return s[WE!==void 0&&Z0||"@@iterator"]=function(){return this},s.next=function(h){return c?(c=!1,h):u("next",h)},typeof t.throw=="function"&&(s.throw=function(h){if(c)throw c=!1,h;return u("throw",h)}),typeof t.return=="function"&&(s.return=function(h){return c?(c=!1,h):u("return",h)}),s}Rn.prototype[typeof WE=="function"&&Yl||"@@asyncIterator"]=function(){return this},Rn.prototype.next=function(t){return this._invoke("next",t)},Rn.prototype.throw=function(t){return this._invoke("throw",t)},Rn.prototype.return=function(t){return this._invoke("return",t)};var mo=f(nt);function yR(t){var s,c,u,h=2;for(typeof Symbol<"u"&&(c=mo,u=Symbol.iterator);h--;){if(c&&(s=t[c])!=null)return s.call(t);if(u&&(s=t[u])!=null)return new Sf(s.call(t));c="@@asyncIterator",u="@@iterator"}throw new TypeError("Object is not async iterable")}function Sf(t){function s(c){if(Object(c)!==c)return Ut.reject(new TypeError(c+" is not an object."));var u=c.done;return Ut.resolve(c.value).then(function(h){return{value:h,done:u}})}return Sf=function(c){this.s=c,this.n=c.next},Sf.prototype={s:null,n:null,next:function(){return s(this.n.apply(this.s,arguments))},return:function(c){var u=this.s.return;return u===void 0?Ut.resolve({value:c,done:!0}):s(u.apply(this.s,arguments))},throw:function(c){var u=this.s.return;return u===void 0?Ut.reject(c):s(u.apply(this.s,arguments))}},new Sf(t)}const qP=function*(t,s){let c=t.byteLength;if(!s||c{const h=Rf(t,s);let _,B=0,Q=T=>{_||(_=!0,u&&u(T))};return new ReadableStream({async pull(T){try{const D=await h.next(),O=D.done,P=D.value;if(O)return Q(),void T.close();let U=P.byteLength;if(c){let H=B+=U;c(H)}T.enqueue(new Uint8Array(P))}catch(D){throw Q(D),D}},cancel:T=>(Q(T),h.return())},{highWaterMark:2})},yf="1.16.1";function zb(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function QR(t){for(var s=1;s1?s-1:0),u=1;u{const s=yt.global!==void 0&&yt.global!==null?yt.global:yu,c=s.ReadableStream,u=s.TextEncoder,h=t=yt.merge.call({skipUndefined:!0},{Request:s.Request,Response:s.Response},t),_=h.fetch,B=h.Request,Q=h.Response,T=_?io(_):typeof fetch=="function",D=io(B),O=io(Q);if(!T)return!1;const P=T&&io(c),U=T&&(typeof u=="function"?(H=new u,ge=>H.encode(ge)):async ge=>new Uint8Array(await new B(ge).arrayBuffer()));var H;const $=D&&P&&NC(()=>{let ge=!1;const me=new B(jA.origin,{body:new c,method:"POST",get duplex(){return ge=!0,"half"}}),Qe=me.headers.has("Content-Type");return me.body!=null&&me.body.cancel(),ge&&!Qe}),Z=O&&P&&NC(()=>yt.isReadableStream(new Q("").body)),te={stream:Z&&(ge=>ge.body)};T&&["text","arrayBuffer","blob","formData","stream"].forEach(ge=>{!te[ge]&&(te[ge]=(me,Qe)=>{let Oe=me&&me[ge];if(Oe)return Oe.call(me);throw new qi("Response type '".concat(ge,"' is not supported"),qi.ERR_NOT_SUPPORT,Qe)})});const se=async(ge,me)=>{const Qe=yt.toFiniteNumber(ge.getContentLength());return Qe??(async Oe=>Oe==null?0:yt.isBlob(Oe)?Oe.size:yt.isSpecCompliantForm(Oe)?(await new B(jA.origin,{method:"POST",body:Oe}).arrayBuffer()).byteLength:yt.isArrayBufferView(Oe)||yt.isArrayBuffer(Oe)?Oe.byteLength:(yt.isURLSearchParams(Oe)&&(Oe+=""),yt.isString(Oe)?(await U(Oe)).byteLength:void 0))(me)};return async ge=>{let me=Hr(ge),Qe=me.url,Oe=me.method,we=me.data,Ne=me.signal,et=me.cancelToken,st=me.timeout,Xt=me.onDownloadProgress,lr=me.onUploadProgress,ft=me.responseType,Ir=me.headers,ui=me.withCredentials,Nr=ui===void 0?"same-origin":ui,Ki=me.fetchOptions,it=me.maxContentLength,mt=me.maxBodyLength;const Gt=yt.isNumber(it)&&it>-1,at=yt.isNumber(mt)&&mt>-1;let ie=_||fetch;ft=ft?(ft+"").toLowerCase():"text";let Te=Ot([Ne,et&&et.toAbortSignal()],st),ke=null;const _t=Te&&Te.unsubscribe&&(()=>{Te.unsubscribe()});let Ar;try{if(Gt&&typeof Qe=="string"&&Qe.startsWith("data:")&&function(c1){if(!c1||typeof c1!="string"||!c1.startsWith("data:"))return 0;const Id=c1.indexOf(",");if(Id<0)return 0;const UA=c1.slice(5,Id),xs=c1.slice(Id+1);if(/;base64/i.test(UA)){let ho=xs.length;const To=xs.length;for(let Ri=0;Ri=48&&Xa<=57||Xa>=65&&Xa<=70||Xa>=97&&Xa<=102)&&(Ol>=48&&Ol<=57||Ol>=65&&Ol<=70||Ol>=97&&Ol<=102)&&(ho-=2,Ri+=2)}let On=0,la=To-1;const lu=Ri=>Ri>=2&&xs.charCodeAt(Ri-2)===37&&xs.charCodeAt(Ri-1)===51&&(xs.charCodeAt(Ri)===68||xs.charCodeAt(Ri)===100);la>=0&&(xs.charCodeAt(la)===61?(On++,la--):lu(la)&&(On++,la-=3)),On===1&&la>=0&&(xs.charCodeAt(la)===61||lu(la))&&On++;const es=3*Math.floor(ho/4)-(On||0);return es>0?es:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(xs,"utf8");let Ec=0;for(let ho=0,To=xs.length;ho=55296&&On<=56319&&ho+1=56320&&la<=57343?(Ec+=4,ho++):Ec+=3}else Ec+=3}return Ec}(Qe)>it)throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke);if(at&&Oe!=="get"&&Oe!=="head"){const _s=await se(Ir,we);if(typeof _s=="number"&&isFinite(_s)&&_s>mt)throw new qi("Request body larger than maxBodyLength limit",qi.ERR_BAD_REQUEST,ge,ke)}if(lr&&$&&Oe!=="get"&&Oe!=="head"&&(Ar=await se(Ir,we))!==0){let _s,c1=new B(Qe,{method:"POST",body:we,duplex:"half"});if(yt.isFormData(we)&&(_s=c1.headers.get("content-type"))&&Ir.setContentType(_s),c1.body){const Id=ir(i2(Ar,Bf(SR(lr))),2),UA=Id[0],xs=Id[1];we=Xb(c1.body,65536,UA,xs)}}yt.isString(Nr)||(Nr=Nr?"include":"omit");const ni=D&&"credentials"in B.prototype;if(yt.isFormData(we)){const _s=Ir.getContentType();_s&&/^multipart\/form-data/i.test(_s)&&!/boundary=/i.test(_s)&&Ir.delete("content-type")}Ir.set("User-Agent","axios/"+yf,!1);const Ds=QR(QR({},Ki),{},{signal:Te,method:Oe.toUpperCase(),headers:Db(Ir.normalize()),body:we,duplex:"half",credentials:ni?Nr:void 0});ke=D&&new B(Qe,Ds);let Wo=await(D?ie(ke,Ki):ie(Qe,Ds));if(Gt){const _s=yt.toFiniteNumber(Wo.headers.get("content-length"));if(_s!=null&&_s>it)throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke)}const Nl=Z&&(ft==="stream"||ft==="response");if(Z&&Wo.body&&(Xt||Gt||Nl&&_t)){const _s={};["status","statusText","headers"].forEach(To=>{_s[To]=Wo[To]});const c1=yt.toFiniteNumber(Wo.headers.get("content-length")),Id=ir(Xt&&i2(c1,Bf(SR(Xt),!0))||[],2),UA=Id[0],xs=Id[1];let Ec=0;const ho=To=>{if(Gt&&(Ec=To,Ec>it))throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke);UA&&UA(To)};Wo=new Q(Xb(Wo.body,65536,ho,()=>{xs&&xs(),_t&&_t()}),_s)}ft=ft||"text";let a1=await te[yt.findKey(te,ft)||"text"](Wo,ge);if(Gt&&!Z&&!Nl){let _s;if(a1!=null&&(typeof a1.byteLength=="number"?_s=a1.byteLength:typeof a1.size=="number"?_s=a1.size:typeof a1=="string"&&(_s=typeof u=="function"?new u().encode(a1).byteLength:a1.length)),typeof _s=="number"&&_s>it)throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke)}return!Nl&&_t&&_t(),await new Ut((_s,c1)=>{ZE(_s,c1,{data:a1,headers:yc.from(Wo.headers),status:Wo.status,statusText:Wo.statusText,config:ge,request:ke})})}catch(ni){if(_t&&_t(),Te&&Te.aborted&&Te.reason instanceof qi){const Ds=Te.reason;throw Ds.config=ge,ke&&(Ds.request=ke),ni!==Ds&&(Ds.cause=ni),Ds}throw ni&&ni.name==="TypeError"&&/Load failed|fetch/i.test(ni.message)?Object.assign(new qi("Network Error",qi.ERR_NETWORK,ge,ke,ni&&ni.response),{cause:ni.cause||ni}):qi.from(ni,ni&&ni.code,ge,ke,ni&&ni.response)}}},Co=new Map,Gn=t=>{let s=t&&t.env||{};const c=s.fetch,u=[s.Request,s.Response,c];let h,_,B=u.length,Q=Co;for(;B--;)h=u[B],_=Q.get(h),_===void 0&&Q.set(h,_=B?new Map:WP(s)),Q=_;return _};Gn();const TR={http:null,xhr:JP,fetch:{get:Gn}};yt.forEach(TR,(t,s)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:s})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:s})}});const XP=t=>"- ".concat(t),bi=t=>yt.isFunction(t)||t===null||t===!1;var eh={getAdapter:function(t,s){const c=(t=yt.isArray(t)?t:[t]).length;let u,h;const _={};for(let B=0;B{let D=ir(T,2),O=D[0],P=D[1];return"adapter ".concat(O," ")+(P===!1?"is not supported by the environment":"is not available in the build")});let Q=c?B.length>1?`since : +`+B.map(XP).join(` +`):" "+XP(B[0]):"as no adapter specified";throw new qi("There is no suitable adapter to dispatch the request "+Q,"ERR_NOT_SUPPORT")}return h},adapters:TR};function wR(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new r2(null,t)}function n2(t){return wR(t),t.headers=yc.from(t.headers),t.data=BR.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),eh.getAdapter(t.adapter||mR.adapter,t)(t).then(function(s){wR(t),t.response=s;try{s.data=BR.call(t,t.transformResponse,s)}finally{delete t.response}return s.headers=yc.from(s.headers),s},function(s){if(!jb(s)&&(wR(t),s&&s.response)){t.response=s.response;try{s.response.data=BR.call(t,t.transformResponse,s.response)}finally{delete t.response}s.response.headers=yc.from(s.response.headers)}return Ut.reject(s)})}const OC={};["object","boolean","number","function","string","symbol"].forEach((t,s)=>{OC[t]=function(c){return typeof c===t||"a"+(s<1?"n ":" ")+t}});const si={};OC.transitional=function(t,s,c){function u(h,_){return"[Axios v"+yf+"] Transitional option '"+h+"'"+_+(c?". "+c:"")}return(h,_,B)=>{if(t===!1)throw new qi(u(_," has been removed"+(s?" in "+s:"")),qi.ERR_DEPRECATED);return s&&!si[_]&&(si[_]=!0,console.warn(u(_," has been deprecated since v"+s+" and will be removed in the near future"))),!t||t(h,_,B)}},OC.spelling=function(t){return(s,c)=>(console.warn("".concat(c," is likely a misspelling of ").concat(t)),!0)};var LC={assertOptions:function(t,s,c){if(typeof t!="object")throw new qi("options must be an object",qi.ERR_BAD_OPTION_VALUE);const u=Object.keys(t);let h=u.length;for(;h-- >0;){const _=u[h],B=Object.prototype.hasOwnProperty.call(s,_)?s[_]:void 0;if(B){const Q=t[_],T=Q===void 0||B(Q,_,t);if(T!==!0)throw new qi("option "+_+" must be "+T,qi.ERR_BAD_OPTION_VALUE)}else if(c!==!0)throw new qi("Unknown option "+_,qi.ERR_BAD_OPTION)}},validators:OC};const xo=LC.validators;let Va=class{constructor(t){this.defaults=t||{},this.interceptors={request:new NP,response:new NP}}async request(t,s){try{return await this._request(t,s)}catch(c){if(c instanceof Error){let u={};Error.captureStackTrace?Error.captureStackTrace(u):u=new Error;const h=(()=>{if(!u.stack)return"";const _=u.stack.indexOf(` +`);return _===-1?"":u.stack.slice(_+1)})();try{if(c.stack){if(h){const _=h.indexOf(` +`),B=_===-1?-1:h.indexOf(` +`,_+1),Q=B===-1?"":h.slice(B+1);String(c.stack).endsWith(Q)||(c.stack+=` +`+h)}}else c.stack=h}catch{}}throw c}}_request(t,s){typeof t=="string"?(s=s||{}).url=t:s=t||{};const c=s=Ld(this.defaults,s),u=c.transitional,h=c.paramsSerializer,_=c.headers;u!==void 0&&LC.assertOptions(u,{silentJSONParsing:xo.transitional(xo.boolean),forcedJSONParsing:xo.transitional(xo.boolean),clarifyTimeoutError:xo.transitional(xo.boolean),legacyInterceptorReqResOrdering:xo.transitional(xo.boolean)},!1),h!=null&&(yt.isFunction(h)?s.paramsSerializer={serialize:h}:LC.assertOptions(h,{encode:xo.function,serialize:xo.function},!0)),s.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?s.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:s.allowAbsoluteUrls=!0),LC.assertOptions(s,{baseUrl:xo.spelling("baseURL"),withXsrfToken:xo.spelling("withXSRFToken")},!0),s.method=(s.method||this.defaults.method||"get").toLowerCase();let B=_&&yt.merge(_.common,_[s.method]);_&&yt.forEach(["delete","get","head","post","put","patch","query","common"],$=>{delete _[$]}),s.headers=yc.concat(B,_);const Q=[];let T=!0;this.interceptors.request.forEach(function($){if(typeof $.runWhen=="function"&&$.runWhen(s)===!1)return;T=T&&$.synchronous;const Z=s.transitional||Pb;Z&&Z.legacyInterceptorReqResOrdering?Q.unshift($.fulfilled,$.rejected):Q.push($.fulfilled,$.rejected)});const D=[];let O;this.interceptors.response.forEach(function($){D.push($.fulfilled,$.rejected)});let P,U=0;if(!T){const $=[n2.bind(this),void 0];for($.unshift(...Q),$.push(...D),P=$.length,O=Ut.resolve(s);U{if(!u._listeners)return;let _=u._listeners.length;for(;_-- >0;)u._listeners[_](h);u._listeners=null}),this.promise.then=h=>{let _;const B=new Ut(Q=>{u.subscribe(Q),_=Q}).then(h);return B.cancel=function(){u.unsubscribe(_)},B},s(function(h,_,B){u.reason||(u.reason=new r2(h,_,B),c(u.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(s){this.reason?s(this.reason):this._listeners?this._listeners.push(s):this._listeners=[s]}unsubscribe(s){if(!this._listeners)return;const c=this._listeners.indexOf(s);c!==-1&&this._listeners.splice(c,1)}toAbortSignal(){const s=new AbortController,c=u=>{s.abort(u)};return this.subscribe(c),s.signal.unsubscribe=()=>this.unsubscribe(c),s.signal}static source(){let s;return{token:new rs(function(u){s=u}),cancel:s}}}var Wn=rs;const JA={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(JA).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];JA[u]=c});var o2=JA;const Xi=function t(s){const c=new Tu(s),u=fP(Tu.prototype.request,c);return yt.extend(u,Tu.prototype,c,{allOwnKeys:!0}),yt.extend(u,c,null,{allOwnKeys:!0}),u.create=function(h){return t(Ld(s,h))},u}(mR);Xi.Axios=Tu,Xi.CanceledError=r2,Xi.CancelToken=Wn,Xi.isCancel=jb,Xi.VERSION=yf,Xi.toFormData=gf,Xi.AxiosError=qi,Xi.Cancel=Xi.CanceledError,Xi.all=function(t){return Ut.all(t)},Xi.spread=function(t){return function(s){return t.apply(null,s)}},Xi.isAxiosError=function(t){return yt.isObject(t)&&t.isAxiosError===!0},Xi.mergeConfig=Ld,Xi.AxiosHeaders=yc,Xi.formToJSON=t=>_R(yt.isHTMLForm(t)?new FormData(t):t),Xi.getAdapter=eh.getAdapter,Xi.HttpStatusCode=o2,Xi.default=Xi;var on=Xi;on.Axios,on.AxiosError,on.CanceledError,on.isCancel,on.CancelToken,on.VERSION,on.all,on.Cancel,on.isAxiosError,on.spread,on.toFormData,on.AxiosHeaders,on.HttpStatusCode,on.formToJSON,on.getAdapter,on.mergeConfig,on.create;const zP=()=>{};function s2(){const t={promise:void 0,isResolved:!1,isRejected:!1,isFinished:!1,resolve:void 0,reject:void 0,cancel:zP};return t.promise=new Ut((s,c)=>{t.resolve=u=>{t.isFinished||(t.isResolved=!0,t.isFinished=!0,s(u),t.value=u)},t.reject=u=>{t.isFinished||(t.isRejected=!0,t.isFinished=!0,c(u))}}),t}const vR=new Map,DR=new Map,sl=new Map;let ns=function(t){return t.WIN_10="Windows 10",t.WIN_81="Windows 8.1",t.WIN_8="Windows 8",t.WIN_7="Windows 7",t.WIN_VISTA="Windows Vista",t.WIN_SERVER_2003="Windows Server 2003",t.WIN_XP="Windows XP",t.WIN_2000="Windows 2000",t.ANDROID="Android",t.HARMONY_OS="HarmonyOS",t.OPEN_BSD="Open BSD",t.SUN_OS="Sun OS",t.LINUX="Linux",t.IOS="iOS",t.MAC_OS="Mac OS",t.CHROMIUM_OS="Chromium OS",t.QNX="QNX",t.UNIX="UNIX",t.BEOS="BeOS",t.OS_2="OS/2",t.SEARCH_BOT="Search Bot",t}({}),Fi=function(t){return t.CHROME="Chrome",t.SAFARI="Safari",t.EDGE="Edge",t.FIREFOX="Firefox",t.OPERA="OPR",t.QQ="QQBrowser",t.WECHAT="MicroMessenger",t}({});const no=new IJ;let qA=no.getResult(),bR=null;function Qi(t){if(!bR){qA=no.getResult();const s=function(Q){if(Q.engine.name==="Blink"&&Q.browser.name!=="WeChat")return Fi.CHROME;switch(Q.browser.name){case"Chrome Headless":case"Chrome":case"Chromium":return Fi.CHROME;case"Safari":case"Mobile Safari":return Fi.SAFARI;case"Edge":return Fi.EDGE;case"Firefox":return Fi.FIREFOX;case"QQ":case"QQBrowser":return Fi.QQ;case"Opera":return Fi.OPERA;case"WeChat":return Fi.WECHAT;default:return Q.browser.name||""}}(qA),c=th(qA),u=function(Q){return Q.os.name==="Windows"?Q.os.version?Q.os.name+" "+Q.os.version:Q.os.name:Q.os.name||""}(qA),h=qA.os.version,_=th(qA,!1),B=qA.device.type;if(!(s&&c&&u&&h))return{name:s,version:c,os:u,osVersion:h,browserVersion:_,deviceType:B};bR={name:s,version:c,os:u,osVersion:h,browserVersion:_,deviceType:B}}return bR}function th(t){let s,c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return s=t.engine.name==="Blink"?t.engine.version||"":t.browser.version||"",c?s.split(".")[0]:s}function Md(){return Qi().os}function $b(){const t=Qi();return"".concat(t.os," ").concat(t.osVersion)}function Qf(){const t=Qi();return!!(qA.engine.name==="WebKit"&&t.os===ns.MAC_OS&&navigator.maxTouchPoints&&navigator.maxTouchPoints>0&&t.name!==Fi.SAFARI||Ia()&&t.name!==Fi.SAFARI)}function DA(){return Qi().name===Fi.CHROME}function Zs(){return Qi().name===Fi.SAFARI}function Zb(){const t=Qi();if(t.name!==Fi.SAFARI||!t.browserVersion)return!1;const s=t.browserVersion.split(".");return Number(s[0])>15||Number(s[0])===15&&Number(s[1])>=4}function Ks(){const t=Qi();if(t.name!==Fi.SAFARI||!t.browserVersion)return!1;const s=t.browserVersion.split(".");return Number(s[0])>18||Number(s[0])===18&&Number(s[1])>=4}function yn(){return Qi().name===Fi.EDGE}function Ln(){return Qi().name===Fi.FIREFOX}function Ia(){return Qi().os===ns.IOS}function al(t){const s=Qi();return!(s.name!==Fi.CHROME||!s.osVersion)&&Number(s.version)>=t}function e4(t){const s=Qi();return!(s.name!==Fi.CHROME||!s.osVersion)&&Number(s.version)=s&&Number(u.version)<=c:Number(u.version)===s)}function wu(t){const s=Qi();return!(s.name!==Fi.EDGE||!s.osVersion)&&Number(s.version)>=t}function wf(t){const s=Qi();return!(s.name!==Fi.FIREFOX||!s.osVersion)&&Number(s.version)>=t}function a2(t){const s=Qi();return!(s.name!==Fi.SAFARI||!s.osVersion)&&Number(s.version)>=t}function vf(t,s,c){const u=Qi();if(u.os!==ns.IOS||!u.osVersion)return!1;const h=u.osVersion.split(".");return c?s&&Number(h[0])===t&&Number(h[1])>s||Number(h[0])>t:s?Number(h[0])===t&&Number(h[1])>=s||Number(h[0])>t:Number(h[0])>=t}function NR(t,s,c){const u=Qi();if(u.os!==ns.IOS||!u.osVersion)return!1;const h=u.osVersion.split(".");return c?s&&Number(h[0])===t&&Number(h[1])=t}function t4(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])<14||Number(s[0])===14&&Number(s[1])<=6}function Is(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])===15}function rh(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])===16}function os(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])===15&&Number(s[1])>=1}function Y1(){return Zs()&&navigator.maxTouchPoints>0}function jl(){return Qi().name===Fi.WECHAT}function bf(){return window.navigator.appVersion&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)!==null&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)[1]<=35}function OR(){const t=Md();return function(){const s=Qi().deviceType;return s==="mobile"||s==="tablet"}()||t===ns.ANDROID||t===ns.IOS||t===ns.HARMONY_OS}function Al(){const t=Qi();return t.name!==Fi.EDGE&&t.name!==Fi.SAFARI&&!!navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]./i)}function c2(){return Md()===ns.ANDROID}function l2(){const t=Qi();return c2()&&(t.name===Fi.CHROME||t.name===Fi.WECHAT||/chrome|chromium/i.test(navigator.userAgent))}function GJ(){var t;return!!Et(t=window.navigator.userAgent).call(t,"AgoraWebView")}function r4(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=Array(s);c1&&arguments[1]!==void 0?arguments[1]:"",c=arguments.length>2?arguments[2]:void 0;super(s),Dr(this,"code",void 0),Dr(this,"message",void 0),Dr(this,"data",void 0),Dr(this,"name","AgoraRTCException"),this.code=t,this.message="AgoraRTCError ".concat(this.code,": ").concat(s),this.data=c}toString(){return this.data?"".concat(this.message,` +data: `).concat(JSON.stringify(this.data)):this.message}print(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error",s=arguments.length>1?arguments[1]:void 0;return t==="error"&&(s||console).error(this.toString()),t==="warning"&&(s||console).warn(this.toString()),this}throw(t){throw this.print("error",t),this}};function ll(t,s){if(typeof t!="boolean")throw new tt(Ce.INVALID_PARAMS,"Invalid ".concat(s,": The value is of the boolean type."))}function As(t,s,c){if(!Et(c).call(c,t))throw new tt(Ce.INVALID_PARAMS,"".concat(s," can only be set as ").concat(JSON.stringify(c)))}function Vn(t,s){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1e4;if(tu||(!(arguments.length>4&&arguments[4]!==void 0)||arguments[4])&&!function(h){return typeof h=="number"&&h%1==0}(t))throw new tt(Ce.INVALID_PARAMS,"invalid ".concat(s,": the value range is [").concat(c,", ").concat(u,"]. integer only"))}function Nf(t,s){if(typeof t!="number"){if(!(t.min||t.max||t.ideal||t.exact))throw new tt(Ce.INVALID_PARAMS,"".concat(s," is not a valid ConstrainLong"));t.min!==void 0&&Vn(t.min,"".concat(s,".min"),0,1/0),t.max!==void 0&&Vn(t.max,"".concat(s,".max"),1,1/0),t.exact!==void 0&&Vn(t.exact,"".concat(s,".exact"),1,1/0),t.ideal!==void 0&&Vn(t.ideal,"".concat(s,".ideal"),1,1/0)}else Vn(t,s,1,1/0)}function Ra(t,s){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:255,h=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(t==null)throw new tt(Ce.INVALID_PARAMS,"".concat(s||"param"," cannot be empty"));if(!LR(t,c,u,h))throw new tt(Ce.INVALID_PARAMS,"Invalid ".concat(s||"string param",": Length of the string: [").concat(c,",").concat(u,"].").concat(h?" ASCII characters only.":""))}function j1(t,s){if(!Array.isArray(t))throw new tt(Ce.INVALID_PARAMS,"".concat(s," should be an array"))}function Bo(t){return t==null}function LR(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:255,u=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return typeof t=="string"&&t.length<=c&&t.length>=s&&(!u||function(h){if(typeof h!="string")return!1;for(let _=0;_255)return!1}return!0}(t))}function J1(t,s,c){if("getBigUint64"in DataView.prototype)return t.getBigUint64(s,c);const u=t.getUint32(s,c),h=t.getUint32(s+4,c),_=0,B=+!c;return BigInt(u*B+h*_)<>BigInt(32)),_=Number(c&BigInt(4294967295));t.setUint32(s,h,u),t.setUint32(s+4,_,u)}var wg=function(t){return t.COVERED="COVERED",t.POSITION="POSITION",t.SIZE="SIZE",t.STYLE="STYLE",t}(wg||{}),MR=function(t){return t.UNMOUNTED="UNMOUNTED",t.INVALID_HTML_ELEMENT="INVALID_HTML_ELEMENT",t}(MR||{});const $P=new class{constructor(){Dr(this,"_clientSize",null),Dr(this,"getClientWidth",()=>document.documentElement?document.documentElement.clientWidth:document.body.clientWidth),Dr(this,"getClientHeight",()=>document.documentElement?document.documentElement.clientHeight:document.body.clientHeight),Dr(this,"getStyle",t=>window.getComputedStyle(t,null)),Dr(this,"checkCssVisibleProperty",t=>{var s;let c=!0;const u=this.getStyle(t),h=u.display,_=u.visibility,B=u.opacity,Q=u.filter;return(h==="none"||Et(s=["hidden","collapse"]).call(s,_)||Number(B)<.1)&&(c=!1),!!c&&(Q&&Q.split(" ").filter(T=>{var D;const O=T.split("(")[0];return Et(D=["brightness","blur","opacity"]).call(D,O)}).map(T=>{const D=cl(T.split(/\(|\)/),2),O=D[0],P=D[1];return[O,Number(P.match(/^[0-9\.]+/))]}).forEach(T=>{const D=cl(T,2),O=D[0],P=D[1];switch(O){case"brightness":(P<.1||P>3)&&(c=!1);break;case"blur":P>3&&(c=!1);break;case"opacity":P<.1&&(c=!1)}}),c)}),Dr(this,"checkPropertyUpToAllParentNodes",(t,s)=>{let c=!0,u=!0;const h=B=>s(B);let _=t;for(;_&&u;)h(_)||(c=!1,u=!1),_=_.parentElement,_||(u=!1);return c}),Dr(this,"checkActualCssVisibleIncludeInherit",t=>this.checkPropertyUpToAllParentNodes(t,this.checkCssVisibleProperty)),Dr(this,"getSizeAboutClient",t=>{const s=t.getBoundingClientRect(),c=s.width,u=s.height,h=s.left,_=s.right,B=s.top,Q=s.bottom,T=this.getClientWidth(),D=this.getClientHeight();return{width:c,height:u,left:h,right:_,top:B,bottom:Q,clientWidth:T,clientHeight:D,clientMin:Math.min(T,D)}}),Dr(this,"checkActualSize",()=>{const t=this._clientSize,s=t.width,c=t.height,u=t.clientMin;return this.checkSizeIsVisible(s,c,u)}),Dr(this,"elementFromPoint",(t,s)=>document.elementFromPoint?document.elementFromPoint(t,s):null),Dr(this,"checkCoverForAPoint",(t,s,c)=>{const u=this.elementFromPoint(t,s);return u!==null&&u!==c}),Dr(this,"getPointPositionList",()=>{const t=this._clientSize,s=t.width,c=t.height,u=t.left,h=t.top,_=s/6,B=c/6,Q=[],T=10**6;for(let D=0;D<5;D++)for(let O=0;O<5;O++){const P=(u*T+(D===0?.1:D===4?(_*D*T-1e5)/T:_*D)*T)/T,U=(h*T+(O===0?.1:O===4?(B*O*T-1e5)/T:B*O)*T)/T;Q.push({x:P,y:U})}return[...Q]}),Dr(this,"checkElementCover",t=>this.getPointPositionList().map(s=>this.checkCoverForAPoint(s.x,s.y,t)).filter(s=>!!s).length>6),Dr(this,"checkSizeIsVisible",(t,s,c)=>(t>50||c/t<=10)&&(s>50||c/s<=10)),Dr(this,"checkSizeOfPartInClient",()=>{const t=this._clientSize,s=t.left,c=t.right,u=t.top,h=t.bottom,_=t.clientHeight,B=t.clientWidth,Q=t.clientMin;let T,D,O,P;if(s<0)T=0;else{if(!(s(this._clientSize=null,{visible:!1,reason:t})),Dr(this,"checkOneElementVisible",t=>{if(t instanceof HTMLElement){if(this.checkElementIsMountedOnDom(t)){if(this.checkActualCssVisibleIncludeInherit(t)){if(this._clientSize=this.getSizeAboutClient(t),this.checkElementCover(t))return this.returnHiddenResult(wg.COVERED);{const s=this.checkActualSize(),c=this.checkSizeOfPartInClient();return s&&!c?this.returnHiddenResult(wg.POSITION):s?(this._clientSize=null,{visible:!0}):this.returnHiddenResult(wg.SIZE)}}return this.returnHiddenResult(wg.STYLE)}return this.returnHiddenResult(MR.UNMOUNTED)}return this.returnHiddenResult(MR.INVALID_HTML_ELEMENT)}),Dr(this,"checkElementIsMountedOnDom",t=>this.checkPropertyUpToAllParentNodes(t,s=>s.nodeName.toUpperCase()!=="HTML"?s.parentElement!==null:!!document.documentElement))}};function MC(t){return new TextEncoder().encode(t)}const n4=function(t,s){const c=new Uint8Array(t.byteLength+s.byteLength);return c.set(new Uint8Array(t),0),c.set(new Uint8Array(s),t.byteLength),c},Of=async t=>function(s,c){let u="";return new Uint8Array(s).forEach(h=>{u+=h.toString(c).padStart(2,"0")}),u}(await crypto.subtle.digest("SHA-256",MC(t)),16);let Cn=class{constructor(){Dr(this,"_events",{}),Dr(this,"addListener",this.on)}getListeners(t){return this._events[t]?this._events[t].map(s=>s.listener):[]}on(t,s){this._events[t]||(this._events[t]=[]);const c=this._events[t];this._indexOfListener(c,s)===-1&&c.push({listener:s,once:!1})}once(t,s){this._events[t]||(this._events[t]=[]);const c=this._events[t];this._indexOfListener(c,s)===-1&&c.push({listener:s,once:!0})}off(t,s){if(!this._events[t])return;const c=this._events[t],u=this._indexOfListener(c,s);u!==-1&&c.splice(u,1),this._events[t].length===0&&delete this._events[t]}removeAllListeners(t){t?delete this._events[t]:this._events={}}emit(t){this._events[t]||(this._events[t]=[]);const s=this._events[t].map(_=>_);for(var c=arguments.length,u=new Array(c>1?c-1:0),h=1;h1?s-1:0),u=1;u{h.once&&this.off(t,h.listener);try{h.listener.apply(this,c)}catch(_){console.error("safeEmit event:".concat(t," error ").concat(_==null?void 0:_.toString()))}})}_indexOfListener(t,s){let c=t.length;for(;c--;)if(t[c].listener===s)return c;return-1}},u2=null;function ih(){if(u2)return u2;if(window.electron)return u2=window.electron;if(!window.require)return null;try{return u2=window.require("electron"),u2}catch{return null}}let Ti=function(t){return t.CREATE_CLIENT="createClient",t.CHECK_SYSTEM_REQUIREMENTS="checkSystemRequirements",t.SET_AREA="setArea",t.PRELOAD="PRELOAD",t.CHECK_VIDEO_TRACK_IS_ACTIVE="checkVideoTrackIsActive",t.CHECK_AUDIO_TRACK_IS_ACTIVE="checkAudioTrackIsActive",t.CREATE_MIC_AUDIO_TRACK="createMicrophoneAudioTrack",t.CREATE_CUSTOM_AUDIO_TRACK="createCustomAudioTrack",t.CREATE_BUFFER_AUDIO_TRACK="createBufferSourceAudioTrack",t.CREATE_CAM_VIDEO_TRACK="createCameraVideoTrack",t.CREATE_CUSTOM_VIDEO_TRACK="createCustomVideoTrack",t.CREATE_MIC_AND_CAM_TRACKS="createMicrophoneAndCameraTracks",t.CREATE_SCREEN_VIDEO_TRACK="createScreenVideoTrack",t.SET_ENCRYPTION_CONFIG="Client.setEncryptionConfig",t.START_PROXY_SERVER="Client.startProxyServer",t.STOP_PROXY_SERVER="Client.stopProxyServer",t.SET_PROXY_SERVER="Client.setProxyServer",t.SET_TURN_SERVER="Client.setTurnServer",t.SET_CLIENT_ROLE="Client.setClientRole",t.SET_LOW_STREAM_PARAMETER="Client.setLowStreamParameter",t.ENABLE_DUAL_STREAM="Client.enableDualStream",t.DISABLE_DUAL_STREAM="Client.disableDualStream",t.JOIN="Client.join",t.LEAVE="Client.leave",t.PUBLISH="Client.publish",t.UNPUBLISH="Client.unpublish",t.SUBSCRIBE="Client.subscribe",t.MASS_SUBSCRIBE="Client.massSubscribe",t.MASS_UNSUBSCRIBE="Client.massUnsubscribe",t.UNSUBSCRIBE="Client.unsubscribe",t.RENEW_TOKEN="Client.renewToken",t.SET_REMOTE_VIDEO_STREAM_TYPE="Client.setRemoteVideoStreamType",t.SET_STREAM_FALLBACK_OPTION="Client.setStreamFallbackOption",t.ENABLE_AUDIO_VOLUME_INDICATOR="Client.enableAudioVolumeIndicator",t.SEND_CUSTOM_REPORT_MESSAGE="Client.sendCustomReportMessage",t.INSPECT_VIDEO_CONTENT="Client.inspectVideoContent",t.STOP_INSPECT_VIDEO_CONTENT="Client.stopInspectVideoContent",t.JOIN_FALLBACK_TO_PROXY="Client._joinFallbackToProxy",t.ON_LIVE_STREAM_WARNING="Client.onLiveStreamWarning",t.ON_LIVE_STREAM_ERROR="Client.onLiveStreamingError",t.START_LIVE_STREAMING="Client.startLiveStreaming",t.SET_LIVE_TRANSCODING="Client.setLiveTranscoding",t.STOP_LIVE_STREAMING="Client.stopLiveStreaming",t.START_CHANNEL_MEDIA_RELAY="Client.startChannelMediaRelay",t.UPDATE_CHANNEL_MEDIA_RELAY="Client.updateChannelMediaRelay",t.STOP_CHANNEL_MEDIA_RELAY="Client.stopChannelMediaRelay",t.REQUEST_CONFIG_DISTRIBUTE="_config-distribute-request",t.SET_CONFIG_DISTRIBUTE="_configDistribute",t.LOCAL_TRACK_SET_MUTED="LocalTrack.setMute",t.LOCAL_AUDIO_TRACK_PLAY="LocalAudioTrack.play",t.LOCAL_AUDIO_TRACK_PLAY_IN_ELEMENT="LocalAudioTrack.playInElement",t.LOCAL_AUDIO_TRACK_STOP="LocalAudioTrack.stop",t.LOCAL_AUDIO_TRACK_SET_VOLUME="LocalAudioTrack.setVolume",t.MIC_AUDIO_TRACK_SET_DEVICE="MicrophoneAudioTrack.setDevice",t.BUFFER_AUDIO_TRACK_START="BufferSourceAudioTrack.startProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_STOP="BufferSourceAudioTrack.stopProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_PAUSE="BufferSourceAudioTrack.pauseProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_RESUME="BufferSourceAudioTrack.resumeProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_SEEK="BufferSourceAudioTrack.seekAudioBuffer",t.LOCAL_VIDEO_TRACK_PLAY="LocalVideoTrack.play",t.LOCAL_VIDEO_TRACK_STOP="LocalVideoTrack.stop",t.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE="LocalVideoTrack.getVideoElementVisibleStatus",t.LOCAL_VIDEO_TRACK_BEAUTY="LocalVideoTrack.setBeautyEffect",t.LOCAL_VIDEO_SEND_SEI_DATA="LocalVideoTrack.sendSeiData",t.CAM_VIDEO_TRACK_SET_DEVICE="CameraVideoTrack.setDevice",t.CAM_VIDEO_TRACK_SET_ENCODER_CONFIG="CameraVideoTrack.setEncoderConfiguration",t.REMOTE_VIDEO_TRACK_PLAY="RemoteVideoTrack.play",t.REMOTE_VIDEO_TRACK_STOP="RemoteVideoTrack.stop",t.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE="RemoteVideoTrack.getVideoElementVisibleStatus",t.REMOTE_AUDIO_TRACK_PLAY="RemoteAudioTrack.play",t.REMOTE_AUDIO_TRACK_STOP="RemoteAudioTrack.stop",t.REMOTE_AUDIO_SET_VOLUME="RemoteAudioTrack.setVolume",t.REMOTE_AUDIO_SET_OUTPUT_DEVICE="RemoteAudioTrack.setOutputDevice",t.GET_MEDIA_STREAM_TRACK="Track.getMediaStreamTrack",t.STREAM_TYPE_CHANGE="streamTypeChange",t.CONNECTION_STATE_CHANGE="connectionStateChange",t.LOAD_CONFIG_FROM_LOCALSTORAGE="loadConfigFromLocalStorage",t.IMAGE_MODERATION_UPLOAD="imageModerationUpload",t.REPUB_AFTER_PC_CONNECTED="repubAfterPCConnected",t.PRELOAD_MEDIA_FAILED="preloadMediaFailed",t.MISMATCH_DTLS_PARAMETERS="mismatchDtlsParameters",t.MISMATCH_ICE_PARAMETERS="mismatchIceParameters",t.VOS_FALLBACK_CN="vosFallbackCN",t.DATACHANNEL_FAILBACK="datachannelFailback",t}({}),vn=function(t){return t.TRACER="tracer",t}({});function kR(t){return Vn(t.timeout,"config.timeout",0,1e5),Vn(t.timeoutFactor,"config.timeoutFactor",0,100,!1),Vn(t.maxRetryCount,"config.maxRetryConfig",0,1/0),Vn(t.maxRetryTimeout,"config.maxRetryTimeout",0,1/0),!0}let o4=function(t){return t[t.AUDIENCE_LEVEL_LOW_LATENCY=1]="AUDIENCE_LEVEL_LOW_LATENCY",t[t.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY=2]="AUDIENCE_LEVEL_ULTRA_LOW_LATENCY",t[t.AUDIENCE_LEVEL_SYNC_LATENCY=3]="AUDIENCE_LEVEL_SYNC_LATENCY",t}({}),mi=function(t){return t.LEAVE="LEAVE",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.UID_BANNED="UID_BANNED",t.FALLBACK="FALLBACK",t.IP_BANNED="IP_BANNED",t.CHANNEL_BANNED="CHANNEL_BANNED",t.LICENSE_MISSING="LICENSE_MISSING",t.LICENSE_EXPIRED="LICENSE_EXPIRED",t.LICENSE_MINUTES_EXCEEDED="LICENSE_MINUTES_EXCEEDED",t.LICENSE_PERIOD_INVALID="LICENSE_PERIOD_INVALID",t.LICENSE_MULTIPLE_SDK_SERVICE="LICENSE_MULTIPLE_SDK_SERVICE",t.LICENSE_ILLEGAL="LICENSE_ILLEGAL",t.TOKEN_EXPIRE="TOKEN_EXPIRE",t.FALLBACK_TO_HLS="FALLBACK_TO_HLS",t.UID_CONFLICT="UID_CONFLICT",t}({});function zi(t){if(!Array.isArray(t)||t.length<1)return!1;try{t.forEach(s=>{if(!s.urls)throw Error()})}catch{return!1}return!0}function Mn(t){return Ra(t.turnServerURL,"turnServerURL"),Ra(t.username,"username"),Ra(t.password,"password"),t.udpport&&Vn(t.udpport,"udpport",1,99999,!0),t.forceturn&&ll(t.forceturn,"forceturn"),t.security&&ll(t.security,"security"),t.tcpport&&Vn(t.tcpport,"tcpport",1,99999,!0),!0}let Ie=function(t){return t[t.AUTO_SIMULCAST_STREAM=-1]="AUTO_SIMULCAST_STREAM",t[t.DISABLE_SIMULCAST_STREM=0]="DISABLE_SIMULCAST_STREM",t[t.ENABLE_SIMULCAST_STREAM=1]="ENABLE_SIMULCAST_STREAM",t}({});function PR(t){return t.level!==void 0&&As(t.level,"level",[1,2,3]),t.delay!==void 0&&Vn(t.delay,"delay",0,3e3,!0),!0}let Vr=function(t){return t.PEERCONNECTION_STATE_CHANGE="peerconnection-state-change",t.AUDIO_METADATA="audio-metadata",t.AUDIO_PTS="audio-pts",t.CONNECTION_STATE_CHANGE="connection-state-change",t.MEDIA_RECONNECT_START="media-reconnect-start",t.MEDIA_RECONNECT_END="media-reconnect-end",t.IS_USING_CLOUD_PROXY="is-using-cloud-proxy",t.USER_JOINED="user-joined",t.USER_LEAVED="user-left",t.USER_PUBLISHED="user-published",t.USER_UNPUBLISHED="user-unpublished",t.USER_INFO_UPDATED="user-info-updated",t.CLIENT_BANNED="client-banned",t.CHANNEL_MEDIA_RELAY_STATE="channel-media-relay-state",t.CHANNEL_MEDIA_RELAY_EVENT="channel-media-relay-event",t.VOLUME_INDICATOR="volume-indicator",t.CRYPT_ERROR="crypt-error",t.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="token-privilege-will-expire",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="token-privilege-did-expire",t.NETWORK_QUALITY="network-quality",t.STREAM_TYPE_CHANGED="stream-type-changed",t.STREAM_FALLBACK="stream-fallback",t.RECEIVE_METADATA="receive-metadata",t.STREAM_MESSAGE="stream-message",t.LIVE_STREAMING_ERROR="live-streaming-error",t.LIVE_STREAMING_WARNING="live-streaming-warning",t.EXCEPTION="exception",t.ERROR="error",t.P2P_LOST="p2p_lost",t.JOIN_FALLBACK_TO_PROXY="join-fallback-to-proxy",t.CHANNEL_FALLBACK_TO_WEBSOCKET="channel-fallback-to-websocket",t.MEDIA_CONNECTION_TYPE_CHANGE="media-connection-type-change",t.PUBLISHED_USER_LIST="published-user-list",t.USER_LIST="user-list",t.CONTENT_INSPECT_CONNECTION_STATE_CHANGE="content-inspect-connection-state-change",t.CONTENT_INSPECT_ERROR="content-inspect-error",t.CONTENT_INSPECT_RESULT="content-inspect-result",t.IMAGE_MODERATION_CONNECTION_STATE_CHANGE="image-moderation-connection-state-change",t.FALLBACK_TO_HLS="fallback-to-hls",t.FIRST_VIDEO_BUFFER_READY="first-video-buffer-ready",t.FIRST_VIDEO_PRE_RENDER="first-video-pre-render",t.AV1_DECODABLE_RESULT="av1-decodable-result",t}({}),Pr=function(t){return t.CONFIG="config",t.VOSERROR="vos_error",t.AP_ERROR="ap_error",t}({}),Ss=function(t){return t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.MULTI_IP="MULTI_IP",t.TIMEOUT="TIMEOUT",t.OFFLINE="OFFLINE",t.LEAVE="LEAVE",t.P2P_FAILED="P2P_FAILED",t.FALLBACK="FALLBACK",t.REGIONAL_DISTRIBUTION="REGIONAL_DISTRIBUTION",t}({}),tA=function(t){return t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({}),E2=function(t){return t.NETWORK_STATE_CHANGE="NETWORK_STATE_CHANGE",t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({});function $o(t,s){for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h{t.emit(s,...u,_,B)})}function sn(t,s){if(t.getListeners(s).length===0)return Ut.resolve();for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h2?c-2:0),h=2;h2?h-2:0),B=2;B{c=Q},Q=>{u=Q}),u!==null)throw u;if(c===null)throw new tt(Ce.UNEXPECTED_ERROR,"handler is not sync");return c}const ki=new class extends Cn{set networkState(t){this.emit(E2.NETWORK_STATE_CHANGE,t,this._networkState),t===tA.ONLINE?this.emit(E2.ONLINE):t===tA.OFFLINE&&(this.onlineWaiter=new Ut(s=>{this.once(E2.ONLINE,()=>{this.onlineWaiter=void 0,s(tA.ONLINE)})}),this.emit(E2.OFFLINE)),this._networkState=t}get networkState(){return this._networkState}get isOnline(){return this._networkState===tA.ONLINE}constructor(){super(),Dr(this,"_moduleName","network-indicator"),Dr(this,"_networkState",tA.ONLINE),Dr(this,"onlineWaiter",void 0),window.addEventListener("online",()=>{this.networkState=tA.ONLINE}),window.addEventListener("offline",()=>{this.networkState=tA.OFFLINE})}},ea=[];for(let t=0;t<256;++t)ea.push((t+256).toString(16).slice(1));const ZP=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);let s4;const VJ=new Uint8Array(16);function KJ(){return ZP?ZP():function(c,u,h){var _,B,Q,T;const D=(_=(B=(c=c||{}).random)!==null&&B!==void 0?B:(Q=(T=c).rng)===null||Q===void 0?void 0:Q.call(T))!==null&&_!==void 0?_:function(){if(!s4){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");s4=crypto.getRandomValues.bind(crypto)}return s4(VJ)}();if(D.length<16)throw new Error("Random bytes length must be >= 16");if(D[6]=15&D[6]|64,D[8]=63&D[8]|128,u){if((h=h||0)<0||h+16>u.length)throw new RangeError("UUID byte range ".concat(h,":").concat(h+15," is out of buffer bounds"));for(let O=0;O<16;++O)u[h+O]=D[O];return u}return function(O){let P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(ea[O[P+0]]+ea[O[P+1]]+ea[O[P+2]]+ea[O[P+3]]+"-"+ea[O[P+4]]+ea[O[P+5]]+"-"+ea[O[P+6]]+ea[O[P+7]]+"-"+ea[O[P+8]]+ea[O[P+9]]+"-"+ea[O[P+10]]+ea[O[P+11]]+ea[O[P+12]]+ea[O[P+13]]+ea[O[P+14]]+ea[O[P+15]]).toLowerCase()}(D)}(t,s,void 0);var t,s}function UR(t,s){const c=t.indexOf(s);c!==-1&&t.splice(c,1)}function oh(t){const s=[];return t.forEach(c=>{s.indexOf(c)===-1&&s.push(c)}),s}function xR(t){Ut!==void 0?Ut.resolve().then(t):setTimeout(t,0)}function go(t){return JSON.parse(JSON.stringify(t))}function Hs(t){try{return go(t)}catch{return t}}const ko={};function vg(t,s){ko[s]||(ko[s]=!0,t())}function Yr(t){const s=window.atob(t),c=new Uint8Array(new ArrayBuffer(s.length));for(let u=0;u1&&arguments[1]!==void 0?arguments[1]:16,c=new TextEncoder().encode(t);if(c.length>s)c=c.slice(0,s);else if(c.lengthB+Q.length,0),h=new Uint8Array(new ArrayBuffer(u));let _=0;return s.forEach(B=>{h.set(B,_),_+=B.length}),h}function vu(t){return window.TextEncoder?new TextEncoder().encode(t).length:t.length}function GR(t){let s=0;return(/DingTalk/i.test(navigator.userAgent)||/AliApp/i.test(navigator.userAgent))&&t.realFormData&&(t=t.realFormData),t.forEach(c=>{s+=typeof c=="string"?vu(c):c.size}),s+138}function eU(t){const s=new tt(Ce.TIMEOUT,"timeout");return new Ut((c,u)=>{window.setTimeout(()=>u(s),t)})}function so(t){return new Ut(s=>{window.setTimeout(s,t)})}function un(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:7,s=arguments.length>1?arguments[1]:void 0;const c=Math.random().toString(16).substr(2,t).toLowerCase();return c.length===t?"".concat(s).concat(c):"".concat(s).concat(c)+un(t-c.length,"")}function Pd(){let t,s=!1;try{var c;t=aP(c=KJ()).call(c,"-","")}catch{s=!0}return!s&&t&&t.length===32||(t=un(32,"")),t.toUpperCase()}const X=()=>{},A4=new class{constructor(){Dr(this,"fnMap",new Map)}throttleByKey(t,s,c,u){for(var h=arguments.length,_=new Array(h>4?h-4:0),B=4;B{const D=this.fnMap.get(s);D&&D.fn(...D.args),this.fnMap.delete(s)},c);this.fnMap.set(s,{fn:t,threshold:c,timer:T,args:_,skipFn:u})}else Q.skipFn&&Q.skipFn(...Q.args),this.fnMap.set(s,wt(wt({},Q),{},{fn:t,args:_,skipFn:u}))}else{const Q=window.setTimeout(()=>{const T=this.fnMap.get(s);T&&T.fn(...T.args),this.fnMap.delete(s)},c);this.fnMap.set(s,{fn:t,threshold:c,timer:Q,args:_,skipFn:u})}}},tU=A4.throttleByKey.bind(A4);function rU(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)}function Cs(t,s){if(!rU(t)||!rU(s)||Array.isArray(t)&&!Array.isArray(s)||!Array.isArray(t)&&Array.isArray(s))return s;if(Array.isArray(s)&&Array.isArray(t)){const c=[...t];for(let u=0;u0&&(c[u]=255&t,t>>=8,u++,u!==s););return c}function kC(t){return typeof t=="number"?t:t.exact||t.ideal||t.max||t.min||0}function Sr(t,s){try{return typeof t=="object"&&typeof s=="object"&&JSON.stringify(t)===JSON.stringify(s)}catch{return!1}}function tr(t){return VA(t).call(t,(s,c)=>s+c,0)}function ze(t){const s="0123456789abcdef";function c(me){let Qe,Oe="";for(Qe=0;Qe<=3;Qe++)Oe+=s.charAt(me>>8*Qe+4&15)+s.charAt(me>>8*Qe&15);return Oe}function u(me,Qe){const Oe=(65535&me)+(65535&Qe);return(me>>16)+(Qe>>16)+(Oe>>16)<<16|65535&Oe}function h(me,Qe,Oe,we,Ne,et){return u(function(st,Xt){return st<>>32-Xt}(u(u(Qe,me),u(we,et)),Ne),Oe)}function _(me,Qe,Oe,we,Ne,et,st){return h(Qe&Oe|~Qe&we,me,Qe,Ne,et,st)}function B(me,Qe,Oe,we,Ne,et,st){return h(Qe&we|Oe&~we,me,Qe,Ne,et,st)}function Q(me,Qe,Oe,we,Ne,et,st){return h(Qe^Oe^we,me,Qe,Ne,et,st)}function T(me,Qe,Oe,we,Ne,et,st){return h(Oe^(Qe|~we),me,Qe,Ne,et,st)}const D=function(me){let Qe;const Oe=1+(me.length+8>>6),we=new Array(16*Oe);for(Qe=0;Qe<16*Oe;Qe++)we[Qe]=0;for(Qe=0;Qe>2]|=me.charCodeAt(Qe)<>2]|=128<0}lock(t){let s;this.locks+=1,this.logger("locked",t);const c=new Ut(h=>{s=()=>{this.locks-=1,this.logger("unlocked",t),h()}}),u=this.lockingPromise.then(()=>s);return this.lockingPromise=this.lockingPromise.then(()=>c),u}};function Dg(t,s){return function(c,u,h){const _=h.value;if(typeof _!="function")throw new Error("Cannot use mutex on object property.");return h.value=async function(){const B=this[s];if(!B)throw new Error("mutex property key ".concat(s," doesn't exist on ").concat(t));const Q=await B.lock("From ".concat(t,".").concat(u));try{for(var T=arguments.length,D=new Array(T),O=0;O{await function(D){return new Ut(O=>{window.setTimeout(O,D)})}(_),_*=h.timeoutFactor,_=Math.min(h.maxRetryTimeout,_)};let Q=!1;const T=new Ut(async(D,O)=>{s=s||(()=>!1),c=c||(()=>!0);for(let P=0;PQ=!0,T}let Mf,VR=class{constructor(t){Dr(this,"input",[]),Dr(this,"size",void 0),this.size=t}add(t){this.input.push(t),this.input.length>this.size&&this.input.splice(0,1)}mean(){var t;return this.input.length===0?0:VA(t=this.input).call(t,(s,c)=>s+c)/this.input.length}},Ys=0,sh=0;function Gi(t,s,c,u){return new Ut((h,_)=>{s.responseType=s.responseType||"json",s.data&&!c?(s.data=JSON.stringify(s.data),Ys+=vu(s.data)):c&&(s.data.size?Ys+=s.data.size:s.data instanceof FormData?Ys+=GR(s.data):Ys+=vu(JSON.stringify(s.data))),s.headers=s.headers||{},s.headers["Content-Type"]=s.headers["Content-Type"]||"application/json",s.method="POST",s.url=t,on.request(s).then(B=>{typeof B.data=="string"?sh+=vu(B.data):B.data instanceof ArrayBuffer||B.data instanceof Uint8Array?sh+=B.data.byteLength:sh+=vu(JSON.stringify(B.data)),h(B.data)}).catch(B=>{on.isCancel(B)?_(new tt(Ce.OPERATION_ABORTED,"cancel token canceled")):B.code==="ECONNABORTED"?_(new tt(Ce.NETWORK_TIMEOUT,B.message)):B.response?_(new tt(Ce.NETWORK_RESPONSE_ERROR,B.response.status)):_(new tt(Ce.NETWORK_ERROR,B.message))})})}async function Jl(t,s){const c=new Blob([s.data],{type:"buffer"});return await Gi(t,wt(wt({},s),{},{data:c,headers:{"Content-Type":"application/octet-stream"}}),!0)}const KR=()=>window.isSecureContext!==void 0;function ql(t){if(Array.isArray(t))return t.map(c=>c);if(!iU(t))return t;const s={};for(const c in t){const u=t[c];iU(u)||Array.isArray(u)?s[c]=ql(u):s[c]=u}return s}function iU(t){return!(typeof t!="object"||Array.isArray(t)||!t)}let c4=class{constructor(t){Dr(this,"input",[]),Dr(this,"size",void 0),this.size=t}add(t){this.input.push(t),this.input.length>this.size&&this.input.splice(0,1)}diffMean(){return this.input.length===0?0:(this.input[this.input.length-1]-this.input[0])/this.input.length}};const ya={address:"unknown",candidateType:"unknown",id:"unknown",port:0,priority:0,protocol:"unknown",type:"unknown"},h2={timestamp:0,bitrate:{actualEncoded:0,transmit:0},sendPacketLossRate:0,recvPacketLossRate:0,videoRecv:[],videoSend:[],audioRecv:[],audioSend:[],transport:{bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0},selectedCandidatePair:{id:"unknown",localCandidate:ya,remoteCandidate:ya},updateInterval:0},kf={firsCount:0,nacksCount:0,plisCount:0,framesDecodeCount:0,framesDecodeInterval:0,framesDecodeFreezeTime:0,decodeFrameRate:0,bytes:0,packetsLost:0,packetLostRate:0,packets:0,ssrc:0,qpSumPerFrame:0,framesDroppedCount:0,outputFrameRate:0,packetsDiscarded:0,framesAssembledFromMultiplePackets:0,totalProcessingDelay:0,avgDecodeMs:0,avgFramesAssembledFromMultiplePacketsMs:0,avgProcessingDelayMs:0,avgInterFrameDelayMs:0,totalAssemblyTime:0},nU={firsCount:0,nacksCount:0,plisCount:0,frameCount:0,bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0,qpSumPerFrame:0},Pf={bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0},ah={jitterBufferMs:0,jitterMs:0,bytes:0,packetsLost:0,packetLostRate:0,packetsDiscarded:0,packets:0,ssrc:0,receivedFrames:0,droppedFrames:0,concealedSamples:0,totalSamplesReceived:0,silentConcealedSamples:0,concealmentEvents:0,freezeMs80:0,freezeMs200:0,freezeSamples80:0,freezeSamples200:0};let HR=class{constructor(t,s){Dr(this,"onFirstVideoReceived",void 0),Dr(this,"onFirstVideoDecoded",void 0),Dr(this,"onFirstAudioReceived",void 0),Dr(this,"onFirstVideoDecodedTimeout",void 0),Dr(this,"onFirstAudioDecoded",void 0),Dr(this,"onSelectedLocalCandidateChanged",void 0),Dr(this,"onSelectedRemoteCandidateChanged",void 0),Dr(this,"videoIsReady",!1),Dr(this,"videoIsReady2",{}),Dr(this,"pc",void 0),Dr(this,"options",void 0),Dr(this,"intervalTimer",void 0),Dr(this,"stats",ql(h2)),Dr(this,"isFirstVideoReceived",{}),Dr(this,"isFirstVideoDecoded",{}),Dr(this,"isFirstAudioReceived",{}),Dr(this,"isFirstAudioDecoded",{}),Dr(this,"isFirstVideoDecodedTimeout",{}),Dr(this,"lossRateWindowStats",[]),this.pc=t,this.options=s,this.intervalTimer=window.setInterval(async()=>{this.updateStats()},this.options.updateInterval)}getStats(){return this.stats}getSelectedCandidatePair(){return new Ut(t=>{t({local:wt({},ya),remote:wt({},ya)})})}setVideoIsReady(t){this.videoIsReady=t}setVideoIsReady2(t,s){this.videoIsReady2[t]=s}getVideoIsReady(t){return this.videoIsReady2[t]||!1}setIsFirstAudioDecoded(t){}destroy(){window.clearInterval(this.intervalTimer),this.pc=void 0}calcLossRate(t){this.lossRateWindowStats.push(t),this.lossRateWindowStats.length>this.options.lossRateInterval&&this.lossRateWindowStats.splice(0,1);const s=this.lossRateWindowStats.length,c=["videoSend","audioSend","videoRecv","audioRecv"];let u=0,h=0,_=0,B=0;for(const Q of c)t[Q].forEach((T,D)=>{if(!this.lossRateWindowStats[s-1][Q][D]||!this.lossRateWindowStats[0][Q][D])return;const O=this.lossRateWindowStats[s-1][Q][D].packets-this.lossRateWindowStats[0][Q][D].packets,P=this.lossRateWindowStats[s-1][Q][D].packetsLost-this.lossRateWindowStats[0][Q][D].packetsLost;Q==="videoSend"||Q==="audioSend"?(u+=O,_+=P):(h+=O,B+=P),Number.isNaN(O)||Number.isNaN(O)?T.packetLostRate=0:T.packetLostRate=O<=0||P<=0?0:P/(O+P)});t.sendPacketLossRate=u<=0||_<=0?0:_/(u+_),t.recvPacketLossRate=h<=0||B<=0?0:B/(h+B)}},nr=class extends HR{constructor(){super(...arguments),Dr(this,"_stats",h2),Dr(this,"lastDecodeVideoReceiverStats",new Map)}async updateStats(){const t=await this._getStats(),s=this.statsResponsesToObjects(t);this._stats=ql(h2);const c=s.filter(h=>h.type==="ssrc");this.processSSRCStats(c);const u=s.find(h=>h.type==="VideoBwe");u&&this.processBandwidthStats(u),this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}processBandwidthStats(t){this._stats.bitrate={actualEncoded:Number(t.googActualEncBitrate),targetEncoded:Number(t.googTargetEncBitrate),retransmit:Number(t.googRetransmitBitrate),transmit:Number(t.googTransmitBitrate)},this._stats.sendBandwidth=Number(t.googAvailableSendBandwidth)}processSSRCStats(t){t.forEach(s=>{var c;const u=Et(c=s.id).call(c,"send");switch("".concat(s.mediaType,"_").concat(u?"send":"recv")){case"video_send":{const h=ql(nU);h.codec=s.googCodecName,h.adaptionChangeReason="none",s.googCpuLimitedResolution&&(h.adaptionChangeReason="cpu"),s.googBandwidthLimitedResolution&&(h.adaptionChangeReason="bandwidth"),h.avgEncodeMs=Number(s.googAvgEncodeMs),h.inputFrame={width:Number(s.googFrameWidthInput)||Number(s.googFrameWidthSent),height:Number(s.googFrameHeightInput)||Number(s.googFrameHeightSent),frameRate:Number(s.googFrameRateInput)},h.sentFrame={width:Number(s.googFrameWidthSent),height:Number(s.googFrameHeightSent),frameRate:Number(s.googFrameRateInput)},h.firsCount=Number(s.googFirReceived),h.nacksCount=Number(s.googNacksReceived),h.plisCount=Number(s.googPlisReceived),h.frameCount=Number(s.framesEncoded),h.bytes=Number(s.bytesSent),h.packets=Number(s.packetsSent),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.rttMs=Number(s.googRtt||0),this._stats.videoSend.push(h),this._stats.rtt=h.rttMs;break}case"video_recv":{const h=ql(kf),_=this.lastDecodeVideoReceiverStats.get(Number(s.ssrc));if(h.codec=s.googCodecName,h.targetDelayMs=Number(s.googTargetDelayMs),h.renderDelayMs=Number(s.googRenderDelayMs),h.currentDelayMs=Number(s.googCurrentDelayMs),h.minPlayoutDelayMs=Number(s.googMinPlayoutDelayMs),h.decodeMs=Number(s.googDecodeMs),h.maxDecodeMs=Number(s.googMaxDecodeMs),h.receivedFrame={width:Number(s.googFrameWidthReceived),height:Number(s.googFrameHeightReceived),frameRate:Number(s.googFrameRateReceived)},h.decodedFrame={width:Number(s.googFrameWidthReceived),height:Number(s.googFrameHeightReceived),frameRate:Number(s.googFrameRateDecoded)},h.decodeFrameRate=Number(s.googFrameRateDecoded),h.outputFrame={width:Number(s.googFrameWidthReceived),height:Number(s.googFrameHeightReceived),frameRate:Number(s.googFrameRateOutput)},h.jitterBufferMs=Number(s.googJitterBufferMs),h.firsCount=Number(s.googFirsSent),h.nacksCount=Number(s.googNacksSent),h.plisCount=Number(s.googPlisSent),h.framesDecodeCount=Number(s.framesDecoded),h.bytes=Number(s.bytesReceived),h.packets=Number(s.packetsReceived),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.packets>0&&!this.isFirstVideoReceived[h.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(h.ssrc),this.isFirstVideoReceived[h.ssrc]=!0),h.framesDecodeCount>0&&!this.isFirstVideoDecoded[h.ssrc]&&(this.onFirstVideoDecoded&&this.onFirstVideoDecoded(h.ssrc,h.decodedFrame.width,h.decodedFrame.height),this.isFirstVideoDecoded[h.ssrc]=!0),_){const B=_.stats,Q=Date.now()-_.lts;h.framesDecodeFreezeTime=B.framesDecodeFreezeTime,h.framesDecodeInterval=B.framesDecodeInterval,h.framesDecodeCount>B.framesDecodeCount&&this.isFirstVideoDecoded[h.ssrc]?(_.lts=Date.now(),h.framesDecodeInterval=Q,h.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(s.ssrc,10))?h.framesDecodeFreezeTime+=h.framesDecodeInterval:this.setVideoIsReady2(parseInt(s.ssrc,10),!0))):h.framesDecodeCount<_.stats.framesDecodeCount&&(h.framesDecodeInterval=0)}this.lastDecodeVideoReceiverStats.set(h.ssrc,{stats:wt({},h),lts:Date.now()}),this._stats.videoRecv.push(h);break}case"audio_recv":{const h=ql(ah);h.codec=s.googCodecName,h.outputLevel=Math.abs(Number(s.audioOutputLevel))/32767,h.decodingCNG=Number(s.googDecodingCNG),h.decodingCTN=Number(s.googDecodingCTN),h.decodingCTSG=Number(s.googDecodingCTSG),h.decodingNormal=Number(s.googDecodingNormal),h.decodingPLC=Number(s.googDecodingPLC),h.decodingPLCCNG=Number(s.googDecodingPLCCNG),h.expandRate=Number(s.googExpandRate),h.accelerateRate=Number(s.googAccelerateRate),h.preemptiveExpandRate=Number(s.googPreemptiveExpandRate),h.secondaryDecodedRate=Number(s.googSecondaryDecodedRate),h.speechExpandRate=Number(s.googSpeechExpandRate),h.preferredJitterBufferMs=Number(s.googPreferredJitterBufferMs),h.jitterBufferMs=Number(s.googJitterBufferMs),h.jitterMs=Number(s.googJitterReceived),h.bytes=Number(s.bytesReceived),h.packets=Number(s.packetsReceived),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.receivedFrames=Number(s.googDecodingCTN)||Number(s.packetsReceived),h.droppedFrames=Number(s.googDecodingPLC)+Number(s.googDecodingPLCCNG)||Number(s.packetsLost),h.receivedFrames>0&&!this.isFirstAudioReceived[h.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(h.ssrc),this.isFirstAudioReceived[h.ssrc]=!0),h.decodingNormal>0&&!this.isFirstAudioDecoded[h.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(h.ssrc),this.isFirstAudioDecoded[h.ssrc]=!0),this._stats.audioRecv.push(h);break}case"audio_send":{const h=ql(Pf);h.codec=s.googCodecName,h.inputLevel=Math.abs(Number(s.audioInputLevel))/32767,h.aecReturnLoss=Number(s.googEchoCancellationReturnLoss||0),h.aecReturnLossEnhancement=Number(s.googEchoCancellationReturnLossEnhancement||0),h.residualEchoLikelihood=Number(s.googResidualEchoLikelihood||0),h.residualEchoLikelihoodRecentMax=Number(s.googResidualEchoLikelihoodRecentMax||0),h.bytes=Number(s.bytesSent),h.packets=Number(s.packetsSent),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.rttMs=Number(s.googRtt||0),this._stats.rtt=h.rttMs,this._stats.audioSend.push(h);break}}})}_getStats(){return new Ut((t,s)=>{this.pc.getStats(t,s)})}statsResponsesToObjects(t){const s=[];return t.result().forEach(c=>{const u={id:c.id,timestamp:c.timestamp.valueOf().toString(),type:c.type};c.names().forEach(h=>{u[h]=c.stat(h)}),s.push(u)}),s}},$i=function(t){return t.BANDWIDTH="bandwidth",t.CPU="cpu",t.NONE="none",t.OTHER="other",t}({}),bg=function(t){return t.L1T1="L1T1",t.L1T2="L1T2",t.L1T3="L1T3",t.L1T3_KEY="L1T3_KEY",t.L2T1_KEY="L2T1_KEY",t.L2T2_KEY="L2T2_KEY",t.L2T3_KEY="L2T3_KEY",t.L3T1_KEY="L3T1_KEY",t.L3T2_KEY="L3T2_KEY",t.L3T3_KEY="L3T3_KEY",t}({}),l4=function(t){return t[t.new=0]="new",t[t.connecting=1]="connecting",t[t.connected=2]="connected",t[t.disconnected=3]="disconnected",t[t.failed=4]="failed",t[t.closed=5]="closed",t}({}),Tc=function(t){return t.CERTIFICATE="certificate",t.CODEC="codec",t.CANDIDATE_PAIR="candidate-pair",t.LOCAL_CANDIDATE="local-candidate",t.REMOTE_CANDIDATE="remote-candidate",t.INBOUND="inbound-rtp",t.TRACK="track",t.OUTBOUND="outbound-rtp",t.PC="peer-connection",t.REMOTE_INBOUND="remote-inbound-rtp",t.REMOTE_OUTBOUND="remote-outbound-rtp",t.TRANSPORT="transport",t.CSRC="csrc",t.DATA_CHANNEL="data-channel",t.STREAM="stream",t.SENDER="sender",t.RECEIVER="receiver",t}({});var Wl=function(t){return t[t.kNone=1]="kNone",t[t.kMillisecondsFromSeconds=1e3]="kMillisecondsFromSeconds",t[t.kBytesToBits=8]="kBytesToBits",t}(Wl||{});function Du(t,s,c,u){let h=arguments.length>4&&arguments[4]!==void 0?arguments[4]:Wl.kNone;if(!s)return;const _=Number(s[c]);if(typeof _!="number")return;const B=Number(s[u]);if(typeof B!="number")return;if(!t)return B?_/B*h:void 0;const Q=Number(t[c]);if(typeof Q!="number")return;const T=Number(t[u]);if(typeof T!="number")return;const D=B-T;return D?(_-Q)/D*h:void 0}let wc=class extends HR{constructor(){super(...arguments),Dr(this,"_stats",h2),Dr(this,"report",void 0),Dr(this,"lastDecodeVideoReceiverStats",new Map),Dr(this,"lastVideoFramesRecv",new Map),Dr(this,"lastVideoFramesSent",new Map),Dr(this,"lastVideoFramesDecode",new Map),Dr(this,"lastVideoFramesOutput",new Map),Dr(this,"lastVideoJBDelay",new Map),Dr(this,"lastAudioJBDelay",new Map),Dr(this,"mediaBytesSent",new Map),Dr(this,"mediaBytesRetransmit",new Map),Dr(this,"mediaBytesTargetEncode",new Map),Dr(this,"lastDecodeAudioReceiverStats",new Map),Dr(this,"lastAudioConcealment",new Map),Dr(this,"lastEncoderMs",new Map)}async updateStats(){this.report=await this.pc.getStats(),this._stats=ql(h2),this.report.forEach(t=>{switch(t.type){case Tc.OUTBOUND:case Tc.INBOUND:{const s=t.mediaType||t.kind,c=!s&&"frameWidth"in t,u=!s&&!("frameWidth"in t);t.type===Tc.OUTBOUND?s==="audio"||u?this.processAudioOutboundStats(t):(s==="video"||c)&&this.processVideoOutboundStats(t):t.type===Tc.INBOUND&&(s==="audio"||u?this.processAudioInboundStats(t):(s==="video"||c)&&this.processVideoInboundStats(t));break}case Tc.TRANSPORT:{this.processTransportStats(t);const s=this.report.get(t.selectedCandidatePairId);s&&this.processCandidatePairStats(s);break}case Tc.CANDIDATE_PAIR:t.selected&&this.processCandidatePairStats(t)}}),this.updateSendBitrate(),this._stats.updateInterval=Date.now()-this.stats.timestamp,this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}async getSelectedCandidatePair(){const t=await this.pc.getStats(),s={local:wt({},ya),remote:wt({},ya)};return t.forEach(c=>{let u;if(c.type===Tc.TRANSPORT&&(u=t.get(c.selectedCandidatePairId)),c.type===Tc.CANDIDATE_PAIR&&c.selected&&(u=c),u){const h=(_,B)=>{_.type=B.type,_.id=B.id,B.address&&(_.address=B.address),B.candidateType&&(_.candidateType=B.candidateType),B.port&&(_.port=B.port),B.priority&&(_.priority=B.priority),B.protocol&&(_.protocol=B.protocol),B.relayProtocol&&(_.relayProtocol=B.relayProtocol)};if(u.localCandidateId){const _=t.get(u.localCandidateId);_&&h(s.local,_)}if(u.remoteCandidateId){const _=t.get(u.remoteCandidateId);_&&h(s.remote,_)}}}),s}processCandidatePairStats(t){if(this._stats.sendBandwidth=t.availableOutgoingBitrate||0,t.currentRoundTripTime&&(this._stats.rtt=1e3*t.currentRoundTripTime),this._stats.videoSend.forEach(s=>{t.currentRoundTripTime&&(s.rttMs=1e3*t.currentRoundTripTime)}),this._stats.audioSend.forEach(s=>{t.currentRoundTripTime&&(s.rttMs=1e3*t.currentRoundTripTime)}),this._stats.selectedCandidatePair.id=t.id,t.localCandidateId){const s=this.report.get(t.localCandidateId);s&&this.processCandidateStats(s)}if(t.remoteCandidateId){const s=this.report.get(t.remoteCandidateId);s&&this.processCandidateStats(s)}}processCandidateStats(t){let s;t.type===Tc.LOCAL_CANDIDATE&&(s=this._stats.selectedCandidatePair.localCandidate),t.type===Tc.REMOTE_CANDIDATE&&(s=this._stats.selectedCandidatePair.remoteCandidate),s&&(s.type=t.type,s.id=t.id,t.address&&(s.address=t.address),t.candidateType&&(s.candidateType=t.candidateType),t.port&&(s.port=t.port),t.priority&&(s.priority=t.priority),t.protocol&&(s.protocol=t.protocol),t.relayProtocol&&(s.relayProtocol=t.relayProtocol),t.type===Tc.LOCAL_CANDIDATE&&this.stats.selectedCandidatePair.localCandidate.id!==s.id&&this.onSelectedLocalCandidateChanged&&this.onSelectedLocalCandidateChanged(wt({},s),wt({},this.stats.selectedCandidatePair.localCandidate)),t.type===Tc.REMOTE_CANDIDATE&&this.stats.selectedCandidatePair.remoteCandidate.id!==s.id&&this.onSelectedRemoteCandidateChanged&&this.onSelectedRemoteCandidateChanged(wt({},s),wt({},this.stats.selectedCandidatePair.remoteCandidate)))}processAudioInboundStats(t){let s=this._stats.audioRecv.find(u=>u.ssrc===t.ssrc);s||(s=ql(ah),this._stats.audioRecv.push(s)),s.ssrc=t.ssrc,s.packets=t.packetsReceived,s.packetsLost=t.packetsLost,s.packetsDiscarded=t.packetsDiscarded,s.bytes=t.bytesReceived,s.jitterMs=1e3*t.jitter,s.retransmittedBytesReceived=t.retransmittedBytesReceived,s.retransmittedPacketsReceived=t.retransmittedPacketsReceived,s.totalProcessingDelay=t.totalProcessingDelay,s.jitterBufferEmittedCount=t.jitterBufferEmittedCount,s.estimatedPlayoutTimestamp=t.estimatedPlayoutTimestamp;const c=this.lastDecodeAudioReceiverStats.get(s.ssrc);s.avgProcessingDelayMs=Du(c,s,"totalProcessingDelay","jitterBufferEmittedCount",Wl.kMillisecondsFromSeconds),this.processAudioTrackReceiverStats(t,t.trackId,s),this.calculateAudioFreeze(s,c,t),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),s.receivedFrames||(s.receivedFrames=t.packetsReceived),s.droppedFrames||(s.droppedFrames=t.packetsLost),s.receivedFrames>0&&!this.isFirstAudioReceived[s.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(s.ssrc),this.isFirstAudioReceived[s.ssrc]=!0),s.outputLevel&&s.outputLevel>0&&!this.isFirstAudioDecoded[s.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(s.ssrc),this.isFirstAudioDecoded[s.ssrc]=!0),typeof t.concealedSamples=="number"&&(s.concealedSamples=t.concealedSamples),this.lastDecodeAudioReceiverStats.set(s.ssrc,wt({},s))}calculateAudioFreeze(t,s,c){const u=this.lastAudioConcealment.get(t.ssrc);if(s!=null&&u!=null){const h=u.lts,_=c.timestamp,B=_-h;if(B<=0)return;const Q=t.concealedSamples-s.concealedSamples-0,T=u.nonSilent+Q,D=t.totalSamplesReceived-s.totalSamplesReceived;if(D<=0)return;const O=80*D/B,P=200*D/B,U=B/D;let H=0;t.freezeSamples80=s.freezeSamples80,t.freezeMs80=s.freezeMs80,T>O&&(u.plc80>0?(t.freezeSamples80+=Q,t.freezeMs80+=Math.round(Q*U)):(t.freezeSamples80+=T,t.freezeMs80+=Math.round(T*U)),H=u.plc80+1);let $=0;t.freezeSamples200=s.freezeSamples200,t.freezeMs200=s.freezeMs200,T>P&&(u.plc200>0?(t.freezeSamples200+=Q,t.freezeMs200+=Math.round(Q*U)):(t.freezeSamples200+=T,t.freezeMs200+=Math.round(T*U)),$=u.plc200+1),this.lastAudioConcealment.set(t.ssrc,{nonSilent:Q,lts:_,plc80:H,plc200:$})}else t.freezeSamples80=0,t.freezeSamples200=0,t.freezeMs80=0,t.freezeMs200=0,this.lastAudioConcealment.set(t.ssrc,{nonSilent:0,lts:c.timestamp,plc80:0,plc200:0})}processVideoInboundStats(t){let s=this._stats.videoRecv.find(B=>B.ssrc===t.ssrc);s||(s=ql(kf),this._stats.videoRecv.push(s)),s.ssrc=t.ssrc,s.packets=t.packetsReceived,s.packetsLost=t.packetsLost,s.bytes=t.bytesReceived,s.firsCount=t.firCount,s.nacksCount=t.nackCount,s.plisCount=t.pliCount,s.framesDecodeCount=t.framesDecoded,s.framesDroppedCount=t.framesDropped,s.totalInterFrameDelay=t.totalInterFrameDelay,s.totalSquaredInterFrameDelay=t.totalSquaredInterFrameDelay,s.totalFreezesDuration=t.totalFreezesDuration,s.totalProcessingDelay=t.totalProcessingDelay,s.packetsDiscarded=t.packetsDiscarded,s.framesAssembledFromMultiplePackets=t.framesAssembledFromMultiplePackets,s.totalAssemblyTime=t.totalAssemblyTime,s.keyFramesDecoded=t.keyFramesDecoded,s.retransmittedBytesReceived=t.retransmittedBytesReceived,s.retransmittedPacketsReceived=t.retransmittedPacketsReceived,s.estimatedPlayoutTimestamp=t.estimatedPlayoutTimestamp;const c=this.lastDecodeVideoReceiverStats.get(s.ssrc),u=this.lastVideoFramesDecode.get(s.ssrc),h=this.lastVideoFramesOutput.get(s.ssrc),_=Date.now();if(s.framesDecodeCount>0&&!this.isFirstVideoDecoded[s.ssrc]){const B=s.decodedFrame?s.decodedFrame.width:0,Q=s.decodedFrame?s.decodedFrame.height:0;this.onFirstVideoDecoded&&this.onFirstVideoDecoded(s.ssrc,B,Q),this.isFirstVideoDecoded[s.ssrc]=!0}if(c){const B=c.stats,Q=_-c.lts;s.framesDecodeFreezeTime=B.framesDecodeFreezeTime,s.framesDecodeInterval=B.framesDecodeInterval,!this.isFirstVideoDecoded[s.ssrc]&&Q>this.options.firstVideoDecodedTimeout&&!this.isFirstVideoDecodedTimeout[s.ssrc]&&(this.onFirstVideoDecodedTimeout&&this.onFirstVideoDecodedTimeout(s.ssrc),this.isFirstVideoDecodedTimeout[s.ssrc]=!0),s.framesDecodeCount>B.framesDecodeCount&&this.isFirstVideoDecoded[s.ssrc]?(c.lts=Date.now(),s.framesDecodeInterval=Q,s.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(t.ssrc))?s.framesDecodeFreezeTime+=s.framesDecodeInterval:this.setVideoIsReady2(parseInt(t.ssrc,10),!0))):s.framesDecodeCountt.framesDecoded?s.qpSumPerFrame=t.qpSum/t.framesDecoded:s.qpSumPerFrame=(t.qpSum-c.qpSum)/(t.framesDecoded-c.stats.framesDecodeCount))}t.totalDecodeTime&&(s.decodeMs=1e3*t.totalDecodeTime,s.avgDecodeMs=Du(c==null?void 0:c.stats,s,"decodeMs","framesDecodeCount")),s.avgProcessingDelayMs=Du(c==null?void 0:c.stats,s,"totalProcessingDelay","framesDecodeCount",Wl.kMillisecondsFromSeconds),s.avgFramesAssembledFromMultiplePacketsMs=Du(c==null?void 0:c.stats,s,"totalAssemblyTime","framesAssembledFromMultiplePackets",Wl.kMillisecondsFromSeconds),s.avgInterFrameDelayMs=Du(c==null?void 0:c.stats,s,"totalInterFrameDelay","framesDecodeCount",Wl.kMillisecondsFromSeconds),u&&_-u.lts>=800?(s.decodeFrameRate=Math.round((s.framesDecodeCount-u.count)/((_-u.lts)/1e3)),this.lastVideoFramesDecode.set(s.ssrc,{count:s.framesDecodeCount,lts:_,rate:s.decodeFrameRate})):u?s.decodeFrameRate=u.rate:this.lastVideoFramesDecode.set(s.ssrc,{count:s.framesDecodeCount,lts:_,rate:0}),s.framesDroppedCount&&t.framesReceived&&(h&&_-h.lts>=800?(s.outputFrameRate=Math.round((t.framesReceived-s.framesDroppedCount-h.count)/((_-h.lts)/1e3)),this.lastVideoFramesOutput.set(s.ssrc,{count:t.framesReceived-s.framesDroppedCount,lts:_,rate:Math.max(s.outputFrameRate,0)})):h?s.outputFrameRate=h.rate:this.lastVideoFramesOutput.set(s.ssrc,{count:t.framesReceived-s.framesDroppedCount,lts:_,rate:0})),this.processVideoTrackReceiverStats(t,t.trackId,s),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),typeof t.powerEfficientDecoder=="boolean"&&(s.powerEfficientDecoder=t.powerEfficientDecoder?1:0),t.framerateMean&&(s.framesRateFirefox=t.framerateMean),s.packets>0&&!this.isFirstVideoReceived[s.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(s.ssrc),this.isFirstVideoReceived[s.ssrc]=!0),this.lastDecodeVideoReceiverStats.set(s.ssrc,{stats:wt({},s),lts:c?c.lts:Date.now(),qpSum:t.qpSum})}processVideoOutboundStats(t){let s=this._stats.videoSend.find(u=>u.ssrc===t.ssrc);s||(s=ql(nU),this._stats.videoSend.push(s));const c=this.mediaBytesSent.get(t.ssrc);if(c)c.add(t.bytesSent);else{const u=new c4(10);u.add(t.bytesSent),this.mediaBytesSent.set(t.ssrc,u)}if(t.retransmittedBytesSent!==void 0){const u=this.mediaBytesRetransmit.get(t.ssrc);if(u)u.add(t.retransmittedBytesSent);else{const h=new c4(10);h.add(t.retransmittedBytesSent),this.mediaBytesRetransmit.set(t.ssrc,h)}}if(t.totalEncodedBytesTarget){const u=this.mediaBytesTargetEncode.get(t.ssrc);if(u)u.add(t.totalEncodedBytesTarget);else{const h=new c4(10);h.add(t.totalEncodedBytesTarget),this.mediaBytesTargetEncode.set(t.ssrc,h)}}if(s.ssrc=t.ssrc,s.bytes=t.bytesSent,s.packets=t.packetsSent,s.firsCount=t.firCount,s.nacksCount=t.nackCount,s.plisCount=t.pliCount,s.frameCount=t.framesEncoded,s.adaptionChangeReason=t.qualityLimitationReason,s.scalabilityMode=t.scalabilityMode,s.retransmittedBytesSent=t.retransmittedBytesSent,s.retransmittedPacketsSent=t.retransmittedPacketsSent,s.hugeFramesSent=t.hugeFramesSent,s.keyFramesEncoded=t.keyFramesEncoded,s.targetBitrate=t.targetBitrate,t.totalEncodeTime&&t.framesEncoded){const u=this.lastEncoderMs.get(t.ssrc);if(!u||u.lastFrameCount>t.framesEncoded)s.avgEncodeMs=1e3*t.totalEncodeTime/t.framesEncoded;else{const h=t.framesEncoded-u.lastFrameCount,_=t.totalEncodeTime-u.lastEncoderTime;s.avgEncodeMs=1e3*_/h}}if(t.framesEncoded&&t.qpSum){const u=this.lastEncoderMs.get(t.ssrc);!u||u.lastFrameCount>t.framesEncoded?s.qpSumPerFrame=t.qpSum/t.framesEncoded:s.qpSumPerFrame=(t.qpSum-u.lastQpSum)/(t.framesEncoded-u.lastFrameCount)}if(this.lastEncoderMs.set(t.ssrc,{lastFrameCount:t.framesEncoded,lastEncoderTime:t.totalEncodeTime,lastQpSum:t.qpSum,lts:Date.now()}),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),typeof t.powerEfficientEncoder=="boolean"&&(s.powerEfficientEncoder=t.powerEfficientEncoder?1:0),t.mediaSourceId&&this.processVideoMediaSource(t.mediaSourceId,s),this.processVideoTrackSenderStats(t,t.trackId,s),t.remoteId)this.processRemoteInboundStats(t.remoteId,s);else{const u=this.findRemoteStatsId(t.ssrc,Tc.REMOTE_INBOUND);u&&this.processRemoteInboundStats(u,s)}}processAudioOutboundStats(t){let s=this._stats.audioSend.find(c=>c.ssrc===t.ssrc);if(s||(s=ql(Pf),this._stats.audioSend.push(s)),s.ssrc=t.ssrc,s.packets=t.packetsSent,s.bytes=t.bytesSent,s.retransmittedBytesSent=t.retransmittedBytesSent,s.retransmittedPacketsSent=t.retransmittedPacketsSent,t.mediaSourceId&&this.processAudioMediaSource(t.mediaSourceId,s),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),this.processAudioTrackSenderStats(t,t.trackId,s),t.remoteId)this.processRemoteInboundStats(t.remoteId,s);else{const c=this.findRemoteStatsId(t.ssrc,Tc.REMOTE_INBOUND);c&&this.processRemoteInboundStats(c,s)}}processTransportStats(t){this._stats.transport.bytesReceived=t.bytesReceived||this._stats.transport.bytesReceived,this._stats.transport.bytesSent=t.bytesSent||this._stats.transport.bytesSent,this._stats.transport.packetsReceived=t.packetsReceived||this._stats.transport.packetsReceived,this._stats.transport.packetsSent=t.packetsSent||this._stats.transport.packetsSent}findRemoteStatsId(t,s){var c;const u=Array.from(BA(c=this.report).call(c)).find(h=>h.type===s&&h.ssrc===t);return u?u.id:null}processVideoMediaSource(t,s){const c=this.report.get(t);c&&c.width&&c.height&&c.framesPerSecond&&(s.inputFrame={width:c.width,height:c.height,frameRate:c.framesPerSecond})}processAudioMediaSource(t,s){const c=this.report.get(t);c&&(s.inputLevel=c.audioLevel)}processVideoTrackSenderStats(t,s,c){var u,h,_,B;const Q=s?this.report.get(s):void 0,T=(u=Q==null?void 0:Q.framesSent)!==null&&u!==void 0?u:t.framesSent;if(typeof T!="number")return;let D=(h=Q==null?void 0:Q.frameWidth)!==null&&h!==void 0?h:t.frameWidth,O=(_=Q==null?void 0:Q.frameHeight)!==null&&_!==void 0?_:t.frameHeight,P=(B=Q==null?void 0:Q.framesPerSecond)!==null&&B!==void 0?B:t.framesPerSecond;if(typeof D=="number"&&typeof O=="number"||(D=0,O=0),P==null){const U=Date.now(),H=this.lastVideoFramesSent.get(c.ssrc);H&&U-H.lts>=800?(P=Math.round((T-H.count)/((U-H.lts)/1e3)),this.lastVideoFramesSent.set(c.ssrc,{count:T,lts:U,rate:P})):H?P=H.rate:this.lastVideoFramesSent.set(c.ssrc,{count:T,lts:U,rate:0})}c.sentFrame={width:D,height:O,frameRate:Math.max(0,P)}}processVideoTrackReceiverStats(t,s,c){var u,h,_,B,Q;const T=s?this.report.get(s):void 0,D=(u=T==null?void 0:T.framesReceived)!==null&&u!==void 0?u:t.framesReceived,O=(h=T==null?void 0:T.frameWidth)!==null&&h!==void 0?h:t.frameWidth,P=(_=T==null?void 0:T.frameHeight)!==null&&_!==void 0?_:t.frameHeight,U=(B=T==null?void 0:T.jitterBufferDelay)!==null&&B!==void 0?B:t.jitterBufferDelay,H=(Q=T==null?void 0:T.jitterBufferEmittedCount)!==null&&Q!==void 0?Q:t.jitterBufferEmittedCount;if(typeof D=="number"){const $=this.lastVideoFramesRecv.get(c.ssrc),Z=Date.now();c.framesReceivedCount=D;let te=0;$&&Z-$.lts>=800?(te=Math.round((D-$.count)/((Z-$.lts)/1e3)),this.lastVideoFramesRecv.set(c.ssrc,{count:D,lts:Z,rate:te})):$?te=$.rate:this.lastVideoFramesRecv.set(c.ssrc,{count:D,lts:Z,rate:0}),c.receivedFrame={width:O||0,height:P||0,frameRate:te||0},c.decodedFrame={width:O||0,height:P||0,frameRate:c.decodeFrameRate||0},c.outputFrame={width:O||0,height:P||0,frameRate:c.outputFrameRate||c.decodeFrameRate||0}}if(U&&H){const $=this.lastVideoJBDelay.get(c.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0};let Z=$.jitterBufferMs;const te=H-$.jitterBufferEmittedCount;te>0&&(Z=1e3*(U-$.jitterBufferDelay)/te),c.jitterBufferMs=Z,c.currentDelayMs=Math.round(Z),this.lastVideoJBDelay.set(c.ssrc,{jitterBufferDelay:U,jitterBufferEmittedCount:H,jitterBufferMs:c.currentDelayMs})}}processAudioTrackSenderStats(t,s,c){var u,h,_,B;const Q=s?this.report.get(s):void 0,T=(u=(h=Q==null?void 0:Q.echoReturnLoss)!==null&&h!==void 0?h:t.echoReturnLoss)!==null&&u!==void 0?u:0,D=(_=(B=Q==null?void 0:Q.echoReturnLossEnhancement)!==null&&B!==void 0?B:t.echoReturnLossEnhancement)!==null&&_!==void 0?_:0;c.aecReturnLoss=T,c.aecReturnLossEnhancement=D}processAudioTrackReceiverStats(t,s,c){var u,h,_,B,Q,T,D,O,P;const U=s?this.report.get(s):void 0,H=(u=U==null?void 0:U.removedSamplesForAcceleration)!==null&&u!==void 0?u:t.removedSamplesForAcceleration,$=(h=U==null?void 0:U.totalSamplesReceived)!==null&&h!==void 0?h:t.totalSamplesReceived,Z=(_=U==null?void 0:U.jitterBufferDelay)!==null&&_!==void 0?_:t.jitterBufferDelay,te=(B=U==null?void 0:U.jitterBufferEmittedCount)!==null&&B!==void 0?B:t.jitterBufferEmittedCount,se=(Q=U==null?void 0:U.audioLevel)!==null&&Q!==void 0?Q:t==null?void 0:t.audioLevel,ge=(T=U==null?void 0:U.totalSamplesDuration)!==null&&T!==void 0?T:t==null?void 0:t.totalSamplesDuration,me=(D=U==null?void 0:U.concealedSamples)!==null&&D!==void 0?D:t.concealedSamples,Qe=(O=U==null?void 0:U.silentConcealedSamples)!==null&&O!==void 0?O:t.silentConcealedSamples,Oe=(P=U==null?void 0:U.concealmentEvents)!==null&&P!==void 0?P:t.concealmentEvents;if(typeof $=="number"&&(c.totalSamplesReceived=$),typeof Qe=="number"&&(c.silentConcealedSamples=Qe),typeof Oe=="number"&&(c.concealmentEvents=Oe),typeof me=="number"&&(c.concealedSamples=me),H&&$&&(c.accelerateRate=H/$),Z&&te){const Ne=this.lastAudioJBDelay.get(c.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0};let et=Ne.jitterBufferMs;const st=te-Ne.jitterBufferEmittedCount;st>0&&(et=1e3*(Z-Ne.jitterBufferDelay)/st),c.jitterBufferMs=Math.round(et),this.lastAudioJBDelay.set(c.ssrc,{jitterBufferDelay:Z,jitterBufferEmittedCount:te,jitterBufferMs:c.jitterBufferMs})}c.outputLevel=se;let we=1920;ge&&$&&(we=$/ge/50,c.receivedFrames=Math.round($/we)),me&&(c.droppedFrames=Math.round(me/we))}processRemoteInboundStats(t,s){const c=this.report.get(t);c&&(s.packetsLost=c.packetsLost,c.roundTripTime&&(s.rttMs=1e3*c.roundTripTime),c.jitter&&(s.jitterMs=1e3*c.jitter),c.timestamp&&(s.timestamp=c.timestamp))}getCodecFromCodecStats(t){const s=this.report.get(t);if(!s)return"";const c=s.mimeType.match(/\/(.*)$/);return c&&c[1]?c[1]:""}updateSendBitrate(){let t=0,s=null,c=null;this.mediaBytesSent.forEach(h=>{t+=h.diffMean()}),this.mediaBytesRetransmit.forEach(h=>{s=s===null?h.diffMean():s+h.diffMean()}),this.mediaBytesTargetEncode.forEach(h=>{c=c===null?h.diffMean():c+h.diffMean()});const u=s!==null?t-s:t;this._stats.bitrate={actualEncoded:8*u/(this.options.updateInterval/1e3),transmit:8*t/(this.options.updateInterval/1e3)},s!==null&&(this._stats.bitrate.retransmit=8*s/(this.options.updateInterval/1e3)),c!==null&&(this._stats.bitrate.targetEncoded=8*c/(this.options.updateInterval/1e3))}},PC=class extends HR{updateStats(){return Ut.resolve()}};function WA(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:8,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:500,h=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1e4;const _=function(){const B=navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]*/i);return B&&B[0]?Number(B[0].split("/")[1]):null}();return _?_<76?new nr(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h}):new wc(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h}):function(B){if(!window.RTCStatsReport)return!1;const Q=B.getStats();return!!(Q instanceof Ut||function(T){return!!T&&(typeof T=="object"||typeof T=="function")&&typeof T.then=="function"}(Q))}(t)?new wc(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h}):new PC(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h})}const YR="websdk_ng_install_id";function I2(){try{if(de("INSTALL_ID"))return de("INSTALL_ID");let t=window.localStorage.getItem(YR);return t||(t=Pd(),window.localStorage.setItem(YR,t)),Dn("INSTALL_ID",t),t}catch{return}}const W1=function(t){if(t.match(/[0-9]+\.[0-9]+\.[0-9]+$/))return t;const s=t.match(/([0-9]+\.[0-9]+\.[0-9]+)\-([0-9]+)/);if(s&&s[1]&&s[2]){const c=s[1],u=s[2];return"".concat(c,".").concat(u)}return"4.0.0.999"}("4.24.5"),d4=function(){try{return JSON.parse("true")===!0}catch{return!0}}();let Ah=function(t){return t.Default="default",t.Auto="auto",t.Relay="relay",t.SdRtn="sd-rtn",t}({});const Bn=function(){const t="us".concat("erna","me"),s="pa".concat("sswo","rd"),c=["t","s","t"];c.splice(1,0,"e");const u=c.join(""),h=[];for(let Q=0;Q<6;Q++)h.push("1");const _=h.join(""),B={};return B[t]=u,B[s]=_,Object.assign(B,{turnServerURL:"",tcpport:3433,udpport:3478,forceturn:!1})}();window.DEFAULT_TURN_CONFIG=Bn;const XA={ENABLE_PUBLISHED_USER_LIST:!0,ENABLE_USER_LIST:!1,MAX_SUBSCRIPTION:50,SUBSCRIBE_AUDIO_FILTER_TOPN:void 0,ENABLE_PUBLISH_AUDIO_FILTER:void 0,ENABLE_USER_LICENSE_CHECK:!0,DISABLE_FEC:void 0,ENABLE_NTP_REPORT:!0,ENABLE_INSTANT_VIDEO:!1,ENABLE_USER_AUTO_REBALANCE_CHECK:!0,ENABLE_LOSSBASED_BWE:!0,ENABLE_AUT_CC:!0,FORCE_ENABLE_AUT_CC:!1,ENABLE_CC_FALLBACK:void 0,SUBSCRIBE_TWCC:!0,PUBLISH_TWCC:!1,ENABLE_SVC_DEFAULT_CODECS:["H264","VP8","VP9","AV1"],SVC:[],ENABLE_FULL_LINK_AV_SYNC:!1,SVC_MODE:null,ENABLE_AUT_FEEDBACK:!0,SVC_EXTENDED:["VP9"],ENABLE_JOIN_V4:!1,ENABLE_AP_COMPRESS:!0},Qa={MIN_FRAME_RATE:1,MAX_FRAME_RATE:30,MAX_THRESHOLD_FRAMERATE:30,BITRATE_MIN_THRESHOLD:100,BITRATE_MAX_THRESHOLD:100,MAX_SCALE:5,BWE_SCALE_UP_THRESHOLD:.6,BWE_SCALE_DOWN_THRESHOLD:.6,PERF_SCALE_UP_THRESHOLD:.7,PERF_SCALE_DOWN_THRESHOLD:.6,MOTION_RESOLUTION_FACTOR:.8,MOTION_BITRATE_FACTOR:.6,DETAIL_FRAMERATE_FACTOR:.8,DETAIL_BITRATE_FACTOR:.6,BALANCE_RESOLUTION_FACTOR:.9,BALANCE_FRAMERATE_FACTOR:.9,BALANCE_BITRATE_FACTOR:.6,OVERUSE_TIMES_THRESHOLD:10,UNDERUSE_TIMES_THRESHOLD:40},Ng="v4.24.5-0-g604b18ede-dirty(6/25/2026, 6:06:10 PM)",Ta={ENABLE_EVENT_REPORT:!0,UPLOAD_LOG:!1,ENABLE_AG_ADAPTATION:!0,FORCE_AG_HIGH_FRAMERATE:!1,FORCE_SUPPORT_AG_ADAPTATION:!1,ENCODER_CONFIG_LIMIT:{},CAMERA_CAPTURE_CONFIG:void 0,ENABLE_PRELOAD:!0,NEW_ICE_RESTART:!0,ICE_RESTART_INTERVAL:1e4,RESTART_SEQUENCE:["udp_tcp_relay","relay"],FIRST_TCP_CANDIDATE:!1,MAX_CONFIG_RETRY:10,ENABLE_CONFIG_RESTORE:!1,CONFIG_RESTORE_ERROR_API:["createClient","Client.join"],CONFIG_ERROR_MONITOR:["INVALID_OPERATION","UNEXPECTED_ERROR"],BLOCKED_CONFIG_MAX_TIME:864e5,FIRST_TCP_CANDIDATE_INTERVAL:1e3,TURN_DOMAIN:"edge.agora.io",TURN_DOMAINS:["edge.agora.io"],USE_TURN_IP:!0,NEW_TURN_MODE:4,NEW_FORCE_TURN:!1,USE_NEW_RENDER_FREEZE_TIME:!0,FLS_FALLBACK_TIMEOUT:3e4,RTE_DETAIL_REPORT_INTERVAL:6e4,ENCODE_EXCEPTION_TIMES:5,ENABLE_ENCODE_EXCEPTION:!0,ENCODE_EXCEPTION_VALIDATE_CODEC:["h264"],VIDEO_ENCODER_CONFIG_LIST:[{width:240,height:180},{width:320,height:240},{width:400,height:300},{width:480,height:360},{width:560,height:420},{width:640,height:480}],DELETE_NEQ_AFTER_USER_LEAVE:!0,UPDATE_RTP_CAP_IN_HOST:!1,IOS_BG_TAG:!0,IOS_AUTO_RESTART_BG_TAG:!0,IGNORE_UID_CHECK:!1,ENABLE_UP_SPS_PPS:!1,ENABLE_DOWN_SPS_PPS:!0,NO_EDGES_RETRY:!0,BUFFER_READY_FRAMES:3,FLS_SYNC_AV_PLAY_LIMIT:0,FLS_BUFFER_WAIT_TIME:1500,VOS_CONFIGURE:void 0,ENABLE_QUALITY_FALLBACK:!1,QUALITY_FALLBACK_REHEARSAL:!0,ENABLE_FLS_AV1_FIRST:!1,ENABLE_AP_MULTI_IP:!0,FLS_ENABLE_AV1_DETECT:!0,FLS_ENABLE_AV1_DECODE_DETECT:!0,ENABLE_SDP_ENDPOINT_LOG:!1,REMOTE_VIDEO_FREEZE_TIME_VERSION:2},Vi=wt(wt(wt(wt({},Ta),{},{PROCESS_ID:"",ENCRYPT_AES:!0,AREAS:["CHINA","GLOBAL"],WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-web-2.ap.sd-rtn.com","cds-ap-web-3.agora.io","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-web-2.ap.sd-rtn.com","sua-ap-web-3.agora.io","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-ap-web-1.agora.io","uap-web-2.ap.sd-rtn.com","uap-ap-web-3.agora.io","uap-web-4.ap.sd-rtn.com"],LOG_UPLOAD_SERVER:"logservice.agora.io",EVENT_REPORT_DOMAIN:"statscollector-1.agora.io",EVENT_REPORT_BACKUP_DOMAIN:"web-2.statscollector.sd-rtn.com",GATEWAY_ADDRESS:[],GATEWAY_WSS_ADDRESS:"",LIVE_STREAMING_ADDRESS:"",HTTP_CONNECT_TIMEOUT:5e3,SIGNAL_REQUEST_TIMEOUT:1e4,REPORT_STATS:!0,NOT_REPORT_EVENT:[],PING_PONG_TIME_OUT:10,WEBSOCKET_TIMEOUT_MIN:1e4,EVENT_REPORT_SEND_INTERVAL:3e3,CONFIG_DISTRIBUTE_INTERVAL:3e5,ENABLE_CONFIG_DISTRIBUTE:!0,CANDIDATE_TIMEOUT:5e3,SHOW_REPORT_INVOKER_LOG:!1,SHOW_REPORT_USER_INVOKER_LOG:!0,JOIN_EXTEND:"",PUB_EXTEND:"",SUB_EXTEND:"",FORCE_TURN:!1,TURN_ENABLE_TCP:!0,TURN_ENABLE_UDP:!0,MAX_UPLOAD_CACHE:50,UPLOAD_CACHE_INTERVAL:2e3,AJAX_REQUEST_CONCURRENT:3,REPORT_APP_SCENARIO:void 0,GATEWAY_DOMAINS:["edge.agora.io","edge.sd-rtn.com"],CONNECT_GATEWAY_WITHOUT_DOMAIN:!1,WORKER_DOMAIN:"edge.agora.io",EVENT_REPORT_RETRY:!0,CHROME_FORCE_PLAN_B:!1,AUDIO_SOURCE_VOLUME_UPDATE_INTERVAL:400,AUDIO_SOURCE_AVG_VOLUME_DURATION:3e3,AUDIO_VOLUME_INDICATION_INTERVAL:2e3,VOLUME_VOICE_WEIGHT:10,GET_VOLUME_OF_MUTED_AUDIO_TRACK:!1,STATS_UPDATE_INTERVAL:250,NORMAL_EVENT_QUEUE_CAPACITY:100,CUSTOM_REPORT:!0,CUSTOM_REPORT_LIMIT:20,PROXY_SERVER_TYPE2:"webnginx-proxy.agora.io",PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com","webrtc-cloud-proxy.agora.io"],CUSTOM_PUB_ANSWER_MODIFIER:null,CUSTOM_SUB_ANSWER_MODIFIER:null,CUSTOM_PUB_OFFER_MODIFIER:null,CUSTOM_SUB_OFFER_MODIFIER:null,DSCP_TYPE:"high",REMOVE_NEW_CODECS:!0,FRAGEMENT_LENGTH:3,WEBSOCKET_COMPRESS:!1,SIMULCAST:!1,CHECK_VIDEO_VISIBLE_INTERVAL:3e4,CHECK_LOCAL_STATS_INTERVAL:250,PROFILE_SWITCH_INTERVAL:2e3,UNSUPPORTED_VIDEO_CODEC:[],ENUMERATE_DEVICES_INTERVAL:!1,ENUMERATE_DEVICES_INTERVAL_TIME:1e4,USE_NEW_TOKEN:!1,CLOSE_AFB_FOR_LOCAL_AP:!0,JOIN_MAX_CONCURRENCY:6,JOIN_WITH_FALLBACK_SIGNAL_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE:!1,JOIN_GATEWAY_TRY_443PORT_DURATION:2e3,JOIN_GATEWAY_USE_443PORT_ONLY:!1,JOIN_GATEWAY_USE_DUAL_DOMAIN:!0,JOIN_GATEWAY_FALLBACK_PORT:443,USE_TURN_SERVER_OF_GATEWAY:!1,H264_PROFILE_LEVEL_ID:"",USE_NEW_LOG:!1,LOG_VERSION:3,MEDIA_DEVICE_CONSTRAINTS:null,ENCRYPT_PROXY_USERNAME_AND_PSW:!0,SDP_LOGGING:!1,CSP_DETECTED_HOSTNAME_LIST:["agora.io","sd-rtn.com"],REMOTE_AUDIO_TRACK_USES_WEB_AUDIO:!1,LOCAL_AUDIO_TRACK_USES_WEB_AUDIO:!1,BITRATE_ADAPTER_TYPE:"STANDARD_BITRATE",AI_DENOISER_PARAMETERS:{excludedLinks:[]},ADJUST_3A_FROM_PLUGINS:!0,RAISE_H264_BASELINE_PRIORITY:!0,FILTER_SEND_H264_BASELINE:!1,FIRST_H264_PROFILE_LEVEL_ID:"42001f",FIRST_PACKETIZATION_MODE:"",X_GOOGLE_START_BITRATE:void 0,NEW_REPORT_SERVER:!1,NEW_REPORT_SERVER_DOMAINS:["data-reporting.agora.io","data-reporting.agora.io"],VIDEO_INSPECT_WORKER_MESSAGE_LENGTH_LIMIT:3e5,VIDEO_INSPECT_INTERVAL_MINIMUM:1e3,VIDEO_INSPECT_QUALITY_RATIO:.9,VIDEO_INSPECT_WORKER_MANAGER_HOST:"edge.agora.io",VIDEO_INSPECT_WORKER_MANAGER_PORT:"",VIDEO_INSPECT_WORKER_MANAGER_WSS:"",VIDEO_INSPECT_WORKER_PORT:"",SHOW_VIDEO_INSPECT_WORKER_MESSAGE:!1,STATS_COLLECTOR_PORT:443,FORCE_TURN_TCP:!1,WEBAUDIO_INIT_OPTIONS:void 0,FILTER_VIDEO_FEC:!0,FILTER_AUDIO_FEC:!1,CHROME_DUAL_STREAM_USE_ENCODING:!0,DISABLE_DUAL_STREAM_USE_ENCODING:!1,EXTENSION_USAGE_UPLOAD_INTERVAL:1e4,ICE_RESTART:!0,FINGERPRINT:null,ENABLE_VIDEO_FRAME_CALLBACK:!0,VIDEO_FREEZE_DURATION:500,SPATIALIZER_PARAMETERS:{},UPLOAD_LOG_INTERVAL:3e3,UPLOAD_LOG_REQUEST_RETRY_INTERVAL:2e3,UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL:2e4,UPLOAD_LOG_TRY_INTERVAL_WHILE_OFF:5e3,UPLOAD_LOG_RETRY_INTERVAL_V1:1e4,UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1:200,UPLOAD_LOG_LENGTH_EACH_TIME:10,APP_TYPE:0,DISABLE_WEBAUDIO:!1,CHANNEL_MEDIA_RELAY_SERVERS:void 0,KEEP_LAST_FRAME:!0,FORWARD_P2P_CREATION:!0,SYNC_GROUP:!0,BLOCK_LOCAL_CLIENT:!1,ENABLE_AUDIO_TOPN:!1,ENABLE_AUDIO_METADATA:!1,ENABLE_AUDIO_PTS:!1,TOPN_SMOOTH_LEVEL:void 0,TOPN_NEW_SPEAKER_DELAY:void 0,TOPN_SWITCH_HOLD_MS:void 0,TOPN_AUDIO_GAIN:void 0,TOPN_SILENCE_THRESHOLD:250,AP_AREA:!0,ENABLE_ENCODED_TRANSFORM:!1,ENABLE_VIDEO_SEI:!1,IMAGE_MODERATION_WORKER_HOST:"edge.agora.io",IMAGE_MODERATION_WORKER_WSS:"",IMAGE_MODERATION_WORKER_MESSAGE_LENGTH_LIMIT:3e5,IMAGE_MODERATION_INTERVAL_MINIMUM:1e3,SHOW_IMAGE_MODERATION_WORKER_MESSAGE:!1,IMAGE_MODERATION_QUALITY_RATIO:.9,IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL:5e3,SHOW_GLOBAL_CLIENT_LIST:!1,DATASTREAM_MAX_RETRANSMITS:10,TCP_CANDIDATE_ONLY:!1,EXTERNAL_SIGNAL_REQUEST_TIMEOUT:3e3,SHOW_P2P_LOG:!1,MAX_P2P_TIMEOUT:3e4,P2P_TOKEN_INTERVAL:1e3,SHOW_DATASTREAM2_LOG:!1,RESTRICTION_SET_PLAYBACK_DEVICE:!0,USE_PURE_ENCRYPTION_MASTER_KEY:!1,ENABLE_AUDIO_RED:!1,OPUS_PTIME:void 0,AUDIO_DUPLICATE_NUM:void 0,ENABLE_ABSSENDTIME_AS_SENTTS:!0,ACCOUNT_REGISTER_RETRY_TIMEOUT:1,ACCOUNT_REGISTER_RETRY_RATIO:2,ACCOUNT_REGISTER_RETRY_TIMEOUT_MAX:6e4,ACCOUNT_REGISTER_RETRY_COUNT_MAX:1e5,AUDIO_CONTEXT:null,WEBCS_BACKUP_CONNECT_TIMEOUT:6e3,PLAYER_STATE_DEFER:2e3,SIGNAL_REQUEST_WATCH_INTERVAL:1e3,FILEPATH_LENMAX:255,DUALSTREAM_OPERATION_CHECK:!0,MEDIA_ELEMENT_EXISTS_DEPTH:3,SHIM_CANDIDATE:!1,LEAVE_MSG_TIMEOUT:2e3,STATS_FILTER:{transportId:!0,googTrackId:!0},FILTER_VIDEO_CODEC:[],SIGNAL_CHANNEL:0,TRANSMITTER_INITIAL_RTT:30,TRANSMITTER_INITIAL_RTO:30,TRANSMITTER_MAX_BATCH_ACK_COUNT:2,TRANSMITTER_MAX_RTO:500,DATACHANNEL_COMPRESS:!1,DC_JOIN_WITH_FAILBACK:4e3,DC_CONNECTION_TIMEOUT:2e3,DC_PINGPONG_INTERVAL:2e3,DC_DEBUG_LOG:!1,UNSUPPORTED_VIDEO_UPLINK_CODEC:[],UNSUPPORTED_VIDEO_DOWNLINK_CODEC:[],USE_NEW_NETWORK_CONFIG:!1,AUTO_RESET_AUDIO_ROUTE:!1,PLUGIN_INFO:[],OVERUSE_DETECTOR_PARAMS:Qa,CUSTOM_ADAPTATION_DEFAULT_MODE:"",HIDE_NO_POSTER:!1,AP_CACHE_NUM:10,AP_UPDATE_INTERVAL:12e4,AP_CACHE_LIFETIME:12e4,MAX_PRELOAD_ASYNC_LENGTH:3,DISABLE_SCREEN_SHARE_REMB:!1},XA),{},{USE_CANDIDATE_FROM_AP_DETAIL:!1,AP_REQUEST_DETAIL:void 0,ENABLE_ROLE_SELECT_EDGE:!1,CLIENT_ROLE_OPTIONS:void 0,REMOTE_VIDEO_STREAM_TYPE:void 0,COMPATIBLE_SDP_EXTENSION:["gdpr_forbidden"],LIMIT_BITRATE:void 0,EXPERIMENTS:{},USE_PUB_RTX:!0,USE_SUB_RTX:!0,ENABLE_DATASTREAM_2:!1,USE_XR:!0,ENABLE_PREALLOC_PC:!1,ENABLE_PRE_SUB:!1,ENABLE_SVC:!1,ENABLE_FORCE_HLS:!1,MAX_WEBAUDIO_VOLUME:300,ENABLE_VOS_FALLBACK:!1,ENABLE_FALLBACK_TO_HLS:!1,ENABLE_PRE_RENDER:!1,FORCE_DISABLE_AUTO_SUB:!1,ENABLE_PRE_SUB_WITH_PRE_PC:!0,PRE_USE_LOCAL_CODECS:!0},{INSTALL_ID:""}),{},{K_MIN_RENDER_DELAY:66,USE_STANDARD_BITRATE_DEFAULT:!1,VIDEO_NEW_BITRATE_RATIO:void 0,VIDEO_STANDARD_BITRATE_VERSION:2,BASELINE_MORE_H264_BITRATE_RATIO:1.1,IGNORE_RTC_DEVICE_CHECK:!1,FLS_AUTOPLAY_EMITS:!1,ENABLE_DUAL_STREAM_FLAG:!1,FORBID_MODIFY_LOCAL_OFFER_SDP:!1,RESERVE_MID_1_MLINE:!1,PRE_SUB_NUM:1,DC_IN_ESM:!0,PRE_PLAYOUT_DELAY_HINT:void 0});function Dn(t,s,c){var u,h,_;Et(u=Object.keys(Vi)).call(u,t)&&(!c&&Et(h=Object.keys($e)).call(h,t)||(Vi[t]=s,t!=="ENABLE_VIDEO_SEI"&&t!=="ENABLE_AUDIO_TOPN"&&t!=="ENABLE_AUDIO_METADATA"&&t!=="ENABLE_AUDIO_PTS"||s!==!0||(Vi.ENABLE_ENCODED_TRANSFORM=!0),t==="USE_NEW_NETWORK_CONFIG"&&s&&(_=!!s,Vi.USE_NEW_NETWORK_CONFIG=_,_&&(Vi.WEBCS_DOMAIN=["webrtc2-2.ap.sd-rtn.com"],Vi.WEBCS_DOMAIN_BACKUP_LIST=["webrtc2-4.ap.sd-rtn.com"],Vi.CDS_AP=["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],Vi.ACCOUNT_REGISTER=["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],Vi.EVENT_REPORT_DOMAIN="web-2.statscollector.sd-rtn.com",Vi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-1.agora.io",Vi.GATEWAY_DOMAINS=["edge.sd-rtn.com"])),t==="ENABLE_PRE_SUB"&&s&&(Vi.ENABLE_INSTANT_VIDEO=!0,Vi.ENABLE_PREALLOC_PC=!0),t==="ENABLE_SVC"&&s&&(Vi.ENABLE_AUT_CC=!0),t==="NEW_FORCE_TURN"&&s&&(Vi.NEW_TURN_MODE||(Vi.NEW_TURN_MODE=4))))}function de(t){if(t==="TURN_DOMAINS"){const s=Vi.TURN_DOMAINS;return Et(s).call(s,de("TURN_DOMAIN"))?s:[de("TURN_DOMAIN")].concat(s)}return Vi[t]}d4||(Vi.WEBCS_DOMAIN=["ap-web-1-oversea.agora.io","ap-web-1-north-america.agora.io"],Vi.WEBCS_DOMAIN_BACKUP_LIST=["ap-web-2-oversea.agora.io","ap-web-2-north-america.agora.io"],Vi.PROXY_CS=["proxy-ap-web-oversea.agora.io","proxy-ap-web-america.agora.io"],Vi.CDS_AP=["cds-ap-web-oversea.agora.io","cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],Vi.ACCOUNT_REGISTER=["sua-ap-web-oversea.agora.io","sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],Vi.UAP_AP=["uap-ap-web-oversea.agora.io","uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],Vi.LOG_UPLOAD_SERVER="logservice-oversea.agora.io",Vi.EVENT_REPORT_DOMAIN="statscollector-1-oversea.agora.io",Vi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-2-oversea.agora.io",Vi.PROXY_SERVER_TYPE3="webrtc-cloud-proxy.agora.io",Vi.AREAS=["NORTH_AMERICA","OVERSEA"]);let Li=function(t){return t[t.REALTIME=1]="REALTIME",t}({});const $e={};var Fr=function(t){return t.SET_SESSION_ID="SET_SESSION_ID",t.SET_RTE_URL="SET_RTE_URL",t.SET_RTE_SID="SET_RTE_SID",t.SET_P2P_ID="SET_P2P_id",t.SET_DC_ID="SET_DC_id",t.SET_UID="SET_UID",t.SET_INT_UID="SET_INT_UID",t.SET_PUB_ID="SET_PUB_ID",t.SET_CLOUD_PROXY_SERVER_MODE="SET_CLOUD_PROXY_SERVER_MODE",t.KEY_METRIC_CLIENT_CREATED="KEY_METRIC_CLIENT_CREATED",t.KEY_METRIC_JOIN_START="KEY_METRIC_JOIN_START",t.KEY_METRIC_PRELOAD_START="KEY_METRIC_PRELOAD_START",t.KEY_METRIC_PRELOAD_END="KEY_METRIC_PRELOAD_END",t.KEY_METRIC_JOIN_END="KEY_METRIC_JOIN_END",t.KEY_METRIC_REQUEST_AP_START="KEY_METRIC_REQUEST_AP_START",t.KEY_METRIC_REQUEST_AP_END="KEY_METRIC_REQUEST_AP_END",t.KEY_METRIC_REQUEST_SUA_END="KEY_METRIC_REQUEST_SUA_END",t.KEY_METRIC_BEFORE_CONNECT="KEY_METRIC_BEFORE_CONNECT",t.KEY_METRIC_PEER_RECEIVER="KEY_METRIC_PEER_RECEIVER",t.KEY_METRIC_SIGNAL_CONNECTED="KEY_METRIC_SIGNAL_CONNECTED",t.KEY_METRIC_JOIN_REQ="KEY_METRIC_JOIN_REQ",t.KEY_METRIC_JOIN_REP="KEY_METRIC_JOIN_REP",t.KEY_METRIC_JOIN_GATEWAY_START="KEY_METRIC_JOIN_GATEWAY_START",t.KEY_METRIC_JOIN_GATEWAY_END="KEY_METRIC_JOIN_GATEWAY_END",t.KEY_METRIC_PEER_CONNECTION_START="KEY_METRIC_PEER_CONNECTION_START",t.KEY_METRIC_PEER_CONNECTION_END="KEY_METRIC_PEER_CONNECTION_END",t.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED="KEY_METRIC_FIRST_VIDEO_FRAME_DECODED",t.KEY_METRIC_DESCRIPTION_START="KEY_METRIC_DESCRIPTION_START",t.KEY_METRIC_ICE_CONNECTION_END="KEY_METRIC_ICE_CONNECTION_END",t.KEY_METRIC_SIGNAL_CHANNEL_OPEN="KEY_METRIC_SIGNAL_CHANNEL_OPEN",t.KEY_METRIC_PUBLISH="KEY_METRIC_PUBLISH",t.KEY_METRIC_SUBSCRIBE="KEY_METRIC_SUBSCRIBE",t.RECORD_JOIN_CHANNEL_SERVICE="RECORD_JOIN_CHANNEL_SERVICE",t.RESET_JOIN_CHANNEL_SERVICE_RECORDS="RESET_JOIN_CHANNEL_SERVICE_RECORDS",t.RESET_KEY_METRICS="RESET_KEY_METRICS",t.RESET_FIRST_VIDEO_FRAME_DECODED="RESET_FIRST_VIDEO_FRAME_DECODED",t.SET_USE_P2P="SET_USE_P2P",t.SET_TRANSPORT_TYPE="SET_TRANSPORT_TYPE",t}(Fr||{});let Qn=function(t){return t.h264="h264",t.h265="h265",t.vp8="vp8",t.vp9="vp9",t.av1="av1",t}({});(function(t){t.opus="opus",t.pcma="pcma",t.pcmu="pcmu",t.g722="g722"})({});const u4=128,UC=96,g4=1e3,ch=10;let vc=0;var kn=(()=>{var t={8:(u,h,_)=>{_.r(h),_.d(h,{Parser:()=>st,Printer:()=>ui,parse:()=>mt,print:()=>Gt});const B=` +`,Q="".concat("\r").concat(B),T=" ";let D;function O(at){return at>="0"&&at<="9"}function P(at){return at>="!"&&at<="~"}function U(at){return P(at)||at>="€"&&at<="ÿ"}function H(at){return at==="!"||at>="#"&&at<="'"||at>="*"&&at<="+"||at>="-"&&at<="."||at>="0"&&at<="9"||at>="A"&&at<="Z"||at>="^"&&at<="~"}function $(at){return at>="1"&&at<="9"}function Z(at){return at>="A"&&at<="Z"||at>="a"&&at<="z"}function te(at){return at==="d"||at==="h"||at==="m"||at==="s"}function se(at){return at>""&&at<" "||at>"\v"&&at<"\f"||at>""&&at<"ÿ"}function ge(at){return Z(at)||O(at)||at==="+"||at==="/"}function me(at){return O(at)||Z(at)||at==="+"||at==="/"||at==="-"||at==="_"}function Qe(at){return Z(at)||O(at)||at==="+"||at==="/"}function Oe(at,ie){var Te=Object.keys(at);if(Object.getOwnPropertySymbols){var ke=Object.getOwnPropertySymbols(at);ie&&(ke=ke.filter(function(_t){return Object.getOwnPropertyDescriptor(at,_t).enumerable})),Te.push.apply(Te,ke)}return Te}function we(at){for(var ie=1;ie=0&&_t<=255)return ke;throw new Error("Invalid decimal uchar")}consumeIP6Address(ie,Te){let ke=this.consumeHexpart(ie,Te);return ie[ke]===":"&&(ke+=1,ke=this.consumeIP4Address(ie,ke)),ke}consumeHexpart(ie,Te){let ke=Te;if(ie[ke]===":"&&ie[ke+1]===":"){ke+=2;try{ke=this.consumeHexseq(ie,ke)}catch{}return ke}if(ke=this.consumeHexseq(ie,ke),ie[ke]===":"&&ie[ke+1]===":"){ke+=2;try{ke=this.consumeHexseq(ie,ke)}catch{}return ke}return ke}consumeHexseq(ie,Te){let ke=Te;for(;ke=this.consumeHex4(ie,ke),ie[ke]===":"&&ie[ke+1]!==":";)ke+=1;return ke}consumeHex4(ie,Te){let ke=0;for(;ke<4;ke++)if(!((_t=ie[Te+ke])>="0"&&_t<="9"||_t>="a"&&_t<="f"||_t>="A"&&_t<="F")){if(ke===0)throw new Error("Invalid hex 4");break}var _t;return Te+ke}consumeFQDN(ie,Te){let ke=Te;for(;O(ie[ke])||Z(ie[ke])||ie[ke]==="-"||ie[ke]===".";)ke+=1;if(ke-Te<4)throw new Error("Invalid FQDN");return ke}consumeExtnAddr(ie,Te){return this.consumeOneOrMore(ie,Te,U)}consumeMulticastAddress(ie,Te,ke){switch(ke){case"IP4":case"ip4":return this.consumeIP4MulticastAddress(ie,Te);case"IP6":case"ip6":return this.consumeIP6MulticastAddress(ie,Te);default:try{return this.consumeFQDN(ie,Te)}catch{return this.consumeExtnAddr(ie,Te)}}}consumeIP6MulticastAddress(ie,Te){const ke=this.consumeHexpart(ie,Te);return ie[ke]==="/"?this.consumeInteger(ie,ke+1):ke}consumeIP4MulticastAddress(ie,Te){let ke=Te+3;const _t=ie.slice(Te,ke),Ar=parseInt(_t);if(Ar<224||Ar>239)throw new Error("Invalid IP4 multicast address, IPv4 multicast addresses may be in the range 224.0.0.0 to 239.255.255.255.");for(let ni=0;ni<3;ni++){if(ie[ke]!==".")throw new Error("Invalid IP4 multicast address.");ke+=1,ke=this.consumeDecimalUChar(ie,ke)}return ie[ke]==="/"&&(ke+=1),ke=this.consumeTTL(ie,ke),ie[ke]==="/"&&(ke=this.consumeInteger(ie,ke)),ke}consumeInteger(ie,Te){if(!$(ie[Te]))throw new Error("Invalid integer.");for(Te+=1;O(ie[Te]);)Te+=1;return Te}consumeTTL(ie,Te){if(ie[Te]==="0")return Te+1;if(!$(ie[Te]))throw new Error("Invalid TTL.");Te+=1;for(let ke=0;ke<2&&O(ie[Te]);ke++)Te+=1;return Te}consumeToken(ie,Te){return this.consumeOneOrMore(ie,Te,H)}consumeTime(ie,Te){let ke=Te;if(ie[ke]==="0")return ke+1;for($(ie[ke])&&(ke+=1);O(ie[ke]);)ke++;if(ke-Te<10)throw new Error("Invalid time");return ke}consumeAddress(ie,Te){return this.consumeTill(ie,Te,T)}consumeTypedTime(ie,Te){let ke=Te;return ke=this.consumeOneOrMore(ie,ke,O),te(ie[ke])?ke+1:ke}consumeRepeatInterval(ie,Te){if(!$(ie[Te]))throw new Error("Invalid repeat interval");for(Te+=1;O(ie[Te]);)Te+=1;return te(ie[Te])&&(Te+=1),Te}consumePort(ie,Te){return this.consumeOneOrMore(ie,Te,O)}consume(ie,Te,ke){for(let _t=0;_t=ie.length)throw new Error("consume exceeding value length");if(ie[Te+_t]!==ke[_t])throw new Error("consume ".concat(ke," failed at ").concat(_t))}return Te+ke.length}consumeTill(ie,Te,ke){let _t=Te;for(;_t!!Ga(Ec).call(Ec)).map(this.parseLine),this.currentLine=0;const ke=this.parseVersion(),_t=this.parseOrigin(),Ar=this.parseSessionName(),ni=this.parseInformation(),Ds=this.parseUri(),Wo=this.parseEmail(),Nl=this.parsePhone(),a1=this.parseConnection(),_s=this.parseBandWidth(),c1=this.parseTimeFields(),Id=this.parseKey(),UA=this.parseSessionAttribute(),xs=this.parseMediaDescription();if(this.currentLine!==this.records.length)throw new Error("parsing failed, non exhaustive sdp lines.");return{version:ke,origin:_t,sessionName:Ar,information:ni,uri:Ds,emails:Wo,phones:Nl,connection:a1,bandwidths:_s,timeFields:c1,key:Id,attributes:UA,mediaDescriptions:xs}}getCurrentRecord(){const ie=this.records[this.currentLine];if(!ie)throw new Error("Record doesn't exit.");return ie}probeEOL(ie){for(let Te=0;Te=.");const ke=ie[0];if(ie[1]!=="=")throw new Error('Invalid sdp line, should be a single character followed by an "=" sign.');return{type:ke,value:ie.slice(2),line:Te,cur:0}}parseSessionAttribute(){const ie=new lr;for(;this.currentLineH(_t)&&_t!==":"),_cur:0};Te.value[Te.cur]===":"&&(Te.cur+=1,ke.attValue=this.extractOneOrMore(Te,se)),ie.parse(ke),this.currentLine++}return ie.digest()}parseMediaAttributes(ie){const Te=new ft(ie);for(;this.currentLineH(Ar)&&Ar!==":"),_cur:0};ke.value[ke.cur]===":"&&(ke.cur+=1,_t.attValue=this.extractOneOrMore(ke,se)),Te.parse(_t),this.currentLine++}return Te.digest()}parseKey(){const ie=this.getCurrentRecord();if(ie.type===D.KEY){if(ie.value==="prompt"||ie.value==="clear:"||ie.value==="base64:"||ie.value==="uri:")return ie.value;throw this.currentLine++,new Error("Invalid key.")}}parseZone(){const ie=this.getCurrentRecord();if(ie.type===D.ZONE_ADJUSTMENTS){const Te=[];for(;;)try{const ke=this.extract(ie,this.consumeTime);this.consumeSpaceForRecord(ie);let _t=!1;ie.value[ie.cur]==="-"&&(_t=!0,ie.cur+=1);const Ar=this.extract(ie,this.consumeTypedTime);Te.push({time:ke,typedTime:Ar,back:_t})}catch{break}if(Te.length===0)throw new Error("Invalid zone adjustments");return this.currentLine++,Te}return[]}parseRepeat(){const ie=[];for(;;){const Te=this.getCurrentRecord();if(Te.type!==D.REPEAT)break;{const ke=this.extract(Te,this.consumeRepeatInterval),_t=this.parseTypedTime(Te);ie.push({repeatInterval:ke,typedTimes:_t}),this.currentLine++}}return ie}parseTypedTime(ie){const Te=[];for(;;)try{this.consumeSpaceForRecord(ie),Te.push(this.extract(ie,this.consumeTypedTime))}catch{break}if(Te.length===0)throw new Error("Invalid typed time.");return Te}parseTime(){const ie=this.getCurrentRecord(),Te=this.extract(ie,this.consumeTime);this.consumeSpaceForRecord(ie);const ke=this.extract(ie,this.consumeTime);return this.currentLine++,{startTime:Te,stopTime:ke}}parseBandWidth(){const ie=[];for(;this.currentLine2?ke-2:0),Ar=2;ArWo)throw new Error("error in length, should be less or equal than ".concat(Wo," characters."));return ie._cur=_t,Ar}consumeAttributeSpace(ie){if(ie.attValue[ie._cur]!==T)throw new Error("Invalid space at ".concat(ie._cur,"."));ie._cur+=1}extract(ie,Te){if(!ie.attValue)throw new Error("Nothing to extract from attValue.");for(var ke=arguments.length,_t=new Array(ke>2?ke-2:0),Ar=2;Ar=ie.attValue.length}peekChar(ie){if(!ie.attValue)throw new Error;return ie.attValue[ie._cur]}peek(ie,Te){if(!ie.attValue)throw new Error;for(let ke=0;keni!==T&&se(ni));ke.push({name:_t,value:Ar})}this.attributes.identities.push({assertionValue:Te,extensions:ke})}parseMsidSemantic(ie){this.peekChar(ie)===T&&this.consumeAttributeSpace(ie);const Te={semantic:this.extract(ie,this.consumeToken),identifierList:[]};for(;;){try{this.consumeAttributeSpace(ie)}catch{break}if(this.peekChar(ie)==="*"){this.extract(ie,this.consume,"*"),Te.applyForAll=!0;break}{const ke=this.extract(ie,this.consumeTill,T);Te.identifierList.push(ke)}}this.attributes.msidSemantic=Te}}class ft extends Xt{constructor(ie){super(),Ne(this,"attributes",void 0),ie.protos.indexOf("RTP")!==-1||ie.protos.indexOf("rtp"),this.attributes={unrecognized:[],candidates:[],extmaps:[],fingerprints:[],imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[]}}parse(ie){if(this.digested)throw new Error("already digested");try{switch(ie.attField){case"extmap":this.parseExtmap(ie);break;case"setup":this.parseSetup(ie);break;case"ice-ufrag":this.parseIceUfrag(ie);break;case"ice-pwd":this.parseIcePwd(ie);break;case"ice-options":this.parseIceOptions(ie);break;case"candidate":this.parseCandidate(ie);break;case"remote-candidate":this.parseRemoteCandidate(ie);break;case"end-of-candidates":this.parseEndOfCandidates();break;case"fingerprint":this.parseFingerprint(ie);break;case"rtpmap":this.parseRtpmap(ie);break;case"ptime":this.parsePtime(ie);break;case"maxptime":this.parseMaxPtime(ie);break;case"sendrecv":case"recvonly":case"sendonly":case"inactive":this.parseDirection(ie);break;case"ssrc":this.parseSSRC(ie);break;case"fmtp":this.parseFmtp(ie);break;case"rtcp-fb":this.parseRtcpFb(ie);break;case"rtcp-mux":this.parseRTCPMux();break;case"rtcp-mux-only":this.parseRTCPMuxOnly();break;case"rtcp-rsize":this.parseRTCPRsize();break;case"rtcp":this.parseRTCP(ie);break;case"mid":this.parseMid(ie);break;case"msid":this.parseMsid(ie);break;case"imageattr":this.parseImageAttr(ie);break;case"rid":this.parseRid(ie);break;case"simulcast":this.parseSimulcast(ie);break;case"sctp-port":this.parseSctpPort(ie);break;case"max-message-size":this.parseMaxMessageSize(ie);break;case"ssrc-group":this.parseSSRCGroup(ie);break;default:ie.ignored=!0,this.attributes.unrecognized.push(ie)}}catch(Te){throw console.error("parsing media attribute ".concat(ie.attField,' error, "a=').concat(ie.attField,":").concat(ie.attValue,'"')),Te}if(!ie.ignored&&ie.attValue&&!this.atEnd(ie))throw new Error("attribute parsing error")}parseCandidate(ie){const Te=this.extractOneOrMore(ie,ge,[1,32]);this.consumeAttributeSpace(ie);const ke=this.extractOneOrMore(ie,O,[1,5]);this.consumeAttributeSpace(ie);const _t=this.extract(ie,this.consumeToken);this.consumeAttributeSpace(ie);const Ar=this.extractOneOrMore(ie,O,[1,10]);this.consumeAttributeSpace(ie);const ni=this.extract(ie,this.consumeAddress);this.consumeAttributeSpace(ie);const Ds=this.extract(ie,this.consumePort);this.consumeAttributeSpace(ie),this.extract(ie,this.consume,"typ"),this.consumeAttributeSpace(ie);const Wo={foundation:Te,componentId:ke,transport:_t,priority:Ar,connectionAddress:ni,port:Ds,type:this.extract(ie,this.consumeToken),extension:{}};for(this.peek(ie," raddr")&&(this.extract(ie,this.consume," raddr"),this.consumeAttributeSpace(ie),Wo.relAddr=this.extract(ie,this.consumeAddress)),this.peek(ie," rport")&&(this.extract(ie,this.consume," rport"),this.consumeAttributeSpace(ie),Wo.relPort=this.extract(ie,this.consumePort));this.peekChar(ie)===T;){this.consumeAttributeSpace(ie);const Nl=this.extract(ie,this.consumeToken);this.consumeAttributeSpace(ie),Wo.extension[Nl]=this.extractOneOrMore(ie,P)}this.attributes.candidates.push(Wo)}parseRemoteCandidate(ie){const Te=[];for(;;){const ke=this.extractOneOrMore(ie,O,[1,5]);this.consumeAttributeSpace(ie);const _t=this.extract(ie,this.consumeAddress);this.consumeAttributeSpace(ie);const Ar=this.extract(ie,this.consumePort);Te.push({componentId:ke,connectionAddress:_t,port:Ar});try{this.consumeAttributeSpace(ie)}catch{break}}this.attributes.remoteCandidatesList.push(Te)}parseEndOfCandidates(){if(this.attributes.endOfCandidates)throw new Error("must be only one line of end-of-candidates");this.attributes.endOfCandidates=!0}parseRtpmap(ie){const Te=this.extract(ie,this.consumeToken);this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill,"/");this.extract(ie,this.consume,"/");const _t={encodingName:ke,clockRate:this.extractOneOrMore(ie,O)};this.atEnd(ie)||this.peekChar(ie)!=="/"||(this.extract(ie,this.consume,"/"),_t.encodingParameters=parseInt(this.extract(ie,this.consumeTill),10));const Ar=this.attributes.payloads.find(ni=>ni.payloadType===parseInt(Te,10));Ar?Ar.rtpMap=_t:this.attributes.payloads.push({payloadType:parseInt(Te,10),rtpMap:_t,rtcpFeedbacks:[]})}parsePtime(ie){if(this.attributes.ptime)throw new Error("must be only one line of ptime");this.attributes.ptime=this.extract(ie,this.consumeTill)}parseMaxPtime(ie){if(this.attributes.maxPtime)throw new Error("must be only one line of ptime");this.attributes.maxPtime=this.extract(ie,this.consumeTill)}parseDirection(ie){if(this.attributes.direction)throw new Error("must be only one line of direction info");this.attributes.direction=ie.attField}parseSSRC(ie){const Te=this.extractOneOrMore(ie,O);this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill,":");let _t;this.peekChar(ie)===":"&&(this.extract(ie,this.consume,":"),_t=this.extract(ie,this.consumeTill));const Ar=this.attributes.ssrcs.find(ni=>ni.ssrcId===parseInt(Te,10));Ar?Ar.attributes[ke]=_t:this.attributes.ssrcs.push({ssrcId:parseInt(Te,10),attributes:{[ke]:_t}})}parseFmtp(ie){const Te=this.extract(ie,this.consumeTill,T);this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill),_t={};ke.split(";").forEach(ni=>{let Ds=ir(ni.split("="),2),Wo=Ds[0],Nl=Ds[1];Wo=Ga(Wo).call(Wo);const a1=typeof Nl=="string"?Ga(Nl).call(Nl):null;typeof Wo=="string"&&Wo.length>0&&(_t[Wo]=a1)});const Ar=this.attributes.payloads.find(ni=>ni.payloadType===parseInt(Te,10));Ar?Ar.fmtp={parameters:_t}:this.attributes.payloads.push({payloadType:parseInt(Te,10),rtcpFeedbacks:[],fmtp:{parameters:_t}})}parseFmtParameters(ie){const Te={},ke=this.extract(ie,this.consumeTill,"=");ie._cur++;const _t=this.extract(ie,this.consumeTill,";");for(Te[ke]=_t;ie.attValue[ie._cur]===";";){const Ar=this.extract(ie,this.consumeTill,"=");ie._cur++;const ni=this.extract(ie,this.consumeTill,";");Te[Ar]=ni}return Te}parseRtcpFb(ie){let Te="";Te=this.peekChar(ie)==="*"?this.extract(ie,this.consume,"*"):this.extract(ie,this.consumeTill,T),this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill,T);let _t;if(ke==="trr-int")_t={type:ke,interval:this.extract(ie,this.consumeTill)};else{const Ar={type:ke};this.peekChar(ie)===T&&(this.consumeAttributeSpace(ie),Ar.parameter=this.extract(ie,this.consumeToken),this.peekChar(ie)===T&&(Ar.additional=this.extract(ie,this.consumeTill))),_t=Ar}if(Te==="*")this.attributes.rtcpFeedbackWildcards.push(_t);else{const Ar=this.attributes.payloads.find(ni=>ni.payloadType===parseInt(Te,10));Ar?Ar.rtcpFeedbacks.push(_t):this.attributes.payloads.push({payloadType:parseInt(Te,10),rtcpFeedbacks:[_t]})}}parseRTCPMux(){if(this.attributes.rtcpMux)throw new Error("must be single line of rtcp-mux");this.attributes.rtcpMux=!0}parseRTCPMuxOnly(){if(this.attributes.rtcpMuxOnly)throw new Error("must be single line of rtcp-only");this.attributes.rtcpMuxOnly=!0}parseRTCPRsize(){if(this.attributes.rtcpRsize)throw new Error("must be single line of rtcp-rsize");this.attributes.rtcpRsize=!0}parseRTCP(ie){if(this.attributes.rtcp)throw new Error("must be single line of rtcp");const Te={port:this.extract(ie,this.consumePort)};this.peekChar(ie)===T&&(this.consumeAttributeSpace(ie),Te.netType=this.extractOneOrMore(ie,H),this.consumeAttributeSpace(ie),Te.addressType=this.extractOneOrMore(ie,H),this.consumeAttributeSpace(ie),Te.address=this.extract(ie,this.consumeAddress)),this.attributes.rtcp=Te}parseMsid(ie){const Te={id:this.extractOneOrMore(ie,H,[1,64])};this.peekChar(ie)===T&&(this.consumeAttributeSpace(ie),Te.appdata=this.extractOneOrMore(ie,H,[1,64])),this.attributes.msids.push(Te)}parseImageAttr(ie){this.attributes.imageattr.push(ie.attValue)}parseRid(ie){const Te=this.extractOneOrMore(ie,_t=>Z(_t)||O(_t)||_t==="_"||_t==="-");this.consumeAttributeSpace(ie);const ke={id:Te,direction:this.extract(ie,this.consumeToken),params:[]};if(this.peekChar(ie)===T){if(this.consumeAttributeSpace(ie),this.peek(ie,"pt=")){this.extract(ie,this.consume,"pt=");const _t=[];for(;;){const Ar=this.extract(ie,this.consumeToken);_t.push(Ar);try{this.extract(ie,this.consume,",")}catch{break}}ke.payloads=_t,this.peekChar(ie)===T&&this.extract(ie,this.consume,T)}for(;;){const _t=this.extract(ie,this.consumeToken);switch(_t){case"depend":{const Ar={type:_t,rids:this.extract(ie,this.consume,"=").split(",")};ke.params.push(Ar);break}default:{const Ar={type:_t};this.peekChar(ie)==="="&&(this.extract(ie,this.consume,"="),Ar.val=this.extract(ie,this.consumeTill,";")),ke.params.push(Ar)}}try{this.extract(ie,this.consume,";")}catch{break}}}this.attributes.rids.push(ke)}parseSimulcast(ie){if(this.attributes.simulcast)throw new Error("must be single line of simulcast");this.attributes.simulcast=ie.attValue,this.extract(ie,this.consumeTill)}parseSctpPort(ie){this.attributes.sctpPort=this.extractOneOrMore(ie,O,[1,5])}parseMaxMessageSize(ie){this.attributes.maxMessageSize=this.extractOneOrMore(ie,O,[1,void 0])}digest(){return this.digested=!0,this.attributes}parseMid(ie){this.attributes.mid=this.extract(ie,this.consumeToken)}parseSSRCGroup(ie){const Te=this.extract(ie,this.consumeToken),ke=[];for(;;)try{this.consumeAttributeSpace(ie);const _t=this.extract(ie,this.consumeInteger);ke.push(parseInt(_t,10))}catch{break}this.attributes.ssrcGroups.push({semantic:Te,ssrcIds:ke})}}function Ir(at,ie,Te){return ie in at?Object.defineProperty(at,ie,{value:Te,enumerable:!0,configurable:!0,writable:!0}):at[ie]=Te,at}class ui{constructor(){Ir(this,"eol",Q)}print(ie,Te){let ke="";return Te&&(this.eol=Te),ke+=this.printVersion(ie.version),ke+=this.printOrigin(ie.origin),ke+=this.printSessionName(ie.sessionName),ke+=this.printInformation(ie.information),ke+=this.printUri(ie.uri),ke+=this.printEmail(ie.emails),ke+=this.printPhone(ie.phones),ke+=this.printConnection(ie.connection),ke+=this.printBandwidth(ie.bandwidths),ke+=this.printTimeFields(ie.timeFields),ke+=this.printKey(ie.key),ke+=this.printSessionAttributes(ie.attributes),ke+=this.printMediaDescription(ie.mediaDescriptions),ke}printVersion(ie){return"v=".concat(ie).concat(this.eol)}printOrigin(ie){return"o=".concat(ie.username," ").concat(ie.sessId," ").concat(ie.sessVersion," ").concat(ie.nettype," ").concat(ie.addrtype," ").concat(ie.unicastAddress).concat(this.eol)}printSessionName(ie){return ie?"s=".concat(ie).concat(this.eol):""}printInformation(ie){return ie?"i=".concat(ie).concat(this.eol):""}printUri(ie){return ie?"u=".concat(ie).concat(this.eol):""}printEmail(ie){let Te="";for(const ke of ie)Te+="e=".concat(ke).concat(this.eol);return Te}printPhone(ie){let Te="";for(const ke of ie)Te+="e=".concat(ke).concat(this.eol);return Te}printConnection(ie){return ie?"c=".concat(ie.nettype," ").concat(ie.addrtype," ").concat(ie.address).concat(this.eol):""}printBandwidth(ie){let Te="";for(const ke of ie)Te+="b=".concat(ke.bwtype,":").concat(ke.bandwidth).concat(this.eol);return Te}printTimeFields(ie){let Te="";for(const ke of ie){Te+="t=".concat(ke.time.startTime," ").concat(ke.time.startTime).concat(this.eol);for(const _t of ke.repeats)Te+="r=".concat(_t.repeatInterval," ").concat(_t.typedTimes.join(" ")).concat(this.eol);ke.zoneAdjustments&&(Te+="z=",Te+="z=".concat(ke.zoneAdjustments.map(_t=>"".concat(_t.time," ").concat(_t.back?"-":""," ").concat(_t.typedTime)).join(" ")).concat(this.eol),Te+=this.eol)}return Te}printKey(ie){return ie?"k=".concat(ie).concat(this.eol):""}printAttributes(ie){let Te="";for(const ke of ie)Te+="a=".concat(ke.attField).concat(ke.attValue?":".concat(ke.attValue):"").concat(this.eol);return Te}printMediaDescription(ie){let Te="";for(const ke of ie)Te+=this.printMedia(ke.media),Te+=this.printInformation(ke.information),Te+=this.printConnections(ke.connections),Te+=this.printBandwidth(ke.bandwidths),Te+=this.printKey(ke.key),Te+=this.printMediaAttributes(ke);return Te}printConnections(ie){let Te="";for(const ke of ie)Te+=this.printConnection(ke);return Te}printMedia(ie){return"m=".concat(ie.mediaType," ").concat(ie.port," ").concat(ie.protos.join("/")," ").concat(ie.fmts.join(" ")).concat(this.eol)}printSessionAttributes(ie){return new Ki(this.eol).print(ie)}printMediaAttributes(ie){return new it(this.eol).print(ie)}}class Nr{constructor(ie){Ir(this,"eol",void 0),this.eol=ie}printIceUfrag(ie){return ie===void 0?"":"a=ice-ufrag:".concat(ie).concat(this.eol)}printIcePwd(ie){return ie===void 0?"":"a=ice-pwd:".concat(ie).concat(this.eol)}printIceOptions(ie){return ie===void 0?"":"a=ice-options:".concat(ie.join(T)).concat(this.eol)}printFingerprints(ie){return ie.length>0?ie.map(Te=>"a=fingerprint:".concat(Te.hashFunction).concat(T).concat(Te.fingerprint)).join(this.eol)+this.eol:""}printExtmap(ie){return ie.map(Te=>"a=extmap:".concat(Te.entry).concat(Te.direction?"/".concat(Te.direction):"").concat(T).concat(Te.extensionName).concat(Te.extensionAttributes?"".concat(T).concat(Te.extensionAttributes):"").concat(this.eol)).join("")}printSetup(ie){return ie===void 0?"":"a=setup:".concat(ie).concat(this.eol)}printUnrecognized(ie){return ie.map(Te=>"a=".concat(Te.attField).concat(Te.attValue?":".concat(Te.attValue):"").concat(this.eol)).join("")}}class Ki extends Nr{print(ie){let Te="";return Te+=this.printGroups(ie.groups),Te+=this.printMsidSemantic(ie.msidSemantic),Te+=this.printIceLite(ie.iceLite),Te+=this.printIceUfrag(ie.iceUfrag),Te+=this.printIcePwd(ie.icePwd),Te+=this.printIceOptions(ie.iceOptions),Te+=this.printFingerprints(ie.fingerprints),Te+=this.printSetup(ie.setup),Te+=this.printTlsId(ie.tlsId),Te+=this.printIdentity(ie.identities),Te+=this.printExtmap(ie.extmaps),Te+=this.printUnrecognized(ie.unrecognized),Te}printGroups(ie){let Te="";return ie.length>0&&(Te+=ie.map(ke=>"a=group:".concat(ke.semantic).concat(ke.identificationTag.map(_t=>"".concat(T).concat(_t)).join("")).concat(this.eol)).join("")),Te}printIceLite(ie){return ie===void 0?"":"a=ice-lite"+this.eol}printTlsId(ie){return ie?"a=tls-id:".concat(ie).concat(this.eol):""}printIdentity(ie){return ie.length===0?"":ie.map(Te=>"a=identity:".concat(Te.assertionValue).concat(Te.extensions.map(ke=>"".concat(T).concat(ke.name).concat(ke.value?"=".concat(ke.value):"")))).join(this.eol)+this.eol}printMsidSemantic(ie){if(!ie)return"";let Te="a=msid-semantic:".concat(ie.semantic);return ie.applyForAll?Te+="".concat(T,"*"):ie.identifierList.length>0&&(Te+=ie.identifierList.map(ke=>"".concat(T).concat(ke))),Te+this.eol}}class it extends Nr{print(ie){const Te=ie.attributes;let ke="";return ke+=this.printRTCP(Te.rtcp),ke+=this.printIceUfrag(Te.iceUfrag),ke+=this.printIcePwd(Te.icePwd),ke+=this.printIceOptions(Te.iceOptions),ke+=this.printCandidates(Te.candidates),ke+=this.printRemoteCandidatesList(Te.remoteCandidatesList),ke+=this.printEndOfCandidates(Te.endOfCandidates),ke+=this.printFingerprints(Te.fingerprints),ke+=this.printSetup(Te.setup),ke+=this.printMid(Te.mid),ke+=this.printExtmap(Te.extmaps),ke+=this.printRTPRelated(Te),ke+=this.printPtime(Te.ptime),ke+=this.printMaxPtime(Te.maxPtime),ke+=this.printDirection(Te.direction),ke+=this.printSSRCGroups(Te.ssrcGroups),ke+=this.printSSRC(Te.ssrcs),ke+=this.printRTCPMux(Te.rtcpMux),ke+=this.printRTCPMuxOnly(Te.rtcpMuxOnly),ke+=this.printRTCPRsize(Te.rtcpRsize),ke+=this.printMSId(Te.msids),ke+=this.printImageattr(Te.imageattr),ke+=this.printRid(Te.rids),ke+=this.printSimulcast(Te.simulcast),ke+=this.printSCTPPort(Te.sctpPort),ke+=this.printMaxMessageSize(Te.maxMessageSize),ke+=this.printUnrecognized(Te.unrecognized),ke}printCandidates(ie){return ie.map(Te=>"a=candidate:".concat(Te.foundation).concat(T).concat(Te.componentId).concat(T).concat(Te.transport).concat(T).concat(Te.priority).concat(T).concat(Te.connectionAddress).concat(T).concat(Te.port).concat(T,"typ").concat(T).concat(Te.type).concat(Te.relAddr?"".concat(T,"raddr").concat(T).concat(Te.relAddr):"").concat(Te.relPort?"".concat(T,"rport").concat(T).concat(Te.relPort):"").concat(Object.keys(Te.extension).map(ke=>"".concat(T).concat(ke).concat(T).concat(Te.extension[ke])).join("")).concat(this.eol)).join("")}printRemoteCandidatesList(ie){return ie.map(Te=>"a=remote-candidates:".concat(Te.join(T)).concat(this.eol)).join("")}printEndOfCandidates(ie){return ie===void 0?"":"a=end-of-candidates"+this.eol}printRTPRelated(ie){if(!ie.payloads)return"";const Te=ie.payloads;let ke="";ke+=ie.rtcpFeedbackWildcards.map(_t=>this.printRTCPFeedback("*",_t)).join("");for(const _t of Te)ke+=this.printRtpMap(_t.payloadType,_t.rtpMap),ke+=this.printFmtp(_t.payloadType,_t.fmtp),ke+=_t.rtcpFeedbacks.map(Ar=>this.printRTCPFeedback(_t.payloadType,Ar)).join("");return ke}printFmtp(ie,Te){if(!Te)return"";const ke=Object.keys(Te.parameters);return ke.length===1&&Te.parameters[ke[0]]===null?"a=fmtp:".concat(ie).concat(T).concat(ke[0]).concat(this.eol):"a=fmtp:".concat(ie).concat(T).concat(Object.keys(Te.parameters).map(_t=>"".concat(_t,"=").concat(Te.parameters[_t])).join(";")).concat(this.eol)}printRtpMap(ie,Te){return Te?"a=rtpmap:".concat(ie).concat(T).concat(Te.encodingName,"/").concat(Te.clockRate).concat(Te.encodingParameters?"/".concat(Te.encodingParameters):"").concat(this.eol):""}printRTCPFeedback(ie,Te){let ke="a=rtcp-fb:".concat(ie).concat(T),_t=Te;return _t.type==="trr-int"?ke+="ttr-int".concat(T).concat(_t.interval):(ke+="".concat(_t.type),_t.parameter&&(ke+="".concat(T).concat(_t.parameter),_t.additional&&(ke+="".concat(T).concat(_t.additional)))),ke+this.eol}printPtime(ie){return ie===void 0?"":"a=ptime:".concat(ie).concat(this.eol)}printMaxPtime(ie){return ie===void 0?"":"a=maxptime:".concat(ie).concat(this.eol)}printDirection(ie){return ie===void 0?"":"a=".concat(ie).concat(this.eol)}printSSRC(ie){return ie.map(Te=>Object.keys(Te.attributes).map(ke=>"a=ssrc:".concat(Te.ssrcId.toString(10)).concat(T).concat(ke).concat(Te.attributes[ke]?":".concat(Te.attributes[ke]):"").concat(this.eol)).join("")).join("")}printRTCPMux(ie){return ie===void 0?"":"a=rtcp-mux".concat(this.eol)}printRTCPMuxOnly(ie){return ie===void 0?"":"a=rtcp-mux-only".concat(this.eol)}printRTCPRsize(ie){return ie===void 0?"":"a=rtcp-rsize".concat(this.eol)}printRTCP(ie){if(ie===void 0)return"";let Te="a=rtcp:".concat(ie.port);return ie.netType&&(Te+="".concat(T).concat(ie.netType)),ie.addressType&&(Te+="".concat(T).concat(ie.addressType)),ie.address&&(Te+="".concat(T).concat(ie.address)),Te+this.eol}printMSId(ie){return ie.map(Te=>"a=msid:".concat(Te.id).concat(Te.appdata?"".concat(T).concat(Te.appdata):"").concat(this.eol)).join("")}printImageattr(ie){return ie.map(Te=>"a=imageattr:".concat(Te).concat(this.eol)).join("")}printRid(ie){return ie.map(Te=>{let ke="a=rid:".concat(Te.id).concat(T).concat(Te.direction);return Te.payloads&&(ke+="".concat(T,"pt=").concat(Te.payloads.join(","))),Te.params.length>0&&(ke+="".concat(T).concat(Te.params.map(_t=>_t.type==="depend"?"depend=".concat(_t.rids.join(",")):"".concat(_t.type,"=").concat(_t.val)).join(";"))),ke+this.eol}).join("")}printSimulcast(ie){return ie===void 0?"":"a=simulcast:".concat(ie).concat(this.eol)}printSCTPPort(ie){return ie===void 0?"":"a=sctp-port:".concat(ie).concat(this.eol)}printMaxMessageSize(ie){return ie===void 0?"":"a=max-message-size:".concat(ie).concat(this.eol)}printMid(ie){return ie===void 0?"":"a=mid:".concat(ie).concat(this.eol)}printSSRCGroups(ie){return ie.map(Te=>"a=ssrc-group:".concat(Te.semantic).concat(Te.ssrcIds.map(ke=>"".concat(T).concat(ke.toString(10))).join("")).concat(this.eol)).join("")}}function mt(at){return new st().parse(at)}function Gt(at,ie){return new ui().print(at,ie)}}},s={};function c(u){if(s[u])return s[u].exports;var h=s[u]={exports:{}};return t[u](h,h.exports,c),h.exports}return c.d=(u,h)=>{for(var _ in h)c.o(h,_)&&!c.o(u,_)&&Object.defineProperty(u,_,{enumerable:!0,get:h[_]})},c.o=(u,h)=>Object.prototype.hasOwnProperty.call(u,h),c.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})},c(8)})();function wa(t){return kn.parse(t)}function X1(t,s){return kn.print(t,s)}var E4=E1("Array","keys"),h4=fE,oU=Xs,sU=W,I4=E4,jR=Array.prototype,HJ={DOMTokenList:!0,NodeList:!0},aU=function(t){var s=t.keys;return t===jR||sU(jR,t)&&s===jR.keys||oU(HJ,h4(t))?I4:s},js=f(aU);function C4(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=Array(s);c]+)(>|$)/g,function(T,D,O){if(O==="")return T;var P=B[D];return Array.isArray(P)?"$"+P.join("$"):typeof P=="number"?"$"+P:""}))}if(typeof _=="function"){var Q=this;return t[Symbol.replace].call(this,h,function(){var T=arguments;return typeof T[T.length-1]!="object"&&(T=[].slice.call(T)).push(u(T,Q)),_.apply(this,T)})}return t[Symbol.replace].call(this,h,_)},p1.apply(this,arguments)}const JR=new class extends Cn{constructor(){super(...arguments),bo(this,"currentUploadLogID",0)}reportLogUploadError(t){const s=t.errorRange;s[s.length-1]&&s[s.length-1]>this.currentUploadLogID&&(this.currentUploadLogID=s[s.length-1],this.emit("REPORT_LOG_UPLOAD",t))}};function cA(){const t=new Date;return t.toTimeString().split(" ")[0]+":"+t.getMilliseconds()}function p4(){const t=new Date,s=/((\d+:){2}\d+)/.exec(new Date().toUTCString());return s?(s==null?void 0:s[0])+":"+t.getUTCMilliseconds():t.toTimeString().split(" ")[0]+":"+t.getMilliseconds()}const Dc={DEBUG:0,INFO:1,WARNING:2,ERROR:3,NONE:4},qR=Date.now(),va=t=>{for(const s in Dc)if(Object.prototype.hasOwnProperty.call(Dc,s)&&Dc[s]===t)return s;return"DEFAULT"},J=new class{constructor(){bo(this,"proxyServerURL",void 0),bo(this,"logLevel",Dc.DEBUG),bo(this,"uploadState","collecting"),bo(this,"uploadStartTimer",void 0),bo(this,"uploadLogWaitingList",[]),bo(this,"uploadLogUploadingList",[]),bo(this,"uploadErrorCount",0),bo(this,"currentLogID",0),bo(this,"url",void 0),bo(this,"extLog",(t,s)=>{this.appendLogToWaitingList(t,...s)})}debug(){for(var t=arguments.length,s=new Array(t),c=0;c{this.log(...s)},Date.now()-qR);const u=Math.max(0,Math.min(4,s[0]));if(s[0]=cA()+" Agora-SDK [".concat(va(u),"]:"),this.appendLogToWaitingList(u,...s),u{this.uploadLog(...s)},Date.now()-qR);const u=Math.max(0,Math.min(4,s[0]));s[0]=cA()+" Agora-SDK [".concat(va(u),"]:"),this.appendLogToWaitingList(u,...s)}appendLogToWaitingList(t){if(!de("UPLOAD_LOG"))return;for(var s=arguments.length,c=new Array(s>1?s-1:0),u=1;u{typeof _=="object"&&(_=JSON.stringify(_)),h+="".concat(_," ")}),this.uploadLogWaitingList.push({payload_str:h,log_level:t,log_item_id:this.currentLogID++}),this.uploadState==="uploading"&&this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}startUpload(){this.uploadState="uploading",this.uploadStartTimer!==void 0&&(window.clearTimeout(this.uploadStartTimer),this.uploadStartTimer=void 0),this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}scheduleUploadStart(){this.uploadState!=="uploading"&&this.uploadStartTimer===void 0&&(this.uploadStartTimer=window.setTimeout(()=>{this.uploadStartTimer=void 0,de("UPLOAD_LOG")&&this.startUpload()},5e3))}async uploadLogs(){const t=this.uploadLogUploadingList,s={sdk_version:W1,process_id:de("PROCESS_ID"),payload:JSON.stringify(t)};return dl(async()=>{const c=await on.post(this.url||(this.proxyServerURL?"https://".concat(this.proxyServerURL,"/ls/?h=").concat(de("LOG_UPLOAD_SERVER"),"&p=443&d=upload/v1"):"https://".concat(de("LOG_UPLOAD_SERVER"),"/upload/v1")),s,{responseType:"text"});if(c.data!=="OK"){const u=new Error("unexpected upload log response");throw u.response=c,u}},()=>(this.uploadLogUploadingList=[],!1),c=>{const u={status:-1,message:c.message,errorRange:t.map(h=>h.log_item_id)};return c.response?(u.status=c.response.status,u.data=c.response.data,u.headers=c.response.headers):c.request&&(u.status=c.request.status),JR.reportLogUploadError(u),!0},{timeout:de("UPLOAD_LOG_REQUEST_RETRY_INTERVAL"),maxRetryTimeout:de("UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL")})}uploadLogInterval(){this.uploadLogUploadingList.length===0&&this.uploadLogWaitingList.length===0||(this.uploadLogUploadingList.length===0&&(this.uploadLogUploadingList=this.uploadLogWaitingList.splice(0,de("UPLOAD_LOG_LENGTH_EACH_TIME"))),this.uploadLogs().then(()=>{this.uploadErrorCount=0,this.uploadLogWaitingList.length>0&&window.setTimeout(()=>this.uploadLogInterval(),de("UPLOAD_LOG_INTERVAL"))}).catch(t=>{this.uploadErrorCount+=1,this.uploadErrorCount<2?window.setTimeout(()=>this.uploadLogInterval(),de("UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1")):window.setTimeout(()=>this.uploadLogInterval(),de("UPLOAD_LOG_RETRY_INTERVAL_V1"))}))}};var f4;function AU(t){return Ra(t.reportId,"params.reportId",0,100,!1),Ra(t.category,"params.category",0,100,!1),Ra(t.event,"params.event",0,100,!1),Ra(t.label,"params.label",0,100,!1),Vn(t.value,"params.value",Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,!1),!0}(f4={}).FREE="free",f4.UPLOADING="uploading",function(t){t[t.MISC=0]="MISC",t[t.INTERNAL_EVENT=1]="INTERNAL_EVENT",t[t.PUBLIC_EVENT=2]="PUBLIC_EVENT",t[t.WEB_EVENT=3]="WEB_EVENT",t[t.INTERNAL_API=4]="INTERNAL_API",t[t.WEB_API=5]="WEB_API",t[t.PUBLIC_API=6]="PUBLIC_API"}({});let _4=function(t){return t[t.RECOVER=0]="RECOVER",t[t.WARNING=1]="WARNING",t[t.ERROR=2]="ERROR",t}({}),m4=function(t){return t.CONFIG_DISTRIBUTE="config-distribute-error",t}({});const B4={sid:"",lts:0,success:null,cname:null,uid:null,peer:null,cid:null,elapse:null,extend:null,vid:0};let Rs=function(t){return t.PUBLISH="publish",t.SUBSCRIBE="subscribe",t.WS_COMPRESSOR_INIT="ws_compressor_init",t.SESSION_INIT="session_init",t.JOIN_CHOOSE_SERVER="join_choose_server",t.RTE_DETAIL="rte_detail_stats",t.REQ_USER_ACCOUNT="req_user_account",t.JOIN_GATEWAY="join_gateway",t.REJOIN_GATEWAY="rejoin_gateway",t.STREAM_SWITCH="stream_switch",t.REQUEST_PROXY_WORKER_MANAGER="request_proxy_worker_manager",t.REQUEST_PROXY_APPCENTER="request_proxy_appcenter",t.FIRST_VIDEO_RECEIVED="first_video_received",t.FIRST_AUDIO_RECEIVED="first_audio_received",t.FIRST_VIDEO_DECODE="first_video_decode",t.FIRST_AUDIO_DECODE="first_audio_decode",t.XLA_PEER_FIRST_VIDEO_FRAME="xla_peer_first_video_frame",t.ON_ADD_AUDIO_STREAM="on_add_audio_stream",t.ON_ADD_VIDEO_STREAM="on_add_video_stream",t.ON_UPDATE_STREAM="on_update_stream",t.ON_REMOVE_STREAM="on_remove_stream",t.USER_ANALYTICS="req_user_analytics",t.PC_STATS="pc_stats",t.UPDATE_REMOTE_RTPCAPABILITIES="update_remote_rtpCapabilities",t.AB_TEST="ab_test",t.ALARM_STATUS_NOTIFY="alarm_status_notify",t}({}),ao=function(t){return t.SESSION="io.agora.pb.Wrtc.Session",t.JOIN_CHOOSE_SERVER="io.agora.pb.Wrtc.JoinChooseServer",t.RTE_DETAIL="io.agora.pb.Wrtc.RteDetailStats",t.REQ_USER_ACCOUNT="io.agora.pb.Wrtc.ReqUserAccount",t.JOIN_GATEWAY="io.agora.pb.Wrtc.JoinGateway",t.RE_JOIN_GATEWAY="io.agora.pb.Wrtc.ReJoinGateway",t.PUBLISH="io.agora.pb.Wrtc.Publish",t.SUBSCRIBE="io.agora.pb.Wrtc.Subscribe",t.WS_COMPRESSOR_INIT="io.agora.pb.Wrtc.WsCompressorInit",t.STREAM_SWITCH="io.agora.pb.Wrtc.StreamSwitch",t.AUDIO_SENDING_STOPPED="io.agora.pb.Wrtc.AudioSendingStopped",t.VIDEO_SENDING_STOPPED="io.agora.pb.Wrtc.VideoSendingStopped",t.REQUEST_PROXY_APPCENTER="io.agora.pb.Wrtc.RequestProxyAppCenter",t.REQUEST_PROXY_WORKER_MANAGER="io.agora.pb.Wrtc.RequestProxyWorkerManager",t.API_INVOKE="io.agora.pb.Wrtc.ApiInvoke",t.FIRST_VIDEO_RECEIVED="io.agora.pb.Wrtc.FirstVideoReceived",t.FIRST_AUDIO_RECEIVED="io.agora.pb.Wrtc.FirstAudioReceived",t.FIRST_VIDEO_DECODE="io.agora.pb.Wrtc.FirstVideoDecode",t.FIRST_AUDIO_DECODE="io.agora.pb.Wrtc.FirstAudioDecode",t.XLA_PEER_FIRST_VIDEO_FRAME="io.agora.pb.Wrtc.XLAPeerFirstVideoFrame",t.ON_ADD_AUDIO_STREAM="io.agora.pb.Wrtc.OnAddAudioStream",t.ON_ADD_VIDEO_STREAM="io.agora.pb.Wrtc.OnAddVideoStream",t.ON_UPDATE_STREAM="io.agora.pb.Wrtc.OnUpdateStream",t.ON_REMOVE_STREAM="io.agora.pb.Wrtc.OnRemoveStream",t.JOIN_CHANNEL_TIMEOUT="io.agora.pb.Wrtc.JoinChannelTimeout",t.PEER_PUBLISH_STATUS="io.agora.pb.Wrtc.PeerPublishStatus",t.WORKER_EVENT="io.agora.pb.Wrtc.WorkerEvent",t.AP_WORKER_EVENT="io.agora.pb.Wrtc.APWorkerEvent",t.JOIN_WEB_PROXY_AP="io.agora.pb.Wrtc.JoinWebProxyAP",t.WEBSOCKET_QUIT="io.agora.pb.Wrtc.WebSocketQuit",t.USER_ANALYTICS="io.agora.pb.Wrtc.UserAnalytics",t.AUTOPLAY_FAILED="io.agora.pb.Wrtc.AutoplayFailed",t.PC_STATS="io.agora.pb.Wrtc.PCStats",t.UPDATE_REMOTE_RTPCAPABILITIES="io.agora.pb.Wrtc.UpdateRemoteRTPCapabilities",t.AB_TEST="io.agora.pb.Wrtc.ABTest",t.ALARM_STATUS_NOTIFY="io.agora.pb.Wrtc.AlarmStatusNotify",t}({});(function(t){t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT"})({});let WR=function(t){return t[t.SESSION=26]="SESSION",t[t.JOIN_CHOOSE_SERVER=27]="JOIN_CHOOSE_SERVER",t[t.REQ_USER_ACCOUNT=196]="REQ_USER_ACCOUNT",t[t.JOIN_GATEWAY=28]="JOIN_GATEWAY",t[t.PUBLISH=30]="PUBLISH",t[t.SUBSCRIBE=29]="SUBSCRIBE",t[t.WS_COMPRESSOR_INIT=9430]="WS_COMPRESSOR_INIT",t[t.STREAM_SWITCH=32]="STREAM_SWITCH",t[t.AUDIO_SENDING_STOPPED=33]="AUDIO_SENDING_STOPPED",t[t.VIDEO_SENDING_STOPPED=34]="VIDEO_SENDING_STOPPED",t[t.REQUEST_PROXY_APPCENTER=35]="REQUEST_PROXY_APPCENTER",t[t.REQUEST_PROXY_WORKER_MANAGER=36]="REQUEST_PROXY_WORKER_MANAGER",t[t.API_INVOKE=41]="API_INVOKE",t[t.FIRST_VIDEO_RECEIVED=348]="FIRST_VIDEO_RECEIVED",t[t.FIRST_AUDIO_RECEIVED=349]="FIRST_AUDIO_RECEIVED",t[t.FIRST_VIDEO_DECODE=350]="FIRST_VIDEO_DECODE",t[t.FIRST_AUDIO_DECODE=351]="FIRST_AUDIO_DECODE",t[t.ON_ADD_AUDIO_STREAM=352]="ON_ADD_AUDIO_STREAM",t[t.ON_ADD_VIDEO_STREAM=353]="ON_ADD_VIDEO_STREAM",t[t.ON_UPDATE_STREAM=356]="ON_UPDATE_STREAM",t[t.ON_REMOVE_STREAM=355]="ON_REMOVE_STREAM",t[t.JOIN_CHANNEL_TIMEOUT=407]="JOIN_CHANNEL_TIMEOUT",t[t.PEER_PUBLISH_STATUS=408]="PEER_PUBLISH_STATUS",t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",t[t.JOIN_WEB_PROXY_AP=700]="JOIN_WEB_PROXY_AP",t[t.WEBSOCKET_QUIT=671]="WEBSOCKET_QUIT",t[t.USER_ANALYTICS=1e4]="USER_ANALYTICS",t[t.AUTOPLAY_FAILED=9178]="AUTOPLAY_FAILED",t}({});const ul="[config-restore]",Uf="websdk_ng_",xf=Uf+"blocked_config_hashes",XR=Uf+"api_failure_records",zR=Uf+"global_parameter",S4=Uf+"config_restore_state";function $R(t){var s;return t==null||typeof t!="object"?JSON.stringify(t):Array.isArray(t)?"["+t.map(c=>$R(c)).join(",")+"]":"{"+x1(s=Object.keys(t)).call(s).map(c=>JSON.stringify(c)+":"+$R(t[c])).join(",")+"}"}function R4(t){return function(s){let c=2166136261;for(let u=0;u>>0).toString(36)}($R(t))}function Ff(){try{const t=window.localStorage.getItem(S4);if(t)return JSON.parse(t)}catch{}return{currentConfigHash:"",configVerified:!1}}function y4(t){try{window.localStorage.setItem(S4,JSON.stringify(t))}catch{}}function ZR(){try{const t=window.localStorage.getItem(XR);return t?JSON.parse(t):[]}catch(t){return J.debug("[error] ".concat(ul," error getting API failure records:"),t),[]}}function Q4(){var t;return VA(t=ZR()).call(t,(s,c)=>s+c.count,0)}function ey(){try{window.localStorage.removeItem(XR)}catch(t){J.debug("[error] ".concat(ul," error clearing API failure records:"),t)}}function cU(){try{const t=Q4(),s=de("MAX_CONFIG_RETRY");if(t({api:h.apiName,error:h.errorCode||h.errorMessage,count:h.count,lastTime:h.lastTimestamp}))}}),ey()}catch(t){J.debug("[error] ".concat(ul," error restoring config:"),t)}}function T4(t,s){try{if(!de("ENABLE_CONFIG_RESTORE"))return;if(s&&s.name==="AgoraRTCException"){const T=de("CONFIG_ERROR_MONITOR");if(!Array.isArray(T)||!Et(T).call(T,s.code))return}const c=window.localStorage.getItem(zR);if(!c||c.length<20||Ff().configVerified)return;const u=de("CONFIG_RESTORE_ERROR_API");if(!Array.isArray(u)||!Et(u).call(u,t))return;let h,_;s&&(s.code&&(h=s.code),_=s.message?s.message:typeof s=="string"?s:s.toString()),function(T,D,O){try{const P=ZR(),U="".concat(T,":").concat(D||""),H=P.find(te=>"".concat(te.apiName,":").concat(te.errorCode||"")===U),$=Ff().currentConfigHash;if(H)H.count++,H.lastTimestamp=Date.now(),O&&(H.errorMessage=O),$&&(H.configHash=$);else{const te=Date.now();P.push({apiName:T,errorCode:D,errorMessage:O,count:1,firstTimestamp:te,lastTimestamp:te,configHash:$||void 0})}const Z=P.length>20?P.slice(-20):P;window.localStorage.setItem(XR,JSON.stringify(Z))}catch(P){J.debug("[error] ".concat(ul," error saving API failure record:"),P)}}(t,h,_);const B=Q4(),Q=de("MAX_CONFIG_RETRY");J.debug("".concat(ul," API failure count: ").concat(B,"/").concat(Q,", API: ").concat(t,", Error: ").concat(h||_)),B>=Q&&cU()}catch{}}function ty(){try{window.localStorage.removeItem(xf)}catch(t){J.debug("[error] ".concat(ul," error resetting blocked config:"),t)}}function yr(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(s,c,u){const h=u.value;if(typeof h=="function"){const _=t.className||s.__className__||(s.constructor.name==="AgoraRTCClient"?"Client":s.constructor.name);u.value=function(){for(var B,Q=arguments.length,T=new Array(Q),D=0;D(P.onSuccess(t.reportResult&&H),H)).catch(H=>{throw P.onError(H),H}):(P.onSuccess(t.reportResult&&U),U)}catch(U){throw P.onError(U),U}}}return u}}const qt=new class{constructor(){bo(this,"baseInfoMap",new Map),bo(this,"proxyServer",void 0),bo(this,"eventUploadTimer",void 0),bo(this,"setSessionIdTimer",void 0),bo(this,"url",void 0),bo(this,"sids",new Set),bo(this,"backupUrl",void 0),bo(this,"_appId",void 0),bo(this,"_aid",0),bo(this,"keyEventUploadPendingItems",[]),bo(this,"normalEventUploadPendingItems",[]),bo(this,"apiInvokeUploadPendingItems",[]),bo(this,"apiInvokeCount",0),bo(this,"apiInvokeLoggedCount",0),bo(this,"ltsList",[]),bo(this,"lastSendNormalEventTime",Date.now()),bo(this,"customReportCounterTimer",void 0),bo(this,"customReportCount",0),bo(this,"extApiInvoke",async t=>{for(const s of t){const c=$r($r({},s),{},{sid:null,invokeId:++this.apiInvokeCount,tag:vn.TRACER});this.sendApiInvoke(c)}}),this.eventUploadTimer=window.setInterval(this.doSend.bind(this),de("EVENT_REPORT_SEND_INTERVAL")),this.setSessionIdTimer=window.setInterval(this.appendSessionId.bind(this),de("EVENT_REPORT_SEND_INTERVAL"))}getBaseInfoBySessionId(t){return this.baseInfoMap.get(t)}setAppId(t){this._appId=t,this._aid=parseInt(t.replace(/[a-fA-F0-9]{8}/g,s=>{let c=B2(s,2);return c[0]+c[1]}),16)||0}reportApiInvoke(t,s,c){s.timeout=s.timeout||6e4,s.reportResult=s.reportResult===void 0||s.reportResult;const u=Date.now();this.apiInvokeCount+=1;const h=this.apiInvokeCount,_=!!de("SHOW_REPORT_INVOKER_LOG"),B=!!de("SHOW_REPORT_USER_INVOKER_LOG"),Q=_||B&&s.id;Q&&(this.apiInvokeLoggedCount+=1);const T=this.apiInvokeLoggedCount;function D(H,$){if(Q){let Z="[apiInvoke-".concat(T,"]");if(s.id&&(Z+="[".concat(s.id,"]")),s.name&&(Z+="[".concat(s.name,"]"),s.name===Ti.JOIN))return J.info("".concat(Z," ").concat(H));J.info("".concat(Z," ").concat(H),H==="start"?s.options:$||"")}}const O=()=>({tag:s.tag,invokeId:h,sid:t,name:s.name,apiInvokeTime:u,options:s.options,states:s.states||null});D("start");let P=!1;so(s.timeout).then(()=>{P||(this.sendApiInvoke($r($r({},O()),{},{error:Ce.API_INVOKE_TIMEOUT,success:!1})),D("timeout"),T4(s.name,new tt(Ce.API_INVOKE_TIMEOUT)))});const U=new tt(Ce.UNEXPECTED_ERROR,"".concat(s.name,": this api invoke is end"));return{onSuccess:H=>{const $=()=>{if(P)throw U;return P=!0,this.sendApiInvoke($r($r({},O()),{},{success:!0},s.reportResult&&{result:H})),D("onSuccess"),H};return c?tU($,s.name+"Success",c,()=>P=!0):$()},onError:H=>{const $=()=>{if(P)throw H;P=!0,this.sendApiInvoke($r($r({},O()),{},{success:!1,error:H})),T4(s.name,H),D("onFailure",H.toString())};return c?tU($,s.name+"Error",c,()=>P=!0):$()}}}_send(t,s,c){this.send({type:t,data:s},c)}_sendApiInvoke(t){return this.sendApiInvoke(t)}sessionInit(t,s){if(this.baseInfoMap.has(t))return;const c=Date.now(),u=this.createBaseInfo(t,c);u.cname=s.cname,u.rteUrl=s.rteUrl;const h=Object.assign({},{willUploadConsoleLog:de("UPLOAD_LOG"),maxTouchPoints:navigator.maxTouchPoints,areaVersion:d4?"global":"oversea",areas:de("AREAS")&&de("AREAS").join(",")},s.extend),_=s.stringUid,B=s.channelProfile,Q=s.channelMode,T=s.isABTestSuccess,D=s.lsid,O=s.clientRole,P=Date.now(),U=$r($r({},u),{},{eventType:Rs.SESSION_INIT,appid:s.appid,browser:navigator.userAgent,buildFormat:s.buildFormat,build:Ng,lts:P,elapse:P-c,extend:JSON.stringify(h),mode:s.mode,process:de("PROCESS_ID"),appType:de("APP_TYPE"),success:!0,version:W1,stringUid:_,channelProfile:B,channelMode:Q,isABTestSuccess:T,lsid:D,clientType:GJ()?42:20,clientRole:O,serviceId:de("PROCESS_ID"),extensionID:de("PLUGIN_INFO").join(",")||"",rteUrl:s.rteUrl,rteSid:s.rteSid,installId:I2()});this.send({type:ao.SESSION,data:U},!0)}reportRteDetail(t){const s=this.baseInfoMap.get(t);if(!s)return;const c=s.info,u=Date.now(),h=$r($r({},c),{},{eventType:Rs.RTE_DETAIL,lts:u,success:!0,elapse:u-s.startTime,vid:c.vid===void 0?0:Number(c.vid),ua:navigator.userAgent});this.send({type:ao.RTE_DETAIL,data:h},!0)}joinChooseServer(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info;s.vid&&(u.vid=s.vid);const h=Date.now(),_=$r($r({},u),{},{role:s.role,eventType:Rs.JOIN_CHOOSE_SERVER,lts:h,eventElapse:s.elapse||h-s.lts,chooseServerAddr:s.csAddr,errorCode:s.ec,elapse:h-c.startTime,success:s.succ,chooseServerAddrList:JSON.stringify(s.serverList),uid:s.uid?parseInt(s.uid):null,cid:s.cid?parseInt(s.cid):null,chooseServerIp:s.csIp||"",opid:s.opid,unilbsServerIds:s.unilbsServerIds,extend:s.extend||void 0,isHttp3:s.isHttp3,corssRegionTagReq:s.corssRegionTagReq||void 0,corssRegionTagRes:s.corssRegionTagRes||void 0,ua:navigator.userAgent,resourceTimingInfo:s.resourceTimingInfo||void 0});this.send({type:ao.JOIN_CHOOSE_SERVER,data:_},!0)}reqUserAccount(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.REQ_USER_ACCOUNT,lts:h,success:s.success,serverAddress:s.serverAddr,stringUid:s.stringUid,uid:s.uid,errorCode:s.errorCode,elapse:s.elapse||h-c.startTime,eventElapse:h-s.lts,extend:JSON.stringify(s.extend)});this.send({type:ao.REQ_USER_ACCOUNT,data:_},!0)}joinGateway(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info;s.vid&&(u.vid=s.vid),u.uid=s.uid,u.cid=s.cid;const h=Date.now(),_=s.firstSuccess,B=s.addr,Q=s.isProxy,T=h-c.startTime,D=$r($r({},u),{},{eventType:Rs.JOIN_GATEWAY,lts:h,gatewayAddr:s.addr,success:s.succ,errorCode:s.ec,errorMsg:s.errorMsg||"",elapse:T,eventElapse:h-s.lts,firstSuccess:_,signalChannel:s.signalChannel,preload:s.preload?1:0,installId:I2(),isABTestSuccess:s.isABTestSuccess?1:0,gatewayIp:null,gatewayPort:null,isProxy:Q?1:0}),O=D.success?1:0;if(s.succ&&(c.lastJoinSuccessTime=h),B)if(D.signalChannel==="1"){const P=p1(/(\d+\.\d+\.\d+\.\d+):(\d+)/,{ip:1,port:2}),U=B.match(P);D.gatewayIp=U&&U.groups?U.groups.ip:"",D.gatewayPort=U&&U.groups?U.groups.port:""}else if(Q){const P=B.match(/h=(\d{1,3}-){3}\d{1,3}/g),U=B.match(/p=[0-9]{1,6}/g);D.gatewayIp=P&&P.length?P[0].split("=")[1].replace(/-/g,"."):"",D.gatewayPort=U&&U.length?U[0].split("=")[1]:""}else{const P=B.match(/wss:\/\/(\d{1,3}-){3}\d{1,3}/g),U=B.match(/(:|p=)[0-9]{1,6}/g);D.gatewayIp=P&&P.length?P[0].split("//")[1].replace(/-/g,"."):"",D.gatewayPort=U&&U.length?U[0].split(/:|p=/g)[1]:""}if(_)this.send({type:ao.JOIN_GATEWAY,data:D},!0);else{const P={isSuccess:O,port:D.gatewayPort};delete D.success,delete D.eventType,delete D.firstSuccess,delete D.gatewayPort,D.vid=Number(D.vid);const U=Object.assign({},D,P,{eventType:Rs.REJOIN_GATEWAY});this.send({type:ao.RE_JOIN_GATEWAY,data:U},!0)}}joinChannelTimeout(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=Date.now(),h=$r($r({},c.info),{},{lts:u,timeout:s,elapse:u-c.startTime});this.send({type:ao.JOIN_CHANNEL_TIMEOUT,data:h},!0)}publish(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.PUBLISH,lts:h,eventElapse:s.eventElapse,elapse:h-c.startTime,success:s.succ,errorCode:s.ec,videoName:s.videoName,audioName:s.audioName,screenName:s.screenName,screenshare:s.screenshare,audio:s.audio,video:s.video,p2pid:s.p2pid,publishRequestid:s.publishRequestid});this.send({type:ao.PUBLISH,data:_},!0)}subscribe(t,s,c){const u=this.baseInfoMap.get(t);if(!u)return;const h=u.info,_=Date.now(),B=$r($r({},h),{},{eventType:Rs.SUBSCRIBE,lts:_,eventElapse:s.eventElapse,elapse:_-u.startTime,success:s.succ,errorCode:s.ec,video:s.video,audio:s.audio,subscribeRequestid:s.subscribeRequestid,p2pid:s.p2pid,preSsrc:s.preSsrc?1:0},c&&{extend:JSON.stringify({isMassSubscribe:!0})});typeof s.peerid=="string"?B.peerSuid=s.peerid:B.peer=s.peerid,this.send({type:ao.SUBSCRIBE,data:B},!0)}wsCompressorInit(t){var s;const c=[...js(s=this.baseInfoMap).call(s)],u=c.length?c[0]:"UnableToGetSid",h=this.baseInfoMap.get(u);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r({},_),{},{eventType:Rs.WS_COMPRESSOR_INIT,lts:B,eventElapse:t.eventElapse,elapse:B-h.startTime,status:t.status?1:2});this.send({type:ao.WS_COMPRESSOR_INIT,data:Q},!0)}firstXLAPeerFirstVideoFrame(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=s.peerPubStatusMs-(c.lastJoinSuccessTime||h),B=$r($r({},u),{},{elapse:h-c.startTime,eventType:Rs.XLA_PEER_FIRST_VIDEO_FRAME,lts:h,peer:s.peer,width:s.width,height:s.height,ssrc:s.ssrc,p2pid:s.p2pid,peerPublishDuration:s.peerPublishDuration,joinChannelSuccessElapse:_,peerPubStatusMs:s.peerPubStatusMs-s.joinChannelStart,availablePublish:s.peerPublishDuration>_?1:0,preloadStart:Math.max(s.preloadStart-s.joinChannelStart,0),preloadEnd:Math.max(s.preloadEnd-s.joinChannelStart,0),encrypt:Math.max(s.apStart-s.joinChannelStart,0),ap:Math.max(s.apEnd-s.joinChannelStart,0),sua:Math.max(s.suaEnd-s.joinChannelStart,0),beforeConnect:Math.max(s.beforeConnect-s.joinChannelStart,0),peerRecevier:Math.max(s.peerReceiver-s.joinChannelStart,0),ice:Math.max(s.ice-s.joinChannelStart,0),pc:Math.max(s.pc-s.joinChannelStart,0),signalConnected:Math.max(s.signalConnected-s.joinChannelStart,0),joinReq:Math.max(s.joinReq-s.joinChannelStart,0),joinRes:Math.max(s.joinRes-s.joinChannelStart,0),userJoinNotify:Math.max(s.userJoinNotify-s.joinChannelStart,0),videoSsrcNotify:Math.max(s.videoAddNotify-s.joinChannelStart,0),subscribeDelayMs:Math.max(s.subscribeStart-s.videoAddNotify,0),subscribeStart:Math.max(s.subscribeStart-s.joinChannelStart,0),subscribeEnd:Math.max(s.subscribeEnd-s.joinChannelStart,0),firstReceived:Math.max(s.firstReceived-s.joinChannelStart,0),firstDecoded:Math.max(s.firstDecoded-s.joinChannelStart,0),firstPreRender:Math.max(s.firstPreRender-s.joinChannelStart,0),firstRender:Math.max(s.firstRender-s.joinChannelStart,0),playDelayMs:Math.max(s.playStart-s.subscribeEnd,0),playStart:Math.max(s.playStart-s.joinChannelStart,0),playEnd:Math.max(s.playEnd-s.joinChannelStart,0),isPreSub:s.isPreSub?1:0,isPrePc:s.isPrePc?1:0,isPreInstantVideo:s.isPreInstantVideo?1:0,firstReceivedEncodedFrame:s.firstReceivedEncodedFrame?Math.max(s.firstReceivedEncodedFrame-s.joinChannelStart,0):void 0,frameType:s.frameType||"",rtpTimestamp:s.rtpTimestamp||0,framePayloadType:s.framePayloadType||0,frameDataLength:s.frameDataLength||0,mimeType:s.mimeType||"",sdpEndPoint:s.sdpEndPoint?1:0});this.send({type:ao.XLA_PEER_FIRST_VIDEO_FRAME,data:B},!0)}firstRemoteVideoDecode(t,s,c,u){const h=this.baseInfoMap.get(t);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r($r({},_),u),{},{elapse:B-h.startTime,eventType:s,lts:B,firstDecodeFrame:Math.max((u.firstFrame||B)-h.startTime,0),apEnd:Math.max(u.apEnd-h.startTime,0),apStart:Math.max(u.apStart-h.startTime,0),joinGwEnd:Math.max(u.joinGwEnd-h.startTime,0),joinGwStart:Math.max(u.joinGwStart-h.startTime,0),pcEnd:Math.max(u.pcEnd-h.startTime,0),pcStart:Math.max(u.pcStart-h.startTime,0),subscriberEnd:Math.max(u.subscriberEnd-h.startTime,0),subscriberStart:Math.max(u.subscriberStart-h.startTime,0),videoAddNotify:Math.max(u.videoAddNotify-h.startTime,0)});this.send({type:c,data:Q},!0)}firstRemoteFrame(t,s,c,u){const h=this.baseInfoMap.get(t);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r($r({},_),u),{},{elapse:B-h.startTime,eventType:s,lts:B});this.send({type:c,data:Q},!0)}abTest(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:u.vid===void 0?0:Number(u.vid),elapse:h-c.startTime,eventType:Rs.AB_TEST,lts:h});this.send({type:ao.AB_TEST,data:_},!0)}pcStats(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:u.vid===void 0?0:Number(u.vid),elapse:h-c.startTime,eventType:Rs.PC_STATS,lts:h,preallocation:s.preallocation?1:0});this.send({type:ao.PC_STATS,data:_},!0)}updateRemoteRTPCapabilities(t,s){if(t){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:u.vid===void 0?0:Number(u.vid),eventType:Rs.UPDATE_REMOTE_RTPCAPABILITIES,lts:h});this.send({type:ao.UPDATE_REMOTE_RTPCAPABILITIES,data:_},!0)}}onGatewayStream(t,s,c,u){const h=this.baseInfoMap.get(t);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r($r({},_),u),{},{eventType:s,lts:B});this.send({type:c,data:Q},!0)}streamSwitch(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.STREAM_SWITCH,lts:h,isDual:s.isdual,elapse:h-c.startTime,success:s.succ});this.send({type:ao.STREAM_SWITCH,data:_},!0)}requestProxyAppCenter(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.REQUEST_PROXY_APPCENTER,lts:h,eventElapse:h-s.lts,elapse:h-c.startTime,APAddr:s.APAddr,workerManagerList:s.workerManagerList,response:s.response,errorCode:s.ec,success:s.succ});this.send({type:ao.REQUEST_PROXY_APPCENTER,data:_},!0)}requestProxyWorkerManager(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.REQUEST_PROXY_WORKER_MANAGER,lts:h,eventElapse:h-s.lts,elapse:h-c.startTime,workerManagerAddr:s.workerManagerAddr,response:s.response,errorCode:s.ec,success:s.succ});this.send({type:ao.REQUEST_PROXY_WORKER_MANAGER,data:_},!0)}setProxyServer(t){this.proxyServer=t,t?J.debug("reportProxyServerurl: ".concat(t)):J.debug("disable reportProxyServerurl: ".concat(t))}peerPublishStatus(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{subscribeElapse:s.subscribeElapse,peer:s.peer,peerPublishDuration:Math.max(s.audioPublishDuration,s.videoPublishDuration),audiotag:s.audioPublishDuration>0?1:-1,videotag:s.videoPublishDuration>0?1:-1,lts:h,elapse:h-c.startTime,joinChannelSuccessElapse:h-(c.lastJoinSuccessTime||h),peerPublishDurationVideo:s.videoPublishDuration,peerPublishDurationAudio:s.audioPublishDuration});this.send({type:ao.PEER_PUBLISH_STATUS,data:_},!0)}workerEvent(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now();(function(_,B,Q){const T=_[B];if(!T||typeof T!="string")return[_];_[B]="";const D=vu(JSON.stringify(_));let O=0;const P=[];let U=0;for(let H=0;Hthis.send({type:ao.WORKER_EVENT,data:_},!0))}apworkerEvent(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{elapse:h-c.startTime,lts:h});this.send({type:ao.AP_WORKER_EVENT,data:_},!0)}joinWebProxyAP(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{elapse:h-c.startTime,lts:h,extend:s.extend||void 0});this.send({type:ao.JOIN_WEB_PROXY_AP,data:_},!0)}WebSocketQuit(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{elapse:h-c.startTime,lts:h});this.send({type:ao.WEBSOCKET_QUIT,data:_},!0)}async sendCustomReportMessage(t,s){if(this.customReportCount+=s.length,this.customReportCount>de("CUSTOM_REPORT_LIMIT"))throw new tt(Ce.CUSTOM_REPORT_FREQUENCY_TOO_HIGH);this.customReportCounterTimer||(this.customReportCounterTimer=window.setInterval(()=>{this.customReportCount=0},5e3));const c=Date.now(),u=s.map(h=>({type:ao.USER_ANALYTICS,data:$r($r({sid:t},h),{},{lts:c})}));try{de("NEW_REPORT_SERVER")?await this.postDataToStatsCollector2(u):await this.postDataToStatsCollector(u)}catch(h){throw J.error("send custom report message failed",h.toString()),new tt(Ce.CUSTOM_REPORT_SEND_FAILED,h.message)}}reportAlarm(t,s){const c=t?this.baseInfoMap.get(t):void 0,u=c==null?void 0:c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:(u==null?void 0:u.vid)===void 0?0:Number(u.vid),elapse:c?h-c.startTime:0,eventType:Rs.ALARM_STATUS_NOTIFY,lts:h,installId:I2(),processId:de("PROCESS_ID")});this.send({type:ao.ALARM_STATUS_NOTIFY,data:_},!0)}sendApiInvoke(t){const s=de("NOT_REPORT_EVENT");if(t.tag&&Et(s)&&Et(s).call(s,t.tag))return!1;if(t.sid===null)return this.apiInvokeUploadPendingItems.push(t),!1;const c=this.baseInfoMap.get(t.sid);if(!c)return this.apiInvokeUploadPendingItems.push(t),!1;const u=c.info,h=u.cname,_=u.uid,B=u.cid;let Q;if(t.lts=t.lts||Date.now(),t.error)if(t.error instanceof tt){const D=t.error,O=D.code,P=D.message;Q=O||P||t.error.toString()}else Q=t.error.toString();const T={invokeId:t.invokeId,sid:t.sid,cname:h,cid:B,uid:_,lts:t.lts,success:t.success,elapse:t.lts-c.startTime,execElapse:t.lts-t.apiInvokeTime,apiName:t.name,options:t.options?JSON.stringify(t.options):void 0,execStates:t.states?JSON.stringify(t.states):void 0,execResult:t.result?JSON.stringify(t.result):void 0,errorCode:t.error?Q:void 0,errorMsg:t.error?JSON.stringify(t.error):void 0};return this.send({type:ao.API_INVOKE,data:T},!1),!0}addSid(t){this.sids.add(t)}removeSid(t){this.sids.delete(t)}appendSessionId(){const t=this.apiInvokeUploadPendingItems;if(t.length===0)return;const s=Array.from(this.sids).find(c=>c!==null);s&&t.forEach(c=>{c&&(c.sid=s,this.sendApiInvoke(Object.assign({},c)))}),t.length=0}send(t,s){if(s)return this.keyEventUploadPendingItems.push(t),void this.sendItems(this.keyEventUploadPendingItems,!0);this.normalEventUploadPendingItems.push(t),this.normalEventUploadPendingItems.length>de("NORMAL_EVENT_QUEUE_CAPACITY")&&this.normalEventUploadPendingItems.splice(0,1),this.normalEventUploadPendingItems.length>=10&&this.sendItems(this.normalEventUploadPendingItems,!1)}doSend(){this.keyEventUploadPendingItems.length>0&&this.sendItems(this.keyEventUploadPendingItems,!0),this.normalEventUploadPendingItems.length>0&&Date.now()-this.lastSendNormalEventTime>=5e3&&this.sendItems(this.normalEventUploadPendingItems,!1)}sendItems(t,s){const c=[],u=[];for(;t.length;){const _=t.shift();c.length<20?c.push(_):u.push(_)}t.push(...u);for(const _ of[...c]){var h;this.ltsList.indexOf(_.data.lts)!==-1?(_.data.lts=this.ltsList[this.ltsList.length-1]+1,this.ltsList.push(_.data.lts)):(this.ltsList.push(_.data.lts),x1(h=this.ltsList).call(h,(B,Q)=>B-Q))}return s||(this.lastSendNormalEventTime=Date.now()),de("ENABLE_EVENT_REPORT")&&c.length&&(de("NEW_REPORT_SERVER")?this.postDataToStatsCollector2(c):this.postDataToStatsCollector(c)).catch((_=>B=>{de("EVENT_REPORT_RETRY")&&(s?this.keyEventUploadPendingItems=this.keyEventUploadPendingItems.concat(_):(this.normalEventUploadPendingItems=this.normalEventUploadPendingItems.concat(_),this.normalEventUploadPendingItems.length>de("NORMAL_EVENT_QUEUE_CAPACITY")&&(this.normalEventUploadPendingItems.splice(0,this.normalEventUploadPendingItems.length-de("NORMAL_EVENT_QUEUE_CAPACITY")),J.warning("report: drop normal events"))))})(c)),t}async postDataToStatsCollector2(t){ki.networkState===tA.OFFLINE&&await Ut.race([ki.onlineWaiter,so(2*So.maxRetryTimeout)]);const s=h=>{let _=new Uint8Array;return h.forEach(B=>{const Q=MC(JSON.stringify(B.data)),T=new ArrayBuffer(5),D=(P=>{let U=0;return Object.entries(ao).forEach(H=>{let $=B2(H,2),Z=$[0];$[1]===P.type&&(U=WR[Z])}),U})(B),O=new DataView(T);O.setUint16(0,Q.byteLength,!0),O.setUint8(2,255&D),O.setUint8(3,D>>>8&255),O.setUint8(4,D>>>16&255),_=n4(_,new Uint8Array(T)),_=n4(_,Q)}),_},c="event";let u=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("NEW_REPORT_SERVER_DOMAINS")[0],"&p=443&d=").concat(c):"https://".concat(de("NEW_REPORT_SERVER_DOMAINS")[0],"/").concat(c);for(let h=0;h<2;h+=1){h===1&&(u=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("NEW_REPORT_SERVER_DOMAINS")[1],"&p=443&d=").concat(c):"https://".concat(de("NEW_REPORT_SERVER_DOMAINS")[1],"/").concat(c));try{await Gi(u,{timeout:1e4,data:s(t),headers:$r($r({biz:"webrtc",sendts:Math.round(Date.now()/1e3),debug:"false"},this._appId&&{appid:this._appId}),{},{"Content-Type":"application/octet-stream"})},!0)}catch(_){if(h===1)throw _;continue}return}}async postDataToStatsCollector(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=(Q=>{const T=Q&&Q.data.sid&&this.baseInfoMap.get(Q.data.sid);return T&&T.info.vid&&+T.info.vid||0})(t[0]),u=c?void 0:this._aid,h={msgType:"EventMessages",sentTs:Math.round(Date.now()/1e3),payloads:t.map(Q=>JSON.stringify(Q)),vid:c,aid:u};ki.networkState===tA.OFFLINE&&await Ut.race([ki.onlineWaiter,so(2*So.maxRetryTimeout)]);const _=s?"/events/proto-raws":"/events/messages";let B=this.url||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("EVENT_REPORT_DOMAIN"),"&p=").concat(de("STATS_COLLECTOR_PORT"),"&d=").concat(_):"https://".concat(de("EVENT_REPORT_DOMAIN"),":").concat(de("STATS_COLLECTOR_PORT")).concat(_));for(let Q=0;Q<2;Q+=1){Q===1&&(B=this.backupUrl||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("EVENT_REPORT_BACKUP_DOMAIN"),"&p=").concat(de("STATS_COLLECTOR_PORT"),"&d=").concat(_):"https://".concat(de("EVENT_REPORT_BACKUP_DOMAIN"),":").concat(de("STATS_COLLECTOR_PORT")).concat(_)));try{s?await Jl(B,{timeout:1e4,data:h}):await Gi(B,{timeout:1e4,data:h})}catch(T){if(Q===1)throw T;continue}return}}createBaseInfo(t,s){const c=Object.assign({},B4);return c.sid=t,this.baseInfoMap.set(t,{info:c,startTime:s}),c}reportResourceTiming(t,s){const c=performance.getEntriesByName(t),u=c[c.length-1];u&&this.reportApiInvoke(s,{name:"Client.resourceTiming",options:u,tag:vn.TRACER}).onSuccess()}};JR.on("REPORT_LOG_UPLOAD",t=>{t.networkState=ki.networkState,qt.reportApiInvoke(null,{name:"logUploadError",options:t,tag:vn.TRACER}).onSuccess("logUploadError")});let qe=class extends tt{constructor(t){super(t,arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",arguments.length>2?arguments[2]:void 0),bo(this,"name","AgoraRTCException")}print(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error";return super.print(t,J)}throw(){super.throw(J)}};const Js={getDisplayMedia:!1,getStreamFromExtension:!1,supportUnifiedPlan:!1,supportMinBitrate:!1,supportSetRtpSenderParameters:!1,supportDualStream:!0,webAudioMediaStreamDest:!1,supportReplaceTrack:!1,supportWebGL:!1,webAudioWithAEC:!1,supportRequestFrame:!1,supportShareAudio:!1,supportDualStreamEncoding:!1,supportDataChannel:!1,supportPCSetConfiguration:!1,supportWebRTCEncodedTransform:!1,supportWebRTCInsertableStream:!1,supportRequestVideoFrameCallback:!1,supportWebCrypto:!1,supportSuppressLocalAudioPlayback:!1,supportRestrictOwnAudio:!1};function Si(){return Js}function w4(){return"setSinkId"in HTMLAudioElement.prototype&&(!de("RESTRICTION_SET_PLAYBACK_DEVICE")||(DA()||yn())&&!OR())}function Gf(){return!Js.supportUnifiedPlan||de("CHROME_FORCE_PLAN_B")&&Al()}function D4(){return de("ENABLE_JOIN_V4")}function eo(t){return!(Ln()||e4(87)||Gf()||!de("ENABLE_PRE_SUB")&&(t==null||!t.autoSubscribe||de("FORCE_DISABLE_AUTO_SUB")))}function ry(t){return de("ENABLE_INSTANT_VIDEO")?de("ENABLE_INSTANT_VIDEO"):!(t==null||!t.autoSubscribe||de("FORCE_DISABLE_AUTO_SUB"))}function b4(){return!!de("FORCE_ENABLE_AUT_CC")||!Gf()&&(!!de("ENABLE_AUT_CC")||void 0)}function N4(){return!!de("FORCE_ENABLE_AUT_CC")||!Gf()&&(!!de("ENABLE_AUT_FEEDBACK")||void 0)}function O4(){return navigator.mediaDevices&&"getSupportedConstraints"in navigator.mediaDevices}function L4(){if(O4()){const t=navigator.mediaDevices.getSupportedConstraints();return!(!("suppressLocalAudioPlayback"in t)||!t.suppressLocalAudioPlayback)}return al(141)||wu(141)||A2(141)}function M4(){if(O4()){const t=navigator.mediaDevices.getSupportedConstraints();return!(!("restrictOwnAudio"in t)||!t.restrictOwnAudio)}return al(141)||wu(141)||A2(125)}let Yo=function(t){return t.IOS_15_16_INTERRUPTION_START="ios15_16-interruption-start",t.IOS_15_16_INTERRUPTION_END="ios15_16-interruption-end",t.IOS_INTERRUPTION_START="ios-interruption-start",t.IOS_INTERRUPTION_END="ios-interruption-end",t.STATE_CHANGE="state-change",t}({});function S2(t,s,c){return{sampleRate:t,stereo:s,bitrate:c}}function Hi(t,s,c,u,h){return{width:t,height:s,frameRate:c,bitrateMin:u,bitrateMax:h}}function gl(t,s,c,u,h){return{width:{max:t},height:{max:s},frameRate:c,bitrateMin:u,bitrateMax:h}}function iy(t,s){return{numSpatialLayers:t,numTemporalLayers:s}}const lU={"90p":Hi(160,90),"90p_1":Hi(160,90),"120p":Hi(160,120,15,30,65),"120p_1":Hi(160,120,15,30,65),"120p_3":Hi(120,120,15,30,50),"120p_4":Hi(212,120),"180p":Hi(320,180,15,30,140),"180p_1":Hi(320,180,15,30,140),"180p_3":Hi(180,180,15,30,100),"180p_4":Hi(240,180,15,30,120),"240p":Hi(320,240,15,40,200),"240p_1":Hi(320,240,15,40,200),"240p_3":Hi(240,240,15,40,140),"240p_4":Hi(424,240,15,40,220),"360p":Hi(640,360,15,80,400),"360p_1":Hi(640,360,15,80,400),"360p_3":Hi(360,360,15,80,260),"360p_4":Hi(640,360,30,80,600),"360p_6":Hi(360,360,30,80,400),"360p_7":Hi(480,360,15,80,320),"360p_8":Hi(480,360,30,80,490),"360p_9":Hi(640,360,15,80,800),"360p_10":Hi(640,360,24,80,800),"360p_11":Hi(640,360,24,80,1e3),"480p":Hi(640,480,15,100,500),"480p_1":Hi(640,480,15,100,500),"480p_2":Hi(640,480,30,100,1e3),"480p_3":Hi(480,480,15,100,400),"480p_4":Hi(640,480,30,100,750),"480p_6":Hi(480,480,30,100,600),"480p_8":Hi(848,480,15,100,610),"480p_9":Hi(848,480,30,100,930),"480p_10":Hi(640,480,10,100,400),"720p":Hi(1280,720,15,120,1130),"720p_auto":Hi(1280,720,30,900,3e3),"720p_1":Hi(1280,720,15,120,1130),"720p_2":Hi(1280,720,30,120,2e3),"720p_3":Hi(1280,720,30,120,1710),"720p_5":Hi(960,720,15,120,910),"720p_6":Hi(960,720,30,120,1380),"1080p":Hi(1920,1080,15,120,2080),"1080p_1":Hi(1920,1080,15,120,2080),"1080p_2":Hi(1920,1080,30,120,3e3),"1080p_3":Hi(1920,1080,30,120,3150),"1080p_5":Hi(1920,1080,60,120,4780),"1440p":Hi(2560,1440,30,120,4850),"1440p_1":Hi(2560,1440,30,120,4850),"1440p_2":Hi(2560,1440,60,120,7350),"4k":Hi(3840,2160,30,120,8910),"4k_1":Hi(3840,2160,30,120,8910),"4k_3":Hi(3840,2160,60,120,13500)},dU={"480p":gl(640,480,5),"480p_1":gl(640,480,5),"480p_2":gl(640,480,30),"480p_3":gl(640,480,15),"720p":gl(1280,720,5),"720p_auto":Hi(1280,720,30,900,3e3),"720p_1":gl(1280,720,5),"720p_2":gl(1280,720,30),"720p_3":gl(1280,720,15),"1080p":gl(1920,1080,5),"1080p_1":gl(1920,1080,5),"1080p_2":gl(1920,1080,30),"1080p_3":gl(1920,1080,15)},uU={"1SL1TL":iy(1,1),"3SL3TL":iy(3,3),"2SL3TL":iy(2,3)};function El(t){return t||(t="480p_1"),typeof t=="string"?Object.assign({},lU[t]):t}function ny(t){return typeof t=="string"?Object.assign({},dU[t]):t}function Vf(t){return typeof t=="string"?Object.assign({},uU[t]):t}const gU={speech_low_quality:S2(16e3,!1),speech_standard:S2(32e3,!1,18),music_standard:S2(48e3,!1),standard_stereo:S2(48e3,!0,56),high_quality:S2(48e3,!1,128),high_quality_stereo:S2(48e3,!0,192)};function Kf(t){return typeof t=="string"?Object.assign({},gU[t]):t}const lh=[];function Da(t){return As(t,"mediaSource",["screen","window","application"]),!0}let xt=function(t){return t.NEED_RENEGOTIATE="@need_renegotiate",t.NEED_REPLACE_TRACK="@need_replace_track",t.NEED_REPLACE_MIXING_TRACK="@need_replace_mixing_track",t.NEED_CLOSE="@need_close",t.NEED_ENABLE_TRACK="@need_enable_track",t.NEED_DISABLE_TRACK="@need_disable_track",t.NEED_SESSION_ID="@need_sid",t.SET_OPTIMIZATION_MODE="@set_optimization_mode",t.GET_STATS="@get_stats",t.GET_RTC_STATS="@get_rtc_stats",t.GET_LOW_VIDEO_TRACK="@get_low_video_track",t.NEED_RESET_REMOTE_SDP="@need_reset_remote_sdp",t.NEED_UPDATE_VIDEO_ENCODER="@need_update_video_encoder",t.NEED_UPDATE_VIDEO_SEND_PARAMETERS="@need_update_video_send_parameters",t.NEED_MUTE_TRACK="@need_mute_track",t.NEED_UNMUTE_TRACK="@need_unmute_track",t}({}),gn=function(t){return t.SCREEN_TRACK="screen_track",t.CUSTOM_TRACK="custome_track",t.LOW_STREAM="low_stream",t.SCREEN_LOW_TRACK="screen_low_track",t}({}),xC=function(t){return t[t.HIGH_STREAM=0]="HIGH_STREAM",t[t.LOW_STREAM=1]="LOW_STREAM",t}({}),Os=function(t){return t[t.HIGH_STREAM=0]="HIGH_STREAM",t[t.LOW_STREAM=1]="LOW_STREAM",t[t.HIGH_STREAM_LAYER1=4]="HIGH_STREAM_LAYER1",t[t.HIGH_STREAM_LAYER2=5]="HIGH_STREAM_LAYER2",t[t.HIGH_STREAM_LAYER3=6]="HIGH_STREAM_LAYER3",t[t.HIGH_STREAM_LAYER4=7]="HIGH_STREAM_LAYER4",t[t.HIGH_STREAM_LAYER5=8]="HIGH_STREAM_LAYER5",t[t.HIGH_STREAM_LAYER6=9]="HIGH_STREAM_LAYER6",t}({}),YJ=function(t){return t[t.DISABLE=0]="DISABLE",t[t.LOW_STREAM=1]="LOW_STREAM",t[t.AUDIO_ONLY=2]="AUDIO_ONLY",t[t.HIGH_STREAM_LAYER1=3]="HIGH_STREAM_LAYER1",t[t.HIGH_STREAM_LAYER2=4]="HIGH_STREAM_LAYER2",t[t.HIGH_STREAM_LAYER3=5]="HIGH_STREAM_LAYER3",t[t.HIGH_STREAM_LAYER4=6]="HIGH_STREAM_LAYER4",t[t.HIGH_STREAM_LAYER5=7]="HIGH_STREAM_LAYER5",t[t.HIGH_STREAM_LAYER6=8]="HIGH_STREAM_LAYER6",t}({}),dh=function(t){return t.TRANSCEIVER_UPDATED="transceiver-updated",t.SEI_TO_SEND="sei-to-send",t.SEI_RECEIVED="sei-received",t.TRACK_UPDATED="track-updated",t}({}),R2=function(t){return t.SOURCE_STATE_CHANGE="source-state-change",t.TRACK_ENDED="track-ended",t.BEAUTY_EFFECT_OVERLOAD="beauty-effect-overload",t.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",t.CLOSED="closed",t}({}),$1=function(t){return t.FIRST_FRAME_DECODED="first-frame-decoded",t.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",t.VIDEO_STATE_CHANGED="video-state-changed",t.PLAY_START="play-start",t.PLAY_END="play-end",t.FIRST_FRAME_RENDER="first-frame-render",t}({}),y2=function(t){return t.AUDIO="audio",t.VIDEO="video",t.DATA="data",t}({}),zA=function(t){return t.AUDIO_SOURCE_STATE_CHANGE="audio_source_state_change",t.RECEIVE_TRACK_BUFFER="receive_track_buffer",t.ON_AUDIO_BUFFER="on_audio_buffer",t.UPDATE_SOURCE="update_source",t}({});(function(t){t.UPDATE_TRACK_SOURCE="update-track-source"})({});const oy={sendVolumeLevel:0,sendBitrate:0,sendBytes:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,currentPacketLossRate:0},sy={sendBytes:0,sendBitrate:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,sendResolutionHeight:0,sendResolutionWidth:0,captureResolutionHeight:0,captureResolutionWidth:0,targetSendBitrate:0,totalDuration:0,totalFreezeTime:0,currentPacketLossRate:0},k4={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveLevel:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receivePacketsDiscarded:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},EU={uplinkNetworkQuality:0,downlinkNetworkQuality:0},P4={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receiveResolutionHeight:0,receiveResolutionWidth:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1};let lA=function(t){return t.ON_TRACK="on_track",t.ON_NODE="on_node",t}({}),Z1=function(t){return t.REQUEST_UPDATE_CONSTRAINTS="request_update_constraints",t.REQUEST_CONSTRAINTS="request_constraints",t}({}),FC=function(t){return t.IDLE="IDLE",t.INITING="INITING",t.INITEND="INITEND",t}({}),uh=function(t){return t.STATE_CHANGE="state_change",t.RECORDING_DEVICE_CHANGED="recordingDeviceChanged",t.PLAYOUT_DEVICE_CHANGED="playoutDeviceChanged",t.CAMERA_DEVICE_CHANGED="cameraDeviceChanged",t}({}),Ca=function(t){return t.NONE="none",t.INIT="init",t.CANPLAY="canplay",t.PLAYING="playing",t.PAUSED="paused",t.SUSPEND="suspend",t.STALLED="stalled",t.WAITING="waiting",t.ERROR="error",t.DESTROYED="destroyed",t.ABORT="abort",t.ENDED="ended",t.EMPTIED="emptied",t.LOADEDDATA="loadeddata",t}({}),Ud=function(t){return t[t.VideoStateStopped=0]="VideoStateStopped",t[t.VideoStateStarting=1]="VideoStateStarting",t[t.VideoStateDecoding=2]="VideoStateDecoding",t[t.VideoStateFrozen=3]="VideoStateFrozen",t}({});const ay={uninit:100,none:110,init:120,loadeddata:130,canplay:200,playing:210,paused:220,suspend:300,stalled:310,waiting:320,error:330,destroyed:340,abort:350,ended:360,emptied:370};let Hf=function(t){return t.OPEN="open",t.MESSAGE="message",t.CLOSE="close",t.CLOSING="closing",t.ERROR="error",t}({});function Mi(t,s,c,u,h){var _,B,Q={};return Object.keys(u).forEach(function(T){Q[T]=u[T]}),Q.enumerable=!!Q.enumerable,Q.configurable=!!Q.configurable,("value"in Q||Q.initializer)&&(Q.writable=!0),Q=VA(_=RI(B=c.slice()).call(B)).call(_,function(T,D){return D(t,s,T)||T},Q),h&&Q.initializer!==void 0&&(Q.value=Q.initializer?Q.initializer.call(h):void 0,Q.initializer=void 0),Q.initializer===void 0?(Object.defineProperty(t,s,Q),null):Q}function U4(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=Array(s);c{var s;qt.reportApiInvoke(null,{name:Ti.GET_MEDIA_STREAM_TRACK,options:[],tag:vn.TRACER}).onSuccess(((s=this._mediaStreamTrack)===null||s===void 0?void 0:s.label)||"")},this.mediaStreamTrack.id||this.getTrackId()),this._mediaStreamTrack}getRTCRtpTransceiver(t){return t===xC.LOW_STREAM?this._lowRtpTransceiver:this._rtpTransceiver}getMediaStreamTrackSettings(){return this.getMediaStreamTrack(!0).getSettings()}close(){this._isClosed=!0,this._lowRtpTransceiver=void 0,this._rtpTransceiver=void 0,function(t){const s=lh.indexOf(t);s!==-1&&lh.splice(s,1)}(this),this.emit(R2.CLOSED),this.removeAllListeners(dh.SEI_RECEIVED)}_updateRtpTransceiver(t,s){if(s===xC.LOW_STREAM){if(this._lowRtpTransceiver===t)return;this._lowRtpTransceiver=t}else{if(this._rtpTransceiver===t)return;this._rtpTransceiver=t}this.emit(dh.TRANSCEIVER_UPDATED,t,s)}},T2=class extends F4{get isExternalTrack(){return this._isExternalTrack}get muted(){return this._muted}get enabled(){return this._enabled}get processorContext(){return this._processorContext}constructor(t,s){super(t,s),We(this,"_enabled",!0),We(this,"_muted",!1),We(this,"_isExternalTrack",!1),We(this,"_isClosed",!1),We(this,"_enabledMutex",void 0),We(this,"processor",void 0),We(this,"_processorContext",void 0),We(this,"_handleTrackEnded",()=>{this.onTrackEnded()}),this._enabledMutex=new ra("".concat(this.getTrackId())),t.addEventListener("ended",this._handleTrackEnded)}getTrackLabel(){var t,s;return(t=(s=this._originMediaStreamTrack)===null||s===void 0?void 0:s.label)!==null&&t!==void 0?t:""}close(){this._isClosed||(this.stop(),this._originMediaStreamTrack.stop(),this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack.stop(),this._mediaStreamTrack=null),this._originMediaStreamTrack=null,this._enabledMutex=null,J.debug("[".concat(this.getTrackId(),"] close")),this.emit(xt.NEED_CLOSE),super.close())}async _updateOriginMediaStreamTrack(t,s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];this._isExternalTrack=c,t!==this._originMediaStreamTrack&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),s&&this._originMediaStreamTrack.stop()),t.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=t,this._muted&&(this._originMediaStreamTrack.enabled=!1),this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this),this.processor&&this._processorContext&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this._processorContext}))}_getDefaultPlayerConfig(){return{}}onTrackEnded(){J.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(R2.TRACK_ENDED)}stateCheck(t,s){if(J.debug("check track state, [muted: ".concat(this._muted,", enabled: ").concat(this._enabled,"] to [").concat(t,": ").concat(s,"]")),ll(s,t),this._enabled&&this._muted&&t==="enabled"&&s===!1)throw new tt(Ce.TRACK_STATE_UNREACHABLE,"cannot set enabled while the track is muted").print("error",J);if(!this._enabled&&!this._muted&&t==="muted"&&s===!0)throw new tt(Ce.TRACK_STATE_UNREACHABLE,"cannot set muted while the track is disabled").print("error",J)}getProcessorStats(){return this._processorContext&&this._processorContext.gatherStats()||[]}getProcessorUsage(){return this._processorContext?this._processorContext.gatherUsage():Ut.resolve([])}};const G4=window.AudioContext||window.webkitAudioContext;let Ay,ec=null;const bn=new class extends Cn{constructor(){super(...arguments),We(this,"prevState",void 0),We(this,"curState",void 0),We(this,"currentTime",void 0),We(this,"currentTimeStuckAt",void 0),We(this,"interruptDetectorTrack",void 0),We(this,"onLocalAudioTrackMute",()=>{J.info("ios15-interruption-start"),this.emit(Yo.IOS_15_16_INTERRUPTION_START)}),We(this,"onLocalAudioTrackUnmute",async()=>{J.info("ios15-interruption-end"),this.curState!=="running"||this.duringInterruption?J.info("ios15-interruption-end-canceled"):(ec&&await ec.suspend(),this.emit(Yo.IOS_15_16_INTERRUPTION_END))})}get duringInterruption(){return this.prevState==="running"&&this.curState==="interrupted"}bindInterruptDetectorTrack(t){J.debug("webaudio bindInterruptDetectorTrack ".concat(t.getTrackId())),this.interruptDetectorTrack||(this.interruptDetectorTrack=t,this.interruptDetectorTrack._mediaStreamTrack.onmute=this.onLocalAudioTrackMute,this.interruptDetectorTrack._mediaStreamTrack.onunmute=this.onLocalAudioTrackUnmute)}unbindInterruptDetectorTrack(t){J.debug("webaudio unbindInterruptDetectorTrack ".concat(t.getTrackId())),this.interruptDetectorTrack&&this.interruptDetectorTrack===t&&(this.interruptDetectorTrack._mediaStreamTrack&&(this.interruptDetectorTrack._mediaStreamTrack.onmute=null,this.interruptDetectorTrack._mediaStreamTrack.onunmute=null),this.interruptDetectorTrack=void 0)}};function w2(){if(!ec){if(function(){if(!G4)return void J.error("your browser is not support web audio");J.info("create audio context");const t=Xn({},de("WEBAUDIO_INIT_OPTIONS"));J.debug("audio context init option:",JSON.stringify(t)),ec=new G4(t),bn.curState=ec.state,ec.onstatechange=()=>{bn.prevState=bn.curState,bn.curState=ec?ec.state:void 0;const s=bn.prevState,c=bn.curState,u=c==="running",h=c==="interrupted",_=s==="running",B=s==="suspended",Q=s==="interrupted",T=Qi().osVersion;(Ia()||Y1())&&_&&h&&(J.info("ios".concat(T,"-interruption-start")),bn.emit(Yo.IOS_INTERRUPTION_START)),(Ia()||Y1())&&(B||Q)&&u&&(J.info("ios".concat(T,"-interruption-end")),bn.emit(Yo.IOS_INTERRUPTION_END)),s!==c&&bn.emit(Yo.STATE_CHANGE,c,s)},setInterval(()=>{var s;const c=(s=ec)===null||s===void 0?void 0:s.currentTime;bn.currentTime!==c?(bn.currentTimeStuckAt&&(J.debug("AudioContext current time resume at ".concat(c)),bn.currentTimeStuckAt=void 0),bn.currentTime=c):(c!==bn.currentTimeStuckAt&&(qt.reportApiInvoke(null,{name:"WEB_AUDIO_CURRENT_TIME_STUCK",options:{currentTime:c},tag:vn.TRACER}).onSuccess(),J.warning("AudioContext current time stuck at ".concat(c))),bn.currentTimeStuckAt=c)},5e3),async function(s){const c=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","touchend","keydown","keyup"];let u,h,_=!1,B=!1,Q=!1;function T(se){s.state==="running"?D(!1):Ia()||Y1()?s.state==="suspended"&&(D(!0),se&&s.resume().then(O,O)):s.state!=="closed"&&(D(!0),se&&s.resume().then(O,O))}function D(se){if(_!==se){_=se;for(let ge=0,me=c;ge",u=ge.children.item(0),u.controls=!1,u.disableRemotePlayback=!0,u.preload="auto",u.srcObject=se.stream,h=()=>{if(de("IOS_AUTO_RESTART_BG_TAG")&&u&&u.srcObject&&!Q&&(!u.paused||B!==!0)){u.paused||u.pause();try{Q=!0,U()}catch{Q=!1}return!0}},H(!0)}return bn.on(Yo.STATE_CHANGE,function(){T(!0)}),T(!1),h}(ec).then(s=>{Ay=s})}(),!ec)throw new tt(Ce.NOT_SUPPORTED,"can not create audio context");return ec}return ec}function gh(t){if(function(){if(cy!==null)return cy;const u=w2(),h=u.createBufferSource(),_=u.createGain(),B=u.createGain();h.connect(_),h.connect(B),h.disconnect(_);let Q=!1;try{h.disconnect(_)}catch{Q=!0}return h.disconnect(),cy=Q,Q}())return;const s=t.connect,c=t.disconnect;t.connect=(u,h,_)=>{var B;return t._inputNodes||(t._inputNodes=[]),Et(B=t._inputNodes).call(B,u)||(u instanceof AudioNode?(t._inputNodes.push(u),s.call(t,u,h,_)):s.call(t,u,h)),t},t.disconnect=(u,h,_)=>{c.call(t),u?UR(t._inputNodes,u):t._inputNodes=[];for(const B of t._inputNodes)s.call(t,B)}}let cy=null;function hi(t,s){let c=!1;const u=1/s;if(de("DISABLE_WEBAUDIO")){const h=window.setInterval(()=>{c?window.clearInterval(h):t(performance.now()/1e3)},1e3*u)}else{const h=w2();let _=h.createGain();_.gain.value=0,_.connect(h.destination);const B=()=>{if(c)return void(_=null);const Q=h.createOscillator();Q.onended=B,Q.connect(_),Q.start(0),Q.stop(h.currentTime+u),t(h.currentTime)};B()}return()=>{c=!0}}let V4=class{constructor(){We(this,"context",void 0),We(this,"analyserNode",void 0),We(this,"sourceNode",void 0),this.context=w2(),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4}updateSource(t){if(t!==this.sourceNode){if(this.sourceNode)try{this.sourceNode.disconnect(this.analyserNode)}catch{}this.sourceNode=t,t==null||t.connect(this.analyserNode)}}getVolumeLevel(){if(!this.sourceNode||(!this.context||Ia()||Y1()||this.context.state!=="running"&&this.context.resume(),!this.analyserNode))return 0;const t=new Float32Array(this.analyserNode.fftSize);if(this.analyserNode.getFloatTimeDomainData)this.analyserNode.getFloatTimeDomainData(t);else{const c=new Uint8Array(this.analyserNode.fftSize);this.analyserNode.getByteTimeDomainData(c);for(let u=0;uc+u*u,0)/t.length;return Math.max(10*Math.log10(s)+100,0)/100}getAnalyserNode(){return this.analyserNode}rebuildAnalyser(){try{var t,s;(t=this.sourceNode)===null||t===void 0||t.disconnect(this.analyserNode),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4,(s=this.sourceNode)===null||s===void 0||s.connect(this.analyserNode)}catch{J.warning("rebuild analyser node failed.")}}destroy(){this.updateSource(void 0)}},K4=class extends Cn{get processSourceNode(){return this.sourceNode}set processedNode(t){var s;if(!this.isDestroyed&&this._processedNode!==t){try{var c;(c=this.sourceNode)===null||c===void 0||c.disconnect(this.outputNode)}catch{}(s=this._processedNode)===null||s===void 0||s.disconnect(),this._processedNode=t,this.connect()}}get processedNode(){return this._processedNode}constructor(){super(),We(this,"outputNode",void 0),We(this,"outputTrack",void 0),We(this,"isPlayed",!1),We(this,"sourceNode",void 0),We(this,"context",void 0),We(this,"audioBufferNode",void 0),We(this,"destNode",void 0),We(this,"audioOutputLevel",0),We(this,"volumeLevelAnalyser",void 0),We(this,"_processedNode",void 0),We(this,"playNode",void 0),We(this,"isDestroyed",!1),We(this,"onNoAudioInput",void 0),We(this,"isNoAudioInput",!1),We(this,"_noAudioInputCount",0),this.context=w2(),this.playNode=this.context.destination,this.outputNode=this.context.createGain(),gh(this.outputNode),this.volumeLevelAnalyser=new V4}startGetAudioBuffer(t){this.audioBufferNode||(this.audioBufferNode=this.context.createScriptProcessor(t),this.outputNode.connect(this.audioBufferNode),this.audioBufferNode.connect(this.context.destination),this.audioBufferNode.onaudioprocess=s=>{this.emit(zA.ON_AUDIO_BUFFER,function(c){for(let u=0;u{bn.emit("autoplay-failed")}),this.isPlayed=!0,this.playNode=t||this.context.destination,this.outputNode.connect(this.playNode)}stop(){if(this.isPlayed)try{this.outputNode.disconnect(this.playNode)}catch{}this.isPlayed=!1}getAccurateVolumeLevel(){return this.volumeLevelAnalyser.getVolumeLevel()}async checkHasAudioInput(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(t>5)return this.isNoAudioInput=!0,this.onNoAudioInput&&this.onNoAudioInput(),!1;Ia()||Y1()?this.context.state==="suspended"&&this.context.resume():this.context.state!=="running"&&this.context.resume();const s=this.volumeLevelAnalyser.getAnalyserNode();let c;s.getFloatTimeDomainData?(c=new Float32Array(s.fftSize),s.getFloatTimeDomainData(c)):(c=new Uint8Array(s.fftSize),s.getByteTimeDomainData(c));let u=!1;for(let h=0;h{if(J.debug("ready to rebuild web audio, state:",this.context.state),this.isNoAudioInput&&await this.checkHasAudioInput(),!this.isNoAudioInput||this.isDestroyed)return document.body.removeEventListener("click",this.rebuildWebAudio,!0),void J.debug("rebuild web audio success, current volume status",this.getAccurateVolumeLevel());this.context.resume().then(()=>J.info("resume success")),J.debug("rebuild web audio because of ios 12 bugs"),this.disconnect();const B=this.track;this.track=this.track.clone(),this.isCurrentTrackCloned?B.stop():this.isCurrentTrackCloned=!0;const Q=new MediaStream([this.track]);this.sourceNode=this.context.createMediaStreamSource(Q),gh(this.sourceNode),this.volumeLevelAnalyser.rebuildAnalyser();const T=this.outputNode.gain.value;this.outputNode=this.context.createGain(),this.outputNode.gain.setValueAtTime(T,this.context.currentTime),gh(this.outputNode),this.emit(zA.UPDATE_SOURCE),this.connect(),this.audioElement.srcObject=Q,this.isPlayed&&this.play(this.playNode),this.checkHasAudioInput()}),t.kind!=="audio")throw new tt(Ce.UNEXPECTED_ERROR);this.track=t;const h=new MediaStream([this.track]);if(this.isRemoteTrack=!!s,this.sourceNode=this.context.createMediaStreamSource(h),gh(this.sourceNode),c){const B=c.clone();B.enabled=!0,this.clonedTrack=B,J.debug("create an unmuted track ".concat(B.id," from the original track ").concat(c.id," to get the volume"));const Q=this.context.createMediaStreamSource(new MediaStream([B]));gh(Q),this.originVolumeLevelAnalyser=new V4,this.originVolumeLevelAnalyser.updateSource(Q)}this.connect(),this.audioElement=document.createElement("audio"),this.audioElement.srcObject=h;const _=Qi();s&&_.os===ns.IOS&&Number((u=_.osVersion)===null||u===void 0?void 0:u.split(".")[0])<15&&(bn.on(Yo.STATE_CHANGE,()=>{this.context.state==="suspended"?document.body.addEventListener("click",this.rebuildWebAudio,!0):this.context.state==="running"&&this.rebuildWebAudio()}),this.checkHasAudioInput().then(B=>{B||document.body.addEventListener("click",this.rebuildWebAudio,!0)}))}updateTrack(t){this.sourceNode.disconnect(),this.track=t,this.isCurrentTrackCloned=!1;const s=new MediaStream([t]);this.sourceNode=this.context.createMediaStreamSource(s),gh(this.sourceNode),this.processedNode||this.sourceNode.connect(this.outputNode),this.emit(zA.UPDATE_SOURCE),this.audioElement.srcObject=s}destroy(){var t;this.audioElement.srcObject=null,this.audioElement.remove(),bn.off("state-change",this.rebuildWebAudio),(t=this.originVolumeLevelAnalyser)===null||t===void 0||t.destroy(),this.clonedTrack=void 0,super.destroy()}createMediaStreamSourceNode(t){return this.context.createMediaStreamSource(new MediaStream([t]))}updateOriginTrack(t){const s=t.clone();s.enabled=!0,this.clonedTrack&&(this.clonedTrack.stop(),this.clonedTrack=s),J.debug("create an unmuted track ".concat(s.id," from the original track ").concat(t.id," to get the volume"));const c=this.context.createMediaStreamSource(new MediaStream([s]));gh(c),this.originVolumeLevelAnalyser&&this.originVolumeLevelAnalyser.updateSource(c)}getOriginVolumeLevel(){return this.originVolumeLevelAnalyser?this.originVolumeLevelAnalyser.getVolumeLevel():this.getAccurateVolumeLevel()}};async function H4(t,s,c){const u=(_,B)=>_?typeof _!="number"?_.max||_.exact||_.ideal||_.min||B:_:B,h={audio:!!c&&{mandatory:{chromeMediaSource:"desktop"}},video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxHeight:u(s.height,1080),maxWidth:u(s.width,1920)}}};return s.frameRate&&typeof s.frameRate!="number"?(h.video.mandatory.maxFrameRate=s.frameRate.max,h.video.mandatory.minFrameRate=s.frameRate.min):typeof s.frameRate=="number"&&(h.video.mandatory.maxFrameRate=s.frameRate),await navigator.mediaDevices.getUserMedia(h)}async function hU(t,s){const c=await Y4(t.mediaSource),u=await function(B){let Q=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new Ut((T,D)=>{const O=document.createElement("div");O.innerText="share screen",O.setAttribute("style","text-align: center; height: 25px; line-height: 25px; border-radius: 4px 4px 0 0; background: #D4D2D4; border-bottom: solid 1px #B9B8B9;");const P=document.createElement("div");P.setAttribute("style","width: 100%; height: 500px; padding: 15px 25px ; box-sizing: border-box;");const U=document.createElement("div");U.innerText="Agora Web Screensharing wants to share the contents of your screen with webdemo.agorabeckon.com. Choose what you'd like to share.",U.setAttribute("style","height: 12%;");const H=document.createElement("div");H.setAttribute("style","width: 100%; height: 80%; background: #FFF; border: solid 1px #CBCBCB; display: flex; flex-wrap: wrap; justify-content: space-around; overflow-y: scroll; padding: 0 15px; box-sizing: border-box;");const $=document.createElement("div");$.setAttribute("style","display: flex; justify-content: space-between; padding: 16px 0;");const Z=document.createElement("button");Z.innerHTML="cancel",Z.setAttribute("style","width: 85px;"),Z.onclick=()=>{document.body.removeChild(ge);const me=new Error("NotAllowedError");me.name="NotAllowedError",D(me)};let te=Q;const se=document.createElement("div");if(Q){const me=document.createElement("input");me.setAttribute("type","checkbox");const Qe=document.createElement("span");me.setAttribute("style","margin-right: 6px;"),Qe.innerText="Share audio",me.checked=te,me.onchange=()=>{te=me.checked},se.appendChild(me),se.appendChild(Qe)}$.appendChild(se),$.appendChild(Z),P.appendChild(U),P.appendChild(H),P.appendChild($);const ge=document.createElement("div");ge.setAttribute("style","position: fixed; z-index: 99999999; top: 50%; left: 50%; width: 620px; height: 525px; background: #ECECEC; border-radius: 4px; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);"),ge.appendChild(O),ge.appendChild(P),document.body.appendChild(ge),B.map(me=>{if(me.id){const Qe=document.createElement("div");Qe.setAttribute("style","width: 30%; height: 160px; padding: 20px 0; text-align: center;box-sizing: content-box;");let Oe=me.thumbnail;try{Oe.getSize().width>1920&&(Oe=Oe.resize({width:1920}))}catch(we){throw we&&we.message.startsWith("Illegal invocation")&&console.error("Operate thumbnail error, please try to set contextIsolation: false. (https://github.com/electron/electron/issues/34953)"),we}Qe.innerHTML='
'+me.name.replace(/[\u00A0-\u9999<>\&]/g,function(we){return"&#"+we.charCodeAt(0)+";"})+"",Qe.onclick=()=>{document.body.removeChild(ge),T({sourceId:me.id,audio:te})},H.appendChild(Qe)}})})}(c,s),h=u.sourceId,_=u.audio;return await H4(h,t,_)}async function Y4(t){let s=["window","screen"];t!=="application"&&t!=="window"||(s=["window"]),t==="screen"&&(s=["screen"]);const c=ih();if(!c)throw console.error("failed to fetch electron, please mount it to window"),new tt(Ce.ELECTRON_IS_NULL);let u=null;try{var h;u=((h=c.desktopCapturer)===null||h===void 0?void 0:h.getSources({types:s}))||c.ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES",{types:s})}catch{u=null}u&&u.then||(u=new Ut((_,B)=>{c.desktopCapturer.getSources({types:s},(Q,T)=>{Q?B(Q):_(T)})}));try{return await u}catch(_){throw new tt(Ce.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,_.toString())}}const dy=new ra("safari");let j4=!1,tc=!1;async function Pi(t,s){let c=0,u=null;for(;c<2;)try{u=await uy(t,s,c>0);break}catch(h){if(h instanceof tt)throw J.error("[".concat(s,"] ").concat(h.toString())),h;const _=Yf(h.name||h.code||h,h.message);if(_.code===Ce.MEDIA_OPTION_INVALID){J.debug("[".concat(s,"] detect media option invalid, retry")),c+=1,await so(500);continue}throw J.error("[".concat(s,"] ").concat(_.toString())),_}if(!u)throw new tt(Ce.UNEXPECTED_ERROR,"can not find stream after getUserMedia");return u}async function uy(t,s,c){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new tt(Ce.NOT_SUPPORTED,"can not find getUserMedia");c&&(t.video&&(delete t.video.width,delete t.video.height),t.screen&&(delete t.screen.width,delete t.screen.height));const u=Si(),h=new MediaStream;if(t.audioSource&&h.addTrack(t.audioSource),t.videoSource&&h.addTrack(t.videoSource),!t.audio&&!t.video&&!t.screen)return J.debug("Using Video Source/ Audio Source"),h;if(t.screen)if(ih())t.screen.sourceId?Eh(h,await H4(t.screen.sourceId,t.screen,!!t.screenAudio)):Eh(h,await hU(t.screen,!!t.screenAudio));else if(DA()&&t.screen.extensionId&&t.screen.mandatory){if(!u.getStreamFromExtension)throw new tt(Ce.NOT_SUPPORTED,"This browser does not support screen sharing");J.debug("[".concat(s,'] Screen access on chrome stable, looking for extension"'));const U=await(B=t.screen.extensionId,Q=s,new Ut((H,$)=>{try{chrome.runtime.sendMessage(B,{getStream:!0},Z=>{if(!Z||!Z.streamId)return J.error("[".concat(Q,"] No response from Chrome Plugin. Plugin not installed properly"),Z),void $(new tt(Ce.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));H(Z.streamId)})}catch(Z){J.error("[".concat(Q,"] AgoraRTC screensharing plugin is not accessible(").concat(B,")"),Z.toString()),$(new tt(Ce.CHROME_PLUGIN_NOT_INSTALL))}}));t.screen.mandatory.chromeMediaSourceId=U,Eh(h,await navigator.mediaDevices.getUserMedia({video:{mandatory:t.screen.mandatory}}))}else if(u.getDisplayMedia){var _;t.screen.mediaSource&&Da(t.screen.mediaSource);const U={width:t.screen.width,height:t.screen.height,frameRate:t.screen.frameRate,displaySurface:(_=t.screen.displaySurface)!==null&&_!==void 0?_:t.screen.mediaSource==="screen"?"monitor":t.screen.mediaSource},H=t.screen,$=H.selfBrowserSurface,Z=H.surfaceSwitching,te=H.systemAudio,se=H.preferCurrentTab,ge=H.windowAudio,me=H.monitorTypeSurfaces,Qe={selfBrowserSurface:$,surfaceSwitching:Z,systemAudio:te,preferCurrentTab:se,windowAudio:ge,monitorTypeSurfaces:me};!$&&delete Qe.selfBrowserSurface,!Z&&delete Qe.surfaceSwitching,!te&&delete Qe.systemAudio,!se&&delete Qe.preferCurrentTab,!ge&&delete Qe.windowAudio,!me&&delete Qe.monitorTypeSurfaces,J.debug("[".concat(s,"] getDisplayMedia:"),JSON.stringify({video:U,audio:t.screenAudio,controls:Qe})),Eh(h,await navigator.mediaDevices.getDisplayMedia(Xn({video:U,audio:t.screenAudio},Qe)))}else{if(!Ln())throw J.error("[".concat(s,"] This browser does not support screenSharing")),new tt(Ce.NOT_SUPPORTED,"This browser does not support screen sharing");{t.screen.mediaSource&&Da(t.screen.mediaSource);const U={video:{mediaSource:t.screen.mediaSource,width:t.screen.width,height:t.screen.height,frameRate:t.screen.frameRate}};J.debug("[".concat(s,"] getUserMedia: ").concat(JSON.stringify(U))),Eh(h,await navigator.mediaDevices.getUserMedia(U))}}var B,Q;if(!t.video&&!t.audio)return h;let T={video:t.video,audio:t.audio},D=de("MEDIA_DEVICE_CONSTRAINTS");if(D)try{typeof D=="string"&&(D=JSON.parse(D)),T=Cs(T,D)}catch{}J.debug("[".concat(s,"] GetUserMedia"),JSON.stringify(T)),Qi();let O,P=null;(Zs()||Ia()||Qf())&&(P=await dy.lock());try{O=await navigator.mediaDevices.getUserMedia(T)}catch(U){throw P&&P(),U}return T.audio&&(j4=!0),T.video&&(tc=!0),Eh(h,O),P&&P(),h}function Yf(t,s){switch(t){case"Starting video failed":case"OverconstrainedError":case"TrackStartError":return new tt(Ce.MEDIA_OPTION_INVALID,"".concat(t,": ").concat(s));case"NotFoundError":case"DevicesNotFoundError":return new tt(Ce.DEVICE_NOT_FOUND,"".concat(t,": ").concat(s));case"NotSupportedError":return new tt(Ce.NOT_SUPPORTED,"".concat(t,": ").concat(s));case"NotReadableError":return new tt(Ce.NOT_READABLE,"".concat(t,": ").concat(s));case"InvalidStateError":case"NotAllowedError":case"PERMISSION_DENIED":case"PermissionDeniedError":return new tt(Ce.PERMISSION_DENIED,"".concat(t,": ").concat(s));case"ConstraintNotSatisfiedError":return new tt(Ce.CONSTRAINT_NOT_SATISFIED,"".concat(t,": ").concat(s));default:return J.error("getUserMedia unexpected error",t),new tt(Ce.UNEXPECTED_ERROR,"".concat(t,": ").concat(s))}}function Eh(t,s){const c=t.getVideoTracks()[0],u=t.getAudioTracks()[0],h=s.getVideoTracks()[0],_=s.getAudioTracks()[0];_&&(u&&t.removeTrack(u),t.addTrack(_)),h&&(c&&t.removeTrack(c),t.addTrack(h))}const rc=new class extends Cn{get state(){return this._state}set state(t){t!==this._state&&(this.emit(uh.STATE_CHANGE,t),this._state=t)}constructor(){super(),We(this,"_state",FC.IDLE),We(this,"isAccessMicrophonePermission",!1),We(this,"isAccessCameraPermission",!1),We(this,"lastAccessMicrophonePermission",!1),We(this,"lastAccessCameraPermission",!1),We(this,"checkdeviceMatched",!1),We(this,"deviceInfoMap",new Map),this.init().then(()=>{navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",this.updateDevicesInfo.bind(this)),window.setInterval(()=>{(de("ENUMERATE_DEVICES_INTERVAL")||(c2()||Md()===ns.HARMONY_OS)&&Al())&&this.updateDevicesInfo()},de("ENUMERATE_DEVICES_INTERVAL_TIME"))}).catch(t=>J.error(t.toString()))}async enumerateDevices(t,s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)throw new tt(Ce.NOT_SUPPORTED,"enumerateDevices() not supported.");const u=await navigator.mediaDevices.enumerateDevices(),h=this.checkMediaDeviceInfoIsOk(u);let _=!this.isAccessMicrophonePermission&&t,B=!this.isAccessCameraPermission&&s;h.audio&&(_=!1),h.video&&(B=!1);let Q=null,T=null,D=null;if(!c&&(_||B)){if(dy.isLocked&&(J.debug("[device manager] wait GUM lock"),(await dy.lock())(),J.debug("[device manager] GUM unlock")),j4&&(_=!1,this.isAccessMicrophonePermission=!0),tc&&(B=!1,this.isAccessCameraPermission=!0),J.debug("[device manager] check media device permissions",t,s,_,B),_&&B){try{D=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch(O){const P=Yf(O.name||O.code||O,O.message);if(P.code===Ce.PERMISSION_DENIED)throw P;J.warning("getUserMedia failed in getDevices",P)}this.isAccessCameraPermission=!0,this.isAccessMicrophonePermission=!0}else if(_){try{Q=await navigator.mediaDevices.getUserMedia({audio:t})}catch(O){const P=Yf(O.name||O.code||O,O.message);if(P.code===Ce.PERMISSION_DENIED)throw P;J.warning("getUserMedia failed in getDevices",P)}this.isAccessMicrophonePermission=!0}else if(B){try{T=await navigator.mediaDevices.getUserMedia({video:s})}catch(O){const P=Yf(O.name||O.code||O,O.message);if(P.code===Ce.PERMISSION_DENIED)throw P;J.warning("getUserMedia failed in getDevices",P)}this.isAccessCameraPermission=!0}J.debug("[device manager] mic permission",t,"cam permission",s)}try{const O=await navigator.mediaDevices.enumerateDevices();return Q&&Q.getTracks().forEach(P=>P.stop()),T&&T.getTracks().forEach(P=>P.stop()),D&&D.getTracks().forEach(P=>P.stop()),Q=null,T=null,D=null,O}catch(O){return Q&&Q.getTracks().forEach(P=>P.stop()),T&&T.getTracks().forEach(P=>P.stop()),D&&D.getTracks().forEach(P=>P.stop()),Q=null,T=null,D=null,new tt(Ce.ENUMERATE_DEVICES_FAILED,O.toString()).throw()}}async getRecordingDevices(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,t)).filter(s=>s.kind==="audioinput")}async getCamerasDevices(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!1,!0,t)).filter(s=>s.kind==="videoinput")}async getSpeakers(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,t)).filter(s=>s.kind==="audiooutput")}searchDeviceIdByName(t){let s=null;return this.deviceInfoMap.forEach(c=>{c.device.label===t&&(s=c.device.deviceId)}),s}async getDeviceById(t){const s=(await this.enumerateDevices(!0,!0,!0)).find(c=>c.deviceId===t);if(!s)throw new tt(Ce.DEVICE_NOT_FOUND,"deviceId: ".concat(t));return s}async init(){this.state=FC.INITING;try{await this.updateDevicesInfo(),this.state=FC.INITEND}catch(t){throw this.state=FC.IDLE,(typeof isSecureContext=="boolean"?isSecureContext:location.protocol==="https:"||location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"||location.hostname==="::1")?(J.warning("Device Detection functionality cannot start properly.",t.toString()),t):new tt(Ce.WEB_SECURITY_RESTRICT,"Your context is limited by web security, please try using https protocol or localhost.")}}async updateDevicesInfo(){const t=await this.enumerateDevices(!0,!0,!0),s=Date.now(),c=[];if(t[0]&&t[0].label&&this.checkdeviceMatched===!1){this.checkdeviceMatched=!0;const h=t.find(B=>B.kind==="audioinput"&&B.deviceId==="default"),_=t.find(B=>B.kind==="audiooutput"&&B.deviceId==="default");h&&_?_.groupId===h.groupId?J.debug("[device-check] default input ".concat(h.label," and output ").concat(_.label," is the same group")):J.debug("[device-check] default input ".concat(h.label," and output ").concat(_.label," is not the same group")):J.debug("[device-check] default input or output not found")}const u=this.checkMediaDeviceInfoIsOk(t);if(t.forEach(h=>{if(!h.deviceId)return;const _=this.deviceInfoMap.get("".concat(h.kind,"_").concat(h.deviceId));if((_?_.state:"INACTIVE")!=="ACTIVE"){const B={initAt:s,updateAt:s,device:h,state:"ACTIVE"};this.deviceInfoMap.set("".concat(h.kind,"_").concat(h.deviceId),B),c.push(B)}_&&(_.updateAt=s)}),this.deviceInfoMap.forEach((h,_)=>{h.state==="ACTIVE"&&h.updateAt!==s&&(h.state="INACTIVE",c.push(h))}),this.state!==FC.INITEND)return u.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),void(u.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0));c.forEach(h=>{switch(h.device.kind){case"audioinput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(uh.RECORDING_DEVICE_CHANGED,h);break;case"videoinput":this.lastAccessCameraPermission&&this.isAccessCameraPermission&&this.emit(uh.CAMERA_DEVICE_CHANGED,h);break;case"audiooutput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(uh.PLAYOUT_DEVICE_CHANGED,h)}}),u.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),u.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0)}checkMediaDeviceInfoIsOk(t){const s=t.filter(h=>h.kind==="audioinput"),c=t.filter(h=>h.kind==="videoinput"),u={audio:!1,video:!1};for(const h of s)if(h.label&&h.deviceId){u.audio=!0;break}for(const h of c)if(h.label&&h.deviceId){u.video=!0;break}return u}};let gy=!1;const bA=new class extends Cn{constructor(){super(...arguments),We(this,"onAutoplayFailed",void 0),We(this,"onAudioAutoplayFailed",void 0)}};function J4(){if(gy)return de("FLS_AUTOPLAY_EMITS")?(bA.onAutoplayFailed&&bA.onAutoplayFailed(),bA.emit("autoplay-failed")):void 0;{const t=s=>{s.preventDefault(),gy=!1,l2()?document.body.removeEventListener("click",t,!0):(document.body.removeEventListener("touchstart",t,!0),document.body.removeEventListener("mousedown",t,!0))};gy=!0,l2()?document.body.addEventListener("click",t,!0):(document.body.addEventListener("touchstart",t,!0),document.body.addEventListener("mousedown",t,!0)),J.info("detect media autoplay failed, document: https://docs.agora.io/cn/Voice/autoplay_policy_web_ng?platform=Web"),bA.onAutoplayFailed?bA.onAutoplayFailed():bA.onAudioAutoplayFailed?J.warning(`AgoraRTC.onAudioAutoplayFailed has been deprecated in favor of AgoraRTC.onAutoplayFailed. + + Please refer to the Agora document to migrate the newer API, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`):J.warning(`We have detected a media autoplay failed event, and found out that you haven't implemented AgoraRTC.onAutoplayFailed callback yet. + + It will cause audio/video element not playing automatically on some browsers without user interaction, possibly hurting user experiences. + + Please refer to the Agora document to properly handle autoplay failed event, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`),bA.emit("autoplay-failed")}}function Nc(t,s,c,u){if(!t)return;const h=qt.getBaseInfoBySessionId(t);if(!h)return;const _=h.info,B=Date.now(),Q=Xn(Xn({},_),{},{vid:_.vid===void 0?0:Number(_.vid),lts:B,elapse:B-h.startTime,cbRegistered:bA.onAutoplayFailed||bA.onAudioAutoplayFailed?1:-1,errorMsg:c,mediaType:s,trackId:u,extend:void 0});qt.send({type:ao.AUTOPLAY_FAILED,data:Q},!0)}const IU=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","error"],rA=new class{constructor(){We(this,"onAutoplayFailed",void 0),We(this,"elementMap",new Map),We(this,"elementStateMap",new Map),We(this,"elementsNeedToResume",[]),We(this,"sinkIdMap",new Map),We(this,"autoResumeAfterInterruption",t=>Ut.all(Array.from(this.elementMap.entries()).map(async s=>{let c=bc(s,2),u=c[0],h=c[1];const _=this.elementStateMap.get(u),B=h.srcObject.getAudioTracks()[0],Q=B&&B.readyState;if(J.debug("resume after interrupted, ele: ".concat(_," audio: ").concat(Q," ").concat(t)),Q==="live"){if(t)return h.pause(),h.play();if(bn.curState==="running")return Is()?(h.pause(),h.play()):_&&_==="paused"?h.play():void 0}}))),We(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{Array.from(this.elementMap.entries()).forEach(t=>{let s=bc(t,2);s[0];let c=s[1];const u=c.srcObject.getAudioTracks()[0];u&&u.readyState==="live"&&(J.debug("auto resume after interruption inside autoResumeAfterInterruptionOnIOS15"),c.pause(),c.play())})}),this.autoResumeAudioElement(),bn.on(Yo.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),bn.on(Yo.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),bn.on(Yo.STATE_CHANGE,()=>{Ia()&&bn.prevState==="suspended"&&bn.curState==="running"&&this.autoResumeAfterInterruption()})}async setSinkID(t,s){const c=this.elementMap.get(t);if(this.sinkIdMap.set(t,s),c)try{await c.setSinkId(s)}catch(u){throw new tt(Ce.PERMISSION_DENIED,"can not set sink id: "+u.toString())}}play(t,s,c,u){if(this.elementMap.has(s))return;const h=document.createElement("audio");h.autoplay=!0,h.srcObject=new MediaStream([t]),this.bindAudioElementEvents(s,h),this.elementMap.set(s,h),this.elementStateMap.set(s,Ca.INIT),this.setVolume(s,c);const _=this.sinkIdMap.get(s);if(_)try{h.setSinkId(_).catch(Q=>{J.warning("[".concat(s,"] set sink id failed"),Q.toString())})}catch(Q){J.warning("[".concat(s,"] set sink id failed"),Q.toString())}const B=h.play();B&&B.then&&B.catch(Q=>{u&&Nc(u,"audio",Q.message,s),J.warning("audio element play warning",Q.toString()),this.elementMap.has(s)&&Q.name==="NotAllowedError"&&(J.warning("detected audio element autoplay failed"),this.elementsNeedToResume.push(h),xR(()=>{this.onAutoplayFailed&&this.onAutoplayFailed(),J4()}))})}updateTrack(t,s){const c=this.elementMap.get(t);c&&(c.srcObject=new MediaStream([s]))}isPlaying(t){return this.elementMap.has(t)&&this.elementStateMap.get(t)==="playing"}setVolume(t,s){const c=this.elementMap.get(t);c&&(s=Math.max(0,Math.min(100,s)),c.volume=s/100)}getVolume(t){const s=this.elementMap.get(t);return s?s.volume:0}stop(t){const s=this.elementMap.get(t);if(this.sinkIdMap.delete(t),!s)return;const c=this.elementsNeedToResume.indexOf(s);this.elementsNeedToResume.splice(c,1),s.srcObject=null,s.remove(),this.elementMap.delete(t),this.elementStateMap.delete(t)}bindAudioElementEvents(t,s){IU.forEach(c=>{s.addEventListener(c,u=>{const h=this.elementStateMap.get(t),_=u.type==="pause"?"paused":u.type;if(J.debug("[".concat(t,"] audio-element-status change ").concat(h," => ").concat(_)),u.type==="error"){const B=s==null?void 0:s.error;B&&J.error("[".concat(t,"] media error, code: ").concat(B.code,", message: ").concat(B.message))}this.elementStateMap.set(t,_)})})}getPlayerState(t){return this.elementStateMap.get(t)||"uninit"}autoResumeAudioElement(){const t=()=>{this.elementsNeedToResume.forEach(s=>{s.play().then(c=>{J.debug("Auto resume audio element success")}).catch(c=>{J.warning("Auto resume audio element failed!",c)})}),this.elementsNeedToResume=[]};new Ut(s=>{document.body?s():window.addEventListener("load",()=>s())}).then(()=>{l2()?document.body.addEventListener("click",t,!0):(document.body.addEventListener("touchstart",t,!0),document.body.addEventListener("mousedown",t,!0))})}};function Fo(){return function(t,s,c){const u=c.value;return typeof u=="function"&&(c.value=function(){this._isClosed&&new tt(Ce.INVALID_OPERATION,"[".concat(this.getTrackId(),"] cannot operate a closed track")).print("warning",J);for(var h=arguments.length,_=new Array(h),B=0;B{Q.then(T).catch(D)}):Q}),c}}let q4=class extends Cn{constructor(t){super(),We(this,"name","VideoProcessorDestination"),We(this,"ID","0"),We(this,"_source",void 0),We(this,"videoContext",void 0),We(this,"inputTrack",void 0),this.videoContext=t}get kind(){return"video"}get enabled(){return!0}pipe(){throw new tt(Ce.NOT_SUPPORTED,"VideoProcessor cannot pipe to any other Processor")}unpipe(){throw new tt(Ce.NOT_SUPPORTED,"VideoProcessor cannot unpipe to any other Processor")}enable(){}disable(){}updateInput(t){if(t.context!==this.videoContext)throw new Error(`ProcessorContext passed to VideoTrack.processorDestination doesn't match it's belonging VideoTrack's context. +Probably you are making pipeline like this: +videoTrack1.pipe(processor).pipe(videoTrack2.processorDestination).`);t.track&&t.track!==this.inputTrack&&(this.videoContext.chained=!0,this.inputTrack=t.track,this.emit(lA.ON_TRACK,t.track))}reset(){this.inputTrack=void 0,this.videoContext.chained=!1,this.emit(lA.ON_TRACK,void 0)}},W4=class extends Cn{set chained(t){this._chained=t}get chained(){return this._chained}constructor(t,s){super(),We(this,"constraintsMap",new Map),We(this,"statsRegistry",[]),We(this,"usageRegistry",[]),We(this,"trackId",void 0),We(this,"direction",void 0),We(this,"_chained",!1),this.trackId=t,this.direction=s}async getConstraints(){return await $o(this,Z1.REQUEST_CONSTRAINTS)}async requestApplyConstraints(t,s){var c;return J.info("processor ".concat(s.name," requestApplyConstraints for ").concat(this.trackId)),t&&this.constraintsMap.set(s,t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(c=this.constraintsMap).call(c)))}async requestRevertConstraints(t){var s;if(this.constraintsMap.has(t))return J.info("processor ".concat(t.name," requestRevertConstraints for ").concat(this.trackId)),this.constraintsMap.delete(t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(s=this.constraintsMap).call(s)))}registerStats(t,s,c){this.statsRegistry.find(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s)||this.statsRegistry.push({processorName:t.name,processorID:t.ID,type:s,cb:c})}unregisterStats(t,s){const c=this.statsRegistry.findIndex(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s);c!==-1&&this.statsRegistry.splice(c,1)}gatherStats(){const t=[];for(const s of this.statsRegistry){const c=s.processorID,u=s.processorName,h=s.type,_=s.cb;try{const B=_();t.push({processorID:c,processorName:u,type:h,stats:B})}catch(B){J.error(new tt(Ce.UNEXPECTED_ERROR,B.message))}}return t}registerUsage(t,s){this.usageRegistry.find(c=>c.processorID===t.ID&&c.processorName===t.name)||this.usageRegistry.push({processorID:t.ID,processorName:t.name,cb:s})}unregisterUsage(t){const s=this.usageRegistry.findIndex(c=>c.processorID===t.ID&&c.processorName===t.name);s!==-1&&this.usageRegistry.splice(s,1)}async gatherUsage(){const t=[];if(!this.chained)return[];for(const s of this.usageRegistry){const c=s.cb;try{let u=c();u instanceof Ut&&(u=await u),t.push(Xn(Xn({},u),{},{direction:this.direction}))}catch(u){J.error("gather extension usage error",u)}}return t}getDirection(){return this.direction}},X4=class extends Cn{constructor(t){super(),We(this,"name","AudioProcessorDestination"),We(this,"ID","0"),We(this,"inputTrack",void 0),We(this,"inputNode",void 0),We(this,"audioProcessorContext",void 0),We(this,"_source",void 0),this.audioProcessorContext=t}get kind(){return"audio"}get enabled(){return!0}pipe(){throw new tt(Ce.NOT_SUPPORTED,"AudioProcessorDestination cannot pipe to any other Processor")}unpipe(){throw new tt(Ce.NOT_SUPPORTED,"AudioProcessor cannot unpipe to any other Processor")}enable(){}disable(){}reset(){this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext.chained=!1,this.emit(lA.ON_TRACK,void 0),this.emit(lA.ON_NODE,void 0)}updateInput(t){if(t.context!==this.audioProcessorContext)throw new Error(`ProcessorContext passed to AudioTrack.processorDestination doesn't match it's belonging AudioTrack's context. + Probably you are making pipeline like this: audioTrack1.pipe(processor).pipe(audioTrack2.processorDestination).`);t.track&&this.inputTrack!==t.track&&(this.audioProcessorContext.chained=!0,this.inputTrack=t.track,this.emit(lA.ON_TRACK,this.inputTrack)),t.node&&this.inputNode!==t.node&&(this.audioProcessorContext.chained=!0,this.inputNode=t.node,this.emit(lA.ON_NODE,this.inputNode))}},z4=class extends Cn{set chained(t){this._chained=t}get chained(){return this._chained}constructor(t,s,c){super(),We(this,"constraintsMap",new Map),We(this,"statsRegistry",[]),We(this,"audioContext",void 0),We(this,"trackId",void 0),We(this,"direction",void 0),We(this,"usageRegistry",[]),We(this,"_chained",!1),this.audioContext=t,this.trackId=s,this.direction=c}async getConstraints(){return $o(this,Z1.REQUEST_CONSTRAINTS)}getAudioContext(){return this.audioContext}async requestApplyConstraints(t,s){var c;return J.info("processor ".concat(s.name," requestApplyConstraints for ").concat(this.trackId)),t&&this.constraintsMap.set(s,t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(c=this.constraintsMap).call(c)))}async requestRevertConstraints(t){var s;if(this.constraintsMap.has(t))return this.constraintsMap.delete(t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(s=this.constraintsMap).call(s)))}registerStats(t,s,c){this.statsRegistry.find(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s)||this.statsRegistry.push({processorName:t.name,processorID:t.ID,type:s,cb:c})}unregisterStats(t,s){const c=this.statsRegistry.findIndex(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s);c!==-1&&this.statsRegistry.splice(c,1)}gatherStats(){const t=[];for(const s of this.statsRegistry){const c=s.processorID,u=s.processorName,h=s.type,_=s.cb;try{const B=_();t.push({processorID:c,processorName:u,type:h,stats:B})}catch(B){J.error(new tt(Ce.UNEXPECTED_ERROR,B.message))}}return t}registerUsage(t,s){this.usageRegistry.find(c=>c.processorID===t.ID&&c.processorName===t.name)||this.usageRegistry.push({processorID:t.ID,processorName:t.name,cb:s})}unregisterUsage(t){const s=this.usageRegistry.findIndex(c=>c.processorID===t.ID&&c.processorName===t.name);s!==-1&&this.usageRegistry.splice(s,1)}async gatherUsage(){const t=[];if(!this.chained)return[];for(const s of this.usageRegistry){const c=s.cb;try{let u=c();u instanceof Ut&&(u=await u),t.push(Xn(Xn({},u),{},{direction:this.direction}))}catch(u){J.error("gather extension usage error",u)}}return t}getDirection(){return this.direction}},pa=class extends Cn{get isPlayed(){return!0}get isFreeze(){return!1}constructor(){super(),We(this,"context",void 0),We(this,"processSourceNode",void 0),We(this,"outputTrack",void 0),We(this,"processedNode",void 0),We(this,"clonedTrack",void 0),We(this,"outputNode",void 0),this.outputNode=new CU}setVolume(){}createOutputTrack(){throw new tt(Ce.NOT_SUPPORTED,"can not create output MediaStreamTrack when WebAudio disabled")}getOriginVolumeLevel(){return 0}getAccurateVolumeLevel(){return 0}stopGetAudioBuffer(){}startGetAudioBuffer(){}play(){}stop(){}destroy(){}updateTrack(){}updateOriginTrack(){}createMediaStreamSourceNode(){}},CU=class{disconnect(){}connect(){}};function D2(t){return new Ut((s,c)=>{let u=!1;const h=document.createElement("video");h.setAttribute("autoplay",""),h.setAttribute("muted",""),h.muted=!0,h.autoplay=!0,h.setAttribute("playsinline",""),h.setAttribute("style","position: fixed; top: 0; left: 0; width: 1px; height: 1px"),document.body.appendChild(h);const _=Ia()?"canplay":"playing";h.addEventListener(_,()=>{const B=h.videoWidth,Q=h.videoHeight;!B&&Ln()||(u=!0,h.srcObject=null,h.remove(),s([B,Q]))}),h.srcObject=new MediaStream([t]),h.play().catch(X),setTimeout(()=>{u||(h.srcObject=null,h.remove(),s([h.videoWidth,h.videoHeight]))},4e3)})}function Og(t){const s={};t.facingMode&&(s.facingMode=t.facingMode),t.cameraId&&(s.deviceId={exact:t.cameraId});const c=El(t.encoderConfig);return c.width!=null&&(s.width=c.width),c.height!=null&&(s.height=c.height),!bf()&&c.frameRate&&(s.frameRate=c.frameRate),yn()&&typeof s.frameRate=="object"&&(s.frameRate.max=60),Ln()&&(s.frameRate={ideal:30,max:30}),s}function f1(t){const s={};return bf()||(t.AGC!==void 0&&(s.autoGainControl=t.AGC),t.AEC!==void 0&&(s.echoCancellation=t.AEC),t.ANS!==void 0&&(s.noiseSuppression=t.ANS,DA()&&t.ANS&&(s.googHighpassFilter=t.ANS))),s}function $4(t){const s=f1(t);if(t.encoderConfig){const c=Kf(t.encoderConfig);s.channelCount=c.stereo?2:1,s.sampleRate=c.sampleRate,s.sampleSize=c.sampleSize}return t.microphoneId&&(s.deviceId={exact:t.microphoneId}),c2()&&(s.sampleRate=void 0),s}const pU=t=>{const s=t._encoderConfig;if(!s)return;const c=t.getMediaStreamTrackSettings(),u=c.frameRate,h=c.width,_=c.height;let B=s.frameRate,Q=B===void 0?u:B,T=s.width,D=T===void 0?h:T,O=s.height,P=O===void 0?_:O;if(!Q||!D||!P)return;D=kC(D),P=kC(P),Q=kC(Q);const U=function(Oe,we,Ne){const et=200*Math.pow(Ne/15,.6)*Math.pow(Oe*we/640/360,.75);return{min:Math.floor(et),max:Math.floor(4*et)}}(D,P,Q),H=U.max,$=U.min,Z=s||{},te=Z.bitrateMax,se=Z.bitrateMin,ge=Z.minDownscaleWidth,me=Z.minDownscaleHeight;te||J.debug("calculate bitrate: [w: ".concat(D,", h: ").concat(P,", fps: ").concat(Q,"] => [brMax: ").concat(te,", brMin: ").concat(se,"]"));const Qe=de("ENCODER_CONFIG_LIMIT").maxFramerate;return Qe&&typeof Qe=="number"&&(Q=Math.min(Q,Qe)),{width:D,height:P,frameRate:Q,bitrateMax:te||H,bitrateMin:se||$,scaleResolutionDownBy:1,scale:0,minDownscaleWidth:ge,minDownscaleHeight:me}},fU=async(t,s,c)=>await(async(u,h,_)=>{const B=function(D){const O=[];for(let P=0;P{const s=document.createElement("canvas");return s.width=2,s.height=2,new Ut((c,u)=>{s.toBlob(async h=>{if(s.remove(),h){const _=await Z4(h);c({buffer:_,width:s.width,height:s.height})}else u(new tt(Ce.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},t,1)})},Z4=async t=>{const s=await t.arrayBuffer();return new Uint8Array(s)};var Ey,hy,Iy,eN,Lg,Cy,jf,Jf,hh,py,qf,fy,tN,_U,rN,mU,_y,BU,Ao,Xl,Wf,iN,Ih,zl,Xf,bu,zf,nN,$f,SU,my,By,oN,sN,aN,Zf,VC,RU,AN,ys;let po=(Ey=yr({argsMap:(t,s)=>[t.getTrackId(),s],throttleTime:300}),hy=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Iy=Fo(),eN=Dg("LocalAudioTrack","_enabledMutex"),Lg=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Cy=Fo(),jf=Dg("LocalAudioTrack","_enabledMutex"),Jf=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),hh=Fo(),py=Fo(),qf=Fo(),fy=yr({argsMap:t=>[t.getTrackId()]}),tN=Fo(),_U=yr({argsMap:t=>[t.getTrackId()]}),rN=Fo(),mU=yr({argsMap:t=>[t.getTrackId()]}),_y=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),BU=yr({argsMap:t=>[t.getTrackId()]}),Mi((Ao=class extends T2{get _source(){return this.initWebAudio()}set _source(t){this._trackSource=t}get processorContext(){return this._processorContext||(this._processorContext=this.initProcessor().processorContext),this._processorContext}get processorDestination(){return this._processorDestination||(this._processorDestination=this.initProcessor().processorDestination),this._processorDestination}get isPlaying(){return this._useAudioElement?rA.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"LocalAudioTrack"}constructor(t,s,c,u){super(t,c),We(this,"trackMediaType",y2.AUDIO),We(this,"_encoderConfig",void 0),We(this,"_trackSource",void 0),We(this,"metadata",[]),We(this,"_enabled",!0),We(this,"_volume",100),We(this,"_useAudioElement",!0),We(this,"_bypassWebAudio",!1),We(this,"processor",void 0),We(this,"_processorContext",void 0),We(this,"_processorDestination",void 0),We(this,"_getOriginVolumeLevel",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),this._encoderConfig=s,this._getOriginVolumeLevel=!!u,this._trackSource=new pa,de("DISABLE_WEBAUDIO")&&(this._bypassWebAudio=!0),de("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1),Zs()&&!ec?setTimeout(()=>this.initWebAudio()):this.initWebAudio()}setVolume(t){Vn(t,"volume",0,1e3),this._volume=t,this._source.setVolume(t/100),this._useAudioElement&&rA.setVolume(this.getTrackId(),t);try{if(this._bypassWebAudio)return void J.debug("[".concat(this.getTrackId(),"] setVolume returned because no pass through WebAudio."));const s=this._source.createOutputTrack();this._mediaStreamTrack!==s&&(this._mediaStreamTrack=s,sn(this,xt.NEED_REPLACE_TRACK,this).then(()=>{J.debug("[".concat(this.getTrackId(),"] replace web audio track success"))}).catch(c=>{J.warning("[".concat(this.getTrackId(),"] replace web audio track failed"),c)}))}catch{}}getVolumeLevel(){return this._muted&&this.enabled&&this._getOriginVolumeLevel?this._source.getOriginVolumeLevel():this._source.getAccurateVolumeLevel()}async setPlaybackDevice(t){if(!this._useAudioElement||!w4())throw new tt(Ce.NOT_SUPPORTED,"your browser does not support setting the audio output device");await rA.setSinkID(this.getTrackId(),t)}async setEnabled(t,s,c){return this._setEnabled(t,s,c)}async _setEnabled(t,s,c){if(!c){if(t===this._enabled)return;this.stateCheck("enabled",t)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),t),t){this._originMediaStreamTrack.enabled=!0;try{c||(this._enabled=!0),await sn(this,xt.NEED_ENABLE_TRACK,this),J.info("[".concat(this.getTrackId(),"] setEnabled to ").concat(t," success"))}catch(u){throw c||(this._enabled=!1),J.error("[".concat(this.getTrackId(),"] setEnabled to true error"),u.toString()),u}}else{this._originMediaStreamTrack.enabled=!1,c||(this._enabled=!1);try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(u){throw c||(this._enabled=!0),J.error("[".concat(this.getTrackId(),"] setEnabled to false error"),u.toString()),u}}}async setMuted(t){t!==this._muted&&(this.stateCheck("muted",t),this._muted=t,this._originMediaStreamTrack.enabled=!t,J.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(t)),t?await sn(this,xt.NEED_MUTE_TRACK,this):await sn(this,xt.NEED_UNMUTE_TRACK,this))}getStats(){return vg(()=>{J.warning("[deprecated] LocalAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalAudioStats instead")},"localAudioTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},oy)}setAudioFrameCallback(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!t)return this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(s),this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),this._source.on(zA.ON_AUDIO_BUFFER,c=>t(c))}play(){J.debug("[".concat(this.getTrackId(),"] start audio playback")),this._useAudioElement?(J.debug("[".concat(this.getTrackId(),"] start audio playback in element")),rA.play(this._mediaStreamTrack,this.getTrackId(),this._volume)):this._source.play()}stop(){J.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._useAudioElement?rA.stop(this.getTrackId()):this._source.stop()}close(){super.close(),this._processorDestination&&this.unbindProcessorDestinationEvents(this._processorDestination),this._processorContext&&this.unbindProcessorContextEvents(this._processorContext),this.unpipe(),this._processorDestination&&this._processorDestination._source&&this._processorDestination._source.unpipe(),this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1),this._source.destroy()}_updatePlayerSource(){let t=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];J.debug("[".concat(this.getTrackId(),"] update player source track")),t&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&rA.updateTrack(this.getTrackId(),this._mediaStreamTrack)}async _updateOriginMediaStreamTrack(t,s){this._originMediaStreamTrack!==t&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),s&&this._originMediaStreamTrack.stop()),t.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=t,this._muted&&(this._originMediaStreamTrack.enabled=!1),this.processor&&this._processorContext&&this.processor.updateInput({track:t,context:this._processorContext}),this._mediaStreamTrack!==this._source.outputTrack?(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this)):this._source.updateTrack(this._originMediaStreamTrack),this._getOriginVolumeLevel&&this._source.updateOriginTrack(t))}renewMediaStreamTrack(t){return Ut.resolve(void 0)}_ensureExtensionManager(t){return this._extensionManager||(this._extensionManager=t.createAudioExtensionManager(this),this._extensionManager.onOutputTrackChanged=s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,sn(this,xt.NEED_REPLACE_TRACK,this))}),this._extensionManager}useExtension(t,s){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureExtensionManager(t),this._useExtensionMode=!0,this._extensionManager.useExtension(t,s)}removeExtension(t){if(!this._extensionManager)return!1;const s=this._extensionManager.removeExtension(t);return s&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(t.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),s}addReferenceTrack(t){if(!this._extensionManager)throw new tt(Ce.INVALID_OPERATION,"Call useExtension() before addReferenceTrack().");this._extensionManager.addReferenceTrack(t),J.info("[".concat(this.getTrackId(),"] addReferenceTrack"))}removeReferenceTrack(t){return!!this._extensionManager&&this._extensionManager.removeReferenceTrack(t)}pipe(t){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active. Call removeExtension() for all extensions first.");if(this._bypassWebAudio)throw new tt(Ce.INVALID_OPERATION,"Can not process AudioTrack when bypassWebAudio set to true.");if(this.processor===t)return t;if(t._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(t.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=t,this.processor._source=this,t.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),t}unpipe(){var t;if(!this.processor)return;const s=this.processor;(t=this._source.processSourceNode)===null||t===void 0||t.disconnect(),this.processor._source=!1,this.processor=void 0,this._usePipeMode=!1,s.reset()}bindProcessorDestinationEvents(t){t.on(lA.ON_TRACK,async s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(s),await sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this))}),t.on(lA.ON_NODE,s=>{this._source.processedNode=s})}unbindProcessorDestinationEvents(t){t.removeAllListeners(lA.ON_TRACK),t.removeAllListeners(lA.ON_NODE)}bindProcessorContextEvents(t){t.on(Z1.REQUEST_CONSTRAINTS,async s=>{s(this._originMediaStreamTrack.getSettings())})}unbindProcessorContextEvents(t){t.removeAllListeners(Z1.REQUEST_CONSTRAINTS)}initWebAudio(){return this._trackSource instanceof pa&&(this._trackSource=new ly(this._mediaStreamTrack,!1,this._getOriginVolumeLevel?this._mediaStreamTrack:void 0)),this._trackSource}initProcessor(){const t=new z4(this._source.context,this.getTrackId(),"local"),s=new X4(t);return this._processorContext=t,this._processorDestination=s,this.bindProcessorContextEvents(t),this.bindProcessorDestinationEvents(s),this._source.on(zA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:t})}),this._useAudioElement&&(this._useAudioElement=!1,this.isPlaying&&(rA.stop(this.getTrackId()),this._source.play()),sn(this,xt.NEED_REPLACE_MIXING_TRACK,this).then(()=>{J.debug("[".concat(this.getTrackId(),"] replace from origin track to web audio track success"))}).catch(c=>{J.warning("[".concat(this.getTrackId(),"] replace from origin track to web audio track failed"),c)})),{processorContext:t,processorDestination:s}}}).prototype,"setVolume",[Ey],Object.getOwnPropertyDescriptor(Ao.prototype,"setVolume"),Ao.prototype),Mi(Ao.prototype,"setPlaybackDevice",[hy,Iy],Object.getOwnPropertyDescriptor(Ao.prototype,"setPlaybackDevice"),Ao.prototype),Mi(Ao.prototype,"setEnabled",[eN,Lg,Cy],Object.getOwnPropertyDescriptor(Ao.prototype,"setEnabled"),Ao.prototype),Mi(Ao.prototype,"setMuted",[jf,Jf,hh],Object.getOwnPropertyDescriptor(Ao.prototype,"setMuted"),Ao.prototype),Mi(Ao.prototype,"getStats",[py],Object.getOwnPropertyDescriptor(Ao.prototype,"getStats"),Ao.prototype),Mi(Ao.prototype,"setAudioFrameCallback",[qf],Object.getOwnPropertyDescriptor(Ao.prototype,"setAudioFrameCallback"),Ao.prototype),Mi(Ao.prototype,"play",[fy,tN],Object.getOwnPropertyDescriptor(Ao.prototype,"play"),Ao.prototype),Mi(Ao.prototype,"stop",[_U,rN],Object.getOwnPropertyDescriptor(Ao.prototype,"stop"),Ao.prototype),Mi(Ao.prototype,"close",[mU],Object.getOwnPropertyDescriptor(Ao.prototype,"close"),Ao.prototype),Mi(Ao.prototype,"pipe",[_y],Object.getOwnPropertyDescriptor(Ao.prototype,"pipe"),Ao.prototype),Mi(Ao.prototype,"unpipe",[BU],Object.getOwnPropertyDescriptor(Ao.prototype,"unpipe"),Ao.prototype),Ao),xd=(Xl=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Wf=Fo(),iN=Dg("MicrophoneAudioTrack","_enabledMutex"),Ih=yr({argsMap:(t,s,c)=>[t.getTrackId(),s,c]}),zl=Fo(),Xf=yr({argsMap:t=>[t.getTrackId()]}),Mi((bu=class extends po{get __className__(){return"MicrophoneAudioTrack"}constructor(t,s,c,u){super(t,s.encoderConfig?Kf(s.encoderConfig):{},u,de("GET_VOLUME_OF_MUTED_AUDIO_TRACK")),We(this,"_config",void 0),We(this,"_deviceName","default"),We(this,"_constraints",void 0),We(this,"_originalConstraints",void 0),We(this,"_enabled",!0),this._config=s,this._constraints=c,this._originalConstraints=c,this._deviceName=t.label,typeof s.bypassWebAudio=="boolean"&&(this._bypassWebAudio=s.bypassWebAudio),(Is()||rh())&&bn.bindInterruptDetectorTrack(this)}async setDevice(t){if(J.info("[".concat(this.getTrackId(),"] start set device to ").concat(t)),this._enabled)try{const s=await rc.getDeviceById(t),c={};c.audio=Xn({},this._constraints),c.audio.deviceId={exact:t},this._originMediaStreamTrack.stop();let u=null;try{u=await Pi(c,this.getTrackId())}catch(h){throw J.error("[".concat(this.getTrackId(),"] setDevice failed"),h.toString()),u=await Pi({audio:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(u.getAudioTracks()[0],!1),h}await this._updateOriginMediaStreamTrack(u.getAudioTracks()[0],!1),this._deviceName=s.label,this._config.microphoneId=t,this._constraints.deviceId={exact:t}}catch(s){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),s.toString()),s}else try{const s=await rc.getDeviceById(t);this._deviceName=s.label,this._config.microphoneId=t,this._constraints.deviceId={exact:t}}catch(s){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),s.toString()),s}J.info("[".concat(this.getTrackId(),"] set device to ").concat(t," success"))}async setEnabled(t,s,c){if(s)return J.debug("[".concat(this.getTrackId(),"] setEnabled false (do not close microphone)")),await super._setEnabled(t);if(!c){if(t===this._enabled)return;this.stateCheck("enabled",t)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),t),de("AUTO_RESET_AUDIO_ROUTE")&&(Ia()||Y1())){const B=navigator.audioSession;B&&(t||(B.type="playback"),B.type="auto")}if(!t){var u;this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop(),(u=this._source.clonedTrack)===null||u===void 0||u.stop(),c||(this._enabled=!1);try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(B){throw J.error("[".concat(this.getTrackId(),"] setEnabled false failed"),B.toString()),B}return}const h=Xn({},this._constraints),_=rc.searchDeviceIdByName(this._deviceName);_&&!h.deviceId&&(h.deviceId=_);try{c||(this._enabled=!0);const B=await Pi({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(B.getAudioTracks()[0],!1),await sn(this,xt.NEED_ENABLE_TRACK,this)}catch(B){throw c||(this._enabled=!1),J.error("[".concat(this.getTrackId(),"] setEnabled true failed"),B.toString()),B}J.info("[".concat(this.getTrackId(),"] setEnabled success"))}close(){super.close(),(Is()||rh())&&bn.unbindInterruptDetectorTrack(this),lh.some(t=>function(s){return"__className__"in s&&s.__className__==="MicrophoneAudioTrack"}(t))||Ay&&Ay()&&(qt.reportApiInvoke(null,{name:"BG_AUDIO_TAG_RESTART",options:{},tag:vn.TRACER}).onSuccess(),J.debug("restart background audio tag success"))}onTrackEnded(){if((Ia()||Y1())&&this._enabled&&!this._isClosed&&bn.duringInterruption){const t=async()=>{bn.off(Yo.IOS_INTERRUPTION_END,t),this._enabled&&!this._isClosed&&(J.debug("[".concat(this.getTrackId(),"] try capture microphone media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};bn.on(Yo.IOS_INTERRUPTION_END,t)}else J.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(R2.TRACK_ENDED)}async renewMediaStreamTrack(t){const s=t||this._constraints,c=rc.searchDeviceIdByName(this._deviceName);if(c&&!s.deviceId&&(s.deviceId=c),this._constraints=s,this._enabled){this._originMediaStreamTrack.stop();const u=await Pi({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(u.getAudioTracks()[0],!0)}}bindProcessorContextEvents(t){super.bindProcessorContextEvents(t),t.on(Z1.REQUEST_UPDATE_CONSTRAINTS,async(s,c,u)=>{try{const h=Object.assign({},this._originalConstraints,...s);await this.renewMediaStreamTrack(h),c()}catch(h){u(h)}})}unbindProcessorContextEvents(t){super.unbindProcessorContextEvents(t),t.removeAllListeners(Z1.REQUEST_UPDATE_CONSTRAINTS)}}).prototype,"setDevice",[Xl,Wf],Object.getOwnPropertyDescriptor(bu.prototype,"setDevice"),bu.prototype),Mi(bu.prototype,"setEnabled",[iN,Ih,zl],Object.getOwnPropertyDescriptor(bu.prototype,"setEnabled"),bu.prototype),Mi(bu.prototype,"close",[Xf],Object.getOwnPropertyDescriptor(bu.prototype,"close"),bu.prototype),bu),cN=(zf=yr({argsMap:(t,s)=>[t.getTrackId(),s,t.duration]}),nN=Fo(),$f=yr({argsMap:t=>[t.getTrackId()]}),SU=Fo(),my=yr({argsMap:t=>[t.getTrackId()]}),By=Fo(),oN=yr({argsMap:t=>[t.getTrackId()]}),sN=Fo(),aN=yr({argsMap:t=>[t.getTrackId()]}),Zf=Fo(),VC=yr({argsMap:t=>[t.getTrackId()]}),RU=yr({argsMap:t=>[t.getTrackId()]}),AN=Fo(),Mi((ys=class extends po{get __className__(){return"BufferSourceAudioTrack"}constructor(t,s,c,u){super(s.createOutputTrack(),c,u),We(this,"source",void 0),We(this,"_bufferSource",void 0),this._useAudioElement=!1,this.source=t,this._bufferSource=s,this._bufferSource.on(zA.AUDIO_SOURCE_STATE_CHANGE,h=>{this.safeEmit(R2.SOURCE_STATE_CHANGE,h)});try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}}get currentState(){return this._bufferSource.currentState}get duration(){return this._bufferSource.duration}get playbackSpeed(){return this._bufferSource.playbackSpeed}getCurrentTime(){return this._bufferSource.currentTime}startProcessAudioBuffer(t){t&&this._bufferSource.updateOptions(t),this._bufferSource.startProcessAudioBuffer()}pauseProcessAudioBuffer(){this._bufferSource.pauseProcessAudioBuffer()}seekAudioBuffer(t){this._bufferSource.seekAudioBuffer(t)}resumeProcessAudioBuffer(){this._bufferSource.resumeProcessAudioBuffer()}stopProcessAudioBuffer(){this._bufferSource.stopProcessAudioBuffer()}close(){this.source=null,this._bufferSource.destroy(),super.close()}setAudioBufferPlaybackSpeed(t){Vn(t,"speed",0),this._bufferSource.setAudioBufferPlaybackSpeed(t)}}).prototype,"startProcessAudioBuffer",[zf,nN],Object.getOwnPropertyDescriptor(ys.prototype,"startProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"pauseProcessAudioBuffer",[$f,SU],Object.getOwnPropertyDescriptor(ys.prototype,"pauseProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"seekAudioBuffer",[my,By],Object.getOwnPropertyDescriptor(ys.prototype,"seekAudioBuffer"),ys.prototype),Mi(ys.prototype,"resumeProcessAudioBuffer",[oN,sN],Object.getOwnPropertyDescriptor(ys.prototype,"resumeProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"stopProcessAudioBuffer",[aN,Zf],Object.getOwnPropertyDescriptor(ys.prototype,"stopProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"close",[VC],Object.getOwnPropertyDescriptor(ys.prototype,"close"),ys.prototype),Mi(ys.prototype,"setAudioBufferPlaybackSpeed",[RU,AN],Object.getOwnPropertyDescriptor(ys.prototype,"setAudioBufferPlaybackSpeed"),ys.prototype),ys),ia=class pne extends po{get __className__(){return"MixingAudioTrack"}get isActive(){for(const s of this.trackList)if(s._enabled&&!s._isClosed&&!s.muted)return!0;return!1}constructor(){const s=w2().createMediaStreamDestination();super(s.stream.getAudioTracks()[0],void 0,un(8,"track-mix-")),We(this,"trackList",void 0),We(this,"destNode",void 0),this._useAudioElement=!1;try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}this.destNode=s,this.trackList=[]}hasAudioTrack(s){return this.trackList.indexOf(s)!==-1}addAudioTrack(s){this.trackList.indexOf(s)===-1?(J.debug("add ".concat(s.getTrackId()," to mixing track")),s._source.outputNode.connect(this.destNode),this.trackList.push(s),this.updateEncoderConfig()):J.debug("track ".concat(s.getTrackId()," is already added"))}removeAudioTrack(s){if(this.trackList.indexOf(s)!==-1){J.debug("remove ".concat(s.getTrackId()," from mixing track"));try{s._source.outputNode.disconnect(this.destNode)}catch{}UR(this.trackList,s),this.updateEncoderConfig()}}updateEncoderConfig(){const s={};this.trackList.forEach(c=>{c._encoderConfig&&((c._encoderConfig.bitrate||0)>(s.bitrate||0)&&(s.bitrate=c._encoderConfig.bitrate),(c._encoderConfig.sampleRate||0)>(s.sampleRate||0)&&(s.sampleRate=c._encoderConfig.sampleRate),(c._encoderConfig.sampleSize||0)>(s.sampleSize||0)&&(s.sampleSize=c._encoderConfig.sampleSize),c._encoderConfig.stereo&&(s.stereo=!0))}),this._encoderConfig=s}_updateRtpTransceiver(s){this._rtpTransceiver!==s&&(this._rtpTransceiver=s,this.trackList.forEach(c=>{c instanceof pne?c.emit(dh.TRANSCEIVER_UPDATED,s):c._updateRtpTransceiver(s)}))}},yU=class extends K4{set currentState(t){t!==this._currentState&&(this._currentState=t,this.safeEmit(zA.AUDIO_SOURCE_STATE_CHANGE,this._currentState))}get currentState(){return this._currentState}constructor(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),We(this,"audioBuffer",void 0),We(this,"sourceNode",void 0),We(this,"startPlayTime",0),We(this,"startPlayOffset",0),We(this,"pausePlayTime",0),We(this,"options",void 0),We(this,"currentLoopCount",0),We(this,"currentPlaybackSpeed",100),We(this,"_currentState","stopped"),this.audioBuffer=t,this.options=s,this.startPlayOffset=this.options.startPlayTime||0}createWebAudioDiagram(){return this.context.createGain()}get duration(){return this.audioBuffer?this.audioBuffer.duration:0}get playbackSpeed(){return this.currentPlaybackSpeed}get currentTime(){return this.audioBuffer?this.currentState==="stopped"?0:this.currentState==="paused"?this.pausePlayTime:((this.context.currentTime-this.startPlayTime)*(this.playbackSpeed/100)+this.startPlayOffset)%this.audioBuffer.duration:0}updateOptions(t){this.currentState==="stopped"?(this.options=t,this.startPlayOffset=this.options.startPlayTime||0):J.warning("can not set audio source options")}startProcessAudioBuffer(){this.sourceNode&&this.stopProcessAudioBuffer(),this.sourceNode=this.createSourceNode(),this.startSourceNode(),this.currentState="playing"}pauseProcessAudioBuffer(){this.sourceNode&&this.currentState==="playing"&&(this.pausePlayTime=this.currentTime,this.sourceNode.onended=null,this.sourceNode.stop(),this.sourceNode.buffer=null,this.sourceNode=this.createSourceNode(),this.currentState="paused")}seekAudioBuffer(t){this.sourceNode&&(this.sourceNode.onended=null,this.currentState==="playing"&&this.sourceNode.stop(),this.sourceNode=this.createSourceNode(),this.currentState==="playing"?(this.startPlayOffset=t,this.startSourceNode()):this.currentState==="paused"&&(this.pausePlayTime=t))}resumeProcessAudioBuffer(){this.currentState==="paused"&&this.sourceNode&&(this.startPlayOffset=this.pausePlayTime,this.pausePlayTime=0,this.startSourceNode(),this.currentState="playing")}stopProcessAudioBuffer(){if(this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop()}catch{}this.reset()}}destroy(){this.audioBuffer=null,super.destroy()}setAudioBufferPlaybackSpeed(t){this.sourceNode&&(this.currentState==="playing"&&(this.startPlayOffset=this.currentTime,this.startPlayTime=this.context.currentTime),this.sourceNode.playbackRate.value=t/100),this.currentPlaybackSpeed=t}startSourceNode(){this.sourceNode&&this.sourceNode.buffer&&(this.sourceNode.start(0,this.startPlayOffset),this.startPlayTime=this.context.currentTime,this.sourceNode.onended=this.handleSourceNodeEnded.bind(this))}createSourceNode(){const t=this.context.createBufferSource();return t.buffer=this.audioBuffer,t.loop=!!this.options.loop,t.connect(this.outputNode),t.playbackRate.value=this.currentPlaybackSpeed/100,t}handleSourceNodeEnded(){if(this.currentLoopCount+=1,this.options.cycle&&this.options.cycle>this.currentLoopCount)return this.startPlayOffset=0,this.sourceNode=void 0,void this.startProcessAudioBuffer();this.reset()}reset(){this.startPlayOffset=this.options.startPlayTime||0,this.currentState="stopped",this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=void 0),this.currentLoopCount=0}};const QU=new Map;function TU(t,s){if(t.length===0||s.length===0)return 1/0;const c=tr(t),u=tr(s);return Math.floor(u/c)}let Sy=class{get rendFrameRate(){const t=Math.max(1,TU(this._render_interframe_delays_sizes,this._render_interframe_delays));return Math.floor(1e3/t)}get videoElementStatus(){return this._isInPage?this._videoElementStatus:Ca.DESTROYED}set videoElementStatus(t){t!==this._videoElementStatus&&(J.debug("[".concat(this.trackId,"] video-element-status change ").concat(this._videoElementStatus," => ").concat(t)),this._videoElementStatus=t)}get videoState(){return this._videoState}set videoState(t){var s;t!==this._videoState&&(this._videoState=t,(s=this.onVideoStateChanged)===null||s===void 0||s.call(this,this.videoState))}constructor(t){We(this,"trackId",void 0),We(this,"config",void 0),We(this,"onFirstVideoFrameDecoded",void 0),We(this,"onFirstVideoFrameRender",void 0),We(this,"onVideoBufferReady",void 0),We(this,"onVideoStateChanged",void 0),We(this,"freezeTimeCounterList",[]),We(this,"renderFreezeAccTime",0),We(this,"renderFreezeAccTime2",0),We(this,"totalFreezeTime",0),We(this,"isKeepLastFrame",!1),We(this,"isDestroyed",!1),We(this,"timeUpdatedCount",0),We(this,"freezeTime",0),We(this,"playbackTime",0),We(this,"lastTimeUpdatedTime",0),We(this,"autoplayFailed",!1),We(this,"videoTrack",void 0),We(this,"videoElement",void 0),We(this,"cacheVideoElement",void 0),We(this,"cancelRVFId",void 0),We(this,"internal",!1),We(this,"_render_interframe_delays",[]),We(this,"_render_interframe_delays_sizes",[]),We(this,"_videoState",Ud.VideoStateStopped),We(this,"videoElementCheckInterval",void 0),We(this,"videoElementFreezeTimeout",void 0),We(this,"_videoElementStatus",Ca.NONE),We(this,"_isInPage",!0),We(this,"isGettingVideoDimensions",!1),We(this,"startGetVideoDimensions",()=>{const s=()=>{if(this.isGettingVideoDimensions=!0,this.videoElement.videoWidth*this.videoElement.videoHeight>4)return J.debug("[".concat(this.trackId,"] current video dimensions:"),this.videoElement.videoWidth,this.videoElement.videoHeight),void(this.isGettingVideoDimensions=!1);setTimeout(s,500)};!this.isGettingVideoDimensions&&s()}),We(this,"autoResumeAfterInterruption",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&bn.curState==="running"&&(J.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat($b())),os()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),We(this,"handleVideoEvents",s=>{switch(s.type){case"play":case"playing":s.type==="play"&&J.debug("[".concat(this.trackId,"] video element status: play")),this.startGetVideoDimensions(),this.videoElementStatus=Ca.PLAYING;break;case"loadeddata":if(this.videoState=Ud.VideoStateStarting,this.onFirstVideoFrameRender&&this.onFirstVideoFrameRender(),this.onFirstVideoFrameDecoded&&this.onFirstVideoFrameDecoded(),this.cacheVideoElement){try{this.cacheVideoElement.srcObject=null,this.cacheVideoElement.remove()}catch{}this.cacheVideoElement=void 0}break;case"canplay":this.videoElementStatus=Ca.CANPLAY;break;case"stalled":this.videoElementStatus=Ca.STALLED;break;case"suspend":this.videoElementStatus=Ca.SUSPEND;break;case"pause":this.videoElementStatus=Ca.PAUSED,Ia()||Y1()||Zs()&&this.autoplayFailed||!this.videoTrack||this.videoTrack.readyState!=="live"||(J.debug("[track-".concat(this.trackId,"] video element paused, auto resume")),this.videoElement.play());break;case"waiting":this.videoElementStatus=Ca.WAITING;break;case"abort":this.videoElementStatus=Ca.ABORT;break;case"ended":this.videoElementStatus=Ca.ENDED;break;case"emptied":this.videoElementStatus=Ca.EMPTIED;break;case"error":{const c=this.videoElement.error;c&&(this.videoElementStatus=Ca.ERROR,J.error("[".concat(this.trackId,"] media error: ").concat(c.message," (").concat(c.code,")")));break}case"timeupdate":{const c=performance.now();if(this.timeUpdatedCount+=1,this.onVideoBufferReady&&this.timeUpdatedCount>de("BUFFER_READY_FRAMES")&&this.onVideoBufferReady(),this.timeUpdatedCount<10)return void(this.lastTimeUpdatedTime=c);const u=c-this.lastTimeUpdatedTime,h=this.lastTimeUpdatedTime;if(this.lastTimeUpdatedTime=c,Pn.lastVisibleTimede("VIDEO_FREEZE_DURATION")&&(this.freezeTime+=u),this.playbackTime+=u;this.playbackTime>=6e3;){this.playbackTime-=6e3;const _=Math.min(6e3,this.freezeTime);this.freezeTimeCounterList.push(_),this.freezeTime=Math.max(0,this.freezeTime-6e3)}break}}}),We(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&(J.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat($b())),os()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),this.trackId=t.trackId,this.config=t,t.element instanceof HTMLVideoElement?this.videoElement=t.element:this.videoElement=document.createElement("video"),bn.on(Yo.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),bn.on(Yo.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16)}getVideoElement(){return this.videoElement}getContainerElement(){var t;return(t=this.videoElement.parentElement)!==null&&t!==void 0?t:void 0}updateConfig(t){this.config=t,this.trackId=t.trackId,t.element!==this.videoElement&&(this.destroy(),this.videoElement=t.element),this.videoTrack&&this.initVideoElement()}updateVideoTrack(t){this.videoTrack!==t&&(this.videoTrack=t,this.initVideoElement())}play(t){const s=this.videoElement.play();s&&s.catch&&s.catch(u=>{t&&Nc(t,"video",u.message,this.trackId),u.name==="NotAllowedError"?(J.warning("detected video element autoplay failed",u),this.autoplayFailed=!0,this.handleAutoPlayFailed()):J.warning("[".concat(this.trackId,"] play warning: "),u)});const c=Qi();if((c.name==="Safari"&&Number(c.version)===15||Is())&&s&&s.then){const u=()=>{this.config.mirror&&!this.config.noStyle&&(this.videoElement.style.transform="rotateY(180deg)")};s.then(u).catch(u)}}getCurrentFrame(){const t=document.createElement("canvas");t.width=this.videoElement.videoWidth,t.height=this.videoElement.videoHeight;const s=t.getContext("2d");if(!s)return J.error("create canvas context failed!"),new ImageData(2,2);s.drawImage(this.videoElement,0,0,t.width,t.height);const c=s.getImageData(0,0,t.width,t.height);return t.remove(),c}async getCurrentFrameToUint8Array(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const c=document.createElement("canvas");c.width=this.videoElement.videoWidth,c.height=this.videoElement.videoHeight;const u=c.getContext("2d");return u?(u.drawImage(this.videoElement,0,0,c.width,c.height),new Ut((h,_)=>{c.toBlob(async B=>{if(c.remove(),B){const Q=await Z4(B);h({buffer:Q,width:c.width,height:c.height})}else _(new tt(Ce.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},t,s<0?.1:s>1?1:s)})):await GC(t)}destroy(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.isDestroyed=!0,bn.off(Yo.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),bn.off(Yo.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),t?this.videoElement.pause():this.videoElement.srcObject=null,this.resetVideoElement(),this.freezeTimeCounterList=[],this.videoState=Ud.VideoStateStopped}initVideoElement(){if(this._videoElementStatus!==Ca.NONE&&this._videoElementStatus!==Ca.DESTROYED||(this.videoElementStatus=Ca.INIT),!this.videoElementCheckInterval&&(wU.forEach(h=>{this.videoElement.addEventListener(h,this.handleVideoEvents)}),this.videoElementCheckInterval=window.setInterval(()=>{this._isInPage=function(h){return h!==document.body&&document.body.contains(h)}(this.videoElement)},1e3),de("ENABLE_VIDEO_FRAME_CALLBACK"))){var t,s;let h;const _=()=>{document.visibilityState==="visible"&&(document.removeEventListener("visibilitychange",_),this.videoElementFreezeTimeout=window.setTimeout(B,de("VIDEO_FREEZE_DURATION")))},B=()=>{this.videoElementFreezeTimeout=void 0,this.videoState===Ud.VideoStateDecoding&&(document.visibilityState==="visible"?this.videoState=Ud.VideoStateFrozen:document.addEventListener("visibilitychange",_))},Q=(T,D)=>{if(this.videoElementStatus===Ca.PLAYING){if(h){const U=D.presentationTime-h.presentationTime,H=D.presentedFrames-h.presentedFrames;this._render_interframe_delays_sizes.push(H),this._render_interframe_delays.push(U);const $=tr(this._render_interframe_delays_sizes),Z=$-this._render_interframe_delays_sizes[0];if($>30&&Z>5&&(this._render_interframe_delays_sizes.shift(),this._render_interframe_delays.shift()),this.videoState===Ud.VideoStateStarting&&(this.videoState=Ud.VideoStateDecoding),this.videoState===Ud.VideoStateDecoding&&this.onVideoStateChanged&&(this.videoElementFreezeTimeout&&window.clearTimeout(this.videoElementFreezeTimeout),this.videoElementFreezeTimeout=window.setTimeout(B,de("VIDEO_FREEZE_DURATION"))),Ude("VIDEO_FREEZE_DURATION")&&Pn.lastVisibleTime>=Pn.lastHiddenTime&&h.timestamp>Pn.lastVisibleTime&&h.timestamp>Pn.lastHiddenTime){const te=Math.min(66,TU(this._render_interframe_delays_sizes,this._render_interframe_delays)),se=Math.max(0,U-(H-1)*te),ge=se>te?se:0;this.renderFreezeAccTime2+=ge,this.totalFreezeTime+=ge,this.renderFreezeAccTime+=U}}h=Xn(Xn({},D),{},{timestamp:T})}else this.isSkipCalcRenderFreezeTime()&&(h=Xn(Xn({},D),{},{timestamp:T}));var O,P;de("ENABLE_VIDEO_FRAME_CALLBACK")&&(this.cancelRVFId=(O=(P=this.videoElement).requestVideoFrameCallback)===null||O===void 0?void 0:O.call(P,Q))};this.cancelRVFId=(t=(s=this.videoElement).requestVideoFrameCallback)===null||t===void 0?void 0:t.call(s,Q)}this.videoElement.controls=!1,this.videoElement.setAttribute("playsinline",""),c2()&&!de("HIDE_NO_POSTER")&&(this.videoElement.poster="noposter");const c=Qi();this.config.noStyle||(c.name==="Safari"&&Number(c.version)===15||Is()||!this.config.mirror||(this.videoElement.style.transform="rotateY(180deg)"),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover"),this.videoElement.setAttribute("muted",""),this.videoElement.muted=!0,this.videoElement.srcObject&&this.videoElement.srcObject instanceof MediaStream?this.videoElement.srcObject.getVideoTracks()[0]!==this.videoTrack&&(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,Ln()&&this.videoElement.load()):(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,Ln()&&this.videoElement.load());const u=this.videoElement.play();u!==void 0&&u.catch(h=>{J.debug("[".concat(this.trackId,"] playback interrupted"),h.toString())})}resetVideoElement(){var t,s;wU.forEach(c=>{this.videoElement&&this.videoElement.removeEventListener(c,this.handleVideoEvents)}),this.videoElementCheckInterval&&(window.clearInterval(this.videoElementCheckInterval),this.videoElementCheckInterval=void 0),this.cancelRVFId&&this.videoElement&&((t=(s=this.videoElement).cancelVideoFrameCallback)===null||t===void 0||t.call(s,this.cancelRVFId),this.cancelRVFId=void 0),this.videoElementStatus=Ca.NONE}isSkipCalcRenderFreezeTime(){return this.videoElementStatus===Ca.DESTROYED||this.internal}handleAutoPlayFailed(){const t=s=>{s.preventDefault(),this.videoElement.play().then(()=>{J.debug("[".concat(this.trackId,"] Video element for trackId:").concat(this.trackId," autoplay resumed."))}).catch(c=>{J.error(c)}),this.autoplayFailed=!1,l2()?document.body.removeEventListener("click",t,!0):(document.body.removeEventListener("touchstart",t,!0),document.body.removeEventListener("mousedown",t,!0))};l2()?document.body.addEventListener("click",t,!0):(document.body.addEventListener("touchstart",t,!0),document.body.addEventListener("mousedown",t,!0)),J4()}};const wU=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","timeupdate","error"];let Ry=class extends Sy{constructor(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];super(t),We(this,"container",void 0),We(this,"slot",void 0),this.slot=t.element,this.internal=s,this.updateConfig(t)}updateConfig(t){this.config=t,this.trackId=t.trackId;const s=t.element;var c;!this.internal||this.slot?(s!==this.slot&&(this.destroy(),this.slot=s),this.createElements()):(this.slot=s,s&&this.container?(this.internal=!1,this.container.id="agora-video-player-".concat(this.trackId),this.videoElement.id="video_".concat(this.trackId),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover",(c=this.slot)===null||c===void 0||c.appendChild(this.container)):this.createElements())}updateVideoTrack(t){this.videoTrack!==t&&(this.videoTrack=t,this.createElements())}play(t){var s;(s=this.container)!==null&&s!==void 0&&s.contains(this.videoElement)&&super.play(t)}getCurrentFrame(){var t;return(t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)?super.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameToUint8Array(t){var s;let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return(s=this.container)!==null&&s!==void 0&&s.contains(this.videoElement)?await super.getCurrentFrameToUint8Array(t,c):await GC(t)}destroy(){if(super.destroy(),this.videoElement.remove(),this.videoElement=document.createElement("video"),this.container){try{var t;this.container.remove(),(t=this.slot)===null||t===void 0||t.removeChild(this.container)}catch{}this.container=void 0}}createElements(){var t;this.container||(this.container=document.createElement("div")),this.container.id="agora-video-player-".concat(this.trackId),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.overflow="hidden",this.videoTrack?(this.container.style.backgroundColor="black",de("KEEP_LAST_FRAME")&&this.isKeepLastFrame&&this.videoElement.paused&&this.resetVideoElement(),this.mountedVideoElement()):this.unmountedVideoElement(),(t=this.slot)===null||t===void 0||t.appendChild(this.container)}mountedVideoElement(){var t;!this.container||(t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)||this.container.appendChild(this.videoElement),super.initVideoElement(),this.videoElement.id="video_".concat(this.trackId),this.videoElement.className="agora_video_player",this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.left="0",this.videoElement.style.top="0"}unmountedVideoElement(){var t;if((t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)){super.resetVideoElement();try{this.container&&this.container.removeChild(this.videoElement)}catch{}this.videoElement=document.createElement("video")}}resetVideoElement(){var t;(t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)&&(super.resetVideoElement(),this.cacheVideoElement=this.videoElement,this.videoElement=document.createElement("video"))}getContainerElement(){return this.container}};var yy,vU,DU,bU,NU,lN,OU,LU,MU,kU,dN,PU,UU,uN,xU,FU,GU,VU,KU,HU,YU,Qy,jU,JU,qU,WU,Ty,XU,wi,Vt,e_,wy,Oc,dA,mr,vi,or,sr;let pn=(yy=yr({argsMap:(t,s,c)=>[t.getTrackId(),typeof s=="string"?s:s instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",c]}),vU=Fo(),DU=yr({argsMap:t=>[t.getTrackId()]}),bU=Dg("LocalVideoTrack","_enabledMutex"),NU=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),lN=Fo(),OU=Dg("LocalVideoTrack","_enabledMutex"),LU=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),MU=Fo(),kU=yr({argsMap:(t,s)=>[t.getTrackId(),s,t._saveEncodeBitrateRatio]}),dN=Fo(),PU=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),UU=Fo(),uN=Fo(),xU=yr({argsMap:(t,s,c)=>[t.getTrackId(),s,c]}),FU=Fo(),GU=Fo(),VU=Fo(),KU=yr({argsMap:t=>[t.getTrackId()]}),HU=Fo(),YU=Fo(),Qy=Fo(),jU=Fo(),JU=Fo(),qU=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),WU=yr({argsMap:t=>[t.getTrackId()]}),Ty=yr({argsMap:t=>[t.getTrackId()]}),XU=yr({argsMap:(t,s,c)=>[t.getTrackId(),s.label,c]}),wi=class fne extends T2{get videoHeight(){if(Zs()){const s=this._mediaStreamTrack.getSettings().height;return this._videoHeight=s,this._videoHeight}return this._videoHeight}get videoWidth(){if(Zs()){const s=this._mediaStreamTrack.getSettings().width;return this._videoWidth=s,this._videoWidth}return this._videoWidth}get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ca.PLAYING)}get processorDestination(){return this._processorDestination}get processorContext(){return this._processorContext}set processorContext(s){this._processorContext=s}get __className__(){return"LocalVideoTrack"}constructor(s,c,u,h,_,B){if(super(s,_),We(this,"trackMediaType",y2.VIDEO),We(this,"_player",void 0),We(this,"isUseScaleResolutionDownBy",!1),We(this,"_videoVisibleTimer",null),We(this,"_previousVideoVisibleStatus",void 0),We(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),We(this,"_encoderConfig",void 0),We(this,"_scalabilityMode",{numSpatialLayers:1,numTemporalLayers:1}),We(this,"_optimizationMode",void 0),We(this,"_saveEncodeBitrateRatio",1),We(this,"_videoHeight",void 0),We(this,"_videoWidth",void 0),We(this,"_forceBitrateLimit",void 0),We(this,"_enabled",!0),We(this,"_processorDestination",void 0),We(this,"_processorContext",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),Zs()){const Q=s.getSettings(),T=Q.width,D=Q.height;this._videoWidth=T,this._videoHeight=D}else this.updateMediaStreamTrackResolution();if(this._scalabilityMode=u,this._optimizationMode=h,this._hints=B||[],c&&this._hints.indexOf(gn.CUSTOM_TRACK)!==-1?this._encoderConfig=go(c):this._encoderConfig=c,this._hints.indexOf(gn.SCREEN_TRACK)===-1)this.updateBitrateFromProfile();else if(Tf(Fi.CHROME,115)&&Md().indexOf("Windows")!==-1){const Q=function(T,D){if("VideoFrame"in window&&"TransformStream"in window&&Si().supportWebRTCInsertableStream){const O=new MediaStreamTrackProcessor(T),P=new MediaStreamTrackGenerator({kind:"video"});let U,H,$=Date.now();const Z=()=>{te&&(clearInterval(te),te=void 0),U&&(U.close(),U=void 0),T.stop(),H=void 0,P.removeEventListener("ended",Z)};let te=window.setInterval(()=>{if(H&&U&&Date.now()-$>1e3)try{P.readyState==="live"?H.enqueue(U.clone()):Z()}catch{Z()}},1e3);const se=new TransformStream({transform:(ge,me)=>{P.readyState==="live"?(H=me,$=Date.now(),U===void 0?(U=ge,me.enqueue(ge.clone())):(me.enqueue(U),U=ge)):ge.close()}});return P.addEventListener("ended",Z),O.readable.pipeThrough(se).pipeTo(P.writable),P}}(s);Q&&(J.info("local screen video track begin to inject frame"),this._mediaStreamTrack=Q)}c&&this._hints.indexOf(gn.CUSTOM_TRACK)!==-1&&this.setEncoderConfiguration(c),this._processorContext=new W4(this.getTrackId(),"local"),this._processorDestination=new q4(this.processorContext),this.bindProcessorDestinationEvents()}play(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof s=="string"){const h=document.getElementById(s);h?s=h:(J.warning("[".concat(this.getTrackId(),'] can not find "#').concat(s,'" element, use document.body')),s=document.body)}J.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(s instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(c));const u=Xn(Xn(Xn({},this._getDefaultPlayerConfig()),c),{},{trackId:this.getTrackId(),element:s});this._player?this._player.updateConfig(u):(s instanceof HTMLVideoElement?this._player=new Sy(u):this._player=new Ry(u),this._player.updateVideoTrack(this._mediaStreamTrack)),this._player.play(),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{const h=this.getVideoElementVisibleStatus();this.safeEmit(R2.VIDEO_ELEMENT_VISIBLE_STATUS,h)}catch{}},de("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,J.debug("[".concat(this.getTrackId(),"] stop video playback")))}async setEnabled(s,c){if(!c){if(s===this._enabled)return;this.stateCheck("enabled",s)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),s),!s){this._originMediaStreamTrack.enabled=!1;try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled to false error"),u.toString()),u}return c||(this._enabled=!1),void J.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}this._originMediaStreamTrack.enabled=!0;try{await sn(this,xt.NEED_ENABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled to true error"),u.toString()),u}J.info("[".concat(this.getTrackId(),"] setEnabled to true success")),c||(this._enabled=!0)}async setMuted(s){s!==this._muted&&(this.stateCheck("muted",s),this._muted=s,this._originMediaStreamTrack.enabled=!s,J.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(s)),s?await sn(this,xt.NEED_MUTE_TRACK,this):await sn(this,xt.NEED_UNMUTE_TRACK,this))}async setSaveEncodeBitrateRatio(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this._saveEncodeBitrateRatio;if(this._saveEncodeBitrateRatio!==1&&this._encoderConfig&&this._encoderConfig.bitrateMax&&this._encoderConfig.bitrateMin){this._encoderConfig.bitrateMin=Math.floor(this._encoderConfig.bitrateMin*s),this._encoderConfig.bitrateMax=Math.floor(this._encoderConfig.bitrateMax*s),J.debug("[".concat(this.getTrackId(),"] set save encode bitrate ratio, ").concat(s)),this._saveEncodeBitrateRatio=1;try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(c){return c.throw(J)}}}async setEncoderConfiguration(s,c){if(!this._enabled)throw new tt(Ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");if(s=El(s),de("USE_STANDARD_BITRATE_DEFAULT")&&(delete s.bitrateMax,delete s.bitrateMin),this._forceBitrateLimit&&(s.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:s.bitrateMax,s.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:s.bitrateMin),s.width||s.height||s.frameRate){const u=Og({encoderConfig:s});(Zs()||Ia()||Y1())&&(u.deviceId=void 0),J.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(s),JSON.stringify(u));try{await this._originMediaStreamTrack.applyConstraints(u),this.updateMediaStreamTrackResolution()}catch(h){const _=new tt(Ce.UNEXPECTED_ERROR,h.toString());throw J.error("[".concat(this.getTrackId(),"] applyConstraints error"),_.toString()),_}}this._encoderConfig=s,this._hints.indexOf(gn.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(u){return u.throw(J)}}getStats(){return vg(()=>{J.warning("[deprecated] LocalVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalVideoStats instead")},"localVideoTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},sy)}async setBeautyEffect(s){J.error("LocalVideoTrack.setBeautyEffect was deprecated, please migrate to agora-extension-beauty-effect")}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameImage(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return this._player?this._player.getCurrentFrameToUint8Array(s,c):await GC(s)}async findClosestProfile(){const s=this.getMediaStreamTrackSettings(),c=s.width,u=s.height,h=s.frameRate,_=this._encoderConfig||{},B=_.width,Q=_.height,T=_.frameRate,D=kC(this._videoWidth||c||B||0),O=kC(this._videoHeight||u||Q||0),P=function(U,H,$){if(!Array.isArray(de("VIDEO_ENCODER_CONFIG_LIST"))||de("VIDEO_ENCODER_CONFIG_LIST").length===0)return!1;const Z=Math.min(U,H);return!(Z>=480)&&Xn(Xn({},de("VIDEO_ENCODER_CONFIG_LIST").find(te=>te.height>Z)),{},{frameRate:$})}(D,O,kC(h||T||15));if(P)return J.debug("[".concat(this.getTrackId(),"] find closest profile, ").concat(D,"x").concat(O," => ").concat(JSON.stringify(P))),this.setEncoderConfiguration(P)}async setBitrateLimit(s){J.debug("[".concat(this.getTrackId(),"] set bitrate limit, ").concat(JSON.stringify(s))),s&&(this._forceBitrateLimit=s,this._encoderConfig&&(this._encoderConfig.bitrateMax?this._encoderConfig.bitrateMax=this._encoderConfig.bitrateMax{let c=bc(s,2),u=c[0],h=c[1];this._videoHeight=h,this._videoWidth=u}).catch(X)}_updatePlayerSource(){this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}_getDefaultPlayerConfig(){return{fit:"contain"}}async setSenderConfiguration(s){if(!this._enabled)throw new tt(Ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");J.debug("[".concat(this.getTrackId(),"] setSenderConfiguration applyConstraints"),JSON.stringify(s)),s=El(s),this._forceBitrateLimit&&(s.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:s.bitrateMax,s.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:s.bitrateMin),this._encoderConfig=s,this._hints.indexOf(gn.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(c){return c.throw(J)}}updateBitrateFromProfile(){if(!this._encoderConfig)return;const s=this.getMediaStreamTrackSettings(),c=s.width,u=s.height,h=s.frameRate;if(!c||!u||!h)return;const _=this._encoderConfig,B=_.bitrateMax,Q=_.bitrateMin;if(Q==null||B==null){const T=function(P,U,H,$,Z){const te=de("BITRATE_ADAPTER_TYPE");if(te==="DEFAULT_BITRATE")return{min:$,max:Z};if(Z===void 0){const se=Math.floor(200*Math.pow(H/15,.6)*Math.pow(P*U/640/360,.75));Z=te==="STANDARD_BITRATE"?4*se:2*se,$=$??se}else $=$??Math.floor(Z/10);return{min:$,max:Z}}(c,u,h,Q,B),D=T.max,O=T.min;if(this._encoderConfig.bitrateMin=O,this._encoderConfig.bitrateMax=D,de("VIDEO_STANDARD_BITRATE_VERSION")&&Q==null&&B==null){const P=bc(function($,Z,te){const se=4*Math.floor(2e5*Math.pow(te/15,.6)*Math.pow($*Z/230400,.75)),ge=$*Z,me=new Map([[19200,.9],[230400,.85],[518400,.75],[921600,.7],[2073600,.6],[3686400,.5]]),Qe=new Map([[230400,.95],[518400,.9],[921600,.85],[2073600,.8]]);let Oe=BA(me).call(me).next().value,we=1;if(me.has(ge))Oe=me.get(ge);else{var Ne;const ui=x1(Ne=Array.from(me.entries())).call(Ne,(Ki,it)=>bc(Ki,1)[0]-bc(it,1)[0]),Nr=ui.find(Ki=>bc(Ki,1)[0]>ge);if(Nr){const Ki=ui.indexOf(Nr);if(Ki>0){const it=ui[Ki-1],mt=(ge-it[0])/(Nr[0]-it[0]);Oe=it[1]+mt*(Nr[1]-it[1])}else Oe=Nr[1]}else Oe=ui[ui.length-1][1]}if(Qe.has(ge))we=Qe.get(ge);else{var et;const ui=x1(et=Array.from(Qe.entries())).call(et,(Ki,it)=>bc(Ki,1)[0]-bc(it,1)[0]),Nr=ui.find(Ki=>bc(Ki,1)[0]>ge);if(Nr){const Ki=ui.indexOf(Nr);if(Ki>0){const it=ui[Ki-1],mt=(ge-it[0])/(Nr[0]-it[0]);we=it[1]+mt*(Nr[1]-it[1])}else we=Nr[1]}else we=ui[ui.length-1][1]}const st=de("VIDEO_NEW_BITRATE_RATIO");st&&st>0&&(Oe=st/100);const Xt=Math.floor(se*Oe),lr=Math.floor(65e4*Math.pow($*Z/230400,.5)*Math.pow(te/15,.69));let ft=Xt;const Ir=de("VIDEO_STANDARD_BITRATE_VERSION");return Ir&&Ir>0&&(Ir===1?ft=se:Ir===2?ft=Xt:Ir===3&&(ft=lr)),[Math.floor(ft/1e3),we]}(c,u,h),2),U=P[0],H=P[1];this._encoderConfig.bitrateMax=U,this._encoderConfig.bitrateMin=O?Math.min(O,U):U,this._saveEncodeBitrateRatio=H,J.debug("[".concat(this.getTrackId(),"] update new bitrate from profile, [w: ").concat(c,", h: ").concat(u,", fps: ").concat(h,"] => [brMax: ").concat(this._encoderConfig.bitrateMax,", brMin: ").concat(this._encoderConfig.bitrateMin,", save_bitrate_ratio: ").concat(this._saveEncodeBitrateRatio,"]"))}else J.debug("[".concat(this.getTrackId(),"] update bitrate from profile, [w: ").concat(c,", h: ").concat(u,", fps: ").concat(h,"] => [brMax: ").concat(D,", brMin: ").concat(O,"]")),this._saveEncodeBitrateRatio=1}}getVideoElementVisibleStatus(){try{var s,c;const u=this==null||(s=this._player)===null||s===void 0?void 0:s.getContainerElement(),h={track:this,element:this==null||(c=this._player)===null||c===void 0?void 0:c.getVideoElement(),slot:u==null?void 0:u.parentElement},_=h.element,B=h.slot;if(this.isPlaying&&_ instanceof HTMLVideoElement&&B instanceof HTMLElement){const Q=$P.checkOneElementVisible(_),T=Object.assign({},Q);if(T.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=T.visible;const D=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});T.visible?D.onSuccess("Video is visible"):D.onSuccess("Invisible because of ".concat(T.reason))}return T}return}catch(u){throw new tt(Ce.GET_VIDEO_ELEMENT_VISIBLE_ERROR,u.message)}}async renewMediaStreamTrack(s){}_ensureVideoExtensionManager(s){return this._extensionManager||(this._extensionManager=s.createVideoExtensionManager(this),this._extensionManager.onOutputTrackChanged=c=>{c?c!==this._mediaStreamTrack&&(this._mediaStreamTrack=c,this._updatePlayerSource(),sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),sn(this,xt.NEED_REPLACE_TRACK,this))},this._extensionManager.onEmpty=()=>{this._useExtensionMode=!1,this._extensionManager=void 0}),this._extensionManager}useExtension(s,c){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureVideoExtensionManager(s),this._useExtensionMode=!0,this._extensionManager.useExtension(s,c)}removeExtension(s){if(!this._extensionManager)return!1;const c=this._extensionManager.removeExtension(s);return c&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(s.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),c}pipe(s){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active. Call removeExtension() for all extensions first.");if(this.processor===s)return s;if(s._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(s.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=s,this.processor._source=this,s.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),s}unpipe(){if(!this.processor)return;const s=this.processor;this.processor._source=void 0,this.processor=void 0,this._usePipeMode=!1,s.reset()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe(),this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1)}clone(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],u=this._encoderConfig;s&&(u=Xn(Xn({},u),El(s))),u=Hs(u);const h=un(8,"track-video-cloned-"),_=new fne(c?this._mediaStreamTrack.clone():this._mediaStreamTrack,u,Hs(this._scalabilityMode),this._optimizationMode,h,Hs(this._hints));return s&&u&&_.setEncoderConfiguration(u),J.debug("clone video track from ".concat(this.getTrackId()," to ").concat(h,", clone ").concat(c)),_}async replaceTrack(s,c){if(!(s instanceof MediaStreamTrack))throw new tt(Ce.INVALID_PARAMS,"track should be an instance of MediaStreamTrack");if(s.kind!=="video")throw new tt(Ce.INVALID_PARAMS,"track should be a video MediaStreamTrack");await this._updateOriginMediaStreamTrack(s,c,!0),this.updateMediaStreamTrackResolution()}sendSeiData(s){if(vg(()=>{qt.reportApiInvoke(null,{name:Ti.LOCAL_VIDEO_SEND_SEI_DATA,options:[],tag:vn.TRACER}).onSuccess("")},this._mediaStreamTrack.id||this.getTrackId()),!de("ENABLE_VIDEO_SEI")||!de("ENABLE_ENCODED_TRANSFORM"))return void J.warning('To send/receive SEI, please call AgoraRTC.setParameter("ENABLE_VIDEO_SEI", true) before instantiate IAgoraRtcClient');if(s instanceof Uint8Array==0)return new tt(Ce.INVALID_PARAMS,"Invalid argument type, ILocalVideoTrack.sendSeiData() only accept Uint8Array argument.").throw();const c=this.getRTCRtpTransceiver();if(!c)return void J.warning("Video track is not published, SEI can not be send");const u=c.sender.getParameters();if(u.codecs.length===0)return;const h=u.codecs[0].mimeType.toLocaleLowerCase();h==="video/h264"||h==="video/h265"?this.safeEmit("sei-to-send",s):J.warning("SEI is not supported by ".concat(h))}bindProcessorDestinationEvents(){this.processorDestination.on(lA.ON_TRACK,async s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this))})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(lA.ON_TRACK)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(Z1.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(Z1.REQUEST_CONSTRAINTS)}},Mi(wi.prototype,"play",[yy,vU],Object.getOwnPropertyDescriptor(wi.prototype,"play"),wi.prototype),Mi(wi.prototype,"stop",[DU],Object.getOwnPropertyDescriptor(wi.prototype,"stop"),wi.prototype),Mi(wi.prototype,"setEnabled",[bU,NU,lN],Object.getOwnPropertyDescriptor(wi.prototype,"setEnabled"),wi.prototype),Mi(wi.prototype,"setMuted",[OU,LU,MU],Object.getOwnPropertyDescriptor(wi.prototype,"setMuted"),wi.prototype),Mi(wi.prototype,"setSaveEncodeBitrateRatio",[kU,dN],Object.getOwnPropertyDescriptor(wi.prototype,"setSaveEncodeBitrateRatio"),wi.prototype),Mi(wi.prototype,"setEncoderConfiguration",[PU,UU],Object.getOwnPropertyDescriptor(wi.prototype,"setEncoderConfiguration"),wi.prototype),Mi(wi.prototype,"getStats",[uN],Object.getOwnPropertyDescriptor(wi.prototype,"getStats"),wi.prototype),Mi(wi.prototype,"setBeautyEffect",[xU,FU],Object.getOwnPropertyDescriptor(wi.prototype,"setBeautyEffect"),wi.prototype),Mi(wi.prototype,"getCurrentFrameData",[GU],Object.getOwnPropertyDescriptor(wi.prototype,"getCurrentFrameData"),wi.prototype),Mi(wi.prototype,"getCurrentFrameImage",[VU],Object.getOwnPropertyDescriptor(wi.prototype,"getCurrentFrameImage"),wi.prototype),Mi(wi.prototype,"findClosestProfile",[KU,HU],Object.getOwnPropertyDescriptor(wi.prototype,"findClosestProfile"),wi.prototype),Mi(wi.prototype,"setBitrateLimit",[YU],Object.getOwnPropertyDescriptor(wi.prototype,"setBitrateLimit"),wi.prototype),Mi(wi.prototype,"setOptimizationMode",[Qy],Object.getOwnPropertyDescriptor(wi.prototype,"setOptimizationMode"),wi.prototype),Mi(wi.prototype,"setScalabiltyMode",[jU],Object.getOwnPropertyDescriptor(wi.prototype,"setScalabiltyMode"),wi.prototype),Mi(wi.prototype,"updateMediaStreamTrackResolution",[JU],Object.getOwnPropertyDescriptor(wi.prototype,"updateMediaStreamTrackResolution"),wi.prototype),Mi(wi.prototype,"pipe",[qU],Object.getOwnPropertyDescriptor(wi.prototype,"pipe"),wi.prototype),Mi(wi.prototype,"unpipe",[WU],Object.getOwnPropertyDescriptor(wi.prototype,"unpipe"),wi.prototype),Mi(wi.prototype,"close",[Ty],Object.getOwnPropertyDescriptor(wi.prototype,"close"),wi.prototype),Mi(wi.prototype,"replaceTrack",[XU],Object.getOwnPropertyDescriptor(wi.prototype,"replaceTrack"),wi.prototype),wi),Or=(Vt=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),e_=Fo(),wy=Dg("CameraVideoTrack","_enabledMutex"),Oc=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),dA=Fo(),mr=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),vi=Fo(),or=yr({argsMap:t=>[t.getTrackId()]}),sr=class _ne extends pn{get __className__(){return"CameraVideoTrack"}constructor(s,c,u,h,_,B){super(s,El(c.encoderConfig),h,_,B),We(this,"_config",void 0),We(this,"_originalConstraints",void 0),We(this,"_constraints",void 0),We(this,"_enabled",!0),We(this,"_deviceName","default"),We(this,"tryResumeVideoForIOS15_16WeChat",async()=>{(Is()||rh())&&!function(){const Q=Qi();if(Q.os!==ns.IOS||!Q.osVersion)return!1;const T=Q.osVersion.split(".");return Number(T[0])===15&&Number(T[1])>=2}()&&jl()&&this._enabled&&!this._isClosed&&(J.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS 15 device on WeChat.")),await this.renewMediaStreamTrack())}),this._config=c,this._originalConstraints=u,this._constraints=u,this._deviceName=s.label,this._encoderConfig=El(this._config.encoderConfig),bn.on(Yo.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),bn.on(Yo.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),this.bindProcessorContextEvents()}async setDevice(s){return typeof s=="string"?this._setDeviceById(s):s.deviceId?this._setDeviceById(s.deviceId):s.facingMode?this._setDeviceByFacingModel(s.facingMode):void 0}async _setDeviceById(s){if(J.info("[".concat(this.getTrackId(),"] set device to ").concat(s)),this._enabled)try{const c=await rc.getDeviceById(s),u={};u.video=Xn({},this._constraints),u.video.deviceId={exact:s},u.video.facingMode=void 0,this._originMediaStreamTrack.stop();let h=null;try{h=await Pi(u,this.getTrackId())}catch(_){throw J.error("[".concat(this.getTrackId(),"] setDevice failed"),_.toString()),h=await Pi({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(h.getVideoTracks()[0],!1),_}await this._updateOriginMediaStreamTrack(h.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution(),this._deviceName=c.label,this._config.cameraId=s,this._constraints.deviceId={exact:s}}catch(c){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),c.toString()),c}else try{const c=await rc.getDeviceById(s);this._deviceName=c.label,this._config.cameraId=s,this._constraints.deviceId={exact:s}}catch(c){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),c.toString()),c}J.info("[".concat(this.getTrackId(),"] setDevice success"))}async _setDeviceByFacingModel(s){J.info("[".concat(this.getTrackId(),"] set facingMode ").concat(s));const c={video:Xn(Xn({},this._constraints),{},{deviceId:void 0,facingMode:{exact:s}})};if(this._enabled){this._originMediaStreamTrack.stop();let u=null;try{u=await Pi(c,this.getTrackId())}catch(h){throw J.error("[".concat(this.getTrackId(),"] setDeviceByFacingModel failed"),h.toString()),u=await Pi({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(u.getVideoTracks()[0],!1),h}await this._updateOriginMediaStreamTrack(u.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution()}this._deviceName="",this._config.facingMode=s,this._config.cameraId=void 0,this._constraints=Xn({},c.video),J.info("[".concat(this.getTrackId(),"] setDeviceByFacingModel success"))}async setEnabled(s,c){if(!c){if(s===this._enabled)return;this.stateCheck("enabled",s)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),s),s){try{if(this.isExternalTrack)this._originMediaStreamTrack.enabled=!0;else{const u=await Pi({video:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(u.getVideoTracks()[0],!1)}await sn(this,xt.NEED_ENABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled true error"),u.toString()),u}this.updateMediaStreamTrackResolution(),J.info("[".concat(this.getTrackId(),"] setEnabled to true success")),c||(this._enabled=!0)}else{this.isExternalTrack?this._originMediaStreamTrack.enabled=!1:(this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop()),c||(this._enabled=!1);try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled to false error"),u.toString()),u}J.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}}async setEncoderConfiguration(s,c){if(!this._enabled)throw new tt(Ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");s=El(s),de("USE_STANDARD_BITRATE_DEFAULT")&&(delete s.bitrateMax,delete s.bitrateMin),this._forceBitrateLimit&&(s.bitrateMax=this._forceBitrateLimit.max_bitrate||s.bitrateMax,s.bitrateMin=this._forceBitrateLimit.min_bitrate||s.bitrateMin);const u=go(this._config);u.encoderConfig=s;const h=Og(u);(Zs()||Ia()||Y1())&&(h.deviceId=void 0),J.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(s),JSON.stringify(h));try{await this._originMediaStreamTrack.applyConstraints(h),this.updateMediaStreamTrackResolution()}catch(_){const B=new tt(Ce.UNEXPECTED_ERROR,_.toString());throw J.error("[".concat(this.getTrackId(),"] applyConstraints error"),B.toString()),B}this._config=u,this._constraints=h,this._originalConstraints=h,this._encoderConfig=s,this._hints.indexOf(gn.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(_){return _.throw(J)}}_getDefaultPlayerConfig(){return{mirror:!0,fit:"cover"}}onTrackEnded(){if((Ia()||Y1())&&this._enabled&&!this._isClosed&&bn.duringInterruption){const s=async()=>{bn.off(Yo.IOS_INTERRUPTION_END,s),this._enabled&&!this._isClosed&&(J.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};bn.on(Yo.IOS_INTERRUPTION_END,s)}else J.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(R2.TRACK_ENDED)}async renewMediaStreamTrack(s){const c=s||this._constraints,u=rc.searchDeviceIdByName(this._deviceName);if(u&&!c.deviceId&&(c.deviceId={exact:u}),this._enabled){const h=await Pi({video:c},this.getTrackId());this._constraints=c,await this._updateOriginMediaStreamTrack(h.getVideoTracks()[0],!0),this.updateMediaStreamTrackResolution()}}close(){super.close(),bn.off(Yo.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),bn.off(Yo.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat)}clone(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],u=this._encoderConfig;s&&(u=Xn(Xn({},u),El(s))),u=Hs(u);const h=un(8,"track-cam-cloned-"),_=new _ne(c?this._mediaStreamTrack.clone():this._mediaStreamTrack,Hs(Xn(Xn({},this._config),{},{encoderConfig:u})),Hs(this._constraints),Hs(this._scalabilityMode),this._optimizationMode,h);return s&&u&&_.setEncoderConfiguration(u),J.debug("clone track from ".concat(this.getTrackId()," to ").concat(h,", clone ").concat(c)),_}bindProcessorContextEvents(){this.processorContext.on(Z1.REQUEST_UPDATE_CONSTRAINTS,async(s,c,u)=>{try{const h=Object.assign({},this._originalConstraints,...s);await this.renewMediaStreamTrack(h),c()}catch(h){u(h)}}),this.processorContext.on(Z1.REQUEST_CONSTRAINTS,async s=>{s(this._originMediaStreamTrack.getSettings())})}},Mi(sr.prototype,"setDevice",[Vt,e_],Object.getOwnPropertyDescriptor(sr.prototype,"setDevice"),sr.prototype),Mi(sr.prototype,"setEnabled",[wy,Oc,dA],Object.getOwnPropertyDescriptor(sr.prototype,"setEnabled"),sr.prototype),Mi(sr.prototype,"setEncoderConfiguration",[mr,vi],Object.getOwnPropertyDescriptor(sr.prototype,"setEncoderConfiguration"),sr.prototype),Mi(sr.prototype,"close",[or],Object.getOwnPropertyDescriptor(sr.prototype,"close"),sr.prototype),sr);function uA(t){const s=un(8,"track-cus-"),c=qt.reportApiInvoke(null,{id:s,tag:vn.TRACER,name:Ti.CREATE_CUSTOM_AUDIO_TRACK,options:[t]}),u=new po(t.mediaStreamTrack,t.encoderConfig?Kf(t.encoderConfig):{},s,!1);return J.info("create custom audio track success with config",t,"trackId",u.getTrackId()),c.onSuccess(u.getTrackId()),u}function qr(t,s,c,u){c.optimizationMode&&(u&&u.width&&u.height?(c.encoderConfig=Xn(Xn({},u),{},{bitrateMin:u.bitrateMin,bitrateMax:u.bitrateMax}),c.optimizationMode!=="motion"&&c.optimizationMode!=="detail"||(s.contentHint=c.optimizationMode,s.contentHint===c.optimizationMode?J.debug("[".concat(t,"] set content hint to"),c.optimizationMode):J.debug("[".concat(t,"] set content hint failed")))):J.warning("[".concat(t,"] can not apply optimization mode bitrate config, no encoderConfig")))}var t_,r_,Nu,zU,ic,vy,$U,Mg,Dy,Qs,gN,NA,ls;let $A=class extends F4{getUserId(){return this._userId}constructor(t,s,c,u){super(t,"track-".concat(t.kind,"-").concat(s,"-").concat(u.clientId,"_").concat(un(5,""))),We(this,"_userId",void 0),We(this,"_uintId",void 0),We(this,"_isDestroyed",!1),We(this,"store",void 0),We(this,"processor",void 0),We(this,"processorContext",void 0),this._userId=s,this._uintId=c,this.store=u}_updateOriginMediaStreamTrack(t){this._originMediaStreamTrack=t,this._mediaStreamTrack=t,this._updatePlayerSource(),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext})}_destroy(){this._isDestroyed=!0,J.info("[".concat(this.getTrackId(),"] is destroyed")),this.stop(),super.close()}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}},Fd=(t_=yr({argsMap:(t,s,c)=>[t.getTrackId(),typeof s=="string"?s:s instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",c]}),r_=yr({argsMap:t=>[t.getTrackId()]}),Nu=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),zU=yr({argsMap:t=>[t.getTrackId()]}),Mi((ic=class extends $A{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ca.PLAYING)}get __className__(){return"RemoteVideoTrack"}constructor(t,s,c,u,h){super(t,s,c,u),We(this,"_videoVisibleTimer",null),We(this,"_previousVideoVisibleStatus",void 0),We(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),We(this,"trackMediaType",y2.VIDEO),We(this,"_videoWidth",void 0),We(this,"_videoHeight",void 0),We(this,"_player",void 0),We(this,"_prePlayer",void 0),We(this,"processorDestination",void 0),We(this,"processorContext",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),this._prePlayer=h,this.updateMediaStreamTrackResolution(),this.processorContext=new W4(this.getTrackId(),"remote"),this.processorDestination=new q4(this.processorContext),this.bindProcessorDestinationEvents()}getStats(){return vg(()=>{J.warning("[deprecated] RemoteVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteVideoStats instead")},"remoteVideoTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},P4)}play(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.safeEmit($1.PLAY_START),typeof t=="string"){const u=document.getElementById(t);u?t=u:(J.warning("[".concat(this.getTrackId(),'] can not find "#').concat(t,'" element, use document.body')),t=document.body)}J.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(t instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(s));const c=Xn(Xn({fit:"cover"},s),{},{trackId:this.getTrackId(),element:t});if(this._player)this._player.updateConfig(c);else{let u=!1,h=!1;const _=this._prePlayer&&!this._prePlayer.isDestroyed&&t===this._prePlayer.config.element;this._prePlayer&&!_&&(this._prePlayer.destroy(),h=!0),_?(this._player=this._prePlayer,u=this._player.videoState>0,this._player.updateConfig(c)):this._player=t instanceof HTMLVideoElement?new Sy(c):new Ry(c),this._prePlayer=void 0,this._player.updateVideoTrack(this._mediaStreamTrack),this._player.onFirstVideoFrameDecoded=()=>{this.store.subscribe(this.getUserId(),"video",void 0,void 0,Date.now()),this.safeEmit($1.FIRST_FRAME_DECODED),h&&this.safeEmit($1.FIRST_FRAME_RENDER)},this._player.onVideoStateChanged=B=>{this.safeEmit($1.VIDEO_STATE_CHANGED,B)},u&&(this._player.onFirstVideoFrameDecoded(),this._player.onVideoStateChanged(this._player.videoState))}this._player.play(this.store.sessionId||void 0),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{const u=this.getVideoElementVisibleStatus();this.safeEmit($1.VIDEO_ELEMENT_VISIBLE_STATUS,u)}catch{}},de("CHECK_VIDEO_VISIBLE_INTERVAL")),this.safeEmit($1.PLAY_END)}stop(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(t),this._player=void 0,J.debug("[".concat(this.getTrackId(),"] stop video playback")))}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}updateMediaStreamTrackResolution(){D2(this._originMediaStreamTrack).then(t=>{let s=bc(t,2),c=s[0],u=s[1];this._videoHeight=u,this._videoWidth=c}).catch(X)}_updatePlayerSource(){J.debug("[".concat(this.getTrackId(),"] update player source track")),this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}getVideoElementVisibleStatus(){try{var t,s;const c=this==null||(t=this._player)===null||t===void 0?void 0:t.getContainerElement(),u={track:this,element:this==null||(s=this._player)===null||s===void 0?void 0:s.getVideoElement(),slot:c==null?void 0:c.parentElement},h=u.element,_=u.slot;if(this.isPlaying&&h instanceof HTMLVideoElement&&_ instanceof HTMLElement){const B=$P.checkOneElementVisible(h),Q=Object.assign({},B);if(Q.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=Q.visible;const T=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});Q.visible?T.onSuccess("Video is visible"):T.onSuccess("Invisible because of ".concat(Q.reason))}return Q}return}catch(c){throw new tt(Ce.GET_VIDEO_ELEMENT_VISIBLE_ERROR,c.message)}}_ensureVideoExtensionManager(t){return this._extensionManager||(this._extensionManager=t.createVideoExtensionManager(this),this._extensionManager.onOutputTrackChanged=s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())},this._extensionManager.onEmpty=()=>{this._useExtensionMode=!1,this._extensionManager=void 0}),this._extensionManager}useExtension(t,s){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureVideoExtensionManager(t),this._useExtensionMode=!0,this._extensionManager.useExtension(t,s)}removeExtension(t){if(!this._extensionManager)return!1;const s=this._extensionManager.removeExtension(t);return s&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(t.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),s}pipe(t){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active. Call removeExtension() for all extensions first.");if(this.processor===t)return t;if(t._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(t.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=t,this.processor._source=this,t.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),t}unpipe(){if(!this.processor)return;const t=this.processor;this.processor._source=void 0,this.processor=void 0,this._usePipeMode=!1,t.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(lA.ON_TRACK,async t=>{t?t!==this._mediaStreamTrack&&(this._mediaStreamTrack=t,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(lA.ON_TRACK)}_destroy(){this._prePlayer&&(this._prePlayer.destroy(),this._prePlayer=void 0),this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1),super._destroy(),this.unbindProcessorDestinationEvents()}_onSei(t){this.emit(dh.SEI_RECEIVED,t)}}).prototype,"play",[t_],Object.getOwnPropertyDescriptor(ic.prototype,"play"),ic.prototype),Mi(ic.prototype,"stop",[r_],Object.getOwnPropertyDescriptor(ic.prototype,"stop"),ic.prototype),Mi(ic.prototype,"pipe",[Nu],Object.getOwnPropertyDescriptor(ic.prototype,"pipe"),ic.prototype),Mi(ic.prototype,"unpipe",[zU],Object.getOwnPropertyDescriptor(ic.prototype,"unpipe"),ic.prototype),ic),an=(vy=yr({argsMap:(t,s)=>[t.getTrackId(),s],throttleTime:300}),$U=yr({argsMap:(t,s)=>[t.getTrackId(),s],throttleTime:300}),Mg=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Dy=yr({argsMap:t=>[t.getTrackId()]}),Qs=yr({argsMap:t=>[t.getTrackId()]}),gN=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),NA=yr({argsMap:t=>[t.getTrackId()]}),Mi((ls=class extends $A{get isPlaying(){return this._useAudioElement?rA.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"RemoteAudioTrack"}constructor(t,s,c,u){super(t,s,c,u),We(this,"trackMediaType",y2.AUDIO),We(this,"_source",void 0),We(this,"_useAudioElement",!0),We(this,"_volume",100),We(this,"processorContext",void 0),We(this,"processorDestination",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),We(this,"_played",!1),We(this,"_bypassWebAudio",!1),de("DISABLE_WEBAUDIO")?(this._source=new pa,this._bypassWebAudio=!0,this._useAudioElement=!0):(this._source=new ly(t,!0),de("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1)),this._source.once(zA.RECEIVE_TRACK_BUFFER,()=>{this.safeEmit($1.FIRST_FRAME_DECODED)}),this.processorContext=new z4(this._source.context,this.getTrackId(),"remote"),this.processorDestination=new X4(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(zA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})})}setAudioFrameCallback(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!t)return this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(s),this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),this._source.on(zA.ON_AUDIO_BUFFER,c=>t(c))}setVolume(t){this._volume=t,this._useAudioElement?rA.setVolume(this.getTrackId(),t):this._source.setVolume(t/100)}setAmplifiedVolume(t){this._useAudioElement&&this._played&&(rA.stop(this.getTrackId()),this._source.play()),this._useAudioElement=!1,t=Math.min(t,de("MAX_WEBAUDIO_VOLUME")),this._volume=t,this._source.setVolume(t/100)}async setPlaybackDevice(t){if(!this._useAudioElement||!w4())throw new tt(Ce.NOT_SUPPORTED,"your browser does not support setting the audio output device");await rA.setSinkID(this.getTrackId(),t)}getVolumeLevel(){return this._source.getAccurateVolumeLevel()}getVolume(){return this._useAudioElement?rA.getVolume(this.getTrackId()):this._source instanceof ly?this._source.getAudioVolume():0}getStats(){return vg(()=>{J.warning("[deprecated] RemoteAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteAudioStats instead")},"remoteAudioTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},k4)}play(){J.debug("[".concat(this.getTrackId(),"] start audio playback")),this._played=!0,this._useAudioElement?(J.debug("[".concat(this.getTrackId(),"] use audio element to play")),rA.play(this._mediaStreamTrack,this.getTrackId(),this._volume,this.store.sessionId||void 0)):(J.debug("[".concat(this.getTrackId(),"] use audio context to play")),this._source.play())}stop(){J.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._played=!1,this._useAudioElement?rA.stop(this.getTrackId()):this._source.stop()}_destroy(){super._destroy(),this._played=!1,this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1),this.unbindProcessorDestinationEvents(),this._source.destroy()}_isFreeze(){return this._source.isFreeze}_updatePlayerSource(){let t=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];J.debug("[".concat(this.getTrackId(),"] update player source track")),t&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&rA.updateTrack(this.getTrackId(),this._mediaStreamTrack)}_ensureAudioExtensionManager(t){return this._extensionManager||(this._extensionManager=t.createAudioExtensionManager(this),this._extensionManager.onOutputTrackChanged=s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource(!1)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}),this._extensionManager}useExtension(t){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureAudioExtensionManager(t),this._useExtensionMode=!0,this._extensionManager.useExtension(t)}removeExtension(t){if(!this._extensionManager)return!1;const s=this._extensionManager.removeExtension(t);return s&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(t.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),s}addReferenceTrack(t){if(!this._extensionManager)throw new tt(Ce.INVALID_OPERATION,"Call useExtension() before addReferenceTrack().");this._extensionManager.addReferenceTrack(t),J.info("[".concat(this.getTrackId(),"] addReferenceTrack"))}removeReferenceTrack(t){return!!this._extensionManager&&this._extensionManager.removeReferenceTrack(t)}pipe(t){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active.");if(this._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"can not pipe extension when WebAudio disabled");if(this.processor===t)return t;if(t._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(t.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=t,this.processor._source=this,t.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),t}unpipe(){var t;if(this._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"can not unpipe extension when WebAudio disabled");if(!this.processor)return;const s=this.processor;(t=this._source.processSourceNode)===null||t===void 0||t.disconnect(),this.processor._source=!1,this.processor=void 0,this._usePipeMode=!1,s.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(lA.ON_TRACK,async t=>{t?t!==this._mediaStreamTrack&&(this._mediaStreamTrack=t,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(t)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}),this.processorDestination.on(lA.ON_NODE,t=>{this._source.processedNode=t;const s=!t;this._useAudioElement!==s&&(this._played?(this.stop(),this._useAudioElement=s,this.play()):this._useAudioElement=s)})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(lA.ON_TRACK),this.processorDestination.removeAllListeners(lA.ON_NODE)}}).prototype,"setVolume",[vy],Object.getOwnPropertyDescriptor(ls.prototype,"setVolume"),ls.prototype),Mi(ls.prototype,"setAmplifiedVolume",[$U],Object.getOwnPropertyDescriptor(ls.prototype,"setAmplifiedVolume"),ls.prototype),Mi(ls.prototype,"setPlaybackDevice",[Mg],Object.getOwnPropertyDescriptor(ls.prototype,"setPlaybackDevice"),ls.prototype),Mi(ls.prototype,"play",[Dy],Object.getOwnPropertyDescriptor(ls.prototype,"play"),ls.prototype),Mi(ls.prototype,"stop",[Qs],Object.getOwnPropertyDescriptor(ls.prototype,"stop"),ls.prototype),Mi(ls.prototype,"pipe",[gN],Object.getOwnPropertyDescriptor(ls.prototype,"pipe"),ls.prototype),Mi(ls.prototype,"unpipe",[NA],Object.getOwnPropertyDescriptor(ls.prototype,"unpipe"),ls.prototype),ls);const Pn=new class extends Cn{get visibility(){return document.visibilityState}get lastHiddenTime(){return this._lastHiddenTime}get lastVisibleTime(){return this._lastVisibleTime}constructor(){super(),We(this,"_lastHiddenTime",0),We(this,"_lastVisibleTime",0),We(this,"needUploadStats",[]),We(this,"isCollectingStats",!1),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this._lastHiddenTime=performance.now():this._lastVisibleTime=performance.now(),this.isCollectingStats&&this.needUploadStats.push(document.visibilityState==="visible"?1:0),J.debug("current web page is ".concat(document.visibilityState)),this.emit("VISIBILITY_CHANGE",document.visibilityState)})}startCollectStats(){this.isCollectingStats=!0,this.needUploadStats.push(this.visibility==="visible"?1:0)}stopCollectStats(){this.isCollectingStats=!1,this.needUploadStats.length=0}};let i_=class extends Cn{constructor(t,s){super(),We(this,"trackMediaType",y2.DATA),We(this,"_version",1),We(this,"_type",3),We(this,"_config",void 0),We(this,"_originDataChannel",void 0),We(this,"_dataStreamPacketHeader",new ArrayBuffer(4)),We(this,"_dataStreamPacketHandler",{serialize:c=>c,deserialize:c=>c}),We(this,"_datachannelEventMap",new Map),this._config=t,s&&(this._originDataChannel=s,this._bandDataChannelEvents(s)),this._initPacketHeader()}useDataStream(t){this._dataStreamPacketHandler=t}get id(){return this._config.id}get ordered(){return this._config.ordered}get maxRetransmits(){return de("DATASTREAM_MAX_RETRANSMITS")}get metadata(){return this._config.metadata}get readyState(){var t,s;return(t=(s=this._originDataChannel)===null||s===void 0?void 0:s.readyState)!==null&&t!==void 0?t:"connecting"}get _originDataChannelId(){var t,s;return(t=(s=this._originDataChannel)===null||s===void 0?void 0:s.id)!==null&&t!==void 0?t:null}getChannelId(){return this.id}getConfig(){return this._config}_close(){this._originDataChannel&&(this._unbindDataChannelEvents(this._originDataChannel),this._originDataChannel=void 0)}async _waitTillOpen(){return new Ut((t,s)=>{if(this._originDataChannel){this._originDataChannel.readyState==="open"&&t();const c=setTimeout(()=>{var u;s(new tt(Ce.DATACHANNEL_CONNECTION_TIMEOUT,"Cannot create datachannel, id: ".concat((u=this._originDataChannel)===null||u===void 0?void 0:u.id)))},1e4);this._originDataChannel.onopen=()=>{clearTimeout(c),this._originDataChannel&&this._bandDataChannelEvents(this._originDataChannel),t()},this._originDataChannel.onerror=()=>{throw clearTimeout(c),new tt(Ce.DATACHANNEL_CONNECTION_TIMEOUT)}}else s(new tt(Ce.DATACHANNEL_CONNECTION_TIMEOUT,"cannot find dataChannel"))})}_updateOriginDataChannel(t){this._originDataChannel=t,this._bandDataChannelEvents(t)}_initPacketHeader(){const t=new DataView(this._dataStreamPacketHeader);t.setUint16(0,this._version),t.setUint8(2,this._type),t.setUint8(3,this._config.id)}_bandDataChannelEvents(t){this._unbindDataChannelEvents(t),[Hf.OPEN,Hf.CLOSE,Hf.ERROR].forEach(s=>{const c=()=>{this.emit(s)};this._datachannelEventMap.set(s,c),t.addEventListener(s,c)})}_unbindDataChannelEvents(t){Array.from(this._datachannelEventMap.entries()).forEach(s=>{let c=bc(s,2),u=c[0],h=c[1];t.removeEventListener(u,h)}),this._datachannelEventMap.clear()}},na=class extends i_{constructor(t){super(t),We(this,"_messageListener",void 0),this._messageListener=s=>{if(s.data.byteLengthb3.revokeObjectURL(t),0),new Worker(b3.createObjectURL(t))}const ka=71,KC=1,Il=2,by=1,EN=2;var Gd=function(t){return t[t.AUDIO_LEVEL=1]="AUDIO_LEVEL",t[t.METADATA=2]="METADATA",t[t.AUDIO_64_BIT_PTS=3]="AUDIO_64_BIT_PTS",t}(Gd||{});function $t(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=t.getUint8(0);if(c!==ka)return;const u=t.getUint16(1),h=KC+Il+u,_=new Uint8Array(t.byteLength-h);_.set(new Uint8Array(t.buffer,h,t.byteLength-h));const B={m:c,tlvLen:u,tlv:[],frame:_};let Q=KC+Il;for(;Q>1:127&P})}else if(T===Gd.METADATA||T===Gd.AUDIO_64_BIT_PTS){const P=new Uint8Array(D);for(let U=0;UQ;O--,P++)D=D*O/P;return D}(s,t))+t*Math.log(.5)+(s-t)*Math.log(1-.5)-Math.log(c)+c*t,An.set(u,h)),hc&&T++;s[B]!==T&&(s[B]=T,_=!0)}return _}window.cache=An;let Zl=0,sa=class{constructor(t){We(this,"id",void 0),We(this,"immediates",[]),We(this,"lastNonSilence",-1),We(this,"immediateSpeechActivityScore",Ch),We(this,"lastLevelChangedTime",Date.now()),We(this,"levels",[]),We(this,"longs",[]),We(this,"longSpeechActivityScore",Ch),We(this,"mediums",[]),We(this,"mediumSpeechActivityScore",Ch),We(this,"minLevel",0),We(this,"nextMinLevel",0),We(this,"nextMinLevelWindowLength",0),We(this,"energyScore",0),this.id=t||"".concat(Zl++),this.immediates.length=50,this.mediums.length=10,this.longs.length=1,this.levels.length=this.immediates.length}computeImmediates(){const t=this.immediates,s=this.levels,c=this.minLevel+St;let u=!1;for(let h=0;hCh&&(this.lastNonSilence=t)}evaluateMediumSpeechActivityScore(){this.mediumSpeechActivityScore=hr(this.mediums[0],5,24)}evaluateSpeechActivityScores(t){this.computeImmediates()&&(this.evaluateImmediateSpeechActivityScore(),this.computeMediums()&&(this.evaluateMediumSpeechActivityScore(),this.computeLongs()&&this.evaluateLongSpeechActivityScore(t)))}getLastLevelChangedTime(){return this.lastLevelChangedTime}getLevels(){var t;return"[".concat(RI(t=[...this.levels]).call(t).join(),"]")}getSpeechActivityScore(t){switch(t){case 0:return this.immediateSpeechActivityScore;case 1:return this.mediumSpeechActivityScore;case 2:return this.longSpeechActivityScore;default:throw new Error("interval "+t)}}levelChanged(t,s){if(this.lastLevelChangedTime<=s){this.lastLevelChangedTime=s;let c=t;return t<0&&(c=0),t>$l&&(c=$l),this.levels.unshift(c),this.levels.length>this.immediates.length&&this.levels.pop(),this.updateMinLevel(c),c>=this.minLevel+St?c:c/2}return-1}levelTimedOut(){this.levelChanged(0,this.lastLevelChangedTime)}updateMinLevel(t){if(t!==0){if(this.minLevel===0||this.minLevel>t)return this.minLevel=t,this.nextMinLevel=0,void(this.nextMinLevelWindowLength=0);if(this.nextMinLevel===0)return this.nextMinLevel=t,void(this.nextMinLevelWindowLength=1);if(this.nextMinLevel>t&&(this.nextMinLevel=t),this.nextMinLevelWindowLength++,this.nextMinLevelWindowLength>=750){let s=Math.sqrt(this.minLevel*this.nextMinLevel);s<0?s=0:s>$l&&(s=$l),this.minLevel=s,this.nextMinLevel=0,this.nextMinLevelWindowLength=0}}}},Ou=class{constructor(t,s,c){We(this,"isDominant",void 0),We(this,"energyRanking",void 0),We(this,"energyScore",void 0),this.isDominant=t,this.energyRanking=s,this.energyScore=c}},Ms=class extends Cn{constructor(t){super(),We(this,"dominantId",null),We(this,"lastDecisionTime",0),We(this,"lastLevelChangedTime",0),We(this,"lastLevelIdleTime",0),We(this,"relativeSpeechActivities",[]),We(this,"speakers",new Map),We(this,"enableSilence",!1),We(this,"timeoutToSilenceInterval",0),We(this,"decisionMaker",null),We(this,"loudest",[]),We(this,"numLoudestToTrack",3),We(this,"energyExpireTimeMs",250),We(this,"energyAlphaPct",50),this.timeoutToSilenceInterval=t,this.enableSilence=t>0,this.relativeSpeechActivities.length=3}setLoudestConfig(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:3,s=arguments.length>1?arguments[1]:void 0,c=arguments.length>2?arguments[2]:void 0;this.numLoudestToTrack=t,s!=null&&(this.energyExpireTimeMs=s),c!=null&&(this.energyAlphaPct=c),this.loudest.length>t&&this.loudest.splice(t)}getDominantSpeaker(){return this.dominantId}isAmongLoudest(t){return this.loudest.some(s=>s.id===t)}levelChanged(t,s){const c=Date.now(),u=this.getOrCreateSpeaker(t);this.lastLevelChangedTime0&&this.lastDecisionTime-this.lastLevelChangedTime>=15e3?-1:this._runInDecisionMaker()}decisionMakerExited(t){this.decisionMaker===t&&(this.decisionMaker=null)}destroy(){this.decisionMaker=null,this.loudest.length=0,this.speakers.clear(),this.removeAllListeners()}addSpeakers(t){t.forEach(s=>{this.speakers.has(s.id)||this.speakers.set(s.id,s)})}removeSpeakers(t){t.forEach(s=>{this.speakers.delete(s.id)})}getOrCreateSpeaker(t){let s=this.speakers.get(t);return s||(s=new sa(t),this.speakers.set(t,s),this.maybeStartDecisionMaker()),s}updateLoudestList(t,s,c){const u=t.id===this.dominantId;if(s<0){let Q=0;for(;Q=this.numLoudestToTrack)this.loudest.splice(_,1);else if(Q.id!==t.id)++_;else if(this.loudest.splice(_,1),this.loudest.lengththis.numLoudestToTrack&&this.loudest.splice(this.numLoudestToTrack,1)),new Ou(u,B,t.energyScore)}maybeStartDecisionMaker(){!this.decisionMaker&&this.speakers.size>0&&(this.decisionMaker=new class{constructor(t){We(this,"algorithm",void 0),this.algorithm=t}execute(){let t=!this.algorithm;if(!t)try{const s=this.algorithm.runInDecisionMaker(this);s<=0?t=!0:setTimeout(this.execute.bind(this),s)}catch{t=!0}t&&this.algorithm&&this.algorithm.decisionMakerExited(this)}}(this),this.decisionMaker.execute())}makeDecision(t){let s=null,c=null;const u=this.speakers.size;let h=null;if(u===0)h=null;else if(u===1){var _;const B=BA(_=this.speakers).call(_).next().value;this.enableSilence&&B&&(h=B.id,B.evaluateSpeechActivityScores(t),t-B.lastNonSilence>this.timeoutToSilenceInterval&&(h=null))}else{let B=this.dominantId==null?null:this.speakers.get(this.dominantId);if(B==null){const D=this.speakers.entries().next();D.value&&(h=D.value[0],B=D.value[1])}else h=B.id;B!=null&&B.evaluateSpeechActivityScores(t);const Q=this.relativeSpeechActivities;let T=2;for(const D of this.speakers.entries()){const O=bc(D,2),P=O[0],U=O[1];if(U===B)continue;U.evaluateSpeechActivityScores(t);for(let te=0;te3&&$>2&&Z>0&&$>T&&(T=$,h=P)}this.enableSilence&&B!=null&&h===B.id&&t-B.lastNonSilence>this.timeoutToSilenceInterval&&(h=null)}h==null&&!this.enableSilence||h===this.dominantId||(s=this.dominantId,this.dominantId=h,c=this.dominantId),c==null&&!this.enableSilence||c===s||this.emit("ActiveSpeakerChanged",c)}_runInDecisionMaker(){const t=Date.now(),s=300-(t-this.lastLevelIdleTime);let c=0;s<=0?(this.lastLevelIdleTime!==0&&this.timeoutIdleLevels(t),this.lastLevelIdleTime=t):c=s;let u=300-(t-this.lastDecisionTime);return u<=0&&(this.lastDecisionTime=t,this.makeDecision(t),u=300-(Date.now()-t)),u>0&&c>u&&(c=u),c}timeoutIdleLevels(t){const s=[];for(const u of BA(c=this.speakers).call(c)){var c;const h=t-u.getLastLevelChangedTime();36e5this.speakers.delete(u))}};const nc=new Map;let ba=null,Pc=null;const b2=3;let Ro=[];const _1=new Map,Vd=new Map;let Ny,jJ=class{get samples(){return this.actives+this.inactives}get activeRate(){return this.actives/this.samples}constructor(t,s){We(this,"id",void 0),We(this,"track",void 0),We(this,"score",0),We(this,"active",!0),We(this,"muted",!1),We(this,"timer",0),We(this,"actives",0),We(this,"inactives",0),this.id=t,this.track=s,this.setActive(_1.size<3)}autoCheckActive(){this.autoSetActive(),this.autoAdjustActive(),this.resetTimer(),this.actives=0,this.inactives=0}autoSetActive(){const t=this.active;this.active=this.activeRate>=.8;const s=function(){const h=[],_=[];return Array.from(BA(_1).call(_1)).forEach(B=>{B.active?h.push(B):_.push(B)}),{actives:h,inactives:_}}(),c=s.actives,u=s.inactives;if(c.length>3){let h;c.forEach(_=>{(!h||h.score>_.score)&&(h=_)}),h&&h.setActive(!1)}if(c.length<3&&u.length>0){let h;u.forEach(_=>{(!h||h.score<_.score)&&_.id!==this.id&&(h=_)}),h&&t&&!this.active&&(h.samples>40&&h.activeRate-this.activeRate>.4?h.setActive(!0):this.active=!0)}this.setMuted(!this.active)}setActive(t){this.active=t,this.resetTimer(),this.setMuted(!t)}autoAdjustActive(){this.active?this.autoSwitchToInactive():this.autoSwitchToActive()}autoSwitchToActive(){const t=function(s){let c;return Array.from(BA(_1).call(_1)).forEach(u=>{!u.active||u.id===s||u.samples<40||(!c||u.score.4&&(t.setActive(!1),this.setActive(!0))}autoSwitchToInactive(){const t=function(s){let c;return Array.from(BA(_1).call(_1)).forEach(u=>{u.active||u.id===s||u.samples<40||(!c||u.score>c.score)&&(c=u)}),c}(this.id);t&&t.activeRate-this.activeRate>.4&&(t.setActive(!0),this.setActive(!1))}addSample(t){t?this.actives+=1:this.inactives+=1,this.samples>66.66666666666667&&this.autoCheckActive()}setMuted(t){this.track&&(this.track.enabled=!t,this.muted=t)}resetTimer(){this.clearTimer(),this.timer=window.setTimeout(()=>{if(this.samples!==0)return this.samples<50?this.resetTimer():void this.autoCheckActive()},1e3)}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=0)}};function N2(t){const s=_1.get(t);s&&(_1.delete(t),s.clearTimer())}const Oy=new Map,O2=new Map,Ly="video/h264",o_="video/h265";function My(t,s,c){let u=new Uint8Array(t,s,c),h=[],_=0;for(;h.length=t.length)return"";const u=t[c];return 128&u?"":(u>>1&63)>=32||c+134,Js.supportUnifiedPlan=function(){if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;const s=new RTCPeerConnection;let c=!1;try{s.addTransceiver("audio"),c=!0}catch{}return s.close(),c}(),Js.supportMinBitrate=t.name===Fi.CHROME||t.name===Fi.EDGE,Js.supportSetRtpSenderParameters=function(){const s=Qi();return!!(window.RTCRtpSender&&window.RTCRtpSender.prototype.setParameters&&window.RTCRtpSender.prototype.getParameters)&&(!!Al()||!(!Zs()&&!Qf())||s.name===Fi.FIREFOX&&Number(s.version)>=64)}(),t.name===Fi.SAFARI&&(Number(t.version)>=14?Js.supportDualStream=!0:Js.supportDualStream=!1),Js.webAudioMediaStreamDest=function(){const s=Qi();return!(s.name===Fi.SAFARI&&Number(s.version)<12)}(),Js.supportReplaceTrack=!!window.RTCRtpSender&&typeof RTCRtpSender.prototype.replaceTrack=="function",Js.supportWebGL=typeof WebGLRenderingContext<"u",Js.supportRequestFrame=!!window.CanvasCaptureMediaStreamTrack,Al()||(Js.webAudioWithAEC=!0),Js.supportShareAudio=function(){const s=Qi();return(s.os===ns.WIN_10||s.os===ns.WIN_81||s.os===ns.WIN_7||s.os===ns.LINUX||s.os===ns.MAC_OS||s.os===ns.CHROMIUM_OS)&&s.name===Fi.CHROME&&Number(s.version)>=74}(),Js.supportDataChannel=!!(al(76)||wf(68)||a2(14)),Js.supportPCSetConfiguration=function(){const s=window.RTCPeerConnection;return!Ln()&&!!s&&s.prototype.setConfiguration instanceof Function}(),Js.supportWebRTCEncodedTransform=al(87)||Zb()||wf(117),Js.supportWebRTCInsertableStream=function(){const s=Qi();return(s.name===Fi.CHROME||s.name===Fi.EDGE)&&Number(s.version)>=94&&"MediaStreamTrackGenerator"in window&&"MediaStreamTrackProcessor"in window}(),Js.supportRequestVideoFrameCallback="requestVideoFrameCallback"in HTMLVideoElement.prototype,Js.supportWebCrypto=typeof window<"u"&&window.crypto!==void 0&&window.crypto.subtle!==void 0,Js.supportSuppressLocalAudioPlayback=L4(),Js.supportRestrictOwnAudio=M4(),xR(()=>{Js.supportDualStreamEncoding=function(){const s=Qi();return!!de("DISABLE_WEBAUDIO")||s.name==="Safari"&&Number(s.version)>=14||!!(s.name==="Chrome"&&/Windows/i.test(s.os||"")&&Number(s.version)>=100&&de("CHROME_DUAL_STREAM_USE_ENCODING"))}(),J.debug("browser ua: ",navigator.userAgent),J.info("browser info: ",t),J.info("browser compatibility: ",Js)})})();const JJ=["CHINA","GLOBAL"],t7=[[0,1,2,3,4,5,5],[0,2,2,3,4,5,5],[0,3,3,3,4,5,5],[0,4,4,4,4,5,5],[0,5,5,5,5,5,5]],ph=[],L2=[];function Lu(t,s){return!!s&&ph.some(c=>c.uid===t&&c.channelName===s)}function M2(){return L2.length>0}var r7=M3.forEach,i7=BI("forEach")?[].forEach:function(t){return r7(this,t,arguments.length>1?arguments[1]:void 0)};In({target:"Array",proto:!0,forced:[].forEach!==i7},{forEach:i7});var ps=E1("Array","forEach"),n7=fE,Py=Xs,hN=W,ed=ps,HC=Array.prototype,IN={DOMTokenList:!0,NodeList:!0},ZA=function(t){var s=t.forEach;return t===HC||hN(HC,t)&&s===HC.forEach||Py(IN,n7(t))?ed:s},o7=f(ZA),Uy=La,YC=Lm;In({target:"Object",stat:!0,forced:S(function(){YC(1)})},{keys:function(t){return YC(Uy(t))}});var CN=f(Zn.Object.keys),pN=f(V9),fh=f(J9);function Pt(t,s,c,u,h){var _,B,Q,T={};return o7(_=CN(u)).call(_,function(D){T[D]=u[D]}),T.enumerable=!!T.enumerable,T.configurable=!!T.configurable,("value"in T||T.initializer)&&(T.writable=!0),T=pN(B=fh(Q=$5(c).call(c)).call(Q)).call(B,function(D,O){return O(t,s,D)||D},T),h&&T.initializer!==void 0&&(T.value=T.initializer?T.initializer.call(h):void 0,T.initializer=void 0),T.initializer===void 0&&(ri(t,s,T),T=null),T}let a_=function(t){return t[t.ACCESS_POINT=101]="ACCESS_POINT",t[t.UNILBS=201]="UNILBS",t[t.STRING_UID_ALLOCATOR=901]="STRING_UID_ALLOCATOR",t}({}),k2=function(t){return t[t.IIIEGAL_APPID=1]="IIIEGAL_APPID",t[t.IIIEGAL_UID=2]="IIIEGAL_UID",t[t.INTERNAL_ERROR=3]="INTERNAL_ERROR",t}({}),Uc=function(t){return t[t.INVALID_VENDOR_KEY=5]="INVALID_VENDOR_KEY",t[t.INVALID_CHANNEL_NAME=7]="INVALID_CHANNEL_NAME",t[t.INTERNAL_ERROR=8]="INTERNAL_ERROR",t[t.NO_AUTHORIZED=9]="NO_AUTHORIZED",t[t.DYNAMIC_KEY_TIMEOUT=10]="DYNAMIC_KEY_TIMEOUT",t[t.NO_ACTIVE_STATUS=11]="NO_ACTIVE_STATUS",t[t.DYNAMIC_KEY_EXPIRED=13]="DYNAMIC_KEY_EXPIRED",t[t.STATIC_USE_DYNAMIC_KEY=14]="STATIC_USE_DYNAMIC_KEY",t[t.DYNAMIC_USE_STATIC_KEY=15]="DYNAMIC_USE_STATIC_KEY",t[t.USER_OVERLOAD=16]="USER_OVERLOAD",t[t.FORBIDDEN_REGION=18]="FORBIDDEN_REGION",t[t.CANNOT_MEET_AREA_DEMAND=19]="CANNOT_MEET_AREA_DEMAND",t[t.REQ_DOWNGRADE_FALLBACK=27]="REQ_DOWNGRADE_FALLBACK",t}({}),gA=function(t){return t[t.NO_FLAG_SET=100]="NO_FLAG_SET",t[t.FLAG_SET_BUT_EMPTY=101]="FLAG_SET_BUT_EMPTY",t[t.INVALID_FALG_SET=102]="INVALID_FALG_SET",t[t.FLAG_SET_BUT_NO_RE=103]="FLAG_SET_BUT_NO_RE",t[t.INVALID_SERVICE_ID=104]="INVALID_SERVICE_ID",t[t.NO_SERVICE_AVAILABLE=200]="NO_SERVICE_AVAILABLE",t[t.NO_SERVICE_AVAILABLE_P2P=201]="NO_SERVICE_AVAILABLE_P2P",t[t.NO_SERVICE_AVAILABLE_VOICE=202]="NO_SERVICE_AVAILABLE_VOICE",t[t.NO_SERVICE_AVAILABLE_WEBRTC=203]="NO_SERVICE_AVAILABLE_WEBRTC",t[t.NO_SERVICE_AVAILABLE_CDS=204]="NO_SERVICE_AVAILABLE_CDS",t[t.NO_SERVICE_AVAILABLE_CDN=205]="NO_SERVICE_AVAILABLE_CDN",t[t.NO_SERVICE_AVAILABLE_TDS=206]="NO_SERVICE_AVAILABLE_TDS",t[t.NO_SERVICE_AVAILABLE_REPORT=207]="NO_SERVICE_AVAILABLE_REPORT",t[t.NO_SERVICE_AVAILABLE_APP_CENTER=208]="NO_SERVICE_AVAILABLE_APP_CENTER",t[t.NO_SERVICE_AVAILABLE_ENV0=209]="NO_SERVICE_AVAILABLE_ENV0",t[t.NO_SERVICE_AVAILABLE_VOET=210]="NO_SERVICE_AVAILABLE_VOET",t[t.NO_SERVICE_AVAILABLE_STRING_UID=211]="NO_SERVICE_AVAILABLE_STRING_UID",t[t.NO_SERVICE_AVAILABLE_WEBRTC_UNILBS=212]="NO_SERVICE_AVAILABLE_WEBRTC_UNILBS",t[t.NO_SERVICE_AVAILABLE_UNILBS_FLV=213]="NO_SERVICE_AVAILABLE_UNILBS_FLV",t}({}),Br=function(t){return t[t.K_TIMESTAMP_EXPIRED=2]="K_TIMESTAMP_EXPIRED",t[t.K_CHANNEL_PERMISSION_INVALID=3]="K_CHANNEL_PERMISSION_INVALID",t[t.K_CERTIFICATE_INVALID=4]="K_CERTIFICATE_INVALID",t[t.K_CHANNEL_NAME_EMPTY=5]="K_CHANNEL_NAME_EMPTY",t[t.K_CHANNEL_NOT_FOUND=6]="K_CHANNEL_NOT_FOUND",t[t.K_TICKET_INVALID=7]="K_TICKET_INVALID",t[t.K_CHANNEL_CONFLICTED=8]="K_CHANNEL_CONFLICTED",t[t.K_SERVICE_NOT_READY=9]="K_SERVICE_NOT_READY",t[t.K_SERVICE_TOO_HEAVY=10]="K_SERVICE_TOO_HEAVY",t[t.K_UID_BANNED=14]="K_UID_BANNED",t[t.K_IP_BANNED=15]="K_IP_BANNED",t[t.K_CHANNEL_BANNED=16]="K_CHANNEL_BANNED",t[t.DATASTREAM2_NOT_AVAILABLE=27]="DATASTREAM2_NOT_AVAILABLE",t[t.K_AUTO_REBALANCE=28]="K_AUTO_REBALANCE",t[t.K_VOS_FALLBACK=30]="K_VOS_FALLBACK",t[t.WARN_NO_AVAILABLE_CHANNEL=103]="WARN_NO_AVAILABLE_CHANNEL",t[t.WARN_LOOKUP_CHANNEL_TIMEOUT=104]="WARN_LOOKUP_CHANNEL_TIMEOUT",t[t.WARN_LOOKUP_CHANNEL_REJECTED=105]="WARN_LOOKUP_CHANNEL_REJECTED",t[t.WARN_OPEN_CHANNEL_TIMEOUT=106]="WARN_OPEN_CHANNEL_TIMEOUT",t[t.WARN_OPEN_CHANNEL_REJECTED=107]="WARN_OPEN_CHANNEL_REJECTED",t[t.WARN_REQUEST_DEFERRED=108]="WARN_REQUEST_DEFERRED",t[t.ERR_DYNAMIC_KEY_TIMEOUT=109]="ERR_DYNAMIC_KEY_TIMEOUT",t[t.ERR_NO_AUTHORIZED=110]="ERR_NO_AUTHORIZED",t[t.ERR_VOM_SERVICE_UNAVAILABLE=111]="ERR_VOM_SERVICE_UNAVAILABLE",t[t.ERR_NO_CHANNEL_AVAILABLE_CODE=112]="ERR_NO_CHANNEL_AVAILABLE_CODE",t[t.ERR_MASTER_VOCS_UNAVAILABLE=114]="ERR_MASTER_VOCS_UNAVAILABLE",t[t.ERR_INTERNAL_ERROR=115]="ERR_INTERNAL_ERROR",t[t.ERR_NO_ACTIVE_STATUS=116]="ERR_NO_ACTIVE_STATUS",t[t.ERR_INVALID_UID=117]="ERR_INVALID_UID",t[t.ERR_DYNAMIC_KEY_EXPIRED=118]="ERR_DYNAMIC_KEY_EXPIRED",t[t.ERR_STATIC_USE_DYANMIC_KE=119]="ERR_STATIC_USE_DYANMIC_KE",t[t.ERR_DYNAMIC_USE_STATIC_KE=120]="ERR_DYNAMIC_USE_STATIC_KE",t[t.ERR_NO_VOCS_AVAILABLE=2e3]="ERR_NO_VOCS_AVAILABLE",t[t.ERR_NO_VOS_AVAILABLE=2001]="ERR_NO_VOS_AVAILABLE",t[t.ERR_JOIN_CHANNEL_TIMEOUT=2002]="ERR_JOIN_CHANNEL_TIMEOUT",t[t.ERR_REPEAT_JOIN_CHANNEL=2003]="ERR_REPEAT_JOIN_CHANNEL",t[t.ERR_JOIN_BY_MULTI_IP=2004]="ERR_JOIN_BY_MULTI_IP",t[t.ERR_NOT_JOINED=2011]="ERR_NOT_JOINED",t[t.ERR_REPEAT_JOIN_REQUEST=2012]="ERR_REPEAT_JOIN_REQUEST",t[t.ERR_INVALID_VENDOR_KEY=2013]="ERR_INVALID_VENDOR_KEY",t[t.ERR_INVALID_CHANNEL_NAME=2014]="ERR_INVALID_CHANNEL_NAME",t[t.ERR_INVALID_STRINGUID=2015]="ERR_INVALID_STRINGUID",t[t.ERR_TOO_MANY_USERS=2016]="ERR_TOO_MANY_USERS",t[t.ERR_SET_CLIENT_ROLE_TIMEOUT=2017]="ERR_SET_CLIENT_ROLE_TIMEOUT",t[t.ERR_SET_CLIENT_ROLE_NO_PERMISSION=2018]="ERR_SET_CLIENT_ROLE_NO_PERMISSION",t[t.ERR_SET_CLIENT_ROLE_ALREADY_IN_USE=2019]="ERR_SET_CLIENT_ROLE_ALREADY_IN_USE",t[t.ERR_PUBLISH_REQUEST_INVALID=2020]="ERR_PUBLISH_REQUEST_INVALID",t[t.ERR_SUBSCRIBE_REQUEST_INVALID=2021]="ERR_SUBSCRIBE_REQUEST_INVALID",t[t.ERR_NOT_SUPPORTED_MESSAGE=2022]="ERR_NOT_SUPPORTED_MESSAGE",t[t.ERR_ILLEAGAL_PLUGIN=2023]="ERR_ILLEAGAL_PLUGIN",t[t.ERR_REJOIN_TOKEN_INVALID=2024]="ERR_REJOIN_TOKEN_INVALID",t[t.ERR_REJOIN_USER_NOT_JOINED=2025]="ERR_REJOIN_USER_NOT_JOINED",t[t.ERR_INVALID_OPTIONAL_INFO=2027]="ERR_INVALID_OPTIONAL_INFO",t[t.ILLEGAL_AES_PASSWORD=2028]="ILLEGAL_AES_PASSWORD",t[t.ILLEGAL_CLIENT_ROLE_LEVEL=2029]="ILLEGAL_CLIENT_ROLE_LEVEL",t[t.ERR_TOO_MANY_BROADCASTERS=2031]="ERR_TOO_MANY_BROADCASTERS",t[t.ERR_TOO_MANY_SUBSCRIBERS=2032]="ERR_TOO_MANY_SUBSCRIBERS",t[t.ERR_LICENSE_MISSING=32769]="ERR_LICENSE_MISSING",t[t.ERR_LICENSE_EXPIRED=32771]="ERR_LICENSE_EXPIRED",t[t.ERR_LICENSE_MINUTES_EXCEEDED=32773]="ERR_LICENSE_MINUTES_EXCEEDED",t[t.ERR_LICENSE_PERIOD_INVALID=32774]="ERR_LICENSE_PERIOD_INVALID",t[t.ERR_LICENSE_MULTIPLE_SDK_SERVICE=32778]="ERR_LICENSE_MULTIPLE_SDK_SERVICE",t[t.ERR_LICENSE_ILLEGAL=32783]="ERR_LICENSE_ILLEGAL",t[t.ERR_TEST_RECOVER=9e3]="ERR_TEST_RECOVER",t[t.ERR_TEST_TRYNEXT=9001]="ERR_TEST_TRYNEXT",t[t.ERR_TEST_RETRY=9002]="ERR_TEST_RETRY",t}({}),Ci=function(t){return t.CONNECTING="connecting",t.CONNECTED="connected",t.RECONNECTING="reconnecting",t.CLOSED="closed",t}({}),er=function(t){return t.WS_CONNECTED="ws_connected",t.WS_RECONNECTING="ws_reconnecting",t.WS_CLOSED="ws_closed",t.WS_RECONNECT_CREATE_CONNECTION="ws_reconnect_create_connection",t.ON_BINARY_DATA="on_binary_data",t.REQUEST_RECOVER="request_recover",t.REQUEST_JOIN_INFO="request_join_info",t.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE="request_pre_join_response",t.REQUEST_REJOIN_INFO="req_rejoin_info",t.IS_P2P_DISCONNECTED="is_p2p_dis",t.DISCONNECT_P2P="dis_p2p",t.ABORT_P2P_EXECUTION="abort_p2p_execution",t.NEED_RENEW_SESSION="need-sid",t.REPORT_JOIN_GATEWAY="report_join_gateway",t.REQUEST_TIMEOUT="request_timeout",t.REQUEST_SUCCESS="request_success",t.JOIN_RESPONSE="join_response",t.PRE_CONNECT_PC="pre_connect_pc",t.DATACHANNEL_PRECONNECT="datachannel_preconnect",t.DATACHANNEL_CONNECTING="datachannel_connecting",t.DATACHANNEL_FAILBACK="datachannel_failback",t.P2P_CONNECTION="p2p_connection",t.P2P_REMOTE_CANDIDATE_UPDATE="p2p_remote_candidate_update",t.P2P_SUBSCRIBE="p2p_subscribe",t.P2P_UNSUBSCRIBE="p2p_unsubscribe",t.P2P_EXCHANGE_SDP="p2p_exchange_sdp",t.P2P_ON_ADD_VIDEO_STREAM="p2p_on_add_video_stream",t.P2P_ON_ADD_AUDIO_STREAM="p2p_on_add_audio_stream",t.RECOVER_NOTIFICATION="recover_notification",t.VOS_FALLBACK="vos_fallback",t.VOS_FALLBACK_PROMISE="vos_fallback_promise",t}({}),ur=function(t){return t.PING="ping",t.PING_BACK="ping_back",t.JOIN="join_v3",t.REJOIN="rejoin_v3",t.LEAVE="leave",t.SET_CLIENT_ROLE="set_client_role",t.PUBLISH="publish",t.PUBLISH_DATASTREAM="publish_datastream",t.UNPUBLISH="unpublish",t.UNPUBLISH_DATASTREAM="unpublish_datastream",t.SUBSCRIBE="subscribe",t.PRE_SUBSCRIBE="pre_subscribe",t.SUBSCRIBE_DATASTREAM="subscribe_datastream",t.SUBSCRIBE_STREAMS="subscribe_streams",t.UNSUBSCRIBE="unsubscribe",t.UNSUBSCRIBE_DATASTREAM="unsubscribe_datastream",t.UNSUBSCRIBE_STREAMS="unsubscribe_streams",t.SUBSCRIBE_CHANGE="subscribe_change",t.TRAFFIC_STATS="traffic_stats",t.RENEW_TOKEN="renew_token",t.SET_DUAL_STREAM_MODE="set_dual_stream_mode",t.SWITCH_VIDEO_STREAM="switch_video_stream",t.DEFAULT_VIDEO_STREAM="default_video_stream",t.SET_FALLBACK_OPTION="set_fallback_option",t.CONFIGURE="configure",t.GATEWAY_INFO="gateway_info",t.CONTROL="control",t.SEND_METADATA="send_metadata",t.DATA_STREAM="data_stream",t.PICK_SVC_LAYER="pick_svc_layer",t.RESTART_ICE="restart_ice",t.CONNECT_PC="connect_pc",t.SET_VIDEO_PROFILE="set_video_profile",t.SET_PARAMETER="set_parameter",t.SET_RTM2_FLAG="set_rtm2_flag",t.DOWNGRADE_CODEC="downgrade_codec",t}({}),Mu=function(t){return t.WRTC_STATS="wrtc_stats",t.WS_INFLATE_DATA_LENGTH="ws_inflate_data_length",t.DENOISER_STATS="denoiser_stats",t.EXTENSION_USAGE_STATS="extension_usage_stats",t}({}),Ur=function(t){return t.ON_USER_ONLINE="on_user_online",t.ON_USER_OFFLINE="on_user_offline",t.ON_STREAM_FALLBACK_UPDATE="on_stream_fallback_update",t.ON_PUBLISH_STREAM="on_publish_stream",t.ON_UPLINK_STATS="on_uplink_stats",t.ON_P2P_LOST="on_p2p_lost",t.ON_REMOVE_STREAM="on_remove_stream",t.ON_ADD_AUDIO_STREAM="on_add_audio_stream",t.ON_ADD_VIDEO_STREAM="on_add_video_stream",t.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="on_token_privilege_will_expire",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="on_token_privilege_did_expire",t.ON_USER_BANNED="on_user_banned",t.ON_USER_LICENSE_BANNED="on_user_license_banned",t.ON_NOTIFICATION="on_notification",t.ON_CRYPT_ERROR="on_crypt_error",t.MUTE_AUDIO="mute_audio",t.MUTE_VIDEO="mute_video",t.UNMUTE_AUDIO="unmute_audio",t.UNMUTE_VIDEO="unmute_video",t.ON_P2P_OK="on_p2p_ok",t.RECEIVE_METADATA="receive_metadata",t.ON_DATA_STREAM="on_data_stream",t.ON_RTP_CAPABILITY_CHANGE="on_rtp_capability_change",t.ON_REMOTE_DATASTREAM_UPDATE="on_remote_datastream_update",t.ON_REMOTE_FULL_DATASTREAM_INFO="on_remote_full_datastream_info",t.ENABLE_LOCAL_VIDEO="enable_local_video",t.DISABLE_LOCAL_VIDEO="disable_local_video",t.ENABLE_LOCAL_AUDIO="enable_local_audio",t.DISABLE_LOCAL_AUDIO="disable_local_audio",t.ON_PUBLISHED_USER_LIST="on_published_user_list",t.ENABLE_MULTI_STREAM="enable_multi_stream",t.ON_USER_LIST="on_user_list",t}({}),EA=function(t){return t.SEND_ONLY="SEND_ONLY",t.RECEIVE_ONLY="RECEIVE_ONLY",t}({}),jr=function(t){return t.CONNECTED="websocket:connected",t.RECONNECTING="websocket:reconnecting",t.WILL_RECONNECT="websocket:will_reconnect",t.CLOSED="websocket:closed",t.FAILED="websocket:failed",t.ON_MESSAGE="websocket:on_message",t.REQUEST_NEW_URLS="websocket:request_new_urls",t.RECONNECT_CREATE_CONNECTION="websocket:reconnect_create_connection",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="websocket:on_token_privilege_did_expire",t.ON_FALLBACK="websocket:on_fallback",t}({});function fl(t){if(typeof t!="string"||!/^[a-zA-Z0-9 \!\#\$\%\&\(\)\+\-\:\;\<\=\.\>\?\@\[\]\^\_\{\}\|\~\,]{1,64}$/.test(t))throw J.error("Invalid Channel Name ".concat(t)),new qe(Ce.INVALID_PARAMS,"The length must be within 64 bytes. The supported characters: a-z,A-Z,0-9,space,!, #, $, %, &, (, ), +, -, :, ;, <, =, ., >, ?, @, [, ], ^, _, {, }, |, ~, ,")}function P2(t){if(s=t,!(typeof s=="number"&&Math.floor(s)===s&&0<=s&&s<=4294967295||LR(t,1,255)))throw new qe(Ce.INVALID_PARAMS,"[String uid] Length of the string: [1,255]. ASCII characters only. [Number uid] The value range is [0,10000]");var s;typeof t=="string"&&J.warn("You input a string as the user ID, to ensure better end-user experience, Agora highly suggests not using a string as the user ID.")}let ku=function(t){return t.TRANSCODE="mix_streaming",t.RAW="raw_streaming",t}({});const s7={alpha:1,height:640,width:360,x:0,y:0,zOrder:0,audioChannel:0},U2={x:0,y:0,width:160,height:160,zOrder:255,alpha:1};function kg(t,s){Ra(t.url,"".concat(s,".url"),1,1e3,!1),Bo(t.x)||Vn(t.x,"".concat(s,".x"),0,1e4),Bo(t.y)||Vn(t.y,"".concat(s,".y"),0,1e4),Bo(t.width)||Vn(t.width,"".concat(s,".width"),0,1e4),Bo(t.height)||Vn(t.height,"".concat(s,".height"),0,1e4),Bo(t.zOrder)||Vn(t.zOrder,"".concat(s,".zOrder"),0,255),Bo(t.alpha)||Vn(t.alpha,"".concat(s,".alpha"),0,1,!1)}const fN={audioBitrate:48,audioChannels:1,audioSampleRate:48e3,backgroundColor:0,height:360,lowLatency:!1,videoBitrate:400,videoCodecProfile:100,videoCodecType:1,videoFrameRate:15,videoGop:30,width:640,images:[],userConfigs:[],userConfigExtraInfo:""};let Pu=function(t){return t.WARNING="@live_uap-warning",t.ERROR="@line_uap-error",t.PUBLISH_STREAM_STATUS="@live_uap-publish-status",t.WORKER_STATUS="@live_uap-worker-status",t.REQUEST_NEW_ADDRESS="@live_uap-request-address",t}({}),xy=function(t){return t.REQUEST_WORKER_MANAGER_LIST="@live_req_worker_manager",t}({}),ds=function(t){return t[t.LIVE_STREAM_RESPONSE_SUCCEED=200]="LIVE_STREAM_RESPONSE_SUCCEED",t[t.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM=454]="LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM",t[t.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR=450]="LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR",t[t.LIVE_STREAM_RESPONSE_BAD_STREAM=451]="LIVE_STREAM_RESPONSE_BAD_STREAM",t[t.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR=400]="LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR",t[t.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST=404]="LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST",t[t.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED=456]="LIVE_STREAM_RESPONSE_NOT_AUTHORIZED",t[t.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE=457]="LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE",t[t.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN=429]="LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN",t[t.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH=452]="LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH",t[t.LIVE_STREAM_RESPONSE_NOT_SUPPORTED=453]="LIVE_STREAM_RESPONSE_NOT_SUPPORTED",t[t.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM=455]="LIVE_STREAM_RESPONSE_MAX_STREAM_NUM",t[t.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR=500]="LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR",t[t.LIVE_STREAM_RESPONSE_WORKER_LOST=501]="LIVE_STREAM_RESPONSE_WORKER_LOST",t[t.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT=502]="LIVE_STREAM_RESPONSE_RESOURCE_LIMIT",t[t.LIVE_STREAM_RESPONSE_WORKER_QUIT=503]="LIVE_STREAM_RESPONSE_WORKER_QUIT",t[t.ERROR_FAIL_SEND_MESSAGE=504]="ERROR_FAIL_SEND_MESSAGE",t[t.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE=30]="PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE",t[t.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT=31]="PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT",t[t.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH=32]="PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH",t[t.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN=33]="PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN",t}({});function Fy(t){if(!t.channelName)throw new qe(Ce.INVALID_PARAMS,"invalid channelName in info");if(typeof t.uid!="number")throw new qe(Ce.INVALID_PARAMS,"invalid uid in info, uid must be a number");return t.token&&Ra(t.token,"info.token",1,2047),P2(t.uid),fl(t.channelName),!0}let OA=function(t){return t[t.SetSdkProfile=0]="SetSdkProfile",t[t.SetSourceChannel=1]="SetSourceChannel",t[t.SetSourceUserId=2]="SetSourceUserId",t[t.SetDestChannel=3]="SetDestChannel",t[t.StartPacketTransfer=4]="StartPacketTransfer",t[t.StopPacketTransfer=5]="StopPacketTransfer",t[t.UpdateDestChannel=6]="UpdateDestChannel",t[t.Reconnect=7]="Reconnect",t[t.SetVideoProfile=8]="SetVideoProfile",t}({}),Kd=function(t){return t.NETWORK_DISCONNECTED="NETWORK_DISCONNECTED",t.NETWORK_CONNECTED="NETWORK_CONNECTED",t.PACKET_JOINED_SRC_CHANNEL="PACKET_JOINED_SRC_CHANNEL",t.PACKET_JOINED_DEST_CHANNEL="PACKET_JOINED_DEST_CHANNEL",t.PACKET_SENT_TO_DEST_CHANNEL="PACKET_SENT_TO_DEST_CHANNEL",t.PACKET_RECEIVED_VIDEO_FROM_SRC="PACKET_RECEIVED_VIDEO_FROM_SRC",t.PACKET_RECEIVED_AUDIO_FROM_SRC="PACKET_RECEIVED_AUDIO_FROM_SRC",t.PACKET_UPDATE_DEST_CHANNEL="PACKET_UPDATE_DEST_CHANNEL",t.PACKET_UPDATE_DEST_CHANNEL_REFUSED="PACKET_UPDATE_DEST_CHANNEL_REFUSED",t.PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE="PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE",t}({}),e1=function(t){return t.RELAY_STATE_IDLE="RELAY_STATE_IDLE",t.RELAY_STATE_CONNECTING="RELAY_STATE_CONNECTING",t.RELAY_STATE_RUNNING="RELAY_STATE_RUNNING",t.RELAY_STATE_FAILURE="RELAY_STATE_FAILURE",t}({}),t1=function(t){return t.RELAY_OK="RELAY_OK",t.SERVER_CONNECTION_LOST="SERVER_CONNECTION_LOST",t.SRC_TOKEN_EXPIRED="SRC_TOKEN_EXPIRED",t.DEST_TOKEN_EXPIRED="DEST_TOKEN_EXPIRED",t}({}),En=function(t){return t.High="high",t.Low="low",t.Audio="audio",t.Screen="screen",t.ScreenLow="screen_low",t}({}),No=function(t){return t.DISCONNECT="disconnect",t.CONNECTION_STATE_CHANGE="connection-state-change",t.NETWORK_QUALITY="network-quality",t.STREAM_TYPE_CHANGE="stream-type-change",t.IS_P2P_DISCONNECTED="is-p2p-dis",t.DISCONNECT_P2P="dis-p2p",t.REQUEST_NEW_GATEWAY_LIST="req-gate-url",t.NEED_RENEW_SESSION="need-sid",t.REQUEST_P2P_CONNECTION_PARAMS="request-p2p-connection-params",t.JOIN_RESPONSE="join-response",t.RESET_CONNECTION_EVENTS="reset-connection-events",t.PRE_CONNECT_PC="pre-connect_pc",t.UPDATE_GATEWAY_CONFIG="update-gateway-config",t.VOS_FALLBACK="vos-fallback",t.VOS_FALLBACK_PROMISE="vos-fallback-promise",t.RESET_SIGNAL="reset-signal",t.DATACHANNEL_FAILBACK="datachannel-failback",t}({}),_h=function(t){return t.P2P_DISCONNECTED="P2P_DISCONNECTED",t.A_ROUND_WS_FAILED="A_ROUND_WS_FAILED",t.TIMEOUT="TIMEOUT",t.UNKNOWN_REASON="UNKNOWN_REASON",t}({}),jo=function(t){return t[t.Nothing=0]="Nothing",t[t.Audio=1]="Audio",t[t.LowVideo=2]="LowVideo",t[t.Video=4]="Video",t[t.Data=8]="Data",t[t.DataStream0=256]="DataStream0",t[t.DataStream1=512]="DataStream1",t[t.DataStream2=1024]="DataStream2",t[t.DataStream3=2048]="DataStream3",t[t.DataStream4=4096]="DataStream4",t[t.DataStream5=8192]="DataStream5",t[t.DataStream6=16384]="DataStream6",t[t.DataStream7=32768]="DataStream7",t}({}),gi=function(t){return t.CHINA="CHINA",t.ASIA="ASIA",t.NORTH_AMERICA="NORTH_AMERICA",t.EUROPE="EUROPE",t.JAPAN="JAPAN",t.INDIA="INDIA",t.KOREA="KOREA",t.HKMC="HKMC",t.US="US",t.OCEANIA="OCEANIA",t.SOUTH_AMERICA="SOUTH_AMERICA",t.AFRICA="AFRICA",t.OVERSEA="OVERSEA",t.GLOBAL="GLOBAL",t.EXTENSIONS="EXTENSIONS",t}({});const Gy=[gi.AFRICA,gi.ASIA,gi.CHINA,gi.EUROPE,gi.GLOBAL,gi.INDIA,gi.JAPAN,gi.NORTH_AMERICA,gi.OCEANIA,gi.OVERSEA,gi.SOUTH_AMERICA];let Pa=function(t){return t.CHINA="CN",t.ASIA="AS",t.NORTH_AMERICA="NA",t.EUROPE="EU",t.JAPAN="JP",t.INDIA="IN",t.KOREA="KR",t.HKMC="HK",t.US="US",t.OCEANIA="OC",t.SOUTH_AMERICA="SA",t.AFRICA="AF",t.OVERSEA="OVERSEA",t.GLOBAL="GLOBAL",t.EXTENSIONS="GLOBAL",t}({});const A_={CHINA:{},ASIA:{CODE:Pa.ASIA,WEBCS_DOMAIN:["ap-web-1-asia.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-asia.agora.io"],PROXY_CS:["proxy-ap-web-asia.agora.io"],CDS_AP:["cds-ap-web-asia.agora.io","cds-ap-web-asia2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-asia.agora.io","sua-ap-web-asia2.agora.io"],UAP_AP:["uap-ap-web-asia.agora.io","uap-ap-web-asia2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-asia.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-asia.agora.io"],LOG_UPLOAD_SERVER:["logservice-asia.agora.io"],PROXY_SERVER_TYPE3:["southeast-asia.webrtc-cloud-proxy.sd-rtn.com"]},NORTH_AMERICA:{CODE:Pa.NORTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-north-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-north-america.agora.io"],PROXY_CS:["proxy-ap-web-america.agora.io"],CDS_AP:["cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],UAP_AP:["uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-north-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-north-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-north-america.agora.io"],PROXY_SERVER_TYPE3:["east-usa.webrtc-cloud-proxy.sd-rtn.com"]},EUROPE:{CODE:Pa.EUROPE,WEBCS_DOMAIN:["ap-web-1-europe.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-europe.agora.io"],PROXY_CS:["proxy-ap-web-europe.agora.io"],CDS_AP:["cds-ap-web-europe.agora.io","cds-ap-web-europe2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-europe.agora.io","sua-ap-web-europe.agora.io"],UAP_AP:["uap-ap-web-europe.agora.io","uap-ap-web-europe2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-europe.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-europe.agora.io"],LOG_UPLOAD_SERVER:["logservice-europe.agora.io"],PROXY_SERVER_TYPE3:["europe.webrtc-cloud-proxy.sd-rtn.com"]},JAPAN:{CODE:Pa.JAPAN,WEBCS_DOMAIN:["ap-web-1-japan.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-japan.agora.io"],PROXY_CS:["proxy-ap-web-japan.agora.io"],CDS_AP:["cds-ap-web-japan.agora.io","cds-ap-web-japan2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-japan.agora.io","sua-ap-web-japan2.agora.io"],UAP_AP:["uap-ap-web-japan.agora.io","uap-ap-web-japan2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-japan.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-japan.agora.io"],LOG_UPLOAD_SERVER:["logservice-japan.agora.io"],PROXY_SERVER_TYPE3:["japan.webrtc-cloud-proxy.sd-rtn.com"]},INDIA:{CODE:Pa.INDIA,WEBCS_DOMAIN:["ap-web-1-india.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-india.agora.io"],PROXY_CS:["proxy-ap-web-india.agora.io"],CDS_AP:["cds-ap-web-india.agora.io","cds-ap-web-india2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-india.agora.io","sua-ap-web-india2.agora.io"],UAP_AP:["uap-ap-web-india.agora.io","uap-ap-web-india2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-india.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-india.agora.io"],LOG_UPLOAD_SERVER:["logservice-india.agora.io"],PROXY_SERVER_TYPE3:["india.webrtc-cloud-proxy.sd-rtn.com"]},KOREA:{CODE:Pa.KOREA,WEBCS_DOMAIN:["ap-web-1-korea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-korea.agora.io"],PROXY_CS:["proxy-ap-web-korea.agora.io"],CDS_AP:["cds-ap-web-korea.agora.io","cds-ap-web-korea2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-korea.agora.io","sua-ap-web-korea2.agora.io"],UAP_AP:["uap-ap-web-korea.agora.io","uap-ap-web-korea2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-korea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-korea.agora.io"],LOG_UPLOAD_SERVER:["logservice-korea.agora.io"],PROXY_SERVER_TYPE3:["korea.webrtc-cloud-proxy.sd-rtn.com"]},HKMC:{CODE:Pa.HKMC,WEBCS_DOMAIN:["ap-web-1-hkmc.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-hkmc.agora.io"],PROXY_CS:["proxy-ap-web-hkmc.agora.io"],CDS_AP:["cds-ap-web-hkmc.agora.io","cds-ap-web-hkmc2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-hkmc.agora.io","sua-ap-web-hkmc2.agora.io"],UAP_AP:["uap-ap-web-hkmc.agora.io","uap-ap-web-hkmc2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-hkmc.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-hkmc.agora.io"],LOG_UPLOAD_SERVER:["logservice-hkmc.agora.io"],PROXY_SERVER_TYPE3:["hkmc.webrtc-cloud-proxy.sd-rtn.com"]},US:{CODE:Pa.US,WEBCS_DOMAIN:["ap-web-1-us.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-us.agora.io"],PROXY_CS:["proxy-ap-web-us.agora.io"],CDS_AP:["cds-ap-web-us.agora.io","cds-ap-web-us2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-us.agora.io","sua-ap-web-us2.agora.io"],UAP_AP:["uap-ap-web-us.agora.io","uap-ap-web-us2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-us.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-us.agora.io"],LOG_UPLOAD_SERVER:["logservice-us.agora.io"],PROXY_SERVER_TYPE3:["us.webrtc-cloud-proxy.sd-rtn.com"]},OVERSEA:{CODE:Pa.OVERSEA,WEBCS_DOMAIN:["ap-web-1-oversea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oversea.agora.io"],PROXY_CS:["proxy-ap-web-oversea.agora.io"],CDS_AP:["cds-ap-web-oversea.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oversea.agora.io"],UAP_AP:["uap-ap-web-oversea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oversea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oversea.agora.io"],LOG_UPLOAD_SERVER:["logservice-oversea.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.agora.io"]},GLOBAL:{CODE:Pa.GLOBAL,WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-ap-web-3.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-ap-web-3.agora.io"],UAP_AP:["uap-ap-web-1.agora.io","uap-ap-web-3.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2.agora.io"],LOG_UPLOAD_SERVER:["logservice.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com"]},OCEANIA:{CODE:Pa.OCEANIA,WEBCS_DOMAIN:["ap-web-1-oceania.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oceania.agora.io"],PROXY_CS:["proxy-ap-web-oceania.agora.io"],CDS_AP:["cds-ap-web-oceania.agora.io","cds-ap-web-oceania2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oceania.agora.io","sua-ap-web-oceania2.agora.io"],UAP_AP:["uap-ap-web-oceania.agora.io","uap-ap-web-oceania2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oceania.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oceania.agora.io"],LOG_UPLOAD_SERVER:["logservice-oceania.agora.io"],PROXY_SERVER_TYPE3:["oceania.webrtc-cloud-proxy.sd-rtn.com"]},SOUTH_AMERICA:{CODE:Pa.SOUTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-south-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-south-america.agora.io"],PROXY_CS:["proxy-ap-web-south-america.agora.io"],CDS_AP:["cds-ap-web-south-america.agora.io","cds-ap-web-south-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-south-america.agora.io","sua-ap-web-south-america2.agora.io"],UAP_AP:["uap-ap-web-south-america.agora.io","uap-ap-web-south-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-south-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-south-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-america.agora.io"],PROXY_SERVER_TYPE3:["south-america.webrtc-cloud-proxy.sd-rtn.com"]},AFRICA:{CODE:Pa.AFRICA,WEBCS_DOMAIN:["ap-web-1-africa.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-africa.agora.io"],PROXY_CS:["proxy-ap-web-africa.agora.io"],CDS_AP:["cds-ap-web-africa.agora.io","cds-ap-web-africa2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-africa.agora.io","sua-ap-web-africa2.agora.io"],UAP_AP:["uap-ap-web-africa.agora.io","uap-ap-web-africa2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-africa.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-africa.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-africa.agora.io"],PROXY_SERVER_TYPE3:["africa.webrtc-cloud-proxy.sd-rtn.com"]},EXTENSIONS:{}};d4&&(A_.CHINA={CODE:Pa.CHINA,WEBCS_DOMAIN:["webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["proxy-web.ap.sd-rtn.com"],CDS_AP:["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-web-2.ap.sd-rtn.com","uap-web-4.ap.sd-rtn.com"],EVENT_REPORT_DOMAIN:["web-3.statscollector.sd-rtn.com"],EVENT_REPORT_BACKUP_DOMAIN:["web-4.statscollector.sd-rtn.com"],LOG_UPLOAD_SERVER:["logservice-china.agora.io"],PROXY_SERVER_TYPE3:["east-cn.webrtc-cloud-proxy.sd-rtn.com"]});let xc=function(t){return t.UPDATE_BITRATE_LIMIT="update_bitrate_limit",t.UPDATE_CLIENT_ROLE_OPTIONS="update_client_role_options",t.UPDATE_REMOTE_VIDEO_STREAM_TYPE="update_remote_video_stream_type",t.FALLBACK_TO_HLS="fallback_to_hls",t.UPDATE_VOS_CONFIGURE="update_vos_configure",t}({});function _N(t){return!!t&&!(!t.uplink||!t.id)&&t.uplink.max_bitrate!==void 0&&t.uplink.min_bitrate!==void 0}class mN extends Cn{constructor(s,c){super(),ae(this,"onICEConnectionStateChange",void 0),ae(this,"onConnectionStateChange",void 0),ae(this,"onDTLSTransportStateChange",void 0),ae(this,"onDTLSTransportError",void 0),ae(this,"onICETransportStateChange",void 0),ae(this,"onFirstAudioReceived",void 0),ae(this,"onFirstVideoReceived",void 0),ae(this,"onFirstAudioDecoded",void 0),ae(this,"onFirstVideoDecoded",void 0),ae(this,"onFirstVideoRender",void 0),ae(this,"onFirstVideoBufferReady",void 0),ae(this,"onFirstVideoDecodedTimeout",void 0),ae(this,"onSelectedLocalCandidateChanged",void 0),ae(this,"onSelectedRemoteCandidateChanged",void 0),ae(this,"onICECandidateError",void 0),ae(this,"getLocalVideoStats",void 0)}}class LA extends mN{constructor(s,c){super(s,c),ae(this,"establishPromise",void 0)}}let rr=function(t){return t.VIDEO="video",t.AUDIO="audio",t}({}),qs=function(t){return t.UDP_RELAY="udp_relay",t.UDP_TCP_RELAY="udp_tcp_relay",t.TCP_RELAY="tcp_relay",t.RELAY="relay",t}({}),MA=function(t){return t[t.FIRST_CONNECTION=0]="FIRST_CONNECTION",t[t.UDP_TCP_RESTART=1]="UDP_TCP_RESTART",t[t.RELAY_RESTART=2]="RELAY_RESTART",t[t.TCP_RESTART=3]="TCP_RESTART",t[t.OLD_FIRST_CONNECTION=10]="OLD_FIRST_CONNECTION",t[t.OLD_RESTART=11]="OLD_RESTART",t[t.DISCONNECTED_OR_FAILED=20]="DISCONNECTED_OR_FAILED",t}({});const td=["disconnected","failed"];let Qt=function(t){return t.LocalVideoTrack="videoTrack",t.LocalAudioTrack="audioTrack",t.LocalVideoLowTrack="videoLowTrack",t}({}),ln=function(t){return t.New="new",t.Connected="connected",t.Reconnecting="reconnecting",t.Disconnected="disconnected",t}({}),Cr=function(t){return t.AudioMetadata="audioMetadata",t.AudioPts="audioPts",t.StateChange="stateChange",t.IceConnectionStateChange="iceConnectionStateChange",t.RequestMuteLocal="requestMuteLocal",t.RequestUnmuteLocal="requestUnmuteLocal",t.RequestRePublish="requestRePublish",t.RequestRePublishDataChannel="requestRePublishDataChannel",t.RequestReSubscribe="requestReSubscribe",t.RequestUploadStats="requestUploadStats",t.RequestUpload="requestUpload",t.MediaReconnectStart="MediaReconnectStart",t.MediaReconnectEnd="MediaReconnectEnd",t.NeedSignalRTT="NeedSignalRTT",t.RequestRestartICE="RequestRestartIce",t.PeerConnectionStateChange="PeerConnectionStateChange",t.RequestReconnect="RequestReconnect",t.RequestReconnectPC="RequestReconnectPC",t.RequestUnpublishForReconnectPC="RequestUnpublishForReconnectPC",t.P2PLost="P2PLost",t.UpdateVideoEncoder="UpdateVideoEncoder",t.ConnectionTypeChange="ConnectionTypeChange",t.RequestLowStreamParameter="RequestLowStreamParameter",t.QueryClientConnectionState="QueryClientConnectionState",t.LocalCandidate="LocalCandidate",t.RequestP2PMuteLocal="requestP2PMuteLocal",t.RequestP2PUnPublish="RequestP2PUnPublish",t.RequestP2PUnmuteRemote="RequestP2PUnmuteRemote",t.RequestP2PMuteRemote="RequestP2PMuteRemote",t.RequestP2PRestartICE="RequestP2PRestartICE",t.FirstVideoPreRender="FirstVideoPreRender",t.FirstVideoBufferReady="FirstVideoBufferReady",t}({}),Oo=function(t){return t.CONNECTING="CONNECTING",t.RECONNECTING="RECONNECTING",t.CONNECTED="CONNECTED",t.CLOSED="CLOSED",t}({}),Fc=function(t){return t[t.CONNECT_AP=0]="CONNECT_AP",t[t.AP_CONNECTED=1]="AP_CONNECTED",t[t.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",t[t.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",t[t.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",t[t.CONNECT_WORKER=5]="CONNECT_WORKER",t[t.WORKER_CONNECTED=6]="WORKER_CONNECTED",t[t.CLOSED=7]="CLOSED",t}({}),fa=function(t){return t.CONNECTION_STATE_CHANGE="connection-state-change",t.STATE_CHANGE="state-change",t.INSPECT_RESULT="inspect-result",t.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",t.REQUEST_NEW_WORKER_URL="request-new-worker-url",t}({}),Hd=function(t){return t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.MULTI_IP="MULTI_IP",t.TIMEOUT="TIMEOUT",t.OFFLINE="OFFLINE",t.LEAVE="LEAVE",t.P2P_FAILED="P2P_FAILED",t.FALLBACK="FALLBACK",t}({}),fs=function(t){return t.CONNECTED="transmitter:connected",t.RECONNECTING="transmitter:reconnecting",t.WILL_RECONNECT="transmitter:will_reconnect",t.CLOSED="transmitter:closed",t.FAILED="transmitter:failed",t.ON_MESSAGE="transmitter:on_message",t.REQUEST_NEW_URLS="transmitter:request_new_urls",t.RECONNECT_CREATE_CONNECTION="transmitter:reconnect_create_connection",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="transmitter:on_token_privilege_did_expire",t.TO_CONNECT_DATACHANNEL="transmitter:to_connect_datachannel",t.FAILBACK="transmitter:failback",t.PRE_CONNECT_PC="transmitter:pre_connect_pc",t}({}),iA=function(t){return t.CAMERA_CHANGED="camera-changed",t.MICROPHONE_CHANGED="microphone-changed",t.PLAYBACK_DEVICE_CHANGED="playback-device-changed",t.AUDIO_AUTOPLAY_FAILED="audio-autoplay-failed",t.AUTOPLAY_FAILED="autoplay-failed",t.AUDIO_CONTEXT_STATE_CHANGED="audio-context-state-changed",t.SECURITY_POLICY_VIOLATION="security-policy-violation",t}({}),r1=function(t){return t.CONNECTING="CONNECTING",t.RECONNECTING="RECONNECTING",t.CONNECTED="CONNECTED",t.CLOSED="CLOSED",t}({}),rd=function(t){return t.CONNECTION_STATE_CHANGE="connection-state-change",t.STATE_CHANGE="state-change",t.INSPECT_RESULT="inspect-result",t.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",t.REQUEST_NEW_WORKER_URL="request-new-worker-url",t}({}),jC=function(t){return t[t.CONNECT_AP=0]="CONNECT_AP",t[t.AP_CONNECTED=1]="AP_CONNECTED",t[t.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",t[t.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",t[t.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",t[t.CONNECT_WORKER=5]="CONNECT_WORKER",t[t.WORKER_CONNECTED=6]="WORKER_CONNECTED",t[t.CLOSED=7]="CLOSED",t}({}),Go=function(t){return t.CALL="call",t.CANDIDATE="candidate",t.PUBLISH="publish",t.UNPUBLISH="unpublish",t.CONTROL="control",t.RESTART_ICE="restart_ice",t.ACK="ack",t.RESPONSE="response",t.JOIN="join",t.CHECK="check",t}({}),Pg=function(t){return t.ABORT="abort",t}({}),Uu=function(t){return t.MUTE_LOCAL_AUDIO="mute_local_audio",t.MUTE_LOCAL_VIDEO="mute_local_video",t.UNMUTE_LOCAL_AUDIO="unmute_local_audio",t.UNMUTE_LOCAL_VIDEO="unmute_local_video",t}({}),qJ=function(t){return t.P2P_TOKEN_TIMEOUT="p2p_token_timeout",t.P2P_TOKEN_CHANGED="p2p_token_changed",t}({});const a7={[a_.ACCESS_POINT]:{[gA.NO_FLAG_SET]:{desc:"flag is zero",retry:!1},[gA.FLAG_SET_BUT_EMPTY]:{desc:"flag is empty",retry:!1},[gA.INVALID_FALG_SET]:{desc:"invalid flag",retry:!1},[gA.FLAG_SET_BUT_NO_RE]:{desc:"flag set unilbs but no request",retry:!1},[gA.INVALID_SERVICE_ID]:{desc:"invalid service id",retry:!1},[gA.NO_SERVICE_AVAILABLE]:{desc:"no service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_P2P]:{desc:"no unilbs p2p service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_VOICE]:{desc:"no unilbs voice service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_WEBRTC]:{desc:"no unilbs webrtc service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_CDS]:{desc:"no cds service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_CDN]:{desc:"no cdn dispatcher service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_TDS]:{desc:"no tds service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_REPORT]:{desc:"no unilbs report service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_APP_CENTER]:{desc:"no app center service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_ENV0]:{desc:"no unilbs sig env0 service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_VOET]:{desc:"no unilbs voet service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_STRING_UID]:{desc:"no string uid service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_WEBRTC_UNILBS]:{desc:"no webrtc unilbs service available",retry:!0}},[a_.UNILBS]:{[Uc.INVALID_VENDOR_KEY]:{desc:"invalid vendor key, can not find appid",retry:!1},[Uc.INVALID_CHANNEL_NAME]:{desc:"invalid channel name",retry:!1},[Uc.INTERNAL_ERROR]:{desc:"unilbs internal error",retry:!1},[Uc.NO_AUTHORIZED]:{desc:"invalid token, authorized failed",retry:!1},[Uc.DYNAMIC_KEY_TIMEOUT]:{desc:"dynamic key or token timeout",retry:!1},[Uc.NO_ACTIVE_STATUS]:{desc:"no active status",retry:!1},[Uc.DYNAMIC_KEY_EXPIRED]:{desc:"dynamic key expired",retry:!1},[Uc.STATIC_USE_DYNAMIC_KEY]:{desc:"static use dynamic key",retry:!1},[Uc.DYNAMIC_USE_STATIC_KEY]:{desc:"dynamic use static key",retry:!1},[Uc.USER_OVERLOAD]:{desc:"amount of users over load",retry:!1},[Uc.FORBIDDEN_REGION]:{desc:"the request is forbidden in this area",retry:!1},[Uc.CANNOT_MEET_AREA_DEMAND]:{desc:"unable to allocate services in this area",retry:!1},[Uc.REQ_DOWNGRADE_FALLBACK]:{desc:"request downgrade fallback",retry:!1}},[a_.STRING_UID_ALLOCATOR]:{[k2.IIIEGAL_APPID]:{desc:"invalid appid",retry:!1},[k2.IIIEGAL_UID]:{desc:"invalid string uid",retry:!1},[k2.INTERNAL_ERROR]:{desc:"string uid allocator internal error",retry:!0}}};function mh(t){const s=a7[Math.floor(t/1e4)];if(!s)return{desc:"unknown error",retry:!1};const c=s[t%1e4];if(!c){if(Math.floor(t/1e4)===a_.ACCESS_POINT){const u=t%1e4;if(u.toString()[0]==="1")return{desc:t.toString(),retry:!1};if(u.toString()[0]==="2")return{desc:t.toString(),retry:!0}}return{desc:"unknown error",retry:!1}}return c}const A7={[Br.K_TIMESTAMP_EXPIRED]:{desc:"K_TIMESTAMP_EXPIRED",action:"failed"},[Br.K_CHANNEL_PERMISSION_INVALID]:{desc:"K_CHANNEL_PERMISSION_INVALID",action:"failed"},[Br.K_CERTIFICATE_INVALID]:{desc:"K_CERTIFICATE_INVALID",action:"failed"},[Br.K_CHANNEL_NAME_EMPTY]:{desc:"K_CHANNEL_NAME_EMPTY",action:"failed"},[Br.K_CHANNEL_NOT_FOUND]:{desc:"K_CHANNEL_NOT_FOUND",action:"failed"},[Br.K_TICKET_INVALID]:{desc:"K_TICKET_INVALID",action:"failed"},[Br.K_CHANNEL_CONFLICTED]:{desc:"K_CHANNEL_CONFLICTED",action:"failed"},[Br.K_SERVICE_NOT_READY]:{desc:"K_SERVICE_NOT_READY",action:"tryNext"},[Br.K_SERVICE_TOO_HEAVY]:{desc:"K_SERVICE_TOO_HEAVY",action:"tryNext"},[Br.K_UID_BANNED]:{desc:"K_UID_BANNED",action:"failed"},[Br.K_IP_BANNED]:{desc:"K_IP_BANNED",action:"failed"},[Br.DATASTREAM2_NOT_AVAILABLE]:{desc:"DATASTREAM2_NOT_AVAILABLE",action:"quit"},[Br.K_AUTO_REBALANCE]:{desc:"k_AUTO_REBALANCE",action:"recover"},[Br.K_VOS_FALLBACK]:{desc:"K_VOS_FALLBACK",action:"tryNext"},[Br.ERR_INVALID_VENDOR_KEY]:{desc:"ERR_INVALID_VENDOR_KEY",action:"failed"},[Br.ERR_INVALID_CHANNEL_NAME]:{desc:"ERR_INVALID_CHANNEL_NAME",action:"failed"},[Br.WARN_NO_AVAILABLE_CHANNEL]:{desc:"WARN_NO_AVAILABLE_CHANNEL",action:"failed"},[Br.WARN_LOOKUP_CHANNEL_TIMEOUT]:{desc:"WARN_LOOKUP_CHANNEL_TIMEOUT",action:"tryNext"},[Br.WARN_LOOKUP_CHANNEL_REJECTED]:{desc:"WARN_LOOKUP_CHANNEL_REJECTED",action:"failed"},[Br.WARN_OPEN_CHANNEL_TIMEOUT]:{desc:"WARN_OPEN_CHANNEL_TIMEOUT",action:"tryNext"},[Br.WARN_OPEN_CHANNEL_REJECTED]:{desc:"WARN_OPEN_CHANNEL_REJECTED",action:"failed"},[Br.WARN_REQUEST_DEFERRED]:{desc:"WARN_REQUEST_DEFERRED",action:"failed"},[Br.ERR_DYNAMIC_KEY_TIMEOUT]:{desc:"ERR_DYNAMIC_KEY_TIMEOUT",action:"failed"},[Br.ERR_NO_AUTHORIZED]:{desc:"ERR_NO_AUTHORIZED",action:"failed"},[Br.ERR_VOM_SERVICE_UNAVAILABLE]:{desc:"ERR_VOM_SERVICE_UNAVAILABLE",action:"tryNext"},[Br.ERR_NO_CHANNEL_AVAILABLE_CODE]:{desc:"ERR_NO_CHANNEL_AVAILABLE_CODE",action:"failed"},[Br.ERR_MASTER_VOCS_UNAVAILABLE]:{desc:"ERR_MASTER_VOCS_UNAVAILABLE",action:"tryNext"},[Br.ERR_INTERNAL_ERROR]:{desc:"ERR_INTERNAL_ERROR",action:"tryNext"},[Br.ERR_NO_ACTIVE_STATUS]:{desc:"ERR_NO_ACTIVE_STATUS",action:"failed"},[Br.ERR_INVALID_UID]:{desc:"ERR_INVALID_UID",action:"failed"},[Br.ERR_DYNAMIC_KEY_EXPIRED]:{desc:"ERR_DYNAMIC_KEY_EXPIRED",action:"failed"},[Br.ERR_STATIC_USE_DYANMIC_KE]:{desc:"ERR_STATIC_USE_DYANMIC_KE",action:"failed"},[Br.ERR_DYNAMIC_USE_STATIC_KE]:{desc:"ERR_DYNAMIC_USE_STATIC_KE",action:"failed"},[Br.ERR_NO_VOCS_AVAILABLE]:{desc:"ERR_NO_VOCS_AVAILABLE",action:"tryNext"},[Br.ERR_NO_VOS_AVAILABLE]:{desc:"ERR_NO_VOS_AVAILABLE",action:"tryNext"},[Br.ERR_JOIN_CHANNEL_TIMEOUT]:{desc:"ERR_JOIN_CHANNEL_TIMEOUT",action:"tryNext"},[Br.ERR_JOIN_BY_MULTI_IP]:{desc:"ERR_JOIN_BY_MULTI_IP",action:"recover"},[Br.ERR_NOT_JOINED]:{desc:"ERR_NOT_JOINED",action:"failed"},[Br.ERR_REPEAT_JOIN_REQUEST]:{desc:"ERR_REPEAT_JOIN_REQUEST",action:"quit"},[Br.ERR_REPEAT_JOIN_CHANNEL]:{desc:"ERR_REPEAT_JOIN_CHANNEL",action:"quit"},[Br.ERR_INVALID_STRINGUID]:{desc:"ERR_INVALID_STRINGUID",action:"failed"},[Br.ERR_TOO_MANY_USERS]:{desc:"ERR_TOO_MANY_USERS",action:"tryNext"},[Br.ERR_SET_CLIENT_ROLE_TIMEOUT]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[Br.ERR_SET_CLIENT_ROLE_NO_PERMISSION]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[Br.ERR_SET_CLIENT_ROLE_ALREADY_IN_USE]:{desc:"ERR_SET_CLIENT_ROLE_ALREADY_IN_USE",action:"success"},[Br.ERR_PUBLISH_REQUEST_INVALID]:{desc:"ERR_PUBLISH_REQUEST_INVALID",action:"failed"},[Br.ERR_SUBSCRIBE_REQUEST_INVALID]:{desc:"ERR_SUBSCRIBE_REQUEST_INVALID",action:"failed"},[Br.ERR_NOT_SUPPORTED_MESSAGE]:{desc:"ERR_NOT_SUPPORTED_MESSAGE",action:"failed"},[Br.ERR_ILLEAGAL_PLUGIN]:{desc:"ERR_ILLEAGAL_PLUGIN",action:"failed"},[Br.ILLEGAL_CLIENT_ROLE_LEVEL]:{desc:"ILLEGAL_CLIENT_ROLE_LEVEL",action:"failed"},[Br.ERR_REJOIN_TOKEN_INVALID]:{desc:"ERR_REJOIN_TOKEN_INVALID",action:"failed"},[Br.ERR_REJOIN_USER_NOT_JOINED]:{desc:"ERR_REJOIN_NOT_JOINED",action:"failed"},[Br.ERR_INVALID_OPTIONAL_INFO]:{desc:"ERR_INVALID_OPTIONAL_INFO",action:"quit"},[Br.ERR_TEST_RECOVER]:{desc:"ERR_TEST_RECOVER",action:"recover"},[Br.ERR_TEST_TRYNEXT]:{desc:"ERR_TEST_TRYNEXT",action:"recover"},[Br.ERR_TEST_RETRY]:{desc:"ERR_TEST_RETRY",action:"recover"},[Br.ILLEGAL_AES_PASSWORD]:{desc:"ERR_TEST_RETRY",action:"failed"},[Br.ERR_TOO_MANY_BROADCASTERS]:{desc:"ERR_TOO_MANY_BROADCASTERS",action:"failed"},[Br.ERR_TOO_MANY_SUBSCRIBERS]:{desc:"ERR_TOO_MANY_SUBSCRIBERS",action:"failed"},[Br.ERR_LICENSE_ILLEGAL]:{desc:"ERR_LICENSE_ILLEGAL",action:"quit"},[Br.ERR_LICENSE_MISSING]:{desc:"ERR_LICENSE_MISSING",action:"quit"},[Br.ERR_LICENSE_EXPIRED]:{desc:"ERR_LICENSE_EXPIRED",action:"quit"},[Br.ERR_LICENSE_MINUTES_EXCEEDED]:{desc:"ERR_LICENSE_MINUTES_EXCEEDED",action:"quit"},[Br.ERR_LICENSE_PERIOD_INVALID]:{desc:"ERR_LICENSE_PERIOD_INVALID",action:"quit"},[Br.ERR_LICENSE_MULTIPLE_SDK_SERVICE]:{desc:"ERR_LICENSE_MULTIPLE_SDK_SERVICE",action:"quit"}};function m1(t){return A7[t]||{desc:"UNKNOWN_ERROR_".concat(t),action:"failed"}}function Vy(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function BN(t){for(var s=1;s{s.onopen=null,s.onclose=null,s.onmessage=null,s.close()}),this.websockets.length=0}clearTimeout(){this.forceCloseTimeout&&clearTimeout(this.forceCloseTimeout),this.try443PortTimeout&&clearTimeout(this.try443PortTimeout),this.forceCloseTimeout=null,this.try443PortTimeout=null}logger(){var s;const c=Date.now()-this.startTime;for(var u=arguments.length,h=new Array(u),_=0;_{var H;return Et(H=s.host).call(H,U)});Q||(this.useDoubleDomain=!1);const T=[];if(this.useDoubleDomain)h.forEach(U=>{T.push(c_(BN(BN({},s),{},{host:s.host.replace(Q,U)}),c))});else{const U=BN({},s);if(c&&Q){const H=h.find($=>$!==Q);H&&(U.host=U.host.replace(Q,H))}T.push(c_(U,c))}try{T.forEach(U=>{const H=new WebSocket(U);H.binaryType="arraybuffer",B.push(H),this.logger("ws is connecting:",H.url)})}catch(U){if(this.logger("ws create failed"),B.forEach(H=>H.close()),B.length=0,this.useDoubleDomain)return this.useDoubleDomain=!1,this.createWebSocket(s,c,u);if(!c&&Number(s.port)!==443)return this.createWebSocket(s,!0,u);throw new qe(Ce.WS_ERR,"init websocket failed! Error: ".concat(U.toString()))}const D=s2();this.store&&this.store.recordJoinChannelService({urls:B.map(U=>U.url),service:"gateway"},this.recordIndex),B.forEach(U=>{U.onopen=()=>{this.logger("onopen: ws ".concat(U.url," open cost ").concat(Date.now()-_,"ms")),this.websockets.forEach(H=>{H!==U&&(H.onopen=null,H.onclose=null,H.onmessage=null,H.close(),this.logger("close backup websocket: ".concat(H.url)))}),this.websockets.length=0,D.resolve(U)},U.onclose=H=>{this.logger("onclose: ws ".concat(U.url," closed cost ").concat(Date.now()-_,"ms state: ").concat(U.readyState));const $=B.every(Z=>Z.readyState===WebSocket.CLOSED||Z.readyState===WebSocket.CLOSING);this.logger("".concat(c?"443":"47xx"," websocket closed, all failed: ").concat($)),$&&(c||this.isTry443PortFailed||this.useProxy)?(this.logger("onclose: all websocket is closed, ".concat(H.reason)),D.reject({code:H.code,reason:_h.A_ROUND_WS_FAILED})):!c&&$&&!this.isNormalPortFailed&&this.try443PortTimeout&&(this.logger("all 47xx websocket is closed, try 443 port"),this.clearTimeout(),P()),c?this.isTry443PortFailed=$:this.isNormalPortFailed=$},U.onmessage=H=>this.logger("".concat(U.url," onmessage: ").concat(H.data))}),this.websockets.push(...B);const O=()=>{this.websockets.forEach(U=>U.readyState!==WebSocket.OPEN&&U.close())},P=()=>{if(D.isResolved)return O();Qi().os===ns.MAC_OS&&Ln()&&O(),this.createWebSocket(s,!0,!0).then(U=>{D.resolve(U)}).catch(U=>{this.isNormalPortFailed&&D.reject(U),this.logger("try 443 port to create ws failed")}),this.forceCloseTimeout=window.setTimeout(()=>{this.logger("5s timeout close un-opens, isWebsocket created: ",D.isResolved),this.forceCloseTimeout=null,O()},this.forceCloseWSDuration)};return u||(()=>{if(c||this.useProxy)return this.logger("add 5s timeout at ".concat(c?"try-443":"proxy"," condition")),this.forceCloseTimeout=window.setTimeout(()=>{this.forceCloseTimeout=null,O()},this.forceCloseWSDuration);this.try443PortTimeout=window.setTimeout(()=>{this.logger("2s timeout, isWebsocket created: ",D.isResolved),this.try443PortTimeout=null,P()},this.try443PortDuration)})(),D.promise}chooseBestWebsocket(s,c,u,h){return this.useDoubleDomain=!!c,typeof s=="string"&&(s=function(_){let B,Q,T;var D=ir(_.match(c7)||[],4);if(B=D[1],Q=D[2],T=D[3],!B){var O=ir(_.match(l7)||[],3);Q=O[1],T=O[2]}if(!Q||!T){var P=ir(_.match(d7)||[],3);Q=P[1],T=P[2]}return Q&&T||(Q=ir(_.match(SN)||[],2)[1]),Q||J.warning("un-destructible url: ",_),{proxy:B,host:Q,port:T||"443"}}(s)),this.recordIndex=h,this.useProxy=!!s.proxy,u&&this.useProxy&&(J.warn("cannot use 443 only when use proxy"),u=!1),this.createWebSocket(s,!!u,!1).finally(()=>this.clearTimeout())}}function u7(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}class x2 extends Cn{get url(){return this.websocket&&this.websocket.url||this._websocketUrl}get reconnectMode(){return this._reconnectMode}set reconnectMode(s){var c;Et(c=["tryNext","recover"]).call(c,s)&&this.resetReconnectCount(s),this._reconnectMode=s}get state(){return this._state}set state(s){s!==this._state&&(this._state=s,this._state==="reconnecting"?this.emit(jr.RECONNECTING,this.reconnectReason):this._state==="connected"?this.emit(jr.CONNECTED):this._state==="closed"?this.emit(jr.CLOSED):this._state==="failed"&&this.emit(jr.FAILED))}resetReconnectCount(s){J.debug("websocket reset reconnect count, reason: "+s),this.reconnectCount=0}constructor(s,c){let u=arguments.length>2&&arguments[2]!==void 0&&arguments[2],h=arguments.length>3&&arguments[3]!==void 0&&arguments[3],_=arguments.length>4&&arguments[4]!==void 0&&arguments[4],B=arguments.length>5?arguments[5]:void 0;super(),ae(this,"_websocketUrl",null),ae(this,"connectionID",0),ae(this,"currentURLIndex",0),ae(this,"urls",[]),ae(this,"_reconnectMode","tryNext"),ae(this,"reconnectReason",void 0),ae(this,"_initMutex",void 0),ae(this,"name",void 0),ae(this,"_state","closed"),ae(this,"reconnectInterrupter",void 0),ae(this,"websocket",void 0),ae(this,"retryConfig",void 0),ae(this,"reconnectCount",0),ae(this,"forceCloseTimeout",5e3),ae(this,"onlineReconnectListener",void 0),ae(this,"useCompress",void 0),ae(this,"tryDoubleDomain",!1),ae(this,"use443PortOnly",!1),ae(this,"wsInflateLength",0),ae(this,"wsDeflateLength",0),ae(this,"closeEstablishingWs",()=>{}),ae(this,"store",void 0),ae(this,"joinGatewayRecordIndex",void 0),this.store=B,this.name=s,this.retryConfig=function(P){for(var U=1;U{P!==U&&(this.resetReconnectCount("network state change: ".concat(U," -> ").concat(P)),P===tA.ONLINE?(this.retryConfig.timeout=D,this.retryConfig.timeoutFactor=O):(this.retryConfig.timeout=Q,this.retryConfig.timeoutFactor=T))})}getConnection(){return this.websocket||void 0}async init(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const u=await this._initMutex.lock();this._reconnectMode="tryNext",this.forceCloseTimeout=c,this.urls=s,this.state="connecting";try{var h;const _=s2(),B=this.urls[this.currentURLIndex];(h=this.store)===null||h===void 0||h.beforeConnect(),(function(Q){return!(Gf()||de("USE_NEW_TOKEN")||!de("ENABLE_PREALLOC_PC")&&(Q==null||!Q.autoSubscribe||de("FORCE_DISABLE_AUTO_SUB")))}(this.store)||de("ENABLE_JOIN_V4"))&&this.emit(fs.PRE_CONNECT_PC),this.createWebSocketConnection(B).then(_.resolve).catch(_.reject),this.once(jr.CLOSED,()=>{_.reject(new tt(Ce.WS_DISCONNECT))}),this.once(jr.CONNECTED,_.resolve),await _.promise}catch{}finally{u()}}close(s,c){if(this.currentURLIndex=0,this.resetReconnectCount("close"),this.reconnectInterrupter&&this.reconnectInterrupter(),this.websocket){this.websocket.onclose=null,this.websocket.onopen=null,this.websocket.onmessage=null;const u=this.websocket;c?setTimeout(()=>u.close(),500):u.close(),this.websocket=void 0,this._websocketUrl=null}this.state=s?"failed":"closed",this.closeEstablishingWs&&this.closeEstablishingWs()}reconnect(s,c){if(!this.websocket)return void J.warning("[".concat(this.name,"] can not reconnect, no websocket"));s!==void 0&&(this.reconnectMode=s),J.debug("[".concat(this.name,"] reconnect is triggered initiative")),typeof this.joinGatewayRecordIndex=="number"&&this.store&&this.store.recordJoinChannelService({status:"error",errors:[new Error(c)]},this.joinGatewayRecordIndex);const u=this.websocket.onclose;this.websocket.onclose=null,this.websocket.close(),u&&u.bind(this.websocket)({code:9999,reason:c})}sendMessage(s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this.websocket||this.websocket.readyState!==WebSocket.OPEN)throw new tt(Ce.WS_ABORT,"websocket is not ready");try{c||(s=JSON.stringify(s)),this.websocket.send(s)}catch(u){throw new tt(Ce.WS_ERR,"send websocket message error"+u.toString())}}setWsInflateData(s){this.wsDeflateLength=this.wsDeflateLength+s.originLength,this.wsInflateLength=this.wsInflateLength+s.compressedLength}getWsInflateData(){const s=this.wsInflateLength,c=this.wsDeflateLength;return this.clearWsInflateData(),{wsInflateLength:s,wsDeflateLength:c}}clearWsInflateData(){this.wsInflateLength=0,this.wsDeflateLength=0}async createWebSocketConnection(s){var c;const u=s2();this.connectionID+=1,this.joinGatewayRecordIndex=void 0;const h=O=>{var P;(P=this.store)===null||P===void 0||P.signalChannelOpen(),J.debug("[".concat(this.name,"] websocket opened:"),O),this.reconnectMode="retry",this.state="connected",this.resetReconnectCount("opened"),u.resolve()},_=async O=>{var P;if(J.debug("[".concat(this.name,"] websocket close ").concat((P=this.websocket)===null||P===void 0?void 0:P.url,", code: ").concat(O.code,", reason: ").concat(O.reason,", current mode: ").concat(this.reconnectMode)),this.reconnectCount>=this.retryConfig.maxRetryCount)u.reject(new tt(Ce.WS_DISCONNECT,"websocket close: ".concat(O.code))),this.close();else{this.state==="connected"&&(this.reconnectReason=O.reason,this.state="reconnecting");const U=q1(this,jr.WILL_RECONNECT,this.reconnectMode,O.reason)||this.reconnectMode,H=await this.reconnectWithAction(U);if(this.state==="closed")return void J.debug("[".concat(this.connectionID,"] ws is closed, no need to reconnect"));if(!H)return u.reject(new tt(Ce.WS_DISCONNECT,"websocket reconnect failed: ".concat(O.code))),this.close(!0);u.resolve()}},B=O=>{this.emit(jr.ON_MESSAGE,O)},Q=O=>{J.warn("[".concat(this.connectionID,"] ws open error ").concat(O))};this.websocket&&(this.websocket.onclose=null,this.websocket.close()),de("GATEWAY_WSS_ADDRESS")&&this.name.startsWith("gateway")&&(s=de("GATEWAY_WSS_ADDRESS")),J.debug("[".concat(this.name,"] start connect, url:"),s);const T=(c=this.store)===null||c===void 0?void 0:c.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"});try{var D;this._websocketUrl=c_(s);const O=await this.chooseBestWebsocketConnection(s);this.websocket=O,h&&h(this.websocket.url),this.websocket.onclose=_,this.websocket.onmessage=B,this.websocket.onerror=Q,(D=this.store)===null||D===void 0||D.recordJoinChannelService({endTs:Date.now(),status:"success"},T),this.joinGatewayRecordIndex=T}catch(O){const P=this.state==="closed",U=O instanceof tt,H=U&&O.code===Ce.WS_ABORT,$=U&&O.code===Ce.WS_ERR,Z=U?O.message:O&&(O.reason||O.toString());J.warning("[choose-best-ws] chooseBestWebsocket error: ".concat(Z)),this.store&&this.store.recordJoinChannelService({endTs:Date.now(),status:H?"aborted":"error",errors:[O]},T),P||$?(u.reject(P?new tt(Ce.WS_DISCONNECT,"websocket is closed: ".concat(Z)):new tt(Ce.WS_ERR,"init websocket failed: ".concat(Z))),$&&J.error("[".concat(this.name,"] init websocket failed: ").concat(Z))):_&&_(O)}return u.promise}async reconnectWithAction(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this.reconnectCount>=this.retryConfig.maxRetryCount||this.urls.length===0||this.state==="closed")return!1;J.warning("[choose-best-ws] action: =>",s),this.onlineReconnectListener||ki.isOnline||!ki.onlineWaiter||(this.onlineReconnectListener=ki.onlineWaiter.then(()=>{this.onlineReconnectListener=void 0}));let u=!0;if(this.reconnectInterrupter=()=>u=!1,c){const B=Lf(this.reconnectCount,this.retryConfig);J.debug("[".concat(this.name,"] wait ").concat(B,"ms to reconnect websocket, mode: ").concat(s)),await Ut.race([so(B),this.onlineReconnectListener||new Ut(()=>{})])}if(this._state==="closed"||!u)return!1;this.reconnectCount+=1;const h=async(B,Q)=>{this.emit(jr.RECONNECT_CREATE_CONNECTION,Q),await this.createWebSocketConnection(B)};try{if(s==="retry")await h(this.urls[this.currentURLIndex],s);else if(s==="tryNext"){if(this.currentURLIndex+=1,this.currentURLIndex>=this.urls.length)return this.reconnectWithAction("recover",!1);J.debug("[".concat(this.name,"] websocket url length: ").concat(this.urls.length," current index: ").concat(this.currentURLIndex)),await h(this.urls[this.currentURLIndex],s)}else s==="recover"&&(J.debug("[".concat(this.name,"] request new urls")),this.resetReconnectCount("recover mode"),this.urls=await $o(this,jr.REQUEST_NEW_URLS),this.currentURLIndex=0,await h(this.urls[this.currentURLIndex],s))}catch(B){var _;J.error("[".concat(this.name,"] reconnect failed ").concat(B&&B.toString()));const Q=B==null||(_=B.data)===null||_===void 0?void 0:_.desc;if(Array.isArray(Q)){if(Et(Q).call(Q,"dynamic key expired"))return this.emit(jr.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1;if(Et(Q).call(Q,"request downgrade fallback"))return this.emit(jr.ON_FALLBACK),!1}return this.reconnectWithAction(s,c)}return!0}}class Bh extends x2{constructor(s,c){super(s,c,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(s,c){const u=s2(),h=function(B,Q){return new RN(B,Q)}(this.forceCloseTimeout,this.store);this.closeEstablishingWs=()=>{J.debug("[choose-best-ws] close establishing websockets"),h.closeAllWebsockets(),u.reject(new tt(Ce.WS_ABORT,"choose best websocket aborted"))};const _=de("GATEWAY_DOMAINS");return J.debug("[choose-best-ws] currentDomain: ",s,", domains: ",_,"total: ".concat(this.urls.length),"current: ".concat(this.currentURLIndex+1)),h.chooseBestWebsocket(s,this.tryDoubleDomain,this.use443PortOnly,c).then(u.resolve).catch(u.reject),u.promise.finally(()=>{this.closeEstablishingWs=void 0})}}class Ug extends x2{constructor(s,c){super(s,c,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(s,c){return new Ut((u,h)=>{let _=!1;const B=[];this.closeEstablishingWs=()=>{J.debug("[choose-best-ws] close establishing websockets"),B.forEach($=>{$.onclose=null,$.onopen=null,$.onmessage=null,$.close()}),h(new tt(Ce.WS_ABORT,"choose best websocket aborted"))};const Q=de("GATEWAY_DOMAINS");let T;const D=s.indexOf("?h="),O=Q.find($=>D!==-1?Et(s).call(s,$,D):Et(s).call(s,$));J.debug("[choose-best-ws] currentDomain: ",O,", domains: ",Q);let P=!this.tryDoubleDomain||!O;if(!P&&O){var U;const $=Date.now();try{Q.forEach(Z=>{const te=D===-1?s.replace(O,Z):s.substr(0,D)+s.substr(D).replace(O,Z),se=new WebSocket(te);se.binaryType="arraybuffer",B.push(se),J.debug("[choose-best-ws] ws is connecting:",se.url)})}catch{for(J.debug("[choose-best-ws] ws create failed, fallback to single url"),B.forEach(te=>te.close());B.length;)B.pop();P=!0}(U=this.store)===null||U===void 0||U.recordJoinChannelService({urls:B.map(Z=>Z.url),service:"gateway"},c),B.forEach(Z=>{Z.onopen=()=>{if(_)return;const te=Date.now()-$;J.debug("[choose-best-ws] ws open cost ".concat(te,"ms")),B.filter(se=>se!==Z).forEach(se=>{J.debug("[choose-best-ws]close backup websocket: ".concat(se.url)),se.close()}),_=!0,u(Z)},Z.onclose=te=>{T=te,!_&&(B.find(se=>!(se.readyState===WebSocket.CLOSED||se.readyState===WebSocket.CLOSING))||(J.debug("[choose-best-ws] all websocket is closed"),_=!0,h(T)))},Z.onmessage=te=>{J.debug("[choose-best-ws]".concat(Z.url," onmessage: ").concat(te.data))}}),so(this.forceCloseTimeout).then(()=>{B.forEach(Z=>{Z.readyState!==WebSocket.OPEN&&Z.close()})})}if(P){var H;let $;J.debug("[choose-best-ws] use single url: ",s),(H=this.store)===null||H===void 0||H.recordJoinChannelService({urls:[s],service:"gateway"},c);try{$=new WebSocket(s),B.push($),$.binaryType="arraybuffer"}catch(Z){const te=new tt(Ce.WS_ERR,"init websocket failed! Error: ".concat(Z.toString()));return J.error("[".concat(this.name,"]").concat(te)),void h(te)}$.onopen=()=>{u($)},$.onclose=Z=>{h(Z)},$.onmessage=Z=>{J.debug("[choose-best-ws]".concat($.url," onmessage: ").concat(Z.data))},so(this.forceCloseTimeout).then(()=>{$&&$.readyState!==WebSocket.OPEN&&$.close()})}}).then(u=>(this.closeEstablishingWs=void 0,u)).catch(u=>{throw this.closeEstablishingWs=void 0,u})}}class yN extends Cn{get connectionState(){return this._connectionState}set connectionState(s){s!==this._connectionState&&(this._connectionState=s,s===Ci.CONNECTED?this.emit(er.WS_CONNECTED):s===Ci.RECONNECTING?this.emit(er.WS_RECONNECTING,this._websocketReconnectReason):s===Ci.CLOSED&&this.emit(er.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(s,c){super(),ae(this,"__name__","AgoraRTCSignal"),ae(this,"_disconnectedReason",void 0),ae(this,"_websocketReconnectReason",void 0),ae(this,"_connectionState",Ci.CLOSED),ae(this,"reconnectToken",void 0),ae(this,"websocket",void 0),ae(this,"openConnectionTime",void 0),ae(this,"clientId",void 0),ae(this,"lastMsgTime",Date.now()),ae(this,"uploadCache",[]),ae(this,"uploadCacheInterval",void 0),ae(this,"rttRolling",new VR(5)),ae(this,"pingpongTimer",void 0),ae(this,"wsInflateDataTimer",void 0),ae(this,"pingpongTimeoutCount",0),ae(this,"ortc",void 0),ae(this,"joinResponse",void 0),ae(this,"multiIpOption",void 0),ae(this,"initError",void 0),ae(this,"spec",void 0),ae(this,"store",void 0),ae(this,"onWebsocketMessage",u=>{if(u.data instanceof ArrayBuffer)return void this.emit(er.ON_BINARY_DATA,u.data);const h=JSON.parse(u.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(h,"_id")){const _="res-@".concat(h._id);this.emit(_,h._result,h._message)}else if(Object.prototype.hasOwnProperty.call(h,"_type")){if(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED)switch(h._message.error_code){case 14:this.close(mi.UID_BANNED);break;case 15:this.close(mi.IP_BANNED);break;case 16:this.close(mi.CHANNEL_BANNED)}if(h._type===Ur.ON_USER_LICENSE_BANNED)switch(h._message.error_code){case Br.ERR_LICENSE_MISSING:this.close(mi.LICENSE_MISSING);break;case Br.ERR_LICENSE_EXPIRED:this.close(mi.LICENSE_EXPIRED);break;case Br.ERR_LICENSE_MINUTES_EXCEEDED:this.close(mi.LICENSE_MINUTES_EXCEEDED);break;case Br.ERR_LICENSE_PERIOD_INVALID:this.close(mi.LICENSE_PERIOD_INVALID);break;case Br.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(mi.LICENSE_MULTIPLE_SDK_SERVICE);break;case Br.ERR_LICENSE_ILLEGAL:this.close(mi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=s.clientId,this.spec=s,this.store=c,this.websocket=new Bh("gateway-".concat(this.clientId),this.spec.retryConfig,!0,de("JOIN_GATEWAY_USE_DUAL_DOMAIN"),de("JOIN_GATEWAY_USE_443PORT_ONLY"),c),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Ci.CONNECTED&&this.reconnect("retry",Ss.OFFLINE)})}async request(s,c,u,h){const _=un(6,""),B={_id:_,_type:s,_message:c},Q=this.websocket.connectionID,T=()=>new Ut(($,Z)=>{if(this.connectionState===Ci.CONNECTED)return $();const te=()=>{this.off(er.WS_CLOSED,se),$()},se=()=>{this.off(er.WS_CONNECTED,te),Z(new qe(Ce.WS_ABORT))};this.once(er.WS_CONNECTED,te),this.once(er.WS_CLOSED,se),s!==ur.PUBLISH&&s!==ur.PUBLISH_DATASTREAM&&s!==ur.SUBSCRIBE&&s!==ur.SUBSCRIBE_DATASTREAM&&s!==ur.UNSUBSCRIBE&&s!==ur.UNSUBSCRIBE_DATASTREAM&&s!==ur.UNPUBLISH&&s!==ur.UNPUBLISH_DATASTREAM&&s!==ur.CONTROL&&s!==ur.RESTART_ICE||this.once(er.DISCONNECT_P2P,()=>{Z(new qe(Ce.DISCONNECT_P2P))}),s!==ur.PUBLISH&&s!==ur.RESTART_ICE||this.once(er.ABORT_P2P_EXECUTION,()=>{Z(new qe(Ce.DISCONNECT_P2P))})});if(this.connectionState!==Ci.CONNECTING&&this.connectionState!==Ci.RECONNECTING||s===ur.JOIN||s===ur.REJOIN||await T(),this.websocket.sendMessage(B,!0),h)return;const D=new Ut(($,Z)=>{let te=!1;const se=(me,Qe)=>{te=!0,$({isSuccess:me==="success",message:Qe||{}}),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.emit(er.REQUEST_SUCCESS,s,c)};this.once("res-@".concat(_),se);const ge=()=>{Z(new qe(Ce.WS_ABORT,"type: ".concat(s))),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.off("res-@".concat(_),se)};this.once(er.WS_CLOSED,ge),this.once(er.WS_RECONNECTING,ge),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==Q||te||(J.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(s)),this.emit(er.REQUEST_TIMEOUT,s,c))})});let O=null;try{O=await D}catch($){if(this.connectionState===Ci.CLOSED||s===ur.LEAVE)throw new qe(Ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||u?$.throw():s===ur.JOIN||s===ur.REJOIN?null:(await T(),await this.request(s,c))}if(O.isSuccess)return O.message;const P=Number(O.message.error_code||O.message.code),U=m1(P),H=new qe(Ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(O.message.error_str),{code:P,data:O.message,desc:U.desc});return U.action==="success"?O.message:(J.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(s,", error_code: ").concat(P,", message: ").concat(U.desc,", action: ").concat(U.action)),P===Br.ERR_TOO_MANY_BROADCASTERS?((s===ur.JOIN||s===ur.REJOIN)&&(this.initError=H,this.close()),H.throw()):U.action==="failed"?H.throw():U.action==="quit"?(this.initError=H,this.close(),H.throw()):(P===Br.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=O.message.option,J.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Ss.MULTI_IP)):this.reconnect(U.action,Ss.SERVER_ERROR),s===ur.JOIN||s===ur.REJOIN?null:await this.request(s,c)))}waitMessage(s,c){return new Ut(u=>{const h=_=>{(!c||c(_))&&(this.off(s,h),u(_))};this.on(s,h)})}uploadWRTCStats(s){if(!this.store.sessionId)return void J.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));const c={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:s};this.upload(Mu.WRTC_STATS,c)}upload(s,c){const u={_type:s,_message:c};try{this.websocket.sendMessage(u)}catch{const _=de("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(u),this.uploadCache.length>_&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Ci.CONNECTED)return;const B=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(B._type,B._message)},de("UPLOAD_CACHE_INTERVAL")||2e3))}}send(s,c){const u={_type:s,_message:c};this.websocket.sendMessage(u)}init(s){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ut((c,u)=>{this.once(er.WS_CONNECTED,()=>c(this.joinResponse)),this.once(er.WS_CLOSED,h=>u(this.initError||new qe(Ce.WS_ABORT,h))),this.connectionState=Ci.CONNECTING,this.websocket.init(s).catch(u),this.wsInflateDataTimer&&window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=window.setInterval(()=>{this.handleWsInflateData()},2e4)})}close(s){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.wsInflateDataTimer&&(this.handleWsInflateData(),window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._disconnectedReason=s||mi.LEAVE,this.connectionState=Ci.CLOSED,J.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close()}async join(){if(!this.joinResponse){this.emit(er.ABORT_P2P_EXECUTION),this.store.signalConnected();const s=await $o(this,er.REQUEST_JOIN_INFO);this.store.joinReq();let c=await $o(this,er.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE);if(c){J.debug("join response from pre join response");const u=await this.request(ur.JOIN,s);u&&"ortc"in u&&(c=u)}else J.debug("join response from request join_v3"),c=await this.request(ur.JOIN,s);if(this.ortc=s==null?void 0:s.ortc,this.store.joinRep(),!c)return this.emit(er.REPORT_JOIN_GATEWAY,_h.TIMEOUT,this.url||""),!1;this.joinResponse=c,this.emit(er.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}async rejoin(){if(!this.reconnectToken)throw new qe(Ce.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");const s=nh(this,er.REQUEST_REJOIN_INFO);s.token=this.reconnectToken;const c=await this.request(ur.REJOIN,s);return!!c&&(this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),c.peers&&c.peers.forEach(u=>{this.emit(Ur.ON_USER_ONLINE,{uid:u.uid}),u.audio&&this.emit(Ur.ON_ADD_AUDIO_STREAM,{uid:u.uid,uint_id:u.uint_id,audio:!0,ssrcId:u.audio_ssrc}),u.video&&this.emit(Ur.ON_ADD_VIDEO_STREAM,{uid:u.uid,uint_id:u.uint_id,video:!0,ssrcId:u.video_ssrc}),u.audio_mute?this.emit(Ur.MUTE_AUDIO,{uid:u.uid}):this.emit(Ur.UNMUTE_AUDIO,{uid:u.uid}),u.video_mute?this.emit(Ur.MUTE_VIDEO,{uid:u.uid}):this.emit(Ur.UNMUTE_VIDEO,{uid:u.uid}),u.audio_enable_local?this.emit(Ur.ENABLE_LOCAL_AUDIO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_AUDIO,{uid:u.uid}),u.video_enable_local?this.emit(Ur.ENABLE_LOCAL_VIDEO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_VIDEO,{uid:u.uid}),u.audio||u.video||this.emit(Ur.ON_REMOVE_STREAM,{uid:u.uid,uint_id:u.uint_id})}),!0)}reconnect(s,c){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(s,c)}async downgradeCodec(s){if(!this.ortc)return!1;const c={downgrade_codec:s,ortc:this.ortc};return!!await this.request(ur.DOWNGRADE_CODEC,c)}handleNotification(s){J.debug("[".concat(this.clientId,"] receive notification: "),s);const c=m1(s.code);if(s.code===28&&"detail"in s&&(J.info("[".concat(this.clientId,"] receive recover notification: "),s.detail),this.emit(er.RECOVER_NOTIFICATION,s.detail)),c.action!=="success"){if(c.action!=="failed")return c.action==="quit"?s.code===Br.ERR_REPEAT_JOIN_CHANNEL&&de("IGNORE_UID_CHECK")?void this.close(mi.UID_CONFLICT):(c.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(mi.UID_BANNED),void this.close()):s.code===Br.K_VOS_FALLBACK&&"detail"in s?(J.info("[".concat(this.clientId,"] receive vos fallback notification: "),s.detail),s.detail==="FALLBACKCN"&&de("ENABLE_QUALITY_FALLBACK")?void $o(this,er.VOS_FALLBACK_PROMISE,s.detail).then(()=>{this.reconnect("recover",c.desc)}).catch(u=>{J.debug("[".concat(this.clientId,"] cancel vos fallback cn, error: "),u)}):s.detail==="fallback_hls"&&de("ENABLE_FALLBACK_TO_HLS")?(this.emit(er.VOS_FALLBACK,s.detail),void this.close(mi.FALLBACK_TO_HLS)):this.reconnect(c.action,c.desc)):void this.reconnect(c.action,Ss.SERVER_ERROR);J.error("[".concat(this.clientId,"] ignore error: "),c.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;const s=de("PING_PONG_TIME_OUT"),c=Date.now();this.pingpongTimeoutCount>=s&&(J.warning("[".concat(this.clientId,"] PING-PONG Timeout. Last Socket Message: ").concat(c-this.lastMsgTime,"ms")),c-this.lastMsgTime>de("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",Ss.TIMEOUT):this.request(ur.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;const u=Date.now()-c;this.rttRolling.add(u),de("REPORT_STATS")&&this.send(ur.PING_BACK,{pingpongElapse:u})}).catch(u=>{})}handleWsInflateData(){const s=this.websocket.getWsInflateData(),c=s.wsInflateLength,u=s.wsDeflateLength;c!==0&&u!==0&&this.upload(Mu.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:u,ws_inflate_length:c})}handleWebsocketEvents(){this.websocket.on(jr.RECONNECT_CREATE_CONNECTION,s=>{this.emit(er.WS_RECONNECT_CREATE_CONNECTION,s)}),this.websocket.on(jr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(jr.CLOSED,()=>{this.connectionState=Ci.CLOSED}),this.websocket.on(jr.FAILED,()=>{this._disconnectedReason=mi.NETWORK_ERROR,this.connectionState=Ci.CLOSED}),this.websocket.on(jr.RECONNECTING,s=>{this._websocketReconnectReason=s,this.joinResponse=void 0,this.connectionState===Ci.CONNECTED?this.connectionState=Ci.RECONNECTING:this.connectionState=Ci.CONNECTING}),this.websocket.on(jr.WILL_RECONNECT,(s,c,u)=>{const h=nh(this,er.IS_P2P_DISCONNECTED),_=h||s!=="retry";h&&s==="retry"&&(J.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),s="tryNext",c=_h.P2P_DISCONNECTED),_&&(J.debug("".concat(this.clientId," will renewSession, reconnect mode: ").concat(s)),this.emit(er.REPORT_JOIN_GATEWAY,c||_h.UNKNOWN_REASON,this.url||""),this.reconnectToken=void 0,this.emit(er.DISCONNECT_P2P)),u(s)}),this.websocket.on(jr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(s=>{J.warning("[".concat(this.clientId,"] rejoin failed ").concat(s)),this.reconnect("tryNext",Ss.SERVER_ERROR)}):this.join().catch(s=>{if(this.emit(er.REPORT_JOIN_GATEWAY,s,this.url||""),s instanceof qe){if(s.code===Ce.UNEXPECTED_RESPONSE&&s.data.code===Br.ERR_NO_AUTHORIZED)return this.initError=new qe(Ce.TOKEN_EXPIRE,"dynamic key expired"),void this.close(mi.TOKEN_EXPIRE);J.error("[".concat(this.clientId,"] join gateway request failed"),s.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Ss.SERVER_ERROR):(this.initError=s,this.close())}})}),this.websocket.on(jr.REQUEST_NEW_URLS,(s,c)=>{$o(this,er.REQUEST_RECOVER,this.multiIpOption).then(s).catch(c)}),this.websocket.on(jr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(fs.PRE_CONNECT_PC,()=>{this.emit(er.PRE_CONNECT_PC)}),this.websocket.on(jr.ON_FALLBACK,()=>{de("ENABLE_FALLBACK_TO_HLS")&&this.emit(er.VOS_FALLBACK,"fallback_hls")})}}var XJ=W,Ky=db,QN=RegExp.prototype,g7=function(t){return t===QN||XJ(QN,t)?Ky(t):t.flags},hA=f(g7);function JC(t){let s=t.length;for(;--s>=0;)t[s]=0}const Hy=256,TN=286,l_=30,d_=15,Yy=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),qC=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),zJ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),E7=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Yd=new Array(576);JC(Yd);const aa=new Array(60);JC(aa);const WC=new Array(512);JC(WC);const jd=new Array(256);JC(jd);const F2=new Array(29);JC(F2);const u_=new Array(l_);function jy(t,s,c,u,h){this.static_tree=t,this.extra_bits=s,this.extra_base=c,this.elems=u,this.max_length=h,this.has_stree=t&&t.length}let xg,wN,Jy;function vN(t,s){this.dyn_tree=t,this.max_code=0,this.stat_desc=s}JC(u_);const g_=t=>t<256?WC[t]:WC[256+(t>>>7)],G2=(t,s)=>{t.pending_buf[t.pending++]=255&s,t.pending_buf[t.pending++]=s>>>8&255},i1=(t,s,c)=>{t.bi_valid>16-c?(t.bi_buf|=s<>16-t.bi_valid,t.bi_valid+=c-16):(t.bi_buf|=s<{i1(t,c[2*s],c[2*s+1])},DN=(t,s)=>{let c=0;do c|=1&t,t>>>=1,c<<=1;while(--s>0);return c>>>1},xu=(t,s,c)=>{const u=new Array(16);let h,_,B=0;for(h=1;h<=d_;h++)B=B+c[h-1]<<1,u[h]=B;for(_=0;_<=s;_++){let Q=t[2*_+1];Q!==0&&(t[2*_]=DN(u[Q]++,Q))}},H2=t=>{let s;for(s=0;s{t.bi_valid>8?G2(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},bN=(t,s,c,u)=>{const h=2*s,_=2*c;return t[h]{const u=t.heap[c];let h=c<<1;for(;h<=t.heap_len&&(h{let u,h,_,B,Q=0;if(t.sym_next!==0)do u=255&t.pending_buf[t.sym_buf+Q++],u+=(255&t.pending_buf[t.sym_buf+Q++])<<8,h=t.pending_buf[t.sym_buf+Q++],u===0?Jd(t,h,s):(_=jd[h],Jd(t,_+Hy+1,s),B=Yy[_],B!==0&&(h-=F2[_],i1(t,h,B)),u--,_=g_(u),Jd(t,_,c),B=qC[_],B!==0&&(u-=u_[_],i1(t,u,B)));while(Q{const c=s.dyn_tree,u=s.stat_desc.static_tree,h=s.stat_desc.has_stree,_=s.stat_desc.elems;let B,Q,T,D=-1;for(t.heap_len=0,t.heap_max=573,B=0;B<_;B++)c[2*B]!==0?(t.heap[++t.heap_len]=D=B,t.depth[B]=0):c[2*B+1]=0;for(;t.heap_len<2;)T=t.heap[++t.heap_len]=D<2?++D:0,c[2*T]=1,t.depth[T]=0,t.opt_len--,h&&(t.static_len-=u[2*T+1]);for(s.max_code=D,B=t.heap_len>>1;B>=1;B--)qy(t,c,B);T=_;do B=t.heap[1],t.heap[1]=t.heap[t.heap_len--],qy(t,c,1),Q=t.heap[1],t.heap[--t.heap_max]=B,t.heap[--t.heap_max]=Q,c[2*T]=c[2*B]+c[2*Q],t.depth[T]=(t.depth[B]>=t.depth[Q]?t.depth[B]:t.depth[Q])+1,c[2*B+1]=c[2*Q+1]=T,t.heap[1]=T++,qy(t,c,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((O,P)=>{const U=P.dyn_tree,H=P.max_code,$=P.stat_desc.static_tree,Z=P.stat_desc.has_stree,te=P.stat_desc.extra_bits,se=P.stat_desc.extra_base,ge=P.stat_desc.max_length;let me,Qe,Oe,we,Ne,et,st=0;for(we=0;we<=d_;we++)O.bl_count[we]=0;for(U[2*O.heap[O.heap_max]+1]=0,me=O.heap_max+1;me<573;me++)Qe=O.heap[me],we=U[2*U[2*Qe+1]+1]+1,we>ge&&(we=ge,st++),U[2*Qe+1]=we,Qe>H||(O.bl_count[we]++,Ne=0,Qe>=se&&(Ne=te[Qe-se]),et=U[2*Qe],O.opt_len+=et*(we+Ne),Z&&(O.static_len+=et*($[2*Qe+1]+Ne)));if(st!==0){do{for(we=ge-1;O.bl_count[we]===0;)we--;O.bl_count[we]--,O.bl_count[we+1]+=2,O.bl_count[ge]--,st-=2}while(st>0);for(we=ge;we!==0;we--)for(Qe=O.bl_count[we];Qe!==0;)Oe=O.heap[--me],Oe>H||(U[2*Oe+1]!==we&&(O.opt_len+=(we-U[2*Oe+1])*U[2*Oe],U[2*Oe+1]=we),Qe--)}})(t,s),xu(c,D,t.bl_count)},LN=(t,s,c)=>{let u,h,_=-1,B=s[1],Q=0,T=7,D=4;for(B===0&&(T=138,D=3),s[2*(c+1)+1]=65535,u=0;u<=c;u++)h=B,B=s[2*(u+1)+1],++Q{let u,h,_=-1,B=s[1],Q=0,T=7,D=4;for(B===0&&(T=138,D=3),u=0;u<=c;u++)if(h=B,B=s[2*(u+1)+1],!(++Q{i1(t,0+(u?1:0),3),E_(t),G2(t,c),G2(t,~c),c&&t.pending_buf.set(t.window.subarray(s,s+c),t.pending),t.pending+=c};var h7=t=>{MN||((()=>{let s,c,u,h,_;const B=new Array(16);for(u=0,h=0;h<28;h++)for(F2[h]=u,s=0;s<1<>=7;h{let h,_,B=0;t.level>0?(t.strm.data_type===2&&(t.strm.data_type=(Q=>{let T,D=4093624447;for(T=0;T<=31;T++,D>>>=1)if(1&D&&Q.dyn_ltree[2*T]!==0)return 0;if(Q.dyn_ltree[18]!==0||Q.dyn_ltree[20]!==0||Q.dyn_ltree[26]!==0)return 1;for(T=32;T{let T;for(LN(Q,Q.dyn_ltree,Q.l_desc.max_code),LN(Q,Q.dyn_dtree,Q.d_desc.max_code),ON(Q,Q.bl_desc),T=18;T>=3&&Q.bl_tree[2*E7[T]+1]===0;T--);return Q.opt_len+=3*(T+1)+5+5+4,T})(t),h=t.opt_len+3+7>>>3,_=t.static_len+3+7>>>3,_<=h&&(h=_)):h=_=c+5,c+4<=h&&s!==-1?h_(t,s,c,u):t.strategy===4||_===h?(i1(t,2+(u?1:0),3),NN(t,Yd,aa)):(i1(t,4+(u?1:0),3),((Q,T,D,O)=>{let P;for(i1(Q,T-257,5),i1(Q,D-1,5),i1(Q,O-4,4),P=0;P(t.pending_buf[t.sym_buf+t.sym_next++]=s,t.pending_buf[t.sym_buf+t.sym_next++]=s>>8,t.pending_buf[t.sym_buf+t.sym_next++]=c,s===0?t.dyn_ltree[2*c]++:(t.matches++,s--,t.dyn_ltree[2*(jd[c]+Hy+1)]++,t.dyn_dtree[2*g_(s)]++),t.sym_next===t.sym_end),kN=t=>{i1(t,2,3),Jd(t,256,Yd),(s=>{s.bi_valid===16?(G2(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)})(t)},j2={_tr_init:h7,_tr_stored_block:h_,_tr_flush_block:XC,_tr_tally:$J,_tr_align:kN},I_=(t,s,c,u)=>{let h=65535&t|0,_=t>>>16&65535|0,B=0;for(;c!==0;){B=c>2e3?2e3:c,c-=B;do h=h+s[u++]|0,_=_+h|0;while(--B);h%=65521,_%=65521}return h|_<<16|0};const C_=new Uint32Array((()=>{let t,s=[];for(var c=0;c<256;c++){t=c;for(var u=0;u<8;u++)t=1&t?3988292384^t>>>1:t>>>1;s[c]=t}return s})());var nA=(t,s,c,u)=>{const h=C_,_=u+c;t^=-1;for(let B=u;B<_;B++)t=t>>>8^h[255&(t^s[B])];return-1^t},Fg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},fr={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_UNKNOWN:2,Z_DEFLATED:8};const I7=j2._tr_init,_l=j2._tr_stored_block,Gc=j2._tr_flush_block,_a=j2._tr_tally,PN=j2._tr_align,Gg=fr.Z_NO_FLUSH,qd=fr.Z_PARTIAL_FLUSH,Wr=fr.Z_FULL_FLUSH,yo=fr.Z_FINISH,ma=fr.Z_BLOCK,Ua=fr.Z_OK,Xy=fr.Z_STREAM_END,B1=fr.Z_STREAM_ERROR,zy=fr.Z_DATA_ERROR,W2=fr.Z_BUF_ERROR,ZJ=fr.Z_DEFAULT_COMPRESSION,wr=fr.Z_FILTERED,p_=fr.Z_HUFFMAN_ONLY,C7=fr.Z_RLE,p7=fr.Z_FIXED,tq=fr.Z_DEFAULT_STRATEGY,$y=fr.Z_UNKNOWN,Vg=fr.Z_DEFLATED,Fu=286,UN=30,f7=19,_7=2*Fu+1,Di=15,Sh=258,IA=262,z2=42,Gu=113,Wd=666,Aa=(t,s)=>(t.msg=Fg[s],s),xN=t=>2*t-(t>4?9:0),Kg=t=>{let s=t.length;for(;--s>=0;)t[s]=0},rq=t=>{let s,c,u,h=t.w_size;s=t.hash_size,u=s;do c=t.head[--u],t.head[u]=c>=h?c-h:0;while(--s);s=h,u=s;do c=t.prev[--u],t.prev[u]=c>=h?c-h:0;while(--s)};let Rh=(t,s,c)=>(s<{const s=t.state;let c=s.pending;c>t.avail_out&&(c=t.avail_out),c!==0&&(t.output.set(s.pending_buf.subarray(s.pending_out,s.pending_out+c),t.next_out),t.next_out+=c,s.pending_out+=c,t.total_out+=c,t.avail_out-=c,s.pending-=c,s.pending===0&&(s.pending_out=0))},S1=(t,s)=>{Gc(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,s),t.block_start=t.strstart,oc(t.strm)},Jo=(t,s)=>{t.pending_buf[t.pending++]=s},zC=(t,s)=>{t.pending_buf[t.pending++]=s>>>8&255,t.pending_buf[t.pending++]=255&s},GN=(t,s,c,u)=>{let h=t.avail_in;return h>u&&(h=u),h===0?0:(t.avail_in-=h,s.set(t.input.subarray(t.next_in,t.next_in+h),c),t.state.wrap===1?t.adler=I_(t.adler,s,h,c):t.state.wrap===2&&(t.adler=nA(t.adler,s,h,c)),t.next_in+=h,t.total_in+=h,h)},m7=(t,s)=>{let c,u,h=t.max_chain_length,_=t.strstart,B=t.prev_length,Q=t.nice_match;const T=t.strstart>t.w_size-IA?t.strstart-(t.w_size-IA):0,D=t.window,O=t.w_mask,P=t.prev,U=t.strstart+Sh;let H=D[_+B-1],$=D[_+B];t.prev_length>=t.good_match&&(h>>=2),Q>t.lookahead&&(Q=t.lookahead);do if(c=s,D[c+B]===$&&D[c+B-1]===H&&D[c]===D[_]&&D[++c]===D[_+1]){_+=2,c++;do;while(D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&_B){if(t.match_start=s,B=u,u>=Q)break;H=D[_+B-1],$=D[_+B]}}while((s=P[s&O])>T&&--h!=0);return B<=t.lookahead?B:t.lookahead},$2=t=>{const s=t.w_size;let c,u,h;do{if(u=t.window_size-t.lookahead-t.strstart,t.strstart>=s+(s-IA)&&(t.window.set(t.window.subarray(s,s+s-u),0),t.match_start-=s,t.strstart-=s,t.block_start-=s,t.insert>t.strstart&&(t.insert=t.strstart),rq(t),u+=s),t.strm.avail_in===0)break;if(c=GN(t.strm,t.window,t.strstart+t.lookahead,u),t.lookahead+=c,t.lookahead+t.insert>=3)for(h=t.strstart-t.insert,t.ins_h=t.window[h],t.ins_h=Rh(t,t.ins_h,t.window[h+1]);t.insert&&(t.ins_h=Rh(t,t.ins_h,t.window[h+3-1]),t.prev[h&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=h,h++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let c,u,h,_=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,B=0,Q=t.strm.avail_in;do{if(c=65535,h=t.bi_valid+42>>3,t.strm.avail_outu+t.strm.avail_in&&(c=u+t.strm.avail_in),c>h&&(c=h),c<_&&(c===0&&s!==yo||s===Gg||c!==u+t.strm.avail_in)))break;B=s===yo&&c===u+t.strm.avail_in?1:0,_l(t,0,0,B),t.pending_buf[t.pending-4]=c,t.pending_buf[t.pending-3]=c>>8,t.pending_buf[t.pending-2]=~c,t.pending_buf[t.pending-1]=~c>>8,oc(t.strm),u&&(u>c&&(u=c),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+u),t.strm.next_out),t.strm.next_out+=u,t.strm.avail_out-=u,t.strm.total_out+=u,t.block_start+=u,c-=u),c&&(GN(t.strm,t.strm.output,t.strm.next_out,c),t.strm.next_out+=c,t.strm.avail_out-=c,t.strm.total_out+=c)}while(B===0);return Q-=t.strm.avail_in,Q&&(Q>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=Q&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-Q,t.strm.next_in),t.strstart),t.strstart+=Q,t.insert+=Q>t.w_size-t.insert?t.w_size-t.insert:Q),t.block_start=t.strstart),t.high_waterh&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,h+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),h>t.strm.avail_in&&(h=t.strm.avail_in),h&&(GN(t.strm,t.window,t.strstart,h),t.strstart+=h,t.insert+=h>t.w_size-t.insert?t.w_size-t.insert:h),t.high_water>3,h=t.pending_buf_size-h>65535?65535:t.pending_buf_size-h,_=h>t.w_size?t.w_size:h,u=t.strstart-t.block_start,(u>=_||(u||s===yo)&&s!==Gg&&t.strm.avail_in===0&&u<=h)&&(c=u>h?h:u,B=s===yo&&t.strm.avail_in===0&&c===u?1:0,_l(t,t.block_start,c,B),t.block_start+=c,oc(t.strm)),B?3:1)},yh=(t,s)=>{let c,u;for(;;){if(t.lookahead=3&&(t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),c!==0&&t.strstart-c<=t.w_size-IA&&(t.match_length=m7(t,c)),t.match_length>=3)if(u=_a(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do t.strstart++,t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!=0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+1]);else u=_a(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(u&&(S1(t,!1),t.strm.avail_out===0))return 1}return t.insert=t.strstart<2?t.strstart:2,s===yo?(S1(t,!0),t.strm.avail_out===0?3:4):t.sym_next&&(S1(t,!1),t.strm.avail_out===0)?1:2},$C=(t,s)=>{let c,u,h;for(;;){if(t.lookahead=3&&(t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,c!==0&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){h=t.strstart+t.lookahead-3,u=_a(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=h&&(t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!=0);if(t.match_available=0,t.match_length=2,t.strstart++,u&&(S1(t,!1),t.strm.avail_out===0))return 1}else if(t.match_available){if(u=_a(t,0,t.window[t.strstart-1]),u&&S1(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(u=_a(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,s===yo?(S1(t,!0),t.strm.avail_out===0?3:4):t.sym_next&&(S1(t,!1),t.strm.avail_out===0)?1:2};function Vu(t,s,c,u,h){this.good_length=t,this.max_lazy=s,this.nice_length=c,this.max_chain=u,this.func=h}const Xd=[new Vu(0,0,0,0,VN),new Vu(4,4,8,4,yh),new Vu(4,5,16,8,yh),new Vu(4,6,32,32,yh),new Vu(4,4,16,16,$C),new Vu(8,16,32,32,$C),new Vu(8,16,128,128,$C),new Vu(8,32,128,256,$C),new Vu(32,128,258,1024,$C),new Vu(32,258,258,4096,$C)];function eI(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Vg,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(2*_7),this.dyn_dtree=new Uint16Array(2*(2*UN+1)),this.bl_tree=new Uint16Array(2*(2*f7+1)),Kg(this.dyn_ltree),Kg(this.dyn_dtree),Kg(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Di+1),this.heap=new Uint16Array(2*Fu+1),Kg(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Fu+1),Kg(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const tI=t=>{if(!t)return 1;const s=t.state;return!s||s.strm!==t||s.status!==z2&&s.status!==57&&s.status!==69&&s.status!==73&&s.status!==91&&s.status!==103&&s.status!==Gu&&s.status!==Wd?1:0},Zy=t=>{if(tI(t))return Aa(t,B1);t.total_in=t.total_out=0,t.data_type=$y;const s=t.state;return s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap===2?57:s.wrap?z2:Gu,t.adler=s.wrap===2?0:1,s.last_flush=-2,I7(s),Ua},eQ=t=>{const s=Zy(t);return s===Ua&&(c=>{c.window_size=2*c.w_size,Kg(c.head),c.max_lazy_match=Xd[c.level].max_lazy,c.good_match=Xd[c.level].good_length,c.nice_match=Xd[c.level].nice_length,c.max_chain_length=Xd[c.level].max_chain,c.strstart=0,c.block_start=0,c.lookahead=0,c.insert=0,c.match_length=c.prev_length=2,c.match_available=0,c.ins_h=0})(t.state),s},f_=(t,s,c,u,h,_)=>{if(!t)return B1;let B=1;if(s===ZJ&&(s=6),u<0?(B=0,u=-u):u>15&&(B=2,u-=16),h<1||h>9||c!==Vg||u<8||u>15||s<0||s>9||_<0||_>p7||u===8&&B!==1)return Aa(t,B1);u===8&&(u=9);const Q=new eI;return t.state=Q,Q.strm=t,Q.status=z2,Q.wrap=B,Q.gzhead=null,Q.w_bits=u,Q.w_size=1<{if(tI(t)||s>ma||s<0)return t?Aa(t,B1):B1;const c=t.state;if(!t.output||t.avail_in!==0&&!t.input||c.status===Wd&&s!==yo)return Aa(t,t.avail_out===0?W2:B1);const u=c.last_flush;if(c.last_flush=s,c.pending!==0){if(oc(t),t.avail_out===0)return c.last_flush=-1,Ua}else if(t.avail_in===0&&xN(s)<=xN(u)&&s!==yo)return Aa(t,W2);if(c.status===Wd&&t.avail_in!==0)return Aa(t,W2);if(c.status===z2&&c.wrap===0&&(c.status=Gu),c.status===z2){let h=Vg+(c.w_bits-8<<4)<<8,_=-1;if(_=c.strategy>=p_||c.level<2?0:c.level<6?1:c.level===6?2:3,h|=_<<6,c.strstart!==0&&(h|=32),h+=31-h%31,zC(c,h),c.strstart!==0&&(zC(c,t.adler>>>16),zC(c,65535&t.adler)),t.adler=1,c.status=Gu,oc(t),c.pending!==0)return c.last_flush=-1,Ua}if(c.status===57){if(t.adler=0,Jo(c,31),Jo(c,139),Jo(c,8),c.gzhead)Jo(c,(c.gzhead.text?1:0)+(c.gzhead.hcrc?2:0)+(c.gzhead.extra?4:0)+(c.gzhead.name?8:0)+(c.gzhead.comment?16:0)),Jo(c,255&c.gzhead.time),Jo(c,c.gzhead.time>>8&255),Jo(c,c.gzhead.time>>16&255),Jo(c,c.gzhead.time>>24&255),Jo(c,c.level===9?2:c.strategy>=p_||c.level<2?4:0),Jo(c,255&c.gzhead.os),c.gzhead.extra&&c.gzhead.extra.length&&(Jo(c,255&c.gzhead.extra.length),Jo(c,c.gzhead.extra.length>>8&255)),c.gzhead.hcrc&&(t.adler=nA(t.adler,c.pending_buf,c.pending,0)),c.gzindex=0,c.status=69;else if(Jo(c,0),Jo(c,0),Jo(c,0),Jo(c,0),Jo(c,0),Jo(c,c.level===9?2:c.strategy>=p_||c.level<2?4:0),Jo(c,3),c.status=Gu,oc(t),c.pending!==0)return c.last_flush=-1,Ua}if(c.status===69){if(c.gzhead.extra){let h=c.pending,_=(65535&c.gzhead.extra.length)-c.gzindex;for(;c.pending+_>c.pending_buf_size;){let Q=c.pending_buf_size-c.pending;if(c.pending_buf.set(c.gzhead.extra.subarray(c.gzindex,c.gzindex+Q),c.pending),c.pending=c.pending_buf_size,c.gzhead.hcrc&&c.pending>h&&(t.adler=nA(t.adler,c.pending_buf,c.pending-h,h)),c.gzindex+=Q,oc(t),c.pending!==0)return c.last_flush=-1,Ua;h=0,_-=Q}let B=new Uint8Array(c.gzhead.extra);c.pending_buf.set(B.subarray(c.gzindex,c.gzindex+_),c.pending),c.pending+=_,c.gzhead.hcrc&&c.pending>h&&(t.adler=nA(t.adler,c.pending_buf,c.pending-h,h)),c.gzindex=0}c.status=73}if(c.status===73){if(c.gzhead.name){let h,_=c.pending;do{if(c.pending===c.pending_buf_size){if(c.gzhead.hcrc&&c.pending>_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_)),oc(t),c.pending!==0)return c.last_flush=-1,Ua;_=0}h=c.gzindex_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_)),c.gzindex=0}c.status=91}if(c.status===91){if(c.gzhead.comment){let h,_=c.pending;do{if(c.pending===c.pending_buf_size){if(c.gzhead.hcrc&&c.pending>_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_)),oc(t),c.pending!==0)return c.last_flush=-1,Ua;_=0}h=c.gzindex_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_))}c.status=103}if(c.status===103){if(c.gzhead.hcrc){if(c.pending+2>c.pending_buf_size&&(oc(t),c.pending!==0))return c.last_flush=-1,Ua;Jo(c,255&t.adler),Jo(c,t.adler>>8&255),t.adler=0}if(c.status=Gu,oc(t),c.pending!==0)return c.last_flush=-1,Ua}if(t.avail_in!==0||c.lookahead!==0||s!==Gg&&c.status!==Wd){let h=c.level===0?VN(c,s):c.strategy===p_?((_,B)=>{let Q;for(;;){if(_.lookahead===0&&($2(_),_.lookahead===0)){if(B===Gg)return 1;break}if(_.match_length=0,Q=_a(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++,Q&&(S1(_,!1),_.strm.avail_out===0))return 1}return _.insert=0,B===yo?(S1(_,!0),_.strm.avail_out===0?3:4):_.sym_next&&(S1(_,!1),_.strm.avail_out===0)?1:2})(c,s):c.strategy===C7?((_,B)=>{let Q,T,D,O;const P=_.window;for(;;){if(_.lookahead<=Sh){if($2(_),_.lookahead<=Sh&&B===Gg)return 1;if(_.lookahead===0)break}if(_.match_length=0,_.lookahead>=3&&_.strstart>0&&(D=_.strstart-1,T=P[D],T===P[++D]&&T===P[++D]&&T===P[++D])){O=_.strstart+Sh;do;while(T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&D_.lookahead&&(_.match_length=_.lookahead)}if(_.match_length>=3?(Q=_a(_,1,_.match_length-3),_.lookahead-=_.match_length,_.strstart+=_.match_length,_.match_length=0):(Q=_a(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++),Q&&(S1(_,!1),_.strm.avail_out===0))return 1}return _.insert=0,B===yo?(S1(_,!0),_.strm.avail_out===0?3:4):_.sym_next&&(S1(_,!1),_.strm.avail_out===0)?1:2})(c,s):Xd[c.level].func(c,s);if(h!==3&&h!==4||(c.status=Wd),h===1||h===3)return t.avail_out===0&&(c.last_flush=-1),Ua;if(h===2&&(s===qd?PN(c):s!==ma&&(_l(c,0,0,!1),s===Wr&&(Kg(c.head),c.lookahead===0&&(c.strstart=0,c.block_start=0,c.insert=0))),oc(t),t.avail_out===0))return c.last_flush=-1,Ua}return s!==yo?Ua:c.wrap<=0?Xy:(c.wrap===2?(Jo(c,255&t.adler),Jo(c,t.adler>>8&255),Jo(c,t.adler>>16&255),Jo(c,t.adler>>24&255),Jo(c,255&t.total_in),Jo(c,t.total_in>>8&255),Jo(c,t.total_in>>16&255),Jo(c,t.total_in>>24&255)):(zC(c,t.adler>>>16),zC(c,65535&t.adler)),oc(t),c.wrap>0&&(c.wrap=-c.wrap),c.pending!==0?Ua:Xy)},iq=(t,s)=>{let c=s.length;if(tI(t))return B1;const u=t.state,h=u.wrap;if(h===2||h===1&&u.status!==z2||u.lookahead)return B1;if(h===1&&(t.adler=I_(t.adler,s,c,0)),u.wrap=0,c>=u.w_size){h===0&&(Kg(u.head),u.strstart=0,u.block_start=0,u.insert=0);let T=new Uint8Array(u.w_size);T.set(s.subarray(c-u.w_size,c),0),s=T,c=u.w_size}const _=t.avail_in,B=t.next_in,Q=t.input;for(t.avail_in=c,t.next_in=0,t.input=s,$2(u);u.lookahead>=3;){let T=u.strstart,D=u.lookahead-2;do u.ins_h=Rh(u,u.ins_h,u.window[T+3-1]),u.prev[T&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=T,T++;while(--D);u.strstart=T,u.lookahead=2,$2(u)}return u.strstart+=u.lookahead,u.block_start=u.strstart,u.insert=u.lookahead,u.lookahead=0,u.match_length=u.prev_length=2,u.match_available=0,t.next_in=B,t.input=Q,t.avail_in=_,u.wrap=h,Ua},rI={deflateInit:(t,s)=>f_(t,s,Vg,15,8,tq),deflateInit2:f_,deflateReset:eQ,deflateResetKeep:Zy,deflateSetHeader:(t,s)=>tI(t)||t.state.wrap!==2?B1:(t.state.gzhead=s,Ua),deflate:B7,deflateEnd:t=>{if(tI(t))return B1;const s=t.state.status;return t.state=null,s===Gu?Aa(t,zy):Ua},deflateSetDictionary:iq,deflateInfo:"pako deflate (from Nodeca project)"};const nq=(t,s)=>Object.prototype.hasOwnProperty.call(t,s);var ZC={assign:function(t){const s=Array.prototype.slice.call(arguments,1);for(;s.length;){const c=s.shift();if(c){if(typeof c!="object")throw new TypeError(c+"must be non-object");for(const u in c)nq(c,u)&&(t[u]=c[u])}}return t},flattenChunks:t=>{let s=0;for(let u=0,h=t.length;u=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;ep[254]=ep[254]=1;var iI={string2buf:t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let s,c,u,h,_,B=t.length,Q=0;for(h=0;h>>6,s[_++]=128|63&c):c<65536?(s[_++]=224|c>>>12,s[_++]=128|c>>>6&63,s[_++]=128|63&c):(s[_++]=240|c>>>18,s[_++]=128|c>>>12&63,s[_++]=128|c>>>6&63,s[_++]=128|63&c);return s},buf2string:(t,s)=>{const c=s||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,s));let u,h;const _=new Array(2*c);for(h=0,u=0;u4)_[h++]=65533,u+=Q-1;else{for(B&=Q===2?31:Q===3?15:7;Q>1&&u1?_[h++]=65533:B<65536?_[h++]=B:(B-=65536,_[h++]=55296|B>>10&1023,_[h++]=56320|1023&B)}}return((B,Q)=>{if(Q<65534&&B.subarray&&tQ)return String.fromCharCode.apply(null,B.length===Q?B:B.subarray(0,Q));let T="";for(let D=0;D{(s=s||t.length)>t.length&&(s=t.length);let c=s-1;for(;c>=0&&(192&t[c])==128;)c--;return c<0||c===0?s:c+ep[t[c]]>s?c:s}},rQ=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const KN=Object.prototype.toString,S7=fr.Z_NO_FLUSH,R7=fr.Z_SYNC_FLUSH,iQ=fr.Z_FULL_FLUSH,y7=fr.Z_FINISH,nQ=fr.Z_OK,oq=fr.Z_STREAM_END,sq=fr.Z_DEFAULT_COMPRESSION,tp=fr.Z_DEFAULT_STRATEGY,aq=fr.Z_DEFLATED;function rp(t){this.options=ZC.assign({level:sq,method:aq,chunkSize:16384,windowBits:15,memLevel:8,strategy:tp},t||{});let s=this.options;s.raw&&s.windowBits>0?s.windowBits=-s.windowBits:s.gzip&&s.windowBits>0&&s.windowBits<16&&(s.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new rQ,this.strm.avail_out=0;let c=rI.deflateInit2(this.strm,s.level,s.method,s.windowBits,s.memLevel,s.strategy);if(c!==nQ)throw new Error(Fg[c]);if(s.header&&rI.deflateSetHeader(this.strm,s.header),s.dictionary){let u;if(u=typeof s.dictionary=="string"?iI.string2buf(s.dictionary):KN.call(s.dictionary)==="[object ArrayBuffer]"?new Uint8Array(s.dictionary):s.dictionary,c=rI.deflateSetDictionary(this.strm,u),c!==nQ)throw new Error(Fg[c]);this._dict_set=!0}}function Q7(t,s){const c=new rp(s);if(c.push(t,!0),c.err)throw c.msg||Fg[c.err];return c.result}rp.prototype.push=function(t,s){const c=this.strm,u=this.options.chunkSize;let h,_;if(this.ended)return!1;for(_=s===~~s?s:s===!0?y7:S7,typeof t=="string"?c.input=iI.string2buf(t):KN.call(t)==="[object ArrayBuffer]"?c.input=new Uint8Array(t):c.input=t,c.next_in=0,c.avail_in=c.input.length;;)if(c.avail_out===0&&(c.output=new Uint8Array(u),c.next_out=0,c.avail_out=u),(_===R7||_===iQ)&&c.avail_out<=6)this.onData(c.output.subarray(0,c.next_out)),c.avail_out=0;else{if(h=rI.deflate(c,_),h===oq)return c.next_out>0&&this.onData(c.output.subarray(0,c.next_out)),h=rI.deflateEnd(this.strm),this.onEnd(h),this.ended=!0,h===nQ;if(c.avail_out!==0){if(_>0&&c.next_out>0)this.onData(c.output.subarray(0,c.next_out)),c.avail_out=0;else if(c.avail_in===0)break}else this.onData(c.output)}return!0},rp.prototype.onData=function(t){this.chunks.push(t)},rp.prototype.onEnd=function(t){t===nQ&&(this.result=ZC.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var __={deflate:Q7,deflateRaw:function(t,s){return(s=s||{}).raw=!0,Q7(t,s)}};const m_=16209;var T7=function(t,s){let c,u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et,st;const Xt=t.state;c=t.next_in,et=t.input,u=c+(t.avail_in-5),h=t.next_out,st=t.output,_=h-(s-t.avail_out),B=h+(t.avail_out-257),Q=Xt.dmax,T=Xt.wsize,D=Xt.whave,O=Xt.wnext,P=Xt.window,U=Xt.hold,H=Xt.bits,$=Xt.lencode,Z=Xt.distcode,te=(1<>>24,U>>>=me,H-=me,me=ge>>>16&255,me===0)st[h++]=65535≥else{if(!(16&me)){if(!(64&me)){ge=$[(65535&ge)+(U&(1<>>=me,H-=me),H<15&&(U+=et[c++]<>>24,U>>>=me,H-=me,me=ge>>>16&255,!(16&me)){if(!(64&me)){ge=Z[(65535&ge)+(U&(1<Q){t.msg="invalid distance too far back",Xt.mode=m_;break e}if(U>>>=me,H-=me,me=h-_,Oe>me){if(me=Oe-me,me>D&&Xt.sane){t.msg="invalid distance too far back",Xt.mode=m_;break e}if(we=0,Ne=P,O===0){if(we+=T-me,me2;)st[h++]=Ne[we++],st[h++]=Ne[we++],st[h++]=Ne[we++],Qe-=3;Qe&&(st[h++]=Ne[we++],Qe>1&&(st[h++]=Ne[we++]))}else{we=h-Oe;do st[h++]=st[we++],st[h++]=st[we++],st[h++]=st[we++],Qe-=3;while(Qe>2);Qe&&(st[h++]=st[we++],Qe>1&&(st[h++]=st[we++]))}break}}break}}while(c>3,c-=Qe,H-=Qe<<3,U&=(1<{const T=Q.bits;let D,O,P,U,H,$,Z=0,te=0,se=0,ge=0,me=0,Qe=0,Oe=0,we=0,Ne=0,et=0,st=null;const Xt=new Uint16Array(16),lr=new Uint16Array(16);let ft,Ir,ui,Nr=null;for(Z=0;Z<=B_;Z++)Xt[Z]=0;for(te=0;te=1&&Xt[ge]===0;ge--);if(me>ge&&(me=ge),ge===0)return h[_++]=20971520,h[_++]=20971520,Q.bits=1,0;for(se=1;se0&&(t===0||ge!==1))return-1;for(lr[1]=0,Z=1;Z852||t===2&&Ne>592)return 1;for(;;){ft=Z-Oe,B[te]+1<$?(Ir=0,ui=B[te]):B[te]>=$?(Ir=Nr[B[te]-$],ui=st[B[te]-$]):(Ir=96,ui=0),D=1<>Oe)+O]=ft<<24|Ir<<16|ui|0;while(O!==0);for(D=1<>=1;if(D!==0?(et&=D-1,et+=D):et=0,te++,--Xt[Z]==0){if(Z===ge)break;Z=s[c+B[te]]}if(Z>me&&(et&U)!==P){for(Oe===0&&(Oe=me),H+=se,Qe=Z-Oe,we=1<852||t===2&&Ne>592)return 1;P=et&U,h[P]=me<<24|Qe<<16|H-_|0}}return et!==0&&(h[H+et]=Z-Oe<<24|64<<16|0),Q.bits=me,0};const v7=fr.Z_FINISH,Th=fr.Z_BLOCK,R_=fr.Z_TREES,wh=fr.Z_OK,oQ=fr.Z_STREAM_END,Aq=fr.Z_NEED_DICT,nd=fr.Z_STREAM_ERROR,HN=fr.Z_DATA_ERROR,D7=fr.Z_MEM_ERROR,cq=fr.Z_BUF_ERROR,YN=fr.Z_DEFLATED,vh=16180,y_=16190,Ku=16191,Q_=16192,sQ=16194,aQ=16199,T_=16200,AQ=16206,ca=16209,jN=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function b7(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Dh=t=>{if(!t)return 1;const s=t.state;return!s||s.strm!==t||s.mode16211?1:0},JN=t=>{if(Dh(t))return nd;const s=t.state;return t.total_in=t.total_out=s.total=0,t.msg="",s.wrap&&(t.adler=1&s.wrap),s.mode=vh,s.last=0,s.havedict=0,s.flags=-1,s.dmax=32768,s.head=null,s.hold=0,s.bits=0,s.lencode=s.lendyn=new Int32Array(852),s.distcode=s.distdyn=new Int32Array(592),s.sane=1,s.back=-1,wh},qN=t=>{if(Dh(t))return nd;const s=t.state;return s.wsize=0,s.whave=0,s.wnext=0,JN(t)},WN=(t,s)=>{let c;if(Dh(t))return nd;const u=t.state;return s<0?(c=0,s=-s):(c=5+(s>>4),s<48&&(s&=15)),s&&(s<8||s>15)?nd:(u.window!==null&&u.wbits!==s&&(u.window=null),u.wrap=c,u.wbits=s,qN(t))},XN=(t,s)=>{if(!t)return nd;const c=new b7;t.state=c,c.strm=t,c.window=null,c.mode=vh;const u=WN(t,s);return u!==wh&&(t.state=null),u};let cQ,lQ,zN=!0;const N7=t=>{if(zN){cQ=new Int32Array(512),lQ=new Int32Array(32);let s=0;for(;s<144;)t.lens[s++]=8;for(;s<256;)t.lens[s++]=9;for(;s<280;)t.lens[s++]=7;for(;s<288;)t.lens[s++]=8;for(Vo(1,t.lens,0,288,cQ,0,t.work,{bits:9}),s=0;s<32;)t.lens[s++]=5;Vo(2,t.lens,0,32,lQ,0,t.work,{bits:5}),zN=!1}t.lencode=cQ,t.lenbits=9,t.distcode=lQ,t.distbits=5},$N=(t,s,c,u)=>{let h;const _=t.state;return _.window===null&&(_.wsize=1<<_.wbits,_.wnext=0,_.whave=0,_.window=new Uint8Array(_.wsize)),u>=_.wsize?(_.window.set(s.subarray(c-_.wsize,c),0),_.wnext=0,_.whave=_.wsize):(h=_.wsize-_.wnext,h>u&&(h=u),_.window.set(s.subarray(c-u,c-u+h),_.wnext),(u-=h)?(_.window.set(s.subarray(c-u,c),0),_.wnext=u,_.whave=_.wsize):(_.wnext+=h,_.wnext===_.wsize&&(_.wnext=0),_.whave<_.wsize&&(_.whave+=h))),0};var O7=(t,s)=>{let c,u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et=0;const st=new Uint8Array(4);let Xt,lr;const ft=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Dh(t)||!t.output||!t.input&&t.avail_in!==0)return nd;c=t.state,c.mode===Ku&&(c.mode=Q_),B=t.next_out,h=t.output,T=t.avail_out,_=t.next_in,u=t.input,Q=t.avail_in,D=c.hold,O=c.bits,P=Q,U=T,Ne=wh;e:for(;;)switch(c.mode){case vh:if(c.wrap===0){c.mode=Q_;break}for(;O<16;){if(Q===0)break e;Q--,D+=u[_++]<>>8&255,c.check=nA(c.check,st,2,0),D=0,O=0,c.mode=16181;break}if(c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&D)<<8)+(D>>8))%31){t.msg="incorrect header check",c.mode=ca;break}if((15&D)!==YN){t.msg="unknown compression method",c.mode=ca;break}if(D>>>=4,O-=4,we=8+(15&D),c.wbits===0&&(c.wbits=we),we>15||we>c.wbits){t.msg="invalid window size",c.mode=ca;break}c.dmax=1<>8&1),512&hA(c)&&4&c.wrap&&(st[0]=255&D,st[1]=D>>>8&255,c.check=nA(c.check,st,2,0)),D=0,O=0,c.mode=16182;case 16182:for(;O<32;){if(Q===0)break e;Q--,D+=u[_++]<>>8&255,st[2]=D>>>16&255,st[3]=D>>>24&255,c.check=nA(c.check,st,4,0)),D=0,O=0,c.mode=16183;case 16183:for(;O<16;){if(Q===0)break e;Q--,D+=u[_++]<>8),512&hA(c)&&4&c.wrap&&(st[0]=255&D,st[1]=D>>>8&255,c.check=nA(c.check,st,2,0)),D=0,O=0,c.mode=16184;case 16184:if(1024&hA(c)){for(;O<16;){if(Q===0)break e;Q--,D+=u[_++]<>>8&255,c.check=nA(c.check,st,2,0)),D=0,O=0}else c.head&&(c.head.extra=null);c.mode=16185;case 16185:if(1024&hA(c)&&(H=c.length,H>Q&&(H=Q),H&&(c.head&&(we=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Uint8Array(c.head.extra_len)),c.head.extra.set(u.subarray(_,_+H),we)),512&hA(c)&&4&c.wrap&&(c.check=nA(c.check,u,H,_)),Q-=H,_+=H,c.length-=H),c.length))break e;c.length=0,c.mode=16186;case 16186:if(2048&hA(c)){if(Q===0)break e;H=0;do we=u[_+H++],c.head&&we&&c.length<65536&&(c.head.name+=String.fromCharCode(we));while(we&&H>9&1,c.head.done=!0),t.adler=c.check=0,c.mode=Ku;break;case 16189:for(;O<32;){if(Q===0)break e;Q--,D+=u[_++]<>>=7&O,O-=7&O,c.mode=AQ;break}for(;O<3;){if(Q===0)break e;Q--,D+=u[_++]<>>=1,O-=1,3&D){case 0:c.mode=16193;break;case 1:if(N7(c),c.mode=aQ,s===R_){D>>>=2,O-=2;break e}break;case 2:c.mode=16196;break;case 3:t.msg="invalid block type",c.mode=ca}D>>>=2,O-=2;break;case 16193:for(D>>>=7&O,O-=7&O;O<32;){if(Q===0)break e;Q--,D+=u[_++]<>>16^65535)){t.msg="invalid stored block lengths",c.mode=ca;break}if(c.length=65535&D,D=0,O=0,c.mode=sQ,s===R_)break e;case sQ:c.mode=16195;case 16195:if(H=c.length,H){if(H>Q&&(H=Q),H>T&&(H=T),H===0)break e;h.set(u.subarray(_,_+H),B),Q-=H,_+=H,T-=H,B+=H,c.length-=H;break}c.mode=Ku;break;case 16196:for(;O<14;){if(Q===0)break e;Q--,D+=u[_++]<>>=5,O-=5,c.ndist=1+(31&D),D>>>=5,O-=5,c.ncode=4+(15&D),D>>>=4,O-=4,c.nlen>286||c.ndist>30){t.msg="too many length or distance symbols",c.mode=ca;break}c.have=0,c.mode=16197;case 16197:for(;c.have>>=3,O-=3}for(;c.have<19;)c.lens[ft[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,Xt={bits:c.lenbits},Ne=Vo(0,c.lens,0,19,c.lencode,0,c.work,Xt),c.lenbits=Xt.bits,Ne){t.msg="invalid code lengths set",c.mode=ca;break}c.have=0,c.mode=16198;case 16198:for(;c.have>>24,se=et>>>16&255,ge=65535&et,!(te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>>=te,O-=te,c.lens[c.have++]=ge;else{if(ge===16){for(lr=te+2;O>>=te,O-=te,c.have===0){t.msg="invalid bit length repeat",c.mode=ca;break}we=c.lens[c.have-1],H=3+(3&D),D>>>=2,O-=2}else if(ge===17){for(lr=te+3;O>>=te,O-=te,we=0,H=3+(7&D),D>>>=3,O-=3}else{for(lr=te+7;O>>=te,O-=te,we=0,H=11+(127&D),D>>>=7,O-=7}if(c.have+H>c.nlen+c.ndist){t.msg="invalid bit length repeat",c.mode=ca;break}for(;H--;)c.lens[c.have++]=we}}if(c.mode===ca)break;if(c.lens[256]===0){t.msg="invalid code -- missing end-of-block",c.mode=ca;break}if(c.lenbits=9,Xt={bits:c.lenbits},Ne=Vo(1,c.lens,0,c.nlen,c.lencode,0,c.work,Xt),c.lenbits=Xt.bits,Ne){t.msg="invalid literal/lengths set",c.mode=ca;break}if(c.distbits=6,c.distcode=c.distdyn,Xt={bits:c.distbits},Ne=Vo(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,Xt),c.distbits=Xt.bits,Ne){t.msg="invalid distances set",c.mode=ca;break}if(c.mode=aQ,s===R_)break e;case aQ:c.mode=T_;case T_:if(Q>=6&&T>=258){t.next_out=B,t.avail_out=T,t.next_in=_,t.avail_in=Q,c.hold=D,c.bits=O,T7(t,U),B=t.next_out,h=t.output,T=t.avail_out,_=t.next_in,u=t.input,Q=t.avail_in,D=c.hold,O=c.bits,c.mode===Ku&&(c.back=-1);break}for(c.back=0;et=c.lencode[D&(1<>>24,se=et>>>16&255,ge=65535&et,!(te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>me)],te=et>>>24,se=et>>>16&255,ge=65535&et,!(me+te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>>=me,O-=me,c.back+=me}if(D>>>=te,O-=te,c.back+=te,c.length=ge,se===0){c.mode=16205;break}if(32&se){c.back=-1,c.mode=Ku;break}if(64&se){t.msg="invalid literal/length code",c.mode=ca;break}c.extra=15&se,c.mode=16201;case 16201:if(c.extra){for(lr=c.extra;O>>=c.extra,O-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=16202;case 16202:for(;et=c.distcode[D&(1<>>24,se=et>>>16&255,ge=65535&et,!(te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>me)],te=et>>>24,se=et>>>16&255,ge=65535&et,!(me+te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>>=me,O-=me,c.back+=me}if(D>>>=te,O-=te,c.back+=te,64&se){t.msg="invalid distance code",c.mode=ca;break}c.offset=ge,c.extra=15&se,c.mode=16203;case 16203:if(c.extra){for(lr=c.extra;O>>=c.extra,O-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){t.msg="invalid distance too far back",c.mode=ca;break}c.mode=16204;case 16204:if(T===0)break e;if(H=U-T,c.offset>H){if(H=c.offset-H,H>c.whave&&c.sane){t.msg="invalid distance too far back",c.mode=ca;break}H>c.wnext?(H-=c.wnext,$=c.wsize-H):$=c.wnext-H,H>c.length&&(H=c.length),Z=c.window}else Z=h,$=B-c.offset,H=c.length;H>T&&(H=T),T-=H,c.length-=H;do h[B++]=Z[$++];while(--H);c.length===0&&(c.mode=T_);break;case 16205:if(T===0)break e;h[B++]=c.length,T--,c.mode=T_;break;case AQ:if(c.wrap){for(;O<32;){if(Q===0)break e;Q--,D|=u[_++]<XN(t,15),inflateInit2:XN,inflate:O7,inflateEnd:t=>{if(Dh(t))return nd;let s=t.state;return s.window&&(s.window=null),t.state=null,wh},inflateGetHeader:(t,s)=>{if(Dh(t))return nd;const c=t.state;return 2&c.wrap?(c.head=s,s.done=!1,wh):nd},inflateSetDictionary:(t,s)=>{const c=s.length;let u,h,_;return Dh(t)?nd:(u=t.state,u.wrap!==0&&u.mode!==y_?nd:u.mode===y_&&(h=1,h=I_(h,s,c,0),h!==u.check)?HN:(_=$N(t,s,c,c),_?(u.mode=16210,D7):(u.havedict=1,wh)))},inflateInfo:"pako inflate (from Nodeca project)"},L7=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ZN=Object.prototype.toString,M7=fr.Z_NO_FLUSH,k7=fr.Z_FINISH,ip=fr.Z_OK,dQ=fr.Z_STREAM_END,uQ=fr.Z_NEED_DICT,P7=fr.Z_STREAM_ERROR,eO=fr.Z_DATA_ERROR,U7=fr.Z_MEM_ERROR;function w_(t){this.options=ZC.assign({chunkSize:65536,windowBits:15,to:""},t||{});const s=this.options;s.raw&&s.windowBits>=0&&s.windowBits<16&&(s.windowBits=-s.windowBits,s.windowBits===0&&(s.windowBits=-15)),!(s.windowBits>=0&&s.windowBits<16)||t&&t.windowBits||(s.windowBits+=32),s.windowBits>15&&s.windowBits<48&&!(15&s.windowBits)&&(s.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new rQ,this.strm.avail_out=0;let c=Hu.inflateInit2(this.strm,s.windowBits);if(c!==ip)throw new Error(Fg[c]);if(this.header=new L7,Hu.inflateGetHeader(this.strm,this.header),s.dictionary&&(typeof s.dictionary=="string"?s.dictionary=iI.string2buf(s.dictionary):ZN.call(s.dictionary)==="[object ArrayBuffer]"&&(s.dictionary=new Uint8Array(s.dictionary)),s.raw&&(c=Hu.inflateSetDictionary(this.strm,s.dictionary),c!==ip)))throw new Error(Fg[c])}function tO(t,s){const c=new w_(s);if(c.push(t),c.err)throw c.msg||Fg[c.err];return c.result}w_.prototype.push=function(t,s){const c=this.strm,u=this.options.chunkSize,h=this.options.dictionary;let _,B,Q;if(this.ended)return!1;for(B=s===~~s?s:s===!0?k7:M7,ZN.call(t)==="[object ArrayBuffer]"?c.input=new Uint8Array(t):c.input=t,c.next_in=0,c.avail_in=c.input.length;;){for(c.avail_out===0&&(c.output=new Uint8Array(u),c.next_out=0,c.avail_out=u),_=Hu.inflate(c,B),_===uQ&&h&&(_=Hu.inflateSetDictionary(c,h),_===ip?_=Hu.inflate(c,B):_===eO&&(_=uQ));c.avail_in>0&&_===dQ&&c.state.wrap>0&&t[c.next_in]!==0;)Hu.inflateReset(c),_=Hu.inflate(c,B);switch(_){case P7:case eO:case uQ:case U7:return this.onEnd(_),this.ended=!0,!1}if(Q=c.avail_out,c.next_out&&(c.avail_out===0||_===dQ))if(this.options.to==="string"){let T=iI.utf8border(c.output,c.next_out),D=c.next_out-T,O=iI.buf2string(c.output,T);c.next_out=D,c.avail_out=u-D,D&&c.output.set(c.output.subarray(T,T+D),0),this.onData(O)}else this.onData(c.output.length===c.next_out?c.output:c.output.subarray(0,c.next_out));if(_!==ip||Q!==0){if(_===dQ)return _=Hu.inflateEnd(this.strm),this.onEnd(_),this.ended=!0,!0;if(c.avail_in===0)break}}return!0},w_.prototype.onData=function(t){this.chunks.push(t)},w_.prototype.onEnd=function(t){t===ip&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ZC.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var rO={inflate:tO,inflateRaw:function(t,s){return(s=s||{}).raw=!0,tO(t,s)}},iO,x7=__.deflate,nO=__.deflateRaw,F7=rO.inflate,gQ=rO.inflateRaw,fo=function(t){return t[t.CHOOSE_SERVER=11]="CHOOSE_SERVER",t[t.CLOUD_PROXY=18]="CLOUD_PROXY",t[t.CLOUD_PROXY_5=20]="CLOUD_PROXY_5",t[t.CLOUD_PROXY_FALLBACK=26]="CLOUD_PROXY_FALLBACK",t}(fo||{});function np(t){let s=!1;const c=[];for(let u=0;u0&&Hg[0]<4?1:+(Hg[0]+Hg[1])),!Jt&&oI&&(!(Hg=oI.match(/Edge\/(\d+)/))||Hg[1]>=74)&&(Hg=oI.match(/Chrome\/(\d+)/))&&(Jt=+Hg[1]);var Ap=Jt,fQ=Ap,Eq=xa,Lh=Ha.String,cp=!!Object.getOwnPropertySymbols&&!Eq(function(){var t=Symbol("symbol detection");return!Lh(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&fQ&&fQ<41}),Jg=cp&&!Symbol.sham&&typeof Symbol.iterator=="symbol",hq=qu,Iq=Ac,Ad=zd,tx=Object,Ya=Jg?function(t){return typeof t=="symbol"}:function(t){var s=hq("Symbol");return Iq(s)&&Ad(s.prototype,tx(t))},rx=String,Sl=function(t){try{return rx(t)}catch{return"Object"}},Cq=Ac,gO=Sl,pq=TypeError,U_=function(t){if(Cq(t))return t;throw new pq(gO(t)+" is not a function")},_Q=U_,fq=hQ,EO=function(t,s){var c=t[s];return fq(c)?void 0:_Q(c)},ix=ad,nx=Ac,x_=ml,hO=TypeError,ox={exports:{}},sx=Ha,_q=Object.defineProperty,mq=Ha,Mh="__core-js_shared__",$d=ox.exports=mq[Mh]||function(t,s){try{_q(sx,t,{value:s,configurable:!0,writable:!0})}catch{sx[t]=s}return s}(Mh,{});($d.versions||($d.versions=[])).push({version:"3.49.0",mode:"pure",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"});var kh=ox.exports,Ph=kh,Wu=function(t,s){return Ph[t]||(Ph[t]=s||{})},sI=Yu,ax=Object,R1=function(t){return ax(sI(t))},Bq=R1,Uh=Ka({}.hasOwnProperty),ks=Object.hasOwn||function(t,s){return Uh(Bq(t),s)},Rl=Ka,Zo=0,F_=Math.random(),IO=Rl(1.1.toString),G_=function(t){return"Symbol("+(t===void 0?"":t)+")_"+IO(++Zo+F_,36)},lp=Wu,CO=ks,pO=G_,dp=cp,Xu=Jg,zu=Ha.Symbol,fO=lp("wks"),V_=Xu?zu.for||zu:zu&&zu.withoutSetter||pO,ja=function(t){return CO(fO,t)||(fO[t]=dp&&CO(zu,t)?zu[t]:V_("Symbol."+t)),fO[t]},Ax=ad,_O=ml,lx=Ya,Sq=EO,K_=TypeError,Rq=ja("toPrimitive"),mQ=function(t,s){if(!_O(t)||lx(t))return t;var c,u=Sq(t,Rq);if(u){if(c=Ax(u,t,s),!_O(c)||lx(c))return c;throw new K_("Can't convert object to primitive value")}return function(h,_){var B,Q;if(nx(B=h.toString)&&!x_(Q=ix(B,h))||nx(B=h.valueOf)&&!x_(Q=ix(B,h)))return Q;throw new hO("Can't convert object to primitive value")}(t)},dx=Ya,aI=function(t){var s=mQ(t,"string");return dx(s)?s:s+""},H_=Bl,ux=ap,gx=cc,BQ=bh,Ex=aI,yq=TypeError,mO=Object.defineProperty,SQ=Object.getOwnPropertyDescriptor,BO="enumerable",SO="configurable",RO="writable";sd.f=H_?gx?function(t,s,c){if(BQ(t),s=Ex(s),BQ(c),typeof t=="function"&&s==="prototype"&&"value"in c&&RO in c&&!c[RO]){var u=SQ(t,s);u&&u[RO]&&(t[s]=c.value,c={configurable:SO in c?c[SO]:u[SO],enumerable:BO in c?c[BO]:u[BO],writable:!1})}return mO(t,s,c)}:mO:function(t,s,c){if(BQ(t),s=Ex(s),BQ(c),ux)try{return mO(t,s,c)}catch{}if("get"in c||"set"in c)throw new yq("Accessors not supported");return"value"in c&&(t[s]=c.value),t};var RQ,xh,Y_,j_=function(t,s){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:s}},yQ=sd,Qq=j_,AI=Bl?function(t,s,c){return yQ.f(t,s,Qq(1,c))}:function(t,s,c){return t[s]=c,t},Tq=G_,hx=Wu("keys"),QQ=function(t){return hx[t]||(hx[t]=Tq(t))},TQ={},J_=N_,yO=Ha,wq=ml,wQ=AI,qg=ks,QO=kh,vq=QQ,cd=TQ,TO="Object already initialized",vQ=yO.TypeError,Dq=yO.WeakMap;if(J_||QO.state){var Zd=QO.state||(QO.state=new Dq);Zd.get=Zd.get,Zd.has=Zd.has,Zd.set=Zd.set,RQ=function(t,s){if(Zd.has(t))throw new vQ(TO);return s.facade=t,Zd.set(t,s),s},xh=function(t){return Zd.get(t)||{}},Y_=function(t){return Zd.has(t)}}else{var Wg=vq("state");cd[Wg]=!0,RQ=function(t,s){if(qg(t,Wg))throw new vQ(TO);return s.facade=t,wQ(t,Wg,s),s},xh=function(t){return qg(t,Wg)?t[Wg]:{}},Y_=function(t){return qg(t,Wg)}}var cI={set:RQ,get:xh,has:Y_,enforce:function(t){return Y_(t)?xh(t):RQ(t,{})},getterFor:function(t){return function(s){var c;if(!wq(s)||(c=xh(s)).type!==t)throw new vQ("Incompatible receiver, "+t+" required");return c}}},Xg=ac,DQ=Function.prototype,bQ=DQ.apply,q_=DQ.call,W_=typeof Reflect=="object"&&Reflect.apply||(Xg?q_.bind(bQ):function(){return q_.apply(bQ,arguments)}),wO=Yg,Ba=Ka,NQ=function(t){if(wO(t)==="Function")return Ba(t)},vO={},zg={},DO={}.propertyIsEnumerable,bO=Object.getOwnPropertyDescriptor,Ix=bO&&!DO.call({1:2},1);zg.f=Ix?function(t){var s=bO(this,t);return!!s&&s.enumerable}:DO;var Cx=Bl,NO=ad,OO=zg,px=j_,bq=od,fx=aI,Nq=ks,$g=ap,_x=Object.getOwnPropertyDescriptor;vO.f=Cx?_x:function(t,s){if(t=bq(t),s=fx(s),$g)try{return _x(t,s)}catch{}if(Nq(t,s))return px(!NO(OO.f,t,s),t[s])};var mx=xa,Oq=Ac,Lq=/#|\.prototype\./,Zg=function(t,s){var c=MO[LO(t)];return c===Bx||c!==Mq&&(Oq(s)?mx(s):!!s)},LO=Zg.normalize=function(t){return String(t).replace(Lq,".").toLowerCase()},MO=Zg.data={},Mq=Zg.NATIVE="N",Bx=Zg.POLYFILL="P",kq=Zg,OQ=U_,Sx=ac,Pq=NQ(NQ.bind),kO=function(t,s){return OQ(t),s===void 0?t:Sx?Pq(t,s):function(){return t.apply(s,arguments)}},X_=Ha,Uq=W_,xq=NQ,Fq=Ac,Gq=vO.f,Vq=kq,up=Nh,Rx=kO,Ep=AI,yx=ks,Kq=function(t){var s=function(c,u,h){if(this instanceof s){switch(arguments.length){case 0:return new t;case 1:return new t(c);case 2:return new t(c,u)}return new t(c,u,h)}return Uq(t,this,arguments)};return s.prototype=t.prototype,s},Fa=function(t,s){var c,u,h,_,B,Q,T,D,O,P=t.target,U=t.global,H=t.stat,$=t.proto,Z=U?X_:H?X_[P]:X_[P]&&X_[P].prototype,te=U?up:up[P]||Ep(up,P,{})[P],se=te.prototype;for(_ in s)u=!(c=Vq(U?_:P+(H?".":"#")+_,t.forced))&&Z&&yx(Z,_),Q=te[_],u&&(T=t.dontCallGetSet?(O=Gq(Z,_))&&O.value:Z[_]),B=u&&T?T:s[_],(c||$||typeof Q!=typeof B)&&(D=t.bind&&u?Rx(B,X_):t.wrap&&u?Kq(B):$&&Fq(B)?xq(B):B,(t.sham||B&&B.sham||Q&&Q.sham)&&Ep(D,"sham",!0),Ep(te,_,D),$&&(yx(up,h=P+"Prototype")||Ep(up,h,{}),Ep(up[h],_,B),t.real&&se&&(c||!se[_])&&Ep(se,_,B)))},PO=Bl,Qx=ks,hp=Function.prototype,Hq=PO&&Object.getOwnPropertyDescriptor,UO=Qx(hp,"name"),n1={PROPER:UO&&(function(){}).name==="something",CONFIGURABLE:UO&&(!PO||PO&&Hq(hp,"name").configurable)},xO={},Yq=Math.ceil,jq=Math.floor,Jq=Math.trunc||function(t){var s=+t;return(s>0?jq:Yq)(s)},FO=function(t){var s=+t;return s!=s||s===0?0:Jq(s)},qq=FO,Wq=Math.max,Tx=Math.min,wx=function(t,s){var c=qq(t);return c<0?Wq(c+s,0):Tx(c,s)},GO=FO,y1=Math.min,yl=function(t){return function(s){var c=GO(s);return c>0?y1(c,9007199254740991):0}(t.length)},vx=od,Dx=wx,Xq=yl,LQ=function(t){return function(s,c,u){var h=vx(s),_=Xq(h);if(_===0)return!t&&-1;var B,Q=Dx(u,_);if(t&&c!=c){for(;_>Q;)if((B=h[Q++])!=B)return!0}else for(;_>Q;Q++)if((t||Q in h)&&h[Q]===c)return t||Q||0;return!t&&-1}},VO={includes:LQ(!0),indexOf:LQ(!1)},Fh=ks,KO=od,bx=VO.indexOf,$u=TQ,Nx=Ka([].push),HO=function(t,s){var c,u=KO(t),h=0,_=[];for(c in u)!Fh($u,c)&&Fh(u,c)&&Nx(_,c);for(;s.length>h;)Fh(u,c=s[h++])&&(~bx(_,c)||Nx(_,c));return _},MQ=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],YO=HO,jO=MQ,eu=Object.keys||function(t){return YO(t,jO)},Un=Bl,Gh=cc,Ox=sd,zq=bh,$q=od,Zq=eu;xO.f=Un&&!Gh?Object.defineProperties:function(t,s){zq(t);for(var c,u=$q(s),h=Zq(s),_=h.length,B=0;_>B;)Ox.f(t,c=h[B++],u[c]);return t};var z_,eW=qu("document","documentElement"),tW=bh,rW=xO,kQ=MQ,Lx=TQ,iW=eW,nW=CQ,JO="prototype",$_="script",Mx=QQ("IE_PROTO"),PQ=function(){},kx=function(t){return"<"+$_+">"+t+""},qO=function(t){t.write(kx("")),t.close();var s=t.parentWindow.Object;return t=null,s},UQ=function(){try{z_=new ActiveXObject("htmlfile")}catch{}var t,s,c;UQ=typeof document<"u"?document.domain&&z_?qO(z_):(s=nW("iframe"),c="java"+$_+":",s.style.display="none",iW.appendChild(s),s.src=String(c),(t=s.contentWindow.document).open(),t.write(kx("document.F=Object")),t.close(),t.F):qO(z_);for(var u=kQ.length;u--;)delete UQ[JO][kQ[u]];return UQ()};Lx[Mx]=!0;var xn,WO,eE,xQ=Object.create||function(t,s){var c;return t!==null?(PQ[JO]=tW(t),c=new PQ,PQ[JO]=null,c[Mx]=t):c=UQ(),s===void 0?c:rW.f(c,s)},ld=!xa(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),tu=ks,Px=Ac,Ux=R1,xx=ld,XO=QQ("IE_PROTO"),FQ=Object,Fx=FQ.prototype,zO=xx?FQ.getPrototypeOf:function(t){var s=Ux(t);if(tu(s,XO))return s[XO];var c=s.constructor;return Px(c)&&s instanceof c?c.prototype:s instanceof FQ?Fx:null},Gx=AI,Z_=function(t,s,c,u){return u&&u.enumerable?t[s]=c:Gx(t,s,c),t},Vx=xa,Kx=Ac,Lo=ml,Hx=xQ,em=zO,oW=Z_,Ql=ja("iterator"),Vh=!1;js([])&&("next"in(eE=js(iO=[]).call(iO))?(WO=em(em(eE)))!==Object.prototype&&(xn=WO):Vh=!0);var sW=!Lo(xn)||Vx(function(){var t={};return xn[Ql].call(t)!==t});Kx((xn=sW?{}:Hx(xn))[Ql])||oW(xn,Ql,function(){return this});var Yx={IteratorPrototype:xn,BUGGY_SAFARI_ITERATORS:Vh},$O={};$O[ja("toStringTag")]="z";var GQ=String($O)==="[object z]",aW=GQ,zn=Ac,tm=Yg,VQ=ja("toStringTag"),AW=Object,Tl=tm(function(){return arguments}())==="Arguments",Ip=aW?tm:function(t){var s,c,u;return t===void 0?"Undefined":t===null?"Null":typeof(c=function(h,_){try{return h[_]}catch{}}(s=AW(t),VQ))=="string"?c:Tl?tm(s):(u=tm(s))==="Object"&&zn(s.callee)?"Arguments":u},cW=Ip,lW=GQ?{}.toString:function(){return"[object "+cW(this)+"]"},Yi=GQ,jx=sd.f,ru=AI,dW=ks,o1=lW,Nn=ja("toStringTag"),lI=function(t,s,c,u){var h=c?t:t&&t.prototype;h&&(dW(h,Nn)||jx(h,Nn,{configurable:!0,value:s}),u&&!Yi&&ru(h,"toString",o1))},KQ=Yx.IteratorPrototype,uW=xQ,Vc=j_,Jx=lI,gW=ju,iu=function(){return this},EW=Fa,qx=ad,hW=zO,IW=lI,Wx=Z_,ZO=ju,Ts=n1.PROPER,a=Yx.BUGGY_SAFARI_ITERATORS,A=ja("iterator"),l="keys",g="values",C="entries",m=function(){return this},y=function(t,s,c,u,h,_,B){(function(se,ge,me,Qe){var Oe=ge+" Iterator";se.prototype=uW(KQ,{next:Vc(1,me)}),Jx(se,Oe,!1,!0),gW[Oe]=iu})(c,s,u);var Q,T,D,O=function(se){if(se===h&&Z)return Z;if(!a&&se&&se in H)return H[se];switch(se){case l:case g:case C:return function(){return new c(this,se)}}return function(){return new c(this)}},P=s+" Iterator",U=!1,H=t.prototype,$=H[A]||H["@@iterator"]||h&&H[h],Z=!a&&$||O(h),te=s==="Array"&&H.entries||$;if(te&&(Q=hW(te.call(new t)))!==Object.prototype&&Q.next&&(IW(Q,P,!0,!0),ZO[P]=m),Ts&&h===g&&$&&$.name!==g&&(U=!0,Z=function(){return qx($,this)}),h)if(T={values:O(g),keys:_?Z:O(l),entries:O(C)},B)for(D in T)(a||U||!(D in H))&&Wx(H,D,T[D]);else EW({target:s,proto:!0,forced:a||U},T);return B&&H[A]!==Z&&Wx(H,A,Z,{}),ZO[s]=Z,T},w=function(t,s){return{value:t,done:s}},b=od,M=ju,k=cI;sd.f;var V=y,K=w,q="Array Iterator",ce=k.set,oe=k.getterFor(q);V(Array,"Array",function(t,s){ce(this,{type:q,target:b(t),index:0,kind:s})},function(){var t=oe(this),s=t.target,c=t.index++;if(!s||c>=s.length)return t.target=null,K(void 0,!0);switch(t.kind){case"keys":return K(c,!1);case"values":return K(s[c],!1)}return K([c,s[c]],!1)},"values"),M.Arguments=M.Array;var le=Ha,pe=lI,Se=ju;for(var be in{CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0})pe(le[be],be),Se[be]=Se.Array;var Ue=Ha,xe=Nh,Le=function(t,s){var c=xe[t+"Prototype"],u=c&&c[s];if(u)return u;var h=Ue[t],_=h&&h.prototype;return _&&_[s]},je=Le("Array","values"),dt=Ip,pt=ks,zt=zd,gr=je,li=Array.prototype,ii={DOMTokenList:!0,NodeList:!0},br=sc(function(t){var s=BA(t);return t===li||zt(li,t)&&s===BA(li)||pt(ii,dt(t))?gr:s}),Zi=Ha;Fa({global:!0,forced:Zi.globalThis!==Zi},{globalThis:Zi});var Hn=sc(Ha);function ut(){let t=0,s=0;for(let u=0;u<28;u+=7){let h=this.buf[this.pos++];if(t|=(127&h)<>4,(128&c)==0)return this.assertBounds(),[t,s];for(let u=3;u<=31;u+=7){let h=this.buf[this.pos++];if(s|=(127&h)<>>_,Q=!(!(B>>>7)&&s==0),T=255&(Q?128|B:B);if(c.push(T),!Q)return}const u=t>>>28&15|(7&s)<<4,h=!!(s>>3);if(c.push(255&(h?128|u:u)),h){for(let _=3;_<31;_+=7){const B=s>>>_,Q=!!(B>>>7),T=255&(Q?128|B:B);if(c.push(T),!Q)return}c.push(s>>>31&1)}}const Wt=4294967296;function It(t){const s=t[0]==="-";s&&(t=t.slice(1));const c=1e6;let u=0,h=0;function _(B,Q){const T=Number(t.slice(B,Q));h*=c,u=u*c+T,u>=Wt&&(h+=u/Wt|0,u%=Wt)}return _(-24,-18),_(-18,-12),_(-12,-6),_(-6),s?Pe(u,h):ve(u,h)}function ne(t,s){var c=function(D,O){return{lo:D>>>0,hi:O>>>0}}(t,s);if(t=c.lo,(s=c.hi)<=2097151)return String(Wt*s+t);const u=16777215&(t>>>24|s<<8),h=s>>16&65535;let _=(16777215&t)+6777216*u+6710656*h,B=u+8147497*h,Q=2*h;const T=1e7;return _>=T&&(B+=Math.floor(_/T),_%=T),B>=T&&(Q+=Math.floor(B/T),B%=T),Q.toString()+Lt(B)+Lt(_)}function ve(t,s){return{lo:0|t,hi:0|s}}function Pe(t,s){return s=~s,t?t=1+~t:s+=1,ve(t,s)}const Lt=t=>{const s=String(t);return"0000000".slice(s.length)+s};function Kr(t,s){if(t>=0){for(;t>127;)s.push(127&t|128),t>>>=7;s.push(t)}else{for(let c=0;c<9;c++)s.push(127&t|128),t>>=7;s.push(1)}}function co(){let t=this.buf[this.pos++],s=127&t;if(!(128&t))return this.assertBounds(),s;if(t=this.buf[this.pos++],s|=(127&t)<<7,(128&t)==0)return this.assertBounds(),s;if(t=this.buf[this.pos++],s|=(127&t)<<14,(128&t)==0)return this.assertBounds(),s;if(t=this.buf[this.pos++],s|=(127&t)<<21,(128&t)==0)return this.assertBounds(),s;t=this.buf[this.pos++],s|=(15&t)<<28;for(let c=5;128&t&&c<10;c++)t=this.buf[this.pos++];if(128&t)throw new Error("invalid varint");return this.assertBounds(),s>>>0}const _n=function(){const t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(Hn.Deno||typeof process!="object"||typeof o!="object"||o.BUF_BIGINT_DISABLE!=="1")){const s=BigInt("-9223372036854775808"),c=BigInt("9223372036854775807"),u=BigInt("0"),h=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(_){const B=typeof _=="bigint"?_:BigInt(_);if(B>c||Bh||B(t.setInt32(0,_,!0),t.setInt32(4,B,!0),t.getBigInt64(0,!0)),uDec:(_,B)=>(t.setInt32(0,_,!0),t.setInt32(4,B,!0),t.getBigUint64(0,!0))}}return{zero:"0",supported:!1,parse:s=>(typeof s!="string"&&(s=s.toString()),Kc(s),s),uParse:s=>(typeof s!="string"&&(s=s.toString()),tE(s),s),enc:s=>(typeof s!="string"&&(s=s.toString()),Kc(s),It(s)),uEnc:s=>(typeof s!="string"&&(s=s.toString()),tE(s),It(s)),dec:(s,c)=>function(u,h){let _=ve(u,h);const B=2147483648&_.hi;B&&(_=Pe(_.lo,_.hi));const Q=ne(_.lo,_.hi);return B?"-"+Q:Q}(s,c),uDec:(s,c)=>ne(s,c)}}();function Kc(t){if(!/^-?[0-9]+$/.test(t))throw new Error("invalid int64: "+t)}function tE(t){if(!/^[0-9]+$/.test(t))throw new Error("invalid uint64: "+t)}var Dt;function dd(t,s){switch(t){case Dt.STRING:return"";case Dt.BOOL:return!1;case Dt.DOUBLE:case Dt.FLOAT:return 0;case Dt.INT64:case Dt.UINT64:case Dt.SFIXED64:case Dt.FIXED64:case Dt.SINT64:return s?"0":_n.zero;case Dt.BYTES:return new Uint8Array(0);default:return 0}}(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(Dt||(Dt={}));const rm=2,lc=Symbol.for("reflect unsafe local");function Cp(t,s){const c=t[s.localName].case;return c===void 0?c:s.fields.find(u=>u.localName===c)}function nu(t,s){return Object.prototype.hasOwnProperty.call(t,s)&&t[s]!==void 0}function rE(t,s){if(s.oneof){const c=t[s.oneof.localName];return c.case===s.localName?c.value:void 0}return t[s.localName]}function e9(t,s,c){s.oneof?t[s.oneof.localName]={case:s.localName,value:c}:t[s.localName]=c}function HQ(t){for(const s of t.field)nu(s,"jsonName")||(s.jsonName=np(s.name));t.nestedType.forEach(HQ)}var ou=Yg,ud=Array.isArray||function(t){return ou(t)==="Array"},YQ=Fa,ws=ud,Ps=Ka(RI([])),to=[1,2];YQ({target:"Array",proto:!0,forced:String(to)===String(RI(to).call(to))},{reverse:function(){return ws(this)&&(this.length=this.length),Ps(this)}});var Q1=Le("Array","reverse"),su=zd,us=Q1,au=Array.prototype,ji=sc(function(t){var s=RI(t);return t===au||su(au,t)&&s===RI(au)?us:s});function*wl(t){switch(t.kind){case"file":for(const s of t.messages)yield s,yield*wl(s);yield*t.enums,yield*t.services,yield*t.extensions;break;case"message":for(const s of t.nestedMessages)yield s,yield*wl(s);yield*t.nestedEnums,yield*t.nestedExtensions}}function Kh(){const t=function(){const _=new Map,B=new Map,Q=new Map;return{kind:"registry",types:_,extendees:B,[Symbol.iterator]:()=>br(_).call(_),get files(){return br(Q).call(Q)},addFile(T,D,O){if(Q.set(T.proto.name,T),!D)for(const P of wl(T))this.add(P);if(O)for(const P of T.dependencies)this.addFile(P,D,O)},add(T){if(T.kind=="extension"){let D=B.get(T.extendee.typeName);D||B.set(T.extendee.typeName,D=new Map),D.set(T.number,T)}_.set(T.typeName,T)},get:T=>_.get(T),getFile:T=>Q.get(T),getMessage(T){const D=_.get(T);return(D==null?void 0:D.kind)=="message"?D:void 0},getEnum(T){const D=_.get(T);return(D==null?void 0:D.kind)=="enum"?D:void 0},getExtension(T){const D=_.get(T);return(D==null?void 0:D.kind)=="extension"?D:void 0},getExtensionFor(T,D){var O;return(O=B.get(T.typeName))===null||O===void 0?void 0:O.get(D)},getService(T){const D=_.get(T);return(D==null?void 0:D.kind)=="service"?D:void 0}}}();for(var s=arguments.length,c=new Array(s),u=0;u"file ".concat(t.name)},_=new Map,B={get:Q=>_.get(Q),add(Q){var T;iE(((T=Q.proto.options)===null||T===void 0?void 0:T.mapEntry)===!0),_.set(Q.typeName,Q)}};for(const Q of t.enumType)Uz(Q,h,void 0,s);for(const Q of t.messageType)xz(Q,h,void 0,s,B);for(const Q of t.service)Dne(Q,h,s);fW(h,s);for(const Q of br(_).call(_))_W(Q,s,B);for(const Q of h.messages)_W(Q,s,B),fW(Q,s);s.addFile(h,!0)}function fW(t,s){switch(t.kind){case"file":for(const c of t.proto.extension){const u=mW(c,t,s);t.extensions.push(u),s.add(u)}break;case"message":for(const c of t.proto.extension){const u=mW(c,t,s);t.nestedExtensions.push(u),s.add(u)}for(const c of t.nestedMessages)fW(c,s)}}function _W(t,s,c){const u=t.proto.oneofDecl.map(_=>function(B,Q){return{kind:"oneof",proto:B,deprecated:!1,parent:Q,fields:[],name:B.name,localName:op(np(B.name)),toString(){return"oneof ".concat(Q.typeName,".").concat(this.name)}}}(_,t)),h=new Set;for(const _ of t.proto.field){const B=Lne(_,u),Q=mW(_,t,s,B,c);t.fields.push(Q),t.field[Q.localName]=Q,B===void 0?t.members.push(Q):(B.fields.push(Q),h.has(B)||(h.add(B),t.members.push(B)))}for(const _ of u.filter(B=>h.has(B)))t.oneofs.push(_);for(const _ of t.nestedMessages)_W(_,s,c)}function Uz(t,s,c,u){var h,_,B,Q,T;const D=function(P,U){const H=(($=P).substring(0,1)+$.substring(1).replace(/[A-Z]/g,Z=>"_"+Z)).toLowerCase()+"_";var $;for(const Z of U){if(!Z.name.toLowerCase().startsWith(H))return;const te=Z.name.substring(H.length);if(te.length==0||/^\d/.test(te))return}return H}(t.name,t.value),O={kind:"enum",proto:t,deprecated:(_=(h=t.options)===null||h===void 0?void 0:h.deprecated)!==null&&_!==void 0&&_,file:s,parent:c,open:!0,name:t.name,typeName:Xx(t,c,s),value:{},values:[],sharedPrefix:D,toString(){return"enum ".concat(this.typeName)}};O.open=function(P){var U;return vne==jQ("enumType",{proto:P.proto,parent:(U=P.parent)!==null&&U!==void 0?U:P.file})}(O),u.add(O);for(const P of t.value){const U=P.name;br(O).push(O.value[P.number]={kind:"enum_value",proto:P,deprecated:(Q=(B=P.options)===null||B===void 0?void 0:B.deprecated)!==null&&Q!==void 0&&Q,parent:O,name:U,localName:op(D==null?U:U.substring(D.length)),number:P.number,toString:()=>"enum value ".concat(O.typeName,".").concat(U)})}((T=c==null?void 0:c.nestedEnums)!==null&&T!==void 0?T:s.enums).push(O)}function xz(t,s,c,u,h){var _,B,Q,T;const D={kind:"message",proto:t,deprecated:(B=(_=t.options)===null||_===void 0?void 0:_.deprecated)!==null&&B!==void 0&&B,file:s,parent:c,name:t.name,typeName:Xx(t,c,s),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return"message ".concat(this.typeName)}};((Q=t.options)===null||Q===void 0?void 0:Q.mapEntry)===!0?h.add(D):(((T=c==null?void 0:c.nestedMessages)!==null&&T!==void 0?T:s.messages).push(D),u.add(D));for(const O of t.enumType)Uz(O,s,D,u);for(const O of t.nestedType)xz(O,s,D,u,h)}function Dne(t,s,c){var u,h;const _={kind:"service",proto:t,deprecated:(h=(u=t.options)===null||u===void 0?void 0:u.deprecated)!==null&&h!==void 0&&h,file:s,name:t.name,typeName:Xx(t,void 0,s),methods:[],method:{},toString(){return"service ".concat(this.typeName)}};s.services.push(_),c.add(_);for(const B of t.method){const Q=bne(B,_,c);_.methods.push(Q),_.method[Q.localName]=Q}}function bne(t,s,c){var u,h,_,B;let Q;Q=t.clientStreaming&&t.serverStreaming?"bidi_streaming":t.clientStreaming?"client_streaming":t.serverStreaming?"server_streaming":"unary";const T=c.getMessage(dI(t.inputType)),D=c.getMessage(dI(t.outputType));iE(T,"invalid MethodDescriptorProto: input_type ".concat(t.inputType," not found")),iE(D,"invalid MethodDescriptorProto: output_type ".concat(t.inputType," not found"));const O=t.name;return{kind:"rpc",proto:t,deprecated:(h=(u=t.options)===null||u===void 0?void 0:u.deprecated)!==null&&h!==void 0&&h,parent:s,name:O,localName:op(O.length?op(O[0].toLowerCase()+O.substring(1)):O),methodKind:Q,input:T,output:D,idempotency:(B=(_=t.options)===null||_===void 0?void 0:_.idempotencyLevel)!==null&&B!==void 0?B:yne,toString:()=>"rpc ".concat(s.typeName,".").concat(O)}}function mW(t,s,c,u,h){var _,B,Q;const T=h===void 0,D={kind:"field",proto:t,deprecated:(B=(_=t.options)===null||_===void 0?void 0:_.deprecated)!==null&&B!==void 0&&B,name:t.name,number:t.number,scalar:void 0,message:void 0,enum:void 0,presence:Mne(t,u,T,s),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(T){const H=s.kind=="file"?s:s.file,$=s.kind=="file"?void 0:s,Z=Xx(t,$,H);D.kind="extension",D.file=H,D.parent=$,D.oneof=void 0,D.typeName=Z,D.jsonName="[".concat(Z,"]"),D.toString=()=>"extension ".concat(Z);const te=c.getMessage(dI(t.extendee));iE(te,"invalid FieldDescriptorProto: extendee ".concat(t.extendee," not found")),D.extendee=te}else{const H=s;iE(H.kind=="message"),D.parent=H,D.oneof=u,D.localName=u?np(t.name):op(np(t.name)),D.jsonName=t.jsonName,D.toString=()=>"field ".concat(H.typeName,".").concat(t.name)}const O=t.label,P=t.type,U=(Q=t.options)===null||Q===void 0?void 0:Q.jstype;if(O===CW){const H=P==r9?h==null?void 0:h.get(dI(t.typeName)):void 0;if(H){D.fieldKind="map";const $=function(se){const ge=se.fields.find(Qe=>Qe.number===1),me=se.fields.find(Qe=>Qe.number===2);return iE(ge&&ge.fieldKind=="scalar"&&ge.scalar!=Dt.BYTES&&ge.scalar!=Dt.FLOAT&&ge.scalar!=Dt.DOUBLE&&me&&me.fieldKind!="list"&&me.fieldKind!="map"),{key:ge,value:me}}(H),Z=$.key,te=$.value;return D.mapKey=Z.scalar,D.mapKind=te.fieldKind,D.message=te.message,D.delimitedEncoding=!1,D.enum=te.enum,D.scalar=te.scalar,D}switch(D.fieldKind="list",P){case r9:case t9:D.listKind="message",D.message=c.getMessage(dI(t.typeName)),iE(D.message),D.delimitedEncoding=Fz(t,s);break;case Oz:D.listKind="enum",D.enum=c.getEnum(dI(t.typeName)),iE(D.enum);break;default:D.listKind="scalar",D.scalar=P,D.longAsString=U==Lz}return D.packed=function($,Z){if($.label!=CW)return!1;switch($.type){case Bne:case Sne:case t9:case r9:return!1}const te=$.options;return te&&nu(te,"packed")?te.packed:Tne==jQ("repeatedFieldEncoding",{proto:$,parent:Z})}(t,s),D}switch(P){case r9:case t9:D.fieldKind="message",D.message=c.getMessage(dI(t.typeName)),iE(D.message,"invalid FieldDescriptorProto: type_name ".concat(t.typeName," not found")),D.delimitedEncoding=Fz(t,s),D.getDefaultValue=()=>{};break;case Oz:{const H=c.getEnum(dI(t.typeName));iE(H!==void 0,"invalid FieldDescriptorProto: type_name ".concat(t.typeName," not found")),D.fieldKind="enum",D.enum=c.getEnum(dI(t.typeName)),D.getDefaultValue=()=>nu(t,"defaultValue")?function($,Z){const te=br($).find(se=>se.name===Z);if(!te)throw new Error("cannot parse ".concat($," default value: ").concat(Z));return te.number}(H,t.defaultValue):void 0;break}default:D.fieldKind="scalar",D.scalar=P,D.longAsString=U==Lz,D.getDefaultValue=()=>nu(t,"defaultValue")?function(H,$){switch(H){case Dt.STRING:return $;case Dt.BYTES:{const Z=function(te){const se=[],ge={tail:te,c:"",next(){return this.tail.length!=0&&(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(me){if(this.tail.length>=me){const Qe=this.tail.substring(0,me);return this.tail=this.tail.substring(me),Qe}return!1}};for(;ge.next();)if(ge.c==="\\"){if(ge.next())switch(ge.c){case"\\":se.push(ge.c.charCodeAt(0));break;case"b":se.push(8);break;case"f":se.push(12);break;case"n":se.push(10);break;case"r":se.push(13);break;case"t":se.push(9);break;case"v":se.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const me=ge.c,Qe=ge.take(2);if(Qe===!1)return!1;const Oe=parseInt(me+Qe,8);if(Number.isNaN(Oe))return!1;se.push(Oe);break}case"x":{const me=ge.c,Qe=ge.take(2);if(Qe===!1)return!1;const Oe=parseInt(me+Qe,16);if(Number.isNaN(Oe))return!1;se.push(Oe);break}case"u":{const me=ge.c,Qe=ge.take(4);if(Qe===!1)return!1;const Oe=parseInt(me+Qe,16);if(Number.isNaN(Oe))return!1;const we=new Uint8Array(4);new DataView(we.buffer).setInt32(0,Oe,!0),se.push(we[0],we[1],we[2],we[3]);break}case"U":{const me=ge.c,Qe=ge.take(8);if(Qe===!1)return!1;const Oe=_n.uEnc(me+Qe),we=new Uint8Array(8),Ne=new DataView(we.buffer);Ne.setInt32(0,Oe.lo,!0),Ne.setInt32(4,Oe.hi,!0),se.push(we[0],we[1],we[2],we[3],we[4],we[5],we[6],we[7]);break}}}else se.push(ge.c.charCodeAt(0));return new Uint8Array(se)}($);if(Z===!1)throw new Error("cannot parse ".concat(Dt[H]," default value: ").concat($));return Z}case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:return _n.parse($);case Dt.UINT64:case Dt.FIXED64:return _n.uParse($);case Dt.DOUBLE:case Dt.FLOAT:switch($){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return Number.NaN;default:return parseFloat($)}case Dt.BOOL:return $==="true";case Dt.INT32:case Dt.UINT32:case Dt.SINT32:case Dt.FIXED32:case Dt.SFIXED32:return parseInt($,10)}}(P,t.defaultValue):void 0}return D}function Nne(t){switch(t.syntax){case"":case"proto2":return Zu;case"proto3":return mne;case"editions":if(t.edition in kz)return t.edition;throw new Error("".concat(t.name,": unsupported edition"));default:throw new Error("".concat(t.name,': unsupported syntax "').concat(t.syntax,'"'))}}function One(t,s){return t.dependency.map(c=>{const u=s.getFile(c);if(!u)throw new Error("Cannot find ".concat(c,", imported by ").concat(t.name));return u})}function Xx(t,s,c){let u;return u=s?"".concat(s.typeName,".").concat(t.name):c.proto.package.length>0?"".concat(c.proto.package,".").concat(t.name):"".concat(t.name),u}function dI(t){return t.startsWith(".")?t.substring(1):t}function Lne(t,s){if(!nu(t,"oneofIndex")||t.proto3Optional)return;const c=s[t.oneofIndex];return iE(c,"invalid FieldDescriptorProto: oneof #".concat(t.oneofIndex," for field #").concat(t.number," not found")),c}function Mne(t,s,c,u){if(t.label==Rne)return Qne;if(t.label==CW)return Mz;if(s||t.proto3Optional||c)return pW;const h=jQ("fieldPresence",{proto:t,parent:u});return h!=Mz||t.type!=r9&&t.type!=t9?h:pW}function Fz(t,s){return t.type==t9||wne==jQ("messageEncoding",{proto:t,parent:s})}function jQ(t,s){var c,u;const h=(c=s.proto.options)===null||c===void 0?void 0:c.features;if(h){const _=h[t];if(_!=0)return _}if("kind"in s){if(s.kind=="message")return jQ(t,(u=s.parent)!==null&&u!==void 0?u:s.file);const _=kz[s.edition];if(!_)throw new Error("feature default for edition ".concat(s.edition," not found"));return _[t]}return jQ(t,s.parent)}function iE(t,s){if(!t)throw new Error(s)}function Gz(t){var s,c,u,h,_,B,Q,T;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:t.name,field:(c=(s=t.field)===null||s===void 0?void 0:s.map(kne))!==null&&c!==void 0?c:[],extension:[],nestedType:(h=(u=t.nestedType)===null||u===void 0?void 0:u.map(Gz))!==null&&h!==void 0?h:[],enumType:(B=(_=t.enumType)===null||_===void 0?void 0:_.map(Vz))!==null&&B!==void 0?B:[],extensionRange:(T=(Q=t.extensionRange)===null||Q===void 0?void 0:Q.map(O=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},O)))!==null&&T!==void 0?T:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function kne(t){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},t),{options:t.options?Pne(t.options):void 0}))}function Pne(t){var s,c,u;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},t),{targets:(s=t.targets)!==null&&s!==void 0?s:[],editionDefaults:(u=(c=t.editionDefaults)===null||c===void 0?void 0:c.map(_=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},_)))!==null&&u!==void 0?u:[],uninterpretedOption:[]}))}function Vz(t){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:t.name,reservedName:[],reservedRange:[],value:t.value.map(c=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},c))})}function Kz(t){const s=function(){if(!JQ){JQ=[];const T=Yz("std");for(let D=0;D>4,Q=u,B=2;break;case 2:h[_++]=(15&Q)<<4|(60&u)>>2,Q=u,B=3;break;case 3:h[_++]=(3&Q)<<6|u,B=0}}if(B==1)throw Error("invalid base64 string");return h.subarray(0,_)}let zx,Hz,JQ;function Yz(t){return zx||(zx="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Hz=zx.slice(0,-2).concat("-","_")),t=="url"?Hz:zx}Fa({target:"Array",stat:!0},{isArray:ud});var Une=sc(Nh.Array.isArray),xne=TypeError,jz=function(t){if(t>9007199254740991)throw new xne("Maximum allowed index exceeded");return t},Fne=Bl,Gne=sd,Vne=j_,$x=function(t,s,c){Fne?Gne.f(t,s,Vne(0,c)):t[s]=c},Kne=Bl,Hne=ud,Yne=TypeError,jne=Object.getOwnPropertyDescriptor,Zx=Kne&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}()?function(t,s){if(Hne(t)&&!jne(t,"length").writable)throw new Yne("Cannot set read only .length");return t.length=s}:function(t,s){return t.length=s},Jne=Ac,BW=kh,qne=Ka(Function.toString);Jne(BW.inspectSource)||(BW.inspectSource=function(t){return qne(t)});var Wne=BW.inspectSource,Xne=Ka,zne=xa,Jz=Ac,$ne=Ip,Zne=Wne,qz=function(){},Wz=qu("Reflect","construct"),SW=/^\s*(?:class|function)\b/,eoe=Xne(SW.exec),toe=!SW.test(qz),i9=function(t){if(!Jz(t))return!1;try{return Wz(qz,[],t),!0}catch{return!1}},Xz=function(t){if(!Jz(t))return!1;switch($ne(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return toe||!!eoe(SW,Zne(t))}catch{return!0}};Xz.sham=!0;var RW=!Wz||zne(function(){var t;return i9(i9.call)||!i9(Object)||!i9(function(){t=!0})||t})?Xz:i9,zz=ud,roe=RW,ioe=ml,noe=ja("species"),$z=Array,Zz=function(t,s){return new(function(c){var u;return zz(c)&&(u=c.constructor,(roe(u)&&(u===$z||zz(u.prototype))||ioe(u)&&(u=u[noe])===null)&&(u=void 0)),u===void 0?$z:u}(t))(s===0?0:s)},ooe=xa,soe=Ap,aoe=ja("species"),e$=function(t){return soe>=51||!ooe(function(){var s=[];return(s.constructor={})[aoe]=function(){return{foo:1}},s[t](Boolean).foo!==1})},Aoe=Fa,coe=xa,loe=ud,doe=ml,uoe=R1,goe=yl,t$=jz,r$=$x,Eoe=Zx,hoe=Zz,Ioe=e$,Coe=Ap,i$=ja("isConcatSpreadable"),poe=Coe>=51||!coe(function(){var t=[];return t[i$]=!1,t.concat()[0]!==t}),foe=function(t){if(!doe(t))return!1;var s=t[i$];return s!==void 0?!!s:loe(t)};Aoe({target:"Array",proto:!0,forced:!poe||!Ioe("concat")},{concat:function(t){var s,c,u,h,_,B=uoe(this),Q=hoe(B,0),T=0;for(s=-1,u=arguments.length;sse;se++)if((Q||se in $)&&(U=te(P=$[se],se,H),t))if(s)wW(me,se,U);else if(U)switch(t){case 3:return!0;case 5:return P;case 6:return se;case 2:wW(me,ge++,P)}else switch(t){case 4:return!1;case 7:wW(me,ge++,P)}return _?-1:u||h?h:me}},Goe={forEach:Foe(0)},tF=Fa,n9=Ha,vW=ad,Voe=Ka,qQ=Bl,WQ=cp,Koe=xa,kA=ks,Hoe=zd,DW=bh,rF=od,bW=aI,Yoe=pp,NW=j_,XQ=xQ,l$=eu,joe=yW,d$=n$,Joe=QW,u$=vO,g$=sd,qoe=xO,E$=zg,h$=Z_,OW=Wu,I$=TQ,C$=G_,Woe=ja,Xoe=TW,zoe=Ja,$oe=A$,Zoe=lI,p$=cI,iF=Goe.forEach,Hc=QQ("hidden"),nF="Symbol",o9="prototype",ese=p$.set,f$=p$.getterFor(nF),nE=Object[o9],zQ=n9.Symbol,oF=zQ&&zQ[o9],tse=n9.RangeError,rse=n9.TypeError,LW=n9.QObject,_$=u$.f,im=g$.f,m$=d$.f,ise=E$.f,B$=Voe([].push),uI=OW("symbols"),s9=OW("op-symbols"),nse=OW("wks"),MW=!LW||!LW[o9]||!LW[o9].findChild,S$=function(t,s,c){var u=_$(nE,s);return u&&delete nE[s],im(t,s,c),u&&t!==nE&&im(nE,s,u),t},kW=qQ&&Koe(function(){return XQ(im({},"a",{get:function(){return im(this,"a",{value:7}).a}})).a!==7})?S$:im,PW=function(t,s){var c=uI[t]=XQ(oF);return ese(c,{type:nF,tag:t,description:s}),qQ||(c.description=s),c},sF=function(t,s,c){t===nE&&sF(s9,s,c),DW(t);var u=bW(s);return DW(c),kA(uI,u)?(("enumerable"in c?!c.enumerable:!kA(t,u)||kA(t,Hc)&&t[Hc][u])?(kA(t,Hc)||im(t,Hc,NW(1,XQ(null))),t[Hc][u]=!0):(kA(t,Hc)&&t[Hc][u]&&(t[Hc][u]=!1),c=XQ(c,{enumerable:NW(0,!1)})),kW(t,u,c)):im(t,u,c)},UW=function(t,s){DW(t);var c=rF(s),u=l$(c).concat(T$(c));return iF(u,function(h){qQ&&!vW(R$,c,h)||sF(t,h,c[h])}),t},R$=function(t){var s=bW(t),c=vW(ise,this,s);return!(this===nE&&kA(uI,s)&&!kA(s9,s))&&(!(c||!kA(this,s)||!kA(uI,s)||kA(this,Hc)&&this[Hc][s])||c)},y$=function(t,s){var c=rF(t),u=bW(s);if(c!==nE||!kA(uI,u)||kA(s9,u)){var h=_$(c,u);return!h||!kA(uI,u)||kA(c,Hc)&&c[Hc][u]||(h.enumerable=!0),h}},Q$=function(t){var s=m$(rF(t)),c=[];return iF(s,function(u){kA(uI,u)||kA(I$,u)||B$(c,u)}),c},T$=function(t){var s=t===nE,c=m$(s?s9:rF(t)),u=[];return iF(c,function(h){!kA(uI,h)||s&&!kA(nE,h)||B$(u,uI[h])}),u};WQ||(h$(oF=(zQ=function(){if(Hoe(oF,this))throw new rse("Symbol is not a constructor");var t=arguments.length&&arguments[0]!==void 0?Yoe(arguments[0]):void 0,s=C$(t),c=function(u){var h=this===void 0?n9:this;h===nE&&vW(c,s9,u),kA(h,Hc)&&kA(h[Hc],s)&&(h[Hc][s]=!1);var _=NW(1,u);try{kW(h,s,_)}catch(B){if(!(B instanceof tse))throw B;S$(h,s,_)}};return qQ&&MW&&kW(nE,s,{configurable:!0,set:c}),PW(s,t)})[o9],"toString",function(){return f$(this).tag}),h$(zQ,"withoutSetter",function(t){return PW(C$(t),t)}),E$.f=R$,g$.f=sF,qoe.f=UW,u$.f=y$,joe.f=d$.f=Q$,Joe.f=T$,Xoe.f=function(t){return PW(Woe(t),t)},qQ&&function(t,s,c){Toe.f(t,s,c)}(oF,"description",{configurable:!0,get:function(){return f$(this).description}})),tF({global:!0,wrap:!0,forced:!WQ,sham:!WQ},{Symbol:zQ}),iF(l$(nse),function(t){zoe(t)}),tF({target:nF,stat:!0,forced:!WQ},{useSetter:function(){MW=!0},useSimple:function(){MW=!1}}),tF({target:"Object",stat:!0,forced:!WQ,sham:!qQ},{create:function(t,s){return s===void 0?XQ(t):UW(XQ(t),s)},defineProperty:sF,defineProperties:UW,getOwnPropertyDescriptor:y$}),tF({target:"Object",stat:!0,forced:!WQ},{getOwnPropertyNames:Q$}),$oe(),Zoe(zQ,nF),I$[Hc]=!0;var w$=cp&&!!Symbol.for&&!!Symbol.keyFor,ose=Fa,sse=qu,ase=ks,Ase=pp,v$=Wu,cse=w$,xW=v$("string-to-symbol-registry"),lse=v$("symbol-to-string-registry");ose({target:"Symbol",stat:!0,forced:!cse},{for:function(t){var s=Ase(t);if(ase(xW,s))return xW[s];var c=sse("Symbol")(s);return xW[s]=c,lse[c]=s,c}});var dse=Fa,gse=ks,Ese=Ya,hse=Sl,Ise=w$,D$=Wu("symbol-to-string-registry");dse({target:"Symbol",stat:!0,forced:!Ise},{keyFor:function(t){if(!Ese(t))throw new TypeError(hse(t)+" is not a symbol");if(gse(D$,t))return D$[t]}});var Cse=ml,pse=cI.get,FW=Ka,fse=ks,aF=SyntaxError,_se=parseInt,mse=String.fromCharCode,Bse=FW("".charAt),b$=FW("".slice),N$=FW(/./.exec),O$={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` +`,"\\r":"\r","\\t":" "},Sse=/^[\da-f]{4}$/i,Rse=/^[\u0000-\u001F]$/,yse=!xa(function(){var t="9007199254740993",s=JSON.rawJSON(t);return!JSON.isRawJSON(s)||JSON.stringify(s)!==t}),Qse=Fa,L$=qu,Tse=W_,M$=ad,nm=Ka,k$=xa,P$=ud,AF=Ac,U$=Ya,x$=Yg,wse=pp,vse=eF,Dse=function(t,s){for(var c=!0,u="";s=Q?t?"":void 0:(u=nZ(_,B))<55296||u>56319||B+1===Q||(h=nZ(_,B+1))<56320||h>57343?t?sae(_,B):u:t?aae(_,B,B+2):h-56320+(u-55296<<10)+65536}},cae=Aae(!0),lae=pp,oZ=cI,dae=y,sZ=w,aZ="String Iterator",uae=oZ.set,gae=oZ.getterFor(aZ);dae(String,"String",function(t){uae(this,{type:aZ,string:lae(t),index:0})},function(){var t,s=gae(this),c=s.string,u=s.index;return u>=c.length?sZ(void 0,!0):(t=cae(c,u),s.index+=t.length,sZ(t,!1))});var Eae=Ip,AZ=EO,hae=hQ,Iae=ju,Cae=ja("iterator"),WW=function(t){if(!hae(t))return AZ(t,Cae)||AZ(t,"@@iterator")||Iae[Eae(t)]},pae=sc(WW),fae=R1,_ae=yl,mae=Zx,Bae=jz;Fa({target:"Array",proto:!0,forced:xa(function(){return[].push.call({length:4294967296},1)!==4294967297})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var s=fae(this),c=_ae(s),u=arguments.length;Bae(c+u);for(var h=0;h1?arguments[1]:void 0,h=u!==void 0;h&&(u=rAe(u,c>2?arguments[2]:void 0));var _,B,Q,T,D,O,P=nAe(t),U=dAe(P),H=0;if(!U||this===EZ&&sAe(U))for(_=AAe(P),B=s?new this(_):EZ(_);_>H;H++)O=h?u(P[H],H):P[H],gZ(B,H,O);else for(B=s?new this:[],D=(T=lAe(P,U)).next;!(Q=iAe(D,T)).done;H++){O=h?oAe(T,u,[Q.value,H],!0):Q.value;try{gZ(B,H,O)}catch($){uAe(T,"throw",$)}}return cAe(B,H),B}});var EAe=sc(Nh.Array.from);function pZ(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=new Array(s);c0;)t[h]=t[--h];h!==_++&&(t[h]=u)}else for(var B=IAe(c/2),Q=ZW(_Z(t,0,B),s),T=ZW(_Z(t,B),s),D=Q.length,O=T.length,P=0,U=0;P3)){if(wAe)return!0;if(vZ)return vZ<603;var t,s,c,u,h="";for(t=65;t<76;t++){switch(s=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:c=3;break;case 68:case 71:c=4;break;default:c=2}for(u=0;u<47;u++)oE.push({k:s+u,v:c})}for(x1(oE).call(oE,function(_,B){return B.v-_.v}),u=0;uO?1:-1}}(t)),c=yZ(h),u=0;u1?arguments[1]:void 0)}});var qAe=Le("Array","includes"),WAe=ml,XAe=Yg,zAe=ja("match"),$Ae=TypeError,ZAe=ja("match"),e1e=Fa,t1e=function(t){if(function(s){var c;return WAe(s)&&((c=s[zAe])!==void 0?!!c:XAe(s)==="RegExp")}(t))throw new $Ae("The method doesn't accept regular expressions");return t},r1e=Yu,OZ=pp,i1e=Ka("".indexOf);e1e({target:"String",proto:!0,forced:!function(t){var s=/./;try{"/./"[t](s)}catch{try{return s[ZAe]=!1,"/./"[t](s)}catch{}}return!1}("includes")},{includes:function(t){return!!~i1e(OZ(r1e(this)),OZ(t1e(t)),arguments.length>1?arguments[1]:void 0)}});var n1e=Le("String","includes"),LZ=zd,o1e=qAe,s1e=n1e,nX=Array.prototype,oX=String.prototype,dF=sc(function(t){var s=Et(t);return t===nX||LZ(nX,t)&&s===Et(nX)?o1e:typeof t=="string"||t===oX||LZ(oX,t)&&s===Et(oX)?s1e:s});const MZ=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"];class gd extends Error{constructor(s,c){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"FieldValueInvalidError";super(c),this.name=u,this.field=()=>s}}function mp(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function sX(t,s){var c,u,h,_;if(mp(t)&&lc in t&&"add"in t&&"field"in t&&typeof t.field=="function"){if(s!==void 0){const B=s,Q=t.field();return B.listKind==Q.listKind&&B.scalar===Q.scalar&&((c=B.message)===null||c===void 0?void 0:c.typeName)===((u=Q.message)===null||u===void 0?void 0:u.typeName)&&((h=B.enum)===null||h===void 0?void 0:h.typeName)===((_=Q.enum)===null||_===void 0?void 0:_.typeName)}return!0}return!1}function aX(t,s){var c,u,h,_;if(mp(t)&&lc in t&&"has"in t&&"field"in t&&typeof t.field=="function"){if(s!==void 0){const B=s,Q=t.field();return B.mapKey===Q.mapKey&&B.mapKind==Q.mapKind&&B.scalar===Q.scalar&&((c=B.message)===null||c===void 0?void 0:c.typeName)===((u=Q.message)===null||u===void 0?void 0:u.typeName)&&((h=B.enum)===null||h===void 0?void 0:h.typeName)===((_=Q.enum)===null||_===void 0?void 0:_.typeName)}return!0}return!1}function AX(t,s){return mp(t)&&lc in t&&"desc"in t&&mp(t.desc)&&t.desc.kind==="message"&&(s===void 0||t.desc.typeName==s.typeName)}const cX=Symbol.for("@bufbuild/protobuf/text-encoding");function lX(){if(Hn[cX]==null){const t=new Hn.TextEncoder,s=new Hn.TextDecoder;Hn[cX]={encodeUtf8:c=>t.encode(c),decodeUtf8:c=>s.decode(c),checkUtf8(c){try{return encodeURIComponent(c),!0}catch{return!1}}}}return Hn[cX]}var fA;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(fA||(fA={}));const kZ=34028234663852886e22,PZ=-34028234663852886e22,UZ=4294967295,xZ=2147483647,FZ=-2147483648;class GZ{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:lX().encodeUtf8;this.encodeUtf8=s,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let s=0;for(let h=0;h>>0)}raw(s){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(s),this}uint32(s){for(VZ(s);s>127;)this.buf.push(127&s|128),s>>>=7;return this.buf.push(s),this}int32(s){return uX(s),Kr(s,this.buf),this}bool(s){return this.buf.push(s?1:0),this}bytes(s){return this.uint32(s.byteLength),this.raw(s)}string(s){let c=this.encodeUtf8(s);return this.uint32(c.byteLength),this.raw(c)}float(s){(function(u){if(typeof u=="string"){const h=u;if(u=Number(u),Number.isNaN(u)&&h!=="NaN")throw new Error("invalid float32: "+h)}else if(typeof u!="number")throw new Error("invalid float32: "+typeof u);if(Number.isFinite(u)&&(u>kZ||u>31)>>>0,this.buf),this}sfixed64(s){let c=new Uint8Array(8),u=new DataView(c.buffer),h=_n.enc(s);return u.setInt32(0,h.lo,!0),u.setInt32(4,h.hi,!0),this.raw(c)}fixed64(s){let c=new Uint8Array(8),u=new DataView(c.buffer),h=_n.uEnc(s);return u.setInt32(0,h.lo,!0),u.setInt32(4,h.hi,!0),this.raw(c)}int64(s){let c=_n.enc(s);return kt(c.lo,c.hi,this.buf),this}sint64(s){const c=_n.enc(s),u=c.hi>>31;return kt(c.lo<<1^u,(c.hi<<1|c.lo>>>31)^u,this.buf),this}uint64(s){const c=_n.uEnc(s);return kt(c.lo,c.hi,this.buf),this}}class dX{constructor(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lX().decodeUtf8;this.decodeUtf8=c,this.varint64=ut,this.uint32=co,this.buf=s,this.len=s.length,this.pos=0,this.view=new DataView(s.buffer,s.byteOffset,s.byteLength)}tag(){let s=this.uint32(),c=s>>>3,u=7&s;if(c<=0||u<0||u>5)throw new Error("illegal tag: field no "+c+" wire type "+u);return[c,u]}skip(s,c){let u=this.pos;switch(s){case fA.Varint:for(;128&this.buf[this.pos++];);break;case fA.Bit64:this.pos+=4;case fA.Bit32:this.pos+=4;break;case fA.LengthDelimited:let h=this.uint32();this.pos+=h;break;case fA.StartGroup:for(;;){const _=PA(this.tag(),2),B=_[0],Q=_[1];if(Q===fA.EndGroup){if(c!==void 0&&B!==c)throw new Error("invalid end group tag");break}this.skip(Q,B)}break;default:throw new Error("cant skip wire type "+s)}return this.assertBounds(),this.buf.subarray(u,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let s=this.uint32();return s>>>1^-(1&s)}int64(){return _n.dec(...this.varint64())}uint64(){return _n.uDec(...this.varint64())}sint64(){let s=PA(this.varint64(),2),c=s[0],u=s[1],h=-(1&c);return c=(c>>>1|(1&u)<<31)^h,u=u>>>1^h,_n.dec(c,u)}bool(){let s=PA(this.varint64(),2),c=s[0],u=s[1];return c!==0||u!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return _n.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return _n.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let s=this.uint32(),c=this.pos;return this.pos+=s,this.assertBounds(),this.buf.subarray(c,c+s)}string(){return this.decodeUtf8(this.bytes())}}function uX(t){if(typeof t=="string")t=Number(t);else if(typeof t!="number")throw new Error("invalid int32: "+typeof t);if(!Number.isInteger(t)||t>xZ||tUZ||t<0)throw new Error("invalid uint32: "+t)}function om(t,s){const c=t.fieldKind=="list"?sX(s,t):t.fieldKind=="map"?aX(s,t):gX(t,s);if(c===!0)return;let u;switch(t.fieldKind){case"list":u="expected ".concat(jZ(t),", got ").concat(T1(s));break;case"map":u="expected ".concat(JZ(t),", got ").concat(T1(s));break;default:u=uF(t,s,c)}return new gd(t,u)}function KZ(t,s,c){const u=gX(t,c);if(u!==!0)return new gd(t,"list item #".concat(s+1,": ").concat(uF(t,c,u)))}function gX(t,s){return t.scalar!==void 0?HZ(s,t.scalar):t.enum!==void 0?t.enum.open?Number.isInteger(s):br(t.enum).some(c=>c.number===s):AX(s,t.message)}function HZ(t,s){switch(s){case Dt.DOUBLE:return typeof t=="number";case Dt.FLOAT:return typeof t=="number"&&(!(!Number.isNaN(t)&&Number.isFinite(t))||!(t>kZ||txZ||tUZ||t<0)||"".concat(t.toFixed()," out of range"));case Dt.BOOL:return typeof t=="boolean";case Dt.STRING:return typeof t=="string"&&(lX().checkUtf8(t)||"invalid UTF8");case Dt.BYTES:return t instanceof Uint8Array;case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return _n.parse(t),!0}catch{return"".concat(t," out of range")}return!1;case Dt.FIXED64:case Dt.UINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return _n.uParse(t),!0}catch{return"".concat(t," out of range")}return!1}}function uF(t,s,c){return c=typeof c=="string"?": ".concat(c):", got ".concat(T1(s)),t.scalar!==void 0?"expected ".concat(function(u){switch(u){case Dt.STRING:return"string";case Dt.BOOL:return"boolean";case Dt.INT64:case Dt.SINT64:case Dt.SFIXED64:return"bigint (int64)";case Dt.UINT64:case Dt.FIXED64:return"bigint (uint64)";case Dt.BYTES:return"Uint8Array";case Dt.DOUBLE:return"number (float64)";case Dt.FLOAT:return"number (float32)";case Dt.FIXED32:case Dt.UINT32:return"number (uint32)";case Dt.INT32:case Dt.SFIXED32:case Dt.SINT32:return"number (int32)"}}(t.scalar))+c:t.enum!==void 0?"expected ".concat(t.enum.toString())+c:"expected ".concat(YZ(t.message))+c}function T1(t){switch(typeof t){case"object":return t===null?"null":t instanceof Uint8Array?"Uint8Array(".concat(t.length,")"):Array.isArray(t)?"Array(".concat(t.length,")"):sX(t)?jZ(t.field()):aX(t)?JZ(t.field()):AX(t)?YZ(t.desc):iX(t)?"message ".concat(t.$typeName):"object";case"string":return t.length>30?"string":'"'.concat(t.split('"').join('\\"'),'"');case"boolean":case"number":return String(t);case"bigint":return String(t)+"n";default:return typeof t}}function YZ(t){return"ReflectMessage (".concat(t.typeName,")")}function jZ(t){switch(t.listKind){case"message":return"ReflectList (".concat(t.message.toString(),")");case"enum":return"ReflectList (".concat(t.enum.toString(),")");case"scalar":return"ReflectList (".concat(Dt[t.scalar],")")}}function JZ(t){switch(t.mapKind){case"message":return"ReflectMap (".concat(Dt[t.mapKey],", ").concat(t.message.toString(),")");case"enum":return"ReflectMap (".concat(Dt[t.mapKey],", ").concat(t.enum.toString(),")");case"scalar":return"ReflectMap (".concat(Dt[t.mapKey],", ").concat(Dt[t.scalar],")")}}function a9(t){const s=t.fields[0];return qZ(t.typeName)&&s!==void 0&&s.fieldKind=="scalar"&&s.name=="value"&&s.number==1}function qZ(t){var s;return t.startsWith("google.protobuf.")&&dF(s=["DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue"]).call(s,t.substring(16))}const a1e=999,A1e=998,gF=2;function gI(t,s){if(iX(s,t))return s;const c=function(u){let h;if(function(_){switch(_.file.edition){case a1e:return!1;case A1e:return!0;default:return _.fields.some(B=>B.presence!=gF&&B.fieldKind!="message"&&!B.oneof)}}(u)){const _=zZ.get(u);let B,Q;if(_)B=_.prototype,Q=_.members;else{B={},Q=new Set;for(const T of u.members)T.kind!="oneof"&&(T.fieldKind!="scalar"&&T.fieldKind!="enum"||T.presence!=gF&&(Q.add(T),B[T.localName]=IX(T)));zZ.set(u,{prototype:B,members:Q})}h=Object.create(B),h.$typeName=u.typeName;for(const T of u.members)if(!Q.has(T)){if(T.kind=="field"&&(T.fieldKind=="message"||(T.fieldKind=="scalar"||T.fieldKind=="enum")&&T.presence!=gF))continue;h[T.localName]=IX(T)}}else{h={$typeName:u.typeName};for(const _ of u.members)_.kind!="oneof"&&_.presence!=gF||(h[_.localName]=IX(_))}return h}(t);return s!==void 0&&function(u,h,_){for(const B of u.members){let Q,T=_[B.localName];if(T!=null){if(B.kind=="oneof"){const D=Cp(_,B);if(!D)continue;Q=D,T=rE(_,D)}else Q=B;switch(Q.fieldKind){case"message":T=EX(Q,T);break;case"scalar":T=WZ(Q,T);break;case"list":T=l1e(Q,T);break;case"map":T=c1e(Q,T)}e9(h,Q,T)}}}(t,c,s),c}function WZ(t,s){return t.scalar==Dt.BYTES?hX(s):s}function c1e(t,s){if(mp(s)){if(t.scalar==Dt.BYTES)return XZ(s,hX);if(t.mapKind=="message")return XZ(s,c=>EX(t,c))}return s}function l1e(t,s){if(Array.isArray(s)){if(t.scalar==Dt.BYTES)return s.map(hX);if(t.listKind=="message")return s.map(c=>EX(t,c))}return s}function EX(t,s){if(t.fieldKind=="message"&&!t.oneof&&a9(t.message))return WZ(t.message.fields[0],s);if(mp(s)){if(t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!=="google.protobuf.Value")return s;if(!iX(s,t.message))return gI(t.message,s)}return s}function hX(t){return Array.isArray(t)?new Uint8Array(t):t}function XZ(t,s){const c={};for(const u of Object.entries(t))c[u[0]]=s(u[1]);return c}const d1e=Symbol(),zZ=new WeakMap;function IX(t){if(t.kind=="oneof")return{case:void 0};if(t.fieldKind=="list")return[];if(t.fieldKind=="map")return{};if(t.fieldKind=="message")return d1e;const s=t.getDefaultValue();return s!==void 0?t.fieldKind=="scalar"&&t.longAsString?s.toString():s:t.fieldKind=="scalar"?dd(t.scalar,t.longAsString):br(t.enum)[0].number}function eg(t,s){return new ZZ(t,s,!(arguments.length>2&&arguments[2]!==void 0)||arguments[2])}const $Z=new WeakMap;class ZZ{get sortedFields(){var s;const c=$Z.get(this.desc);if(c)return c;const u=kAe(s=this.desc.fields.concat()).call(s,(h,_)=>h.number-_.number);return $Z.set(this.desc,u),u}constructor(s,c){let u=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];this.lists=new Map,this.maps=new Map,this.check=u,this.desc=s,this.message=this[lc]=c??gI(s),this.fields=s.fields,this.oneofs=s.oneofs,this.members=s.members}findNumber(s){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(c=>[c.number,c]))),this._fieldsByNumber.get(s)}oneofCase(s){return A9(this.message,s),Cp(this.message,s)}isSet(s){return A9(this.message,s),function(c,u){const h=u.localName;if(u.oneof)return c[u.oneof.localName].case===h;if(u.presence!=rm)return c[h]!==void 0&&Object.prototype.hasOwnProperty.call(c,h);switch(u.fieldKind){case"list":return c[h].length>0;case"map":return Object.keys(c[h]).length>0;case"scalar":return!function(_,B){switch(_){case Dt.BOOL:return B===!1;case Dt.STRING:return B==="";case Dt.BYTES:return B instanceof Uint8Array&&!B.byteLength;default:return B==0}}(u.scalar,c[h]);case"enum":return c[h]!==br(u.enum)[0].number}throw new Error("message field with implicit presence")}(this.message,s)}clear(s){A9(this.message,s),function(c,u){const h=u.localName;if(u.oneof){const _=u.oneof.localName;c[_].case===h&&(c[_]={case:void 0})}else if(u.presence!=rm)delete c[h];else switch(u.fieldKind){case"map":c[h]={};break;case"list":c[h]=[];break;case"enum":c[h]=br(u.enum)[0].number;break;case"scalar":c[h]=dd(u.scalar,u.longAsString)}}(this.message,s)}get(s){A9(this.message,s);const c=rE(this.message,s);switch(s.fieldKind){case"list":let u=this.lists.get(s);return u&&u[lc]===c||this.lists.set(s,u=new u1e(s,c,this.check)),u;case"map":let h=this.maps.get(s);return h&&h[lc]===c||this.maps.set(s,h=new g1e(s,c,this.check)),h;case"message":return pX(s,c,this.check);case"scalar":return c===void 0?dd(s.scalar,!1):mX(s,c);case"enum":return c??br(s.enum)[0].number}}set(s,c){if(A9(this.message,s),this.check){const h=om(s,c);if(h)throw h}let u;u=s.fieldKind=="message"?CX(s,c):aX(c)||sX(c)?c[lc]:BX(s,c),e9(this.message,s,u)}getUnknown(){return this.message.$unknown}setUnknown(s){this.message.$unknown=s}}function A9(t,s){if(s.parent.typeName!==t.$typeName)throw new gd(s,"cannot use ".concat(s.toString()," with message ").concat(t.$typeName),"ForeignFieldError")}class u1e{field(){return this._field}get size(){return this._arr.length}constructor(s,c,u){this._field=s,this._arr=this[lc]=c,this.check=u}get(s){const c=this._arr[s];return c===void 0?void 0:fX(this._field,c,this.check)}set(s,c){if(s<0||s>=this._arr.length)throw new gd(this._field,"list item #".concat(s+1,": out of range"));if(this.check){const u=KZ(this._field,s,c);if(u)throw u}this._arr[s]=eee(this._field,c)}add(s){if(this.check){const c=KZ(this._field,this._arr.length,s);if(c)throw c}this._arr.push(eee(this._field,s))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return br(this).call(this)}keys(){var s;return KAe(s=this._arr).call(s)}*values(){for(const s of this._arr)yield fX(this._field,s,this.check)}*entries(){for(let s=0;s2&&arguments[2]!==void 0)||arguments[2];this.obj=this[lc]=c??{},this.check=u,this._field=s}field(){return this._field}set(s,c){if(this.check){const u=function(h,_,B){const Q=HZ(_,h.mapKey);if(Q!==!0)return new gd(h,"invalid map key: ".concat(uF({scalar:h.mapKey},_,Q)));const T=gX(h,B);return T!==!0?new gd(h,"map entry ".concat(T1(_),": ").concat(uF(h,B,T))):void 0}(this._field,s,c);if(u)throw u}return this.obj[EF(s)]=function(u,h){return u.mapKind=="message"?CX(u,h):BX(u,h)}(this._field,c),this}delete(s){const c=EF(s),u=Object.prototype.hasOwnProperty.call(this.obj,c);return u&&delete this.obj[c],u}clear(){for(const s of Object.keys(this.obj))delete this.obj[s]}get(s){let c=this.obj[EF(s)];return c!==void 0&&(c=_X(this._field,c,this.check)),c}has(s){return Object.prototype.hasOwnProperty.call(this.obj,EF(s))}*keys(){for(const s of Object.keys(this.obj))yield tee(s,this._field.mapKey)}*entries(){for(const s of Object.entries(this.obj))yield[tee(s[0],this._field.mapKey),_X(this._field,s[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(const s of Object.values(this.obj))yield _X(this._field,s,this.check)}forEach(s,c){for(const u of this.entries())s.call(c,u[1],u[0],this)}}function CX(t,s){return AX(s)?qZ(s.message.$typeName)&&!t.oneof&&t.fieldKind=="message"?s.message.value:s.desc.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"?iee(s.message):s.message:s}function pX(t,s,c){return s!==void 0&&(a9(t.message)&&!t.oneof&&t.fieldKind=="message"?s={$typeName:t.message.typeName,value:mX(t.message.fields[0],s)}:t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"&&mp(s)&&(s=ree(s))),new ZZ(t.message,s,c)}function eee(t,s){return t.listKind=="message"?CX(t,s):BX(t,s)}function fX(t,s,c){return t.listKind=="message"?pX(t,s,c):mX(t,s)}function _X(t,s,c){return t.mapKind=="message"?pX(t,s,c):s}function EF(t){return typeof t=="string"||typeof t=="number"?t:String(t)}function tee(t,s){switch(s){case Dt.STRING:return t;case Dt.INT32:case Dt.FIXED32:case Dt.UINT32:case Dt.SFIXED32:case Dt.SINT32:{const c=Number.parseInt(t);if(Number.isFinite(c))return c;break}case Dt.BOOL:switch(t){case"true":return!0;case"false":return!1}break;case Dt.UINT64:case Dt.FIXED64:try{return _n.uParse(t)}catch{}break;default:try{return _n.parse(t)}catch{}}return t}function mX(t,s){switch(t.scalar){case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:"longAsString"in t&&t.longAsString&&typeof s=="string"&&(s=_n.parse(s));break;case Dt.FIXED64:case Dt.UINT64:"longAsString"in t&&t.longAsString&&typeof s=="string"&&(s=_n.uParse(s))}return s}function BX(t,s){switch(t.scalar){case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:"longAsString"in t&&t.longAsString?s=String(s):typeof s!="string"&&typeof s!="number"||(s=_n.parse(s));break;case Dt.FIXED64:case Dt.UINT64:"longAsString"in t&&t.longAsString?s=String(s):typeof s!="string"&&typeof s!="number"||(s=_n.uParse(s))}return s}function ree(t){const s={$typeName:"google.protobuf.Struct",fields:{}};if(mp(t))for(const u of Object.entries(t)){var c=PA(u,2);const h=c[0],_=c[1];s.fields[h]=oee(_)}return s}function iee(t){const s={};for(const u of Object.entries(t.fields)){var c=PA(u,2);const h=c[0],_=c[1];s[h]=nee(_)}return s}function nee(t){switch(t.kind.case){case"structValue":return iee(t.kind.value);case"listValue":return br(t.kind.value).map(nee);case"nullValue":case void 0:return null;default:return t.kind.value}}function oee(t){const s={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof t){case"number":s.kind={case:"numberValue",value:t};break;case"string":s.kind={case:"stringValue",value:t};break;case"boolean":s.kind={case:"boolValue",value:t};break;case"object":if(t===null)s.kind={case:"nullValue",value:0};else if(Array.isArray(t)){const c={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(t))for(const u of t)br(c).push(oee(u));s.kind={case:"listValue",value:c}}else s.kind={case:"structValue",value:ree(t)}}return s}const E1e=3,see={writeUnknownFields:!0};function aee(t,s,c){return hF(new GZ,function(u){return u?Object.assign(Object.assign({},see),u):see}(c),eg(t,s)).finish()}function hF(t,s,c){var u;for(const h of c.sortedFields)if(c.isSet(h))Aee(t,s,c,h);else if(h.presence==E1e)throw new Error("cannot encode ".concat(h," to binary: required field not set"));if(s.writeUnknownFields)for(const h of(u=c.getUnknown())!==null&&u!==void 0?u:[]){const _=h.no,B=h.wireType,Q=h.data;t.tag(_,B).raw(Q)}return t}function Aee(t,s,c,u){var h;switch(u.fieldKind){case"scalar":case"enum":IF(t,c.desc.typeName,u.name,(h=u.scalar)!==null&&h!==void 0?h:Dt.INT32,u.number,c.get(u));break;case"list":(function(B,Q,T,D){var O;if(T.listKind=="message"){for(const U of D)cee(B,Q,T,U);return}const P=(O=T.scalar)!==null&&O!==void 0?O:Dt.INT32;if(T.packed){if(!D.size)return;B.tag(T.number,fA.LengthDelimited).fork();for(const U of D)lee(B,T.parent.typeName,T.name,P,U);B.join()}else for(const U of D)IF(B,T.parent.typeName,T.name,P,T.number,U)})(t,s,u,c.get(u));break;case"message":cee(t,s,u,c.get(u));break;case"map":for(const B of c.get(u)){var _=PA(B,2);h1e(t,s,u,_[0],_[1])}}}function IF(t,s,c,u,h,_){lee(t.tag(h,function(B){switch(B){case Dt.BYTES:case Dt.STRING:return fA.LengthDelimited;case Dt.DOUBLE:case Dt.FIXED64:case Dt.SFIXED64:return fA.Bit64;case Dt.FIXED32:case Dt.SFIXED32:case Dt.FLOAT:return fA.Bit32;default:return fA.Varint}}(u)),s,c,u,_)}function cee(t,s,c,u){c.delimitedEncoding?hF(t.tag(c.number,fA.StartGroup),s,u).tag(c.number,fA.EndGroup):hF(t.tag(c.number,fA.LengthDelimited).fork(),s,u).join()}function h1e(t,s,c,u,h){var _;switch(t.tag(c.number,fA.LengthDelimited).fork(),IF(t,c.parent.typeName,c.name,c.mapKey,1,u),c.mapKind){case"scalar":case"enum":IF(t,c.parent.typeName,c.name,(_=c.scalar)!==null&&_!==void 0?_:Dt.INT32,2,h);break;case"message":hF(t.tag(2,fA.LengthDelimited).fork(),s,h).join()}t.join()}function lee(t,s,c,u,h){try{switch(u){case Dt.STRING:t.string(h);break;case Dt.BOOL:t.bool(h);break;case Dt.DOUBLE:t.double(h);break;case Dt.FLOAT:t.float(h);break;case Dt.INT32:t.int32(h);break;case Dt.INT64:t.int64(h);break;case Dt.UINT64:t.uint64(h);break;case Dt.FIXED64:t.fixed64(h);break;case Dt.BYTES:t.bytes(h);break;case Dt.FIXED32:t.fixed32(h);break;case Dt.SFIXED32:t.sfixed32(h);break;case Dt.SFIXED64:t.sfixed64(h);break;case Dt.SINT64:t.sint64(h);break;case Dt.UINT32:t.uint32(h);break;case Dt.SINT32:t.sint32(h)}}catch(_){throw _ instanceof Error?new Error("cannot encode field ".concat(s,".").concat(c," to binary: ").concat(_.message)):_}}var I1e=U_,C1e=R1,p1e=AO,f1e=yl,dee=TypeError,uee="Reduce of empty array with no initial value",_1e=function(t){return function(s,c,u,h){var _=C1e(s),B=p1e(_),Q=f1e(_);if(I1e(c),Q===0&&u<2)throw new dee(uee);var T=t?Q-1:0,D=t?-1:1;if(u<2)for(;;){if(T in B){h=B[T],T+=D;break}if(T+=D,t?T<0:Q<=T)throw new dee(uee)}for(;t?T>=0:Q>T;T+=D)T in B&&(h=c(h,B[T],T,_));return h}},m1e={left:_1e(!1)},c9=Ha,B1e=k_,S1e=Yg,CF=function(t){return B1e.slice(0,t.length)===t},R1e=CF("Bun/")?"BUN":CF("Cloudflare-Workers")?"CLOUDFLARE":CF("Deno/")?"DENO":CF("Node.js/")?"NODE":c9.Bun&&typeof Bun.version=="string"?"BUN":c9.Deno&&typeof Deno.version=="object"?"DENO":S1e(c9.process)==="process"?"NODE":c9.window&&c9.document?"BROWSER":"REST",y1e=m1e.left;Fa({target:"Array",proto:!0,forced:R1e!=="NODE"&&Ap>79&&Ap<83||!mZ("reduce")},{reduce:function(t){var s=arguments.length;return y1e(this,t,s,s>1?arguments[1]:void 0)}});var Q1e=Le("Array","reduce"),T1e=zd,w1e=Q1e,SX=Array.prototype,v1e=sc(function(t){var s=VA(t);return t===SX||T1e(SX,t)&&s===VA(SX)?w1e:s});function sm(t,s){for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h_.nestedMessages[B],t.messages[s])}const D1e=sm(function(t){const s=function(c){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},c),{messageType:c.messageType.map(Gz),enumType:c.enumType.map(Vz)}))}(t);return s.messageType.forEach(HQ),Kh(s,()=>{}).getFile(s.name)}({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false"},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true"},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),1);var gee,Eee,hee,Iee,Cee,pee,fee,_ee,mee,Bee,See,Ree,yee,Qee,Tee,wee,vee,Dee,bee,Nee;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(gee||(gee={})),function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"}(Eee||(Eee={})),function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"}(hee||(hee={})),function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"}(Iee||(Iee={})),function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"}(Cee||(Cee={})),function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"}(pee||(pee={})),function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"}(fee||(fee={})),function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"}(_ee||(_ee={})),function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"}(mee||(mee={})),function(t){t[t.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",t[t.EXPORT_ALL=1]="EXPORT_ALL",t[t.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",t[t.LOCAL_ALL=3]="LOCAL_ALL",t[t.STRICT=4]="STRICT"}(Bee||(Bee={})),function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"}(See||(See={})),function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"}(Ree||(Ree={})),function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"}(yee||(yee={})),function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.VERIFY=2]="VERIFY",t[t.NONE=3]="NONE"}(Qee||(Qee={})),function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"}(Tee||(Tee={})),function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"}(wee||(wee={})),function(t){t[t.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",t[t.STYLE2024=1]="STYLE2024",t[t.STYLE_LEGACY=2]="STYLE_LEGACY"}(vee||(vee={})),function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"}(Dee||(Dee={})),function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_LEGACY=900]="EDITION_LEGACY",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_2024=1001]="EDITION_2024",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",t[t.EDITION_MAX=2147483647]="EDITION_MAX"}(bee||(bee={})),function(t){t[t.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",t[t.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",t[t.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"}(Nee||(Nee={}));const Oee={readUnknownFields:!0};function RX(t,s,c){const u=eg(t,void 0,!1);return Lee(u,new dX(s),function(h){return h?Object.assign(Object.assign({},Oee),h):Oee}(c),!1,s.byteLength),u.message}function Lee(t,s,c,u,h){var _;const B=u?s.len:s.pos+h;let Q,T;const D=(_=t.getUnknown())!==null&&_!==void 0?_:[];for(;s.pos0&&t.setUnknown(D)}function Mee(t,s,c,u,h){var _;switch(c.fieldKind){case"scalar":t.set(c,$Q(s,c.scalar));break;case"enum":const B=$Q(s,Dt.INT32);if(c.enum.open)t.set(c,B);else if(br(c.enum).some(Q=>Q.number===B))t.set(c,B);else if(h.readUnknownFields){const Q=[];Kr(B,Q);const T=(_=t.getUnknown())!==null&&_!==void 0?_:[];T.push({no:c.number,wireType:u,data:new Uint8Array(Q)}),t.setUnknown(T)}break;case"message":t.set(c,yX(s,h,c,t.get(c)));break;case"list":(function(Q,T,D,O){var P;const U=D.field();if(U.listKind==="message")return void D.add(yX(Q,O,U));const H=(P=U.scalar)!==null&&P!==void 0?P:Dt.INT32;if(!(T==fA.LengthDelimited&&H!=Dt.STRING&&H!=Dt.BYTES))return void D.add($Q(Q,H));const $=Q.uint32()+Q.pos;for(;Q.pos<$;)D.add($Q(Q,H))})(s,u,t.get(c),h);break;case"map":(function(Q,T,D){const O=T.field();let P,U;const H=Q.uint32(),$=Q.pos+H;for(;Q.pos<$;)switch(PA(Q.tag(),1)[0]){case 1:P=$Q(Q,O.mapKey);break;case 2:switch(O.mapKind){case"scalar":U=$Q(Q,O.scalar);break;case"enum":U=Q.int32();break;case"message":U=yX(Q,D,O)}}if(P===void 0&&(P=dd(O.mapKey,!1)),U===void 0)switch(O.mapKind){case"scalar":U=dd(O.scalar,!1);break;case"enum":U=br(O.enum)[0].number;break;case"message":U=eg(O.message,void 0,!1)}T.set(P,U)})(s,t.get(c),h)}}function yX(t,s,c,u){const h=c.delimitedEncoding,_=u??eg(c.message,void 0,!1);return Lee(_,t,s,h,h?c.number:t.uint32()),_}function $Q(t,s){switch(s){case Dt.STRING:return t.string();case Dt.BOOL:return t.bool();case Dt.DOUBLE:return t.double();case Dt.FLOAT:return t.float();case Dt.INT32:return t.int32();case Dt.INT64:return t.int64();case Dt.UINT64:return t.uint64();case Dt.FIXED64:return t.fixed64();case Dt.BYTES:return t.bytes();case Dt.FIXED32:return t.fixed32();case Dt.SFIXED32:return t.sfixed32();case Dt.SFIXED64:return t.sfixed64();case Dt.SINT64:return t.sint64();case Dt.UINT32:return t.uint32();case Dt.SINT32:return t.sint32()}}function pF(t,s){var c;const u=RX(D1e,Kz(t));return u.messageType.forEach(HQ),u.dependency=(c=s==null?void 0:s.map(h=>h.proto.name))!==null&&c!==void 0?c:[],Kh(u,h=>s==null?void 0:s.find(_=>_.proto.name===h)).getFile(u.name)}const b1e=sm(pF("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),0);function kee(t){const s=t.lastIndexOf("/"),c=s>=0?t.substring(s+1):t;if(!c.length)throw new Error("invalid type url: ".concat(t));return c}const l9=pF("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),N1e=sm(l9,0),Pee=sm(l9,1),O1e=sm(l9,2);var QX;(function(t){t[t.NULL_VALUE=0]="NULL_VALUE"})(QX||(QX={}));const L1e=pF("CgpvcnRjLnByb3RvEgtpby5hZ29yYS5wYiKoAQoET1JUQxILCgNpY2UYASADKAkSJQoEZHRscxgCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSIQoEc2VuZBgDIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcBIhCgRyZWN2GAQgASgLMhMuaW8uYWdvcmEucGIuUnRwQ2FwEiYKCXNlbmRfcmVjdhgFIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcCLQAQoGUnRwQ2FwEjMKDGF1ZGlvX2NvZGVjcxgBIAMoCzIdLmlvLmFnb3JhLnBiLlBheWxvYWRBdHRyaWJ1dGUSMwoMdmlkZW9fY29kZWNzGAIgAygLMh0uaW8uYWdvcmEucGIuUGF5bG9hZEF0dHJpYnV0ZRItChBhdWRpb19leHRlbnNpb25zGAMgAygLMhMuaW8uYWdvcmEucGIuRXh0bWFwEi0KEHZpZGVvX2V4dGVuc2lvbnMYBCADKAsyEy5pby5hZ29yYS5wYi5FeHRtYXAiqQEKBkV4dG1hcBINCgVlbnRyeRgBIAEoDRIuCg5leHRlbnNpb25fbmFtZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIWCglkaXJlY3Rpb24YAyABKAlIAIgBARIhChRleHRlbnNpb25fYXR0cmlidXRlcxgEIAEoCUgBiAEBQgwKCl9kaXJlY3Rpb25CFwoVX2V4dGVuc2lvbl9hdHRyaWJ1dGVzIp4BChBQYXlsb2FkQXR0cmlidXRlEiQKB3J0cF9tYXAYASABKAsyEy5pby5hZ29yYS5wYi5SdHBNYXASHwoEZm10cBgCIAEoCzIRLmlvLmFnb3JhLnBiLkZtdHASLQoOcnRjcF9mZWVkYmFja3MYAyADKAsyFS5pby5hZ29yYS5wYi5GZWVkYmFjaxIUCgxwYXlsb2FkX3R5cGUYBCABKA0i4gEKBlJ0cE1hcBIfChJlbnVtX2VuY29kaW5nX25hbWUYASABKA1IAIgBARIhChRzdHJpbmdfZW5jb2RpbmdfbmFtZRgCIAEoCUgBiAEBEioKCmNsb2NrX3JhdGUYAyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSIAoTZW5jb2RpbmdfcGFyYW1ldGVycxgEIAEoDUgCiAEBQhUKE19lbnVtX2VuY29kaW5nX25hbWVCFwoVX3N0cmluZ19lbmNvZGluZ19uYW1lQhYKFF9lbmNvZGluZ19wYXJhbWV0ZXJzIqoCCgRGbXRwEj4KD2VudW1fcGFyYW1ldGVycxgBIAMoCzIlLmlvLmFnb3JhLnBiLkZtdHAuRW51bVBhcmFtZXRlcnNFbnRyeRJCChFzdHJpbmdfcGFyYW1ldGVycxgCIAMoCzInLmlvLmFnb3JhLnBiLkZtdHAuU3RyaW5nUGFyYW1ldGVyc0VudHJ5Gk0KE0VudW1QYXJhbWV0ZXJzRW50cnkSCwoDa2V5GAEgASgNEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ARpPChVTdHJpbmdQYXJhbWV0ZXJzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ASLMAQoIRmVlZGJhY2sSFgoJZW51bV90eXBlGAEgASgNSACIAQESGAoLc3RyaW5nX3R5cGUYAiABKAlIAYgBARIWCglwYXJhbWV0ZXIYAyABKAlIAogBARIXCgphZGRpdGlvbmFsGAQgASgJSAOIAQESFQoIaW50ZXJ2YWwYBSABKAlIBIgBAUIMCgpfZW51bV90eXBlQg4KDF9zdHJpbmdfdHlwZUIMCgpfcGFyYW1ldGVyQg0KC19hZGRpdGlvbmFsQgsKCV9pbnRlcnZhbCKBAQoRUnRwQ2FwQmVmb3JlTWVyZ2USIQoEc2VuZBgBIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcBIhCgRyZWN2GAIgASgLMhMuaW8uYWdvcmEucGIuUnRwQ2FwEiYKCXNlbmRfcmVjdhgDIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcCKrEQoPT3J0Y05lZ290aWF0aW9uEk4KE2luX291dF9hdWRpb19wdF9tYXAYASADKAsyMS5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uSW5PdXRBdWRpb1B0TWFwRW50cnkSTgoTaW5fb3V0X3ZpZGVvX3B0X21hcBgCIAMoCzIxLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5Jbk91dFZpZGVvUHRNYXBFbnRyeRJOChNvdXRfaW5fYXVkaW9fcHRfbWFwGAMgAygLMjEuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLk91dEluQXVkaW9QdE1hcEVudHJ5Ek4KE291dF9pbl92aWRlb19wdF9tYXAYBCADKAsyMS5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uT3V0SW5WaWRlb1B0TWFwRW50cnkSYwoeaW5fb3V0X2F1ZGlvX2hlYWRlcl9leHRlbnNfbWFwGAUgAygLMjsuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLkluT3V0QXVkaW9IZWFkZXJFeHRlbnNNYXBFbnRyeRJjCh5vdXRfaW5fYXVkaW9faGVhZGVyX2V4dGVuc19tYXAYBiADKAsyOy5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uT3V0SW5BdWRpb0hlYWRlckV4dGVuc01hcEVudHJ5EmMKHmluX291dF92aWRlb19oZWFkZXJfZXh0ZW5zX21hcBgHIAMoCzI7LmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5Jbk91dFZpZGVvSGVhZGVyRXh0ZW5zTWFwRW50cnkSYwoeb3V0X2luX3ZpZGVvX2hlYWRlcl9leHRlbnNfbWFwGAggAygLMjsuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLk91dEluVmlkZW9IZWFkZXJFeHRlbnNNYXBFbnRyeRJQChRydHBfcnR4X2F1ZGlvX3B0X21hcBgJIAMoCzIyLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5SdHBSdHhBdWRpb1B0TWFwRW50cnkSUAoUcnRwX3J0eF92aWRlb19wdF9tYXAYCiADKAsyMi5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uUnRwUnR4VmlkZW9QdE1hcEVudHJ5ElAKFHJ0eF9ydHBfYXVkaW9fcHRfbWFwGAsgAygLMjIuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLlJ0eFJ0cEF1ZGlvUHRNYXBFbnRyeRJQChRydHhfcnRwX3ZpZGVvX3B0X21hcBgMIAMoCzIyLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5SdHhSdHBWaWRlb1B0TWFwRW50cnkSRQoOcnRwX3JlZF9wdF9tYXAYDSADKAsyLS5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uUnRwUmVkUHRNYXBFbnRyeRJFCg5yZWRfcnRwX3B0X21hcBgOIAMoCzItLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5SZWRSdHBQdE1hcEVudHJ5Eg8KB2NmZ19ydHgYDyABKAgSFQoNaGFzX2F1ZGlvX3J0eBgQIAEoCBIVCg1oYXNfdmlkZW9fcnR4GBEgASgIEhAKCGNmZ19ycnRyGBIgASgIEhYKDmhhc192aWRlb19ycnRyGBMgASgIEhYKDmhhc19hdWRpb19ycnRyGBQgASgIEg8KB2NmZ19yZWQYFSABKAgSFQoNaGFzX2F1ZGlvX3JlZBgWIAEoCBIRCglpbl9yZWRfcHQYFyADKA0aNgoUSW5PdXRBdWRpb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRJbk91dFZpZGVvUHRNYXBFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE91dEluQXVkaW9QdE1hcEVudHJ5EgsKA2tleRgBIAEoDRINCgV2YWx1ZRgCIAEoDToCOAEaNgoUT3V0SW5WaWRlb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5Jbk91dEF1ZGlvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5PdXRJbkF1ZGlvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5Jbk91dFZpZGVvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5PdXRJblZpZGVvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHBSdHhBdWRpb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHBSdHhWaWRlb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHhSdHBBdWRpb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHhSdHBWaWRlb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARoyChBSdHBSZWRQdE1hcEVudHJ5EgsKA2tleRgBIAEoDRINCgV2YWx1ZRgCIAEoDToCOAEaMgoQUmVkUnRwUHRNYXBFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBKtACChJWaWRlb0V4dGVuc2lvbk5hbWUSGQoVVklERU9fRVhUX0hEUl9UT0ZGU0VUEAASGwoXVklERU9fRVhUX0FCU19TRU5EX1RJTUUQARIZChVWSURFT19FWFRfT1JJRU5UQVRJT04QAhISCg5WSURFT19FWFRfVFdDQxADEhsKF1ZJREVPX0VYVF9QTEFZT1VUX0RFTEFZEAQSGgoWVklERU9fRVhUX0NPTlRFTlRfVFlQRRAFEhoKFlZJREVPX0VYVF9WSURFT19USU1JTkcQBhIZChVWSURFT19FWFRfQ09MT1JfU1BBQ0UQBxIWChJWSURFT19FWFRfU0RFU19NSUQQCBIgChxWSURFT19FWFRfU0RFU19SVFBfU1RSRUFNX0lEEAkSKQolVklERU9fRVhUX1NERURfUkVQQUlSRURfUlRQX1NUUkVBTV9JRBAKKsQBChJBdWRpb0V4dGVuc2lvbk5hbWUSGQoVQVVESU9fRVhUX0FVRElPX0xFVkVMEAASGwoXQVVESU9fRVhUX0FCU19TRU5EX1RJTUUQARISCg5BVURJT19FWFRfVFdDQxACEhYKEkFVRElPX0VYVF9TREVTX01JRBADEiAKHEFVRElPX0VYVF9TREVTX1JUUF9TVFJFQU1fSUQQBBIoCiRBVURJT19FWFRfU0RTX1JFUEFJUkVEX1JUUF9TVFJFQU1fSUQQBSqBAwoMRW5jb2RpbmdOYW1lEh0KGUVOQ09ESU5HX05BTUVfVU5TUEVDSUZJRUQQABIVChFFTkNPRElOR19OQU1FX1ZQOBABEhUKEUVOQ09ESU5HX05BTUVfVlA5EAISFgoSRU5DT0RJTkdfTkFNRV9IMjY0EAMSFgoSRU5DT0RJTkdfTkFNRV9IMjY1EAQSFQoRRU5DT0RJTkdfTkFNRV9BVjEQBRIWChJFTkNPRElOR19OQU1FX0c3MTEQBhIWChJFTkNPRElOR19OQU1FX0c3MjIQBxIWChJFTkNPRElOR19OQU1FX09QVVMQCBIWChJFTkNPRElOR19OQU1FX1BDTVUQCRIWChJFTkNPRElOR19OQU1FX1BDTUEQChIUChBFTkNPRElOR19OQU1FX0NOEAsSIQodRU5DT0RJTkdfTkFNRV9URUxFUEhPTkVfRVZFTlQQDBIVChFFTkNPRElOR19OQU1FX1JUWBANEhUKEUVOQ09ESU5HX05BTUVfUkVEEA4qrgMKDUZtdHBQYXJhbWV0ZXISHgoaRk1UUF9QQVJBTUVURVJfVU5TUEVDSUZJRUQQABIbChdGTVRQX1BBUkFNRVRFUl9NSU5QVElNRRABEh8KG0ZNVFBfUEFSQU1FVEVSX1VTRUlOQkFOREZFQxACEhsKF0ZNVFBfUEFSQU1FVEVSX0xFVkVMX0lEEAMSHQoZRk1UUF9QQVJBTUVURVJfUFJPRklMRV9JRBAEEhwKGEZNVFBfUEFSQU1FVEVSX1RJRVJfRkxBRxAFEhoKFkZNVFBfUEFSQU1FVEVSX1RYX01PREUQBhIqCiZGTVRQX1BBUkFNRVRFUl9MRVZFTF9BU1lNTUVUUllfQUxMT1dFRBAHEiUKIUZNVFBfUEFSQU1FVEVSX1BBQ0tFVElaQVRJT05fTU9ERRAIEiMKH0ZNVFBfUEFSQU1FVEVSX1BST0ZJTEVfTEVWRUxfSUQQCRIcChhGTVRQX1BBUkFNRVRFUl9MRVZFTF9JRFgQChIaChZGTVRQX1BBUkFNRVRFUl9QUk9GSUxFEAsSFwoTRk1UUF9QQVJBTUVURVJfVElFUhAMKrEBCgxGZWVkYmFja1R5cGUSHQoZRkVFREJBQ0tfVFlQRV9VTlNQRUNJRklFRBAAEhsKF0ZFRURCQUNLX1RZUEVfR09PR19SRU1CEAESHgoaRkVFREJBQ0tfVFlQRV9UUkFOU1BPUlRfQ0MQAhIVChFGRUVEQkFDS19UWVBFX0NDTRADEhYKEkZFRURCQUNLX1RZUEVfTkFDSxAEEhYKEkZFRURCQUNLX1RZUEVfUlJUUhAFYgZwcm90bzM",[l9]);let sE=function(t){return t[t.VIDEO_EXT_HDR_TOFFSET=0]="VIDEO_EXT_HDR_TOFFSET",t[t.VIDEO_EXT_ABS_SEND_TIME=1]="VIDEO_EXT_ABS_SEND_TIME",t[t.VIDEO_EXT_ORIENTATION=2]="VIDEO_EXT_ORIENTATION",t[t.VIDEO_EXT_TWCC=3]="VIDEO_EXT_TWCC",t[t.VIDEO_EXT_PLAYOUT_DELAY=4]="VIDEO_EXT_PLAYOUT_DELAY",t[t.VIDEO_EXT_CONTENT_TYPE=5]="VIDEO_EXT_CONTENT_TYPE",t[t.VIDEO_EXT_VIDEO_TIMING=6]="VIDEO_EXT_VIDEO_TIMING",t[t.VIDEO_EXT_COLOR_SPACE=7]="VIDEO_EXT_COLOR_SPACE",t[t.VIDEO_EXT_SDES_MID=8]="VIDEO_EXT_SDES_MID",t[t.VIDEO_EXT_SDES_RTP_STREAM_ID=9]="VIDEO_EXT_SDES_RTP_STREAM_ID",t[t.VIDEO_EXT_SDED_REPAIRED_RTP_STREAM_ID=10]="VIDEO_EXT_SDED_REPAIRED_RTP_STREAM_ID",t}({}),ZQ=function(t){return t[t.AUDIO_EXT_AUDIO_LEVEL=0]="AUDIO_EXT_AUDIO_LEVEL",t[t.AUDIO_EXT_ABS_SEND_TIME=1]="AUDIO_EXT_ABS_SEND_TIME",t[t.AUDIO_EXT_TWCC=2]="AUDIO_EXT_TWCC",t[t.AUDIO_EXT_SDES_MID=3]="AUDIO_EXT_SDES_MID",t[t.AUDIO_EXT_SDES_RTP_STREAM_ID=4]="AUDIO_EXT_SDES_RTP_STREAM_ID",t[t.AUDIO_EXT_SDS_REPAIRED_RTP_STREAM_ID=5]="AUDIO_EXT_SDS_REPAIRED_RTP_STREAM_ID",t}({}),Ed=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.VP8=1]="VP8",t[t.VP9=2]="VP9",t[t.H264=3]="H264",t[t.H265=4]="H265",t[t.AV1=5]="AV1",t[t.G711=6]="G711",t[t.G722=7]="G722",t[t.OPUS=8]="OPUS",t[t.PCMU=9]="PCMU",t[t.PCMA=10]="PCMA",t[t.CN=11]="CN",t[t.TELEPHONE_EVENT=12]="TELEPHONE_EVENT",t[t.RTX=13]="RTX",t[t.RED=14]="RED",t}({}),tg=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.MINPTIME=1]="MINPTIME",t[t.USEINBANDFEC=2]="USEINBANDFEC",t[t.LEVEL_ID=3]="LEVEL_ID",t[t.PROFILE_ID=4]="PROFILE_ID",t[t.TIER_FLAG=5]="TIER_FLAG",t[t.TX_MODE=6]="TX_MODE",t[t.LEVEL_ASYMMETRY_ALLOWED=7]="LEVEL_ASYMMETRY_ALLOWED",t[t.PACKETIZATION_MODE=8]="PACKETIZATION_MODE",t[t.PROFILE_LEVEL_ID=9]="PROFILE_LEVEL_ID",t[t.LEVEL_IDX=10]="LEVEL_IDX",t[t.PROFILE=11]="PROFILE",t[t.TIER=12]="TIER",t}({}),d9=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.GOOG_REMB=1]="GOOG_REMB",t[t.TRANSPORT_CC=2]="TRANSPORT_CC",t[t.CCM=3]="CCM",t[t.NACK=4]="NACK",t[t.RRTR=5]="RRTR",t}({});const Uee=pF("CgxzaWduYWwucHJvdG8SC2lvLmFnb3JhLnBiIuUFCg5Vc2VyQXR0cmlidXRlcxIVCghmZWF0dXJlMRgBIAEoDUgAiAEBEhUKCGZlYXR1cmUyGAIgASgNSAGIAQESHAoPdG9wblNtb290aExldmVsGAMgASgNSAKIAQESIAoTdG9wbk5ld1NwZWFrZXJEZWxheRgEIAEoDUgDiAEBEh0KEHRvcG5Td2l0Y2hIb2xkTXMYBSABKA1IBIgBARIaCg10b3BuQXVkaW9HYWluGAYgASgNSAWIAQESHAoPbWF4U3Vic2NyaXB0aW9uGAcgASgNSAaIAQESJQoYc3Vic2NyaWJlQXVkaW9GaWx0ZXJUb3BOGAggASgNSAeIAQESFQoIcnRtMkZsYWcYCSABKA1ICIgBARIWCglwcmVTdWJOdW0YCiABKA1ICYgBARIpCglwcmVTdWJVaWQYCyADKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFAoMZW5hYmxlU3ViU1ZDGAwgAygJEhkKEWVuYWJsZVN2Y0V4dGVuZGVkGA0gAygJEhsKDmF1ZGlvRHVwbGljYXRlGA4gASgNSAqIAQESGwoObnRwRml4ZWRPZmZzZXQYDyABKAVIC4gBARIxCgtleHBlcmltZW50cxgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIDIgBAUILCglfZmVhdHVyZTFCCwoJX2ZlYXR1cmUyQhIKEF90b3BuU21vb3RoTGV2ZWxCFgoUX3RvcG5OZXdTcGVha2VyRGVsYXlCEwoRX3RvcG5Td2l0Y2hIb2xkTXNCEAoOX3RvcG5BdWRpb0dhaW5CEgoQX21heFN1YnNjcmlwdGlvbkIbChlfc3Vic2NyaWJlQXVkaW9GaWx0ZXJUb3BOQgsKCV9ydG0yRmxhZ0IMCgpfcHJlU3ViTnVtQhEKD19hdWRpb0R1cGxpY2F0ZUIRCg9fbnRwRml4ZWRPZmZzZXRCDgoMX2V4cGVyaW1lbnRzIrcBChZVc2VyQXR0cmlidXRlc1Jlc3BvbnNlEiwKC3ByZVN1YlNzcmNzGAEgAygLMhcuaW8uYWdvcmEucGIuUHJlU3ViU3NyYxIlChhzdWJzY3JpYmVBdWRpb0ZpbHRlclRvcE4YAiABKA1IAIgBARIrCgpleHRlbnNpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIbChlfc3Vic2NyaWJlQXVkaW9GaWx0ZXJUb3BOInIKClByZVN1YlNzcmMSKAoDdWlkGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSACIAQESCQoBYRgCIAEoDRINCgVhX3J0eBgDIAEoDRIJCgF2GAQgASgNEg0KBXZfcnR4GAUgASgNQgYKBF91aWQizwYKDVNpZ25hbFJlcXVlc3QSFAoHbGljZW5zZRgBIAEoCUgAiAEBEg4KBnAycF9pZBgCIAEoDRISCgpzZXNzaW9uX2lkGAMgASgJEg4KBmFwcF9pZBgEIAEoCRITCgtjaGFubmVsX2tleRgFIAEoCRIUCgxjaGFubmVsX25hbWUYBiABKAkSEwoLc2RrX3ZlcnNpb24YByABKAkSFAoHYnJvd3NlchgIIAEoCUgBiAEBEioKCnByb2Nlc3NfaWQYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSDAoEbW9kZRgKIAEoCRINCgVjb2RlYxgLIAEoCRIRCgRyb2xlGAwgASgJSAKIAQESIAoTaGFzX2NoYW5nZWRfZ2F0ZXdheRgNIAEoCEgDiAEBEhMKBmV4dGVuZBgOIAEoCUgEiAEBEhkKDGNzZXJ2aWNlX21hcBgPIAEoCUgFiAEBEhoKDW9wdGlvbmFsX2luZm8YECABKAlIBogBARIZCgxhcHBfc2NlbmFyaW8YESABKAlIB4gBARIvCgphdHRyaWJ1dGVzGBIgASgLMhsuaW8uYWdvcmEucGIuVXNlckF0dHJpYnV0ZXMSEgoKcmVxdWVzdF90cxgTIAEoBBIXCgpzdHJpbmdfdWlkGBQgASgJSAiIAQESFQoIYWVzX21vZGUYFSABKAlICYgBARIXCgphZXNfc2VjcmV0GBYgASgJSAqIAQESGAoLYWVzX2VuY3J5cHQYFyABKAhIC4gBARIVCghhZXNfc2FsdBgYIAEoCUgMiAEBEiEKFGRlZmF1bHRfdmlkZW9fc3RyZWFtGBkgASgNSA2IAQFCCgoIX2xpY2Vuc2VCCgoIX2Jyb3dzZXJCBwoFX3JvbGVCFgoUX2hhc19jaGFuZ2VkX2dhdGV3YXlCCQoHX2V4dGVuZEIPCg1fY3NlcnZpY2VfbWFwQhAKDl9vcHRpb25hbF9pbmZvQg8KDV9hcHBfc2NlbmFyaW9CDQoLX3N0cmluZ191aWRCCwoJX2Flc19tb2RlQg0KC19hZXNfc2VjcmV0Qg4KDF9hZXNfZW5jcnlwdEILCglfYWVzX3NhbHRCFwoVX2RlZmF1bHRfdmlkZW9fc3RyZWFtIl8KEk11bHRpVW5pbGJzUmVxdWVzdBILCgN1cmkYASABKA0SJwoGZGV0YWlsGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBITCgtzZXJ2aWNlX2lkcxgDIAMoDSKtAQoSU2RwRW5kcG9pbnRSZXF1ZXN0Ei8KBnVuaWxicxgBIAMoCzIfLmlvLmFnb3JhLnBiLk11bHRpVW5pbGJzUmVxdWVzdBILCgN1aWQYAiABKA0SDAoEb3BpZBgDIAEoBBIqCgZzaWduYWwYBCABKAsyGi5pby5hZ29yYS5wYi5TaWduYWxSZXF1ZXN0Eh8KBG9ydGMYBSABKAsyES5pby5hZ29yYS5wYi5PUlRDIvQCChNTZHBFbmRwb2ludFJlc3BvbnNlEicKBmRldGFpbBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEAoIZW50ZXJfdHMYAiABKAQSEAoIbGVhdmVfdHMYAyABKAQSDAoEb3BpZBgEIAEoBBI5Cg91bmlsYnNfcmVzcG9uc2UYBSADKAsyIC5pby5hZ29yYS5wYi5NdWx0aVVuaWxic1Jlc3BvbnNlEgsKA3VpZBgGIAEoDRJAChNhdHRyaWJ1dGVzX3Jlc3BvbnNlGAcgASgLMiMuaW8uYWdvcmEucGIuVXNlckF0dHJpYnV0ZXNSZXNwb25zZRIUCgxyZWpvaW5fdG9rZW4YCCABKAkSMAoIYWRkX29ydGMYCSABKAsyHi5pby5hZ29yYS5wYi5SdHBDYXBCZWZvcmVNZXJnZRIwCghkZWxfb3J0YxgKIAEoCzIeLmlvLmFnb3JhLnBiLlJ0cENhcEJlZm9yZU1lcmdlIq4BChNNdWx0aVVuaWxic1Jlc3BvbnNlEgwKBGNlcnQYASABKAkSCwoDY2lkGAIgASgNEgwKBGNvZGUYAyABKA0SJwoGZGV0YWlsGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIqCghzZXJ2aWNlcxgFIAMoCzIYLmlvLmFnb3JhLnBiLlNlcnZpY2VJbmZvEgwKBGZsYWcYBiABKA0SCwoDdXJpGAcgASgNIkkKC1NlcnZpY2VJbmZvEgoKAmlwGAEgASgJEgwKBHBvcnQYAiABKA0SEwoLZmluZ2VycHJpbnQYAyABKAkSCwoDaWNlGAQgAygJIn0KCkFQUmVzcG9uc2USCwoDdWlkGAEgASgNEgsKA2NpZBgCIAEoDRIMCgRjZXJ0GAMgASgJEicKBmRldGFpbBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEwoGdGlja2V0GAUgASgJSACIAQFCCQoHX3RpY2tldCK9AQoNSm9pbkZvcndhcmRlchISCgpyZWpvaW5fa2V5GAEgASgJEioKBnNpZ25hbBgCIAEoCzIaLmlvLmFnb3JhLnBiLlNpZ25hbFJlcXVlc3QSCwoDaWNlGAMgAygJEjEKC25lZ290aWF0aW9uGAQgASgLMhwuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uEiwKC2FwX3Jlc3BvbnNlGAUgASgLMhcuaW8uYWdvcmEucGIuQVBSZXNwb25zZSrbBQoVVXNlckF0dHJpYnV0ZUZlYXR1cmUxEg8KC1VOU1BFQ0lGSUVEEAASGgoWZW5hYmxlRW5jb2RlZFRyYW5zZm9ybRABEhcKE2VuYWJsZUF1ZGlvTWV0YWRhdGEQAhISCg5lbmFibGVBdWRpb1B0cxAEEh0KGWVuYWJsZU5ldHdvcmtRdWFsaXR5UHJvYmUQCBIbChdlbmFibGVQdWJsaXNoZWRVc2VyTGlzdBAQEhwKGGVuYWJsZVB1Ymxpc2hBdWRpb0ZpbHRlchAgEhoKFmVuYWJsZVVzZXJMaWNlbnNlQ2hlY2sQQBIOCgllbmFibGVSVFgQgAESFAoPZW5hYmxlTlRQUmVwb3J0EIACEhcKEmVuYWJsZUluc3RhbnRWaWRlbxCABBIZChRlbmFibGVGdWxsbGlua0F2U3luYxCACBIWChFlbmFibGVEYXRhU3RyZWFtMhCAEBIWChFlbmFibGVBdXRGZWVkYmFjaxCAIBIhChxlbmFibGVVc2VyQXV0b1JlYmFsYW5jZUNoZWNrEIBAEg4KCGVuYWJsZVhSEICAARIYChJlbmFibGVMb3NzYmFzZWRCd2UQgIACEhEKC2VuYWJsZUF1dENDEICABBIWChBlbmFibGVDQ0ZhbGxiYWNrEICACBIWChBlbmFibGVQcmVhbGxvY1BDEICAEBITCg1lbmFibGVQdWJUV0NDEICAIBITCg1lbmFibGVTdWJUV0NDEICAQBITCgxlbmFibGVQdWJSVFgQgICAARITCgxlbmFibGVTdWJSVFgQgICAAhIcChVlbmFibGVRdWFsaXR5RmFsbGJhY2sQgICABBIcChVzZW50dHNVc2VzQWJzU2VuZFRpbWUQgICACBIbChRlbmFibGVEdWFsU3RyZWFtRmxhZxCAgIAQEhEKCmRpc2FibGVGRUMQgICAIBIYChFlbmFibGVWb3NGYWxsYmFjaxCAgIBAYgZwcm90bzM",[l9,L1e]),xee=sm(Uee,5),Fee=sm(Uee,6);let Gee=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.enableEncodedTransform=1]="enableEncodedTransform",t[t.enableAudioMetadata=2]="enableAudioMetadata",t[t.enableAudioPts=4]="enableAudioPts",t[t.enableNetworkQualityProbe=8]="enableNetworkQualityProbe",t[t.enablePublishedUserList=16]="enablePublishedUserList",t[t.enablePublishAudioFilter=32]="enablePublishAudioFilter",t[t.enableUserLicenseCheck=64]="enableUserLicenseCheck",t[t.enableRTX=128]="enableRTX",t[t.enableNTPReport=256]="enableNTPReport",t[t.enableInstantVideo=512]="enableInstantVideo",t[t.enableFulllinkAvSync=1024]="enableFulllinkAvSync",t[t.enableDataStream2=2048]="enableDataStream2",t[t.enableAutFeedback=4096]="enableAutFeedback",t[t.enableUserAutoRebalanceCheck=8192]="enableUserAutoRebalanceCheck",t[t.enableXR=16384]="enableXR",t[t.enableLossbasedBwe=32768]="enableLossbasedBwe",t[t.enableAutCC=65536]="enableAutCC",t[t.enableCCFallback=131072]="enableCCFallback",t[t.enablePreallocPC=262144]="enablePreallocPC",t[t.enablePubTWCC=524288]="enablePubTWCC",t[t.enableSubTWCC=1048576]="enableSubTWCC",t[t.enablePubRTX=2097152]="enablePubRTX",t[t.enableSubRTX=4194304]="enableSubRTX",t[t.enableQualityFallback=8388608]="enableQualityFallback",t[t.senttsUsesAbsSendTime=16777216]="senttsUsesAbsSendTime",t[t.enableDualStreamFlag=33554432]="enableDualStreamFlag",t[t.disableFEC=67108864]="disableFEC",t[t.enableVosFallback=134217728]="enableVosFallback",t}({});const TX={VP8:Ed.VP8,VP9:Ed.VP9,H264:Ed.H264,H265:Ed.H265,AV1:Ed.AV1,G711:Ed.G711,G722:Ed.G722,opus:Ed.OPUS,PCMU:Ed.PCMU,PCMA:Ed.PCMA,CN:Ed.CN,"telephone-event":Ed.TELEPHONE_EVENT,rtx:Ed.RTX,red:Ed.RED},wX={minptime:tg.MINPTIME,useinbandfec:tg.USEINBANDFEC,"level-id":tg.LEVEL_ID,"profile-id":tg.PROFILE_ID,"tier-flag":tg.TIER_FLAG,"tx-mode":tg.TX_MODE,"level-asymmetry-allowed":tg.LEVEL_ASYMMETRY_ALLOWED,"packetization-mode":tg.PACKETIZATION_MODE,"profile-level-id":tg.PROFILE_LEVEL_ID,"level-idx":tg.LEVEL_IDX,profile:tg.PROFILE,tier:tg.TIER},vX={"goog-remb":d9.GOOG_REMB,"transport-cc":d9.TRANSPORT_CC,ccm:d9.CCM,nack:d9.NACK,rrtr:d9.RRTR};function M1e(t){if(t)return Object.keys(vX).find(s=>vX[s]===t)}const fF={"urn:ietf:params:rtp-hdrext:toffset":sE.VIDEO_EXT_HDR_TOFFSET,"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time":sE.VIDEO_EXT_ABS_SEND_TIME,"urn:3gpp:video-orientation":sE.VIDEO_EXT_ORIENTATION,"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01":sE.VIDEO_EXT_TWCC,"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay":sE.VIDEO_EXT_PLAYOUT_DELAY,"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type":sE.VIDEO_EXT_CONTENT_TYPE,"http://www.webrtc.org/experiments/rtp-hdrext/video-timing":sE.VIDEO_EXT_VIDEO_TIMING,"http://www.webrtc.org/experiments/rtp-hdrext/color-space":sE.VIDEO_EXT_COLOR_SPACE,"urn:ietf:params:rtp-hdrext:sdes:mid":sE.VIDEO_EXT_SDES_MID,"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id":sE.VIDEO_EXT_SDES_RTP_STREAM_ID,"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id":sE.VIDEO_EXT_SDED_REPAIRED_RTP_STREAM_ID},Vee={"urn:ietf:params:rtp-hdrext:ssrc-audio-level":ZQ.AUDIO_EXT_AUDIO_LEVEL,"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time":ZQ.AUDIO_EXT_ABS_SEND_TIME,"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01":ZQ.AUDIO_EXT_TWCC,"urn:ietf:params:rtp-hdrext:sdes:mid":ZQ.AUDIO_EXT_SDES_MID,"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id":ZQ.AUDIO_EXT_SDES_RTP_STREAM_ID,"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id":ZQ.AUDIO_EXT_SDS_REPAIRED_RTP_STREAM_ID};function k1e(t,s,c){return(s=function(u){var h=function(_,B){if(typeof _!="object"||!_)return _;var Q=_[Symbol.toPrimitive];if(Q!==void 0){var T=Q.call(_,"string");if(typeof T!="object")return T;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(_)}(u);return typeof h=="symbol"?h:h+""}(s))in t?Object.defineProperty(t,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):t[s]=c,t}function Kee(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function qo(t){for(var s=1;s128&&(H=void 0);const $=s.cloudProxyServer==="proxy3"?"1":s.cloudProxyServer==="proxy5"?"2":void 0,Z=function(ge,me,Qe,Oe,we){var Ne,et,st,Xt;Qe=Object.assign({},Qe);const lr=eo(ge),ft=ry(ge),Ir=((Ne=ge.preSubOptions)===null||Ne===void 0?void 0:Ne.length)||0,ui=Ir>0?(et=ge.preSubOptions)===null||et===void 0?void 0:et.map(ie=>ie.uid):void 0,Nr=vs("PRE_SUB_NUM","number")||1,Ki=Ir>Nr?Ir:Nr,it=Hee(),mt=(Ks()||vf(18,4,!1))&&Df(18,6,!0)&&me==="h264"&&de("ENABLE_ABSSENDTIME_AS_SENTTS"),Gt=!(((st=Qe.detail)===null||st===void 0?void 0:st[3])!=="CN"||!de("ENABLE_QUALITY_FALLBACK"))&&de("ENABLE_QUALITY_FALLBACK"),at=qo(qo({enableEncodedTransform:(!!de("ENABLE_AUDIO_METADATA")||!!de("ENABLE_AUDIO_PTS"))&&DX||!!de("ENABLE_AUDIO_TOPN")&&Tf(Fi.CHROME,87,116)||void 0,enableAudioMetadata:!!de("ENABLE_AUDIO_METADATA")&&DX,enableAudioPts:!!de("ENABLE_AUDIO_PTS")&&DX,topnSmoothLevel:de("TOPN_SMOOTH_LEVEL"),topnNewSpeakerDelay:de("TOPN_NEW_SPEAKER_DELAY"),topnSwitchHoldMs:de("TOPN_SWITCH_HOLD_MS"),topnAudioGain:de("TOPN_AUDIO_GAIN"),enableNetworkQualityProbe:ge.networkQualityProbe,enablePublishedUserList:de("ENABLE_PUBLISHED_USER_LIST"),enableUserList:de("ENABLE_USER_LIST"),maxSubscription:de("MAX_SUBSCRIPTION"),subscribeAudioFilterTopN:vs("SUBSCRIBE_AUDIO_FILTER_TOPN","number"),enablePublishAudioFilter:vs("ENABLE_PUBLISH_AUDIO_FILTER","boolean"),enableUserLicenseCheck:vs("ENABLE_USER_LICENSE_CHECK","boolean"),enableRTX:de("USE_PUB_RTX")===!0||de("USE_SUB_RTX")===!0||void 0,disableFEC:de("DISABLE_FEC"),enableNTPReport:!!de("ENABLE_NTP_REPORT")||void 0,enableInstantVideo:ft,enableFulllinkAvSync:!!de("ENABLE_FULL_LINK_AV_SYNC")||void 0,enableDataStream2:vs("ENABLE_DATASTREAM_2","boolean"),enableAutFeedback:N4(),rtm2Flag:typeof Oe=="number"?Oe:void 0,enableUserAutoRebalanceCheck:!!de("ENABLE_USER_AUTO_REBALANCE_CHECK"),enableXR:vs("USE_XR","boolean"),enableLossbasedBwe:vs("ENABLE_LOSSBASED_BWE","boolean"),enableAutCC:b4(),enableCCFallback:vs("ENABLE_CC_FALLBACK","boolean"),preSubUid:lr?ui:void 0,preSubNum:lr?Ki:void 0,enablePubTWCC:vs("PUBLISH_TWCC","boolean"),enableSubTWCC:vs("SUBSCRIBE_TWCC","boolean"),enablePubRTX:vs("USE_PUB_RTX","boolean"),enableSubRTX:vs("USE_SUB_RTX","boolean"),enableSubSVC:de("ENABLE_SVC")?de("ENABLE_SVC_DEFAULT_CODECS"):Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0,enableSvcExtended:de("ENABLE_SVC")&&Array.isArray(de("SVC_EXTENDED"))&&de("SVC_EXTENDED").length!==0?de("SVC_EXTENDED"):void 0,enableVosFallback:de("ENABLE_VOS_FALLBACK"),enableQualityFallback:Gt},it),{},{audioDuplicate:vs("ENABLE_AUDIO_RED","boolean")?(Xt=vs("AUDIO_DUPLICATE_NUM","number"))!==null&&Xt!==void 0?Xt:2:void 0,senttsUsesAbsSendTime:!!mt||void 0,enableDualStreamFlag:vs("ENABLE_DUAL_STREAM_FLAG","boolean")});for(const ie in at)at[ie]===void 0&&delete at[ie],Array.isArray(at[ie])&&at[ie].length===0&&delete at[ie],ie==="enablePreallocPC"&&delete at[ie];return at.enablePreallocPC=!0,at}(t,B,D,s.rtmFlag),te=qo(qo(qo(qo(qo({},s.license?{license:s.license}:{}),{},{p2pId:t.p2pId,sessionId:s.sid,appId:s.appId,channelKey:(u=s.token)!==null&&u!==void 0?u:s.appId,channelName:s.cname,sdkVersion:W1,processId:de("PROCESS_ID"),mode:t.useP2P?"p2p":_,codec:B,role:(h=s.role)!==null&&h!==void 0?h:"audience",hasChangedGateway:O||T,extend:de("JOIN_EXTEND")},$?{cservice_map:$}:{}),s.optionalInfo?{optionalInfo:s.optionalInfo}:{}),H?{appScenario:H}:{}),{},{attributes:U1e(Z),requestTs:(se=Q,Number(se))});var se;return s.stringUid&&(te.stringUid=s.stringUid),s.aesmode&&s.aespassword&&(te.aesMode=s.aesmode,de("ENCRYPT_AES")?(te.aesSecret=s.aespassword,te.aesEncrypt=!0):te.aesSecret=s.aespassword,s.aessalt&&(te.aesSalt=s.aessalt)),s.defaultVideoStream!==void 0&&(te.defaultVideoStream=s.defaultVideoStream),te}const DX=al(87)||Zb()||wf(117);function U1e(t){const s={enableSubSVC:[],enableSvcExtended:[]},c=["topnSmoothLevel","topnNewSpeakerDelay","topnSwitchHoldMs","topnAudioGain","maxSubscription","subscribeAudioFilterTopN","rtm2Flag","preSubNum","enableSubSVC","enableSvcExtended","audioDuplicate","preSubUid"],u={};for(const Q in Gee){const T=Gee[Q];typeof T=="number"&&T!==0&&(u[Q]=T)}const h=[],_={};for(const Q in t){const T=t[Q];if(Q in u&&T===!0){const D=u[Q];let O,P;for(D<4294967296?(O=0,P=D):(O=1,P=1<0&&h.forEach((Q,T)=>{Q!==void 0&&Q!==0&&(s["feature".concat(T+1)]=Q)});const B=Object.keys(_);B.length>0&&(s.experiments=_,B.forEach(Q=>{Q in s&&delete s[Q]}));for(const Q in s)s[Q]===void 0&&delete s[Q],Array.isArray(s[Q])&&s[Q].length===0&&delete s[Q];return s}function eT(t){var s,c,u,h;const _=function(U){if(U)return TX[U]||void 0}((s=t.rtpMap)===null||s===void 0?void 0:s.encodingName),B=_||(c=t.rtpMap)===null||c===void 0?void 0:c.encodingName,Q=(u=t.rtpMap)===null||u===void 0?void 0:u.encodingParameters,T=(h=t.fmtp)===null||h===void 0?void 0:h.parameters;let D,O;T&&Object.keys(T).forEach(U=>{const H=function($){if($)return wX[$]||void 0}(U);H?(D||(D={}),D[H]=T[U]+""):(O||(O={}),O[U]=T[U]+"")});const P=D||O?qo(qo({},D?{enumParameters:D}:{}),O?{stringParameters:O}:{}):void 0;return qo(qo({payloadType:t.payloadType,rtpMap:t.rtpMap?qo(qo(qo({},_?{enumEncodingName:_}:{}),B?{stringEncodingName:B}:{}),{},{clockRate:t.rtpMap.clockRate+""},Q?{encodingParameters:Q}:{}):void 0},P?{fmtp:P}:{}),{},{rtcpFeedbacks:t.rtcpFeedbacks.map(U=>{const H=function(Z){if(Z)return vX[Z]||void 0}(U.type),$=qo(qo(qo({},"parameter"in U&&U.parameter?{parameter:U.parameter}:{}),"additional"in U&&U.additional?{additional:U.additional}:{}),"interval"in U&&U.interval?{interval:U.interval}:{});return qo(H?{enumType:H}:{stringType:U.type},$)})})}function Bp(t){let s;if(t.rtpMap){const h=t.rtpMap,_=h.enumEncodingName,B=h.stringEncodingName,Q=h.clockRate,T=h.encodingParameters,D=_?function(O){if(O)return Object.keys(TX).find(P=>TX[P]===O)}(_):B;s={encodingName:D??"",clockRate:(Q==null?void 0:Q.kind.value)+"",encodingParameters:T}}const c={parameters:{}};if(t.fmtp){const h=t.fmtp,_=h.enumParameters,B=h.stringParameters;_&&Object.keys(_).forEach(Q=>{const T=function(D){if(D)return Object.keys(wX).find(O=>wX[O]===D)}(Q);T&&(c.parameters[T]=_[Q].kind.value+"")}),B&&Object.keys(B).forEach(Q=>{c.parameters[Q]=B[Q].kind.value+""})}let u=[];return t.rtcpFeedbacks&&(u=t.rtcpFeedbacks.map(h=>{const _=h.enumType,B=h.stringType,Q=h.parameter,T=h.additional,D=h.interval,O=qo(qo(qo({},Q?{parameter:Q}:{}),T?{additional:T}:{}),D?{interval:D}:{});return qo(_?{type:M1e(_)+""}:{type:B+""},O)})),{payloadType:t.payloadType,rtpMap:s,fmtp:c,rtcpFeedbacks:u}}function tT(t,s){const c=function(u,h){if(u==="video"){const _=fF[h];return typeof _=="number"?_:void 0}if(u==="audio"){const _=fF[h];return typeof _=="number"?_:void 0}}(t,s.extensionName);return{entry:s.entry,extensionName:typeof c=="number"?c:s.extensionName}}function yp(t,s){var c,u;const h=function(_,B){if(B||typeof B=="number")return _==="video"?Object.keys(fF).find(Q=>fF[Q]===B):Object.keys(Vee).find(Q=>Vee[Q]===B)}(t,Number((c=s.extensionName)===null||c===void 0?void 0:c.kind.value))||((u=s.extensionName)===null||u===void 0?void 0:u.kind.value);return{entry:s.entry,extensionName:h+""}}function x1e(t){var s,c,u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et;const st={audioCodecs:(s=(c=t.rtpCapabilities.send)===null||c===void 0?void 0:c.audioCodecs.map(ft=>eT(ft)))!==null&&s!==void 0?s:[],videoCodecs:(u=(h=t.rtpCapabilities.send)===null||h===void 0?void 0:h.videoCodecs.map(ft=>eT(ft)))!==null&&u!==void 0?u:[],audioExtensions:(_=(B=t.rtpCapabilities.send)===null||B===void 0?void 0:B.audioExtensions.map(ft=>tT("audio",ft)))!==null&&_!==void 0?_:[],videoExtensions:(Q=(T=t.rtpCapabilities.send)===null||T===void 0?void 0:T.videoExtensions.map(ft=>tT("video",ft)))!==null&&Q!==void 0?Q:[]},Xt={audioCodecs:(D=(O=t.rtpCapabilities.recv)===null||O===void 0?void 0:O.audioCodecs.map(ft=>eT(ft)))!==null&&D!==void 0?D:[],videoCodecs:(P=(U=t.rtpCapabilities.recv)===null||U===void 0?void 0:U.videoCodecs.map(ft=>eT(ft)))!==null&&P!==void 0?P:[],audioExtensions:(H=($=t.rtpCapabilities.recv)===null||$===void 0?void 0:$.audioExtensions.map(ft=>tT("audio",ft)))!==null&&H!==void 0?H:[],videoExtensions:(Z=(te=t.rtpCapabilities.recv)===null||te===void 0?void 0:te.videoExtensions.map(ft=>tT("video",ft)))!==null&&Z!==void 0?Z:[]},lr={audioCodecs:(se=(ge=t.rtpCapabilities.sendrecv)===null||ge===void 0?void 0:ge.audioCodecs.map(ft=>eT(ft)))!==null&&se!==void 0?se:[],videoCodecs:(me=(Qe=t.rtpCapabilities.sendrecv)===null||Qe===void 0?void 0:Qe.videoCodecs.map(ft=>eT(ft)))!==null&&me!==void 0?me:[],audioExtensions:(Oe=(we=t.rtpCapabilities.sendrecv)===null||we===void 0?void 0:we.audioExtensions.map(ft=>tT("audio",ft)))!==null&&Oe!==void 0?Oe:[],videoExtensions:(Ne=(et=t.rtpCapabilities.sendrecv)===null||et===void 0?void 0:et.videoExtensions.map(ft=>tT("video",ft)))!==null&&Ne!==void 0?Ne:[]};return{ice:[t.iceParameters.iceUfrag,t.iceParameters.icePwd],dtls:t.dtlsParameters.fingerprints.map(ft=>({[ft.hashFunction]:ft.fingerprint})),send:st,recv:Xt,sendRecv:lr}}function F1e(t,s,c){var u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et,st,Xt,lr,ft,Ir,ui,Nr,Ki,it,mt;s&&s.sendRecv&&(s.send={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((me=s.send)===null||me===void 0?void 0:me.audioCodecs)||[],...s.sendRecv.audioCodecs],videoCodecs:[...((Qe=s.send)===null||Qe===void 0?void 0:Qe.videoCodecs)||[],...s.sendRecv.videoCodecs],audioExtensions:[...((Oe=s.send)===null||Oe===void 0?void 0:Oe.audioExtensions)||[],...s.sendRecv.audioExtensions],videoExtensions:[...((we=s.send)===null||we===void 0?void 0:we.videoExtensions)||[],...s.sendRecv.videoExtensions]},s.recv={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((Ne=s.recv)===null||Ne===void 0?void 0:Ne.audioCodecs)||[],...s.sendRecv.audioCodecs],videoCodecs:[...((et=s.recv)===null||et===void 0?void 0:et.videoCodecs)||[],...s.sendRecv.videoCodecs],audioExtensions:[...((st=s.recv)===null||st===void 0?void 0:st.audioExtensions)||[],...s.sendRecv.audioExtensions],videoExtensions:[...((Xt=s.recv)===null||Xt===void 0?void 0:Xt.videoExtensions)||[],...s.sendRecv.videoExtensions]}),c&&c.sendRecv&&(c.send={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((lr=c.send)===null||lr===void 0?void 0:lr.audioCodecs)||[],...c.sendRecv.audioCodecs],videoCodecs:[...((ft=c.send)===null||ft===void 0?void 0:ft.videoCodecs)||[],...c.sendRecv.videoCodecs],audioExtensions:[...((Ir=c.send)===null||Ir===void 0?void 0:Ir.audioExtensions)||[],...c.sendRecv.audioExtensions],videoExtensions:[...((ui=c.send)===null||ui===void 0?void 0:ui.videoExtensions)||[],...c.sendRecv.videoExtensions]},c.recv={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((Nr=c.recv)===null||Nr===void 0?void 0:Nr.audioCodecs)||[],...c.sendRecv.audioCodecs],videoCodecs:[...((Ki=c.recv)===null||Ki===void 0?void 0:Ki.videoCodecs)||[],...c.sendRecv.videoCodecs],audioExtensions:[...((it=c.recv)===null||it===void 0?void 0:it.audioExtensions)||[],...c.sendRecv.audioExtensions],videoExtensions:[...((mt=c.recv)===null||mt===void 0?void 0:mt.videoExtensions)||[],...c.sendRecv.videoExtensions]});const Gt=s?{send:{audioCodecs:((u=s.send)===null||u===void 0?void 0:u.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((h=s.send)===null||h===void 0?void 0:h.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((_=s.send)===null||_===void 0?void 0:_.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:((B=s.send)===null||B===void 0?void 0:B.videoExtensions.map(Ar=>yp("video",Ar)))||[]},recv:{audioCodecs:((Q=s.recv)===null||Q===void 0?void 0:Q.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((T=s.recv)===null||T===void 0?void 0:T.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((D=s.recv)===null||D===void 0?void 0:D.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:((O=s.recv)===null||O===void 0?void 0:O.videoExtensions.map(Ar=>yp("video",Ar)))||[]}}:void 0,at=c?{send:{audioCodecs:((P=c.send)===null||P===void 0?void 0:P.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((U=c.send)===null||U===void 0?void 0:U.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((H=c.send)===null||H===void 0?void 0:H.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:(($=c.send)===null||$===void 0?void 0:$.videoExtensions.map(Ar=>yp("video",Ar)))||[]},recv:{audioCodecs:((Z=c.recv)===null||Z===void 0?void 0:Z.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((te=c.recv)===null||te===void 0?void 0:te.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((se=c.recv)===null||se===void 0?void 0:se.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:((ge=c.recv)===null||ge===void 0?void 0:ge.videoExtensions.map(Ar=>yp("video",Ar)))||[]}}:void 0,ie={send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},Te=t.send,ke=t.recv,_t=t.sendrecv;return Te&&(ie.send.audioCodecs.push(...Te.audioCodecs),ie.send.videoCodecs.push(...Te.videoCodecs),ie.send.audioExtensions.push(...Te.audioExtensions),ie.send.videoExtensions.push(...Te.videoExtensions)),ke&&(ie.recv.audioCodecs.push(...ke.audioCodecs),ie.recv.videoCodecs.push(...ke.videoCodecs),ie.recv.audioExtensions.push(...ke.audioExtensions),ie.recv.videoExtensions.push(...ke.videoExtensions)),_t&&(ie.send.audioCodecs.push(..._t.audioCodecs),ie.send.videoCodecs.push(..._t.videoCodecs),ie.send.audioExtensions.push(..._t.audioExtensions),ie.send.videoExtensions.push(..._t.videoExtensions),ie.recv.audioCodecs.push(..._t.audioCodecs),ie.recv.videoCodecs.push(..._t.videoCodecs),ie.recv.audioExtensions.push(..._t.audioExtensions),ie.recv.videoExtensions.push(..._t.videoExtensions)),Gt&&(ie.send.audioCodecs.push(...Gt.send.audioCodecs),ie.send.videoCodecs.push(...Gt.send.videoCodecs),ie.send.audioExtensions.push(...Gt.send.audioExtensions),ie.send.videoExtensions.push(...Gt.send.videoExtensions),ie.recv.audioCodecs.push(...Gt.recv.audioCodecs),ie.recv.videoCodecs.push(...Gt.recv.videoCodecs),ie.recv.audioExtensions.push(...Gt.recv.audioExtensions),ie.recv.videoExtensions.push(...Gt.recv.videoExtensions)),at&&(at.send.audioCodecs.forEach(Ar=>{ie.send.audioCodecs=ie.send.audioCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)}),at.send.videoCodecs.forEach(Ar=>{ie.send.videoCodecs=ie.send.videoCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)}),at.send.audioExtensions.forEach(Ar=>{ie.send.audioExtensions=ie.send.audioExtensions.filter(ni=>ni.entry!==Ar.entry)}),at.send.videoExtensions.forEach(Ar=>{ie.send.videoExtensions=ie.send.videoExtensions.filter(ni=>ni.entry!==Ar.entry)}),at.recv.audioCodecs.forEach(Ar=>{ie.recv.audioCodecs=ie.recv.audioCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)}),at.recv.videoCodecs.forEach(Ar=>{ie.recv.videoCodecs=ie.recv.videoCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)})),{send:ie.recv,recv:ie.send}}function G1e(t,s){Yee(s,t);const c=function(Q,T){if(Q===void 0)return[];if(T.fieldKind==="enum"||T.fieldKind==="scalar"){for(let D=Q.length-1;D>=0;--D)if(Q[D].no==T.number)return[Q[D]];return[]}return Q.filter(D=>D.no===T.number)}(t.$unknown,s),u=PA(_F(s),3),h=u[0],_=u[1],B=u[2];for(const Q of c)Mee(h,new dX(Q.data),_,Q.wireType,{readUnknownFields:!0});return B()}function V1e(t,s,c){var u;Yee(s,t);const h=((u=t.$unknown)!==null&&u!==void 0?u:[]).filter(O=>O.no!==s.number),_=PA(_F(s,c),2),B=_[0],Q=_[1],T=new GZ;Aee(T,{writeUnknownFields:!0},B,Q);const D=new dX(T.finish());for(;D.pos{const B=_[c];if(B===void 0){const Q=t.message;return a9(Q)?dd(Q.fields[0].scalar,Q.fields[0].longAsString):gI(Q)}return B}]}function Yee(t,s){if(t.extendee.typeName!=s.$typeName)throw new Error("extension ".concat(t.typeName," can only be applied to message ").concat(t.extendee.typeName))}const K1e=3,H1e=2,jee={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function u9(t,s){var c;const u=function(_,B){var Q;if(_.desc.typeName.startsWith("google.protobuf."))switch(_.desc.typeName){case"google.protobuf.Any":return function(T,D){if(T.typeUrl==="")return{};const O=D.registry;let P,U;if(O&&(P=function($,Z){if($.typeUrl==="")return;const te=Z.kind=="message"?Z:Z.getMessage(kee($.typeUrl));return te&&function(se,ge){return se.typeUrl!==""&&(typeof ge=="string"?ge:ge.typeName)===kee(se.typeUrl)}($,te)?RX(te,$.value):void 0}(T,O),P&&(U=O.getMessage(P.$typeName))),!U||!P)throw new Error("cannot encode message ".concat(T.$typeName,' to JSON: "').concat(T.typeUrl,'" is not in the type registry'));let H=u9(eg(U,P),D);return(U.typeName.startsWith("google.protobuf.")||H===null||Array.isArray(H)||typeof H!="object")&&(H={value:H}),H["@type"]=T.typeUrl,H}(_.message,B);case"google.protobuf.Timestamp":return function(T){const D=1e3*Number(T.seconds);if(DDate.parse("9999-12-31T23:59:59Z"))throw new Error("cannot encode message ".concat(T.$typeName," to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive"));if(T.nanos<0)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: nanos must not be negative"));if(T.nanos>999999999)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: nanos must not be greater than 99999999"));let O="Z";if(T.nanos>0){const P=(T.nanos+1e9).toString().substring(1);O=P.substring(3)==="000000"?"."+P.substring(0,3)+"Z":P.substring(6)==="000"?"."+P.substring(0,6)+"Z":"."+P+"Z"}return new Date(D).toISOString().replace(".000Z",O)}(_.message);case"google.protobuf.Duration":return function(T){const D=Number(T.seconds),O=T.nanos;if(D>315576e6||D<-315576e6)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: value out of range"));if(D>0&&O<0||D<0&&O>0)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: nanos sign must match seconds sign"));let P=T.seconds.toString();if(O!==0){let U=Math.abs(O).toString();U="0".repeat(9-U.length)+U,U.substring(3)==="000000"?U=U.substring(0,3):U.substring(6)==="000"&&(U=U.substring(0,6)),P+="."+U,O<0&&D==0&&(P="-"+P)}return P+"s"}(_.message);case"google.protobuf.FieldMask":return(Q=_.message).paths.map(T=>{if(T.match(/_[0-9]?_/g)||T.match(/[A-Z]/g))throw new Error("cannot encode message ".concat(Q.$typeName,' to JSON: lowerCamelCase of path name "')+T+'" is irreversible');return np(T)}).join(",");case"google.protobuf.Struct":return qee(_.message);case"google.protobuf.Value":return NX(_.message);case"google.protobuf.ListValue":return Wee(_.message);default:if(a9(_.desc)){const T=_.desc.fields[0];return mF(T,_.get(T))}return}}(t,s);if(u!==void 0)return u;const h={};for(const _ of t.sortedFields){if(!t.isSet(_)){if(_.presence==K1e)throw new Error("cannot encode ".concat(_," to JSON: required field not set"));if(!s.alwaysEmitImplicit||_.presence!==H1e)continue}const B=Jee(_,t.get(_),s);B!==void 0&&(h[Y1e(_,s)]=B)}if(s.registry){const _=new Set;for(const B of(c=t.getUnknown())!==null&&c!==void 0?c:[]){const Q=B.no;if(!_.has(Q)){_.add(Q);const T=s.registry.getExtensionFor(t.desc,Q);if(!T)continue;const D=PA(_F(T,G1e(t.message,T)),2),O=D[0],P=D[1],U=Jee(P,O.get(P),s);U!==void 0&&(h[T.jsonName]=U)}}}return h}function Jee(t,s,c){switch(t.fieldKind){case"scalar":return mF(t,s);case"message":return u9(s,c);case"enum":return bX(t.enum,s,c.enumAsInteger);case"list":return function(u,h){const _=u.field(),B=[];switch(_.listKind){case"scalar":for(const Q of u)B.push(mF(_,Q));break;case"enum":for(const Q of u)B.push(bX(_.enum,Q,h.enumAsInteger));break;case"message":for(const Q of u)B.push(u9(Q,h))}return h.alwaysEmitImplicit||B.length>0?B:void 0}(s,c);case"map":return function(u,h){const _=u.field(),B={};switch(_.mapKind){case"scalar":for(const O of u){var Q=PA(O,2);const P=Q[0],U=Q[1];B[P]=mF(_,U)}break;case"message":for(const O of u){var T=PA(O,2);const P=T[0],U=T[1];B[P]=u9(U,h)}break;case"enum":for(const O of u){var D=PA(O,2);const P=D[0],U=D[1];B[P]=bX(_.enum,U,h.enumAsInteger)}}return h.alwaysEmitImplicit||u.size>0?B:void 0}(s,c)}}function bX(t,s,c){var u;if(typeof s!="number")throw new Error("cannot encode ".concat(t," to JSON: expected number, got ").concat(T1(s)));if(t.typeName=="google.protobuf.NullValue")return null;if(c)return s;const h=t.value[s];return(u=h==null?void 0:h.name)!==null&&u!==void 0?u:s}function mF(t,s){var c,u,h,_,B,Q;switch(t.scalar){case Dt.INT32:case Dt.SFIXED32:case Dt.SINT32:case Dt.FIXED32:case Dt.UINT32:if(typeof s!="number")throw new Error("cannot encode ".concat(t," to JSON: ").concat((c=om(t,s))===null||c===void 0?void 0:c.message));return s;case Dt.FLOAT:case Dt.DOUBLE:if(typeof s!="number")throw new Error("cannot encode ".concat(t," to JSON: ").concat((u=om(t,s))===null||u===void 0?void 0:u.message));return Number.isNaN(s)?"NaN":s===Number.POSITIVE_INFINITY?"Infinity":s===Number.NEGATIVE_INFINITY?"-Infinity":s;case Dt.STRING:if(typeof s!="string")throw new Error("cannot encode ".concat(t," to JSON: ").concat((h=om(t,s))===null||h===void 0?void 0:h.message));return s;case Dt.BOOL:if(typeof s!="boolean")throw new Error("cannot encode ".concat(t," to JSON: ").concat((_=om(t,s))===null||_===void 0?void 0:_.message));return s;case Dt.UINT64:case Dt.FIXED64:case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:if(typeof s!="bigint"&&typeof s!="string")throw new Error("cannot encode ".concat(t," to JSON: ").concat((B=om(t,s))===null||B===void 0?void 0:B.message));return s.toString();case Dt.BYTES:if(s instanceof Uint8Array)return function(T){let D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"std";const O=Yz(D),P=D=="std";let U,H="",$=0,Z=0;for(let te=0;te>2],Z=(3&U)<<4,$=1;break;case 1:H+=O[Z|U>>4],Z=(15&U)<<2,$=2;break;case 2:H+=O[Z|U>>6],H+=O[63&U],$=0}return $&&(H+=O[Z],P&&(H+="=",$==1&&(H+="="))),H}(s);throw new Error("cannot encode ".concat(t," to JSON: ").concat((Q=om(t,s))===null||Q===void 0?void 0:Q.message))}}function Y1e(t,s){return s.useProtoFieldName?t.name:t.jsonName}function qee(t){const s={};for(const u of Object.entries(t.fields)){var c=PA(u,2);const h=c[0],_=c[1];s[h]=NX(_)}return s}function NX(t){switch(t.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(t.kind.value))throw new Error("".concat(t.$typeName," cannot be NaN or Infinity"));return t.kind.value;case"boolValue":case"stringValue":return t.kind.value;case"structValue":return qee(t.kind.value);case"listValue":return Wee(t.kind.value);default:throw new Error("".concat(t.$typeName," must have a value"))}}function Wee(t){return br(t).map(NX)}var Xee=` +\v\f\r                 \u2028\u2029\uFEFF`,j1e=Yu,J1e=pp,OX=Xee,zee=Ka("".replace),q1e=RegExp("^["+OX+"]+"),W1e=RegExp("(^|[^"+OX+"])["+OX+"]+$"),LX=function(t){return function(s){var c=J1e(j1e(s));return 1&t&&(c=zee(c,q1e,"")),2&t&&(c=zee(c,W1e,"$1")),c}},X1e={start:LX(1),end:LX(2),trim:LX(3)},z1e=n1.PROPER,$1e=xa,$ee=Xee,Z1e=Ga(X1e);Fa({target:"String",proto:!0,forced:function(t){return $1e(function(){return!!$ee[t]()||"​…᠎"[t]()!=="​…᠎"||z1e&&$ee[t].name!==t})}("trim")},{trim:function(){return Z1e(this)}});var ece=Le("String","trim"),tce=zd,rce=ece,MX=String.prototype,Zee=sc(function(t){var s=Ga(t);return typeof t=="string"||t===MX||tce(MX,t)&&s===Ga(MX)?rce:s});const ete={ignoreUnknownFields:!1};function rT(t,s,c){var u;if(function(Q,T,D){if(!Q.desc.typeName.startsWith("google.protobuf."))return!1;switch(Q.desc.typeName){case"google.protobuf.Any":return function(O,P,U){var H;if(P===null||Array.isArray(P)||typeof P!="object")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: expected object but got ").concat(T1(P)));if(Object.keys(P).length==0)return;const $=P["@type"];if(typeof $!="string"||$=="")throw new Error("cannot decode message ".concat(O.$typeName,' from JSON: "@type" is empty'));const Z=dF($).call($,"/")?$.substring($.lastIndexOf("/")+1):$;if(!Z.length)throw new Error("cannot decode message ".concat(O.$typeName,' from JSON: "@type" is invalid'));const te=(H=U.registry)===null||H===void 0?void 0:H.getMessage(Z);if(!te)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat($," is not in the type registry"));const se=eg(te);if(Z.startsWith("google.protobuf.")&&Object.prototype.hasOwnProperty.call(P,"value"))rT(se,P.value,U);else{const ge=Object.assign({},P);delete ge["@type"],rT(se,ge,U)}(function(ge,me,Qe){var Oe;Qe||(Qe=gI(b1e)),Qe.value=aee(ge,me),Qe.typeUrl=(Oe=me.$typeName,"type.googleapis.com/".concat(Oe))})(se.desc,se.message,O)}(Q.message,T,D),!0;case"google.protobuf.Timestamp":return function(O,P){if(typeof P!="string")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));const U=P.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!U)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: invalid RFC 3339 string"));const H=Date.parse(U[1]+"-"+U[2]+"-"+U[3]+"T"+U[4]+":"+U[5]+":"+U[6]+(U[8]?U[8]:"Z"));if(Number.isNaN(H))throw new Error("cannot decode message ".concat(O.$typeName," from JSON: invalid RFC 3339 string"));if(HDate.parse("9999-12-31T23:59:59Z"))throw new Error("cannot decode message ".concat(O.$typeName," from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive"));O.seconds=_n.parse(H/1e3),O.nanos=0,U[7]&&(O.nanos=parseInt("1"+U[7]+"0".repeat(9-U[7].length))-1e9)}(Q.message,T),!0;case"google.protobuf.Duration":return function(O,P){if(typeof P!="string")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));const U=P.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(U===null)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));const H=Number(U[1]);if(H>315576e6||H<-315576e6)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));if(O.seconds=_n.parse(H),typeof U[2]!="string")return;const $=U[2]+"0".repeat(9-U[2].length);O.nanos=parseInt($),(H<0||Object.is(H,-0))&&(O.nanos=-O.nanos)}(Q.message,T),!0;case"google.protobuf.FieldMask":return function(O,P){if(typeof P!="string")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));P!==""&&(O.paths=P.split(",").map(function(U){if(dF(U).call(U,"_"))throw new Error("cannot decode message ".concat(O.$typeName," from JSON: path names must be lowerCamelCase"));const H=U.replace(/[A-Z]/g,$=>"_"+$.toLowerCase());return H[0]==="_"?H.substring(1):H}))}(Q.message,T),!0;case"google.protobuf.Struct":return ite(Q.message,T),!0;case"google.protobuf.Value":return PX(Q.message,T),!0;case"google.protobuf.ListValue":return nte(Q.message,T),!0;default:if(a9(Q.desc)){const O=Q.desc.fields[0];return T===null?Q.clear(O):Q.set(O,RF(O,T,!0)),!0}return!1}}(t,s,c))return;if(s==null||Array.isArray(s)||typeof s!="object")throw new Error("cannot decode ".concat(t.desc," from JSON: ").concat(T1(s)));const h=new Map,_=new Map;for(const Q of t.desc.fields)_.set(Q.name,Q).set(Q.jsonName,Q);for(const Q of Object.entries(s)){var B=PA(Q,2);const T=B[0],D=B[1],O=_.get(T);if(O){if(O.oneof){if(D===null&&O.fieldKind=="scalar")continue;const P=h.get(O.oneof);if(P!==void 0)throw new gd(O.oneof,"oneof set multiple times by ".concat(P.name," and ").concat(O.name));h.set(O.oneof,O)}tte(t,O,D,c)}else{let P;if(T.startsWith("[")&&T.endsWith("]")&&(P=(u=c.registry)===null||u===void 0?void 0:u.getExtension(T.substring(1,T.length-1)))&&P.extendee.typeName===t.desc.typeName){const U=PA(_F(P),3),H=U[0],$=U[1],Z=U[2];tte(H,$,D,c),V1e(t.message,P,Z())}if(!P&&!c.ignoreUnknownFields)throw new Error("cannot decode ".concat(t.desc,' from JSON: key "').concat(T,'" is unknown'))}}}function tte(t,s,c,u){switch(s.fieldKind){case"scalar":(function(h,_,B){const Q=RF(_,B,!1);Q===SF?h.clear(_):h.set(_,Q)})(t,s,c);break;case"enum":(function(h,_,B,Q){const T=kX(_.enum,B,Q.ignoreUnknownFields,!1);T===SF?h.clear(_):T!==BF&&h.set(_,T)})(t,s,c,u);break;case"message":(function(h,_,B,Q){if(B===null&&_.message.typeName!="google.protobuf.Value")return void h.clear(_);const T=h.isSet(_)?h.get(_):eg(_.message);rT(T,B,Q),h.set(_,T)})(t,s,c,u);break;case"list":(function(h,_,B){if(_===null)return;const Q=h.field();if(!Array.isArray(_))throw new gd(Q,"expected Array, got "+T1(_));for(const T of _){if(T===null)throw new gd(Q,"list item must not be null");switch(Q.listKind){case"message":const D=eg(Q.message);rT(D,T,B),h.add(D);break;case"enum":const O=kX(Q.enum,T,B.ignoreUnknownFields,!0);O!==BF&&h.add(O);break;case"scalar":h.add(RF(Q,T,!0))}}})(t.get(s),c,u);break;case"map":(function(h,_,B){if(_===null)return;const Q=h.field();if(typeof _!="object"||Array.isArray(_))throw new gd(Q,"expected object, got "+T1(_));for(const D of Object.entries(_)){var T=PA(D,2);const O=T[0],P=T[1];if(P===null)throw new gd(Q,"map value must not be null");let U;switch(Q.mapKind){case"message":const $=eg(Q.message);rT($,P,B),U=$;break;case"enum":if(U=kX(Q.enum,P,B.ignoreUnknownFields,!0),U===BF)return;break;case"scalar":U=RF(Q,P,!0)}const H=ice(Q.mapKey,O);h.set(H,U)}})(t.get(s),c,u)}}const BF=Symbol();function kX(t,s,c,u){if(s===null)return t.typeName=="google.protobuf.NullValue"?0:u?br(t)[0].number:SF;switch(typeof s){case"number":if(Number.isInteger(s))return s;break;case"string":const h=br(t).find(_=>_.name===s);if(h!==void 0)return h.number;if(c)return BF}throw new Error("cannot decode ".concat(t," from JSON: ").concat(T1(s)))}const SF=Symbol();function RF(t,s,c){if(s===null)return c?dd(t.scalar,!1):SF;switch(t.scalar){case Dt.DOUBLE:case Dt.FLOAT:if(s==="NaN")return NaN;if(s==="Infinity")return Number.POSITIVE_INFINITY;if(s==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof s=="number"){if(Number.isNaN(s))throw new gd(t,"unexpected NaN number");if(!Number.isFinite(s))throw new gd(t,"unexpected infinite number");break}if(typeof s=="string"){if(s===""||Zee(s).call(s).length!==s.length)break;const u=Number(s);if(!Number.isFinite(u))break;return u}break;case Dt.INT32:case Dt.FIXED32:case Dt.SFIXED32:case Dt.SINT32:case Dt.UINT32:return rte(s);case Dt.BYTES:if(typeof s=="string"){if(s==="")return new Uint8Array(0);try{return Kz(s)}catch(u){const h=u instanceof Error?u.message:String(u);throw new gd(t,h)}}}return s}function ice(t,s){switch(t){case Dt.BOOL:switch(s){case"true":return!0;case"false":return!1}return s;case Dt.INT32:case Dt.FIXED32:case Dt.UINT32:case Dt.SFIXED32:case Dt.SINT32:return rte(s);default:return s}}function rte(t){if(typeof t=="string"){if(t===""||Zee(t).call(t).length!==t.length)return t;const s=Number(t);return Number.isNaN(s)?t:s}return t}function ite(t,s){if(typeof s!="object"||s==null||Array.isArray(s))throw new Error("cannot decode message ".concat(t.$typeName," from JSON ").concat(T1(s)));for(const u of Object.entries(s)){var c=PA(u,2);const h=c[0],_=c[1],B=gI(Pee);PX(B,_),t.fields[h]=B}}function PX(t,s){switch(typeof s){case"number":t.kind={case:"numberValue",value:s};break;case"string":t.kind={case:"stringValue",value:s};break;case"boolean":t.kind={case:"boolValue",value:s};break;case"object":if(s===null)t.kind={case:"nullValue",value:QX.NULL_VALUE};else if(Array.isArray(s)){const c=gI(O1e);nte(c,s),t.kind={case:"listValue",value:c}}else{const c=gI(N1e);ite(c,s),t.kind={case:"structValue",value:c}}break;default:throw new Error("cannot decode message ".concat(t.$typeName," from JSON ").concat(T1(s)))}return t}function nte(t,s){if(!Array.isArray(s))throw new Error("cannot decode message ".concat(t.$typeName," from JSON ").concat(T1(s)));for(const c of s){const u=gI(Pee);PX(u,c),br(t).push(u)}}function nce(t,s,c,u,h){let _,B=h.opid,Q=h.mode,T=h.codec,D=h.hasChangeBGPAddress,O=D!==void 0&&D,P=h.ortc;s.multiIP&&s.multiIP.gateway_ip&&(_=JSON.stringify({vocs_ip:[s.multiIP.uni_lbs_ip],vos_ip:[s.multiIP.gateway_ip]}));const U=s.role==="host"?"1":s.role==="audience"?"2":void 0,H={opid:B,unilbs:[{uri:22,detail:qo(qo(qo(qo(qo(qo({},c?{11:c,22:c}:{}),_?{5:_}:{}),de("USE_NEW_TOKEN")?{12:"1"}:{}),U?{17:U}:{}),s.apRequestDetail?{33:s.apRequestDetail}:{}),s.apRTM?{26:"RTM2"}:{}),serviceIds:u}],uid:s.uid||0,signal:P1e(t,s,{mode:Q,codec:T,joinGatewayStartTime:Date.now(),hasChangeBGPAddress:O}),ortc:x1e(P)},$=function(se,ge,me){const Qe=eg(se);try{rT(Qe,ge,function(we){return we?Object.assign(Object.assign({},ete),we):ete}(me))}catch(we){throw(Oe=we)instanceof Error&&dF(MZ).call(MZ,Oe.name)&&"field"in Oe&&typeof Oe.field=="function"?new Error("cannot decode ".concat(we.field()," from JSON: ").concat(we.message),{cause:we}):we}var Oe;return Qe.message}(xee,H),Z=aee(xee,$),te=de("ENABLE_AP_COMPRESS")?nO(Z,{raw:!0}):Z;return de("ENABLE_SDP_ENDPOINT_LOG")&&J.debug("[sdp-endpoint] request json",H," sdpEndpointRequestJson,length is ".concat(te.length)),te}function oce(t,s,c){var u,h,_;const B=de("ENABLE_AP_COMPRESS")?gQ(c,{raw:!0}):c,Q=RX(Fee,new Uint8Array(B));de("ENABLE_SDP_ENDPOINT_LOG")&&J.debug("[sdp-endpoint] response json",function(U,H,$){return u9(eg(U,H),function(Z){return Z?Object.assign(Object.assign({},jee),Z):jee}($))}(Fee,Q)," sdpEndpointResponseJson,length is ".concat(c.byteLength));const T=((u=Q.attributesResponse)===null||u===void 0?void 0:u.preSubSsrcs.map(U=>({a:U.a,a_rtx:U.aRtx,v:U.v,v_rtx:U.vRtx})))||[],D=(h=Q.attributesResponse)===null||h===void 0?void 0:h.subscribeAudioFilterTopN,O=(_=Q.attributesResponse)===null||_===void 0?void 0:_.extensions,P=Q.unilbsResponse[0].detail?Number(Q.unilbsResponse[0].detail[8]):void 0;return{detail:Q.detail,enter_ts:Number(Q.enterTs),leave_ts:Number(Q.leaveTs),opid:Number(Q.opid),response_body:Q.unilbsResponse.map(U=>({buffer:{cert:U.cert,cid:U.cid,cname:t.cname,code:U.code,detail:U.detail||{},edges_services:U.services.map(H=>({ip:H.ip,port:H.port,fingerprint:H.fingerprint,iceUfrag:H.ice[0],icePwd:H.ice[1]})),flag:U.flag,uid:Q.uid},uri:U.uri})),signalResponse:{attributes:{userAttributes:qo(qo({preSubSsrcs:T},typeof D=="number"?{subscribeAudioFilterTopN:D}:{}),O)},rejoin_token:Q.rejoinToken,return_vosip:!1,uid:t.stringUid?t.stringUid:Q.uid,intUid:Q.uid,vid:P,rtpCapabilities:F1e(s.rtpCapabilities,Q.addOrtc,Q.delOrtc)}}}function ote(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function yF(t){for(var s=1;sEt(t).call(t,u));return c?t.split(".".concat(c))[0].replace(/-/g,"."):t}catch{return J.debug("serverUrlToIp error, fallback to url",t),t}}function g9(t,s){t.addresses||(t.addresses=[]);const c=function(Q,T){if(de("CONNECT_GATEWAY_WITHOUT_DOMAIN"))return Q.map(P=>{let U=P.ip,H=P.port;return{address:"".concat(U,":").concat(H)}});const D=de("GATEWAY_DOMAINS");let O=D[1]&&Et(T).call(T,D[1])?1:0;return Q.map(P=>{let U=P.domain_prefix,H=P.port,$=P.ip;if(U)return{address:"".concat(U,".").concat(D[O++%D.length],":").concat(H)};const Z=/^[\.\:\d]+$/.test($),te=Z?"".concat($.replace(/[^\d]/g,"-"),".").concat(D[O++%D.length],":").concat(H):"".concat($,":").concat(H);return Z||J.debug("Cannot recognized as ip address: ".concat($,", use as host3")),{ip:$,port:H,address:te}})}(t.addresses,s),u=Array.isArray(t.detail)&&t.detail[18];if(u&&typeof u=="string"){const Q=u.split(";");for(let T=0;T=0&&t<.17?1:t>=.17&&t<.36?2:t>=.36&&t<.59?3:t>=.59&&t<=1?4:t>1?5:0}function am(t,s){let c,u,h;switch(s){case fo.CHOOSE_SERVER:u=4096,h="choose server";break;case fo.CLOUD_PROXY:u=1048576,h="proxy";break;case fo.CLOUD_PROXY_5:u=4194304,h="proxy5";break;case fo.CLOUD_PROXY_FALLBACK:u=4194310,h="proxy fallback";break;default:throw new qe(Ce.UNEXPECTED_ERROR,"multi unlibs response transformer get unknown service id",{csIp:t.detail&&t.detail[502],retry:!1})}if(t.response_body.forEach(_=>{_.buffer&&_.buffer.flag===u&&(c={code:_.buffer.code,addresses:(_.buffer.edges_services||[]).map(B=>yF(yF({},B),{},{ticket:_.buffer.cert})),server_ts:t.enter_ts,uid:_.buffer.uid,cid:_.buffer.cid,cname:_.buffer.cname,detail:yF(yF({},_.buffer.detail),t.detail),flag:_.buffer.flag,opid:t.opid,cert:_.buffer.cert,signalResponse:"signalResponse"in t?t.signalResponse:void 0})}),!c)throw new qe(Ce.MULTI_UNILBS_RESPONSE_ERROR,"cannot parse response ".concat(h," from multi unilbs response"),{csIp:t.detail&&t.detail[502]});return c}async function ate(t,s){return await Ut.all(t.addresses.map(async c=>({address:rg(c.ip),tcpport:c.port,udpport:c.port,username:s&&de("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?s.toString():Bn.username,password:s&&de("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?await Of(s.toString()):Bn.password})))}function xX(t,s){const c=s.getMediaStreamTrack(!0).getSettings(),u=s.videoHeight||c.height,h=s.videoWidth||c.width;return u&&h?Math.max(Math.min(u,h)/Math.min(dc(t.height),dc(t.width)),1):(J.warning("can't get ori-track's height, default scale down 4 times for low stream"),4)}function Qp(t){let s=t.candidateType,c=t.relayProtocol,u=t.type,h=t.address,_=t.port;const B={candidateType:s,relayProtocol:c,protocol:t.protocol};if(u!=="local-candidate"){const Q=h.split(".");Q.length>=4&&(Q[1]="*",Q[2]="*"),B.address=Q.join("."),B.port=_}return B}function Hh(t){const s=t.split(":"),c=t.split(/[-.]/),u=Et(t).call(t,"-")?"-":".";let h=t;return s.length>1?c.length>1?(c[1]="**",h=c[0]+u+"**:"+s[s.length-1]):h=s.length>2?s[0]+u+"**:"+s[s.length-1]:"**:"+s[s.length-1]:c.length>1&&(h=c[0]+u+"**"),h}function Ate(t,s){return t.getTransceivers().find(c=>c.sender.track===s||c.receiver.track===s)}function E9(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:de("SVC_MODE");if(de("ENABLE_SVC"))return function(s){return s in bg}(t)?t:bg.L1T3}const cte={[rr.VIDEO]:[{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"},{key:"video-orientation",extensionName:"urn:3gpp:video-orientation"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"playout-delay",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"},{key:"video-content-type",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type"},{key:"color-space",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/color-space"},{key:"video-timing",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-timing"}],[rr.AUDIO]:[{key:"ssrc-audio-level",extensionName:"urn:ietf:params:rtp-hdrext:ssrc-audio-level"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"}]};function lte(t){t.send&&(iT(rr.VIDEO,t.send.videoExtensions),iT(rr.AUDIO,t.send.audioExtensions)),t.recv&&(iT(rr.VIDEO,t.recv.videoExtensions),iT(rr.AUDIO,t.recv.audioExtensions)),t.sendrecv&&(iT(rr.VIDEO,t.sendrecv.videoExtensions),iT(rr.AUDIO,t.sendrecv.audioExtensions))}function dte(t,s){t.send&&(wF(rr.VIDEO,t.send.videoExtensions,s.send.videoExtensions),wF(rr.AUDIO,t.send.audioExtensions,s.send.audioExtensions)),t.recv&&(wF(rr.VIDEO,t.recv.videoExtensions,s.recv.videoExtensions),wF(rr.AUDIO,t.recv.audioExtensions,s.recv.audioExtensions))}function wF(t,s,c){s.forEach(u=>{var h;const _=cte[t].find(Q=>{var T;let D=Q.key;return Et(T=u.extensionName).call(T,D)});if(!_)return;const B=c.find(Q=>{let T=Q.extensionName;return Et(T).call(T,_.key)});B&&Et(h=B.extensionName).call(h,"gdpr_forbidden")&&(u.extensionName=B.extensionName)})}function iT(t,s){s.forEach(c=>{var u;const h=cte[t].find(_=>{var B;let Q=_.key;return Et(B=c.extensionName).call(B,Q)});Et(u=c.extensionName).call(u,"gdpr_forbidden")&&h&&(c.extensionName=h.extensionName)})}function ute(t){return t==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"||Et(t).call(t,"abs-send-time")}function vF(t){return t==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"||Et(t).call(t,"draft-holmer-rmcat-transport-wide-cc-extensions-01")}function gte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Ete(t){for(var s=1;s1&&arguments[1]!==void 0?arguments[1]:{},c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},u=arguments.length>3?arguments[3]:void 0;const h=s.filterRTX,_=s.filterVideoFec,B=s.filterAudioFec,Q=s.filterAudioCodec,T=s.filterVideoCodec,D=s.unsupportedVideoUplinkCodec,O=s.unsupportedVideoDownlinkCodec,P=c.useXR;let U=[],H=[],$=[],Z=[],te=!1,se=!1;if(wa(t).mediaDescriptions.forEach(me=>{u&&u!==me.attributes.direction||(me.media.mediaType!=="video"||te||(H=me.attributes.payloads,Z=me.attributes.extmaps,te=!0),me.media.mediaType!=="audio"||se||(U=me.attributes.payloads,$=me.attributes.extmaps,se=!0))}),!Z||H.length===0)throw new Error("Cannot get video capabilities from SDP.");if(!$||U.length===0)throw new Error("Cannot get audio capabilities from SDP.");if(H.forEach(me=>{var Qe;(Qe=me.rtpMap)!==null&&Qe!==void 0&&Qe.clockRate&&(me.rtpMap.clockRate=parseInt(me.rtpMap.clockRate)),P&&me.rtcpFeedbacks.push({type:"rrtr"})}),U.forEach(me=>{var Qe;(Qe=me.rtpMap)!==null&&Qe!==void 0&&Qe.clockRate&&(me.rtpMap.clockRate=parseInt(me.rtpMap.clockRate)),P&&me.rtcpFeedbacks.push({type:"rrtr"})}),h&&(U=U.filter(me=>{var Qe;return((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLowerCase())!=="rtx"}),H=H.filter(me=>{var Qe;return((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLowerCase())!=="rtx"})),_){const me=H.filter(we=>{var Ne;return/(red)|(ulpfec)|(flexfec)/i.test(((Ne=we.rtpMap)===null||Ne===void 0?void 0:Ne.encodingName)||"")}),Qe=wp(me,H).map(we=>we.payloadType),Oe=[...me.map(we=>we.payloadType),...Qe];H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType))}if(B&&(U=U.filter(me=>{var Qe;return!/(red)|(ulpfec)|(flexfec)/i.test(((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName)||"")})),Q&&(Q==null?void 0:Q.length)>0&&(U=U.filter(me=>{var Qe;return Et(Q).call(Q,((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLowerCase())||"")})),T&&(T==null?void 0:T.length)>0){const me=H.filter(Qe=>{var Oe;return Et(T).call(T,((Oe=Qe.rtpMap)===null||Oe===void 0?void 0:Oe.encodingName.toLowerCase())||"")});H=me.concat(h?[]:wp(me,H))}const ge=de("UNSUPPORTED_VIDEO_CODEC");if(ge&&ge.length>0){const me=H.filter(we=>we.rtpMap&&Et(ge).call(ge,we.rtpMap.encodingName.toLowerCase())),Qe=wp(me,H),Oe=me.concat(Qe).map(we=>we.payloadType);H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType)),J.debug("unsupportedVideoCodec: ".concat(ge,", toBeRemoved: ").concat(Oe))}if(D&&D.length>0&&u==="sendonly"){const me=H.filter(we=>we.rtpMap&&Et(D).call(D,we.rtpMap.encodingName.toLowerCase())),Qe=wp(me,H),Oe=me.concat(Qe).map(we=>we.payloadType);H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType)),J.debug("unsupportedVideoUplinkCodec: ".concat(D,", toBeRemoved: ").concat(Oe))}if(O&&O.length>0&&u==="recvonly"){const me=H.filter(we=>we.rtpMap&&Et(O).call(O,we.rtpMap.encodingName.toLowerCase())),Qe=wp(me,H),Oe=me.concat(Qe).map(we=>we.payloadType);H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType)),J.debug("unsupportedVideoDownlinkCodec: ".concat(O,", toBeRemoved: ").concat(Oe))}return{audioCodecs:U,videoCodecs:H,audioExtensions:$,videoExtensions:Z}}function Yh(t){const s=wa(t);let c,u;for(const h of s.mediaDescriptions){if(!c){const _=h.attributes.iceUfrag,B=h.attributes.icePwd;if(!_||!B)throw new Error("Cannot get iceUfrag or icePwd from SDP.");c={iceUfrag:_,icePwd:B}}if(!u){const _=h.attributes.fingerprints;_.length>0&&(u={fingerprints:_})}}if(!u&&s.attributes.fingerprints.length>0&&(u={fingerprints:s.attributes.fingerprints}),!u||!c)throw new Error("Cannot get iceParameters or dtlsParameters from SDP.");return{iceParameters:c,dtlsParameters:u}}function FX(t,s){const c=[],u=t.attributes.ssrcGroups.filter(B=>B.semantic==="FID"),h=t.attributes.ssrcGroups.find(B=>B.semantic==="SIM"),_=t.attributes.ssrcs;if(h)h.ssrcIds.forEach(B=>{var Q;const T=(Q=u.find(D=>D.ssrcIds[0]===B))===null||Q===void 0?void 0:Q.ssrcIds[1];c.push({ssrcId:B,rtx:s?T:void 0})});else if(u.length>0){const B=u[0].ssrcIds[0],Q=u[0].ssrcIds[1];c.push({ssrcId:B,rtx:s?Q:void 0})}else{if(_.length===0)throw new Error("No ssrcs found on local media description.");c.push({ssrcId:_[0].ssrcId})}return c}function hte(t,s,c){const u=t.cname;let h=[];s&&(h=Cte(s)),h.length===0&&(h=t.iceParameters.candidates.map(T=>({foundation:T.foundation,componentId:"1",transport:T.protocol,priority:T.priority.toString(),connectionAddress:T.ip,port:T.port.toString(),type:T.type,extension:{}})),J.debug("Using candidates from gateway."));const _={fingerprints:t.dtlsParameters.fingerprints.map(T=>({hashFunction:T.algorithm,fingerprint:T.fingerprint}))},B={iceUfrag:t.iceParameters.iceUfrag,icePwd:t.iceParameters.icePwd};let Q;switch(t.dtlsParameters.role){case"server":Q="passive";break;case"client":Q="active";break;case"auto":Q="actpass"}return{dtlsParameters:_,iceParameters:B,candidates:h,rtpCapabilities:C9(t.rtpCapabilities),setup:Q,cname:u,preSSRCs:Ite(c)}}function Ite(t){const s=[];return Array.isArray(t)&&t.length>0&&t.forEach(c=>{s.push({kind:rr.VIDEO,ssrcMsg:[{ssrcId:c.v,rtx:c.v_rtx}],mslabel:"".concat(c.v,"_").concat(c.a)},{kind:rr.AUDIO,ssrcMsg:[{ssrcId:c.a}],mslabel:"".concat(c.v,"_").concat(c.a)})}),s}function Cte(t){let s=[];return t.ip&&typeof t.port=="number"&&(s=[{foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:t.ip,port:t.port.toString(),type:"host",extension:{}}],J.debug("Using remote candidate from AP ".concat(Hh(t.ip),":").concat(t.port)),t.ip6&&(s.push({foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:t.ip6,port:t.port.toString(),type:"host",extension:{}}),J.debug("Using IPV6 remote candidate from AP ".concat(Hh(t.ip6),":").concat(t.port)))),s}function I9(t,s,c){const u=[],h=[];return t.forEach(_=>{let B=_.ssrcId,Q=_.rtx;const T=un(8,"track-"),D={ssrcId:B,attributes:Ete({label:T,mslabel:c=c||un(10,""),msid:"".concat(c," ").concat(T)},s&&{cname:s})};if(u.push(D),Q!==void 0){const O={ssrcId:Q,attributes:Ete({label:T,mslabel:c,msid:"".concat(c," ").concat(T)},s&&{cname:s})};u.push(O),h.push({semantic:"FID",ssrcIds:[B,Q]})}}),t.length>1&&h.push({semantic:"SIM",ssrcIds:t.map(_=>_.ssrcId)}),{ssrcs:u,ssrcGroups:h}}function Am(t,s){s instanceof po&&t.attributes.payloads.forEach(c=>{var u;const h=(u=c.rtpMap)===null||u===void 0?void 0:u.encodingName.toLowerCase();if(!h||["opus","pcmu","pcma","g722"].indexOf(h)===-1)return;c.fmtp||(c.fmtp={parameters:{}}),h==="opus"&&typeof de("OPUS_PTIME")=="number"?c.fmtp.parameters.ptime=de("OPUS_PTIME"):c.fmtp.parameters.minptime="10",c.fmtp.parameters.useinbandfec="1";const _=s._encoderConfig;_&&(h!=="pcmu"&&h!=="pcma"&&h!=="g722"&&(_.bitrate&&!Ln()&&(c.fmtp.parameters.maxaveragebitrate="".concat(Math.floor(1e3*_.bitrate))),_.sampleRate&&(c.fmtp.parameters.maxplaybackrate="".concat(_.sampleRate),c.fmtp.parameters["sprop-maxcapturerate"]="".concat(_.sampleRate)),_.stereo&&(c.fmtp.parameters.stereo="1",c.fmtp.parameters["sprop-stereo"]="1")),s instanceof xd&&h==="opus"&&s._config.DTX&&(c.fmtp.parameters.usedtx="1"))})}function GX(t){const s=t.attributes.unrecognized.findIndex(c=>c.attField==="x-google-flag"&&c.attValue==="conference");s!==-1&&t.attributes.unrecognized.splice(s,1)}function VX(t,s){var c;if(t.attributes.payloads.forEach(h=>{var _;((_=h.rtpMap)===null||_===void 0?void 0:_.encodingName.toLowerCase())==="h264"&&h.fmtp&&h.fmtp.parameters&&de("ENABLE_UP_SPS_PPS")&&(h.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),!(s instanceof pn&&s._encoderConfig&&s._hints.indexOf(gn.SCREEN_TRACK)===-1))return;const u=s._encoderConfig;Si().supportMinBitrate&&u.bitrateMin&&t.attributes.payloads.forEach(h=>{var _,B;Et(_=["h264","h265","vp8","vp9","av1"]).call(_,((B=h.rtpMap)===null||B===void 0?void 0:B.encodingName.toLowerCase())||"")&&(h.fmtp||(h.fmtp={parameters:{}}),h.fmtp.parameters["x-google-min-bitrate"]="".concat(u.bitrateMin))}),Si().supportMinBitrate&&!Et(c=s._hints).call(c,gn.LOW_STREAM)&&u.bitrateMax&&t.attributes.payloads.forEach(h=>{var _,B;Et(_=["h264","h265","vp8","vp9","av1"]).call(_,((B=h.rtpMap)===null||B===void 0?void 0:B.encodingName.toLowerCase())||"")&&(h.fmtp||(h.fmtp={parameters:{}}),h.fmtp.parameters["x-google-start-bitrate"]="".concat(de("X_GOOGLE_START_BITRATE")||Math.floor(u.bitrateMax)))})}function pte(t){if(t.media.mediaType!=="video")return;const s=Qi();if(s.name!==Fi.SAFARI&&s.os!==ns.IOS)return;const c=t.attributes.extmaps.findIndex(u=>/video-orientation/g.test(u.extensionName));c!==-1&&t.attributes.extmaps.splice(c,1)}function DF(t,s,c){if(!s)return;let u,h;if(t.media.mediaType==="video"?(u=c.videoExtensions,h=c.videoCodecs):(u=c.audioExtensions,h=c.audioCodecs),s.twcc===!0){const _=u.find(B=>vF(B.extensionName));if(_){const B=_.extensionName;t.attributes.extmaps.find(T=>vF(T.extensionName))||t.attributes.extmaps.push({entry:_.entry,extensionName:B}),function(T,D){return D.filter(O=>!!T.find(P=>P.payloadType===O.payloadType&&!!P.rtcpFeedbacks.find(U=>U.type==="transport-cc")))}(h,t.attributes.payloads).forEach(T=>{T.rtcpFeedbacks.find(D=>D.type==="transport-cc")||T.rtcpFeedbacks.push({type:"transport-cc"})})}}else if(s.twcc===!1){const _=t.attributes.extmaps.findIndex(B=>vF(B.extensionName));_!==-1&&t.attributes.extmaps.splice(_,1),t.attributes.payloads.forEach(B=>{const Q=B.rtcpFeedbacks.findIndex(T=>T.type==="transport-cc");Q!==-1&&B.rtcpFeedbacks.splice(Q,1)})}if(s.remb===!0){const _=u.find(B=>ute(B.extensionName));if(_){const B=_.extensionName;t.attributes.extmaps.find(T=>T.extensionName===B)||t.attributes.extmaps.push({entry:_.entry,extensionName:B}),function(T,D){return D.filter(O=>!!T.find(P=>P.payloadType===O.payloadType&&!!P.rtcpFeedbacks.find(U=>U.type==="goog-remb")))}(h,t.attributes.payloads).forEach(T=>{T.rtcpFeedbacks.find(D=>D.type==="goog-remb")||T.rtcpFeedbacks.push({type:"goog-remb"})})}}else if(s.remb===!1){const _=t.attributes.extmaps.findIndex(B=>ute(B.extensionName));_!==-1&&t.attributes.extmaps.splice(_,1),t.attributes.payloads.forEach(B=>{const Q=B.rtcpFeedbacks.findIndex(T=>T.type==="goog-remb");Q!==-1&&B.rtcpFeedbacks.splice(Q,1)})}}function KX(t,s,c){if(Ln()||t.media.mediaType!=="video"||!(s instanceof pn)||c!=="vp9"&&c!=="vp8"||c==="vp8"&&!de("SIMULCAST")||c==="vp9"&&de("ENABLE_SVC")||s._scalabilityMode===void 0||s._scalabilityMode.numSpatialLayers<=1)return;const u=c==="vp8"?2:s._scalabilityMode.numSpatialLayers,h=t.attributes.ssrcs[0],_=t.attributes.ssrcGroups.find(Q=>Q.semantic==="FID"&&Q.ssrcIds[0]===h.ssrcId),B={semantic:"SIM",ssrcIds:[h.ssrcId]};for(let Q=1;Qh.extensionName==="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension");return t.close(),u}catch{return}}async function HX(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const c=new RTCPeerConnection;c.addTransceiver("video",{direction:"sendonly"}),c.addTransceiver("audio",{direction:"sendonly"}),c.addTransceiver("video",{direction:"recvonly"}),c.addTransceiver("audio",{direction:"recvonly"});const u=function(){let Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},D=arguments.length>2?arguments[2]:void 0;const O=h9(D,Q,T,"sendonly"),P=h9(D,Q,T,"recvonly"),U={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},H={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},$={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(ig(O,P,"videoExtensions",U,H,$),ig(O,P,"videoCodecs",U,H,$),ig(O,P,"audioExtensions",U,H,$),ig(O,P,"audioCodecs",U,H,$),de("RAISE_H264_BASELINE_PRIORITY")){const Z=[],te=[];if($.videoCodecs.forEach((se,ge)=>{var me;if(((me=se.rtpMap)===null||me===void 0?void 0:me.encodingName.toLocaleLowerCase())==="h264"){var Qe,Oe;const we=$.videoCodecs[ge+1],Ne=we&&Ste(se,we),et=(Qe=se.fmtp)===null||Qe===void 0?void 0:Qe.parameters["profile-level-id"],st=(Oe=se.fmtp)===null||Oe===void 0?void 0:Oe.parameters["packetization-mode"];!et||et!==de("FIRST_H264_PROFILE_LEVEL_ID")||de("FIRST_PACKETIZATION_MODE")&&st!==de("FIRST_PACKETIZATION_MODE")?Ne?te.push([se,we]):te.push([se]):Ne?Z.push([se,we]):Z.push([se])}}),Z.length>0&&te.length>0){J.debug("raising H264 baseline profile priority"),$.videoCodecs.forEach((ge,me)=>{var Qe;if(((Qe=ge.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLocaleLowerCase())==="h264"){const Oe=Ste(ge,$.videoCodecs[me+1]),we=Z.shift()||te.shift()||[];we.length>0&&(Oe?$.videoCodecs.splice(me,2,...we):$.videoCodecs.splice(me,1,...we))}});const se=H.videoCodecs.filter(ge=>{var me,Qe;return((me=ge.rtpMap)===null||me===void 0?void 0:me.encodingName.toLocaleLowerCase())==="h264"&&((Qe=ge.fmtp)===null||Qe===void 0?void 0:Qe.parameters["profile-level-id"])!==de("FIRST_H264_PROFILE_LEVEL_ID")});if(se.length>0){const ge=wp(se,H.videoCodecs).map(Qe=>Qe.payloadType),me=[...se.map(Qe=>Qe.payloadType),...ge];H.videoCodecs=H.videoCodecs.filter(Qe=>!Et(me).call(me,Qe.payloadType))}de("FILTER_SEND_H264_BASELINE")&&(U.videoCodecs=U.videoCodecs.filter(ge=>{var me,Qe;return!(((me=ge.rtpMap)===null||me===void 0?void 0:me.encodingName.toLocaleLowerCase())==="h264"&&((Qe=ge.fmtp)===null||Qe===void 0?void 0:Qe.parameters["profile-level-id"])!==de("FIRST_H264_PROFILE_LEVEL_ID"))}))}return{send:U,recv:H,sendrecv:$}}return{send:U,recv:H,sendrecv:$}}(t,s,(await c.createOffer()).sdp),h=u.send,_=u.recv,B=u.sendrecv;try{c.close()}catch{}return{send:h,recv:_,sendrecv:B}}function _te(){const t={audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},s=h9(arguments.length>2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"recvonly"),c={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},u={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},h={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(ig(t,s,"videoExtensions",c,u,h),ig(t,s,"videoCodecs",c,u,h),ig(t,s,"audioExtensions",c,u,h),ig(t,s,"audioCodecs",c,u,h),de("RAISE_H264_BASELINE_PRIORITY")){const _=h.videoCodecs.findIndex(B=>B.rtpMap&&B.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&B.fmtp&&B.fmtp.parameters["profile-level-id"]==="42001f");if(_!==-1){const B=h.videoCodecs.findIndex(Q=>Q.rtpMap&&Q.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(B<_){J.debug("raising H264 baseline profile priority");const Q=h.videoCodecs[_];h.videoCodecs.splice(_,1),h.videoCodecs.splice(B,0,Q)}B!==-1&&(u.videoCodecs=u.videoCodecs.filter(Q=>!(Q.rtpMap&&Q.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&Q.fmtp&&Q.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:c,recv:u,sendrecv:h}}function ig(t,s,c,u,h,_){if(c==="videoExtensions"||c==="audioExtensions"){const B=[];return t[c].forEach(Q=>{s[c].some((T,D)=>{if(Q.entry===T.entry&&Q.extensionName===T.extensionName)return B.push(D),!0})?_[c].push(Q):u[c].push(Q)}),void s[c].forEach((Q,T)=>{B.indexOf(T)===-1&&h[c].push(Q)})}if(c==="videoCodecs"||c==="audioCodecs"){const B=[];return t[c].forEach(Q=>{s[c].some((T,D)=>{if(Q.payloadType===T.payloadType&&JSON.stringify(Q)===JSON.stringify(T))return B.push(D),!0})?_[c].push(Q):u[c].push(Q)}),void s[c].forEach((Q,T)=>{B.indexOf(T)===-1&&h[c].push(Q)})}}function C9(t){const s=t.send,c=t.recv,u=t.sendrecv;if(!u){if(!s||!c)throw new Error("cannot merge rtp capabilities because one of send or recv is empty!");return{send:s,recv:c}}let h,_;return s?(h={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},h.audioCodecs=[...s.audioCodecs,...u.audioCodecs],h.videoCodecs=[...s.videoCodecs,...u.videoCodecs],h.audioExtensions=[...s.audioExtensions,...u.audioExtensions],h.videoExtensions=[...s.videoExtensions,...u.videoExtensions]):h=go(u),c?(_={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},_.audioCodecs=[...c.audioCodecs,...u.audioCodecs],_.videoCodecs=[...c.videoCodecs,...u.videoCodecs],_.audioExtensions=[...c.audioExtensions,...u.audioExtensions],_.videoExtensions=[...c.videoExtensions,...u.videoExtensions]):_=go(u),{send:h,recv:_}}function nT(t){t.media.mediaType==="audio"&&t.attributes.payloads.filter(s=>{var c;return((c=s.rtpMap)===null||c===void 0?void 0:c.encodingName.toLowerCase())==="opus"}).forEach(s=>{s.fmtp||(s.fmtp={parameters:{}}),s.fmtp.parameters.stereo="1",s.fmtp.parameters["sprop-stereo"]="1"})}function p9(t,s,c,u){let h=[];if(t===rr.VIDEO){if(de("H264_PROFILE_LEVEL_ID")&&u==="h264"&&(h=s.videoCodecs.filter(_=>{var B;return Et(B=_.rtpMap&&_.rtpMap.encodingName.toLowerCase()||"").call(B,u)&&_&&_.fmtp&&_.fmtp.parameters["profile-level-id"]===de("H264_PROFILE_LEVEL_ID")})),!Array.isArray(h)||h.length===0){let _=[];const B=[],Q=[],T=[];if(c.videoCodecs.forEach(D=>{const O=D.rtpMap&&D.rtpMap.encodingName.toLowerCase()||"";Et(O).call(O,u)?_.push(D):Et(O).call(O,"vp9")?B.push(D):Et(O).call(O,"vp8")?Q.push(D):Et(O).call(O,"h264")&&T.push(D)}),_.length===0){let D="";B.length!==0?(_=B,D="vp9"):Q.length!==0?(_=Q,D="vp8"):T.length!==0&&(_=T,D="h264"),J.warning("codec ".concat(u," not included in rtpCapabilities, fallback to default payloads: ").concat(D))}_.length!==0&&(h=s.videoCodecs.filter(D=>_.some(O=>O.payloadType===D.payloadType)))}if(h.length===0&&(J.warning("codec ".concat(u," not included in rtpCapabilities, fallback to default payloads: ").concat(s.videoCodecs[0].rtpMap&&s.videoCodecs[0].rtpMap.encodingName)),h=s.videoCodecs),de("USE_PUB_RTX")||de("USE_SUB_RTX")){const _=wp(h,s.videoCodecs);h=[...h,..._]}}else{h=s.audioCodecs.filter(B=>{var Q;return Et(Q=B.rtpMap&&B.rtpMap.encodingName.toLowerCase()||"").call(Q,u)});const _=s.audioCodecs.filter(B=>{var Q;return Et(Q=B.rtpMap&&B.rtpMap.encodingName.toLowerCase()||"").call(Q,"red")});h.length===0&&(J.warning("codec ".concat(u," not included in rtpCapabilities, fallback to opus")),h=s.audioCodecs.filter(B=>{var Q;return Et(Q=B.rtpMap&&B.rtpMap.encodingName.toLowerCase()||"").call(Q,"opus")})),de("ENABLE_AUDIO_RED")&&_.length!==0&&(h=[..._,...h])}return h}function wp(t,s){const c=t.map(u=>u.payloadType.toString());return s.filter(u=>u.rtpMap&&u.rtpMap.encodingName==="rtx"&&u.fmtp&&u.fmtp.parameters.apt&&Et(c).call(c,u.fmtp&&u.fmtp.parameters.apt))}async function Yc(t,s,c){const u=s.toString(),h=mte(u,"offer","remote","exchangeSDP");await t.setRemoteDescription({type:"offer",sdp:u});const _=await t.createAnswer();if(!_.sdp)throw new Error("cannot get answer sdp");let B=_.sdp;B=f9(B,c||{}),h==null||h(B||""),await t.setLocalDescription({type:"answer",sdp:B})}function f9(t,s,c){if(de("FORBID_MODIFY_LOCAL_OFFER_SDP"))return t;const u=wa(t),h=s.useXR;return u.mediaDescriptions.forEach(_=>{var B;_.attributes.mid&&(Array.isArray(c)&&!Et(c).call(c,_.attributes.mid)||(_.media.mediaType==="audio"&&nT(_),_.media.mediaType==="video"&&function(Q){Q.media.mediaType==="video"&&de("ENABLE_DOWN_SPS_PPS")&&Q.attributes.payloads.filter(T=>{var D;return((D=T.rtpMap)===null||D===void 0?void 0:D.encodingName.toLowerCase())==="h264"}).forEach(T=>{T.fmtp||(T.fmtp={parameters:{}}),T.fmtp.parameters["sps-pps-idr-in-keyframe"]="1"})}(_),h&&Et(B=["audio","video"]).call(B,_.media.mediaType)&&_.attributes.payloads.forEach(Q=>{Q.rtcpFeedbacks.findIndex(T=>T.type==="rrtr")===-1&&Q.rtcpFeedbacks.push({type:"rrtr"})})))}),X1(u)}function mte(t,s,c,u){if(de("SDP_LOGGING"))return J.upload("exchanging ".concat(c," ").concat(s," SDP during P2PConnection.").concat(u,` +`),t),s==="offer"?h=>{mte(h,"answer",c==="local"?"remote":"local",u)}:void 0}async function Bte(t,s,c){try{var u;if(!Si().supportSetRtpSenderParameters||!function(T){return T==="vp9"||T==="av1"}(t)||!de("ENABLE_SVC"))return;const h={},_={},B=s.getParameters(),Q=(u=B.encodings)===null||u===void 0?void 0:u[0];_.scalabilityMode=E9(c),Q&&Object.assign(Q,_),Object.assign(B,h),await s.setParameters(B),J.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode success: ".concat(JSON.stringify(B.encodings)))}catch(h){J.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode failed",h)}}function bF(t){const s=de("COMPATIBLE_SDP_EXTENSION");return!!(Array.isArray(s)&&s.length>0)&&s.some(c=>Et(t).call(t,c))}function Ste(t,s){try{var c;return((c=t.fmtp)===null||c===void 0?void 0:c.parameters.apt)===s.payloadType.toString()}catch{return!1}}const Rte={};function jh(t){(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])&&J.debug("install service ".concat(t.name)),Rte[t.name]=t}function aE(t){const s=Rte[t];if(!s)throw new tt(Ce.INVALID_OPERATION,"".concat(t," not found, please use AgoraRTC.use(").concat(t,"Service) to load it first"));return s}function yte(t,s){return aE("DataStream").create(t,s)}function NF(){return aE("InterceptFrame").create()}function YX(t,s){return!(t.length<4||t.length>256)&&!(s.length<22||s.length>256)}function Qte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function qa(t){for(var s=1;s$.fingerprint)||de("FINGERPRINT")||(J.debug("[".concat(this.store.clientId,"] Dc is not supported, because fingerprint does not exist")),O=!0):(J.debug("[".concat(this.store.clientId,"] Dc is not supported, because ticket length is incorrect, it has to be between 22 and 255")),O=!0),O&&this.resetSignal()}this.store.joinGatewayStart(),s.cloudProxyServer!=="disabled"&&(this.hasChangeBGPAddress=!0);const h=Date.now();let _=jX.get(s.cname);if(_||(_=new Map,jX.set(s.cname,_)),this._isProactiveJoin=!0,_.has(s.uid)){const O=new qe(Ce.UID_CONFLICT);throw qt.joinGateway(s.sid,{lts:h,succ:!1,ec:O.code,addr:null,uid:s.uid,cid:s.cid,firstSuccess:this._isProactiveJoin,isProxy:!!s.proxyServer||this.usingProxy,signalChannel:this.store.useDcSignal?"1":"0",preload:s.preload}),O}_.set(s.uid,!0),this.joinInfo=s,this.key=c;let B=0;this.joinGatewayStartTime=h;const Q=s.proxyServer,T=this.store.useDcSignal?"datachannel":"websocket";try{J.debug("[".concat(this.store.clientId,"] use ").concat(T," join uid ").concat(B));const O=s.gatewayAddrs.map(U=>{const H=ir(U.address.split(":"),2),$={host:H[0],port:H[1]};return s.proxyServer&&($.proxy=s.proxyServer),$});let P;P=this.store.useDcSignal?await this.signal.init(s.apResponse.addresses):await this.signal.init(O),B=P.uid,J.debug("[".concat(this.store.clientId,"] ").concat(T," join uid ").concat(B," cost ").concat(Date.now()-this.joinGatewayStartTime))}catch(O){var D;throw O.code===Ce.INIT_DATACHANNEL_TIMEOUT&&this.signal.__name__==="AgoraRTCSignal"||qt.joinGateway(s.sid,{lts:h,succ:!1,ec:((D=O.data)===null||D===void 0?void 0:D.desc)||O.code,errorMsg:O.message,addr:this.signal.url,uid:s.uid,cid:s.cid,firstSuccess:this._isProactiveJoin,isProxy:!!Q||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:s.preload}),O&&O.code===Ce.INIT_DATACHANNEL_TIMEOUT?(J.warning("[".concat(this.store.clientId,"] User join datachannel failed"),O.toString()),this.resetSignal(),O):(J.error("[".concat(this.store.clientId,"] User join failed"),O.toString()),_.delete(s.uid),this.signal.close(),O)}return this.state="CONNECTED",this.inChannelInfo.joinAt=Date.now(),J.debug("[".concat(this.store.clientId,"] Connected to gateway server")),this.trafficStatsInterval=window.setInterval(()=>{this.updateTrafficStats().catch(O=>{J.warning("[".concat(this.store.clientId,"] get traffic stats error"),O.toString())})},3e3),this.networkQualityInterval=window.setInterval(()=>{navigator&&navigator.onLine!==void 0&&!navigator.onLine?this.emit(No.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6}):this._signalTimeout?this.emit(No.NETWORK_QUALITY,{downlinkNetworkQuality:5,uplinkNetworkQuality:5}):this.state==="CONNECTED"&&this._statsCollector.trafficStats?this.emit(No.NETWORK_QUALITY,{uplinkNetworkQuality:TF(this._statsCollector.trafficStats.B_unq),downlinkNetworkQuality:TF(this._statsCollector.trafficStats.B_dnq)}):this.emit(No.NETWORK_QUALITY,{uplinkNetworkQuality:0,downlinkNetworkQuality:0})},2e3),this.store.joinGatewayEnd(),B}async leave(){let s=arguments.length>0&&arguments[0]!==void 0&&arguments[0],c=arguments.length>1?arguments[1]:void 0;if(this.state!=="DISCONNECTED"){c!==mi.FALLBACK&&(this.state="DISCONNECTING");try{s||this.signal.connectionState!==Ci.CONNECTED||await function(u,h){return h===1/0?u:Ut.race([u,eU(h)])}(this.signal.request(ur.LEAVE,void 0,!0),3e3)}catch(u){J.warning("[".concat(this.store.clientId,"] leave request failed, ignore"),u)}this.signal.close(c),c!==mi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}}async publish(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));const h={state:"offer",p2p_id:this.store.p2pId,ortc:c,mode:this.spec.mode,extend:de("PUB_EXTEND"),twcc:!!de("PUBLISH_TWCC"),rtx:!!de("USE_PUB_RTX")};try{return(await this.signal.request(ur.PUBLISH,h,!0))._message}catch(_){if(u&&_.data&&_.data.code===Br.ERR_PUBLISH_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receive publish error code, retry"),_.toString()),await this.tryUnpubBeforeRepub(s,c),this.publish(s,c,!1);throw _}}async publishDataChannel(s,c,u){var h;if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));const _={stream_id:c.streamId,ordered:c.ordered?1:0,max_retrans_times:(h=c.maxRetransmits)!==null&&h!==void 0?h:10,channel_id:c.channelId,metadata:c.metadata};try{await this.signal.request(ur.PUBLISH_DATASTREAM,_,!0)}catch(B){if(u&&B.data&&B.data.code===Br.ERR_PUBLISH_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receive publish datachannels error code, retry"),B.toString()),await this.tryUnpubDataChannelBeforeRepub(s,c),this.publishDataChannel(s,c,!1);throw B}}async unpublish(s,c){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await this.signal.request(ur.UNPUBLISH,{stream_id:c,ortc:s},!0)}catch(u){J.warning("[".concat(this.store.clientId,"] unpublish warning: "),u)}}async unpublishDataChannel(s){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ut.all(s.map(c=>this.signal.request(ur.UNPUBLISH_DATASTREAM,{channel_id:c},!0)))}catch(c){J.warning("unpublish datachannels warning: ",c)}}async presubscribe(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not presubscribe when connection state is ".concat(this.state));const h={stream_id:s,stream_type:c,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!de("SUBSCRIBE_TWCC"),rtx:!!de("USE_SUB_RTX")||void 0,extend:de("SUB_EXTEND"),svc:Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0};try{return await this.signal.request(ur.PRE_SUBSCRIBE,h,!0)}catch(_){if(u&&_.data&&_.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] pre-subscribe error, retry"),_.toString()),this.presubscribe(s,c,!1);throw _}}async subscribe(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not subscribe when connection state is ".concat(this.state));const h={stream_id:s,stream_type:c.stream_type,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!de("SUBSCRIBE_TWCC"),rtx:!!de("USE_SUB_RTX"),extend:de("SUB_EXTEND"),ssrcId:c.ssrcId,svc:Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0};try{return(await this.signal.request(ur.SUBSCRIBE,h,!0))._message}catch(_){if(u&&_.data&&_.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receiver subscribe error code, retry"),_.toString()),await this.tryUnsubBeforeResub(s,c),await this.subscribe(s,c,!1);throw _}}async subscribeDataChannel(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not subscribe datachannel when connection state is ".concat(this.state));const h={uid:s,stream_id:c.id,channel_id:c.datachannelId};try{return void await this.signal.request(ur.SUBSCRIBE_DATASTREAM,h,!0)}catch(_){if(u&&_.data&&_.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receiver subscribe datachannel error code, retry"),_.toString()),await this.tryUnsubDataChannelBeforeResub(s,c),await this.subscribeDataChannel(s,c,!1);throw _}}async subscribeAll(s,c){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not massSubscribe when connection state is ".concat(this.state));const u={p2p_id:this.store.p2pId,users:s,dtx:!1,rtx:!!de("USE_SUB_RTX"),twcc:!!de("SUBSCRIBE_TWCC"),svc:Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0};try{return await this.signal.request(ur.SUBSCRIBE_STREAMS,u,!0)}catch(h){if(c&&h.data&&h.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receiver massSubscribe error code, retry"),h.toString()),await this.tryMassUnsubBeforeResub(s),await this.subscribeAll(s,!1);throw h}}async setVideoProfile(s){const c=function(u){if(!(u.bitrateMax&&u.bitrateMin&&u.frameRate&&u.height&&u.width))return;let h=u.frameRate,_=u.width,B=u.height,Q=!0;return typeof h!="number"&&(h=h.exact||h.ideal||h.max||h.min||0,h||(Q=!1)),typeof _!="number"&&(_=_.exact||_.ideal||_.max||_.min||0,_||(Q=!1)),typeof B!="number"&&(B=B.exact||B.ideal||B.max||B.min||0,B||(Q=!1)),Q?{stream_type:0,width:_,height:B,fps:h,start_bps:1e3*u.bitrateMax,min_bps:1e3*u.bitrateMin,target_bps:1e3*u.bitrateMax}:void 0}(s);if(c)return this.signal.request(ur.SET_VIDEO_PROFILE,c);J.debug("[".concat(this.store.clientId,"] encoder config is not complete, do not report to gateway"))}async unsubscribe(s,c){try{await this.signal.request(ur.UNSUBSCRIBE,{p2p_id:this.store.p2pId,ortc:s,stream_id:c},!0)}catch(u){J.warning("[".concat(this.store.clientId,"] unsubscribe warning: "),u)}}async unsubscribeDataChannel(s,c){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ut.all(s.map(u=>this.signal.request(ur.UNSUBSCRIBE_DATASTREAM,{stream_id:u,uid:c},!0)))}catch(u){J.warning("unsubscribeDataChannel warning: ",u)}}async massUnsubscribe(s){try{await this.signal.request(ur.UNSUBSCRIBE_STREAMS,s,!0)}catch(c){J.warning("[".concat(this.store.clientId,"] massUnsubscribeAll warning: "),c)}}async reconnectPC(s){const c=s.iceParameters,u=s.dtlsParameters,h=s.rtpCapabilities;return{gatewayEstablishParams:await this.signal.request(ur.CONNECT_PC,{p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:{iceParameters:c,dtlsParameters:u,rtpCapabilities:h}},!0),gatewayAddress:this.getCurrentGatewayAddress()}}getGatewayInfo(){return this.signal.request(ur.GATEWAY_INFO)}async renewToken(s){await this.signal.request(ur.RENEW_TOKEN,s),this.key=s.token}updateClientRole(s,c){c&&(this._clientRoleOptions=Object.assign({},c)),de("CLIENT_ROLE_OPTIONS")&&(J.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(de("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," ")),this._clientRoleOptions=Object.assign({},de("CLIENT_ROLE_OPTIONS"))),this.role=s}async setClientRole(s,c){if(c&&(this._clientRoleOptions=Object.assign({},c)),de("CLIENT_ROLE_OPTIONS")&&(this._clientRoleOptions=Object.assign({},de("CLIENT_ROLE_OPTIONS")),J.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(de("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," "))),this.state!=="CONNECTED")return void(this.role=s);let u,h=0;s==="audience"?this._clientRoleOptions&&this._clientRoleOptions.delay?(u=this._clientRoleOptions.delay,h=1):h=this._clientRoleOptions&&this._clientRoleOptions.level?this._clientRoleOptions.level:2:h=0;const _=Object.assign({},c);delete _.delay,delete _.level,await this.signal.request(ur.SET_CLIENT_ROLE,qa(qa({role:s,level:h,delay:u},_),{},{client_ts:Date.now()})),this.role=s}async setDualStreamMode(s,c,u){await this.signal.request(ur.SET_DUAL_STREAM_MODE,{mode:s},u,c)}async setRemoteVideoStreamType(s,c){await this.signal.request(ur.SWITCH_VIDEO_STREAM,{stream_id:s,stream_type:c})}async setDefaultRemoteVideoStreamType(s){await this.signal.request(ur.DEFAULT_VIDEO_STREAM,{stream_type:s})}async setStreamFallbackOption(s,c){await this.signal.request(ur.SET_FALLBACK_OPTION,{stream_id:s,fallback_type:c})}async pickSVCLayer(s,c){await this.signal.request(ur.PICK_SVC_LAYER,{stream_id:s,spatial_layer:c.spatialLayer,temporal_layer:c.temporalLayer})}async setRTM2Flag(s){await this.signal.request(ur.SET_RTM2_FLAG,{rtm2_flag:s})}async sendExtensionMessage(s,c,u){if(this.store.useP2P)return this.signal.sendExtensionMessage(s,c,u)}getInChannelInfo(){return this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt),qa({},this.inChannelInfo)}async setConfigure(s){if(s&&Array.isArray(s)&&s.length!==0)return this.signal.request(ur.CONFIGURE,s)}async getGatewayVersion(){return(await this.signal.request(ur.GATEWAY_INFO)).version}reset(){if(this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt,this.inChannelInfo.joinAt=null),this.trafficStatsInterval&&(window.clearInterval(this.trafficStatsInterval),this.trafficStatsInterval=void 0),this.joinInfo){const s=jX.get(this.joinInfo.cname);s&&s.delete(this.joinInfo.uid)}this.joinInfo=void 0,this.key=void 0,this.networkQualityInterval&&(window.clearInterval(this.networkQualityInterval),this.networkQualityInterval=void 0),this.usingProxy=!1}updateTurnConfigFromSignal(){if(!this.joinInfo)return;const s=function(c){let u;return u=c.startsWith("dc")?c.match(/(dc\:\/\/)?([^:]+):(\d+)/):c.match(/(wss\:\/\/)?([^:]+):(\d+)/),u?{username:Bn.username,password:Bn.password,turnServerURL:u[2],tcpport:parseInt(u[3])+30,udpport:parseInt(u[3])+30,forceturn:!1}:null}((this.joinInfo.cloudProxyServer==="disabled"?this.signal.url:this.joinInfo.gatewayAddrs[this.signal.currentURLIndex].address)||"");this.joinInfo.turnServer.serversFromGateway=[],s&&this.joinInfo.turnServer.mode!=="off"&&this.joinInfo.cloudProxyServer==="disabled"&&this.joinInfo.turnServer.serversFromGateway.push(qa(qa({},Bn),{},{turnServerURL:s.turnServerURL,tcpport:s.tcpport,udpport:s.udpport,username:this.joinInfo.uid.toString(),password:this.joinInfo.token}))}async updateTrafficStats(){if(this.state!=="CONNECTED")return;const s=await this.signal.request(ur.TRAFFIC_STATS,void 0,!0);s.timestamp=Date.now(),s.ntp_offset!=null&&(this.ntpOffset=s.ntp_offset),s.peer_delay.forEach(c=>{const u=this._statsCollector.trafficStats&&this._statsCollector.trafficStats.peer_delay.find(h=>h.peer_uid===c.peer_uid);u&&u.B_st!==c.B_st&&xR(()=>{this.emit(No.STREAM_TYPE_CHANGE,c.peer_uid,c.B_st)})}),this._statsCollector.updateTrafficStats(s)}getJoinMessage(s){var c,u;if(!this.joinInfo||!this.key)throw new qe(Ce.UNEXPECTED_ERROR,"can not generate join message, no join info");return this.store.hasStartJoinChannel=!0,this.store.isABTestSuccess||this.emit(No.UPDATE_GATEWAY_CONFIG),u=this.store.clientId,Et(L2).call(L2,u)||L2.push(u),function(_,B,Q,T){var D,O,P,U,H;let $=T.key,Z=T.role,te=T.joinGatewayStartTime,se=T.hasChangeBGPAddress,ge=T.isPreallocation,me=T.ortc,Qe=T.currentURLIndex;const Oe=Object.assign({},B.apResponse);let we=!1;"signalResponse"in Oe&&Oe.signalResponse&&(_.p2pId===1&&(we=!0),ge=!1,delete Oe.signalResponse);let Ne=de("REPORT_APP_SCENARIO");if(typeof Ne!="string")try{Ne=JSON.stringify(Ne)}catch{Ne=void 0}Ne&&Ne.length>128&&(Ne=void 0);const et=eo(_),st=ry(_),Xt=((D=_.preSubOptions)===null||D===void 0?void 0:D.length)||0,lr=Xt>0?(O=_.preSubOptions)===null||O===void 0?void 0:O.map(at=>at.uid):void 0,ft=vs("PRE_SUB_NUM","number")||1,Ir=Xt>ft?Xt:ft,ui=Hee(),Nr=al(87)||Zb()||wf(117),Ki=(Ks()||vf(18,4,!1))&&Df(18,6,!0)&&Q.codec==="h264"&&de("ENABLE_ABSSENDTIME_AS_SENTTS"),it=!(((P=Oe.detail)===null||P===void 0?void 0:P[3])!=="CN"||!de("ENABLE_QUALITY_FALLBACK"))&&de("ENABLE_QUALITY_FALLBACK"),mt=!!de("ENABLE_AP_MULTI_IP")&&((U=Oe.detail)===null||U===void 0?void 0:U[5])==="multi-ip",Gt={license:B.license,p2p_id:_.p2pId,session_id:B.sid,app_id:B.appId,channel_key:$,channel_name:B.cname,sdk_version:W1,browser:navigator.userAgent,process_id:de("PROCESS_ID"),mode:_.useP2P?"p2p":Q.mode,codec:Q.codec,role:Z,has_changed_gateway:mt||se,ap_response:Oe,extend:de("JOIN_EXTEND"),details:{6:B.stringUid,cservice_map:B.cloudProxyServer==="proxy3"?"1":B.cloudProxyServer==="proxy5"?"2":void 0},features:qo({rejoin:!0},we?{multi_signaling:we}:{}),optionalInfo:B.optionalInfo,appScenario:Ne,attributes:{userAttributes:qo(qo({enableEncodedTransform:(!!de("ENABLE_AUDIO_METADATA")||!!de("ENABLE_AUDIO_PTS"))&&Nr||!!de("ENABLE_AUDIO_TOPN")&&Tf(Fi.CHROME,87,116)||void 0,enableAudioMetadata:!!de("ENABLE_AUDIO_METADATA")&&Nr,enableAudioPts:!!de("ENABLE_AUDIO_PTS")&&Nr,topnSmoothLevel:de("TOPN_SMOOTH_LEVEL"),topnNewSpeakerDelay:de("TOPN_NEW_SPEAKER_DELAY"),topnSwitchHoldMs:de("TOPN_SWITCH_HOLD_MS"),topnAudioGain:de("TOPN_AUDIO_GAIN"),enableNetworkQualityProbe:_.networkQualityProbe,enablePublishedUserList:de("ENABLE_PUBLISHED_USER_LIST"),enableUserList:de("ENABLE_USER_LIST"),maxSubscription:de("MAX_SUBSCRIPTION"),subscribeAudioFilterTopN:vs("SUBSCRIBE_AUDIO_FILTER_TOPN","number"),enablePublishAudioFilter:vs("ENABLE_PUBLISH_AUDIO_FILTER","boolean"),enableUserLicenseCheck:vs("ENABLE_USER_LICENSE_CHECK","boolean"),enableRTX:de("USE_PUB_RTX")===!0||de("USE_SUB_RTX")===!0||void 0,disableFEC:de("DISABLE_FEC"),enableNTPReport:!!de("ENABLE_NTP_REPORT")||void 0,enableInstantVideo:st,enableFulllinkAvSync:!!de("ENABLE_FULL_LINK_AV_SYNC")||void 0,enableDataStream2:vs("ENABLE_DATASTREAM_2","boolean"),enableAutFeedback:N4(),rtm2Flag:typeof B.rtmFlag=="number"?B.rtmFlag:void 0,enableUserAutoRebalanceCheck:!!de("ENABLE_USER_AUTO_REBALANCE_CHECK"),enableXR:vs("USE_XR","boolean"),enableLossbasedBwe:vs("ENABLE_LOSSBASED_BWE","boolean"),enableAutCC:b4(),enableCCFallback:vs("ENABLE_CC_FALLBACK","boolean"),enablePreallocPC:ge,preSubUid:et?lr:void 0,preSubNum:et?Ir:void 0,enablePubTWCC:vs("PUBLISH_TWCC","boolean"),enableSubTWCC:vs("SUBSCRIBE_TWCC","boolean"),enablePubRTX:vs("USE_PUB_RTX","boolean"),enableSubRTX:vs("USE_SUB_RTX","boolean"),enableSubSVC:de("ENABLE_SVC")?de("ENABLE_SVC_DEFAULT_CODECS"):Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0,enableSvcExtended:de("ENABLE_SVC")&&Array.isArray(de("SVC_EXTENDED"))&&de("SVC_EXTENDED").length!==0?de("SVC_EXTENDED"):void 0,enableVosFallback:de("ENABLE_VOS_FALLBACK"),enableQualityFallback:it},ui),{},{audioDuplicate:vs("ENABLE_AUDIO_RED","boolean")?(H=vs("AUDIO_DUPLICATE_NUM","number"))!==null&&H!==void 0?H:2:void 0,senttsUsesAbsSendTime:!!Ki||void 0,enableDualStreamFlag:vs("ENABLE_DUAL_STREAM_FLAG","boolean")})},join_ts:te,ortc:me||{}};return B.stringUid&&(Gt.string_uid=B.stringUid),B.aesmode&&B.aespassword&&(Gt.aes_mode=B.aesmode,de("ENCRYPT_AES")?(Gt.aes_secret=B.aespassword,Gt.aes_encrypt=!0):Gt.aes_secret=B.aespassword,B.aessalt&&(Gt.aes_salt=B.aessalt)),Oe.addresses[Qe]&&(Gt.ap_response.ticket=Oe.addresses[Qe].ticket,delete Oe.addresses),B.defaultVideoStream!==void 0&&(Gt.default_video_stream=B.defaultVideoStream),Gt}(this.store,this.joinInfo,this.spec,{key:this.key,role:this.role,joinGatewayStartTime:this.joinGatewayStartTime,hasChangeBGPAddress:this.hasChangeBGPAddress,isPreallocation:!((c=this.isPreallocation)===null||c===void 0||!c.call(this)),ortc:s,currentURLIndex:this.signal.currentURLIndex})}getRejoinMessage(){if(!this.joinInfo)throw new qe(Ce.UNEXPECTED_ERROR,"can not generate rejoin message, no join info");return{session_id:this.joinInfo.sid,channel_name:this.joinInfo.cname,cid:this.joinInfo.cid,uid:this.joinInfo.uid,vid:Number(this.joinInfo.vid)}}handleSignalEvents(){this.signal.on(er.WS_RECONNECT_CREATE_CONNECTION,s=>{this.joinGatewayStartTime=Date.now()}),this.signal.on(er.WS_RECONNECTING,s=>{this.joinInfo&&qt.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:s||Ss.NETWORK_ERROR}),this.joinInfo&&(this.state="RECONNECTING",qt.sessionInit(this.joinInfo.sid,{lts:new Date().getTime(),extend:this.isSignalRecover?{recover:!0}:{rejoin:!0},cname:this.joinInfo.cname,appid:this.joinInfo.appId,mode:this.spec.mode,stringUid:this.joinInfo.stringUid,channelProfile:this.spec.mode==="live"?1:0,channelMode:0,lsid:this.joinInfo.sid,clientRole:this.role==="audience"?2:1,buildFormat:1}),this.isSignalRecover=!1,this.joinGatewayStartTime=Date.now())}),this.signal.on(er.WS_CLOSED,s=>{let c;switch(s){case mi.LEAVE:c=Ss.LEAVE;break;case mi.UID_BANNED:case mi.IP_BANNED:case mi.CHANNEL_BANNED:case mi.SERVER_ERROR:c=Ss.SERVER_ERROR;break;case mi.FALLBACK:c=Ss.FALLBACK;break;case mi.LICENSE_MISSING:case mi.LICENSE_EXPIRED:case mi.LICENSE_MINUTES_EXCEEDED:case mi.LICENSE_PERIOD_INVALID:case mi.LICENSE_MULTIPLE_SDK_SERVICE:case mi.LICENSE_ILLEGAL:case mi.TOKEN_EXPIRE:c=s;break;default:c=Ss.NETWORK_ERROR}J.debug("[".concat(this.store.clientId,"] [signal] websocket closed, reason: ").concat(c||"undefined -> "+Ss.NETWORK_ERROR)),this.joinInfo&&qt.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:s===mi.LEAVE?1:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:c}),this._disconnectedReason=s,s!==mi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}),this.signal.on(er.WS_CONNECTED,()=>{if(this.updateTurnConfigFromSignal(),this.state="CONNECTED",this.joinInfo){if(this.role==="audience"){const s=de("CLIENT_ROLE_OPTIONS")||this._clientRoleOptions;s&&(s.level||s.delay)&&(J.debug("[".concat(this.store.clientId,"] patch to send set client role, role: ").concat(this.role,", mode: ").concat(this.spec.mode,", level: ").concat(s.level,", delay: ").concat(s.delay)),this.setClientRole(this.role,s))}if(qt.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!0,ec:null,vid:this.joinInfo.vid,addr:this.signal.url,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload,isABTestSuccess:this.store.isABTestSuccess}),this._isProactiveJoin=!1,this.joinInfo.useLocalAccessPoint&&this.joinInfo.setLocalAPVersion===1){const s=this.signal.url&&this.signal.url.match(/wss\:\/\/([^:]+):(\d+)/);if(!s)return void J.error("[".concat(this.store.clientId,"] set local access point after joined failed: ").concat(s));Dn("EVENT_REPORT_DOMAIN",s[1]),Dn("EVENT_REPORT_BACKUP_DOMAIN",s[1]),Dn("LOG_UPLOAD_SERVER","".concat(s[1],":6444"))}}}),this.signal.on(Ur.ON_UPLINK_STATS,s=>{this._statsCollector.updateUplinkStats(s)}),this.signal.on(er.REQUEST_RECOVER,(s,c,u)=>{if(!this.joinInfo)return u(new qe(Ce.UNEXPECTED_ERROR,"gateway: can not recover, no join info"));s&&(this.joinInfo.multiIP=s,this.hasChangeBGPAddress=!0),this.isSignalRecover=!0,$o(this,No.REQUEST_NEW_GATEWAY_LIST).then(c).catch(u)}),this.signal.on(er.REQUEST_JOIN_INFO,async(s,c,u)=>{var h,_,B;if(this.updateTurnConfigFromSignal(),this.store.useP2P)return void s(this.getJoinMessage());const Q=go((h=this.joinInfo)===null||h===void 0?void 0:h.turnServer);if(de("NEW_TURN_MODE")&&Q&&((_=this.joinInfo)===null||_===void 0?void 0:_.cloudProxyServer)==="disabled"){var T;let H=Q.servers.map(te=>"turnServerURL"in te&&de("USE_TURN_IP")?qa(qa({},te),{},{turnServerURL:QF(te.turnServerURL)}):te),$=(T=Q.serversFromGateway)===null||T===void 0?void 0:T.map(te=>de("USE_TURN_IP")?qa(qa({},te),{},{turnServerURL:QF(te.turnServerURL)}):te);const Z=this.signal.currentURLIndex;H.length>0&&(H=[H[Z%H.length]],Q.servers=H),Array.isArray($)&&$.length>0&&($=[$[0]],Q.serversFromGateway=$),J.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(Z))}const D=await $o(this,No.REQUEST_P2P_CONNECTION_PARAMS,{turnServer:Q,cloudProxyServer:(B=this.joinInfo)===null||B===void 0?void 0:B.cloudProxyServer}),O=D.iceParameters,P=D.dtlsParameters,U=D.rtpCapabilities;try{s(this.getJoinMessage({iceParameters:O,dtlsParameters:P,rtpCapabilities:U,version:"2"}))}catch(H){c(H)}}),this.signal.on(er.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE,(s,c)=>{if(this.joinInfo&&this.joinInfo.signalResponse){const u=this.joinInfo.apResponse.addresses[this.signal.currentURLIndex],h=this.joinInfo.signalResponse,_=de("FINGERPRINT")||u.fingerprint;if(!u.iceUfrag||!u.icePwd||!_)return J.debug("cannot get iceUfrag or icePwd or fingerprint from serverAddress"),void s(void 0);const B=qa(qa({},h),{},{ortc:{dtlsParameters:{role:"client",fingerprints:[{algorithm:"sha-256",fingerprint:de("FINGERPRINT")||u.fingerprint}]},iceParameters:{candidates:[],iceUfrag:u.iceUfrag,icePwd:u.icePwd},rtpCapabilities:h.rtpCapabilities,cname:"o/i14u9pJrxRKAsu"}});this.joinInfo&&delete this.joinInfo.signalResponse,s(B)}else s(void 0)}),this.signal.on(er.REQUEST_REJOIN_INFO,s=>{s(this.getRejoinMessage())}),this.signal.on(er.REPORT_JOIN_GATEWAY,(s,c)=>{if(!this.joinInfo)return;let u,h="";var _;s instanceof qe?(u=((_=s.data)===null||_===void 0?void 0:_.desc)||s.code,h=s.message):u=s,qt.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!1,ec:u,errorMsg:h,addr:c,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload})}),this.signal.on(er.IS_P2P_DISCONNECTED,s=>{s(nh(this,No.IS_P2P_DISCONNECTED))}),this.signal.on(er.DISCONNECT_P2P,()=>{this.emit(No.DISCONNECT_P2P)}),this.signal.on(er.REQUEST_SUCCESS,()=>{this._signalTimeout=!1}),this.signal.on(er.REQUEST_TIMEOUT,()=>{this._signalTimeout=!0}),this.signal.on(er.JOIN_RESPONSE,s=>{const c=this.getCurrentGatewayAddress();this.emit(No.JOIN_RESPONSE,s,c)}),this.signal.on(er.PRE_CONNECT_PC,async(s,c)=>{if(this.joinInfo){var u,h;this.updateTurnConfigFromSignal();const B=this.getCurrentGatewayAddress(),Q=go((u=this.joinInfo)===null||u===void 0?void 0:u.turnServer);if(de("NEW_TURN_MODE")&&Q&&((h=this.joinInfo)===null||h===void 0?void 0:h.cloudProxyServer)==="disabled"){var _;let O=Q.servers.map(H=>"turnServerURL"in H&&de("USE_TURN_IP")?qa(qa({},H),{},{turnServerURL:QF(H.turnServerURL)}):H),P=(_=Q.serversFromGateway)===null||_===void 0?void 0:_.map(H=>de("USE_TURN_IP")?qa(qa({},H),{},{turnServerURL:QF(H.turnServerURL)}):H);const U=this.signal.currentURLIndex;O.length>0&&(O=[O[U%O.length]],Q.servers=O),Array.isArray(P)&&P.length>0&&(P=[P[0]],Q.serversFromGateway=P),J.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(U,",in pre pc"))}const T=this.joinInfo.apResponse.addresses[this.signal.currentURLIndex],D=de("FINGERPRINT")||T.fingerprint;if(B&&D){const O=Cte(B);$o(this,No.PRE_CONNECT_PC,{candidates:O,fingerprint:D,turnServer:Q,iceUfrag:T.iceUfrag,icePwd:T.icePwd}).then(P=>{s==null||s(P)}).catch(c||(()=>{}))}}}),this.signal.on(er.RECOVER_NOTIFICATION,s=>{this.joinInfo&&typeof de("AP_REQUEST_DETAIL")=="string"&&(this.joinInfo.apRequestDetail="".concat(de("AP_REQUEST_DETAIL"),";").concat(s))}),this.signal.on(er.VOS_FALLBACK,s=>{this.emit(No.VOS_FALLBACK,s)}),this.signal.on(er.DATACHANNEL_FAILBACK,s=>{J.warning("[".concat(this.store.clientId,"] User join datachannel failed")),this.reset(),this.resetSignal(),this.emit(No.DATACHANNEL_FAILBACK)})}async tryUnsubBeforeResub(s,c){try{await this.signal.request(ur.UNSUBSCRIBE,{p2p_id:this.store.p2pId,stream_id:s,ortc:[c]},!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] tryUnsubBeforeResub warning"),u),u}}async tryUnsubDataChannelBeforeResub(s,c){try{await this.signal.request(ur.UNSUBSCRIBE,{stream_id:c.id},!0)}catch(u){throw J.warning("unsubscribe datachannel warning",u),u}}async tryUnpubBeforeRepub(s,c){try{await this.signal.request(ur.UNPUBLISH,{stream_id:s,ortc:c},!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] tryUnpubBeforeRepub warning: "),u),u}}async tryUnpubDataChannelBeforeRepub(s,c){try{await this.signal.request(ur.UNPUBLISH_DATASTREAM,{channnel_id:c.channelId},!0)}catch(u){throw J.warning("unpublish datastream warning: ",u),u}}async tryMassUnsubBeforeResub(s){const c={users:s.map(u=>({stream_id:u.stream_id,stream_type:u.stream_type}))};try{await this.signal.request(ur.UNSUBSCRIBE_STREAMS,c,!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] tryMassUnsubBeforeResub warning"),u),u}}async muteLocal(s,c){const u={action:s.find(h=>h.stream_type===En.Audio)?"mute_local_audio":"mute_local_video",p2p_id:this.store.p2pId,ortc:s,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway muteLocal warning: "),h),h}}async unmuteLocal(s,c){const u={action:s.find(h=>h.stream_type===En.Audio)?"unmute_local_audio":"unmute_local_video",p2p_id:this.store.p2pId,ortc:s,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway unmuteLocal warning: "),h),h}}async muteRemote(s,c){const u={action:s===rr.AUDIO?"mute_remote_audio":"mute_remote_video",p2p_id:this.store.p2pId,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway muteRemote warning: "),h),h}}async unmuteRemote(s,c){const u={action:s===rr.AUDIO?"unmute_remote_audio":"unmute_remote_video",p2p_id:this.store.p2pId,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway unmuteRemote warning: "),h),h}}uploadWRTCStats(s){this.signal.uploadWRTCStats(s)}upload(s,c){this.signal.upload(s,c)}getSignalRTT(){return this.signal.rtt}async restartICE(s){const c={p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:s};try{return await this.signal.request(ur.RESTART_ICE,c,!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] P2PChannel.restartICE warning: "),u),u}}reconnect(s,c){this.state==="CONNECTED"&&this.signal.reconnect(s||void 0,c||Ss.P2P_FAILED)}getCurrentGatewayAddress(){var s,c;if(!de("GATEWAY_WSS_ADDRESS"))return de("USE_CANDIDATE_FROM_AP_DETAIL")&&(s=this.joinInfo)!==null&&s!==void 0&&s.apGatewayAddress?(J.debug("[".concat(this.store.clientId,"] use candidate from ap detail, ").concat(JSON.stringify(this.joinInfo.apGatewayAddress))),this.joinInfo.apGatewayAddress):(c=this.joinInfo)!==null&&c!==void 0&&c.gatewayAddrs?this.joinInfo.gatewayAddrs[this.signal.currentURLIndex]:void 0}async setPublishAudioFilterEnabled(s){await this.signal.request(ur.SET_PARAMETER,{enablePublishAudioFilter:s})}downgradeCodec(s){this.signal.downgradeCodec(s)}resetSignal(){this.signal&&(this.signal.removeAllListeners(),this.signal.close(mi.FALLBACK)),this.store.useDcSignal=!1,this.signal=new yN(qa(qa({},this.spec),{},{retryConfig:this.spec.websocketRetryConfig}),this.store),this.handleSignalEvents(),this.emit(No.RESET_SIGNAL)}}let ace=function(t){return t.NATIVE_RTC="native_rtc",t.NATIVE_RTM="native_rtm",t.WEB_RTC="web_rtc",t.WEB_RTM="web_rtm",t}({}),OF=0,JX=0;function ng(t,s,c,u){return new Ut((h,_)=>{s.timeout=s.timeout||de("HTTP_CONNECT_TIMEOUT"),s.responseType=s.responseType||"json",s.data&&!c?(s.data=JSON.stringify(s.data),OF+=vu(s.data)):c&&(s.data.size?OF+=s.data.size:s.data instanceof FormData?OF+=GR(s.data):OF+=vu(JSON.stringify(s.data))),s.headers=s.headers||{},s.headers["Content-Type"]=s.headers["Content-Type"]||"application/json",s.method="POST",s.url=t,on.request(s).then(B=>{typeof B.data=="string"?JX+=vu(B.data):B.data instanceof ArrayBuffer||B.data instanceof Uint8Array?JX+=B.data.byteLength:JX+=vu(JSON.stringify(B.data)),u&&h({data:B.data,headers:B.headers}),h(B.data)}).catch(B=>{on.isCancel(B)?_(new qe(Ce.OPERATION_ABORTED,"cancel token canceled")):B.code==="ECONNABORTED"?_(new qe(Ce.NETWORK_TIMEOUT,B.message)):B.response?_(new qe(Ce.NETWORK_RESPONSE_ERROR,B.response.status)):_(new qe(Ce.NETWORK_ERROR,B.message))})})}/*! formdata-polyfill. MIT License. Jimmy W?rting */(function(){var t;function s(it){var mt=0;return function(){return mt>>0)+"_",at=0;return function ie(Te){if(this instanceof ie)throw new TypeError("Symbol is not a constructor");return new mt(Gt+(Te||"")+"_"+at++,Te)}}),_("Symbol.iterator",function(it){if(it)return it;it=Symbol("Symbol.iterator");for(var mt="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Gt=0;Gt"u"||!FormData.prototype.keys)){var me=function(it,mt){for(var Gt=0;Gt{const t=de("AREAS");return t.length===0&&t.push(gi.GLOBAL),VA(t).call(t,(s,c,u)=>{const h=Tte(c);return h?u===0?h:"".concat(s,",").concat(h):s},"")},Tte=t=>t===gi.OVERSEA?"".concat(Pa.ASIA,",").concat(Pa.EUROPE,",").concat(Pa.AFRICA,",").concat(Pa.NORTH_AMERICA,",").concat(Pa.SOUTH_AMERICA,",").concat(Pa.OCEANIA):Pa[t],Ace=t=>{const s={CODE:"",WEBCS_DOMAIN:[],WEBCS_DOMAIN_BACKUP_LIST:[],PROXY_CS:[],CDS_AP:[],ACCOUNT_REGISTER:[],UAP_AP:[],EVENT_REPORT_DOMAIN:[],EVENT_REPORT_BACKUP_DOMAIN:[],LOG_UPLOAD_SERVER:[],PROXY_SERVER_TYPE3:[]};return t.map(c=>{const u=A_[c],h=Object.keys(u);h&&h.map(_=>{_!=="CODE"&&(s[_]=s[_].concat(u[_]))})}),s},LF={GLOBAL:{ASIA:[gi.CHINA,gi.JAPAN,gi.INDIA,gi.KOREA,gi.HKMC],EUROPE:[],NORTH_AMERICA:[gi.US],SOUTH_AMERICA:[],OCEANIA:[],AFRICA:[]}},MF=Object.keys(LF[gi.GLOBAL]),qX=[gi.CHINA,gi.NORTH_AMERICA,gi.EUROPE,gi.ASIA,gi.JAPAN,gi.INDIA,gi.OCEANIA,gi.SOUTH_AMERICA,gi.AFRICA,gi.KOREA,gi.HKMC,gi.US],cce=function(t,s){let c=[];if(Et(t).call(t,gi.GLOBAL)){const _=[gi.GLOBAL,gi.OVERSEA],B=Object.keys(A_);if(s===gi.GLOBAL)throw new qe(Ce.INVALID_PARAMS,"GLOBAL is an invalid excludedArea value");if(s===gi.CHINA)c=[gi.OVERSEA];else if(h=s,Et(MF).call(MF,h)){const Q=(u=s,LF[gi.GLOBAL][u]||[]),T=[..._,s,...Q];c=B.filter(D=>!Et(T).call(T,D))}else if(function(Q){let T=!1;return MF.forEach(D=>{var O;Et(O=LF[gi.GLOBAL][D]).call(O,Q)&&(T=!0)}),T}(s)){const Q=function(D){let O;return MF.forEach(P=>{var U;Et(U=LF[gi.GLOBAL][P]).call(U,D)&&(O=P)}),O}(s),T=[..._,Q,s];c=B.filter(D=>!Et(T).call(T,D))}else c=t;c=function(Q){const T=[];return qX.forEach(D=>{Et(Q).call(Q,D)&&T.push(D)}),T.concat(Q.filter(D=>!Et(qX).call(qX,D)))}(c)}else c=t;var u,h;return c};function wte(t){var s,c;if(!t&&Et(s=de("AREAS")).call(s,gi.EXTENSIONS))return J.debug("update area from ap : reset"),void WX(JJ,!0);if(!Et(c=de("AREAS")).call(c,gi.GLOBAL)||!t)return;let u=A_.EXTENSIONS;u&&(u={CODE:Tte(gi.EXTENSIONS),WEBCS_DOMAIN:["ap-web-1-".concat(t,".agora.io")],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-".concat(t,".ap.sd-rtn.com")],PROXY_CS:["proxy-ap-web-".concat(t,".agora.io")],CDS_AP:["cds-ap-web-1-".concat(t,".agora.io"),"cds-ap-web-2-".concat(t,".ap.sd-rtn.com")],ACCOUNT_REGISTER:["sua-ap-web-1-".concat(t,".agora.io"),"sua-ap-web-2-".concat(t,".ap.sd-rtn.com")],UAP_AP:["uap-ap-web-1-".concat(t,".agora.io"),"uap-ap-web-2-".concat(t,".ap.sd-rtn.com")],EVENT_REPORT_DOMAIN:["statscollector-1-".concat(t,".agora.io")],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-".concat(t,".agora.io")],LOG_UPLOAD_SERVER:["logservice-".concat(t,".agora.io")],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy-".concat(t,".agora.io")]},J.debug("update area from ap success: ".concat(t,",config is "),u),Dn("AREAS",[gi.EXTENSIONS],!0),Object.keys(u).map(h=>{h==="LOG_UPLOAD_SERVER"||h==="EVENT_REPORT_DOMAIN"||h==="EVENT_REPORT_BACKUP_DOMAIN"||h==="PROXY_SERVER_TYPE3"?Dn(h,u[h][0]):Dn(h,u[h])}))}function WX(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=qt.reportApiInvoke(null,{name:Ti.SET_AREA,options:t,tag:vn.TRACER});try{let u=[];if(typeof t=="string"&&(u=[t]),Array.isArray(t)&&(t.forEach(_=>{if(!Et(Gy).call(Gy,_))throw new qe(Ce.INVALID_PARAMS,"invalid area code")}),u=t),Object.prototype.toString.call(t)==="[object Object]"){const _=t,B=_.areaCode,Q=_.excludedArea;if(!B)throw new qe(Ce.INVALID_PARAMS,"area code is needed");let T=B;typeof B=="string"&&(T=[B]),u=Q?cce(T,Q):T}if(!s){if($e.AREAS){const _=new qe(Ce.PROHIBITED_OPERATION,"setArea is prohibited because of config-distribute");return c.onError(_),void J.warning("setArea is prohibited because of config-distribute")}if(Et(u).call(u,gi.GLOBAL)&&de("AREAS")===gi.EXTENSIONS){const _=new qe(Ce.PROHIBITED_OPERATION,"setArea is prohibited because of ap extensions");return c.onError(_),void J.warning("setArea is prohibited because of ap extensions")}}Dn("AREAS",u,s);const h=Ace(u);Object.keys(h).map(_=>{_==="LOG_UPLOAD_SERVER"||_==="EVENT_REPORT_DOMAIN"||_==="EVENT_REPORT_BACKUP_DOMAIN"||_==="PROXY_SERVER_TYPE3"?Dn(_,h[_][0]):Dn(_,h[_])}),J.debug("set area success:",u.join(","))}catch(u){throw c.onError(u),u}c.onSuccess()}function vte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Jh(t){for(var s=1;s{Q=Date.now();const O=await ng(D,{data:B,cancelToken:u,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"}});if(T=Date.now()-Q,O.code!==0){const H=new qe(Ce.UNEXPECTED_RESPONSE,"live streaming ap error, code"+O.code,{retry:!0,responseTime:T});throw J.error(H.toString()),H}const P=JSON.parse(O.json_body);if(P.code!==200){const H=new qe(Ce.UNEXPECTED_RESPONSE,"live streaming app center error, code: ".concat(P.code,", reason: ").concat(P.reason),{code:P.code,responseTime:T});throw J.error(H.toString()),H}if(!P.servers||P.servers.length===0){const H=new qe(Ce.UNEXPECTED_RESPONSE,"live streaming app center empty server",{code:P.code,responseTime:T});throw J.error(H.toString()),H}const U=function(H,$){return{addressList:H.servers.map(Z=>"wss://".concat(Z.address.replace(/\./g,"-"),".").concat(de("WORKER_DOMAIN"),":").concat(Z.wss,"?serviceName=").concat(encodeURIComponent($))),workerToken:H.workerToken,vid:H.vid}}(P,s);return de("LIVE_STREAMING_ADDRESS")&&(U.addressList=de("LIVE_STREAMING_ADDRESS")instanceof Array?de("LIVE_STREAMING_ADDRESS"):[de("LIVE_STREAMING_ADDRESS")]),Jh(Jh({},U),{},{responseTime:T})},(O,P)=>(qt.apworkerEvent(c.sid,{success:!0,sc:200,serviceName:s,responseDetail:JSON.stringify(O.addressList),firstSuccess:P===0,responseTime:T,serverIp:t[P%t.length]}),!1),(O,P)=>(qt.apworkerEvent(c.sid,{success:!1,sc:O.data&&O.data.code||200,serviceName:s,responseTime:T,serverIp:t[P%t.length]}),!!(O.code!==Ce.OPERATION_ABORTED&&O.code!==Ce.UNEXPECTED_RESPONSE||O.data&&O.data.retry)&&(D=t[(P+1)%t.length],!0)),h)}let zX=1;function kF(t,s,c,u,h,_,B){let Q=t.url,T=t.areaCode;const D=Date.now();let O;const P=c.role,U=ir(uce(h,c,u,T,Array.isArray(s)?s:[s]),2),H=U[0],$=U[1];let Z=ki.networkState;return dl(async()=>{Z&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(B&&B.maxRetryTimeout||So.maxRetryTimeout)]),Z=ki.networkState;const te=await ng(Q,{data:H,cancelToken:_,responseType:"arraybuffer",headers:{"Content-Type":"text/plain;"}},!0,!0),se=te.data,ge=te.headers;let me;O=ge.http3==="1"?1:-1,qt.reportResourceTiming(Q,c.sid);const Qe=ge["content-type"]||ge["Content-Type"]||"",Oe=Et(Qe).call(Qe,"application/json");try{me=Oe?function(lr){const ft=de("ENABLE_AP_COMPRESS")?gQ(lr,{raw:!0}):lr,Ir=new TextDecoder().decode(ft);return JSON.parse(Ir)}(se):oce(c,u,se)}catch{throw new qe(Ce.PB_ERROR,"sdp enpoint response transformer get unknown res",{retry:!1})}$X(me,Q,c,D,Array.isArray(s)?s:[s],O);const we=am(me,fo.CHOOSE_SERVER);let Ne;Array.isArray(s)&&s.length>1&&(Ne=am(me,c.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:c.cloudProxyServer==="proxy3"||c.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK));const et=performance.getEntriesByName(Q),st=et[et.length-1];let Xt;return st&&(Xt={name:st.name,protocol:"nextHopProtocol"in st?st.nextHopProtocol:"",dnscost:"domainLookupEnd"in st&&"domainLookupStart"in st&&typeof st.domainLookupEnd=="number"&&typeof st.domainLookupStart=="number"?st.domainLookupEnd-st.domainLookupStart:-1,tcpTlsCost:"connectEnd"in st&&"connectStart"in st&&typeof st.connectEnd=="number"&&typeof st.connectStart=="number"?st.connectEnd-st.connectStart:-1,reqCost:"requestStart"in st&&typeof st.requestStart=="number"&&"responseEnd"in st&&typeof st.responseEnd=="number"?st.responseEnd-st.requestStart:-1,handleCost:"leave_ts"in me&&"enter_ts"in me&&typeof me.leave_ts=="number"&&typeof me.enter_ts=="number"?me.leave_ts-me.enter_ts:-1}),PF(we),Array.isArray(s)?{gatewayInfo:g9(we,Q),proxyInfo:Ne,url:Q,resourceTimingInfo:Xt}:g9(we,Q)},te=>{const se="gatewayInfo"in te?te.gatewayInfo:te,ge="proxyInfo"in te?te.proxyInfo:void 0,me="resourceTimingInfo"in te?te.resourceTimingInfo:void 0;return se&&qt.joinChooseServer(c.sid,{role:P,lts:D,succ:!0,csAddr:Q,serverList:se.gatewayAddrs.map(Qe=>Qe.address),ec:null,opid:$,cid:se.cid.toString(),uid:se.uid.toString(),csIp:se.csIp,unilbsServerIds:s.toString(),isHttp3:O,corssRegionTagReq:c.apRequestDetail,corssRegionTagRes:se.res.detail&&se.res.detail[38],vid:se==null?void 0:se.vid,resourceTimingInfo:me?JSON.stringify(me):void 0}),ge&&qt.joinWebProxyAP(c.sid,{lts:D,sucess:1,apServerAddr:Q,turnServerAddrList:ge.addresses.map(Qe=>Qe.ip).join(","),errorCode:null,eventType:c.cloudProxyServer,unilbsServerIds:s.toString()}),!1},te=>te.code!==Ce.PB_ERROR&&te.code!==Ce.OPERATION_ABORTED&&(te.code===Ce.CAN_NOT_GET_GATEWAY_SERVER?te.data.retry:(qt.joinWebProxyAP(c.sid,{lts:D,sucess:0,apServerAddr:Q,turnServerAddrList:null,errorCode:te.code,eventType:c.cloudProxyServer,unilbsServerIds:s.toString(),extend:JSON.stringify({networkState:Z})}),J.warning("[".concat(c.clientId,"] multi unilbs network error, retry"),te),!0)),B)}function Dte(t,s,c,u){let h=t.url,_=t.areaCode;const B=s.clientId,Q=s.sid,T=Date.now();let D;const O=s.role,P=ir(ZX(s,_,[fo.CHOOSE_SERVER]),2),U=P[0],H=P[1];let $=ki.networkState;return dl(async()=>{$&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(u&&u.maxRetryTimeout||So.maxRetryTimeout)]),$=ki.networkState;const Z=await ng(h,{data:U,cancelToken:c,headers:{"Content-Type":"multipart/form-data;"}},!0,!0),te=Z.data;D=Z.headers.http3==="1"?1:-1,qt.reportResourceTiming(h,Q),$X(te,h,s,T,[fo.CHOOSE_SERVER],D);const ge=am(te,fo.CHOOSE_SERVER);return PF(ge),g9(ge,h)},Z=>(Z&&qt.joinChooseServer(Q,{role:O,lts:T,succ:!0,csAddr:h,opid:H,serverList:Z.gatewayAddrs.map(te=>te.address),ec:null,cid:Z.cid.toString(),uid:Z.uid.toString(),csIp:Z.csIp,unilbsServerIds:[fo.CHOOSE_SERVER].toString(),isHttp3:D,corssRegionTagReq:s.apRequestDetail,corssRegionTagRes:Z.res.detail&&Z.res.detail[38],vid:Z.vid}),!1),Z=>Z.code!==Ce.OPERATION_ABORTED&&(Z.code===Ce.CAN_NOT_GET_GATEWAY_SERVER?Z.data.retry:(qt.joinChooseServer(Q,{role:O,lts:T,succ:!1,csAddr:h,serverList:null,opid:H,ec:Z.code,csIp:Z.data&&Z.data.csIp,unilbsServerIds:[fo.CHOOSE_SERVER].toString(),extend:JSON.stringify({networkState:$}),isHttp3:D,corssRegionTagReq:s.apRequestDetail}),J.warning("[".concat(B||"sid-".concat(Q.slice(0,6)),"] Choose server network error, retry"),Z),!0)),u)}function bte(t,s,c,u){let h,_=t.url,B=t.areaCode,Q=t.serviceIds;const T=Date.now(),D=s.role,O=ir(ZX(s,B,Q),2),P=O[0],U=O[1];let H;return dl(async()=>{H&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(u&&u.maxRetryTimeout||So.maxRetryTimeout)]),H=ki.networkState;const $=await ng(_,{data:P,cancelToken:c,headers:{"Content-Type":"multipart/form-data;"}},!0,!0),Z=$.data;h=$.headers.http3==="1"?1:-1,qt.reportResourceTiming(_,s.sid),$X(Z,_,s,T,Q,h);const se=am(Z,fo.CHOOSE_SERVER),ge=am(Z,s.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:s.cloudProxyServer==="proxy3"||s.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK),me=performance.getEntriesByName(_),Qe=me[me.length-1];let Oe;return Qe&&(Oe={name:Qe.name,protocol:"nextHopProtocol"in Qe?Qe.nextHopProtocol:"",dnscost:"domainLookupEnd"in Qe&&"domainLookupStart"in Qe&&typeof Qe.domainLookupEnd=="number"&&typeof Qe.domainLookupStart=="number"?Qe.domainLookupEnd-Qe.domainLookupStart:-1,tcpTlsCost:"connectEnd"in Qe&&"connectStart"in Qe&&typeof Qe.connectEnd=="number"&&typeof Qe.connectStart=="number"?Qe.connectEnd-Qe.connectStart:-1,reqCost:"requestStart"in Qe&&typeof Qe.requestStart=="number"&&"responseEnd"in Qe&&typeof Qe.responseEnd=="number"?Qe.responseEnd-Qe.requestStart:-1,handleCost:"leave_ts"in Z&&"enter_ts"in Z&&typeof Z.leave_ts=="number"&&typeof Z.enter_ts=="number"?Z.leave_ts-Z.enter_ts:-1}),PF(se),{gatewayInfo:g9(se,_),proxyInfo:ge,url:_,resourceTimingInfo:Oe}},$=>{var Z;return $.gatewayInfo&&qt.joinChooseServer(s.sid,{role:D,lts:T,succ:!0,csAddr:_,serverList:$.gatewayInfo.gatewayAddrs.map(te=>te.address),ec:null,opid:U,cid:$.gatewayInfo.cid.toString(),uid:$.gatewayInfo.uid.toString(),csIp:$.gatewayInfo.csIp,unilbsServerIds:Q.toString(),isHttp3:h,corssRegionTagReq:s.apRequestDetail,corssRegionTagRes:$.gatewayInfo.res.detail&&$.gatewayInfo.res.detail[38],vid:(Z=$.gatewayInfo)===null||Z===void 0?void 0:Z.vid,resourceTimingInfo:$.resourceTimingInfo?JSON.stringify($.resourceTimingInfo):void 0}),$.proxyInfo&&qt.joinWebProxyAP(s.sid,{lts:T,sucess:1,apServerAddr:_,turnServerAddrList:$.proxyInfo.addresses.map(te=>te.ip).join(","),errorCode:null,eventType:s.cloudProxyServer,unilbsServerIds:Q.toString()}),!1},$=>$.code!==Ce.OPERATION_ABORTED&&($.code===Ce.CAN_NOT_GET_GATEWAY_SERVER?$.data.retry:(qt.joinWebProxyAP(s.sid,{lts:T,sucess:0,apServerAddr:_,turnServerAddrList:null,errorCode:$.code,eventType:s.cloudProxyServer,unilbsServerIds:Q.toString(),extend:JSON.stringify({networkState:H})}),J.warning("[".concat(s.clientId,"] multi unilbs network error, retry"),$),!0)),u)}const $X=(t,s,c,u,h,_)=>{const B=c.sid,Q=c.clientId,T=c.cloudProxyServer,D=[],O=P=>{P.flag===4096?qt.joinChooseServer(B,{role:c.role,lts:u,succ:!1,csAddr:s,opid:t.opid,serverList:null,ec:P.error.message,csIp:P.error.data&&P.error.data.csIp,unilbsServerIds:h.toString(),isHttp3:_,corssRegionTagReq:c.apRequestDetail}):P.flag!==1048576&&P.flag!==4194304&&P.flag!==4194310||qt.joinWebProxyAP(B,{lts:u,sucess:0,apServerAddr:s,turnServerAddrList:null,errorCode:P.error.code,eventType:T,unilbsServerIds:h.toString()})};if(t.response_body.forEach(P=>{const U=P.buffer.code;if(P.uri===23&&U===0&&!P.buffer.edges_services)if(P.buffer.flag===4194310)J.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers"),P.buffer.edges_services=[];else{const H={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:de("NO_EDGES_RETRY"),csIp:t.detail[502]}),flag:P.buffer.flag};D.push(H),O(H)}if(U!==0){const H=mh(U),$={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,H.desc,{desc:H.desc,retry:H.retry,csIp:t.detail[502]}),flag:P.buffer.flag};P.buffer.flag===4194310?J.warning($.error.toString()):D.push($),O($)}}),D.length)throw J.warning("[".concat(Q||"sid-".concat(B.slice(0,6)),"] multi unilbs ").concat(s," failed, ").concat(D.map(P=>"flag: ".concat(P.flag,", message: ").concat(P.error.message,", retry: ").concat(P.error.data.retry)).join(" | "))),new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,D.map(P=>"flag: ".concat(P.flag,", message: ").concat(P.error.message)).join(" | "),{retry:!!D.find(P=>P.error.data.retry),csIp:t.detail[502],desc:[...new Set(D.map(P=>{var U;return P==null||(U=P.error)===null||U===void 0||(U=U.data)===null||U===void 0?void 0:U.desc}).filter(P=>!!P))]})},PF=t=>{var s,c,u,h;if(t.addresses&&t.addresses.length===0&&t.code===0)throw new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,"void gateway address",{retry:!0,csIp:t.detail&&t.detail[502]});if(de("AP_AREA")&&((u=t.detail)!==null&&u!==void 0&&u[23]&&typeof((h=t.detail)===null||h===void 0?void 0:h[23])=="string"?wte(t.detail[23].toLowerCase()):wte()),(s=t.detail)!==null&&s!==void 0&&s[19]&&typeof((c=t.detail)===null||c===void 0?void 0:c[19])=="string"){const B=t.detail[19],Q=B==null?void 0:B.split(";");for(let T=0;T0){J.debug("assign gateway address to",de("GATEWAY_ADDRESS"));const B=de("GATEWAY_ADDRESS").map(Q=>{var T,D,O,P;const U=(T=(D=t.addresses.find(H=>H.ip===Q.ip&&H.port===Q.port))===null||D===void 0?void 0:D.fingerprint)!==null&&T!==void 0?T:"";return{ip:Q.ip,port:Q.port,ticket:t.addresses[0]&&t.addresses[0].ticket,fingerprint:U,iceUfrag:(O=t.addresses[0])===null||O===void 0?void 0:O.iceUfrag,icePwd:(P=t.addresses[0])===null||P===void 0?void 0:P.icePwd}});t.addresses=B}},dce=(t,s)=>{if(t.response_body&&t.response_body.length){const c=t.response_body[0];if(c.buffer.code!==0){const u=mh(c.buffer.code);throw new qe(Ce.UPDATE_TICKET_FAILED,"[".concat(c.buffer.code,"]: ").concat(u.desc),{retry:u.retry})}return c.buffer.ticket}throw J.debug("update ticket request received ap response without response body:",s),new qe(Ce.UPDATE_TICKET_FAILED,"cannot find response body from ap response",{retry:!1})},ZX=(t,s,c)=>{const u=Math.floor(Math.random()*1e12),h=t.role==="host"?"1":t.role==="audience"?"2":void 0,_={appid:t.appId,client_ts:Date.now(),opid:u,sid:t.sid,request_bodies:[{uri:22,buffer:{cname:t.cname,detail:Jh(Jh(Jh({6:t.stringUid,11:s,12:de("USE_NEW_TOKEN")?"1":void 0},h?{17:h}:{}),{},{22:s},t.apRequestDetail?{33:t.apRequestDetail}:{}),t.apRTM?{26:"RTM2"}:{}),key:t.token,service_ids:c,uid:t.uid||0}}]};_.request_bodies.forEach(Q=>{t.multiIP&&t.multiIP.gateway_ip&&(Q.buffer.detail[5]=JSON.stringify({vocs_ip:[t.multiIP.uni_lbs_ip],vos_ip:[t.multiIP.gateway_ip]}))});const B=new FormData;return B.append("request",JSON.stringify(_)),[B,u]},uce=(t,s,c,u,h)=>{const _=Math.floor(Math.random()*1e12);return[nce(t,s,u,h,{opid:_,mode:t.mode,codec:t.codec,hasChangeBGPAddress:!1,ortc:c}),_]},gce=(t,s)=>{const c=Math.floor(Math.random()*1e12),u={appid:t.appId,client_ts:Date.now(),opid:c,sid:t.sid,request_bodies:[{uri:28,buffer:{cname:t.cname,detail:{1:"",6:t.stringUid,12:"1"},token:t.token,service_ids:s,uid:t.uid||0,edges_services:t.apResponse.addresses.map(_=>({ip:_.ip,port:_.port}))}}]},h=new FormData;return h.append("request",JSON.stringify(u)),[h,c]};let oT=0;function lm(t){return Ut.all(t.map(s=>s.then(c=>{throw c},c=>c))).then(s=>{throw s},s=>s)}const dm=async t=>{let s=t.fragementLength,c=t.referenceList,u=t.asyncMapHandler,h=t.allFailedhandler,_=t.promisesCollector,B=0;const Q=s;let T,D=0;const O=async()=>{const P=(()=>{const U=B*Q,H=U+Q;return c.slice(U,H).map(u)})();_&&_.push(...P);try{T=await lm(P)}catch(U){if(D+=Q,B++,!(D>=c.length))return void await O();h(U)}P.forEach(U=>U.cancel())};return await O(),T},Nte=async t=>{let s=t.referenceList,c=t.asyncMapHandler,u=t.closeFn;const h=s.length;let _=0;const B=async()=>{const Q=c(s.shift());try{return await Q}catch(T){if(_++,_>=h||u!=null&&u(T))throw T;return B()}};return B()};async function Ece(){if(typeof VideoDecoder>"u")return!0;let t;const s=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,85,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,149,160,133,4,144,43,122,168,159,120,159,205,39,82,131,57,52,87,187,68,23,248,134,204,226,97,17,49,183,55,236,219,249,221,98,208,215,190,59,179,167,213,47,1,246,150,14,194,245,159,83,35,64,103,218,38,21,82,3,135,21,185,84,248,134],c=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,148,62,134,140,92,172,141,77,35,94,181,164,65,169,65,156,154,43,221,162,11,252,67,102,113,48,136,137,219,62,43,113,239,23,126,250,186,252,10,138,218,25,193,244,74,68,194,209,107,23,52,206,199,78,72,98,103,151,71,96,62,51,210,158,72,231,158],u=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,143,233,163,51,196,98,95,151,224,22,134,33,240,150,248,67,18,34,196,142,81,238,173,140,80,205,232,132,144,67,12,131,157,4,171,243,86,122,35,6,166,184,243,85,126,13,206,103,152,62,168,160,187,2,241,138,52,211,72,121,128,151,63,147,128,19,42],h=[18,0,50,138,1,48,192,64,253,248,65,17,67,192,32,0,16,0,0,0,0,0,0,0,195,12,48,144,64,32,0,209,75,61,9,204,25,115,79,226,115,63,63,208,70,210,220,153,126,241,237,37,107,195,153,1,99,112,230,189,209,169,130,10,11,22,167,215,159,205,197,7,183,162,26,48,254,141,134,103,32,16,235,45,1,15,18,119,169,110,206,251,51,115,202,60,148,1,46,39,109,25,28,86,168,15,77,211,239,2,58,43,146,26,230,184,81,48,140,226,226,250,222,146,171,133,164,13,188,180,64,122,142,146,32,208,238,170,193,35,53,44,225],_=[18,0,50,107,48,0,133,125,248,65,26,195,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,204,24,122,65,56,165,18,52,206,218,4,187,51,97,9,29,191,90,253,106,185,31,197,155,52,205,245,185,203,131,20,226,25,124,95,113,220,113,141,15,15,104,211,144,152,237,150,157,127,51,143,24,231,218,171,255,176,241,128,229,149,150,148,66,245,228,91,27,182,228,136,61,182,237,133,45,220,24,103,214,152],B=[18,0,50,122,48,1,9,253,248,65,26,67,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,198,182,231,242,220,235,163,140,12,36,36,166,46,132,210,4,71,23,218,132,27,30,17,45,244,79,31,243,195,136,100,169,76,88,142,85,204,217,121,168,29,163,198,17,251,223,73,12,212,244,139,123,151,179,75,216,96,208,136,40,229,42,59,149,10,116,228,85,99,93,221,108,255,140,248,20,30,167,122,109,206,164,108,197,110,251,23,243,133,160,63,13,207,177,12,128];return await new Ut((T,D)=>{let O;(async function(){t&&t.state!=="closed"||await async function(){t=new VideoDecoder({output:U=>{U.close(),clearTimeout(O),T(!0)},error:U=>{clearTimeout(O),T(!1)}}),await t.configure({codec:"av01.0.05M.08",width:160,height:90})}();const P=[s,c,u,h,_,B];for(let U=0;U{T(!1)},5e3)})}async function _9(t,s,c,u){return{gatewayInfo:await async function(_,B,Q,T){let D=null;const O=[],P=async()=>{const H=de("WEBCS_DOMAIN").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(te=>({url:_.proxyServer?"https://".concat(_.proxyServer,"/ap/?url=").concat(te+"/api/v2/transpond/webrtc?v=2"):"https://".concat(te,"/api/v2/transpond/webrtc?v=2"),areaCode:cm()})),$=T.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:H.map(te=>te.url)}),Z=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:H,asyncMapHandler:te=>(J.debug("[".concat(_.clientId,"] Connect to choose_server:"),te.url),Dte(te,_,B,Q)),allFailedhandler:te=>{throw T.recordJoinChannelService({endTs:Date.now(),status:"error",errors:te},$),te[0]},promisesCollector:O});return T.recordJoinChannelService({endTs:Date.now(),status:"success"},$),Z},U=async()=>{if(await so(1e3),D!==null)return D;const H=de("WEBCS_DOMAIN_BACKUP_LIST").map(te=>({url:_.proxyServer?"https://".concat(_.proxyServer,"/ap/?url=").concat(te+"/api/v2/transpond/webrtc?v=2"):"https://".concat(te,"/api/v2/transpond/webrtc?v=2"),areaCode:cm()})),$=T.recordJoinChannelService({endTs:void 0,startTs:Date.now(),status:"pending",service:"chooseServer",urls:H.map(te=>te.url)}),Z=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:H,asyncMapHandler:te=>(J.debug("[".concat(_.clientId,"] Connect to backup choose_server:"),te.url),Dte(te,_,B,Q)),allFailedhandler:te=>{throw T.recordJoinChannelService({endTs:Date.now(),status:"error",errors:te},$),te[0]},promisesCollector:O});return T.recordJoinChannelService({endTs:Date.now(),status:"success"},$),Z};try{return D=await lm([P(),U()]),O.length&&O.forEach(H=>H.cancel&&typeof H.cancel=="function"&&H.cancel()),D}catch(H){throw H[0]}}(t,s,c,u)}}async function Ote(t,s,c,u,h){const _=t.cloudProxyServer;if(_==="disabled"){if(t.useLocalAccessPoint)return await _9(t,s,c,h);if(de("JOIN_WITH_FALLBACK_MEDIA_PROXY")){const H=await UF(t,s,c,h),$=H.gatewayInfo,Z=H.proxyInfo;if(t.turnServer&&t.turnServer.mode!=="auto")return{gatewayInfo:$};const te=Z.map(se=>({turnServerURL:se.address,tcpport:se.tcpport||Bn.tcpport,udpport:se.udpport||Bn.udpport,username:se.username||Bn.username,password:se.password||Bn.password,forceturn:!1,security:!0}));if(h.useP2P){var B;const se=(B=t.uid)!==null&&B!==void 0?B:$.uid,ge="glb:".concat(se.toString()),me=await Of(ge),Qe=Z.map(Oe=>({turnServerURL:Oe.address,tcpport:Oe.tcpport||Bn.tcpport,udpport:Oe.udpport||Bn.udpport,username:ge,password:me,forceturn:!1,security:!0}));te.push(...Qe)}return t.turnServer={mode:"manual",servers:te},{gatewayInfo:$}}return await _9(t,s,c,h)}const Q=await UF(t,s,c,h),T=Q.proxyInfo,D=Q.gatewayInfo,O={gatewayInfo:D},P=T.map(H=>({turnServerURL:H.address,tcpport:_==="proxy3"?void 0:H.tcpport?H.tcpport:Bn.tcpport,udpport:_==="proxy4"?void 0:H.udpport?H.udpport:Bn.udpport,username:H.username||Bn.username,password:H.password||Bn.password,forceturn:_!=="proxy4",security:_==="proxy5"}));if(h.useP2P){var U;const H=(U=t.uid)!==null&&U!==void 0?U:D.uid,$="glb:".concat(H.toString()),Z=await Of($),te=T.map(se=>({turnServerURL:se.address,tcpport:_==="proxy3"?void 0:se.tcpport||Bn.tcpport,udpport:_==="proxy4"?void 0:se.udpport||Bn.udpport,username:$,password:Z,forceturn:_!=="proxy4",security:_==="proxy5"}));P.push(...te)}return t.turnServer={mode:"manual",servers:P},J.debug("[".concat(t.clientId,"] set proxy server: ").concat(t.proxyServer,", mode: ").concat(_)),O}async function hce(t,s,c,u,h){const _=t.cloudProxyServer;if(_==="disabled"){if(t.useLocalAccessPoint)return await _9(t,s,c,u);if(de("JOIN_WITH_FALLBACK_MEDIA_PROXY")){const O=await UF(t,s,c,u,h),P=O.gatewayInfo,U=O.proxyInfo;if(t.turnServer&&t.turnServer.mode!=="auto")return{gatewayInfo:P};const H=U.map($=>({turnServerURL:$.address,tcpport:$.tcpport||Bn.tcpport,udpport:$.udpport||Bn.udpport,username:$.username||Bn.username,password:$.password||Bn.password,forceturn:!1,security:!0}));return t.turnServer={mode:"manual",servers:H},{gatewayInfo:P}}return{gatewayInfo:await async function(P,U,H,$,Z){let te=null;const se=[],ge=async()=>{const Qe=de("SDP_ENDPOINT_DOMAIN").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(Ne=>({url:P.proxyServer?"https://".concat(P.proxyServer,"/ap/?url=").concat(Ne+"/api/v3/transpond/webrtc?v=3"):"https://".concat(Ne,"/api/v3/transpond/webrtc?v=3"),areaCode:cm()})),Oe=Z.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:Qe.map(Ne=>Ne.url)}),we=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Qe,asyncMapHandler:Ne=>(J.debug("[".concat(P.clientId,"] Connect to choose_server:"),Ne.url),kF(Ne,fo.CHOOSE_SERVER,P,U,Z,H,$)),allFailedhandler:Ne=>{throw Z.recordJoinChannelService({endTs:Date.now(),status:"error",errors:Ne},Oe),Ne[0]},promisesCollector:se});return Z.recordJoinChannelService({endTs:Date.now(),status:"success"},Oe),we},me=async()=>{if(await so(1e3),te!==null)return te;const Qe=de("SDP_ENDPOINT_DOMAIN_BACKUP_LIST").map(Ne=>({url:P.proxyServer?"https://".concat(P.proxyServer,"/ap/?url=").concat(Ne+"/api/v3/transpond/webrtc?v=3"):"https://".concat(Ne,"/api/v3/transpond/webrtc?v=3"),areaCode:cm()})),Oe=Z.recordJoinChannelService({endTs:void 0,startTs:Date.now(),status:"pending",service:"chooseServer",urls:Qe.map(Ne=>Ne.url)}),we=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Qe,asyncMapHandler:Ne=>(J.debug("[".concat(P.clientId,"] Connect to backup choose_server:"),Ne.url),kF(Ne,fo.CHOOSE_SERVER,P,U,Z,H,$)),allFailedhandler:Ne=>{throw Z.recordJoinChannelService({endTs:Date.now(),status:"error",errors:Ne},Oe),Ne[0]},promisesCollector:se});return Z.recordJoinChannelService({endTs:Date.now(),status:"success"},Oe),we};try{return te=await lm([ge(),me()]),se.length&&se.forEach(Qe=>Qe.cancel&&typeof Qe.cancel=="function"&&Qe.cancel()),te}catch(Qe){throw Qe[0]}}(t,h,s,c,u)}}const B=await UF(t,s,c,u),Q=B.proxyInfo,T={gatewayInfo:B.gatewayInfo},D=Q.map(O=>({turnServerURL:O.address,tcpport:_==="proxy3"?void 0:O.tcpport?O.tcpport:Bn.tcpport,udpport:_==="proxy4"?void 0:O.udpport?O.udpport:Bn.udpport,username:O.username||Bn.username,password:O.password||Bn.password,forceturn:_!=="proxy4",security:_==="proxy5"}));return t.turnServer={mode:"manual",servers:D},J.debug("[".concat(t.clientId,"] set proxy server: ").concat(t.proxyServer,", mode: ").concat(_)),T}async function ez(t,s,c,u,h){const _=de("ACCOUNT_REGISTER").slice(0,de("AJAX_REQUEST_CONCURRENT"));let B=[];B=s.proxyServer?_.map(T=>"https://".concat(s.proxyServer,"/ap/?url=").concat(T+"/api/v1")):_.map(T=>"https://".concat(T,"/api/v1"));const Q=h==null?void 0:h.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"stringUID",urls:B});try{const T=await async function(D,O,P,U,H){const $=Date.now(),Z={sid:P.sid,opid:10,appid:P.appId,string_uid:O};let te=D[0];const se=await dl(()=>ng(te+"".concat(te.indexOf("?")===-1?"?":"&","action=stringuid"),{data:Z,cancelToken:U,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}}),(ge,me)=>{if(ge.code===0){if(ge.uid<=0||ge.uid>=Math.pow(2,32))throw J.error("Invalid Uint Uid ".concat(O," => ").concat(ge.uid),ge),qt.reqUserAccount(Z.sid,{lts:$,success:!1,serverAddr:te,stringUid:Z.string_uid,uid:ge.uid,errorCode:Ce.INVALID_UINT_UID_FROM_STRING_UID,extend:Z}),new qe(Ce.INVALID_UINT_UID_FROM_STRING_UID);return qt.reqUserAccount(Z.sid,{lts:$,success:!0,serverAddr:te,stringUid:Z.string_uid,uid:ge.uid,errorCode:null,extend:Z}),!1}const Qe=mh(ge.code);return Qe.retry&&(te=D[(me+1)%D.length]),qt.reqUserAccount(Z.sid,{lts:$,success:!1,serverAddr:te,stringUid:Z.string_uid,uid:ge.uid,errorCode:Qe.desc,extend:Z}),Qe.retry},(ge,me)=>ge.code!==Ce.OPERATION_ABORTED&&(qt.reqUserAccount(Z.sid,{lts:$,success:!1,serverAddr:te,stringUid:Z.string_uid,uid:null,errorCode:ge.code,extend:Z}),te=D[(me+1)%D.length],!0),H);if(se.code!==0){const ge=mh(se.code);throw new qe(Ce.UNEXPECTED_RESPONSE,ge.desc)}return se}(B,t,s,c,u);return h==null||h.recordJoinChannelService({status:"success",endTs:Date.now()},Q),T.uid}catch(T){throw h==null||h.recordJoinChannelService({status:"error",endTs:Date.now(),errors:[T]},Q),T}}async function Ice(t,s,c){const u=de("ACCOUNT_REGISTER");let h=[];h=s.proxyServer?u.map(_=>"https://".concat(s.proxyServer,"/ap/?url=").concat(_+"/api/v1")):u.map(_=>"https://".concat(_,"/api/v1"));try{return await Nte({referenceList:h,asyncMapHandler:B=>async function(Q,T,D,O){const P=Date.now(),U={sid:D.sid,opid:10,appid:D.appId,string_uid:T};try{const H=await ng(Q+"".concat(Q.indexOf("?")===-1?"?":"&","action=stringuid"),{data:U,cancelToken:O,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}});if(H.code!==0){const $=mh(H.code);throw new qe(Ce.UNEXPECTED_RESPONSE,"preload sua error:".concat($.desc),$)}if(H.uid<=0||H.uid>=Math.pow(2,32))throw new qe(Ce.INVALID_UINT_UID_FROM_STRING_UID);return{requestTime:P,url:Q,req:U,uid:H.uid,elapse:Date.now()-P}}catch(H){throw H}}(B,t,s,c),closeFn:B=>B.code===Ce.OPERATION_ABORTED||B.code===Ce.UNEXPECTED_RESPONSE&&!B.data.retry})}catch(_){throw _}}async function Cce(t,s,c){const u=de("CDS_AP").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(T=>t.proxyServer?"https://".concat(t.proxyServer,"/ap/?url=").concat(T+"/api/v1"):"https://".concat(T,"/api/v1?action=config")),h=u.map(T=>function(D,O,P,U){const H=Qi(),$={flag:64,cipher_method:0,features:Jh(Jh(Jh(Jh(Jh({install_id:I2(),device:H.name,system:H.os,system_general:navigator.userAgent,vendor:O.appId,version:W1,cname:O.cname,session_id:O.sid,proxyServer:O.proxyServer,sdk_type:ace.WEB_RTC,browser_name:H.name,browser_version:H.version,user_agent:navigator.userAgent,channel_name:O.cname},O.stringUid&&{string_uid:O.stringUid}),O.uid&&{uid:O.uid+""}),H.os&&{os_name:H.os}),H.osVersion&&{os_version:H.osVersion}),{},{detail:""})};return dl(()=>ng(D,{data:$,timeout:1e3,cancelToken:P,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":54}}),void 0,Z=>Z.code!==Ce.OPERATION_ABORTED,U)}(T,t,s,c));let _=null,B=null,Q={};try{_=await lm(h)}catch(T){if(T.code===Ce.OPERATION_ABORTED)throw T;B=T}if(h.forEach(T=>T.cancel()),qt.reportApiInvoke(t.sid,{name:Ti.REQUEST_CONFIG_DISTRIBUTE,options:{error:B,res:_}}).onSuccess(),_&&_.test_tags)try{Q=function(T){if(!T.test_tags)return{};const D=T.test_tags,O=Object.keys(D),P={};return O.forEach(U=>{var H;const $=Ga(H=U.slice(4)).call(H),Z=JSON.parse(D[U]),te=Z[1];P[$]={tag:Z[0]||"",value:te}}),P}(_)}catch{}return Q}async function Lte(t,s){const c=de("WEBCS_DOMAIN").concat(de("WEBCS_DOMAIN_BACKUP_LIST")).map(u=>({url:"https://".concat(u,"/api/v2/transpond/webrtc?v=2"),areaCode:cm(),serviceIds:[fo.CHOOSE_SERVER,fo.CLOUD_PROXY_FALLBACK]}));try{return await Nte({referenceList:c,asyncMapHandler:h=>async function(_,B,Q){let T,D=_.url,O=_.areaCode,P=_.serviceIds;const U=Date.now(),H=ir(ZX(B,O,P),2),$=H[0],Z=H[1];let te=ki.networkState;try{te&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(So.maxRetryTimeout)]),te=ki.networkState;const se=await ng(D,{data:$,cancelToken:Q,headers:{"Content-Type":"multipart/form-data;"}},!0,!0),ge=se.data;T=se.headers.http3==="1"?1:-1,(we=>{const Ne=[];if(we.response_body.forEach(et=>{const st=et.buffer.code;if(et.uri===23&&st===0&&!et.buffer.edges_services)if(et.buffer.flag===4194310)et.buffer.edges_services=[];else{const Xt={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:de("NO_EDGES_RETRY"),csIp:we.detail[502]}),flag:et.buffer.flag};Ne.push(Xt)}if(st!==0){const Xt=mh(st),lr={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,Xt.desc,{desc:Xt.desc,retry:Xt.retry,csIp:we.detail[502]}),flag:et.buffer.flag};et.buffer.flag===4194310?J.warning(lr.error.toString()):Ne.push(lr)}}),Ne.length)throw new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,Ne.map(et=>"flag: ".concat(et.flag,", message: ").concat(et.error.message)).join(" | "),{retry:!!Ne.find(et=>et.error.data.retry),csIp:we.detail[502],desc:[...new Set(Ne.map(et=>{var st;return et==null||(st=et.error)===null||st===void 0||(st=st.data)===null||st===void 0?void 0:st.desc}).filter(et=>!!et))]})})(ge);const Qe=am(ge,fo.CHOOSE_SERVER),Oe=am(ge,fo.CLOUD_PROXY_FALLBACK);return PF(Qe),{gatewayInfo:g9(Qe,D),proxyInfo:Oe,opid:Z,requestTime:U,url:D,isHttp3:T,elapse:Date.now()-U}}catch(se){throw se}}(h,t,s),closeFn:h=>h.code===Ce.OPERATION_ABORTED||h.code===Ce.CAN_NOT_GET_GATEWAY_SERVER&&!h.data.retry})}catch(u){throw u}}async function UF(t,s,c,u,h){const _=de("PROXY_SERVER_TYPE3"),B=(Z,te,se)=>{let ge=se||_;return Array.isArray(ge)&&(ge=te%2==0&&_[1]||_[0]),"https://".concat(ge,"/ap/?url=").concat(Z)};let Q=null;const T=[],D=async()=>{const Z=de(h?"SDP_ENDPOINT_DOMAIN":"WEBCS_DOMAIN").slice(0,de("AJAX_REQUEST_CONCURRENT")).map((ge,me)=>{let Qe;return Qe=t.cloudProxyServer==="disabled"&&t.proxyServer?B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me,t.proxyServer):t.cloudProxyServer==="disabled"||t.cloudProxyServer==="fallback"?"https://".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"):B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me),{url:Qe,areaCode:cm(),serviceIds:[fo.CHOOSE_SERVER,t.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:t.cloudProxyServer==="proxy3"||t.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK]}}),te=u.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:Z.map(ge=>ge.url)}),se=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Z,asyncMapHandler:ge=>(J.debug("[".concat(t.clientId,"] Connect to choose_server:"),ge.url),h?kF(ge,ge.serviceIds,t,h,u,s,c):bte(ge,t,s,c)),allFailedhandler:ge=>{throw u.recordJoinChannelService({endTs:Date.now(),status:"error",errors:ge},te),ge[0]},promisesCollector:T});return u.recordJoinChannelService({endTs:Date.now(),status:"success"},te),se},O=async()=>{if(await so(1e3),Q!==null)return Q;const Z=de(h?"SDP_ENDPOINT_DOMAIN_BACKUP_LIST":"WEBCS_DOMAIN_BACKUP_LIST").map((ge,me)=>{let Qe;return Qe=t.cloudProxyServer==="disabled"&&t.proxyServer?B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me,t.proxyServer):t.cloudProxyServer==="disabled"||t.cloudProxyServer==="fallback"?"https://".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"):B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me),{url:Qe,areaCode:cm(),serviceIds:[fo.CHOOSE_SERVER,t.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:t.cloudProxyServer==="proxy3"||t.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK]}}),te=u.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:Z.map(ge=>ge.url)}),se=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Z,asyncMapHandler:ge=>(J.debug("[".concat(t.clientId,"] Connect to backup choose_server:"),ge.url),h?kF(ge,ge.serviceIds,t,h,u,s,c):bte(ge,t,s,c)),allFailedhandler:ge=>{throw u.recordJoinChannelService({endTs:Date.now(),status:"error",errors:ge},te),ge[0]},promisesCollector:T});return u.recordJoinChannelService({endTs:Date.now(),status:"success"},te),se};let P,U,H;try{var $=await lm([D(),O()]);P=$.gatewayInfo,U=$.proxyInfo,H=$.url}catch(Z){throw Z[0]}if(T.length&&T.forEach(Z=>Z.cancel&&typeof Z.cancel=="function"&&Z.cancel()),!P||!U)throw new qe(Ce.UNEXPECTED_ERROR,"missing gateway or proxy response").print();if(t.apUrl=H,t.cloudProxyServer!=="disabled"&&Array.isArray(_)&&H){const Z=/^https?:\/\/(.+?)(\/.*)?$/.exec(H)[1];Et(_).call(_,Z)&&(t.proxyServer=Z,J.setProxyServer(Z),qt.setProxyServer(Z))}return Q={gatewayInfo:P,proxyInfo:await ate(U,P.uid)},Q}async function pce(t,s,c){const u=de("UAP_AP").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(_=>t.proxyServer?"https://".concat(t.proxyServer,"/ap/?url=").concat(_+"/api/v1?action=uap"):"https://".concat(_,"/api/v1?action=uap")),h=u.map(_=>function(B,Q,T,D){const O={command:"convergeAllocateEdge",sid:Q.sid,appId:Q.appId,token:Q.token,ts:Date.now(),version:W1,cname:Q.cname,uid:Q.uid.toString(),requestId:zX,seq:zX};zX+=1;const P={service_name:"tele_channel",json_body:JSON.stringify(O)};return dl(async()=>{const U=await ng(B,{data:P,cancelToken:T,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":61}});if(U.code!==0){const $=new qe(Ce.UNEXPECTED_RESPONSE,"cross channel ap error, code"+U.code,{retry:!0});throw J.error($.toString()),$}const H=JSON.parse(U.json_body);if(H.code!==200){const $=new qe(Ce.UNEXPECTED_RESPONSE,"cross channel app center error, code: ".concat(H.code,", reason: ").concat(H.reason));throw J.error($.toString()),$}if(!H.servers||H.servers.length===0){const $=new qe(Ce.UNEXPECTED_RESPONSE,"cross channel app center empty server");throw J.error($.toString()),$}return{vid:H.vid,workerToken:H.workerToken,addressList:(de("CHANNEL_MEDIA_RELAY_SERVERS")||H.servers).map($=>"wss://".concat($.address.replace(/\./g,"-"),".").concat(de("WORKER_DOMAIN"),":").concat($.wss))}},void 0,U=>!!(U.code!==Ce.OPERATION_ABORTED&&U.code!==Ce.UNEXPECTED_RESPONSE||U.data&&U.data.retry),D)}(_,t,s,c));try{const _=await lm(h);return h.forEach(B=>B.cancel()),_}catch(_){throw _[0]}}async function fce(t,s,c){let u=null;const h=[],_=async B=>{const Q=de(B?"WEBCS_DOMAIN_BACKUP_LIST":"WEBCS_DOMAIN").map(T=>t.proxyServer?"https://".concat(t.proxyServer,"/ap/?url=").concat(T+"/api/v2/transpond/webrtc?v=2"):"https://".concat(T,"/api/v2/transpond/webrtc?v=2"));return B&&(await so(1e3),u!==null)?u:await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Q,asyncMapHandler:T=>(J.debug("[".concat(t.clientId,"] update ticket, Connect to ").concat(B?"backup":""," choose_server:"),T),function(D,O,P,U){const H=ir(gce(O,[fo.CHOOSE_SERVER]),1)[0];let $=ki.networkState;return dl(async()=>{$&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(U&&U.maxRetryTimeout||So.maxRetryTimeout)]),$=ki.networkState;const Z=await ng(D,{data:H,cancelToken:P,headers:{"Content-Type":"multipart/form-data;"}},!0);return dce(Z,D)},()=>!1,Z=>Z.code!==Ce.OPERATION_ABORTED&&(Z.code===Ce.UPDATE_TICKET_FAILED?Z.data.retry:(J.warning("[".concat(O.clientId,"] update ticket network error, retry"),Z),!0)),U)}(T,t,s,c)),allFailedhandler:T=>{throw T[0]},promisesCollector:h})};try{return u=await lm([_(!1),_(!0)]),h.length&&h.forEach(B=>B.cancel&&typeof B.cancel=="function"&&B.cancel()),u}catch(B){throw B[0]}}function Mte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function tz(t){for(var s=1;s{this.updateConfigDistribute()},de("CONFIG_DISTRIBUTE_INTERVAL")))}stopGetConfigDistribute(){this.interval&&clearInterval(this.interval),this.interval=void 0,this.joinInfo=void 0,this.cancelToken=void 0,this.configs=void 0,this.limit_bitrate=void 0}async awaitConfigDistributeComplete(){this.mutex.isLocked&&(await this.mutex.lock())()}async updateConfigDistribute(){if(this.mutableParamsRead||(this.mutableParamsRead=!0,qt.reportApiInvoke(null,{options:void 0,name:Ti.LOAD_CONFIG_FROM_LOCALSTORAGE,tag:vn.TRACER}).onSuccess(JSON.stringify($e))),!this.joinInfo||!this.cancelToken||!this.retryConfig)return void J.debug("[config-distribute] get config distribute interrupted have no joininfo");let s;const c=await this.mutex.lock();try{s=await Cce(this.joinInfo,this.cancelToken,this.retryConfig),J.debug("[config-distribute] get config distribute",JSON.stringify(s));const u=function(h){var _;const B=x1(_=Object.keys(h).filter(D=>/^webrtc_ng_global_parameter/.test(D))).call(_);for(let D=0;DD;O--){const P=B[O],U=h[P].value;if(typeof U.__priority=="number"){const H=U.__priority,$=B[O-1],Z=h[$].value;if(typeof Z.__priority=="number"){if(!(H>Z.__priority))continue;{const te=P;B[O]=B[O-1],B[O-1]=te}}else{const te=P;B[O]=B[O-1],B[O-1]=te}}}const Q=Date.now(),T={};return B.forEach(D=>{const O=h[D].value.__expires;O&&O<=Q||(T[D]=h[D])}),T}(s);this.cacheGlobalParameterConfig(u),this.store.hasStartJoinChannel||(this.store.isABTestSuccess=!0),this.configs=u}catch(u){const h=new qe(Ce.NETWORK_RESPONSE_ERROR,u);J.warning("[config-distribute] ".concat(h.toString()))}finally{c()}}getBitrateLimit(){return this.limit_bitrate||void 0}handleBitrateLimit(s){_N(s)&&(this.limit_bitrate?this.limit_bitrate&&this.limit_bitrate.id!==s.id&&this.emit(xc.UPDATE_BITRATE_LIMIT,s):this.emit(xc.UPDATE_BITRATE_LIMIT,s))}getLowStreamConfigDistribute(){return this.limit_bitrate&&tz({},this.limit_bitrate.low_stream_uplink)}handleABTestConfigDistribute(s){try{const c={},u=Object.keys(s),h=[];u.forEach(_=>{const B=s[_].value;c[_]=B;const Q=B.__id;if(Q&&this.configCache[_]&&this.configCache[_].__id===Q)return;const T=B.__type,D=s[_].value,O=s[_].tag;let P=0;T?T===Li.REALTIME&&(P=1):Object.keys(D).some(U=>Object.prototype.hasOwnProperty.call(Ta,U)||!M2()&&Object.prototype.hasOwnProperty.call(XA,U)?(P=1,!0):void 0),h.push({tag:O,isApplied:P,feature:_,params:JSON.stringify(B)})}),h.forEach(_=>{let B=_.tag,Q=_.feature,T=_.params,D=_.isApplied;this.store.sessionId&&qt.abTest(this.store.sessionId,{intSucc:1,isApplied:D,tag:B,feature:Q,params:T,cid:this.store.cid,uid:this.store.intUid})}),this.configCache=c}catch(c){J.debug("handleABTestConfigDistribute error",c)}}cacheGlobalParameterConfig(s){const c=function(h){const _={};return Object.keys(h).forEach(B=>{const Q=h[B].value,T=Q.__expires,D=Q.__type;Object.keys(Q).forEach(O=>{O==="__id"||O==="__type"||O==="__priority"||O==="__expires"||Object.prototype.hasOwnProperty.call(_,O)||(_[O]=tz(tz({value:Q[O]},T&&{expires:T}),D&&{type:D}))})}),_}(s);try{var u;const h=(u=c.LIMIT_BITRATE)===null||u===void 0?void 0:u.value;if(delete c.LIMIT_BITRATE,h&&_N(h)&&this.handleBitrateLimit(h),this.limit_bitrate=h,this.handleGlobalParameterConfig(c),this.handleABTestConfigDistribute(s),function(Q){try{const T=Date.now();Object.keys(Q).forEach(D=>{const O=Q[D],P=O.value,U=O.type,H=O.expires;H&&H<=T||((U===Li.REALTIME||Object.prototype.hasOwnProperty.call(Ta,D))&&($e[D]=P,Vi[D]=P,J.debug("Update realtime parameters from config distribute",D,P)),U||M2()||!Object.prototype.hasOwnProperty.call(XA,D)||($e[D]=P,Vi[D]=P,J.debug("Update gateway parameters from config distribute",D,P)))})}catch(T){J.error("Error update config immediately: ".concat(Q),T.message)}}(c),function(Q){try{var T;if(!de("ENABLE_CONFIG_RESTORE"))return!1;const D=R4(Q),O=window.localStorage.getItem(xf);if(!O)return!1;const P=JSON.parse(O),U=de("BLOCKED_CONFIG_MAX_TIME");return Date.now()-P.timestamp>U?(ty(),!1):Et(T=P.configHashes).call(T,D)}catch(D){return J.debug("[error] ".concat(ul," error checking blocked config:"),D),!1}}(c))return J.debug("[warning] [config-distribute] blocked config detected and skipped"),void qt.reportAlarm(this.store.sessionId||null,{type:m4.CONFIG_DISTRIBUTE,status:_4.RECOVER,message:"Blocked config detected and skipped"});(function(Q){try{const T=R4(Q),D=Ff();if(D.currentConfigHash&&D.currentConfigHash===T)return y4({currentConfigHash:T,configVerified:!0}),ey(),ty(),void J.debug("".concat(ul," config verified as safe, skip further checks"));y4({currentConfigHash:T,configVerified:!1}),ey(),ty()}catch(T){J.debug("[error] ".concat(ul," error on config applied:"),T)}})(c);const _=JSON.stringify(c),B=window.btoa(_);window.localStorage.setItem("websdk_ng_global_parameter",B),J.debug("Caching global parameters ".concat(_))}catch(h){J.error("Error caching global parameters:",h.message)}}handleGlobalParameterConfig(s){try{const c=Date.now();Object.keys(s).forEach(u=>{switch(u){case"CLIENT_ROLE_OPTIONS":if(Object.prototype.hasOwnProperty.call(Vi,u)){const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;Sr(Vi[u],B)||($e[u]=B,Vi[u]=B,this.emit(xc.UPDATE_CLIENT_ROLE_OPTIONS,B),J.debug("Updating client role options: ".concat(JSON.stringify(B))))}break;case"REMOTE_VIDEO_STREAM_TYPE":if(Object.prototype.hasOwnProperty.call(Vi,u)){var h;const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;typeof B=="number"&&Et(h=[0,1,4,5,6,7,8,9]).call(h,B)&&($e[u]={value:B},Vi[u]=B,this.emit(xc.UPDATE_REMOTE_VIDEO_STREAM_TYPE,B),J.debug("Updating client remote stream type: ".concat(JSON.stringify(B))))}break;case"ENABLE_FORCE_HLS":if(Object.prototype.hasOwnProperty.call(Vi,u)){const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;Sr(Vi[u],B)||($e[u]=B,Vi[u]=B,this.emit(xc.FALLBACK_TO_HLS,B),J.debug("Updating enable force hls: ".concat(JSON.stringify(B))))}break;case"VOS_CONFIGURE":if(Object.prototype.hasOwnProperty.call(Vi,u)){const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;Sr(Vi[u],B)||($e[u]=B,Vi[u]=B,this.emit(xc.UPDATE_VOS_CONFIGURE,B),J.debug("Updating vos configure: ".concat(JSON.stringify(B))))}}})}catch(c){J.error("Error handling global parameter config:",c.message)}}}class mce extends Cn{constructor(){super(...arguments),ae(this,"resultStorage",new Map)}setLocalAudioStats(s,c,u){this.record("AUDIO_INPUT_LEVEL_TOO_LOW",s,this.checkAudioInputLevel(u,c)),this.record("SEND_AUDIO_BITRATE_TOO_LOW",s,this.checkSendAudioBitrate(u,c))}setLocalVideoStats(s,c,u){this.record("SEND_VIDEO_BITRATE_TOO_LOW",s,this.checkSendVideoBitrate(u,c)),this.record("FRAMERATE_INPUT_TOO_LOW",s,this.checkFramerateInput(u,c)),this.record("FRAMERATE_SENT_TOO_LOW",s,this.checkFramerateSent(u)),!c.muted&&this.record("VIDEO_ENCODE_FAILED",s,this.checResolutionSent(u))}setRemoteAudioStats(s,c){const u=s.getUserId();this.record("AUDIO_OUTPUT_LEVEL_TOO_LOW",u,this.checkAudioOutputLevel(c))}setRemoteVideoStats(s,c){const u=s.getUserId();this.record("RECV_VIDEO_DECODE_FAILED",u,this.checkVideoDecode(c))}record(s,c,u){if(de("STATS_UPDATE_INTERVAL")>500)return;this.resultStorage.has(s)||this.resultStorage.set(s,{result:[],isPrevNormal:!0});const h=this.resultStorage.get(s);if(!h)return;h.result.push(u);const _=s==="VIDEO_ENCODE_FAILED"?de("ENCODE_EXCEPTION_TIMES"):5;if(h.result.length>=_){var B;const Q=Et(B=h.result).call(B,!0);h.isPrevNormal&&!Q&&this.emit("exception",rz[s],s,c),!h.isPrevNormal&&Q&&this.emit("exception",rz[s]+2e3,s+"_RECOVER",c),h.isPrevNormal=Q,h.result=[]}}checkAudioOutputLevel(s){return!(s.receiveBitrate>0&&s.receiveLevel===0)}checkAudioInputLevel(s,c){return c instanceof ia&&!c.isActive||!!c.muted||s.sendVolumeLevel!==0}checkFramerateInput(s,c){let u=null;c._encoderConfig&&c._encoderConfig.frameRate&&(u=dc(c._encoderConfig.frameRate));const h=s.captureFrameRate;return!u||!h||!(u>10&&h<5||u<10&&u>=5&&h<=1)}checkFramerateSent(s){return!(s.captureFrameRate&&s.sendFrameRate&&s.captureFrameRate>5&&s.sendFrameRate<=1)}checResolutionSent(s){var c;return!(!s.codecType||Et(c=de("ENCODE_EXCEPTION_VALIDATE_CODEC")).call(c,s.codecType.toLocaleLowerCase()))||!s.captureFrameRate||s.sendFrameRate!==0||s.sendResolutionWidth!==0||s.sendResolutionHeight!==0}checkSendVideoBitrate(s,c){return!!c.muted||s.sendBitrate!==0}checkSendAudioBitrate(s,c){return c instanceof ia&&!c.isActive||!!c.muted||s.sendBitrate!==0}checkVideoDecode(s){return s.receiveBitrate===0||s.decodeFrameRate!==0}}const rz={FRAMERATE_INPUT_TOO_LOW:1001,FRAMERATE_SENT_TOO_LOW:1002,SEND_VIDEO_BITRATE_TOO_LOW:1003,RECV_VIDEO_DECODE_FAILED:1005,AUDIO_INPUT_LEVEL_TOO_LOW:2001,AUDIO_OUTPUT_LEVEL_TOO_LOW:2002,SEND_AUDIO_BITRATE_TOO_LOW:2003,VIDEO_ENCODE_FAILED:2004},_A=new class{markSubscribeStart(t,s){performance.mark("agora-web-sdk/".concat(t,"/subscribe-").concat(s))}markPublishStart(t,s){performance.mark("agora-web-sdk/".concat(t,"/publish-").concat(s))}measureFromSubscribeStart(t,s){const c=performance.getEntriesByName("agora-web-sdk/".concat(t,"/subscribe-").concat(s));if(c.length>0){const u=c[c.length-1];return Math.round(performance.now()-u.startTime)}return 0}measureFromPublishStart(t,s){const c=performance.getEntriesByName("agora-web-sdk/".concat(t,"/publish-").concat(s));if(c.length>0){const u=c[c.length-1];return Math.round(performance.now()-u.startTime)}return 0}};function kte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function um(t){for(var s=1;s{this.p2pChannel&&(this.updateRemoteStats(this.p2pChannel),this.updateLocalStats(this.p2pChannel))}),this.store=s,this.exceptionMonitor=new mce,this.exceptionMonitor.on("exception",(c,u,h)=>{this.onStatsException&&this.onStatsException(c,u,h)})}startUpdateStats(){this.updateStatsInterval||(this.updateStatsInterval=window.setInterval(this.updateStats,1e3))}stopUpdateStats(){this.updateStatsInterval&&(window.clearInterval(this.updateStatsInterval),this.updateStatsInterval=void 0)}reset(){this.localStats=new Map,this.remoteStats=new Map,this.trafficStats=void 0,this.trafficStatsPeerList=[],this.uplinkStats=void 0}getLocalAudioTrackStats(){return this.localStats.get(Qt.LocalAudioTrack)||um({},oy)}getLocalVideoTrackStats(){return this.localStats.get(Qt.LocalVideoTrack)||um({},sy)}getRemoteAudioTrackStats(s){const c=(_,B)=>{if(!this.trafficStats)return B;const Q=this.trafficStats.peer_delay.find(T=>T.peer_uid===_);return Q&&(B.publishDuration=Q.B_ppad+(Date.now()-this.trafficStats.timestamp)),B},u={};if(s){var h;const _=(h=this.remoteStats.get(s))===null||h===void 0?void 0:h.audioStats;_&&(u[s]=c(s,_))}else Array.from(this.remoteStats.entries()).forEach(_=>{let B=ir(_,2),Q=B[0],T=B[1].audioStats;T&&(u[Q]=c(Q,T))});return u}getRemoteNetworkQualityStats(s){const c={};if(s){var u;const h=(u=this.remoteStats.get(s))===null||u===void 0?void 0:u.networkStats;h&&(c[s]=h)}else Array.from(this.remoteStats.entries()).forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1].networkStats;Q&&(c[B]=Q)});return c}getNetworkQuality(){let s=0,c=0;return this.trafficStats&&(s=TF(this.trafficStats.B_unq),c=TF(this.trafficStats.B_dnq)),{uplinkNetworkQuality:s,downlinkNetworkQuality:c}}getRemoteVideoTrackStats(s){const c=(_,B)=>{if(!this.trafficStats)return B;const Q=this.trafficStats.peer_delay.find(T=>T.peer_uid===_);return Q&&(B.publishDuration=Q.B_ppvd+(Date.now()-this.trafficStats.timestamp)),B},u={};if(s){var h;const _=(h=this.remoteStats.get(s))===null||h===void 0?void 0:h.videoStats;_&&(u[s]=c(s,_))}else Array.from(this.remoteStats.entries()).forEach(_=>{let B=ir(_,2),Q=B[0],T=B[1].videoStats;T&&(u[Q]=c(Q,T))});return u}getRTCStats(){let s=0,c=0,u=0,h=0;const _=this.localStats.get(Qt.LocalAudioTrack);_&&(s+=_.sendBytes,c+=_.sendBitrate);const B=this.localStats.get(Qt.LocalVideoTrack);B&&(s+=B.sendBytes,c+=B.sendBitrate);const Q=this.localStats.get(Qt.LocalVideoLowTrack);Q&&(s+=Q.sendBytes,c+=Q.sendBitrate),this.remoteStats.forEach(D=>{let O=D.audioStats,P=D.videoStats;O&&(u+=O.receiveBytes,h+=O.receiveBitrate),P&&(u+=P.receiveBytes,h+=P.receiveBitrate)});let T=1;return this.trafficStats&&(T+=this.trafficStats.peer_delay.length),{Duration:0,UserCount:T,SendBitrate:c,SendBytes:s,RecvBytes:u,RecvBitrate:h,OutgoingAvailableBandwidth:this.uplinkStats?this.uplinkStats.B_uab/1e3:0,RTT:this.trafficStats?2*this.trafficStats.B_acd:0}}addLocalStats(s){this.localStats.set(s,void 0)}removeLocalStats(s){s?this.localStats.delete(s):this.localStats.clear()}addRemoteStats(s){this.remoteStats.set(s,{})}removeRemoteStats(s){s?this.remoteStats.delete(s):this.remoteStats.clear()}addP2PChannel(s){this.p2pChannel=s}updateTrafficStats(s){s.peer_delay=s.peer_delay.filter(c=>c.B_ppad!==void 0||c.B_ppvd!==void 0),s.peer_delay.filter(c=>this.trafficStatsPeerList.indexOf(c.peer_uid)===-1).forEach(c=>{var u;const h=(u=this.p2pChannel)===null||u===void 0?void 0:u.getRemoteMedia(c.peer_uid),_=h!=null&&h.videoSSRC?_A.measureFromSubscribeStart(this.store.clientId,h.videoSSRC):0,B=h!=null&&h.audioSSRC?_A.measureFromSubscribeStart(this.store.clientId,h.audioSSRC):0;c.B_ppad!==void 0&&c.B_ppvd!==void 0&&(this.onUploadPublishDuration&&this.onUploadPublishDuration(c.peer_uid,c.B_ppad,c.B_ppvd,_>B?_:B),this.trafficStatsPeerList.push(c.peer_uid))}),this.trafficStats=s}updateUplinkStats(s){this.uplinkStats&&this.uplinkStats.B_fir!==s.B_fir&&J.debug("[".concat(this.store.clientId,"]: Period fir changes to ").concat(s.B_fir)),this.uplinkStats=s}static isRemoteVideoFreeze(s,c,u){if(!s)return!1;const h=!!u&&c.framesDecodeFreezeTime>u.framesDecodeFreezeTime,_=!u||c.framesDecodeCount>u.framesDecodeCount;return h||!_}static isRemoteAudioFreeze(s){return!!s&&s._isFreeze()}isLocalVideoFreeze(s){return!(!s.inputFrame||!s.sentFrame)&&s.inputFrame.frameRate>5&&s.sentFrame.frameRate<3}updateLocalStats(s){Array.from(this.localStats.entries()).forEach(c=>{let u=ir(c,2),h=u[0],_=u[1];switch(h){case Qt.LocalVideoTrack:case Qt.LocalVideoLowTrack:{const T=_,D=um({},sy),O=s.getStats(),P=s.getLocalMedia(h);if(O){const U=O.videoSend.find(H=>H.ssrc===(P==null?void 0:P.ssrcs[0].ssrcId));if(U){const H=s.getLocalVideoSize(),$=s.getEncoderConfig(Qt.LocalVideoTrack);var B;(U.codec==="H264"||U.codec==="H265"||U.codec==="VP8"||U.codec==="VP9"||U.codec==="AV1X"||U.codec==="AV1")&&(D.codecType=U.codec,(T==null?void 0:T.codecType)!==U.codec&&((B=this.onVideoCodecChanged)===null||B===void 0||B.call(this,U.codec.toLocaleLowerCase()))),D.sendBytes=U.bytes,D.sendBitrate=T?8*Math.max(0,D.sendBytes-T.sendBytes):0,U.inputFrame?(D.captureFrameRate=U.inputFrame.frameRate,D.captureResolutionHeight=U.inputFrame.height,D.captureResolutionWidth=U.inputFrame.width):H&&(D.captureResolutionWidth=H.width,D.captureResolutionHeight=H.height),U.sentFrame?(D.sendFrameRate=U.sentFrame.frameRate,D.sendResolutionHeight=U.sentFrame.height,D.sendResolutionWidth=U.sentFrame.width):H&&(D.sendResolutionWidth=H.width,D.sendResolutionHeight=H.height),U.avgEncodeMs&&(D.encodeDelay=U.avgEncodeMs),$&&$.bitrateMax?D.targetSendBitrate=1e3*$.bitrateMax:U.targetBitrate&&(D.targetSendBitrate=U.targetBitrate),D.sendPackets=U.packets,D.sendPacketsLost=U.packetsLost,D.sendJitterMs=U.jitterMs,D.sendRttMs=U.rttMs,D.totalDuration=T?T.totalDuration+1:1,D.totalFreezeTime=T?T.totalFreezeTime:0,this.isLocalVideoFreeze(U)&&(D.totalFreezeTime+=1),U.scalabilityMode&&this.scalabilityMode!==U.scalabilityMode&&(J.debug("[".concat(this.store.clientId,"]: The scalabilityMode of the video sending stream is ").concat(U.scalabilityMode)),this.scalabilityMode=U.scalabilityMode)}this.trafficStats&&(D.currentPacketLossRate=(this.trafficStats.B_pvlr4||0)/100)}var Q;this.localStats.set(h,D),((T==null?void 0:T.sendResolutionWidth)!==D.sendResolutionWidth||(T==null?void 0:T.sendResolutionHeight)!==D.sendResolutionHeight)&&((Q=this.onStatsChanged)===null||Q===void 0||Q.call(this,"resolution",{width:D.sendResolutionWidth,height:D.sendResolutionHeight})),D&&P&&this.exceptionMonitor.setLocalVideoStats(this.store.uid,P.track,D);break}case Qt.LocalAudioTrack:{const T=_,D=um({},oy),O=s.getStats(),P=s.getLocalMedia(h);if(O){const U=O.audioSend.find(H=>H.ssrc===(P==null?void 0:P.ssrcs[0].ssrcId));if(U){if(U.codec!=="opus"&&U.codec!=="aac"&&U.codec!=="PCMU"&&U.codec!=="PCMA"&&U.codec!=="G722"||(D.codecType=U.codec),U.inputLevel)D.sendVolumeLevel=Math.round(32767*U.inputLevel);else{const H=s.getLocalAudioVolume();H&&(D.sendVolumeLevel=Math.round(32767*H))}D.sendBytes=U.bytes,D.sendPackets=U.packets,D.sendPacketsLost=U.packetsLost,D.sendJitterMs=U.jitterMs,D.sendRttMs=U.rttMs,D.sendBitrate=T?8*Math.max(0,D.sendBytes-T.sendBytes):0}}this.trafficStats&&(D.currentPacketLossRate=(this.trafficStats.B_palr4||0)/100),this.localStats.set(Qt.LocalAudioTrack,D),D&&P&&this.exceptionMonitor.setLocalAudioStats(this.store.uid,P.track,D);break}}})}updateRemoteStats(s){Array.from(this.remoteStats.entries()).forEach(c=>{var u,h;let _=ir(c,2),B=_[0],Q=_[1],T=Q.videoStats;const D=Q.audioStats,O=T,P=Q.videoPcStats,U=um({},k4),H=um({},P4),$=um({},EU),Z=s.getRemoteMedia(B),te=Z.audioTrack,se=Z.videoTrack,ge=Z.audioSSRC,me=Z.videoSSRC;let Qe;Qe=this.store.useP2P?s.getStats(!0):s.getStats();const Oe=(u=Qe)===null||u===void 0?void 0:u.audioRecv.find(st=>st.ssrc===ge),we=(h=Qe)===null||h===void 0?void 0:h.videoRecv.find(st=>st.ssrc===me),Ne=this.trafficStats&&this.trafficStats.peer_delay.find(st=>st.peer_uid===B);if(Oe&&(Oe.codec!=="opus"&&Oe.codec!=="aac"&&Oe.codec!=="PCMU"&&Oe.codec!=="PCMA"&&Oe.codec!=="G722"||(U.codecType=Oe.codec),Oe.outputLevel?U.receiveLevel=Math.round(32767*Oe.outputLevel):te&&(U.receiveLevel=Math.round(32767*te.getVolumeLevel())),U.receiveBytes=Oe.bytes,U.receivePackets=Oe.packets,U.receivePacketsLost=Oe.packetsLost,U.receivePacketsDiscarded=Oe.packetsDiscarded,U.packetLossRate=U.receivePacketsLost/(U.receivePackets+U.receivePacketsLost),U.receiveBitrate=D?8*Math.max(0,U.receiveBytes-D.receiveBytes):0,U.totalDuration=D?D.totalDuration+1:1,U.totalFreezeTime=D?D.totalFreezeTime:0,U.freezeRate=U.totalFreezeTime/U.totalDuration,U.receiveDelay=Oe.jitterBufferMs,U.totalDuration>10&&m9.isRemoteAudioFreeze(te)&&(U.totalFreezeTime+=1)),we){we.codec!=="H264"&&we.codec!=="H265"&&we.codec!=="VP8"&&we.codec!=="VP9"&&we.codec!=="AV1X"&&we.codec!=="AV1"||(H.codecType=we.codec),H.receiveBytes=we.bytes,H.receiveBitrate=O?8*Math.max(0,H.receiveBytes-O.receiveBytes):0,H.decodeFrameRate=we.decodeFrameRate<0?0:we.decodeFrameRate,H.renderFrameRate=we.decodeFrameRate<0?0:we.decodeFrameRate,we.outputFrame&&(H.renderFrameRate=we.outputFrame.frameRate),we.receivedFrame?(H.receiveFrameRate=we.receivedFrame.frameRate,H.receiveResolutionHeight=we.receivedFrame.height,H.receiveResolutionWidth=we.receivedFrame.width):se&&(H.receiveResolutionHeight=se._videoHeight||0,H.receiveResolutionWidth=se._videoWidth||0),we.framesRateFirefox!==void 0&&(H.receiveFrameRate=Math.round(we.framesRateFirefox)),H.receivePackets=we.packets,H.receivePacketsLost=we.packetsLost,H.packetLossRate=H.receivePacketsLost/(H.receivePackets+H.receivePacketsLost),H.receiveDelay=we.jitterBufferMs||0;const st=!!me&&s.getRemoteVideoIsReady(me),Xt=O?O.totalFreezeTime:0,lr=O?O.totalDuration:0;var et;H.totalDuration=O?O.totalDuration+1:1,de("REMOTE_VIDEO_FREEZE_TIME_VERSION")===1?se&&st&&se._player&&(H.totalFreezeTime=se._player.totalFreezeTime/1e3):(H.totalFreezeTime=(et=we.totalFreezesDuration)!==null&&et!==void 0?et:Xt||0,we.totalFreezesDuration===void 0&&se&&st&&m9.isRemoteVideoFreeze(se,we,P)&&(H.totalFreezeTime+=1)),H.freezeRate=Math.max(0,Math.min((H.totalFreezeTime-Xt)/(H.totalDuration-lr),1))}Ne&&(U.end2EndDelay=Ne.B_ad,H.end2EndDelay=Ne.B_vd,U.transportDelay=Ne.B_ed,H.transportDelay=Ne.B_ed,U.currentPacketLossRate=Ne.B_ealr4/100,H.currentPacketLossRate=Ne.B_evlr4/100,$.uplinkNetworkQuality=Ne.B_punq?Ne.B_punq:0,$.downlinkNetworkQuality=Ne.B_pdnq?Ne.B_pdnq:0),this.remoteStats.set(B,{audioStats:U,videoStats:H,videoPcStats:we,networkStats:$}),te&&this.exceptionMonitor.setRemoteAudioStats(te,U),se&&this.exceptionMonitor.setRemoteVideoStats(se,H)})}}class Pte{constructor(){ae(this,"destChannelMediaInfos",new Map),ae(this,"srcChannelMediaInfo",void 0)}setSrcChannelInfo(s){Fy(s),this.srcChannelMediaInfo=s}addDestChannelInfo(s){Fy(s),this.destChannelMediaInfos.set(s.channelName,s)}removeDestChannelInfo(s){fl(s),this.destChannelMediaInfos.delete(s)}getSrcChannelMediaInfo(){return this.srcChannelMediaInfo}getDestChannelMediaInfo(){return this.destChannelMediaInfos}}function Ute(t){if(!(t instanceof Pte))return new qe(Ce.INVALID_PARAMS,"Config should be instance of [ChannelMediaRelayConfiguration]").throw();const s=t.getSrcChannelMediaInfo(),c=t.getDestChannelMediaInfo();if(!s)return new qe(Ce.INVALID_PARAMS,"srcChannelMediaInfo should not be empty").throw();if(c.size===0)return new qe(Ce.INVALID_PARAMS,"destChannelMediaInfo should not be empty").throw()}class vp{get hasVideo(){return this._video_enabled_&&!this._video_muted_&&this._video_added_}get hasAudio(){return this._audio_enabled_&&!this._audio_muted_&&this._audio_added_}get audioTrack(){if(this.hasAudio||this._audio_pre_subscribed)return this._audioTrack}get videoTrack(){if(this.hasVideo||this._video_pre_subscribed)return this._videoTrack}get dataChannels(){return this._dataChannels}constructor(s,c){ae(this,"uid",void 0),ae(this,"_uintid",void 0),ae(this,"_trust_in_room_",!0),ae(this,"_trust_audio_enabled_state_",!0),ae(this,"_trust_video_enabled_state_",!0),ae(this,"_trust_audio_mute_state_",!0),ae(this,"_trust_video_mute_state_",!0),ae(this,"_audio_muted_",!1),ae(this,"_video_muted_",!1),ae(this,"_audio_enabled_",!0),ae(this,"_video_enabled_",!0),ae(this,"_audio_added_",!1),ae(this,"_video_added_",!1),ae(this,"_is_pre_created",!1),ae(this,"_video_pre_subscribed",!1),ae(this,"_audio_pre_subscribed",!1),ae(this,"_trust_video_stream_added_state_",!0),ae(this,"_trust_audio_stream_added_state_",!0),ae(this,"_audioTrack",void 0),ae(this,"_videoTrack",void 0),ae(this,"_dataChannels",[]),ae(this,"_audioSSRC",void 0),ae(this,"_videoSSRC",void 0),ae(this,"_audioOrtc",void 0),ae(this,"_videoOrtc",void 0),ae(this,"_cname",void 0),ae(this,"_rtxSsrcId",void 0),ae(this,"_videoMid",void 0),ae(this,"_audioMid",void 0),this.uid=s,this._uintid=c}}function xte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function iz(t){for(var s=1;s`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 2 +a=msid-semantic: WMS +a=ice-lite`.concat(t?` +a=extmap-allow-mixed`:"",` +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +m=application 9 UDP/DTLS/SCTP webrtc-datachannel +c=IN IP4 127.0.0.1 +a=mid:2 +`),xF="9",nz=2e4,FF=4e4;let Fte=class{get localCapabilities(){return go(this._localCapabilities)}get rtpCapabilities(){return go(this._rtpCapabilities)}get candidates(){return go(this._candidates)}get iceParameters(){return go(this._iceParameters)}get dtlsParameters(){return go(this._dtlsParameters)}constructor(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1],c=arguments.length>2&&arguments[2]!==void 0&&arguments[2],u=arguments.length>3&&arguments[3]!==void 0&&arguments[3];ae(this,"sessionDesc",void 0),ae(this,"_localCapabilities",void 0),ae(this,"_rtpCapabilities",void 0),ae(this,"_candidates",void 0),ae(this,"_originCandidates",void 0),ae(this,"_iceParameters",void 0),ae(this,"_isUseExtmapAllowMixed",void 0),ae(this,"_isUseLocalCodecs",void 0),ae(this,"_isUseDataChannel",void 0),ae(this,"_dtlsParameters",void 0),ae(this,"setup",void 0),ae(this,"currentMidIndex",void 0),ae(this,"cname",void 0),ae(this,"useLocalCodecsMids",[]),ae(this,"preloadSsrcs",[]),ae(this,"firefoxSsrcMidMap",new Map),this._isUseExtmapAllowMixed=s,this._isUseLocalCodecs=c,this._isUseDataChannel=u;const h=t=go(t),_=h.iceParameters,B=h.dtlsParameters,Q=h.candidates,T=h.rtpCapabilities,D=h.setup,O=h.localCapabilities,P=h.cname;this._rtpCapabilities=T,this._candidates=Q,this._originCandidates=go(Q),this._iceParameters=_,this._dtlsParameters=B,this._localCapabilities=O,this.setup=D,this.cname=P;var U=ir(this.updateRemoteRTPCapabilities(T),1);this.sessionDesc=U[0],this.currentMidIndex=this.sessionDesc.mediaDescriptions.length-1}checkPreloadSsrcs(t){return t.length===this.preloadSsrcs.length&&t.every(s=>{var c;return Et(c=this.preloadSsrcs).call(c,s)})}preloadRemoteMedia(t){let s=0;const c=[],u=[];for(;t>0;){const h=[iz({ssrcId:FF+s},de("USE_SUB_RTX")?{rtx:FF+s+1}:{})],_="".concat(FF+s,"_").concat(nz+s),B=I9(h,this.cname,de("SYNC_GROUP")?_:void 0),Q=B.ssrcs,T=B.ssrcGroups,D=this.preCreateOrRecycleSendMedia("video",Q,T,void 0),O=[{ssrcId:nz+s}],P="".concat(FF+s,"_").concat(nz+s),U=I9(O,this.cname,de("SYNC_GROUP")?P:void 0),H=U.ssrcs,$=U.ssrcGroups,Z=this.preCreateOrRecycleSendMedia("audio",H,$,void 0);t--,s+=2,c.push(D,Z),u.push(Q[0].ssrcId,H[0].ssrcId)}return this.useLocalCodecsMids.push(...c),this.preloadSsrcs=u,{mids:c,preSSRCs:u,isAvailable:!0}}preCreateOrRecycleSendMedia(t,s,c,u){const h=this.rtpCapabilities.send.videoCodecs,_=this._isUseLocalCodecs||h.length===0?this.localCapabilities.recv:this.rtpCapabilities.send;J.debug("create or recycle send media without remote rtp capabilities, ssrcs ",s[0].ssrcId);const B=t===rr.VIDEO?_.videoCodecs:_.audioCodecs,Q=t===rr.VIDEO?_.videoExtensions:_.audioExtensions;this.currentMidIndex+=1;const T="".concat(this.currentMidIndex);let D={media:{mediaType:t,port:xF,protos:["UDP","TLS","RTP","SAVPF"],fmts:B.map(O=>O.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:Q,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:c,rtcpFeedbackWildcards:[],payloads:B,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(T)}};return D=this.mungSendMediaDesc(D,u),this.sessionDesc.mediaDescriptions.push(D),this.updateBundleMids(),T}toString(){return X1(this.sessionDesc)}send(t,s,c,u){const h=I9(s,this.cname,de("SYNC_GROUP")?c:void 0),_=h.ssrcs,B=h.ssrcGroups,Q=this.findPreloadMediaDesc(_);if(Q){if(Ln()&&this.firefoxSsrcMidMap.set(_[0].ssrcId,Q.attributes.mid),u&&(u.twcc||u.remb)){const T=this.sessionDesc.mediaDescriptions.indexOf(Q);return this.sessionDesc.mediaDescriptions[T]=this.mungSendMediaDesc(Q,u),{mid:Q.attributes.mid,needExchangeSDP:!0}}return{mid:Q.attributes.mid,needExchangeSDP:!1}}{const T=this.findAvailableMediaIndex(t,_);let D;return T===-1||T===1&&(Zs()||function(){const O=Qi();return!(O.name!==Fi.CHROME||!O.osVersion)&&Number(O.version)<=90}()||al(143)||wu(143)||de("RESERVE_MID_1_MLINE")||de("ENABLE_ENCODED_TRANSFORM")&&DA())||T===0&&!function(O){const P=Qi();return!(P.name!==Fi.FIREFOX||!P.osVersion)&&Number(P.version)===O}(138)&&de("USE_SUB_RTX")||t4()?(D=this.createOrRecycleSendMedia(t,_,B,"sendonly",u),this.updateBundleMids()):(D=go(this.sessionDesc.mediaDescriptions[T]),D.attributes.direction="sendonly",D.attributes.ssrcs=_,D.attributes.ssrcGroups=B,this.sessionDesc.mediaDescriptions[T]=this.mungSendMediaDesc(D,u)),Ln()&&this.firefoxSsrcMidMap.set(_[0].ssrcId,D.attributes.mid),{mid:D.attributes.mid,needExchangeSDP:!0}}}sendDataChannel(){const t=this.createOrRecycleDataChannel(),s=t.mediaDesc,c=t.needExchangeSDP;return this.updateBundleMids(),{mid:s.attributes.mid,needExchangeSDP:c}}batchSend(t){const s=t.map(h=>{let _=h.kind,B=h.ssrcMsg,Q=h.mslabel;return this.send(_,B,Q)}),c=[];let u=!1;return s.forEach(h=>{let _=h.mid;h.needExchangeSDP&&(u=!0),c.push(_)}),{mids:c,needExchangeSDP:u}}stopSending(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>c.attributes.mid&&t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");s.forEach(c=>{c.attributes.mid==="0"||Ln()||t4()?c.attributes.ssrcs=[]:(c.attributes.ssrcs=[],c.attributes.direction="inactive",c.media.port="0")}),this.updateBundleMids()}mute(t){const s=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===t);if(!s)throw new Error("mediaDescription not found with ".concat(t," in remote SDP when calling RemoteSDP.mute."));s.attributes.direction="inactive"}unmute(t){const s=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===t);if(!s)throw new Error("mediaDescription not found with ".concat(t," in remote SDP when calling RemoteSDP.unmute."));s.attributes.direction="sendonly"}muteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="inactive"})}unmuteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="recvonly"})}receive(t,s,c,u){t.forEach((h,_)=>{this.createOrRecycleRecvMedia(h,[],"recvonly",s,c,u[_])}),this.updateBundleMids()}stopReceiving(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");s.forEach(c=>{c.media.port="0",c.attributes.direction="inactive"}),this.updateBundleMids()}updateRemoteRTPCapabilities(t){const s=this.sessionDesc||wa((c=this._isUseExtmapAllowMixed,this._isUseDataChannel?Bce(c):`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 +a=msid-semantic: WMS +a=ice-lite`.concat(c?` +a=extmap-allow-mixed`:"",` +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +`)));var c;this._rtpCapabilities=t;let u=!1;const h=this.rtpCapabilities.send,_=this.localCapabilities.send,B=this.localCapabilities.recv,Q=B.videoCodecs,T=B.audioCodecs,D=B.videoExtensions,O=B.audioExtensions;for(const $ of s.mediaDescriptions){var P;if($.attributes.direction!=="sendonly"||typeof $.attributes.mid!="string"||!Et(P=this.useLocalCodecsMids).call(P,$.attributes.mid)){if(u=!0,$.attributes.iceUfrag=this._iceParameters.iceUfrag,$.attributes.icePwd=this._iceParameters.icePwd,$.attributes.fingerprints=this._dtlsParameters.fingerprints,$.attributes.candidates=this._candidates,$.attributes.setup=this.setup,$.media.mediaType==="application"&&($.attributes.sctpPort="5000"),$.media.mediaType==="video")if(this._isUseLocalCodecs&&$.attributes.direction==="sendonly"){var U;$.media.fmts=Q.map(te=>te.payloadType.toString(10)),$.attributes.payloads=Q,$.attributes.extmaps=D;const Z=$.attributes.mid;typeof Z!="string"||Et(U=this.useLocalCodecsMids).call(U,Z)||this.useLocalCodecsMids.push(Z)}else if(h.videoCodecs.length===0){const Z=_.videoCodecs.filter(te=>{var se,ge;return(se=te.rtpMap)===null||se===void 0?void 0:Et(ge=se.encodingName.toLowerCase()).call(ge,"vp8")});Z.length===0&&Z.push(_.videoCodecs[0]),$.media.fmts=Z.map(te=>te.payloadType.toString(10)),$.attributes.payloads=Z,$.attributes.extmaps=[]}else $.media.fmts=h.videoCodecs.map(Z=>Z.payloadType.toString(10)),$.attributes.payloads=h.videoCodecs,$.attributes.extmaps=h.videoExtensions;if($.media.mediaType==="audio")if(this._isUseLocalCodecs&&$.attributes.direction==="sendonly"){var H;$.media.fmts=T.map(te=>te.payloadType.toString(10)),$.attributes.payloads=T,$.attributes.extmaps=O;const Z=$.attributes.mid;typeof Z!="string"||Et(H=this.useLocalCodecsMids).call(H,Z)||this.useLocalCodecsMids.push(Z)}else if(h.audioCodecs.length===0){const Z=_.audioCodecs.filter(te=>{var se,ge;return(se=te.rtpMap)===null||se===void 0?void 0:Et(ge=se.encodingName.toLowerCase()).call(ge,"opus")})||[_.audioCodecs[0]];$.media.fmts=Z.map(te=>te.payloadType.toString(10)),$.attributes.payloads=Z,$.attributes.extmaps=[]}else $.media.fmts=h.audioCodecs.map(Z=>Z.payloadType.toString(10)),$.attributes.payloads=h.audioCodecs,$.attributes.extmaps=h.audioExtensions,nT($)}}return this.sessionDesc=s,this.currentMidIndex=s.mediaDescriptions.length-1,[this.sessionDesc,u]}updateCandidates(t){const s=this._originCandidates.filter(u=>u.transport==="udp"),c=[];if(s.forEach(u=>{c.push(iz(iz({},u),{},{foundation:"tcpcandidate",priority:Number(u.priority)-1+"",transport:"tcp",port:Number(u.port)+90+""}))}),s.length!==0){switch(t){case qs.TCP_RELAY:this._candidates=c;break;case qs.UDP_TCP_RELAY:case qs.RELAY:this._candidates=[...s,...c];break;default:this._candidates=s}for(const u of this.sessionDesc.mediaDescriptions)u.attributes.candidates=this.candidates}}restartICE(t){let s=!1;return t=go(t),this._iceParameters=t,this.sessionDesc.mediaDescriptions.forEach(c=>{c.attributes.iceUfrag===t.iceUfrag&&c.attributes.icePwd===t.icePwd||(s=!0),c.attributes.iceUfrag=t.iceUfrag,c.attributes.icePwd=t.icePwd}),s}predictReceivingMids(t){const s=[];for(let c=0;c{const u=c.media.mediaType===t&&c.media.port!=="0"&&(c.attributes.direction==="sendonly"||c.attributes.direction==="sendrecv")&&c.attributes.ssrcs.length===0;if(Ln()){if(u){const h=this.firefoxSsrcMidMap.get(s[0].ssrcId);return!(h||c.attributes.mid!=="0"&&c.attributes.mid!=="1")||!(!h||h!==c.attributes.mid)}return!1}return u})}createOrRecycleDataChannel(){for(const c of this.sessionDesc.mediaDescriptions)if(c.media.mediaType==="application")return{mediaDesc:c,needExchangeSDP:!1};this.currentMidIndex+=1;const t="".concat(this.currentMidIndex),s={media:{mediaType:"application",port:xF,protos:["UDP","DTLS","SCTP"],fmts:["webrtc-datachannel"]},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:[],fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[],rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,mid:"".concat(t),sctpPort:"5000"}};return this.sessionDesc.mediaDescriptions.push(s),{mediaDesc:s,needExchangeSDP:!0}}createOrRecycleRecvMedia(t,s,c,u,h,_){const B=t._mediaStreamTrack.kind,Q=this.rtpCapabilities.recv,T=p9(B,Q,this.localCapabilities.send,B===rr.VIDEO?u:h),D=B===rr.VIDEO?Q.videoExtensions:Q.audioExtensions;this.currentMidIndex+=1;const O="".concat(this.currentMidIndex);let P={media:{mediaType:B,port:xF,protos:["UDP","TLS","RTP","SAVPF"],fmts:T.map(H=>H.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:D,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:T,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:c,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(O)}};P=this.mungRecvMediaDsec(P,t,_);const U=this.findFirstClosedMedia(B);if(U){const H=this.sessionDesc.mediaDescriptions.indexOf(U);this.sessionDesc.mediaDescriptions[H]=P}else this.sessionDesc.mediaDescriptions.push(P);return P}updateRemoteDtlsParameters(t){const s=new Set(this._dtlsParameters.fingerprints.map(h=>h.fingerprint)),c=new Set(t.map(h=>h.fingerprint));let u=!1;s.size!==c.size&&(u=!0);for(const h of s)c.has(h)||(u=!0);return u}updateRemoteCodec(t,s,c){const u=[...new Set(this._rtpCapabilities.recv.videoCodecs.map(P=>P.rtpMap&&P.rtpMap.encodingName.toLowerCase()||"").filter(P=>{var U;return Et(U=Object.keys(Qn)).call(U,P)}))],h=new Set(s);if(u.every(P=>h.has(P)))return J.debug("codecs has not changed, no need to updateRemoteCodec, codecs: ".concat(s)),!1;const _=this._rtpCapabilities.recv.videoCodecs.filter(P=>s.some(U=>{var H;return Et(H=P.rtpMap&&P.rtpMap.encodingName.toLowerCase()||"").call(H,U)}));if(_.length===0)return J.debug("updateRemoteCodec failed, because cannot find matched codec, remoteCapabilities codecs: ".concat(u," codecs: ").concat(s)),!1;const B=[...new Set(_.map(P=>P.rtpMap&&P.rtpMap.encodingName.toLowerCase()||""))];let Q;if(J.debug("updateRemoteCodec, from ".concat(u," to ").concat(B)),t.length===0)Q=this.sessionDesc.mediaDescriptions.filter(P=>P.media.mediaType==="video"&&P.attributes.direction==="recvonly");else if(Q=this.sessionDesc.mediaDescriptions.filter(P=>P.attributes.mid&&P.media.mediaType==="video"&&Et(t).call(t,P.attributes.mid)&&P.attributes.direction==="recvonly"),Q.length!==t.length)return J.debug("updateRemoteCodec failed, because cannot find mids, mids: ".concat(t,", codecs: ").concat(s)),!1;if(de("USE_PUB_RTX")||de("USE_SUB_RTX")){const P=wp(_,this.rtpCapabilities.recv.videoCodecs);_.push(...P)}this._rtpCapabilities.recv.videoCodecs=_;const T=this.localCapabilities.send,D=this.rtpCapabilities.recv,O=p9(rr.VIDEO,D,T,c);return Q.forEach(P=>{const U=O.map(H=>H.payloadType.toString(10));J.debug("updateRemoteCodec mid: ".concat(P.attributes.mid,", from"),P.attributes.payloads,"to",O),P.attributes.payloads=O,P.media.fmts=U}),J.debug("updateRemoteCodec success, mids: ".concat(t,", codecs: ").concat(s,", remote recv: ").concat(this._rtpCapabilities.recv.videoCodecs.length,", remote send: ").concat(this._rtpCapabilities.send.videoCodecs.length)),!0}createOrRecycleSendMedia(t,s,c,u,h){const _=this.rtpCapabilities.send.videoCodecs,B=this._isUseLocalCodecs||_.length===0?this.localCapabilities.recv:this.rtpCapabilities.send,Q=t===rr.VIDEO?B.videoCodecs:B.audioCodecs,T=t===rr.VIDEO?B.videoExtensions:B.audioExtensions;this.currentMidIndex+=1;const D="".concat(this.currentMidIndex);let O={media:{mediaType:t,port:xF,protos:["UDP","TLS","RTP","SAVPF"],fmts:Q.map(U=>U.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:T,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:c,rtcpFeedbackWildcards:[],payloads:Q,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:u,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(D)}};O=this.mungSendMediaDesc(O,h);const P=this.findFirstClosedMedia(t);if(P){const U=this.sessionDesc.mediaDescriptions.indexOf(P);this.sessionDesc.mediaDescriptions[U]=O}else this.sessionDesc.mediaDescriptions.push(O);return O}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(t=>t.media.port!=="0").map(t=>t.attributes.mid)}mungRecvMediaDsec(t,s,c){const u=go(t);return GX(u),Am(u,s),VX(u,s),pte(u),DF(u,c,this.localCapabilities.send),u}mungSendMediaDesc(t,s){const c=go(t);return c.attributes&&c.attributes.payloads&&Array.isArray(c.attributes.payloads)&&c.attributes.payloads.length>0&&c.attributes.payloads.forEach(u=>{u.rtpMap&&u.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&de("ENABLE_DOWN_SPS_PPS")&&(u.fmtp&&u.fmtp.parameters||(u.fmtp={parameters:{}}),u.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),DF(c,s,this.localCapabilities.recv),nT(c),c}updateRecvMedia(t,s){const c=this.sessionDesc.mediaDescriptions.findIndex(u=>u.attributes.mid===t);if(c!==-1){const u=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[c],s);this.sessionDesc.mediaDescriptions[c]=u}}bumpMid(t){this.currentMidIndex+=t}findFirstClosedMedia(t){return this.sessionDesc.mediaDescriptions.find(s=>Ln()?s.media.port==="0"&&s.media.mediaType===t:s.media.port==="0")}findPreloadMediaDesc(t){return this.sessionDesc.mediaDescriptions.find(s=>{var c;return((c=s.attributes)===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId)===t[0].ssrcId})}getSSRC(t){var s;return(s=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===t))===null||s===void 0?void 0:s.attributes.ssrcs}};function oz(t){return!!t&&(typeof t.minDownscaleWidth=="number"&&t.minDownscaleWidth>=1||typeof t.minDownscaleHeight=="number"&&t.minDownscaleHeight>=1)}function Gte(t){return t==="vp8"||t==="vp9"}function Vte(t,s,c,u){if(typeof u!="number")return Array.from({length:c+1},(D,O)=>t/Math.pow(s,O));const h=Math.max(t,u),_=h/t;if(_<=1)return Array.from({length:c+1},()=>t);const B=1/s,Q=Math.min(c,Math.max(1,Math.ceil(Math.log(_)/Math.log(B)))),T=Math.pow(_,1/Q);return Array.from({length:c+1},(D,O)=>{if(O===0)return t;const P=Math.min(O,Q);return Math.min(t*Math.pow(T,P),h)})}function Kte(t,s,c,u){if(typeof u!="number")return c;const h=Math.max(t,u)/t;if(h<=1)return 0;const _=1/s;return Math.min(c,Math.max(1,Math.ceil(Math.log(h)/Math.log(_))))}function Hte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function EI(t){for(var s=1;s=s.length-1&&u===sT.DOWN)return t;let _=EI(EI({},t),{},{scale:u===sT.DOWN?++h:--h});switch(c){case"maintain-framerate":_=EI(EI({},_),s[h].motion);break;case"maintain-resolution":_=EI(EI({},_),s[h].detail);break;case"balanced":_=EI(EI({},_),s[h].balanced)}return _}function jte(t,s,c){if(s){const u={overUse:0,underUse:0,adaptationList:Jte(s,c)};GF.set(t,u)}else GF.delete(t)}function Jte(t,s){const c=EI({},t),u=c.bitrateMax,h=c.frameRate,_=c.scaleResolutionDownBy,B=c.bitrateMin,Q=function(Ir){const ui=[];if(typeof Ir.minDownscaleHeight=="number"&&Ir.minDownscaleHeight>=1&&Ir.height>0&&ui.push(Ir.height/Ir.minDownscaleHeight),typeof Ir.minDownscaleWidth=="number"&&Ir.minDownscaleWidth>=1&&Ir.width>0&&ui.push(Ir.width/Ir.minDownscaleWidth),ui.length)return Math.max(Ir.scaleResolutionDownBy,Math.min(...ui))}(c),T=Qa.MIN_FRAME_RATE,D=Qa.MAX_THRESHOLD_FRAMERATE,O=Qa.MAX_SCALE,P=Qa.BITRATE_MIN_THRESHOLD,U=Qa.BITRATE_MAX_THRESHOLD,H=Qa.BWE_SCALE_UP_THRESHOLD,$=Qa.BWE_SCALE_DOWN_THRESHOLD,Z=Qa.PERF_SCALE_DOWN_THRESHOLD,te=Qa.PERF_SCALE_UP_THRESHOLD,se=Qa.BALANCE_BITRATE_FACTOR,ge=Qa.BALANCE_FRAMERATE_FACTOR,me=Qa.BALANCE_RESOLUTION_FACTOR,Qe=Qa.MOTION_RESOLUTION_FACTOR,Oe=Qa.MOTION_BITRATE_FACTOR,we=Qa.DETAIL_FRAMERATE_FACTOR,Ne=Qa.DETAIL_BITRATE_FACTOR,et=Math.min(c.frameRate,D);let st=O;s==="maintain-framerate"?st=Kte(_,Qe,O,Q):s==="balanced"&&(st=Kte(_,me,O,Q));const Xt=Vte(_,me,st,Q),lr=Vte(_,Qe,st,Q),ft=[{scale:0,threshold:{bwe_down:Math.round(Math.pow($,1)*u),bwe_up:u,fps_down:Math.round(Math.pow(Z,1)*et),fps_up:h},balanced:{scaleResolutionDownBy:1,frameRate:h,bitrateMax:u,bitrateMin:B},motion:{scaleResolutionDownBy:1,frameRate:h,bitrateMax:u,bitrateMin:B},detail:{scaleResolutionDownBy:1,frameRate:h,bitrateMax:u,bitrateMin:B}}];for(let Ir=1;Ir<=st;Ir++){const ui={bwe_up:Math.round(Math.pow(H,Ir)*u),bwe_down:Math.round(Math.pow($,Ir+1)*u),fps_up:Math.round(Math.pow(te,Ir)*et),fps_down:Math.round(Math.pow(Z,Ir+1)*et)},Nr={scaleResolutionDownBy:Xt[Ir],frameRate:Math.max(Math.round(Math.pow(ge,Ir)*h),T),bitrateMax:Math.max(Math.round(Math.pow(se,Ir)*u),U),bitrateMin:Math.max(Math.round(Math.pow(se,Ir)*B),P)},Ki={scaleResolutionDownBy:lr[Ir],frameRate:h,bitrateMax:Math.max(Math.round(Math.pow(Oe,Ir)*u),U),bitrateMin:Math.max(Math.round(Math.pow(Oe,Ir)*B),P)},it={scaleResolutionDownBy:1,frameRate:Math.max(Math.round(Math.pow(we,Ir)*h),T),bitrateMax:Math.max(Math.round(Math.pow(Ne,Ir)*u),U),bitrateMin:Math.max(Math.round(Math.pow(Ne,Ir)*B),P)};ft.push({scale:Ir,threshold:ui,balanced:Nr,motion:Ki,detail:it})}return ft}function Sce(t,s,c,u,h,_){const B=GF.get(t)||{overUse:0,underUse:0,adaptationList:Jte(h,_)},Q=B.adaptationList;GF.set(t,B);const T=Qa.OVERUSE_TIMES_THRESHOLD,D=Qa.UNDERUSE_TIMES_THRESHOLD,O=u.scale;let P,U;return typeof s=="number"&&s>0&&function(H,$,Z,te){if($>=Z.length)return!1;let se=Z[$].threshold.fps_down;return de("FORCE_AG_HIGH_FRAMERATE")&&te==="maintain-framerate"&&(se=Z[0].threshold.fps_down),HT)||typeof c=="number"&&c>0&&function(H,$,Z){return!($>=Z.length)&&HT)?(B.overUse=0,B.underUse=0,P=Yte(u,Q,_,sT.DOWN),[P,U]):(typeof s=="number"&&s>0&&typeof c=="number"&&c>0&&function(H,$,Z,te){if($===0)return;let se=Z[$].threshold.fps_up;return de("FORCE_AG_HIGH_FRAMERATE")&&te==="maintain-framerate"&&(se=Z[1].threshold.fps_up),H>se}(s,O,Q,_)&&function(H,$,Z){if($!==0)return H>Z[$].threshold.bwe_up}(c,O,Q)&&(B.underUse++,B.underUse>D&&(B.overUse=0,B.underUse=0,P=Yte(u,Q,_,sT.UP),P.scale===0&&(U=$i.NONE))),[P,U])}function qte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function sz(t){for(var s=1;s{const D=VF.get(t);if(!de("ENABLE_AG_ADAPTATION")||!D)return Dp(t,c),void h(s);const O=_();if(O.sendPackets>0&&O.OutgoingAvailableBandwidth>0){if(B===-1)return void(B=Date.now());if(Date.now()-B<1e3)return;const P=O.sendFrameRate,U=O.OutgoingAvailableBandwidth,H=ir(Sce(t,P,U,D.adaptationConfig,s,u),2),$=H[0],Z=H[1];Z&&(c.qualityLimitationReason=Z),$&&D.adaptationConfig.scale!==$.scale&&(J.debug("[".concat(t,"] applyAdaptation: ").concat(c.qualityLimitationReason,` + sendFps `).concat(P,", bwe ").concat(U,", switch from ").concat(D.adaptationConfig.scale," to ").concat($.scale," ")),D.adaptationConfig=sz(sz({},D.adaptationConfig),$),h($))}},de("CHECK_LOCAL_STATS_INTERVAL")),T=sz({},s);VF.set(t,{timer:Q,adaptationConfig:T,originConfig:s,adaptationFunc:h}),J.debug("[".concat(t,"] start adaptation, originConfig: ").concat(JSON.stringify(s),", degradationPreference: ").concat(u))}function Dp(t,s){const c=VF.get(t);if(c){const u=c.timer;window.clearTimeout(u),VF.delete(t)}s.qualityLimitationReason=$i.NONE,jte(t)}const zte=["balanced","maintain-framerate","maintain-resolution"];function $te(t){switch(t){case"motion":return"maintain-framerate";case"detail":return"maintain-resolution";case"balanced":return"balanced";default:return}}function Zte(t){var s;let c=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const u=$te(t._optimizationMode);if(u)return u;const h=de("CUSTOM_ADAPTATION_DEFAULT_MODE");return Et(s=t._hints).call(s,gn.CUSTOM_TRACK)?function(_){return typeof _=="string"&&Et(zte).call(zte,_)}(h)?h:c?"maintain-framerate":"":"maintain-framerate"}function ere(t,s){return s?"maintain-resolution":$te(t._optimizationMode)||void 0}function tre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function rre(t,s,c){var u;const h=t.getParameters(),_=(u=h.encodings)===null||u===void 0?void 0:u[0];return _&&Object.assign(_,c),Object.assign(h,s),h}async function ire(t,s,c){try{return await t.setParameters(rre(t,s,c)),{classification:"transient"}}catch(u){const h=function(_){for(var B=1;Bc._bypassWebAudio))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");if(!s.webAudioMediaStreamDest)throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks because your browser does not support audio mixing")}function Az(t,s){az(t);const c=new ia;return t.forEach(u=>c.addAudioTrack(u)),c}const yce=!Si().supportUnifiedPlan||de("CHROME_FORCE_PLAN_B")&&Al();function Qce(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t.useDcSignal)return c={spec:s,store:t},aE("DataChannelConnection").create(c);var c;return yce?function(h){return aE("PlanBConnection").create(h)}({spec:s,store:t}):new vl(s,t)}function cz(t){return t&&(t.iceConnectionState==="disconnected"||t.iceConnectionState==="checking"||t.iceConnectionState==="failed")}function lz(t){try{if(t.iceServers)return!1;if(t.turnServer&&t.turnServer.mode!=="off"){if(zi(t.turnServer.servers))return!1;if(de("FORCE_TURN_TCP")||t.turnServer.servers.concat(t.turnServer.serversFromGateway||[]).some(s=>s.forceturn))return!0}return!1}catch{return!1}}var en;function nre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Au(t){for(var s=1;ss.rtpMap&&s.rtpMap.encodingName.toLowerCase()||"").filter(s=>{var c;return Et(c=Object.keys(Qn)).call(c,s)}))]}constructor(s,c){super(s,c),ae(this,"id",un(5,"connection-")),ae(this,"store",void 0),ae(this,"peerConnection",void 0),ae(this,"forceTurn",!1),ae(this,"remoteSDP",void 0),ae(this,"initialOffer",void 0),ae(this,"transportEventReceiver",void 0),ae(this,"statsFilter",void 0),ae(this,"extension",{useXR:de("USE_XR")}),ae(this,"localCapabilities",void 0),ae(this,"remoteCodecs",void 0),ae(this,"localCandidateCount",0),ae(this,"allCandidatesReceived",!1),ae(this,"isPreallocation",!1),ae(this,"isPreRender",!1),ae(this,"preMediaMap",new Map),ae(this,"dataStreamChannelMap",new Map),ae(this,"establishPromise",void 0),ae(this,"recoveredDataChannelIds",[]),ae(this,"currentDataChannelId",1),ae(this,"supportAV1RtpSpec",!1),ae(this,"mutex",void 0),ae(this,"qualityLimitationReason",$i.NONE),ae(this,"unsupportedResolutionFloorTrackIds",new Set),ae(this,"isFirstConnected",!1),this.store=c,this.forceTurn=lz(s),this.mutex=new ra("P2PConnection-mutex",c.clientId),this.peerConnection=new RTCPeerConnection(fm.resolvePCConfiguration(s),{optional:[{googDscp:!0}]}),this.isFirstConnected=!1,this.statsFilter=WA(this.peerConnection,de("STATS_UPDATE_INTERVAL"),void 0,Ln()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,s.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(s){return this.preMediaMap.get(s)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(s,c){if(this.remoteCodecs=c,!this.remoteSDP)return void J.debug("[P2PConnection] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(c));if(this.remoteSDP.updateRemoteCodec(s,c,this.store.codec)){const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}else J.debug("[P2PConnection] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});const c=await this.peerConnection.createOffer();if(!c.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const u=Yh(c.sdp),h=await HX({filterRTX:!de("USE_PUB_RTX")&&!de("USE_SUB_RTX"),filterVideoFec:de("FILTER_VIDEO_FEC"),filterAudioFec:de("FILTER_AUDIO_FEC"),filterVideoCodec:de("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:de("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:de("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=C9(h),this.initialOffer=c,de("ENABLE_SVC")&&this.store.codec=="av1"){const B=await fte();var s;B&&(this.supportAV1RtpSpec=!0,(s=h.send)===null||s===void 0||s.videoExtensions.push(B))}let _;return c.sdp&&bF(c.sdp)&&(_=go(h),lte(_)),Au(Au({},u),{},{rtpCapabilities:_||h,offerSDP:c.sdp})}catch(c){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,c.toString())}}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");if(this.initialOffer.sdp&&bF(this.initialOffer.sdp)&&dte(s.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Fte(Au(Au({},s),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!de("ENABLE_PRE_SUB_WITH_PRE_PC")||!de("PRE_USE_LOCAL_CODECS"))&&eo(this.store)),s.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec),D4()&&eo(this.store)){var c;const h=((c=this.store.preSubOptions)===null||c===void 0?void 0:c.length)||0,_=de("PRE_SUB_NUM")||1,B=h>_?h:_,Q=this.remoteSDP.preloadRemoteMedia(B),T=Q.mids,D=Q.preSSRCs,O=f9(this.initialOffer.sdp,this.extension),P=this.logSDPExchange(O||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:O}),P==null||P(O),new Array(B).fill(0).forEach(()=>{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"})});const U=await this.peerConnection.createOffer(),H=this.logSDPExchange(U.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(U);const $=this.remoteSDP.toString();H==null||H($),await this.peerConnection.setRemoteDescription({type:"answer",sdp:$}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media with icc/dtls, add preload ssrcs ").concat(D)),this.presetMedia(T,D);const Z=this.peerConnection.getTransceivers()[0];Z!=null&&Z.receiver&&this.tryBindTransportEvents(Z.receiver)}else{const h=this.remoteSDP.toString(),_=f9(this.initialOffer.sdp,this.extension),B=this.logSDPExchange(_||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:_}),B==null||B(h),await this.peerConnection.setRemoteDescription({type:"answer",sdp:h});const Q=this.peerConnection.getTransceivers()[0];if(Q!=null&&Q.receiver&&this.tryBindTransportEvents(Q.receiver),eo(this.store))if(s.preallocation&&de("ENABLE_PRE_SUB_WITH_PRE_PC")){var u;const T=((u=this.store.preSubOptions)===null||u===void 0?void 0:u.length)||0,D=de("PRE_SUB_NUM")||1,O=T>D?T:D,P=this.remoteSDP.preloadRemoteMedia(O),U=P.mids,H=P.preSSRCs;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media, in pre pc,add preload ssrcs ").concat(H)),this.presetMedia(U,H)}else{const T=s.preSSRCs,D=T===void 0?[]:T,O=D.map(U=>U.ssrcMsg[0].ssrcId);if(D.length===0)return;const P=this.remoteSDP.batchSend(D.map(U=>Object.assign({},U))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection.connect] preload media, after join, add preload ssrcs ".concat(O)),this.presetMedia(P,O)}}}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(h.toString()))}}presetMedia(s,c){s.forEach((u,h)=>{this.peerConnection.getTransceivers().forEach(_=>{if(_.mid!=null&&u===_.mid&&_.receiver.track){const T=_.receiver.track;if(de("PRE_PLAYOUT_DELAY_HINT")){const O=_.receiver;"playoutDelayHint"in O&&(O.playoutDelayHint=de("PRE_PLAYOUT_DELAY_HINT"),J.debug("[".concat(this.store.clientId,"] [P2PConnection] presetMedia set playoutDelayHint to ").concat(de("PRE_PLAYOUT_DELAY_HINT"))))}let D;if(T.kind==="video"&&de("ENABLE_PRE_RENDER")){var B,Q;let O=(B=this.store.preSubOptions)===null||B===void 0||(B=B[h])===null||B===void 0?void 0:B.element;const P=((Q=this.store.preSubOptions)===null||Q===void 0||(Q=Q[h])===null||Q===void 0?void 0:Q.config)||{};J.debug("try to play pre sub video",typeof O=="string"?O:"element","config: ".concat(JSON.stringify(P))),typeof O=="string"&&(O=document.getElementById(O)||void 0),D=O instanceof HTMLVideoElement?new Sy(Au({trackId:"track-".concat(T.kind,"-unknown-").concat(this.store.clientId,"_").concat(un(5,"")),element:O},P)):new Ry(Au({trackId:"track-".concat(T.kind,"-unknown-").concat(this.store.clientId,"_").concat(un(5,"")),element:O},P),!O),D.updateVideoTrack(T),D.onFirstVideoFrameRender=()=>{var U;D&&(D.onFirstVideoFrameRender=void 0);const H=this.preMediaMap.get(c[h]);H&&(H.firstVideoRender=Date.now()),(U=this.onFirstVideoRender)===null||U===void 0||U.call(this,c[h])},D.onVideoBufferReady=()=>{var U;(U=this.onFirstVideoBufferReady)===null||U===void 0||U.call(this,c[h])},D.play(this.store.sessionId||void 0),this.isPreRender=!0}this.preMediaMap.set(c[h],{mid:u,track:T,player:D,transceiver:_})}}),this.store.peerReceiver()})}checkDtlsParameters(s){return!!this.remoteSDP&&s.length>0&&this.remoteSDP.updateRemoteDtlsParameters(s)}checkIceParameters(s){return this.remoteSDP?this.remoteSDP.restartICE(s):!1}async updateRemoteConnect(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateRemoteConnect before remote SDP created");let c=!1;const u=s.rtpCapabilities;if(c=ir(this.remoteSDP.updateRemoteRTPCapabilities(u),2)[1],Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){const Q=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);c=c||Q}const h=s.preSSRCs,_=h===void 0?[]:h,B=_.map(Q=>Q.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(B)){const Q=[],T=[];if(Array.from(this.preMediaMap.entries()).every(D=>{let O=ir(D,2),P=O[0],U=O[1],H=U.mid,$=U.player;return U.track,Q.push(H),T.push(P),this.preMediaMap.delete(P),$&&$.destroy(),!0}),Q.length>0&&(this.remoteSDP.stopSending(Q),await Yc(this.peerConnection,this.remoteSDP,this.extension),J.warn("[P2PConnection.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(T)),qt.reportApiInvoke(this.store.sessionId,{name:Ti.PRELOAD_MEDIA_FAILED,options:[_,T],tag:vn.TRACER}).onSuccess()),_.length>0){const D=this.remoteSDP.batchSend(_.map(O=>Object.assign({},O))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(B)),this.presetMedia(D,B)}}c?(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection] updateRemoteConnect by exchanging SDP.")):J.debug("[P2PConnection] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.updateRemoteConnect failed; ".concat(c.toString()))}}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From P2PConnection.send"));try{if(!h.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");const B=[],Q=E9();s.forEach(te=>{const se=h.peerConnection.addTransceiver(te._mediaStreamTrack,Au({direction:"sendonly"},te.trackMediaType==="video"&&h.supportAV1RtpSpec&&Q?{sendEncodings:[{scalabilityMode:Q}]}:{}));B.push(se),te._updateRtpTransceiver(se)}),Ln()&&de("SIMULCAST")===!0&&(yield Tr(h.applySimulcastForFirefox(B,s)));const T=yield Tr(h.peerConnection.createOffer()),D=h.remoteSDP.predictReceivingMids(s.length),O=h.mungSendOfferSDP(T.sdp,s,D),P=wa(O),U=D.map(te=>{const se=P.mediaDescriptions.find(ge=>ge.attributes.mid===te);if(!se)throw new Error("Cannot extract ssrc from mediaDescription.");return FX(se,de("USE_PUB_RTX"))});let H;try{H=yield U}catch(te){H=[],h.remoteSDP.receive(s,c,u,H);const se=h.remoteSDP.toString();throw yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:se})),yield Tr(h.stopSending(D,!0)),te}h.remoteSDP.receive(s,c,u,H);const $=h.remoteSDP.toString(),Z=h.logSDPExchange(O,"offer","local","send");return yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.applySimulcastEncodings(B,s)),yield Tr(h.applySendEncodings(B,s)),Z==null||Z($),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:$})),B.map((te,se)=>{const ge=D[se];return{localSSRC:U[se],id:ge,transceiver:te}})}catch(B){throw B instanceof tt?B:new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(B.toString()))}finally{_()}})()}async createDataChannels(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.createDataChannels before remote SDP created");let u=this.dataStreamChannelMap.get(s);if(u&&u.readyState==="open")J.debug("[P2PConnection] Channels are already available and can be reused directly.");else{const _=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof _!="number")throw new Error("create DataChannel error, because cannot get dc id");u=this.peerConnection.createDataChannel("datastream-channel",{id:_,negotiated:!0,ordered:!1,maxRetransmits:de("DATASTREAM_MAX_RETRANSMITS")}),u.binaryType="arraybuffer",this.dataStreamChannelMap.set(s,u)}if(c.forEach(_=>{_._updateOriginDataChannel(u)}),this.remoteSDP.sendDataChannel().needExchangeSDP){const _=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:_});const B=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(B),J.debug("[P2PConnection] createDataChannels by exchanging SDP.")}else J.debug("[P2PConnection] createDataChannels no need to exchange SDP.");return}catch(u){throw u instanceof tt?u:new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.createDataChannels failed; ".concat(u.toString()))}}async stopDataChannels(s){try{const c=this.dataStreamChannelMap.get(s);return c&&(c.id&&this.recoveredDataChannelIds.push(c.id),c.close()),void this.dataStreamChannelMap.delete(s)}catch(c){throw c instanceof tt?c:new tt(Ce.DATACHANNEL_FAILED,"P2PConnection.stopDataChannels failed; ".concat(c.toString()))}}async stopSending(s,c){const u=c?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");const h=this.peerConnection.getTransceivers().filter(T=>s.indexOf(T.mid)!==-1);if(h.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");h.map(T=>{var D;Dp(this.id+T.mid,this),T.direction="inactive",(D=T.stop)===null||D===void 0||D.call(T)});const _=await this.peerConnection.createOffer(),B=this.logSDPExchange(_.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(_),this.remoteSDP.stopReceiving(s);const Q=this.remoteSDP.toString();B==null||B(Q),await this.peerConnection.setRemoteDescription({type:"answer",sdp:Q})}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(h.toString()))}finally{u&&u()}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;_.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," by exchanging SDP.")));const Q=this.peerConnection.getTransceivers().find(T=>T.mid===B);if(!Q)throw new Error("Cannot get transceiver after setLocalDescription.");if(de("PRE_PLAYOUT_DELAY_HINT")){const T=Q.receiver;"playoutDelayHint"in T&&(T.playoutDelayHint=de("PRE_PLAYOUT_DELAY_HINT"),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," set playoutDelayHint to ").concat(de("PRE_PLAYOUT_DELAY_HINT"))))}return{track:Q.receiver.track,id:B,transceiver:Q}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async batchReceive(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");const c=this.remoteSDP.batchSend(s),u=c.mids;return c.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] batchReceive by exchanging SDP."))),u.map(h=>{const _=this.peerConnection.getTransceivers().find(B=>B.mid===h);if(!_)throw new Error("Cannot get transceiver after setLocalDescription.");if(de("PRE_PLAYOUT_DELAY_HINT")){const B=_.receiver;"playoutDelayHint"in B&&(B.playoutDelayHint=de("PRE_PLAYOUT_DELAY_HINT"),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(B.track.kind," set playoutDelayHint to ").concat(de("PRE_PLAYOUT_DELAY_HINT"))))}return{track:_.receiver.track,id:h,transceiver:_}})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(c.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");s.forEach(_=>{Array.from(this.preMediaMap.entries()).some(B=>{let Q=ir(B,2),T=Q[0],D=Q[1],O=D.mid,P=D.player;if(O===_)return this.preMediaMap.delete(T),P&&P.destroy(),!0})}),this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}async muteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.mute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteRemote failed; ".concat(c.toString()))}}async unmuteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.unmute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteRemote failed; ".concat(c.toString()))}}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(B=>{B.direction="inactive"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.muteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(async(B,Q)=>{B.direction="sendonly"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.unmuteRemote(s),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(s,this.remoteCodecs,this.store.codec);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(c.toString()))}}restartICE(s){var c=this;return AA(function*(){const u=yield Tr(c.mutex.lock("From P2PConnection.restartICE"));try{if(!c.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");const h=Si().supportPCSetConfiguration,_=de("FORCE_TURN_TCP")||c.forceTurn;if(s===qs.RELAY&&!h)return;if(h&&!_){const P=s===qs.RELAY?"relay":"all",U=c.peerConnection.getConfiguration();U.iceTransportPolicy!==P&&(J.debug("[".concat(c.store.clientId,"] restartICE change iceTransportPolicy from [").concat(U.iceTransportPolicy,"] to [").concat(P,"]")),U.iceTransportPolicy=P,c.peerConnection.setConfiguration(U))}c.remoteSDP.updateCandidates(s);const B=yield Tr(c.peerConnection.createOffer({iceRestart:!0}));if(!B.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const Q=Yh(B.sdp),T=(yield Q.iceParameters).remoteIceParameters;c.remoteSDP.restartICE(T);const D=c.remoteSDP.toString(),O=c.logSDPExchange(B.sdp||"","offer","local","restartICE");c.store.descriptionStart(),yield Tr(c.peerConnection.setLocalDescription(B)),O==null||O(D),yield Tr(c.peerConnection.setRemoteDescription({type:"answer",sdp:D}))}catch(h){J.warning("[".concat(c.store.clientId,"] restart ICE failed, abort operation"),h)}finally{u()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;const s=await this.mutex.lock("From P2PConnection.extendCandidate");try{this.remoteSDP.updateCandidates(qs.TCP_RELAY),await Yc(this.peerConnection,this.remoteSDP,this.extension)}catch(c){J.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),c)}finally{s()}}close(){var s;this.peerConnection.getTransceivers().forEach(c=>{Dp(this.id+c.mid,this)}),this.preMediaMap.forEach(c=>{let u=c.player;u&&u.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return Au(Au({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c],[s]);this.remoteSDP.updateRecvMedia(s,c);const _=this.remoteSDP.toString(),B=this.logSDPExchange(h,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),B==null||B(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getTransceivers().filter(h=>h.mid===s);u.length===1&&(this.isVP8Simulcast(c)?Ln()||await this.applySimulcastEncodings(u,[c]):await this.applySendEncodings(u,[c]))}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getTransceivers().find(h=>h.mid===c);u&&await u.sender.replaceTrack(s._mediaStreamTrack)}async getSelectedCandidatePair(){const s=this.peerConnection.getReceivers();if(s.length>0&&s[0].transport&&s[0].transport.iceTransport&&s[0].transport.iceTransport.getSelectedCandidatePair&&s[0].transport.iceTransport.getSelectedCandidatePair()){const c=s[0].transport.iceTransport.getSelectedCandidatePair(),u=c.local,h=c.remote;return{local:Au(Au({},ya),{},{candidateType:u.type,protocol:u.protocol,address:u.address,port:u.port}),remote:Au(Au({},ya),{},{candidateType:h.type,protocol:h.protocol,address:h.address,port:h.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s;(s=this.onICEConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=s=>{if(s&&(s.errorCode||s.errorText)){var c;const u="code: ".concat(s.errorCode,", message: ").concat(s.errorText),h=s.port?"local: ".concat(s.port):"",_=Hh(s.url||"");J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICECandidateError(").concat(u,"), url: ").concat(_||"",", host_candidate:").concat(h)),(c=this.onICECandidateError)===null||c===void 0||c.call(this,u)}},this.peerConnection.onicegatheringstatechange=s=>{s&&s.target&&"iceGatheringState"in s.target&&J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(s.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=s=>{s.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},de("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s){const c={iceServers:[]},u=s.cloudProxyServer||"disabled";return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:de("NEW_TURN_MODE")&&c.iceServers&&u==="disabled"?(de("USE_TURN_SERVER_OF_GATEWAY")?s.turnServer.serversFromGateway&&c.iceServers.push(...fm.newTurnServerConfigToIceServers(s.turnServer.serversFromGateway)):c.iceServers.push(...fm.newTurnServerConfigToIceServers(s.turnServer.servers)),de("NEW_FORCE_TURN")&&(c.iceTransportPolicy="relay")):s.turnServer.mode!=="off"&&(c.iceServers&&c.iceServers.push(...fm.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...fm.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),de("FORCE_TURN_TCP")?c.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(h=>{h.forceturn&&(c.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(c.encodedInsertableStreams=!0),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&!de("FORCE_TURN_TCP")&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}static newTurnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{const h=de("NEW_TURN_MODE");h===1?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}):h===2?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}):h===3?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}):h===4&&(c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}))}),c}tryBindTransportEvents(s){const c=s.transport;if(c){this.transportEventReceiver=s,c.onstatechange=()=>{var h;c!=null&&c.state&&((h=this.onDTLSTransportStateChange)===null||h===void 0||h.call(this,c.state))},c.onerror=h=>{var _;(_=this.onDTLSTransportError)===null||_===void 0||_.call(this,"error"in h?h.error:h)};const u=c.iceTransport;u&&(u.onstatechange=()=>{const h=c==null?void 0:c.iceTransport.state;var _;h&&((_=this.onICETransportStateChange)===null||_===void 0||_.call(this,h))},u.getSelectedCandidatePair&&(u.onselectedcandidatepairchange=()=>{if(u.getSelectedCandidatePair()){const h=u.getSelectedCandidatePair()||{},_=h.local,B=h.remote;if(_&&B){const Q=_.address+":"+_.port,T=B.address+":"+B.port;J.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Hh(Q)),", remote ").concat(JSON.stringify(Hh(T))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(s,c){var u,h;if(c||(c=this.peerConnection.getSenders().find(Oe=>Oe.track===s._mediaStreamTrack)),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(s))return J.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Si().supportSetRtpSenderParameters)return J.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");const _=pU(s),B=!!_&&Gte(this.store.codec)&&oz(_),Q=B&&!this.unsupportedResolutionFloorTrackIds.has(s.getTrackId()),T=!!_&&!(B&&!Q)&&Wte(s,Q?_:void 0),D=Q&&T,O=Q||Et(u=["vp8","vp9"]).call(u,this.store.codec),P={},U={},H=ere(s,D);H&&(P.degradationPreference=H);const $=Ate(this.peerConnection,s._mediaStreamTrack);if(T&&$&&c&&_&&this.getLocalVideoStats&&O){const Qe=this.id+$.mid,Oe=Zte(s,Q);Xte(Qe,_,this,Oe,we=>{c&&this.updateAdaptation(s,c,we,Qe,Q)},this.getLocalVideoStats.bind(this))}if(s._encoderConfig){var Z;const Qe=s._encoderConfig,Oe=Qe.bitrateMax,we=Qe.frameRate,Ne=Qe.scaleResolutionDownBy;Oe&&(U.maxBitrate=1e3*Oe),(Et(Z=s._hints).call(Z,gn.LOW_STREAM)||s.isUseScaleResolutionDownBy)&&(we&&(U.maxFramerate=dc(we)),Ne&&Ne>=1&&(U.scaleResolutionDownBy=Ne))}const te=de("ENCODER_CONFIG_LIMIT").maxFramerate;if(te&&typeof te=="number"&&(U.maxFramerate=U.maxFramerate?Math.min(U.maxFramerate,te):te),de("DSCP_TYPE")&&Al()){var se;const Qe=de("DSCP_TYPE");Et(se=["very-low","low","medium","high"]).call(se,Qe)&&(U.networkPriority=Qe)}const ge=c.getParameters(),me=(h=ge.encodings)===null||h===void 0?void 0:h[0];Ln()&&!me&&(P.encodings=[U]),me&&Object.assign(me,U),Object.assign(ge,P),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(ge.encodings))),await c.setParameters(ge),await Bte(this.store.codec,c,de("SVC_MODE"))}async updateAdaptation(s,c,u,h,_){var B,Q;if(!c)return J.debug("[updateAdaptation] no rtpSender found");if(!Si().supportSetRtpSenderParameters)return J.debug("[updateAdaptation] Browser not support set rtp-sender parameters");const T={},D={},O=u.bitrateMax,P=u.frameRate,U=u.scaleResolutionDownBy;O&&(D.maxBitrate=1e3*O),P&&(D.maxFramerate=dc(P));let H=!1;typeof U=="number"&&U>=1&&(_||Et(B=["vp8","vp9"]).call(B,this.store.codec))&&(D.scaleResolutionDownBy=U,H=U>1);const $=c.getParameters(),Z=(Q=$.encodings)===null||Q===void 0?void 0:Q[0];Z&&Object.assign(Z,D),Object.assign($,T);try{await c.setParameters($),J.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify($.encodings)))}catch(te){if(!("transport"in c)||c.transport&&c.transport.state==="connected")if(this.peerConnectionState!=="connected")J.debug("[updateAdaptation] peerConnection not connected}");else if(_&&H){const se=await ire(c,T,D);se.classification==="unsupported"?(this.unsupportedResolutionFloorTrackIds.add(s.getTrackId()),Dp(h,this),J.warn("[".concat(s.getTrackId(),"] fallback to browser adaptation because scaleResolutionDownBy adaptation is unsupported"),te,se.retryWithScaleError),this.updateRtpSenderEncodings(s,c).catch(ge=>{J.warn("[".concat(s.getTrackId(),"] failed to re-apply browser adaptation after disabling resolution floor"),ge)})):se.classification==="transient"?J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled after transient setParameters failure"),te):J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled because setParameters failure is not classified as unsupported"),te,se.retryWithScaleError,se.retryWithoutScaleError)}else J.debug("[updateAdaptation] updateRtpSenderEncodings failed",te);else J.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const Q=u[B],T=h.mediaDescriptions.find(D=>D.attributes.mid===Q);T&&(Am(T,_),KX(T,_,this.store.codec))}),X1(h)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onFirstVideoDecodedTimeout=s=>{var c;(c=this.onFirstVideoDecodedTimeout)===null||c===void 0||c.call(this,s)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(s,c){if(s.length===c.length)for(let T=0;T200&&(B=O._scalabilityMode)!==null&&B!==void 0&&B.numSpatialLayers&&((Q=O._scalabilityMode)===null||Q===void 0?void 0:Q.numSpatialLayers)>1&&this.store.codec==="vp8"){const P={},U={high:1e3*(O._encoderConfig.bitrateMax-50),medium:5e4};P.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];const H=D.sender.getParameters();await D.sender.setParameters(Object.assign(H,P))}}}async applySimulcastEncodings(s,c){if(!Ln()&&s.length===c.length)for(let u=0;u200&&(_=s._scalabilityMode)!==null&&_!==void 0&&_.numSpatialLayers&&((B=s._scalabilityMode)===null||B===void 0?void 0:B.numSpatialLayers)>1)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("[".concat(this.store.clientId,"] exchanging ").concat(u," ").concat(c," SDP during P2PConnection.").concat(h,` +`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}async getRemoteSSRC(s){if(!this.remoteSDP)return;const c=this.remoteSDP.getSSRC(s);return c&&c.length!==0?c[0].ssrcId:void 0}setConfiguration(s){if(Si().supportPCSetConfiguration){const c=fm.resolvePCConfiguration(s);this.peerConnection.setConfiguration(c)}s.isPreallocation&&(this.isPreallocation=!0)}},Pt(en.prototype,"updateRemoteRTPCapabilities",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateRemoteRTPCapabilities"),en.prototype),Pt(en.prototype,"connect",[uc],Object.getOwnPropertyDescriptor(en.prototype,"connect"),en.prototype),Pt(en.prototype,"updateRemoteConnect",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateRemoteConnect"),en.prototype),Pt(en.prototype,"createDataChannels",[uc],Object.getOwnPropertyDescriptor(en.prototype,"createDataChannels"),en.prototype),Pt(en.prototype,"receive",[uc],Object.getOwnPropertyDescriptor(en.prototype,"receive"),en.prototype),Pt(en.prototype,"batchReceive",[uc],Object.getOwnPropertyDescriptor(en.prototype,"batchReceive"),en.prototype),Pt(en.prototype,"stopReceiving",[uc],Object.getOwnPropertyDescriptor(en.prototype,"stopReceiving"),en.prototype),Pt(en.prototype,"muteRemote",[uc],Object.getOwnPropertyDescriptor(en.prototype,"muteRemote"),en.prototype),Pt(en.prototype,"unmuteRemote",[uc],Object.getOwnPropertyDescriptor(en.prototype,"unmuteRemote"),en.prototype),Pt(en.prototype,"muteLocal",[uc],Object.getOwnPropertyDescriptor(en.prototype,"muteLocal"),en.prototype),Pt(en.prototype,"unmuteLocal",[uc],Object.getOwnPropertyDescriptor(en.prototype,"unmuteLocal"),en.prototype),Pt(en.prototype,"close",[uc],Object.getOwnPropertyDescriptor(en.prototype,"close"),en.prototype),Pt(en.prototype,"updateEncoderConfig",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateEncoderConfig"),en.prototype),Pt(en.prototype,"updateSendParameters",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateSendParameters"),en.prototype),Pt(en.prototype,"replaceTrack",[uc],Object.getOwnPropertyDescriptor(en.prototype,"replaceTrack"),en.prototype),Pt(en.prototype,"updateAdaptation",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateAdaptation"),en.prototype),Pt(en.prototype,"getRemoteSSRC",[uc],Object.getOwnPropertyDescriptor(en.prototype,"getRemoteSSRC"),en.prototype),en);function uc(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From P2PConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{if(!c)return u.stopCapture&&u.stopCapture();if(c.paused&&c.play(),c.videoHeight>2&&c.videoWidth>2){const O=c.videoWidth,P=c.videoHeight/O,U=u.width*P;Math.abs(U-u.height)>=2&&(J.debug("adjust low stream resolution","".concat(u.width,"x").concat(u.height," -> ").concat(u.width,"x").concat(U)),u.height=U)}B.drawImage(c,0,0,u.width,u.height),T.requestFrame&&T.requestFrame(),_!==t._mediaStreamTrack&&(_=t._mediaStreamTrack,c.srcObject=new MediaStream([_]))},u.stopCapture=hi(()=>u.startCapture&&u.startCapture(),h);const D=T.stop;return T.stop=()=>{D.call(T),c&&(c.remove(),c.srcObject=null,c=null),u&&(u.width=0,u.remove(),u.stopCapture&&u.stopCapture(),u.startCapture=void 0,u.stopCapture=void 0,u=null),J.debug("clean low stream renderer")},T}var ore=function(t){return t[t.Video_Send_Type=190]="Video_Send_Type",t}(ore||{}),Dl=function(t){return t[t.Video_Send_Qp_Sum=2143]="Video_Send_Qp_Sum",t[t.Video_Send_Freeze=2082]="Video_Send_Freeze",t[t.Video_Send_Codec=2240]="Video_Send_Codec",t[t.Video_Send_Power_Efficient_Encoder=2241]="Video_Send_Power_Efficient_Encoder",t[t.Video_Recv_Qp_Sum=2144]="Video_Recv_Qp_Sum",t[t.Video_Recv_Freeze=2084]="Video_Recv_Freeze",t[t.Video_Recv_Codec=2242]="Video_Recv_Codec",t[t.Video_Recv_Power_Efficient_Decoder=2243]="Video_Recv_Power_Efficient_Decoder",t[t.Video_Render_Freeze_Time=2109]="Video_Render_Freeze_Time",t[t.Video_Render_Freeze_Time_Render=2147]="Video_Render_Freeze_Time_Render",t[t.Video_Render_Freeze_Time_Render2=2223]="Video_Render_Freeze_Time_Render2",t[t.Audio_Recv_Freeze=2083]="Audio_Recv_Freeze",t}(Dl||{}),Zr=function(t){return t[t.Video_Send_Retransmit=2062]="Video_Send_Retransmit",t[t.Video_Send_Target_Encoded=2064]="Video_Send_Target_Encoded",t[t.Video_Send_Actual_Encoded=2060]="Video_Send_Actual_Encoded",t[t.Video_Send_Transmit=2066]="Video_Send_Transmit",t[t.Video_Send_Bandwidth=2061]="Video_Send_Bandwidth",t[t.Video_Capture_Height=2033]="Video_Capture_Height",t[t.Video_Capture_Width=2035]="Video_Capture_Width",t[t.Video_Capture_Frame_Rate=2034]="Video_Capture_Frame_Rate",t[t.Video_Send_Low_Height=2073]="Video_Send_Low_Height",t[t.Video_Send_Low_Frame_Rate=2075]="Video_Send_Low_Frame_Rate",t[t.Video_Send_Low_Width=2077]="Video_Send_Low_Width",t[t.Video_Send_Low_Bitrate=2069]="Video_Send_Low_Bitrate",t[t.Video_Send_Low_Package_Lost=2070]="Video_Send_Low_Package_Lost",t[t.Video_Send_Low_Package_Rate=2071]="Video_Send_Low_Package_Rate",t[t.Video_Send_Frame_Rate=2002]="Video_Send_Frame_Rate",t[t.Video_Send_Width=2003]="Video_Send_Width",t[t.Video_Send_Height=2004]="Video_Send_Height",t[t.Video_Send_Disabled=2095]="Video_Send_Disabled",t[t.Video_Send_Adaptation=2032]="Video_Send_Adaptation",t[t.Video_Send_Player_Status=2128]="Video_Send_Player_Status",t[t.Video_Send_Nacks=2009]="Video_Send_Nacks",t[t.Video_Send_Plis=2010]="Video_Send_Plis",t[t.Video_Send_Firs=2011]="Video_Send_Firs",t[t.Video_Send_Avg_Encode=2007]="Video_Send_Avg_Encode",t[t.Video_Send_Huge_Frame_Sent=2174]="Video_Send_Huge_Frame_Sent",t[t.Video_Send_Bytes_Retransmit=2173]="Video_Send_Bytes_Retransmit",t[t.Video_Send_Packages_Retransmit=2172]="Video_Send_Packages_Retransmit",t[t.Video_Send_Key_Frames_Encoded=2207]="Video_Send_Key_Frames_Encoded",t[t.Video_Send_Bitrate=2012]="Video_Send_Bitrate",t[t.Video_Send_Package_Rate=2031]="Video_Send_Package_Rate",t[t.Video_Send_Package_Lost=2005]="Video_Send_Package_Lost",t[t.Audio_Capture_PCM_Level=2104]="Audio_Capture_PCM_Level",t[t.Audio_Send_Level=2038]="Audio_Send_Level",t[t.Audio_Send_Bitrate=2039]="Audio_Send_Bitrate",t[t.Audio_Send_Package_Rate=2040]="Audio_Send_Package_Rate",t[t.Audio_Send_AEC_Return_Loss=2041]="Audio_Send_AEC_Return_Loss",t[t.Audio_Send_AEC_Return_Loss_Enhancement=2042]="Audio_Send_AEC_Return_Loss_Enhancement",t[t.Audio_Send_Freeze=2081]="Audio_Send_Freeze",t[t.Audio_Send_Disabled=2096]="Audio_Send_Disabled",t[t.Audio_Send_Bytes_Retransmit=2179]="Audio_Send_Bytes_Retransmit",t[t.Audio_Send_Packages_Retransmit=2180]="Audio_Send_Packages_Retransmit",t[t.Video_Recv_Height=2019]="Video_Recv_Height",t[t.Video_Recv_Width=2018]="Video_Recv_Width",t[t.Video_Recv_Frame_Rate_Output=2155]="Video_Recv_Frame_Rate_Output",t[t.Video_Recv_Jitter_Buffer=2023]="Video_Recv_Jitter_Buffer",t[t.Video_Recv_Current_Delay=2024]="Video_Recv_Current_Delay",t[t.Video_Recv_Nacks=2026]="Video_Recv_Nacks",t[t.Video_Recv_Plis=2027]="Video_Recv_Plis",t[t.Video_Recv_Firs=2028]="Video_Recv_Firs",t[t.Video_Recv_Disabled=2101]="Video_Recv_Disabled",t[t.Video_Recv_Player_Status=2129]="Video_Recv_Player_Status",t[t.Video_Recv_I_Frame_Delay=2149]="Video_Recv_I_Frame_Delay",t[t.Video_Render_Frame_Rate_Render=2022]="Video_Render_Frame_Rate_Render",t[t.Video_Render_Freeze_Duration=2156]="Video_Render_Freeze_Duration",t[t.Audio_Render_Level=2043]="Audio_Render_Level",t[t.Audio_Render_Freeze_Time_80ms=2226]="Audio_Render_Freeze_Time_80ms",t[t.Audio_Render_Freeze_Time_200ms=2227]="Audio_Render_Freeze_Time_200ms",t[t.Audio_Render_Freeze_Samples_80ms=2228]="Audio_Render_Freeze_Samples_80ms",t[t.Audio_Render_Freeze_Samples_200ms=2229]="Audio_Render_Freeze_Samples_200ms",t[t.Audio_Recv_PCM_Level=2105]="Audio_Recv_PCM_Level",t[t.Audio_Recv_Disabled=2102]="Audio_Recv_Disabled",t[t.Audio_Recv_Jitter_Buffer=2054]="Audio_Recv_Jitter_Buffer",t[t.Audio_Recv_Current_Delay=2047]="Audio_Recv_Current_Delay",t[t.Audio_Recv_Player_Status=2130]="Audio_Recv_Player_Status",t[t.Audio_Recv_Bitrate=2044]="Audio_Recv_Bitrate",t[t.Audio_Recv_Concealed_Samples=2148]="Audio_Recv_Concealed_Samples",t[t.Audio_Recv_Total_Samples_Received=2224]="Audio_Recv_Total_Samples_Received",t}(Zr||{}),Na=function(t){return t[t.Video_Render_Frame_Rate_Decode=2021]="Video_Render_Frame_Rate_Decode",t[t.Video_Recv_Frame_Rate=2020]="Video_Recv_Frame_Rate",t[t.Video_Recv_Frame_Dropped=2181]="Video_Recv_Frame_Dropped",t[t.Video_Recv_Bytes_Retransmit=2175]="Video_Recv_Bytes_Retransmit",t[t.Video_Recv_Packages_Retransmit=2176]="Video_Recv_Packages_Retransmit",t[t.Video_Recv_Packages_Discarded=2198]="Video_Recv_Packages_Discarded",t[t.Video_Recv_Avg_Decode=2200]="Video_Recv_Avg_Decode",t[t.Video_Recv_Avg_Processing_Delay=2202]="Video_Recv_Avg_Processing_Delay",t[t.Video_Recv_Avg_Assembly_Time=2203]="Video_Recv_Avg_Assembly_Time",t[t.Video_Recv_Avg_Inter_Frame_Delay=2204]="Video_Recv_Avg_Inter_Frame_Delay",t[t.Video_Recv_Key_Frames_Decoded=2206]="Video_Recv_Key_Frames_Decoded",t[t.Video_Recv_Package_Lost=2014]="Video_Recv_Package_Lost",t[t.Video_Recv_Bitrate=2029]="Video_Recv_Bitrate",t[t.Video_Recv_Package_Rate=2078]="Video_Recv_Package_Rate",t[t.Audio_Recv_Jitter=2055]="Audio_Recv_Jitter",t[t.Audio_Recv_Bytes_Retransmit=2178]="Audio_Recv_Bytes_Retransmit",t[t.Audio_Recv_Packages_Retransmit=2177]="Audio_Recv_Packages_Retransmit",t[t.Audio_Recv_Packages_Discarded=2199]="Audio_Recv_Packages_Discarded",t[t.Audio_Recv_Avg_Processing_Delay=2201]="Audio_Recv_Avg_Processing_Delay",t[t.Audio_Recv_Package_Rate=2046]="Audio_Recv_Package_Rate",t[t.Audio_Recv_Package_Lost=2045]="Audio_Recv_Package_Lost",t[t.Audio_Recv_AV_Sync_TIME=2237]="Audio_Recv_AV_Sync_TIME",t}(Na||{}),Wa=function(t){return t[t.RTT=2006]="RTT",t[t.CONN_TYPE=801]="CONN_TYPE",t[t.STATS_UPDATE_INTERVAL=2205]="STATS_UPDATE_INTERVAL",t}(Wa||{}),aT=function(t){return t[t.RTC_PEER_CONNECTION_STATE=2219]="RTC_PEER_CONNECTION_STATE",t[t.PAGE_VISIBILITY=2233]="PAGE_VISIBILITY",t}(aT||{}),uz=function(t){return t[t.Transport_Send_Bitrate=2234]="Transport_Send_Bitrate",t[t.Transport_Recv_Bitrate=2235]="Transport_Recv_Bitrate",t}(uz||{});const gm=1e3,KF=6,B9=3,Tce=Math.max(KF,B9,60);function sre(t){return t=t.toLowerCase(),Et(t).call(t,"vp8")?1:Et(t).call(t,"h264")?2:Et(t).call(t,"vp9")?3:Et(t).call(t,"av1")?4:Et(t).call(t,"h265")?5:0}function Qr(t,s,c){c!=null&&Number.isFinite(c)&&(t[s]=Math.round(Math.max(0,c)))}function are(t){const s={[Wa.CONN_TYPE]:0,[Wa.RTT]:t.rtt,[Wa.STATS_UPDATE_INTERVAL]:t.updateInterval?Math.round(Math.max(0,t.updateInterval)):void 0};switch(t.selectedCandidatePair.localCandidate.candidateType){case"relay":{const c=t.selectedCandidatePair.localCandidate.relayProtocol;c==="udp"&&(s[Wa.CONN_TYPE]=1),c==="tcp"&&(s[Wa.CONN_TYPE]=3),c==="tls"&&(s[Wa.CONN_TYPE]=4);break}case"srflx":s[Wa.CONN_TYPE]=2;break;case"unknown":s[Wa.CONN_TYPE]=5;break;default:s[Wa.CONN_TYPE]=0}return s}function Are(t){let s=0;switch(t){case"none":s=0;break;case"cpu":s=1;break;case"bandwidth":s=2;break;case"other":s=3}return s}class cre extends Cn{constructor(s){super(),ae(this,"store",void 0),ae(this,"uploadWRTCStatsTimer",void 0),ae(this,"uploadOutboundDenoiserStatsTimer",void 0),ae(this,"uploadExtStatsTimer",void 0),ae(this,"uploadExtUsageStatsTimer",void 0),ae(this,"uploadInboundExtStatsTimer",void 0),ae(this,"requestStats",void 0),ae(this,"requestTransportStats",void 0),ae(this,"requestLocalMedia",void 0),ae(this,"requestRemoteMedia",void 0),ae(this,"requestAllTracks",void 0),ae(this,"requestVideoIsReady",void 0),ae(this,"requestUploadStats",void 0),ae(this,"requestUpload",void 0),ae(this,"uploadOutboundStarted",!1),ae(this,"uploadInboundStarted",!1),ae(this,"uploadTransportStarted",!1),ae(this,"uploadBaseStatsStarted",!1),ae(this,"uploadExtensionUsageStarted",!1),ae(this,"lastRecvStats",void 0),ae(this,"lastSendStats",void 0),ae(this,"lastRefRecvStats",void 0),ae(this,"lastRefSendStats",void 0),ae(this,"lastNormalRecvStats",void 0),ae(this,"lastNormalSendStats",void 0),ae(this,"lastExtendStats",{}),ae(this,"needUploadStats",{}),ae(this,"needUploadRenderFreezeTime",!0),ae(this,"lastUploadCompensateTime",-1),ae(this,"uploadCompensateDeltaTime",0),this.store=s}uploadWRTCStats(s){if(!this.requestStats||!this.requestUploadStats)return;const c=s%B9==0,u=s%KF==0,h=s%60==0;let _,B;if(this.uploadTransportStarted&&(_=this.requestStats(),this.store.useP2P&&(B=this.requestStats(!0))),!_&&this.uploadOutboundStarted&&(_=this.requestStats()),!B&&this.uploadInboundStarted&&(B=this.requestStats(!0)),_||B){var Q;const T={};if(this.uploadTransportStarted&&_){const O=this.getTransportStats(_,c?this.lastRefSendStats:void 0,B,c);O&&(T.misc=[O])}if(this.uploadOutboundStarted&&_){const O=this.getOutboundStats(_,u?this.lastNormalSendStats:void 0,c?this.lastRefSendStats:void 0,this.lastSendStats,h);O&&(T.outbound=[O])}if(this.uploadInboundStarted&&B){this.uploadCompensateStats(s);const O=this.getInboundStats(B,u?this.lastNormalRecvStats:void 0,c?this.lastRefRecvStats:void 0,this.lastRecvStats);O&&(T.inbound=O)}const D=(Q=this.requestTransportStats)===null||Q===void 0?void 0:Q.call(this).connectState;if(D&&(Array.isArray(T.misc)?T.misc[0]&&T.misc[0].addition&&(T.misc[0].addition[aT.RTC_PEER_CONNECTION_STATE]=l4[D]):T.misc=[{addition:{[aT.RTC_PEER_CONNECTION_STATE]:l4[D]}}]),Pn.needUploadStats.length>0||u){const O=Pn.needUploadStats.shift()||(Pn.visibility==="visible"?1:0);Array.isArray(T.misc)?T.misc[0]&&T.misc[0].addition&&(T.misc[0].addition[aT.PAGE_VISIBILITY]=O):T.misc=[{addition:{[aT.PAGE_VISIBILITY]:O}}]}this.needUploadStats.sendType&&(Array.isArray(T.outbound)&&T.outbound[0]&&T.outbound[0].high&&(T.outbound[0].high[ore.Video_Send_Type]=this.needUploadStats.sendType),this.needUploadStats.sendType=void 0),this.requestUploadStats(T)}this.lastRecvStats=B,this.lastSendStats=_,u&&(this.lastNormalRecvStats=B,this.lastNormalSendStats=_),c&&(this.lastRefRecvStats=B,this.lastRefSendStats=_)}startUploadWRTCStats(){if(this.uploadWRTCStatsTimer)return;this.uploadBaseStatsStarted=!0,Pn.startCollectStats();let s=1;this.uploadWRTCStatsTimer=window.setInterval(()=>{if(!this.uploadTransportStarted&&!this.uploadInboundStarted&&!this.uploadOutboundStarted){if(this.uploadBaseStatsStarted){var c,u;const h=(c=this.requestTransportStats)===null||c===void 0?void 0:c.call(this);return void(h&&((u=this.requestUploadStats)===null||u===void 0||u.call(this,{misc:[{addition:{[aT.RTC_PEER_CONNECTION_STATE]:l4[h.connectState]}}]})))}return this.stopUploadWRTCStats()}this.uploadWRTCStats(s),++s===Tce+1&&(s=1)},gm)}uploadCompensateStats(s){if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;const c=s%B9==0&&this.needUploadRenderFreezeTime;if(!this.uploadInboundStarted||!c)return;if(this.lastUploadCompensateTime===-1)return void(this.lastUploadCompensateTime=Date.now());const u=Math.max(-6e3,Date.now()-this.lastUploadCompensateTime-6e3);if(this.uploadCompensateDeltaTime+=u,this.lastUploadCompensateTime=Date.now(),this.uploadCompensateDeltaTime<6e3)return;const h=Math.min(Math.floor(this.uploadCompensateDeltaTime/6e3),10);this.uploadCompensateDeltaTime-=6e3*h;const _=this.requestStats(!0);new Array(h).fill(0).forEach(()=>{if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;const B={};if(this.uploadInboundStarted&&_){const Q=this.requestRemoteMedia()||[],T=[];Q.forEach(D=>{let O=ir(D,2),P=O[0],U=O[1];const H={peer:P.uid};if(P._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(P._videoSSRC)&&U.has(rr.VIDEO)&&P.videoTrack){const $=function(Z,te,se){if(!te.videoRecv.find(me=>me.ssrc===Z))return;const ge={};if(se&&se._player){const me=se._player,Qe=me.renderFreezeAccTime2,Oe=me.videoElementStatus;if(Pn.visibility==="visible"&&Oe===Ca.PLAYING&&Si().supportRequestVideoFrameCallback){const we=Math.min(6e3,Qe);me.renderFreezeAccTime2=Math.max(0,Qe-we),Qr(ge,Dl.Video_Render_Freeze_Time_Render2,we),de("USE_NEW_RENDER_FREEZE_TIME")&&Qr(ge,Dl.Video_Render_Freeze_Time_Render,we)}}return ge}(P._videoSSRC,_,P.videoTrack);$&&(H.video=$)}H.video&&T.push(H)}),T.length>0&&(B.inbound=T,this.requestUploadStats(B))}})}stopUploadWRTCStats(){window.clearInterval(this.uploadWRTCStatsTimer),this.uploadWRTCStatsTimer=void 0,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0}getTransportStats(s,c,u,h){if(!this.requestStats)return;if(!h)return s.rtt==null?void 0:{addition:{[Wa.RTT]:s.rtt,[Wa.CONN_TYPE]:void 0,[Wa.STATS_UPDATE_INTERVAL]:s.updateInterval||void 0}};const _=are(s);if(this.store.useP2P){if(u){const B=are(u);_[Wa.CONN_TYPE]&&B[Wa.CONN_TYPE]&&(_[Wa.CONN_TYPE]+=B[Wa.CONN_TYPE]<<3)}_[Wa.CONN_TYPE]?_[Wa.CONN_TYPE]+=110:_[Wa.CONN_TYPE]=110}else{_[Wa.CONN_TYPE]?_[Wa.CONN_TYPE]+=100:_[Wa.CONN_TYPE]=100;const B=function(Q,T){return T?[Math.ceil(8*(Q.transport.bytesSent-T.transport.bytesSent)/(Q.timestamp-T.timestamp)),Math.ceil(8*(Q.transport.bytesReceived-T.transport.bytesReceived)/(Q.timestamp-T.timestamp))]:[0,0]}(s,c);_[uz.Transport_Send_Bitrate]=B[0],_[uz.Transport_Recv_Bitrate]=B[1]}return{addition:_}}getOutboundStats(s,c,u,h,_){if(!this.requestUploadStats||!this.requestLocalMedia)return;const B=this.requestLocalMedia();if(!B||B.length===0)return;let Q,T,D;return B.forEach(O=>{let P=ir(O,2),U=P[0],H=P[1],$=H.track,Z=H.ssrcs;switch(U){case Qt.LocalVideoLowTrack:case Qt.LocalVideoTrack:if(U===Qt.LocalVideoTrack){var te;const se=function(Oe,we,Ne,et,st,Xt){const lr=we.videoSend.find(Nr=>Nr.ssrc===Oe);if(!lr)return;const ft={},Ir=lr.sentFrame,ui=lr.inputFrame;if(et&&(Qr(ft,Dl.Video_Send_Qp_Sum,lr.qpSumPerFrame),lr.codec&&Qr(ft,Dl.Video_Send_Codec,sre(lr.codec)),typeof lr.powerEfficientEncoder=="number"&&Qr(ft,Dl.Video_Send_Power_Efficient_Encoder,lr.powerEfficientEncoder),ui&&Ir)){const Nr=ui.frameRate,Ki=Ir.frameRate;ft[Dl.Video_Send_Freeze]=function(it,mt){let Gt=!0;return Gt=!(it<=5)&&(it<=10?mt<3:it<=20?mt<4:mt<5),Gt}(Nr,Ki)?1:0}if(st){switch(Ir&&(Qr(ft,Zr.Video_Send_Height,Ir.height),Qr(ft,Zr.Video_Send_Width,Ir.width),Qr(ft,Zr.Video_Send_Frame_Rate,Ir.frameRate)),ft[Zr.Video_Send_Disabled]=Ne._originMediaStreamTrack&&!Ne._originMediaStreamTrack.enabled||Ne._mediaStreamTrack&&!Ne._mediaStreamTrack.enabled?1:0,lr.adaptionChangeReason){case"none":ft[Zr.Video_Send_Adaptation]=0;break;case"cpu":ft[Zr.Video_Send_Adaptation]=1;break;case"bandwidth":ft[Zr.Video_Send_Adaptation]=2;break;case"other":ft[Zr.Video_Send_Adaptation]=3}let Nr=0;lr.adaptionChangeReason&&(Nr+=Are(lr.adaptionChangeReason)),we.qualityLimitationReason&&(Nr+=Are(we.qualityLimitationReason)<<3),ft[Zr.Video_Send_Adaptation]=Nr,ft[Zr.Video_Send_Player_Status]=ay[Ne._player?Ne._player.videoElementStatus:"uninit"],Qr(ft,Zr.Video_Send_Nacks,lr.nacksCount),Qr(ft,Zr.Video_Send_Plis,lr.plisCount),Qr(ft,Zr.Video_Send_Firs,lr.firsCount),Qr(ft,Zr.Video_Send_Avg_Encode,lr.avgEncodeMs),Qr(ft,Zr.Video_Send_Huge_Frame_Sent,lr.hugeFramesSent),Qr(ft,Zr.Video_Send_Bytes_Retransmit,lr.retransmittedBytesSent),Qr(ft,Zr.Video_Send_Packages_Retransmit,lr.retransmittedPacketsSent),Qr(ft,Zr.Video_Send_Key_Frames_Encoded,lr.keyFramesEncoded);const Ki=st.videoSend.find(it=>it.ssrc===Oe);if(Ki){let it=gm*B9;Ki.timestamp&&lr.timestamp&&(it=lr.timestamp-Ki.timestamp),Ki.packets!=null&&lr.packets!=null&&Qr(ft,Zr.Video_Send_Package_Rate,1e3*(lr.packets-Ki.packets)/it),lr.packetsLost!=null&&Ki.packetsLost!=null&&Qr(ft,Zr.Video_Send_Package_Lost,lr.packetsLost-Ki.packetsLost),Ki.bytes!=null&&lr.bytes!=null&&Qr(ft,Zr.Video_Send_Bitrate,8*(lr.bytes-Ki.bytes)/it)}}return ft}(Z[0].ssrcId,s,$,c,u),ge=$.__className__==="CameraVideoTrack"?3:Et(te=$._hints).call(te,gn.SCREEN_TRACK)?7:10;(this.lastExtendStats.sendType!==ge||_)&&(this.needUploadStats={sendType:ge},this.lastExtendStats.sendType=ge);const me=$&&function(Oe,we,Ne,et){const st=we.videoSend.find(lr=>lr.ssrc===Oe);if(!st)return null;const Xt={};if(et){const lr=st.inputFrame,ft=lr&&lr.height||Ne.videoHeight||0,Ir=lr&&lr.width||Ne.videoWidth||0,ui=lr&&lr.frameRate||0;Qr(Xt,Zr.Video_Capture_Height,ft),Qr(Xt,Zr.Video_Capture_Width,Ir),Qr(Xt,Zr.Video_Capture_Frame_Rate,ui)}return Xt}(Z[0].ssrcId,s,$,!!u),Qe=function(Oe,we){const Ne={};return we&&(Qr(Ne,Zr.Video_Send_Retransmit,Oe.bitrate.retransmit),Qr(Ne,Zr.Video_Send_Target_Encoded,Oe.bitrate.targetEncoded),Qr(Ne,Zr.Video_Send_Actual_Encoded,Oe.bitrate.actualEncoded),Qr(Ne,Zr.Video_Send_Transmit,Oe.bitrate.transmit),Qr(Ne,Zr.Video_Send_Bandwidth,Oe.sendBandwidth)),Ne}(s,!!u);T=Object.assign({},se,me,Qe)}else D=function(se,ge,me,Qe,Oe){const we=ge.videoSend.find(et=>et.ssrc===se);if(!we)return;const Ne={};if(Qe){const et=we.sentFrame;et&&(Qr(Ne,Zr.Video_Send_Low_Height,et.height),Qr(Ne,Zr.Video_Send_Low_Width,et.width),Qr(Ne,Zr.Video_Send_Low_Frame_Rate,et.frameRate));const st=Qe.videoSend.find(Xt=>Xt.ssrc===se);if(st){let Xt=gm*KF;st.timestamp&&we.timestamp&&(Xt=we.timestamp-st.timestamp),st.packets!=null&&we.packets!=null&&Qr(Ne,Zr.Video_Send_Low_Package_Rate,1e3*(we.packets-st.packets)/Xt),we.packetsLost!=null&&st.packetsLost!=null&&Qr(Ne,Zr.Video_Send_Low_Package_Lost,we.packetsLost-st.packetsLost),st.bytes!=null&&we.bytes!=null&&Qr(Ne,Zr.Video_Send_Low_Bitrate,8*(we.bytes-st.bytes)/Xt)}}return Ne}(Z[0].ssrcId,s,0,u);break;case Qt.LocalAudioTrack:Q=$&&function(se,ge,me,Qe,Oe,we){const Ne=ge.audioSend.find(st=>st.ssrc===se);if(!Ne)return;const et={};if(Oe){et[Zr.Audio_Send_Disabled]=me._originMediaStreamTrack&&!me._originMediaStreamTrack.enabled||me._mediaStreamTrack&&!me._mediaStreamTrack.enabled?1:0;const st=100*me._source.getAccurateVolumeLevel(),Xt=Ne.inputLevel;if(Xt!=null){const ft=Math.ceil(50*Math.log10(100*Xt+1));Qr(et,Zr.Audio_Send_Level,ft)}Qr(et,Zr.Audio_Capture_PCM_Level,st),Qr(et,Zr.Audio_Send_AEC_Return_Loss,Ne.aecReturnLoss),Qr(et,Zr.Audio_Send_AEC_Return_Loss_Enhancement,Ne.aecReturnLossEnhancement),Qr(et,Zr.Audio_Send_Bytes_Retransmit,Ne.retransmittedBytesSent),Qr(et,Zr.Audio_Send_Packages_Retransmit,Ne.retransmittedPacketsSent),et[Zr.Audio_Send_Freeze]=0;const lr=Oe.audioSend.find(ft=>ft.ssrc===se);if(lr){let ft=gm*KF;lr.timestamp&&Ne.timestamp&&(ft=Ne.timestamp-lr.timestamp),lr.bytes!=null&&Ne.bytes!=null&&Qr(et,Zr.Audio_Send_Bitrate,8*(Ne.bytes-lr.bytes)/ft),lr.packets!=null&&Ne.packets!=null&&Qr(et,Zr.Audio_Send_Package_Rate,1e3*(Ne.packets-lr.packets)/ft)}}return et}(Z[0].ssrcId,s,$,0,u)}}),{high:T,low:D,audio:Q}}getInboundStats(s,c,u,h){if(!this.requestRemoteMedia)return;const _=this.requestRemoteMedia()||[],B=[];return _.forEach(Q=>{let T=ir(Q,2),D=T[0],O=T[1];const P={peer:D.uid};let U;if(O.has(rr.VIDEO)&&D.videoTrack){const H=D._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(D._videoSSRC)||!1,$=D.videoTrack?function(Z,te,se,ge,me,Qe,Oe,we){const Ne=te.videoRecv.find(Nr=>Nr.ssrc===Z);if(!Ne)return;const et={},st=Ne.receivedFrame,Xt=Ne.outputFrame,lr=Ne.decodeFrameRate;Qr(et,Na.Video_Render_Frame_Rate_Decode,lr),Ne.framesRateFirefox&&Qr(et,Na.Video_Recv_Frame_Rate,Ne.framesRateFirefox),st&&Qr(et,Na.Video_Recv_Frame_Rate,st.frameRate),Qr(et,Na.Video_Recv_Frame_Dropped,Ne.framesDroppedCount),Qr(et,Na.Video_Recv_Bytes_Retransmit,Ne.retransmittedBytesReceived),Qr(et,Na.Video_Recv_Packages_Retransmit,Ne.retransmittedPacketsReceived),Qr(et,Na.Video_Recv_Packages_Discarded,Ne.packetsDiscarded),Qr(et,Na.Video_Recv_Avg_Decode,Ne.avgDecodeMs),Qr(et,Na.Video_Recv_Avg_Processing_Delay,Ne.avgProcessingDelayMs),Qr(et,Na.Video_Recv_Avg_Assembly_Time,Ne.avgFramesAssembledFromMultiplePacketsMs),Qr(et,Na.Video_Recv_Avg_Inter_Frame_Delay,Ne.avgInterFrameDelayMs),Qr(et,Na.Video_Recv_Key_Frames_Decoded,Ne.keyFramesDecoded);const ft=we&&we.videoRecv.find(Nr=>Nr.ssrc===Z);if(ft){const Nr=te.timestamp-we.timestamp||gm;Ne.packetsLost!=null&&ft.packetsLost!=null&&Qr(et,Na.Video_Recv_Package_Lost,Ne.packetsLost-ft.packetsLost),ft.bytes!=null&&Ne.bytes!=null&&Qr(et,Na.Video_Recv_Bitrate,8*(Ne.bytes-ft.bytes)/Nr),ft.packets!=null&&Ne.packets!=null&&Qr(et,Na.Video_Recv_Package_Rate,1e3*(Ne.packets-ft.packets)/Nr)}const Ir=Qe&&Qe.videoRecv.find(Nr=>Nr.ssrc===Z);if(Ir&&(Qr(et,Dl.Video_Recv_Qp_Sum,Ne.qpSumPerFrame),Ne.codec&&Qr(et,Dl.Video_Recv_Codec,sre(Ne.codec)),typeof Ne.powerEfficientDecoder=="number"&&Qr(et,Dl.Video_Recv_Power_Efficient_Decoder,Ne.powerEfficientDecoder),et[Dl.Video_Recv_Freeze]=ge&&m9.isRemoteVideoFreeze(se,Ne,Ir)?1:0),Oe){var ui;const Nr=Oe.videoRecv.find(it=>it.ssrc===Z);st?(Qr(et,Zr.Video_Recv_Height,st.height),Qr(et,Zr.Video_Recv_Width,st.width)):se&&(Qr(et,Zr.Video_Recv_Height,se._videoHeight||0),Qr(et,Zr.Video_Recv_Width,se._videoWidth||0)),Xt&&Qr(et,Zr.Video_Recv_Frame_Rate_Output,Xt.frameRate);const Ki=(ui=se._player)===null||ui===void 0?void 0:ui.rendFrameRate.toFixed(0);if(Ki&&Qr(et,Zr.Video_Render_Frame_Rate_Render,+Ki),Qr(et,Zr.Video_Recv_Jitter_Buffer,Ne.jitterBufferMs),Qr(et,Zr.Video_Recv_Current_Delay,Ne.currentDelayMs),Qr(et,Zr.Video_Recv_Firs,Ne.firsCount),Qr(et,Zr.Video_Recv_Nacks,Ne.nacksCount),Qr(et,Zr.Video_Recv_Plis,Ne.plisCount),se){et[Zr.Video_Recv_Disabled]=se._originMediaStreamTrack.enabled&&se._mediaStreamTrack.enabled?0:1;const it=se._player;if(it){const mt=it.freezeTimeCounterList,Gt=it.renderFreezeAccTime,at=it.renderFreezeAccTime2,ie=it.videoElementStatus;if(mt&&mt.length>0&&Qr(et,Dl.Video_Render_Freeze_Time,mt.splice(0,1)[0]),me&&Pn.visibility==="visible"&&ie===Ca.PLAYING&&Si().supportRequestVideoFrameCallback){const Te=Math.min(6e3,at);it.renderFreezeAccTime2=Math.max(0,at-Te),Qr(et,Dl.Video_Render_Freeze_Time_Render2,Te);const ke=Math.min(6e3,Gt);it.renderFreezeAccTime=Math.max(0,Gt-ke),Qr(et,Dl.Video_Render_Freeze_Time_Render,de("USE_NEW_RENDER_FREEZE_TIME")?Te:ke)}if(typeof Ne.totalFreezesDuration=="number"){const Te=Nr&&Nr.totalFreezesDuration?Ne.totalFreezesDuration-Nr.totalFreezesDuration:Ne.totalFreezesDuration;Qr(et,Zr.Video_Render_Freeze_Duration,1e3*Te)}}}if(et[Zr.Video_Recv_Player_Status]=ay[se._player?se._player.videoElementStatus:"uninit"],Nr&&Ne.totalInterFrameDelay!==void 0&&Ne.totalSquaredInterFrameDelay!==void 0&&Nr.totalInterFrameDelay!==void 0&&Nr.totalSquaredInterFrameDelay!==void 0){const it=Ne.totalInterFrameDelay-Nr.totalInterFrameDelay,mt=Ne.totalSquaredInterFrameDelay-Nr.totalSquaredInterFrameDelay,Gt=Ne.framesDecodeCount-Nr.framesDecodeCount,at=it/Gt*1e3,ie=Math.round(1e3*Math.sqrt((mt-Math.pow(it,2)/Gt)/Gt));!isNaN(ie)&&at+ie>Math.max(3*at,at+150)&&(et[Zr.Video_Recv_I_Frame_Delay]=ie)}}return et}(D._videoSSRC,s,D.videoTrack,H===!0,this.needUploadRenderFreezeTime,c,u,h):void 0;if($&&(P.video=$),D.videoTrack){const Z=s.videoRecv.find(te=>te.ssrc===D._videoSSRC);Z&&Z.estimatedPlayoutTimestamp&&(U=Z.estimatedPlayoutTimestamp)}}if(O.has(rr.AUDIO)&&D.audioTrack){const H=!D.hasAudio,$=D.audioTrack?function(Z,te,se,ge,me,Qe){let Oe=arguments.length>6&&arguments[6]!==void 0&&arguments[6];const we=te.audioRecv.find(Xt=>Xt.ssrc===Z);if(!we)return;const Ne={};Qr(Ne,Na.Audio_Recv_Jitter,we.jitterMs),Qr(Ne,Na.Audio_Recv_Bytes_Retransmit,we.retransmittedBytesReceived),Qr(Ne,Na.Audio_Recv_Packages_Retransmit,we.retransmittedPacketsReceived),Qr(Ne,Na.Audio_Recv_Packages_Discarded,we.packetsDiscarded),Qr(Ne,Na.Audio_Recv_Avg_Processing_Delay,we.avgProcessingDelayMs);const et=Qe&&Qe.audioRecv.find(Xt=>Xt.ssrc===Z);if(et){const Xt=gm;we.packets!=null&&et.packets!=null&&Qr(Ne,Na.Audio_Recv_Package_Rate,1e3*(we.packets-et.packets)/Xt),we.packetsLost!=null&&et.packetsLost!=null&&Qr(Ne,Na.Audio_Recv_Package_Lost,we.packetsLost-et.packetsLost)}if(ge){const Xt=we.receivedFrames,lr=we.droppedFrames;Xt!=null&&lr!=null&&(Ne[Dl.Audio_Recv_Freeze]=(st=Xt)===0||100*lr/st>20?1:0)}var st;if(me){const Xt=100*se._source.getAccurateVolumeLevel(),lr=we.outputLevel;if(lr!=null){const Ir=Math.ceil(50*Math.log10(100*lr+1));Qr(Ne,Zr.Audio_Render_Level,Ir)}Qr(Ne,Zr.Audio_Recv_PCM_Level,Xt),se&&(Ne[Zr.Audio_Recv_Disabled]=se._originMediaStreamTrack.enabled&&se._mediaStreamTrack.enabled?0:1),Qr(Ne,Zr.Audio_Recv_Jitter_Buffer,we.jitterBufferMs),Qr(Ne,Zr.Audio_Recv_Current_Delay,we.jitterBufferMs),Ne[Zr.Audio_Recv_Player_Status]=ay[rA.getPlayerState(se.getTrackId())];const ft=me.audioRecv.find(Ir=>Ir.ssrc===Z);if(ft&&(ft.bytes!=null&&we.bytes!=null&&Qr(Ne,Zr.Audio_Recv_Bitrate,8*(we.bytes-ft.bytes)/(gm*B9)),!Oe)){const Ir=we.concealedSamples-ft.concealedSamples;Ir>0&&Qr(Ne,Zr.Audio_Recv_Concealed_Samples,Ir);const ui=we.totalSamplesReceived-ft.totalSamplesReceived;ui>0&&Qr(Ne,Zr.Audio_Recv_Total_Samples_Received,ui);const Nr=we.freezeSamples80-ft.freezeSamples80;Nr>0&&Qr(Ne,Zr.Audio_Render_Freeze_Samples_80ms,Nr);const Ki=we.freezeSamples200-ft.freezeSamples200;Ki>0&&Qr(Ne,Zr.Audio_Render_Freeze_Samples_200ms,Ki);const it=we.freezeMs80-ft.freezeMs80;Qr(Ne,Zr.Audio_Render_Freeze_Time_80ms,it<0?0:it);const mt=we.freezeMs200-ft.freezeMs200;Qr(Ne,Zr.Audio_Render_Freeze_Time_200ms,mt<0?0:mt)}}return Ne}(D._audioSSRC,s,D.audioTrack,c,u,h,H):void 0;if($&&(P.audio=$),D.audioTrack&&U){const Z=s.audioRecv.find(te=>te.ssrc===D._audioSSRC);if(Z&&Z.estimatedPlayoutTimestamp){const te=Z.estimatedPlayoutTimestamp-U;P.audio?P.audio[Na.Audio_Recv_AV_Sync_TIME]=te:P.audio={[Na.Audio_Recv_AV_Sync_TIME]:te}}}}(P.video||P.audio)&&B.push(P)}),this.needUploadRenderFreezeTime=!this.needUploadRenderFreezeTime,B}startUploadTransportStats(){this.uploadTransportStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats()}stopUploadTransportStats(){this.uploadTransportStarted=!1}startUploadOutboundStats(){this.uploadOutboundStarted||(this.uploadOutboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=window.setInterval(()=>{if(!this.requestAllTracks||!this.requestUpload)return;const s=(this.requestAllTracks()||[]).find(c=>c instanceof xd);if(s&&s._external.getDenoiserStats){const c=s._external.getDenoiserStats();c&&this.requestUpload(Mu.DENOISER_STATS,c)}},2e3),this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=window.setInterval(()=>{!this.requestAllTracks||!this.requestUpload||this.requestAllTracks().forEach(s=>{s.getProcessorStats().forEach(c=>{this.requestUpload&&this.requestUpload(c.type,c.stats)})})},2e3))}stopUploadOutboundStats(){this.uploadOutboundStarted&&(this.uploadOutboundStarted=!1,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=void 0,this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=void 0)}startUploadInboundStats(){this.uploadInboundStarted||(this.uploadInboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=window.setInterval(()=>{!this.requestUpload||!this.requestRemoteMedia||(this.requestRemoteMedia()||[]).forEach(s=>{let c=ir(s,2),u=c[0],h=c[1];h.has(rr.VIDEO)&&u.videoTrack&&u.videoTrack.getProcessorStats().forEach(_=>{this.requestUpload&&this.requestUpload(_.type,_.stats)}),h.has(rr.AUDIO)&&u.audioTrack&&u.audioTrack.getProcessorStats().forEach(_=>{this.requestUpload&&this.requestUpload(_.type,_.stats)})})},2e3))}stopUploadInboundStats(){this.uploadInboundStarted&&(this.uploadInboundStarted=!1,this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0,this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=void 0)}startUploadExtensionUsageStats(){if(this.uploadExtensionUsageStarted)return;this.uploadExtensionUsageStarted=!0,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer);const s=new Map;this.uploadExtUsageStatsTimer=window.setInterval(async()=>{const c=Date.now(),u={connectionInterval:de("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3,details:[],lts:c};let h=[];const _=this.requestAllTracks&&this.requestAllTracks()||[];for(const O of _)!O.muted&&O.enabled&&(h=h.concat(await O.getProcessorUsage()));const B=this.requestRemoteMedia&&this.requestRemoteMedia()||[];for(const O of B){var Q=ir(O,2);const P=Q[0],U=Q[1];U.has(rr.VIDEO)&&P.videoTrack&&(h=h.concat(await P.videoTrack.getProcessorUsage())),U.has(rr.AUDIO)&&P.audioTrack&&(h=h.concat(await P.audioTrack.getProcessorUsage()))}if(h.length===0)return;u.details=function(O,P){const U={};for(const te of O){var H;const se=te.id,ge=te.value,me=te.level,Qe=te.direction,Oe=(H=P.get(se))!==null&&H!==void 0?H:0,we=ge===2?Oe+de("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3:Oe;var $,Z;P.set(se,we),U[se]?(ge===2&&(U[se].value=ge),me>U[se].level&&(U[se].level=me),Qe==="remote"&&(U[se].remoteUidCount+=1),U[se].totalTs=($=P.get(se))!==null&&$!==void 0?$:0):U[se]={value:ge,level:me,remoteUidCount:Qe==="local"?0:1,totalTs:(Z=P.get(se))!==null&&Z!==void 0?Z:0}}return Object.keys(U).map(te=>{const se=U[te];return{id:te,level:se.level,value:se.value,totalTs:se.totalTs}})}(h,s);const T=Date.now(),D=T>c?T:c+1;this.requestUpload&&this.requestUpload(Mu.EXTENSION_USAGE_STATS,{usageStats:u,sendTs:D})},de("EXTENSION_USAGE_UPLOAD_INTERVAL"))}stopUploadExtensionUsageStats(){this.uploadExtensionUsageStarted&&(this.uploadExtensionUsageStarted=!1,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer),this.uploadExtUsageStatsTimer=void 0)}stopUploadBaseStats(){this.uploadBaseStatsStarted=!1,Pn.stopCollectStats()}}const wce=de("ICE_RESTART_INTERVAL");let HF=new Map,AT=new Map,bp=[qs.UDP_TCP_RELAY,qs.TCP_RELAY,qs.RELAY],gz=de("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Si().supportPCSetConfiguration;function lre(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=HF.get(t.id);c&&(window.clearTimeout(c),HF.delete(t.id));const u=AT.get(t.id);s&&u&&u.index===bp.length-1&&(J.debug("[".concat(t.id,"] reset ICE restart policy")),AT.delete(t.id))}function dre(t,s,c){if(HF.size===0&&AT.size===0&&(Array.isArray(de("RESTART_SEQUENCE"))&&de("RESTART_SEQUENCE").length>0&&!function(D,O){if(D.length!==O.length)return!1;for(let P=0;PH===U).length!==O.filter(H=>H===U).length)return!1}return!0}(bp,de("RESTART_SEQUENCE"))&&(bp=de("RESTART_SEQUENCE").filter(D=>{var O;if(Et(O=Object.values(qs)).call(O,D))return!0}),J.debug("use reconnection policy from config distribution, queues: ".concat(bp.join(" => ")))),gz=de("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Si().supportPCSetConfiguration),bp.length===0)return void c();let u,h=AT.get(t.id)||{},_=h.index,B=_===void 0?0:_,Q=h.type;if(gz&&Q===qs.RELAY)return void c();let T=Q&&B>=bp.length-1;if(gz)Q=qs.RELAY;else{if(T)return void c();Q?(B++,Q=bp[B]):(Q=bp[0],B=0)}J.debug("[".concat(t.id,"] choose ICE restart policy: ").concat(Q,", index: ").concat(B)),s(Q),AT.set(t.id,{index:B,type:Q}),u=window.setTimeout(()=>dre(t,s,c),wce),HF.set(t.id,u)}var Ni;function ure(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function qh(t){for(var s=1;s{const _=await this.mutex.lock("Locking from P2PChannel.handleMuteLocalTrack");try{if(!this.connection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel.handleMuteLocalTrack before connection established."));const B=this.filterTobeMutedTracks(c);if(B.length===0)return void u();const Q=B.find(D=>D[0]==="videoLowTrack");if(Q){const D=Q[1];this.store.enableInstantMuteRestore?(D.track._originMediaStreamTrack.enabled=!1,J.info("[".concat(this.store.clientId,"] P2PChannel muteLocalLowTrack without close sender because enableInstantMuteRestore is true"))):D.track._originMediaStreamTrack.stop()}this.store.enableInstantMuteRestore?J.info("[".concat(this.store.clientId,"] P2PChannel muteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.muteLocal(B.map(D=>ir(D,2)[1].id));const T=this.createMuteMessage(B);await sn(this,Cr.RequestMuteLocal,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleUnmuteLocalTrack",async(c,u,h)=>{const _=await this.mutex.lock("Locking from P2PChannel.handleUnmuteLocalTrack");try{if(!this.connection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel.handleUnmuteLocalTrack before connection established."));const B=this.filterTobeUnmutedTracks(c);if(B.length===0)return void u();const Q=B.find(D=>D[0]==="videoLowTrack");if(Q){const D=Q[1];if(this.store.enableInstantMuteRestore)D.track._originMediaStreamTrack.enabled=!0,J.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalLowTrack without close sender because enableInstantMuteRestore is true"));else{if(D.track._originMediaStreamTrack.stop(),!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding){const O=c._mediaStreamTrack.clone();D.track._mediaStreamTrack=O,D.track._originMediaStreamTrack=O}else{const O=dz(c,nh(this,Cr.RequestLowStreamParameter));D.track._mediaStreamTrack=O,D.track._originMediaStreamTrack=O}await new Ut((O,P)=>{this.handleReplaceTrack(D.track,O,P,!0)})}}this.store.enableInstantMuteRestore?J.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.unmuteLocal(B.map(D=>ir(D,2)[1].id));const T=this.createUnmuteMessage(B);await sn(this,Cr.RequestUnmuteLocal,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleUpdateVideoEncoder",async(c,u,h,_)=>{let B;_||(B=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoEncoder"));try{const T=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.connection||!T||T.track!==c||this.state!==ln.Connected)return void u();const D=T.id,O=T.track;await this.connection.updateSendParameters(D,O),await this.connection.updateEncoderConfig(D,O),this.emit(Cr.UpdateVideoEncoder,O),u()}catch(T){h(T)}finally{var Q;(Q=B)===null||Q===void 0||Q()}}),ae(this,"handleUpdateVideoSendParameters",async(c,u,h)=>{const _=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoSendParameters");try{const B=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.connection||!B||B.track!==c||this.state!==ln.Connected)return void u();const Q=B.id,T=B.track;await this.connection.updateSendParameters(Q,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleReplaceMixingTrack",async(c,u,h,_)=>{if(!this.connection||this.state!==ln.Connected)return void u();const B=Az([c]);let Q;J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(B.getTrackId(),"]")),typeof _=="boolean"&&_||(Q=await this.mutex.lock("From P2PChannel.handleReplaceMixingTrack"));try{await this.replaceTrack(c,B),u()}catch(D){h(D)}finally{var T;(T=Q)===null||T===void 0||T()}}),ae(this,"handleReplaceTrack",async(c,u,h,_)=>{let B;J.debug("[".concat(this.store.clientId,"] P2PChannel handleReplaceTrack for [track-id-").concat(c.getTrackId(),"]")),typeof _=="boolean"&&_||(B=await this.mutex.lock("From P2PChannel.handleReplaceTrack"));try{var Q;const D=Array.from(this.localTrackMap.entries()).find(O=>{let P=ir(O,2)[1].track;return c===P});if(!this.connection||!D||this.state!==ln.Connected)return void u();if(await((Q=this.connection)===null||Q===void 0?void 0:Q.replaceTrack(c,D[1].id)),this.isPlanB){const O=D[1];O.id=c._mediaStreamTrack.id,this.localTrackMap.set(D[0],O)}if(D[0]===Qt.LocalVideoTrack&&!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding){const O=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(O){const P=c._mediaStreamTrack.clone();O.track._originMediaStreamTrack.stop(),O.track._mediaStreamTrack=P,O.track._originMediaStreamTrack=P,await new Ut((U,H)=>{this.handleReplaceTrack(O.track,U,H,!0)})}}u()}catch(D){h(D)}finally{var T;(T=B)===null||T===void 0||T()}}),ae(this,"handleGetRTCStats",c=>{c(this.statsCollector.getRTCStats())}),ae(this,"handleGetLocalVideoStats",c=>{c(this.statsCollector.getLocalVideoTrackStats())}),ae(this,"handleGetLocalAudioStats",c=>{c(this.statsCollector.getLocalAudioTrackStats())}),ae(this,"handleGetRemoteVideoStats",c=>this.statsCollector.getRemoteVideoTrackStats(c.uid)[c.uid]),ae(this,"handleGetRemoteAudioStats",c=>this.statsCollector.getRemoteAudioTrackStats(c.uid)[c.uid]),this.store=t,this.statsCollector=s,this.statsCollector.addP2PChannel(this),this.statsUploader=new cre(this.store),this.bindStatsUploaderEvents(),this.mutex=new ra("P2PChannel-mutex",this.store.clientId),this.isPlanB=!Si().supportUnifiedPlan||de("CHROME_FORCE_PLAN_B")&&Al(),this.shouldForwardP2PCreation=de("FORWARD_P2P_CREATION")&&Si().supportPCSetConfiguration&&OR(),this.shouldForwardP2PCreation&&this.recreateConnection()}async startP2PConnection(t,s){var c;this.state=ln.New,this._forceTurn=lz(t),J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] forceTurn: ").concat(this._forceTurn));const u=this.shouldForwardP2PCreation&&((c=this.connection)===null||c===void 0?void 0:c.peerConnectionState)==="closed";if((!this.shouldForwardP2PCreation||u||s)&&((u||s)&&this.connection&&(J.warning("[".concat(this.store.clientId,"] P2PChannel.startP2PConnection ForwardP2P closed.")),this.resetConnection(this.connection)),this.recreateConnection(t)),!this.connection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel.startConnection before P2PConnection initialization .");return this._pcStatsUploadType=de("NEW_ICE_RESTART")?MA.FIRST_CONNECTION:MA.OLD_FIRST_CONNECTION,this._isTryConnecting=!0,this._isStartRestartIce=!1,this._iceError=null,this.connection.setConfiguration(t),this.connection.establishPromise}updateConnectionConfiguration(t){var s;(s=this.connection)===null||s===void 0||s.setConfiguration(t),this._p2pBySDPEndPoint=!0}async connect(t){if(!this.connection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel.connect before P2PChannel.startP2PConnection .");if(!this.isPreallocation()||this.state!==ln.Connected){this.store.peerConnectionStart();const s=await this.connection.connect(t);return this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=ln.Connected,s}if(this.connection instanceof vl||this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"){const s=this.connection.checkDtlsParameters(t.dtlsParameters.fingerprints),c=YX(t.iceParameters.iceUfrag,t.iceParameters.icePwd);c||J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] ice parameters mismatch, length: ").concat(t.iceParameters.iceUfrag.length," / ").concat(t.iceParameters.icePwd.length));const u=this.connection.checkIceParameters(t.iceParameters),h=s||!c||u&&!(this.connection instanceof vl);(h||u)&&(J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] dtls parameters mismatch, ").concat(h?"try next":"restart ICE")),qt.reportApiInvoke(this.store.sessionId,{name:s?Ti.MISMATCH_DTLS_PARAMETERS:Ti.MISMATCH_ICE_PARAMETERS,options:s?[t.dtlsParameters.fingerprints]:[t.iceParameters],tag:vn.TRACER}).onSuccess(),setTimeout(()=>{h?this.emit(Cr.RequestReconnect):u&&this.emit(Cr.RequestRestartICE,qs.UDP_RELAY)}))}await this.connection.updateRemoteConnect(t)}updateRemoteRTPCapabilities(t){const s=Array.from(this.localTrackMap.entries()).filter(h=>{var _;let B=ir(h,1)[0];return Et(_=[Qt.LocalVideoLowTrack,Qt.LocalVideoTrack]).call(_,B)}),c=s.map(h=>ir(h,2)[1].id),u=s.map(h=>ir(h,1)[0]);if(this.connection instanceof vl||this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"){if(qt.updateRemoteRTPCapabilities(this.store.sessionId,{trackTypes:JSON.stringify(u),localCodecs:JSON.stringify(this.connection.localCodecs),remoteCodecs:JSON.stringify(t)}),!Et(t).call(t,this.store.codec)){const h=["vp9","vp8","h264"].find(_=>Et(t).call(t,_));h&&(this.store.codec=h,J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId," updateRemoteRTPCapabilities] default codec is not available, hence the fallback to ").concat(h,".")))}this.connection.updateRemoteRTPCapabilities(c,t)}}async getEstablishParams(){var t;return this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof vl&&this.connection.peerConnectionState!=="closed"&&Et(t=[ln.New,ln.Connected]).call(t,this.state)?this.connection.establishPromise:void 0}async publishDataChannel(t){if(!this.connection||this.state!==ln.Connected){if(this.state===ln.Disconnected)throw new tt(Ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");return t.forEach(c=>{var u;Et(u=this.pendingLocalDataChannels).call(u,c)||this.pendingLocalDataChannels.push(c)}),[]}const s=this.filterTobePublishedDataChannels(t);return s.length===0?[]:(s.forEach(c=>{const u=Date.now();this.store.publish(c.id.toString(),"datachannel",u)}),await this.connection.createDataChannels(this.store.uid,s),s.forEach(c=>{this.localDataChannels.push(c);const u=Date.now();this.store.publish(c.id+"","datachannel",void 0,u)}),t.map(c=>({streamId:c.id,ordered:c.ordered,maxRetransmits:c.maxRetransmits,metadata:c.metadata,channelId:c._originDataChannelId})))}publish(t,s,c){var u=this;return AA(function*(){const h=yield Tr(u.mutex.lock("From P2PChannel.publish"));try{var _;const B=u.connection&&Et(_=["disconnected","failed"]).call(_,u.connection.peerConnectionState);if(!u.connection||u.state!==ln.Connected||B){if(u.state===ln.Disconnected)throw new tt(Ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");u.throwIfTrackTypeNotMatch(t);const T=t.filter(D=>u.pendingLocalTracks.indexOf(D)===-1);return u.pendingLocalTracks=u.pendingLocalTracks.concat(T),void(B&&(u._isWaitPcToRePub=!0))}u.store.pubId=u.store.pubId+1,_A.markPublishStart(u.store.clientId,u.store.pubId);const Q=u.filterTobePublishedTracks(t,s,c);if(Q.length===0)return void(yield Tr(u.tryToUnmuteAudio(t)));yield*Qc(gre(u.doPublish(u.connection,Q)))}finally{h()}})()}doPublish(t,s){var c=this;return AA(function*(){s.forEach(U=>{let H=U.track,$=U.type;const Z=Date.now();c.store.publish(H.getTrackId(),$===Qt.LocalAudioTrack?"audio":"video",Z)}),c.bindLocalTrackEvents(s);const u=s.map(U=>U.track),h=yield Tr(t.send(u,c.store.codec,c.store.audioCodec)),_=(yield Tr(h.next())).value,B=c.createGatewayPublishMessage(s,_);let Q;try{Q=yield B}catch(U){throw h.throw(U),(U==null?void 0:U.code)===Ce.WS_ABORT&&s.forEach(H=>{let $=H.track;c.pendingLocalTracks.indexOf($)===-1&&c.pendingLocalTracks.push($)}),c.unbindLocalTrackEvents(s),U}const T=c.mapPubResToRemoteConfig(B,Q,u),D=(yield Tr(h.next(T))).value;if(c.state===ln.Disconnected)throw new tt(Ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");de("ENABLE_VIDEO_SEI");const O=de("ENABLE_ENCODED_TRANSFORM"),P=de("ENABLE_AUDIO_METADATA");u.forEach(async U=>{const H=U.getRTCRtpTransceiver();if(!H||!O)return;const $=NF(),Z=$.interceptLocalVideoFrame,te=$.interceptLocalAudioFrame;U.trackMediaType===rr.VIDEO?await Z(H.sender,U):U.trackMediaType===rr.AUDIO&&await te(H.sender,{metadata:P?()=>{const se=U.metadata.shift();return se&&se.value}:void 0})}),s.forEach(U=>{let H=U.type;c.statsCollector.addLocalStats(H)}),c.assignLocalTracks(s,D),c.statsUploader.startUploadOutboundStats(),s.forEach(U=>{let H=U.track,$=U.type;const Z=Date.now();c.store.publish(H.getTrackId(),$===Qt.LocalAudioTrack?"audio":"video",void 0,Z)})})()}async updateVideoStreamParameter(t,s){const c=this.localTrackMap.get(s);if(!c||!this.connection)return;if(!(c.track instanceof pn))return J.warn("[updateVideoStreamParameter]: track is not an instance of LocalVideoTrack");const u=c.track,h=function(_,B){const Q={};return _.height&&_.width&&(Q.scaleResolutionDownBy=xX(_,B)),Q.maxFramerate=_.framerate?dc(_.framerate):void 0,Q.maxBitrate=_.bitrate?1e3*_.bitrate:void 0,Q}(t,u);if(u._encoderConfig||(u._encoderConfig={}),s!==Qt.LocalVideoLowTrack||!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding)h.scaleResolutionDownBy!=null&&(u._encoderConfig.scaleResolutionDownBy=h.scaleResolutionDownBy);else{const _=u._originMediaStreamTrack;if(!_.canvas)return J.warn("[".concat(u.getTrackId(),"] no canvas on track"));(function(B,Q){const T=B.canvas;Q.width&&(T.width=dc(Q.width)),Q.height&&(T.height=dc(Q.height)),Q.framerate&&(T.stopCapture&&T.stopCapture(),T.stopCapture=hi(()=>{!T.startCapture&&T.stopCapture&&T.stopCapture(),T.startCapture&&T.startCapture()},dc(Q.framerate)))})(_,t)}h.maxBitrate!=null&&(u._encoderConfig.bitrateMax=h.maxBitrate/1e3),h.maxFramerate!=null&&(u._encoderConfig.frameRate&&typeof u._encoderConfig.frameRate=="object"?u._encoderConfig.frameRate.max=h.maxFramerate:u._encoderConfig.frameRate={max:h.maxFramerate}),J.debug("[".concat(u.getTrackId(),"] LowStreamEncoderConfig: , ").concat(JSON.stringify(u._encoderConfig))),await this.connection.updateRtpSenderEncodings(u)}publishLowStream(t){var s=this;return AA(function*(){if(!s.connection||s.state!==ln.Connected)return;const c=yield Tr(s.mutex.lock("Locking from P2PChannel.publishLowStream"));try{const h=s.localTrackMap.get(Qt.LocalVideoTrack);if(!h)throw new tt(Ce.UNEXPECTED_ERROR,"Could not find high stream");if(s.localTrackMap.has(Qt.LocalVideoLowTrack))throw new tt(Ce.UNEXPECTED_ERROR,"[".concat(s.store.clientId,"] Can't publish low stream when stream already publish"));const _=[{track:s.getLowVideoTrack(h.track,t),type:Qt.LocalVideoLowTrack}];if(yield*Qc(gre(s.doPublish(s.connection,_))),h.track.muted||!h.track.enabled){var u;const B=(u=s.localTrackMap.get(Qt.LocalVideoLowTrack))===null||u===void 0?void 0:u.id;B!==void 0&&(yield Tr(s.connection.muteLocal([B])))}}finally{c()}})()}async republish(){this.pendingLocalTracks.length>0&&(J.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await $o(this,Cr.RequestRePublish,this.pendingLocalTracks),this.emit(Cr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[]),this.pendingLocalDataChannels.length>0&&(J.debug("Emit P2PChannelEvents.RequestRePublishDataChannel to republish datachannels."),await $o(this,Cr.RequestRePublishDataChannel,this.pendingLocalDataChannels),this.pendingLocalDataChannels=[]),this._isWaitPcToRePub=!1}async reSubscribe(t){for(let s=this.pendingRemoteTracks.length-1;s>=0;s--){const c=this.pendingRemoteTracks[s],u=c.user,h=c.kind;(h!==rr.AUDIO||u._audio_added_&&u._audioSSRC)&&(h!==rr.VIDEO||u._video_added_&&u._videoSSRC)||this.pendingRemoteTracks.splice(s,1)}if(t)await $o(this,Cr.RequestReSubscribe,this.pendingRemoteTracks);else for(const s of this.pendingRemoteTracks){const c=s.user,u=s.kind;await this.subscribe(c,u,u===rr.VIDEO?c._videoSSRC:c._audioSSRC)}this.pendingRemoteTracks.forEach(s=>{let c=s.user;this.emit(Cr.MediaReconnectEnd,c.uid)}),this.pendingRemoteTracks=[]}async unpublish(t){if(!this.connection||this.state!==ln.Connected)return void t.forEach(u=>{const h=this.pendingLocalTracks.indexOf(u);h!==-1&&this.pendingLocalTracks.splice(h,1)});const s=this.filterTobeUnpublishedTracks(t);if(s.length===0)return;const c=s.find(u=>u[0]==="videoLowTrack");return c&&c[1].track.close(),this.doUnpublish(this.connection,s)}async unpublishDataChannel(t){if(!this.connection||this.state!==ln.Connected)return void t.forEach(c=>{const u=this.pendingLocalDataChannels.indexOf(c);u!==-1&&this.pendingLocalDataChannels.splice(u,1)});const s=this.filterTobeUnpublishedDataChannels(t);return s.length!==0?(s.forEach(c=>{const u=this.localDataChannels.indexOf(c);u!==-1&&this.localDataChannels.splice(u,1)}),this.localDataChannels.length===0&&await this.connection.stopDataChannels(this.store.uid),s.map(c=>c.id)):void 0}async unpublishLowStream(){if(!this.connection||this.state!==ln.Connected)return;const t=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(!t)return;t.track.close();const s=[[Qt.LocalVideoLowTrack,t]];return this.doUnpublish(this.connection,s)}async doUnpublish(t,s){const c=this.createGatewayUnpublishMessage(s);return await t.stopSending(s.map(u=>ir(u,2)[1].id)),this.withdrawLocalTracks(s),this.unbindLocalTrackEvents(s.map(u=>{let h=ir(u,2);return{type:h[0],track:h[1].track}})),s.forEach(u=>{let h=ir(u,1)[0];this.statsCollector.removeLocalStats(h)}),this.localTrackMap.size===0&&this.statsUploader.stopUploadOutboundStats(),c}async subscribeDataChannel(t,s){if(!this.connection||this.state!==ln.Connected)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");const c=s.filter(u=>{var h;return!((h=this.remoteDataChannelMap.get(t))!==null&&h!==void 0&&h.get(u.id))});if(c.length!==0)return await this.connection.createDataChannels(t.uid,c),c.forEach(u=>{var h;this.remoteDataChannelMap.has(t)?(h=this.remoteDataChannelMap.get(t))===null||h===void 0||h.set(u.id,u):this.remoteDataChannelMap.set(t,new Map([[u.id,u]]));const _=this.pendingRemoteDataChannels.findIndex(B=>{let Q=B.user,T=B.id;return Q.uid===t.uid&&T===u.id});_!==-1&&this.pendingRemoteDataChannels.splice(_,1)}),c.map(u=>u.id)}async subscribe(t,s,c,u,h){var _;if(!this.connection||this.state!==ln.Connected)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");if((_=this.remoteUserMap.get(t))!==null&&_!==void 0&&_.has(s))return;let B,Q,T,D;const O=this.connection.getPreMedia(c);if(O)J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] preSSRCMap has ssrcId: ").concat(c,", no need to send sub to gateway.")),T=O.transceiver,B=O.track,Q=O.mid,D=O.player,O.firstVideoRender&&this.store.firstVideoFrameDecoded(t.uid,{firstPreRender:O.firstVideoRender});else if(h){const H=h.find(Z=>Z.stream_type===s);if(!H)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot subscribe to remote ".concat(s," for user: ").concat(t.uid," because subscribe answer from gateway does not contain stream_type: ").concat(s,"."));const $=await this.connection.receive(s,H.ssrcs,String(t._uintid),H.attributes);(this.connection instanceof vl||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(T=$.transceiver),B=$.track,Q=$.id}else{const H=await this.connection.receive(s,[{ssrcId:c,rtx:u}],String(t._uintid),void 0);(this.connection instanceof vl||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(T=H.transceiver),B=H.track,Q=H.id}if(s===rr.AUDIO?(t._audioTrack?t._audioTrack._updateOriginMediaStreamTrack(B):(t._audioTrack=new an(B,t.uid,t._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(t._audioTrack.getTrackId()))),T&&t._audioTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._audioTrack)):(t._videoTrack?t._videoTrack._updateOriginMediaStreamTrack(B):(t._videoTrack=new Fd(B,t.uid,t._uintid,this.store,D),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(t._videoTrack.getTrackId())),t._videoTrack.once($1.PLAY_START,()=>{this.store.firstVideoFrameDecoded(t.uid,{playStart:Date.now()})}),t._videoTrack.once($1.PLAY_END,()=>{this.store.firstVideoFrameDecoded(t.uid,{playEnd:Date.now()}),this.reportVideoFirstFrameRender(t)}),D?t._videoTrack.once($1.FIRST_FRAME_RENDER,()=>{this.store.firstVideoFrameDecoded(t.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(t)}):t._videoTrack.once($1.FIRST_FRAME_DECODED,()=>{this.store.firstVideoFrameDecoded(t.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(t)})),T&&t._videoTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._videoTrack)),T&&de("ENABLE_ENCODED_TRANSFORM")){const H=NF(),$=H.interceptRemoteVideoFrame,Z=H.interceptRemoteAudioFrame;s==rr.VIDEO?await $(T.receiver,{onSei:de("ENABLE_VIDEO_SEI")&&(te=>{var se;return(se=t._videoTrack)===null||se===void 0?void 0:se._onSei(te)}),onFirstFrame:te=>{var se;const ge=Array.from(js(se=this.remoteUserMap).call(se)).find(me=>me._videoSSRC===te.ssrc);ge&&this.store.firstVideoFrameDecoded(ge.uid,{firstReceivedEncodedFrame:Date.now(),frameType:te.type,rtpTimestamp:te.rtpTimestamp,framePayloadType:te.payloadType,frameDataLength:te.length,mimeType:te.mimeType})}}):s==rr.AUDIO&&await Z(T.receiver,{enableTopn:!!de("ENABLE_AUDIO_TOPN"),enableMetadata:!!de("ENABLE_AUDIO_METADATA"),enablePts:!!de("ENABLE_AUDIO_PTS"),onMetadata:te=>{this.safeEmit(Cr.AudioMetadata,te)},onPts:te=>{this.safeEmit(Cr.AudioPts,te)}})}const P=this.remoteUserMap.get(t);P?P.set(s,Q):this.remoteUserMap.set(t,new Map([[s,Q]])),this.statsCollector.addRemoteStats(t.uid),this.statsUploader.startUploadInboundStats();const U=this.pendingRemoteTracks.findIndex(H=>{let $=H.user,Z=H.kind;return $.uid===t.uid&&s===Z});U!==-1&&(this.pendingRemoteTracks.splice(U,1),this.emit(Cr.MediaReconnectEnd,t.uid))}async massSubscribe(t){return this.massSubscribeNoLock(t)}async massSubscribeNoLock(t){if(!this.connection||this.state!==ln.Connected)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribeAll remote users when peerConnection disconnected.");t=t.filter(h=>{var _;let B=h.user,Q=h.mediaType;return!((_=this.remoteUserMap.get(B))!==null&&_!==void 0&&_.has(Q))});const s=[],c=new Map;t.forEach(h=>{if(!this.connection)return;const _=this.connection.getPreMedia(h.ssrcId);if(_){const B=_.track,Q=_.mid,T=_.transceiver,D=_.player;c.set(h.ssrcId,{track:B,id:Q,transceiver:T,player:D})}else s.push(h)});const u=await this.connection.batchReceive(s.map(h=>{let _=h.user;return{kind:h.mediaType,ssrcMsg:[{ssrcId:h.ssrcId,rtx:h.rtxSsrcId}],mslabel:String(_._uintid)}}));s.forEach((h,_)=>{c.set(h.ssrcId,u[_])});for(const h of t){const _=h.user,B=h.mediaType,Q=h.ssrcId,T=c.get(Q);if(!T)return void J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] cannot find ").concat(_.uid," subscribe data,").concat(B,", ").concat(Q));const D=T.track,O=T.id,P=T.transceiver,U=T.player;if(P&&de("ENABLE_ENCODED_TRANSFORM")){const Z=NF(),te=Z.interceptRemoteVideoFrame,se=Z.interceptRemoteAudioFrame;B==rr.VIDEO?await te(P.receiver,{onSei:de("ENABLE_VIDEO_SEI")&&(ge=>{var me;return(me=_._videoTrack)===null||me===void 0?void 0:me._onSei(ge)}),onFirstFrame:ge=>{var me;const Qe=Array.from(js(me=this.remoteUserMap).call(me)).find(Oe=>Oe._videoSSRC===ge.ssrc);Qe&&this.store.firstVideoFrameDecoded(Qe.uid,{firstReceivedEncodedFrame:Date.now(),frameType:ge.type,rtpTimestamp:ge.rtpTimestamp,framePayloadType:ge.payloadType,frameDataLength:ge.length,mimeType:ge.mimeType})}}):B==rr.AUDIO&&await se(P.receiver,{enableTopn:!!de("ENABLE_AUDIO_TOPN"),enableMetadata:!!de("ENABLE_AUDIO_METADATA"),enablePts:!!de("ENABLE_AUDIO_PTS"),onMetadata:ge=>{this.safeEmit(Cr.AudioMetadata,ge)},onPts:ge=>{this.safeEmit(Cr.AudioPts,ge)}})}if(B===rr.AUDIO?(_._audioTrack?_._audioTrack._updateOriginMediaStreamTrack(D):(_._audioTrack=new an(D,_.uid,_._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(_._audioTrack.getTrackId()))),P&&_._audioTrack._updateRtpTransceiver(P),this.bindRemoteTrackEvents(_,_._audioTrack)):(_._videoTrack?_._videoTrack._updateOriginMediaStreamTrack(D):(_._videoTrack=new Fd(D,_.uid,_._uintid,this.store,U),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(_._videoTrack.getTrackId()))),P&&_._videoTrack._updateRtpTransceiver(P),this.bindRemoteTrackEvents(_,_._videoTrack)),de("ENABLE_VIDEO_SEI")&&P){const Z=NF(),te=Z.interceptRemoteVideoFrame,se=Z.interceptRemoteAudioFrame;B==rr.VIDEO?await te(P.receiver,{onSei:ge=>{var me;(me=_._videoTrack)===null||me===void 0||me._onSei(ge)},onFirstFrame:ge=>{var me;const Qe=Array.from(js(me=this.remoteUserMap).call(me)).find(Oe=>Oe._videoSSRC===ge.ssrc);Qe&&this.store.firstVideoFrameDecoded(Qe.uid,{firstReceivedEncodedFrame:Date.now(),frameType:ge.type,rtpTimestamp:ge.rtpTimestamp,framePayloadType:ge.payloadType,frameDataLength:ge.length,mimeType:ge.mimeType})}}):B==rr.AUDIO&&await se(P.receiver)}const H=this.remoteUserMap.get(_);H?H.set(B,O):this.remoteUserMap.set(_,new Map([[B,O]])),this.statsCollector.addRemoteStats(_.uid),this.statsUploader.startUploadInboundStats();const $=this.pendingRemoteTracks.findIndex(Z=>{let te=Z.user,se=Z.kind;return te.uid===_.uid&&B===se});$!==-1&&(this.pendingRemoteTracks.splice($,1),this.emit(Cr.MediaReconnectEnd,_.uid))}}async unsubscribe(t,s,c){const u=this.pendingRemoteTracks.filter(B=>{let Q=B.user,T=B.kind;return s!==void 0?Q.uid===t.uid&&s===T:Q.uid===t.uid});if(u.forEach(B=>{const Q=this.pendingRemoteTracks.indexOf(B);this.pendingRemoteTracks.splice(Q,1)}),this.connection&&this.state===ln.Connected||c||u.forEach(B=>{let Q=B.kind;var T;if(Q===rr.AUDIO)(T=t._audioTrack)===null||T===void 0||T._destroy(),t._audioTrack=void 0;else if(Q===rr.VIDEO){var D;(D=t._videoTrack)===null||D===void 0||D._destroy(),t._videoTrack=void 0}}),!this.connection||this.state!==ln.Connected)return;const h=this.filterTobeUnSubscribedTracks(t,s);if(h.length===0)return;await this.connection.stopReceiving(h.map(B=>ir(B,2)[1].id));const _=this.createUnsubscribeMessage(h);return this.withdrawRemoteTracks(h),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),h.forEach(B=>{let Q=ir(B,2),T=Q[0],D=Q[1].kind;var O,P;if(D===rr.VIDEO&&T._videoSSRC&&((O=this.connection)===null||O===void 0||O.setStatsRemoteVideoIsReady(T._videoSSRC,!1)),D===rr.VIDEO)this.unbindRemoteTrackEvents(T._videoTrack),c||((P=T._videoTrack)===null||P===void 0||P._destroy(),T._videoTrack=void 0);else if(D===rr.AUDIO){var U;this.unbindRemoteTrackEvents(T._audioTrack),!c&&((U=T._audioTrack)===null||U===void 0||U._destroy(),T._audioTrack=void 0)}}),_}async unsubscribeDataChannel(t,s){if(s.forEach(h=>{const _=this.pendingRemoteDataChannels.findIndex(B=>B.id===h.id);_!==-1&&this.pendingRemoteDataChannels.splice(_,1)}),!this.connection)return;const c=this.filterTobeUnSubscribedDataChannels(t,s);if(c.length===0)return;s.forEach(h=>{h._close()});const u=this.remoteDataChannelMap.get(t);return c.forEach(h=>{u&&u.delete(h.id)}),u&&u.size===0&&(this.remoteDataChannelMap.delete(t),await this.connection.stopDataChannels(t.uid)),c.map(h=>h.id)}async massUnsubscribe(t){return this.massUnsubscribeNoLock(t)}async massUnsubscribeNoLock(t){let s=[];for(const h of t){const _=h.user,B=h.mediaType,Q=this.pendingRemoteTracks.filter(T=>{let D=T.user,O=T.kind;return B!==void 0?D.uid===_.uid&&B===O:D.uid===_.uid});Q.forEach(T=>{const D=this.pendingRemoteTracks.indexOf(T);this.pendingRemoteTracks.splice(D,1)}),s=s.concat(Q)}if(!this.connection||this.state!==ln.Connected)return void s.forEach(h=>{let _=h.user,B=h.kind;var Q;if(B===rr.AUDIO)(Q=_._audioTrack)===null||Q===void 0||Q._destroy(),_._audioTrack=void 0;else if(B===rr.VIDEO){var T;(T=_._videoTrack)===null||T===void 0||T._destroy(),_._videoTrack=void 0}});const c=VA(t).call(t,(h,_)=>{let B=_.user,Q=_.mediaType;const T=this.filterTobeUnSubscribedTracks(B,Q);return h.concat(T)},[]);if(c.length===0)return;await this.connection.stopReceiving(c.map(h=>ir(h,2)[1].id));const u=this.createUnsubscribeAllMessage(c);return this.withdrawRemoteTracks(c),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),c.forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1].kind;var T,D;if(Q===rr.VIDEO&&B._videoSSRC&&((T=this.connection)===null||T===void 0||T.setStatsRemoteVideoIsReady(B._videoSSRC,!1)),Q===rr.VIDEO)this.unbindRemoteTrackEvents(B._videoTrack),(D=B._videoTrack)===null||D===void 0||D._destroy(),B._videoTrack=void 0;else if(Q===rr.AUDIO){var O;this.unbindRemoteTrackEvents(B._audioTrack),(O=B._audioTrack)===null||O===void 0||O._destroy(),B._audioTrack=void 0}}),u}isPreSubScribe(t){return!this.connection||this.state!==ln.Connected?!1:!!this.connection.getPreMedia(t)}async muteRemote(t,s){if(!this.connection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(t.uid,"."));if(!c.get(s))return void J.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."));const u=s===rr.VIDEO?t._videoSSRC:t._audioSSRC;u!==void 0&&this.connection.setStatsRemoteVideoIsReady(u,!1)}async unmuteRemote(t,s){return this.unmuteRemoteNoLock(t,s)}async unmuteRemoteNoLock(t,s){if(!this.connection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(t.uid,"."));c.get(s)||J.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."))}addAudioMetadata(t){const s=this.localTrackMap.get(Qt.LocalAudioTrack),c=s&&s.track;c&&c.metadata.push(t)}getAllTracks(t){const s=this.localTrackMap.get(Qt.LocalAudioTrack);if((s==null?void 0:s.track)instanceof ia){const c=s.track;return Array.from(this.localTrackMap.entries()).filter(u=>ir(u,1)[0]!==Qt.LocalAudioTrack).filter(u=>{let h=ir(u,1)[0];return!(t&&h===Qt.LocalVideoLowTrack)}).map(u=>ir(u,2)[1].track).concat(c.trackList)}return Array.from(this.localTrackMap.entries()).filter(c=>{let u=ir(c,1)[0];return!(t&&u===Qt.LocalVideoLowTrack)}).map(c=>ir(c,2)[1].track)}getAllDataChannels(){return this.localDataChannels}reportPublishEvent(t,s,c,u,h){if(t){const B=this.localTrackMap.get(Qt.LocalAudioTrack),Q=u?this.localTrackMap.get(Qt.LocalVideoLowTrack):this.localTrackMap.get(Qt.LocalVideoTrack);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.track.getTrackLabel(),videoName:Q==null?void 0:Q.track.getTrackLabel(),screenshare:(Q==null?void 0:Q.track._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}else{var _;c||(c=[]);const B=c.find(T=>T instanceof po),Q=u?(_=this.localTrackMap.get(Qt.LocalVideoTrack))===null||_===void 0?void 0:_.track:c.find(T=>T instanceof pn);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.getTrackLabel(),videoName:Q==null?void 0:Q.getTrackLabel(),screenshare:(Q==null?void 0:Q._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}}reportSubscribeEvent(t,s,c,u){const h=u===rr.VIDEO?c._videoSSRC:c._audioSSRC;h&&qt.subscribe(this.store.sessionId,{succ:t,ec:s,video:u===rr.VIDEO,audio:u===rr.AUDIO,peerid:c.uid,subscribeRequestid:h,p2pid:this.store.p2pId,eventElapse:_A.measureFromSubscribeStart(this.store.clientId,h),preSsrc:this.isPreSubScribe(h)})}reset(){J.debug("[".concat(this.store.clientId,"] P2PChannel.reset")),this.mutex=new ra("P2PChannel-mutex",this.store.clientId),this.connection&&(this.resetConnection(this.connection),this.connection=void 0),this.shouldForwardP2PCreation&&this.recreateConnection(),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.statsUploader.stopUploadBaseStats(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();const t=this.localTrackMap.get(Qt.LocalAudioTrack);if((t==null?void 0:t.track)instanceof ia){if(t.track.trackList.length>0){const s=t.track;t.track.trackList.forEach(c=>{s.removeAudioTrack(c)})}t.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.iceFailedCount=0,this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.localDataChannels=[],this.remoteDataChannelMap.clear(),this.pendingLocalDataChannels=[],this.pendingRemoteDataChannels=[],this.state=ln.Disconnected}getStats(){var t;return(t=this.connection)===null||t===void 0?void 0:t.getStats()}getRemoteVideoIsReady(t){var s;return((s=this.connection)===null||s===void 0?void 0:s.getRemoteVideoIsReady(t))||!1}getLocalAudioVolume(){const t=this.localTrackMap.get(Qt.LocalAudioTrack);if(t)return t.track.getVolumeLevel()}getLocalVideoSize(){const t=this.localTrackMap.get(Qt.LocalVideoTrack);if(t)return{width:t.track.videoWidth||0,height:t.track.videoHeight||0}}getEncoderConfig(t){const s=this.localTrackMap.get(t);return s&&s.track instanceof pn||s&&s.track instanceof po?s.track._encoderConfig:void 0}getLocalMedia(t){return this.localTrackMap.get(t)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}async hasRemoteMediaWithLock(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}getRemoteMedia(t){var s;const c=Array.from(js(s=this.remoteUserMap).call(s)).find(u=>u.uid===t);return c?{audioTrack:c.audioTrack,audioSSRC:c._audioSSRC,videoTrack:c.videoTrack,videoSSRC:c._videoSSRC}:{}}getAudioLevels(){let t=Array.from(this.remoteUserMap.entries()).map(c=>{let u=ir(c,1)[0];return{uid:u.uid,level:u.audioTrack?100*u.audioTrack._source.getAccurateVolumeLevel():0}});const s=this.localTrackMap.get(Qt.LocalAudioTrack);return s&&t.push({level:100*s.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),t=x1(t).call(t,(c,u)=>c.level-u.level),t}async disconnectForReconnect(){this.connection&&(J.debug("[".concat(this.store.clientId,"] P2PChannel.disconnectForReconnect closing P2PConnection")),this.state=ln.Reconnecting,de("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,1)[0];var c;s._videoTrack&&s._videoTrack._player&&((c=s._videoTrack._player.getVideoElement())===null||c===void 0||c.pause(),s._videoTrack._player.isKeepLastFrame=!0,s._videoTrack._originMediaStreamTrack.stop())}),this.resetConnection(this.connection),this.connection=void 0,this.shouldForwardP2PCreation&&this.recreateConnection(),this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(t=>{var s;let c=ir(t,2),u=c[0],h=c[1].track;switch(u){case Qt.LocalVideoTrack:Et(s=h._hints).call(s,gn.LOW_STREAM)?h.close():this.pendingLocalTracks.push(h);break;case Qt.LocalAudioTrack:h instanceof ia?this.pendingLocalTracks=this.pendingLocalTracks.concat(h.trackList):this.pendingLocalTracks.push(h);case Qt.LocalVideoLowTrack:}}),this.emit(Cr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];Array.from(js(u).call(u)).forEach(h=>{this.setPendingRemoteMedia(c,h)}),this.emit(Cr.MediaReconnectStart,c.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.localDataChannels.length!==0&&(this.localDataChannels.forEach(t=>{this.pendingLocalDataChannels.push(t)}),this.localDataChannels.length=0),this.remoteDataChannelMap.size!==0&&(Array.from(this.remoteDataChannelMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];Array.from(js(u).call(u)).forEach(h=>{this.setPendingRemoteDataChannel(c,h)})}),this.remoteDataChannelMap.clear()),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),J.debug("[".concat(this.store.clientId,"] P2PChannel disconnected, waiting to reconnect.")))}hasPendingRemoteDataChannel(t,s){for(const c of this.pendingRemoteDataChannels){const u=c.user,h=c.id;if((t instanceof vp?t.uid:t)===u.uid&&h===s)return!0}return!1}setPendingRemoteDataChannel(t,s){this.hasPendingRemoteDataChannel(t,s)||this.pendingRemoteDataChannels.push({user:t,id:s})}hasPendingRemoteMedia(t,s){for(const c of this.pendingRemoteTracks){const u=c.user,h=c.kind;if((t instanceof vp?t.uid:t)===u.uid&&s===h)return!0}return!1}setPendingRemoteMedia(t,s){this.hasPendingRemoteMedia(t,s)||this.pendingRemoteTracks.push({user:t,kind:s})}restartICE(t){var s=this;return AA(function*(){if(!s.connection||s.state!==ln.Connected)return;const c=yield Tr(s.mutex.lock("From P2PChannel.restartICE"));let u;try{u=yield Tr(s.connection.restartICE(t));const _=yield Tr(u.next());if(_.done)return;const B=_.value,Q=yield B;switch(cz(s.connection)&&s.reportPCStats(Date.now(),!1,s._pcStatsUploadType),t){case qs.UDP_TCP_RELAY:s._pcStatsUploadType=MA.UDP_TCP_RESTART;break;case qs.TCP_RELAY:s._pcStatsUploadType=MA.TCP_RESTART;break;case qs.RELAY:s._pcStatsUploadType=MA.RELAY_RESTART;break;default:s._pcStatsUploadType=MA.OLD_RESTART}s._isTryConnecting=!0,u.next(Q)}catch(_){var h;(h=u)===null||h===void 0||h.throw(_)}finally{c()}})()}getUplinkNetworkQuality(){if(!this.connection)return 0;const t=this.connection.getStats(),s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalAudioTrack),u=t.videoSend.find(H=>H.ssrc===(s==null?void 0:s.ssrcs[0].ssrcId)),h=t.audioSend.find(H=>H.ssrc===(c==null?void 0:c.ssrcs[0].ssrcId));if(!u||!h)return 1;const _=q1(this,Cr.NeedSignalRTT),B=u?u.rttMs:void 0,Q=h?h.rttMs:void 0,T=B&&Q?(B+Q)/2:B||Q,D=(T&&_?(T+_)/2:T||_)||0,O=100*t.sendPacketLossRate*.7/50+.3*D/1500,P=O<.17?1:O<.36?2:O<.59?3:O<.1?4:5,U=s==null?void 0:s.track;if(U&&U._encoderConfig&&U._hints.indexOf(gn.SCREEN_TRACK)===-1){const H=U._encoderConfig.bitrateMax,$=t.bitrate.actualEncoded;if(H&&$){const Z=(1e3*H-$)/(1e3*H);return t7[Z<.15?0:Z<.3?1:Z<.45?2:Z<.6?3:4][P]}}return P}getDownlinkNetworkQuality(){if(!this.connection)return 0;const t=this.connection.getStats();let s=0;return Array.from(this.remoteUserMap.entries()).forEach(c=>{let u=ir(c,1)[0];const h=u._audioSSRC,_=u._videoSSRC,B=t.audioRecv.find($=>$.ssrc===h),Q=t.videoRecv.find($=>$.ssrc===_);if(!B&&!Q)return void(s+=1);const T=q1(this,Cr.NeedSignalRTT),D=t.rtt,O=(D&&T?(D+T)/2:D||T)||0,P=B?B.jitterMs:void 0,U=t.recvPacketLossRate;let H=.7*U*100/50+.3*O/1500;P&&(H=.6*U*100/50+.2*O/1500+.2*P/400),s+=H<.1?1:H<.17?2:H<.36?3:H<.59?4:5}),this.remoteUserMap.size>0?Math.round(s/this.remoteUserMap.size):s}async muteLocalTrack(t){return new Ut((s,c)=>{this.handleMuteLocalTrack(t,s,c)})}async replaceTrack(t,s){var c;if(J.debug("[".concat(this.store.clientId,"] P2PChannel replaceTrack from [").concat(t.getTrackId(),"] to [").concat(s.getTrackId(),"]")),!this.connection||this.state!==ln.Connected)return;const u=Array.from(this.localTrackMap.entries()).find(_=>{let B=ir(_,2)[1].track;return t===B});if(!u)return;const h=u[0];if(t!==s&&(this.unbindLocalTrackEvents([{track:t,type:h}]),this.bindLocalTrackEvents([{track:s,type:h}]),u[1].track=s),await((c=this.connection)===null||c===void 0?void 0:c.replaceTrack(s,u[1].id)),this.isPlanB){const _=u[1];_.id=s._mediaStreamTrack.id,this.localTrackMap.set(h,_)}if(h===Qt.LocalVideoTrack&&!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding){const _=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(_){const B=t._mediaStreamTrack.clone();_.track._originMediaStreamTrack.stop(),_.track._mediaStreamTrack=B,_.track._originMediaStreamTrack=B,await new Ut((Q,T)=>{this.handleReplaceTrack(_.track,Q,T,!0)})}}}filterTobePublishedTracks(t,s,c){const u=[],h=this.getAllTracks();t=oh(t=t.filter(T=>h.indexOf(T)===-1));let _,B=!1;const Q=this.localTrackMap.get(Qt.LocalAudioTrack);for(const T of t){if(T instanceof pn&&(this.localTrackMap.has(Qt.LocalVideoTrack)||B?new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(u.push({track:T,type:Qt.LocalVideoTrack}),B=!0),s)){const D=this.getLowVideoTrack(T,c);u.push({track:D,type:Qt.LocalVideoLowTrack})}if(T instanceof po)if(Q){const D=Q.track;if(D instanceof ia)az([T]),D.addAudioTrack(T),this.bindLocalAudioTrackEvents(T,!0);else{const O=Az([D,T]);J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(O.getTrackId(),"]")),this.replaceTrack(D,O)}}else _ instanceof ia?(az([T]),_.addAudioTrack(T)):_||!T._useAudioElement&&Si().webAudioMediaStreamDest&&!T._bypassWebAudio?_=Az(_?[T,_]:[T]):_=T}return _&&(J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will send audioTrack [").concat(_.getTrackId(),"]")),u.push({track:_,type:Qt.LocalAudioTrack})),u}filterTobeUnpublishedTracks(t){const s=[],c=this.getAllTracks();t=oh(t=t.filter(u=>c.indexOf(u)!==-1));for(const u of t){if(u instanceof po){const h=this.localTrackMap.get(Qt.LocalAudioTrack);if(!h)continue;h.track instanceof ia?(h.track.removeAudioTrack(u),this.unbindLocalAudioTrackEvents(u),h.track.trackList.length===0&&(s.push([Qt.LocalAudioTrack,h]),h.track.close())):s.push([Qt.LocalAudioTrack,h])}if(u instanceof pn){const h=this.localTrackMap.get(Qt.LocalVideoTrack);if(!h)continue;s.push([Qt.LocalVideoTrack,h]);const _=this.localTrackMap.get(Qt.LocalVideoLowTrack);_&&s.push([Qt.LocalVideoLowTrack,_])}}return s}filterTobePublishedDataChannels(t){return t=(t=oh(t)).filter(s=>this.localDataChannels.findIndex(c=>c.id===s.id)===-1)}filterTobeUnpublishedDataChannels(t){return t=(t=(t=oh(t)).filter(s=>this.localDataChannels.indexOf(s)!==-1)).filter(s=>s._originDataChannel)}bindLocalTrackEvents(t){t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.addListener(xt.GET_STATS,this.handleGetLocalVideoStats),c.addListener(xt.GET_RTC_STATS,this.handleGetRTCStats),c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.addListener(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.bindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(t,s){t instanceof ia?t.trackList.forEach(c=>{c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),t.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),s||(t.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),t.addListener(xt.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack)))}unbindLocalTrackEvents(t){t||(t=Array.from(this.localTrackMap.entries()).map(s=>{let c=ir(s,2),u=c[0];return{track:c[1].track,type:u}})),t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.off(xt.GET_STATS,this.handleGetLocalVideoStats),c.off(xt.GET_RTC_STATS,this.handleGetRTCStats),c.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.off(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.off(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.unbindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(t){t instanceof ia?t.trackList.forEach(s=>{s.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),s.off(xt.GET_STATS,this.handleGetLocalAudioStats),s.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.off(xt.GET_STATS,this.handleGetLocalAudioStats),t.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),t.off(xt.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack),t.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(t,s){s instanceof Fd&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteVideoStats(t))}),s instanceof an&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteAudioStats(t))})}unbindRemoteTrackEvents(t){t&&t.removeAllListeners(xt.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];u.has(rr.AUDIO)&&this.unbindRemoteTrackEvents(c._audioTrack),u.has(rr.VIDEO)&&this.unbindRemoteTrackEvents(c._videoTrack)})}createGatewayPublishMessage(t,s){return t.map((c,u)=>{var h;let _,B,Q=c.track;switch(c.type){case Qt.LocalAudioTrack:_=En.Audio,B={dtx:Q instanceof xd&&Q._config.DTX,hq:!1,lq:!1,stereo:!1,speech:!1};break;case Qt.LocalVideoTrack:_=Et(h=Q._hints).call(h,gn.SCREEN_TRACK)?En.Screen:En.High,B=qh(qh({},ste(Q)),{},{codec:this.store.codec,svc_mode:E9()});break;case Qt.LocalVideoLowTrack:_=En.Low,B=qh(qh({},ste(Q)),{},{codec:this.store.codec,svc_mode:E9()})}return{stream_type:_,attributes:B,ssrcs:s[u]}})}createGatewayUnpublishMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}assignLocalTracks(t,s){t.forEach((c,u)=>{let h=c.track,_=c.type;this.localTrackMap.set(_,{track:h,id:s[u].id,ssrcs:s[u].localSSRC})})}withdrawLocalTracks(t){t.forEach(s=>{let c=ir(s,1)[0];this.localTrackMap.delete(c)})}bindConnectionEvents(t){t.onConnectionStateChange=async s=>{if(J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onConnectionStateChange(").concat(s,")")),this.emit(Cr.PeerConnectionStateChange,s),s==="connecting"&&t instanceof vl&&!Ln()&&de("FIRST_TCP_CANDIDATE")&&window.setTimeout(()=>{s==="connecting"&&t.extendCandidate()},de("FIRST_TCP_CANDIDATE_INTERVAL")),s!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),s==="connected"&&(this._restartTimer&&(window.clearTimeout(this._restartTimer),this._restartTimer=void 0),t instanceof vl&&lre(t,!0),this._isTryConnecting&&this.reportPCStats(Date.now(),!0,this._pcStatsUploadType),this._isTryConnecting=!1,this._isStartRestartIce=!1,this._pcStatsUploadType=MA.DISCONNECTED_OR_FAILED,q1(this,Cr.QueryClientConnectionState)==="CONNECTED"&&this._isWaitPcToRePub)){const c=this.pendingLocalTracks.map(h=>h.getTrackId()),u=this.pendingLocalDataChannels.map(h=>"dc_".concat(h.id));qt.reportApiInvoke(this.store.sessionId,{name:Ti.REPUB_AFTER_PC_CONNECTED,options:c.concat(u),tag:vn.TRACER}).onSuccess(),this.republish()}if(de("NEW_ICE_RESTART")&&t instanceof vl&&!Ln()&&!this._forceTurn&&!this.store.useDcSignal){if(Et(td).call(td,s)){if(this._isStartRestartIce)return;this._isStartRestartIce=!0;const c=h=>{cz(t)&&(J.debug("[".concat(this.store.clientId,"] [P2PChannel] try to restartICE, type is ").concat(h)),q1(this,Cr.QueryClientConnectionState)==="CONNECTED"&&this.emit(Cr.RequestRestartICE,h))},u=()=>{cz(t)&&(this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),J.debug("[".concat(this.store.clientId,"] P2PConnection disconnected timeout, force reconnect")),setTimeout(()=>this.emit(Cr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())};return void(this._restartTimer=window.setTimeout(()=>{dre(t,c,u)},800))}}else{if(s==="disconnected"&&t.iceConnectionState==="disconnected")return setTimeout(()=>{t.iceConnectionState==="disconnected"&&de("ICE_RESTART")&&q1(this,Cr.QueryClientConnectionState)==="CONNECTED"&&this.emit(Cr.RequestRestartICE)},800),void setTimeout(()=>{t.peerConnectionState==="disconnected"&&(J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection disconnected timeout 4000ms, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),this._isTryConnecting=!1,setTimeout(()=>this.emit(Cr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())},4e3);s==="failed"&&(J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection state failed, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),setTimeout(()=>this.emit(Cr.P2PLost),0),this.iceFailedCount+=1,await this.requestReconnect())}},t.onICEConnectionStateChange=s=>{s!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(s,")")),qt.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:s,tag:vn.TRACER}).onSuccess(),this.emit(Cr.IceConnectionStateChange,s)},t.onICETransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(s,")"))},t.onDTLSTransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(s,")"))},t.onDTLSTransportError=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(s,")"))},t.onFirstAudioDecoded=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(_=>_._audioSSRC===s);var h;u&&(this.store.subscribe(u.uid,"audio",void 0,void 0,void 0,Date.now()),(h=u.audioTrack)===null||h===void 0||h.emit($1.FIRST_FRAME_DECODED),qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_DECODE,ao.FIRST_AUDIO_DECODE,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId}))},t.onFirstAudioReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._audioSSRC===s);u&&qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_RECEIVED,ao.FIRST_AUDIO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId})},t.onFirstVideoDecoded=(s,c,u)=>{var h;const _=Array.from(js(h=this.remoteUserMap).call(h)).find(B=>B._videoSSRC===s);_&&this.store.firstVideoFrameDecoded(_.uid,{firstDecoded:Date.now()}),this.reportVideoFirstFrameDecoded(s,c,u)},t.onFirstVideoRender=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&(this.store.firstVideoFrameDecoded(u.uid,{firstPreRender:Date.now()}),this.reportVideoFirstFrameRender(u),this.emit(Cr.FirstVideoPreRender,u.uid,s))},t.onFirstVideoReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&(this.store.firstVideoFrameDecoded(u.uid,{firstReceived:Date.now()}),qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_VIDEO_RECEIVED,ao.FIRST_VIDEO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId}))},t.onFirstVideoBufferReady=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&this.emit(Cr.FirstVideoBufferReady,u.uid,s)},t.onSelectedLocalCandidateChanged=(s,c)=>{const u=s.candidateType==="relay",h=c.candidateType==="relay";c.candidateType!=="unknown"&&u===h||this.emit(Cr.ConnectionTypeChange,u),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onSelectedRemoteCandidateChanged=(s,c)=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onFirstVideoDecodedTimeout=s=>{this.reportVideoFirstFrameDecoded(s,void 0,void 0,!0)},t.getLocalVideoStats=()=>{const s=this.statsCollector.getLocalVideoTrackStats(),c=this.statsCollector.getRTCStats();return qh(qh({},s),c)},t.onICECandidateError=s=>{this._iceError=s}}fallbackConnection(){J.debug("[".concat(this.store.clientId,"] [P2PChannel] try to fallback connection")),this.state===ln.Connected?(J.debug("[".concat(this.store.clientId,"] [P2PChannel] fallback to websocket but P2PChannel state still connected, disconnect first")),this.disconnectForReconnect()):(this.connection&&this.resetConnection(this.connection),this.shouldForwardP2PCreation&&this.recreateConnection())}resetConnection(t){t instanceof vl&&function(s){AT.delete(s.id),lre(s)}(t),t.close(),this.emit(Cr.PeerConnectionStateChange,"closed"),function(s){s.onConnectionStateChange=void 0,s.onICEConnectionStateChange=void 0,s.onICETransportStateChange=void 0,s.onDTLSTransportStateChange=void 0,s.onDTLSTransportError=void 0,s.onFirstAudioDecoded=void 0,s.onFirstAudioReceived=void 0,s.onFirstVideoDecoded=void 0,s.onFirstVideoReceived=void 0,s.onSelectedLocalCandidateChanged=void 0,s.onSelectedRemoteCandidateChanged=void 0,s.onFirstVideoDecodedTimeout=void 0,s.getLocalVideoStats=void 0}(t),this._isWaitPcToRePub=!1}recreateConnection(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._p2pBySDPEndPoint=!1,this.connection=Qce(this.store,t),this.emit(Cr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)}filterTobeMutedTracks(t){const s=[];if(this.getAllTracks().indexOf(t)===-1)return s;const c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive||s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u&&(s.push(u),u[0]===Qt.LocalVideoTrack)){const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}return s}filterTobeUnmutedTracks(t){const s=[],c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive&&s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u)if(u[0]===Qt.LocalVideoTrack){s.push(u);const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}else s.push(u);return s}createMuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}createUnmuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}filterTobeUnSubscribedTracks(t,s){const c=[],u=this.remoteUserMap.get(t);if(!u)return c;if(s){const h=u.get(s);if(!h)return c;c.push([t,{kind:s,id:h}])}else Array.from(u.entries()).forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1];c.push([t,{kind:B,id:Q}])});return c}filterTobeUnSubscribedDataChannels(t,s){const c=[];return s.forEach(u=>{var h;(h=this.remoteDataChannelMap.get(t))!==null&&h!==void 0&&h.has(u.id)&&c.push(u)}),c}createUnsubscribeMessage(t){const s=[];return t.forEach(c=>{let u=ir(c,2),h=u[0],_=u[1],B=_.kind;switch(_.id,B){case rr.VIDEO:return void(h._videoSSRC&&s.push({stream_type:rr.VIDEO,ssrcId:h._videoSSRC}));case rr.AUDIO:return void(h._audioSSRC&&s.push({stream_type:rr.AUDIO,ssrcId:h._audioSSRC}))}}),s}createUnsubscribeAllMessage(t){const s=new Map;return t.forEach(c=>{let u=ir(c,2),h=u[0],_=u[1].kind;if(s.has(h)){let B=s.get(h);_===rr.VIDEO?B|=jo.Video:B|=jo.Audio,s.set(h,B)}else _===rr.VIDEO?s.set(h,jo.Video):s.set(h,jo.Audio)}),{users:Array.from(s.entries()).map(c=>{let u=ir(c,2),h=u[0],_=u[1];return{stream_id:h.uid,stream_type:_}})}}withdrawRemoteTracks(t){t.forEach(s=>{let c=ir(s,2),u=c[0],h=c[1].kind;const _=this.remoteUserMap.get(u);_&&(_.delete(h),Array.from(_.entries()).length===0&&this.remoteUserMap.delete(u))})}async updateBitrateLimit(t){const s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalVideoLowTrack);s&&(await s.track.setBitrateLimit(t.uplink),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(s.track,u,h,!0)})),c&&t.low_stream_uplink&&(await c.track.setBitrateLimit({max_bitrate:t.low_stream_uplink.bitrate,min_bitrate:t.low_stream_uplink.bitrate||0}),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(c.track,u,h,!0)}))}isP2PDisconnected(){return this.connection?this.connection.peerConnectionState!=="connected":!0}isPreallocation(){return!(!this.connection||!("name"in this.connection)||this.connection.name!=="DataChannelConnection"||this.connection.peerConnectionState==="closed")||this.connection instanceof vl&&this.connection.isPreallocation}isPreSub(){return(this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof vl)&&this.connection.isPreSub()}isPreRender(){return this.connection instanceof vl&&this.connection.isPreRender}mapPubResToRemoteConfig(t,s,c){return t.map((u,h)=>{var _;let B=u.stream_type;const Q=(_=s.find(T=>{let D=T.stream_type;return B===D}))===null||_===void 0?void 0:_.attributes;if(Q&&de("DISABLE_SCREEN_SHARE_REMB")){const T=c[h]._hints;(Et(T).call(T,gn.SCREEN_TRACK)||Et(T).call(T,gn.SCREEN_LOW_TRACK))&&(Q.remb=!1,J.debug("disable remb for screen share, hints:",T))}return Q})}async tryToUnmuteAudio(t){for(let c=0;cir(_,2)[1].id)));const h=this.createUnmuteMessage(u);return void await sn(this,Cr.RequestUnmuteLocal,h)}}bindStatsUploaderEvents(){this.statsUploader.requestStats=()=>this.getStats(),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=t=>{var s;return!((s=this.connection)===null||s===void 0||!s.getRemoteVideoIsReady(t))},this.statsUploader.requestUpload=(t,s)=>this.emit(Cr.RequestUpload,t,s),this.statsUploader.requestUploadStats=t=>this.emit(Cr.RequestUploadStats,t),this.statsUploader.requestAllTracks=()=>this.getAllTracks(),this.statsUploader.requestTransportStats=()=>{var t;return{connectState:((t=this.connection)===null||t===void 0?void 0:t.peerConnectionState)||"closed"}}}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await so(Lf(this.dtlsFailedCount,So)),this.emit(Cr.RequestReconnect)}async reconnectP2P(){const t=Array.from(this.localTrackMap.entries()),s=this.createGatewayUnpublishMessage(t);Array.from(this.remoteUserMap.entries()),s.length>0&&await $o(this,Cr.RequestUnpublishForReconnectPC,s),this.disconnectForReconnect(),this.emit(Cr.RequestReconnectPC)}canPublishLowStream(){return this.localTrackMap.has(Qt.LocalVideoTrack)||this.pendingLocalTracks.some(t=>t instanceof pn)}throwIfTrackTypeNotMatch(t){if(t.filter(s=>s instanceof pn).length>1)throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(t.filter(s=>s instanceof po).length>1&&(t.some(s=>s instanceof po&&s._bypassWebAudio)||!Si().webAudioMediaStreamDest))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(const s of t){if(s instanceof pn&&this.pendingLocalTracks.some(c=>c instanceof pn))throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(s instanceof po&&this.pendingLocalTracks.some(c=>c instanceof po)&&(!Si().webAudioMediaStreamDest||s._bypassWebAudio||this.pendingLocalTracks.some(c=>c instanceof po&&c._bypassWebAudio)))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(t,s){var c;const u=!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding,h=qh(qh({},{width:160,height:120,framerate:15,bitrate:50}),s);let _;_=u?t._mediaStreamTrack.clone():dz(t,h);const B=un(8,"track-low-"),Q=new pn(_,qh(qh({},u&&{scaleResolutionDownBy:xX(h,t)}),{},{frameRate:h.framerate,bitrateMax:h.bitrate,bitrateMin:h.bitrate}),void 0,void 0,B);return Q.on(dh.TRANSCEIVER_UPDATED,T=>{t._updateRtpTransceiver(T,xC.LOW_STREAM)}),Q._hints.push(gn.LOW_STREAM),Et(c=t._hints).call(c,gn.SCREEN_TRACK)&&Q._hints.push(gn.SCREEN_LOW_TRACK),t.on("sei-to-send",T=>{Q.emit("sei-to-send",T)}),t.addListener(xt.NEED_CLOSE,()=>{Q.close()}),Q}async globalLock(){return this.mutex.lock("From P2PChannel.globalLock")}async reportPCStats(t,s,c){let u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;if(this.connection&&this.connection instanceof vl){var h,_,B,Q;const T=this.store.keyMetrics.descriptionStart||0,D=this.connection,O=D.iceConnectionState,P=D.dtlsTransportState,U=D.peerConnectionState,H=await this.connection.getSelectedCandidatePair(),$=H.local,Z=H.remote;qt.pcStats(this.store.sessionId,{startTime:T,eventElapse:t-T||0,iceconnectionsate:O,dtlsstate:P,connectionstate:U,intSucc:s?1:2,error:this._iceError||u||"",selectedLocalCandidateProtocol:(h=$==null?void 0:$.protocol)!==null&&h!==void 0?h:"",selectedLocalCandidateType:(_=$.candidateType)!==null&&_!==void 0?_:"",selectedLocalCandidateAddress:"".concat($.address,":").concat($.port),selectedRemoteCandidateProtocol:(B=Z.protocol)!==null&&B!==void 0?B:"",selectedRemoteCandidateType:(Q=Z.candidateType)!==null&&Q!==void 0?Q:"",selectedRemoteCandidateAddress:"".concat(Z.address,":").concat(Z.port),restartCnt:c,preallocation:this.connection.isPreallocation,sdpEndPoint:this._p2pBySDPEndPoint?1:0}),this._iceError=null}}reportVideoFirstFrameRender(t){const s=this.store.keyMetrics,c=s.firstVideoFrameDecoded.find(P=>P.userId===t.uid);if(!c)return;const u=c.isInternalUpload,h=c.isExternalUpload;if(u&&h)return;const _=c.subscribeEnd,B=c.firstPreRender,Q=c.peerPublishDuration,T=c.peerPubStatusMs;let D=c.firstRender,O=D===void 0?0:D;if(_&&(O||B)&&Q&&T){c.isInternalUpload=!0;const P=c.playEnd;P&&(c.isExternalUpload=!0);const U=c.firstPreRender,H=U===void 0?0:U;O=H||O;const $=t.videoTrack,Z={peer:t._uintid,width:($==null?void 0:$._videoWidth)||0,height:($==null?void 0:$._videoHeight)||0,ssrc:t._videoSSRC||0,p2pid:this.store.p2pId,peerPublishDuration:Q,peerPubStatusMs:T,joinChannelStart:s.joinStart||0,preloadStart:s.preloadStart||0,preloadEnd:s.preloadEnd||0,apStart:s.requestAPStart||0,apEnd:s.requestAPEnd||0,suaEnd:s.requestSUAEnd||0,beforeConnect:s.beforeConnect||0,peerReceiver:s.peerReceiver||0,ice:s.iceConnectionEnd||0,pc:s.peerConnectionEnd||0,signalConnected:s.signalConnected||0,joinReq:s.joinReq||0,joinRes:s.joinRep||0,userJoinNotify:c.userJoinNotify||0,videoAddNotify:c.videoAddNotify||0,subscribeStart:c.subscribeStart||0,subscribeEnd:c.subscribeEnd||0,firstReceived:c.firstReceived||0,firstDecoded:c.firstDecoded||0,firstPreRender:H||0,firstRender:P?Math.max(O,P):Math.max(O,_),playStart:c.playStart||0,playEnd:c.playEnd||0,isPreSub:!(!t._videoSSRC||!this.isPreSubScribe(t._videoSSRC)),isPrePc:this.isPreallocation(),isPreInstantVideo:ry(this.store),firstReceivedEncodedFrame:c.firstReceivedEncodedFrame||0,frameType:c.frameType||"",rtpTimestamp:c.rtpTimestamp||0,framePayloadType:c.framePayloadType||0,frameDataLength:c.frameDataLength||0,mimeType:c.mimeType||"",sdpEndPoint:this._p2pBySDPEndPoint};qt.firstXLAPeerFirstVideoFrame(this.store.sessionId,Z)}}reportVideoFirstFrameDecoded(t,s,c,u){var h;const _=Array.from(js(h=this.remoteUserMap).call(h)).find(B=>B._videoSSRC===t);if(_){u||this.store.subscribe(_.uid,"video",void 0,void 0,void 0,void 0,Date.now());const B=this.store.keyMetrics,Q=B.subscribe.find(T=>T.userId===_.uid&&T.type==="video");qt.firstRemoteVideoDecode(this.store.sessionId,Rs.FIRST_VIDEO_DECODE,ao.FIRST_VIDEO_DECODE,{peer:_._uintid,videowidth:s,videoheight:c,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,t),subscribeRequestid:t,p2pid:this.store.p2pId,apEnd:B.requestAPEnd||0,apStart:B.requestAPStart||0,joinGwEnd:B.joinGatewayEnd||0,joinGwStart:B.joinGatewayStart||0,pcEnd:B.peerConnectionEnd||0,pcStart:B.peerConnectionStart||0,subscriberEnd:(Q==null?void 0:Q.subscribeEnd)||0,subscriberStart:(Q==null?void 0:Q.subscribeStart)||0,videoAddNotify:(Q==null?void 0:Q.streamAdded)||0,state:u?1:0,firstFrame:(Q==null?void 0:Q.firstFrame)||0})}}async remoteMediaSsrcChanged(t,s,c){if(!this.connection)return!1;const u=this.remoteUserMap.get(t);if(!u)return!1;const h=u.get(s);if(!h)return!1;const _=await this.connection.getRemoteSSRC(h);return _!==void 0&&_!==c}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1].track;c===Qt.LocalVideoLowTrack?u._updateRtpTransceiver(void 0,xC.LOW_STREAM):u._updateRtpTransceiver(void 0)})}},Pt(Ni.prototype,"startP2PConnection",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"startP2PConnection"),Ni.prototype),Pt(Ni.prototype,"connect",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"connect"),Ni.prototype),Pt(Ni.prototype,"updateRemoteRTPCapabilities",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"updateRemoteRTPCapabilities"),Ni.prototype),Pt(Ni.prototype,"publishDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"publishDataChannel"),Ni.prototype),Pt(Ni.prototype,"unpublish",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unpublish"),Ni.prototype),Pt(Ni.prototype,"unpublishDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unpublishDataChannel"),Ni.prototype),Pt(Ni.prototype,"unpublishLowStream",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unpublishLowStream"),Ni.prototype),Pt(Ni.prototype,"subscribeDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"subscribeDataChannel"),Ni.prototype),Pt(Ni.prototype,"subscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"subscribe"),Ni.prototype),Pt(Ni.prototype,"massSubscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"massSubscribe"),Ni.prototype),Pt(Ni.prototype,"unsubscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unsubscribe"),Ni.prototype),Pt(Ni.prototype,"unsubscribeDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unsubscribeDataChannel"),Ni.prototype),Pt(Ni.prototype,"massUnsubscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"massUnsubscribe"),Ni.prototype),Pt(Ni.prototype,"muteRemote",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"muteRemote"),Ni.prototype),Pt(Ni.prototype,"unmuteRemote",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unmuteRemote"),Ni.prototype),Pt(Ni.prototype,"hasRemoteMediaWithLock",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"hasRemoteMediaWithLock"),Ni.prototype),Pt(Ni.prototype,"disconnectForReconnect",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"disconnectForReconnect"),Ni.prototype),Pt(Ni.prototype,"updateBitrateLimit",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"updateBitrateLimit"),Ni.prototype),Pt(Ni.prototype,"remoteMediaSsrcChanged",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"remoteMediaSsrcChanged"),Ni.prototype),Ni);function s1(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From P2PChannel.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T0&&(u.firstRecvTs=Date.now()-_);let Q=c.mediaDelay+B;Q<=0?(s.pop(),Cre(c.context,h),Q=0):Q=Math.min(Q,Dce),setTimeout(()=>s.length&&Ire(t),Q)}function Cre(t,s){t.safeEmit(Vr.STREAM_MESSAGE,s.uid,s.payload),t.onStreamMessage&&t.onStreamMessage(s)}function bce(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,c=arguments.length>2?arguments[2]:void 0;if(!t.syncWithAudio)return Cre(c,{uid:t.uid,payload:t.payload});const u="".concat(c.id,"-").concat(t.uid),h=Ez.get(u)||[],_=h.findIndex(D=>t.sendTs>=D.sendTs),B=hre(hre({},t),{},{context:c,mediaDelay:s,recvTs:Date.now()});_===-1?h.push(B):h.splice(_,0,B),Ez.set(u,h);let Q=!1;var T;jF.has(u)?Q=!((T=jF.get(u))===null||T===void 0||!T.isSyncing):jF.set(u,{isSyncing:Q,firstRecvTs:0,firstSendTs:0}),Q||Ire(u)}const Nce=Qi().name;function pre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function fre(t){for(var s=1;s{const _=c.shift();_&&await _(),c.length>0&&u{c.push(async()=>{try{const O=await t(...B);T(O)}catch(O){D(O)}}),u{J.warn("Your browser does not support preloading, this feature be run in a secure environment")},"preload_webcrypto_not_supported");if(!c&&c!==null)throw new tt(Ce.INVALID_PARAMS,"Invalid token: ".concat(c,". If you don not use token, set it to null"));c&&Ra(c,"token",1,2047),Ra(t,"appid",1,2047),fl(s),u&&P2(u);const T=Pd();J.debug("preload channel ".concat(s,", uid is ").concat(u));const D={appId:t,cname:s,token:c||t,uid:typeof u!="string"?u:null,sid:T,proxyServer:h,role:B};let O,P;if(typeof u=="string"){D.stringUid=u;var Q=ir(await Ut.all([Ice(u,{sid:T,appId:t},pz.token),Lte(fre(fre({},D),{},{token:c||t,uid:0}),pz.token)]),2);P=Q[0],O=Q[1],D.uid=P.uid,O.gatewayInfo.uid=D.uid,O.gatewayInfo.res.uid=D.uid}else _&&(D.stringUid=_),O=await Lte(D,pz.token);const U={sid:T,appId:t,cname:s,token:c||t,uid:D.stringUid||u,intUid:D.uid||O.gatewayInfo.uid,stringUid:D.stringUid,ts:Date.now(),sua:P,ap:O};await mz(U),Iz++}catch(T){throw Cz++,function(D){hz||(hz=window.setTimeout(()=>{let P="";JF.forEach((U,H)=>{P+="".concat(H,": ").concat(U," ;")}),qt.reportApiInvoke(null,{name:Ti.PRELOAD,options:{success:Iz,failed:Cz,err:P}}).onError(D),Iz=0,Cz=0,JF.clear(),hz=null},Lce));const O=JF.get(D.code)||0;JF.set(D.code,O+1)}(T),T}}async function _z(t){try{if(de("AP_REQUEST_DETAIL")||de("ENABLE_ROLE_SELECT_EDGE")||de("ENABLE_JOIN_V4"))return;const s=mre(t);if(!s||t.cloudProxyServer!=="disabled")return;const c=await async function(u,h){try{const _=await window.crypto.subtle.importKey("raw",FR(h),"AES-GCM",!1,["decrypt"]),B=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:_re},_,Yr(u));return JSON.parse(window.atob(kd(new Uint8Array(B))))}catch{return}}(s,t.token||t.appId);if(!c||!function(u,h){return u.cname===h.cname&&u.appId===h.appId&&u.token===h.token?h.stringUid?u.stringUid===h.stringUid:typeof h.uid=="number"?u.uid===h.uid:u.uid==h.uid:!1}(c,t))return;if(c&&Date.now()-c.ts=0;T--)if(Q(B[T]))return T;return-1}(c,B=>u in B);if(h===-1)return;const _=c.splice(h,1)[0];return qF(cT,JSON.stringify(c)),_[u]}catch(c){J.warn("Error delete preload info: ".concat(s),c.message),qF(cT,"")}}async function mz(t){let s;try{t.uid&&mre({appId:t.appId,cname:t.cname,token:t.token,uid:t.uid,stringUid:t.stringUid});const c=yre(t),u=await async function(_,B){try{const Q=await window.crypto.subtle.importKey("raw",FR(B),"AES-GCM",!1,["encrypt"]),T=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:_re},Q,Yr(window.btoa(JSON.stringify(_))));return kd(new Uint8Array(T))}catch{return}}(t,t.token||t.appId);if(!u)return;s=Rre(cT);const h=s?JSON.parse(s):[];h.push({[c]:u}),h.length>de("AP_CACHE_NUM")&&h.shift(),qF(cT,JSON.stringify(h))}catch(c){J.warn("Error caching server parameters:",c.message),qF(cT,"")}}function Bz(t){if(t){let s=hm.get(t);s&&(window.clearTimeout(s),s=null,hm.delete(t)),Et(Im).call(Im,t)||t.cloudProxyServer!=="disabled"||Im.push(t)}if(hm.size0){const s=Im.shift();hm.set(s,window.setTimeout(async()=>{const c=s.appId,u=s.cname,h=s.token,_=s.stringUid,B=s.uid,Q=s.proxyServer,T=s.role;try{await Mce(c,u,h,B,Q,_,T),hm.has(s)&&Bz(s)}catch(D){J.warn("update preload failed",D.message),Bre(s)}},de("AP_UPDATE_INTERVAL")))}}function Bre(t){const s=Im.indexOf(t);s!==-1&&Im.splice(s,1);let c=hm.get(t);c&&(window.clearTimeout(c),c=null,hm.delete(t),Bz())}function Sre(t,s){const c=t.sua,u=t.ap;s&&c&&qt.reqUserAccount(t.sid,{lts:c.requestTime,elapse:c.elapse,success:!0,serverAddr:c.url,stringUid:s,uid:t.intUid,errorCode:null,extend:c.req}),qt.reportResourceTiming(t.ap.url,t.sid),qt.joinWebProxyAP(t.sid,{lts:u.requestTime,elapse:u.elapse,sucess:1,apServerAddr:u.url,turnServerAddrList:u.proxyInfo.addresses.map(h=>h.ip).join(","),eventType:"disabled",unilbsServerIds:[fo.CHOOSE_SERVER,fo.CLOUD_PROXY_FALLBACK].toString()}),qt.joinChooseServer(t.sid,{lts:u.requestTime,elapse:u.elapse,succ:!0,csAddr:u.url,opid:u.opid,serverList:u.gatewayInfo.gatewayAddrs.map(h=>h.address),ec:null,cid:u.gatewayInfo.cid.toString(),uid:u.gatewayInfo.uid.toString(),csIp:u.gatewayInfo.csIp,unilbsServerIds:[fo.CHOOSE_SERVER].toString(),isHttp3:u.isHttp3})}function Rre(t){return window.atob(window.localStorage.getItem(t)||"")}function qF(t,s){window.localStorage.setItem(t,window.btoa(s))}function yre(t){let s="".concat(t.appId,"_").concat(t.cname);return typeof t.uid=="string"&&(s+="_s_".concat(t.uid)),typeof t.uid=="number"&&(s+="_".concat(t.uid)),t.token&&(s+="_".concat(t.token)),ze(s)}function Pce(t){let s=function(){const c=Fce.pop();return c?(c.offset=c.limit=0,c):{bytes:new Uint8Array(64),offset:0,limit:0}}();return function(c,u){let h=c.appId;h!==void 0&&(Us(u,10),Np(u,h));let _=c.cid;_!==void 0&&(Us(u,16),Us(u,_));let B=c.cname;B!==void 0&&(Us(u,26),Np(u,B));let Q=c.deviceId;Q!==void 0&&(Us(u,34),Np(u,Q));let T=c.elapse;T!==void 0&&(Us(u,40),Lp(u,T));let D=c.fileSize;D!==void 0&&(Us(u,48),Lp(u,lT(D)));let O=c.height;O!==void 0&&(Us(u,56),Lp(u,lT(O)));let P=c.jpg;P!==void 0&&(Us(u,66),Us(u,P.length),Tre(u,P));let U=c.networkType;U!==void 0&&(Us(u,72),Lp(u,lT(U)));let H=c.osType;H!==void 0&&(Us(u,80),Lp(u,lT(H)));let $=c.requestId;$!==void 0&&(Us(u,90),Np(u,$));let Z=c.sdkVersion;Z!==void 0&&(Us(u,98),Np(u,Z));let te=c.sequence;te!==void 0&&(Us(u,104),Lp(u,lT(te)));let se=c.sid;se!==void 0&&(Us(u,114),Np(u,se));let ge=c.timestamp;ge!==void 0&&(Us(u,120),Lp(u,ge));let me=c.uid;me!==void 0&&(Us(u,128),Us(u,me));let Qe=c.vid;Qe!==void 0&&(Us(u,136),Us(u,Qe));let Oe=c.width;Oe!==void 0&&(Us(u,144),Lp(u,lT(Oe)));let we=c.service;we!==void 0&&(Us(u,152),Us(u,we));let Ne=c.callbackData;Ne!==void 0&&(Us(u,162),Us(u,Ne.length),Tre(u,Ne));let et=c.ticket;et!==void 0&&(Us(u,170),Np(u,et));let st=c.vendorConfigs;st!==void 0&&(Us(u,178),Np(u,st))}(t,s),function(c){let u=c.bytes,h=c.limit;return u.length===h?u:u.subarray(0,h)}(s)}function Uce(t){return function(c){let u={};e:for(;!Gce(c);){let h=S9(c);switch(h>>>3){case 0:break e;case 1:u.code=S9(c);break;case 2:u.msg=wre(c,S9(c));break;case 3:u.requestId=wre(c,S9(c));break;case 4:u.timestamp=Vce(c,!1);break;default:xce(c,7&h)}}return u}({bytes:s=t,offset:0,limit:s.length});var s}function xce(t,s){switch(s){case 0:for(;128&og(t););break;case 2:Sz(t,S9(t));break;case 5:Sz(t,4);break;case 1:Sz(t,8);break;default:throw new Error("Unimplemented type: "+s)}}function lT(t){return{low:t|=0,high:t>>31,unsigned:t>=0}}let Fce=[];function Sz(t,s){if(t.offset+s>t.limit)throw new Error("Skip past limit");t.offset+=s}function Gce(t){return t.offset>=t.limit}function WF(t,s){let c=t.bytes,u=t.offset,h=t.limit,_=u+s;if(_>c.length){let B=new Uint8Array(2*_);B.set(c),t.bytes=B}return t.offset=_,_>h&&(t.limit=_),u}function Qre(t,s){let c=t.offset;if(c+s>t.limit)throw new Error("Read past limit");return t.offset+=s,c}function Tre(t,s){let c=WF(t,s.length);t.bytes.set(s,c)}function wre(t,s){let c=Qre(t,s),u=String.fromCharCode,h=t.bytes,_="�",B="";for(let Q=0;Q=s?B+=_:(T=h[Q+c+1],(192&T)!=128?B+=_:(P=(31&U)<<6|63&T,P<128?B+=_:(B+=u(P),Q++))):(240&U)==224?Q+2>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],(49344&(T|D<<8))!=32896?B+=_:(P=(15&U)<<12|(63&T)<<6|63&D,P<2048||P>=55296&&P<=57343?B+=_:(B+=u(P),Q+=2))):(248&U)==240?Q+3>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],O=h[Q+c+3],(12632256&(T|D<<8|O<<16))!=8421504?B+=_:(P=(7&U)<<18|(63&T)<<12|(63&D)<<6|63&O,P<65536||P>1114111?B+=_:(P-=65536,B+=u(55296+(P>>10),56320+(1023&P)),Q+=3))):B+=_:B+=u(U)}return B}function Np(t,s){let c=s.length,u=0;for(let B=0;B=55296&&Q<=56319&&B+1=55296&&Q<=56319&&B+1>6&31|192:(Q<65536?_[h++]=Q>>12&15|224:(_[h++]=Q>>18&7|240,_[h++]=Q>>12&63|128),_[h++]=Q>>6&63|128),_[h++]=63&Q|128)}}function og(t){return t.bytes[Qre(t,1)]}function vre(t,s){let c=WF(t,1);t.bytes[c]=s}function S9(t){let s,c=0,u=0;do s=og(t),c<32&&(u|=(127&s)<>>=0;s>=128;)vre(t,127&s|128),s>>>=7;vre(t,s)}function Vce(t,s){let c,u=0,h=0,_=0;return c=og(t),u=127&c,128&c&&(c=og(t),u|=(127&c)<<7,128&c&&(c=og(t),u|=(127&c)<<14,128&c&&(c=og(t),u|=(127&c)<<21,128&c&&(c=og(t),h=127&c,128&c&&(c=og(t),h|=(127&c)<<7,128&c&&(c=og(t),h|=(127&c)<<14,128&c&&(c=og(t),h|=(127&c)<<21,128&c&&(c=og(t),_=127&c,128&c&&(c=og(t),_|=(127&c)<<7))))))))),{low:u|h<<28,high:h>>>4|_<<24,unsigned:s}}function Lp(t,s){let c=s.low>>>0,u=(s.low>>>28|s.high<<4)>>>0,h=s.high>>>24,_=h===0?u===0?c<16384?c<128?1:2:c<1<<21?3:4:u<16384?u<128?5:6:u<1<<21?7:8:h<128?9:10,B=WF(t,_),Q=t.bytes;switch(_){case 10:Q[B+9]=h>>>7&1;case 9:Q[B+8]=_!==9?128|h:127&h;case 8:Q[B+7]=_!==8?u>>>21|128:u>>>21&127;case 7:Q[B+6]=_!==7?u>>>14|128:u>>>14&127;case 6:Q[B+5]=_!==6?u>>>7|128:u>>>7&127;case 5:Q[B+4]=_!==5?128|u:127&u;case 4:Q[B+3]=_!==4?c>>>21|128:c>>>21&127;case 3:Q[B+2]=_!==3?c>>>14|128:c>>>14&127;case 2:Q[B+1]=_!==2?c>>>7|128:c>>>7&127;case 1:Q[B]=_!==1?128|c:127&c}}const Dre={},bre={},XF=4294967296,Kce=XF*XF,Nre=Kce/2;Lre(0,!0);const Ore=Lre(0),Hce=R9(0,-2147483648,!1),Yce=R9(-1,2147483647,!1);function Lre(t,s){let c,u,h;return s?(h=0<=(t>>>=0)&&t<256)&&(u=bre[t],u)?u:(c=R9(t,0,!0),h&&(bre[t]=c),c):(h=-128<=(t|=0)&&t<128)&&(u=Dre[t],u)?u:(c=R9(t,t<0?-1:0,!1),h&&(Dre[t]=c),c)}function R9(t,s,c){return{low:0|t,high:0|s,unsigned:!!c}}function Mre(t,s){if(isNaN(t))return Ore;{if(t<=-Nre)return Hce;if(t+1>=Nre)return Yce}return t<0?Ore:R9(t%XF|0,t/XF|0,s)}function kre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}class Rz extends Cn{get connectionState(){return this._connectionState}set connectionState(s){if(this._connectionState===s)return;const c=this._connectionState;this._connectionState=s,this.emit(rd.CONNECTION_STATE_CHANGE,s,c)}get quality(){return this._quality}set quality(s){this._quality=s>1?1:s<.1?.1:s,this._qualityTimer&&(window.clearTimeout(this._qualityTimer),this._qualityTimer=null),this._quality>=1||(this._qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this._qualityRatio},6e4))}constructor(s){var c;super(),ae(this,"name","AgoraRTCImageModeration"),ae(this,"_connectionState",r1.CONNECTING),ae(this,"_sequence",0),ae(this,"_moderationStartTime",void 0),ae(this,"_workerConnection",void 0),ae(this,"_workerMessageLengthLimit",void 0),ae(this,"_qualityRatio",void 0),ae(this,"_connectInfo",void 0),ae(this,"_cancelTokenSource",on.CancelToken.source()),ae(this,"_retryConfig",void 0),ae(this,"_moderationInterval",void 0),ae(this,"_moderationTimer",null),ae(this,"_moderationMode",1),ae(this,"_quality",1),ae(this,"_qualityTimer",null),ae(this,"_ticket",void 0),ae(this,"_moderationIntervalMinimum",void 0),ae(this,"_uploadFailedNum",0),ae(this,"_uploadNum",0),ae(this,"_uploadTimer",null),ae(this,"_extraInfo",void 0),ae(this,"_vendor",""),ae(this,"_encoder",new TextEncoder),ae(this,"_moderationId",void 0),ae(this,"inspectImage",()=>{if(this.connectionState!==r1.CONNECTED)throw new qe(Ce.OPERATION_ABORTED,"image moderation service connection status is ".concat(this.connectionState));this._moderationTimer&&(window.clearInterval(this._moderationTimer),this._moderationTimer=null),this._moderationTimer=window.setInterval(()=>{this.connectionState===r1.CONNECTED?this.requestToInspectImage():J.debug("[".concat(this._moderationId,"] Moderation State is not connected , "),this.connectionState)},this._moderationInterval{J.debug("[".concat(this._moderationId,"] Moderation operation :").concat(jC[u]," ").concat(h||""))}),this.handleWorkerEvents()}async init(s,c){this.emit(rd.STATE_CHANGE,jC.CONNECT_AP),this._connectInfo=s;const u=this._cancelTokenSource.token;return this._retryConfig=c,new Ut((h,_)=>{this.on(rd.CONNECTION_STATE_CHANGE,(B,Q)=>{B===r1.CONNECTED&&h()}),this.requestAP(s,u,c).then(B=>{this.connectWorker(B)}).catch(B=>{_(B)})})}updateConfig(s){var c;this._moderationInterval=(c=s.interval)!==null&&c!==void 0?c:1e3,s.extraInfo&&(this._extraInfo=this._encoder.encode(s.extraInfo)),s.vendor&&(this._vendor=s.vendor),J.debug("[".concat(this._moderationId,"] updateConfig: ").concat(JSON.stringify(s))),this.connectionState===r1.CONNECTED&&this.inspectImage()}async requestAP(s,c,u){const h=de("WEBCS_DOMAIN").map(T=>"https://".concat(T,"/api/v1")),_=await function(T,D,O,P){let U=D.appId,H=D.areaCode,$=D.cname,Z=D.sid,te=D.token,se=D.uid;oT++;const ge="moderation_plugin",me={service_name:ge,json_body:JSON.stringify({appId:U,areaCode:H,cname:$,command:"allocateEdge",requestId:oT,seq:oT,sid:Z,appToken:te,ts:Date.now(),uid:se+""})};let Qe,Oe,we=T[0];return dl(async()=>{Qe=Date.now();const Ne=await ng(we,{data:me,cancelToken:O,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(Oe=Date.now()-Qe,Ne.code!==0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap error, code"+Ne.code,{retry:!0,responseTime:Oe});throw J.error(ft.toString()),ft}const et=JSON.parse(Ne.json_body);if(et.code!==200){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap error, code: ".concat(et.code,", reason: ").concat(et.reason),{code:et.code,responseTime:Oe});throw J.error(ft.toString()),ft}if(!et.servers||!Array.isArray(et.servers)||et.servers.length===0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap empty server",{code:et.code,responseTime:Oe});throw J.error(ft.toString()),ft}if(!et.servers.some(ft=>!!ft.wss)){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap empty port",{code:et.code,responseTime:Oe});throw J.error(ft.toString()),ft}const st=de("IMAGE_MODERATION_WORKER_WSS");if(st)return{addressList:[st],workerToken:et.workerToken,vid:et.vid,responseTime:Oe};const Xt=de("IMAGE_MODERATION_WORKER_HOST");return{addressList:et.servers.map(ft=>{let Ir=ft.address,ui=ft.wss;if(Ir&&ui)return"wss://".concat(Ir.replace(/\./g,"-"),".").concat(Xt,":").concat(ui,"/moderation")}).filter(ft=>!!ft),workerToken:et.workerToken,vid:et.vid,ticket:et.appTicket,responseTime:Oe}},(Ne,et)=>(qt.apworkerEvent(Z,{success:!0,sc:200,serviceName:ge,responseDetail:JSON.stringify(Ne.addressList),firstSuccess:et===0,responseTime:Oe,serverIp:T[et%T.length]}),!1),(Ne,et)=>(qt.apworkerEvent(Z,{success:!1,sc:Ne.data&&Ne.data.code||200,serviceName:ge,responseTime:Oe,serverIp:T[et%T.length]}),!!(Ne.code!==Ce.OPERATION_ABORTED&&Ne.code!==Ce.UNEXPECTED_RESPONSE||Ne.data&&Ne.data.retry)&&(we=T[(et+1)%T.length],!0)),P)}(h,s,c,u);this.emit(rd.STATE_CHANGE,jC.AP_CONNECTED);const B=_.addressList,Q=_.ticket;return this._ticket=Q,B}async connectWorker(s){this.emit(rd.STATE_CHANGE,jC.CONNECT_WORKER),await this._workerConnection.init(s,1e4)}handleWorkerEvents(){this._workerConnection.on(jr.CONNECTED,async()=>{this.emit(rd.STATE_CHANGE,jC.WORKER_CONNECTED,this._workerConnection.url),this.connectionState=r1.CONNECTED}),this._workerConnection.on(jr.CLOSED,()=>{this.connectionState=r1.CLOSED}),this._workerConnection.on(jr.FAILED,()=>{this.connectionState=r1.CLOSED}),this._workerConnection.on(jr.RECONNECTING,()=>{this.connectionState=this.connectionState===r1.CONNECTED?r1.RECONNECTING:r1.CONNECTING}),this._workerConnection.on(jr.ON_MESSAGE,async s=>{if(s.data instanceof ArrayBuffer){const c=Uce(new Uint8Array(s.data));de("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&J.debug("[".concat(this._moderationId,"] Response message for worker of image moderation "),JSON.stringify(c)),this._uploadNum++,c.code===void 0||c.code===0||(this._uploadFailedNum++,J.error("[".concat(this._moderationId,"] Error response from worke, code is ").concat(c.code,", msg is ").concat(c.msg)),this._uploadTimer||(this._uploadTimer=window.setTimeout(()=>{qt.reportApiInvoke(this._connectInfo.sid||null,{name:Ti.IMAGE_MODERATION_UPLOAD,options:[this._uploadFailedNum,this._uploadNum,c.code],tag:vn.TRACER}).onError(new qe(Ce.IMAGE_MODERATION_UPLOAD_FAILED,c.msg)),this._uploadTimer=null},de("IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL"))))}else J.error("[".concat(this._moderationId,"] Unexpected message type from worker"))}),this._workerConnection.on(jr.WILL_RECONNECT,(s,c,u)=>{s==="recover"&&u(s),u("tryNext")}),this._workerConnection.on(jr.REQUEST_NEW_URLS,(s,c)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(s).catch(c)})}static intToLong(s){return{low:s|=0,high:s>>31,unsigned:s>=0}}async requestToInspectImage(){const s=q1(this,rd.CLIENT_LOCAL_VIDEO_TRACK),c={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(s){if(!s.isPlaying)return void(de("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&J.debug("Only the track being played can be inspected"));this._sequence++;const u=await this.generateRequestData(s,c);this._workerConnection.sendMessage(u,!0,!0)}else de("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&J.debug("Only the track being published can be inspected")}async generateRequestData(s,c){let u=c.appId,h=c.cname,_=c.cid,B=c.vid,Q=c.sid,T=c.uid;const D=Date.now(),O=await s.getCurrentFrameImage("image/jpeg",this.quality),P=await fU(O,u,h),U=this._sequence+"-"+_+"-"+T+"-"+D+"-"+un(12,""),H={appId:u,cid:_,cname:h,deviceId:"",elapse:Rz.intToLong(Number(D-this._moderationStartTime)),fileSize:O.buffer.byteLength,height:O.height,width:O.width,jpg:P,networkType:6,osType:7,requestId:U,sdkVersion:"4.24.5",sequence:this._sequence,sid:Q,timestamp:Mre(D),uid:T,vid:B,service:this._moderationMode,ticket:this._ticket,callbackData:this._extraInfo,vendorConfigs:this._vendor};this._extraInfo===void 0&&delete H.callbackData;const $=Pce(H);if($.byteLength1024)throw new qe(Ce.INVALID_PARAMS,"config.extraInfo length cannot exceed 1024 bytes");if(t&&t.vendor&&t.vendor.length>1024)throw new qe(Ce.INVALID_PARAMS,"config.vendor length cannot exceed 1024 bytes")}const jce={name:"ImageModeration",create:function(t){let s=t.config;return Pre(s),new Rz(s)}};var Ure,xre,Fre,Gre,Vre,Kre,Hre,Yre,jre,Jre,qre,Wre,Xre,zre,$re,Zre,eie,tie,rie,iie,nie,oie,sie,aie,Aie,cie,lie,die,uie,gie,Eie,hie,Iie,Cie,pie,fie,_ie,mie,Bie,Sie,Rie,yie,Zt;function Qie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function bl(t){for(var s=1;s{if(!Array.isArray(s)){if(!(s instanceof T2))return[s];s=[s]}return s.map(c=>c?Object(c).toString():"null")}}),Fre=yr({argsMap:(t,s)=>(s||(s=[]),Array.isArray(s)||s.trackMediaType!==y2.DATA?(Array.isArray(s)||(s=[s]),s.map(c=>c.getTrackId())):[s.getChannelId()])}),Gre=yr({argsMap:(t,s,c,u)=>[typeof s=="object"?s.uid:s,c,u]}),Vre=yr({argsMap:(t,s,c)=>[s,c]}),Kre=yr({argsMap:(t,s)=>s.map(c=>{let u=c.user,h=c.mediaType;return[u==null?void 0:u.uid,h]})}),Hre=yr({argsMap:(t,s,c,u)=>[typeof s=="object"?s.uid:s,c,u]}),Yre=yr({argsMap:(t,s)=>s.map(c=>{let u=c.user,h=c.mediaType;return{uid:u==null?void 0:u.uid,mediaType:h}})}),jre=yr(),Jre=yr(),qre=yr(),Wre=yr(),Xre=yr(),zre=yr(),$re=yr(),Zre=yr(),eie=yr(),tie=yr(),rie=yr(),iie=yr(),nie=yr(),oie=yr(),sie=yr(),aie=yr(),Aie=yr({argsMap:(t,s)=>[s]}),cie=yr(),lie=yr(),die=yr(),uie=yr(),gie=yr(),Eie=yr(),hie=yr(),Iie=yr(),Cie=yr({argsMap:(t,s)=>(Array.isArray(s)||(s=[s]),[JSON.stringify(s)])}),pie=yr(),fie=yr(),_ie=yr(),mie=yr(),Bie=yr(),Sie=yr(),Rie=yr({reportResult:!0}),yie=yr(),Zt=class extends Cn{get connectionState(){return this._gateway.state}get remoteUsers(){return this._users}get localTracks(){return this._p2pChannel.getAllTracks(!0)}get uid(){return this._uid}get channelName(){return this._channelName}get localDataChannels(){return this._p2pChannel.getAllDataChannels()}get mode(){return this._config.mode}get role(){var t;return((t=this._config)===null||t===void 0?void 0:t.role)||"audience"}get codec(){return this._config.codec}get audioCodec(){return this._config.audioCodec||"opus"}get isStringUID(){return!!this._joinInfo&&!!this._joinInfo.stringUid}get __className__(){return"Client"}constructor(t,s){let c;if(super(),ae(this,"store",void 0),ae(this,"_uid",void 0),ae(this,"_channelName",void 0),ae(this,"_uintUid",void 0),ae(this,"_users",[]),ae(this,"_config",void 0),ae(this,"_clientId",void 0),ae(this,"_appId",void 0),ae(this,"_sessionId",null),ae(this,"_key",void 0),ae(this,"_rtmConfig",{}),ae(this,"_joinInfo",void 0),ae(this,"_gateway",void 0),ae(this,"_statsCollector",void 0),ae(this,"_configDistribute",void 0),ae(this,"_leaveMutex",void 0),ae(this,"_publishMutex",void 0),ae(this,"_renewTokenMutex",void 0),ae(this,"_subscribeMutex",void 0),ae(this,"_encryptionMode","none"),ae(this,"_encryptionSecret",null),ae(this,"_encryptionSalt",null),ae(this,"_encryptDataStream",!1),ae(this,"_encryptDataStreamKey",null),ae(this,"_encryptDataStreamIv",null),ae(this,"_proxyServer",void 0),ae(this,"_turnServer",{servers:[],mode:"auto"}),ae(this,"_cloudProxyServerMode","disabled"),ae(this,"_isDualStreamEnabled",!1),ae(this,"_defaultStreamFallbackType",void 0),ae(this,"_lowStreamParameter",void 0),ae(this,"_streamFallbackTypeCacheMap",new Map),ae(this,"_remoteStreamTypeCacheMap",new Map),ae(this,"_axiosCancelSource",on.CancelToken.source()),ae(this,"_audioVolumeIndicationInterval",void 0),ae(this,"_networkQualityInterval",void 0),ae(this,"_userOfflineTimeout",void 0),ae(this,"_streamRemovedTimeout",void 0),ae(this,"_rteDetailInterval",void 0),ae(this,"_liveTranscodeStreamingClient",void 0),ae(this,"_liveRawStreamingClient",void 0),ae(this,"_channelMediaRelayClient",void 0),ae(this,"_networkQualitySensitivity","normal"),ae(this,"_p2pChannel",void 0),ae(this,"_useLocalAccessPoint",!1),ae(this,"_setLocalAPVersion",void 0),ae(this,"_joinAndNotLeaveYet",!1),ae(this,"_numberOfJoinCount",0),ae(this,"_joinResponse",null),ae(this,"_remoteDefaultVideoStreamType",void 0),ae(this,"_inspect",void 0),ae(this,"_moderation",void 0),ae(this,"_license",void 0),ae(this,"_pendingPublishedUsers",[]),ae(this,"ntpAlignErrorCount",0),ae(this,"remoteInboundOffset",0),ae(this,"_peerConnectionState",void 0),ae(this,"_pendingRtpCapabilityChange",void 0),ae(this,"_fallbackServerInfo",void 0),ae(this,"_dualStreamMode",void 0),ae(this,"_handleLocalTrackEnable",(h,_,B)=>{this.publish(h,!1).then(_).catch(B)}),ae(this,"_handleLocalTrackDisable",(h,_,B)=>{this.unpublish(h).then(_).catch(B)}),ae(this,"_handleUserOnline",h=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h.uid,this.channelName))return void J.debug("[".concat(h.uid,"] will be ignored in local"));this.isStringUID&&typeof h.uid!="string"&&J.error("[".concat(this._clientId,"] StringUID is Mixed with UintUID"));const _=this._users.find(B=>B.uid===h.uid);if(_)_._trust_in_room_=!0,_._is_pre_created&&(_._is_pre_created=!1,this.safeEmit(Vr.USER_JOINED,_));else{const B=new vp(h.uid,h.uint_id||h.uid);this._users.push(B),J.debug("[".concat(this._clientId,"] user online"),h.uid),this.store.firstVideoFrameDecoded(B.uid,{userJoinNotify:Date.now()}),this.safeEmit(Vr.USER_JOINED,B)}}),ae(this,"_handleUserOffline",h=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h.uid,this.channelName))return;const _=this._users.find(B=>B.uid===h.uid);_&&(this._handleRemoveStream(h),this._handleRemoveDataChannels(h),_._audio_pre_subscribed||_._video_pre_subscribed?_._is_pre_created=!0:UR(this._users,_),this._remoteStreamTypeCacheMap.delete(_.uid),this._streamFallbackTypeCacheMap.delete(_.uid),J.debug("[".concat(this._clientId,"] user offline"),h.uid,"reason:",h.reason),this.safeEmit(Vr.USER_LEAVED,_,h.reason))}),ae(this,"_handleAddAudioOrVideoStream",(h,_,B,Q,T,D,O,P)=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(_,this.channelName))return;const U=this._users.find(Z=>Z.uid===_);if(!U)return void J.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));J.debug("[".concat(this._clientId,"] stream added with uid ").concat(_,", type ").concat(h)),this.store.subscribe(U.uid,h,void 0,void 0,void 0,Date.now()),h==="video"&&this.store.firstVideoFrameDecoded(U.uid,{videoAddNotify:Date.now()});const H=h==="audio"?U.hasAudio:U.hasVideo;U._uintid||(U._uintid=D||_),h==="audio"?U._trust_audio_stream_added_state_=!0:U._trust_video_stream_added_state_=!0,h==="audio"?(U._audio_added_=!0,B!==void 0&&(U._audioSSRC=B),Q!==void 0&&(U._cname=Q),O&&(U._audioOrtc=O)):(U._video_added_=!0,B!==void 0&&(U._videoSSRC=B),Q!==void 0&&(U._cname=Q),P!==void 0&&(U._rtxSsrcId=P),O&&(U._videoOrtc=O)),(h==="audio"?U.hasAudio:U.hasVideo)&&!H&&(J.info("[".concat(this._clientId,"] remote user ").concat(U.uid," published ").concat(h)),this.safeEmit(Vr.USER_PUBLISHED,U,h)),h==="video"?qt.onGatewayStream(this._sessionId,Rs.ON_ADD_VIDEO_STREAM,ao.ON_ADD_VIDEO_STREAM,{peer:D||_,ssrc:U._videoSSRC}):qt.onGatewayStream(this._sessionId,Rs.ON_ADD_AUDIO_STREAM,ao.ON_ADD_AUDIO_STREAM,{peer:D||_,ssrc:U._audioSSRC}),this._p2pChannel.remoteMediaSsrcChanged(U,h,B).then(Z=>{if(Z&&(J.debug("[".concat(this._clientId,"] resubscribe ").concat(h," for user ").concat(U.uid," after rejoin because SSRC id changed.")),this._p2pChannel instanceof Em))return this._p2pChannel.unsubscribe(U,h,!0).then(()=>this._subscribe(U,h,!0).catch(te=>{J.error("[".concat(this._clientId,"] resubscribe error"),te.toString())}))}),this._p2pChannel.hasPendingRemoteMedia(U,h)&&(J.debug("[".concat(this._clientId,"] resubscribe ").concat(h," for user ").concat(U.uid," after reconnect.")),this._subscribe(U,h,!0).catch(Z=>{J.error("[".concat(this._clientId,"] resubscribe error"),Z.toString())}));const $=this._getEncodingName(T);h==="video"&&($==="unknown"?this.safeEmit(Vr.AV1_DECODABLE_RESULT,!1):Zs()||Ia()||($==null?void 0:$.toLocaleLowerCase())!==Qn.av1||Ece().then(Z=>{de("FLS_ENABLE_AV1_DECODE_DETECT")&&this.safeEmit(Vr.AV1_DECODABLE_RESULT,Z),Z||this._gateway.downgradeCodec($)}))}),ae(this,"_handleRemoveStream",h=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h.uid,this.channelName))return;const _=this._users.find(Q=>Q.uid===h.uid);if(!_)return void J.warning("[".concat(this._clientId,"] can not find target user!(on_remove_stream)"));J.debug("[".concat(this._clientId,"] stream removed with uid ").concat(h.uid));let B=()=>{};_.hasAudio&&_.hasVideo?B=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished audio track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"audio"),J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished video track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"video")}:_.hasVideo?B=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished video track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"video")}:_.hasAudio&&(B=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished audio track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"audio")}),_._video_pre_subscribed||_._audio_pre_subscribed||(_._trust_audio_stream_added_state_=!0,_._trust_video_stream_added_state_=!0,_._audio_added_=!1,_._video_added_=!1,this._p2pChannel instanceof Em&&this._p2pChannel.unsubscribe(_).then(Q=>{if(Q)return this._gateway.unsubscribe(Q,_.uid)}),_._audioSSRC=void 0,_._videoSSRC=void 0,_._audioOrtc=void 0,_._videoOrtc=void 0,_._rtxSsrcId=void 0),qt.onGatewayStream(this._sessionId,Rs.ON_REMOVE_STREAM,ao.ON_REMOVE_STREAM,{peer:h.uint_id||h.uid}),B()}),ae(this,"_handleSetStreamLocalEnable",(h,_,B)=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(_,this.channelName))return;const Q=this._users.find(O=>O.uid===_);if(!Q)return void J.error("[".concat(this._clientId,"] can not find target user!(disable_local)"));J.debug("[".concat(this._clientId,"] local ").concat(h," ").concat(B?"enabled":"disabled"," with uid ").concat(_));const T=h==="audio"?Q.hasAudio:Q.hasVideo;if(h==="audio"){Q._trust_audio_enabled_state_=!0;const O=Q._audio_enabled_;if(Q._audio_enabled_=B,Q._audio_enabled_===O)return;{const P=Q._audio_enabled_?"enable-local-audio":"disable-local-audio";J.debug("[".concat(this._clientId,"] user-info-updated, uid: ").concat(_,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,_,P)}}else{Q._trust_video_enabled_state_=!0;const O=Q._video_enabled_;if(Q._video_enabled_=B,Q._video_enabled_===O)return;{const P=Q._video_enabled_?"enable-local-video":"disable-local-video";J.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(_,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,_,P)}}const D=h==="audio"?Q.hasAudio:Q.hasVideo;return T!==D?!T&&D?(J.info("[".concat(this._clientId,"] remote user ").concat(_," published ").concat(h)),void this.safeEmit(Vr.USER_PUBLISHED,Q,h)):(h==="video"&&Q._videoTrack&&Q._videoTrack._destroy(),h==="audio"&&Q._audioTrack,this._p2pChannel.muteRemote(Q,h),J.info("[".concat(this._clientId,"] remote user ").concat(_," unpublished ").concat(h)),void this.safeEmit(Vr.USER_UNPUBLISHED,Q,h)):void 0}),ae(this,"_handleMuteStream",(h,_,B)=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h,this.channelName))return;J.debug("[".concat(this._clientId,"] receive mute message"),h,_,B);const Q=this._users.find(O=>O.uid===h);if(!Q)return void J.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(h));const T=_==="audio"?Q.hasAudio:Q.hasVideo;if(_==="audio"){Q._trust_audio_mute_state_=!0;const O=Q._audio_muted_;if(Q._audio_muted_=B,Q._audio_muted_===O)return;{const P=Q._audio_muted_?"mute-audio":"unmute-audio";J.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(h,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,h,P)}}else{Q._trust_video_mute_state_=!0;const O=Q._video_muted_;if(Q._video_muted_=B,Q._video_muted_===O)return;{const P=Q._video_muted_?"mute-video":"unmute-video";J.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(h,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,h,P)}}const D=_==="audio"?Q.hasAudio:Q.hasVideo;if(T!==D){if(!T&&D)return(_==="audio"?Q._audioSSRC:Q._videoSSRC)?(J.info("[".concat(this._clientId,"] remote user ").concat(h," published ").concat(_)),void this.safeEmit(Vr.USER_PUBLISHED,Q,_)):void J.warning("[".concat(this._clientId,"] remote user ").concat(h," receive ").concat(_," unmute message before add stream message, ").concat(_," SSRC doesn't exist yet."));_==="video"&&Q._videoTrack&&!Q._video_pre_subscribed&&Q._videoTrack._destroy(),_==="audio"&&Q._audioTrack,this._p2pChannel.muteRemote(Q,_),J.info("[".concat(this._clientId,"] remote user ").concat(h," unpublished ").concat(_)),this.safeEmit(Vr.USER_UNPUBLISHED,Q,_)}}),ae(this,"_handleP2PLost",async h=>{J.debug("[".concat(this._clientId,"] receive p2p lost"),h),parseInt(h.p2pid,10)===this.store.p2pId?await this._p2pChannel.requestReconnect():J.warning("[".concat(this._clientId,"] P2PLost stream not found"),h)}),ae(this,"_handleTokenWillExpire",()=>{J.debug("[".concat(this._clientId,"] received message onTokenPrivilegeWillExpire")),this.safeEmit(Vr.ON_TOKEN_PRIVILEGE_WILL_EXPIRE)}),ae(this,"_handleBeforeUnload",h=>{h.type==="beforeunload"&&h.returnValue!==void 0&&h.returnValue!==""||(this.leave(),J.info("[".concat(this._clientId,"] auto leave onbeforeunload or pagehide")))}),ae(this,"_handleUpdateNetworkQuality",()=>{if(this._networkQualitySensitivity==="normal")return;if(navigator&&navigator.onLine!==void 0&&!navigator.onLine)return void this.safeEmit(Vr.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6});const h={downlinkNetworkQuality:0,uplinkNetworkQuality:0};h.uplinkNetworkQuality=this._p2pChannel.getUplinkNetworkQuality(),h.downlinkNetworkQuality=this._p2pChannel.getDownlinkNetworkQuality(),this.safeEmit(Vr.NETWORK_QUALITY,h)}),ae(this,"_handleP2PAddAudioOrVideoStream",(h,_,B,Q)=>{const T=this._users.find(O=>O.uid===_);if(!T)return void J.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));J.debug("[".concat(this._clientId,"] stream added with uid ").concat(_,", type ").concat(h)),this.store.subscribe(T.uid,h,void 0,void 0,void 0,Date.now());const D=h==="audio"?T.hasAudio:T.hasVideo;h==="audio"?T._trust_audio_stream_added_state_=!0:T._trust_video_stream_added_state_=!0,h==="audio"?(T._audio_added_=!0,B!==void 0&&(T._audioSSRC=B),Q!==void 0&&(T._audioMid=Q)):(T._video_added_=!0,B!==void 0&&(T._videoSSRC=B),Q!==void 0&&(T._videoMid=Q)),(h==="audio"?T.hasAudio:T.hasVideo)&&!D&&(J.info("[".concat(this._clientId,"] remote user ").concat(T.uid," published ").concat(h)),this.safeEmit(Vr.USER_PUBLISHED,T,h)),this._p2pChannel.hasPendingRemoteMedia(T,h)&&(J.debug("[".concat(this._clientId,"] resubscribe ").concat(h," for user ").concat(T.uid," after reconnect.")),this._subscribe(T,h,!0).catch(O=>{J.error("[".concat(this._clientId,"] resubscribe error"),O.toString())}))}),this._config=t,this._clientId=s||un(5,"client-"),this.store=new class{constructor(h,_,B,Q,T){Dr(this,"state",void 0),this.state={codec:h,audioCodec:_,mode:B,clientId:Q,sessionId:null,p2pId:0,dcId:0,pubId:0,subId:0,keyMetrics:{publish:[],subscribe:[],firstVideoFrameDecoded:[]},joinChannelServiceRecords:[],cloudProxyServerMode:"disabled",useP2P:!1,p2pTransport:Ah.Default,hasStartJoinChannel:!1,isABTestSuccess:!1,rteUrl:void 0,rteSid:void 0,autoSubscribe:!1,enableInstantMuteRestore:!1,networkQualityProbe:!1,useDcSignal:!!T,preSubOptions:void 0}}dispatch(h){this.state=function(_,B){switch(B.type){case Fr.SET_SESSION_ID:return wt(wt({},_),{},{sessionId:B.sessionId});case Fr.SET_P2P_ID:return wt(wt({},_),{},{p2pId:B.p2pId});case Fr.SET_UID:return wt(wt({},_),{},{uid:B.uid});case Fr.SET_INT_UID:return wt(wt({},_),{},{intUid:B.intUid});case Fr.SET_PUB_ID:return wt(wt({},_),{},{pubId:B.pubId});case Fr.KEY_METRIC_CLIENT_CREATED:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{clientCreated:B.metric})});case Fr.KEY_METRIC_JOIN_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinStart:B.metric})});case Fr.KEY_METRIC_PRELOAD_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{preloadStart:B.metric})});case Fr.KEY_METRIC_PRELOAD_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{preloadEnd:B.metric})});case Fr.KEY_METRIC_JOIN_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinEnd:B.metric})});case Fr.KEY_METRIC_REQUEST_AP_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{requestAPStart:B.metric})});case Fr.KEY_METRIC_REQUEST_AP_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{requestAPEnd:B.metric})});case Fr.KEY_METRIC_REQUEST_SUA_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{requestSUAEnd:B.metric})});case Fr.KEY_METRIC_BEFORE_CONNECT:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{beforeConnect:B.metric})});case Fr.KEY_METRIC_PEER_RECEIVER:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{peerReceiver:B.metric})});case Fr.KEY_METRIC_SIGNAL_CONNECTED:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{signalConnected:B.metric})});case Fr.KEY_METRIC_JOIN_REQ:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinReq:B.metric})});case Fr.KEY_METRIC_JOIN_REP:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinRep:B.metric})});case Fr.KEY_METRIC_JOIN_GATEWAY_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinGatewayStart:B.metric})});case Fr.KEY_METRIC_JOIN_GATEWAY_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinGatewayEnd:B.metric})});case Fr.KEY_METRIC_PEER_CONNECTION_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{peerConnectionStart:B.metric})});case Fr.KEY_METRIC_PEER_CONNECTION_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{peerConnectionEnd:B.metric})});case Fr.KEY_METRIC_DESCRIPTION_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{descriptionStart:B.metric})});case Fr.KEY_METRIC_SIGNAL_CHANNEL_OPEN:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{signalChannelOpen:B.metric})});case Fr.KEY_METRIC_ICE_CONNECTION_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{iceConnectionEnd:B.metric})});case Fr.KEY_METRIC_PUBLISH:{const Q=_.keyMetrics.publish,T=Q.findIndex(D=>D.trackId===B.metric.trackId);return T!==-1?(Q[T]=wt(wt({},Q[T]),B.metric),wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{publish:[...Q]})})):wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{publish:[..._.keyMetrics.publish,B.metric]})})}case Fr.KEY_METRIC_SUBSCRIBE:{const Q=_.keyMetrics.subscribe,T=Q.findIndex(D=>D.userId===B.metric.userId&&D.type===B.metric.type);return T!==-1?(Q[T]=wt(wt({},Q[T]),B.metric),wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{subscribe:[...Q]})})):wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{subscribe:[..._.keyMetrics.subscribe,B.metric]})})}case Fr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED:{const Q=_.keyMetrics.firstVideoFrameDecoded,T=Q.findIndex(D=>D.userId===B.metric.userId);return T!==-1?(Q[T]=wt(wt({},Q[T]),B.metric),wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{firstVideoFrameDecoded:[...Q]})})):wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{firstVideoFrameDecoded:[..._.keyMetrics.firstVideoFrameDecoded,B.metric]})})}case Fr.RESET_FIRST_VIDEO_FRAME_DECODED:return _.keyMetrics.firstVideoFrameDecoded=[],_;case Fr.SET_CLOUD_PROXY_SERVER_MODE:return _.cloudProxyServerMode=B.mode,_;case Fr.RECORD_JOIN_CHANNEL_SERVICE:return typeof B.index!="number"?_.joinChannelServiceRecords=[..._.joinChannelServiceRecords,B.record]:(_.joinChannelServiceRecords[B.index]=wt(wt({},_.joinChannelServiceRecords[B.index]),B.record),_.joinChannelServiceRecords=[..._.joinChannelServiceRecords]),_;case Fr.RESET_JOIN_CHANNEL_SERVICE_RECORDS:return _.joinChannelServiceRecords=[],_;case Fr.RESET_KEY_METRICS:return _.keyMetrics={publish:[],subscribe:[],firstVideoFrameDecoded:[]},_;case Fr.SET_USE_P2P:return wt(wt({},_),{},{useP2P:B.val});case Fr.SET_TRANSPORT_TYPE:return wt(wt({},_),{},{p2pTransport:B.val});case Fr.SET_RTE_URL:return wt(wt({},_),{},{rteUrl:B.rteUrl});case Fr.SET_RTE_SID:return wt(wt({},_),{},{rteSid:B.rteSid});default:return _}}(this.state,h)}get useDcSignal(){return this.state.useDcSignal}set useDcSignal(h){this.state.useDcSignal=h}set autoSubscribe(h){this.state.autoSubscribe=h}get autoSubscribe(){return this.state.autoSubscribe}set enableInstantMuteRestore(h){this.state.enableInstantMuteRestore=h}get enableInstantMuteRestore(){return this.state.enableInstantMuteRestore}set networkQualityProbe(h){this.state.networkQualityProbe=h}get networkQualityProbe(){return this.state.networkQualityProbe}set preSubOptions(h){this.state.preSubOptions=h}get preSubOptions(){return this.state.preSubOptions}set sessionId(h){this.dispatch({type:Fr.SET_SESSION_ID,sessionId:h})}get sessionId(){return this.state.sessionId}set rteUrl(h){this.dispatch({type:Fr.SET_RTE_URL,rteUrl:h})}get rteUrl(){return this.state.rteUrl}set rteSid(h){this.dispatch({type:Fr.SET_RTE_SID,rteSid:h})}get rteSid(){return this.state.rteSid}set cid(h){this.state.cid=h}get cid(){return this.state.cid}set codec(h){this.state.codec=h}get codec(){return this.state.codec}get mode(){return this.state.mode}get audioCodec(){return this.state.audioCodec}get clientId(){return this.state.clientId}set p2pId(h){this.dispatch({type:Fr.SET_P2P_ID,p2pId:h})}get p2pId(){return this.state.p2pId}set dcId(h){this.dispatch({type:Fr.SET_DC_ID,dcId:h})}get dcId(){return this.state.dcId}set uid(h){this.dispatch({type:Fr.SET_UID,uid:h})}get uid(){return this.state.uid}set intUid(h){this.dispatch({type:Fr.SET_INT_UID,intUid:h})}get intUid(){return this.state.intUid}set pubId(h){this.dispatch({type:Fr.SET_PUB_ID,pubId:h})}get pubId(){return this.state.pubId}set cloudProxyServerMode(h){this.dispatch({type:Fr.SET_CLOUD_PROXY_SERVER_MODE,mode:h})}get cloudProxyServerMode(){return this.state.cloudProxyServerMode}set useP2P(h){this.dispatch({type:Fr.SET_USE_P2P,val:h})}get useP2P(){return this.state.useP2P}set p2pTransport(h){this.dispatch({type:Fr.SET_TRANSPORT_TYPE,val:h})}get p2pTransport(){return this.state.p2pTransport}set hasStartJoinChannel(h){this.state.hasStartJoinChannel=h}get hasStartJoinChannel(){return this.state.hasStartJoinChannel}set isABTestSuccess(h){this.state.isABTestSuccess=h}get isABTestSuccess(){return this.state.isABTestSuccess}clientCreated(){this.dispatch({type:Fr.KEY_METRIC_CLIENT_CREATED,metric:Date.now()})}joinStart(){this.dispatch({type:Fr.KEY_METRIC_JOIN_START,metric:Date.now()})}preloadStart(){this.dispatch({type:Fr.KEY_METRIC_PRELOAD_START,metric:Date.now()})}preloadEnd(){this.dispatch({type:Fr.KEY_METRIC_PRELOAD_END,metric:Date.now()})}joinEnd(){this.dispatch({type:Fr.KEY_METRIC_JOIN_END,metric:Date.now()})}requestAPStart(){this.dispatch({type:Fr.KEY_METRIC_REQUEST_AP_START,metric:Date.now()})}requestAPEnd(){this.dispatch({type:Fr.KEY_METRIC_REQUEST_AP_END,metric:Date.now()})}requestSUAEnd(){this.dispatch({type:Fr.KEY_METRIC_REQUEST_SUA_END,metric:Date.now()})}beforeConnect(){this.dispatch({type:Fr.KEY_METRIC_BEFORE_CONNECT,metric:Date.now()})}peerReceiver(){this.dispatch({type:Fr.KEY_METRIC_PEER_RECEIVER,metric:Date.now()})}signalConnected(){this.dispatch({type:Fr.KEY_METRIC_SIGNAL_CONNECTED,metric:Date.now()})}joinReq(){this.dispatch({type:Fr.KEY_METRIC_JOIN_REQ,metric:Date.now()})}joinRep(){this.dispatch({type:Fr.KEY_METRIC_JOIN_REP,metric:Date.now()})}joinGatewayStart(){this.dispatch({type:Fr.KEY_METRIC_JOIN_GATEWAY_START,metric:Date.now()})}joinGatewayEnd(){this.dispatch({type:Fr.KEY_METRIC_JOIN_GATEWAY_END,metric:Date.now()})}peerConnectionStart(){this.dispatch({type:Fr.KEY_METRIC_PEER_CONNECTION_START,metric:Date.now()})}peerConnectionEnd(){this.dispatch({type:Fr.KEY_METRIC_PEER_CONNECTION_END,metric:Date.now()})}firstVideoFrameDecoded(h,_){this.dispatch({type:Fr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED,metric:wt({userId:h},_)})}descriptionStart(){this.dispatch({type:Fr.KEY_METRIC_DESCRIPTION_START,metric:Date.now()})}signalChannelOpen(){this.dispatch({type:Fr.KEY_METRIC_SIGNAL_CHANNEL_OPEN,metric:Date.now()})}iceConnectionEnd(){this.dispatch({type:Fr.KEY_METRIC_ICE_CONNECTION_END,metric:Date.now()})}publish(h,_,B,Q){this.dispatch({type:Fr.KEY_METRIC_PUBLISH,metric:wt(wt({trackId:h,type:_},B&&{publishStart:B}),Q&&{publishEnd:Q})})}subscribe(h,_,B,Q,T,D,O){this.dispatch({type:Fr.KEY_METRIC_SUBSCRIBE,metric:wt(wt(wt(wt(wt({userId:h,type:_},B&&{subscribeStart:B}),Q&&{subscribeEnd:Q}),T&&{firstFrame:T}),D&&{streamAdded:D}),O&&{firstDecoded:O})})}massSubscribe(h,_,B,Q){h.forEach(T=>{this.dispatch({type:Fr.KEY_METRIC_SUBSCRIBE,metric:wt(wt(wt({userId:T.userId,type:T.type},_&&{subscribeStart:_}),B&&{subscribeEnd:B}),Q&&{firstFrame:Q})})})}get keyMetrics(){return this.state.keyMetrics}recordJoinChannelService(h,_){h.service==="gateway"&&Array.isArray(h.urls)&&(h.urls=h.urls.map(B=>B.replace(/(\d+)-\d+-\d+-(\d+)/,"$1-*-*-$2")));try{return typeof _!="number"?(this.dispatch({type:Fr.RECORD_JOIN_CHANNEL_SERVICE,record:wt(wt({},h),{},{sessionId:this.sessionId,cloudProxyMode:this.cloudProxyServerMode,uid:this.uid})}),this.state.joinChannelServiceRecords.length-1):(_<0||_>=this.state.joinChannelServiceRecords.length||this.dispatch({type:Fr.RECORD_JOIN_CHANNEL_SERVICE,record:h,index:_}),_)}catch{return 0}}resetJoinChannelServiceRecords(){this.dispatch({type:Fr.RESET_JOIN_CHANNEL_SERVICE_RECORDS})}resetKeyMetrics(){this.dispatch({type:Fr.RESET_KEY_METRICS})}resetFirstVideoFrameDecoded(){this.dispatch({type:Fr.RESET_FIRST_VIDEO_FRAME_DECODED})}get joinChannelServiceRecords(){try{return this.state.joinChannelServiceRecords}catch{return[]}}}(t.codec,t.audioCodec,t.mode,this._clientId,de("SIGNAL_CHANNEL")===1),this._leaveMutex=new ra("client-leave",this._clientId),this._publishMutex=new ra("client-publish",this._clientId),this._renewTokenMutex=new ra("client-renewtoken",this._clientId),this._subscribeMutex=new ra("client-subscribe",this._clientId),this.store.clientCreated(),t.proxyServer&&this.setProxyServer(t.proxyServer,!0),t.turnServer&&this.setTurnServer(t.turnServer,!0),J.info("[".concat(this._clientId,"] Initializing AgoraRTC client v").concat(W1," build: ").concat(Ng,", mode: ").concat(this.mode,", codec: ").concat(this.codec)),t.clientRoleOptions)try{PR(t.clientRoleOptions),c=Object.assign({},t.clientRoleOptions)}catch(h){J.warning("[".concat(this._clientId,"] ").concat(h.toString()))}var u;this._statsCollector=new m9(this.store),this._statsCollector.onStatsException=(h,_,B)=>{J.warn("[".concat(this._clientId,"] receive exception msg, code: ").concat(h,", msg: ").concat(_,", uid: ").concat(B)),h===rz.VIDEO_ENCODE_FAILED&&this.localTracks.forEach(Q=>{Q instanceof Or&&de("ENABLE_ENCODE_EXCEPTION")&&Q.findClosestProfile()}),this.safeEmit(Vr.EXCEPTION,{code:h,msg:_,uid:B})},this._statsCollector.onUploadPublishDuration=(h,_,B,Q)=>{const T=this._users.find(D=>D.uid===h);T&&(this.store.keyMetrics&&(this.store.firstVideoFrameDecoded(T.uid,{peerPublishDuration:B,peerPubStatusMs:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(T)),qt.peerPublishStatus(this._sessionId,{subscribeElapse:Q,audioPublishDuration:_,videoPublishDuration:B,peer:T._uintid}))},this._statsCollector.onVideoCodecChanged=h=>{if(de("VIDEO_STANDARD_BITRATE_VERSION")&&(h==="av1"||h==="h265"||h==="h264")){const _=this.localTracks.find(B=>B instanceof pn);_&&_._saveEncodeBitrateRatio!==1&&_.setSaveEncodeBitrateRatio(h==="h264"?de("BASELINE_MORE_H264_BITRATE_RATIO"):void 0)}},this.store.useP2P=t.mode==="p2p",this._gateway=new sce(this.store,{clientId:this._clientId,mode:this.mode,codec:this.codec,websocketRetryConfig:t.websocketRetryConfig||So,httpRetryConfig:t.httpRetryConfig||So,forceWaitGatewayResponse:t.forceWaitGatewayResponse===void 0||t.forceWaitGatewayResponse,statsCollector:this._statsCollector,role:t.role,clientRoleOptions:c}),this._configDistribute=new _ce(this._clientId,this.store),this.store.useP2P?(this._p2pChannel=(u={store:this.store,statsCollector:this._statsCollector},aE("P2PChannel").create(u)),this._handleP2PEvents()):this._p2pChannel=new Em(this.store,this._statsCollector),this._handleP2PChannelEvents(),this._handleGatewayEvents(),this._handleGatewaySignalEvents()}async joinMeta(t,s,c,u,h){let _=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],B=arguments.length>6&&arguments[6]!==void 0&&arguments[6];Dn("JOIN_GATEWAY_USE_443PORT_ONLY",_),Dn("JOIN_GATEWAY_USE_DUAL_DOMAIN",B);const Q=this._gateway.signal.websocket;return Q instanceof Bh&&(Q.use443PortOnly=_,Q.tryDoubleDomain=B),async function(T,D,O){vR.get(T)||vR.set(T,[]),DR.get(T)||DR.set(T,D),sl.get(T)||sl.set(T,0);const P=vR.get(T),U=DR.get(T);if(!P||!U)throw new Error("concurrent: deferQueue or maxConcurrency is null");if(sl.get(T)===U){const se=s2();P.push(se),await se.promise}sl.set(T,sl.get(T)+1);for(var H=arguments.length,$=new Array(H>3?H-3:0),Z=3;Z0&&(P[0].resolve(),P.shift()),sl.get(T)===0&&(vR.set(T,[]),DR.set(T,0),sl.set(T,0)),te}("client.join",de("JOIN_MAX_CONCURRENCY"),this.join.bind(this),t,s,c,u,h)}async join(t,s,c,u,h){J.scheduleUploadStart();const _=++this._numberOfJoinCount;this.store.joinStart(),u&&(this.store.uid=u);const B=(Mf||Mf||(Mf=(window.location.protocol.split(":")[0]||"").toUpperCase(),Mf))==="HTTPS",Q=KR()?window.isSecureContext:"Browser Not Support";(!KR()&&!B||!window.isSecureContext)&&J.warning("The website must be running in a secure context (About secure context: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts ), otherwise the media collection will be restricted by the browser");let T;qt.setAppId(t);try{if(!c&&c!==null)throw new qe(Ce.INVALID_PARAMS,"Invalid token: ".concat(c,". If you don not use token, set it to null"));if(c&&Ra(c,"token",1,2047),Ra(t,"appid",1,2047),fl(s),u&&P2(u),h)if(typeof h=="string")Ra(h,"optionalInfo",1,256),T=h;else{if(typeof h!="object")throw new qe(Ce.INVALID_PARAMS,"Invalid options: options is not a string or object");{const se=h.autoSubscribe,ge=h.enableInstantMuteRestore,me=h.networkQualityProbe,Qe=h.preSubOptions;se&&(ll(se,"autoSubscribe"),J.info("[".concat(this._clientId,"] join: autoSubscribe: ").concat(se)),this.store.autoSubscribe=se),ge&&(ll(ge,"enableInstantMuteRestore"),J.info("[".concat(this._clientId,"] join: enableInstantMuteRestore: ").concat(ge)),this.store.enableInstantMuteRestore=ge),me&&(ll(me,"networkQualityProbe"),J.info("[".concat(this._clientId,"] join: networkQualityProbe: ").concat(me)),this.store.networkQualityProbe=me),Array.isArray(Qe)&&(j1(Qe,"preSubOptions"),Qe.forEach(Oe=>{P2(Oe.uid),function(we,Ne){if(typeof we!="string"&&!(we instanceof HTMLElement||we instanceof HTMLVideoElement))throw new tt(Ce.INVALID_PARAMS,"".concat(Ne," should be a string or a HTML element"))}(Oe.element,"element")}),J.info("[".concat(this._clientId,"] join: preSubOptions: ").concat(Qe.map(Oe=>"".concat(Oe.uid,": ").concat(typeof Oe.element=="string"?Oe.element:Oe.element.id)).join(","))),this.store.preSubOptions=Qe)}}}catch(se){throw qt.reportApiInvoke(Pd(),{name:Ti.JOIN,options:[t,s,c,u],states:{isHttps:B,isSecureContext:Q},tag:vn.TRACER}).onError(se),se}if(this._leaveMutex.isLocked&&(J.debug("[".concat(this._clientId,"] join: waiting leave operation")),(await this._leaveMutex.lock())(),J.debug("[".concat(this._clientId,"] join: continue"))),this._joinAndNotLeaveYet=!0,this.connectionState!=="DISCONNECTED"){const se=new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already in connecting/connected state"));throw qt.reportApiInvoke(Pd(),{name:Ti.JOIN,options:[t,s,c,u],states:{isHttps:B,isSecureContext:Q},tag:vn.TRACER}).onError(se),se}this._gateway.state="CONNECTING",this.store.preloadStart();const D=await _z({appId:t,cname:s,uid:u,stringUid:typeof u=="string"?u:void 0,token:c||t,cloudProxyServer:this._cloudProxyServerMode});if(this.store.preloadEnd(),!this._joinAndNotLeaveYet)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));const O=(D==null?void 0:D.sid)||Pd();J.info("[".concat(this._clientId,"] start join channel ").concat(s,", join number: ").concat(_)),this._sessionId||(this._sessionId=O,this.store.sessionId=this._sessionId);const P=qt.reportApiInvoke(this._sessionId,{id:this._clientId,name:Ti.JOIN,options:[t,s,c,u],states:{isHttps:B,isSecureContext:Q},tag:vn.TRACER}),U=bl(bl(bl({},this._rtmConfig),{},{role:this.role,clientId:this._clientId,appId:t,sid:this._sessionId,cname:s,uid:typeof u!="string"?u:null,turnServer:this._turnServer,proxyServer:this._proxyServer,token:c||t,cloudProxyServer:this._cloudProxyServerMode,optionalInfo:T,license:this._license,useLocalAccessPoint:this._useLocalAccessPoint,preload:!!D},this._remoteDefaultVideoStreamType!==void 0&&{defaultVideoStream:this._remoteDefaultVideoStreamType}),{},{apRequestDetail:de("AP_REQUEST_DETAIL")||void 0});if(this._useLocalAccessPoint&&(U.setLocalAPVersion=this._setLocalAPVersion),typeof u=="string"&&(U.stringUid=u,this._uintUid?(U.uid=this._uintUid,this._uintUid=void 0):U.uid=0),this._encryptionMode!=="none"&&this._encryptionSecret){if(U.aesmode=this._encryptionMode,U.aespassword=await(async se=>{const ge=function(we){const Ne=window.atob(`MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCMnXAHkKIGAM+x4N22gCI+Wyu +STM9ztkT3uYslTT2PuKmZfPzhH6kVdO7PTjGCOZnAsyb3oTtWat0KcxQ4jxvqQV+ +HvYl3iI1Yd4vl2c3qRMJPLtRDfNxa2Mcxgq7e9aEUibzdd0st+OJAy3tOj/Y0aVy +xQiYDz3vqa6bP29adwIDAQAB`),et=new Uint8Array(new ArrayBuffer(Ne.length));for(let st=0;st{this.connectionState==="CONNECTING"&&H===this._sessionId&&qt.joinChannelTimeout(this._sessionId,5)},5e3);try{var $;let se;const ge=U.cloudProxyServer;if(Et($=["proxy3","proxy4","proxy5"]).call($,ge)){const Ne=de("PROXY_SERVER_TYPE3");Array.isArray(Ne)?U.proxyServer=Ne[0]:U.proxyServer=Ne}if(qt.setProxyServer(U.proxyServer),J.setProxyServer(U.proxyServer),this.store.requestAPStart(),de("ENABLE_JOIN_V4")&&U.cloudProxyServer==="disabled")try{U.stringUid&&!U.uid&&(U.uid=await ez(U.stringUid,U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store).finally(()=>{this.store.requestSUAEnd()}),J.debug("[".concat(this._clientId,"] getUserAccount Success ").concat(U.stringUid," => ").concat(U.uid))),J.debug("[".concat(this._clientId,"] try use best first frame line"));const Ne=await this._p2pChannel.startP2PConnection({isPreallocation:!0});se=await hce(U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store,Ne),J.debug("[".concat(this._clientId,"] get serverInfo from sdp endpoint")),de("ENABLE_SDP_ENDPOINT_LOG")&&J.debug("[".concat(this._clientId,"] serverInfo: "),se)}catch(Ne){se=void 0,J.debug("[".concat(this._clientId,"] join channel with sdp endpoint failed, fallback to normal join ap"),Ne)}if(!se)if(D){if(J.debug("[".concat(this._clientId,"] get serverInfo Success from Preload Cache ").concat(U.stringUid?", ".concat(U.stringUid," => ").concat(D.intUid):""," ")),U.stringUid&&!U.uid&&(U.uid=D.intUid),se={gatewayInfo:D.ap.gatewayInfo},de("JOIN_WITH_FALLBACK_MEDIA_PROXY")&&U.turnServer.mode==="auto")if(D.ap.proxyInfo.addresses.length===0)J.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers");else{const Ne=(await ate(D.ap.proxyInfo,D.ap.gatewayInfo.uid)).map(et=>({turnServerURL:et.address,tcpport:et.tcpport||Bn.tcpport,udpport:et.udpport||Bn.udpport,username:et.username||Bn.username,password:et.password||Bn.password,forceturn:!1,security:!0}));U.turnServer={mode:"manual",servers:Ne}}Sre(D,U.stringUid)}else{if(U.stringUid&&!U.uid){let Ne;var Z=ir(await Ut.all([ez(U.stringUid,U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store).finally(()=>{this.store.requestSUAEnd()}),Ote(U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,!0,this.store).finally(()=>{this.store.requestAPEnd()})]),2);Ne=Z[0],se=Z[1],J.debug("[".concat(this._clientId,"] getUserAccount Success ").concat(U.stringUid," => ").concat(Ne)),U.uid=Ne,se.gatewayInfo.uid=Ne,se.gatewayInfo.res.uid=Ne}else se=await Ote(U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,!0,this.store);if(!this._joinAndNotLeaveYet)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"))}this.store.requestAPEnd(),setTimeout(()=>{this._configDistribute.startGetConfigDistribute(U,this._axiosCancelSource.token),this._configDistribute.on(xc.UPDATE_BITRATE_LIMIT,Ne=>{this._p2pChannel.updateBitrateLimit(Ne)}),this._configDistribute.on(xc.UPDATE_CLIENT_ROLE_OPTIONS,Ne=>{this._setClientRoleOptions(Ne)}),this._configDistribute.on(xc.UPDATE_REMOTE_VIDEO_STREAM_TYPE,Ne=>{var et;Et(et=[0,1,4,5,6,7,8,9]).call(et,Ne)&&(this.remoteUsers.forEach(st=>{this._remoteStreamTypeCacheMap.get(st.uid)!==Ne&&this.setRemoteVideoStreamType(st.uid,Ne)}),this.setRemoteDefaultVideoStreamType(Ne))}),this._configDistribute.on(xc.FALLBACK_TO_HLS,Ne=>{Ne&&this.safeEmit(Vr.FALLBACK_TO_HLS,Pr.CONFIG)}),this._configDistribute.on(xc.UPDATE_VOS_CONFIGURE,Ne=>{this._gateway.setConfigure(Ne).catch(et=>{J.debug("[".concat(this._clientId,"] auto set vos config failed"),et)})})},0),this._key=c||t;const me=se.gatewayInfo,Qe=U.uid?U.uid:me.uid;this._joinInfo=bl(bl({},U),{},{cid:me.cid,uid:Qe,vid:me.vid,apResponse:me.res,apGatewayAddress:me.apGatewayAddress,uni_lbs_ip:me.uni_lbs_ip,gatewayAddrs:me.gatewayAddrs,signalResponse:me.res.signalResponse}),this.store.intUid=Qe,this.store.cid=me.cid;const Oe=await this._joinGateway();if(!this._joinAndNotLeaveYet)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));P.onSuccess(Oe),this._appId=t,this._channelName=U.cname,this._uid=Oe,this.store.uid=Oe,setTimeout(()=>{this._networkQualityInterval&&window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=window.setInterval(this._handleUpdateNetworkQuality,2e3),!Zs()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener(Zs()?"beforeunload":"pagehide",this._handleBeforeUnload),this._statsCollector.startUpdateStats()},0);const we=U.stringUid?"string uid: ".concat(U.stringUid,",uid: ").concat(U.uid):"uid: ".concat(this._uid);return J.info("[".concat(this._clientId,"] Joining channel success: channel: ").concat(s,",").concat(we)),this.store.joinEnd(),te=this,Et(ph).call(ph,te)||ph.push(te),this._cloudProxyServerMode==="disabled"&&Si().supportWebCrypto&&de("ENABLE_PRELOAD")&&Bz(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0),this._sessionId&&qt.reportRteDetail(this._sessionId),this._rteDetailInterval=window.setInterval(()=>{this._sessionId&&qt.reportRteDetail(this._sessionId)},de("RTE_DETAIL_REPORT_INTERVAL")||6e4),Oe}catch(se){const ge=Array.isArray(se)?se[0]:se;throw ge&&ge.code===Ce.OPERATION_ABORTED?J.warning("[".concat(this._clientId,"] join number: ").concat(_,", Joining channel failed, rollback"),ge):J.error("[".concat(this._clientId,"] join number: ").concat(_,", Joining channel failed, rollback"),ge),ge.code!==Ce.OPERATION_ABORTED&&this._numberOfJoinCount===_&&(this._gateway.state="DISCONNECTED",this._reset()),P.onError(ge),ge}var te}async _joinGateway(){if(!this._joinInfo||!this._key)throw new qe(Ce.INVALID_OPERATION);try{return await this._gateway.join(this._joinInfo,this._key,!(this._joinInfo.cloudProxyServer!=="disabled"||this._joinInfo.proxyServer||!de("JOIN_WITH_FALLBACK_SIGNAL_PROXY")))}catch(t){if(t.code===Ce.INIT_DATACHANNEL_TIMEOUT){if(this._gateway.leave(!0,mi.FALLBACK),J.debug("[".concat(this._clientId,"] join by datachannel timeout, fallback to websocket")),!this._joinInfo||!this._key)throw new qe(Ce.INVALID_OPERATION);return qt.reportApiInvoke(this._sessionId,{name:Ti.DATACHANNEL_FAILBACK,options:[this.store.clientId],tag:vn.TRACER}).onSuccess(),await this._joinGateway()}throw t}}async leave(){J.info("[".concat(this._clientId,"] Leaving channel"));const t=()=>{!Zs()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener(Zs()?"beforeunload":"pagehide",this._handleBeforeUnload),this._reset(),function(c){const u=ph.indexOf(c);u!==-1&&ph.splice(u,1)}(this),this._statsCollector.stopUpdateStats()};this.store.useDcSignal||t();const s=await this._leaveMutex.lock();if(this.connectionState==="DISCONNECTED")return J.info("[".concat(this._clientId,"] Leaving channel repeated, success")),void s();await this._gateway.leave(this.connectionState!=="CONNECTED",mi.LEAVE),J.info("[".concat(this._clientId,"] Leaving channel success")),this._joinAndNotLeaveYet=!1,this.store.resetJoinChannelServiceRecords(),s(),this.store.useDcSignal&&t()}async publish(t){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!Array.isArray(t)){if(!(t instanceof T2))return this._publishDataChannel(t);t=[t]}if(t.length===0)throw new qe(Ce.INVALID_PARAMS,"param list is empty");const c=t;if(this._gateway.role==="audience")throw new qe(Ce.INVALID_OPERATION,"audience can not publish stream");for(const h of c){if(!(h instanceof T2))throw new qe(Ce.INVALID_PARAMS,"parameter is not local track");if(!h._enabled&&s)throw new qe(Ce.TRACK_IS_DISABLED,"can not publish a disabled track: ".concat(h.getTrackId()))}J.info("[".concat(this._clientId,"] Publishing tracks, id ").concat(c.map(h=>"".concat(h.getTrackId()," "))));const u=await this._publishMutex.lock();await this._configDistribute.awaitConfigDistributeComplete(),s&&c.forEach(h=>{const _=this._configDistribute.getBitrateLimit();h instanceof pn&&_&&h.setBitrateLimit(_.uplink)});try{await this._publishHighStream(c),J.info("[".concat(this._clientId,"] Publish success, id ").concat(c.map(h=>"".concat(h.getTrackId()," "))))}catch(h){throw J.error("[".concat(this._clientId,"] publish error"),h.toString()),h}finally{u()}}async _publishDataChannel(t){if(t==null)throw new qe(Ce.INVALID_PARAMS,"parameter is not local track or datachannel config, config is ".concat(JSON.stringify(t)));Vn(t.id,"id",0,65535,!0),ll(t.ordered,"ordered"),Ra(t.metadata,"metadata",0,512),J.info("[".concat(this._clientId,"] Publishing datachannels, id ").concat(t.id));const s=await this._publishMutex.lock();try{if(this._p2pChannel.getAllDataChannels().findIndex(h=>h.id===t.id)!==-1)throw new qe(Ce.INVALID_PARAMS,"Invalid id: ".concat(t.id,". If you want to republish the datachannel, unpublish first"));if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't publish datachannel, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish datachannel in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&de("FORCE_TURN")&&!de("TURN_ENABLE_TCP")&&!de("TURN_ENABLE_UDP"))throw new qe(Ce.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");const c=function(h){return yte(h,!1)}(t),u=await this._p2pChannel.publishDataChannel([c]);if(u.length>0){if(typeof c._originDataChannelId!="number")throw J.error("[".concat(this._clientId,"] can not publish with mediaType datachannel, cannot get RTCDatachannel id")),new qe(Ce.CREATE_DATACHANNEL_ERROR);try{await Ut.all(u.map(h=>this._uid&&this._gateway.publishDataChannel(this._uid,h,!0))),await c._waitTillOpen()}catch(h){if(h.code!==Ce.DISCONNECT_P2P)throw h}}return J.info("[".concat(this._clientId,"] Publish dataChannels success, id ").concat(c.id)),c}catch(c){throw J.error("[".concat(this._clientId,"] publish datachannels error"),c.toString()),c}finally{s()}}async unpublish(t){if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't unpublish stream, haven't joined yet!");let s=[];if(t)if(Array.isArray(t))s=t;else{if(!(t instanceof T2))return this._unpublishDataChannel([t]);s=[t]}else this.store.useP2P||await this._unpublishDataChannel(),s=this._p2pChannel.getAllTracks(!0);J.info("[".concat(this._clientId,"] Unpublish tracks, tracks ").concat(s.map(u=>"".concat(u.getTrackId()," "))," "));const c=await this._publishMutex.lock();try{if(this.store.useP2P){const u=await this._p2pChannel.unpublish(s);u&&await this._gateway.sendExtensionMessage(Go.UNPUBLISH,{unpubMsg:u},!0)}else{const u=await this._p2pChannel.unpublish(s);u&&await this._gateway.unpublish(u,this._uid),J.info("[".concat(this._clientId,"] Unpublish success,tracks ").concat(s.map(h=>"".concat(h.getTrackId()))))}}catch(u){throw J.error("[".concat(this._clientId,"] unpublish error"),u.toString()),u}finally{c&&c()}}async _unpublishDataChannel(t){t!==void 0&&t.length!==0||(t=this._p2pChannel.getAllDataChannels()),J.info("[".concat(this._clientId,"] Unpublish datachannels, datachannels ").concat(t.map(c=>"".concat(c.id," "))," "));const s=await this._publishMutex.lock();try{const c=await this._p2pChannel.unpublishDataChannel(t);c&&await this._gateway.unpublishDataChannel(c),J.info("[".concat(this._clientId,"] Unpublish dataChannel success, dataChannel ids: ").concat(t.map(u=>"".concat(u.id))))}catch(c){throw J.error("[".concat(this._clientId,"] unpublish dataChannel error"),c.toString()),c}finally{s&&s()}}async subscribe(t,s,c){if(!(t instanceof vp)){const u=this.remoteUsers.find(h=>h.uid===t);if(!u)throw new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");t=u}return s==="datachannel"?this._subscribeDataChannel(t,c):this._subscribe(t,s)}async presubscribe(t,s){if(As(s,"mediaType",["audio","video"]),this.store.useP2P)throw new qe(Ce.INVALID_OPERATION,"can't presub at p2p mode");if(!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can't presub when not join");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can't presub in ".concat(this.connectionState," state"));const c=s===rr.AUDIO,u=s===rr.VIDEO,h=await this._subscribeMutex.lock();try{const _=await this._gateway.presubscribe(t,s,!0),B=_.ssrcId,Q=_.ortc,T=_.rtxSsrcId,D=_.cname,O=_.uint_id;if(B==null)throw new qe(Ce.UNEXPECTED_RESPONSE,"no ssrc id");let P=this._users.find(H=>H.uid===t);P||(P=new vp(t,O||t),P._is_pre_created=!0,this._users.push(P)),D&&(P._cname=D),P._uintid||(P._uintid=O||t),c&&(P._audioSSRC=B,P._audio_pre_subscribed=!0,Q&&(P._audioOrtc=Q)),u&&(P._videoSSRC=B,P._video_pre_subscribed=!0,Q&&(P._videoOrtc=Q),T!=null&&(P._rtxSsrcId=T)),J.info("[".concat(this._clientId,"] presub succeed ssrc: ").concat(B)),await this._p2pChannel.subscribe(P,s,B,T,Q);const U=c?P._audioTrack:P._videoTrack;if(!U)throw new qe(Ce.UNEXPECTED_ERROR,"can not find remote track in user");return c&&(P._trust_audio_stream_added_state_=!0,P._audio_added_=!0),u&&(P._trust_video_stream_added_state_=!0,P._video_added_=!0),U}catch(_){throw J.error("[".concat(this._clientId,"] presub user ").concat(t," error"),_),_}finally{h()}}async _subscribeDataChannel(t,s){var c;if(Vn(s,"channelId",0,65535,!0),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe datachannel, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe datachannel in ".concat(this.connectionState," state"));if(!this._users.find(Q=>Q===t))throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", this user is not in the channel")),new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");if(!t.hasAudio&&!t.hasVideo&&t._dataChannels.length===0)throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", user is not published")),new qe(Ce.INVALID_REMOTE_USER,"user is not published");const h=(c=t._dataChannels)===null||c===void 0?void 0:c.find(Q=>Q.id===s);if(!h)throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType datachannel, remote datachannel is not published")),new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);const _=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"] subscribe user ").concat(t.uid,", mediaType: datachannel"));try{const Q=await this._p2pChannel.subscribeDataChannel(t,[h]);if(Q&&Et(Q).call(Q,h.id))try{var B;if(typeof h._originDataChannelId!="number")throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType datachannel, cannot get RTCDatachannel")),new qe(Ce.CREATE_DATACHANNEL_ERROR);const T={id:h.id,datachannelId:h._originDataChannelId,ordered:h.ordered,maxRetransmits:h.maxRetransmits,metadata:(B=h.metadata)!==null&&B!==void 0?B:""};await this._gateway.subscribeDataChannel(t.uid,T,!0),await h._waitTillOpen()}catch(T){if((T==null?void 0:T.code)!==Ce.WS_ABORT)throw await this._p2pChannel.unsubscribeDataChannel(t,[h]),T;await this._p2pChannel.unsubscribeDataChannel(t,[h]),this._p2pChannel.setPendingRemoteDataChannel(t,h.id)}return J.info("[".concat(this._clientId,"] subscribe success user ").concat(t.uid,", mediaType: datachannel")),h}finally{_()}}async _p2pSubscribe(t,s,c){if(As(s,"mediaType",["audio","video"]),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(_=>_===t)){const _=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", this user is not in the channel")),_}if(!t.hasAudio&&!t.hasVideo){const _=new qe(Ce.INVALID_REMOTE_USER,"user is not published");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", user is not published")),_}if(!c&&(s==="audio"&&!t.hasAudio||s==="video"&&!t.hasVideo)){const _=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType ").concat(s,", remote track is not published")),_}const h=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"] subscribe user ").concat(t.uid,", mediaType: ").concat(s));try{if(await this._p2pChannel.hasRemoteMediaWithLock(t,s))await this._p2pChannel.unmuteRemote(t,s);else try{const B=s==="audio"?t._audioSSRC:t._videoSSRC,Q=s==="audio"?t._audioMid:t._videoMid;this.store.subscribe(t.uid,s,Date.now()),this.store.useP2P&&await this._p2pChannel.subscribe(t,s,B,Q)}catch(B){throw B}J.info("[".concat(this._clientId,"] subscribe success user ").concat(t.uid,", mediaType: ").concat(s)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(t.uid,this._defaultStreamFallbackType).catch(B=>{J.warning("[".concat(this._clientId,"] auto set fallback failed"),B)});const _=s==="audio"?t._audioTrack:t._videoTrack;if(!_)throw new qe(Ce.UNEXPECTED_ERROR,"can not find remote track in user object");return _}catch(_){throw J.error("[".concat(this._clientId,"] subscribe user ").concat(t.uid," error"),_),_}finally{h()}}async _subscribe(t,s,c){if(this.store.useP2P)return this._p2pSubscribe(t,s);if(As(s,"mediaType",["audio","video"]),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(D=>D===t)){const D=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", this user is not in the channel")),D}if(!t.hasAudio&&!t.hasVideo){const D=new qe(Ce.INVALID_REMOTE_USER,"user is not published");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", user is not published")),D}if(!(c||(s!=="audio"||t.hasAudio&&t._audioSSRC!==void 0)&&(s!=="video"||t.hasVideo&&t._videoSSRC!==void 0))){const D=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType ").concat(s,", remote track is not published")),D}let h=s==="audio"?t._audioSSRC:t._videoSSRC,_=s==="audio"?t._audioOrtc:t._videoOrtc,B=s==="video"?t._rtxSsrcId:void 0,Q={stream_type:s==="audio"?rr.AUDIO:rr.VIDEO,ssrcId:h};s==="video"&&this.store.firstVideoFrameDecoded(t.uid,{subscribeStart:Date.now()});const T=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"] subscribe user ").concat(t.uid,", mediaType: ").concat(s));try{if(await this._p2pChannel.hasRemoteMediaWithLock(t,s))await this._p2pChannel.unmuteRemote(t,s);else try{const O=s==="audio"?t._audioSSRC:t._videoSSRC;O!==void 0&&O!==h&&(h=O,_=s==="audio"?t._audioOrtc:t._videoOrtc,B=s==="video"?t._rtxSsrcId:void 0,Q={stream_type:s==="audio"?rr.AUDIO:rr.VIDEO,ssrcId:h}),_A.markSubscribeStart(this.store.clientId,h),this.store.subscribe(t.uid,s,Date.now()),await this._p2pChannel.subscribe(t,s,h,B,_);try{this._p2pChannel.isPreSubScribe(h)||await this._gateway.subscribe(t.uid,Q,!0)}catch(P){if((P==null?void 0:P.code)!==Ce.WS_ABORT)throw await this._p2pChannel.unsubscribe(t,s),P;await this._p2pChannel.unsubscribe(t,s,!0),this._p2pChannel.setPendingRemoteMedia(t,s)}this.store.subscribe(t.uid,s,void 0,Date.now()),this._p2pChannel.reportSubscribeEvent(!0,null,t,s)}catch(O){throw this._p2pChannel.reportSubscribeEvent(!1,O==null?void 0:O.code,t,s),O}J.info("[".concat(this._clientId,"] subscribe success user ").concat(t.uid,", mediaType: ").concat(s)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(t.uid,this._defaultStreamFallbackType).catch(O=>{J.warning("[".concat(this._clientId,"] auto set fallback failed"),O)});const D=s==="audio"?t._audioTrack:t._videoTrack;if(!D)throw new qe(Ce.UNEXPECTED_ERROR,"can not find remote track in user object");return s==="video"&&(this.store.firstVideoFrameDecoded(t.uid,{subscribeEnd:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(t)),D}catch(D){throw J.error("[".concat(this._clientId,"] subscribe user ").concat(t.uid," error"),D),D}finally{T()}}async massSubscribe(t){if(j1(t,"subscribeList"),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));const s=Date.now(),c=new Map,u=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"]start massSubscribe user ").concat(t.map(Q=>{let T=Q.user,D=Q.mediaType;return"user: ".concat(T==null?void 0:T.uid,", mediaType: ").concat(D)}).join("; ")));const h=(t=[...t]).map(Q=>({user:Q.user,mediaType:Q.mediaType})),_=await this._p2pChannel.globalLock();try{var B;for(let T=t.length-1;T>=0;T--){const D=t[T],O=D.user,P=D.mediaType;if(As(P,"mediaType",["audio","video"]),!O){const Z=new qe(Ce.INVALID_PARAMS,"user property does not exist in subscribeList item");throw J.error("[".concat(this._clientId,"] user property does not exist in subscribeList item")),Z}if(!this._users.find(Z=>Z===O)){const Z=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");J.error("[".concat(this._clientId,"] can not massSubscribe ").concat(O.uid,", this user is not in the channel")),h[T].error=Z,t.splice(T,1);continue}if(P==="audio"&&(!O.hasAudio||O._audioSSRC===void 0)||P==="video"&&(!O.hasVideo||O._videoSSRC===void 0)){const Z=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);J.error("[".concat(this._clientId,"] can not subscribe ").concat(O.uid," with mediaType ").concat(P,", remote user is not published")),h[T].error=Z,t.splice(T,1);continue}const H=jo.Video|jo.LowVideo,$=c.get(O);if($){if(P==="video"?$&H:$&jo.Audio){t.splice(T,1),J.warning("[".concat(this._clientId,"] repeat massSubscribe user:").concat(O.uid,", mediaType:").concat(P," twice"));continue}c.set(O,$|(P==="video"?H:jo.Audio))}else c.set(O,P==="video"?H:jo.Audio)}for(let T=t.length-1;T>=0;T--){const D=t[T],O=D.user,P=D.mediaType,U=jo.Video|jo.LowVideo;if(this._p2pChannel.hasRemoteMedia(O,P)){await this._p2pChannel.unmuteRemoteNoLock(O,P);const H=c.get(O);c.set(O,P==="video"?H^U:H^jo.Audio),t.splice(T,1)}}this.store.massSubscribe(t.map(T=>({userId:T.user.uid,type:T.mediaType})),s);let Q=VA(B=Array.from(c.entries())).call(B,(T,D)=>{let O=ir(D,2),P=O[0],U=O[1];if(U===0)return T;const H={stream_id:P.uid,stream_type:U};return U&jo.Audio&&(H.audio_ssrc=P._audioSSRC),U&jo.Video&&(H.video_ssrc=P._videoSSRC),T.push(H),T},[]);try{t.length>0&&await this._p2pChannel.massSubscribeNoLock(t.map(D=>{let O=D.user,P=D.mediaType;return{user:O,mediaType:P,ssrcId:P===rr.VIDEO?O._videoSSRC:O._audioSSRC,rtxSsrcId:P===rr.VIDEO?O._rtxSsrcId:void 0}}));const T=new Map;if(Q=Q.filter(D=>D.video_ssrc&&!this._p2pChannel.isPreSubScribe(D.video_ssrc)||D.audio_ssrc&&!this._p2pChannel.isPreSubScribe(D.audio_ssrc)||!D.video_ssrc&&!D.audio_ssrc),Q.length>0){const D=await this._gateway.subscribeAll(Q,!0);((D==null?void 0:D.users)||[]).forEach(O=>{let P=O.stream_id,U=O.video_error_code,H=O.audio_error_code,$=O.error_code;(U||H||$)&&T.set(P,{video_error_code:U,audio_error_code:H,error_code:$})})}if(Array.from(T.entries()).length>0){const D=[];Array.from(T.entries()).forEach(O=>{let P=ir(O,2),U=P[0],H=P[1];const $=this.remoteUsers.find(Z=>Z.uid===U);if($){let Z;H.error_code||H.video_error_code&&H.audio_error_code?Z=void 0:H.video_error_code?Z=rr.VIDEO:H.audio_error_code&&(Z=rr.AUDIO),D.push({user:$,mediaType:Z})}}),D.length>0&&await this._p2pChannel.massUnsubscribeNoLock(D)}for(const D of h){const O=T.get(D.user.uid);if(O){const P=O.error_code||D.mediaType==="audio"&&O.audio_error_code||D.mediaType==="video"&&O.video_error_code;if(P){const U=m1(P);J.error("user:".concat(D.user.uid," mediaType:").concat(D.mediaType," has massSubscribe error ").concat(U.desc)),D.error=new qe(Ce.SUBSCRIBE_FAILED,"code ".concat(P,": ").concat(U.desc))}}D.error||(D.mediaType==="video"?D.track=D.user.videoTrack:D.track=D.user.audioTrack)}return this.store.massSubscribe(h.filter(D=>!D.error).map(D=>({userId:D.user.uid,type:D.mediaType})),void 0,Date.now()),h.forEach(D=>{var O;qt.subscribe(this.store.sessionId,{succ:!!D.error,ec:((O=D.error)===null||O===void 0?void 0:O.code)||null,video:D.mediaType===rr.VIDEO,audio:D.mediaType===rr.AUDIO,peerid:D.user.uid,subscribeRequestid:D.mediaType===rr.VIDEO?D.user._videoSSRC:D.user._audioSSRC,p2pid:this.store.p2pId,eventElapse:Math.floor(performance.now()-s),preSsrc:this._p2pChannel.isPreSubScribe(D.user._videoSSRC)},!0)}),J.info("[".concat(this._clientId,"] massSubscribe success ").concat(t.map(D=>{let O=D.user,P=D.mediaType;return"user: ".concat(O==null?void 0:O.uid,", mediaType: ").concat(P)}).join("; "))),h}catch(T){throw await this._p2pChannel.massUnsubscribeNoLock(t),T}}finally{_(),u()}}async unsubscribe(t,s,c){if(!(t instanceof vp)){const _=this.remoteUsers.find(B=>B.uid===t);if(!_)throw new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");t=_}if(s||this.store.useP2P){if(s==="datachannel")return this._unsubscribeDataChannel(t,c)}else await this._unsubscribeDataChannel(t,c);if(s&&As(s,"mediaType",["audio","video"]),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't unsubscribe stream, haven't joined yet!");if(!this._users.find(_=>_===t)){const _=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not unsubscribe ").concat(t.uid,", user is not in the channel")),_}J.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(t.uid,", mediaType: ").concat(s));const h=await this._subscribeMutex.lock();try{if(this.store.useP2P)await this._p2pChannel.unsubscribe(t,s);else{const _=await this._p2pChannel.unsubscribe(t,s);_&&await this._gateway.unsubscribe(_,t.uid),s&&s!=="audio"||(t._audio_pre_subscribed=!1),s&&s!=="video"||(t._video_pre_subscribed=!1),t._is_pre_created&&UR(this._users,t),J.info("[".concat(this._clientId,"] unsubscribe success uid: ").concat(t.uid,", mediaType: ").concat(s))}}catch(_){if(_.code===Ce.DISCONNECT_P2P)return void J.warning("disconnecting p2p, abort unsubscribe request.");throw J.error("[".concat(this._clientId,"] unsubscribe user ").concat(t.uid," error"),_.toString()),_}finally{h()}}async _unsubscribeDataChannel(t,s){if(s&&Vn(s,"id",0,65535,!0),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't unsubscribe datachannel, haven't joined yet!");if(!this._users.find(h=>h===t)){const h=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not unsubscribe ").concat(t.uid,", user is not in the channel")),h}let u;if(typeof s=="number"){const h=t._dataChannels.find(_=>_.id===s);h&&(u=[h])}else u=t._dataChannels;if(u===void 0){const h=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);throw J.error("[".concat(this._clientId,"] can not unsubscribe ").concat(t.uid," with channelId ").concat(s,", remote datachannel is not published")),h}J.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(t.uid,", mediaType: datachannel, ids: ").concat(u.map(h=>h.id)));try{const h=await this._p2pChannel.unsubscribeDataChannel(t,u);h&&await this._gateway.unsubscribeDataChannel(h,t.uid),J.info("[".concat(this._clientId,"] unsubscribe datachannel success uid: ").concat(t.uid,", mediaType: datachannel, ids: ").concat(h))}catch(h){if(h.code===Ce.DISCONNECT_P2P)return void J.warning("disconnecting p2p, abort unsubscribe request.");throw J.error("[".concat(this._clientId,"] unsubscribe user ").concat(t.uid," error"),h.toString()),h}}async massUnsubscribe(t){if(j1(t,"unsubscribeList"),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't unsubscribeAll stream, haven't joined yet!");J.info("[".concat(this._clientId,"] start massUnsubscribe ").concat(t.map(c=>{let u=c.user,h=c.mediaType;return"user: ".concat(u==null?void 0:u.uid,", mediaType: ").concat(h,";")}).join())),t=[...t];const s=new Map;for(let c=t.length-1;c>=0;c--){const u=t[c],h=u.user,_=u.mediaType;if(!h){const T=new qe(Ce.INVALID_PARAMS,"user property does not exist in unsubscribeList item");throw J.error("[".concat(this._clientId,"] user property does not exist in unsubscribeList item")),T}if(As(_,"mediaType",["video","audio",void 0]),!this._users.find(T=>T===h)){J.warning("[".concat(this._clientId,"] can not unsubscribe ").concat(h.uid,", user is not in the channel")),t.splice(c,1);continue}const Q=jo.Video|jo.LowVideo;if(s.has(h)){const T=s.get(h);let D;switch(_){case"video":D=T&Q;break;case"audio":D=T&jo.Audio;break;default:D=T&(jo.Audio|Q)}if(D){J.warning("[".concat(this._clientId,"] repeat massUnsubscribe user:").concat(h.uid,",mediaType:").concat(_," twice.")),t.splice(c,1);continue}_?_==="audio"?s.set(h,T|jo.Audio):_==="video"&&s.set(h,T|Q):s.set(h,T|jo.Audio|Q)}else _?_==="audio"?s.set(h,jo.Audio):_==="video"&&s.set(h,Q):s.set(h,jo.Audio|Q)}try{const c=await this._p2pChannel.massUnsubscribe(t);c&&await this._gateway.massUnsubscribe(c),J.info("[".concat(this._clientId,"] massUnsubscribe success ").concat(t.map(u=>{let h=u.user,_=u.mediaType;return"user: ".concat(h==null?void 0:h.uid,", mediaType: ").concat(_,";")}).join()))}catch(c){if(c.code===Ce.DISCONNECT_P2P)return void J.warning("[".concat(this._clientId,"] disconnecting p2p, abort unsubscribe request."));throw J.error("[".concat(this._clientId,"] massUnsubscribe error"),c.toString()),c}}async setLowStreamParameter(t){(function(c){if(!c)throw new tt(Ce.INVALID_PARAMS);Bo(c.width)||Nf(c.width,"streamParameter.width"),Bo(c.height)||Nf(c.height,"streamParameter.height"),Bo(c.framerate)||Nf(c.framerate,"streamParameter.framerate"),Bo(c.bitrate)||Vn(c.bitrate,"streamParameter.bitrate")})(t),(!t.width&&t.height||t.width&&!t.height)&&J.warning("[".concat(this._clientId,"] The width and height parameters take effect only when both are set")),J.info("[".concat(this._clientId,"] set low stream parameter to"),JSON.stringify(t));const s=this._configDistribute.getLowStreamConfigDistribute();if(s&&s.bitrate&&t.bitrate&&s.bitrate{J.warning("[".concat(this._clientId,"] set dual stream mode failed"),c.toString())}):J.debug("[".concat(this._clientId,"] haven't joined yet, cache dual stream mode ").concat(t)),t){case Ie.AUTO_SIMULCAST_STREAM:J.info("[".concat(this._clientId,"] set dual stream mode to ").concat(t));break;case Ie.DISABLE_SIMULCAST_STREM:return this.disableDualStream();case Ie.ENABLE_SIMULCAST_STREAM:return this.enableDualStream()}}catch(c){throw J.error("[".concat(this._clientId,"] set dual stream mode error"),c.toString()),c}}async enableDualStream(){if(!Si().supportDualStream)throw qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),new qe(Ce.NOT_SUPPORTED,"Your browser is not support dual stream");if(this._isDualStreamEnabled)throw new qe(Ce.INVALID_OPERATION,"Dual stream is already enabled");if(this._p2pChannel.canPublishLowStream())try{await this._publishLowStream()}catch(t){throw qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),t}this._isDualStreamEnabled=!0,this._dualStreamMode=Ie.ENABLE_SIMULCAST_STREAM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(t=>{J.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),t.toString())}),qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!0}),J.info("[".concat(this._clientId,"] enable dual stream"))}async disableDualStream(){if(this._isDualStreamEnabled){if(!this._joinInfo)return this._isDualStreamEnabled=!1,void J.info("[".concat(this._clientId,"] disable dual stream before join"));if(this._p2pChannel.getLocalMedia(Qt.LocalVideoLowTrack))try{const t=await this._p2pChannel.unpublishLowStream();t&&await this._gateway.unpublish(t,this._joinInfo.stringUid||this._joinInfo.uid)}catch(t){throw qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!1}),t}this._isDualStreamEnabled=!1,this._dualStreamMode=Ie.DISABLE_SIMULCAST_STREM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(t=>{J.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),t.toString())}),qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!0}),J.info("[".concat(this._clientId,"] disable dual stream"))}}async setClientRole(t,s){if(function(u){As(u,"role",["audience","host"])}(t),s&&PR(s),this.mode==="rtc"||this.mode==="p2p")throw J.warning("[".concat(this._clientId,"]").concat(this.mode," mode can not use setClientRole")),new qe(Ce.INVALID_OPERATION,"".concat(this.mode," mode can not use setClientRole"));if(s&&s.level&&t==="host")throw new qe(Ce.INVALID_OPERATION,"host mode can not set audience latency level");if(t==="audience"&&this._p2pChannel.hasLocalMedia())throw new qe(Ce.INVALID_OPERATION,"can not set client role to audience when publishing stream");const c=this._config.role;if(this._joinInfo&&(this._joinInfo.role=t),t!==c&&de("ENABLE_ROLE_SELECT_EDGE")?(this._gateway.updateClientRole(t,s),this._config.role=t,this._gateway.reconnect("recover",Ss.REGIONAL_DISTRIBUTION)):(await this._gateway.setClientRole(t,s),this._config.role=t),J.info("[".concat(this._clientId,"] set client role to ").concat(t,", level: ").concat(s&&s.level)),c==="audience"&&t!=="audience"&&this._pendingRtpCapabilityChange&&this._p2pChannel instanceof Em){const u=this._pendingRtpCapabilityChange.video_codec;this._p2pChannel.updateRemoteRTPCapabilities(u.map(h=>h.toLowerCase()).filter(h=>{var _;return Et(_=Object.keys(Qn)).call(_,h)}))}}async _setClientRoleOptions(t){if(this.mode==="rtc"||this.mode==="p2p"||this._config.role!=="audience"||this._p2pChannel.hasLocalMedia())return;let s=!1;try{t&&PR(t),await this._gateway.setClientRole(this._config.role,t),s=!0}catch{}finally{J.info("[".concat(this._clientId,"] set client role options ").concat(s?"succeed":"failed",", options is ").concat(t))}}getRemoteInboundOffset(){var t;const s=(t=this._p2pChannel.getStats())===null||t===void 0?void 0:t.audioSend[0];if(!s||!s.timestamp)return 0;const c=s.timestamp-Date.now();return Math.abs(c)>1e3+s.rttMs+100?this.ntpAlignErrorCount+=1:this.ntpAlignErrorCount=0,this.ntpAlignErrorCount>=3?c:0}getNtpWallTimeInMs(){return document.visibilityState==="visible"&&(this.remoteInboundOffset=this.getRemoteInboundOffset()),this.remoteInboundOffset+Date.now()+this._gateway.ntpOffset}setProxyServer(t,s){if(Ra(t,"proxyServer"),!s){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Set proxy server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new qe(Ce.INVALID_OPERATION,"You have already set the proxy")}this._proxyServer=t,qt.setProxyServer(this._proxyServer),J.setProxyServer(this._proxyServer),J.info("[".concat(this._clientId,"] Set proxy server ").concat(s?"by initialize call":""," success."))}setTurnServer(t,s){if(Array.isArray(t)||(t=[t]),!s){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Set turn server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new qe(Ce.INVALID_OPERATION,"You have already set the proxy")}if(zi(t))return this._turnServer={servers:t,mode:"original-manual"},void J.info("[".concat(this._clientId,"] Set original turnserver ").concat(s?"by initialize call":""," success: ").concat(t.map(c=>c.urls).join(","),"."));t.forEach(c=>Mn(c)),this._turnServer={servers:t,mode:"manual"},J.info("[".concat(this._clientId,"] Set turnserver ").concat(s?"by initialize call":""," success."))}setLicense(t){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"you should set license before join channel");if(Ra(t,"license",32,32),!/^[A-Za-z\d]+$/.test(t))throw new qe(Ce.INVALID_PARAMS,"license should only contains characters from A-Z a-z 0-9");this._license=t,J.info("[".concat(this._clientId,"] set license success"),t)}startProxyServer(t){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Start proxy server before join channel");if(this._proxyServer||this._turnServer.mode==="manual"||this._useLocalAccessPoint)throw new qe(Ce.INVALID_OPERATION,"You have already set the proxy");const s=[3,4,5];let c;switch(t===void 0&&(t=3),t){case 1:case 2:throw new qe(Ce.NOT_SUPPORTED,"proxy mode 1/2 has been deprecated and not supported.");case 3:c="proxy3";break;case 4:c="proxy4";break;case 5:c="proxy5";break;default:throw new qe(Ce.INVALID_PARAMS,"proxy server mode must be ".concat(s.join("|")))}this._cloudProxyServerMode=c,this.store.cloudProxyServerMode=c,J.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode)}stopProxyServer(){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Stop proxy server after leave channel");qt.setProxyServer(),J.setProxyServer(),this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled",J.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode),this._proxyServer=void 0,this._turnServer={mode:"auto",servers:[]}}setLocalAccessPointsV2(t){if(!t.accessPoints)throw new qe(Ce.INVALID_PARAMS,"accessPoints is required.");j1(t.accessPoints.serverList,"accessPoints.serverList"),Ra(t.accessPoints.domain,"accessPoints.domain");const s=(U,H)=>{Vn(U,H,0,65535,!0)};let c=443;if(t.accessPoints.port&&(s(t.accessPoints.port,"accessPoints.port"),c=t.accessPoints.port),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new qe(Ce.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");de("CLOSE_AFB_FOR_LOCAL_AP")&&(Dn("JOIN_WITH_FALLBACK_SIGNAL_PROXY",!1),Dn("JOIN_WITH_FALLBACK_MEDIA_PROXY",!1));const u=/^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,h=t.accessPoints.domain,_=t.accessPoints.serverList.map(U=>u.test(U)?"".concat(U.replace(/\./g,"-"),".").concat(h):U),B=_.map(U=>"".concat(U,":").concat(c));this._useLocalAccessPoint=!0,this._setLocalAPVersion=2,Dn("WEBCS_DOMAIN",B),Dn("WEBCS_DOMAIN_BACKUP_LIST",B),Dn("GATEWAY_DOMAINS",[h]),t.report&&t.report.hostname&&Array.isArray(t.report.hostname)&&t.report.hostname.length?(j1(t.report.hostname,"report.hostname"),Dn("EVENT_REPORT_DOMAIN",t.report.hostname[0]),Dn("EVENT_REPORT_BACKUP_DOMAIN",t.report.hostname[1]||t.report.hostname[0])):(Dn("EVENT_REPORT_DOMAIN",_[0]),Dn("EVENT_REPORT_BACKUP_DOMAIN",_[1]||_[0]));let Q=6443;t.report&&t.report.port&&(s(t.report.port,"report.port"),Q=t.report.port),Dn("STATS_COLLECTOR_PORT",Q),t.report?Dn("ENABLE_EVENT_REPORT",!0):Dn("ENABLE_EVENT_REPORT",!1);let T="";t.log&&t.log.hostname&&Array.isArray(t.log.hostname)&&t.log.hostname.length?(j1(t.log.hostname,"log.hostname"),T=t.log.hostname[0]):T=_[0];let D=6444;t.log&&t.log.port&&(s(t.log.port,"log.port"),D=t.log.port),Dn("LOG_UPLOAD_SERVER","".concat(T,":").concat(D));let O=[];t.cds&&t.cds.hostname&&Array.isArray(t.cds.hostname)&&t.cds.hostname.length?(j1(t.cds.hostname,"cds.hostname"),O=t.cds.hostname):O=_;let P=443;t.cds&&t.cds.port&&(s(t.cds.port,"cds.port"),P=t.cds.port),Dn("CDS_AP",O.map(U=>"".concat(U,":").concat(P))),t.cds?Dn("ENABLE_CONFIG_DISTRIBUTE",!0):Dn("ENABLE_CONFIG_DISTRIBUTE",!1),J.info("set local access point v2 success")}setLocalAccessPoints(t,s){if(j1(t,"serverList"),Ra(s,"domain"),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new qe(Ce.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");const c=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;t=t.map(u=>c.test(u)?"".concat(u.replace(/\./g,"-"),".").concat(s):u),this._useLocalAccessPoint=!0,this._setLocalAPVersion=1,Dn("WEBCS_DOMAIN",t),Dn("WEBCS_DOMAIN_BACKUP_LIST",t),Dn("GATEWAY_DOMAINS",[s]),Dn("EVENT_REPORT_DOMAIN",t[0]),Dn("EVENT_REPORT_BACKUP_DOMAIN",t[1]||t[0]),Dn("LOG_UPLOAD_SERVER","".concat(t[0],":6444")),J.info("[".concat(this._clientId,"] set local access point success"))}async setRemoteDefaultVideoStreamType(t){if(As(t,"streamType",[0,1,4,5,6,7,8,9]),this._remoteDefaultVideoStreamType=t,this._joinInfo)try{await this._gateway.setDefaultRemoteVideoStreamType(t),this._joinInfo.defaultVideoStream=this._remoteDefaultVideoStreamType}catch(s){throw J.error("[".concat(this._clientId,"] set default remote video stream type error"),s.toString()),s}else J.debug("[".concat(this._clientId,"] haven't joined yet, cache remoteDefaultVideoStreamType ").concat(t))}async setRemoteVideoStreamType(t,s){As(s,"streamType",[0,1,4,5,6,7,8,9]);try{await this._gateway.setRemoteVideoStreamType(t,s),setTimeout(()=>{const c=this._users.find(u=>u.uid===t);c&&c.videoTrack&&c.videoTrack.updateMediaStreamTrackResolution()},2e3)}catch(c){throw J.error("[".concat(this._clientId,"] set remote video stream type error"),c.toString()),c}J.info("[".concat(this._clientId,"] set remote ").concat(t," video stream type to ").concat(s)),this._remoteStreamTypeCacheMap.set(t,s)}async setStreamFallbackOption(t,s){As(s,"fallbackType",[0,1,2,3,4,5,6,7,8]);try{await this._gateway.setStreamFallbackOption(t,s)}catch(c){throw J.error("[".concat(this._clientId,"] set stream fallback option"),c.toString()),c}J.info("[".concat(this._clientId,"] set remote ").concat(t," stream fallback type to ").concat(s)),this._streamFallbackTypeCacheMap.set(t,s)}setEncryptionConfig(t,s,c,u){(function(_){As(_,"encryptionMode",["aes-128-xts","aes-256-xts","aes-128-ecb","sm4-128-ecb","aes-128-gcm","aes-256-gcm","aes-128-gcm2","aes-256-gcm2","none"])})(t),Ra(s,"secret");const h=["aes-128-gcm2","aes-256-gcm2"];if(Et(h).call(h,t)){if(!c||!(c instanceof Uint8Array&&c.length===32))throw new qe(Ce.INVALID_PARAMS,"salt must be an Uint8Array and exactly equal to 32 bytes")}else if(c)throw new qe(Ce.INVALID_PARAMS,"current encrypt mode does not need salt");if(u){if(ll(u,"encryptDataStream"),!Et(h).call(h,t))throw new qe(Ce.INVALID_PARAMS,"current encrypt mode does not support data stream");this._encryptDataStream=!0}new RegExp(`^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*,.<>?/:;'"|{}\\[\\]])(?=.{8,})`).test(s)||J.warning(`The secret is not strong: + The secret must contain at least 1 lowercase alphabetical character, + The secret must contain at least 1 uppercase alphabetical character, + The secret must contain at least 1 numeric character, + The secret must contain at least one special character, + The secret must be eight characters or longer. + `),this._encryptionMode=t,this._encryptionSecret=s,c&&(this._encryptionSalt=kd(c))}async renewToken(t){if(Ra(t,"token",1,2047),!this._key||!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"renewToken should not be called before user join");const s=this._key;this._key=t,this._joinInfo&&(this._joinInfo.token=t);const c=await this._renewTokenMutex.lock();try{if(de("USE_NEW_TOKEN")){J.debug("[".concat(this._clientId,"] start renew token with ticket from unilbs"));const u=await fce(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||So);J.debug("[".concat(this._clientId,"] get ticket from unilbs success")),await this._gateway.renewToken({token:t,ticket:u})}else J.debug("[".concat(this._clientId,"] start renew token without ticket")),await this._gateway.renewToken({token:t});J.debug("[".concat(this._clientId,"] renewToken success"))}catch(u){throw this._key=s,this._joinInfo.token=s,J.error("[".concat(this._clientId,"] renewToken failed"),u.toString()),u}finally{c()}}enableAudioVolumeIndicator(){this._audioVolumeIndicationInterval?J.warning("you have already enabled audio volume indicator!"):this._audioVolumeIndicationInterval=window.setInterval(()=>{const t=this._p2pChannel.getAudioLevels();this.safeEmit(Vr.VOLUME_INDICATOR,t)},de("AUDIO_VOLUME_INDICATION_INTERVAL")||2e3)}getRTCStats(){const t=this._statsCollector.getRTCStats(),s=this._gateway.getInChannelInfo();return t.Duration=Math.round(s.duration/1e3),t}async startLiveStreaming(t,s){if(!s){if(this.codec!=="h264")throw new qe(Ce.LIVE_STREAMING_INVALID_RAW_STREAM,"raw streaming is only support h264");if(!this._p2pChannel.hasLocalMedia())throw new qe(Ce.LIVE_STREAMING_INVALID_RAW_STREAM,"can not find stream to raw streaming")}if(this._liveRawStreamingClient&&this._liveRawStreamingClient.hasUrl(t)||this._liveTranscodeStreamingClient&&this._liveTranscodeStreamingClient.hasUrl(t))throw new qe(Ce.LIVE_STREAMING_TASK_CONFLICT);const c=s?ku.TRANSCODE:ku.RAW;return this._createLiveStreamingClient(c).startLiveStreamingTask(t,c)}setLiveTranscoding(t){return this._createLiveStreamingClient(ku.TRANSCODE).setTranscodingConfig(t)}async stopLiveStreaming(t){const s=[this._liveRawStreamingClient,this._liveTranscodeStreamingClient].filter(c=>c&&c.hasUrl(t));if(!s.length)throw new qe(Ce.INVALID_PARAMS,"can not find live streaming url to stop");await Ut.all(s.map(c=>c&&c.stopLiveStreamingTask(t)))}async startChannelMediaRelay(t){Ute(t),await this._createChannelMediaRelayClient().startChannelMediaRelay(t)}async updateChannelMediaRelay(t){Ute(t),await this._createChannelMediaRelayClient().updateChannelMediaRelay(t)}async stopChannelMediaRelay(){await this._createChannelMediaRelayClient().stopChannelMediaRelay(),this._statsCollector.onStatsChanged&&(this._statsCollector.onStatsChanged=void 0)}sendAudioMetadata(t){this._p2pChannel instanceof Em&&this._p2pChannel.addAudioMetadata(t)}async sendStreamMessage(t){var s;let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not send data stream, not joined");if((typeof t=="string"||t instanceof Uint8Array)&&(t={payload:t}),typeof t.payload=="string"){const h=new TextEncoder;t.payload=h.encode(t.payload)}let u=!1;if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Et(s=["aes-128-gcm2","aes-256-gcm2"]).call(s,this._encryptionMode)&&(u=!0,t.payload=await async function(h,_,B){var Q;const T=VA(Q=Array.from(B)).call(Q,(Z,te)=>Z+te,0),D={serverTs:0,seq:vc++,length:B.length,checkSum:T},O=new Uint8Array(Eo(T,2)),P=new ArrayBuffer(ch),U=new DataView(P);U.setUint32(0,D.serverTs),U.setUint16(4,D.seq),U.setUint16(6,D.length),U.setUint16(8,D.checkSum);const H=16-B.length%16;B=a4(B,new Uint8Array(H));const $=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:h,tagLength:u4,additionalData:O},_,B);return a4(new Uint8Array(P),new Uint8Array($))}(this._encryptDataStreamIv,this._encryptDataStreamKey,t.payload)),new Blob([t.payload]).size>1024)throw new qe(Ce.INVALID_PARAMS,u?"encrypted stream message out of range.":"stream message out of range.");return this._gateway.signal.request(ur.DATA_STREAM,{payload:kd(t.payload),syncWithAudio:t.syncWithAudio,sendTs:Date.now()-vce},!c)}sendMetadata(t){if(!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not send metadata, not joined");if(new Blob([t]).size>1024)throw new qe(Ce.METADATA_OUT_OF_RANGE);return this._gateway.signal.request(ur.SEND_METADATA,{session_id:this._joinInfo.sid,metadata:kd(t)})}async sendCustomReportMessage(t){if(Array.isArray(t)||(t=[t]),t.forEach(AU),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not send custom report, not joined");await qt.sendCustomReportMessage(this._joinInfo.sid,t)}getLocalAudioStats(){return this._statsCollector.getLocalAudioTrackStats()}getRemoteAudioStats(){return this._statsCollector.getRemoteAudioTrackStats()}getLocalVideoStats(){return this._statsCollector.getLocalVideoTrackStats()}getRemoteVideoStats(){return this._statsCollector.getRemoteVideoTrackStats()}getRemoteNetworkQuality(){const t=this._statsCollector.getRemoteNetworkQualityStats();if(de("DELETE_NEQ_AFTER_USER_LEAVE")){const s=this._users.map(c=>c.uid+"");Object.keys(t).forEach(c=>{Et(s).call(s,c)||delete t[c]})}return t}getNetworkQuality(){return this._statsCollector.getNetworkQuality()}async pickSVCLayer(t,s){As(s.spatialLayer,"spatialLayer",[0,1,2,3]),As(s.temporalLayer,"temporalLayer",[0,1,2,3]);try{await this._gateway.pickSVCLayer(t,s)}catch(c){throw J.error("[".concat(this._clientId,"] pick SVC layer failed"),c.toString()),c}}async setRTMConfig(t){const s=t.apRTM,c=s!==void 0&&s,u=t.rtmFlag;if(ll(c,"apRTM"),Vn(u,"rtmFlag",0),this._rtmConfig.apRTM=c,this._rtmConfig.rtmFlag=u,J.debug("[".concat(this._clientId,"] setRTMconfig ").concat(JSON.stringify(t)," in ").concat(this.connectionState," state")),(this.connectionState==="CONNECTED"||this.connectionState==="RECONNECTING")&&this._joinInfo)return this._joinInfo.apRTM=c,this._joinInfo.rtmFlag=u,this._gateway.setRTM2Flag(u)}_reset(){if(J.debug("[".concat(this._clientId,"] reset client")),function(t){const s=L2.indexOf(t);s!==-1&&L2.splice(s,1)}(this._clientId),this.store.hasStartJoinChannel=!1,this.store.isABTestSuccess=!1,this.store.autoSubscribe=!1,this._pendingRtpCapabilityChange=void 0,this._axiosCancelSource.cancel(),this._axiosCancelSource=on.CancelToken.source(),this._streamFallbackTypeCacheMap=new Map,this._remoteStreamTypeCacheMap=new Map,this._configDistribute.stopGetConfigDistribute(),this._joinInfo&&Bre(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0,this._sessionId&&qt.reportRteDetail(this._sessionId)),this._fallbackServerInfo=void 0,this._joinInfo=void 0,this._proxyServer=void 0,this._defaultStreamFallbackType=void 0,this._sessionId&&qt.removeSid(this._sessionId),this._sessionId=null,this.store.sessionId=null,this.store.resetFirstVideoFrameDecoded(),this._statsCollector.reset(),this._key=void 0,this._appId=void 0,this._uid=void 0,this.store.uid=void 0,this._channelName=void 0,this._encryptionMode="none",this._encryptionSecret=null,this._encryptionSalt=null,this._encryptDataStreamKey=null,this._encryptDataStreamIv=null,this._pendingPublishedUsers=[],this._users.forEach(t=>{t._audioTrack&&t._audioTrack._destroy(),t._videoTrack&&t._videoTrack._destroy(),t._dataChannels&&(t._dataChannels.forEach(s=>s._close()),t._dataChannels.length=0)}),this._users=[],this._audioVolumeIndicationInterval&&(window.clearInterval(this._audioVolumeIndicationInterval),this._audioVolumeIndicationInterval=void 0),this._cloudProxyServerMode==="fallback"&&(this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled"),this._p2pChannel.reset(),this._publishMutex=new ra("client-publish",this._clientId),this._subscribeMutex=new ra("client-subscribe",this._clientId),this._networkQualityInterval&&(window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=void 0),this._liveRawStreamingClient&&(this._liveRawStreamingClient.terminate(),this._liveRawStreamingClient.removeAllListeners(),this._liveRawStreamingClient=void 0),this._liveTranscodeStreamingClient&&(this._liveTranscodeStreamingClient.terminate(),this._liveTranscodeStreamingClient.removeAllListeners(),this._liveTranscodeStreamingClient=void 0),this._channelMediaRelayClient&&(this._channelMediaRelayClient.dispose(),this._channelMediaRelayClient=void 0),this._inspect)try{this._inspect.close(),this._inspect=void 0}catch{}if(this._moderation)try{this.setImageModeration(!1)}catch{}}_startSession(t,s){var c;const u=t||Pd();t?J.debug("[".concat(this._clientId,"] new Session ").concat(u)):J.debug("[".concat(this._clientId,"] renewSession ").concat(this._sessionId," => ").concat(u));const h=t?"":this._sessionId||"";this._sessionId=u,this.store.sessionId=u,qt.addSid(u);const _={lts:new Date().getTime(),mode:this.mode,buildFormat:1,stringUid:(s==null?void 0:s.stringUid)||((c=this._joinInfo)===null||c===void 0?void 0:c.stringUid),channelProfile:this.mode==="live"?1:0,channelMode:0,isABTestSuccess:Number(this._configDistribute.isSuccess),lsid:h,clientRole:this.role==="audience"?2:1,rteUrl:this.store.rteUrl,rteSid:this.store.rteSid};qt.sessionInit(this._sessionId,bl({cname:s.channel,appid:s.appId},_)),this._joinInfo&&(this._joinInfo.sid=u),this._gateway.joinInfo&&(this._gateway.joinInfo.sid=u)}async _publishHighStream(t){if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&de("FORCE_TURN")&&!de("TURN_ENABLE_TCP")&&!de("TURN_ENABLE_UDP"))throw new qe(Ce.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");J.debug("[".concat(this._clientId,"] publish high stream"));try{const c=await this._p2pChannel.publish(t,this._isDualStreamEnabled,this._lowStreamParameter);if(this.store.useP2P){const u=(await c.next()).value;if(u){try{await this._gateway.sendExtensionMessage(Go.PUBLISH,u,!0)}catch(h){throw c.throw(h),h}await c.next()}this._p2pChannel.reportPublishEvent(!0,null)}else{const u=(await c.next()).value;if(u){var s;let h;try{h=await this._gateway.publish(this._uid,u,!0)}catch(_){if(_.code!==Ce.DISCONNECT_P2P)throw c.throw(_),_}await c.next(((s=h)===null||s===void 0?void 0:s.ortc)||[])}this._p2pChannel.reportPublishEvent(!0,null);for(const h of t)h instanceof pn&&h._encoderConfig&&this._gateway.setVideoProfile(h._encoderConfig).catch(_=>{J.debug("[".concat(this._clientId,"] stop setVideoProfile, because websocket is closed"))}),!h.muted&&h.enabled||await this._p2pChannel.muteLocalTrack(h)}}catch(c){if(this._p2pChannel.reportPublishEvent(!1,c==null?void 0:c.code,t),(c==null?void 0:c.code)===Ce.WS_ABORT)return;throw c}}async _publishLowStream(){if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));J.debug("[".concat(this._clientId,"] publish low stream"));const t=this._configDistribute.getLowStreamConfigDistribute();t&&t.bitrate&&(this._lowStreamParameter||(this._lowStreamParameter={width:160,height:120,framerate:15,bitrate:50}),this._lowStreamParameter&&this._lowStreamParameter.bitrate&&t.bitrate{if(!this._joinInfo||!this._appId)return new qe(Ce.INVALID_OPERATION,"can not create live streaming client, please join channel first").throw();const c=(u={joinInfo:this._joinInfo,appId:this._appId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig},aE("LiveStreaming").create(u));var u;return c.onLiveStreamError=(h,_)=>{qt.reportApiInvoke(this._sessionId,{name:Ti.ON_LIVE_STREAM_ERROR,options:[h,_],tag:vn.TRACER}).onSuccess(),this.safeEmit(Vr.LIVE_STREAMING_ERROR,h,_)},c.onLiveStreamWarning=(h,_)=>{qt.reportApiInvoke(this._sessionId,{name:Ti.ON_LIVE_STREAM_WARNING,options:[h,_],tag:vn.TRACER}).onSuccess(),this.safeEmit(Vr.LIVE_STREAMING_WARNING,h,_)},c.on(xy.REQUEST_WORKER_MANAGER_LIST,(h,_,B)=>{if(!this._joinInfo)return B(new qe(Ce.INVALID_OPERATION,"can not find join info to get worker manager"));(async function(Q,T,D,O){const P=de("UAP_AP").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(U=>T.proxyServer?"https://".concat(T.proxyServer,"/ap/?url=").concat(U+"/api/v1?action=uap"):"https://".concat(U,"/api/v1?action=uap"));return await lce(P,Q,T,D,O)})(h,this._joinInfo,this._axiosCancelSource.token,So).then(_).catch(B)}),c};return t===ku.RAW?(this._liveRawStreamingClient=this._liveRawStreamingClient||s(),this._liveRawStreamingClient):(this._liveTranscodeStreamingClient=this._liveTranscodeStreamingClient||s(),this._liveTranscodeStreamingClient)}_createChannelMediaRelayClient(){if(!this._joinInfo)return new qe(Ce.INVALID_OPERATION,"can not create channel media relay client, please join channel first").throw();if(!this._channelMediaRelayClient){const s=this.getLocalVideoStats(),c=s.sendResolutionWidth,u=s.sendResolutionHeight,h=(t={joinInfo:this._joinInfo,clientId:this._clientId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig,resolution:{width:c,height:u}},aE("ChannelMediaRelay").create(t));h.on("state",_=>{_===e1.RELAY_STATE_FAILURE&&h&&h.dispose(),this.safeEmit(Vr.CHANNEL_MEDIA_RELAY_STATE,_)}),h.on("event",_=>{this.safeEmit(Vr.CHANNEL_MEDIA_RELAY_EVENT,_)}),this._channelMediaRelayClient=h,this._statsCollector.onStatsChanged=(_,B)=>{var Q;_==="resolution"&&((Q=this._channelMediaRelayClient)===null||Q===void 0||Q.setVideoProfile(B))}}var t;return this._channelMediaRelayClient}_handleFullDatachannel(t){const s=[],c=[];this._users.forEach(u=>{const h=u._dataChannels;h.forEach(_=>{t.some(B=>B.uid===u._uintid&&B.stream_id===_.id&&B.metadata===_.metadata)||s.push({uid:u._uintid,stream_id:_.id,ordered:_.ordered,max_retrans_times:_.maxRetransmits,metadata:_.metadata})}),t.filter(_=>_.uid===u._uintid).forEach(_=>{if(!h.some(B=>u._uintid===_.uid&&B.id===_.stream_id&&B.metadata===_.metadata)){const B=s.findIndex(Q=>u._uintid===Q.uid&&Q.stream_id===_.stream_id);B!==-1&&(c.push(_),s.splice(B,1))}})}),this._handleDataChannelDeleted(s),this._handleDataChannelUpdated(c),this._handleDataChannelAdded(t,!0),J.debug("[".concat(this._clientId,"] emit full infos, data_channel ids: ").concat(t.map(u=>u.stream_id))),this.safeEmit(Vr.PUBLISHED_USER_LIST,this._pendingPublishedUsers),this._pendingPublishedUsers=[]}_handleDataChannelAdded(t,s){const c=[];Array.isArray(t)&&t.length>0&&(J.debug("[".concat(this._clientId,"] data_channel ids: ").concat(t.map(u=>u.stream_id)," added")),t.forEach(u=>{const h=u.uid,_=u.stream_id,B=u.ordered,Q=u.max_retrans_times,T=u.metadata,D=this._users.find(P=>P._uintid===h);if(!D)return void J.error("[".concat(this._clientId,"] can not find target user!(on_add_data_channel)"));if(J.debug("[".concat(this._clientId,"] data_channel added with uid ").concat(h)),Et(c).call(c,D)||c.push(D),D._uintid||(D._uintid=h),D._dataChannels.findIndex(P=>P.id===u.stream_id)!==-1){const P=D._dataChannels.find(U=>U.id===u.stream_id);P==null||P._updateDataChannelConfig(bl(bl({},P==null?void 0:P.getConfig()),{},{metadata:u.metadata}))}else{const P={id:_,ordered:!!B,maxRetransmits:Q,metadata:T},U=function(H){return yte(H,!0)}(P);D._dataChannels.push(U),J.info("[".concat(this._clientId,"] remote user ").concat(D.uid," published datachannel")),s||this.safeEmit(Vr.USER_PUBLISHED,D,"datachannel",P)}this._p2pChannel.hasPendingRemoteDataChannel(D,u.stream_id)&&(J.debug("[".concat(this._clientId,"] resubscribe datachannel id: ").concat(u.stream_id," for user ").concat(D.uid," after reconnect.")),this._subscribeDataChannel(D,u.stream_id).catch(P=>{J.error("[".concat(this._clientId,"] resubscribe datachannel error"),P.toString())}))}))}_handleDataChannelUpdated(t){Array.isArray(t)&&t.length>0&&(J.debug("[".concat(this._clientId,"] data_channel ids: ").concat(t.map(s=>s.stream_id)," updated")),t.forEach(s=>{var c;const u=s.uid,h=s.stream_id,_=s.metadata,B=this._users.find(T=>T._uintid===u);if(!B)return void J.error("[".concat(this._clientId,"] can not find target user!(on_update_data_channel)"));const Q=B._dataChannels.find(T=>T.id===h);J.debug("[".concat(this._clientId,"] data_channel: ").concat(h," updated with uid ").concat(u,", last metadata: ").concat(Q==null||(c=Q._config)===null||c===void 0?void 0:c.metadata,", new metadata: ").concat(_)),this.safeEmit(Vr.USER_UNPUBLISHED,B,"datachannel",Q==null?void 0:Q._config),this.safeEmit(Vr.USER_PUBLISHED,B,"datachannel",{id:h,ordered:!!s.ordered,maxRetransmits:s.max_retrans_times,metadata:_})}))}_handleDataChannelDeleted(t){Array.isArray(t)&&t.length>0&&(J.debug("[".concat(this._clientId,"] data_channel ids: ").concat(t.map(s=>s.stream_id)," deleted")),t.forEach(s=>{const c=s.uid;s.stream_id;const u=this._users.find(_=>_._uintid===c);if(!u)return void J.error("[".concat(this._clientId,"] can not find target user!(on_delete_data_channel)"));const h=u._dataChannels.find(_=>_.id===s.stream_id);h&&(J.debug("[".concat(this._clientId,"] data_stream delete with uid ").concat(c)),u._dataChannels=u._dataChannels.filter(_=>_.id!==h.id),this._p2pChannel.unsubscribeDataChannel(u,[h]).then(_=>{if(_)return this._gateway.unsubscribeDataChannel(_,u.uid)}),J.info("[".concat(this._clientId,"] remote user ").concat(c," unpublished datachannel , id:").concat(h.id)),this.safeEmit(Vr.USER_UNPUBLISHED,u,"datachannel",h._config))}))}_handleUpdateDataChannel(t){const s=t.added,c=t.deleted;this._handleDataChannelDeleted(c??[]),this._handleDataChannelAdded(s??[])}_getEncodingName(t){var s,c;if(!this._joinResponse)return;const u=(s=this._joinResponse.ortc.rtpCapabilities.sendrecv)===null||s===void 0?void 0:s.videoCodecs;if(!u)return;for(const Q of u){var h;if(Q.payloadType===t)return Q==null||(h=Q.rtpMap)===null||h===void 0?void 0:h.encodingName}const _=(c=this._joinResponse.ortc.rtpCapabilities.recv)===null||c===void 0?void 0:c.videoCodecs;if(_)for(const Q of _){var B;if(Q.payloadType===t)return Q==null||(B=Q.rtpMap)===null||B===void 0?void 0:B.encodingName}return t===0?"unknown":void 0}_handleRemoveDataChannels(t){const s=this._users.find(c=>c.uid===t.uid);if(s){if(s._dataChannels!==void 0&&s._dataChannels.length>0){J.debug("[".concat(this._clientId,"] datachannel removed with uid ").concat(t.uid));const c=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(s.uid," unpublished datachannel")),s._dataChannels.forEach(u=>{this.safeEmit(Vr.USER_UNPUBLISHED,s,"datachannel",u._config)})};this._p2pChannel.unsubscribeDataChannel(s,s._dataChannels).then(u=>{if(u)return this._gateway.unsubscribeDataChannel(u,s.uid)}),c()}}else J.warning("[".concat(this._clientId,"] can not find target user!(on_remove_datachannel)"))}_handleGatewayEvents(){this._gateway.on(No.UPDATE_GATEWAY_CONFIG,()=>{(function(){let t;try{t=window.localStorage.getItem("websdk_ng_global_parameter")}catch(s){return void J.error("Error loading sdk config",s.message)}if(t)try{const s=JSON.parse(window.atob(t)),c=Date.now();Object.keys(s).forEach(u=>{const h=s[u],_=h.value,B=h.type,Q=h.expires;Q&&Q<=c||B||M2()||!Object.prototype.hasOwnProperty.call(XA,u)||($e[u]=_,Vi[u]=_,J.debug("Update gateway parameters from config distribute",u,_))})}catch(s){J.error("Error update config from local cache",s.message)}})()}),this._gateway.on(No.DISCONNECT_P2P,async()=>{await this._p2pChannel.disconnectForReconnect()}),this._gateway.on(No.CONNECTION_STATE_CHANGE,(t,s,c)=>{var u;if(c===mi.FALLBACK)return;const h=()=>{this.safeEmit(Vr.CONNECTION_STATE_CHANGE,t,s,c)};if(qt.reportApiInvoke(this._sessionId||((u=this._gateway.joinInfo)===null||u===void 0?void 0:u.sid)||null,{name:Ti.CONNECTION_STATE_CHANGE,options:[t,s,c],tag:vn.TRACER}).onSuccess(JSON.stringify({cur:t,prev:s,reason:c})),J.info("[".concat(this._clientId,"] signal connection state change: ").concat(s," -> ").concat(t)),t==="DISCONNECTED")return this._reset(),void h();if(t==="RECONNECTING")this._users.forEach(B=>{B._trust_in_room_=!1,B._trust_audio_enabled_state_=!1,B._trust_video_enabled_state_=!1,B._trust_audio_mute_state_=!1,B._trust_video_mute_state_=!1,B._trust_audio_stream_added_state_=!1,B._trust_video_stream_added_state_=!1,B._is_pre_created||(B._audio_pre_subscribed||(B._audioSSRC=void 0,B._audioOrtc=void 0),B._video_pre_subscribed||(B._videoSSRC=void 0,B._videoOrtc=void 0,B._rtxSsrcId=void 0),B._cname=void 0)}),this._userOfflineTimeout&&window.clearTimeout(this._userOfflineTimeout),this._streamRemovedTimeout&&window.clearTimeout(this._streamRemovedTimeout),this._userOfflineTimeout=void 0,this._streamRemovedTimeout=void 0;else if(t==="CONNECTED"){var _;this._streamFallbackTypeCacheMap.forEach((B,Q)=>{this._gateway.setStreamFallbackOption(Q,B).catch(T=>{J.warning("[".concat(this._clientId,"] auto set stream fallback option failed"),T)})}),this._remoteStreamTypeCacheMap.forEach((B,Q)=>{this._gateway.setRemoteVideoStreamType(Q,B).catch(T=>{J.warning("[".concat(this._clientId,"] auto set remote stream type failed"),T)})}),de("VOS_CONFIGURE")&&Array.isArray(de("VOS_CONFIGURE"))&&de("VOS_CONFIGURE").length>0&&(this._gateway.setConfigure(de("VOS_CONFIGURE")).catch(B=>{J.debug("[".concat(this._clientId,"] auto set vos config failed"),B)}),J.debug("[".concat(this._clientId,"] ws connected auto set vos config"))),this._remoteDefaultVideoStreamType!==void 0&&((_=this._joinInfo)===null||_===void 0?void 0:_.defaultVideoStream)===void 0&&this.setRemoteDefaultVideoStreamType(this._remoteDefaultVideoStreamType).then(()=>{J.debug("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway connected"))}).catch(B=>{J.error("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway failed, ").concat(B))}),this._dualStreamMode&&this._gateway.setDualStreamMode(this._dualStreamMode).catch(B=>{J.warning("[".concat(this._clientId,"] auto set dual stream mode failed"),B)}),this.store.useP2P||(this._p2pChannel.republish(),this._userOfflineTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._userOfflineTimeout=void 0,this._users.filter(B=>!B._trust_in_room_).forEach(B=>{J.debug("[".concat(this._clientId,"] user offline timeout, emit user offline ").concat(B.uid)),this._handleUserOffline({uid:B.uid})}))},3e3),this._streamRemovedTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._streamRemovedTimeout=void 0,this._users.forEach(B=>{B._trust_audio_mute_state_||(J.debug("[".concat(this._clientId,"] auto dispatch audio unmute event ").concat(B.uid)),this._handleMuteStream(B.uid,rr.AUDIO,!1)),B._trust_video_mute_state_||(J.debug("[".concat(this._clientId,"] auto dispatch video unmute event ").concat(B.uid)),this._handleMuteStream(B.uid,rr.VIDEO,!1)),B._trust_audio_enabled_state_||(J.debug("[".concat(this._clientId,"] auto dispatch enable local audio ").concat(B.uid)),this._handleSetStreamLocalEnable("audio",B.uid,!0)),B._trust_video_enabled_state_||(J.debug("[".concat(this._clientId,"] auto dispatch enable local video ").concat(B.uid)),this._handleSetStreamLocalEnable("video",B.uid,!0)),B._trust_video_stream_added_state_||(J.debug("[".concat(this._clientId,"] auto dispatch reset video stream added ").concat(B.uid)),this._handleResetAddStream(B,"video")),B._trust_audio_stream_added_state_||(J.debug("[".concat(this._clientId,"] auto dispatch reset audio stream added ").concat(B.uid)),this._handleResetAddStream(B,"audio")),B._video_added_||B._audio_added_||(J.debug("[".concat(this._clientId,"] auto dispatch stream remove ").concat(B.uid)),this._handleRemoveStream({uid:B.uid,uint_id:B._uintid}))}))},1e3))}h()}),this._gateway.on(No.REQUEST_NEW_GATEWAY_LIST,async(t,s)=>{if(!this._joinInfo)return s(new qe(Ce.UNEXPECTED_ERROR,"can not recover, no join info"));try{let c;if(this._fallbackServerInfo)c=this._fallbackServerInfo,this._fallbackServerInfo=void 0,this._joinInfo.preload=!1,qt.reportApiInvoke(this._sessionId,{name:Ti.VOS_FALLBACK_CN,options:{cur:c.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!0},tag:vn.TRACER}).onSuccess(),J.info("[".concat(this._clientId,"] use fallback cn server info"));else{const h=await _z(bl(bl({},this._joinInfo),{},{uid:this._joinInfo.uid,stringUid:void 0}));h?(c=h.ap,Sre(h),this._joinInfo.preload=!0):(c=await _9(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store),this._joinInfo.preload=!1)}this._joinInfo&&(this._joinInfo.apResponse=c.gatewayInfo.res,this._joinInfo.gatewayAddrs=c.gatewayInfo.gatewayAddrs,this._joinInfo.uni_lbs_ip=c.gatewayInfo.uni_lbs_ip,delete this._joinInfo.signalResponse);const u=[];c.gatewayInfo.gatewayAddrs.forEach(h=>{const _=ir(h.address.split(":"),2),B=_[0],Q=_[1];this._joinInfo&&this._joinInfo.proxyServer?u.push({proxy:this._joinInfo.proxyServer,host:B,port:Q}):u.push({host:B,port:Q})}),t(u)}catch(c){s(c)}}),this._gateway.on(No.NETWORK_QUALITY,t=>{this._networkQualitySensitivity==="normal"&&this.safeEmit(Vr.NETWORK_QUALITY,t)}),this._gateway.on(No.STREAM_TYPE_CHANGE,(t,s)=>{this.safeEmit(Vr.STREAM_TYPE_CHANGED,t,s),qt.reportApiInvoke(this._sessionId,{name:Ti.STREAM_TYPE_CHANGE,options:[t,s],tag:vn.TRACER}).onSuccess(JSON.stringify({uid:t,streamType:s}))}),this._gateway.isPreSub=()=>"isPreSub"in this._p2pChannel&&this._p2pChannel.isPreSub(),this._gateway.isPreallocation=()=>"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation(),this._gateway.on(No.IS_P2P_DISCONNECTED,t=>{this._p2pChannel.isP2PDisconnected()?t(!0):this._p2pChannel.hasLocalMedia()||this._p2pChannel.hasRemoteMedia()?t(!1):t(!0)}),this._gateway.on(No.REQUEST_P2P_CONNECTION_PARAMS,async(t,s,c)=>{try{let u=await this._p2pChannel.getEstablishParams();u&&"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation()||(u=await this._p2pChannel.startP2PConnection(t)),s(u)}catch(u){c(u)}}),this._gateway.on(No.JOIN_RESPONSE,(t,s)=>{if(this.store.useP2P)return;let c;this._joinResponse=t,t.attributes?c=t.attributes.userAttributes.preSubSsrcs:J.debug("no attributes in joinResponse");const u=hte(t.ortc,s,c);this._p2pChannel.connect(u)}),this._gateway.on(No.PRE_CONNECT_PC,async(t,s,c)=>{const u=t.candidates,h=t.fingerprint,_=t.turnServer;if(this._joinInfo&&u.length>0&&!this._p2pChannel.isPlanB){var B,Q;const D=this._joinInfo.apResponse,O=D.cert,P=D.cid,U="".concat(P,"_").concat(O),H=t.iceUfrag||U,$=t.icePwd||U;if(!YX(H,$))return void J.debug("[".concat(this._clientId,"] ufrag/pwd length is not valid, length: ").concat(H.length," / ").concat($.length));let Z;await this._p2pChannel.getEstablishParams()&&"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation()?(this._p2pChannel.updateConnectionConfiguration({turnServer:_,cloudProxyServer:this._joinInfo.cloudProxyServer,isPreallocation:!0}),J.debug("pre pc before connect ws/dc, use sdp endpoint")):await this._p2pChannel.startP2PConnection({turnServer:_,cloudProxyServer:this._joinInfo.cloudProxyServer,isPreallocation:!0});const te=(B=this._joinInfo.signalResponse)===null||B===void 0||(B=B.attributes)===null||B===void 0||(B=B.userAttributes)===null||B===void 0?void 0:B.preSubSsrcs;Array.isArray(te)&&te.length>0&&(Z=Ite(te));const se=(Q=this._joinInfo.signalResponse)===null||Q===void 0?void 0:Q.rtpCapabilities;try{var T;s(await this._p2pChannel.connect(bl({iceParameters:{iceUfrag:H,icePwd:$},dtlsParameters:{fingerprints:[{hashFunction:"sha-256",fingerprint:(T=de("FINGERPRINT"))!==null&&T!==void 0?T:h}]},candidates:u,rtpCapabilities:se||{send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},setup:"active",cname:"o/i14u9pJrxRKAsu",preallocation:!0},Z?{preSSRCs:Z}:{})))}catch(ge){ge.code&&ge.code===Ce.EXCHANGE_SDP_FAILED&&(J.debug("try to pre connect pc, but exchange sdp failed, reset p2p connection",ge),await this._p2pChannel.startP2PConnection({turnServer:_,cloudProxyServer:this._joinInfo.cloudProxyServer},!0)),c(ge)}}}),this._gateway.on(No.VOS_FALLBACK,t=>{t==="fallback_hls"&&this.safeEmit(Vr.FALLBACK_TO_HLS,Pr.VOSERROR)}),this._gateway.on(No.RESET_SIGNAL,()=>{this._p2pChannel instanceof Em&&this._p2pChannel.fallbackConnection(),this._handleGatewaySignalEvents()}),this._gateway.on(No.DATACHANNEL_FAILBACK,()=>{qt.reportApiInvoke(this._sessionId,{name:Ti.DATACHANNEL_FAILBACK,options:{},tag:vn.TRACER}).onSuccess(),this._joinGateway()})}_handleGatewaySignalEvents(){this._gateway.signal.on(Ur.ON_USER_ONLINE,this._handleUserOnline),this._gateway.signal.on(Ur.ON_USER_OFFLINE,this._handleUserOffline),this._gateway.signal.on(Ur.ON_ADD_AUDIO_STREAM,t=>this._handleAddAudioOrVideoStream("audio",t.uid,t.ssrcId,t.cname,t.pt,t.uint_id,t.ortc)),this._gateway.signal.on(Ur.ON_ADD_VIDEO_STREAM,t=>this._handleAddAudioOrVideoStream("video",t.uid,t.ssrcId,t.cname,t.pt,t.uint_id,t.ortc,t.rtxSsrcId)),this._gateway.signal.on(Ur.ON_REMOTE_DATASTREAM_UPDATE,t=>{this._handleUpdateDataChannel(t)}),this._gateway.signal.on(Ur.ON_REMOTE_FULL_DATASTREAM_INFO,t=>{var s;this._handleFullDatachannel((s=t.datastreams)!==null&&s!==void 0?s:[])}),this._gateway.signal.on(Ur.ON_REMOVE_STREAM,this._handleRemoveStream),this._gateway.signal.on(Ur.ON_P2P_LOST,this._handleP2PLost),this._gateway.signal.on(Ur.MUTE_AUDIO,t=>this._handleMuteStream(t.uid,rr.AUDIO,!0)),this._gateway.signal.on(Ur.UNMUTE_AUDIO,t=>this._handleMuteStream(t.uid,rr.AUDIO,!1)),this._gateway.signal.on(Ur.MUTE_VIDEO,t=>this._handleMuteStream(t.uid,rr.VIDEO,!0)),this._gateway.signal.on(Ur.UNMUTE_VIDEO,t=>this._handleMuteStream(t.uid,rr.VIDEO,!1)),this._gateway.signal.on(Ur.RECEIVE_METADATA,t=>{const s=Yr(t.metadata);this.safeEmit(Vr.RECEIVE_METADATA,t.uid,s)}),this._gateway.signal.on(Ur.ON_DATA_STREAM,async t=>{var s;if(!t)return;let c=Yr(t.payload);if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Et(s=["aes-128-gcm2","aes-256-gcm2"]).call(s,this._encryptionMode)){if(t.payload.lengthQ.uid===t.uid),B=h==null?void 0:h.audioRecv.find(Q=>Q.ssrc===(_==null?void 0:_._audioSSRC));u=B==null?void 0:B.jitterBufferMs}(u==null||Number.isNaN(u))&&(u=0),bce(bl(bl({},t),{},{payload:c}),u,{id:this._clientId,onStreamMessage:typeof this.onStreamMessage=="function"?this.onStreamMessage.bind(this):void 0,safeEmit:this.safeEmit.bind(this)})}),this._gateway.signal.on(Ur.ON_CRYPT_ERROR,()=>{vg(()=>{J.warning("[".concat(this._clientId,"] on crypt error")),this.safeEmit(Vr.CRYPT_ERROR)},this._sessionId)}),this._gateway.signal.on(Ur.ON_TOKEN_PRIVILEGE_WILL_EXPIRE,this._handleTokenWillExpire),this._gateway.signal.on(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{J.warning("[".concat(this._clientId,"] received message onTokenPrivilegeDidExpire, please get new token and join again")),this._gateway.leave(!0,mi.TOKEN_EXPIRE),this.safeEmit(Vr.ON_TOKEN_PRIVILEGE_DID_EXPIRE),this._reset()}),this._gateway.signal.on(Ur.ON_STREAM_FALLBACK_UPDATE,t=>{J.debug("[".concat(this._clientId,"] stream fallback peerId: ").concat(t.stream_id,", attr: ").concat(t.stream_type)),this.safeEmit(Vr.STREAM_FALLBACK,t.stream_id,t.stream_type===1?"fallback":"recover")}),this._gateway.signal.on(Ur.ENABLE_MULTI_STREAM,t=>{this._dualStreamMode===Ie.AUTO_SIMULCAST_STREAM&&this.enableDualStream().catch(s=>{J.debug("[".concat(this._clientId,"] set dual stream mode error"),s.toString())})}),this._gateway.signal.on(Ur.ON_PUBLISH_STREAM,t=>{this.uid===this._uid&&(this._p2pChannel.reportPublishEvent(!0,null,void 0,!1,JSON.stringify({proxy:t.proxy})),J.info("[".concat(this._clientId,"] on publish stream, ").concat(JSON.stringify(t))))}),this._gateway.signal.on(Ur.ENABLE_LOCAL_VIDEO,t=>{this._handleSetStreamLocalEnable("video",t.uid,!0)}),this._gateway.signal.on(Ur.DISABLE_LOCAL_VIDEO,t=>{this._handleSetStreamLocalEnable("video",t.uid,!1)}),this._gateway.signal.on(er.REQUEST_TIMEOUT,(t,s)=>{if(this._joinInfo)switch(t){case ur.PUBLISH:{if(!s)return;const h=s.ortc;if(h){var c,u;const _=h.some(T=>T.stream_type===En.Audio),B=h.some(T=>T.stream_type!==En.Audio),Q=h.some(T=>{let D=T.stream_type;return D===En.Screen||D===En.ScreenLow});s.state==="offer"&&qt.publish(this._joinInfo.sid,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:!1,ec:Ce.TIMEOUT,audio:_,video:B,p2pid:s.p2p_id,publishRequestid:this.store.pubId,screenshare:Q,audioName:_?(c=h.find(T=>T.stream_type===En.Audio))===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId.toString():void 0,videoName:B?(u=h.find(T=>T.stream_type!==En.Audio))===null||u===void 0||(u=u.ssrcs[0])===null||u===void 0?void 0:u.ssrcId.toString():void 0})}break}case ur.SUBSCRIBE:s&&qt.subscribe(this._joinInfo.sid,{succ:!1,ec:Ce.TIMEOUT,audio:s.stream_type===rr.AUDIO,video:s.stream_type===rr.VIDEO,peerid:s.stream_id,subscribeRequestid:s.ssrcId,p2pid:this.store.p2pId,eventElapse:_A.measureFromSubscribeStart(this.store.clientId,s.ssrcId),preSsrc:this._p2pChannel.isPreSubScribe(s.ssrcId)})}}),this._gateway.signal.on(Ur.ON_P2P_OK,t=>{this.uid,this._uid}),this._gateway.signal.on(Ur.ON_PUBLISHED_USER_LIST,t=>{if(t==null||!t.users)return;let s=t.users;de("BLOCK_LOCAL_CLIENT")&&(s=s.filter(c=>!Lu(c.string_id||c.stream_id,this.channelName))),this._handleUserList(s)}),this._gateway.signal.on(Ur.ON_USER_LIST,t=>{if(!t||!Array.isArray(t.users)||t.users.length===0)return;let s=t.users;s=de("BLOCK_LOCAL_CLIENT")?s.filter(c=>!Lu(c.string_id||c.stream_id,this.channelName)):s,this._handleUserList(s)}),this._gateway.signal.on(Ur.ON_RTP_CAPABILITY_CHANGE,t=>{const s=t.video_codec;if(this._p2pChannel instanceof Em){if(this.role==="audience"&&de("UPDATE_RTP_CAP_IN_HOST"))return this._pendingRtpCapabilityChange=t,void J.debug("[".concat(this._clientId,"] no need to change rtp capability because of audience, params: ").concat(JSON.stringify(t)));this._p2pChannel.updateRemoteRTPCapabilities(s.map(c=>c.toLowerCase()).filter(c=>{var u;return Et(u=Object.keys(Qn)).call(u,c)}))}}),this._gateway.signal.on(er.VOS_FALLBACK_PROMISE,async(t,s,c)=>{if(t==="FALLBACKCN"&&de("ENABLE_QUALITY_FALLBACK")){if(!this._joinInfo)return c(new qe(Ce.UNEXPECTED_ERROR,"can not recover, no join info"));J.info("[".concat(this._clientId,"] try fallback to cn, start request new server info"));const h=this._joinInfo.apRequestDetail;try{this._joinInfo.apRequestDetail=t;const _=await _9(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store);if(de("QUALITY_FALLBACK_REHEARSAL"))return qt.reportApiInvoke(this._sessionId,{name:Ti.VOS_FALLBACK_CN,options:{cur:_.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:vn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=h,void c();this._fallbackServerInfo=_,s()}catch(_){var u;const B=_==null||(u=_.data)===null||u===void 0?void 0:u.desc;de("QUALITY_FALLBACK_REHEARSAL")?(qt.reportApiInvoke(this._sessionId,{name:Ti.VOS_FALLBACK_CN,options:{cur:"failed, errorReason: "+B||"unknown",prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:vn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=h):Array.isArray(B)&&Et(B).call(B,"request downgrade fallback")&&this.safeEmit(Vr.FALLBACK_TO_HLS,Pr.AP_ERROR),c(_)}}else c()})}_handleUserList(t){var s=this;if(t.length===0)return;const c=[],u=[],h=[],_=[],B=[],Q=[],T=this.getListeners(Vr.USER_LIST).length>0,D=this.getListeners(Vr.PUBLISHED_USER_LIST).length>0;for(const P of t){let U=this._users.find(me=>me._uintid===P.stream_id);const H=!!U;U?U._trust_in_room_=!0:(U=new vp(P.string_id||P.stream_id,P.stream_id),this._users.push(U),this.store.firstVideoFrameDecoded(U.uid,{userJoinNotify:Date.now()}));const $=jo.Audio&P.stream_type,Z=(jo.Video|jo.LowVideo)&P.stream_type,te=(65280&P.stream_type)!=0,se=$&&U.hasAudio,ge=Z&&U.hasVideo;Z&&(U._trust_video_stream_added_state_=!0,U._video_added_=!0,U._videoSSRC=P.video_ssrc,U._rtxSsrcId=P.video_rtx),$&&(U._trust_audio_stream_added_state_=!0,U._audio_added_=!0,U._audioSSRC=P.audio_ssrc),($&&!se||Z&&!ge||te)&&(u.push(U),$&&!se&&h.push(U),Z&&!ge&&_.push(U)),H||B.push(U),Z&&this._p2pChannel.hasPendingRemoteMedia(U,"video")&&Q.push({user:U,mediaType:"video"}),$&&this._p2pChannel.hasPendingRemoteMedia(U,"audio")&&Q.push({user:U,mediaType:"audio"}),c.push(U)}Q.length>0&&(J.debug("[".concat(this._clientId,"] RE massSubscribe after reconnect ").concat(Q.map(P=>"user: ".concat(P.user.uid,", mediaType: ").concat(P.mediaType)).join("; ")," ")),this.massSubscribe(Q).catch(P=>{J.error("[".concat(this._clientId,"] mass resubscribe error"),P.toString())}));const O=function(){let P=arguments.length>0&&arguments[0]!==void 0&&arguments[0];J.info("[".concat(s._clientId,"] client not emit user-list event case there is no user-list listener...")),P||B.forEach(U=>{J.debug("[".concat(s._clientId,"] user online"),U._uintid),s.safeEmit(Vr.USER_JOINED,U)}),u.length>0&&(h.forEach(U=>{J.info("[".concat(s._clientId,"] remote user ").concat(U.uid," published audio")),s.safeEmit(Vr.USER_PUBLISHED,U,"audio")}),_.forEach(U=>{J.info("[".concat(s._clientId,"] remote user ").concat(U.uid," published video")),s.safeEmit(Vr.USER_PUBLISHED,U,"video")}))};if(de("ENABLE_USER_LIST"))T?(this.safeEmit(Vr.USER_LIST,c),O(!0)):O();else if(D){if(u.length>0){const P=VA(u).call(u,(U,H)=>"".concat(U&&U+", ").concat(H.uid),"");de("ENABLE_DATASTREAM_2")?this._pendingPublishedUsers=u:(J.info("[".concat(this._clientId,"] client emit published-user-list, users: ").concat(P)),this.safeEmit(Vr.PUBLISHED_USER_LIST,u))}}else O()}_handleP2PEvents(){this._gateway.signal.on(Ur.ON_USER_OFFLINE,()=>{this._p2pChannel.disconnectForReconnect()}),this._gateway.signal.on(Go.PUBLISH,(t,s,c)=>{const u=t.uid;t.forEach(h=>{const _=h.kind,B=h.ssrcs,Q=h.mid,T=h.isMuted;this._handleP2PAddAudioOrVideoStream(_,u,B[0].ssrcId,Q);const D=this._users.find(O=>O.uid===u);return D&&this.store.useP2P?this._p2pChannel.mockSubscribe(D,_,B[0].ssrcId,Q).then(()=>{s()}).catch(c):s(),this._handleMuteStream(u,_,!!T)})}),this._gateway.signal.on(Go.CALL,async(t,s,c)=>{if(this.store.useP2P)try{var u;s(await this._p2pChannel.startP2P({turnServer:(u=this._joinInfo)===null||u===void 0?void 0:u.turnServer},t))}catch(h){c(h)}}),this._gateway.signal.on(er.P2P_CONNECTION,async t=>{this.store.useP2P&&(await this._p2pChannel).p2pConnect(t)}),this._gateway.signal.on(Go.UNPUBLISH,async(t,s,c)=>{if(this.store.useP2P){const u=t.unpubMsg,h=t.uid,_=this._users.find(B=>B.uid===h);if(!_)return J.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(h)),void s();try{u.forEach(async B=>{const Q=B.stream_type===En.Audio?rr.AUDIO:rr.VIDEO;await this._p2pChannel.unsubscribe(_,Q),this._handleMuteStream(h,Q,!0)}),s()}catch(B){c(B)}}}),this._gateway.signal.on(Go.CONTROL,async(t,s)=>{switch(t.action){case Uu.MUTE_LOCAL_VIDEO:this._handleMuteStream(s,rr.VIDEO,!0);break;case Uu.MUTE_LOCAL_AUDIO:this._handleMuteStream(s,rr.AUDIO,!0);break;case Uu.UNMUTE_LOCAL_VIDEO:this._handleP2PAddAudioOrVideoStream("video",s),this._handleMuteStream(s,rr.VIDEO,!1);break;case Uu.UNMUTE_LOCAL_AUDIO:this._handleP2PAddAudioOrVideoStream("audio",s),this._handleMuteStream(s,rr.AUDIO,!1)}}),this._gateway.signal.on(Go.RESTART_ICE,async(t,s,c)=>{if(this.store.useP2P)try{const u=t.direction,h=t.iceParameter;u!==EA.SEND_ONLY||h?s(await this._p2pChannel.restartICE(u,h)):(this._p2pChannel.handleDisconnect(u),s())}catch(u){c(u)}}),this._gateway.signal.on(Go.CANDIDATE,t=>{if(this.store.useP2P){const s=t.candidate,c=t.direction;this._p2pChannel.addRemoteCandidate(s,c)}}),this._p2pChannel.on(Cr.RequestP2PRestartICE,async(t,s,c)=>{try{const u=t.direction;s(await this._gateway.sendExtensionMessage(Go.RESTART_ICE,t,u===EA.SEND_ONLY))}catch(u){c(u)}}),this._p2pChannel.on(Cr.LocalCandidate,t=>{this._gateway.sendExtensionMessage(Go.CANDIDATE,JSON.stringify(t),!0)}),this._p2pChannel.on(Cr.RequestP2PMuteLocal,async(t,s,c)=>{try{await this._gateway.sendExtensionMessage(Go.CONTROL,t,!0),s()}catch(u){c(u)}}),this._p2pChannel.on(Cr.RequestP2PUnmuteRemote,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.unmuteRemote(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.RequestP2PMuteRemote,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.muteRemote(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.StateChange,(t,s)=>{s===ln.Connected&&this._p2pChannel.republish()})}_handleP2PChannelEvents(){this._p2pChannel.on(Cr.PeerConnectionStateChange,t=>{const s=this._peerConnectionState;t!==s&&(this.safeEmit(Vr.PEERCONNECTION_STATE_CHANGE,t,s),this._peerConnectionState=t)}),this._p2pChannel.on(Cr.RequestMuteLocal,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.muteLocal(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.RequestUnmuteLocal,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.unmuteLocal(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.RequestRePublish,(t,s,c)=>{this.publish(t,!1).then(s).catch(c)}),this._p2pChannel.on(Cr.RequestRePublishDataChannel,(t,s,c)=>{Ut.all(t.map(async u=>{const h=await this._p2pChannel.publishDataChannel([u]);try{h.forEach(_=>{this._uid&&this._gateway.publishDataChannel(this._uid,_,!0)})}catch(_){if(_.code!==Ce.DISCONNECT_P2P)throw _}})).then(s).catch(c)}),this._p2pChannel.on(Cr.RequestReSubscribe,async(t,s,c)=>{try{for(const u of t){const h=u.user;u.kind===rr.VIDEO?await this.subscribe(h,"video"):await this.subscribe(h,"audio")}s()}catch(u){c(u)}}),this._p2pChannel.on(Cr.RequestUpload,(t,s)=>{this._gateway.upload(t,s)}),this._p2pChannel.on(Cr.RequestUploadStats,t=>{this._gateway.uploadWRTCStats(t)}),this._p2pChannel.on(Cr.MediaReconnectStart,t=>{this.safeEmit(Vr.MEDIA_RECONNECT_START,t)}),this._p2pChannel.on(Cr.MediaReconnectEnd,t=>{this.safeEmit(Vr.MEDIA_RECONNECT_END,t)}),this._p2pChannel.on(Cr.NeedSignalRTT,t=>{t(this._gateway.getSignalRTT())}),this._p2pChannel.on(Cr.RequestRestartICE,async t=>{if(this.store.useP2P)return;const s=await this._p2pChannel.restartICE(t),c=await s.next();if(c.done)return;const u=c.value;let h;try{h=await this._gateway.restartICE({iceParameters:u})}catch(B){return void s.throw(B)}const _=function(B){const Q=B.iceParameters;return{iceParameters:{iceUfrag:Q.iceUfrag,icePwd:Q.icePwd}}}(h).iceParameters;await s.next({remoteIceParameters:_})}),this._p2pChannel.on(Cr.RequestReconnect,async()=>{this._gateway.reconnect()}),this._p2pChannel.on(Cr.RequestReconnectPC,async()=>{var t;const s=await this._p2pChannel.startP2PConnection({turnServer:(t=this._joinInfo)===null||t===void 0?void 0:t.turnServer}),c=s.iceParameters,u=s.dtlsParameters,h=s.rtpCapabilities,_=await this._gateway.reconnectPC({iceParameters:c,dtlsParameters:u,rtpCapabilities:h}),B=hte(_.gatewayEstablishParams,_.gatewayAddress);await this._p2pChannel.connect(B),await this._p2pChannel.republish(),await this._p2pChannel.reSubscribe()}),this._p2pChannel.on(Cr.RequestUnpublishForReconnectPC,async(t,s,c)=>{this._joinInfo&&this._uid!==void 0?(await this._gateway.unpublish(t,this._uid),s()):c()}),this._p2pChannel.on(Cr.P2PLost,()=>{this.safeEmit(Vr.P2P_LOST,this.store.uid)}),this._p2pChannel.on(Cr.UpdateVideoEncoder,t=>{t._encoderConfig&&this._gateway.setVideoProfile(t._encoderConfig)}),this._p2pChannel.on(Cr.ConnectionTypeChange,t=>{this.safeEmit(Vr.IS_USING_CLOUD_PROXY,t),this._gateway.setUsingProxy(t)}),this._p2pChannel.on(Cr.FirstVideoBufferReady,(t,s)=>{this.safeEmit(Vr.FIRST_VIDEO_BUFFER_READY,t,s)}),this._p2pChannel.on(Cr.FirstVideoPreRender,(t,s)=>{this.safeEmit(Vr.FIRST_VIDEO_PRE_RENDER,t,s)}),this._p2pChannel.on(Cr.RequestLowStreamParameter,t=>{t(this._lowStreamParameter||{width:160,height:120,framerate:15,bitrate:50})}),this._p2pChannel.on(Cr.QueryClientConnectionState,t=>{t(this.connectionState)}),this._p2pChannel.on(Cr.AudioMetadata,t=>{this.safeEmit(Vr.AUDIO_METADATA,t)}),this._p2pChannel.on(Cr.AudioPts,t=>{this.safeEmit(Vr.AUDIO_PTS,Number(t))})}getKeyMetrics(){return this.store.keyMetrics}async enableContentInspect(t){if(!this._joinInfo||this.connectionState!=="CONNECTED")throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] can not create content inspect, please join channel first"));if(this._inspect)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Inspect content service already in connecting/connected state"));try{const c=(s={config:t},aE("ContentInspect").create(s));this._inspect=c,this.handleVideoInspectEvents(c);const u=this._joinInfo,h=u.appId,_=u.cname,B=u.sid,Q=u.token,T=u.uid,D=u.cid,O=u.vid;await c.init({appId:h,areaCode:"",cname:_,sid:B,token:Q,uid:T,cid:D,vid:O?Number(O):0},So)}catch(c){throw Array.isArray(c)?c[0]:c}var s}handleVideoInspectEvents(t){t.on(fa.CONNECTION_STATE_CHANGE,(s,c)=>{if(this.safeEmit(Vr.CONTENT_INSPECT_CONNECTION_STATE_CHANGE,s,c),c===Oo.CONNECTED){if(this.connectionState!=="CONNECTED")return void this.safeEmit(Vr.CONTENT_INSPECT_ERROR,new qe(Ce.OPERATION_ABORTED,"Content inspect was cancelled because it left the channel"));t.inspectImage()}}),t.on(fa.INSPECT_RESULT,(s,c)=>{var u;if((c==null?void 0:c.code)===Ce.INVALID_OPERATION&&this.connectionState==="DISCONNECTED")return J.debug("Stop inspect content because that has left channel"),this==null||(u=this._inspect)===null||u===void 0||u.close(),void(this._inspect=void 0);this.safeEmit(Vr.CONTENT_INSPECT_RESULT,s,c)}),t.on(fa.CLIENT_LOCAL_VIDEO_TRACK,s=>{s(this.localTracks.filter(c=>c.trackMediaType==="video")[0])})}async disableContentInspect(){if(!this._inspect)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] inspectVideoContent not started"));try{this._inspect.close(),this._inspect=void 0}catch(t){throw Array.isArray(t)?t[0]:t}}async setImageModeration(t,s){if(ll(t,"enabled"),t){if(!s)throw new qe(Ce.INVALID_PARAMS,"config is required");if(Pre(s),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not create image moderation, please join channel first");try{if(this._moderation)this._moderation.updateConfig(s);else{const u=(c={config:s},aE("ImageModeration").create(c));this._moderation=u,this.handleImageModerationEvents(u);const h=this._joinInfo,_=h.appId,B=h.cname,Q=h.sid,T=h.token,D=h.uid,O=h.cid,P=h.vid;await u.init({appId:_,areaCode:"",cname:B,sid:Q,token:T,uid:D,cid:O,vid:P?Number(P):0},So)}}catch(u){throw Array.isArray(u)?u[0]:u}}else{var c;if(!this._moderation)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] image moderation not started"));try{this._moderation.close(),this._moderation.removeAllListeners(),this._moderation=void 0}catch(u){throw Array.isArray(u)?u[0]:u}}}handleImageModerationEvents(t){t.on(rd.CONNECTION_STATE_CHANGE,(s,c)=>{if(this.safeEmit(Vr.IMAGE_MODERATION_CONNECTION_STATE_CHANGE,s,c),s===r1.CONNECTED){if(this.connectionState!=="CONNECTED")throw this.setImageModeration(!1),new qe(Ce.OPERATION_ABORTED,"Image moderation was cancelled because it left the channel");t.inspectImage()}}),t.on(rd.CLIENT_LOCAL_VIDEO_TRACK,s=>{s(this.localTracks.filter(c=>c.trackMediaType==="video")[0])})}setP2PTransport(t){if(function(s){As(s,"transport",["default","auto","relay","sd-rtn"])}(t),this.mode!=="p2p")throw new qe(Ce.INVALID_OPERATION,"only p2p mode can set p2pTransport");this.store.p2pTransport=t,J.info("[".concat(this._clientId,"] set client p2pTransport to ").concat(t))}getJoinChannelServiceRecords(){return J.debug("getJoinChannelServiceRecords"),this.store.joinChannelServiceRecords}async setPublishAudioFilterEnabled(t){ll(t,"enabled"),Dn("ENABLE_PUBLISH_AUDIO_FILTER",t),this._joinInfo&&await this._gateway.setPublishAudioFilterEnabled(t)}_setRteInfo(t,s){this.store.rteUrl=t,this.store.rteSid=s}_isPreRender(){return"isPreRender"in this._p2pChannel&&this._p2pChannel.isPreRender()}_handleResetAddStream(t,s){switch(s){case"audio":t._audio_added_=!1,t._trust_audio_stream_added_state_=!0;break;case"video":t._video_added_=!1,t._trust_video_stream_added_state_=!0}}},Pt(Zt.prototype,"leave",[Ure],Object.getOwnPropertyDescriptor(Zt.prototype,"leave"),Zt.prototype),Pt(Zt.prototype,"publish",[xre],Object.getOwnPropertyDescriptor(Zt.prototype,"publish"),Zt.prototype),Pt(Zt.prototype,"unpublish",[Fre],Object.getOwnPropertyDescriptor(Zt.prototype,"unpublish"),Zt.prototype),Pt(Zt.prototype,"subscribe",[Gre],Object.getOwnPropertyDescriptor(Zt.prototype,"subscribe"),Zt.prototype),Pt(Zt.prototype,"presubscribe",[Vre],Object.getOwnPropertyDescriptor(Zt.prototype,"presubscribe"),Zt.prototype),Pt(Zt.prototype,"massSubscribe",[Kre],Object.getOwnPropertyDescriptor(Zt.prototype,"massSubscribe"),Zt.prototype),Pt(Zt.prototype,"unsubscribe",[Hre],Object.getOwnPropertyDescriptor(Zt.prototype,"unsubscribe"),Zt.prototype),Pt(Zt.prototype,"massUnsubscribe",[Yre],Object.getOwnPropertyDescriptor(Zt.prototype,"massUnsubscribe"),Zt.prototype),Pt(Zt.prototype,"setLowStreamParameter",[jre],Object.getOwnPropertyDescriptor(Zt.prototype,"setLowStreamParameter"),Zt.prototype),Pt(Zt.prototype,"setDualStreamMode",[Jre],Object.getOwnPropertyDescriptor(Zt.prototype,"setDualStreamMode"),Zt.prototype),Pt(Zt.prototype,"enableDualStream",[qre],Object.getOwnPropertyDescriptor(Zt.prototype,"enableDualStream"),Zt.prototype),Pt(Zt.prototype,"disableDualStream",[Wre],Object.getOwnPropertyDescriptor(Zt.prototype,"disableDualStream"),Zt.prototype),Pt(Zt.prototype,"setClientRole",[Xre],Object.getOwnPropertyDescriptor(Zt.prototype,"setClientRole"),Zt.prototype),Pt(Zt.prototype,"_setClientRoleOptions",[zre],Object.getOwnPropertyDescriptor(Zt.prototype,"_setClientRoleOptions"),Zt.prototype),Pt(Zt.prototype,"setProxyServer",[$re],Object.getOwnPropertyDescriptor(Zt.prototype,"setProxyServer"),Zt.prototype),Pt(Zt.prototype,"setTurnServer",[Zre],Object.getOwnPropertyDescriptor(Zt.prototype,"setTurnServer"),Zt.prototype),Pt(Zt.prototype,"setLicense",[eie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLicense"),Zt.prototype),Pt(Zt.prototype,"startProxyServer",[tie],Object.getOwnPropertyDescriptor(Zt.prototype,"startProxyServer"),Zt.prototype),Pt(Zt.prototype,"stopProxyServer",[rie],Object.getOwnPropertyDescriptor(Zt.prototype,"stopProxyServer"),Zt.prototype),Pt(Zt.prototype,"setLocalAccessPointsV2",[iie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLocalAccessPointsV2"),Zt.prototype),Pt(Zt.prototype,"setLocalAccessPoints",[nie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLocalAccessPoints"),Zt.prototype),Pt(Zt.prototype,"setRemoteDefaultVideoStreamType",[oie],Object.getOwnPropertyDescriptor(Zt.prototype,"setRemoteDefaultVideoStreamType"),Zt.prototype),Pt(Zt.prototype,"setRemoteVideoStreamType",[sie],Object.getOwnPropertyDescriptor(Zt.prototype,"setRemoteVideoStreamType"),Zt.prototype),Pt(Zt.prototype,"setStreamFallbackOption",[aie],Object.getOwnPropertyDescriptor(Zt.prototype,"setStreamFallbackOption"),Zt.prototype),Pt(Zt.prototype,"setEncryptionConfig",[Aie],Object.getOwnPropertyDescriptor(Zt.prototype,"setEncryptionConfig"),Zt.prototype),Pt(Zt.prototype,"renewToken",[cie],Object.getOwnPropertyDescriptor(Zt.prototype,"renewToken"),Zt.prototype),Pt(Zt.prototype,"enableAudioVolumeIndicator",[lie],Object.getOwnPropertyDescriptor(Zt.prototype,"enableAudioVolumeIndicator"),Zt.prototype),Pt(Zt.prototype,"startLiveStreaming",[die],Object.getOwnPropertyDescriptor(Zt.prototype,"startLiveStreaming"),Zt.prototype),Pt(Zt.prototype,"setLiveTranscoding",[uie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLiveTranscoding"),Zt.prototype),Pt(Zt.prototype,"stopLiveStreaming",[gie],Object.getOwnPropertyDescriptor(Zt.prototype,"stopLiveStreaming"),Zt.prototype),Pt(Zt.prototype,"startChannelMediaRelay",[Eie],Object.getOwnPropertyDescriptor(Zt.prototype,"startChannelMediaRelay"),Zt.prototype),Pt(Zt.prototype,"updateChannelMediaRelay",[hie],Object.getOwnPropertyDescriptor(Zt.prototype,"updateChannelMediaRelay"),Zt.prototype),Pt(Zt.prototype,"stopChannelMediaRelay",[Iie],Object.getOwnPropertyDescriptor(Zt.prototype,"stopChannelMediaRelay"),Zt.prototype),Pt(Zt.prototype,"sendCustomReportMessage",[Cie],Object.getOwnPropertyDescriptor(Zt.prototype,"sendCustomReportMessage"),Zt.prototype),Pt(Zt.prototype,"pickSVCLayer",[pie],Object.getOwnPropertyDescriptor(Zt.prototype,"pickSVCLayer"),Zt.prototype),Pt(Zt.prototype,"setRTMConfig",[fie],Object.getOwnPropertyDescriptor(Zt.prototype,"setRTMConfig"),Zt.prototype),Pt(Zt.prototype,"enableContentInspect",[_ie],Object.getOwnPropertyDescriptor(Zt.prototype,"enableContentInspect"),Zt.prototype),Pt(Zt.prototype,"disableContentInspect",[mie],Object.getOwnPropertyDescriptor(Zt.prototype,"disableContentInspect"),Zt.prototype),Pt(Zt.prototype,"setImageModeration",[Bie],Object.getOwnPropertyDescriptor(Zt.prototype,"setImageModeration"),Zt.prototype),Pt(Zt.prototype,"setP2PTransport",[Sie],Object.getOwnPropertyDescriptor(Zt.prototype,"setP2PTransport"),Zt.prototype),Pt(Zt.prototype,"getJoinChannelServiceRecords",[Rie],Object.getOwnPropertyDescriptor(Zt.prototype,"getJoinChannelServiceRecords"),Zt.prototype),Pt(Zt.prototype,"setPublishAudioFilterEnabled",[yie],Object.getOwnPropertyDescriptor(Zt.prototype,"setPublishAudioFilterEnabled"),Zt.prototype),Zt);function Tie(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{codec:"vp8",audioCodec:"opus",mode:"rtc"};const s=un(5,"client-"),c=qt.reportApiInvoke(null,{id:s,name:Ti.CREATE_CLIENT,options:[t],tag:vn.TRACER});try{var u;(function(_){As(_.codec,"config.codec",["vp8","vp9","av1","h264","h265"]),As(_.mode,"config.mode",["rtc","live","p2p"]),_.audioCodec!==void 0&&As(_.audioCodec,"config.audioCodec",["opus","pcmu","pcma","g722"]),_.proxyServer!==void 0&&Ra(_.proxyServer,"config.proxyServer",1,1e4),_.turnServer!==void 0&&Mn(_.turnServer),_.httpRetryConfig!==void 0&&kR(_.httpRetryConfig),_.websocketRetryConfig!==void 0&&kR(_.websocketRetryConfig)})(t),(NR(16,0,!0)||Df(16,0,!0))&&(t.codec==="vp9"&&(t.codec="vp8",J.debug("browser not support vp9, force use vp8")),Dn("UNSUPPORTED_VIDEO_CODEC",["vp9"])),t.audioCodec===void 0&&(t.audioCodec="opus");const h=new Jce(bl(bl({forceWaitGatewayResponse:!0},t),{},{role:Et(u=["rtc","p2p"]).call(u,t.mode)?"host":t.role||"audience"}),s);return c.onSuccess(),h}catch(h){throw c.onError(h),h}}function qce(){let t=!1;const s=Qi();return(s.name===Fi.CHROME&&Number(s.version)>=58&&(qA.engine.name!=="WebKit"||function(){const c=Qi();if(Qf()){if(c.os===ns.MAC_OS)return!0;if(c.os===ns.IOS){const u=qA.os.version&&qA.os.version.split(".");if(u&&Number(u[0])===14&&u[1]&&Number(u[1])>=3||u&&Number(u[0])>14)return!0}}return!1}())||s.name===Fi.FIREFOX&&Number(s.version)>=56||s.name===Fi.OPERA&&Number(s.version)>=45||s.name===Fi.SAFARI&&Number(s.version)>=11||s.name==="WebKit"&&(Ia()||Y1())&&s.osVersion&&Number(s.osVersion.split(".")[0])>=11||jl()||Qi().name===Fi.QQ)&&(t=!0),t}class y9{constructor(s,c){ae(this,"id",0),ae(this,"element",void 0),ae(this,"peerPair",void 0),ae(this,"context",void 0),ae(this,"audioPlayerElement",void 0),ae(this,"audioTrack",void 0),y9.count+=1,this.id=y9.count,this.element=s,this.context=c}initPeers(){this.peerPair=[new RTCPeerConnection,new RTCPeerConnection],this.peerPair[1].ontrack=s=>{const c=document.createElement("audio");c.srcObject=new MediaStream([s.track]),c.play(),this.audioPlayerElement=c}}async switchSdp(){if(!this.peerPair)return;const s=async(u,h)=>{const _=h==="offer"?await u.createOffer():await u.createAnswer();return await u.setLocalDescription(_),u.iceGatheringState==="complete"?u.localDescription:new Ut(B=>{u.onicegatheringstatechange=()=>{u.iceGatheringState==="complete"&&B(u.localDescription)}})},c=async(u,h)=>await u.setRemoteDescription(h);try{const u=await s(this.peerPair[0],"offer");await c(this.peerPair[1],u);const h=await s(this.peerPair[1],"answer");await c(this.peerPair[0],h)}catch(u){throw new qe(Ce.LOCAL_AEC_ERROR,u.toString()).print()}}async getTracksFromMediaElement(s){if(this.audioTrack)return this.audioTrack;let c;try{s instanceof HTMLVideoElement&&(s.captureStream?s.captureStream():s.mozCaptureStream()),c=this.context.createMediaStreamDestination(),this.context.createMediaElementSource(s).connect(c)}catch(h){throw new qe(Ce.LOCAL_AEC_ERROR,h.toString()).print()}if(!c)throw new qe(Ce.LOCAL_AEC_ERROR,"no dest node when local aec").print();const u=c.stream.getAudioTracks()[0];return this.audioTrack=u,u}getElement(){return this.element}async startEchoCancellation(){this.context.resume(),this.peerPair&&this.close(),this.initPeers();const s=this.element,c=await this.getTracksFromMediaElement(s);this.peerPair&&this.peerPair[0].addTrack(c),await this.switchSdp()}close(){J.debug("close echo cancellation unit, id is",this.id),this.audioPlayerElement&&this.audioPlayerElement.pause(),this.peerPair&&this.peerPair.forEach(s=>{s.close()}),this.peerPair=void 0,this.audioPlayerElement=void 0}}var wie,zF;ae(y9,"count",0);const Wce=window.AudioContext||window.webkitAudioContext,Xce=new(wie=yr({report:qt}),Pt((zF=class{constructor(){ae(this,"units",[]),ae(this,"context",void 0)}processExternalMediaAEC(t){if(!this._doesEnvironmentNeedAEC())return J.debug("the system does not need to process local aec"),-1;this.context||(this.context=new Wce);let s=this.units.find(c=>c&&c.getElement()===t);return s||(s=new y9(t,this.context),this.units.push(s)),s.startEchoCancellation(),J.debug("start processing local audio echo cancellation, id is",s.id),s.id}_doesEnvironmentNeedAEC(){return Qi().name!==Fi.SAFARI}}).prototype,"processExternalMediaAEC",[wie],Object.getOwnPropertyDescriptor(zF.prototype,"processExternalMediaAEC"),zF.prototype),zF);function vie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Die(t){for(var s=1;s1&&arguments[1]!==void 0&&arguments[1];if(!yz)return;const c=Ws._cspEventHandlerPointer;if(c&&s)return void console.error(c,s);const u=h=>{if(!(h&&h.blockedURI&&(Ws.onSecurityPolicyViolation||Ws.getListeners(iA.SECURITY_POLICY_VIOLATION).length>0)))return;const _=h.blockedURI;de("CSP_DETECTED_HOSTNAME_LIST").some(B=>Et(_).call(_,B))&&(Ws.onSecurityPolicyViolation&&typeof Ws.onSecurityPolicyViolation=="function"&&Ws.onSecurityPolicyViolation(h),Ws.getListeners(iA.SECURITY_POLICY_VIOLATION).length>0&&Ws.safeEmit(iA.SECURITY_POLICY_VIOLATION,h))};c&&yz.removeEventListener("securitypolicyviolation",c),(s||t&&typeof t=="function"||Ws.getListeners(iA.SECURITY_POLICY_VIOLATION).length>0)&&yz.addEventListener("securitypolicyviolation",u),Ws._cspEventHandlerPointer=u}var Nie=function(t){return t[t.ONE_BYTE=0]="ONE_BYTE",t[t.TWO_BYTE=1]="TWO_BYTE",t}(Nie||{});class zce{constructor(){ae(this,"_sequence",0),ae(this,"_startTime",Date.now()),ae(this,"isUseOneByte",!0)}get startTime(){const s=Date.now()-this._startTime;return s128){const Q=new Uint8Array(4);Q.set([1,0,0,0]);const T={id:0,length:4,data:Q.buffer},D={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[T]};c.commonPacketHeader.extension=1,c.extension=D,c.payload=this.compress(s),c.commonPacketHeader.length=8+(c.extension.length+2)+c.payload.byteLength}else c.commonPacketHeader.length=8+c.payload.byteLength;de("SHOW_DATASTREAM2_LOG")&&J.debug("send data header: ".concat(JSON.stringify(c.commonPacketHeader)));const u=new ArrayBuffer(c.commonPacketHeader.length),h=new Uint8Array(u),_=new DataView(u);let B=0;if(_.setUint16(B,c.commonPacketHeader.extension<<15|c.commonPacketHeader.reserved<<14|c.commonPacketHeader.length,!0),B+=2,_.setUint32(B,c.commonPacketHeader.sequence,!0),B+=4,_.setUint16(B,c.commonStreamHeader,!0),B+=2,c.extension){const Q=this.serializeExtension(c.extension);h.set(new Uint8Array(Q),B),B+=Q.byteLength}if(h.set(new Uint8Array(c.payload),B),B+=c.payload.byteLength,B!==c.commonPacketHeader.length)throw Error("serialize error!");return u}deserialize(s){if(s.byteLength<4)return new ArrayBuffer(0);const c=new DataView(s);let u=0;const h=c.getUint16(u,!0);u+=2;const _={length:16383&h,reserved:(16384&h)>>14,extension:(32768&h)>>15,sequence:c.getUint16(u+2,!0)<<16|c.getUint16(u,!0)};let B,Q;if(u+=4,de("SHOW_DATASTREAM2_LOG")&&J.debug("receive data header: ".concat(JSON.stringify(_))),c.getUint16(u,!0),u+=2,_.extension){Q=this.deserializeExtension(s.slice(u)),u+=2+Q.length,B=s.slice(u);let T=!1;if(Q.datas.length>0){const D=Q.datas.find(O=>O.id===0);D&&(T=(1&new DataView(D.data).getUint32(0,!0))==1)}B=T?this.decompress(B):B}else B=s.slice(8);return B}serializeExtension(s){const c=s.profile,u=s.length,h=s.datas,_=new ArrayBuffer(u+2),B=new Uint8Array(_),Q=new DataView(_);let T=0;if(Q.setUint8(T++,c),Q.setUint8(T++,u),h.forEach(D=>{c?(Q.setUint8(T++,D.id),Q.setUint8(T++,D.length),B.set(new Uint8Array(D.data),T),T+=D.data.byteLength):(Q.setUint8(T++,D.id|D.length<<4),B.set(new Uint8Array(D.data),T),T+=D.data.byteLength)}),T!==u+2)throw Error("serialize extension error, is ".concat(T,"!==").concat(u+2));return _}deserializeExtension(s){const c=new DataView(s);let u=0;const h=c.getUint8(u);u++;const _=c.getUint8(u);u++;const B=h===Nie.TWO_BYTE,Q=[],T=new DataView(s,2);let D=0;for(;D<_;){let O=0,P=0,U=new ArrayBuffer(0);B?(O=T.getUint8(D),D++,P=T.getUint8(D),D++):(O=15&T.getUint8(D),P=T.getUint8(D)>>4,D++),P>0&&(U=T.buffer.slice(D+2,D+2+P),D+=U.byteLength),Q.push({id:O,length:P,data:U})}if(D!==_)throw Error("parse error");return{profile:h,length:_,datas:Q}}decompress(s){return F7(new Uint8Array(s))}compress(s){return x7(new Uint8Array(s))}}const $ce={name:"DataStream",create:(t,s)=>{const c=s?new na(t):new fn(t);return c.useDataStream(new zce),c}};class Zce extends Cn{constructor(s,c,u){super(),ae(this,"ws",void 0),ae(this,"requestId",1),ae(this,"heartBeatTimer",void 0),ae(this,"joinInfo",void 0),ae(this,"clientId",void 0),ae(this,"onOpen",()=>{this.emit("open"),this.startHeartBeatCheck()}),ae(this,"onClose",h=>{this.emit("close"),this.dispose()}),ae(this,"onMessage",h=>{const _=JSON.parse(h.data);if(!_||_.command!=="serverResponse"||!_.requestId)return _&&_.command==="serverStatus"&&_.serverStatus&&_.serverStatus.command?(this.emit("status",_.serverStatus),void this.emit(_.serverStatus.command,_.serverStatus)):void 0;this.emit("req_".concat(_.requestId),_)}),this.joinInfo=s,this.clientId=c,this.ws=new Ug("cross-channel-".concat(this.clientId),u),this.ws.on(jr.RECONNECTING,()=>{this.ws.reconnectMode="retry",this.emit("reconnecting")}),this.ws.on(jr.CONNECTED,this.onOpen),this.ws.on(jr.ON_MESSAGE,this.onMessage),this.ws.on(jr.CLOSED,this.onClose)}isConnect(){return this.ws.state==="connected"}sendMessage(s){const c=this.requestId++;return s.requestId=c,s.seq=c,this.ws.sendMessage(s),c}waitStatus(s){return new Ut((c,u)=>{const h=window.setTimeout(()=>{u(new qe(Ce.TIMEOUT,"wait status timeout, status: ".concat(s)))},5e3);this.once(s,_=>{window.clearTimeout(h),_.state&&_.state!==0?u(new qe(Ce.CROSS_CHANNEL_WAIT_STATUS_ERROR,"wait status error, status: ".concat(s))):c(void 0)}),this.once("dispose",()=>{window.clearTimeout(h),u(new qe(Ce.WS_ABORT))})})}async request(s){if(this.ws.state==="closed")throw new qe(Ce.WS_DISCONNECT);const c=()=>new Ut((B,Q)=>{this.ws.once(jr.CLOSED,()=>Q(new qe(Ce.WS_ABORT))),this.ws.once(jr.CONNECTED,B)});this.ws.state!=="connected"&&await c();const u=this.sendMessage(s),h=new Ut((B,Q)=>{const T=()=>{Q(new qe(Ce.WS_ABORT))};this.ws.once(jr.RECONNECTING,T),this.ws.once(jr.CLOSED,T),this.once("req_".concat(u),B),so(3e3).then(()=>{this.removeAllListeners("req_".concat(u)),this.ws.off(jr.RECONNECTING,T),this.ws.off(jr.CLOSED,T),Q(new qe(Ce.TIMEOUT,"cross channel ws request timeout"))})}),_=await h;if(!_||_.code!==200)throw new qe(Ce.CROSS_CHANNEL_SERVER_ERROR_RESPONSE,"response: ".concat(JSON.stringify(_)));return _}async connect(s){this.ws.removeAllListeners(jr.REQUEST_NEW_URLS),this.ws.on(jr.REQUEST_NEW_URLS,c=>{c(s)}),await this.ws.init(s)}dispose(){this.clearHeartBeatCheck(),this.emit("dispose"),this.removeAllListeners(),this.ws.close()}sendPing(s){const c=this.requestId++;return s.requestId=c,this.ws.sendMessage(s),c}startHeartBeatCheck(){this.heartBeatTimer&&window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=window.setInterval(()=>{this.sendPing({command:"ping",appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sid:this.joinInfo.sid,ts:+new Date,requestId:0})},3e3)}clearHeartBeatCheck(){window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=void 0}}class ele extends Cn{set state(s){s!==this._state&&(s!==e1.RELAY_STATE_FAILURE&&(this.errorCode=t1.RELAY_OK),this.emit("state",s,this.errorCode),this._state=s)}get state(){return this._state}constructor(s,c,u,h,_){super(),ae(this,"joinInfo",void 0),ae(this,"sid",void 0),ae(this,"clientId",void 0),ae(this,"cancelToken",on.CancelToken.source()),ae(this,"workerToken",void 0),ae(this,"requestId",0),ae(this,"signal",void 0),ae(this,"prevChannelMediaConfig",void 0),ae(this,"httpRetryConfig",void 0),ae(this,"_resolution",void 0),ae(this,"_state",e1.RELAY_STATE_IDLE),ae(this,"errorCode",t1.RELAY_OK),ae(this,"onStatus",B=>{J.debug("[".concat(this.clientId,"] ChannelMediaStatus: ").concat(JSON.stringify(B))),B&&B.command&&(B.command==="onAudioPacketReceived"&&this.emit("event",Kd.PACKET_RECEIVED_AUDIO_FROM_SRC),B.command==="onVideoPacketReceived"&&this.emit("event",Kd.PACKET_RECEIVED_VIDEO_FROM_SRC),B.command==="onSrcTokenPrivilegeDidExpire"&&(this.errorCode=t1.SRC_TOKEN_EXPIRED,this.state=e1.RELAY_STATE_FAILURE),B.command==="onDestTokenPrivilegeDidExpire"&&(this.errorCode=t1.DEST_TOKEN_EXPIRED,this.state=e1.RELAY_STATE_FAILURE))}),ae(this,"onReconnect",async()=>{J.debug("[".concat(this.clientId,"] ChannelMediaSocket disconnect, reconnecting")),this.emit("event",Kd.NETWORK_DISCONNECTED),this.state=e1.RELAY_STATE_IDLE,this.prevChannelMediaConfig&&this.sendStartRelayMessage(this.prevChannelMediaConfig).catch(B=>{this.state!==e1.RELAY_STATE_IDLE&&(J.error("auto restart channel media relay failed",B.toString()),this.errorCode=t1.SERVER_CONNECTION_LOST,this.state=e1.RELAY_STATE_FAILURE)})}),this.joinInfo=s,this.clientId=c,this.sid=Pd(),this.signal=new Zce(this.joinInfo,this.clientId,u),this.httpRetryConfig=h,this._resolution=_}async startChannelMediaRelay(s){if(this.state!==e1.RELAY_STATE_IDLE)throw new qe(Ce.INVALID_OPERATION);this.state=e1.RELAY_STATE_CONNECTING,await this.connect(),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: connect success"));try{await this.sendStartRelayMessage(s)}catch(c){throw c.data&&c.data.serverResponse&&c.data.serverResponse.command==="SetSourceChannel"?new qe(Ce.CROSS_CHANNEL_FAILED_JOIN_SRC):c.data&&c.data.serverResponse&&c.serverResponse.command==="SetDestChannelStatus"?new qe(Ce.CROSS_CHANNEL_FAILED_JOIN_DEST):c.data&&c.data.serverResponse&&c.serverResponse.command==="StartPacketTransfer"?new qe(Ce.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST):c}this.prevChannelMediaConfig=s}async updateChannelMediaRelay(s){if(this.state!==e1.RELAY_STATE_RUNNING)throw new qe(Ce.INVALID_OPERATION);await this.sendUpdateMessage(s),this.prevChannelMediaConfig=s}async setVideoProfile(s){if(this._resolution=s,this.state!==e1.RELAY_STATE_RUNNING)throw new qe(Ce.INVALID_OPERATION);const c=this.genMessage(OA.SetVideoProfile);await this.signal.request(c),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: setVideoProfile success"))}async stopChannelMediaRelay(){await this.sendStopRelayMessage(),J.debug("[".concat(this.clientId,"] stopChannelMediaRelay: send stop message success")),this.state=e1.RELAY_STATE_IDLE,this.dispose()}dispose(){J.debug("[".concat(this.clientId,"] disposeChannelMediaRelay")),this.cancelToken.cancel(),this.cancelToken=on.CancelToken.source(),this.state=e1.RELAY_STATE_IDLE,this.emit("dispose"),this.signal.dispose(),this.prevChannelMediaConfig=void 0}async connect(){const s=await pce(this.joinInfo,this.cancelToken.token,this.httpRetryConfig);this.workerToken=s.workerToken,await this.signal.connect(s.addressList),this.emit("event",Kd.NETWORK_CONNECTED),this.signal.on("status",this.onStatus),this.signal.on("reconnecting",this.onReconnect)}async sendStartRelayMessage(s){const c=this.genMessage(OA.SetSdkProfile,s);await this.signal.request(c),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSdkProfile success"));const u=this.genMessage(OA.SetSourceChannel,s);await this.signal.request(u),await this.signal.waitStatus("SetSourceChannelStatus"),this.emit("event",Kd.PACKET_JOINED_SRC_CHANNEL),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceChannel success"));const h=this.genMessage(OA.SetSourceUserId,s);await this.signal.request(h),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceUserId success"));const _=this.genMessage(OA.SetDestChannel,s);await this.signal.request(_),await this.signal.waitStatus("SetDestChannelStatus"),this.emit("event",Kd.PACKET_JOINED_DEST_CHANNEL),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetDestChannel success"));const B=this.genMessage(OA.StartPacketTransfer,s);await this.signal.request(B),this.emit("event",Kd.PACKET_SENT_TO_DEST_CHANNEL),this.state=e1.RELAY_STATE_RUNNING,J.debug("[".concat(this.clientId,"] startChannelMediaRelay: StartPacketTransfer success")),this.setVideoProfile(this._resolution)}async sendUpdateMessage(s){const c=this.genMessage(OA.UpdateDestChannel,s);await this.signal.request(c),this.emit("event",Kd.PACKET_UPDATE_DEST_CHANNEL),J.debug("[".concat(this.clientId,"] sendUpdateMessage: UpdateDestChannel success"))}async sendStopRelayMessage(){const s=this.genMessage(OA.StopPacketTransfer);await this.signal.request(s),J.debug("[".concat(this.clientId,"] sendStopRelayMessage: StopPacketTransfer success"))}genMessage(s,c){const u=[],h=[],_=[];this.requestId+=1;const B={appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sdkVersion:W1,sid:this.sid,ts:Date.now(),requestId:this.requestId,seq:this.requestId,allocate:!0,clientRequest:{}};B.sdkVersion==="4.24.5"&&(B.sdkVersion="0.0.1");let Q=null,T=null;switch(s){case OA.SetSdkProfile:return B.clientRequest={command:"SetSdkProfile",type:"multi_channel"},B;case OA.SetSourceChannel:if(T=c&&c.getSrcChannelMediaInfo(),!T)throw new qe(Ce.UNEXPECTED_ERROR,"can not find source config");return B.clientRequest={command:"SetSourceChannel",uid:"0",channelName:T.channelName,token:T.token||this.joinInfo.appId},B;case OA.SetSourceUserId:if(T=c&&c.getSrcChannelMediaInfo(),!T)throw new qe(Ce.UNEXPECTED_ERROR,"can not find source config");return B.clientRequest={command:"SetSourceUserId",uid:T.uid+""},B;case OA.SetDestChannel:if(Q=c&&c.getDestChannelMediaInfo(),!Q)throw new qe(Ce.UNEXPECTED_ERROR,"can not find dest config");return Q.forEach(D=>{u.push(D.channelName),h.push(D.uid+""),_.push(D.token||this.joinInfo.appId)}),B.clientRequest={command:"SetDestChannel",channelName:u,uid:h,token:_},B;case OA.StartPacketTransfer:return B.clientRequest={command:"StartPacketTransfer"},B;case OA.Reconnect:return B.clientRequest={command:"Reconnect"},B;case OA.StopPacketTransfer:return B.clientRequest={command:"StopPacketTransfer"},B;case OA.UpdateDestChannel:if(Q=c&&c.getDestChannelMediaInfo(),!Q)throw new qe(Ce.UNEXPECTED_ERROR,"can not find dest config");return Q.forEach(D=>{u.push(D.channelName),h.push(D.uid+""),_.push(D.token||this.joinInfo.appId)}),B.clientRequest={command:"UpdateDestChannel",channelName:u,uid:h,token:_},B;case OA.SetVideoProfile:B.clientRequest={command:"SetVideoProfile",width:this._resolution.width,height:this._resolution.height}}return B}}const tle={name:"ChannelMediaRelay",create:function(t){return new ele(t.joinInfo,t.clientId,t.websocketRetryConfig||So,t.httpRetryConfig||So,t.resolution)}};function Oie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Q9(t){for(var s=1;s{this.reconnectMode="retry",this.startPingPong()}),ae(this,"handleWebSocketMessage",_=>{if(!_.data)return;const B=JSON.parse(_.data);B.requestId?this.emit("@".concat(B.requestId,"-").concat(B.sid),B):(qt.workerEvent(this.spec.sid,{actionType:"status",serverCode:B.code,workerType:this.serviceMode===ku.TRANSCODE?1:2}),this.emit(Pu.PUBLISH_STREAM_STATUS,B))}),this.spec=c,this.token=s,this.serviceMode=h,this.websocket=new Ug("live-streaming",u),this.websocket.on(jr.CONNECTED,this.handleWebSocketOpen),this.websocket.on(jr.ON_MESSAGE,this.handleWebSocketMessage),this.websocket.on(jr.REQUEST_NEW_URLS,(_,B)=>{$o(this,Pu.REQUEST_NEW_ADDRESS).then(_).catch(B)}),this.websocket.on(jr.RECONNECTING,()=>{this.websocket.reconnectMode=this.reconnectMode})}init(s){return this.websocket.init(s)}async request(s,c,u,h){this.reqId+=1,s==="request"&&(this.commandReqId+=1);const _=this.commandReqId,B=this.reqId;if(!B||!this.websocket)throw new qe(Ce.UNEXPECTED_ERROR);const Q=Q9({command:s,sdkVersion:W1==="4.24.5"?"0.0.1":W1,seq:B,requestId:B,allocate:u,cname:this.spec.cname,appId:this.spec.appId,sid:this.spec.sid,uid:this.spec.uid.toString(),ts:Math.floor(Date.now()/1e3)},c);if(this.websocket.state==="closed")throw new qe(Ce.WS_DISCONNECT);const T=()=>new Ut((U,H)=>{this.websocket.once(jr.CLOSED,()=>H(new qe(Ce.WS_ABORT))),this.websocket.once(jr.CONNECTED,U)});this.websocket.state!=="connected"&&await T(),Q.clientRequest&&(Q.clientRequest.workerToken=this.token);const D=new Ut((U,H)=>{const $=()=>{H(new qe(Ce.WS_ABORT))};this.websocket.once(jr.RECONNECTING,$),this.websocket.once(jr.CLOSED,$),this.once("@".concat(B,"-").concat(this.spec.sid),Z=>{U(Z)})});h&&qt.workerEvent(this.spec.sid,Q9(Q9({},h),{},{requestId:_,actionType:"request",payload:JSON.stringify(c.clientRequest),serverCode:0,code:0}));const O=Date.now();this.websocket.sendMessage(Q);let P=null;try{P=await D}catch(U){if(this.websocket.state==="closed")throw U;return await T(),await this.request(s,c,u)}return h&&qt.workerEvent(this.spec.sid,Q9(Q9({},h),{},{requestId:_,actionType:"response",payload:JSON.stringify(P.serverResponse),serverCode:P.code,success:P.code===200,responseTime:Date.now()-O})),P.code!==200&&this.handleResponseError(P),P}tryNextAddress(){this.reconnectMode="tryNext",this.websocket.reconnect("tryNext")}close(){const s=W1==="4.24.5"?"0.0.1":W1;this.reqId+=1,this.websocket.state==="connected"?(this.websocket.sendMessage({command:"request",appId:this.spec.appId,cname:this.spec.cname,uid:this.spec.uid.toString(),sdkVersion:s,sid:this.spec.sid,seq:this.reqId,ts:Math.floor(Date.now()/1e3),requestId:this.reqId,clientRequest:{command:"DestroyWorker"}}),this.websocket.close(!1,!0)):this.websocket.close(!1),this.pingpongTimer&&(window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0)}handleResponseError(s){switch(s.code){case ds.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM:return void J.warning("live stream response already exists stream");case ds.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR:case ds.LIVE_STREAM_RESPONSE_BAD_STREAM:case ds.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR:return new qe(Ce.LIVE_STREAMING_INVALID_ARGUMENT,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST:if(s.serverResponse.command==="UnpublishStream")return;throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case ds.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED:return new qe(Ce.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{const c=new qe(Ce.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE);return this.emit(Pu.WARNING,c,s.serverResponse.url)}case ds.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN:{const c=new qe(Ce.LIVE_STREAMING_WARN_FREQUENT_REQUEST);return this.emit(Pu.WARNING,c,s.serverResponse.url)}case ds.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH:throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case ds.LIVE_STREAM_RESPONSE_NOT_SUPPORTED:return new qe(Ce.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM:{const c=new qe(Ce.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT);return this.emit(Pu.WARNING,c,s.serverResponse.url)}case ds.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR:return new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT:throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream resource limit",{retry:!0,changeAddress:!0});case ds.LIVE_STREAM_RESPONSE_WORKER_LOST:case ds.LIVE_STREAM_RESPONSE_WORKER_QUIT:if(s.serverResponse.command==="UnpublishStream")return;throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case ds.ERROR_FAIL_SEND_MESSAGE:if(s.serverResponse.command==="UnpublishStream")return;if(s.serverResponse.command==="UpdateTranscoding"||s.serverResponse.command==="ControlStream")return new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{code:s.code}).throw();throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case ds.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:return new qe(Ce.LIVE_STREAMING_CDN_ERROR,"",{code:s.code}).throw()}}startPingPong(){this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(()=>{this.websocket.state==="connected"&&this.request("ping",{}).catch(X)},6e3)}}function Lie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function jc(t){for(var s=1;s1&&arguments[1]!==void 0?arguments[1]:So,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:So;super(),ae(this,"onLiveStreamWarning",void 0),ae(this,"onLiveStreamError",void 0),ae(this,"spec",void 0),ae(this,"retryTimeout",1e4),ae(this,"connection",void 0),ae(this,"httpRetryConfig",void 0),ae(this,"wsRetryConfig",void 0),ae(this,"streamingTasks",new Map),ae(this,"isStartingStreamingTask",!1),ae(this,"taskMutex",new ra("live-streaming")),ae(this,"cancelToken",on.CancelToken.source()),ae(this,"transcodingConfig",void 0),ae(this,"uapResponse",void 0),ae(this,"lastTaskId",1),ae(this,"statusError",new Map),this.spec=s,this.httpRetryConfig=u,this.wsRetryConfig=c}async setTranscodingConfig(s){const c=jc(jc({},fN),s);c.videoCodecProfile!==66&&c.videoCodecProfile!==77&&c.videoCodecProfile!==100&&(J.debug("[".concat(this.spec.clientId,"] set transcoding config, fix video codec profile: ").concat(c.videoCodecProfile," -> 100")),c.videoCodecProfile=100),c.transcodingUsers||(c.transcodingUsers=c.userConfigs),c.transcodingUsers&&(c.transcodingUsers=c.transcodingUsers.map(B=>jc(jc(jc({},s7),B),{},{zOrder:B.zOrder?B.zOrder+1:1}))),function(B){Bo(B.width)||Vn(B.width,"config.width",0,1e4),Bo(B.height)||Vn(B.height,"config.height",0,1e4),Bo(B.videoBitrate)||Vn(B.videoBitrate,"config.videoBitrate",1,1e6),Bo(B.videoFrameRate)||Vn(B.videoFrameRate,"config.videoFrameRate"),Bo(B.lowLatency)||ll(B.lowLatency,"config.lowLatency"),Bo(B.audioSampleRate)||As(B.audioSampleRate,"config.audioSampleRate",[32e3,44100,48e3]),Bo(B.audioBitrate)||Vn(B.audioBitrate,"config.audioBitrate",1,128),Bo(B.audioChannels)||As(B.audioChannels,"config.audioChannels",[1,2,3,4,5]),Bo(B.videoGop)||Vn(B.videoGop,"config.videoGop"),Bo(B.videoCodecProfile)||As(B.videoCodecProfile,"config.videoCodecProfile",[66,77,100]),Bo(B.userCount)||Vn(B.userCount,"config.userCount",0,17),Bo(B.backgroundColor)||Vn(B.backgroundColor,"config.backgroundColor",0,16777215),Bo(B.userConfigExtraInfo)||Ra(B.userConfigExtraInfo,"config.userConfigExtraInfo",0,4096,!1),B.transcodingUsers&&!Bo(B.transcodingUsers)&&(j1(B.transcodingUsers,"config.transcodingUsers"),B.transcodingUsers.forEach((Q,T)=>{P2(Q.uid),Bo(Q.x)||Vn(Q.x,"transcodingUser[".concat(T,"].x"),0,1e4),Bo(Q.y)||Vn(Q.y,"transcodingUser[".concat(T,"].y"),0,1e4),Bo(Q.width)||Vn(Q.width,"transcodingUser[".concat(T,"].width"),0,1e4),Bo(Q.height)||Vn(Q.height,"transcodingUser[".concat(T,"].height"),0,1e4),Bo(Q.zOrder)||Vn(Q.zOrder-1,"transcodingUser[".concat(T,"].zOrder"),0,100),Bo(Q.alpha)||Vn(Q.alpha,"transcodingUser[".concat(T,"].alpha"),0,1,!1)})),Bo(B.watermark)||kg(B.watermark,"watermark"),Bo(B.backgroundImage)||kg(B.backgroundImage,"backgroundImage"),B.images&&!Bo(B.images)&&(j1(B.images,"config.images"),B.images.forEach((Q,T)=>{kg(Q,"images[".concat(T,"]"))}))}(c);const u=[];c.images&&u.push(...c.images.map(B=>jc(jc(jc({},U2),B),{},{zOrder:255}))),c.backgroundImage&&(u.push(jc(jc(jc({},U2),c.backgroundImage),{},{zOrder:0})),delete c.backgroundImage),c.watermark&&(u.push(jc(jc(jc({},U2),c.watermark),{},{zOrder:255})),delete c.watermark),c.images=u,c.transcodingUsers&&(c.userConfigs=c.transcodingUsers.map(B=>jc({},B)),c.userCount=c.transcodingUsers.length,delete c.transcodingUsers);const h=(c.userConfigs||[]).map(B=>typeof B.uid=="number"?Ut.resolve(B.uid):ez(B.uid,this.spec,this.cancelToken.token,this.httpRetryConfig));if((await Ut.all(h)).forEach((B,Q)=>{c.userConfigs&&c.userConfigs[Q]&&(c.userConfigs[Q].uid=B)}),this.transcodingConfig=c,this.connection)try{var _;const B=await this.connection.request("request",{clientRequest:{command:"UpdateTranscoding",transcodingConfig:this.transcodingConfig}},!1,{command:"UpdateTranscoding",workerType:1,requestByUser:!0,tid:Array.from(BA(_=this.streamingTasks).call(_)).map(Q=>Q.taskId).join("#")});J.debug("[".concat(this.spec.clientId,"] update live transcoding config success, code: ").concat(B.code,", config:"),JSON.stringify(this.transcodingConfig))}catch(B){if(!B.data||!B.data.retry)throw B;B.data.changeAddress&&this.connection.tryNextAddress(),this.streamingTasks.forEach(Q=>{J.warning("[".concat(this.spec.clientId,"] live streaming receive error"),B.toString(),"try to republish",Q.url),this.startLiveStreamingTask(Q.url,Q.mode,B).then(()=>{J.debug("[".concat(this.spec.clientId,"] live streaming republish ").concat(Q.url," success"))}).catch(T=>{J.error("[".concat(this.spec.clientId,"] live streaming republish failed"),Q.url,T.toString()),this.onLiveStreamError&&this.onLiveStreamError(Q.url,T)})})}}async startLiveStreamingTask(s,c,u){if(!this.transcodingConfig&&c===ku.TRANSCODE)throw new qe(Ce.INVALID_OPERATION,"[LiveStreaming] no transcoding config found, can not start transcoding streaming task");const h={command:"PublishStream",ts:Date.now(),url:s,uid:this.spec.uid.toString(),autoDestroyTime:100,acceptImageTimeout:!0};J.debug("[".concat(this.spec.clientId,"] start live streaming ").concat(s,", mode: ").concat(c));const _=await this.taskMutex.lock();if(!this.connection&&u)return void _();if(this.streamingTasks.get(s)&&!u)return _(),new qe(Ce.LIVE_STREAMING_TASK_CONFLICT).throw();try{this.connection||(this.connection=await this.connect(c))}catch(Q){throw _(),Q}switch(c){case ku.TRANSCODE:h.transcodingConfig=jc({},this.transcodingConfig)}this.uapResponse&&this.uapResponse.vid&&(h.vid=this.uapResponse.vid),this.isStartingStreamingTask=!0;const B=this.lastTaskId++;try{const Q=new Ut((D,O)=>{so(this.retryTimeout).then(()=>{if(u)return O(u);const P=this.statusError.get(s);return P?(this.statusError.delete(s),O(P)):void 0})}),T=await Ut.race([this.connection.request("request",{clientRequest:h},!0,{url:s,command:"PublishStream",workerType:c===ku.TRANSCODE?1:2,requestByUser:!u,tid:B.toString()}),Q]);this.isStartingStreamingTask=!1,J.debug("[".concat(this.spec.clientId,"] live streaming started, code: ").concat(T.code)),this.streamingTasks.set(s,{clientRequest:h,mode:c,url:s,taskId:B}),_()}catch(Q){if(_(),this.isStartingStreamingTask=!1,!Q.data||!Q.data.retry||u)throw Q;return Q.data.changeAddress?(this.connection.tryNextAddress(),await this.startLiveStreamingTask(s,c,Q)):await this.startLiveStreamingTask(s,c,Q)}}stopLiveStreamingTask(s){return new Ut((c,u)=>{const h=this.streamingTasks.get(s);if(!h||!this.connection)return new qe(Ce.UNEXPECTED_ERROR,"can not find streaming task to stop").throw();const _=h.mode;h.abortTask=()=>{J.debug("[".concat(this.spec.clientId,"] stop live streaming success(worker exception)")),this.streamingTasks.delete(s),c()},this.connection.request("request",{clientRequest:{command:"UnpublishStream",url:h.url}},!1,{url:s,command:"UnPublishStream",workerType:_===ku.TRANSCODE?1:2,requestByUser:!0,tid:(this.lastTaskId++).toString()}).then(B=>{J.debug("[".concat(this.spec.clientId,"] stop live streaming success, code: ").concat(B.code)),this.streamingTasks.delete(s),this.streamingTasks.size===0&&(this.connection&&this.connection.close(),this.connection=void 0),c()}).catch(u)})}resetAllTask(){var s;const c=Array.from(BA(s=this.streamingTasks).call(s));this.terminate();for(const u of c)this.startLiveStreamingTask(u.url,u.mode).catch(h=>{this.onLiveStreamError&&this.onLiveStreamError(u.url,h)})}terminate(){this.cancelToken&&this.cancelToken.cancel(),this.streamingTasks=new Map,this.isStartingStreamingTask=!1,this.statusError=new Map,this.cancelToken=on.CancelToken.source(),this.uapResponse=void 0,this.connection&&this.connection.close(),this.connection=void 0}async connect(s){if(this.connection)throw new qe(Ce.UNEXPECTED_ERROR,"live streaming connection has already connected");const c=await $o(this,xy.REQUEST_WORKER_MANAGER_LIST,s);return this.uapResponse=c,this.connection=new rle(c.workerToken,this.spec,this.wsRetryConfig,s),this.connection.on(Pu.WARNING,(u,h)=>this.onLiveStreamWarning&&this.onLiveStreamWarning(h,u)),this.connection.on(Pu.PUBLISH_STREAM_STATUS,u=>this.handlePublishStreamServer(u)),this.connection.on(Pu.REQUEST_NEW_ADDRESS,(u,h)=>{if(!this.connection)return h(new qe(Ce.UNEXPECTED_ERROR,"can not get new live streaming address list"));$o(this,xy.REQUEST_WORKER_MANAGER_LIST,s).then(_=>{this.uapResponse=_,u(_.addressList)}).catch(h)}),await this.connection.init(c.addressList),this.connection}handlePublishStreamServer(s){const c=s.serverStatus&&s.serverStatus.url||"empty_url",u=this.streamingTasks.get(c),h=s.reason;switch(s.code){case ds.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:{const B=new qe(Ce.LIVE_STREAMING_CDN_ERROR,"",{code:s.code});if(u)return J.error(B.toString()),this.onLiveStreamError&&this.onLiveStreamError(c,B);if(!this.isStartingStreamingTask)return;this.statusError.set(c,B)}case ds.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{const B=new qe(Ce.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE,h);return this.onLiveStreamWarning&&this.onLiveStreamWarning(c,B)}case ds.LIVE_STREAM_RESPONSE_WORKER_LOST:case ds.LIVE_STREAM_RESPONSE_WORKER_QUIT:{var _;if(!this.connection)return;this.connection.tryNextAddress();const B=Array.from(BA(_=this.streamingTasks).call(_));for(const Q of B)Q.abortTask?Q.abortTask():(J.warning("[".concat(this.spec.clientId,"] publish stream status code"),s.code,"try to republish",Q.url),this.startLiveStreamingTask(Q.url,Q.mode,new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:s.code})).then(()=>{J.debug("[".concat(this.spec.clientId,"] republish live stream success"),Q.url)}).catch(T=>{J.error(T.toString()),this.onLiveStreamError&&this.onLiveStreamError(Q.url,T)}));return}}}hasUrl(s){return this.streamingTasks.has(s)}}const nle={name:"LiveStreaming",create:function(t){return new ile(t.joinInfo,t.websocketRetryConfig||So,t.httpRetryConfig||So)}};function ole(t){let s=Pie();return function(c,u){let h=c.appId;h!==void 0&&(Yn(u,10),Wh(u,h));let _=c.cid;_!==void 0&&(Yn(u,16),Yn(u,_));let B=c.cname;B!==void 0&&(Yn(u,26),Wh(u,B));let Q=c.deviceId;Q!==void 0&&(Yn(u,34),Wh(u,Q));let T=c.elapse;T!==void 0&&(Yn(u,40),Mp(u,T));let D=c.fileSize;D!==void 0&&(Yn(u,48),Mp(u,dT(D)));let O=c.height;O!==void 0&&(Yn(u,56),Mp(u,dT(O)));let P=c.jpg;P!==void 0&&(Yn(u,66),Yn(u,P.length),function(Ki,it){let mt=uT(Ki,it.length);Ki.bytes.set(it,mt)}(u,P));let U=c.networkType;U!==void 0&&(Yn(u,72),Mp(u,dT(U)));let H=c.osType;H!==void 0&&(Yn(u,80),Mp(u,dT(H)));let $=c.requestId;$!==void 0&&(Yn(u,90),Wh(u,$));let Z=c.sdkVersion;Z!==void 0&&(Yn(u,98),Wh(u,Z));let te=c.sequence;te!==void 0&&(Yn(u,104),Mp(u,dT(te)));let se=c.sid;se!==void 0&&(Yn(u,114),Wh(u,se));let ge=c.timestamp;ge!==void 0&&(Yn(u,120),Mp(u,ge));let me=c.uid;me!==void 0&&(Yn(u,128),Yn(u,me));let Qe=c.vid;Qe!==void 0&&(Yn(u,136),Yn(u,Qe));let Oe=c.width;Oe!==void 0&&(Yn(u,144),Mp(u,dT(Oe)));let we=c.service;we!==void 0&&(Yn(u,152),Yn(u,we));let Ne=c.callbackData;Ne!==void 0&&(Yn(u,162),Wh(u,Ne));let et=c.jpgEncryption;et!==void 0&&(Yn(u,168),Yn(u,et));let st=c.requestType;st!==void 0&&(Yn(u,176),Yn(u,st));let Xt=c.scorePorn;Xt!==void 0&&(Yn(u,185),Dz(u,Xt));let lr=c.scoreSexy;lr!==void 0&&(Yn(u,193),Dz(u,lr));let ft=c.scoreNeutral;ft!==void 0&&(Yn(u,201),Dz(u,ft));let Ir=c.scene;Ir!==void 0&&(Yn(u,208),Yn(u,Ir));let ui=c.ossFilePrefix;ui!==void 0&&(Yn(u,218),Wh(u,ui));let Nr=c.serviceVendor;if(Nr!==void 0)for(let Ki of Nr){Yn(u,226);let it=Pie();Ale(Ki,it),Yn(u,it.limit),ule(u,it),dle(it)}}(t,s),function(c){let u=c.bytes,h=c.limit;return u.length===h?u:u.subarray(0,h)}(s)}function sle(t){return function(c){let u={};e:for(;!Uie(c);){let h=Xh(c);switch(h>>>3){case 0:break e;case 1:u.code=Xh(c);break;case 2:u.msg=xie(c,Xh(c));break;case 3:{let _=cle(c);u.data=ale(c),c.limit=_;break}default:Mie(c,7&h)}}return u}({bytes:s=t,offset:0,limit:s.length});var s}function ale(t){let s={};e:for(;!Uie(t);){let c=Xh(t);switch(c>>>3){case 0:break e;case 1:s.requestId=xie(t,Xh(t));break;case 2:s.requestType=Xh(t)>>>0;break;case 3:s.scorePorn=vz(t);break;case 4:s.scoreSexy=vz(t);break;case 5:s.scoreNeutral=vz(t);break;case 6:s.requestScene=Xh(t)>>>0;break;case 7:s.scene=Xh(t)>>>0;break;default:Mie(t,7&c)}}return s}function Ale(t,s){let c=t.service;c!==void 0&&(Yn(s,8),Yn(s,c));let u=t.vendor;u!==void 0&&(Yn(s,16),Yn(s,u));let h=t.token;h!==void 0&&(Yn(s,26),Wh(s,h));let _=t.callbackUrl;_!==void 0&&(Yn(s,34),Wh(s,_))}function cle(t){let s=Xh(t),c=t.limit;return t.limit=t.offset+s,c}function Mie(t,s){switch(s){case 0:for(;128&Fie(t););break;case 2:Tz(t,Xh(t));break;case 5:Tz(t,4);break;case 1:Tz(t,8);break;default:throw new Error("Unimplemented type: "+s)}}let lle=new Float32Array(1);new Uint8Array(lle.buffer);let Qz=new Float64Array(1),Jc=new Uint8Array(Qz.buffer);function dT(t){return{low:t|=0,high:t>>31,unsigned:t>=0}}let kie=[];function Pie(){const t=kie.pop();return t?(t.offset=t.limit=0,t):{bytes:new Uint8Array(64),offset:0,limit:0}}function dle(t){kie.push(t)}function Tz(t,s){if(t.offset+s>t.limit)throw new Error("Skip past limit");t.offset+=s}function Uie(t){return t.offset>=t.limit}function uT(t,s){let c=t.bytes,u=t.offset,h=t.limit,_=u+s;if(_>c.length){let B=new Uint8Array(2*_);B.set(c),t.bytes=B}return t.offset=_,_>h&&(t.limit=_),u}function wz(t,s){let c=t.offset;if(c+s>t.limit)throw new Error("Read past limit");return t.offset+=s,c}function xie(t,s){let c=wz(t,s),u=String.fromCharCode,h=t.bytes,_="�",B="";for(let Q=0;Q=s?B+=_:(T=h[Q+c+1],(192&T)!=128?B+=_:(P=(31&U)<<6|63&T,P<128?B+=_:(B+=u(P),Q++))):(240&U)==224?Q+2>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],(49344&(T|D<<8))!=32896?B+=_:(P=(15&U)<<12|(63&T)<<6|63&D,P<2048||P>=55296&&P<=57343?B+=_:(B+=u(P),Q+=2))):(248&U)==240?Q+3>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],O=h[Q+c+3],(12632256&(T|D<<8|O<<16))!=8421504?B+=_:(P=(7&U)<<18|(63&T)<<12|(63&D)<<6|63&O,P<65536||P>1114111?B+=_:(P-=65536,B+=u(55296+(P>>10),56320+(1023&P)),Q+=3))):B+=_:B+=u(U)}return B}function Wh(t,s){let c=s.length,u=0;for(let B=0;B=55296&&Q<=56319&&B+1=55296&&Q<=56319&&B+1>6&31|192:(Q<65536?_[h++]=Q>>12&15|224:(_[h++]=Q>>18&7|240,_[h++]=Q>>12&63|128),_[h++]=Q>>6&63|128),_[h++]=63&Q|128)}}function ule(t,s){let c=uT(t,s.limit),u=t.bytes,h=s.bytes;for(let _=0,B=s.limit;_>>=0;s>=128;)Gie(t,127&s|128),s>>>=7;Gie(t,s)}function Mp(t,s){let c=s.low>>>0,u=(s.low>>>28|s.high<<4)>>>0,h=s.high>>>24,_=h===0?u===0?c<16384?c<128?1:2:c<1<<21?3:4:u<16384?u<128?5:6:u<1<<21?7:8:h<128?9:10,B=uT(t,_),Q=t.bytes;switch(_){case 10:Q[B+9]=h>>>7&1;case 9:Q[B+8]=_!==9?128|h:127&h;case 8:Q[B+7]=_!==8?u>>>21|128:u>>>21&127;case 7:Q[B+6]=_!==7?u>>>14|128:u>>>14&127;case 6:Q[B+5]=_!==6?u>>>7|128:u>>>7&127;case 5:Q[B+4]=_!==5?128|u:127&u;case 4:Q[B+3]=_!==4?c>>>21|128:c>>>21&127;case 3:Q[B+2]=_!==3?c>>>14|128:c>>>14&127;case 2:Q[B+1]=_!==2?c>>>7|128:c>>>7&127;case 1:Q[B]=_!==1?128|c:127&c}}function Vie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}const gle=new Map([["moderation",1],["supervise",2]]);class Ele extends Cn{get connectionState(){return this._connectionState}set connectionState(s){if(this._connectionState===s)return;const c=this._connectionState;this._connectionState=s,this.emit(fa.CONNECTION_STATE_CHANGE,c,s)}get inspectType(){return this._inspectType}set inspectType(s){var c;this._inspectMode=VA(c=s.map(u=>gle.get(u)||0)).call(c,(u,h)=>u+h),this._inspectType=s}get quality(){return this._quality}set quality(s){this._quality=s>1?1:s<.1?.1:s,this.qualityTimer&&(window.clearTimeout(this.qualityTimer),this.qualityTimer=null),this._quality>=1||(this.qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this.qualityRatio},6e4))}constructor(s){super(),ae(this,"name","AgoraRTCVideoContentInspect"),ae(this,"_connectionState",Oo.CONNECTING),ae(this,"_innerConnectionState",void 0),ae(this,"sequence",0),ae(this,"inspectStartTime",void 0),ae(this,"workerManagerConnection",void 0),ae(this,"workerConnection",void 0),ae(this,"workerMessageLengthLimit",void 0),ae(this,"inspectIntervalMinimum",void 0),ae(this,"qualityRatio",void 0),ae(this,"_connectInfo",void 0),ae(this,"_cancelTokenSource",on.CancelToken.source()),ae(this,"_retryConfig",void 0),ae(this,"wmSequence",0),ae(this,"inspectInterval",void 0),ae(this,"inspectTimer",null),ae(this,"ossFilePrefix",void 0),ae(this,"extraInfo",void 0),ae(this,"_inspectType",void 0),ae(this,"_inspectMode",void 0),ae(this,"_quality",1),ae(this,"qualityTimer",null),ae(this,"_inspectId",void 0),ae(this,"_needWorkUrlOnly",!1),ae(this,"inspectImage",()=>{if(this.connectionState!==Oo.CONNECTED)throw new qe(Ce.OPERATION_ABORTED,"content inspect service connection status is ".concat(this.connectionState));this.inspectTimer&&(window.clearInterval(this.inspectTimer),this.inspectTimer=null),this.inspectTimer=window.setInterval(()=>{this.connectionState===Oo.CONNECTED?this.requestToInspectImage():J.debug("[".concat(this._inspectId,"] Inspect State is not connected , "),this.connectionState)},this.inspectInterval{this._innerConnectionState=c,J.debug("[".concat(this._inspectId,"] Inspect operation :").concat(Fc[c]," ").concat(u||""))}),this.handleWorkerManagerEvents(),this.workerConnection=new Ug("worker-"+this._inspectId,So),this.handleWorkerEvents()}async init(s,c){this.emit(fa.STATE_CHANGE,Fc.CONNECT_AP),this._connectInfo=s;const u=this._cancelTokenSource.token;return this._retryConfig=c,new Ut((h,_)=>{this.on(fa.CONNECTION_STATE_CHANGE,(B,Q)=>{Q===Oo.CONNECTED&&h()}),this.requestAP(s,u,c).then(B=>{this.connectWorkerManager(B)}).catch(B=>{_(B)})})}async requestAP(s,c,u){const h=de("WEBCS_DOMAIN").map(Q=>"https://".concat(Q,"/api/v1")),_=await function(Q,T,D,O){let P=T.appId,U=T.areaCode,H=T.cname,$=T.sid,Z=T.token,te=T.uid;oT++;const se="image_moderation_api",ge={service_name:se,json_body:JSON.stringify({appId:P,areaCode:U,cname:H,command:"allocateEdge",requestId:oT,seq:oT,sid:$,token:Z,ts:Date.now(),uid:te+""})};let me,Qe,Oe=Q[0];return dl(async()=>{me=Date.now();const we=await ng(Oe,{data:ge,cancelToken:D,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(Qe=Date.now()-me,we.code!==0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"image inspect ap error, code"+we.code,{retry:!0,responseTime:Qe});throw J.error(ft.toString()),ft}const Ne=JSON.parse(we.json_body);if(Ne.code!==200){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"image inspect ap error, code: ".concat(Ne.code,", reason: ").concat(Ne.reason),{code:Ne.code,responseTime:Qe});throw J.error(ft.toString()),ft}if(!Ne.servers||!Array.isArray(Ne.servers)||Ne.servers.length===0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"image inspect ap empty server",{code:Ne.code,responseTime:Qe});throw J.error(ft.toString()),ft}const et=de("VIDEO_INSPECT_WORKER_MANAGER_WSS");if(et)return{addressList:[et],workerToken:Ne.workerToken,vid:Ne.vid,responseTime:Qe};const st=de("VIDEO_INSPECT_WORKER_MANAGER_HOST"),Xt=de("VIDEO_INSPECT_WORKER_MANAGER_PORT");return{addressList:Ne.servers.map(ft=>{let Ir=ft.address,ui=ft.wss;if(Ir&&ui)return"wss://".concat(Ir.replace(/\./g,"-"),".").concat(st,":").concat(Xt||ui)}).filter(ft=>!!ft),workerToken:Ne.workerToken,vid:Ne.vid,responseTime:Qe}},(we,Ne)=>(qt.apworkerEvent($,{success:!0,sc:200,serviceName:se,responseDetail:JSON.stringify(we.addressList),firstSuccess:Ne===0,responseTime:Qe,serverIp:Q[Ne%Q.length]}),!1),(we,Ne)=>(qt.apworkerEvent($,{success:!1,sc:we.data&&we.data.code||200,serviceName:se,responseTime:Qe,serverIp:Q[Ne%Q.length]}),!!(we.code!==Ce.OPERATION_ABORTED&&we.code!==Ce.UNEXPECTED_RESPONSE||we.data&&we.data.retry)&&(Oe=Q[(Ne+1)%Q.length],!0)),O)}(h,s,c,u);this.emit(fa.STATE_CHANGE,Fc.AP_CONNECTED);const B=_.addressList;return this.wmSequence++,B}async connectWorkerManager(s){let c=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._needWorkUrlOnly=c,this.emit(fa.STATE_CHANGE,Fc.CONNECT_WORKER_MANAGER),await this.workerManagerConnection.init(s,1e4)}async connectWorker(s){await this.workerConnection.init([s])}handleWorkerManagerEvents(){this.workerManagerConnection.on(jr.CONNECTED,async()=>{this.emit(fa.STATE_CHANGE,Fc.WORKER_MANAGER_CONNECTED,this.workerManagerConnection.url),this.workerManagerConnection.sendMessage({appId:this._connectInfo.appId,cname:this._connectInfo.cname,uid:this._connectInfo.uid+"",sdkVersion:"4.24.5",sid:this._connectInfo.sid,seq:this.wmSequence,ts:Number(Date.now()),requestId:Math.floor(1e12*Math.random()),allocate:!0,clientRequest:{command:"join"}},!0)}),this.workerManagerConnection.on(jr.CLOSED,()=>{this._innerConnectionState{this._innerConnectionState{this._innerConnectionState{this.emit(fa.STATE_CHANGE,Fc.GET_WORKER_MANAGER_RESPONSE);const c=this.workerManagerConnection.url;this.workerManagerConnection.close();const u=JSON.parse(s.data);if(u.code!==200)throw J.error("[".concat(this._inspectId,"] Unexpected code ").concat(u.code," from worker manager")),new qe(Ce.UNEXPECTED_RESPONSE,"response code of worker is unexpected",u);if(!(u.serverResponse&&u.serverResponse.portWss&&c))throw J.error("[".concat(this._inspectId,"] Unexpected content from worker manager : ").concat(JSON.stringify(u))),new qe(Ce.UNEXPECTED_RESPONSE,"response content of worker is unexpected",u);{const h=de("VIDEO_INSPECT_WORKER_PORT")||u.serverResponse.portWss,_=c.replace(/:\d+\/?$/,":".concat(h));this.emit(fa.STATE_CHANGE,Fc.CONNECT_WORKER,_),this._needWorkUrlOnly?this.emit(fa.REQUEST_NEW_WORKER_URL,_):await this.connectWorker(_)}}),this.workerManagerConnection.on(jr.WILL_RECONNECT,(s,c,u)=>{u(s)}),this.workerManagerConnection.on(jr.REQUEST_NEW_URLS,(s,c)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(s).catch(c)})}handleWorkerEvents(){this.workerConnection.on(jr.CONNECTED,async()=>{this.emit(fa.STATE_CHANGE,Fc.WORKER_CONNECTED,this.workerConnection.url),this.connectionState=Oo.CONNECTED}),this.workerConnection.on(jr.ON_MESSAGE,async s=>{if(s.data instanceof ArrayBuffer){const u=sle(new Uint8Array(s.data));if(de("SHOW_VIDEO_INSPECT_WORKER_MESSAGE")&&J.debug("[".concat(this._inspectId,"] Response message for worker of inspect content "),JSON.stringify(u)),u.code===200){if(Array.isArray(this.inspectType)&&this.inspectType.length===1&&this.inspectType[0]==="supervise")return void this.emit(fa.INSPECT_RESULT,void 0,void 0);if(u.data&&u.data.scorePorn&&u.data.scoreSexy&&u.data.scoreNeutral){var c;const h={porn:u.data.scorePorn,sexy:u.data.scoreSexy,neutral:u.data.scoreNeutral},_=VA(c=Object.keys(h)).call(c,(Q,T)=>h[Q]>h[T]?Q:T,"porn"),B=Object.keys(h).find(Q=>Q===_);this.emit(fa.INSPECT_RESULT,B)}else this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.UNEXPECTED_RESPONSE,u.code+"","There is an unexpected data on message"))}else this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.UNEXPECTED_RESPONSE,u.code+"",u.msg))}else J.error("[".concat(this._inspectId,"] Unexpected message type from worker")),this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.UNEXPECTED_RESPONSE,"invalid worker message type"))}),this.workerConnection.on(jr.CLOSED,()=>{this.connectionState=Oo.CLOSED}),this.workerConnection.on(jr.FAILED,()=>{this.connectionState=Oo.CLOSED}),this.workerConnection.on(jr.RECONNECTING,()=>{this.connectionState=this.connectionState===Oo.CONNECTED?Oo.RECONNECTING:Oo.CONNECTING}),this.workerConnection.on(jr.WILL_RECONNECT,(s,c,u)=>{s==="recover"&&u(s),u("tryNext")}),this.workerConnection.on(jr.REQUEST_NEW_URLS,(s,c)=>{this.workerManagerConnection.close(),this.once(fa.REQUEST_NEW_WORKER_URL,u=>{s([u])}),this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(u=>{this.connectWorkerManager(u,!0)}).catch(u=>{c(u)})})}async requestToInspectImage(){this.sequence++;const s=q1(this,fa.CLIENT_LOCAL_VIDEO_TRACK),c={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(s){if(!s.isPlaying)return void this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.INVALID_OPERATION,"Only the track being played can be inspected"));const u=await this.generateRequestData(s,c);this.workerConnection.sendMessage(u,!0,!0)}else this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.INVALID_OPERATION,"Only the track being published can be inspected"))}async generateRequestData(s,c){let u=c.appId,h=c.cname,_=c.cid,B=c.vid,Q=c.sid,T=c.uid;const D=Date.now(),O=await s.getCurrentFrameImage("image/jpeg",this.quality),P=await fU(O,u,h),U=this.sequence+"-"+_+"-"+T+"-"+D+"-"+un(12,""),H={appId:u,cid:_,cname:h,deviceId:"",elapse:($=Number(D-this.inspectStartTime),{low:$|=0,high:$>>31,unsigned:$>=0}),fileSize:P.byteLength,jpgEncryption:2,height:O.height,width:O.width,jpg:P,networkType:6,osType:7,requestId:U,sdkVersion:"4.24.5",sequence:this.sequence,sid:Q,timestamp:Mre(D),uid:T,vid:B,service:this._inspectMode,callbackData:this.extraInfo,ossFilePrefix:this.ossFilePrefix};var $;this.extraInfo===void 0&&delete H.callbackData,this.ossFilePrefix===void 0&&delete H.ossFilePrefix;const Z=ole(H);if(Z.byteLength{var _;if(!Et(_=["supervise","moderation"]).call(_,h))throw new qe(Ce.INVALID_PARAMS,"".concat(h," is not a valid inspect type."))}),c.inspectType=u}if(c&&c.extraInfo&&c.extraInfo.length>1024)throw new qe(Ce.INVALID_PARAMS,"inspectConfig.extraInfo length cannot exceed 1024 bytes")}(s),new Ele(s)}};var Kie=f(Zn.Object.getOwnPropertySymbols),Ile=In,Cle=wT.indexOf,ple=BI,bz=Tt([].indexOf),Hie=!!bz&&1/bz([1],1,-0)<0;Ile({target:"Array",proto:!0,forced:Hie||!ple("indexOf")},{indexOf:function(t){var s=arguments.length>1?arguments[1]:void 0;return Hie?bz(this,t,s)||0:Cle(this,t,s)}});var fle=E1("Array","indexOf"),_le=W,mle=fle,Nz=Array.prototype,Ble=function(t){var s=t.indexOf;return t===Nz||_le(Nz,t)&&s===Nz.indexOf?mle:s},Yie=f(Ble);function Sle(t,s){if(t==null)return{};var c,u,h=function(B,Q){if(B==null)return{};var T,D,O={},P=CN(B);for(D=0;D=0||(O[T]=B[T]);return O}(t,s);if(Kie){var _=Kie(t);for(u=0;u<_.length;u++)c=_[u],Yie(s).call(s,c)>=0||Object.prototype.propertyIsEnumerable.call(t,c)&&(h[c]=t[c])}return h}let jie=class{get localCapabilities(){return go(this._localCapabilities)}get rtpCapabilities(){return go(this._rtpCapabilities)}get candidates(){return go(this._candidates)}get iceParameters(){return go(this._iceParameters)}get dtlsParameters(){return go(this._dtlsParameters)}constructor(t){ae(this,"sessionDesc",void 0),ae(this,"_localCapabilities",void 0),ae(this,"_rtpCapabilities",void 0),ae(this,"_candidates",void 0),ae(this,"_iceParameters",void 0),ae(this,"_dtlsParameters",void 0),ae(this,"setup",void 0),ae(this,"currentMidIndex",void 0),ae(this,"cname","o/i14u9pJrxRKAsu"),ae(this,"firefoxSsrcMidMap",new Map);const s=t=go(t),c=s.remoteIceParameters,u=s.remoteDtlsParameters,h=s.candidates,_=s.remoteRTPCapabilities,B=s.localCapabilities,Q=s.direction,T=s.setup,D=s.videoCodec,O=s.audioCodec;let P;this.setup=T,P=Q===EA.RECEIVE_ONLY?wa(`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 +a=msid-semantic: WMS +a=extmap-allow-mixed +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=sendonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +`):wa(`v=0 +o=- 0 0 IN IP4 127.0.0.1 +s=AgoraGateway +t=0 0 +a=group:BUNDLE 0 1 +a=msid-semantic: WMS +a=extmap-allow-mixed +m=video 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=recvonly +a=rtcp-mux +a=rtcp-rsize +a=mid:0 +m=audio 9 UDP/TLS/RTP/SAVPF 0 +c=IN IP4 127.0.0.1 +a=rtcp:9 IN IP4 0.0.0.0 +a=recvonly +a=rtcp-mux +a=rtcp-rsize +a=mid:1 +`),this._rtpCapabilities=_,this._candidates=h,this._iceParameters=c,this._dtlsParameters=u,this._localCapabilities=B;const U=Q===EA.RECEIVE_ONLY?this.rtpCapabilities.send:this.rtpCapabilities.recv,H=Q===EA.RECEIVE_ONLY?this._localCapabilities.recv:this._localCapabilities.send,$=Q===EA.RECEIVE_ONLY?_.send.videoCodecs:p9(rr.VIDEO,U,H,D),Z=Q===EA.RECEIVE_ONLY?_.send.audioCodecs:p9(rr.AUDIO,U,H,O);for(const te of P.mediaDescriptions)te.attributes.iceUfrag=c.iceUfrag,te.attributes.icePwd=c.icePwd,te.attributes.fingerprints=u.fingerprints,te.attributes.candidates=h,te.attributes.setup=this.setup,te.media.mediaType==="application"&&(te.attributes.sctpPort="5000"),te.media.mediaType==="video"&&(te.media.fmts=$.map(se=>se.payloadType.toString(10)),te.attributes.payloads=$,te.attributes.extmaps=U.videoExtensions),te.media.mediaType==="audio"&&(te.media.fmts=Z.map(se=>se.payloadType.toString(10)),te.attributes.payloads=Z,te.attributes.extmaps=U.audioExtensions,nT(te));this.sessionDesc=P,this.currentMidIndex=P.mediaDescriptions.length-1}toString(){return X1(this.sessionDesc)}hasMid(t){return Array.isArray(t)?t.every(s=>this.hasMid(s)):this.sessionDesc.mediaDescriptions.some(s=>s.attributes.mid===t)}send(t,s,c,u,h){c=c.replace(/ /g,"-");const _=I9(s,this.cname,de("SYNC_GROUP")?c:void 0),B=_.ssrcs,Q=_.ssrcGroups,T=this.findPreloadMediaDesc(B);if(T){if(Ln()&&this.firefoxSsrcMidMap.set(B[0].ssrcId,T.attributes.mid),h&&(h.twcc||h.remb)){const D=this.sessionDesc.mediaDescriptions.indexOf(T);return this.sessionDesc.mediaDescriptions[D]=this.mungSendMediaDesc(T,h),{mid:T.attributes.mid,needExchangeSDP:!0}}return{mid:T.attributes.mid,needExchangeSDP:!1}}{const D=this.findAvailableMediaIndex(t,B,u);let O;return D===-1?(O=this.createOrRecycleSendMedia(t,B,Q,"sendonly",u,h),this.updateBundleMids()):(O=go(this.sessionDesc.mediaDescriptions[D]),O.attributes.direction="sendonly",O.attributes.ssrcs=B,O.attributes.ssrcGroups=Q,this.sessionDesc.mediaDescriptions[D]=this.mungSendMediaDesc(O,h)),Ln()&&this.firefoxSsrcMidMap.set(B[0].ssrcId,O.attributes.mid),{needExchangeSDP:!0,mid:O.attributes.mid}}}stopSending(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>c.attributes.mid&&t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");s.forEach(c=>{c.attributes.ssrcs=[]}),this.updateBundleMids()}receive(t,s,c){const u=[];return t.forEach(h=>{const _=h._mediaStreamTrack.kind,B=this.findAvailableRecvMediaIndex(_);let Q,T=!1;B===-1?(T=!0,Q=this.createOrRecycleRecvMedia(h,[],"recvonly",s,c),this.updateBundleMids()):(Q=go(this.sessionDesc.mediaDescriptions[B]),Q.attributes.direction="recvonly"),u.push({mid:Q.attributes.mid,needCreateTransceiver:T})}),u}stopReceiving(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");s.forEach(c=>{c.media.port="0",c.attributes.direction="inactive"}),this.updateBundleMids()}addRemoteCandidate(t){const s=new RTCIceCandidate(t),c=s.foundation,u=s.protocol,h=s.address,_=s.port,B=s.type,Q=s.relatedAddress,T=s.relatedPort,D=s.priority,O={foundation:c??"",componentId:"1",transport:u??"",priority:D?D+"":"",connectionAddress:h??"",port:_?_+"":"",type:B?B+"":"",relAddr:Q??"",relPort:T?T+"":"",extension:{}};this.candidates.some(P=>P.priority===O.priority&&P.connectionAddress===O.connectionAddress&&P.port===O.port)||(this._candidates.push(O),this.sessionDesc.mediaDescriptions.forEach(P=>{P.attributes.candidates=this.candidates}))}clearRemoteCandidate(){this._candidates=[],this.sessionDesc.mediaDescriptions[0].attributes.candidates=this._candidates}createOrRecycleRecvMedia(t,s,c,u,h){const _=t._mediaStreamTrack.kind,B=this.rtpCapabilities.recv,Q=p9(_,B,this.localCapabilities.send,_===rr.AUDIO?h:u),T=_===rr.VIDEO?B.videoExtensions:B.audioExtensions,D="".concat(++this.currentMidIndex);let O={media:{mediaType:_,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:Q.map(U=>U.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:T,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:Q,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:c,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(D)}};O=this.mungRecvMediaDsec(O,t);const P=this.findFirstClosedMedia(_);if(P){const U=this.sessionDesc.mediaDescriptions.indexOf(P);this.sessionDesc.mediaDescriptions[U]=O}else this.sessionDesc.mediaDescriptions.push(O);return O}muteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="inactive"})}unmuteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="recvonly"})}findAvailableMediaIndex(t,s,c){return this.sessionDesc.mediaDescriptions.findIndex(u=>{const h=u.media.mediaType===t&&u.media.port!=="0"&&(u.attributes.direction==="sendonly"||u.attributes.direction==="sendrecv")&&u.attributes.ssrcs.length===0;if(Ln()){if(h){const _=this.firefoxSsrcMidMap.get(s[0].ssrcId);return!(_||u.attributes.mid!=="0"&&u.attributes.mid!=="1")||!(!_||_!==u.attributes.mid)}return!1}return h&&u.attributes.mid===c})}findAvailableRecvMediaIndex(t){return this.sessionDesc.mediaDescriptions.findIndex(s=>{const c=s.media.mediaType===t&&s.media.port!=="0"&&(s.attributes.direction==="recvonly"||s.attributes.direction==="sendrecv");return s.attributes.mid!=="0"&&s.attributes.mid!=="1"&&c})}predictReceivingMids(t){const s=[];for(let c=0;c{s.attributes.iceUfrag=t.iceUfrag,s.attributes.icePwd=t.icePwd})}createOrRecycleSendMedia(t,s,c,u,h,_){const B=this.rtpCapabilities.send,Q=t===rr.VIDEO?B.videoCodecs:B.audioCodecs,T=t===rr.VIDEO?B.videoExtensions:B.audioExtensions;Ln()&&(h="".concat(++this.currentMidIndex));let D={media:{mediaType:t,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:Q.map(P=>P.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:T,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:c,rtcpFeedbackWildcards:[],payloads:Q,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:u,rtcpMux:!0,rtcpRsize:!0,mid:h}};D=this.mungSendMediaDesc(D,_);const O=this.findFirstClosedMedia(t);if(O){const P=this.sessionDesc.mediaDescriptions.indexOf(O);this.sessionDesc.mediaDescriptions[P]=D}else this.sessionDesc.mediaDescriptions.push(D);return D}mungRecvMediaDsec(t,s,c){const u=go(t);return GX(u),Am(u,s),VX(u,s),pte(u),DF(u,c,this.localCapabilities.send),u}mungSendMediaDesc(t,s){const c=go(t);return DF(c,s,this.localCapabilities.recv),nT(c),c}updateRecvMedia(t,s){const c=this.sessionDesc.mediaDescriptions.findIndex(u=>u.attributes.mid===t);if(c!==-1){const u=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[c],s);this.sessionDesc.mediaDescriptions[c]=u}}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(t=>t.media.port!=="0").map(t=>t.attributes.mid)}findPreloadMediaDesc(t){return this.sessionDesc.mediaDescriptions.find(s=>{var c;return((c=s.attributes)===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId)===t[0].ssrcId})}findFirstClosedMedia(t){return this.sessionDesc.mediaDescriptions.find(s=>Ln()?s.media.port==="0"&&s.media.mediaType===t:s.media.port==="0")}};const Rle=["sdp"];var Qo;function Jie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function kp(t){for(var s=1;s2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"sendonly"),U={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},H={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},$={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(ig(P,O,"videoExtensions",U,H,$),ig(P,O,"videoCodecs",U,H,$),ig(P,O,"audioExtensions",U,H,$),ig(P,O,"audioCodecs",U,H,$),de("RAISE_H264_BASELINE_PRIORITY")){const Z=$.videoCodecs.findIndex(te=>te.rtpMap&&te.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&te.fmtp&&te.fmtp.parameters["profile-level-id"]==="42001f");if(Z!==-1){const te=$.videoCodecs.findIndex(se=>se.rtpMap&&se.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(te!(se.rtpMap&&se.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&se.fmtp&&se.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:U,recv:H,sendrecv:$}}({},{},u);this.remoteSDP=new jie({remoteIceParameters:h.iceParameters,remoteDtlsParameters:h.dtlsParameters,candidates:[],remoteRTPCapabilities:_,localCapabilities:this.localCapabilities,direction:this.direction,setup:"actpass",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()}),this.isReady=!0;const B=await this.peerConnection.createAnswer();if(!B.sdp)throw new Error("Cannot get answer sdp when trying to establish PeerConnection.");const Q=Yh(B.sdp);await this.peerConnection.setLocalDescription(B);const T=await _te({},{},B.sdp);this.localCapabilities=C9(T);const D=this.peerConnection.getTransceivers()[0];return D!=null&&D.receiver&&D.receiver.transport&&this.tryBindTransportEvents(D.receiver.transport),kp(kp({},Q),{},{sdp:B.sdp})}{this.peerConnection.addTransceiver("video",{direction:"sendonly"}),this.peerConnection.addTransceiver("audio",{direction:"sendonly"});const u=await this.peerConnection.createOffer();if(!u.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const h=Yh(u.sdp);return this.initialOffer=u,kp(kp({},h),{},{sdp:u.sdp})}}catch(c){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,c.toString())}}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");await this.peerConnection.setLocalDescription(this.initialOffer);const c=s.sdp,u=s.iceParameters,h=s.dtlsParameters,_=await _te({},{},c);this.remoteSDP=new jie({remoteIceParameters:u,remoteDtlsParameters:h,candidates:[],remoteRTPCapabilities:_,localCapabilities:this.localCapabilities,direction:this.direction,setup:"active",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()});const B=this.peerConnection.getTransceivers()[0];B!=null&&B.sender&&B.sender.transport&&this.tryBindTransportEvents(B.sender.transport)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(c.toString()))}}async addRemoteCandidate(s){try{s&&this.pendingCandidates.push(s),this.peerConnection.remoteDescription&&this.isReady&&(this.pendingCandidates.forEach(c=>{this.peerConnection.addIceCandidate(c)}),this.pendingCandidates=[])}catch(c){throw new tt(Ce.ADD_CANDIDATE_FAILED,"P2PConnection.addRemoteCandidate failed; ".concat(c.toString()))}}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From P2PConnection.send"));try{if(!h.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");const B=[],Q=h.remoteSDP.receive(s,c,u);s.forEach((te,se)=>{if(Q[se].needCreateTransceiver){const ge=h.peerConnection.addTransceiver(te._mediaStreamTrack,{direction:"sendonly"});B.push(ge),te._updateRtpTransceiver(ge)}else{const ge=h.peerConnection.getTransceivers().find(me=>me.mid===Q[se].mid);if(!ge)throw new Error("cannot find transceiver when sendPeerconnection send, mid is ".concat(Q[se].mid));B.push(ge),te._updateRtpTransceiver(ge)}}),Ln()&&de("SIMULCAST")===!0&&(yield Tr(h.applySimulcastForFirefox(B,s)));const T=Q.map(te=>te.mid),D=yield Tr(h.peerConnection.createOffer()),O=h.mungSendOfferSDP(D.sdp,s,T),P=wa(O),U=T.map(te=>{const se=P.mediaDescriptions.find(ge=>ge.attributes.mid===te);if(!se)throw new Error("Cannot extract ssrc from mediaDescription.");return FX(se,de("USE_PUB_RTX"))}),H=B.map((te,se)=>{const ge=T[se];return{localSSRC:U[se],id:ge}});yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O}));try{yield H}catch(te){const se=h.remoteSDP.toString();throw yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:se})),yield Tr(h.stopSending(T,!0)),te}yield Tr(h.applySimulcastEncodings(B,s)),yield Tr(h.applySendEncodings(B,s));const $=h.remoteSDP.toString(),Z=h.logSDPExchange(O,"offer","local","send");return Z==null||Z($),yield Tr(h.setRemoteDescription({type:"answer",sdp:$})),B.map((te,se)=>{const ge=T[se];return{localSSRC:U[se],id:ge}})}catch(B){throw B instanceof tt?B:new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(B.toString()))}finally{_()}})()}async stopSending(s,c){const u=c?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");const h=this.peerConnection.getTransceivers().filter(T=>s.indexOf(T.mid)!==-1);if(h.length!==s.length)throw new Error("Transceivers' length (".concat(h.length,") doesn't match mids' length (").concat(s.length,") when trying to call P2PConnection.stopSending."));h.map(T=>{var D;T.direction="inactive",(D=T.stop)===null||D===void 0||D.call(T)});const _=await this.peerConnection.createOffer(),B=this.logSDPExchange(_.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(_),this.remoteSDP.stopReceiving(s);const Q=this.remoteSDP.toString();B==null||B(Q),await this.setRemoteDescription({type:"answer",sdp:Q})}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(h.toString()))}finally{u&&u()}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;if(_.needExchangeSDP){const T=this.remoteSDP.toString(),D=this.logSDPExchange(T,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:T});const O=await this.peerConnection.createAnswer(),P=this.mungReceiveAnswerSDP(O.sdp,B,s);D==null||D(P||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:P}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," by exchanging SDP."))}else J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," no need to exchange SDP."));const Q=this.peerConnection.getTransceivers().find(T=>T.mid===B);if(!Q||Q.mid===null)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:Q.receiver.track,mid:Q.mid,transceiver:Q}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async mockReceive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;if(_.needExchangeSDP){const Q=this.remoteSDP.toString(),T=this.logSDPExchange(Q,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:Q});const D=await this.peerConnection.createAnswer(),O=this.mungReceiveAnswerSDP(D.sdp,B,s);T==null||T(O||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:O}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," by exchanging SDP."))}else J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," no need to exchange SDP."))}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","stopReceiving");await this.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}async restartICE(s){try{if(this.store.p2pTransport===Ah.Auto&&(this.store.p2pTransport=Ah.SdRtn,Si().supportPCSetConfiguration&&this.peerConnection.setConfiguration(hT.resolvePCConfiguration(this.spec,this.store.p2pTransport))),this.restartCnt>3&&(this.restartCnt=0,Si().supportPCSetConfiguration&&this.peerConnection.setConfiguration(hT.resolvePCConfiguration(this.spec,this.store.p2pTransport,++this.curTurnServerIndex))),!s){this.restartCnt++,this.isReady=!1;const c=await this.peerConnection.createOffer({iceRestart:!0});if(!c.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const u=Yh(c.sdp).iceParameters;return this.store.descriptionStart(),this.direction===EA.SEND_ONLY&&await this.peerConnection.setLocalDescription(c),u}if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");if(this.remoteSDP.restartICE(s),this.store.descriptionStart(),this.direction===EA.RECEIVE_ONLY){this.restartCnt++,await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()});const c=await this.peerConnection.createAnswer();if(!c.sdp)throw new Error("Cannot get answer sdp when trying to iceRestart.");const u=Yh(c.sdp).iceParameters;return await this.peerConnection.setLocalDescription(c),u}await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()}),this.isReady=!0}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}close(){var s;this.peerConnection.close(),this.peerConnection.onicecandidate=null,(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.transport=void 0,this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c],[s]);this.remoteSDP.updateRecvMedia(s,c);const _=this.remoteSDP.toString(),B=this.logSDPExchange(h,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),B==null||B(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getTransceivers().filter(h=>h.mid===s);u.length===1&&(this.isVP8Simulcast(c)?Ln()||await this.applySimulcastEncodings(u,[c]):await this.applySendEncodings(u,[c]))}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getTransceivers().find(h=>h.mid===c);u&&await u.sender.replaceTrack(s._mediaStreamTrack)}async getSelectedCandidatePair(){const s=this.peerConnection.getReceivers();if(s.length>0&&s[0].transport&&s[0].transport.iceTransport&&s[0].transport.iceTransport.getSelectedCandidatePair&&s[0].transport.iceTransport.getSelectedCandidatePair()){const c=s[0].transport.iceTransport.getSelectedCandidatePair(),u=c.local,h=c.remote;return{local:kp(kp({},ya),{},{candidateType:u.type,protocol:u.protocol,address:u.address,port:u.port}),remote:kp(kp({},ya),{},{candidateType:h.type,protocol:h.protocol,address:h.address,port:h.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s,c;Et(s=["connected","completed"]).call(s,this.peerConnection.iceConnectionState)&&(this.isReady=!1),(c=this.onICEConnectionStateChange)===null||c===void 0||c.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;this.peerConnection.connectionState==="connected"&&(this.restartCnt=0),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.startICECandidate()}startICECandidate(){this.peerConnection.onicecandidate||(this.localCandidateCount=0,this.peerConnection.onicecandidate=s=>{if(s.candidate){var c;s.candidate.candidate&&((c=this.onLocalCandidate)===null||c===void 0||c.call(this,s.candidate.toJSON())),this.localCandidateCount+=1}else J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount)})}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s,c){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;const h={iceServers:[]};var _;return s.iceServers?h.iceServers=s.iceServers:s.turnServer&&s.turnServer.mode!=="off"&&(zi(s.turnServer.servers)?h.iceServers=s.turnServer.servers:(h.iceServers&&h.iceServers.push(...hT.turnServerConfigToIceServers(s.turnServer.servers,c,u)),de("USE_TURN_SERVER_OF_GATEWAY")&&h.iceServers&&s.turnServer.serversFromGateway&&h.iceServers.push(...hT.turnServerConfigToIceServers(s.turnServer.serversFromGateway,c,u)),Et(_=[Ah.Relay,Ah.SdRtn]).call(_,c)&&(h.iceTransportPolicy="relay"),de("FORCE_TURN_TCP")?h.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(B=>{B.forceturn&&(h.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(h.encodedInsertableStreams=!0),J.debug("P2PConnection p2pTransport is ".concat(c)),h}static turnServerConfigToIceServers(s,c){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;const h=[],_=s.filter(Q=>Q.tcpport);J.debug("P2PConnection turnServers is ".concat(_,", current index is ").concat(u));const B=_.length>u?_[u]:_[0];switch(c){case Ah.SdRtn:const Q=s.filter(D=>{var O;return Et(O=D.username).call(O,"glb:")&&D.turnServerURL==D.turnServerURL}),T=Q.length>u?Q[u]:Q[0];T&&(h.push({username:T.username,credential:T.password,credentialType:"password",urls:"turn:".concat(rg(T.turnServerURL),":").concat(T.tcpport,"?transport=udp")}),h.push({username:T.username,credential:T.password,credentialType:"password",urls:"turns:".concat(rg(T.turnServerURL),":").concat(T.tcpport,"?transport=tcp")}));break;case Ah.Relay:B&&(h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turn:".concat(B.turnServerURL,":").concat(B.tcpport,"?transport=udp")}),h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turns:".concat(rg(B.turnServerURL),":").concat(B.tcpport,"?transport=tcp")}));break;default:B&&(h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turn:".concat(B.turnServerURL,":").concat(B.tcpport,"?transport=udp")}),h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turns:".concat(rg(B.turnServerURL),":").concat(B.tcpport,"?transport=tcp")}),h.push({username:B.username,credential:B.password,credentialType:"password",urls:"stun:".concat(B.turnServerURL,":").concat(B.tcpport)}))}return h}tryBindTransportEvents(s){if(s){this.transport=s,s.onstatechange=()=>{var u;s!=null&&s.state&&((u=this.onDTLSTransportStateChange)===null||u===void 0||u.call(this,s.state))},s.onerror=u=>{var h;(h=this.onDTLSTransportError)===null||h===void 0||h.call(this,"error"in u?u.error:u)};const c=s.iceTransport;c&&(c.onstatechange=()=>{const u=s==null?void 0:s.iceTransport.state;var h;u&&((h=this.onICETransportStateChange)===null||h===void 0||h.call(this,u))},c.getSelectedCandidatePair&&(c.onselectedcandidatepairchange=()=>{if(c.getSelectedCandidatePair()){const u=c.getSelectedCandidatePair()||{},h=u.local,_=u.remote;if(h&&_){const B=h.address+":"+h.port,Q=_.address+":"+_.port;J.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Hh(B)),", remote ").concat(JSON.stringify(Hh(Q))))}}}))}}tryUnbindTransportEvents(){this.transport&&(this.transport.onstatechange=null,this.transport.onerror=null,this.transport.iceTransport&&(this.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(s,c){var u;if(c||(c=this.peerConnection.getSenders().find(O=>O.track===s._mediaStreamTrack)),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(s))return J.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Si().supportSetRtpSenderParameters)return J.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");const h={},_={};switch(s._optimizationMode){case"motion":h.degradationPreference="maintain-framerate";break;case"detail":h.degradationPreference="maintain-resolution";break;default:h.degradationPreference="balanced"}if(s._encoderConfig){var B;const O=s._encoderConfig,P=O.bitrateMax,U=O.frameRate,H=O.scaleResolutionDownBy;P&&(_.maxBitrate=1e3*P),Et(B=s._hints).call(B,gn.LOW_STREAM)&&(U&&(_.maxFramerate=dc(U)),H&&H>=1&&(_.scaleResolutionDownBy=H))}if(de("DSCP_TYPE")&&Al()){var Q;const O=de("DSCP_TYPE");Et(Q=["very-low","low","medium","high"]).call(Q,O)&&(_.networkPriority=O)}const T=c.getParameters(),D=(u=T.encodings)===null||u===void 0?void 0:u[0];Ln()&&!D&&(h.encodings=[_]),D&&Object.assign(D,_),Object.assign(T,h),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(T.encodings))),await c.setParameters(T)}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const Q=u[B],T=h.mediaDescriptions.find(D=>D.attributes.mid===Q);T&&(Am(T,_),KX(T,_,this.store.codec))}),X1(h)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onFirstVideoDecodedTimeout=s=>{var c;(c=this.onFirstVideoDecodedTimeout)===null||c===void 0||c.call(this,s)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(s,c){if(s.length===c.length)for(let T=0;T200&&(B=O._scalabilityMode)!==null&&B!==void 0&&B.numSpatialLayers&&((Q=O._scalabilityMode)===null||Q===void 0?void 0:Q.numSpatialLayers)>1&&this.store.codec==="vp8"){const P={},U={high:1e3*(O._encoderConfig.bitrateMax-50),medium:5e4};P.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];const H=D.sender.getParameters();await D.sender.setParameters(Object.assign(H,P))}}}async applySimulcastEncodings(s,c){if(!Ln()&&s.length===c.length)for(let u=0;u200&&(_=s._scalabilityMode)!==null&&_!==void 0&&_.numSpatialLayers&&((B=s._scalabilityMode)===null||B===void 0?void 0:B.numSpatialLayers)>1)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("[".concat(this.store.clientId,"] exchanging ").concat(u," ").concat(c," SDP during P2PConnection.").concat(h,` +`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(B=>{B.direction="inactive"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.muteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(async B=>{B.direction="sendonly"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.unmuteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(c.toString()))}}async getRemoteSSRC(s,c){var u;if(c=c??((u=this.currentRemoteDescription)===null||u===void 0?void 0:u.sdp)){var h;const _=(h=wa(c).mediaDescriptions.find(B=>B.attributes.mid===s))===null||h===void 0?void 0:h.attributes.ssrcs;return _==null?void 0:_[0].ssrcId}}async setRemoteDescription(s){var c;await this.peerConnection.setRemoteDescription(s),Et(c=["connected","completed"]).call(c,this.peerConnection.iceConnectionState)||(this.isReady=!0,this.addRemoteCandidate())}mungReceiveAnswerSDP(s,c,u){const h=wa(s),_=h.mediaDescriptions.find(B=>B.attributes.mid===c);return _&&u===rr.AUDIO&&_.media.mediaType==="audio"&&nT(_),X1(h)}},Pt(Qo.prototype,"establish",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"establish"),Qo.prototype),Pt(Qo.prototype,"connect",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"connect"),Qo.prototype),Pt(Qo.prototype,"receive",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"receive"),Qo.prototype),Pt(Qo.prototype,"mockReceive",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"mockReceive"),Qo.prototype),Pt(Qo.prototype,"stopReceiving",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"stopReceiving"),Qo.prototype),Pt(Qo.prototype,"restartICE",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"restartICE"),Qo.prototype),Pt(Qo.prototype,"close",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"close"),Qo.prototype),Pt(Qo.prototype,"updateEncoderConfig",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"updateEncoderConfig"),Qo.prototype),Pt(Qo.prototype,"updateSendParameters",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"updateSendParameters"),Qo.prototype),Pt(Qo.prototype,"replaceTrack",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"replaceTrack"),Qo.prototype),Pt(Qo.prototype,"muteLocal",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"muteLocal"),Qo.prototype),Pt(Qo.prototype,"unmuteLocal",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"unmuteLocal"),Qo.prototype),Qo);function sg(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From P2PConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{const _=await this.sendMutex.lock("Locking from P2PChannel2.handleMuteLocalTrack");try{if(!this.sendConnection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established."));const T=this.filterTobeMutedTracks(c);if(T.length===0)return void u();const D=T.find(H=>H[0]==="videoLowTrack");D&&D[1].track._originMediaStreamTrack.stop(),await this.sendConnection.muteLocal(T.map(H=>ir(H,2)[1].id));let O=!1;var B,Q;c.trackMediaType==="video"?O=!((B=this.localTrackMap.get(Qt.LocalAudioTrack))===null||B===void 0||!B.track._muted):O=((Q=this.localTrackMap.get(Qt.LocalVideoTrack))===null||Q===void 0?void 0:Q.id)===void 0;const P=this.createMuteMessage(T);await sn(this,Cr.RequestMuteLocal,P);const U=c.trackMediaType==="video"?Uu.MUTE_LOCAL_VIDEO:Uu.MUTE_LOCAL_AUDIO;await sn(this,Cr.RequestP2PMuteLocal,{action:U,message:P,isMuteAll:O}),u()}catch(T){h(T)}finally{_()}}),ae(this,"handleUnmuteLocalTrack",async(c,u,h)=>{const _=await this.sendMutex.lock("Locking from P2PChannel2.handleUnmuteLocalTrack");try{if(!this.sendConnection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleUnmuteLocalTrack before sendConnection established."));const B=this.filterTobeUnmutedTracks(c);if(B.length===0)return void u();await this.sendConnection.unmuteLocal(B.map(D=>ir(D,2)[1].id));const Q=this.createUnmuteMessage(B),T=c.trackMediaType==="video"?Uu.UNMUTE_LOCAL_VIDEO:Uu.UNMUTE_LOCAL_AUDIO;await sn(this,Cr.RequestP2PMuteLocal,{action:T,message:Q}),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleUpdateVideoEncoder",async(c,u,h,_)=>{let B;typeof _=="boolean"&&_||(B=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoEncoder"));try{const T=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.sendConnection||!T||T.track!==c||this.state!==ln.Connected)return void u();const D=T.id,O=T.track;D&&(await this.sendConnection.updateSendParameters(D,O),await this.sendConnection.updateEncoderConfig(D,O),this.emit(Cr.UpdateVideoEncoder,O)),u()}catch(T){h(T)}finally{var Q;(Q=B)===null||Q===void 0||Q()}}),ae(this,"handleUpdateVideoSendParameters",async(c,u,h)=>{const _=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoSendParameters");try{const B=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.sendConnection||!B||B.track!==c||this.state!==ln.Connected)return void u();const Q=B.id,T=B.track;Q&&await this.sendConnection.updateSendParameters(Q,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleReplaceTrack",async(c,u,h,_)=>{let B;J.debug("[".concat(this.store.clientId,"] P2PChannel2 handleReplaceTrack for [track-id-").concat(c.getTrackId(),"]")),typeof _=="boolean"&&_||(B=await this.sendMutex.lock("From P2PChannel2.handleReplaceTrack"));try{var Q;const D=Array.from(this.localTrackMap.entries()).find(O=>{let P=ir(O,2)[1].track;return c===P});if(!this.sendConnection||!D||D[1].id===void 0||this.state!==ln.Connected)return void u();if(await((Q=this.sendConnection)===null||Q===void 0?void 0:Q.replaceTrack(c,D[1].id)),D[0]===Qt.LocalVideoTrack&&Si().supportDualStreamEncoding){const O=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(O){const P=c._mediaStreamTrack.clone();O.track._originMediaStreamTrack.stop(),O.track._mediaStreamTrack=P,O.track._originMediaStreamTrack=P,await new Ut((U,H)=>{this.handleReplaceTrack(O.track,U,H,!0)})}}u()}catch(D){h(D)}finally{var T;(T=B)===null||T===void 0||T()}}),ae(this,"handleGetLocalVideoStats",c=>{c(this.statsCollector.getLocalVideoTrackStats())}),ae(this,"handleGetLocalAudioStats",c=>{c(this.statsCollector.getLocalAudioTrackStats())}),ae(this,"handleGetRemoteVideoStats",c=>this.statsCollector.getRemoteVideoTrackStats(c.uid)[c.uid]),ae(this,"handleGetRemoteAudioStats",c=>this.statsCollector.getRemoteAudioTrackStats(c.uid)[c.uid]),this.store=t,this.statsCollector=s,this.statsCollector.addP2PChannel(this),this.statsUploader=new cre(t),this.bindStatsUploaderEvents(),this.sendMutex=new ra("P2PChannel2-send-mutex",t.clientId),this.recvMutex=new ra("P2PChannel2-recv-mutex",t.clientId),this.reconnectInterval=window.setInterval(()=>{[this.sendConnection,this.recvConnection].forEach(c=>{c&&(c.iceConnectionState!=="disconnected"&&c.iceConnectionState!=="failed"||this.handleDisconnect(c.direction))})},de("ICE_RESTART_INTERVAL"))}async startP2PConnection(t,s){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support startP2PConnection.")}async connect(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support connect.")}async startP2P(t,s){let c;try{if(s){this.recvConnection&&(J.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset recvConnection.")),this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection)),c=await this.recvMutex.lock("From P2PChannel.startP2P"),this.recvConnection=new qie(t,this.store,EA.RECEIVE_ONLY),this.bindConnectionEvents(this.recvConnection);const u=await this.recvConnection.establish(s);return{iceParameters:u.iceParameters,dtlsParameters:u.dtlsParameters,sdp:u.sdp}}{this.state=ln.New,this.sendConnection&&(J.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset sendConnection.")),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection)),c=await this.sendMutex.lock("From P2PChannel.startP2P"),this.sendConnection=new qie(t,this.store),this.store.peerConnectionStart(),this.bindConnectionEvents(this.sendConnection);const u=await this.sendConnection.establish();return{iceParameters:u.iceParameters,dtlsParameters:u.dtlsParameters,sdp:u.sdp}}}finally{c&&c()}}async p2pConnect(t){if(!this.sendConnection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.p2pConnect before P2PChannel2.startP2PConnection .");this.store.peerConnectionStart(),await this.sendConnection.connect(t),this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=ln.Connected}async addRemoteCandidate(t,s){if(s===EA.RECEIVE_ONLY){if(!this.sendConnection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.sendConnection.addRemoteCandidate(t)}else{if(!this.recvConnection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.recvConnection.addRemoteCandidate(t)}}publish(t,s,c){var u=this;return AA(function*(){const h=yield Tr(u.sendMutex.lock("From P2PChannel.publish"));try{if(!u.sendConnection||u.state!==ln.Connected){u.throwIfTrackTypeNotMatch(t);const D=t.filter(O=>u.pendingLocalTracks.indexOf(O)===-1);return void(u.pendingLocalTracks=u.pendingLocalTracks.concat(D))}u.store.pubId=u.store.pubId+1,_A.markPublishStart(u.store.clientId,u.store.pubId);const _=u.filterTobePublishedTracks(t,s,c);if(_.length===0)return void(yield Tr(u.tryToUnmuteAudio(t)));_.forEach(D=>{let O=D.track,P=D.type;const U=Date.now();u.store.publish(O.getTrackId(),P===Qt.LocalAudioTrack?"audio":"video",U)}),u.bindLocalTrackEvents(_);const B=yield Tr(u.sendConnection.send(_.map(D=>D.track),u.store.codec,u.store.audioCodec)),Q=(yield Tr(B.next())).value,T=u.createGatewayPublishMessage(_,Q);try{yield T}catch(D){throw B.throw(D),(D==null?void 0:D.code)===Ce.WS_ABORT&&_.forEach(O=>{let P=O.track;u.pendingLocalTracks.indexOf(P)===-1&&u.pendingLocalTracks.push(P)}),u.unbindLocalTrackEvents(_),D}yield Tr(B.next()),_.forEach(D=>{let O=D.type;u.statsCollector.addLocalStats(O)}),u.statsUploader.startUploadOutboundStats(),u.assignLocalTracks(_,Q),_.forEach(D=>{let O=D.track,P=D.type;const U=Date.now();u.store.publish(O.getTrackId(),P===Qt.LocalAudioTrack?"audio":"video",void 0,U)}),u.startUploadUplinkState()}finally{h()}})()}async unpublish(t){if(!this.sendConnection||this.state!==ln.Connected)return void(t.length===0?this.pendingLocalTracks.length=0:this.pendingLocalTracks=this.pendingLocalTracks.filter(h=>!Et(t).call(t,h)));const s=this.filterTobeUnpublishedTracks(t);if(s.length===0)return;const c=s.find(h=>h[0]==="videoLowTrack");c&&c[1].track.close();const u=this.createGatewayUnpublishMessage(s);if(await this.sendConnection.stopSending(s.map(h=>ir(h,2)[1].id)),this.withdrawLocalTracks(s),this.unbindLocalTrackEvents(s.map(h=>{let _=ir(h,2);return{type:_[0],track:_[1].track}})),s.forEach(h=>{let _=ir(h,1)[0];this.statsCollector.removeLocalStats(_)}),this.localTrackMap.size===0&&(this.statsUploader.stopUploadOutboundStats(),this.stopUploadUplinkState()),this.sendConnection&&this.state===ln.Connected)return c&&c[1].track.close(),u;t.forEach(h=>{const _=this.pendingLocalTracks.indexOf(h);_!==-1&&this.pendingLocalTracks.splice(_,1)})}startUploadUplinkState(){if(this.uploadUnplinkStarted)return;this.uploadUnplinkStarted=!0,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval);const t=()=>{const s=[],c=[];Array.from(this.localTrackMap.entries()).forEach(u=>{let h=ir(u,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs;const D={stream_type:Rce(Q,_),ssrcs:T};Q._muted||!Q._enabled?s.push(D):c.push(D)}),s.length>0&&s.forEach(u=>{sn(this,Cr.RequestMuteLocal,[u])}),c.length>0&&c.forEach(u=>{sn(this,Cr.RequestUnmuteLocal,[u])})};t(),this.uplinkStateUploadInterval=window.setInterval(()=>{t()},3e3)}stopUploadUplinkState(){this.uploadUnplinkStarted&&(this.uploadUnplinkStarted=!1,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval))}publishLowStream(t){return AA(function*(){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support publishLowStream.")})()}async republish(){this.pendingLocalTracks.length>0&&(J.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await $o(this,Cr.RequestRePublish,this.pendingLocalTracks),this.emit(Cr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[])}async unpublishLowStream(){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support unpublishLowStream.")}async subscribe(t,s,c,u){var h;if(!this.recvConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");if((h=this.remoteUserMap.get(t))!==null&&h!==void 0&&h.has(s))return;const _=await this.recvConnection.receive(s,[{ssrcId:c}],String(t.uid),u),B=_.track,Q=_.mid,T=_.transceiver;s===rr.AUDIO?(t._audioTrack?t._audioTrack._updateOriginMediaStreamTrack(B):(t._audioTrack=new an(B,t.uid,t._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(t._audioTrack.getTrackId()))),T&&t._audioTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._audioTrack)):(t._videoSSRC=c,t._videoTrack?t._videoTrack._updateOriginMediaStreamTrack(B):(t._videoTrack=new Fd(B,t.uid,t._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(t._videoTrack.getTrackId()))),T&&t._videoTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._videoTrack));const D=this.remoteUserMap.get(t);D?D.set(s,Q):this.remoteUserMap.set(t,new Map([[s,Q]])),this.statsCollector.addRemoteStats(t.uid),this.statsUploader.startUploadInboundStats(),this.startUploadDownlinkState();const O=this.pendingRemoteTracks.findIndex(P=>{let U=P.user,H=P.kind;return U.uid===t.uid&&s===H});O!==-1&&(this.pendingRemoteTracks.splice(O,1),this.emit(Cr.MediaReconnectEnd,t.uid))}async mockSubscribe(t,s,c,u){if(!this.recvConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");await this.recvConnection.mockReceive(s,[{ssrcId:c}],String(t.uid),u)}async unsubscribe(t,s,c){const u=this.pendingRemoteTracks.filter(_=>{let B=_.user,Q=_.kind;return s!==void 0?B.uid===t.uid&&s===Q:B.uid===t.uid});if(u.forEach(_=>{const B=this.pendingRemoteTracks.indexOf(_);this.pendingRemoteTracks.splice(B,1)}),this.recvConnection||c||u.forEach(_=>{let B=_.kind;var Q;if(B===rr.AUDIO)(Q=t._audioTrack)===null||Q===void 0||Q._destroy(),t._audioTrack=void 0;else if(B===rr.VIDEO){var T;(T=t._videoTrack)===null||T===void 0||T._destroy(),t._videoTrack=void 0}}),!this.recvConnection)return;const h=this.filterTobeUnSubscribedTracks(t,s);h.length!==0&&(await this.recvConnection.stopReceiving(h.map(_=>ir(_,2)[1].id)),this.withdrawRemoteTracks(h),this.remoteUserMap.size===0&&(this.statsUploader.stopUploadInboundStats(),this.stopUploadDownlinkState()),h.forEach(_=>{let B=ir(_,2),Q=B[0],T=B[1].kind;var D,O;if(T===rr.VIDEO&&Q._videoSSRC&&((D=this.recvConnection)===null||D===void 0||D.setStatsRemoteVideoIsReady(Q._videoSSRC,!1)),T===rr.VIDEO)this.unbindRemoteTrackEvents(Q._videoTrack),c||((O=Q._videoTrack)===null||O===void 0||O._destroy(),Q._videoTrack=void 0);else if(T===rr.AUDIO){var P;this.unbindRemoteTrackEvents(Q._audioTrack),!c&&((P=Q._audioTrack)===null||P===void 0||P._destroy(),Q._audioTrack=void 0)}}),h.forEach(_=>{let B=ir(_,2)[1].kind;sn(this,Cr.RequestP2PMuteRemote,B)}))}startUploadDownlinkState(){if(this.uploadDownlinkStarted)return;this.uploadDownlinkStarted=!0,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval);const t=()=>Array.from(this.remoteUserMap.entries()).forEach(s=>{let c=ir(s,2)[1];[rr.VIDEO,rr.AUDIO].forEach(u=>{c.has(u)?sn(this,Cr.RequestP2PUnmuteRemote,u):sn(this,Cr.RequestP2PMuteRemote,u)})});t(),this.downlinkStatsUploadInterval=window.setInterval(()=>{t()},3e3)}stopUploadDownlinkState(){this.uploadDownlinkStarted&&(this.uploadDownlinkStarted=!1,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval))}getAllDataChannels(){return this.localDataChannels}async massSubscribe(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massSubscribe.")}async massSubscribeNoLock(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massSubscribeNoLock.")}async massUnsubscribe(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massUnsubscribe.")}async massUnsubscribeNoLock(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massUnsubscribeNoLock.")}async muteRemote(t,s){if(!this.recvConnection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(t.uid,"."));if(!c.get(s))return void J.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."));const u=s===rr.VIDEO?t._videoSSRC:t._audioSSRC;u!==void 0&&this.recvConnection.setStatsRemoteVideoIsReady(u,!1)}async unmuteRemote(t,s){return this.unmuteRemoteNoLock(t,s)}async unmuteRemoteNoLock(t,s){if(!this.recvConnection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(t.uid,"."));c.get(s)||J.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."))}getAllTracks(t){const s=this.localTrackMap.get(Qt.LocalAudioTrack);if((s==null?void 0:s.track)instanceof ia){const c=s.track;return Array.from(this.localTrackMap.entries()).filter(u=>ir(u,1)[0]!==Qt.LocalAudioTrack).filter(u=>{let h=ir(u,1)[0];return!(t&&h===Qt.LocalVideoLowTrack)}).map(u=>ir(u,2)[1].track).concat(c.trackList)}return Array.from(this.localTrackMap.entries()).filter(c=>{let u=ir(c,1)[0];return!(t&&u===Qt.LocalVideoLowTrack)}).map(c=>ir(c,2)[1].track)}reportPublishEvent(t,s,c,u,h){if(t){const B=this.localTrackMap.get(Qt.LocalAudioTrack),Q=u?this.localTrackMap.get(Qt.LocalVideoLowTrack):this.localTrackMap.get(Qt.LocalVideoTrack);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.track.getTrackLabel(),videoName:Q==null?void 0:Q.track.getTrackLabel(),screenshare:(Q==null?void 0:Q.track._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}else{var _;c||(c=[]);const B=c.find(T=>T instanceof po),Q=u?(_=this.localTrackMap.get(Qt.LocalVideoTrack))===null||_===void 0?void 0:_.track:c.find(T=>T instanceof pn);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.getTrackLabel(),videoName:Q==null?void 0:Q.getTrackLabel(),screenshare:(Q==null?void 0:Q._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}}reportSubscribeEvent(t,s,c,u){const h=u===rr.VIDEO?c._videoSSRC:c._audioSSRC;h&&qt.subscribe(this.store.sessionId,{succ:t,ec:s,video:u===rr.VIDEO,audio:u===rr.AUDIO,peerid:c.uid,subscribeRequestid:u===rr.VIDEO?c._videoSSRC:c._audioSSRC,p2pid:this.store.p2pId,eventElapse:_A.measureFromSubscribeStart(this.store.clientId,h)})}reset(){J.debug("[".concat(this.store.clientId,"] P2PChannel2.reset")),this.sendMutex=new ra("P2PChannel2-send-mutex",this.store.clientId),this.sendMutex=new ra("P2PChannel2-recv-mutex",this.store.clientId),this.sendConnection&&(this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0),this.recvConnection&&(this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();const t=this.localTrackMap.get(Qt.LocalAudioTrack);if((t==null?void 0:t.track)instanceof ia){if(t.track.trackList.length>0){const s=t.track;t.track.trackList.forEach(c=>{s.removeAudioTrack(c)})}t.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.reconnectInterval&&(window.clearInterval(this.reconnectInterval),this.reconnectInterval=void 0),this.state=ln.Disconnected}getStats(t){var s,c;return t?(c=this.recvConnection)===null||c===void 0?void 0:c.getStats():(s=this.sendConnection)===null||s===void 0?void 0:s.getStats()}getRemoteVideoIsReady(t){var s;return((s=this.recvConnection)===null||s===void 0?void 0:s.getRemoteVideoIsReady(t))||!1}getLocalAudioVolume(){const t=this.localTrackMap.get(Qt.LocalAudioTrack);if(t)return t.track.getVolumeLevel()}getLocalVideoSize(){const t=this.localTrackMap.get(Qt.LocalVideoTrack);if(t)return{width:t.track.videoWidth||0,height:t.track.videoHeight||0}}getEncoderConfig(t){const s=this.localTrackMap.get(t);return s&&s.track instanceof pn||s&&s.track instanceof po?s.track._encoderConfig:void 0}getLocalMedia(t){return this.localTrackMap.get(t)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}async hasRemoteMediaWithLock(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}getRemoteMedia(t){var s;const c=Array.from(js(s=this.remoteUserMap).call(s)).find(u=>u.uid===t);return c?{audioTrack:c.audioTrack,audioSSRC:c._audioSSRC,videoTrack:c.videoTrack,videoSSRC:c._videoSSRC}:{}}getAudioLevels(){let t=Array.from(this.remoteUserMap.entries()).map(c=>{let u=ir(c,1)[0];return{uid:u.uid,level:u.audioTrack?100*u.audioTrack._source.getAccurateVolumeLevel():0}});const s=this.localTrackMap.get(Qt.LocalAudioTrack);return s&&t.push({level:100*s.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),t=x1(t).call(t,(c,u)=>c.level-u.level),t}async disconnectForReconnect(){this.sendConnection&&this.recvConnection&&(J.debug("[".concat(this.store.clientId,"] P2PChannel2.disconnectForReconnect closing P2PConnection")),this.state=ln.Reconnecting,de("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,1)[0];var c;s._videoTrack&&s._videoTrack._player&&((c=s._videoTrack._player.getVideoElement())===null||c===void 0||c.pause(),s._videoTrack._player.isKeepLastFrame=!0,s._videoTrack._originMediaStreamTrack.stop())}),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0,this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0,this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(t=>{var s;let c=ir(t,2),u=c[0],h=c[1].track;switch(u){case Qt.LocalVideoTrack:Et(s=h._hints).call(s,gn.LOW_STREAM)?h.close():this.pendingLocalTracks.push(h);break;case Qt.LocalAudioTrack:h instanceof ia?this.pendingLocalTracks=this.pendingLocalTracks.concat(h.trackList):this.pendingLocalTracks.push(h);case Qt.LocalVideoLowTrack:}}),this.emit(Cr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];Array.from(js(u).call(u)).forEach(h=>{this.setPendingRemoteMedia(c,h)}),this.emit(Cr.MediaReconnectStart,c.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),J.debug("[".concat(this.store.clientId,"] P2PChannel2 disconnected, waiting to reconnect.")))}hasPendingRemoteMedia(t,s){for(const c of this.pendingRemoteTracks){const u=c.user,h=c.kind;if((t instanceof vp?t.uid:t)===u.uid&&s===h)return!0}return!1}setPendingRemoteMedia(t,s){this.hasPendingRemoteMedia(t,s)||this.pendingRemoteTracks.push({user:t,kind:s})}async restartICE(t,s){let c,u;if(t===EA.SEND_ONLY){if(!this.sendConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established.");c=await this.sendMutex.lock("From P2PChannel.restartICE"),u=this.sendConnection}else{if(!this.recvConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before recvConnection established.");c=await this.recvMutex.lock("From P2PChannel.restartICE"),u=this.recvConnection}try{if(s){const h=await u.restartICE(s);return u.isInRestartIce=!1,h}{const h=await u.restartICE();if(h){const _=await $o(this,Cr.RequestP2PRestartICE,{direction:EA.RECEIVE_ONLY,iceParameter:h});await u.restartICE(_),u.isInRestartIce=!1}}}finally{c()}}getUplinkNetworkQuality(){if(!this.sendConnection)return 0;const t=this.sendConnection.getStats(),s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalAudioTrack),u=t.videoSend.find(H=>{var $;return H.ssrc===(s==null||($=s.ssrcs)===null||$===void 0?void 0:$[0].ssrcId)}),h=t.audioSend.find(H=>{var $;return H.ssrc===(c==null||($=c.ssrcs)===null||$===void 0?void 0:$[0].ssrcId)});if(!u||!h)return 1;const _=q1(this,Cr.NeedSignalRTT),B=u?u.rttMs:void 0,Q=h?h.rttMs:void 0,T=B&&Q?(B+Q)/2:B||Q,D=(T&&_?(T+_)/2:T||_)||0,O=100*t.sendPacketLossRate*.7/50+.3*D/1500,P=O<.17?1:O<.36?2:O<.59?3:O<.1?4:5,U=s==null?void 0:s.track;if(U&&U._encoderConfig&&U._hints.indexOf(gn.SCREEN_TRACK)===-1){const H=U._encoderConfig.bitrateMax,$=t.bitrate.actualEncoded;if(H&&$){const Z=(1e3*H-$)/(1e3*H);return t7[Z<.15?0:Z<.3?1:Z<.45?2:Z<.6?3:4][P]}}return P}getDownlinkNetworkQuality(){if(!this.recvConnection)return 0;const t=this.recvConnection.getStats();let s=0;return Array.from(this.remoteUserMap.entries()).forEach(c=>{let u=ir(c,1)[0];const h=u._audioSSRC,_=u._videoSSRC,B=t.audioRecv.find($=>$.ssrc===h),Q=t.videoRecv.find($=>$.ssrc===_);if(!B&&!Q)return void(s+=1);const T=q1(this,Cr.NeedSignalRTT),D=t.rtt,O=(D&&T?(D+T)/2:D||T)||0,P=B?B.jitterMs:void 0,U=t.recvPacketLossRate;let H=.7*U*100/50+.3*O/1500;P&&(H=.6*U*100/50+.2*O/1500+.2*P/400),s+=H<.1?1:H<.17?2:H<.36?3:H<.59?4:5}),this.remoteUserMap.size>0?Math.round(s/this.remoteUserMap.size):s}async muteLocalTrack(t){return new Ut((s,c)=>{this.handleMuteLocalTrack(t,s,c)})}filterTobePublishedTracks(t,s,c){const u=[],h=Si(),_=this.getAllTracks();t=oh(t=t.filter(T=>_.indexOf(T)===-1));let B=!1,Q=!1;for(const T of t){if(T instanceof pn&&(this.localTrackMap.has(Qt.LocalVideoTrack)||B?new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(u.push({track:T,type:Qt.LocalVideoTrack}),B=!0),s)){const D=this.getLowVideoTrack(T,c);u.push({track:D,type:Qt.LocalVideoLowTrack})}if(T instanceof po){const D=this.localTrackMap.get(Qt.LocalAudioTrack);if(D){if(!(D.track instanceof ia))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(T._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");D.track.addAudioTrack(T),this.bindLocalAudioTrackEvents(T,!0)}else if(Q){const O=u.find(P=>P.type===Qt.LocalAudioTrack);if(!(O.track instanceof ia))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(T._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");O.track.addAudioTrack(T)}else{if(!h.webAudioMediaStreamDest||T instanceof ia||T._bypassWebAudio)u.push({track:T,type:Qt.LocalAudioTrack});else{const O=new ia;O.addAudioTrack(T),u.push({track:O,type:Qt.LocalAudioTrack})}Q=!0}}}return u}filterTobeUnpublishedTracks(t){const s=[],c=this.getAllTracks();t=oh(t=t.filter(u=>c.indexOf(u)!==-1));for(const u of t){if(u instanceof po){const h=this.localTrackMap.get(Qt.LocalAudioTrack);if(!h)continue;h.track instanceof ia?(h.track.removeAudioTrack(u),this.unbindLocalAudioTrackEvents(u),h.track.trackList.length===0&&(s.push([Qt.LocalAudioTrack,h]),h.track.close())):s.push([Qt.LocalAudioTrack,h])}if(u instanceof pn){const h=this.localTrackMap.get(Qt.LocalVideoTrack);if(!h)continue;s.push([Qt.LocalVideoTrack,h]);const _=this.localTrackMap.get(Qt.LocalVideoLowTrack);_&&s.push([Qt.LocalVideoLowTrack,_])}}return s}bindLocalTrackEvents(t){t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.addListener(xt.GET_STATS,this.handleGetLocalVideoStats),c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.addListener(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.bindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(t,s){t instanceof ia?t.trackList.forEach(c=>{c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),t.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),s||t.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack))}unbindLocalTrackEvents(t){t||(t=Array.from(this.localTrackMap.entries()).map(s=>{let c=ir(s,2),u=c[0];return{track:c[1].track,type:u}})),t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.off(xt.GET_STATS,this.handleGetLocalVideoStats),c.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.off(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.off(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.unbindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(t){t instanceof ia?t.trackList.forEach(s=>{s.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),s.off(xt.GET_STATS,this.handleGetLocalAudioStats),s.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.off(xt.GET_STATS,this.handleGetLocalAudioStats),t.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),t.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(t,s){s instanceof Fd&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteVideoStats(t))}),s instanceof an&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteAudioStats(t))})}unbindRemoteTrackEvents(t){t&&t.removeAllListeners(xt.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];u.has(rr.AUDIO)&&this.unbindRemoteTrackEvents(c._audioTrack),u.has(rr.VIDEO)&&this.unbindRemoteTrackEvents(c._videoTrack)})}createGatewayPublishMessage(t,s){return t.map((c,u)=>{var h;let _,B=c.track,Q=c.type;switch(Q){case Qt.LocalAudioTrack:_=En.Audio;break;case Qt.LocalVideoTrack:_=Et(h=B._hints).call(h,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:_=En.Low}return{kind:Q===Qt.LocalAudioTrack?rr.AUDIO:rr.VIDEO,stream_type:_,mid:s[u].id,ssrcs:s[u].localSSRC,isMuted:B.muted||!B.enabled}})}createGatewayUnpublishMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}assignLocalTracks(t,s){t.forEach((c,u)=>{let h=c.track,_=c.type;this.localTrackMap.set(_,{track:h,id:s[u].id,ssrcs:s[u].localSSRC})})}withdrawLocalTracks(t){t.forEach(s=>{let c=ir(s,1)[0];this.localTrackMap.delete(c)})}bindConnectionEvents(t){t.onConnectionStateChange=async s=>{var c;J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: ").concat(t.name,".onConnectionStateChange(").concat(s,")")),this.emit(Cr.PeerConnectionStateChange,s),s!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),s==="connected"&&(t.isInRestartIce=!1),Et(c=this._restartStates).call(c,s)&&!t.isInRestartIce&&(s==="disconnected"&&await so(800),t.iceConnectionState!=="disconnected"&&t.iceConnectionState!=="failed"||this.handleDisconnect(t.direction))},t.onICEConnectionStateChange=s=>{s!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(s,")")),qt.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:s,tag:vn.TRACER}).onSuccess(),this.emit(Cr.IceConnectionStateChange,s)},t.onICETransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(s,")"))},t.onDTLSTransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(s,")"))},t.onDTLSTransportError=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(s,")"))},t.onFirstAudioDecoded=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(_=>_._audioSSRC===s);var h;u&&(this.store.subscribe(u.uid,"audio",void 0,void 0,void 0,Date.now()),(h=u.audioTrack)===null||h===void 0||h.emit($1.FIRST_FRAME_DECODED),qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_DECODE,ao.FIRST_AUDIO_DECODE,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId}))},t.onFirstAudioReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._audioSSRC===s);u&&qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_RECEIVED,ao.FIRST_AUDIO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId})},t.onFirstVideoDecoded=(s,c,u)=>{this.reportVideoFirstFrameDecoded(s,c,u)},t.onFirstVideoReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_VIDEO_RECEIVED,ao.FIRST_VIDEO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId})},t.onSelectedLocalCandidateChanged=(s,c)=>{const u=s.candidateType==="relay",h=c.candidateType==="relay";c.candidateType!=="unknown"&&u===h||this.emit(Cr.ConnectionTypeChange,u),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onSelectedRemoteCandidateChanged=(s,c)=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onFirstVideoDecodedTimeout=s=>{this.reportVideoFirstFrameDecoded(s,void 0,void 0,!0)},t.onLocalCandidate=s=>{this.emit(Cr.LocalCandidate,{candidate:s,direction:t.direction})}}unbindConnectionEvents(t){t.onConnectionStateChange=void 0,t.onICEConnectionStateChange=void 0,t.onICETransportStateChange=void 0,t.onDTLSTransportStateChange=void 0,t.onDTLSTransportError=void 0,t.onFirstAudioDecoded=void 0,t.onFirstAudioReceived=void 0,t.onFirstVideoDecoded=void 0,t.onFirstVideoReceived=void 0,t.onSelectedLocalCandidateChanged=void 0,t.onSelectedRemoteCandidateChanged=void 0,t.onFirstVideoDecodedTimeout=void 0,t.onLocalCandidate=void 0}async handleDisconnect(t){const s=t===EA.SEND_ONLY?this.sendConnection:this.recvConnection;s&&!s.isInRestartIce&&(s.isInRestartIce=!0,J.debug("[".concat(this.store.clientId,"] [P2PChannel-").concat(s.name,"] start use restartICE")),t===EA.SEND_ONLY?this.restartICE(t):$o(this,Cr.RequestP2PRestartICE,{direction:EA.SEND_ONLY}))}filterTobeMutedTracks(t){const s=[];if(this.getAllTracks().indexOf(t)===-1)return s;const c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive||s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u&&(s.push(u),u[0]===Qt.LocalVideoTrack)){const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}return s}filterTobeUnmutedTracks(t){const s=[],c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive&&s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u)if(u[0]===Qt.LocalVideoTrack){s.push(u);const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}else s.push(u);return s}createMuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}createUnmuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}filterTobeUnSubscribedTracks(t,s){const c=[],u=this.remoteUserMap.get(t);if(!u)return c;if(s){const h=u.get(s);if(!h)return c;c.push([t,{kind:s,id:h}])}else Array.from(u.entries()).forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1];c.push([t,{kind:B,id:Q}])});return c}createUnsubscribeMessage(t){const s=[];return t.forEach(c=>{let u=ir(c,2),h=u[0],_=u[1],B=_.kind;switch(_.id,B){case rr.VIDEO:return void(h._videoSSRC&&s.push({stream_type:rr.VIDEO,ssrcId:h._videoSSRC}));case rr.AUDIO:return void(h._audioSSRC&&s.push({stream_type:rr.AUDIO,ssrcId:h._audioSSRC}))}}),s}withdrawRemoteTracks(t){t.forEach(s=>{let c=ir(s,2),u=c[0],h=c[1].kind;const _=this.remoteUserMap.get(u);_&&(_.delete(h),Array.from(_.entries()).length===0&&this.remoteUserMap.delete(u))})}async updateBitrateLimit(t){const s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalVideoLowTrack);s&&(await s.track.setBitrateLimit(t.uplink),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(s.track,u,h,!0)})),c&&t.low_stream_uplink&&(await c.track.setBitrateLimit({max_bitrate:t.low_stream_uplink.bitrate,min_bitrate:t.low_stream_uplink.bitrate||0}),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(c.track,u,h,!0)}))}isP2PDisconnected(){if(this.sendConnection&&this.recvConnection){const t=this.sendConnection.peerConnectionState,s=this.recvConnection.peerConnectionState;return t!=="connected"&&s!=="connected"}return!0}async tryToUnmuteAudio(t){for(let s=0;sthis.getStats(t),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()).filter(t=>!!ir(t,2)[1].ssrcs),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=t=>{var s;return!((s=this.recvConnection)===null||s===void 0||!s.getRemoteVideoIsReady(t))},this.statsUploader.requestUpload=(t,s)=>this.emit(Cr.RequestUpload,t,s),this.statsUploader.requestUploadStats=t=>this.emit(Cr.RequestUploadStats,t),this.statsUploader.requestAllTracks=()=>this.getAllTracks()}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await so(Lf(this.dtlsFailedCount,So)),this.emit(Cr.RequestReconnect)}async reconnectP2P(){}canPublishLowStream(){return this.localTrackMap.has(Qt.LocalVideoTrack)||this.pendingLocalTracks.some(t=>t instanceof pn)}throwIfTrackTypeNotMatch(t){if(t.filter(s=>s instanceof pn).length>1)throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(t.filter(s=>s instanceof po).length>1&&(t.some(s=>s instanceof po&&s._bypassWebAudio)||!Si().webAudioMediaStreamDest))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(const s of t){if(s instanceof pn&&this.pendingLocalTracks.some(c=>c instanceof pn))throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(s instanceof po&&this.pendingLocalTracks.some(c=>c instanceof po)&&(!Si().webAudioMediaStreamDest||s._bypassWebAudio||this.pendingLocalTracks.some(c=>c instanceof po&&c._bypassWebAudio)))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(t,s){const c=!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding,u=$F($F({},{width:160,height:120,framerate:15,bitrate:50}),s);let h;h=c?t._mediaStreamTrack.clone():dz(t,u);const _=un(8,"track-low-"),B=new pn(h,$F($F({},c&&{scaleResolutionDownBy:xX(u,t)}),{},{frameRate:u.framerate,bitrateMax:u.bitrate,bitrateMin:u.bitrate}),void 0,void 0,_);return B.on(dh.TRANSCEIVER_UPDATED,Q=>{t._updateRtpTransceiver(Q,xC.LOW_STREAM)}),B._hints.push(gn.LOW_STREAM),t.addListener(xt.NEED_CLOSE,()=>{B.close()}),B}async globalLock(){return this.recvMutex.lock("From P2PChannel2.globalLock")}reportVideoFirstFrameDecoded(t,s,c,u){var h;const _=Array.from(js(h=this.remoteUserMap).call(h)).find(B=>B._videoSSRC===t);if(_){u||this.store.subscribe(_.uid,"video",void 0,void 0,void 0,void 0,Date.now());const B=this.store.keyMetrics,Q=B.subscribe.find(T=>T.userId===_.uid&&T.type==="video");qt.firstRemoteVideoDecode(this.store.sessionId,Rs.FIRST_VIDEO_DECODE,ao.FIRST_VIDEO_DECODE,{peer:_._uintid,videowidth:s,videoheight:c,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,t),subscribeRequestid:t,p2pid:this.store.p2pId,apEnd:B.requestAPEnd||0,apStart:B.requestAPStart||0,joinGwEnd:B.joinGatewayEnd||0,joinGwStart:B.joinGatewayStart||0,pcEnd:B.peerConnectionEnd||0,pcStart:B.peerConnectionStart||0,subscriberEnd:(Q==null?void 0:Q.subscribeEnd)||0,subscriberStart:(Q==null?void 0:Q.subscribeStart)||0,videoAddNotify:(Q==null?void 0:Q.streamAdded)||0,state:u?1:0})}}async remoteMediaSsrcChanged(t,s,c){if(!this.recvConnection)return!1;const u=this.remoteUserMap.get(t);if(!u)return!1;const h=u.get(s);if(!h)return!1;const _=await this.recvConnection.getRemoteSSRC(h);return _!==void 0&&_!==c}isPreSubScribe(t){return!1}async publishDataChannel(t){throw new tt(Ce.NOT_SUPPORTED)}async unpublishDataChannel(t){throw new tt(Ce.NOT_SUPPORTED)}async subscribeDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}async unsubscribeDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}hasPendingRemoteDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}setPendingRemoteDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}async preConnect(t){throw new tt(Ce.NOT_SUPPORTED)}getEstablishParams(){throw new tt(Ce.NOT_SUPPORTED)}async reSubscribe(t){throw new tt(Ce.NOT_SUPPORTED)}reportVideoFirstFrameRender(t){}async updateVideoStreamParameter(t,s){throw new tt(Ce.NOT_SUPPORTED)}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1].track;c===Qt.LocalVideoLowTrack?u._updateRtpTransceiver(void 0,xC.LOW_STREAM):u._updateRtpTransceiver(void 0)})}},Pt(Ko.prototype,"p2pConnect",[Wie],Object.getOwnPropertyDescriptor(Ko.prototype,"p2pConnect"),Ko.prototype),Pt(Ko.prototype,"unpublish",[Xie],Object.getOwnPropertyDescriptor(Ko.prototype,"unpublish"),Ko.prototype),Pt(Ko.prototype,"unpublishLowStream",[zie],Object.getOwnPropertyDescriptor(Ko.prototype,"unpublishLowStream"),Ko.prototype),Pt(Ko.prototype,"subscribe",[$ie],Object.getOwnPropertyDescriptor(Ko.prototype,"subscribe"),Ko.prototype),Pt(Ko.prototype,"mockSubscribe",[Zie],Object.getOwnPropertyDescriptor(Ko.prototype,"mockSubscribe"),Ko.prototype),Pt(Ko.prototype,"unsubscribe",[ene],Object.getOwnPropertyDescriptor(Ko.prototype,"unsubscribe"),Ko.prototype),Pt(Ko.prototype,"muteRemote",[tne],Object.getOwnPropertyDescriptor(Ko.prototype,"muteRemote"),Ko.prototype),Pt(Ko.prototype,"unmuteRemote",[rne],Object.getOwnPropertyDescriptor(Ko.prototype,"unmuteRemote"),Ko.prototype),Pt(Ko.prototype,"hasRemoteMediaWithLock",[ine],Object.getOwnPropertyDescriptor(Ko.prototype,"hasRemoteMediaWithLock"),Ko.prototype),Pt(Ko.prototype,"disconnectForReconnect",[nne],Object.getOwnPropertyDescriptor(Ko.prototype,"disconnectForReconnect"),Ko.prototype),Pt(Ko.prototype,"remoteMediaSsrcChanged",[one],Object.getOwnPropertyDescriptor(Ko.prototype,"remoteMediaSsrcChanged"),Ko.prototype),Ko);function cE(t){return function(s,c,u){const h=s[c];if(typeof h!="function")throw new Error("Cannot use mutex on object property.");return u.value=async function(){for(var _=arguments.length,B=new Array(_),Q=0;Q<_;Q++)B[Q]=arguments[Q];switch(t){case AE.SEND_ONLY:{const T=await this.sendMutex.lock("From P2PChannel2.".concat(c));try{return await h.apply(this,B)}finally{T()}}case AE.RECEIVE_ONLY:{const T=await this.recvMutex.lock("From P2PChannel2.".concat(c));try{return await h.apply(this,B)}finally{T()}}default:{const T=await this.sendMutex.lock("From P2PChannel2.".concat(c)),D=await this.recvMutex.lock("From P2PChannel2.".concat(c));try{return await h.apply(this,B)}finally{T(),D()}}}},u}}class Cm extends Cn{constructor(s,c){super(),ae(this,"signal",void 0),ae(this,"token",void 0),ae(this,"tokenTimeout",void 0),ae(this,"tokenInterval",void 0),ae(this,"_sequence",0),ae(this,"userMap",new Map),ae(this,"encoder",new TextEncoder),this.signal=s,this.token=c;const u=()=>{this.signal.connectionState===Ci.CONNECTED&&this.check(),this.userMap.size===0?this.tokenInterval=window.setTimeout(u,1e3):this.tokenInterval=window.setTimeout(u,3*de("P2P_TOKEN_INTERVAL"))};u()}async send(s,c,u,h,_){var B;if(this.userMap.size===0)return;const Q=Array.from(BA(B=this.userMap).call(B))[0].token;typeof c!="string"&&(c=JSON.stringify(c)),h=h??un(6,""),_=_??this._sequence++;const T={_id:h,_type:s,_seq:_,_message:c,token:"".concat(this.token,"_").concat(Q)};de("SHOW_P2P_LOG")&&J.debug("send message",T,"noNeedResponse : ".concat(u)),this.splitMessage(JSON.stringify(T)).forEach(O=>{this.signal.request(ur.DATA_STREAM,{payload:kd(this.encoder.encode(O))})});const D=new Ut((O,P)=>{const U=window.setTimeout(()=>{this.off("res-@".concat(h,"_ack"),H),this.off("res-@".concat(h),Z),this.off(Pg.ABORT,$),J.debug("[external-signal] request timeout, type: ".concat(s,", requestId: ").concat(h)),this.userMap.size===0?P(new tt(Ce.INVALID_REMOTE_USER)):P(new tt(Ce.TIMEOUT))},de("EXTERNAL_SIGNAL_REQUEST_TIMEOUT")),H=()=>{U&&window.clearTimeout(U),this.off(Pg.ABORT,$),u&&O()},$=()=>{U&&window.clearTimeout(U),this.off("res-@".concat(h,"_ack"),H),this.off("res-@".concat(h),Z),P(new tt(Ce.EXTERNAL_SIGNAL_ABORT,"type: ".concat(s,", requestId: ").concat(h)))};this.once(Pg.ABORT,$),this.once("res-@".concat(h,"_ack"),H);const Z=(se,ge)=>{te=!0,U&&window.clearTimeout(U),this.off("res-@".concat(h,"_ack"),H),this.off(Pg.ABORT,$),se==="success"?O(ge):P(new tt(Ce.P2P_MESSAGE_FAILED,"request ".concat(s," failed, requestId: ").concat(h)))};let te=!1;u||(this.once("res-@".concat(h),Z),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{te||J.warning("external_signal request timeout, type: ".concat(s,", requestId: ").concat(h,", ").concat(T))}))});try{return await D}catch(O){if(O.code===Ce.TIMEOUT)return await this.send(s,c,u,h,_);throw O}}onMessage(s){var c;const u=s._uid;let h,_=this.userMap.get(u);if(_)h=_.splitMessageMap;else{if(this.userMap.size>0||!("_type"in s)||s._type!==Go.CHECK)return;const O=s.token;h=new Map,_={uid:u,isStart:!0,token:O,splitMessageMap:h,nextExpectedSequenceNumber:0,receivedMessagesMap:new Map},this.userMap.set(u,_),this.signal.emit(Ur.ON_USER_ONLINE,{uid:u}),this.handleUserOnline()}if("id"in s&&"total"in s){var B;const O=s,P=O.id,U=O.total,H=(B=h.get(P))!==null&&B!==void 0?B:[];if(H.push(s),h.has(P)||h.set(P,H),H.length!==U)return;{const $=x1(H).call(H,(Z,te)=>Z.index-te.index).map(Z=>Z.payload).join("");h.delete(P),(s=JSON.parse($))._uid=u}}const Q=s,T=Q._type,D=Q.token;if(Et(c=[Go.ACK,Go.CHECK]).call(c,T))return T===Go.CHECK&&this.handleCheckToken(_,D),void this.receiveMessage(s);D==="".concat(_.token,"_").concat(this.token)?this.handleReceivedMessage(s):J.debug('Receive unexpected message", '.concat(D,", cur_token: ").concat(_.token,"_").concat(this.token),s)}check(){const s={_id:un(6,""),token:this.token,_type:Go.CHECK};de("SHOW_P2P_LOG")&&J.debug("send message",s),this.signal.request(ur.DATA_STREAM,{payload:kd(this.encoder.encode(JSON.stringify(s)))})}ack(s){const c={_id:s,_type:Go.ACK,token:this.token};de("SHOW_P2P_LOG")&&J.debug("send message",c),this.signal.request(ur.DATA_STREAM,{payload:kd(this.encoder.encode(JSON.stringify(c)))})}response(s,c,u){this.send(Go.RESPONSE,JSON.stringify({success:!u,message:c}),!0,s)}handleReceivedMessage(s){const c=()=>{this.userMap.forEach(O=>{const P=O.receivedMessagesMap,U=O.nextExpectedSequenceNumber;for(;P.has(U);){const H=P.get(U);P.delete(U),this.receiveMessage(H),O.nextExpectedSequenceNumber++}})};if(!s)return void c();const u=s,h=u._uid,_=u._seq,B=this.userMap.get(h),Q=B.receivedMessagesMap,T=B.isStart,D=B.nextExpectedSequenceNumber;if(_{this.response(s._id,Q)}).catch(()=>{this.response(s._id,void 0,!0)});break;case Go.ACK:this.getListeners("res-@".concat(c,"_ack")).length>0&&this.emit("res-@".concat(c,"_ack"));break;case Go.RESPONSE:{const Q=B,T=Q.success,D=Q.message;this.emit("res-@".concat(c),T?"success":"failed",D);break}}}}splitMessage(s){if(s.length0;){_++;const T={id:h,index:_,total:Q,payload:s.slice(0,B),token:"".concat(this.token,"_").concat(u)};JSON.stringify(T).length>Cm.MAX_MESSAGE_SIZE?B-=50:(c.push(T),s=s.slice(B))}return c.map(T=>JSON.stringify(T))}handleCheckToken(s,c){return s.token!==c?(J.debug("token changed, from ".concat(s.token," to ").concat(c)),this.reset(s.uid,c),!1):(this.tokenTimeout&&(window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0),this.tokenTimeout=window.setTimeout(()=>{J.debug("token timeout, ".concat(c)),this.reset(s.uid)},de("MAX_P2P_TIMEOUT")),!0)}async handleUserOnline(){const s=await $o(this.signal,Go.CALL,void 0),c=await this.send(Go.CALL,s);this.signal.emit(er.P2P_CONNECTION,c,!0)}async reset(s,c){const u=this.userMap.get(s);u&&(this.emit(Pg.ABORT),this.signal.emit(Ur.ON_USER_OFFLINE,{uid:u.uid,reason:qJ.P2P_TOKEN_CHANGED}),this._sequence=0,this.userMap.clear(),c||(J.debug("change local token from ".concat(c," to ").concat(c)),this.token=un(6,"")))}clear(){this._sequence=0,this.userMap.clear(),this.tokenInterval&&window.clearTimeout(this.tokenInterval),this.tokenInterval=void 0,this.tokenTimeout&&window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0,this.emit(Pg.ABORT)}}ae(Cm,"MAX_SIZE",1),ae(Cm,"MAX_MESSAGE_SIZE",1024);class Qle extends Cn{get connectionState(){return this._connectionState}set connectionState(s){s!==this._connectionState&&(this._connectionState=s,s===Ci.CONNECTED?this.emit(er.WS_CONNECTED):s===Ci.RECONNECTING?this.emit(er.WS_RECONNECTING,this._websocketReconnectReason):s===Ci.CLOSED&&this.emit(er.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(s,c){super(),ae(this,"__name__","P2PSignal"),ae(this,"_disconnectedReason",void 0),ae(this,"_websocketReconnectReason",void 0),ae(this,"_connectionState",Ci.CLOSED),ae(this,"reconnectToken",void 0),ae(this,"p2pToken",void 0),ae(this,"websocket",void 0),ae(this,"openConnectionTime",void 0),ae(this,"clientId",void 0),ae(this,"lastMsgTime",Date.now()),ae(this,"uploadCache",[]),ae(this,"uploadCacheInterval",void 0),ae(this,"rttRolling",new VR(5)),ae(this,"pingpongTimer",void 0),ae(this,"pingpongTimeoutCount",0),ae(this,"joinResponse",void 0),ae(this,"multiIpOption",void 0),ae(this,"initError",void 0),ae(this,"spec",void 0),ae(this,"store",void 0),ae(this,"_external_signal",void 0),ae(this,"onWebsocketMessage",u=>{if(u.data instanceof ArrayBuffer)return void this.emit(er.ON_BINARY_DATA,u.data);const h=JSON.parse(u.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(h,"_id")){const _="res-@".concat(h._id);this.emit(_,h._result,h._message)}else if(Object.prototype.hasOwnProperty.call(h,"_type")){switch(h._type){case Ur.ON_DATA_STREAM:return void this.handleDataStream(h._message);case Ur.MUTE_AUDIO:case Ur.MUTE_VIDEO:case Ur.ON_P2P_LOST:case Ur.ON_USER_ONLINE:return;case Ur.ON_USER_OFFLINE:const _=h._message.uid;return J.debug("[".concat(this.clientId,"] user-offline uid: ").concat(_)),void this._external_signal.reset(_)}if(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED)switch(h._message.error_code){case 14:this.close(mi.UID_BANNED);break;case 15:this.close(mi.IP_BANNED);break;case 16:this.close(mi.CHANNEL_BANNED)}if(h._type===Ur.ON_USER_LICENSE_BANNED)switch(h._message.error_code){case Br.ERR_LICENSE_MISSING:this.close(mi.LICENSE_MISSING);break;case Br.ERR_LICENSE_EXPIRED:this.close(mi.LICENSE_EXPIRED);break;case Br.ERR_LICENSE_MINUTES_EXCEEDED:this.close(mi.LICENSE_MINUTES_EXCEEDED);break;case Br.ERR_LICENSE_PERIOD_INVALID:this.close(mi.LICENSE_PERIOD_INVALID);break;case Br.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(mi.LICENSE_MULTIPLE_SDK_SERVICE);break;case Br.ERR_LICENSE_ILLEGAL:this.close(mi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=s.clientId,this.spec=s,this.store=c,this.websocket=new Bh("gateway-".concat(this.clientId),this.spec.retryConfig,!0,de("JOIN_GATEWAY_USE_DUAL_DOMAIN"),de("JOIN_GATEWAY_USE_443PORT_ONLY"),c),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Ci.CONNECTED&&this.reconnect("retry",Ss.OFFLINE)}),this.p2pToken=un(6,""),this._external_signal=new Cm(this,this.p2pToken)}async request(s,c,u,h){const _=un(6,""),B={_id:_,_type:s,_message:c},Q=this.websocket.connectionID,T=()=>new Ut(($,Z)=>{if(this.connectionState===Ci.CONNECTED)return $();const te=()=>{this.off(er.WS_CLOSED,se),$()},se=()=>{this.off(er.WS_CONNECTED,te),Z(new tt(Ce.WS_ABORT))};this.once(er.WS_CONNECTED,te),this.once(er.WS_CLOSED,se)});if(this.connectionState!==Ci.CONNECTING&&this.connectionState!==Ci.RECONNECTING||s===ur.JOIN||s===ur.REJOIN||await T(),this.websocket.sendMessage(B,!0),h)return;const D=new Ut(($,Z)=>{let te=!1;const se=(me,Qe)=>{te=!0,$({isSuccess:me==="success",message:Qe||{}}),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.emit(er.REQUEST_SUCCESS,s,c)};this.once("res-@".concat(_),se);const ge=()=>{Z(new tt(Ce.WS_ABORT,"type: ".concat(s))),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.off("res-@".concat(_),se)};this.once(er.WS_CLOSED,ge),this.once(er.WS_RECONNECTING,ge),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==Q||te||(J.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(s)),this.emit(er.REQUEST_TIMEOUT,s,c))})});let O=null;try{O=await D}catch($){if(this.connectionState===Ci.CLOSED||s===ur.LEAVE)throw new tt(Ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||u?$.throw():s===ur.JOIN||s===ur.REJOIN?null:(await T(),await this.request(s,c))}if(O.isSuccess)return O.message;const P=Number(O.message.error_code||O.message.code),U=m1(P),H=new tt(Ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(O.message.error_str),{code:P,data:O.message,desc:U.desc});return U.action==="success"?O.message:(J.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(s,", error_code: ").concat(P,", message: ").concat(U.desc,", action: ").concat(U.action)),P===Br.ERR_TOO_MANY_BROADCASTERS?((s===ur.JOIN||s===ur.REJOIN)&&(this.initError=H,this.close()),H.throw()):U.action==="failed"?H.throw():U.action==="quit"?(this.initError=H,this.close(),H.throw()):(P===Br.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=O.message.option,J.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Ss.MULTI_IP)):this.reconnect(U.action,Ss.SERVER_ERROR),s===ur.JOIN||s===ur.REJOIN?null:await this.request(s,c)))}waitMessage(s,c){return new Ut(u=>{const h=_=>{(!c||c(_))&&(this.off(s,h),u(_))};this.on(s,h)})}uploadWRTCStats(s){if(!this.store.sessionId)return void J.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));const c={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:s};this.upload(Mu.WRTC_STATS,c)}upload(s,c){const u={_type:s,_message:c};try{this.websocket.sendMessage(u)}catch{const _=de("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(u),this.uploadCache.length>_&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Ci.CONNECTED)return;const B=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(B._type,B._message)},de("UPLOAD_CACHE_INTERVAL")||2e3))}}send(s,c){const u={_type:s,_message:c};this.websocket.sendMessage(u)}async sendExtensionMessage(s,c,u){return await this._external_signal.send(s,c,u)}init(s){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ut((c,u)=>{this.once(er.WS_CONNECTED,()=>c(this.joinResponse)),this.once(er.WS_CLOSED,()=>u(this.initError||new tt(Ce.WS_ABORT))),this.connectionState=Ci.CONNECTING,this.websocket.init(s).catch(u)})}close(s){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._external_signal.clear(),this._disconnectedReason=s||mi.LEAVE,this.connectionState=Ci.CLOSED,J.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close(),this.p2pToken=un(6,""),this._external_signal.clear(),this._external_signal=new Cm(this,this.p2pToken)}async join(){if(!this.joinResponse){this.emit(er.ABORT_P2P_EXECUTION);const s=await $o(this,er.REQUEST_JOIN_INFO),c=await this.request(ur.JOIN,s);if(!c)return this.emit(er.REPORT_JOIN_GATEWAY,Ce.TIMEOUT,this.url||""),!1;this.joinResponse=c,this.emit(er.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}reconnect(s,c){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(s,c)}async downgradeCodec(s){return!1}handleDataStream(s){try{var c;const u=Yr(s.payload),h=new TextDecoder().decode(u),_=JSON.parse(h);"total"in _&&"id"in _||Et(c=Object.values(Go)).call(c,_._type)?(_._uid=s.uid,this._external_signal.onMessage(_)):this.emit(Ur.ON_DATA_STREAM,s)}catch{this.emit(Ur.ON_DATA_STREAM,s)}}handleNotification(s){J.debug("[".concat(this.clientId,"] receive notification: "),s);const c=m1(s.code);if(c.action!=="success"){if(c.action!=="failed")return c.action==="quit"?s.code===Br.ERR_REPEAT_JOIN_CHANNEL&&de("IGNORE_UID_CHECK")?void this.close(mi.UID_CONFLICT):(c.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(mi.UID_BANNED),void this.close()):void this.reconnect(c.action,Ss.SERVER_ERROR);J.error("[".concat(this.clientId,"] ignore error: "),c.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;const s=de("PING_PONG_TIME_OUT"),c=Date.now();this.pingpongTimeoutCount>=s&&(J.warning("[".concat(this.clientId,"] PINGPONG Timeout. Last Socket Message: ").concat(c-this.lastMsgTime,"ms")),c-this.lastMsgTime>de("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",Ss.TIMEOUT):this.request(ur.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;const u=Date.now()-c;this.rttRolling.add(u),de("REPORT_STATS")&&this.send(ur.PING_BACK,{pingpongElapse:u})}).catch(u=>{})}handleWebsocketEvents(){this.websocket.on(jr.RECONNECT_CREATE_CONNECTION,s=>{this.emit(er.WS_RECONNECT_CREATE_CONNECTION,s)}),this.websocket.on(jr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(jr.CLOSED,()=>{this.connectionState=Ci.CLOSED}),this.websocket.on(jr.FAILED,()=>{this._disconnectedReason=mi.NETWORK_ERROR,this.connectionState=Ci.CLOSED}),this.websocket.on(jr.RECONNECTING,s=>{this._websocketReconnectReason=s,this.joinResponse=void 0,this.connectionState===Ci.CONNECTED?this.connectionState=Ci.RECONNECTING:this.connectionState=Ci.CONNECTING}),this.websocket.on(jr.WILL_RECONNECT,(s,c,u)=>{s!=="retry"?(J.debug("".concat(this.clientId," websocket will_connect event, renewSession reconnectMode is ").concat(s)),this.reconnectToken=void 0):J.debug("".concat(this.clientId," reconnect mode is retry, no need to renew session")),u(s)}),this.websocket.on(jr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.join().catch(s=>{if(this.emit(er.REPORT_JOIN_GATEWAY,s,this.url||""),s instanceof tt&&s.code===Ce.UNEXPECTED_RESPONSE&&s.data.code===Br.ERR_NO_AUTHORIZED)return J.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",Ss.SERVER_ERROR);J.error("[".concat(this.clientId,"] join gateway request failed"),s.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Ss.SERVER_ERROR):(this.initError=s,this.close())})}),this.websocket.on(jr.REQUEST_NEW_URLS,(s,c)=>{$o(this,er.REQUEST_RECOVER,this.multiIpOption).then(s).catch(c)}),this.websocket.on(jr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE)})}}const Tle={name:"P2PChannel",create:function(t){let s=t.store,c=t.statsCollector;return new yle(s,c)},createSubmodule:function(t){let s=t.store,c=t.spec;return new Qle(c,s)}};function ane(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Ane(t){for(var s=1;ste.payloadType.toString(10));const $=B.videoCodecs.filter(te=>{var se,ge;return(se=te.rtpMap)===null||se===void 0?void 0:Et(ge=se.encodingName.toLowerCase()).call(ge,D)}),Z=B.videoCodecs.filter(te=>!Et($).call($,te));H.attributes.payloads=[...$,...Z],H.attributes.extmaps=B.videoExtensions}H.media.mediaType==="audio"&&(H.media.fmts=B.audioCodecs.map($=>$.payloadType.toString(10)),H.attributes.payloads=B.audioCodecs,H.attributes.extmaps=B.audioExtensions),P.mediaDescriptions[U]=this.mungMediaDesc(H)}this.sessionDesc=P,this.currentMidIndex=P.mediaDescriptions.length-1}toString(){return X1(this.sessionDesc)}send(s,c,u){const h=I9(c,this.cname),_=h.ssrcs,B=h.ssrcGroups,Q=this.sessionDesc.mediaDescriptions.find(O=>s===rr.VIDEO?O.media.mediaType==="video":O.media.mediaType==="audio"),T=_[0].attributes.label,D=_[0].attributes.mslabel;return Q.attributes.ssrcs=Q.attributes.ssrcs.concat(_),Q.attributes.ssrcGroups=Q.attributes.ssrcGroups.concat(B),{id:T,mslabel:D}}batchSend(s){return s.map(c=>{let u=c.kind,h=c.ssrcMsg;return this.send(u,h,void 0)})}stopSending(s){this.sessionDesc.mediaDescriptions.forEach(c=>{const u=[],h=[],_=[];c.attributes.ssrcs.forEach(B=>{Et(s).call(s,B.attributes.label||"")?_.push(B):u.push(B)}),c.attributes.ssrcGroups.forEach(B=>{var Q;Et(Q=_.map(T=>T.ssrcId)).call(Q,B.ssrcIds[0])||h.push(B)}),c.attributes.ssrcs=u,c.attributes.ssrcGroups=h})}mute(s){const c=this.sessionDesc.mediaDescriptions.find(u=>u.attributes.mid===s);if(!c)throw new Error("mediaDescription not found with ".concat(s," in remote SDP when calling RemoteSDP.mute."));c.attributes.direction="inactive"}unmute(s){const c=this.sessionDesc.mediaDescriptions.find(u=>u.attributes.mid===s);if(!c)throw new Error("mediaDescription not found with ".concat(s," in remote SDP when calling RemoteSDP.unmute."));c.attributes.direction="sendonly"}receive(s,c,u){s.forEach((h,_)=>{const B=h._mediaStreamTrack,Q=this.sessionDesc.mediaDescriptions.findIndex(D=>D.attributes.mid===B.kind),T=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[Q],h);this.sessionDesc.mediaDescriptions[Q]=T})}stopReceiving(s){}updateCandidates(s){const c=this._originCandidates.filter(h=>h.transport==="udp"),u=[];if(c.forEach(h=>{u.push(Ane(Ane({},h),{},{foundation:"tcpcandidate",priority:Number(h.priority)-1+"",transport:"tcp",port:Number(h.port)+90+""}))}),c.length!==0){switch(s){case qs.TCP_RELAY:this.candidates=u;break;case qs.UDP_TCP_RELAY:case qs.RELAY:this.candidates=[...c,...u];break;default:this.candidates=c}for(const h of this.sessionDesc.mediaDescriptions)h.attributes.candidates=this.candidates}}restartICE(s){s=go(s),this.iceParameters=s,this.sessionDesc.mediaDescriptions.forEach(c=>{c.attributes.iceUfrag=s.iceUfrag,c.attributes.icePwd=s.icePwd})}predictReceivingMids(s){const c=[];for(let u=0;uh.attributes.mid===s);if(u!==-1){const h=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[u],c);this.sessionDesc.mediaDescriptions[u]=h}}bumpMid(s){this.currentMidIndex+=s}updateTrackLabel(s,c,u){const h=this.sessionDesc.mediaDescriptions.find(B=>s===rr.VIDEO?B.attributes.mid==="video":B.attributes.mid==="audio");if(h){const B=h.attributes.ssrcs.find(Q=>Q.attributes.label===c);var _;B&&(B.attributes.label=u,(_=B.attributes.msid)===null||_===void 0||_.replace(c,u))}}mungMediaDesc(s){const c=go(s);return GX(c),function(u){const h=u.attributes.extmaps.find(_=>vF(_.extensionName));h&&u.attributes.extmaps.splice(u.attributes.extmaps.indexOf(h),1),u.attributes.payloads.forEach(_=>{const B=_.rtcpFeedbacks.findIndex(Q=>Q.type==="transport-cc");B!==-1&&_.rtcpFeedbacks.splice(B,1)})}(c),c}getSSRC(s){for(const c of this.sessionDesc.mediaDescriptions)for(const u of c.attributes.ssrcs)if(u.attributes.label===s)return[u]}}var lo;function cne(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function ZF(t){for(var s=1;ss.rtpMap&&s.rtpMap.encodingName.toLowerCase()||"").filter(s=>{var c;return Et(c=Object.keys(Qn)).call(c,s)}))]}constructor(s,c){super(s,c),ae(this,"store",void 0),ae(this,"peerConnection",void 0),ae(this,"remoteSDP",void 0),ae(this,"initialOffer",void 0),ae(this,"statsFilter",void 0),ae(this,"useRTX",!1),ae(this,"localCapabilities",void 0),ae(this,"localCandidateCount",0),ae(this,"allCandidatesReceived",!1),ae(this,"establishPromise",void 0),ae(this,"mutex",void 0),this.store=c,this.mutex=new ra("P2PConnection-mutex",c.clientId),this.peerConnection=new RTCPeerConnection(D9.resolvePCConfiguration(s),{optional:[{googDscp:!0}]}),this.statsFilter=WA(this.peerConnection,de("STATS_UPDATE_INTERVAL"),void 0,Ln()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,this.establishPromise=this.establish()}async establish(){try{const s=await this.peerConnection.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});if(!s.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const c=Yh(s.sdp),u=h9(s.sdp,{filterRTX:!this.useRTX,filterVideoFec:de("FILTER_VIDEO_FEC"),filterAudioFec:de("FILTER_AUDIO_FEC"),filterAudioCodec:["opus"]});return this.localCapabilities=u,this.initialOffer=s,ZF(ZF({},c),{},{rtpCapabilities:{send:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},recv:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},sendrecv:u},offerSDP:s.sdp})}catch(s){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,s.toString())}}async updateRemoteConnect(){}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.remoteSDP=new wle(ZF(ZF({},s),{},{rtpCapabilities:s.rtpCapabilities.send,localCapabilities:this.localCapabilities,sdkCodec:this.store.codec}));const c=this.remoteSDP.toString();await this.peerConnection.setLocalDescription(this.initialOffer),await this.peerConnection.setRemoteDescription({type:"answer",sdp:c})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(c.toString()))}}async updateRemoteRTPCapabilities(s,c){throw new tt(Ce.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}getPreMedia(s){}send(s,c){var u=this;return AA(function*(){const h=yield Tr(u.mutex.lock());try{if(!u.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");const _=s.map(U=>u.peerConnection.addTrack(U._mediaStreamTrack)),B=yield Tr(u.peerConnection.createOffer()),Q=wa(B.sdp),T=s.map(U=>{const H=U._mediaStreamTrack,$=Q.mediaDescriptions.find(Z=>Z.attributes.mid===H.kind);if(!$)throw new Error("Cannot extract ssrc from mediaDescription.");return function(Z,te,se){const ge=Z.attributes.ssrcs.filter(Qe=>Qe.attributes.label===te),me=Z.attributes.ssrcGroups;if(ge.length===0)throw new Error("Cannot extract ssrc from plan-b SDP.");if(me&&ge.length>1){const Qe=me.find(Oe=>Oe.ssrcIds.indexOf(ge[0].ssrcId)!==-1);return Qe?[{ssrcId:Qe.ssrcIds[0],rtx:se?Qe.ssrcIds[1]:void 0}]:[{ssrcId:ge[0].ssrcId}]}return[{ssrcId:ge[0].ssrcId}]}($,H.id,u.useRTX)});let D;try{D=yield T}catch(U){throw _.forEach(H=>{Zs()&&H.replaceTrack(null),u.peerConnection.removeTrack(H)}),U}const O=u.mungSendOfferSDP(B.sdp,s);u.remoteSDP.receive(s,c,D);const P=u.remoteSDP.toString();return yield Tr(u.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(u.applySendEncodings(_,s)),yield Tr(u.peerConnection.setRemoteDescription({type:"answer",sdp:P})),s.map((U,H)=>{const $=U._mediaStreamTrack.id;return{localSSRC:T[H],id:$}})}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(_.toString()))}finally{h()}})()}async stopSending(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");const c=this.peerConnection.getSenders().filter(_=>{var B;return s.indexOf(((B=_.track)===null||B===void 0?void 0:B.id)||"")!==-1});if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");c.map(_=>{Zs()&&_.replaceTrack(null),this.peerConnection.removeTrack(_)});const u=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(u),this.remoteSDP.stopReceiving(s);const h=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:h})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(c.toString()))}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,h),B=_.id,Q=_.mslabel,T=new Ut((P,U)=>{const H=setTimeout(()=>{U(new Error("Cannot receive track, id: ".concat(B)))},1e4),$=Z=>{const te=Qi();if((te.name==="Safari"&&Number(te.version)===11||Ia())&&Z.track.id!==B&&Z.streams[0].id===Q){var se;const ge=Z.streams[0].getTracks()[0];return(se=this.remoteSDP)===null||se===void 0||se.updateTrackLabel(s,B,Z.track.id),this.peerConnection.removeEventListener("track",$),clearTimeout(H),void P(ge)}if(Z.track.id===B)return this.peerConnection.removeEventListener("track",$),clearTimeout(H),void P(Z.track)};this.peerConnection.addEventListener("track",$)}),D=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:D});const O=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(O),{track:await T,id:B}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const u=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(u)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}async muteRemote(s){}async unmuteRemote(s){}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");const c=this.peerConnection.getSenders().filter(u=>{var h;return s.indexOf(((h=u.track)===null||h===void 0?void 0:h.id)||"")!==-1});if(c.length!==s.length)throw new Error("sender' length doesn't match mids' length.");c.map(u=>{if(Zs()&&u.track)u.track.enabled=!1;else{const h=u.getParameters();h.encodings.forEach(_=>_.active=!1),u.setParameters(h)}})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");const c=this.peerConnection.getSenders().filter(_=>{var B;return s.indexOf(((B=_.track)===null||B===void 0?void 0:B.id)||"")!==-1});if(c.length!==s.length)throw new Error("Senders' length doesn't match mids' length.");c.map(async _=>{if(Zs()&&_.track)_.track.enabled=!0;else{const B=_.getParameters();B.encodings.forEach(Q=>Q.active=!0),await _.setParameters(B)}});const u=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(u);const h=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:h})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(c.toString()))}}restartICE(s){var c=this;return AA(function*(){const u=yield Tr(c.mutex.lock("From P2PConnection.restartICE"));try{if(!c.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");const h=Si().supportPCSetConfiguration;if(s===qs.RELAY&&!h)return;if(h){const D=c.peerConnection.getConfiguration(),O=s===qs.RELAY?"relay":"all";D.iceTransportPolicy!==O&&(J.debug("[".concat(c.store.clientId,"] restartICE change iceTransportPolicy from [").concat(D.iceTransportPolicy,"] to [").concat(O,"]")),D.iceTransportPolicy=O,c.peerConnection.setConfiguration(D))}s!==qs.RELAY&&c.remoteSDP.updateCandidates(s);const _=yield Tr(c.peerConnection.createOffer({iceRestart:!0}));if(!_.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const B=Yh(_.sdp),Q=(yield B.iceParameters).remoteIceParameters;c.remoteSDP.restartICE(Q);const T=c.remoteSDP.toString();yield Tr(c.peerConnection.setLocalDescription(_)),yield Tr(c.peerConnection.setRemoteDescription({type:"answer",sdp:T}))}catch(h){J.warning("[".concat(c.store.clientId,"] restart ICE failed, abort operation"),h)}finally{u()}})()}close(){var s;this.peerConnection.close(),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c]);this.remoteSDP.updateRecvMedia(c._mediaStreamTrack.kind,c);const _=this.remoteSDP.toString();await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getSenders().filter(h=>{var _;return((_=h.track)===null||_===void 0?void 0:_.id)===s});u.length===1&&await this.applySendEncodings(u,[c])}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getSenders().find(h=>{var _;return((_=h.track)===null||_===void 0?void 0:_.id)===c});u&&await u.replaceTrack(s._mediaStreamTrack)}createDataChannels(s,c){throw new tt(Ce.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}stopDataChannels(s){throw new tt(Ce.NOT_SUPPORTED,"Planb mode does not support stopDataChannels.")}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s;(s=this.onICEConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidate=s=>{s.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},de("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s){const c={iceServers:[],sdpSemantics:"plan-b"};return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&s.turnServer.mode!=="off"&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:(c.iceServers&&c.iceServers.push(...D9.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...D9.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(u=>{u.forceturn&&(c.iceTransportPolicy="relay")}))),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}async updateRtpSenderEncodings(s,c){var u;if(c||(c=this.peerConnection.getSenders().find(D=>{var O;return((O=D.track)===null||O===void 0?void 0:O.id)===s._mediaStreamTrack.id})),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(!Si().supportSetRtpSenderParameters)return J.warn("Browser not support set rtp-sender parameters");const h={},_={};if(s instanceof pn)switch(s._optimizationMode){case"motion":h.degradationPreference="maintain-framerate";break;case"detail":h.degradationPreference="maintain-resolution";break;default:h.degradationPreference="balanced"}if(de("DSCP_TYPE")&&Al()){var B;const D=de("DSCP_TYPE");Et(B=["very-low","low","medium","high"]).call(B,D)&&(_.networkPriority=D)}const Q=c.getParameters(),T=(u=Q.encodings)===null||u===void 0?void 0:u[0];T&&Object.assign(T,_),Object.assign(Q,h),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(Q.encodings))),await c.setParameters(Q)}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const B=h._mediaStreamTrack,Q=u.mediaDescriptions.find(T=>T.attributes.mid===B.kind);Q&&Am(Q,h)}),X1(u)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0}async batchReceive(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");const c=this.remoteSDP.batchSend(s).map((_,B)=>{let Q=_.id,T=_.mslabel;const D=s[B].kind;return new Ut((O,P)=>{const U=setTimeout(()=>{P(new Error("Cannot receive track, id: ".concat(Q)))},1e4),H=$=>{const Z=Qi();if(Z.name==="Safari"&&Number(Z.version)===11&&$.track.id!==Q&&$.streams[0].id===T){var te;const se=$.streams[0].getTracks()[0];return(te=this.remoteSDP)===null||te===void 0||te.updateTrackLabel(D,Q,$.track.id),this.peerConnection.removeEventListener("track",H),clearTimeout(U),void O({track:se,id:Q})}if($.track.id===Q)return this.peerConnection.removeEventListener("track",H),clearTimeout(U),void O({track:$.track,id:Q})};this.peerConnection.addEventListener("track",H)})}),u=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:u});const h=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(h),await Ut.all(c)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(c.toString()))}}async getRemoteSSRC(s){if(!this.remoteSDP)return;const c=this.remoteSDP.getSSRC(s);return c==null?void 0:c[0].ssrcId}setConfiguration(s){if(Si().supportPCSetConfiguration){const c=D9.resolvePCConfiguration(s);this.peerConnection.setConfiguration(c)}}},Pt(lo.prototype,"connect",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"connect"),lo.prototype),Pt(lo.prototype,"stopSending",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"stopSending"),lo.prototype),Pt(lo.prototype,"receive",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"receive"),lo.prototype),Pt(lo.prototype,"stopReceiving",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"stopReceiving"),lo.prototype),Pt(lo.prototype,"muteRemote",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"muteRemote"),lo.prototype),Pt(lo.prototype,"unmuteRemote",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"unmuteRemote"),lo.prototype),Pt(lo.prototype,"muteLocal",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"muteLocal"),lo.prototype),Pt(lo.prototype,"unmuteLocal",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"unmuteLocal"),lo.prototype),Pt(lo.prototype,"close",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"close"),lo.prototype),Pt(lo.prototype,"updateEncoderConfig",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"updateEncoderConfig"),lo.prototype),Pt(lo.prototype,"updateSendParameters",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"updateSendParameters"),lo.prototype),Pt(lo.prototype,"replaceTrack",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"replaceTrack"),lo.prototype),Pt(lo.prototype,"getRemoteSSRC",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"getRemoteSSRC"),lo.prototype),lo);function cu(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("Locking from P2PConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T1&&arguments[1]!==void 0?arguments[1]:{};if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support audio encoded transform");if(Ls.has(t)||!t.track)return;const c={track:t.track};if(DA()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");let h=null;try{h=t.createEncodedStreams()}catch(B){return void J.error("create audio-encoded-streams error",B&&B.message)}const _=new TransformStream({transform(B,Q){c.controller||(c.controller=Q),t.track&&t.track.id!==c.track.id&&(J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u));const T=s.metadata&&s.metadata();T?function(D,O){const P=O.chunk,U=O.controller,H=Gd.METADATA;P.data=function($,Z,te){const se=te.byteLength,ge=se+by+EN,me=KC+Il+ge,Qe=new ArrayBuffer($.byteLength+me),Oe=new DataView(Qe);Oe.setUint8(0,ka),Oe.setUint16(1,ge),Oe.setUint8(3,Z),Oe.setUint16(4,se);for(let Ne=0;Ne"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"audio-metadata-tx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),_.port1.onmessage=Q=>{var T;if(Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id)J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u);else if(Q.data.getMetadata){const D=s.metadata&&s.metadata();D&&_.port1.postMessage({metadata:D})}},c.worker=h}function u(){if(t.track){if(this.id!==t.track.id)return;t.track.removeEventListener("ended",u)}const h=Ls.get(t);if(h){Ls.delete(t);try{var _,B;(_=h.controller)===null||_===void 0||_.terminate(),(B=h.worker)===null||B===void 0||B.terminate()}catch(Q){J.warning(Q&&Q.message)}}}Ls.set(t,c),t.track.addEventListener("ended",u)},interceptRemoteAudioFrame:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support audio encoded transform");if(Oy.has(t))return;const c={track:t.track,onMetadata:s.onMetadata,onPts:s.onPts};if(DA()&&!Ia()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");Tf(Fi.CHROME,87,116)||(s.enableTopn=!1);let h=null;try{h=t.createEncodedStreams()}catch(B){return void J.error("create audio-encoded-streams error",B&&B.message)}const _=new TransformStream({transform(B,Q){c.controller||(c.controller=Q),t.track&&t.track.id!==c.track.id&&(J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u)),s.enableTopn?function(T,D,O){var P;const U=$t(new DataView(D.data));if(!U)return O.enqueue(D);const H=T.track.id;O2.set(H,T.track);const $=(P=U.tlv.find(Qe=>Qe.tag===Gd.AUDIO_LEVEL))===null||P===void 0?void 0:P.value;let Z=0;typeof $=="number"&&(Z=127-$);const te=function(Qe,Oe){let we=nc.get(Qe);if(we||(we=function(Ne){const et=new sa;return nc.set(Ne,et),ba||(ba=new Ms(de("TOPN_SILENCE_THRESHOLD")||500),ba.on("ActiveSpeakerChanged",st=>{st!=null&&(Pc=st)})),ba.addSpeakers([et]),et}(Qe)),nc.size<=b2)return{selected:!0,speaker:we};if(!ba)throw new Error("no active speaker detector");return ba.levelChanged(we.id,Oe),Ro=ba.loudest.map(Ne=>Ne.id),Pc&&!Et(Ro).call(Ro,Pc)&&Ro.length>=b2&&Ro.pop(),{selected:Et(Ro).call(Ro,we.id)||we.id===Pc,speaker:we}}(T,Math.round(Math.pow(10,Z/60)-1)),se=te.selected,ge=te.speaker,me=function(Qe,Oe,we){const Ne=_1.get(Qe)||new jJ(Qe,Oe);return Ne.score=we,_1.set(Qe,Ne),function(et){if(Vd.set(et,!0),!Ny)return void(Ny=Date.now());const st=Date.now();st-Ny>1e3&&(Vd.get(et)?Vd.set(et,!1):(N2(et),Vd.delete(et)),Ny=st)}(Qe),Ne}(H,T.track,ge.energyScore);me.addSample(se),me.active&&(D.data=U.frame.buffer,O.enqueue(D))}(t,B,Q):s.enableMetadata||s.enablePts?function(T,D,O,P){const U=new DataView(T.data),H=U.getUint8(0);let $;if(128&H&&H!==71){const se=function(ge){if(ge.byteLength<=0)return[];const me=[];let Qe=0;for(;Qe>7,Ne=127&ge.getUint8(Qe);if(!(we&&Qe+4<=ge.byteLength)){Qe++;break}{const et=ge.getUint32(Qe,!1),st=(16776192&et)>>10,Xt=1023&et;me.push({pt:Ne,ts_offset:st,length:Xt,data:new Uint8Array}),Qe+=4}}let Oe=ge.byteLength-Qe;for(const we of me){if(we.length>Oe)return console.warn("Broken red payload"),[];we.length>0&&(we.data=new Uint8Array(ge.buffer,ge.byteOffset+Qe,we.length),Qe+=we.length,Oe-=we.length)}if(Oe>0){const we={pt:me.length>0?me[me.length-1].pt:0,ts_offset:0,length:Oe,data:new Uint8Array(ge.buffer,ge.byteOffset+Qe,Oe)};me.push(we)}return me}(U);if(se.length>0){const ge=function(me){let Qe=0;for(let Ne=0;Ne>>0;Oe[we++]=et>>24&255,Oe[we++]=et>>16&255,Oe[we++]=et>>8&255,Oe[we++]=255&et}else Oe[we++]=127&me[Ne].pt;for(const Ne of me)Oe.set(Ne.data,we),we+=Ne.length;return Oe}(se.map(me=>{const Qe=new Uint8Array(me.length);Qe.set(me.data);const Oe=$t(new DataView(Qe.buffer));return Oe!=null&&Oe.frame&&(me.data=Oe==null?void 0:Oe.frame),$=Oe,me}));T.data=ge.buffer}}else $=$t(U),$&&(T.data=$.frame.buffer);if(D.enqueue(T),!$)return;const Z=$.tlv.find(se=>se.tag===Gd.METADATA);Z&&O&&Z.value instanceof Uint8Array&&O(Z.value);const te=$.tlv.find(se=>se.tag===Gd.AUDIO_64_BIT_PTS);te&&P&&te.value instanceof Uint8Array&&te.value.length==8&&P(new DataView(te.value.buffer).getBigUint64(0,!0))}(B,Q,s.onMetadata,s.onPts):Q.enqueue(B)}});h.readable.pipeThrough(_).pipeTo(h.writable)}else{if(typeof RTCRtpScriptTransform>"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"audio-metadata-rx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),_.port1.onmessage=Q=>{var T;Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id?(J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u)):Q.data.metadata&&c.onMetadata?c.onMetadata(Q.data.metadata):Q.data.pts&&c.onPts&&c.onPts(Q.data.pts)},c.worker=h}function u(){t.track.removeEventListener("ended",u),function(h){const _=Oy.get(h);if(_){(function(T){const D=nc.get(T);D&&(nc.delete(T),ba&&(ba.removeSpeakers([D]),nc.size===0&&(ba.destroy(),ba=null)))})(h),N2(h.track.id),Oy.delete(h);try{var B,Q;(B=_.controller)===null||B===void 0||B.terminate(),(Q=_.worker)===null||Q===void 0||Q.terminate()}catch(T){J.warning(T&&T.message)}}}(t)}Oy.set(t,c),t.track.addEventListener("ended",u)},interceptLocalVideoFrame:async function(t,s){if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support video encoded transform");if(ky.has(t)||!t.track)return;const c={track:t.track};if(DA()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");let h=null;try{h=t.createEncodedStreams()}catch(Q){return void J.error("create video-encoded-streams error",Q&&Q.message)}const _=[];s.on("sei-to-send",Q=>{_.push(Q)});const B=new TransformStream({transform(Q,T){c.controller||(c.controller=T),t.track&&t.track.id!==c.track.id&&(J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u));const D=e7(new Uint8Array(Q.data)),O=_.shift();if(O){const P=function(U,H,$){switch($){case Ly:return function(Z,te){const se=ZU(te),ge=se.length,me=Math.floor(ge/255),Qe=ge%255,Oe=new Uint8Array(6+me+1+ge+Z.byteLength);Oe[0]=0,Oe[1]=0,Oe[2]=0,Oe[3]=1,Oe[4]=6,Oe[5]=101;let we=0;for(;we"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"sei-tx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),s.on("sei-to-send",Q=>{_.port1.postMessage({sei:Q})}),_.port1.onmessage=Q=>{var T;Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id&&(J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u))},c.worker=h}}function u(){if(t.track){if(this.id!==t.track.id)return;t.track.removeEventListener("ended",u)}const h=ky.get(t);if(h){ky.delete(t);try{var _,B;(_=h.controller)===null||_===void 0||_.terminate(),(B=h.worker)===null||B===void 0||B.terminate()}catch(Q){J.warning(Q&&Q.message)}}}ky.set(t,c),t.track.addEventListener("ended",u)},interceptRemoteVideoFrame:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support video encoded transform");if(!t.track)return;if(s_.has(t)){const h=s_.get(t);return void(h&&(h.onSei=s.onSei))}const c={track:t.track,onSei:s.onSei};if(DA()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");let h=null;try{h=t.createEncodedStreams()}catch(B){return void J.error("create video-encoded-streams error",B&&B.message)}const _=new TransformStream({transform(B,Q){if(c.controller||(c.controller=Q),!c.firstFrameInfo){var T;const O=B.getMetadata()||{};c.firstFrameInfo=Xn({type:B.type,rtpTimestamp:B.timestamp,payloadType:O.payloadType||0,ssrc:O.synchronizationSource||0,length:B.data.byteLength},"mimeType"in O?{mimeType:O.mimeType}:{}),(T=s.onFirstFrame)===null||T===void 0||T.call(s,c.firstFrameInfo)}t.track&&t.track.id!==c.track.id&&(J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u));const D=function(O,P){switch(P){case Ly:return function(U){const H=new DataView(U.data);let $=0;for(;$+4"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"sei-rx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),_.port1.onmessage=Q=>{var T;if(Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id)J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u);else if(Q.data.sei&&c.onSei)c.onSei(Q.data.sei);else if(Q.data.firstFrameInfo&&s.onFirstFrame){var D;(D=s.onFirstFrame)===null||D===void 0||D.call(s,Q.data.firstFrameInfo)}},c.worker=h}function u(){if(t.track){if(this.id!==t.track.id)return;t.track.removeEventListener("ended",u)}(function(h){const _=s_.get(h);if(_){s_.delete(h);try{var B,Q;(B=_.controller)===null||B===void 0||B.terminate(),(Q=_.worker)===null||Q===void 0||Q.terminate()}catch(T){J.warning(T&&T.message)}}})(t)}s_.set(t,c),t.track.addEventListener("ended",u)}},Nle={name:"InterceptFrame",create:()=>ble};var tn;function lne(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function lE(t){for(var s=1;ss.rtpMap&&s.rtpMap.encodingName.toLowerCase()||"").filter(s=>{var c;return Et(c=Object.keys(Qn)).call(c,s)}))]}constructor(s,c,u){super(s,c),ae(this,"id",un(5,"connection-")),ae(this,"store",void 0),ae(this,"peerConnection",void 0),ae(this,"forceTurn",!1),ae(this,"remoteSDP",void 0),ae(this,"initialOffer",void 0),ae(this,"transportEventReceiver",void 0),ae(this,"statsFilter",void 0),ae(this,"extension",{useXR:de("USE_XR")}),ae(this,"localCapabilities",void 0),ae(this,"remoteCodecs",void 0),ae(this,"localCandidateCount",0),ae(this,"allCandidatesReceived",!1),ae(this,"isPreallocation",!1),ae(this,"preMediaMap",new Map),ae(this,"dataStreamChannelMap",new Map),ae(this,"establishPromise",void 0),ae(this,"recoveredDataChannelIds",[]),ae(this,"currentDataChannelId",1),ae(this,"supportAV1RtpSpec",!1),ae(this,"mutex",void 0),ae(this,"qualityLimitationReason",$i.NONE),ae(this,"unsupportedResolutionFloorTrackIds",new Set),ae(this,"isFirstConnected",!1),this.store=c,this.forceTurn=lz(s),this.mutex=new ra("NVConnectionExtension-mutex",c.clientId),this.peerConnection=u,this.isFirstConnected=!1,this.statsFilter=WA(this.peerConnection,de("STATS_UPDATE_INTERVAL"),void 0,Ln()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,s.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(s){return this.preMediaMap.get(s)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(s,c){if(this.remoteCodecs=c,!this.remoteSDP)return void J.debug("[NVConnectionExtension] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(c));if(this.remoteSDP.updateRemoteCodec(s,c,this.store.codec)){const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}else J.debug("[NVConnectionExtension] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});const c=await this.peerConnection.createOffer();if(!c.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const u=Yh(c.sdp),h=await HX({filterRTX:!de("USE_PUB_RTX")&&!de("USE_SUB_RTX"),filterVideoFec:de("FILTER_VIDEO_FEC"),filterAudioFec:de("FILTER_AUDIO_FEC"),filterVideoCodec:de("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:de("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:de("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=C9(h),this.initialOffer=c,de("ENABLE_SVC")&&this.store.codec=="av1"){const B=await fte();var s;B&&(this.supportAV1RtpSpec=!0,(s=h.send)===null||s===void 0||s.videoExtensions.push(B))}let _;return c.sdp&&bF(c.sdp)&&(_=go(h),lte(_)),lE(lE({},u),{},{rtpCapabilities:_||h,offerSDP:c.sdp})}catch(c){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,c.toString())}}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish NVConnectionExtension without initial offer.");if(this.initialOffer.sdp&&bF(this.initialOffer.sdp)&&dte(s.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Fte(lE(lE({},s),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!de("ENABLE_PRE_SUB_WITH_PRE_PC")||!de("PRE_USE_LOCAL_CODECS"))&&eo(this.store),!0),s.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec),D4()){var c;const h=((c=this.store.preSubOptions)===null||c===void 0?void 0:c.length)||0,_=de("PRE_SUB_NUM")||1,B=h>_?h:_,Q=this.remoteSDP.preloadRemoteMedia(B),T=Q.mids,D=Q.preSSRCs,O=f9(this.initialOffer.sdp,this.extension),P=this.logSDPExchange(O||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:O}),P==null||P(O),new Array(B).fill(0).forEach(()=>{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"})});const U=await this.peerConnection.createOffer(),H=this.logSDPExchange(U.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(U);const $=this.remoteSDP.toString();H==null||H($),await this.peerConnection.setRemoteDescription({type:"answer",sdp:$}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media with icc/dtls, add preload ssrcs ").concat(D)),this.presetMedia(T,D);const Z=this.peerConnection.getTransceivers()[0];Z!=null&&Z.receiver&&this.tryBindTransportEvents(Z.receiver)}else{const h=this.remoteSDP.toString(),_=f9(this.initialOffer.sdp,this.extension),B=this.logSDPExchange(_||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:_}),B==null||B(h),await this.peerConnection.setRemoteDescription({type:"answer",sdp:h});const Q=this.peerConnection.getTransceivers()[0];if(Q!=null&&Q.receiver&&this.tryBindTransportEvents(Q.receiver),eo(this.store))if(s.preallocation&&de("ENABLE_PRE_SUB_WITH_PRE_PC")){var u;const T=((u=this.store.preSubOptions)===null||u===void 0?void 0:u.length)||0,D=de("PRE_SUB_NUM")||1,O=T>D?T:D,P=this.remoteSDP.preloadRemoteMedia(O),U=P.mids,H=P.preSSRCs;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media, in pre pc,add preload ssrcs ").concat(H)),this.presetMedia(U,H)}else{const T=s.preSSRCs,D=T===void 0?[]:T,O=D.map(U=>U.ssrcMsg[0].ssrcId);if(D.length===0)return;const P=this.remoteSDP.batchSend(D.map(U=>Object.assign({},U))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection.connect] preload media, after join, add preload ssrcs ".concat(O)),this.presetMedia(P,O)}}}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.connect failed; ".concat(h.toString()))}}presetMedia(s,c){s.forEach((u,h)=>{this.peerConnection.getTransceivers().forEach(_=>{if(_.mid!=null&&u===_.mid&&_.receiver.track){const B=_.receiver.track;let Q;B.kind==="video"&&de("ENABLE_PRE_RENDER")&&(Q=new Ry({trackId:"track-".concat(B.kind,"-unknown-").concat(this.store.clientId,"_").concat(un(5,""))},!0),Q.updateVideoTrack(B),Q.onFirstVideoFrameRender=()=>{var T;const D=this.preMediaMap.get(c[h]);D&&(D.firstVideoRender=Date.now()),(T=this.onFirstVideoRender)===null||T===void 0||T.call(this,c[h])},Q.onVideoBufferReady=()=>{var T;(T=this.onFirstVideoBufferReady)===null||T===void 0||T.call(this,c[h])},Q.play(this.store.sessionId||void 0)),this.preMediaMap.set(c[h],{mid:u,track:B,player:Q,transceiver:_})}}),this.store.peerReceiver()})}checkDtlsParameters(s){return!!this.remoteSDP&&s.length>0&&this.remoteSDP.updateRemoteDtlsParameters(s)}checkIceParameters(s){return this.remoteSDP?this.remoteSDP.restartICE(s):!1}async updateRemoteConnect(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateRemoteConnect before remote SDP created");let c=!1;const u=s.rtpCapabilities;if(c=ir(this.remoteSDP.updateRemoteRTPCapabilities(u),2)[1],Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){const Q=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);c=c||Q}const h=s.preSSRCs,_=h===void 0?[]:h,B=_.map(Q=>Q.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(B)){const Q=[],T=[];if(Array.from(this.preMediaMap.entries()).every(D=>{let O=ir(D,2),P=O[0],U=O[1],H=U.mid,$=U.player;return U.track,Q.push(H),T.push(P),this.preMediaMap.delete(P),$&&$.destroy(),!0}),Q.length>0&&(this.remoteSDP.stopSending(Q),await Yc(this.peerConnection,this.remoteSDP,this.extension),J.warn("[NVConnectionExtension.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(T)),qt.reportApiInvoke(this.store.sessionId,{name:Ti.PRELOAD_MEDIA_FAILED,options:[_,T],tag:vn.TRACER}).onSuccess()),_.length>0){const D=this.remoteSDP.batchSend(_.map(O=>Object.assign({},O))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[NVConnectionExtension.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(B)),this.presetMedia(D,B)}}c?(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[NVConnectionExtension] updateRemoteConnect by exchanging SDP.")):J.debug("[NVConnectionExtension] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.updateRemoteConnect failed; ".concat(c.toString()))}}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From NVConnectionExtension.send"));try{if(!h.remoteSDP)throw new Error("Cannot call NVConnectionExtension.send before remote SDP created");const B=[],Q=E9();s.forEach(te=>{const se=h.peerConnection.addTransceiver(te._mediaStreamTrack,lE({direction:"sendonly"},te.trackMediaType==="video"&&h.supportAV1RtpSpec&&Q?{sendEncodings:[{scalabilityMode:Q}]}:{}));B.push(se),te._updateRtpTransceiver(se)}),Ln()&&de("SIMULCAST")===!0&&(yield Tr(h.applySimulcastForFirefox(B,s)));const T=yield Tr(h.peerConnection.createOffer()),D=h.remoteSDP.predictReceivingMids(s.length),O=h.mungSendOfferSDP(T.sdp,s,D),P=wa(O),U=D.map(te=>{const se=P.mediaDescriptions.find(ge=>ge.attributes.mid===te);if(!se)throw new Error("Cannot extract ssrc from mediaDescription.");return FX(se,de("USE_PUB_RTX"))});let H;try{H=yield U}catch(te){H=[],h.remoteSDP.receive(s,c,u,H);const se=h.remoteSDP.toString();throw yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:se})),yield Tr(h.stopSending(D,!0)),te}h.remoteSDP.receive(s,c,u,H);const $=h.remoteSDP.toString(),Z=h.logSDPExchange(O,"offer","local","send");return yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.applySimulcastEncodings(B,s)),yield Tr(h.applySendEncodings(B,s)),Z==null||Z($),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:$})),B.map((te,se)=>{const ge=D[se];return{localSSRC:U[se],id:ge,transceiver:te}})}catch(B){throw B instanceof tt?B:new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.send failed; ".concat(B.toString()))}finally{_()}})()}async createDataChannels(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.createDataChannels before remote SDP created");let u=this.dataStreamChannelMap.get(s);if(u&&u.readyState==="open")J.debug("[NVConnectionExtension] Channels are already available and can be reused directly.");else{const _=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof _!="number")throw new Error("create DataChannel error, because cannot get dc id");u=this.peerConnection.createDataChannel("datastream-channel",{id:_,negotiated:!0,ordered:!1,maxRetransmits:de("DATASTREAM_MAX_RETRANSMITS")}),u.binaryType="arraybuffer",this.dataStreamChannelMap.set(s,u)}if(c.forEach(_=>{_._updateOriginDataChannel(u)}),this.remoteSDP.sendDataChannel().needExchangeSDP){const _=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:_});const B=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(B),J.debug("[NVConnectionExtension] createDataChannels by exchanging SDP.")}else J.debug("[NVConnectionExtension] createDataChannels no need to exchange SDP.");return}catch(u){throw u instanceof tt?u:new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.createDataChannels failed; ".concat(u.toString()))}}async stopDataChannels(s){try{const c=this.dataStreamChannelMap.get(s);return c&&(c.id&&this.recoveredDataChannelIds.push(c.id),c.close()),void this.dataStreamChannelMap.delete(s)}catch(c){throw c instanceof tt?c:new tt(Ce.DATACHANNEL_FAILED,"NVConnectionExtension.stopDataChannels failed; ".concat(c.toString()))}}async stopSending(s,c){const u=c?void 0:await this.mutex.lock("From NVConnectionExtension.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopSending before remote SDP created");const h=this.peerConnection.getTransceivers().filter(T=>s.indexOf(T.mid)!==-1);if(h.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call NVConnectionExtension.stopSending.");h.map(T=>{var D;Dp(this.id+T.mid,this),T.direction="inactive",(D=T.stop)===null||D===void 0||D.call(T)});const _=await this.peerConnection.createOffer(),B=this.logSDPExchange(_.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(_),this.remoteSDP.stopReceiving(s);const Q=this.remoteSDP.toString();B==null||B(Q),await this.peerConnection.setRemoteDescription({type:"answer",sdp:Q})}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.stopSending failed; ".concat(h.toString()))}finally{u&&u()}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;_.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] receive ").concat(s," by exchanging SDP.")));const Q=this.peerConnection.getTransceivers().find(T=>T.mid===B);if(!Q)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:Q.receiver.track,id:B,transceiver:Q}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(_.toString()))}}async batchReceive(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.batchReceive before remoteSDP created.");const c=this.remoteSDP.batchSend(s),u=c.mids;return c.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] batchReceive by exchanging SDP."))),u.map(h=>{const _=this.peerConnection.getTransceivers().find(B=>B.mid===h);if(!_)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:_.receiver.track,id:h,transceiver:_}})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(c.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopReceiving before remote SDP created.");s.forEach(_=>{Array.from(this.preMediaMap.entries()).some(B=>{let Q=ir(B,2),T=Q[0],D=Q[1],O=D.mid,P=D.player;if(O===_)return this.preMediaMap.delete(T),P&&P.destroy(),!0})}),this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension stopReceiving failed; ".concat(c.toString()))}}async muteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.mute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteRemote failed; ".concat(c.toString()))}}async unmuteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.unmute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteRemote failed; ".concat(c.toString()))}}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(B=>{B.direction="inactive"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.muteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(async(B,Q)=>{B.direction="sendonly"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.unmuteRemote(s),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(s,this.remoteCodecs,this.store.codec);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteLocal failed; ".concat(c.toString()))}}restartICE(s){var c=this;return AA(function*(){const u=yield Tr(c.mutex.lock("From NVConnectionExtension.restartICE"));try{if(!c.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");const h=Si().supportPCSetConfiguration,_=de("FORCE_TURN_TCP")||c.forceTurn;if(s===qs.RELAY&&!h)return;if(h&&!_){const P=s===qs.RELAY?"relay":"all",U=c.peerConnection.getConfiguration();U.iceTransportPolicy!==P&&(J.debug("[".concat(c.store.clientId,"] restartICE change iceTransportPolicy from [").concat(U.iceTransportPolicy,"] to [").concat(P,"]")),U.iceTransportPolicy=P,c.peerConnection.setConfiguration(U))}c.remoteSDP.updateCandidates(s);const B=yield Tr(c.peerConnection.createOffer({iceRestart:!0}));if(!B.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const Q=Yh(B.sdp),T=(yield Q.iceParameters).remoteIceParameters;c.remoteSDP.restartICE(T);const D=c.remoteSDP.toString(),O=c.logSDPExchange(B.sdp||"","offer","local","restartICE");c.store.descriptionStart(),yield Tr(c.peerConnection.setLocalDescription(B)),O==null||O(D),yield Tr(c.peerConnection.setRemoteDescription({type:"answer",sdp:D}))}catch(h){J.warning("[".concat(c.store.clientId,"] restart ICE failed, abort operation"),h)}finally{u()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;const s=await this.mutex.lock("From NVConnectionExtension.extendCandidate");try{this.remoteSDP.updateCandidates(qs.TCP_RELAY),await Yc(this.peerConnection,this.remoteSDP,this.extension)}catch(c){J.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),c)}finally{s()}}close(){var s;this.peerConnection.getTransceivers().forEach(c=>{Dp(this.id+c.mid,this)}),this.preMediaMap.forEach(c=>{let u=c.player;u&&u.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return lE(lE({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c],[s]);this.remoteSDP.updateRecvMedia(s,c);const _=this.remoteSDP.toString(),B=this.logSDPExchange(h,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),B==null||B(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getTransceivers().filter(h=>h.mid===s);u.length===1&&(this.isVP8Simulcast(c)?Ln()||await this.applySimulcastEncodings(u,[c]):await this.applySendEncodings(u,[c]))}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getTransceivers().find(h=>h.mid===c);u&&await u.sender.replaceTrack(s._mediaStreamTrack)}async getSelectedCandidatePair(){const s=this.peerConnection.getReceivers();if(s.length>0&&s[0].transport&&s[0].transport.iceTransport&&s[0].transport.iceTransport.getSelectedCandidatePair&&s[0].transport.iceTransport.getSelectedCandidatePair()){const c=s[0].transport.iceTransport.getSelectedCandidatePair(),u=c.local,h=c.remote;return{local:lE(lE({},ya),{},{candidateType:u.type,protocol:u.protocol,address:u.address,port:u.port}),remote:lE(lE({},ya),{},{candidateType:h.type,protocol:h.protocol,address:h.address,port:h.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s;(s=this.onICEConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=s=>{if(s&&(s.errorCode||s.errorText)){var c;const u="code: ".concat(s.errorCode,", message: ").concat(s.errorText),h=s.port?"local: ".concat(s.port):"",_=Hh(s.url||"");J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: NVConnectionExtension.onICECandidateError(").concat(u,"), url: ").concat(_||"",", host_candidate:").concat(h)),(c=this.onICECandidateError)===null||c===void 0||c.call(this,u)}},this.peerConnection.onicegatheringstatechange=s=>{s&&s.target&&"iceGatheringState"in s.target&&J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(s.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=s=>{s.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},de("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s){const c={iceServers:[]},u=s.cloudProxyServer||"disabled";return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:de("NEW_TURN_MODE")&&c.iceServers&&u==="disabled"?(de("USE_TURN_SERVER_OF_GATEWAY")?s.turnServer.serversFromGateway&&c.iceServers.push(...IT.newTurnServerConfigToIceServers(s.turnServer.serversFromGateway)):c.iceServers.push(...IT.newTurnServerConfigToIceServers(s.turnServer.servers)),de("NEW_FORCE_TURN")&&(c.iceTransportPolicy="relay")):s.turnServer.mode!=="off"&&(c.iceServers&&c.iceServers.push(...IT.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...IT.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),de("FORCE_TURN_TCP")?c.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(h=>{h.forceturn&&(c.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(c.encodedInsertableStreams=!0),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&!de("FORCE_TURN_TCP")&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}static newTurnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{const h=de("NEW_TURN_MODE");h===1?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}):h===2?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}):h===3?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}):h===4&&(c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}))}),c}tryBindTransportEvents(s){const c=s.transport;if(c){this.transportEventReceiver=s,c.onstatechange=()=>{var h;c!=null&&c.state&&((h=this.onDTLSTransportStateChange)===null||h===void 0||h.call(this,c.state))},c.onerror=h=>{var _;(_=this.onDTLSTransportError)===null||_===void 0||_.call(this,"error"in h?h.error:h)};const u=c.iceTransport;u&&(u.onstatechange=()=>{const h=c==null?void 0:c.iceTransport.state;var _;h&&((_=this.onICETransportStateChange)===null||_===void 0||_.call(this,h))},u.getSelectedCandidatePair&&(u.onselectedcandidatepairchange=()=>{if(u.getSelectedCandidatePair()){const h=u.getSelectedCandidatePair()||{},_=h.local,B=h.remote;if(_&&B){const Q=_.address+":"+_.port,T=B.address+":"+B.port;J.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Hh(Q)),", remote ").concat(JSON.stringify(Hh(T))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(s,c){var u,h;if(c||(c=this.peerConnection.getSenders().find(Oe=>Oe.track===s._mediaStreamTrack)),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(s))return J.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Si().supportSetRtpSenderParameters)return J.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");const _=pU(s),B=!!_&&Gte(this.store.codec)&&oz(_),Q=B&&!this.unsupportedResolutionFloorTrackIds.has(s.getTrackId()),T=!!_&&!(B&&!Q)&&Wte(s,Q?_:void 0),D=Q&&T,O=Q||Et(u=["vp8","vp9"]).call(u,this.store.codec),P={},U={},H=ere(s,D);H&&(P.degradationPreference=H);const $=Ate(this.peerConnection,s._mediaStreamTrack);if(T&&$&&c&&_&&this.getLocalVideoStats&&O){const Qe=this.id+$.mid,Oe=Zte(s,Q);Xte(Qe,_,this,Oe,we=>{c&&this.updateAdaptation(s,c,we,Qe,Q)},this.getLocalVideoStats.bind(this))}if(s._encoderConfig){var Z;const Qe=s._encoderConfig,Oe=Qe.bitrateMax,we=Qe.frameRate,Ne=Qe.scaleResolutionDownBy;Oe&&(U.maxBitrate=1e3*Oe),(Et(Z=s._hints).call(Z,gn.LOW_STREAM)||s.isUseScaleResolutionDownBy)&&(we&&(U.maxFramerate=dc(we)),Ne&&Ne>=1&&(U.scaleResolutionDownBy=Ne))}const te=de("ENCODER_CONFIG_LIMIT").maxFramerate;if(te&&typeof te=="number"&&(U.maxFramerate=U.maxFramerate?Math.min(U.maxFramerate,te):te),de("DSCP_TYPE")&&Al()){var se;const Qe=de("DSCP_TYPE");Et(se=["very-low","low","medium","high"]).call(se,Qe)&&(U.networkPriority=Qe)}const ge=c.getParameters(),me=(h=ge.encodings)===null||h===void 0?void 0:h[0];Ln()&&!me&&(P.encodings=[U]),me&&Object.assign(me,U),Object.assign(ge,P),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(ge.encodings))),await c.setParameters(ge),await Bte(this.store.codec,c,de("SVC_MODE"))}async updateAdaptation(s,c,u,h,_){var B,Q;if(!c)return J.debug("[updateAdaptation] no rtpSender found");if(!Si().supportSetRtpSenderParameters)return J.debug("[updateAdaptation] Browser not support set rtp-sender parameters");const T={},D={},O=u.bitrateMax,P=u.frameRate,U=u.scaleResolutionDownBy;O&&(D.maxBitrate=1e3*O),P&&(D.maxFramerate=dc(P));let H=!1;typeof U=="number"&&U>=1&&(_||Et(B=["vp8","vp9"]).call(B,this.store.codec))&&(D.scaleResolutionDownBy=U,H=U>1);const $=c.getParameters(),Z=(Q=$.encodings)===null||Q===void 0?void 0:Q[0];Z&&Object.assign(Z,D),Object.assign($,T);try{await c.setParameters($),J.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify($.encodings)))}catch(te){if(!("transport"in c)||c.transport&&c.transport.state==="connected")if(this.peerConnectionState!=="connected")J.debug("[updateAdaptation] peerConnection not connected}");else if(_&&H){const se=await ire(c,T,D);se.classification==="unsupported"?(this.unsupportedResolutionFloorTrackIds.add(s.getTrackId()),Dp(h,this),J.warn("[".concat(s.getTrackId(),"] fallback to browser adaptation because scaleResolutionDownBy adaptation is unsupported"),te,se.retryWithScaleError),this.updateRtpSenderEncodings(s,c).catch(ge=>{J.warn("[".concat(s.getTrackId(),"] failed to re-apply browser adaptation after disabling resolution floor"),ge)})):se.classification==="transient"?J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled after transient setParameters failure"),te):J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled because setParameters failure is not classified as unsupported"),te,se.retryWithScaleError,se.retryWithoutScaleError)}else J.debug("[updateAdaptation] updateRtpSenderEncodings failed",te);else J.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const Q=u[B],T=h.mediaDescriptions.find(D=>D.attributes.mid===Q);T&&(Am(T,_),KX(T,_,this.store.codec))}),X1(h)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onFirstVideoDecodedTimeout=s=>{var c;(c=this.onFirstVideoDecodedTimeout)===null||c===void 0||c.call(this,s)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(s,c){if(s.length===c.length)for(let T=0;T200&&(B=O._scalabilityMode)!==null&&B!==void 0&&B.numSpatialLayers&&((Q=O._scalabilityMode)===null||Q===void 0?void 0:Q.numSpatialLayers)>1&&this.store.codec==="vp8"){const P={},U={high:1e3*(O._encoderConfig.bitrateMax-50),medium:5e4};P.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];const H=D.sender.getParameters();await D.sender.setParameters(Object.assign(H,P))}}}async applySimulcastEncodings(s,c){if(!Ln()&&s.length===c.length)for(let u=0;u200&&(_=s._scalabilityMode)!==null&&_!==void 0&&_.numSpatialLayers&&((B=s._scalabilityMode)===null||B===void 0?void 0:B.numSpatialLayers)>1)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("[".concat(this.store.clientId,"] exchanging ").concat(u," ").concat(c," SDP during NVConnectionExtension.").concat(h,` +`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}async getRemoteSSRC(s){if(!this.remoteSDP)return;const c=this.remoteSDP.getSSRC(s);return c&&c.length!==0?c[0].ssrcId:void 0}setConfiguration(s){if(Si().supportPCSetConfiguration){const c=IT.resolvePCConfiguration(s);this.peerConnection.setConfiguration(c)}s.isPreallocation&&(this.isPreallocation=!0)}},Pt(tn.prototype,"updateRemoteRTPCapabilities",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateRemoteRTPCapabilities"),tn.prototype),Pt(tn.prototype,"connect",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"connect"),tn.prototype),Pt(tn.prototype,"updateRemoteConnect",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateRemoteConnect"),tn.prototype),Pt(tn.prototype,"createDataChannels",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"createDataChannels"),tn.prototype),Pt(tn.prototype,"receive",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"receive"),tn.prototype),Pt(tn.prototype,"batchReceive",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"batchReceive"),tn.prototype),Pt(tn.prototype,"stopReceiving",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"stopReceiving"),tn.prototype),Pt(tn.prototype,"muteRemote",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"muteRemote"),tn.prototype),Pt(tn.prototype,"unmuteRemote",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"unmuteRemote"),tn.prototype),Pt(tn.prototype,"muteLocal",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"muteLocal"),tn.prototype),Pt(tn.prototype,"unmuteLocal",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"unmuteLocal"),tn.prototype),Pt(tn.prototype,"close",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"close"),tn.prototype),Pt(tn.prototype,"updateEncoderConfig",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateEncoderConfig"),tn.prototype),Pt(tn.prototype,"updateSendParameters",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateSendParameters"),tn.prototype),Pt(tn.prototype,"replaceTrack",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"replaceTrack"),tn.prototype),Pt(tn.prototype,"updateAdaptation",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateAdaptation"),tn.prototype),Pt(tn.prototype,"getRemoteSSRC",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"getRemoteSSRC"),tn.prototype),tn);function gc(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From NVConnectionExtension.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{const h=setTimeout(()=>{this.closeSignal(),u(new qe(Ce.DATACHANNEL_CONNECTION_TIMEOUT,"Datachannel connection timed out, candidates: ".concat(JSON.stringify(s.candidates))))},de("DC_CONNECTION_TIMEOUT"));this.dataChannel.onopen=()=>{if(this.dataChannel.readyState==="open")return clearTimeout(h),void c()},this.dataChannel.onerror=_=>{this.closeSignal(),u(_)},this.dataChannel.addEventListener("close",()=>{u(new qe(Ce.DATACHANNEL_CONNECTION_TIMEOUT))})}),{transmitter:this.dataChannel,close:this.closeSignal.bind(this)}}checkDtlsParameters(s){return this._p2pConnection.checkDtlsParameters(s)}checkIceParameters(s){return this._p2pConnection.checkIceParameters(s)}async updateRemoteRTPCapabilities(s,c){return this._p2pConnection.updateRemoteRTPCapabilities(s,c)}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From DataChannelConnection.send"));try{return yield*Qc(dne(h._p2pConnection.send(s,c,u)))}finally{_()}})()}async stopSending(s,c){return this._p2pConnection.stopSending(s,c)}async createDataChannels(s,c){return this._p2pConnection.createDataChannels(s,c)}async stopDataChannels(s){return this._p2pConnection.stopDataChannels(s)}async receive(s,c,u,h){return this._nvMedia?(J.debug("[DataChannelConnection] receive ".concat(s," by DataChannel.")),await this._nvMedia.reveiveByRTCMedia(s,c,this.cname)):(J.debug("[DataChannelConnection] receive ".concat(s," by WebRTC.")),await this._p2pConnection.receive(s,c,u,h))}async batchReceive(s){return[...await this._p2pConnection.batchReceive(s)]}async stopReceiving(s){return await this._p2pConnection.stopReceiving(s)}async muteRemote(s){return await this._p2pConnection.muteRemote(s)}async unmuteRemote(s){return await this._p2pConnection.unmuteRemote(s)}async muteLocal(s){return await this._p2pConnection.muteLocal(s)}async unmuteLocal(s){return await this._p2pConnection.unmuteLocal(s)}restartICE(s){var c=this;return AA(function*(){return yield*Qc(dne(c._p2pConnection.restartICE(s)))})()}close(){var s;(s=this._nvMedia)===null||s===void 0||s.close(),this._p2pConnection.close(),this.unbindConnectionEvents(this._p2pConnection)}getStats(){return this._p2pConnection.getStats()}getRemoteVideoIsReady(s){return this._p2pConnection.getRemoteVideoIsReady(s)}updateRemoteConnect(s){var c;return(c=this._nvMedia)===null||c===void 0||c.setRemoteRtpCapabilities(s),this._p2pConnection.updateRemoteConnect(s)}async updateEncoderConfig(s,c){return await this._p2pConnection.updateEncoderConfig(s,c)}async updateSendParameters(s,c){return await this._p2pConnection.updateSendParameters(s,c)}setStatsRemoteVideoIsReady(s,c){this._p2pConnection.setStatsRemoteVideoIsReady(s,c)}async replaceTrack(s,c){return await this._p2pConnection.replaceTrack(s,c)}async getRemoteSSRC(s){return this._p2pConnection.getRemoteSSRC(s)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("exchanging ".concat(u," ").concat(c," SDP during DataChannelConnection.").concat(h,` +`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}static resolvePCConfiguration(s){const c={iceServers:[]};return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&s.turnServer.mode!=="off"&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:(c.iceServers&&c.iceServers.push(...s8.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...s8.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),de("FORCE_TURN_TCP")?c.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(u=>{u.forceturn&&(c.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(c.encodedInsertableStreams=!0),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&!de("FORCE_TURN_TCP")&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}bindPCEvents(){this._p2pConnection.onICEConnectionStateChange=s=>{var c;return(c=this.onICEConnectionStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onConnectionStateChange=s=>{var c;return(c=this.onConnectionStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onDTLSTransportStateChange=s=>{var c;return(c=this.onDTLSTransportStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onDTLSTransportError=s=>{var c;return(c=this.onDTLSTransportError)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onICETransportStateChange=s=>{var c;return(c=this.onICETransportStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstAudioReceived=s=>{var c;return(c=this.onFirstAudioReceived)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoReceived=s=>{var c;return(c=this.onFirstVideoReceived)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstAudioDecoded=s=>{var c;return(c=this.onFirstAudioDecoded)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoRender=s=>{var c;return(c=this.onFirstVideoRender)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoBufferReady=s=>{var c;return(c=this.onFirstVideoBufferReady)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoDecoded=(s,c,u)=>{var h;return(h=this.onFirstVideoDecoded)===null||h===void 0?void 0:h.call(this,s,c,u)},this._p2pConnection.onFirstVideoDecodedTimeout=s=>{var c;return(c=this.onFirstVideoDecodedTimeout)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onSelectedLocalCandidateChanged=(s,c)=>{var u;return(u=this.onSelectedLocalCandidateChanged)===null||u===void 0?void 0:u.call(this,s,c)},this._p2pConnection.onSelectedRemoteCandidateChanged=(s,c)=>{var u;return(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0?void 0:u.call(this,s,c)}}closeSignal(){this.dataChannel.close(),this.peerConnection.close()}unbindConnectionEvents(s){s.onConnectionStateChange=void 0,s.onICEConnectionStateChange=void 0,s.onICETransportStateChange=void 0,s.onDTLSTransportStateChange=void 0,s.onDTLSTransportError=void 0,s.onFirstAudioDecoded=void 0,s.onFirstAudioReceived=void 0,s.onFirstVideoDecoded=void 0,s.onFirstVideoReceived=void 0,s.onSelectedLocalCandidateChanged=void 0,s.onSelectedRemoteCandidateChanged=void 0,s.onFirstVideoDecodedTimeout=void 0}setConfiguration(s){this._p2pConnection.setConfiguration(s)}},Pt(jn.prototype,"connect",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"connect"),jn.prototype),Pt(jn.prototype,"updateRemoteRTPCapabilities",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"updateRemoteRTPCapabilities"),jn.prototype),Pt(jn.prototype,"createDataChannels",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"createDataChannels"),jn.prototype),Pt(jn.prototype,"receive",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"receive"),jn.prototype),Pt(jn.prototype,"stopReceiving",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"stopReceiving"),jn.prototype),Pt(jn.prototype,"muteRemote",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"muteRemote"),jn.prototype),Pt(jn.prototype,"unmuteRemote",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"unmuteRemote"),jn.prototype),Pt(jn.prototype,"muteLocal",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"muteLocal"),jn.prototype),Pt(jn.prototype,"unmuteLocal",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"unmuteLocal"),jn.prototype),Pt(jn.prototype,"close",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"close"),jn.prototype),Pt(jn.prototype,"updateEncoderConfig",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"updateEncoderConfig"),jn.prototype),Pt(jn.prototype,"updateSendParameters",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"updateSendParameters"),jn.prototype),Pt(jn.prototype,"replaceTrack",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"replaceTrack"),jn.prototype),Pt(jn.prototype,"getRemoteSSRC",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"getRemoteSSRC"),jn.prototype),jn);function hd(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From DataChannelConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{}),ae(this,"_store",void 0),ae(this,"_joinChannelServiceRecordIndex",void 0),ae(this,"_transmitter",void 0),ae(this,"_useCompress",void 0),ae(this,"_inflateLength",0),ae(this,"_deflateLength",0),this._store=h,this._name=s,this._retryConfig=function(_){for(var B=1;Bu.close(),500):u.close(),this._transmitter=void 0}this.state=s?"failed":"closed",this._closeEstablishingTransmitter&&this._closeEstablishingTransmitter()}reconnect(s,c){if(!this._transmitter)return void J.warning("[".concat(this._name,"] can not reconnect, no websocket"));var u;s!==void 0&&(this.reconnectMode=s),J.debug("[".concat(this._name,"] reconnect is triggered initiative")),typeof this._joinChannelServiceRecordIndex=="number"&&((u=this._store)===null||u===void 0||u.recordJoinChannelService({status:"error",errors:[new Error(c)]},this._joinChannelServiceRecordIndex));const h=this._transmitter.onclose;this._transmitter.onclose=null,this._transmitter.close(),h&&h.bind(this._transmitter)({code:9999,reason:c})}getInflateData(){const s=this._inflateLength,c=this._deflateLength;return this.clearInflateData(),{inflateLength:s,deflateLength:c}}setInflateData(s){this._deflateLength=this._deflateLength+s.originLength,this._inflateLength=this._inflateLength+s.compressedLength}clearInflateData(){this._inflateLength=0,this._deflateLength=0}}let dE=function(t){return t[t.Default=0]="Default",t[t.Ack=1]="Ack",t}({});class kle{constructor(s,c,u){ae(this,"version",1),ae(this,"initialRTO",void 0),ae(this,"maxBatchAckCount",void 0),ae(this,"maxRTO",void 0),ae(this,"initialRTT",void 0),ae(this,"ID",void 0),ae(this,"rtt",void 0),ae(this,"packetNumber",1),ae(this,"rtoRatioMap",new Map),ae(this,"timeoutMap",new Map),ae(this,"unorderedPacketQueue",[]),ae(this,"batchAckPacketQueue",[]),ae(this,"lastOrderedPacketNumber",0),ae(this,"batchAckTimer",void 0),ae(this,"sendImpl",void 0),ae(this,"receiveImpl",void 0),this.sendImpl=s,this.receiveImpl=c,this.ID=un(7,"transmitter-"),this.initialRTO=(u==null?void 0:u.initialRTO)!==void 0?u.initialRTO:de("TRANSMITTER_INITIAL_RTO"),this.initialRTT=(u==null?void 0:u.initialRTT)!==void 0?u.initialRTT:de("TRANSMITTER_INITIAL_RTT"),this.rtt=(u==null?void 0:u.initialRTT)!==void 0?u.initialRTT:de("TRANSMITTER_INITIAL_RTT"),this.maxBatchAckCount=(u==null?void 0:u.maxBatchAckCount)!==void 0?u.maxBatchAckCount:de("TRANSMITTER_MAX_BATCH_ACK_COUNT"),this.maxRTO=(u==null?void 0:u.maxRTO)!==void 0?u.maxRTO:de("TRANSMITTER_MAX_RTO")}packetize(s,c){return{type:dE.Default,version:this.version,packetNumber:c,payload:s}}serialize(s){switch(s.type){case dE.Default:{let c;typeof s.payload=="string"?c=new TextEncoder().encode(s.payload):c=s.payload;const u=new ArrayBuffer(c.length+15),h=new DataView(u);return h.setUint16(0,s.version),h.setUint8(2,s.type),h.setUint32(3,s.packetNumber),d2(h,7,BigInt(s.sendTs)),new Uint8Array(h.buffer).set(c,15),u}case dE.Ack:{const c=new ArrayBuffer(16),u=new DataView(c);return u.setUint16(0,s.version),u.setUint8(2,s.type),u.setUint32(3,s.maxAckPacketNumber),u.setUint8(7,s.shift),d2(u,8,BigInt(s.ackSendTs)),c}}}deserialize(s){const c=new DataView(s),u=c.getUint16(0),h=c.getUint8(2);switch(h){case dE.Default:{const _=c.getUint32(3),B=J1(c,7),Q=s.slice(15),T=new Uint8Array(Q);return{version:u,type:h,packetNumber:_,sendTs:Number(B),payload:T}}case dE.Ack:{const _=c.getUint32(3),B=c.getUint8(7),Q=J1(c,8);return{version:u,type:h,maxAckPacketNumber:_,shift:B,ackSendTs:Number(Q)}}default:throw J.error("[".concat(this.ID,"] Unrecognized packet type ").concat(h)),new Error("Unrecognized packet type ".concat(h))}}sendMessage(s){de("DC_DEBUG_LOG")&&typeof s=="string"&&J.debug("[".concat(this.ID,"] sending message packet"),JSON.parse(s));const c=this.packetize(s,this.packetNumber);this.packetNumber=this.packetNumber===4294967295?1:this.packetNumber+1;const u=this.calculateRTO(c),h=window.setTimeout(()=>{this.resendMessage(c)},u);this.timeoutMap.set(c.packetNumber,h),this.sendPacket(c)}onData(s){const c=this.deserialize(s);c.type===dE.Default?this.ack(c):c.type===dE.Ack&&(this.updateRTT(c,Math.round(performance.now())),this.clearRTO(c))}close(){this.rtt=this.initialRTT,this.packetNumber=1,Array.from(this.timeoutMap.entries()).forEach(s=>{let c=ir(s,2);c[0];let u=c[1];window.clearTimeout(u)}),this.timeoutMap=new Map,this.rtoRatioMap=new Map,this.unorderedPacketQueue=[],this.batchAckPacketQueue=[],this.lastOrderedPacketNumber=0,this.batchAckTimer!==void 0&&window.clearTimeout(this.batchAckTimer)}resendMessage(s){const c=this.calculateRTO(s),u=window.setTimeout(()=>{de("DC_DEBUG_LOG")&&typeof s.payload=="string"&&J.debug("[".concat(this.ID,"] resending message packet"),JSON.parse(s.payload),"timeout: ".concat(c)),this.resendMessage(s)},c);this.timeoutMap.set(s.packetNumber,u),this.sendPacket(s)}calculateRTO(s){const c=this.rtoRatioMap.get(s.packetNumber);if(c===void 0)return this.rtoRatioMap.set(s.packetNumber,1),this.initialRTO;{const u=9*this.rtt/8*c;return this.rtoRatioMap.set(s.packetNumber,c+1),u>this.maxRTO?this.maxRTO:u}}updateRTT(s,c){const u=s.ackSendTs;this.rtt=this.rtt*(7/8)+(c-u-this.rtt)/8}ack(s){if(s.packetNumber===this.lastOrderedPacketNumber+1)for(this.batchAckPacketQueue.length>=this.maxBatchAckCount&&this.batchAck(),this.batchAckTimer?this.batchAckPacketQueue.push(s):(this.batchAckPacketQueue.push(s),this.batchAckTimer=window.setTimeout(()=>{this.batchAck()},this.rtt/8)),this.lastOrderedPacketNumber+=1,this.receiveImpl(s.payload);;){const c=this.unorderedPacketQueue[0];if(!c){this.unorderedPacketQueue.shift();break}this.batchAckTimer&&this.batchAck(),this.receiveImpl(c.payload),this.unorderedPacketQueue.shift(),this.lastOrderedPacketNumber+=1}else if(s.packetNumber<=this.lastOrderedPacketNumber){const c={ackSendTs:s.sendTs,maxAckPacketNumber:s.packetNumber,shift:0,type:dE.Ack,version:this.version};de("DC_DEBUG_LOG")&&J.debug("[".concat(this.ID,"] sending ack packet"),c,"packetNumber: ".concat(s.packetNumber)),this.sendPacket(c)}else if(s.packetNumber>this.lastOrderedPacketNumber){this.unorderedPacketQueue[s.packetNumber-this.lastOrderedPacketNumber-2]=s;const c={ackSendTs:s.sendTs,maxAckPacketNumber:s.packetNumber,shift:0,type:dE.Ack,version:this.version};de("DC_DEBUG_LOG")&&J.debug("[".concat(this.ID,"] sending ack packet"),c,"packetNumber: ".concat(s.packetNumber)),this.sendPacket(c)}}batchAck(){window.clearTimeout(this.batchAckTimer),this.batchAckTimer=void 0;const s={ackSendTs:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].sendTs,maxAckPacketNumber:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].packetNumber,shift:this.batchAckPacketQueue.length-1,type:dE.Ack,version:this.version};de("DC_DEBUG_LOG")&&J.debug("[".concat(this.ID,"] sending batch ack packet"),s,"shift: ".concat(this.batchAckPacketQueue.length-1)),this.sendPacket(s),this.batchAckPacketQueue=[]}sendPacket(s){s.type===dE.Default&&(s.sendTs=Math.round(performance.now()));const c=this.serialize(s);this.sendImpl(c)}clearRTO(s){for(let c=s.maxAckPacketNumber-s.shift;c<=s.maxAckPacketNumber;c++){const u=this.timeoutMap.get(c);u!==void 0&&window.clearTimeout(u),this.timeoutMap.delete(c),this.rtoRatioMap.delete(c)}}}class gne extends Mle{constructor(s,c){super(s,c,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3?arguments[3]:void 0),ae(this,"_initMutex",void 0),ae(this,"_reconnectInterrupter",void 0),ae(this,"_url",void 0),ae(this,"_transmitter",void 0),ae(this,"_addresses",void 0),ae(this,"_reliableTransmission",void 0),ae(this,"_textEncoder",void 0),ae(this,"_textDecoder",void 0),this._textEncoder=new TextEncoder,this._textDecoder=new TextDecoder,this._initMutex=new ra("datachannel");const u=c.timeout,h=c.timeoutFactor,_=Math.max(300,Math.floor(3*u/5)),B=Math.max(1.2,Math.floor(8*h)/10);tA.ONLINE&&(this._retryConfig.timeout=_,this._retryConfig.timeoutFactor=B),ki.on(E2.NETWORK_STATE_CHANGE,(Q,T)=>{Q!==T&&(this.resetReconnectCount("network state change: ".concat(T," -> ").concat(Q)),Q===tA.ONLINE?(this._retryConfig.timeout=_,this._retryConfig.timeoutFactor=B):(this._retryConfig.timeout=u,this._retryConfig.timeoutFactor=h))})}getConnection(){if(this._reliableTransmission)return this._reliableTransmission}async init(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;this._forceCloseTimeout=c;const u=(h,_)=>{this._addresses=s,this.currentURLIndex=this._addresses.findIndex(Q=>Q.fingerprint||de("FINGERPRINT"));const B=this._addresses[this.currentURLIndex];this.state="connecting",this.createTransmitterConnection(B).then(h).catch(_),this.once(fs.CLOSED,()=>_(new qe(Ce.WS_DISCONNECT))),this.once(fs.CONNECTED,()=>h())};return this._initMutex.lock().then(h=>new Ut((_,B)=>{u(_,B)}).then(()=>{h()}).catch(()=>{h()}))}async sendMessage(s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this._transmitter||!this._reliableTransmission)throw new qe(Ce.WS_ABORT,"datachannel is not ready");try{c||(s=JSON.stringify(s));const u=this._textEncoder.encode(s),h=nO(u,{raw:!0});this._reliableTransmission.sendMessage(h)}catch(u){throw new qe(Ce.WS_ERR,"send datachannel signal message error"+u.toString())}}unbindDcCloseEventListener(){this._transmitter&&(this._transmitter.onclose=null)}sendMessageWithJSON(s){const c=JSON.stringify(s);return{compressed:c,compressedLength:c.length,origin:s}}sendMessageWithUint8Array(s){return{compressed:s,compressedLength:s.byteLength,origin:s}}createTransmitterConnection(s){return this.connectionID+=1,this._joinChannelServiceRecordIndex=void 0,this._url="dc://".concat(s.ip,":").concat(s.port),new Ut((c,u)=>{var h;const _=()=>{J.debug("[".concat(this._name,"] datachannel opened:"),this._url),this.reconnectMode="recover",this.state="connected",this.resetReconnectCount("opened"),c()},B=async O=>{var P;if((P=this._closeEstablishingTransmitter)===null||P===void 0||P.call(this),J.debug("[".concat(this._name,"] datachannel close ").concat(this._url,", code: ").concat(O.code,", reason: ").concat(O.reason,", current mode: ").concat(this.reconnectMode)),this._reconnectCount{try{var P;(P=this._reliableTransmission)===null||P===void 0||P.onData(O.data)}catch(U){console.log(U)}};this._transmitter&&(this._transmitter.onclose=null,this._transmitter.close()),this._reliableTransmission&&(this._reliableTransmission.close(),this._reliableTransmission=void 0),J.debug("[".concat(this._name,"] start connect, address: ").concat(JSON.stringify(s)));const T=(h=this._store)===null||h===void 0?void 0:h.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"}),D=Date.now();$o(this,fs.TO_CONNECT_DATACHANNEL).then(O=>{var P,U;if(!O)throw new Error("transmissonInfo not exist yet");const H=O.transmitter,$=O.close;this._transmitter=H,(P=this._store)===null||P===void 0||P.signalChannelOpen();const Z=Date.now()-D;J.debug("[choose dc] dc open cost ".concat(Z,"ms")),this._reliableTransmission=new kle(te=>{var se;this._transmitter&&this._transmitter.readyState==="open"&&((se=this._transmitter)===null||se===void 0||se.send(te))},te=>{if(typeof te=="string")this.emit(fs.ON_MESSAGE,te);else{const se=gQ(te,{raw:!0}).buffer,ge=this._textDecoder.decode(se);this.emit(fs.ON_MESSAGE,ge)}}),this._closeEstablishingTransmitter=()=>{var te;(te=this._reliableTransmission)===null||te===void 0||te.close(),this._reliableTransmission=void 0,$()},_&&_(),H.onclose=B,H.onmessage=Q,(U=this._store)===null||U===void 0||U.recordJoinChannelService({endTs:Date.now(),status:"success"},T),this._joinChannelServiceRecordIndex=T}).catch(O=>{var P;if((P=this._store)===null||P===void 0||P.recordJoinChannelService({endTs:Date.now(),status:O instanceof qe&&O.code===Ce.WS_ABORT?"aborted":"error",errors:[O]},T),this.state!=="closed"){if(O instanceof qe&&O.code===Ce.WS_ERR){const U=new qe(Ce.WS_ERR,"init datachannel failed! Error: ".concat(O.toString()));return J.error("[".concat(this._name,"]").concat(U)),void u(U)}B&&B(O)}else u(new qe(Ce.WS_DISCONNECT,"datachannel is closed: ".concat(O.toString())))})})}async reconnectWithAction(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._reconnectCount>=this._retryConfig.maxRetryCount||!this._addresses||this.state==="closed")return!1;this._onlineReconnectListener||ki.networkState!==tA.OFFLINE||(this._onlineReconnectListener=ki.onlineWaiter&&ki.onlineWaiter.then(()=>{this._onlineReconnectListener=void 0}));let u=!0;if(this._reconnectInterrupter=()=>{u=!1},c){const Q=Lf(this._reconnectCount,this._retryConfig);J.debug("[".concat(this._name,"] wait ").concat(Q,"ms to reconnect datachannel, mode: ").concat(s)),await Ut.race([so(Q),this._onlineReconnectListener||new Ut(()=>{})])}if(this.state==="closed"||!u)return!1;this._reconnectCount+=1;const h=async(Q,T)=>{this.emit(fs.RECONNECT_CREATE_CONNECTION,T),await this.createTransmitterConnection(Q)};try{if(s==="retry"){const Q=this._addresses[this.currentURLIndex];await h(Q,s)}else if(s==="tryNext"){this.currentURLIndex+=1;for(let T=this.currentURLIndex;T=this._addresses.length)return J.debug("[".concat(this._name,"] the available addresses are exhausted, change to recover")),await this.reconnectWithAction("recover",!1);J.debug("[".concat(this._name,"] datachannel url length: ").concat(this._addresses.length," current index: ").concat(this.currentURLIndex));const Q=this._addresses[this.currentURLIndex];await h(Q,s)}else s==="recover"&&(J.debug("[".concat(this._name,"] start to failback to websocket")),this.resetReconnectCount("recover mode"),this.emit(fs.FAILBACK));return!0}catch(Q){var _,B;return J.error("[".concat(this._name,"] reconnect failed"),Q.toString()),Q!=null&&(_=Q.data)!==null&&_!==void 0&&_.desc&&Array.isArray(Q.data.desc)&&Q.data.desc.length&&Et(B=Q.data.desc).call(B,"dynamic key expired")?(this.emit(fs.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1):await this.reconnectWithAction(s,c)}}}class Ple extends Cn{get connectionState(){return this._connectionState}set connectionState(s){s!==this._connectionState&&(this._connectionState=s,s===Ci.CONNECTED?this.emit(er.WS_CONNECTED):s===Ci.RECONNECTING?this.emit(er.WS_RECONNECTING,this._websocketReconnectReason):s===Ci.CLOSED&&this.emit(er.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket?this.websocket.url:null}get rtt(){return this.rttRolling.mean()}processPendingNotifications(){this.pendingNotifications.length!==0&&(J.debug("[".concat(this.clientId,"] processing ").concat(this.pendingNotifications.length," pending notifications")),this.pendingNotifications.forEach(s=>{let c=s.type,u=s.message;this.emit(c,u),c===Ur.ON_NOTIFICATION&&this.handleNotification(u),c===Ur.ON_USER_BANNED&&this.handleUserBanned(u)}),this.pendingNotifications=[])}handleUserBanned(s){switch(s.error_code){case 14:this.close(mi.UID_BANNED);break;case 15:this.close(mi.IP_BANNED);break;case 16:this.close(mi.CHANNEL_BANNED)}}constructor(s,c){super(),ae(this,"__name__","DataChannelSignal"),ae(this,"_disconnectedReason",void 0),ae(this,"_websocketReconnectReason",void 0),ae(this,"_connectionState",Ci.CLOSED),ae(this,"reconnectToken",void 0),ae(this,"websocket",void 0),ae(this,"openConnectionTime",void 0),ae(this,"clientId",void 0),ae(this,"lastMsgTime",Date.now()),ae(this,"uploadCache",[]),ae(this,"uploadCacheInterval",void 0),ae(this,"rttRolling",new VR(5)),ae(this,"pingpongTimer",void 0),ae(this,"inflateDataTimer",void 0),ae(this,"pingpongTimeoutCount",0),ae(this,"ortc",void 0),ae(this,"joinResponse",void 0),ae(this,"multiIpOption",void 0),ae(this,"initError",void 0),ae(this,"spec",void 0),ae(this,"store",void 0),ae(this,"isJoining",!1),ae(this,"pendingNotifications",[]),ae(this,"onWebsocketMessage",u=>{if(u instanceof ArrayBuffer)return void this.emit(er.ON_BINARY_DATA,u);const h=JSON.parse(u);if(de("DC_DEBUG_LOG")&&J.debug("[datachannel-signal] received packet",h),this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(h,"_id")){const _="res-@".concat(h._id);this.emit(_,h._result,h._message)}else Object.prototype.hasOwnProperty.call(h,"_type")&&(this.isJoining?h._type===Ur.ON_NOTIFICATION||h._type===Ur.ON_USER_BANNED?(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED&&this.handleUserBanned(h._message)):(this.pendingNotifications.push({type:h._type,message:h._message}),J.debug("[".concat(this.clientId,"] cached notification during join: ").concat(h._type))):(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED&&this.handleUserBanned(h._message)))}),this.clientId=s.clientId,this.spec=s,this.store=c,this.websocket=new gne("gateway-".concat(this.clientId),this.spec.retryConfig,!0,c),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Ci.CONNECTED&&this.reconnect("retry",Hd.OFFLINE)})}async request(s,c,u,h){const _=un(6,""),B={_id:_,_type:s,_message:c},Q=this.websocket.connectionID,T=()=>new Ut(($,Z)=>{if(this.connectionState===Ci.CONNECTED)return $();const te=()=>{this.off(er.WS_CLOSED,se),$()},se=()=>{this.off(er.WS_CONNECTED,te),Z(new qe(Ce.WS_ABORT))};this.once(er.WS_CONNECTED,te),this.once(er.WS_CLOSED,se),s!==ur.PUBLISH&&s!==ur.SUBSCRIBE&&s!==ur.UNSUBSCRIBE&&s!==ur.UNPUBLISH&&s!==ur.CONTROL&&s!==ur.RESTART_ICE||this.once(er.DISCONNECT_P2P,()=>{Z(new qe(Ce.DISCONNECT_P2P))}),s!==ur.PUBLISH&&s!==ur.RESTART_ICE||this.once(er.ABORT_P2P_EXECUTION,()=>{Z(new qe(Ce.DISCONNECT_P2P))})});if(this.connectionState!==Ci.CONNECTING&&this.connectionState!==Ci.RECONNECTING||s===ur.JOIN||s===ur.REJOIN||await T(),s===ur.LEAVE&&(this.websocket.unbindDcCloseEventListener(),h=!0),de("DC_DEBUG_LOG")&&J.debug("[datachannel-signal] sendMessage",B),await this.websocket.sendMessage(B,!0,!1),h)return;const D=new Ut(($,Z)=>{let te=!1;const se=(me,Qe)=>{te=!0,$({isSuccess:me==="success",message:Qe||{}}),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.emit(er.REQUEST_SUCCESS,s,c)};this.once("res-@".concat(_),se);const ge=()=>{Z(new qe(Ce.WS_ABORT,"type: ".concat(s))),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.off("res-@".concat(_),se)};this.once(er.WS_CLOSED,ge),this.once(er.WS_RECONNECTING,ge),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==Q||te||(J.warning("dc request timeout, type: ".concat(s)),this.emit(er.REQUEST_TIMEOUT,s,c))})});let O=null;try{O=await D}catch($){if(this.connectionState===Ci.CLOSED||s===ur.LEAVE)throw new qe(Ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||u?$.throw():s===ur.JOIN||s===ur.REJOIN?null:(await T(),await this.request(s,c))}if(O.isSuccess)return O.message;const P=Number(O.message.error_code||O.message.code),U=m1(P),H=new qe(Ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(O.message.error_str),{code:P,data:O.message});return U.action==="success"?O.message:(J.warning("[".concat(this.websocket.connectionID,"] unexpected response from type ").concat(s,", error_code: ").concat(P,", message: ").concat(U.desc,", action: ").concat(U.action)),P===Br.ERR_TOO_MANY_BROADCASTERS?((s===ur.JOIN||s===ur.REJOIN)&&(this.initError=H,this.close()),H.throw()):U.action==="failed"?H.throw():U.action==="quit"?(this.initError=H,this.close(),H.throw()):(P===Br.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=O.message.option,J.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Hd.MULTI_IP)):this.reconnect(U.action,Hd.SERVER_ERROR),s===ur.JOIN||s===ur.REJOIN?null:await this.request(s,c)))}waitMessage(s,c){return new Ut(u=>{const h=_=>{(!c||c(_))&&(this.off(s,h),u(_))};this.on(s,h)})}uploadWRTCStats(s){if(!this.store.sessionId)return void J.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));const c={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:s};this.upload(Mu.WRTC_STATS,c)}upload(s,c){const u={_type:s,_message:c};try{this.websocket.sendMessage(u)}catch{const _=de("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(u),this.uploadCache.length>_&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Ci.CONNECTED)return;const B=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(B._type,B._message)},de("UPLOAD_CACHE_INTERVAL")||2e3))}}async send(s,c){const u={_type:s,_message:c};await this.websocket.sendMessage(u)}init(s){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ut((c,u)=>{this.once(er.WS_CONNECTED,()=>c(this.joinResponse)),this.once(er.WS_CLOSED,()=>u(this.initError||new qe(Ce.WS_ABORT))),this.connectionState=Ci.CONNECTING,this.websocket.init(s).catch(u),this.websocket.once(fs.FAILBACK,()=>{u(new qe(Ce.INIT_DATACHANNEL_TIMEOUT))}),this.inflateDataTimer&&window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=window.setInterval(()=>{this.handleInflateData()},2e4),setTimeout(()=>{this.openConnectionTime===void 0&&(J.debug("[".concat(this.clientId,"] init datachannel timeout while join with failback to websocket")),u(new qe(Ce.INIT_DATACHANNEL_TIMEOUT)))},de("DC_JOIN_WITH_FAILBACK"))})}close(s){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.inflateDataTimer&&(this.handleInflateData(),window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this.isJoining=!1,this.pendingNotifications=[],this._disconnectedReason=s||mi.LEAVE,this.connectionState=Ci.CLOSED,J.debug("[".concat(this.clientId,"] ")+"will close datachannel in signal"),this.websocket.close(),s===mi.FALLBACK&&(this.websocket.removeAllListeners(),this.websocket=new gne("gateway-".concat(this.clientId),this.spec.retryConfig,!0,this.store),this.handleWebsocketEvents())}async join(){if(this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),de("DC_PINGPONG_INTERVAL")),!this.joinResponse){this.emit(er.ABORT_P2P_EXECUTION),this.store.signalConnected();const s=await $o(this,er.REQUEST_JOIN_INFO);this.store.joinReq();let c=await $o(this,er.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE);if(this.isJoining=!0,this.pendingNotifications=[],c){J.debug("join response from pre join response");const u=await this.request(ur.JOIN,s);u&&"ortc"in u&&(c=u)}else J.debug("join response from request join_v3"),c=await this.request(ur.JOIN,s);if(this.store.joinRep(),this.ortc=s==null?void 0:s.ortc,!c)return this.emit(er.REPORT_JOIN_GATEWAY,Ce.TIMEOUT,this.url||""),!1;this.joinResponse=c,this.emit(er.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Ci.CONNECTED,this.isJoining=!1,this.processPendingNotifications(),!0}async rejoin(){if(!this.reconnectToken)throw new qe(Ce.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");const s=nh(this,er.REQUEST_REJOIN_INFO);s.token=this.reconnectToken;const c=await this.request(ur.REJOIN,s);return!!c&&(this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),de("DC_PINGPONG_INTERVAL")),c.peers&&c.peers.forEach(u=>{this.emit(Ur.ON_USER_ONLINE,{uid:u.uid}),u.audio&&this.emit(Ur.ON_ADD_AUDIO_STREAM,{uid:u.uid,uint_id:u.uint_id,audio:!0,ssrcId:u.audio_ssrc}),u.video&&this.emit(Ur.ON_ADD_VIDEO_STREAM,{uid:u.uid,uint_id:u.uint_id,video:!0,ssrcId:u.video_ssrc}),u.audio_mute?this.emit(Ur.MUTE_AUDIO,{uid:u.uid}):this.emit(Ur.UNMUTE_AUDIO,{uid:u.uid}),u.video_mute?this.emit(Ur.MUTE_VIDEO,{uid:u.uid}):this.emit(Ur.UNMUTE_VIDEO,{uid:u.uid}),u.audio_enable_local?this.emit(Ur.ENABLE_LOCAL_AUDIO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_AUDIO,{uid:u.uid}),u.video_enable_local?this.emit(Ur.ENABLE_LOCAL_VIDEO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_VIDEO,{uid:u.uid}),u.audio||u.video||this.emit(Ur.ON_REMOVE_STREAM,{uid:u.uid,uint_id:u.uint_id})}),!0)}reconnect(s,c){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(s,c)}async downgradeCodec(s){if(!this.ortc)return!1;const c={downgrade_codec:s,ortc:this.ortc};return!!await this.request(ur.DOWNGRADE_CODEC,c)}handleNotification(s){J.debug("[".concat(this.clientId,"] receive notification: "),s);const c=m1(s.code);if(c.action!=="success"){if(c.action!=="failed")return c.action==="quit"?(c.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(mi.UID_BANNED),void this.close()):void this.reconnect(c.action,Hd.SERVER_ERROR);J.error("[".concat(this.clientId,"] ignore error: "),c.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1,de("DC_DEBUG_LOG")&&console.debug("[datachannel-signal] pingpongTimeoutCount: ".concat(this.pingpongTimeoutCount));const s=de("PING_PONG_TIME_OUT"),c=Date.now();this.pingpongTimeoutCount>=s&&(J.warning("[datachannel-signal] PINGPONG Timeout. Last Socket Message: ".concat(c-this.lastMsgTime,"ms")),c-this.lastMsgTime>de("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("recover",Hd.FALLBACK):this.request(ur.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;const u=Date.now()-c;this.rttRolling.add(u),de("REPORT_STATS")&&this.send(ur.PING_BACK,{pingpongElapse:u})}).catch(u=>{})}handleInflateData(){const s=this.websocket.getInflateData(),c=s.inflateLength,u=s.deflateLength;c!==0&&u!==0&&this.upload(Mu.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:u,ws_inflate_length:c})}handleWebsocketEvents(){this.websocket.on(fs.RECONNECT_CREATE_CONNECTION,s=>{this.emit(er.WS_RECONNECT_CREATE_CONNECTION,s)}),this.websocket.on(fs.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(fs.CLOSED,()=>{this.connectionState=Ci.CLOSED}),this.websocket.on(fs.FAILED,()=>{this._disconnectedReason=mi.NETWORK_ERROR,this.connectionState=Ci.CLOSED}),this.websocket.on(fs.RECONNECTING,s=>{this._websocketReconnectReason=s,this.joinResponse=void 0,this.connectionState===Ci.CONNECTED?this.connectionState=Ci.RECONNECTING:this.connectionState=Ci.CONNECTING}),this.websocket.on(fs.WILL_RECONNECT,(s,c)=>{if(nh(this,er.IS_P2P_DISCONNECTED)&&s==="retry")return J.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),this.reconnectToken=void 0,this.emit(er.NEED_RENEW_SESSION),this.emit(er.DISCONNECT_P2P),c("tryNext");s!=="retry"&&(J.debug("".concat(this.clientId," websockt will_connect event, renewSession reconnectMode is ").concat(s)),this.reconnectToken=void 0,this.emit(er.NEED_RENEW_SESSION),this.emit(er.DISCONNECT_P2P)),c(s)}),this.websocket.on(fs.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(s=>{J.warning("[".concat(this.clientId,"] rejoin failed ").concat(s)),this.reconnect("tryNext",Hd.SERVER_ERROR)}):this.join().catch(s=>{if(this.emit(er.REPORT_JOIN_GATEWAY,s.message||s.code,this.url||""),s instanceof qe&&s.code===Ce.UNEXPECTED_RESPONSE&&s.data.code===Br.ERR_NO_AUTHORIZED)return J.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",Hd.SERVER_ERROR);J.error("[".concat(this.clientId,"] join gateway request failed"),s.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Hd.SERVER_ERROR):(this.initError=s,this.close())})}),this.websocket.on(fs.REQUEST_NEW_URLS,(s,c)=>{$o(this,er.REQUEST_RECOVER,this.multiIpOption).then(s).catch(c)}),this.websocket.on(fs.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(fs.TO_CONNECT_DATACHANNEL,(s,c)=>{$o(this,er.PRE_CONNECT_PC).then(s).catch(c)}),this.websocket.on(fs.FAILBACK,()=>{this.openConnectionTime!==void 0&&this.emit(er.DATACHANNEL_FAILBACK)})}}const Ule={name:"DataChannelConnection",create:function(t){let s=t.store,c=t.spec;return new Lle(c,s)}},xle={name:"DataChannelSignal",create:function(t){let s=t.store,c=t.spec;return new Ple(c,s)}};I2(),Dn("PROCESS_ID","process-".concat(un(8,""),"-").concat(un(4,""),"-").concat(un(4,""),"-").concat(un(4,""),"-").concat(un(12,""))),function(){let t;try{t=window.localStorage.getItem("websdk_ng_global_parameter")}catch(s){return void J.error("Error loading sdk config",s.message)}if(t)try{const s=JSON.parse(window.atob(t)),c=Date.now();J.debug("Loading global parameters from cache",s),Object.keys(s).forEach(u=>{if(Object.prototype.hasOwnProperty.call(Vi,u)){const h=s[u],_=h.value,B=h.expires;if(B&&B<=c)return;$e[u]=_,Vi[u]=_}})}catch(s){J.error("Error loading mutableParamsCache: ".concat(t),s.message)}}(),Array.isArray($e.AREAS)&&$e.AREAS.length>0&&WX($e.AREAS,!0);const Ene=(t,s,c)=>{J.debug("setParameter key:".concat(t,", value:").concat(JSON.stringify(s))),Dn(t,s,c)};jh(tle,!1),jh(nle,!1),jh(jce,!1),jh(hle,!1),jh($ce,!1),jh(Tle,!1),jh(Dle,!1),jh(Nle,!1),jh(Ule,!1),jh(xle,!1);const Ws=function(t){const s=new Cn,c=t,u={getListeners:s.getListeners.bind(s),on:(h,_)=>(function(B,Q){B===iA.SECURITY_POLICY_VIOLATION&&bie(Q,!0)}(h,_),s.on.bind(s)(h,_)),addListener:s.addListener.bind(s),once:s.once.bind(s),off:s.off.bind(s),removeAllListeners:s.removeAllListeners.bind(s),emit:s.emit.bind(s),safeEmit:s.safeEmit.bind(s)};return Die(Die({},c),u)}({__TRACK_LIST__:lh,VERSION:W1,BUILD:Ng,ESM_BUNDLER:!1,ESM:!1,UMD:!0,DEV:!1,setParameter:Ene,getParameter:de,getSupportedCodec:async function(){let t={audio:[],video:[]};try{let s=new RTCPeerConnection;const c=await async function(u){let h;return Si().supportUnifiedPlan?(u.addTransceiver("video",{direction:"recvonly"}),u.addTransceiver("audio",{direction:"recvonly"}),h=(await u.createOffer()).sdp):h=(await u.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0})).sdp,h}(s);if(!c)return t;s.close(),s=null,t=function(u){const h={video:[],audio:[]};return u.match(/ VP8/i)&&h.video.push("VP8"),u.match(/ VP9/i)&&h.video.push("VP9"),u.match(/ AV1/i)&&h.video.push("AV1"),u.match(/ H264/i)&&h.video.push("H264"),u.match(/ H265/i)&&h.video.push("H265"),u.match(/ opus/i)&&h.audio.push("OPUS"),u.match(/ PCMU/i)&&h.audio.push("PCMU"),u.match(/ PCMA/i)&&h.audio.push("PCMA"),u.match(/ G722/i)&&h.audio.push("G722"),h}(c)}catch(s){throw new qe(Ce.CREATE_OFFER_FAILED,s.toString&&s.toString()).print()}return t},checkSystemRequirements:function(){let t=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];const s=qt.reportApiInvoke(null,{name:Ti.CHECK_SYSTEM_REQUIREMENTS,options:[],tag:vn.TRACER}),c=function(){let _=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],B=!1;try{const Q=window.RTCPeerConnection,T=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,D=window.WebSocket;B=!(!Q||!D),_&&!T&&(B=!1),B&&c2()&&e4(75)&&new Q().close()}catch(Q){J.error("check system requirement failed: ",Q),B=!1}return B}(t),u=qce();J.debug("checkSystemRequirements, api:",c,"browser",u);const h=c&&u;return s.onSuccess(h),de("IGNORE_RTC_DEVICE_CHECK")?c:h},getDevices:function(t){return rc.enumerateDevices(!0,!0,t)},getMicrophones:function(t){return rc.getRecordingDevices(t)},getCameras:function(t){return rc.getCamerasDevices(t)},getElectronScreenSources:Y4,getPlaybackDevices:function(t){return rc.getSpeakers(t)},createClient:Tie,createCameraVideoTrack:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const s=de("CAMERA_CAPTURE_CONFIG"),c=un(8,"track-cam-"),u=qt.reportApiInvoke(null,{id:c,tag:vn.TRACER,name:Ti.CREATE_CAM_VIDEO_TRACK,options:[Xn({},t),s]});s&&(t.encoderConfig=s);const h=Og(t);let _=null;J.info("start create camera video track with config",JSON.stringify(t),"trackId",c);try{_=(await Pi({video:h},c)).getVideoTracks()[0]||null}catch(Q){throw u.onError(Q),Q}if(!_){const Q=new tt(Ce.UNEXPECTED_ERROR,"can not find track in media stream");return u.onError(Q),Q.throw(J)}if(t.optimizationMode&&qr(c,_,t,El(t.encoderConfig)),de("USE_STANDARD_BITRATE_DEFAULT")){const Q=El(t.encoderConfig);t.encoderConfig=Q,delete Q.bitrateMax,delete Q.bitrateMin}const B=new Or(_,t,h,t.scalabiltyMode?Vf(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,c);return u.onSuccess(B.getTrackId()),J.info("create camera video success, trackId:",c),B},createCustomVideoTrack:function(t){const s=un(8,"track-cus-"),c=qt.reportApiInvoke(null,{id:s,tag:vn.TRACER,name:Ti.CREATE_CUSTOM_VIDEO_TRACK,options:[t]});de("USE_STANDARD_BITRATE_DEFAULT")&&(delete t.bitrateMax,delete t.bitrateMin);const u=new pn(t.mediaStreamTrack,{width:t.width,height:t.height,frameRate:t.frameRate,bitrateMax:t.bitrateMax,bitrateMin:t.bitrateMin,minDownscaleWidth:t.minDownscaleWidth,minDownscaleHeight:t.minDownscaleHeight},t.scalabiltyMode?Vf(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,s,[gn.CUSTOM_TRACK]);return c.onSuccess(u.getTrackId()),J.info("create custom video track success with config",t,"trackId",u.getTrackId()),u},createScreenVideoTrack:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"disable";const c=typeof s=="object"?function(U){const H=f1(U);return L4()&&U.suppressLocalAudioPlayback&&(H.suppressLocalAudioPlayback=U.suppressLocalAudioPlayback),M4()&&U.restrictOwnAudio&&(H.restrictOwnAudio=!0),H}(s):void 0;c&&(s="auto");const u=un(8,"track-scr-v-"),h=qt.reportApiInvoke(null,{id:u,tag:vn.TRACER,name:Ti.CREATE_SCREEN_VIDEO_TRACK,options:[Xn({},t),s]});t.encoderConfig?typeof t.encoderConfig=="string"||t.encoderConfig.width&&t.encoderConfig.height||(t.encoderConfig.width={max:1920},t.encoderConfig.height={max:1080}):t.encoderConfig="1080p_2";const _=function(U){const H={};U.screenSourceType&&(H.mediaSource=U.screenSourceType),U.extensionId&&DA()&&(H.extensionId=U.extensionId);const $=U.displaySurface,Z=U.selfBrowserSurface,te=U.surfaceSwitching,se=U.systemAudio,ge=U.preferCurrentTab,me=U.windowAudio,Qe=U.monitorTypeSurfaces;(al(107)||wu(107)||A2(93))&&($&&(As($,"displaySurface",["browser","window","monitor"]),H.displaySurface=$),Z?(As(Z,"selfBrowserSurface",["exclude","include"]),H.selfBrowserSurface=Z):H.selfBrowserSurface="include",te&&(As(te,"surfaceSwitching",["exclude","include"]),H.surfaceSwitching=te)),(al(105)||wu(105)||A2(91))&&se&&(As(se,"systemAudio",["exclude","include"]),H.systemAudio=se),(al(94)||wu(94)||A2(80))&&ge&&(H.preferCurrentTab=!0),(al(141)||wu(141)||A2(125))&&me&&(As(me,"windowAudio",["exclude","system"]),H.windowAudio=me),(al(119)||wu(119)||A2(105))&&Qe&&(As(Qe,"monitorTypeSurfaces",["exclude","include"]),H.monitorTypeSurfaces=Qe),U.electronScreenSourceId&&(H.sourceId=U.electronScreenSourceId);const Oe=U.encoderConfig?ny(U.encoderConfig):null;return H.mandatory={chromeMediaSource:"desktop",maxWidth:Oe?Oe.width:void 0,maxHeight:Oe?Oe.height:void 0},Oe&&(Oe.frameRate&&(typeof Oe.frameRate=="number"?(H.mandatory.maxFrameRate=Oe.frameRate,H.mandatory.minFrameRate=Oe.frameRate):(H.mandatory.maxFrameRate=Oe.frameRate.max||Oe.frameRate.ideal||Oe.frameRate.exact||void 0,H.mandatory.minFrameRate=Oe.frameRate.min||Oe.frameRate.ideal||Oe.frameRate.exact||void 0),H.frameRate=Oe.frameRate),Oe.width&&(H.width=Oe.width),Oe.height&&(H.height=Oe.height)),H}(t);let B=null,Q=null;const T=Si();if(!T.supportShareAudio&&s==="enable"){const U=new tt(Ce.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return h.onError(U),U.throw(J)}J.info("start create screen video track with config",t,"withAudio",s,"trackId",u);const D=T.supportShareAudio&&s!=="disable";try{const U=await Pi({screen:_,screenAudio:D?c||!0:void 0},u);B=U.getVideoTracks()[0]||null,Q=U.getAudioTracks()[0]||null}catch(U){throw h.onError(U),U}if(!B){const U=new tt(Ce.UNEXPECTED_ERROR,"can not find track in media stream");return h.onError(U),U.throw(J)}if(!Q&&s==="enable"){B&&B.stop();const U=new tt(Ce.SHARE_AUDIO_NOT_ALLOWED);return h.onError(U),U.throw(J)}t.optimizationMode||(t.optimizationMode="detail"),t.optimizationMode&&(qr(u,B,t,t.encoderConfig&&ny(t.encoderConfig)||void 0),t.encoderConfig&&typeof t.encoderConfig!="string"&&(t.encoderConfig.bitrateMin=t.encoderConfig.bitrateMax));const O=new pn(B,t.encoderConfig?ny(t.encoderConfig):{},t.scalabiltyMode?Vf(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,u,[gn.SCREEN_TRACK]);if(!Q)return h.onSuccess(O.getTrackId()),J.info("create screen video track success","video:",O.getTrackId()),O;const P=new po(Q,void 0,un(8,"track-scr-a-"),!1);return h.onSuccess([O.getTrackId(),P.getTrackId()]),J.info("create screen video track success","video:",O.getTrackId(),"audio:",P.getTrackId()),[O,P]},createMicrophoneAndCameraTracks:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const c=de("CAMERA_CAPTURE_CONFIG"),u=un(8,"track-mic-"),h=un(8,"track-cam-"),_=qt.reportApiInvoke(null,{id:"".concat(u,"-").concat(h),tag:vn.TRACER,name:Ti.CREATE_MIC_AND_CAM_TRACKS,options:[t,s,c]});c&&(s.encoderConfig=c);const B=Og(s),Q=$4(t);let T=null,D=null;J.info("start create camera video track(".concat(h,") and microphone audio track(").concat(u,") with config, audio: ").concat(JSON.stringify(t),", video: ").concat(JSON.stringify(s)));try{const U=await Pi({audio:Q,video:B},"".concat(u,"-").concat(h));T=U.getAudioTracks()[0],D=U.getVideoTracks()[0]}catch(U){throw _.onError(U),U}if(!T||!D){const U=new tt(Ce.UNEXPECTED_ERROR,"can not find tracks in media stream");return _.onError(U),U.throw(J)}if(s.optimizationMode&&qr(h,D,s,El(s.encoderConfig)),de("USE_STANDARD_BITRATE_DEFAULT")){const U=El(s.encoderConfig);s.encoderConfig=U,delete U.bitrateMax,delete U.bitrateMin}const O=new xd(T,t,Q,u),P=new Or(D,s,B,s.scalabiltyMode?Vf(s.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},s.optimizationMode,h);return _.onSuccess([O.getTrackId(),P.getTrackId()]),J.info("create camera video track(".concat(h,") and microphone audio track(").concat(u,") success")),[O,P]},createMicrophoneAudioTrack:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const s=un(8,"track-mic-"),c=qt.reportApiInvoke(null,{id:s,tag:vn.TRACER,name:Ti.CREATE_MIC_AUDIO_TRACK,options:[t]}),u=$4(t);let h=null;J.info("start create microphone audio track with config",JSON.stringify(t),"trackId",s);try{h=(await Pi({audio:u},s)).getAudioTracks()[0]||null}catch(B){throw c.onError(B),B}if(!h){const B=new tt(Ce.UNEXPECTED_ERROR,"can not find track in media stream");return c.onError(B),B.throw(J)}const _=new xd(h,t,u,s);return c.onSuccess(_.getTrackId()),J.info("create microphone audio track success, trackId:",s),_},createCustomAudioTrack:uA,createBufferSourceAudioTrack:async function(t){var s;const c=t.cacheOnlineFile,u=t.encoderConfig;let h=t.source;const _={source:h instanceof AudioBuffer?"AudioBuffer":h instanceof File?(s=File.name)!==null&&s!==void 0?s:"File":h,cacheOnlineFile:c,encoderConfig:u},B=un(8,"track-buf-"),Q=qt.reportApiInvoke(null,{id:B,tag:vn.TRACER,name:Ti.CREATE_BUFFER_AUDIO_TRACK,options:[_]});if(de("DISABLE_WEBAUDIO"))throw new tt(Ce.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");J.info("start create buffer source audio track with config",JSON.stringify(_),"trackId",B);const T=h;if(!(h instanceof AudioBuffer))try{h=await async function(P,U){let H=null;if(typeof P=="string"){const Z=QU.get(P);if(Z)return J.debug("use cached audio resource: ",P),Z;try{H=(await dl(()=>on.get(P,{responseType:"arraybuffer"}),void 0,void 0,{maxRetryCount:3})).data}catch(te){throw new tt(Ce.FETCH_AUDIO_FILE_FAILED,te.toString())}}else H=await new Ut((te,se)=>{const ge=new FileReader;ge.onload=me=>{me.target?te(me.target.result):se(new tt(Ce.READ_LOCAL_AUDIO_FILE_ERROR))},ge.onerror=()=>{se(new tt(Ce.READ_LOCAL_AUDIO_FILE_ERROR))},ge.readAsArrayBuffer(P)});const $=await function(Z){const te=w2();return new Ut((se,ge)=>{te.decodeAudioData(Z,me=>{se(me)},me=>{ge(new tt(Ce.DECODE_AUDIO_FILE_FAILED,me.toString()))})})}(H);return typeof P=="string"&&U&&QU.set(P,$),$}(h,c)}catch(P){return Q.onError(P),P.throw(J)}const D=new yU(h),O=new cN(T,D,u?Kf(u):{},B);return J.info("create buffer source audio track success, trackId:",B),Q.onSuccess(O.getTrackId()),O},setAppType:function(t){if(J.debug("setAppType: ".concat(t)),!(Number.isInteger(t)&&t>=0))throw J.debug("Invalid appType"),new qe(Ce.INVALID_PARAMS,"invalid app type",t);Dn("APP_TYPE",Math.floor(t))},setLogLevel:function(t){J.setLogLevel(t)},enableLogUpload:function(){de("USE_NEW_LOG")?Dn("UPLOAD_LOG",!0):J.enableLogUpload()},disableLogUpload:function(){de("USE_NEW_LOG")?Dn("UPLOAD_LOG",!1):J.disableLogUpload()},createChannelMediaRelayConfiguration:function(){return new Pte},checkAudioTrackIsActive:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const c=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.CHECK_AUDIO_TRACK_IS_ACTIVE,options:[s]});if(!(t instanceof po||t instanceof an)){const T=new qe(Ce.INVALID_TRACK,"the parameter is not a audio track");return c.onError(T),T.throw()}s&&s<1e3&&(s=1e3);const u=t instanceof po?t.getTrackLabel():"remote_track",h=t.getVolumeLevel();let _=h,B=h;const Q=Date.now();return new Ut(T=>{const D=setInterval(()=>{const O=t.getVolumeLevel();_=O>_?O:_,B=O1e-4,U=Date.now()-Q;if(P||U>s){clearInterval(D);const H=P,$={duration:U,deviceLabel:u,maxVolumeLevel:_,result:H};J.info("[track-".concat(t.getTrackId(),"] check audio track active completed. ").concat(JSON.stringify($))),c.onSuccess($),T(H)}},200)})},checkVideoTrackIsActive:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const c=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.CHECK_VIDEO_TRACK_IS_ACTIVE,options:[s]});if(!(t instanceof pn||t instanceof Fd)){const P=new qe(Ce.INVALID_TRACK,"the parameter is not a video track");return c.onError(P),P.throw()}s&&s<1e3&&(s=1e3);const u=t instanceof pn?t.getTrackLabel():"remote_track",h=t.getMediaStreamTrack(!0),_=document.createElement("video");_.style.width="1px",_.style.height="1px",_.setAttribute("muted",""),_.muted=!0,_.setAttribute("playsinline",""),_.controls=!1,(Zs()||Qf())&&(_.style.opacity="0.01",_.style.position="fixed",_.style.left="0",_.style.top="0",document.body.appendChild(_)),_.srcObject=new MediaStream([h]),_.play();const B=document.createElement("canvas");B.width=160,B.height=120;let Q=0,T=0;try{const P=Date.now();Q=await function(U,H,$,Z){let te,se=0,ge=null;return new Ut((me,Qe)=>{function Oe(){se>Z&&te&&(te(),me(se));const we=$.getContext("2d");if(!we){const st=new qe(Ce.UNEXPECTED_ERROR,"can not get canvas 2d context.");return J.error(st.toString()),void Qe(st)}we.drawImage(U,0,0,160,120);const Ne=we.getImageData(0,0,$.width,$.height),et=Math.floor(Ne.data.length/3);if(ge){for(let st=0;st{te&&(te(),me(se))},H),te=hi(()=>{Oe()},30)})}(_,s,B,4),T=Date.now()-P}catch(P){throw c.onError(P),P}Nce===Fi.SAFARI&&(_.pause(),_.remove()),_.srcObject=null;const D=Q>4,O={duration:T,changedPicNum:Q,deviceLabel:u,result:D};return J.info("[track-".concat(t.getTrackId(),"] check video track active completed. ").concat(JSON.stringify(O))),c.onSuccess(O),D},setArea:WX,audioElementPlayCenter:rA,resumeAudioContext:function(){return rA.autoResumeAfterInterruption(!0)},processExternalMediaAEC:function(t){Xce.processExternalMediaAEC(t)},registerExtensions:function(t){const s=de("PLUGIN_INFO")||[];t.forEach(c=>{"name"in c&&!Et(s).call(s,c.name)&&s.push(c.name);const u=c;u.__registered__=!0,u.logger.hookLog=J.extLog,u.reporter.hookApiInvoke=qt.extApiInvoke,u.parameters&&Object.keys(u.parameters).forEach(h=>{u.parameters[h]=de(h)})}),Ene("PLUGIN_INFO",s)},ChannelMediaRelayError:t1,ChannelMediaRelayEvent:Kd,ChannelMediaRelayState:e1,RemoteStreamFallbackType:YJ,RemoteStreamType:Os,ConnectionDisconnectedReason:mi,AudienceLatencyLevelType:o4,AREAS:gi,preload:async function(t,s,c,u){return fz(t,s,c,u)},startLastmileProbeTest:async function(t,s,c,u){let h={state:"unavailable"};await fz(t,s,c,u);const _=await _z({appId:t,cname:s,token:c||t,uid:u,cloudProxyServer:"disabled"});if(!_)return h;await mz(_);const B=Tie({mode:"rtc",codec:"vp8"});let Q;try{Q=await B.join(t,s,c,u,{networkQualityProbe:!0})}catch{return h}const T=new kce,D=T.createMuteAudioTrack(),O=await uA({mediaStreamTrack:D});await B.publish([O]);const P=ir(await new Ut((Qe,Oe)=>{const we=setTimeout(()=>{clearTimeout(we),Qe([!0,null,"audio"])},5e3);B.on("user-published",async(Ne,et)=>{Ne.uid===Q&&(clearTimeout(we),Qe([!1,Ne,et]))})}),3),U=P[0],H=P[1],$=P[2];if(U||!H)return await B.unpublish([O]),await B.leave(),O.close(),T.close(),h;await B.subscribe(H,$),await new Ut((Qe,Oe)=>{const we=setTimeout(()=>{clearTimeout(we),Qe(null)},5e3)});const Z=B.getRTCStats(),te=B.getLocalAudioStats(),se=Z.RTT,ge=te.sendJitterMs,me=te.currentPacketLossRate;return h={state:"complete",rtt:se,packetLossRate:me,jitter:ge,networkQuality:((Qe,Oe,we)=>{let Ne=1;if(we>0){let ft=Math.log(100*we)/Math.log(2)+1;ft=Math.min(5,Math.max(0,ft)),Ne=1-ft/5}let et=1;if(Qe>0){let ft=Math.log(Qe/40)/Math.log(2)+1;ft=Math.min(5,Math.max(0,ft)),et=1-ft/5}let st=1;if(Oe>0){let ft=Math.log(Oe/10)/Math.log(2.5)+1;ft=Math.min(5,Math.max(0,ft)),st=1-ft/5}const Xt=.5*Ne+.3*et+.2*st;let lr=0;return lr=Xt>=.8?1:Xt>=.6?2:Xt>=.4?3:Xt>=.2?4:5,lr})(se,ge,me)},await B.unsubscribe(H),await B.unpublish([O]),await B.leave(),O.close(),T.close(),await mz(_),h}});return Object.defineProperties(Ws,{onAudioAutoplayFailed:{get:()=>bA.onAudioAutoplayFailed,set:t=>{bA.onAudioAutoplayFailed=t}},onAutoplayFailed:{get:()=>bA.onAutoplayFailed,set:t=>{bA.onAutoplayFailed=t}},_onSecurityPolicyViolation:{value:void 0,writable:!0},_cspEventHandlerPointer:{value:void 0,writable:!0},onSecurityPolicyViolation:{get:()=>Ws._onSecurityPolicyViolation,set(t){Ws._onSecurityPolicyViolation=t,bie(t)}},__CLIENT_LIST__:{get:()=>de("SHOW_GLOBAL_CLIENT_LIST")?ph:[]}}),rc.on(uh.CAMERA_DEVICE_CHANGED,t=>{J.info("camera device changed",JSON.stringify(t)),Ws.onCameraChanged&&Ws.onCameraChanged(t),Ws.safeEmit(iA.CAMERA_CHANGED,t)}),rc.on(uh.RECORDING_DEVICE_CHANGED,t=>{J.info("microphone device changed",JSON.stringify(t)),Ws.onMicrophoneChanged&&Ws.onMicrophoneChanged(t),Ws.safeEmit(iA.MICROPHONE_CHANGED,t)}),rc.on(uh.PLAYOUT_DEVICE_CHANGED,t=>{J.debug("playout device changed",JSON.stringify(t)),Ws.onPlaybackDeviceChanged&&Ws.onPlaybackDeviceChanged(t),Ws.safeEmit(iA.PLAYBACK_DEVICE_CHANGED,t)}),rA.onAutoplayFailed=()=>{J.info("detect audio element autoplay failed"),bA.onAudioAutoplayFailed&&bA.onAudioAutoplayFailed()},bn.on("autoplay-failed",()=>{J.info("detect webaudio autoplay failed"),bA.onAudioAutoplayFailed&&bA.onAudioAutoplayFailed(),Ws.safeEmit(iA.AUTOPLAY_FAILED)}),bn.on(Yo.STATE_CHANGE,(t,s)=>{J.info("audio context state changed: ".concat(s," => ").concat(t)),Ws.onAudioContextStateChanged&&Ws.onAudioContextStateChanged(t,s),Ws.safeEmit(iA.AUDIO_CONTEXT_STATE_CHANGED,t,s)}),ki.on(E2.NETWORK_STATE_CHANGE,(t,s)=>{J.info("[network-indicator] network state changed, ".concat(s," => ").concat(t))}),window&&(window.__ARTC__=Ws),Ws})}(AgoraRTC_NProduction)),AgoraRTC_NProduction.exports}(function(module,exports){var define_process_env_default={};/*! @preserve + * AgoraRTM Web SDK 2.2.4 - commit: v2.2.4-0-gfd60c918 - fusion: false + * Copyright (C) 2018-2026 Agora Lab. + * This file is licensed under the AGORA, INC. SDK LICENSE AGREEMENT + * A copy of this license may be found at https://www.agora.io/en/sdk-license-agreement/ + */(function(n,e){module.exports=e(requireAgoraRTC_NProduction())})(commonjsGlobal,function(AgoraRTC){let AreaCodeMap=function(n){return n.CHINA="CN",n.ASIA="AS",n.NORTH_AMERICA="NA",n.EUROPE="EU",n.JAPAN="JP",n.INDIA="IN",n.OCEANIA="OC",n.SOUTH_AMERICA="SA",n.AFRICA="AF",n.GLOBAL="GLOBAL",n.OVERSEA="OVERSEA",n.SOUTH_KOREA="KR",n.UNITED_STATES="US",n}({});AreaCodeMap.CHINA,AreaCodeMap.NORTH_AMERICA,AreaCodeMap.EUROPE,AreaCodeMap.ASIA,AreaCodeMap.JAPAN,AreaCodeMap.INDIA,AreaCodeMap.OCEANIA,AreaCodeMap.OVERSEA,AreaCodeMap.SOUTH_AMERICA,AreaCodeMap.AFRICA,AreaCodeMap.SOUTH_KOREA,AreaCodeMap.UNITED_STATES,AreaCodeMap.GLOBAL;const AREA_DOMAIN_MAP$1={[AreaCodeMap.ASIA]:{CODE:AreaCodeMap.ASIA,AP_DOMAINS:["ap-web-1-asia.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-asia.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-asia.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-asia.agora.io"],LOG_UPLOAD_SERVER:["logservice-asia.agora.io"],PROXY_AP:["proxy-ap-web-asia.agora.io"],PROXY_NGINX:["southeast-asia.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.NORTH_AMERICA]:{CODE:AreaCodeMap.NORTH_AMERICA,AP_DOMAINS:["ap-web-1-north-america.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-north-america.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-north-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-north-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-north-america.agora.io"],PROXY_AP:["proxy-ap-web-america.agora.io"],PROXY_NGINX:["east-usa.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.EUROPE]:{CODE:AreaCodeMap.EUROPE,AP_DOMAINS:["ap-web-1-europe.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-europe.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-europe.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-europe.agora.io"],LOG_UPLOAD_SERVER:["logservice-europe.agora.io"],PROXY_AP:["proxy-ap-web-europe.agora.io"],PROXY_NGINX:["europe.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.JAPAN]:{CODE:AreaCodeMap.JAPAN,AP_DOMAINS:["ap-web-1-japan.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-japan.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-japan.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-japan.agora.io"],LOG_UPLOAD_SERVER:["logservice-japan.agora.io"],PROXY_AP:["proxy-ap-web-japan.agora.io"],PROXY_NGINX:["japan.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.INDIA]:{CODE:AreaCodeMap.INDIA,AP_DOMAINS:["ap-web-1-india.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-india.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-india.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-india.agora.io"],LOG_UPLOAD_SERVER:["logservice-india.agora.io"],PROXY_AP:["proxy-ap-web-india.agora.io"],PROXY_NGINX:["india.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.OVERSEA]:{CODE:AreaCodeMap.OVERSEA,AP_DOMAINS:["ap-web-1-oversea.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-oversea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oversea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oversea.agora.io"],LOG_UPLOAD_SERVER:["logservice-oversea.agora.io"],PROXY_AP:["proxy-ap-web-oversea.agora.io"],PROXY_NGINX:["webrtc-cloud-proxy.agora.io"]},[AreaCodeMap.GLOBAL]:{CODE:AreaCodeMap.GLOBAL,AP_DOMAINS:["ap-web-1.agora.io","ap-web-2.agora.io"],AP_BACKUP_DOMAINS:["ap-web-3.agora.io","ap-web-4.agora.io"],EVENT_REPORT_DOMAIN:["webcollector-rtm.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["webcollector-1.agora.io"],LOG_UPLOAD_SERVER:["logservice-rtm.agora.io"],PROXY_AP:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],PROXY_NGINX:["webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.OCEANIA]:{CODE:AreaCodeMap.OCEANIA,AP_DOMAINS:["ap-web-1-oceania.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-oceania.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oceania.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oceania.agora.io"],LOG_UPLOAD_SERVER:["logservice-oceania.agora.io"],PROXY_AP:["proxy-ap-web-oceania.agora.io"],PROXY_NGINX:["oceania.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.SOUTH_AMERICA]:{CODE:AreaCodeMap.SOUTH_AMERICA,AP_DOMAINS:["ap-web-1-south-america.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-south-america.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-south-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-south-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-america.agora.io"],PROXY_AP:["proxy-ap-web-south-america.agora.io"],PROXY_NGINX:["south-america.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.AFRICA]:{CODE:AreaCodeMap.AFRICA,AP_DOMAINS:["ap-web-1-africa.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-africa.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-africa.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-africa.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-africa.agora.io"],PROXY_AP:["proxy-ap-web-africa.agora.io"],PROXY_NGINX:["africa.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.CHINA]:{CODE:AreaCodeMap.CHINA,AP_DOMAINS:["webrtc2-2.ap.sd-rtn.com"],AP_BACKUP_DOMAINS:["webrtc2-4.ap.sd-rtn.com"],EVENT_REPORT_DOMAIN:["statscollector-1-china.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-china.agora.io"],LOG_UPLOAD_SERVER:["logservice-china.agora.io"],PROXY_AP:["proxy-ap-web.agoraio.cn"],PROXY_NGINX:["east-cn.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.SOUTH_KOREA]:{CODE:AreaCodeMap.SOUTH_KOREA,AP_DOMAINS:["ap-web-1-korea.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-korea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-korea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-korea.agora.io"],LOG_UPLOAD_SERVER:["logservice-korea.agora.io"],PROXY_AP:["proxy-ap-web-korea.agora.io"],PROXY_NGINX:["korea.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.UNITED_STATES]:{CODE:AreaCodeMap.UNITED_STATES,AP_DOMAINS:["ap-web-1-us.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-us.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-us.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-us.agora.io"],LOG_UPLOAD_SERVER:["logservice-us.agora.io"],PROXY_AP:["proxy-ap-web-us.agora.io"],PROXY_NGINX:["us.webrtc-cloud-proxy.sd-rtn.com"]}},continentCountryMap={[AreaCodeMap.ASIA]:[AreaCodeMap.CHINA,AreaCodeMap.JAPAN,AreaCodeMap.INDIA],[AreaCodeMap.EUROPE]:[],[AreaCodeMap.NORTH_AMERICA]:[],[AreaCodeMap.SOUTH_AMERICA]:[],[AreaCodeMap.OCEANIA]:[],[AreaCodeMap.AFRICA]:[]},areaWeights=[AreaCodeMap.GLOBAL,AreaCodeMap.CHINA,AreaCodeMap.NORTH_AMERICA,AreaCodeMap.EUROPE,AreaCodeMap.ASIA,AreaCodeMap.JAPAN,AreaCodeMap.INDIA,AreaCodeMap.OCEANIA,AreaCodeMap.SOUTH_AMERICA,AreaCodeMap.AFRICA];function _applyDecoratedDescriptor(n,e,o,d,I){var f={};return Object.keys(d).forEach(function(S){f[S]=d[S]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=o.slice().reverse().reduce(function(S,v){return v(n,e,S)||S},f),I&&f.initializer!==void 0&&(f.value=f.initializer?f.initializer.call(I):void 0,f.initializer=void 0),f.initializer===void 0?(Object.defineProperty(n,e,f),null):f}function _defineProperty$1(n,e,o){return(e=_toPropertyKey(e))in n?Object.defineProperty(n,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[e]=o,n}function ownKeys(n,e){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(n);e&&(d=d.filter(function(I){return Object.getOwnPropertyDescriptor(n,I).enumerable})),o.push.apply(o,d)}return o}function _objectSpread2(n){for(var e=1;e1)this.connection=null;else{var I=this.connection,f=o._connection;this.connection=null,!f||I&&f!==I||f.unsubscribe()}}else this.connection=null},e}(Subscriber),ConnectableObservable=function(n){function e(o,d){var I=n.call(this)||this;return I.source=o,I.subjectFactory=d,I._refCount=0,I._isComplete=!1,I}return __extends$3(e,n),e.prototype._subscribe=function(o){return this.getSubject().subscribe(o)},e.prototype.getSubject=function(){var o=this._subject;return o&&!o.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var o=this._connection;return o||(this._isComplete=!1,(o=this._connection=new Subscription$2).add(this.source.subscribe(new ConnectableSubscriber(this.getSubject(),this))),o.closed&&(this._connection=null,o=Subscription$2.EMPTY)),o},e.prototype.refCount=function(){return refCount()(this)},e}(Observable),connectableObservableDescriptor=function(){var n=ConnectableObservable.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:n._subscribe},_isComplete:{value:n._isComplete,writable:!0},getSubject:{value:n.getSubject},connect:{value:n.connect},refCount:{value:n.refCount}}}(),ConnectableSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.connectable=d,I}return __extends$3(e,n),e.prototype._error=function(o){this._unsubscribe(),n.prototype._error.call(this,o)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),n.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var o=this.connectable;if(o){this.connectable=null;var d=o._connection;o._refCount=0,o._subject=null,o._connection=null,d&&d.unsubscribe()}},e}(SubjectSubscriber),Action$2=function(n){function e(o,d){return n.call(this)||this}return __extends$3(e,n),e.prototype.schedule=function(o,d){return this},e}(Subscription$2),AsyncAction$2=function(n){function e(o,d){var I=n.call(this,o,d)||this;return I.scheduler=o,I.work=d,I.pending=!1,I}return __extends$3(e,n),e.prototype.schedule=function(o,d){if(d===void 0&&(d=0),this.closed)return this;this.state=o;var I=this.id,f=this.scheduler;return I!=null&&(this.id=this.recycleAsyncId(f,I,d)),this.pending=!0,this.delay=d,this.id=this.id||this.requestAsyncId(f,this.id,d),this},e.prototype.requestAsyncId=function(o,d,I){return I===void 0&&(I=0),setInterval(o.flush.bind(o,this),I)},e.prototype.recycleAsyncId=function(o,d,I){if(I===void 0&&(I=0),I!==null&&this.delay===I&&this.pending===!1)return d;clearInterval(d)},e.prototype.execute=function(o,d){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var I=this._execute(o,d);if(I)return I;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(o,d){var I=!1,f=void 0;try{this.work(o)}catch(S){I=!0,f=!!S&&S||new Error(S)}if(I)return this.unsubscribe(),f},e.prototype._unsubscribe=function(){var o=this.id,d=this.scheduler,I=d.actions,f=I.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,f!==-1&&I.splice(f,1),o!=null&&(this.id=this.recycleAsyncId(d,o,null)),this.delay=null},e}(Action$2),QueueAction=function(n){function e(o,d){var I=n.call(this,o,d)||this;return I.scheduler=o,I.work=d,I}return __extends$3(e,n),e.prototype.schedule=function(o,d){return d===void 0&&(d=0),d>0?n.prototype.schedule.call(this,o,d):(this.delay=d,this.state=o,this.scheduler.flush(this),this)},e.prototype.execute=function(o,d){return d>0||this.closed?n.prototype.execute.call(this,o,d):this._execute(o,d)},e.prototype.requestAsyncId=function(o,d,I){return I===void 0&&(I=0),I!==null&&I>0||I===null&&this.delay>0?n.prototype.requestAsyncId.call(this,o,d,I):o.flush(this)},e}(AsyncAction$2),Scheduler$2=function(){function n(e,o){o===void 0&&(o=n.now),this.SchedulerAction=e,this.now=o}return n.prototype.schedule=function(e,o,d){return o===void 0&&(o=0),new this.SchedulerAction(this,e).schedule(d,o)},n.now=function(){return Date.now()},n}(),AsyncScheduler$2=function(n){function e(o,d){d===void 0&&(d=Scheduler$2.now);var I=n.call(this,o,function(){return e.delegate&&e.delegate!==I?e.delegate.now():d()})||this;return I.actions=[],I.active=!1,I.scheduled=void 0,I}return __extends$3(e,n),e.prototype.schedule=function(o,d,I){return d===void 0&&(d=0),e.delegate&&e.delegate!==this?e.delegate.schedule(o,d,I):n.prototype.schedule.call(this,o,d,I)},e.prototype.flush=function(o){var d=this.actions;if(this.active)d.push(o);else{var I;this.active=!0;do if(I=o.execute(o.state,o.delay))break;while(o=d.shift());if(this.active=!1,I){for(;o=d.shift();)o.unsubscribe();throw I}}},e}(Scheduler$2),QueueScheduler=function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return __extends$3(e,n),e}(AsyncScheduler$2),queueScheduler=new QueueScheduler(QueueAction),queue=queueScheduler,EMPTY=new Observable(function(n){return n.complete()});function empty(n){return n?emptyScheduled(n):EMPTY}function emptyScheduled(n){return new Observable(function(e){return n.schedule(function(){return e.complete()})})}function isScheduler(n){return n&&typeof n.schedule=="function"}var subscribeToArray=function(n){return function(e){for(var o=0,d=n.length;othis._bufferSize&&d.shift()}n.prototype.next.call(this,o)},e.prototype.nextTimeWindow=function(o){this.isStopped||(this._events.push(new ReplayEvent(this._getNow(),o)),this._trimBufferThenGetEvents()),n.prototype.next.call(this,o)},e.prototype._subscribe=function(o){var d,I=this._infiniteTimeWindow,f=I?this._events:this._trimBufferThenGetEvents(),S=this.scheduler,v=f.length;if(this.closed)throw new ObjectUnsubscribedError;if(this.isStopped||this.hasError?d=Subscription$2.EMPTY:(this.observers.push(o),d=new SubjectSubscription(this,o)),S&&o.add(o=new ObserveOnSubscriber(o,S)),I)for(var L=0;Ld&&(v=Math.max(v,S-d)),v>0&&f.splice(0,v),f},e}(Subject),ReplayEvent=function(){return function(n,e){this.time=n,this.value=e}}(),nextHandle=1,RESOLVED=function(){return Promise.resolve()}(),activeHandles={};function findAndClearHandle(n){return n in activeHandles&&(delete activeHandles[n],!0)}var Immediate={setImmediate:function(n){var e=nextHandle++;return activeHandles[e]=!0,RESOLVED.then(function(){return findAndClearHandle(e)&&n()}),e},clearImmediate:function(n){findAndClearHandle(n)}},AsapAction=function(n){function e(o,d){var I=n.call(this,o,d)||this;return I.scheduler=o,I.work=d,I}return __extends$3(e,n),e.prototype.requestAsyncId=function(o,d,I){return I===void 0&&(I=0),I!==null&&I>0?n.prototype.requestAsyncId.call(this,o,d,I):(o.actions.push(this),o.scheduled||(o.scheduled=Immediate.setImmediate(o.flush.bind(o,null))))},e.prototype.recycleAsyncId=function(o,d,I){if(I===void 0&&(I=0),I!==null&&I>0||I===null&&this.delay>0)return n.prototype.recycleAsyncId.call(this,o,d,I);o.actions.length===0&&(Immediate.clearImmediate(d),o.scheduled=void 0)},e}(AsyncAction$2),AsapScheduler=function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return __extends$3(e,n),e.prototype.flush=function(o){this.active=!0,this.scheduled=void 0;var d,I=this.actions,f=-1,S=I.length;o=o||I.shift();do if(d=o.execute(o.state,o.delay))break;while(++f0?this._next(o.shift()):this.active===0&&this.hasCompleted&&this.destination.complete()},e}(SimpleOuterSubscriber);function mergeAll(n){return n===void 0&&(n=Number.POSITIVE_INFINITY),mergeMap(identity$5,n)}function concatAll(){return mergeAll(1)}function concat(){for(var n=[],e=0;e1?I.next(Array.prototype.slice.call(arguments)):I.next(f)},I,o)})}function setupSubscription(n,e,o,d,I){var f;if(isEventTarget(n)){var S=n;n.addEventListener(e,o,I),f=function(){return S.removeEventListener(e,o,I)}}else if(isJQueryStyleEventEmitter(n)){var v=n;n.on(e,o),f=function(){return v.off(e,o)}}else if(isNodeStyleEventEmitter(n)){var L=n;n.addListener(e,o),f=function(){return L.removeListener(e,o)}}else{if(!n||!n.length)throw new TypeError("Invalid event target");for(var x=0,F=n.length;x=0}function interval(n,e){return n===void 0&&(n=0),e===void 0&&(e=async),(!isNumeric(n)||n<0)&&(n=0),e&&typeof e.schedule=="function"||(e=async),new Observable(function(o){return o.add(e.schedule(dispatch$1,n,{subscriber:o,counter:0,period:n})),o})}function dispatch$1(n){var e=n.subscriber,o=n.counter,d=n.period;e.next(o),this.schedule({subscriber:e,counter:o+1,period:d},d)}function merge(){for(var n=[],e=0;e1&&typeof n[n.length-1]=="number"&&(o=n.pop())):typeof I=="number"&&(o=n.pop()),d===null&&n.length===1&&n[0]instanceof Observable?n[0]:mergeAll(o)(fromArray(n,d))}var NEVER=new Observable(noop$3);function filter(n,e){return function(o){return o.lift(new FilterOperator(n,e))}}var FilterOperator=function(){function n(e,o){this.predicate=e,this.thisArg=o}return n.prototype.call=function(e,o){return o.subscribe(new FilterSubscriber(e,this.predicate,this.thisArg))},n}(),FilterSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.predicate=d,f.thisArg=I,f.count=0,f}return __extends$3(e,n),e.prototype._next=function(o){var d;try{d=this.predicate.call(this.thisArg,o,this.count++)}catch(I){return void this.destination.error(I)}d&&this.destination.next(o)},e}(Subscriber);function race(){for(var n=[],e=0;ethis.index},n.prototype.hasCompleted=function(){return this.array.length===this.index},n}(),ZipBufferIterator=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.parent=d,f.observable=I,f.stillUnsubscribed=!0,f.buffer=[],f.isComplete=!1,f}return __extends$3(e,n),e.prototype[iterator]=function(){return this},e.prototype.next=function(){var o=this.buffer;return o.length===0&&this.isComplete?{value:null,done:!0}:{value:o.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return this.buffer.length===0&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(o){this.buffer.push(o),this.parent.checkIterators()},e.prototype.subscribe=function(){return innerSubscribe(this.observable,new SimpleInnerSubscriber(this))},e}(SimpleOuterSubscriber),umd={exports:{}};(function(n,e){(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;/** + * @license + * Copyright 2009 The Closure Library Authors + * Copyright 2020 Daniel Wirtz / The long.js Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */var d=null;try{d=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function I(ye,lt,Yt){this.low=0|ye,this.high=0|lt,this.unsigned=!!Yt}function f(ye){return(ye&&ye.__isLong__)===!0}function S(ye){var lt=Math.clz32(ye&-ye);return ye?31-lt:lt}I.prototype.__isLong__,Object.defineProperty(I.prototype,"__isLong__",{value:!0}),I.isLong=f;var v={},L={};function x(ye,lt){var Yt,ct,ht;return lt?(ht=0<=(ye>>>=0)&&ye<256)&&(ct=L[ye])?ct:(Yt=Y(ye,0,!0),ht&&(L[ye]=Yt),Yt):(ht=-128<=(ye|=0)&&ye<128)&&(ct=v[ye])?ct:(Yt=Y(ye,ye<0?-1:0,!1),ht&&(v[ye]=Yt),Yt)}function F(ye,lt){if(isNaN(ye))return lt?Fe:De;if(lt){if(ye<0)return Fe;if(ye>=ue)return Bt}else{if(ye<=-Ee)return Tt;if(ye+1>=Ee)return At}return ye<0?F(-ye,lt).neg():Y(ye%he|0,ye/he|0,lt)}function Y(ye,lt,Yt){return new I(ye,lt,Yt)}I.fromInt=x,I.fromNumber=F,I.fromBits=Y;var j=Math.pow;function W(ye,lt,Yt){if(ye.length===0)throw Error("empty string");if(typeof lt=="number"?(Yt=lt,lt=!1):lt=!!lt,ye==="NaN"||ye==="Infinity"||ye==="+Infinity"||ye==="-Infinity")return lt?Fe:De;if((Yt=Yt||10)<2||360)throw Error("interior hyphen");if(ct===0)return W(ye.substring(1),lt,Yt).neg();for(var ht=F(j(Yt,8)),vt=De,ar=0;ar>>0:this.low},rt.toNumber=function(){return this.unsigned?(this.high>>>0)*he+(this.low>>>0):this.high*he+(this.low>>>0)},rt.toString=function(ye){if((ye=ye||10)<2||36>>0).toString(ye);if((vt=jt).isZero())return vr+ar;for(;vr.length<6;)vr="0"+vr;ar=""+vr+ar}},rt.getHighBits=function(){return this.high},rt.getHighBitsUnsigned=function(){return this.high>>>0},rt.getLowBits=function(){return this.low},rt.getLowBitsUnsigned=function(){return this.low>>>0},rt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Tt)?64:this.neg().getNumBitsAbs();for(var ye=this.high!=0?this.high:this.low,lt=31;lt>0&&!(ye&1<>21;return!ye||!this.unsigned&&ye===-1&&!(this.low===0&&this.high===-2097152)},rt.isZero=function(){return this.high===0&&this.low===0},rt.eqz=rt.isZero,rt.isNegative=function(){return!this.unsigned&&this.high<0},rt.isPositive=function(){return this.unsigned||this.high>=0},rt.isOdd=function(){return!(1&~this.low)},rt.isEven=function(){return!(1&this.low)},rt.equals=function(ye){return f(ye)||(ye=re(ye)),(this.unsigned===ye.unsigned||this.high>>>31!=1||ye.high>>>31!=1)&&this.high===ye.high&&this.low===ye.low},rt.eq=rt.equals,rt.notEquals=function(ye){return!this.eq(ye)},rt.neq=rt.notEquals,rt.ne=rt.notEquals,rt.lessThan=function(ye){return this.comp(ye)<0},rt.lt=rt.lessThan,rt.lessThanOrEqual=function(ye){return this.comp(ye)<=0},rt.lte=rt.lessThanOrEqual,rt.le=rt.lessThanOrEqual,rt.greaterThan=function(ye){return this.comp(ye)>0},rt.gt=rt.greaterThan,rt.greaterThanOrEqual=function(ye){return this.comp(ye)>=0},rt.gte=rt.greaterThanOrEqual,rt.ge=rt.greaterThanOrEqual,rt.compare=function(ye){if(f(ye)||(ye=re(ye)),this.eq(ye))return 0;var lt=this.isNegative(),Yt=ye.isNegative();return lt&&!Yt?-1:!lt&&Yt?1:this.unsigned?ye.high>>>0>this.high>>>0||ye.high===this.high&&ye.low>>>0>this.low>>>0?-1:1:this.sub(ye).isNegative()?-1:1},rt.comp=rt.compare,rt.negate=function(){return!this.unsigned&&this.eq(Tt)?Tt:this.not().add(Ve)},rt.neg=rt.negate,rt.add=function(ye){f(ye)||(ye=re(ye));var lt=this.high>>>16,Yt=65535&this.high,ct=this.low>>>16,ht=65535&this.low,vt=ye.high>>>16,ar=65535&ye.high,jt=ye.low>>>16,vr=0,ai=0,pi=0,yi=0;return pi+=(yi+=ht+(65535&ye.low))>>>16,ai+=(pi+=ct+jt)>>>16,vr+=(ai+=Yt+ar)>>>16,vr+=lt+vt,Y((pi&=65535)<<16|(yi&=65535),(vr&=65535)<<16|(ai&=65535),this.unsigned)},rt.subtract=function(ye){return f(ye)||(ye=re(ye)),this.add(ye.neg())},rt.sub=rt.subtract,rt.multiply=function(ye){if(this.isZero())return this;if(f(ye)||(ye=re(ye)),d)return Y(d.mul(this.low,this.high,ye.low,ye.high),d.get_high(),this.unsigned);if(ye.isZero())return this.unsigned?Fe:De;if(this.eq(Tt))return ye.isOdd()?Tt:De;if(ye.eq(Tt))return this.isOdd()?Tt:De;if(this.isNegative())return ye.isNegative()?this.neg().mul(ye.neg()):this.neg().mul(ye).neg();if(ye.isNegative())return this.mul(ye.neg()).neg();if(this.lt(_e)&&ye.lt(_e))return F(this.toNumber()*ye.toNumber(),this.unsigned);var lt=this.high>>>16,Yt=65535&this.high,ct=this.low>>>16,ht=65535&this.low,vt=ye.high>>>16,ar=65535&ye.high,jt=ye.low>>>16,vr=65535&ye.low,ai=0,pi=0,yi=0,fi=0;return yi+=(fi+=ht*vr)>>>16,pi+=(yi+=ct*vr)>>>16,yi&=65535,pi+=(yi+=ht*jt)>>>16,ai+=(pi+=Yt*vr)>>>16,pi&=65535,ai+=(pi+=ct*jt)>>>16,pi&=65535,ai+=(pi+=ht*ar)>>>16,ai+=lt*vr+Yt*jt+ct*ar+ht*vt,Y((yi&=65535)<<16|(fi&=65535),(ai&=65535)<<16|(pi&=65535),this.unsigned)},rt.mul=rt.multiply,rt.divide=function(ye){if(f(ye)||(ye=re(ye)),ye.isZero())throw Error("division by zero");var lt,Yt,ct;if(d)return this.unsigned||this.high!==-2147483648||ye.low!==-1||ye.high!==-1?Y((this.unsigned?d.div_u:d.div_s)(this.low,this.high,ye.low,ye.high),d.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?Fe:De;if(this.unsigned){if(ye.unsigned||(ye=ye.toUnsigned()),ye.gt(this))return Fe;if(ye.gt(this.shru(1)))return Ge;ct=Fe}else{if(this.eq(Tt))return ye.eq(Ve)||ye.eq(He)?Tt:ye.eq(Tt)?Ve:(lt=this.shr(1).div(ye).shl(1)).eq(De)?ye.isNegative()?Ve:He:(Yt=this.sub(ye.mul(lt)),ct=lt.add(Yt.div(ye)));if(ye.eq(Tt))return this.unsigned?Fe:De;if(this.isNegative())return ye.isNegative()?this.neg().div(ye.neg()):this.neg().div(ye).neg();if(ye.isNegative())return this.div(ye.neg()).neg();ct=De}for(Yt=this;Yt.gte(ye);){lt=Math.max(1,Math.floor(Yt.toNumber()/ye.toNumber()));for(var ht=Math.ceil(Math.log(lt)/Math.LN2),vt=ht<=48?1:j(2,ht-48),ar=F(lt),jt=ar.mul(ye);jt.isNegative()||jt.gt(Yt);)jt=(ar=F(lt-=vt,this.unsigned)).mul(ye);ar.isZero()&&(ar=Ve),ct=ct.add(ar),Yt=Yt.sub(jt)}return ct},rt.div=rt.divide,rt.modulo=function(ye){return f(ye)||(ye=re(ye)),d?Y((this.unsigned?d.rem_u:d.rem_s)(this.low,this.high,ye.low,ye.high),d.get_high(),this.unsigned):this.sub(this.div(ye).mul(ye))},rt.mod=rt.modulo,rt.rem=rt.modulo,rt.not=function(){return Y(~this.low,~this.high,this.unsigned)},rt.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},rt.clz=rt.countLeadingZeros,rt.countTrailingZeros=function(){return this.low?S(this.low):S(this.high)+32},rt.ctz=rt.countTrailingZeros,rt.and=function(ye){return f(ye)||(ye=re(ye)),Y(this.low&ye.low,this.high&ye.high,this.unsigned)},rt.or=function(ye){return f(ye)||(ye=re(ye)),Y(this.low|ye.low,this.high|ye.high,this.unsigned)},rt.xor=function(ye){return f(ye)||(ye=re(ye)),Y(this.low^ye.low,this.high^ye.high,this.unsigned)},rt.shiftLeft=function(ye){return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye<32?Y(this.low<>>32-ye,this.unsigned):Y(0,this.low<>>ye|this.high<<32-ye,this.high>>ye,this.unsigned):Y(this.high>>ye-32,this.high>=0?0:-1,this.unsigned)},rt.shr=rt.shiftRight,rt.shiftRightUnsigned=function(ye){return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye<32?Y(this.low>>>ye|this.high<<32-ye,this.high>>>ye,this.unsigned):Y(ye===32?this.high:this.high>>>ye-32,0,this.unsigned)},rt.shru=rt.shiftRightUnsigned,rt.shr_u=rt.shiftRightUnsigned,rt.rotateLeft=function(ye){var lt;return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye===32?Y(this.high,this.low,this.unsigned):ye<32?(lt=32-ye,Y(this.low<>>lt,this.high<>>lt,this.unsigned)):(lt=32-(ye-=32),Y(this.high<>>lt,this.low<>>lt,this.unsigned))},rt.rotl=rt.rotateLeft,rt.rotateRight=function(ye){var lt;return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye===32?Y(this.high,this.low,this.unsigned):ye<32?(lt=32-ye,Y(this.high<>>ye,this.low<>>ye,this.unsigned)):(lt=32-(ye-=32),Y(this.low<>>ye,this.high<>>ye,this.unsigned))},rt.rotr=rt.rotateRight,rt.toSigned=function(){return this.unsigned?Y(this.low,this.high,!1):this},rt.toUnsigned=function(){return this.unsigned?this:Y(this.low,this.high,!0)},rt.toBytes=function(ye){return ye?this.toBytesLE():this.toBytesBE()},rt.toBytesLE=function(){var ye=this.high,lt=this.low;return[255<,lt>>>8&255,lt>>>16&255,lt>>>24,255&ye,ye>>>8&255,ye>>>16&255,ye>>>24]},rt.toBytesBE=function(){var ye=this.high,lt=this.low;return[ye>>>24,ye>>>16&255,ye>>>8&255,255&ye,lt>>>24,lt>>>16&255,lt>>>8&255,255<]},I.fromBytes=function(ye,lt,Yt){return Yt?I.fromBytesLE(ye,lt):I.fromBytesBE(ye,lt)},I.fromBytesLE=function(ye,lt){return new I(ye[0]|ye[1]<<8|ye[2]<<16|ye[3]<<24,ye[4]|ye[5]<<8|ye[6]<<16|ye[7]<<24,lt)},I.fromBytesBE=function(ye,lt){return new I(ye[4]<<24|ye[5]<<16|ye[6]<<8|ye[7],ye[0]<<24|ye[1]<<16|ye[2]<<8|ye[3],lt)},typeof BigInt=="function"&&(I.fromBigInt=function(ye,lt){return Y(Number(BigInt.asIntN(32,ye)),Number(BigInt.asIntN(32,ye>>BigInt(32))),lt)},I.fromValue=function(ye,lt){return typeof ye=="bigint"?I.fromBigInt(ye,lt):re(ye,lt)},rt.toBigInt=function(){var ye=BigInt(this.low>>>0);return BigInt(this.unsigned?this.high>>>0:this.high)<0;)f.push(v%d),v=v/d|0}var L="";for(o=0;n.at(o)===0&&o=0;--o)L+=e[f[o]];return L}api.encode=function(n,e,o){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(o!==void 0&&typeof o!="number")throw new TypeError('"maxline" must be a number.');var d="";if(n instanceof Uint8Array){var I=0,f=e.length,S=e.charAt(0),v=[0];for(I=0;I0;)v.push(x%f),x=x/f|0}for(I=0;n[I]===0&&I=0;--I)d+=e[v[I]]}else d=_encodeWithByteBuffer(n,e);if(o){var F=new RegExp(".{1,"+o+"}","g");d=d.match(F).join(`\r +`)}return d},api.decode=function(n,e){if(typeof n!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var o=_reverseAlphabets[e];if(!o){o=_reverseAlphabets[e]=[];for(var d=0;d>=8;for(;x>0;)S.push(255&x),x>>=8}for(var F=0;n[F]===f&&F15?(o=Date.now(),f(S)):(e.push(S),e.length===1&&I.setAttribute("a",d=!d))}}util$5.nextTick=util$5.setImmediate})(),util$5.isNodejs=typeof process<"u"&&process.versions&&process.versions.node,util$5.globalScope=util$5.isNodejs?commonjsGlobal$1:typeof self>"u"?window:self,util$5.isArray=Array.isArray||function(n){return Object.prototype.toString.call(n)==="[object Array]"},util$5.isArrayBuffer=function(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer},util$5.isArrayBufferView=function(n){return n&&util$5.isArrayBuffer(n.buffer)&&n.byteLength!==void 0},util$5.ByteBuffer=ByteStringBuffer,util$5.ByteStringBuffer=ByteStringBuffer;var _MAX_CONSTRUCTED_STRING_LENGTH=4096;function DataBuffer(n,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var o=util$5.isArrayBuffer(n),d=util$5.isArrayBufferView(n);if(o||d)return this.data=o?new DataView(n):new DataView(n.buffer,n.byteOffset,n.byteLength),void(this.write="writeOffset"in e?e.writeOffset:this.data.byteLength);this.data=new DataView(new ArrayBuffer(0)),this.write=0,n!=null&&this.putBytes(n),"writeOffset"in e&&(this.write=e.writeOffset)}util$5.ByteStringBuffer.prototype._optimizeConstructedString=function(n){this._constructedStringLength+=n,this._constructedStringLength>_MAX_CONSTRUCTED_STRING_LENGTH&&(this.data.substr(0,1),this._constructedStringLength=0)},util$5.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},util$5.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},util$5.ByteStringBuffer.prototype.putByte=function(n){return this.putBytes(String.fromCharCode(n))},util$5.ByteStringBuffer.prototype.fillWithByte=function(n,e){n=String.fromCharCode(n);for(var o=this.data;e>0;)1&e&&(o+=n),(e>>>=1)>0&&(n+=n);return this.data=o,this._optimizeConstructedString(e),this},util$5.ByteStringBuffer.prototype.putBytes=function(n){return this.data+=n,this._optimizeConstructedString(n.length),this},util$5.ByteStringBuffer.prototype.putString=function(n){return this.putBytes(util$5.encodeUtf8(n))},util$5.ByteStringBuffer.prototype.putInt16=function(n){return this.putBytes(String.fromCharCode(n>>8&255)+String.fromCharCode(255&n))},util$5.ByteStringBuffer.prototype.putInt24=function(n){return this.putBytes(String.fromCharCode(n>>16&255)+String.fromCharCode(n>>8&255)+String.fromCharCode(255&n))},util$5.ByteStringBuffer.prototype.putInt32=function(n){return this.putBytes(String.fromCharCode(n>>24&255)+String.fromCharCode(n>>16&255)+String.fromCharCode(n>>8&255)+String.fromCharCode(255&n))},util$5.ByteStringBuffer.prototype.putInt16Le=function(n){return this.putBytes(String.fromCharCode(255&n)+String.fromCharCode(n>>8&255))},util$5.ByteStringBuffer.prototype.putInt24Le=function(n){return this.putBytes(String.fromCharCode(255&n)+String.fromCharCode(n>>8&255)+String.fromCharCode(n>>16&255))},util$5.ByteStringBuffer.prototype.putInt32Le=function(n){return this.putBytes(String.fromCharCode(255&n)+String.fromCharCode(n>>8&255)+String.fromCharCode(n>>16&255)+String.fromCharCode(n>>24&255))},util$5.ByteStringBuffer.prototype.putInt=function(n,e){_checkBitsParam(e);var o="";do e-=8,o+=String.fromCharCode(n>>e&255);while(e>0);return this.putBytes(o)},util$5.ByteStringBuffer.prototype.putSignedInt=function(n,e){return n<0&&(n+=2<0);return e},util$5.ByteStringBuffer.prototype.getSignedInt=function(n){var e=this.getInt(n),o=2<=o&&(e-=o<<1),e},util$5.ByteStringBuffer.prototype.getBytes=function(n){var e;return n?(n=Math.min(this.length(),n),e=this.data.slice(this.read,this.read+n),this.read+=n):n===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e},util$5.ByteStringBuffer.prototype.bytes=function(n){return n===void 0?this.data.slice(this.read):this.data.slice(this.read,this.read+n)},util$5.ByteStringBuffer.prototype.at=function(n){return this.data.charCodeAt(this.read+n)},util$5.ByteStringBuffer.prototype.setAt=function(n,e){return this.data=this.data.substr(0,this.read+n)+String.fromCharCode(e)+this.data.substr(this.read+n+1),this},util$5.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},util$5.ByteStringBuffer.prototype.copy=function(){var n=util$5.createBuffer(this.data);return n.read=this.read,n},util$5.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},util$5.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},util$5.ByteStringBuffer.prototype.truncate=function(n){var e=Math.max(0,this.length()-n);return this.data=this.data.substr(this.read,e),this.read=0,this},util$5.ByteStringBuffer.prototype.toHex=function(){for(var n="",e=this.read;e=n)return this;e=Math.max(e||this.growSize,n);var o=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),d=new Uint8Array(this.length()+e);return d.set(o),this.data=new DataView(d.buffer),this},util$5.DataBuffer.prototype.putByte=function(n){return this.accommodate(1),this.data.setUint8(this.write++,n),this},util$5.DataBuffer.prototype.fillWithByte=function(n,e){this.accommodate(e);for(var o=0;o>8&65535),this.data.setInt8(this.write,n>>16&255),this.write+=3,this},util$5.DataBuffer.prototype.putInt32=function(n){return this.accommodate(4),this.data.setInt32(this.write,n),this.write+=4,this},util$5.DataBuffer.prototype.putInt16Le=function(n){return this.accommodate(2),this.data.setInt16(this.write,n,!0),this.write+=2,this},util$5.DataBuffer.prototype.putInt24Le=function(n){return this.accommodate(3),this.data.setInt8(this.write,n>>16&255),this.data.setInt16(this.write,n>>8&65535,!0),this.write+=3,this},util$5.DataBuffer.prototype.putInt32Le=function(n){return this.accommodate(4),this.data.setInt32(this.write,n,!0),this.write+=4,this},util$5.DataBuffer.prototype.putInt=function(n,e){_checkBitsParam(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,n>>e&255);while(e>0);return this},util$5.DataBuffer.prototype.putSignedInt=function(n,e){return _checkBitsParam(e),this.accommodate(e/8),n<0&&(n+=2<0);return e},util$5.DataBuffer.prototype.getSignedInt=function(n){var e=this.getInt(n),o=2<=o&&(e-=o<<1),e},util$5.DataBuffer.prototype.getBytes=function(n){var e;return n?(n=Math.min(this.length(),n),e=this.data.slice(this.read,this.read+n),this.read+=n):n===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e},util$5.DataBuffer.prototype.bytes=function(n){return n===void 0?this.data.slice(this.read):this.data.slice(this.read,this.read+n)},util$5.DataBuffer.prototype.at=function(n){return this.data.getUint8(this.read+n)},util$5.DataBuffer.prototype.setAt=function(n,e){return this.data.setUint8(n,e),this},util$5.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},util$5.DataBuffer.prototype.copy=function(){return new util$5.DataBuffer(this)},util$5.DataBuffer.prototype.compact=function(){if(this.read>0){var n=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(n.byteLength);e.set(n),this.data=new DataView(e),this.write-=this.read,this.read=0}return this},util$5.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},util$5.DataBuffer.prototype.truncate=function(n){return this.write=Math.max(0,this.length()-n),this.read=Math.min(this.read,this.write),this},util$5.DataBuffer.prototype.toHex=function(){for(var n="",e=this.read;e0;)1&e&&(o+=n),(e>>>=1)>0&&(n+=n);return o},util$5.xorBytes=function(n,e,o){for(var d="",I="",f="",S=0,v=0;o>0;--o,++S)I=n.charCodeAt(S)^e.charCodeAt(S),v>=10&&(d+=f,f="",v=0),f+=String.fromCharCode(I),++v;return d+=f},util$5.hexToBytes=function(n){var e="",o=0;for(!0&n.length&&(o=1,e+=String.fromCharCode(parseInt(n[0],16)));o>24&255)+String.fromCharCode(n>>16&255)+String.fromCharCode(n>>8&255)+String.fromCharCode(255&n)};var _base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_base64Idx=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],_base58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";util$5.encode64=function(n,e){for(var o,d,I,f="",S="",v=0;v>2),f+=_base64.charAt((3&o)<<4|d>>4),isNaN(d)?f+="==":(f+=_base64.charAt((15&d)<<2|I>>6),f+=isNaN(I)?"=":_base64.charAt(63&I)),e&&f.length>e&&(S+=f.substr(0,e)+`\r +`,f=f.substr(e));return S+=f},util$5.decode64=function(n){n=n.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e,o,d,I,f="",S=0;S>4),d!==64&&(f+=String.fromCharCode((15&o)<<4|d>>2),I!==64&&(f+=String.fromCharCode((3&d)<<6|I)));return f},util$5.encodeUtf8=function(n){return unescape(encodeURIComponent(n))},util$5.decodeUtf8=function(n){return decodeURIComponent(escape(n))},util$5.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:baseN.encode,decode:baseN.decode}},util$5.binary.raw.encode=function(n){return String.fromCharCode.apply(null,n)},util$5.binary.raw.decode=function(n,e,o){var d=e;d||(d=new Uint8Array(n.length));for(var I=o=o||0,f=0;f>2),f+=_base64.charAt((3&o)<<4|d>>4),isNaN(d)?f+="==":(f+=_base64.charAt((15&d)<<2|I>>6),f+=isNaN(I)?"=":_base64.charAt(63&I)),e&&f.length>e&&(S+=f.substr(0,e)+`\r +`,f=f.substr(e));return S+=f},util$5.binary.base64.decode=function(n,e,o){var d,I,f,S,v=e;v||(v=new Uint8Array(3*Math.ceil(n.length/4))),n=n.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var L=0,x=o=o||0;L>4,f!==64&&(v[x++]=(15&I)<<4|f>>2,S!==64&&(v[x++]=(3&f)<<6|S));return e?x-o:v.subarray(0,x)},util$5.binary.base58.encode=function(n,e){return util$5.binary.baseN.encode(n,_base58,e)},util$5.binary.base58.decode=function(n,e){return util$5.binary.baseN.decode(n,_base58,e)},util$5.text={utf8:{},utf16:{}},util$5.text.utf8.encode=function(n,e,o){n=util$5.encodeUtf8(n);var d=e;d||(d=new Uint8Array(n.length));for(var I=o=o||0,f=0;f0&&f.push(o),S=d.lastIndex;var v=e[0][1];switch(v){case"s":case"o":I");break;case"%":f.push("%");break;default:f.push("<%"+v+"?>")}}return f.push(n.substring(S)),f.join("")},util$5.formatNumber=function(n,e,o,d){var I=n,f=isNaN(e=Math.abs(e))?2:e,S=o===void 0?",":o,v=d===void 0?".":d,L=I<0?"-":"",x=parseInt(I=Math.abs(+I||0).toFixed(f),10)+"",F=x.length>3?x.length%3:0;return L+(F?x.substr(0,F)+v:"")+x.substr(F).replace(/(\d{3})(?=\d)/g,"$1"+v)+(f?S+Math.abs(I-x).toFixed(f).slice(2):"")},util$5.formatSize=function(n){return n=n>=1073741824?util$5.formatNumber(n/1073741824,2,".","")+" GiB":n>=1048576?util$5.formatNumber(n/1048576,2,".","")+" MiB":n>=1024?util$5.formatNumber(n/1024,0)+" KiB":util$5.formatNumber(n,0)+" bytes"},util$5.bytesFromIP=function(n){return n.indexOf(".")!==-1?util$5.bytesFromIPv4(n):n.indexOf(":")!==-1?util$5.bytesFromIPv6(n):null},util$5.bytesFromIPv4=function(n){if((n=n.split(".")).length!==4)return null;for(var e=util$5.createBuffer(),o=0;oo[d].end-o[d].start&&(d=o.length-1)):o.push({start:v,end:v})}e.push(f)}if(o.length>0){var L=o[d];L.end-L.start>0&&(e.splice(L.start,L.end-L.start+1,""),L.start===0&&e.unshift(""),L.end===7&&e.push(""))}return e.join(":")},util$5.estimateCores=function(n,e){if(typeof n=="function"&&(e=n,n={}),n=n||{},"cores"in util$5&&!n.update)return e(null,util$5.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return util$5.cores=navigator.hardwareConcurrency,e(null,util$5.cores);if(typeof Worker>"u")return util$5.cores=1,e(null,util$5.cores);if(typeof Blob>"u")return util$5.cores=2,e(null,util$5.cores);var o=URL.createObjectURL(new Blob(["(",(function(){self.addEventListener("message",function(d){var I=Date.now(),f=I+4;self.postMessage({st:I,et:f})})}).toString(),")()"],{type:"application/javascript"}));(function d(I,f,S){if(f===0){var v=Math.floor(I.reduce(function(L,x){return L+x},0)/I.length);return util$5.cores=Math.max(1,v),URL.revokeObjectURL(o),e(null,util$5.cores)}(function(L,x){for(var F=[],Y=[],j=0;jue.st&&re.stre.st&&ue.st>>0,S>>>0];for(var v=d.fullMessageLength.length-1;v>=0;--v)d.fullMessageLength[v]+=S[1],S[1]=S[0]+(d.fullMessageLength[v]/4294967296>>>0),d.fullMessageLength[v]=d.fullMessageLength[v]>>>0,S[0]=S[1]/4294967296>>>0;return e.putBytes(I),_update(n,o,e),(e.read>2048||e.length()===0)&&e.compact(),d},d.digest=function(){var I=forge$4.util.createBuffer();I.putBytes(e.bytes());var f,S=d.fullMessageLength[d.fullMessageLength.length-1]+d.messageLengthSize&d.blockLength-1;I.putBytes(_padding.substr(0,d.blockLength-S));for(var v=8*d.fullMessageLength[0],L=0;L>>0,I.putInt32(v>>>0),v=f>>>0;I.putInt32(v);var x={h0:n.h0,h1:n.h1,h2:n.h2,h3:n.h3,h4:n.h4,h5:n.h5,h6:n.h6,h7:n.h7};_update(x,o,I);var F=forge$4.util.createBuffer();return F.putInt32(x.h0),F.putInt32(x.h1),F.putInt32(x.h2),F.putInt32(x.h3),F.putInt32(x.h4),F.putInt32(x.h5),F.putInt32(x.h6),F.putInt32(x.h7),F},d};var _padding=null,_initialized=!1,_k=null;function _init(){_padding="€",_padding+=forge$4.util.fillString("\0",64),_k=[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],_initialized=!0}function _update(n,e,o){for(var d,I,f,S,v,L,x,F,Y,j,W,re,ee,he=o.length();he>=64;){for(v=0;v<16;++v)e[v]=o.getInt32();for(;v<64;++v)d=((d=e[v-2])>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,I=((I=e[v-15])>>>7|I<<25)^(I>>>18|I<<14)^I>>>3,e[v]=d+e[v-7]+I+e[v-16]|0;for(L=n.h0,x=n.h1,F=n.h2,Y=n.h3,j=n.h4,W=n.h5,re=n.h6,ee=n.h7,v=0;v<64;++v)f=(L>>>2|L<<30)^(L>>>13|L<<19)^(L>>>22|L<<10),S=L&x|F&(L^x),d=ee+((j>>>6|j<<26)^(j>>>11|j<<21)^(j>>>25|j<<7))+(re^j&(W^re))+_k[v]+e[v],ee=re,re=W,W=j,j=Y+d>>>0,Y=F,F=x,x=L,L=d+(I=f+S)>>>0;n.h0=n.h0+L|0,n.h1=n.h1+x|0,n.h2=n.h2+F|0,n.h3=n.h3+Y|0,n.h4=n.h4+j|0,n.h5=n.h5+W|0,n.h6=n.h6+re|0,n.h7=n.h7+ee|0,he-=64}}var forge$3=forge$8,hmac=forge$3.hmac=forge$3.hmac||{};hmac.create=function(){var n=null,e=null,o=null,d=null,I={start:function(f,S){if(f!==null)if(typeof f=="string"){if(!((f=f.toLowerCase())in forge$3.md.algorithms))throw new Error('Unknown hash algorithm "'+f+'"');e=forge$3.md.algorithms[f].create()}else e=f;if(S===null)S=n;else{if(typeof S=="string")S=forge$3.util.createBuffer(S);else if(forge$3.util.isArray(S)){var v=S;S=forge$3.util.createBuffer();for(var L=0;Le.blockLength&&(e.start(),e.update(S.bytes()),S=e.digest()),o=forge$3.util.createBuffer(),d=forge$3.util.createBuffer(),x=S.length(),L=0;L4||!I||I==="sha1"))return typeof I!="string"&&(I="sha1"),n=Buffer.from(n,"binary"),e=Buffer.from(e,"binary"),f?crypto$1.pbkdf2Sync.length===4?crypto$1.pbkdf2(n,e,o,d,function(_e,De){if(_e)return f(_e);f(null,De.toString("binary"))}):crypto$1.pbkdf2(n,e,o,d,I,function(_e,De){if(_e)return f(_e);f(null,De.toString("binary"))}):crypto$1.pbkdf2Sync.length===4?crypto$1.pbkdf2Sync(n,e,o,d).toString("binary"):crypto$1.pbkdf2Sync(n,e,o,d,I).toString("binary");if(I==null&&(I="sha1"),typeof I=="string"){if(!(I in forge$2.md.algorithms))throw new Error("Unknown hash algorithm: "+I);I=forge$2.md[I].create()}var S=I.digestLength;if(d>4294967295*S){var v=new Error("Derived key is too long.");if(f)return f(v);throw v}var L=Math.ceil(d/S),x=d-(L-1)*S,F=forge$2.hmac.create();F.start(I,n);var Y,j,W,re="";if(!f){for(var ee=1;ee<=L;++ee){F.start(null,null),F.update(e),F.update(forge$2.util.int32ToBytes(ee)),Y=W=F.digest().getBytes();for(var he=2;he<=o;++he)F.start(null,null),F.update(W),j=F.digest().getBytes(),Y=forge$2.util.xorBytes(Y,j,S),W=j;re+=eeL)return f(null,re);F.start(null,null),F.update(e),F.update(forge$2.util.int32ToBytes(ee)),Y=W=F.digest().getBytes(),he=2,Ee()}function Ee(){if(he<=o)return F.start(null,null),F.update(W),j=F.digest().getBytes(),Y=forge$2.util.xorBytes(Y,j,S),W=j,++he,forge$2.util.setImmediate(Ee);re+=ee4){var o=n;n=forge$1.util.createBuffer();for(var d=0;d0))return!0;for(var d=0;d0))return!0;for(var d=0;d0)return!1;var o=n.length(),d=n.at(o-1);return!(d>this.blockSize<<2)&&(n.truncate(d),!0)},modes.cbc=function(n){n=n||{},this.name="CBC",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},modes.cbc.prototype.start=function(n){if(n.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else{if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._prev=this._iv.slice(0)}},modes.cbc.prototype.encrypt=function(n,e,o){if(n.length()0))return!0;for(var d=0;d0))return!0;for(var d=0;d0)return!1;var o=n.length(),d=n.at(o-1);return!(d>this.blockSize<<2)&&(n.truncate(d),!0)},modes.cfb=function(n){n=n||{},this.name="CFB",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0},modes.cfb.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.cfb.prototype.encrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0)n.read-=this.blockSize;else for(I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}},modes.cfb.prototype.decrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0)n.read-=this.blockSize;else for(I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}},modes.ofb=function(n){n=n||{},this.name="OFB",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0},modes.ofb.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.ofb.prototype.encrypt=function(n,e,o){var d=n.length();if(n.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0)n.read-=this.blockSize;else for(I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}},modes.ofb.prototype.decrypt=modes.ofb.prototype.encrypt,modes.ctr=function(n){n=n||{},this.name="CTR",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0},modes.ctr.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.ctr.prototype.encrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0&&(n.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}inc32(this._inBlock)},modes.ctr.prototype.decrypt=modes.ctr.prototype.encrypt,modes.gcm=function(n){n=n||{},this.name="GCM",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0,this._R=3774873600},modes.gcm.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");var e,o=forge$1.util.createBuffer(n.iv);if(this._cipherLength=0,e="additionalData"in n?forge$1.util.createBuffer(n.additionalData):forge$1.util.createBuffer(),this._tagLength="tagLength"in n?n.tagLength:128,this._tag=null,n.decrypt&&(this._tag=forge$1.util.createBuffer(n.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var d=o.length();if(d===12)this._j0=[o.getInt32(),o.getInt32(),o.getInt32(),1];else{for(this._j0=[0,0,0,0];o.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[o.getInt32(),o.getInt32(),o.getInt32(),o.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(from64To32(8*d)))}this._inBlock=this._j0.slice(0),inc32(this._inBlock),this._partialBytes=0,e=forge$1.util.createBuffer(e),this._aDataLength=from64To32(8*e.length());var I=e.length()%this.blockSize;for(I&&e.fillWithByte(0,this.blockSize-I),this._s=[0,0,0,0];e.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()])},modes.gcm.prototype.encrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize){for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return n.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),inc32(this._inBlock)},modes.gcm.prototype.decrypt=function(n,e,o){var d=n.length();if(d0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),inc32(this._inBlock),this._hashBlock[0]=n.getInt32(),this._hashBlock[1]=n.getInt32(),this._hashBlock[2]=n.getInt32(),this._hashBlock[3]=n.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var I=0;I0;--d)e[d]=n[d]>>>1|(1&n[d-1])<<31;e[0]=n[0]>>>1,o&&(e[0]^=this._R)},modes.gcm.prototype.tableMultiply=function(n){for(var e=[0,0,0,0],o=0;o<32;++o){var d=n[o/8|0]>>>4*(7-o%8)&15,I=this._m[o][d];e[0]^=I[0],e[1]^=I[1],e[2]^=I[2],e[3]^=I[3]}return e},modes.gcm.prototype.ghash=function(n,e,o){return e[0]^=o[0],e[1]^=o[1],e[2]^=o[2],e[3]^=o[3],this.tableMultiply(e)},modes.gcm.prototype.generateHashTable=function(n,e){for(var o=8/e,d=4*o,I=16*o,f=new Array(I),S=0;S>>1,I=new Array(o);I[d]=n.slice(0);for(var f=d>>>1;f>0;)this.pow(I[2*f],I[f]=[]),f>>=1;for(f=2;f>>=2,d=0;d>8^255&f^99,sbox[x]=f,isbox[f]=x,v=(S=n[f])<<24^f<<16^f<<8^f^S,L=((o=n[x])^(d=n[o])^(I=n[d]))<<24^(x^I)<<16^(x^d^I)<<8^x^o^I;for(var Y=0;Y<4;++Y)mix[Y][x]=v,imix[Y][f]=L,v=v<<24|v>>>8,L=L<<24|L>>>8;x===0?x=F=1:(x=o^n[n[n[o^I]]],F^=n[n[F]])}}function _expandKey(n,e){for(var o,d=n.slice(0),I=1,f=d.length,S=Nb*(f+6+1),v=f;v>>16&255]<<24^sbox[o>>>8&255]<<16^sbox[255&o]<<8^sbox[o>>>24]^rcon[I]<<24,I++):f>6&&v%f===4&&(o=sbox[o>>>24]<<24^sbox[o>>>16&255]<<16^sbox[o>>>8&255]<<8^sbox[255&o]),d[v]=d[v-f]^o;if(e){for(var L,x=imix[0],F=imix[1],Y=imix[2],j=imix[3],W=d.slice(0),re=(v=0,(S=d.length)-Nb);v>>24]]^F[sbox[L>>>16&255]]^Y[sbox[L>>>8&255]]^j[sbox[255&L]];d=W}return d}function _updateBlock(n,e,o,d){var I,f,S,v,L,x,F,Y,j,W,re,ee,he=n.length/4-1;d?(I=imix[0],f=imix[1],S=imix[2],v=imix[3],L=isbox):(I=mix[0],f=mix[1],S=mix[2],v=mix[3],L=sbox),x=e[0]^n[0],F=e[d?3:1]^n[1],Y=e[2]^n[2],j=e[d?1:3]^n[3];for(var ue=3,Ee=1;Ee>>24]^f[F>>>16&255]^S[Y>>>8&255]^v[255&j]^n[++ue],re=I[F>>>24]^f[Y>>>16&255]^S[j>>>8&255]^v[255&x]^n[++ue],ee=I[Y>>>24]^f[j>>>16&255]^S[x>>>8&255]^v[255&F]^n[++ue],j=I[j>>>24]^f[x>>>16&255]^S[F>>>8&255]^v[255&Y]^n[++ue],x=W,F=re,Y=ee;o[0]=L[x>>>24]<<24^L[F>>>16&255]<<16^L[Y>>>8&255]<<8^L[255&j]^n[++ue],o[d?3:1]=L[F>>>24]<<24^L[Y>>>16&255]<<16^L[j>>>8&255]<<8^L[255&x]^n[++ue],o[2]=L[Y>>>24]<<24^L[j>>>16&255]<<16^L[x>>>8&255]<<8^L[255&F]^n[++ue],o[d?1:3]=L[j>>>24]<<24^L[x>>>16&255]<<16^L[F>>>8&255]<<8^L[255&Y]^n[++ue]}function _createCipher(n){var e,o="AES-"+((n=n||{}).mode||"CBC").toUpperCase(),d=(e=n.decrypt?forge.cipher.createDecipher(o,n.key):forge.cipher.createCipher(o,n.key)).start;return e.start=function(I,f){var S=null;f instanceof forge.util.ByteBuffer&&(S=f,f={}),(f=f||{}).output=S,f.iv=I,d.call(e,f)},e}function isNil(n){return n==null}var isNil_1=isNil,isNil$1=getDefaultExportFromCjs(isNil_1);function copyArray$3(n,e){var o=-1,d=n.length;for(e||(e=Array(d));++o-1&&n%1==0&&n-1&&n%1==0&&n<=MAX_SAFE_INTEGER}var isLength_1=isLength$3,baseGetTag$4=_baseGetTag,isLength$2=isLength_1,isObjectLike$6=isObjectLike_1,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$3="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$2="[object Function]",mapTag$5="[object Map]",numberTag$3="[object Number]",objectTag$4="[object Object]",regexpTag$3="[object RegExp]",setTag$5="[object Set]",stringTag$3="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};function baseIsTypedArray$1(n){return isObjectLike$6(n)&&isLength$2(n.length)&&!!typedArrayTags[baseGetTag$4(n)]}typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0,typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$3]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$2]=typedArrayTags[mapTag$5]=typedArrayTags[numberTag$3]=typedArrayTags[objectTag$4]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$5]=typedArrayTags[stringTag$3]=typedArrayTags[weakMapTag$2]=!1;var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$4(n){return function(e){return n(e)}}var _baseUnary=baseUnary$4,_nodeUtil={exports:{}};_nodeUtil.exports,function(n,e){var o=_freeGlobal,d=e&&!e.nodeType&&e,I=d&&n&&!n.nodeType&&n,f=I&&I.exports===d&&o.process,S=function(){try{var v=I&&I.require&&I.require("util").types;return v||f&&f.binding&&f.binding("util")}catch{}}();n.exports=S}(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$2=_nodeUtilExports,nodeIsTypedArray=nodeUtil$2&&nodeUtil$2.isTypedArray,isTypedArray$3=nodeIsTypedArray?baseUnary$3(nodeIsTypedArray):baseIsTypedArray,isTypedArray_1=isTypedArray$3,baseTimes=_baseTimes,isArguments$3=isArguments_1,isArray$e=isArray_1$1,isBuffer$3=isBufferExports,isIndex$3=_isIndex,isTypedArray$2=isTypedArray_1,objectProto$c=Object.prototype,hasOwnProperty$a=objectProto$c.hasOwnProperty;function arrayLikeKeys$2(n,e){var o=isArray$e(n),d=!o&&isArguments$3(n),I=!o&&!d&&isBuffer$3(n),f=!o&&!d&&!I&&isTypedArray$2(n),S=o||d||I||f,v=S?baseTimes(n.length,String):[],L=v.length;for(var x in n)!e&&!hasOwnProperty$a.call(n,x)||S&&(x=="length"||I&&(x=="offset"||x=="parent")||f&&(x=="buffer"||x=="byteLength"||x=="byteOffset")||isIndex$3(x,L))||v.push(x);return v}var _arrayLikeKeys=arrayLikeKeys$2,objectProto$b=Object.prototype;function isPrototype$3(n){var e=n&&n.constructor;return n===(typeof e=="function"&&e.prototype||objectProto$b)}var _isPrototype=isPrototype$3;function overArg$2(n,e){return function(o){return n(e(o))}}var _overArg=overArg$2,overArg$1=_overArg,nativeKeys$1=overArg$1(Object.keys,Object),_nativeKeys=nativeKeys$1,isPrototype$2=_isPrototype,nativeKeys=_nativeKeys,objectProto$a=Object.prototype,hasOwnProperty$9=objectProto$a.hasOwnProperty;function baseKeys$1(n){if(!isPrototype$2(n))return nativeKeys(n);var e=[];for(var o in Object(n))hasOwnProperty$9.call(n,o)&&o!="constructor"&&e.push(o);return e}var _baseKeys=baseKeys$1;function isObject$d(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}var isObject_1$1=isObject$d,baseGetTag$3=_baseGetTag,isObject$c=isObject_1$1,asyncTag="[object AsyncFunction]",funcTag$1="[object Function]",genTag$1="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction$6(n){if(!isObject$c(n))return!1;var e=baseGetTag$3(n);return e==funcTag$1||e==genTag$1||e==asyncTag||e==proxyTag}var isFunction_1$1=isFunction$6,isFunction$5=isFunction_1$1,isLength$1=isLength_1;function isArrayLike$8(n){return n!=null&&isLength$1(n.length)&&!isFunction$5(n)}var isArrayLike_1=isArrayLike$8,arrayLikeKeys$1=_arrayLikeKeys,baseKeys=_baseKeys,isArrayLike$7=isArrayLike_1;function keys$7(n){return isArrayLike$7(n)?arrayLikeKeys$1(n):baseKeys(n)}var keys_1=keys$7,baseValues=_baseValues,keys$6=keys_1;function values$2(n){return n==null?[]:baseValues(n,keys$6(n))}var values_1=values$2,values$3=getDefaultExportFromCjs(values_1),shuffleSelf=_shuffleSelf,values$1=values_1;function baseShuffle$1(n){return shuffleSelf(values$1(n))}var _baseShuffle=baseShuffle$1,arrayShuffle=_arrayShuffle,baseShuffle=_baseShuffle,isArray$d=isArray_1$1;function shuffle(n){return(isArray$d(n)?arrayShuffle:baseShuffle)(n)}var shuffle_1=shuffle,shuffle$1=getDefaultExportFromCjs(shuffle_1);function arraySome$1(n,e){for(var o=-1,d=n==null?0:n.length;++o-1}var _listCacheHas=listCacheHas$1,assocIndexOf=_assocIndexOf;function listCacheSet$1(n,e){var o=this.__data__,d=assocIndexOf(o,n);return d<0?(++this.size,o.push([n,e])):o[d][1]=e,this}var _listCacheSet=listCacheSet$1,listCacheClear=_listCacheClear,listCacheDelete=_listCacheDelete,listCacheGet=_listCacheGet,listCacheHas=_listCacheHas,listCacheSet=_listCacheSet;function ListCache$4(n){var e=-1,o=n==null?0:n.length;for(this.clear();++ev))return!1;var x=f.get(n),F=f.get(e);if(x&&F)return x==e&&F==n;var Y=-1,j=!0,W=o&COMPARE_UNORDERED_FLAG$3?new SetCache$1:void 0;for(f.set(n,e),f.set(e,n);++Y0&&o(v)?e>1?baseFlatten$2(v,e-1,o,d,I):arrayPush$1(I,v):d||(I[I.length]=v)}return I}var _baseFlatten=baseFlatten$2,baseEach=_baseEach,isArrayLike$4=isArrayLike_1;function baseMap$1(n,e){var o=-1,d=isArrayLike$4(n)?Array(n.length):[];return baseEach(n,function(I,f,S){d[++o]=e(I,f,S)}),d}var _baseMap=baseMap$1;function baseSortBy$1(n,e){var o=n.length;for(n.sort(e);o--;)n[o]=n[o].value;return n}var _baseSortBy=baseSortBy$1,isSymbol$2=isSymbol_1;function compareAscending$1(n,e){if(n!==e){var o=n!==void 0,d=n===null,I=n==n,f=isSymbol$2(n),S=e!==void 0,v=e===null,L=e==e,x=isSymbol$2(e);if(!v&&!x&&!f&&n>e||f&&S&&L&&!v&&!x||d&&S&&L||!o&&L||!I)return 1;if(!d&&!f&&!x&&n=v?L:L*(o[d]=="desc"?-1:1)}return n.index-e.index}var _compareMultiple=compareMultiple$1,arrayMap$2=_arrayMap,baseGet$2=_baseGet,baseIteratee$6=_baseIteratee,baseMap=_baseMap,baseSortBy=_baseSortBy,baseUnary$2=_baseUnary,compareMultiple=_compareMultiple,identity$2=identity_1,isArray$4=isArray_1$1;function baseOrderBy$1(n,e,o){e=e.length?arrayMap$2(e,function(f){return isArray$4(f)?function(S){return baseGet$2(S,f.length===1?f[0]:f)}:f}):[identity$2];var d=-1;e=arrayMap$2(e,baseUnary$2(baseIteratee$6));var I=baseMap(n,function(f,S,v){return{criteria:arrayMap$2(e,function(L){return L(f)}),index:++d,value:f}});return baseSortBy(I,function(f,S){return compareMultiple(f,S,o)})}var _baseOrderBy=baseOrderBy$1;function apply$1(n,e,o){switch(o.length){case 0:return n.call(e);case 1:return n.call(e,o[0]);case 2:return n.call(e,o[0],o[1]);case 3:return n.call(e,o[0],o[1],o[2])}return n.apply(e,o)}var _apply=apply$1,apply=_apply,nativeMax$2=Math.max;function overRest$2(n,e,o){return e=nativeMax$2(e===void 0?n.length-1:e,0),function(){for(var d=arguments,I=-1,f=nativeMax$2(d.length-e,0),S=Array(f);++I0){if(++e>=HOT_COUNT)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}var _shortOut=shortOut$1,baseSetToString=_baseSetToString,shortOut=_shortOut,setToString$2=shortOut(baseSetToString),_setToString=setToString$2,identity=identity_1,overRest$1=_overRest,setToString$1=_setToString;function baseRest$2(n,e){return setToString$1(overRest$1(n,e,identity),n+"")}var _baseRest=baseRest$2,baseFlatten$1=_baseFlatten,baseOrderBy=_baseOrderBy,baseRest$1=_baseRest,isIterateeCall$1=_isIterateeCall,sortBy=baseRest$1(function(n,e){if(n==null)return[];var o=e.length;return o>1&&isIterateeCall$1(n,e[0],e[1])?e=[]:o>2&&isIterateeCall$1(e[0],e[1],e[2])&&(e=[e[0]]),baseOrderBy(n,baseFlatten$1(e,1),[])}),sortBy_1=sortBy,sortBy$1=getDefaultExportFromCjs(sortBy_1),baseRandom=_baseRandom;function arraySample$2(n){var e=n.length;return e?n[baseRandom(0,e-1)]:void 0}var _arraySample=arraySample$2,arraySample$1=_arraySample,values=values_1;function baseSample$1(n){return arraySample$1(values(n))}var _baseSample=baseSample$1,arraySample=_arraySample,baseSample=_baseSample,isArray$3=isArray_1$1;function sample(n){return(isArray$3(n)?arraySample:baseSample)(n)}var sample_1=sample,sample$1=getDefaultExportFromCjs(sample_1),reWhitespace=/\s/;function trimmedEndIndex$1(n){for(var e=n.length;e--&&reWhitespace.test(n.charAt(e)););return e}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart$1=/^\s+/;function baseTrim$1(n){return n&&n.slice(0,trimmedEndIndex(n)+1).replace(reTrimStart$1,"")}var _baseTrim=baseTrim$1,baseTrim=_baseTrim,isObject$8=isObject_1$1,isSymbol$1=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$1(n){if(typeof n=="number")return n;if(isSymbol$1(n))return NAN;if(isObject$8(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=isObject$8(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=baseTrim(n);var o=reIsBinary.test(n);return o||reIsOctal.test(n)?freeParseInt(n.slice(2),o?2:8):reIsBadHex.test(n)?NAN:+n}var toNumber_1=toNumber$1,toNumber=toNumber_1,INFINITY$1=1/0,MAX_INTEGER=17976931348623157e292;function toFinite$1(n){return n?(n=toNumber(n))===INFINITY$1||n===-INFINITY$1?(n<0?-1:1)*MAX_INTEGER:n==n?n:0:n===0?n:0}var toFinite_1=toFinite$1;function compact(n){for(var e=-1,o=n==null?0:n.length,d=0,I=[];++e1?o[I-1]:void 0,S=I>2?o[2]:void 0;for(f=n.length>3&&typeof f=="function"?(I--,f):void 0,S&&isIterateeCall(o[0],o[1],S)&&(f=I<3?void 0:f,I=1),e=Object(e);++dI?0:I+e),(o=o>I?I:o)<0&&(o+=I),I=e>o?0:o-e>>>0,e>>>=0;for(var f=Array(I);++d1),f}),copyObject(n,getAllKeysIn$1(n),o),d&&(o=baseClone(o,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone));for(var I=e.length;I--;)baseUnset(o,e[I]);return o}),omit_1=omit,omit$1=getDefaultExportFromCjs(omit_1),root=_root,toString=toString_1,reTrimStart=/^\s+/,nativeParseInt=root.parseInt;function parseInt$1(n,e,o){return o||e==null?e=0:e&&(e=+e),nativeParseInt(toString(n).replace(reTrimStart,""),e||0)}var _parseInt=parseInt$1,parseInt$2=getDefaultExportFromCjs(_parseInt);function isUndefined$1(n){return n===void 0}var isUndefined_1=isUndefined$1,isUndefined$2=getDefaultExportFromCjs(isUndefined_1),FUNC_ERROR_TEXT="Expected a function";function negate$1(n){if(typeof n!="function")throw new TypeError(FUNC_ERROR_TEXT);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}var negate_1=negate$1,assignValue=_assignValue,castPath$1=_castPath,isIndex=_isIndex,isObject$2=isObject_1$1,toKey=_toKey;function baseSet$1(n,e,o,d){if(!isObject$2(n))return n;for(var I=-1,f=(e=castPath$1(e,n)).length,S=f-1,v=n;v!=null&&++I-1?I[f?e[S]:S]:void 0}}var _createFind=createFind$1;function baseFindIndex$3(n,e,o,d){for(var I=n.length,f=o+(d?1:-1);d?f--:++f-1}var _arrayIncludes=arrayIncludes$1;function arrayIncludesWith$1(n,e,o){for(var d=-1,I=n==null?0:n.length;++d=LARGE_ARRAY_SIZE){var x=e?null:createSet(n);if(x)return setToArray(x);S=!1,I=cacheHas,L=new SetCache}else L=e?[]:v;e:for(;++d100?100:typeof o=="number"?o:SUB_STREAM_CHANNEL_LIMITATION;MUTABLE_PARAMS.STREAM_CHANNEL_COUNT=d;break;case"MESSAGE_CHANNEL_COUNT":MUTABLE_PARAMS.MESSAGE_CHANNEL_COUNT=typeof o=="number"?o:MAX_JOINED_CHANNELS;case"HISTORY_MSG_COUNT_LIMIT":MUTABLE_PARAMS.HISTORY_MSG_COUNT_LIMIT=typeof o=="number"?o:GET_MESSAGE_MAX_COUNT;break;case"API_RATE_LIMIT":if(isNil$1(o))MUTABLE_PARAMS.API_RATE_LIMIT=DEFAULT_API_RATE_LIMIT;else{if(!(o instanceof Map)){console.warn("setParameter: API_RATE_LIMIT value is not a Map");const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_PARAMETER);throw new RtmInvalidArgumentError("set parameter",[f],I)}{const I=o.entries();Array.from(I).forEach(f=>{let[S,v]=f;typeof v=="number"&&MUTABLE_PARAMS.API_RATE_LIMIT.set(S,v)})}}break;default:MUTABLE_PARAMS[e]=o}}_getParameter(e){return MUTABLE_PARAMS[e]}setParameter(e,o){return this._setParameter(e,o)}getParameter(e){return this._getParameter(e)}}const p=new Parameter,setParameter=p.setParameter.bind(p),getParameter=p.getParameter.bind(p);function setVidParameter(n,e){const o=getParameter("VID");o.set(n,e),setParameter("VID",o)}function catchError(n){return function(e){var o=new CatchOperator(n),d=e.lift(o);return o.caught=d}}var CatchOperator=function(){function n(e){this.selector=e}return n.prototype.call=function(e,o){return o.subscribe(new CatchSubscriber(e,this.selector,this.caught))},n}(),CatchSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.selector=d,f.caught=I,f}return __extends$3(e,n),e.prototype.error=function(o){if(!this.isStopped){var d=void 0;try{d=this.selector(o,this.caught)}catch(S){return void n.prototype.error.call(this,S)}this._unsubscribeAndRecycle();var I=new SimpleInnerSubscriber(this);this.add(I);var f=innerSubscribe(d,I);f!==I&&this.add(f)}},e}(SimpleOuterSubscriber);function concatMap(n,e){return mergeMap(n,e,1)}function defaultIfEmpty(n){return n===void 0&&(n=null),function(e){return e.lift(new DefaultIfEmptyOperator(n))}}var DefaultIfEmptyOperator=function(){function n(e){this.defaultValue=e}return n.prototype.call=function(e,o){return o.subscribe(new DefaultIfEmptySubscriber(e,this.defaultValue))},n}(),DefaultIfEmptySubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.defaultValue=d,I.isEmpty=!0,I}return __extends$3(e,n),e.prototype._next=function(o){this.isEmpty=!1,this.destination.next(o)},e.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},e}(Subscriber);function isDate(n){return n instanceof Date&&!isNaN(+n)}function delay(n,e){e===void 0&&(e=async);var o=isDate(n)?+n-e.now():Math.abs(n);return function(d){return d.lift(new DelayOperator(o,e))}}var DelayOperator=function(){function n(e,o){this.delay=e,this.scheduler=o}return n.prototype.call=function(e,o){return o.subscribe(new DelaySubscriber(e,this.delay,this.scheduler))},n}(),DelaySubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.delay=d,f.scheduler=I,f.queue=[],f.active=!1,f.errored=!1,f}return __extends$3(e,n),e.dispatch=function(o){for(var d=o.source,I=d.queue,f=o.scheduler,S=o.destination;I.length>0&&I[0].time-f.now()<=0;)I.shift().notification.observe(S);if(I.length>0){var v=Math.max(0,I[0].time-f.now());this.schedule(o,v)}else this.unsubscribe(),d.active=!1},e.prototype._schedule=function(o){this.active=!0,this.destination.add(o.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:o}))},e.prototype.scheduleNotification=function(o){if(this.errored!==!0){var d=this.scheduler,I=new DelayMessage(d.now()+this.delay,o);this.queue.push(I),this.active===!1&&this._schedule(d)}},e.prototype._next=function(o){this.scheduleNotification(Notification.createNext(o))},e.prototype._error=function(o){this.errored=!0,this.queue=[],this.destination.error(o),this.unsubscribe()},e.prototype._complete=function(){this.scheduleNotification(Notification.createComplete()),this.unsubscribe()},e}(Subscriber),DelayMessage=function(){return function(n,e){this.time=n,this.notification=e}}();function distinct(n,e){return function(o){return o.lift(new DistinctOperator(n,e))}}var DistinctOperator=function(){function n(e,o){this.keySelector=e,this.flushes=o}return n.prototype.call=function(e,o){return o.subscribe(new DistinctSubscriber(e,this.keySelector,this.flushes))},n}(),DistinctSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.keySelector=d,f.values=new Set,I&&f.add(innerSubscribe(I,new SimpleInnerSubscriber(f))),f}return __extends$3(e,n),e.prototype.notifyNext=function(){this.values.clear()},e.prototype.notifyError=function(o){this._error(o)},e.prototype._next=function(o){this.keySelector?this._useKeySelector(o):this._finalizeNext(o,o)},e.prototype._useKeySelector=function(o){var d,I=this.destination;try{d=this.keySelector(o)}catch(f){return void I.error(f)}this._finalizeNext(d,o)},e.prototype._finalizeNext=function(o,d){var I=this.values;I.has(o)||(I.add(o),this.destination.next(d))},e}(SimpleOuterSubscriber);function throwIfEmpty(n){return n===void 0&&(n=defaultErrorFactory),function(e){return e.lift(new ThrowIfEmptyOperator(n))}}var ThrowIfEmptyOperator=function(){function n(e){this.errorFactory=e}return n.prototype.call=function(e,o){return o.subscribe(new ThrowIfEmptySubscriber(e,this.errorFactory))},n}(),ThrowIfEmptySubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.errorFactory=d,I.hasValue=!1,I}return __extends$3(e,n),e.prototype._next=function(o){this.hasValue=!0,this.destination.next(o)},e.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var o=void 0;try{o=this.errorFactory()}catch(d){o=d}this.destination.error(o)},e}(Subscriber);function defaultErrorFactory(){return new EmptyError}function take(n){return function(e){return n===0?empty():e.lift(new TakeOperator(n))}}var TakeOperator=function(){function n(e){if(this.total=e,this.total<0)throw new ArgumentOutOfRangeError}return n.prototype.call=function(e,o){return o.subscribe(new TakeSubscriber(e,this.total))},n}(),TakeSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.total=d,I.count=0,I}return __extends$3(e,n),e.prototype._next=function(o){var d=this.total,I=++this.count;I<=d&&(this.destination.next(o),I===d&&(this.destination.complete(),this.unsubscribe()))},e}(Subscriber);function finalize(n){return function(e){return e.lift(new FinallyOperator(n))}}var FinallyOperator=function(){function n(e){this.callback=e}return n.prototype.call=function(e,o){return o.subscribe(new FinallySubscriber(e,this.callback))},n}(),FinallySubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.add(new Subscription$2(d)),I}return __extends$3(e,n),e}(Subscriber);function first(n,e){var o=arguments.length>=2;return function(d){return d.pipe(n?filter(function(I,f){return n(I,f,d)}):identity$5,take(1),o?defaultIfEmpty(e):throwIfEmpty(function(){return new EmptyError}))}}function ignoreElements(){return function(n){return n.lift(new IgnoreElementsOperator)}}var IgnoreElementsOperator=function(){function n(){}return n.prototype.call=function(e,o){return o.subscribe(new IgnoreElementsSubscriber(e))},n}(),IgnoreElementsSubscriber=function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return __extends$3(e,n),e.prototype._next=function(o){},e}(Subscriber);function takeLast(n){return function(e){return e.lift(new TakeLastOperator(n))}}var TakeLastOperator=function(){function n(e){if(this.total=e,this.total<0)throw new ArgumentOutOfRangeError}return n.prototype.call=function(e,o){return o.subscribe(new TakeLastSubscriber(e,this.total))},n}(),TakeLastSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.total=d,I.ring=new Array,I.count=0,I}return __extends$3(e,n),e.prototype._next=function(o){var d=this.ring,I=this.total,f=this.count++;d.length0)for(var I=this.count>=this.total?this.total:this.count,f=this.ring,S=0;S=2&&(o=!0),function(d){return d.lift(new ScanOperator(n,e,o))}}var ScanOperator=function(){function n(e,o,d){d===void 0&&(d=!1),this.accumulator=e,this.seed=o,this.hasSeed=d}return n.prototype.call=function(e,o){return o.subscribe(new ScanSubscriber(e,this.accumulator,this.seed,this.hasSeed))},n}(),ScanSubscriber=function(n){function e(o,d,I,f){var S=n.call(this,o)||this;return S.accumulator=d,S._seed=I,S.hasSeed=f,S.index=0,S}return __extends$3(e,n),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(o){this.hasSeed=!0,this._seed=o},enumerable:!0,configurable:!0}),e.prototype._next=function(o){if(this.hasSeed)return this._tryNext(o);this.seed=o,this.destination.next(o)},e.prototype._tryNext=function(o){var d,I=this.index++;try{d=this.accumulator(this.seed,o,I)}catch(f){this.destination.error(f)}this.seed=d,this.destination.next(d)},e}(Subscriber);function reduce(n,e){return arguments.length>=2?function(o){return pipe(scan(n,e),takeLast(1),defaultIfEmpty(e))(o)}:function(o){return pipe(scan(function(d,I,f){return n(d,I,f+1)}),takeLast(1))(o)}}function multicast(n,e){return function(o){var d;d=typeof n=="function"?n:function(){return n};var I=Object.create(o,connectableObservableDescriptor);return I.source=o,I.subjectFactory=d,I}}function retryWhen(n){return function(e){return e.lift(new RetryWhenOperator(n,e))}}var RetryWhenOperator=function(){function n(e,o){this.notifier=e,this.source=o}return n.prototype.call=function(e,o){return o.subscribe(new RetryWhenSubscriber(e,this.notifier,this.source))},n}(),RetryWhenSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.notifier=d,f.source=I,f}return __extends$3(e,n),e.prototype.error=function(o){if(!this.isStopped){var d=this.errors,I=this.retries,f=this.retriesSubscription;if(I)this.errors=void 0,this.retriesSubscription=void 0;else{d=new Subject;try{I=(0,this.notifier)(d)}catch(S){return n.prototype.error.call(this,S)}f=innerSubscribe(I,new SimpleInnerSubscriber(this))}this._unsubscribeAndRecycle(),this.errors=d,this.retries=I,this.retriesSubscription=f,d.next(o)}},e.prototype._unsubscribe=function(){var o=this.errors,d=this.retriesSubscription;o&&(o.unsubscribe(),this.errors=void 0),d&&(d.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0},e.prototype.notifyNext=function(){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},e}(SimpleOuterSubscriber);function shareSubjectFactory(){return new Subject}function share(){return function(n){return refCount()(multicast(shareSubjectFactory)(n))}}function shareReplay(n,e,o){var d;return d={bufferSize:n,windowTime:e,refCount:!1,scheduler:o},function(I){return I.lift(shareReplayOperator(d))}}function shareReplayOperator(n){var e,o,d=n.bufferSize,I=d===void 0?Number.POSITIVE_INFINITY:d,f=n.windowTime,S=f===void 0?Number.POSITIVE_INFINITY:f,v=n.refCount,L=n.scheduler,x=0,F=!1,Y=!1;return function(j){var W;x++,!e||F?(F=!1,e=new ReplaySubject(I,S,L),W=e.subscribe(this),o=j.subscribe({next:function(re){e.next(re)},error:function(re){F=!0,e.error(re)},complete:function(){Y=!0,o=void 0,e.complete()}}),Y&&(o=void 0)):W=e.subscribe(this),this.add(function(){x--,W.unsubscribe(),W=void 0,o&&!Y&&v&&x===0&&(o.unsubscribe(),o=void 0,e=void 0)})}}function switchMap(n,e){return function(o){return o.lift(new SwitchMapOperator(n))}}var SwitchMapOperator=function(){function n(e){this.project=e}return n.prototype.call=function(e,o){return o.subscribe(new SwitchMapSubscriber(e,this.project))},n}(),SwitchMapSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.project=d,I.index=0,I}return __extends$3(e,n),e.prototype._next=function(o){var d,I=this.index++;try{d=this.project(o,I)}catch(f){return void this.destination.error(f)}this._innerSub(d)},e.prototype._innerSub=function(o){var d=this.innerSubscription;d&&d.unsubscribe();var I=new SimpleInnerSubscriber(this),f=this.destination;f.add(I),this.innerSubscription=innerSubscribe(o,I),this.innerSubscription!==I&&f.add(this.innerSubscription)},e.prototype._complete=function(){var o=this.innerSubscription;o&&!o.closed||n.prototype._complete.call(this),this.unsubscribe()},e.prototype._unsubscribe=function(){this.innerSubscription=void 0},e.prototype.notifyComplete=function(){this.innerSubscription=void 0,this.isStopped&&n.prototype._complete.call(this)},e.prototype.notifyNext=function(o){this.destination.next(o)},e}(SimpleOuterSubscriber);function switchAll(){return switchMap(identity$5)}function takeUntil(n){return function(e){return e.lift(new TakeUntilOperator(n))}}var TakeUntilOperator=function(){function n(e){this.notifier=e}return n.prototype.call=function(e,o){var d=new TakeUntilSubscriber(e),I=innerSubscribe(this.notifier,new SimpleInnerSubscriber(d));return I&&!d.seenValue?(d.add(I),o.subscribe(d)):d},n}(),TakeUntilSubscriber=function(n){function e(o){var d=n.call(this,o)||this;return d.seenValue=!1,d}return __extends$3(e,n),e.prototype.notifyNext=function(){this.seenValue=!0,this.complete()},e.prototype.notifyComplete=function(){},e}(SimpleOuterSubscriber);function tap(n,e,o){return function(d){return d.lift(new DoOperator(n,e,o))}}var DoOperator=function(){function n(e,o,d){this.nextOrObserver=e,this.error=o,this.complete=d}return n.prototype.call=function(e,o){return o.subscribe(new TapSubscriber(e,this.nextOrObserver,this.error,this.complete))},n}(),TapSubscriber=function(n){function e(o,d,I,f){var S=n.call(this,o)||this;return S._tapNext=noop$3,S._tapError=noop$3,S._tapComplete=noop$3,S._tapError=I||noop$3,S._tapComplete=f||noop$3,isFunction$7(d)?(S._context=S,S._tapNext=d):d&&(S._context=d,S._tapNext=d.next||noop$3,S._tapError=d.error||noop$3,S._tapComplete=d.complete||noop$3),S}return __extends$3(e,n),e.prototype._next=function(o){try{this._tapNext.call(this._context,o)}catch(d){return void this.destination.error(d)}this.destination.next(o)},e.prototype._error=function(o){try{this._tapError.call(this._context,o)}catch(d){return void this.destination.error(d)}this.destination.error(o)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(o){return void this.destination.error(o)}return this.destination.complete()},e}(Subscriber),defaultThrottleConfig={leading:!0,trailing:!1};function throttleTime(n,e,o){return e===void 0&&(e=async),o===void 0&&(o=defaultThrottleConfig),function(d){return d.lift(new ThrottleTimeOperator(n,e,o.leading,o.trailing))}}var ThrottleTimeOperator=function(){function n(e,o,d,I){this.duration=e,this.scheduler=o,this.leading=d,this.trailing=I}return n.prototype.call=function(e,o){return o.subscribe(new ThrottleTimeSubscriber(e,this.duration,this.scheduler,this.leading,this.trailing))},n}(),ThrottleTimeSubscriber=function(n){function e(o,d,I,f,S){var v=n.call(this,o)||this;return v.duration=d,v.scheduler=I,v.leading=f,v.trailing=S,v._hasTrailingValue=!1,v._trailingValue=null,v}return __extends$3(e,n),e.prototype._next=function(o){this.throttled?this.trailing&&(this._trailingValue=o,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(dispatchNext,this.duration,{subscriber:this})),this.leading?this.destination.next(o):this.trailing&&(this._trailingValue=o,this._hasTrailingValue=!0))},e.prototype._complete=function(){this._hasTrailingValue?(this.destination.next(this._trailingValue),this.destination.complete()):this.destination.complete()},e.prototype.clearThrottle=function(){var o=this.throttled;o&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),o.unsubscribe(),this.remove(o),this.throttled=null)},e}(Subscriber);function dispatchNext(n){n.subscriber.clearThrottle()}function timeoutWith(n,e,o){return o===void 0&&(o=async),function(d){var I=isDate(n),f=I?+n-o.now():Math.abs(n);return d.lift(new TimeoutWithOperator(f,I,e,o))}}var TimeoutWithOperator=function(){function n(e,o,d,I){this.waitFor=e,this.absoluteTimeout=o,this.withObservable=d,this.scheduler=I}return n.prototype.call=function(e,o){return o.subscribe(new TimeoutWithSubscriber(e,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))},n}(),TimeoutWithSubscriber=function(n){function e(o,d,I,f,S){var v=n.call(this,o)||this;return v.absoluteTimeout=d,v.waitFor=I,v.withObservable=f,v.scheduler=S,v.scheduleTimeout(),v}return __extends$3(e,n),e.dispatchTimeout=function(o){var d=o.withObservable;o._unsubscribeAndRecycle(),o.add(innerSubscribe(d,new SimpleInnerSubscriber(o)))},e.prototype.scheduleTimeout=function(){var o=this.action;o?this.action=o.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(e.dispatchTimeout,this.waitFor,this))},e.prototype._next=function(o){this.absoluteTimeout||this.scheduleTimeout(),n.prototype._next.call(this,o)},e.prototype._unsubscribe=function(){this.action=void 0,this.scheduler=null,this.withObservable=null},e}(SimpleOuterSubscriber);function timeout(n,e){return e===void 0&&(e=async),timeoutWith(n,throwError(new TimeoutError),e)}const UINT32_MAX=4294967295,ipKeywords=["ip","1","502"];function getRandomInt(n,e){const o=Math.ceil(n),d=Math.floor(e);return Math.floor(Math.random()*(d-o+1))+n}function getRandomUInt64(){const n=getRandomInt(0,UINT32_MAX),e=getRandomInt(1,UINT32_MAX);return new Long$1(n,e,!0)}function getSid(n){return n.toString().padEnd(32,"0")}function calIpDistance(n,e){const o=n.split(".").map(I=>Number(I)),d=e.split(".").map(I=>Number(I));return Math.sqrt(1e3*(o[0]-d[0])**2+100*(o[1]-d[1])**2+10*(o[2]-d[2])**2+1*(o[3]-d[3])**2)}function longToStringIfNeeded(n){return n.lessThanOrEqual(Number.MAX_SAFE_INTEGER)?n.toNumber():n.toString()}const prefixSeqMap=new Map;function uniquePrefixedId(n,e){const o="".concat(n).concat(e||""),d=prefixSeqMap.get(o)||1;return prefixSeqMap.set(o,d+1),"".concat(n).concat(d)}const getKeys=Object.keys,getEntries=Object.entries.bind(Object);function isLongNum(n){return typeof n=="number"||Long$1.isLong(n)}async function mockPromiseDelay(n,e){return new Promise(o=>{setTimeout(o,n)})}function replaceRange(n,e,o,d){return typeof n!="string"?"[Sensitive Info]":n.substring(0,e)+d+n.substring(o)}function maskIp(n){if(getParameter("SENSITIVE_LOG")){const e=/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(?::(\d+))?/g;return n.replace(e,(o,d,I,f,S,v)=>v?"".concat(d,".*.*.").concat(S,":").concat(v):"".concat(d,".*.*.").concat(S))}return n}function replaceRangeWithAsterisk(n){const e=String(n),o=Math.floor(.7*e.length),d=e.length,I=d-o;return getParameter("SENSITIVE_LOG")?replaceRange(e,o,d,"*".repeat(I)):e}function concatenateUint8Array(){let n=0;for(var e=arguments.length,o=new Array(e),d=0;dI.byteLength){const L=new Uint8Array(f-I.byteLength);I=new Uint8Array([...I,...L])}const S=util$6.createBuffer(I),v=forgeCipher.createCipher("AES-GCM",util$6.createBuffer(e.slice(0,d)));if(v.start({iv:o}),v.update(S),v.finish()){const L=v.output.getBytes()+v.mode.tag.getBytes(),x=[];for(let F=0;F{const I=parseHost(d,e);return I.port&&(o=I.port),I.domain}),port:o}}function getSyncPacketUri(n){const e=Array.from(n.slice(2,4)),o=e[0],d=e[1];return new DataView(new Uint8Array([d,o]).buffer).getInt16(0)}function handleJoinOptionsAsDefault(n){var e,o,d,I;return{withLock:(e=n==null?void 0:n.withLock)!==null&&e!==void 0&&e,withMetadata:(o=n==null?void 0:n.withMetadata)!==null&&o!==void 0&&o,withPresence:(d=n==null?void 0:n.withPresence)===null||d===void 0||d,beQuiet:(I=n==null?void 0:n.beQuiet)!==null&&I!==void 0&&I}}function handleSubOptionsAsDefault(n){var e;return _objectSpread2(_objectSpread2({},handleJoinOptionsAsDefault(n)),{},{withMessage:(e=n==null?void 0:n.withMessage)===null||e===void 0||e})}function timeoutPromise(n,e,o,d,I){if(n)return new Promise((f,S)=>{const v=setTimeout(()=>{const{code:L,reason:x}=getErrorInfoByCode(d);S(new RtmTimeoutError(o,[x+"timeout occurred"],L))},e);n.then(L=>{clearTimeout(v),f(L)}).catch(L=>{if(clearTimeout(v),isRtmError(L)||I)S(L);else{var x;const{code:F,reason:Y}=getErrorInfoByCode(d);S(new RTMBaseError(o,[Y+((x=L==null?void 0:L.message)!==null&&x!==void 0?x:"")],F))}})})}const getReportLts=()=>Long$1.fromNumber(Date.now()),genTimeoutError=(n,e)=>of(void 0).pipe(delay(COMMON_REQUEST_TIMEOUT),map$1(()=>{throw new RtmTimeoutError(OperationName.rtm,[getErrorInfoByCode(n).reason||"Request timed out after ".concat(COMMON_REQUEST_TIMEOUT/1e3,"s")],n)})),addPeriodIfNeeded=n=>typeof n=="string"?n.endsWith(".")?n:"".concat(n,"."):n,throwInvalidPrivateConfig=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_PRIVATE_CONFIG);throw new RtmInvalidArgumentError(n,[d+e],o)};function optionalTimeout(n){return e=>n>0?e.pipe(timeout(1e3*n)):e}function genErrorMessage(n,e){const o=typeof e=="number"?e:e!==void 0&&typeof e!="string"?e.code:void 0,d=typeof e!="number"&&typeof e!="string"&&e!==void 0&&e.serverCode!==void 0?e.serverCode:void 0,I="".concat(o!==void 0?"Error Code ".concat(o):"").concat(d!==void 0?", server Code ".concat(d):"");let f;return f=typeof n=="string"&&n?addPeriodIfNeeded(n):Array.isArray(n)&&typeof n[0]=="string"&&n[0]?addPeriodIfNeeded(format$1(n[0],...n.slice(1))):"","".concat(I===""?"":"".concat(I," - ")).concat(f)}class RTMBaseError extends Error{constructor(e,o,d){var I;let f;super(genErrorMessage(o,d)),_defineProperty$1(this,"originalError",void 0),_defineProperty$1(this,"code",void 0),_defineProperty$1(this,"serverCode",void 0),_defineProperty$1(this,"error",void 0),_defineProperty$1(this,"reason",void 0),_defineProperty$1(this,"operation",void 0),_defineProperty$1(this,"errorCode",void 0),typeof d=="number"?this.code=d:typeof d=="string"?this.name=d:d!==void 0&&(d.originalError&&(this.originalError=d.originalError),d.code!==void 0&&(this.code=d.code),d.serverCode!==void 0&&(this.serverCode=d.serverCode)),f=typeof o=="string"&&o?addPeriodIfNeeded(o):Array.isArray(o)&&typeof o[0]=="string"&&o[0]?addPeriodIfNeeded(format$1(o[0],...o.slice(1))):"",this.error=!0,this.errorCode=(I=this.code)!==null&&I!==void 0?I:0,this.operation=e??"",this.reason=f}}class RtmInternalError extends Error{constructor(e,o){super(genErrorMessage(e,o)),_defineProperty$1(this,"name","RtmInternalError"),_defineProperty$1(this,"code",void 0),this.code=o}}const genError=()=>class extends RtmInternalError{constructor(n){const e=Object.keys(n);super(n[e[0]],e[0])}},CommonError=genError();class RtmTimeoutError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmTimeoutError")}}class RtmInvalidArgumentError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmInvalidArgumentError")}}class RtmInvalidStatusError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmInvalidStatusError")}}class RtmLimitExceededError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmLimitExceededError")}}class RtmInvokeTooOftenError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmInvokeTooOftenError")}}class RtmUnavailableError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmUnavailableError"),_defineProperty$1(this,"statusCode",void 0)}}class RtmUnauthenticatedError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmUnauthenticatedError"),_defineProperty$1(this,"serverCode",void 0)}}class RtmUnknownError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmUnknownError")}}const isTimeout=n=>n instanceof RtmTimeoutError||n instanceof TimeoutError,isRtmError=n=>n instanceof RTMBaseError,isNoLogged=n=>n instanceof RtmInvalidStatusError,_excluded=["CODE"];function deepFreeze(n){return Object.getOwnPropertyNames(n).forEach(function(e){const o=n[e];typeof o=="object"&&o!==null&&deepFreeze(o)}),Object.freeze(n)}const AREA_DOMAIN_MAP=deepFreeze(AREA_DOMAIN_MAP$1),isContinent=n=>n in continentCountryMap,isCountry=n=>Object.values(continentCountryMap).flat().includes(n),getContinentByCountry=n=>{var e;return(e=getEntries(continentCountryMap).find(o=>{let[d,I]=o;return I.includes(n)}))===null||e===void 0?void 0:e[0]},sortAreasByWeight=n=>n.sort((e,o)=>areaWeights.indexOf(e)-areaWeights.indexOf(o)),getAreaDomainConfig=n=>{const e=new Set,o=sortAreasByWeight(n).slice(0,3).map(d=>{const I=AREA_DOMAIN_MAP[d];if(I===void 0)throw new RtmInternalError("invalid area key");const{CODE:f}=I,S=_objectWithoutProperties(I,_excluded);return e.add(f),S});if(o.length===0)throw new RtmInternalError("areas cannot be empty");return _objectSpread2({CODES:e},o.reduce((d,I)=>{for(let f=0,S=getEntries(d);fI!==AreaCodeMap.GLOBAL&&I!==AreaCodeMap.OVERSEA);if(isContinent(o)){const I=continentCountryMap[o],f=[...I??[],o];return getAreaDomainConfig(d.filter(S=>!f.includes(S)))}if(isCountry(o)){const I=getContinentByCountry(o);return getAreaDomainConfig(d.filter(f=>f!==o&&f!==I))}}if(isCountry(o)||isContinent(o))return getAreaDomainConfig(e);throw new RtmInvalidArgumentError("setArea","Invalid excludedArea area config")}let areaConfig;function setAreaConfig(n){areaConfig=n}const isInvalidAreaConfig=n=>{let e,{areaCodes:o,excludedArea:d}=n,I="",f=!1;if(Array.isArray(o)&&o.every(S=>S in AreaCode)?d!==void 0&&d===AreaCode.GLOBAL?(f=!0,I="Excluded area cannot be global"):d&&o.includes(d)?(f=!0,I="Excluded area cannot be in areaCodes"):d&&!(d in AreaCodeMap)&&(f=!0,I="Invalid excludedArea",e=d):(f=!0,I="Invalid area config"),f)throw areaConfig=void 0,setParameter("AREA_CONFIG",void 0),new RtmInvalidArgumentError("setArea",I,e)};function setArea(n){let{areaCodes:e,excludedArea:o}=n;if(isInvalidAreaConfig({areaCodes:e,excludedArea:o}),e.length===0&&o===void 0)return areaConfig=void 0,void setParameter("AREA_CONFIG",void 0);console.log(JSON.stringify({areaCodes:e,excludedArea:o}),"RTM setArea"),setAreaConfig(o===void 0?getAreaDomainConfig(e.map(d=>AreaCodeMap[d])):getAreaDomainConfigWithExclusion({areas:e.map(d=>AreaCodeMap[d]),excludedArea:AreaCodeMap[o]})),setParameter("AREA_CONFIG",{areaCodes:e,excludedArea:o})}function getDomain(n){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],o=n.replace(/(https?:\/\/)?(www.)?/i,"");return e||(o=o.split(".").slice(o.split(".").length-2).join(".")),o.indexOf("/")!==-1?o.split("/")[0]:o}const getAreaCodeByApUrl=n=>{const e=getKeys(AREA_DOMAIN_MAP),o=getDomain(n);for(let d=0;d>>((3&e)<<3)&255;return rnds}}for(var rngBrowserExports=rngBrowser.exports,byteToHex=[],i=0;i<256;++i)byteToHex[i]=(i+256).toString(16).substr(1);function bytesToUuid$2(n,e){var o=e||0,d=byteToHex;return[d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]]].join("")}var bytesToUuid_1=bytesToUuid$2,rng$1=rngBrowserExports,bytesToUuid$1=bytesToUuid_1,_nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1$1(n,e,o){var d=e&&o||0,I=e||[],f=(n=n||{}).node||_nodeId,S=n.clockseq!==void 0?n.clockseq:_clockseq;if(f==null||S==null){var v=rng$1();f==null&&(f=_nodeId=[1|v[0],v[1],v[2],v[3],v[4],v[5]]),S==null&&(S=_clockseq=16383&(v[6]<<8|v[7]))}var L=n.msecs!==void 0?n.msecs:new Date().getTime(),x=n.nsecs!==void 0?n.nsecs:_lastNSecs+1,F=L-_lastMSecs+(x-_lastNSecs)/1e4;if(F<0&&n.clockseq===void 0&&(S=S+1&16383),(F<0||L>_lastMSecs)&&n.nsecs===void 0&&(x=0),x>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=L,_lastNSecs=x,_clockseq=S;var Y=(1e4*(268435455&(L+=122192928e5))+x)%4294967296;I[d++]=Y>>>24&255,I[d++]=Y>>>16&255,I[d++]=Y>>>8&255,I[d++]=255&Y;var j=L/4294967296*1e4&268435455;I[d++]=j>>>8&255,I[d++]=255&j,I[d++]=j>>>24&15|16,I[d++]=j>>>16&255,I[d++]=S>>>8|128,I[d++]=255&S;for(var W=0;W<6;++W)I[d+W]=f[W];return e||bytesToUuid$1(I)}var v1_1=v1$1,rng=rngBrowserExports,bytesToUuid=bytesToUuid_1;function v4$1(n,e,o){var d=e&&o||0;typeof n=="string"&&(e=n==="binary"?new Array(16):null,n=null);var I=(n=n||{}).random||(n.rng||rng)();if(I[6]=15&I[6]|64,I[8]=63&I[8]|128,e)for(var f=0;f<16;++f)e[d+f]=I[f];return e||bytesToUuid(I)}var v4_1=v4$1,v1=v1_1,v4=v4_1,uuid=v4;uuid.v1=v1,uuid.v4=v4;var uuid_1=uuid,uuid$1=getDefaultExportFromCjs(uuid_1),events={exports:{}},R=typeof Reflect=="object"?Reflect:null,ReflectApply=R&&typeof R.apply=="function"?R.apply:function(n,e,o){return Function.prototype.apply.call(n,e,o)},ReflectOwnKeys;function ProcessEmitWarning(n){console&&console.warn&&console.warn(n)}ReflectOwnKeys=R&&typeof R.ownKeys=="function"?R.ownKeys:Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:function(n){return Object.getOwnPropertyNames(n)};var NumberIsNaN=Number.isNaN||function(n){return n!=n};function EventEmitter(){EventEmitter.init.call(this)}events.exports=EventEmitter,events.exports.once=once,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._eventsCount=0,EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(n){if(typeof n!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n)}function _getMaxListeners(n){return n._maxListeners===void 0?EventEmitter.defaultMaxListeners:n._maxListeners}function _addListener(n,e,o,d){var I,f,S;if(checkListener(o),(f=n._events)===void 0?(f=n._events=Object.create(null),n._eventsCount=0):(f.newListener!==void 0&&(n.emit("newListener",e,o.listener?o.listener:o),f=n._events),S=f[e]),S===void 0)S=f[e]=o,++n._eventsCount;else if(typeof S=="function"?S=f[e]=d?[o,S]:[S,o]:d?S.unshift(o):S.push(o),(I=_getMaxListeners(n))>0&&S.length>I&&!S.warned){S.warned=!0;var v=new Error("Possible EventEmitter memory leak detected. "+S.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");v.name="MaxListenersExceededWarning",v.emitter=n,v.type=e,v.count=S.length,ProcessEmitWarning(v)}return n}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(n,e,o){var d={fired:!1,wrapFn:void 0,target:n,type:e,listener:o},I=onceWrapper.bind(d);return I.listener=o,d.wrapFn=I,I}function _listeners(n,e,o){var d=n._events;if(d===void 0)return[];var I=d[e];return I===void 0?[]:typeof I=="function"?o?[I.listener||I]:[I]:o?unwrapListeners(I):arrayClone(I,I.length)}function listenerCount(n){var e=this._events;if(e!==void 0){var o=e[n];if(typeof o=="function")return 1;if(o!==void 0)return o.length}return 0}function arrayClone(n,e){for(var o=new Array(e),d=0;d0&&(f=e[0]),f instanceof Error)throw f;var S=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw S.context=f,S}var v=I[n];if(v===void 0)return!1;if(typeof v=="function")ReflectApply(v,this,e);else{var L=v.length,x=arrayClone(v,L);for(o=0;o=0;f--)if(o[f]===e||o[f].listener===e){S=o[f].listener,I=f;break}if(I<0)return this;I===0?o.shift():spliceOne(o,I),o.length===1&&(d[n]=o[0]),d.removeListener!==void 0&&this.emit("removeListener",n,S||e)}return this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.removeAllListeners=function(n){var e,o,d;if((o=this._events)===void 0)return this;if(o.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):o[n]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete o[n]),this;if(arguments.length===0){var I,f=Object.keys(o);for(d=0;d=0;d--)this.removeListener(n,e[d]);return this},EventEmitter.prototype.listeners=function(n){return _listeners(this,n,!0)},EventEmitter.prototype.rawListeners=function(n){return _listeners(this,n,!1)},EventEmitter.listenerCount=function(n,e){return typeof n.listenerCount=="function"?n.listenerCount(e):listenerCount.call(n,e)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};var eventsExports=events.exports,EventEmitter$1=getDefaultExportFromCjs(eventsExports),key="__global_unique_id__",gud=function(){return commonjsGlobal$1[key]=(commonjsGlobal$1[key]||0)+1},gud$1=getDefaultExportFromCjs(gud);function getType(n){return Object.prototype.toString.call(n).slice(8,-1)}function isUndefined(n){return getType(n)==="Undefined"}function isNull(n){return getType(n)==="Null"}function isPlainObject(n){return getType(n)==="Object"&&n.constructor===Object&&Object.getPrototypeOf(n)===Object.prototype}function isEmptyObject(n){return isPlainObject(n)&&Object.keys(n).length===0}function isAnyObject(n){return getType(n)==="Object"}function isFunction$2(n){return typeof n=="function"}function isString(n){return getType(n)==="String"}function isNumber(n){return getType(n)==="Number"&&!isNaN(n)}function isBoolean(n){return getType(n)==="Boolean"}function isSymbol(n){return getType(n)==="Symbol"}function isPrimitive(n){return isBoolean(n)||isNull(n)||isUndefined(n)||isNumber(n)||isString(n)||isSymbol(n)}var safeJsonStringify$1={exports:{}},hasProp=Object.prototype.hasOwnProperty;function throwsMessage(n){return"[Throws: "+(n?n.message:"?")+"]"}function safeGetValueFromPropertyOnObject(n,e){if(hasProp.call(n,e))try{return n[e]}catch(o){return throwsMessage(o)}return n[e]}function ensureProperties(n){var e=[];return function o(d){if(d===null||typeof d!="object")return d;if(e.indexOf(d)!==-1)return"[Circular]";if(e.push(d),typeof d.toJSON=="function")try{var I=o(d.toJSON());return e.pop(),I}catch(v){return throwsMessage(v)}if(Array.isArray(d)){var f=d.map(o);return e.pop(),f}var S=Object.keys(d).reduce(function(v,L){return v[L]=o(safeGetValueFromPropertyOnObject(d,L)),v},{});return e.pop(),S}(n)}safeJsonStringify$1.exports=function(n,e,o){return JSON.stringify(ensureProperties(n),e,o)},safeJsonStringify$1.exports.ensureProperties=ensureProperties;var safeJsonStringifyExports=safeJsonStringify$1.exports,safeJsonStringify=getDefaultExportFromCjs(safeJsonStringifyExports),browser={exports:{}},ms,hasRequiredMs;function requireMs(){if(hasRequiredMs)return ms;hasRequiredMs=1;var n=1e3,e=60*n,o=60*e,d=24*o,I=7*d,f=365.25*d;function S(v,L,x,F){var Y=L>=1.5*x;return Math.round(v/x)+" "+F+(Y?"s":"")}return ms=function(v,L){L=L||{};var x=typeof v;if(x==="string"&&v.length>0)return function(F){if(!((F=String(F)).length>100)){var Y=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(F);if(Y){var j=parseFloat(Y[1]);switch((Y[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return j*f;case"weeks":case"week":case"w":return j*I;case"days":case"day":case"d":return j*d;case"hours":case"hour":case"hrs":case"hr":case"h":return j*o;case"minutes":case"minute":case"mins":case"min":case"m":return j*e;case"seconds":case"second":case"secs":case"sec":case"s":return j*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return j;default:return}}}}(v);if(x==="number"&&isFinite(v))return L.long?function(F){var Y=Math.abs(F);return Y>=d?S(F,Y,d,"day"):Y>=o?S(F,Y,o,"hour"):Y>=e?S(F,Y,e,"minute"):Y>=n?S(F,Y,n,"second"):F+" ms"}(v):function(F){var Y=Math.abs(F);return Y>=d?Math.round(F/d)+"d":Y>=o?Math.round(F/o)+"h":Y>=e?Math.round(F/e)+"m":Y>=n?Math.round(F/n)+"s":F+"ms"}(v);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(v))}}function setup(n){function e(I){let f,S,v,L=null;function x(){for(var F=arguments.length,Y=new Array(F),j=0;j{if(ue==="%%")return"%";he++;const _e=e.formatters[Ee];if(typeof _e=="function"){const De=Y[he];ue=_e.call(W,De),Y.splice(he,1),he--}return ue}),e.formatArgs.call(W,Y),(W.log||e.log).apply(W,Y)}return x.namespace=I,x.useColors=e.useColors(),x.color=e.selectColor(I),x.extend=o,x.destroy=e.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>L!==null?L:(S!==e.namespaces&&(S=e.namespaces,v=e.enabled(I)),v),set:F=>{L=F}}),typeof e.init=="function"&&e.init(x),x}function o(I,f){const S=e(this.namespace+(f===void 0?":":f)+I);return S.log=this.log,S}function d(I,f){let S=0,v=0,L=-1,x=0;for(;S"-"+f)].join(",");return e.enable(""),I},e.enable=function(I){e.save(I),e.namespaces=I,e.names=[],e.skips=[];const f=(typeof I=="string"?I:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let S=0;S{e[I]=n[I]}),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(I){let f=0;for(let S=0;S{v!=="%%"&&(f++,v==="%c"&&(S=f))}),d.splice(S,0,I)},e.save=function(d){try{d?e.storage.setItem("debug",d):e.storage.removeItem("debug")}catch{}},e.load=function(){let d;try{d=e.storage.getItem("debug")||e.storage.getItem("DEBUG")}catch{}return!d&&typeof process<"u"&&"env"in process&&(d=define_process_env_default.DEBUG),d},e.useColors=function(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let d;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(d=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(d[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},e.storage=function(){try{return localStorage}catch{}}(),e.destroy=(()=>{let d=!1;return()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.log=console.debug||console.log||(()=>{}),n.exports=common(e);const{formatters:o}=n.exports;o.j=function(d){try{return JSON.stringify(d)}catch(I){return"[UnexpectedJSONParseError]: "+I.message}}})(browser,browser.exports);var browserExports=browser.exports,Debug=getDefaultExportFromCjs(browserExports);const PROHIBITED_REQUEST_INTERVAL=1e4;class OnlineDetector{constructor(){_defineProperty$1(this,"_isDetecting",!1),_defineProperty$1(this,"_lastRequestTimeInOffline",0),_defineProperty$1(this,"_sdkIsOline",void 0),_defineProperty$1(this,"_detectCheck",e=>{e||this._isDetecting||this._detectStart(),e&&(this._sdkIsOline=!0,this._isDetecting&&this._detectEnd())})}get isOnline(){return navigator&&navigator.onLine||this._sdkIsOline}_detectEnd(){this._isDetecting=!1,this._sdkIsOline=void 0,this._lastRequestTimeInOffline=0}_detectStart(){this._isDetecting=!0}permitRequest(){const e=navigator&&navigator.onLine;return this._detectCheck(e),!!(e||this._sdkIsOline||Date.now()-this._lastRequestTimeInOffline>PROHIBITED_REQUEST_INTERVAL)&&(e||this._sdkIsOline||(this._lastRequestTimeInOffline=Date.now()),!0)}updateSdkOnline(e){this._isDetecting&&(this._sdkIsOline=e)}}const onlineDetector=new OnlineDetector,uploadLog=Debug("RTM:DEBUG");uploadLog.enabled=isDev;var UploadState=function(n){return n[n.Uploading=0]="Uploading",n[n.Free=1]="Free",n}(UploadState||{});class LogUploader{constructor(e){_defineProperty$1(this,"_uploadTimer",null),_defineProperty$1(this,"uploadRequest",void 0),_defineProperty$1(this,"uploadState",void 0),_defineProperty$1(this,"uploadResendCount",void 0),_defineProperty$1(this,"LogCache",void 0),_defineProperty$1(this,"LogsToPost",void 0),_defineProperty$1(this,"processId",void 0),_defineProperty$1(this,"sdkVersion",void 0),_defineProperty$1(this,"logId",void 0),_defineProperty$1(this,"cloudProxy",void 0),_defineProperty$1(this,"privateLogUploadHosts",void 0),this.processId=e.processId,this.sdkVersion=e.sdkVersion,this.cloudProxy=e.cloudProxy,this.uploadRequest=e.uploadRequest,this.uploadState=UploadState.Free,this.uploadResendCount=0,this.LogCache=[],this.LogsToPost=[],this.logId=0,this.privateLogUploadHosts=e.privateLogUploadHosts}upload(e,o){this.LogCache.push(o),this.uploadState===UploadState.Free&&onlineDetector.isOnline&&getParameter("VID").get(e)!==void 0&&(this.LogsToPost=this.LogCache.length{this._uploadTimer=null;const d={sdk_version:this.sdkVersion,process_id:this.processId,payload:JSON.stringify(o)};try{var I;await this.uploadRequest(e,d,(I=this.cloudProxy)!==null&&I!==void 0&&I,this.privateLogUploadHosts)}catch{const v=this.uploadResendCount++<2?2e3:1e4;return void(this._uploadTimer=setTimeout(()=>{this._uploadTimer=null,this.postLog(e,this.LogsToPost)},v))}if(this.LogCache.length===0)return void(this.uploadState=UploadState.Free);this.uploadResendCount=0;const f=Math.min(this.LogCache.length,LOG_UPLOAD_MAX_ITEMS);this.LogsToPost=this.LogCache.splice(0,f),this.postLog(e,this.LogsToPost)},getParameter("LOG_UPLOAD_INTERVAL"))}}async function postWithAbortSignal(n,e,o){let{body:d,headers:I={},timeout:f=1e4,signal:S,withCredentials:v=!1}=e;if(onlineDetector.permitRequest()===!1)throw new Error("network is offline, not permit send request: url(".concat(n,")"));const L=OperationName.rtm,{useBinaryResponse:x=!1}={},F=new XMLHttpRequest;F.open("POST",n,!0),F.responseType=x?"arraybuffer":"text",F.withCredentials=v,F.timeout=f;const Y=d instanceof FormData,j=d instanceof Uint8Array,W=Object.keys(I).filter(re=>re.toLowerCase()==="content-type");if(W.length>1)throw new RangeError("multiple content-type");if(W.length===0&&(j?I["Content-Type"]="application/octet-stream":Y||(I["Content-Type"]="application/json")),!("setRequestHeader"in F)){F.abort();try{const re=await fetch(n,{body:Y||j?d:JSON.stringify(d),cache:"no-cache",credentials:v?"include":"same-origin",headers:I,method:"POST",mode:"cors",referrer:"no-referrer",signal:S}),{status:ee}=re;if(ee>=200&&ee<300||ee===304)return onlineDetector.updateSdkOnline(!0),x?{status:ee,responseData:await re.arrayBuffer()}:{status:ee,responseText:await re.text()};const he=new RtmUnavailableError(L,["Post XHR failure, status %d",ee]);try{const ue=await re.text();throw he.statusCode=ee,he.message=ue||"Request failed, status ".concat(ee),he}catch{throw he.statusCode=ee,he.message="Request failed, status ".concat(ee),he}}catch(re){throw onlineDetector.updateSdkOnline(!1),new RtmUnavailableError(L,["Post XHR failure, detail: %s",re.message])}}if(Object.keys(I).length!==0)for(let re=0,ee=Object.entries(I);re{F.abort(),S.removeEventListener("abort",re)};S.addEventListener("abort",re)}return Y||j?F.send(d):F.send(JSON.stringify(d)),new Promise((re,ee)=>{const he=()=>{try{ee(new DOMException("The request aborted.","AbortError"))}catch{const Ee=new Error("The request aborted.");Ee.name="AbortError",ee(Ee)}};F.onload=()=>{const{status:ue}=F;if(ue===0)he();else if(ue>=200&&ue<300||ue===304)re(x?{status:ue,responseData:F.response}:{status:ue,responseText:F.responseText});else{const Ee=new RtmUnavailableError(L,["Post XHR failure, status %d",ue]);Ee.statusCode=ue,Ee.message=F.response||"Request failed, status ".concat(F.status),ee(Ee)}},F.ontimeout=ue=>{ee(new RtmTimeoutError(L,["XHR request timed out after %d ms",f],{originalError:ue}))},F.onerror=()=>{F.status===0&&he();const ue=new RtmUnavailableError(L,["Post XHR failure, status %d",F.status]);ue.statusCode=F.status,ue.message=F.response||"Request failed, status ".concat(F.status),ee(ue)},F.onabort=()=>{he()}}).finally(()=>{F.status!==0?onlineDetector.updateSdkOnline(!0):onlineDetector.updateSdkOnline(!1)})}const LOG_SERVICE_MAIN_DOMAIN="logservice-rtm.agora.io",LOG_SERVICE_BACKUP_DOMAIN="rtm.logservice.sd-rtn.com";let logUploadDomainIdx=0;function getLogUploadDomain(){try{var n;const e=(n=getParameter("LOG_UPLOAD_DOMAIN_LIST"))!==null&&n!==void 0?n:[];return logUploadDomainIdx>=e.length&&(logUploadDomainIdx=0),e[logUploadDomainIdx]}catch(e){return console.error(e),""}}const getUTCTimestamp$1=()=>{const n=new Date,[e,o]=n.toISOString().split("T"),[d,I,f]=e.split("-");return"".concat(I,"-").concat(f," ").concat(o.replace(/\..+/,""),".").concat(n.getMilliseconds())},_uploadRequest=async function(n,e,o,d){var I,f;let S=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!getParameter("VID").get(n)||S>2)return;const v={withCredentials:!0,body:e,timeout:2e4,headers:{vid:getParameter("VID").get(n),"Content-Encoding":"gzip"}},L=d&&getPrivateSettingsPortAndDomains(d),x=L==null?void 0:L.hostname,F=(I=x==null?void 0:x.length)!==null&&I!==void 0?I:0,Y=L==null?void 0:L.port,j=x&&x[0],W=x&&x[F-1],re=S>0?(areaConfig==null?void 0:areaConfig.LOG_UPLOAD_SERVER[0])||getLogUploadDomain()||(W??LOG_SERVICE_BACKUP_DOMAIN):(areaConfig==null?void 0:areaConfig.LOG_UPLOAD_SERVER[0])||getLogUploadDomain()||(j??LOG_SERVICE_MAIN_DOMAIN),ee=o&&!d?"https://".concat((f=areaConfig==null?void 0:areaConfig.PROXY_NGINX[0])!==null&&f!==void 0?f:"webrtc-cloud-proxy.sd-rtn.com","/ls/?h=").concat(re,"&p=").concat(Y??443,"&d=upload/v1"):"https://".concat(re).concat(Y?":".concat(Y):"","/upload/v1");await postWithAbortSignal(ee,v).catch(he=>(logUploadDomainIdx++,_uploadRequest(n,e,o,d,S+1)))},logUploaders=new Map,logUploader=(n,e,o)=>{if(logUploaders.has(n)&&logUploaders.get(n)instanceof LogUploader)return logUploaders.get(n);{const d=new LogUploader({processId:"process-".concat(n),sdkVersion:"Agora_RTM_SDK_for_Web_".concat(BUILD),uploadRequest:_uploadRequest,cloudProxy:o!=null&&o,privateLogUploadHosts:e});return logUploaders.set(n,d),d}},blacklistedKeywords=["text","payload","rawMessage","thumbnail","attributeInfos","keys","value","extra","ticket"],sensitiveKeywords=["account","ticket","uid","detail","token","fileName","cname","user","group","key","origin","users","src","dst","lastUpdateUserId","channel","cert","wan_ip","userId","authorUid","target","lockName","appTicket","channelName","publisher","succeedUsers","failedUsers","10",...ipKeywords],whitelistedKeywords=["serverReceivedTs","hasPeerReceived","messageType","enableNotificationToChannelMembers","lastUpdateTs"],sensitiveEvents=["message","presence","topic","lock","storage","MessageFromPeer","LocalInvitationRefused","LocalInvitationAccepted","RemoteInvitationCanceled","PeersOnlineStatusChanged","AttributesUpdated","MemberJoined"],sensitiveArgsHandler=n=>{if(typeof n=="string")return replaceRangeWithAsterisk(n);if(Array.isArray(n)&&n.every(e=>typeof e=="string"))return n.map(e=>replaceRangeWithAsterisk(e));if(!isPrimitive(n)){const e={};for(let o=0;o0)return e;if(Object.keys(n).length<5){for(let o=0,d=Object.entries(n);ohandleLogObject(cloneDeep$1(n),getParameter("SENSITIVE_LOG")?blacklistedKeywords:[],getParameter("SENSITIVE_LOG")?sensitiveKeywords:[]),getPlain=n=>typeof n=="object"?isPlainObject(n)?filterLogObject(n):n.constructor&&n.constructor.name:n,formatLogTextAndParameters=(n,e)=>{if(n instanceof Error)return n.message;if(typeof n!="string")return JSON.stringify(filterLogObject(n));const o=e.map(d=>d instanceof Error?d.message:typeof d=="object"&&d!==null?safeJsonStringify(Array.isArray(d)?d.map(getPlain):getPlain(d)):d);return format$1(n.replace(/%[%Oo]/g,d=>d==="%%"?"%":d==="%o"||d==="%O"?"%s":d),...o)},logAndUploadGenerator=(n,e,o,d,I,f,S,v)=>{const L=Debug(o);L.enabled=!0,L.log=S,L.useColors=!1;const x="Ins#".concat(e," ");return function(F){for(var Y=arguments.length,j=new Array(Y>1?Y-1:0),W=1;W7?"...":""," - ").concat(x).concat(o," - ").concat(re.length>256?re.slice(0,256):re)})}const ee=he=>{const ue=re||formatLogTextAndParameters(addPeriodIfNeeded(F),j),Ee=getParameter("LOG_HANDLER"),_e="[uid: ".concat(I,"] ").concat(o," [UTC_Time: ").concat(getUTCTimestamp$1(),"]");isFunction$2(Ee)?Ee({level:he,message:x+ue,prefix:_e}):L("[UTC_Time: ".concat(getUTCTimestamp$1(),"][uid: ").concat(getParameter("SENSITIVE_LOG")?maskMiddleOfString(I):I,"]").concat(ue))};switch(o){case"RTM:INFO":f.logFilter.info&&ee("info");break;case"RTM:WARN":f.logFilter.warn&&ee("warn");break;case"RTM:ERROR":f.logFilter.error&&ee("error");break;case"RTM:TRACK":f.logFilter.track&&ee("info");break;case"RTM:MSG:RECV":case"RTM:MSG:SEND":case"RTM:DEBUG":f.logFilter.debug&&ee("debug")}}};let loggerId;function initLoggerId(n,e,o){loggerId=gud$1();const d=new LogUploader({processId:"process-".concat(n),sdkVersion:"Agora_RTM_SDK_for_Web_".concat(BUILD),uploadRequest:_uploadRequest,cloudProxy:o,privateLogUploadHosts:e});return logUploaders.set(n,d),loggerId}const loggerGenerator=(n,e,o,d,I,f,S,v)=>logAndUploadGenerator(n,e,"RTM:".concat(d),f,S,I,function(L){return o((x=L,"Ins#".concat(e," ").concat(x)));var x},v),genInfoLogger=(n,e,o,d,I,f)=>loggerGenerator(n,e,console.debug,"INFO",o,d,I,f),genWarnLogger=(n,e,o,d,I,f)=>loggerGenerator(n,e,console.warn,"WARN",o,d,I,f),genErrorLogger=(n,e,o,d,I,f)=>loggerGenerator(n,e,console.error,"ERROR",o,d,I,f),debugLoggerGenerator=(n,e,o,d,I,f)=>function(S){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const L=console.debug||console.log,x=logAndUploadGenerator(n,e,S,d,I,o,function(F){return L((Y=F,"Ins#".concat(e," ").concat(Y)));var Y},f);return function(F){for(var Y=arguments.length,j=new Array(Y>1?Y-1:0),W=1;WS=>debugLoggerGenerator(n,e,o,d,I,f)("RTM:TRACK","[".concat(S,"] "));function loggedSensitive(n,e,o){let d=o;d===void 0&&(d=Object.getOwnPropertyDescriptor(n,e));const I=d.value;return d.value=function(){for(var f=arguments.length,S=new Array(f),v=0;v0?"%s with args: ".concat(S.map(()=>"%o")):"%s"),this.name,e,...S.map(sensitiveArgsHandler));try{var L=I.apply(this,S)}catch(F){throw this.logError("".concat(F.code!==void 0?"Error Code ".concat(F.code,": "):"","%s failed").concat(S.length>0?" with args: ".concat(S.map(()=>"%o")):""),e,...S.map(sensitiveArgsHandler)),F.originalError&&this.logError(F.originalError),this.errorTracker(F),F}const x=Date.now();return(async()=>{let F;try{F=await L}catch(j){return this.logError("".concat(j.code!==void 0?"Error Code ".concat(j.code,": "):"","%s failed").concat(S.length>0?" with args: ".concat(S.map(()=>"%o")):""),e,...S.map(sensitiveArgsHandler)),j.originalError&&this.logError(j.originalError),void this.errorTracker(j)}var Y;F!==L?F===void 0?this.resultTracker("%s promise resolves after %dms",e,Date.now()-x):this.resultTracker("%s promise resolves after %dms, result is %o",e,Date.now()-x,sensitiveArgsHandler(F)):isAnyObject(F)&&!isPlainObject(F)?this.resultTracker("%s result is %s",e,F.name||((Y=F.constructor)===null||Y===void 0?void 0:Y.name)):this.resultTracker("%s result is %o",e,F?sensitiveArgsHandler(F):"void")})(),L},d}const genLogFilter=n=>{let e=LogFilter.LOG_FILTER_NONE;switch(n){case"debug":e=LogFilter.LOG_FILTER_DEBUG;break;case"info":e=LogFilter.LOG_FILTER_INFO;break;case"warn":e=LogFilter.LOG_FILTER_WARN;break;case"none":e=LogFilter.LOG_FILTER_NONE;break;default:e=LogFilter.LOG_FILTER_ERROR}return e};class EventBase extends EventEmitter$1{constructor(e,o){var d;let I=arguments.length>2&&arguments[2]!==void 0&&arguments[2],f=arguments.length>3&&arguments[3]!==void 0&&arguments[3];super(),d=this,_defineProperty$1(this,"logError",void 0),_defineProperty$1(this,"invokeTracker",void 0),_defineProperty$1(this,"resultTracker",void 0),_defineProperty$1(this,"errorTracker",void 0),_defineProperty$1(this,"eventTracker",void 0),_defineProperty$1(this,"info",void 0),_defineProperty$1(this,"warn",void 0),_defineProperty$1(this,"log",void 0),_defineProperty$1(this,"genLogger",void 0),_defineProperty$1(this,"loggerId",void 0),_defineProperty$1(this,"logger",void 0),_defineProperty$1(this,"name",void 0),_defineProperty$1(this,"debug",void 0);const{appId:S,userId:v,processId:L,logLevel:x,logUpload:F,cloudProxy:Y}=e,j={logUpload:F,cloudProxy:Y,logFilter:genLogFilter(x)};this.logger=e,this.name=o,this.loggerId=this.logger.loggerId,this.info=genInfoLogger(S,this.loggerId,j,L,v),this.log=this.info,this.warn=genWarnLogger(S,this.loggerId,j,L,v),this.logError=genErrorLogger(S,this.loggerId,j,L,v),this.genLogger=debugLoggerGenerator(S,this.loggerId,j,L,v);const W=trackLoggerGenerator(S,this.loggerId,j,L,v);if(this.debug=this.genLogger("RTM:DEBUG","<".concat(o,"> ")),this.invokeTracker=W("Invoke"),this.eventTracker=W("Event"),this.resultTracker=W("Result"),this.errorTracker=W("Error"),I){const re=this.emit.bind(this),ee=function(){for(var he=arguments.length,ue=new Array(he),Ee=0;Ee0?"%s emitted with args: ".concat(De.map(()=>"%o")):"%s emitted"),o,_e,...getParameter("SENSITIVE_LOG")&&Fe?De.map(sensitiveArgsHandler):De);try{return re(...ue),!0}catch(Ve){return d.logError("Caught in the callback function of the event %s",_e,Ve),!1}};this.emit=ee}f&&(Object.defineProperty(this,"addListener",{value:void 0,writable:!1,configurable:!1}),Object.defineProperty(this,"removeListener",{value:void 0,writable:!1,configurable:!1}))}}var UZIP={},u16,u32;module.exports=UZIP,UZIP.parse=function(n,e){for(var o=UZIP.bin.readUshort,d=UZIP.bin.readUint,I=0,f={},S=new Uint8Array(n),v=S.length-4;d(S,v)!=101010256;)v--;I=v,I+=4;var L=o(S,I+=4);o(S,I+=2);var x=d(S,I+=2),F=d(S,I+=4);I+=4,I=F;for(var Y=0;Y>>24&255,d[o+1]=I>>>16&255,d[o+2]=I>>>8&255,d[o+3]=I>>>0&255,new Uint8Array(d.buffer,0,o+4)},UZIP.deflateRaw=function(n,e){e==null&&(e={level:6});var o=new Uint8Array(50+Math.floor(1.1*n.length)),d=UZIP.F.deflateRaw(n,o,d,e.level);return new Uint8Array(o.buffer,0,d)},UZIP.encode=function(n,e){e==null&&(e=!1);var o=0,d=UZIP.bin.writeUint,I=UZIP.bin.writeUshort,f={};for(var S in n){var v=!UZIP._noNeed(S)&&!e,L=n[S],x=UZIP.crc.crc(L,0,L.length);f[S]={cpr:v,usize:L.length,crc:x,file:v?UZIP.deflateRaw(L):L}}for(var S in f)o+=f[S].file.length+30+46+2*UZIP.bin.sizeUTF8(S);o+=22;var F=new Uint8Array(o),Y=0,j=[];for(var S in f){var W=f[S];j.push(Y),Y=UZIP._writeHeader(F,Y,S,W,0)}var re=0,ee=Y;for(var S in f)W=f[S],j.push(Y),Y=UZIP._writeHeader(F,Y,S,W,1,j[re++]);var he=Y-ee;return d(F,Y,101010256),Y+=4,I(F,Y+=4,re),I(F,Y+=2,re),d(F,Y+=2,he),d(F,Y+=4,ee),Y+=4,Y+=2,F.buffer},UZIP._noNeed=function(n){var e=n.split(".").pop().toLowerCase();return"png,jpg,jpeg,zip".indexOf(e)!=-1},UZIP._writeHeader=function(n,e,o,d,I,f){var S=UZIP.bin.writeUint,v=UZIP.bin.writeUshort,L=d.file;return S(n,e,I==0?67324752:33639248),e+=4,I==1&&(e+=2),v(n,e,20),v(n,e+=2,0),v(n,e+=2,d.cpr?8:0),S(n,e+=2,0),S(n,e+=4,d.crc),S(n,e+=4,L.length),S(n,e+=4,d.usize),v(n,e+=4,UZIP.bin.sizeUTF8(o)),v(n,e+=2,0),e+=2,I==1&&(e+=2,e+=2,S(n,e+=6,f),e+=4),e+=UZIP.bin.writeUTF8(n,e,o),I==0&&(n.set(L,e),e+=L.length),e},UZIP.crc={table:function(){for(var n=new Uint32Array(256),e=0;e<256;e++){for(var o=e,d=0;d<8;d++)1&o?o=3988292384^o>>>1:o>>>=1;n[e]=o}return n}(),update:function(n,e,o,d){for(var I=0;I>>8;return n},crc:function(n,e,o){return 4294967295^UZIP.crc.update(4294967295,n,e,o)}},UZIP.adler=function(n,e,o){for(var d=1,I=0,f=e,S=e+o;f>8&255},readUint:function(n,e){return 16777216*n[e+3]+(n[e+2]<<16|n[e+1]<<8|n[e])},writeUint:function(n,e,o){n[e]=255&o,n[e+1]=o>>8&255,n[e+2]=o>>16&255,n[e+3]=o>>24&255},readASCII:function(n,e,o){for(var d="",I=0;I>18,n[e+I+1]=128|S>>12&63,n[e+I+2]=128|S>>6&63,n[e+I+3]=128|63&S,I+=4}else n[e+I]=224|S>>12,n[e+I+1]=128|S>>6&63,n[e+I+2]=128|63&S,I+=3;else n[e+I]=192|S>>6,n[e+I+1]=128|63&S,I+=2;else n[e+I]=S,I++}return I},sizeUTF8:function(n){for(var e=n.length,o=0,d=0;d>>3}var j=f.lits,W=f.strt,re=f.prev,ee=0,he=0,ue=0,Ee=0,_e=0,De=0;for(Y>2&&(W[De=UZIP.F._hash(n,0)]=0),L=0;L14e3||he>26697)&&Y-L>100&&(F>>16,He=65535&Ve;if(Ve!=0){He=65535&Ve;var At=S(Ge=Ve>>>16,f.of0);f.lhst[257+At]++;var Bt=S(He,f.df0);f.dhst[Bt]++,Ee+=f.exb[At]+f.dxb[Bt],j[ee]=Ge<<23|L-F,j[ee+1]=He<<16|At<<8|Bt,ee+=2,F=L+Ge}else f.lhst[n[L]]++;he++}}for(ue==L&&n.length!=0||(F>>3},UZIP.F._bestMatch=function(n,e,o,d,I,f){var S=32767&e,v=o[S],L=S-v+32768&32767;if(v==S||d!=UZIP.F._hash(n,e-L))return 0;for(var x=0,F=0,Y=Math.min(32767,e);L<=Y&&--f!=0&&v!=S;){if(x==0||n[e+x]==n[e+x-L]){var j=UZIP.F._howLong(n,e,L);if(j>x){if(F=L,(x=j)>=I)break;L+2W&&(W=he,v=ee)}}}L+=(S=v)-(v=o[S])+32768&32767}return x<<16|F},UZIP.F._howLong=function(n,e,o){if(n[e]!=n[e-o]||n[e+1]!=n[e+1-o]||n[e+2]!=n[e+2-o])return 0;var d=e,I=Math.min(n.length,e+258);for(e+=3;e>>23,ht=ye+(8388607&Yt);ye>16,jt=vt>>8&255,vr=255&vt;De(v,L=UZIP.F._writeLit(257+jt,Bt,v,L),ct-Ee.of0[jt]),L+=Ee.exb[jt],_e(v,L=UZIP.F._writeLit(vr,Tt,v,L),ar-Ee.df0[vr]),L+=Ee.dxb[vr],ye+=ct}}L=UZIP.F._writeLit(256,Bt,v,L)}return L},UZIP.F._copyExact=function(n,e,o,d,I){var f=I>>>3;return d[f]=o,d[f+1]=o>>>8,d[f+2]=255-d[f],d[f+3]=255-d[f+1],f+=4,d.set(new Uint8Array(n.buffer,e,o),f),I+(o+4<<3)},UZIP.F.getTrees=function(){for(var n=UZIP.F.U,e=UZIP.F._hufTree(n.lhst,n.ltree,15),o=UZIP.F._hufTree(n.dhst,n.dtree,15),d=[],I=UZIP.F._lenCodes(n.ltree,d),f=[],S=UZIP.F._lenCodes(n.dtree,f),v=0;v4&&n.itree[1+(n.ordr[x-1]<<1)]==0;)x--;return[e,o,L,I,S,x,d,f]},UZIP.F.getSecond=function(n){for(var e=[],o=0;o>1)+",");return e},UZIP.F.contSize=function(n,e){for(var o=0,d=0;d15&&(UZIP.F._putsE(o,d,S,v),d+=v)}return d},UZIP.F._lenCodes=function(n,e){for(var o=n.length;o!=2&&n[o-1]==0;)o-=2;for(var d=0;d>>1,138))<11?e.push(17,x-3):e.push(18,x-11),d+=2*x-2}else if(I==v&&f==I&&S==I){for(L=d+5;L+2>>1,6);e.push(16,x-3),d+=2*x-2}else e.push(I,0)}return o>>>1},UZIP.F._hufTree=function(n,e,o){var d=[],I=n.length,f=e.length,S=0;for(S=0;So&&(UZIP.F.restrictDepth(L,o,ee),ee=o),S=0;Se;d++){var S=n[d].d;n[d].d=e,f+=I-(1<>>=o-e;f>0;)(S=n[d].d)=0;d--)n[d].d==e&&f<0&&(n[d].d--,f++);f!=0&&console.log("debt left")},UZIP.F._goodIndex=function(n,e){var o=0;return e[16|o]<=n&&(o|=16),e[8|o]<=n&&(o|=8),e[4|o]<=n&&(o|=4),e[2|o]<=n&&(o|=2),e[1|o]<=n&&(o|=1),o},UZIP.F._writeLit=function(n,e,o,d){return UZIP.F._putsF(o,d,e[n<<1]),d+e[1+(n<<1)]},UZIP.F.inflate=function(n,e){var o=Uint8Array;if(n[0]==3&&n[1]==0)return e||new o(0);var d=UZIP.F,I=d._bitsF,f=d._bitsE,S=d._decodeTiny,v=d.makeCodes,L=d.codes2map,x=d._get17,F=d.U,Y=e==null;Y&&(e=new o(n.length>>>2<<3));for(var j,W,re=0,ee=0,he=0,ue=0,Ee=0,_e=0,De=0,Fe=0,Ve=0;re==0;)if(re=I(n,Ve,1),ee=I(n,Ve+1,2),Ve+=3,ee!=0){if(Y&&(e=UZIP.F._check(e,Fe+(1<<17))),ee==1&&(j=F.flmap,W=F.fdmap,_e=511,De=31),ee==2){he=f(n,Ve,5)+257,ue=f(n,Ve+5,5)+1,Ee=f(n,Ve+10,4)+4,Ve+=14;for(var Ge=0;Ge<38;Ge+=2)F.itree[Ge]=0,F.itree[Ge+1]=0;var He=1;for(Ge=0;GeHe&&(He=At)}Ve+=3*Ee,v(F.itree,He),L(F.itree,He,F.imap),j=F.lmap,W=F.dmap,Ve=S(F.imap,(1<>>4;if(!(ye>>>8))e[Fe++]=ye;else{if(ye==256)break;var lt=Fe+ye-254;if(ye>264){var Yt=F.ldef[ye-257];lt=Fe+(Yt>>>3)+f(n,Ve,7&Yt),Ve+=7&Yt}var ct=W[x(n,Ve)&De];Ve+=15&ct;var ht=ct>>>4,vt=F.ddef[ht],ar=(vt>>>4)+I(n,Ve,15&vt);for(Ve+=15&vt,Y&&(e=UZIP.F._check(e,Fe+(1<<17)));Fe>>3)+4,vr=n[jt-4]|n[jt-3]<<8;Y&&(e=UZIP.F._check(e,Fe+vr)),e.set(new o(n.buffer,n.byteOffset+jt,vr),Fe),Ve=jt+vr<<3,Fe+=vr}return e.length==Fe?e:e.slice(0,Fe)},UZIP.F._check=function(n,e){var o=n.length;if(e<=o)return n;var d=new Uint8Array(Math.max(o<<1,e));return d.set(n,0),d},UZIP.F._decodeTiny=function(n,e,o,d,I,f){for(var S=UZIP.F._bitsE,v=UZIP.F._get17,L=0;L>>4;if(F<=15)f[L]=F,L++;else{var Y=0,j=0;F==16?(j=3+S(d,I,2),I+=2,Y=f[L-1]):F==17?(j=3+S(d,I,3),I+=3):F==18&&(j=11+S(d,I,7),I+=7);for(var W=L+j;L>>1;fI&&(I=v),f++}for(;f>1,v=n[f+1],L=S<<4|v,x=e-v,F=n[f]<>>15-e]=L,F++},UZIP.F.revCodes=function(n,e){for(var o=UZIP.F.U.rev15,d=15-e,I=0;I>>d}},UZIP.F._putsE=function(n,e,o){o<<=7&e;var d=e>>>3;n[d]|=o,n[d+1]|=o>>>8},UZIP.F._putsF=function(n,e,o){o<<=7&e;var d=e>>>3;n[d]|=o,n[d+1]|=o>>>8,n[d+2]|=o>>>16},UZIP.F._bitsE=function(n,e,o){return(n[e>>>3]|n[(e>>>3)+1]<<8)>>>(7&e)&(1<>>3]|n[(e>>>3)+1]<<8|n[(e>>>3)+2]<<16)>>>(7&e)&(1<>>3]|n[(e>>>3)+1]<<8|n[(e>>>3)+2]<<16)>>>(7&e)},UZIP.F._get25=function(n,e){return(n[e>>>3]|n[(e>>>3)+1]<<8|n[(e>>>3)+2]<<16|n[(e>>>3)+3]<<24)>>>(7&e)},UZIP.F.U=(u16=Uint16Array,u32=Uint32Array,{next_code:new u16(16),bl_count:new u16(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new u16(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new u32(32),flmap:new u16(512),fltree:[],fdmap:new u16(32),fdtree:[],lmap:new u16(32768),ltree:[],ttree:[],dmap:new u16(32768),dtree:[],imap:new u16(512),itree:[],rev15:new u16(32768),lhst:new u32(286),dhst:new u32(30),ihst:new u32(19),lits:new u32(15e3),strt:new u16(65536),prev:new u16(32768)}),function(){for(var n=UZIP.F.U,e=0;e<32768;e++){var o=e;o=(4278255360&(o=(4042322160&(o=(3435973836&(o=(2863311530&o)>>>1|(1431655765&o)<<1))>>>2|(858993459&o)<<2))>>>4|(252645135&o)<<4))>>>8|(16711935&o)<<8,n.rev15[e]=(o>>>16|o<<16)>>>17}function d(I,f,S){for(;f--!=0;)I.push(0,S)}for(e=0;e<32;e++)n.ldef[e]=n.of0[e]<<3|n.exb[e],n.ddef[e]=n.df0[e]<<4|n.dxb[e];d(n.fltree,144,8),d(n.fltree,112,9),d(n.fltree,24,7),d(n.fltree,8,8),UZIP.F.makeCodes(n.fltree,9),UZIP.F.codes2map(n.fltree,9,n.flmap),UZIP.F.revCodes(n.fltree,9),d(n.fdtree,32,5),UZIP.F.makeCodes(n.fdtree,5),UZIP.F.codes2map(n.fdtree,5,n.fdmap),UZIP.F.revCodes(n.fdtree,5),d(n.itree,19,0),d(n.ltree,286,0),d(n.dtree,30,0),d(n.ttree,320,0)}();const{inflate:inflate$1,deflate}=UZIP;function isValidAppId(n){return/^[\dA-Za-z]{32}$/.test(n)}function isValidId(n){return typeof n=="string"&&!n.startsWith("_")&&/^[a-zA-Z0-9 \!\#\$\%\&\(\)\+\,\-\:\;\<\=\>\?\@\[\]\^\_\{\|\}\~]{1,64}$/.test(n)}function isValidTopic(n){return typeof n=="string"&&n.length>0&&!n.startsWith("_")&&isValidId(n)}function validateTopicName(n,e){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_TOPIC_NAME);if(!isValidTopic(n))throw new RtmInvalidArgumentError(e,[d],o);if(n.length===0||new Blob([n??""]).size>TOPIC_NAME_SIZE)throw new RtmInvalidArgumentError(e,[d],o)}function isUintString(n){const e=Number(n);return Number.isInteger(e)&&e>=0}function isValidIp(n){let e;try{e=n.split(".").map(o=>Number(o))}catch{return!1}if(e.length!==4||e[0]===0)return!1;for(let o=0,d=e;o255)return!1}return!0}function validMetaDataItem(n,e){let{items:o,maxMetaDataCount:d,maxMetaValueSize:I,majorRevision:f,type:S}=e;if(!Array.isArray(o)){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_METADATA_ITEM);throw new RtmInvalidArgumentError(n,[x],L)}const v=o.map(L=>[L.getKey(),L.getValue()]);if(v.length>d){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_METADATA_ITEM_EXCEED_LIMITATION);throw new RtmLimitExceededError(n,[x],L)}if(v.length===0){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_METADATA_ITEM);throw new RtmInvalidArgumentError(n,[x],L)}if(typeof f!="number"||f<-1||f%1!=0){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[x],L)}if(o.map(L=>{if((L==null?void 0:L.getRevision())<-1){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[F],x)}}),(S==="Update"||S==="Delete")&&f===0){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[x],L)}if((S==="Update"||S==="Delete")&&o.map(L=>L.getRevision()).includes(0)){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[x],L)}for(let L=0;LRTM_METADATA_KEY_MAX_LENGTH){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_KEY_LENGTH_OVERFLOW);throw new RtmInvalidArgumentError(n,[re],W)}if(S!=="Delete"&&typeof F!="string"){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_VALUE);throw new RtmInvalidArgumentError(n,[re],W)}if(j>I){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_VALUE_LENGTH_OVERFLOW);throw new RtmLimitExceededError(n,[re],W)}}}function validateMetaDataSize(n,e){if(new Blob([e??""]).size>RTM_METADATA_MAX_LENGTH){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_METADATA_LENGTH_OVERFLOW);throw new RtmLimitExceededError(n,[d],o)}}function validMetaDataMajorRevisionForRemove(n,e){if(e<-1){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[d],o)}if(e%1!=0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[d],o)}if(e===0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[d],o)}}function validStateOfPresence(n,e){for(const d in n){var o;const I=new Blob([(o=n[d])!==null&&o!==void 0?o:""]).size;if(validStateKeyOfPresence(d,e),I>MAX_STATE_VALUE_SIZE){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_VALUE_SIZE_OVERFLOW);throw new RtmLimitExceededError(e,[S],f)}}}function validStateKeyOfPresence(n,e){const o=new Blob([n??""]).size;if(o>MAX_STATE_KEY_SIZE){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_KEY_SIZE_OVERFLOW);throw new RtmInvalidArgumentError(e,[I],d)}if(o===0||!isValidId(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_INVALID_STATE_KEY);throw new RtmInvalidArgumentError(e,[I],d)}}function checkKeyValidity(n){return n.length!==0&&n[0]!==K_SYNC_INTERNAL_KEY_PREFIX}function validateMessageSize(n,e){if(!n||typeof n!="string"&&!(n instanceof Uint8Array)){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);throw new RtmInvalidArgumentError(e,[d],o)}if((typeof n=="string"?new Blob([n??""]).size:n.byteLength)>PUBLISH_MESSAGE_SIZE){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_MESSAGE_LENGTH_EXCEED_LIMITATION);throw new RtmInvalidArgumentError(e,[d],o)}}function validateCustomType(n,e){const o=new Blob([n]);if(o.size>CUSTOM_TYPE_SIZE){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_CUSTOM_TYPE_LENGTH_OVERFLOW);throw new RtmInvalidArgumentError(e,[I],d)}if(typeof n!="string"||o.size===0){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_CUSTOM_TYPE);throw new RtmInvalidArgumentError(e,[I],d)}}function validateChannelName(n){return isValidId(n)}function validateChannelType(n,e){if(e!=="MESSAGE"&&e!=="STREAM"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_TYPE);throw new RtmInvalidArgumentError(n,[d],o)}}function validateHistoryChannelType(n,e){if(e!=="MESSAGE"&&e!=="USER"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_TYPE);throw new RtmInvalidArgumentError(n,[d],o)}}function validMessage(n,e){const o=OperationName.publish,{code:d,reason:I}=getErrorInfoByCode(e);if(!isPlainObject(n))throw new RtmInvalidArgumentError(o,[I],d);if(n.messageType===void 0)if(n.rawMessage instanceof Uint8Array){if(n.messageType="RAW",n.text!==void 0)throw new RtmInvalidArgumentError(o,[I],d)}else{if(typeof n.text!="string")throw new RtmInvalidArgumentError(o,[I],d);if(n.messageType="TEXT",n.rawMessage!==void 0)throw new RtmInvalidArgumentError(o,[I],d)}}function isValidEnvString(n){return!1}function validDomain(n){return/^(?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+[a-zA-Z]{2,}|(?:\d{1,3}\.){3}\d{1,3})(?::\d{1,5})?$/.test(n)}function validateIpPort(n){return/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})(?::([1-9]\d{0,4}))?$/.test(n)}function validatePrivateConfig(n){var e,o,d,I,f,S,v,L,x;if(isEmptyObject(n==null?void 0:n.privateConfig)||isEmptyObject(n==null||(e=n.privateConfig)===null||e===void 0?void 0:e.serviceType)||n==null||!n.privateConfig)return!1;let F=!1,Y="";const j=n==null||(o=n.privateConfig)===null||o===void 0?void 0:o.serviceType,W=n==null||(d=n.privateConfig)===null||d===void 0?void 0:d.accessPointHosts,re=n==null||(I=n.privateConfig)===null||I===void 0?void 0:I.eventUploadHosts,ee=n==null||(f=n.privateConfig)===null||f===void 0?void 0:f.logUploadHosts,he=n==null||(S=n.privateConfig)===null||S===void 0?void 0:S.originDomains;return(j==null?void 0:j.length)!==0&&(((v=j==null?void 0:j.length)!==null&&v!==void 0?v:0)===0||j!=null&&j.includes("MESSAGE")||j!=null&&j.includes("STREAM")||(Y=" ServiceType is illegal.",F=!0),((L=j==null?void 0:j.length)!==null&&L!==void 0?L:0)!==0&&((x=W==null?void 0:W.length)!==null&&x!==void 0?x:0)===0&&(F=!0),(W!=null&&W.some(ue=>!validDomain(ue))||he!=null&&he.some(ue=>!validDomain(ue))||re!=null&&re.some(ue=>!validDomain(ue))||ee!=null&&ee.some(ue=>!validDomain(ue)))&&(F=!0,Y+=" Hosts or domains is illegal."),F&&throwInvalidPrivateConfig(OperationName.initRTM,Y),!0)}function validateKey(n,e,o){switch(o){case"channel":if(!validateChannelName(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_NAME);throw new RtmInvalidArgumentError(e,[I],d)}break;case"uid":if(!isValidId(n)){const d=RTMErrorCode.RTM_ERROR_INVALID_USER_ID,{code:I,reason:f}=getErrorInfoByCode(d);throw new RtmInvalidArgumentError(e,[f],I)}break;case"lock-name":if(!isValidId(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_INVALID_NAME);throw new RtmInvalidArgumentError(e,[I],d)}break;case"metadata-lock":if(!isValidId(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_LOCK_NAME);throw new RtmInvalidArgumentError(e,[I],d)}}}class ReadByteBuffer{constructor(e){_defineProperty$1(this,"view",void 0),_defineProperty$1(this,"offset",void 0),this.view=new DataView(e),this.offset=0}getString(){const e=this.view.getUint16(this.offset,!0);this.offset+=2;const o=new Uint8Array(this.view.buffer,this.offset,e);return this.offset+=e,new TextDecoder().decode(o)}getUint32(){const e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}getUint16(){const e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}pack(){return this.view.buffer.slice(this.offset)}}function decodeBase64(n){const e=atob(n),o=new Uint8Array(e.length);for(let d=0;d"007",get006Version=()=>"006";function validateToken(n,e,o,d){if(e===n)return;function I(){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID);throw new RtmInvalidArgumentError(o,[L],v)}function f(){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmInvalidArgumentError(o,[L],v)}const S=n==null?void 0:n.slice(0,3);try{const v=S===get006Version()?fromStringWith006(n):S!==get007Version()||fromStringWith007(n);typeof v=="string"&&v!==e&&(isValidAppId(v)||f(),d("appId from token is '".concat(v,"', not match the appId of config.")),I()),v&&v!==e&&I()}catch(v){if(v instanceof RTMBaseError)throw v;d(v),f()}}function __awaiter(n,e,o,d){return new(o||(o=Promise))(function(I,f){function S(x){try{L(d.next(x))}catch(F){f(F)}}function v(x){try{L(d.throw(x))}catch(F){f(F)}}function L(x){var F;x.done?I(x.value):(F=x.value,F instanceof o?F:new o(function(Y){Y(F)})).then(S,v)}L((d=d.apply(n,[])).next())})}function __generator(n,e){var o,d,I,f,S={label:0,sent:function(){if(1&I[0])throw I[1];return I[1]},trys:[],ops:[]};return f={next:v(0),throw:v(1),return:v(2)},typeof Symbol=="function"&&(f[Symbol.iterator]=function(){return this}),f;function v(L){return function(x){return function(F){if(o)throw new TypeError("Generator is already executing.");for(;S;)try{if(o=1,d&&(I=2&F[0]?d.return:F[0]?d.throw||((I=d.return)&&I.call(d),0):d.next)&&!(I=I.call(d,F[1])).done)return I;switch(d=0,I&&(F=[2&F[0],I.value]),F[0]){case 0:case 1:I=F;break;case 4:return S.label++,{value:F[1],done:!1};case 5:S.label++,d=F[1],F=[0];continue;case 7:F=S.ops.pop(),S.trys.pop();continue;default:if(I=S.trys,!((I=I.length>0&&I[I.length-1])||F[0]!==6&&F[0]!==2)){S=0;continue}if(F[0]===3&&(!I||F[1]>I[0]&&F[1]0)&&!(d=f.next()).done;)S.push(d.value)}catch(v){I={error:v}}finally{try{d&&!d.done&&(o=f.return)&&o.call(f)}finally{if(I)throw I.error}}return S}function __spreadArray(n,e,o){if(arguments.length===2)for(var d,I=0,f=e.length;I1&&S.charAt(v)==="=";)++L;return Math.ceil(3*S.length)/4-L};for(var o=new Array(64),d=new Array(123),I=0;I<64;)d[o[I]=I<26?I+65:I<52?I+71:I<62?I-4:I-59|43]=I++;e.encode=function(S,v,L){for(var x,F=null,Y=[],j=0,W=0;v>2],x=(3&re)<<4,W=1;break;case 1:Y[j++]=o[x|re>>4],x=(15&re)<<2,W=2;break;case 2:Y[j++]=o[x|re>>6],Y[j++]=o[63&re],W=0}j>8191&&((F||(F=[])).push(String.fromCharCode.apply(String,Y)),j=0)}return W&&(Y[j++]=o[x],Y[j++]=61,W===1&&(Y[j++]=61)),F?(j&&F.push(String.fromCharCode.apply(String,Y.slice(0,j))),F.join("")):String.fromCharCode.apply(String,Y.slice(0,j))};var f="invalid encoding";e.decode=function(S,v,L){for(var x,F=L,Y=0,j=0;j1)break;if((W=d[W])===void 0)throw Error(f);switch(Y){case 0:x=W,Y=1;break;case 1:v[L++]=x<<2|(48&W)>>4,x=W,Y=2;break;case 2:v[L++]=(15&x)<<4|(60&W)>>2,x=W,Y=3;break;case 3:v[L++]=(3&x)<<6|W,Y=0}}if(Y===1)throw Error(f);return L-F},e.test=function(S){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(S)}}(base64$1)),base64$1}function requireEventemitter(){if(hasRequiredEventemitter)return eventemitter;function n(){this._listeners={}}return hasRequiredEventemitter=1,eventemitter=n,n.prototype.on=function(e,o,d){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:o,ctx:d||this}),this},n.prototype.off=function(e,o){if(e===void 0)this._listeners={};else if(o===void 0)this._listeners[e]=[];else for(var d=this._listeners[e],I=0;I0?0:2147483648,F,Y);else if(isNaN(x))L(2143289344,F,Y);else if(x>34028234663852886e22)L((j<<31|2139095040)>>>0,F,Y);else if(x<11754943508222875e-54)L((j<<31|Math.round(x/1401298464324817e-60))>>>0,F,Y);else{var W=Math.floor(Math.log(x)/Math.LN2);L((j<<31|W+127<<23|8388607&Math.round(x*Math.pow(2,-W)*8388608))>>>0,F,Y)}}function v(L,x,F){var Y=L(x,F),j=2*(Y>>31)+1,W=Y>>>23&255,re=8388607&Y;return W===255?re?NaN:j*(1/0):W===0?1401298464324817e-60*j*re:j*Math.pow(2,W-150)*(re+8388608)}f.writeFloatLE=S.bind(null,e),f.writeFloatBE=S.bind(null,o),f.readFloatLE=v.bind(null,d),f.readFloatBE=v.bind(null,I)}(),typeof Float64Array<"u"?function(){var S=new Float64Array([-0]),v=new Uint8Array(S.buffer),L=v[7]===128;function x(W,re,ee){S[0]=W,re[ee]=v[0],re[ee+1]=v[1],re[ee+2]=v[2],re[ee+3]=v[3],re[ee+4]=v[4],re[ee+5]=v[5],re[ee+6]=v[6],re[ee+7]=v[7]}function F(W,re,ee){S[0]=W,re[ee]=v[7],re[ee+1]=v[6],re[ee+2]=v[5],re[ee+3]=v[4],re[ee+4]=v[3],re[ee+5]=v[2],re[ee+6]=v[1],re[ee+7]=v[0]}function Y(W,re){return v[0]=W[re],v[1]=W[re+1],v[2]=W[re+2],v[3]=W[re+3],v[4]=W[re+4],v[5]=W[re+5],v[6]=W[re+6],v[7]=W[re+7],S[0]}function j(W,re){return v[7]=W[re],v[6]=W[re+1],v[5]=W[re+2],v[4]=W[re+3],v[3]=W[re+4],v[2]=W[re+5],v[1]=W[re+6],v[0]=W[re+7],S[0]}f.writeDoubleLE=L?x:F,f.writeDoubleBE=L?F:x,f.readDoubleLE=L?Y:j,f.readDoubleBE=L?j:Y}():function(){function S(L,x,F,Y,j,W){var re=Y<0?1:0;if(re&&(Y=-Y),Y===0)L(0,j,W+x),L(1/Y>0?0:2147483648,j,W+F);else if(isNaN(Y))L(0,j,W+x),L(2146959360,j,W+F);else if(Y>17976931348623157e292)L(0,j,W+x),L((re<<31|2146435072)>>>0,j,W+F);else{var ee;if(Y<22250738585072014e-324)L((ee=Y/5e-324)>>>0,j,W+x),L((re<<31|ee/4294967296)>>>0,j,W+F);else{var he=Math.floor(Math.log(Y)/Math.LN2);he===1024&&(he=1023),L(4503599627370496*(ee=Y*Math.pow(2,-he))>>>0,j,W+x),L((re<<31|he+1023<<20|1048576*ee&1048575)>>>0,j,W+F)}}}function v(L,x,F,Y,j){var W=L(Y,j+x),re=L(Y,j+F),ee=2*(re>>31)+1,he=re>>>20&2047,ue=4294967296*(1048575&re)+W;return he===2047?ue?NaN:ee*(1/0):he===0?5e-324*ee*ue:ee*Math.pow(2,he-1075)*(ue+4503599627370496)}f.writeDoubleLE=S.bind(null,e,0,4),f.writeDoubleBE=S.bind(null,o,4,0),f.readDoubleLE=v.bind(null,d,0,4),f.readDoubleBE=v.bind(null,I,4,0)}(),f}function e(f,S,v){S[v]=255&f,S[v+1]=f>>>8&255,S[v+2]=f>>>16&255,S[v+3]=f>>>24}function o(f,S,v){S[v]=f>>>24,S[v+1]=f>>>16&255,S[v+2]=f>>>8&255,S[v+3]=255&f}function d(f,S){return(f[S]|f[S+1]<<8|f[S+2]<<16|f[S+3]<<24)>>>0}function I(f,S){return(f[S]<<24|f[S+1]<<16|f[S+2]<<8|f[S+3])>>>0}return hasRequiredFloat=1,float=n(n)}function requireInquire(){if(hasRequiredInquire)return inquire_1;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(n){}return null}return hasRequiredInquire=1,inquire_1=inquire,inquire_1}var utf8$2={},hasRequiredUtf8,pool_1,hasRequiredPool,longbits,hasRequiredLongbits,hasRequiredMinimal;function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(n){var e=n;e.length=function(o){for(var d=0,I=0,f=0;f191&&f<224?v[L++]=(31&f)<<6|63&o[d++]:f>239&&f<365?(f=((7&f)<<18|(63&o[d++])<<12|(63&o[d++])<<6|63&o[d++])-65536,v[L++]=55296+(f>>10),v[L++]=56320+(1023&f)):v[L++]=(15&f)<<12|(63&o[d++])<<6|63&o[d++],L>8191&&((S||(S=[])).push(String.fromCharCode.apply(String,v)),L=0);return S?(L&&S.push(String.fromCharCode.apply(String,v.slice(0,L))),S.join("")):String.fromCharCode.apply(String,v.slice(0,L))},e.write=function(o,d,I){for(var f,S,v=I,L=0;L>6|192,d[I++]=63&f|128):(64512&f)==55296&&(64512&(S=o.charCodeAt(L+1)))==56320?(f=65536+((1023&f)<<10)+(1023&S),++L,d[I++]=f>>18|240,d[I++]=f>>12&63|128,d[I++]=f>>6&63|128,d[I++]=63&f|128):(d[I++]=f>>12|224,d[I++]=f>>6&63|128,d[I++]=63&f|128);return I-v}}(utf8$2)),utf8$2}function requirePool(){return hasRequiredPool?pool_1:(hasRequiredPool=1,pool_1=function(n,e,o){var d=o||8192,I=d>>>1,f=null,S=d;return function(v){if(v<1||v>I)return n(v);S+v>d&&(f=n(d),S=0);var L=e.call(f,S,S+=v);return 7&S&&(S=1+(7|S)),L}})}function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=e;var n=requireMinimal();function e(f,S){this.lo=f>>>0,this.hi=S>>>0}var o=e.zero=new e(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var d=e.zeroHash="\0\0\0\0\0\0\0\0";e.fromNumber=function(f){if(f===0)return o;var S=f<0;S&&(f=-f);var v=f>>>0,L=(f-v)/4294967296>>>0;return S&&(L=~L>>>0,v=~v>>>0,++v>4294967295&&(v=0,++L>4294967295&&(L=0))),new e(v,L)},e.from=function(f){if(typeof f=="number")return e.fromNumber(f);if(n.isString(f)){if(!n.Long)return e.fromNumber(parseInt(f,10));f=n.Long.fromString(f)}return f.low||f.high?new e(f.low>>>0,f.high>>>0):o},e.prototype.toNumber=function(f){if(!f&&this.hi>>>31){var S=1+~this.lo>>>0,v=~this.hi>>>0;return S||(v=v+1>>>0),-(S+4294967296*v)}return this.lo+4294967296*this.hi},e.prototype.toLong=function(f){return n.Long?new n.Long(0|this.lo,0|this.hi,!!f):{low:0|this.lo,high:0|this.hi,unsigned:!!f}};var I=String.prototype.charCodeAt;return e.fromHash=function(f){return f===d?o:new e((I.call(f,0)|I.call(f,1)<<8|I.call(f,2)<<16|I.call(f,3)<<24)>>>0,(I.call(f,4)|I.call(f,5)<<8|I.call(f,6)<<16|I.call(f,7)<<24)>>>0)},e.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},e.prototype.zzEncode=function(){var f=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^f)>>>0,this.lo=(this.lo<<1^f)>>>0,this},e.prototype.zzDecode=function(){var f=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^f)>>>0,this.hi=(this.hi>>>1^f)>>>0,this},e.prototype.length=function(){var f=this.lo,S=(this.lo>>>28|this.hi<<4)>>>0,v=this.hi>>>24;return v===0?S===0?f<16384?f<128?1:2:f<2097152?3:4:S<16384?S<128?5:6:S<2097152?7:8:v<128?9:10},longbits}function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(n){var e=n;function o(I,f,S){for(var v=Object.keys(f),L=0;L0)},e.Buffer=function(){try{var I=e.inquire("buffer").Buffer;return I.prototype.utf8Write?I:null}catch{return null}}(),e._Buffer_from=null,e._Buffer_allocUnsafe=null,e.newBuffer=function(I){return typeof I=="number"?e.Buffer?e._Buffer_allocUnsafe(I):new e.Array(I):e.Buffer?e._Buffer_from(I):typeof Uint8Array>"u"?I:new Uint8Array(I)},e.Array=typeof Uint8Array<"u"?Uint8Array:Array,e.Long=e.global.dcodeIO&&e.global.dcodeIO.Long||e.global.Long||e.inquire("long"),e.key2Re=/^true|false|0|1$/,e.key32Re=/^-?(?:0|[1-9][0-9]*)$/,e.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,e.longToHash=function(I){return I?e.LongBits.from(I).toHash():e.LongBits.zeroHash},e.longFromHash=function(I,f){var S=e.LongBits.fromHash(I);return e.Long?e.Long.fromBits(S.lo,S.hi,f):S.toNumber(!!f)},e.merge=o,e.lcFirst=function(I){return I.charAt(0).toLowerCase()+I.substring(1)},e.newError=d,e.ProtocolError=d("ProtocolError"),e.oneOfGetter=function(I){for(var f={},S=0;S-1;--L)if(f[v[L]]===1&&this[v[L]]!==void 0&&this[v[L]]!==null)return v[L]}},e.oneOfSetter=function(I){return function(f){for(var S=0;S127;)e[o++]=127&n|128,n>>>=7;e[o]=n}function VarintOp(n,e){this.len=n,this.next=void 0,this.val=e}function writeVarint64(n,e,o){for(;n.hi;)e[o++]=127&n.lo|128,n.lo=(n.lo>>>7|n.hi<<25)>>>0,n.hi>>>=7;for(;n.lo>127;)e[o++]=127&n.lo|128,n.lo=n.lo>>>7;e[o++]=n.lo}function writeFixed32(n,e,o){e[o]=255&n,e[o+1]=n>>>8&255,e[o+2]=n>>>16&255,e[o+3]=n>>>24}Writer$1.create=create$1(),Writer$1.alloc=function(n){return new util$4.Array(n)},util$4.Array!==Array&&(Writer$1.alloc=util$4.pool(Writer$1.alloc,util$4.Array.prototype.subarray)),Writer$1.prototype._push=function(n,e,o){return this.tail=this.tail.next=new Op(n,e,o),this.len+=e,this},VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer$1.prototype.uint32=function(n){return this.len+=(this.tail=this.tail.next=new VarintOp((n>>>=0)<128?1:n<16384?2:n<2097152?3:n<268435456?4:5,n)).len,this},Writer$1.prototype.int32=function(n){return n<0?this._push(writeVarint64,10,LongBits$1.fromNumber(n)):this.uint32(n)},Writer$1.prototype.sint32=function(n){return this.uint32((n<<1^n>>31)>>>0)},Writer$1.prototype.uint64=function(n){var e=LongBits$1.from(n);return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.int64=Writer$1.prototype.uint64,Writer$1.prototype.sint64=function(n){var e=LongBits$1.from(n).zzEncode();return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.bool=function(n){return this._push(writeByte,1,n?1:0)},Writer$1.prototype.fixed32=function(n){return this._push(writeFixed32,4,n>>>0)},Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32,Writer$1.prototype.fixed64=function(n){var e=LongBits$1.from(n);return this._push(writeFixed32,4,e.lo)._push(writeFixed32,4,e.hi)},Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64,Writer$1.prototype.float=function(n){return this._push(util$4.float.writeFloatLE,4,n)},Writer$1.prototype.double=function(n){return this._push(util$4.float.writeDoubleLE,8,n)};var writeBytes=util$4.Array.prototype.set?function(n,e,o){e.set(n,o)}:function(n,e,o){for(var d=0;d>>0;if(!e)return this._push(writeByte,1,0);if(util$4.isString(n)){var o=Writer$1.alloc(e=base64.length(n));base64.decode(n,o,0),n=o}return this.uint32(e)._push(writeBytes,e,n)},Writer$1.prototype.string=function(n){var e=utf8$1.length(n);return e?this.uint32(e)._push(utf8$1.write,e,n):this._push(writeByte,1,0)},Writer$1.prototype.fork=function(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this},Writer$1.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this},Writer$1.prototype.ldelim=function(){var n=this.head,e=this.tail,o=this.len;return this.reset().uint32(o),o&&(this.tail.next=n.next,this.tail=e,this.len+=o),this},Writer$1.prototype.finish=function(){for(var n=this.head.next,e=this.constructor.alloc(this.len),o=0;n;)n.fn(n.val,e,o),o+=n.len,n=n.next;return e},Writer$1._configure=function(n){BufferWriter$1=n,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$3=requireMinimal();function BufferWriter(){Writer.call(this)}function writeStringBuffer(n,e,o){n.length<40?util$3.utf8.write(n,e,o):e.utf8Write?e.utf8Write(n,o):e.write(n,o)}BufferWriter._configure=function(){BufferWriter.alloc=util$3._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$3.Buffer&&util$3.Buffer.prototype instanceof Uint8Array&&util$3.Buffer.prototype.set.name==="set"?function(n,e,o){e.set(n,o)}:function(n,e,o){if(n.copy)n.copy(e,o,0,n.length);else for(var d=0;d>>0;return this.uint32(e),e&&this._push(BufferWriter.writeBytesBuffer,e,n),this},BufferWriter.prototype.string=function(n){var e=util$3.Buffer.byteLength(n);return this.uint32(e),e&&this._push(writeStringBuffer,e,n),this},BufferWriter._configure();var reader=Reader$1,util$2=requireMinimal(),BufferReader$1,LongBits=util$2.LongBits,utf8=util$2.utf8;function indexOutOfRange(n,e){return RangeError("index out of range: "+n.pos+" + "+(e||1)+" > "+n.len)}function Reader$1(n){this.buf=n,this.pos=0,this.len=n.length}var create_array=typeof Uint8Array<"u"?function(n){if(n instanceof Uint8Array||Array.isArray(n))return new Reader$1(n);throw Error("illegal buffer")}:function(n){if(Array.isArray(n))return new Reader$1(n);throw Error("illegal buffer")},create=function(){return util$2.Buffer?function(n){return(Reader$1.create=function(e){return util$2.Buffer.isBuffer(e)?new BufferReader$1(e):create_array(e)})(n)}:create_array},value;function readLongVarint(){var n=new LongBits(0,0),e=0;if(!(this.len-this.pos>4)){for(;e<3;++e){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return n}return n.lo=(n.lo|(127&this.buf[this.pos++])<<7*e)>>>0,n}for(;e<4;++e)if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return n;if(n.lo=(n.lo|(127&this.buf[this.pos])<<28)>>>0,n.hi=(n.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return n;if(e=0,this.len-this.pos>4){for(;e<5;++e)if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return n}else for(;e<5;++e){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return n}throw Error("invalid varint encoding")}function readFixed32_end(n,e){return(n[e-4]|n[e-3]<<8|n[e-2]<<16|n[e-1]<<24)>>>0}function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.create=create(),Reader$1.prototype._slice=util$2.Array.prototype.subarray||util$2.Array.prototype.slice,Reader$1.prototype.uint32=(value=4294967295,function(){if(value=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128||(value=(value|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)||(value=(value|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)||(value=(value|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)||(value=(value|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128))return value;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return value}),Reader$1.prototype.int32=function(){return 0|this.uint32()},Reader$1.prototype.sint32=function(){var n=this.uint32();return n>>>1^-(1&n)},Reader$1.prototype.bool=function(){return this.uint32()!==0},Reader$1.prototype.fixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.sfixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return 0|readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.float=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var n=util$2.float.readFloatLE(this.buf,this.pos);return this.pos+=4,n},Reader$1.prototype.double=function(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var n=util$2.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,n},Reader$1.prototype.bytes=function(){var n=this.uint32(),e=this.pos,o=this.pos+n;if(o>this.len)throw indexOutOfRange(this,n);if(this.pos+=n,Array.isArray(this.buf))return this.buf.slice(e,o);if(e===o){var d=util$2.Buffer;return d?d.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,e,o)},Reader$1.prototype.string=function(){var n=this.bytes();return utf8.read(n,0,n.length)},Reader$1.prototype.skip=function(n){if(typeof n=="number"){if(this.pos+n>this.len)throw indexOutOfRange(this,n);this.pos+=n}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(128&this.buf[this.pos++]);return this},Reader$1.prototype.skipType=function(n){switch(n){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(n=7&this.uint32())!=4;)this.skipType(n);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+n+" at offset "+this.pos)}return this},Reader$1._configure=function(n){BufferReader$1=n,Reader$1.create=create(),BufferReader$1._configure();var e=util$2.Long?"toLong":"toNumber";util$2.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[e](!1)},uint64:function(){return readLongVarint.call(this)[e](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[e](!1)},fixed64:function(){return readFixed64.call(this)[e](!0)},sfixed64:function(){return readFixed64.call(this)[e](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$1=requireMinimal();function BufferReader(n){Reader.call(this,n)}BufferReader._configure=function(){util$1.Buffer&&(BufferReader.prototype._slice=util$1.Buffer.prototype.slice)},BufferReader.prototype.string=function(){var n=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+n,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+n,this.len))},BufferReader._configure();var rpc={},service=Service,util=requireMinimal();function Service(n,e,o){if(typeof n!="function")throw TypeError("rpcImpl must be a function");util.EventEmitter.call(this),this.rpcImpl=n,this.requestDelimited=!!e,this.responseDelimited=!!o}(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service,Service.prototype.rpcCall=function n(e,o,d,I,f){if(!I)throw TypeError("request must be specified");var S=this;if(!f)return util.asPromise(n,S,e,o,d,I);if(S.rpcImpl)try{return S.rpcImpl(e,o[S.requestDelimited?"encodeDelimited":"encode"](I).finish(),function(v,L){if(v)return S.emit("error",v,e),f(v);if(L!==null){if(!(L instanceof d))try{L=d[S.responseDelimited?"decodeDelimited":"decode"](L)}catch(x){return S.emit("error",x,e),f(x)}return S.emit("data",L,e),f(null,L)}S.end(!0)})}catch(v){return S.emit("error",v,e),void setTimeout(function(){f(v)},0)}else setTimeout(function(){f(Error("already ended"))},0)},Service.prototype.end=function(n){return this.rpcImpl&&(n||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},function(n){n.Service=service}(rpc);var roots={};(function(n){var e=n;function o(){e.util._configure(),e.Writer._configure(e.BufferWriter),e.Reader._configure(e.BufferReader)}e.build="minimal",e.Writer=writer,e.BufferWriter=writer_buffer,e.Reader=reader,e.BufferReader=reader_buffer,e.util=requireMinimal(),e.rpc=rpc,e.roots=roots,e.configure=o,o()})(indexMinimal);const Long=umdExports,minimal=indexMinimal;minimal.util.Long=Long,minimal.configure();var minimal_1=minimal;const $Reader$1=minimal_1.Reader,$Writer$2=minimal_1.Writer,$util$2=minimal_1.util,$root$2=minimal_1.roots.default||(minimal_1.roots.default={}),TopicMetadata=$root$2.TopicMetadata=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.topic=e.string();break;case 2:f.metadata=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/TopicMetadata"},n})(),StreamMessageProtocol=$root$2.StreamMessageProtocol=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.messageType=e.int32();break;case 2:f.payload=e.bytes();break;case 3:f.payloadLength=e.int32();break;case 4:f.sequence=e.int64();break;case 5:f.sendTs=e.int64();break;case 6:f.encrypted=e.bool();break;case 7:f.customType=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StreamMessageProtocol"},n})();let RTMStreamChannelStatusCode;(function(n){let e=function(o){return o[o.NO_ERROR=0]="NO_ERROR",o[o.PARTIALLY_SUCCESSFUL=1]="PARTIALLY_SUCCESSFUL",o[o.ALL_FAILED=2]="ALL_FAILED",o[o.UNKNOWN_ERROR=3]="UNKNOWN_ERROR",o[o.INVALID_PARAMS=4]="INVALID_PARAMS",o[o.REMOTE_USER_IS_NOT_PUBLISHED=5]="REMOTE_USER_IS_NOT_PUBLISHED",o[o.INVALID_REMOTE_USER=6]="INVALID_REMOTE_USER",o[o.TIMEOUT=7]="TIMEOUT",o[o.ALREADY_SUBSCRIBED_USER=20001]="ALREADY_SUBSCRIBED_USER",o[o.SUB_USER_EXCEED_LIMITATION=20003]="SUB_USER_EXCEED_LIMITATION",o[o.NOT_SUBSCRIBED_USER=20004]="NOT_SUBSCRIBED_USER",o}({});n.SubscribeTopicErrorCode=e})(RTMStreamChannelStatusCode||(RTMStreamChannelStatusCode={}));var isMobile$2={exports:{}};isMobile$2.exports=isMobile,isMobile$2.exports.isMobile=isMobile,isMobile$2.exports.default=isMobile;const mobileRE=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,notMobileRE=/CrOS/,tabletRE=/android|ipad|playbook|silk/i;function isMobile(n){n||(n={});let e=n.ua;if(e||typeof navigator>"u"||(e=navigator.userAgent),e&&e.headers&&typeof e.headers["user-agent"]=="string"&&(e=e.headers["user-agent"]),typeof e!="string")return!1;let o=mobileRE.test(e)&&!notMobileRE.test(e)||!!n.tablet&&tabletRE.test(e);return!o&&n.tablet&&n.featureDetect&&navigator&&navigator.maxTouchPoints>1&&e.indexOf("Macintosh")!==-1&&e.indexOf("Safari")!==-1&&(o=!0),o}var isMobileExports=isMobile$2.exports,isMobile$1=getDefaultExportFromCjs(isMobileExports),defaultProtocols=[],defaultWebsocketFactory=function(n,e){return new WebSocket(n,e)},normalClosureMessage="Normal closure";function makeWebSocketObservable(n,e){var o=e===void 0?{protocols:defaultProtocols,makeWebSocket:defaultWebsocketFactory}:e,d=o.protocols,I=d===void 0?defaultProtocols:d,f=o.makeWebSocket,S=f===void 0?defaultWebsocketFactory:f;return new Observable(function(v){var L,x=new Subject,F=S(n,I),Y=!1,j=!1,W=!1,re=function(){Y=!0},ee=function(he){if(L){re();var ue=new Error("Web socket message factory function called more than once");throw v.error(ue),ue}return L=he.subscribe(function(Ee){F.send(Ee)}),x};return F.onopen=function(){W=!0,j?(Y=!0,F.close()):v.next(ee)},F.onmessage=function(he){x.next(he.data)},F.onerror=function(he){re(),v.error(new Error(he.message))},F.onclose=function(he){Y||(re(),j?(v.complete(),x.complete()):v.error(new Error(he.code===1e3?normalClosureMessage:he.reason)))},function(){j=!0,L&&L.unsubscribe(),Y||(re(),W&&F.close())}})}const $Reader=minimal_1.Reader,$Writer$1=minimal_1.Writer,$util$1=minimal_1.util,$root$1=minimal_1.roots.default||(minimal_1.roots.default={}),Wrapper$1=$root$1.Wrapper=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.uri=e.int32();break;case 2:f.data=e.bytes();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Wrapper"},n})(),Ping3=$root$1.Ping3=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.ms=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Ping3"},n})(),Pong3=$root$1.Pong3=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.ms=e.uint64();break;case 3:f.serverMs=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Pong3"},n})(),UserJoin2=$root$1.UserJoin2=(()=>{function n(e){if(this.detail={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.seq=e.uint64();break;case 2:v.opt=e.uint64();break;case 3:v.instance=e.uint64();break;case 4:v.account=e.string();break;case 5:v.ticket=e.string();break;case 6:{v.detail===$util$1.emptyObject&&(v.detail={});let x=e.uint32()+e.pos;for(I=0,f=[];e.pos>>3){case 1:I=e.uint32();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.detail[I]=f;break}default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserJoin2"},n})(),UserResp2=$root$1.UserResp2=(()=>{function n(e){if(this.detail={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.seq=e.uint64();break;case 2:v.account=e.string();break;case 3:v.code=e.uint32();break;case 4:v.serverTs=e.uint64();break;case 5:{v.detail===$util$1.emptyObject&&(v.detail={});let x=e.uint32()+e.pos;for(I=0,f=[];e.pos>>3){case 1:I=e.uint32();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.detail[I]=f;break}default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserResp2"},n})(),UserQuit2=$root$1.UserQuit2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.flags=e.uint64():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserQuit2"},n})(),UserDrop=$root$1.UserDrop=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.code=e.uint32():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserDrop"},n})(),UserTicketNearlyExpire=$root$1.UserTicketNearlyExpire=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.expireTs=e.uint64();break;case 2:f.ticket=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserTicketNearlyExpire"},n})(),UserTicketNearlyExpire2=$root$1.UserTicketNearlyExpire2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.expireTs=e.uint64();break;case 2:f.ticket=e.string();break;case 3:f.resources=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserTicketNearlyExpire2"},n})(),UserRenewTokenReq=$root$1.UserRenewTokenReq=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.seq=e.uint64();break;case 3:f.account=e.string();break;case 4:f.ticket=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewTokenReq"},n})(),UserRenewTokenResp=$root$1.UserRenewTokenResp=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewTokenResp"},n})(),UserRenewToken2Req=$root$1.UserRenewToken2Req=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.seq=e.uint64();break;case 3:f.account=e.string();break;case 4:f.ticket=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewToken2Req"},n})(),UserRenewToken2Resp=$root$1.UserRenewToken2Resp=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.code=e.uint32();break;case 3:f.revoked=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewToken2Resp"},n})(),GroupEnter=$root$1.GroupEnter=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.account=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupEnter"},n})(),GroupLeave=$root$1.GroupLeave=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.account=e.string():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupLeave"},n})(),GroupLeave2=$root$1.GroupLeave2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.account=e.string();break;case 2:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupLeave2"},n})(),GroupReply=$root$1.GroupReply=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.account=e.string();break;case 3:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupReply"},n})(),GroupLeaveNotice=$root$1.GroupLeaveNotice=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.user=e.string();break;case 3:f.group=e.string();break;case 4:f.instance=e.uint64();break;case 5:f.size=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupLeaveNotice"},n})(),GroupEnterNotice=$root$1.GroupEnterNotice=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.user=e.string();break;case 3:f.group=e.string();break;case 4:f.instance=e.uint64();break;case 5:f.size=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupEnterNotice"},n})(),Message=$root$1.Message=(()=>{function n(e){if(this.MiscMap={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.instance=e.uint64();break;case 2:v.dialogue=e.uint64();break;case 3:v.sequence=e.uint64();break;case 4:v.options=e.uint64();break;case 5:v.src=e.string();break;case 6:v.dst=e.string();break;case 7:v.payload=e.bytes();break;case 8:{v.MiscMap===$util$1.emptyObject&&(v.MiscMap={});let x=e.uint32()+e.pos;for(I="",f=[];e.pos>>3){case 1:I=e.string();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.MiscMap[I]=f;break}case 9:v.ms=e.uint64();break;default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Message"},n})(),Ack=$root$1.Ack=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.dialogue=e.uint64();break;case 3:f.sequence=e.uint64();break;case 4:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Ack"},n})(),GroupDrop=$root$1.GroupDrop=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.account=e.string();break;case 2:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupDrop"},n})(),GroupAllUsersList=$root$1.GroupAllUsersList=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.group=e.string();break;case 3:f.pageSize=e.uint32();break;case 4:f.pageNumber=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupAllUsersList"},n})(),GroupAllUsersResult=$root$1.GroupAllUsersResult=(()=>{function n(e){if(this.memberInfos=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.group=e.string();break;case 3:f.totalSize=e.uint32();break;case 4:f.pageSize=e.uint32();break;case 5:f.pageNumber=e.uint32();break;case 6:f.memberInfos&&f.memberInfos.length||(f.memberInfos=[]),f.memberInfos.push($root$1.GroupAllUsersResult.MemberInfo.decode(e,e.uint32()));break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupAllUsersResult"},n.MemberInfo=function(){function e(o){if(o)for(let d=Object.keys(o),I=0;I>>3){case 1:S.account=o.string();break;case 2:S.ts=o.uint32();break;default:o.skipType(7&v)}}return S},e.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/GroupAllUsersResult.MemberInfo"},e}(),n})(),GroupCountNotice=$root$1.GroupCountNotice=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.sequence=e.uint64();break;case 3:f.group=e.string();break;case 4:f.size=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupCountNotice"},n})(),StateSubscribe=$root$1.StateSubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.sequence=e.uint64();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateSubscribe"},n})(),StateUpdate=$root$1.StateUpdate=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.allStates=e.string();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateUpdate"},n})(),StateSubscribeResult=$root$1.StateSubscribeResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.sequence=e.uint64();break;case 4:f.flags=e.uint64();break;case 5:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateSubscribeResult"},n})(),StateUnsubscribe=$root$1.StateUnsubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.sequence=e.uint64();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateUnsubscribe"},n})(),StateSet=$root$1.StateSet=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.author=e.string();break;case 3:f.value=e.string();break;case 4:f.lock=e.string();break;case 5:f.requestUuid=e.string();break;case 6:f.sequence=e.uint64();break;case 7:f.flags=e.uint64();break;case 8:f.baseRevision=e.uint64();break;case 9:f.lockRev=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateSet"},n})(),StateModify=$root$1.StateModify=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.author=e.string();break;case 3:f.value=e.string();break;case 4:f.lock=e.string();break;case 5:f.requestUuid=e.string();break;case 6:f.sequence=e.uint64();break;case 7:f.flags=e.uint64();break;case 8:f.baseRevision=e.uint64();break;case 9:f.lockRev=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateModify"},n})(),StateRequestResult=$root$1.StateRequestResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.requestUuid=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateRequestResult"},n})(),StateGet=$root$1.StateGet=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.lock=e.string();break;case 4:f.sequence=e.uint64();break;case 5:f.flags=e.uint64();break;case 6:f.lockRev=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateGet"},n})(),StateGetResult=$root$1.StateGetResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.allStates=e.string();break;case 4:f.sequence=e.uint64();break;case 5:f.flags=e.uint64();break;case 6:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateGetResult"},n})(),StateLockAcquire=$root$1.StateLockAcquire=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.ttl=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockAcquire"},n})(),StateLockRelease=$root$1.StateLockRelease=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockRelease"},n})(),StateLockAcquireResult=$root$1.StateLockAcquireResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.lockRev=e.uint64();break;case 6:f.code=e.uint32();break;case 7:f.reason=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockAcquireResult"},n})(),StateLockUpdate=$root$1.StateLockUpdate=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.flags=e.uint64();break;case 4:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockUpdate"},n})(),StateLockReleaseResult=$root$1.StateLockReleaseResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockReleaseResult"},n})(),StateLockDisable=$root$1.StateLockDisable=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.userId=e.string();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDisable"},n})(),StateLockDisableResult=$root$1.StateLockDisableResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDisableResult"},n})(),StateLockSubscribe=$root$1.StateLockSubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockSubscribe"},n})(),StateLockSubscribeResult=$root$1.StateLockSubscribeResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.code=e.uint32();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockSubscribeResult"},n})(),LockState=$root$1.LockState=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.lockName=e.string();break;case 2:f.lockState=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/LockState"},n})(),StateLockSubscribeEvent=$root$1.StateLockSubscribeEvent=(()=>{function n(e){if(this.lockStates=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lockStates&&f.lockStates.length||(f.lockStates=[]),f.lockStates.push($root$1.LockState.decode(e,e.uint32()));break;case 3:f.eventType=e.int32();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockSubscribeEvent"},n})(),StateLockUnsubscribe=$root$1.StateLockUnsubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockUnsubscribe"},n})(),StateLockCreate=$root$1.StateLockCreate=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.ttl=e.uint64();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockCreate"},n})(),StateLockCreateResult=$root$1.StateLockCreateResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.code=e.uint32();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockCreateResult"},n})(),StateLockDelete=$root$1.StateLockDelete=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDelete"},n})(),StateLockDeleteResult=$root$1.StateLockDeleteResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.code=e.uint32();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDeleteResult"},n})(),StateLockList=$root$1.StateLockList=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockList"},n})(),StateLockListResult=$root$1.StateLockListResult=(()=>{function n(e){if(this.lockStates=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.code=e.uint32();break;case 4:f.lockStates&&f.lockStates.length||(f.lockStates=[]),f.lockStates.push($root$1.LockState.decode(e,e.uint32()));break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockListResult"},n})(),SyncInit=$root$1.SyncInit=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.seq=e.uint64():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncInit"},n})(),SyncInit2=$root$1.SyncInit2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.seq=e.uint64():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncInit2"},n})(),SyncInitAck=$root$1.SyncInitAck=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncInitAck"},n})(),SyncFin=$root$1.SyncFin=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.code=e.uint32():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncFin"},n})(),StateHistoryGet2=$root$1.StateHistoryGet2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.uuid=e.string();break;case 2:f.startTime=e.uint64();break;case 3:f.endTime=e.uint64();break;case 4:f.dst=e.string();break;case 5:f.count=e.uint32();break;case 6:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateHistoryGet2"},n})(),HistoryRecord2=$root$1.HistoryRecord2=(()=>{function n(e){if(this.details={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.src=e.string();break;case 2:v.payload=e.bytes();break;case 3:v.options=e.uint64();break;case 4:v.ms=e.uint64();break;case 5:{v.details===$util$1.emptyObject&&(v.details={});let x=e.uint32()+e.pos;for(I="",f=[];e.pos>>3){case 1:I=e.string();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.details[I]=f;break}default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/HistoryRecord2"},n})(),StateHistoryGetResult2=$root$1.StateHistoryGetResult2=(()=>{function n(e){if(this.messages=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.uuid=e.string();break;case 2:f.startTime=e.uint64();break;case 3:f.endTime=e.uint64();break;case 4:f.dst=e.string();break;case 5:f.messages&&f.messages.length||(f.messages=[]),f.messages.push($root$1.HistoryRecord2.decode(e,e.uint32()));break;case 6:f.flags=e.uint64();break;case 7:f.code=e.uint32();break;case 8:f.more=e.bool();break;case 9:f.latestTime=e.uint64();break;case 10:f.oldestTime=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateHistoryGetResult2"},n})(),URI$1=$root$1.URI=(()=>{const n={},e=Object.create(n);return e[n[0]="Unknown"]=0,e[n[1]="PingUri"]=1,e[n[2]="PongUri"]=2,e[n[3]="Ping2Uri"]=3,e[n[4]="Ping3Uri"]=4,e[n[5]="Pong3Uri"]=5,e[n[11]="UserJoinUri"]=11,e[n[12]="UserRespUri"]=12,e[n[15]="UserTicketNearlyExpireUri"]=15,e[n[16]="UserRenewTokenReqUri"]=16,e[n[17]="UserRenewTokenRespUri"]=17,e[n[18]="UserJoin2Uri"]=18,e[n[19]="UserResp2Uri"]=19,e[n[21]="UserQuitUri"]=21,e[n[22]="UserDropUri"]=22,e[n[24]="UserQuit2Uri"]=24,e[n[25]="UserTicketNearlyExpire2Uri"]=25,e[n[26]="UserRenewToken2ReqUri"]=26,e[n[27]="UserRenewToken2RespUri"]=27,e[n[31]="GroupEnterUri"]=31,e[n[32]="GroupLeaveUri"]=32,e[n[33]="GroupReplyUri"]=33,e[n[35]="GroupDropUri"]=35,e[n[230]="GroupLeave2Uri"]=230,e[n[36]="GroupEnterNoticeUri"]=36,e[n[37]="GroupLeaveNoticeUri"]=37,e[n[38]="GroupEventNoticeUri"]=38,e[n[39]="GroupCountNoticeUri"]=39,e[n[41]="UserStatusListUri"]=41,e[n[42]="UserStatusResultUri"]=42,e[n[51]="GroupStatusListUri"]=51,e[n[52]="GroupStatusResultUri"]=52,e[n[55]="GroupAllUsersListUri"]=55,e[n[56]="GroupAllUsersResultUri"]=56,e[n[100]="MessageUri"]=100,e[n[101]="AckUri"]=101,e[n[201]="UserJoinNoticeUri"]=201,e[n[202]="UserQuitNoticeUri"]=202,e[n[203]="UserWaitNoticeUri"]=203,e[n[301]="UserAttributeGetUri"]=301,e[n[302]="UserAttributeRetUri"]=302,e[n[303]="UserAttributeSetUri"]=303,e[n[304]="UserAttributeModUri"]=304,e[n[305]="UserAttributeDelUri"]=305,e[n[307]="UserAttributeRspUri"]=307,e[n[308]="UserAttributeErrUri"]=308,e[n[311]="UserAttributeKeysGetUri"]=311,e[n[312]="UserAttributeKeysRetUri"]=312,e[n[351]="GroupAttributeGetUri"]=351,e[n[352]="GroupAttributeRetUri"]=352,e[n[353]="GroupAttributeSetUri"]=353,e[n[354]="GroupAttributeModUri"]=354,e[n[355]="GroupAttributeDelUri"]=355,e[n[356]="GroupAttributeAltUri"]=356,e[n[357]="GroupAttributeRspUri"]=357,e[n[358]="GroupAttributeErrUri"]=358,e[n[361]="GroupAttributeKeysGetUri"]=361,e[n[362]="GroupAttributeKeysRetUri"]=362,e[n[401]="SubscribeUserStatusUri"]=401,e[n[402]="UnsubscribeUserStatusUri"]=402,e[n[499]="SubscribeResponseUri"]=499,e[n[601]="StateSubscribeUri"]=601,e[n[602]="StateUpdateUri"]=602,e[n[603]="StateSubscribeResultUri"]=603,e[n[604]="StateUnsubscribeUri"]=604,e[n[605]="StateSetUri"]=605,e[n[606]="StateModifyUri"]=606,e[n[607]="StateRequestResultUri"]=607,e[n[608]="StateGetUri"]=608,e[n[609]="StateGetResultUri"]=609,e[n[610]="StateLockAcquireUri"]=610,e[n[611]="StateLockReleaseUri"]=611,e[n[612]="StateLockAcquireResultUri"]=612,e[n[613]="StateLockUpdateUri"]=613,e[n[614]="StateLockReleaseResultUri"]=614,e[n[615]="StateLockDisableUri"]=615,e[n[616]="StateLockDisableResultUri"]=616,e[n[617]="StateLockSubscribeUri"]=617,e[n[618]="StateLockSubscribeResultUri"]=618,e[n[619]="StateLockSubscribeEventUri"]=619,e[n[620]="StateLockUnsubscribeUri"]=620,e[n[621]="StateLockCreateUri"]=621,e[n[622]="StateLockCreateResultUri"]=622,e[n[623]="StateLockDeleteUri"]=623,e[n[624]="StateLockDeleteResultUri"]=624,e[n[625]="StateLockListUri"]=625,e[n[626]="StateLockListResultUri"]=626,e[n[750]="SyncPacketUri"]=750,e[n[751]="SyncInitUri"]=751,e[n[752]="SyncInitAckUri"]=752,e[n[753]="SyncFinUri"]=753,e[n[633]="StateHistoryGet2Uri"]=633,e[n[634]="StateHistoryGetResult2Uri"]=634,e[n[754]="SyncInit2Uri"]=754,e})(),UserJoinDetailKey=$root$1.UserJoinDetailKey=(()=>{const n={},e=Object.create(n);return e[n[0]="kDetailKeyUnused"]=0,e[n[1]="kDetailKeyConsoleConfig"]=1,e[n[2]="kDetailKeyKeepAliveInterval"]=2,e[n[3]="kDetailKeyKeepAliveBuffer"]=3,e})(),LockEventType=$root$1.LockEventType=(()=>{const n={},e=Object.create(n);return e[n[0]="LockUnknown"]=0,e[n[1]="LockAdded"]=1,e[n[2]="LockModified"]=2,e[n[3]="LockRemoved"]=3,e[n[4]="LockSnapshot"]=4,e})();var ProtoPackets$1=Object.freeze({__proto__:null,Ack,GroupAllUsersList,GroupAllUsersResult,GroupCountNotice,GroupDrop,GroupEnter,GroupEnterNotice,GroupLeave,GroupLeave2,GroupLeaveNotice,GroupReply,HistoryRecord2,LockEventType,LockState,Message,Ping3,Pong3,StateGet,StateGetResult,StateHistoryGet2,StateHistoryGetResult2,StateLockAcquire,StateLockAcquireResult,StateLockCreate,StateLockCreateResult,StateLockDelete,StateLockDeleteResult,StateLockDisable,StateLockDisableResult,StateLockList,StateLockListResult,StateLockRelease,StateLockReleaseResult,StateLockSubscribe,StateLockSubscribeEvent,StateLockSubscribeResult,StateLockUnsubscribe,StateLockUpdate,StateModify,StateRequestResult,StateSet,StateSubscribe,StateSubscribeResult,StateUnsubscribe,StateUpdate,SyncFin,SyncInit,SyncInit2,SyncInitAck,URI:URI$1,UserDrop,UserJoin2,UserJoinDetailKey,UserQuit2,UserRenewToken2Req,UserRenewToken2Resp,UserRenewTokenReq,UserRenewTokenResp,UserResp2,UserTicketNearlyExpire,UserTicketNearlyExpire2,Wrapper:Wrapper$1,default:$root$1});const{URI}=$root$1,{Wrapper}=ProtoPackets$1,PacketsAndURI=_objectWithoutProperties(ProtoPackets$1,["Wrapper"]),Packets=omit$1(PacketsAndURI,"URI","LockEventType","UserJoinDetailKey"),nameToUri=n=>{const e="".concat(n,"Uri"),o=URI[e];if(typeof o!="number"||o===0)throw new TypeError("Got Unknown URI Name");return o};function uriToPacketName(n){return URI[n].slice(0,-3)}function getWrappedByName(n,e){const o=nameToUri(n),d=Packets[n],I=new d(e),f=d.encode(I).finish();return new Wrapper({uri:o,data:f})}function getSyncWrapped(n){return new Wrapper({uri:URI.SyncPacketUri,data:n})}const getApUrl=n=>{const e=getPrivateSettingsPortAndDomains([n]),o=e.port,d=e.hostname[0];return"https://".concat(d).concat(o?":".concat(o):"","/api/v1")};function getEdgeDomain(n,e,o,d,I){if(getParameter("EDGE_USE_IP")===!0)return n;const f=o&&o[0],S=o&&o[1];if(!(!e||!S)&&validateIpPort(S))return S;if(f&&validateIpPort(f))return f;const v="".concat(n.split(".").join("-")),L="".concat(e?S||f||I||"sd-rtn.com":f||I||"agora.io");return d===1?"".concat(v,".").concat(L):"".concat(v,".edge.").concat(L)}const $Writer=minimal_1.Writer,$util=minimal_1.util,$root=minimal_1.roots.default||(minimal_1.roots.default={}),Session=$root.Session=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(this.linkServerList=[],e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(this.payloads=[],e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d=e.length&&(reportDomainIdx=0),e[reportDomainIdx]}catch(e){return console.error(e),""}}function initStorageCache(n){storageEvents.has(n)||storageEvents.set(n,[])}const decodeHexAsBytes=n=>{var e;const o=(e=n.match(/.{1,2}/g))===null||e===void 0?void 0:e.map(d=>parseInt(d,16));return o??[]},genAid=n=>{const e=decodeHexAsBytes(n),o=[e[0],e[4],e[8],e[12]];return o.reduce((I,f,S)=>I|f<<8*(o.length-1-S),0)>>>0};async function batchSendReport(n,e,o){var d;lastReportTime=Date.now();const I=o&&getPrivateSettingsPortAndDomains(o),f=I==null?void 0:I.port,S=I==null?void 0:I.hostname,v=(d=S==null?void 0:S.length)!==null&&d!==void 0?d:0,L=S&&S[0],x=S&&S[v-1],F=async function(Y){var j;let W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(W>3)return;const re=e&&!o?"https://".concat((j=areaConfig==null?void 0:areaConfig.PROXY_NGINX[0])!==null&&j!==void 0?j:"webrtc-cloud-proxy.sd-rtn.com","/rs/?h=").concat(Y,"&p=").concat(f??443,"&d=events/proto-raws"):"https://".concat(getReportDomain()||Y).concat(f?":".concat(f):"","/events/proto-raws");await postWithAbortSignal(re,{body:n,timeout:2e4,headers:{"Content-Type":"application/octet-stream"}}).catch(ee=>(reportDomainIdx++,F(Y,W+1)))};try{await F((areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN[0])||isValidEnvString(null)&&null||(L??EVENT_REPORT_DOMAIN))}catch{await F(areaConfig&&sample$1((areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN.length)>1?areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN.slice(1):areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN)||(x??EVENT_REPORT_BACKUP_DOMAIN))}}function triggerReport(n,e,o,d){let I=arguments.length>4&&arguments[4]!==void 0&&arguments[4];if(onlineDetector.isOnline===!1)return;const f="".concat(eventsCacheKeyPrefix).concat(n);initStorageCache(f);const S=storageEvents.get(f);if(S.length!==0&&(!(S.length0;){const v=S.length>maxReportCount?maxReportCount:S.length,L=S.splice(0,v);storageEvents.set(f,S);const x=Math.ceil(Date.now()/1e3);batchSendReport(ProtoRaws.encode(Object.assign({vid:Long$1.fromNumber(Number(n)),sendTs:Long$1.fromNumber(x),payloads:L},Number(n)===0?{aid:Long$1.fromNumber(genAid(e))}:{})).finish(),o,d)}}function initEventReportTimer(n,e,o,d){return setInterval(()=>{const I=Date.now()-lastReportTime>forceReportInterval;triggerReport(n,e,o,d,I)},reportInterval)}function clearEventReportTimer(n){clearInterval(n)}async function addReportEvents(n,e,o,d,I,f){const S=ProtoPackets[e].encode(o).finish(),v=ReportId[e],L={id:Long$1.fromNumber(v),msg:S},x="".concat(eventsCacheKeyPrefix).concat(f);initStorageCache(x);const F=storageEvents.get(x);F.push(L),storageEvents.set(x,F),F.length>=maxReportCount&&triggerReport(f,n,d,I,!0)}async function sendReport(n,e,o,d,I){arguments.length>5&&arguments[5]!==void 0&&arguments[5]&&await mockPromiseDelay(1e4);const f=I&&getPrivateSettingsPortAndDomains(I),S=f==null?void 0:f.hostname;addReportEvents(n,e,o,d,I,"0"),triggerReport("0",n,d,S,!0)}function getElapse(n){return n===void 0?Long$1.fromNumber(0):Long$1.fromNumber(Date.now()-n)}function rateLimit(n){let e=1,o=asapScheduler;(arguments.length<=1?0:arguments.length-1)==1?typeof(arguments.length<=1?void 0:arguments[1])=="number"?e=arguments.length<=1?void 0:arguments[1]:o=arguments.length<=1?void 0:arguments[1]:(arguments.length<=1?0:arguments.length-1)==2&&(e=arguments.length<=1?void 0:arguments[1],o=arguments.length<=2?void 0:arguments[2]);const d=e||1;return I=>I.pipe(scan((f,S)=>{const v=o.now(),L=v-n;if((f=f.filter(x=>x.until>L)).length>=d){const x=f[0],F=f[f.length-1],Y=x.until+n*Math.floor(f.length/d);f.push({delay:F.untilf[f.length-1]),concatMap(f=>{const S=of(f.value);return f.delay?S.pipe(delay(f.delay,o)):S}))}const SocketError=genError(),deprecatedURI=[URI$1.PingUri,URI$1.PongUri,URI$1.Ping2Uri,URI$1.UserJoinUri,URI$1.UserRespUri,URI$1.UserQuitUri,URI$1.GroupEventNoticeUri,URI$1.UserStatusListUri,URI$1.UserStatusResultUri,URI$1.GroupStatusListUri,URI$1.GroupStatusResultUri,URI$1.UserJoinNoticeUri,URI$1.UserQuitNoticeUri,URI$1.UserWaitNoticeUri,URI$1.UserAttributeGetUri,URI$1.UserAttributeRetUri,URI$1.UserAttributeSetUri,URI$1.UserAttributeModUri,URI$1.UserAttributeDelUri,URI$1.UserAttributeRspUri,URI$1.UserAttributeErrUri,URI$1.UserAttributeKeysGetUri,URI$1.UserAttributeKeysRetUri,URI$1.GroupAttributeGetUri,URI$1.GroupAttributeRetUri,URI$1.GroupAttributeSetUri,URI$1.GroupAttributeModUri,URI$1.GroupAttributeDelUri,URI$1.GroupAttributeAltUri,URI$1.GroupAttributeRspUri,URI$1.GroupAttributeErrUri,URI$1.GroupAttributeKeysGetUri,URI$1.GroupAttributeKeysRetUri,URI$1.SubscribeUserStatusUri,URI$1.UnsubscribeUserStatusUri,URI$1.SubscribeResponseUri];class Socket extends EventBase{get address(){return"".concat(this.ip,":").concat(this.EDGE_ENV_PORT[this.env])}constructor(e,o,d,I,f,S,v,L,x){var F;if(super(f,uniquePrefixedId("Socket-",f.loggerId)),_defineProperty$1(this,"isActiveClose",!1),_defineProperty$1(this,"loggedIn",!1),_defineProperty$1(this,"useNewDomain",void 0),_defineProperty$1(this,"attemptsSinceLastError",0),_defineProperty$1(this,"receivedPacket",new Subject),_defineProperty$1(this,"receivedSyncPacket",new Subject),_defineProperty$1(this,"open$",void 0),_defineProperty$1(this,"input$",new Subject),_defineProperty$1(this,"userJoin$",new Subject),_defineProperty$1(this,"EDGE_ENV_PORT",(F=getParameter("EDGE_ENV_PORT"))!==null&&F!==void 0?F:EDGE_ENV_PORT),_defineProperty$1(this,"message$",new Subject),_defineProperty$1(this,"socket$",void 0),_defineProperty$1(this,"toClose",new Subject),_defineProperty$1(this,"toReconnect",new Subject),_defineProperty$1(this,"sendLogger",void 0),_defineProperty$1(this,"receiveLogger",void 0),_defineProperty$1(this,"ip",void 0),_defineProperty$1(this,"env",void 0),_defineProperty$1(this,"ticket",void 0),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"edgeDomain",void 0),_defineProperty$1(this,"_getDomain",()=>{var re,ee;return getEdgeDomain(this.ip,this.useNewDomain,(re=this.context.rtmConfig.privateConfig)===null||re===void 0?void 0:re.originDomains,(ee=this.context.rtmConfig.privateConfig)===null||ee===void 0?void 0:ee.domainMode,this.edgeDomain)}),_defineProperty$1(this,"_getProxyDomain",re=>{var ee,he;return getEdgeDomain(re,!1,(ee=this.context.rtmConfig.privateConfig)===null||ee===void 0?void 0:ee.originDomains,(he=this.context.rtmConfig.privateConfig)===null||he===void 0?void 0:he.domainMode)}),_defineProperty$1(this,"socketReconnector",re=>re.pipe(catchError(ee=>this.isActiveClose?EMPTY:(this.attemptsSinceLastError+=1,this.logError("Env_".concat(this.env,"(").concat(this.name,"): socket connection error, errorInfo: %o"),ee),this.loggedIn=!1,this.attemptsSinceLastError>=2?(this.log("ENV_".concat(this.env,"(").concat(this.name,"): will emit socketFailure")),this.emit("socketFailure"),EMPTY):this.isActiveClose?EMPTY:(this.log("ENV_".concat(this.env,"(").concat(this.name,"): will emit reconnect")),this.emit("reconnect"),this.useNewDomain=!this.useNewDomain,throwError(ee)))),retryWhen(ee=>ee.pipe(switchMap(he=>(this.warn("The %s of Env %d reconnecting %s",this.name,this.env,he.message),timer(SOCKET_RETRY_INTERVAL))))))),this.ip=e,this.env=o,this.ticket=d,this.context=I,this.useNewDomain=L??Math.random()>=.5,this.edgeDomain=x??"",this.sendLogger=this.genLogger("RTM:MSG:SEND"),this.receiveLogger=this.genLogger("RTM:MSG:RECV"),o!==0&&o!==1)throw new SocketError({ILLEGAL_RTM_ENV:"The env number is out of rtm env count"});const Y=this.EDGE_ENV_PORT[o];this.log("Opening websocket address %s for the Env %d, %s",maskIp(this.ip),this.env,this.name),this.context.addReportEvents("LinkLoginRequest",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),destServerIp:this.ip,linkId:this.env});const j=merge(this.input$,this.userJoin$.pipe(rateLimit(LOGIN_QPS_LIMIT)),this.message$).pipe(map$1(re=>Wrapper$1.encode(re).finish())),W=merge(makeWebSocketObservable("",{protocols:[],makeWebSocket:()=>{let re;const ee=getParameter("REGISTRAR_USE_WS")?"ws":"wss";if(this.log("registrar websocket use ".concat(ee)),this.context.addReportEvents("LinkTcpEvent",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),destServerIp:e,action:"create",code:0,responseTime:0,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0,!0),linktype:4,linkflag:Long$1.fromNumber(0,!0),linkenv:this.env}),!this.context.rtmConfig.cloudProxy&&!this.context.socketUseProxy||this.context.enablePrivate){const ue=parseHost(this._getDomain(),Y),Ee="".concat(ee,"://").concat(ue.domain);re=new WebSocket("".concat(Ee,":").concat(ue.port))}else{var he;if(S.length===0)throw this.logError("No cloud proxy server to connect, env: %d, name: %s",this.env,this.name),new RtmUnavailableError("");const ue=v();this.log("Using cloud proxy server %s, env: %d, name: %s",ue,this.env,this.name);const Ee=parseHost(this._getProxyDomain(ue));let _e="".concat(ee,"://").concat(Ee.domain,"/");_e=appendQueryParameter(_e,"sid",this.context.sid),_e=appendQueryParameter(_e,"remote_port",Y.toString()),_e=appendQueryParameter(_e,"remote_ip",this.ip),_e=appendQueryParameter(_e,"token",this.context.key),re=new WebSocket("".concat(_e,":").concat((he=Ee.port)!==null&&he!==void 0?he:443))}return re instanceof WebSocket&&this.addWebSocketEventListeners(re),re.binaryType="arraybuffer",re}}),this.toReconnect);this.socket$=race(W,NEVER.pipe(timeout(7e3),catchError(re=>(isTimeout(re)?this.warn("ENV_".concat(this.env,"(").concat(this.name,"): socket open timed out")):this.logError("ENV_".concat(this.env,"(").concat(this.name,"): error occurs of opening socket: %o"),re),throwError(re))))).pipe(map$1(re=>{if(re instanceof Error)throw this.warn("Env_%d: Force reconnect the socket",this.env),re;return re(j).pipe(map$1(ee=>Wrapper$1.decode(new Uint8Array(ee))))}),this.socketReconnector),this.open$=this.socket$.pipe(tap(re=>{this.log("ENV_".concat(this.env,": Websocket opened, addr: ").concat(maskIp(this.address)),this.name),this.context.addReportEvents("LinkTcpEvent",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),destServerIp:e,action:"on_connect",code:0,responseTime:0,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0,!0),linktype:4,linkflag:Long$1.fromNumber(0,!0),linkenv:this.env}),re.subscribe(ee=>{let{data:he,uri:ue}=ee;if(ue===URI$1.SyncPacketUri)return getSyncPacketUri(he),void this.receivedSyncPacket.next(he);const Ee=uriToPacketName(ue),_e=Packets[Ee].decode(he);if(deprecatedURI.includes(ue))return void this.receiveLogger("Env_%d: %s, deprecated.",this.env,Ee);const De=mergeWith$1({},omit$1(_e,"toJSON"),(Ve,Ge)=>Ge instanceof Long$1?longToStringIfNeeded(Ge):Ge);let Fe=!1;if(_e instanceof GroupEnterNotice||_e instanceof GroupLeaveNotice){const{instance:Ve}=_e;Ve.lessThanOrEqual(UINT32_MAX)&&(Fe=!0)}if(_e instanceof Message||_e instanceof Ack){const{instance:Ve,dialogue:Ge,sequence:He}=_e;(Ge.lessThanOrEqual(UINT32_MAX)||Ve.lessThanOrEqual(UINT32_MAX)||He.lessThan(1))&&(Fe=!0)}Fe?this.warn("Env_%d: Illegal %s, abandoned %o",this.env,Ee,De):((getParameter("LOG_PING_PONG")||LOG_PING_PONG||Ee!=="Pong3")&&this.receiveLogger("Env_%d: %s %o",this.env,Ee,De),this.receivedPacket.next([Ee,_e]))},()=>{})}),mapTo(void 0),takeUntil(this.toClose),share())}addWebSocketEventListeners(e){e.addEventListener("close",o=>{this.log("ws onclose, code: %d, reason: '%s', env: %d, name: %s",o.code,o.reason,this.env,this.name)}),e.addEventListener("error",o=>{this.log("ws onerror, env: %d, name: %s, error: %o",this.env,this.name,o)}),e.addEventListener("open",()=>{this.log("ws open, env: %d, name: %s",this.env,this.name)})}sendPacket(e,o){if(getParameter("LOG_PING_PONG")||LOG_PING_PONG||e!=="Ping3"){const I=mapValues$1(o,f=>f instanceof Long$1?longToStringIfNeeded(f):f);this.sendLogger("Env_%d: %s %o",this.env,e,I)}const d=getWrappedByName(e,o);e==="UserJoin2"?this.userJoin$.next(d):e!=="Message"||this.isActiveClose?this.isActiveClose||this.input$.next(d):this.message$.next(d)}close(){this.log("Closing websocket by client, name: %s, env: %d",this.name,this.env),this.isActiveClose=!0,this.loggedIn=!1,this.toClose.next()}fromReceived(e){return this.receivedPacket.pipe(filter(o=>{let[d]=o;return d===e}),map$1(o=>{let[,d]=o;return d}))}sendSyncPacket(e){const o=getSyncWrapped(e),d=getSyncPacketUri(e);(d!==102&&d!==104||LOG_SYNC_PING_PONG)&&this.sendLogger("Env_%d: %s send sync packet uri: %d",this.env,"SyncPacket",d),this.input$.next(o)}forceReconnect(){this.toReconnect.next(new SocketError({FORCE_RECONNECTING:"Connection seems broken, try force reconnecting"}))}changeToReOpened(){this.attemptsSinceLastError=0}}const HEADER_PACKET_SERVICE_TYPE="X-Packet-Service-Type",HEADER_PACKET_URI="X-Packet-URI",HEADER_CONTENT_TYPE="Content-Type",HEADER_VALUE_JSON="application/json",URI_CLOUD_PROXY="90",URI_AP="69",RESP_URI=23,RETRY_DELAY_MS=2e3,UNI_LBS_FLAG=128,CLOUD_PROXY_FLAG=262144;class AccessPoint extends EventBase{constructor(e,o,d){super(o,"AccessPoint"),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"apFinish$",new Subject),_defineProperty$1(this,"failedAreas",new Set),_defineProperty$1(this,"replayedEdges",new Map),_defineProperty$1(this,"lastEdges",new Map),_defineProperty$1(this,"apDomainList",[]),_defineProperty$1(this,"_cloudProxyServers",[]),_defineProperty$1(this,"_onApInfo",I=>{let{rtmArea:f,vid:S}=I;this.context.rtmArea=f,this.context.vid=S,setVidParameter(this.context.appId,this.context.vid),this.context.initReportEvent()}),_defineProperty$1(this,"handleUniLbsError",(I,f)=>{const S=OperationName.login;let v=I;if(I.toString().length>4){const F=I.toString().padStart(8,"0"),Y=parseInt(F.slice(0,4),10),j=parseInt(F.slice(4,8),10);if(Y===UNI_LBS_CODE)v=j;else{if(Y===ACCESS_POINT_CODE&&(UniLbsNonRetryableErrorCodes.includes(j)||j>0&&j<200)){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED);return throwError(new RtmUnavailableError(OperationName.login,[re],{code:W,serverCode:v}))}if(Y===ACCESS_POINT_CODE&&j>=200)return this.warn("AP lowFour code is %s, NO_SERVICE_AVAILABLE.",j),EMPTY}}const L=v.toString();if(!Object.keys(ApResErrorCode).includes(L)){const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED),j=new RtmUnavailableError(S,[Y+"apCode is ".concat(v,", unexpected code.")],{code:F,serverCode:v});return j.serverCode=v,throwError(j)}const x=ApResErrorCode[L];switch(this.warn("%s: %s's error type is %s",this.name,f,x),x){case"INVALID_APP_ID":case"APP_ID_NO_ACTIVATED":case"DYNAMIC_KEY_NOT_ENABLED":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_APP_ID),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}case"NO_AUTHORIZED":case"DYNAMIC_ENABLED_BUT_STATIC_KEY":case"INVALID_USER_ID":case"INVALID_TOKEN_UID":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}case"TOKEN_TIMEOUT":case"TOKEN_EXPIRED":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}case"CANNOT_MEET_AREA_DEMAND":{const F=getAreaCodeByApUrl(f);Array.isArray(F)&&F.length>0&&F.forEach(ee=>this.failedAreas.add(ee));const Y=areaConfig===void 0?2:areaConfig.CODES.size,{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_NO_SERVER_RESOURCES);if(this.failedAreas.size===Y){const ee=new RtmInvalidArgumentError(S,[W+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],j);return ee.serverCode=v,throwError(ee)}const re=new RtmUnavailableError(S,[W+"".concat(this.name," ").concat(F.join(", ")," cannot meet requirement")],j);return re.serverCode=v,throwError(re)}case"INIT_APPID_MISMATCH":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID),j=new RtmUnavailableError(S,[Y],F);return j.serverCode=v,throwError(j)}case"NO_ANY_PRIVILEGE":case"NO_RTM_PRIVILEGE":case"NO_ACTIVE_PRODUCT_STATUS":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_NOT_AUTHORIZED),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}default:{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED),j=new RtmUnavailableError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}}}),_defineProperty$1(this,"generateShuffledUrls",(I,f)=>{const S=[...I],v=[...f],L=[],x=S.length+v.length;for(;L.length{var I;let f=this.apDomainList;const S=(I=this.context.rtmConfig.privateConfig)===null||I===void 0?void 0:I.accessPointHosts;return S!=null&&S.length&&(f=shuffle$1(S)),(this.context.rtmConfig.cloudProxy||this.context.socketUseProxy)&&(f=(areaConfig==null?void 0:areaConfig.PROXY_AP)||["ap-proxy-1.agora.io","ap-proxy-2.agora.io"]),zip(of(...f)).pipe(concatMap(v=>of(...v)))}),_defineProperty$1(this,"fetchCloudProxy",(I,f)=>{const S=uniquePrefixedId("AP-",this.loggerId);this.log("The AccessPoint requests %s(%s)",I,S);const v=new AbortController;this.apFinish$.subscribe(()=>v.abort());const L=getRandomInt(0,Number.MAX_SAFE_INTEGER);return defer(async()=>(this.log("%s request opid: %d",S,L),postWithAbortSignal(I,{headers:{[HEADER_PACKET_SERVICE_TYPE]:"0",[HEADER_PACKET_URI]:URI_CLOUD_PROXY,[HEADER_CONTENT_TYPE]:HEADER_VALUE_JSON},body:{sid:this.context.sid,opid:L,appid:this.context.appId,client_ts:Math.ceil(Date.now()/1e3),request_bodies:[{uri:RESP_URI-1,buffer:{service_ids:[7,16],key:f??this.context.key,cname:this.context.uid,uid:0,detail:_objectSpread2(_objectSpread2({},areaConfig===void 0?{11:[AreaCodeMap.CHINA,AreaCodeMap.GLOBAL].join(",")}:{11:Array.from(areaConfig.CODES).map(x=>x===AreaCodeMap.OVERSEA?"".concat(AreaCodeMap.ASIA,",").concat(AreaCodeMap.EUROPE,",").concat(AreaCodeMap.AFRICA,",").concat(AreaCodeMap.NORTH_AMERICA,",").concat(AreaCodeMap.SOUTH_AMERICA,",").concat(AreaCodeMap.OCEANIA):x).join(",")}),{12:"1",[AP_DETAIL_KEY_BUSINESS_TYPE]:"RTM2",[AP_DETAIL_KEY_APP_ID]:this.context.appId})}}]},signal:v.signal}))).pipe(catchError(x=>(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:10,opid:L,area:"",isp:""}),x.name!=="AbortError"&&this.logError("The ProxyAP request reg server failure, %s",x),EMPTY)),mergeMap(async x=>{var F;let{responseText:Y}=x;const j=JSON.parse(Y);this.log("The %s response is %o",S,j);const{response_body:W}=j;if(W===void 0||W.length===0||W.some(ct=>{var ht;return((ht=ct.buffer)===null||ht===void 0?void 0:ht.code)===void 0||ct.uri!==RESP_URI})){const{code:ct,reason:ht}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED);return throwError(new RtmUnavailableError(OperationName.login,[ht+"cloud proxy response_body not valid"],ct))}const re=W.filter(ct=>ct.buffer.code!==0);if(re.length!==0){const ct=re.find(ht=>ht.buffer.flag===UNI_LBS_FLAG);var ee,he,ue,Ee,_e;return ct!==void 0?(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:(ee=ct==null||(he=ct.buffer)===null||he===void 0?void 0:he.code)!==null&&ee!==void 0?ee:0,opid:L,area:this.context.rtmArea,isp:(ue=(Ee=ct.buffer)===null||Ee===void 0||(Ee=Ee.detail)===null||Ee===void 0?void 0:Ee[2])!==null&&ue!==void 0?ue:""}),this.handleUniLbsError(ct.buffer.code,I)):(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:(_e=re[0].buffer.code)!==null&&_e!==void 0?_e:0,opid:L,area:this.context.rtmArea,isp:""}),this.logError("cloud proxy error response"),this.handleUniLbsError(re[0].buffer.code,I))}let De=[];for(let ct=0;ct{let{ip:ar}=vt;isValidIp(ar)&&this._cloudProxyServers.indexOf(ar)===-1&&(this.log("got cloud proxy server: %s",ar),this._cloudProxyServers.push(ar))});else if((ht==null||(Ve=ht.buffer)===null||Ve===void 0?void 0:Ve.flag)===UNI_LBS_FLAG){var At,Bt,Tt,rt,ye,lt;for(let vt=0,ar=ht.buffer.edges_services;vtvr.ip===jt.ip)||De.push({ip:jt.ip,ticket:ht.buffer.cert})}this._onApInfo({rtmArea:(At=(Bt=ht.buffer)===null||Bt===void 0||(Bt=Bt.detail)===null||Bt===void 0?void 0:Bt[9])!==null&&At!==void 0?At:"",vid:(Tt=(rt=ht.buffer)===null||rt===void 0||(rt=rt.detail)===null||rt===void 0?void 0:rt[8])!==null&&Tt!==void 0?Tt:""}),this._reportApEvent({apAddr:I,edgeInfos:De,serverErrCode:ht.buffer.code,opid:L,area:this.context.rtmArea,isp:(ye=(lt=ht.buffer)===null||lt===void 0||(lt=lt.detail)===null||lt===void 0?void 0:lt[2])!==null&&ye!==void 0?ye:""})}}this.resetApDomainList();const Yt=(F=getParameter("EDGE_IP_LIST"))!==null&&F!==void 0?F:[];return this.log("registrar EDGE_IP_LIST: ".concat(Yt," ")),Yt!=null&&Yt.length&&(De=Yt.map(ct=>({ip:ct,ticket:De[0].ticket}))),De.forEach(ct=>{this.replayedEdges.set(ct.ip,ct)}),of(...De,queueScheduler)}),catchError(x=>isRtmError(x)?throwError(x):EMPTY),mergeAll(),filter(x=>x!==void 0&&typeof x.ip=="string"&&typeof x.ticket=="string"&&isValidIp(x.ip)))}),_defineProperty$1(this,"fetchAp",(I,f)=>{const S=uniquePrefixedId("AP-",this.loggerId);this.log("The AccessPoint requests %s(%s)",I,S);const v=new AbortController;this.apFinish$.subscribe(()=>v.abort());const L=getRandomInt(0,Number.MAX_SAFE_INTEGER);return defer(async()=>(this.log("%s request opid: %d",S,L),postWithAbortSignal(I,{headers:{[HEADER_PACKET_SERVICE_TYPE]:"0",[HEADER_PACKET_URI]:URI_AP,[HEADER_CONTENT_TYPE]:HEADER_VALUE_JSON},body:{flag:UNI_LBS_FLAG,opid:L,key:f||this.context.key,cname:this.context.uid,detail:_objectSpread2(_objectSpread2({},areaConfig===void 0?{11:[AreaCodeMap.CHINA,AreaCodeMap.GLOBAL].join(",")}:{11:Array.from(areaConfig.CODES).map(x=>x===AreaCodeMap.OVERSEA?"".concat(AreaCodeMap.ASIA,",").concat(AreaCodeMap.EUROPE,",").concat(AreaCodeMap.AFRICA,",").concat(AreaCodeMap.NORTH_AMERICA,",").concat(AreaCodeMap.SOUTH_AMERICA,",").concat(AreaCodeMap.OCEANIA):x).join(",")}),{12:"1",[AP_DETAIL_KEY_BUSINESS_TYPE]:"RTM2",[AP_DETAIL_KEY_APP_ID]:this.context.appId}),uid:0,sid:this.context.sid},signal:v.signal}))).pipe(catchError(x=>(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:10,opid:L,area:"",isp:""}),x.name!=="AbortError"&&this.logError("The AP request reg server failure, %s",x),EMPTY)),mergeMap(async x=>{var F,Y,j;let{responseText:W}=x;const re=JSON.parse(W);this.log("The %s response is %o",S,re);const{code:ee,addresses:he,detail:ue}=re;if(this._onApInfo({rtmArea:(F=ue==null?void 0:ue[9])!==null&&F!==void 0?F:"",vid:(Y=ue[8])!==null&&Y!==void 0?Y:""}),this._reportApEvent({apAddr:I,edgeInfos:he,serverErrCode:ee,opid:L,area:ue[9],isp:ue[2]}),ee!==0)return this.handleUniLbsError(ee,I);this.resetApDomainList();let Ee=he;const _e=(j=getParameter("EDGE_IP_LIST"))!==null&&j!==void 0?j:[];return this.log("registrar EDGE_IP_LIST: ".concat(_e.map(maskIp))),_e!=null&&_e.length&&(Ee=_e.map(De=>({ip:De,ticket:Ee[0].ticket}))),Ee.length===0?throwError(new Error("No available edge address to connect")):(Ee.forEach(De=>{this.replayedEdges.set(De.ip,De)}),of(...Ee,queueScheduler))}),mergeAll(),catchError(x=>isRtmError(x)?throwError(x):EMPTY),filter(x=>x!==void 0&&typeof x.ip=="string"&&typeof x.ticket=="string"))}),this.context=e,this._cloudProxyServers=d,this.resetApDomainList()}_reportApEvent(e){let{apAddr:o,edgeInfos:d,serverErrCode:I,opid:f,area:S,isp:v}=e;this.context.addReportEvents("ApEvent",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),apAddr:o,linkServerList:d.map(L=>L.ip),serverErrCode:I,flag:128,envId:0,opId:Long$1.fromNumber(f),errCode:0,area:S,isp:v,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),localWanIp:"",responseTime:0,apLinkType:"tcp",resultcount:d.length,validresultcount:d.length,newvalidresultcount:d.length})}getApUrl$(){var e,o;return this.generateUrlStream().pipe(take(((e=areaConfig==null||(o=areaConfig.CODES)===null||o===void 0?void 0:o.size)!==null&&e!==void 0?e:0)||Number(getParameter("CONCURRENT_AP_NUM"))||AP_CONCURRENT_REQ_NUM),throwIfEmpty(()=>AccessPoint.runOutOfUrlSymbol),catchError((d,I)=>d===AccessPoint.runOutOfUrlSymbol?I:throwError(d)))}genApEdgeInfo$(e){return this.replayedEdges.size===0?(this.log("The AccessPoint starts to query edge info"),e||this.context.sendReport("ApRequest",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),apAddr:"",opId:Long$1.fromNumber(0),envId:0,flag:128,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),rtmapflag:Long$1.fromNumber(0)}),timer(0,RETRY_DELAY_MS).pipe(take(1),mergeMap(()=>this.getApUrl$()),mergeMap(o=>this.context.rtmConfig.cloudProxy||this.context.socketUseProxy?this.fetchCloudProxy(getApUrl(o)):(this.updateApDomainList(o),this.apDomainList.length===0&&this.resetApDomainList(),this.fetchAp(getApUrl(o)))),catchError(o=>(o instanceof TimeoutError&&this.warn("AP request timeout"),throwError(o))),distinct(o=>{let{ip:d}=o;return d}),takeUntil(this.apFinish$))):of(...this.replayedEdges.values())}updateApDomainList(e){for(let o=this.apDomainList.length-1;o>=0;o--)if(this.apDomainList[o]===e){this.apDomainList.splice(o,1);break}}resetApDomainList(){this.apDomainList=[];const e=getParameter("AP_DOMAIN_LIST");e!=null&&e.length&&this.apDomainList.push(...e),areaConfig?(this.apDomainList.push(...shuffle$1(areaConfig.AP_DOMAINS)),this.apDomainList.push(...shuffle$1(areaConfig.AP_BACKUP_DOMAINS))):(this.apDomainList.push(...this.generateShuffledUrls(AP_DOMAINS_IO,AP_DOMAINS_NEW)),this.apDomainList.push(...this.generateShuffledUrls(AP_BACKUP_DOMAINS_IO,AP_BACKUP_DOMAINS_NEW)))}isEdgeRunOut(){return this.replayedEdges.size===0}banIp(e){this.warn("edge %s lost",e),this.replayedEdges.delete(e),this.isEdgeRunOut()&&this.warn("run out of edge")}clearEdges4RenewToken(){this.lastEdges.clear(),this.replayedEdges.forEach((e,o)=>{this.lastEdges.set(o,_objectSpread2({},e))}),this.replayedEdges.clear()}recoverEdges4RenewToken(){this.replayedEdges.clear(),this.lastEdges.forEach((e,o)=>{this.replayedEdges.set(o,_objectSpread2({},e))}),this.lastEdges.clear()}clearUp(){this.failedAreas.clear()}}_defineProperty$1(AccessPoint,"runOutOfUrlSymbol",Symbol("AP urls are used up"));const ConnectionError=genError();class Connection extends EventBase{get firstEnv(){return this._firstEnv}constructor(e,o){var d;super(o,"Connection"),_defineProperty$1(this,"apClient",void 0),_defineProperty$1(this,"startApRequest$",new Subject),_defineProperty$1(this,"endLogin$",new Subject),_defineProperty$1(this,"lastOpenSockets",[new ReplaySubject(1),new ReplaySubject(1)]),_defineProperty$1(this,"EDGE_ENV_PORT",(d=getParameter("EDGE_ENV_PORT"))!==null&&d!==void 0?d:EDGE_ENV_PORT),_defineProperty$1(this,"curOpenSockets",[void 0,void 0]),_defineProperty$1(this,"ipIterator",0),_defineProperty$1(this,"loginSocketOpenFailureCount",0),_defineProperty$1(this,"_firstEnv",Math.random()>=.5?1:0),_defineProperty$1(this,"firstOpenKeeperSubject",new Subject),_defineProperty$1(this,"secondOpenKeeperSubject",new Subject),_defineProperty$1(this,"blacklistedIP",{}),_defineProperty$1(this,"openKeeperSubs",[void 0,void 0]),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"logger",void 0),_defineProperty$1(this,"_cloudProxyServers",[]),_defineProperty$1(this,"_proxyIdx",0),_defineProperty$1(this,"edgeIdx",0),this.context=e,this.logger=o,this.apClient=new AccessPoint(this.context,o,this._cloudProxyServers),this.apClient.apFinish$.subscribe(()=>{this.log("Ap client fetch finished")})}genProxyIp(){const e=this._proxyIdx,o=this._cloudProxyServers;return this._proxyIdx=o.length>0?(e+1)%o.length:0,o[e]}getEdgeDomain(){try{var e;const o=(e=getParameter("EDGE_DOMAIN_TLD_LIST"))!==null&&e!==void 0?e:[];this.edgeIdx>=o.length&&(this.edgeIdx=0);const d=o[this.edgeIdx];return this.edgeIdx++,d}catch(o){return console.error(o),""}}makeSocket(e,o,d){const{ip:I,ticket:f}=e;this.emit("syncTicketUpdated",{ticket:atob(f)});const S=this.getEdgeDomain(),v=new Socket(I,o,f,this.context,this.logger,this._cloudProxyServers,this.genProxyIp.bind(this),d,S);return v.once("socketFailure",()=>this.onSocketFailure(v)),v}createFirstSocketOpener(){let e=!1;return this.startApRequest$.pipe(tap(()=>{this.log("start request ap by genApEdgeInfo$")}),switchMap(()=>this.apClient.genApEdgeInfo$().pipe(retryWhen(o=>o.pipe(tap(d=>{if(isRtmError(d))throw d}),delay(2e3),takeUntil(this.apClient.apFinish$))),filter(o=>{var d;return((d=this.blacklistedIP[o.ip])!==null&&d!==void 0?d:0)<=1}),tap(o=>{this.log("An edge info got %o",o)}),tap({error:o=>{this.logError("get edge info error %o",o),this.emit("connectionInitFailure",o)}}),finalize(()=>{this.apClient.clearUp()}))),takeUntil(this.endLogin$)).pipe(mergeMap(o=>{if(o===void 0)return throwError(new Error("create first socket occurs Invalid edge info"));this.log("create first socket ip: %s, env: %s",maskIp(o.ip),this._firstEnv);const d=this.makeSocket(o,this._firstEnv,e);if(this._firstEnv=this._firstEnv===1?0:1,getParameter("ENABLE_EDGE_AUTO_FALLBACK")&&!this.context.rtmConfig.cloudProxy){const I=Date.now();let f;d.on("reconnect",()=>{this.loginSocketOpenFailureCount+=1,f!=null||(f=Date.now()-I),f<500&&this.loginSocketOpenFailureCount>1&&this.context.rtmConfig.privateConfig===void 0&&this.context.socketUseProxy===!0?this.context.socketUseProxy=!1:f<500&&this.loginSocketOpenFailureCount>1&&this.context.rtmConfig.privateConfig===void 0&&(this.context.socketUseProxy=!0)})}return e=!d.useNewDomain,d.open$.pipe(mapTo(d))}),takeUntil(this.apClient.apFinish$),take(1),tap(o=>{this.log("The websocket of first ENV_%d opened to %s:%d",o.env,maskIp(o.ip),this.EDGE_ENV_PORT[o.env]),this.curOpenSockets[o.env]=o,this.lastOpenSockets[o.env].next(o),this._firstEnv=o.env,this.openSecondSocket(o.env,o.ip,o.useNewDomain)}),share(),mergeMap(o=>o.open$.pipe(tap(()=>{this.log("The websocket of first ENV_%d re-opened to %s:%d",o.env,maskIp(o.ip),this.EDGE_ENV_PORT[o.env]),o.changeToReOpened(),this.curOpenSockets[o.env]=o,this.lastOpenSockets[o.env].next(o)}))),tap(()=>{this.log("first socket re opened")}))}onSocketFailure(e){this.apClient.banIp(e.ip),e.close();const o=[0,1].filter(I=>I!==e.env)[0],d=this.curOpenSockets[o];this.log("ENV_".concat(e.env,"(").concat(e.name,"): socketFailure received, otherSocketState: ").concat(d==null?void 0:d.loggedIn)),d&&d.loggedIn?this.reopenSocketWithApRequest(e.env):(d&&this.closeSocket(d.env),this.log("ENV_".concat(e.env,"(").concat(e.name,"): will emit connectionFailure")),this.emit("connectionFailure"))}openSecondSocket(e,o,d){const I=e===1?0:1,f=this.apClient.genApEdgeInfo$().pipe(reduce((v,L)=>[...v,L],[]),map$1(v=>sortBy$1(v,L=>{let{ip:x}=L;return calIpDistance(o,x)}).slice(-1)[0]),mergeMap(v=>{if(v===void 0)return throwError(new Error("create second socket occurs Invalid edge info"));this.log("create second socket. ip: %s, env: %s",maskIp(v.ip),I);const L=this.makeSocket(v,I,d);return L.open$.pipe(tap(()=>{this.lastOpenSockets[I].next(L),this.curOpenSockets[I]=L}),mergeMap((x,F)=>(this.log("The websocket of second ENV_%d %s to %s:%d",L.env,F>0?"re-opened":"opened",maskIp(L.ip),this.EDGE_ENV_PORT[L.env]),EMPTY)))}),share()),S=this.secondOpenKeeperSubject.pipe(switchAll());this.openKeeperSubs[I]=S.subscribe({error:this.logError}),this.secondOpenKeeperSubject.next(f)}reopenSocketWithApRequest(e){const o=[0,1].filter(v=>v!==e)[0],d=this.curOpenSockets[o];if(d===void 0)return;const I=d.ip;let f;const S=(v=>v.pipe(throwIfEmpty(()=>new ConnectionError({AP_NO_AVAILABLE_EDGE:"No available edge address to connect"})),retryWhen(L=>L.pipe(tap(x=>{if(x.code!==RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED)if(x.code!==RTMErrorCode.RTM_ERROR_LOGIN_NOT_AUTHORIZED){if(isRtmError(x))throw x}else this.apClient.apFinish$.next(void 0);else this.apClient.apFinish$.next(void 0)}),delay(getParameter("RECONNECTING_AP_INTERVAL")))),tap(L=>{this.log("An edge info got %o",L)}),finalize(()=>{this.apClient.clearUp()})))(this.apClient.genApEdgeInfo$()).pipe(reduce((v,L)=>[...v,L],[]),map$1(v=>{const L=sortBy$1(v,x=>{let{ip:F}=x;return calIpDistance(I,F)});return L.length-1>=this.ipIterator?L.slice(-this.ipIterator++-1)[0]:(this.ipIterator=0,L.slice(-1)[0])}),throwIfEmpty(),mergeMap(v=>{if(v===void 0)return throwError(new Error("reopen socket with ap request occurs Invalid edge info"));const L=this.makeSocket(v,e,f);return f=!L.useNewDomain,L.open$.pipe(mapTo(L))}),take(1),tap(v=>{this.log("The websocket of ENV_%d opened to %s:%d using ap",v.env,maskIp(v.ip),this.EDGE_ENV_PORT[v.env]),this.curOpenSockets[v.env]=v,this.lastOpenSockets[v.env].next(v)}),mergeMap(v=>v.open$.pipe(tap(()=>{this.log("The websocket of ENV_%d re-opened to %s:%d using ap",v.env,maskIp(v.ip),this.EDGE_ENV_PORT[v.env]),v.changeToReOpened(),this.curOpenSockets[e]=v,this.lastOpenSockets[e].next(v)}))),share());e===this._firstEnv?(this.firstOpenKeeperSubject.next(S),this.log("reopenSocketWithAp, and start openSocket$, firstOpenKeeperSubject emit next")):this.secondOpenKeeperSubject.next(S)}initConnection(){this.openKeeperSubs.forEach(d=>{d==null||d.unsubscribe()}),this.log("initConnection, and start firstSocketOpener, firstOpenKeeperSubject emit next");const e=this.createFirstSocketOpener(),o=this.firstOpenKeeperSubject.pipe(switchAll());this.openKeeperSubs[this._firstEnv]=o.subscribe(),this.firstOpenKeeperSubject.next(e),this.startApRequest$.next(void 0)}closeSocket(e){if(![0,1].includes(e))throw new CommonError({INVALID_ENV:"The env argument is not 0 or 1"});const o=this.openKeeperSubs[e];o==null||o.unsubscribe(),this.openKeeperSubs[e]=void 0;const d=this.curOpenSockets[e];d==null||d.close(),this.curOpenSockets[e]=void 0}waitClosing(e){const o=e.isActiveClose;return e.isActiveClose=!0,o===!0?EMPTY:e.open$.pipe(ignoreElements(),catchError(d=>d.message===normalClosureMessage?EMPTY:throwError(d)),timeout(LOGOUT_SOCKET_CLOSE_TIMEOUT),catchError(d=>d instanceof TimeoutError?(this.warn("Force closing the ENV_%d connection",e.env),EMPTY):throwError(d)))}stopLogin(){this.endLogin$.next()}banIP(e){var o;this.log("ip banned",e);const d=(o=this.blacklistedIP[e])!==null&&o!==void 0?o:0;this.blacklistedIP[e]=d+1,d>0&&this.apClient.banIp(e)}}let AckCodeType=function(n){return n[n.kAckMiss=1]="kAckMiss",n[n.kAckPeerOffline=8]="kAckPeerOffline",n[n.kAckNoPrivilege=9]="kAckNoPrivilege",n}({}),RegServerErrorCode=function(n){return n[n.kOk=0]="kOk",n[n.kFail=1]="kFail",n[n.kTimestampExpired=2]="kTimestampExpired",n[n.kChannelPermissionInvalid=3]="kChannelPermissionInvalid",n[n.kCertificateInvalid=4]="kCertificateInvalid",n[n.kChannelNameEmpty=5]="kChannelNameEmpty",n[n.kChannelNotFound=6]="kChannelNotFound",n[n.kTicketInvalid=7]="kTicketInvalid",n[n.kChannelConflicted=8]="kChannelConflicted",n[n.kServiceNotReady=9]="kServiceNotReady",n[n.kServiceTooHeavy=10]="kServiceTooHeavy",n[n.kRejoined=11]="kRejoined",n[n.kNoNeedToChange=13]="kNoNeedToChange",n[n.kUidBanned=14]="kUidBanned",n[n.kIpBanned=15]="kIpBanned",n[n.kChannelBanned=16]="kChannelBanned",n[n.kTicketParseError=17]="kTicketParseError",n[n.kTicketIllegalLength=18]="kTicketIllegalLength",n[n.kTicketNotAuth=19]="kTicketNotAuth",n[n.kTicketUnknownVersion=20]="kTicketUnknownVersion",n[n.kLoginedFromRemote=21]="kLoginedFromRemote",n[n.kGwychFailed=23]="kGwychFailed",n[n.kTooManyBroadcasters=24]="kTooManyBroadcasters",n[n.kServerDown=25]="kServerDown",n[n.kResourceHeldByOther=26]="kResourceHeldByOther",n[n.kRtm2GwychFailed=27]="kRtm2GwychFailed",n[n.kAutoRebalance=28]="kAutoRebalance",n[n.kBannedForExceedingQuota=101]="kBannedForExceedingQuota",n[n.kRequestPending=65535]="kRequestPending",n[n.kVoid=1e4]="kVoid",n[n.kConnectionTimeout=10001]="kConnectionTimeout",n[n.kInvalidPacket=10002]="kInvalidPacket",n[n.kAlreadyJoined=10003]="kAlreadyJoined",n[n.kJoinTimeout=10004]="kJoinTimeout",n[n.kRejoinFailed=10005]="kRejoinFailed",n[n.kJoinTooFrequently=10006]="kJoinTooFrequently",n[n.kCompressionMethodUnrecognized=10007]="kCompressionMethodUnrecognized",n[n.kUserNotFound=10008]="kUserNotFound",n[n.kUserInstanceConflict=10009]="kUserInstanceConflict",n[n.kContentOversized=10010]="kContentOversized",n[n.kRequestTooFrequently=10011]="kRequestTooFrequently",n[n.kDamagedPacket=10012]="kDamagedPacket",n[n.kInvalidRequestParameters=10013]="kInvalidRequestParameters",n[n.kServerInternalError=10014]="kServerInternalError",n[n.kContentNotFound=10015]="kContentNotFound",n[n.kIncompatible=10016]="kIncompatible",n[n.kEdgeInDegradation=10017]="kEdgeInDegradation",n[n.kUserBannedByRule=10018]="kUserBannedByRule",n[n.kUserBannedByAuth=10019]="kUserBannedByAuth",n[n.kGroupUserBannedByAuth=10020]="kGroupUserBannedByAuth",n[n.kConsoleConfigNotFound=10021]="kConsoleConfigNotFound",n[n.kUserRejectedByConsoleConfig=10022]="kUserRejectedByConsoleConfig",n[n.kGroupUserNoPrivilege=10025]="kGroupUserNoPrivilege",n[n.kTest1=11001]="kTest1",n[n.kTest2=11002]="kTest2",n[n.kTest3=11003]="kTest3",n}({}),SyncServerErrorCode=function(n){return n[n.kMetadataOk=0]="kMetadataOk",n[n.kDuplicatedOperation=1]="kDuplicatedOperation",n[n.kSyncServerError=2]="kSyncServerError",n[n.kArgumentError=3]="kArgumentError",n[n.kAutheticationError=4]="kAutheticationError",n[n.kExceedLimitationError=5]="kExceedLimitationError",n[n.kOutdateRevision=6]="kOutdateRevision",n[n.kLockAcquireFailed=7]="kLockAcquireFailed",n[n.kLockExpired=8]="kLockExpired",n[n.kLockWatching=9]="kLockWatching",n[n.kInvalidLock=10]="kInvalidLock",n[n.kLockReleased=11]="kLockReleased",n[n.kWriteNotAllowed=12]="kWriteNotAllowed",n[n.kNoLock=13]="kNoLock",n[n.kNoPrivilege=14]="kNoPrivilege",n[n.kTimeOutError=100]="kTimeOutError",n[n.kUnknownError=255]="kUnknownError",n}({});function convertMetadataServerCodeToSdkCode(n){switch(n){case SyncServerErrorCode.kMetadataOk:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_OK);case SyncServerErrorCode.kArgumentError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_ARGUMENT);case SyncServerErrorCode.kOutdateRevision:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OUTDATED_REVISION);case SyncServerErrorCode.kTimeOutError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);case SyncServerErrorCode.kNoPrivilege:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_PERMISSION_DENIED);default:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_FAILED)}}function convertServerCodeToSdkCodeForSub(n){switch(n){case SyncServerErrorCode.kMetadataOk:case SyncServerErrorCode.kDuplicatedOperation:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_OK);case SyncServerErrorCode.kArgumentError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_ARGUMENT);case SyncServerErrorCode.kTimeOutError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);case SyncServerErrorCode.kNoPrivilege:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED);default:return getErrorInfoByCode(n)}}function convertLockServerCodeToSdkCode(n){switch(n){case SyncServerErrorCode.kMetadataOk:case SyncServerErrorCode.kDuplicatedOperation:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_OK);case SyncServerErrorCode.kOutdateRevision:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_ALREADY_EXIST);case SyncServerErrorCode.kLockAcquireFailed:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_ACQUIRE_FAILED);case SyncServerErrorCode.kNoLock:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_EXIST);case SyncServerErrorCode.kNoPrivilege:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_PERMISSION_DENIED);default:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_FAILED)}}function convertDataChannelJoinCodeToSdkCode(n,e){switch(n){case AgoraRTCErrorCode.NOT_SUPPORTED:case AgoraRTCErrorCode.UNEXPECTED_RESPONSE:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_AVAILABLE);case AgoraRTCErrorCode.INIT_DATACHANNEL_TIMEOUT:case AgoraRTCErrorCode.CREATE_DATACHANNEL_ERROR:case AgoraRTCErrorCode.DATACHANNEL_FAILED:case AgoraRTCErrorCode.DATACHANNEL_CONNECTION_TIMEOUT:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_TOPIC_FAILED);case AgoraRTCErrorCode.CAN_NOT_GET_GATEWAY_SERVER:case AgoraRTCErrorCode.VOID_GATEWAY_ADDRESS:case AgoraRTCErrorCode.MULTI_UNILBS_RESPONSE_ERROR:case AgoraRTCErrorCode.UID_CONFLICT:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED);case AgoraRTCErrorCode.TOKEN_EXPIRE:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED);case AgoraRTCErrorCode.TIMEOUT:case AgoraRTCErrorCode.UNEXPECTED_ERROR:case AgoraRTCErrorCode.INVALID_PARAMS:case AgoraRTCErrorCode.NOT_READABLE:case AgoraRTCErrorCode.INVALID_OPERATION:case AgoraRTCErrorCode.OPERATION_ABORTED:case AgoraRTCErrorCode.WEB_SECURITY_RESTRICT:case AgoraRTCErrorCode.EXCHANGE_SDP_FAILED:case AgoraRTCErrorCode.NETWORK_ERROR:case AgoraRTCErrorCode.NETWORK_TIMEOUT:case AgoraRTCErrorCode.NETWORK_RESPONSE_ERROR:case AgoraRTCErrorCode.API_INVOKE_TIMEOUT:case AgoraRTCErrorCode.ENUMERATE_DEVICES_FAILED:case AgoraRTCErrorCode.DEVICE_NOT_FOUND:case AgoraRTCErrorCode.ELECTRON_IS_NULL:case AgoraRTCErrorCode.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR:case AgoraRTCErrorCode.CHROME_PLUGIN_NO_RESPONSE:case AgoraRTCErrorCode.CHROME_PLUGIN_NOT_INSTALL:case AgoraRTCErrorCode.MEDIA_OPTION_INVALID:case AgoraRTCErrorCode.PERMISSION_DENIED:case AgoraRTCErrorCode.CONSTRAINT_NOT_SATISFIED:case AgoraRTCErrorCode.TRACK_IS_DISABLED:case AgoraRTCErrorCode.GET_VIDEO_ELEMENT_VISIBLE_ERROR:case AgoraRTCErrorCode.SHARE_AUDIO_NOT_ALLOWED:case AgoraRTCErrorCode.LOW_STREAM_ENCODING_ERROR:case AgoraRTCErrorCode.SET_ENCODING_PARAMETER_ERROR:case AgoraRTCErrorCode.TRACK_STATE_UNREACHABLE:case AgoraRTCErrorCode.INVALID_UINT_UID_FROM_STRING_UID:case AgoraRTCErrorCode.CAN_NOT_GET_PROXY_SERVER:case AgoraRTCErrorCode.UPDATE_TICKET_FAILED:case AgoraRTCErrorCode.INVALID_LOCAL_TRACK:case AgoraRTCErrorCode.INVALID_TRACK:case AgoraRTCErrorCode.SENDER_NOT_FOUND:case AgoraRTCErrorCode.CREATE_OFFER_FAILED:case AgoraRTCErrorCode.SET_ANSWER_FAILED:case AgoraRTCErrorCode.ICE_FAILED:case AgoraRTCErrorCode.PC_CLOSED:case AgoraRTCErrorCode.SENDER_REPLACE_FAILED:case AgoraRTCErrorCode.GET_LOCAL_CAPABILITIES_FAILED:case AgoraRTCErrorCode.GET_LOCAL_CONNECTION_PARAMS_FAILED:case AgoraRTCErrorCode.SUBSCRIBE_FAILED:case AgoraRTCErrorCode.UNSUBSCRIBE_FAILED:case AgoraRTCErrorCode.GATEWAY_P2P_LOST:case AgoraRTCErrorCode.NO_ICE_CANDIDATE:case AgoraRTCErrorCode.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS:case AgoraRTCErrorCode.EXIST_DISABLED_VIDEO_TRACK:case AgoraRTCErrorCode.INVALID_REMOTE_USER:case AgoraRTCErrorCode.REMOTE_USER_IS_NOT_PUBLISHED:case AgoraRTCErrorCode.CUSTOM_REPORT_SEND_FAILED:case AgoraRTCErrorCode.CUSTOM_REPORT_FREQUENCY_TOO_HIGH:case AgoraRTCErrorCode.FETCH_AUDIO_FILE_FAILED:case AgoraRTCErrorCode.READ_LOCAL_AUDIO_FILE_ERROR:case AgoraRTCErrorCode.DECODE_AUDIO_FILE_FAILED:case AgoraRTCErrorCode.WS_ABORT:case AgoraRTCErrorCode.WS_DISCONNECT:case AgoraRTCErrorCode.WS_ERR:case AgoraRTCErrorCode.LIVE_STREAMING_TASK_CONFLICT:case AgoraRTCErrorCode.LIVE_STREAMING_INVALID_ARGUMENT:case AgoraRTCErrorCode.LIVE_STREAMING_INTERNAL_SERVER_ERROR:case AgoraRTCErrorCode.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED:case AgoraRTCErrorCode.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED:case AgoraRTCErrorCode.LIVE_STREAMING_CDN_ERROR:case AgoraRTCErrorCode.LIVE_STREAMING_INVALID_RAW_STREAM:case AgoraRTCErrorCode.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT:case AgoraRTCErrorCode.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE:case AgoraRTCErrorCode.LIVE_STREAMING_WARN_FREQUENT_REQUEST:case AgoraRTCErrorCode.WEBGL_INTERNAL_ERROR:case AgoraRTCErrorCode.BEAUTY_PROCESSOR_INTERNAL_ERROR:case AgoraRTCErrorCode.CROSS_CHANNEL_WAIT_STATUS_ERROR:case AgoraRTCErrorCode.CROSS_CHANNEL_FAILED_JOIN_SRC:case AgoraRTCErrorCode.CROSS_CHANNEL_FAILED_JOIN_DEST:case AgoraRTCErrorCode.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST:case AgoraRTCErrorCode.CROSS_CHANNEL_SERVER_ERROR_RESPONSE:case AgoraRTCErrorCode.METADATA_OUT_OF_RANGE:case AgoraRTCErrorCode.LOCAL_AEC_ERROR:case AgoraRTCErrorCode.INVALID_PLUGIN:case AgoraRTCErrorCode.DISCONNECT_P2P:case AgoraRTCErrorCode.CONVERTING_IMAGEDATA_TO_BLOB_FAILED:case AgoraRTCErrorCode.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED:case AgoraRTCErrorCode.ADD_CANDIDATE_FAILED:case AgoraRTCErrorCode.EXTERNAL_SIGNAL_ABORT:case AgoraRTCErrorCode.IMAGE_MODERATION_UPLOAD_FAILED:case AgoraRTCErrorCode.P2P_MESSAGE_FAILED:case AgoraRTCErrorCode.PROHIBITED_OPERATION:default:{var o;const d=getErrorInfoByCode(e);return{code:d.code,reason:(o=d.reason)!==null&&o!==void 0?o:""}}}}function comparator(n,e){return Long$1.fromValue(n).eq(e)}function validateField(n,e){const o=e===void 0?n.val:e,{isBoolean:d,isNumber:I,oneof:f,len:S}=n;if([d,I,f].filter(F=>!F).length!==2)throw new TypeError("invalid field type");if(o===void 0)return;let v=!1;if(f!==void 0){const F=values$3(f);uniqWith$1(F,comparator).length===F.length&&find$1(F,Y=>comparator(o,Y))!==void 0&&(v=!0)}const L=d!==void 0&&(o===0||o===1)&&S===1,x=I!==void 0&&o.toString(2).length<=S;if(!(v||L||x))throw new Error("invalid field value")}class Struct{constructor(){_defineProperty$1(this,"size",0),_defineProperty$1(this,"fields",new Map)}define(e,o,d){if(this.size+=d,this.size>64)throw new RangeError("the struct over 64 bits is not supported");const I={val:0,isNumber:o==="number",isBoolean:o==="boolean",oneof:o==="number"||o==="boolean"?void 0:o,len:d};validateField(I),this.fields.set(e,I)}set(e,o){const d=this.fields.get(e);if(!d)throw new Error("field not found");const{oneof:I}=d;let f;if(Long$1.isLong(o)||typeof o=="number")f=o;else if(typeof o=="boolean")f=o?1:0;else{if(I===void 0)throw new Error("invalid field type");const S=I[o];if(S===void 0)throw new Error("field type not found");f=S}validateField(d,f),d.val=f}toNumber(){let e=0,o=0;for(let d=0,I=Array.from(this.fields);dtypeof S=="string")&&I!==void 0)return o.some(S=>f(S));throw new Error("invalid valueTypes")}from(e){const o=Long$1.fromValue(e);let d=0;for(let I=0,f=Array.from(this.fields);I2&&arguments[2]!==void 0?arguments[2]:0;return hackSetInterval(e.flush.bind(e,this),d)}recycleAsyncId(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(d!==null&&this.delay===d&&this.pending===!1)return o;hackClearInterval(o)}}const getHackAsyncScheduler=()=>new AsyncScheduler_2(HackAsyncAction);class ConnectionController extends EventBase{set connSyncEnv(e){this._connSyncEnv=e}get connSyncEnv(){return this._connSyncEnv}get syncEstablishState(){return this._syncEstablishState}set syncEstablishState(e){this._syncEstablishState=e}constructor(e,o,d,I,f){super(d,"ConnControl"),_defineProperty$1(this,"userJoinOptions",new UserJoinOptions(!1)),_defineProperty$1(this,"loggedOut",!1),_defineProperty$1(this,"curLoginSockets",[void 0,void 0]),_defineProperty$1(this,"loginSocketSubs",[{receivers:[]},{receivers:[]}]),_defineProperty$1(this,"loginObservableController$",new Subject),_defineProperty$1(this,"lastLoginSockets",void 0),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"connection",void 0),_defineProperty$1(this,"instanceId",void 0),_defineProperty$1(this,"lastPingTime",void 0),_defineProperty$1(this,"manualShakeHand",void 0),_defineProperty$1(this,"requestConnectDatabase",void 0),_defineProperty$1(this,"loginSubject$",new Subject),_defineProperty$1(this,"canEmitUserJoined",!1),_defineProperty$1(this,"networkOnlineSubject",new Subject),_defineProperty$1(this,"loginInDisConnectedSubject$",new Subject),_defineProperty$1(this,"cancelLogin$",void 0),_defineProperty$1(this,"syncInitTimer",null),_defineProperty$1(this,"shakeHandTimer",null),_defineProperty$1(this,"tokenPrivilegeSubscription",null),_defineProperty$1(this,"linkIntervals",[...LINK_INTERVALS]),_defineProperty$1(this,"_connSyncEnv",void 0),_defineProperty$1(this,"_syncEstablishState",SyncEstablishState.DISCONNECTED),_defineProperty$1(this,"_lastPingSequences",[Long$1.ZERO,Long$1.ZERO]),_defineProperty$1(this,"registerConnectionFailureListener",()=>{const S=()=>{this.log("registrar: connectionFailure, start reLogin..."),this.context.internalEmitter.emit("login-request"),this.loginHandler(!0).subscribe({next:()=>{this.log("reLogin connected successfully")},error:v=>{this.logError("reLogin failed with error: %o",v)}})};this.connection.once("connectionFailure",()=>{this.context.internalEmitter.emit("login-timeout",!0),S()})}),this.context=e,this.context.startTime=Date.now(),this.connection=new Connection(e,d),this.instanceId=o,this.lastPingTime=[0,0],this.setMaxListeners(512),this.log("The instanceId is %s",this.instanceId.toString()),this.connection.on("syncTicketUpdated",S=>{let{ticket:v}=S;this.emit("syncTicketUpdated",{ticket:v})}),this.manualShakeHand=I,this.requestConnectDatabase=f,this.cancelLogin$=fromEvent(this,"cancel-login").pipe(tap(()=>{const S=OperationName.login,{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_CANCELED);throw new RtmUnavailableError(S,[L],v)}),share())}release(){this.removeAllListeners(),this.cancelSyncTimer()}getOtherEnvTicket(e){var o;return(o=this.curLoginSockets.filter(d=>d&&d.loggedIn).find(d=>(d==null?void 0:d.env)===e))===null||o===void 0?void 0:o.ticket}async connSyncDB(e){if(!this.context.disablePresence){this._syncEstablishState=SyncEstablishState.CONNECTING;try{await this.requestConnectDatabase(),this.context.internalEmitter.emit("connectedDatabase"),this._syncEstablishState=SyncEstablishState.CONNECTED}catch(d){var o;const I=(o=d==null?void 0:d.reason)!==null&&o!==void 0?o:"none err detail";if(this.warn("change connSyncEnv: %d to undefined because %s, %o",e,I,d),this._syncEstablishState=SyncEstablishState.DISCONNECTED,d instanceof RtmTimeoutError)throw d.message=SyncDisconnectedReason.CONNECT_SYNC_DATABASE_TIMEOUT,d;{const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT),v=new RTMBaseError(OperationName.login,["conn db failed"+(d instanceof Error?d.message:"")+S],f);throw v.message=SyncDisconnectedReason.CONNECT_SYNC_DATABASE_ERROR,v}}}}resetLinkIntervals(){this.linkIntervals=[...LINK_INTERVALS]}getVirtualSyncSocket(){return this.getLoginSockets().filter(e=>e.env===this.connSyncEnv)}handleFailed(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"login failed",o=arguments.length>1?arguments[1]:void 0;this.emit("syncDisconnected",e),this.updateLoggedOut(!0),this.context.internalEmitter.emit("userDrop",o),this.clearSockets()}loginHandler(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];if(this.context.socketUseProxy=!1,this.connSyncEnv=void 0,this.loggedOut&&e){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_ABORTED);throw new RtmInvalidStatusError(OperationName.login,[S+"logout when login retrying"],f)}this.connection.initConnection();const{seq:o}=this.context,d=this.getSocketLoginObservables(this.connection.lastOpenSockets,o,e);let I;return this.lastLoginSockets=d,this.initKeepAliveSender(),this.initLoginReceiver(),this.linkIntervals=[...LINK_INTERVALS],this.log("start login..."),merge(...d,fromEvent(this.connection,"connectionInitFailure").pipe(tap(f=>{throw e&&this.handleFailed(),f})),this.cancelLogin$,this.networkOnlineSubject.pipe(tap(()=>{this.log("network change, will retry connect in 2s");const f=new TimeoutError;throw f.name="network-change",this.linkIntervals=[...LINK_INTERVALS],f}))).pipe(timeout(LOGIN_RESP_TIMEOUT),take(1),tap(async f=>(this.connSyncInLogin(f,e),f)),catchError(f=>(f instanceof TimeoutError&&(f&&f.name==="network-change"?this.context.internalEmitter.emit("net-change-abort-reconn"):(this.warn("client ".concat(e?"re-":"","login timeout")),this.context.internalEmitter.emit("login-timeout",e))),f&&f.code===RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED&&(this.warn("token expired when login, isRetrying: %s",e),e&&this.context.internalEmitter.emit("tokenExpired"),this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin()),this.clearSockets(),throwError(f))),retryWhen(f=>f.pipe(switchMap(S=>{if(this.connection.apClient.apFinish$.next(void 0),I=this.getFallBackTimer(),S instanceof TimeoutError)return merge(this.cancelLogin$,race(interval(I),this.networkOnlineSubject.pipe(tap(()=>{this.log("network is online, will retry connect now")})),this.loginInDisConnectedSubject$.pipe(tap(()=>{this.linkIntervals=[...LINK_INTERVALS],this.log("custom call login, will retry right now")}))).pipe(take(1),takeUntil(this.connection.apClient.apFinish$),tap(()=>{this.context.internalEmitter.emit("login-request"),this.initKeepAliveSender(),this.initLoginReceiver(),this.connection.initConnection(),this.log("retryWhen---interval")})));throw S}),catchError(S=>throwError(S)))),optionalTimeout(this.context.connectionTimeoutSeconds),catchError(f=>f instanceof TimeoutError&&this.context.connectionTimeoutSeconds>0?(this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin(),this.clearSockets(),throwError(new RtmTimeoutError(OperationName.login,[LinkStateChangeReasonDescription.LOGIN_TIMEOUT],RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT))):throwError(f)),takeUntil(this.loginSubject$),tap(()=>{this.registerConnectionFailureListener(),this.manualShakeHand()}),finalize(()=>{e||this.connection.apClient.apFinish$.next(void 0),this.loginSubject$.next(void 0),this.connection.endLogin$.next(void 0)}))}getFallBackTimer(){return 1e3*(this.linkIntervals.length>=1?this.linkIntervals.splice(0,1)[0]:SUSPENDED_TIME_INTERVAL)}async connSyncInLogin(e,o){if(this.context.disablePresence)return;const d=this.syncEstablishState===SyncEstablishState.DISCONNECTED;if(this.info("ENV_%d(%s): First reg logged response received, need connect sync: %s, connSyncEnv: %d, isRetrying: %s, syncConnecting: %s",e.env,e.name,d,this.connSyncEnv,o),d)try{await this.establishSync(e,!0)}catch(f){var I;getParameter("DECOUPLE_SYNC")&&this.handleSyncDisconnected(e,(I=f==null?void 0:f.message)!==null&&I!==void 0?I:"")}}async logoutHandler(e){this.updateLoggedOut(!0),this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin();const o=this.getLoginSockets(),d=o.map(f=>(f.sendPacket("UserQuit2",{flags:e?new Long$1(1,0,!0):Long$1.fromNumber(0)}),this.connection.waitClosing(f)));setTimeout(()=>this.clearSockets(),LOGOUT_SOCKET_CLOSE_TIMEOUT);const I=o.map(f=>f.env);return[0,1].filter(f=>!I.includes(f)).forEach(f=>{this.connection.closeSocket(f)}),merge(...d).toPromise()}cancelSyncTimer(){this.syncInitTimer&&(clearTimeout(this.syncInitTimer),this.syncInitTimer=null)}cleanLoginSubs(e){var o,d;const I=this.loginSocketSubs[e];(o=I.keepAlive)===null||o===void 0||o.unsubscribe(),(d=I.pingTimer)===null||d===void 0||d.unsubscribe(),I.receivers.forEach(f=>f.unsubscribe()),this.loginSocketSubs[e]={receivers:[]}}initKeepAliveSender(){this.lastLoginSockets.map(e=>e.pipe(switchMap(o=>{this.log("initKeepAliveSender===============",o.env,o.name);const d=this.loginSocketSubs[o.env].pingTimer;return d&&(this.log("Env_%s(%s): new socket arrived, cancel old pingTimer",o.env,o.name),d.unsubscribe(),this.loginSocketSubs[o.env].pingTimer=void 0),this.lastPingTime[o.env]=0,o.loggedIn&&(this.log("Env_%s(%s): start keep alive sender for new socket",o.env,o.name),this.startPingTimer(o,!0)),EMPTY}))).forEach((e,o)=>{const{keepAlive:d}=this.loginSocketSubs[o];d!==void 0&&d.unsubscribe(),this.loginSocketSubs[o].keepAlive=e.subscribe({error:()=>{}})})}startPingTimer(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const d=of(e).pipe(delay(o?0:this.context.heartbeatInterval,isMobile$1()?void 0:getHackAsyncScheduler()),tap(()=>{!e.isActiveClose&&this.sendPing(e),d.unsubscribe()})).subscribe();this.loginSocketSubs[e.env].pingTimer=d}initLoginReceiver(){var e;(e=this.tokenPrivilegeSubscription)===null||e===void 0||e.unsubscribe();const o=race(...this.lastLoginSockets.map(d=>d.pipe(switchMap(I=>I.fromReceived("UserTicketNearlyExpire2").pipe(throttleTime(3e4),tap(f=>{if(f.ticket===I.ticket)try{const S=JSON.parse(f.resources);this.context.internalEmitter.emit("UserTicketNearlyExpire",{messageChannels:S.messageChannels.map(v=>{var L;return(L=Object.keys(v)[0])!==null&&L!==void 0?L:""}).filter(v=>v!=="")})}catch(S){this.logError("parse permission revoked resources failed, error: %o",S)}}))))));this.tokenPrivilegeSubscription=o.subscribe({error:d=>{this.logError("TokenPrivilegeWillExpireReceivers error: %o",d)}}),this.lastLoginSockets.map(d=>d.pipe(switchMap(I=>(this.log("initLoginReceivers=====================",I.env,I.name),merge(I.fromReceived("StateLockUpdate").pipe(tap(f=>{this.context.internalEmitter.emit("StateLockUpdate",f)})),I.fromReceived("StateLockSubscribeEvent").pipe(tap(f=>{this.context.internalEmitter.emit("StateLockSubscribeEvent",f)})),I.fromReceived("StateUpdate").pipe(tap(f=>{this.context.internalEmitter.emit("StateUpdate",f)})),I.fromReceived("Message").pipe(tap(f=>{this.context.internalEmitter.emit("Message",Object.assign(f,{eventReportInfo:{env:I.env}}))})),I.fromReceived("GroupDrop").pipe(tap(f=>{this.context.internalEmitter.emit("GroupDrop",f)})),fromEvent(I,"reconnect").pipe(tap(this.onSocketReconnect(I))),I.fromReceived("UserDrop").pipe(tap(this.onUserDrop(I))),I.fromReceived("SyncFin").pipe(tap(this.onSyncFin(I))),I.fromReceived("GroupEnterNotice").pipe(tap(f=>{this.context.internalEmitter.emit("GroupEnterNotice",f)})),I.fromReceived("GroupLeaveNotice").pipe(tap(f=>{this.context.internalEmitter.emit("GroupLeaveNotice",f)})),I.fromReceived("GroupCountNotice").pipe(tap(this.onGroupCountNotice())),I.receivedSyncPacket.pipe(tap(this.onSyncPacket()))).pipe(mapTo(void 0)))))).forEach((d,I)=>{this.loginSocketSubs[I].receivers.forEach(f=>f.unsubscribe()),this.loginSocketSubs[I].receivers=[d.subscribe({error:f=>{this.logError("socketReceiver error: %o",f)},complete:()=>{this.log("socketReceiver complete: %o")}})]})}clearShakehandTimer(){this.shakeHandTimer&&(clearTimeout(this.shakeHandTimer),this.shakeHandTimer=null)}handleConfig(e){if(typeof e["presence.interval"]!==void 0&&isUintString(e["presence.interval"])){const o=Number(e["presence.interval"]);o>K_PRESENCE_INTERVAL_MAX?e["presence.interval"]=String(K_PRESENCE_INTERVAL_MAX):oK_INTERVAL_THRESHOLD_MAX?e["presence.occupancy"]=String(K_INTERVAL_THRESHOLD_MAX):oK_INTERVAL_THRESHOLD_MAX?e["presence.debounce"]=String(K_INTERVAL_THRESHOLD_MAX):o{this.context.internalEmitter.emit("login-request"),this.userJoinOptions=new UserJoinOptions(o),this.log("ENV_%d(%s): socket.isActiveClose: %s, isRejoin: %s",e.env,e.name,e.isActiveClose,o);const v=!e.isActiveClose;if(this.loggedOut)return this.log("close other socket, ignore this login request"),void this.connection.closeSocket(e.env);if(v){var L;const x=(L=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&L!==void 0?L:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT;if(o&&!this.canEmitUserJoined&&(this.canEmitUserJoined=!0),this.context.ticketVersionOutdated(e.env)){const F=I===0?1:0,Y=this.getOtherEnvTicket(F);Y&&(e.ticket=Y,this.context.updateTicketVersion(e.env,this.context.ticketVersionMap.get(F).version),this.log("update ticket version for env_%d(%s)",e.env,e.name))}e.sendPacket("UserJoin2",{account:this.context.uid,instance:this.instanceId,opt:this.userJoinOptions.toLong(),seq:d,ticket:e.ticket,detail:{[UserJoinDetailKey.kDetailKeyConsoleConfig]:new Uint8Array,[UserJoinDetailKey.kDetailKeyKeepAliveInterval]:new TextEncoder().encode(String(this.context.heartbeatInterval/1e3)),[UserJoinDetailKey.kDetailKeyKeepAliveBuffer]:new TextEncoder().encode(String(x/1e3))}})}}),S=e.fromReceived("UserResp2").pipe(first(v=>d.eq(v.seq)),map$1(v=>{if(this.loggedOut)return void this.log("ENV_%d(%s): other socket is closing, will close this socket, ignore this resp",e.env,e.name);if(v.code===RegServerErrorCode.kTimestampExpired&&this.context.ticketVersionOutdated(e.env))return void this.info("other env ticket is updated, ignore this error and reconnect this env");const{code:L}=v;if(L!==0){var x;let F=String(L);(x=this.curLoginSockets[e.env===0?1:0])!==null&&x!==void 0&&x.loggedIn||o?this.handleFailed():this.clearSockets();let Y=RTMErrorCode.RTM_ERROR_LOGIN_REJECTED;switch(L){case RegServerErrorCode.kCertificateInvalid:case RegServerErrorCode.kTicketParseError:case RegServerErrorCode.kTicketIllegalLength:case RegServerErrorCode.kTicketNotAuth:case RegServerErrorCode.kTicketUnknownVersion:case RegServerErrorCode.kTicketInvalid:Y=RTMErrorCode.RTM_ERROR_INVALID_TOKEN;break;case RegServerErrorCode.kTimestampExpired:this.warn("token expired when received userResp, isReJoin: %s",o),o&&this.context.internalEmitter.emit("tokenExpired"),this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin(),Y=RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED;break;case RegServerErrorCode.kUserRejectedByConsoleConfig:Y=RTMErrorCode.RTM_ERROR_LOGIN_NOT_AUTHORIZED,F="NOT_ENABLE_RTM";case RegServerErrorCode.kFail:case RegServerErrorCode.kServiceTooHeavy:}this.logError("Connected to gateway success but the Rtm server rejected login, server code is %s",F);const{code:j,reason:W}=getErrorInfoByCode(Y);throw new RtmUnavailableError(OperationName.login,[W+" userResp error, detail: ".concat(F)],j)}try{let F;const{detail:{1:Y}}=v;F=JSON.parse(new TextDecoder().decode(Y)),this.handleConfig(F);for(let W=0,re=Object.entries(this.context.consoleConfig);Wv!==void 0),tap(()=>{this.log("ENV_%d(%s): Login response received",I,e.name),this.curLoginSockets[I]=e}),concatMap(async v=>{const L=!v.isActiveClose;return o&&this.canEmitUserJoined&&L&&(this.context.internalEmitter.emit("userJoined"),this.canEmitUserJoined=!1),v}),catchError(v=>{var L;return v instanceof TimeoutError&&(L=this.curLoginSockets[e.env===0?1:0])!==null&&L!==void 0&&L.isActiveClose?(this.log("ENV_%d(%s): other socket is closing, will close this socket",e.env,e.name),EMPTY):v instanceof TimeoutError?(this.warn("ENV_%d(%s): sdk connect reg response timeout, rejoin: %s",e.env,e.name,o),e.emit("socketFailure"),EMPTY):(this.connection.banIP(e.ip),throwError(v))}))}getSocketLoginObservables(e,o,d){const I=Date.now();return this.loginObservableController$.next(void 0),e.map((f,S)=>f.pipe(switchMap((v,L)=>(this.context.incSeqIfNeeded(v.env),v.isActiveClose||this.loggedOut?EMPTY:(this.log("ENV_%d(%s): start reg login request, isRejoin: %s",v.env,v.name,L!==0),this.requestSocketLogin(v,L!==0,L===0?o:this.context.seq,S).pipe(catchError(x=>throwError(x)))))),tap(v=>{this.log("Env_%s: acquired socket %s",S,v.name);const L=Date.now();this.context.addReportEvents("Link",{ackedServerIp:v.address,destServerIp:v.ip,ec:0,sc:0,elapse:getElapse(this.context.startTime),lts:Long$1.fromNumber(L),responseTime:L-I,sid:getSid(this.instanceId),userId:this.context.uid,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),linktype:4,linkflag:Long$1.fromNumber(0),linkenv:v.env}),d&&this.connection.apClient.apFinish$.next(void 0),this.context.internalEmitter.emit("link-success",v.env)}),takeUntil(this.loginObservableController$),finalize(()=>{this.log("ENV_%d: Observable finalized (unsubscribed)",S)}),shareReplay(1)))}getLoginSockets(){return compact$1(this.curLoginSockets)}sendOperationPacket(e,o,d){const I=this.getLoginSockets();if(I.length===0){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[S],f)}I.forEach(f=>{f.sendPacket(o,d)})}sendOperationPacketUseOneEnv(e,o,d,I){const f=this.getLoginSockets();if(f.length===0){const{code:S,reason:v}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[v],S)}f.forEach(S=>{S.env===o&&S.sendPacket(d,I)})}onOperationPacket(e){return merge(...this.getLoginSockets().map(o=>o.fromReceived(e).pipe(map$1(d=>["UserRenewToken2Resp"].includes(e)?Object.assign(d,{eventReportInfo:{ip:o.ip,env:o.env}}):d))))}onSocketReconnect(e){return()=>{const o=[0,1].filter(f=>f!==e.env)[0],d=this.connection.curOpenSockets[o],I=this.connSyncEnv===e.env;this.log("ENV_".concat(e.env,"(").concat(e.name,"): received a reconnect event from ").concat(maskIp(e.address),", otherSocketState: ").concat(d==null?void 0:d.loggedIn,", connSyncEnv: ").concat(this.connSyncEnv,", syncEstablishState: ").concat(this.syncEstablishState)),I&&this.syncEstablishState===SyncEstablishState.CONNECTED&&this.handleSyncDisconnected(e,SyncDisconnectedReason.REG_SOCKET_RECONNECT),d&&!d.loggedIn&&(this.log("ENV_".concat(e.env,"(").concat(e.name,"): will emit connectionLost")),I||this.syncEstablishState!==SyncEstablishState.CONNECTED||this.handleSyncDisconnected(d,SyncDisconnectedReason.REG_SOCKET_RECONNECT)),d!=null&&d.loggedIn||this.context.internalEmitter.emit("connectionLost")}}onGroupCountNotice(){return e=>{let{group:o,size:d}=e;this.log("group count notice: %s, %s",o,d)}}async establishSync(e,o){if(this.context.disablePresence)return;this.cancelSyncTimer(),this.syncEstablishState=SyncEstablishState["SYNCINIT_".concat(e.env)];const d=this.context.incGetSeq();this.log("ENV_".concat(e.env," - ").concat(e.name,": request ").concat(o?"first ":"","sync physical connection, seq: ").concat(d.toNumber())),e.sendPacket(getParameter("DECOUPLE_SYNC")?"SyncInit2":"SyncInit",{seq:d});const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT);try{await race(e.fromReceived("SyncInitAck").pipe(first(v=>v.seq.eq(d)),map$1(async v=>{if(v.code!==0){this.connSyncEnv=void 0,this.warn("change connSyncEnv %d to undefined in requestFirstSyncInit",e.env);const L=o?SyncDisconnectedReason.REQUEST_FIRST_SYNC_PHYSICAL_CONNECTION_ERROR:SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_ERROR,x=L+". code is ".concat(v.code),F=new RTMBaseError("syncInit",[x+f],RTMErrorCode.RTM_ERROR_LOGIN_REJECTED);throw F.message=L,F}this.log("sync physical connect success, virtual socket env: %d",this.connSyncEnv),this.connSyncEnv=e.env,this.emit("syncConnected")}),timeout(5e3))).pipe(catchError(v=>{if(v instanceof TimeoutError){const L=o?SyncDisconnectedReason.REQUEST_FIRST_SYNC_PHYSICAL_CONNECTION_TIMEOUT:SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_TIMEOUT,x=new RtmTimeoutError("syncInit",[L+f],I);return x.message=L,throwError(x)}return throwError(v)})).toPromise()}catch(S){throw S}await this.connSyncDB(e.env)}onSyncFin(e){return o=>{let{code:d}=o;this.syncEstablishState===SyncEstablishState.CONNECTED?e.env===this.connSyncEnv?(this.warn("ENV_%d: reg and sync conn is fin, connSyncEnv is %d, code is %d, %s, syncEstablishState is %s",e.env,this.connSyncEnv,d,e.name,this.syncEstablishState),this.emit("syncDisconnected","sync fin"),this.handleSyncDisconnected(e,SyncDisconnectedReason.SYNC_FIN)):this.log("not current env, outdated fin, wont handle sync fin"):this.log("status is not connected, outdated fin, wont handle sync fin")}}retrySyncEstablish(e){this.cancelSyncTimer(),this.syncEstablishState===SyncEstablishState.DISCONNECTED&&this.establishSync(e,!1).catch(o=>{var d;getParameter("DECOUPLE_SYNC")?this.handleSyncDisconnected(e,(d=o==null?void 0:o.message)!==null&&d!==void 0?d:"",isTimeout(o)?0:5e3):e.forceReconnect()})}handleSyncDisconnected(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(!isNil$1(this.connSyncEnv)&&this.connSyncEnv!==e.env)return void this.warn("Now connSyncEnv is not equal to socket env, can't handle disconnected");if(this.emit("syncDisconnected","handle handleSyncDisconnected, reason: "+o),this.connSyncEnv=void 0,this.syncEstablishState=SyncEstablishState.DISCONNECTED,this.cancelSyncTimer(),this.clearShakehandTimer(),this.loggedOut)return;o!==SyncDisconnectedReason.REG_SOCKET_RECONNECT&&o!==SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_TIMEOUT&&o!==SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_ERROR&&this.context.internalEmitter.emit("presence-backoff");const I=[0,1].filter(S=>S!==e.env)[0],f=this.connection.curOpenSockets[I];f&&f.loggedIn?(this.info("use another env to connect sync, env: %d(%s)",f.env,f.name),this.syncInitTimer=setTimeout(()=>{this.retrySyncEstablish(f)},d)):!getParameter("DECOUPLE_SYNC")||f!=null&&f.loggedIn||(this.info("use same env to connect sync, env: %d(%s), loggedIn: %s",e.env,e.name,e.loggedIn),this.syncInitTimer=setTimeout(()=>{const S=this.connection.curOpenSockets[e.env];this.retrySyncEstablish(S||e)},d))}onSyncPacket(){return e=>{getSyncPacketUri(e)===102&&this.clearShakehandTimer(),this.emit("syncPacket",e)}}onUserDrop(e){return o=>{let{code:d}=o;d!==RegServerErrorCode.kConnectionTimeout?(this.context.addReportEvents("KickedOff",{code:0,elapse:getElapse(this.context.startTime),linkId:parseInt(e.name.split("-")[1],10),lts:Long$1.fromNumber(Date.now()),server:e.address,serverCode:d,sid:getSid(this.instanceId),userId:this.context.uid}),this.handleFailed("userDrop",d)):this.warn("connection timeout")}}clearSockets(){[0,1].forEach(e=>{this.cleanLoginSubs(e),this.connection.closeSocket(e)})}handleHeartbeatTimeout(e){var o;const d=this.context.heartbeatInterval+((o=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&o!==void 0?o:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT)-2*SOCKET_RETRY_INTERVAL;this.warn("ENV_".concat(e.env,"(").concat(e.name,"): registrar forceReconnect, the last received packet is the same as it was ").concat(d/1e3,"s ago ")),e.forceReconnect()}sendPing(e){var o;if(Date.now()-this.lastPingTime[e.env]<=this.context.heartbeatInterval||!e.loggedIn)return;this.context.incSeqIfNeeded(e.env);const d=this.context.seq,I=this.context.heartbeatInterval+((o=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&o!==void 0?o:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT)-2*SOCKET_RETRY_INTERVAL;this._lastPingSequences[e.env]=d,e.sendPacket("Ping3",{ms:Long$1.fromNumber(Date.now(),!0),seq:d,flags:new Long$1(3,0,!0)}),this.lastPingTime[e.env]=Date.now(),e.env===this.connSyncEnv&&(this.manualShakeHand(),this.shakeHandTimer=setTimeout(()=>{this.loggedOut||(this.warn("not received shakeHand response in heartbeat interval"),this.context.internalEmitter.emit("presence-backoff"))},SHAKEHAND_TIMEOUT));const f=e.fromReceived("Pong3").pipe(filter(S=>{let{seq:v}=S;return v.eq(d)}),take(1),tap(S=>{let{serverMs:v}=S;this.context.pongTime=v.toNumber(),this.context.offsetTime=this.context.pongTime-new Date().getTime(),this.startPingTimer(e)}),timeout(I),catchError(S=>(e.loggedIn===!1||this._lastPingSequences[e.env].greaterThan(d)||(this.warn("ENV: %d, loggedIn: %s, received pong error, seq: %s, e: %o",e.env,e.loggedIn,d.toNumber(),S),S instanceof TimeoutError&&(e.env===this.connSyncEnv&&this.clearShakehandTimer(),this.handleHeartbeatTimeout(e))),EMPTY)),finalize(()=>{f.unsubscribe()})).subscribe()}notifyNetworkChange(e){this.networkOnlineSubject.next(e)}notifyLoginInDisconnected(){this.loginInDisConnectedSubject$.next(!0)}updateRegTicket(e){this.curLoginSockets.filter(o=>o!==void 0).forEach(o=>o.ticket=e)}updateLoggedOut(e){this.loggedOut=e}}class CollectionEvent{constructor(e,o,d,I){this.document=e,this.path=o,this.type=d,this.value=I}}var CollectionEventType;(function(n){n.Put="Put",n.Insert="Insert",n.Delete="Delete",n.DocSyncEnd="DocSyncEnd"})(CollectionEventType||(CollectionEventType={}));var CollectionEventType$1=CollectionEventType;class SyncCounter{constructor(e,o,d,I,f){this.docInstance=e,this.path=o,this.documentIn=d,this.collectionIn=I,this.client=f}Set(e){if(Math.round(e)!=e)throw new TypeError("The value is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");counterCheckAndReplace(d,o,this.docInstance),Module._rte_crdt_document_batch_write_begin(this.docInstance),setValue(this.docInstance,null,e,o,!0),Module._rte_crdt_document_batch_write_end(this.docInstance),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),this.client.connected&&tickLoop(this.client)}Inc(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;if(Math.round(e)!=e)throw new TypeError("The delta is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");counterCheckAndReplace(d,o,this.docInstance),Module._rte_crdt_document_batch_write_begin(this.docInstance),Module._rte_crdt_document_increment(this.docInstance,null,o,BigInt(e)),Module._rte_crdt_document_batch_write_end(this.docInstance),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),this.client.connected&&tickLoop(this.client)}Dec(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;if(Math.round(e)!=e)throw new TypeError("The delta is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");counterCheckAndReplace(d,o,this.docInstance),Module._rte_crdt_document_batch_write_begin(this.docInstance),Module._rte_crdt_document_increment(this.docInstance,null,o,-BigInt(e)),Module._rte_crdt_document_batch_write_end(this.docInstance),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),this.client.connected&&tickLoop(this.client)}Value(){if(!checkAll(this.documentIn,this.collectionIn.readable))throw new Error("The current collection is forbidden to read the Document : "+this.documentIn);let e;const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");return counterCheckAndReplace(d,o,this.docInstance),e=getScalarValue(d),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),e}}class List{constructor(e,o,d,I,f){this.docInstance=e,this.path=o,this.documentIn=d,this.collectionIn=I,this.client=f}Insert(e,o){if(Math.round(e)!=e)throw new TypeError("The index is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const d=Module._rte_crdt_path_create();parsePath(this.path,d);const I=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,d,I)!==0||!Module._rte_crdt_nested_value_is_list(I))throw Module._rte_crdt_nested_value_destroy(I),Module._rte_crdt_path_destroy(d),new Error("The list no longer exists.");{const f=Module._rte_crdt_nested_value_iterator_create(I);let S=0;for(;Module._rte_crdt_nested_value_iterator_next_value(f,null)!==305;)S+=1;if(Module._rte_crdt_nested_value_iterator_destroy(f),e<0||e>S)throw Module._rte_crdt_nested_value_destroy(I),Module._rte_crdt_path_destroy(d),new Error("The index is out of bound.");Module._rte_crdt_document_batch_write_begin(this.docInstance);for(let v=0;vL.indexOf(S)===v),d=o.sort();const I=Module._rte_crdt_path_create();parsePath(this.path,I);const f=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,I,f)!==0||!Module._rte_crdt_nested_value_is_list(f))throw Module._rte_crdt_nested_value_destroy(f),Module._rte_crdt_path_destroy(I),new Error("The list no longer exists.");{const S=Module._rte_crdt_nested_value_iterator_create(f);let v=0;for(;Module._rte_crdt_nested_value_iterator_next_value(S,null)!==305;)v+=1;Module._rte_crdt_nested_value_iterator_destroy(S);for(let x=0;xv)throw Module._rte_crdt_nested_value_destroy(f),Module._rte_crdt_path_destroy(I),new Error("The index is out of bound.")}let L=0;Module._rte_crdt_document_batch_write_begin(this.docInstance);for(let x=0;x{const x=getPtrWithStr(this.name),F=getPtrWithStr(e),Y=getPtrWithStr(o);Module._sync_client_keepalive(this.client.clientPtr,x,F,Y,d),releasePtr(x),releasePtr(F),releasePtr(Y),tickLoop(this.client)},1e3*d/2);this.keepAliveTimers.set(I,L)}}RemoveAutoKeepaliveRPC(e,o){let d=e+" "+o;if(this.keepAliveTimers.has(d)){let I=this.keepAliveTimers.get(d);clearInterval(I)}}GetAutoKeepaliveRPC(){return Array.from(this.keepAliveTimers.keys())}}function checkIfContainsStart(n){for(let e=0;e0&&arguments[0]!==void 0?arguments[0]:{};return new Promise((o,d)=>{n(Object.assign(Object.assign(Object.assign({},e),{success:o,fail:d})))})}}function isDict(n){return!(typeof n!="object"||n===null||n instanceof Array||n instanceof Date)}function toRegex(n){let e="";for(let o=0;o0&&!e.includes(n)&&!checkRegex(n,e))}function logger(n,e,o){if(e!==null)switch(o){case"info":e().handleInfoLog(n);break;case"warn":e().handleWarnLog(n);break;case"error":e().handleErrorLog(n)}else{let d=new Date;console.log(d+d.getMilliseconds().toString()+" : "+n)}}function releasePtrs(n){for(let e=0;e4&&arguments[4]!==void 0&&arguments[4];const f=Module._rte_crdt_value_create(),S=Module._rte_crdt_path_clone(d);if(typeof o=="object"&&o!=null&&o!=null)if(Array.isArray(o)){Module._rte_crdt_value_set_list(f),constructPathAndPut(e,n,S,f);let v=0;for(let L=0;L1&&arguments[1]!==void 0)||arguments[1]?Module._rte_crdt_nested_value_get_scalar(n):Module._rte_crdt_value_get_scalar(n),Module._rte_crdt_scalar_value_is_i64(o)){const d=Module._malloc(4);Module._rte_crdt_scalar_value_get_i64(o,d),e=Module.getValue(d,"i64"),e=Number(e),releasePtr(d)}else if(Module._rte_crdt_scalar_value_is_double(o)){const d=Module._malloc(8);Module._rte_crdt_scalar_value_get_double(o,d),e=Module.getValue(d,"double"),e=Number(e),releasePtr(d)}else if(Module._rte_crdt_scalar_value_is_bytes(o)){const d=Module._malloc(4),I=Module._malloc(4);Module._rte_crdt_scalar_value_get_bytes(o,I,d);const f=Module.getValue(I,"i32");e=Module.UTF8ToString(f).valueOf(),releasePtr(d),releasePtr(I)}else if(Module._rte_crdt_scalar_value_is_bool(o)){const d=Module._malloc(1);Module._rte_crdt_scalar_value_get_bool(o,d),e=Module.getValue(d)==1,releasePtr(d)}else if(Module._rte_crdt_scalar_value_is_counter(o)){const d=Module._malloc(4);Module._rte_crdt_scalar_value_get_counter(o,d),e=Module.getValue(d,"i64"),e=Number(e),releasePtr(d)}else e=null;return e}function parsePath(n,e){if(arguments.length>2&&arguments[2]!==void 0&&arguments[2]){const I=getPtrWithStr(n);return Module._rte_crdt_path_add_property(e,I,getRealLenWithStrBI(n)),void releasePtr(I)}let o="",d=!1;for(let I=0;I0&&(addPropertyOrIndex(o,e,d),o=""),d=!1):(addPropertyOrIndex(o,e,d),d=!1,o=""):(o.length>0&&(addPropertyOrIndex(o,e,d),o=""),d=!0)}o.length>0&&addPropertyOrIndex(o,e,d)}function addPropertyOrIndex(n,e,o){if(!isNaN(n)&&o){const d=Number(n);Module._rte_crdt_path_add_index(e,BigInt(d))}else{const d=getPtrWithStr(n);Module._rte_crdt_path_add_property(e,d,getRealLenWithStrBI(n)),releasePtr(d)}}function getAll(n,e,o,d){const I=Module._rte_crdt_nested_value_iterator_create(e),f=Module._malloc(4),S=Module._malloc(4),v=Module._malloc(4);let L=0;for(;;)if(d){if(L=Module._rte_crdt_nested_value_iterator_next_value(I,v),L===305)break;const x=Module.getValue(v,"i32");if(Module._rte_crdt_nested_value_is_scalar(x))o.push(getScalarValue(x));else if(Module._rte_crdt_nested_value_is_map(x)){let F={};o.push(F),getAll(n,x,F,!1)}else if(Module._rte_crdt_nested_value_is_list(x)){let F=[];o.push(F),getAll(n,x,F,!0)}}else{if(L=Module._rte_crdt_nested_value_iterator_next_key_value(I,f,S,v),L===305)break;const x=Module.UTF8ToString(Module.getValue(f,"i32")).valueOf(),F=Module.getValue(v,"i32");if(Module._rte_crdt_nested_value_is_scalar(F))o[x]=getScalarValue(F);else if(Module._rte_crdt_nested_value_is_map(F)){let Y={};o[x]=Y,getAll(n,F,Y,!1)}else if(Module._rte_crdt_nested_value_is_list(F)){let Y=[];o[x]=Y,getAll(n,F,Y,!0)}}releasePtr(f),releasePtr(S),releasePtr(v),Module._rte_crdt_nested_value_iterator_destroy(I)}function getPtrStringList(n){const e=n.length,o=e===0?0:Module._malloc(4*e);let d=o,I=[];for(let f=0;f{try{const d=new Uint8Array(o),I=d.length*d.BYTES_PER_ELEMENT,f=Module._malloc(I);Module.HEAPU8.set(d,f);const S=Module._sync_client_on_recv(n.clientPtr,f,BigInt(I),n.tickBufferPtr);if(Module._free(f),S===101)Module._sync_client_reset_connection(n.clientPtr);else{const v=new Uint8Array(Module.HEAPU8.buffer,Module._sync_buffer_data(n.tickBufferPtr),Number(Module._sync_buffer_length(n.tickBufferPtr))).slice();v.length!=0&&n.ws.send(v)}}catch(d){logger("recvError : ".concat(d),n.getLogger,"error")}})}async function fetchHelper(n,e){n.tickBufferPtr=Module._sync_buffer_create();try{let o="ws://60.191.137.101:6390/ws";e&&(n.ws=new WebSocket(o)),n.ws.onopen=()=>{n.manualTick||(tickLoop(n),n.connected=!0,n.timer=setInterval(()=>{n.ws.readyState==3?(n.connected=!1,logger("The connection is time out...",n.getLogger,"info")):(n.connected=!0,tickLoop(n))},2e3))},recvMsg(n,e)}catch(o){logger("fetchError : ".concat(o),n.getLogger,"error")}}const createCollCallBackMap=new Map,dbConnectCallBackMap=new Map,dbDisConnectCallBackMap=new Map;function initFunc(n){n!==null&&(Module.rtejsLog=(e,o)=>{switch(e){case 0:n().handleDebugLog(o," ----------rtejslog");break;case 1:n().handleInfoLog(o," ----------rtejslog");break;case 2:n().handleWarnLog(o," ----------rtejslog");break;case 3:n().handleErrorLog(o," ----------rtejslog")}})}async function createCollection(n){const{client:e,db:o,coll:d,readable:I,success:f,fail:S}=n;let v=Module.addFunction((ee,he,ue,Ee)=>{const{resolvePromise:_e,rejectPromise:De}=createCollCallBackMap.get(Ee);releasePtr(Ee),ee===0?(logger("init success",e.getLogger,"info"),_e(ee)):De(ee),Module.removeFunction(v)},"viiii");const L=getPtrWithStr(d),x=getPtrWithStr(o),F=getPtrWithStr(d),[Y,j]=getPtrStringList(I),W=uuid_1.v4(),re=getPtrWithStr(W);createCollCallBackMap.set(L,{resolvePromise:f,rejectPromise:S}),Module._sync_client_create_coll(e.clientPtr,x,F,Y,I.length,re,getRealLenWithStrBI(W),v,L),releasePtr(x),releasePtr(F),releasePtr(re);for(let ee=0;ee{const{resolvePromise:re,rejectPromise:ee}=dbConnectCallBackMap.get(W);releasePtr(W),x===0?(logger("db connect success",e.getLogger,"info"),re(x)):ee(x),Module.removeFunction(f)},"viiiji");const S=getPtrWithStr(o),v=S;dbConnectCallBackMap.set(v,{resolvePromise:d,rejectPromise:I});let L=getPtrWithStr("");Module._sync_client_connect_database(e.clientPtr,S,L,getRealLenWithStrBI(""),f,v),releasePtr(L),e.connected&&tickLoop(e)}async function disconnectDatabase(n){const{client:e,databaseName:o,success:d,fail:I}=n;let f=Module.addFunction((L,x,F)=>{const{resolvePromise:Y,rejectPromise:j}=dbDisConnectCallBackMap.get(F);releasePtr(F),L===0?(logger("db disconnect success",e.getLogger,"info"),Y(L)):j(L),Module.removeFunction(f)},"viii");const S=getPtrWithStr(o),v=S;dbDisConnectCallBackMap.set(v,{resolvePromise:d,rejectPromise:I}),Module._sync_client_disconnect_database(e.clientPtr,S,f,v),e.connected&&tickLoop(e)}async function queryDoc(n){const{client:e,database:o,coll:d,option:I,buffer:f,success:S,fail:v}=n,L=Module.addFunction((W,re,ee,he,ue,Ee)=>{if(W===0){f.SetCount(Number(he)),ue===1&&f.SetMore(!0);for(let _e=0;_e{const ee=Module.UTF8ToString(F),he=Module._rte_crdt_path_iterator_create(Y);let ue,Ee=0,_e="";for(;;){const De=Module._malloc(4),Fe=Module._malloc(4);Module.setValue(Fe,0,"i64");const Ve=Module._malloc(4),Ge=Module._malloc(4);if(Ee=Module._rte_crdt_path_iterator_next(he,De,Fe,Ve),Ee===305){releasePtr(De),releasePtr(Fe),releasePtr(Ve),releasePtr(Ge);break}if(_e.length===0){if(De!=0){const He=Module.getValue(De,"i32");_e+=Module.UTF8ToString(He).valueOf()}}else{const He=Module.getValue(Fe,"i64");if(Number(He)>0){const At=Module.getValue(De,"i32");_e+="."+Module.UTF8ToString(At).valueOf()}else{const At=Module.getValue(Ve,"i64");_e+="["+Number(At).toString()+"]"}}releasePtr(De),releasePtr(Fe),releasePtr(Ve),releasePtr(Ge)}switch(ue=Module._rte_crdt_value_is_list(W)?[]:Module._rte_crdt_value_is_map(W)?{}:getScalarValue(W,!1),j){case 0:d.push(new CollectionEvent(ee,_e,CollectionEventType$1.Insert,ue));break;case 1:I?d.push(new CollectionEvent(ee,_e,CollectionEventType$1.Put,ue)):e.listenerCount("document-events")!=0&&(d=[new CollectionEvent(ee,"",CollectionEventType$1.Put,null)],e.emit("document-events",d));break;case 2:I?d.push(new CollectionEvent(ee,_e,CollectionEventType$1.Delete,ue)):e.listenerCount("document-events")!=0&&checkAll(ee,n.readable)&&(d=[new CollectionEvent(ee,"",CollectionEventType$1.Delete,null)],e.emit("document-events",d));break;case 6:d=[],I=!0;break;case 7:e.listenerCount("document-events")!=0&&e.emit("document-events",d),I=!1;break;case 8:e.listenerCount("document-events")!=0&&e.emit("document-events",[new CollectionEvent(ee,"",CollectionEventType$1.DocSyncEnd,null)])}},"viiiiiii");let d=[],I=!1;const f=getPtrWithStr(n.dbIn),S=getPtrWithStr(n.name),v=Module._sync_client_subscribe(n.client.clientPtr,f,S,o,0);if(releasePtr(f),releasePtr(S),v===0)return logger("The Collection : ".concat(n.name," has been subscribed successfully!"),n.getLogger,"info"),o;logger("The Collection : ".concat(n.name," has not been subscribed successfully!"),n.getLogger,"info")}function exceptionCallback(n){n.exceptionCb=Module.addFunction((e,o,d)=>{let I=Module.UTF8ToString(e).valueOf(),f=Module.UTF8ToString(o).valueOf();n.exceptionChan.listenerCount("exception")!=0&&n.exceptionChan.emit("exception",[I,f])},"viii"),Module._sync_client_set_exception_callback(n.clientPtr,n.exceptionCb,0)}var createModule=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var e,o,d=n;d.ready=new Promise((Me,ot)=>{e=Me,o=ot});var I=Object.assign({},d),f="./this.program",S=typeof window=="object",v=typeof importScripts=="function";typeof process=="object"&&typeof process.versions=="object"&&process.versions.node;var L,x="";(S||v)&&(v?x=self.location.href:typeof document<"u"&&document.currentScript&&(x=document.currentScript.src),x=x.indexOf("blob:")!==0?x.substr(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1):"",v&&(L=Me=>{var ot=new XMLHttpRequest;return ot.open("GET",Me,!1),ot.responseType="arraybuffer",ot.send(null),new Uint8Array(ot.response)})),d.print||console.log.bind(console);var F,Y,j=d.printErr||console.error.bind(console);Object.assign(d,I),I=null,d.arguments&&d.arguments,d.thisProgram&&(f=d.thisProgram),d.quit&&d.quit,d.wasmBinary&&(F=d.wasmBinary),d.noExitRuntime,typeof WebAssembly!="object"&&Yt("no native wasm support detected");var W,re,ee,he,ue,Ee,_e,De,Fe,Ve=!1;function Ge(){var Me=Y.buffer;d.HEAP8=W=new Int8Array(Me),d.HEAP16=ee=new Int16Array(Me),d.HEAPU8=re=new Uint8Array(Me),d.HEAPU16=new Uint16Array(Me),d.HEAP32=he=new Int32Array(Me),d.HEAPU32=ue=new Uint32Array(Me),d.HEAPF32=Ee=new Float32Array(Me),d.HEAPF64=De=new Float64Array(Me),d.HEAP64=_e=new BigInt64Array(Me),d.HEAPU64=new BigUint64Array(Me)}var He=[],At=[],Bt=[];function Tt(Me){He.unshift(Me)}function rt(Me){Bt.unshift(Me)}var ye=0,lt=null;function Yt(Me){d.onAbort&&d.onAbort(Me),j(Me="Aborted("+Me+")"),Ve=!0,Me+=". Build with -sASSERTIONS for more info.";var ot=new WebAssembly.RuntimeError(Me);throw o(ot),ot}var ct,ht,vt="data:application/octet-stream;base64,";function ar(Me){return Me.startsWith(vt)}function jt(Me){if(Me==ct&&F)return new Uint8Array(F);var ot=function(Ct){if(ar(Ct))return function(Kt){try{for(var Xr=atob(Kt),Lr=new Uint8Array(Xr.length),Jr=0;Jrjt(Kt))}(Me).then(Kt=>WebAssembly.instantiate(Kt,ot)).then(Kt=>Kt).then(Ct,Kt=>{j("failed to asynchronously prepare wasm: ".concat(Kt)),Yt(Kt)})}ar(ct="data:application/octet-stream;base64,AGFzbQEAAAABiwZXYAJ/fwBgAX8AYAF/AX9gAn9/AX9gA39/fwBgA39/fwF/YAR/f39/AGAEf39/fwF/YAZ/f39/f38Bf2AFf39/f38Bf2AFf39/f38AYAJ/fgBgBn9/f39/fwBgCH9/f39/f39/AX9gA39/fgBgB39/f39/f38Bf2AAAGAAAX9gBX9+fn5+AGABfwF+YAV/f39/fgF/YAV/f35/fwBgAn9/AX5gB39/f39/f38AYAR/fn5/AGACf34BfmAEf39/fwF+YAJ+fwF/YAR/f35/AGAIf39/f39/f38AYAV/f39/fAF/YAt/f39/f39/f39/fwF/YAZ/f39+f38AYAABfGACfn8AYAJ/fgF/YAR/fn5/AX9gAn98AGAKf39/f39/f39/fwF/YAABfmAIf39/fn5/f38Bf2ABfgF/YAF+AX5gDH9/f39/f39/f39/fwF/YAN/fn8AYAZ/f39/fn8Bf2APf39/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f35/AGAHf39/f39+fgF/YAZ/f39/fn4Bf2ADf39+AX9gC39/f39/f39/f39/AGAEf39+fgBgBH5+fn4Bf2AHf39/f35/fwBgCH9/f39+f39/AX5gDn9/f39/f39+f39/f39/AGAHf39+fn9/fwF/YAJ+fgF8YAF/AXxgBX9/f39+AGAIf35+fn9/f38Bf2AHf35+fn9/fwBgBX9/fn5/AX9gAnx/AGADf39/AXxgA39/fwF9YAR/f39+AX5gBn98f39/fwF/YAJ8fwF8YAJ+fgF9YAN+fn4Bf2AGf39/f35/AGAIf39/f39+f38Bf2AJf39/f35+f39/AX9gEX9/f39/f39/fn5/f39/f39/AX9gEH9/f39/f39/fn5/f39/f38Bf2AKf39/f39+f39/fwF/YAl/f39/f35/f38Bf2ALf39/f39+f39/f38Bf2AGf39/fn9/AX9gCX9/f39/f35/fwBgBH9/fn8Bf2AKf39/f39+fn9/fwBgBn9+f39/fwBgBH9/f34BfwI9CgFhAWEABgFhAWIAEAFhAWMACQFhAWQAAwFhAWUAAwFhAWYAIQFhAWcAEQFhAWgAIQFhAWkAAgFhAWoAAAPmD+QPAgMBAgMCAAMDAiICAQIBEAIDAAUFAAIDAQMDAAICEgIBAgAAAwMBBAID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IAFCADcCCCABQgA3AiAgAUHo3gE2AgAgAUEQNgIwIAFCADcCKCAACysBAX8DQCABIACnQf8AcSAAQv8AViICQQd0csAQpAEgAEIHiCEAIAINAAsLQAECfwJAAn8gACAAKAIQIgFGBEAgACEBIAAoAgBBEGoMAQsgAUUNASABKAIAQRRqCyECIAEgAigCABEBAAsgAAuuAQEGfyMAQRBrIgIkACAAKAIAIQMgAkEEaiIEIABBCGoQwAIgAigCBCAEIAIsAA9BAEgbIQVBgMECKAIABEBBiMECKAIAIQYjAEEQayIBJAAgASAFNgIIIAEgAzYCDCABIAY2AgRBgMECKAIAIgNFBEAQGQALIAMgAUEMaiABQQhqIAFBBGogAygCACgCGBEGACABQRBqJAALIAQQChogAEEEahDMARogAkEQaiQACwwAQfC/AigCACAATAsGACAAEAwLBQAQAQALNgEBf0EBIAAgAEEBTRshAAJAA0AgABBHIgENAUGo1wIoAgAiAQRAIAEREAAMAQsLEAEACyABC48BAQR/IwBBEGsiAyQAIAEoAgAhBCADIAEoAgQgAS0ACyICIALAQQBIIgIbNgIMIAMgBCABIAIbNgIIIAAoAgAgACAALQALIgTAQQBIIgIbIAMoAgggAygCDCIBIAAoAgQgBCACGyIAIAAgAUsiBBsQswQiAkF/IAQgACABSRsgAhshBSADQRBqJAAgBUEfdgs2ACAALAALQQBIBEAgACgCABAMCyAAIAEpAgA3AgAgACABKAIINgIIIAFBADoACyABQQA6AAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACyoBAX8CQCAAEA0iAiABSQRAIAAgASACaxDlCQwBCyAAIAAQICABEPcJCwsSACAAEJABBEAgACgCAA8LIAALCQAgABAgIAFqCwoAIAAoAgAQzAQLPgAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAALkAEBBX8CQCAAKAIEIgUgAC0ACyICIALAIgZBAEgbIAEoAgQgAS0ACyIEIATAIgRBAEgbRw0AIAEoAgAgASAEQQBIGyEBIAZBAE4EQANAIAJFIQMgAkUNAiAALQAAIAEtAABHDQIgAUEBaiEBIABBAWohACACQQFrIQIMAAsACyAAKAIAIAEgBRCzBEUhAwsgAwsMACAAIAFBHGoQiwoLGwEBfyMAQRBrIgEkACAAEO8KIAFBEGokACAACxsBAX9BCiEBIAAQkAEEfyAAEJgCQQFrBUEKCwt1AQF+IAAgASAEfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IAEgAn4gA0L/////D4N8IgFCIIh8NwMIIAAgBUL/////D4MgAUIghoQ3AwALEwAgAEE4ahDJASAAQRhqEEQgAAsLACAAQbjZABDWCQuLAgIDfwJ+AkAgACkDcCIEUEUgBCAAKQN4IAAoAgQiASAAKAIsIgJrrHwiBVdxRQRAIwBBEGsiAiQAQX8hAQJAIAAQggsNACAAIAJBD2pBASAAKAIgEQUAQQFHDQAgAi0ADyEBCyACQRBqJAAgASIDQQBODQEgACgCBCEBIAAoAiwhAgsgAEJ/NwNwIAAgATYCaCAAIAUgAiABa6x8NwN4QX8PCyAFQgF8IQUgACgCBCEBIAAoAgghAgJAIAApA3AiBFANACAEIAV9IgQgAiABa6xZDQAgASAEp2ohAgsgACACNgJoIAAgBSAAKAIsIgAgAWusfDcDeCAAIAFPBEAgAUEBayADOgAACyADC3IBA38CQCABEOkJIgIgABCvBiIDTQRAIAAQICIDIAEgAkECdCIEEFcaIwBBEGsiASQAIAAgAhC4AiABQQA2AgwgAyAEaiABQQxqEIsBIAFBEGokAAwBCyAAIAMgAiADayAAEA0iAEEAIAAgAiABEOQJCwsJACAAIAEQlwULEAAgABDhCiABEOEKc0EBcwsQACAAEOIKIAEQ4gpzQQFzC3gCA38BfSMAQRBrIgIkACAAQQFBwAAgAC0AHmt0IgE2AhAgACABEOgGNgIMIAAoAhAiAUGAgICAeEYhAyAAQYCAgIB4An8gACoCGCABs5QiBEMAAIBPXSAEQwAAAABgcQRAIASpDAELQQALIAMbNgIUIAJBEGokAAtgAgF/AX4DQCAAKAIMIAJBA3RqIgMoAgAEQCADKQIAIQQgAyABKQIANwIAIAEgBDcCACABIASnQYACajYCACACQQFqIgJBACACIAAoAhBHGyECDAELCyADIAEpAgA3AgALEQAgAC0ADARAIAAQChoLIAALaAEGfyMAQRBrIgMkACAAQSBqIQQgAUEgaiEFA0ACQCABIAVGDQBBASECIAAgBEYNACAALQAAIgYgAS0AACIHSQ0AQQAhAiAGIAdLDQAgAUEBaiEBIABBAWohAAwBCwsgA0EQaiQAIAILAgAL7wIBBn9B0MgCLQAABEBBzMgCKAIADwsjAEEgayICJAACQAJAA0AgAkEIaiIEIABBAnQiA2oCf0EBIAB0Qf////8HcSIFQQFyRQRAIAMoAgAMAQsgAEH/zQBBqNgAIAUbENUKCyIDNgIAIANBf0YNASAAQQFqIgBBBkcNAAtBABDUCkUEQEH45wEhASAEQfjnAUEYEOkDRQ0CQZDoASEBIARBkOgBQRgQ6QNFDQJBACEAQaTHAi0AAEUEQANAIABBAnRB9MYCaiAAQajYABDVCjYCACAAQQFqIgBBBkcNAAtBpMcCQQE6AABBjMcCQfTGAigCADYCAAtB9MYCIQEgAkEIaiIAQfTGAkEYEOkDRQ0CQYzHAiEBIABBjMcCQRgQ6QNFDQJBGBBHIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQdDIAkEBOgAAQczIAiABNgIAIAELDQAgACkDACABKQMAVAtAAQJ/IwBBEGsiASQAIAAtABAiAkH/AUcEQCABQQ9qIAAgAkECdEGUCGooAgARAAALIABB/wE6ABAgAUEQaiQAC08BAX8gASgCECICRQRAIABBADYCECAADwsgASACRgRAIAAgADYCECABKAIQIgEgACABKAIAKAIMEQAAIAAPCyAAIAI2AhAgAUEANgIQIAALwwoCBX8RfiMAQeAAayIFJAAgBEL///////8/gyEMIAIgBIVCgICAgICAgICAf4MhCiACQv///////z+DIg1CIIghDiAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIgtCgICAgICAwP//AFQgC0KAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEKDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQogAyEBDAILIAEgC0KAgICAgIDA//8AhYRQBEAgAiADhFAEQEKAgICAgIDg//8AIQpCACEBDAMLIApCgICAgICAwP//AIQhCkIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQCABIAuEIRlCACEBIBlQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rEGhBECAGayEGIAUpA1giDUIgiCEOIAUpA1AhAQsgAkL///////8/Vg0AIAVBQGsgAyAMIAMgDCAMUCIIG3kgCEEGdK18pyIIQQ9rEGggBiAIa0EQaiEGIAUpA0ghDCAFKQNAIQMLIANCD4YiC0KAgP7/D4MiAiABQiCIIgR+IhAgC0IgiCITIAFC/////w+DIgF+fCIPQiCGIhEgASACfnwiCyARVK0gAiANQv////8PgyINfiIVIAQgE358IhEgDEIPhiISIANCMYiEQv////8PgyIDIAF+fCIUIA8gEFStQiCGIA9CIIiEfCIPIAIgDkKAgASEIgx+IhYgDSATfnwiDiASQiCIQoCAgIAIhCICIAF+fCIQIAMgBH58IhJCIIZ8Ihd8IQEgByAJaiAGakH//wBrIQYCQCACIAR+IhggDCATfnwiBCAYVK0gBCAEIAMgDX58IgRWrXwgAiAMfnwgBCAEIBEgFVStIBEgFFatfHwiBFatfCADIAx+IgMgAiANfnwiAiADVK1CIIYgAkIgiIR8IAQgAkIghnwiAiAEVK18IAIgAiAQIBJWrSAOIBZUrSAOIBBWrXx8QiCGIBJCIIiEfCICVq18IAIgAiAPIBRUrSAPIBdWrXx8IgJWrXwiBEKAgICAgIDAAINQRQRAIAZBAWohBgwBCyALQj+IIRogBEIBhiACQj+IhCEEIAJCAYYgAUI/iIQhAiALQgGGIQsgGiABQgGGhCEBCyAGQf//AU4EQCAKQoCAgICAgMD//wCEIQpCACEBDAELAn4gBkEATARAQQEgBmsiB0H/AE0E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AgggBiABNgIMIAEgADYCDCABIAY2AggLQcjBAiAENgIAQbzBAiADNgIACyACQQhqIQALIApBEGokACAACwIAC1oBAn8jAEEQayIBJAAgAEIANwIAIABBPjoAHiAAQc2Zs/oDNgIYIABCADcCECAAQgA3AgggABAwIAAoAgwiAgRAIAJBACAAKAIQQQN0EB4aCyABQRBqJAAgAAskAQF/IAAoAgQgAC0ACyICIALAQQBIG60gARAUIAEgABDqARoLCgAgACgCABD0CgsLACAAKAIAEPoKwAsgAQF/IAAoAgwiAQRAIAEQDCAAQQA2AgwLIABCADcCEAuwAQICfwF+IwBBIGsiAiQAIAJBEGogARAQAkAgAi0AGEUEQCAAQQA6AAwgAEEAOgAADAELIAIpAxAiBCABKAIEIgOtVgRAIABBADoADCAAQQA6AAAMAQsgASADIASnIgNrNgIEIAEgASgCACIBIANqNgIAIAIgASADEEMgACACKAIINgIIIAAgAikDADcCACACQQA2AgggAkIANwMAIABBAToADCACEAoaCyACQSBqJAALBAAgAAsJACAAQQEQ/wILBABBAAskAQF/IAAoAgAhAiAAIAE2AgAgAgRAIAIgABCYAygCABEBAAsLNwEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIABEAgABC8CCABKAIMKAIAEAwLIAFBEGokAAswAQF/IAAoAgQiAiAAKAIISQRAIAIgASkDADcDACAAIAJBCGo2AgQPCyAAIAEQuQYLDQAgACgCABDzChogAAsNACAAKAIAEPkKGiAAC0oBAX8gACABSQRAIAAgASACEB0PCyACBEAgACACaiEDIAEgAmohAQNAIANBAWsiAyABQQFrIgEtAAA6AAAgAkEBayICDQALCyAAC0wBAX4gACkDACECIAAgASkDADcDACABIAI3AwAgACkDCCECIAAgASkDCDcDCCABIAI3AwggACkDECECIAAgASkDEDcDECABIAI3AxALYgEDfyMAQRBrIgIkACAAQSBqIQMDQCAAIANHBEAgAC0AACEEIAAgAS0AADoAACABIAQ6AAAgAUEBaiEBIABBAWohAAwBCwsgAiABNgIMIAIgAzYCCCACKAIMGiACQRBqJAALGAAgAEHUAGoQChogAEHIAGoQDxogABAKCyYBAX4gACgC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CyABKAIAIARBBHRqIQRBAQs6AAQgACAENgIAIAVBEGokAAtZAQJ/IABB/wE6ABggAEEAOgAAIwBBEGsiAiQAIAAQRCABLQAYIgNB/wFHBEAgAkEPaiAAIAEgA0ECdEG0CGooAgARBAAgACABLQAYOgAYCyACQRBqJAAgAAu4AgEIfyMAQRBrIgMkACADIAE2AgwgAUHv////B00EQAJAIAAQJyABTw0AIAMgABANNgIIIANBDGogA0EIahC/AigCABC+AiIBIAAQJ0YNACMAQRBrIgIkACAAECchBSAAEA0hBgJAAn8gARDjAyIJBEBBASEEIAFBAWohByAAIQEgACgCAAwBCyABQQFqIQQCfyABIAVLBEAgAkEIaiAAIAQQlwIgAigCCCEBIAIoAgwMAQsgAkEIaiAAIAQQlwIgAigCCCIBRQ0CIAIoAgwLIQcgABCQASEEIAAQIAshCCABIAggABANQQFqEJsBIAQEQCAAIAggBUEBahDfBAsCQCAJRQRAIAAgBxCZASAAIAYQbSAAIAEQmgEMAQsgACAGEHcLCyACQRBqJAALIANBEGokAA8LEGwAC78BAQN/IAAtAABBIHFFBEACQCABIQMCQCACIAAiASgCECIABH8gAAUgARCBCw0BIAEoAhALIAEoAhQiBWtLBEAgASADIAIgASgCJBEFABoMAgsCQCABKAJQQQBIDQAgAiEAA0AgACIERQ0BIAMgBEEBayIAai0AAEEKRw0ACyABIAMgBCABKAIkEQUAIARJDQEgAyAEaiEDIAIgBGshAiABKAIUIQULIAUgAyACEB0aIAEgASgCFCACajYCFAsLCwsRACAAIAEgACgCACgCHBEDAAsRACAAIAEQEiIAQQE6ABAgAAuhAQECfwJAIAAQDUUgAiABa0EFSHINACABIAIQ1AQgAkEEayEEIAAQICICIAAQDWohBQJAA0ACQCACLAAAIQAgASAETw0AIABBAEwgAEH/AE5yRQRAIAEoAgAgAiwAAEcNAwsgAUEEaiEBIAIgBSACa0EBSmohAgwBCwsgAEEATCAAQf8ATnINASACLAAAIAQoAgBBAWtLDQELIANBBDYCAAsLbQEBfyMAQYACayIFJAAgBEGAwARxIAIgA0xyRQRAIAUgAUH/AXEgAiADayIDQYACIANBgAJJIgEbEB4aIAFFBEADQCAAIAVBgAIQYiADQYACayIDQf8BSw0ACwsgACAFIAMQYgsgBUGAAmokAAsIACAAIAEQHAtQAQF+AkAgA0HAAHEEQCABIANBQGqthiECQgAhAQwBCyADRQ0AIAIgA60iBIYgAUHAACADa62IhCECIAEgBIYhAQsgACABNwMAIAAgAjcDCAudCwELfyMAQTBrIggkACAAKAIAIgcoAgBB+d2rxQJGBEADQAJAAkACQAJAIAcoAhggC00EQEEAIQMDQCADIAAoAgRPDQIgACgCCCADQQR0aiIEKAIAIAgQ2AYhBiAIIAgtAAAgBC0ABHI6AAAgASAGIAggASgCABEEACABIAQoAgggBCgCDCABKAIAEQQAIAQoAgggBiAMamohDCADQQFqIQMMAAsACyAAIAcoAhwgC0EwbGoiBSgCEGohBCAAIAUoAhRqIQMCQAJAAkAgBSgCCCIGDgQBAAIAAgsgBS0AIEEEcQRAQQAhAiAFKAIEIAQoAgBHDQYCQCAFKAIMQQ5rDgMAAgACCyADKAIAIgRFDQYgBCAFKAIcRw0BDAYLAkACQCAGQQFrDgMAAwEDCwJAAkAgBSgCDEEOaw4DAAEAAQtBACECIAMoAgAiBEUNByAEIAUoAhxGDQcMAgsgBCgCAA0BDAULQQAhAiAFIAMQnAsNBQsgBSADIAEQlgshAgwECyAEKAIAIgRFDQIgAygCACEHIAUtACBBAXEEQCAFKAIEIAgQ2AYhCkEAIQJBACEDIAQhBgJAAkACQAJAAkACQAJAAkACQCAFKAIMDg4BAgcFBAADBwUABwAIAQYLIARBA3QhBgwHC0EAIQYDQCACIARGDQcgByACQQJ0aigCABDaBiAGaiEGIAJBAWohAgwACwALA0AgAiAERwRAIAcgAkECdGooAgAQ2wYgA2ohAyACQQFqIQIMAQsLIAMhBgwFCwNAIAIgBEcEQCAHIAJBAnRqKAIAEK8BIANqIQMgAkEBaiECDAELCyADIQYMBAsDQCACIARHBEAgByACQQN0aikDABDZBiADaiEDIAJBAWohAgwBCwsgAyEGDAMLQQAhBgNAIAIgBEYNAyAHIAJBA3RqKQMAEOwEIAZqIQYgAkEBaiECDAALAAtBi88AQZHHAEGCDkHNLxAAAAsgBEECdCEGC0ECIQkgCCAILQAAQQJyOgAAIAEgBiAIIApqEN0BIApqIgogCCABKAIAEQQAQQAhAkEAIQMCQAJAAkACQAJAAkACQAJAAkACQCAFKAIMDg4AAQgEAwcCCAQHCAcFAAYLA0AgAyAERgRAIAIhBAwKBSABIAcgA0ECdGooAgAgCEEgaiIFEJoLIgkgBSABKAIAEQQAIANBAWohAyACIAlqIQIMAQsACwALA0AgAiAERwRAIAEgByACQQJ0aigCACAIQSBqIgUQmQsiCSAFIAEoAgARBAAgAkEBaiECIAMgCWohAwwBCwsgAyEEDAcLA0AgAiAERwRAIAEgByACQQJ0aigCACAIQSBqIgUQ3QEiCSAFIAEoAgARBAAgAkEBaiECIAMgCWohAwwBCwsgAyEEDAYLA0AgAiAERwRAIAEgByACQQN0aikDACAIQSBqIgUQmAsiCSAFIAEoAgARBAAgAkEBaiECIAMgCWohAwwBCwsgAyEEDAULA0AgAyAERgRAIAIhBAwGBSABIAcgA0EDdGopAwAgCEEgaiIFEOsEIgkgBSABKAIAEQQAIANBAWohAyACIAlqIQIMAQsACwALA0AgAiAERg0EIAggByACQQJ0aigCAEEARzoAICABQQEgCEEgaiABKAIAEQQAIAJBAWohAgwACwALQYvPAEGRxwBB6A5BssUAEAAAC0EDIQkLIAEgBCAJdCIEIAcgASgCABEEAAsgBCAGRw0CIAYgCmohAgwEC0EAIQYgBSgCDBDIAiEDQQAhAgNAIAQgBkYNBCAFIAcgARCWCyACaiECIAZBAWohBiADIAdqIQcMAAsACyAIQTBqJAAPC0HTLUGRxwBBhg9B2CMQAAALQQAhAgsgC0EBaiELIAIgDGohDCAAKAIAIQcMAAsAC0GAzQBBkccAQa0PQbYjEAAACz4AIAAgARAjIgBBDGogAUEMahAjGiAAQRhqIAFBGGoQuwMgAEFAayABQUBrKQMANwMAIAAgASkDODcDOCAACwsAIAAgAUEoENMJCwUAEBkACwkAIAAgATYCBAuuAQEGfyMAQRBrIgIkACACQQhqIgMgABDDAhoCQCADLQAARQ0AIAJBBGoiAyAAIAAoAgBBDGsoAgBqECUgAxDnAyEEIAMQIiACIAAQ5gMhBSAAIAAoAgBBDGsoAgBqIgYQ+QIhByACIAQgBSgCACAGIAcgASAEKAIAKAIYEQkANgIEIAMQwQJFDQAgACAAKAIAQQxrKAIAakEFEMQCCyACQQhqEMICIAJBEGokACAACw4AIABBDGoQChogABAKCxYAIAAtALgBQQFHBEAQGQALIABBCGoLCwAgAEH4yAIQ8wELSgEBfyAAQQA2AgwgACADNgIQIAEEQCABELAJIQQLIAAgBDYCACAAIAQgAkEYbGoiAjYCCCAAIAQgAUEYbGo2AgwgACACNgIEIAALewEDfyMAQRBrIgUkAAJAIAIgABAnIgQgABANIgNrTQRAIAJFDQEgABAgIgQgA2ogASACEJsBIAAgAiADaiIBELgCIAVBADoADyABIARqIAVBD2oQdgwBCyAAIAQgAiAEayADaiADIANBACACIAEQwwQLIAVBEGokACAACxEAIAAgASABKAIAKAIUEQAACw8AIAAgACgCACgCEBECAAsMACAAIAEtAAA6AAALIQAgACAALQALQYABcSABcjoACyAAIAAtAAtB/wBxOgALCwsAIABB8MgCEPMBCzMAIAAQ6AMgACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCAAvRBQEJfyMAQcABayIDJAAgACgCACEJIANCADcDiAEgA0IANwOAASADQgA3A3ggA0GQAWoQ7gEgA0IANwO4ASADQgA3A7ABIwBBIGsiBCQAIANBhAFqIgUiAigCCCACKAIAIgZrQfAAbUEPSQRAIAIgBEEMakEPIAIoAgQgBmtB8ABtIAJBCGoQlgMiAhC8CyACEJUDCyAEQSBqJAAgCSABpyIKQcgAbGoiAiEIIAJBDGohBiACKAIMQYAOaiECA0AgCCgCECACRgRAAkAgBigCACIFIAYoAgBBgA5qIgQgBWtB8ABtQfAAbGohBSACIARHBEAgBiAFIAIgBGtB8ABtQfAAbGogBigCBCAFEN0EENYECyAJIApByABsaiIEKAIAIAQoAgRGDQAjAEEgayIFJAAgA0H4AGoiAigCCCACKAIAIgdrQcgAbUEQSQRAIAIgBUEMakEQIAIoAgQgB2tByABtIAJBCGoQjQIiAhD7CSACEL4ECyAFQSBqJAAgBCgCAEGACWohAgNAIAQoAgQgAkYEQCAEKAIAIgcgBCgCAEGACWoiBSAHa0HIAG1ByABsaiEHIAIgBUcEQCAEIAcgAiAFa0HIAG1ByABsaiAEKAIEIAcQlQYQugQLBSADQfgAaiACEK4CIAJByABqIQIMAQsLCwUgBSACEKgEIAJB8ABqIQIMAQsLIANBCGogCCgCEEHwAGsQPSEIIAYQrgggAyADKAKIASADKAKEAWtB8ABtrSIBNwOwASADKAJ8IQYgAygCeCECA0AgAiAGRwRAIAMgASACKQM4fCIBNwOwASACQcgAaiECDAELCyAJIApByABsIgZqIgIgAikDOCABQn+FfDcDOCAEENsCIANB+ABqIgIQ2wIgACAAKAIAIAZqQcgAaiACENEHIABBDGogACgCDCAKQfAAbGogCBDBASAIECkaIAIQXRogA0HAAWokAAtoAgF/BH4jAEEgayIBJAAgAUEQaiAAKQMAQgBC6drg2Y7B+u+df0IAECggASAAKQMIIAEpAxggASkDEIV8QgBC6drg2Y7B+u+df0IAECggASkDCCEFIAEpAwAhBCABQSBqJAAgBSAEhQsMACAAIAFByAgQ1AkLjgEAIAAgASkDADcDACAAIAEoAgg2AgggAUIANwMAIAFBADYCCCAAQRBqIAFBEGpBOBAdGiAAQcgAaiABQcgAahAjGiAAIAEoAlw2AlwgACABKQJUNwJUIAFCADcCVCABQQA2AlwgACABKQN4NwN4IAAgASkDcDcDcCAAIAEpA2g3A2ggACABKQNgNwNgIAALnwECA34EfyABKAIEIQUgAAJ/AkADQCAFRSAEIgJCP1ZyDQEgASgCACIILQAAIgZB/wBxIgdFIAJCP1JyRSAHQf8AR3ENASABIAVBAWsiBTYCBCABIAhBAWo2AgAgAkIHfCEEIAetIAKGIAOEIQMgBsBBAEgNAAsgACADQoB/IAKGQgAgBkHAAHEbhDcDAEEBDAELIABBADoAAEEACzoACAvGCQIEfwZ+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiC0L///////8/gyEJIAIgBCAIGyICQjCIp0H//wFxIQcgC0IwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5IAVBBnStfKciBUEPaxBoIAYpA2ghCSAGKQNgIQpBECAFayEFCyABIAMgCBshAyACQv///////z+DIQQgB0UEQCAGQdAAaiADIAQgAyAEIARQIgcbeSAHQQZ0rXynIgdBD2sQaEEQIAdrIQcgBikDWCEEIAYpA1AhAwsgBEIDhiADQj2IhEKAgICAgICABIQhASAJQgOGIApCPYiEIQ4gAiALhSENAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEGggBkEwaiACIAEgBxDGAiAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQkgDkKAgICAgICABIQhDCAKQgOGIQoCQCANQgBTBEBCACEDQgAhBCAJIAqFIAEgDIWEUA0CIAogCX0hAiAMIAF9IAkgClatfSIEQv////////8DVg0BIAZBIGogAiAEIAIgBCAEUCIHG3kgB0EGdK18p0EMayIHEGggBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAx8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgC0KAgICAgICAgIB/gyEBIAVB//8BTgRAIAFCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBoIAYgAiAEQQEgBWsQxgIgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIAKnQQdxIgVBBEutIARCPYYgAkID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zgEBBH8jAEEQayIIJAACQCAARQRADAELIAQoAgwhByACIAFrIglBAEoEQCAAIAEgCSAAKAIAKAIwEQUAIAlHDQELIAcgAyABayIBa0EAIAEgB0gbIgFBAEoEQCAIQQRqIgcgASAFEMIEIAAgCCgCBCAHIAgsAA9BAEgbIAEgACgCACgCMBEFACEFIAcQChogASAFRw0BCyADIAJrIgFBAEoEQCAAIAIgASAAKAIAKAIwEQUAIAFHDQELIARBADYCDCAAIQYLIAhBEGokACAGC2IBAn8jAEEgayICJAACQCABIAAoAgggACgCACIDa0EDdUsEQCABQYCAgIACTw0BIAAgAkEMaiABIAAoAgQgA2tBA3UgAEEIahC8AiIAELIGIAAQuwILIAJBIGokAA8LEAEACzsBAX8gACAGNgIAAkACQCAAKAIEIgcEQCAHKAIAIAVHDQEgB0EAEPcBCwwBCyAEIAMgAiABEAAACyAAC04BAX8gACgCBCICIAAoAghHBEAgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAAgAkEgajYCBA8LIAAgARCaBgsLACAAIAE2AgAgAAsVACAAIAEgAiADQcgAQeTxuBwQzQELDwAgACAAKAIAKAIkEQIACxEAIAAgASABKAIAKAIgEQAACxEAIAAgASABKAIAKAIsEQAACwwAIABBgoaAIDYAAAscACAAIAFB4P///wdBBEH///8/QYCAgMAAEP0CCxEAIAAQICAAEA1BAnRqELEGCw4AIAAQICAAEA1qELEGCxYAIAAgASACIAMgACgCACgCIBEHABoLEAAgAEEgRiAAQQlrQQVJcgsZACACQQEQ4wohASAAIAI2AgQgACABNgIACw4AIAAoAghB/////wdxCxIAIAEgASACQQJ0aiAAEOoKGgsOACAAIAEpAwA3AwAgAAtKAQF/IABBADYCDCAAIAM2AhAgAQRAIAEQggwhBAsgACAENgIAIAAgBCACQQR0aiICNgIIIAAgBCABQQR0ajYCDCAAIAI2AgQgAAsSACAALQAoBEAgAEEIahCDAQsLZgECfyAAQf8BOgAYIABBADoAACMAQRBrIgIkACAAEIMBIAEtABgiA0H/AUcEQCACQZjaACkDADcDCCACQQdqIAAgASACQQhqIANBAnRqKAIAEQQAIAAgAS0AGDoAGAsgAkEQaiQACw4AIAAgARDMBUEBOgB4Cz0BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQUBqIgE2AgggARCUARoMAQsLIAAoAgAiAARAIAAQDAsLFAAgACABIAIgA0EGQYCAgCAQ2gkLEAAgAC0AEEUEQBAZAAsgAAsgAQF/IAAtADBBAkYEfyAAQRBqEKUBLQAQQQVGBUEACwsNACAAIAFByNkAENcJC8ABAgR/A34jAEEgayIEJAAgASgCACEGIAQgASgCBCABLQALIgUgBcBBAEgiBxsiBTYCHCAEIAYgASAHGzYCGANAIAUEQCAEIARBGGoQECAEIAQpAwAgA0IAIAIgCFEbfCIJNwMQAkAgACgCBCAAKAIAIgFrQQN1rSAIVgRAIAEgCKdBA3RqIgEgCSABKQMAIgogCSAKVhs3AwAMAQsgACAEQRBqEKMBCyAIQgF8IQggBCgCHCEFDAELCyAEQSBqJAALRwECfyMAQRBrIgIkACACIAE3AwggACABpxDEASIDIAMpAxBCAX0iATcDECABUARAIAIgAEEYaiACQQhqEJ8BCyACQRBqJAAL4QICB38BfiMAQTBrIgEkACAALQAhRQRAIABBAWohAyABQQA2AiggAUIANwMgQgEgAUEgahAUA0AgAC0AACECIAAoAjQgACgCMCIEa0Esba0gCFgEQAJAIAJFDQAgACgCKCICQQRrLQAARQ0AIAJBQGoQpgIgAUEgaiAAKAIoQT9rQSAQcxoLIAEgASgCICABQSBqIAEsACsiAkEASCIEGyABKAIkIAJB/wFxIAQbrRD0AiAALQAhIQcgAyABKQAYNwAYIAMgASkAEDcAECADIAEpAAg3AAggAyABKQAANwAAIAdFBEAgAEEBOgAhCyABQSBqEAoaBSAIpyEFAkAgAkUNACAFQQZ0IgIgACgCJGoiBi0APEUNACAGEKYCIAFBIGogACgCJCACakEBakEgEHMaIAAoAjAhBAsgAUEgaiAEIAVBLGxqQQxqQSAQcxogCEIBfCEIDAELCwsgAUEwaiQACw4AIABBGGoQDxogABAPCzEBAn4Cf0EBIAApAwAiAiABKQMAIgNUDQAaQQAgAiADVg0AGiAAQQhqIAFBCGoQGwsLhwEBBH8jAEEQayICJAACQCAALQDgBkUNACAAQcAGaiEDIABB5AZqIQQgASgCBCEFIAEoAgAhAANAIAAgBUYNAQJAIAAoAgAiASkDmAFQRQRAIAJBCGogBCABQZgBahCfAQwBCyACQQhqIAMgAUGQAWoQnwELIABBBGohAAwACwALIAJBEGokAAsbAQF/IAAgARDaBSECIAFBEGoQ1gUgARAMIAIL9QEBBH8jAEEQayIEJAAgBCABNgIMIAAoAogDBEAgAEH4AmogASgCuAMQ5gELIABBvANqIgMgBEEMahDDAyIBIAAoAsADRwRAIABBsANqIAEoAgQQpgQgAyABEIoJCyACKAIEIQUgAigCACEAA0AgACAFRgRAIARBEGokAAUgACgCACIBIAQoAgwiAygCuAMQvgMhAiABKAKEASACQdACbGohASMAQRBrIgIkACACIAM2AgwgAUGkAmoiBiACQQxqEMMDIgMgASgCqAJHBEAgAUGYAmogAygCBBCmBCAGIAMQigkLIAJBEGokACAAQQRqIQAMAQsLCw8AIAAgARCSCUEBOgDAAQtNACAAAn8gAS0APEUEQCAAQQA6AABBAAwBCyABEKYCIAAgASkAATcAACAAIAEpABk3ABggACABKQARNwAQIAAgASkACTcACEEBCzoAIAuBAQECfyAAKAIEIAAoAghJBEAgACABEMQJDwsjAEEgayIDJAAgA0EMaiAAIAAoAgQgACgCAGtByABtQQFqEMwDIAAoAgQgACgCAGtByABtIABBCGoQjQIiAigCCCABEGoaIAIgAigCCEHIAGo2AgggACACEPsJIAIQvgQgA0EgaiQACwsAIABB2NgAENcDC40CAgN/AX4jAEEwayIBJAAgAEEIaiECAkACQAJAAkACQCAALQAgQQJrDgQAAwECBAsgACgCACICKAIEIAItAAsiAiACwEEASBtFDQMgACAAKQMIEOwBDAMLIAFBADYCLCABQgA3AiQgAUEkaiIDIAIQVCABIAEoAiQ2AhggASkCKCEEIAFBADYCLCABIAQ3AhwgAUIANwIkIAAgAUEYaiIAENADIAAQDxogAxAPGgwCCyAAIAIgACkDEBCIBgwBCyAAQRBqIAIQVCABIAAoAhA2AgwgASAAKAIUNgIQIAEgACgCGDYCFCAAQQA2AhggAEIANwMQIAAgAUEMaiIAENADIAAQDxoLIAFBMGokAAuTBAIEfwF+IwBBQGoi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ASgCAEEMaygCAGooAkgiAQRAIwBBEGsiAiQAIAEgASgCAEEMaygCAGooAhgEQCACQQhqIAEQwwIaAkAgAi0ACEUNACABIAEoAgBBDGsoAgBqKAIYEPsKQX9HDQAgASABKAIAQQxrKAIAakEBEMQCCyACQQhqEMICCyACQRBqJAALIABBAToAAAsgAAsJACAAIAEQtAkLCAAgAEH/AXELUAEBfgJAIANBwABxBEAgAiADQUBqrYghAUIAIQIMAQsgA0UNACACQcAAIANrrYYgASADrSIEiIQhASACIASIIQILIAAgATcDACAAIAI3AwgL2wECAX8CfkEBIQQCQCAAQgBSIAFC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBRGw0AIAJCAFIgA0L///////////8AgyIGQoCAgICAgMD//wBWIAZCgICAgICAwP//AFEbDQAgACAChCAFIAaEhFAEQEEADwsgASADg0IAWQRAQX8hBCAAIAJUIAEgA1MgASADURsNASAAIAKFIAEgA4WEQgBSDwtBfyEEIAAgAlYgASADVSABIANRGw0AIAAgAoUgASADhYRCAFIhBAsgBAsoACAAQRFPBEBBi88AQZHHAEHwCUGdChAAAAsgAEECdEGg2AFqKAIACxQAIAEoAgAgACgCCCAAKAIEEQAAC6gCAQJ/IAYoAgQhCCAGLQALIQcgAEEANgIIIABCADcCACAAQRNBEiABGyAIIAcgB8BBAEgbahBhIABB6zEQ6gMgACACEOoDAkAgAUUEQCAAIAMQ7gsgACAEEO0LIAAgBRDqAwwBCyAAIAQQ7QsjAEEQayIBJAAgASAFNgIMIAAgAUEMakEEEHMaIAFBEGokAAsgBigCBCAGLQALIgEgAcBBAEgbrSIEpyEBAkAgBEL//wFYBEAgACABQf//A3EQ6gMMAQsgACABQYCAAnJB//8DcRDqAyAEQg+IIQQDQCAEUA0BIAAgBKdB/wBxIARC/wBWQQd0chDuCyAEQgeIIQQMAAsACyAAIAYoAgAgBiAGLQALIgDAQQBIIgEbIAYoAgQgACABGxBzGgu5BAELfyMAQeABayIDJAAgAC0AhANFBEAgAEEBIAAtAGRBAWpB/wFxIgEgAUEBTRs6AGQLIABBADsBNCAAQYgDaiEIIANBtAFqEPMEIQkCfyADQagBaiIBIABB2ABqIgIoAgA2AgAgASACKAIEIgQ2AgQgASACKAIIIgU2AgggAUEEaiEGIAVFBEAgASAGNgIAIAEMAQsgBCAGNgIIIAJCADcCBCACIAJBBGo2AgAgAQsiBkEEaiEEIAYoAgAhAiADQRxqIQUDQAJAIAIgBEYEQCADQQxqIgFBADYCCCABIAE2AgQgASABNgIAIAAoAlQiBQRAIAAoAlAiBCgCACIHIAAoAkwiAigCBDYCBCACKAIEIAc2AgAgASgCACIHIAQ2AgQgBCAHNgIAIAEgAjYCACACIAE2AgQgASABKAIIIAVqNgIIIABBADYCVAsgASgCBCECIANBHGohBANAIAEgAkYNAiACLwEIIQBBAhAXBEAgBBATIQogA0ECNgIYIAogCBARQa7WABAOIAAQbhogA0EYahAWCyADQRhqIAJBGGoQOCEAIAMoAigEQCAAQeUAIAkQ8QQLIAAQFRogAigCBCECDAALAAtBAhAXBEAgBRATIQsgA0ECNgIYIAsgCBARQZTWABAOIAIpAxAQgQEaIANBGGoQFgsgA0EYaiACQShqEDghASADKAIoBEAgAUHlACAJEPEECyABEBUaIAIQtQEhAgwBCwsgARDyCyAGEPELIANB4AFqJAALmAEBAn8CQCAAKAIEIAAoAghJBEAgACAAKAIEIAEoAgAQC0EMajYCBAwBCyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0EMbUEBahDSAyAAKAIEIAAoAgBrQQxtIABBCGoQ+wIiAigCCCABKAIAEAsaIAIgAigCCEEMajYCCCAAIAIQvAQgAhC7BCADQSBqJAALIAAoAgQaCwkAIABBEBD+AgsdACAAIAFB8P///wdBA0H/////AEGAgICAARD9AgsHACAAKAIEC+IBAQZ/IAAoAgAgACAALQALIgPAQQBIIgQbIQIgAiAAKAIEIAMgBBtqIQUjAEEQayIEJAAgBSACayIBIQMDQCADQQRPBEAgAigAAEGV08feBWwiAEEYdiAAc0GV08feBWwgAUGV08feBWxzIQEgA0EEayEDIAJBBGohAgwBCwsCQAJAAkACQCADQQFrDgMCAQADCyACLQACQRB0IAFzIQELIAItAAFBCHQgAXMhAQsgASACLQAAc0GV08feBWwhAQsgAUENdiABc0GV08feBWwiAEEPdiAAcyEGIARBEGokACAGC2MBAX8gAEGI3AA2AgAgACgCBCEBAkAgAC0AIARAAkAgAQRAIAEoAgBBkJYBRw0BIAFBABD3AQsMAgtB+hhB+8cAQZwDQc/BABAAAAsgARAMCyAAQRRqEAoaIABBCGoQChogAAshACAAQQA6ACggAEEAOgAAIAEtACgEQCAAIAEQ7gYLIAALzQECBH8BfiMAQZABayIDJAACQCAALQBADQAgACgCACABIAIQpAMNACADQQA6AIgBIANB8ABqIQQCQCACLQAQQQFGBEAgAyACKAIINgJgIAMgAikCADcDWCACQgA3AgAgAkEANgIIIANBOGogBBBgIQUgACABIANB2ABqIgAgA0EwakEAEIsFIAUQRCAAEAoaDAELIAIQsgEpAwAhByADQRBqIAQQYCEGIAAgASAHIANBCGpBABCKBSAGEEQLIANB8ABqEEQLIANBkAFqJAALeAECfiACKQMAIQMCfwJAIAEpAwAiBCAAKQMAWgRAQQAgAyAEWg0CGiABIAIQXkEBIAEpAwAgACkDAFoNAhogACABEF4MAQsgAyAEVARAIAAgAhBeQQEPCyAAIAEQXkEBIAIpAwAgASkDAFoNARogASACEF4LQQILC3gBAn4gAikDACEDAn8CQCABKQMAIgQgACkDAFoEQEEAIAMgBFoNAhogASACEFhBASABKQMAIAApAwBaDQIaIAAgARBYDAELIAMgBFQEQCAAIAIQWEEBDwsgACABEFhBASACKQMAIAEpAwBaDQEaIAEgAhBYC0ECCwtqAQJ/IAEgABAzIQQgAiABEDMhAwJ/AkAgBEUEQEEAIANFDQIaIAEgAhBZQQEgASAAEDNFDQIaIAAgARBZDAELIAMEQCAAIAIQWUEBDwsgACABEFlBASACIAEQM0UNARogASACEFkLQQILCwcAIAEQChoLIQEBfyABKAKwAyIEIAQoAgA2AgQgACABIAQgAiADEKAFC04BAX8gACgCBCICIAAoAghJBEAgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAAgAkEgajYCBA8LIAAgARCaBgt/AQJ/IAAoAgQgACgCCEkEQCAAIAEQgQgPCyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0EGdUEBahCrAyAAKAIE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AgRAIAYpA4ADIRYCfyADLQAwBEAgBkEAOgAwIAYgFjcDICACIAcgBkEgaiIFIAMQqwggBQwBCyAGQQA6ABggBiAWNwMIIAIgByAGQQhqIgMQqgggAwsQKgsgBikDOCAGKQNAhFANACAAIAZBOGoQsAMLIA4QOgsgB0GAAWohBwwBCwsLIAZB5AJqEKEBQQAhBwsgBkGABGokACAHC4oBAQJ/IAAoAgQgACgCCEkEQCAAIAAoAgQgARDKBUEcajYCBA8LIwBBIGsiAyQAIANBDGogACAAKAIEIAAoAgBrQRxtQQFqEMkFIAAoAgQgACgCAGtBHG0gAEEIahC0AyICKAIIIAEQygUaIAIgAigCCEEcajYCCCAAIAIQsgggAhCxCCADQSBqJAALFAAgACABIAIgA0EHQYCAgBAQ2gkLCQAgAEEYEL8EC7IBAQN/IAAoAgQhAiAAKAIAIQQgASgCBCEDA0AgAiAERwRAIANBGGsiAyACQRhrIgIpAwA3AwAgAyACKAIINgIIIAJCADcDACACQQA2AgggAyACKQMQNwMQDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC5AIAgt/An4jAEGgAWsiAyQAIANBADYCACMAQRBrIggkACABEEEiDadB/wFxQYACciEJIA0gAEE4aiICMQAeiKchCwNAAkACQAJAIAIoAgwgC0EDdGoiBSgCACIEIAlGBEAgASACKAIAIAUoAgRBGGxqECRFDQIgAigCACECIAUoAgQhASADQQA6AJwBIAMgAiABQRhsajYCmAEMAQsgBCAJTw0BIAggATYCDCAIIAM2AgggCEEMaiEGIAhBCGohASMAQRBrIgckAAJAIAIoAgQiBSACKAIISQRAIAEoAgAhASAFIAYoAgAiBCkCADcCACAFIAQoAgg2AgggBEIANwIAIARBADYCCCAFIAE0AgA3AxAgAiAFQRhqNgIEDAELIwBBIGsiBSQAIAVBDGogAiACKAIEIAIoAgBrQRhtQQFqEIcBIAIoAgQgAigCAGtBGG0gAkEIahByIQogASgCACEBIAooAggiBCAGKAIAIgYpAgA3AgAgBCAGKAIINgIIIAZCADcCACAG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IAUQnwIgBEEgaiQACyACKAIEGiADIAMpAIgBNwMIIAMgAykAkAE3AxAgAyADKQCYATcDGCADIAMpAIABNwMAIAAgAy0AfCABIAMQugUaIAYQvAMLIANBoAFqEAoaIANBsAFqJAALZgECfyMAQRBrIgMkACAAIAEoAgQgAS0ACyIAIADAQQBIGyIAQQFqEIkJIgQoAgAgBCAELAALQQBIGyABKAIAIAEgASwAC0EASBsgABBXIABqIgAgAjoAACAAQQA6AAEgA0EQaiQACxAAIAAtAMABBEAgABDoAQsLjQMBBH8jAEEQayIDJAAgASAAEBshBSACIAEQGyEEAn8CQCAFRQRAQQAgBEUNAhogAyABKAIINgIIIAMgASkCADcDACABIAIoAgg2AgggASACKQIANwIAIAIgAygCCDYCCCACIAMpAwA3AgBBASABIAAQG0UNAhogAyAAKAIINgIIIAMgACkCADcDACAAIAEoAgg2AgggACABKQIANwIAIAEgAygCCDYCCCABIAMpAwA3AgAMAQsgBARAIAMgACgCCDYCCCADIAApAgA3AwAgACACKAIINgIIIAAgAikCADcCACACIAMoAgg2AgggAiADKQMANwIAQQEMAgsgAyAAKAIINgIIIAMgACkCADcDACAAIAEoAgg2AgggACABKQIANwIAIAEgAygCCDYCCCABIAMpAwA3AgBBASACIAEQG0UNARogAyABKAIINgIIIAMgASkCADcDACABIAIoAgg2AgggASACKQIANwIAIAIgAygCCDYCCCACIAMpAwA3AgALQQILIQYgA0EQaiQAIAYLCwAgASAAQSAQcxoLigoBJn8jAEHwAGsiBCQAIARBIGpBAEHMAPwLACAEQSA2AmwgBEKrs4/8kaOz8NsANwIYIARC/6S5iMWR2oKbfzcCECAEQvLmu+Ojp/2npX83AgggBELnzKfQ1tDrs7t/NwIAAkAgAqciA0UNACAEIANBA3Q2AiAgBCADQR12NgIkAkAgA0HAAEkEQCADIQUMAQsgBCABIANBBnYQ1gYgA0E/cSIFRQ0BIAEgA0FAcWohAQsgBCAFNgJoIARBKGogASAF/AoAAAsgAEGQwQIgABsiKCEDIAQiAEEoaiIFIAAoAmgiAWpBgAE6AABBASEHIAFBAWoiBkE5TwRAIAUgBmpBAEE/IAFr/AsA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QRBrIgUkACABEOkJIQIjAEEQayIDJAACQCACQe////8DTQRAAkAgAhDGBARAIAAgAhB3IAAhBAwBCyADQQhqIAAgAhCBA0EBahCAAyADKAIMGiAAIAMoAggiBBCaASAAIAMoAgwQmQEgACACEG0LIAQgASACEJkCIANBADYCBCAEIAJBAnRqIANBBGoQiwEgA0EQaiQADAELEGwACyAFQRBqJAALxwEBBn8jAEEQayIEJAAgABCYAygCACEFAn8gAigCACAAKAIAayIDQf////8HSQRAIANBAXQMAQtBfwsiA0EEIAMbIQMgASgCACEGIAAoAgAhByAFQYYERgR/QQAFIAAoAgALIAMQ5wQiCARAIAVBhgRHBEAgABDRBBoLIARBhQQ2AgQgACAEQQhqIAggBEEEahBGIgUQngogBRBFIAEgACgCACAGIAdrajYCACACIAAoAgAgA0F8cWo2AgAgBEEQaiQADwsQGQALEwAgACABQQAgACgCACgCNBEFAAsTACAAIAFBACAAKAIAKAIkEQUAC/ICAQJ/IwBBEGsiCiQAIAogADYCDAJAAkACQCADKAIAIAJHDQBBKyELIAAgCSgCYEcEQEEtIQsgCSgCZCAARw0BCyADIAJBAWo2AgAgAiALOgAADAELIAYQDUUgACAFR3JFBEBBACEAIAgoAgAiASAHa0GfAUoNAiAEKAIAIQAgCCABQQRqNgIAIAEgADYCAAwBC0F/IQAgCSAJQegAaiAKQQxqELMGIAlrIgZB3ABKDQEgBkECdSEFAkACQAJAIAFBCGsOAwACAAELIAEgBUoNAQwDCyABQRBHIAZB2ABIcg0AIAMoAgAiASACRiABIAJrQQJKcg0CIAFBAWstAABBMEcNAkEAIQAgBEEANgIAIAMgAUEBajYCACABIAVBgIUCai0AADoAAAwCCyADIAMoAgAiAEEBajYCACAAIAVBgIUCai0AADoAACAEIAQoAgBBAWo2AgBBACEADAELQQAhACAEQQA2AgALIApBEGokACAACwsAIABBuMkCEPMBCx0AIAAgAUH4////B0ECQf////8BQYCAgIACEP0CC+4CAQN/IwBBEGsiCiQAIAogADoADwJAAkACQCADKAIAIAJHDQBBKyELIABB/wFxIgwgCS0AGEcEQEEtIQsgCS0AGSAMRw0BCyADIAJBAWo2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IAMoAgBrQfgAbSADQQhqELkJIgUoAgggBxCLBhogBSAFKAIIQfgAajYCCCADIAUQuAkgBRC3CSAGQSBqJAALIAcQjwYaQQALIQcgBEEYahC6CQwBCyAJQQA6AAwgCUEAOgAAQQEhBwsgBEHIAGoQyQELIClCAXwhKSAEQeAAahAyGiAHRQ0BCwsgAxDFCQsgBEGQAmokAAwSCyAop0EBaw4EAwwDCw0LICinQQFrDgMEAgMFCyAop0EBaw0NDAwLICinQQFrDQUMBAsgCUEAOgAMIAlBADoAAAwNC0IAISYgAkIANwM4IAJBADoAMCACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENDCACQUBrIAJBEGoQlgYCQCACLQBABEAgAi0AUA0BCyAJQQA6AAwgCUEAOgAADA4LIAIgAikDSDcDACAeIAIQVCACKQMoISYgAigCFCEDDAALAAsgAkEAOgAwQgAhJiACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENCyACQUBrIAJBEGoQswICQCACLQBABEAgAi0AUA0BCyAJQQA6AAwgCUEAOgAADA0LIB0gERCjASACKQMoISYgAigCFCEDDAALAAsgAkEAOgAwQgAhJiACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENCiACQUBrIAJBEGoQswICQCACLQBABEAgAi0AUA0BCyAJQQA6AAwgCUEAOgAADAwLIBwgERCjASACKQMoISYgAigCFCEDDAALAAsgAiADNgJcIAIgBDYCWAwICyACQQA6ADBCACEmIAJCADcDKCACQQA6ACAgAkEAOgAYIAIgBK0gJ0IghoQ3AxAgJ6chAwNAIANFICZQcQ0IIAJBQGsgAkEQahCzAgJAIAItAEAEQCACLQBQDQELIAlBADoADCAJQQA6AAAMCgsgGyAREKMBIAIpAyghJiACKAIUIQMMAAsACyACQQA6ADBCACEmIAJCADcDKCACQQA6ACAgAkEAOgAYIAIgBK0gJ0IghoQ3AxAgJ6chAwNAIANFICZQcQ0HIAJBQGsgAkEQahCzAgJAIAItAEAEQCACLQBQDQELIAlBADoADCAJQQA6AAAMCQsgGiAREKMBIAIpAyghJiACKAIUIQMMAAsAC0IAISYgAkIANwMgIAJBAToAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENBiACQUBrIQUjAEEQayIEJAAgAkEQaiIDKQMQIScCQANAICdQBEAgBCADEBAgBC0ACARAIAMgBCkDACInNwMQIAMgAy0ACEEBczoACAwCBSAFQQA7AAAMAwsACwsgAyAnQgF9NwMQIAVBAToAACAFIAMtAAg6AAELIARBEGokACACLQBABEAgASgCWCIDIAEoAlxBBXRGBEACfyADQQFqIgNBAE4EQCABKAJcIgRBBXRB/v///wNNBH8gBEEGdCIEIANBH2pBYHEiAyADIARJGwVB/////wcLDAELDA8LIQMjAEEgayIMJAACQCADIAEoAlxBBXRLBEAgA0EASCIFDRAgDEEANgIcIAxCADcCFCAMQRRqIQQgBQRADBELIANBAWtBBXZBAWoiAxDiBCEFIAQgAzYCCCAEQQA2AgQgBCAFNgIAIAEoAlQhAyAMQQA2AhAgDCADNgIMIAwgASgCWCIFQR9xNgIIIAwgAyAFQQN2Qfz///8BcWo2AgQjAEEgayIKJAAgBCAMKAIIIgYgBCgCBCIDIAwoAhAiC2tqIAwoAgQiDSAMKAIMIg5rQQN0aiIFNgIEIANBACAFQQFrIhAgA0EBa3NBIEkbRQRAIAQoAgAgEEEFdkEAIAVBIU8bQQJ0akEANgIACyAKIAs2AhwgCiAONgIYIAogBjYCFCAKIA02AhAgBCgCACEFIAogA0EfcTYCDCAKIAUgA0EDdkH8////AXFqNgIIIwBBIGsiBiQAAkAgCigCHCIDIAooAgwiBUYEQCAKKAIYIQUgBiADNgIcIAYgBTYCGCAGIAooAhA2AhAgBiAKKAIUNgIUIAooAgghBSAGIAM2AgwgBiAFNgIIAkAgBigCFCAGKAIcIgVrIAYoAhAgBigCGCILa0EDdGoiA0EATARAIAYoAgghBQwBCyAFBEAgBigCCCINIA0oAgBBfyAFdEF/QSAgBWsiBSADIAUgAyAFSBsiBWt2cSIOQX9zcSALKAIAIA5xcjYCACAGIAYoAgwgBWoiC0EfcTYCDCAGIA0gC0EDdkH8////AXFqNgIIIAYgBigCGEEEaiILNgIYIAMgBWshAwsgBigCCCALIANBIG0iDUECdCILEFcaIAYgBigCCCALaiIFNgIIIAMgDUEFdGsiA0EATA0AIAYgBigCGCALaiILNgIYIAYoAggiBSAFKAIAQX9BICADa3YiDUF/c3EgCygCACANcXI2AgAgBiADNgIMCyAKIAU2AgAgCiAGKAIMNgIEDAELIAooAhghCyAGIAM2AhwgBiALNgIYIAYgCigCEDYCECAGIAooAhQ2AhQgCigCCCEDIAYgBTYCDCAGIAM2AggCQCAGKAIUIAYoAhwiA2sgBigCECAGKAIYIgVrQQN0aiINQQBMBEAgBigCDCEDIAYoAgghCwwBCwJAIANFBEAgBigCDCEDDAELIAYoAggiFSAVKAIAQX9BICAGKAIMIgtrIhAgECANQSAgA2siFCANIBRIGyIOIA4gEEsbIhBrdkF/IAt0cUF/c3EgBSgCAEF/IAN0QX8gFCAOa3ZxcSIUIAsgA2t0IBQgAyALa3YgAyALSRtyNgIAIAYgCyAQaiIFQR9xIgM2AgwgBiAVIAVBA3ZB/P///wFxaiILNgIIIA4gEGsiBUEASgRAIAsgCygCAEF/QSAgBWt2QX9zcSAUIAYoAhwgEGp2cjYCACAGIAU2AgwgBSEDCyANIA5rIQ0gBiAGKAIYQQRqIgU2AhgLQSAgA2shDkF/IAN0IhBBf3MhFQNAIAYoAgghCyANQSBOBEAgCyALKAIAIBVxIAUoAgAiBSADdHI2AgAgBiALQQRqNgIIIAsgCygCBCAQcSAFIA52cjYCBCAGIAYoAhhBBGoiBTYCGCANQSBrIQ0MAQsLIA1BAEwNACALIAsoAgBBfyAOIA4gDSANIA5KGyIOa3YgEHFBf3NxIAUoAgBBf0EgIA1rdnEiECADdHI2AgAgBiADIA5qIgNBH3EiBTYCDCAGIAsgA0EDdkH8////AXFqIgs2AgggDSAOayIDQQBMBEAgBSEDDAELIAsgCygCAEF/QSAgA2t2QX9zcSAQIA52cjYCACAGIAM2AgwLIAogAzYCBCAKIAs2AgALIAZBIGokACAKQSBqJAAgASgCVCEDIAEgDCgCFDYCVCAMIAM2AhQgASgCWCEDIAEgDCgCGDYCWCAMIAM2AhggASgCXCEDIAEgDCgCHDYCXCAMIAM2AhwgBBCxCQsgDEEgaiQADAALIAEoAlghAwsgASADQQFqNgJYQQEgA3QhBCABKAJUIANBA3ZB/P///wFxaiIDAn8gAi0AQQRAIAMoAgAgBHIMAQsgAygCACAEQX9zcQs2AgAgAikDICEmIAIoAhQhAwwBCwsgCUEAOgAMIAlBADoAAAwGCyACQQA6ADAgAkIANwMoIAJBADoAJCACQQA6ABggAiAErSAnQiCGhDcDEAJAA0AgAigCFEUEQCACKQMoUA0CCyMAQSBrIgMkACACQUBrIgVBBGohBiACQRBqIgRBCGohCgJAAkADQCAEKQMYIiZCAFINASADQRBqIAQQfiADLQAYRQRAIAVBADoAECAFQQA6AAQgBUEAOgAADAMLIAMpAxAiJkIAVQRAIAQgJjcDGCADIAQQTgJAIAMtAAwiDEUEQCAFQQA6ABAgBUEAOgAEIAVBADoAAAwBCyAKIAMQwAkgBEEAOgAgCyADEDIaIAwNAQwDCyAmQgBTBEAgBEEBOgAgIARCACAmfTcDGAwBCyADIAQQECADLQAIBEAgBCADKQMANwMYIAoQvwkgBEEAOgAgDAELCyAFQQA6ABAgBUEAOgAEIAVBADoAAAwBCyAEICZCAX03AxggBC0AIARAIANBEGogBBBOIAUCfyADLQAcRQRAIAZBADoAAEEADAELIAYgAykDEDcCACAGIAMoAhg2AgggA0EANgIYIANCADcDEEEBCyIEOgAQIAUgBDoAACADQRBqEDIaDAELIAVBAToAACAGQQA6AAwgBkEAOgAAIAotAAwEQCAGIAoQjQYLCyADQSBqJAACQCACLQBAIgpFBEAgCUEAOgAMIAlBADoAAAwBCwJAIAcoAgQgBygCCEkEQCAHKAIEIgNBADoADCADQQA6AAAgDy0ADARAIAMgDykCADcCACADIA8oAgg2AgggD0IANwIAIA9BADYCCCADQQE6AAwLIAcgA0EQajYCBAwBCyMAQSBrIgYkACAGQQxqIAcgBygCBCAHKAIAa0EEdUEBahDOAiAHKAIEIAcoAgBrQQR1IAdBCGoQmwIiAygCCCIEQQA6AAwgBEEAOgAAIA8tAAwEQCAEIA8pAgA3AgAgBCAPKAIINgIIIA9CADcCACAPQQA2AgggBEEBOgAMCyADIAMoAghBEGo2AgggBygCBCEFIAcoAgAhDCADKAIEIQQDQCAFIAxHBEAgBEEQayIEQQA6AAAgBEEAOgAMIAVBEGsiBS0ADEUNASAEIAUpAgA3AgAgBCAFKAIINgIIIAVCADcCACAFQQA2AgggBEEBOgAMDAELCyADIAQ2AgQgBygCACEFIAcgBDYCACADIAU2AgQgBygCBCEEIAcgAygCCDYCBCADIAQ2AgggBygCCCEEIAcgAygCDDYCCCADIAQ2AgwgAyADKAIENgIAIAMoAgQhBANAIAQgAygCCCIFRwRAIAMgBUEQayIFNgIIIAUQMhoMAQsLIAMoAgAiAwRAIAMQDAsgBkEgaiQACwsgDxAyGiAKDQALIBYQMhoMBgsgFhAyGgwEC0IAISYgAkIANwM4IAJBADoAMCACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQA0AgA0UgJlBxDQQgAkFAayACQRBqEJYGIAItAEAEQCACQQA6AAggAkEAOgAAIAItAFAEQCACQQE6AAggAiACKQNINwMACwJAIBMoAgQiAyATKAIISQRAIAMgAikDADcDACADIAIpAwg3AwggEyADQRBqNgIEDAELIBMgAhDBCQsgAikDKCEmIAIoAhQhAwwBCwsgCUEAOgAMIAlBADoAAAwECyACQQA6ADBCACEmIAJCADcDKCACQQA6ACAgAkEAOgAYIAIgBK0gJ0IghoQ3AxAgJ6chAwNAIANFICZQcQ0DIAJBQGsgAkEQahCzAiACLQBABEAgGSAREJIGIAIpAyghJiACKAIUIQMMAQsLIAlBADoADCAJQQA6AAAMAwsgAkEAOgAwQgAhJiACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENAiACQUBrIAJBEGoQswIgAi0AQARAIBggERCSBiACKQMoISYgAigCFCEDDAELCyAJQQA6AAwgCUEAOgAADAILIAJBADoAMEIAISYgAkIANwMoIAJBADoAICACQQA6ABggAiAErSAnQiCGhDcDECAnpyEDA0AgA0UgJlBxDQEgAkFAayACQRBqELMCIAItAEAEQCAXIBEQkgYgAikDKCEmIAIoAhQhAwwBCwsgCUEAOgAMIAlBADoAAAwBCyABIBIoAggiAyABKAIAajYCACABIAEoAgQgA2s2AgQgEkEQaiESDAELCyACQeAAaiQAICAQDxoCQCAILQC8AUUEQEEDEBcEQCAIQRRqEBMhJSAI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NgIMIAQoAgQhACAEQQA2AgQgAARAIAQtAAwEQCAAQQhqEAoaCyAABEAgABAMCwtBAQs6AAwgCCAFNgIIIARBEGokACAIKAIIIQsgCEEQaiQAIAtBGGoLFgAgASACKQMANwMAIAEgAikDCDcDCAsMACABIAItAAA6AAALJAAgASACKQMANwMAIAEgAigCCDYCCCACQgA3AwAgAkEANgIICwkAIAEgAhB8GgsMACABIAIoAgA2AgALAgALNgAgACgCBCEDA0AgASACRkUEQCADIAEpAwA3AwAgA0EIaiEDIAFBCGohAQwBCwsgACADNgIECzMBAX0gACABRwRAIAAQTSAAIAEQ9wMgASoCGCECIABBPjoAHiAAIAI4AhggACABENIGCwupAgEFfyAAIAFHBEACQCABKAIEIgMgASgCACIBa0EFdSIEIAAoAgggACgCACICa0EFdU0EQCACIAEgASAAKAIEIAJrIgVqIgIgAyAEIAVBBXUiBUsbIAFrIgEQVyEGIAQgBUsEQCAAKAIEIQEDQCACIANHBEAgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIAFBIGohASACQSBqIQIMAQsLIAAgATYCBAwCCyAAIAEgBmo2AgQMAQsgABDoAyAAIAAgBBCSAhDGByAAKAIEIQIDQCABIANHBEAgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAJBIGohAiABQSBqIQEMAQsLIAAgAjYCBAsLCwYAIAEQNwu9AQEDfyMAQZABayIDJABBAxAXBEAgA0EIahATIQUgA0EDNgIEIAUgAUG8A2oQEUGVMRAOGiADQQRqEBYLIABBADoAcCAAQgA3A2ggAEEAOgBIIABBAEEkEB4iAEIANwA1IABCADcDMCAAQgA3AyggAEIANwNQIABCADcDWCAAQQA2AmACQCAAQTxqIgEtAAwEQCABQajYABCXBQwBCyABQajYABALQQE6AAwLIAAgAikDKDcDaCADQZABaiQAC7gBAgR/AX0jAEEQayIEJAAgAEEANgIIIABCADcCACABKAIEIgIgASgCACIDRwRAIAAgAiADa0EEdRD8CSAAKAIEIQIgASgCBCEFIAEoAgAhAwNAIAMgBUcEQCACIAMpAwA3AwAgAiADKQMINwMI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ahCDBAwBCwJAAkADQCAHIAhNDQEgACgCKEFAaiIDLQA8BEAgAC0AIQRAIABBADoAIQsgAy0AACEHIAMhAAwBCwsgAyACEOMBDAELIAcgCEYEQCACIAAQ7AcMAQsgBUHEAGogABC6AyECIAAgBCgCACAJQQZ0ahDbBSAAQSRqIAAoAiQgBUEEaiACEIwEIgMQggggAxCUARogAEIAEIQEIAIQvAMLIAAtACEEQCAAQQA6ACELIAQgBCgCACAGQQZ0akFAaxCDBAsgBUGAAWokAAsJACAAQSIQ/gILCwAgACABQSIQywkLFAAgACABIAIgA0EiQYiPnjwQzQELCwAgACABECRBAXMLgQEBAn8gACgClAMhBCAAKAKQAyEDA0AgAyAERgRAAkAgAigCACACKAIERg0AIABBEGogARD9ByEAIAIoAgQhBCACKAIAIQMDQCADIARGDQEgAygCACABIAAQ9wcgA0EEaiEDDAALAAsFIAMoAgBBpANqIAEQ/AcgA0EEaiEDDAELCws1AQF/AkAgAC0ADCICIAEtAAxGBEAgAkUNASAAIAEQeQ8LIAIEQCAAEOgFDwsgACABEIwGCwtNAQF/IAAgARB5IABBDGogAUEMahCKBCAAIAEoAiw2AiwgACABKQIkNwIkIAAgASkCHDcCHCABKAIwIQIgAUEANgIwIABBMGogAhCeBAsSACAAIAEQugMiAEEBOgA8IAAL1AEBA38gASgCBCEDIAAoAgAhBCAAKAIEIQIDQCACIARGRQRAIANBLGsiAyACQSxrIgIpAgA3AgAgAyACQQhqKAIANgIIIAJCADcCACACQQA2AgggAyACKQIkNwIkIAMgAikCHDcCHCADIAIpAhQ3AhQgAyACKQIMNwIMDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACxoAIAAgAUGu9KIXQSxB3ejFLkHe6MUuELkBCxcAIAAgARAjIgBBDGogAUEMahC7BSAAC0ABAX8gACgCCCIDIAIgAWtqIQIDQCACIANGRQRAIAMgASgCADYCACABQQRqIQEgA0EEaiEDDAELCyAAIAI2AggLtQIBBX8jAEEgayIFJAACQCAAKAIEIgIg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aiEADAELCyABENsBIAIQDxoLIAIQDAsLFgAgAC0APARAIAAQvAMgAEEAOgA8CwsuAQF/IAAgACgCACICIAEgAmtByABtQcgAbGoiAUHIAGogACgCBCABEJUGELoECzcBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiACgCAARAIAAQ6QUgASgCDCgCABAMCyABQRBqJAALNwECfiAAKAIAIQADfiABIAJRBH4gAwUgAyAAIAKnQcgAbGopAzh8QgF8IQMgAkIBfCECDAELCwuaAQICfwF+IwBBEGsiAyQAQSAQGiECIAMgAEEIajYCCCADQQE2AgwgAiABKAIINgIQIAIgASkDADcDCCABQQA2AgggAUIANwMAIAEpAxAhBCACIAA2AgAgAiAENwMYIAIgACgCBCIBNgIEIAEgAjYCACAAIAI2AgQgACAAKAIIQQFqNgIIIANBADYCBCADQQRqELQBIANBEGokAAsMACAAIAEQqAJBAXMLJQAgACgCECIARQRAEBkACyAAIAEgAiADIAQgACgCACgCGBEKAAsuAQF/IAEoAgAiAiABKAIENgIEIAEoAgQgAjYCACAAIAAoAghBAWs2AgggARAMC6QDAgh/AX4jAEEgayIDJAACQCABKAIEIgQgASgCCEkEQCAEIAIoAgA2AgAgASAEQQRqIgI2AgQMAQsgASACEPwKIAEoAgQhAgsgA0EIaiACQQRrKAIAIgetQgBClfip+pe33puef0IAECggAykDECADKQMIhSILp0H/AXFBgAJyIQIgCyABMQAeiKchBCABKAIQIQggASgCACEGIAEoAgwhCSAAAn8DQCAJIARBA3RqIgUoAgAiCiACTwRAAkAgAiAKRw0AIAcgBiAFKAIEQQJ0aiIFKAIARw0AIAEgASgCBEEEazYCBEEADAMLIARBAWoiBEEAIAQgCEcbIQQgAkGAAmohAgwBCwsgASgCBCAGa0ECdSIFQQFrIQYCQCABKAIUIAVJBEAgASgCFEGAgICAeEYEQCABIAEoAgRBBGs2AgQQGQALIAEgAS0AHkEBazoAHiABEE0gARAwIAEQuQwMAQsgAyAGNgIcIAMgAjYCGCADIAMpAhg3AwAgASADIAQQMQsgASgCACAGQQJ0aiEFQQELOgAEIAAgBTYCACADQSBqJAALgQEBAn8gACgCBCAAKAIISQRA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AAtBAQvBAQECfyAApyECIABCIIinIgNFBEAgAiABEN0BDwsgASACQYABcjoAACABIAJBFXZBgAFyOgADIAEgAkEOdkGAAXI6AAIgASACQQd2QYABcjoAASADQQR0IAJBHHZyIQIgA0EHTQRAIAEgAjoABEEFDwsgASACQYABcjoABCADQQN2IQJBBSEDA0AgAkGAAUlFBEAgASADaiACQYABcjoAACACQQd2IQIgA0EBaiEDDAELCyABIANqIAI6AAAgA0EBagtSAQF/IABCIIinIgFFBEAgAKcQrwEPCwJ/QQUgAUEISQ0AGkEGIAFBgAhJDQAaQQcgAUGAgAhJDQAaQQggAUGAgIAISQ0AGkEJQQogAEIAWRsLCw0AIABB6JUBQSgQHRoLIwAgACABKAIANgIAIABBBGogAUEEahASGiAAIAEoAhA2AhALHwAgACABEBIiAEEMaiABQQxqEBIaIAAgASkCGDcCGAsMACAAIAFBjAkQyAkLJwEBfyMAQRBrIgMkACADIAE7AQ4gACADQQ5qIAIQggUgA0EQaiQACx8AIAEoAhAiAUUEQBAZAAsgACABIAEoAgAoAhgRAAALFQAgAEGk4AA2AgAgAEEEahCxCyAAC10BA38jAEEQayIBJAAgASAANgIMIAEoAgwiACgCAARAIAAoAgAhAyAAKAIEIQIDQCACIANHBEAgAkEYaxBvIQIMAQsLIAAgAzYCBCABKAIMKAIAEAwLIAFBEGokAAsnAQF/IwBBEGsiAyQAIAMgATYCDCAAIANBDGogAhCCBSADQRBqJAALUwEBfyABKAIQIgJFBEAgAEEANgIQIAAPCyABIAJGBEAgACAANgIQIAEoAhAiASAAIAEoAgAoAgwRAAAgAA8LIAAgAiACKAIAKAIIEQIANgIQIAALJwAgAQRAIAAgASgCABD3BCAAIAEoAgQQ9wQgAUEQahCGDCABEAwLCxsBAX8gACgCACEBIABBADYCACABBEAgARAMCwvxAwIIfwF9AkACf0ECIAFBAUYNABogASABIAFBAWtxRQ0AGiABEIULCyIBIAAoAgQiAk0EQCABIAJPDQEgAkEDSSEFAn8gACgCDLMgACoCEJWNIgpDAACAT10gCkMAAAAAYHEEQCAKqQwBC0EACyEDIAEgBSACaUEBS3IEfyADEIULBSADQQFBICADQQFr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cRCwBQsgB0EQaiQACz0BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQRxrIgE2AgggARD5CBoMAQsLIAAoAgAiAARAIAAQDAsL1AEBA38gACgCBCECIAAoAgAhBCABKAIEIQMDQCACIARHBEAgA0EcayIDIAJBHGsiAi0AADoAACADIAIoAgw2AgwgAyACKQIENwIEIAJCADcCBCACQQA2AgwgAyACKAIYNgIYIAMgAikCEDcCECACQgA3AhAgAkEANgIYDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACycAIAEEQCAAIAEoAgAQswUgACABKAIEELMFIAFBGGoQ+AIgARAMCws6AQF/IAAoAgQiAiAAKAIIRwRAIAIgASkDADcDACACIAEpAwg3AwggACACQRBqNgIEDwsgACABEKcFC0YBBH8jAEEwayIDJAAgAEGAAWoiBCABEGsiAiAAKAKEASIFRwRAIAAQ7AggACABEL8DIAQgAhDrBQsgA0EwaiQAIAIgBUcLJQAgACABRwRAIAAgASgCRBC2BSAAIAEoAkgQtgUgARCpAxAMCwscACAAIAEQuAgiASAAKAIERgRAEBkACyABQRBqCz8AIAAQnwQgAS0AACEBIABCADcCJCAAQQA6ACEgAEEAOgABIAAgAToAACAAQgA3AiwgAEIANwI0IABBAToAPAvmAQIDfwF+IwBBEGsiBCQAAkAgACgCACIDIAAoAgQiBUcEQANAIAYgBSADa0HIAG2tWg0CIAMgBqciBUHIAGxqIAEgAhC5BQJAIAYgACgCECAAKAIMIgNrQfAAba1aDQAgAyAFQfAAbGoiAy0AMCACckUNACAEIAM2AgggASAEQQhqEJ4BCyAGQgF8IQYgACgCACEDIAAoAgQhBQwACwALIAAoAhAhAyAAKAIMIQADQCAAIANGDQEgAC0AMCACcgRAIAQgADYCDCABIARBDGoQngELIABB8ABqIQAMAAsACyAEQRBqJAALzRACC38BfiMAQfAAayIIJAAgCCABOgBvAkACQCABIAAtAAAiBEkEQAJAIABBJGogACgCMCAAKAI0IAIQvQMgACgCMGtBLG0iBRCECC0A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HCAAIAEpAhQ3AhQgACABKQIMNwIMCwsAIAAgAUEsEL0EC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQhrIgIgA0EIayIDKQIANwIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACxsBAX8gACgCACECIAAgATYCACACBEAgAhAMCwtZAQF/AkAgAC0AECICIAEtABBGBEAgAkUNASAAIAEpAwA3AwAgACABKQMINwMIDwsgAgRAIABBADoAEA8LIAAgASkDADcDACAAIAEpAwg3AwggAEEBOgAQCwvWAQEEfyAAIAEQ9wIgAEEYaiEFIAIoAhghAyACKAIcIQYjAEEQayIEJAADQCADIAZHBEAgBEEIaiAFIAMQXyADQRBqIQMMAQsLIARBEGokACAAIAApA0AgAikDQHw3A0AgAEEMaiIDIAEQqAQgAigCECEEIAIoAgwhAQNAIAEgBEYEQAJAIAIoAgQhAyACKAIAIQEDQCABIANGDQEgACABEK4CIAFByABqIQEMAAsACwUgAyABEKgEIAFB8ABqIQEMAQsLIAAgAikDOCAAKQM4fEIBfDcDOAszACAAKAIUQYCAgIB4RgRAIAAQ5AUQGQALIAAgAC0AHkEBazoAHiAAEE0gABAwIAAQ5gULDwAgACAAKAIEQShrEPwICwwAIAAgARCFAUEBcwsJACAAQSgQ2gMLYQECfyMAQSBrIgIkAAJAIAEgACgCCCAAKAIAIgNrQShtSwRAIAFB58yZM08NASAAIAJBDGogASAAKAIEIANrQShtIABBCGoQxwEiABDtAiAAEOwCCyACQSBqJAAPCxABAAsWACAALQAMBEAgABAPGiAAQQA6AAwLCwwAIAAgACgCABD8CAvxAQIBfwF9AkAgACABRg0AIAAQTSAAKAIABEAgABDpBSAAKAIAEAwgAEEANgIIIABCADcCAAsgACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCACABEOkFIAEoAgwhAiABQQA2AgwgACACNgIMIAEoAhAhAiABQQA2AhAgACACNgIQIAEoAhQhAiABQQA2AhQg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CxsAIAAgARBrIgEgACgCBEYEQBAZAAsgAUEQagsqACAALQAYRQRAIABBDGoiABDoBSAAQQE6AAwgAEEANgIIIABCADcCAAsLIwAgAEEAOgDAASAAQQA6AAAgAS0AwAEEQCAAIAEQrAILIAALUAAgACgCAARAIAAQtgkgACgCABAMIABBADYCCCAAQgA3AgALIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAFBADYCCCABQgA3AgALGwAgACABQcmkkglB8ABBksmkEkGTyaQSELkBC98CAQJ/IwBBEGsiBSQAIAAgASACIAMQ/QUhBgJAIAQgAxAbRQ0AIAUgAygCCDYCCCAFIAMpAgA3AwAgAyAEKAIINgIIIAMgBCkCADcCACAEIAUoAgg2AgggBCAFKQMANwIAIAMgAhAbRQRAIAZBAWohBgwBCyAFIAIoAgg2AgggBSACKQIANwMAIAIgAygCCDYCCCACIAMpAgA3AgAgAyAFKAIINgIIIAMgBSkDADcCACACIAEQG0UEQCAGQQJqIQYMAQsgBSABKAIINgIIIAUgASkCADcDACABIAIoAgg2AgggASACKQIANwIAIAIgBSgCCDYCCCACIAUpAwA3AgAgASAAEBtFBEAgBkEDaiEGDAELIAUgACgCCDYCCCAFIAApAgA3AwAgACABKAIINgIIIAAgASkCADcCACABIAUoAgg2AgggASAFKQMANwIAIAZBBGohBgsgBUEQaiQAIAYLjgIBAn8jAEEQayIEJAAgACABIAIQ8gIhBQJAIAMgAhAbRQ0AIAQgAigCCDYCCCAEIAIpAgA3AwAgAiADKAIINgIIIAIgAykCADcCACADIAQoAgg2AgggAyAEKQMANwIAIAIgARAbRQRAIAVBAWohBQwBCyAEIAEoAgg2AgggBCABKQIANwMAIAEgAigCCDYCCCABIAIpAgA3AgAgAiAEKAIINgIIIAIgBCkDADcCACABIAAQG0UEQCAFQQJqIQUMAQsgBCAAKAIINgIIIAQgACkCADcDACAAIAEoAgg2AgggACABKQIANwIAIAEgBCgCCDYCCCABIAQpAwA3AgAgBUEDaiEFCyAEQRBqJAAgBQuQDgEIfyMAQRBrIgckAANAIAFBDGshCQNAIAAhBANAAkACQAJAAkACQAJAAkACQCABIARrIgVBDG0i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NgIQIAIgACgCGDYCFCAAQQA2AhggAEIANwMQIAAgAkEMaiIEEMsDIAQQDxogAkICNwMgIAIgBzcDGCADIAJBGGoQpwkMAwsgAEEQaiADEFQgAyAHNwMADAILIAAgACkDCBDsASACIAc3AxggAyACQRhqELQEDAELIAAgACkDCBDsASACIAc3AxggAyACQRhqELQECyACQUBrJAAgACABNwMoCywBAX8jAEEQayIDJAAgAyACNwMIIAAgA0EIahDpASAAIAEQgQYgA0EQaiQACwsAIAAgAUECEMYJCzECAX8BfiMAQRBrIgIkACACIAE3AwggAEE0aiACQQhqEPwBKQMAIQMgAkEQaiQAIAMLZAAgACABKQMANwMAIABBCGogAUEIahDtASAAIAEpAyg3AyggACABKQMgNwMgIABBOGogAUE4ahBgGiAAIAEtAHA6AHAgACABKQNoNwNoIAAgASkDYDcDYCAAIAEpA1g3A1ggAAsNACAAIAEQI0EBOgAMCw0AIAAgARASQQE6AAwLGAAgAEHo3gE2AgAgAEEgahAKGiAAEM4GCxMAIABBOGoQRCAAQQhqEMkBIAALHwAgAEEAOgAMIABBADoAACABLQAMBEAgACABEIwGCwtfAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAEQCAAKAIAIQMgACgCBCECA0AgAiADRwRAIAJB+ABrEI8GIQIMAQsLIAAgAzYCBCABKAIMKAIAEAwLIAFBEGokAAs6AQF/IAAoAgQiAiAAKAIIRwRAIAIgASkDADcDACACIAEpAwg3AwggACACQRBqNgIEDwsgACABEMEJC7YBAQN/IAAoAgQiAiAAKAIIRwRAIAIgASkDADcDACACIAEpAxA3AxAgAiABKQMINwMIIAAgAkEYajYCBA8LIwBBIGsiBCQAIARBDGogACAAKAIEIAAoAgBrQRhtQQFqEIcBIAAoAgQgACgCAGtBGG0gAEEIahByIgIoAggiAyABKQMANwMAIAMgASkDEDcDECADIAEpAwg3AwggAiADQRhqNgIIIAAgAhDWAyACENUDIARBIGokAAthAQJ/IwBBIGsiAiQAAkAgASAAKAIIIAAoAgAiA2tBGG1LBEAgAUGr1arVAE8NASAAIAJBDGogASAAKAIEIANrQRhtIABBCGoQciIAENYDIAAQ1QML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AEEEaiACQQhqEIsBIAJBEGokAAvPAQEDfyMAQRBrIgUkACACQe////8HIAFrTQRAIAAQICEGIAVBBGoiByAAIAFB5////wNJBH8gBSABQQF0NgIMIAUgASACajYCBCAHIAVBDGoQvwIoAgAQvgJBAWoFQe////8HCxCXAiAFKAIEIQIgBSgCCBogBARAIAIgBiAEEJsBCyADIARHBEAgAiAEaiAEIAZqIAMgBGsQmwELIAFBAWoiAUELRwRAIAAgBiABEN8ECyAAIAIQmgEgACAFKAIIEJkBIAVBEGokAA8LEGwACw0AIAAgASACQn8QxAoLBwAgAEEMagsrAQJ/IAAoAgAhASMAQRBrIgAkACAAIAE2AgwgACgCDCECIABBEGokACACCxcAIAAoAggQNUcEQCAAKAIIEMcKCyAACwkAIABBBxD/Ags6AQJ/IwBBEGsiAyQAIAMgAjYCDCADQQhqIANBDGoQvQEhBCAAIAEQvAYhACAEELwBIANBEGokACAACw8AIAAgACgCBEEBajYCBAs3AQJ/IwBBEGsiAiQAIAIgACgCADYCDCACIAIoAgwgAUECdGo2AgwgAigCDCEDIAJBEGokACADCxsBAX9BASEBIAAQkAEEfyAAEJgCQQFrBUEBCws0AQJ/IwBBEGsiAiQAIAIgACgCADYCDCACIAIoAgwgAWo2AgwgAigCDCEDIAJBEGokACADCykBA38jAEEQayIBJAAgAUEMaiICIAA2AgAgAigCACEDIAFBEGokACADC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQhrIgIgA0EIayIDKQMANwMADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACzEAIAIoAgAhAgNAAkAgACABRwR/IAAoAgAgAkcNASAABSABCw8LIABBBGohAAwACwAL9QMBAX8jAEEQayIMJAAgDCAANgIMAkACQCAAIAVGBEAgAS0AAEUNAUEAIQAgAUEAOgAAIAQgBCgCACIBQQFqNgIAIAFBLjoAACAHEA1FDQIgCSgCACIBIAhrQZ8BSg0CIAooAgAhAiAJIAFBBGo2AgAgASACNgIA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BEBBAA8LAkAgACABIABrIgVqLQAADQBB6MYCKAIAIgNFDQAgAygCACIBRQ0AA0ACQAJ/IAAhAkEAIAUiBkUNABogAi0AACIEBH8CQANAIAQgAS0AACIHRyAHRXINASAGQQFrIgZFDQEgAUEBaiEBIAItAAEhBCACQQFqIQIgBA0AC0EAIQQLIAQFQQALIAEtAABrC0UEQCADKAIAIAVqIgEtAABBPUYNAQsgAygCBCEBIANBBGohAyABDQEMAgsLIAFBAWohCAsgCAveAQECfyACQQBHIQMCQAJAAkAgAEEDcUUgAkVyDQAgAUH/AXEhBANAIAAtAAAgBEYNAiACQQFrIgJBAEchAyAAQQFqIgBBA3FFDQEgAg0ACwsgA0UNASABQf8BcSIDIAAtAABGIAJBBElyRQRAIANBgYKECGwhAwNAIAAoAgAgA3MiBEF/cyAEQYGChAhrcUGAgYKEeHENAiAAQQRqIQAgAkEEayICQQNLDQALCyACRQ0BCyABQf8BcSEBA0AgASAALQAARgRAIAAPCyAAQQFqIQAgAkEBayICDQALC0EAC9IDAgJ+An8jAEEgayIEJAACQCABQv///////////wCDIgNCgICAgICAwIA8fSADQoCAgICAgMD/wwB9VARAIAFCBIYgAEI8iIQhAyAAQv//////////D4MiAEKBgICAgICAgAhaBEAgA0KBgICAgICAgMAAfCECDAILIANCgICAgICAgIBAfSECIABCgICAgICAgIAIUg0BIAIgA0IBg3whAgwBCyAAUCADQoCAgICAgMD//wBUIANCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQIMAQtCgICAgICAgPj/ACECIANC////////v//DAFYNAEIAIQIgA0IwiKciBUGR9wBJDQAgBEEQaiAAIAFC////////P4NCgICAgICAwACEIgIgBUGB9wBrEGggBCAAIAJBgfgAIAVrEMYCIAQpAwhCBIYgBCkDACIAQjyIhCECIAQpAxAgBCkDGIRCAFKtIABC//////////8Pg4QiAEKBgICAgICAgAhaBEAgAkIBfCECDAELIABCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgBEEgaiQAIAIgAUKAgICAgICAgIB/g4S/C0QBAX8jAEEQayIFJAAgBSABIAIgAyAEQoCAgICAgICAgH+FEH8gBSkDACEBIAAgBSkDCDcDCCAAIAE3AwAgBUEQaiQAC6kBAQF8RAAAAAAAAPA/IQECQCAAQYAITgRARAAAAAAAAOB/IQEgAEH/D0kEQCAAQf8HayEADAILRAAAAAAAAPB/IQFB/RcgACAAQf0XThtB/g9rIQAMAQsgAEGBeEoNAEQAAAAAAABgAyEBIABBuHBLBEAgAEHJB2ohAAwBC0QAAAAAAAAAACEBQfBoIAAgAEHwaEwbQZIPaiEACyABIABB/wdqrUI0hr+iC2oBAn8gAEHo4gE2AgAgACgCKCEBA0AgAQRAQQAgACABQQFrIgFBAnQiAiAAKAIkaigCACAAKAIgIAJqKAIAEQQADAELCyAAQRxqECIgACgCIBAMIAAoAiQQDCAAKAIwEAwgACgCPBAMIAALCQAgACABEOEECz0AIwBBEGsiASQAIAEgAzYCDCABIAQgAiADIAJrIgIQVyACajYCCCAAIAFBDGogAUEIahDaASABQRBqJAALMQEBfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIAAgA0EMaiADQQhqEOAEIANBEGokAAsdACMAQRBrIgMkACAAIAEgAhDuCiADQRBqJAAgAAsTACAAIAEgAiAAKAIAKAIwEQUAC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACx0AIAAgAUH8////B0EBQf////8DQYCAgIAEEP0CCwwAIABBBGoQgAsgAAsNACAAIAEQakEBOgBICygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsUACAAQfjdATYCACAAQQRqECIgAAsEAEEBCwkAIAAgARCDCwuFAgIHfwJ+IwBBMGsiACQAQQEgAEEYahCHCwRAQbDBAigCABChBgALIABBCGogAEEYahCaAiEEIAAgAEEgahCGCyEFIwBBIGsiASQAIwBBEGsiAyQAIwBB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QShrIQMgAkEoayECDAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACz0BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQThrIgE2AgggARCpBxoMAQsLIAAoAgAiAARAIAAQDAsLtQEBA38gACgCBCECIAAoAgAhAyABKAIEIQQDQCACIANHBEAgBEE4ayIEIAJBOGsiAikDADcDACAEIAIoAgg2AgggAkIANwMAIAJBADYCCCAEQRhqIAJBGGoQnQIMAQsLIAEgBDYCBCAAKAIAIQMgACAENgIAIAEgAzYCBCAAKAIEIQMgACABKAIINgIEIAEgAzYCCCAAKAIIIQMgACABKAIMNgIIIAEgAzYCDCABIAEoAgQ2AgALmQEBAn8gACgCBCAAKAIISQRAIAAoAgQiAkEIaiABQQhqEJ0CIAAgAkEoajYCBA8LIwBBIGsiAyQAIANBDGogACAAKAIEIAAoAgBrQShtQQFqEIICIAAoAgQgACgCAGtBKG0gAEEIahDHASICKAIIQQhqIAFBCGoQnQIgAiACKAIIQShqNgIIIAAgAhDWByACENUHIANBIGokAAteAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAEQCAAKAIAIQMgACgCBCECA0AgAiADRwRAIAJBOGsQqQchAgwBCwsgACADNgIEIAEoAgwoAgAQDAsgAUEQaiQACz4AIABB2ABqIAEQ4gEiASAAKAJcRwRAAkAgAUEQahBwIgAtAEhFDQAgAiAAEKwHQQFHDQAgACACEKsHGgsLCx0AIABBCGogAUEIahCdAiAAQQE6ACggAEEBOgAwCz8BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQYABazYCCCABQfAAaxApGgwBCwsgACgCACIABEAgABAMCwupAQEDfyAAKAIEIQMgACgCACEEIAEoAgQhAgNAIAMgBEcEQCACQYABayICIANBgAFrIgMpAwA3AwAgAiADKQMINwMIIAJBEGogA0EQahA9GgwBCwsgASACNgIEIAAoAgAhAyAAIAI2AgAgASADNgIEIAAoAgQhAiAAIAEoAgg2AgQgASACNgIIIAAoAgghAiAA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EGsiAiQAAkAgASgCBCIDIAEoAghJBEAgBigCCCEEIAMgBigCDCIFKQIANwIAIAMgBSgCCDYCCCAFQgA3AgAgBUEANgIIIAMgBCkDADcDECADIAQoAhA2AiAgAyAEKQMINwMYIARBADYCECAEQgA3AwggASADQShqNgIEDAELIwBBIGsiCiQAIApBDGogASABKAIEIAEoAgBrQShtQQFqEIICIAEoAgQgASgCAGtBKG0gAUEIahDHASEDIAYoAgghBCADKAIIIgUgBigCDCIJKQIANwIAIAUgCSgCCDYCCCAJQgA3AgAgCUEANgIIIAUgBCkDADcDECAFIAQoAhA2AiAgBSAEKQMINwMYIARBADYCECAEQgA3AwggAyADKAIIQShqNgIIIAEgAxDtAiADEOwCIApBIGokACABKAIEGgsgASgCBCABKAIAa0EobSIEQQFrIQMCQCABKAIUIARJBEAgARDjBQwBCyACIAM2AgwgAiAHNgIIIAIgAikCCDcDACABIAIgCBAxCyABKAIAIQEgAEEBOgAEIAAgASADQShsajYCACACQRBqJAALIAZBEGokAA8LIAhBAWoiBEEAIAQgASgCEEcbIQggB0GAAmohBwwACwALYQECfyMAQSBrIgIkAAJAIAEgACgCCCAAKAIAIgNrQSJtSwRAIAFBiI+ePE8NASAAIAJBDGogASAAKAIEIANrQSJtIABBCGoQhwQiABCGBCAAEIUECyACQSBqJAAPCxABAAs2ACAAKAIEIQMDQCABIAJGRQRAIAMgASgCADYCACADQQRqIQMgAUEEaiEBDAELCyAAIAM2AgQLTAEBfyACIAEoAkw2AkwCQCAAIAEoAkwiA0YEQCAAIAI2AlQMAQsgA0HEAEHIACADKAJEIAFGG2ogAjYCACADIAAQ/QELIAEgAjYCTAtqAQN/IwBBIGsiAyQAIANBDGogACAAKAIEIAAoAgBrQQJ1QQFqEMkGIAAoAgQgACgCAGtBAnUgAEEIahD0ASICKAIIIgQgASgCADYCACACIARBBGo2AgggACACEMgGIAIQ2wEgA0EgaiQAC50BAgN/AX4jAEEQayIEJAAgBCACNAIAQgBClfip+pe33puef0IAECggBCkDCCAEKQMAhSIGp0H/AXFBgAJyIQIgBiABMQAeiKchAyABKAIQIQUgASgCDCEBA0Ag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QShrIgMgAkEoayICKQMANwMAIAMgAkEIaigCADYCCCACQgA3AwAgAkEANgIIIAMgAikDIDcDICADIAIpAxg3AxggAyACKQMQNwMQDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACz4BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQYABayIBNgIIIAEQzwgaDAELCyAAKAIAIgAEQCAAEAwLC7cBAQN/IAAoAgQhAiAAKAIAIQMgASgCBCEEA0AgAiADRwRAIARBgAFrIgQgAkGAAWsiAikDADcDACAEIAIoAgg2AgggAkIANwMAIAJBADYCCCAEQRBqIAJBEGoQPRoMAQsLIAEgBDYCBCAAKAIAIQMgACAENgIAIAEgAzYCBCAAKAIEIQMgACABKAIINgIEIAEgAzYCCCAAKAIIIQMgACABKAIMNgIIIAEgAzYCDCABIAEoAgQ2AgALgQEAIwBBEGsiACQAIAIoAgAhAiAAIAMpAgA3AwAgACACNgIMIwBBMGsiAiQAIAEgACgCDCIDKQMANwMAIAEgAykDCDcDCCAAKAIAKAIAIQMgAkEAOgAoIAJBADoACCABQRBqIAMgAkEIaiIBEM0FIAEQnAQgAkEwaiQAIABBEGokAAviAQIFfwJ+AkAgACgCACICIAAoAgQiA0cEQANAIAcgAyACa0HIAG2tIghUIQMgByAIWg0CAkACQCABIAIgB6ciBEHIAGwiBWoQzQhBAWsOAgAEAQsgACgCACAFaiABEMYIDQMLIAAoAhAgACgCDCICa0HwAG2tIAdWBEAgASACIARB8ABsahDLCkECRg0DCyAHQgF8IQcgACgCACECIAAoAgQhAwwACwALIAAoAhAhAiAAKAIMIQADQCAAIAJHIQMgACACRg0BIAEgABDLCiEGIABB8ABqIQAgBkECRw0ACwsgAwsQACAAIAAoAgRB+AFrENQIC/EBAgF/AX0CQCAAIAFGDQAgABBNIAAoAgAEQCAAENQFIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAEQ1AUgASgCDCECIAFBADYCDCAAIAI2AgwgASgCECECIAFBADYCECAAIAI2AhAgASgCFCECIAFBADYCFCAAIAI2AhQgAS0AHiECIAFBPjoAHiAAIAI6AB4gASoCGCEDIAFBzZmz+gM2AhggACADOAIYIAEQMCABKAIMIgBFDQAgAEEAIAEoAhBBA3QQHhoLC/EBAgF/AX0CQCAAIAFGDQAgABBNIAAoAgAEQCAAENMFIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAEQ0wUgASgCDCECIAFBADYCDCAAIAI2AgwgASgCECECIAFBADYCECAAIAI2AhAgASgCFCECIAFBADYCFCAAIAI2AhQgAS0AHiECIAFBPjoAHiAAIAI6AB4gASoCGCEDIAFBzZmz+gM2AhggACADOAIYIAEQMCABKAIMIgBFDQAgAEEAIAEoAhBBA3QQHhoLC2kAIABBADoASCAAQQA6AAAgAS0ASARAIAAgARDLBgsgAEHQAGogAUHQAGoQIxogAEHcAGogAUHcAGoQIxogAEHoAGogAUHoAGoQuwMgACABKQOIATcDiAEgAEGQAWogAUGQAWoQuwMgAAuXAQECfyMAQRBrIgIkACAAQgA3AgAgAEE+OgAeIABBzZmz+gM2AhggAEIANwIQIABCADcCCCAAIAEQyQggAkEQaiQAIwBBEGsiAyQAIABBIGoiAkIANwIAIAJBPjoAHiACQc2Zs/oDNgIYIAJCADcCECACQgA3AgggAiABQSBqEMgIIANBEGokACAAQUBrIAFBQGsQuwMgAAtVACAAQQA6ACAgAEEAOgAAIAEtACAEQCAAIAEpAwA3AwAgACABKQMINwMIIAAgASgCGDYCGCAAIAEpAxA3AxAgAUIANwMQIAFBADYCGCAAQQE6ACALC0MBAX9BASECIAFBGGogACgCABC7BiABKAIcRgR/IAAgACkDECABKQM4fDcDECAAIAApAwggASkDQHw3AwhBAAVBAQsLfAEDfyAAQgA3AgAgAEIANwIQIABCADcCCCAAQRhqEEkaIwBBEGsiAiQAIABBOGoiAUIANwIAIAFBPjoAHiABQc2Zs/oDNgIYIAFCADcCECABQgA3AgggARAwIAEoAgwiAwRAIANBACABKAIQQQN0EB4aCyACQRBqJAAgAAsOACAAQRBqECkaIAAQCgsrAQF/IAAoAgQhAgNAIAEgAkZFBEAgAkGAAWsQzwghAgwBCwsgACABNgIECwsAIAAgAUEoEL0ECxMAIABBwAFqEJwEIABBCGoQtgMLIQACQCAALQBIRQ0AIAEgABDNCEEBRw0AIAAgARDGCBoLCzEBAX8gACgCBCECA0AgASACRkUEQCACQegBaxDSCCACQfgBayECDAELCyAAIAE2AgQLKQEBfyAAKAIEIQIDQCABIAJGRQRAIAJBDGsQDyECDAELCyAAIAE2AgQLMgECfyAAQThqIgEoAgwiAgRAIAIQDAsgARCdBBogAEEYahA6IABBDGoQDxogABCdBBoLXgEDfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIABEAgACgCACEDIAAoAgQhAgNAIAIgA0cEQCACQSBrEOgCIQIMAQsLIAAgAzYCBCABKAIMKAIAEAwLIAFBEGokAAsxAQF/A0AgAQRAIAIgASABQRBqIAAQGyIDGyECIAFBBGogASADGygCACEBDAELCyACCysBAX8gACgCBCECA0AgASACRkUEQCACQcgAaxDcCCECDAELCyAAIAE2AgQL2wEBA38jAEEQayICJAAgAkEIaiAAENgFIAIgABDXBSACKAIMIQEDQAJAIAIoAgQgAUYEQCAAQQA2AhQgACgCBCEBA0AgACgCCCABayIDQQlJDQIgASgCABAMIAAgACgCBEEEaiIBNgIEDAALAAsgARBaGiACIAIoAgxBgAFqIgE2AgwgASACKAIIIgMoAgBrQYAgRw0BIAIgA0EEajYCCCACIAMoAgQiATYCDAwBCwtBECEBAkACQAJAIANBAnZBAWsOAgEAAgtBICEBCyAAIAE2AhALIAJBEGokAAsJACAAQQAQngQLDgAgAEEQahC3AyAAEAoLSgEBfyAAIAEQIyIAQQxqIAFBDGoQkAYgACABKAIsNgIsIAAgASkCJDcCJCAAIAEpAhw3AhwgASgCMCECIAFBADYCMCAAIAI2AjALPgECfyAAKAIEIQIDQCACIAAoAggiAUcEQCAAIAFByABrIgE2AgggARDcCBoMAQsLIAAoAgAiAARAIAAQDAsLtwEBA38gACgCBCECIAAoAgAhAyABKAIEIQQDQCACIANHBEAgBEHIAGsiBCACQcgAayICKQMANwMAIAQgAigCCDYCCCACQgA3AwAgAkEANgIIIARBEGogAkEQahDdCAwBCwsgASAENgIEIAAoAgAhAyAAIAQ2AgAgASADNgIEIAAoAgQhAyAAIAEoAgg2AgQgASADNgIIIAAoAgghAyAAIAEoAgw2AgggASADNgIMIAEgASgCBDYCAAtqAQF/IwBBEGsiAiQAIAIgATYCDCAAIAIoAgwQEiIBQRBqQQBBOBAeIgBCADcDACAAQn83AyggAEEAOgAiIABBATsBICAAQQA2AhwgAEEAOgAYIABCADcABSAAEOoCNgIwIAJBEGokACABCxAAIAAgACgCBEHIAGsQ2QgLMwAgACgCFEGAgICAeEYEQCAAEOEIEBkACyAAIAAtAB5BAWs6AB4gABBNIAAQMCAAELYMC6YBAgJ/AX4CQCAAKAIAIgIgACgCBCIDRwRAA0AgBCADIAJrQcgAba1aDQIgAiAEpyIDQcgAbGogARDjCCAAKAIQIAAoAgwiAmtB8ABtrSAEVgRAIAEgAiADQfAAbGoQ6QILIARCAXwhBCAAKAIAIQIgACgCBCEDDAALAAsgACgCECECIAAoAgwhAANAIAAgAkYNASABIAAQ6QIgAEHwAGohAAwACwALC1AAIAAoAgAEQCAAEOgIIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAC1AAIAAoAgAEQCAAEOcIIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIACw4AIAAgARC6A0EBOgA8CwwAIAAgACgCABDcBQsMACAAIAAoAgAQ3gULNwEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIABEAgABDnCCABKAIMKAIAEAwLIAFBEGokAAs3AQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAEQCAAEOgIIAEoAgwoAgAQDAsgAUEQaiQAC5UBAQV/IwBBEGsiBCQAIwBBEGsiAyQAIAAhBSACIQYDQCABIAVHBEAgBiAFEN0FIAZBLGohBiAFQSxqIQUMAQsLIAMgBjYCDCADIAE2AgggAygCCCEBIAQgAiADKAIMIAJrQSxtQSxsajYCDCAEIAAgASAAa0EsbUEsbGo2AgggA0EQaiQAIAQoAgwhByAEQRBqJAAgBwsQACAALQA8RQRAEBkACyAACxgAIAAgASkDADcDACAAQQhqIAFBCGoQHAsLACAAIAFBMBDKCQsPACAAIAAoAgRBMGsQ7ggLRAAgACABIAApAwB8Qrnz3fEJfCIBIAFCIIiFQt3C6dj51ZHMDn4iAUIgiCABhULdwunY+dWRzA5+IgFCHIggAYU3AwALqAECAX8BfiMAQRBrIgIkACACQgA3AwgDQCABQgRURQRAIAJBCGogADUAABDwCCABQgR9IQEgAEEEaiEADAELCyACQQhqAn5CASABQgF9IgFCAlYNABoCQAJAAkAgAadBAWsOAgECAAsgADEAAEKAAoQMAgsgADMAAEKAgASEDAELIAAzAAAgADEAAkIQhoRCgICACIQLEPAIIAIpAwghAyACQRBqJAAgAwudAQIDfwF+IwBBEGsiBCQAIAQgAjUCAEIAQpX4qfqXt96bnn9CABAoIAQpAwggBCkDAIUiBqdB/wFxQYACciECIAYgATEAHoinIQMgASgCECEFIAEoAgwhAQNAIAIgASADQQN0aigCAE9FBEAgA0EBaiIDQQAgAyAFRxshAyACQYACaiECDAELCyAAIAM2AgQgACACNgIAIARBEGokAAs7AQF/IwBBEGsiAyQAIAMgAjYCCCADIAE2AgwgACADKAIMEBIiAEEQaiADKAIIEO4CGiADQRBqJAAgAAsYACAAIAEQEiIAQRBqIAFBEGoQ7gIaIAALaQECfyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0EobUEBahCCAiAAKAIEIAAoAgBrQShtIABBCGoQxwEiAigCCCABEPQIGiACIAIoAghBKGo2AgggACACEO0CIAIQ7AIgA0EgaiQACxQAIAAgACgCBCABEPQIQShqNgIECxYAIABBKGoQ5wEgAEEYahAKGiAAEAoLYQEBfyAAQYCAgIB4IAEgAUEASBsiARDnBSAAIAEgACgCBCAAKAIAa0EobSICIAEgAksbENINIQECQCAAKAIQBEAgASAALQAeTw0BCyAAIAE6AB4gABBNIAAQMCAAEOYFCwsUACAAQRBqEAoaIABBBGoQChogAAswAQJ/IAAoAgAhAiAAKAIEIQEDQCABIAJHBEAg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ASAJQQA6AAAMBQsgAkEANgL8AiACQgA3AvQCIAIoAoADIRAjAEEgayIDJAACQCAQIAJB9AJqIg0oAgggDSgCACIBa0EcbUsEQCAQQcqkkskATw0MIA0gA0EMaiAQIA0oAgQgAWtBHG0gDUEIahC0AyIBELIIIAEQsQgLIANBIGokAAwACyACQQhqIRADQCBPIAIpA4ADWg0DIAJBwAFqIAsQECACLQDIAUUEQCAJQQA6AMABIAlBADoAAAwFCyACQeACaiALEBAgAi0A6AJFBEAgCUEAOgDAASAJQQA6AAAMBQsgAkHQAmogCxAQIAItANgCRQRAIAlBADoAwAEgCUEAOgAADAULIAJBADYCzAJCACFOIAJCADcCxAIgAkHEAmogAigC0AIQ5wUCQANAAkACQAJAIAIpA9ACIE5WBEAgAkHgAWogCxBOIAItAOwBRQ0BIAJBsAJqIAsQECACLQC4AkUNASACQaACaiALEE4CfyACLQCsAkUEQCAJQQA6AMABIAlBADoAAEEBDAELIAIgAikDsAI3AwAgECACKQOgAjcCACAQIAIoAqgCNgIIIAJBADYCqAIgAkIANwOgAgJAIAJBxAJqIhEoAgQiASARKAIISQRAIAEgAikC4AE3AgAgASACKALoATYCCCACQgA3AuABIAJBADYC6AEgASACKQMANwMQIAEgAigCEDYCICABIAIpAwg3AxggAkEANgIQIAJCADcDCCARIAFBKGo2AgQMAQsjAEEgayIBJAAgAUEMaiARIBEoAgQgESgCAGtBKG1BAWoQggIgESgCBCARKAIAa0EobSARQQhqEMcBIg0oAggiAyACKQLgATcCACADIAIoAugBNgIIIAJCADcC4AEgAkEANgLoASADIAIpAwA3AxAgAyACKAIQNgIgIAMgAikDCDcDGCACQQA2AhAgAkIANwMIIA0gDSgCCEEoajYCCCARIA0Q7QIgDRDsAiABQSBqJAAgESgCBBoLIBAQChpBAAshAyACQaACahAyGgwCCyACQbACaiALEBAgAi0AuAJFBEAgCUEAOgDAASAJQQA6AAAMAwsgAkEANgKcAkIAIU4gAkIANwKUAiACQZQCaiACKAKwAhDxBwJ/AkADQCBOIAIpA7ACWg0BIAJBoAJqIAsQEAJAIAItAKgCRQ0AIAJBADoAISACQQA6AAAgAikDoAJQRQRAIAJBgAJqIAsQECACLQCIAkUNASALKAIEIgNBIEkNASALKAIAIg0tAAAhASACIA0pABg3APcBIAIgDSkAETcD8AEgAiANKQAJNwPoASACIA0pAAE3A+ABIAsgA0EgazYCBCALIA1BIGo2AgAgAiABOgABIAIgAikDgAI8AAAgAiACKQD3ATcAGSACIAIpA/ABNwASIAIgAikD6AE3AAogAiACKQPgATcAAiACQQE6ACELIE5CAXwhTgJAIAJBlAJqIg0oAgQiASANKAIIRwRAIA0gASACQSIQHUEiajYCBAwBCyMAQSBrIgEkACABQQxqIA0gDSgCBCANKAIAa0EibUEBahCsBSANKAIEIA0oAgBrQSJtIA1BCGoQhwQiAyADKAIIIAJBIhAdQSJqNgIIIA0gAxCGBCADEIUEIAFBIGokAAsMAQsLIAlBADoAwAEgCUEAOgAAQQEMAQsgAiACKQPgAjwAASACKALEAiEBIAJBADYCxAIgAiABNgIEIAIpAsgCIU0gAkIANwLIAiACIE03AgggAigClAIhASACQQA2ApQCIAIgATYCECACKQKYAiFNIAJCADcCmAIgAiBNNwIUIAIgAikDwAFCAFI6AAAgAkH0AmogAhDjAiACEIMCGkEACyEDIAJBlAJqEA8aDAQLIAlBADoAwAEgCUEAOgAAQQEhAwsgTkIBfCFOIAJB4AFqEDIaIANFDQELC0EBIQMLIE9CAXwhTyACQcQCahChBCADRQ0ACwwDCyAJQQA6AMABIAlBADoAAAwDCyAJQQA6AMABIAlBADoAAAwCCyACQeACaiALEBAgAi0A6AJFBEAgCUEAOgDAASAJQQA6AAAMAQsgAkHgAWoQSSIRIAIoAuACEPgIIAJBCGohAUIAIU4DQAJAAkACQCACKQPgAiBOVgRAIAJBwAFqIAsQTiACLQDMAUUNASACQdACaiALEBAgAi0A2AJFDQEgAkGwAmogCxBOAn8gAi0AvAJFBEAgCUEAOgDAASAJQQA6AABBAQwBCyACIAIpA9ACNwMAIAEgAikDsAI3AgAgASACKAK4AjYCCCACQQA2ArgCIAJCADcDsAIgAkGgAmogESACQcABaiACEPAHIAEQChpBAAshAyACQbACahAyGgwCCyACQdACaiALEBAgAi0A2AJFBEAgCUEAOgDAASAJQQA6AAAMAwsgAkHAAWoQSSINIAIoAtACEPgIIAJBCGohAUIAIU4DQAJAAkACQCACKQPQAiBOVgRAIAJBsAJqIAsQTiACLQC8AkUNASACQaACaiALEBAgAi0AqAJFDQEgAkGAAmogCxBOAn8gAi0AjAJFBEAgCUEAOgDAASAJQQA6AABBAQwBCyACIAIpA6ACNwMAIAEgAikDgAI3AgAgASACKAKIAjYCCCACQQA2AogCIAJCADcDgAIgAkHEAmogDSACQbACaiACEPAHIAEQChpBAAshAyACQYACahAyGgwCCyACQbACaiALEBAgAi0AuAJFBEAgCUEAOgDAASAJQQA6AAAMAwsgAkEANgLMAkIAIU4gAkIANwLEAiACKAKwAiEQIwBBIGsiAyQAAkAgECACQcQCaiITKAIIIBMoAgAiAWtBHG1LBEAgEEHKpJLJAE8NESATIANBDGogECATKAIEIAFrQRxtIBNBCGoQtAMiARCyBSABELEFCyADQSBqJAAMAAsCQANAIAIpA7ACIE5WBEAgAiALEBAgAi0ACEUEQCAJQQA6AMABIAlBADoAAAwDCyACQaACaiALEE4CQCACLQCsAkUEQCAJQQA6AMABIAlBADoAAEEBIQMMAQsgAkGAAmogCxBOAn8gAi0AjAJFBEAgCUEAOgDAASAJQQA6AABBAQwBCwJAIAJBxAJqIhMoAgQiASATKAIISQRAIAEgAikDAEIAUjoAACABIAIoAqgCNgIMIAEgAikCoAI3AgQgAkIANwKgAiACQQA2AqgCIAEgAigCiAI2AhggASACKQKAAjcCECACQgA3AoACIAJBADYCiAIgEyABQRxqNgIEDAELIwBBIGsiASQAIAFBDGogEyATKAIEIBMoAgBrQRxtQQFqEMkFIBMoAgQgEygCAGtBHG0gE0EIahC0AyIQKAIIIgMgAikDAEIAUjoAACADIAIoAqgCNgIMIAMgAikCoAI3AgQgAkIANwKgAiACQQA2AqgCIAMgAigCiAI2AhggAyACKQKAAjcCECACQgA3AoACIAJBADYCiAIgECAQKAIIQRxqNgIIIBMgEBCyBSAQELEFIAFBIGokACATKAIEGgtBAAshAyACQYACahAyGgsgTkIBfCFOIAJBoAJqEDIaIANFDQEMAgsLIAJBoAJqIAsQECACIAIpA9ADNwARIAIgAikD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1QBPBEAQGQALIABBGGwQGgssAQF/IwBBEGsiASQAIAEgADYCDCABKAIMKAIAIgAEQCAAEAwLIAFBEGokAAsYACAAQdaq1aoBTwRAEBkACyAAQQxsEBoLOgEDfyMAQRBrIgEkACABQQxqIgIgABAlIAIQcSIAQSAgACgCACgCHBEDACEDIAIQIiABQRBqJAAgAwsmACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEBkACwsLACAAIAFBDBC9BAsMACAAIAAoAgAQtQkLPgECfyAAKAIEIQIDQCACIAAoAggiAUcEQCAAIAFB+ABrIgE2AgggARCPBhoMAQsLIAAoAgAiAARAIAAQDAsLjwEBA38gACgCBCEDIAAoAgAhBCABKAIEIQIDQCADIARHBEAgAkH4AGsgA0H4AGsiAxCLBiECDAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACxUAIAAgASACIANB+ABBo8SIERDNAQsRACAALQAoBEAgAEEIahBECwuzAwECfyMAQUBqIgMkAAJAIAFCBVgEQAJAAkACQAJAAkACQCABp0EBaw4FAQIDBAUACyADQQE6ADggA0EANgIgIAAgA0EYahCyAiADQSBqEEQMBgsgA0EgaiADIAIQfCICEHwiBEECOgAYIAAgA0EYahCyAiAEEEQgAhA3DAULIANBAToAOCADQQE2AiAgACADQRhqELICIANBIGoQRAwECyADQQA6ADggACADQRhqELICIANBIGoQRAwDCyADIAIQ1AMiAigCCDYCCCADIAIpAgA3AwAgAkIANwIAIAJBADYCCCADQQQ6ADggAyADKAIINgIoIANBADYCCCADIAMpAwA3AyAgA0IANwMAIAAgA0EYahCyAiADQSBqEEQgAxAKGgwCCwJAIAJFDQACQAJAIAItABAOAgABAgsgAikDACEBIANBAzoAOCADIAE3AyAgACADQRhqELICIANBIGoQRAwDCyACKQMAIQEgA0EDOgA4IAMgATcDICAAIANBGGoQsgIgA0EgahBEDAILIABBADoAKCAAQQA6AAAMAQsgAEEAOgAoIABBADoAAAsgA0FAayQACwsAIAAgACABEK8JCzsBAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQRhrIgE2AgggARA3DAELCyAAKAIAIgAEQCAAEAwLC4wBAQN/IAAoAgQhAyAAKAIAIQQgASgCBCECA0AgAyAERwRAIAJBGGsgA0EYayIDEHwhAgwBCwsgASACNgIEIAAoAgAhAyAAIAI2AgAgASADNgIEIAAoAgQhAiAAIAEoAgg2AgQgASACNgIIIAAoAgghAiAAIAEoAgw2AgggASACNgIMIAEgASgCBDYCAAsWACAALQAMBEAgABAKGiAAQQA6AAwLCzoAIAAtAAwEQCAAIAEQHA8LIAAgASkCADcCACAAIAEoAgg2AgggAUIANwIAIAFBADYCCCAAQQE6AAwLhgIBBH8jAEEgayIFJAAgBUEMaiAAIAAoAgQgACgCAGtBBHVBAWoQzgIgACgCBCAAKAIAa0EEdSAAQQhqEJsCIgIoAggiAyABKQMANwMAIAMgASkDCDcDCCACIAIoAghBEGo2AgggAigCBCEEIAAoAgAhASAAKAIEIQMDQCABIANHBEAgBEEQayIEIANBEGsiAykDADcDACAEIAMtAAg6AAgMAQsLIAIgBDYCBCAAKAIAIQEgACAENgIAIAIgATYCBCAAKAIEIQEgACACKAIINgIEIAIgATYCCCAAKAIIIQEgACACKAIMNgIIIAIgATYCDCACIAIoAgQ2AgAgAhDNAiAFQSBqJAALaAECfyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0EMbUEBahDSAyAAKAIEIAAoAgBrQQxtIABBCGoQ+wIiAigCCCABEBIaIAIgAigCCEEMajYCCCAAIAIQvAQgAhC7BCADQSBqJAALEwAgACAAKAIEIAEQEkEMajYCBAsUACAAIAAoAgQgARBqQcgAajYCBAsPACAALQAMBEAgABCRBgsLZAICfwF+IwBBEGsiAyQAAkAgAC0AGCACRgRAIAAgASkDADcDAAwBCyADIAE2AgwgAyAANgIIIAMoAgwhBCADKAIIIgAQuAEgBCkDACEFIAAgAjoAGCAAIAU3AwALIANBEGokAAtkAgJ/AX4jAEEQayIDJAACQCAALQAYIAJGBEAgACABKQMANwMADAELIAMgATYCDCADIAA2AgggAygCDCEEIAMoAggiABCvAiAEKQMAIQUgACACOgAYIAAgBTcDAAsgA0EQaiQAC1kBA38jAEEQayIDJAACQCABLQAQIgRB/wFGIgUgAC0AEEH/AUZxDQAgBQRAIAAQNwwBCyADIAA2AgwgA0EMaiAAIAEgBEECdCACaigCABEEAAsgA0EQaiQAC2EBAn8jAEEQayIEJAACQCAALQAQIANGBEAgASACLQAAOgAADAELIAQgAjYCDCAEIAA2AgggBCgCDCEFIAQoAggiABA3IAUtAAAhASAAIAM6ABAgACABOgAACyAEQRBqJAALKgEBfyAAKAIEIQMDQCABIANGRQRAIAMgAmsQ+wghAwwBCwsgACABNgIEC5ABAQN/IAEoAgQhAyAAKAIAIQUgACgCBCEEA0AgBCAFRkUEQCADIAJrIgMgBCACayIEIAIQHRoMAQsLIAEgAzYCBCAAKAIAIQQgACADNgIAIAEgBDYCBCAAKAIEIQMgACABKAIINgIEIAEgAzYCCCAAKAIIIQMgACABKAIMNgIIIAEgAzYCDCABIAEoAgQ2AgALpgEBBH8jAEGQAWsiACQAIABCJTcDiAEgAEGIAWoiBkEBckGtLyAFIAIoAgQQ1wQQNSEHIAAgBDYCACAAQfsAaiIEIARBDSAHIAYgABCMASAEaiIHIAIQ1gEhCCAAQQRqIgYgAhAlIAQgCCAHIABBEGoiBCAAQQxqIABBCGogBhCyCiAGECIgASAEIAAoAgwgACgCCCACIAMQugIhCSAAQZABaiQAIAkLpgEBBX8jAEGAAmsiACQAIABCJTcD+AEgAEH4AWoiB0EBckGALyAFIAIoAgQQ1wQQNSEIIAAgBDcDACAAQeABaiIGIAZBGCAIIAcgABCMASAGaiIIIAIQ1gEhCSAAQRRqIgcgAhAlIAYgCSAIIABBIGoiBiAAQRxqIABBGGogBxCyCiAHECIgASAGIAAoAhwgACgCGCACIAMQugIhCiAAQYACaiQAIAoLoQEBBH8jAEFAaiIAJAAgAEIlNwM4IABBOGoiBkEBckGtLyAFIAIoAgQQ1wQQNSEHIAAgBDYCACAAQStqIgQgBEENIAcgBiAAEIwBIARqIgcgAhDWASEIIABBBGoiBiACECUgBCAIIAcgAEEQaiIEIABBDGogAEEIaiAGELUKIAYQIiABIAQgACgCDCAAKAIIIAIgAxCIAiEJIABBQGskACAJC6UBAQV/IwBB8ABrIgAkACAAQiU3A2ggAEHoAGoiB0EBckGALyAFIAIoAgQQ1wQQNSEIIAAgBDcDACAAQdAAaiIGIAZBGCAIIAcgABCMASAGaiIIIAIQ1gEhCSAAQRRqIgcgAhAlIAYgCSAIIABBIGoiBiAAQRxqIABBGGogBxC1CiAHECIgASAGIAAoAhwgACgCGCACIAMQiAIhCiAAQfAAaiQAIAoLPwADQCABIAJHBEAgASABKAIAIgBB/wBNBH8gAygCACABKAIAQQJ0aigCAAUgAAs2AgAgAUEEaiEBDAELCyACCz4AA0AgASACRwRAIAEgASwAACIAQQBOBH8gAygCACABLAAAQQJ0aigCAAUgAAs6AAAgAUEBaiEBDAELCyACC80CAgZ/An4CQCAAKAIAIgMgACgCBEYNACABEHshCSABKQMAIQogACgCACEGAkAgACgCDCIHIAkgADEAHoinIgRBA3RqIgMoAgAgCadB/wFxIgVBgAJyRw0AIAogBiADKAIEIAJ0aiIDKQMAUg0AIAEpAwggAykDCFENAQsCQCAHIARBAWoiA0EAIAMgACgCECIIRxsiBEEDdGooAgAgBUGABHJHBEAgASkDCCEJDAELIAEpAwghCSAKIAYgByAEQQN0aigCBCACdGoiAykDAFINACAJIAMpAwhRDQELIAVBgAZyIQEDQAJAIAcgBEEBaiIDQQAgAyAIRxsiBEEDdGoiAygCACIFIAFGBEAgCiAGIAMoAgQgAnRqIgMpAwBSDQEgCSADKQMIUQ0DDAELIAEgBU0NACAAKAIEIQMMAgsgAUGAAmohAQwACwALIAML9AICBn8BfiAAKAIAIgUgACgCBEcEfwJAIAEQQSIJp0H/AXEiBUGAAnIgACgCDCIEIAkgADEAHoinIgNBA3RqIgYoAgBGBEAgASAAKAIAIAYoAgQgAmxqECQNASAAKAIMIQQLAkAgBCADQQFqIgNBACADIAAoAhAiBkcbIgNBA3RqKAIAIAVBgARyRgRAIAEgACgCACAEIANBA3RqIgQoAgQgAmxqECQNASAAKAIQIQYgACgCDCEECyAEIANBAWoiA0EAIAMgBkcbIgdBA3RqIQMgBUGABnIhBQNAAkAgAygCACIIIAVGBEAgASAAKAIAIAMoAgQgAmxqECRFBEAgACgCDCEEIAAoAhAhBgwCCyAAKAIAIAMoAgQgAmxqDwsgBSAITQ0AIAAoAgQPCyAEIAdBAWoiA0EAIAMgBkcbIgdBA3RqIQMgBUGAAmohBQwACwALIAAoAgAgBCgCBCACbGoPCyAAKAIAIAYoAgQgAmxqBSAFCwtYAQJ/IABB/wE6ABAgAEEAOgAAIwBBEGsiAyQAIAAQNyABLQAQIgRB/wFHBEAgA0EPaiAAIAEgBEECdCACaigCABEEACAAIAEtABA6ABALIANBEGokACAAC2gBA38jAEEQayIDJAAgAC0AGEH/AUcEQCMAQRBrIgIkACACIAEpAwA3AwggA0EPaiAAIAJBCGpBfyAALQAYIgQgBEH/AUYbQQJ0aigCABEAACACQRBqJAALIABB/wE6ABggA0EQaiQAC2gBA38jAEEQayIDJAAgAC0AEEH/AUcEQCMAQRBrIgIkACACIAEpAwA3AwggA0EPaiAAIAJBCGpBfyAALQAQIgQgBEH/AUYbQQJ0aigCABEAACACQRBqJAALIABB/wE6ABAgA0EQaiQAC2UBAn8gAEH/AToAECAAQQA6AAAjAEEQayIDJAAgABAqIAEtABAiBEH/AUcEQCADIAIpAwA3AwggA0EHaiAAIAEgA0EIaiAEQQJ0aigCABEEACAAIAEtABA6ABALIANBEGokACAAC2UBAn8gAEH/AToAGCAAQQA6AAAjAEEQayIDJAAgABA+IAEtABgiBEH/AUcEQCADIAIpAwA3AwggA0EHaiAAIAEgA0EIaiAEQQJ0aigCABEEACAAIAEtABg6ABgLIANBEGokACAACz0BAn8gACgCBCEDA0AgAyAAKAIIIgJHBEAgACACIAFrIgI2AgggAhD7CBoMAQsLIAAoAgAiAARAIAAQDAsLVwEBfyAAQQA2AgwgACADNgIQIAEEQCABIAVPBEAQGQALIAEgBHQQGiEGCyAAIAY2AgAgACAGIAIgBHRqIgI2AgggACAGIAEgBHRqNgIMIAAgAjYCBCAACygBAX8jAEEQayICJAAgAiABNgIMIABBCGogAkEMahCwDyACQRBqJAALlAEBA38jAEEgayICJAAgACgCDCIDBEAgA0EAIAAoAhBBA3QQHhoLIAAoAgQgACgCAGsgAXUhBEEAIQMDQCADIARGBEAgAkEgaiQABSACQRhqIAAgACgCACADIAF0ahDBCiACIAM2AhQgAiACKAIYNgIQIAIgAikCEDcDCCAAIAJBCGogAigCHBAxIANBAWohAwwBCwsLlAEBA38jAEEgayICJAAgACgCDCIDBEAgA0EAIAAoAhBBA3QQHhoLIAAoAgQgACgCAGsgAXUhBEEAIQMDQCADIARGBEAgAkEgaiQABSACQRhqIAAgACgCACADIAF0ahDnBiACIAM2AhQgAiACKAIYNgIQIAIgAikCEDcDCCAAIAJBCGogAigCHBAxIANBAWohAwwBCwsLlAEBA38jAEEgayICJAAgACgCDCIDBEAgA0EAIAAoAhBBA3QQHhoLIAAoAgQgACgCAGsgAXUhBEEAIQMDQCADIARGBEAgAkEgaiQABSACQRhqIAAgACgCACADIAF0ahDyCCACIAM2AhQgAiACKAIYNgIQIAIgAikCEDcDCCAAIAJBCGogAigCHBAxIANBAWohAwwBCwsL/QEBBX8gACABKQMANwMAIAAgASkDCDcDCCMAQRBrIgQkAAJAIAFBGGoiBi0AGCIHQf8BRiIIIABBGGoiBS0AGEH/AUZxDQAgCARAIAUQRAwBCyAEIAU2AgwgBEEMaiAFIAYgB0ECdCADaigCABEEAAsgBEEQaiQAIwBBEGsiBCQAAkAgAUE4aiIGLQAQIgdB/wFGIgggAEE4aiIFLQAQQf8BRnENACAIBEAgBRDJAQwBCyAEIAU2AgQgBCACKQMANwMIIARBBGogBSAGIARBCGogB0ECdGooAgARBAALIARBEGokACAAIAEtAFA6AFAgAEHYAGogAUHYAGoQ4QULrwEBA38gASgCBCECIAAoAgAhBCAAKAIEIQMDQCADIARGRQRAIAJBIGsiAiADQSBrIgMpAAA3AAAgAiADKQAYNwAYIAIgAykAEDcAECACIAMpAAg3AAgMAQsLIAEgAjYCBCAAKAIAIQMgACACNgIAIAEgAzYCBCAAKAIEIQIgACABKAIINgIEIAEgAjYCCCAAKAIIIQIgACABKAIMNgIIIAEgAjYCDCABIAEoAgQ2AgALVQECfyAAKAIEIQQCf0EAIAJFDQAaIARBCHUiBSAEQQFxRQ0AGiACKAIAIAUQnwYLIQUgACgCACIAIAEgAiAFaiADQQIgBEECcRsgACgCACgCHBEGAAvJAwEHfyMAQSBrIgMkACADQRVqIgQgA0EgaiIFRiABQQBOcgR/IAQFIARBLToAAEEAIAFrIQEgBEEBagshAiADAn8gBSIGIAJrIgdBCUwEQEE9IAdBICABQQFyZ2tB0QlsQQx1IgggCEECdEGguwJqKAIAIAFNakgNARoLAn8gAUG/hD1NBEAgAUGPzgBNBEAgAUHjAE0EQCABQQlNBEAgAiABENsDDAQLIAIgARC0AgwDCyABQecHTQRAIAIgAUHkAG4iAhDbAyABIAJB5ABsaxC0AgwDCyACIAEQpAYMAgsgAUGfjQZNBEAgAiABQZDOAG4iAhDbAyABIAJBkM4AbGsQpAYMAgsgAiABEKMGDAELIAFB/8HXL00EQCABQf+s4gRNBEAgAiABQcCEPW4iAhDbAyABIAJBwIQ9bGsQowYMAgsgAiABEKIGDAELIAFB/5Pr3ANNBEAgAiABQYDC1y9uIgIQ2wMgASACQYDC1y9saxCiBgwBCyACIAFBgMLXL24iAhC0AiABIAJBgMLXL2xrEKIGCyEGQQALNgIQIAMgBjYCDCADKAIMIQEjAEEQayICJAAgACAEIAEQ7gogAkEQaiQAIAUkAAvUAQEDfyMAQRBrIgUkACACQe////8DIAFrTQRAIAAQICEGIAVBBGoiByAAIAFB5////wFJBH8gBSABQQF0NgIMIAUgASACajYCBCAHIAVBDGoQvwIoAgAQgQNBAWoFQe////8DCxCAAyAFKAIEIQIgBSgCCBogBARAIAIgBiAEEJkCCyADIARHBEAgBEECdCIHIAJqIAYgB2ogAyAEaxCZAgsgAUEBaiIBQQJHBEAgACAGIAEQxQQLIAAgAhCaASAAIAUoAggQmQEgBUEQaiQADwsQbAALpQIBA38jAEEQayIIJAAgAiABQX9zQe////8Dak0EQCAAECAhCSAIQQRqIgogACABQef///8BSQR/IAggAUEBdDYCDCAIIAEgAmo2AgQgCiAIQQxqEL8CKAIAEIEDQQFqBUHv////AwsQgAMgCCgCBCECIAgoAggaIAQEQCACIAkgBBCZAgsgBgRAIARBAnQgAmogByAGEJkCCyADIAQgBWoiCmshByADIApHBEAgBEECdCIDIAJqIAZBAnRqIAMgCWogBUECdGogBxCZAgsgAUEBaiIBQQJHBEAgACAJIAEQxQQLIAAgAhCaASAAIAgoAggQmQEgACAEIAZqIAdqIgAQbSAIQQA2AgwgAiAAQQJ0aiAIQQxqEIsBIAhBEGokAA8LEGwAC24BA38jAEEQayIEJAAgAQRAIAEgABAnIgMgABANIgJrSwRAIAAgAyABIANrIAJqIAIgAhCmBgsgAiAAECAiA2ogAUEAEOYJIAAgASACaiIAELgCIARBADoADyAAIANqIARBD2oQdgsgBEEQaiQACz0BAX8jAEEQayIDJAAgAyACOgAPA0AgAQRAIAAgAy0ADzoAACABQQFrIQEgAEEBaiEADAELCyADQRBqJAALFgAgACABIAJCgICAgICAgICAfxDECgsJACAAEDU2AgALIwECfyAAIQEDQCABIgJBBGohASACKAIADQALIAIgAGtBAnULDwAgACAAKAIAQQRrNgIACwoAIAAoAgBBBGsLLAAgACgCABogACgCABogABC1AhogACgCABogABC7ARogACgCABogABC1AhoLMAAjAEEQayICJAACQCAAIAFGBEAgAUEAOgB4DAELIAJBD2ogARD2CQsgAkEQaiQACywBAX8gACgCBCECA0AgASACRwRAIAAQtgIaIAJBBGshAgwBCwsgACABNgIECwkAIABBADYCAAsmACAAKAIAGiAAKAIAGiAAELUCGiAAKAIAGiAAELUCGiAAKAIAGgtLAQF/IwBBEGsiAyQAAkACQCACQR5LDQAgAS0AeA0AIAFBAToAeAwBCyADQQ9qIAIQ+AkhAQsgA0EQaiQAIAAgAjYCBCAAIAE2AgALRAECfyMAQRBrIgEkACAAELYCGiABQf////8DNgIMIAFB/////wc2AgggAUEMaiABQQhqEOQDKAIAIQIgAUEQaiQAIAILCwAgAEEANgIAIAALJwECfyMAQRBrIgEkACABIAA2AgwgAUEMahCpBiECIAFBEGokACACCzcBAX8jAEEQayIDJAAgAyABEPQJNgIMIAMgAhD0CTYCCCAAIANBDGogA0EIahDgBCADQRBqJAALCQAgAUEEEOgKCy4BAX8jAEEQayIDJAAgACACELgCIANBADoADyABIAJqIANBD2oQdiADQRBqJAALGwAgAUH/////A0sEQBAZAAsgAUECdEEEEOMKCwkAIAAQqgYQDAuJBgIEfwF+IwBBgAJrIgIkACABKAI4IQMgAiABKAI8IAEtAEMiBCAEwEEASCIEGyABKAIQIgVrNgL8ASACIAUgAyABQThqIAQbajYC+AEgAkHoAWogAkH4AWoQEAJAIAItAPABRQRAIABBADoAgAEgAEEAOgAADAELIAJBADYC5AEgAkIANwLcASACQdwBaiACKALoARDvAQJAAkADQCAGIAIpA+gBWg0BIAIoAvwBIgRBIE8EQCACIAIoAvgBIgMpAAg3AxAgAiADKQAQNwMYIAIgAykAGDcDICACIAMpAAA3AwggAiAEQSBrNgL8ASACQQE6ACggAiADQSBqNgL4ASAGQgF8IQYgAkHcAWogAkEIahCLAgwBCwsgAEEAOgCAASAAQQA6AAAMAQsgAkHMAWogAkH4AWoQTgJAIAItANgBRQRAIABBADoAgAEgAEEAOgAADAELIAJBuAFqIAJB+AFqEBAgAi0AwAFFBEAgAEEAOgCAASAAQQA6AAAMAQsgAkGoAWogAkH4AWoQECACLQCwAUUEQCAAQQA6AIABIABBADoAAAwBCyACQZgBaiACQfgBahB+IAItAKABRQRAIABBADoAgAEgAEEAOgAADAELIAJBiAFqIAJB+AFqEBACQCACLQCQAQRAIAIpA4gBIgYgAigC/AEiA61YDQELIABBADoAgAEgAEEAOgAADAELIAIgBqciBCACKAL4AWo2AvgBIAIgAyAEayIENgL8ASABKAI8IQUgAS0AQyEDIAIgASgCQDYCECACIAEpAzg3AwggAUIANwM4IAFBADYCQCACQRhqIAFBOBAdGiACIAIpAuABNwJUIAIgAigC3AE2AlAgAkEANgLkASACQgA3AtwBIAJB3ABqIAJBzAFqEBIaIAIgBSADIAPAQQBIGyAEa603A4ABIAIgAikDuAE3A2ggAiACKQOoATcDcCACIAIpA5gBNwN4IAAgAkEIaiIAEH1BAToAgAEgABBaGgsgAkHMAWoQMhoLIAJB3AFqEA8aCyACQYACaiQAC2wBAn8gASAAKAIEIAAoAgAgASgCBBDlCiICNgIEIAAoAgAhAyAAIAI2AgAgASADNgIEIAAoAgQhAiAAIAEoAgg2AgQgASACNgIIIAAoAgghAiAAIAEoAgw2AgggASACNgIMIAEgASgCBDYCAAszAQF/IAFBgICAgAFPBEAQAQALIAAgARCCDCICNgIEIAAgAjYCACAAIAIgAUEEdGo2AggLFQAgAEGgkAI2AgAgAEEQahAKGiAACxUAIABB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ahCKCwsgAiABIAEgAigCABDkCiAGQQxqIAMgACgCABACIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQ0gEhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASBsgAUHFAEgbQewOazYCAAsLrwEBA38gASgCBCECIAAoAgAhBCAAKAIEIQMDQCADIARGRQRAIAJBIGsiAiADQSBrIgMpAwA3AwAgAiADKQMYNwMYIAIgAykDEDcDECACIAMpAwg3AwgMAQsLIAEgAjYCBCAAKAIAIQMgACACNgIAIAEgAzYCBCAAKAIEIQIgACABKAIINgIEIAEgAjYCCCAAKAIIIQIgACABKAIMNgIIIAEgAjYCDCABIAEoAgQ2AgALQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAENkEIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQ2QQgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBDUASEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABIGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQIAIgAgAEGgAmogBSAEQQAQ2wQgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAgAiACAAQagBaiAFIARBABDbBCAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLBABBAgvdAQEFfyMAQRBrIgckACMAQRBrIgMkAAJAIAFB7////wNNBEACQCABEMYEBEAgACABEHcgACEEDAELIANBCGogACABEIEDQQFqEIADIAMoAgwaIAAgAygCCCIEEJoBIAAgAygCDBCZASAAIAEQbQsjAEEQayIFJAAgBSACNgIMIAQhAiABIQYDQCAGBEAgAiAFKAIMNgIAIAZBAWshBiACQQRqIQIMAQsLIAVBEGokACADQQA2AgQgBCABQQJ0aiADQQRqEIsBIANBEGokAAwBCxBsAAsgB0EQaiQAIAALvwUBC38jAEEQayILJAAgBhB4IQogC0EEaiAGEIcDIg4QdCAFIAM2AgACQAJAIAAiCC0AACIG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BEAgBEGBgICABGohAgwCCyAEQYCAgIAEaiECIAAgBUKAgIAIhYRCAFINASACIARBAXFqIQIMAQsgAFAgBUKAgICAgIDA//8AVCAFQoCAgICAgMD//wBRG0UEQCABQhmIp0H///8BcUGAgID+B3IhAgwBC0GAgID8ByECIAVC////////v7/AAFYNAEEAIQIgBUIwiKciBEGR/gBJDQAgA0EQaiAAIAFC////////P4NCgICAgICAwACEIgUgBEGB/gBrEGggAyAAIAVBgf8AIARrEMYCIAMpAwgiAEIZiKchAiADKQMAIAMpAxAgAykDGIRCAFKthCIFUCAAQv///w+DIgBCgICACFQgAEKAgIAIURtFBEAgAkEBaiECDAELIAUgAEKAgIAIhYRCAFINACACQQFxIAJqIQILIANBIGokACACIAFCIIinQYCAgIB4cXK+C40EAgR/AX4CQAJAAn8CQAJAAn8gACgCBCICIAAoAmhHBEAgACACQQFqNgIEIAItAAAMAQsgABArCyICQStrDgMAAQABCyACQS1GIAFFAn8gACgCBCIDIAAoAmhHBEAgACADQQFqNgIEIAMtAAAMAQsgABArCyIDQTprIgFBdUtyDQEaIAApA3BCAFMNAiAAIAAoAgRBAWs2AgQMAgsgAkE6ayEBIAIhA0EACyEEIAFBdkkNAAJAIANBMGtBCk8NAEEAIQIDQCADIAJBCmxqIQUCfyAAKAIEIgIgACgCaEcEQCAAIAJBAWo2AgQgAi0AAAwBCyAAECsLIQMgBUEwayECIAJBzJmz5gBIIANBMGsiAUEJTXENAAsgAqwhBiABQQpPDQADQCADrSAGQgp+fCEGAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABArCyIDQTBrIgFBCU0gBkIwfSIGQq6PhdfHwuujAVNxDQALIAFBCk8NAANAAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABArC0Ewa0EKSQ0ACwsgACkDcEIAWQRAIAAgACgCBEEBazYCBAtCACAGfSAGIAQbIQYMAQtCgICAgICAgICAfyEGIAApA3BCAFMNACAAIAAoAgRBAWs2AgRCgICAgICAgICAfw8LIAYLlDIDEX8HfgF8IwBBMGsiDiQAAkAgAkECTQRAIAJBAnQi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Bg0BDAQLDAELA0AgGEIAWQRAIAEgASgCBEEBazYCBAsgBkEBayIGDQALDAILQbDBAkEcNgIAIAFCABC/AQtCACEVCyAAIBY3AwAgACAVNwMIIA5BMGokAAvKBgIFfwR+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEMcCRQ0AAn8gBEL///////8/gyELAn8gBEIwiKdB//8BcSIGQf//AUcEQEEEIAYNARpBAkEDIAMgC4RQGwwCCyADIAuEUAsLIQkgAkIwiKciCEH//wFxIgdB//8BRg0AIAkNAQsgBUEQaiABIAIgAyAEEDkgBSAFKQMQIgIgBSkDGCIBIAIgARDdCiAFKQMIIQIgBSkDACEEDAELIAEgAkL///////////8AgyILIAMgBEL///////////8AgyIKEMcCQQBMBEAgASALIAMgChDHAgRAIAEhBAwCCyAFQfAAaiABIAJCAEIAEDkgBSkDeCECIAUpA3AhBAwBCyAEQjCIp0H//wFxIQYgBwR+IAEFIAVB4ABqIAEgC0IAQoCAgICAgMC7wAAQOSAFKQNoIgtCMIinQfgAayEHIAUpA2ALIQQgBkUEQCAFQdAAaiADIApCAEKAgICAgIDAu8AAEDkgBSkDWCIKQjCIp0H4AGshBiAFKQNQIQMLIApC////////P4NCgICAgICAwACEIQwgC0L///////8/g0KAgICAgIDAAIQhCyAGIAdIBEADQAJ+IAsgDH0gAyAEVq19IgpCAFkEQCAKIAQgA30iBIRQBEAgBUEgaiABIAJCAEIAEDkgBSkDKCECIAUpAyAhBAwFCyAKQgGGIARCP4iEDAELIAtCAYYgBEI/iIQLIQsgBEIBhiEEIAdBAWsiByAGSg0ACyAGIQcLAkAgCyAMfSADIARWrX0iCkIAUwRAIAshCgwBCyAKIAQgA30iBIRCAFINACAFQTBqIAEgAkIAQgAQOSAFKQM4IQIgBSkDMCEEDAELIApC////////P1gEQANAIARCP4ghDSAHQQFrIQcgBEIBhiEEIA0gCkIBhoQiCkKAgICAgIDAAFQNAAsLIAhBgIACcSEGIAdBAEwEQCAFQUBrIAQgCkL///////8/gyAHQfgAaiAGcq1CMIaEQgBCgICAgICAwMM/EDkgBSkDSCECIAUpA0AhBAwBCyAKQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALqg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyELIAJC////////P4MhCiACIASFQoCAgICAgICAgH+DIQ0gBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyIMQoCAgICAgMD//wBUIAxCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDQwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCENIAMhAQwCCyABIAxCgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDQwDCyANQoCAgICAgMD//wCEIQ1CACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDIRQBEBCgICAgICA4P//ACANIAIgA4RQGyENQgAhAQwCCyACIAOEUARAIA1CgICAgICAwP//AIQhDUIAIQEMAgsgDEL///////8/WARAIAVBwAJqIAEgCiABIAogClAiBht5IAZBBnStfKciBkEPaxBoQRAgBmshBiAFKQPIAiEKIAUpA8ACIQELIAJC////////P1YNACAFQbACaiADIAsgAyALIAtQIgcbeSAHQQZ0rXynIgdBD2sQaCAGIAdqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABAoIAVBkAJqQgAgBSkDqAJ9QgAgBEIAECggBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQKCAFQfABaiAEQgBCACAFKQOIAn1CABAoIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAECggBUHQAWogBEIAQgAgBSkD6AF9QgAQKCAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABAoIAVBsAFqIARCAEIAIAUpA8gBfUIAECggBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQ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QCACIAQQNkUNACADIAMoAhQpAwA3AwggAyAENgIEIAMoAhQhAgNAAkAgAiADKAIEKQMANwMAIAAgAygCBCICRgRAIAAhAgwBCyADIAJBCGsiBDYCBCADQQhqIAQQNg0BCwsgAiADKQMINwMAIAZBAWoiBkEIRw0AIAMoAhRBCGogAUYhBQwCCyADKAIUIgRBCGohAgwACwALIANBIGokACAFC80BAQF/IwBBIGsiBiQAIAYgATYCGCAGIAA2AhwgBiACNgIUIAYgAzYCECAGIAQ2AgwgACABIAIgAyAFEIsLIQUCQCAEIAMQNkUNACAGQRBqIAZBDGoQWyAGKAIQIAIQNkUEQCAFQQFqIQUMAQsgBkEUaiAGQRBqEFsgBigCFCABEDZFBEAgBUECaiEFDAELIAZBGGogBkEUahBbIAYoAhggABA2RQRAIAVBA2ohBQwBCyAFQQRqIQUgBkEcaiAGQRhqEFsLIAZBIGokACAFCxIAIAAgASACIAMgBCAFEI0LGgsQACAAIAEgAiADIAQQiwsaC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLcgEBfyMAQRBrIgMkAAJAIAAtABBBAUYEQCABIAIpAwA3AwAgASACKQMINwMIDAELIAMgAjYCDCADIAA2AgggAygCDCEBIAMoAggiABDJASAAIAEpAwg3AwggACABKQMANwMAIABBAToAEAsgA0EQaiQACxMAIABBACABQYDAAigCABEFABoLhAUBC38gASgCACIEKAIcIQsDQAJAIAQoAhggCk0EQEEBDwsCQAJAAkACQCALIApBMGxqIgMoAghBAWsOAwEAAQILIAAgAygCECIGaiIEKAIAIghFDQEgASADKAIUIgVqIQcgACAFaiEFAkAgASAGaiIGKAIABEAgAygCDBDIAiEDIAIoAgggAyAGKAIAIAQoAgBqbCACKAIAEQMAIghFDQQgCCAF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NwMQIABBgJgBKQMANwMIIABB+JcBKQMANwMACyYAIABBtJcBKAIANgIQIABBrJcBKQIANwIIIABBpJcBKQIANwIACy8AIAAQRCAAIAEoAgg2AgggACABKQIANwIAIAFCADcCACABQQA2AgggAEEEOgAYCzIAIABB5JYBKAIANgIYIABB3JYBKQIANwIQIABB1JYBKQIANwIIIABBzJYBKQIANwIACzIAIABBmJMBKQMANwMYIABBkJMBKQMANwMQIABBiJMBKQMANwMIIABBgJMBKQMANwMACw4AIABBiJEBQcAAEB0aCyYAIABBxJABKAIANgIQIABBvJABKQIANwIIIABBtJABKQIANwIACw0AIABBwI8BQTgQHRoLRQEBfyMAQRBrIgMkAAJAIAAtABhBBEYEQCABIAIQHAwBCyADIAI2AgwgAyAANgIIIAMoAgggAygCDBCoCwsgA0EQaiQACw0AIABB8O8AQTAQHRoLDgAgAEH47ABB4AAQHRoLDQAgAEHY6QBBKBAdGgsNACAAIAEgAkEHEMkJCz0BAX8jAEEQayICJAAgAC0AEEEGRwRAIAIgATYCDCACIAA2AgggAigCCCIAEDcgAEEGOgAQCyACQRBqJAALcQEBfyMAQRBrIgMkAAJAIAAtABBBBUYEQCABIAIpAwA3AwAgASACKQMINwMIDAELIAMgAjYCDCADIAA2AgggAygCDCEBIAMoAggiABA3IAAgASkDCDcDCCAAIAEpAwA3AwAgAEEFOgAQCyADQRBqJAALLwAgABA3IAAgASgCCDYCCCAAIAEpAgA3AgAgAUIANwIAIAFBADYCCCAAQQQ6ABALFQAgAEGw5gA2AgAgAEEIahAKGiAACw4AIABBCGoQChogABAMCwoAIABBCGoQChoLFQAgAEGM5gA2AgAgAEEIahAKGiAACxUAIABBoOUANgIAIABBBGoQbxogAAtFAQF/IwBBEGsiAyQAAkAgAC0AEEEERgRAIAEgAhAcDAELIAMgAjYCDCADIAA2AgggAygCCCADKAIMELULCyADQRBqJAALbAECfyABIAAoAgQgACgCACABKAIEEOkKIgI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACw4AIABBBGoQbxogABAMCwoAIABBBGoQbxoLFQAgAEH85AA2AgAgAEEEahBvGiAAC2IAIAAgASgCADYCACAAQQRqIAIQIxogACADKAIINgIYIAAgAykCADcCECADQgA3AgAgA0EANgIIIAAgBCkDADcDICAAIAUoAgA2AiggACAGKAIANgIsIAAgBy0AADoAMCAACxMAIABBEGoQChogAEEEahA/IAALDQAgACABIAJBAxDJCQtjAgJ/AXwjAEEQayIDJAACQCAALQAQQQJGBEAgASACKwMAOQMADAELIAMgAjYCDCADIAA2AgggAygCDCEEIAMoAggiABA3IAQrAwAhBSAAQQI6ABAgACAFOQMACyADQRBqJAALYwICfwF+IwBBEGsiAyQAAkAgAC0AEEEBRgRAIAEgAikDADcDAAwBCyADIAI2AgwgAyAANgIIIAMoAgwhBCADKAIIIgAQNyAEKQMAIQUgAEEBOgAQIAAgBTcDAAsgA0EQaiQAC2ECAn8BfiMAQRBrIgMkAAJAIAAtABBFBEAgASACKQMANwMADAELIAMgAjYCDCADIAA2AgggAygCDCEEIAMoAggiABA3IAQpAwAhBSAAQQA6ABAgACAFNwMACyADQRBqJAALDgAgACgCACABIAIQsgsLxgEBB38CfyABENACIQQCQCAAKAKMBCIDRQ0AIAAoAogEAn8gA0EBayAEcSADaSICQQFNDQAaIAQgAyAESw0AGiAEIANwCyIGQQJ0aigCACIFRQ0AIANBAWshByACQQFLIQgDQCAFKAIAIgVFDQEgBSgCBCICIARHBEACQCAIRQRAIAIgB3EhAgwBCyACIANJDQAgAiADcCECCyACIAZHDQIMAQsgBUEIaiABECRFDQALIAUMAQtBAAsiAUEUaiAAQawPaiABGwsMACAAKAIAIAIQswsLQQEDfwJAIAAtALABDQAgACgCqAMhAiAAKAKkAyEAA0AgACACRiIBDQEgACIDQcgAaiEAIAMpAzhCAFUNAAsLIAELzwUBDn8jAEGQAWsiBSQAAkAgAC0ArAJFDQBBARAXBEAgBUEIahATIQwgBUEBNgIEIAwgAEHoA2oQEUG0ERAOGiAFQQRqEBYLIwBBkAFrIgMkACAAQRBqIgEoAqQBIQQgASgCoAEhAgNAIAIgBEYEQCABIAEpA+ABNwPoAUEBEBcEQCADQQhqEBMhDSADQQE2AgQgDSABQYACahARQaHSABAOIAEpA+gBEIEBGiADQQRqEBYLIANBkAFqJAAFIAJBAToALCACQTBqIQIMAQsLIABBpAJqIQggACgCoAIhAANAIAAgCEYNASMAQaABayIDJAACQCAAQSBqIgEtAKgDRQ0AIAEoAoQBIAEoAoABayABKAKAAyABKAL8AmtGDQBBABAXBEAgA0EYahATIQ4gA0EANgIUIA4gAUG8A2oQEUHg0wAQDiABKAKEASABKAKAAWtBBXUQbhogA0EUahAWCyABQZgCaiIHIAFB0AFqEPYDIAEgASgCwAI2AsQCIAEgASgChAEgASgCgAFrQQV1rTcDuAIgAUHAAmohCSABKAK8ASEKIAEoArgBIQIDQCACIApGBEAgA0EUaiICIAEgB0EBIAEpA4gCEIoHIAFBzAJqIAIQHCACEAoaIAIgASAHQQAgASkDiAIQigcgAUHYAmogAhAcIAIQChogASgCXCEEIAEoAlghAQNAIAEgBEcEQAJAIAFBEGoiAi0AuAFFBEAgAkEIahCUBwwBCyACEHAQ3wcLIAFB+AFqIQEMAQsLBSADQRRqIgRBADYCCCAEQgA3AgAgAigCBCIGIAIoAgAiC0cEQCAEIAYgC2tBA3UiBhCbByAEIAIoAgAgAigCBCAGEPUDCyADIAMoAhggBCgCAGtBA3WtNwMIIAkgA0EIahBUIAQQDxogAkEMaiECDAELCwsgA0GgAWokACAAELUBIQAMAAsACyAFQZABaiQACw4AIAAoAgAgASACELQLC14BA38jAEEQayIBJAAgASAANgIMIAEoAgwiACgCAARAIAAoAgAhAyAAKAIEIQIDQCACIANHBEAgAkE4axDBCyECDAELCyAAIAM2AgQgASgCDCgCABAMCyABQRBqJAALsAEBA38CQCAALQAoIgIgAS0AKEYEQCACRQ0BIwBBEGsiAiQAAkAgAUEIaiIBLQAYIgNB/wFGIgQgAEEIaiIALQAYQf8BRnENACAEBEAgABCDAQwBCyACIAA2AgQgAkHI5AApAwA3AwggAkEEaiAAIAEgAkEIaiADQQJ0aigCABEEAAsgAkEQaiQADwsgAgRAIAAtACgEQCAAQQhqEIMBIABBADoAKAsPCyAAIAEQ7gYLC7QBAQJ/IAAtAOADBEAgABDrBiAAQQA6AOADCyMAQRBrIgIkACABKAIAIQMgAkEEakGo2AAQCyEBIABBADYCACAAIAEoAgg2AgwgACABKQIANwIEIAFCADcCACABQQA2AgggAEEQahCIDCAAQQA6AKADIABBADoAgAMgAEGkA2oQ7gEgAEIANwPQAyAAQgA3A8gDIABBATsB2AMgACADEIAHIAEQChogAEEBOgDgAyACQRBqJAALmgEBA38gAEEANgIIIABCADcCACABKAIEIgIgASgCACIDRwRAIAIgA2tBDG0iAkHWqtWqAU8EQBABAAsgACACELIJIgM2AgQgACADNgIAIAAgAyACQQxsajYCCCAAIQQgASgCACECIAEoAgQhASAAKAIEIQADQCABIAJHBEAgACACEBJBDGohACACQQxqIQIMAQsLIAQgADYCBAsLDQAgACABQcDiABDYCQsOACAAKAIAIAEgAhDCCwsSACAAEMIBIAAgARB8QQA6ABgLFgAgAC0ArAIEQCAAQcgCaiABEN4BCwsOACAAKAIAIAEgAhDDCwsXACAALQCsAkUEQCAAQbACaiABEN4BCwsOACAAKAIAIAEgAhDECwu7AQEBfyMAQYABayIEJAAgBCACKQMINwM4IAQgAikDADcDMCAEQRhqIAMQowIhAiAEIAQpAzg3AxAgBCAEKQMwNwMIIARBQGsiAyABIARBCGogAhDDASACECoCQAJAIAQtAHhFDQAgAxDAASIBLQAoRQ0AQQEhAiABLQAgQQFHDQAgACABKQMYNwMIIAAgASkDEDcDAAwBC0EAIQIgAEEAOgAACyAAIAI6ABAgBEHIAGoQsQEgBEGAAWokAAtcAQN/IwBBEGsiAiQAAkAgAS0AGCIDQf8BRiIEIAAtABhB/wFGcQ0AIAQEQCAAEMIBDAELIAIgADYCDCACQQxqIAAgASADQQJ0QejhAGooAgARBAALIAJBEGokAAsOACAAKAIAIAEgAhDFCwsJACAAQQAQ3QYLGAEBf0EMEBoiAEEANgIIIABCADcCACAACxEAIAAQRCAAIAEQfEECOgAYCwkAIABBAxD/AgsJACAAQQIQ/wILRgEBfyMAQRBrIgMkAAJAIAAtABhBAkYEQCABIAIQ8AQMAQsgAyACNgIMIAMgADYCCCADKAIIIAMoAgwQ3AsLIANBEGokAAthAQJ/IwBB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EAoaIAYQChogAEHAAmokACAIC9EDAgF+AX8jAEGAA2siACQAIAAgAjYC+AIgACABNgL8AiAAQdwBaiADIABB8AFqIABB7AFqIABB6AFqELUGIABB0AFqECYiASABECcQHyAAIAFBABAhIgI2AswBIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABB/AJqIABB+AJqEC4NACAAKALMASABEA0gAmpGBEAgARANIQMgASABEA1BAXQQHyABIAEQJxAfIAAgAyABQQAQISICajYCzAELIABB/AJqIgMQSyAAQRdqIABBFmogAiAAQcwBaiAAKALsASAAKALoASAAQdwBaiAAQSBqIABBHGogAEEYaiAAQfABahC0Bg0AIAMQVRoMAQsLAkAgAEHcAWoQDUUNACAALQAXRQ0AIAAoAhwiAyAAQSBqa0GfAUoNACAAIANBBGo2AhwgAyAAKAIYNgIACyAAIAIgACgCzAEgBBC4CiAAKQMAIQYgBSAAKQMINwMIIAUgBjcDACAAQdwBaiAAQSBqIAAoAhwgBBBlIABB/AJqIABB+AJqEC4EQCAEIAQoAgBBAnI2AgALIAAoAvwCIQcgARAKGiAAQdwBahAKGiAAQYADaiQAIAcLugMBAX8jAEHwAmsiACQAIAAgAjYC6AIgACABNgLsAiAAQcwBaiADIABB4AFqIABB3AFqIABB2AFqELUGIABBwAFqECYiASABECcQHyAAIAFBABAhIgI2ArwBIAAgAEEQajYCDCAAQQA2AgggAEEBOgAHIABBxQA6AAYDQAJAIABB7AJqIABB6AJqEC4NACAAKAK8ASABEA0gAmpGBEAgARANIQMgASABEA1BAXQQHyABIAEQJxAfIAAgAyABQQAQISICajYCvAELIABB7AJqIgMQSyAAQQdqIABBBmogAiAAQbwBaiAAKALcASAAKALYASAAQcwBaiAAQRBqIABBDGogAEEIaiAAQeABahC0Bg0AIAMQVRoMAQsLAkAgAEHMAWoQDUUNACAALQAHRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCvAEgBBC5CjkDACAAQcwBaiAAQRBqIAAoAgwgBBBlIABB7AJqIABB6AJqEC4EQCAEIAQoAgBBAnI2AgALIAAo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cjYCAAsgACgC/AEhCCADEAoaIAYQChogAEGAAmokACAIC9EDAgF+AX8jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqELgGIABBxAFqECYiASABECcQHyAAIAFBABAhIgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEC8NACAAKALAASABEA0gAmpGBEAgARANIQMgASABEA1BAXQQHyABIAEQJxAfIAAgAyABQQAQISICajYCwAELIABBjAJqIgMQTCAAQRdqIABBFmogAiAAQcABaiAALADfASAALADeASAAQdABaiAAQSBqIABBHGogAEEYaiAAQeABahC3Bg0AIAMQVhoMAQsLAkAgAEHQAWoQDUUNACAALQAXRQ0AIAAoAhwiAyAAQSBqa0GfAUoNACAAIANBBGo2AhwgAyAAKAIYNgIACyAAIAIgACgCwAEgBBC4CiAAKQMAIQYgBSAAKQMINwMIIAUgBjcDACAAQdABaiAAQSBqIAAoAhwgBBBlIABBjAJqIABBiAJqEC8EQCAEIAQoAgBBAnI2AgALIAAoAowCIQcgARAKGiAAQdABahAKGiAAQZACaiQAIAcLCQAgAEEDENwJC7oDAQF/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahC4BiAAQbQBahAmIgEgARAnEB8gACABQQAQISICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahAvDQAgACgCsAEgARANIAJqRgRAIAEQDSEDIAEgARANQQF0EB8gASABECcQHyAAIAMgAUEAECEiAmo2ArABCyAAQfwBaiIDEEwgAEEHaiAAQQZqIAIgAEGwAWogACwAzwEgACwAzgEgAEHAAWogAEEQaiAAQQxqIABBCGogAEHQAWoQtwYNACADEFYaDAELCwJAIABBwAFqEA1FDQAgAC0AB0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArABIAQQuQo5AwAgAEHAAWogAEEQaiAAKAIMIAQQZSAAQfwBaiAAQfgBahAvBEAgBCAEKAIAQQJyNgIACyAAKAL8ASEGIAEQChogAEHAAWoQChogAEGAAmokACAGC7oDAQF/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahC4BiAAQbQBahAmIgEgARAnEB8gACABQQAQISICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahAvDQAgACgCsAEgARANIAJqRgRAIAEQDSEDIAEgARANQQF0EB8gASABECcQHyAAIAMgAUEAECEiAmo2ArABCyAAQfwBaiIDEEwgAEEHaiAAQQZqIAIgAEGwAWogACwAzwEgACwAzgEgAEHAAWogAEEQaiAAQQxqIABBCGogAEHQAWoQtwYNACADEFYaDAELCwJAIABBwAFqEA1FDQAgAC0AB0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArABIAQQugo4AgAgAEHAAWogAEEQaiAAKAIMIAQQZSAAQfwBaiAAQfgBahAvBEAgBCAEKAIAQQJyNgIACyAAKAL8ASEGIAEQChogAEHAAWoQChogAEGAAmokACAGC5ADAQJ/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAxDYASEGIABBxAFqIAMgAEH3AWoQ4gMgAEG4AWoQJiIBIAEQJxAfIAAgAUEAECEiAjYCtAEgACAAQRBqNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQLw0AIAAoArQBIAEQDSACakYEQCABEA0hAyABIAEQDUEBdBAfIAEgARAnEB8gACADIAFBABAhIgJqNgK0AQsgAEH8AWoiAxBMIAYgAiAAQbQBaiAAQQhqIAAsAPcBIABBxAFqIABBEGogAEEMakGAhQIQiQMNACADEFYaDAELCwJAIABBxAFqEA1FDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK0ASAEIAYQuwo3AwAgAEHEAWogAEEQaiAAKAIMIAQQZSAAQfwBaiAAQfgBahAvBEAgBCAEKAIAQQJyNgIACyAAKAL8ASEHIAEQChogAEHEAWoQChogAEGAAmokACAHC5ADAQJ/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAxDYASEGIABBxAFqIAMgAEH3AWoQ4gMgAEG4AWoQJiIBIAEQJxAfIAAgAUEAECEiAjYCtAEgACAAQRBqNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQLw0AIAAoArQBIAEQDSACakYEQCABEA0hAyABIAEQDUEBdBAfIAEgARAnEB8gACADIAFBABAhIgJqNgK0AQsgAEH8AWoiAxBMIAYgAiAAQbQBaiAAQQhqIAAsAPcBIABBxAFqIABBEGogAEEMakGAhQIQiQMNACADEFYaDAELCwJAIABBxAFqEA1FDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK0ASAEIAYQvgo7AQAgAEHEAWogAEEQaiAAKAIMIAQQZSAAQfwBaiAAQfgBahAvBEAgBCAEKAIAQQJyNgIACyAAKAL8ASEHIAEQChogAEHEAWoQChogAEGAAmokACAHC5ADAQJ/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAxDYASEGIABBxAFqIAMgAEH3AWoQ4gMgAEG4AWoQJiIBIAEQJxAfIAAgAUEAECEiAjYCtAEgACAAQRBqNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQLw0AIAAoArQBIAEQDSACakYEQCABEA0hAyABIAEQDUEBdBAfIAEgARAnEB8gACADIAFBABAhIgJqNgK0AQsgAEH8AWoiAxBMIAYgAiAAQbQBaiAAQQhqIAAsAPcBIABBxAFqIABBEGogAEEMakGAhQIQiQMNACADEFYaDAELCwJAIABBxAFqEA1FDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK0ASAEIAYQvwo3AwAgAEHEAWogAEEQaiAAKAIMIAQQZSAAQfwBaiAAQfgBahAvBEAgBCAEKAIAQQJyNgIACyAAKAL8ASEHIAEQChogAEHEAWoQChogAEGAAmokACAHC5ADAQJ/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAxDYASEGIABBxAFqIAMgAEH3AWoQ4gMgAEG4AWoQJiIBIAEQJxAfIAAgAUEAECEiAjYCtAEgACAAQRBqNgIMIABBADYCCANAAkAgAEH8AWogAEH4AWoQLw0AIAAoArQBIAEQDSACakYEQCABEA0hAyABIAEQDUEBdBAfIAEgARAnEB8gACADIAFBABAhIgJqNgK0AQsgAEH8AWoiAxBMIAYgAiAAQbQBaiAAQQhqIAAsAPcBIABBxAFqIABBEGogAEEMakGAhQIQiQMNACADEFYaDAELCwJAIABBxAFqEA1FDQAgACgCDCIDIABBEGprQZ8BSg0AIAAgA0EEajYCDCADIAAoAgg2AgALIAUgAiAAKAK0ASAEIAYQwAo2AgAgAEHEAWogAEEQaiAAKAIMIAQQZSAAQfwBaiAAQfgBahAvBEAgBCAEKAIAQQJyNgIACyAAKAL8ASEHIAEQChogAEHEAWoQChogAEGAAmokACAHC+wBAQF/IwBBIGsiBiQAIAYgATYCHAJAIAMoAgRBAXFFBEAgBkF/NgIAIAAgASACIAMgBCAGIAAoAgAoAhARCAAhAQJAAkACQCAGKAIADgIAAQILIAVBADoAAAwDCyAFQQE6AAAMAgsgBUEBOgAAIARBBDYCAAwBCyAGIAMQJSAGEHEhASAGECIgBiADECUgBhCLAyEAIAYQIiAGIAAQqwEgBkEMciAAEKoBIAUgBkEcaiACIAYgBkEYaiIDIAEgBEEBENsEIAZGOgAAIAYoAhwhAQNAIANBDGsQCiIDIAZHDQALCyAGQSBqJAAgAQtAAQF/QQAhAAN/IAEgAkYEfyAABSABKAIAIABBBHRqIgBBgICAgH9xIgNBGHYgA3IgAHMhACABQQRqIQEMAQsLCxsAIwBBEGsiASQAIAAgAiADEMMKIAFBEGokAAtUAQJ/AkADQCADIARHBEBBfyEAIAEgAkYNAiABKAIAIgUgAygCACIGSA0CIAUgBkoEQEEBDwUgA0EEaiEDIAFBBGohAQwCCwALCyABIAJHIQALIAALQAEBf0EAIQADfyABIAJGBH8gAAUgASwAACAAQQR0aiIAQYCAgIB/cSIDQRh2IANyIABzIQAgAUEBaiEBDAELCwsbACMAQRBrIgEkACAAIAIgAxCxBCABQRBqJAALXgEDfyABIAQgA2tqIQUCQANAIAMgBEcEQEF/IQAgASACRg0CIAEsAAAiBiADLAAAIgdIDQIgBiAHSgRAQQEPBSADQQFqIQMgAUEBaiEBDAILAAsLIAIgBUchAAsgAAuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGEB0aIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEEB0aIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC1QBAn8gASAAKAJUIgEgAUEAIAJBgAJqIgMQvgYiBCABayADIAQbIgMgAiACIANLGyICEB0aIAAgASADaiIDNgJUIAAgAzYCCCAAIAEgAmo2AgQgAgtgAQJ9IAAqAhghA0E+IQADQAJAIABFBEBBACEADAELAn8gA0EBQcAAIABrdLOUIgJDAACAT10gAkMAAAAAYHEEQCACqQwBC0EACyABTw0AIABBAWshAAwBCwsgAEH/AXELDAAgABDCBhogABAMCxMAIAAgACgCAEEMaygCAGoQ7AoLEwAgACAAKAIAQQxrKAIAahDMAQsaACAAIAEgAikDCEEAIAMgASgCACgCEBEVAAsJACAAEI4GEAwLlAICAX8DfiABKAIYIAEoAixLBEAgASABKAIYNgIsC0J/IQgCQCAEQRhxIgVFIANBAUYgBUEYRnFyDQAgASgCLCIFBEAgBSABQSBqECBrrCEGCwJAAkACQCADDgMCAAEDCyAEQQhxBEAgASgCDCABKAIIa6whBwwCCyABKAIYIAEoAhRrrCEHDAELIAYhBwsgAiAHfCICQgBTIAIgBlVyDQAgBEEIcSEDAkAgAlANACADBEAgASgCDEUNAgsgBEEQcUUNACABKAIYRQ0BCyADBEAgASABKAIIIAEoAgggAqdqIAEoAiwQ5QMLIARBEHEEQCABIAEoAhQgASgCHBDxCiABIAKnEPAKCyACIQgLIAAgCBDNBguDAgEKfyMAQRBrIgMkAAJ/IAFBfxD2AUUEQCAAKAIMIQQgACgCCCEFIAAoAhggACgCHEYEQEF/IAAtADBBEHFFDQIaIAAoAhghBiAAKAIUIQcgACgCLCEIIAAoAhQhCSAAQSBqIgJBABCkASACIAIQJxAfIAAgAhAgIgogAhANIApqEPEKIAAgBiAHaxDwCiAAIAAoAhQgCCAJa2o2AiwLIAMgACgCGEEBajYCDCAAIANBDGogAEEsahC/AigCADYCLCAALQAwQQhxBEAgACAAQSBqECAiAiACIAQgBWtqIAAoAiwQ5QMLIAAgAcAQ+AoMAQsgARDtCgshCyADQRBqJAAgCwuYAQAgACgCGCAAKAIsSwRAIAAgACgCGDYCLAsCQCAAKAIIIAAoAgxPDQAgAUF/EPYBBEAgACAAKAIIIAAoAgxBAWsgACgCLBDlAyABEO0KDwsgAC0AMEEQcUUEQCABwCAAKAIMQQFrLAAAEPYBRQ0BCyAAIAAoAgggACgCDEEBayAAKAIsEOUDIAAoAgwgAcA6AAAgAQ8LQX8LZQAgACgCGCAAKAIsSwRAIAAgACgCGDYCLAsCQCAALQAwQQhxRQ0AIAAoAhAgACgCLEkEQCAAIAAoAgggACgCDCAAKAIsEOUDCyAAKAIMIAAoAhBPDQAgACgCDCwAABDFAg8LQX8LBwAgACgCDAsHACAAKAIICxMAIAAgACgCAEEMaygCAGoQ9woLEwAgACAAKAIAQQxrKAIAahDKBguvAQEEfyMAQRBrIgUkAANAAkAgAiAETA0AIAAoAhgiAyAAKAIcIgZPBEAgACABLAAAEMUCIAAoAgAoAjQRAwBBf0YNASAEQQFqIQQgAUEBaiEBBSAFIAYgA2s2AgwgBSACIARrNgIIIAVBDGogBUEIahDMBiEDIAAoAhggASADKAIAIgMQmwEgACADIAAoAhhqNgIYIAMgBGohBCABIANqIQELDAELCyAFQRBqJAAgBAsvACAAIAAoAgAoAiQRAgBBf0YEQEF/DwsgACAAKAIMIgBBAWo2AgwgACwAABDFAgsEAEF/C74BAQR/IwBBEGsiBCQAA0ACQCACIAVMDQACQCAAKAIMIgMgACgCECIGSQRAIARB/////wc2AgwgBCAGIANrNgIIIAQgAiAFazYCBCAEQQxqIARBCGogBEEEahDMBhDMBiEDIAEgACgCDCADKAIAIgMQmwEgACAAKAIMIANqNgIMDAELIAAgACgCACgCKBECACIDQX9GDQEgASADwDoAAEEBIQMLIAEgA2ohASADIAVqIQUMAQsLIARBEGokACAFCwkAIABCfxDNBgsJACAAQn8QzQYLBAAgAAsMACAAEM4GGiAAEAwLBgAgARAMCwYAIAEQRwsyACAAQZyhASgCADYCGCAAQZShASkCADcCECAAQYyhASkCADcCCCAAQYShASkCADcCAAsmACAAQdSfASgCADYCECAAQcyfASkCADcCCCAAQcSfASkCADcCAAsOACAAKAIAIAEgAhCXCwsyACAAQaSdASgCADYCGCAAQZydASkCADcCECAAQZSdASkCADcCCCAAQYydASkCADcCAAsyACAAQbCaASkDADcDGCAAQaiaASkDADcDECAAQaCaASkDADcDCCAAQZiaASkDADcDAAsmACAAQdSZASkCADcCECAAQcyZASkCADcCCCAAQcSZASkCADcCAAsmACAAQaCVASkCADcCECAAQZiVASkCADcCCCAAQZCVASkCADcCAAsyACAAQcyUASkCADcCGCAAQcSUASkCADcCECAAQbyUASkCADcCCCAAQbSUASkCADcCAAsyACAAQfSTASgCADYCGCAAQeyTASkCADcCECAAQeSTASkCADcCCCAAQdyTASkCADcCAAsNACAAQYiSAUE4EB0aCw4AIABB4PAAQdAAEB0aCxoAIABBrO8AKAIANgIIIABBpO8AKQIANwIACw4AIABBmO4AQdAAEB0aCw0AIABBlOwAQSgQHRoLDQAgAEGw6wBBKBAdGgsNACAAQcDqAEEwEB0aC2gBAn8jAEEQayICJAAgAiABKAIINgIIIAIgASkCADcDACABQgA3AgAgAUEANgIIIAIoAgAgAiACLQALIgHAQQBIIgMbIAIoAgQgASADG60gACgCCCAAKAIEESwAIAIQChogAkEQaiQACxUAIAFBvOkANgIAIAEgACkCBDcCBAsLACAAQbzpABCJAQtxAQJ/IwBBEGsiAyQAIAEoAgAhBCADIAIoAgg2AgggAyACKQIANwMAIAJCADcCACACQQA2AgggBCADKAIAIAMgAy0ACyIBwEEASCICGyADKAIEIAEgAhutIAAoAgggACgCBBEcACADEAoaIANBEGokAAsVACABQZjpADYCACABIAApAgQ3AgQLCwAgAEGY6QAQiQELzAIBAn8jAEFAaiIFJAAgASgCACEGIAUgAkEIaigCADYCKCAFIAIpAgA3AyAgAkIANwIAIAJBADYCCCAFIAMoAgg2AhggBSADKQIANwMQIANCADcCACADQQA2AgggBSAEKAIAIgI2AgQgBSAEKAIEIgM2AgggBSAEKAIINgIMIARBADYCCCAEQgA3AgAgBUEANgI8IAVCADcCNCAFQTRqIAMgAmtBDG0QxgEDQCACIANGRQRAIAUgAigCACACIAIsAAtBAEgbNgIwIAJBDGohAiAFQTRqIAVBMGoQngEMAQsLIAYgBSgCICAFQSBqIgIgBSwAK0EASBsgBSgCECAFQRBqIgMgBSwAG0EASBsgBSgCNCIBIAUoAjggAWtBAnWtIAAoAgggACgCBBFJACAFQTRqEA8aIAVBBGoQPyADEAoaIAIQChogBUFAayQACxUAIAFB9OgANgIAIAEgACkCBDcCBAsLACAAQfToABCJAQu2AQECfyMAQSBrIgUkACACLQAAIQIgASgCACEGIAUgAygCCDYCGCAFIAMpAgA3AxAgA0IANwIAIANBADYCCCAFIAQoAgg2AgggBSAEKQIANwMAIARCADcCACAEQQA2AgggBiACIAUoAhAgBUEQaiIDIAUtABsiAcBBAEgiAhsgBSgCFCABIAIbrSAFKAIAIAUgBSwAC0EASBsgACgCCCAAKAIEESAAIAUQChogAxAKGiAFQSBqJAALFQAgAUHQ6AA2AgAgASAAKQIENwIECwsAIABB0OgAEIkBCxUAIAFBrOgANgIAIAEgACkCBDcCBAsLACAAQazoABCJAQsVACABQYjoADYCACABIAApAgQ3AgQLCwAgAEGI6AAQiQELFQAgAUHk5wA2AgAgASAAKQIENwIECwsAIABB5OcAEIkBCxUAIAFBwOcANgIAIAEgACkCBDcCBAsLACAAQcDnABCJAQsVACABQZznADYCACABIAApAgQ3AgQLCwAgAEGc5wAQiQELFQAgAUH45gA2AgAgASAAKQIENwIECwsAIABB+OYAEIkBC8QCAgN/AX4jAEEwayIFJAAgASgCACEGIAUgAigCACIBNgIIIAUgAigCBCIHNgIMIAUgAigCCDYCECACQQA2AgggAkIANwIAAkAgBgRAIAZBAEEAQgBBACAAKAIIIAAoAgQRIAAMAQsgBC0AACECIAMpAwAhCCAFQQA2AiwgBUIANwIkIAVBADYCICAFQgA3AhggBUEkaiAHIAFrQRhtIgMQxgEgBUEYaiADEMYBA0AgASAHRgRAQQAgBSgCJCAFKAIYIAggAiAAKAIIIAAoAgQRIAAgBUEYahAPGiAFQSRqEA8aBSAFIAEoAgAgASABLAALQQBIGzYCFCAFQSRqIAVBFGoiAxCeASAFIAEoAgwgAUEMaiABLAAXQQBIGzYCFCABQRhqIQEgBUEYaiADEJ4BDAELCwsgBUEIahD0BCAFQTBqJAALFQAgAUHU5gA2AgAgASAAKQIENwIECwsAIABB1OYAEIkBCykAIAEoAgAgAEEIaiIBKAIAIAEgACwAE0EASBsgACgCFCAAKAIEEQQACxgAIAFBsOYANgIAIAFBBGogAEEEahDuBAsgAQF/QRgQGiIBQbDmADYCACABQQRqIABBBGoQ7gQgAQsJACAAELYLEAwLhgEBAn8jAEEQayIDJAAgASgCACEEIAMgAigCCDYCCCADIAIpAgA3AwAgAkIANwIAIAJBADYCCCAEIABBCGoiASgCACABIAAsABNBAEgbIAMoAgAgAyADLQALIgHAQQBIIgIbIAMoAgQgASACG60gACgCFCAAKAIEETAAIAMQChogA0EQaiQACxgAIAFBjOYANgIAIAFBBGogAEEEahDuBAsgAQF/QRgQGiIBQYzmADYCACABQQRqIABBBGoQ7gQgAQsJACAAELkLEAwLlAEBAX8jAEEgayIDJAAgAyABKAIINgIYIAMgASkCADcDECABQgA3AgAgAUEANgIIIAMgAigCCDYCCCADIAIpAgA3AwAgAkIANwIAIAJBADYCCCADKAIQIANBEGoiASADLAAbQQBIGyADKAIAIAMgAywAC0EASBsgACgCCCAAKAIEEQQAIAMQChogARAKGiADQSBqJAALFQAgAUHo5QA2AgAgASAAKQIENwIECwsAIABB6OUAEIkBCw4AIAEoAgAgAigCABAJCwsAIAFBxOUANgIACxEAQQgQGiIAQcTlADYCACAAC98BAQJ/IwBB0ABrIgUkACAFIAEoAgg2AkggBSABKQIANwNAIAFCADcCACABQQA2AgggBSACKAIANgI0IAUgAigCBDYCOCAFIAIoAgg2AjwgAkEANgIIIAJCADcCACADKAIAIQEgBUEQaiAEQQhqENALIQYgACgCBCAAQQRqIAAsAA9BAEgbIABBEGoiAygCACADIAAsABtBAEgbIAUoAkAgBUFAayIDIAUsAEtBAEgbIAVBNGoiBCABIAVBCGogACgCICAAKAIcERcAIAYQPiAEEFMgAxAKGiAFQdAAaiQACxgAIAFBoOUANgIAIAFBBGogAEEEahDvBAsgAQF/QSQQGiIBQaDlADYCACABQQRqIABBBGoQ7wQgAQsJACAAELoLEAwLPAAgASgCACAAKAIEIABBBGogACwAD0EASBsgAEEQaiIBKAIAIAEgACwAG0EASBsgACgCICAAKAIcEQYACxgAIAFB/OQANgIAIAFBBGogAEEEahDvBAsgAQF/QSQQGiIBQfzkADYCACABQQRqIABBBGoQ7wQgAQsJACAAEL8LEAwLhAEBAn8jAEEQayICJAAgAiABKAIINgIIIAIgASkCADcDACABQgA3AgAgAUEANgIIIwBBEGsiASQAIAAoAgQhAyABIAIoAgg2AgggASACKQIANwMAIAJCADcCACACQQA2AgggA0HAD2ogARDmASABEAoaIAFBEGokACACEAoaIAJBEGokAAsVACABQdjkADYCACABIAAoAgQ2AgQLCwAgAEHY5AAQ2QMLjQEBAX8gACgCACEDIwBBEGsiACQAAkAgAy0AGEEBRgRAIAEgAigCADYCACABIAIpAwg3AwggASACKQMQNwMQDAELIAAgAjYCDCAAIAM2AgggACgCDCECIAAoAggiARCDASABIAIpAxA3AxAgASACKQMINwMIIAEgAikDADcDACABQQE6ABgLIABBEGokAAtaAQF/IAAoAgAhAyMAQRBrIgAkAAJAIAMtABhFBEAgASACEPAEDAELIAAgAjYCDCAAIAM2AgggACgCDCEBIAAoAggiAhCDASACIAEQfEEAOgAYCyAAQRBqJAALngcBEn8gASgCBCECIwBB0ABrIgUkAAJAIAIoAoQERQRAIABBqNgAEAsaDAELIAJB/ANqIQYgAkGABGohDyAFQSRqIgFCADcCHCABIAFBFGoiAzYCGCABIAM2AhQgAUIANwIkIAEQpwsgAigC/AMhBANAIAQgD0YEQCAAQgA3AgAgAEEANgIIIwBBEGsiAiQAIAEoAgBBuJcBRwRAQYgdQfvHAEHVA0HuNhAAAAsgACABEFwQYSACIAA2AgwgAkH8ATYCCCABKAIAQbiXAUcEQEGIHUH7xwBB4wNBqigQAAALIAEgAkEIahBpIAJBEGokACAGIAYoAgQQ9wQgBiAGQQRqNgIAIAZCADcCBCABQSBqEA8aAkAgAUEUaiICKAIIRQ0AIAIoAgQiACgCACIBIAIoAgAiAygCBDYCBCAD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QYiZAUcEQEGCGkH7xwBBvQRB4yYQAAALIAAgBkEIahBpIAZBEGokACALQcgAaiAJEDghBkEgEBoiCEGA4AA2AgAgCEEIaiAGEDgaIAsgCDYCcCAUQbICIAcgC0HgAGoiCEEBIAtBPGpBqNgAEAsiCiALQTBqQajYABALIhAgC0EkakGo2AAQCyIRIAtBGGpBqNgAEAsiEiALQQxqQajYABALIhNBABCRASATEAoaIBIQChogERAKGiAQEAoaIAoQChogCBAVGiAGEBUaIAcQChogDxAKGiAOEAoaIA0QChogAEE4ahAKGiALQbACaiQAIAkQFRogBBAKGiADEAoaIAIQChogARAKGiAMQdAAaiQAQQALwgMBCn8jAEFAaiIEJAAgBEE0aiABEAshByAEIAI2AgQgBEEIaiABEAshAiAEIAM2AhRBGBAaIgFBsOYANgIAIAEgBCgCBDYCBCABIAIoAgg2AhAgASACKQIANwIIIAJCADcCACACQQA2AgggASADNgIUIAQgATYCKCMAQbABayIBJAAgAUIANwKYASABQgA3AqABIAFCADcApQEgAUIANwKQASABQYjcADYCjAEgAUGMAWoiAyABQYABaiAHEBIiBRD0BiAFEAoaIAMQkANC6Ad/EPMGIAFBADYCeCABQgA3A3AgAyABQfAAaiIFEOILIAFBQGsgBEEYaiIJEDghCEEgEBoiBkHg3QA2AgAgBkEIaiAIEDgaIAEgBjYCaCAAQbECIAUgAUHYAGoiAEEBIAFBNGpBqNgAEAsiBiABQShqQajYABALIgogAUEcakGo2AAQCyILIAFBEGpBqNgAEAsiDCABQQRqQajYABALIg1BABCRASANEAoaIAwQChogCxAKGiAKEAoaIAYQChogABAVGiAIEBUaIAUQChogAxDRAhogAUGwAWokACAJEBUaIAIQChogBxAKGiAEQUBrJABBAAv/BAEKfyMAQdAAayIIJAAgCEHEAGogARALIQwgCEE4aiIJIAIgA6cQQyAIIAQ2AgwgCEEQaiABEAshCiAIIAU2AhxBGBAaIgFBjOYANgIAIAEgCCgCDDYCBCABIAooAgg2AhAgASAKKQIANwIIIApCADcCACAKQQA2AgggASAFNgIUIAggATYCMCAIQSBqIQ0jAEHAAWsiBiQAIAZCADcCqAEgBkIANwKwASAGQgA3ALUBIAZCADcCoAEgBkGI3AA2ApwBIAZBnAFqIgcgBkGQAWogDBASIgEQ9AYgARAKGiAJKAIEIAktAAsiASABwEEASBsEQCAGIAkoAgg2AogBIAYgCSkCADcDgAEgCUIANwIAIAlBADYCCCAGQYABaiILIQIgBygCBEUEQCAHQSgQGiIBNgIEIAEQ7QQLIAdBFGoiASACEBwgBygCGCEFIAcoAgQiBCAHKAIUIAEgBy0AHyICwEEASCIBGzYCICAEIAUgAiABGzYCHCALEAoaCyAGQZwBaiIOEJADQugHfxDzBiAGQQA2AnggBkIANwNwIA4gBkHwAGoiDxDiCyAGQUBrIA0QOCEHQSAQGiIBQbzdADYCACABQQhqIAcQOBogBiABNgJoIABBrwIgDyAGQdgAaiILQQEgBkE0akGo2AAQCyIFIAZBKGpBqNgAEAsiBCAGQRxqQajYABALIgIgBkEQakGo2AAQCyIBIAZBBGpBqNgAEAsiAEEAEJEBIAAQChogARAKGiACEAoaIAQQChogBRAKGiALEBUaIAcQFRogDxAKGiAOENECGiAGQcABaiQAIA0QFRogChAKGiAJEAoaIAwQChogCEHQAGokAEEAC/EDAQd/IwBBMGsiCSQAIAlBJGogARALIgshBSAJQRhqIAIQCyEGIAlBDGogAxALIQcjAEEQayIIJAAgCCAENgIMIwBBEGsiBCQAIwBBEGsiAyQAQTgQGiECIAMgAEH8A2oiCkEEaiIBNgIIIAMgAjYCBCACIAUoAgg2AhggAiAFKQIANwIQIAVCADcCACAFQQA2AgggAiAGKAIINgIkIAIgBikCADcCHCAGQgA3AgAgBkEANgIIIAIgBygCCDYCMCACIAcpAgA3AiggB0IANwIAIAdBADYCCCACIAgoAgw2AjQgA0EBOgAMIAMoAgRBEGohBQJAIAooAgQiAkUEQCABIQAMAQsDQCAFIAIiAEEQaiICEPgLBEAgACEBIAAoAgAiAg0BDAILIAIgBRD4C0UNASAAQQRqIQEgACgCBCICDQALCyADIAA2AgAgBCABKAIAIgIEf0EABSAKIAMoAgAgASADKAIEEJsEIAMoAgQhAiADQQA2AgRBAQs6AAwgBCACNgIIIAMoAgQhACADQQA2AgQgAARAIAMtAAwEQCAAQRBqEIYMCyAABEAgABAMCwsgA0EQaiQAIAggBCgCCDYCBCAIIAQtAAw6AAggBEEQaiQAIAhBEGokACAHEAoaIAYQChogCxAKGiAJQTBqJABBAAvjAQICfwF+IwBBIGsiAyQAIANBADYCHCADQgA3AhQgA0EUaiACELoBA38gAiAERgR/IAMgAygCFDYCCCADKQIYIQUgA0EANgIcIAMgBTcCDCADQgA3AhQjAEEQayIBJAAgASADQQhqIgIoAgA2AgQgASACKAIENgIIIAEgAigCCDYCDCACQQA2AgggAkIANwIAIABByANqIAFBBGoiBBD6BSAAQQE6AOADIAQQPyABQRBqJAAgAhA/IANBFGoQPyADQSBqJABBAAUgA0EUaiABIARBAnRqEMwCIARBAWohBAwBCwsLRwEBfyMAQSBrIgMkACADIAI2AhAgAyABNgIMIANB6OUANgIIIAMgA0EIaiIBNgIYIABB2A9qIAEQ3gEgARAVGiADQSBqJAALCwBB8L8CIAA2AgALswMBB38jAEEgayIDJAAgA0HE5QA2AgggAyADQQhqIgQ2AhgjAEEgayIFJAAgBUEIaiAEEPYEIQAjAEEQayICJAACQCAAQfDAAkYNAEGAwQIoAgAhASAAIAAoAhAiBkYEQCABQfDAAkYEQCAAIAIgACgCACgCDBEAACAAKAIQIgEgASgCACgCEBEBACAAQQA2AhBBgMECKAIAIgEgACABKAIAKAIMEQAAQYDBAigCACIBIAEoAgAoAhARAQBBgMECQQA2AgAgACAANgIQIAJB8MACIAIoAgAoAgwRAAAgAiACKAIAKAIQEQEAQYDBAkHwwAI2AgAMAgsgAEHwwAIgACgCACgCDBEAACAAKAIQIgEgASgCACgCEBEBACAAQYDBAigCADYCEEGAwQJB8MACNgIADAELIAFB8MACRgRAQfDAAiAAQfDAAigCACgCDBEAAEGAwQIoAgAiASABKAIAKAIQEQEAQYDBAiAAKAIQNgIAIAAgADYCEAwBCyAAIAE2AhBBgMECIAY2AgALIAJBEGokACAAEBUaIAVBIGokAEGIwQJBADYCACAEEBUaIANBIGokAAs/AQF/IAAoAgAiAiAAKAIERgRAQbECDwsgASACKAIIIAJBCGogAiwAE0EASBs2AgAgACAAKAIAKAIANgIAQQALWgEEfyMAQSBrIgIkAEEIEBoh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CCACIAQgByADIAggCSALEMALGiABIAEoAghBOGo2AgggACgCBCECIAAoAgAhCCABKAIEIQMDQCACIAhHBEAgA0E4ayIDIAJBOGsiAigCADYCACADQQRqIAJBBGoQIxogAyACKAIYNgIYIAMgAikDEDcDECACQgA3AxAgAkEANgIYIAMgAikDIDcDICADIAIoAig2AiggAyACKAIsNgIsIAMgAi0AMDoAMAwBCwsgASADNgIEIAAoAgAhAiAAIAM2AgAgASACNgIEIAAoAgQhAiAAIAEoAgg2AgQgASACNgIIIAAoAgghAiAAIAEoAgw2AgggASACNgIMIAEgASgCBDYCACABKAIEIQIDQCACIAEoAggiA0cEQCABIANBOGsiAzYCCCADEMELGgwBCwsgASgCACIBBEAgARAMCyAMQSBqJAALIAAoAgQaIAcQChogBBA/IApBQGskAAUgCkEYaiACIAFBAnRqEMwCIAFBAWohAQwBCwsLEAAgAARAIAAQzAsLIAAQDAsWACAAKAIEIAAtAAsiACAAwEEASButCxIAIAAoAgAgACAALAALQQBIGwsQACAABEAgABAKGgsgABAMC7oEAQV/IwBBIGsiByQAIAdBFGogARALIQYgB0EIaiACEAshAiMAQfADayIEJAAgAEHQBmoiASAGEIYBIABB1AZqRgRAIABBsARqIARB5ANqIAYQEiIAEJsDIAAQChoLIARB+AJqIAEgBhCYASIBEJ0BIQUgBEIANwPwAiAEQgA3A+gCIARB4AFqQZQvEJkDIQggBEFAa0IANwMAIARCADcDOCAEQfgBaiIAIAEgBEE4aiAIEMMBIARBuAJqIAAQwAEQ0gIhASAEQYACahCxASAIECoCQCABLQAoRQRAIARByAFqQZQvEJkDIQAgBEEBOgDAASAEQgA3AzAgBEEANgKoASAEQgA3AyggBSAEQShqIAAgBEGgAWogBEHoAmoQ+QEgBEGoAWoQPiAAECoMAQsgBCABEJMBIgApAwg3A+gCIAQgACkDEDcD8AILAkAgAwRAIAQgBCkD8AI3A4ACIAQgBCkD6AI3A/gBIARBiAFqIAIQZCEAIARBADoAgAEgBEEBOgB4IAQgBCkDgAI3AyAgBCADrTcDaCAEIAQpA/gBNwMYIAUgBEEYaiAAIARB4ABqQQAQ+QEgBEHoAGoQPgwB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BEEANgIsIARCADcCJCAEQSRqIAIQugEDfyACIANGBH9B+A8QGiEBIARBGGogABALIQggBEEIaiAEQSRqIg4Q+gIhByMAQZABayIDJAAgA0GEAWogCBASIQkCQCAHLQAMBEAgA0H4AGogBxDPCwwBCyADQQA2AoABIANCADcCeAsjAEEQayIKJAAgCkEEakGo2AAQCyELIwBBEGsiDCQAIAFCADcDACABQgA3AAUgAUEQakEAQSYQHhogAUHcAGoiAEIANwIAIAFBADYCVCABIAFBzABqIgI2AlAgASACNgJMIAFBCjYCSCABQriXgICA9wI3A0AgAUEBOgA8IAFBDzYCOCABQQA2AsgBIAFBADYCsAEgAUEANgKYASABQQA6AGQgASAANgJYIAFCADcDaCABQgA3A3AgAUIANwN4IAFCADcDgAEgAUEANgLwAiABQQA2AtgCIAFBADYCwAIgAUEANgKoAiABIAFBgAJqNgKQAiABQZjjADYCgAIgASABQegBajYC+AEgAUH04gA2AugBIAEgAUHQAWo2AuABIAFB0OIANgLQASABQgA3A4gDIAFBADYCkAMgAUEANgKoAyABQQA2AsADIAFBADYC0AMgAUIANwPYAyABQgA3A8gDIAFBADoA4AMgAUIANwD9AiABQgA3A/gCIAxBBGogCxASIg8hAiMAQZABayIFJAAgASIAIAIQiAECQCACKAIEIAItAAsiASABwEEASCIBGyIGRQ0AIAYgAigCACACIAEbakEBay0AAEEvRg0AIwBBEGsiECQAQY3PABDcASEBIAVBBGoiAiABIAAoAgQgAC0ACyIGIAbAQQBIGyIGahCJCSINKAIAIA0gDSwAC0EASBsgACgCACAAIAAsAAtBAEgbIAYQVyAGakGNzwAgARBXIAFqQQA6AAAgEEEQaiQAIAAgAhAcIAIQChoLQQEQFwRAIAVBCGoQEyERIAVBATYCBCARQeDQABAOIAAQERogBUEEahAWCyAFQZABaiQAIA8QChogDEEQaiQAIAsQChogAEEBOgCEAyAAQYgDaiAJEBwgAEHIA2ogA0H4AGoiARD6BSAKQRBqJAAgARA/IAkQChogAEGsAjYC6AMgAEHsA2ogCBASIQEgAEIANwOIBCAAIABBgARqNgL8AyAAQgA3A4AEIABCADcDkAQgAEIANwKcBCAAQYCAgPwDNgKYBCAAQgA3AqQEIABBgICA/AM2AqwEIABBsARqIANB7ABqIAEQEiICEIkMIQEgAhAKGiAAQgA3AqwPIABBADoAqA8gAEGgD2pBADoAACAAQQA6AMALIABBtA9qQgA3AgAgAEEAOgDwDyAAQegPakEANgIAIABB0A9qQQA2AgAgAEG8D2pBgICA/AM2AgAgAyAANgJUIANBvOMANgJQIAMgA0HQAGoiAjYCYCAAQZgDaiACEN4BIAIQFRogAyAANgI8IANB4OMANgI4IAMgA0E4aiICNgJIIABBsANqIAIQ3gEgAhAVGiADIAA2AiQgA0GE5AA2AiAgAyADQSBqIgI2AjAgAEGIAWogAhDeASACEBUaIAMgADYCDCADQajkADYCCCADIANBCGoiAjYCGCAAQZgCaiACEN4BIAIQFRogACAHLQAMIgI6AKgPIAIEQCADIAE2AgQgAEHAC2ogA0EEahDOCyAAQZgPakEAOgAAIAFBpAJqIQUgASgCoAIhAgNAIAIgBUYEQCABQQE6AKwCBSACQQE6AMgDIAIQtQEhAgwBCwsgAEGTDGpBgAI7AAAgAEHzC2pBADoAACAAQfALakGAAjsBACAAQdALakEAOgAACyADQZABaiQAIActAAwEQCAHED8LIAgQChogDhA/IARBMGokACAABSAEQSRqIAEgA0ECdGoQzAIgA0EBaiEDDAELCwvHAQEDfyMAQdAAayIFJAAgBSABKAIINgJIIAUgASkCADcDQCABQgA3AgAgAUEANgIIIAUgAigCADYCNCAFIAIoAgQ2AjggBSACKAIINgI8IAJBADYCCCACQgA3AgAgAygCACEBIAVBEGogBEEIahDQCyEHIAUoAkAgBUFAayIGIAUtAEsiA8BBAEgiBBsgBSgCRCADIAQbrSAFQTRqIgMgASAFQQhqIAAoAgggACgCBBFVACAHED4gAxBTIAYQChogBUHQAGokAAsVACABQaDiADYCACABIAApAgQ3AgQLCwAgAEGg4gAQiQELFQAgAUH84QA2AgAgASAAKQIENwIECwsAIABB/OEAEIkBC3sBAX8gACgCACEDIwBBEGsiACQAAkAgAy0AGEECRgRAIAIoAgAhAyACQQA2AgAgASADEM8HDAELIAAgAjYCDCAAIAM2AgggACgCDCEBIAAoAggiAhDCASAB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AC0AGBsLCgAgAC0AGEECRgsKACAALQAYQQFGCwgAIAAtABhFC1gBBX8jAEGgAWsiASQAQQEQFwRAIAFBGGoQEyEEIAFBATYCFCAEQeTUABAOIQUgAUEIaiIDIABBABDeBiAFIAMQERogAxAKGiABQRRqEBYLIAFBoAFqJAALEAAgAARAIAAQwgELIAAQDAsfAQF/QSAQGiIAQQA6ABggAEEAOgAQIABCADcDACAACycBAX9BsgIhAiAALQAQQQVGBH8gASAAEP4BKQMINwMAQQAFQbICCwtNAQF/QbICIQMgAC0AEEEERgR/IAEgABDUAyIAKAIAIAAgACwAC0EASBs2AgAgAiAAKAIEIAAtAAsiACAAwEEASButNwMAQQAFQbICCwsnAQF/QbICIQIgAC0AEEEDRgR/IAEgABDdCy0AADoAAEEABUGyAgsLJwEBf0GyAiECIAAtABBBAkYEfyABIAAQ3gsrAwA5AwBBAAVBsgILCyYBAX9BsgIhAiAALQAQQQFGBH8gASAAEFApAwA3AwBBAAVBsgILCyQBAX9BsgIhAiAALQAQBH9BsgIFIAEgABCyASkDADcDAEEACwsKACAALQAQQQVGCwoAIAAtABBBBkYLCgAgAC0AEEEERgsKACAALQAQQQNGCwoAIAAtABBBAkYLCgAgAC0AEEEBRgsIACAALQAQRQspAQF/IwBBEGsiAiQAIAIgATcDCCACIAE3AwAgACACEIsHIAJBEGokAAsLACAAQczhABCzCwsuAQJ/IwBBEGsiAyQAIANBBGoiBCABIAKnEEMgACAEEIwHIAQQChogA0EQaiQACyUBAX8jAEEQayICJAAgAiABOgAPIAAgAkEPahCNByACQRBqJAALJQEBfyMAQRBrIgIkACACIAE5AwggACACQQhqEI4HIAJBEGokAAslAQF/IwBBEGsiAiQAIAIgATcDCCAAIAJBCGoQjwcgAkEQaiQACyUBAX8jAEEQayICJAAgAiABNwMIIAAgAkEIahCQByACQRBqJAALCQAgAEEBENsJC2EBAn8jAEEQayICJAACQCAALQAYQQFGBEAgACABKAIANgIADAELIAIgATYCDCACIAA2AgggAigCDCEDIAIoAggiABA+IAMoAgAhASAAQQE6ABggACABNgIACyACQRBqJAALCQAgAEEAENsJC5MBAQd/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bmNfX0JhdGNoUmVxdWVzdABjcnN5bmMuQmF0Y2hSZXF1ZXN0AENyc3luY19fVXBkYXRlUmVxdWVzdABjcnN5bmMuVXBkYXRlUmVxdWVzdABDcnN5bmNfX0RhdGFiYXNlUmVxdWVzdABjcnN5bmMuRGF0YWJhc2VSZXF1ZXN0AEdhbGFjdHVzX19TaGFrZUhhbmRSZXF1ZXN0AGdhbGFjdHVzLlNoYWtlSGFuZFJlcXVlc3QAQ3JzeW5jX19RdWVyeURvY1JlcXVlc3QAY3JzeW5jLlF1ZXJ5RG9jUmVxdWVzdABDcnN5bmNfX1B1dERvY1JlcXVlc3QAY3JzeW5jLlB1dERvY1JlcXVlc3QAQ3JzeW5jX19HZXREb2NSZXF1ZXN0AGNyc3luYy5HZXREb2NSZXF1ZXN0AENyc3luY19fRGVsRG9jUmVxdWVzdABjcnN5bmMuRGVsRG9jUmVxdWVzdABCZXN0AENSU1lOQ19fVVBEQVRFX01FVEhPRF9fTGlzdEluc2VydABTdGFydAByZWNlaXZlZCBlbXB0eSBzbmFwc2hvdABmYWlsIHRvIHJlY3Ygc25hcHNob3QAc2VuZGluZyBzbmFwc2hvdABDb25uZWN0aW9uQ291bnQAU3RyZWFtQ291bnQAIGNyZWF0ZSBjaGVja3BvaW50AEVuZHBvaW50AENyc3luY19fVGlja2V0RXZlbnQAY3JzeW5jLlRpY2tldEV2ZW50AENyc3luY19fUGVybWlzc2lvbkV2ZW50AGNyc3luYy5QZXJtaXNzaW9uRXZlbnQAQ3JzeW5jX19LZWVwYWxpdmVFdmVudABjcnN5bmMuS2VlcGFsaXZlRXZlbnQAQ29udGVudABzaG91bGQgaGF2ZSBvbmx5IHVzZWQgaGFzaGVzIHRoYXQgYXJlIGluIHRoZSBkb2N1bWVudABDcnN5bmNfX0RvY3VtZW50AGNyc3luYy5Eb2N1bWVudABTdGF0ZW1lbnQASW5zdGFudABMaW1pdABDUlNZTkNfX1VQREFURV9NRVRIT0RfX0NvdW50ZXJTZXQAQ1JTWU5DX19VUERBVEVfTUVUSE9EX19TZXQAQ1JTWU5DX19WQUxVRV9UWVBFX19EaWN0ACBjb21wYWN0AE9jdABDUlNZTkNfX1ZBTFVFX1RZUEVfX0Zsb2F0AFNhdABnYWxhY3R1cwBEb2N1bWVudHMAQ2xpZW50cwBHcmFudHMAUmVzdWx0cwBUaWNrZXRzAFN1Y2Nlc3MAQ2x1c3RlcnMAc2hvdWxkIG1lZXQgZGVwcwBPcHRpb25zAFBlcm1zAEl0ZW1zAFBhcmFtcwBQYXRocwBkaWZmcwBVcGRhdGVzAEZvcmJpZHMATG9hZHMARG9jcwBUcwAlcwBBcHIAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX24xX3FscXVlcnlfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fcmFuZ2VfZG9jc19yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmZ2FsYWN0dXNfX2VzdGFibGlzaF9yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19lc3RhYmxpc2hfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fYmF0Y2hfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fdXBkYXRlX3JlcXVlc3RfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX2RhdGFiYXNlX3JlcXVlc3RfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fc2hha2VfaGFuZF9yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19xdWVyeV9kb2NfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fcHV0X2RvY19yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19nZXRfZG9jX3JlcXVlc3RfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX2RlbF9kb2NfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fdGlja2V0X2V2ZW50X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19wZXJtaXNzaW9uX2V2ZW50X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19rZWVwYWxpdmVfZXZlbnRfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fZXh0X2hlYWRlcl9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fbjFfcWxxdWVyeV9yZXNwb25zZV9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmdhbGFjdHVzX19yZW5ld19rZXlfcmVzcG9uc2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX3JhbmdlX2RvY3NfcmVzcG9uc2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fZXN0YWJsaXNoX3Jlc3BvbnNlX19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19lc3RhYmxpc2hfcmVzcG9uc2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fc2hha2VfaGFuZF9yZXNwb25zZV9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fcXVlcnlfZG9jX3Jlc3BvbnNlX19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19nZXRfZG9jX3Jlc3BvbnNlX19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19zeW5jX21lc3NhZ2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX3NoYWtlaGFuZF9fZGVzY3JpcHRvcgB2ZWN0b3IAQ2x1c3RlcgBwcm90b2J1Zl9jX21lc3NhZ2VfcGFja190b19idWZmZXIAcmVwZWF0ZWRfZmllbGRfcGFja190b19idWZmZXIAcmVxdWlyZWRfZmllbGRfcGFja190b19idWZmZXIAY3JzeW5jX19uMV9xbHF1ZXJ5X3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fcmFuZ2VfZG9jc19yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBnYWxhY3R1c19fZXN0YWJsaXNoX3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fZXN0YWJsaXNoX3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fYmF0Y2hfcmVxdWVzdF9fcGFja190b19idWZmZXIAY3JzeW5jX191cGRhdGVfcmVxdWVzdF9fcGFja190b19idWZmZXIAY3JzeW5jX19kYXRhYmFzZV9yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBnYWxhY3R1c19fc2hha2VfaGFuZF9yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3F1ZXJ5X2RvY19yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3B1dF9kb2NfcmVxdWVzdF9fcGFja190b19idWZmZXIAY3JzeW5jX19nZXRfZG9jX3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fZGVsX2RvY19yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3RpY2tldF9ldmVudF9fcGFja190b19idWZmZXIAY3JzeW5jX19rZWVwYWxpdmVfZXZlbnRfX3BhY2tfdG9fYnVmZmVyAGdhbGFjdHVzX19leHRfaGVhZGVyX19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3N5bmNfbWVzc2FnZV9fcGFja190b19idWZmZXIAY3JzeW5jX19zaGFrZWhhbmRfX3BhY2tfdG9fYnVmZmVyAGNvbHVtbnMgb3V0IG9mIG9yZGVyAF9mb2xkZXIATGVhZGVyAEdhbGFjdHVzX19FeHRIZWFkZXIAZ2FsYWN0dXMuRXh0SGVhZGVyAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAHBhcnNlX21lbWJlcgBwYXJzZV9wYWNrZWRfcmVwZWF0ZWRfbWVtYmVyAERlY2VtYmVyAExvY2FsQWRkcgBSZW1vdGVBZGRyAGlvc19iYXNlOjpjbGVhcgBNYXIARGlmZlNlcQBtZWRpYV9zZXJ2ZXJfbGlicmFyeS9jcmR0L21lcmtsZV9zZWFyY2hfdHJlZS5jcHAAU2VwAENyc3luY19fVXBkYXRlT3AAY3JzeW5jLlVwZGF0ZU9wACVJOiVNOiVTICVwAEdhbGFjdHVzX19QZWVySW5mbwBnYWxhY3R1cy5QZWVySW5mbwBTdW4ASnVuAFJlYXNvbgBQZXJtSnNvbgBCaURpcmVjdGlvbgBUcnkgdG8gZXN0YWJsaXNoIGNvbm5lY3Rpb24AIFRyeSB0byBlc3RhYmxpc2ggbmV3c3luYyBjb25uZWN0aW9uAENvbGxlY3Rpb24AQ3JzeW5jX19PcGVyYXRpb24AY3JzeW5jLk9wZXJhdGlvbgBDcnN5bmNfX1Blcm1pc3Npb24AY3JzeW5jLlBlcm1pc3Npb24AVmVyc2lvbgBNb24AdG1wID09IHBheWxvYWRfbGVuAG5hbgBKYW4AUXVvcnVtAENyc3luY19fS2VlcGFsaXZlSXRlbQBjcnN5bmMuS2VlcGFsaXZlSXRlbQBDcnN5bmNfX0l0ZW0AY3JzeW5jLkl0ZW0ASW5zZXJ0RWxlbQBKdWwAVHRsAEdhbGFjdHVzX19QZWVyUHJvdG9jb2wAZ2FsYWN0dXMuUGVlclByb3RvY29sAG51bGwAQ29sbABBcHJpbABFeGlzdHNGYWlsAF9pbnRlcnZhbABfZXBoZW1lcmFsAExvY2FsAHByb3RvYnVmX2NfbWVzc2FnZV91bnBhY2sARnJpAGdldF9wYWNrZWRfcGF5bG9hZF9sZW5ndGgAUGF0aABvcCBmaWVsZCBjb3VudCBkb2VzIG5vdCBtYXRjaABtYWdpYyBudW1iZXIgZG9lcyBub3QgbWF0Y2gAY2hlY2tzdW0gZG9lcyBub3QgbWF0Y2gATWFyY2gALi9tZWRpYV9zZXJ2ZXJfbGlicmFyeS9jcmR0L21lcmtsZV9zZWFyY2hfdHJlZS5oAEF1ZwBnZW4gcmVzZXQgbXNnACByZWN2IGVyciBtc2cAZ2VuIGVyciBtc2cAYmFzaWNfc3RyaW5nAENSU1lOQ19fVkFMVUVfVFlQRV9fU3RyaW5nAEZsYWcAaW5mAEdhbGFjdHVzX19JbnRlcmVzdERpZmYAZ2FsYWN0dXMuSW50ZXJlc3REaWZmACUuMExmACVMZgBwcm90b2J1Zl9jX21lc3NhZ2VfZ2V0X3BhY2tlZF9zaXplAHJlcXVpcmVkX2ZpZWxkX2dldF9wYWNrZWRfc2l6ZQBjcnN5bmNfX24xX3FscXVlcnlfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fcmFuZ2VfZG9jc19yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAZ2FsYWN0dXNfX2VzdGFibGlzaF9yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19lc3RhYmxpc2hfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fYmF0Y2hfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fdXBkYXRlX3JlcXVlc3RfX2dldF9wYWNrZWRfc2l6ZQBjcnN5bmNfX2RhdGFiYXNlX3JlcXVlc3RfX2dldF9wYWNrZWRfc2l6ZQBnYWxhY3R1c19fc2hha2VfaGFuZF9yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19xdWVyeV9kb2NfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fcHV0X2RvY19yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19nZXRfZG9jX3JlcXVlc3RfX2dldF9wYWNrZWRfc2l6ZQBjcnN5bmNfX2RlbF9kb2NfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fdGlja2V0X2V2ZW50X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19rZWVwYWxpdmVfZXZlbnRfX2dldF9wYWNrZWRfc2l6ZQBnYWxhY3R1c19fZXh0X2hlYWRlcl9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fc3luY19tZXNzYWdlX19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19zaGFrZWhhbmRfX2dldF9wYWNrZWRfc2l6ZQB0cnVlAFZhbHVlAFR1ZQBSZW1vdGUAQ1JTWU5DX19PUEVSQVRJT05fX1dyaXRlAENSU1lOQ19fVVBEQVRFX01FVEhPRF9fRGVsZXRlACwgcmVzZXQgY29ubmVjdGlvbiBzdGF0ZQBDcmVhdGUAQ1JTWU5DX19VUERBVEVfTUVUSE9EX19VcGRhdGUAVHJhdmVyc2UAQ3JzeW5jX19OMVFMUXVlcnlSZXNwb25zZQBjcnN5bmMuTjFRTFF1ZXJ5UmVzcG9uc2UAR2FsYWN0dXNfX1JlbmV3S2V5UmVzcG9uc2UAZ2FsYWN0dXMuUmVuZXdLZXlSZXNwb25zZQBDcnN5bmNfX1JhbmdlRG9jc1Jlc3BvbnNlAGNyc3luYy5SYW5nZURvY3NSZXNwb25zZQBHYWxhY3R1c19fRXN0YWJsaXNoUmVzcG9uc2UAQ3JzeW5jX19Fc3RhYmxpc2hSZXNwb25zZQBnYWxhY3R1cy5Fc3RhYmxpc2hSZXNwb25zZQBjcnN5bmMuRXN0YWJsaXNoUmVzcG9uc2UAR2FsYWN0dXNfX1NoYWtlSGFuZFJlc3BvbnNlAGdhbGFjdHVzLlNoYWtlSGFuZFJlc3BvbnNlAENyc3luY19fUXVlcnlEb2NSZXNwb25zZQBjcnN5bmMuUXVlcnlEb2NSZXNwb25zZQBDcnN5bmNfX0dldERvY1Jlc3BvbnNlAGNyc3luYy5HZXREb2NSZXNwb25zZQBmYWxzZQBEYXRhYmFzZQBjaGFuZ2UgaXMgZWFybGllciB0aGFuIHBlZXIgYmFzZQBTY29yZQBNb3JlAENsaWVudFR5cGUAQ3JzeW5jX19WYWx1ZVR5cGUAY3JzeW5jLlZhbHVlVHlwZQBKdW5lAE5hbWUAQXZhaWxhYmxlAElnbm9yZVByaXZpbGVnZQBDcnN5bmNfX1ByaXZpbGVnZQBjcnN5bmMuUHJpdmlsZWdlAENyc3luY19fU3luY01lc3NhZ2UAY3JzeW5jLlN5bmNNZXNzYWdlAHJlY3YgZXJyLCB0byBwcm9iZSBtb2RlAEdhbGFjdHVzX19QZWVyTW9kZQBnYWxhY3R1cy5QZWVyTW9kZQBBc3luY01vZGUAQWRhcHRvciBzdWdnZXN0IGRpc2Nvbm5lY3QgZm9yIG5hbWVzcGFjZQBOYW1lc3BhY2UAQ3JzeW5jX19VcGRhdGVNZXRob2QAY3JzeW5jLlVwZGF0ZU1ldGhvZABjaGVja3BvaW50IG5vdCBmb3VuZABwZWVyIG5lZWQgbm90IGZvdW5kAFVwdGltZUluU2Vjb25kAENyc3luY19fU2hha2VoYW5kAGNyc3luYy5TaGFrZWhhbmQARW5kAFJlbW92ZWQAIGNvbm5lY3Rpb24gdGltZW91dGVkAElnbm9yZUV4cGlyZWQAZGVjb2RlIG9wcyBmYWlsZWQAcGFyc2UgZm9sZGVyIG1zZyBmYWlsZWQAY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSkgZmFpbGVkAGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDKSBmYWlsZWQAcHJvdG9idWZfY19tZXNzYWdlX2ZyZWVfdW5wYWNrZWQAY3JzeW5jX19kYXRhYmFzZV9yZXF1ZXN0X19mcmVlX3VucGFja2VkAGNyc3luY19fcGVybWlzc2lvbl9ldmVudF9fZnJlZV91bnBhY2tlZABjcnN5bmNfX24xX3FscXVlcnlfcmVzcG9uc2VfX2ZyZWVfdW5wYWNrZWQAZ2FsYWN0dXNfX3JlbmV3X2tleV9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX3JhbmdlX2RvY3NfcmVzcG9uc2VfX2ZyZWVfdW5wYWNrZWQAZ2FsYWN0dXNfX2VzdGFibGlzaF9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX2VzdGFibGlzaF9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABnYWxhY3R1c19fc2hha2VfaGFuZF9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX3F1ZXJ5X2RvY19yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX2dldF9kb2NfcmVzcG9uc2VfX2ZyZWVfdW5wYWNrZWQAY3JzeW5jX19zeW5jX21lc3NhZ2VfX2ZyZWVfdW5wYWNrZWQAc3VjY2Vzc2Z1bGx5IHN5bmNlZABXZWQAcGFja19idWZmZXJfcGFja2VkX3BheWxvYWQAR2FsYWN0dXNfX1F1b3J1bUxvYWQAZ2FsYWN0dXMuUXVvcnVtTG9hZABUb3RhbExvYWQAQ1JTWU5DX19PUEVSQVRJT05fX1JlYWQATGVhc2VJZABBdXRvQ3JlYXRlRG9jAGNyc3luYwBzdGFydCBhIHJvdW5kIG9mIHN5bmMAc3RhcnQgYSByb3VuZCBvZiB0b21ic3RvbmUgc3luYwBDUlNZTkNfX1VQREFURV9NRVRIT0RfX0NvdW50ZXJJbmMARGVjAG1lZGlhX3NlcnZlcl9saWJyYXJ5L3RoaXJkX3BhcnR5L2V0Y2QtYy9wcm90b2J1Zi1jLmMAbWVkaWFfc2VydmVyX2xpYnJhcnkvdGhpcmRfcGFydHkvZXRjZC1jL3Byb3h5LnBiLWMuYwBtZWRpYV9zZXJ2ZXJfbGlicmFyeS90aGlyZF9wYXJ0eS9ldGNkLWMvY3JzeW5jLnBiLWMuYwBGZWIAXQByZW1vdmUgaW50ZXJlc3Q6IFsAYWRkIGludGVyZXN0OiBbAEFaAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9QUk9YWQAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWABHQUxBQ1RVU19fUEVFUl9NT0RFX19QRUVSX01PREVfQ0xVU1RFUl9DTElFTlQAR0FMQUNUVVNfX1BFRVJfTU9ERV9fUEVFUl9NT0RFX0NMSUVOVABTcGxpdE9mZkxUAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9TSURFQ0FSX0RJUkVDVABHQUxBQ1RVU19fUEVFUl9NT0RFX19QRUVSX01PREVfRU1TACVIOiVNOiVTAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9NSUdSQVRPUgBHQUxBQ1RVU19fUEVFUl9NT0RFX19QRUVSX01PREVfQ09PUkRJTkFUT1IAR0FMQUNUVVNfX1BFRVJfTU9ERV9fUEVFUl9NT0RFX1NZTkNfQ0VOVEVSAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9TSURFQ0FSAEdBTEFDVFVTX19QRUVSX1BST1RPQ09MX19QUk9UT0NPTF9UQ1AATkFOAFBNAEFNAFRUTABydi0+ZGVzY3JpcHRvciAhPSBOVUxMAExDX0FMTABMQU5HAElORgBJRABHQUxBQ1RVU19fUEVFUl9QUk9UT0NPTF9fUFJPVE9DT0xfR1JQQwAoKG1lc3NhZ2UpLT5kZXNjcmlwdG9yKS0+bWFnaWMgPT0gUFJPVE9CVUZfQ19fTUVTU0FHRV9ERVNDUklQVE9SX01BR0lDAChkZXNjKS0+bWFnaWMgPT0gUFJPVE9CVUZfQ19fTUVTU0FHRV9ERVNDUklQVE9SX01BR0lDAElEQwAsIGVycjoAIHJlY3YgdXJpOgAsIHNlcWlkOgAwMTIzNDU2Nzg5AEMuVVRGLTgAbm9kZS5jaGlsZHJlbl8uc2l6ZSgpID09IG5vZGUuZWxlbWVudHNfLnNpemUoKSArIDEAY2hpbGRyZW5fLnNpemUoKSA9PSBlbGVtZW50c18uc2l6ZSgpICsgMQAwAC8AIGFscmVhZHkgdGltZW91dC4ALCBpZ25vcmUuAC4qKioqKi4ALAAqAChudWxsKQAhZWxlbWVudHNfLmVtcHR5KCkAZ3RfZWxlbXMuc2l6ZSgpICsgMSA9PSBndF9jaGlsZHJlbi5zaXplKCkALCAoACAgICAiACBjb2xsIG1zZyB0eXBlIGRvZXMgbm90IG1hdGNoIQBzeW5jIG1zZyB0eXBlIGRvZXMgbm90IG1hdGNoIQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBTZXQgbmFtZXNwYWNlIGFzIAAgcHVyZ2VkIHRvIAAgd2l0aCBlcnJubyAAIEZhaWxlZCB0byBlc3RhYmxpc2ggY29ubiAAUmVjZWl2ZSB3cm9uZyB0ZXJtIABVbmtub3duIHVyaSAAIG9uIHVyaSAAY29tcHJlc3NpbmcgACBjb21tYW5kIABSZWNlaXZlIHVua293biBzZXFpZCAAXSAAZG9jIG5vdCBleGlzdDogAHJlYWRhYmxlIGV4aXN0OiAAIGNoZWNrcG9pbnQ6IAAgcmVjdiByZXNldDogAGRlcCBub3QgbWV0OiAAIHVwZGF0ZSBmb2xkZXI6IAAsIGxvY2FsX2FkZHI6IAAgZXN0YWJsaXNoIGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5LCByZW1vdGVfYWRkcjogAGludmFsaWQgb3AgYWN0aW9uOiAALCBnZW5lcmF0aW9uOiAALCBjdXJyZW50IHZlcnNpb246IAAsIHZlcnNpb246IABzbmFwc2hvdHRpbmcsIG51bTogACwgY29sbDogAGNvbXBhY3QgY2xvY2s6IAAgc2VudCB1cmk6IAAgcmVjdiBtc2c6IAAgaWdub3JlIG1zZzogAG5lZWRlZCBoYXNoIG1pc3Npbmc6IAByZWNlaXZpbmcgc25hcHNob3QsIHNpemU6IABuZXN0ZWQgdmFsdWU6IABwdXQgb3V0ZGF0ZWQgdmFsdWU6IAByZXNldCBzdGF0ZTogAHJlbW92ZSByZWFkYWJsZTogAGFkZCBSZWFkYWJsZTogAHJlbW92ZSBjYWNoZTogAGJhc2UgaXMgbm90IGJlZm9yZSBsYXN0IHN5bmMsIHRvIHByb2JlIG1vZGU6IABjb2xsIG5vdCBmb3VuZDogAGRiIG5vdCBmb3VuZDogACByZXF1ZXN0IGZhaWxlZCwgc2VxX2lkOiAAIFJlcXVlc3QgZmFpbGVkLCBvcF9pZDogACBpbml0aWFsaXplZDogACByZWN2IG1zZyBmYWlsZWQ6IAAgcmVjdiBmb2xkZXIgbXNnIGZhaWxlZDogAHBhcnNlIGRvYyBtc2cgZmFpbGVkOiAAIHByb2Nlc3MgZm9sZGVyIHN5bmMgZmFpbGVkOiAAIHByb2Nlc3MgZG9jIHN5bmMgZmFpbGVkOiAAY2hhbmdlIGNhbm5vdCBiZSBtZXJnZWQ6IABpZ25vcmUgbmVlZDogACBkZWxldGUgZGI6IAAgdnMuIABkcm9wcGluZyBvdXRkYXRlZCBtc2csIAB7CgBBwNgAC0UuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AQZDZAAsNQAAAAEEAAABCAAAAQwBBsNkAC1VEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAEGQ2gALRFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAGMAAABkAAAAZQAAAAAAAABmAAAAZwAAAGgAAACFb0qDAEGA2wALXWkAAABqAAAAawAAAGwAAABtAAAAAAAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAAB7AAAAfAAAAAAAAAB9AAAAfgBB+NsACwWAAAAAgQBBiNwACwmCAAAAgwAAAIQAQZzcAAsJhQAAAIYAAACHAEGw3AALCYgAAACJAAAAigBBxNwACwmIAAAAiwAAAIwAQdjcAAsJiAAAAI0AAACOAEHs3AALCY8AAACQAAAAkQBBgN0ACwmSAAAAkwAAAJQAQZTdAAsJlQAAAJYAAACXAEGo3QALCZgAAACZAAAAmgBBvN0ACxmbAAAAnAAAAJ0AAACeAAAAnwAAAKAAAAChAEHg3QALGaIAAACjAAAApAAAAKUAAACmAAAApwAAAKgAQYTeAAsZqQAAAKoAAACrAAAArAAAAK0AAACuAAAArwBBqN4ACxmwAAAAsQAAALIAAACzAAAAtAAAALUAAAC2AEHM3gALGbcAAAC4AAAAuQAAALoAAAC7AAAAvAAAAL0AQfDeAAsZvgAAAL8AAADAAAAAwQAAAMIAAADDAAAAxABBlN8ACxnFAAAAxgAAAMcAAADIAAAAyQAAAMoAAADLAEG43wALGcwAAADNAAAAzgAAAM8AAADQAAAA0QAAANIAQdzfAAsZ0wAAANQAAADVAAAA1gAAANcAAADYAAAA2QBBgOAACxnaAAAA2wAAANwAAADdAAAA3gAAAN8AAADgAEGk4AALCYgAAADhAAAA4gBBuOAACwnjAAAA5AAAAOUAQczgAAsJ5gAAAOcAAADoAEHg4AALCekAAADqAAAA6wBB9OAACwnsAAAA7QAAAO4AQYzhAAsZ7wAAAPAAAADxAAAA8gAAAPMAAAD0AAAA9QBBsOEACxnvAAAA9gAAAPcAAAD4AAAA+QAAAPoAAAD7AEHg4QALEv4AAAD/AAAAAAEAAAEBAAACAQBB/OEACxoDAQAABAEAAAUBAAAGAQAABwEAAAgBAAAJAQBBoOIACyYKAQAACwEAAAwBAAANAQAADgEAAA8BAAAQAQAAAAAAABEBAAASAQBB0OIACxoTAQAAFAEAABUBAAAWAQAAFwEAABgBAAAZAQBB9OIACxoaAQAAGwEAABwBAAAdAQAAHgEAAB8BAAAgAQBBmOMACxohAQAAIgEAACMBAAAkAQAAJQEAACYBAAAnAQBBvOMACxooAQAAKQEAACoBAAArAQAALAEAAC0BAAAuAQBB4OMACxovAQAAMAEAADEBAAAyAQAAMwEAADQBAAA1AQBBhOQACxo2AQAANwEAADgBAAA5AQAAOgEAADsBAAA8AQBBqOQACyYvAQAAPQEAAD4BAAA/AQAAQAEAAEEBAABCAQAAAAAAAEMBAABEAQBB2OQACxpFAQAARgEAAEcBAABIAQAASQEAAEoBAABLAQBB/OQACxpMAQAATQEAAE4BAABPAQAAUAEAAFEBAABSAQBBoOUACxpTAQAAVAEAAFUBAABWAQAAVwEAAFgBAABZAQBBxOUACxpaAQAAWwEAAFwBAABdAQAAXgEAAF8BAABgAQBB6OUACxphAQAAYgEAAGMBAABkAQAAZQEAAGYBAABnAQBBjOYACxpoAQAAaQEAAGoBAABrAQAAbAEAAG0BAABuAQBBsOYACxpvAQAAcAEAAHEBAAByAQAAcwEAAHQBAAB1AQBB1OYACxp2AQAAdwEAAHgBAAB5AQAAegEAAHsBAAB8AQBB+OYACxoDAQAAfQEAAH4BAAB/AQAAgAEAAIEBAACCAQBBnOcACxoDAQAAgwEAAIQBAACFAQAAhgEAAIcBAACIAQBBwOcACxoDAQAAiQEAAIoBAACLAQAAjAEAAI0BAACOAQBB5OcACxoDAQAAjwEAAJABAACRAQAAkgEAAJMBAACUAQBBiOgACxoDAQAAlQEAAJYBAACXAQAAmAEAAJkBAACaAQBBrOgACxoDAQAAmwEAAJwBAACdAQAAngEAAJ8BAACgAQBB0OgACxqhAQAAogEAAKMBAACkAQAApQEAAKYBAACnAQBB9OgACxqoAQAAqQEAAKoBAACrAQAArAEAAK0BAACuAQBBmOkACxqvAQAAsAEAALEBAACyAQAAswEAALQBAAC1AQBBvOkACx5FAQAAtgEAALcBAAC4AQAAuQEAALoBAAC7AQAAADUAQeTpAAsCHGwAQfDpAAs+HGwAABxsAAAcbAAAHGwAAPnuqij2FAAA/xQAAOIUAABLCgAAKAAAAAYAAADwOAAAEDoAAAEAAAAwOgAAvAEAQcDqAAsCcDUAQfDqAAsu+e6qKP0VAAAGFgAA6hUAAEsKAAAwAAAABgAAAEA6AABgOwAAAQAAAIA7AAC9AQBBsOsACwLYNQBBvOsACwIcbABByOsACwIcbABB2OsACy757qoo4iIAAOsiAADNIgAASwoAACgAAAAFAAAAkDsAAIA8AAABAAAAoDwAAL4BAEGU7AALAjw2AEGg7AALBhxsAAAcbABBvOwACy757qoo6RgAAPIYAADSGAAASwoAACgAAAAGAAAAsDwAANA9AAABAAAA8D0AAL8BAEH47AALAtg2AEGQ7QALAhxsAEGk7QALBhxsAAAcbABBzO0ACwIcbABB2O0ACy757qookgYAALMGAABeBgAASwoAAGAAAAAQAAAAAD4AAABBAAABAAAAQEEAAMABAEGY7gALAmg3AEHM7gALAhxsAEHo7gALLvnuqihrHQAAjR0AADUdAABLCgAAUAAAAAsAAABQQQAAYEMAAAEAAACQQwAAwQEAQaTvAAsCsDcAQbDvAAsV+e6qKOgcAADxHAAAzRwAAEsKAAAMAEHc7wALAsIBAEHw7wALAiA4AEGg8AALLvnuqihiBwAAawcAAEcHAABLCgAAMAAAAAQAAACgQwAAYEQAAAEAAABwRAAAwwEAQeDwAAsCsDgAQbDxAAsu+e6qKLsdAADEHQAAnx0AAEsKAABQAAAACAAAAIBEAAAARgAAAQAAACBGAADEAQBB8PEACx74BAAAAQAAAAMAAAAOAAAAAAAAAAwAAAAAAAAAHGwAQaDyAAsVUwkAAAIAAAADAAAADwAAAAAAAAAQAEHQ8gALHhUFAAADAAAAAwAAAA4AAAAAAAAAGAAAAAAAAAAcbABBgPMACx4LBQAABAAAAAMAAAAOAAAAAAAAABwAAAAAAAAAHGwAQbDzAAserhEAAAUAAAADAAAADgAAAAAAAAAgAAAAAAAAABxsAEHh8wALHQUAAAYAAAADAAAADgAAAAAAAAAkAAAAAAAAABxsAEGQ9AALFQQAAAABAAAAAAAAAAUAAAACAAAAAwBBsPQACwEBAEG89AALGQYAAACnHgAAAQAAAAMAAAAMAAAAAAAAAAwAQfD0AAsJqAgAAAIAAAADAEGE9QALARAAQaD1AAsJ1x8AAAMAAAADAEG09QALARQAQdD1AAsJmAgAAAQAAAADAEHk9QALARgAQYD2AAsV+yIAAAUAAAADAAAAAwAAAAAAAAAgAEGw9gALFdsUAAAGAAAAAwAAAAwAAAAAAAAAKABB5PYACxEDAAAABQAAAAQAAAABAAAAAgBBgPcACwEBAEGM9wALIgYAAADHCAAAAQAAAAMAAAAOAAAAAAAAAAwAAAAAAAAAHGwAQcD3AAsV+yIAAAIAAAADAAAAAwAAAAAAAAAQAEHw9wALHv0mAAADAAAAAwAAAA4AAAAAAAAAGAAAAAAAAAAcbABBoPgACx5aJAAABAAAAAIAAAAOAAAAHAAAACAAAAAAAAAAHGwAQdD4AAsJZB4AAAUAAAADAEHk+AALASQAQYD5AAsRAwAAAAAAAAACAAAAAQAAAAQAQaD5AAsBAQBBrPkACyIFAAAAfhcAAAEAAAADAAAADgAAAAAAAAAMAAAAAAAAABxsAEHg+QALHhkFAAACAAAAAwAAAA4AAAAAAAAAEAAAAAAAAAAcbABBkPoACxX6GAAAAwAAAAMAAAAPAAAAAAAAABQAQcD6AAsV2xUAAAQAAAADAAAADAAAAAAAAAAcAEHw+gALFdoEAAAFAAAAAwAAAAwAAAAAAAAAIABBoPsACxUNIAAABgAAAAMAAAAMAAAAAAAAACQAQdT7AAsRAgAAAAQAAAABAAAAAwAAAAUAQfD7AAsBAQBB/PsACw0GAAAAxxYAAAEAAAADAEGU/AALAQwAQbD8AAsaTR8AAAIAAAADAAAADQAAAAAAAAAQAAAAAEcAQeD8AAsacBcAAAMAAAADAAAADQAAAAAAAAAUAAAAgEcAQZD9AAseex8AAAQAAAADAAAADgAAAAAAAAAYAAAAAAAAABxsAEHA/QALFUgfAAAFAAAAAwAAAAwAAAAAAAAAHABB8P0ACxXhCgAABgAAAAMAAAADAAAAAAAAACAAQaD+AAsJ1AUAAAcAAAADAEG0/gALASgAQdD+AAseGQUAAAgAAAADAAAADgAAAAAAAAAsAAAAAAAAABxsAEGA/wALHv0mAAAJAAAAAwAAAA4AAAAAAAAAMAAAAAAAAAAcbABBsP8ACxUsCAAACgAAAAMAAAAMAAAAAAAAADQAQeD/AAsawAoAAAsAAAACAAAAEAAAADgAAAA8AAAAPDYAQZCAAQsVGCMAAAwAAAADAAAAAwAAAAAAAABAAEHAgAELFUgXAAANAAAAAwAAAAMAAAAAAAAASABB8IABCxUnFgAADgAAAAMAAAAMAAAAAAAAAFAAQaCBAQseVxUAAA8AAAADAAAADgAAAAAAAABUAAAAAAAAABxsAEHQgQELFckYAAAQAAAAAwAAAAgAAAAAAAAAWABBgIIBC0EEAAAACQAAAA0AAAAPAAAACAAAAAcAAAALAAAADgAAAAEAAAADAAAAAgAAAAYAAAAFAAAADAAAAAAAAAAKAAAAAQBBzIIBCw0QAAAAxxYAAAEAAAADAEHkggELAQwAQYCDAQsaTR8AAAIAAAADAAAADQAAAAAAAAAQAAAAAEcAQbCDAQsaChYAAAMAAAADAAAAEAAAAAAAAAAUAAAAcDUAQeCDAQse7hYAAAQAAAACAAAADgAAABgAAAAcAAAAAAAAABxsAEGQhAELFeEKAAAFAAAAAwAAAAMAAAAAAAAAIABBwIQBCxrWCgAABgAAAAIAAAAQAAAAKAAAACwAAADYNQBB8IQBCwmKBQAABwAAAAMAQYSFAQsBMABBoIUBCx5hFQAACAAAAAMAAAAOAAAAAAAAADQAAAAAAAAAHGwAQdCFAQsehQoAAAkAAAACAAAADgAAADgAAAA8AAAAAAAAABxsAEGAhgELGsAKAAAKAAAAAgAAABAAAABAAAAARAAAADw2AEGwhgELFRgjAAALAAAAAwAAAAMAAAAAAAAASABB4IYBCzEIAAAAAgAAAAoAAAAFAAAAAQAAAAYAAAADAAAABwAAAAQAAAAAAAAACQAAAAAAAAABAEGchwELGQsAAADhCgAAAQAAAAMAAAADAAAAAAAAABAAQdCHAQsawAoAAAIAAAACAAAAEAAAABgAAAAcAAAAPDYAQYCIAQsVgBUAAAMAAAADAAAAAwAAAAAAAAAgAEGwiAELFbwJAAAEAAAAAwAAAAwAAAAAAAAAKABB4IgBCxECAAAAAwAAAAAAAAABAAAAAQBB/IgBCxkEAAAA4QoAAAEAAAADAAAAAwAAAAAAAAAQAEGwiQELGgoWAAACAAAAAwAAABAAAAAAAAAAGAAAAHA1AEHgiQELHl4KAAADAAAAAgAAAA4AAAAcAAAAIAAAAAAAAAAcbABBkIoBCxX2IgAABAAAAAMAAAADAAAAAAAAACgAQcCKAQsa1goAAAUAAAACAAAAEAAAADAAAAA0AAAA2DUAQfCKAQsehQoAAAYAAAACAAAADgAAADgAAAA8AAAAAAAAABxsAEGgiwELGsAKAAAHAAAAAgAAABAAAABAAAAARAAAADw2AEHQiwELFYAVAAAIAAAAAwAAAAMAAAAAAAAASABBgIwBCyECAAAABQAAAAcAAAABAAAABAAAAAMAAAAAAAAABgAAAAEAQayMAQu5AQgAAADgJAAAyyQAAAAAAAByJAAAXSQAAAEAAADpJQAA1CUAAAIAAAARJQAA/CQAAAMAAACTJQAAfiUAAAQAAACyJAAAnSQAAAUAAAA/JQAAKiUAAAYAAAC+JQAAqSUAAAcAAABrJQAAViUAAAgAAAAAAAAA4CQAAAAAAACyJAAABQAAAJMlAAAEAAAAPyUAAAYAAABrJQAACAAAAHIkAAABAAAA6SUAAAIAAAARJQAAAwAAAL4lAAAHAEH8jQELLgkAAACvFUMRNh8AAD8fAAAjHwAASwoAAAkAAAAwRgAACQAAAKBGAAABAAAA8EYAQcCOAQsVFCYAAPslAAAAAAAAciYAAFkmAAABAEHgjgELCnImAAABAAAAFCYAQfyOAQsuAgAAAK8VQxFjFwAAbBcAAEwXAABLCgAAAgAAAEBHAAACAAAAYEcAAAEAAABwRwBBwI8BCwL4RwBBzI8BCwIcbABB6I8BCwIcbABB+I8BCy757qooLRcAADQXAAAgFwAALiMAADgAAAAIAAAAwFEAAEBTAAABAAAAYFMAAMUBAEG0kAELAkhIAEHIkAELLvnuqij4HgAA/x4AAOQeAAAuIwAAFAAAAAEAAABwUwAAoFMAAAEAAACwUwAAxgEAQYiRAQsCyEgAQaiRAQsGHGwAABxsAEHIkQELLvnuqiisBgAAswYAAHkGAAAuIwAAQAAAAAkAAADAUwAAcFUAAAEAAACgVQAAxwEAQYiSAQsCQEkAQaiSAQsCHGwAQbSSAQsCHGwAQcCSAQsu+e6qKIYdAACNHQAAUR0AAC4jAAA4AAAABwAAALBVAAAAVwAAAQAAACBXAADIAQBBgJMBCwKgSQBBoJMBCy757qoo5AgAAOsIAADQCAAALiMAACAAAAACAAAAMFcAAJBXAAABAAAAoFcAAMkBAEHckwELAvhJAEH4kwELLvnuqigPCQAAFgkAAPcIAAAuIwAAHAAAAAIAAACwVwAAEFgAAAEAAAAgWAAAygEAQbSUAQsCVEoAQcCUAQsCHGwAQdSUAQsu+e6qKLUWAAC8FgAAohYAAC4jAAAgAAAAAwAAADBYAADAWAAAAQAAANBYAADLAQBBkJUBCwKoSgBBoJUBCzYcbAAAHGwAAPnuqijTHgAA2h4AAMEeAAAuIwAAGAAAAAMAAADgWAAAcFkAAAEAAACAWQAAzAEAQeiVAQsCEEsAQYCWAQsCHGwAQZCWAQsu+e6qKDAHAAA3BwAAGAcAAC4jAAAoAAAAAwAAAJBZAAAgWgAAAQAAADBaAADNAQBBzJYBCwJoSwBB2JYBCz4cbAAAHGwAABxsAAAAAAAA+e6qKAsXAAASFwAA9RYAAC4jAAAcAAAABAAAAEBaAAAAWwAAAQAAABBbAADOAQBBpJcBCwK4SwBBuJcBCy757qooPQkAAEQJAAAmCQAALiMAABQAAAABAAAAIFsAAFBbAAABAAAAYFsAAM8BAEH4lwELAhBMAEGQmAELLvnuqij4HwAA/x8AAOYfAAAuIwAAGAAAAAEAAABwWwAAoFsAAAEAAACwWwAA0AEAQdCYAQsCiEwAQdyYAQsOHGwAABxsAAAcbAAAHGwAQYiZAQsu+e6qKJQHAACbBwAAfAcAAC4jAAA4AAAACAAAAMBbAABAXQAAAQAAAGBdAADRAQBBxJkBCwLcTABB0JkBCwIcbABB3JkBCy757qooogkAAKkJAACRCQAALiMAABgAAAACAAAAcF0AANBdAAABAAAA4F0AANIBAEGYmgELAjhNAEG4mgELLvnuqijvHQAA9h0AANYdAAAuIwAAIAAAAAMAAADwXQAAgF4AAAEAAACQXgAA0wEAQfSaAQsCmE0AQYCbAQsKHGwAABxsAAAcbABBmJsBCy757qoowQcAAMgHAACrBwAALiMAACQAAAAFAAAAoF4AAJBfAAABAAAAsF8AANQBAEHUmwELAuxNAEHgmwELOhxsAAAcbAAAHGwAAPnuqigXCAAAHggAAAEIAAAuIwAAGAAAAAMAAADAXwAAUGAAAAEAAABgYAAA1QEAQaicAQsCUE4AQbScAQsOHGwAABxsAAAcbAAAHGwAQdCcAQsu+e6qKEYGAABNBgAALQYAAC4jAAAoAAAABQAAAHBgAABgYQAAAQAAAIBhAADWAQBBjJ0BCwKoTgBBmJ0BCwYcbAAAHGwAQaidAQsu+e6qKBwdAAAjHQAAAh0AAC4jAAAcAAAAAwAAAJBhAAAgYgAAAQAAADBiAADXAQBB6J0BCwIwTwBB9J0BCwocbAAAHGwAABxsAEGwngELLvnuqigDBwAACgcAAO0GAAAuIwAASAAAAAsAAABAYgAAUGQAAAEAAACAZAAA2AEAQeyeAQsCiE8AQfieAQs+HGwAABxsAAAcbAAAHGwAAPnuqijsBwAA8wcAANYHAAAuIwAAHAAAAAQAAACQZAAAUGUAAAEAAABgZQAA2QEAQcSfAQsC2E8AQdifAQsu+e6qKB4eAAAlHgAABx4AAC4jAAAUAAAAAQAAAHBlAACgZQAAAQAAALBlAADaAQBBmKABCwJIUABBpKABCwYcbAAAHGwAQcigAQsu+e6qKBUGAAAcBgAA/AUAAC4jAAAwAAAABQAAAMBlAACwZgAAAQAAANBmAADbAQBBhKEBCwKgUABBnKEBCzIcbAAA+e6qKLQcAAC7HAAAmhwAAC4jAAAcAAAAAwAAAOBmAABwZwAAAQAAAIBnAADcAQBB4KEBCwIYUQBBmKIBCy757qoozhUAANUVAAC9FQAALiMAADgAAAAHAAAAkGcAAOBoAAABAAAAAGkAAN0BAEHUogELAnhRAEHgogELChxsAAAcbAAAHGwAQfiiAQsu+e6qKNkGAADgBgAAxAYAAC4jAAAkAAAABQAAABBpAAAAagAAAQAAACBqAADeAQBBwKMBCx50FgAAAQAAAAMAAAAOAAAAAAAAAAwAAAAAAAAAHGwAQfCjAQsVkwUAAAIAAAADAAAABgAAAAAAAAAQAEGgpAELFdoEAAADAAAAAwAAAAwAAAAAAAAAFABB0KQBCxX6GAAABAAAAAMAAAAPAAAAAAAAABgAQYClAQsVTR8AAAUAAAADAAAABgAAAAAAAAAgAEGwpQELFYAFAAAGAAAAAwAAAAYAAAAAAAAAJABB4KUBCx46HgAABwAAAAMAAAAOAAAAAAAAACgAAAAAAAAAHGwAQZCmAQsVxxYAAAgAAAADAAAAAwAAAAAAAAAwAEHEpgELHQUAAAAGAAAAAwAAAAIAAAABAAAABAAAAAcAAAABAEHspgELHggAAACtCgAAAQAAAAIAAAAQAAAADAAAABAAAAD4RwBBsKcBCwEBAEG8pwELGQEAAADhCgAAAQAAAAMAAAADAAAAAAAAABAAQfCnAQsJxxYAAAIAAAADAEGEqAELARgAQaCoAQsVTR8AAAMAAAADAAAABgAAAAAAAAAcAEHQqAELHqkXAAAEAAAAAwAAAA4AAAAAAAAAIAAAAAAAAAAcbABBgKkBCx5WJgAABQAAAAMAAAAOAAAAAAAAACQAAAAAAAAAHGwAQbCpAQsarQoAAAYAAAACAAAAEAAAACgAAAAsAAAA+EcAQeCpAQsedQoAAAcAAAACAAAADgAAADAAAAA0AAAAAAAAABxsAEGQqgELCdQFAAAIAAAAAwBBpKoBCwE4AEHAqgELCW8eAAAJAAAAAwBB1KoBCwE8AEHwqgELIQgAAAAEAAAABQAAAAMAAAACAAAABgAAAAcAAAAAAAAAAQBBoKsBCwEBAEGsqwELGQkAAADhCgAAAQAAAAMAAAADAAAAAAAAABAAQeCrAQsJxxYAAAIAAAADAEH0qwELARgAQZCsAQsVTR8AAAMAAAADAAAABgAAAAAAAAAcAEHArAELHhUcAAAEAAAAAwAAAA4AAAAAAAAAIAAAAAAAAAAcbABB8KwBCxqnCgAABQAAAAIAAAAQAAAAJAAAACgAAABUSgBBoK0BCx6pFwAABgAAAAMAAAAOAAAAAAAAACwAAAAAAAAAHGwAQdCtAQsVHhYAAAcAAAADAAAADwAAAAAAAAAwAEGArgELIQUAAAACAAAABgAAAAQAAAADAAAAAAAAAAEAAAAAAAAAAQBBrK4BCyIHAAAAdQoAAAEAAAACAAAADgAAAAwAAAAQAAAAAAAAABxsAEHgrgELFccWAAACAAAAAwAAAAMAAAAAAAAAGABBlK8BCwEBAEGgrwELAQEAQayvAQseAgAAAKcKAAABAAAAAgAAABAAAAAMAAAAEAAAAFRKAEHgrwELFR4WAAACAAAAAwAAAA8AAAAAAAAAFABBkLABCwEBAEGgsAELAQEAQaywAQsiAgAAADoeAAABAAAAAwAAAA4AAAAAAAAADAAAAAAAAAAcbABB4LABCxrOCgAAAgAAAAIAAAAQAAAAEAAAABQAAACoSgBBkLEBCxpmCgAAAwAAAAIAAAAQAAAAGAAAABwAAACoSgBBxLEBCw0BAAAAAgAAAAAAAAABAEHcsQELHgMAAACYFgAAAQAAAAMAAAANAAAAAAAAAAwAAABwagBBkLIBCx50FgAAAgAAAAMAAAAOAAAAAAAAABAAAAAAAAAAHGwAQcCyAQseqQkAAAMAAAADAAAADgAAAAAAAAAUAAAAAAAAABxsAEHwsgELBQEAAAACAEGAswELAQEAQYyzAQsZAwAAAOEKAAABAAAAAwAAAAMAAAAAAAAAEABBwLMBCx46HgAAAgAAAAMAAAAOAAAAAAAAABgAAAAAAAAAHGwAQfCzAQsVnwoAAAMAAAADAAAADwAAAAAAAAAcAEGgtAELBQEAAAACAEGwtAELAQEAQby0AQsiAwAAADoeAAABAAAAAwAAAA4AAAAAAAAADAAAAAAAAAAcbABB8LQBCx50FgAAAgAAAAMAAAAOAAAAAAAAABAAAAAAAAAAHGwAQaC1AQseqQkAAAMAAAADAAAADgAAAAAAAAAUAAAAAAAAABxsAEHQtQELCSsmAAAEAAAAAwBB5LUBCwEYAEGAtgELEQEAAAAAAAAAAgAAAAMAAAABAEGctgELHgQAAACtCgAAAQAAAAIAAAAQAAAADAAAABAAAABoSwBB4LYBCwEBAEHstgELGQEAAADhCgAAAQAAAAMAAAADAAAAAAAAABAAQbC3AQsBAQBBvLcBCyIBAAAAOh4AAAEAAAADAAAADgAAAAAAAAAMAAAAAAAAABxsAEHwtwELHnQWAAACAAAAAwAAAA4AAAAAAAAAEAAAAAAAAAAcbABBoLgBCx5TCAAAAwAAAAMAAAAOAAAAAAAAABQAAAAAAAAAHGwAQdC4AQseCSAAAAQAAAADAAAADgAAAAAAAAAYAAAAAAAAABxsAEGAuQELFe8EAAAFAAAAAwAAAAwAAAAAAAAAHABBsLkBCxXlBAAABgAAAAMAAAAMAAAAAAAAACAAQeC5AQsVxAkAAAcAAAADAAAAAwAAAAAAAAAoAEGQugELFSsgAAAIAAAAAwAAAAwAAAAAAAAAMABBwLoBCyEBAAAABQAAAAAAAAADAAAABwAAAAQAAAAGAAAAAgAAAAEAQey6AQsiCAAAAKIeAAABAAAAAwAAAA4AAAAAAAAADAAAAAAAAAAcbABBoLsBCxULHAAAAgAAAAMAAAAPAAAAAAAAABAAQdS7AQsBAQBB4LsBCwEBAEHsuwELHgIAAADcCgAAAQAAAAIAAAAQAAAADAAAABAAAADcTABBoLwBCxVqHgAAAgAAAAMAAAAMAAAAAAAAABQAQdC8AQsVrggAAAMAAAADAAAAAwAAAAAAAAAYAEGAvQELEQIAAAAAAAAAAQAAAAAAAAABAEGcvQELIgMAAAA6HgAAAQAAAAMAAAAOAAAAAAAAAAwAAAAAAAAAHGwAQdC9AQsedBYAAAIAAAADAAAADgAAAAAAAAAQAAAAAAAAABxsAEGAvgELHqkJAAADAAAAAwAAAA4AAAAAAAAAFAAAAAAAAAAcbABBsL4BCxULHAAABAAAAAMAAAAPAAAAAAAAABgAQeC+AQsViRcAAAUAAAADAAAADAAAAAAAAAAgAEGQvwELEQEAAAAAAAAAAgAAAAQAAAADAEGwvwELAQEAQby/AQsiBQAAADoeAAABAAAAAwAAAA4AAAAAAAAADAAAAAAAAAAcbABB8L8BCx50FgAAAgAAAAMAAAAOAAAAAAAAABAAAAAAAAAAHGwAQaDAAQseqQkAAAMAAAADAAAADgAAAAAAAAAUAAAAAAAAABxsAEHQwAELEQEAAAAAAAAAAgAAAAAAAAABAEHswAELIgMAAAA6HgAAAQAAAAMAAAAOAAAAAAAAAAwAAAAAAAAAHGwAQaDBAQsedBYAAAIAAAADAAAADgAAAAAAAAAQAAAAAAAAABxsAEHQwQELHlMIAAADAAAAAwAAAA4AAAAAAAAAFAAAAAAAAAAcbABBgMIBCx4JIAAABAAAAAMAAAAOAAAAAAAAABgAAAAAAAAAHGwAQbDCAQsVxAkAAAUAAAADAAAAAwAAAAAAAAAgAEHgwgELEQEAAAAAAAAAAwAAAAQAAAACAEGAwwELAQEAQYzDAQsiBQAAADoeAAABAAAAAwAAAA4AAAAAAAAADAAAAAAAAAAcbABBwMMBCx50FgAAAgAAAAMAAAAOAAAAAAAAABAAAAAAAAAAHGwAQfDDAQseVAoAAAMAAAACAAAADgAAABQAAAAYAAAAAAAAABxsAEGgxAELEQEAAAAAAAAAAgAAAAAAAAABAEG8xAELIgMAAAA6HgAAAQAAAAMAAAAOAAAAAAAAAAwAAAAAAAAAHGwAQfDEAQsedBYAAAIAAAADAAAADgAAAAAAAAAQAAAAAAAAABxsAEGgxQELHqkJAAADAAAAAwAAAA4AAAAAAAAAFAAAAAAAAAAcbABB0MUBCxqnHwAABAAAAAMAAAANAAAAAAAAABgAAABAawBBgMYBCx66CgAABQAAAAIAAAAOAAAAHAAAACAAAAAAAAAAHGwAQbDGAQsVCxwAAAYAAAADAAAADwAAAAAAAAAkAEHgxgELFa4IAAAHAAAAAwAAAAMAAAAAAAAAMABBkMcBCwmTBQAACAAAAAMAQaTHAQsBOABBwMcBCxqYHgAACQAAAAMAAAANAAAAAAAAADwAAADgawBB8McBCxVsHAAACgAAAAMAAAAMAAAAAAAAAEAAQaDIAQsVICMAAAsAAAADAAAADAAAAAAAAABEAEHQyAELMQoAAAABAAAABgAAAAkAAAAAAAAAAgAAAAcAAAADAAAABAAAAAgAAAAFAAAAAAAAAAEAQYzJAQsiCwAAADoeAAABAAAAAwAAAA4AAAAAAAAADAAAAAAAAAAcbABBwMkBCx50FgAAAgAAAAMAAAAOAAAAAAAAABAAAAAAAAAAHGwAQfDJAQseqQkAAAMAAAADAAAADgAAAAAAAAAUAAAAAAAAABxsAEGgygELHucXAAAEAAAAAwAAAA4AAAAAAAAAGAAAAAAAAAAcbABB0MoBCxEBAAAAAAAAAAIAAAADAAAAAQBB7MoBCxkEAAAACxwAAAEAAAADAAAADwAAAAAAAAAMAEGwywELAQEAQbzLAQsiAQAAADoeAAABAAAAAwAAAA4AAAAAAAAADAAAAAAAAAAcbABB8MsBCx6yCQAAAgAAAAMAAAAOAAAAAAAAABAAAAAAAAAAHGwAQaDMAQsVswoAAAMAAAADAAAADwAAAAAAAAAUAEHQzAELFdQFAAAEAAAAAwAAAAMAAAAAAAAAIABBgM0BCxWxHgAABQAAAAMAAAAMAAAAAAAAACgAQbTNAQsNBAAAAAIAAAABAAAAAwBB0M0BCwEBAEHczQELGQUAAAB9CgAAAQAAAAMAAAAMAAAAAAAAAAwAQZDOAQsVbQoAAAIAAAADAAAADwAAAAAAAAAQAEHAzgELHhcWAAADAAAAAwAAAA4AAAAAAAAAGAAAAAAAAAAcbABB8M4BCwUCAAAAAQBBgM8BCwEBAEGMzwELHgMAAACnHwAAAQAAAAMAAAANAAAAAAAAAAwAAABAawBBwM8BCx66CgAAAgAAAAIAAAAOAAAAEAAAABQAAAAAAAAAHGwAQfDPAQsVCxwAAAMAAAADAAAADwAAAAAAAAAYAEGg0AELFa4IAAAEAAAAAwAAAAMAAAAAAAAAIABB0NABCwmTBQAABQAAAAMAQeTQAQsBKABBgNEBCxqYHgAABgAAAAMAAAANAAAAAAAAACwAAADgawBBsNEBCxVsHAAABwAAAAMAAAAMAAAAAAAAADAAQeDRAQshAwAAAAYAAAAEAAAAAAAAAAEAAAAFAAAAAgAAAAAAAAABAEGM0gELIgcAAAA6HgAAAQAAAAMAAAAOAAAAAAAAAAwAAAAAAAAAHGwAQcDSAQsedBYAAAIAAAADAAAADgAAAAAAAAAQAAAAAAAAABxsAEHw0gELHqkJAAADAAAAAwAAAA4AAAAAAAAAFAAAAAAAAAAcbABBoNMBCxrGCgAABAAAAAIAAAAQAAAAGAAAABwAAAAYUQBB0NMBCxUgIwAABQAAAAMAAAAMAAAAAAAAACAAQYDUAQsRBAAAAAEAAAAAAAAAAgAAAAMAQaDUAQsBAQBBrNQBCxkFAAAAEyMAAAAjAAAAAAAALxwAABwcAAABAEHQ1AELDRMjAAAAAAAALxwAAAEAQezUAQsuAgAAAK8VQxGRFgAAmBYAAH8WAAAuIwAAAgAAADBqAAACAAAAUGoAAAEAAABgagBBsNUBC0UDCgAA7AkAAAAAAACKHAAAcxwAAAEAAABMHAAANRwAAAIAAADhCQAAygkAAAMAAACCIwAAayMAAAQAAABICAAAMQgAAAUAQYDWAQstgiMAAAQAAADhCQAAAwAAAEwcAAACAAAASAgAAAUAAAADCgAAAAAAAIocAAABAEG81gELLgYAAACvFUMRmh8AAKEfAACFHwAALiMAAAYAAACwagAABgAAAABrAAABAAAAMGsAQYDXAQtNGwoAAAcKAAAAAAAA9wUAAOMFAAABAAAAwhgAAK4YAAACAAAAQQoAAC0KAAADAAAAGwoAAAAAAABBCgAAAwAAAPcFAAABAAAAwhgAAAIAQdzXAQsuBAAAAK8VQxGMHgAAkx4AAHoeAAAuIwAABAAAAIBrAAAEAAAAsGsAAAEAAADQawBBoNgBC0EEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAEAAAABAAAAAgAAAAIAAAABAAAAAgAAAAEAAAABAAAAAQAAAAIAAAABABB8NgBC/MOmC+KQpFEN3HP+8C1pdu16VvCVjnxEfFZpII/ktVeHKuYqgfYAVuDEr6FMSTDfQxVdF2+cv6x3oCnBtybdPGbwcFpm+SGR77vxp3BD8yhDCRvLOktqoR0StypsFzaiPl2UlE+mG3GMajIJwOwx39Zv/ML4MZHkafVUWPKBmcpKRSFCrcnOCEbLvxtLE0TDThTVHMKZbsKanYuycKBhSxykqHov6JLZhqocItLwqNRbMcZ6JLRJAaZ1oU1DvRwoGoQFsGkGQhsNx5Md0gntbywNLMMHDlKqthOT8qcW/NvLmjugo90b2OleBR4yIQIAseM+v++kOtsUKT3o/m+8nhxxgAAAAACAAAAAwAAAAUAAAAHAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB/AAAAgwAAAIkAAACLAAAAlQAAAJcAAACdAAAAowAAAKcAAACtAAAAswAAALUAAAC/AAAAwQAAAMUAAADHAAAA0wAAAAEAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAHkAAAB/AAAAgwAAAIkAAACLAAAAjwAAAJUAAACXAAAAnQAAAKMAAACnAAAAqQAAAK0AAACzAAAAtQAAALsAAAC/AAAAwQAAAMUAAADHAAAA0QAAAAAAAAAMcAAA4gEAAOMBAADkAQAA5QEAAOYBAADnAQAA6AEAAOkBAADqAQAA6wEAAOwBAADtAQAA7gEAAO8BAAAEAAAAAAAAAERwAADwAQAA8QEAAPz////8////RHAAAPIBAADzAQAAPG8AAFBvAAAAAAAAoHAAAPQBAAD1AQAA5AEAAOUBAAD2AQAA9wEAAOgBAADpAQAA6gEAAPgBAADsAQAA+QEAAO4BAAD6AQAATlN0M19fMjliYXNpY19pb3NJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAAAonwAAoG8AAIRxAABOU3QzX18yMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAAAAAJ8AANhvAABOU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAACEnwAAFHAAAAAAAAABAAAAzG8AAAP0//9OU3QzX18yMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAACifAABccAAADHAAADgAAAAAAAAAVHEAAPsBAAD8AQAAyP///8j///9UcQAA/QEAAP4BAAC4cAAA8HAAAARxAADMcAAAOAAAAAAAAABEcAAA8AEAAPEBAADI////yP///0RwAADyAQAA8wEAAE5TdDNfXzIxOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAACifAAAMcQAARHAAAAAAAACEcQAA/wEAAAACAABOU3QzX18yOGlvc19iYXNlRQAAAACfAABwcQAAAAAAANF0ngBXnb0qgHBSD///PicKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BRgAAAA1AAAAcQAAAGv////O+///kr///wAAAAAAAAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAA3hIElQAAAAD////////////////AcwAAFAAAAEMuVVRGLTgAQZDoAQsC1HMAQbDoAQtHTENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMA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")||(ht=ct,ct=d.locateFile?d.locateFile(ht,x):x+ht);var ai,pi=Me=>{for(;Me.length>0;)Me.shift()(d)},yi=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,fi=(Me,ot)=>Me?((Ct,Kt,Xr)=>{for(var Lr=Kt+Xr,Jr=Kt;Ct[Jr]&&!(Jr>=Lr);)++Jr;if(Jr-Kt>16&&Ct.buffer&&yi)return yi.decode(Ct.subarray(Kt,Jr));for(var zr="";Kt>10,56320|1023&Oa)}}else zr+=String.fromCharCode((31&ci)<<6|ro)}else zr+=String.fromCharCode(ci)}return zr})(re,Me,ot):"",Jn=Me=>{var ot=(Me-Y.buffer.byteLength+65535)/65536;try{return Y.grow(ot),Ge(),1}catch{}},xr={},pr=()=>{if(!pr.strings){var Me={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:f||"./this.program"};for(var ot in xr)xr[ot]===void 0?delete Me[ot]:Me[ot]=xr[ot];var Ct=[];for(var ot in Me)Ct.push("".concat(ot,"=").concat(Me[ot]));pr.strings=Ct}return pr.strings},ei=Me=>Me%4==0&&(Me%100!=0||Me%400==0),_i=[31,29,31,30,31,30,31,31,30,31,30,31],Gr=[31,28,31,30,31,30,31,31,30,31,30,31],oi=Me=>{for(var ot=0,Ct=0;Ct=55296&&Kt<=57343?(ot+=4,++Ct):ot+=3}return ot},Oi=(Me,ot,Ct,Kt)=>{if(!(Kt>0))return 0;for(var Xr=Ct,Lr=Ct+Kt-1,Jr=0;Jr=55296&&zr<=57343&&(zr=65536+((1023&zr)<<10)|1023&Me.charCodeAt(++Jr)),zr<=127){if(Ct>=Lr)break;ot[Ct++]=zr}else if(zr<=2047){if(Ct+1>=Lr)break;ot[Ct++]=192|zr>>6,ot[Ct++]=128|63&zr}else if(zr<=65535){if(Ct+2>=Lr)break;ot[Ct++]=224|zr>>12,ot[Ct++]=128|zr>>6&63,ot[Ct++]=128|63&zr}else{if(Ct+3>=Lr)break;ot[Ct++]=240|zr>>18,ot[Ct++]=128|zr>>12&63,ot[Ct++]=128|zr>>6&63,ot[Ct++]=128|63&zr}}return ot[Ct]=0,Ct-Xr},_o=(Me,ot,Ct,Kt)=>{var Xr=ue[Kt+40>>2],Lr={tm_sec:he[Kt>>2],tm_min:he[Kt+4>>2],tm_hour:he[Kt+8>>2],tm_mday:he[Kt+12>>2],tm_mon:he[Kt+16>>2],tm_year:he[Kt+20>>2],tm_wday:he[Kt+24>>2],tm_yday:he[Kt+28>>2],tm_isdst:he[Kt+32>>2],tm_gmtoff:he[Kt+36>>2],tm_zone:Xr?fi(Xr):""},Jr=fi(Ct),zr={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var ci in zr)Jr=Jr.replace(new RegExp(ci,"g"),zr[ci]);var ro=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Ho=["January","February","March","April","May","June","July","August","September","October","November","December"];function Oa(_r,rn,dn){for(var Io=typeof _r=="number"?_r.toString():_r||"";Io.length0?1:0}var Io;return(Io=dn(_r.getFullYear()-rn.getFullYear()))===0&&(Io=dn(_r.getMonth()-rn.getMonth()))===0&&(Io=dn(_r.getDate()-rn.getDate())),Io}function Ns(_r){switch(_r.getDay()){case 0:return new Date(_r.getFullYear()-1,11,29);case 1:return _r;case 2:return new Date(_r.getFullYear(),0,3);case 3:return new Date(_r.getFullYear(),0,2);case 4:return new Date(_r.getFullYear(),0,1);case 5:return new Date(_r.getFullYear()-1,11,31);case 6:return new Date(_r.getFullYear()-1,11,30)}}function w1(_r){var rn=((N1,Ic)=>{for(var Sa=new Date(N1.getTime());Ic>0;){var Wc=ei(Sa.getFullYear()),Ll=Sa.getMonth(),mA=(Wc?_i:Gr)[Ll];if(!(Ic>mA-Sa.getDate()))return Sa.setDate(Sa.getDate()+Ic),Sa;Ic-=mA-Sa.getDate()+1,Sa.setDate(1),Ll<11?Sa.setMonth(Ll+1):(Sa.setMonth(0),Sa.setFullYear(Sa.getFullYear()+1))}return Sa})(new Date(_r.tm_year+1900,0,1),_r.tm_yday),dn=new Date(rn.getFullYear(),0,4),Io=new Date(rn.getFullYear()+1,0,4),b1=Ns(dn),u1=Ns(Io);return ua(b1,rn)<=0?ua(u1,rn)<=0?rn.getFullYear()+1:rn.getFullYear():rn.getFullYear()-1}var qc={"%a":_r=>ro[_r.tm_wday].substring(0,3),"%A":_r=>ro[_r.tm_wday],"%b":_r=>Ho[_r.tm_mon].substring(0,3),"%B":_r=>Ho[_r.tm_mon],"%C":_r=>da((_r.tm_year+1900)/100|0,2),"%d":_r=>da(_r.tm_mday,2),"%e":_r=>Oa(_r.tm_mday,2," "),"%g":_r=>w1(_r).toString().substring(2),"%G":_r=>w1(_r),"%H":_r=>da(_r.tm_hour,2),"%I":_r=>{var rn=_r.tm_hour;return rn==0?rn=12:rn>12&&(rn-=12),da(rn,2)},"%j":_r=>da(_r.tm_mday+((rn,dn)=>{for(var Io=0,b1=0;b1<=dn;Io+=rn[b1++]);return Io})(ei(_r.tm_year+1900)?_i:Gr,_r.tm_mon-1),3),"%m":_r=>da(_r.tm_mon+1,2),"%M":_r=>da(_r.tm_min,2),"%n":()=>` +`,"%p":_r=>_r.tm_hour>=0&&_r.tm_hour<12?"AM":"PM","%S":_r=>da(_r.tm_sec,2),"%t":()=>" ","%u":_r=>_r.tm_wday||7,"%U":_r=>{var rn=_r.tm_yday+7-_r.tm_wday;return da(Math.floor(rn/7),2)},"%V":_r=>{var rn=Math.floor((_r.tm_yday+7-(_r.tm_wday+6)%7)/7);if((_r.tm_wday+371-_r.tm_yday-2)%7<=2&&rn++,rn){if(rn==53){var dn=(_r.tm_wday+371-_r.tm_yday)%7;dn==4||dn==3&&ei(_r.tm_year)||(rn=1)}}else{rn=52;var Io=(_r.tm_wday+7-_r.tm_yday-1)%7;(Io==4||Io==5&&ei(_r.tm_year%400-1))&&rn++}return da(rn,2)},"%w":_r=>_r.tm_wday,"%W":_r=>{var rn=_r.tm_yday+7-(_r.tm_wday+6)%7;return da(Math.floor(rn/7),2)},"%y":_r=>(_r.tm_year+1900).toString().substring(2),"%Y":_r=>_r.tm_year+1900,"%z":_r=>{var rn=_r.tm_gmtoff,dn=rn>=0;return rn=(rn=Math.abs(rn)/60)/60*100+rn%60,(dn?"+":"-")+("0000"+rn).slice(-4)},"%Z":_r=>_r.tm_zone,"%%":()=>"%"};for(var ci in Jr=Jr.replace(/%%/g,"\0\0"),qc)Jr.includes(ci)&&(Jr=Jr.replace(new RegExp(ci,"g"),qc[ci](Lr)));Jr=Jr.replace(/\0\0/g,"%");var ag,du,D1,oA,xA,Mo=(du=oi(ag=Jr)+1,D1=new Array(du),Oi(ag,D1,0,D1.length),D1);return Mo.length>ot?0:(oA=Mo,xA=Me,W.set(oA,xA),Mo.length-1)},$n=(Me,ot)=>{Me<128?ot.push(Me):ot.push(Me%128|128,Me>>7)},gs=(Me,ot)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function((Lr=>{for(var Jr={i:"i32",j:"i64",f:"f32",d:"f64",p:"i32"},zr={parameters:[],results:Lr[0]=="v"?[]:[Jr[Lr[0]]]},ci=1;ci{var zr=Lr.slice(0,1),ci=Lr.slice(1),ro={i:127,p:127,j:126,f:125,d:124};Jr.push(96),$n(ci.length,Jr);for(var Ho=0;HoFe.get(Me),Kn=void 0,Tn=Me=>(Kn||(Kn=new WeakMap,((ot,Ct)=>{if(Kn)for(var Kt=ot;KtFe.set(Me,ot),Fs={a:(Me,ot,Ct,Kt)=>{Yt("Assertion failed: ".concat(fi(Me),", at: ")+[ot?fi(ot):"unknown filename",Ct,Kt?fi(Kt):"unknown function"])},g:()=>!0,b:()=>{Yt("")},h:()=>Date.now(),f:()=>performance.now(),i:Me=>{var ot=re.length,Ct=2147483648;if((Me>>>=0)>Ct)return!1;for(var Kt=(zr,ci)=>zr+(ci-zr%ci)%ci,Xr=1;Xr<=4;Xr*=2){var Lr=ot*(1+.2/Xr);Lr=Math.min(Lr,Me+100663296);var Jr=Math.min(Ct,Kt(Math.max(Me,Lr),65536));if(Jn(Jr))return!0}return!1},d:(Me,ot)=>{var Ct=0;return pr().forEach((Kt,Xr)=>{var Lr=ot+Ct;ue[Me+4*Xr>>2]=Lr,((Jr,zr)=>{for(var ci=0;ci{var Ct=pr();ue[Me>>2]=Ct.length;var Kt=0;return Ct.forEach(Xr=>Kt+=Xr.length+1),ue[ot>>2]=Kt,0},j:function(Me,ot){d.rtejsLog(Me,fi(ot))},c:(Me,ot,Ct,Kt,Xr)=>_o(Me,ot,Ct,Kt)},bt=function(){var Me,ot,Ct,Kt={a:Fs};function Xr(Lr,Jr){var zr,ci=Lr.exports;return Y=(bt=ci).k,Ge(),Fe=bt.m,zr=bt.l,At.unshift(zr),function(){if(ye--,d.monitorRunDependencies&&d.monitorRunDependencies(ye),ye==0&<){var ro=lt;lt=null,ro()}}(),ci}if(ye++,d.monitorRunDependencies&&d.monitorRunDependencies(ye),d.instantiateWasm)try{return d.instantiateWasm(Kt,Xr)}catch(Lr){j("Module.instantiateWasm callback failed with error: ".concat(Lr)),o(Lr)}return(Me=ct,ot=Kt,Ct=function(Lr){Xr(Lr.instance)},vr(Me,ot,Ct)).catch(o),{}}();function Es(){function Me(){ai||(ai=!0,d.calledRun=!0,Ve||(pi(At),e(d),d.onRuntimeInitialized&&d.onRuntimeInitialized(),function(){if(d.postRun)for(typeof d.postRun=="function"&&(d.postRun=[d.postRun]);d.postRun.length;)rt(d.postRun.shift());pi(Bt)}()))}ye>0||(function(){if(d.preRun)for(typeof d.preRun=="function"&&(d.preRun=[d.preRun]);d.preRun.length;)Tt(d.preRun.shift());pi(He)}(),ye>0||(d.setStatus?(d.setStatus("Running..."),setTimeout(function(){setTimeout(function(){d.setStatus("")},1),Me()},1)):Me()))}if(d._free=Me=>(d._free=bt.n)(Me),d._malloc=Me=>(d._malloc=bt.o)(Me),d._rte_crdt_value_create=()=>(d._rte_crdt_value_create=bt.p)(),d._rte_crdt_value_clone=Me=>(d._rte_crdt_value_clone=bt.q)(Me),d._rte_crdt_value_destroy=Me=>(d._rte_crdt_value_destroy=bt.r)(Me),d._rte_crdt_value_is_scalar=Me=>(d._rte_crdt_value_is_scalar=bt.s)(Me),d._rte_crdt_value_is_map=Me=>(d._rte_crdt_value_is_map=bt.t)(Me),d._rte_crdt_value_is_list=Me=>(d._rte_crdt_value_is_list=bt.u)(Me),d._rte_crdt_value_get_scalar=Me=>(d._rte_crdt_value_get_scalar=bt.v)(Me),d._rte_crdt_value_set_scalar=Me=>(d._rte_crdt_value_set_scalar=bt.w)(Me),d._rte_crdt_value_set_map=Me=>(d._rte_crdt_value_set_map=bt.x)(Me),d._rte_crdt_value_set_list=Me=>(d._rte_crdt_value_set_list=bt.y)(Me),d._rte_crdt_scalar_value_set_i64=(Me,ot)=>(d._rte_crdt_scalar_value_set_i64=bt.z)(Me,ot),d._rte_crdt_scalar_value_set_u64=(Me,ot)=>(d._rte_crdt_scalar_value_set_u64=bt.A)(Me,ot),d._rte_crdt_scalar_value_set_double=(Me,ot)=>(d._rte_crdt_scalar_value_set_double=bt.B)(Me,ot),d._rte_crdt_scalar_value_set_bool=(Me,ot)=>(d._rte_crdt_scalar_value_set_bool=bt.C)(Me,ot),d._rte_crdt_scalar_value_set_bytes=(Me,ot,Ct)=>(d._rte_crdt_scalar_value_set_bytes=bt.D)(Me,ot,Ct),d._rte_crdt_scalar_value_set_null=Me=>(d._rte_crdt_scalar_value_set_null=bt.E)(Me),d._rte_crdt_scalar_value_set_counter=(Me,ot)=>(d._rte_crdt_scalar_value_set_counter=bt.F)(Me,ot),d._rte_crdt_scalar_value_is_i64=Me=>(d._rte_crdt_scalar_value_is_i64=bt.G)(Me),d._rte_crdt_scalar_value_is_u64=Me=>(d._rte_crdt_scalar_value_is_u64=bt.H)(Me),d._rte_crdt_scalar_value_is_double=Me=>(d._rte_crdt_scalar_value_is_double=bt.I)(Me),d._rte_crdt_scalar_value_is_bool=Me=>(d._rte_crdt_scalar_value_is_bool=bt.J)(Me),d._rte_crdt_scalar_value_is_bytes=Me=>(d._rte_crdt_scalar_value_is_bytes=bt.K)(Me),d._rte_crdt_scalar_value_is_null=Me=>(d._rte_crdt_scalar_value_is_null=bt.L)(Me),d._rte_crdt_scalar_value_is_counter=Me=>(d._rte_crdt_scalar_value_is_counter=bt.M)(Me),d._rte_crdt_scalar_value_get_i64=(Me,ot)=>(d._rte_crdt_scalar_value_get_i64=bt.N)(Me,ot),d._rte_crdt_scalar_value_get_u64=(Me,ot)=>(d._rte_crdt_scalar_value_get_u64=bt.O)(Me,ot),d._rte_crdt_scalar_value_get_double=(Me,ot)=>(d._rte_crdt_scalar_value_get_double=bt.P)(Me,ot),d._rte_crdt_scalar_value_get_bool=(Me,ot)=>(d._rte_crdt_scalar_value_get_bool=bt.Q)(Me,ot),d._rte_crdt_scalar_value_get_bytes=(Me,ot,Ct)=>(d._rte_crdt_scalar_value_get_bytes=bt.R)(Me,ot,Ct),d._rte_crdt_scalar_value_get_counter=(Me,ot)=>(d._rte_crdt_scalar_value_get_counter=bt.S)(Me,ot),d._rte_crdt_nested_value_create=()=>(d._rte_crdt_nested_value_create=bt.T)(),d._rte_crdt_nested_value_destroy=Me=>(d._rte_crdt_nested_value_destroy=bt.U)(Me),d._rte_crdt_nested_value_print=Me=>(d._rte_crdt_nested_value_print=bt.V)(Me),d._rte_crdt_nested_value_is_scalar=Me=>(d._rte_crdt_nested_value_is_scalar=bt.W)(Me),d._rte_crdt_nested_value_is_map=Me=>(d._rte_crdt_nested_value_is_map=bt.X)(Me),d._rte_crdt_nested_value_is_list=Me=>(d._rte_crdt_nested_value_is_list=bt.Y)(Me),d._rte_crdt_nested_value_get_scalar=Me=>(d._rte_crdt_nested_value_get_scalar=bt.Z)(Me),d._rte_crdt_nested_value_iterator_create=Me=>(d._rte_crdt_nested_value_iterator_create=bt._)(Me),d._rte_crdt_nested_value_iterator_destroy=Me=>(d._rte_crdt_nested_value_iterator_destroy=bt.$)(Me),d._rte_crdt_nested_value_iterator_next_key_value=(Me,ot,Ct,Kt)=>(d._rte_crdt_nested_value_iterator_next_key_value=bt.aa)(Me,ot,Ct,Kt),d._rte_crdt_nested_value_iterator_next_value=(Me,ot)=>(d._rte_crdt_nested_value_iterator_next_value=bt.ba)(Me,ot),d._rte_crdt_path_create=()=>(d._rte_crdt_path_create=bt.ca)(),d._rte_crdt_path_clone=Me=>(d._rte_crdt_path_clone=bt.da)(Me),d._rte_crdt_path_destroy=Me=>(d._rte_crdt_path_destroy=bt.ea)(Me),d._rte_crdt_path_add_property=(Me,ot,Ct)=>(d._rte_crdt_path_add_property=bt.fa)(Me,ot,Ct),d._rte_crdt_path_add_index=(Me,ot)=>(d._rte_crdt_path_add_index=bt.ga)(Me,ot),d._rte_crdt_path_iterator_create=Me=>(d._rte_crdt_path_iterator_create=bt.ha)(Me),d._rte_crdt_path_iterator_destroy=Me=>(d._rte_crdt_path_iterator_destroy=bt.ia)(Me),d._rte_crdt_path_iterator_next=(Me,ot,Ct,Kt)=>(d._rte_crdt_path_iterator_next=bt.ja)(Me,ot,Ct,Kt),d._rte_crdt_document_destroy=Me=>(d._rte_crdt_document_destroy=bt.ka)(Me),d._rte_crdt_document_get=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_get=bt.la)(Me,ot,Ct,Kt),d._rte_crdt_document_obj_size=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_obj_size=bt.ma)(Me,ot,Ct,Kt),d._rte_crdt_document_batch_write_begin=Me=>(d._rte_crdt_document_batch_write_begin=bt.na)(Me),d._rte_crdt_document_batch_write_end=Me=>(d._rte_crdt_document_batch_write_end=bt.oa)(Me),d._rte_crdt_document_put=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_put=bt.pa)(Me,ot,Ct,Kt),d._rte_crdt_document_insert=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_insert=bt.qa)(Me,ot,Ct,Kt),d._rte_crdt_document_delete=(Me,ot,Ct)=>(d._rte_crdt_document_delete=bt.ra)(Me,ot,Ct),d._rte_crdt_document_increment=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_increment=bt.sa)(Me,ot,Ct,Kt),d._rte_crdt_collection_put_doc=(Me,ot,Ct)=>(d._rte_crdt_collection_put_doc=bt.ta)(Me,ot,Ct),d._rte_crdt_collection_delete_doc=(Me,ot,Ct)=>(d._rte_crdt_collection_delete_doc=bt.ua)(Me,ot,Ct),d._rte_crdt_collection_ref_doc=(Me,ot,Ct)=>(d._rte_crdt_collection_ref_doc=bt.va)(Me,ot,Ct),d._rte_crdt_collection_iterator_create=(Me,ot,Ct)=>(d._rte_crdt_collection_iterator_create=bt.wa)(Me,ot,Ct),d._rte_crdt_collection_iterator_destroy=Me=>(d._rte_crdt_collection_iterator_destroy=bt.xa)(Me),d._rte_crdt_collection_iterator_next=(Me,ot,Ct)=>(d._rte_crdt_collection_iterator_next=bt.ya)(Me,ot,Ct),d._rte_crdt_collection_init=(Me,ot,Ct)=>(d._rte_crdt_collection_init=bt.za)(Me,ot,Ct),d._rte_crdt_collection_subscribe=(Me,ot,Ct)=>(d._rte_crdt_collection_subscribe=bt.Aa)(Me,ot,Ct),d._sync_client_create=(Me,ot,Ct)=>(d._sync_client_create=bt.Ba)(Me,ot,Ct),d._sync_client_destroy=Me=>(d._sync_client_destroy=bt.Ca)(Me),d._sync_client_enable_dynamic_readable=Me=>(d._sync_client_enable_dynamic_readable=bt.Da)(Me),d._sync_client_set_shakehand_interval=(Me,ot)=>(d._sync_client_set_shakehand_interval=bt.Ea)(Me,ot),d._sync_client_set_connection_timeout=(Me,ot)=>(d._sync_client_set_connection_timeout=bt.Fa)(Me,ot),d._sync_client_set_request_timeout=(Me,ot)=>(d._sync_client_set_request_timeout=bt.Ga)(Me,ot),d._sync_client_set_doc_ttl=(Me,ot,Ct,Kt,Xr)=>(d._sync_client_set_doc_ttl=bt.Ha)(Me,ot,Ct,Kt,Xr),d._sync_client_set_sync_interval=(Me,ot,Ct,Kt)=>(d._sync_client_set_sync_interval=bt.Ia)(Me,ot,Ct,Kt),d._sync_buffer_create=()=>(d._sync_buffer_create=bt.Ja)(),d._sync_buffer_destroy=Me=>(d._sync_buffer_destroy=bt.Ka)(Me),d._sync_buffer_data=Me=>(d._sync_buffer_data=bt.La)(Me),d._sync_buffer_length=Me=>(d._sync_buffer_length=bt.Ma)(Me),d._batch_ops_create=()=>(d._batch_ops_create=bt.Na)(),d._batch_ops_destroy=Me=>(d._batch_ops_destroy=bt.Oa)(Me),d._batch_ops_add=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro)=>(d._batch_ops_add=bt.Pa)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro),d._sync_client_tick=(Me,ot)=>(d._sync_client_tick=bt.Qa)(Me,ot),d._sync_client_shakehand=(Me,ot)=>(d._sync_client_shakehand=bt.Ra)(Me,ot),d._sync_client_on_recv=(Me,ot,Ct,Kt)=>(d._sync_client_on_recv=bt.Sa)(Me,ot,Ct,Kt),d._sync_client_reset_connection=Me=>(d._sync_client_reset_connection=bt.Ta)(Me),d._sync_client_compact=Me=>(d._sync_client_compact=bt.Ua)(Me),d._sync_client_synced=Me=>(d._sync_client_synced=bt.Va)(Me),d._sync_client_create_coll=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci)=>(d._sync_client_create_coll=bt.Wa)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci),d._sync_client_subscribe=(Me,ot,Ct,Kt,Xr)=>(d._sync_client_subscribe=bt.Xa)(Me,ot,Ct,Kt,Xr),d._sync_client_get_coll=(Me,ot,Ct)=>(d._sync_client_get_coll=bt.Ya)(Me,ot,Ct),d._sync_client_delete_coll=(Me,ot,Ct)=>(d._sync_client_delete_coll=bt.Za)(Me,ot,Ct),d._sync_client_add_readable=(Me,ot,Ct,Kt)=>(d._sync_client_add_readable=bt._a)(Me,ot,Ct,Kt),d._sync_client_remove_readable=(Me,ot,Ct,Kt)=>(d._sync_client_remove_readable=bt.$a)(Me,ot,Ct,Kt),d._sync_collection_iterator_create=(Me,ot)=>(d._sync_collection_iterator_create=bt.ab)(Me,ot),d._sync_collection_iterator_next=(Me,ot)=>(d._sync_collection_iterator_next=bt.bb)(Me,ot),d._sync_client_enable_js_logging=()=>(d._sync_client_enable_js_logging=bt.cb)(),d._sync_client_set_log_level=Me=>(d._sync_client_set_log_level=bt.db)(Me),d._sync_client_set_exception_callback=(Me,ot,Ct)=>(d._sync_client_set_exception_callback=bt.eb)(Me,ot,Ct),d._sync_client_renew_tickets=(Me,ot,Ct)=>(d._sync_client_renew_tickets=bt.fb)(Me,ot,Ct),d._sync_client_keepalive=(Me,ot,Ct,Kt,Xr)=>(d._sync_client_keepalive=bt.gb)(Me,ot,Ct,Kt,Xr),d._sync_client_connect_database=(Me,ot,Ct,Kt,Xr,Lr)=>(d._sync_client_connect_database=bt.hb)(Me,ot,Ct,Kt,Xr,Lr),d._sync_client_disconnect_database=(Me,ot,Ct,Kt)=>(d._sync_client_disconnect_database=bt.ib)(Me,ot,Ct,Kt),d._sync_client_query_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho)=>(d._sync_client_query_doc=bt.jb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho),d._sync_client_put_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci)=>(d._sync_client_put_doc=bt.kb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci),d._sync_client_put_doc_ex=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro)=>(d._sync_client_put_doc_ex=bt.lb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro),d._sync_client_delete_doc=(Me,ot,Ct,Kt,Xr,Lr)=>(d._sync_client_delete_doc=bt.mb)(Me,ot,Ct,Kt,Xr,Lr),d._sync_client_update_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1)=>(d._sync_client_update_doc=bt.nb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1),d._sync_client_update_doc_ex=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1,qc)=>(d._sync_client_update_doc_ex=bt.ob)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1,qc),d._sync_client_batch_update=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr)=>(d._sync_client_batch_update=bt.pb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr),d._sync_client_n1ql_query=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci)=>(d._sync_client_n1ql_query=bt.qb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci),d._sync_client_range_docs=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr)=>(d._sync_client_range_docs=bt.rb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr),d._sync_client_get_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr)=>(d._sync_client_get_doc=bt.sb)(Me,ot,Ct,Kt,Xr,Lr,Jr),d._sync_client_set_permission_callback=(Me,ot,Ct)=>(d._sync_client_set_permission_callback=bt.tb)(Me,ot,Ct),d.___start_em_js=40968,d.___stop_em_js=41062,d.addFunction=(Me,ot)=>{var Ct=Tn(Me);if(Ct)return Ct;var Kt=(()=>{if(Zn.length)return Zn.pop();try{Fe.grow(1)}catch(Lr){throw Lr instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":Lr}return Fe.length-1})();try{hc(Kt,Me)}catch(Lr){if(!(Lr instanceof TypeError))throw Lr;var Xr=gs(Me,ot);hc(Kt,Xr)}return Kn.set(Me,Kt),Kt},d.removeFunction=Me=>{Kn.delete(Bs(Me)),Zn.push(Me)},d.setValue=function(Me,ot){let Ct=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"i8";switch(Ct.endsWith("*")&&(Ct="*"),Ct){case"i1":case"i8":W[0|Me]=ot;break;case"i16":ee[Me>>1]=ot;break;case"i32":he[Me>>2]=ot;break;case"i64":_e[Me>>3]=BigInt(ot);break;case"float":Ee[Me>>2]=ot;break;case"double":De[Me>>3]=ot;break;case"*":ue[Me>>2]=ot;break;default:Yt("invalid type for setValue: ".concat(Ct))}},d.getValue=function(Me){let ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"i8";switch(ot.endsWith("*")&&(ot="*"),ot){case"i1":case"i8":return W[0|Me];case"i16":return ee[Me>>1];case"i32":return he[Me>>2];case"i64":return _e[Me>>3];case"float":return Ee[Me>>2];case"double":return De[Me>>3];case"*":return ue[Me>>2];default:Yt("invalid type for getValue: ".concat(ot))}},d.UTF8ToString=fi,d.stringToUTF8=(Me,ot,Ct)=>Oi(Me,re,ot,Ct),d.lengthBytesUTF8=oi,lt=function Me(){ai||Es(),ai||(lt=Me)},d.preInit)for(typeof d.preInit=="function"&&(d.preInit=[d.preInit]);d.preInit.length>0;)d.preInit.pop()();return Es(),n.ready};const getUTCTimestamp=()=>{const n=new Date;return"".concat(n.toISOString().split("T")[1].replace(/\..+/,""),".").concat(n.getMilliseconds())};let wasmReject,wasmResolve;const wasmPromise=new Promise((n,e)=>{wasmReject=e,wasmResolve=n});let Module,isBrowser;async function initWasm(n){Module=await wasmPromise,initFunc(n)}function setBrowser(n){isBrowser=n}createModule({rtejsLog:(n,e)=>{switch(n){case 0:console.debug(e," ----------rtejslog");break;case 1:console.info(e," ----------rtejslog");break;case 2:console.warn(e," ----------rtejslog");break;case 3:console.error(e," ----------rtejslog")}}}).then(n=>{wasmResolve(n),console.log(getUTCTimestamp(),"wasm-module initialized")}).catch(n=>{wasmReject(n)});class QueryDocBuffer{constructor(){this.docs=new Map,this.count=-1,this.more=!1}SetDocs(e,o){this.docs.set(e,o)}SetCount(e){if(!isInteger(e))throw new TypeError("The num is expected to be an integer, but a double was got.");this.count=e}SetMore(e){this.more=e}}class SyncClient{constructor(e){this.appId=e.appId,this.logLevel=e.logLevel,this.shakehandInterval=e.shakehandInterval,this.manualShakehand=e.manualShakehand,this.manualTick=e.manualTick,this.uuidPrefix=e.uuidPrefix,this.getLogger=e.getLogger,this.reuseConn=e.reuseConn,this.tickets=new Map,this.exceptionCb=null,this.exceptionChan=new eventsExports.EventEmitter;const o=getPtrWithStr(this.uuidPrefix+"_"+uuid_1.v4()),[d,I]=getPtrStringList(Array.from(this.tickets.values()));this.clientPtr=Module._sync_client_create(o,d,this.tickets.size);for(let f=0;f{this.connected=!0,this.manualTick||(tickLoop(this),this.timer=setInterval(()=>{tickLoop(this)},2e3))}),this.reuseConn().internalEmitter.on("disconnected",()=>{this.connected=!1,this.manualTick||clearInterval(this.timer),Module._sync_client_reset_connection(this.clientPtr)}),this.reuseConn().internalEmitter.on("received-packet",f=>{try{const S=f.length*f.BYTES_PER_ELEMENT,v=Module._malloc(S);Module.HEAPU8.set(f,v);const L=Module._sync_client_on_recv(this.clientPtr,v,BigInt(S),this.tickBufferPtr);if(Module._free(v),L===101)Module._sync_client_reset_connection(this.clientPtr);else{const x=new Uint8Array(Module.HEAPU8.buffer,Module._sync_buffer_data(this.tickBufferPtr),Number(Module._sync_buffer_length(this.tickBufferPtr))).slice();x.length!=0&&(this.reuseConn().sendPacket(x),logger(new Date().toString()+" : recv and send packet",this.getLogger,"info"))}}catch(S){logger("recvError : ".concat(S),this.getLogger,"error")}}))}async Login(){if(this.reuseConn===null){if(!(this.tickets.size>0))throw new Error("Tickets should be set before logging in.");await fetchHelper(this,isBrowser),logger("Open the WebSocket successfully",this.getLogger,"info")}}Logout(){this.tickBufferPtr&&this.tickBufferPtr!==0&&(Module._sync_buffer_destroy(this.tickBufferPtr),this.tickBufferPtr=0),this.reuseConn===null&&clearInterval(this.timer),this.manualShakehand&&this.shakehandBufferPtr&&this.shakehandBufferPtr!==0&&(Module._sync_buffer_destroy(this.shakehandBufferPtr),this.shakehandBufferPtr=0),this.exceptionCb!=null&&Module.removeFunction(this.exceptionCb),this.connected=!1,logger("Logout successfully",this.getLogger,"info")}async ConnectDatabase(e){try{if(await promisify(connectDatabase)({client:this,databaseName:e}),!this.databaseConnected.has(e)){const o=new SyncDatabase(e,this);this.databaseConnected.set(e,o)}}catch(o){throw logger("Database connection failed by the error : ".concat(o),this.getLogger,"error"),new Error("Database connection failed by the error: ".concat(o))}}async DisConnectDatabase(e){if(this.databaseConnected.has(e))try{await promisify(disconnectDatabase)({client:this,databaseName:e}),this.databaseConnected.delete(e)}catch(o){logger("Database disconnection failed by the error : ".concat(o),this.getLogger,"error")}}Database(e){return this.databaseConnected.has(e)?this.databaseConnected.get(e):null}SetTicket(e,o){this.tickets.set(e,o);const[d,I]=getPtrStringList(Array.from(this.tickets.values()));Module._sync_client_renew_tickets(this.clientPtr,d,this.tickets.size),this.connected&&tickLoop(this),releasePtr(d);for(let f=0;f=0)return d.countOnly?[null,I.count,I.more]:d.keysOnly?[Array.from(I.docs.keys()).sort(),I.count,I.more]:[new Map([...I.docs].sort()),I.count,I.more];throw new Error("The query doc operation is failed")}Shakehand(){if(!this.manualShakehand)throw new Error("The manualShakehand is set to false for this client.");shakehandOnce(this)}Tick(){if(!this.manualTick)throw new Error("The manualTick is set to false for this client.");tickLoop(this)}SetConnectionTimeout(e){if(!isInteger(e)||e<=0)throw new TypeError("The seconds is expected to be a positive integer.");Module._sync_client_set_connection_timeout(this.clientPtr,e)}GetConnectionState(){return this.connected}ExceptionCallback(){return this.exceptionCb!=null&&Module.removeFunction(this.exceptionCb),exceptionCallback(this),this.exceptionChan}EnableDynamicReadable(){Module._sync_client_enable_dynamic_readable(this.clientPtr)}Synced(){return Module._sync_client_synced(this.clientPtr)}}class SyncConfig{constructor(e,o,d,I,f,S){let v=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,L=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null;if(!isInteger(o))throw new TypeError("The logLevel is expected to be an int, but a double was got.");if(!isInteger(d))throw new TypeError("The shakehandInterval is expected to be an integer, but a double was got.");this.appId=e,this.logLevel=o,this.shakehandInterval=d,this.manualShakehand=I,this.manualTick=f,this.uuidPrefix=S,this.getLogger=v,this.reuseConn=L}}class QueryOption{constructor(e,o,d,I,f){let S=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],v=arguments.length>6&&arguments[6]!==void 0&&arguments[6],L=arguments.length>7&&arguments[7]!==void 0&&arguments[7];if(!isInteger(f)||f<0)throw new TypeError("The limit is expected to be an int greater than or equal to zero, but a double or a negative int was got.");this.start=e,this.end=o,this.keysOnly=d,this.countOnly=I,this.limit=f,this.startIncluded=S,this.endIncluded=v,this.ignoreExpired=L}}async function CreateClient(n){return await initWasm(n.getLogger),typeof process=="object"?setBrowser(!1):typeof window=="object"&&setBrowser(!0),new SyncClient(n)}class VirtualSyncSocket{get env(){var e;return(e=this.getSockets()[0])===null||e===void 0?void 0:e.env}constructor(e){_defineProperty$1(this,"getSockets",void 0),_defineProperty$1(this,"internalEmitter",new eventsExports.EventEmitter),this.getSockets=e,this.internalEmitter.setMaxListeners(512)}sendPacket(e){var o,d;(o=this.getSockets()[0])===null||o===void 0||(d=o.sendSyncPacket)===null||d===void 0||d.call(o,e)}}class RTMSession extends EventBase{get syncTicket(){return this._syncTicket}get endLogin$(){return this.connectionController.connection.endLogin$}constructor(e,o,d,I,f){super(o,"RTMSession"),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"connectionController",void 0),_defineProperty$1(this,"syncClient",void 0),_defineProperty$1(this,"virtualSocket",void 0),_defineProperty$1(this,"_syncTicket",void 0),_defineProperty$1(this,"dbObj",void 0),_defineProperty$1(this,"cacheCrdtState",void 0),_defineProperty$1(this,"exceptionCallback",void 0),this.context=e,this.cacheCrdtState=I,this.exceptionCallback=f,this.connectionController=new ConnectionController(e,d,o,this.manualShakeHand.bind(this),this._initSync.bind(this)),this.connectionController.on("syncTicketUpdated",S=>{this.updateSyncTicket(S)}),this.connectionController.on("syncConnected",()=>{this.emitSyncConnected()}),this.connectionController.on("syncDisconnected",S=>{this.warn("virtual socket disconnected, reason: %s",S),this.emitSyncDisconnected(),this.connectionController.syncEstablishState=SyncEstablishState.DISCONNECTED}),this.connectionController.on("syncPacket",S=>{this.handlePacket(S)})}release(){var e;this.stopLogin(),this.connectionController.release(),this.removeAllListeners(),(e=this.virtualSocket)===null||e===void 0||e.internalEmitter.removeAllListeners("connected"),this.syncClient=void 0,this.virtualSocket=void 0,this._syncTicket=void 0,this.dbObj=void 0}getOtherEnvTicket(e){return this.connectionController.getOtherEnvTicket(e)}sendOperationPacketUseOneEnv(e,o,d,I){this.connectionController.sendOperationPacketUseOneEnv(e,o,d,I)}sendOperationPacket(e,o,d){this.connectionController.sendOperationPacket(e,o,d)}onOperationPacket(e){return this.connectionController.onOperationPacket(e)}recoverEdges4RenewToken(){this.connectionController.connection.apClient.recoverEdges4RenewToken()}clearEdges4RenewToken(){this.connectionController.connection.apClient.clearEdges4RenewToken()}genApEdgeInfo$(e){return this.connectionController.connection.apClient.genApEdgeInfo$(e)}updateRegTicket(e){this.connectionController.updateRegTicket(e)}cancelLogin(){this.connectionController.emit("cancel-login"),this.connectionController.loginSubject$.next(),this.stopLogin()}async logoutRegistrar(e){return await this.connectionController.logoutHandler(e)}loginHandler(){return this.connectionController.loginHandler()}stopLogin(){this.connectionController.connection.apClient.apFinish$.next(void 0),this.connectionController.connection.stopLogin()}resetLinkIntervals(){this.connectionController.resetLinkIntervals()}getVirtualSyncSocket(){return this.connectionController.getVirtualSyncSocket()}notifyNetworkChange(e){this.connectionController.notifyNetworkChange(e)}notifyLoginInDisconnected(){this.connectionController.notifyLoginInDisconnected()}validateSyncConnected(e){if(this.connectionController.syncEstablishState!==SyncEstablishState.CONNECTED){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_NOT_CONNECTED);throw new RtmUnavailableError(e,[d],o)}}updateSyncTicket(e){const{ticket:o}=e;this._syncTicket=o}handlePacket(e){var o;const d=e.length,I=getSyncPacketUri(e);var f;I!==102&&this.log("env_%s: received packet, uri: %d, length: %d",(f=this.virtualSocket)===null||f===void 0?void 0:f.env,I,d),(o=this.virtualSocket)===null||o===void 0||o.internalEmitter.emit("received-packet",e)}emitSyncConnected(){var e;(e=this.virtualSocket)===null||e===void 0||e.internalEmitter.emit("connected")}emitSyncDisconnected(){var e;(e=this.virtualSocket)===null||e===void 0||e.internalEmitter.emit("disconnected")}async _initSync(){if(this.context.disablePresence)return;if(this.log("start logging sync..."),this.syncClient!==void 0)return this.log("not firstInit"),await this.connectDatabase(),this.cacheCrdtState(),this.manualShakeHand(),void this.emitSyncConnected();let e=0;switch(this.context.rtmConfig.logLevel){case"debug":e=0;break;case"info":e=1;break;case"warn":e=2;break;default:e=3}const o=new VirtualSyncSocket(this.getVirtualSyncSocket.bind(this));this.virtualSocket=o,o.internalEmitter.on("connected",()=>{this.log("virtual socket connected, env: %d",o.env)});const d=new SyncConfig(this.context.appId,e,3e3,!0,!0,this.context.uid,()=>({handleDebugLog:this.log,handleInfoLog:this.info,handleWarnLog:this.warn,handleErrorLog:this.logError}),()=>o);try{var I,f;const S=this.context.heartbeatInterval+((I=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&I!==void 0?I:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT),v=await CreateClient(d);this.log("create sync client success");const L=v.ExceptionCallback();L==null||L.addListener("exception",async x=>{let[F,Y]=x;if(this.logError("exception info: %o",{db:F,coll:Y}),F!==PRESENCE_DATABASE)return;const{prefixChannelName:j=""}=extractPrefixChannelName(Y),W=this.context.getChannelLastRealSubOrJoinOptions(j);this.exceptionCallback(j,W)}),v.SetConnectionTimeout(S/1e3),this.emitSyncConnected(),this.syncClient=v,v.SetTicket("rtm",(f=this._syncTicket)!==null&&f!==void 0?f:this.context.appId),await this.connectDatabase()}catch(S){throw this.logError("init sync error: ".concat(S)),S}}async connectDatabase(){var e,o;if(this.context.disablePresence)return;this.sendTick(),this.log("send tick success, will connect sync database"),this.log("".concat(SYNC_RPC_START,": syncClient connectDatabase")),await timeoutPromise(this==null||(e=this.syncClient)===null||e===void 0?void 0:e.ConnectDatabase(PRESENCE_DATABASE),DEFAULT_RPC_TIMEOUT_TIME,"connectDatabase",RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT),this.log("".concat(SYNC_RPC_END,": syncClient connectDatabase")),this.sendTick();const d=this==null||(o=this.syncClient)===null||o===void 0?void 0:o.Database(PRESENCE_DATABASE);this.dbObj=d,this.connectionController.cancelSyncTimer()}renewSyncTicket(e){if(this.context.disablePresence)return;const o=OperationName.renewToken;try{var d;this.log("".concat(SYNC_RPC_START,": ").concat(o)),(d=this.syncClient)===null||d===void 0||d.SetTicket("rtm",e),this.sendTick(),this.log("".concat(SYNC_RPC_END,": ").concat(o))}catch(I){this.logError("".concat(SYNC_RPC_END,": ").concat(o," by rpc failure. error is ").concat(I))}return!0}leaveColl(e){var o;const d=this.getChannelCollName(e);(o=this.dbObj)===null||o===void 0||o.DestroyCollection(d),this.sendTick()}delChannelDoc(e){try{var o;const d=this.getChannelCollName(e),I=this.getColl(e,!0,"delChannelDoc");I&&((o=this.dbObj)===null||o===void 0||o.CancelAutoKeepalive(d,this.context.uid)),I==null||I.DelDoc(this.context.uid),this.sendTick(),this.log("Delete channel(".concat(replaceRangeWithAsterisk(e),") document succeed."))}catch(d){this.logError("Delete channel document failed, error: %o",d)}}async createColl(e,o,d){var I;return(I=this.dbObj)===null||I===void 0?void 0:I.CreateCollection(this.getChannelCollName(e),o,d)}async logoutSyncHandler(){var e;if(!this.context.disablePresence){this.log("".concat(SYNC_RPC_START,": disconnectDatabase, establishState: %s"),this.connectionController.syncEstablishState);try{var o;this.connectionController.syncEstablishState===SyncEstablishState.CONNECTED&&await timeoutPromise((o=this.syncClient)===null||o===void 0?void 0:o.DisConnectDatabase(PRESENCE_DATABASE),DEFAULT_RPC_TIMEOUT_TIME,OperationName.logout,0)}catch{this.warn("disconnectDatabase timeout")}this.log("".concat(SYNC_RPC_END,": disconnectDatabase")),(e=this.syncClient)===null||e===void 0||e.Logout(),this.sendTick(),this.log("virtual socket disconnected, reason: logout"),this.emitSyncDisconnected()}}async requestRpc(e,o){var d;if(this.context.disablePresence)return;const I=new QueryOption(o.start,o.end,o.keysOnly,o.countOnly,o.limit,o.startIncluded,o.endIncluded,o.ignoreExpired);return(d=this.syncClient)===null||d===void 0?void 0:d.QueryDoc(PRESENCE_DATABASE,e===K_GLOBAL_PRESENCE_COLLECTION?K_GLOBAL_PRESENCE_COLLECTION:this.getChannelCollName(e),I)}getColl(e){var o;let d=arguments.length>1&&arguments[1]!==void 0&&arguments[1],I=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";const f=this.getChannelCollName(e),S=(o=this.dbObj)===null||o===void 0?void 0:o.Coll(f);return S===null&&d&&this.warn("coll(".concat(f,") is null in ").concat(I,".")),S||null}getChannelCollName(e){return getChannelQueryString(this.context.vid,e)}manualShakeHand(){var e;this.context.disablePresence||this.getSyncConnected()&&((e=this.syncClient)===null||e===void 0||e.Shakehand())}sendTick(){var e;this.context.disablePresence||this.getSyncConnected()&&((e=this.syncClient)===null||e===void 0||e.Tick())}getSynced(){var e;if(!this.context.disablePresence)return(e=this.syncClient)===null||e===void 0?void 0:e.Synced()}getSyncConnected(){var e;if(!this.context.disablePresence)return(e=this.syncClient)===null||e===void 0?void 0:e.GetConnectionState()}isSyncEstablished(){return this.connectionController.syncEstablishState===SyncEstablishState.CONNECTED}getDocByUid(e,o){const{funcName:d="",uid:I=this.context.uid}=o,f=this.getColl(e,!0,d);return f==null?void 0:f.Doc(I)}setAutoKeepalive(e){var o;const d=this.getChannelCollName(e);(o=this.dbObj)===null||o===void 0||o.SetAutoKeepalive(d,this.context.uid,this.context.rtmConfig.presenceTimeout)}updateLoggedOut(e){this.connectionController.updateLoggedOut(e)}}function genGetRTMSession(n){return()=>{const e=n();if(!e){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError("Client is not logged in. Cannot do the operation",[d],o)}return e}}class LocalTopic extends EventBase{constructor(e,o,d,I){super(o,"LocalTopic"),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_topicName",void 0),_defineProperty$1(this,"_localDatachannel",void 0),this._context=e,this._topicName=d,this._localDatachannel=I}getDataChannel(){return this._localDatachannel}async publishTopicMessage(e,o,d){const I=this._localDatachannel,f=this._topicName;if(!I){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_JOINED);throw new RtmUnavailableError(e,[re],W)}if(I.readyState!=="open"){this.log("send topic(%s) message failed. readyState of datachannel is ".concat(I.readyState),f);const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_FAILED);throw new RtmUnavailableError(e,[re],W)}const{initEncryption:S,iv:v,key:L,keyLength:x}=this._context.encryptionInfo,F=S,Y=typeof o=="string"?new TextEncoder().encode(o):o,j=Y.byteLength;try{const W=F?encrypt(Y,L,v,x):Y,re=typeof o=="string"?1:0;I.send(this._encodeMessage(W,j,F,re,d==null?void 0:d.customType))}catch{const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_ENCRYPT_MESSAGE_FAILED);throw new RtmUnavailableError(e,[ee],re)}}_encodeMessage(e,o,d,I,f){return StreamMessageProtocol.encode(_objectSpread2({messageType:I,payload:e,encrypted:d,payloadLength:o},f?{customType:f}:{})).finish()}}class RemoteTopic extends EventBase{constructor(e,o,d,I,f){super(o,"RemoteTopic"),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_topicName",void 0),_defineProperty$1(this,"_channelName",void 0),_defineProperty$1(this,"_emitTopicMessage",void 0),_defineProperty$1(this,"_internalEmitter",new EventEmitter$1),_defineProperty$1(this,"_users",new Map),this._context=e,this._topicName=d,this._channelName=I,this._emitTopicMessage=f}addUserWithDc(e,o){this._users.set(e,o)}addUserWithoutDc(e,o){this._users.set(e,{subscribedState:"PRE_SUBSCRIBE",meta:"",id:0,user:o})}updateUserDatachannelInfo(e,o){if(this._users.has(e)){const d=this._users.get(e);if(d){const{subscribedState:I,datachannel:f}=d,{meta:S,id:v,user:L}=o;this._users.set(e,{meta:S,id:v,subscribedState:I,datachannel:f,user:L})}}else this.warn("update user datachannel info failure, not pre_subscribe the user in the topic.")}removeUser(e){this._users.delete(e),this._internalEmitter.emit("unsubscribeTopicMessage",{topicName:this._topicName,userId:e})}removeUserDatachannel(e){const o=this._users.get(e);o&&this._users.set(e,_objectSpread2(_objectSpread2({},o),{},{datachannel:void 0}))}handleSubscription(e,o){this._fillUserDatachannel(o,e),this._addMessageEvent(e,o),this._updateSubscribeState(o,"SUBSCRIBED")}handleUnsubscription(e){this._internalEmitter.emit("unsubscribeTopicMessage",{topicName:this._topicName,userId:e}),this._updateSubscribeState(e,"UNSUBSCRIBE")}getUsers(){return this._users}getSubscribedUsers(){return Array.from(this._users.keys()).filter(e=>{var o;return((o=this._users.get(e))===null||o===void 0?void 0:o.subscribedState)==="SUBSCRIBED"})}getPreSubscribedUsers(){return Array.from(this._users.keys()).filter(e=>{var o;return((o=this._users.get(e))===null||o===void 0?void 0:o.subscribedState)==="PRE_SUBSCRIBE"})}getAllSubscribedUserCount(){return this.getSubscribedUsers().length+this.getPreSubscribedUsers().length}release(){this._internalEmitter.removeAllListeners()}_updateSubscribeState(e,o){const d=this._users.get(e);if(d){const{subscribedState:I,id:f,meta:S,datachannel:v,user:L}=d;let x=!1;switch(I){case"PRE_SUBSCRIBE":o==="UNSUBSCRIBE"?this.removeUser(e):o==="SUBSCRIBED"&&(x=!0);break;case"SUBSCRIBED":(o==="UNSUBSCRIBE"||o==="PRE_SUBSCRIBE")&&(x=!0);break;case"UNSUBSCRIBE":x=!0}x&&this._users.set(e,{subscribedState:o,id:f,meta:S,datachannel:v,user:L})}}_fillUserDatachannel(e,o){const d=this._users.get(e);d&&this._users.set(e,_objectSpread2(_objectSpread2({},d),{},{datachannel:o}))}_decodeMessage(e){return StreamMessageProtocol.decode(e)}_addMessageEvent(e,o){const d=f=>{var S;if(((S=this._users.get(o))===null||S===void 0?void 0:S.subscribedState)!=="SUBSCRIBED")return void this.warn("Received a message from %s(topic: %s), but not subscribed.",o,this._topicName);const v=this._decodeMessage(new Uint8Array(f)),{encrypted:L,payloadLength:x,messageType:F,payload:Y,customType:j}=v,{key:W,iv:re,keyLength:ee}=this._context.encryptionInfo;if(L&&!W)return void this.warn("Received a message with encryption but the key is not ready yet.");if(!L&&W)return void this.warn("Received a message without encryption but the key is ready.");let he;he=F===1?new TextDecoder().decode(L?decrypt(Y,W,re,ee).slice(0,x):Y):L?decrypt(Y,W,re,ee).slice(0,x):Y,this._emitTopicMessage({channelName:this._channelName,channelType:"STREAM",topicName:this._topicName,message:he,publisher:o,messageType:F===1?"STRING":"BINARY",customType:j,timestamp:getUTCTimeBaseREG(this._context.offsetTime)})};e==null||e.on("open",()=>{this.log("".concat(this._channelName,"(").concat(this._topicName,") remote dc opened."))}),e==null||e.on("close",()=>{this.warn("".concat(this._channelName,"(").concat(this._topicName,") remote dc closed."))}),e==null||e.on("error",f=>{this.logError("error occurs in ".concat(this._channelName,"(").concat(this._topicName,") remote dc. error is %o"),f)}),e.on("message",d),this.log("".concat(this._channelName,"(").concat(this._topicName,") msg event added"));const I=f=>{let{userId:S,topicName:v}=f;S===o&&v===this._topicName&&(e.off("message",d),this._internalEmitter.removeListener("unsubscribeTopicMessage",I))};this._internalEmitter.on("unsubscribeTopicMessage",I)}}class ApiRateLimiter{constructor(){_defineProperty$1(this,"operationsTimeCache",{})}canMakeOperation(e,o){var d,I;let f=(d=getParameter("API_RATE_LIMIT").get(e))!==null&&d!==void 0?d:0;o!=null&&o.times&&(f=o.times);const S=Date.now();if(this.operationsTimeCache[e]||(this.operationsTimeCache[e]=[]),this.operationsTimeCache[e]=this.operationsTimeCache[e].filter(F=>F>S-API_QPS_SECOND),this.operationsTimeCache[e].length{if(this.log("rtc state: pre(%s), now(%s), reason: %s.",re,W,ee),re==="RECONNECTING"&&this._controlReconnectTimer&&clearTimeout(this._controlReconnectTimer),this._isJoinedChannel&&W==="DISCONNECTED"){if(this._firstSnapshot4topic=!0,this._privatePermitUseMessageChn){try{await this._unsubLockAMeta(this._prefixChannelName)}catch{}ee==="LEAVE"||ee==="UID_BANNED"?this._absent(this._prefixChannelName):this._absent(this._prefixChannelName,!1),this._context.deleteChannelOptionsCache(this._prefixChannelName)}if(this._handleLeaveEffects(),ee&&ee!=="LEAVE"){this.warn("streamChannel connection state change to DISCONNECTED, reason: %s",ee);let ue=LinkStateChangeReasonDescription.KICKED_OUT_BY_SERVER,Ee="KICKED_OUT_BY_SERVER";ee===AgoraRTC.ConnectionDisconnectedReason.TOKEN_EXPIRE&&(ue=LinkStateChangeReasonDescription.TOKEN_EXPIRED,Ee="TOKEN_EXPIRED"),this._updateLinkState("FAILED","SERVER_REJECT",Ee,ue)}}W==="RECONNECTING"&&(this._updateLinkState("CONNECTING","AUTO_RECONNECT","AUTO_RECONNECT",LinkStateChangeReasonDescription.AUTO_RECONNECT),this._controlReconnectTimer=setTimeout(async()=>{this.warn("streamChannel reconnect timeout, force leave."),await this.leave()},RECONNECT_STREAM_CHANNEL_TIMEOUT)),W==="CONNECTED"&&this._isJoinedChannel&&this._updateLinkState("CONNECTED","RECONNECTED","RECONNECT_SUCCESS",LinkStateChangeReasonDescription.RECONNECT_SUCCESS);const he={channelName:this._channelName,state:W,reason:ee??W==="CONNECTED"?"OK":"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",he)}),_defineProperty$1(this,"_handleUserPublishedList",W=>{const re=[];if(W.concat(this._rtcClient.remoteUsers).forEach(he=>{re.find(ue=>ue.uid.toString()===he.uid.toString())||re.push(he)}),!this._firstSnapshot4topic)return void this._handleUpdatedTopicsInOffline(re);const ee=[];if(re.forEach(he=>{var ue;(ue=he.dataChannels)===null||ue===void 0||ue.forEach(Ee=>{Ee.getConfig()&&ee.push({user:he,config:Ee.getConfig(),dc:Ee})})}),this._firstSnapshot4topic=!1,ee.length===0){const he={eventType:"SNAPSHOT",channelName:this._channelName,publisher:"",topicInfos:[],totalTopics:0,timestamp:getUTCTimeBaseREG(this._context.offsetTime)};return this._emitRtmEvent("topic",he),void this._reportTopicUpdate("SNAPSHOT",{})}this._handleReceivedDcs(ee,"","SNAPSHOT")}),_defineProperty$1(this,"_handleUserPublished",(W,re,ee)=>{var he;if(re!=="datachannel"||ee===void 0)return;const ue=(he=W.dataChannels)===null||he===void 0?void 0:he.find(Ee=>Ee.id===ee.id);this._handleReceivedDcs([{user:W,config:ee,dc:ue}],W.uid.toString(),"REMOTE_JOIN")}),_defineProperty$1(this,"_handleUserUnPublished",(W,re,ee)=>{if(re!=="datachannel")return;const he=ee==null?void 0:ee.metadata;if(he===void 0)return;const ue=this._decodeMetadata(he),Ee=ue.topic,_e=ue.metadata;this._emitTopicLeft(Ee,W,_e)}),_defineProperty$1(this,"_handleTokenPrivilegeWillExpire",()=>{this._emitRtmEvent("tokenPrivilegeWillExpire",this._channelName)}),_defineProperty$1(this,"_handleUserJoined",W=>{const re=this._prefixChannelName;this._context.internalEmitter.emit("presence-user-joined",{channelName:re,userId:W.uid.toString()})}),_defineProperty$1(this,"_handlerUserLeft",W=>{const re=this._prefixChannelName;this._context.internalEmitter.emit("presence-user-left",{channelName:re,userId:W.uid.toString()})}),_defineProperty$1(this,"_emitTopicMessage",W=>{this._emitRtmEvent("message",W)}),_defineProperty$1(this,"_emitTopicLeft",(W,re,ee)=>{const he=re.uid.toString(),ue=this._getInitTopicEventData("REMOTE_LEAVE",this._channelName,he,1);ue.topicInfos.push({publishers:[{publisherUserId:he,publisherMeta:ee}],topicName:W,totalPublisher:1}),this._emitRtmEvent("topic",ue),this._reportTopicUpdate("REMOTE_LEAVE",{[W]:{publishers:[{publisherUserId:he,publisherMeta:ee}],publisherCount:1}});const Ee=this._remoteTopics.get(W);Ee!=null&&Ee.getSubscribedUsers().includes(he)?Ee==null||Ee.addUserWithoutDc(he,re):this._deleteRemoteDc(W,he)}),(Y=e.rtmConfig.logLevel)!==null&&Y!==void 0?Y:"none"){case"debug":AgoraRTC.setLogLevel(0);break;case"info":AgoraRTC.setLogLevel(1);break;case"warn":AgoraRTC.setLogLevel(2);break;case"none":AgoraRTC.setLogLevel(4);break;default:AgoraRTC.setLogLevel(3)}this._channelName=d.channelName,this._prefixChannelName=getChannelNameByType(this._channelName,"STREAM"),this._context=e,e.rtmConfig.useStringUserId?this._userId4RTC=e.userId:this._userId4RTC=Number(e.userId),this._emitRtmEvent=I,this._getStreamChannelList=f,this._validateRtmConnection=function(W){S(W,arguments.length>1&&arguments[1]!==void 0&&arguments[1])},this._getRTMSession=genGetRTMSession(v),this.setMaxListeners(512),this._updateOptionsReJoinOrSub=L,this._unsubLockAMeta=x,this._absent=F,e.rtmConfig.privateConfig&&!e.rtmConfig.privateConfig.serviceType.includes("MESSAGE")||(this._privatePermitUseMessageChn=!0),AgoraRTC.setParameter("ENABLE_DATASTREAM_2",!0),AgoraRTC.setParameter("DATASTREAM_MAX_RETRANSMITS",0),AgoraRTC.setParameter("AP_RTM",!0),this._context.rtmConfig.logUpload&&AgoraRTC.setParameter("UPLOAD_LOG",!0);const j=[];this._isReuseRtcClient=j.length>0,this.log("Create streamChannel, isReuseRtcClient: ".concat(this._isReuseRtcClient)),this._rtcClient=this._isReuseRtcClient?j[0]:AgoraRTC.createClient({codec:"vp8",mode:"rtc"}),this._rtcClientSid=this._rtcClient._sessionId,this.info("rtcClientSid: ".concat(this._rtcClientSid)),this._rtcClient.setRTMConfig({apRTM:!0,rtmFlag:3})}async leaveVosWeb(){this._isJoinedChannel&&(this.removeAllListeners(),await this.leave(!1))}async join(e){var o;const d=getParameter("AREA_CONFIG");if(d){const{areaCodes:Fe,excludedArea:Ve}=d;AgoraRTC.setArea({areaCode:Fe,excludedArea:Ve})}const I=OperationName.join,f=linkStateCodeMap[this._linkState],{currentResolve:S}=await this._context.operationControl.awaitPromise(I+this._prefixChannelName);this._privatePermitUseMessageChn||this._context.initReportEvent();let v=(o=this._rtcClient._sessionId)!==null&&o!==void 0?o:"";try{if(this._linkState==="CONNECTING"){const{code:Ve,reason:Ge}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_DUPLICATE_OPERATION);throw new RtmUnavailableError(I,[Ge],Ve)}const Fe={timestamp:0};this._isJoinedChannel||this._updateLinkState("CONNECTING","JOIN",this._linkState==="IDLE"?"JOIN":"REJOIN",this._linkState==="IDLE"?LinkStateChangeReasonDescription.JOIN:LinkStateChangeReasonDescription.REJOIN);try{var L,x,F,Y;this._updatePrivateSettings(),this._apiRateLimit.canMakeOperation("join"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(I),this._validateSessionExist(I),this._validateJoinOptions(e,I)),(L=e)!==null&&L!==void 0&&L.token&&validateToken(e.token,this._context.appId,I,Ge=>{this.warn(Ge)}),((x=e)===null||x===void 0?void 0:x.token)!==""&&((F=e)===null||F===void 0?void 0:F.token)!==void 0||(e=_objectSpread2(_objectSpread2({},e),{},{token:this._context.appId}));const Ve=(Y=getParameter("STREAM_CHANNEL_COUNT"))!==null&&Y!==void 0?Y:SUB_STREAM_CHANNEL_LIMITATION;if(this._getStreamChannelList().length>=Ve){this.log("exceed join channel limit ".concat(Ve));const{code:Ge,reason:He}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INSTANCE_EXCEED_LIMITATION);throw new RtmUnavailableError(I,[He],Ge)}}catch(Ve){var j;this.logError(Ve);const{reason:Ge}=Ve;throw this._handleJoinFailedState((j=Ve==null?void 0:Ve.errorCode)!==null&&j!==void 0?j:Ge),Ve}try{if(!this._isJoinedChannel){this._addAllRtcListeners();let Ve=!1;const Ge=AgoraRTC.__CLIENT_LIST__.map(He=>"channel(".concat(He.channelName,"), state: ").concat(He.connectionState,"}"));this.log("FusionSDK: ".concat(FUSION,". clientList of rtc: ").concat(Ge));try{var W;this.log("Join streamChannel, isReuseRtcClient: ".concat(Ve)),this._context.internalEmitter.emit("stream-channel-joined",this._channelName);const He=this._rtcClient.connectionState;if(!(FUSION&&Ve)){if(!(He==="CONNECTED"||He==="CONNECTING"||He==="RECONNECTING")){var re,ee,he;const At=(re=e)===null||re===void 0?void 0:re.token;this._context.rtmConfig.cloudProxy&&((ee=(he=this._context.rtmConfig.privateConfig)===null||he===void 0||(he=he.accessPointHosts)===null||he===void 0?void 0:he.length)!==null&&ee!==void 0?ee:0)===0&&this._rtcClient.startProxyServer(5),this._firstSnapshot4topic=!0,await timeoutPromise(this._rtcClient.join(this._context.appId,this._channelName,At||null,this._context.userId),JOIN_TIMEOUT,I,RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED,!0)}}v=(W=this._rtcClient._sessionId)!==null&&W!==void 0?W:""}catch(He){var ue,Ee;if(v=(ue=this._rtcClient._sessionId)!==null&&ue!==void 0?ue:"",this._context.internalEmitter.emit("stream-channel-leaved",this._channelName),await this._validCancelJoin(I),isRtmError(He))throw isTimeout(He)&&await this._rtcClient.leave(),He;this.logError(He);const At=(Ee=He==null?void 0:He.code)!==null&&Ee!==void 0?Ee:AgoraRTCErrorCode.UNEXPECTED_ERROR;if(At===AgoraRTCErrorCode.CAN_NOT_GET_GATEWAY_SERVER){const{code:rt,reason:ye}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmUnavailableError(I,[ye],rt)}if(At===AgoraRTCErrorCode.OPERATION_ABORTED){const{code:rt,reason:ye}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_CANCELED);throw new RtmUnavailableError(I,[ye],rt)}if(At===AgoraRTCErrorCode.UNEXPECTED_RESPONSE&&He.message.includes("DATASTREAM2_NOT_AVAILABLE")){const{code:rt,reason:ye}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_AVAILABLE);throw new RtmUnavailableError(I,[ye],rt)}const{code:Bt,reason:Tt}=convertDataChannelJoinCodeToSdkCode(At,RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED);throw new RtmUnavailableError(I,[Tt+"Join channel failure, server code is ".concat(At)],Bt)}await this._validCancelJoin(I),this._updateLinkState("CONNECTED","JOIN","JOIN_SUCCESS",LinkStateChangeReasonDescription.JOIN_SUCCESS),this._isJoinedChannel=!0}return this._privatePermitUseMessageChn&&(this.log("stream channel joined success, start sub other options"),await this._subscribe(e)),this._joinedAndSubscribed=!0,S(Fe),Fe}catch(Ve){var _e;S(!1);const{reason:Ge}=Ve;throw this._joinedAndSubscribed===!1&&this._handleJoinFailedState((_e=Ve==null?void 0:Ve.errorCode)!==null&&_e!==void 0?_e:Ge),Ve}}catch(Fe){throw S(void 0),Fe}finally{var De;const{sid:Fe,elapse:Ve,opid:Ge}=this._getSidAndElapse4Report(),He=this._privatePermitUseMessageChn?(De=this._context)===null||De===void 0?void 0:De.getNewJoinFlag(handleJoinOptionsAsDefault(e)):0;this._context.addReportEvents("StreamChnJoin",{lts:getReportLts(),userId:this._context.uid,elapse:Ve,sid:Fe,seq:Long$1.fromNumber(Ge),vid:Long$1.fromValue(this._context.vid||"0"),channelName:this._channelName,joinOptionsFlag:He,rtcSid:v,preState:f})}}async leave(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];const o=OperationName.leave,{sid:d,elapse:I,opid:f}=this._getSidAndElapse4Report();this._context.addReportEvents("StreamChnLeave",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:d,seq:Long$1.fromNumber(f),userId:this._context.uid,elapse:I,channelName:this._channelName,preState:linkStateCodeMap[this._linkState]}),this._privatePermitUseMessageChn&&e&&(this._validateRtmConnection(o),this._validateSessionExist(o));const S={timestamp:0};if(this._linkState==="FAILED")return this._updateLinkState("IDLE","LEAVE","LEAVE",LinkStateChangeReasonDescription.LEAVE),this._localLeave(),S;if(this._linkState==="CONNECTING")return await this._rtcClient.leave(),this._updateLinkState("IDLE","LEAVE","LEAVE",LinkStateChangeReasonDescription.LEAVE),this._localLeave(),S;let v;this._checkIsJoinedChannel(o);const L=new Promise((F,Y)=>{v=F});this.log("Leave streamChannel, isReuseRtcClient: ".concat(this._isReuseRtcClient));const x=[];try{const F=this._isReuseRtcClient&&FUSION,Y=(await Promise.allSettled([F?this._fusionSdkLeave():this._rtcClient.leave(),...x.map(j=>this._rtcClient.unpublish(j)),...this._isReuseRtcClient&&FUSION&&this._privatePermitUseMessageChn?[this._unsubLockAMeta(this._prefixChannelName),this._handleLeaveEffects(),()=>{this._firstSnapshot4topic=!0}]:[]])).find(j=>j.status==="rejected");if(Y)throw Y.reason;this._context.rtmConfig.cloudProxy&&!F&&this._rtcClient.stopProxyServer(),v(S)}catch(F){if(this.logError(F),isRtmError(F))throw F;const Y=(F==null?void 0:F.code)||AgoraRTCErrorCode.UNEXPECTED_ERROR,{code:j,reason:W}=convertDataChannelJoinCodeToSdkCode(Y,RTMErrorCode.RTM_ERROR_CHANNEL_LEAVE_FAILED);throw new RtmUnavailableError(o,[W+"Leave channel failure, server code is ".concat(Y)],j)}finally{this._context.deleteChannelOptionsCache(this._prefixChannelName),this._updateLinkState("IDLE","LEAVE","LEAVE",LinkStateChangeReasonDescription.LEAVE),this._privatePermitUseMessageChn||this._context.forceReportEvents()}return L}async renewStreamChannelToken(e){const o=OperationName.renewToken;this._checkIsJoinedChannel(o);try{await this._rtcClient.renewToken(e)}catch(I){var d;this.logError(I);const f=(d=I==null?void 0:I.code)!==null&&d!==void 0?d:AgoraRTCErrorCode.UNEXPECTED_ERROR,{code:S,reason:v}=convertDataChannelJoinCodeToSdkCode(f,RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmUnavailableError(o,[v+"RenewToken of streamChannel failure, server code is ".concat(f)],S)}}async joinTopic(e,o){const d=OperationName.joinTopic,I={timestamp:0,topicName:e};let f=0;const S=!1,v=(()=>{const Y=Array.from(this._localTopics.values()).filter(j=>j!==void 0).filter(j=>(j==null?void 0:j.getDataChannel())!==void 0).map(j=>{var W;return j==null||(W=j.getDataChannel())===null||W===void 0?void 0:W.getConfig().id});for(let j=0;jW===j)===-1)return j;return-1})();try{var L;if(this._apiRateLimit.canMakeOperation("joinTopic"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(d),this._validateSessionExist(d)),validateTopicName(e,d),this._checkIsJoinedChannel(d),this._localTopics.has(e))return this.log("topic(%s) already exists",e),I;if(this._localTopics.size>=JOIN_TOPIC_LIMITATION){this.log("exceed create topic limit");const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_EXCEED_TOPIC_LIMITATION);throw new RtmUnavailableError(d,[re],W)}o={meta:null};const Y=TopicMetadata.encode({metadata:(L=o)===null||L===void 0?void 0:L.meta,topic:e}).finish();this._localTopics.set(e,void 0);const j=await fromPromise(this._rtcClient.publish({id:v,ordered:S,metadata:String.fromCharCode(...Y)}),W=>W);if(j.isErr()){var x;this._localTopics.delete(e);const W=j==null||(x=j.error)===null||x===void 0?void 0:x.code;throw new RtmUnavailableError(d,["JoinTopic failure, code of rtcClient.publish api is ".concat(W)],RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_TOPIC_FAILED)}{const W=j.value,re=new LocalTopic(this._context,this.logger,e,W);W==null||W.on("open",()=>{this.log("".concat(this._channelName,"(").concat(e,") local dc opened."))}),W==null||W.on("close",()=>{this.warn("".concat(this._channelName,"(").concat(e,") local dc closed."))}),W==null||W.on("error",ee=>{this.logError("error occurs in ".concat(this._channelName,"(").concat(e,") local dc. error is %o"),ee)}),this._localTopics.set(e,re)}}catch(Y){var F;throw Y instanceof RTMBaseError&&(f=(F=Y.errorCode)!==null&&F!==void 0?F:0),Y}finally{const{sid:Y,elapse:j,opid:W}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicJoin",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:Y,userId:this._context.uid,elapse:j,channelName:this._channelName,topicName:e,qos:Number(S),priority:0,syncWithMedia:0,streamId:v,errorCode:Long$1.fromNumber(f),seq:Long$1.fromNumber(W)})}return I}async publishTopicMessage(e,o,d){var I;const f=OperationName.publishTopicMessage;this._apiRateLimit.canMakeOperation("publishTopicMsg"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(f),this._validateSessionExist(f));const S={timestamp:0,topicName:e};if(validateTopicName(e,f),this._checkIsJoinedChannel(f),d!=null&&d.customType&&validateCustomType(d==null?void 0:d.customType,f),typeof o=="string"&&!o){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);throw new RtmInvalidArgumentError(f,[x],L)}if((typeof o=="string"?new TextEncoder().encode(o).buffer:o.buffer).byteLength+new Blob([(I=d==null?void 0:d.customType)!==null&&I!==void 0?I:""]).size>TOPIC_MESSAGE_SIZE){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_MESSAGE_LENGTH_EXCEED_LIMITATION);throw new RtmInvalidArgumentError(f,[x],L)}if(this._rtcClient.connectionState!=="CONNECTED"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_JOINED);throw new RtmUnavailableError(f,[x],L)}const v=this._localTopics.get(e);if(!v){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_JOINED);throw new RtmUnavailableError(f,[x],L)}return await(v==null?void 0:v.publishTopicMessage(f,o,d)),S}async leaveTopic(e){var o,d;const I=OperationName.leaveTopic,f=(o=this._localTopics.get(e))===null||o===void 0?void 0:o.getDataChannel(),S=(d=f==null?void 0:f.id)!==null&&d!==void 0?d:0,{sid:v,elapse:L,opid:x}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicLeave",{sid:v,elapse:L,lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),userId:this._context.uid,channelName:this._channelName,topicName:e,streamId:S,seq:Long$1.fromNumber(x)}),this._privatePermitUseMessageChn&&(this._validateRtmConnection(I),this._validateSessionExist(I));const F={timestamp:0,topicName:e};if(validateTopicName(e,I),this._checkIsJoinedChannel(I),!this._localTopics.has(e)){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_JOINED);throw new RtmUnavailableError(I,[W],j)}try{await this._rtcClient.unpublish(f),this._localTopics.delete(e)}catch(j){var Y;this.logError(j);const W=(Y=j==null?void 0:j.code)!==null&&Y!==void 0?Y:AgoraRTCErrorCode.UNEXPECTED_ERROR,{code:re,reason:ee}=convertDataChannelJoinCodeToSdkCode(W,RTMErrorCode.RTM_ERROR_CHANNEL_IN_ERROR_STATE);throw new RtmUnavailableError(I,[ee+"LeaveTopic failure, server code is ".concat(W),re])}return F}async subscribeTopic(e,o){var d,I,f;const S=OperationName.subscribeTopic,{currentResolve:v,currentReject:L}=await this._context.operationControl.awaitPromise(S+STREAM_CHANNEL_PREFIX+e),x=(d=o==null||(I=o.users)===null||I===void 0?void 0:I.filter(Ve=>!isValidId(Ve)))!==null&&d!==void 0?d:[];o!=null&&o.users&&(o.users=o==null||(f=o.users)===null||f===void 0?void 0:f.filter(Ve=>isValidId(Ve))),o!=null&&o.users&&(o.users=[...new Set(o.users)]);let F=!1,Y=!1,j=0;const W={failedUsers:x,failedDetails:x.map(Ve=>({user:Ve,errorCode:SubscribeTopicErrorCode.INVALID_PARAMS,timestamp:0,topicName:e})),succeedUsers:[],timestamp:0,topicName:e},re=new Set;try{var ee,he,ue,Ee,_e;if(this._apiRateLimit.canMakeOperation("subscribeTopic"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(S),this._validateSessionExist(S)),validateTopicName(e,S),this._checkIsJoinedChannel(S),Array.from(this._remoteTopics.values()).filter(Bt=>Bt.getAllSubscribedUserCount()>0).length>SUB_TOPIC_LIMITATION){this.log("subscribed topic(%s) failed, exceed subscribe topic limit ".concat(SUB_TOPIC_LIMITATION),e);const{code:Bt,reason:Tt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_EXCEED_TOPIC_LIMITATION);throw new RtmUnavailableError(S,[Tt],Bt)}const Ge=this._remoteTopics.get(e);if(((ee=Ge==null?void 0:Ge.getAllSubscribedUserCount())!==null&&ee!==void 0?ee:0)>=SUB_TOPIC_USER_LIMITATION){this.log("subscribe topic(".concat(e,") exceed user limit: ").concat(SUB_TOPIC_USER_LIMITATION));const{code:Bt,reason:Tt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_EXCEED_TOPIC_USER_LIMITATION);throw new RtmUnavailableError(S,[Tt],Bt)}if(!(this._remoteTopics.has(e)||o!=null&&o.users&&o.users.length!==0)){if(this._localTopics.has(e))return v(void 0),W;const{code:Bt,reason:Tt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_EXIST);throw new RtmUnavailableError(S,[Tt],Bt)}if(!this._remoteTopics.has(e)&&((o==null||(he=o.users)===null||he===void 0?void 0:he.length)||0)>0){this.log("createTopicHere");const Bt=new RemoteTopic(this._context,this.logger,e,this._channelName,this._emitTopicMessage),Tt=SUB_TOPIC_USER_LIMITATION-(Bt==null?void 0:Bt.getAllSubscribedUserCount()),rt=shuffle$1((o==null?void 0:o.users)||[]).filter((ye,lt)=>(lt+1>Tt&&(F=!0,W.failedDetails.push({user:ye,errorCode:SubscribeTopicErrorCode.SUB_USER_EXCEED_LIMITATION,timestamp:0,topicName:e}),W.failedUsers.push(ye)),lt+1<=Tt));return this.log("shuffle pre subscribe topic(%s), users: %o",e,rt.map(ye=>replaceRangeWithAsterisk(ye))),rt.forEach(ye=>{re.add(ye),Bt.addUserWithoutDc(ye),this._remoteTopics.set(e,Bt)}),this.log("".concat(e," not existent in channel ").concat(this._channelName,".")),W.succeedUsers=[...re],this.log("subscribed ".concat(this._channelName,"(").concat(e,"), resp is %o"),W),v(void 0),W}let He=[];var De,Fe;o!=null&&o.users&&o.users.length!==0?He=(o==null||(De=o.users)===null||De===void 0?void 0:De.filter(Bt=>{const Tt=Ge==null?void 0:Ge.getPreSubscribedUsers().includes(Bt),rt=Ge==null?void 0:Ge.getSubscribedUsers().includes(Bt),ye=!(Ge!=null&&Ge.getUsers().has(Bt));return Tt||rt?this.log("subscribe ".concat(replaceRangeWithAsterisk(Bt)," in topic(").concat(e,") already.")):ye&&(re.add(Bt),Ge==null||Ge.addUserWithoutDc(Bt),this.log("pre subscribe user(".concat(replaceRangeWithAsterisk(Bt),")"))),this.log("can't sub the user ".concat(Bt,", isPreSubscribed: ").concat(Tt,", isSubscribed: ").concat(rt,", isUserNotPublishTopic: ").concat(ye)),!Tt&&!rt&&!ye}))||[]:((Fe=Ge==null?void 0:Ge.getUsers())!==null&&Fe!==void 0?Fe:new Map).forEach((Bt,Tt)=>{Bt.subscribedState==="UNSUBSCRIBE"&&He.push(Tt)}),He.length>SUB_TOPIC_USER_LIMITATION-((ue=(Ee=this._remoteTopics.get(e))===null||Ee===void 0?void 0:Ee.getAllSubscribedUserCount())!==null&&ue!==void 0?ue:0)&&(F=!0);const At=await this._patchSubscribeTopic(e,He);return this.log("".concat(S," result: preSubUsers(").concat([...re],"), subUsers(").concat(At.succeedUsers,")")),W.succeedUsers=[...re,...At.succeedUsers],W.failedUsers=[...W.failedUsers,...At.failedUsers],W.failedDetails=[...W.failedDetails,...At.failedDetails],W.failedUsers.length===(o==null||(_e=o.users)===null||_e===void 0?void 0:_e.length)||W.failedUsers.length,v(void 0),W}catch(Ve){throw v(void 0),Ve}finally{Y=re.size>0,j=W.succeedUsers.length,this.log("subscribe topic(".concat(e,"), randomSubscribe: ").concat(F,", containPreSubscribeUsers: ").concat(Y,", preUsersCount: ").concat(re.size,", succeedUsersCount: ").concat(j,", failedUsersCount: ").concat(W.failedUsers.length));const{sid:Ve,elapse:Ge,opid:He}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicSubscribe",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:Ve,userId:this._context.uid,elapse:Ge,channelName:this._channelName,topicName:e,seq:Long$1.fromNumber(He),randomSubscribe:Number(F),preSubscribe:Number(Y),userCount:j})}}async unsubscribeTopic(e,o){var d,I,f;const S=OperationName.unsubscribeTopic,{sid:v,elapse:L,opid:x}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicUnsubscribe",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:v,userId:this._context.uid,elapse:L,channelName:this._channelName,topicName:e,seq:Long$1.fromNumber(x)}),this._privatePermitUseMessageChn&&(this._validateRtmConnection(S),this._validateSessionExist(S)),validateTopicName(e,S),this._checkIsJoinedChannel(S);const F=this._remoteTopics.get(e);if(F==null||!F.getAllSubscribedUserCount()){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_SUBSCRIBED);throw new RtmUnavailableError(S,[ee],re)}const Y=(d=o==null||(I=o.users)===null||I===void 0?void 0:I.filter(re=>!isValidId(re)))!==null&&d!==void 0?d:[],j={failedUsers:Y,failedDetails:Y.map(re=>({user:re,errorCode:SubscribeTopicErrorCode.INVALID_PARAMS,timestamp:0,topicName:e})),timestamp:0,succeedUsers:[],topicName:e};let W=[];o!=null&&o.users&&o.users.length!==0?W=o.users.filter(re=>isValidId(re)).filter(re=>{const ee=F.getPreSubscribedUsers().includes(re),he=F.getSubscribedUsers().includes(re);return ee?(this._deleteRemoteDc(e,re),j.succeedUsers.push(re)):he||(j.failedDetails.push({user:re,errorCode:SubscribeTopicErrorCode.NOT_SUBSCRIBED_USER,timestamp:0,topicName:e}),j.failedUsers.push(re)),he}):(F.getSubscribedUsers().forEach(re=>{W.push(re)}),F.getPreSubscribedUsers().forEach(re=>{this._deleteRemoteDc(e,re),j.succeedUsers.push(re)}));try{(await Promise.all(W.map(ee=>{const he=F==null?void 0:F.getUsers().get(ee);if(!he)throw this.warn("unsubscribe topic(".concat(e,")-user(").concat(replaceRangeWithAsterisk(ee),") failed, user not in remoteTopic users.")),new Error;const{id:ue,user:Ee}=he;return fromPromise(this._rtcClient.unsubscribe(Ee||this._userIdToRTCRemoteUser(ee),"datachannel",ue),_e=>_e)}))).map((ee,he)=>({userId:W[he],result:ee})).forEach(ee=>{let{userId:he,result:ue}=ee;if(ue.isErr()){var Ee,_e,De;this.logError(ue.error);const Fe=(Ee=ue==null||(_e=ue.error)===null||_e===void 0?void 0:_e.code)!==null&&Ee!==void 0?Ee:AgoraRTCErrorCode.UNEXPECTED_ERROR;j.failedDetails.push({user:he,reason:"Unsubscribe topic failure, web_rtc code is ".concat(Fe,", the reason of web_rtc is that ").concat(ue==null||(De=ue.error)===null||De===void 0?void 0:De.toString()),timestamp:0,topicName:e}),j.failedUsers.push(he);const{code:Ve,reason:Ge}=convertDataChannelJoinCodeToSdkCode(Fe,RTMErrorCode.RTM_ERROR_CHANNEL_IN_ERROR_STATE);throw new RtmUnavailableError(S,[Ge+"unsubscribeTopic failure, server code is ".concat(Fe)],Ve)}j.succeedUsers.push(he),F.handleUnsubscription(he)})}catch(re){throw re}return j.failedUsers.length===(o==null||(f=o.users)===null||f===void 0?void 0:f.length)||j.failedUsers.length,this.log("".concat(S," success. sdk resp is %o"),j),j.succeedUsers.forEach(re=>{const ee=this._remoteTopics.get(e);ee==null||ee.handleUnsubscription(re)}),{timestamp:0}}getSubscribedUserList(e){const o=OperationName.getSubscribedUserList;this._privatePermitUseMessageChn&&(this._validateRtmConnection(o),this._validateSessionExist(o)),validateTopicName(e,o),this._checkIsJoinedChannel(o);const d=this._remoteTopics.get(e);if(d==null||!d.getAllSubscribedUserCount()){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_SUBSCRIBED);throw new RtmUnavailableError(o,[S],f)}const I={subscribed:[],timestamp:0,topicName:e};return I.subscribed=[...d.getSubscribedUsers(),...d.getPreSubscribedUsers()],I}setStreamChannelParameter(e,o){AgoraRTC.setParameter(e,o)}async _handleLeaveEffects(){this._clearLocalCache4topic(),this._isJoinedChannel=!1,this._joinedAndSubscribed=!1,this._context.internalEmitter.emit("stream-channel-leaved",this._channelName),this._removeAllRtcListeners()}_handleUpdatedTopicsInOffline(e){const o=new Map;this._remoteTopics.forEach((I,f)=>{o.set(f,I)});const d=new Map;e.forEach(I=>{var f;(f=I.dataChannels)===null||f===void 0||f.forEach(S=>{if(S.getConfig()){var v;const{metadata:L}=S.getConfig(),x=this._decodeMetadata(L),{topic:F}=x,Y=(v=d.get(F))!==null&&v!==void 0?v:[];Y.push({user:I,dc:S.getConfig()}),d.set(F,Y)}})}),d.forEach((I,f)=>{var S,v;const L=(S=(v=o.get(f))===null||v===void 0?void 0:v.getUsers())!==null&&S!==void 0?S:new Map,x=I.filter(F=>{var Y;let{user:j}=F;return!L.has(j.uid.toString())&&((Y=L.get(j.uid.toString()))===null||Y===void 0?void 0:Y.subscribedState)!=="PRE_SUBSCRIBE"});x.length>0&&this.log("joined topic: %s, users: %o",f,Array.from(x.values()).map(F=>{var Y;return(Y=F.user)===null||Y===void 0?void 0:Y.uid})),x.forEach(F=>{let{user:Y,dc:j}=F;this._handleUserPublished(Y,"datachannel",j)})}),o.forEach((I,f)=>{var S;const v=I.getUsers(),L=(S=d.get(f))!==null&&S!==void 0?S:[],x=Array.from(v.values()).filter(F=>F.subscribedState!=="PRE_SUBSCRIBE"&&!L.find(Y=>{var j;let{user:W}=Y;return W.uid===((j=F.user)===null||j===void 0?void 0:j.uid)}));x.length>0&&this.log("left topic: %s, users: %o",f,Array.from(x.values()).map(F=>{var Y;return(Y=F.user)===null||Y===void 0?void 0:Y.uid})),x.forEach(F=>{this._emitTopicLeft(f,F.user,F.meta)})})}_removeAllRtcListeners(){this._rtcClient.off("connection-state-change",this._handleConnectionStateChange),this._rtcClient.off("published-user-list",this._handleUserPublishedList),this._rtcClient.off("user-published",this._handleUserPublished),this._rtcClient.off("user-unpublished",this._handleUserUnPublished),this._rtcClient.off("token-privilege-will-expire",this._handleTokenPrivilegeWillExpire),this._rtcClient.off("user-joined",this._handleUserJoined),this._rtcClient.off("user-left",this._handlerUserLeft)}_addAllRtcListeners(){this._rtcClient.on("connection-state-change",this._handleConnectionStateChange),this._rtcClient.on("published-user-list",this._handleUserPublishedList),this._rtcClient.on("user-published",this._handleUserPublished),this._rtcClient.on("user-unpublished",this._handleUserUnPublished),this._rtcClient.on("token-privilege-will-expire",this._handleTokenPrivilegeWillExpire),this._rtcClient.on("user-joined",this._handleUserJoined),this._rtcClient.on("user-left",this._handlerUserLeft)}async _handleReceivedDcs(e,o,d){const I=new Map;for(let S=0;S{I.topicInfos.push({publishers:S,topicName:v,totalPublisher:S.length})}),I.topicInfos.length===0&&this.log("length of topicInfos is 0 in emitTopic."),this._emitRtmEvent("topic",I);const f={};d.forEach((S,v)=>{f[v]={publishers:S,publisherCount:S.length}}),this._reportTopicUpdate(o,f)}_getInitTopicEventData(e,o,d,I){return{eventType:e,channelName:o,publisher:d,topicInfos:[],totalTopics:I,timestamp:getUTCTimeBaseREG(this._context.offsetTime)}}_userIdToRTCRemoteUser(e){return{uid:typeof this._context.userId=="number"?parseInt$2(e):e,hasAudio:!1,hasVideo:!1,dataChannels:[]}}_addOrUpdateRemoteDc(e,o,d,I,f,S){if(!this._remoteTopics.has(e)){const L=new RemoteTopic(this._context,this.logger,e,this._channelName,this._emitTopicMessage);this._remoteTopics.set(e,L)}const v=this._remoteTopics.get(e);v.getUsers().has(o)?v.updateUserDatachannelInfo(o,{meta:I,id:f,user:d}):v.addUserWithDc(o,{subscribedState:"UNSUBSCRIBE",meta:I,id:f,datachannel:S,user:d})}_deleteRemoteDc(e,o){const d=this._remoteTopics.get(e);var I;d==null||d.removeUser(o),(d==null?void 0:d.getUsers().size)===0&&(this._remoteTopics.delete(e),(I=this._remoteTopics.get(e))===null||I===void 0||I.release())}_decodeMetadata(e){return TopicMetadata.decode(new TextEncoder().encode(e))}async _handlePreSubscribeTopic(e,o){const d=this._remoteTopics.get(e),I=d==null?void 0:d.getUsers().get(o);if(!I)return void this.log("handlePreSubscribeTopic failed. remoteDcInfo is undefined. topicName: ".concat(e,", userId: ").concat(replaceRangeWithAsterisk(o)));const{id:f,user:S}=I,v=await fromPromise(this._rtcClient.subscribe(S||this._userIdToRTCRemoteUser(o),"datachannel",f),x=>x);if(v.isErr()){var L;const x=v==null||(L=v.error)===null||L===void 0?void 0:L.code;this.log("subscribe predictive user(".concat(replaceRangeWithAsterisk(o),") in topic(").concat(e,") failed, code is ").concat(x))}if(v.isOk()){const x=v.value;this.log("pre-subtopic ".concat(this._channelName,"(").concat(e,") succeed.")),d==null||d.handleSubscription(x,o)}}async _patchSubscribeTopic(e,o){var d;const I={succeedUsers:[],failedUsers:[],failedDetails:[],timestamp:0,topicName:e},f=this._remoteTopics.get(e),S=SUB_TOPIC_USER_LIMITATION-((d=f==null?void 0:f.getAllSubscribedUserCount())!==null&&d!==void 0?d:0),v=shuffle$1(o).filter((x,F)=>(F+1>S&&(I.failedDetails.push({user:x,errorCode:SubscribeTopicErrorCode.SUB_USER_EXCEED_LIMITATION,timestamp:0,topicName:e}),I.failedUsers.push(x)),F+1<=S));return this.log("subscribe topic(%s) users: %o",e,v.map(x=>replaceRangeWithAsterisk(x))),(await Promise.all(v.map(x=>{const F=f==null?void 0:f.getUsers().get(x);if(!F)throw this.warn("subscribe topic(".concat(e,")-user(").concat(replaceRangeWithAsterisk(x),") failed, user not in remoteTopic users.")),new Error;const{id:Y,user:j}=F;return fromPromise(this._rtcClient.subscribe(j||this._userIdToRTCRemoteUser(x),"datachannel",Y),W=>W)}))).map((x,F)=>({userId:v[F],result:x})).forEach(x=>{if(x.result.isErr()){var F,Y;const j=(F=x.result.error)===null||F===void 0?void 0:F.code,W=SubscribeTopicErrorCode.UNKNOWN_ERROR;I.failedDetails.push({user:x.userId,errorCode:W,reason:"Subscribe topic failure, web_rtc code is ".concat(j,", the reason of web_rtc is that ").concat(x==null||(Y=x.result)===null||Y===void 0||(Y=Y.error)===null||Y===void 0?void 0:Y.toString()),timestamp:0,topicName:e}),I.failedUsers.push(x.userId),this.warn(x.result,"WEB_RTCerror"),this.log("subscribe user(".concat(x.userId,") in topic(").concat(e,") failed, code is ").concat(j))}else{I.succeedUsers.push(x.userId);const j=x.result.value;this.log("subtopic ".concat(this._channelName,"(").concat(e,") succeed.")),f==null||f.handleSubscription(j,x.userId)}}),I}_clearLocalCache4topic(){this._remoteTopics.forEach(e=>{e.release()}),this._localTopics=new Map,this._remoteTopics=new Map}_checkIsJoinedChannel(e){if(!this._isJoinedChannel||this._linkState!=="CONNECTED"){this.warn("".concat(this._channelName," have not joined stream channel when ").concat(e));const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_JOINED);throw new RtmUnavailableError(e,[d],o)}}_updatePrivateSettings(){const e=this._context.rtmConfig.privateConfig;if(e!=null&&e.accessPointHosts){var o;const d=e.logUploadHosts,I=e.eventUploadHosts,f=443,S=getPrivateSettingsPortAndDomains(e.accessPointHosts);this._rtcClient.setLocalAccessPointsV2({accessPoints:{serverList:S.hostname,domain:(e.domainMode===2?"edge.":"")+sample$1((o=e.originDomains)!==null&&o!==void 0?o:["agora.io"]),port:S.port},log:d?_objectSpread2({},getPrivateSettingsPortAndDomains(d,f)):void 0,report:I?_objectSpread2({},getPrivateSettingsPortAndDomains(I,f)):void 0})}else e&&this.warn("use private settings but apHosts is set to empty")}_updateLinkState(e,o,d){let I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"";if(this._linkState===e)return;this._privatePermitUseMessageChn&&this._context.sendReport("LinkStateChange",{elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),reason:LinkStateChangeReason4Report[d],sid:getSid(this._context.instanceId||Long$1.fromNumber(0)),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),userid:this._context.uid,currentState:linkStateCodeMap[e],previousState:linkStateCodeMap[this._linkState],operation:linkOperationCodeMap[o],serviceType:1,streamChannelName:this._channelName}),e!=="FAILED"&&e!=="IDLE"||(this._firstSnapshot4topic=!0);const f={currentState:e,previousState:this._linkState,serviceType:"STREAM",operation:o,reason:I,reasonCode:d,affectedChannels:[this._channelName],unrestoredChannels:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime),isResumed:e==="CONNECTED"&&this._isJoinedChannel};this._linkState=e,this._emitRtmEvent("linkState",f)}async _subscribe(e){const o=OperationName.join,d=handleJoinOptionsAsDefault(e);this._context.setLastCustomSubOrJoinOptions(this._prefixChannelName,d);const I=getRandomInt(0,Number.MAX_SAFE_INTEGER),{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED),v=this._context.getChannelLastRealSubOrJoinOptions(this._prefixChannelName),L=this._context.getSubOrJoinActions(this._prefixChannelName,_objectSpread2(_objectSpread2({},d),{},{withMessage:!1}));try{await this._updateOptionsReJoinOrSub(this._prefixChannelName,L)}catch(F){throw new RtmUnknownError(o,[S+F],f)}finally{var x;(x=this._context)===null||x===void 0||x.reportChnJoin(this._prefixChannelName,v,d,I)}}_localLeave(){this._isJoinedChannel=!1,this._joinedAndSubscribed=!1,this._removeAllRtcListeners(),this._clearLocalCache4topic(),this._context.internalEmitter.emit("stream-channel-leaved",this._channelName)}async _fusionSdkJoin(){const e={channelName:this._channelName,state:"CONNECTING",reason:"OK",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",e),await this._rtcClient.setRTMConfig({apRTM:!0,rtmFlag:1}),this._isJoinedChannel=!0;const o={channelName:this._channelName,state:"CONNECTED",reason:"OK",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",o),this._handleUserPublishedList(this._rtcClient.remoteUsers)}async _fusionSdkLeave(){const e={channelName:this._channelName,state:"DISCONNECTING",reason:"LEAVE",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",e),await this._rtcClient.setRTMConfig({apRTM:!0,rtmFlag:0}),this._isJoinedChannel=!1;const o={channelName:this._channelName,state:"DISCONNECTED",reason:"LEAVE",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",o)}_validateSessionExist(e){if(this._getRTMSession()===void 0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[d],o)}}_handleJoinFailedState(e){if(typeof e=="string")return void this._updateLinkState("FAILED","JOIN","JOIN_FAILED",e);if(e===RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_CANCELED)return;let o=LinkStateChangeReasonDescription.JOIN_FAILED,d="JOIN_FAILED";switch(e){case RTMErrorCode.RTM_ERROR_CHANNEL_INSTANCE_EXCEED_LIMITATION:o=LinkStateChangeReasonDescription.CHANNEL_INSTANCE_EXCEED_LIMITATION,d="CHANNEL_INSTANCE_EXCEED_LIMITATION";break;case RTMErrorCode.RTM_ERROR_OPERATION_RATE_EXCEED_LIMITATION:o=LinkStateChangeReasonDescription.OPERATION_RATE_EXCEED_LIMITATION,d="OPERATION_RATE_EXCEED_LIMITATION";break;case RTMErrorCode.RTM_ERROR_INVALID_TOKEN:o=LinkStateChangeReasonDescription.INVALID_TOKEN,d="INVALID_TOKEN";break;case RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID:o=LinkStateChangeReasonDescription.INCONSISTENT_APP_ID,d="INCONSISTENT_APP_ID";break;case RTMErrorCode.RTM_ERROR_DUPLICATE_OPERATION:case RTMErrorCode.RTM_ERROR_NOT_CONNECTED:case RTMErrorCode.RTM_ERROR_NOT_CONNECTED:o=LinkStateChangeReasonDescription.CHANNEL_IN_ERROR_STATE,d="CHANNEL_IN_ERROR_STATE";break;case RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE:o=LinkStateChangeReasonDescription.LOCK_NOT_AVAILABLE,d="LOCK_NOT_AVAILABLE";break;case RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE:o=LinkStateChangeReasonDescription.STORAGE_NOT_AVAILABLE,d="STORAGE_NOT_AVAILABLE";break;case RTMErrorCode.RTM_ERROR_CHANNEL_NOT_AVAILABLE:o=LinkStateChangeReasonDescription.STREAM_CHANNEL_NOT_AVAILABLE,d="STREAM_CHANNEL_NOT_AVAILABLE"}this._updateLinkState("FAILED","JOIN",d,o)}async _validCancelJoin(e){if(this._linkState==="IDLE"){this._isReuseRtcClient,await this._rtcClient.leave(),this._context.rtmConfig.cloudProxy&&this._rtcClient.stopProxyServer();const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_CANCELED);throw new RtmUnavailableError(e,[d],o)}}_validateJoinOptions(e,o){const d=getParameter("STORAGE_CHANNEL_SUB_ENABLED"),I=(d!==void 0?String(d):this._context.consoleConfig["storage.channel_subscribe_enabled"])==="true";if(e!=null&&e.withMetadata&&!I){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}const f=getParameter("LOCK_ENABLED"),S=(f!==void 0?String(f):this._context.consoleConfig["lock.enabled"])==="true";if(e!=null&&e.withLock&&!S){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}}_getSidAndElapse4Report(){return{sid:this._privatePermitUseMessageChn?getSid(this._context.instanceId||Long$1.fromNumber(0)):"",elapse:this._privatePermitUseMessageChn?getElapse(this._context.startTime):Long$1.fromNumber(0),opid:getRandomInt(0,Number.MAX_SAFE_INTEGER)}}_reportTopicUpdate(e,o){const d=JSON.stringify(o),{sid:I,elapse:f}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicUpdateEvent",{sid:I,elapse:f,lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),userId:this._context.uid,channelName:this._channelName,topicEventType:topicEventTypeMap[e],topicInfo:d})}}var _class$5;let StreamChannel=(_class$5=class extends EventBase{get _streamChannelImpl(){return this.streamChannelImpl}constructor(n,e,o,d,I,f,S,v,L,x){super(e,"StreamChannel",!0,!0),_defineProperty$1(this,"streamChannelImpl",void 0),this.streamChannelImpl=new StreamChannelImpl(n,e,o,d,I,f,S,v,L,x)}async join(n){return this.streamChannelImpl.join(n)}async renewStreamChannelToken(n){return this.streamChannelImpl.renewStreamChannelToken(n)}async leave(){return this.streamChannelImpl.leave()}async joinTopic(n,e){return this.streamChannelImpl.joinTopic(n,e)}async publishTopicMessage(n,e,o){return this.streamChannelImpl.publishTopicMessage(n,e,o)}async leaveTopic(n){return this.streamChannelImpl.leaveTopic(n)}async subscribeTopic(n,e){return this.streamChannelImpl.subscribeTopic(n,e)}async unsubscribeTopic(n,e){return this.streamChannelImpl.unsubscribeTopic(n,e)}getSubscribedUserList(n){return this.streamChannelImpl.getSubscribedUserList(n)}},_applyDecoratedDescriptor(_class$5.prototype,"join",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"join"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"leave",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"leave"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"joinTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"joinTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"publishTopicMessage",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"publishTopicMessage"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"leaveTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"leaveTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"subscribeTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"subscribeTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"unsubscribeTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"unsubscribeTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"getSubscribedUserList",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"getSubscribedUserList"),_class$5.prototype),_class$5);class PresenceImpl extends EventBase{constructor(e,o,d,I,f,S){super(e,"PresenceImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_getRTMSession",void 0),_defineProperty$1(this,"_getRtmLinkState",void 0),_defineProperty$1(this,"_requestChannelMemberList",void 0),_defineProperty$1(this,"_getBackoffEventsMap",void 0),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),this._context=o,this._getRTMSession=genGetRTMSession(d),this._getRtmLinkState=I,this._getBackoffEventsMap=f,this._requestChannelMemberList=S}async _whoNowUseReg(e){const o=await this._requestChannelMemberList(e),d={totalOccupancy:o==null?void 0:o.totalSize,occupants:[],nextPage:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};return o.memberInfos.forEach(I=>{var f;d.occupants.push({userId:(f=I.account)!==null&&f!==void 0?f:"",states:{},statesCount:0})}),d}async _requestWhoNow(e,o,d){const I=this._getRTMSession().getColl(e,!0,"requestWhoNow"),f=[];if(this.log("".concat(OperationName.whoNow," by crdt")),I){var S;((S=I==null?void 0:I.Docs())!==null&&S!==void 0?S:new Map).forEach((v,L)=>{const x=v.Get(),F=x[K_PRESENCE_EXPIRED];delete x[K_PRESENCE_EXPIRED],F||f.push({userId:L,states:d?x:{},statesCount:d?Object.keys(x).length:0})})}return{occupants:o?f:[],totalOccupancy:f.length,nextPage:"",timestamp:0}}async _requestRpcGetState(e,o){const d=this._getRTMSession(),I=Date.now(),f=this._context.incGetSeq();let S=0;try{d.validateSyncConnected(OperationName.presenceGetState);const v={start:o,end:"",keysOnly:!1,countOnly:!1,limit:1},[L]=await timeoutPromise(d.requestRpc(e,v),COMMON_REQUEST_TIMEOUT,OperationName.presenceGetState,RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT);let x={};return L.forEach((F,Y)=>{if(Y===o){try{x=JSON.parse(F)}catch(j){this.logError("parse doc error: %o",j)}delete x[K_PRESENCE_EXPIRED]}}),x}catch(v){const{serverCode:L,errorCode:x}=v;throw S=L??x,v}finally{this._reportRpcEvent("getState",{requestts:I,reqSeq:f,errCode:S,target:o})}}async _requestRPCWhoNow(e,o,d,I){const f=Date.now(),S=this._context.incGetSeq();let v=0;try{var L;const x=d&&!I,F=!d&&!I,Y=Number(getParameter("PRESENCE_THRESHOLD")||((L=this._context.consoleConfig)===null||L===void 0?void 0:L["presence.occupancy"]))||0,j=F;F&&o&&this.warn("countOnly and page is not compatible. page of param will be ignored.");const W={start:j?"":atob(o),end:"",keysOnly:x,countOnly:F,limit:j?0:Y,startIncluded:!o,endIncluded:!0,ignoreExpired:!0},[re,ee,he]=await timeoutPromise(this._getRTMSession().requestRpc(e,W),COMMON_REQUEST_TIMEOUT,OperationName.whoNow,RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT),ue=[],Ee={timestamp:0,occupants:ue,nextPage:"",totalOccupancy:ee};if(F)return Ee;{let _e="";if(x)re.forEach(De=>{ue.push({userId:De,states:{},statesCount:0}),ue.length===re.length&&he&&(_e=De)});else{let De=0;re.forEach((Fe,Ve)=>{let Ge={};try{Ge=JSON.parse(Fe)}catch(He){this.logError("parse doc error: %o",He)}Ge[K_PRESENCE_EXPIRED]?De++:(delete Ge[K_PRESENCE_EXPIRED],ue.push({userId:Ve,states:I?Ge:{},statesCount:Object.keys(Ge).length}),ue.length===re.size&&he&&(_e=Ve))}),Ee.totalOccupancy-=De}if(he){const De=btoa(_e);Ee.nextPage=De}return Ee}}catch(x){const{serverCode:F,errorCode:Y}=x;throw v=F??Y,x}finally{this._reportRpcEvent("whoNow",{requestts:f,reqSeq:S,errCode:v,target:e})}}async _requestRpcWhereNow(e){const o=this._getRTMSession(),d=Date.now(),I=this._context.incGetSeq();let f=0;try{o.validateSyncConnected(OperationName.whereNow);const S=!1,v=!1,L=getGlobalPresenceString(this._context.vid)+"/"+e,x={start:L,end:"",keysOnly:S,countOnly:v,limit:1};this.log("whereNow query options: %o",x);const[F]=await timeoutPromise(o.requestRpc(K_GLOBAL_PRESENCE_COLLECTION,x),COMMON_REQUEST_TIMEOUT,OperationName.whereNow,RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT,!0),Y={channels:[],totalChannel:0,timestamp:0};return F.forEach((j,W)=>{if(W===L){let re=null;try{re=JSON.parse(j),this.log("whereNow doc: %o",re)}catch(he){re={},this.logError("parse doc error: %o",he)}const ee=Object.keys(re).filter(he=>he[0]!==K_SYNC_INTERNAL_KEY_PREFIX);this.log("whereNow channels: %o",ee),ee.forEach(he=>{const{channelName:ue,channelType:Ee}=getChannelDetailByName(he);Y.channels.push({channelName:ue,channelType:Ee})}),Y.totalChannel=ee.length}}),Y}catch(S){if(S instanceof RTMBaseError){const{serverCode:v,errorCode:L}=S;throw f=v??L,S}{const{reason:v,code:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_FAILED);throw new RtmUnavailableError(OperationName.whereNow,[v+String(S)],L)}}finally{this._reportRpcEvent("whereNow",{requestts:d,reqSeq:I,errCode:f,target:e})}}_reportRpcEvent(e,o){let{requestts:d,reqSeq:I,errCode:f,target:S}=o;this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(d),replyts:Long$1.fromNumber(Date.now()),target:S,eventtype:e,revision:Long$1.fromNumber(0),uuid:"".concat(I,"_").concat(this._context.instanceId),sdktype:4,flags:Long$1.fromNumber(0),code:f,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""})}async _getOtherStateByRPC(e,o,d){const I=await this._requestRpcGetState(o,e);d.states=I,d.statesCount=Object.keys(I).length}_getStateByCrdt(e,o,d){var I;const f=this._getRTMSession(),S=OperationName.presenceGetState,v=f.getDocByUid(o,{funcName:"requestGetState",uid:e});if(isNil$1(v)){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_USER_NOT_EXIST);throw new RtmUnavailableError(S,[F],x)}const L=(I=v==null?void 0:v.Get())!==null&&I!==void 0?I:{};delete L[K_PRESENCE_EXPIRED],d.statesCount=Object.keys(L).length,d.states=L}_getLocalState(e,o,d){const I={},f=this._getLocalStateCache().get(e);f==null||f.forEach((S,v)=>{I[v]=S}),this._logSdkStateInOperateState(o),d.states=I,d.statesCount=Object.keys(I).length}async whoNow(e,o,d){var I,f;const S=OperationName.whoNow,v=getChannelNameByType(e,o);if(this._context.enablePrivate&&((I=this._context.rtmConfig.privateConfig)===null||I===void 0||!I.serviceType.includes("MESSAGE"))){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(S,W,j)}if(this._getBackoffEventsMap().has(v)&&o==="MESSAGE"){if(this._getRtmLinkState()!=="CONNECTED"){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(S,[W],j)}return await this._whoNowUseReg(e)}this._apiRateLimit.canMakeOperation("whoNow"),validateChannelType(S,o);const L=(d==null?void 0:d.includedUserId)!==!1,x=(d==null?void 0:d.includedState)===!0,F=(f=d==null?void 0:d.page)!==null&&f!==void 0?f:"";if(this._validateRtmConnection(S),validateKey(e,S,"channel"),(d==null?void 0:d.includedUserId)===!1&&(d==null?void 0:d.includedState)===!0){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_INVALID_ARGUMENT);throw new RtmInvalidArgumentError(S,[W+"include uid is false but include state is true"],j)}const Y=this._getRTMSession();return this._context.getChannelOptionsByKey(v,"withPresence")?Y.getColl(v)===null?await this._requestRPCWhoNow(v,F,L,x):await this._requestWhoNow(v,L,x):await this._requestRPCWhoNow(v,F,L,x)}async getOnlineUsers(e,o,d){try{return await this.whoNow(e,o,d)}catch(I){throw I instanceof RTMBaseError&&(I.operation=OperationName.getOnlineUsers),I}}async whereNow(e){const o=OperationName.whereNow;return this._apiRateLimit.canMakeOperation("whereNow"),this._validateRtmConnection(o),e===""&&(e=this._context.uid),validateKey(e,o,"uid"),await this._requestRpcWhereNow(e)}async getUserChannels(e){try{return await this.whereNow(e)}catch(o){throw o instanceof RTMBaseError&&(o.operation=OperationName.getUserChannels),o}}async setState(e,o,d){const I=OperationName.presenceSetState;this._apiRateLimit.canMakeOperation("modifyState"),validateChannelType(I,o),this._validateRtmConnection(I,!1),validateKey(e,I,"channel");const f=getChannelNameByType(e,o),S=Object.keys(d).length,{states:v}=await this.getState(this._context.uid,e,o,!0),L=new Set([...Object.keys(v),...Object.keys(d)]).size;if(S===0){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_INVALID_ARGUMENT);throw new RtmInvalidArgumentError(I,[F+"state of parameter is empty"],x)}if(S>MAX_STATE_COUNT||L>MAX_STATE_COUNT){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_COUNT_OVERFLOW);throw new RtmLimitExceededError(I,[F],x)}if(this._getLocalStateCache().size>K_PRESENCE_MAX_CHANNEL_COUNT){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_CACHED_TOO_MANY_STATES);throw new RtmLimitExceededError(I,[F],x)}if(validStateOfPresence(d,I),this._needOperationByCrdt(f)){const x=this._getRTMSession();this.log("".concat(I," by crdt"));const F=x.getDocByUid(f,{funcName:"requestSetState"});F==null||F.Set(d),x.sendTick()}return(this._needOperationByLocal()||this._context.getChannelOptionsByKey(f,"beQuiet")||this._context.notInChannel(f))&&this._logSdkStateInOperateState(I),this._updatePresenceStateCache(f,I,d),{timestamp:0}}async getState(e,o,d){let I=arguments.length>3&&arguments[3]!==void 0&&arguments[3];const f=OperationName.presenceGetState;if(I||this._apiRateLimit.canMakeOperation("getState"),validateChannelType(f,d),this._context.uid!==e&&this._getRtmLinkState()==="FAILED"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(f,[x],L)}this._validateRtmConnection(f,this._context.uid!==e),validateKey(o,f,"channel"),validateKey(e,f,"uid");const S=getChannelNameByType(o,d),v={statesCount:0,states:{},userId:e,timestamp:0};return this._context.notInChannel(S)?e===this._context.uid?(this.log("not in channel, get self state by local cache"),this._getLocalState(S,f,v)):(this.log("not in channel, get other state by rpc api."),await this._getOtherStateByRPC(e,S,v)):this._context.isInChannel(S)&&(e!==this._context.uid?this._context.getChannelOptionsByKey(S,"withPresence")?(this.log("in channel with presence, get other state by crdt"),this._getRTMSession().validateSyncConnected(OperationName.presenceGetState),this._getStateByCrdt(e,S,v)):(this.log("in channel without presence, get other state by rpc api."),await this._getOtherStateByRPC(e,S,v)):this._needOperationByCrdt(S)?(this.log("in channel, has doc, get self state by crdt"),this._getStateByCrdt(this._context.uid,S,v)):e===this._context.uid&&(this.log("in channel, get self state by local cache"),this._getLocalState(S,f,v))),v}async removeState(e,o,d){var I,f,S,v,L,x,F;const Y=OperationName.presenceRemoveState;this._apiRateLimit.canMakeOperation("modifyState"),validateChannelType(Y,o),this._validateRtmConnection(Y,!1),validateKey(e,Y,"channel");const j=!(d!=null&&(I=d.states)!==null&&I!==void 0&&I.length);if(!j&&d!=null&&(f=d.states)!==null&&f!==void 0&&f.length&&new Set(d.states).size!==((S=d.states)===null||S===void 0?void 0:S.length)){const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_DUPLICATE_KEY);throw new RtmInvalidArgumentError(Y,[ue],he)}if(((v=d==null||(L=d.states)===null||L===void 0?void 0:L.length)!==null&&v!==void 0?v:0)>MAX_STATE_COUNT){const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_COUNT_OVERFLOW);throw new RtmLimitExceededError(Y,[ue],he)}d==null||(x=d.states)===null||x===void 0||x.forEach(he=>{validStateKeyOfPresence(he,Y)});const W=getChannelNameByType(e,o),re={};if(d==null||(F=d.states)===null||F===void 0||F.forEach(he=>{re[he]=""}),this._needOperationByCrdt(W)){var ee;this.log("".concat(Y," by crdt. isClear: ").concat(j));const he=this._getRTMSession(),ue=he.getDocByUid(W,{funcName:"requestRemoveState"}),Ee=(ee=ue==null?void 0:ue.Get())!==null&&ee!==void 0?ee:{};ue==null||ue.Del(Object.keys(j?Ee:re)),he.sendTick()}return(this._needOperationByLocal()||this._context.getChannelOptionsByKey(W,"beQuiet")||this._context.notInChannel(W))&&this._logSdkStateInOperateState(Y),this._updatePresenceStateCache(W,Y,re),{timestamp:0}}_validateRtmConnection(e){var o;let d=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._context.enablePrivate&&((o=this._context.rtmConfig.privateConfig)===null||o===void 0||!o.serviceType.includes("MESSAGE"))){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(e,S,f)}const I=this._getRtmLinkState();if(I==="IDLE"||d&&I!=="CONNECTED"){this.log("The client state is ".concat(I,", cannot do the operation(").concat(e,")"));const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[S],f)}d&&this._getRTMSession().validateSyncConnected(e)}_needOperationByLocal(){var e;const o=this._getRtmLinkState();return o!=="IDLE"&&o!=="CONNECTED"||!!this._noRTMSession()||!((e=this._getRTMSession())!==null&&e!==void 0&&e.isSyncEstablished()||!getParameter("DECOUPLE_SYNC"))}_needOperationByCrdt(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._context.uid;return!this._noRTMSession()&&!!this._getRTMSession().getDocByUid(e,{funcName:"needOperationByCrdt",uid:o})}_getLocalStateCache(){return this._context.localStateCache}_updatePresenceStateCache(e,o,d){var I;const f=(I=this._getLocalStateCache().get(e))!==null&&I!==void 0?I:new Map;if(o===OperationName.presenceSetState)for(const S in d)f.set(S,d[S]);else if(o===OperationName.presenceRemoveState)if(Object.keys(d).length===0)f.clear();else for(const S in d)f.delete(S);this._getLocalStateCache().set(e,f)}_noRTMSession(){try{this._getRTMSession()}catch(e){const{errorCode:o}=e;if(o===RTMErrorCode.RTM_ERROR_NOT_CONNECTED)return!0}return!1}_logSdkStateInOperateState(e){var o,d,I;const f=!this._noRTMSession()&&(o=(d=this._getRTMSession())===null||d===void 0?void 0:d.getSyncConnected())!==null&&o!==void 0&&o,S=f&&((I=this._getRTMSession())===null||I===void 0?void 0:I.isSyncEstablished());this.log("reconnecting, quiet or not in channel, ".concat(e," by local cache. decouple: ").concat(getParameter("DECOUPLE_SYNC"),", virtualSocketConnected: ").concat(f,", established: ").concat(S))}}var _class$4;let Presence=(_class$4=class extends EventBase{constructor(n,e,o,d,I,f){super(n,"Presence",!0,!0),_defineProperty$1(this,"presenceImpl",void 0),this.presenceImpl=new PresenceImpl(n,e,o,d,I,f)}async whoNow(n,e,o){return await this.presenceImpl.whoNow(n,e,o)}async getOnlineUsers(n,e,o){return await this.presenceImpl.getOnlineUsers(n,e,o)}async whereNow(n){return await this.presenceImpl.whereNow(n)}async getUserChannels(n){return await this.presenceImpl.getUserChannels(n)}async setState(n,e,o){return await this.presenceImpl.setState(n,e,o)}async getState(n,e,o){return await this.presenceImpl.getState(n,e,o)}async removeState(n,e,o){return await this.presenceImpl.removeState(n,e,o)}},_applyDecoratedDescriptor(_class$4.prototype,"whoNow",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"whoNow"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"getOnlineUsers",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"getOnlineUsers"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"whereNow",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"whereNow"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"getUserChannels",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"getUserChannels"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"setState",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"setState"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"getState",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"getState"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"removeState",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"removeState"),_class$4.prototype),_class$4);class LockImpl extends EventBase{get localAcquiredLocks(){return this._localAcquiredLocks}constructor(e,o,d,I){super(e,"LockImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_getRTMSession",void 0),_defineProperty$1(this,"_validateRtmConnection",void 0),_defineProperty$1(this,"_setOperationNoRes",new Set),_defineProperty$1(this,"_removeOperationNoRes",new Set),_defineProperty$1(this,"_releaseOperationNoRes",new Set),_defineProperty$1(this,"_revokeOperationNoRes",new Set),_defineProperty$1(this,"_acquireOperationNoRes",new Map),_defineProperty$1(this,"_notifyAcquireRetryReject",new Subject),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),_defineProperty$1(this,"_localAcquiredLocks",new Map),_defineProperty$1(this,"_notifyLockReAcquire",new Subject),_defineProperty$1(this,"_lockSubscriptions",{lockAcquires:new Map}),this._context=o,this._context.internalEmitter.on("StateLockUpdate",f=>{this._onLockUpdate(f)}),this._getRTMSession=genGetRTMSession(d),this._validateRtmConnection=I}hasLock(){return this._acquireOperationNoRes.size>0||Array.from(this._localAcquiredLocks.values()).some(e=>e.size>0)}release(){this._clearLocalAcquiredLocks(),this._clearLockOperationsWithRetry()}notifyLockReAcquire(e){this._notifyLockReAcquire.next({env:e,allReAcquire:!0})}async setLock(e,o,d,I){const f=OperationName.setLock;this._apiRateLimit.canMakeOperation("setLock"),validateChannelType(f,o),this._validateLockOperation(f);const S={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,f),(I==null?void 0:I.ttl)!==void 0&&(I.ttlMAX_LOCK_TTL&&(I.ttl=MAX_LOCK_TTL));const{prefixChannelName:v,operationKey:L}=this._getLockOperationKey(e,o,d);this._checkAndAddOperation(this._setOperationNoRes,L,f);try{var x;await this._requestSetLock(v,d,{ttl:(x=I==null?void 0:I.ttl)!==null&&x!==void 0?x:getParameter("LOCK_TTL")}).toPromise()}catch(F){this._handleLockOperationError(F,f)}finally{this._setOperationNoRes.delete(L)}return S}async removeLock(e,o,d){const I=OperationName.removeLock;this._apiRateLimit.canMakeOperation("removeLock"),validateChannelType(I,o),this._validateLockOperation(I);const f={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,I);const{prefixChannelName:S,operationKey:v}=this._getLockOperationKey(e,o,d);this._checkAndAddOperation(this._removeOperationNoRes,v,I);try{await this._requestRemoveLock(S,d).toPromise()}catch(L){this._handleLockOperationError(L,I)}finally{this._removeOperationNoRes.delete(v)}return f}async acquireLock(e,o,d,I){var f,S;const v=OperationName.acquireLock;this._apiRateLimit.canMakeOperation("acquireLock"),validateChannelType(v,o),this._validateLockOperation(v),this._validateChannelAndLock(e,d,v);const{prefixChannelName:L,operationKey:x}=this._getLockOperationKey(e,o,d);if(!((f=this._localAcquiredLocks.get(L))===null||f===void 0)&&f.get(d)){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_PERFORMING);throw new RtmUnavailableError(v,[re],W)}let F,Y;this._acquireOperationNoRes.has(x)&&this._throwInvalidOperationError(v);const j=new Promise((W,re)=>{F=re,Y=W});this._acquireOperationNoRes.set(x,{retry:(S=I==null?void 0:I.retry)!==null&&S!==void 0&&S,reqSeq:void 0,resolve:Y,reject:F});try{await this._requestAcquireLock(L,d,{retry:I==null?void 0:I.retry,reject:F,resolve:Y}),Y({lockName:d,channelName:e,channelType:o,timestamp:0})}catch(W){if(this.logError(W),isRtmError(W))throw W;this.logError("acquireLock not match rtm error, %o",W)}finally{this._acquireOperationNoRes.delete(x)}return j}async releaseLock(e,o,d){var I,f;const S=OperationName.releaseLock;this._apiRateLimit.canMakeOperation("releaseLock"),validateChannelType(S,o),this._validateLockOperation(S);const v={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,S);const{prefixChannelName:L,operationKey:x}=this._getLockOperationKey(e,o,d);if(!((I=this._acquireOperationNoRes.get(x))!==null&&I!==void 0&&I.retry||(f=this._localAcquiredLocks.get(L))!==null&&f!==void 0&&f.get(d))){const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_ACQUIRED);throw new RtmUnavailableError(S,[Y],F)}this._checkAndAddOperation(this._releaseOperationNoRes,x,S);try{await this._requestReleaseLock(L,d).toPromise()}catch(F){this._handleLockOperationError(F,S)}finally{this._releaseOperationNoRes.delete(x)}return v}async revokeLock(e,o,d,I){const f=OperationName.revokeLock;this._apiRateLimit.canMakeOperation("revokeLock"),validateChannelType(f,o),this._validateLockOperation(f);const S={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,f),validateKey(I,f,"uid");const{prefixChannelName:v,operationKey:L}=this._getLockOperationKey(e,o,d);this._checkAndAddOperation(this._revokeOperationNoRes,L,f);try{await this._requestRevokeLock(v,d,I).toPromise()}catch(x){this._handleLockOperationError(x,f)}finally{this._revokeOperationNoRes.delete(L)}return S}async getLock(e,o){const d=OperationName.getLock;this._apiRateLimit.canMakeOperation("getLock"),validateChannelType(d,o),this._validateLockOperation(d);const I={timestamp:0,totalLocks:0,lockDetails:[],channelName:e,channelType:o};validateKey(e,d,"channel");const f=getChannelNameByType(e,o);try{const S=this._requestGetLock(f),v=await S.toPromise();I.totalLocks=v.length,I.lockDetails=v.map(L=>{var x,F,Y,j;let W=null;try{L!=null&&L.lockState&&(W=JSON.parse(L.lockState))}catch(re){this.logError("parse lockState error, %o",re)}return{lockName:(x=L.lockName)!==null&&x!==void 0?x:"",ttl:(F=W)===null||F===void 0?void 0:F.create_ttl,owner:(Y=(j=W)===null||j===void 0?void 0:j.user)!==null&&Y!==void 0?Y:""}})}catch(S){this._handleLockOperationError(S,d)}return I}async _requestAcquireLock(e,o,d){const I=OperationName.acquireLock,f=getPrefixLockName(o),S="".concat(e).concat(f),v=d==null?void 0:d.resolve,L=d==null?void 0:d.reject,x=this._context.incGetSeq(),F=Long$1.fromNumber(Date.now());this._context.addReportEvents("SyncLockAcquireEvent",{code:0,target:e,lock:o,ttl:Long$1.fromNumber(0),flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,lockrev:Long$1.fromNumber(0),leaseid:this._context.uid,eventtype:"Acquire",sdktype:4,requestts:F,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""});const Y=fromEvent(this,"lockReleasedOrExpired").pipe(filter(ee=>ee===S),take(1)),j=this._notifyLockReAcquire.pipe(filter(ee=>(ee==null?void 0:ee.prefixChannelLockName)===S||(ee==null?void 0:ee.allReAcquire)===!0),switchMap(ee=>{var he,ue;const Ee=!(!((he=this._localAcquiredLocks.get(e))===null||he===void 0)&&he.has(o))&&(d==null?void 0:d.retry),_e=x;this._sendLockPacket(I,"StateLockAcquire",{target:e,requestUuid:"".concat(_e,"_").concat(this._context.instanceId),lock:o,ttl:new Long$1(0,0,!0),flags:new Long$1(Ee?LockImpl.ENABLE_LOCK_BLOCKING|LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP:LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)},ee.env),v&&L&&this._acquireOperationNoRes.set(S,{retry:(ue=d==null?void 0:d.retry)!==null&&ue!==void 0&&ue,reqSeq:_e,resolve:v,reject:L});const De=Ve=>{let{code:Ge,target:He,lock:At,lockRev:Bt,reason:Tt}=Ve;const{code:rt,reason:ye}=convertLockServerCodeToSdkCode(Ge);if(rt!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[ye],rt);return this._updateLocalAcquiredLocks(e,o,"add",Bt.toNumber()),{target:He,lock:At,lockRev:Bt,reason:Tt,code:Ge}},Fe=Ve=>{var Ge;let{lock:He,code:At,target:Bt,lockRev:Tt,eventReportInfo:rt}=Ve;this.log("acquire lock with lock(".concat(o,"), channel: ").concat(replaceRangeWithAsterisk(e),", retry: ").concat(Ee,", serverCode is ").concat(At));const{code:ye}=convertLockServerCodeToSdkCode(At);this._context.addReportEvents("SyncLockAcquireEvent",{code:ye,target:Bt,lock:o,ttl:Long$1.fromNumber(0),flags:new Long$1(Ee?LockImpl.ENABLE_LOCK_BLOCKING|LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP:LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:(Ge=rt==null?void 0:rt.ip)!==null&&Ge!==void 0?Ge:"",userid:this._context.uid,sid:this._context.sid,lockrev:Tt,leaseid:this._context.uid,eventtype:"AcquireResult",sdktype:4,requestts:F,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),ye!==RTMErrorCode.RTM_ERROR_OK||He===o&&Bt===e||(this.log("RTM service Error: acquired unexpected lock on channel '%s', lock '%s', member '%s'",replaceRangeWithAsterisk(e),replaceRangeWithAsterisk(He),replaceRangeWithAsterisk(this._context.uid||"")),this._requestReleaseLock(Bt,He).toPromise()),this._clearReAcquireEffect(e,o,{lockRev:Tt,code:At})};return Ee?this._onOperationPacket("StateLockAcquireResult").pipe(first(Ve=>{let{requestUuid:Ge}=Ve;return"".concat(_e,"_").concat(this._context.instanceId)===Ge}),tap(()=>{this._acquireOperationNoRes.delete(S)}),tap(Fe),map$1(De),takeUntil(this._notifyAcquireRetryReject.pipe(filter(Ve=>Ve===S)))):race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockAcquireResult").pipe(first(Ve=>{let{requestUuid:Ge}=Ve;return"".concat(_e,"_").concat(this._context.instanceId)===Ge}),tap(()=>{this._acquireOperationNoRes.delete(S)}),tap(Fe),map$1(De)))}),takeUntil(Y),share()),W=()=>{this._lockSubscriptions.lockAcquires.delete(e)};return this._lockSubscriptions.lockAcquires.set(e,j.subscribe({error:W,complete:W})),this._notifyLockReAcquire.next({env:void 0,prefixChannelLockName:S}),await j.pipe(take(1),catchError(ee=>(ee instanceof TimeoutError&&this.warn("acquire channel lock timeout"),throwError(ee)))).toPromise()}_requestSetLock(e,o,d){var I;const f=OperationName.setLock,S=this._context.incGetSeq();return this._sendLockPacket(f,"StateLockCreate",{target:e,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:o,ttl:Long$1.fromNumber((I=d==null?void 0:d.ttl)!==null&&I!==void 0?I:getParameter("LOCK_TTL")),flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockCreateResult").pipe(first(v=>{let{requestUuid:L}=v;return"".concat(S,"_").concat(this._context.instanceId)===L}),map$1(v=>{let{code:L}=v;const{code:x,reason:F}=convertLockServerCodeToSdkCode(L);if(x!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(f,[F],x)})))}_clearReAcquireEffect(e,o,d){var I;const{lockRev:f,code:S}=d,v=(I=this._localAcquiredLocks.get(e))===null||I===void 0?void 0:I.get(o);if(v&&v.revision!==f.toNumber()){this.log("newRev: ".concat(f,", rev: ").concat(v==null?void 0:v.revision,", code: ").concat(S," for reacquire."));const{channelName:L,channelType:x}=getChannelDetailByName(e),F={channelType:x,channelName:L,eventType:"EXPIRED",lockName:o,ttl:0,publisher:"",snapshot:[],owner:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitLockExpired(F),this._requestReleaseLock(e,o).toPromise()}}_requestReleaseLock(e,o){const d=OperationName.releaseLock,I=this._context.incGetSeq(),f=Long$1.fromNumber(Date.now());return this._context.addReportEvents("SyncLockReleaseEvent",{code:0,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:this._context.uid,eventtype:"Release",sdktype:4,requestts:f,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),this._sendLockPacket(d,"StateLockRelease",{target:e,requestUuid:"".concat(I,"_").concat(this._context.instanceId),lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockReleaseResult").pipe(first(S=>{let{requestUuid:v}=S;return"".concat(I,"_").concat(this._context.instanceId)===v}),map$1(S=>{let{code:v}=S;const{code:L,reason:x}=convertLockServerCodeToSdkCode(v);if(this._context.addReportEvents("SyncLockReleaseEvent",{code:L,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:this._context.uid,eventtype:"ReleaseResult",sdktype:4,requestts:f,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),L!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(d,[x],L);{const F={channelName:e,lockName:o};this._updateLocalAcquiredLocks(e,o,"delete"),this.emit("lockReleasedOrExpired","".concat(F.channelName).concat(getPrefixLockName(F.lockName)))}})))}_requestRemoveLock(e,o){const d=OperationName.removeLock,I=this._context.incGetSeq();return this._sendLockPacket(d,"StateLockDelete",{target:e,lock:o,requestUuid:"".concat(I,"_").concat(this._context.instanceId),flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockDeleteResult").pipe(first(f=>{let{requestUuid:S}=f;return"".concat(I,"_").concat(this._context.instanceId)===S}),map$1(f=>{let{code:S}=f;const{code:v,reason:L}=convertLockServerCodeToSdkCode(S);if(v!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(d,[L],v)})))}_requestRevokeLock(e,o,d){const I=OperationName.revokeLock,f=this._context.incGetSeq(),S=Long$1.fromNumber(Date.now());return this._context.addReportEvents("SyncLockDisableEvent",{code:0,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:d,eventtype:"Disable",sdktype:4,requestts:S,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),this._sendLockPacket(I,"StateLockDisable",{target:e,requestUuid:"".concat(f,"_").concat(this._context.instanceId),lock:o,userId:d,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockDisableResult").pipe(first(v=>{let{requestUuid:L}=v;return"".concat(f,"_").concat(this._context.instanceId)===L}),map$1(v=>{let{code:L}=v;const{code:x,reason:F}=convertLockServerCodeToSdkCode(L);if(this._context.addReportEvents("SyncLockDisableEvent",{code:x,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:d,eventtype:"DisableResult",sdktype:4,requestts:S,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),x!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[F],x)})))}_requestGetLock(e){const o=OperationName.getLock,d=this._context.incGetSeq();return this._sendLockPacket(o,"StateLockList",{target:e,sequence:d,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockListResult").pipe(first(I=>{let{sequence:f}=I;return d.eq(f)}),map$1(I=>{let{code:f,lockStates:S}=I;const{code:v,reason:L}=convertLockServerCodeToSdkCode(f);if(v!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[L],v);return S})))}_validateChannelAndLock(e,o,d){validateKey(e,d,"channel"),validateKey(o,d,"lock-name")}_validateLockOperation(e){this._validateRtmConnection(e),this._validateEnableLock(e)}_getLockOperationKey(e,o,d){const I=getChannelNameByType(e,o),f=getPrefixLockName(d);return{prefixChannelName:I,prefixLockName:f,operationKey:"".concat(I).concat(f)}}_throwInvalidOperationError(e){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_PERFORMING);throw new RtmUnavailableError(e,[d],o)}_handleLockOperationError(e,o){if(isRtmError(e)){if(this.logError(e),isNoLogged(e))throw e;if(isTimeout(e)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT);throw new RtmUnavailableError(o,[I],d)}if(e.code!==void 0){const{code:d,reason:I}=getErrorInfoByCode(e.code);throw new RtmUnavailableError(o,[I],d)}this.logError("error code is undefined, %o",e)}else this.logError("not rtm error, %o",e)}_checkAndAddOperation(e,o,d){e.has(o)&&this._throwInvalidOperationError(d),e.add(o)}_sendLockPacket(e,o,d,I){I!==void 0?this._sendLockPacketUseOneEnv(e,I,o,d):this._getRTMSession().sendOperationPacket(e,o,d)}_sendLockPacketUseOneEnv(e,o,d,I){this._getRTMSession().sendOperationPacketUseOneEnv(e,o,d,I)}_onOperationPacket(e){return this._getRTMSession().onOperationPacket(e)}_onLockUpdate(e){const{target:o,flags:d,code:I,lock:f}=e,{channelName:S,channelType:v}=getChannelDetailByName(o);if(this._context.addReportEvents("SyncLockUpdateEvent",{vid:Long$1.fromValue(this._context.vid||"0"),code:I,sid:this._context.sid,lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,replyts:Long$1.fromNumber(Date.now()),target:o,eventtype:I===SyncServerErrorCode.kLockWatching?"Watch":"Expire",sdktype:4,flags:d,lock:f,usersid:this._context.sid,ip:"",sdkip:""}),I===SyncServerErrorCode.kLockWatching)this._onLockWatching({prefixChannelName:o,lockName:f});else if(I===SyncServerErrorCode.kLockExpired){const L={channelType:v,channelName:S,eventType:"EXPIRED",lockName:f,ttl:0,publisher:"",snapshot:[],owner:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitLockExpired(L)}}_onLockWatching(e){const{prefixChannelName:o,lockName:d}=e;this.info("lock is watching: ".concat(o).concat(getPrefixLockName(d)))}_emitLockExpired(e){var o;const d=getChannelNameByType(e.channelName,e.channelType);(o=this._localAcquiredLocks.get(d))!==null&&o!==void 0&&o.get(e.lockName)&&(this._context.internalEmitter.emit("lock",_objectSpread2(_objectSpread2({},e),{},{ttl:0})),this.emit("lockReleasedOrExpired","".concat(d).concat(getPrefixLockName(e.lockName))),this._updateLocalAcquiredLocks(d,e==null?void 0:e.lockName,"delete"))}_updateLocalAcquiredLocks(e,o,d,I){var f;const S=(f=this._localAcquiredLocks.get(e))!==null&&f!==void 0?f:new Map;d==="delete"?S.delete(o):(S.set(o,{revision:I}),this._localAcquiredLocks.set(e,S))}_validateEnableLock(e){const o=getParameter("LOCK_ENABLED");if((o!==void 0?String(o):this._context.consoleConfig["lock.enabled"])!=="true"){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE);throw new RtmUnavailableError(e,[I],d)}}_clearLocalAcquiredLocks(){this._localAcquiredLocks.forEach((e,o)=>{e.forEach((d,I)=>{this.emit("lockReleasedOrExpired","".concat(o).concat(getPrefixLockName(I)))})}),this._localAcquiredLocks.clear()}_clearLockOperationsWithRetry(){this._acquireOperationNoRes.forEach((e,o)=>{const{reject:d}=e,{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_ACQUIRE_FAILED);d&&d(new RtmUnavailableError(OperationName.acquireLock,[f],I)),this._notifyAcquireRetryReject.next(o),this.emit("lockReleasedOrExpired",o)}),this._acquireOperationNoRes.clear()}}var _class$3;_defineProperty$1(LockImpl,"LOCK_REVISION2",1<<20),_defineProperty$1(LockImpl,"IS_GROUP",1),_defineProperty$1(LockImpl,"ENABLE_LOCK_BLOCKING",1<<18);let Lock=(_class$3=class extends EventBase{constructor(n,e,o,d){super(n,"Lock",!0,!0),_defineProperty$1(this,"lockImpl",void 0),this.lockImpl=new LockImpl(n,e,o,d)}async setLock(n,e,o,d){return await this.lockImpl.setLock(n,e,o,d)}async removeLock(n,e,o){return await this.lockImpl.removeLock(n,e,o)}async acquireLock(n,e,o,d){return await this.lockImpl.acquireLock(n,e,o,d)}async releaseLock(n,e,o){return await this.lockImpl.releaseLock(n,e,o)}async revokeLock(n,e,o,d){return await this.lockImpl.revokeLock(n,e,o,d)}async getLock(n,e){return await this.lockImpl.getLock(n,e)}},_applyDecoratedDescriptor(_class$3.prototype,"setLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"setLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"removeLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"removeLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"acquireLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"acquireLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"releaseLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"releaseLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"revokeLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"revokeLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"getLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"getLock"),_class$3.prototype),_class$3);var StatePrefixEnum=function(n){return n.STATE_REVISION_KEY_PREFIX="_rev_",n.STATE_TIMESTAMP_PREFIX="_t_",n.STATE_AUTHOR_PREFIX="_m_",n.STATE_REVISION="_rev",n.STATE_INTERNAL_PREFIX="_",n}(StatePrefixEnum||{}),_class$2;class MetadataItem{constructor(e){var o,d,I,f,S;_defineProperty$1(this,"key",void 0),_defineProperty$1(this,"value",void 0),_defineProperty$1(this,"revision",void 0),_defineProperty$1(this,"updateTs",void 0),_defineProperty$1(this,"authorUserId",void 0),this.key=(o=e==null?void 0:e.key)!==null&&o!==void 0?o:"",this.value=(d=e==null?void 0:e.value)!==null&&d!==void 0?d:"",this.revision=(I=e==null?void 0:e.revision)!==null&&I!==void 0?I:-1,this.updateTs=(f=e==null?void 0:e.updateTs)!==null&&f!==void 0?f:0,this.authorUserId=(S=e==null?void 0:e.authorUserId)!==null&&S!==void 0?S:""}setKey(e){if(typeof e!="string"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_KEY);throw new RtmInvalidArgumentError(OperationName.storage,[d],o)}this.key=e,this.key=e}getKey(){if(typeof this.key=="string")return this.key;throw new RtmInternalError("Cannot get MetaDataItem key")}setValue(e){if(typeof e!="string"&&!isNull$2(null)){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_VALUE);throw new RtmInvalidArgumentError(OperationName.storage,[d],o)}this.value=e}getValue(){if(typeof this.value=="string"||isNull$2(null))return this.value;throw new RtmInternalError("Cannot get MetaDataItem value")}setRevision(e){if(typeof e!="number"||e%1!=0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(OperationName.storage,[d],o)}this.revision=e}getRevision(){if(typeof this.revision=="number")return this.revision;throw new RtmInternalError("Cannot get MetaDataItem revision")}getUpdateTs(){return this.updateTs}getAuthorUserId(){return this.authorUserId}}function getRequestInfo(n,e){const o={[StatePrefixEnum.STATE_REVISION]:e!==void 0&&e>=0?e:void 0};for(let d=0;d=0||I.getRevision()===-2?I.getRevision():void 0}return omitBy$1(o,isUndefined$2)}function covertStateStringToMetaData(n){const e=JSON.parse(n),o={majorRevision:e[StatePrefixEnum.STATE_REVISION],items:[]},d=omit$1(e,StatePrefixEnum.STATE_REVISION),I=Object.keys(d).filter(f=>f[0]!=="_");return o.items=I.map(f=>new MetadataItem({key:f,value:d[f],revision:d["".concat(StatePrefixEnum.STATE_REVISION_KEY_PREFIX).concat(f)],updateTs:d["".concat(StatePrefixEnum.STATE_TIMESTAMP_PREFIX).concat(f)],authorUserId:d["".concat(StatePrefixEnum.STATE_AUTHOR_PREFIX).concat(f)]})),o}class StorageImpl extends EventBase{_handleStorageOperationError(e,o){if(isRtmError(e)){if(this.logError(e),isNoLogged(e))throw e;if(isTimeout(e)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);throw new RtmUnavailableError(o,[I],d)}if(e.code!==void 0){const{code:d,reason:I}=getErrorInfoByCode(e.code);throw new RtmUnavailableError(o,[I],d)}this.logError("error code is undefined, %o",e)}else this.logError("not rtm error, %o",e);throw e}_convertMetadataInfoToItems(e){const o=new Map;return e.forEach(d=>{var I;const f=new MetadataItem;f.setKey(d.key),f.setRevision((I=d.revision)!==null&&I!==void 0?I:-1),f.setValue(d.value),o.set(d.key,f)}),Array.from(o.values())}constructor(e,o,d,I,f,S){super(e,"StorageImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_channelMetaEventInfos",new Map),_defineProperty$1(this,"_userMetaEventInfos",new Map),_defineProperty$1(this,"_getRTMSession",void 0),_defineProperty$1(this,"_validateRtmConnection",void 0),_defineProperty$1(this,"_emitStorageEvent",void 0),_defineProperty$1(this,"_getLockRevision",void 0),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),_defineProperty$1(this,"_notifyUserMetaReSub",new Subject),_defineProperty$1(this,"_metadataSubscriptions",{userMetadataSubs:new Map}),_defineProperty$1(this,"_userMetadataSub",new Set),_defineProperty$1(this,"_onChannelMetaDataUpdated",v=>{var L;let{channelId:x,data:F}=v;if(((L=this._channelMetaEventInfos.get(x))!==null&&L!==void 0?L:-1)>=F.majorRevision||!this._context.getChannelOptionsByKey(x,"withMetadata","real"))return void this.log("channel(".concat(x,") meta not changed or not subscribed, ignore."));const{channelName:Y,channelType:j}=getChannelDetailByName(x);let W="UPDATE";this._channelMetaEventInfos.has(x)||(W="SNAPSHOT"),this._channelMetaEventInfos.set(x,F.majorRevision),this._emitStorageEvent(F,{channelName:Y,channelType:j,publisher:"",storageType:"CHANNEL",eventType:W})}),_defineProperty$1(this,"_userMetaDataUpdatedHandler",v=>{var L;let{uid:x,data:F}=v;if(((L=this._userMetaEventInfos.get(x))!==null&&L!==void 0?L:-1)>=F.majorRevision||!this.isSubedUserMetadata(x))return void this.log("user(".concat(replaceRangeWithAsterisk(x),") meta not changed or not subscribed, ignore."));let Y="UPDATE";this._userMetaEventInfos.has(x)||(Y="SNAPSHOT"),this._userMetaEventInfos.set(x,F.majorRevision),this._emitStorageEvent(F,{channelType:"USER",channelName:"",publisher:x,storageType:"USER",eventType:Y})}),this._context=o,this._getRTMSession=genGetRTMSession(d),this._validateRtmConnection=I,this._emitStorageEvent=f,this._getLockRevision=S,this._context.internalEmitter.on("StateUpdate",v=>{this._onStateUpdate(v)})}isSubedUserMetadata(e){return this._userMetadataSub.has(e)}unsubAllUserMetadata(){this._userMetadataSub.forEach(e=>{this.requestUnsubscribeUserMetadata(e)})}release(){this._userMetadataSub.forEach(e=>{this.emit("unsubUserMetadata",e)}),this._userMetadataSub.clear(),this._userMetaEventInfos.clear(),this._channelMetaEventInfos.clear()}deleteChannelMetaEventInfos(e){this._channelMetaEventInfos.delete(e)}requestUnsubscribeUserMetadata(e){const o=OperationName.unsubscribeUserMetadata,d=this._context.incGetSeq(),I=Date.now();this._sendStoragePacket(o,"StateUnsubscribe",{sequence:d,target:e,subTarget:"",flags:Long$1.fromNumber(0)}),this._userMetaEventInfos.delete(e),this._userMetadataSub.delete(e),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(I),replyts:Long$1.fromNumber(Date.now()),eventtype:"UnSubscribe",sdktype:4,flags:Long$1.fromNumber(0),code:0,seq:d,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid}),this.emit("unsubUserMetadata",e)}notifyUserMetaReSub(e){this._notifyUserMetaReSub.next({env:e,allReSub:!0})}async setChannelMetadata(e,o,d,I){var f,S;const v=OperationName.setChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaModify"),validateChannelType(v,o),this._validateRtmConnection(v),this._validateEnableStorage(v);const L={totalCount:0,timestamp:0,channelName:e,channelType:o};this._validateSessionExist(v);const x=getChannelNameByType(e,o);validateKey(e,v,"channel");const F=this._getLockRevision(x,(f=I==null?void 0:I.lockName)!==null&&f!==void 0?f:"",v),Y=this._convertMetadataInfoToItems(d),j=(S=I==null?void 0:I.majorRevision)!==null&&S!==void 0?S:-1;validMetaDataItem(v,{items:Y,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:j,type:"Set"});const W=JSON.stringify(getRequestInfo(Y,j));validateMetaDataSize(v,W);try{await this._requestSetChannelMetadata(W,{majorRevision:j,enableRecordTs:I==null?void 0:I.addTimeStamp,enableRecordUserId:I==null?void 0:I.addUserId},x,I==null?void 0:I.lockName,F).toPromise()}catch(re){this._handleStorageOperationError(re,v)}return L}async removeChannelMetadata(e,o,d){var I,f;const S=OperationName.removeChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaModify"),validateChannelType(S,o),this._validateRtmConnection(S),this._validateEnableStorage(S);const v={totalCount:0,timestamp:0,channelName:e,channelType:o},L=getChannelNameByType(e,o);this._validateSessionExist(S),validateKey(e,S,"channel");const x=d==null?void 0:d.data,F=!x||x.length===0,Y=x?this._convertMetadataInfoToItems(x):[];var j;F?d!=null&&d.majorRevision&&validMetaDataMajorRevisionForRemove(S,d.majorRevision):validMetaDataItem(S,{items:Y,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(j=d==null?void 0:d.majorRevision)!==null&&j!==void 0?j:-1,type:"Delete"});const W=this._getLockRevision(L,(I=d==null?void 0:d.lockName)!==null&&I!==void 0?I:"",S),re=JSON.stringify(getRequestInfo(cloneDeep$1(Y).map(ue=>(ue.setValue(null),ue)),(f=d==null?void 0:d.majorRevision)!==null&&f!==void 0?f:-1));validateMetaDataSize(S,re);try{var ee,he;await(F?this._requestClearChannelMetadata({majorRevision:(ee=d==null?void 0:d.majorRevision)!==null&&ee!==void 0?ee:-1,enableRecordTs:d==null?void 0:d.addTimeStamp,enableRecordUserId:d==null?void 0:d.addUserId},L,d==null?void 0:d.lockName,W).toPromise():this._requestRemoveChannelMetadata(re,{majorRevision:(he=d==null?void 0:d.majorRevision)!==null&&he!==void 0?he:-1,enableRecordTs:d==null?void 0:d.addTimeStamp,enableRecordUserId:d==null?void 0:d.addUserId},L,d==null?void 0:d.lockName,W).toPromise())}catch(ue){this._handleStorageOperationError(ue,S)}return v}async updateChannelMetadata(e,o,d,I){var f,S,v;const L=OperationName.updateChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaModify"),validateChannelType(L,o),this._validateRtmConnection(L),this._validateEnableStorage(L);const x={timestamp:0,totalCount:0,channelName:e,channelType:o},F=getChannelNameByType(e,o);this._validateSessionExist(L),validateKey(e,L,"channel");const Y=this._convertMetadataInfoToItems(d);validMetaDataItem(L,{items:Y,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(f=I==null?void 0:I.majorRevision)!==null&&f!==void 0?f:-1,type:"Update"});const j=this._getLockRevision(F,(S=I==null?void 0:I.lockName)!==null&&S!==void 0?S:"",L),W=JSON.stringify(getRequestInfo(cloneDeep$1(Y).map(ee=>(ee.getRevision()===-1&&ee.setRevision(-2),ee)),(v=I==null?void 0:I.majorRevision)!==null&&v!==void 0?v:-1));validateMetaDataSize(L,W);try{var re;await this._requestUpdateChannelMetadata(W,{majorRevision:(re=I==null?void 0:I.majorRevision)!==null&&re!==void 0?re:-1,enableRecordTs:I==null?void 0:I.addTimeStamp,enableRecordUserId:I==null?void 0:I.addUserId},F,I==null?void 0:I.lockName,j).toPromise()}catch(ee){this._handleStorageOperationError(ee,L)}return x}async getChannelMetadata(e,o){const d=OperationName.getChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaGet"),validateChannelType(d,o),this._validateRtmConnection(d),this._validateEnableStorage(d);const I={totalCount:0,majorRevision:0,metadata:{},timestamp:0,channelName:e,channelType:o};this._validateSessionExist(d),validateKey(e,d,"channel");try{const f=this._requestGetChannelMetadata(getChannelNameByType(e,o)),S=await f.pipe(map$1(v=>covertStateStringToMetaData(v))).toPromise();I.majorRevision=S.majorRevision,I.totalCount=S.items.length,S.items.forEach(v=>{var L;I.metadata[v.getKey()]={value:(L=v.getValue())!==null&&L!==void 0?L:"",revision:v.getRevision(),updated:v.getUpdateTs(),authorUid:v.getAuthorUserId()}})}catch(f){this._handleStorageOperationError(f,d)}return I}async setUserMetadata(e,o){var d;const I=OperationName.setUserMetadata;this._apiRateLimit.canMakeOperation("userMetaModify"),this._validateRtmConnection(I),this._validateEnableStorage(I);const f=o==null?void 0:o.userId,S={timestamp:0,totalCount:0,userId:f||this._context.uid};this._validateSessionExist(I),f&&validateKey(f,I,"uid");const v=this._convertMetadataInfoToItems(e),L=(d=o==null?void 0:o.majorRevision)!==null&&d!==void 0?d:-1;validMetaDataItem(I,{items:v,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:L,type:"Set"});const x=JSON.stringify(getRequestInfo(v,L));validateMetaDataSize(I,x);try{await this._requestSetUserMetadata(x,{majorRevision:L,enableRecordTs:o==null?void 0:o.addTimeStamp,enableRecordUserId:o==null?void 0:o.addUserId},f).toPromise()}catch(F){this._handleStorageOperationError(F,I)}return S}async removeUserMetadata(e){const o=OperationName.removeUserMetadata;this._apiRateLimit.canMakeOperation("userMetaModify"),this._validateRtmConnection(o),this._validateEnableStorage(o);const d=e==null?void 0:e.userId,I={timestamp:0,totalCount:0,userId:d||this._context.uid};this._validateSessionExist(o),d&&validateKey(d,o,"uid");const f=e==null?void 0:e.data,S=!f||f.length===0,v=this._convertMetadataInfoToItems(f??[]);var L;S?e!=null&&e.majorRevision&&validMetaDataMajorRevisionForRemove(o,e.majorRevision):validMetaDataItem(o,{items:v,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(L=e==null?void 0:e.majorRevision)!==null&&L!==void 0?L:-1,type:"Delete"});try{var x,F,Y;const j=JSON.stringify(getRequestInfo(cloneDeep$1(v).map(re=>(re.setValue(null),re)),(x=e==null?void 0:e.majorRevision)!==null&&x!==void 0?x:-1));validateMetaDataSize(o,j),await(S?this._requestClearUserMetadata({majorRevision:(F=e==null?void 0:e.majorRevision)!==null&&F!==void 0?F:-1,enableRecordTs:e==null?void 0:e.addTimeStamp,enableRecordUserId:e==null?void 0:e.addUserId},d).toPromise():this._requestRemoveUserMetadata(j,{majorRevision:(Y=e==null?void 0:e.majorRevision)!==null&&Y!==void 0?Y:-1,enableRecordTs:e==null?void 0:e.addTimeStamp,enableRecordUserId:e==null?void 0:e.addUserId},d).toPromise())}catch(j){this._handleStorageOperationError(j,o)}return I}async updateUserMetadata(e,o){var d,I;const f=OperationName.updateUserMetadata;this._apiRateLimit.canMakeOperation("userMetaModify"),this._validateRtmConnection(f),this._validateEnableStorage(f);const S=o==null?void 0:o.userId,v={timestamp:0,totalCount:0,userId:S||this._context.uid};this._validateSessionExist(f),S&&validateKey(S,f,"uid");const L=this._convertMetadataInfoToItems(e??[]);validMetaDataItem(f,{items:L,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(d=o==null?void 0:o.majorRevision)!==null&&d!==void 0?d:-1,type:"Update"});const x=JSON.stringify(getRequestInfo(cloneDeep$1(L).map(Y=>(Y.getRevision()===-1&&Y.setRevision(-2),Y)),(I=o==null?void 0:o.majorRevision)!==null&&I!==void 0?I:-1));validateMetaDataSize(f,x);try{var F;await this._requestUpdateUserMetadata(x,{majorRevision:(F=o==null?void 0:o.majorRevision)!==null&&F!==void 0?F:-1,enableRecordTs:o==null?void 0:o.addTimeStamp,enableRecordUserId:o==null?void 0:o.addUserId},S).toPromise()}catch(Y){this._handleStorageOperationError(Y,f)}return v}async getUserMetadata(e){const o=OperationName.getUserMetadata;this._apiRateLimit.canMakeOperation("userMetaGet"),this._validateRtmConnection(o),this._validateEnableStorage(o);const d=e==null?void 0:e.userId,I={timestamp:0,totalCount:0,majorRevision:0,metadata:{},userId:d||this._context.uid};this._validateSessionExist(o),d&&validateKey(d,o,"uid");try{const f=covertStateStringToMetaData(await this._requestGetUserMetadata(d||this._context.uid).toPromise());I.totalCount=f.items.length,I.majorRevision=f.majorRevision,f.items.forEach(S=>{var v;I.metadata[S.getKey()]={value:(v=S.getValue())!==null&&v!==void 0?v:"",revision:S.getRevision(),updated:S.getUpdateTs(),authorUid:S.getAuthorUserId()}})}catch(f){this._handleStorageOperationError(f,o)}return I}async subscribeUserMetadata(e){const o=OperationName.subscribeUserMetadata;this._apiRateLimit.canMakeOperation("userMetaSub"),this._validateRtmConnection(o),this._validateEnableStorage(o),this._validateEnableStorageSub(o);const d={timestamp:0,userId:e||this._context.uid};if(this._validateSessionExist(o),validateKey(e,o,"uid"),this._userMetadataSub.has(e))return d;if(this._userMetadataSub.size>=MAX_SUBSCRIPTION_USER){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_SUBSCRIBE_USER_EXCEED_LIMITATION);throw new RtmLimitExceededError(o,[f],I)}try{await this._requestSubscribeUserMetadata(e),this._userMetadataSub.add(e)}catch(I){if(isRtmError(I)){if(this.logError(I),isNoLogged(I))throw I;if(I.code){const{code:f,reason:S}=getErrorInfoByCode(I.code);throw new RtmUnavailableError(o,[S],f)}this.logError("error code is undefined, %o",I)}else{if(isTimeout(I)){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);throw this.emit("unsubUserMetadata",e),new RtmUnavailableError(o,[S],f)}this.logError("".concat(o," occurs error not of rtm, %o"),I)}}return d}async unsubscribeUserMetadata(e){const o=OperationName.unsubscribeUserMetadata;this._validateRtmConnection(o,!1),this._validateEnableStorage(o);const d={timestamp:0,userId:e||this._context.uid};if(this._validateSessionExist(o),validateKey(e,o,"uid"),!this._userMetadataSub.has(e)){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_SUBSCRIBE);throw new RtmInvalidStatusError(o,[f],I)}try{this.requestUnsubscribeUserMetadata(e),this._userMetadataSub.delete(e)}catch(I){if(isRtmError(I))throw I}return d}async _requestSubscribeUserMetadata(e){const o=OperationName.subscribeUserMetadata;this.emit("unsubUserMetadata",e);const d=fromEvent(this,"unsubUserMetadata").pipe(filter(L=>e===L),take(1)),I=this._context.incGetSeq(),f=Date.now(),S=this._notifyUserMetaReSub.pipe(filter(L=>(L==null?void 0:L.userId)===e||(L==null?void 0:L.allReSub)===!0),switchMap(L=>{const x=I;return this._sendStoragePacket(OperationName.subscribe,"StateSubscribe",{sequence:x,target:e,subTarget:"",flags:Long$1.fromNumber(0)},L.env),this._onOperationPacket("StateSubscribeResult").pipe(first(F=>{let{sequence:Y}=F;return x.eq(Y)}),tap(F=>{let{code:Y}=F;const{code:j,reason:W}=convertServerCodeToSdkCodeForSub(Y);if(this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:Long$1.fromNumber(0),code:j,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[W],j);this._userMetadataSub.add(e)}))}),takeUntil(d),share()),v=()=>{this._metadataSubscriptions.userMetadataSubs.delete(e)};this._metadataSubscriptions.userMetadataSubs.set(e,S.subscribe({error:v,complete:v})),this._notifyUserMetaReSub.next({env:void 0,userId:e}),await S.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(L=>(L instanceof TimeoutError&&(this.warn("subscribe user metadata timeout"),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:Long$1.fromNumber(0),code:RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid})),throwError(L)))).toPromise()}_sendStoragePacket(e,o,d,I){I!==void 0?this._sendStoragePacketUseOneEnv(e,I,o,d):this._getRTMSession().sendOperationPacket(e,o,d)}_sendStoragePacketUseOneEnv(e,o,d,I){this._getRTMSession().sendOperationPacketUseOneEnv(e,o,d,I)}_onOperationPacket(e){return this._getRTMSession().onOperationPacket(e)}_requestSetChannelMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0;const S=OperationName.setChannelMetadata,v=this._context.incGetSeq(),L=Date.now(),x=o==null?void 0:o.majorRevision;return this._sendStoragePacket(S,"StateModify",{sequence:v,target:d,requestUuid:"".concat(v,"_").concat(this._context.instanceId),value:e,lock:I??"",lockRev:Long$1.fromNumber(f??0),baseRevision:Long$1.fromNumber(x>=0?x:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(F=>{let{sequence:Y}=F;return v.eq(Y)}),map$1(F=>{let{code:Y}=F;const{code:j,reason:W}=convertMetadataServerCodeToSdkCode(Y);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(L),replyts:Long$1.fromNumber(Date.now()),target:d,eventtype:"Set",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(v,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:j,seq:v,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:I??"",lockrev:Long$1.fromNumber(f??0),subtarget:this._context.uid,sdkip:""}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(S,[W],j)})))}_requestGetChannelMetadata(e){const o=OperationName.getChannelMetadata,d=this._context.incGetSeq(),I=Date.now();return this._sendStoragePacket(o,"StateGet",{target:e,subTarget:"",lock:"",sequence:d,flags:new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2,0,!0),lockRev:Long$1.fromNumber(0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateGetResult").pipe(first(f=>{let{sequence:S}=f;return d.eq(S)}),map$1(f=>{let{code:S,allStates:v}=f;const{code:L,reason:x}=convertMetadataServerCodeToSdkCode(S),F=L===0?covertStateStringToMetaData(v).majorRevision:0;if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(I),replyts:Long$1.fromNumber(Date.now()),target:e,eventtype:"Get",revision:Long$1.fromNumber(F),uuid:"".concat(d,"_").concat(this._context.instanceId),sdktype:4,flags:new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2,0,!0),code:L,seq:d,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),L!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[x],L);return v}),filter(f=>{var S;return covertStateStringToMetaData(f).majorRevision>=((S=this._channelMetaEventInfos.get(e))!==null&&S!==void 0?S:0)})))}_requestRemoveChannelMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0;const S=OperationName.removeChannelMetadata,v=this._context.incGetSeq(),L=Date.now(),x=o==null?void 0:o.majorRevision;return this._sendStoragePacket(S,"StateModify",{sequence:v,target:d,requestUuid:"".concat(v,"_").concat(this._context.instanceId),lock:I??"",lockRev:Long$1.fromNumber(f??0),value:e,baseRevision:Long$1.fromNumber(x>=0?x:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(F=>{let{sequence:Y}=F;return v.eq(Y)}),map$1(F=>{let{code:Y}=F;const{code:j,reason:W}=convertMetadataServerCodeToSdkCode(Y);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(L),replyts:Long$1.fromNumber(Date.now()),target:d,eventtype:"Delete",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(v,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:j,seq:v,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:I??"",lockrev:Long$1.fromNumber(f??0),subtarget:this._context.uid,sdkip:""}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(S,[W],j)})))}_requestClearChannelMetadata(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},o=arguments.length>1?arguments[1]:void 0,d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0;const f=OperationName.removeChannelMetadata,S=this._context.incGetSeq(),v=Date.now(),L=e==null?void 0:e.majorRevision;return this._sendStoragePacket(f,"StateSet",{sequence:S,target:o,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:d??"",lockRev:Long$1.fromNumber(I??0),value:JSON.stringify({}),baseRevision:Long$1.fromNumber(L>=0?L:0),author:e.enableRecordUserId?this._context.uid:"",flags:e.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(x=>{let{sequence:F}=x;return S.eq(F)}),map$1(x=>{let{code:F}=x;const{code:Y,reason:j}=convertMetadataServerCodeToSdkCode(F);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(v),replyts:Long$1.fromNumber(Date.now()),target:o,eventtype:"Clear",revision:Long$1.fromNumber(e.majorRevision),uuid:"".concat(S,"_").concat(this._context.instanceId),sdktype:4,flags:e.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:Y,seq:S,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:d??"",lockrev:Long$1.fromNumber(I??0),subtarget:this._context.uid,sdkip:""}),Y!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(f,[j],Y)})))}_requestUpdateChannelMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0;const S=OperationName.updateChannelMetadata,v=this._context.incGetSeq(),L=Date.now(),x=o==null?void 0:o.majorRevision;return this._sendStoragePacket(S,"StateModify",{sequence:v,target:d,requestUuid:"".concat(v,"_").concat(this._context.instanceId),lock:I??"",lockRev:Long$1.fromNumber(f??0),value:e,baseRevision:Long$1.fromNumber(x>=0?x:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(F=>{let{sequence:Y}=F;return v.eq(Y)}),map$1(F=>{let{code:Y}=F;const{code:j,reason:W}=convertMetadataServerCodeToSdkCode(Y);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(L),replyts:Long$1.fromNumber(Date.now()),target:d,eventtype:"Update",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(v,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:j,seq:v,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:I??"",lockrev:Long$1.fromNumber(f??0),subtarget:this._context.uid,sdkip:""}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(S,[W],j)})))}_requestSetUserMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0;const I=OperationName.setUserMetadata,f=this._context.incGetSeq(),S=Date.now(),v=o==null?void 0:o.majorRevision;return this._sendStoragePacket(I,"StateModify",{sequence:f,target:d??this._context.uid,requestUuid:"".concat(f,"_").concat(this._context.instanceId),value:e,lock:"",lockRev:Long$1.fromNumber(0),baseRevision:Long$1.fromNumber(v>=0?v:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(L=>{let{sequence:x}=L;return f.eq(x)}),tap(L=>{let{code:x}=L;const{code:F,reason:Y}=convertMetadataServerCodeToSdkCode(x);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(S),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Set",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(f,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:F,seq:f,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),F!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[Y],F)})))}_validateSessionExist(e){if(this._getRTMSession()===void 0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[d],o)}}_validateEnableStorage(e){const o=getParameter("STORAGE_ENABLED");if((o!==void 0?String(o):this._context.consoleConfig["storage.enabled"])!=="true"){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(e,[I],d)}}_validateEnableStorageSub(e){const o=getParameter("STORAGE_USER_SUB_ENABLED");if((o!==void 0?String(o):this._context.consoleConfig["storage.user_subscribe_enabled"])!=="true"){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(e,[I],d)}}_requestUpdateUserMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0;const I=OperationName.updateUserMetadata,f=o==null?void 0:o.majorRevision,S=this._context.incGetSeq(),v=Date.now();return this._sendStoragePacket(I,"StateModify",{sequence:S,target:d??this._context.uid,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:"",lockRev:Long$1.fromNumber(0),value:e,baseRevision:Long$1.fromNumber(f>=0?f:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(L=>{let{sequence:x}=L;return S.eq(x)}),tap(L=>{let{code:x}=L;const{code:F,reason:Y}=convertMetadataServerCodeToSdkCode(x);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(v),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Update",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(S,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:F,seq:S,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),F!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[Y],F)})))}_requestGetUserMetadata(e){const o=OperationName.getUserMetadata,d=this._context.incGetSeq(),I=Date.now();return this._sendStoragePacket(o,"StateGet",{target:e,subTarget:"",lock:"",sequence:d,flags:new Long$1(StorageImpl.LOCK_REVISION2,0,!0),lockRev:Long$1.fromNumber(0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateGetResult").pipe(first(f=>{let{sequence:S}=f;return d.eq(S)}),map$1(f=>{let{code:S,allStates:v}=f;const{code:L,reason:x}=convertMetadataServerCodeToSdkCode(S),F=L===0?covertStateStringToMetaData(v).majorRevision:0;if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(I),replyts:Long$1.fromNumber(Date.now()),target:e,eventtype:"Get",revision:Long$1.fromNumber(F),uuid:"".concat(d,"_").concat(this._context.instanceId),sdktype:4,flags:new Long$1(StorageImpl.LOCK_REVISION2,0,!0),code:L,seq:d,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),L!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[x],L);return v}),filter(f=>{var S;return covertStateStringToMetaData(f).majorRevision>=((S=this._userMetaEventInfos.get(e))!==null&&S!==void 0?S:0)})))}_requestRemoveUserMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0;const I=OperationName.removeUserMetadata,f=o==null?void 0:o.majorRevision,S=this._context.incGetSeq(),v=Date.now();return this._sendStoragePacket(I,"StateModify",{sequence:S,target:d??this._context.uid,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:"",lockRev:Long$1.fromNumber(0),value:e,baseRevision:Long$1.fromNumber(f>=0?f:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(L=>{let{sequence:x}=L;return S.eq(x)}),tap(L=>{let{code:x}=L;const{code:F,reason:Y}=convertMetadataServerCodeToSdkCode(x);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(v),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Delete",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(S,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:F,seq:S,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),F!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[Y],F)})))}_requestClearUserMetadata(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},o=arguments.length>1?arguments[1]:void 0;const d=OperationName.removeUserMetadata,I=this._context.incGetSeq(),f=Date.now(),S=e==null?void 0:e.majorRevision;return this._sendStoragePacket(d,"StateSet",{sequence:I,target:o??this._context.uid,requestUuid:"".concat(I,"_").concat(this._context.instanceId),lock:"",lockRev:Long$1.fromNumber(0),value:JSON.stringify({}),baseRevision:Long$1.fromNumber(S>=0?S:0),author:e.enableRecordUserId?this._context.uid:"",flags:e.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(v=>{let{sequence:L}=v;return I.eq(L)}),tap(v=>{let{code:L}=v;const{code:x,reason:F}=convertMetadataServerCodeToSdkCode(L);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Clear",revision:Long$1.fromNumber(e==null?void 0:e.majorRevision),uuid:"".concat(I,"_").concat(this._context.instanceId),sdktype:4,flags:e.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:x,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),x!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(d,[F],x)})))}_onStateUpdate(e){let{flags:o,allStates:d,target:I}=e;const f=covertStateStringToMetaData(d);var S,v;!o.and(new Long$1(0,StorageImpl.IS_CLEAR,!0)).isZero()&&this.log("metadata is cleared."),o.and(new Long$1(StorageImpl.IS_GROUP,0,!0)).isZero()?f.majorRevision>=((S=this._userMetaEventInfos.get(I))!==null&&S!==void 0?S:0)&&this._userMetaDataUpdatedHandler({uid:I,data:f}):f.majorRevision>=((v=this._channelMetaEventInfos.get(I))!==null&&v!==void 0?v:0)&&this._onChannelMetaDataUpdated({channelId:I,data:f})}}_defineProperty$1(StorageImpl,"ENABLE_RECORD_TS",1<<19),_defineProperty$1(StorageImpl,"IS_GROUP",1),_defineProperty$1(StorageImpl,"LOCK_REVISION2",1<<20),_defineProperty$1(StorageImpl,"CHECK_AND_SET",1<<17),_defineProperty$1(StorageImpl,"IS_CLEAR",2);let RStorage=(_class$2=class extends EventBase{constructor(n,e,o,d,I,f){super(n,"Storage",!0,!0),_defineProperty$1(this,"storageImpl",void 0),this.storageImpl=new StorageImpl(n,e,o,d,I,f)}async setChannelMetadata(n,e,o,d){return await this.storageImpl.setChannelMetadata(n,e,o,d)}async getChannelMetadata(n,e){return await this.storageImpl.getChannelMetadata(n,e)}async removeChannelMetadata(n,e,o){return await this.storageImpl.removeChannelMetadata(n,e,o)}async updateChannelMetadata(n,e,o,d){return await this.storageImpl.updateChannelMetadata(n,e,o,d)}async setUserMetadata(n,e){return await this.storageImpl.setUserMetadata(n,e)}async getUserMetadata(n){return await this.storageImpl.getUserMetadata(n)}async removeUserMetadata(n){return await this.storageImpl.removeUserMetadata(n)}async updateUserMetadata(n,e){return await this.storageImpl.updateUserMetadata(n,e)}async subscribeUserMetadata(n){return await this.storageImpl.subscribeUserMetadata(n)}async unsubscribeUserMetadata(n){return await this.storageImpl.unsubscribeUserMetadata(n)}},_applyDecoratedDescriptor(_class$2.prototype,"setChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"setChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"getChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"getChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"removeChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"removeChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"updateChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"updateChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"setUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"setUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"getUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"getUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"removeUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"removeUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"updateUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"updateUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"subscribeUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"subscribeUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"unsubscribeUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"unsubscribeUserMetadata"),_class$2.prototype),_class$2);const TextMessageDstType={PeerTextMessage:0,ChannelTextMessage:1,VendorTextMessage:2},RawMessageDstType={PeerRawMessage:3,ChannelRawMessage:4,VendorRawMessage:5},MessageDstType=_objectSpread2(_objectSpread2({},TextMessageDstType),RawMessageDstType),InvitationType={CallInvite:101,CallAccept:102,CallReject:103,CallCancel:104},MessageType=_objectSpread2(_objectSpread2({},MessageDstType),InvitationType),CompressionMethod={Uncompressed:0,Zlib:1};class MessageOption extends Struct{constructor(e){if(super(),this.define("MessageType",MessageType,8),this.define("BroadcastJumps","number",2),this.define("ToCache","boolean",1),this.define("FromCache","boolean",1),this.define("CompressionMethod",CompressionMethod,2),this.define("IterationNumber","number",4),this.define("BufferedMessage","boolean",1),this.define("ToArchive","boolean",1),this.define("FromArchive","boolean",1),this.define("kDelegate","number",1),this.define("kSecurity","number",1),this.define("kBypassGroupMemberCheck","number",1),this.define("enableEncryption","boolean",1),this.define("encrytionComplement","number",5),this.define("kHistory","number",1),this.define("undefined","number",33),isLongNum(e))this.from(e);else if(e!==void 0)for(let o=0,d=getEntries(e);othis.assert("MessageType",o))}isPeerMessage(){return this.assert("MessageType",["PeerTextMessage","PeerRawMessage"])}isChannelMessage(){return this.assert("MessageType",["ChannelTextMessage","ChannelRawMessage"])}isZlibCompressed(){return this.assert("CompressionMethod","Zlib")}isFromCache(){return this.assert("FromCache",!0)}isBufferedMessage(){return this.assert("BufferedMessage",!0)}getInvitationType(){if(!this.isInvitation())throw new TypeError("cannot get InvitationType of a normal message type");return this.typeOf("MessageType")}isEncryption(){return this.assert("enableEncryption",!0)}getEncrytionComplement(){var e;return(e=this.fields.get("encrytionComplement"))===null||e===void 0?void 0:e.val}}const{inflate}=UZIP;class HistoryImpl extends EventBase{constructor(e,o,d,I){super(e,"HistoryImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"getRTMSession",void 0),_defineProperty$1(this,"_validateRtmConnection",void 0),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),this._context=o,this.getRTMSession=genGetRTMSession(d),this._validateRtmConnection=I}async getMessages(e,o,d){var I,f,S,v;const L=OperationName.getMessages;if(this._apiRateLimit.canMakeOperation("getMessages"),validateHistoryChannelType(L,o),this._validateRtmConnection(L),this._validateEnableHistory(L),validateKey(e,L,"channel"),o==="USER"&&e!==this._context.uid){this.warn("operation not permit");const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_NOT_PERMITTED);throw new RtmInvalidArgumentError(L,[ue],he)}const x=(I=d==null?void 0:d.start)!==null&&I!==void 0?I:0,F=(f=d==null?void 0:d.end)!==null&&f!==void 0?f:0;if(x>0&&F>0&&(x<=F||x-F>GET_MESSAGE_TIME_LIMIT)){this.warn("invalid start or end timestamp}");const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_INVALID_TIMESTAMP);throw new RtmInvalidArgumentError(L,[ue],he)}const Y=(S=getParameter("HISTORY_MSG_COUNT_LIMIT"))!==null&&S!==void 0?S:GET_MESSAGE_MAX_COUNT;let j=(v=d==null?void 0:d.messageCount)!==null&&v!==void 0?v:Y;(j===0||j>Y)&&(j=Y);try{var W,re,ee;const he=this._requestGetMessages({channelName:e,channelType:o,count:j,startTime:x,endTime:F}),ue=await he.toPromise();return{messageList:(W=ue.messageList)!==null&&W!==void 0?W:[],count:(re=(ee=ue.messageList)===null||ee===void 0?void 0:ee.length)!==null&&re!==void 0?re:0,newStart:ue.newStart,timestamp:0}}catch(he){if(isRtmError(he)){if(this.logError(he),isNoLogged(he))throw he;if(isTimeout(he)){const{code:ue,reason:Ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_TIMEOUT);throw new RtmUnavailableError(L,[Ee],ue)}if(he.code!=null){const{code:ue,reason:Ee}=getErrorInfoByCode(he.code);throw new RtmUnavailableError(L,[Ee],ue)}this.logError("error code is undefined, %o",he)}else this.logError("not rtm error, %o",he)}return{timestamp:0,messageList:[],count:0,newStart:0}}_sendHistoryPacket(e,o,d){this.getRTMSession().sendOperationPacket(e,o,d)}_onOperationPacket(e){return this.getRTMSession().onOperationPacket(e)}_requestGetMessages(e){let{channelName:o,channelType:d,startTime:I,endTime:f,count:S}=e;const v=OperationName.getMessages,L=this._context.incGetSeq()+"_"+this._context.instanceId;return this._sendHistoryPacket(v,"StateHistoryGet2",{dst:o,uuid:L,startTime:Long$1.fromNumber(I),endTime:Long$1.fromNumber(f),count:S,flags:new Long$1(d==="MESSAGE"?1:0,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_TIMEOUT),this._onOperationPacket("StateHistoryGetResult2").pipe(first(x=>{let{uuid:F}=x;return L===F}),map$1(x=>{if(x.code!==RTMErrorCode.RTM_ERROR_OK){const{code:F,reason:Y}=getErrorInfoByCode(x.code===SyncServerErrorCode.kNoPrivilege?RTMErrorCode.RTM_ERROR_HISTORY_PERMISSION_DENIED:RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_FAILED);throw new RtmUnavailableError(v,[Y],F)}{const{messages:F,oldestTime:Y,more:j}=x;let W=0;const re=F.filter(ee=>{const{options:he}=ee,ue=new MessageOption(he).isEncryption();return!(ue&&!this._context.encryptionInfo.key||!ue&&this._context.encryptionInfo.key)||(W++,!1)}).map(ee=>{var he;const{options:ue,payload:Ee,src:_e,ms:De,details:Fe}=ee,Ve=new MessageOption(ue),Ge=Ve.isZlibCompressed(),He=Ve.isEncryption(),At=(he=Ve.getEncrytionComplement())!==null&&he!==void 0?he:0,Bt=Ve.isTextMessage(),{customType:Tt=new Uint8Array}=Fe,rt=new TextDecoder().decode(Tt);if(Bt){const ye=Ge?inflate(concatenateUint8Array(Ee,Uint8Array.of(0,0,0,0))):Ee,lt=ye.byteLength-Long$1.fromValue(At).toNumber();return{message:new TextDecoder().decode(He&&this._context.encryptionInfo.initEncryption?decrypt(ye,this._context.encryptionInfo.key,this._context.encryptionInfo.iv,this._context.encryptionInfo.keyLength).slice(0,lt):ye),customType:rt,messageType:MessageType$1.STRING,publisher:_e,timestamp:De==null?void 0:De.toNumber()}}{const ye=Ge?inflate(Ee):Ee,lt=ye.byteLength-Long$1.fromValue(At).toNumber();return{message:He&&this._context.encryptionInfo.initEncryption?decrypt(ye,this._context.encryptionInfo.key,this._context.encryptionInfo.iv,this._context.encryptionInfo.keyLength).slice(0,lt):ye,customType:rt,messageType:MessageType$1.BINARY,publisher:_e,timestamp:De==null?void 0:De.toNumber()}}});return W>0&&this.warn("ignore %d messages because of encryption mismatch",W),{messageList:re,newStart:j?Y.toNumber():0}}})))}_validateEnableHistory(e){if(this._context.consoleConfig["history.enabled"]!=="true"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_NOT_AVAILABLE);throw new RtmUnavailableError(e,[d],o)}}}var _class$1;let History=(_class$1=class extends EventBase{constructor(n,e,o,d){super(n,"History",!0,!0),_defineProperty$1(this,"historyImpl",void 0),this.historyImpl=new HistoryImpl(n,e,o,d)}async getMessages(n,e,o){return await this.historyImpl.getMessages(n,e,o)}},_applyDecoratedDescriptor(_class$1.prototype,"getMessages",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$1.prototype,"getMessages"),_class$1.prototype),_class$1);var name="agora-rtm",exports$1={".":{require:"./dist/bundle.umd.js",import:"./dist/bundle.mjs",types:"./dist/types/index.d.ts"}},version="2.2.4",description="JavaScript SDK for Agora RTM",keywords=["agora","rtm","real-time-messaging","sdk","javascript","signaling","stream","messaging"],homepage="https://bitbucket.agoralab.co/projects/WEBRTC/repos/rtm.js",bugs={url:"https://agora-ticket.agora.io",email:"support@agora.io"},license="Apache",author="Agora Lab.",main="dist/bundle.umd.js",types="dist/types/index.d.ts",directories={lib:"src"},repository={type:"git",url:"git+ssh://git@git.agoralab.co/webrtc/rtm.js.git"},scripts={"test:coverage":"rm -rf ./coverage && vitest run --config ./vitest.config.ts","test:coverage:ui":"rm -rf ./coverage && vitest --ui --coverage --config ./vitest.config.ts",postinstall:"touch ./.env && node --experimental-import-meta-resolve ./scripts/patch.mjs","proto-gen":"npm run proto-gen:js && npm run proto-gen:ts","proto-gen:js":"pbjs -t static-module --no-create --no-decode --no-verify --no-service --no-convert --force-long --no-delimited -w es6 -o ./src/lib/compiled_proto/report.js ./src/third_party/report.proto && pbjs -t static-module --no-delimited --no-convert --no-verify --no-service --no-create --force-long -w es6 -o ./src/lib/compiled_proto/gateway.js ./src/third_party/gateway.proto && pbjs -t static-module --no-delimited --no-convert --no-verify --no-service --no-create --force-long -w es6 -o ./src/lib/compiled_proto/metadata.js ./src/third_party/metadata.proto","proto-gen:ts":"pbts --main --out ./src/lib/compiled_proto/report.d.ts ./src/lib/compiled_proto/report.js && pbts --main --out ./src/lib/compiled_proto/gateway.d.ts ./src/lib/compiled_proto/gateway.js && pbts --main --out ./src/lib/compiled_proto/metadata.d.ts ./src/lib/compiled_proto/metadata.js","build:types":"run-s dts:tsc dts:gen","dts:tsc":"tsc -p ./tsconfig.json","dts:gen":"rollup -c ./rollup.types.config.mjs",dev:"FUSION=false NODE_ENV=development BASE_VERSION=106 rollup -c rollup.config.mjs -w","dev-fusion":"FUSION=true NODE_ENV=development BASE_VERSION=106 rollup -c rollup.config.mjs -w",build:'NODE_OPTIONS="--max-old-space-size=8192" npm run build:web && NODE_OPTIONS="--max-old-space-size=8192" npm run build:cdn',"build:web":'cross-env GIT_COMMIT=$(git describe --tags --long --match "v*" --dirty) npx cross-env NODE_ENV=production BASE_VERSION=106 npx rollup -c rollup.config.mjs',"build:cdn":'cross-env GIT_COMMIT=$(git describe --tags --long --match "v*" --dirty) npx cross-env NODE_ENV=production BASE_VERSION=106 npx rollup -c rollup.config.web.mjs',prepublishOnly:"FUSION=false npm run build && npm run build:types && node ./prepublish.js",prepublishOnlyOversea:"cross-env FUSION=false OVERSEA=true npm run build && npm run build:types && cross-env OVERSEA=true node ./prepublish.js",prepublishOnlyFusion:"cross-env FUSION=true npm run build && npm run build:types && cross-env FUSION=true node ./prepublish.js",beautify:"concurrently -P 'npm:lint:*' -- --fix",lint:"npx eslint src/ --format codeframe","lint:test":"npx eslint '__test_rtm__/**/*.ts' 'vitest.config.ts' 'vitest.setup.ts' --config .eslintrc.test.js --no-ignore --format codeframe","beautify:all":"npm run lint -- --fix && npm run lint:test -- --fix",wb:"node white-brand-cli"},config={scripts:{commit:"npx git-cz"}},dependencies={"@thi.ng/cache":"^1.0.94","agora-rtc-sdk-ng":"4.23.0","cross-env":"^7.0.3",debug:"^4.4.0",events:"^3.3.0","format-util":"^1.0.5",gud:"^1.0.0","is-mobile":"^3.1.1","is-what":"^3.14.1",lodash:"^4.17.21",long:"^5.3.1",neverthrow:"^5.1.0","node-forge":"^1.3.1",protobufjs:"^7.4.0",rxjs:"^6.6.7","rxjs-etc":"^10.6.2","rxjs-websockets":"^8.0.1","safe-json-stringify":"^1.2.0",uuid:"^3.4.0"},devDependencies={"@ampproject/rollup-plugin-closure-compiler":"^0.27.0","@babel/core":"^7.26.0","@babel/eslint-parser":"^7.25.9","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-decorators":"^7.25.9","@babel/plugin-syntax-import-attributes":"^7.26.0","@babel/plugin-transform-for-of":"^7.25.9","@babel/preset-env":"^7.26.0","@babel/preset-typescript":"^7.26.0","@playwright/test":"^1.41.2","@rollup/plugin-alias":"^5.1.1","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.8","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.3.1","@rollup/plugin-replace":"^5.0.7","@rollup/plugin-terser":"^0.4.4","@types/node":"^14.18.63","@typescript-eslint/eslint-plugin":"^6.21.0","@typescript-eslint/parser":"^6.21.0","@vitest/browser":"^3.1.1","@vitest/coverage-istanbul":"^3.1.1","@vitest/ui":"^3.1.1","agora-rte-extension":"^1.2.4","babel-plugin-annotate-pure-calls":"^0.4.0","babel-plugin-const-enum":"1.0.1","babel-plugin-istanbul":"^6.1.1","babel-plugin-polyfill-corejs3":"^0.2.5","babel-plugin-polyfill-regenerator":"^0.2.3",concurrently:"^7.6.0","core-js":"^3.39.0","cross-zip":"^4.0.1",decomment:"^0.9.5","dotenv-extended":"^2.9.0",eslint:"^8.57.1","eslint-config-airbnb-typescript":"^17.1.0","eslint-formatter-codeframe":"^7.32.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-simple-import-sort":"^10.0.0","fast-check":"^4.0.0","fs-extra":"^9.1.0",jsdom:"^20.0.3","@mswjs/interceptors":"^0.39.4",msw:"^2.8.2",nodemon:"^2.0.22","npm-run-all":"^4.1.5",path:"^0.12.7",prettier:"3.2.3","protobufjs-cli":"~1.1.3","regenerator-runtime":"^0.14.1",rollup:"^4.28.1","rollup-plugin-dts":"^6.1.1","strict-event-emitter-types":"^2.0.0",touch:"^3.1.1",typedoc:"^0.23.28",typescript:"^5.7.2","utility-types":"^3.11.0",vite:"^5.1.0","vite-plugin-istanbul":"^7.0.0",vitest:"^3.1.1"},optionalDependencies={"@fast-csv/parse":"^4.3.6","@types/debug":"4.1.5","@types/format-util":"^1.0.4","@types/google-closure-compiler":"^0.0.18","@types/lodash":"^4.17.13","@types/node-forge":"^1.3.11","@types/pako":"^1.0.7","@types/safe-json-stringify":"^1.1.5","@types/uuid":"^3.4.13","browserslist-useragent":"^3.1.4","rollup-plugin-livereload":"^2.0.5","rollup-plugin-serve":"^1.1.1","rollup-plugin-visualizer":"^5.12.0","typedoc-plugin-no-inherit":"^1.4.0"},pkg={name,exports:exports$1,version,description,keywords,homepage,bugs,license,author,main,types,directories,repository,scripts,config,dependencies,devDependencies,optionalDependencies},_getParameter;const QUERY_INTERVAL=(_getParameter=getParameter("CONFIG_QUERY_INTERVAL"))!==null&&_getParameter!==void 0?_getParameter:3e5,LOCAL_STORAGE_KEY="_agora_rtm_custom_config";function getDeviceInfo(n){let e="Unknown",o="Unknown";return n.includes("Chrome")?e="Chrome":n.includes("Firefox")?e="Firefox":n.includes("Safari")&&!n.includes("Chrome")?e="Safari":n.includes("Edge")?e="Edge":(n.includes("Opera")||n.includes("OPR"))&&(e="Opera"),n.includes("Windows NT")?o="Windows":n.includes("Mac OS X")?o="Mac OS":n.includes("Android")?o="Android":n.includes("iPhone")||n.includes("iPad")?o="iOS":n.includes("Linux")&&(o="Linux"),{deviceName:e,osName:o}}class CustomConfig{get domains(){var e,o;const d=(e=getParameter("TDS_DOMAINS"))!==null&&e!==void 0?e:[];return d&&(o=d==null?void 0:d.length)!==null&&o!==void 0&&o?d:this._domains}constructor(e,o){var d;_defineProperty$1(this,"_appid",""),_defineProperty$1(this,"_sid",""),_defineProperty$1(this,"_timer",null),_defineProperty$1(this,"_device",""),_defineProperty$1(this,"_system",""),_defineProperty$1(this,"_systemGeneral",""),_defineProperty$1(this,"_domains",["ap-web-1.agora.io"]),_defineProperty$1(this,"_useBackup",!1),this._appid=e,this._sid=(d=o==null?void 0:o.sid)!==null&&d!==void 0?d:"",this._systemGeneral=navigator.userAgent;const{deviceName:I,osName:f}=getDeviceInfo(this._systemGeneral);this._device=I,this._system=f}init(e){this._sid=e;const o=this._getStorageConfig();if(o)for(const d in o)this._updateSdkConfig(d,o[d]);this._start()}stop(){this._timer&&(clearInterval(this._timer),this._timer=null)}async _query(){let e={};const o=this.domains,d=this!=null&&this._useBackup&&o.length>1?this.domains[1]:this.domains[0];try{const I=await postWithAbortSignal("https://".concat(d,"/api/v1"),{headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"54","Content-Type":"application/json"},body:{flag:64,cipher_method:0,features:{device:this._device,system:this._system,system_general:navigator.userAgent,vendor:this._appid,version:pkg.version,install_id:this._sid,session_id:this._sid,detail:"",sdk_type:"web_rtm"}}}),f=JSON.parse(I.responseText),{code:S,test_tags:v}=f;if(S!==0)return;e=v;const L={};for(const x in e)if(x.includes("web_rtm")){const[F,Y]=JSON.parse(e[x]);for(const j in Y)Object.hasOwn(MUTABLE_PARAMS,j)&&(L[j]=Y[j])}this._setStorageConfig(L),this._useBackup=!1}catch{this._useBackup=!0}}async _start(){await this._query(),this._timer=setInterval(async()=>{await this._query()},QUERY_INTERVAL)}_getStorageConfig(){var e,o;const d=atob((e=localStorage.getItem(LOCAL_STORAGE_KEY))!==null&&e!==void 0?e:"");return((o=JSON.parse(d||JSON.stringify({})))===null||o===void 0?void 0:o[this._appid])||null}_setStorageConfig(e){var o;const d=JSON.parse(atob((o=localStorage.getItem(LOCAL_STORAGE_KEY))!==null&&o!==void 0?o:"")||"{}");d[this._appid]=_objectSpread2({},e),localStorage.setItem(LOCAL_STORAGE_KEY,btoa(JSON.stringify(d)))}_isExpectedType(e){return typeof e=="boolean"||typeof e=="number"||typeof e=="string"||Array.isArray(e)}_updateSdkConfig(e,o){o&&this._isExpectedType(o)&&setParameter(e,o)}}const implementsFunction=(n,e)=>n!=null&&typeof n[e]=="function",isArrayLike=n=>n!=null&&typeof n!="function"&&n.length!==void 0,isIterable=n=>n!=null&&typeof n[Symbol.iterator]=="function",compare=(n,e)=>n===e?0:n==null?e==null?0:-1:e==null?n==null?0:1:typeof n.compare=="function"?n.compare(e):typeof e.compare=="function"?-e.compare(n):ne?1:0,OBJP=Object.getPrototypeOf({}),FN="function",STR="string",equiv=(n,e)=>{let o;return n===e||(n==null?n==e:typeof n.equiv===FN?n.equiv(e):e==null?n==e:typeof e.equiv===FN?e.equiv(n):typeof n!==STR&&typeof e!==STR&&(o=Object.getPrototypeOf(n),o!=null&&o!==OBJP||(o=Object.getPrototypeOf(e),o!=null&&o!==OBJP)?typeof n!==FN&&n.length!==void 0&&typeof e!==FN&&e.length!==void 0?equivArrayLike(n,e):n instanceof Set&&e instanceof Set?equivSet(n,e):n instanceof Map&&e instanceof Map?equivMap(n,e):n instanceof Date&&e instanceof Date?n.getTime()===e.getTime():n instanceof RegExp&&e instanceof RegExp?n.toString()===e.toString():n!=n&&e!=e:equivObject(n,e)))},equivArrayLike=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv,d=n.length;if(d===e.length)for(;--d>=0&&o(n[d],e[d]););return d<0},equivSet=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv;return n.size===e.size&&o([...n.keys()].sort(),[...e.keys()].sort())},equivMap=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv;return n.size===e.size&&o([...n].sort(),[...e].sort())},equivObject=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv;if(Object.keys(n).length!==Object.keys(e).length)return!1;for(let d in n)if(!e.hasOwnProperty(d)||!o(n[d],e[d]))return!1;return!0},defError=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:o=>o!==void 0?": "+o:"";return class extends Error{constructor(o){super(n(o)+e(o))}}},IllegalArgumentError=defError(()=>"illegal argument(s)"),illegalArgs=n=>{throw new IllegalArgumentError(n)},OutOfBoundsError=defError(()=>"index out of bounds"),outOfBounds=n=>{throw new OutOfBoundsError(n)},ensureIndex=(n,e,o)=>(n=o)&&outOfBounds(n),INV_MAX=1/4294967295;class ARandom{float(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return this.int()*INV_MAX*e}norm(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return 2*(this.int()*INV_MAX-.5)*e}minmax(e,o){return this.float()*(o-e)+e}}const random=Math.random;class SystemRandom extends ARandom{int(){return 4294967296*random()>>>0}float(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return random()*e}norm(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return 2*(random()-.5)*e}}const SYSTEM=new SystemRandom,SEMAPHORE=Symbol(),NO_OP=()=>{},ensureTransducer=n=>implementsFunction(n,"xform")?n.xform():n;class Reduced{constructor(e){this.value=e}deref(){return this.value}}const isReduced=n=>n instanceof Reduced,unreduced=n=>n instanceof Reduced?n.deref():n;function*iterator1(n,e){const o=ensureTransducer(n)([NO_OP,NO_OP,(d,I)=>I])[2];for(let d=0;d[n[0],n[1],e];function map(n,e){return isIterable(e)?iterator1(map(n),e):o=>{const d=o[2];return compR(o,(I,f)=>d(I,n(f)))}}class DCons{constructor(e){this._length=0,e&&this.into(e)}get length(){return this._length}copy(){return new DCons(this)}empty(){return new DCons}clear(){this.release()}release(){let e,o=this.head;for(;o;)e=o.next,delete o.value,delete o.prev,delete o.next,o=e;return delete this.head,delete this.tail,this._length=0,!0}compare(e){const o=this._length;if(oe._length)return 1;if(o===0)return 0;{let d=this.head,I=e.head,f=0;for(;d&&f==0;)f=compare(d.value,I.value),d=d.next,I=I.next;return f}}equiv(e){if(!(e instanceof DCons||isArrayLike(e))||this._length!==e.length)return!1;if(!this._length||this===e)return!0;let o=this.head;for(let d=0;d0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.length;if(e>=o||e<0)return;let d=this.nthCell(e);const I=this.nthCell(o-1),f=S=>({first(){return S.value},next(){return S!==I&&S.next?f(S.next):void 0}});return d?f(d):void 0}*cycle(){for(;;)yield*this}$reduce(e,o){let d=this.head;for(;d&&!isReduced(o);)o=e(o,d.value),d=d.next;return o}drop(){const e=this.head;if(e)return this.head=e.next,this.head?delete this.head.prev:delete this.tail,this._length--,e.value}cons(e){const o={value:e,next:this.head};return this.head?this.head.prev=o:this.tail=o,this.head=o,this._length++,this}insertBefore(e,o){e||illegalArgs("cell is undefined");const d={value:o,next:e,prev:e.prev};return e.prev?e.prev.next=d:this.head=d,e.prev=d,this._length++,this}insertAfter(e,o){e||illegalArgs("cell is undefined");const d={value:o,next:e.next,prev:e};return e.next?e.next.prev=d:this.tail=d,e.next=d,this._length++,this}insertBeforeNth(e,o){return e<0&&(e+=this._length),e<=0?this.cons(o):(ensureIndex(e,0,this._length),this.insertBefore(this.nthCellUnsafe(e),o))}insertAfterNth(e,o){return e<0&&(e+=this._length),e>=this._length-1?this.push(o):(ensureIndex(e,0,this._length),this.insertAfter(this.nthCellUnsafe(e),o))}insertSorted(e,o){o=o||compare;let d=this.head;for(;d;){if(o(e,d.value)<=0)return this.insertBefore(d,e);d=d.next}return this.push(e)}find(e){let o=this.head;for(;o;){if(o.value===e)return o;o=o.next}}findWith(e){let o=this.head;for(;o;){if(e(o.value))return o;o=o.next}}concat(){const e=this.copy();for(var o=arguments.length,d=new Array(o),I=0;I0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.length,d=e<0?e+this._length:e,I=o<0?o+this._length:o;(d<0||I<0)&&illegalArgs("invalid indices: ${from} / ${to}");const f=new DCons;let S=this.nthCell(d);for(;S&&++d<=I;)f.push(S.value),S=S.next;return f}splice(e){let o,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,I=arguments.length>2?arguments[2]:void 0;typeof e=="number"?(e<0&&(e+=this._length),ensureIndex(e,0,this._length),o=this.nthCellUnsafe(e)):o=e;const f=new DCons;if(d>0)for(;o&&d-- >0;)this.remove(o),f.push(o.value),o=o.next;else o&&(o=o.next);if(I)if(o)for(let S=0;S=this._length))return this.nthCellUnsafe(e)}rotateLeft(){switch(this._length){case 0:case 1:return this;case 2:return this.swap(this.head,this.tail);default:return this.push(this.drop())}}rotateRight(){switch(this._length){case 0:case 1:return this;case 2:return this.swap(this.head,this.tail);default:const e=this.peek();return this.pop(),this.cons(e)}}map(e){const o=new DCons;let d=this.head;for(;d;)o.push(e(d.value)),d=d.next;return o}filter(e){const o=new DCons;let d=this.head;for(;d;)e(d.value)&&o.push(d.value),d=d.next;return o}reduce(e,o){let d=o,I=this.head;for(;I;)d=e(d,I.value),I=I.next;return d}shuffle(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:SYSTEM;if(this._length<2)return this;for(e=e??Math.ceil(1.5*Math.log2(this._length));e>0;e--){let d=this.head;for(;d;){const I=d.next;o.float()<.5?this.asHead(d):this.asTail(d),d=I}}return this}sort(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:compare;if(!this._length)return this;let o=1;for(;;){let d=this.head;this.head=void 0,this.tail=void 0;let I=0;for(;d;){I++;let f=d,S=0;for(let L=0;L0||v>0&&f;){let L;S===0?(L=f,f=f.next,v--):f&&v!==0?e(d.value,f.value)<=0?(L=d,d=d.next,S--):(L=f,f=f.next,v--):(L=d,d=d.next,S--),this.tail?this.tail.next=L:this.head=L,L.prev=this.tail,this.tail=L}d=f}if(this.tail.next=void 0,I<=1)return this;o*=2}}reverse(){let e=this.head,o=this.tail,d=(this._length>>>1)+(1&this._length);for(;e&&o&&d>0;){const I=e.value;e.value=o.value,o.value=I,e=e.next,o=o.prev,d--}return this}asHead(e){return e===this.head||(this.remove(e),this.head.prev=e,e.next=this.head,e.prev=void 0,this.head=e,this._length++),this}asTail(e){return e===this.tail||(this.remove(e),this.tail.next=e,e.prev=this.tail,e.next=void 0,this.tail=e,this._length++),this}toString(){let e=[],o=this.head;for(;o;)e.push(String(o.value)),o=o.next;return e.join(", ")}toJSON(){return[...this]}nthCellUnsafe(e){let o,d;for(e<=this._length>>1?(o=this.head,d="next"):(o=this.tail,d="prev",e=this._length-e-1);e-- >0&&o;)o=o[d];return o}}class LRUCache{constructor(e,o){const d=Object.assign({maxlen:1/0,maxsize:1/0,map:()=>new Map,ksize:()=>0,vsize:()=>0},o);this.map=d.map(),this.items=new DCons,this._size=0,this.opts=d,e&&this.into(e)}get length(){return this.items.length}get size(){return this._size}[Symbol.iterator](){return this.entries()}entries(){return map(e=>[e.k,e],this.items)}keys(){return map(e=>e.k,this.items)}values(){return map(e=>e.v,this.items)}copy(){const e=this.empty();e.items=this.items.copy();let o=e.items.head;for(;o;)e.map.set(o.value.k,o),o=o.next;return e}empty(){return new LRUCache(null,this.opts)}release(){this._size=0,this.map.clear();const e=this.opts.release;if(e){let o;for(;o=this.items.drop();)e(o.k,o.v);return!0}return this.items.release()}has(e){return this.map.has(e)}get(e,o){const d=this.map.get(e);return d?this.resetEntry(d):o}set(e,o){const d=this.opts.ksize(e)+this.opts.vsize(o),I=this.map.get(e);return this._size+=Math.max(0,d-(I?I.value.s:0)),this.ensureSize()&&this.doSetEntry(I,e,o,d),o}into(e){for(let o=0;othis.set(e,I))}delete(e){const o=this.map.get(e);return!!o&&(this.removeEntry(o),!0)}resetEntry(e){return this.items.asTail(e),e.value.v}ensureSize(){const e=this.opts.release,o=this.opts.maxsize,d=this.opts.maxlen;for(;this._size>o||this.length>=d;){const I=this.items.drop();if(!I)return!1;this.map.delete(I.k),e&&e(I.k,I.v),this._size-=I.s}return!0}removeEntry(e){const o=e.value;this.map.delete(o.k),this.items.remove(e),this.opts.release&&this.opts.release(o.k,o.v),this._size-=o.s}doSetEntry(e,o,d,I){e?(e.value.v=d,e.value.s=I,this.items.asTail(e)):(this.items.push({k:o,v:d,s:I}),this.map.set(o,this.items.tail))}}class TLRUCache extends LRUCache{constructor(e,o){super(e,o=Object.assign({ttl:36e5},o))}empty(){return new TLRUCache(null,this.opts)}has(e){return this.get(e)!==void 0}get(e,o){const d=this.map.get(e);if(d){if(d.value.t>=Date.now())return this.resetEntry(d);this.removeEntry(d)}return o}set(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.opts.ttl;const I=this.opts.ksize(e)+this.opts.vsize(o),f=this.map.get(e);if(this._size+=Math.max(0,I-(f?f.value.s:0)),this.ensureSize()){const S=Date.now()+d;f?(f.value.v=o,f.value.s=I,f.value.t=S,this.items.asTail(f)):(this.items.push({k:e,v:o,s:I,t:S}),this.map.set(e,this.items.tail))}return o}getSet(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.opts.ttl;const I=this.get(e);return I?Promise.resolve(I):o().then(f=>this.set(e,f,d))}prune(){const e=Date.now();let o=this.items.head;for(;o;)o.value.te||this.length>=o);)I.value.t{this._onMessage(S)})}release(){this._dialPendingMsgSubjectMap.clear(),this._dialogueSequenceLru.empty(),this._msgDedupLru.empty(),this._chatManager.release()}_encryptMessage(e){const o=OperationName.publish;try{const{key:d,iv:I,keyLength:f}=this._context.encryptionInfo;return encrypt(e,d,I,f)}catch{const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_ENCRYPT_MESSAGE_FAILED);throw new RtmUnavailableError(o,[f],I)}}_validateMsgSize(e){const o=OperationName.publish;if(e>TEXT_MESSAGE_MAX_TEXT_BYTES){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_MESSAGE_LENGTH_EXCEED_LIMITATION);throw new RtmLimitExceededError(o,[I],d)}}_genMessageParams(e,o,d,I){let f=arguments.length>4&&arguments[4]!==void 0&&arguments[4];const S=OperationName.publish,v=_objectSpread2({},d?{customType:new TextEncoder().encode(d)}:{}),L=this._context.encryptionInfo.initEncryption;let x,F,Y,j=!1;switch(e.messageType){case"TEXT":const{text:he}=e,ue=new Blob([he]).size+new Blob([d??""]).size;this._validateMsgSize(ue),F=new TextEncoder().encode(he),x=L?this._encryptMessage(he):F,j=!getParameter("DISABLE_MESSAGE_COMPRESSION")&&(L?new Blob([new TextDecoder().decode(x)]).size:new Blob([he]).size)>=MESSAGE_MIN_COMPRESSION_LEN,Y=f?"PeerTextMessage":"ChannelTextMessage";break;case"RAW":const{rawMessage:Ee,description:_e=""}=e,De=Ee.byteLength+new Blob([_e]).size+new Blob([d??""]).size;this._validateMsgSize(De),v.description=new TextEncoder().encode(_e),F=Ee,x=L?this._encryptMessage(Ee):F,j=!getParameter("DISABLE_MESSAGE_COMPRESSION")&&x.byteLength>=MESSAGE_MIN_COMPRESSION_LEN,Y=f?"PeerRawMessage":"ChannelRawMessage";break;default:const{code:Fe,reason:Ve}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);throw new RtmInvalidArgumentError(S,[Ve],Fe)}const W=this._context.instanceId,{dialogue:re,sequence:ee}=this._chatManager.getChatInfo(f?K_P2P_MESSAGE_PREFIX+o:o);return this.debug('A%s %s %s message is sending to %s: "'.concat(W,"-").concat(re,"#").concat(ee,'"'),j?" compressed":"",f?"peer":"channel",e.messageType,replaceRangeWithAsterisk(o)),he=>({MiscMap:v,sequence:ee,dialogue:re,instance:W,dst:o,ms:Long$1.fromNumber(Date.now(),!0),options:new MessageOption({IterationNumber:he,CompressionMethod:j?"Zlib":"Uncompressed",MessageType:Y,ToCache:!1,ToArchive:!1,enableEncryption:L,encrytionComplement:x.byteLength-F.byteLength,kHistory:I?1:0}).toLong(),payload:j?deflate(x):x,src:this._context.uid})}async commonSendMessage(e){let{message:o,peerId:d,diff:I,customType:f,storeInHistory:S,toPeer:v=!1}=e;const L=OperationName.publish,x=this._genMessageParams(o,d,f,S,v),F=(v?P2P_MESSAGE_SEND_TIMEOUT:MESSAGE_SEND_TIMEOUT)-I,{code:Y}=await from(this._sendMessageToRetry(x,!0,v)).pipe(timeout(F===void 0?MESSAGE_SEND_TIMEOUT:F),catchError(W=>(W instanceof TimeoutError&&this.warn("Send message timeout"),throwError(W)))).toPromise(),j=Y===0;if(Y!==0){const{code:W,reason:re}=getErrorInfoByCode(Y===AckCodeType.kAckPeerOffline?RTMErrorCode.RTM_ERROR_CHANNEL_RECEIVER_OFFLINE:RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_FAILED);throw new RtmUnavailableError(L,[re],W)}return{hasPeerReceived:j}}_onMessage(e){var o;const{dialogue:d,instance:I,sequence:f,options:S,src:v,eventReportInfo:L}=e,x=d.toString(),F=this._dialPendingMsgSubjectMap.get(x),Y="".concat(I,"-").concat(d,"#").concat(f),j=this._dialogueSequenceLru.get(x),W=new MessageOption(S);if(F)return F.next(e),void this.log("Env_%d: The dialogue has pending messages, next: %s",L==null?void 0:L.env,Y);const re=!j&&f.eq(1),ee=j!==void 0&&f.sub(j).eq(1);if(re||ee)return void this._emitMessage(e,L==null?void 0:L.env);if(j){if(f.lte(j))return;this.log("Env_%d: The message pended, the sequence is not continuous with the last: %s",L==null?void 0:L.env,Y)}else this.log("Env_%d: The message pended, the first sequence is not equal to 1: %s",L==null?void 0:L.env,Y);const he=new Subject;this._dialPendingMsgSubjectMap.set(x,he);const ue=he.pipe(observeOn(asyncScheduler),scan((_e,De)=>[..._e,De],[]),map$1(_e=>[..._e].sort((De,Fe)=>{let{sequence:Ve}=De,{sequence:Ge}=Fe;return Ve.eq(Ge)?0:Ve.gt(Ge)?1:-1})),shareReplay(1)),Ee=!W.isFromCache()&&!W.isBufferedMessage();ue.pipe(takeUntil(timer((o=W.isChannelMessage()?getParameter("CHANNEL_MSG_REORDER_TIMEOUT"):getParameter("P2P_MSG_REORDER_TIMEOUT"))!==null&&o!==void 0?o:Ee?ONLINE_MESSAGE_DEDUP_DELAY:OFFLINE_MESSAGE_DEDUP_DELAY)),first(_e=>{if(_e.length<2)return!1;for(let De=j===void 0?Long$1.fromNumber(1,!0):j.add(1),Fe=0;Fe<_e.length;De=De.add(1),Fe++)if(!_e[Fe].sequence.eq(De))return!1;return!0}),finalize(()=>{this._dialPendingMsgSubjectMap.delete(x)})).subscribe(_e=>{_e.forEach(De=>{this._emitMessage(De,L==null?void 0:L.env),this.log("Env_%d: The message queue has fully ordered, emitting: %s",L==null?void 0:L.env,"".concat(De.instance,"-").concat(De.dialogue,"#").concat(De.sequence))})},_e=>{_e instanceof EmptyError&&ue.pipe(take(1)).subscribe(De=>De.forEach(Fe=>{this.log("Env_%d: The message pending queue expired, emitting: %s",L==null?void 0:L.env,"".concat(Fe.instance,"-").concat(Fe.dialogue,"#").concat(Fe.sequence)),this._emitMessage(Fe,L==null?void 0:L.env)}))}),he.next(e)}_emitMessage(e,o){const{options:d,payload:I,src:f,dst:S,instance:v,dialogue:L,sequence:x,ms:F,MiscMap:Y={}}=e;this._dialogueSequenceLru.set(L.toString(),x);const j="".concat(v,"-").concat(L,"#").concat(x);if(this._msgDedupLru.has(j))return void this.warn("Env_%d: Messages out-of-order or not start with 1: %s",o,j);this._msgDedupLru.set(j,void 0);const W=new MessageOption(d);(W.isInvitation()||W.isPeerMessage())&&this._sendMessageAck(e);const re=W.isZlibCompressed(),ee=W.isEncryption(),{customType:he=new Uint8Array}=Y,ue=new TextDecoder().decode(he);if(ee&&!this._context.encryptionInfo.key)return void this.warn("Received a message with encryption but the key is not ready yet, %s",j);if(!ee&&this._context.encryptionInfo.key)return void this.warn("Received a message without encryption but the key is ready, %s",j);if(!W.isPeerMessage()&&!this._context.getChannelOptionsByKey(S,"withMessage"))return void this.warn("Received a message but the channel is not subscribed, %s",j);const{message:Ee,messageType:_e,fromPeer:De}=this._decodeMessage(W,I),Fe={channelName:S,publisher:f,message:Ee,messageType:_e,customType:ue,channelType:De?"USER":"MESSAGE",topicName:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.debug("Received a %s %s %s message from %s to %s, %s",re?" compressed":"",De?"peer":"channel",_e,replaceRangeWithAsterisk(f),replaceRangeWithAsterisk(S),j),this._emitMessageEvent(Fe)}_decodeMessage(e,o){var d;const I=e.isZlibCompressed(),f=e.isEncryption(),S=(d=e.getEncrytionComplement())!==null&&d!==void 0?d:0;if(e.isTextMessage()){const v=I?inflate$1(concatenateUint8Array(o,Uint8Array.of(0,0,0,0))):o,L=v.byteLength-Long$1.fromValue(S).toNumber(),{key:x,iv:F,keyLength:Y}=this._context.encryptionInfo;return{message:new TextDecoder().decode(f?decrypt(v,x,F,Y).slice(0,L):v),messageType:"STRING",fromPeer:e.isPeerTextMessage()}}if(e.isRawMessage()){const v=I?inflate$1(o):o,L=v.byteLength-Long$1.fromValue(S).toNumber(),{key:x,iv:F,keyLength:Y}=this._context.encryptionInfo;return{message:f?decrypt(v,x,F,Y).slice(0,L):v,messageType:"BINARY",fromPeer:e.isRawPeerMessage()}}return{}}}const resetIntervalInfo=()=>({joined:new Set,left:new Set,timeout:new Set,stateChanged:new Set});class ChannelPresence extends EventBase{constructor(e,o,d,I){super(o,"ChannelPresence"),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"channelsUsersStates",new Map),_defineProperty$1(this,"userJoinEvents",new Set),_defineProperty$1(this,"userLeftEvents",new Set),_defineProperty$1(this,"getRTMSession",void 0),_defineProperty$1(this,"timeoutInSnapshot",new Map),_defineProperty$1(this,"timeoutUsersWithoutInterval",new Map),_defineProperty$1(this,"intervalMode",new Map),_defineProperty$1(this,"intervalTimerId",new Map),_defineProperty$1(this,"intervalSnapshot",new Map),_defineProperty$1(this,"intervalInfos",new Map),_defineProperty$1(this,"backoffEventsTimer",new Map),_defineProperty$1(this,"backoffEventsMap",new Map),_defineProperty$1(this,"pendingPresenceEvent",new Map),_defineProperty$1(this,"_decoupleChannels",new Map),_defineProperty$1(this,"_decoupleChannelPromises",new Map),_defineProperty$1(this,"_intervals4CreateColl",[...CREATE_COLL_INTERVALS]),_defineProperty$1(this,"recoverPresenceTimer",null),_defineProperty$1(this,"requestChannelMemberList",void 0),_defineProperty$1(this,"_controlInterval",(f,S)=>{var v,L,x,F,Y;const j=(v=(L=this.channelsUsersStates.get(f))===null||L===void 0?void 0:L.size)!==null&&v!==void 0?v:0,W=Number(getParameter("PRESENCE_THRESHOLD")||((x=this._context.consoleConfig)===null||x===void 0?void 0:x["presence.occupancy"]))||0;switch(this.log("occupancy: %d, channelOccupancy: %d",W,j),this.log("(%s) is intervalMode: %s",f,(F=(Y=this.intervalMode)===null||Y===void 0?void 0:Y.get(f))!==null&&F!==void 0&&F),S){case"open":var re,ee;j>=W&&!this.intervalMode.get(f)&&(this.log("open interval mode in channel: ".concat(replaceRangeWithAsterisk(f))),this.intervalMode.set(f,!0),this.intervalSnapshot.set(f,this._getIntervalSnapshot(f)),this.intervalTimerId.set(f,setInterval(()=>{this.emit("presence-interval",f)},1e3*((re=getParameter("PRESENCE_INTERVAL"))!==null&&re!==void 0?re:Number((ee=this._context.consoleConfig)===null||ee===void 0?void 0:ee["presence.interval"])))),this.intervalInfos.set(f,resetIntervalInfo()));break;case"close":jthis._context.localStateCache),_defineProperty$1(this,"_handlePresenceEvent",f=>S=>{!getParameter("SENSITIVE_LOG")&&console.log({events:S,prefixChannelName:f,uid:this._context.uid},"events");const v=this.backoffEventsMap,L=v.has(f)||this.backoffEventsTimer.has(f),x=v.get(f),F=!(L&&x);L&&(this.recoverPresenceTimer&&clearTimeout(this.recoverPresenceTimer),this.recoverPresenceTimer=setTimeout(()=>{var xr;if(this.recoverPresenceTimer=null,(xr=this.getRTMSession())!==null&&xr!==void 0&&xr.getSynced()){const pr=Array.from(new Set([...this.backoffEventsTimer.keys(),...this.backoffEventsMap.keys()]));this.log("synced, recover presence for channel: %o",pr),pr.forEach(ei=>{this._recoverPresence(ei)})}},0));const{channelName:Y,channelType:j}=getChannelDetailByName(f),W={eventType:"SNAPSHOT",channelType:j,channelName:Y,publisher:"",stateChanged:{},interval:null,snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)},re=S.length;try{for(let xr=0;xroi.type==="Put"&&oi.path===K_PRESENCE_EXPIRED)){var vr,ai;W.eventType="REMOTE_STATE_CHANGED";const oi=(vr=(ai=this.channelsUsersStates.get(f))===null||ai===void 0?void 0:ai.get(pr))!==null&&vr!==void 0?vr:{};if(delete oi[_i],W.stateChanged=_objectSpread2({},oi),pr===this._context.uid)this.log('"'.concat(replaceRangeWithAsterisk(pr),'" receive self presence event in channel("').concat(j,'"-"').concat(replaceRangeWithAsterisk(Y),'"), type is ').concat(W.eventType,", state is ").concat(W.stateChanged));else if(_i[0]!==K_SYNC_INTERNAL_KEY_PREFIX){var pi;this.intervalMode.get(f)?(pi=this.intervalInfos.get(f))===null||pi===void 0||pi.stateChanged.add(pr):xr===findLastIndex$1(S,Oi=>{let{type:_o}=Oi;return _o===S[xr].type})&&this.pendingPresenceEvent.set(f,{type:"state-changed",value:W})}if(xr===re-1)return}if(ei==="Put"&&_i&&Gr){var yi,fi;const oi=(yi=(fi=this.channelsUsersStates.get(f))===null||fi===void 0?void 0:fi.get(pr))!==null&&yi!==void 0?yi:{};if(W.eventType="REMOTE_STATE_CHANGED",oi[_i]=Gr,W.stateChanged=_objectSpread2({},oi),pr===this._context.uid)this.log('"'.concat(replaceRangeWithAsterisk(pr),'" receive self presence event in channel("').concat(j,'"-"').concat(replaceRangeWithAsterisk(Y),'"), type is ').concat(W.eventType,", state is ").concat(W.stateChanged));else if(_i[0]!==K_SYNC_INTERNAL_KEY_PREFIX){var Jn;this.intervalMode.get(f)?(Jn=this.intervalInfos.get(f))===null||Jn===void 0||Jn.stateChanged.add(pr):xr===re-1&&this.pendingPresenceEvent.set(f,{type:"state-changed",value:W})}if(xr===re-1)return}}}catch(xr){this.logError("handlePresenceEvent error: %o",xr)}}),this._context=e,this.getRTMSession=d,this.requestChannelMemberList=I,this.on("presence-interval",(f,S)=>{var v,L,x,F,Y,j,W,re;const{channelType:ee,channelName:he}=getChannelDetailByName(f),ue={eventType:"INTERVAL",channelType:ee,channelName:he,publisher:"",stateChanged:{},interval:{join:{users:[],userCount:0},leave:{users:[],userCount:0},timeout:{users:[],userCount:0},userStateList:[]},snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)},{alreadyJoinedUsers:Ee,alreadyTimeoutUsers:_e}=this.intervalSnapshot.get(f);(v=this.intervalInfos.get(f))===null||v===void 0||v.timeout.forEach(Ve=>{var Ge;Ee.includes(Ve)&&((Ge=ue.interval)===null||Ge===void 0||Ge.timeout.users.push(Ve),ue.interval.timeout.userCount++)}),(L=this.intervalInfos.get(f))===null||L===void 0||L.left.forEach(Ve=>{var Ge;Ee.includes(Ve)&&((Ge=ue.interval)===null||Ge===void 0||Ge.leave.users.push(Ve),ue.interval.leave.userCount++)}),(x=this.intervalInfos.get(f))===null||x===void 0||x.joined.forEach(Ve=>{ue.interval.join.users.push(Ve),ue.interval.join.userCount++});const De=Ee.filter(Ve=>{var Ge,He;return!((Ge=this.intervalInfos.get(f))!==null&&Ge!==void 0&&Ge.left.has(Ve)||(He=this.intervalInfos.get(f))!==null&&He!==void 0&&He.timeout.has(Ve))}).concat([...(F=(Y=this.intervalInfos.get(f))===null||Y===void 0?void 0:Y.joined)!==null&&F!==void 0?F:new Set]),Fe=_e.filter(Ve=>{var Ge,He;return!((Ge=this.intervalInfos.get(f))!==null&&Ge!==void 0&&Ge.joined.has(Ve)||(He=this.intervalInfos.get(f))!==null&&He!==void 0&&He.left.has(Ve))}).concat([...(j=(W=this.intervalInfos.get(f))===null||W===void 0?void 0:W.timeout)!==null&&j!==void 0?j:new Set]);if((re=this.intervalInfos.get(f))===null||re===void 0||re.stateChanged.forEach(Ve=>{if(De.includes(Ve)){var Ge,He,At;(Ge=this.intervalInfos.get(f))===null||Ge===void 0||Ge.stateChanged.delete(Ve);const Bt=(He=(At=this.channelsUsersStates.get(f))===null||At===void 0?void 0:At.get(Ve))!==null&&He!==void 0?He:{};ue.interval.userStateList.push({userId:Ve,states:Bt,statesCount:Object.keys(Bt).length})}}),ue.interval){const{join:Ve,leave:Ge,timeout:He,userStateList:At}=ue.interval;(Ve.userCount>0||Ge.userCount>0||He.userCount>0||At.length>0)&&this.emit("presence",ue)}this.intervalSnapshot.set(f,{alreadyJoinedUsers:De,alreadyTimeoutUsers:Fe}),this.intervalInfos.set(f,resetIntervalInfo()),S&&this.timeoutUsersWithoutInterval.set(f,new Set(Fe))}),this._context.internalEmitter.on("presence-backoff",this._startAllBackoffEventsTimer.bind(this)),this._context.internalEmitter.on("GroupEnterNotice",this._onGroupEnter.bind(this)),this._context.internalEmitter.on("GroupLeaveNotice",this._onGroupLeave.bind(this)),this._context.internalEmitter.on("presence-user-joined",f=>{let{channelName:S,userId:v}=f;this._emitBackoffPresenceEvents("join",S,v)}),this._context.internalEmitter.on("presence-user-left",f=>{let{channelName:S,userId:v}=f;this._emitBackoffPresenceEvents("left",S,v)}),this._context.internalEmitter.on("connectedDatabase",()=>{this._decoupleChannels.forEach(f=>{var S;const v=Date.now();((S=f==null?void 0:f.createTs)!==null&&S!==void 0?S:v)-v<1e3*this._intervals4CreateColl[0]&&(f.forceCall=!0,f.retryCnt=0)})})}releaseChnPresence4Failed(){this.channelsUsersStates.clear(),this.userJoinEvents.clear(),this.userLeftEvents.clear(),this.timeoutInSnapshot.clear(),this.timeoutUsersWithoutInterval.clear(),this.intervalMode.clear(),this.intervalTimerId.forEach(e=>{e&&clearTimeout(e)}),this.intervalTimerId.clear(),this.intervalSnapshot.clear(),this.intervalInfos.clear(),this.clearBackOffChannels(),this.recoverPresenceTimer&&clearTimeout(this.recoverPresenceTimer),this.recoverPresenceTimer=null,this.pendingPresenceEvent.clear(),this._decoupleChannels.clear(),this._decoupleChannelPromises.clear()}releaseChnPresence(){this.releaseChnPresence4Failed()}clearBackOffChannels(){this.backoffEventsTimer.forEach(e=>{clearTimeout(e)}),this.backoffEventsTimer.clear(),this.backoffEventsMap.clear()}leave(e){const o=this.getRTMSession();o==null||o.leaveColl(e),this._cancelBackoffEventsTimer(e)}delChannelDoc(e){const o=this.getRTMSession();o==null||o.delChannelDoc(e),this._context.updateRealSubOrJoinOptions(e,"beQuiet",!0)}cacheAllChannelCrdtState(){this._context.disablePresence||this._context.getAllChannelNames().forEach(e=>{this._context.getChannelOptionsByKey(e,"beQuiet")||this._cacheState(e)})}async exceptionCallback(e,o){if(this._context.disablePresence)return;const{withPresence:d,beQuiet:I}=o,f=(await Promise.allSettled([d?this.unsubPresence(e,!1):this.unsubscribeSelfPresence(e,!1),I?Promise.resolve():this._cacheStateAndDelDoc(e)])).find(S=>S.status==="rejected");if(f)throw f.reason;this.leave(e),await this._join(e,d,!1),I||this._putChannelDocAndSetState(e),d&&this._subPresence(e)}unsubPresence(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const d=this._decoupleChannels.has(e),I=this.getRTMSession();if(!getParameter("DECOUPLE_SYNC")||!d){const f=I==null?void 0:I.getColl(e,!0,"unsubPresence");f==null||f.UnSubscribe(),I==null||I.sendTick()}this._clearIntervalById(this.intervalTimerId.get(e)),this._clearIntervalCacheOfChannel(e),this.recoverPresenceTimer&&clearTimeout(this.recoverPresenceTimer),this.recoverPresenceTimer=null,o&&this._getLocalStateCache().delete(e),this._context.updateRealSubOrJoinOptions(e,"withPresence",!1)}leaveRetryChannels(e){this.info("leaveRetryChannels: %o",e),e.forEach(o=>{this._decoupleChannels.delete(o),this._decoupleChannelPromises.delete(o)})}unsubscribeSelfPresence(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const d=this._decoupleChannels.has(e),I=this.getRTMSession();if(!getParameter("DECOUPLE_SYNC")||!d){const f=I==null?void 0:I.getColl(e,!0,"unsubPresence");f==null||f.UnSubscribe(),I==null||I.sendTick()}o&&this._getLocalStateCache().delete(e)}intervalCreateColl(){this._context.disablePresence||this._decoupleChannels.forEach((e,o)=>{const d=Date.now(),{createTs:I=d,retryCnt:f=0}=e;(e.forceCall||d-I>=this._getExpectedRetryTs(f)&&!e.creating)&&(this.info("intervalCreateColl, channel: %s, diff: %d, retryCnt: %d",o,d-I,f),this.joinPresenceColl(o,e,!1))})}async joinPresenceColl(e,o){var d;let I=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];const f=["withPresence","beQuiet","needCreateColl","needDelDoc","needSub","needPutDoc"],S=this._decoupleChannels.get(e);let v=(d=S==null?void 0:S.createTs)!==null&&d!==void 0?d:Date.now(),L=!1;if(S&&I){if(!f.some(he=>S[he]!==o[he]))return;L=!0,v=Date.now(),S.creating&&this.leave(e),this._decoupleChannels.set(e,_objectSpread2(_objectSpread2(_objectSpread2({},S),o),{},{createTs:v,retryCnt:0,creating:!0,forceCall:!1}))}else this._decoupleChannels.set(e,_objectSpread2(_objectSpread2({},o),{},{createTs:v,creating:!0,forceCall:!1}));this.info("joinPresenceColl: %s, customOperation: %s, optionsChanged: %s, withPresence: %s",e,I,L,o.withPresence);const{withPresence:x,beQuiet:F,reJoinCauseReconnect:Y=!1,needCreateColl:j}=o;try{if(j){const ee=this._join(e,x,Y);this._decoupleChannelPromises.set(e,ee),await ee,this._cancelBackoffEventsTimer(e)}this._context.updateRealSubOrJoinOptions(e,"withPresence",x),this.info("onCreateCollection: %s, needCreateColl: %s",e,j),this._onCreateCollection(e,o),this._context.updateRealSubOrJoinOptions(e,"beQuiet",F),this._decoupleChannels.delete(e)}catch(ee){if(!getParameter("DECOUPLE_SYNC"))throw this._decoupleChannels.delete(e),this.info("(%s) joinPresenceColl error, need to reset withPresence false and beQuiet true",e),ee;{var W;const he=this._decoupleChannels.get(e);var re;if(v!==(he==null?void 0:he.createTs))return void this.logError("outdated error, wont handle joinPresenceColl error: %s, retryCnt: %d, withPresence: %s, error: %o",e,(re=o.retryCnt)!==null&&re!==void 0?re:0,o.withPresence,ee);const ue=(W=he==null?void 0:he.retryCnt)!==null&&W!==void 0?W:0;this.logError("joinPresenceColl error: %s, retryCnt: %d, withPresence: %s, error: %o",e,ue,o.withPresence,ee),he!=null&&he.creating&&(this._decoupleChannels.set(e,_objectSpread2(_objectSpread2({},he),{},{createTs:v,creating:!1,retryCnt:ue+1})),he.needCreateColl&&this._handleCreateCollError(e))}}finally{this._decoupleChannelPromises.delete(e)}}_cacheState(e){try{this._getStateAndSetByLocal(e)}catch(o){this.logError("cacheState error: %o",o)}}_cacheStateAndDelDoc(e){this._cacheState(e),this.delChannelDoc(e)}_clearIntervalById(e){clearInterval(e)}_getIntervalSnapshot(e){var o,d;const I=[...(o=this.timeoutUsersWithoutInterval.get(e))!==null&&o!==void 0?o:new Set],f=[];return(d=this.channelsUsersStates.get(e))===null||d===void 0||d.forEach((S,v)=>{I.includes(v)||f.push(v)}),{alreadyJoinedUsers:f,alreadyTimeoutUsers:I}}_clearIntervalCacheOfChannel(e){this.timeoutInSnapshot.delete(e),this.intervalMode.delete(e),this.intervalTimerId.delete(e),this.intervalInfos.delete(e),this.timeoutUsersWithoutInterval.delete(e),this.intervalSnapshot.delete(e)}_emitPresenceSnapshot(e){this.timeoutInSnapshot.set(e,new Set);const o=this._getCollUsers(e,!0),d=new Map;this.log("presence snapshot: %o",o),o.forEach(v=>{let{userId:L,states:x}=v;d.set(L,x)}),this.channelsUsersStates.set(e,d);const{channelName:I,channelType:f}=getChannelDetailByName(e),S={eventType:"SNAPSHOT",channelType:f,channelName:I,publisher:"",stateChanged:{},interval:null,snapshot:o,timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",S)}_recoverPresence(e){this.backoffEventsMap.get(e)&&this._emitPresenceSnapshot(e),this._cancelBackoffEventsTimer(e)}async _join(e,o){let d=arguments.length>2&&arguments[2]!==void 0&&arguments[2];const I=Date.now();try{const f=d?"re-":"",S=e.includes(STREAM_CHANNEL_PREFIX),v=S?OperationName.join:OperationName.subscribe,L=this.getRTMSession();if(L==null||L.validateSyncConnected(v),(L==null?void 0:L.getColl(e))!==null)return void this.log("".concat(f).concat(v," channel(").concat(replaceRangeWithAsterisk(e),") already."));this.log("".concat(SYNC_RPC_START,": ").concat(f).concat(v," channel(").concat(replaceRangeWithAsterisk(e),")"));const x=Date.now();await timeoutPromise(L.createColl(e,o?["*"]:[this._context.uid],o?["*"]:[this._context.uid]),COMMON_REQUEST_TIMEOUT,v,S?RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED:RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_TIMEOUT);const F=Date.now();this.log("".concat(SYNC_RPC_END,": ").concat(f).concat(v," channel(").concat(replaceRangeWithAsterisk(e),") succeed. cost: ").concat(F-x,"ms.")),this._context.updateRealSubOrJoinOptions(e,"withPresence",o),o||this._withoutPresenceSubSelf(e)}catch(f){throw this._context.updateRealSubOrJoinOptions(e,"withPresence",!1),this._context.updateRealSubOrJoinOptions(e,"beQuiet",!0),f}finally{if(!d){const{channelName:f,channelType:S}=getChannelDetailByName(e),v=this._context.incGetSeq();this._context.addReportEvents("ChannelPresenceSnapshotEvent",{channelName:f,channelType:ChannelTypeEnum[S],userId:this._context.uid,sid:this._context.sid,lts:Long$1.fromNumber(Date.now()),elapse:Long$1.fromNumber(Date.now()-I),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),reqId:v})}}}_onCreateCollection(e,o){const{needDelDoc:d,needPutDoc:I=!1,needSub:f=!1,reJoinCauseReconnect:S=!1}=o;d&&this._cacheStateAndDelDoc(e),I&&this._putChannelDocAndSetState(e,S),f&&this._subPresence(e)}_withoutPresenceSubSelf(e){const o=this.getRTMSession(),d=o==null?void 0:o.getColl(e,!0,"withoutPresenceSubSelf"),I=d==null?void 0:d.Subscribe();I==null||I.addListener("document-events",f=>{const S=f.length;for(let v=0;v{const F=L.Get(),Y=F[K_PRESENCE_EXPIRED];var j;this._delKeyExpired(F),Y&&((j=this.timeoutInSnapshot.get(e))===null||j===void 0||j.add(x)),Y||v.push({userId:x,states:o?F:{},statesCount:o?Object.keys(F).length:0})}),v}async _emitBackoffPresenceEvents(e,o,d){if(this.backoffEventsMap.has(o)&&this._context.getChannelOptionsByKey(o,"withPresence")){switch(e){case"join":this._emitUserJoinUseReg(o,d);break;case"left":this._emitUserLeftUseReg(o,d);break;case"snapshot":await this._emitSnapshotUseReg(o)}this.backoffEventsMap.set(o,!0)}}_emitUserJoinUseReg(e,o){const{channelName:d,channelType:I}=getChannelDetailByName(e),f={eventType:"REMOTE_JOIN",channelType:I,channelName:d,publisher:o,stateChanged:{},interval:null,snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",f)}_emitUserLeftUseReg(e,o){const{channelName:d,channelType:I}=getChannelDetailByName(e),f={eventType:"REMOTE_LEAVE",channelType:I,channelName:d,publisher:o,stateChanged:{},interval:null,snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",f)}async _emitSnapshotUseReg(e){try{const o={eventType:"SNAPSHOT",channelType:"MESSAGE",channelName:e,publisher:"",stateChanged:{},interval:null,snapshot:(await this.requestChannelMemberList(e)).memberInfos.map(d=>{var I;return{userId:(I=d.account)!==null&&I!==void 0?I:"",states:{},statesCount:0}}),timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",o)}catch{}}_handleCreateCollError(e){[...this.backoffEventsMap.keys()].filter(o=>o!==e).length>0?this._changeSourceToReg(e):this._startBackoffEventsTimer(e)}_changeSourceToReg(e){var o;if(this.backoffEventsMap.has(e))return;this.log("".concat(e," change source to reg")),this.backoffEventsMap.set(e,!1);const{channelType:d}=getChannelDetailByName(e);d==="MESSAGE"&&((o=this.getRTMSession())===null||o===void 0?void 0:o.getColl(e))===null&&this._emitBackoffPresenceEvents("snapshot",e)}_getPresenceBackoffEventInterval(){const e=getParameter("PRESENCE_BACKOFF_EVENT_INTERVAL");return 1e3*Number(e??0)||PRESENCE_BACKOFF_EVENT_INTERVAL}_startBackoffEventsTimer(e){if(this.backoffEventsTimer.has(e)||this.backoffEventsMap.has(e)||!this._context.getChannelOptionsByKey(e,"withPresence"))return;this.log("start backoff events timer for ".concat(e));const o=setTimeout(()=>{this._changeSourceToReg(e)},this._getPresenceBackoffEventInterval());this.backoffEventsTimer.set(e,o)}_startAllBackoffEventsTimer(){this.log("start backoff all channels timer"),this._context.getAllChannelNames().forEach(e=>{this._startBackoffEventsTimer(e)})}_cancelBackoffEventsTimer(e){(this.backoffEventsTimer.has(e)||this.backoffEventsMap.has(e))&&(this.log("".concat(e," change source to sync")),this.backoffEventsTimer.has(e)&&(this.log("cancel backoff events timer for ".concat(e)),clearTimeout(this.backoffEventsTimer.get(e)),this.backoffEventsTimer.delete(e)),this.backoffEventsMap.delete(e))}_getExpectedRetryTs(e){let o=0;const d=this._intervals4CreateColl.length;if(e>d)return 1e3*(this._intervals4CreateColl.reduce((I,f)=>I+f,0)+(e-d)*this._intervals4CreateColl[d-1]);for(let I=0;I{d.set(I,o[I])}),this==null||this._getLocalStateCache().set(e,d)}_putChannelDocAndSetState(e){var o,d;let I=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const f=this.getRTMSession(),S=f==null?void 0:f.getColl(e,!0,"putChannelDocAndSetState"),v={};((o=this._getLocalStateCache().get(e))!==null&&o!==void 0?o:new Map).forEach((j,W)=>{v[W]=j}),this.log("local states: %o, reJoinCauseReconnect: %s",v,I);const L=S==null?void 0:S.Doc(this._context.uid),x=!!L,F=(d=L==null?void 0:L.Get())!==null&&d!==void 0?d:{};this.log("remote doc exist: ".concat(x,", remote state: %o"),F),x&&F[K_PRESENCE_EXPIRED]&&(S==null||S.DelDoc(this._context.uid)),x&&!F[K_PRESENCE_EXPIRED]||(S==null||S.PutDoc(this._context.uid),this.log("Put channel(".concat(replaceRangeWithAsterisk(e),") document succeed.")));const Y=S==null?void 0:S.Doc(this._context.uid);if(f==null||f.setAutoKeepalive(e),f==null||f.sendTick(),I||this._getLocalStateCache().has(e)){if(this.log("update user state in channel(".concat(replaceRangeWithAsterisk(e),") local cache.")),!x||F[K_PRESENCE_EXPIRED])this.log("remote doc not exist or expired, directly set"),Y==null||Y.Set(v);else{const j=Object.keys(F).filter(re=>!v.hasOwnProperty(re)&&re!==K_PRESENCE_EXPIRED);j.length>0&&(Y==null||Y.Del(j));const W=Object.keys(v).filter(re=>!F.hasOwnProperty(re)||F[re]!==v[re]);W.length>0&&(Y==null||Y.Set(v)),this.log("diff state: %o",{addOrChangedKeys:W,needDelKeys:j})}f==null||f.sendTick()}else this.log("first join presence and without local state");this._context.updateRealSubOrJoinOptions(e,"beQuiet",!1)}}var _exec,_window;const chromeVersion=(_exec=/Chrome\/([0-9.]+)/.exec((_window=window)===null||_window===void 0||(_window=_window.navigator)===null||_window===void 0?void 0:_window.userAgent))===null||_exec===void 0||(_exec=_exec[1])===null||_exec===void 0?void 0:_exec.split(".")[0];if(chromeVersion&&parseInt(chromeVersion,10)>=88&&!isMobile$1()){var _hiddenCanvas$getCont;const n=document.createElement("video"),e=document.createElement("canvas");n.setAttribute("style","display:none"),n.setAttribute("muted",""),n.muted=!0,n.setAttribute("autoplay",""),n.autoplay=!0,n.setAttribute("playsinline",""),e.setAttribute("style","display:none"),e.setAttribute("width","1"),e.setAttribute("height","1"),(_hiddenCanvas$getCont=e.getContext("2d"))===null||_hiddenCanvas$getCont===void 0||_hiddenCanvas$getCont.fillRect(0,0,1,1),n.srcObject=e==null?void 0:e.captureStream()}class RTMImpl extends EventBase{constructor(e,o,d){super(e,"RTMImpl",!0),_defineProperty$1(this,"presence",void 0),_defineProperty$1(this,"storage",void 0),_defineProperty$1(this,"lock",void 0),_defineProperty$1(this,"history",void 0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_processId",void 0),_defineProperty$1(this,"_rtmSession",void 0),_defineProperty$1(this,"_channelPresence",void 0),_defineProperty$1(this,"_customConfig",void 0),_defineProperty$1(this,"_suspendedTimer",null),_defineProperty$1(this,"_createCollInterval",null),_defineProperty$1(this,"_streamChannelList",[]),_defineProperty$1(this,"_stChannelInstances",new Map),_defineProperty$1(this,"_lastLoginTime",void 0),_defineProperty$1(this,"_connectionState","DISCONNECTED"),_defineProperty$1(this,"_linkState","IDLE"),_defineProperty$1(this,"_suspended",!1),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),_defineProperty$1(this,"_lockSnapshotLastTime",new Map),_defineProperty$1(this,"_lockEventInfos",new Map),_defineProperty$1(this,"_notifyLockReSub",new Subject),_defineProperty$1(this,"_notifyChannelMetaReSub",new Subject),_defineProperty$1(this,"_notifyChannelReSub",new Subject),_defineProperty$1(this,"_rtmSubscriptions",{lockSubs:new Map,metadataSubs:new Map,channels:new Map}),_defineProperty$1(this,"_msgManager",void 0),_defineProperty$1(this,"_reconnectTimeoutTimer",null),_defineProperty$1(this,"_tokenPrivilegeWillExpireHandler",I=>{this.emit("tokenPrivilegeWillExpire",""),this.emit("token",{eventType:"WILL_EXPIRE",reason:TokenEventReason.WILL_EXPIRE,affectedResources:I,timestamp:getUTCTimeBaseREG(this._context.offsetTime)})}),_defineProperty$1(this,"_userDropHandler",async I=>{if(this._connectionState==="FAILED")return;let f="INTERRUPTED",S=LinkStateChangeReasonDescription.UNKNOWN,v="UNKNOWN";switch(I){case RegServerErrorCode.kTimestampExpired:this.logError("Server banned because of token is expired, ticket expired."),f="TOKEN_EXPIRED",S=LinkStateChangeReasonDescription.TOKEN_EXPIRED,v="TOKEN_EXPIRED";break;case RegServerErrorCode.kRejoined:this.logError("Kicked off by remote session"),f="SAME_UID_LOGIN",S=LinkStateChangeReasonDescription.SAME_UID_LOGIN,v="SAME_UID_LOGIN",this._context.instanceId=null;break;case RegServerErrorCode.kJoinTooFrequently:this.logError("login too frequent"),f="REJECTED_BY_SERVER",S=LinkStateChangeReasonDescription.LOGIN_TOO_FREQUENT,v="LOGIN_TOO_FREQUENT",this._context.instanceId=null;break;case RegServerErrorCode.kUserBannedByAuth:this.logError("Kicked off by authorization"),f="KICKED_OUT_BY_SERVER",S=LinkStateChangeReasonDescription.KICKED_OUT_BY_SERVER,v="KICKED_OUT_BY_SERVER",this._context.instanceId=null;break;default:this.logError("User kicked off for unknown code: ".concat(I))}this._updateLinkState("FAILED","SERVER_REJECT",this._getUsedMessageChannelIds(),v,S),this._onConnectionStateChanged("FAILED",f)}),_defineProperty$1(this,"_onChannelLockEvent",I=>{const{channelName:f,channelType:S}=I,v=getChannelNameByType(f,S);this._context.getChannelOptionsByKey(v,"withLock")&&this.emit("lock",I)}),this._context=d,this._processId=o,this.setMaxListeners(512),window.addEventListener("offline",()=>{this.warn("network-state-change: ONLINE -> OFFLINE")}),window.addEventListener("online",()=>{var I;this.log("network-state-change: OFFLINE -> ONLINE"),(I=this._rtmSession)===null||I===void 0||I.notifyNetworkChange(!0)}),this._addEventsFromContext(),this.lock=new Lock(e,this._context,()=>this._rtmSession,this._validateRtmConnection.bind(this)),this.presence=new Presence(e,this._context,()=>this._rtmSession,()=>this._linkState,()=>{var I;return(I=this._channelPresence)===null||I===void 0?void 0:I.backoffEventsMap},this._requestChannelMemberList.bind(this)),this.storage=new RStorage(e,this._context,()=>this._rtmSession,this._validateRtmConnection.bind(this),this._emitStorageEvent.bind(this),this.getLockRevision.bind(this)),this.history=new History(e,this._context,()=>this._rtmSession,this._validateRtmConnection.bind(this)),this._channelPresence=new ChannelPresence(this._context,e,()=>this._rtmSession,this._requestChannelMemberList.bind(this)),this._channelPresence.on("presence",I=>{this.emit("presence",I)}),this.log("rtm use private config: %s, enable cloud proxy: %s",this._context.enablePrivate,this._context.rtmConfig.cloudProxy),this._context.enablePrivate||(this._customConfig=new CustomConfig(this._context.appId)),this._msgManager=new MsgManager(e,this._context,this._sendMessageToRetry.bind(this),this._sendMessageAck.bind(this),this._emitMessageEvent.bind(this))}getLockRevision(e,o,d){var I;if(!o)return;validateKey(o,d,"metadata-lock");const f=(I=this.lock.lockImpl.localAcquiredLocks.get(e))===null||I===void 0?void 0:I.get(o);if(f==null||!f.revision){const{code:S,reason:v}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_LOCK_NOT_ACQUIRED);throw new RtmUnavailableError(d,[v],S)}return f==null?void 0:f.revision}async login(e){var o,d;this._linkState==="IDLE"&&this._clearEffectsByLogout();const I=this._linkState==="FAILED";I&&this._channelPresence.cacheAllChannelCrdtState();const f=Array.from((o=this._context.getAllChannelNames())!==null&&o!==void 0?o:[]),S=[],v=OperationName.login;let L=e==null?void 0:e.token;if(this._linkState==="CONNECTING"){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_DUPLICATE_OPERATION);throw new RtmUnavailableError(v,[ee],re)}const x=this._context.instanceId===null,F=(d=this._context.instanceId)!==null&&d!==void 0?d:getRandomUInt64();this._context.instanceId=F,this._context.sid=getSid(F),this._linkState==="IDLE"?this._updateLinkState("CONNECTING","LOGIN",[],"LOGIN",LinkStateChangeReasonDescription.LOGIN):this._linkState==="FAILED"&&this._updateLinkState("CONNECTING","LOGIN",[],"RELOGIN",LinkStateChangeReasonDescription.RELOGIN);const Y={timestamp:0};if(this._linkState==="CONNECTED")return Y;try{if(this._context.rtmConfig.privateConfig&&!this._context.rtmConfig.privateConfig.serviceType.includes("MESSAGE")){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(v,[ee],re)}if(this._apiRateLimit.canMakeOperation("login"),L&&validateToken(L,this._context.appId,v,re=>{this.warn(re)}),validateKey(this._context.uid,v,"uid"),(e==null?void 0:e.token)===this._context.appId&&(L=void 0),!isNil$1(L)&&typeof L!="string"){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmInvalidArgumentError(v,[ee],re)}this._context.enablePrivate&&areaConfig&&throwInvalidPrivateConfig(v," Use private config, not permit setArea")}catch(re){const{errorCode:ee}=re;throw this._handleLoginFailedState(ee),re}this._context.token=e==null?void 0:e.token,this.info("RTM Client logging in as ".concat(replaceRangeWithAsterisk(this._context.uid))),x&&this._context.sendReport("Session",{appId:this._context.appId,did:navigator.userAgent,elapse:getElapse(this._context.startTime),index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},installId:this._processId,lts:Long$1.fromNumber(Date.now()),os:WEB_PLATFORM_TYPE,sid:getSid(F),token:L||"",userId:this._context.uid,ver:VERSION,buildno:100*VERSION_NO+SUBVERSION,subVersion:SUBVERSION,version:VERSION_NO});const j=Date.now();try{var W;let re="first";["SUSPENDED","DISCONNECTED"].includes(this._linkState)&&(this.log("custom reLogin, need retry right now"),this._updateLinkState("CONNECTING","LOGIN",[],"RELOGIN",LinkStateChangeReasonDescription.RELOGIN),re=isBusy?"logging":"reconnecting"),changeBusyStatus(!0),await this._genLoginImpl(re),this._onConnectionStateChanged("CONNECTED","LOGIN_SUCCESS"),this._context.addReportEvents("LoginResult",{lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),sid:this._context.sid,code:(W=this._rtmSession)!==null&&W!==void 0&&W.isSyncEstablished()?0:RTMErrorCode.RTM_ERROR_PRESENCE_NOT_CONNECTED,elapse:getElapse(this._context.startTime),userId:this._context.uid}),this._updateLinkState("CONNECTED","LOGIN",[],"LOGIN_SUCCESS",LinkStateChangeReasonDescription.LOGIN_SUCCESS);try{I&&(await Promise.allSettled([...f==null?void 0:f.map(he=>{var ue,Ee;const{channelName:_e,channelType:De}=getChannelDetailByName(he),Fe=this._context.getChannelLastCustomSubOrJoinOptions(he);let Ve="";if(Fe&&De==="MESSAGE")Ve=_e;else{if(!Fe||De!=="STREAM")return Promise.resolve();Ve=getChannelNameByType(_e,"STREAM")}if(this._context.notInChannel(Ve))return Promise.resolve();const Ge={withPresence:(ue=Fe.withPresence)!==null&&ue!==void 0&&ue,beQuiet:(Ee=Fe.beQuiet)!==null&&Ee!==void 0&&Ee,coll:{create:!(Fe.beQuiet&&!Fe.withPresence),destroy:!1,sub:Fe.withPresence,unsubSelf:!1,unsub:!1},doc:{put:!(Fe!=null&&Fe.beQuiet),del:!1}};return this._attend(Ve,Ge,!0,!1)})])).forEach((he,ue)=>{ue>=f.length||he.status==="rejected"&&isRtmError(he.reason)&&S.push(f[ue])})}catch(ee){this.logError("restore failed ".concat(JSON.stringify(ee)))}return Y}catch(re){if(isRtmError(re)){const{errorCode:ee}=re;if(ee===RTMErrorCode.RTM_ERROR_LOGIN_CANCELED)throw re;this._context.addReportEvents("Link",{ackedServerIp:"",destServerIp:"",ec:re.code||1,sc:re.serverCode,elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),responseTime:Date.now()-j,sid:getSid(F),userId:this._context.uid,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),linktype:4,linkflag:Long$1.fromNumber(0),linkenv:0}),this._handleLoginFailedState(ee)}throw re}finally{this._context.socketUseProxy=!1,changeBusyStatus(!1),this._context.socketUseProxy&&this.log("port fallback to 443"),this._clearLinkTimers()}}async logout(){try{var e;const d={timestamp:0};if(this._connectionState==="DISCONNECTED"&&this._linkState==="IDLE")return this.warn("Already in logout state: ".concat(this._connectionState)),d;this._rtmSession&&getParameter("VID").get(this._context.appId)&&this._context.addReportEvents("Logout",{elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),sid:getSid((e=this._context.instanceId)!==null&&e!==void 0?e:Long$1.fromNumber(0)),userId:this._context.uid,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),linktype:4,linkflag:Long$1.fromNumber(0),linkenv:0});let I="logout";if(this._connectionState==="FAILED"||this._linkState==="FAILED")I="failed";else if(this._connectionState==="RECONNECTING"||["DISCONNECTED","SUSPENDED","CONNECTING"].includes(this._linkState)){var o;this.warn("logout: cancel login"),(o=this._rtmSession)===null||o===void 0||o.cancelLogin(),this.info('Reset connection state from "RECONNECTING" to "DISCONNECTED"'),I="connecting"}else I="logout";return await this._genLogoutImpl(I),d}finally{this._updateLinkState("IDLE","LOGOUT",this._getUsedMessageChannelIds(),"LOGOUT",LinkStateChangeReasonDescription.LOGOUT),this._clearEffectsByLogout()}}_handlePermissionRevoked(e){e.forEach(o=>{this._absent(o),this.storage.storageImpl.deleteChannelMetaEventInfos(o),this._lockSnapshotLastTime.delete(o),this._context.deleteChannelOptionsCache(o),this._channelPresence.leaveRetryChannels([o]),this._channelPresence.clearBackOffChannels()}),this._clearChannel(e)}async renewToken(e,o){var d;const I=OperationName.renewToken;this._apiRateLimit.canMakeOperation("renewToken"),this._validateRtmConnection(I,!1),validateToken(e,this._context.appId,I,Y=>{this.warn(Y)});const f={timestamp:0};this._context.addReportEvents("RenewToken",{sid:this._context.sid,userId:this._context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),cname:(d=o==null?void 0:o.channelName)!==null&&d!==void 0?d:"",token:e});let S=0;try{if(o!=null&&o.channelName){if(validateKey(o.channelName,I,"channel"),this._streamChannelList.some(j=>j===o.channelName)||this.warn("renewToken: channel(".concat(o.channelName,") not join.")),!this._stChannelInstances.has(o.channelName)){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_NAME);throw new RtmInvalidArgumentError(I,[W],j)}const Y=this._stChannelInstances.get(o.channelName);return await(Y==null?void 0:Y.renewStreamChannelToken(e)),f}{if(typeof e!="string"||e.length===0){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmInvalidArgumentError(I,[W],j)}if(!["CONNECTED","RECONNECTING"].includes(this._connectionState)||this._linkState!=="CONNECTED"){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(I,[W],j)}if(this._validateRTMSessionExist(I),e===this._context.token)return{timestamp:0};try{var v=this._context.token;this._context.token=e,this._rtmSession.clearEdges4RenewToken();var{ticket:L}=await merge(this._rtmSession.genApEdgeInfo$(!0),this._rtmSession.endLogin$.pipe(mapTo(EMPTY))).pipe(retryWhen(j=>j.pipe(tap(W=>{if(isRtmError(W))throw W}),delay(2500),take(4))),take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(j=>throwError(j))).toPromise()}catch(j){if(this._rtmSession.recoverEdges4RenewToken(),this._context.token=v,isTimeout(j)){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_RENEW_TOKEN_TIMEOUT);throw new RtmTimeoutError(I,[re],W)}{const{code:W,reason:re}=getErrorInfoByCode(j.code);throw new RtmUnauthenticatedError(I,[re],W)}}const Y=await this._requestUpdateEdgeTicket2(L).toPromise();if(Y.code!==0){const{code:j,reason:W}=getErrorInfoByCode(Y.code);throw new RtmUnavailableError(I,[W],j)}var x;(x=this._rtmSession)===null||x===void 0||x.updateRegTicket(L);try{const j={messageChannels:JSON.parse(Y.revoked).messageChannels.map(W=>{var re;return(re=Object.keys(W)[0])!==null&&re!==void 0?re:""})};Object.values(j).some(W=>W.length>0)&&(this._handlePermissionRevoked(Object.values(j).flat()),this.emit("token",{eventType:"READ_PERMISSION_REVOKED",reason:TokenEventReason.READ_PERMISSION_REVOKED,affectedResources:j,timestamp:getUTCTimeBaseREG(this._context.offsetTime)}))}catch(j){this.logError("parse permission revoked resources failed, error: %o",j)}return this._updateSyncTicketByRenewToken(L),f}}catch(Y){const{serverCode:j,errorCode:W}=Y;throw S=j??W,this._context.token=v,Y}finally{var F;this._context.addReportEvents("RenewTokenRes",{lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),sid:this._context.sid,userId:this._context.uid,elapse:getElapse(this._context.startTime),cname:(F=o==null?void 0:o.channelName)!==null&&F!==void 0?F:"",token:e,apErrCode:S,regErrCode:S})}}async publish(e,o,d){const I=OperationName.publish;if(this._apiRateLimit.canMakeOperation("publish"),d!=null&&d.channelType&&(d==null?void 0:d.channelType)!=="USER"&&(d==null?void 0:d.channelType)!=="MESSAGE"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_TYPE);throw new RtmInvalidArgumentError(I,[x],L)}if(this._validateRtmConnection(I),validateKey(e,I,"channel"),validateMessageSize(o,I),d!=null&&d.customType&&validateCustomType(d==null?void 0:d.customType,I),d!=null&&d.storeInHistory&&this._context.consoleConfig["history.enabled"]!=="true"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_NOT_AVAILABLE);throw new RtmInvalidArgumentError(I,[x],L)}const f={timestamp:0,channelName:e},S=o instanceof Uint8Array?{rawMessage:o,messageType:"RAW"}:{text:o,messageType:"TEXT"},v=(d==null?void 0:d.channelType)==="USER";validMessage(S,RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);try{await this._msgManager.commonSendMessage({message:S,peerId:e,diff:0,customType:d==null?void 0:d.customType,storeInHistory:d==null?void 0:d.storeInHistory,toPeer:v})}catch(L){if(isTimeout(L)){const{code:Y,reason:j}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_TIMEOUT);throw new RtmTimeoutError(I,[j],Y)}if(isRtmError(L))throw L;const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_FAILED);throw new RtmUnknownError(I,[F],x)}return f}async subscribe(e,o){var d;const I=OperationName.subscribe;this._apiRateLimit.canMakeOperation("subscribe"),this._validateRtmConnection(I),this._validateRTMSessionExist(I),validateKey(e,I,"channel");const f=this._context.notInChannel(e),S=this._getUsedMessageChannelIds(),v=(d=getParameter("MESSAGE_CHANNEL_COUNT"))!==null&&d!==void 0?d:MAX_JOINED_CHANNELS;if(f&&(this._context.getAllChannelNames().length>=v||S.length>=v)){const{code:Ee,reason:_e}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INSTANCE_EXCEED_LIMITATION);throw new RtmLimitExceededError(I,[_e],Ee)}this._validateJoinOptions(o,I);const L=handleSubOptionsAsDefault(o),x={timestamp:0,channelName:e},F=this._context.getSubOrJoinActions(e,L),{message:Y}=F,{currentResolve:j}=await this._context.operationControl.awaitPromise(OperationName.subscribe+e),W=this._rtmSession,re=getRandomInt(0,Number.MAX_SAFE_INTEGER),ee=this._context.getChannelLastRealSubOrJoinOptions(e);try{if(Y.sub)try{await this._subMessage(e,I)}catch(De){throw this._context.internalEmitter.emit("channelLeft",e),this._context.isInChannel(e)&&this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),De}this._context.setLastCustomSubOrJoinOptions(e,L);const{code:Ee,reason:_e}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);try{const De=(await Promise.allSettled([Y.unsub?this._unsubMessage(e):Promise.resolve(),this._updateOptionsReJoinOrSub(e,F)])).find(Fe=>Fe.status==="rejected");if(De)throw De.reason}catch(De){throw isRtmError(De)?De:new RtmUnknownError(I,[_e+De],Ee)}}catch(Ee){j(void 0);const{errorCode:_e,serverCode:De}=Ee;var he;throw W&&this._context.addReportEvents("ChnJoinRes",{cname:e,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:_e,sid:getSid((he=this._context.instanceId)!==null&&he!==void 0?he:Long$1.fromNumber(0)),serverErrCode:De??_e,userId:this._context.uid,seq:Long$1.fromNumber(re)}),Ee}finally{this._context.reportChnJoin(e,ee,L,re)}var ue;return W&&this._context.addReportEvents("ChnJoinRes",{cname:e,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:0,sid:getSid((ue=this._context.instanceId)!==null&&ue!==void 0?ue:Long$1.fromNumber(0)),serverErrCode:0,userId:this._context.uid,seq:Long$1.fromNumber(re)}),j(void 0),x}async unsubscribe(e){const o=OperationName.unsubscribe;validateKey(e,o,"channel");const d={timestamp:0,channelName:e};if(this._linkState==="IDLE"||(this._validateRtmConnection(o,!1),this._validateRTMSessionExist(o),this._context.notInChannel(e)))return d;try{this._reportChannelLeave(e,0);const I=await Promise.allSettled([this._unsubMessage(e),this._unsubLockAMeta(e),this._absent(e)]);this._context.deleteChannelOptionsCache(e);const f=I.find(S=>S.status==="rejected");if(f)throw f.reason}catch(I){let f;const S=RTMErrorCode.RTM_ERROR_CHANNEL_LEAVE_FAILED;if(this.logError(I),isRtmError(I))(I==null?void 0:I.code)===void 0&&(I.code=RTMErrorCode.RTM_ERROR_CHANNEL_LEAVE_FAILED),f=I;else{const{code:v,reason:L}=getErrorInfoByCode(S);f=new RtmUnknownError(o,[L],v)}throw f}return d}createStreamChannel(e){const o=OperationName.createStreamChannel;if(this._context.rtmConfig.privateConfig&&!this._context.rtmConfig.privateConfig.serviceType.includes("STREAM")){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(o,[S],f)}validateKey(e,o,"channel");const d=this._stChannelInstances.get(e);if(d)return this.log("channel already exists ".concat(replaceRangeWithAsterisk(e))),d;const I=new StreamChannel(this._context,this.logger,{channelName:e,appId:this._context.appId,userId:this._context.rtmConfig.useStringUserId===!1?parseInt(this._context.uid):this._context.uid},this.emit,()=>this._streamChannelList,this._validateRtmConnection.bind(this),()=>this._rtmSession,this._updateOptionsReJoinOrSub.bind(this),this._unsubLockAMeta.bind(this),this._absent.bind(this));return this._stChannelInstances.set(e,I),I}addEventListener(e,o){this.on(e,o)}removeEventListener(e,o){this.off(e,o)}async _updateOptionsReJoinOrSub(e,o){const{lock:d,metadata:I,presence:f}=o,S=getParameter("STORAGE_CHANNEL_SUB_ENABLED"),v=I.sub&&(S!==void 0?String(S):this._context.consoleConfig["storage.channel_subscribe_enabled"])==="true";try{const L=(await Promise.allSettled([v?this._subMetadata(e):void 0,I.unsub?this._unsubMetadata(e):Promise.resolve(),d.sub?this._subLock(e):void 0,d.unsub?this._unsubLock(e):Promise.resolve(),this._attend(e,f)])).find(x=>x.status==="rejected");if(L)throw L.reason}catch(L){throw L}}_sendRtmBasePacket(e,o,d,I){var f;I!==void 0?this._sendRtmBasePacketUseOneEnv(e,I,o,d):(f=this._rtmSession)===null||f===void 0||f.sendOperationPacket(e,o,d)}_sendRtmBasePacketUseOneEnv(e,o,d,I){var f;(f=this._rtmSession)===null||f===void 0||f.sendOperationPacketUseOneEnv(e,o,d,I)}_onOperationPacket(e){return this._rtmSession.onOperationPacket(e)}async _internalLogoutHandler(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];try{await this._logoutVosWeb(),await this._logoutSync(o)}catch(d){throw this.logError("internalLogoutHandler error: ".concat(JSON.stringify(d))),d}finally{e&&await this._logoutRegistrar(),this._context.forceReportEvents()}}async _logoutVosWeb(){await Promise.allSettled([...this._stChannelInstances.values()].map(e=>{e._streamChannelImpl.leaveVosWeb()}))}async _requestSubscribeChannelMetadata(e){const o=OperationName.subscribe;this._context.internalEmitter.emit("unsubChannelMetadata",e);const d=fromEvent(this._context.internalEmitter,"unsubChannelMetadata").pipe(filter(L=>e===L),take(1)),I=this._context.incGetSeq(),f=Date.now(),S=this._notifyChannelMetaReSub.pipe(filter(L=>(L==null?void 0:L.prefixChannelName)===e||(L==null?void 0:L.allReSub)===!0),switchMap(L=>{const x=I;return this._sendRtmBasePacket(o,"StateSubscribe",{sequence:x,target:e,subTarget:"",flags:new Long$1(1,0,!0)},L.env),this._onOperationPacket("StateSubscribeResult").pipe(first(F=>{let{sequence:Y}=F;return x.eq(Y)}),tap(F=>{let{code:Y}=F;const{code:j}=convertServerCodeToSdkCodeForSub(Y);this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:new Long$1(1,0,!0),code:j,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid}),j!==RTMErrorCode.RTM_ERROR_OK?j===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED?this._handleNoPrivilege(e,"metadata"):(this._context.updateRealSubOrJoinOptions(e,"withMetadata",!1),this.warn("Subscribe channel metadata failure. The response code from the RTM service is ".concat(Y))):this._context.updateRealSubOrJoinOptions(e,"withMetadata",!0)}),timeout(COMMON_REQUEST_TIMEOUT),catchError(F=>F instanceof TimeoutError?(this._context.updateRealSubOrJoinOptions(e,"withMetadata",!1),EMPTY):throwError(F)))}),takeUntil(d),share()),v=()=>{this._rtmSubscriptions.metadataSubs.delete(e)};this._rtmSubscriptions.metadataSubs.set(e,S.subscribe({error:v,complete:v})),this._notifyChannelMetaReSub.next({env:void 0,prefixChannelName:e}),await S.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(L=>(L instanceof TimeoutError&&(this.warn("subscribe channel metadata timeout"),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:new Long$1(1,0,!0),code:RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid})),throwError(L)))).toPromise()}async _requestSubscribeLock(e){const o=OperationName.subscribe;this._context.internalEmitter.emit("unsubChannelLock",e);const d=fromEvent(this._context.internalEmitter,"unsubChannelLock").pipe(filter(v=>e===v),take(1),tap(v=>{this._lockSnapshotLastTime.delete(v)})),I=this._context.incGetSeq(),f=this._notifyLockReSub.pipe(filter(v=>(v==null?void 0:v.prefixChannelName)===e||(v==null?void 0:v.allReSub)===!0),switchMap(v=>{const L=I;return this._sendRtmBasePacket(o,"StateLockSubscribe",{sequence:L,target:e,flags:new Long$1(1048577,0,!0)},v.env),this._onOperationPacket("StateLockSubscribeResult").pipe(first(x=>{let{sequence:F}=x;return L.eq(F)}),tap(x=>{let{code:F}=x;const{code:Y}=convertServerCodeToSdkCodeForSub(F);Y!==RTMErrorCode.RTM_ERROR_OK?Y===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED?this._handleNoPrivilege(e,"lock"):(this._context.updateRealSubOrJoinOptions(e,"withLock",!1),this.warn("Subscribe lock failure. The response code from the RTM service is ".concat(F))):this._context.updateRealSubOrJoinOptions(e,"withLock",!0)}),timeout(COMMON_REQUEST_TIMEOUT),catchError(x=>x instanceof TimeoutError?(this._context.updateRealSubOrJoinOptions(e,"withLock",!1),EMPTY):throwError(x)))}),takeUntil(d),share()),S=()=>{this._rtmSubscriptions.lockSubs.delete(e)};this._rtmSubscriptions.lockSubs.set(e,f.subscribe({error:S,complete:S})),this._notifyLockReSub.next({env:void 0,prefixChannelName:e}),await f.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(v=>(v instanceof TimeoutError&&this.warn("subscribe channel lock timeout"),throwError(v)))).toPromise()}_unsubLockAndMeta4MessageChn(){this._context.getAllChannelNames().forEach(e=>{const{channelType:o}=getChannelDetailByName(e);o==="MESSAGE"&&(this._unsubLockAMeta(e),this._unsubMessage(e))}),this.storage.storageImpl.unsubAllUserMetadata()}async _logoutRegistrar(){const e=this._hasLock();return this._unsubLockAndMeta4MessageChn(),await this._rtmSession.logoutRegistrar(e)}async _attend(e,o){let d=arguments.length>2&&arguments[2]!==void 0&&arguments[2],I=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];if(this._context.disablePresence)return;const{withPresence:f,coll:S,doc:v,beQuiet:L}=o;S.unsubSelf&&this._channelPresence.unsubscribeSelfPresence(e,!1),S.unsub&&this._channelPresence.unsubPresence(e,!1),S.destroy&&(v.del&&this._channelPresence.delChannelDoc(e),this._channelPresence.leave(e)),await this._channelPresence.joinPresenceColl(e,{withPresence:f,beQuiet:L,needCreateColl:S.create,needDelDoc:v.del,needPutDoc:v.put,needSub:S.sub,reJoinCauseReconnect:d},I)}_absent(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._context.disablePresence||this._context.notInChannel(e))return;const{withPresence:d,beQuiet:I}=this._context.getChannelLastRealSubOrJoinOptions(e);d?this._channelPresence.unsubPresence(e,o):this._channelPresence.unsubscribeSelfPresence(e,o),!I&&this._channelPresence.delChannelDoc(e),this._context.isInChannel(e)&&this._channelPresence.leave(e),this._channelPresence.leaveRetryChannels([e])}async _logoutSync(){var e;let o=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];this._context.disablePresence||(await Promise.allSettled(this._context.getAllChannelNames().map(d=>this._absent(d))),o&&await((e=this._rtmSession)===null||e===void 0?void 0:e.logoutSyncHandler()))}async _unsubLockAMeta(e){this._unsubLock(e),this._unsubMetadata(e)}_handleNoPrivilege(e,o){const d=this._context.operationControl.operationIsRunning(OperationName.subscribe+e);if(this.log("".concat(d?"":"re-","subscribe channel ").concat(e," ").concat(o," failed, no privilege")),d){this._context.deleteChannelOptionsCache(e);const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED);throw new RtmUnavailableError(OperationName.subscribe,[f],I)}switch(this._absent(e),o){case"message":this._context.internalEmitter.emit("channelLeft",e);break;case"metadata":this.storage.storageImpl.deleteChannelMetaEventInfos(e),this._context.internalEmitter.emit("unsubChannelMetadata",e);break;case"lock":this._lockSnapshotLastTime.delete(e),this._context.internalEmitter.emit("unsubChannelLock",e)}this._context.isInChannel(e)&&(this._context.deleteChannelOptionsCache(e),this.emit("token",{eventType:"READ_PERMISSION_REVOKED",reason:TokenEventReason.READ_PERMISSION_REVOKED,affectedResources:{messageChannels:[e]},timestamp:getUTCTimeBaseREG(this._context.offsetTime)}))}async _requestChannelJoin(e){const o=OperationName.subscribe,d=fromEvent(this._context.internalEmitter,"channelLeft").pipe(filter(v=>e===v),take(1)),I=this._context.incGetSeq(),f=this._notifyChannelReSub.pipe(filter(v=>(v==null?void 0:v.prefixChannelName)===e||(v==null?void 0:v.allReSub)===!0),switchMap(v=>{const L=I;return this._sendRtmBasePacket(o,"GroupEnter",{account:e,seq:L},v.env),this._onOperationPacket("GroupReply").pipe(first(x=>{let{seq:F}=x;return L.eq(F)}),tap(x=>{let{code:F}=x;if(F!==0){if(F!==RegServerErrorCode.kGroupUserNoPrivilege){const{code:Y,reason:j}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);throw this.warn("channel join failed, server code is %d",F),this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),new RtmUnavailableError(o,[j],{code:Y,serverCode:F})}this._handleNoPrivilege(e,"message")}else this._context.updateRealSubOrJoinOptions(e,"withMessage",!0)}),timeout(COMMON_REQUEST_TIMEOUT),catchError(x=>x instanceof TimeoutError?(this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),EMPTY):throwError(x)))}),takeUntil(d),share()),S=()=>{this._rtmSubscriptions.channels.delete(e)};this._rtmSubscriptions.channels.set(e,f.subscribe({error:S,complete:S})),this._notifyChannelReSub.next({env:void 0,prefixChannelName:e}),await f.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(v=>{if(isRtmError(v))return throwError(v);!(v instanceof TimeoutError)&&this.logError(v);const{code:L,reason:x}=getErrorInfoByCode(v instanceof TimeoutError?RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_TIMEOUT:RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);return throwError(new RtmUnavailableError(o,[x],L))})).toPromise()}async _subMessage(e,o){try{this.log("Joining the channel %s",replaceRangeWithAsterisk(e)),await this._requestChannelJoin(e),this.info("The channel %s joined successfully",replaceRangeWithAsterisk(e))}catch(d){if(this.logError(d),isRtmError(d))throw d;const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);throw new RtmUnknownError(o,[f],I)}}async _unsubMessage(e){this._context.getChannelOptionsByKey(e,"withMessage","real")&&this._sendRtmBasePacket(OperationName.leave,"GroupLeave2",{account:e,flags:Long$1.fromNumber(0)}),this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),this._context.internalEmitter.emit("channelLeft",e)}async _subMetadata(e){try{await this._requestSubscribeChannelMetadata(e)}catch(o){if(this.logError("sub channel metadata failure when sub channel(".concat(replaceRangeWithAsterisk(e),"), error is %o."),o),o.errorCode===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED)throw o}}_unsubMetadata(e){const o=this._context.incGetSeq();this._context.getChannelOptionsByKey(e,"withMetadata","real")&&(this._sendRtmBasePacket(OperationName.unsubscribe,"StateUnsubscribe",{sequence:o,target:e,subTarget:"",flags:new Long$1(1,0,!0)}),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(Date.now()),replyts:Long$1.fromNumber(Date.now()),eventtype:"UnSubscribe",sdktype:4,flags:new Long$1(1,0,!0),code:0,seq:o,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid})),this.storage.storageImpl.deleteChannelMetaEventInfos(e),this._context.updateRealSubOrJoinOptions(e,"withMetadata",!1),this._context.internalEmitter.emit("unsubChannelMetadata",e)}async _subLock(e){try{await this._requestSubscribeLock(e)}catch(o){if(this.logError("sub lock info failure when sub channel(".concat(replaceRangeWithAsterisk(e),"), error is %o."),o),o.errorCode===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED)throw o}}_unsubLock(e){const o=this._context.incGetSeq();this._context.getChannelOptionsByKey(e,"withLock","real")&&this._sendRtmBasePacket(OperationName.unsubscribe,"StateLockUnsubscribe",{sequence:o,target:e,flags:new Long$1(1048577,0,!0)}),this._lockSnapshotLastTime.delete(e),this._context.updateRealSubOrJoinOptions(e,"withLock",!1),this._context.internalEmitter.emit("unsubChannelLock",e)}_emitMessageEvent(e){this.emit("message",e)}_emitStorageEvent(e,o){var d;const I={};e.items.map(v=>{var L;I[v==null?void 0:v.getKey()]={value:(L=v.getValue())!==null&&L!==void 0?L:"",revision:v.getRevision(),updated:v.getUpdateTs(),authorUid:v.getAuthorUserId()}});const f={totalCount:e==null||(d=e.items)===null||d===void 0?void 0:d.length,majorRevision:e==null?void 0:e.majorRevision,metadata:I},S=_objectSpread2(_objectSpread2({},o),{},{data:f,timestamp:getUTCTimeBaseREG(this._context.offsetTime)});this.emit("storage",S)}_clearLinkTimers(){var e;this._suspended=!1,this._suspendedTimer&&(clearTimeout(this._suspendedTimer),this._suspendedTimer=null),(e=this._rtmSession)===null||e===void 0||e.resetLinkIntervals()}async _loginImpl(e){var o;let{uid:d,instanceId:I,forceLoginTime:f=0}=e;const S=OperationName.login,v=I;if(this._lastLoginTime!==void 0&&Date.now()-this._lastLoginTime<1e3/LOGIN_QPS_LIMIT&&f>0){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_ABORTED);throw new RtmInvokeTooOftenError(S,[F],x)}f===0&&this._onConnectionStateChanged("CONNECTING","CONNECTING"),(o=this._rtmSession)===null||o===void 0||o.release();const L=new RTMSession(this._context,this.logger,v,this._channelPresence.cacheAllChannelCrdtState.bind(this._channelPresence),this._channelPresence.exceptionCallback.bind(this._channelPresence));return this._rtmSession=L,this._context.internalEmitter.on("connectionLost",()=>{var x;this._connectionState!=="CONNECTED"&&this._linkState!=="CONNECTED"||(!this._reconnectTimeoutTimer&&((x=this._context.connectionTimeoutSeconds)!==null&&x!==void 0?x:0)>0&&(this._reconnectTimeoutTimer=setTimeout(()=>{this._reconnectTimeoutTimer=null,this._handleReconnectTimeout()},1e3*this._context.connectionTimeoutSeconds)),this._updateLinkState("DISCONNECTED","HEARTBEAT_TIMEOUT",this._getUsedMessageChannelIds(),"KEEP_ALIVE_TIMEOUT",LinkStateChangeReasonDescription.KEEP_ALIVE_TIMEOUT),this._onConnectionStateChanged("RECONNECTING","INTERRUPTED"),this._context.internalEmitter.removeAllListeners("userJoined"),this._context.internalEmitter.once("userJoined",async()=>{if(this.log("received reconnected userJoined event"),this._linkState==="CONNECTED")return;const F=isBusy;this._updateLinkState("CONNECTED",F?"LOGIN":"AUTO_RECONNECT",this._getUsedMessageChannelIds(),F?"RELOGIN":"RECONNECT_SUCCESS",F?LinkStateChangeReasonDescription.RELOGIN:LinkStateChangeReasonDescription.RECONNECT_SUCCESS,!this._suspended),this._onConnectionStateChanged("CONNECTED","LOGIN_SUCCESS"),this._clearLinkTimers()}),this._lockSnapshotLastTime.clear())}),this._context.internalEmitter.on("tokenExpired",async()=>{var x;this.warn("reg session listen the token expired"),(x=this._rtmSession)===null||x===void 0||x.stopLogin(),this._userDropHandler(2)}),this._context.internalEmitter.once("userDrop",this._userDropHandler),this._context.internalEmitter.on("login-request",()=>{["DISCONNECTED","SUSPENDED"].includes(this._linkState)&&this._updateLinkState("CONNECTING","AUTO_RECONNECT",[],"AUTO_RECONNECT",LinkStateChangeReasonDescription.AUTO_RECONNECT)}),this._context.internalEmitter.on("login-timeout",x=>{this.log("login - timeout"),this._suspended?this._updateLinkState("SUSPENDED","AUTO_RECONNECT",[],"RECONNECT_TIMEOUT",LinkStateChangeReasonDescription.RECONNECT_TIMEOUT):this._updateLinkState("DISCONNECTED","SERVER_TIMEOUT",[],x?"RECONNECT_TIMEOUT":"LOGIN_TIMEOUT",x?LinkStateChangeReasonDescription.RECONNECT_TIMEOUT:LinkStateChangeReasonDescription.LOGIN_TIMEOUT),isNil$1(this._suspendedTimer)&&(this._suspendedTimer=setTimeout(()=>{this._suspended=!0},115e3))}),this._context.internalEmitter.on("net-change-abort-reconn",()=>{this._updateLinkState("DISCONNECTED","NETWORK_CHANGE",[],"NETWORK_CHANGE",LinkStateChangeReasonDescription.NETWORK_CHANGE)}),this._lastLoginTime=Date.now(),this._rtmSession.loginHandler().toPromise().catch(x=>{if(x.name==="loginRespTimeout"&&f<2)return this.log("loginRespTimeout: internal re-login..."),this._clearEffectsOfLogin(),this._loginImpl({uid:d,instanceId:I,forceLoginTime:f+1});throw this._handleConnectionFailed(x)})}_handleConnectionFailed(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:OperationName.login;if(this.log("Login failed when connecting"),this._connectionState!=="CONNECTING")return e;if(isTimeout(e)){this._onConnectionStateChanged("DISCONNECTED","LOST");const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT);throw new RtmTimeoutError(o,[S],f)}if((e==null?void 0:e.code)===RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED)throw this._onConnectionStateChanged("DISCONNECTED","TOKEN_EXPIRED"),e;if((e==null?void 0:e.code)===RTMErrorCode.RTM_ERROR_LOGIN_CANCELED||(this._onConnectionStateChanged("DISCONNECTED","REJECTED_BY_SERVER"),isRtmError(e)))throw e;const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_ABORTED);throw new RtmUnavailableError(o,[I],d)}_getUsedMessageChannelIds(){return this._context.getAllChannelNames().filter(e=>!e.startsWith(K_STREAM_CHANNEL_PREFIX))}async _requestChannelMemberList(e){var o;const d=OperationName.whoNow,I=this._context.incGetSeq();return(o=this._rtmSession)===null||o===void 0||o.sendOperationPacket(d,"GroupAllUsersList",{group:e,pageNumber:0,pageSize:200,seq:I}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT),this._onOperationPacket("GroupAllUsersResult").pipe(first(f=>{let{group:S,seq:v}=f;return S===e&&I.eq(v)}))).toPromise()}_onConnectionStateChanged(e,o){var d;this._connectionState=e,(e==="FAILED"||e==="DISCONNECTED")&&(this._context.releaseOfLogin(),this._rtmSession&&((d=this._rtmSession)===null||d===void 0||d.release(),this._msgManager.release(),this._context.resetTicketVersionMap()));const I={state:e,reason:o,timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("status",I)}_updateLinkState(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0,S=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(this._linkState===e)return;["CONNECTED","IDLE","FAILED"].includes(e)&&this._clearReconnectTimeoutTimer(),e==="CONNECTED"&&(this._context.notifyLoginResultSubject$.next(!0),this._setIntervalCreateColl()),this._context.sendReport("LinkStateChange",{elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),reason:LinkStateChangeReason4Report[I],sid:getSid(this._context.instanceId||Long$1.fromNumber(0)),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),userid:this._context.uid,currentState:linkStateCodeMap[e],previousState:linkStateCodeMap[this._linkState],operation:linkOperationCodeMap[o],serviceType:0,streamChannelName:""}),this._linkState==="CONNECTED"&&e==="DISCONNECTED"&&this.log("link disconnected"),e==="FAILED"&&this._clearEffectsOnSessionEnd();const v={currentState:e,previousState:this._linkState,serviceType:"MESSAGE",operation:o,reason:f??o,reasonCode:I,affectedChannels:d,unrestoredChannels:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime),isResumed:S};this._linkState=e,this.emit("linkState",v)}_clearChannel(e){e.forEach(o=>{this._context.internalEmitter.emit("channelLeft",o),this._context.internalEmitter.emit("unsubChannelLock",o),this._context.internalEmitter.emit("unsubChannelMetadata",o)})}_hasLock(){return this.lock.lockImpl.hasLock()}_validateRtmConnection(e){var o;let d=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._context.enablePrivate&&((o=this._context.rtmConfig.privateConfig)===null||o===void 0||!o.serviceType.includes("MESSAGE"))){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(e,f,I)}if(this._linkState==="IDLE"){this.log("The client state is ".concat(this._connectionState,", cannot do the operation(").concat(e,")"));const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[f],I)}if(d&&this._linkState!=="CONNECTED"){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[f],I)}}_validateRTMSessionExist(e){if(this._rtmSession===void 0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmUnavailableError(e,[d],o)}}_reportChannelLeave(e,o){this._context.addReportEvents("ChnLeave",{cname:e,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:o,sid:getSid(this._context.instanceId||Long$1.fromNumber(0)),userId:this._context.uid})}_setIntervalCreateColl(){this._createCollInterval&&clearInterval(this._createCollInterval),this._createCollInterval=setInterval(()=>{this._channelPresence.intervalCreateColl()},MONITOR_INTERVAL)}_deleteIntervalCreateColl(){this._createCollInterval&&(clearInterval(this._createCollInterval),this._createCollInterval=null)}_handleLoginFailedState(e){let o=LinkStateChangeReasonDescription.LOGIN_REJECTED,d="LOGIN_REJECTED";switch(e){case RTMErrorCode.RTM_ERROR_INVALID_USER_ID:o=LinkStateChangeReasonDescription.INVALID_USER_ID,d="INVALID_USER_ID";break;case RTMErrorCode.RTM_ERROR_INVALID_TOKEN:o=LinkStateChangeReasonDescription.INVALID_TOKEN,d="INVALID_TOKEN";break;case RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID:o=LinkStateChangeReasonDescription.INCONSISTENT_APP_ID,d="INCONSISTENT_APP_ID";break;case RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED:o=LinkStateChangeReasonDescription.SERVICE_NOT_SUPPORTED,d="SERVICE_NOT_SUPPORTED";break;case RTMErrorCode.RTM_ERROR_OPERATION_RATE_EXCEED_LIMITATION:o=LinkStateChangeReasonDescription.OPERATION_RATE_EXCEED_LIMITATION,d="OPERATION_RATE_EXCEED_LIMITATION";break;case RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT:o=LinkStateChangeReasonDescription.LOGIN_TIMEOUT,d="LOGIN_TIMEOUT"}this._updateLinkState("FAILED","LOGIN",[],d,o)}_validateJoinOptions(e,o){const d=getParameter("STORAGE_CHANNEL_SUB_ENABLED"),I=(d!==void 0?String(d):this._context.consoleConfig["storage.channel_subscribe_enabled"])==="true";if(e!=null&&e.withMetadata&&!I){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}const f=getParameter("LOCK_ENABLED"),S=(f!==void 0?String(f):this._context.consoleConfig["lock.enabled"])==="true";if(e!=null&&e.withLock&&!S){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}}_updateLockCache(e){var o;const{lockName:d,prefixChannelName:I}=e,f=(o=this._lockEventInfos.get(I))!==null&&o!==void 0?o:new Map;f.set(d,e),this._lockEventInfos.set(I,f)}_onLockEvent(e){var o;const{target:d,lockStates:I,eventType:f}=e;if(!this._context.getChannelOptionsByKey(d,"withLock"))return;const{channelName:S,channelType:v}=getChannelDetailByName(d);if(f===LockEventType.LockUnknown)return void this.log("RTM service Error: lockEvent type is 0 on channel '%s', channelType 's%', member '%s'",replaceRangeWithAsterisk(S),v,replaceRangeWithAsterisk(this._context.uid||""));const L=getUTCTimeBaseREG(this._context.offsetTime),x=new Date().getTime();if(f===LockEventType.LockSnapshot&&I.length===0){var F;if(this._lockSnapshotLastTime.has(d)&&x-((F=this._lockSnapshotLastTime.get(d))!==null&&F!==void 0?F:0)<=LAST_PONG_RECEIVED_TS_FIELD_NUMBER)return;const ht={channelType:v,channelName:S,eventType:"SNAPSHOT",lockName:"",ttl:0,publisher:"",snapshot:[],owner:"",timestamp:L};return this.log("received snapshot lockEvent is empty on channel(".concat(d,"), emit channelLockEvent")),this._lockSnapshotLastTime.set(d,x),void this._onChannelLockEvent(ht)}let Y="SNAPSHOT",j=0,W=!1,re="",ee=null;try{var he,ue;!((he=I[0])===null||he===void 0)&&he.lockState&&(ee=JSON.parse((ue=I[0])===null||ue===void 0?void 0:ue.lockState))}catch(ht){this.logError("parse lockState error: %o",ht)}switch(f){case LockEventType.LockAdded:var Ee;Y="SET",j=(Ee=ee)===null||Ee===void 0?void 0:Ee.create_ttl;break;case LockEventType.LockModified:var _e,De,Fe,Ve;(_e=ee)!==null&&_e!==void 0&&_e.user?(Y="ACQUIRED",j=(De=ee)===null||De===void 0?void 0:De.create_ttl,re=(Fe=ee)===null||Fe===void 0?void 0:Fe.user):(Y="RELEASED",j=(Ve=ee)===null||Ve===void 0?void 0:Ve.create_ttl);break;case LockEventType.LockRemoved:Y="REMOVED",j=0;break;case LockEventType.LockSnapshot:Y="SNAPSHOT",W=!0}const Ge={channelType:v,channelName:S,eventType:Y,lockName:W?"":(o=I[0].lockName)!==null&&o!==void 0?o:"",ttl:j,publisher:"",snapshot:[],owner:re,timestamp:L};if(this.log("received lockEvent: %o",Ge,ee),W){var He;(!this._lockSnapshotLastTime.has(d)||x-((He=this._lockSnapshotLastTime.get(d))!==null&&He!==void 0?He:0)>LAST_PONG_RECEIVED_TS_FIELD_NUMBER)&&(this.log("received snapshot lockEvent, emit channelLockEvent"),this._lockSnapshotLastTime.set(d,x),Ge.snapshot=I.map(ht=>{var vt,ar,jt,vr,ai,pi,yi,fi,Jn,xr,pr;let ei=null;try{ht.lockState&&(ei=JSON.parse(ht.lockState))}catch(Gr){this.logError("parse lockState error: %o",Gr)}const _i={prefixChannelName:d,lockName:(vt=ht.lockName)!==null&&vt!==void 0?vt:"",owner:(ar=(jt=ei)===null||jt===void 0?void 0:jt.user)!==null&&ar!==void 0?ar:"",ttl:(vr=(ai=ei)===null||ai===void 0?void 0:ai.create_ttl)!==null&&vr!==void 0?vr:getParameter("LOCK_TTL"),revision:(pi=(yi=ei)===null||yi===void 0?void 0:yi._rev)!==null&&pi!==void 0?pi:0};return this._updateLockCache(_i),{lockName:ht.lockName,owner:(fi=(Jn=ei)===null||Jn===void 0?void 0:Jn.user)!==null&&fi!==void 0?fi:"",ttl:(xr=(pr=ei)===null||pr===void 0?void 0:pr.create_ttl)!==null&&xr!==void 0?xr:getParameter("LOCK_TTL")}}),this._onChannelLockEvent(Ge))}else{var At,Bt,Tt,rt;this.log("received incremental lockEvent, emit channelLockEvent");const ht=ee._rev||0,vt=((At=this._lockEventInfos.get(d))===null||At===void 0||(At=At.get((Bt=I[0].lockName)!==null&&Bt!==void 0?Bt:""))===null||At===void 0?void 0:At.revision)||0;let ar=!1;if((Y!=="RELEASED"&&ht>vt||Y==="RELEASED"&&ht>=vt&&(Tt=this._lockEventInfos.get(d))!==null&&Tt!==void 0&&(Tt=Tt.get((rt=I[0].lockName)!==null&&rt!==void 0?rt:""))!==null&&Tt!==void 0&&Tt.owner)&&(ar=!0),ar){var ye,lt,Yt,ct;this._onChannelLockEvent(Ge);const jt={prefixChannelName:d,lockName:(ye=I[0].lockName)!==null&&ye!==void 0?ye:"",owner:(lt=ee.user)!==null&<!==void 0?lt:null,ttl:(Yt=ee.create_ttl)!==null&&Yt!==void 0?Yt:null,revision:(ct=ee._rev)!==null&&ct!==void 0?ct:null};this._updateLockCache(jt)}}}_sendMessageAck(e){this._sendRtmBasePacket("onMessage","Ack",{code:0,dialogue:e.dialogue,instance:e.instance,sequence:e.sequence})}async _sendMessageToRetry(e,o,d){let I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;this.debug("Attempt to send the message ".concat(o?" with retrying, %o":"without retrying"),{retryTimes:I});const f=e(I);this._sendRtmBasePacket("publish","Message",f);const{dialogue:S,sequence:v,instance:L}=f,x=this._onOperationPacket("Ack").pipe(filter(F=>S.eq(F.dialogue)&&v.eq(F.sequence)&&L.eq(F.instance)&&F.code!==AckCodeType.kAckMiss),tap(F=>{let{code:Y}=F;if(Y===AckCodeType.kAckNoPrivilege){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_PERMISSION_DENIED);throw new RtmUnavailableError(OperationName.publish,[W],j)}}));try{const{code:F}=await x.pipe(timeout(MESSAGE_RETRY_TIMEOUT+(d?500:0)),catchError(Y=>(isTimeout(Y)&&this.warn("Message send timeout, retry times %d",I),throwError(Y))),take(1)).toPromise();return this.debug("The message has been acked, %o",{code:F}),{code:F,retryTimes:I}}catch(F){if(F instanceof TimeoutError&&o)return this._sendMessageToRetry(e,!1,d,I+1);throw F}}_requestUpdateEdgeTicket2(e,o){const d=this._context.incGetSeq();return this._sendRtmBasePacket(OperationName.renewToken,"UserRenewToken2Req",{instance:this._context.instanceId,seq:d,account:this._context.uid,ticket:e},o),race(genTimeoutError(RTMErrorCode.RTM_ERROR_RENEW_TOKEN_TIMEOUT),this._onOperationPacket("UserRenewToken2Resp").pipe(tap(I=>{I.code===0&&this._context.updateTicketVersion(I.eventReportInfo.env,this._context.ticketVersionMap.get(I.eventReportInfo.env).version+1)}),first(I=>{let{seq:f}=I;return d.eq(f)}),tap(I=>{let{code:f}=I;if(f!==0){const{code:S,reason:v}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmUnavailableError(OperationName.login,[v],{serverCode:f,code:S})}})))}_onGroupDrop(e){let{account:o}=e;this._context.addReportEvents("ChnLeave",{cname:o,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:RTMErrorCode.RTM_ERROR_CHANNEL_IN_ERROR_STATE,sid:getSid(this._context.instanceId),userId:this._context.uid}),this._rtmSubscriptions.channels.delete(o),this.logError("the user is kicked out of the channel: ".concat(o))}_addEventsFromContext(){this._context.internalEmitter.on("StateLockSubscribeEvent",e=>{this._onLockEvent(e)}),this._context.internalEmitter.on("UserTicketNearlyExpire",e=>{this._tokenPrivilegeWillExpireHandler(e)}),this._context.internalEmitter.on("lock",e=>{const o=getChannelNameByType(e.channelName,e.channelType);(e.eventType==="EXPIRED"||this._context.getChannelOptionsByKey(o,"withLock"))&&this.emit("lock",e)}),this._context.internalEmitter.on("GroupDrop",e=>{this._onGroupDrop(e)}),this._context.internalEmitter.on("stream-channel-joined",e=>{this._streamChannelList.push(e)}),this._context.internalEmitter.on("stream-channel-leaved",e=>{this._streamChannelList=this._streamChannelList.filter(o=>o!==e)}),this._context.internalEmitter.on("link-success",async e=>{var o;const d=e===0?1:0,I=(o=this._rtmSession)===null||o===void 0?void 0:o.getOtherEnvTicket(d);try{if(this._context.ticketVersionOutdated(e)&&I){this.log("this env ticket is outdated, need update.");var f;(await this._requestUpdateEdgeTicket2(I,e).toPromise()).code===0&&((f=this._rtmSession)===null||f===void 0||f.updateRegTicket(I),this._context.updateTicketVersion(e,this._context.ticketVersionMap.get(d).version))}}catch{}this.lock.lockImpl.notifyLockReAcquire(e),this.storage.storageImpl.notifyUserMetaReSub(e),this._notifyLockReSub.next({env:e,allReSub:!0}),this._notifyChannelMetaReSub.next({env:e,allReSub:!0}),this._notifyChannelReSub.next({env:e,allReSub:!0})})}_updateSyncTicketByRenewToken(e){if(!this._context.disablePresence){var o,d;const I=atob(e);(o=this._rtmSession)===null||o===void 0||o.renewSyncTicket(I),(d=this._rtmSession)===null||d===void 0||d.updateSyncTicket({ticket:I})}}_clearReconnectTimeoutTimer(){this._reconnectTimeoutTimer&&(clearTimeout(this._reconnectTimeoutTimer),this._reconnectTimeoutTimer=null)}async _clearEffectsOfLogin(){var e;this._clearLinkTimers(),(e=this._rtmSession)===null||e===void 0||e.updateLoggedOut(!0),this._clearReconnectTimeoutTimer(),this._context.releaseOfLogin()}async _clearEffectsOnSessionEnd(){var e;(e=this._customConfig)===null||e===void 0||e.stop(),this._deleteIntervalCreateColl(),this._clearEffectsOfLogin(),this._channelPresence.releaseChnPresence4Failed(),this._context.releaseOnSessionEnd()}_clearBusinessEffects(){this.lock.lockImpl.release(),this._lockSnapshotLastTime.clear(),this._lockEventInfos.clear(),this.storage.storageImpl.release(),this._msgManager.release(),this._context.instanceId=null,this._clearChannel(this._context.getAllChannelNames()),this._channelPresence.releaseChnPresence(),this._context.releaseOnLogout()}async _clearEffectsByLogout(){this._clearEffectsOnSessionEnd(),this._clearBusinessEffects()}async _genLogoutImpl(e){const o={logout:{clearReg:!0,syncConnected:!0,errorMsg:"logout error"},failed:{clearReg:!1,syncConnected:!1,errorMsg:"logout error when FAILED"},connecting:{clearReg:!0,syncConnected:!1,errorMsg:"logout error when RECONNECTING"}}[e];try{await this._internalLogoutHandler(o.clearReg,o.syncConnected),this.log("logout success")}catch(d){throw this.logError("".concat(o.errorMsg,": ").concat(d)),d}finally{this._onConnectionStateChanged("DISCONNECTED","LOGOUT")}}async _genLoginImpl(e){var o,d,I;switch(e){case"first":(o=this._customConfig)===null||o===void 0||o.init(this._context.sid),await this._loginImpl({uid:this._context.uid,instanceId:this._context.instanceId});break;case"logging":(d=this._rtmSession)===null||d===void 0||d.cancelLogin(),this._clearEffectsOfLogin(),await this._loginImpl({uid:this._context.uid,instanceId:this._context.instanceId});break;case"reconnecting":(I=this._rtmSession)===null||I===void 0||I.notifyLoginInDisconnected(),await this._context.notifyLoginResultSubject$.pipe(take(1)).toPromise()}}_handleReconnectTimeout(){var e;this.warn("reconnect timeout, need stop retry"),(e=this._rtmSession)===null||e===void 0||e.cancelLogin(),this._clearEffectsOfLogin(),this._updateLinkState("FAILED","AUTO_RECONNECT",this._getUsedMessageChannelIds(),"RECONNECT_TIMEOUT",LinkStateChangeReasonDescription.RECONNECT_TIMEOUT)}}class OperationControl{constructor(){_defineProperty$1(this,"promiseMap",new Map)}setPromise(e,o){this.promiseMap.set(e,o)}getPromise(e){return this.promiseMap.get(e)}deletePromise(e){this.promiseMap.delete(e)}async awaitPromise(e){let o,d;const I=new Promise((S,v)=>{o=S,d=v}),f=this.getPromise(e);try{f&&await f}catch{}return I.finally(()=>{this.deletePromise(e)}),this.setPromise(e,I),{currentResolve:o,currentReject:d}}operationIsRunning(e){return this.promiseMap.has(e)}}const DEFAULT_TICKET_VERSION_MAP=[[0,{version:0}],[1,{version:0}]],defaultConsoleConfig={"-":0,app_key:"",region:"CN",enabled:String(getParameter("RTM2_ENABLED")),"presence.occupancy":String(K_DEFAULT_INTERVAL_THRESHOLD),"presence.interval":String(K_PRESENCE_INTERVAL_DEFAULT),"presence.debounce":String(K_DEBOUNCE_DEFAULT),"storage.enabled":String(!0),"storage.channel_subscribe_enabled":String(!0),"storage.user_subscribe_enabled":String(!0),"lock.enabled":String(!0),"history.enabled":String(!0)};class Context extends EventBase{get ticketVersionMap(){return this._ticketVersionMap}get disablePresence(){var e;return(e=getParameter("DISABLE_PRESENCE"))!==null&&e!==void 0?e:this._disablePresence}get consoleConfig(){return this._consoleConfig}set consoleConfig(e){this._consoleConfig=e}get seq(){return this._seq}get userId(){return this._uid}set pongTime(e){this._pongTime=e}get pongTime(){return this._pongTime}set offsetTime(e){this._offsetTime=e}get offsetTime(){return this._offsetTime}set heartbeatInterval(e){this._heartbeatInterval=typeof e=="number"&&e?eMAX_HEARTBEAT_INTERVAL?MAX_HEARTBEAT_INTERVAL:e:CONFIGURABLE_KEY_RTM_HEARTBEAT_INTERVAL}get heartbeatInterval(){var e,o;return(e=(o=getParameter("HEART_BEAT"))!==null&&o!==void 0?o:this._heartbeatInterval)!==null&&e!==void 0?e:CONFIGURABLE_KEY_RTM_HEARTBEAT_INTERVAL}set socketUseProxy(e){e!==this._socketUseProxy&&(this.log("socketUseProxy is set to %s",e),this._socketUseProxy=e)}get socketUseProxy(){return this._socketUseProxy&&getParameter("ENABLE_EDGE_AUTO_FALLBACK")}set token(e){this._token=typeof e=="string"&&e?e:void 0}get token(){return this._token}set uid(e){if(this.log("The user ID is set to %s",replaceRangeWithAsterisk(e)),!isValidId(e))throw new RtmInternalError;this._uid=e}get uid(){if(typeof this._uid=="string"&&this._uid)return this._uid;throw new RtmInternalError("Cannot get illegal uid")}set vid(e){if(typeof e!="string")throw new RtmInternalError;this._vid=e}get vid(){return typeof this._vid=="string"?this._vid:(this.warn("Cannot get illegal vid"),"")}get key(){if(typeof this._token=="string"&&this._token)return this._token;if(typeof this.appId=="string"&&this.appId)return this.appId;throw new RtmInternalError("Cannot get illegal key")}get sid(){if(typeof this._sid=="string"&&this._sid)return this._sid;throw new RtmInternalError("Cannot get illegal sid")}set sid(e){if(this.log("sid is set to %s",e),typeof e!="string"||!e)throw new RtmInternalError;this._sid=e}get startTime(){return this._startTime}set startTime(e){if(this.log("startTime is set to %s",e),typeof e!="number"||!e)throw new RtmInternalError;this._startTime=e}get rtmArea(){if(typeof this._area=="string"&&this._area)return this._area;throw new RtmInternalError("Cannot get illegal area")}set rtmArea(e){this.log("area is set to %s",e),typeof e=="string"&&e?this._area=e:this.warn("set area failed")}get operationControl(){return this._operationControl}get connectionTimeoutSeconds(){const e=getParameter("MIN_RECONNECT_TIMEOUT_IN_SECONDS");return typeof e=="number"?e<15?15:e>3600?3600:e:0}constructor(e,o,d,I,f){var S,v;super(d,"Context"),_defineProperty$1(this,"appId",void 0),_defineProperty$1(this,"localStateCache",new Map),_defineProperty$1(this,"enablePrivate",!1),_defineProperty$1(this,"encryptionInfo",{key:"",iv:"",keyLength:0,initEncryption:!1}),_defineProperty$1(this,"rtmConfig",void 0),_defineProperty$1(this,"reportIntervalId",null),_defineProperty$1(this,"instanceId",null),_defineProperty$1(this,"internalEmitter",void 0),_defineProperty$1(this,"notifyLoginResultSubject$",new Subject),_defineProperty$1(this,"_token",void 0),_defineProperty$1(this,"_uid",void 0),_defineProperty$1(this,"_sid",""),_defineProperty$1(this,"_vid",void 0),_defineProperty$1(this,"_startTime",void 0),_defineProperty$1(this,"_area","CN"),_defineProperty$1(this,"_socketUseProxy",!1),_defineProperty$1(this,"_seq",Long$1.fromNumber(1,!0)),_defineProperty$1(this,"_seqSentStatuses",[!1,!1]),_defineProperty$1(this,"_pongTime",new Date().getTime()),_defineProperty$1(this,"_offsetTime",0),_defineProperty$1(this,"_heartbeatInterval",CONFIGURABLE_KEY_RTM_HEARTBEAT_INTERVAL),_defineProperty$1(this,"_operationControl",void 0),_defineProperty$1(this,"_couldReportEvent",!1),_defineProperty$1(this,"_consoleConfig",defaultConsoleConfig),_defineProperty$1(this,"_lastRealSubscribeOrJoinOptions",new Map),_defineProperty$1(this,"_lastCustomSubscribeOrJoinOptions",new Map),_defineProperty$1(this,"_disablePresence",!1),_defineProperty$1(this,"_ticketVersionMap",new Map(cloneDeep$1(DEFAULT_TICKET_VERSION_MAP))),this.appId=e,this.uid=o,this.rtmConfig=I,f&&(this.encryptionInfo=f),this.heartbeatInterval=I.heartbeatInterval?1e3*I.heartbeatInterval:void 0;const L=new OperationControl;if(this._operationControl=L,this.rtmConfig.privateConfig){this.enablePrivate=!0;const F=this.rtmConfig.privateConfig.domainMode;F&&[1,2].includes(F)||(this.rtmConfig.privateConfig.domainMode=1)}(!this.rtmConfig.privateConfig||((S=(v=this.rtmConfig.privateConfig.eventUploadHosts)===null||v===void 0?void 0:v.length)!==null&&S!==void 0?S:0)>0)&&(this._couldReportEvent=!0);const x=new eventsExports.EventEmitter;x.emit=(F,Y)=>super.emit(F,Y),x.on=(F,Y)=>super.on(F,Y),x.once=(F,Y)=>super.once(F,Y),x.removeListener=(F,Y)=>super.removeListener(F,Y),x.removeAllListeners=F=>super.removeAllListeners(F),x.setMaxListeners(512),this.internalEmitter=x}updateTicketVersion(e,o){this._ticketVersionMap.get(e).version=o}resetTicketVersionMap(){this._ticketVersionMap=new Map(cloneDeep$1(DEFAULT_TICKET_VERSION_MAP))}ticketVersionOutdated(e){return this._ticketVersionMap.get(e).version2&&arguments[2]!==void 0?arguments[2]:"custom-cache")==="real"?this.getChannelLastRealSubOrJoinOptions(e):this.getChannelLastCustomSubOrJoinOptions(e),o){case"withPresence":return(d=(I=W)===null||I===void 0?void 0:I.withPresence)!==null&&d!==void 0&&d;case"withLock":return(f=(S=W)===null||S===void 0?void 0:S.withLock)!==null&&f!==void 0&&f;case"withMetadata":return(v=(L=W)===null||L===void 0?void 0:L.withMetadata)!==null&&v!==void 0&&v;case"withMessage":return(x=(F=W)===null||F===void 0?void 0:F.withMessage)!==null&&x!==void 0&&x;case"beQuiet":return(Y=(j=W)===null||j===void 0?void 0:j.beQuiet)!==null&&Y!==void 0&&Y;default:return!1}}getAllChannelNames(){return[...this._lastCustomSubscribeOrJoinOptions.keys()]}releaseOfLogin(){["login-request","login-timeout","userJoined","connectionLost","userDrop","tokenExpired","net-change-abort-reconn"].forEach(e=>{this.internalEmitter.removeAllListeners(e)})}releaseOnSessionEnd(){this.releaseOfLogin(),this.reportIntervalId&&clearEventReportTimer(this.reportIntervalId),this.reportIntervalId=null,this._socketUseProxy=!1,this.resetTicketVersionMap()}releaseOnLogout(){this.releaseOnSessionEnd(),this.localStateCache.clear(),this.clearLastSubOrJoinOptions()}}var _class;let RTM=(_class=class extends EventBase{constructor(n,e,o){var d,I,f,S;const v=OperationName.initRTM;let L=getParameter("PRESENCE_TIMEOUT"),x=!0,F="",Y="",j=0,W=!1,re="none";if(!isValidAppId(n)){const{code:Tt,reason:rt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_APP_ID);throw new RtmUnavailableError(v,[rt],Tt)}if(validateKey(e,v,"uid"),(o==null?void 0:o.useStringUserId)===!1){if(!isUintString(e)){const{code:Tt,reason:rt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_USER_ID);throw new RtmInvalidArgumentError(v,[rt],Tt)}x=!1}else x=!0;let ee=(d=o==null?void 0:o.logUpload)!==null&&d!==void 0&&d;const he=(I=o==null?void 0:o.cloudProxy)!==null&&I!==void 0&&I,ue=validatePrivateConfig(o);var Ee,_e;if(ue&&(he&&throwInvalidPrivateConfig(v," Use private config, not permit cloudProxy "),areaConfig&&throwInvalidPrivateConfig(v," Use private config, not permit setArea"),ee&&((Ee=o==null||(_e=o.privateConfig)===null||_e===void 0||(_e=_e.logUploadHosts)===null||_e===void 0?void 0:_e.length)!==null&&Ee!==void 0?Ee:0)<=0&&(ee=!1)),(o==null?void 0:o.encryptionMode)==="AES_128_GCM"||(o==null?void 0:o.encryptionMode)==="AES_256_GCM"){var De,Fe;const Tt="detail: ";let rt=Tt;if((o==null?void 0:o.cipherKey)===void 0)rt+="not provide cipherKey but set encryptionMode.";else if(o.salt&&(o==null||(De=o.salt)===null||De===void 0?void 0:De.byteLength)>0&&(o==null||(Fe=o.salt)===null||Fe===void 0?void 0:Fe.byteLength)>SALT_LENGTH)rt+="salt should be ".concat(SALT_LENGTH," bytes");else if(rt===Tt){var Ve;j=o.encryptionMode==="AES_128_GCM"?16:32;const ye=new Uint8Array(SALT_LENGTH);ye.set((Ve=o.salt)!==null&&Ve!==void 0?Ve:new Uint8Array([]));const lt=o==null?void 0:o.cipherKey;try{const Yt=util$6.createBuffer(ye),ct=pkcs5$1(lt,Yt.getBytes(Yt.length()),KEY_ITERATIONS_COUNT,IV_LENGTH+j,"sha256");F=ct,Y=ct.slice(-IV_LENGTH),ct?W=!0:console.warn("generate crypto key failure using pbkdf2.")}catch(Yt){const{code:ct,reason:ht}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_ENCRYPTION_PARAMETER);throw new RtmUnavailableError(v,[ht+Yt],ct)}}if(rt.length>Tt.length){const{code:ye,reason:lt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_ENCRYPTION_PARAMETER);throw new RtmUnavailableError(v,[lt+rt],ye)}}if(re=(f=o==null?void 0:o.logLevel)!==null&&f!==void 0?f:"error",typeof(o==null?void 0:o.presenceTimeout)=="number"){let Tt=o.presenceTimeout;o.presenceTimeout>K_PRESENCE_TIMEOUT_MAX?Tt=K_PRESENCE_TIMEOUT_MAX:o.presenceTimeout1e12?n:n*1e3}function mapAgentVisualizerState(n,e,o){if(o==="DISCONNECTED"||o==="DISCONNECTING")return"disconnected";if(o==="CONNECTING"||o==="RECONNECTING")return"joining";if(!e)return"not-joined";switch(n){case"listening":return"listening";case"thinking":return"analyzing";case"speaking":return"talking";case"idle":case"silent":default:return"ambient"}}function toMessageListItem(n){return{turn_id:n.turn_id,uid:Number(n.uid)||0,text:typeof n.text=="string"?n.text:"",status:n.status,createdAt:typeof n._time=="number"?normalizeTimestampMs(n._time):void 0}}function normalizeTranscript(n,e){return n.map(o=>{const d=o.uid==="0"?e:o.uid,I=typeof o.text=="string"?normalizeTranscriptSpacing(o.text):o.text;return{...o,uid:d,text:I}})}function getMessageList(n){return n.filter(e=>e.status!==TurnStatus.IN_PROGRESS).map(toMessageListItem)}function getCurrentInProgressMessage(n){const e=n.find(o=>o.status===TurnStatus.IN_PROGRESS);return e?toMessageListItem(e):null}const API_BASE_URL="/api";async function getConfig(n){const e=new URLSearchParams;(n==null?void 0:n.uid)!==void 0&&n.uid!==""&&e.set("uid",String(n.uid));const o=e.toString(),d=await fetch(`${API_BASE_URL}/get_config${o?`?${o}`:""}`);if(!d.ok)throw new Error(`HTTP ${d.status}`);const I=await d.json();if(I.code!==0||!I.data)throw new Error(I.msg||"Failed to get configuration");return I.data}function TranscriptPanel({transcript:n,localUid:e,agentUid:o}){const d=reactExports.useMemo(()=>normalizeTranscript(n,e),[n,e]),I=reactExports.useMemo(()=>getMessageList(d),[d]),f=reactExports.useMemo(()=>getCurrentInProgressMessage(d),[d]),S=f?[...I,f]:I;return jsxRuntimeExports.jsxs("div",{className:"transcript",children:[S.length===0&&jsxRuntimeExports.jsx("div",{style:{color:"#555",alignSelf:"center",marginTop:"40px"},children:"No transcript yet…"}),S.map((v,L)=>{const x=String(v.uid)===e;return jsxRuntimeExports.jsx("div",{className:`msg ${x?"msg-user":"msg-agent"}`,children:v.text},`${v.turn_id}-${L}`)})]})}function MetricsStrip({metrics:n}){return n.length===0?null:jsxRuntimeExports.jsx("div",{className:"metrics",children:n.slice(-4).map((e,o)=>jsxRuntimeExports.jsxs("div",{className:"metric",children:[jsxRuntimeExports.jsxs("span",{className:"metric-label",children:[e.name,":"]}),jsxRuntimeExports.jsxs("span",{className:"metric-value",children:[e.value,"ms"]})]},o))})}function StatusBar({connectionState:n,agentState:e,isAgentConnected:o}){const d=n==="CONNECTED",f=`status-dot ${d?"connected":n==="CONNECTING"||n==="RECONNECTING"?"connecting":""}`;return jsxRuntimeExports.jsxs("div",{className:"status",children:[jsxRuntimeExports.jsx("span",{className:f}),jsxRuntimeExports.jsxs("span",{children:["RTC: ",n]}),o&&e&&jsxRuntimeExports.jsxs("span",{children:["· Agent: ",e]}),!o&&d&&jsxRuntimeExports.jsx("span",{style:{color:"#ff9800"},children:"· Waiting for agent to join…"})]})}function ConversationInner({config:n,rtmClient:e,onTokenWillExpire:o}){const d=Sn(),I=X8(),[f,S]=reactExports.useState(!1);reactExports.useEffect(()=>{const He=setTimeout(()=>S(!0),0);return()=>{clearTimeout(He),S(!1)}},[]);const{isConnected:v}=N8({appid:n.app_id,channel:n.channel_name,token:n.token,uid:Number(n.uid)},f),{localMicrophoneTrack:L}=F8(f);M8([L]);const[x,F]=reactExports.useState("CONNECTING"),[Y,j]=reactExports.useState(null),[W,re]=reactExports.useState(!1),[ee,he]=reactExports.useState([]),[ue,Ee]=reactExports.useState([]),[_e,De]=reactExports.useState(!0);reactExports.useEffect(()=>{const He=I.some(At=>String(At.uid)===n.agent_uid);re(He)},[I,n.agent_uid]),d8(d,"user-joined",He=>{String(He.uid)===n.agent_uid&&re(!0)}),d8(d,"user-left",He=>{String(He.uid)===n.agent_uid&&re(!1)}),d8(d,"connection-state-change",He=>{F(He)});const Fe=reactExports.useCallback(async()=>{const He=d.uid;if(He)try{const{rtcToken:At,rtmToken:Bt}=await o(String(He));await d.renewToken(At),await e.renewToken(Bt)}catch(At){console.error("Token renewal failed:",At)}},[d,e,o]);d8(d,"token-privilege-will-expire",Fe),reactExports.useEffect(()=>{if(!f||!v)return;let He=!1;return(async()=>{try{const At=await AgoraVoiceAI.init({rtcEngine:d,rtmConfig:{rtmEngine:e},renderMode:TranscriptHelperMode.TEXT});if(He){try{At.unsubscribe(),At.destroy()}catch{}return}At.on(AgoraVoiceAIEvents.TRANSCRIPT_UPDATED,Bt=>{he([...Bt])}),At.on(AgoraVoiceAIEvents.AGENT_STATE_CHANGED,(Bt,Tt)=>{j(Tt.state)}),At.on(AgoraVoiceAIEvents.AGENT_METRICS,(Bt,Tt)=>{Ee(rt=>[...rt,Tt].slice(-8))}),At.subscribeMessage(n.channel_name)}catch(At){He||console.error("[AgoraVoiceAI] init failed:",At)}})(),()=>{He=!0;try{const At=AgoraVoiceAI.getInstance();At&&(At.unsubscribe(),At.destroy())}catch{}}},[f,v,d,e,n.channel_name]);const Ve=reactExports.useCallback(async()=>{const He=!_e;if(L)try{await L.setEnabled(He)}catch(At){console.error("Mic toggle failed:",At)}De(He)},[_e,L]),Ge=reactExports.useMemo(()=>mapAgentVisualizerState(Y,W,x),[Y,W,x]);return jsxRuntimeExports.jsxs("div",{className:"app",children:[jsxRuntimeExports.jsx(StatusBar,{connectionState:x,agentState:Y,isAgentConnected:W}),jsxRuntimeExports.jsxs("div",{className:"app-body",children:[jsxRuntimeExports.jsxs("div",{className:"left",children:[jsxRuntimeExports.jsx(AgentVisualizer,{state:Ge,size:"lg"}),I.map(He=>jsxRuntimeExports.jsx("div",{style:{display:"none"},children:jsxRuntimeExports.jsx(fY,{user:He,playAudio:!0})},He.uid)),jsxRuntimeExports.jsx("div",{style:{display:"flex",justifyContent:"center",marginTop:12},children:jsxRuntimeExports.jsx(MicButtonWithVisualizer,{isEnabled:_e,setIsEnabled:De,track:L,onToggle:Ve})}),!W&&v&&jsxRuntimeExports.jsx("div",{style:{color:"#ff9800",fontSize:12,textAlign:"center"},children:"Waiting for agent to join…"})]}),jsxRuntimeExports.jsxs("div",{className:"right",children:[jsxRuntimeExports.jsx(TranscriptPanel,{transcript:ee,localUid:n.uid,agentUid:n.agent_uid}),jsxRuntimeExports.jsx(MetricsStrip,{metrics:ue})]})]})]})}function App(){const[n,e]=reactExports.useState(null),[o,d]=reactExports.useState(null),[I,f]=reactExports.useState(null),[S,v]=reactExports.useState(!0),L=reactExports.useRef(null);L.current||(L.current=TY.createClient({mode:"rtc",codec:"vp8"})),reactExports.useEffect(()=>{let F=!1;return(async()=>{try{const Y=await getConfig(),j=new AgoraRTM.RTM(Y.app_id,Y.uid);await j.login({token:Y.token}),await j.subscribe(Y.channel_name),F||(e(Y),d(j))}catch(Y){F||(console.error("Startup failed:",Y),f(Y instanceof Error?Y.message:"Failed to initialize"))}finally{F||v(!1)}})(),()=>{F=!0}},[]);const x=reactExports.useCallback(async F=>{const Y=await getConfig({uid:F});return{rtcToken:Y.token,rtmToken:Y.token}},[]);return S?jsxRuntimeExports.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",color:"#888"},children:"Connecting…"}):I||!n||!o?jsxRuntimeExports.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",color:"#f44"},children:I||"Configuration error"}):jsxRuntimeExports.jsx(p8,{client:L.current,children:jsxRuntimeExports.jsx(ConversationInner,{config:n,rtmClient:o,onTokenWillExpire:x})})}clientExports.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(App,{}));export{commonjsGlobal as c,getDefaultExportFromCjs as g}; diff --git a/internal/cli/playground/webassets/assets/index-9L6p1D6X.js.gz b/internal/cli/playground/webassets/assets/index-9L6p1D6X.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..f7293b9c555a771cc120943d73772d6cb1a5ebd3 GIT binary patch literal 1508296 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
hG|(ai~!)M^K&ED5M$xXuaL?PTgrzX4XDJ8q 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
{gF!b%)+q_x2;?cQ>aJsl(_s~Zc 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 -!AZHWmb5Hdts9jyJK|)l^4$M>^>w; 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 cz=2Wz`!Y#n3j~%GHaf74(?xo)+ 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

^HYvAtA6F~OL|EC4}rfi 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

h7DC%Bmr03i``J}00IXo(<; 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�RwCey6bTJFmbnTaok=7KQ0Ae^=B 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 z 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∓q=2>m=&>>{`tz>9l$k5X};zZ;?@gQ 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

Q86L@MM_2Yx9I!F&hfCX_~Gcj7w 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

Playground assets not built. Run make playground-build.

+ + + + + + Agora Convoai Playground + + + + +
+ + From 3f67b7bf533d55afc4bc6a649c6bd3586261da10 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 17:35:27 -0700 Subject: [PATCH 15/18] perf(convoai): serve gzip assets, embed compressed-only; drop dead type file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Vite: deleteOriginFile: true so large JS/CSS become .gz-only in webassets (1.5 MB embedded vs 7.3 MB before) - Go: replace http.FileServer with gzip-aware newStaticHandler that serves raw files directly or .gz siblings with Content-Encoding: gzip; nil assets still returns 404 - Remove duplicate "Waiting for agent to join…" inline div (kept in StatusBar) - Delete unused frontend/src/types/conversation.ts Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/App.tsx | 6 - frontend/src/types/conversation.ts | 22 - frontend/vite.config.ts | 2 +- internal/cli/convoai_server.go | 49 +- internal/cli/convoai_test.go | 54 ++ internal/cli/playground/webassets/SOURCE_HASH | 2 +- .../AgoraRTC_N-report.esm-0W4ooP4B.js.gz | Bin 0 -> 60720 bytes .../assets/AgoraRTC_N-report.esm-Dhe53Dql.js | 13 - .../AgoraRTC_N-report.esm-Dhe53Dql.js.gz | Bin 60721 -> 0 bytes .../webassets/assets/index-9L6p1D6X.js | 583 ------------------ .../webassets/assets/index-9L6p1D6X.js.gz | Bin 1508296 -> 0 bytes .../webassets/assets/index-RhlydBiN.js.gz | Bin 0 -> 1508264 bytes .../webassets/assets/index-f-mbsEwT.css | 1 - .../webassets/assets/jszip.min-CQVN0a9q.js | 12 - ...QVN0a9q.js.gz => jszip.min-Cbpz4e27.js.gz} | Bin 30062 -> 30061 bytes internal/cli/playground/webassets/index.html | 2 +- 16 files changed, 92 insertions(+), 654 deletions(-) delete mode 100644 frontend/src/types/conversation.ts create mode 100644 internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-0W4ooP4B.js.gz delete mode 100644 internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js delete mode 100644 internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js.gz delete mode 100644 internal/cli/playground/webassets/assets/index-9L6p1D6X.js delete mode 100644 internal/cli/playground/webassets/assets/index-9L6p1D6X.js.gz create mode 100644 internal/cli/playground/webassets/assets/index-RhlydBiN.js.gz delete mode 100644 internal/cli/playground/webassets/assets/index-f-mbsEwT.css delete mode 100644 internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js rename internal/cli/playground/webassets/assets/{jszip.min-CQVN0a9q.js.gz => jszip.min-Cbpz4e27.js.gz} (99%) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 8c396cc..5502d79 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -288,12 +288,6 @@ function ConversationInner({ config, rtmClient, onTokenWillExpire }: Conversatio /> - {/* Waiting state */} - {!isAgentConnected && isConnected && ( -
- Waiting for agent to join… -
- )} {/* Right column: transcript */} diff --git a/frontend/src/types/conversation.ts b/frontend/src/types/conversation.ts deleted file mode 100644 index 479cca0..0000000 --- a/frontend/src/types/conversation.ts +++ /dev/null @@ -1,22 +0,0 @@ -import type { RTMClient } from 'agora-rtm'; - -export interface AgoraTokenData { - token: string; - uid: string; - channel: string; - agentId?: string; - appId?: string; - agentUid?: string; -} - -export interface AgoraRenewalTokens { - rtcToken: string; - rtmToken: string; -} - -export interface ConversationComponentProps { - agoraData: AgoraTokenData; - rtmClient: RTMClient; - onTokenWillExpire: (uid: string) => Promise; - onEndConversation: () => void; -} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 5d56783..e88dd61 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -6,7 +6,7 @@ import compression from 'vite-plugin-compression' // RTC SDK is a possible future optimization; agora-rtm has no reliable UMD // CDN build, so it is bundled like the official quickstart.) export default defineConfig({ - plugins: [react(), compression({ ext: '.gz', deleteOriginalAssets: false })], + plugins: [react(), compression({ ext: '.gz', deleteOriginFile: true })], build: { outDir: '../internal/cli/playground/webassets', emptyOutDir: true, diff --git a/internal/cli/convoai_server.go b/internal/cli/convoai_server.go index 48f13fd..c36f4e9 100644 --- a/internal/cli/convoai_server.go +++ b/internal/cli/convoai_server.go @@ -1,11 +1,14 @@ package cli import ( + "bytes" "encoding/json" "fmt" "io/fs" + "mime" "net" "net/http" + "path" "strconv" "strings" "time" @@ -14,21 +17,47 @@ import ( ) type playgroundHandler struct { - sess *playgroundSession - static http.Handler // serves embedded assets; nil in unit tests + sess *playgroundSession } func newPlaygroundHandler(sess *playgroundSession, assets fs.FS) http.Handler { h := &playgroundHandler{sess: sess} - if assets != nil { - h.static = http.FileServer(http.FS(assets)) - } mux := http.NewServeMux() mux.HandleFunc("/api/get_config", h.handleGetConfig) - mux.HandleFunc("/", h.handleStatic) + mux.Handle("/", newStaticHandler(assets)) return loopbackGuard(mux) } +func newStaticHandler(assets fs.FS) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + if assets == nil { + http.NotFound(w, r) + return + } + name := strings.TrimPrefix(r.URL.Path, "/") + if name == "" || strings.HasSuffix(name, "/") { + name += "index.html" + } + // exact file? + if b, err := fs.ReadFile(assets, name); err == nil { + http.ServeContent(w, r, path.Base(name), time.Time{}, bytes.NewReader(b)) + return + } + // gzipped sibling? + if b, err := fs.ReadFile(assets, name+".gz"); err == nil && strings.Contains(r.Header.Get("Accept-Encoding"), "gzip") { + ct := mime.TypeByExtension(path.Ext(name)) + if ct == "" { + ct = "application/octet-stream" + } + w.Header().Set("Content-Type", ct) + w.Header().Set("Content-Encoding", "gzip") + _, _ = w.Write(b) + return + } + http.NotFound(w, r) + } +} + // loopbackGuard rejects requests whose Host is not loopback (defeats DNS-rebinding). func loopbackGuard(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -45,14 +74,6 @@ func loopbackGuard(next http.Handler) http.Handler { }) } -func (h *playgroundHandler) handleStatic(w http.ResponseWriter, r *http.Request) { - if h.static == nil { - http.NotFound(w, r) - return - } - h.static.ServeHTTP(w, r) -} - func (h *playgroundHandler) handleGetConfig(w http.ResponseWriter, r *http.Request) { uid := h.sess.uid if q := r.URL.Query().Get("uid"); q != "" { diff --git a/internal/cli/convoai_test.go b/internal/cli/convoai_test.go index f35fd70..aa37716 100644 --- a/internal/cli/convoai_test.go +++ b/internal/cli/convoai_test.go @@ -7,6 +7,7 @@ import ( "net/http/httptest" "strings" "testing" + "testing/fstest" "github.com/spf13/cobra" ) @@ -208,3 +209,56 @@ func TestPlaygroundStartupEnvelope(t *testing.T) { t.Fatalf("bad uid: %+v", data) } } + +func TestStaticServesGzipWithEncoding(t *testing.T) { + // Synthetic FS: index.html raw (small), assets/app.js only as .gz. + gzPayload := []byte{0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x4a, 0xcb, 0xcf, 0x57, 0x48, 0x54, 0xc8, 0x48, 0xcd, 0xc9, 0xc9, 0x57, 0x04, 0x00, + 0x00, 0x00, 0xff, 0xff} // partial, just non-empty gz bytes for testing + testFS := fstest.MapFS{ + "index.html": {Data: []byte("")}, + "assets/app.js.gz": {Data: gzPayload}, + } + + sess := &playgroundSession{appID: "a", appCert: "b", channel: "c", uid: 1, ttl: 3600} + h := newPlaygroundHandler(sess, testFS) + + // Request / with Accept-Encoding: gzip → should get gzip-encoded JS. + req := httptest.NewRequest(http.MethodGet, "/assets/app.js", nil) + req.Host = "127.0.0.1:8787" + req.Header.Set("Accept-Encoding", "gzip") + rec := httptest.NewRecorder() + h.ServeHTTP(rec, req) + + if rec.Code != http.StatusOK { + t.Fatalf("expected 200, got %d", rec.Code) + } + if got := rec.Header().Get("Content-Encoding"); got != "gzip" { + t.Fatalf("expected Content-Encoding: gzip, got %q", got) + } + if rec.Body.Len() == 0 { + t.Fatal("expected non-empty body for gzip response") + } + + // Request index.html → served raw (exact file exists). + req2 := httptest.NewRequest(http.MethodGet, "/", nil) + req2.Host = "127.0.0.1:8787" + rec2 := httptest.NewRecorder() + h.ServeHTTP(rec2, req2) + if rec2.Code != http.StatusOK { + t.Fatalf("expected 200 for index.html, got %d", rec2.Code) + } + if got := rec2.Header().Get("Content-Encoding"); got != "" { + t.Fatalf("index.html should not have Content-Encoding, got %q", got) + } + + // Request with nil assets → 404. + hNil := newPlaygroundHandler(sess, nil) + req3 := httptest.NewRequest(http.MethodGet, "/", nil) + req3.Host = "127.0.0.1:8787" + rec3 := httptest.NewRecorder() + hNil.ServeHTTP(rec3, req3) + if rec3.Code != http.StatusNotFound { + t.Fatalf("nil assets: expected 404, got %d", rec3.Code) + } +} diff --git a/internal/cli/playground/webassets/SOURCE_HASH b/internal/cli/playground/webassets/SOURCE_HASH index 70e575f..a45c40e 100644 --- a/internal/cli/playground/webassets/SOURCE_HASH +++ b/internal/cli/playground/webassets/SOURCE_HASH @@ -1 +1 @@ -87e3042ef56379b9c5b4c33bbb5a9a49864941df3ffe51425922f2c7654da126 +2f93a0c87a475c61d485372d3a7b488b2a9a9d52971c51a69d073df43792f76e diff --git a/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-0W4ooP4B.js.gz b/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-0W4ooP4B.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..ed26babea9a84eb116f52de3e0bc5a4df7c3729f GIT binary patch literal 60720 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.length===2?typeof W[1]==l?this[W[0]]=W[1].call(this,Nt):this[W[0]]=W[1]:W.length===3?typeof W[1]===l&&!(W[1].exec&&W[1].test)?this[W[0]]=Nt?W[1].call(this,Nt,W[2]):n:this[W[0]]=Nt?Nt.replace(W[1],W[2]):n:W.length===4&&(this[W[0]]=Nt?W[3].call(this,Nt.replace(W[1],W[2])):n):this[W]=Nt||n;U+=2}},Jt=function(F,k){for(var U in k)if(typeof k[U]===d&&k[U].length>0){for(var K=0;K2&&(M[_]="iPad",M[T]=g),M},this.getEngine=function(){var M={};return M[R]=n,M[O]=n,zt.call(M,K,mt.engine),M},this.getOS=function(){var M={};return M[R]=n,M[O]=n,zt.call(M,K,mt.os),W&&!M[R]&&wt&&wt.platform&&wt.platform!="Unknown"&&(M[R]=wt.platform.replace(/chrome os/i,yt).replace(/macos/i,it)),M},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return K},this.setUA=function(M){return K=typeof M===p&&M.length>At?Lt(M,At):M,this},this.setUA(K),this};Rt.VERSION=i,Rt.BROWSER=ut([R,O,I]),Rt.CPU=ut([m]),Rt.DEVICE=ut([_,A,T,D,N,x,g,v,X]),Rt.ENGINE=Rt.OS=ut([R,O]),t.exports&&(e=t.exports=Rt),e.UAParser=Rt;var Wt=typeof r!==E&&(r.jQuery||r.Zepto);if(Wt&&!Wt.ua){var ie=new Rt;Wt.ua=ie.getResult(),Wt.ua.get=function(){return ie.getUA()},Wt.ua.set=function(F){ie.setUA(F);var k=ie.getResult();for(var U in k)Wt.ua[U]=k[U]}}})(typeof window=="object"?window:In)})(xe,xe.exports);var mn=xe.exports;const Nn=Sn(mn);function Vr(t,e){return function(){return t.apply(e,arguments)}}const{toString:gn}=Object.prototype,{getPrototypeOf:Kt}=Object,{iterator:ee,toStringTag:kr}=Symbol,pe=(({hasOwnProperty:t})=>(e,r)=>t.call(e,r))(Object.prototype),te=(t,e)=>{let r=t;const n=[];for(;r!=null&&r!==Object.prototype;){if(n.indexOf(r)!==-1)return!1;if(n.push(r),pe(r,e))return!0;r=Kt(r)}return!1},Cn=(t,e)=>t!=null&&te(t,e)?t[e]:void 0,Je=(t=>e=>{const r=gn.call(e);return t[r]||(t[r]=r.slice(8,-1).toLowerCase())})(Object.create(null)),ft=t=>(t=t.toLowerCase(),e=>Je(e)===t),Ie=t=>e=>typeof e===t,{isArray:Bt}=Array,jt=Ie("undefined");function Yt(t){return t!==null&&!jt(t)&&t.constructor!==null&&!jt(t.constructor)&&at(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const Wr=ft("ArrayBuffer");function bn(t){let e;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?e=ArrayBuffer.isView(t):e=t&&t.buffer&&Wr(t.buffer),e}const Ln=Ie("string"),at=Ie("function"),Gr=Ie("number"),Xt=t=>t!==null&&typeof t=="object",wn=t=>t===!0||t===!1,le=t=>{if(!Xt(t))return!1;const e=Kt(t);return(e===null||e===Object.prototype||Kt(e)===null)&&!te(t,kr)&&!te(t,ee)},Dn=t=>{if(!Xt(t)||Yt(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},Pn=ft("Date"),yn=ft("File"),Mn=t=>!!(t&&typeof t.uri<"u"),Un=t=>t&&typeof t.getParts<"u",vn=ft("Blob"),xn=ft("FileList"),Fn=t=>Xt(t)&&at(t.pipe);function Bn(){return typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{}}const cr=Bn(),ur=typeof cr.FormData<"u"?cr.FormData:void 0,Vn=t=>{if(!t)return!1;if(ur&&t instanceof ur)return!0;const e=Kt(t);if(!e||e===Object.prototype||!at(t.append))return!1;const r=Je(t);return r==="formdata"||r==="object"&&at(t.toString)&&t.toString()==="[object FormData]"},kn=ft("URLSearchParams"),[Wn,Gn,Hn,Kn]=["ReadableStream","Request","Response","Headers"].map(ft),jn=t=>t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function re(t,e,{allOwnKeys:r=!1}={}){if(t===null||typeof t>"u")return;let n,i;if(typeof t!="object"&&(t=[t]),Bt(t))for(n=0,i=t.length;n0;)if(i=r[n],e===i.toLowerCase())return i;return null}const xt=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Kr=t=>!jt(t)&&t!==xt;function Fe(...t){const{caseless:e,skipUndefined:r}=Kr(this)&&this||{},n={},i=(o,c)=>{if(c==="__proto__"||c==="constructor"||c==="prototype")return;const l=e&&typeof c=="string"&&Hr(n,c)||c,E=pe(n,l)?n[l]:void 0;le(E)&&le(o)?n[l]=Fe(E,o):le(o)?n[l]=Fe({},o):Bt(o)?n[l]=o.slice():(!r||!jt(o))&&(n[l]=o)};for(let o=0,c=t.length;o(re(e,(i,o)=>{r&&at(i)?Object.defineProperty(t,o,{__proto__:null,value:Vr(i,r),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,o,{__proto__:null,value:i,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:n}),t),Xn=t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),zn=(t,e,r,n)=>{t.prototype=Object.create(e.prototype,n),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:e.prototype}),r&&Object.assign(t.prototype,r)},Jn=(t,e,r,n)=>{let i,o,c;const l={};if(e=e||{},t==null)return e;do{for(i=Object.getOwnPropertyNames(t),o=i.length;o-- >0;)c=i[o],(!n||n(c,t,e))&&!l[c]&&(e[c]=t[c],l[c]=!0);t=r!==!1&&Kt(t)}while(t&&(!r||r(t,e))&&t!==Object.prototype);return e},qn=(t,e,r)=>{t=String(t),(r===void 0||r>t.length)&&(r=t.length),r-=e.length;const n=t.indexOf(e,r);return n!==-1&&n===r},Qn=t=>{if(!t)return null;if(Bt(t))return t;let e=t.length;if(!Gr(e))return null;const r=new Array(e);for(;e-- >0;)r[e]=t[e];return r},$n=(t=>e=>t&&e instanceof t)(typeof Uint8Array<"u"&&Kt(Uint8Array)),Zn=(t,e)=>{const n=(t&&t[ee]).call(t);let i;for(;(i=n.next())&&!i.done;){const o=i.value;e.call(t,o[0],o[1])}},ts=(t,e)=>{let r;const n=[];for(;(r=t.exec(e))!==null;)n.push(r);return n},es=ft("HTMLFormElement"),rs=t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(r,n,i){return n.toUpperCase()+i}),{propertyIsEnumerable:ns}=Object.prototype,ss=ft("RegExp"),jr=(t,e)=>{const r=Object.getOwnPropertyDescriptors(t),n={};re(r,(i,o)=>{let c;(c=e(i,o,t))!==!1&&(n[o]=c||i)}),Object.defineProperties(t,n)},is=t=>{jr(t,(e,r)=>{if(at(t)&&["arguments","caller","callee"].includes(r))return!1;const n=t[r];if(at(n)){if(e.enumerable=!1,"writable"in e){e.writable=!1;return}e.set||(e.set=()=>{throw Error("Can not rewrite read-only method '"+r+"'")})}})},os=(t,e)=>{const r={},n=i=>{i.forEach(o=>{r[o]=!0})};return Bt(t)?n(t):n(String(t).split(e)),r},as=()=>{},cs=(t,e)=>t!=null&&Number.isFinite(t=+t)?t:e;function us(t){return!!(t&&at(t.append)&&t[kr]==="FormData"&&t[ee])}const Es=t=>{const e=new WeakSet,r=n=>{if(Xt(n)){if(e.has(n))return;if(Yt(n))return n;if(!("toJSON"in n)){e.add(n);const i=Bt(n)?[]:{};return re(n,(o,c)=>{const l=r(o);!jt(l)&&(i[c]=l)}),e.delete(n),i}}return n};return r(t)},ls=ft("AsyncFunction"),_s=t=>t&&(Xt(t)||at(t))&&at(t.then)&&at(t.catch),Yr=((t,e)=>t?setImmediate:e?((r,n)=>(xt.addEventListener("message",({source:i,data:o})=>{i===xt&&o===r&&n.length&&n.shift()()},!1),i=>{n.push(i),xt.postMessage(r,"*")}))(`axios@${Math.random()}`,[]):r=>setTimeout(r))(typeof setImmediate=="function",at(xt.postMessage)),ds=typeof queueMicrotask<"u"?queueMicrotask.bind(xt):typeof process<"u"&&process.nextTick||Yr,Xr=t=>t!=null&&at(t[ee]),ps=t=>t!=null&&te(t,ee)&&Xr(t),h={isArray:Bt,isArrayBuffer:Wr,isBuffer:Yt,isFormData:Vn,isArrayBufferView:bn,isString:Ln,isNumber:Gr,isBoolean:wn,isObject:Xt,isPlainObject:le,isEmptyObject:Dn,isReadableStream:Wn,isRequest:Gn,isResponse:Hn,isHeaders:Kn,isUndefined:jt,isDate:Pn,isFile:yn,isReactNativeBlob:Mn,isReactNative:Un,isBlob:vn,isRegExp:ss,isFunction:at,isStream:Fn,isURLSearchParams:kn,isTypedArray:$n,isFileList:xn,forEach:re,merge:Fe,extend:Yn,trim:jn,stripBOM:Xn,inherits:zn,toFlatObject:Jn,kindOf:Je,kindOfTest:ft,endsWith:qn,toArray:Qn,forEachEntry:Zn,matchAll:ts,isHTMLForm:es,hasOwnProperty:pe,hasOwnProp:pe,hasOwnInPrototypeChain:te,getSafeProp:Cn,reduceDescriptors:jr,freezeMethods:is,toObjectSet:os,toCamelCase:rs,noop:as,toFiniteNumber:cs,findKey:Hr,global:xt,isContextDefined:Kr,isSpecCompliantForm:us,toJSONObject:Es,isAsyncFn:ls,isThenable:_s,setImmediate:Yr,asap:ds,isIterable:Xr,isSafeIterable:ps},hs=h.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Ts=t=>{const e={};let r,n,i;return t&&t.split(` -`).forEach(function(c){i=c.indexOf(":"),r=c.substring(0,i).trim().toLowerCase(),n=c.substring(i+1).trim(),!(!r||e[r]&&hs[r])&&(r==="set-cookie"?e[r]?e[r].push(n):e[r]=[n]:e[r]=e[r]?e[r]+", "+n:n)}),e};function Rs(t){let e=0,r=t.length;for(;ee;){const n=t.charCodeAt(r-1);if(n!==9&&n!==32)break;r-=1}return e===0&&r===t.length?t:t.slice(e,r)}const fs=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),As=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function qe(t,e){return h.isArray(t)?t.map(r=>qe(r,e)):Rs(String(t).replace(e,""))}const Os=t=>qe(t,fs),Is=t=>qe(t,As);function zr(t){const e=Object.create(null);return h.forEach(t.toJSON(),(r,n)=>{e[n]=Is(r)}),e}const Er=Symbol("internals");function qt(t){return t&&String(t).trim().toLowerCase()}function _e(t){return t===!1||t==null?t:h.isArray(t)?t.map(_e):Os(String(t))}function Ss(t){const e=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(t);)e[n[1]]=n[2];return e}const ms=t=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(t.trim());function be(t,e,r,n,i){if(h.isFunction(n))return n.call(this,e,r);if(i&&(e=r),!!h.isString(e)){if(h.isString(n))return e.indexOf(n)!==-1;if(h.isRegExp(n))return n.test(e)}}function Ns(t){return t.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,r,n)=>r.toUpperCase()+n)}function gs(t,e){const r=h.toCamelCase(" "+e);["get","set","has"].forEach(n=>{Object.defineProperty(t,n+r,{__proto__:null,value:function(i,o,c){return this[n].call(this,e,i,o,c)},configurable:!0})})}let rt=class{constructor(e){e&&this.set(e)}set(e,r,n){const i=this;function o(l,E,d){const p=qt(E);if(!p)return;const I=h.findKey(i,p);(!I||i[I]===void 0||d===!0||d===void 0&&i[I]!==!1)&&(i[I||E]=_e(l))}const c=(l,E)=>h.forEach(l,(d,p)=>o(d,p,E));if(h.isPlainObject(e)||e instanceof this.constructor)c(e,r);else if(h.isString(e)&&(e=e.trim())&&!ms(e))c(Ts(e),r);else if(h.isObject(e)&&h.isSafeIterable(e)){let l=Object.create(null),E,d;for(const p of e){if(!h.isArray(p))throw new TypeError("Object iterator must return a key-value pair");d=p[0],h.hasOwnProp(l,d)?(E=l[d],l[d]=h.isArray(E)?[...E,p[1]]:[E,p[1]]):l[d]=p[1]}c(l,r)}else e!=null&&o(r,e,n);return this}get(e,r){if(e=qt(e),e){const n=h.findKey(this,e);if(n){const i=this[n];if(!r)return i;if(r===!0)return Ss(i);if(h.isFunction(r))return r.call(this,i,n);if(h.isRegExp(r))return r.exec(i);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,r){if(e=qt(e),e){const n=h.findKey(this,e);return!!(n&&this[n]!==void 0&&(!r||be(this,this[n],n,r)))}return!1}delete(e,r){const n=this;let i=!1;function o(c){if(c=qt(c),c){const l=h.findKey(n,c);l&&(!r||be(n,n[l],l,r))&&(delete n[l],i=!0)}}return h.isArray(e)?e.forEach(o):o(e),i}clear(e){const r=Object.keys(this);let n=r.length,i=!1;for(;n--;){const o=r[n];(!e||be(this,this[o],o,e,!0))&&(delete this[o],i=!0)}return i}normalize(e){const r=this,n={};return h.forEach(this,(i,o)=>{const c=h.findKey(n,o);if(c){r[c]=_e(i),delete r[o];return}const l=e?Ns(o):String(o).trim();l!==o&&delete r[o],r[l]=_e(i),n[l]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const r=Object.create(null);return h.forEach(this,(n,i)=>{n!=null&&n!==!1&&(r[i]=e&&h.isArray(n)?n.join(", "):n)}),r}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,r])=>e+": "+r).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...r){const n=new this(e);return r.forEach(i=>n.set(i)),n}static accessor(e){const n=(this[Er]=this[Er]={accessors:{}}).accessors,i=this.prototype;function o(c){const l=qt(c);n[l]||(gs(i,c),n[l]=!0)}return h.isArray(e)?e.forEach(o):o(e),this}};rt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);h.reduceDescriptors(rt.prototype,({value:t},e)=>{let r=e[0].toUpperCase()+e.slice(1);return{get:()=>t,set(n){this[r]=n}}});h.freezeMethods(rt);const Cs="[REDACTED ****]";function bs(t){if(h.hasOwnProp(t,"toJSON"))return!0;let e=Object.getPrototypeOf(t);for(;e&&e!==Object.prototype;){if(h.hasOwnProp(e,"toJSON"))return!0;e=Object.getPrototypeOf(e)}return!1}function Ls(t,e){const r=new Set(e.map(o=>String(o).toLowerCase())),n=[],i=o=>{if(o===null||typeof o!="object"||h.isBuffer(o))return o;if(n.indexOf(o)!==-1)return;o instanceof rt&&(o=o.toJSON()),n.push(o);let c;if(h.isArray(o))c=[],o.forEach((l,E)=>{const d=i(l);h.isUndefined(d)||(c[E]=d)});else{if(!h.isPlainObject(o)&&bs(o))return n.pop(),o;c=Object.create(null);for(const[l,E]of Object.entries(o)){const d=r.has(l.toLowerCase())?Cs:i(E);h.isUndefined(d)||(c[l]=d)}}return n.pop(),c};return i(t)}let C=class Jr extends Error{static from(e,r,n,i,o,c){const l=new Jr(e.message,r||e.code,n,i,o);return Object.defineProperty(l,"cause",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),l.name=e.name,e.status!=null&&l.status==null&&(l.status=e.status),c&&Object.assign(l,c),l}constructor(e,r,n,i,o){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,r&&(this.code=r),n&&(this.config=n),i&&(this.request=i),o&&(this.response=o,this.status=o.status)}toJSON(){const e=this.config,r=e&&h.hasOwnProp(e,"redact")?e.redact:void 0,n=h.isArray(r)&&r.length>0?Ls(e,r):h.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};C.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE";C.ERR_BAD_OPTION="ERR_BAD_OPTION";C.ECONNABORTED="ECONNABORTED";C.ETIMEDOUT="ETIMEDOUT";C.ECONNREFUSED="ECONNREFUSED";C.ERR_NETWORK="ERR_NETWORK";C.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS";C.ERR_DEPRECATED="ERR_DEPRECATED";C.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE";C.ERR_BAD_REQUEST="ERR_BAD_REQUEST";C.ERR_CANCELED="ERR_CANCELED";C.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT";C.ERR_INVALID_URL="ERR_INVALID_URL";C.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";const ws=null,qr=100;function Be(t){return h.isPlainObject(t)||h.isArray(t)}function Qr(t){return h.endsWith(t,"[]")?t.slice(0,-2):t}function Le(t,e,r){return t?t.concat(e).map(function(i,o){return i=Qr(i),!r&&o?"["+i+"]":i}).join(r?".":""):e}function Ds(t){return h.isArray(t)&&!t.some(Be)}const Ps=h.toFlatObject(h,{},null,function(e){return/^is[A-Z]/.test(e)});function Se(t,e,r){if(!h.isObject(t))throw new TypeError("target must be an object");e=e||new FormData,r=h.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,function(D,N){return!h.isUndefined(N[D])});const n=r.metaTokens,i=r.visitor||T,o=r.dots,c=r.indexes,l=r.Blob||typeof Blob<"u"&&Blob,E=r.maxDepth===void 0?qr:r.maxDepth,d=l&&h.isSpecCompliantForm(e),p=[];if(!h.isFunction(i))throw new TypeError("visitor must be a function");function I(m){if(m===null)return"";if(h.isDate(m))return m.toISOString();if(h.isBoolean(m))return m.toString();if(!d&&h.isBlob(m))throw new C("Blob is not supported. Use a Buffer instead.");if(h.isArrayBuffer(m)||h.isTypedArray(m)){if(d&&typeof l=="function")return new l([m]);if(typeof Buffer<"u")return Buffer.from(m);throw new C("Blob is not supported. Use a Buffer instead.",C.ERR_NOT_SUPPORT)}return m}function _(m){if(m>E)throw new C("Object is too deeply nested ("+m+" levels). Max depth: "+E,C.ERR_FORM_DATA_DEPTH_EXCEEDED)}function R(m,D){if(E===1/0)return JSON.stringify(m);const N=[];return JSON.stringify(m,function(x,v){if(!h.isObject(v))return v;for(;N.length&&N[N.length-1]!==this;)N.pop();return N.push(v),_(D+N.length-1),v})}function T(m,D,N){let g=m;if(h.isReactNative(e)&&h.isReactNativeBlob(m))return e.append(Le(N,D,o),I(m)),!1;if(m&&!N&&typeof m=="object"){if(h.endsWith(D,"{}"))D=n?D:D.slice(0,-2),m=R(m,1);else if(h.isArray(m)&&Ds(m)||(h.isFileList(m)||h.endsWith(D,"[]"))&&(g=h.toArray(m)))return D=Qr(D),g.forEach(function(v,X){!(h.isUndefined(v)||v===null)&&e.append(c===!0?Le([D],X,o):c===null?D:D+"[]",I(v))}),!1}return Be(m)?!0:(e.append(Le(N,D,o),I(m)),!1)}const A=Object.assign(Ps,{defaultVisitor:T,convertValue:I,isVisitable:Be});function O(m,D,N=0){if(!h.isUndefined(m)){if(_(N),p.indexOf(m)!==-1)throw new Error("Circular reference detected in "+D.join("."));p.push(m),h.forEach(m,function(x,v){(!(h.isUndefined(x)||x===null)&&i.call(e,x,h.isString(v)?v.trim():v,D,A))===!0&&O(x,D?D.concat(v):[v],N+1)}),p.pop()}}if(!h.isObject(t))throw new TypeError("data must be an object");return O(t),e}function lr(t){const e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(n){return e[n]})}function Qe(t,e){this._pairs=[],t&&Se(t,this,e)}const $r=Qe.prototype;$r.append=function(e,r){this._pairs.push([e,r])};$r.toString=function(e){const r=e?n=>e.call(this,n,lr):lr;return this._pairs.map(function(i){return r(i[0])+"="+r(i[1])},"").join("&")};function ys(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Zr(t,e,r){if(!e)return t;t=t||"";const n=h.isFunction(r)?{serialize:r}:r,i=h.getSafeProp(n,"encode")||ys,o=h.getSafeProp(n,"serialize");let c;if(o?c=o(e,n):c=h.isURLSearchParams(e)?e.toString():new Qe(e,n).toString(i),c){const l=t.indexOf("#");l!==-1&&(t=t.slice(0,l)),t+=(t.indexOf("?")===-1?"?":"&")+c}return t}class _r{constructor(){this.handlers=[]}use(e,r,n){return this.handlers.push({fulfilled:e,rejected:r,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){h.forEach(this.handlers,function(n){n!==null&&e(n)})}}const $e={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Ms=typeof URLSearchParams<"u"?URLSearchParams:Qe,Us=typeof FormData<"u"?FormData:null,vs=typeof Blob<"u"?Blob:null,xs={isBrowser:!0,classes:{URLSearchParams:Ms,FormData:Us,Blob:vs},protocols:["http","https","file","blob","url","data"]},Ze=typeof window<"u"&&typeof document<"u",Ve=typeof navigator=="object"&&navigator||void 0,Fs=Ze&&(!Ve||["ReactNative","NativeScript","NS"].indexOf(Ve.product)<0),Bs=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",Vs=Ze&&window.location.href||"http://localhost",ks=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Ze,hasStandardBrowserEnv:Fs,hasStandardBrowserWebWorkerEnv:Bs,navigator:Ve,origin:Vs},Symbol.toStringTag,{value:"Module"})),tt={...ks,...xs};function Ws(t,e){return Se(t,new tt.classes.URLSearchParams,{visitor:function(r,n,i,o){return tt.isNode&&h.isBuffer(r)?(this.append(n,r.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...e})}const dr=qr;function tn(t){if(t>dr)throw new C("FormData field is too deeply nested ("+t+" levels). Max depth: "+dr,C.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Gs(t){const e=[],r=/\w+|\[(\w*)]/g;let n;for(;(n=r.exec(t))!==null;)tn(e.length),e.push(n[0]==="[]"?"":n[1]||n[0]);return e}function Hs(t){const e={},r=Object.keys(t);let n;const i=r.length;let o;for(n=0;n=r.length;return c=!c&&h.isArray(i)?i.length:c,E?(h.hasOwnProp(i,c)?i[c]=h.isArray(i[c])?i[c].concat(n):[i[c],n]:i[c]=n,!l):((!h.hasOwnProp(i,c)||!h.isObject(i[c]))&&(i[c]=[]),e(r,n,i[c],o)&&h.isArray(i[c])&&(i[c]=Hs(i[c])),!l)}if(h.isFormData(t)&&h.isFunction(t.entries)){const r={};return h.forEachEntry(t,(n,i)=>{e(Gs(n),i,r,0)}),r}return null}const Gt=(t,e)=>t!=null&&h.hasOwnProp(t,e)?t[e]:void 0;function Ks(t,e,r){if(h.isString(t))try{return(e||JSON.parse)(t),h.trim(t)}catch(n){if(n.name!=="SyntaxError")throw n}return(r||JSON.stringify)(t)}const ne={transitional:$e,adapter:["xhr","http","fetch"],transformRequest:[function(e,r){const n=r.getContentType()||"",i=n.indexOf("application/json")>-1,o=h.isObject(e);if(o&&h.isHTMLForm(e)&&(e=new FormData(e)),h.isFormData(e))return i?JSON.stringify(en(e)):e;if(h.isArrayBuffer(e)||h.isBuffer(e)||h.isStream(e)||h.isFile(e)||h.isBlob(e)||h.isReadableStream(e))return e;if(h.isArrayBufferView(e))return e.buffer;if(h.isURLSearchParams(e))return r.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let l;if(o){const E=Gt(this,"formSerializer");if(n.indexOf("application/x-www-form-urlencoded")>-1)return Ws(e,E).toString();if((l=h.isFileList(e))||n.indexOf("multipart/form-data")>-1){const d=Gt(this,"env"),p=d&&d.FormData;return Se(l?{"files[]":e}:e,p&&new p,E)}}return o||i?(r.setContentType("application/json",!1),Ks(e)):e}],transformResponse:[function(e){const r=Gt(this,"transitional")||ne.transitional,n=r&&r.forcedJSONParsing,i=Gt(this,"responseType"),o=i==="json";if(h.isResponse(e)||h.isReadableStream(e))return e;if(e&&h.isString(e)&&(n&&!i||o)){const l=!(r&&r.silentJSONParsing)&&o;try{return JSON.parse(e,Gt(this,"parseReviver"))}catch(E){if(l)throw E.name==="SyntaxError"?C.from(E,C.ERR_BAD_RESPONSE,this,null,Gt(this,"response")):E}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:tt.classes.FormData,Blob:tt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};h.forEach(["delete","get","head","post","put","patch","query"],t=>{ne.headers[t]={}});function we(t,e){const r=this||ne,n=e||r,i=rt.from(n.headers);let o=n.data;return h.forEach(t,function(l){o=l.call(r,o,i.normalize(),e?e.status:void 0)}),i.normalize(),o}function rn(t){return!!(t&&t.__CANCEL__)}let se=class extends C{constructor(e,r,n){super(e??"canceled",C.ERR_CANCELED,r,n),this.name="CanceledError",this.__CANCEL__=!0}};function nn(t,e,r){const n=r.config.validateStatus;!r.status||!n||n(r.status)?t(r):e(new C("Request failed with status code "+r.status,r.status>=400&&r.status<500?C.ERR_BAD_REQUEST:C.ERR_BAD_RESPONSE,r.config,r.request,r))}function js(t){const e=/^([-+\w]{1,25}):(?:\/\/)?/.exec(t);return e&&e[1]||""}function Ys(t,e){t=t||10;const r=new Array(t),n=new Array(t);let i=0,o=0,c;return e=e!==void 0?e:1e3,function(E){const d=Date.now(),p=n[o];c||(c=d),r[i]=E,n[i]=d;let I=o,_=0;for(;I!==i;)_+=r[I++],I=I%t;if(i=(i+1)%t,i===o&&(o=(o+1)%t),d-c{r=p,i=null,o&&(clearTimeout(o),o=null),t(...d)};return[(...d)=>{const p=Date.now(),I=p-r;I>=n?c(d,p):(i=d,o||(o=setTimeout(()=>{o=null,c(i)},n-I)))},()=>i&&c(i)]}const he=(t,e,r=3)=>{let n=0;const i=Ys(50,250);return Xs(o=>{if(!o||typeof o.loaded!="number")return;const c=o.loaded,l=o.lengthComputable?o.total:void 0,E=l!=null?Math.min(c,l):c,d=Math.max(0,E-n),p=i(d);n=Math.max(n,E);const I={loaded:E,total:l,progress:l?E/l:void 0,bytes:d,rate:p||void 0,estimated:p&&l?(l-E)/p:void 0,event:o,lengthComputable:l!=null,[e?"download":"upload"]:!0};t(I)},r)},pr=(t,e)=>{const r=t!=null;return[n=>e[0]({lengthComputable:r,total:t,loaded:n}),e[1]]},hr=t=>(...e)=>h.asap(()=>t(...e)),zs=tt.hasStandardBrowserEnv?((t,e)=>r=>(r=new URL(r,tt.origin),t.protocol===r.protocol&&t.host===r.host&&(e||t.port===r.port)))(new URL(tt.origin),tt.navigator&&/(msie|trident)/i.test(tt.navigator.userAgent)):()=>!0,Js=tt.hasStandardBrowserEnv?{write(t,e,r,n,i,o,c){if(typeof document>"u")return;const l=[`${t}=${encodeURIComponent(e)}`];h.isNumber(r)&&l.push(`expires=${new Date(r).toUTCString()}`),h.isString(n)&&l.push(`path=${n}`),h.isString(i)&&l.push(`domain=${i}`),o===!0&&l.push("secure"),h.isString(c)&&l.push(`SameSite=${c}`),document.cookie=l.join("; ")},read(t){if(typeof document>"u")return null;const e=document.cookie.split(";");for(let r=0;rt instanceof rt?{...t}:t;function Vt(t,e){t=t||{},e=e||{};const r=Object.create(null);Object.defineProperty(r,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function n(p,I,_,R){return h.isPlainObject(p)&&h.isPlainObject(I)?h.merge.call({caseless:R},p,I):h.isPlainObject(I)?h.merge({},I):h.isArray(I)?I.slice():I}function i(p,I,_,R){if(h.isUndefined(I)){if(!h.isUndefined(p))return n(void 0,p,_,R)}else return n(p,I,_,R)}function o(p,I){if(!h.isUndefined(I))return n(void 0,I)}function c(p,I){if(h.isUndefined(I)){if(!h.isUndefined(p))return n(void 0,p)}else return n(void 0,I)}function l(p){const I=h.hasOwnProp(e,"transitional")?e.transitional:void 0;if(!h.isUndefined(I))if(h.isPlainObject(I)){if(h.hasOwnProp(I,p))return I[p]}else return;const _=h.hasOwnProp(t,"transitional")?t.transitional:void 0;if(h.isPlainObject(_)&&h.hasOwnProp(_,p))return _[p]}function E(p,I,_){if(h.hasOwnProp(e,_))return n(p,I);if(h.hasOwnProp(t,_))return n(void 0,p)}const d={url:o,method:o,data:o,baseURL:c,transformRequest:c,transformResponse:c,paramsSerializer:c,timeout:c,timeoutMessage:c,withCredentials:c,withXSRFToken:c,adapter:c,responseType:c,xsrfCookieName:c,xsrfHeaderName:c,onUploadProgress:c,onDownloadProgress:c,decompress:c,maxContentLength:c,maxBodyLength:c,beforeRedirect:c,transport:c,httpAgent:c,httpsAgent:c,cancelToken:c,socketPath:c,allowedSocketPaths:c,responseEncoding:c,validateStatus:E,headers:(p,I,_)=>i(Rr(p),Rr(I),_,!0)};return h.forEach(Object.keys({...t,...e}),function(I){if(I==="__proto__"||I==="constructor"||I==="prototype")return;const _=h.hasOwnProp(d,I)?d[I]:i,R=h.hasOwnProp(t,I)?t[I]:void 0,T=h.hasOwnProp(e,I)?e[I]:void 0,A=_(R,T,I);h.isUndefined(A)&&_!==E||(r[I]=A)}),h.hasOwnProp(e,"validateStatus")&&h.isUndefined(e.validateStatus)&&l("validateStatusUndefinedResolves")===!1&&(h.hasOwnProp(t,"validateStatus")?r.validateStatus=n(void 0,t.validateStatus):delete r.validateStatus),r}const ri=["content-type","content-length"];function ni(t,e,r){if(r!=="content-only"){t.set(e);return}Object.entries(e||{}).forEach(([n,i])=>{ri.includes(n.toLowerCase())&&t.set(n,i)})}const si=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16)));function on(t){const e=Vt({},t),r=_=>h.hasOwnProp(e,_)?e[_]:void 0,n=r("data");let i=r("withXSRFToken");const o=r("xsrfHeaderName"),c=r("xsrfCookieName");let l=r("headers");const E=r("auth"),d=r("baseURL"),p=r("allowAbsoluteUrls"),I=r("url");if(e.headers=l=rt.from(l),e.url=Zr(sn(d,I,p,e),r("params"),r("paramsSerializer")),E){const _=h.getSafeProp(E,"username")||"",R=h.getSafeProp(E,"password")||"";try{l.set("Authorization","Basic "+btoa(_+":"+(R?si(R):"")))}catch(T){throw C.from(T,C.ERR_BAD_OPTION_VALUE,t)}}if(h.isFormData(n)&&(tt.hasStandardBrowserEnv||tt.hasStandardBrowserWebWorkerEnv||h.isReactNative(n)?l.setContentType(void 0):h.isFunction(n.getHeaders)&&ni(l,n.getHeaders(),r("formDataHeaderPolicy"))),tt.hasStandardBrowserEnv&&(h.isFunction(i)&&(i=i(e)),i===!0||i==null&&zs(e.url))){const R=o&&c&&Js.read(c);R&&l.set(o,R)}return e}const ii=typeof XMLHttpRequest<"u",oi=ii&&function(t){return new Promise(function(r,n){const i=on(t);let o=i.data;const c=rt.from(i.headers).normalize();let{responseType:l,onUploadProgress:E,onDownloadProgress:d}=i,p,I,_,R,T;function A(){R&&R(),T&&T(),i.cancelToken&&i.cancelToken.unsubscribe(p),i.signal&&i.signal.removeEventListener("abort",p)}let O=new XMLHttpRequest;O.open(i.method.toUpperCase(),i.url,!0),O.timeout=i.timeout;function m(){if(!O)return;const N=rt.from("getAllResponseHeaders"in O&&O.getAllResponseHeaders()),x={data:!l||l==="text"||l==="json"?O.responseText:O.response,status:O.status,statusText:O.statusText,headers:N,config:t,request:O};nn(function(X){r(X),A()},function(X){n(X),A()},x),O=null}"onloadend"in O?O.onloadend=m:O.onreadystatechange=function(){!O||O.readyState!==4||O.status===0&&!(O.responseURL&&O.responseURL.startsWith("file:"))||setTimeout(m)},O.onabort=function(){O&&(n(new C("Request aborted",C.ECONNABORTED,t,O)),A(),O=null)},O.onerror=function(g){const x=g&&g.message?g.message:"Network Error",v=new C(x,C.ERR_NETWORK,t,O);v.event=g||null,n(v),A(),O=null},O.ontimeout=function(){let g=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const x=i.transitional||$e;i.timeoutErrorMessage&&(g=i.timeoutErrorMessage),n(new C(g,x.clarifyTimeoutError?C.ETIMEDOUT:C.ECONNABORTED,t,O)),A(),O=null},o===void 0&&c.setContentType(null),"setRequestHeader"in O&&h.forEach(zr(c),function(g,x){O.setRequestHeader(x,g)}),h.isUndefined(i.withCredentials)||(O.withCredentials=!!i.withCredentials),l&&l!=="json"&&(O.responseType=i.responseType),d&&([_,T]=he(d,!0),O.addEventListener("progress",_)),E&&O.upload&&([I,R]=he(E),O.upload.addEventListener("progress",I),O.upload.addEventListener("loadend",R)),(i.cancelToken||i.signal)&&(p=N=>{O&&(n(!N||N.type?new se(null,t,O):N),O.abort(),A(),O=null)},i.cancelToken&&i.cancelToken.subscribe(p),i.signal&&(i.signal.aborted?p():i.signal.addEventListener("abort",p)));const D=js(i.url);if(D&&!tt.protocols.includes(D)){n(new C("Unsupported protocol "+D+":",C.ERR_BAD_REQUEST,t)),A();return}O.send(o||null)})},ai=(t,e)=>{if(t=t?t.filter(Boolean):[],!e&&!t.length)return;const r=new AbortController;let n=!1;const i=function(E){if(!n){n=!0,c();const d=E instanceof Error?E:this.reason;r.abort(d instanceof C?d:new se(d instanceof Error?d.message:d))}};let o=e&&setTimeout(()=>{o=null,i(new C(`timeout of ${e}ms exceeded`,C.ETIMEDOUT))},e);const c=()=>{t&&(o&&clearTimeout(o),o=null,t.forEach(E=>{E.unsubscribe?E.unsubscribe(i):E.removeEventListener("abort",i)}),t=null)};t.forEach(E=>E.addEventListener("abort",i,{once:!0}));const{signal:l}=r;return l.unsubscribe=()=>h.asap(c),l},ci=function*(t,e){let r=t.byteLength;if(r{const i=ui(t,e);let o=0,c,l=E=>{c||(c=!0,n&&n(E))};return new ReadableStream({async pull(E){try{const{done:d,value:p}=await i.next();if(d){l(),E.close();return}let I=p.byteLength;if(r){let _=o+=I;r(_)}E.enqueue(new Uint8Array(p))}catch(d){throw l(d),d}},cancel(E){return l(E),i.return()}},{highWaterMark:2})},Te=t=>t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102,li=(t,e,r)=>e+2R>=2&&n.charCodeAt(R-2)===37&&n.charCodeAt(R-1)===51&&(n.charCodeAt(R)===68||n.charCodeAt(R)===100);d>=0&&(n.charCodeAt(d)===61?(E++,d--):p(d)&&(E++,d-=3)),E===1&&d>=0&&(n.charCodeAt(d)===61||p(d))&&E++;const _=Math.floor(c/4)*3-(E||0);return _>0?_:0}let o=0;for(let c=0,l=n.length;c=55296&&E<=56319&&c+1=56320&&d<=57343?(o+=4,c++):o+=3}else o+=3}return o}const tr="1.18.1",Ar=64*1024,{isFunction:oe}=h,di=t=>encodeURIComponent(t).replace(/%([0-9A-F]{2})/gi,(e,r)=>String.fromCharCode(parseInt(r,16))),Or=t=>{if(!h.isString(t))return t;try{return decodeURIComponent(t)}catch{return t}},Ir=(t,...e)=>{try{return!!t(...e)}catch{return!1}},pi=t=>{const e=t.indexOf("://");let r=t;return e!==-1&&(r=r.slice(e+3)),r.includes("@")||r.includes(":")},hi=t=>{const e=h.global!==void 0&&h.global!==null?h.global:globalThis,{ReadableStream:r,TextEncoder:n}=e;t=h.merge.call({skipUndefined:!0},{Request:e.Request,Response:e.Response},t);const{fetch:i,Request:o,Response:c}=t,l=i?oe(i):typeof fetch=="function",E=oe(o),d=oe(c);if(!l)return!1;const p=l&&oe(r),I=l&&(typeof n=="function"?(m=>D=>m.encode(D))(new n):async m=>new Uint8Array(await new o(m).arrayBuffer())),_=E&&p&&Ir(()=>{let m=!1;const D=new o(tt.origin,{body:new r,method:"POST",get duplex(){return m=!0,"half"}}),N=D.headers.has("Content-Type");return D.body!=null&&D.body.cancel(),m&&!N}),R=d&&p&&Ir(()=>h.isReadableStream(new c("").body)),T={stream:R&&(m=>m.body)};l&&["text","arrayBuffer","blob","formData","stream"].forEach(m=>{!T[m]&&(T[m]=(D,N)=>{let g=D&&D[m];if(g)return g.call(D);throw new C(`Response type '${m}' is not supported`,C.ERR_NOT_SUPPORT,N)})});const A=async m=>{if(m==null)return 0;if(h.isBlob(m))return m.size;if(h.isSpecCompliantForm(m))return(await new o(tt.origin,{method:"POST",body:m}).arrayBuffer()).byteLength;if(h.isArrayBufferView(m)||h.isArrayBuffer(m))return m.byteLength;if(h.isURLSearchParams(m)&&(m=m+""),h.isString(m))return(await I(m)).byteLength},O=async(m,D)=>{const N=h.toFiniteNumber(m.getContentLength());return N??A(D)};return async m=>{let{url:D,method:N,data:g,signal:x,cancelToken:v,timeout:X,onDownloadProgress:At,onUploadProgress:ht,responseType:q,headers:ct,withCredentials:gt="same-origin",fetchOptions:Ot,maxContentLength:Q,maxBodyLength:Ct}=on(m);const _t=h.isNumber(Q)&&Q>-1,It=h.isNumber(Ct)&&Ct>-1,kt=w=>h.hasOwnProp(m,w)?m[w]:void 0;let Ut=i||fetch;q=q?(q+"").toLowerCase():"text";let S=ai([x,v&&v.toAbortSignal()],X),s=null;const a=S&&S.unsubscribe&&(()=>{S.unsubscribe()});let u,f=null;const L=()=>new C("Request body larger than maxBodyLength limit",C.ERR_BAD_REQUEST,m,s);try{let w;const B=kt("auth");if(B){const y=h.getSafeProp(B,"username")||"",st=h.getSafeProp(B,"password")||"";w={username:y,password:st}}if(pi(D)){const y=new URL(D,tt.origin);if(!w&&(y.username||y.password)){const st=Or(y.username),ut=Or(y.password);w={username:st,password:ut}}(y.username||y.password)&&(y.username="",y.password="",D=y.href)}if(w&&(ct.delete("authorization"),ct.set("Authorization","Basic "+btoa(di((w.username||"")+":"+(w.password||""))))),_t&&typeof D=="string"&&D.startsWith("data:")&&_i(D)>Q)throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s);if(It&&N!=="get"&&N!=="head"){const y=await A(g);if(typeof y=="number"&&isFinite(y)&&(u=y,y>Ct))throw L()}const J=It&&(h.isReadableStream(g)||h.isStream(g)),Tt=(y,st,ut)=>fr(y,Ar,St=>{if(It&&St>Ct)throw f=L();st&&st(St)},ut);if(_&&N!=="get"&&N!=="head"&&(ht||J)){if(u=u??await O(ct,g),u!==0||J){let y=new o(D,{method:"POST",body:g,duplex:"half"}),st;if(h.isFormData(g)&&(st=y.headers.get("content-type"))&&ct.setContentType(st),y.body){const[ut,St]=ht&&pr(u,he(hr(ht)))||[];g=Tt(y.body,ut,St)}}}else if(J&&!E&&p&&N!=="get"&&N!=="head")g=Tt(g);else if(J&&E&&!_&&N!=="get"&&N!=="head")throw new C("Stream request bodies are not supported by the current fetch implementation",C.ERR_NOT_SUPPORT,m,s);h.isString(gt)||(gt=gt?"include":"omit");const bt=E&&"credentials"in o.prototype;if(h.isFormData(g)){const y=ct.getContentType();y&&/^multipart\/form-data/i.test(y)&&!/boundary=/i.test(y)&&ct.delete("content-type")}ct.set("User-Agent","axios/"+tr,!1);const Pt={...Ot,signal:S,method:N.toUpperCase(),headers:zr(ct.normalize()),body:g,duplex:"half",credentials:bt?gt:void 0};s=E&&new o(D,Pt);let nt=await(E?Ut(s,Ot):Ut(D,Pt));const vt=rt.from(nt.headers);if(_t){const y=h.toFiniteNumber(vt.getContentLength());if(y!=null&&y>Q)throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s)}const yt=R&&(q==="stream"||q==="response");if(R&&nt.body&&(At||_t||yt&&a)){const y={};["status","statusText","headers"].forEach(Lt=>{y[Lt]=nt[Lt]});const st=h.toFiniteNumber(vt.getContentLength()),[ut,St]=At&&pr(st,he(hr(At),!0))||[];let Mt=0;const ge=Lt=>{if(_t&&(Mt=Lt,Mt>Q))throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s);ut&&ut(Lt)};nt=new c(fr(nt.body,Ar,ge,()=>{St&&St(),a&&a()}),y)}q=q||"text";let it=await T[h.findKey(T,q)||"text"](nt,m);if(_t&&!R&&!yt){let y;if(it!=null&&(typeof it.byteLength=="number"?y=it.byteLength:typeof it.size=="number"?y=it.size:typeof it=="string"&&(y=typeof n=="function"?new n().encode(it).byteLength:it.length)),typeof y=="number"&&y>Q)throw new C("maxContentLength size of "+Q+" exceeded",C.ERR_BAD_RESPONSE,m,s)}return!yt&&a&&a(),await new Promise((y,st)=>{nn(y,st,{data:it,headers:rt.from(nt.headers),status:nt.status,statusText:nt.statusText,config:m,request:s})})}catch(w){if(a&&a(),S&&S.aborted&&S.reason instanceof C){const B=S.reason;throw B.config=m,s&&(B.request=s),w!==B&&Object.defineProperty(B,"cause",{__proto__:null,value:w,writable:!0,enumerable:!1,configurable:!0}),B}if(f)throw s&&!f.request&&(f.request=s),f;if(w instanceof C)throw s&&!w.request&&(w.request=s),w;if(w&&w.name==="TypeError"&&/Load failed|fetch/i.test(w.message)){const B=new C("Network Error",C.ERR_NETWORK,m,s,w&&w.response);throw Object.defineProperty(B,"cause",{__proto__:null,value:w.cause||w,writable:!0,enumerable:!1,configurable:!0}),B}throw C.from(w,w&&w.code,m,s,w&&w.response)}}},Ti=new Map,an=t=>{let e=t&&t.env||{};const{fetch:r,Request:n,Response:i}=e,o=[n,i,r];let c=o.length,l=c,E,d,p=Ti;for(;l--;)E=o[l],d=p.get(E),d===void 0&&p.set(E,d=l?new Map:hi(e)),p=d;return d};an();const er={http:ws,xhr:oi,fetch:{get:an}};h.forEach(er,(t,e)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:e})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:e})}});const Sr=t=>`- ${t}`,Ri=t=>h.isFunction(t)||t===null||t===!1;function fi(t,e){t=h.isArray(t)?t:[t];const{length:r}=t;let n,i;const o={};for(let c=0;c`adapter ${E} `+(d===!1?"is not supported by the environment":"is not available in the build"));let l=r?c.length>1?`since : -`+c.map(Sr).join(` -`):" "+Sr(c[0]):"as no adapter specified";throw new C("There is no suitable adapter to dispatch the request "+l,C.ERR_NOT_SUPPORT)}return i}const cn={getAdapter:fi,adapters:er};function De(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new se(null,t)}function mr(t){return De(t),t.headers=rt.from(t.headers),t.data=we.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),cn.getAdapter(t.adapter||ne.adapter,t)(t).then(function(n){De(t),t.response=n;try{n.data=we.call(t,t.transformResponse,n)}finally{delete t.response}return n.headers=rt.from(n.headers),n},function(n){if(!rn(n)&&(De(t),n&&n.response)){t.response=n.response;try{n.response.data=we.call(t,t.transformResponse,n.response)}finally{delete t.response}n.response.headers=rt.from(n.response.headers)}return Promise.reject(n)})}const me={};["object","boolean","number","function","string","symbol"].forEach((t,e)=>{me[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}});const Nr={};me.transitional=function(e,r,n){function i(o,c){return"[Axios v"+tr+"] Transitional option '"+o+"'"+c+(n?". "+n:"")}return(o,c,l)=>{if(e===!1)throw new C(i(c," has been removed"+(r?" in "+r:"")),C.ERR_DEPRECATED);return r&&!Nr[c]&&(Nr[c]=!0,console.warn(i(c," has been deprecated since v"+r+" and will be removed in the near future"))),e?e(o,c,l):!0}};me.spelling=function(e){return(r,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Ai(t,e,r){if(typeof t!="object"||t===null)throw new C("options must be an object",C.ERR_BAD_OPTION_VALUE);const n=Object.keys(t);let i=n.length;for(;i-- >0;){const o=n[i],c=Object.prototype.hasOwnProperty.call(e,o)?e[o]:void 0;if(c){const l=t[o],E=l===void 0||c(l,o,t);if(E!==!0)throw new C("option "+o+" must be "+E,C.ERR_BAD_OPTION_VALUE);continue}if(r!==!0)throw new C("Unknown option "+o,C.ERR_BAD_OPTION)}}const de={assertOptions:Ai,validators:me},et=de.validators;let Ft=class{constructor(e){this.defaults=e||{},this.interceptors={request:new _r,response:new _r}}async request(e,r){try{return await this._request(e,r)}catch(n){if(n instanceof Error){let i={};Error.captureStackTrace?Error.captureStackTrace(i):i=new Error;const o=(()=>{if(!i.stack)return"";const c=i.stack.indexOf(` -`);return c===-1?"":i.stack.slice(c+1)})();try{if(!n.stack)n.stack=o;else if(o){const c=o.indexOf(` -`),l=c===-1?-1:o.indexOf(` -`,c+1),E=l===-1?"":o.slice(l+1);String(n.stack).endsWith(E)||(n.stack+=` -`+o)}}catch{}}throw n}}_request(e,r){typeof e=="string"?(r=r||{},r.url=e):r=e||{},r=Vt(this.defaults,r);const{transitional:n,paramsSerializer:i,headers:o}=r;n!==void 0&&de.assertOptions(n,{silentJSONParsing:et.transitional(et.boolean),forcedJSONParsing:et.transitional(et.boolean),clarifyTimeoutError:et.transitional(et.boolean),legacyInterceptorReqResOrdering:et.transitional(et.boolean),advertiseZstdAcceptEncoding:et.transitional(et.boolean),validateStatusUndefinedResolves:et.transitional(et.boolean)},!1),i!=null&&(h.isFunction(i)?r.paramsSerializer={serialize:i}:de.assertOptions(i,{encode:et.function,serialize:et.function},!0)),r.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?r.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:r.allowAbsoluteUrls=!0),de.assertOptions(r,{baseUrl:et.spelling("baseURL"),withXsrfToken:et.spelling("withXSRFToken")},!0),r.method=(r.method||this.defaults.method||"get").toLowerCase();let c=o&&h.merge(o.common,o[r.method]);o&&h.forEach(["delete","get","head","post","put","patch","query","common"],T=>{delete o[T]}),r.headers=rt.concat(c,o);const l=[];let E=!0;this.interceptors.request.forEach(function(A){if(typeof A.runWhen=="function"&&A.runWhen(r)===!1)return;E=E&&A.synchronous;const O=r.transitional||$e;O&&O.legacyInterceptorReqResOrdering?l.unshift(A.fulfilled,A.rejected):l.push(A.fulfilled,A.rejected)});const d=[];this.interceptors.response.forEach(function(A){d.push(A.fulfilled,A.rejected)});let p,I=0,_;if(!E){const T=[mr.bind(this),void 0];for(T.unshift(...l),T.push(...d),_=T.length,p=Promise.resolve(r);I<_;)p=p.then(T[I++],T[I++]);return p}_=l.length;let R=r;for(;I<_;){const T=l[I++],A=l[I++];try{R=T(R)}catch(O){A.call(this,O);break}}try{p=mr.call(this,R)}catch(T){return Promise.reject(T)}for(I=0,_=d.length;I<_;)p=p.then(d[I++],d[I++]);return p}getUri(e){e=Vt(this.defaults,e);const r=sn(e.baseURL,e.url,e.allowAbsoluteUrls,e);return Zr(r,e.params,e.paramsSerializer)}};h.forEach(["delete","get","head","options"],function(e){Ft.prototype[e]=function(r,n){return this.request(Vt(n||{},{method:e,url:r,data:n&&h.hasOwnProp(n,"data")?n.data:void 0}))}});h.forEach(["post","put","patch","query"],function(e){function r(n){return function(o,c,l){return this.request(Vt(l||{},{method:e,headers:n?{"Content-Type":"multipart/form-data"}:{},url:o,data:c}))}}Ft.prototype[e]=r(),e!=="query"&&(Ft.prototype[e+"Form"]=r(!0))});let Oi=class un{constructor(e){if(typeof e!="function")throw new TypeError("executor must be a function.");let r;this.promise=new Promise(function(o){r=o});const n=this;this.promise.then(i=>{if(!n._listeners)return;let o=n._listeners.length;for(;o-- >0;)n._listeners[o](i);n._listeners=null}),this.promise.then=i=>{let o;const c=new Promise(l=>{n.subscribe(l),o=l}).then(i);return c.cancel=function(){n.unsubscribe(o)},c},e(function(o,c,l){n.reason||(n.reason=new se(o,c,l),r(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const r=this._listeners.indexOf(e);r!==-1&&this._listeners.splice(r,1)}toAbortSignal(){const e=new AbortController,r=n=>{e.abort(n)};return this.subscribe(r),e.signal.unsubscribe=()=>this.unsubscribe(r),e.signal}static source(){let e;return{token:new un(function(i){e=i}),cancel:e}}};function Ii(t){return function(r){return t.apply(null,r)}}function Si(t){return h.isObject(t)&&t.isAxiosError===!0}const ke={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(ke).forEach(([t,e])=>{ke[e]=t});function En(t){const e=new Ft(t),r=Vr(Ft.prototype.request,e);return h.extend(r,Ft.prototype,e,{allOwnKeys:!0}),h.extend(r,e,null,{allOwnKeys:!0}),r.create=function(i){return En(Vt(t,i))},r}const Y=En(ne);Y.Axios=Ft;Y.CanceledError=se;Y.CancelToken=Oi;Y.isCancel=rn;Y.VERSION=tr;Y.toFormData=Se;Y.AxiosError=C;Y.Cancel=Y.CanceledError;Y.all=function(e){return Promise.all(e)};Y.spread=Ii;Y.isAxiosError=Si;Y.mergeConfig=Vt;Y.AxiosHeaders=rt;Y.formToJSON=t=>en(h.isHTMLForm(t)?new FormData(t):t);Y.getAdapter=cn.getAdapter;Y.HttpStatusCode=ke;Y.default=Y;const{Axios:co,AxiosError:uo,CanceledError:Eo,isCancel:lo,CancelToken:_o,VERSION:po,all:ho,Cancel:To,isAxiosError:Ro,spread:fo,toFormData:Ao,AxiosHeaders:Oo,HttpStatusCode:Io,formToJSON:So,getAdapter:mo,mergeConfig:No,create:go}=Y;(function(t){return t.WIN_10="Windows 10",t.WIN_81="Windows 8.1",t.WIN_8="Windows 8",t.WIN_7="Windows 7",t.WIN_VISTA="Windows Vista",t.WIN_SERVER_2003="Windows Server 2003",t.WIN_XP="Windows XP",t.WIN_2000="Windows 2000",t.ANDROID="Android",t.HARMONY_OS="HarmonyOS",t.OPEN_BSD="Open BSD",t.SUN_OS="Sun OS",t.LINUX="Linux",t.IOS="iOS",t.MAC_OS="Mac OS",t.CHROMIUM_OS="Chromium OS",t.QNX="QNX",t.UNIX="UNIX",t.BEOS="BeOS",t.OS_2="OS/2",t.SEARCH_BOT="Search Bot",t})({});(function(t){return t.CHROME="Chrome",t.SAFARI="Safari",t.EDGE="Edge",t.FIREFOX="Firefox",t.OPERA="OPR",t.QQ="QQBrowser",t.WECHAT="MicroMessenger",t})({});const mi=new Nn;mi.getResult();function Ni(){return!!window.navigator.userAgent.includes("AgoraWebView")}function gr(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r1&&arguments[1]!==void 0?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0;super(r),G(this,"code",void 0),G(this,"message",void 0),G(this,"data",void 0),G(this,"name","AgoraRTCException"),this.code=e,this.message="AgoraRTCError ".concat(this.code,": ").concat(r),this.data=n}toString(){return this.data?"".concat(this.message,` -data: `).concat(JSON.stringify(this.data)):this.message}print(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error",r=arguments.length>1?arguments[1]:void 0;return e==="error"&&(r||console).error(this.toString()),e==="warning"&&(r||console).warn(this.toString()),this}throw(e){throw this.print("error",e),this}}function gi(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1e4;if(tn||(!(arguments.length>4&&arguments[4]!==void 0)||arguments[4])&&!function(i){return typeof i=="number"&&i%1==0}(t))throw new ot(lt.INVALID_PARAMS,"invalid ".concat(e,": the value range is [").concat(r,", ").concat(n,"]. integer only"))}function ae(t,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:255,i=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(t==null)throw new ot(lt.INVALID_PARAMS,"".concat(e||"param"," cannot be empty"));if(!Ci(t,r,n,i))throw new ot(lt.INVALID_PARAMS,"Invalid ".concat(e||"string param",": Length of the string: [").concat(r,",").concat(n,"].").concat(i?" ASCII characters only.":""))}function Ci(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:255,n=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return typeof t=="string"&&t.length<=r&&t.length>=e&&(!n||function(i){if(typeof i!="string")return!1;for(let o=0;o255)return!1}return!0}(t))}var $t=function(t){return t.COVERED="COVERED",t.POSITION="POSITION",t.SIZE="SIZE",t.STYLE="STYLE",t}($t||{}),We=function(t){return t.UNMOUNTED="UNMOUNTED",t.INVALID_HTML_ELEMENT="INVALID_HTML_ELEMENT",t}(We||{});new class{constructor(){G(this,"_clientSize",null),G(this,"getClientWidth",()=>document.documentElement?document.documentElement.clientWidth:document.body.clientWidth),G(this,"getClientHeight",()=>document.documentElement?document.documentElement.clientHeight:document.body.clientHeight),G(this,"getStyle",t=>window.getComputedStyle(t,null)),G(this,"checkCssVisibleProperty",t=>{let e=!0;const r=this.getStyle(t),n=r.display,i=r.visibility,o=r.opacity,c=r.filter;return(n==="none"||["hidden","collapse"].includes(i)||Number(o)<.1)&&(e=!1),e?(c&&c.split(" ").filter(l=>{const E=l.split("(")[0];return["brightness","blur","opacity"].includes(E)}).map(l=>{const E=br(l.split(/\(|\)/),2),d=E[0],p=E[1];return[d,Number(p.match(/^[0-9\.]+/))]}).forEach(l=>{const E=br(l,2),d=E[0],p=E[1];switch(d){case"brightness":(p<.1||p>3)&&(e=!1);break;case"blur":p>3&&(e=!1);break;case"opacity":p<.1&&(e=!1)}}),e):!1}),G(this,"checkPropertyUpToAllParentNodes",(t,e)=>{let r=!0,n=!0;const i=c=>e(c);let o=t;for(;o&&n;)i(o)||(r=!1,n=!1),o=o.parentElement,o||(n=!1);return r}),G(this,"checkActualCssVisibleIncludeInherit",t=>this.checkPropertyUpToAllParentNodes(t,this.checkCssVisibleProperty)),G(this,"getSizeAboutClient",t=>{const e=t.getBoundingClientRect(),r=e.width,n=e.height,i=e.left,o=e.right,c=e.top,l=e.bottom,E=this.getClientWidth(),d=this.getClientHeight();return{width:r,height:n,left:i,right:o,top:c,bottom:l,clientWidth:E,clientHeight:d,clientMin:Math.min(E,d)}}),G(this,"checkActualSize",()=>{const t=this._clientSize,e=t.width,r=t.height,n=t.clientMin;return this.checkSizeIsVisible(e,r,n)}),G(this,"elementFromPoint",(t,e)=>document.elementFromPoint?document.elementFromPoint(t,e):null),G(this,"checkCoverForAPoint",(t,e,r)=>{const n=this.elementFromPoint(t,e);return n!==null&&n!==r}),G(this,"getPointPositionList",()=>{const t=this._clientSize,e=t.width,r=t.height,n=t.left,i=t.top,o=e/6,c=r/6,l=[],E=10**6;for(let d=0;d<5;d++)for(let p=0;p<5;p++){const I=(n*E+(d===0?.1:d===4?(o*d*E-1e5)/E:o*d)*E)/E,_=(i*E+(p===0?.1:p===4?(c*p*E-1e5)/E:c*p)*E)/E;l.push({x:I,y:_})}return[...l]}),G(this,"checkElementCover",t=>this.getPointPositionList().map(e=>this.checkCoverForAPoint(e.x,e.y,t)).filter(e=>!!e).length>6),G(this,"checkSizeIsVisible",(t,e,r)=>(t>50||r/t<=10)&&(e>50||r/e<=10)),G(this,"checkSizeOfPartInClient",()=>{const t=this._clientSize,e=t.left,r=t.right,n=t.top,i=t.bottom,o=t.clientHeight,c=t.clientWidth,l=t.clientMin;let E,d,p,I;if(e<0)E=0;else{if(!(e(this._clientSize=null,{visible:!1,reason:t})),G(this,"checkOneElementVisible",t=>{if(t instanceof HTMLElement){if(this.checkElementIsMountedOnDom(t)){if(this.checkActualCssVisibleIncludeInherit(t)){if(this._clientSize=this.getSizeAboutClient(t),this.checkElementCover(t))return this.returnHiddenResult($t.COVERED);{const e=this.checkActualSize(),r=this.checkSizeOfPartInClient();return e&&!r?this.returnHiddenResult($t.POSITION):e?(this._clientSize=null,{visible:!0}):this.returnHiddenResult($t.SIZE)}}return this.returnHiddenResult($t.STYLE)}return this.returnHiddenResult(We.UNMOUNTED)}return this.returnHiddenResult(We.INVALID_HTML_ELEMENT)}),G(this,"checkElementIsMountedOnDom",t=>this.checkPropertyUpToAllParentNodes(t,e=>e.nodeName.toUpperCase()!=="HTML"?e.parentElement!==null:!!document.documentElement))}};function bi(t){return new TextEncoder().encode(t)}const Lr=function(t,e){const r=new Uint8Array(t.byteLength+e.byteLength);return r.set(new Uint8Array(t),0),r.set(new Uint8Array(e),t.byteLength),r};class ln{constructor(){G(this,"_events",{}),G(this,"addListener",this.on)}getListeners(e){return this._events[e]?this._events[e].map(r=>r.listener):[]}on(e,r){this._events[e]||(this._events[e]=[]);const n=this._events[e];this._indexOfListener(n,r)===-1&&n.push({listener:r,once:!1})}once(e,r){this._events[e]||(this._events[e]=[]);const n=this._events[e];this._indexOfListener(n,r)===-1&&n.push({listener:r,once:!0})}off(e,r){if(!this._events[e])return;const n=this._events[e],i=this._indexOfListener(n,r);i!==-1&&n.splice(i,1),this._events[e].length===0&&delete this._events[e]}removeAllListeners(e){e?delete this._events[e]:this._events={}}emit(e){this._events[e]||(this._events[e]=[]);const r=this._events[e].map(c=>c);for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o1?r-1:0),i=1;i{o.once&&this.off(e,o.listener);try{o.listener.apply(this,n)}catch(c){console.error("safeEmit event:".concat(e," error ").concat(c==null?void 0:c.toString()))}})}_indexOfListener(e,r){let n=e.length;for(;n--;)if(e[n].listener===r)return n;return-1}}let Li=function(t){return t.CREATE_CLIENT="createClient",t.CHECK_SYSTEM_REQUIREMENTS="checkSystemRequirements",t.SET_AREA="setArea",t.PRELOAD="PRELOAD",t.CHECK_VIDEO_TRACK_IS_ACTIVE="checkVideoTrackIsActive",t.CHECK_AUDIO_TRACK_IS_ACTIVE="checkAudioTrackIsActive",t.CREATE_MIC_AUDIO_TRACK="createMicrophoneAudioTrack",t.CREATE_CUSTOM_AUDIO_TRACK="createCustomAudioTrack",t.CREATE_BUFFER_AUDIO_TRACK="createBufferSourceAudioTrack",t.CREATE_CAM_VIDEO_TRACK="createCameraVideoTrack",t.CREATE_CUSTOM_VIDEO_TRACK="createCustomVideoTrack",t.CREATE_MIC_AND_CAM_TRACKS="createMicrophoneAndCameraTracks",t.CREATE_SCREEN_VIDEO_TRACK="createScreenVideoTrack",t.SET_ENCRYPTION_CONFIG="Client.setEncryptionConfig",t.START_PROXY_SERVER="Client.startProxyServer",t.STOP_PROXY_SERVER="Client.stopProxyServer",t.SET_PROXY_SERVER="Client.setProxyServer",t.SET_TURN_SERVER="Client.setTurnServer",t.SET_CLIENT_ROLE="Client.setClientRole",t.SET_LOW_STREAM_PARAMETER="Client.setLowStreamParameter",t.ENABLE_DUAL_STREAM="Client.enableDualStream",t.DISABLE_DUAL_STREAM="Client.disableDualStream",t.JOIN="Client.join",t.LEAVE="Client.leave",t.PUBLISH="Client.publish",t.UNPUBLISH="Client.unpublish",t.SUBSCRIBE="Client.subscribe",t.MASS_SUBSCRIBE="Client.massSubscribe",t.MASS_UNSUBSCRIBE="Client.massUnsubscribe",t.UNSUBSCRIBE="Client.unsubscribe",t.RENEW_TOKEN="Client.renewToken",t.SET_REMOTE_VIDEO_STREAM_TYPE="Client.setRemoteVideoStreamType",t.SET_STREAM_FALLBACK_OPTION="Client.setStreamFallbackOption",t.ENABLE_AUDIO_VOLUME_INDICATOR="Client.enableAudioVolumeIndicator",t.SEND_CUSTOM_REPORT_MESSAGE="Client.sendCustomReportMessage",t.INSPECT_VIDEO_CONTENT="Client.inspectVideoContent",t.STOP_INSPECT_VIDEO_CONTENT="Client.stopInspectVideoContent",t.JOIN_FALLBACK_TO_PROXY="Client._joinFallbackToProxy",t.ON_LIVE_STREAM_WARNING="Client.onLiveStreamWarning",t.ON_LIVE_STREAM_ERROR="Client.onLiveStreamingError",t.START_LIVE_STREAMING="Client.startLiveStreaming",t.SET_LIVE_TRANSCODING="Client.setLiveTranscoding",t.STOP_LIVE_STREAMING="Client.stopLiveStreaming",t.START_CHANNEL_MEDIA_RELAY="Client.startChannelMediaRelay",t.UPDATE_CHANNEL_MEDIA_RELAY="Client.updateChannelMediaRelay",t.STOP_CHANNEL_MEDIA_RELAY="Client.stopChannelMediaRelay",t.REQUEST_CONFIG_DISTRIBUTE="_config-distribute-request",t.SET_CONFIG_DISTRIBUTE="_configDistribute",t.LOCAL_TRACK_SET_MUTED="LocalTrack.setMute",t.LOCAL_AUDIO_TRACK_PLAY="LocalAudioTrack.play",t.LOCAL_AUDIO_TRACK_PLAY_IN_ELEMENT="LocalAudioTrack.playInElement",t.LOCAL_AUDIO_TRACK_STOP="LocalAudioTrack.stop",t.LOCAL_AUDIO_TRACK_SET_VOLUME="LocalAudioTrack.setVolume",t.MIC_AUDIO_TRACK_SET_DEVICE="MicrophoneAudioTrack.setDevice",t.BUFFER_AUDIO_TRACK_START="BufferSourceAudioTrack.startProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_STOP="BufferSourceAudioTrack.stopProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_PAUSE="BufferSourceAudioTrack.pauseProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_RESUME="BufferSourceAudioTrack.resumeProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_SEEK="BufferSourceAudioTrack.seekAudioBuffer",t.LOCAL_VIDEO_TRACK_PLAY="LocalVideoTrack.play",t.LOCAL_VIDEO_TRACK_STOP="LocalVideoTrack.stop",t.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE="LocalVideoTrack.getVideoElementVisibleStatus",t.LOCAL_VIDEO_TRACK_BEAUTY="LocalVideoTrack.setBeautyEffect",t.LOCAL_VIDEO_SEND_SEI_DATA="LocalVideoTrack.sendSeiData",t.CAM_VIDEO_TRACK_SET_DEVICE="CameraVideoTrack.setDevice",t.CAM_VIDEO_TRACK_SET_ENCODER_CONFIG="CameraVideoTrack.setEncoderConfiguration",t.REMOTE_VIDEO_TRACK_PLAY="RemoteVideoTrack.play",t.REMOTE_VIDEO_TRACK_STOP="RemoteVideoTrack.stop",t.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE="RemoteVideoTrack.getVideoElementVisibleStatus",t.REMOTE_AUDIO_TRACK_PLAY="RemoteAudioTrack.play",t.REMOTE_AUDIO_TRACK_STOP="RemoteAudioTrack.stop",t.REMOTE_AUDIO_SET_VOLUME="RemoteAudioTrack.setVolume",t.REMOTE_AUDIO_SET_OUTPUT_DEVICE="RemoteAudioTrack.setOutputDevice",t.GET_MEDIA_STREAM_TRACK="Track.getMediaStreamTrack",t.STREAM_TYPE_CHANGE="streamTypeChange",t.CONNECTION_STATE_CHANGE="connectionStateChange",t.LOAD_CONFIG_FROM_LOCALSTORAGE="loadConfigFromLocalStorage",t.IMAGE_MODERATION_UPLOAD="imageModerationUpload",t.REPUB_AFTER_PC_CONNECTED="repubAfterPCConnected",t.PRELOAD_MEDIA_FAILED="preloadMediaFailed",t.MISMATCH_DTLS_PARAMETERS="mismatchDtlsParameters",t.MISMATCH_ICE_PARAMETERS="mismatchIceParameters",t.VOS_FALLBACK_CN="vosFallbackCN",t.DATACHANNEL_FAILBACK="datachannelFailback",t}({}),Re=function(t){return t.TRACER="tracer",t}({});(function(t){return t[t.AUDIENCE_LEVEL_LOW_LATENCY=1]="AUDIENCE_LEVEL_LOW_LATENCY",t[t.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY=2]="AUDIENCE_LEVEL_ULTRA_LOW_LATENCY",t[t.AUDIENCE_LEVEL_SYNC_LATENCY=3]="AUDIENCE_LEVEL_SYNC_LATENCY",t})({});(function(t){return t.LEAVE="LEAVE",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.UID_BANNED="UID_BANNED",t.FALLBACK="FALLBACK",t.IP_BANNED="IP_BANNED",t.CHANNEL_BANNED="CHANNEL_BANNED",t.LICENSE_MISSING="LICENSE_MISSING",t.LICENSE_EXPIRED="LICENSE_EXPIRED",t.LICENSE_MINUTES_EXCEEDED="LICENSE_MINUTES_EXCEEDED",t.LICENSE_PERIOD_INVALID="LICENSE_PERIOD_INVALID",t.LICENSE_MULTIPLE_SDK_SERVICE="LICENSE_MULTIPLE_SDK_SERVICE",t.LICENSE_ILLEGAL="LICENSE_ILLEGAL",t.TOKEN_EXPIRE="TOKEN_EXPIRE",t.FALLBACK_TO_HLS="FALLBACK_TO_HLS",t.UID_CONFLICT="UID_CONFLICT",t})({});(function(t){return t[t.AUTO_SIMULCAST_STREAM=-1]="AUTO_SIMULCAST_STREAM",t[t.DISABLE_SIMULCAST_STREM=0]="DISABLE_SIMULCAST_STREM",t[t.ENABLE_SIMULCAST_STREAM=1]="ENABLE_SIMULCAST_STREAM",t})({});(function(t){return t.PEERCONNECTION_STATE_CHANGE="peerconnection-state-change",t.AUDIO_METADATA="audio-metadata",t.AUDIO_PTS="audio-pts",t.CONNECTION_STATE_CHANGE="connection-state-change",t.MEDIA_RECONNECT_START="media-reconnect-start",t.MEDIA_RECONNECT_END="media-reconnect-end",t.IS_USING_CLOUD_PROXY="is-using-cloud-proxy",t.USER_JOINED="user-joined",t.USER_LEAVED="user-left",t.USER_PUBLISHED="user-published",t.USER_UNPUBLISHED="user-unpublished",t.USER_INFO_UPDATED="user-info-updated",t.CLIENT_BANNED="client-banned",t.CHANNEL_MEDIA_RELAY_STATE="channel-media-relay-state",t.CHANNEL_MEDIA_RELAY_EVENT="channel-media-relay-event",t.VOLUME_INDICATOR="volume-indicator",t.CRYPT_ERROR="crypt-error",t.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="token-privilege-will-expire",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="token-privilege-did-expire",t.NETWORK_QUALITY="network-quality",t.STREAM_TYPE_CHANGED="stream-type-changed",t.STREAM_FALLBACK="stream-fallback",t.RECEIVE_METADATA="receive-metadata",t.STREAM_MESSAGE="stream-message",t.LIVE_STREAMING_ERROR="live-streaming-error",t.LIVE_STREAMING_WARNING="live-streaming-warning",t.EXCEPTION="exception",t.ERROR="error",t.P2P_LOST="p2p_lost",t.JOIN_FALLBACK_TO_PROXY="join-fallback-to-proxy",t.CHANNEL_FALLBACK_TO_WEBSOCKET="channel-fallback-to-websocket",t.MEDIA_CONNECTION_TYPE_CHANGE="media-connection-type-change",t.PUBLISHED_USER_LIST="published-user-list",t.USER_LIST="user-list",t.CONTENT_INSPECT_CONNECTION_STATE_CHANGE="content-inspect-connection-state-change",t.CONTENT_INSPECT_ERROR="content-inspect-error",t.CONTENT_INSPECT_RESULT="content-inspect-result",t.IMAGE_MODERATION_CONNECTION_STATE_CHANGE="image-moderation-connection-state-change",t.FALLBACK_TO_HLS="fallback-to-hls",t.FIRST_VIDEO_BUFFER_READY="first-video-buffer-ready",t.FIRST_VIDEO_PRE_RENDER="first-video-pre-render",t.AV1_DECODABLE_RESULT="av1-decodable-result",t})({});(function(t){return t.CONFIG="config",t.VOSERROR="vos_error",t.AP_ERROR="ap_error",t})({});(function(t){return t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.MULTI_IP="MULTI_IP",t.TIMEOUT="TIMEOUT",t.OFFLINE="OFFLINE",t.LEAVE="LEAVE",t.P2P_FAILED="P2P_FAILED",t.FALLBACK="FALLBACK",t.REGIONAL_DISTRIBUTION="REGIONAL_DISTRIBUTION",t})({});let Dt=function(t){return t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({}),ce=function(t){return t.NETWORK_STATE_CHANGE="NETWORK_STATE_CHANGE",t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({});const Zt=new class extends ln{set networkState(t){this.emit(ce.NETWORK_STATE_CHANGE,t,this._networkState),t===Dt.ONLINE?this.emit(ce.ONLINE):t===Dt.OFFLINE&&(this.onlineWaiter=new Promise(e=>{this.once(ce.ONLINE,()=>{this.onlineWaiter=void 0,e(Dt.ONLINE)})}),this.emit(ce.OFFLINE)),this._networkState=t}get networkState(){return this._networkState}get isOnline(){return this._networkState===Dt.ONLINE}constructor(){super(),G(this,"_moduleName","network-indicator"),G(this,"_networkState",Dt.ONLINE),G(this,"onlineWaiter",void 0),window.addEventListener("online",()=>{this.networkState=Dt.ONLINE}),window.addEventListener("offline",()=>{this.networkState=Dt.OFFLINE})}},Z=[];for(let t=0;t<256;++t)Z.push((t+256).toString(16).slice(1));const wr=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);let Pe;const wi=new Uint8Array(16);function Di(t,e,r){var n,i,o,c;const l=(n=(i=(t=t||{}).random)!==null&&i!==void 0?i:(o=(c=t).rng)===null||o===void 0?void 0:o.call(c))!==null&&n!==void 0?n:function(){if(!Pe){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Pe=crypto.getRandomValues.bind(crypto)}return Pe(wi)}();if(l.length<16)throw new Error("Random bytes length must be >= 16");return l[6]=15&l[6]|64,l[8]=63&l[8]|128,function(E){let d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(Z[E[d+0]]+Z[E[d+1]]+Z[E[d+2]]+Z[E[d+3]]+"-"+Z[E[d+4]]+Z[E[d+5]]+"-"+Z[E[d+6]]+Z[E[d+7]]+"-"+Z[E[d+8]]+Z[E[d+9]]+"-"+Z[E[d+10]]+Z[E[d+11]]+Z[E[d+12]]+Z[E[d+13]]+Z[E[d+14]]+Z[E[d+15]]).toLowerCase()}(l)}function Pi(){return!wr||e||t?Di(t,e):wr();var t,e}function Ht(t){return window.TextEncoder?new TextEncoder().encode(t).length:t.length}function yi(t){let e=0;return(/DingTalk/i.test(navigator.userAgent)||/AliApp/i.test(navigator.userAgent))&&t.realFormData&&(t=t.realFormData),t.forEach(r=>{e+=typeof r=="string"?Ht(r):r.size}),e+138}function Mi(t,e,r){const n=t[e];if(!n||typeof n!="string")return[t];t[e]="";const i=Ht(JSON.stringify(t));let o=0;const c=[];let l=0;for(let E=0;E{window.setTimeout(e,t)})}function _n(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:7,e=arguments.length>1?arguments[1]:void 0;const r=Math.random().toString(16).substr(2,t).toLowerCase();return r.length===t?"".concat(e).concat(r):"".concat(e).concat(r)+_n(t-r.length,"")}function Ui(){let t,e=!1;try{t=Pi().replaceAll("-","")}catch{e=!0}return!e&&t&&t.length===32||(t=_n(32,"")),t.toUpperCase()}const Dr=new class{constructor(){G(this,"fnMap",new Map)}throttleByKey(t,e,r,n){for(var i=arguments.length,o=new Array(i>4?i-4:0),c=4;c{const d=this.fnMap.get(e);d&&d.fn(...d.args),this.fnMap.delete(e)},r);this.fnMap.set(e,{fn:t,threshold:r,timer:E,args:o,skipFn:n})}else l.skipFn&&l.skipFn(...l.args),this.fnMap.set(e,dt(dt({},l),{},{fn:t,args:o,skipFn:n}))}else{const l=window.setTimeout(()=>{const E=this.fnMap.get(e);E&&E.fn(...E.args),this.fnMap.delete(e)},r);this.fnMap.set(e,{fn:t,threshold:r,timer:l,args:o,skipFn:n})}}},Pr=Dr.throttleByKey.bind(Dr),Ge={timeout:500,timeoutFactor:1.5,maxRetryCount:1/0,maxRetryTimeout:1e4};function vi(t,e,r,n){const i=Object.assign({},Ge,n);let o=i.timeout;const c=async()=>{await function(d){return new Promise(p=>{window.setTimeout(p,d)})}(o),o*=i.timeoutFactor,o=Math.min(i.maxRetryTimeout,o)};let l=!1;const E=new Promise(async(d,p)=>{e=e||(()=>!1),r=r||(()=>!0);for(let I=0;Il=!0,E}let ue=0,Me=0;function He(t,e,r,n){return new Promise((i,o)=>{e.responseType=e.responseType||"json",e.data&&!r?(e.data=JSON.stringify(e.data),ue+=Ht(e.data)):r&&(e.data.size?ue+=e.data.size:e.data instanceof FormData?ue+=yi(e.data):ue+=Ht(JSON.stringify(e.data))),e.headers=e.headers||{},e.headers["Content-Type"]=e.headers["Content-Type"]||"application/json",e.method="POST",e.url=t,Y.request(e).then(c=>{typeof c.data=="string"?Me+=Ht(c.data):c.data instanceof ArrayBuffer||c.data instanceof Uint8Array?Me+=c.data.byteLength:Me+=Ht(JSON.stringify(c.data)),i(c.data)}).catch(c=>{Y.isCancel(c)?o(new ot(lt.OPERATION_ABORTED,"cancel token canceled")):c.code==="ECONNABORTED"?o(new ot(lt.NETWORK_TIMEOUT,c.message)):c.response?o(new ot(lt.NETWORK_RESPONSE_ERROR,c.response.status)):o(new ot(lt.NETWORK_ERROR,c.message))})})}async function xi(t,e){const r=new Blob([e.data],{type:"buffer"});return await He(t,dt(dt({},e),{},{data:r,headers:{"Content-Type":"application/octet-stream"}}),!0)}function Fi(t){if(t.match(/[0-9]+\.[0-9]+\.[0-9]+$/))return t;const e=t.match(/([0-9]+\.[0-9]+\.[0-9]+)\-([0-9]+)/);if(e&&e[1]&&e[2]){const r=e[1],n=e[2];return"".concat(r,".").concat(n)}return"4.0.0.999"}(function(t){return t.BANDWIDTH="bandwidth",t.CPU="cpu",t.NONE="none",t.OTHER="other",t})({});(function(t){return t.L1T1="L1T1",t.L1T2="L1T2",t.L1T3="L1T3",t.L1T3_KEY="L1T3_KEY",t.L2T1_KEY="L2T1_KEY",t.L2T2_KEY="L2T2_KEY",t.L2T3_KEY="L2T3_KEY",t.L3T1_KEY="L3T1_KEY",t.L3T2_KEY="L3T2_KEY",t.L3T3_KEY="L3T3_KEY",t})({});(function(t){return t[t.new=0]="new",t[t.connecting=1]="connecting",t[t.connected=2]="connected",t[t.disconnected=3]="disconnected",t[t.failed=4]="failed",t[t.closed=5]="closed",t})({});(function(t){return t.CERTIFICATE="certificate",t.CODEC="codec",t.CANDIDATE_PAIR="candidate-pair",t.LOCAL_CANDIDATE="local-candidate",t.REMOTE_CANDIDATE="remote-candidate",t.INBOUND="inbound-rtp",t.TRACK="track",t.OUTBOUND="outbound-rtp",t.PC="peer-connection",t.REMOTE_INBOUND="remote-inbound-rtp",t.REMOTE_OUTBOUND="remote-outbound-rtp",t.TRANSPORT="transport",t.CSRC="csrc",t.DATA_CHANNEL="data-channel",t.STREAM="stream",t.SENDER="sender",t.RECEIVER="receiver",t})({});var Bi=function(t){return t[t.kNone=1]="kNone",t[t.kMillisecondsFromSeconds=1e3]="kMillisecondsFromSeconds",t[t.kBytesToBits=8]="kBytesToBits",t}(Bi||{});const yr="websdk_ng_install_id";function Ue(){try{if(P("INSTALL_ID"))return P("INSTALL_ID");let t=window.localStorage.getItem(yr);return t||(t=Ui(),window.localStorage.setItem(yr,t)),Ke("INSTALL_ID",t),t}catch{return}}const dn=Fi("4.24.5"),pn=function(){try{return JSON.parse("true")===!0}catch{return!0}}(),Vi=["CHINA","GLOBAL"];(function(t){return t.Default="default",t.Auto="auto",t.Relay="relay",t.SdRtn="sd-rtn",t})({});const ki=function(){const t="us".concat("erna","me"),e="pa".concat("sswo","rd"),r=["t","s","t"];r.splice(1,0,"e");const n=r.join(""),i=[];for(let l=0;l<6;l++)i.push("1");const o=i.join(""),c={};return c[t]=n,c[e]=o,Object.assign(c,{turnServerURL:"",tcpport:3433,udpport:3478,forceturn:!1})}();window.DEFAULT_TURN_CONFIG=ki;const Wi={ENABLE_PUBLISHED_USER_LIST:!0,ENABLE_USER_LIST:!1,MAX_SUBSCRIPTION:50,SUBSCRIBE_AUDIO_FILTER_TOPN:void 0,ENABLE_PUBLISH_AUDIO_FILTER:void 0,ENABLE_USER_LICENSE_CHECK:!0,DISABLE_FEC:void 0,ENABLE_NTP_REPORT:!0,ENABLE_INSTANT_VIDEO:!1,ENABLE_USER_AUTO_REBALANCE_CHECK:!0,ENABLE_LOSSBASED_BWE:!0,ENABLE_AUT_CC:!0,FORCE_ENABLE_AUT_CC:!1,ENABLE_CC_FALLBACK:void 0,SUBSCRIBE_TWCC:!0,PUBLISH_TWCC:!1,ENABLE_SVC_DEFAULT_CODECS:["H264","VP8","VP9","AV1"],SVC:[],ENABLE_FULL_LINK_AV_SYNC:!1,SVC_MODE:null,ENABLE_AUT_FEEDBACK:!0,SVC_EXTENDED:["VP9"],ENABLE_JOIN_V4:!1,ENABLE_AP_COMPRESS:!0},Gi={MIN_FRAME_RATE:1,MAX_FRAME_RATE:30,MAX_THRESHOLD_FRAMERATE:30,BITRATE_MIN_THRESHOLD:100,BITRATE_MAX_THRESHOLD:100,MAX_SCALE:5,BWE_SCALE_UP_THRESHOLD:.6,BWE_SCALE_DOWN_THRESHOLD:.6,PERF_SCALE_UP_THRESHOLD:.7,PERF_SCALE_DOWN_THRESHOLD:.6,MOTION_RESOLUTION_FACTOR:.8,MOTION_BITRATE_FACTOR:.6,DETAIL_FRAMERATE_FACTOR:.8,DETAIL_BITRATE_FACTOR:.6,BALANCE_RESOLUTION_FACTOR:.9,BALANCE_FRAMERATE_FACTOR:.9,BALANCE_BITRATE_FACTOR:.6,OVERUSE_TIMES_THRESHOLD:10,UNDERUSE_TIMES_THRESHOLD:40},Hi={INSTALL_ID:""},Ki="v4.24.5-0-g604b18ede-dirty(6/25/2026, 6:06:10 PM)",ji={ENABLE_EVENT_REPORT:!0,UPLOAD_LOG:!1,ENABLE_AG_ADAPTATION:!0,FORCE_AG_HIGH_FRAMERATE:!1,FORCE_SUPPORT_AG_ADAPTATION:!1,ENCODER_CONFIG_LIMIT:{},CAMERA_CAPTURE_CONFIG:void 0,ENABLE_PRELOAD:!0,NEW_ICE_RESTART:!0,ICE_RESTART_INTERVAL:1e4,RESTART_SEQUENCE:["udp_tcp_relay","relay"],FIRST_TCP_CANDIDATE:!1,MAX_CONFIG_RETRY:10,ENABLE_CONFIG_RESTORE:!1,CONFIG_RESTORE_ERROR_API:["createClient","Client.join"],CONFIG_ERROR_MONITOR:["INVALID_OPERATION","UNEXPECTED_ERROR"],BLOCKED_CONFIG_MAX_TIME:864e5,FIRST_TCP_CANDIDATE_INTERVAL:1e3,TURN_DOMAIN:"edge.agora.io",TURN_DOMAINS:["edge.agora.io"],USE_TURN_IP:!0,NEW_TURN_MODE:4,NEW_FORCE_TURN:!1,USE_NEW_RENDER_FREEZE_TIME:!0,FLS_FALLBACK_TIMEOUT:3e4,RTE_DETAIL_REPORT_INTERVAL:6e4,ENCODE_EXCEPTION_TIMES:5,ENABLE_ENCODE_EXCEPTION:!0,ENCODE_EXCEPTION_VALIDATE_CODEC:["h264"],VIDEO_ENCODER_CONFIG_LIST:[{width:240,height:180},{width:320,height:240},{width:400,height:300},{width:480,height:360},{width:560,height:420},{width:640,height:480}],DELETE_NEQ_AFTER_USER_LEAVE:!0,UPDATE_RTP_CAP_IN_HOST:!1,IOS_BG_TAG:!0,IOS_AUTO_RESTART_BG_TAG:!0,IGNORE_UID_CHECK:!1,ENABLE_UP_SPS_PPS:!1,ENABLE_DOWN_SPS_PPS:!0,NO_EDGES_RETRY:!0,BUFFER_READY_FRAMES:3,FLS_SYNC_AV_PLAY_LIMIT:0,FLS_BUFFER_WAIT_TIME:1500,VOS_CONFIGURE:void 0,ENABLE_QUALITY_FALLBACK:!1,QUALITY_FALLBACK_REHEARSAL:!0,ENABLE_FLS_AV1_FIRST:!1,ENABLE_AP_MULTI_IP:!0,FLS_ENABLE_AV1_DETECT:!0,FLS_ENABLE_AV1_DECODE_DETECT:!0,ENABLE_SDP_ENDPOINT_LOG:!1,REMOTE_VIDEO_FREEZE_TIME_VERSION:2},H=dt(dt(dt(dt({},ji),{},{PROCESS_ID:"",ENCRYPT_AES:!0,AREAS:Vi,WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-web-2.ap.sd-rtn.com","cds-ap-web-3.agora.io","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-web-2.ap.sd-rtn.com","sua-ap-web-3.agora.io","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-ap-web-1.agora.io","uap-web-2.ap.sd-rtn.com","uap-ap-web-3.agora.io","uap-web-4.ap.sd-rtn.com"],LOG_UPLOAD_SERVER:"logservice.agora.io",EVENT_REPORT_DOMAIN:"statscollector-1.agora.io",EVENT_REPORT_BACKUP_DOMAIN:"web-2.statscollector.sd-rtn.com",GATEWAY_ADDRESS:[],GATEWAY_WSS_ADDRESS:"",LIVE_STREAMING_ADDRESS:"",HTTP_CONNECT_TIMEOUT:5e3,SIGNAL_REQUEST_TIMEOUT:1e4,REPORT_STATS:!0,NOT_REPORT_EVENT:[],PING_PONG_TIME_OUT:10,WEBSOCKET_TIMEOUT_MIN:1e4,EVENT_REPORT_SEND_INTERVAL:3e3,CONFIG_DISTRIBUTE_INTERVAL:3e5,ENABLE_CONFIG_DISTRIBUTE:!0,CANDIDATE_TIMEOUT:5e3,SHOW_REPORT_INVOKER_LOG:!1,SHOW_REPORT_USER_INVOKER_LOG:!0,JOIN_EXTEND:"",PUB_EXTEND:"",SUB_EXTEND:"",FORCE_TURN:!1,TURN_ENABLE_TCP:!0,TURN_ENABLE_UDP:!0,MAX_UPLOAD_CACHE:50,UPLOAD_CACHE_INTERVAL:2e3,AJAX_REQUEST_CONCURRENT:3,REPORT_APP_SCENARIO:void 0,GATEWAY_DOMAINS:["edge.agora.io","edge.sd-rtn.com"],CONNECT_GATEWAY_WITHOUT_DOMAIN:!1,WORKER_DOMAIN:"edge.agora.io",EVENT_REPORT_RETRY:!0,CHROME_FORCE_PLAN_B:!1,AUDIO_SOURCE_VOLUME_UPDATE_INTERVAL:400,AUDIO_SOURCE_AVG_VOLUME_DURATION:3e3,AUDIO_VOLUME_INDICATION_INTERVAL:2e3,VOLUME_VOICE_WEIGHT:10,GET_VOLUME_OF_MUTED_AUDIO_TRACK:!1,STATS_UPDATE_INTERVAL:250,NORMAL_EVENT_QUEUE_CAPACITY:100,CUSTOM_REPORT:!0,CUSTOM_REPORT_LIMIT:20,PROXY_SERVER_TYPE2:"webnginx-proxy.agora.io",PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com","webrtc-cloud-proxy.agora.io"],CUSTOM_PUB_ANSWER_MODIFIER:null,CUSTOM_SUB_ANSWER_MODIFIER:null,CUSTOM_PUB_OFFER_MODIFIER:null,CUSTOM_SUB_OFFER_MODIFIER:null,DSCP_TYPE:"high",REMOVE_NEW_CODECS:!0,FRAGEMENT_LENGTH:3,WEBSOCKET_COMPRESS:!1,SIMULCAST:!1,CHECK_VIDEO_VISIBLE_INTERVAL:3e4,CHECK_LOCAL_STATS_INTERVAL:250,PROFILE_SWITCH_INTERVAL:2e3,UNSUPPORTED_VIDEO_CODEC:[],ENUMERATE_DEVICES_INTERVAL:!1,ENUMERATE_DEVICES_INTERVAL_TIME:1e4,USE_NEW_TOKEN:!1,CLOSE_AFB_FOR_LOCAL_AP:!0,JOIN_MAX_CONCURRENCY:6,JOIN_WITH_FALLBACK_SIGNAL_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE:!1,JOIN_GATEWAY_TRY_443PORT_DURATION:2e3,JOIN_GATEWAY_USE_443PORT_ONLY:!1,JOIN_GATEWAY_USE_DUAL_DOMAIN:!0,JOIN_GATEWAY_FALLBACK_PORT:443,USE_TURN_SERVER_OF_GATEWAY:!1,H264_PROFILE_LEVEL_ID:"",USE_NEW_LOG:!1,LOG_VERSION:3,MEDIA_DEVICE_CONSTRAINTS:null,ENCRYPT_PROXY_USERNAME_AND_PSW:!0,SDP_LOGGING:!1,CSP_DETECTED_HOSTNAME_LIST:["agora.io","sd-rtn.com"],REMOTE_AUDIO_TRACK_USES_WEB_AUDIO:!1,LOCAL_AUDIO_TRACK_USES_WEB_AUDIO:!1,BITRATE_ADAPTER_TYPE:"STANDARD_BITRATE",AI_DENOISER_PARAMETERS:{excludedLinks:[]},ADJUST_3A_FROM_PLUGINS:!0,RAISE_H264_BASELINE_PRIORITY:!0,FILTER_SEND_H264_BASELINE:!1,FIRST_H264_PROFILE_LEVEL_ID:"42001f",FIRST_PACKETIZATION_MODE:"",X_GOOGLE_START_BITRATE:void 0,NEW_REPORT_SERVER:!1,NEW_REPORT_SERVER_DOMAINS:["data-reporting.agora.io","data-reporting.agora.io"],VIDEO_INSPECT_WORKER_MESSAGE_LENGTH_LIMIT:3e5,VIDEO_INSPECT_INTERVAL_MINIMUM:1e3,VIDEO_INSPECT_QUALITY_RATIO:.9,VIDEO_INSPECT_WORKER_MANAGER_HOST:"edge.agora.io",VIDEO_INSPECT_WORKER_MANAGER_PORT:"",VIDEO_INSPECT_WORKER_MANAGER_WSS:"",VIDEO_INSPECT_WORKER_PORT:"",SHOW_VIDEO_INSPECT_WORKER_MESSAGE:!1,STATS_COLLECTOR_PORT:443,FORCE_TURN_TCP:!1,WEBAUDIO_INIT_OPTIONS:void 0,FILTER_VIDEO_FEC:!0,FILTER_AUDIO_FEC:!1,CHROME_DUAL_STREAM_USE_ENCODING:!0,DISABLE_DUAL_STREAM_USE_ENCODING:!1,EXTENSION_USAGE_UPLOAD_INTERVAL:1e4,ICE_RESTART:!0,FINGERPRINT:null,ENABLE_VIDEO_FRAME_CALLBACK:!0,VIDEO_FREEZE_DURATION:500,SPATIALIZER_PARAMETERS:{},UPLOAD_LOG_INTERVAL:3e3,UPLOAD_LOG_REQUEST_RETRY_INTERVAL:2e3,UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL:2e4,UPLOAD_LOG_TRY_INTERVAL_WHILE_OFF:5e3,UPLOAD_LOG_RETRY_INTERVAL_V1:1e4,UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1:200,UPLOAD_LOG_LENGTH_EACH_TIME:10,APP_TYPE:0,DISABLE_WEBAUDIO:!1,CHANNEL_MEDIA_RELAY_SERVERS:void 0,KEEP_LAST_FRAME:!0,FORWARD_P2P_CREATION:!0,SYNC_GROUP:!0,BLOCK_LOCAL_CLIENT:!1,ENABLE_AUDIO_TOPN:!1,ENABLE_AUDIO_METADATA:!1,ENABLE_AUDIO_PTS:!1,TOPN_SMOOTH_LEVEL:void 0,TOPN_NEW_SPEAKER_DELAY:void 0,TOPN_SWITCH_HOLD_MS:void 0,TOPN_AUDIO_GAIN:void 0,TOPN_SILENCE_THRESHOLD:250,AP_AREA:!0,ENABLE_ENCODED_TRANSFORM:!1,ENABLE_VIDEO_SEI:!1,IMAGE_MODERATION_WORKER_HOST:"edge.agora.io",IMAGE_MODERATION_WORKER_WSS:"",IMAGE_MODERATION_WORKER_MESSAGE_LENGTH_LIMIT:3e5,IMAGE_MODERATION_INTERVAL_MINIMUM:1e3,SHOW_IMAGE_MODERATION_WORKER_MESSAGE:!1,IMAGE_MODERATION_QUALITY_RATIO:.9,IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL:5e3,SHOW_GLOBAL_CLIENT_LIST:!1,DATASTREAM_MAX_RETRANSMITS:10,TCP_CANDIDATE_ONLY:!1,EXTERNAL_SIGNAL_REQUEST_TIMEOUT:3e3,SHOW_P2P_LOG:!1,MAX_P2P_TIMEOUT:3e4,P2P_TOKEN_INTERVAL:1e3,SHOW_DATASTREAM2_LOG:!1,RESTRICTION_SET_PLAYBACK_DEVICE:!0,USE_PURE_ENCRYPTION_MASTER_KEY:!1,ENABLE_AUDIO_RED:!1,OPUS_PTIME:void 0,AUDIO_DUPLICATE_NUM:void 0,ENABLE_ABSSENDTIME_AS_SENTTS:!0,ACCOUNT_REGISTER_RETRY_TIMEOUT:1,ACCOUNT_REGISTER_RETRY_RATIO:2,ACCOUNT_REGISTER_RETRY_TIMEOUT_MAX:6e4,ACCOUNT_REGISTER_RETRY_COUNT_MAX:1e5,AUDIO_CONTEXT:null,WEBCS_BACKUP_CONNECT_TIMEOUT:6e3,PLAYER_STATE_DEFER:2e3,SIGNAL_REQUEST_WATCH_INTERVAL:1e3,FILEPATH_LENMAX:255,DUALSTREAM_OPERATION_CHECK:!0,MEDIA_ELEMENT_EXISTS_DEPTH:3,SHIM_CANDIDATE:!1,LEAVE_MSG_TIMEOUT:2e3,STATS_FILTER:{transportId:!0,googTrackId:!0},FILTER_VIDEO_CODEC:[],SIGNAL_CHANNEL:0,TRANSMITTER_INITIAL_RTT:30,TRANSMITTER_INITIAL_RTO:30,TRANSMITTER_MAX_BATCH_ACK_COUNT:2,TRANSMITTER_MAX_RTO:500,DATACHANNEL_COMPRESS:!1,DC_JOIN_WITH_FAILBACK:4e3,DC_CONNECTION_TIMEOUT:2e3,DC_PINGPONG_INTERVAL:2e3,DC_DEBUG_LOG:!1,UNSUPPORTED_VIDEO_UPLINK_CODEC:[],UNSUPPORTED_VIDEO_DOWNLINK_CODEC:[],USE_NEW_NETWORK_CONFIG:!1,AUTO_RESET_AUDIO_ROUTE:!1,PLUGIN_INFO:[],OVERUSE_DETECTOR_PARAMS:Gi,CUSTOM_ADAPTATION_DEFAULT_MODE:"",HIDE_NO_POSTER:!1,AP_CACHE_NUM:10,AP_UPDATE_INTERVAL:12e4,AP_CACHE_LIFETIME:12e4,MAX_PRELOAD_ASYNC_LENGTH:3,DISABLE_SCREEN_SHARE_REMB:!1},Wi),{},{USE_CANDIDATE_FROM_AP_DETAIL:!1,AP_REQUEST_DETAIL:void 0,ENABLE_ROLE_SELECT_EDGE:!1,CLIENT_ROLE_OPTIONS:void 0,REMOTE_VIDEO_STREAM_TYPE:void 0,COMPATIBLE_SDP_EXTENSION:["gdpr_forbidden"],LIMIT_BITRATE:void 0,EXPERIMENTS:{},USE_PUB_RTX:!0,USE_SUB_RTX:!0,ENABLE_DATASTREAM_2:!1,USE_XR:!0,ENABLE_PREALLOC_PC:!1,ENABLE_PRE_SUB:!1,ENABLE_SVC:!1,ENABLE_FORCE_HLS:!1,MAX_WEBAUDIO_VOLUME:300,ENABLE_VOS_FALLBACK:!1,ENABLE_FALLBACK_TO_HLS:!1,ENABLE_PRE_RENDER:!1,FORCE_DISABLE_AUTO_SUB:!1,ENABLE_PRE_SUB_WITH_PRE_PC:!0,PRE_USE_LOCAL_CODECS:!0},Hi),{},{K_MIN_RENDER_DELAY:66,USE_STANDARD_BITRATE_DEFAULT:!1,VIDEO_NEW_BITRATE_RATIO:void 0,VIDEO_STANDARD_BITRATE_VERSION:2,BASELINE_MORE_H264_BITRATE_RATIO:1.1,IGNORE_RTC_DEVICE_CHECK:!1,FLS_AUTOPLAY_EMITS:!1,ENABLE_DUAL_STREAM_FLAG:!1,FORBID_MODIFY_LOCAL_OFFER_SDP:!1,RESERVE_MID_1_MLINE:!1,PRE_SUB_NUM:1,DC_IN_ESM:!0,PRE_PLAYOUT_DELAY_HINT:void 0});function Ke(t,e,r){var n;Object.keys(H).includes(t)&&(Object.keys(Yi).includes(t)||(H[t]=e,t!=="ENABLE_VIDEO_SEI"&&t!=="ENABLE_AUDIO_TOPN"&&t!=="ENABLE_AUDIO_METADATA"&&t!=="ENABLE_AUDIO_PTS"||e!==!0||(H.ENABLE_ENCODED_TRANSFORM=!0),t==="USE_NEW_NETWORK_CONFIG"&&e&&(n=!!e,H.USE_NEW_NETWORK_CONFIG=n,n&&(H.WEBCS_DOMAIN=["webrtc2-2.ap.sd-rtn.com"],H.WEBCS_DOMAIN_BACKUP_LIST=["webrtc2-4.ap.sd-rtn.com"],H.CDS_AP=["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],H.ACCOUNT_REGISTER=["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],H.EVENT_REPORT_DOMAIN="web-2.statscollector.sd-rtn.com",H.EVENT_REPORT_BACKUP_DOMAIN="statscollector-1.agora.io",H.GATEWAY_DOMAINS=["edge.sd-rtn.com"])),t==="ENABLE_PRE_SUB"&&e&&(H.ENABLE_INSTANT_VIDEO=!0,H.ENABLE_PREALLOC_PC=!0),t==="ENABLE_SVC"&&e&&(H.ENABLE_AUT_CC=!0),t==="NEW_FORCE_TURN"&&e&&(H.NEW_TURN_MODE||(H.NEW_TURN_MODE=4))))}function P(t){if(t==="TURN_DOMAINS"){const e=H.TURN_DOMAINS;return e.includes(P("TURN_DOMAIN"))?e:[P("TURN_DOMAIN")].concat(e)}return H[t]}pn||(H.WEBCS_DOMAIN=["ap-web-1-oversea.agora.io","ap-web-1-north-america.agora.io"],H.WEBCS_DOMAIN_BACKUP_LIST=["ap-web-2-oversea.agora.io","ap-web-2-north-america.agora.io"],H.PROXY_CS=["proxy-ap-web-oversea.agora.io","proxy-ap-web-america.agora.io"],H.CDS_AP=["cds-ap-web-oversea.agora.io","cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],H.ACCOUNT_REGISTER=["sua-ap-web-oversea.agora.io","sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],H.UAP_AP=["uap-ap-web-oversea.agora.io","uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],H.LOG_UPLOAD_SERVER="logservice-oversea.agora.io",H.EVENT_REPORT_DOMAIN="statscollector-1-oversea.agora.io",H.EVENT_REPORT_BACKUP_DOMAIN="statscollector-2-oversea.agora.io",H.PROXY_SERVER_TYPE3="webrtc-cloud-proxy.agora.io",H.AREAS=["NORTH_AMERICA","OVERSEA"]);(function(t){return t[t.REALTIME=1]="REALTIME",t})({});const Yi={};var Xi=function(t){return t.SET_SESSION_ID="SET_SESSION_ID",t.SET_RTE_URL="SET_RTE_URL",t.SET_RTE_SID="SET_RTE_SID",t.SET_P2P_ID="SET_P2P_id",t.SET_DC_ID="SET_DC_id",t.SET_UID="SET_UID",t.SET_INT_UID="SET_INT_UID",t.SET_PUB_ID="SET_PUB_ID",t.SET_CLOUD_PROXY_SERVER_MODE="SET_CLOUD_PROXY_SERVER_MODE",t.KEY_METRIC_CLIENT_CREATED="KEY_METRIC_CLIENT_CREATED",t.KEY_METRIC_JOIN_START="KEY_METRIC_JOIN_START",t.KEY_METRIC_PRELOAD_START="KEY_METRIC_PRELOAD_START",t.KEY_METRIC_PRELOAD_END="KEY_METRIC_PRELOAD_END",t.KEY_METRIC_JOIN_END="KEY_METRIC_JOIN_END",t.KEY_METRIC_REQUEST_AP_START="KEY_METRIC_REQUEST_AP_START",t.KEY_METRIC_REQUEST_AP_END="KEY_METRIC_REQUEST_AP_END",t.KEY_METRIC_REQUEST_SUA_END="KEY_METRIC_REQUEST_SUA_END",t.KEY_METRIC_BEFORE_CONNECT="KEY_METRIC_BEFORE_CONNECT",t.KEY_METRIC_PEER_RECEIVER="KEY_METRIC_PEER_RECEIVER",t.KEY_METRIC_SIGNAL_CONNECTED="KEY_METRIC_SIGNAL_CONNECTED",t.KEY_METRIC_JOIN_REQ="KEY_METRIC_JOIN_REQ",t.KEY_METRIC_JOIN_REP="KEY_METRIC_JOIN_REP",t.KEY_METRIC_JOIN_GATEWAY_START="KEY_METRIC_JOIN_GATEWAY_START",t.KEY_METRIC_JOIN_GATEWAY_END="KEY_METRIC_JOIN_GATEWAY_END",t.KEY_METRIC_PEER_CONNECTION_START="KEY_METRIC_PEER_CONNECTION_START",t.KEY_METRIC_PEER_CONNECTION_END="KEY_METRIC_PEER_CONNECTION_END",t.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED="KEY_METRIC_FIRST_VIDEO_FRAME_DECODED",t.KEY_METRIC_DESCRIPTION_START="KEY_METRIC_DESCRIPTION_START",t.KEY_METRIC_ICE_CONNECTION_END="KEY_METRIC_ICE_CONNECTION_END",t.KEY_METRIC_SIGNAL_CHANNEL_OPEN="KEY_METRIC_SIGNAL_CHANNEL_OPEN",t.KEY_METRIC_PUBLISH="KEY_METRIC_PUBLISH",t.KEY_METRIC_SUBSCRIBE="KEY_METRIC_SUBSCRIBE",t.RECORD_JOIN_CHANNEL_SERVICE="RECORD_JOIN_CHANNEL_SERVICE",t.RESET_JOIN_CHANNEL_SERVICE_RECORDS="RESET_JOIN_CHANNEL_SERVICE_RECORDS",t.RESET_KEY_METRICS="RESET_KEY_METRICS",t.RESET_FIRST_VIDEO_FRAME_DECODED="RESET_FIRST_VIDEO_FRAME_DECODED",t.SET_USE_P2P="SET_USE_P2P",t.SET_TRANSPORT_TYPE="SET_TRANSPORT_TYPE",t}(Xi||{});(function(t){return t.h264="h264",t.h265="h265",t.vp8="vp8",t.vp9="vp9",t.av1="av1",t})({});(function(t){return t.opus="opus",t.pcma="pcma",t.pcmu="pcmu",t.g722="g722",t})({});(()=>{var t={8:(n,i,o)=>{o.r(i),o.d(i,{Parser:()=>ht,Printer:()=>Q,parse:()=>kt,print:()=>Ut});const c=` -`,l="".concat("\r").concat(c),E=" ";let d;function p(S){return S>="0"&&S<="9"}function I(S){return S>="!"&&S<="~"}function _(S){return I(S)||S>="€"&&S<="ÿ"}function R(S){return S==="!"||S>="#"&&S<="'"||S>="*"&&S<="+"||S>="-"&&S<="."||S>="0"&&S<="9"||S>="A"&&S<="Z"||S>="^"&&S<="~"}function T(S){return S>="1"&&S<="9"}function A(S){return S>="A"&&S<="Z"||S>="a"&&S<="z"}function O(S){return S==="d"||S==="h"||S==="m"||S==="s"}function m(S){return S>""&&S<" "||S>"\v"&&S<"\f"||S>""&&S<"ÿ"}function D(S){return A(S)||p(S)||S==="+"||S==="/"}function N(S){return p(S)||A(S)||S==="+"||S==="/"||S==="-"||S==="_"}function g(S){return A(S)||p(S)||S==="+"||S==="/"}function x(S,s){var a=Object.keys(S);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(S);s&&(u=u.filter(function(f){return Object.getOwnPropertyDescriptor(S,f).enumerable})),a.push.apply(a,u)}return a}function v(S){for(var s=1;s=0&&f<=255)return u;throw new Error("Invalid decimal uchar")}consumeIP6Address(s,a){let u=this.consumeHexpart(s,a);return s[u]===":"&&(u+=1,u=this.consumeIP4Address(s,u)),u}consumeHexpart(s,a){let u=a;if(s[u]===":"&&s[u+1]===":"){u+=2;try{u=this.consumeHexseq(s,u)}catch{}return u}if(u=this.consumeHexseq(s,u),s[u]===":"&&s[u+1]===":"){u+=2;try{u=this.consumeHexseq(s,u)}catch{}return u}return u}consumeHexseq(s,a){let u=a;for(;u=this.consumeHex4(s,u),s[u]===":"&&s[u+1]!==":";)u+=1;return u}consumeHex4(s,a){let u=0;for(;u<4;u++)if(!((f=s[a+u])>="0"&&f<="9"||f>="a"&&f<="f"||f>="A"&&f<="F")){if(u===0)throw new Error("Invalid hex 4");break}var f;return a+u}consumeFQDN(s,a){let u=a;for(;p(s[u])||A(s[u])||s[u]==="-"||s[u]===".";)u+=1;if(u-a<4)throw new Error("Invalid FQDN");return u}consumeExtnAddr(s,a){return this.consumeOneOrMore(s,a,_)}consumeMulticastAddress(s,a,u){switch(u){case"IP4":case"ip4":return this.consumeIP4MulticastAddress(s,a);case"IP6":case"ip6":return this.consumeIP6MulticastAddress(s,a);default:try{return this.consumeFQDN(s,a)}catch{return this.consumeExtnAddr(s,a)}}}consumeIP6MulticastAddress(s,a){const u=this.consumeHexpart(s,a);return s[u]==="/"?this.consumeInteger(s,u+1):u}consumeIP4MulticastAddress(s,a){let u=a+3;const f=s.slice(a,u),L=parseInt(f);if(L<224||L>239)throw new Error("Invalid IP4 multicast address, IPv4 multicast addresses may be in the range 224.0.0.0 to 239.255.255.255.");for(let w=0;w<3;w++){if(s[u]!==".")throw new Error("Invalid IP4 multicast address.");u+=1,u=this.consumeDecimalUChar(s,u)}return s[u]==="/"&&(u+=1),u=this.consumeTTL(s,u),s[u]==="/"&&(u=this.consumeInteger(s,u)),u}consumeInteger(s,a){if(!T(s[a]))throw new Error("Invalid integer.");for(a+=1;p(s[a]);)a+=1;return a}consumeTTL(s,a){if(s[a]==="0")return a+1;if(!T(s[a]))throw new Error("Invalid TTL.");a+=1;for(let u=0;u<2&&p(s[a]);u++)a+=1;return a}consumeToken(s,a){return this.consumeOneOrMore(s,a,R)}consumeTime(s,a){let u=a;if(s[u]==="0")return u+1;for(T(s[u])&&(u+=1);p(s[u]);)u++;if(u-a<10)throw new Error("Invalid time");return u}consumeAddress(s,a){return this.consumeTill(s,a,E)}consumeTypedTime(s,a){let u=a;return u=this.consumeOneOrMore(s,u,p),O(s[u])?u+1:u}consumeRepeatInterval(s,a){if(!T(s[a]))throw new Error("Invalid repeat interval");for(a+=1;p(s[a]);)a+=1;return O(s[a])&&(a+=1),a}consumePort(s,a){return this.consumeOneOrMore(s,a,p)}consume(s,a,u){for(let f=0;f=s.length)throw new Error("consume exceeding value length");if(s[a+f]!==u[f])throw new Error("consume ".concat(u," failed at ").concat(f))}return a+u.length}consumeTill(s,a,u){let f=a;for(;f!!y.trim()).map(this.parseLine),this.currentLine=0;const u=this.parseVersion(),f=this.parseOrigin(),L=this.parseSessionName(),w=this.parseInformation(),B=this.parseUri(),J=this.parseEmail(),Tt=this.parsePhone(),bt=this.parseConnection(),Pt=this.parseBandWidth(),nt=this.parseTimeFields(),vt=this.parseKey(),yt=this.parseSessionAttribute(),it=this.parseMediaDescription();if(this.currentLine!==this.records.length)throw new Error("parsing failed, non exhaustive sdp lines.");return{version:u,origin:f,sessionName:L,information:w,uri:B,emails:J,phones:Tt,connection:bt,bandwidths:Pt,timeFields:nt,key:vt,attributes:yt,mediaDescriptions:it}}getCurrentRecord(){const s=this.records[this.currentLine];if(!s)throw new Error("Record doesn't exit.");return s}probeEOL(s){for(let a=0;a=.");const u=s[0];if(s[1]!=="=")throw new Error('Invalid sdp line, should be a single character followed by an "=" sign.');return{type:u,value:s.slice(2),line:a,cur:0}}parseSessionAttribute(){const s=new ct;for(;this.currentLineR(f)&&f!==":"),_cur:0};a.value[a.cur]===":"&&(a.cur+=1,u.attValue=this.extractOneOrMore(a,m)),s.parse(u),this.currentLine++}return s.digest()}parseMediaAttributes(s){const a=new gt(s);for(;this.currentLineR(L)&&L!==":"),_cur:0};u.value[u.cur]===":"&&(u.cur+=1,f.attValue=this.extractOneOrMore(u,m)),a.parse(f),this.currentLine++}return a.digest()}parseKey(){const s=this.getCurrentRecord();if(s.type===d.KEY){if(s.value==="prompt"||s.value==="clear:"||s.value==="base64:"||s.value==="uri:")return s.value;throw this.currentLine++,new Error("Invalid key.")}}parseZone(){const s=this.getCurrentRecord();if(s.type===d.ZONE_ADJUSTMENTS){const a=[];for(;;)try{const u=this.extract(s,this.consumeTime);this.consumeSpaceForRecord(s);let f=!1;s.value[s.cur]==="-"&&(f=!0,s.cur+=1);const L=this.extract(s,this.consumeTypedTime);a.push({time:u,typedTime:L,back:f})}catch{break}if(a.length===0)throw new Error("Invalid zone adjustments");return this.currentLine++,a}return[]}parseRepeat(){const s=[];for(;;){const a=this.getCurrentRecord();if(a.type!==d.REPEAT)break;{const u=this.extract(a,this.consumeRepeatInterval),f=this.parseTypedTime(a);s.push({repeatInterval:u,typedTimes:f}),this.currentLine++}}return s}parseTypedTime(s){const a=[];for(;;)try{this.consumeSpaceForRecord(s),a.push(this.extract(s,this.consumeTypedTime))}catch{break}if(a.length===0)throw new Error("Invalid typed time.");return a}parseTime(){const s=this.getCurrentRecord(),a=this.extract(s,this.consumeTime);this.consumeSpaceForRecord(s);const u=this.extract(s,this.consumeTime);return this.currentLine++,{startTime:a,stopTime:u}}parseBandWidth(){const s=[];for(;this.currentLineB)throw new Error("error in length, should be less or equal than ".concat(B," characters."));return s._cur=f,L}consumeAttributeSpace(s){if(s.attValue[s._cur]!==E)throw new Error("Invalid space at ".concat(s._cur,"."));s._cur+=1}extract(s,a,...u){if(!s.attValue)throw new Error("Nothing to extract from attValue.");const f=a.call(this,s.attValue,s._cur,...u),L=s.attValue.slice(s._cur,f);return s._cur=f,L}atEnd(s){if(!s.attValue)throw new Error;return s._cur>=s.attValue.length}peekChar(s){if(!s.attValue)throw new Error;return s.attValue[s._cur]}peek(s,a){if(!s.attValue)throw new Error;for(let u=0;uw!==E&&m(w));u.push({name:f,value:L})}this.attributes.identities.push({assertionValue:a,extensions:u})}parseMsidSemantic(s){this.peekChar(s)===E&&this.consumeAttributeSpace(s);const a={semantic:this.extract(s,this.consumeToken),identifierList:[]};for(;;){try{this.consumeAttributeSpace(s)}catch{break}if(this.peekChar(s)==="*"){this.extract(s,this.consume,"*"),a.applyForAll=!0;break}{const u=this.extract(s,this.consumeTill,E);a.identifierList.push(u)}}this.attributes.msidSemantic=a}}class gt extends q{constructor(s){super(),X(this,"attributes",void 0),s.protos.indexOf("RTP")!==-1||s.protos.indexOf("rtp"),this.attributes={unrecognized:[],candidates:[],extmaps:[],fingerprints:[],imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[]}}parse(s){if(this.digested)throw new Error("already digested");try{switch(s.attField){case"extmap":this.parseExtmap(s);break;case"setup":this.parseSetup(s);break;case"ice-ufrag":this.parseIceUfrag(s);break;case"ice-pwd":this.parseIcePwd(s);break;case"ice-options":this.parseIceOptions(s);break;case"candidate":this.parseCandidate(s);break;case"remote-candidate":this.parseRemoteCandidate(s);break;case"end-of-candidates":this.parseEndOfCandidates();break;case"fingerprint":this.parseFingerprint(s);break;case"rtpmap":this.parseRtpmap(s);break;case"ptime":this.parsePtime(s);break;case"maxptime":this.parseMaxPtime(s);break;case"sendrecv":case"recvonly":case"sendonly":case"inactive":this.parseDirection(s);break;case"ssrc":this.parseSSRC(s);break;case"fmtp":this.parseFmtp(s);break;case"rtcp-fb":this.parseRtcpFb(s);break;case"rtcp-mux":this.parseRTCPMux();break;case"rtcp-mux-only":this.parseRTCPMuxOnly();break;case"rtcp-rsize":this.parseRTCPRsize();break;case"rtcp":this.parseRTCP(s);break;case"mid":this.parseMid(s);break;case"msid":this.parseMsid(s);break;case"imageattr":this.parseImageAttr(s);break;case"rid":this.parseRid(s);break;case"simulcast":this.parseSimulcast(s);break;case"sctp-port":this.parseSctpPort(s);break;case"max-message-size":this.parseMaxMessageSize(s);break;case"ssrc-group":this.parseSSRCGroup(s);break;default:s.ignored=!0,this.attributes.unrecognized.push(s)}}catch(a){throw console.error("parsing media attribute ".concat(s.attField,' error, "a=').concat(s.attField,":").concat(s.attValue,'"')),a}if(!s.ignored&&s.attValue&&!this.atEnd(s))throw new Error("attribute parsing error")}parseCandidate(s){const a=this.extractOneOrMore(s,D,[1,32]);this.consumeAttributeSpace(s);const u=this.extractOneOrMore(s,p,[1,5]);this.consumeAttributeSpace(s);const f=this.extract(s,this.consumeToken);this.consumeAttributeSpace(s);const L=this.extractOneOrMore(s,p,[1,10]);this.consumeAttributeSpace(s);const w=this.extract(s,this.consumeAddress);this.consumeAttributeSpace(s);const B=this.extract(s,this.consumePort);this.consumeAttributeSpace(s),this.extract(s,this.consume,"typ"),this.consumeAttributeSpace(s);const J={foundation:a,componentId:u,transport:f,priority:L,connectionAddress:w,port:B,type:this.extract(s,this.consumeToken),extension:{}};for(this.peek(s," raddr")&&(this.extract(s,this.consume," raddr"),this.consumeAttributeSpace(s),J.relAddr=this.extract(s,this.consumeAddress)),this.peek(s," rport")&&(this.extract(s,this.consume," rport"),this.consumeAttributeSpace(s),J.relPort=this.extract(s,this.consumePort));this.peekChar(s)===E;){this.consumeAttributeSpace(s);const Tt=this.extract(s,this.consumeToken);this.consumeAttributeSpace(s),J.extension[Tt]=this.extractOneOrMore(s,I)}this.attributes.candidates.push(J)}parseRemoteCandidate(s){const a=[];for(;;){const u=this.extractOneOrMore(s,p,[1,5]);this.consumeAttributeSpace(s);const f=this.extract(s,this.consumeAddress);this.consumeAttributeSpace(s);const L=this.extract(s,this.consumePort);a.push({componentId:u,connectionAddress:f,port:L});try{this.consumeAttributeSpace(s)}catch{break}}this.attributes.remoteCandidatesList.push(a)}parseEndOfCandidates(){if(this.attributes.endOfCandidates)throw new Error("must be only one line of end-of-candidates");this.attributes.endOfCandidates=!0}parseRtpmap(s){const a=this.extract(s,this.consumeToken);this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill,"/");this.extract(s,this.consume,"/");const f={encodingName:u,clockRate:this.extractOneOrMore(s,p)};this.atEnd(s)||this.peekChar(s)!=="/"||(this.extract(s,this.consume,"/"),f.encodingParameters=parseInt(this.extract(s,this.consumeTill),10));const L=this.attributes.payloads.find(w=>w.payloadType===parseInt(a,10));L?L.rtpMap=f:this.attributes.payloads.push({payloadType:parseInt(a,10),rtpMap:f,rtcpFeedbacks:[]})}parsePtime(s){if(this.attributes.ptime)throw new Error("must be only one line of ptime");this.attributes.ptime=this.extract(s,this.consumeTill)}parseMaxPtime(s){if(this.attributes.maxPtime)throw new Error("must be only one line of ptime");this.attributes.maxPtime=this.extract(s,this.consumeTill)}parseDirection(s){if(this.attributes.direction)throw new Error("must be only one line of direction info");this.attributes.direction=s.attField}parseSSRC(s){const a=this.extractOneOrMore(s,p);this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill,":");let f;this.peekChar(s)===":"&&(this.extract(s,this.consume,":"),f=this.extract(s,this.consumeTill));const L=this.attributes.ssrcs.find(w=>w.ssrcId===parseInt(a,10));L?L.attributes[u]=f:this.attributes.ssrcs.push({ssrcId:parseInt(a,10),attributes:{[u]:f}})}parseFmtp(s){const a=this.extract(s,this.consumeTill,E);this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill),f={};u.split(";").forEach(w=>{let[B,J]=w.split("=");B=B.trim();const Tt=typeof J=="string"?J.trim():null;typeof B=="string"&&B.length>0&&(f[B]=Tt)});const L=this.attributes.payloads.find(w=>w.payloadType===parseInt(a,10));L?L.fmtp={parameters:f}:this.attributes.payloads.push({payloadType:parseInt(a,10),rtcpFeedbacks:[],fmtp:{parameters:f}})}parseFmtParameters(s){const a={},u=this.extract(s,this.consumeTill,"=");s._cur++;const f=this.extract(s,this.consumeTill,";");for(a[u]=f;s.attValue[s._cur]===";";){const L=this.extract(s,this.consumeTill,"=");s._cur++;const w=this.extract(s,this.consumeTill,";");a[L]=w}return a}parseRtcpFb(s){let a="";a=this.peekChar(s)==="*"?this.extract(s,this.consume,"*"):this.extract(s,this.consumeTill,E),this.consumeAttributeSpace(s);const u=this.extract(s,this.consumeTill,E);let f;if(u==="trr-int")f={type:u,interval:this.extract(s,this.consumeTill)};else{const L={type:u};this.peekChar(s)===E&&(this.consumeAttributeSpace(s),L.parameter=this.extract(s,this.consumeToken),this.peekChar(s)===E&&(L.additional=this.extract(s,this.consumeTill))),f=L}if(a==="*")this.attributes.rtcpFeedbackWildcards.push(f);else{const L=this.attributes.payloads.find(w=>w.payloadType===parseInt(a,10));L?L.rtcpFeedbacks.push(f):this.attributes.payloads.push({payloadType:parseInt(a,10),rtcpFeedbacks:[f]})}}parseRTCPMux(){if(this.attributes.rtcpMux)throw new Error("must be single line of rtcp-mux");this.attributes.rtcpMux=!0}parseRTCPMuxOnly(){if(this.attributes.rtcpMuxOnly)throw new Error("must be single line of rtcp-only");this.attributes.rtcpMuxOnly=!0}parseRTCPRsize(){if(this.attributes.rtcpRsize)throw new Error("must be single line of rtcp-rsize");this.attributes.rtcpRsize=!0}parseRTCP(s){if(this.attributes.rtcp)throw new Error("must be single line of rtcp");const a={port:this.extract(s,this.consumePort)};this.peekChar(s)===E&&(this.consumeAttributeSpace(s),a.netType=this.extractOneOrMore(s,R),this.consumeAttributeSpace(s),a.addressType=this.extractOneOrMore(s,R),this.consumeAttributeSpace(s),a.address=this.extract(s,this.consumeAddress)),this.attributes.rtcp=a}parseMsid(s){const a={id:this.extractOneOrMore(s,R,[1,64])};this.peekChar(s)===E&&(this.consumeAttributeSpace(s),a.appdata=this.extractOneOrMore(s,R,[1,64])),this.attributes.msids.push(a)}parseImageAttr(s){this.attributes.imageattr.push(s.attValue)}parseRid(s){const a=this.extractOneOrMore(s,f=>A(f)||p(f)||f==="_"||f==="-");this.consumeAttributeSpace(s);const u={id:a,direction:this.extract(s,this.consumeToken),params:[]};if(this.peekChar(s)===E){if(this.consumeAttributeSpace(s),this.peek(s,"pt=")){this.extract(s,this.consume,"pt=");const f=[];for(;;){const L=this.extract(s,this.consumeToken);f.push(L);try{this.extract(s,this.consume,",")}catch{break}}u.payloads=f,this.peekChar(s)===E&&this.extract(s,this.consume,E)}for(;;){const f=this.extract(s,this.consumeToken);switch(f){case"depend":{const L={type:f,rids:this.extract(s,this.consume,"=").split(",")};u.params.push(L);break}default:{const L={type:f};this.peekChar(s)==="="&&(this.extract(s,this.consume,"="),L.val=this.extract(s,this.consumeTill,";")),u.params.push(L)}}try{this.extract(s,this.consume,";")}catch{break}}}this.attributes.rids.push(u)}parseSimulcast(s){if(this.attributes.simulcast)throw new Error("must be single line of simulcast");this.attributes.simulcast=s.attValue,this.extract(s,this.consumeTill)}parseSctpPort(s){this.attributes.sctpPort=this.extractOneOrMore(s,p,[1,5])}parseMaxMessageSize(s){this.attributes.maxMessageSize=this.extractOneOrMore(s,p,[1,void 0])}digest(){return this.digested=!0,this.attributes}parseMid(s){this.attributes.mid=this.extract(s,this.consumeToken)}parseSSRCGroup(s){const a=this.extract(s,this.consumeToken),u=[];for(;;)try{this.consumeAttributeSpace(s);const f=this.extract(s,this.consumeInteger);u.push(parseInt(f,10))}catch{break}this.attributes.ssrcGroups.push({semantic:a,ssrcIds:u})}}function Ot(S,s,a){return s in S?Object.defineProperty(S,s,{value:a,enumerable:!0,configurable:!0,writable:!0}):S[s]=a,S}class Q{constructor(){Ot(this,"eol",l)}print(s,a){let u="";return a&&(this.eol=a),u+=this.printVersion(s.version),u+=this.printOrigin(s.origin),u+=this.printSessionName(s.sessionName),u+=this.printInformation(s.information),u+=this.printUri(s.uri),u+=this.printEmail(s.emails),u+=this.printPhone(s.phones),u+=this.printConnection(s.connection),u+=this.printBandwidth(s.bandwidths),u+=this.printTimeFields(s.timeFields),u+=this.printKey(s.key),u+=this.printSessionAttributes(s.attributes),u+=this.printMediaDescription(s.mediaDescriptions),u}printVersion(s){return"v=".concat(s).concat(this.eol)}printOrigin(s){return"o=".concat(s.username," ").concat(s.sessId," ").concat(s.sessVersion," ").concat(s.nettype," ").concat(s.addrtype," ").concat(s.unicastAddress).concat(this.eol)}printSessionName(s){return s?"s=".concat(s).concat(this.eol):""}printInformation(s){return s?"i=".concat(s).concat(this.eol):""}printUri(s){return s?"u=".concat(s).concat(this.eol):""}printEmail(s){let a="";for(const u of s)a+="e=".concat(u).concat(this.eol);return a}printPhone(s){let a="";for(const u of s)a+="e=".concat(u).concat(this.eol);return a}printConnection(s){return s?"c=".concat(s.nettype," ").concat(s.addrtype," ").concat(s.address).concat(this.eol):""}printBandwidth(s){let a="";for(const u of s)a+="b=".concat(u.bwtype,":").concat(u.bandwidth).concat(this.eol);return a}printTimeFields(s){let a="";for(const u of s){a+="t=".concat(u.time.startTime," ").concat(u.time.startTime).concat(this.eol);for(const f of u.repeats)a+="r=".concat(f.repeatInterval," ").concat(f.typedTimes.join(" ")).concat(this.eol);u.zoneAdjustments&&(a+="z=",a+="z=".concat(u.zoneAdjustments.map(f=>"".concat(f.time," ").concat(f.back?"-":""," ").concat(f.typedTime)).join(" ")).concat(this.eol),a+=this.eol)}return a}printKey(s){return s?"k=".concat(s).concat(this.eol):""}printAttributes(s){let a="";for(const u of s)a+="a=".concat(u.attField).concat(u.attValue?":".concat(u.attValue):"").concat(this.eol);return a}printMediaDescription(s){let a="";for(const u of s)a+=this.printMedia(u.media),a+=this.printInformation(u.information),a+=this.printConnections(u.connections),a+=this.printBandwidth(u.bandwidths),a+=this.printKey(u.key),a+=this.printMediaAttributes(u);return a}printConnections(s){let a="";for(const u of s)a+=this.printConnection(u);return a}printMedia(s){return"m=".concat(s.mediaType," ").concat(s.port," ").concat(s.protos.join("/")," ").concat(s.fmts.join(" ")).concat(this.eol)}printSessionAttributes(s){return new _t(this.eol).print(s)}printMediaAttributes(s){return new It(this.eol).print(s)}}class Ct{constructor(s){Ot(this,"eol",void 0),this.eol=s}printIceUfrag(s){return s===void 0?"":"a=ice-ufrag:".concat(s).concat(this.eol)}printIcePwd(s){return s===void 0?"":"a=ice-pwd:".concat(s).concat(this.eol)}printIceOptions(s){return s===void 0?"":"a=ice-options:".concat(s.join(E)).concat(this.eol)}printFingerprints(s){return s.length>0?s.map(a=>"a=fingerprint:".concat(a.hashFunction).concat(E).concat(a.fingerprint)).join(this.eol)+this.eol:""}printExtmap(s){return s.map(a=>"a=extmap:".concat(a.entry).concat(a.direction?"/".concat(a.direction):"").concat(E).concat(a.extensionName).concat(a.extensionAttributes?"".concat(E).concat(a.extensionAttributes):"").concat(this.eol)).join("")}printSetup(s){return s===void 0?"":"a=setup:".concat(s).concat(this.eol)}printUnrecognized(s){return s.map(a=>"a=".concat(a.attField).concat(a.attValue?":".concat(a.attValue):"").concat(this.eol)).join("")}}class _t extends Ct{print(s){let a="";return a+=this.printGroups(s.groups),a+=this.printMsidSemantic(s.msidSemantic),a+=this.printIceLite(s.iceLite),a+=this.printIceUfrag(s.iceUfrag),a+=this.printIcePwd(s.icePwd),a+=this.printIceOptions(s.iceOptions),a+=this.printFingerprints(s.fingerprints),a+=this.printSetup(s.setup),a+=this.printTlsId(s.tlsId),a+=this.printIdentity(s.identities),a+=this.printExtmap(s.extmaps),a+=this.printUnrecognized(s.unrecognized),a}printGroups(s){let a="";return s.length>0&&(a+=s.map(u=>"a=group:".concat(u.semantic).concat(u.identificationTag.map(f=>"".concat(E).concat(f)).join("")).concat(this.eol)).join("")),a}printIceLite(s){return s===void 0?"":"a=ice-lite"+this.eol}printTlsId(s){return s?"a=tls-id:".concat(s).concat(this.eol):""}printIdentity(s){return s.length===0?"":s.map(a=>"a=identity:".concat(a.assertionValue).concat(a.extensions.map(u=>"".concat(E).concat(u.name).concat(u.value?"=".concat(u.value):"")))).join(this.eol)+this.eol}printMsidSemantic(s){if(!s)return"";let a="a=msid-semantic:".concat(s.semantic);return s.applyForAll?a+="".concat(E,"*"):s.identifierList.length>0&&(a+=s.identifierList.map(u=>"".concat(E).concat(u))),a+this.eol}}class It extends Ct{print(s){const a=s.attributes;let u="";return u+=this.printRTCP(a.rtcp),u+=this.printIceUfrag(a.iceUfrag),u+=this.printIcePwd(a.icePwd),u+=this.printIceOptions(a.iceOptions),u+=this.printCandidates(a.candidates),u+=this.printRemoteCandidatesList(a.remoteCandidatesList),u+=this.printEndOfCandidates(a.endOfCandidates),u+=this.printFingerprints(a.fingerprints),u+=this.printSetup(a.setup),u+=this.printMid(a.mid),u+=this.printExtmap(a.extmaps),u+=this.printRTPRelated(a),u+=this.printPtime(a.ptime),u+=this.printMaxPtime(a.maxPtime),u+=this.printDirection(a.direction),u+=this.printSSRCGroups(a.ssrcGroups),u+=this.printSSRC(a.ssrcs),u+=this.printRTCPMux(a.rtcpMux),u+=this.printRTCPMuxOnly(a.rtcpMuxOnly),u+=this.printRTCPRsize(a.rtcpRsize),u+=this.printMSId(a.msids),u+=this.printImageattr(a.imageattr),u+=this.printRid(a.rids),u+=this.printSimulcast(a.simulcast),u+=this.printSCTPPort(a.sctpPort),u+=this.printMaxMessageSize(a.maxMessageSize),u+=this.printUnrecognized(a.unrecognized),u}printCandidates(s){return s.map(a=>"a=candidate:".concat(a.foundation).concat(E).concat(a.componentId).concat(E).concat(a.transport).concat(E).concat(a.priority).concat(E).concat(a.connectionAddress).concat(E).concat(a.port).concat(E,"typ").concat(E).concat(a.type).concat(a.relAddr?"".concat(E,"raddr").concat(E).concat(a.relAddr):"").concat(a.relPort?"".concat(E,"rport").concat(E).concat(a.relPort):"").concat(Object.keys(a.extension).map(u=>"".concat(E).concat(u).concat(E).concat(a.extension[u])).join("")).concat(this.eol)).join("")}printRemoteCandidatesList(s){return s.map(a=>"a=remote-candidates:".concat(a.join(E)).concat(this.eol)).join("")}printEndOfCandidates(s){return s===void 0?"":"a=end-of-candidates"+this.eol}printRTPRelated(s){if(!s.payloads)return"";const a=s.payloads;let u="";u+=s.rtcpFeedbackWildcards.map(f=>this.printRTCPFeedback("*",f)).join("");for(const f of a)u+=this.printRtpMap(f.payloadType,f.rtpMap),u+=this.printFmtp(f.payloadType,f.fmtp),u+=f.rtcpFeedbacks.map(L=>this.printRTCPFeedback(f.payloadType,L)).join("");return u}printFmtp(s,a){if(!a)return"";const u=Object.keys(a.parameters);return u.length===1&&a.parameters[u[0]]===null?"a=fmtp:".concat(s).concat(E).concat(u[0]).concat(this.eol):"a=fmtp:".concat(s).concat(E).concat(Object.keys(a.parameters).map(f=>"".concat(f,"=").concat(a.parameters[f])).join(";")).concat(this.eol)}printRtpMap(s,a){return a?"a=rtpmap:".concat(s).concat(E).concat(a.encodingName,"/").concat(a.clockRate).concat(a.encodingParameters?"/".concat(a.encodingParameters):"").concat(this.eol):""}printRTCPFeedback(s,a){let u="a=rtcp-fb:".concat(s).concat(E),f=a;return f.type==="trr-int"?u+="ttr-int".concat(E).concat(f.interval):(u+="".concat(f.type),f.parameter&&(u+="".concat(E).concat(f.parameter),f.additional&&(u+="".concat(E).concat(f.additional)))),u+this.eol}printPtime(s){return s===void 0?"":"a=ptime:".concat(s).concat(this.eol)}printMaxPtime(s){return s===void 0?"":"a=maxptime:".concat(s).concat(this.eol)}printDirection(s){return s===void 0?"":"a=".concat(s).concat(this.eol)}printSSRC(s){return s.map(a=>Object.keys(a.attributes).map(u=>"a=ssrc:".concat(a.ssrcId.toString(10)).concat(E).concat(u).concat(a.attributes[u]?":".concat(a.attributes[u]):"").concat(this.eol)).join("")).join("")}printRTCPMux(s){return s===void 0?"":"a=rtcp-mux".concat(this.eol)}printRTCPMuxOnly(s){return s===void 0?"":"a=rtcp-mux-only".concat(this.eol)}printRTCPRsize(s){return s===void 0?"":"a=rtcp-rsize".concat(this.eol)}printRTCP(s){if(s===void 0)return"";let a="a=rtcp:".concat(s.port);return s.netType&&(a+="".concat(E).concat(s.netType)),s.addressType&&(a+="".concat(E).concat(s.addressType)),s.address&&(a+="".concat(E).concat(s.address)),a+this.eol}printMSId(s){return s.map(a=>"a=msid:".concat(a.id).concat(a.appdata?"".concat(E).concat(a.appdata):"").concat(this.eol)).join("")}printImageattr(s){return s.map(a=>"a=imageattr:".concat(a).concat(this.eol)).join("")}printRid(s){return s.map(a=>{let u="a=rid:".concat(a.id).concat(E).concat(a.direction);return a.payloads&&(u+="".concat(E,"pt=").concat(a.payloads.join(","))),a.params.length>0&&(u+="".concat(E).concat(a.params.map(f=>f.type==="depend"?"depend=".concat(f.rids.join(",")):"".concat(f.type,"=").concat(f.val)).join(";"))),u+this.eol}).join("")}printSimulcast(s){return s===void 0?"":"a=simulcast:".concat(s).concat(this.eol)}printSCTPPort(s){return s===void 0?"":"a=sctp-port:".concat(s).concat(this.eol)}printMaxMessageSize(s){return s===void 0?"":"a=max-message-size:".concat(s).concat(this.eol)}printMid(s){return s===void 0?"":"a=mid:".concat(s).concat(this.eol)}printSSRCGroups(s){return s.map(a=>"a=ssrc-group:".concat(a.semantic).concat(a.ssrcIds.map(u=>"".concat(E).concat(u.toString(10))).join("")).concat(this.eol)).join("")}}function kt(S){return new ht().parse(S)}function Ut(S,s){return new Q().print(S,s)}}},e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={exports:{}};return t[n](i,i.exports,r),i.exports}return r.d=(n,i)=>{for(var o in i)r.o(i,o)&&!r.o(n,o)&&Object.defineProperty(n,o,{enumerable:!0,get:i[o]})},r.o=(n,i)=>Object.prototype.hasOwnProperty.call(n,i),r.r=n=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},r(8)})();function Mr(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r]+)(>|$)/g,function(E,d,p){if(p==="")return E;var I=c[d];return Array.isArray(I)?"$"+I.join("$"):typeof I=="number"?"$"+I:""}))}if(typeof o=="function"){var l=this;return t[Symbol.replace].call(this,i,function(){var E=arguments;return typeof E[E.length-1]!="object"&&(E=[].slice.call(E)).push(n(E,l)),o.apply(this,E)})}return t[Symbol.replace].call(this,i,o)},je.apply(this,arguments)}const hn=new class extends ln{constructor(){super(...arguments),V(this,"currentUploadLogID",0)}reportLogUploadError(t){const e=t.errorRange;e[e.length-1]&&e[e.length-1]>this.currentUploadLogID&&(this.currentUploadLogID=e[e.length-1],this.emit("REPORT_LOG_UPLOAD",t))}};class zi{constructor(e){V(this,"logger",void 0),V(this,"prefixLists",[]),this.logger=e}debug(){for(var e=arguments.length,r=new Array(e),n=0;n{for(const e in Et)if(Object.prototype.hasOwnProperty.call(Et,e)&&Et[e]===t)return e;return"DEFAULT"};class Ji{constructor(){V(this,"proxyServerURL",void 0),V(this,"logLevel",Et.DEBUG),V(this,"uploadState","collecting"),V(this,"uploadStartTimer",void 0),V(this,"uploadLogWaitingList",[]),V(this,"uploadLogUploadingList",[]),V(this,"uploadErrorCount",0),V(this,"currentLogID",0),V(this,"url",void 0),V(this,"extLog",(e,r)=>{this.appendLogToWaitingList(e,...r)})}debug(){for(var e=arguments.length,r=new Array(e),n=0;n{this.log(...r)},Date.now()-Ee);const i=Math.max(0,Math.min(4,r[0]));if(r[0]=ve()+" Agora-SDK [".concat(Qt(i),"]:"),this.appendLogToWaitingList(i,...r),i{this.uploadLog(...r)},Date.now()-Ee);const i=Math.max(0,Math.min(4,r[0]));r[0]=ve()+" Agora-SDK [".concat(Qt(i),"]:"),this.appendLogToWaitingList(i,...r)}appendLogToWaitingList(e){if(!P("UPLOAD_LOG"))return;for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i{typeof c=="object"&&(c=JSON.stringify(c)),o+="".concat(c," ")}),this.uploadLogWaitingList.push({payload_str:o,log_level:e,log_item_id:this.currentLogID++}),this.uploadState==="uploading"&&this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}startUpload(){this.uploadState="uploading",this.uploadStartTimer!==void 0&&(window.clearTimeout(this.uploadStartTimer),this.uploadStartTimer=void 0),this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}scheduleUploadStart(){this.uploadState!=="uploading"&&this.uploadStartTimer===void 0&&(this.uploadStartTimer=window.setTimeout(()=>{this.uploadStartTimer=void 0,P("UPLOAD_LOG")&&this.startUpload()},5e3))}async uploadLogs(){const e=this.uploadLogUploadingList,r={sdk_version:dn,process_id:P("PROCESS_ID"),payload:JSON.stringify(e)};return vi(async()=>{const n=await Y.post(this.url||(this.proxyServerURL?"https://".concat(this.proxyServerURL,"/ls/?h=").concat(P("LOG_UPLOAD_SERVER"),"&p=443&d=upload/v1"):"https://".concat(P("LOG_UPLOAD_SERVER"),"/upload/v1")),r,{responseType:"text"});if(n.data!=="OK"){const i=new Error("unexpected upload log response");throw i.response=n,i}},()=>(this.uploadLogUploadingList=[],!1),n=>{const i={status:-1,message:n.message,errorRange:e.map(o=>o.log_item_id)};return n.response?(i.status=n.response.status,i.data=n.response.data,i.headers=n.response.headers):n.request&&(i.status=n.request.status),hn.reportLogUploadError(i),!0},{timeout:P("UPLOAD_LOG_REQUEST_RETRY_INTERVAL"),maxRetryTimeout:P("UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL")})}uploadLogInterval(){this.uploadLogUploadingList.length===0&&this.uploadLogWaitingList.length===0||(this.uploadLogUploadingList.length===0&&(this.uploadLogUploadingList=this.uploadLogWaitingList.splice(0,P("UPLOAD_LOG_LENGTH_EACH_TIME"))),this.uploadLogs().then(()=>{this.uploadErrorCount=0,this.uploadLogWaitingList.length>0&&window.setTimeout(()=>this.uploadLogInterval(),P("UPLOAD_LOG_INTERVAL"))}).catch(e=>{this.uploadErrorCount+=1,this.uploadErrorCount<2?window.setTimeout(()=>this.uploadLogInterval(),P("UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1")):window.setTimeout(()=>this.uploadLogInterval(),P("UPLOAD_LOG_RETRY_INTERVAL_V1"))}))}}const z=new Ji;let Co=function(t){return t.FREE="free",t.UPLOADING="uploading",t}({}),bo=function(t){return t[t.MISC=0]="MISC",t[t.INTERNAL_EVENT=1]="INTERNAL_EVENT",t[t.PUBLIC_EVENT=2]="PUBLIC_EVENT",t[t.WEB_EVENT=3]="WEB_EVENT",t[t.INTERNAL_API=4]="INTERNAL_API",t[t.WEB_API=5]="WEB_API",t[t.PUBLIC_API=6]="PUBLIC_API",t}({});function Lo(t){return ae(t.reportId,"params.reportId",0,100,!1),ae(t.category,"params.category",0,100,!1),ae(t.event,"params.event",0,100,!1),ae(t.label,"params.label",0,100,!1),gi(t.value,"params.value",Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,!1),!0}let qi=function(t){return t[t.RECOVER=0]="RECOVER",t[t.WARNING=1]="WARNING",t[t.ERROR=2]="ERROR",t}({}),Qi=function(t){return t.CONFIG_DISTRIBUTE="config-distribute-error",t}({});const $i={sid:"",lts:0,success:null,cname:null,uid:null,peer:null,cid:null,elapse:null,extend:null,vid:0};let $=function(t){return t.PUBLISH="publish",t.SUBSCRIBE="subscribe",t.WS_COMPRESSOR_INIT="ws_compressor_init",t.SESSION_INIT="session_init",t.JOIN_CHOOSE_SERVER="join_choose_server",t.RTE_DETAIL="rte_detail_stats",t.REQ_USER_ACCOUNT="req_user_account",t.JOIN_GATEWAY="join_gateway",t.REJOIN_GATEWAY="rejoin_gateway",t.STREAM_SWITCH="stream_switch",t.REQUEST_PROXY_WORKER_MANAGER="request_proxy_worker_manager",t.REQUEST_PROXY_APPCENTER="request_proxy_appcenter",t.FIRST_VIDEO_RECEIVED="first_video_received",t.FIRST_AUDIO_RECEIVED="first_audio_received",t.FIRST_VIDEO_DECODE="first_video_decode",t.FIRST_AUDIO_DECODE="first_audio_decode",t.XLA_PEER_FIRST_VIDEO_FRAME="xla_peer_first_video_frame",t.ON_ADD_AUDIO_STREAM="on_add_audio_stream",t.ON_ADD_VIDEO_STREAM="on_add_video_stream",t.ON_UPDATE_STREAM="on_update_stream",t.ON_REMOVE_STREAM="on_remove_stream",t.USER_ANALYTICS="req_user_analytics",t.PC_STATS="pc_stats",t.UPDATE_REMOTE_RTPCAPABILITIES="update_remote_rtpCapabilities",t.AB_TEST="ab_test",t.ALARM_STATUS_NOTIFY="alarm_status_notify",t}({}),j=function(t){return t.SESSION="io.agora.pb.Wrtc.Session",t.JOIN_CHOOSE_SERVER="io.agora.pb.Wrtc.JoinChooseServer",t.RTE_DETAIL="io.agora.pb.Wrtc.RteDetailStats",t.REQ_USER_ACCOUNT="io.agora.pb.Wrtc.ReqUserAccount",t.JOIN_GATEWAY="io.agora.pb.Wrtc.JoinGateway",t.RE_JOIN_GATEWAY="io.agora.pb.Wrtc.ReJoinGateway",t.PUBLISH="io.agora.pb.Wrtc.Publish",t.SUBSCRIBE="io.agora.pb.Wrtc.Subscribe",t.WS_COMPRESSOR_INIT="io.agora.pb.Wrtc.WsCompressorInit",t.STREAM_SWITCH="io.agora.pb.Wrtc.StreamSwitch",t.AUDIO_SENDING_STOPPED="io.agora.pb.Wrtc.AudioSendingStopped",t.VIDEO_SENDING_STOPPED="io.agora.pb.Wrtc.VideoSendingStopped",t.REQUEST_PROXY_APPCENTER="io.agora.pb.Wrtc.RequestProxyAppCenter",t.REQUEST_PROXY_WORKER_MANAGER="io.agora.pb.Wrtc.RequestProxyWorkerManager",t.API_INVOKE="io.agora.pb.Wrtc.ApiInvoke",t.FIRST_VIDEO_RECEIVED="io.agora.pb.Wrtc.FirstVideoReceived",t.FIRST_AUDIO_RECEIVED="io.agora.pb.Wrtc.FirstAudioReceived",t.FIRST_VIDEO_DECODE="io.agora.pb.Wrtc.FirstVideoDecode",t.FIRST_AUDIO_DECODE="io.agora.pb.Wrtc.FirstAudioDecode",t.XLA_PEER_FIRST_VIDEO_FRAME="io.agora.pb.Wrtc.XLAPeerFirstVideoFrame",t.ON_ADD_AUDIO_STREAM="io.agora.pb.Wrtc.OnAddAudioStream",t.ON_ADD_VIDEO_STREAM="io.agora.pb.Wrtc.OnAddVideoStream",t.ON_UPDATE_STREAM="io.agora.pb.Wrtc.OnUpdateStream",t.ON_REMOVE_STREAM="io.agora.pb.Wrtc.OnRemoveStream",t.JOIN_CHANNEL_TIMEOUT="io.agora.pb.Wrtc.JoinChannelTimeout",t.PEER_PUBLISH_STATUS="io.agora.pb.Wrtc.PeerPublishStatus",t.WORKER_EVENT="io.agora.pb.Wrtc.WorkerEvent",t.AP_WORKER_EVENT="io.agora.pb.Wrtc.APWorkerEvent",t.JOIN_WEB_PROXY_AP="io.agora.pb.Wrtc.JoinWebProxyAP",t.WEBSOCKET_QUIT="io.agora.pb.Wrtc.WebSocketQuit",t.USER_ANALYTICS="io.agora.pb.Wrtc.UserAnalytics",t.AUTOPLAY_FAILED="io.agora.pb.Wrtc.AutoplayFailed",t.PC_STATS="io.agora.pb.Wrtc.PCStats",t.UPDATE_REMOTE_RTPCAPABILITIES="io.agora.pb.Wrtc.UpdateRemoteRTPCapabilities",t.AB_TEST="io.agora.pb.Wrtc.ABTest",t.ALARM_STATUS_NOTIFY="io.agora.pb.Wrtc.AlarmStatusNotify",t}({}),wo=function(t){return t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",t}({}),Zi=function(t){return t[t.SESSION=26]="SESSION",t[t.JOIN_CHOOSE_SERVER=27]="JOIN_CHOOSE_SERVER",t[t.REQ_USER_ACCOUNT=196]="REQ_USER_ACCOUNT",t[t.JOIN_GATEWAY=28]="JOIN_GATEWAY",t[t.PUBLISH=30]="PUBLISH",t[t.SUBSCRIBE=29]="SUBSCRIBE",t[t.WS_COMPRESSOR_INIT=9430]="WS_COMPRESSOR_INIT",t[t.STREAM_SWITCH=32]="STREAM_SWITCH",t[t.AUDIO_SENDING_STOPPED=33]="AUDIO_SENDING_STOPPED",t[t.VIDEO_SENDING_STOPPED=34]="VIDEO_SENDING_STOPPED",t[t.REQUEST_PROXY_APPCENTER=35]="REQUEST_PROXY_APPCENTER",t[t.REQUEST_PROXY_WORKER_MANAGER=36]="REQUEST_PROXY_WORKER_MANAGER",t[t.API_INVOKE=41]="API_INVOKE",t[t.FIRST_VIDEO_RECEIVED=348]="FIRST_VIDEO_RECEIVED",t[t.FIRST_AUDIO_RECEIVED=349]="FIRST_AUDIO_RECEIVED",t[t.FIRST_VIDEO_DECODE=350]="FIRST_VIDEO_DECODE",t[t.FIRST_AUDIO_DECODE=351]="FIRST_AUDIO_DECODE",t[t.ON_ADD_AUDIO_STREAM=352]="ON_ADD_AUDIO_STREAM",t[t.ON_ADD_VIDEO_STREAM=353]="ON_ADD_VIDEO_STREAM",t[t.ON_UPDATE_STREAM=356]="ON_UPDATE_STREAM",t[t.ON_REMOVE_STREAM=355]="ON_REMOVE_STREAM",t[t.JOIN_CHANNEL_TIMEOUT=407]="JOIN_CHANNEL_TIMEOUT",t[t.PEER_PUBLISH_STATUS=408]="PEER_PUBLISH_STATUS",t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",t[t.JOIN_WEB_PROXY_AP=700]="JOIN_WEB_PROXY_AP",t[t.WEBSOCKET_QUIT=671]="WEBSOCKET_QUIT",t[t.USER_ANALYTICS=1e4]="USER_ANALYTICS",t[t.AUTOPLAY_FAILED=9178]="AUTOPLAY_FAILED",t}({});const pt="[config-restore]",Ne="websdk_ng_",Ae=Ne+"blocked_config_hashes",rr=Ne+"api_failure_records",Tn=Ne+"global_parameter",Rn=Ne+"config_restore_state";function Ye(t){return t==null||typeof t!="object"?JSON.stringify(t):Array.isArray(t)?"["+t.map(e=>Ye(e)).join(",")+"]":"{"+Object.keys(t).sort().map(e=>JSON.stringify(e)+":"+Ye(t[e])).join(",")+"}"}function to(t){let e=2166136261;for(let r=0;r>>0).toString(36)}function fn(t){return to(Ye(t))}function Oe(){try{const t=window.localStorage.getItem(Rn);if(t)return JSON.parse(t)}catch{}return{currentConfigHash:"",configVerified:!1}}function Fr(t){try{window.localStorage.setItem(Rn,JSON.stringify(t))}catch{}}function nr(){try{const t=window.localStorage.getItem(rr);return t?JSON.parse(t):[]}catch(t){return z.debug("[error] ".concat(pt," error getting API failure records:"),t),[]}}function An(){return nr().reduce((t,e)=>t+e.count,0)}function Xe(){try{window.localStorage.removeItem(rr)}catch(t){z.debug("[error] ".concat(pt," error clearing API failure records:"),t)}}function eo(){try{const t=An(),e=P("MAX_CONFIG_RETRY");if(t({api:i.apiName,error:i.errorCode||i.errorMessage,count:i.count,lastTime:i.lastTimestamp}))}}),Xe()}catch(t){z.debug("[error] ".concat(pt," error restoring config:"),t)}}function Br(t,e){try{if(!P("ENABLE_CONFIG_RESTORE"))return;if(e&&e.name==="AgoraRTCException"){const d=P("CONFIG_ERROR_MONITOR");if(!Array.isArray(d)||!d.includes(e.code))return}const r=window.localStorage.getItem(Tn);if(!r||r.length<20||Oe().configVerified)return;const i=P("CONFIG_RESTORE_ERROR_API");if(!Array.isArray(i)||!i.includes(t))return;let o,c;e&&(e.code&&(o=e.code),c=e.message?e.message:typeof e=="string"?e:e.toString()),function(d,p,I){try{const _=nr(),R="".concat(d,":").concat(p||""),T=_.find(m=>"".concat(m.apiName,":").concat(m.errorCode||"")===R),A=Oe().currentConfigHash;if(T)T.count++,T.lastTimestamp=Date.now(),I&&(T.errorMessage=I),A&&(T.configHash=A);else{const m=Date.now();_.push({apiName:d,errorCode:p,errorMessage:I,count:1,firstTimestamp:m,lastTimestamp:m,configHash:A||void 0})}const O=_.length>20?_.slice(-20):_;window.localStorage.setItem(rr,JSON.stringify(O))}catch(_){z.debug("[error] ".concat(pt," error saving API failure record:"),_)}}(t,o,c);const l=An(),E=P("MAX_CONFIG_RETRY");z.debug("".concat(pt," API failure count: ").concat(l,"/").concat(E,", API: ").concat(t,", Error: ").concat(o||c)),l>=E&&eo()}catch{}}function Do(t){try{const e=fn(t),r=Oe();if(r.currentConfigHash&&r.currentConfigHash===e)return Fr({currentConfigHash:e,configVerified:!0}),Xe(),ze(),void z.debug("".concat(pt," config verified as safe, skip further checks"));Fr({currentConfigHash:e,configVerified:!1}),Xe(),ze()}catch(e){z.debug("[error] ".concat(pt," error on config applied:"),e)}}function Po(t){try{if(!P("ENABLE_CONFIG_RESTORE"))return!1;const e=fn(t),r=window.localStorage.getItem(Ae);if(!r)return!1;const n=JSON.parse(r),i=P("BLOCKED_CONFIG_MAX_TIME");return Date.now()-n.timestamp>i?(ze(),!1):n.configHashes.includes(e)}catch(e){return z.debug("[error] ".concat(pt," error checking blocked config:"),e),!1}}function ze(){try{window.localStorage.removeItem(Ae)}catch(t){z.debug("[error] ".concat(pt," error resetting blocked config:"),t)}}class ro{constructor(){V(this,"baseInfoMap",new Map),V(this,"proxyServer",void 0),V(this,"eventUploadTimer",void 0),V(this,"setSessionIdTimer",void 0),V(this,"url",void 0),V(this,"sids",new Set),V(this,"backupUrl",void 0),V(this,"_appId",void 0),V(this,"_aid",0),V(this,"keyEventUploadPendingItems",[]),V(this,"normalEventUploadPendingItems",[]),V(this,"apiInvokeUploadPendingItems",[]),V(this,"apiInvokeCount",0),V(this,"apiInvokeLoggedCount",0),V(this,"ltsList",[]),V(this,"lastSendNormalEventTime",Date.now()),V(this,"customReportCounterTimer",void 0),V(this,"customReportCount",0),V(this,"extApiInvoke",async e=>{for(const r of e){const n=b(b({},r),{},{sid:null,invokeId:++this.apiInvokeCount,tag:Re.TRACER});this.sendApiInvoke(n)}}),this.eventUploadTimer=window.setInterval(this.doSend.bind(this),P("EVENT_REPORT_SEND_INTERVAL")),this.setSessionIdTimer=window.setInterval(this.appendSessionId.bind(this),P("EVENT_REPORT_SEND_INTERVAL"))}getBaseInfoBySessionId(e){return this.baseInfoMap.get(e)}setAppId(e){this._appId=e,this._aid=parseInt(e.replace(/[a-fA-F0-9]{8}/g,r=>{let n=vr(r,2);return n[0]+n[1]}),16)||0}reportApiInvoke(e,r,n){r.timeout=r.timeout||6e4,r.reportResult=r.reportResult===void 0||r.reportResult;const i=Date.now();this.apiInvokeCount+=1;const o=this.apiInvokeCount,c=!!P("SHOW_REPORT_INVOKER_LOG"),l=!!P("SHOW_REPORT_USER_INVOKER_LOG"),E=c||l&&r.id;E&&(this.apiInvokeLoggedCount+=1);const d=this.apiInvokeLoggedCount;function p(T,A){if(E){let O="[apiInvoke-".concat(d,"]");if(r.id&&(O+="[".concat(r.id,"]")),r.name&&(O+="[".concat(r.name,"]"),r.name===Li.JOIN))return z.info("".concat(O," ").concat(T));z.info("".concat(O," ").concat(T),T==="start"?r.options:A||"")}}const I=()=>({tag:r.tag,invokeId:o,sid:e,name:r.name,apiInvokeTime:i,options:r.options,states:r.states||null});p("start");let _=!1;ye(r.timeout).then(()=>{_||(this.sendApiInvoke(b(b({},I()),{},{error:lt.API_INVOKE_TIMEOUT,success:!1})),p("timeout"),Br(r.name,new ot(lt.API_INVOKE_TIMEOUT)))});const R=new ot(lt.UNEXPECTED_ERROR,"".concat(r.name,": this api invoke is end"));return{onSuccess:T=>{const A=()=>{if(_)throw R;return _=!0,this.sendApiInvoke(b(b({},I()),{},{success:!0},r.reportResult&&{result:T})),p("onSuccess"),T};return n?Pr(A,r.name+"Success",n,()=>_=!0):A()},onError:T=>{const A=()=>{if(_)throw T;_=!0,this.sendApiInvoke(b(b({},I()),{},{success:!1,error:T})),Br(r.name,T),p("onFailure",T.toString())};return n?Pr(A,r.name+"Error",n,()=>_=!0):A()}}}_send(e,r,n){this.send({type:e,data:r},n)}_sendApiInvoke(e){return this.sendApiInvoke(e)}sessionInit(e,r){if(this.baseInfoMap.has(e))return;const n=Date.now(),i=this.createBaseInfo(e,n);i.cname=r.cname,i.rteUrl=r.rteUrl;const o=Object.assign({},{willUploadConsoleLog:P("UPLOAD_LOG"),maxTouchPoints:navigator.maxTouchPoints,areaVersion:pn?"global":"oversea",areas:P("AREAS")&&P("AREAS").join(",")},r.extend),c=r.stringUid,l=r.channelProfile,E=r.channelMode,d=r.isABTestSuccess,p=r.lsid,I=r.clientRole,_=Date.now(),R=b(b({},i),{},{eventType:$.SESSION_INIT,appid:r.appid,browser:navigator.userAgent,buildFormat:r.buildFormat,build:Ki,lts:_,elapse:_-n,extend:JSON.stringify(o),mode:r.mode,process:P("PROCESS_ID"),appType:P("APP_TYPE"),success:!0,version:dn,stringUid:c,channelProfile:l,channelMode:E,isABTestSuccess:d,lsid:p,clientType:Ni()?42:20,clientRole:I,serviceId:P("PROCESS_ID"),extensionID:P("PLUGIN_INFO").join(",")||"",rteUrl:r.rteUrl,rteSid:r.rteSid,installId:Ue()});this.send({type:j.SESSION,data:R},!0)}reportRteDetail(e){const r=this.baseInfoMap.get(e);if(!r)return;const n=r.info,i=Date.now(),o=b(b({},n),{},{eventType:$.RTE_DETAIL,lts:i,success:!0,elapse:i-r.startTime,vid:n.vid===void 0?0:Number(n.vid),ua:navigator.userAgent});this.send({type:j.RTE_DETAIL,data:o},!0)}joinChooseServer(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info;r.vid&&(i.vid=r.vid);const o=Date.now(),c=b(b({},i),{},{role:r.role,eventType:$.JOIN_CHOOSE_SERVER,lts:o,eventElapse:r.elapse||o-r.lts,chooseServerAddr:r.csAddr,errorCode:r.ec,elapse:o-n.startTime,success:r.succ,chooseServerAddrList:JSON.stringify(r.serverList),uid:r.uid?parseInt(r.uid):null,cid:r.cid?parseInt(r.cid):null,chooseServerIp:r.csIp||"",opid:r.opid,unilbsServerIds:r.unilbsServerIds,extend:r.extend||void 0,isHttp3:r.isHttp3,corssRegionTagReq:r.corssRegionTagReq||void 0,corssRegionTagRes:r.corssRegionTagRes||void 0,ua:navigator.userAgent,resourceTimingInfo:r.resourceTimingInfo||void 0});this.send({type:j.JOIN_CHOOSE_SERVER,data:c},!0)}reqUserAccount(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.REQ_USER_ACCOUNT,lts:o,success:r.success,serverAddress:r.serverAddr,stringUid:r.stringUid,uid:r.uid,errorCode:r.errorCode,elapse:r.elapse||o-n.startTime,eventElapse:o-r.lts,extend:JSON.stringify(r.extend)});this.send({type:j.REQ_USER_ACCOUNT,data:c},!0)}joinGateway(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info;r.vid&&(i.vid=r.vid),i.uid=r.uid,i.cid=r.cid;const o=Date.now(),c=r.firstSuccess,l=r.addr,E=r.isProxy,d=o-n.startTime,p=b(b({},i),{},{eventType:$.JOIN_GATEWAY,lts:o,gatewayAddr:r.addr,success:r.succ,errorCode:r.ec,errorMsg:r.errorMsg||"",elapse:d,eventElapse:o-r.lts,firstSuccess:c,signalChannel:r.signalChannel,preload:r.preload?1:0,installId:Ue(),isABTestSuccess:r.isABTestSuccess?1:0,gatewayIp:null,gatewayPort:null,isProxy:E?1:0}),I=p.success?1:0;if(r.succ&&(n.lastJoinSuccessTime=o),l)if(p.signalChannel==="1"){const _=je(/(\d+\.\d+\.\d+\.\d+):(\d+)/,{ip:1,port:2}),R=l.match(_);p.gatewayIp=R&&R.groups?R.groups.ip:"",p.gatewayPort=R&&R.groups?R.groups.port:""}else if(E){const _=l.match(/h=(\d{1,3}-){3}\d{1,3}/g),R=l.match(/p=[0-9]{1,6}/g);p.gatewayIp=_&&_.length?_[0].split("=")[1].replace(/-/g,"."):"",p.gatewayPort=R&&R.length?R[0].split("=")[1]:""}else{const _=l.match(/wss:\/\/(\d{1,3}-){3}\d{1,3}/g),R=l.match(/(:|p=)[0-9]{1,6}/g);p.gatewayIp=_&&_.length?_[0].split("//")[1].replace(/-/g,"."):"",p.gatewayPort=R&&R.length?R[0].split(/:|p=/g)[1]:""}if(c)this.send({type:j.JOIN_GATEWAY,data:p},!0);else{const _={isSuccess:I,port:p.gatewayPort};delete p.success,delete p.eventType,delete p.firstSuccess,delete p.gatewayPort,p.vid=Number(p.vid);const R=Object.assign({},p,_,{eventType:$.REJOIN_GATEWAY});this.send({type:j.RE_JOIN_GATEWAY,data:R},!0)}}joinChannelTimeout(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=Date.now(),o=b(b({},n.info),{},{lts:i,timeout:r,elapse:i-n.startTime});this.send({type:j.JOIN_CHANNEL_TIMEOUT,data:o},!0)}publish(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.PUBLISH,lts:o,eventElapse:r.eventElapse,elapse:o-n.startTime,success:r.succ,errorCode:r.ec,videoName:r.videoName,audioName:r.audioName,screenName:r.screenName,screenshare:r.screenshare,audio:r.audio,video:r.video,p2pid:r.p2pid,publishRequestid:r.publishRequestid});this.send({type:j.PUBLISH,data:c},!0)}subscribe(e,r,n){const i=this.baseInfoMap.get(e);if(!i)return;const o=i.info,c=Date.now(),l=b(b({},o),{},{eventType:$.SUBSCRIBE,lts:c,eventElapse:r.eventElapse,elapse:c-i.startTime,success:r.succ,errorCode:r.ec,video:r.video,audio:r.audio,subscribeRequestid:r.subscribeRequestid,p2pid:r.p2pid,preSsrc:r.preSsrc?1:0},n&&{extend:JSON.stringify({isMassSubscribe:!0})});typeof r.peerid=="string"?l.peerSuid=r.peerid:l.peer=r.peerid,this.send({type:j.SUBSCRIBE,data:l},!0)}wsCompressorInit(e){const r=[...this.baseInfoMap.keys()],n=r.length?r[0]:"UnableToGetSid",i=this.baseInfoMap.get(n);if(!i)return;const o=i.info,c=Date.now(),l=b(b({},o),{},{eventType:$.WS_COMPRESSOR_INIT,lts:c,eventElapse:e.eventElapse,elapse:c-i.startTime,status:e.status?1:2});this.send({type:j.WS_COMPRESSOR_INIT,data:l},!0)}firstXLAPeerFirstVideoFrame(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=r.peerPubStatusMs-(n.lastJoinSuccessTime||o),l=b(b({},i),{},{elapse:o-n.startTime,eventType:$.XLA_PEER_FIRST_VIDEO_FRAME,lts:o,peer:r.peer,width:r.width,height:r.height,ssrc:r.ssrc,p2pid:r.p2pid,peerPublishDuration:r.peerPublishDuration,joinChannelSuccessElapse:c,peerPubStatusMs:r.peerPubStatusMs-r.joinChannelStart,availablePublish:r.peerPublishDuration>c?1:0,preloadStart:Math.max(r.preloadStart-r.joinChannelStart,0),preloadEnd:Math.max(r.preloadEnd-r.joinChannelStart,0),encrypt:Math.max(r.apStart-r.joinChannelStart,0),ap:Math.max(r.apEnd-r.joinChannelStart,0),sua:Math.max(r.suaEnd-r.joinChannelStart,0),beforeConnect:Math.max(r.beforeConnect-r.joinChannelStart,0),peerRecevier:Math.max(r.peerReceiver-r.joinChannelStart,0),ice:Math.max(r.ice-r.joinChannelStart,0),pc:Math.max(r.pc-r.joinChannelStart,0),signalConnected:Math.max(r.signalConnected-r.joinChannelStart,0),joinReq:Math.max(r.joinReq-r.joinChannelStart,0),joinRes:Math.max(r.joinRes-r.joinChannelStart,0),userJoinNotify:Math.max(r.userJoinNotify-r.joinChannelStart,0),videoSsrcNotify:Math.max(r.videoAddNotify-r.joinChannelStart,0),subscribeDelayMs:Math.max(r.subscribeStart-r.videoAddNotify,0),subscribeStart:Math.max(r.subscribeStart-r.joinChannelStart,0),subscribeEnd:Math.max(r.subscribeEnd-r.joinChannelStart,0),firstReceived:Math.max(r.firstReceived-r.joinChannelStart,0),firstDecoded:Math.max(r.firstDecoded-r.joinChannelStart,0),firstPreRender:Math.max(r.firstPreRender-r.joinChannelStart,0),firstRender:Math.max(r.firstRender-r.joinChannelStart,0),playDelayMs:Math.max(r.playStart-r.subscribeEnd,0),playStart:Math.max(r.playStart-r.joinChannelStart,0),playEnd:Math.max(r.playEnd-r.joinChannelStart,0),isPreSub:r.isPreSub?1:0,isPrePc:r.isPrePc?1:0,isPreInstantVideo:r.isPreInstantVideo?1:0,firstReceivedEncodedFrame:r.firstReceivedEncodedFrame?Math.max(r.firstReceivedEncodedFrame-r.joinChannelStart,0):void 0,frameType:r.frameType||"",rtpTimestamp:r.rtpTimestamp||0,framePayloadType:r.framePayloadType||0,frameDataLength:r.frameDataLength||0,mimeType:r.mimeType||"",sdpEndPoint:r.sdpEndPoint?1:0});this.send({type:j.XLA_PEER_FIRST_VIDEO_FRAME,data:l},!0)}firstRemoteVideoDecode(e,r,n,i){const o=this.baseInfoMap.get(e);if(!o)return;const c=o.info,l=Date.now(),E=b(b(b({},c),i),{},{elapse:l-o.startTime,eventType:r,lts:l,firstDecodeFrame:Math.max((i.firstFrame||l)-o.startTime,0),apEnd:Math.max(i.apEnd-o.startTime,0),apStart:Math.max(i.apStart-o.startTime,0),joinGwEnd:Math.max(i.joinGwEnd-o.startTime,0),joinGwStart:Math.max(i.joinGwStart-o.startTime,0),pcEnd:Math.max(i.pcEnd-o.startTime,0),pcStart:Math.max(i.pcStart-o.startTime,0),subscriberEnd:Math.max(i.subscriberEnd-o.startTime,0),subscriberStart:Math.max(i.subscriberStart-o.startTime,0),videoAddNotify:Math.max(i.videoAddNotify-o.startTime,0)});this.send({type:n,data:E},!0)}firstRemoteFrame(e,r,n,i){const o=this.baseInfoMap.get(e);if(!o)return;const c=o.info,l=Date.now(),E=b(b(b({},c),i),{},{elapse:l-o.startTime,eventType:r,lts:l});this.send({type:n,data:E},!0)}abTest(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:i.vid===void 0?0:Number(i.vid),elapse:o-n.startTime,eventType:$.AB_TEST,lts:o});this.send({type:j.AB_TEST,data:c},!0)}pcStats(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:i.vid===void 0?0:Number(i.vid),elapse:o-n.startTime,eventType:$.PC_STATS,lts:o,preallocation:r.preallocation?1:0});this.send({type:j.PC_STATS,data:c},!0)}updateRemoteRTPCapabilities(e,r){if(e){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:i.vid===void 0?0:Number(i.vid),eventType:$.UPDATE_REMOTE_RTPCAPABILITIES,lts:o});this.send({type:j.UPDATE_REMOTE_RTPCAPABILITIES,data:c},!0)}}onGatewayStream(e,r,n,i){const o=this.baseInfoMap.get(e);if(!o)return;const c=o.info,l=Date.now(),E=b(b(b({},c),i),{},{eventType:r,lts:l});this.send({type:n,data:E},!0)}streamSwitch(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.STREAM_SWITCH,lts:o,isDual:r.isdual,elapse:o-n.startTime,success:r.succ});this.send({type:j.STREAM_SWITCH,data:c},!0)}requestProxyAppCenter(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.REQUEST_PROXY_APPCENTER,lts:o,eventElapse:o-r.lts,elapse:o-n.startTime,APAddr:r.APAddr,workerManagerList:r.workerManagerList,response:r.response,errorCode:r.ec,success:r.succ});this.send({type:j.REQUEST_PROXY_APPCENTER,data:c},!0)}requestProxyWorkerManager(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{eventType:$.REQUEST_PROXY_WORKER_MANAGER,lts:o,eventElapse:o-r.lts,elapse:o-n.startTime,workerManagerAddr:r.workerManagerAddr,response:r.response,errorCode:r.ec,success:r.succ});this.send({type:j.REQUEST_PROXY_WORKER_MANAGER,data:c},!0)}setProxyServer(e){this.proxyServer=e,e?z.debug("reportProxyServerurl: ".concat(e)):z.debug("disable reportProxyServerurl: ".concat(e))}peerPublishStatus(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b({},i),{},{subscribeElapse:r.subscribeElapse,peer:r.peer,peerPublishDuration:Math.max(r.audioPublishDuration,r.videoPublishDuration),audiotag:r.audioPublishDuration>0?1:-1,videotag:r.videoPublishDuration>0?1:-1,lts:o,elapse:o-n.startTime,joinChannelSuccessElapse:o-(n.lastJoinSuccessTime||o),peerPublishDurationVideo:r.videoPublishDuration,peerPublishDurationAudio:r.audioPublishDuration});this.send({type:j.PEER_PUBLISH_STATUS,data:c},!0)}workerEvent(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o,productType:"WebRTC"});Mi(c,"payload",1300).forEach(l=>this.send({type:j.WORKER_EVENT,data:l},!0))}apworkerEvent(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o});this.send({type:j.AP_WORKER_EVENT,data:c},!0)}joinWebProxyAP(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o,extend:r.extend||void 0});this.send({type:j.JOIN_WEB_PROXY_AP,data:c},!0)}WebSocketQuit(e,r){const n=this.baseInfoMap.get(e);if(!n)return;const i=n.info,o=Date.now(),c=b(b(b({},i),r),{},{elapse:o-n.startTime,lts:o});this.send({type:j.WEBSOCKET_QUIT,data:c},!0)}async sendCustomReportMessage(e,r){if(this.customReportCount+=r.length,this.customReportCount>P("CUSTOM_REPORT_LIMIT"))throw new ot(lt.CUSTOM_REPORT_FREQUENCY_TOO_HIGH);this.customReportCounterTimer||(this.customReportCounterTimer=window.setInterval(()=>{this.customReportCount=0},5e3));const n=Date.now(),i=r.map(o=>({type:j.USER_ANALYTICS,data:b(b({sid:e},o),{},{lts:n})}));try{P("NEW_REPORT_SERVER")?await this.postDataToStatsCollector2(i):await this.postDataToStatsCollector(i)}catch(o){throw z.error("send custom report message failed",o.toString()),new ot(lt.CUSTOM_REPORT_SEND_FAILED,o.message)}}reportAlarm(e,r){const n=e?this.baseInfoMap.get(e):void 0,i=n==null?void 0:n.info,o=Date.now(),c=b(b(b({},i),r),{},{vid:(i==null?void 0:i.vid)===void 0?0:Number(i.vid),elapse:n?o-n.startTime:0,eventType:$.ALARM_STATUS_NOTIFY,lts:o,installId:Ue(),processId:P("PROCESS_ID")});this.send({type:j.ALARM_STATUS_NOTIFY,data:c},!0)}sendApiInvoke(e){const r=P("NOT_REPORT_EVENT");if(e.tag&&r.includes&&r.includes(e.tag))return!1;if(e.sid===null)return this.apiInvokeUploadPendingItems.push(e),!1;const n=this.baseInfoMap.get(e.sid);if(!n)return this.apiInvokeUploadPendingItems.push(e),!1;const i=n.info,o=i.cname,c=i.uid,l=i.cid;let E;if(e.lts=e.lts||Date.now(),e.error)if(e.error instanceof ot){const p=e.error,I=p.code,_=p.message;E=I||_||e.error.toString()}else E=e.error.toString();const d={invokeId:e.invokeId,sid:e.sid,cname:o,cid:l,uid:c,lts:e.lts,success:e.success,elapse:e.lts-n.startTime,execElapse:e.lts-e.apiInvokeTime,apiName:e.name,options:e.options?JSON.stringify(e.options):void 0,execStates:e.states?JSON.stringify(e.states):void 0,execResult:e.result?JSON.stringify(e.result):void 0,errorCode:e.error?E:void 0,errorMsg:e.error?JSON.stringify(e.error):void 0};return this.send({type:j.API_INVOKE,data:d},!1),!0}addSid(e){this.sids.add(e)}removeSid(e){this.sids.delete(e)}appendSessionId(){const e=this.apiInvokeUploadPendingItems;if(e.length===0)return;const r=Array.from(this.sids).find(n=>n!==null);r&&e.forEach(n=>{n&&(n.sid=r,this.sendApiInvoke(Object.assign({},n)))}),e.length=0}send(e,r){if(r)return this.keyEventUploadPendingItems.push(e),void this.sendItems(this.keyEventUploadPendingItems,!0);this.normalEventUploadPendingItems.push(e),this.normalEventUploadPendingItems.length>P("NORMAL_EVENT_QUEUE_CAPACITY")&&this.normalEventUploadPendingItems.splice(0,1),this.normalEventUploadPendingItems.length>=10&&this.sendItems(this.normalEventUploadPendingItems,!1)}doSend(){this.keyEventUploadPendingItems.length>0&&this.sendItems(this.keyEventUploadPendingItems,!0),this.normalEventUploadPendingItems.length>0&&Date.now()-this.lastSendNormalEventTime>=5e3&&this.sendItems(this.normalEventUploadPendingItems,!1)}sendItems(e,r){const n=[],i=[];for(;e.length;){const o=e.shift();n.length<20?n.push(o):i.push(o)}e.push(...i);for(const o of[...n])this.ltsList.indexOf(o.data.lts)!==-1?(o.data.lts=this.ltsList[this.ltsList.length-1]+1,this.ltsList.push(o.data.lts)):(this.ltsList.push(o.data.lts),this.ltsList.sort((c,l)=>c-l));return r||(this.lastSendNormalEventTime=Date.now()),P("ENABLE_EVENT_REPORT")&&n.length&&(P("NEW_REPORT_SERVER")?this.postDataToStatsCollector2(n):this.postDataToStatsCollector(n)).catch((o=>c=>{P("EVENT_REPORT_RETRY")&&(r?this.keyEventUploadPendingItems=this.keyEventUploadPendingItems.concat(o):(this.normalEventUploadPendingItems=this.normalEventUploadPendingItems.concat(o),this.normalEventUploadPendingItems.length>P("NORMAL_EVENT_QUEUE_CAPACITY")&&(this.normalEventUploadPendingItems.splice(0,this.normalEventUploadPendingItems.length-P("NORMAL_EVENT_QUEUE_CAPACITY")),z.warning("report: drop normal events"))))})(n)),e}async postDataToStatsCollector2(e){Zt.networkState===Dt.OFFLINE&&await Promise.race([Zt.onlineWaiter,ye(2*Ge.maxRetryTimeout)]);const r=o=>{let c=new Uint8Array;return o.forEach(l=>{const E=bi(JSON.stringify(l.data)),d=new ArrayBuffer(5),p=(_=>{let R=0;return Object.entries(j).forEach(T=>{let A=vr(T,2),O=A[0];A[1]===_.type&&(R=Zi[O])}),R})(l),I=new DataView(d);I.setUint16(0,E.byteLength,!0),I.setUint8(2,255&p),I.setUint8(3,p>>>8&255),I.setUint8(4,p>>>16&255),c=Lr(c,new Uint8Array(d)),c=Lr(c,E)}),c},n="event";let i=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("NEW_REPORT_SERVER_DOMAINS")[0],"&p=443&d=").concat(n):"https://".concat(P("NEW_REPORT_SERVER_DOMAINS")[0],"/").concat(n);for(let o=0;o<2;o+=1){o===1&&(i=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("NEW_REPORT_SERVER_DOMAINS")[1],"&p=443&d=").concat(n):"https://".concat(P("NEW_REPORT_SERVER_DOMAINS")[1],"/").concat(n));try{await He(i,{timeout:1e4,data:r(e),headers:b(b({biz:"webrtc",sendts:Math.round(Date.now()/1e3),debug:"false"},this._appId&&{appid:this._appId}),{},{"Content-Type":"application/octet-stream"})},!0)}catch(c){if(o===1)throw c;continue}return}}async postDataToStatsCollector(e){let r=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const n=(E=>{const d=E&&E.data.sid&&this.baseInfoMap.get(E.data.sid);return d&&d.info.vid&&+d.info.vid||0})(e[0]),i=n?void 0:this._aid,o={msgType:"EventMessages",sentTs:Math.round(Date.now()/1e3),payloads:e.map(E=>JSON.stringify(E)),vid:n,aid:i};Zt.networkState===Dt.OFFLINE&&await Promise.race([Zt.onlineWaiter,ye(2*Ge.maxRetryTimeout)]);const c=r?"/events/proto-raws":"/events/messages";let l=this.url||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("EVENT_REPORT_DOMAIN"),"&p=").concat(P("STATS_COLLECTOR_PORT"),"&d=").concat(c):"https://".concat(P("EVENT_REPORT_DOMAIN"),":").concat(P("STATS_COLLECTOR_PORT")).concat(c));for(let E=0;E<2;E+=1){E===1&&(l=this.backupUrl||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(P("EVENT_REPORT_BACKUP_DOMAIN"),"&p=").concat(P("STATS_COLLECTOR_PORT"),"&d=").concat(c):"https://".concat(P("EVENT_REPORT_BACKUP_DOMAIN"),":").concat(P("STATS_COLLECTOR_PORT")).concat(c)));try{r?await xi(l,{timeout:1e4,data:o}):await He(l,{timeout:1e4,data:o})}catch(d){if(E===1)throw d;continue}return}}createBaseInfo(e,r){const n=Object.assign({},$i);return n.sid=e,this.baseInfoMap.set(e,{info:n,startTime:r}),n}reportResourceTiming(e,r){const n=performance.getEntriesByName(e),i=n[n.length-1];i&&this.reportApiInvoke(r,{name:"Client.resourceTiming",options:i,tag:Re.TRACER}).onSuccess()}}function yo(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(e,r,n){const i=n.value;if(typeof i=="function"){const o=t.className||e.__className__||(e.constructor.name==="AgoraRTCClient"?"Client":e.constructor.name);n.value=function(){for(var c,l=arguments.length,E=new Array(l),d=0;d(I.onSuccess(t.reportResult&&R),R)).catch(R=>{throw I.onError(R),R}):(I.onSuccess(t.reportResult&&_),_)}catch(_){throw I.onError(_),_}}}return n}}const sr=new ro;function no(t,e){sr.reportAlarm(t,e)}hn.on("REPORT_LOG_UPLOAD",t=>{t.networkState=Zt.networkState,sr.reportApiInvoke(null,{name:"logUploadError",options:t,tag:Re.TRACER}).onSuccess("logUploadError")});class Mo extends ot{constructor(e){super(e,arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",arguments.length>2?arguments[2]:void 0),V(this,"name","AgoraRTCException")}print(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error";return super.print(e,z)}throw(){super.throw(z)}}export{wo as AgoraEventUploadId,Ji as AgoraLogger,Mo as AgoraRTCError,lt as AgoraRTCErrorCode,$ as AgoraRTCEvent,ro as AgoraRTCEventReport,j as AgoraRTCEventUploadType,$i as EVENT_BASE_TEMPLATE,Zi as EventNameToID,qi as EventReportAlarmStatus,Qi as EventReportAlarmType,bo as LOG_TYPE,Co as LOG_UPLOAD_STATE,nr as _getApiFailureRecords,no as _reportAlarmFn,yo as apiInvoke,fn as hashConfig,to as hashString,Po as isConfigBlocked,Lo as isEventCustomReportParams,hn as logReportBus,z as logger,Do as onConfigApplied,Br as recordApiFailure,sr as report,Ye as stableStringify}; diff --git a/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js.gz b/internal/cli/playground/webassets/assets/AgoraRTC_N-report.esm-Dhe53Dql.js.gz deleted file mode 100644 index 8c1a513d798a4a0a2d7ab09d5219e9119c13b4dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60721 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%0DQ?Be%aRmj!l`SKTkU*hkfOVKu9J>vhg1QfNSt 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 in n?Fle(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o;var T9=(n,e,o)=>Gle(n,typeof e!="symbol"?e+"":e,o);function _mergeNamespaces(n,e){for(var o=0;od[I]})}}}return Object.freeze(Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const I of document.querySelectorAll('link[rel="modulepreload"]'))d(I);new MutationObserver(I=>{for(const f of I)if(f.type==="childList")for(const S of f.addedNodes)S.tagName==="LINK"&&S.rel==="modulepreload"&&d(S)}).observe(document,{childList:!0,subtree:!0});function o(I){const f={};return I.integrity&&(f.integrity=I.integrity),I.referrerPolicy&&(f.referrerPolicy=I.referrerPolicy),I.crossOrigin==="use-credentials"?f.credentials="include":I.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function d(I){if(I.ep)return;I.ep=!0;const f=o(I);fetch(I.href,f)}})();var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var jsxRuntime={exports:{}},reactJsxRuntime_production={};/** - * @license React - * react-jsx-runtime.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var REACT_ELEMENT_TYPE$2=Symbol.for("react.transitional.element"),REACT_FRAGMENT_TYPE$2=Symbol.for("react.fragment");function jsxProd(n,e,o){var d=null;if(o!==void 0&&(d=""+o),e.key!==void 0&&(d=""+e.key),"key"in e){o={};for(var I in e)I!=="key"&&(o[I]=e[I])}else o=e;return e=o.ref,{$$typeof:REACT_ELEMENT_TYPE$2,type:n,key:d,ref:e!==void 0?e:null,props:o}}reactJsxRuntime_production.Fragment=REACT_FRAGMENT_TYPE$2;reactJsxRuntime_production.jsx=jsxProd;reactJsxRuntime_production.jsxs=jsxProd;jsxRuntime.exports=reactJsxRuntime_production;var jsxRuntimeExports=jsxRuntime.exports,client={exports:{}},reactDomClient_production={},scheduler={exports:{}},scheduler_production={};/** - * @license React - * scheduler.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */(function(n){function e(ct,ht){var vt=ct.length;ct.push(ht);e:for(;0>>1,jt=ct[ar];if(0>>1;arI(pi,vt))yiI(fi,pi)?(ct[ar]=fi,ct[yi]=vt,ar=yi):(ct[ar]=pi,ct[ai]=vt,ar=ai);else if(yiI(fi,vt))ct[ar]=fi,ct[yi]=vt,ar=yi;else break e}}return ht}function I(ct,ht){var vt=ct.sortIndex-ht.sortIndex;return vt!==0?vt:ct.id-ht.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var S=Date,v=S.now();n.unstable_now=function(){return S.now()-v}}var L=[],x=[],F=1,Y=null,j=3,W=!1,re=!1,ee=!1,he=!1,ue=typeof setTimeout=="function"?setTimeout:null,Ee=typeof clearTimeout=="function"?clearTimeout:null,_e=typeof setImmediate<"u"?setImmediate:null;function De(ct){for(var ht=o(x);ht!==null;){if(ht.callback===null)d(x);else if(ht.startTime<=ct)d(x),ht.sortIndex=ht.expirationTime,e(L,ht);else break;ht=o(x)}}function Fe(ct){if(ee=!1,De(ct),!re)if(o(L)!==null)re=!0,Ve||(Ve=!0,rt());else{var ht=o(x);ht!==null&&Yt(Fe,ht.startTime-ct)}}var Ve=!1,Ge=-1,He=5,At=-1;function Bt(){return he?!0:!(n.unstable_now()-Atct&&Bt());){var ar=Y.callback;if(typeof ar=="function"){Y.callback=null,j=Y.priorityLevel;var jt=ar(Y.expirationTime<=ct);if(ct=n.unstable_now(),typeof jt=="function"){Y.callback=jt,De(ct),ht=!0;break t}Y===o(L)&&d(L),De(ct)}else d(L);Y=o(L)}if(Y!==null)ht=!0;else{var vr=o(x);vr!==null&&Yt(Fe,vr.startTime-ct),ht=!1}}break e}finally{Y=null,j=vt,W=!1}ht=void 0}}finally{ht?rt():Ve=!1}}}var rt;if(typeof _e=="function")rt=function(){_e(Tt)};else if(typeof MessageChannel<"u"){var ye=new MessageChannel,lt=ye.port2;ye.port1.onmessage=Tt,rt=function(){lt.postMessage(null)}}else rt=function(){ue(Tt,0)};function Yt(ct,ht){Ge=ue(function(){ct(n.unstable_now())},ht)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(ct){ct.callback=null},n.unstable_forceFrameRate=function(ct){0>ct||125ar?(ct.sortIndex=vt,e(x,ct),o(L)===null&&ct===o(x)&&(ee?(Ee(Ge),Ge=-1):ee=!0,Yt(Fe,vt-ar))):(ct.sortIndex=jt,e(L,ct),re||W||(re=!0,Ve||(Ve=!0,rt()))),ct},n.unstable_shouldYield=Bt,n.unstable_wrapCallback=function(ct){var ht=j;return function(){var vt=j;j=ht;try{return ct.apply(this,arguments)}finally{j=vt}}}})(scheduler_production);scheduler.exports=scheduler_production;var schedulerExports=scheduler.exports,react={exports:{}},react_production={};/** - * @license React - * react.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var REACT_ELEMENT_TYPE$1=Symbol.for("react.transitional.element"),REACT_PORTAL_TYPE$2=Symbol.for("react.portal"),REACT_FRAGMENT_TYPE$1=Symbol.for("react.fragment"),REACT_STRICT_MODE_TYPE$1=Symbol.for("react.strict_mode"),REACT_PROFILER_TYPE$1=Symbol.for("react.profiler"),REACT_CONSUMER_TYPE$1=Symbol.for("react.consumer"),REACT_CONTEXT_TYPE$1=Symbol.for("react.context"),REACT_FORWARD_REF_TYPE$1=Symbol.for("react.forward_ref"),REACT_SUSPENSE_TYPE$1=Symbol.for("react.suspense"),REACT_MEMO_TYPE$1=Symbol.for("react.memo"),REACT_LAZY_TYPE$2=Symbol.for("react.lazy"),REACT_ACTIVITY_TYPE$1=Symbol.for("react.activity"),MAYBE_ITERATOR_SYMBOL$1=Symbol.iterator;function getIteratorFn$1(n){return n===null||typeof n!="object"?null:(n=MAYBE_ITERATOR_SYMBOL$1&&n[MAYBE_ITERATOR_SYMBOL$1]||n["@@iterator"],typeof n=="function"?n:null)}var ReactNoopUpdateQueue={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},assign$1=Object.assign,emptyObject={};function Component(n,e,o){this.props=n,this.context=e,this.refs=emptyObject,this.updater=o||ReactNoopUpdateQueue}Component.prototype.isReactComponent={};Component.prototype.setState=function(n,e){if(typeof n!="object"&&typeof n!="function"&&n!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,n,e,"setState")};Component.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,"forceUpdate")};function ComponentDummy(){}ComponentDummy.prototype=Component.prototype;function PureComponent(n,e,o){this.props=n,this.context=e,this.refs=emptyObject,this.updater=o||ReactNoopUpdateQueue}var pureComponentPrototype=PureComponent.prototype=new ComponentDummy;pureComponentPrototype.constructor=PureComponent;assign$1(pureComponentPrototype,Component.prototype);pureComponentPrototype.isPureReactComponent=!0;var isArrayImpl$1=Array.isArray;function noop$4(){}var ReactSharedInternals$2={H:null,A:null,T:null,S:null},hasOwnProperty$1=Object.prototype.hasOwnProperty;function ReactElement(n,e,o){var d=o.ref;return{$$typeof:REACT_ELEMENT_TYPE$1,type:n,key:e,ref:d!==void 0?d:null,props:o}}function cloneAndReplaceKey(n,e){return ReactElement(n.type,e,n.props)}function isValidElement(n){return typeof n=="object"&&n!==null&&n.$$typeof===REACT_ELEMENT_TYPE$1}function escape$1(n){var e={"=":"=0",":":"=2"};return"$"+n.replace(/[=:]/g,function(o){return e[o]})}var userProvidedKeyEscapeRegex=/\/+/g;function getElementKey(n,e){return typeof n=="object"&&n!==null&&n.key!=null?escape$1(""+n.key):e.toString(36)}function resolveThenable(n){switch(n.status){case"fulfilled":return n.value;case"rejected":throw n.reason;default:switch(typeof n.status=="string"?n.then(noop$4,noop$4):(n.status="pending",n.then(function(e){n.status==="pending"&&(n.status="fulfilled",n.value=e)},function(e){n.status==="pending"&&(n.status="rejected",n.reason=e)})),n.status){case"fulfilled":return n.value;case"rejected":throw n.reason}}throw n}function mapIntoArray(n,e,o,d,I){var f=typeof n;(f==="undefined"||f==="boolean")&&(n=null);var S=!1;if(n===null)S=!0;else switch(f){case"bigint":case"string":case"number":S=!0;break;case"object":switch(n.$$typeof){case REACT_ELEMENT_TYPE$1:case REACT_PORTAL_TYPE$2:S=!0;break;case REACT_LAZY_TYPE$2:return S=n._init,mapIntoArray(S(n._payload),e,o,d,I)}}if(S)return I=I(n),S=d===""?"."+getElementKey(n,0):d,isArrayImpl$1(I)?(o="",S!=null&&(o=S.replace(userProvidedKeyEscapeRegex,"$&/")+"/"),mapIntoArray(I,e,o,"",function(x){return x})):I!=null&&(isValidElement(I)&&(I=cloneAndReplaceKey(I,o+(I.key==null||n&&n.key===I.key?"":(""+I.key).replace(userProvidedKeyEscapeRegex,"$&/")+"/")+S)),e.push(I)),1;S=0;var v=d===""?".":d+":";if(isArrayImpl$1(n))for(var L=0;L"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE$1)}catch(n){console.error(n)}}checkDCE$1(),reactDom.exports=reactDom_production;var reactDomExports=reactDom.exports;/** - * @license React - * react-dom-client.production.js - * - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var Scheduler=schedulerExports,React=reactExports,ReactDOM=reactDomExports;function formatProdErrorMessage(n){var e="https://react.dev/errors/"+n;if(1index$1||(n.current=valueStack[index$1],valueStack[index$1]=null,index$1--)}function push(n,e){index$1++,valueStack[index$1]=n.current,n.current=e}var contextStackCursor=createCursor(null),contextFiberStackCursor=createCursor(null),rootInstanceStackCursor=createCursor(null),hostTransitionProviderCursor=createCursor(null);function pushHostContainer(n,e){switch(push(rootInstanceStackCursor,e),push(contextFiberStackCursor,n),push(contextStackCursor,null),e.nodeType){case 9:case 11:n=(n=e.documentElement)&&(n=n.namespaceURI)?getOwnHostContext(n):0;break;default:if(n=e.tagName,e=e.namespaceURI)e=getOwnHostContext(e),n=getChildHostContextProd(e,n);else switch(n){case"svg":n=1;break;case"math":n=2;break;default:n=0}}pop(contextStackCursor),push(contextStackCursor,n)}function popHostContainer(){pop(contextStackCursor),pop(contextFiberStackCursor),pop(rootInstanceStackCursor)}function pushHostContext(n){n.memoizedState!==null&&push(hostTransitionProviderCursor,n);var e=contextStackCursor.current,o=getChildHostContextProd(e,n.type);e!==o&&(push(contextFiberStackCursor,n),push(contextStackCursor,o))}function popHostContext(n){contextFiberStackCursor.current===n&&(pop(contextStackCursor),pop(contextFiberStackCursor)),hostTransitionProviderCursor.current===n&&(pop(hostTransitionProviderCursor),HostTransitionContext._currentValue=sharedNotPendingObject)}var prefix,suffix;function describeBuiltInComponentFrame(n){if(prefix===void 0)try{throw Error()}catch(o){var e=o.stack.trim().match(/\n( *(at )?)/);prefix=e&&e[1]||"",suffix=-1)":-1I||L[d]!==x[I]){var F=` -`+L[d].replace(" at new "," at ");return n.displayName&&F.includes("")&&(F=F.replace("",n.displayName)),F}while(1<=d&&0<=I);break}}}finally{reentry=!1,Error.prepareStackTrace=o}return(o=n?n.displayName||n.name:"")?describeBuiltInComponentFrame(o):""}function describeFiber(n,e){switch(n.tag){case 26:case 27:case 5:return describeBuiltInComponentFrame(n.type);case 16:return describeBuiltInComponentFrame("Lazy");case 13:return n.child!==e&&e!==null?describeBuiltInComponentFrame("Suspense Fallback"):describeBuiltInComponentFrame("Suspense");case 19:return describeBuiltInComponentFrame("SuspenseList");case 0:case 15:return describeNativeComponentFrame(n.type,!1);case 11:return describeNativeComponentFrame(n.type.render,!1);case 1:return describeNativeComponentFrame(n.type,!0);case 31:return describeBuiltInComponentFrame("Activity");default:return""}}function getStackByFiberInDevAndProd(n){try{var e="",o=null;do e+=describeFiber(n,o),o=n,n=n.return;while(n);return e}catch(d){return` -Error generating stack: `+d.message+` -`+d.stack}}var hasOwnProperty=Object.prototype.hasOwnProperty,scheduleCallback$3=Scheduler.unstable_scheduleCallback,cancelCallback$1=Scheduler.unstable_cancelCallback,shouldYield=Scheduler.unstable_shouldYield,requestPaint=Scheduler.unstable_requestPaint,now=Scheduler.unstable_now,getCurrentPriorityLevel=Scheduler.unstable_getCurrentPriorityLevel,ImmediatePriority=Scheduler.unstable_ImmediatePriority,UserBlockingPriority=Scheduler.unstable_UserBlockingPriority,NormalPriority$1=Scheduler.unstable_NormalPriority,LowPriority=Scheduler.unstable_LowPriority,IdlePriority=Scheduler.unstable_IdlePriority,log$1=Scheduler.log,unstable_setDisableYieldValue=Scheduler.unstable_setDisableYieldValue,rendererID=null,injectedHook=null;function setIsStrictModeForDevtools(n){if(typeof log$1=="function"&&unstable_setDisableYieldValue(n),injectedHook&&typeof injectedHook.setStrictMode=="function")try{injectedHook.setStrictMode(rendererID,n)}catch{}}var clz32=Math.clz32?Math.clz32:clz32Fallback,log=Math.log,LN2=Math.LN2;function clz32Fallback(n){return n>>>=0,n===0?32:31-(log(n)/LN2|0)|0}var nextTransitionUpdateLane=256,nextTransitionDeferredLane=262144,nextRetryLane=4194304;function getHighestPriorityLanes(n){var e=n&42;if(e!==0)return e;switch(n&-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return n&261888;case 262144:case 524288:case 1048576:case 2097152:return n&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return n&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function getNextLanes(n,e,o){var d=n.pendingLanes;if(d===0)return 0;var I=0,f=n.suspendedLanes,S=n.pingedLanes;n=n.warmLanes;var v=d&134217727;return v!==0?(d=v&~f,d!==0?I=getHighestPriorityLanes(d):(S&=v,S!==0?I=getHighestPriorityLanes(S):o||(o=v&~n,o!==0&&(I=getHighestPriorityLanes(o))))):(v=d&~f,v!==0?I=getHighestPriorityLanes(v):S!==0?I=getHighestPriorityLanes(S):o||(o=d&~n,o!==0&&(I=getHighestPriorityLanes(o)))),I===0?0:e!==0&&e!==I&&!(e&f)&&(f=I&-I,o=e&-e,f>=o||f===32&&(o&4194048)!==0)?e:I}function checkIfRootIsPrerendering(n,e){return(n.pendingLanes&~(n.suspendedLanes&~n.pingedLanes)&e)===0}function computeExpirationTime(n,e){switch(n){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function claimNextRetryLane(){var n=nextRetryLane;return nextRetryLane<<=1,!(nextRetryLane&62914560)&&(nextRetryLane=4194304),n}function createLaneMap(n){for(var e=[],o=0;31>o;o++)e.push(n);return e}function markRootUpdated$1(n,e){n.pendingLanes|=e,e!==268435456&&(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function markRootFinished(n,e,o,d,I,f){var S=n.pendingLanes;n.pendingLanes=o,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&=o,n.entangledLanes&=o,n.errorRecoveryDisabledLanes&=o,n.shellSuspendCounter=0;var v=n.entanglements,L=n.expirationTimes,x=n.hiddenUpdates;for(o=S&~o;0"u")return null;try{return n.activeElement||n.body}catch{return n.body}}var escapeSelectorAttributeValueInsideDoubleQuotesRegex=/[\n"\\]/g;function escapeSelectorAttributeValueInsideDoubleQuotes(n){return n.replace(escapeSelectorAttributeValueInsideDoubleQuotesRegex,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function updateInput(n,e,o,d,I,f,S,v){n.name="",S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"?n.type=S:n.removeAttribute("type"),e!=null?S==="number"?(e===0&&n.value===""||n.value!=e)&&(n.value=""+getToStringValue(e)):n.value!==""+getToStringValue(e)&&(n.value=""+getToStringValue(e)):S!=="submit"&&S!=="reset"||n.removeAttribute("value"),e!=null?setDefaultValue(n,S,getToStringValue(e)):o!=null?setDefaultValue(n,S,getToStringValue(o)):d!=null&&n.removeAttribute("value"),I==null&&f!=null&&(n.defaultChecked=!!f),I!=null&&(n.checked=I&&typeof I!="function"&&typeof I!="symbol"),v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?n.name=""+getToStringValue(v):n.removeAttribute("name")}function initInput(n,e,o,d,I,f,S,v){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(n.type=f),e!=null||o!=null){if(!(f!=="submit"&&f!=="reset"||e!=null)){track(n);return}o=o!=null?""+getToStringValue(o):"",e=e!=null?""+getToStringValue(e):o,v||e===n.value||(n.value=e),n.defaultValue=e}d=d??I,d=typeof d!="function"&&typeof d!="symbol"&&!!d,n.checked=v?n.checked:!!d,n.defaultChecked=!!d,S!=null&&typeof S!="function"&&typeof S!="symbol"&&typeof S!="boolean"&&(n.name=S),track(n)}function setDefaultValue(n,e,o){e==="number"&&getActiveElement(n.ownerDocument)===n||n.defaultValue===""+o||(n.defaultValue=""+o)}function updateOptions(n,e,o,d){if(n=n.options,e){e={};for(var I=0;I"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),passiveBrowserEventsSupported=!1;if(canUseDOM)try{var options$1={};Object.defineProperty(options$1,"passive",{get:function(){passiveBrowserEventsSupported=!0}}),window.addEventListener("test",options$1,options$1),window.removeEventListener("test",options$1,options$1)}catch{passiveBrowserEventsSupported=!1}var root=null,startText=null,fallbackText=null;function getData(){if(fallbackText)return fallbackText;var n,e=startText,o=e.length,d,I="value"in root?root.value:root.textContent,f=I.length;for(n=0;n=documentMode),SPACEBAR_CHAR=" ",hasSpaceKeypress=!1;function isFallbackCompositionEnd(n,e){switch(n){case"keyup":return END_KEYCODES.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function getDataFromCustomEvent(n){return n=n.detail,typeof n=="object"&&"data"in n?n.data:null}var isComposing=!1;function getNativeBeforeInputChars(n,e){switch(n){case"compositionend":return getDataFromCustomEvent(e);case"keypress":return e.which!==32?null:(hasSpaceKeypress=!0,SPACEBAR_CHAR);case"textInput":return n=e.data,n===SPACEBAR_CHAR&&hasSpaceKeypress?null:n;default:return null}}function getFallbackBeforeInputChars(n,e){if(isComposing)return n==="compositionend"||!canUseCompositionEvent&&isFallbackCompositionEnd(n,e)?(n=getData(),fallbackText=startText=root=null,isComposing=!1,n):null;switch(n){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1=e)return{node:o,offset:e-n};n=d}e:{for(;o;){if(o.nextSibling){o=o.nextSibling;break e}o=o.parentNode}o=void 0}o=getLeafNode(o)}}function containsNode(n,e){return n&&e?n===e?!0:n&&n.nodeType===3?!1:e&&e.nodeType===3?containsNode(n,e.parentNode):"contains"in n?n.contains(e):n.compareDocumentPosition?!!(n.compareDocumentPosition(e)&16):!1:!1}function getActiveElementDeep(n){n=n!=null&&n.ownerDocument!=null&&n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var e=getActiveElement(n.document);e instanceof n.HTMLIFrameElement;){try{var o=typeof e.contentWindow.location.href=="string"}catch{o=!1}if(o)n=e.contentWindow;else break;e=getActiveElement(n.document)}return e}function hasSelectionCapabilities(n){var e=n&&n.nodeName&&n.nodeName.toLowerCase();return e&&(e==="input"&&(n.type==="text"||n.type==="search"||n.type==="tel"||n.type==="url"||n.type==="password")||e==="textarea"||n.contentEditable==="true")}var skipSelectionChangeEvent=canUseDOM&&"documentMode"in document&&11>=document.documentMode,activeElement=null,activeElementInst=null,lastSelection=null,mouseDown=!1;function constructSelectEvent(n,e,o){var d=o.window===o?o.document:o.nodeType===9?o:o.ownerDocument;mouseDown||activeElement==null||activeElement!==getActiveElement(d)||(d=activeElement,"selectionStart"in d&&hasSelectionCapabilities(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),lastSelection&&shallowEqual(lastSelection,d)||(lastSelection=d,d=accumulateTwoPhaseListeners(activeElementInst,"onSelect"),0>=S,I-=S,treeContextId=1<<32-clz32(e)+I|o<He?(At=Ge,Ge=null):At=Ge.sibling;var Bt=j(ue,Ge,_e[He],De);if(Bt===null){Ge===null&&(Ge=At);break}n&&Ge&&Bt.alternate===null&&e(ue,Ge),Ee=f(Bt,Ee,He),Ve===null?Fe=Bt:Ve.sibling=Bt,Ve=Bt,Ge=At}if(He===_e.length)return o(ue,Ge),isHydrating&&pushTreeFork(ue,He),Fe;if(Ge===null){for(;He<_e.length;He++)Ge=Y(ue,_e[He],De),Ge!==null&&(Ee=f(Ge,Ee,He),Ve===null?Fe=Ge:Ve.sibling=Ge,Ve=Ge);return isHydrating&&pushTreeFork(ue,He),Fe}for(Ge=d(Ge);He<_e.length;He++)At=W(Ge,ue,He,_e[He],De),At!==null&&(n&&At.alternate!==null&&Ge.delete(At.key===null?He:At.key),Ee=f(At,Ee,He),Ve===null?Fe=At:Ve.sibling=At,Ve=At);return n&&Ge.forEach(function(Tt){return e(ue,Tt)}),isHydrating&&pushTreeFork(ue,He),Fe}function ee(ue,Ee,_e,De){if(_e==null)throw Error(formatProdErrorMessage(151));for(var Fe=null,Ve=null,Ge=Ee,He=Ee=0,At=null,Bt=_e.next();Ge!==null&&!Bt.done;He++,Bt=_e.next()){Ge.index>He?(At=Ge,Ge=null):At=Ge.sibling;var Tt=j(ue,Ge,Bt.value,De);if(Tt===null){Ge===null&&(Ge=At);break}n&&Ge&&Tt.alternate===null&&e(ue,Ge),Ee=f(Tt,Ee,He),Ve===null?Fe=Tt:Ve.sibling=Tt,Ve=Tt,Ge=At}if(Bt.done)return o(ue,Ge),isHydrating&&pushTreeFork(ue,He),Fe;if(Ge===null){for(;!Bt.done;He++,Bt=_e.next())Bt=Y(ue,Bt.value,De),Bt!==null&&(Ee=f(Bt,Ee,He),Ve===null?Fe=Bt:Ve.sibling=Bt,Ve=Bt);return isHydrating&&pushTreeFork(ue,He),Fe}for(Ge=d(Ge);!Bt.done;He++,Bt=_e.next())Bt=W(Ge,ue,He,Bt.value,De),Bt!==null&&(n&&Bt.alternate!==null&&Ge.delete(Bt.key===null?He:Bt.key),Ee=f(Bt,Ee,He),Ve===null?Fe=Bt:Ve.sibling=Bt,Ve=Bt);return n&&Ge.forEach(function(rt){return e(ue,rt)}),isHydrating&&pushTreeFork(ue,He),Fe}function he(ue,Ee,_e,De){if(typeof _e=="object"&&_e!==null&&_e.type===REACT_FRAGMENT_TYPE&&_e.key===null&&(_e=_e.props.children),typeof _e=="object"&&_e!==null){switch(_e.$$typeof){case REACT_ELEMENT_TYPE:e:{for(var Fe=_e.key;Ee!==null;){if(Ee.key===Fe){if(Fe=_e.type,Fe===REACT_FRAGMENT_TYPE){if(Ee.tag===7){o(ue,Ee.sibling),De=I(Ee,_e.props.children),De.return=ue,ue=De;break e}}else if(Ee.elementType===Fe||typeof Fe=="object"&&Fe!==null&&Fe.$$typeof===REACT_LAZY_TYPE$1&&resolveLazy(Fe)===Ee.type){o(ue,Ee.sibling),De=I(Ee,_e.props),coerceRef(De,_e),De.return=ue,ue=De;break e}o(ue,Ee);break}else e(ue,Ee);Ee=Ee.sibling}_e.type===REACT_FRAGMENT_TYPE?(De=createFiberFromFragment(_e.props.children,ue.mode,De,_e.key),De.return=ue,ue=De):(De=createFiberFromTypeAndProps(_e.type,_e.key,_e.props,null,ue.mode,De),coerceRef(De,_e),De.return=ue,ue=De)}return S(ue);case REACT_PORTAL_TYPE:e:{for(Fe=_e.key;Ee!==null;){if(Ee.key===Fe)if(Ee.tag===4&&Ee.stateNode.containerInfo===_e.containerInfo&&Ee.stateNode.implementation===_e.implementation){o(ue,Ee.sibling),De=I(Ee,_e.children||[]),De.return=ue,ue=De;break e}else{o(ue,Ee);break}else e(ue,Ee);Ee=Ee.sibling}De=createFiberFromPortal(_e,ue.mode,De),De.return=ue,ue=De}return S(ue);case REACT_LAZY_TYPE$1:return _e=resolveLazy(_e),he(ue,Ee,_e,De)}if(isArrayImpl(_e))return re(ue,Ee,_e,De);if(getIteratorFn(_e)){if(Fe=getIteratorFn(_e),typeof Fe!="function")throw Error(formatProdErrorMessage(150));return _e=Fe.call(_e),ee(ue,Ee,_e,De)}if(typeof _e.then=="function")return he(ue,Ee,unwrapThenable(_e),De);if(_e.$$typeof===REACT_CONTEXT_TYPE)return he(ue,Ee,readContextDuringReconciliation(ue,_e),De);throwOnInvalidObjectTypeImpl(ue,_e)}return typeof _e=="string"&&_e!==""||typeof _e=="number"||typeof _e=="bigint"?(_e=""+_e,Ee!==null&&Ee.tag===6?(o(ue,Ee.sibling),De=I(Ee,_e),De.return=ue,ue=De):(o(ue,Ee),De=createFiberFromText(_e,ue.mode,De),De.return=ue,ue=De),S(ue)):o(ue,Ee)}return function(ue,Ee,_e,De){try{thenableIndexCounter$1=0;var Fe=he(ue,Ee,_e,De);return thenableState$1=null,Fe}catch(Ge){if(Ge===SuspenseException||Ge===SuspenseActionException)throw Ge;var Ve=createFiberImplClass(29,Ge,null,ue.mode);return Ve.lanes=De,Ve.return=ue,Ve}finally{}}}var reconcileChildFibers=createChildReconciler(!0),mountChildFibers=createChildReconciler(!1),hasForceUpdate=!1;function initializeUpdateQueue(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function cloneUpdateQueue(n,e){n=n.updateQueue,e.updateQueue===n&&(e.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function createUpdate(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function enqueueUpdate(n,e,o){var d=n.updateQueue;if(d===null)return null;if(d=d.shared,executionContext&2){var I=d.pending;return I===null?e.next=e:(e.next=I.next,I.next=e),d.pending=e,e=getRootForUpdatedFiber(n),markUpdateLaneFromFiberToRoot(n,null,o),e}return enqueueUpdate$1(n,d,e,o),getRootForUpdatedFiber(n)}function entangleTransitions(n,e,o){if(e=e.updateQueue,e!==null&&(e=e.shared,(o&4194048)!==0)){var d=e.lanes;d&=n.pendingLanes,o|=d,e.lanes=o,markRootEntangled(n,o)}}function enqueueCapturedUpdate(n,e){var o=n.updateQueue,d=n.alternate;if(d!==null&&(d=d.updateQueue,o===d)){var I=null,f=null;if(o=o.firstBaseUpdate,o!==null){do{var S={lane:o.lane,tag:o.tag,payload:o.payload,callback:null,next:null};f===null?I=f=S:f=f.next=S,o=o.next}while(o!==null);f===null?I=f=e:f=f.next=e}else I=f=e;o={baseState:d.baseState,firstBaseUpdate:I,lastBaseUpdate:f,shared:d.shared,callbacks:d.callbacks},n.updateQueue=o;return}n=o.lastBaseUpdate,n===null?o.firstBaseUpdate=e:n.next=e,o.lastBaseUpdate=e}var didReadFromEntangledAsyncAction=!1;function suspendIfUpdateReadFromEntangledAsyncAction(){if(didReadFromEntangledAsyncAction){var n=currentEntangledActionThenable;if(n!==null)throw n}}function processUpdateQueue(n,e,o,d){didReadFromEntangledAsyncAction=!1;var I=n.updateQueue;hasForceUpdate=!1;var f=I.firstBaseUpdate,S=I.lastBaseUpdate,v=I.shared.pending;if(v!==null){I.shared.pending=null;var L=v,x=L.next;L.next=null,S===null?f=x:S.next=x,S=L;var F=n.alternate;F!==null&&(F=F.updateQueue,v=F.lastBaseUpdate,v!==S&&(v===null?F.firstBaseUpdate=x:v.next=x,F.lastBaseUpdate=L))}if(f!==null){var Y=I.baseState;S=0,F=x=L=null,v=f;do{var j=v.lane&-536870913,W=j!==v.lane;if(W?(workInProgressRootRenderLanes&j)===j:(d&j)===j){j!==0&&j===currentEntangledLane&&(didReadFromEntangledAsyncAction=!0),F!==null&&(F=F.next={lane:0,tag:v.tag,payload:v.payload,callback:null,next:null});e:{var re=n,ee=v;j=e;var he=o;switch(ee.tag){case 1:if(re=ee.payload,typeof re=="function"){Y=re.call(he,Y,j);break e}Y=re;break e;case 3:re.flags=re.flags&-65537|128;case 0:if(re=ee.payload,j=typeof re=="function"?re.call(he,Y,j):re,j==null)break e;Y=assign({},Y,j);break e;case 2:hasForceUpdate=!0}}j=v.callback,j!==null&&(n.flags|=64,W&&(n.flags|=8192),W=I.callbacks,W===null?I.callbacks=[j]:W.push(j))}else W={lane:j,tag:v.tag,payload:v.payload,callback:v.callback,next:null},F===null?(x=F=W,L=Y):F=F.next=W,S|=j;if(v=v.next,v===null){if(v=I.shared.pending,v===null)break;W=v,v=W.next,W.next=null,I.lastBaseUpdate=W,I.shared.pending=null}}while(!0);F===null&&(L=Y),I.baseState=L,I.firstBaseUpdate=x,I.lastBaseUpdate=F,f===null&&(I.shared.lanes=0),workInProgressRootSkippedLanes|=S,n.lanes=S,n.memoizedState=Y}}function callCallback(n,e){if(typeof n!="function")throw Error(formatProdErrorMessage(191,n));n.call(e)}function commitCallbacks(n,e){var o=n.callbacks;if(o!==null)for(n.callbacks=null,n=0;nf?f:8;var S=ReactSharedInternals.T,v={};ReactSharedInternals.T=v,dispatchOptimisticSetState(n,!1,e,o);try{var L=I(),x=ReactSharedInternals.S;if(x!==null&&x(v,L),L!==null&&typeof L=="object"&&typeof L.then=="function"){var F=chainThenableValue(L,d);dispatchSetStateInternal(n,e,F,requestUpdateLane(n))}else dispatchSetStateInternal(n,e,d,requestUpdateLane(n))}catch(Y){dispatchSetStateInternal(n,e,{then:function(){},status:"rejected",reason:Y},requestUpdateLane())}finally{ReactDOMSharedInternals.p=f,S!==null&&v.types!==null&&(S.types=v.types),ReactSharedInternals.T=S}}function noop$2(){}function startHostTransition(n,e,o,d){if(n.tag!==5)throw Error(formatProdErrorMessage(476));var I=ensureFormComponentIsStateful(n).queue;startTransition(n,I,e,sharedNotPendingObject,o===null?noop$2:function(){return requestFormReset$1(n),o(d)})}function ensureFormComponentIsStateful(n){var e=n.memoizedState;if(e!==null)return e;e={memoizedState:sharedNotPendingObject,baseState:sharedNotPendingObject,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:basicStateReducer,lastRenderedState:sharedNotPendingObject},next:null};var o={};return e.next={memoizedState:o,baseState:o,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:basicStateReducer,lastRenderedState:o},next:null},n.memoizedState=e,n=n.alternate,n!==null&&(n.memoizedState=e),e}function requestFormReset$1(n){var e=ensureFormComponentIsStateful(n);e.next===null&&(e=n.alternate.memoizedState),dispatchSetStateInternal(n,e.next.queue,{},requestUpdateLane())}function useHostTransitionStatus(){return readContext(HostTransitionContext)}function updateId(){return updateWorkInProgressHook().memoizedState}function updateRefresh(){return updateWorkInProgressHook().memoizedState}function refreshCache(n){for(var e=n.return;e!==null;){switch(e.tag){case 24:case 3:var o=requestUpdateLane();n=createUpdate(o);var d=enqueueUpdate(e,n,o);d!==null&&(scheduleUpdateOnFiber(d,e,o),entangleTransitions(d,e,o)),e={cache:createCache()},n.payload=e;return}e=e.return}}function dispatchReducerAction(n,e,o){var d=requestUpdateLane();o={lane:d,revertLane:0,gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},isRenderPhaseUpdate(n)?enqueueRenderPhaseUpdate(e,o):(o=enqueueConcurrentHookUpdate(n,e,o,d),o!==null&&(scheduleUpdateOnFiber(o,n,d),entangleTransitionUpdate(o,e,d)))}function dispatchSetState(n,e,o){var d=requestUpdateLane();dispatchSetStateInternal(n,e,o,d)}function dispatchSetStateInternal(n,e,o,d){var I={lane:d,revertLane:0,gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null};if(isRenderPhaseUpdate(n))enqueueRenderPhaseUpdate(e,I);else{var f=n.alternate;if(n.lanes===0&&(f===null||f.lanes===0)&&(f=e.lastRenderedReducer,f!==null))try{var S=e.lastRenderedState,v=f(S,o);if(I.hasEagerState=!0,I.eagerState=v,objectIs(v,S))return enqueueUpdate$1(n,e,I,0),workInProgressRoot===null&&finishQueueingConcurrentUpdates(),!1}catch{}finally{}if(o=enqueueConcurrentHookUpdate(n,e,I,d),o!==null)return scheduleUpdateOnFiber(o,n,d),entangleTransitionUpdate(o,e,d),!0}return!1}function dispatchOptimisticSetState(n,e,o,d){if(d={lane:2,revertLane:requestTransitionLane(),gesture:null,action:d,hasEagerState:!1,eagerState:null,next:null},isRenderPhaseUpdate(n)){if(e)throw Error(formatProdErrorMessage(479))}else e=enqueueConcurrentHookUpdate(n,o,d,2),e!==null&&scheduleUpdateOnFiber(e,n,2)}function isRenderPhaseUpdate(n){var e=n.alternate;return n===currentlyRenderingFiber||e!==null&&e===currentlyRenderingFiber}function enqueueRenderPhaseUpdate(n,e){didScheduleRenderPhaseUpdateDuringThisPass=didScheduleRenderPhaseUpdate=!0;var o=n.pending;o===null?e.next=e:(e.next=o.next,o.next=e),n.pending=e}function entangleTransitionUpdate(n,e,o){if(o&4194048){var d=e.lanes;d&=n.pendingLanes,o|=d,e.lanes=o,markRootEntangled(n,o)}}var ContextOnlyDispatcher={readContext,use:use$1,useCallback:throwInvalidHookError,useContext:throwInvalidHookError,useEffect:throwInvalidHookError,useImperativeHandle:throwInvalidHookError,useLayoutEffect:throwInvalidHookError,useInsertionEffect:throwInvalidHookError,useMemo:throwInvalidHookError,useReducer:throwInvalidHookError,useRef:throwInvalidHookError,useState:throwInvalidHookError,useDebugValue:throwInvalidHookError,useDeferredValue:throwInvalidHookError,useTransition:throwInvalidHookError,useSyncExternalStore:throwInvalidHookError,useId:throwInvalidHookError,useHostTransitionStatus:throwInvalidHookError,useFormState:throwInvalidHookError,useActionState:throwInvalidHookError,useOptimistic:throwInvalidHookError,useMemoCache:throwInvalidHookError,useCacheRefresh:throwInvalidHookError};ContextOnlyDispatcher.useEffectEvent=throwInvalidHookError;var HooksDispatcherOnMount={readContext,use:use$1,useCallback:function(n,e){return mountWorkInProgressHook().memoizedState=[n,e===void 0?null:e],n},useContext:readContext,useEffect:mountEffect,useImperativeHandle:function(n,e,o){o=o!=null?o.concat([n]):null,mountEffectImpl(4194308,4,imperativeHandleEffect.bind(null,e,n),o)},useLayoutEffect:function(n,e){return mountEffectImpl(4194308,4,n,e)},useInsertionEffect:function(n,e){mountEffectImpl(4,2,n,e)},useMemo:function(n,e){var o=mountWorkInProgressHook();e=e===void 0?null:e;var d=n();if(shouldDoubleInvokeUserFnsInHooksDEV){setIsStrictModeForDevtools(!0);try{n()}finally{setIsStrictModeForDevtools(!1)}}return o.memoizedState=[d,e],d},useReducer:function(n,e,o){var d=mountWorkInProgressHook();if(o!==void 0){var I=o(e);if(shouldDoubleInvokeUserFnsInHooksDEV){setIsStrictModeForDevtools(!0);try{o(e)}finally{setIsStrictModeForDevtools(!1)}}}else I=e;return d.memoizedState=d.baseState=I,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:I},d.queue=n,n=n.dispatch=dispatchReducerAction.bind(null,currentlyRenderingFiber,n),[d.memoizedState,n]},useRef:function(n){var e=mountWorkInProgressHook();return n={current:n},e.memoizedState=n},useState:function(n){n=mountStateImpl(n);var e=n.queue,o=dispatchSetState.bind(null,currentlyRenderingFiber,e);return e.dispatch=o,[n.memoizedState,o]},useDebugValue:mountDebugValue,useDeferredValue:function(n,e){var o=mountWorkInProgressHook();return mountDeferredValueImpl(o,n,e)},useTransition:function(){var n=mountStateImpl(!1);return n=startTransition.bind(null,currentlyRenderingFiber,n.queue,!0,!1),mountWorkInProgressHook().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,e,o){var d=currentlyRenderingFiber,I=mountWorkInProgressHook();if(isHydrating){if(o===void 0)throw Error(formatProdErrorMessage(407));o=o()}else{if(o=e(),workInProgressRoot===null)throw Error(formatProdErrorMessage(349));workInProgressRootRenderLanes&127||pushStoreConsistencyCheck(d,e,o)}I.memoizedState=o;var f={value:o,getSnapshot:e};return I.queue=f,mountEffect(subscribeToStore.bind(null,d,f,n),[n]),d.flags|=2048,pushSimpleEffect(9,{destroy:void 0},updateStoreInstance.bind(null,d,f,o,e),null),o},useId:function(){var n=mountWorkInProgressHook(),e=workInProgressRoot.identifierPrefix;if(isHydrating){var o=treeContextOverflow,d=treeContextId;o=(d&~(1<<32-clz32(d)-1)).toString(32)+o,e="_"+e+"R_"+o,o=localIdCounter++,0<\/script>",f=f.removeChild(f.firstChild);break;case"select":f=typeof d.is=="string"?S.createElement("select",{is:d.is}):S.createElement("select"),d.multiple?f.multiple=!0:d.size&&(f.size=d.size);break;default:f=typeof d.is=="string"?S.createElement(I,{is:d.is}):S.createElement(I)}}f[internalInstanceKey]=e,f[internalPropsKey]=d;e:for(S=e.child;S!==null;){if(S.tag===5||S.tag===6)f.appendChild(S.stateNode);else if(S.tag!==4&&S.tag!==27&&S.child!==null){S.child.return=S,S=S.child;continue}if(S===e)break e;for(;S.sibling===null;){if(S.return===null||S.return===e)break e;S=S.return}S.sibling.return=S.return,S=S.sibling}e.stateNode=f;e:switch(setInitialProperties(f,I,d),I){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break e;case"img":d=!0;break e;default:d=!1}d&&markUpdate(e)}}return bubbleProperties(e),preloadInstanceAndSuspendIfNeeded(e,e.type,n===null?null:n.memoizedProps,e.pendingProps,o),null;case 6:if(n&&e.stateNode!=null)n.memoizedProps!==d&&markUpdate(e);else{if(typeof d!="string"&&e.stateNode===null)throw Error(formatProdErrorMessage(166));if(n=rootInstanceStackCursor.current,popHydrationState(e)){if(n=e.stateNode,o=e.memoizedProps,d=null,I=hydrationParentFiber,I!==null)switch(I.tag){case 27:case 5:d=I.memoizedProps}n[internalInstanceKey]=e,n=!!(n.nodeValue===o||d!==null&&d.suppressHydrationWarning===!0||checkForUnmatchedText(n.nodeValue,o)),n||throwOnHydrationMismatch(e,!0)}else n=getOwnerDocumentFromRootContainer(n).createTextNode(d),n[internalInstanceKey]=e,e.stateNode=n}return bubbleProperties(e),null;case 31:if(o=e.memoizedState,n===null||n.memoizedState!==null){if(d=popHydrationState(e),o!==null){if(n===null){if(!d)throw Error(formatProdErrorMessage(318));if(n=e.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(formatProdErrorMessage(557));n[internalInstanceKey]=e}else resetHydrationState(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;bubbleProperties(e),n=!1}else o=upgradeHydrationErrorsToRecoverable(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=o),n=!0;if(!n)return e.flags&256?(popSuspenseHandler(e),e):(popSuspenseHandler(e),null);if(e.flags&128)throw Error(formatProdErrorMessage(558))}return bubbleProperties(e),null;case 13:if(d=e.memoizedState,n===null||n.memoizedState!==null&&n.memoizedState.dehydrated!==null){if(I=popHydrationState(e),d!==null&&d.dehydrated!==null){if(n===null){if(!I)throw Error(formatProdErrorMessage(318));if(I=e.memoizedState,I=I!==null?I.dehydrated:null,!I)throw Error(formatProdErrorMessage(317));I[internalInstanceKey]=e}else resetHydrationState(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;bubbleProperties(e),I=!1}else I=upgradeHydrationErrorsToRecoverable(),n!==null&&n.memoizedState!==null&&(n.memoizedState.hydrationErrors=I),I=!0;if(!I)return e.flags&256?(popSuspenseHandler(e),e):(popSuspenseHandler(e),null)}return popSuspenseHandler(e),e.flags&128?(e.lanes=o,e):(o=d!==null,n=n!==null&&n.memoizedState!==null,o&&(d=e.child,I=null,d.alternate!==null&&d.alternate.memoizedState!==null&&d.alternate.memoizedState.cachePool!==null&&(I=d.alternate.memoizedState.cachePool.pool),f=null,d.memoizedState!==null&&d.memoizedState.cachePool!==null&&(f=d.memoizedState.cachePool.pool),f!==I&&(d.flags|=2048)),o!==n&&o&&(e.child.flags|=8192),scheduleRetryEffect(e,e.updateQueue),bubbleProperties(e),null);case 4:return popHostContainer(),n===null&&listenToAllSupportedEvents(e.stateNode.containerInfo),bubbleProperties(e),null;case 10:return popProvider(e.type),bubbleProperties(e),null;case 19:if(pop(suspenseStackCursor),d=e.memoizedState,d===null)return bubbleProperties(e),null;if(I=(e.flags&128)!==0,f=d.rendering,f===null)if(I)cutOffTailIfNeeded(d,!1);else{if(workInProgressRootExitStatus!==0||n!==null&&n.flags&128)for(n=e.child;n!==null;){if(f=findFirstSuspended(n),f!==null){for(e.flags|=128,cutOffTailIfNeeded(d,!1),n=f.updateQueue,e.updateQueue=n,scheduleRetryEffect(e,n),e.subtreeFlags=0,n=o,o=e.child;o!==null;)resetWorkInProgress(o,n),o=o.sibling;return push(suspenseStackCursor,suspenseStackCursor.current&1|2),isHydrating&&pushTreeFork(e,d.treeForkCount),e.child}n=n.sibling}d.tail!==null&&now()>workInProgressRootRenderTargetTime&&(e.flags|=128,I=!0,cutOffTailIfNeeded(d,!1),e.lanes=4194304)}else{if(!I)if(n=findFirstSuspended(f),n!==null){if(e.flags|=128,I=!0,n=n.updateQueue,e.updateQueue=n,scheduleRetryEffect(e,n),cutOffTailIfNeeded(d,!0),d.tail===null&&d.tailMode==="hidden"&&!f.alternate&&!isHydrating)return bubbleProperties(e),null}else 2*now()-d.renderingStartTime>workInProgressRootRenderTargetTime&&o!==536870912&&(e.flags|=128,I=!0,cutOffTailIfNeeded(d,!1),e.lanes=4194304);d.isBackwards?(f.sibling=e.child,e.child=f):(n=d.last,n!==null?n.sibling=f:e.child=f,d.last=f)}return d.tail!==null?(n=d.tail,d.rendering=n,d.tail=n.sibling,d.renderingStartTime=now(),n.sibling=null,o=suspenseStackCursor.current,push(suspenseStackCursor,I?o&1|2:o&1),isHydrating&&pushTreeFork(e,d.treeForkCount),n):(bubbleProperties(e),null);case 22:case 23:return popSuspenseHandler(e),popHiddenContext(),d=e.memoizedState!==null,n!==null?n.memoizedState!==null!==d&&(e.flags|=8192):d&&(e.flags|=8192),d?o&536870912&&!(e.flags&128)&&(bubbleProperties(e),e.subtreeFlags&6&&(e.flags|=8192)):bubbleProperties(e),o=e.updateQueue,o!==null&&scheduleRetryEffect(e,o.retryQueue),o=null,n!==null&&n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),d=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(d=e.memoizedState.cachePool.pool),d!==o&&(e.flags|=2048),n!==null&&pop(resumedCache),null;case 24:return o=null,n!==null&&(o=n.memoizedState.cache),e.memoizedState.cache!==o&&(e.flags|=2048),popProvider(CacheContext),bubbleProperties(e),null;case 25:return null;case 30:return null}throw Error(formatProdErrorMessage(156,e.tag))}function unwindWork(n,e){switch(popTreeContext(e),e.tag){case 1:return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 3:return popProvider(CacheContext),popHostContainer(),n=e.flags,n&65536&&!(n&128)?(e.flags=n&-65537|128,e):null;case 26:case 27:case 5:return popHostContext(e),null;case 31:if(e.memoizedState!==null){if(popSuspenseHandler(e),e.alternate===null)throw Error(formatProdErrorMessage(340));resetHydrationState()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 13:if(popSuspenseHandler(e),n=e.memoizedState,n!==null&&n.dehydrated!==null){if(e.alternate===null)throw Error(formatProdErrorMessage(340));resetHydrationState()}return n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 19:return pop(suspenseStackCursor),null;case 4:return popHostContainer(),null;case 10:return popProvider(e.type),null;case 22:case 23:return popSuspenseHandler(e),popHiddenContext(),n!==null&&pop(resumedCache),n=e.flags,n&65536?(e.flags=n&-65537|128,e):null;case 24:return popProvider(CacheContext),null;case 25:return null;default:return null}}function unwindInterruptedWork(n,e){switch(popTreeContext(e),e.tag){case 3:popProvider(CacheContext),popHostContainer();break;case 26:case 27:case 5:popHostContext(e);break;case 4:popHostContainer();break;case 31:e.memoizedState!==null&&popSuspenseHandler(e);break;case 13:popSuspenseHandler(e);break;case 19:pop(suspenseStackCursor);break;case 10:popProvider(e.type);break;case 22:case 23:popSuspenseHandler(e),popHiddenContext(),n!==null&&pop(resumedCache);break;case 24:popProvider(CacheContext)}}function commitHookEffectListMount(n,e){try{var o=e.updateQueue,d=o!==null?o.lastEffect:null;if(d!==null){var I=d.next;o=I;do{if((o.tag&n)===n){d=void 0;var f=o.create,S=o.inst;d=f(),S.destroy=d}o=o.next}while(o!==I)}}catch(v){captureCommitPhaseError(e,e.return,v)}}function commitHookEffectListUnmount(n,e,o){try{var d=e.updateQueue,I=d!==null?d.lastEffect:null;if(I!==null){var f=I.next;d=f;do{if((d.tag&n)===n){var S=d.inst,v=S.destroy;if(v!==void 0){S.destroy=void 0,I=e;var L=o,x=v;try{x()}catch(F){captureCommitPhaseError(I,L,F)}}}d=d.next}while(d!==f)}}catch(F){captureCommitPhaseError(e,e.return,F)}}function commitClassCallbacks(n){var e=n.updateQueue;if(e!==null){var o=n.stateNode;try{commitCallbacks(e,o)}catch(d){captureCommitPhaseError(n,n.return,d)}}}function safelyCallComponentWillUnmount(n,e,o){o.props=resolveClassComponentProps(n.type,n.memoizedProps),o.state=n.memoizedState;try{o.componentWillUnmount()}catch(d){captureCommitPhaseError(n,e,d)}}function safelyAttachRef(n,e){try{var o=n.ref;if(o!==null){switch(n.tag){case 26:case 27:case 5:var d=n.stateNode;break;case 30:d=n.stateNode;break;default:d=n.stateNode}typeof o=="function"?n.refCleanup=o(d):o.current=d}}catch(I){captureCommitPhaseError(n,e,I)}}function safelyDetachRef(n,e){var o=n.ref,d=n.refCleanup;if(o!==null)if(typeof d=="function")try{d()}catch(I){captureCommitPhaseError(n,e,I)}finally{n.refCleanup=null,n=n.alternate,n!=null&&(n.refCleanup=null)}else if(typeof o=="function")try{o(null)}catch(I){captureCommitPhaseError(n,e,I)}else o.current=null}function commitHostMount(n){var e=n.type,o=n.memoizedProps,d=n.stateNode;try{e:switch(e){case"button":case"input":case"select":case"textarea":o.autoFocus&&d.focus();break e;case"img":o.src?d.src=o.src:o.srcSet&&(d.srcset=o.srcSet)}}catch(I){captureCommitPhaseError(n,n.return,I)}}function commitHostUpdate(n,e,o){try{var d=n.stateNode;updateProperties(d,n.type,o,e),d[internalPropsKey]=e}catch(I){captureCommitPhaseError(n,n.return,I)}}function isHostParent(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&&isSingletonScope(n.type)||n.tag===4}function getHostSibling(n){e:for(;;){for(;n.sibling===null;){if(n.return===null||isHostParent(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.tag===27&&isSingletonScope(n.type)||n.flags&2||n.child===null||n.tag===4)continue e;n.child.return=n,n=n.child}if(!(n.flags&2))return n.stateNode}}function insertOrAppendPlacementNodeIntoContainer(n,e,o){var d=n.tag;if(d===5||d===6)n=n.stateNode,e?(o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o).insertBefore(n,e):(e=o.nodeType===9?o.body:o.nodeName==="HTML"?o.ownerDocument.body:o,e.appendChild(n),o=o._reactRootContainer,o!=null||e.onclick!==null||(e.onclick=noop$1));else if(d!==4&&(d===27&&isSingletonScope(n.type)&&(o=n.stateNode,e=null),n=n.child,n!==null))for(insertOrAppendPlacementNodeIntoContainer(n,e,o),n=n.sibling;n!==null;)insertOrAppendPlacementNodeIntoContainer(n,e,o),n=n.sibling}function insertOrAppendPlacementNode(n,e,o){var d=n.tag;if(d===5||d===6)n=n.stateNode,e?o.insertBefore(n,e):o.appendChild(n);else if(d!==4&&(d===27&&isSingletonScope(n.type)&&(o=n.stateNode),n=n.child,n!==null))for(insertOrAppendPlacementNode(n,e,o),n=n.sibling;n!==null;)insertOrAppendPlacementNode(n,e,o),n=n.sibling}function commitHostSingletonAcquisition(n){var e=n.stateNode,o=n.memoizedProps;try{for(var d=n.type,I=e.attributes;I.length;)e.removeAttributeNode(I[0]);setInitialProperties(e,d,o),e[internalInstanceKey]=n,e[internalPropsKey]=o}catch(f){captureCommitPhaseError(n,n.return,f)}}var offscreenSubtreeIsHidden=!1,offscreenSubtreeWasHidden=!1,needsFormReset=!1,PossiblyWeakSet=typeof WeakSet=="function"?WeakSet:Set,nextEffect=null;function commitBeforeMutationEffects(n,e){if(n=n.containerInfo,eventsEnabled=_enabled,n=getActiveElementDeep(n),hasSelectionCapabilities(n)){if("selectionStart"in n)var o={start:n.selectionStart,end:n.selectionEnd};else e:{o=(o=n.ownerDocument)&&o.defaultView||window;var d=o.getSelection&&o.getSelection();if(d&&d.rangeCount!==0){o=d.anchorNode;var I=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{o.nodeType,f.nodeType}catch{o=null;break e}var S=0,v=-1,L=-1,x=0,F=0,Y=n,j=null;t:for(;;){for(var W;Y!==o||I!==0&&Y.nodeType!==3||(v=S+I),Y!==f||d!==0&&Y.nodeType!==3||(L=S+d),Y.nodeType===3&&(S+=Y.nodeValue.length),(W=Y.firstChild)!==null;)j=Y,Y=W;for(;;){if(Y===n)break t;if(j===o&&++x===I&&(v=S),j===f&&++F===d&&(L=S),(W=Y.nextSibling)!==null)break;Y=j,j=Y.parentNode}Y=W}o=v===-1||L===-1?null:{start:v,end:L}}else o=null}o=o||{start:0,end:0}}else o=null;for(selectionInformation={focusedElem:n,selectionRange:o},_enabled=!1,nextEffect=e;nextEffect!==null;)if(e=nextEffect,n=e.child,(e.subtreeFlags&1028)!==0&&n!==null)n.return=e,nextEffect=n;else for(;nextEffect!==null;){switch(e=nextEffect,f=e.alternate,n=e.flags,e.tag){case 0:if(n&4&&(n=e.updateQueue,n=n!==null?n.events:null,n!==null))for(o=0;o title"))),setInitialProperties(f,d,o),f[internalInstanceKey]=n,markNodeAsHoistable(f),d=f;break e;case"link":var S=getHydratableHoistableCache("link","href",I).get(d+(o.href||""));if(S){for(var v=0;vhe&&(S=he,he=ee,ee=S);var ue=getNodeForCharacterOffset(v,ee),Ee=getNodeForCharacterOffset(v,he);if(ue&&Ee&&(W.rangeCount!==1||W.anchorNode!==ue.node||W.anchorOffset!==ue.offset||W.focusNode!==Ee.node||W.focusOffset!==Ee.offset)){var _e=Y.createRange();_e.setStart(ue.node,ue.offset),W.removeAllRanges(),ee>he?(W.addRange(_e),W.extend(Ee.node,Ee.offset)):(_e.setEnd(Ee.node,Ee.offset),W.addRange(_e))}}}}for(Y=[],W=v;W=W.parentNode;)W.nodeType===1&&Y.push({element:W,left:W.scrollLeft,top:W.scrollTop});for(typeof v.focus=="function"&&v.focus(),v=0;vo?32:o,ReactSharedInternals.T=null,o=pendingPassiveTransitions,pendingPassiveTransitions=null;var f=pendingEffectsRoot,S=pendingEffectsLanes;if(pendingEffectsStatus=0,pendingFinishedWork=pendingEffectsRoot=null,pendingEffectsLanes=0,executionContext&6)throw Error(formatProdErrorMessage(331));var v=executionContext;if(executionContext|=4,commitPassiveUnmountOnFiber(f.current),commitPassiveMountOnFiber(f,f.current,S,o),executionContext=v,flushSyncWorkAcrossRoots_impl(0,!1),injectedHook&&typeof injectedHook.onPostCommitFiberRoot=="function")try{injectedHook.onPostCommitFiberRoot(rendererID,f)}catch{}return!0}finally{ReactDOMSharedInternals.p=I,ReactSharedInternals.T=d,releaseRootPooledCache(n,e)}}function captureCommitPhaseErrorOnRoot(n,e,o){e=createCapturedValueAtFiber(o,e),e=createRootErrorUpdate(n.stateNode,e,2),n=enqueueUpdate(n,e,2),n!==null&&(markRootUpdated$1(n,2),ensureRootIsScheduled(n))}function captureCommitPhaseError(n,e,o){if(n.tag===3)captureCommitPhaseErrorOnRoot(n,n,o);else for(;e!==null;){if(e.tag===3){captureCommitPhaseErrorOnRoot(e,n,o);break}else if(e.tag===1){var d=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(legacyErrorBoundariesThatAlreadyFailed===null||!legacyErrorBoundariesThatAlreadyFailed.has(d))){n=createCapturedValueAtFiber(o,n),o=createClassErrorUpdate(2),d=enqueueUpdate(e,o,2),d!==null&&(initializeClassErrorUpdate(o,d,e,n),markRootUpdated$1(d,2),ensureRootIsScheduled(d));break}}e=e.return}}function attachPingListener(n,e,o){var d=n.pingCache;if(d===null){d=n.pingCache=new PossiblyWeakMap;var I=new Set;d.set(e,I)}else I=d.get(e),I===void 0&&(I=new Set,d.set(e,I));I.has(o)||(workInProgressRootDidAttachPingListener=!0,I.add(o),n=pingSuspendedRoot.bind(null,n,e,o),e.then(n,n))}function pingSuspendedRoot(n,e,o){var d=n.pingCache;d!==null&&d.delete(e),n.pingedLanes|=n.suspendedLanes&o,n.warmLanes&=~o,workInProgressRoot===n&&(workInProgressRootRenderLanes&o)===o&&(workInProgressRootExitStatus===4||workInProgressRootExitStatus===3&&(workInProgressRootRenderLanes&62914560)===workInProgressRootRenderLanes&&300>now()-globalMostRecentFallbackTime?!(executionContext&2)&&prepareFreshStack(n,0):workInProgressRootPingedLanes|=o,workInProgressSuspendedRetryLanes===workInProgressRootRenderLanes&&(workInProgressSuspendedRetryLanes=0)),ensureRootIsScheduled(n)}function retryTimedOutBoundary(n,e){e===0&&(e=claimNextRetryLane()),n=enqueueConcurrentRenderForLane(n,e),n!==null&&(markRootUpdated$1(n,e),ensureRootIsScheduled(n))}function retryDehydratedSuspenseBoundary(n){var e=n.memoizedState,o=0;e!==null&&(o=e.retryLane),retryTimedOutBoundary(n,o)}function resolveRetryWakeable(n,e){var o=0;switch(n.tag){case 31:case 13:var d=n.stateNode,I=n.memoizedState;I!==null&&(o=I.retryLane);break;case 19:d=n.stateNode;break;case 22:d=n.stateNode._retryCache;break;default:throw Error(formatProdErrorMessage(314))}d!==null&&d.delete(e),retryTimedOutBoundary(n,o)}function scheduleCallback$1(n,e){return scheduleCallback$3(n,e)}var firstScheduledRoot=null,lastScheduledRoot=null,didScheduleMicrotask=!1,mightHavePendingSyncWork=!1,isFlushingWork=!1,currentEventTransitionLane=0;function ensureRootIsScheduled(n){n!==lastScheduledRoot&&n.next===null&&(lastScheduledRoot===null?firstScheduledRoot=lastScheduledRoot=n:lastScheduledRoot=lastScheduledRoot.next=n),mightHavePendingSyncWork=!0,didScheduleMicrotask||(didScheduleMicrotask=!0,scheduleImmediateRootScheduleTask())}function flushSyncWorkAcrossRoots_impl(n,e){if(!isFlushingWork&&mightHavePendingSyncWork){isFlushingWork=!0;do for(var o=!1,d=firstScheduledRoot;d!==null;){if(n!==0){var I=d.pendingLanes;if(I===0)var f=0;else{var S=d.suspendedLanes,v=d.pingedLanes;f=(1<<31-clz32(42|n)+1)-1,f&=I&~(S&~v),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(o=!0,performSyncWorkOnRoot(d,f))}else f=workInProgressRootRenderLanes,f=getNextLanes(d,d===workInProgressRoot?f:0,d.cancelPendingCommit!==null||d.timeoutHandle!==-1),!(f&3)||checkIfRootIsPrerendering(d,f)||(o=!0,performSyncWorkOnRoot(d,f));d=d.next}while(o);isFlushingWork=!1}}function processRootScheduleInImmediateTask(){processRootScheduleInMicrotask()}function processRootScheduleInMicrotask(){mightHavePendingSyncWork=didScheduleMicrotask=!1;var n=0;currentEventTransitionLane!==0&&shouldAttemptEagerTransition()&&(n=currentEventTransitionLane);for(var e=now(),o=null,d=firstScheduledRoot;d!==null;){var I=d.next,f=scheduleTaskForRootDuringMicrotask(d,e);f===0?(d.next=null,o===null?firstScheduledRoot=I:o.next=I,I===null&&(lastScheduledRoot=o)):(o=d,(n!==0||f&3)&&(mightHavePendingSyncWork=!0)),d=I}pendingEffectsStatus!==0&&pendingEffectsStatus!==5||flushSyncWorkAcrossRoots_impl(n),currentEventTransitionLane!==0&&(currentEventTransitionLane=0)}function scheduleTaskForRootDuringMicrotask(n,e){for(var o=n.suspendedLanes,d=n.pingedLanes,I=n.expirationTimes,f=n.pendingLanes&-62914561;0v)break;var F=L.transferSize,Y=L.initiatorType;F&&isLikelyStaticResource(Y)&&(L=L.responseEnd,S+=F*(L"u"?null:document;function preconnectAs(n,e,o){var d=globalDocument;if(d&&typeof e=="string"&&e){var I=escapeSelectorAttributeValueInsideDoubleQuotes(e);I='link[rel="'+n+'"][href="'+I+'"]',typeof o=="string"&&(I+='[crossorigin="'+o+'"]'),preconnectsSet.has(I)||(preconnectsSet.add(I),n={rel:n,crossOrigin:o,href:e},d.querySelector(I)===null&&(e=d.createElement("link"),setInitialProperties(e,"link",n),markNodeAsHoistable(e),d.head.appendChild(e)))}}function prefetchDNS(n){previousDispatcher.D(n),preconnectAs("dns-prefetch",n,null)}function preconnect(n,e){previousDispatcher.C(n,e),preconnectAs("preconnect",n,e)}function preload(n,e,o){previousDispatcher.L(n,e,o);var d=globalDocument;if(d&&n&&e){var I='link[rel="preload"][as="'+escapeSelectorAttributeValueInsideDoubleQuotes(e)+'"]';e==="image"&&o&&o.imageSrcSet?(I+='[imagesrcset="'+escapeSelectorAttributeValueInsideDoubleQuotes(o.imageSrcSet)+'"]',typeof o.imageSizes=="string"&&(I+='[imagesizes="'+escapeSelectorAttributeValueInsideDoubleQuotes(o.imageSizes)+'"]')):I+='[href="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"]';var f=I;switch(e){case"style":f=getStyleKey(n);break;case"script":f=getScriptKey(n)}preloadPropsMap.has(f)||(n=assign({rel:"preload",href:e==="image"&&o&&o.imageSrcSet?void 0:n,as:e},o),preloadPropsMap.set(f,n),d.querySelector(I)!==null||e==="style"&&d.querySelector(getStylesheetSelectorFromKey(f))||e==="script"&&d.querySelector(getScriptSelectorFromKey(f))||(e=d.createElement("link"),setInitialProperties(e,"link",n),markNodeAsHoistable(e),d.head.appendChild(e)))}}function preloadModule(n,e){previousDispatcher.m(n,e);var o=globalDocument;if(o&&n){var d=e&&typeof e.as=="string"?e.as:"script",I='link[rel="modulepreload"][as="'+escapeSelectorAttributeValueInsideDoubleQuotes(d)+'"][href="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"]',f=I;switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=getScriptKey(n)}if(!preloadPropsMap.has(f)&&(n=assign({rel:"modulepreload",href:n},e),preloadPropsMap.set(f,n),o.querySelector(I)===null)){switch(d){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(o.querySelector(getScriptSelectorFromKey(f)))return}d=o.createElement("link"),setInitialProperties(d,"link",n),markNodeAsHoistable(d),o.head.appendChild(d)}}}function preinitStyle(n,e,o){previousDispatcher.S(n,e,o);var d=globalDocument;if(d&&n){var I=getResourcesFromRoot(d).hoistableStyles,f=getStyleKey(n);e=e||"default";var S=I.get(f);if(!S){var v={loading:0,preload:null};if(S=d.querySelector(getStylesheetSelectorFromKey(f)))v.loading=5;else{n=assign({rel:"stylesheet",href:n,"data-precedence":e},o),(o=preloadPropsMap.get(f))&&adoptPreloadPropsForStylesheet(n,o);var L=S=d.createElement("link");markNodeAsHoistable(L),setInitialProperties(L,"link",n),L._p=new Promise(function(x,F){L.onload=x,L.onerror=F}),L.addEventListener("load",function(){v.loading|=1}),L.addEventListener("error",function(){v.loading|=2}),v.loading|=4,insertStylesheet(S,e,d)}S={type:"stylesheet",instance:S,count:1,state:v},I.set(f,S)}}}function preinitScript(n,e){previousDispatcher.X(n,e);var o=globalDocument;if(o&&n){var d=getResourcesFromRoot(o).hoistableScripts,I=getScriptKey(n),f=d.get(I);f||(f=o.querySelector(getScriptSelectorFromKey(I)),f||(n=assign({src:n,async:!0},e),(e=preloadPropsMap.get(I))&&adoptPreloadPropsForScript(n,e),f=o.createElement("script"),markNodeAsHoistable(f),setInitialProperties(f,"link",n),o.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},d.set(I,f))}}function preinitModuleScript(n,e){previousDispatcher.M(n,e);var o=globalDocument;if(o&&n){var d=getResourcesFromRoot(o).hoistableScripts,I=getScriptKey(n),f=d.get(I);f||(f=o.querySelector(getScriptSelectorFromKey(I)),f||(n=assign({src:n,async:!0,type:"module"},e),(e=preloadPropsMap.get(I))&&adoptPreloadPropsForScript(n,e),f=o.createElement("script"),markNodeAsHoistable(f),setInitialProperties(f,"link",n),o.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},d.set(I,f))}}function getResource(n,e,o,d){var I=(I=rootInstanceStackCursor.current)?getHoistableRoot(I):null;if(!I)throw Error(formatProdErrorMessage(446));switch(n){case"meta":case"title":return null;case"style":return typeof o.precedence=="string"&&typeof o.href=="string"?(e=getStyleKey(o.href),o=getResourcesFromRoot(I).hoistableStyles,d=o.get(e),d||(d={type:"style",instance:null,count:0,state:null},o.set(e,d)),d):{type:"void",instance:null,count:0,state:null};case"link":if(o.rel==="stylesheet"&&typeof o.href=="string"&&typeof o.precedence=="string"){n=getStyleKey(o.href);var f=getResourcesFromRoot(I).hoistableStyles,S=f.get(n);if(S||(I=I.ownerDocument||I,S={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(n,S),(f=I.querySelector(getStylesheetSelectorFromKey(n)))&&!f._p&&(S.instance=f,S.state.loading=5),preloadPropsMap.has(n)||(o={rel:"preload",as:"style",href:o.href,crossOrigin:o.crossOrigin,integrity:o.integrity,media:o.media,hrefLang:o.hrefLang,referrerPolicy:o.referrerPolicy},preloadPropsMap.set(n,o),f||preloadStylesheet(I,n,o,S.state))),e&&d===null)throw Error(formatProdErrorMessage(528,""));return S}if(e&&d!==null)throw Error(formatProdErrorMessage(529,""));return null;case"script":return e=o.async,o=o.src,typeof o=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=getScriptKey(o),o=getResourcesFromRoot(I).hoistableScripts,d=o.get(e),d||(d={type:"script",instance:null,count:0,state:null},o.set(e,d)),d):{type:"void",instance:null,count:0,state:null};default:throw Error(formatProdErrorMessage(444,n))}}function getStyleKey(n){return'href="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"'}function getStylesheetSelectorFromKey(n){return'link[rel="stylesheet"]['+n+"]"}function stylesheetPropsFromRawProps(n){return assign({},n,{"data-precedence":n.precedence,precedence:null})}function preloadStylesheet(n,e,o,d){n.querySelector('link[rel="preload"][as="style"]['+e+"]")?d.loading=1:(e=n.createElement("link"),d.preload=e,e.addEventListener("load",function(){return d.loading|=1}),e.addEventListener("error",function(){return d.loading|=2}),setInitialProperties(e,"link",o),markNodeAsHoistable(e),n.head.appendChild(e))}function getScriptKey(n){return'[src="'+escapeSelectorAttributeValueInsideDoubleQuotes(n)+'"]'}function getScriptSelectorFromKey(n){return"script[async]"+n}function acquireResource(n,e,o){if(e.count++,e.instance===null)switch(e.type){case"style":var d=n.querySelector('style[data-href~="'+escapeSelectorAttributeValueInsideDoubleQuotes(o.href)+'"]');if(d)return e.instance=d,markNodeAsHoistable(d),d;var I=assign({},o,{"data-href":o.href,"data-precedence":o.precedence,href:null,precedence:null});return d=(n.ownerDocument||n).createElement("style"),markNodeAsHoistable(d),setInitialProperties(d,"style",I),insertStylesheet(d,o.precedence,n),e.instance=d;case"stylesheet":I=getStyleKey(o.href);var f=n.querySelector(getStylesheetSelectorFromKey(I));if(f)return e.state.loading|=4,e.instance=f,markNodeAsHoistable(f),f;d=stylesheetPropsFromRawProps(o),(I=preloadPropsMap.get(I))&&adoptPreloadPropsForStylesheet(d,I),f=(n.ownerDocument||n).createElement("link"),markNodeAsHoistable(f);var S=f;return S._p=new Promise(function(v,L){S.onload=v,S.onerror=L}),setInitialProperties(f,"link",d),e.state.loading|=4,insertStylesheet(f,o.precedence,n),e.instance=f;case"script":return f=getScriptKey(o.src),(I=n.querySelector(getScriptSelectorFromKey(f)))?(e.instance=I,markNodeAsHoistable(I),I):(d=o,(I=preloadPropsMap.get(f))&&(d=assign({},o),adoptPreloadPropsForScript(d,I)),n=n.ownerDocument||n,I=n.createElement("script"),markNodeAsHoistable(I),setInitialProperties(I,"link",d),n.head.appendChild(I),e.instance=I);case"void":return null;default:throw Error(formatProdErrorMessage(443,e.type))}else e.type==="stylesheet"&&!(e.state.loading&4)&&(d=e.instance,e.state.loading|=4,insertStylesheet(d,o.precedence,n));return e.instance}function insertStylesheet(n,e,o){for(var d=o.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),I=d.length?d[d.length-1]:null,f=I,S=0;S title"):null)}function isHostHoistableType(n,e,o){if(o===1||e.itemProp!=null)return!1;switch(n){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return n=e.disabled,typeof e.precedence=="string"&&n==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function preloadResource(n){return!(n.type==="stylesheet"&&!(n.state.loading&3))}function suspendResource(n,e,o,d){if(o.type==="stylesheet"&&(typeof d.media!="string"||matchMedia(d.media).matches!==!1)&&!(o.state.loading&4)){if(o.instance===null){var I=getStyleKey(d.href),f=e.querySelector(getStylesheetSelectorFromKey(I));if(f){e=f._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(n.count++,n=onUnsuspend.bind(n),e.then(n,n)),o.state.loading|=4,o.instance=f,markNodeAsHoistable(f);return}f=e.ownerDocument||e,d=stylesheetPropsFromRawProps(d),(I=preloadPropsMap.get(I))&&adoptPreloadPropsForStylesheet(d,I),f=f.createElement("link"),markNodeAsHoistable(f);var S=f;S._p=new Promise(function(v,L){S.onload=v,S.onerror=L}),setInitialProperties(f,"link",d),o.instance=f}n.stylesheets===null&&(n.stylesheets=new Map),n.stylesheets.set(o,e),(e=o.state.preload)&&!(o.state.loading&3)&&(n.count++,o=onUnsuspend.bind(n),e.addEventListener("load",o),e.addEventListener("error",o))}}var estimatedBytesWithinLimit=0;function waitForCommitToBeReady(n,e){return n.stylesheets&&n.count===0&&insertSuspendedStylesheets(n,n.stylesheets),0estimatedBytesWithinLimit?50:800)+e);return n.unsuspend=o,function(){n.unsuspend=null,clearTimeout(d),clearTimeout(I)}}:null}function onUnsuspend(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)insertSuspendedStylesheets(this,this.stylesheets);else if(this.unsuspend){var n=this.unsuspend;this.unsuspend=null,n()}}}var precedencesByRoot=null;function insertSuspendedStylesheets(n,e){n.stylesheets=null,n.unsuspend!==null&&(n.count++,precedencesByRoot=new Map,e.forEach(insertStylesheetIntoRoot,n),precedencesByRoot=null,onUnsuspend.call(n))}function insertStylesheetIntoRoot(n,e){if(!(e.state.loading&4)){var o=precedencesByRoot.get(n);if(o)var d=o.get(null);else{o=new Map,precedencesByRoot.set(n,o);for(var I=n.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(n){console.error(n)}}checkDCE(),client.exports=reactDomClient_production;var clientExports=client.exports;/** - * @license agora-rtc-react - * @version 2.5.1 - * - * Copyright (c) Agora, Inc. - * - * This source code is licensed under the MIT license. - */var J6=Object.create,aS=Object.defineProperty,Q6=Object.getOwnPropertyDescriptor,Z6=Object.getOwnPropertyNames,$6=Object.getPrototypeOf,t8=Object.prototype.hasOwnProperty,e8=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),n8=(n,e)=>{for(var o in e)aS(n,o,{get:e[o],enumerable:!0})},sS=(n,e,o,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let I of Z6(e))!t8.call(n,I)&&I!==o&&aS(n,I,{get:()=>e[I],enumerable:!(d=Q6(e,I))||d.enumerable});return n},oo=(n,e,o)=>(sS(n,e,"default"),o),oa=(n,e,o)=>(o=n!=null?J6($6(n)):{},sS(!n||!n.__esModule?aS(o,"default",{value:n,enumerable:!0}):o,n)),ss=e8((n,e)=>{(function(o,d){typeof n=="object"&&typeof e<"u"?e.exports=d():typeof define=="function"&&define.amd?define(d):(o=typeof globalThis<"u"?globalThis:o||self).AgoraRTC=d()})(n,function(){function o(a,A){return A.forEach(function(l){l&&typeof l!="string"&&!Array.isArray(l)&&Object.keys(l).forEach(function(g){if(g!=="default"&&!(g in a)){var C=Object.getOwnPropertyDescriptor(l,g);Object.defineProperty(a,g,C.get?C:{enumerable:!0,get:function(){return l[g]}})}})}),Object.freeze(a)}var d=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function I(a){return a&&a.__esModule&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a}var f=function(a){try{return!!a()}catch{return!0}},S=!f(function(){var a=(function(){}).bind();return typeof a!="function"||a.hasOwnProperty("prototype")}),v=S,L=Function.prototype,x=L.call,F=v&&L.bind.bind(x,x),Y=v?F:function(a){return function(){return x.apply(a,arguments)}},j=Y({}.isPrototypeOf),W=function(a){return a&&a.Math===Math&&a},re=W(typeof globalThis=="object"&&globalThis)||W(typeof window=="object"&&window)||W(typeof self=="object"&&self)||W(typeof d=="object"&&d)||W(typeof d=="object"&&d)||function(){return this}()||Function("return this")(),ee=S,he=Function.prototype,ue=he.apply,Ee=he.call,_e=typeof Reflect=="object"&&Reflect.apply||(ee?Ee.bind(ue):function(){return Ee.apply(ue,arguments)}),De=Y,Fe=De({}.toString),Ve=De("".slice),Ge=function(a){return Ve(Fe(a),8,-1)},He=Ge,At=Y,Bt=function(a){if(He(a)==="Function")return At(a)},Tt=typeof document=="object"&&document.all,rt=Tt===void 0&&Tt!==void 0?function(a){return typeof a=="function"||a===Tt}:function(a){return typeof a=="function"},ye={},lt=!f(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),Yt=S,ct=Function.prototype.call,ht=Yt?ct.bind(ct):function(){return ct.apply(ct,arguments)},vt={},ar={}.propertyIsEnumerable,jt=Object.getOwnPropertyDescriptor,vr=jt&&!ar.call({1:2},1);vt.f=vr?function(a){var A=jt(this,a);return!!A&&A.enumerable}:ar;var ai,pi,yi=function(a,A){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:A}},fi=f,Jn=Ge,xr=Object,pr=Y("".split),ei=fi(function(){return!xr("z").propertyIsEnumerable(0)})?function(a){return Jn(a)==="String"?pr(a,""):xr(a)}:xr,_i=function(a){return a==null},Gr=_i,oi=TypeError,Oi=function(a){if(Gr(a))throw new oi("Can't call method on "+a);return a},_o=ei,$n=Oi,gs=function(a){return _o($n(a))},Bs=rt,Kn=function(a){return typeof a=="object"?a!==null:Bs(a)},Tn={},Zn=Tn,hc=re,Fs=rt,bt=function(a){return Fs(a)?a:void 0},Es=function(a,A){return arguments.length<2?bt(Zn[a])||bt(hc[a]):Zn[a]&&Zn[a][A]||hc[a]&&hc[a][A]},Me=re.navigator,ot=Me&&Me.userAgent,Ct=ot?String(ot):"",Kt=re,Xr=Ct,Lr=Kt.process,Jr=Kt.Deno,zr=Lr&&Lr.versions||Jr&&Jr.version,ci=zr&&zr.v8;ci&&(pi=(ai=ci.split("."))[0]>0&&ai[0]<4?1:+(ai[0]+ai[1])),!pi&&Xr&&(!(ai=Xr.match(/Edge\/(\d+)/))||ai[1]>=74)&&(ai=Xr.match(/Chrome\/(\d+)/))&&(pi=+ai[1]);var ro=pi,Ho=ro,Oa=f,da=re.String,ua=!!Object.getOwnPropertySymbols&&!Oa(function(){var a=Symbol("symbol detection");return!da(a)||!(Object(a)instanceof Symbol)||!Symbol.sham&&Ho&&Ho<41}),Ns=ua&&!Symbol.sham&&typeof Symbol.iterator=="symbol",w1=Es,qc=rt,ag=j,du=Object,D1=Ns?function(a){return typeof a=="symbol"}:function(a){var A=w1("Symbol");return qc(A)&&ag(A.prototype,du(a))},oA=String,xA=function(a){try{return oA(a)}catch{return"Object"}},Mo=rt,_r=xA,rn=TypeError,dn=function(a){if(Mo(a))return a;throw new rn(_r(a)+" is not a function")},Io=dn,b1=_i,u1=function(a,A){var l=a[A];return b1(l)?void 0:Io(l)},N1=ht,Ic=rt,Sa=Kn,Wc=TypeError,Ll={exports:{}},mA=re,hs=Object.defineProperty,O1=re,gE=function(a,A){try{hs(mA,a,{value:A,configurable:!0,writable:!0})}catch{mA[a]=A}return A},EE="__core-js_shared__",Ag=Ll.exports=O1[EE]||gE(EE,{});(Ag.versions||(Ag.versions=[])).push({version:"3.46.0",mode:"pure",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.46.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Ml=Ll.exports,Cd=Ml,pd=function(a,A){return Cd[a]||(Cd[a]=A||{})},uu=Oi,Up=Object,L1=function(a){return Up(uu(a))},La=L1,hI=Y({}.hasOwnProperty),ts=Object.hasOwn||function(a,A){return hI(La(a),A)},Xs=Y,xp=0,II=Math.random(),hE=Xs(1.1.toString),fd=function(a){return"Symbol("+(a===void 0?"":a)+")_"+hE(++xp+II,36)},kl=pd,cg=ts,_d=fd,lg=ua,FA=Ns,md=re.Symbol,Xc=kl("wks"),IE=FA?md.for||md:md&&md.withoutSetter||_d,vo=function(a){return cg(Xc,a)||(Xc[a]=lg&&cg(md,a)?md[a]:IE("Symbol."+a)),Xc[a]},Po=ht,dg=Kn,zh=D1,$h=u1,Zh=function(a,A){var l,g;if(Ic(l=a.toString)&&!Sa(g=N1(l,a))||Ic(l=a.valueOf)&&!Sa(g=N1(l,a))||A!=="string")return g;throw new Wc("Can't convert object to primitive value")},Bd=TypeError,o0=vo("toPrimitive"),dr=function(a,A){if(!dg(a)||zh(a))return a;var l,g=$h(a,o0);if(g){if(l=Po(g,a,A),!dg(l)||zh(l))return l;throw new Bd("Can't convert object to primitive value")}return Zh(a,A)},Ze=D1,Nt=function(a){var A=dr(a,"string");return Ze(A)?A:A+""},Rr=Kn,ti=re.document,Ui=Rr(ti)&&Rr(ti.createElement),hn=function(a){return Ui?ti.createElement(a):{}},Uo=hn,zs=!lt&&!f(function(){return Object.defineProperty(Uo("div"),"a",{get:function(){return 7}}).a!==7}),GA=lt,M1=ht,A0=vt,sA=yi,CT=gs,pT=Nt,fT=ts,_T=zs,c0=Object.getOwnPropertyDescriptor;ye.f=GA?c0:function(a,A){if(a=CT(a),A=pT(A),_T)try{return c0(a,A)}catch{}if(fT(a,A))return sA(!M1(A0.f,a,A),a[A])};var Fp=f,Be=rt,Re=/#|\.prototype\./,Ke=function(a,A){var l=gt[Ye(a)];return l===Er||l!==Mt&&(Be(A)?Fp(A):!!A)},Ye=Ke.normalize=function(a){return String(a).replace(Re,".").toLowerCase()},gt=Ke.data={},Mt=Ke.NATIVE="N",Er=Ke.POLYFILL="P",cr=Ke,Ei=dn,Ji=S,xi=Bt(Bt.bind),qn=function(a,A){return Ei(a),A===void 0?a:Ji?xi(a,A):function(){return a.apply(A,arguments)}},mn={},Gs=lt&&f(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),ga=Kn,zc=String,g1=TypeError,Do=function(a){if(ga(a))return a;throw new g1(zc(a)+" is not an object")},Xo=lt,_m=zs,l0=Gs,d0=Do,gu=Nt,u0=TypeError,CI=Object.defineProperty,mT=Object.getOwnPropertyDescriptor,BT="enumerable",Gp="configurable",Vp="writable";mn.f=Xo?l0?function(a,A,l){if(d0(a),A=gu(A),d0(l),typeof a=="function"&&A==="prototype"&&"value"in l&&Vp in l&&!l[Vp]){var g=mT(a,A);g&&g[Vp]&&(a[A]=l.value,l={configurable:Gp in l?l[Gp]:g[Gp],enumerable:BT in l?l[BT]:g[BT],writable:!1})}return CI(a,A,l)}:CI:function(a,A,l){if(d0(a),A=gu(A),d0(l),_m)try{return CI(a,A,l)}catch{}if("get"in l||"set"in l)throw new u0("Accessors not supported");return"value"in l&&(a[A]=l.value),a};var ST=mn,A8=yi,g0=lt?function(a,A,l){return ST.f(a,A,A8(1,l))}:function(a,A,l){return a[A]=l,a},Sd=re,Kp=_e,u8=Bt,E8=rt,h8=ye.f,I8=cr,pI=Tn,fI=qn,_I=g0,I0=ts,b9=function(a){var A=function(l,g,C){if(this instanceof A){switch(arguments.length){case 0:return new a;case 1:return new a(l);case 2:return new a(l,g)}return new a(l,g,C)}return Kp(a,this,arguments)};return A.prototype=a.prototype,A},wn=function(a,A){var l,g,C,m,y,w,b,M,k,V=a.target,K=a.global,q=a.stat,ce=a.proto,oe=K?Sd:q?Sd[V]:Sd[V]&&Sd[V].prototype,le=K?pI:pI[V]||_I(pI,V,{})[V],pe=le.prototype;for(m in A)g=!(l=I8(K?m:V+(q?".":"#")+m,a.forced))&&oe&&I0(oe,m),w=le[m],g&&(b=a.dontCallGetSet?(k=h8(oe,m))&&k.value:oe[m]),y=g&&b?b:A[m],(l||ce||typeof w!=typeof y)&&(M=a.bind&&g?fI(y,Sd):a.wrap&&g?b9(y):ce&&E8(y)?u8(y):y,(a.sham||y&&y.sham||w&&w.sham)&&_I(M,"sham",!0),_I(le,m,M),ce&&(I0(pI,C=V+"Prototype")||_I(pI,C,{}),_I(pI[C],m,y),a.real&&pe&&(l||!pe[m])&&_I(pe,m,y)))},In=Math.ceil,C8=Math.floor,f8=Math.trunc||function(a){var A=+a;return(A>0?C8:In)(A)},m8=f8,RT=function(a){var A=+a;return A!=A||A===0?0:m8(A)},yT=RT,R8=Math.max,y8=Math.min,QT=function(a,A){var l=yT(a);return l<0?R8(l+A,0):y8(l,A)},TT=RT,Q8=Math.min,N9=function(a){var A=TT(a);return A>0?Q8(A,9007199254740991):0},O9=N9,CE=function(a){return O9(a.length)},ug=gs,T8=QT,D8=CE,L9=function(a){return function(A,l,g){var C=ug(A),m=D8(C);if(m===0)return!a&&-1;var y,w=T8(g,m);if(a&&l!=l){for(;m>w;)if((y=C[w++])!=y)return!0}else for(;m>w;w++)if((a||w in C)&&C[w]===l)return a||w||0;return!a&&-1}},mm={includes:L9(!0),indexOf:L9(!1)},wT=mm.includes;wn({target:"Array",proto:!0,forced:f(function(){return!Array(1).includes()})},{includes:function(a){return wT(this,a,arguments.length>1?arguments[1]:void 0)}});var b8=re,O8=Tn,Cc=function(a,A){var l=O8[a+"Prototype"],g=l&&l[A];if(g)return g;var C=b8[a],m=C&&C.prototype;return m&&m[A]},k8=Cc("Array","includes"),P8=Kn,U8=Ge,x8=vo("match"),E1=function(a){var A;return P8(a)&&((A=a[x8])!==void 0?!!A:U8(a)==="RegExp")},K8=E1,Y8=TypeError,M9={};M9[vo("toStringTag")]="z";var vT=String(M9)==="[object z]",DT=vT,j8=rt,Bm=Ge,k9=vo("toStringTag"),bT=Object,q8=Bm(function(){return arguments}())==="Arguments",pE=DT?Bm:function(a){var A,l,g;return a===void 0?"Undefined":a===null?"Null":typeof(l=function(C,m){try{return C[m]}catch{}}(A=bT(a),k9))=="string"?l:q8?Bm(A):(g=Bm(A))==="Object"&&j8(A.callee)?"Arguments":g},Sm=pE,W8=String,k1=function(a){if(Sm(a)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return W8(a)},z8=vo("match"),fE=wn,Z8=function(a){if(K8(a))throw new Y8("The method doesn't accept regular expressions");return a},eG=Oi,h1=k1,tG=function(a){var A=/./;try{"/./"[a](A)}catch{try{return A[z8]=!1,"/./"[a](A)}catch{}}return!1},rG=Y("".indexOf);fE({target:"String",proto:!0,forced:!tG("includes")},{includes:function(a){return!!~rG(h1(eG(this)),h1(Z8(a)),arguments.length>1?arguments[1]:void 0)}});var iG=Cc("String","includes"),P9=j,U9=k8,nG=iG,NT=Array.prototype,OT=String.prototype,x9=function(a){var A=a.includes;return a===NT||P9(NT,a)&&A===NT.includes?U9:typeof a=="string"||a===OT||P9(OT,a)&&A===OT.includes?nG:A},Rt=I(x9),oG=dn,LT=L1,MT=ei,sG=CE,Et=TypeError,F9="Reduce of empty array with no initial value",aG=function(a){return function(A,l,g,C){var m=LT(A),y=MT(m),w=sG(m);if(oG(l),w===0&&g<2)throw new Et(F9);var b=0,M=1;if(g<2)for(;;){if(b in y){C=y[b],b+=M;break}if(b+=M,w<=b)throw new Et(F9)}for(;w>b;b+=M)b in y&&(C=l(C,y[b],b,m));return C}},AG={left:aG()},cG=f,Hp=function(a,A){var l=[][a];return!!l&&cG(function(){l.call(null,A||function(){return 1},1)})},mI=re,lG=Ct,dG=Ge,Rm=function(a){return lG.slice(0,a.length)===a},BI=Rm("Bun/")?"BUN":Rm("Cloudflare-Workers")?"CLOUDFLARE":Rm("Deno/")?"DENO":Rm("Node.js/")?"NODE":mI.Bun&&typeof Bun.version=="string"?"BUN":mI.Deno&&typeof Deno.version=="object"?"DENO":dG(mI.process)==="process"?"NODE":mI.window&&mI.document?"BROWSER":"REST",_E=BI==="NODE",uG=AG.left;wn({target:"Array",proto:!0,forced:!_E&&ro>79&&ro<83||!Hp("reduce")},{reduce:function(a){var A=arguments.length;return uG(this,a,A,A>1?arguments[1]:void 0)}});var gG=Cc("Array","reduce"),ym=j,kT=gG,SI=Array.prototype,EG=function(a){var A=a.reduce;return a===SI||ym(SI,a)&&A===SI.reduce?kT:A},G9=EG,$c=I(G9),hG=Ge,C0=Array.isArray||function(a){return hG(a)==="Array"},IG=wn,V9=C0,VA=Y([].reverse),K9=[1,2];IG({target:"Array",proto:!0,forced:String(K9)===String(K9.reverse())},{reverse:function(){return V9(this)&&(this.length=this.length),VA(this)}});var p0=Cc("Array","reverse"),CG=j,pG=p0,PT=Array.prototype,H9=function(a){var A=a.reverse;return a===PT||CG(PT,a)&&A===PT.reverse?pG:A},Y9=H9,j9=I(Y9),fG=fd,Qm=pd("keys"),Tm=function(a){return Qm[a]||(Qm[a]=fG(a))},J9=!f(function(){function a(){}return a.prototype.constructor=null,Object.getPrototypeOf(new a)!==a.prototype}),RI=ts,_G=rt,q9=L1,wm=J9,W9=Tm("IE_PROTO"),UT=Object,mG=UT.prototype,xT=wm?UT.getPrototypeOf:function(a){var A=q9(a);if(RI(A,W9))return A[W9];var l=A.constructor;return _G(l)&&A instanceof l?l.prototype:A instanceof UT?mG:null},BG=Y,X9=dn,FT=Kn,SG=function(a){return FT(a)||a===null},GT=String,RG=TypeError,yG=function(a,A,l){try{return BG(X9(Object.getOwnPropertyDescriptor(a,A)[l]))}catch{}},QG=Kn,TG=Oi,wG=function(a){if(SG(a))return a;throw new RG("Can't set "+GT(a)+" as a prototype")},vG=Object.setPrototypeOf||("__proto__"in{}?function(){var a,A=!1,l={};try{(a=yG(Object.prototype,"__proto__","set"))(l,[]),A=l instanceof Array}catch{}return function(g,C){return TG(g),wG(C),QG(g)&&(A?a(g,C):g.__proto__=C),g}}():void 0),vm={},Dm={},VT=ts,DG=gs,bG=mm.indexOf,bm=Dm,Yp=Y([].push),Nm=function(a,A){var l,g=DG(a),C=0,m=[];for(l in g)!VT(bm,l)&&VT(g,l)&&Yp(m,l);for(;A.length>C;)VT(g,l=A[C++])&&(~bG(m,l)||Yp(m,l));return m},KT=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],NG=Nm,OG=KT.concat("length","prototype");vm.f=Object.getOwnPropertyNames||function(a){return NG(a,OG)};var yI={};yI.f=Object.getOwnPropertySymbols;var z9=Es,HT=vm,LG=yI,MG=Do,jp=Y([].concat),kG=z9("Reflect","ownKeys")||function(a){var A=HT.f(MG(a)),l=LG.f;return l?jp(A,l(a)):A},$9=ts,PG=kG,UG=ye,xG=mn,YT={},Z9=Nm,FG=KT,Om=Object.keys||function(a){return Z9(a,FG)},GG=lt,jT=Gs,VG=mn,KG=Do,Lm=gs,HG=Om;YT.f=GG&&!jT?Object.defineProperties:function(a,A){KG(a);for(var l,g=Lm(A),C=HG(A),m=C.length,y=0;m>y;)VG.f(a,l=C[y++],g[l]);return a};var Mm,eL=Es("document","documentElement"),YG=Do,jG=YT,tL=KT,km=Dm,iL=eL,JG=hn,JT="prototype",Pm="script",oL=Tm("IE_PROTO"),qT=function(){},sL=function(a){return"<"+Pm+">"+a+""},Um=function(a){a.write(sL("")),a.close();var A=a.parentWindow.Object;return a=null,A},QI=function(){try{Mm=new ActiveXObject("htmlfile")}catch{}var a,A,l;QI=typeof document<"u"?document.domain&&Mm?Um(Mm):(A=JG("iframe"),l="java"+Pm+":",A.style.display="none",iL.appendChild(A),A.src=String(l),(a=A.contentWindow.document).open(),a.write(sL("document.F=Object")),a.close(),a.F):Um(Mm);for(var g=tL.length;g--;)delete QI[JT][tL[g]];return QI()};km[oL]=!0;var TI=Object.create||function(a,A){var l;return a!==null?(qT[JT]=YG(a),l=new qT,qT[JT]=null,l[oL]=a):l=QI(),A===void 0?l:jG.f(l,A)},WT=Kn,AL=g0,XT=Error,xm=Y("".replace),Jp=String(new XT("zxcasd").stack),lL=/\n\s*at [^:]*:[^\n]*/,qG=lL.test(Jp),gL=yi,WG=!f(function(){var a=new Error("a");return!("stack"in a)||(Object.defineProperty(a,"stack",gL(1,7)),a.stack!==7)}),XG=g0,EL=function(a,A){if(qG&&typeof a=="string"&&!XT.prepareStackTrace)for(;A--;)a=xm(a,lL,"");return a},zG=WG,IL=Error.captureStackTrace,wI={},$G=wI,ZG=vo("iterator"),eV=Array.prototype,zT=function(a){return a!==void 0&&($G.Array===a||eV[ZG]===a)},vI=pE,CL=u1,tV=_i,rV=wI,fL=vo("iterator"),Fm=function(a){if(!tV(a))return CL(a,fL)||CL(a,"@@iterator")||rV[vI(a)]},mL=ht,iV=dn,nV=Do,oV=xA,qp=Fm,sV=TypeError,$T=function(a,A){var l=arguments.length<2?qp(a):A;if(iV(l))return nV(mL(l,a));throw new sV(oV(a)+" is not iterable")},aV=ht,BL=Do,AV=u1,RL=function(a,A,l){var g,C;BL(a);try{if(!(g=AV(a,"return"))){if(A==="throw")throw l;return l}g=aV(g,a)}catch(m){C=!0,g=m}if(A==="throw")throw l;if(C)throw g;return BL(g),l},ZT=qn,cV=ht,yL=Do,lV=xA,ew=zT,dV=CE,QL=j,uV=$T,gV=Fm,wL=RL,EV=TypeError,Wp=function(a,A){this.stopped=a,this.result=A},vL=Wp.prototype,Xp=function(a,A,l){var g,C,m,y,w,b,M,k=l&&l.that,V=!(!l||!l.AS_ENTRIES),K=!(!l||!l.IS_RECORD),q=!(!l||!l.IS_ITERATOR),ce=!(!l||!l.INTERRUPTED),oe=ZT(A,k),le=function(Se){return g&&wL(g,"normal"),new Wp(!0,Se)},pe=function(Se){return V?(yL(Se),ce?oe(Se[0],Se[1],le):oe(Se[0],Se[1])):ce?oe(Se,le):oe(Se)};if(K)g=a.iterator;else if(q)g=a;else{if(!(C=gV(a)))throw new EV(lV(a)+" is not iterable");if(ew(C)){for(m=0,y=dV(a);y>m;m++)if((w=pe(a[m]))&&QL(vL,w))return w;return new Wp(!1)}g=uV(a,C)}for(b=K?a.next:g.next;!(M=cV(b,g)).done;){try{w=pe(M.value)}catch(Se){wL(g,"throw",Se)}if(typeof w=="object"&&w&&QL(vL,w))return w}return new Wp(!1)},DL=k1,hV=wn,Gm=j,bL=xT,mE=vG,IV=function(a,A,l){for(var g=PG(A),C=xG.f,m=UG.f,y=0;y2&&Vm(l,arguments[2]);var C=[];return OL(a,pV,{that:C}),tw(l,"errors",C),l};mE?mE(DI,Km):IV(DI,Km,{name:!0});var ow=DI.prototype=NL(Km.prototype,{constructor:rw(1,DI),message:rw(1,""),name:rw(1,"AggregateError")});hV({global:!0},{AggregateError:DI});var Hm,BE,Ym,bI=rt,jm=re.WeakMap,Jm=bI(jm)&&/native code/.test(String(jm)),NI=re,qm=Kn,fV=g0,Wm=ts,sw=Ml,LL=Tm,_V=Dm,ML="Object already initialized",zp=NI.TypeError,aw=NI.WeakMap;if(Jm||sw.state){var Eu=sw.state||(sw.state=new aw);Eu.get=Eu.get,Eu.has=Eu.has,Eu.set=Eu.set,Hm=function(a,A){if(Eu.has(a))throw new zp(ML);return A.facade=a,Eu.set(a,A),A},BE=function(a){return Eu.get(a)||{}},Ym=function(a){return Eu.has(a)}}else{var OI=LL("state");_V[OI]=!0,Hm=function(a,A){if(Wm(a,OI))throw new zp(ML);return A.facade=a,fV(a,OI,A),A},BE=function(a){return Wm(a,OI)?a[OI]:{}},Ym=function(a){return Wm(a,OI)}}var SE,Xm,kL,I1={set:Hm,get:BE,has:Ym,enforce:function(a){return Ym(a)?BE(a):Hm(a,{})},getterFor:function(a){return function(A){var l;if(!qm(A)||(l=BE(A)).type!==a)throw new zp("Incompatible receiver, "+a+" required");return l}}},RE=lt,f0=ts,Aw=Function.prototype,PL=RE&&Object.getOwnPropertyDescriptor,gg=f0(Aw,"name"),zm={PROPER:gg&&(function(){}).name==="something",CONFIGURABLE:gg&&(!RE||RE&&PL(Aw,"name").configurable)},mV=g0,Eg=function(a,A,l,g){return g&&g.enumerable?a[A]=l:mV(a,A,l),a},BV=f,UL=rt,xL=Kn,SV=TI,hg=xT,RV=Eg,cw=vo("iterator"),FL=!1;[].keys&&("next"in(kL=[].keys())?(Xm=hg(hg(kL)))!==Object.prototype&&(SE=Xm):FL=!0);var yV=!xL(SE)||BV(function(){var a={};return SE[cw].call(a)!==a});UL((SE=yV?{}:SV(SE))[cw])||RV(SE,cw,function(){return this});var lw={IteratorPrototype:SE,BUGGY_SAFARI_ITERATORS:FL},QV=pE,dw=vT?{}.toString:function(){return"[object "+QV(this)+"]"},GL=vT,TV=mn.f,VL=g0,wV=ts,vV=dw,KL=vo("toStringTag"),Ig=function(a,A,l,g){var C=l?a:a&&a.prototype;C&&(wV(C,KL)||TV(C,KL,{configurable:!0,value:A}),g&&!GL&&VL(C,"toString",vV))},DV=lw.IteratorPrototype,bV=TI,NV=yi,HL=Ig,Cg=wI,OV=function(){return this},uw=function(a,A,l,g){var C=A+" Iterator";return a.prototype=bV(DV,{next:NV(+!g,l)}),HL(a,C,!1,!0),Cg[C]=OV,a},LV=wn,MV=ht,kV=zm,PV=uw,gw=xT,UV=Ig,YL=Eg,jL=wI,xV=lw,FV=kV.PROPER,$m=xV.BUGGY_SAFARI_ITERATORS,Zm=vo("iterator"),Ew="keys",eB="values",JL="entries",tB=function(){return this},rB=function(a,A,l,g,C,m,y){PV(l,A,g);var w,b,M,k=function(pe){if(pe===C&&oe)return oe;if(!$m&&pe&&pe in q)return q[pe];switch(pe){case Ew:case eB:case JL:return function(){return new l(this,pe)}}return function(){return new l(this)}},V=A+" Iterator",K=!1,q=a.prototype,ce=q[Zm]||q["@@iterator"]||C&&q[C],oe=!$m&&ce||k(C),le=A==="Array"&&q.entries||ce;if(le&&(w=gw(le.call(new a)))!==Object.prototype&&w.next&&(UV(w,V,!0,!0),jL[V]=tB),FV&&C===eB&&ce&&ce.name!==eB&&(K=!0,oe=function(){return MV(ce,this)}),C)if(b={values:k(eB),keys:m?oe:k(Ew),entries:k(JL)},y)for(M in b)($m||K||!(M in q))&&YL(q,M,b[M]);else LV({target:A,proto:!0,forced:$m||K},b);return y&&q[Zm]!==oe&&YL(q,Zm,oe,{}),jL[A]=oe,b},$p=function(a,A){return{value:a,done:A}},iB=gs,hw=wI,qL=I1;mn.f;var WL=rB,_0=$p,XL="Array Iterator",zL=qL.set,$L=qL.getterFor(XL);WL(Array,"Array",function(a,A){zL(this,{type:XL,target:iB(a),index:0,kind:A})},function(){var a=$L(this),A=a.target,l=a.index++;if(!A||l>=A.length)return a.target=null,_0(void 0,!0);switch(a.kind){case"keys":return _0(l,!1);case"values":return _0(A[l],!1)}return _0([l,A[l]],!1)},"values"),hw.Arguments=hw.Array;var GV=mn,m0=function(a,A,l){return GV.f(a,A,l)},ZL=Es,VV=m0,KV=lt,eM=vo("species"),nB=j,HV=TypeError,Iw=function(a,A){if(nB(A,a))return a;throw new HV("Incorrect invocation")},YV=rt,oB=Ml,jV=Y(Function.toString);YV(oB.inspectSource)||(oB.inspectSource=function(a){return jV(a)});var tM=oB.inspectSource,Cw=Y,JV=f,sB=rt,qV=pE,rM=tM,iM=function(){},nM=Es("Reflect","construct"),aB=/^\s*(?:class|function)\b/,WV=Cw(aB.exec),XV=!aB.test(iM),LI=function(a){if(!sB(a))return!1;try{return nM(iM,[],a),!0}catch{return!1}},pw=function(a){if(!sB(a))return!1;switch(qV(a)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return XV||!!WV(aB,rM(a))}catch{return!0}};pw.sham=!0;var B0,MI,oM,S0,Zp=!nM||JV(function(){var a;return LI(LI.call)||!LI(Object)||!LI(function(){a=!0})||a})?pw:LI,r3=Zp,kI=xA,sM=TypeError,AB=Do,cB=function(a){if(r3(a))return a;throw new sM(kI(a)+" is not a constructor")},zV=_i,$V=vo("species"),fw=function(a,A){var l,g=AB(a).constructor;return g===void 0||zV(l=AB(g)[$V])?A:cB(l)},pg=Y([].slice),ZV=TypeError,R0=function(a,A){if(a1?JK(arguments,1):[],l=qK.f(this),g=Zw(function(){return jK(WK(a),void 0,A)});return(g.error?l.reject:l.resolve)(g.value),l.promise}});var XK=Pl;wn({target:"Promise",stat:!0},{withResolvers:function(){var a=XK.f(this);return{promise:a.promise,resolve:a.resolve,reject:a.reject}}});var zK=wn,tv=hu,VM=f,rv=Es,KM=rt,$K=fw,HM=UM,iv=tv&&tv.prototype;zK({target:"Promise",proto:!0,real:!0,forced:!!tv&&VM(function(){iv.finally.call({then:function(){}},function(){})})},{finally:function(a){var A=$K(this,rv("Promise")),l=KM(a);return this.then(l?function(g){return HM(A,a()).then(function(){return g})}:a,l?function(g){return HM(A,a()).then(function(){throw g})}:a)}});var nv=Y,ZK=RT,eH=k1,tH=Oi,YM=nv("".charAt),jM=nv("".charCodeAt),ov=nv("".slice),JM=function(a){return function(A,l){var g,C,m=eH(tH(A)),y=ZK(l),w=m.length;return y<0||y>=w?a?"":void 0:(g=jM(m,y))<55296||g>56319||y+1===w||(C=jM(m,y+1))<56320||C>57343?a?YM(m,y):g:a?ov(m,y,y+2):C-56320+(g-55296<<10)+65536}},sv={codeAt:JM(!1),charAt:JM(!0)},rH=sv.charAt,iH=k1,av=I1,nH=rB,Av=$p,bB="String Iterator",oH=av.set,sH=av.getterFor(bB);nH(String,"String",function(a){oH(this,{type:bB,string:iH(a),index:0})},function(){var a,A=sH(this),l=A.string,g=A.index;return g>=l.length?Av(void 0,!0):(a=rH(l,g),A.index+=a.length,Av(a,!1))});var qM=Tn.Promise,aH={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},WM=re,XM=Ig,zM=wI;for(var cv in aH)XM(WM[cv],cv),zM[cv]=zM.Array;var $M=qM,Ft=I($M),AH=Cc("Array","values"),cH=pE,ZM=ts,lv=j,e6=AH,Ut=Array.prototype,lH={DOMTokenList:!0,NodeList:!0},dH=function(a){var A=a.values;return a===Ut||lv(Ut,a)&&A===Ut.values||ZM(lH,cH(a))?e6:A},U1=I(dH),t6=xA,uH=TypeError,NB=pg,gH=Math.floor,dv=function(a,A){var l=a.length;if(l<8)for(var g,C,m=1;m0;)a[C]=a[--C];C!==m++&&(a[C]=g)}else for(var y=gH(l/2),w=dv(NB(a,0,y),A),b=dv(NB(a,y),A),M=w.length,k=b.length,V=0,K=0;V3)){if(_H)return!0;if(LB)return LB<603;var a,A,l,g,C="";for(a=65;a<76;a++){switch(A=String.fromCharCode(a),a){case 66:case 69:case 70:case 72:l=3;break;case 68:case 71:l=4;break;default:l=2}for(g=0;g<47;g++)OE.push({k:A+g,v:l})}for(OE.sort(function(m,y){return y.v-m.v}),g=0;go6(b)?1:-1}}(a)),l=hv(C),g=0;gC;){if(A=+arguments[C++],TH(A,1114111)!==A)throw new fv(A+" is not a valid code point");l[C]=A<65536?d6(A):d6(55296+((A-=65536)>>10),A%1024+56320)}return wH(l,"")}});var vH=f,DH=vo("iterator"),MB=!vH(function(){var a=new URL("b?a=1&b=2&c=3","https://a"),A=a.searchParams,l=new URLSearchParams("a=1&a=2&b=3"),g="";return a.pathname="c%20d",A.forEach(function(C,m){A.delete("b"),g+=m+C}),l.delete("a",2),l.delete("b",void 0),!a.toJSON||!l.has("a",1)||l.has("a",2)||!l.has("a",void 0)||l.has("b")||!A.size&&!0||!A.sort||a.href!=="https://a/c%20d?a=1&c=3"||A.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!A[DH]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://тест").host!=="xn--e1aybc"||new URL("https://a#б").hash!=="#%D0%B1"||g!=="a1c3"||new URL("https://x",void 0).host!=="x"}),u6=Eg,kB=wn,g6=re,_v=ww,bH=Es,b0=ht,yd=Y,N0=lt,mv=MB,PB=Eg,NH=m0,UB=function(a,A,l){for(var g in A)l&&l.unsafe&&a[g]?a[g]=A[g]:u6(a,g,A[g],l);return a},Qd=Ig,d3=uw,xB=I1,Bv=Iw,Sv=rt,OH=ts,LH=qn,MH=pE,Rv=Do,yv=Kn,KA=k1,kH=TI,E6=yi,h6=$T,PH=Fm,u3=$p,za=R0,UH=BA,I6=vo("iterator"),O0="URLSearchParams",C6=O0+"Iterator",g3=xB.set,HA=xB.getterFor(O0),xH=xB.getterFor(C6),p6=_v("fetch"),mg=_v("Request"),YI=_v("Headers"),FB=mg&&mg.prototype,Zc=YI&&YI.prototype,FH=g6.TypeError,f6=g6.encodeURIComponent,GB=String.fromCharCode,E3=bH("String","fromCodePoint"),Qv=parseInt,h3=yd("".charAt),_6=yd([].join),ME=yd([].push),m6=yd("".replace),GH=yd([].shift),B6=yd([].splice),I3=yd("".split),Tv=yd("".slice),kE=yd(/./.exec),S6=/\+/g,VH=/^[0-9a-f]+$/i,wv=function(a,A){var l=Tv(a,A,A+2);return kE(VH,l)?Qv(l,16):NaN},R6=function(a){for(var A=0,l=128;l>0&&a&l;l>>=1)A++;return A},y6=function(a){var A=null;switch(a.length){case 1:A=a[0];break;case 2:A=(31&a[0])<<6|63&a[1];break;case 3:A=(15&a[0])<<12|(63&a[1])<<6|63&a[2];break;case 4:A=(7&a[0])<<18|(63&a[1])<<12|(63&a[2])<<6|63&a[3]}return A>1114111?null:A},T6=function(a){for(var A=(a=m6(a,S6," ")).length,l="",g=0;gA){l+="%",g++;continue}var m=wv(a,g+1);if(m!=m){l+=C,g++;continue}g+=2;var y=R6(m);if(y===0)C=GB(m);else{if(y===1||y>4){l+="�",g++;continue}for(var w=[m],b=1;bA||h3(a,g)!=="%");){var M=wv(a,g+1);if(M!=M){g+=3;break}if(M>191||M<128)break;ME(w,M),g+=2,b++}if(w.length!==y){l+="�";continue}var k=y6(w);k===null?l+="�":C=E3(k)}}l+=C,g++}return l},KH=/[!'()~]|%20/g,HH={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},w6=function(a){return HH[a]},v6=function(a){return m6(f6(a),KH,w6)},vv=d3(function(a,A){g3(this,{type:C6,target:HA(a).entries,index:0,kind:A})},O0,function(){var a=xH(this),A=a.target,l=a.index++;if(!A||l>=A.length)return a.target=null,u3(void 0,!0);var g=A[l];switch(a.kind){case"keys":return u3(g.key,!1);case"values":return u3(g.value,!1)}return u3([g.key,g.value],!1)},!0),Dv=function(a){this.entries=[],this.url=null,a!==void 0&&(yv(a)?this.parseObject(a):this.parseQuery(typeof a=="string"?h3(a,0)==="?"?Tv(a,1):a:KA(a)))};Dv.prototype={type:O0,bindURL:function(a){this.url=a,this.update()},parseObject:function(a){var A,l,g,C,m,y,w,b=this.entries,M=PH(a);if(M)for(l=(A=h6(a,M)).next;!(g=b0(l,A)).done;){if(m=(C=h6(Rv(g.value))).next,(y=b0(m,C)).done||(w=b0(m,C)).done||!b0(m,C).done)throw new FH("Expected sequence with length 2");ME(b,{key:KA(y.value),value:KA(w.value)})}else for(var k in a)OH(a,k)&&ME(b,{key:k,value:KA(a[k])})},parseQuery:function(a){if(a)for(var A,l,g=this.entries,C=I3(a,"&"),m=0;m0?arguments[0]:void 0));N0||(this.size=a.entries.length)},jI=VB.prototype;if(UB(jI,{append:function(a,A){var l=HA(this);za(arguments.length,2),ME(l.entries,{key:KA(a),value:KA(A)}),N0||this.length++,l.updateURL()},delete:function(a){for(var A=HA(this),l=za(arguments.length,1),g=A.entries,C=KA(a),m=l<2?void 0:arguments[1],y=m===void 0?m:KA(m),w=0;wl.key?1:-1}),a.updateURL()},forEach:function(a){for(var A,l=HA(this).entries,g=LH(a,arguments.length>1?arguments[1]:void 0),C=0;C1?KB(arguments[1]):{})}}),Sv(mg)){var HB=function(a){return Bv(this,FB),new mg(a,arguments.length>1?KB(arguments[1]):{})};FB.constructor=HB,HB.prototype=FB,kB({global:!0,dontCallGetSet:!0,forced:!0},{Request:HB})}}var F1,JI={URLSearchParams:VB,getState:HA},jH=Tn.URLSearchParams,b6=lt,N6=Y,bv=ht,Ul=f,Nv=Om,JH=yI,O6=vt,qH=L1,WH=ei,qI=Object.assign,YB=Object.defineProperty,XH=N6([].concat),zH=!qI||Ul(function(){if(b6&&qI({b:1},qI(YB({},"a",{enumerable:!0,get:function(){YB(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var a={},A={},l=Symbol("assign detection"),g="abcdefghijklmnopqrst";return a[l]=7,g.split("").forEach(function(C){A[C]=C}),qI({},a)[l]!==7||Nv(qI({},A)).join("")!==g})?function(a,A){for(var l=qH(a),g=arguments.length,C=1,m=JH.f,y=O6.f;g>C;)for(var w,b=WH(arguments[C++]),M=m?XH(Nv(b),m(b)):Nv(b),k=M.length,V=0;k>V;)w=M[V++],b6&&!bv(y,b,w)||(l[w]=b[w]);return l}:qI,$H=Do,ZH=RL,WI=lt,L6=mn,eY=yi,Ov=function(a,A,l){WI?L6.f(a,A,eY(0,l)):a[A]=l},rY=qn,iY=ht,nY=L1,oY=function(a,A,l,g){try{return g?A($H(l)[0],l[1]):A(l)}catch(C){ZH(a,"throw",C)}},sY=zT,jB=Zp,AY=CE,M6=Ov,lY=$T,dY=Fm,C3=Array,L0=Y,Lv=2147483647,gY=/[^\0-\u007E]/,k6=/[.\u3002\uFF0E\uFF61]/g,P6="Overflow: input needs wider integers to process",U6=RangeError,EY=L0(k6.exec),M0=Math.floor,Mv=String.fromCharCode,x6=L0("".charCodeAt),F6=L0([].join),PE=L0([].push),G6=L0("".replace),V6=L0("".split),k0=L0("".toLowerCase),JB=function(a){return a+22+75*(a<26)},hY=function(a,A,l){var g=0;for(a=l?M0(a/700):a>>1,a+=M0(a/A);a>455;)a=M0(a/35),g+=36;return M0(g+36*a/(a+38))},K6=function(a){var A=[];a=function(pe){for(var Se=[],be=0,Ue=pe.length;be=55296&&xe<=56319&&be=m&&gM0((Lv-y)/V))throw new U6(P6);for(y+=(k-m)*V,m=k,l=0;lLv)throw new U6(P6);if(g===m){for(var K=y,q=36;;){var ce=q<=w?1:q>=w+26?26:q-w;if(K1?arguments[1]:void 0,m=C!==void 0;m&&(C=rY(C,g>2?arguments[2]:void 0));var y,w,b,M,k,V,K=dY(A),q=0;if(!K||this===C3&&sY(K))for(y=AY(A),w=l?new this(y):C3(y);y>q;q++)V=m?C(A[q],q):A[q],M6(w,q,V);else for(w=l?new this:[],k=(M=lY(A,K)).next;!(b=iY(k,M)).done;q++)V=m?oY(M,C,[b.value,q],!0):b.value,M6(w,q,V);return w.length=q,w},Td=pg,pY=sv.codeAt,_Y=function(a){var A,l,g=[],C=V6(G6(k0(a),k6,"."),".");for(A=0;A?@[\\\]^|]/,W6=/[\0\t\n\r #/:<>?@[\\\]^|]/,tC=/^[\u0000-\u0020]+/,eS=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,NY=/[\t\n\r]/g,x0=function(a){var A,l,g,C;if(typeof a=="number"){for(A=[],l=0;l<4;l++)wY(A,a%256),a=RY(a/256);return f3(A,".")}if(typeof a=="object"){for(A="",g=function(m){for(var y=null,w=1,b=null,M=0,k=0;k<8;k++)m[k]!==0?(M>w&&(y=b,w=M),b=null,M=0):(b===null&&(b=k),++M);return M>w?b:y}(a),l=0;l<8;l++)C&&a[l]===0||(C&&(C=!1),g===l?(A+=l?":":"::",C=!0):(A+=j6(a[l],16),l<7&&(A+=":")));return"["+A+"]"}return a},Iu={},Fv=Pv({},Iu,{" ":1,'"':1,"<":1,">":1,"`":1}),Gv=Pv({},Fv,{"#":1,"?":1,"{":1,"}":1}),Vv=Pv({},Gv,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Cu=function(a,A){var l=pY(a,0);return l>32&&l<127&&!kv(A,a)?a:encodeURIComponent(a)},m3={ftp:21,file:null,http:80,https:443,ws:80,wss:443},B3=function(a,A){var l;return a.length===2&&vd(xl,$a(a,0))&&((l=$a(a,1))===":"||!A&&l==="|")},Kv=function(a){var A;return a.length>1&&B3(Sg(a,0,2))&&(a.length===2||(A=$a(a,2))==="/"||A==="\\"||A==="?"||A==="#")},Hv=function(a){return a==="."||$I(a)==="%2e"},Yv={},X6={},jv={},z6={},ek={},F0={},S3={},Jv={},tS={},R3={},rS={},y3={},pu={},rC={},iC={},iS={},nC={},Fl={},qv={},Rg={},fu={},nS=function(a,A,l){var g,C,m,y=wd(a);if(A){if(C=this.parse(y))throw new xE(C);this.searchParams=null}else{if(l!==void 0&&(g=new nS(l,!0)),C=this.parse(y,null,g))throw new xE(C);(m=$B(new BY)).bindURL(this),this.searchParams=m}};nS.prototype={type:"URL",parse:function(a,A,l){var g,C,m,y,w,b=this,M=A||Yv,k=0,V="",K=!1,q=!1,ce=!1;for(a=wd(a),A||(b.scheme="",b.username="",b.password="",b.host=null,b.port=null,b.path=[],b.query=null,b.fragment=null,b.cannotBeABaseURL=!1,a=zI(a,tC,""),a=zI(a,eS,"$1")),a=zI(a,NY,""),g=P0(a);k<=g.length;){switch(C=g[k],M){case Yv:if(!C||!vd(xl,C)){if(A)return ZI;M=jv;continue}V+=$I(C),M=X6;break;case X6:if(C&&(vd(_c,C)||C==="+"||C==="-"||C==="."))V+=$I(C);else{if(C!==":"){if(A)return ZI;V="",M=jv,k=0;continue}if(A&&(b.isSpecial()!==kv(m3,V)||V==="file"&&(b.includesCredentials()||b.port!==null)||b.scheme==="file"&&!b.host))return;if(b.scheme=V,A)return void(b.isSpecial()&&m3[b.scheme]===b.port&&(b.port=null));V="",b.scheme==="file"?M=rC:b.isSpecial()&&l&&l.scheme===b.scheme?M=z6:b.isSpecial()?M=Jv:g[k+1]==="/"?(M=ek,k++):(b.cannotBeABaseURL=!0,XI(b.path,""),M=qv)}break;case jv:if(!l||l.cannotBeABaseURL&&C!=="#")return ZI;if(l.cannotBeABaseURL&&C==="#"){b.scheme=l.scheme,b.path=Td(l.path),b.query=l.query,b.fragment="",b.cannotBeABaseURL=!0,M=fu;break}M=l.scheme==="file"?rC:F0;continue;case z6:if(C!=="/"||g[k+1]!=="/"){M=F0;continue}M=tS,k++;break;case ek:if(C==="/"){M=R3;break}M=Fl;continue;case F0:if(b.scheme=l.scheme,C===F1)b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.query=l.query;else if(C==="/"||C==="\\"&&b.isSpecial())M=S3;else if(C==="?")b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.query="",M=Rg;else{if(C!=="#"){b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.path.length--,M=Fl;continue}b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,b.path=Td(l.path),b.query=l.query,b.fragment="",M=fu}break;case S3:if(!b.isSpecial()||C!=="/"&&C!=="\\"){if(C!=="/"){b.username=l.username,b.password=l.password,b.host=l.host,b.port=l.port,M=Fl;continue}M=R3}else M=tS;break;case Jv:if(M=tS,C!=="/"||$a(V,k+1)!=="/")continue;k++;break;case tS:if(C!=="/"&&C!=="\\"){M=R3;continue}break;case R3:if(C==="@"){K&&(V="%40"+V),K=!0,m=P0(V);for(var oe=0;oe65535)return xv;b.port=b.isSpecial()&&Se===m3[b.scheme]?null:Se,V=""}if(A)return;M=nC;continue}return xv}V+=C;break;case rC:if(b.scheme="file",C==="/"||C==="\\")M=iC;else{if(!l||l.scheme!=="file"){M=Fl;continue}switch(C){case F1:b.host=l.host,b.path=Td(l.path),b.query=l.query;break;case"?":b.host=l.host,b.path=Td(l.path),b.query="",M=Rg;break;case"#":b.host=l.host,b.path=Td(l.path),b.query=l.query,b.fragment="",M=fu;break;default:Kv(f3(Td(g,k),""))||(b.host=l.host,b.path=Td(l.path),b.shortenPath()),M=Fl;continue}}break;case iC:if(C==="/"||C==="\\"){M=iS;break}l&&l.scheme==="file"&&!Kv(f3(Td(g,k),""))&&(B3(l.path[0],!0)?XI(b.path,l.path[0]):b.host=l.host),M=Fl;continue;case iS:if(C===F1||C==="/"||C==="\\"||C==="?"||C==="#"){if(!A&&B3(V))M=Fl;else if(V===""){if(b.host="",A)return;M=nC}else{if(y=b.parseHost(V))return y;if(b.host==="localhost"&&(b.host=""),A)return;V="",M=nC}continue}V+=C;break;case nC:if(b.isSpecial()){if(M=Fl,C!=="/"&&C!=="\\")continue}else if(A||C!=="?")if(A||C!=="#"){if(C!==F1&&(M=Fl,C!=="/"))continue}else b.fragment="",M=fu;else b.query="",M=Rg;break;case Fl:if(C===F1||C==="/"||C==="\\"&&b.isSpecial()||!A&&(C==="?"||C==="#")){if((w=$I(w=V))===".."||w==="%2e."||w===".%2e"||w==="%2e%2e"?(b.shortenPath(),C==="/"||C==="\\"&&b.isSpecial()||XI(b.path,"")):Hv(V)?C==="/"||C==="\\"&&b.isSpecial()||XI(b.path,""):(b.scheme==="file"&&!b.path.length&&B3(V)&&(b.host&&(b.host=""),V=$a(V,0)+":"),XI(b.path,V)),V="",b.scheme==="file"&&(C===F1||C==="?"||C==="#"))for(;b.path.length>1&&b.path[0]==="";)yY(b.path);C==="?"?(b.query="",M=Rg):C==="#"&&(b.fragment="",M=fu)}else V+=Cu(C,Gv);break;case qv:C==="?"?(b.query="",M=Rg):C==="#"?(b.fragment="",M=fu):C!==F1&&(b.path[0]+=Cu(C,Iu));break;case Rg:A||C!=="#"?C!==F1&&(C==="'"&&b.isSpecial()?b.query+="%27":b.query+=C==="#"?"%23":Cu(C,Iu)):(b.fragment="",M=fu);break;case fu:C!==F1&&(b.fragment+=Cu(C,Fv))}k++}},parseHost:function(a){var A,l,g;if($a(a,0)==="["){if($a(a,a.length-1)!=="]"||(A=function(C){var m,y,w,b,M,k,V,K=[0,0,0,0,0,0,0,0],q=0,ce=null,oe=0,le=function(){return $a(C,oe)};if(le()===":"){if($a(C,1)!==":")return;oe+=2,ce=++q}for(;le();){if(q===8)return;if(le()!==":"){for(m=y=0;y<4&&vd(ZB,le());)m=16*m+fc(le(),16),oe++,y++;if(le()==="."){if(y===0||(oe-=y,q>6))return;for(w=0;le();){if(b=null,w>0){if(!(le()==="."&&w<4))return;oe++}if(!vd(U0,le()))return;for(;vd(U0,le());){if(M=fc(le(),10),b===null)b=M;else{if(b===0)return;b=10*b+M}if(b>255)return;oe++}K[q]=256*K[q]+b,++w!=2&&w!==4||q++}if(w!==4)return;break}if(le()===":"){if(oe++,!le())return}else if(le())return;K[q++]=m}else{if(ce!==null)return;oe++,ce=++q}}if(ce!==null)for(k=q-ce,q=7;q!==0&&k>0;)V=K[q],K[q--]=K[ce+k-1],K[ce+--k]=V;else if(q!==8)return;return K}(Sg(a,1,-1)),!A))return _3;this.host=A}else if(this.isSpecial()){if(a=_Y(a),vd(bY,a)||(A=function(C){var m,y,w,b,M,k,V,K=QY(C,".");if(K.length&&K[K.length-1]===""&&K.length--,(m=K.length)>4)return C;for(y=[],w=0;w1&&$a(b,0)==="0"&&(M=vd(vY,b)?16:8,b=Sg(b,M===8?1:2)),b==="")k=0;else{if(!vd(M===10?eC:M===8?DY:ZB,b))return C;k=fc(b,M)}XI(y,k)}for(w=0;w=Y6(256,5-m))return null}else if(k>255)return null;for(V=q6(y),w=0;w1?arguments[1]:void 0,g=zB(A,new nS(a,!1,l));qB||(A.href=g.serialize(),A.origin=g.getOrigin(),A.protocol=g.getProtocol(),A.username=g.getUsername(),A.password=g.getPassword(),A.host=g.getHost(),A.hostname=g.getHostname(),A.port=g.getPort(),A.pathname=g.getPathname(),A.search=g.getSearch(),A.searchParams=g.getSearchParams(),A.hash=g.getHash())},C1=FE.prototype,rl=function(a,A){return{get:function(){return G1(this)[a]()},set:A&&function(l){return G1(this)[A](l)},configurable:!0,enumerable:!0}};if(qB&&(aA(C1,"href",rl("serialize","setHref")),aA(C1,"origin",rl("getOrigin")),aA(C1,"protocol",rl("getProtocol","setProtocol")),aA(C1,"username",rl("getUsername","setUsername")),aA(C1,"password",rl("getPassword","setPassword")),aA(C1,"host",rl("getHost","setHost")),aA(C1,"hostname",rl("getHostname","setHostname")),aA(C1,"port",rl("getPort","setPort")),aA(C1,"pathname",rl("getPathname","setPathname")),aA(C1,"search",rl("getSearch","setSearch")),aA(C1,"searchParams",rl("getSearchParams")),aA(C1,"hash",rl("getHash","setHash"))),p3(C1,"toJSON",function(){return G1(this).serialize()},{enumerable:!0}),p3(C1,"toString",function(){return G1(this).serialize()},{enumerable:!0}),Bg){var T3=Bg.createObjectURL,w3=Bg.revokeObjectURL;T3&&p3(FE,"createObjectURL",WB(T3,Bg)),w3&&p3(FE,"revokeObjectURL",WB(w3,Bg))}mY(FE,"URL"),H6({global:!0,forced:!IY,sham:!qB},{URL:FE});var Wv=wn,oS=f,Xv=R0,AS=k1,tk=MB,v3=Es("URL"),oC=tk&&oS(function(){v3.canParse()}),_u=oS(function(){return v3.canParse.length!==1});Wv({target:"URL",stat:!0,forced:!oC||_u},{canParse:function(a){var A=Xv(arguments.length,1),l=AS(a),g=A<2||arguments[1]===void 0?void 0:AS(arguments[1]);try{return!!new v3(l,g)}catch{return!1}}});var rk=wn,G0=R0,mu=k1,zv=MB,sC=Es("URL");rk({target:"URL",stat:!0,forced:!zv},{parse:function(a){var A=G0(arguments.length,1),l=mu(a),g=A<2||arguments[1]===void 0?void 0:mu(arguments[1]);try{return new sC(l,g)}catch{return null}}});var SA=I(Tn.URL);let il=!0,$v=!0;function D3(a,A,l){let g=a.match(A);return g&&g.length>=l&&parseInt(g[l],10)}function V0(a,A,l){if(!a.RTCPeerConnection)return;let g=a.RTCPeerConnection.prototype,C=g.addEventListener;g.addEventListener=function(y,w){if(y!==A)return C.apply(this,arguments);let b=M=>{let k=l(M);k&&(w.handleEvent?w.handleEvent(k):w(k))};return this._eventMap=this._eventMap||{},this._eventMap[A]||(this._eventMap[A]=new Map),this._eventMap[A].set(w,b),C.apply(this,[y,b])};let m=g.removeEventListener;g.removeEventListener=function(y,w){if(y!==A||!this._eventMap||!this._eventMap[A])return m.apply(this,arguments);if(!this._eventMap[A].has(w))return m.apply(this,arguments);let b=this._eventMap[A].get(w);return this._eventMap[A].delete(w),this._eventMap[A].size===0&&delete this._eventMap[A],Object.keys(this._eventMap).length===0&&delete this._eventMap,m.apply(this,[y,b])},Object.defineProperty(g,"on"+A,{get(){return this["_on"+A]},set(y){this["_on"+A]&&(this.removeEventListener(A,this["_on"+A]),delete this["_on"+A]),y&&this.addEventListener(A,this["_on"+A]=y)},enumerable:!0,configurable:!0})}function ik(a){return typeof a!="boolean"?new Error("Argument type: "+typeof a+". Please use a boolean."):(il=a,a?"adapter.js logging disabled":"adapter.js logging enabled")}function OY(a){return typeof a!="boolean"?new Error("Argument type: "+typeof a+". Please use a boolean."):($v=!a,"adapter.js deprecation warnings "+(a?"disabled":"enabled"))}function Zv(){if(typeof window=="object"){if(il)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function eD(a,A){$v&&console.warn(a+" is deprecated, please use "+A+" instead.")}function cS(a){return Object.prototype.toString.call(a)==="[object Object]"}function nk(a){var A;return cS(a)?$c(A=Object.keys(a)).call(A,function(l,g){let C=cS(a[g]),m=C?nk(a[g]):a[g],y=C&&!Object.keys(m).length;return m===void 0||y?l:Object.assign(l,{[g]:m})},{}):a}function tD(a,A,l){A&&!l.has(A.id)&&(l.set(A.id,A),Object.keys(A).forEach(g=>{g.endsWith("Id")?tD(a,a.get(A[g]),l):g.endsWith("Ids")&&A[g].forEach(C=>{tD(a,a.get(C),l)})}))}function sk(a,A,l){let g=l?"outbound-rtp":"inbound-rtp",C=new Map;if(A===null)return C;let m=[];return a.forEach(y=>{y.type==="track"&&y.trackIdentifier===A.id&&m.push(y)}),m.forEach(y=>{a.forEach(w=>{w.type===g&&w.trackId===y.id&&tD(a,w,C)})}),C}let ak=Zv;function rD(a,A){let l=a&&a.navigator;if(!l.mediaDevices)return;let g=function(y){if(typeof y!="object"||y.mandatory||y.optional)return y;let w={};return Object.keys(y).forEach(b=>{if(b==="require"||b==="advanced"||b==="mediaSource")return;let M=typeof y[b]=="object"?y[b]:{ideal:y[b]};M.exact!==void 0&&typeof M.exact=="number"&&(M.min=M.max=M.exact);let k=function(V,K){return V?V+K.charAt(0).toUpperCase()+K.slice(1):K==="deviceId"?"sourceId":K};if(M.ideal!==void 0){w.optional=w.optional||[];let V={};typeof M.ideal=="number"?(V[k("min",b)]=M.ideal,w.optional.push(V),V={},V[k("max",b)]=M.ideal,w.optional.push(V)):(V[k("",b)]=M.ideal,w.optional.push(V))}M.exact!==void 0&&typeof M.exact!="number"?(w.mandatory=w.mandatory||{},w.mandatory[k("",b)]=M.exact):["min","max"].forEach(V=>{M[V]!==void 0&&(w.mandatory=w.mandatory||{},w.mandatory[k(V,b)]=M[V])})}),y.advanced&&(w.optional=(w.optional||[]).concat(y.advanced)),w},C=function(y,w){if(A.version>=61)return w(y);if((y=JSON.parse(JSON.stringify(y)))&&typeof y.audio=="object"){let b=function(M,k,V){k in M&&!(V in M)&&(M[V]=M[k],delete M[k])};b((y=JSON.parse(JSON.stringify(y))).audio,"autoGainControl","googAutoGainControl"),b(y.audio,"noiseSuppression","googNoiseSuppression"),y.audio=g(y.audio)}if(y&&typeof y.video=="object"){let b=y.video.facingMode;b=b&&(typeof b=="object"?b:{ideal:b});let M=A.version<66;if(b&&(b.exact==="user"||b.exact==="environment"||b.ideal==="user"||b.ideal==="environment")&&(!l.mediaDevices.getSupportedConstraints||!l.mediaDevices.getSupportedConstraints().facingMode||M)){let k;if(delete y.video.facingMode,b.exact==="environment"||b.ideal==="environment"?k=["back","rear"]:b.exact!=="user"&&b.ideal!=="user"||(k=["front"]),k)return l.mediaDevices.enumerateDevices().then(V=>{V=V.filter(q=>q.kind==="videoinput");let K=V.find(q=>k.some(ce=>{var oe;return Rt(oe=q.label.toLowerCase()).call(oe,ce)}));return!K&&V.length&&Rt(k).call(k,"back")&&(K=V[V.length-1]),K&&(y.video.deviceId=b.exact?{exact:K.deviceId}:{ideal:K.deviceId}),y.video=g(y.video),ak("chrome: "+JSON.stringify(y)),w(y)})}y.video=g(y.video)}return ak("chrome: "+JSON.stringify(y)),w(y)},m=function(y){return A.version>=64?y:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[y.name]||y.name,message:y.message,constraint:y.constraint||y.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(l.getUserMedia=(function(y,w,b){C(y,M=>{l.webkitGetUserMedia(M,w,k=>{b&&b(m(k))})})}).bind(l),l.mediaDevices.getUserMedia){let y=l.mediaDevices.getUserMedia.bind(l.mediaDevices);l.mediaDevices.getUserMedia=function(w){return C(w,b=>y(b).then(M=>{if(b.audio&&!M.getAudioTracks().length||b.video&&!M.getVideoTracks().length)throw M.getTracks().forEach(k=>{k.stop()}),new DOMException("","NotFoundError");return M},M=>Ft.reject(m(M))))}}}function Ak(a){a.MediaStream=a.MediaStream||a.webkitMediaStream}function ck(a){if(typeof a=="object"&&a.RTCPeerConnection&&!("ontrack"in a.RTCPeerConnection.prototype)){Object.defineProperty(a.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(l){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=l)},enumerable:!0,configurable:!0});let A=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=l=>{l.stream.addEventListener("addtrack",g=>{let C;C=a.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(y=>y.track&&y.track.id===g.track.id):{track:g.track};let m=new Event("track");m.track=g.track,m.receiver=C,m.transceiver={receiver:C},m.streams=[l.stream],this.dispatchEvent(m)}),l.stream.getTracks().forEach(g=>{let C;C=a.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(y=>y.track&&y.track.id===g.id):{track:g};let m=new Event("track");m.track=g,m.receiver=C,m.transceiver={receiver:C},m.streams=[l.stream],this.dispatchEvent(m)})},this.addEventListener("addstream",this._ontrackpoly)),A.apply(this,arguments)}}else V0(a,"track",A=>(A.transceiver||Object.defineProperty(A,"transceiver",{value:{receiver:A.receiver}}),A))}function b3(a){if(typeof a=="object"&&a.RTCPeerConnection&&!("getSenders"in a.RTCPeerConnection.prototype)&&"createDTMFSender"in a.RTCPeerConnection.prototype){let A=function(C,m){return{track:m,get dtmf(){return this._dtmf===void 0&&(m.kind==="audio"?this._dtmf=C.createDTMFSender(m):this._dtmf=null),this._dtmf},_pc:C}};if(!a.RTCPeerConnection.prototype.getSenders){a.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};let C=a.RTCPeerConnection.prototype.addTrack;a.RTCPeerConnection.prototype.addTrack=function(y,w){let b=C.apply(this,arguments);return b||(b=A(this,y),this._senders.push(b)),b};let m=a.RTCPeerConnection.prototype.removeTrack;a.RTCPeerConnection.prototype.removeTrack=function(y){m.apply(this,arguments);let w=this._senders.indexOf(y);w!==-1&&this._senders.splice(w,1)}}let l=a.RTCPeerConnection.prototype.addStream;a.RTCPeerConnection.prototype.addStream=function(C){this._senders=this._senders||[],l.apply(this,[C]),C.getTracks().forEach(m=>{this._senders.push(A(this,m))})};let g=a.RTCPeerConnection.prototype.removeStream;a.RTCPeerConnection.prototype.removeStream=function(C){this._senders=this._senders||[],g.apply(this,[C]),C.getTracks().forEach(m=>{let y=this._senders.find(w=>w.track===m);y&&this._senders.splice(this._senders.indexOf(y),1)})}}else if(typeof a=="object"&&a.RTCPeerConnection&&"getSenders"in a.RTCPeerConnection.prototype&&"createDTMFSender"in a.RTCPeerConnection.prototype&&a.RTCRtpSender&&!("dtmf"in a.RTCRtpSender.prototype)){let A=a.RTCPeerConnection.prototype.getSenders;a.RTCPeerConnection.prototype.getSenders=function(){let l=A.apply(this,[]);return l.forEach(g=>g._pc=this),l},Object.defineProperty(a.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function iD(a){if(!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.getStats;a.RTCPeerConnection.prototype.getStats=function(){let[l,g,C]=arguments;if(arguments.length>0&&typeof l=="function")return A.apply(this,arguments);if(A.length===0&&(arguments.length===0||typeof l!="function"))return A.apply(this,[]);let m=function(w){let b={};return w.result().forEach(M=>{let k={id:M.id,timestamp:M.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[M.type]||M.type};M.names().forEach(V=>{k[V]=M.stat(V)}),b[k.id]=k}),b},y=function(w){return new Map(Object.keys(w).map(b=>[b,w[b]]))};if(arguments.length>=2){let w=function(b){g(y(m(b)))};return A.apply(this,[w,l])}return new Ft((w,b)=>{A.apply(this,[function(M){w(y(m(M)))},b])}).then(g,C)}}function nD(a){if(!(typeof a=="object"&&a.RTCPeerConnection&&a.RTCRtpSender&&a.RTCRtpReceiver))return;if(!("getStats"in a.RTCRtpSender.prototype)){let l=a.RTCPeerConnection.prototype.getSenders;l&&(a.RTCPeerConnection.prototype.getSenders=function(){let C=l.apply(this,[]);return C.forEach(m=>m._pc=this),C});let g=a.RTCPeerConnection.prototype.addTrack;g&&(a.RTCPeerConnection.prototype.addTrack=function(){let C=g.apply(this,arguments);return C._pc=this,C}),a.RTCRtpSender.prototype.getStats=function(){let C=this;return this._pc.getStats().then(m=>sk(m,C.track,!0))}}if(!("getStats"in a.RTCRtpReceiver.prototype)){let l=a.RTCPeerConnection.prototype.getReceivers;l&&(a.RTCPeerConnection.prototype.getReceivers=function(){let g=l.apply(this,[]);return g.forEach(C=>C._pc=this),g}),V0(a,"track",g=>(g.receiver._pc=g.srcElement,g)),a.RTCRtpReceiver.prototype.getStats=function(){let g=this;return this._pc.getStats().then(C=>sk(C,g.track,!1))}}if(!("getStats"in a.RTCRtpSender.prototype)||!("getStats"in a.RTCRtpReceiver.prototype))return;let A=a.RTCPeerConnection.prototype.getStats;a.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof a.MediaStreamTrack){let l=arguments[0],g,C,m;return this.getSenders().forEach(y=>{y.track===l&&(g?m=!0:g=y)}),this.getReceivers().forEach(y=>(y.track===l&&(C?m=!0:C=y),y.track===l)),m||g&&C?Ft.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):g?g.getStats():C?C.getStats():Ft.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return A.apply(this,arguments)}}function O3(a){a.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(m=>this._shimmedLocalStreams[m][0])};let A=a.RTCPeerConnection.prototype.addTrack;a.RTCPeerConnection.prototype.addTrack=function(m,y){if(!y)return A.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};let w=A.apply(this,arguments);return this._shimmedLocalStreams[y.id]?this._shimmedLocalStreams[y.id].indexOf(w)===-1&&this._shimmedLocalStreams[y.id].push(w):this._shimmedLocalStreams[y.id]=[y,w],w};let l=a.RTCPeerConnection.prototype.addStream;a.RTCPeerConnection.prototype.addStream=function(m){this._shimmedLocalStreams=this._shimmedLocalStreams||{},m.getTracks().forEach(b=>{if(this.getSenders().find(M=>M.track===b))throw new DOMException("Track already exists.","InvalidAccessError")});let y=this.getSenders();l.apply(this,arguments);let w=this.getSenders().filter(b=>y.indexOf(b)===-1);this._shimmedLocalStreams[m.id]=[m].concat(w)};let g=a.RTCPeerConnection.prototype.removeStream;a.RTCPeerConnection.prototype.removeStream=function(m){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[m.id],g.apply(this,arguments)};let C=a.RTCPeerConnection.prototype.removeTrack;a.RTCPeerConnection.prototype.removeTrack=function(m){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},m&&Object.keys(this._shimmedLocalStreams).forEach(y=>{let w=this._shimmedLocalStreams[y].indexOf(m);w!==-1&&this._shimmedLocalStreams[y].splice(w,1),this._shimmedLocalStreams[y].length===1&&delete this._shimmedLocalStreams[y]}),C.apply(this,arguments)}}function GE(a,A){if(!a.RTCPeerConnection)return;if(a.RTCPeerConnection.prototype.addTrack&&A.version>=65)return O3(a);let l=a.RTCPeerConnection.prototype.getLocalStreams;a.RTCPeerConnection.prototype.getLocalStreams=function(){let b=l.apply(this);return this._reverseStreams=this._reverseStreams||{},b.map(M=>this._reverseStreams[M.id])};let g=a.RTCPeerConnection.prototype.addStream;a.RTCPeerConnection.prototype.addStream=function(b){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},b.getTracks().forEach(M=>{if(this.getSenders().find(k=>k.track===M))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[b.id]){let M=new a.MediaStream(b.getTracks());this._streams[b.id]=M,this._reverseStreams[M.id]=b,b=M}g.apply(this,[b])};let C=a.RTCPeerConnection.prototype.removeStream;function m(b,M){let k=M.sdp;return Object.keys(b._reverseStreams||[]).forEach(V=>{let K=b._reverseStreams[V],q=b._streams[K.id];k=k.replace(new RegExp(q.id,"g"),K.id)}),new RTCSessionDescription({type:M.type,sdp:k})}a.RTCPeerConnection.prototype.removeStream=function(b){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},C.apply(this,[this._streams[b.id]||b]),delete this._reverseStreams[this._streams[b.id]?this._streams[b.id].id:b.id],delete this._streams[b.id]},a.RTCPeerConnection.prototype.addTrack=function(b,M){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");let k=[].slice.call(arguments,1);if(k.length!==1||!k[0].getTracks().find(K=>K===b))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(K=>K.track===b))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};let V=this._streams[M.id];if(V)V.addTrack(b),Ft.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{let K=new a.MediaStream([b]);this._streams[M.id]=K,this._reverseStreams[K.id]=M,this.addStream(K)}return this.getSenders().find(K=>K.track===b)},["createOffer","createAnswer"].forEach(function(b){let M=a.RTCPeerConnection.prototype[b],k={[b](){let V=arguments;return arguments.length&&typeof arguments[0]=="function"?M.apply(this,[K=>{let q=m(this,K);V[0].apply(null,[q])},K=>{V[1]&&V[1].apply(null,K)},arguments[2]]):M.apply(this,arguments).then(K=>m(this,K))}};a.RTCPeerConnection.prototype[b]=k[b]});let y=a.RTCPeerConnection.prototype.setLocalDescription;a.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(b,M){let k=M.sdp;return Object.keys(b._reverseStreams||[]).forEach(V=>{let K=b._reverseStreams[V],q=b._streams[K.id];k=k.replace(new RegExp(K.id,"g"),q.id)}),new RTCSessionDescription({type:M.type,sdp:k})}(this,arguments[0]),y.apply(this,arguments)):y.apply(this,arguments)};let w=Object.getOwnPropertyDescriptor(a.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(a.RTCPeerConnection.prototype,"localDescription",{get(){let b=w.get.apply(this);return b.type===""?b:m(this,b)}}),a.RTCPeerConnection.prototype.removeTrack=function(b){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!b._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(b._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let M;this._streams=this._streams||{},Object.keys(this._streams).forEach(k=>{this._streams[k].getTracks().find(V=>b.track===V)&&(M=this._streams[k])}),M&&(M.getTracks().length===1?this.removeStream(this._reverseStreams[M.id]):M.removeTrack(b.track),this.dispatchEvent(new Event("negotiationneeded")))}}function oD(a,A){!a.RTCPeerConnection&&a.webkitRTCPeerConnection&&(a.RTCPeerConnection=a.webkitRTCPeerConnection),a.RTCPeerConnection&&A.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(l){let g=a.RTCPeerConnection.prototype[l],C={[l](){return arguments[0]=new(l==="addIceCandidate"?a.RTCIceCandidate:a.RTCSessionDescription)(arguments[0]),g.apply(this,arguments)}};a.RTCPeerConnection.prototype[l]=C[l]})}function lk(a,A){V0(a,"negotiationneeded",l=>{let g=l.target;if(!(A.version<72||g.getConfiguration&&g.getConfiguration().sdpSemantics==="plan-b")||g.signalingState==="stable")return l})}var sD=Object.freeze({__proto__:null,fixNegotiationNeeded:lk,shimAddTrackRemoveTrack:GE,shimAddTrackRemoveTrackWithNative:O3,shimGetDisplayMedia:function(a,A){a.navigator.mediaDevices&&"getDisplayMedia"in a.navigator.mediaDevices||a.navigator.mediaDevices&&(typeof A=="function"?a.navigator.mediaDevices.getDisplayMedia=function(l){return A(l).then(g=>{let C=l.video&&l.video.width,m=l.video&&l.video.height,y=l.video&&l.video.frameRate;return l.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:g,maxFrameRate:y||3}},C&&(l.video.mandatory.maxWidth=C),m&&(l.video.mandatory.maxHeight=m),a.navigator.mediaDevices.getUserMedia(l)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))},shimGetSendersWithDtmf:b3,shimGetStats:iD,shimGetUserMedia:rD,shimMediaStream:Ak,shimOnTrack:ck,shimPeerConnection:oD,shimSenderReceiverGetStats:nD});function lS(a,A){let l=a&&a.navigator,g=a&&a.MediaStreamTrack;if(l.getUserMedia=function(C,m,y){eD("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),l.mediaDevices.getUserMedia(C).then(m,y)},!(A.version>55&&"autoGainControl"in l.mediaDevices.getSupportedConstraints())){let C=function(y,w,b){w in y&&!(b in y)&&(y[b]=y[w],delete y[w])},m=l.mediaDevices.getUserMedia.bind(l.mediaDevices);if(l.mediaDevices.getUserMedia=function(y){return typeof y=="object"&&typeof y.audio=="object"&&(y=JSON.parse(JSON.stringify(y)),C(y.audio,"autoGainControl","mozAutoGainControl"),C(y.audio,"noiseSuppression","mozNoiseSuppression")),m(y)},g&&g.prototype.getSettings){let y=g.prototype.getSettings;g.prototype.getSettings=function(){let w=y.apply(this,arguments);return C(w,"mozAutoGainControl","autoGainControl"),C(w,"mozNoiseSuppression","noiseSuppression"),w}}if(g&&g.prototype.applyConstraints){let y=g.prototype.applyConstraints;g.prototype.applyConstraints=function(w){return this.kind==="audio"&&typeof w=="object"&&(w=JSON.parse(JSON.stringify(w)),C(w,"autoGainControl","mozAutoGainControl"),C(w,"noiseSuppression","mozNoiseSuppression")),y.apply(this,[w])}}}}function aD(a){typeof a=="object"&&a.RTCTrackEvent&&"receiver"in a.RTCTrackEvent.prototype&&!("transceiver"in a.RTCTrackEvent.prototype)&&Object.defineProperty(a.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function dS(a,A){if(typeof a!="object"||!a.RTCPeerConnection&&!a.mozRTCPeerConnection)return;!a.RTCPeerConnection&&a.mozRTCPeerConnection&&(a.RTCPeerConnection=a.mozRTCPeerConnection),A.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(C){let m=a.RTCPeerConnection.prototype[C],y={[C](){return arguments[0]=new(C==="addIceCandidate"?a.RTCIceCandidate:a.RTCSessionDescription)(arguments[0]),m.apply(this,arguments)}};a.RTCPeerConnection.prototype[C]=y[C]});let l={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},g=a.RTCPeerConnection.prototype.getStats;a.RTCPeerConnection.prototype.getStats=function(){let[C,m,y]=arguments;return g.apply(this,[C||null]).then(w=>{if(A.version<53&&!m)try{w.forEach(b=>{b.type=l[b.type]||b.type})}catch(b){if(b.name!=="TypeError")throw b;w.forEach((M,k)=>{w.set(k,Object.assign({},M,{type:l[M.type]||M.type}))})}return w}).then(m,y)}}function uS(a){if(typeof a!="object"||!a.RTCPeerConnection||!a.RTCRtpSender||a.RTCRtpSender&&"getStats"in a.RTCRtpSender.prototype)return;let A=a.RTCPeerConnection.prototype.getSenders;A&&(a.RTCPeerConnection.prototype.getSenders=function(){let g=A.apply(this,[]);return g.forEach(C=>C._pc=this),g});let l=a.RTCPeerConnection.prototype.addTrack;l&&(a.RTCPeerConnection.prototype.addTrack=function(){let g=l.apply(this,arguments);return g._pc=this,g}),a.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Ft.resolve(new Map)}}function AD(a){if(typeof a!="object"||!a.RTCPeerConnection||!a.RTCRtpSender||a.RTCRtpSender&&"getStats"in a.RTCRtpReceiver.prototype)return;let A=a.RTCPeerConnection.prototype.getReceivers;A&&(a.RTCPeerConnection.prototype.getReceivers=function(){let l=A.apply(this,[]);return l.forEach(g=>g._pc=this),l}),V0(a,"track",l=>(l.receiver._pc=l.srcElement,l)),a.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function cD(a){a.RTCPeerConnection&&!("removeStream"in a.RTCPeerConnection.prototype)&&(a.RTCPeerConnection.prototype.removeStream=function(A){eD("removeStream","removeTrack"),this.getSenders().forEach(l=>{var g;l.track&&Rt(g=A.getTracks()).call(g,l.track)&&this.removeTrack(l)})})}function lD(a){a.DataChannel&&!a.RTCDataChannel&&(a.RTCDataChannel=a.DataChannel)}function dD(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.addTransceiver;A&&(a.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let l=arguments[1]&&arguments[1].sendEncodings;l===void 0&&(l=[]),l=[...l];let g=l.length>0;g&&l.forEach(m=>{if("rid"in m&&!/^[a-z0-9]{0,16}$/i.test(m.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in m&&!(parseFloat(m.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in m&&!(parseFloat(m.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});let C=A.apply(this,arguments);if(g){let{sender:m}=C,y=m.getParameters();(!("encodings"in y)||y.encodings.length===1&&Object.keys(y.encodings[0]).length===0)&&(y.encodings=l,m.sendEncodings=l,this.setParametersPromises.push(m.setParameters(y).then(()=>{delete m.sendEncodings}).catch(()=>{delete m.sendEncodings})))}return C})}function uD(a){if(typeof a!="object"||!a.RTCRtpSender)return;let A=a.RTCRtpSender.prototype.getParameters;A&&(a.RTCRtpSender.prototype.getParameters=function(){let l=A.apply(this,arguments);return"encodings"in l||(l.encodings=[].concat(this.sendEncodings||[{}])),l})}function gD(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.createOffer;a.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ft.all(this.setParametersPromises).then(()=>A.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):A.apply(this,arguments)}}function ED(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype.createAnswer;a.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ft.all(this.setParametersPromises).then(()=>A.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):A.apply(this,arguments)}}var hD=Object.freeze({__proto__:null,shimAddTransceiver:dD,shimCreateAnswer:ED,shimCreateOffer:gD,shimGetDisplayMedia:function(a,A){a.navigator.mediaDevices&&"getDisplayMedia"in a.navigator.mediaDevices||a.navigator.mediaDevices&&(a.navigator.mediaDevices.getDisplayMedia=function(l){if(!l||!l.video){let g=new DOMException("getDisplayMedia without video constraints is undefined");return g.name="NotFoundError",g.code=8,Ft.reject(g)}return l.video===!0?l.video={mediaSource:A}:l.video.mediaSource=A,a.navigator.mediaDevices.getUserMedia(l)})},shimGetParameters:uD,shimGetUserMedia:lS,shimOnTrack:aD,shimPeerConnection:dS,shimRTCDataChannel:lD,shimReceiverGetStats:AD,shimRemoveStream:cD,shimSenderGetStats:uS});function ID(a){if(typeof a=="object"&&a.RTCPeerConnection){if("getLocalStreams"in a.RTCPeerConnection.prototype||(a.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in a.RTCPeerConnection.prototype)){let A=a.RTCPeerConnection.prototype.addTrack;a.RTCPeerConnection.prototype.addStream=function(l){var g;this._localStreams||(this._localStreams=[]),Rt(g=this._localStreams).call(g,l)||this._localStreams.push(l),l.getAudioTracks().forEach(C=>A.call(this,C,l)),l.getVideoTracks().forEach(C=>A.call(this,C,l))},a.RTCPeerConnection.prototype.addTrack=function(l){for(var g=arguments.length,C=new Array(g>1?g-1:0),m=1;m{var w;this._localStreams?Rt(w=this._localStreams).call(w,y)||this._localStreams.push(y):this._localStreams=[y]}),A.apply(this,arguments)}}"removeStream"in a.RTCPeerConnection.prototype||(a.RTCPeerConnection.prototype.removeStream=function(A){this._localStreams||(this._localStreams=[]);let l=this._localStreams.indexOf(A);if(l===-1)return;this._localStreams.splice(l,1);let g=A.getTracks();this.getSenders().forEach(C=>{Rt(g).call(g,C.track)&&this.removeTrack(C)})})}}function CD(a){if(typeof a=="object"&&a.RTCPeerConnection&&("getRemoteStreams"in a.RTCPeerConnection.prototype||(a.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in a.RTCPeerConnection.prototype))){Object.defineProperty(a.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(l){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=l),this.addEventListener("track",this._onaddstreampoly=g=>{g.streams.forEach(C=>{var m;if(this._remoteStreams||(this._remoteStreams=[]),Rt(m=this._remoteStreams).call(m,C))return;this._remoteStreams.push(C);let y=new Event("addstream");y.stream=C,this.dispatchEvent(y)})})}});let A=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(){let l=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(g){g.streams.forEach(C=>{if(l._remoteStreams||(l._remoteStreams=[]),l._remoteStreams.indexOf(C)>=0)return;l._remoteStreams.push(C);let m=new Event("addstream");m.stream=C,l.dispatchEvent(m)})}),A.apply(l,arguments)}}}function ES(a){if(typeof a!="object"||!a.RTCPeerConnection)return;let A=a.RTCPeerConnection.prototype,l=A.createOffer,g=A.createAnswer,C=A.setLocalDescription,m=A.setRemoteDescription,y=A.addIceCandidate;A.createOffer=function(b,M){let k=arguments.length>=2?arguments[2]:arguments[0],V=l.apply(this,[k]);return M?(V.then(b,M),Ft.resolve()):V},A.createAnswer=function(b,M){let k=arguments.length>=2?arguments[2]:arguments[0],V=g.apply(this,[k]);return M?(V.then(b,M),Ft.resolve()):V};let w=function(b,M,k){let V=C.apply(this,[b]);return k?(V.then(M,k),Ft.resolve()):V};A.setLocalDescription=w,w=function(b,M,k){let V=m.apply(this,[b]);return k?(V.then(M,k),Ft.resolve()):V},A.setRemoteDescription=w,w=function(b,M,k){let V=y.apply(this,[b]);return k?(V.then(M,k),Ft.resolve()):V},A.addIceCandidate=w}function pD(a){let A=a&&a.navigator;if(A.mediaDevices&&A.mediaDevices.getUserMedia){let l=A.mediaDevices,g=l.getUserMedia.bind(l);A.mediaDevices.getUserMedia=C=>g(fD(C))}!A.getUserMedia&&A.mediaDevices&&A.mediaDevices.getUserMedia&&(A.getUserMedia=(function(l,g,C){A.mediaDevices.getUserMedia(l).then(g,C)}).bind(A))}function fD(a){return a&&a.video!==void 0?Object.assign({},a,{video:nk(a.video)}):a}function _D(a){if(!a.RTCPeerConnection)return;let A=a.RTCPeerConnection;a.RTCPeerConnection=function(l,g){if(l&&l.iceServers){let C=[];for(let m=0;mA.generateCertificate})}function mD(a){typeof a=="object"&&a.RTCTrackEvent&&"receiver"in a.RTCTrackEvent.prototype&&!("transceiver"in a.RTCTrackEvent.prototype)&&Object.defineProperty(a.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function hS(a){let A=a.RTCPeerConnection.prototype.createOffer;a.RTCPeerConnection.prototype.createOffer=function(l){if(l){l.offerToReceiveAudio!==void 0&&(l.offerToReceiveAudio=!!l.offerToReceiveAudio);let g=this.getTransceivers().find(m=>m.receiver.track.kind==="audio");l.offerToReceiveAudio===!1&&g?g.direction==="sendrecv"?g.setDirection?g.setDirection("sendonly"):g.direction="sendonly":g.direction==="recvonly"&&(g.setDirection?g.setDirection("inactive"):g.direction="inactive"):l.offerToReceiveAudio!==!0||g||this.addTransceiver("audio",{direction:"recvonly"}),l.offerToReceiveVideo!==void 0&&(l.offerToReceiveVideo=!!l.offerToReceiveVideo);let C=this.getTransceivers().find(m=>m.receiver.track.kind==="video");l.offerToReceiveVideo===!1&&C?C.direction==="sendrecv"?C.setDirection?C.setDirection("sendonly"):C.direction="sendonly":C.direction==="recvonly"&&(C.setDirection?C.setDirection("inactive"):C.direction="inactive"):l.offerToReceiveVideo!==!0||C||this.addTransceiver("video",{direction:"recvonly"})}return A.apply(this,arguments)}}function BD(a){typeof a!="object"||a.AudioContext||(a.AudioContext=a.webkitAudioContext)}var SD=Object.freeze({__proto__:null,shimAudioContext:BD,shimCallbacksAPI:ES,shimConstraints:fD,shimCreateOfferLegacy:hS,shimGetUserMedia:pD,shimLocalStreamsAPI:ID,shimRTCIceServerUrls:_D,shimRemoteStreamsAPI:CD,shimTrackEventTransceiver:mD}),RD=` -\v\f\r                 \u2028\u2029\uFEFF`,dk=Oi,uk=k1,CS=RD,yD=Y("".replace),gk=RegExp("^["+CS+"]+"),Ek=RegExp("(^|[^"+CS+"])["+CS+"]+$"),hk=function(a){return function(A){var l=uk(dk(A));return l=yD(l,gk,""),l=yD(l,Ek,"$1"),l}},Ik={trim:hk()},Ck=zm.PROPER,pk=f,QD=RD,fk=Ik.trim;wn({target:"String",proto:!0,forced:function(a){return pk(function(){return!!QD[a]()||"​…᠎"[a]()!=="​…᠎"||Ck&&QD[a].name!==a})}("trim")},{trim:function(){return fk(this)}});var mk=Cc("String","trim"),Bk=j,Sk=mk,pS=String.prototype,Rk=function(a){var A=a.trim;return typeof a=="string"||a===pS||Bk(pS,a)&&A===pS.trim?Sk:A},RA=I(Rk),yk={exports:{}};(function(a){let A={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};A.localCName=A.generateIdentifier(),A.splitLines=function(l){return l.trim().split(` -`).map(g=>g.trim())},A.splitSections=function(l){return l.split(` -m=`).map((g,C)=>(C>0?"m="+g:g).trim()+`\r -`)},A.getDescription=function(l){let g=A.splitSections(l);return g&&g[0]},A.getMediaSections=function(l){let g=A.splitSections(l);return g.shift(),g},A.matchPrefix=function(l,g){return A.splitLines(l).filter(C=>C.indexOf(g)===0)},A.parseCandidate=function(l){let g;g=l.indexOf("a=candidate:")===0?l.substring(12).split(" "):l.substring(10).split(" ");let C={foundation:g[0],component:{1:"rtp",2:"rtcp"}[g[1]]||g[1],protocol:g[2].toLowerCase(),priority:parseInt(g[3],10),ip:g[4],address:g[4],port:parseInt(g[5],10),type:g[7]};for(let m=8;m0?g[0].split("/")[1]:"sendrecv",uri:g[1],attributes:g.slice(2).join(" ")}},A.writeExtmap=function(l){return"a=extmap:"+(l.id||l.preferredId)+(l.direction&&l.direction!=="sendrecv"?"/"+l.direction:"")+" "+l.uri+(l.attributes?" "+l.attributes:"")+`\r -`},A.parseFmtp=function(l){let g={},C,m=l.substring(l.indexOf(" ")+1).split(";");for(let y=0;y{l.parameters[y]!==void 0?m.push(y+"="+l.parameters[y]):m.push(y)}),g+="a=fmtp:"+C+" "+m.join(";")+`\r -`}return g},A.parseRtcpFb=function(l){let g=l.substring(l.indexOf(" ")+1).split(" ");return{type:g.shift(),parameter:g.join(" ")}},A.writeRtcpFb=function(l){let g="",C=l.payloadType;return l.preferredPayloadType!==void 0&&(C=l.preferredPayloadType),l.rtcpFeedback&&l.rtcpFeedback.length&&l.rtcpFeedback.forEach(m=>{g+="a=rtcp-fb:"+C+" "+m.type+(m.parameter&&m.parameter.length?" "+m.parameter:"")+`\r -`}),g},A.parseSsrcMedia=function(l){let g=l.indexOf(" "),C={ssrc:parseInt(l.substring(7,g),10)},m=l.indexOf(":",g);return m>-1?(C.attribute=l.substring(g+1,m),C.value=l.substring(m+1)):C.attribute=l.substring(g+1),C},A.parseSsrcGroup=function(l){let g=l.substring(13).split(" ");return{semantics:g.shift(),ssrcs:g.map(C=>parseInt(C,10))}},A.getMid=function(l){let g=A.matchPrefix(l,"a=mid:")[0];if(g)return g.substring(6)},A.parseFingerprint=function(l){let g=l.substring(14).split(" ");return{algorithm:g[0].toLowerCase(),value:g[1].toUpperCase()}},A.getDtlsParameters=function(l,g){return{role:"auto",fingerprints:A.matchPrefix(l+g,"a=fingerprint:").map(A.parseFingerprint)}},A.writeDtlsParameters=function(l,g){let C="a=setup:"+g+`\r -`;return l.fingerprints.forEach(m=>{C+="a=fingerprint:"+m.algorithm+" "+m.value+`\r -`}),C},A.parseCryptoLine=function(l){let g=l.substring(9).split(" ");return{tag:parseInt(g[0],10),cryptoSuite:g[1],keyParams:g[2],sessionParams:g.slice(3)}},A.writeCryptoLine=function(l){return"a=crypto:"+l.tag+" "+l.cryptoSuite+" "+(typeof l.keyParams=="object"?A.writeCryptoKeyParams(l.keyParams):l.keyParams)+(l.sessionParams?" "+l.sessionParams.join(" "):"")+`\r -`},A.parseCryptoKeyParams=function(l){if(l.indexOf("inline:")!==0)return null;let g=l.substring(7).split("|");return{keyMethod:"inline",keySalt:g[0],lifeTime:g[1],mkiValue:g[2]?g[2].split(":")[0]:void 0,mkiLength:g[2]?g[2].split(":")[1]:void 0}},A.writeCryptoKeyParams=function(l){return l.keyMethod+":"+l.keySalt+(l.lifeTime?"|"+l.lifeTime:"")+(l.mkiValue&&l.mkiLength?"|"+l.mkiValue+":"+l.mkiLength:"")},A.getCryptoParameters=function(l,g){return A.matchPrefix(l+g,"a=crypto:").map(A.parseCryptoLine)},A.getIceParameters=function(l,g){let C=A.matchPrefix(l+g,"a=ice-ufrag:")[0],m=A.matchPrefix(l+g,"a=ice-pwd:")[0];return C&&m?{usernameFragment:C.substring(12),password:m.substring(10)}:null},A.writeIceParameters=function(l){let g="a=ice-ufrag:"+l.usernameFragment+`\r -a=ice-pwd:`+l.password+`\r -`;return l.iceLite&&(g+=`a=ice-lite\r -`),g},A.parseRtpParameters=function(l){let g={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},C=A.splitLines(l)[0].split(" ");g.profile=C[2];for(let y=3;y{g.headerExtensions.push(A.parseExtmap(y))});let m=A.matchPrefix(l,"a=rtcp-fb:* ").map(A.parseRtcpFb);return g.codecs.forEach(y=>{m.forEach(w=>{y.rtcpFeedback.find(b=>b.type===w.type&&b.parameter===w.parameter)||y.rtcpFeedback.push(w)})}),g},A.writeRtpDescription=function(l,g){let C="";C+="m="+l+" ",C+=g.codecs.length>0?"9":"0",C+=" "+(g.profile||"UDP/TLS/RTP/SAVPF")+" ",C+=g.codecs.map(y=>y.preferredPayloadType!==void 0?y.preferredPayloadType:y.payloadType).join(" ")+`\r -`,C+=`c=IN IP4 0.0.0.0\r -`,C+=`a=rtcp:9 IN IP4 0.0.0.0\r -`,g.codecs.forEach(y=>{C+=A.writeRtpMap(y),C+=A.writeFmtp(y),C+=A.writeRtcpFb(y)});let m=0;return g.codecs.forEach(y=>{y.maxptime>m&&(m=y.maxptime)}),m>0&&(C+="a=maxptime:"+m+`\r -`),g.headerExtensions&&g.headerExtensions.forEach(y=>{C+=A.writeExtmap(y)}),C},A.parseRtpEncodingParameters=function(l){let g=[],C=A.parseRtpParameters(l),m=C.fecMechanisms.indexOf("RED")!==-1,y=C.fecMechanisms.indexOf("ULPFEC")!==-1,w=A.matchPrefix(l,"a=ssrc:").map(K=>A.parseSsrcMedia(K)).filter(K=>K.attribute==="cname"),b=w.length>0&&w[0].ssrc,M,k=A.matchPrefix(l,"a=ssrc-group:FID").map(K=>K.substring(17).split(" ").map(q=>parseInt(q,10)));k.length>0&&k[0].length>1&&k[0][0]===b&&(M=k[0][1]),C.codecs.forEach(K=>{if(K.name.toUpperCase()==="RTX"&&K.parameters.apt){let q={ssrc:b,codecPayloadType:parseInt(K.parameters.apt,10)};b&&M&&(q.rtx={ssrc:M}),g.push(q),m&&(q=JSON.parse(JSON.stringify(q)),q.fec={ssrc:b,mechanism:y?"red+ulpfec":"red"},g.push(q))}}),g.length===0&&b&&g.push({ssrc:b});let V=A.matchPrefix(l,"b=");return V.length&&(V=V[0].indexOf("b=TIAS:")===0?parseInt(V[0].substring(7),10):V[0].indexOf("b=AS:")===0?1e3*parseInt(V[0].substring(5),10)*.95-16e3:void 0,g.forEach(K=>{K.maxBitrate=V})),g},A.parseRtcpParameters=function(l){let g={},C=A.matchPrefix(l,"a=ssrc:").map(w=>A.parseSsrcMedia(w)).filter(w=>w.attribute==="cname")[0];C&&(g.cname=C.value,g.ssrc=C.ssrc);let m=A.matchPrefix(l,"a=rtcp-rsize");g.reducedSize=m.length>0,g.compound=m.length===0;let y=A.matchPrefix(l,"a=rtcp-mux");return g.mux=y.length>0,g},A.writeRtcpParameters=function(l){let g="";return l.reducedSize&&(g+=`a=rtcp-rsize\r -`),l.mux&&(g+=`a=rtcp-mux\r -`),l.ssrc!==void 0&&l.cname&&(g+="a=ssrc:"+l.ssrc+" cname:"+l.cname+`\r -`),g},A.parseMsid=function(l){let g,C=A.matchPrefix(l,"a=msid:");if(C.length===1)return g=C[0].substring(7).split(" "),{stream:g[0],track:g[1]};let m=A.matchPrefix(l,"a=ssrc:").map(y=>A.parseSsrcMedia(y)).filter(y=>y.attribute==="msid");return m.length>0?(g=m[0].value.split(" "),{stream:g[0],track:g[1]}):void 0},A.parseSctpDescription=function(l){let g=A.parseMLine(l),C=A.matchPrefix(l,"a=max-message-size:"),m;C.length>0&&(m=parseInt(C[0].substring(19),10)),isNaN(m)&&(m=65536);let y=A.matchPrefix(l,"a=sctp-port:");if(y.length>0)return{port:parseInt(y[0].substring(12),10),protocol:g.fmt,maxMessageSize:m};let w=A.matchPrefix(l,"a=sctpmap:");if(w.length>0){let b=w[0].substring(10).split(" ");return{port:parseInt(b[0],10),protocol:b[1],maxMessageSize:m}}},A.writeSctpDescription=function(l,g){let C=[];return C=l.protocol!=="DTLS/SCTP"?["m="+l.kind+" 9 "+l.protocol+" "+g.protocol+`\r -`,`c=IN IP4 0.0.0.0\r -`,"a=sctp-port:"+g.port+`\r -`]:["m="+l.kind+" 9 "+l.protocol+" "+g.port+`\r -`,`c=IN IP4 0.0.0.0\r -`,"a=sctpmap:"+g.port+" "+g.protocol+` 65535\r -`],g.maxMessageSize!==void 0&&C.push("a=max-message-size:"+g.maxMessageSize+`\r -`),C.join("")},A.generateSessionId=function(){return Math.random().toString().substr(2,22)},A.writeSessionBoilerplate=function(l,g,C){let m,y=g!==void 0?g:2;return m=l||A.generateSessionId(),`v=0\r -o=`+(C||"thisisadapterortc")+" "+m+" "+y+` IN IP4 127.0.0.1\r -s=-\r -t=0 0\r -`},A.getDirection=function(l,g){let C=A.splitLines(l);for(let m=0;m(l.candidate&&Object.defineProperty(l,"candidate",{value:new a.RTCIceCandidate(l.candidate),writable:"false"}),l))}function TD(a){!a.RTCIceCandidate||a.RTCIceCandidate&&"relayProtocol"in a.RTCIceCandidate.prototype||V0(a,"icecandidate",A=>{if(A.candidate){let l=K0.parseCandidate(A.candidate.candidate);l.type==="relay"&&(A.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[l.priority>>24])}return A})}function mS(a,A){if(!a.RTCPeerConnection)return;"sctp"in a.RTCPeerConnection.prototype||Object.defineProperty(a.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});let l=function(w){if(!w||!w.sdp)return!1;let b=K0.splitSections(w.sdp);return b.shift(),b.some(M=>{let k=K0.parseMLine(M);return k&&k.kind==="application"&&k.protocol.indexOf("SCTP")!==-1})},g=function(w){let b=w.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(b===null||b.length<2)return-1;let M=parseInt(b[1],10);return M!=M?-1:M},C=function(w){let b=65536;return A.browser==="firefox"&&(b=A.version<57?w===-1?16384:2147483637:A.version<60?A.version===57?65535:65536:2147483637),b},m=function(w,b){let M=65536;A.browser==="firefox"&&A.version===57&&(M=65535);let k=K0.matchPrefix(w.sdp,"a=max-message-size:");return k.length>0?M=parseInt(k[0].substr(19),10):A.browser==="firefox"&&b!==-1&&(M=2147483637),M},y=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,A.browser==="chrome"&&A.version>=76){let{sdpSemantics:w}=this.getConfiguration();w==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0})}if(l(arguments[0])){let w=g(arguments[0]),b=C(w),M=m(arguments[0],w),k;k=b===0&&M===0?Number.POSITIVE_INFINITY:b===0||M===0?Math.max(b,M):Math.min(b,M);let V={};Object.defineProperty(V,"maxMessageSize",{get:()=>k}),this._sctp=V}return y.apply(this,arguments)}}function BS(a){if(!a.RTCPeerConnection||!("createDataChannel"in a.RTCPeerConnection.prototype))return;function A(g,C){let m=g.send;g.send=function(){let y=arguments[0],w=y.length||y.size||y.byteLength;if(g.readyState==="open"&&C.sctp&&w>C.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+C.sctp.maxMessageSize+" bytes)");return m.apply(g,arguments)}}let l=a.RTCPeerConnection.prototype.createDataChannel;a.RTCPeerConnection.prototype.createDataChannel=function(){let g=l.apply(this,arguments);return A(g,this),g},V0(a,"datachannel",g=>(A(g.channel,g.target),g))}function wD(a){if(!a.RTCPeerConnection||"connectionState"in a.RTCPeerConnection.prototype)return;let A=a.RTCPeerConnection.prototype;Object.defineProperty(A,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(A,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(l){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),l&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=l)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(l=>{let g=A[l];A[l]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=C=>{let m=C.target;if(m._lastConnectionState!==m.connectionState){m._lastConnectionState=m.connectionState;let y=new Event("connectionstatechange",C);m.dispatchEvent(y)}return C},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),g.apply(this,arguments)}})}function SS(a,A){if(!a.RTCPeerConnection||A.browser==="chrome"&&A.version>=71||A.browser==="safari"&&A.version>=605)return;let l=a.RTCPeerConnection.prototype.setRemoteDescription;a.RTCPeerConnection.prototype.setRemoteDescription=function(g){if(g&&g.sdp&&g.sdp.indexOf(` -a=extmap-allow-mixed`)!==-1){let C=g.sdp.split(` -`).filter(m=>RA(m).call(m)!=="a=extmap-allow-mixed").join(` -`);a.RTCSessionDescription&&g instanceof a.RTCSessionDescription?arguments[0]=new a.RTCSessionDescription({type:g.type,sdp:C}):g.sdp=C}return l.apply(this,arguments)}}function QS(a,A){if(!a.RTCPeerConnection||!a.RTCPeerConnection.prototype)return;let l=a.RTCPeerConnection.prototype.addIceCandidate;l&&l.length!==0&&(a.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(A.browser==="chrome"&&A.version<78||A.browser==="firefox"&&A.version<68||A.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Ft.resolve():l.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Ft.resolve())})}function wS(a,A){if(!a.RTCPeerConnection||!a.RTCPeerConnection.prototype)return;let l=a.RTCPeerConnection.prototype.setLocalDescription;l&&l.length!==0&&(a.RTCPeerConnection.prototype.setLocalDescription=function(){let g=arguments[0]||{};if(typeof g!="object"||g.type&&g.sdp)return l.apply(this,arguments);if(g={type:g.type,sdp:g.sdp},!g.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":g.type="offer";break;default:g.type="answer"}return g.sdp||g.type!=="offer"&&g.type!=="answer"?l.apply(this,[g]):(g.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(C=>l.apply(this,[C]))})}var MY=Object.freeze({__proto__:null,removeExtmapAllowMixed:SS,shimAddIceCandidateNullOrEmpty:QS,shimConnectionState:wD,shimMaxMessageSize:mS,shimParameterlessSetLocalDescription:wS,shimRTCIceCandidate:_S,shimRTCIceCandidateRelayProtocol:TD,shimSendThrowTypeError:BS});(function(){let{window:a}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0},l=Zv,g=function(m){let y={browser:null,version:null};if(m===void 0||!m.navigator)return y.browser="Not a browser.",y;let{navigator:w}=m;if(w.mozGetUserMedia)y.browser="firefox",y.version=D3(w.userAgent,/Firefox\/(\d+)\./,1);else if(w.webkitGetUserMedia||m.isSecureContext===!1&&m.webkitRTCPeerConnection)y.browser="chrome",y.version=D3(w.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!m.RTCPeerConnection||!w.userAgent.match(/AppleWebKit\/(\d+)\./))return y.browser="Not a supported browser.",y;y.browser="safari",y.version=D3(w.userAgent,/AppleWebKit\/(\d+)\./,1),y.supportsUnifiedPlan=m.RTCRtpTransceiver&&"currentDirection"in m.RTCRtpTransceiver.prototype}return y}(a),C={browserDetails:g,commonShim:MY,extractVersion:D3,disableLog:ik,disableWarnings:OY,sdp:LY};switch(g.browser){case"chrome":if(!sD||!oD||!A.shimChrome)return l("Chrome shim is not included in this adapter release."),C;if(g.version===null)return l("Chrome shim can not determine version, not shimming."),C;l("adapter.js shimming chrome."),C.browserShim=sD,QS(a,g),wS(a),rD(a,g),Ak(a),oD(a,g),ck(a),GE(a,g),b3(a),iD(a),nD(a),lk(a,g),_S(a),TD(a),wD(a),mS(a,g),BS(a),SS(a,g);break;case"firefox":if(!hD||!dS||!A.shimFirefox)return l("Firefox shim is not included in this adapter release."),C;l("adapter.js shimming firefox."),C.browserShim=hD,QS(a,g),wS(a),lS(a,g),dS(a,g),aD(a),cD(a),uS(a),AD(a),lD(a),dD(a),uD(a),gD(a),ED(a),_S(a),wD(a),mS(a,g),BS(a);break;case"safari":if(!SD||!A.shimSafari)return l("Safari shim is not included in this adapter release."),C;l("adapter.js shimming safari."),C.browserShim=SD,QS(a,g),wS(a),_D(a),hS(a),ES(a),ID(a),CD(a),mD(a),pD(a),BD(a),_S(a),TD(a),mS(a,g),BS(a),SS(a,g);break;default:l("Unsupported browser!")}})({window:typeof window>"u"?void 0:window});var kY=f,DS=re.RegExp,PY=!kY(function(){var a=!0;try{DS(".","d")}catch{a=!1}var A={},l="",g=a?"dgimsy":"gimsy",C=function(w,b){Object.defineProperty(A,w,{get:function(){return l+=b,!0}})},m={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var y in a&&(m.hasIndices="d"),m)C(y,m[y]);return Object.getOwnPropertyDescriptor(DS.prototype,"flags").get.call(A)!==g||l!==g}),Ga=Do,Qk=ht,Tk=ts,aC=j,wk={correct:PY},bS=function(){var a=Ga(this),A="";return a.hasIndices&&(A+="d"),a.global&&(A+="g"),a.ignoreCase&&(A+="i"),a.multiline&&(A+="m"),a.dotAll&&(A+="s"),a.unicode&&(A+="u"),a.unicodeSets&&(A+="v"),a.sticky&&(A+="y"),A},vD=RegExp.prototype,AC=wk.correct?function(a){return a.flags}:function(a){return wk.correct||!aC(vD,a)||Tk(a,"flags")?a.flags:Qk(bS,a)},cC=Y,DD=Math.floor,L3=cC("".charAt),NS=cC("".replace),lC=cC("".slice),UY=/\$([$&'`]|\d{1,2})/g,xY=wn,FY=ht,OS=Y,bD=Oi,GY=rt,VY=Kn,KY=E1,H0=k1,HY=u1,vk=AC,YY=function(a,A,l,g,C,m){var y=l+a.length,w=g.length,b=UY;return NS(m,b,function(M,k){var V;switch(L3(k,0)){case"$":return"$";case"&":return a;case"`":return lC(A,0,l);case"'":return lC(A,y);case"<":V=C[lC(k,1,-1)];break;default:var K=+k;if(K===0)return M;if(K>w){var q=DD(K/10);return q===0?M:q<=w?g[q-1]===void 0?L3(k,1):g[q-1]+L3(k,1):M}V=g[K-1]}return V===void 0?"":V})},jY=vo("replace"),JY=TypeError,LS=OS("".indexOf),qY=OS("".replace),Dk=OS("".slice),WY=Math.max;xY({target:"String",proto:!0},{replaceAll:function(a,A){var l,g,C,m,y,w,b,M,k,V,K=bD(this),q=0,ce="";if(VY(a)){if((l=KY(a))&&(g=H0(bD(vk(a))),!~LS(g,"g")))throw new JY("`.replaceAll` does not allow non-global regexes");if(C=HY(a,jY))return FY(C,a,K,A);if(l)return qY(H0(K),a,A)}for(m=H0(K),y=H0(a),(w=GY(A))||(A=H0(A)),b=y.length,M=WY(1,b),k=LS(m,y);k!==-1;)V=w?H0(A(y,k,m)):YY(y,m,k,[],void 0,A),ce+=Dk(m,q,k)+V,q=k+b,k=k+M>m.length?-1:LS(m,y,k+M);return q0?us.length===2?typeof us[1]==C?this[us[0]]=us[1].call(this,ji):this[us[0]]=us[1]:us.length===3?typeof us[1]!==C||us[1].exec&&us[1].test?this[us[0]]=ji?ji.replace(us[1],us[2]):g:this[us[0]]=ji?us[1].call(this,ji,us[2]):g:us.length===4&&(this[us[0]]=ji?us[3].call(this,ji.replace(us[1],us[2])):g):this[us]=ji||g;wl+=2}},rE=function(ws,Ps){for(var to in Ps)if(typeof Ps[to]===y&&Ps[to].length>0){for(var Q1=0;Q12&&(ji[M]="iPad",ji[V]=pe),ji},this.getEngine=function(){var ji={};return ji[k]=g,ji[q]=g,nu.call(ji,Q1,us.engine),ji},this.getOS=function(){var ji={};return ji[k]=g,ji[q]=g,nu.call(ji,Q1,us.os),au&&!ji[k]&&su&&su.platform&&su.platform!="Unknown"&&(ji[k]=su.platform.replace(/chrome os/i,Kc).replace(/macos/i,tE)),ji},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return Q1},this.setUA=function(ji){return Q1=typeof ji===w&&ji.length>500?Cp(ji,500):ji,this},this.setUA(Q1),this};ou.VERSION="0.7.41",ou.BROWSER=dd([k,q,b]),ou.CPU=dd([ce]),ou.DEVICE=dd([M,K,V,oe,le,Se,pe,be,Ue]),ou.ENGINE=ou.OS=dd([k,q]),a.exports&&(A=a.exports=ou),A.UAParser=ou;var ud=typeof l!==m&&(l.jQuery||l.Zepto);if(ud&&!ud.ua){var YQ=new ou;ud.ua=YQ.getResult(),ud.ua.get=function(){return YQ.getUA()},ud.ua.set=function(ws){YQ.setUA(ws);var Ps=YQ.getResult();for(var to in Ps)ud.ua[to]=Ps[to]}}})(typeof window=="object"?window:d)})(OD,OD.exports);var Lk=I(OD.exports),Mk=TE.clear;wn({global:!0,bind:!0,forced:re.clearImmediate!==Mk},{clearImmediate:Mk});var kk=re,Pk=_e,ej=rt,tj=BI,Uk=Ct,rj=pg,xk=R0,dC=kk.Function,ij=/MSIE .\./.test(Uk)||tj==="BUN"&&function(){var a=kk.Bun.version.split(".");return a.length<3||a[0]==="0"&&(a[1]<3||a[1]==="3"&&a[2]==="0")}(),Fk=wn,Gk=re,Vk=TE.set,nj=function(a,A){var l=1;return ij?function(g,C){var m=xk(arguments.length,1)>l,y=ej(g)?g:dC(g),w=m?rj(arguments,l):[],b=m?function(){Pk(y,this,w)}:y;return a(b)}:a},Ea=Gk.setImmediate?nj(Vk):Vk;Fk({global:!0,bind:!0,forced:Gk.setImmediate!==Ea},{setImmediate:Ea});var Kk=I(Tn.setImmediate),oj=re,sj=Uw,aj=dn,Hk=R0,Aj=lt;wn({global:!0,dontCallGetSet:!0,forced:f(function(){return Aj&&Object.getOwnPropertyDescriptor(oj,"queueMicrotask").value.length!==1})},{queueMicrotask:function(a){Hk(arguments.length,1),sj(aj(a))}});var Yk=I(Tn.queueMicrotask);function jk(a,A){return function(){return a.apply(A,arguments)}}let{toString:cj}=Object.prototype,{getPrototypeOf:kS}=Object,{iterator:uC,toStringTag:Jk}=Symbol,M3=(gC=Object.create(null),a=>{let A=cj.call(a);return gC[A]||(gC[A]=A.slice(8,-1).toLowerCase())});var gC;let H1=a=>(a=a.toLowerCase(),A=>M3(A)===a),EC=a=>A=>typeof A===a,{isArray:hC}=Array,Dd=EC("undefined");function Bu(a){return a!==null&&!Dd(a)&&a.constructor!==null&&!Dd(a.constructor)&&mc(a.constructor.isBuffer)&&a.constructor.isBuffer(a)}let qk=H1("ArrayBuffer"),Za=EC("string"),mc=EC("function"),PS=EC("number"),VE=a=>a!==null&&typeof a=="object",IC=a=>{if(M3(a)!=="object")return!1;let A=kS(a);return!(A!==null&&A!==Object.prototype&&Object.getPrototypeOf(A)!==null||Jk in a||uC in a)},lj=H1("Date"),LD=H1("File"),CC=H1("Blob"),Wk=H1("FileList"),dj=H1("URLSearchParams"),[Xk,uj,zk,$k]=["ReadableStream","Request","Response","Headers"].map(H1);function k3(a,A){let l,g,{allOwnKeys:C=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(a!=null)if(typeof a!="object"&&(a=[a]),hC(a))for(l=0,g=a.length;l0;)if(g=l[C],A===g.toLowerCase())return g;return null}let KE=Nk!==void 0?Nk:typeof self<"u"?self:typeof window<"u"?window:global,Zk=a=>!Dd(a)&&a!==KE,kD=(US=typeof Uint8Array<"u"&&kS(Uint8Array),a=>US&&a instanceof US);var US;let e5=H1("HTMLFormElement"),t5=(a=>{let{hasOwnProperty:A}=a;return(l,g)=>A.call(l,g)})(Object.prototype),gj=H1("RegExp"),r5=(a,A)=>{let l=Object.getOwnPropertyDescriptors(a),g={};k3(l,(C,m)=>{let y;(y=A(C,m,a))!==!1&&(g[m]=y||C)}),Object.defineProperties(a,g)},Ej=H1("AsyncFunction"),i5=(PD=typeof Kk=="function",P3=mc(KE.postMessage),PD?Kk:P3?(yA="axios@".concat(Math.random()),Y0=[],KE.addEventListener("message",a=>{let{source:A,data:l}=a;A===KE&&l===yA&&Y0.length&&Y0.shift()()},!1),a=>{Y0.push(a),KE.postMessage(yA,"*")}):a=>setTimeout(a));var PD,P3,yA,Y0;let U3=Yk!==void 0?Yk.bind(KE):typeof process<"u"&&process.nextTick||i5;var Ht={isArray:hC,isArrayBuffer:qk,isBuffer:Bu,isFormData:a=>{let A;return a&&(typeof FormData=="function"&&a instanceof FormData||mc(a.append)&&((A=M3(a))==="formdata"||A==="object"&&mc(a.toString)&&a.toString()==="[object FormData]"))},isArrayBufferView:function(a){let A;return A=typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(a):a&&a.buffer&&qk(a.buffer),A},isString:Za,isNumber:PS,isBoolean:a=>a===!0||a===!1,isObject:VE,isPlainObject:IC,isEmptyObject:a=>{if(!VE(a)||Bu(a))return!1;try{return Object.keys(a).length===0&&Object.getPrototypeOf(a)===Object.prototype}catch{return!1}},isReadableStream:Xk,isRequest:uj,isResponse:zk,isHeaders:$k,isUndefined:Dd,isDate:lj,isFile:LD,isBlob:CC,isRegExp:gj,isFunction:mc,isStream:a=>VE(a)&&mc(a.pipe),isURLSearchParams:dj,isTypedArray:kD,isFileList:Wk,forEach:k3,merge:function a(){let{caseless:A,skipUndefined:l}=Zk(this)&&this||{},g={},C=(m,y)=>{let w=A&&MD(g,y)||y;IC(g[w])&&IC(m)?g[w]=a(g[w],m):IC(m)?g[w]=a({},m):hC(m)?g[w]=m.slice():l&&Dd(m)||(g[w]=m)};for(let m=0,y=arguments.length;m3&&arguments[3]!==void 0?arguments[3]:{};return k3(A,(C,m)=>{l&&mc(C)?a[m]=jk(C,l):a[m]=C},{allOwnKeys:g}),a},trim:a=>RA(a)?RA(a).call(a):a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:a=>(a.charCodeAt(0)===65279&&(a=a.slice(1)),a),inherits:(a,A,l,g)=>{a.prototype=Object.create(A.prototype,g),a.prototype.constructor=a,Object.defineProperty(a,"super",{value:A.prototype}),l&&Object.assign(a.prototype,l)},toFlatObject:(a,A,l,g)=>{let C,m,y,w={};if(A=A||{},a==null)return A;do{for(C=Object.getOwnPropertyNames(a),m=C.length;m-- >0;)y=C[m],g&&!g(y,a,A)||w[y]||(A[y]=a[y],w[y]=!0);a=l!==!1&&kS(a)}while(a&&(!l||l(a,A))&&a!==Object.prototype);return A},kindOf:M3,kindOfTest:H1,endsWith:(a,A,l)=>{a=String(a),(l===void 0||l>a.length)&&(l=a.length),l-=A.length;let g=a.indexOf(A,l);return g!==-1&&g===l},toArray:a=>{if(!a)return null;if(hC(a))return a;let A=a.length;if(!PS(A))return null;let l=new Array(A);for(;A-- >0;)l[A]=a[A];return l},forEachEntry:(a,A)=>{let l=(a&&a[uC]).call(a),g;for(;(g=l.next())&&!g.done;){let C=g.value;A.call(a,C[0],C[1])}},matchAll:(a,A)=>{let l,g=[];for(;(l=a.exec(A))!==null;)g.push(l);return g},isHTMLForm:e5,hasOwnProperty:t5,hasOwnProp:t5,reduceDescriptors:r5,freezeMethods:a=>{r5(a,(A,l)=>{if(mc(a)&&["arguments","caller","callee"].indexOf(l)!==-1)return!1;let g=a[l];mc(g)&&(A.enumerable=!1,"writable"in A?A.writable=!1:A.set||(A.set=()=>{throw Error("Can not rewrite read-only method '"+l+"'")}))})},toObjectSet:(a,A)=>{let l={},g=C=>{C.forEach(m=>{l[m]=!0})};return hC(a)?g(a):g(String(a).split(A)),l},toCamelCase:a=>a.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(A,l,g){return l.toUpperCase()+g}),noop:()=>{},toFiniteNumber:(a,A)=>a!=null&&Number.isFinite(a=+a)?a:A,findKey:MD,global:KE,isContextDefined:Zk,isSpecCompliantForm:function(a){return!!(a&&mc(a.append)&&a[Jk]==="FormData"&&a[uC])},toJSONObject:a=>{let A=new Array(10),l=(g,C)=>{if(VE(g)){if(A.indexOf(g)>=0)return;if(Bu(g))return g;if(!("toJSON"in g)){A[C]=g;let m=hC(g)?[]:{};return k3(g,(y,w)=>{let b=l(y,C+1);!Dd(b)&&(m[w]=b)}),A[C]=void 0,m}}return g};return l(a,0)},isAsyncFn:Ej,isThenable:a=>a&&(VE(a)||mc(a))&&mc(a.then)&&mc(a.catch),setImmediate:i5,asap:U3,isIterable:a=>a!=null&&mc(a[uC])};function Fn(a,A,l,g,C){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=a,this.name="AxiosError",A&&(this.code=A),l&&(this.config=l),g&&(this.request=g),C&&(this.response=C,this.status=C.status?C.status:null)}Ht.inherits(Fn,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:Ht.toJSONObject(this.config),code:this.code,status:this.status}}});let Gl=Fn.prototype,HE={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(a=>{HE[a]={value:a}}),Object.defineProperties(Fn,HE),Object.defineProperty(Gl,"isAxiosError",{value:!0}),Fn.from=(a,A,l,g,C,m)=>{let y=Object.create(Gl);Ht.toFlatObject(a,y,function(M){return M!==Error.prototype},M=>M!=="isAxiosError");let w=a&&a.message?a.message:"Error",b=A==null&&a?a.code:A;return Fn.call(y,w,b,l,g,C),a&&y.cause==null&&Object.defineProperty(y,"cause",{value:a,configurable:!0}),y.name=a&&a.name||"Error",m&&Object.assign(y,m),y};function pC(a){return Ht.isPlainObject(a)||Ht.isArray(a)}function n5(a){return Ht.endsWith(a,"[]")?a.slice(0,-2):a}function o5(a,A,l){return a?a.concat(A).map(function(g,C){return g=n5(g),!l&&C?"["+g+"]":g}).join(l?".":""):A}let UD=Ht.toFlatObject(Ht,{},null,function(a){return/^is[A-Z]/.test(a)});function x3(a,A,l){if(!Ht.isObject(a))throw new TypeError("target must be an object");A=A||new FormData;let g=(l=Ht.toFlatObject(l,{metaTokens:!0,dots:!1,indexes:!1},!1,function(K,q){return!Ht.isUndefined(q[K])})).metaTokens,C=l.visitor||M,m=l.dots,y=l.indexes,w=(l.Blob||typeof Blob<"u"&&Blob)&&Ht.isSpecCompliantForm(A);if(!Ht.isFunction(C))throw new TypeError("visitor must be a function");function b(K){if(K===null)return"";if(Ht.isDate(K))return K.toISOString();if(Ht.isBoolean(K))return K.toString();if(!w&&Ht.isBlob(K))throw new Fn("Blob is not supported. Use a Buffer instead.");return Ht.isArrayBuffer(K)||Ht.isTypedArray(K)?w&&typeof Blob=="function"?new Blob([K]):Buffer.from(K):K}function M(K,q,ce){let oe=K;if(K&&!ce&&typeof K=="object"){if(Ht.endsWith(q,"{}"))q=g?q:q.slice(0,-2),K=JSON.stringify(K);else if(Ht.isArray(K)&&function(le){return Ht.isArray(le)&&!le.some(pC)}(K)||(Ht.isFileList(K)||Ht.endsWith(q,"[]"))&&(oe=Ht.toArray(K)))return q=n5(q),oe.forEach(function(le,pe){!Ht.isUndefined(le)&&le!==null&&A.append(y===!0?o5([q],pe,m):y===null?q:q+"[]",b(le))}),!1}return!!pC(K)||(A.append(o5(ce,q,m),b(K)),!1)}let k=[],V=Object.assign(UD,{defaultVisitor:M,convertValue:b,isVisitable:pC});if(!Ht.isObject(a))throw new TypeError("data must be an object");return function K(q,ce){if(!Ht.isUndefined(q)){if(k.indexOf(q)!==-1)throw Error("Circular reference detected in "+ce.join("."));k.push(q),Ht.forEach(q,function(oe,le){(!(Ht.isUndefined(oe)||oe===null)&&C.call(A,oe,Ht.isString(le)?RA(le).call(le):le,ce,V))===!0&&K(oe,ce?ce.concat(le):[le])}),k.pop()}}(a),A}function YE(a){let A={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(a).replace(/[!'()~]|%20|%00/g,function(l){return A[l]})}function xS(a,A){this._pairs=[],a&&x3(a,this,A)}let s5=xS.prototype;function a5(a){return encodeURIComponent(a).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function Su(a,A,l){if(!A)return a;let g=l&&l.encode||a5;Ht.isFunction(l)&&(l={serialize:l});let C=l&&l.serialize,m;if(m=C?C(A,l):Ht.isURLSearchParams(A)?A.toString():new xS(A,l).toString(g),m){let y=a.indexOf("#");y!==-1&&(a=a.slice(0,y)),a+=(a.indexOf("?")===-1?"?":"&")+m}return a}s5.append=function(a,A){this._pairs.push([a,A])},s5.toString=function(a){let A=a?function(l){return a.call(this,l,YE)}:YE;return this._pairs.map(function(l){return A(l[0])+"="+A(l[1])},"").join("&")};var fC=class{constructor(){this.handlers=[]}use(a,A,l){return this.handlers.push({fulfilled:a,rejected:A,synchronous:!!l&&l.synchronous,runWhen:l?l.runWhen:null}),this.handlers.length-1}eject(a){this.handlers[a]&&(this.handlers[a]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(a){Ht.forEach(this.handlers,function(A){A!==null&&a(A)})}},A5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},FS={exports:{}},c5=wn,xD=lt,GS=mn.f;c5({target:"Object",stat:!0,forced:Object.defineProperty!==GS,sham:!xD},{defineProperty:GS});var F3=Tn.Object,FD=FS.exports=function(a,A,l){return F3.defineProperty(a,A,l)};F3.defineProperty.sham&&(FD.sham=!0);var GD=I(FS.exports),l5=TypeError,VD=C0,d5=Zp,u5=Kn,hj=vo("species"),g5=Array,Ij=function(a){var A;return VD(a)&&(A=a.constructor,(d5(A)&&(A===g5||VD(A.prototype))||u5(A)&&(A=A[hj])===null)&&(A=void 0)),A===void 0?g5:A},E5=function(a,A){return new(Ij(a))(A===0?0:A)},h5=f,Cj=ro,KD=vo("species"),I5=function(a){return Cj>=51||!h5(function(){var A=[];return(A.constructor={})[KD]=function(){return{foo:1}},A[a](Boolean).foo!==1})},pj=wn,fj=f,_j=C0,mj=Kn,Bj=L1,C5=CE,p5=function(a){if(a>9007199254740991)throw l5("Maximum allowed index exceeded");return a},f5=Ov,HD=E5,Sj=I5,VS=ro,_5=vo("isConcatSpreadable"),Rj=VS>=51||!fj(function(){var a=[];return a[_5]=!1,a.concat()[0]!==a}),yj=function(a){if(!mj(a))return!1;var A=a[_5];return A!==void 0?!!A:_j(a)};pj({target:"Array",proto:!0,forced:!Rj||!Sj("concat")},{concat:function(a){var A,l,g,C,m,y=Bj(this),w=HD(y,0),b=0;for(A=-1,g=arguments.length;AV;V++)V in b&&(y=k(m=b[V],V,w));return q}},yg={forEach:N5(0)},J0=wn,q0=re,JD=ht,Nj=Y,jE=lt,JE=ua,Oj=f,QA=ts,O5=j,HS=Do,mC=gs,YS=Nt,L5=k1,jS=yi,BC=TI,M5=Om,k5=vm,qD=YD,Lj=yI,P5=ye,U5=mn,Mj=YT,x5=vt,F5=Eg,kj=m0,JS=pd,WD=Dm,G5=fd,Pj=vo,XD=_C,Uj=ha,xj=b5,V5=Ig,K5=I1,H3=yg.forEach,Bc=Tm("hidden"),qS="Symbol",j3="prototype",WS=K5.set,zD=K5.getterFor(qS),Vl=Object[j3],W0=q0.Symbol,W3=W0&&W0[j3],$D=q0.RangeError,H5=q0.TypeError,ZD=q0.QObject,eb=P5.f,qE=U5.f,WE=qD.f,Fj=x5.f,Y5=Nj([].push),Qg=JS("symbols"),z3=JS("op-symbols"),Gj=JS("wks"),tb=!ZD||!ZD[j3]||!ZD[j3].findChild,j5=function(a,A,l){var g=eb(Vl,A);g&&delete Vl[A],qE(a,A,l),g&&a!==Vl&&qE(Vl,A,g)},rb=jE&&Oj(function(){return BC(qE({},"a",{get:function(){return qE(this,"a",{value:7}).a}})).a!==7})?j5:qE,$3=function(a,A){var l=Qg[a]=BC(W3);return WS(l,{type:qS,tag:a,description:A}),jE||(l.description=A),l},XS=function(a,A,l){a===Vl&&XS(z3,A,l),HS(a);var g=YS(A);return HS(l),QA(Qg,g)?(l.enumerable?(QA(a,Bc)&&a[Bc][g]&&(a[Bc][g]=!1),l=BC(l,{enumerable:jS(0,!1)})):(QA(a,Bc)||qE(a,Bc,jS(1,BC(null))),a[Bc][g]=!0),rb(a,g,l)):qE(a,g,l)},ib=function(a,A){HS(a);var l=mC(A),g=M5(l).concat(W5(l));return H3(g,function(C){jE&&!JD(J5,l,C)||XS(a,C,l[C])}),a},J5=function(a){var A=YS(a),l=JD(Fj,this,A);return!(this===Vl&&QA(Qg,A)&&!QA(z3,A))&&(!(l||!QA(this,A)||!QA(Qg,A)||QA(this,Bc)&&this[Bc][A])||l)},nb=function(a,A){var l=mC(a),g=YS(A);if(l!==Vl||!QA(Qg,g)||QA(z3,g)){var C=eb(l,g);return!C||!QA(Qg,g)||QA(l,Bc)&&l[Bc][g]||(C.enumerable=!0),C}},q5=function(a){var A=WE(mC(a)),l=[];return H3(A,function(g){QA(Qg,g)||QA(WD,g)||Y5(l,g)}),l},W5=function(a){var A=a===Vl,l=WE(A?z3:mC(a)),g=[];return H3(l,function(C){!QA(Qg,C)||A&&!QA(Vl,C)||Y5(g,Qg[C])}),g};JE||(W0=function(){if(O5(W3,this))throw new H5("Symbol is not a constructor");var a=arguments.length&&arguments[0]!==void 0?L5(arguments[0]):void 0,A=G5(a),l=function(g){var C=this===void 0?q0:this;C===Vl&&JD(l,z3,g),QA(C,Bc)&&QA(C[Bc],A)&&(C[Bc][A]=!1);var m=jS(1,g);try{rb(C,A,m)}catch(y){if(!(y instanceof $D))throw y;j5(C,A,m)}};return jE&&tb&&rb(Vl,A,{configurable:!0,set:l}),$3(A,a)},F5(W3=W0[j3],"toString",function(){return zD(this).tag}),F5(W0,"withoutSetter",function(a){return $3(G5(a),a)}),x5.f=J5,U5.f=XS,Mj.f=ib,P5.f=nb,k5.f=qD.f=q5,Lj.f=W5,XD.f=function(a){return $3(Pj(a),a)},jE&&kj(W3,"description",{configurable:!0,get:function(){return zD(this).description}})),J0({global:!0,wrap:!0,forced:!JE,sham:!JE},{Symbol:W0}),H3(M5(Gj),function(a){Uj(a)}),J0({target:qS,stat:!0,forced:!JE},{useSetter:function(){tb=!0},useSimple:function(){tb=!1}}),J0({target:"Object",stat:!0,forced:!JE,sham:!jE},{create:function(a,A){return A===void 0?BC(a):ib(BC(a),A)},defineProperty:XS,defineProperties:ib,getOwnPropertyDescriptor:nb}),J0({target:"Object",stat:!0,forced:!JE},{getOwnPropertyNames:q5}),xj(),V5(W0,qS),WD[Bc]=!0;var ob=ua&&!!Symbol.for&&!!Symbol.keyFor,Vj=wn,Kj=Es,Hj=ts,Yj=k1,X5=pd,jj=ob,sb=X5("string-to-symbol-registry"),Jj=X5("symbol-to-string-registry");Vj({target:"Symbol",stat:!0,forced:!jj},{for:function(a){var A=Yj(a);if(Hj(sb,A))return sb[A];var l=Kj("Symbol")(A);return sb[A]=l,Jj[l]=A,l}});var ab=wn,qj=ts,Wj=D1,Xj=xA,zj=ob,zS=pd("symbol-to-string-registry");ab({target:"Symbol",stat:!0,forced:!zj},{keyFor:function(a){if(!Wj(a))throw new TypeError(Xj(a)+" is not a symbol");if(qj(zS,a))return zS[a]}});var z5=C0,$5=rt,Z5=Ge,$j=k1,Ab=Y([].push),ir=wn,eP=Es,cb=_e,Zj=ht,ef=Y,tP=f,rP=rt,iP=D1,lb=pg,eJ=function(a){if($5(a))return a;if(z5(a)){for(var A=a.length,l=[],g=0;g=l.length;return y=!y&&Ht.isArray(C)?C.length:y,b?(Ht.hasOwnProp(C,y)?C[y]=[C[y],g]:C[y]=g,!w):(C[y]&&Ht.isObject(C[y])||(C[y]=[]),A(l,g,C[y],m)&&Ht.isArray(C[y])&&(C[y]=function(M){let k={},V=Object.keys(M),K,q=V.length,ce;for(K=0;K{A(function(m){return DJ(Ht).call(Ht,/\w+|\[(\w*)]/g,m).map(y=>y[0]==="[]"?"":y[1]||y[0])}(g),C,l,0)}),l}return null}let uf={transitional:A5,adapter:["xhr","http","fetch"],transformRequest:[function(a,A){let l=A.getContentType()||"",g=l.indexOf("application/json")>-1,C=Ht.isObject(a);if(C&&Ht.isHTMLForm(a)&&(a=new FormData(a)),Ht.isFormData(a))return g?JSON.stringify(DP(a)):a;if(Ht.isArrayBuffer(a)||Ht.isBuffer(a)||Ht.isStream(a)||Ht.isFile(a)||Ht.isBlob(a)||Ht.isReadableStream(a))return a;if(Ht.isArrayBufferView(a))return a.buffer;if(Ht.isURLSearchParams(a))return A.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),a.toString();let m;if(C){if(l.indexOf("application/x-www-form-urlencoded")>-1)return Rb(a,this.formSerializer).toString();if((m=Ht.isFileList(a))||l.indexOf("multipart/form-data")>-1){let y=this.env&&this.env.FormData;return x3(m?{"files[]":a}:a,y&&new y,this.formSerializer)}}return C||g?(A.setContentType("application/json",!1),function(y,w,b){if(Ht.isString(y))try{return(w||JSON.parse)(y),RA(Ht).call(Ht,y)}catch(M){if(M.name!=="SyntaxError")throw M}return(b||JSON.stringify)(y)}(a)):a}],transformResponse:[function(a){let A=this.transitional||uf.transitional,l=A&&A.forcedJSONParsing,g=this.responseType==="json";if(Ht.isResponse(a)||Ht.isReadableStream(a))return a;if(a&&Ht.isString(a)&&(l&&!this.responseType||g)){let C=!(A&&A.silentJSONParsing)&&g;try{return JSON.parse(a,this.parseReviver)}catch(m){if(C)throw m.name==="SyntaxError"?Fn.from(m,Fn.ERR_BAD_RESPONSE,this,null,this.response):m}}return a}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:YA.classes.FormData,Blob:YA.classes.Blob},validateStatus:function(a){return a>=200&&a<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};Ht.forEach(["delete","get","head","post","put","patch"],a=>{uf.headers[a]={}});var vb=uf;let bJ=Ht.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),Db=Symbol("internals");function QC(a){var A;return a&&RA(A=String(a)).call(A).toLowerCase()}function zE(a){return a===!1||a==null?a:Ht.isArray(a)?a.map(zE):String(a)}function TC(a,A,l,g,C){return Ht.isFunction(g)?g.call(this,A,l):(C&&(A=l),Ht.isString(A)?Ht.isString(g)?A.indexOf(g)!==-1:Ht.isRegExp(g)?g.test(A):void 0:void 0)}class wC{constructor(A){A&&this.set(A)}set(A,l,g){let C=this;function m(b,M,k){let V=QC(M);if(!V)throw new Error("header name must be a non-empty string");let K=Ht.findKey(C,V);(!K||C[K]===void 0||k===!0||k===void 0&&C[K]!==!1)&&(C[K||M]=zE(b))}let y=(b,M)=>Ht.forEach(b,(k,V)=>m(k,V,M));if(Ht.isPlainObject(A)||A instanceof this.constructor)y(A,l);else if(Ht.isString(A)&&(A=RA(A).call(A))&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(RA(w=A).call(w)))y((b=>{let M={},k,V,K;return b&&b.split(` -`).forEach(function(q){var ce,oe;K=q.indexOf(":"),k=RA(ce=q.substring(0,K)).call(ce).toLowerCase(),V=RA(oe=q.substring(K+1)).call(oe),!k||M[k]&&bJ[k]||(k==="set-cookie"?M[k]?M[k].push(V):M[k]=[V]:M[k]=M[k]?M[k]+", "+V:V)}),M})(A),l);else if(Ht.isObject(A)&&Ht.isIterable(A)){let b,M,k={};for(let V of A){if(!Ht.isArray(V))throw TypeError("Object iterator must return a key-value pair");k[M=V[0]]=(b=k[M])?Ht.isArray(b)?[...b,V[1]]:[b,V[1]]:V[1]}y(k,l)}else A!=null&&m(l,A,g);var w;return this}get(A,l){if(A=QC(A)){let g=Ht.findKey(this,A);if(g){let C=this[g];if(!l)return C;if(l===!0)return function(m){let y=Object.create(null),w=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,b;for(;b=w.exec(m);)y[b[1]]=b[2];return y}(C);if(Ht.isFunction(l))return l.call(this,C,g);if(Ht.isRegExp(l))return l.exec(C);throw new TypeError("parser must be boolean|regexp|function")}}}has(A,l){if(A=QC(A)){let g=Ht.findKey(this,A);return!(!g||this[g]===void 0||l&&!TC(0,this[g],g,l))}return!1}delete(A,l){let g=this,C=!1;function m(y){if(y=QC(y)){let w=Ht.findKey(g,y);!w||l&&!TC(0,g[w],w,l)||(delete g[w],C=!0)}}return Ht.isArray(A)?A.forEach(m):m(A),C}clear(A){let l=Object.keys(this),g=l.length,C=!1;for(;g--;){let m=l[g];A&&!TC(0,this[m],m,A,!0)||(delete this[m],C=!0)}return C}normalize(A){let l=this,g={};return Ht.forEach(this,(C,m)=>{var y;let w=Ht.findKey(g,m);if(w)return l[w]=zE(C),void delete l[m];let b=A?function(M){return RA(M).call(M).toLowerCase().replace(/([a-z\d])(\w*)/g,(k,V,K)=>V.toUpperCase()+K)}(m):RA(y=String(m)).call(y);b!==m&&delete l[m],l[b]=zE(C),g[b]=!0}),this}concat(){for(var A=arguments.length,l=new Array(A),g=0;g{g!=null&&g!==!1&&(l[C]=A&&Ht.isArray(g)?g.join(", "):g)}),l}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(A=>{let[l,g]=A;return l+": "+g}).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(A){return A instanceof this?A:new this(A)}static concat(A){let l=new this(A);for(var g=arguments.length,C=new Array(g>1?g-1:0),m=1;ml.set(y)),l}static accessor(A){let l=(this[Db]=this[Db]={accessors:{}}).accessors,g=this.prototype;function C(m){let y=QC(m);l[y]||(function(w,b){let M=Ht.toCamelCase(" "+b);["get","set","has"].forEach(k=>{Object.defineProperty(w,k+M,{value:function(V,K,q){return this[k].call(this,b,V,K,q)},configurable:!0})})}(g,m),l[y]=!0)}return Ht.isArray(A)?A.forEach(C):C(A),this}}wC.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),Ht.reduceDescriptors(wC.prototype,(a,A)=>{let{value:l}=a,g=A[0].toUpperCase()+A.slice(1);return{get:()=>l,set(C){this[g]=C}}}),Ht.freezeMethods(wC);var Rc=wC;function yc(a,A){let l=this||vb,g=A||l,C=Rc.from(g.headers),m=g.data;return Ht.forEach(a,function(y){m=y.call(l,m,C.normalize(),A?A.status:void 0)}),C.normalize(),m}function bP(a){return!(!a||!a.__CANCEL__)}function vC(a,A,l){Fn.call(this,a??"canceled",Fn.ERR_CANCELED,A,l),this.name="CanceledError"}function TA(a,A,l){let g=l.config.validateStatus;l.status&&g&&!g(l.status)?A(new Fn("Request failed with status code "+l.status,[Fn.ERR_BAD_REQUEST,Fn.ERR_BAD_RESPONSE][Math.floor(l.status/100)-4],l.config,l.request,l)):a(l)}Ht.inherits(vC,Fn,{__CANCEL__:!0});let qi=function(a,A){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:3,g=0,C=function(m,y){m=m||10;let w=new Array(m),b=new Array(m),M,k=0,V=0;return y=y!==void 0?y:1e3,function(K){let q=Date.now(),ce=b[V];M||(M=q),w[k]=K,b[k]=q;let oe=V,le=0;for(;oe!==k;)le+=w[oe++],oe%=m;if(k=(k+1)%m,k===V&&(V=(V+1)%m),q-M1&&arguments[1]!==void 0?arguments[1]:Date.now(),w=null,b&&(clearTimeout(b),b=null),m(...K)};return[function(){let K=Date.now(),q=K-M;for(var ce=arguments.length,oe=new Array(ce),le=0;le=k?V(oe,K):(w=oe,b||(b=setTimeout(()=>{b=null,V(w)},k-q)))},()=>w&&V(w)]}(m=>{let y=m.loaded,w=m.lengthComputable?m.total:void 0,b=y-g,M=C(b);g=y,a({loaded:y,total:w,progress:w?y/w:void 0,bytes:b,rate:M||void 0,estimated:M&&w&&y<=w?(w-y)/M:void 0,event:m,lengthComputable:w!=null,[A?"download":"upload"]:!0})},l)},cR=(a,A)=>{let l=a!=null;return[g=>A[0]({lengthComputable:l,total:a,loaded:g}),A[1]]},bb=a=>function(){for(var A=arguments.length,l=new Array(A),g=0;ga(...l))};var Ob=YA.hasStandardBrowserEnv?((a,A)=>l=>(l=new SA(l,YA.origin),a.protocol===l.protocol&&a.host===l.host&&(A||a.port===l.port)))(new SA(YA.origin),YA.navigator&&/(msie|trident)/i.test(YA.navigator.userAgent)):()=>!0,NJ=YA.hasStandardBrowserEnv?{write(a,A,l,g,C,m,y){if(typeof document>"u")return;let w=["".concat(a,"=").concat(encodeURIComponent(A))];Ht.isNumber(l)&&w.push("expires=".concat(new Date(l).toUTCString())),Ht.isString(g)&&w.push("path=".concat(g)),Ht.isString(C)&&w.push("domain=".concat(C)),m===!0&&w.push("secure"),Ht.isString(y)&&w.push("SameSite=".concat(y)),document.cookie=w.join("; ")},read(a){if(typeof document>"u")return null;let A=document.cookie.match(new RegExp("(?:^|; )"+a+"=([^;]*)"));return A?decodeURIComponent(A[1]):null},remove(a){this.write(a,"",Date.now()-864e5,"/")}}:{write(){},read:()=>null,remove(){}};function gf(a,A,l){let g=!function(C){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(C)}(A);return a&&(g||l==0)?function(C,m){return m?C.replace(/\/?\/$/,"")+"/"+m.replace(/^\/+/,""):C}(a,A):A}function Lb(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Ef(a){for(var A=1;Aa instanceof Rc?Ef({},a):a;function $0(a,A){A=A||{};let l={};function g(M,k,V,K){return Ht.isPlainObject(M)&&Ht.isPlainObject(k)?Ht.merge.call({caseless:K},M,k):Ht.isPlainObject(k)?Ht.merge({},k):Ht.isArray(k)?k.slice():k}function C(M,k,V,K){return Ht.isUndefined(k)?Ht.isUndefined(M)?void 0:g(void 0,M,0,K):g(M,k,0,K)}function m(M,k){if(!Ht.isUndefined(k))return g(void 0,k)}function y(M,k){return Ht.isUndefined(k)?Ht.isUndefined(M)?void 0:g(void 0,M):g(void 0,k)}function w(M,k,V){return V in A?g(M,k):V in a?g(void 0,M):void 0}let b={url:m,method:m,data:m,baseURL:y,transformRequest:y,transformResponse:y,paramsSerializer:y,timeout:y,timeoutMessage:y,withCredentials:y,withXSRFToken:y,adapter:y,responseType:y,xsrfCookieName:y,xsrfHeaderName:y,onUploadProgress:y,onDownloadProgress:y,decompress:y,maxContentLength:y,maxBodyLength:y,beforeRedirect:y,transport:y,httpAgent:y,httpsAgent:y,cancelToken:y,socketPath:y,responseEncoding:y,validateStatus:w,headers:(M,k,V)=>C(Mb(M),Mb(k),0,!0)};return Ht.forEach(Object.keys(Ef(Ef({},a),A)),function(M){let k=b[M]||C,V=k(a[M],A[M],M);Ht.isUndefined(V)&&k!==w||(l[M]=V)}),l}var kb=a=>{let A=$0({},a),{data:l,withXSRFToken:g,xsrfHeaderName:C,xsrfCookieName:m,headers:y,auth:w}=A;if(A.headers=y=Rc.from(y),A.url=Su(gf(A.baseURL,A.url,A.allowAbsoluteUrls),a.params,a.paramsSerializer),w&&y.set("Authorization","Basic "+btoa((w.username||"")+":"+(w.password?unescape(encodeURIComponent(w.password)):""))),Ht.isFormData(l)){if(YA.hasStandardBrowserEnv||YA.hasStandardBrowserWebWorkerEnv)y.setContentType(void 0);else if(Ht.isFunction(l.getHeaders)){let b=l.getHeaders(),M=["content-type","content-length"];Object.entries(b).forEach(k=>{let[V,K]=k;Rt(M).call(M,V.toLowerCase())&&y.set(V,K)})}}if(YA.hasStandardBrowserEnv&&(g&&Ht.isFunction(g)&&(g=g(A)),g||g!==!1&&Ob(A.url))){let b=C&&m&&NJ.read(m);b&&y.set(C,b)}return A},NP=typeof XMLHttpRequest<"u"&&function(a){return new Ft(function(A,l){let g=kb(a),C=g.data,m=Rc.from(g.headers).normalize(),y,w,b,M,k,{responseType:V,onUploadProgress:K,onDownloadProgress:q}=g;function ce(){M&&M(),k&&k(),g.cancelToken&&g.cancelToken.unsubscribe(y),g.signal&&g.signal.removeEventListener("abort",y)}let oe=new XMLHttpRequest;function le(){if(!oe)return;let Se=Rc.from("getAllResponseHeaders"in oe&&oe.getAllResponseHeaders());TA(function(be){A(be),ce()},function(be){l(be),ce()},{data:V&&V!=="text"&&V!=="json"?oe.response:oe.responseText,status:oe.status,statusText:oe.statusText,headers:Se,config:a,request:oe}),oe=null}oe.open(g.method.toUpperCase(),g.url,!0),oe.timeout=g.timeout,"onloadend"in oe?oe.onloadend=le:oe.onreadystatechange=function(){oe&&oe.readyState===4&&(oe.status!==0||oe.responseURL&&oe.responseURL.indexOf("file:")===0)&&setTimeout(le)},oe.onabort=function(){oe&&(l(new Fn("Request aborted",Fn.ECONNABORTED,a,oe)),oe=null)},oe.onerror=function(Se){let be=new Fn(Se&&Se.message?Se.message:"Network Error",Fn.ERR_NETWORK,a,oe);be.event=Se||null,l(be),oe=null},oe.ontimeout=function(){let Se=g.timeout?"timeout of "+g.timeout+"ms exceeded":"timeout exceeded",be=g.transitional||A5;g.timeoutErrorMessage&&(Se=g.timeoutErrorMessage),l(new Fn(Se,be.clarifyTimeoutError?Fn.ETIMEDOUT:Fn.ECONNABORTED,a,oe)),oe=null},C===void 0&&m.setContentType(null),"setRequestHeader"in oe&&Ht.forEach(m.toJSON(),function(Se,be){oe.setRequestHeader(be,Se)}),Ht.isUndefined(g.withCredentials)||(oe.withCredentials=!!g.withCredentials),V&&V!=="json"&&(oe.responseType=g.responseType),q&&([b,k]=qi(q,!0),oe.addEventListener("progress",b)),K&&oe.upload&&([w,M]=qi(K),oe.upload.addEventListener("progress",w),oe.upload.addEventListener("loadend",M)),(g.cancelToken||g.signal)&&(y=Se=>{oe&&(l(!Se||Se.type?new vC(null,a,oe):Se),oe.abort(),oe=null)},g.cancelToken&&g.cancelToken.subscribe(y),g.signal&&(g.signal.aborted?y():g.signal.addEventListener("abort",y)));let pe=function(Se){let be=/^([-+\w]{1,25})(:?\/\/|:)/.exec(Se);return be&&be[1]||""}(g.url);pe&&YA.protocols.indexOf(pe)===-1?l(new Fn("Unsupported protocol "+pe+":",Fn.ERR_BAD_REQUEST,a)):oe.send(C||null)})},Pb=(a,A)=>{let{length:l}=a=a?a.filter(Boolean):[];if(A||l){let g,C=new AbortController,m=function(M){if(!g){g=!0,w();let k=M instanceof Error?M:this.reason;C.abort(k instanceof Fn?k:new vC(k instanceof Error?k.message:k))}},y=A&&setTimeout(()=>{y=null,m(new Fn("timeout ".concat(A," of ms exceeded"),Fn.ETIMEDOUT))},A),w=()=>{a&&(y&&clearTimeout(y),y=null,a.forEach(M=>{M.unsubscribe?M.unsubscribe(m):M.removeEventListener("abort",m)}),a=null)};a.forEach(M=>M.addEventListener("abort",m));let{signal:b}=C;return b.unsubscribe=()=>Ht.asap(w),b}},lR=I($M),OP=_C.f("asyncIterator"),OJ=I(OP);function dR(a,A){this.v=a,this.k=A}function wA(a){return function(){return new hf(a.apply(this,arguments))}}function hf(a){var A,l;function g(m,y){try{var w=a[m](y),b=w.value,M=b instanceof dR;lR.resolve(M?b.v:b).then(function(k){if(M){var V=m==="return"?"return":"next";if(!b.k||k.done)return g(V,k);k=a[V](k).value}C(w.done?"return":"normal",k)},function(k){g("throw",k)})}catch(k){C("throw",k)}}function C(m,y){switch(m){case"return":A.resolve({value:y,done:!0});break;case"throw":A.reject(y);break;default:A.resolve({value:y,done:!1})}(A=A.next)?g(A.key,A.arg):l=null}this._invoke=function(m,y){return new lR(function(w,b){var M={key:m,arg:y,resolve:w,reject:b,next:null};l?l=l.next=M:(A=l=M,g(m,y))})},typeof a.return!="function"&&(this.return=void 0)}function ri(a){return new dR(a,0)}function Z0(a){var A={},l=!1;function g(C,m){return l=!0,m=new lR(function(y){y(a[C](m))}),{done:!1,value:new dR(m,1)}}return A[z0!==void 0&&mb||"@@iterator"]=function(){return this},A.next=function(C){return l?(l=!1,C):g("next",C)},typeof a.throw=="function"&&(A.throw=function(C){if(l)throw l=!1,C;return g("throw",C)}),typeof a.return=="function"&&(A.return=function(C){return l?(l=!1,C):g("return",C)}),A}hf.prototype[typeof z0=="function"&&OJ||"@@asyncIterator"]=function(){return this},hf.prototype.next=function(a){return this._invoke("next",a)},hf.prototype.throw=function(a){return this._invoke("throw",a)},hf.prototype.return=function(a){return this._invoke("return",a)};var $E=I(OP);function Ub(a){var A,l,g,C=2;for(typeof Symbol<"u"&&(l=$E,g=Symbol.iterator);C--;){if(l&&(A=a[l])!=null)return A.call(a);if(g&&(A=a[g])!=null)return new uR(A.call(a));l="@@asyncIterator",g="@@iterator"}throw new TypeError("Object is not async iterable")}function uR(a){function A(l){if(Object(l)!==l)return Ft.reject(new TypeError(l+" is not an object."));var g=l.done;return Ft.resolve(l.value).then(function(C){return{value:C,done:g}})}return uR=function(l){this.s=l,this.n=l.next},uR.prototype={s:null,n:null,next:function(){return A(this.n.apply(this.s,arguments))},return:function(l){var g=this.s.return;return g===void 0?Ft.resolve({value:l,done:!0}):A(g.apply(this.s,arguments))},throw:function(l){var g=this.s.return;return g===void 0?Ft.reject(l):A(g.apply(this.s,arguments))}},new uR(a)}let ae=function*(a,A){let l=a.byteLength;if(!A||l{let C=LP(a,A),m,y=0,w=b=>{m||(m=!0,g&&g(b))};return new ReadableStream({async pull(b){try{let{done:M,value:k}=await C.next();if(M)return w(),void b.close();let V=k.byteLength;if(l){let K=y+=V;l(K)}b.enqueue(new Uint8Array(k))}catch(M){throw w(M),M}},cancel:b=>(w(b),C.return())},{highWaterMark:2})};function ER(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function MP(a){for(var A=1;A{let{Request:A,Response:l}=a;return{Request:A,Response:l}})(Ht.global),{ReadableStream:xb,TextEncoder:Fb}=Ht.global,jA=function(a){try{for(var A=arguments.length,l=new Array(A>1?A-1:0),g=1;g{a=Ht.merge.call({skipUndefined:!0},MJ,a);let{fetch:A,Request:l,Response:g}=a,C=A?hR(A):typeof fetch=="function",m=hR(l),y=hR(g);if(!C)return!1;let w=C&&hR(xb),b=C&&(typeof Fb=="function"?(M=new Fb,ce=>M.encode(ce)):async ce=>new Uint8Array(await new l(ce).arrayBuffer()));var M;let k=m&&w&&jA(()=>{let ce=!1,oe=new l(YA.origin,{body:new xb,method:"POST",get duplex(){return ce=!0,"half"}}).headers.has("Content-Type");return ce&&!oe}),V=y&&w&&jA(()=>Ht.isReadableStream(new g("").body)),K={stream:V&&(ce=>ce.body)};C&&["text","arrayBuffer","blob","formData","stream"].forEach(ce=>{!K[ce]&&(K[ce]=(oe,le)=>{let pe=oe&&oe[ce];if(pe)return pe.call(oe);throw new Fn("Response type '".concat(ce,"' is not supported"),Fn.ERR_NOT_SUPPORT,le)})});let q=async(ce,oe)=>Ht.toFiniteNumber(ce.getContentLength())??(async pe=>pe==null?0:Ht.isBlob(pe)?pe.size:Ht.isSpecCompliantForm(pe)?(await new l(YA.origin,{method:"POST",body:pe}).arrayBuffer()).byteLength:Ht.isArrayBufferView(pe)||Ht.isArrayBuffer(pe)?pe.byteLength:(Ht.isURLSearchParams(pe)&&(pe+=""),Ht.isString(pe)?(await b(pe)).byteLength:void 0))(oe);return async ce=>{let{url:oe,method:le,data:pe,signal:Se,cancelToken:be,timeout:Ue,onDownloadProgress:xe,onUploadProgress:Le,responseType:je,headers:dt,withCredentials:pt="same-origin",fetchOptions:zt}=kb(ce),gr=A||fetch;je=je?(je+"").toLowerCase():"text";let li=Pb([Se,be&&be.toAbortSignal()],Ue),ii=null,br=li&&li.unsubscribe&&(()=>{li.unsubscribe()}),Zi;try{if(Le&&k&&le!=="get"&&le!=="head"&&(Zi=await q(dt,pe))!==0){let ne,ve=new l(oe,{method:"POST",body:pe,duplex:"half"});if(Ht.isFormData(pe)&&(ne=ve.headers.get("content-type"))&&dt.setContentType(ne),ve.body){let[Pe,Lt]=cR(Zi,qi(bb(Le)));pe=gR(ve.body,65536,Pe,Lt)}}Ht.isString(pt)||(pt=pt?"include":"omit");let Hn=m&&"credentials"in l.prototype,ut=MP(MP({},zt),{},{signal:li,method:le.toUpperCase(),headers:dt.normalize().toJSON(),body:pe,duplex:"half",credentials:Hn?pt:void 0});ii=m&&new l(oe,ut);let kt=await(m?gr(ii,zt):gr(oe,ut)),Wt=V&&(je==="stream"||je==="response");if(V&&(xe||Wt&&br)){let ne={};["status","statusText","headers"].forEach(Kr=>{ne[Kr]=kt[Kr]});let ve=Ht.toFiniteNumber(kt.headers.get("content-length")),[Pe,Lt]=xe&&cR(ve,qi(bb(xe),!0))||[];kt=new g(gR(kt.body,65536,Pe,()=>{Lt&&Lt(),br&&br()}),ne)}je=je||"text";let It=await K[Ht.findKey(K,je)||"text"](kt,ce);return!Wt&&br&&br(),await new Ft((ne,ve)=>{TA(ne,ve,{data:It,headers:Rc.from(kt.headers),status:kt.status,statusText:kt.statusText,config:ce,request:ii})})}catch(Hn){throw br&&br(),Hn&&Hn.name==="TypeError"&&/Load failed|fetch/i.test(Hn.message)?Object.assign(new Fn("Network Error",Fn.ERR_NETWORK,ce,ii),{cause:Hn.cause||Hn}):Fn.from(Hn,Hn&&Hn.code,ce,ii)}}},kJ=new Map,PP=a=>{let A=a&&a.env||{},{fetch:l,Request:g,Response:C}=A,m=[g,C,l],y,w,b=m.length,M=kJ;for(;b--;)y=m[b],w=M.get(y),w===void 0&&M.set(y,w=b?new Map:kP(A)),M=w;return w};PP();let IR={http:null,xhr:NP,fetch:{get:PP}};Ht.forEach(IR,(a,A)=>{if(a){try{Object.defineProperty(a,"name",{value:A})}catch{}Object.defineProperty(a,"adapterName",{value:A})}});let UP=a=>"- ".concat(a),PJ=a=>Ht.isFunction(a)||a===null||a===!1;var xP={getAdapter:function(a,A){a=Ht.isArray(a)?a:[a];let{length:l}=a,g,C,m={};for(let y=0;y{let[b,M]=w;return"adapter ".concat(b," ")+(M===!1?"is not supported by the environment":"is not available in the build")});throw new Fn("There is no suitable adapter to dispatch the request "+(l?y.length>1?`since : -`+y.map(UP).join(` -`):" "+UP(y[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return C},adapters:IR};function Gb(a){if(a.cancelToken&&a.cancelToken.throwIfRequested(),a.signal&&a.signal.aborted)throw new vC(null,a)}function FP(a){return Gb(a),a.headers=Rc.from(a.headers),a.data=yc.call(a,a.transformRequest),["post","put","patch"].indexOf(a.method)!==-1&&a.headers.setContentType("application/x-www-form-urlencoded",!1),xP.getAdapter(a.adapter||vb.adapter,a)(a).then(function(A){return Gb(a),A.data=yc.call(a,a.transformResponse,A),A.headers=Rc.from(A.headers),A},function(A){return bP(A)||(Gb(a),A&&A.response&&(A.response.data=yc.call(a,a.transformResponse,A.response),A.response.headers=Rc.from(A.response.headers))),Ft.reject(A)})}let GP="1.13.2",If={};["object","boolean","number","function","string","symbol"].forEach((a,A)=>{If[a]=function(l){return typeof l===a||"a"+(A<1?"n ":" ")+a}});let Vb={};If.transitional=function(a,A,l){function g(C,m){return"[Axios v"+GP+"] Transitional option '"+C+"'"+m+(l?". "+l:"")}return(C,m,y)=>{if(a===!1)throw new Fn(g(m," has been removed"+(A?" in "+A:"")),Fn.ERR_DEPRECATED);return A&&!Vb[m]&&(Vb[m]=!0,console.warn(g(m," has been deprecated since v"+A+" and will be removed in the near future"))),!a||a(C,m,y)}},If.spelling=function(a){return(A,l)=>(console.warn("".concat(l," is likely a misspelling of ").concat(a)),!0)};var CR={assertOptions:function(a,A,l){if(typeof a!="object")throw new Fn("options must be an object",Fn.ERR_BAD_OPTION_VALUE);let g=Object.keys(a),C=g.length;for(;C-- >0;){let m=g[C],y=A[m];if(y){let w=a[m],b=w===void 0||y(w,m,a);if(b!==!0)throw new Fn("option "+m+" must be "+b,Fn.ERR_BAD_OPTION_VALUE)}else if(l!==!0)throw new Fn("Unknown option "+m,Fn.ERR_BAD_OPTION)}},validators:If};let nl=CR.validators,Cf=class{constructor(a){this.defaults=a||{},this.interceptors={request:new fC,response:new fC}}async request(a,A){try{return await this._request(a,A)}catch(l){if(l instanceof Error){let g={};Error.captureStackTrace?Error.captureStackTrace(g):g=new Error;let C=g.stack?g.stack.replace(/^.+\n/,""):"";try{l.stack?C&&!String(l.stack).endsWith(C.replace(/^.+\n.+\n/,""))&&(l.stack+=` -`+C):l.stack=C}catch{}}throw l}}_request(a,A){typeof a=="string"?(A=A||{}).url=a:A=a||{},A=$0(this.defaults,A);let{transitional:l,paramsSerializer:g,headers:C}=A;l!==void 0&&CR.assertOptions(l,{silentJSONParsing:nl.transitional(nl.boolean),forcedJSONParsing:nl.transitional(nl.boolean),clarifyTimeoutError:nl.transitional(nl.boolean)},!1),g!=null&&(Ht.isFunction(g)?A.paramsSerializer={serialize:g}:CR.assertOptions(g,{encode:nl.function,serialize:nl.function},!0)),A.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?A.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:A.allowAbsoluteUrls=!0),CR.assertOptions(A,{baseUrl:nl.spelling("baseURL"),withXsrfToken:nl.spelling("withXSRFToken")},!0),A.method=(A.method||this.defaults.method||"get").toLowerCase();let m=C&&Ht.merge(C.common,C[A.method]);C&&Ht.forEach(["delete","get","head","post","put","patch","common"],q=>{delete C[q]}),A.headers=Rc.concat(m,C);let y=[],w=!0;this.interceptors.request.forEach(function(q){typeof q.runWhen=="function"&&q.runWhen(A)===!1||(w=w&&q.synchronous,y.unshift(q.fulfilled,q.rejected))});let b=[],M;this.interceptors.response.forEach(function(q){b.push(q.fulfilled,q.rejected)});let k,V=0;if(!w){let q=[FP.bind(this),void 0];for(q.unshift(...y),q.push(...b),k=q.length,M=Ft.resolve(A);V{if(!g._listeners)return;let m=g._listeners.length;for(;m-- >0;)g._listeners[m](C);g._listeners=null}),this.promise.then=C=>{let m,y=new Ft(w=>{g.subscribe(w),m=w}).then(C);return y.cancel=function(){g.unsubscribe(m)},y},A(function(C,m,y){g.reason||(g.reason=new vC(C,m,y),l(g.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(A){this.reason?A(this.reason):this._listeners?this._listeners.push(A):this._listeners=[A]}unsubscribe(A){if(!this._listeners)return;let l=this._listeners.indexOf(A);l!==-1&&this._listeners.splice(l,1)}toAbortSignal(){let A=new AbortController,l=g=>{A.abort(g)};return this.subscribe(l),A.signal.unsubscribe=()=>this.unsubscribe(l),A.signal}static source(){let A;return{token:new e2(function(l){A=l}),cancel:A}}}var UJ=e2;let Kb={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Kb).forEach(a=>{let[A,l]=a;Kb[l]=A});var xJ=Kb;let eA=function a(A){let l=new pf(A),g=jk(pf.prototype.request,l);return Ht.extend(g,pf.prototype,l,{allOwnKeys:!0}),Ht.extend(g,l,null,{allOwnKeys:!0}),g.create=function(C){return a($0(A,C))},g}(vb);eA.Axios=pf,eA.CanceledError=vC,eA.CancelToken=UJ,eA.isCancel=bP,eA.VERSION=GP,eA.toFormData=x3,eA.AxiosError=Fn,eA.Cancel=eA.CanceledError,eA.all=function(a){return Ft.all(a)},eA.spread=function(a){return function(A){return a.apply(null,A)}},eA.isAxiosError=function(a){return Ht.isObject(a)&&a.isAxiosError===!0},eA.mergeConfig=$0,eA.AxiosHeaders=Rc,eA.formToJSON=a=>DP(Ht.isHTMLForm(a)?new FormData(a):a),eA.getAdapter=xP.getAdapter,eA.HttpStatusCode=xJ,eA.default=eA;var vA=eA;let FJ=()=>{};function ff(){let a={promise:void 0,isResolved:!1,isRejected:!1,isFinished:!1,resolve:void 0,reject:void 0,cancel:FJ};return a.promise=new Ft((A,l)=>{a.resolve=g=>{a.isFinished||(a.isResolved=!0,a.isFinished=!0,A(g),a.value=g)},a.reject=g=>{a.isFinished||(a.isRejected=!0,a.isFinished=!0,l(g))}}),a}let pR=new Map,fR=new Map,Qu=new Map,Vs=function(a){return a.WIN_10="Windows 10",a.WIN_81="Windows 8.1",a.WIN_8="Windows 8",a.WIN_7="Windows 7",a.WIN_VISTA="Windows Vista",a.WIN_SERVER_2003="Windows Server 2003",a.WIN_XP="Windows XP",a.WIN_2000="Windows 2000",a.ANDROID="Android",a.HARMONY_OS="HarmonyOS",a.OPEN_BSD="Open BSD",a.SUN_OS="Sun OS",a.LINUX="Linux",a.IOS="iOS",a.MAC_OS="Mac OS",a.CHROMIUM_OS="Chromium OS",a.QNX="QNX",a.UNIX="UNIX",a.BEOS="BeOS",a.OS_2="OS/2",a.SEARCH_BOT="Search Bot",a}({}),nn=function(a){return a.CHROME="Chrome",a.SAFARI="Safari",a.EDGE="Edge",a.FIREFOX="Firefox",a.OPERA="OPR",a.QQ="QQBrowser",a.WECHAT="MicroMessenger",a}({}),Hb=new Lk,Kl=Hb.getResult(),Yb=null;function Wi(a){if(!Yb){Kl=Hb.getResult();let A=function(w){if(w.engine.name==="Blink"&&w.browser.name!=="WeChat")return nn.CHROME;switch(w.browser.name){case"Chrome Headless":case"Chrome":case"Chromium":return nn.CHROME;case"Safari":case"Mobile Safari":return nn.SAFARI;case"Edge":return nn.EDGE;case"Firefox":return nn.FIREFOX;case"QQ":case"QQBrowser":return nn.QQ;case"Opera":return nn.OPERA;case"WeChat":return nn.WECHAT;default:return w.browser.name||""}}(Kl),l=VP(Kl),g=function(w){return w.os.name==="Windows"?w.os.version?w.os.name+" "+w.os.version:w.os.name:w.os.name||""}(Kl),C=Kl.os.version,m=VP(Kl,!1),y=Kl.device.type;if(!(A&&l&&g&&C))return{name:A,version:l,os:g,osVersion:C,browserVersion:m,deviceType:y};Yb={name:A,version:l,os:g,osVersion:C,browserVersion:m,deviceType:y}}return Yb}function VP(a){let A,l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return A=a.engine.name==="Blink"?a.engine.version||"":a.browser.version||"",l?A.split(".")[0]:A}function t2(){return Wi().os}function _f(){let a=Wi();return"".concat(a.os," ").concat(a.osVersion)}function DC(){let a=Wi();return!!(Kl.engine.name==="WebKit"&&a.os===Vs.MAC_OS&&navigator.maxTouchPoints&&navigator.maxTouchPoints>0&&a.name!==nn.SAFARI||Ma()&&a.name!==nn.SAFARI)}function Tg(){return Wi().name===nn.CHROME}function $s(){return Wi().name===nn.SAFARI}function KP(){let a=Wi();if(a.name!==nn.SAFARI||!a.browserVersion)return!1;let A=a.browserVersion.split(".");return Number(A[0])>15||Number(A[0])===15&&Number(A[1])>=4}function HP(){return Wi().name===nn.EDGE}function uo(){return Wi().name===nn.FIREFOX}function Ma(){return Wi().os===Vs.IOS}function Nd(a){let A=Wi();return!(A.name!==nn.CHROME||!A.osVersion)&&Number(A.version)>=a}function YP(a){let A=Wi();return!(A.name!==nn.CHROME||!A.osVersion)&&Number(A.version)=A&&Number(g.version)<=l:Number(g.version)===A)}function ol(a){let A=Wi();return!(A.name!==nn.EDGE||!A.osVersion)&&Number(A.version)>=a}function mf(a){let A=Wi();return!(A.name!==nn.FIREFOX||!A.osVersion)&&Number(A.version)>=a}function mR(a){let A=Wi();return!(A.name!==nn.SAFARI||!A.osVersion)&&Number(A.version)>=a}function BR(a,A,l){let g=Wi();if(g.os!==Vs.IOS||!g.osVersion)return!1;let C=g.osVersion.split(".");return l?A&&Number(C[0])===a&&Number(C[1])>A||Number(C[0])>a:A?Number(C[0])===a&&Number(C[1])>=A||Number(C[0])>a:Number(C[0])>=a}function jb(a,A,l){let g=Wi();if(g.os!==Vs.IOS||!g.osVersion)return!1;let C=g.osVersion.split(".");return l?A&&Number(C[0])===a&&Number(C[1])=a}function Bf(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])<14||Number(A[0])===14&&Number(A[1])<=6}function i2(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])===15}function SR(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])===16}function jP(){let a=Wi();if(a.os!==Vs.IOS||!a.osVersion)return!1;let A=a.osVersion.split(".");return Number(A[0])===15&&Number(A[1])>=1}function Hl(){return $s()&&navigator.maxTouchPoints>0}function Jb(){return Wi().name===nn.WECHAT}function qb(){return window.navigator.appVersion&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)!==null&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)[1]<=35}function RR(){let a=t2();return function(){let{deviceType:A}=Wi();return A==="mobile"||A==="tablet"}()||a===Vs.ANDROID||a===Vs.IOS||a===Vs.HARMONY_OS}function Od(){let a=Wi();return a.name!==nn.EDGE&&a.name!==nn.SAFARI&&!!navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]./i)}function Ld(){return t2()===Vs.ANDROID}function bC(){let a=Wi();return Ld()&&(a.name===nn.CHROME||a.name===nn.WECHAT||/chrome|chromium/i.test(navigator.userAgent))}function Hr(a,A,l){return(A=function(g){var C=function(m,y){if(typeof m!="object"||!m)return m;var w=m[Symbol.toPrimitive];if(w!==void 0){var b=w.call(m,"string");if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(m)}(g);return typeof C=="symbol"?C:C+""}(A))in a?Object.defineProperty(a,A,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[A]=l,a}function JP(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Ot(a){for(var A=1;A1&&arguments[1]!==void 0?arguments[1]:"",l=arguments.length>2?arguments[2]:void 0;super(A),Hr(this,"code",void 0),Hr(this,"message",void 0),Hr(this,"data",void 0),Hr(this,"name","AgoraRTCException"),this.code=a,this.message="AgoraRTCError ".concat(this.code,": ").concat(A),this.data=l}toString(){return this.data?"".concat(this.message,` -data: `).concat(JSON.stringify(this.data)):this.message}print(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error",A=arguments.length>1?arguments[1]:void 0;return a==="error"&&(A||console).error(this.toString()),a==="warning"&&(A||console).warn(this.toString()),this}throw(a){throw this.print("error",a),this}};function Yl(a,A){if(typeof a!="boolean")throw new nt(fe.INVALID_PARAMS,"Invalid ".concat(A,": The value is of the boolean type."))}function zo(a,A,l){if(!Rt(l).call(l,a))throw new nt(fe.INVALID_PARAMS,"".concat(A," can only be set as ").concat(JSON.stringify(l)))}function Rn(a,A){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1e4;if(ag||(!(arguments.length>4&&arguments[4]!==void 0)||arguments[4])&&!function(C){return typeof C=="number"&&C%1==0}(a))throw new nt(fe.INVALID_PARAMS,"invalid ".concat(A,": the value range is [").concat(l,", ").concat(g,"]. integer only"))}function AA(a,A){if(typeof a!="number"){if(!(a.min||a.max||a.ideal||a.exact))throw new nt(fe.INVALID_PARAMS,"".concat(A," is not a valid ConstrainLong"));a.min!==void 0&&Rn(a.min,"".concat(A,".min"),0,1/0),a.max!==void 0&&Rn(a.max,"".concat(A,".max"),1,1/0),a.exact!==void 0&&Rn(a.exact,"".concat(A,".exact"),1,1/0),a.ideal!==void 0&&Rn(a.ideal,"".concat(A,".ideal"),1,1/0)}else Rn(a,A,1,1/0)}function Tr(a,A){let l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:255,C=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(a==null)throw new nt(fe.INVALID_PARAMS,"".concat(A||"param"," cannot be empty"));if(!yR(a,l,g,C))throw new nt(fe.INVALID_PARAMS,"Invalid ".concat(A||"string param",": Length of the string: [").concat(l,",").concat(g,"].").concat(C?" ASCII characters only.":""))}function Qc(a,A){if(!Array.isArray(a))throw new nt(fe.INVALID_PARAMS,"".concat(A," should be an array"))}function mo(a){return a==null}function yR(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:255,g=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return typeof a=="string"&&a.length<=l&&a.length>=A&&(!g||function(C){if(typeof C!="string")return!1;for(let m=0;m255)return!1}return!0}(a))}function Sf(a,A,l){if("getBigUint64"in DataView.prototype)return a.getBigUint64(A,l);let g=a.getUint32(A,l),C=a.getUint32(A+4,l),m=0,y=1;return BigInt(g*y+C*m)<>BigInt(32)),m=Number(l&BigInt(4294967295));a.setUint32(A,C,g),a.setUint32(A+4,m,g)}var Rf=function(a){return a.COVERED="COVERED",a.POSITION="POSITION",a.SIZE="SIZE",a.STYLE="STYLE",a}(Rf||{}),Wb=function(a){return a.UNMOUNTED="UNMOUNTED",a.INVALID_HTML_ELEMENT="INVALID_HTML_ELEMENT",a}(Wb||{});let Xb=new class{constructor(){Hr(this,"_clientSize",null),Hr(this,"getClientWidth",()=>document.documentElement?document.documentElement.clientWidth:document.body.clientWidth),Hr(this,"getClientHeight",()=>document.documentElement?document.documentElement.clientHeight:document.body.clientHeight),Hr(this,"getStyle",a=>window.getComputedStyle(a,null)),Hr(this,"checkCssVisibleProperty",a=>{var A;let l=!0,g=this.getStyle(a),{display:C,visibility:m,opacity:y,filter:w}=g;return(C==="none"||Rt(A=["hidden","collapse"]).call(A,m)||Number(y)<.1)&&(l=!1),!!l&&(w&&w.split(" ").filter(b=>{var M;let k=b.split("(")[0];return Rt(M=["brightness","blur","opacity"]).call(M,k)}).map(b=>{let[M,k]=b.split(/\(|\)/);return[M,Number(k.match(/^[0-9\.]+/))]}).forEach(b=>{let[M,k]=b;switch(M){case"brightness":(k<.1||k>3)&&(l=!1);break;case"blur":k>3&&(l=!1);break;case"opacity":k<.1&&(l=!1)}}),l)}),Hr(this,"checkPropertyUpToAllParentNodes",(a,A)=>{let l=!0,g=!0,C=y=>A(y),m=a;for(;m&&g;)C(m)||(l=!1,g=!1),m=m.parentElement,m||(g=!1);return l}),Hr(this,"checkActualCssVisibleIncludeInherit",a=>this.checkPropertyUpToAllParentNodes(a,this.checkCssVisibleProperty)),Hr(this,"getSizeAboutClient",a=>{let{width:A,height:l,left:g,right:C,top:m,bottom:y}=a.getBoundingClientRect(),w=this.getClientWidth(),b=this.getClientHeight();return{width:A,height:l,left:g,right:C,top:m,bottom:y,clientWidth:w,clientHeight:b,clientMin:Math.min(w,b)}}),Hr(this,"checkActualSize",()=>{let{width:a,height:A,clientMin:l}=this._clientSize;return this.checkSizeIsVisible(a,A,l)}),Hr(this,"elementFromPoint",(a,A)=>document.elementFromPoint?document.elementFromPoint(a,A):null),Hr(this,"checkCoverForAPoint",(a,A,l)=>{let g=this.elementFromPoint(a,A);return g!==null&&g!==l}),Hr(this,"getPointPositionList",()=>{let{width:a,height:A,left:l,top:g}=this._clientSize,C=a/6,m=A/6,y=[],w=10**6;for(let b=0;b<5;b++)for(let M=0;M<5;M++){let k=(l*w+(b===0?.1:b===4?(C*b*w-1e5)/w:C*b)*w)/w,V=(g*w+(M===0?.1:M===4?(m*M*w-1e5)/w:m*M)*w)/w;y.push({x:k,y:V})}return[...y]}),Hr(this,"checkElementCover",a=>this.getPointPositionList().map(A=>this.checkCoverForAPoint(A.x,A.y,a)).filter(A=>!!A).length>6),Hr(this,"checkSizeIsVisible",(a,A,l)=>(a>50||l/a<=10)&&(A>50||l/A<=10)),Hr(this,"checkSizeOfPartInClient",()=>{let{left:a,right:A,top:l,bottom:g,clientHeight:C,clientWidth:m,clientMin:y}=this._clientSize,w,b,M,k;if(a<0)w=0;else{if(!(a(this._clientSize=null,{visible:!1,reason:a})),Hr(this,"checkOneElementVisible",a=>{if(a instanceof HTMLElement){if(this.checkElementIsMountedOnDom(a)){if(this.checkActualCssVisibleIncludeInherit(a)){if(this._clientSize=this.getSizeAboutClient(a),this.checkElementCover(a))return this.returnHiddenResult(Rf.COVERED);{let A=this.checkActualSize(),l=this.checkSizeOfPartInClient();return A&&!l?this.returnHiddenResult(Rf.POSITION):A?(this._clientSize=null,{visible:!0}):this.returnHiddenResult(Rf.SIZE)}}return this.returnHiddenResult(Rf.STYLE)}return this.returnHiddenResult(Wb.UNMOUNTED)}return this.returnHiddenResult(Wb.INVALID_HTML_ELEMENT)}),Hr(this,"checkElementIsMountedOnDom",a=>this.checkPropertyUpToAllParentNodes(a,A=>A.nodeName.toUpperCase()!=="HTML"?A.parentElement!==null:!!document.documentElement))}};function yf(a){return new TextEncoder().encode(a)}let zb=function(a,A){let l=new Uint8Array(a.byteLength+A.byteLength);return l.set(new Uint8Array(a),0),l.set(new Uint8Array(A),a.byteLength),l},QR=async a=>function(A,l){let g="";return new Uint8Array(A).forEach(C=>{g+=C.toString(l).padStart(2,"0")}),g}(await crypto.subtle.digest("SHA-256",yf(a)),16),io=class{constructor(){Hr(this,"_events",{}),Hr(this,"addListener",this.on)}getListeners(a){return this._events[a]?this._events[a].map(A=>A.listener):[]}on(a,A){this._events[a]||(this._events[a]=[]);let l=this._events[a];this._indexOfListener(l,A)===-1&&l.push({listener:A,once:!1})}once(a,A){this._events[a]||(this._events[a]=[]);let l=this._events[a];this._indexOfListener(l,A)===-1&&l.push({listener:A,once:!0})}off(a,A){if(!this._events[a])return;let l=this._events[a],g=this._indexOfListener(l,A);g!==-1&&l.splice(g,1),this._events[a].length===0&&delete this._events[a]}removeAllListeners(a){a?delete this._events[a]:this._events={}}emit(a){this._events[a]||(this._events[a]=[]);let A=this._events[a].map(m=>m);for(var l=arguments.length,g=new Array(l>1?l-1:0),C=1;C1?A-1:0),g=1;g{C.once&&this.off(a,C.listener);try{C.listener.apply(this,l)}catch(m){console.error("safeEmit event:".concat(a," error ").concat(m==null?void 0:m.toString()))}})}_indexOfListener(a,A){let l=a.length;for(;l--;)if(a[l].listener===A)return l;return-1}},NC=null;function WP(){if(NC)return NC;if(window.electron)return NC=window.electron;if(!window.require)return null;try{return NC=window.require("electron"),NC}catch{return null}}let Co=function(a){return a.CREATE_CLIENT="createClient",a.CHECK_SYSTEM_REQUIREMENTS="checkSystemRequirements",a.SET_AREA="setArea",a.PRELOAD="PRELOAD",a.CHECK_VIDEO_TRACK_IS_ACTIVE="checkVideoTrackIsActive",a.CHECK_AUDIO_TRACK_IS_ACTIVE="checkAudioTrackIsActive",a.CREATE_MIC_AUDIO_TRACK="createMicrophoneAudioTrack",a.CREATE_CUSTOM_AUDIO_TRACK="createCustomAudioTrack",a.CREATE_BUFFER_AUDIO_TRACK="createBufferSourceAudioTrack",a.CREATE_CAM_VIDEO_TRACK="createCameraVideoTrack",a.CREATE_CUSTOM_VIDEO_TRACK="createCustomVideoTrack",a.CREATE_MIC_AND_CAM_TRACKS="createMicrophoneAndCameraTracks",a.CREATE_SCREEN_VIDEO_TRACK="createScreenVideoTrack",a.SET_ENCRYPTION_CONFIG="Client.setEncryptionConfig",a.START_PROXY_SERVER="Client.startProxyServer",a.STOP_PROXY_SERVER="Client.stopProxyServer",a.SET_PROXY_SERVER="Client.setProxyServer",a.SET_TURN_SERVER="Client.setTurnServer",a.SET_CLIENT_ROLE="Client.setClientRole",a.SET_LOW_STREAM_PARAMETER="Client.setLowStreamParameter",a.ENABLE_DUAL_STREAM="Client.enableDualStream",a.DISABLE_DUAL_STREAM="Client.disableDualStream",a.JOIN="Client.join",a.LEAVE="Client.leave",a.PUBLISH="Client.publish",a.UNPUBLISH="Client.unpublish",a.SUBSCRIBE="Client.subscribe",a.MASS_SUBSCRIBE="Client.massSubscribe",a.MASS_UNSUBSCRIBE="Client.massUnsubscribe",a.UNSUBSCRIBE="Client.unsubscribe",a.RENEW_TOKEN="Client.renewToken",a.SET_REMOTE_VIDEO_STREAM_TYPE="Client.setRemoteVideoStreamType",a.SET_STREAM_FALLBACK_OPTION="Client.setStreamFallbackOption",a.ENABLE_AUDIO_VOLUME_INDICATOR="Client.enableAudioVolumeIndicator",a.SEND_CUSTOM_REPORT_MESSAGE="Client.sendCustomReportMessage",a.INSPECT_VIDEO_CONTENT="Client.inspectVideoContent",a.STOP_INSPECT_VIDEO_CONTENT="Client.stopInspectVideoContent",a.JOIN_FALLBACK_TO_PROXY="Client._joinFallbackToProxy",a.ON_LIVE_STREAM_WARNING="Client.onLiveStreamWarning",a.ON_LIVE_STREAM_ERROR="Client.onLiveStreamingError",a.START_LIVE_STREAMING="Client.startLiveStreaming",a.SET_LIVE_TRANSCODING="Client.setLiveTranscoding",a.STOP_LIVE_STREAMING="Client.stopLiveStreaming",a.START_CHANNEL_MEDIA_RELAY="Client.startChannelMediaRelay",a.UPDATE_CHANNEL_MEDIA_RELAY="Client.updateChannelMediaRelay",a.STOP_CHANNEL_MEDIA_RELAY="Client.stopChannelMediaRelay",a.REQUEST_CONFIG_DISTRIBUTE="_config-distribute-request",a.SET_CONFIG_DISTRIBUTE="_configDistribute",a.LOCAL_TRACK_SET_MUTED="LocalTrack.setMute",a.LOCAL_AUDIO_TRACK_PLAY="LocalAudioTrack.play",a.LOCAL_AUDIO_TRACK_PLAY_IN_ELEMENT="LocalAudioTrack.playInElement",a.LOCAL_AUDIO_TRACK_STOP="LocalAudioTrack.stop",a.LOCAL_AUDIO_TRACK_SET_VOLUME="LocalAudioTrack.setVolume",a.MIC_AUDIO_TRACK_SET_DEVICE="MicrophoneAudioTrack.setDevice",a.BUFFER_AUDIO_TRACK_START="BufferSourceAudioTrack.startProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_STOP="BufferSourceAudioTrack.stopProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_PAUSE="BufferSourceAudioTrack.pauseProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_RESUME="BufferSourceAudioTrack.resumeProcessAudioBuffer",a.BUFFER_AUDIO_TRACK_SEEK="BufferSourceAudioTrack.seekAudioBuffer",a.LOCAL_VIDEO_TRACK_PLAY="LocalVideoTrack.play",a.LOCAL_VIDEO_TRACK_STOP="LocalVideoTrack.stop",a.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE="LocalVideoTrack.getVideoElementVisibleStatus",a.LOCAL_VIDEO_TRACK_BEAUTY="LocalVideoTrack.setBeautyEffect",a.LOCAL_VIDEO_SEND_SEI_DATA="LocalVideoTrack.sendSeiData",a.CAM_VIDEO_TRACK_SET_DEVICE="CameraVideoTrack.setDevice",a.CAM_VIDEO_TRACK_SET_ENCODER_CONFIG="CameraVideoTrack.setEncoderConfiguration",a.REMOTE_VIDEO_TRACK_PLAY="RemoteVideoTrack.play",a.REMOTE_VIDEO_TRACK_STOP="RemoteVideoTrack.stop",a.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE="RemoteVideoTrack.getVideoElementVisibleStatus",a.REMOTE_AUDIO_TRACK_PLAY="RemoteAudioTrack.play",a.REMOTE_AUDIO_TRACK_STOP="RemoteAudioTrack.stop",a.REMOTE_AUDIO_SET_VOLUME="RemoteAudioTrack.setVolume",a.REMOTE_AUDIO_SET_OUTPUT_DEVICE="RemoteAudioTrack.setOutputDevice",a.GET_MEDIA_STREAM_TRACK="Track.getMediaStreamTrack",a.STREAM_TYPE_CHANGE="streamTypeChange",a.CONNECTION_STATE_CHANGE="connectionStateChange",a.LOAD_CONFIG_FROM_LOCALSTORAGE="loadConfigFromLocalStorage",a.IMAGE_MODERATION_UPLOAD="imageModerationUpload",a.REPUB_AFTER_PC_CONNECTED="repubAfterPCConnected",a.PRELOAD_MEDIA_FAILED="preloadMediaFailed",a.MISMATCH_DTLS_PARAMETERS="mismatchDtlsParameters",a.VOS_FALLBACK_CN="vosFallbackCN",a.DATACHANNEL_FAILBACK="datachannelFailback",a}({}),Gn=function(a){return a.TRACER="tracer",a}({});function TR(a){return Rn(a.timeout,"config.timeout",0,1e5),Rn(a.timeoutFactor,"config.timeoutFactor",0,100,!1),Rn(a.maxRetryCount,"config.maxRetryConfig",0,1/0),Rn(a.maxRetryTimeout,"config.maxRetryTimeout",0,1/0),!0}let XP=function(a){return a[a.AUDIENCE_LEVEL_LOW_LATENCY=1]="AUDIENCE_LEVEL_LOW_LATENCY",a[a.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY=2]="AUDIENCE_LEVEL_ULTRA_LOW_LATENCY",a[a.AUDIENCE_LEVEL_SYNC_LATENCY=3]="AUDIENCE_LEVEL_SYNC_LATENCY",a}({}),bi=function(a){return a.LEAVE="LEAVE",a.NETWORK_ERROR="NETWORK_ERROR",a.SERVER_ERROR="SERVER_ERROR",a.UID_BANNED="UID_BANNED",a.FALLBACK="FALLBACK",a.IP_BANNED="IP_BANNED",a.CHANNEL_BANNED="CHANNEL_BANNED",a.LICENSE_MISSING="LICENSE_MISSING",a.LICENSE_EXPIRED="LICENSE_EXPIRED",a.LICENSE_MINUTES_EXCEEDED="LICENSE_MINUTES_EXCEEDED",a.LICENSE_PERIOD_INVALID="LICENSE_PERIOD_INVALID",a.LICENSE_MULTIPLE_SDK_SERVICE="LICENSE_MULTIPLE_SDK_SERVICE",a.LICENSE_ILLEGAL="LICENSE_ILLEGAL",a.TOKEN_EXPIRE="TOKEN_EXPIRE",a.FALLBACK_TO_HLS="FALLBACK_TO_HLS",a.UID_CONFLICT="UID_CONFLICT",a}({});function eh(a){if(!Array.isArray(a)||a.length<1)return!1;try{a.forEach(A=>{if(!A.urls)throw Error()})}catch{return!1}return!0}function wR(a){return Tr(a.turnServerURL,"turnServerURL"),Tr(a.username,"username"),Tr(a.password,"password"),a.udpport&&Rn(a.udpport,"udpport",1,99999,!0),a.forceturn&&Yl(a.forceturn,"forceturn"),a.security&&Yl(a.security,"security"),a.tcpport&&Rn(a.tcpport,"tcpport",1,99999,!0),!0}let n2=function(a){return a[a.AUTO_SIMULCAST_STREAM=-1]="AUTO_SIMULCAST_STREAM",a[a.DISABLE_SIMULCAST_STREM=0]="DISABLE_SIMULCAST_STREM",a[a.ENABLE_SIMULCAST_STREAM=1]="ENABLE_SIMULCAST_STREAM",a}({});function OC(a){return a.level!==void 0&&zo(a.level,"level",[1,2,3]),a.delay!==void 0&&Rn(a.delay,"delay",0,3e3,!0),!0}let si=function(a){return a.PEERCONNECTION_STATE_CHANGE="peerconnection-state-change",a.AUDIO_METADATA="audio-metadata",a.AUDIO_PTS="audio-pts",a.CONNECTION_STATE_CHANGE="connection-state-change",a.MEDIA_RECONNECT_START="media-reconnect-start",a.MEDIA_RECONNECT_END="media-reconnect-end",a.IS_USING_CLOUD_PROXY="is-using-cloud-proxy",a.USER_JOINED="user-joined",a.USER_LEAVED="user-left",a.USER_PUBLISHED="user-published",a.USER_UNPUBLISHED="user-unpublished",a.USER_INFO_UPDATED="user-info-updated",a.CLIENT_BANNED="client-banned",a.CHANNEL_MEDIA_RELAY_STATE="channel-media-relay-state",a.CHANNEL_MEDIA_RELAY_EVENT="channel-media-relay-event",a.VOLUME_INDICATOR="volume-indicator",a.CRYPT_ERROR="crypt-error",a.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="token-privilege-will-expire",a.ON_TOKEN_PRIVILEGE_DID_EXPIRE="token-privilege-did-expire",a.NETWORK_QUALITY="network-quality",a.STREAM_TYPE_CHANGED="stream-type-changed",a.STREAM_FALLBACK="stream-fallback",a.RECEIVE_METADATA="receive-metadata",a.STREAM_MESSAGE="stream-message",a.LIVE_STREAMING_ERROR="live-streaming-error",a.LIVE_STREAMING_WARNING="live-streaming-warning",a.EXCEPTION="exception",a.ERROR="error",a.P2P_LOST="p2p_lost",a.JOIN_FALLBACK_TO_PROXY="join-fallback-to-proxy",a.CHANNEL_FALLBACK_TO_WEBSOCKET="channel-fallback-to-websocket",a.MEDIA_CONNECTION_TYPE_CHANGE="media-connection-type-change",a.PUBLISHED_USER_LIST="published-user-list",a.CONTENT_INSPECT_CONNECTION_STATE_CHANGE="content-inspect-connection-state-change",a.CONTENT_INSPECT_ERROR="content-inspect-error",a.CONTENT_INSPECT_RESULT="content-inspect-result",a.IMAGE_MODERATION_CONNECTION_STATE_CHANGE="image-moderation-connection-state-change",a.FALLBACK_TO_HLS="fallback-to-hls",a.FIRST_VIDEO_BUFFER_READY="first-video-buffer-ready",a.FIRST_VIDEO_PRE_RENDER="first-video-pre-render",a.AV1_DECODABLE_RESULT="av1-decodable-result",a}({}),LC=function(a){return a.CONFIG="config",a.VOSERROR="vos_error",a.AP_ERROR="ap_error",a}({}),xo=function(a){return a.NETWORK_ERROR="NETWORK_ERROR",a.SERVER_ERROR="SERVER_ERROR",a.MULTI_IP="MULTI_IP",a.TIMEOUT="TIMEOUT",a.OFFLINE="OFFLINE",a.LEAVE="LEAVE",a.P2P_FAILED="P2P_FAILED",a.FALLBACK="FALLBACK",a.REGIONAL_DISTRIBUTION="REGIONAL_DISTRIBUTION",a}({}),Va=function(a){return a.ONLINE="ONLINE",a.OFFLINE="OFFLINE",a}({}),Tu=function(a){return a.NETWORK_STATE_CHANGE="NETWORK_STATE_CHANGE",a.ONLINE="ONLINE",a.OFFLINE="OFFLINE",a}({});function rs(a,A){for(var l=arguments.length,g=new Array(l>2?l-2:0),C=2;C{a.emit(A,...g,m,y)})}function Wn(a,A){if(a.getListeners(A).length===0)return Ft.resolve();for(var l=arguments.length,g=new Array(l>2?l-2:0),C=2;C2?l-2:0),C=2;C2?C-2:0),y=2;y{l=w},w=>{g=w}),g!==null)throw g;if(l===null)throw new nt(fe.UNEXPECTED_ERROR,"handler is not sync");return l}let Xi=new class extends io{set networkState(a){this.emit(Tu.NETWORK_STATE_CHANGE,a,this._networkState),a===Va.ONLINE?this.emit(Tu.ONLINE):a===Va.OFFLINE&&(this.onlineWaiter=new Ft(A=>{this.once(Tu.ONLINE,()=>{this.onlineWaiter=void 0,A(Va.ONLINE)})}),this.emit(Tu.OFFLINE)),this._networkState=a}get networkState(){return this._networkState}get isOnline(){return this._networkState===Va.ONLINE}constructor(){super(),Hr(this,"_moduleName","network-indicator"),Hr(this,"_networkState",Va.ONLINE),Hr(this,"onlineWaiter",void 0),window.addEventListener("online",()=>{this.networkState=Va.ONLINE}),window.addEventListener("offline",()=>{this.networkState=Va.OFFLINE})}},on=[];for(let a=0;a<256;++a)on.push((a+256).toString(16).slice(1));let zP=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),s2,vR=new Uint8Array(16);function DR(){return zP?zP():function(l,g,C){var m,y,w,b;let M=(m=(y=(l=l||{}).random)!==null&&y!==void 0?y:(w=(b=l).rng)===null||w===void 0?void 0:w.call(b))!==null&&m!==void 0?m:function(){if(!s2){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");s2=crypto.getRandomValues.bind(crypto)}return s2(vR)}();if(M.length<16)throw new Error("Random bytes length must be >= 16");if(M[6]=15&M[6]|64,M[8]=63&M[8]|128,g){if((C=C||0)<0||C+16>g.length)throw new RangeError("UUID byte range ".concat(C,":").concat(C+15," is out of buffer bounds"));for(let k=0;k<16;++k)g[C+k]=M[k];return g}return function(k){let V=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(on[k[V+0]]+on[k[V+1]]+on[k[V+2]]+on[k[V+3]]+"-"+on[k[V+4]]+on[k[V+5]]+"-"+on[k[V+6]]+on[k[V+7]]+"-"+on[k[V+8]]+on[k[V+9]]+"-"+on[k[V+10]]+on[k[V+11]]+on[k[V+12]]+on[k[V+13]]+on[k[V+14]]+on[k[V+15]]).toLowerCase()}(M)}(a,A,void 0);var a,A}function sl(a,A){let l=a.indexOf(A);l!==-1&&a.splice(l,1)}function ns(a){let A=[];return a.forEach(l=>{A.indexOf(l)===-1&&A.push(l)}),A}function Fi(a){Ft!==void 0?Ft.resolve().then(a):setTimeout(a,0)}function no(a){return JSON.parse(JSON.stringify(a))}function qA(a){try{return no(a)}catch{return a}}let bR={};function Qi(a,A){bR[A]||(bR[A]=!0,a())}function th(a){let A=window.atob(a),l=new Uint8Array(new ArrayBuffer(A.length));for(let g=0;g1&&arguments[1]!==void 0?arguments[1]:16,l=new TextEncoder().encode(a);if(l.length>A)l=l.slice(0,A);else if(l.lengthy+w.length,0),C=new Uint8Array(new ArrayBuffer(g)),m=0;return A.forEach(y=>{C.set(y,m),m+=y.length}),C}function DA(a){return window.TextEncoder?new TextEncoder().encode(a).length:a.length}function Zs(a){let A=0;return(/DingTalk/i.test(navigator.userAgent)||/AliApp/i.test(navigator.userAgent))&&a.realFormData&&(a=a.realFormData),a.forEach(l=>{A+=typeof l=="string"?DA(l):l.size}),A+138}function Zb(a){let A=new nt(fe.TIMEOUT,"timeout");return new Ft((l,g)=>{window.setTimeout(()=>g(A),a)})}function Ks(a){return new Ft(A=>{window.setTimeout(A,a)})}function yn(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:7,A=arguments.length>1?arguments[1]:void 0,l=Math.random().toString(16).substr(2,a).toLowerCase();return l.length===a?"".concat(A).concat(l):"".concat(A).concat(l)+yn(a-l.length,"")}function Ln(){let a,A=!1;try{var l;a=ZY(l=DR()).call(l,"-","")}catch{A=!0}return!A&&a&&a.length===32||(a=yn(32,"")),a.toUpperCase()}let Ia=()=>{},al=new class{constructor(){Hr(this,"fnMap",new Map)}throttleByKey(a,A,l,g){for(var C=arguments.length,m=new Array(C>4?C-4:0),y=4;y{let M=this.fnMap.get(A);M&&M.fn(...M.args),this.fnMap.delete(A)},l);this.fnMap.set(A,{fn:a,threshold:l,timer:b,args:m,skipFn:g})}else w.skipFn&&w.skipFn(...w.args),this.fnMap.set(A,Ot(Ot({},w),{},{fn:a,args:m,skipFn:g}))}else{let w=window.setTimeout(()=>{let b=this.fnMap.get(A);b&&b.fn(...b.args),this.fnMap.delete(A)},l);this.fnMap.set(A,{fn:a,threshold:l,timer:w,args:m,skipFn:g})}}},e4=al.throttleByKey.bind(al);function Tf(a){return typeof a=="object"&&a!==null&&!(a instanceof RegExp)}function wu(a,A){if(!Tf(a)||!Tf(A)||Array.isArray(a)&&!Array.isArray(A)||!Array.isArray(a)&&Array.isArray(A))return A;if(Array.isArray(A)&&Array.isArray(a)){let l=[...a];for(let g=0;g0&&(l[g]=255&a,a>>=8,g++,g!==A););return l}function a2(a){return typeof a=="number"?a:a.exact||a.ideal||a.max||a.min||0}function vf(a,A){try{return typeof a=="object"&&typeof A=="object"&&JSON.stringify(a)===JSON.stringify(A)}catch{return!1}}function NR(a){return $c(a).call(a,(A,l)=>A+l,0)}function Df(a){let A="0123456789abcdef";function l(be){let Ue,xe="";for(Ue=0;Ue<=3;Ue++)xe+=A.charAt(be>>8*Ue+4&15)+A.charAt(be>>8*Ue&15);return xe}function g(be,Ue){let xe=(65535&be)+(65535&Ue);return(be>>16)+(Ue>>16)+(xe>>16)<<16|65535&xe}function C(be,Ue,xe,Le,je,dt){return g(function(pt,zt){return pt<>>32-zt}(g(g(Ue,be),g(Le,dt)),je),xe)}function m(be,Ue,xe,Le,je,dt,pt){return C(Ue&xe|~Ue&Le,be,Ue,je,dt,pt)}function y(be,Ue,xe,Le,je,dt,pt){return C(Ue&Le|xe&~Le,be,Ue,je,dt,pt)}function w(be,Ue,xe,Le,je,dt,pt){return C(Ue^xe^Le,be,Ue,je,dt,pt)}function b(be,Ue,xe,Le,je,dt,pt){return C(xe^(Ue|~Le),be,Ue,je,dt,pt)}let M=function(be){let Ue,xe=1+(be.length+8>>6),Le=new Array(16*xe);for(Ue=0;Ue<16*xe;Ue++)Le[Ue]=0;for(Ue=0;Ue>2]|=be.charCodeAt(Ue)<>2]|=128<0}lock(a){let A;this.locks+=1,this.logger("locked",a);let l=new Ft(C=>{A=()=>{this.locks-=1,this.logger("unlocked",a),C()}}),g=this.lockingPromise.then(()=>A);return this.lockingPromise=this.lockingPromise.then(()=>l),g}};function rh(a,A){return function(l,g,C){let m=C.value;if(typeof m!="function")throw new Error("Cannot use mutex on object property.");return C.value=async function(){let y=this[A];if(!y)throw new Error("mutex property key ".concat(A," doesn't exist on ").concat(a));let w=await y.lock("From ".concat(a,".").concat(g));try{for(var b=arguments.length,M=new Array(b),k=0;k{await function(M){return new Ft(k=>{window.setTimeout(k,M)})}(m),m*=C.timeoutFactor,m=Math.min(C.maxRetryTimeout,m)},w=!1,b=new Ft(async(M,k)=>{A=A||(()=>!1),l=l||(()=>!0);for(let V=0;Vw=!0,b}let bf,OR=class{constructor(a){Hr(this,"input",[]),Hr(this,"size",void 0),this.size=a}add(a){this.input.push(a),this.input.length>this.size&&this.input.splice(0,1)}mean(){var a;return this.input.length===0?0:$c(a=this.input).call(a,(A,l)=>A+l)/this.input.length}},Al=0,c2=0;function l2(a,A,l,g){return new Ft((C,m)=>{A.responseType=A.responseType||"json",A.data&&!l?(A.data=JSON.stringify(A.data),Al+=DA(A.data)):l&&(A.data.size?Al+=A.data.size:A.data instanceof FormData?Al+=Zs(A.data):Al+=DA(JSON.stringify(A.data))),A.headers=A.headers||{},A.headers["Content-Type"]=A.headers["Content-Type"]||"application/json",A.method="POST",A.url=a,vA.request(A).then(y=>{typeof y.data=="string"?c2+=DA(y.data):y.data instanceof ArrayBuffer||y.data instanceof Uint8Array?c2+=y.data.byteLength:c2+=DA(JSON.stringify(y.data)),C(y.data)}).catch(y=>{vA.isCancel(y)?m(new nt(fe.OPERATION_ABORTED,"cancel token canceled")):y.code==="ECONNABORTED"?m(new nt(fe.NETWORK_TIMEOUT,y.message)):y.response?m(new nt(fe.NETWORK_RESPONSE_ERROR,y.response.status)):m(new nt(fe.NETWORK_ERROR,y.message))})})}async function GJ(a,A){let l=new Blob([A.data],{type:"buffer"});return await l2(a,Ot(Ot({},A),{},{data:l,headers:{"Content-Type":"application/octet-stream"}}),!0)}let r4=()=>window.isSecureContext!==void 0;function Dr(a){if(Array.isArray(a))return a.map(l=>l);if(!i4(a))return a;let A={};for(let l in a){let g=a[l];i4(g)||Array.isArray(g)?A[l]=Dr(g):A[l]=g}return A}function i4(a){return!(typeof a!="object"||Array.isArray(a)||!a)}let wt=class{constructor(a){Hr(this,"input",[]),Hr(this,"size",void 0),this.size=a}add(a){this.input.push(a),this.input.length>this.size&&this.input.splice(0,1)}diffMean(){return this.input.length===0?0:(this.input[this.input.length-1]-this.input[0])/this.input.length}},cl={address:"unknown",candidateType:"unknown",id:"unknown",port:0,priority:0,protocol:"unknown",type:"unknown"},Ce={timestamp:0,bitrate:{actualEncoded:0,transmit:0},sendPacketLossRate:0,recvPacketLossRate:0,videoRecv:[],videoSend:[],audioRecv:[],audioSend:[],transport:{bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0},selectedCandidatePair:{id:"unknown",localCandidate:cl,remoteCandidate:cl},updateInterval:0},tt={firsCount:0,nacksCount:0,plisCount:0,framesDecodeCount:0,framesDecodeInterval:0,framesDecodeFreezeTime:0,decodeFrameRate:0,bytes:0,packetsLost:0,packetLostRate:0,packets:0,ssrc:0,qpSumPerFrame:0,framesDroppedCount:0,outputFrameRate:0,packetsDiscarded:0,framesAssembledFromMultiplePackets:0,totalProcessingDelay:0,avgDecodeMs:0,avgFramesAssembledFromMultiplePacketsMs:0,avgProcessingDelayMs:0,avgInterFrameDelayMs:0,totalAssemblyTime:0},ll={firsCount:0,nacksCount:0,plisCount:0,frameCount:0,bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0,qpSumPerFrame:0},As={bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0},Vn={jitterBufferMs:0,jitterMs:0,bytes:0,packetsLost:0,packetLostRate:0,packetsDiscarded:0,packets:0,ssrc:0,receivedFrames:0,droppedFrames:0,concealedSamples:0,totalSamplesReceived:0,silentConcealedSamples:0,concealmentEvents:0,freezeMs80:0,freezeMs200:0,freezeSamples80:0,freezeSamples200:0},Nf=class{constructor(a,A){Hr(this,"onFirstVideoReceived",void 0),Hr(this,"onFirstVideoDecoded",void 0),Hr(this,"onFirstAudioReceived",void 0),Hr(this,"onFirstVideoDecodedTimeout",void 0),Hr(this,"onFirstAudioDecoded",void 0),Hr(this,"onSelectedLocalCandidateChanged",void 0),Hr(this,"onSelectedRemoteCandidateChanged",void 0),Hr(this,"videoIsReady",!1),Hr(this,"videoIsReady2",{}),Hr(this,"pc",void 0),Hr(this,"options",void 0),Hr(this,"intervalTimer",void 0),Hr(this,"stats",Dr(Ce)),Hr(this,"isFirstVideoReceived",{}),Hr(this,"isFirstVideoDecoded",{}),Hr(this,"isFirstAudioReceived",{}),Hr(this,"isFirstAudioDecoded",{}),Hr(this,"isFirstVideoDecodedTimeout",{}),Hr(this,"lossRateWindowStats",[]),this.pc=a,this.options=A,this.intervalTimer=window.setInterval(async()=>{this.updateStats()},this.options.updateInterval)}getStats(){return this.stats}getSelectedCandidatePair(){return new Ft(a=>{a({local:Ot({},cl),remote:Ot({},cl)})})}setVideoIsReady(a){this.videoIsReady=a}setVideoIsReady2(a,A){this.videoIsReady2[a]=A}getVideoIsReady(a){return this.videoIsReady2[a]||!1}setIsFirstAudioDecoded(a){}destroy(){window.clearInterval(this.intervalTimer),this.pc=void 0}calcLossRate(a){this.lossRateWindowStats.push(a),this.lossRateWindowStats.length>this.options.lossRateInterval&&this.lossRateWindowStats.splice(0,1);let A=this.lossRateWindowStats.length,l=["videoSend","audioSend","videoRecv","audioRecv"],g=0,C=0,m=0,y=0;for(let w of l)a[w].forEach((b,M)=>{if(!this.lossRateWindowStats[A-1][w][M]||!this.lossRateWindowStats[0][w][M])return;let k=this.lossRateWindowStats[A-1][w][M].packets-this.lossRateWindowStats[0][w][M].packets,V=this.lossRateWindowStats[A-1][w][M].packetsLost-this.lossRateWindowStats[0][w][M].packetsLost;w==="videoSend"||w==="audioSend"?(g+=k,m+=V):(C+=k,y+=V),Number.isNaN(k)||Number.isNaN(k)?b.packetLostRate=0:b.packetLostRate=k<=0||V<=0?0:V/(k+V)});a.sendPacketLossRate=g<=0||m<=0?0:m/(g+m),a.recvPacketLossRate=C<=0||y<=0?0:y/(C+y)}},Ra=class extends Nf{constructor(){super(...arguments),Hr(this,"_stats",Ce),Hr(this,"lastDecodeVideoReceiverStats",new Map)}async updateStats(){let a=await this._getStats(),A=this.statsResponsesToObjects(a);this._stats=Dr(Ce);let l=A.filter(C=>C.type==="ssrc");this.processSSRCStats(l);let g=A.find(C=>C.type==="VideoBwe");g&&this.processBandwidthStats(g),this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}processBandwidthStats(a){this._stats.bitrate={actualEncoded:Number(a.googActualEncBitrate),targetEncoded:Number(a.googTargetEncBitrate),retransmit:Number(a.googRetransmitBitrate),transmit:Number(a.googTransmitBitrate)},this._stats.sendBandwidth=Number(a.googAvailableSendBandwidth)}processSSRCStats(a){a.forEach(A=>{var l;let g=Rt(l=A.id).call(l,"send");switch("".concat(A.mediaType,"_").concat(g?"send":"recv")){case"video_send":{let C=Dr(ll);C.codec=A.googCodecName,C.adaptionChangeReason="none",A.googCpuLimitedResolution&&(C.adaptionChangeReason="cpu"),A.googBandwidthLimitedResolution&&(C.adaptionChangeReason="bandwidth"),C.avgEncodeMs=Number(A.googAvgEncodeMs),C.inputFrame={width:Number(A.googFrameWidthInput)||Number(A.googFrameWidthSent),height:Number(A.googFrameHeightInput)||Number(A.googFrameHeightSent),frameRate:Number(A.googFrameRateInput)},C.sentFrame={width:Number(A.googFrameWidthSent),height:Number(A.googFrameHeightSent),frameRate:Number(A.googFrameRateInput)},C.firsCount=Number(A.googFirReceived),C.nacksCount=Number(A.googNacksReceived),C.plisCount=Number(A.googPlisReceived),C.frameCount=Number(A.framesEncoded),C.bytes=Number(A.bytesSent),C.packets=Number(A.packetsSent),C.packetsLost=Number(A.packetsLost),C.ssrc=Number(A.ssrc),C.rttMs=Number(A.googRtt||0),this._stats.videoSend.push(C),this._stats.rtt=C.rttMs;break}case"video_recv":{let C=Dr(tt),m=this.lastDecodeVideoReceiverStats.get(Number(A.ssrc));if(C.codec=A.googCodecName,C.targetDelayMs=Number(A.googTargetDelayMs),C.renderDelayMs=Number(A.googRenderDelayMs),C.currentDelayMs=Number(A.googCurrentDelayMs),C.minPlayoutDelayMs=Number(A.googMinPlayoutDelayMs),C.decodeMs=Number(A.googDecodeMs),C.maxDecodeMs=Number(A.googMaxDecodeMs),C.receivedFrame={width:Number(A.googFrameWidthReceived),height:Number(A.googFrameHeightReceived),frameRate:Number(A.googFrameRateReceived)},C.decodedFrame={width:Number(A.googFrameWidthReceived),height:Number(A.googFrameHeightReceived),frameRate:Number(A.googFrameRateDecoded)},C.decodeFrameRate=Number(A.googFrameRateDecoded),C.outputFrame={width:Number(A.googFrameWidthReceived),height:Number(A.googFrameHeightReceived),frameRate:Number(A.googFrameRateOutput)},C.jitterBufferMs=Number(A.googJitterBufferMs),C.firsCount=Number(A.googFirsSent),C.nacksCount=Number(A.googNacksSent),C.plisCount=Number(A.googPlisSent),C.framesDecodeCount=Number(A.framesDecoded),C.bytes=Number(A.bytesReceived),C.packets=Number(A.packetsReceived),C.packetsLost=Number(A.packetsLost),C.ssrc=Number(A.ssrc),C.packets>0&&!this.isFirstVideoReceived[C.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(C.ssrc),this.isFirstVideoReceived[C.ssrc]=!0),C.framesDecodeCount>0&&!this.isFirstVideoDecoded[C.ssrc]&&(this.onFirstVideoDecoded&&this.onFirstVideoDecoded(C.ssrc,C.decodedFrame.width,C.decodedFrame.height),this.isFirstVideoDecoded[C.ssrc]=!0),m){let y=m.stats,w=Date.now()-m.lts;C.framesDecodeFreezeTime=y.framesDecodeFreezeTime,C.framesDecodeInterval=y.framesDecodeInterval,C.framesDecodeCount>y.framesDecodeCount&&this.isFirstVideoDecoded[C.ssrc]?(m.lts=Date.now(),C.framesDecodeInterval=w,C.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(A.ssrc,10))?C.framesDecodeFreezeTime+=C.framesDecodeInterval:this.setVideoIsReady2(parseInt(A.ssrc,10),!0))):C.framesDecodeCount0&&!this.isFirstAudioReceived[C.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(C.ssrc),this.isFirstAudioReceived[C.ssrc]=!0),C.decodingNormal>0&&!this.isFirstAudioDecoded[C.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(C.ssrc),this.isFirstAudioDecoded[C.ssrc]=!0),this._stats.audioRecv.push(C);break}case"audio_send":{let C=Dr(As);C.codec=A.googCodecName,C.inputLevel=Math.abs(Number(A.audioInputLevel))/32767,C.aecReturnLoss=Number(A.googEchoCancellationReturnLoss||0),C.aecReturnLossEnhancement=Number(A.googEchoCancellationReturnLossEnhancement||0),C.residualEchoLikelihood=Number(A.googResidualEchoLikelihood||0),C.residualEchoLikelihoodRecentMax=Number(A.googResidualEchoLikelihoodRecentMax||0),C.bytes=Number(A.bytesSent),C.packets=Number(A.packetsSent),C.packetsLost=Number(A.packetsLost),C.ssrc=Number(A.ssrc),C.rttMs=Number(A.googRtt||0),this._stats.rtt=C.rttMs,this._stats.audioSend.push(C);break}}})}_getStats(){return new Ft((a,A)=>{this.pc.getStats(a,A)})}statsResponsesToObjects(a){let A=[];return a.result().forEach(l=>{let g={id:l.id,timestamp:l.timestamp.valueOf().toString(),type:l.type};l.names().forEach(C=>{g[C]=l.stat(C)}),A.push(g)}),A}},j1=function(a){return a.BANDWIDTH="bandwidth",a.CPU="cpu",a.NONE="none",a.OTHER="other",a}({}),Bo=function(a){return a.L1T1="L1T1",a.L1T2="L1T2",a.L1T3="L1T3",a.L1T3_KEY="L1T3_KEY",a.L2T1_KEY="L2T1_KEY",a.L2T2_KEY="L2T2_KEY",a.L2T3_KEY="L2T3_KEY",a.L3T1_KEY="L3T1_KEY",a.L3T2_KEY="L3T2_KEY",a.L3T3_KEY="L3T3_KEY",a}({}),LR=function(a){return a[a.new=0]="new",a[a.connecting=1]="connecting",a[a.connected=2]="connected",a[a.disconnected=3]="disconnected",a[a.failed=4]="failed",a[a.closed=5]="closed",a}({}),J1=function(a){return a.CERTIFICATE="certificate",a.CODEC="codec",a.CANDIDATE_PAIR="candidate-pair",a.LOCAL_CANDIDATE="local-candidate",a.REMOTE_CANDIDATE="remote-candidate",a.INBOUND="inbound-rtp",a.TRACK="track",a.OUTBOUND="outbound-rtp",a.PC="peer-connection",a.REMOTE_INBOUND="remote-inbound-rtp",a.REMOTE_OUTBOUND="remote-outbound-rtp",a.TRANSPORT="transport",a.CSRC="csrc",a.DATA_CHANNEL="data-channel",a.STREAM="stream",a.SENDER="sender",a.RECEIVER="receiver",a}({});var d2=function(a){return a[a.kNone=1]="kNone",a[a.kMillisecondsFromSeconds=1e3]="kMillisecondsFromSeconds",a[a.kBytesToBits=8]="kBytesToBits",a}(d2||{});function wg(a,A,l,g){let C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:d2.kNone;if(!A)return;let m=Number(A[l]);if(typeof m!="number")return;let y=Number(A[g]);if(typeof y!="number")return;if(!a)return y?m/y*C:void 0;let w=Number(a[l]);if(typeof w!="number")return;let b=Number(a[g]);if(typeof b!="number")return;let M=y-b;return M?(m-w)/M*C:void 0}let MR=class extends Nf{constructor(){super(...arguments),Hr(this,"_stats",Ce),Hr(this,"report",void 0),Hr(this,"lastDecodeVideoReceiverStats",new Map),Hr(this,"lastVideoFramesRecv",new Map),Hr(this,"lastVideoFramesSent",new Map),Hr(this,"lastVideoFramesDecode",new Map),Hr(this,"lastVideoFramesOutput",new Map),Hr(this,"lastVideoJBDelay",new Map),Hr(this,"lastAudioJBDelay",new Map),Hr(this,"mediaBytesSent",new Map),Hr(this,"mediaBytesRetransmit",new Map),Hr(this,"mediaBytesTargetEncode",new Map),Hr(this,"lastDecodeAudioReceiverStats",new Map),Hr(this,"lastAudioConcealment",new Map),Hr(this,"lastEncoderMs",new Map)}async updateStats(){this.report=await this.pc.getStats(),this._stats=Dr(Ce),this.report.forEach(a=>{switch(a.type){case J1.OUTBOUND:case J1.INBOUND:{let A=a.mediaType||a.kind,l=!A&&"frameWidth"in a,g=!A&&!("frameWidth"in a);a.type===J1.OUTBOUND?A==="audio"||g?this.processAudioOutboundStats(a):(A==="video"||l)&&this.processVideoOutboundStats(a):a.type===J1.INBOUND&&(A==="audio"||g?this.processAudioInboundStats(a):(A==="video"||l)&&this.processVideoInboundStats(a));break}case J1.TRANSPORT:{this.processTransportStats(a);let A=this.report.get(a.selectedCandidatePairId);A&&this.processCandidatePairStats(A);break}case J1.CANDIDATE_PAIR:a.selected&&this.processCandidatePairStats(a)}}),this.updateSendBitrate(),this._stats.updateInterval=Date.now()-this.stats.timestamp,this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}async getSelectedCandidatePair(){let a=await this.pc.getStats(),A={local:Ot({},cl),remote:Ot({},cl)};return a.forEach(l=>{let g;if(l.type===J1.TRANSPORT&&(g=a.get(l.selectedCandidatePairId)),l.type===J1.CANDIDATE_PAIR&&l.selected&&(g=l),g){let C=(m,y)=>{m.type=y.type,m.id=y.id,y.address&&(m.address=y.address),y.candidateType&&(m.candidateType=y.candidateType),y.port&&(m.port=y.port),y.priority&&(m.priority=y.priority),y.protocol&&(m.protocol=y.protocol),y.relayProtocol&&(m.relayProtocol=y.relayProtocol)};if(g.localCandidateId){let m=a.get(g.localCandidateId);m&&C(A.local,m)}if(g.remoteCandidateId){let m=a.get(g.remoteCandidateId);m&&C(A.remote,m)}}}),A}processCandidatePairStats(a){if(this._stats.sendBandwidth=a.availableOutgoingBitrate||0,a.currentRoundTripTime&&(this._stats.rtt=1e3*a.currentRoundTripTime),this._stats.videoSend.forEach(A=>{a.currentRoundTripTime&&(A.rttMs=1e3*a.currentRoundTripTime)}),this._stats.audioSend.forEach(A=>{a.currentRoundTripTime&&(A.rttMs=1e3*a.currentRoundTripTime)}),this._stats.selectedCandidatePair.id=a.id,a.localCandidateId){let A=this.report.get(a.localCandidateId);A&&this.processCandidateStats(A)}if(a.remoteCandidateId){let A=this.report.get(a.remoteCandidateId);A&&this.processCandidateStats(A)}}processCandidateStats(a){let A;a.type===J1.LOCAL_CANDIDATE&&(A=this._stats.selectedCandidatePair.localCandidate),a.type===J1.REMOTE_CANDIDATE&&(A=this._stats.selectedCandidatePair.remoteCandidate),A&&(A.type=a.type,A.id=a.id,a.address&&(A.address=a.address),a.candidateType&&(A.candidateType=a.candidateType),a.port&&(A.port=a.port),a.priority&&(A.priority=a.priority),a.protocol&&(A.protocol=a.protocol),a.relayProtocol&&(A.relayProtocol=a.relayProtocol),a.type===J1.LOCAL_CANDIDATE&&this.stats.selectedCandidatePair.localCandidate.id!==A.id&&this.onSelectedLocalCandidateChanged&&this.onSelectedLocalCandidateChanged(Ot({},A),Ot({},this.stats.selectedCandidatePair.localCandidate)),a.type===J1.REMOTE_CANDIDATE&&this.stats.selectedCandidatePair.remoteCandidate.id!==A.id&&this.onSelectedRemoteCandidateChanged&&this.onSelectedRemoteCandidateChanged(Ot({},A),Ot({},this.stats.selectedCandidatePair.remoteCandidate)))}processAudioInboundStats(a){let A=this._stats.audioRecv.find(g=>g.ssrc===a.ssrc);A||(A=Dr(Vn),this._stats.audioRecv.push(A)),A.ssrc=a.ssrc,A.packets=a.packetsReceived,A.packetsLost=a.packetsLost,A.packetsDiscarded=a.packetsDiscarded,A.bytes=a.bytesReceived,A.jitterMs=1e3*a.jitter,A.retransmittedBytesReceived=a.retransmittedBytesReceived,A.retransmittedPacketsReceived=a.retransmittedPacketsReceived,A.totalProcessingDelay=a.totalProcessingDelay,A.jitterBufferEmittedCount=a.jitterBufferEmittedCount,A.estimatedPlayoutTimestamp=a.estimatedPlayoutTimestamp;let l=this.lastDecodeAudioReceiverStats.get(A.ssrc);A.avgProcessingDelayMs=wg(l,A,"totalProcessingDelay","jitterBufferEmittedCount",d2.kMillisecondsFromSeconds),this.processAudioTrackReceiverStats(a,a.trackId,A),this.calculateAudioFreeze(A,l,a),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),A.receivedFrames||(A.receivedFrames=a.packetsReceived),A.droppedFrames||(A.droppedFrames=a.packetsLost),A.receivedFrames>0&&!this.isFirstAudioReceived[A.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(A.ssrc),this.isFirstAudioReceived[A.ssrc]=!0),A.outputLevel&&A.outputLevel>0&&!this.isFirstAudioDecoded[A.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(A.ssrc),this.isFirstAudioDecoded[A.ssrc]=!0),typeof a.concealedSamples=="number"&&(A.concealedSamples=a.concealedSamples),this.lastDecodeAudioReceiverStats.set(A.ssrc,Ot({},A))}calculateAudioFreeze(a,A,l){let g=this.lastAudioConcealment.get(a.ssrc);if(A!=null&&g!=null){let C=g.lts,m=l.timestamp,y=m-C;if(y<=0)return;let w=a.concealedSamples-A.concealedSamples-0,b=g.nonSilent+w,M=a.totalSamplesReceived-A.totalSamplesReceived;if(M<=0)return;let k=80*M/y,V=200*M/y,K=y/M,q=0;a.freezeSamples80=A.freezeSamples80,a.freezeMs80=A.freezeMs80,b>k&&(g.plc80>0?(a.freezeSamples80+=w,a.freezeMs80+=Math.round(w*K)):(a.freezeSamples80+=b,a.freezeMs80+=Math.round(b*K)),q=g.plc80+1);let ce=0;a.freezeSamples200=A.freezeSamples200,a.freezeMs200=A.freezeMs200,b>V&&(g.plc200>0?(a.freezeSamples200+=w,a.freezeMs200+=Math.round(w*K)):(a.freezeSamples200+=b,a.freezeMs200+=Math.round(b*K)),ce=g.plc200+1),this.lastAudioConcealment.set(a.ssrc,{nonSilent:w,lts:m,plc80:q,plc200:ce})}else a.freezeSamples80=0,a.freezeSamples200=0,a.freezeMs80=0,a.freezeMs200=0,this.lastAudioConcealment.set(a.ssrc,{nonSilent:0,lts:l.timestamp,plc80:0,plc200:0})}processVideoInboundStats(a){let A=this._stats.videoRecv.find(y=>y.ssrc===a.ssrc);A||(A=Dr(tt),this._stats.videoRecv.push(A)),A.ssrc=a.ssrc,A.packets=a.packetsReceived,A.packetsLost=a.packetsLost,A.bytes=a.bytesReceived,A.firsCount=a.firCount,A.nacksCount=a.nackCount,A.plisCount=a.pliCount,A.framesDecodeCount=a.framesDecoded,A.framesDroppedCount=a.framesDropped,A.totalInterFrameDelay=a.totalInterFrameDelay,A.totalSquaredInterFrameDelay=a.totalSquaredInterFrameDelay,A.totalFreezesDuration=a.totalFreezesDuration,A.totalProcessingDelay=a.totalProcessingDelay,A.packetsDiscarded=a.packetsDiscarded,A.framesAssembledFromMultiplePackets=a.framesAssembledFromMultiplePackets,A.totalAssemblyTime=a.totalAssemblyTime,A.keyFramesDecoded=a.keyFramesDecoded,A.retransmittedBytesReceived=a.retransmittedBytesReceived,A.retransmittedPacketsReceived=a.retransmittedPacketsReceived,A.estimatedPlayoutTimestamp=a.estimatedPlayoutTimestamp;let l=this.lastDecodeVideoReceiverStats.get(A.ssrc),g=this.lastVideoFramesDecode.get(A.ssrc),C=this.lastVideoFramesOutput.get(A.ssrc),m=Date.now();if(A.framesDecodeCount>0&&!this.isFirstVideoDecoded[A.ssrc]){let y=A.decodedFrame?A.decodedFrame.width:0,w=A.decodedFrame?A.decodedFrame.height:0;this.onFirstVideoDecoded&&this.onFirstVideoDecoded(A.ssrc,y,w),this.isFirstVideoDecoded[A.ssrc]=!0}if(l){let y=l.stats,w=m-l.lts;A.framesDecodeFreezeTime=y.framesDecodeFreezeTime,A.framesDecodeInterval=y.framesDecodeInterval,!this.isFirstVideoDecoded[A.ssrc]&&w>this.options.firstVideoDecodedTimeout&&!this.isFirstVideoDecodedTimeout[A.ssrc]&&(this.onFirstVideoDecodedTimeout&&this.onFirstVideoDecodedTimeout(A.ssrc),this.isFirstVideoDecodedTimeout[A.ssrc]=!0),A.framesDecodeCount>y.framesDecodeCount&&this.isFirstVideoDecoded[A.ssrc]?(l.lts=Date.now(),A.framesDecodeInterval=w,A.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(a.ssrc))?A.framesDecodeFreezeTime+=A.framesDecodeInterval:this.setVideoIsReady2(parseInt(a.ssrc,10),!0))):A.framesDecodeCounta.framesDecoded?A.qpSumPerFrame=a.qpSum/a.framesDecoded:A.qpSumPerFrame=(a.qpSum-l.qpSum)/(a.framesDecoded-l.stats.framesDecodeCount))}a.totalDecodeTime&&(A.decodeMs=1e3*a.totalDecodeTime,A.avgDecodeMs=wg(l==null?void 0:l.stats,A,"decodeMs","framesDecodeCount")),A.avgProcessingDelayMs=wg(l==null?void 0:l.stats,A,"totalProcessingDelay","framesDecodeCount",d2.kMillisecondsFromSeconds),A.avgFramesAssembledFromMultiplePacketsMs=wg(l==null?void 0:l.stats,A,"totalAssemblyTime","framesAssembledFromMultiplePackets",d2.kMillisecondsFromSeconds),A.avgInterFrameDelayMs=wg(l==null?void 0:l.stats,A,"totalInterFrameDelay","framesDecodeCount",d2.kMillisecondsFromSeconds),g&&m-g.lts>=800?(A.decodeFrameRate=Math.round((A.framesDecodeCount-g.count)/((m-g.lts)/1e3)),this.lastVideoFramesDecode.set(A.ssrc,{count:A.framesDecodeCount,lts:m,rate:A.decodeFrameRate})):g?A.decodeFrameRate=g.rate:this.lastVideoFramesDecode.set(A.ssrc,{count:A.framesDecodeCount,lts:m,rate:0}),A.framesDroppedCount&&a.framesReceived&&(C&&m-C.lts>=800?(A.outputFrameRate=Math.round((a.framesReceived-A.framesDroppedCount-C.count)/((m-C.lts)/1e3)),this.lastVideoFramesOutput.set(A.ssrc,{count:a.framesReceived-A.framesDroppedCount,lts:m,rate:Math.max(A.outputFrameRate,0)})):C?A.outputFrameRate=C.rate:this.lastVideoFramesOutput.set(A.ssrc,{count:a.framesReceived-A.framesDroppedCount,lts:m,rate:0})),this.processVideoTrackReceiverStats(a,a.trackId,A),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),a.framerateMean&&(A.framesRateFirefox=a.framerateMean),A.packets>0&&!this.isFirstVideoReceived[A.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(A.ssrc),this.isFirstVideoReceived[A.ssrc]=!0),this.lastDecodeVideoReceiverStats.set(A.ssrc,{stats:Ot({},A),lts:l?l.lts:Date.now(),qpSum:a.qpSum})}processVideoOutboundStats(a){let A=this._stats.videoSend.find(g=>g.ssrc===a.ssrc);A||(A=Dr(ll),this._stats.videoSend.push(A));let l=this.mediaBytesSent.get(a.ssrc);if(l)l.add(a.bytesSent);else{let g=new wt(10);g.add(a.bytesSent),this.mediaBytesSent.set(a.ssrc,g)}if(a.retransmittedBytesSent!==void 0){let g=this.mediaBytesRetransmit.get(a.ssrc);if(g)g.add(a.retransmittedBytesSent);else{let C=new wt(10);C.add(a.retransmittedBytesSent),this.mediaBytesRetransmit.set(a.ssrc,C)}}if(a.totalEncodedBytesTarget){let g=this.mediaBytesTargetEncode.get(a.ssrc);if(g)g.add(a.totalEncodedBytesTarget);else{let C=new wt(10);C.add(a.totalEncodedBytesTarget),this.mediaBytesTargetEncode.set(a.ssrc,C)}}if(A.ssrc=a.ssrc,A.bytes=a.bytesSent,A.packets=a.packetsSent,A.firsCount=a.firCount,A.nacksCount=a.nackCount,A.plisCount=a.pliCount,A.frameCount=a.framesEncoded,A.adaptionChangeReason=a.qualityLimitationReason,A.scalabilityMode=a.scalabilityMode,A.retransmittedBytesSent=a.retransmittedBytesSent,A.retransmittedPacketsSent=a.retransmittedPacketsSent,A.hugeFramesSent=a.hugeFramesSent,A.keyFramesEncoded=a.keyFramesEncoded,A.targetBitrate=a.targetBitrate,a.totalEncodeTime&&a.framesEncoded){let g=this.lastEncoderMs.get(a.ssrc);if(!g||g.lastFrameCount>a.framesEncoded)A.avgEncodeMs=1e3*a.totalEncodeTime/a.framesEncoded;else{let C=a.framesEncoded-g.lastFrameCount,m=a.totalEncodeTime-g.lastEncoderTime;A.avgEncodeMs=1e3*m/C}}if(a.framesEncoded&&a.qpSum){let g=this.lastEncoderMs.get(a.ssrc);!g||g.lastFrameCount>a.framesEncoded?A.qpSumPerFrame=a.qpSum/a.framesEncoded:A.qpSumPerFrame=(a.qpSum-g.lastQpSum)/(a.framesEncoded-g.lastFrameCount)}if(this.lastEncoderMs.set(a.ssrc,{lastFrameCount:a.framesEncoded,lastEncoderTime:a.totalEncodeTime,lastQpSum:a.qpSum,lts:Date.now()}),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),a.mediaSourceId&&this.processVideoMediaSource(a.mediaSourceId,A),this.processVideoTrackSenderStats(a,a.trackId,A),a.remoteId)this.processRemoteInboundStats(a.remoteId,A);else{let g=this.findRemoteStatsId(a.ssrc,J1.REMOTE_INBOUND);g&&this.processRemoteInboundStats(g,A)}}processAudioOutboundStats(a){let A=this._stats.audioSend.find(l=>l.ssrc===a.ssrc);if(A||(A=Dr(As),this._stats.audioSend.push(A)),A.ssrc=a.ssrc,A.packets=a.packetsSent,A.bytes=a.bytesSent,A.retransmittedBytesSent=a.retransmittedBytesSent,A.retransmittedPacketsSent=a.retransmittedPacketsSent,a.mediaSourceId&&this.processAudioMediaSource(a.mediaSourceId,A),a.codecId&&(A.codec=this.getCodecFromCodecStats(a.codecId)),this.processAudioTrackSenderStats(a,a.trackId,A),a.remoteId)this.processRemoteInboundStats(a.remoteId,A);else{let l=this.findRemoteStatsId(a.ssrc,J1.REMOTE_INBOUND);l&&this.processRemoteInboundStats(l,A)}}processTransportStats(a){this._stats.transport.bytesReceived=a.bytesReceived||this._stats.transport.bytesReceived,this._stats.transport.bytesSent=a.bytesSent||this._stats.transport.bytesSent,this._stats.transport.packetsReceived=a.packetsReceived||this._stats.transport.packetsReceived,this._stats.transport.packetsSent=a.packetsSent||this._stats.transport.packetsSent}findRemoteStatsId(a,A){var l;let g=Array.from(U1(l=this.report).call(l)).find(C=>C.type===A&&C.ssrc===a);return g?g.id:null}processVideoMediaSource(a,A){let l=this.report.get(a);l&&l.width&&l.height&&l.framesPerSecond&&(A.inputFrame={width:l.width,height:l.height,frameRate:l.framesPerSecond})}processAudioMediaSource(a,A){let l=this.report.get(a);l&&(A.inputLevel=l.audioLevel)}processVideoTrackSenderStats(a,A,l){var g,C,m,y;let w=A?this.report.get(A):void 0,b=(g=w==null?void 0:w.framesSent)!==null&&g!==void 0?g:a.framesSent;if(typeof b!="number")return;let M=(C=w==null?void 0:w.frameWidth)!==null&&C!==void 0?C:a.frameWidth,k=(m=w==null?void 0:w.frameHeight)!==null&&m!==void 0?m:a.frameHeight,V=(y=w==null?void 0:w.framesPerSecond)!==null&&y!==void 0?y:a.framesPerSecond;if(typeof M=="number"&&typeof k=="number"||(M=0,k=0),V==null){let K=Date.now(),q=this.lastVideoFramesSent.get(l.ssrc);q&&K-q.lts>=800?(V=Math.round((b-q.count)/((K-q.lts)/1e3)),this.lastVideoFramesSent.set(l.ssrc,{count:b,lts:K,rate:V})):q?V=q.rate:this.lastVideoFramesSent.set(l.ssrc,{count:b,lts:K,rate:0})}l.sentFrame={width:M,height:k,frameRate:Math.max(0,V)}}processVideoTrackReceiverStats(a,A,l){var g,C,m,y,w;let b=A?this.report.get(A):void 0,M=(g=b==null?void 0:b.framesReceived)!==null&&g!==void 0?g:a.framesReceived,k=(C=b==null?void 0:b.frameWidth)!==null&&C!==void 0?C:a.frameWidth,V=(m=b==null?void 0:b.frameHeight)!==null&&m!==void 0?m:a.frameHeight,K=(y=b==null?void 0:b.jitterBufferDelay)!==null&&y!==void 0?y:a.jitterBufferDelay,q=(w=b==null?void 0:b.jitterBufferEmittedCount)!==null&&w!==void 0?w:a.jitterBufferEmittedCount;if(typeof M=="number"){let ce=this.lastVideoFramesRecv.get(l.ssrc),oe=Date.now();l.framesReceivedCount=M;let le=0;ce&&oe-ce.lts>=800?(le=Math.round((M-ce.count)/((oe-ce.lts)/1e3)),this.lastVideoFramesRecv.set(l.ssrc,{count:M,lts:oe,rate:le})):ce?le=ce.rate:this.lastVideoFramesRecv.set(l.ssrc,{count:M,lts:oe,rate:0}),l.receivedFrame={width:k||0,height:V||0,frameRate:le||0},l.decodedFrame={width:k||0,height:V||0,frameRate:l.decodeFrameRate||0},l.outputFrame={width:k||0,height:V||0,frameRate:l.outputFrameRate||l.decodeFrameRate||0}}if(K&&q){let ce=this.lastVideoJBDelay.get(l.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0},oe=ce.jitterBufferMs,le=q-ce.jitterBufferEmittedCount;le>0&&(oe=1e3*(K-ce.jitterBufferDelay)/le),l.jitterBufferMs=oe,l.currentDelayMs=Math.round(oe),this.lastVideoJBDelay.set(l.ssrc,{jitterBufferDelay:K,jitterBufferEmittedCount:q,jitterBufferMs:l.currentDelayMs})}}processAudioTrackSenderStats(a,A,l){var g,C,m,y;let w=A?this.report.get(A):void 0,b=(g=(C=w==null?void 0:w.echoReturnLoss)!==null&&C!==void 0?C:a.echoReturnLoss)!==null&&g!==void 0?g:0,M=(m=(y=w==null?void 0:w.echoReturnLossEnhancement)!==null&&y!==void 0?y:a.echoReturnLossEnhancement)!==null&&m!==void 0?m:0;l.aecReturnLoss=b,l.aecReturnLossEnhancement=M}processAudioTrackReceiverStats(a,A,l){var g,C,m,y,w,b,M,k,V;let K=A?this.report.get(A):void 0,q=(g=K==null?void 0:K.removedSamplesForAcceleration)!==null&&g!==void 0?g:a.removedSamplesForAcceleration,ce=(C=K==null?void 0:K.totalSamplesReceived)!==null&&C!==void 0?C:a.totalSamplesReceived,oe=(m=K==null?void 0:K.jitterBufferDelay)!==null&&m!==void 0?m:a.jitterBufferDelay,le=(y=K==null?void 0:K.jitterBufferEmittedCount)!==null&&y!==void 0?y:a.jitterBufferEmittedCount,pe=(w=K==null?void 0:K.audioLevel)!==null&&w!==void 0?w:a==null?void 0:a.audioLevel,Se=(b=K==null?void 0:K.totalSamplesDuration)!==null&&b!==void 0?b:a==null?void 0:a.totalSamplesDuration,be=(M=K==null?void 0:K.concealedSamples)!==null&&M!==void 0?M:a.concealedSamples,Ue=(k=K==null?void 0:K.silentConcealedSamples)!==null&&k!==void 0?k:a.silentConcealedSamples,xe=(V=K==null?void 0:K.concealmentEvents)!==null&&V!==void 0?V:a.concealmentEvents;if(typeof ce=="number"&&(l.totalSamplesReceived=ce),typeof Ue=="number"&&(l.silentConcealedSamples=Ue),typeof xe=="number"&&(l.concealmentEvents=xe),typeof be=="number"&&(l.concealedSamples=be),q&&ce&&(l.accelerateRate=q/ce),oe&&le){let je=this.lastAudioJBDelay.get(l.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0},dt=je.jitterBufferMs,pt=le-je.jitterBufferEmittedCount;pt>0&&(dt=1e3*(oe-je.jitterBufferDelay)/pt),l.jitterBufferMs=Math.round(dt),this.lastAudioJBDelay.set(l.ssrc,{jitterBufferDelay:oe,jitterBufferEmittedCount:le,jitterBufferMs:l.jitterBufferMs})}l.outputLevel=pe;let Le=1920;Se&&ce&&(Le=ce/Se/50,l.receivedFrames=Math.round(ce/Le)),be&&(l.droppedFrames=Math.round(be/Le))}processRemoteInboundStats(a,A){let l=this.report.get(a);l&&(A.packetsLost=l.packetsLost,l.roundTripTime&&(A.rttMs=1e3*l.roundTripTime),l.jitter&&(A.jitterMs=1e3*l.jitter),l.timestamp&&(A.timestamp=l.timestamp))}getCodecFromCodecStats(a){let A=this.report.get(a);if(!A)return"";let l=A.mimeType.match(/\/(.*)$/);return l&&l[1]?l[1]:""}updateSendBitrate(){let a=0,A=null,l=null;this.mediaBytesSent.forEach(C=>{a+=C.diffMean()}),this.mediaBytesRetransmit.forEach(C=>{A=A===null?C.diffMean():A+C.diffMean()}),this.mediaBytesTargetEncode.forEach(C=>{l=l===null?C.diffMean():l+C.diffMean()});let g=A!==null?a-A:a;this._stats.bitrate={actualEncoded:8*g/(this.options.updateInterval/1e3),transmit:8*a/(this.options.updateInterval/1e3)},A!==null&&(this._stats.bitrate.retransmit=8*A/(this.options.updateInterval/1e3)),l!==null&&(this._stats.bitrate.targetEncoded=8*l/(this.options.updateInterval/1e3))}},$P=class extends Nf{updateStats(){return Ft.resolve()}};function MC(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:8,g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:500,C=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1e4,m=function(){let y=navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]*/i);return y&&y[0]?Number(y[0].split("/")[1]):null}();return m?m<76?new Ra(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C}):new MR(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C}):function(y){if(!window.RTCStatsReport)return!1;let w=y.getStats();return!!(w instanceof Ft||function(b){return!!b&&(typeof b=="object"||typeof b=="function")&&typeof b.then=="function"}(w))}(a)?new MR(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C}):new $P(a,{updateInterval:A,lossRateInterval:l,freezeRateLimit:g,firstVideoDecodedTimeout:C})}let n4="websdk_ng_install_id";function Of(){try{if(Ie("INSTALL_ID"))return Ie("INSTALL_ID");let a=window.localStorage.getItem(n4);return a||(a=Ln(),window.localStorage.setItem(n4,a)),Mn("INSTALL_ID",a),a}catch{return}}let Cn=function(a){if(a.match(/[0-9]+\.[0-9]+\.[0-9]+$/))return a;let A=a.match(/([0-9]+\.[0-9]+\.[0-9]+)\-([0-9]+)/);if(A&&A[1]&&A[2]){let l=A[1],g=A[2];return"".concat(l,".").concat(g)}return"4.0.0.999"}("4.24.2"),u2=function(){try{return JSON.parse("true")===!0}catch{return!0}}(),ih=function(a){return a.Default="default",a.Auto="auto",a.Relay="relay",a.SdRtn="sd-rtn",a}({}),Ti=function(){let a="us".concat("erna","me"),A="pa".concat("sswo","rd"),l=["t","s","t"];l.splice(1,0,"e");let g=l.join(""),C=[];for(let w=0;w<6;w++)C.push("1");let m=C.join(""),y={};return y[a]=g,y[A]=m,Object.assign(y,{turnServerURL:"",tcpport:3433,udpport:3478,forceturn:!1})}();window.DEFAULT_TURN_CONFIG=Ti;let vn={ENABLE_PUBLISHED_USER_LIST:!0,MAX_SUBSCRIPTION:50,SUBSCRIBE_AUDIO_FILTER_TOPN:void 0,ENABLE_PUBLISH_AUDIO_FILTER:void 0,ENABLE_USER_LICENSE_CHECK:!0,DISABLE_FEC:void 0,ENABLE_NTP_REPORT:!1,ENABLE_INSTANT_VIDEO:!1,ENABLE_USER_AUTO_REBALANCE_CHECK:!0,ENABLE_LOSSBASED_BWE:!0,ENABLE_AUT_CC:!0,FORCE_ENABLE_AUT_CC:!1,ENABLE_CC_FALLBACK:void 0,SUBSCRIBE_TWCC:!0,PUBLISH_TWCC:!1,ENABLE_SVC_DEFAULT_CODECS:["H264","VP8","VP9","AV1"],SVC:[],ENABLE_FULL_LINK_AV_SYNC:!1,SVC_MODE:null,PRE_SUB_NUM:1,ENABLE_AUT_FEEDBACK:!0,SVC_EXTENDED:["VP9"]},kR={MIN_FRAME_RATE:1,MAX_FRAME_RATE:30,MAX_THRESHOLD_FRAMERATE:30,BITRATE_MIN_THRESHOLD:100,BITRATE_MAX_THRESHOLD:100,MAX_SCALE:5,BWE_SCALE_UP_THRESHOLD:.6,BWE_SCALE_DOWN_THRESHOLD:.6,PERF_SCALE_UP_THRESHOLD:.7,PERF_SCALE_DOWN_THRESHOLD:.6,MOTION_RESOLUTION_FACTOR:.8,MOTION_BITRATE_FACTOR:.6,DETAIL_FRAMERATE_FACTOR:.8,DETAIL_BITRATE_FACTOR:.6,BALANCE_RESOLUTION_FACTOR:.9,BALANCE_FRAMERATE_FACTOR:.9,BALANCE_BITRATE_FACTOR:.6,OVERUSE_TIMES_THRESHOLD:10,UNDERUSE_TIMES_THRESHOLD:40},o4="v4.24.2-0-g002485b1-dirty(12/12/2025, 5:26:54 PM)",mi={ENABLE_EVENT_REPORT:!0,UPLOAD_LOG:!1,ENABLE_AG_ADAPTATION:!0,FORCE_AG_HIGH_FRAMERATE:!1,FORCE_SUPPORT_AG_ADAPTATION:!1,ENCODER_CONFIG_LIMIT:{},CAMERA_CAPTURE_CONFIG:void 0,ENABLE_PRELOAD:!0,NEW_ICE_RESTART:!0,ICE_RESTART_INTERVAL:1e4,RESTART_SEQUENCE:["udp_tcp_relay","relay"],FIRST_TCP_CANDIDATE:!1,FIRST_TCP_CANDIDATE_INTERVAL:1e3,TURN_DOMAIN:"edge.agora.io",TURN_DOMAINS:["edge.agora.io"],USE_TURN_IP:!0,NEW_TURN_MODE:4,NEW_FORCE_TURN:!1,USE_NEW_RENDER_FREEZE_TIME:!1,FLS_FALLBACK_TIMEOUT:3e4,RTE_DETAIL_REPORT_INTERVAL:6e4,ENCODE_EXCEPTION_TIMES:5,ENABLE_ENCODE_EXCEPTION:!0,ENCODE_EXCEPTION_VALIDATE_CODEC:["h264"],VIDEO_ENCODER_CONFIG_LIST:[{width:240,height:180},{width:320,height:240},{width:400,height:300},{width:480,height:360},{width:560,height:420},{width:640,height:480}],DELETE_NEQ_AFTER_USER_LEAVE:!0,UPDATE_RTP_CAP_IN_HOST:!1,IOS_BG_TAG:!0,IOS_AUTO_RESTART_BG_TAG:!0,IGNORE_UID_CHECK:!1,ENABLE_UP_SPS_PPS:!1,ENABLE_DOWN_SPS_PPS:!1,NO_EDGES_RETRY:!0,BUFFER_READY_FRAMES:3,FLS_SYNC_AV_PLAY_LIMIT:0,FLS_BUFFER_WAIT_TIME:1500,VOS_CONFIGURE:void 0,ENABLE_QUALITY_FALLBACK:!1,QUALITY_FALLBACK_REHEARSAL:!0,ENABLE_FLS_AV1_FIRST:!1,ENABLE_AP_MULTI_IP:!0,FLS_ENABLE_AV1_DETECT:!0,FLS_ENABLE_AV1_DECODE_DETECT:!0},zi=Ot(Ot(Ot(Ot({},mi),{},{PROCESS_ID:"",ENCRYPT_AES:!0,AREAS:["CHINA","GLOBAL"],WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-web-2.ap.sd-rtn.com","cds-ap-web-3.agora.io","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-web-2.ap.sd-rtn.com","sua-ap-web-3.agora.io","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-ap-web-1.agora.io","uap-web-2.ap.sd-rtn.com","uap-ap-web-3.agora.io","uap-web-4.ap.sd-rtn.com"],LOG_UPLOAD_SERVER:"logservice.agora.io",EVENT_REPORT_DOMAIN:"statscollector-1.agora.io",EVENT_REPORT_BACKUP_DOMAIN:"web-2.statscollector.sd-rtn.com",GATEWAY_ADDRESS:[],GATEWAY_WSS_ADDRESS:"",LIVE_STREAMING_ADDRESS:"",HTTP_CONNECT_TIMEOUT:5e3,SIGNAL_REQUEST_TIMEOUT:1e4,REPORT_STATS:!0,NOT_REPORT_EVENT:[],PING_PONG_TIME_OUT:10,WEBSOCKET_TIMEOUT_MIN:1e4,EVENT_REPORT_SEND_INTERVAL:3e3,CONFIG_DISTRIBUTE_INTERVAL:3e5,ENABLE_CONFIG_DISTRIBUTE:!0,CANDIDATE_TIMEOUT:5e3,SHOW_REPORT_INVOKER_LOG:!1,SHOW_REPORT_USER_INVOKER_LOG:!0,JOIN_EXTEND:"",PUB_EXTEND:"",SUB_EXTEND:"",FORCE_TURN:!1,TURN_ENABLE_TCP:!0,TURN_ENABLE_UDP:!0,MAX_UPLOAD_CACHE:50,UPLOAD_CACHE_INTERVAL:2e3,AJAX_REQUEST_CONCURRENT:3,REPORT_APP_SCENARIO:void 0,GATEWAY_DOMAINS:["edge.agora.io","edge.sd-rtn.com"],CONNECT_GATEWAY_WITHOUT_DOMAIN:!1,WORKER_DOMAIN:"edge.agora.io",EVENT_REPORT_RETRY:!0,CHROME_FORCE_PLAN_B:!1,AUDIO_SOURCE_VOLUME_UPDATE_INTERVAL:400,AUDIO_SOURCE_AVG_VOLUME_DURATION:3e3,AUDIO_VOLUME_INDICATION_INTERVAL:2e3,VOLUME_VOICE_WEIGHT:10,GET_VOLUME_OF_MUTED_AUDIO_TRACK:!1,STATS_UPDATE_INTERVAL:250,NORMAL_EVENT_QUEUE_CAPACITY:100,CUSTOM_REPORT:!0,CUSTOM_REPORT_LIMIT:20,PROXY_SERVER_TYPE2:"webnginx-proxy.agora.io",PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com","webrtc-cloud-proxy.agora.io"],CUSTOM_PUB_ANSWER_MODIFIER:null,CUSTOM_SUB_ANSWER_MODIFIER:null,CUSTOM_PUB_OFFER_MODIFIER:null,CUSTOM_SUB_OFFER_MODIFIER:null,DSCP_TYPE:"high",REMOVE_NEW_CODECS:!0,FRAGEMENT_LENGTH:3,WEBSOCKET_COMPRESS:!1,SIMULCAST:!1,CHECK_VIDEO_VISIBLE_INTERVAL:3e4,CHECK_LOCAL_STATS_INTERVAL:250,PROFILE_SWITCH_INTERVAL:2e3,UNSUPPORTED_VIDEO_CODEC:[],ENUMERATE_DEVICES_INTERVAL:!1,ENUMERATE_DEVICES_INTERVAL_TIME:1e4,USE_NEW_TOKEN:!1,CLOSE_AFB_FOR_LOCAL_AP:!0,JOIN_MAX_CONCURRENCY:6,JOIN_WITH_FALLBACK_SIGNAL_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE:!1,JOIN_GATEWAY_TRY_443PORT_DURATION:2e3,JOIN_GATEWAY_USE_443PORT_ONLY:!1,JOIN_GATEWAY_USE_DUAL_DOMAIN:!0,JOIN_GATEWAY_FALLBACK_PORT:443,USE_TURN_SERVER_OF_GATEWAY:!1,H264_PROFILE_LEVEL_ID:"",USE_NEW_LOG:!1,LOG_VERSION:3,MEDIA_DEVICE_CONSTRAINTS:null,ENCRYPT_PROXY_USERNAME_AND_PSW:!0,SDP_LOGGING:!1,CSP_DETECTED_HOSTNAME_LIST:["agora.io","sd-rtn.com"],REMOTE_AUDIO_TRACK_USES_WEB_AUDIO:!1,LOCAL_AUDIO_TRACK_USES_WEB_AUDIO:!1,BITRATE_ADAPTER_TYPE:"STANDARD_BITRATE",AI_DENOISER_PARAMETERS:{excludedLinks:[]},ADJUST_3A_FROM_PLUGINS:!0,RAISE_H264_BASELINE_PRIORITY:!0,FILTER_SEND_H264_BASELINE:!1,FIRST_H264_PROFILE_LEVEL_ID:"42001f",FIRST_PACKETIZATION_MODE:"",X_GOOGLE_START_BITRATE:void 0,NEW_REPORT_SERVER:!1,NEW_REPORT_SERVER_DOMAINS:["data-reporting.agora.io","data-reporting.agora.io"],VIDEO_INSPECT_WORKER_MESSAGE_LENGTH_LIMIT:3e5,VIDEO_INSPECT_INTERVAL_MINIMUM:1e3,VIDEO_INSPECT_QUALITY_RATIO:.9,VIDEO_INSPECT_WORKER_MANAGER_HOST:"edge.agora.io",VIDEO_INSPECT_WORKER_MANAGER_PORT:"",VIDEO_INSPECT_WORKER_MANAGER_WSS:"",VIDEO_INSPECT_WORKER_PORT:"",SHOW_VIDEO_INSPECT_WORKER_MESSAGE:!1,STATS_COLLECTOR_PORT:443,FORCE_TURN_TCP:!1,WEBAUDIO_INIT_OPTIONS:void 0,FILTER_VIDEO_FEC:!0,FILTER_AUDIO_FEC:!1,CHROME_DUAL_STREAM_USE_ENCODING:!0,DISABLE_DUAL_STREAM_USE_ENCODING:!1,EXTENSION_USAGE_UPLOAD_INTERVAL:1e4,ICE_RESTART:!0,FINGERPRINT:null,ENABLE_VIDEO_FRAME_CALLBACK:!0,VIDEO_FREEZE_DURATION:500,SPATIALIZER_PARAMETERS:{},UPLOAD_LOG_INTERVAL:3e3,UPLOAD_LOG_REQUEST_RETRY_INTERVAL:2e3,UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL:2e4,UPLOAD_LOG_TRY_INTERVAL_WHILE_OFF:5e3,UPLOAD_LOG_RETRY_INTERVAL_V1:1e4,UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1:200,UPLOAD_LOG_LENGTH_EACH_TIME:10,APP_TYPE:0,DISABLE_WEBAUDIO:!1,CHANNEL_MEDIA_RELAY_SERVERS:void 0,KEEP_LAST_FRAME:!0,FORWARD_P2P_CREATION:!0,SYNC_GROUP:!0,BLOCK_LOCAL_CLIENT:!1,ENABLE_AUDIO_TOPN:!1,ENABLE_AUDIO_METADATA:!1,ENABLE_AUDIO_PTS:!1,TOPN_SMOOTH_LEVEL:void 0,TOPN_NEW_SPEAKER_DELAY:void 0,TOPN_SWITCH_HOLD_MS:void 0,TOPN_AUDIO_GAIN:void 0,TOPN_SILENCE_THRESHOLD:250,AP_AREA:!0,ENABLE_ENCODED_TRANSFORM:!1,ENABLE_VIDEO_SEI:!1,IMAGE_MODERATION_WORKER_HOST:"edge.agora.io",IMAGE_MODERATION_WORKER_WSS:"",IMAGE_MODERATION_WORKER_MESSAGE_LENGTH_LIMIT:3e5,IMAGE_MODERATION_INTERVAL_MINIMUM:1e3,SHOW_IMAGE_MODERATION_WORKER_MESSAGE:!1,IMAGE_MODERATION_QUALITY_RATIO:.9,IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL:5e3,SHOW_GLOBAL_CLIENT_LIST:!1,DATASTREAM_MAX_RETRANSMITS:10,TCP_CANDIDATE_ONLY:!1,EXTERNAL_SIGNAL_REQUEST_TIMEOUT:3e3,SHOW_P2P_LOG:!1,MAX_P2P_TIMEOUT:3e4,P2P_TOKEN_INTERVAL:1e3,SHOW_DATASTREAM2_LOG:!1,RESTRICTION_SET_PLAYBACK_DEVICE:!0,USE_PURE_ENCRYPTION_MASTER_KEY:!1,ENABLE_AUDIO_RED:!1,OPUS_PTIME:void 0,AUDIO_DUPLICATE_NUM:void 0,ENABLE_ABSSENDTIME_AS_SENTTS:!0,ACCOUNT_REGISTER_RETRY_TIMEOUT:1,ACCOUNT_REGISTER_RETRY_RATIO:2,ACCOUNT_REGISTER_RETRY_TIMEOUT_MAX:6e4,ACCOUNT_REGISTER_RETRY_COUNT_MAX:1e5,AUDIO_CONTEXT:null,WEBCS_BACKUP_CONNECT_TIMEOUT:6e3,PLAYER_STATE_DEFER:2e3,SIGNAL_REQUEST_WATCH_INTERVAL:1e3,FILEPATH_LENMAX:255,DUALSTREAM_OPERATION_CHECK:!0,MEDIA_ELEMENT_EXISTS_DEPTH:3,SHIM_CANDIDATE:!1,LEAVE_MSG_TIMEOUT:2e3,STATS_FILTER:{transportId:!0,googTrackId:!0},FILTER_VIDEO_CODEC:[],SIGNAL_CHANNEL:0,TRANSMITTER_INITIAL_RTT:30,TRANSMITTER_INITIAL_RTO:30,TRANSMITTER_MAX_BATCH_ACK_COUNT:2,TRANSMITTER_MAX_RTO:500,DATACHANNEL_COMPRESS:!1,DC_JOIN_WITH_FAILBACK:4e3,DC_CONNECTION_TIMEOUT:2e3,DC_PINGPONG_INTERVAL:2e3,DC_DEBUG_LOG:!1,UNSUPPORTED_VIDEO_UPLINK_CODEC:[],UNSUPPORTED_VIDEO_DOWNLINK_CODEC:[],USE_NEW_NETWORK_CONFIG:!1,AUTO_RESET_AUDIO_ROUTE:!1,PLUGIN_INFO:[],OVERUSE_DETECTOR_PARAMS:kR,CUSTOM_ADAPTATION_DEFAULT_MODE:"",HIDE_NO_POSTER:!1,AP_CACHE_NUM:10,AP_UPDATE_INTERVAL:12e4,AP_CACHE_LIFETIME:12e4,MAX_PRELOAD_ASYNC_LENGTH:3,DISABLE_SCREEN_SHARE_REMB:!1},vn),{},{USE_CANDIDATE_FROM_AP_DETAIL:!1,AP_REQUEST_DETAIL:void 0,ENABLE_ROLE_SELECT_EDGE:!1,CLIENT_ROLE_OPTIONS:void 0,REMOTE_VIDEO_STREAM_TYPE:void 0,COMPATIBLE_SDP_EXTENSION:["gdpr_forbidden"],LIMIT_BITRATE:void 0,EXPERIMENTS:{},USE_PUB_RTX:!0,USE_SUB_RTX:!0,ENABLE_DATASTREAM_2:!1,USE_XR:!0,ENABLE_PREALLOC_PC:!1,ENABLE_PRE_SUB:!1,ENABLE_SVC:!1,ENABLE_FORCE_HLS:!1,MAX_WEBAUDIO_VOLUME:300,ENABLE_VOS_FALLBACK:!1,ENABLE_FALLBACK_TO_HLS:!1,ENABLE_PRE_RENDER:!1,FORCE_DISABLE_AUTO_SUB:!1,ENABLE_PRE_SUB_WITH_PRE_PC:!0,PRE_USE_LOCAL_CODECS:!0},{INSTALL_ID:""}),{},{K_MIN_RENDER_DELAY:66,USE_STANDARD_BITRATE_DEFAULT:!1,VIDEO_NEW_BITRATE_RATIO:void 0,VIDEO_STANDARD_BITRATE_VERSION:2,BASELINE_MORE_H264_BITRATE_RATIO:1.1,IGNORE_RTC_DEVICE_CHECK:!1,FLS_AUTOPLAY_EMITS:!1,ENABLE_DUAL_STREAM_FLAG:!1,FORBID_MODIFY_LOCAL_OFFER_SDP:!1,RESERVE_MID_1_MLINE:!1});function Mn(a,A,l){var g,C,m;Rt(g=Object.keys(zi)).call(g,a)&&(!l&&Rt(C=Object.keys(Vr)).call(C,a)||(zi[a]=A,a!=="ENABLE_VIDEO_SEI"&&a!=="ENABLE_AUDIO_TOPN"&&a!=="ENABLE_AUDIO_METADATA"&&a!=="ENABLE_AUDIO_PTS"||A!==!0||(zi.ENABLE_ENCODED_TRANSFORM=!0),a==="USE_NEW_NETWORK_CONFIG"&&A&&(m=!!A,zi.USE_NEW_NETWORK_CONFIG=m,m&&(zi.WEBCS_DOMAIN=["webrtc2-2.ap.sd-rtn.com"],zi.WEBCS_DOMAIN_BACKUP_LIST=["webrtc2-4.ap.sd-rtn.com"],zi.CDS_AP=["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],zi.ACCOUNT_REGISTER=["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],zi.EVENT_REPORT_DOMAIN="web-2.statscollector.sd-rtn.com",zi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-1.agora.io",zi.GATEWAY_DOMAINS=["edge.sd-rtn.com"])),a==="ENABLE_PRE_SUB"&&A&&(zi.ENABLE_INSTANT_VIDEO=!0,zi.ENABLE_PREALLOC_PC=!0),a==="ENABLE_SVC"&&A&&(zi.ENABLE_AUT_CC=!0),a==="NEW_FORCE_TURN"&&A&&(zi.NEW_TURN_MODE||(zi.NEW_TURN_MODE=4))))}function Ie(a){if(a==="TURN_DOMAINS"){let A=zi.TURN_DOMAINS;return Rt(A).call(A,Ie("TURN_DOMAIN"))?A:[Ie("TURN_DOMAIN")].concat(A)}return zi[a]}u2||(zi.WEBCS_DOMAIN=["ap-web-1-oversea.agora.io","ap-web-1-north-america.agora.io"],zi.WEBCS_DOMAIN_BACKUP_LIST=["ap-web-2-oversea.agora.io","ap-web-2-north-america.agora.io"],zi.PROXY_CS=["proxy-ap-web-oversea.agora.io","proxy-ap-web-america.agora.io"],zi.CDS_AP=["cds-ap-web-oversea.agora.io","cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],zi.ACCOUNT_REGISTER=["sua-ap-web-oversea.agora.io","sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],zi.UAP_AP=["uap-ap-web-oversea.agora.io","uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],zi.LOG_UPLOAD_SERVER="logservice-oversea.agora.io",zi.EVENT_REPORT_DOMAIN="statscollector-1-oversea.agora.io",zi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-2-oversea.agora.io",zi.PROXY_SERVER_TYPE3="webrtc-cloud-proxy.agora.io",zi.AREAS=["NORTH_AMERICA","OVERSEA"]);let PR=function(a){return a[a.REALTIME=1]="REALTIME",a}({}),Vr={};var Pr=function(a){return a.SET_SESSION_ID="SET_SESSION_ID",a.SET_RTE_URL="SET_RTE_URL",a.SET_RTE_SID="SET_RTE_SID",a.SET_P2P_ID="SET_P2P_id",a.SET_DC_ID="SET_DC_id",a.SET_UID="SET_UID",a.SET_INT_UID="SET_INT_UID",a.SET_PUB_ID="SET_PUB_ID",a.SET_CLOUD_PROXY_SERVER_MODE="SET_CLOUD_PROXY_SERVER_MODE",a.KEY_METRIC_CLIENT_CREATED="KEY_METRIC_CLIENT_CREATED",a.KEY_METRIC_JOIN_START="KEY_METRIC_JOIN_START",a.KEY_METRIC_PRELOAD_START="KEY_METRIC_PRELOAD_START",a.KEY_METRIC_PRELOAD_END="KEY_METRIC_PRELOAD_END",a.KEY_METRIC_JOIN_END="KEY_METRIC_JOIN_END",a.KEY_METRIC_REQUEST_AP_START="KEY_METRIC_REQUEST_AP_START",a.KEY_METRIC_REQUEST_AP_END="KEY_METRIC_REQUEST_AP_END",a.KEY_METRIC_REQUEST_SUA_END="KEY_METRIC_REQUEST_SUA_END",a.KEY_METRIC_BEFORE_CONNECT="KEY_METRIC_BEFORE_CONNECT",a.KEY_METRIC_PEER_RECEIVER="KEY_METRIC_PEER_RECEIVER",a.KEY_METRIC_SIGNAL_CONNECTED="KEY_METRIC_SIGNAL_CONNECTED",a.KEY_METRIC_JOIN_REQ="KEY_METRIC_JOIN_REQ",a.KEY_METRIC_JOIN_REP="KEY_METRIC_JOIN_REP",a.KEY_METRIC_JOIN_GATEWAY_START="KEY_METRIC_JOIN_GATEWAY_START",a.KEY_METRIC_JOIN_GATEWAY_END="KEY_METRIC_JOIN_GATEWAY_END",a.KEY_METRIC_PEER_CONNECTION_START="KEY_METRIC_PEER_CONNECTION_START",a.KEY_METRIC_PEER_CONNECTION_END="KEY_METRIC_PEER_CONNECTION_END",a.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED="KEY_METRIC_FIRST_VIDEO_FRAME_DECODED",a.KEY_METRIC_DESCRIPTION_START="KEY_METRIC_DESCRIPTION_START",a.KEY_METRIC_ICE_CONNECTION_END="KEY_METRIC_ICE_CONNECTION_END",a.KEY_METRIC_SIGNAL_CHANNEL_OPEN="KEY_METRIC_SIGNAL_CHANNEL_OPEN",a.KEY_METRIC_PUBLISH="KEY_METRIC_PUBLISH",a.KEY_METRIC_SUBSCRIBE="KEY_METRIC_SUBSCRIBE",a.RECORD_JOIN_CHANNEL_SERVICE="RECORD_JOIN_CHANNEL_SERVICE",a.RESET_JOIN_CHANNEL_SERVICE_RECORDS="RESET_JOIN_CHANNEL_SERVICE_RECORDS",a.RESET_KEY_METRICS="RESET_KEY_METRICS",a.RESET_FIRST_VIDEO_FRAME_DECODED="RESET_FIRST_VIDEO_FRAME_DECODED",a.SET_USE_P2P="SET_USE_P2P",a.SET_TRANSPORT_TYPE="SET_TRANSPORT_TYPE",a}(Pr||{});let Ss=function(a){return a.h264="h264",a.h265="h265",a.vp8="vp8",a.vp9="vp9",a.av1="av1",a}({});(function(a){a.opus="opus",a.pcma="pcma",a.pcmu="pcmu",a.g722="g722"})({});let tA=128,E2=96,$o=1e3,sn=10,q1=0;var nh=(()=>{var a={8:(g,C,m)=>{m.r(C),m.d(C,{Parser:()=>pt,Printer:()=>br,parse:()=>kt,print:()=>Wt});let y=` -`,w="".concat("\r").concat(y),b=" ",M;function k(It){return It>="0"&&It<="9"}function V(It){return It>="!"&&It<="~"}function K(It){return V(It)||It>="€"&&It<="ÿ"}function q(It){return It==="!"||It>="#"&&It<="'"||It>="*"&&It<="+"||It>="-"&&It<="."||It>="0"&&It<="9"||It>="A"&&It<="Z"||It>="^"&&It<="~"}function ce(It){return It>="1"&&It<="9"}function oe(It){return It>="A"&&It<="Z"||It>="a"&&It<="z"}function le(It){return It==="d"||It==="h"||It==="m"||It==="s"}function pe(It){return It>""&&It<" "||It>"\v"&&It<"\f"||It>""&&It<"ÿ"}function Se(It){return oe(It)||k(It)||It==="+"||It==="/"}function be(It){return k(It)||oe(It)||It==="+"||It==="/"||It==="-"||It==="_"}function Ue(It){return oe(It)||k(It)||It==="+"||It==="/"}function xe(It,ne){var ve=Object.keys(It);if(Object.getOwnPropertySymbols){var Pe=Object.getOwnPropertySymbols(It);ne&&(Pe=Pe.filter(function(Lt){return Object.getOwnPropertyDescriptor(It,Lt).enumerable})),ve.push.apply(ve,Pe)}return ve}function Le(It){for(var ne=1;ne=0&&Lt<=255)return Pe;throw new Error("Invalid decimal uchar")}consumeIP6Address(ne,ve){let Pe=this.consumeHexpart(ne,ve);return ne[Pe]===":"&&(Pe+=1,Pe=this.consumeIP4Address(ne,Pe)),Pe}consumeHexpart(ne,ve){let Pe=ve;if(ne[Pe]===":"&&ne[Pe+1]===":"){Pe+=2;try{Pe=this.consumeHexseq(ne,Pe)}catch{}return Pe}if(Pe=this.consumeHexseq(ne,Pe),ne[Pe]===":"&&ne[Pe+1]===":"){Pe+=2;try{Pe=this.consumeHexseq(ne,Pe)}catch{}return Pe}return Pe}consumeHexseq(ne,ve){let Pe=ve;for(;Pe=this.consumeHex4(ne,Pe),ne[Pe]===":"&&ne[Pe+1]!==":";)Pe+=1;return Pe}consumeHex4(ne,ve){let Pe=0;for(;Pe<4;Pe++)if(!((Lt=ne[ve+Pe])>="0"&&Lt<="9"||Lt>="a"&&Lt<="f"||Lt>="A"&&Lt<="F")){if(Pe===0)throw new Error("Invalid hex 4");break}var Lt;return ve+Pe}consumeFQDN(ne,ve){let Pe=ve;for(;k(ne[Pe])||oe(ne[Pe])||ne[Pe]==="-"||ne[Pe]===".";)Pe+=1;if(Pe-ve<4)throw new Error("Invalid FQDN");return Pe}consumeExtnAddr(ne,ve){return this.consumeOneOrMore(ne,ve,K)}consumeMulticastAddress(ne,ve,Pe){switch(Pe){case"IP4":case"ip4":return this.consumeIP4MulticastAddress(ne,ve);case"IP6":case"ip6":return this.consumeIP6MulticastAddress(ne,ve);default:try{return this.consumeFQDN(ne,ve)}catch{return this.consumeExtnAddr(ne,ve)}}}consumeIP6MulticastAddress(ne,ve){let Pe=this.consumeHexpart(ne,ve);return ne[Pe]==="/"?this.consumeInteger(ne,Pe+1):Pe}consumeIP4MulticastAddress(ne,ve){let Pe=ve+3,Lt=ne.slice(ve,Pe),Kr=parseInt(Lt);if(Kr<224||Kr>239)throw new Error("Invalid IP4 multicast address, IPv4 multicast addresses may be in the range 224.0.0.0 to 239.255.255.255.");for(let co=0;co<3;co++){if(ne[Pe]!==".")throw new Error("Invalid IP4 multicast address.");Pe+=1,Pe=this.consumeDecimalUChar(ne,Pe)}return ne[Pe]==="/"&&(Pe+=1),Pe=this.consumeTTL(ne,Pe),ne[Pe]==="/"&&(Pe=this.consumeInteger(ne,Pe)),Pe}consumeInteger(ne,ve){if(!ce(ne[ve]))throw new Error("Invalid integer.");for(ve+=1;k(ne[ve]);)ve+=1;return ve}consumeTTL(ne,ve){if(ne[ve]==="0")return ve+1;if(!ce(ne[ve]))throw new Error("Invalid TTL.");ve+=1;for(let Pe=0;Pe<2&&k(ne[ve]);Pe++)ve+=1;return ve}consumeToken(ne,ve){return this.consumeOneOrMore(ne,ve,q)}consumeTime(ne,ve){let Pe=ve;if(ne[Pe]==="0")return Pe+1;for(ce(ne[Pe])&&(Pe+=1);k(ne[Pe]);)Pe++;if(Pe-ve<10)throw new Error("Invalid time");return Pe}consumeAddress(ne,ve){return this.consumeTill(ne,ve,b)}consumeTypedTime(ne,ve){let Pe=ve;return Pe=this.consumeOneOrMore(ne,Pe,k),le(ne[Pe])?Pe+1:Pe}consumeRepeatInterval(ne,ve){if(!ce(ne[ve]))throw new Error("Invalid repeat interval");for(ve+=1;k(ne[ve]);)ve+=1;return le(ne[ve])&&(ve+=1),ve}consumePort(ne,ve){return this.consumeOneOrMore(ne,ve,k)}consume(ne,ve,Pe){for(let Lt=0;Lt=ne.length)throw new Error("consume exceeding value length");if(ne[ve+Lt]!==Pe[Lt])throw new Error("consume ".concat(Pe," failed at ").concat(Lt))}return ve+Pe.length}consumeTill(ne,ve,Pe){let Lt=ve;for(;Lt!!RA(rE).call(rE)).map(this.parseLine),this.currentLine=0;let Pe=this.parseVersion(),Lt=this.parseOrigin(),Kr=this.parseSessionName(),co=this.parseInformation(),_n=this.parseUri(),Kc=this.parseEmail(),tE=this.parsePhone(),Dt=this.parseConnection(),dd=this.parseBandWidth(),rm=this.parseTimeFields(),lc=this.parseKey(),Cp=this.parseSessionAttribute(),nu=this.parseMediaDescription();if(this.currentLine!==this.records.length)throw new Error("parsing failed, non exhaustive sdp lines.");return{version:Pe,origin:Lt,sessionName:Kr,information:co,uri:_n,emails:Kc,phones:tE,connection:Dt,bandwidths:dd,timeFields:rm,key:lc,attributes:Cp,mediaDescriptions:nu}}getCurrentRecord(){let ne=this.records[this.currentLine];if(!ne)throw new Error("Record doesn't exit.");return ne}probeEOL(ne){for(let ve=0;ve=.");let Pe=ne[0];if(ne[1]!=="=")throw new Error('Invalid sdp line, should be a single character followed by an "=" sign.');return{type:Pe,value:ne.slice(2),line:ve,cur:0}}parseSessionAttribute(){let ne=new gr;for(;this.currentLineq(Lt)&&Lt!==":"),_cur:0};ve.value[ve.cur]===":"&&(ve.cur+=1,Pe.attValue=this.extractOneOrMore(ve,pe)),ne.parse(Pe),this.currentLine++}return ne.digest()}parseMediaAttributes(ne){let ve=new li(ne);for(;this.currentLineq(Kr)&&Kr!==":"),_cur:0};Pe.value[Pe.cur]===":"&&(Pe.cur+=1,Lt.attValue=this.extractOneOrMore(Pe,pe)),ve.parse(Lt),this.currentLine++}return ve.digest()}parseKey(){let ne=this.getCurrentRecord();if(ne.type===M.KEY){if(ne.value==="prompt"||ne.value==="clear:"||ne.value==="base64:"||ne.value==="uri:")return ne.value;throw this.currentLine++,new Error("Invalid key.")}}parseZone(){let ne=this.getCurrentRecord();if(ne.type===M.ZONE_ADJUSTMENTS){let ve=[];for(;;)try{let Pe=this.extract(ne,this.consumeTime);this.consumeSpaceForRecord(ne);let Lt=!1;ne.value[ne.cur]==="-"&&(Lt=!0,ne.cur+=1);let Kr=this.extract(ne,this.consumeTypedTime);ve.push({time:Pe,typedTime:Kr,back:Lt})}catch{break}if(ve.length===0)throw new Error("Invalid zone adjustments");return this.currentLine++,ve}return[]}parseRepeat(){let ne=[];for(;;){let ve=this.getCurrentRecord();if(ve.type!==M.REPEAT)break;{let Pe=this.extract(ve,this.consumeRepeatInterval),Lt=this.parseTypedTime(ve);ne.push({repeatInterval:Pe,typedTimes:Lt}),this.currentLine++}}return ne}parseTypedTime(ne){let ve=[];for(;;)try{this.consumeSpaceForRecord(ne),ve.push(this.extract(ne,this.consumeTypedTime))}catch{break}if(ve.length===0)throw new Error("Invalid typed time.");return ve}parseTime(){let ne=this.getCurrentRecord(),ve=this.extract(ne,this.consumeTime);this.consumeSpaceForRecord(ne);let Pe=this.extract(ne,this.consumeTime);return this.currentLine++,{startTime:ve,stopTime:Pe}}parseBandWidth(){let ne=[];for(;this.currentLine2?Pe-2:0),Kr=2;Kr_n)throw new Error("error in length, should be less or equal than ".concat(_n," characters."));return ne._cur=Lt,Kr}consumeAttributeSpace(ne){if(ne.attValue[ne._cur]!==b)throw new Error("Invalid space at ".concat(ne._cur,"."));ne._cur+=1}extract(ne,ve){if(!ne.attValue)throw new Error("Nothing to extract from attValue.");for(var Pe=arguments.length,Lt=new Array(Pe>2?Pe-2:0),Kr=2;Kr=ne.attValue.length}peekChar(ne){if(!ne.attValue)throw new Error;return ne.attValue[ne._cur]}peek(ne,ve){if(!ne.attValue)throw new Error;for(let Pe=0;Peco!==b&&pe(co));Pe.push({name:Lt,value:Kr})}this.attributes.identities.push({assertionValue:ve,extensions:Pe})}parseMsidSemantic(ne){this.peekChar(ne)===b&&this.consumeAttributeSpace(ne);let ve={semantic:this.extract(ne,this.consumeToken),identifierList:[]};for(;;){try{this.consumeAttributeSpace(ne)}catch{break}if(this.peekChar(ne)==="*"){this.extract(ne,this.consume,"*"),ve.applyForAll=!0;break}{let Pe=this.extract(ne,this.consumeTill,b);ve.identifierList.push(Pe)}}this.attributes.msidSemantic=ve}}class li extends zt{constructor(ne){super(),je(this,"attributes",void 0),ne.protos.indexOf("RTP")!==-1||ne.protos.indexOf("rtp"),this.attributes={unrecognized:[],candidates:[],extmaps:[],fingerprints:[],imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[]}}parse(ne){if(this.digested)throw new Error("already digested");try{switch(ne.attField){case"extmap":this.parseExtmap(ne);break;case"setup":this.parseSetup(ne);break;case"ice-ufrag":this.parseIceUfrag(ne);break;case"ice-pwd":this.parseIcePwd(ne);break;case"ice-options":this.parseIceOptions(ne);break;case"candidate":this.parseCandidate(ne);break;case"remote-candidate":this.parseRemoteCandidate(ne);break;case"end-of-candidates":this.parseEndOfCandidates();break;case"fingerprint":this.parseFingerprint(ne);break;case"rtpmap":this.parseRtpmap(ne);break;case"ptime":this.parsePtime(ne);break;case"maxptime":this.parseMaxPtime(ne);break;case"sendrecv":case"recvonly":case"sendonly":case"inactive":this.parseDirection(ne);break;case"ssrc":this.parseSSRC(ne);break;case"fmtp":this.parseFmtp(ne);break;case"rtcp-fb":this.parseRtcpFb(ne);break;case"rtcp-mux":this.parseRTCPMux();break;case"rtcp-mux-only":this.parseRTCPMuxOnly();break;case"rtcp-rsize":this.parseRTCPRsize();break;case"rtcp":this.parseRTCP(ne);break;case"mid":this.parseMid(ne);break;case"msid":this.parseMsid(ne);break;case"imageattr":this.parseImageAttr(ne);break;case"rid":this.parseRid(ne);break;case"simulcast":this.parseSimulcast(ne);break;case"sctp-port":this.parseSctpPort(ne);break;case"max-message-size":this.parseMaxMessageSize(ne);break;case"ssrc-group":this.parseSSRCGroup(ne);break;default:ne.ignored=!0,this.attributes.unrecognized.push(ne)}}catch(ve){throw console.error("parsing media attribute ".concat(ne.attField,' error, "a=').concat(ne.attField,":").concat(ne.attValue,'"')),ve}if(!ne.ignored&&ne.attValue&&!this.atEnd(ne))throw new Error("attribute parsing error")}parseCandidate(ne){let ve=this.extractOneOrMore(ne,Se,[1,32]);this.consumeAttributeSpace(ne);let Pe=this.extractOneOrMore(ne,k,[1,5]);this.consumeAttributeSpace(ne);let Lt=this.extract(ne,this.consumeToken);this.consumeAttributeSpace(ne);let Kr=this.extractOneOrMore(ne,k,[1,10]);this.consumeAttributeSpace(ne);let co=this.extract(ne,this.consumeAddress);this.consumeAttributeSpace(ne);let _n=this.extract(ne,this.consumePort);this.consumeAttributeSpace(ne),this.extract(ne,this.consume,"typ"),this.consumeAttributeSpace(ne);let Kc={foundation:ve,componentId:Pe,transport:Lt,priority:Kr,connectionAddress:co,port:_n,type:this.extract(ne,this.consumeToken),extension:{}};for(this.peek(ne," raddr")&&(this.extract(ne,this.consume," raddr"),this.consumeAttributeSpace(ne),Kc.relAddr=this.extract(ne,this.consumeAddress)),this.peek(ne," rport")&&(this.extract(ne,this.consume," rport"),this.consumeAttributeSpace(ne),Kc.relPort=this.extract(ne,this.consumePort));this.peekChar(ne)===b;){this.consumeAttributeSpace(ne);let tE=this.extract(ne,this.consumeToken);this.consumeAttributeSpace(ne),Kc.extension[tE]=this.extractOneOrMore(ne,V)}this.attributes.candidates.push(Kc)}parseRemoteCandidate(ne){let ve=[];for(;;){let Pe=this.extractOneOrMore(ne,k,[1,5]);this.consumeAttributeSpace(ne);let Lt=this.extract(ne,this.consumeAddress);this.consumeAttributeSpace(ne);let Kr=this.extract(ne,this.consumePort);ve.push({componentId:Pe,connectionAddress:Lt,port:Kr});try{this.consumeAttributeSpace(ne)}catch{break}}this.attributes.remoteCandidatesList.push(ve)}parseEndOfCandidates(){if(this.attributes.endOfCandidates)throw new Error("must be only one line of end-of-candidates");this.attributes.endOfCandidates=!0}parseRtpmap(ne){let ve=this.extract(ne,this.consumeToken);this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill,"/");this.extract(ne,this.consume,"/");let Lt={encodingName:Pe,clockRate:this.extractOneOrMore(ne,k)};this.atEnd(ne)||this.peekChar(ne)!=="/"||(this.extract(ne,this.consume,"/"),Lt.encodingParameters=parseInt(this.extract(ne,this.consumeTill),10));let Kr=this.attributes.payloads.find(co=>co.payloadType===parseInt(ve,10));Kr?Kr.rtpMap=Lt:this.attributes.payloads.push({payloadType:parseInt(ve,10),rtpMap:Lt,rtcpFeedbacks:[]})}parsePtime(ne){if(this.attributes.ptime)throw new Error("must be only one line of ptime");this.attributes.ptime=this.extract(ne,this.consumeTill)}parseMaxPtime(ne){if(this.attributes.maxPtime)throw new Error("must be only one line of ptime");this.attributes.maxPtime=this.extract(ne,this.consumeTill)}parseDirection(ne){if(this.attributes.direction)throw new Error("must be only one line of direction info");this.attributes.direction=ne.attField}parseSSRC(ne){let ve=this.extractOneOrMore(ne,k);this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill,":"),Lt;this.peekChar(ne)===":"&&(this.extract(ne,this.consume,":"),Lt=this.extract(ne,this.consumeTill));let Kr=this.attributes.ssrcs.find(co=>co.ssrcId===parseInt(ve,10));Kr?Kr.attributes[Pe]=Lt:this.attributes.ssrcs.push({ssrcId:parseInt(ve,10),attributes:{[Pe]:Lt}})}parseFmtp(ne){let ve=this.extract(ne,this.consumeTill,b);this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill),Lt={};Pe.split(";").forEach(co=>{let[_n,Kc]=co.split("=");_n=RA(_n).call(_n);let tE=typeof Kc=="string"?RA(Kc).call(Kc):null;typeof _n=="string"&&_n.length>0&&(Lt[_n]=tE)});let Kr=this.attributes.payloads.find(co=>co.payloadType===parseInt(ve,10));Kr?Kr.fmtp={parameters:Lt}:this.attributes.payloads.push({payloadType:parseInt(ve,10),rtcpFeedbacks:[],fmtp:{parameters:Lt}})}parseFmtParameters(ne){let ve={},Pe=this.extract(ne,this.consumeTill,"=");ne._cur++;let Lt=this.extract(ne,this.consumeTill,";");for(ve[Pe]=Lt;ne.attValue[ne._cur]===";";){let Kr=this.extract(ne,this.consumeTill,"=");ne._cur++;let co=this.extract(ne,this.consumeTill,";");ve[Kr]=co}return ve}parseRtcpFb(ne){let ve="";ve=this.peekChar(ne)==="*"?this.extract(ne,this.consume,"*"):this.extract(ne,this.consumeTill,b),this.consumeAttributeSpace(ne);let Pe=this.extract(ne,this.consumeTill,b),Lt;if(Pe==="trr-int")Lt={type:Pe,interval:this.extract(ne,this.consumeTill)};else{let Kr={type:Pe};this.peekChar(ne)===b&&(this.consumeAttributeSpace(ne),Kr.parameter=this.extract(ne,this.consumeToken),this.peekChar(ne)===b&&(Kr.additional=this.extract(ne,this.consumeTill))),Lt=Kr}if(ve==="*")this.attributes.rtcpFeedbackWildcards.push(Lt);else{let Kr=this.attributes.payloads.find(co=>co.payloadType===parseInt(ve,10));Kr?Kr.rtcpFeedbacks.push(Lt):this.attributes.payloads.push({payloadType:parseInt(ve,10),rtcpFeedbacks:[Lt]})}}parseRTCPMux(){if(this.attributes.rtcpMux)throw new Error("must be single line of rtcp-mux");this.attributes.rtcpMux=!0}parseRTCPMuxOnly(){if(this.attributes.rtcpMuxOnly)throw new Error("must be single line of rtcp-only");this.attributes.rtcpMuxOnly=!0}parseRTCPRsize(){if(this.attributes.rtcpRsize)throw new Error("must be single line of rtcp-rsize");this.attributes.rtcpRsize=!0}parseRTCP(ne){if(this.attributes.rtcp)throw new Error("must be single line of rtcp");let ve={port:this.extract(ne,this.consumePort)};this.peekChar(ne)===b&&(this.consumeAttributeSpace(ne),ve.netType=this.extractOneOrMore(ne,q),this.consumeAttributeSpace(ne),ve.addressType=this.extractOneOrMore(ne,q),this.consumeAttributeSpace(ne),ve.address=this.extract(ne,this.consumeAddress)),this.attributes.rtcp=ve}parseMsid(ne){let ve={id:this.extractOneOrMore(ne,q,[1,64])};this.peekChar(ne)===b&&(this.consumeAttributeSpace(ne),ve.appdata=this.extractOneOrMore(ne,q,[1,64])),this.attributes.msids.push(ve)}parseImageAttr(ne){this.attributes.imageattr.push(ne.attValue)}parseRid(ne){let ve=this.extractOneOrMore(ne,Lt=>oe(Lt)||k(Lt)||Lt==="_"||Lt==="-");this.consumeAttributeSpace(ne);let Pe={id:ve,direction:this.extract(ne,this.consumeToken),params:[]};if(this.peekChar(ne)===b){if(this.consumeAttributeSpace(ne),this.peek(ne,"pt=")){this.extract(ne,this.consume,"pt=");let Lt=[];for(;;){let Kr=this.extract(ne,this.consumeToken);Lt.push(Kr);try{this.extract(ne,this.consume,",")}catch{break}}Pe.payloads=Lt,this.peekChar(ne)===b&&this.extract(ne,this.consume,b)}for(;;){let Lt=this.extract(ne,this.consumeToken);switch(Lt){case"depend":{let Kr={type:Lt,rids:this.extract(ne,this.consume,"=").split(",")};Pe.params.push(Kr);break}default:{let Kr={type:Lt};this.peekChar(ne)==="="&&(this.extract(ne,this.consume,"="),Kr.val=this.extract(ne,this.consumeTill,";")),Pe.params.push(Kr)}}try{this.extract(ne,this.consume,";")}catch{break}}}this.attributes.rids.push(Pe)}parseSimulcast(ne){if(this.attributes.simulcast)throw new Error("must be single line of simulcast");this.attributes.simulcast=ne.attValue,this.extract(ne,this.consumeTill)}parseSctpPort(ne){this.attributes.sctpPort=this.extractOneOrMore(ne,k,[1,5])}parseMaxMessageSize(ne){this.attributes.maxMessageSize=this.extractOneOrMore(ne,k,[1,void 0])}digest(){return this.digested=!0,this.attributes}parseMid(ne){this.attributes.mid=this.extract(ne,this.consumeToken)}parseSSRCGroup(ne){let ve=this.extract(ne,this.consumeToken),Pe=[];for(;;)try{this.consumeAttributeSpace(ne);let Lt=this.extract(ne,this.consumeInteger);Pe.push(parseInt(Lt,10))}catch{break}this.attributes.ssrcGroups.push({semantic:ve,ssrcIds:Pe})}}function ii(It,ne,ve){return ne in It?Object.defineProperty(It,ne,{value:ve,enumerable:!0,configurable:!0,writable:!0}):It[ne]=ve,It}class br{constructor(){ii(this,"eol",w)}print(ne,ve){let Pe="";return ve&&(this.eol=ve),Pe+=this.printVersion(ne.version),Pe+=this.printOrigin(ne.origin),Pe+=this.printSessionName(ne.sessionName),Pe+=this.printInformation(ne.information),Pe+=this.printUri(ne.uri),Pe+=this.printEmail(ne.emails),Pe+=this.printPhone(ne.phones),Pe+=this.printConnection(ne.connection),Pe+=this.printBandwidth(ne.bandwidths),Pe+=this.printTimeFields(ne.timeFields),Pe+=this.printKey(ne.key),Pe+=this.printSessionAttributes(ne.attributes),Pe+=this.printMediaDescription(ne.mediaDescriptions),Pe}printVersion(ne){return"v=".concat(ne).concat(this.eol)}printOrigin(ne){return"o=".concat(ne.username," ").concat(ne.sessId," ").concat(ne.sessVersion," ").concat(ne.nettype," ").concat(ne.addrtype," ").concat(ne.unicastAddress).concat(this.eol)}printSessionName(ne){return ne?"s=".concat(ne).concat(this.eol):""}printInformation(ne){return ne?"i=".concat(ne).concat(this.eol):""}printUri(ne){return ne?"u=".concat(ne).concat(this.eol):""}printEmail(ne){let ve="";for(let Pe of ne)ve+="e=".concat(Pe).concat(this.eol);return ve}printPhone(ne){let ve="";for(let Pe of ne)ve+="e=".concat(Pe).concat(this.eol);return ve}printConnection(ne){return ne?"c=".concat(ne.nettype," ").concat(ne.addrtype," ").concat(ne.address).concat(this.eol):""}printBandwidth(ne){let ve="";for(let Pe of ne)ve+="b=".concat(Pe.bwtype,":").concat(Pe.bandwidth).concat(this.eol);return ve}printTimeFields(ne){let ve="";for(let Pe of ne){ve+="t=".concat(Pe.time.startTime," ").concat(Pe.time.startTime).concat(this.eol);for(let Lt of Pe.repeats)ve+="r=".concat(Lt.repeatInterval," ").concat(Lt.typedTimes.join(" ")).concat(this.eol);Pe.zoneAdjustments&&(ve+="z=",ve+="z=".concat(Pe.zoneAdjustments.map(Lt=>"".concat(Lt.time," ").concat(Lt.back?"-":""," ").concat(Lt.typedTime)).join(" ")).concat(this.eol),ve+=this.eol)}return ve}printKey(ne){return ne?"k=".concat(ne).concat(this.eol):""}printAttributes(ne){let ve="";for(let Pe of ne)ve+="a=".concat(Pe.attField).concat(Pe.attValue?":".concat(Pe.attValue):"").concat(this.eol);return ve}printMediaDescription(ne){let ve="";for(let Pe of ne)ve+=this.printMedia(Pe.media),ve+=this.printInformation(Pe.information),ve+=this.printConnections(Pe.connections),ve+=this.printBandwidth(Pe.bandwidths),ve+=this.printKey(Pe.key),ve+=this.printMediaAttributes(Pe);return ve}printConnections(ne){let ve="";for(let Pe of ne)ve+=this.printConnection(Pe);return ve}printMedia(ne){return"m=".concat(ne.mediaType," ").concat(ne.port," ").concat(ne.protos.join("/")," ").concat(ne.fmts.join(" ")).concat(this.eol)}printSessionAttributes(ne){return new Hn(this.eol).print(ne)}printMediaAttributes(ne){return new ut(this.eol).print(ne)}}class Zi{constructor(ne){ii(this,"eol",void 0),this.eol=ne}printIceUfrag(ne){return ne===void 0?"":"a=ice-ufrag:".concat(ne).concat(this.eol)}printIcePwd(ne){return ne===void 0?"":"a=ice-pwd:".concat(ne).concat(this.eol)}printIceOptions(ne){return ne===void 0?"":"a=ice-options:".concat(ne.join(b)).concat(this.eol)}printFingerprints(ne){return ne.length>0?ne.map(ve=>"a=fingerprint:".concat(ve.hashFunction).concat(b).concat(ve.fingerprint)).join(this.eol)+this.eol:""}printExtmap(ne){return ne.map(ve=>"a=extmap:".concat(ve.entry).concat(ve.direction?"/".concat(ve.direction):"").concat(b).concat(ve.extensionName).concat(ve.extensionAttributes?"".concat(b).concat(ve.extensionAttributes):"").concat(this.eol)).join("")}printSetup(ne){return ne===void 0?"":"a=setup:".concat(ne).concat(this.eol)}printUnrecognized(ne){return ne.map(ve=>"a=".concat(ve.attField).concat(ve.attValue?":".concat(ve.attValue):"").concat(this.eol)).join("")}}class Hn extends Zi{print(ne){let ve="";return ve+=this.printGroups(ne.groups),ve+=this.printMsidSemantic(ne.msidSemantic),ve+=this.printIceLite(ne.iceLite),ve+=this.printIceUfrag(ne.iceUfrag),ve+=this.printIcePwd(ne.icePwd),ve+=this.printIceOptions(ne.iceOptions),ve+=this.printFingerprints(ne.fingerprints),ve+=this.printSetup(ne.setup),ve+=this.printTlsId(ne.tlsId),ve+=this.printIdentity(ne.identities),ve+=this.printExtmap(ne.extmaps),ve+=this.printUnrecognized(ne.unrecognized),ve}printGroups(ne){let ve="";return ne.length>0&&(ve+=ne.map(Pe=>"a=group:".concat(Pe.semantic).concat(Pe.identificationTag.map(Lt=>"".concat(b).concat(Lt)).join("")).concat(this.eol)).join("")),ve}printIceLite(ne){return ne===void 0?"":"a=ice-lite"+this.eol}printTlsId(ne){return ne?"a=tls-id:".concat(ne).concat(this.eol):""}printIdentity(ne){return ne.length===0?"":ne.map(ve=>"a=identity:".concat(ve.assertionValue).concat(ve.extensions.map(Pe=>"".concat(b).concat(Pe.name).concat(Pe.value?"=".concat(Pe.value):"")))).join(this.eol)+this.eol}printMsidSemantic(ne){if(!ne)return"";let ve="a=msid-semantic:".concat(ne.semantic);return ne.applyForAll?ve+="".concat(b,"*"):ne.identifierList.length>0&&(ve+=ne.identifierList.map(Pe=>"".concat(b).concat(Pe))),ve+this.eol}}class ut extends Zi{print(ne){let ve=ne.attributes,Pe="";return Pe+=this.printRTCP(ve.rtcp),Pe+=this.printIceUfrag(ve.iceUfrag),Pe+=this.printIcePwd(ve.icePwd),Pe+=this.printIceOptions(ve.iceOptions),Pe+=this.printCandidates(ve.candidates),Pe+=this.printRemoteCandidatesList(ve.remoteCandidatesList),Pe+=this.printEndOfCandidates(ve.endOfCandidates),Pe+=this.printFingerprints(ve.fingerprints),Pe+=this.printSetup(ve.setup),Pe+=this.printMid(ve.mid),Pe+=this.printExtmap(ve.extmaps),Pe+=this.printRTPRelated(ve),Pe+=this.printPtime(ve.ptime),Pe+=this.printMaxPtime(ve.maxPtime),Pe+=this.printDirection(ve.direction),Pe+=this.printSSRCGroups(ve.ssrcGroups),Pe+=this.printSSRC(ve.ssrcs),Pe+=this.printRTCPMux(ve.rtcpMux),Pe+=this.printRTCPMuxOnly(ve.rtcpMuxOnly),Pe+=this.printRTCPRsize(ve.rtcpRsize),Pe+=this.printMSId(ve.msids),Pe+=this.printImageattr(ve.imageattr),Pe+=this.printRid(ve.rids),Pe+=this.printSimulcast(ve.simulcast),Pe+=this.printSCTPPort(ve.sctpPort),Pe+=this.printMaxMessageSize(ve.maxMessageSize),Pe+=this.printUnrecognized(ve.unrecognized),Pe}printCandidates(ne){return ne.map(ve=>"a=candidate:".concat(ve.foundation).concat(b).concat(ve.componentId).concat(b).concat(ve.transport).concat(b).concat(ve.priority).concat(b).concat(ve.connectionAddress).concat(b).concat(ve.port).concat(b,"typ").concat(b).concat(ve.type).concat(ve.relAddr?"".concat(b,"raddr").concat(b).concat(ve.relAddr):"").concat(ve.relPort?"".concat(b,"rport").concat(b).concat(ve.relPort):"").concat(Object.keys(ve.extension).map(Pe=>"".concat(b).concat(Pe).concat(b).concat(ve.extension[Pe])).join("")).concat(this.eol)).join("")}printRemoteCandidatesList(ne){return ne.map(ve=>"a=remote-candidates:".concat(ve.join(b)).concat(this.eol)).join("")}printEndOfCandidates(ne){return ne===void 0?"":"a=end-of-candidates"+this.eol}printRTPRelated(ne){if(!ne.payloads)return"";let ve=ne.payloads,Pe="";Pe+=ne.rtcpFeedbackWildcards.map(Lt=>this.printRTCPFeedback("*",Lt)).join("");for(let Lt of ve)Pe+=this.printRtpMap(Lt.payloadType,Lt.rtpMap),Pe+=this.printFmtp(Lt.payloadType,Lt.fmtp),Pe+=Lt.rtcpFeedbacks.map(Kr=>this.printRTCPFeedback(Lt.payloadType,Kr)).join("");return Pe}printFmtp(ne,ve){if(!ve)return"";let Pe=Object.keys(ve.parameters);return Pe.length===1&&ve.parameters[Pe[0]]===null?"a=fmtp:".concat(ne).concat(b).concat(Pe[0]).concat(this.eol):"a=fmtp:".concat(ne).concat(b).concat(Object.keys(ve.parameters).map(Lt=>"".concat(Lt,"=").concat(ve.parameters[Lt])).join(";")).concat(this.eol)}printRtpMap(ne,ve){return ve?"a=rtpmap:".concat(ne).concat(b).concat(ve.encodingName,"/").concat(ve.clockRate).concat(ve.encodingParameters?"/".concat(ve.encodingParameters):"").concat(this.eol):""}printRTCPFeedback(ne,ve){let Pe="a=rtcp-fb:".concat(ne).concat(b),Lt=ve;return Lt.type==="trr-int"?Pe+="ttr-int".concat(b).concat(Lt.interval):(Pe+="".concat(Lt.type),Lt.parameter&&(Pe+="".concat(b).concat(Lt.parameter),Lt.additional&&(Pe+="".concat(b).concat(Lt.additional)))),Pe+this.eol}printPtime(ne){return ne===void 0?"":"a=ptime:".concat(ne).concat(this.eol)}printMaxPtime(ne){return ne===void 0?"":"a=maxptime:".concat(ne).concat(this.eol)}printDirection(ne){return ne===void 0?"":"a=".concat(ne).concat(this.eol)}printSSRC(ne){return ne.map(ve=>Object.keys(ve.attributes).map(Pe=>"a=ssrc:".concat(ve.ssrcId.toString(10)).concat(b).concat(Pe).concat(ve.attributes[Pe]?":".concat(ve.attributes[Pe]):"").concat(this.eol)).join("")).join("")}printRTCPMux(ne){return ne===void 0?"":"a=rtcp-mux".concat(this.eol)}printRTCPMuxOnly(ne){return ne===void 0?"":"a=rtcp-mux-only".concat(this.eol)}printRTCPRsize(ne){return ne===void 0?"":"a=rtcp-rsize".concat(this.eol)}printRTCP(ne){if(ne===void 0)return"";let ve="a=rtcp:".concat(ne.port);return ne.netType&&(ve+="".concat(b).concat(ne.netType)),ne.addressType&&(ve+="".concat(b).concat(ne.addressType)),ne.address&&(ve+="".concat(b).concat(ne.address)),ve+this.eol}printMSId(ne){return ne.map(ve=>"a=msid:".concat(ve.id).concat(ve.appdata?"".concat(b).concat(ve.appdata):"").concat(this.eol)).join("")}printImageattr(ne){return ne.map(ve=>"a=imageattr:".concat(ve).concat(this.eol)).join("")}printRid(ne){return ne.map(ve=>{let Pe="a=rid:".concat(ve.id).concat(b).concat(ve.direction);return ve.payloads&&(Pe+="".concat(b,"pt=").concat(ve.payloads.join(","))),ve.params.length>0&&(Pe+="".concat(b).concat(ve.params.map(Lt=>Lt.type==="depend"?"depend=".concat(Lt.rids.join(",")):"".concat(Lt.type,"=").concat(Lt.val)).join(";"))),Pe+this.eol}).join("")}printSimulcast(ne){return ne===void 0?"":"a=simulcast:".concat(ne).concat(this.eol)}printSCTPPort(ne){return ne===void 0?"":"a=sctp-port:".concat(ne).concat(this.eol)}printMaxMessageSize(ne){return ne===void 0?"":"a=max-message-size:".concat(ne).concat(this.eol)}printMid(ne){return ne===void 0?"":"a=mid:".concat(ne).concat(this.eol)}printSSRCGroups(ne){return ne.map(ve=>"a=ssrc-group:".concat(ve.semantic).concat(ve.ssrcIds.map(Pe=>"".concat(b).concat(Pe.toString(10))).join("")).concat(this.eol)).join("")}}function kt(It){return new pt().parse(It)}function Wt(It,ne){return new br().print(It,ne)}}},A={};function l(g){if(A[g])return A[g].exports;var C=A[g]={exports:{}};return a[g](C,C.exports,l),C.exports}return l.d=(g,C)=>{for(var m in C)l.o(C,m)&&!l.o(g,m)&&Object.defineProperty(g,m,{enumerable:!0,get:C[m]})},l.o=(g,C)=>Object.prototype.hasOwnProperty.call(g,C),l.r=g=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(g,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(g,"__esModule",{value:!0})},l(8)})();function ki(a){return nh.parse(a)}function ea(a,A){return nh.print(a,A)}var ZP=Cc("Array","keys"),s4=pE,VJ=ts,KJ=j,UR=ZP,oh=Array.prototype,xR={DOMTokenList:!0,NodeList:!0},go=function(a){var A=a.keys;return a===oh||KJ(oh,a)&&A===oh.keys||VJ(xR,s4(a))?UR:A},Hs=I(go);function ko(a,A,l){return(A=function(g){var C=function(m,y){if(typeof m!="object"||!m)return m;var w=m[Symbol.toPrimitive];if(w!==void 0){var b=w.call(m,"string");if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(m)}(g);return typeof C=="symbol"?C:C+""}(A))in a?Object.defineProperty(a,A,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[A]=l,a}function vg(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Yr(a){for(var A=1;A]+)(>|$)/g,function(b,M,k){if(k==="")return b;var V=y[M];return Array.isArray(V)?"$"+V.join("$"):typeof V=="number"?"$"+V:""}))}if(typeof m=="function"){var w=this;return a[Symbol.replace].call(this,C,function(){var b=arguments;return typeof b[b.length-1]!="object"&&(b=[].slice.call(b)).push(g(b,w)),m.apply(this,b)})}return a[Symbol.replace].call(this,C,m)},FR.apply(this,arguments)}let a4=new class extends io{constructor(){super(...arguments),ko(this,"currentUploadLogID",0)}reportLogUploadError(a){let{errorRange:A}=a;A[A.length-1]&&A[A.length-1]>this.currentUploadLogID&&(this.currentUploadLogID=A[A.length-1],this.emit("REPORT_LOG_UPLOAD",a))}};class vu{constructor(A){ko(this,"logger",void 0),ko(this,"prefixLists",[]),this.logger=A}debug(){for(var A=arguments.length,l=new Array(A),g=0;g{for(let A in so)if(Object.prototype.hasOwnProperty.call(so,A)&&so[A]===a)return A;return"DEFAULT"},X=new class{constructor(){ko(this,"proxyServerURL",void 0),ko(this,"logLevel",so.DEBUG),ko(this,"uploadState","collecting"),ko(this,"uploadLogWaitingList",[]),ko(this,"uploadLogUploadingList",[]),ko(this,"uploadErrorCount",0),ko(this,"currentLogID",0),ko(this,"url",void 0),ko(this,"extLog",(a,A)=>{this.appendLogToWaitingList(a,...A)})}debug(){for(var a=arguments.length,A=new Array(a),l=0;l{this.log(...A)},Date.now()-un);let g=Math.max(0,Math.min(4,A[0]));if(A[0]=GR()+" Agora-SDK [".concat(Pd(g),"]:"),this.appendLogToWaitingList(g,...A),g{this.uploadLog(...A)},Date.now()-un);let g=Math.max(0,Math.min(4,A[0]));A[0]=GR()+" Agora-SDK [".concat(Pd(g),"]:"),this.appendLogToWaitingList(g,...A)}appendLogToWaitingList(a){if(!Ie("UPLOAD_LOG"))return;for(var A=arguments.length,l=new Array(A>1?A-1:0),g=1;g{typeof m=="object"&&(m=JSON.stringify(m)),C+="".concat(m," ")}),this.uploadLogWaitingList.push({payload_str:C,log_level:a,log_item_id:this.currentLogID++}),this.uploadState==="uploading"&&this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}startUpload(){this.uploadState="uploading",this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}async uploadLogs(){let a=this.uploadLogUploadingList,A={sdk_version:Cn,process_id:Ie("PROCESS_ID"),payload:JSON.stringify(a)};return jl(async()=>{let l=await vA.post(this.url||(this.proxyServerURL?"https://".concat(this.proxyServerURL,"/ls/?h=").concat(Ie("LOG_UPLOAD_SERVER"),"&p=443&d=upload/v1"):"https://".concat(Ie("LOG_UPLOAD_SERVER"),"/upload/v1")),A,{responseType:"text"});if(l.data!=="OK"){let g=new Error("unexpected upload log response");throw g.response=l,g}},()=>(this.uploadLogUploadingList=[],!1),l=>{let g={status:-1,message:l.message,errorRange:a.map(C=>C.log_item_id)};return l.response?(g.status=l.response.status,g.data=l.response.data,g.headers=l.response.headers):l.request&&(g.status=l.request.status),a4.reportLogUploadError(g),!0},{timeout:Ie("UPLOAD_LOG_REQUEST_RETRY_INTERVAL"),maxRetryTimeout:Ie("UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL")})}uploadLogInterval(){this.uploadLogUploadingList.length===0&&this.uploadLogWaitingList.length===0||(this.uploadLogUploadingList.length===0&&(this.uploadLogUploadingList=this.uploadLogWaitingList.splice(0,Ie("UPLOAD_LOG_LENGTH_EACH_TIME"))),this.uploadLogs().then(()=>{this.uploadErrorCount=0,this.uploadLogWaitingList.length>0&&window.setTimeout(()=>this.uploadLogInterval(),Ie("UPLOAD_LOG_INTERVAL"))}).catch(a=>{this.uploadErrorCount+=1,this.uploadErrorCount<2?window.setTimeout(()=>this.uploadLogInterval(),Ie("UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1")):window.setTimeout(()=>this.uploadLogInterval(),Ie("UPLOAD_LOG_RETRY_INTERVAL_V1"))}))}};var A4;function tU(a){return Tr(a.reportId,"params.reportId",0,100,!1),Tr(a.category,"params.category",0,100,!1),Tr(a.event,"params.event",0,100,!1),Tr(a.label,"params.label",0,100,!1),Rn(a.value,"params.value",Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,!1),!0}(A4={}).FREE="free",A4.UPLOADING="uploading",function(a){a[a.MISC=0]="MISC",a[a.INTERNAL_EVENT=1]="INTERNAL_EVENT",a[a.PUBLIC_EVENT=2]="PUBLIC_EVENT",a[a.WEB_EVENT=3]="WEB_EVENT",a[a.INTERNAL_API=4]="INTERNAL_API",a[a.WEB_API=5]="WEB_API",a[a.PUBLIC_API=6]="PUBLIC_API"}({});let rU={sid:"",lts:0,success:null,cname:null,uid:null,peer:null,cid:null,elapse:null,extend:null,vid:0},Cs=function(a){return a.PUBLISH="publish",a.SUBSCRIBE="subscribe",a.WS_COMPRESSOR_INIT="ws_compressor_init",a.SESSION_INIT="session_init",a.JOIN_CHOOSE_SERVER="join_choose_server",a.RTE_DETAIL="rte_detail_stats",a.REQ_USER_ACCOUNT="req_user_account",a.JOIN_GATEWAY="join_gateway",a.REJOIN_GATEWAY="rejoin_gateway",a.STREAM_SWITCH="stream_switch",a.REQUEST_PROXY_WORKER_MANAGER="request_proxy_worker_manager",a.REQUEST_PROXY_APPCENTER="request_proxy_appcenter",a.FIRST_VIDEO_RECEIVED="first_video_received",a.FIRST_AUDIO_RECEIVED="first_audio_received",a.FIRST_VIDEO_DECODE="first_video_decode",a.FIRST_AUDIO_DECODE="first_audio_decode",a.XLA_PEER_FIRST_VIDEO_FRAME="xla_peer_first_video_frame",a.ON_ADD_AUDIO_STREAM="on_add_audio_stream",a.ON_ADD_VIDEO_STREAM="on_add_video_stream",a.ON_UPDATE_STREAM="on_update_stream",a.ON_REMOVE_STREAM="on_remove_stream",a.USER_ANALYTICS="req_user_analytics",a.PC_STATS="pc_stats",a.UPDATE_REMOTE_RTPCAPABILITIES="update_remote_rtpCapabilities",a.AB_TEST="ab_test",a}({}),Eo=function(a){return a.SESSION="io.agora.pb.Wrtc.Session",a.JOIN_CHOOSE_SERVER="io.agora.pb.Wrtc.JoinChooseServer",a.RTE_DETAIL="io.agora.pb.Wrtc.RteDetailStats",a.REQ_USER_ACCOUNT="io.agora.pb.Wrtc.ReqUserAccount",a.JOIN_GATEWAY="io.agora.pb.Wrtc.JoinGateway",a.RE_JOIN_GATEWAY="io.agora.pb.Wrtc.ReJoinGateway",a.PUBLISH="io.agora.pb.Wrtc.Publish",a.SUBSCRIBE="io.agora.pb.Wrtc.Subscribe",a.WS_COMPRESSOR_INIT="io.agora.pb.Wrtc.WsCompressorInit",a.STREAM_SWITCH="io.agora.pb.Wrtc.StreamSwitch",a.AUDIO_SENDING_STOPPED="io.agora.pb.Wrtc.AudioSendingStopped",a.VIDEO_SENDING_STOPPED="io.agora.pb.Wrtc.VideoSendingStopped",a.REQUEST_PROXY_APPCENTER="io.agora.pb.Wrtc.RequestProxyAppCenter",a.REQUEST_PROXY_WORKER_MANAGER="io.agora.pb.Wrtc.RequestProxyWorkerManager",a.API_INVOKE="io.agora.pb.Wrtc.ApiInvoke",a.FIRST_VIDEO_RECEIVED="io.agora.pb.Wrtc.FirstVideoReceived",a.FIRST_AUDIO_RECEIVED="io.agora.pb.Wrtc.FirstAudioReceived",a.FIRST_VIDEO_DECODE="io.agora.pb.Wrtc.FirstVideoDecode",a.FIRST_AUDIO_DECODE="io.agora.pb.Wrtc.FirstAudioDecode",a.XLA_PEER_FIRST_VIDEO_FRAME="io.agora.pb.Wrtc.XLAPeerFirstVideoFrame",a.ON_ADD_AUDIO_STREAM="io.agora.pb.Wrtc.OnAddAudioStream",a.ON_ADD_VIDEO_STREAM="io.agora.pb.Wrtc.OnAddVideoStream",a.ON_UPDATE_STREAM="io.agora.pb.Wrtc.OnUpdateStream",a.ON_REMOVE_STREAM="io.agora.pb.Wrtc.OnRemoveStream",a.JOIN_CHANNEL_TIMEOUT="io.agora.pb.Wrtc.JoinChannelTimeout",a.PEER_PUBLISH_STATUS="io.agora.pb.Wrtc.PeerPublishStatus",a.WORKER_EVENT="io.agora.pb.Wrtc.WorkerEvent",a.AP_WORKER_EVENT="io.agora.pb.Wrtc.APWorkerEvent",a.JOIN_WEB_PROXY_AP="io.agora.pb.Wrtc.JoinWebProxyAP",a.WEBSOCKET_QUIT="io.agora.pb.Wrtc.WebSocketQuit",a.USER_ANALYTICS="io.agora.pb.Wrtc.UserAnalytics",a.AUTOPLAY_FAILED="io.agora.pb.Wrtc.AutoplayFailed",a.PC_STATS="io.agora.pb.Wrtc.PCStats",a.UPDATE_REMOTE_RTPCAPABILITIES="io.agora.pb.Wrtc.UpdateRemoteRTPCapabilities",a.AB_TEST="io.agora.pb.Wrtc.ABTest",a}({});(function(a){a[a.WORKER_EVENT=156]="WORKER_EVENT",a[a.AP_WORKER_EVENT=160]="AP_WORKER_EVENT"})({});let kC=function(a){return a[a.SESSION=26]="SESSION",a[a.JOIN_CHOOSE_SERVER=27]="JOIN_CHOOSE_SERVER",a[a.REQ_USER_ACCOUNT=196]="REQ_USER_ACCOUNT",a[a.JOIN_GATEWAY=28]="JOIN_GATEWAY",a[a.PUBLISH=30]="PUBLISH",a[a.SUBSCRIBE=29]="SUBSCRIBE",a[a.WS_COMPRESSOR_INIT=9430]="WS_COMPRESSOR_INIT",a[a.STREAM_SWITCH=32]="STREAM_SWITCH",a[a.AUDIO_SENDING_STOPPED=33]="AUDIO_SENDING_STOPPED",a[a.VIDEO_SENDING_STOPPED=34]="VIDEO_SENDING_STOPPED",a[a.REQUEST_PROXY_APPCENTER=35]="REQUEST_PROXY_APPCENTER",a[a.REQUEST_PROXY_WORKER_MANAGER=36]="REQUEST_PROXY_WORKER_MANAGER",a[a.API_INVOKE=41]="API_INVOKE",a[a.FIRST_VIDEO_RECEIVED=348]="FIRST_VIDEO_RECEIVED",a[a.FIRST_AUDIO_RECEIVED=349]="FIRST_AUDIO_RECEIVED",a[a.FIRST_VIDEO_DECODE=350]="FIRST_VIDEO_DECODE",a[a.FIRST_AUDIO_DECODE=351]="FIRST_AUDIO_DECODE",a[a.ON_ADD_AUDIO_STREAM=352]="ON_ADD_AUDIO_STREAM",a[a.ON_ADD_VIDEO_STREAM=353]="ON_ADD_VIDEO_STREAM",a[a.ON_UPDATE_STREAM=356]="ON_UPDATE_STREAM",a[a.ON_REMOVE_STREAM=355]="ON_REMOVE_STREAM",a[a.JOIN_CHANNEL_TIMEOUT=407]="JOIN_CHANNEL_TIMEOUT",a[a.PEER_PUBLISH_STATUS=408]="PEER_PUBLISH_STATUS",a[a.WORKER_EVENT=156]="WORKER_EVENT",a[a.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",a[a.JOIN_WEB_PROXY_AP=700]="JOIN_WEB_PROXY_AP",a[a.WEBSOCKET_QUIT=671]="WEBSOCKET_QUIT",a[a.USER_ANALYTICS=1e4]="USER_ANALYTICS",a[a.AUTOPLAY_FAILED=9178]="AUTOPLAY_FAILED",a}({});function Sr(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(A,l,g){let C=g.value;if(typeof C=="function"){let m=a.className||A.__className__||(A.constructor.name==="AgoraRTCClient"?"Client":A.constructor.name);g.value=function(){for(var y,w=arguments.length,b=new Array(w),M=0;M(V.onSuccess(a.reportResult&&q),q)).catch(q=>{throw V.onError(q),q}):(V.onSuccess(a.reportResult&&K),K)}catch(K){throw V.onError(K),K}}}return g}}let tr=new class{constructor(){ko(this,"baseInfoMap",new Map),ko(this,"proxyServer",void 0),ko(this,"eventUploadTimer",void 0),ko(this,"setSessionIdTimer",void 0),ko(this,"url",void 0),ko(this,"sids",new Set),ko(this,"backupUrl",void 0),ko(this,"_appId",void 0),ko(this,"_aid",0),ko(this,"keyEventUploadPendingItems",[]),ko(this,"normalEventUploadPendingItems",[]),ko(this,"apiInvokeUploadPendingItems",[]),ko(this,"apiInvokeCount",0),ko(this,"apiInvokeLoggedCount",0),ko(this,"ltsList",[]),ko(this,"lastSendNormalEventTime",Date.now()),ko(this,"customReportCounterTimer",void 0),ko(this,"customReportCount",0),ko(this,"extApiInvoke",async a=>{for(let A of a){let l=Yr(Yr({},A),{},{sid:null,invokeId:++this.apiInvokeCount,tag:Gn.TRACER});this.sendApiInvoke(l)}}),this.eventUploadTimer=window.setInterval(this.doSend.bind(this),Ie("EVENT_REPORT_SEND_INTERVAL")),this.setSessionIdTimer=window.setInterval(this.appendSessionId.bind(this),Ie("EVENT_REPORT_SEND_INTERVAL"))}getBaseInfoBySessionId(a){return this.baseInfoMap.get(a)}setAppId(a){this._appId=a,this._aid=parseInt(a.replace(/[a-fA-F0-9]{8}/g,A=>{let[l,g]=A;return l+g}),16)||0}reportApiInvoke(a,A,l){A.timeout=A.timeout||6e4,A.reportResult=A.reportResult===void 0||A.reportResult;let g=Date.now();this.apiInvokeCount+=1;let C=this.apiInvokeCount,m=!!Ie("SHOW_REPORT_INVOKER_LOG"),y=!!Ie("SHOW_REPORT_USER_INVOKER_LOG"),w=m||y&&A.id;w&&(this.apiInvokeLoggedCount+=1);let b=this.apiInvokeLoggedCount;function M(q,ce){if(w){let oe="[apiInvoke-".concat(b,"]");if(A.id&&(oe+="[".concat(A.id,"]")),A.name&&(oe+="[".concat(A.name,"]"),A.name===Co.JOIN))return X.info("".concat(oe," ").concat(q));X.info("".concat(oe," ").concat(q),q==="start"?A.options:ce||"")}}let k=()=>({tag:A.tag,invokeId:C,sid:a,name:A.name,apiInvokeTime:g,options:A.options,states:A.states||null});M("start");let V=!1;Ks(A.timeout).then(()=>{V||(this.sendApiInvoke(Yr(Yr({},k()),{},{error:fe.API_INVOKE_TIMEOUT,success:!1})),M("timeout"))});let K=new nt(fe.UNEXPECTED_ERROR,"".concat(A.name,": this api invoke is end"));return{onSuccess:q=>{let ce=()=>{if(V)throw K;return V=!0,this.sendApiInvoke(Yr(Yr({},k()),{},{success:!0},A.reportResult&&{result:q})),M("onSuccess"),q};return l?e4(ce,A.name+"Success",l,()=>V=!0):ce()},onError:q=>{let ce=()=>{if(V)throw q;V=!0,this.sendApiInvoke(Yr(Yr({},k()),{},{success:!1,error:q})),M("onFailure",q.toString())};return l?e4(ce,A.name+"Error",l,()=>V=!0):ce()}}}_send(a,A,l){this.send({type:a,data:A},l)}_sendApiInvoke(a){return this.sendApiInvoke(a)}sessionInit(a,A){if(this.baseInfoMap.has(a))return;let l=Date.now(),g=this.createBaseInfo(a,l);g.cname=A.cname,g.rteUrl=A.rteUrl;let C=Object.assign({},{willUploadConsoleLog:Ie("UPLOAD_LOG"),maxTouchPoints:navigator.maxTouchPoints,areaVersion:u2?"global":"oversea",areas:Ie("AREAS")&&Ie("AREAS").join(",")},A.extend),{stringUid:m,channelProfile:y,channelMode:w,isABTestSuccess:b,lsid:M,clientRole:k}=A,V=Date.now(),K=Yr(Yr({},g),{},{eventType:Cs.SESSION_INIT,appid:A.appid,browser:navigator.userAgent,buildFormat:A.buildFormat,build:o4,lts:V,elapse:V-l,extend:JSON.stringify(C),mode:A.mode,process:Ie("PROCESS_ID"),appType:Ie("APP_TYPE"),success:!0,version:Cn,stringUid:m,channelProfile:y,channelMode:w,isABTestSuccess:b,lsid:M,clientType:Rt(q=window.navigator.userAgent).call(q,"AgoraWebView")?42:20,clientRole:k,serviceId:Ie("PROCESS_ID"),extensionID:Ie("PLUGIN_INFO").join(",")||"",rteUrl:A.rteUrl,rteSid:A.rteSid});var q;this.send({type:Eo.SESSION,data:K},!0)}reportRteDetail(a){let A=this.baseInfoMap.get(a);if(!A)return;let l=A.info,g=Date.now(),C=Yr(Yr({},l),{},{eventType:Cs.RTE_DETAIL,lts:g,success:!0,elapse:g-A.startTime,vid:l.vid===void 0?0:Number(l.vid),ua:navigator.userAgent});this.send({type:Eo.RTE_DETAIL,data:C},!0)}joinChooseServer(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info;A.vid&&(g.vid=A.vid);let C=Date.now(),m=Yr(Yr({},g),{},{role:A.role,eventType:Cs.JOIN_CHOOSE_SERVER,lts:C,eventElapse:A.elapse||C-A.lts,chooseServerAddr:A.csAddr,errorCode:A.ec,elapse:C-l.startTime,success:A.succ,chooseServerAddrList:JSON.stringify(A.serverList),uid:A.uid?parseInt(A.uid):null,cid:A.cid?parseInt(A.cid):null,chooseServerIp:A.csIp||"",opid:A.opid,unilbsServerIds:A.unilbsServerIds,extend:A.extend||void 0,isHttp3:A.isHttp3,corssRegionTagReq:A.corssRegionTagReq||void 0,corssRegionTagRes:A.corssRegionTagRes||void 0,ua:navigator.userAgent,resourceTimingInfo:A.resourceTimingInfo||void 0});this.send({type:Eo.JOIN_CHOOSE_SERVER,data:m},!0)}reqUserAccount(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.REQ_USER_ACCOUNT,lts:C,success:A.success,serverAddress:A.serverAddr,stringUid:A.stringUid,uid:A.uid,errorCode:A.errorCode,elapse:A.elapse||C-l.startTime,eventElapse:C-A.lts,extend:JSON.stringify(A.extend)});this.send({type:Eo.REQ_USER_ACCOUNT,data:m},!0)}joinGateway(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info;A.vid&&(g.vid=A.vid),g.uid=A.uid,g.cid=A.cid;let C=Date.now(),{firstSuccess:m,addr:y,isProxy:w}=A,b=C-l.startTime,M=Yr(Yr({},g),{},{eventType:Cs.JOIN_GATEWAY,lts:C,gatewayAddr:A.addr,success:A.succ,errorCode:A.ec,errorMsg:A.errorMsg||"",elapse:b,eventElapse:C-A.lts,firstSuccess:m,signalChannel:A.signalChannel,preload:A.preload?1:0,installId:Of(),isABTestSuccess:A.isABTestSuccess?1:0,gatewayIp:null,gatewayPort:null,isProxy:w?1:0}),k=M.success?1:0;if(A.succ&&(l.lastJoinSuccessTime=C),y)if(M.signalChannel==="1"){let V=FR(/(\d+\.\d+\.\d+\.\d+):(\d+)/,{ip:1,port:2}),K=y.match(V);M.gatewayIp=K&&K.groups?K.groups.ip:"",M.gatewayPort=K&&K.groups?K.groups.port:""}else if(w){let V=y.match(/h=(\d{1,3}-){3}\d{1,3}/g),K=y.match(/p=[0-9]{1,6}/g);M.gatewayIp=V&&V.length?V[0].split("=")[1].replace(/-/g,"."):"",M.gatewayPort=K&&K.length?K[0].split("=")[1]:""}else{let V=y.match(/wss:\/\/(\d{1,3}-){3}\d{1,3}/g),K=y.match(/(:|p=)[0-9]{1,6}/g);M.gatewayIp=V&&V.length?V[0].split("//")[1].replace(/-/g,"."):"",M.gatewayPort=K&&K.length?K[0].split(/:|p=/g)[1]:""}if(m)this.send({type:Eo.JOIN_GATEWAY,data:M},!0);else{let V={isSuccess:k,port:M.gatewayPort};delete M.success,delete M.eventType,delete M.firstSuccess,delete M.gatewayPort,M.vid=Number(M.vid);let K=Object.assign({},M,V,{eventType:Cs.REJOIN_GATEWAY});this.send({type:Eo.RE_JOIN_GATEWAY,data:K},!0)}}joinChannelTimeout(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=Date.now(),C=Yr(Yr({},l.info),{},{lts:g,timeout:A,elapse:g-l.startTime});this.send({type:Eo.JOIN_CHANNEL_TIMEOUT,data:C},!0)}publish(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.PUBLISH,lts:C,eventElapse:A.eventElapse,elapse:C-l.startTime,success:A.succ,errorCode:A.ec,videoName:A.videoName,audioName:A.audioName,screenName:A.screenName,screenshare:A.screenshare,audio:A.audio,video:A.video,p2pid:A.p2pid,publishRequestid:A.publishRequestid});this.send({type:Eo.PUBLISH,data:m},!0)}subscribe(a,A,l){let g=this.baseInfoMap.get(a);if(!g)return;let C=g.info,m=Date.now(),y=Yr(Yr({},C),{},{eventType:Cs.SUBSCRIBE,lts:m,eventElapse:A.eventElapse,elapse:m-g.startTime,success:A.succ,errorCode:A.ec,video:A.video,audio:A.audio,subscribeRequestid:A.subscribeRequestid,p2pid:A.p2pid,preSsrc:A.preSsrc?1:0},l&&{extend:JSON.stringify({isMassSubscribe:!0})});typeof A.peerid=="string"?y.peerSuid=A.peerid:y.peer=A.peerid,this.send({type:Eo.SUBSCRIBE,data:y},!0)}wsCompressorInit(a){var A;let l=[...Hs(A=this.baseInfoMap).call(A)],g=l.length?l[0]:"UnableToGetSid",C=this.baseInfoMap.get(g);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr({},m),{},{eventType:Cs.WS_COMPRESSOR_INIT,lts:y,eventElapse:a.eventElapse,elapse:y-C.startTime,status:a.status?1:2});this.send({type:Eo.WS_COMPRESSOR_INIT,data:w},!0)}firstXLAPeerFirstVideoFrame(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=A.peerPubStatusMs-(l.lastJoinSuccessTime||C),y=Yr(Yr({},g),{},{elapse:C-l.startTime,eventType:Cs.XLA_PEER_FIRST_VIDEO_FRAME,lts:C,peer:A.peer,width:A.width,height:A.height,ssrc:A.ssrc,p2pid:A.p2pid,peerPublishDuration:A.peerPublishDuration,joinChannelSuccessElapse:m,peerPubStatusMs:A.peerPubStatusMs-A.joinChannelStart,availablePublish:A.peerPublishDuration>m?1:0,preloadStart:Math.max(A.preloadStart-A.joinChannelStart,0),preloadEnd:Math.max(A.preloadEnd-A.joinChannelStart,0),encrypt:Math.max(A.apStart-A.joinChannelStart,0),ap:Math.max(A.apEnd-A.joinChannelStart,0),sua:Math.max(A.suaEnd-A.joinChannelStart,0),beforeConnect:Math.max(A.beforeConnect-A.joinChannelStart,0),peerRecevier:Math.max(A.peerReceiver-A.joinChannelStart,0),ice:Math.max(A.ice-A.joinChannelStart,0),pc:Math.max(A.pc-A.joinChannelStart,0),signalConnected:Math.max(A.signalConnected-A.joinChannelStart,0),joinReq:Math.max(A.joinReq-A.joinChannelStart,0),joinRes:Math.max(A.joinRes-A.joinChannelStart,0),userJoinNotify:Math.max(A.userJoinNotify-A.joinChannelStart,0),videoSsrcNotify:Math.max(A.videoAddNotify-A.joinChannelStart,0),subscribeDelayMs:Math.max(A.subscribeStart-A.videoAddNotify,0),subscribeStart:Math.max(A.subscribeStart-A.joinChannelStart,0),subscribeEnd:Math.max(A.subscribeEnd-A.joinChannelStart,0),firstReceived:Math.max(A.firstReceived-A.joinChannelStart,0),firstDecoded:Math.max(A.firstDecoded-A.joinChannelStart,0),firstPreRender:Math.max(A.firstPreRender-A.joinChannelStart,0),firstRender:Math.max(A.firstRender-A.joinChannelStart,0),playDelayMs:Math.max(A.playStart-A.subscribeEnd,0),playStart:Math.max(A.playStart-A.joinChannelStart,0),playEnd:Math.max(A.playEnd-A.joinChannelStart,0),isPreSub:A.isPreSub?1:0,isPrePc:A.isPrePc?1:0,isPreInstantVideo:A.isPreInstantVideo?1:0,firstReceivedEncodedFrame:A.firstReceivedEncodedFrame?Math.max(A.firstReceivedEncodedFrame-A.joinChannelStart,0):void 0,frameType:A.frameType||"",rtpTimestamp:A.rtpTimestamp||0,framePayloadType:A.framePayloadType||0,frameDataLength:A.frameDataLength||0,mimeType:A.mimeType||""});this.send({type:Eo.XLA_PEER_FIRST_VIDEO_FRAME,data:y},!0)}firstRemoteVideoDecode(a,A,l,g){let C=this.baseInfoMap.get(a);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr(Yr({},m),g),{},{elapse:y-C.startTime,eventType:A,lts:y,firstDecodeFrame:Math.max((g.firstFrame||y)-C.startTime,0),apEnd:Math.max(g.apEnd-C.startTime,0),apStart:Math.max(g.apStart-C.startTime,0),joinGwEnd:Math.max(g.joinGwEnd-C.startTime,0),joinGwStart:Math.max(g.joinGwStart-C.startTime,0),pcEnd:Math.max(g.pcEnd-C.startTime,0),pcStart:Math.max(g.pcStart-C.startTime,0),subscriberEnd:Math.max(g.subscriberEnd-C.startTime,0),subscriberStart:Math.max(g.subscriberStart-C.startTime,0),videoAddNotify:Math.max(g.videoAddNotify-C.startTime,0)});this.send({type:l,data:w},!0)}firstRemoteFrame(a,A,l,g){let C=this.baseInfoMap.get(a);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr(Yr({},m),g),{},{elapse:y-C.startTime,eventType:A,lts:y});this.send({type:l,data:w},!0)}abTest(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{vid:g.vid===void 0?0:Number(g.vid),elapse:C-l.startTime,eventType:Cs.AB_TEST,lts:C});this.send({type:Eo.AB_TEST,data:m},!0)}pcStats(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{vid:g.vid===void 0?0:Number(g.vid),elapse:C-l.startTime,eventType:Cs.PC_STATS,lts:C,preallocation:A.preallocation?1:0});this.send({type:Eo.PC_STATS,data:m},!0)}updateRemoteRTPCapabilities(a,A){if(a){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{vid:g.vid===void 0?0:Number(g.vid),eventType:Cs.UPDATE_REMOTE_RTPCAPABILITIES,lts:C});this.send({type:Eo.UPDATE_REMOTE_RTPCAPABILITIES,data:m},!0)}}onGatewayStream(a,A,l,g){let C=this.baseInfoMap.get(a);if(!C)return;let m=C.info,y=Date.now(),w=Yr(Yr(Yr({},m),g),{},{eventType:A,lts:y});this.send({type:l,data:w},!0)}streamSwitch(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.STREAM_SWITCH,lts:C,isDual:A.isdual,elapse:C-l.startTime,success:A.succ});this.send({type:Eo.STREAM_SWITCH,data:m},!0)}requestProxyAppCenter(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.REQUEST_PROXY_APPCENTER,lts:C,eventElapse:C-A.lts,elapse:C-l.startTime,APAddr:A.APAddr,workerManagerList:A.workerManagerList,response:A.response,errorCode:A.ec,success:A.succ});this.send({type:Eo.REQUEST_PROXY_APPCENTER,data:m},!0)}requestProxyWorkerManager(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{eventType:Cs.REQUEST_PROXY_WORKER_MANAGER,lts:C,eventElapse:C-A.lts,elapse:C-l.startTime,workerManagerAddr:A.workerManagerAddr,response:A.response,errorCode:A.ec,success:A.succ});this.send({type:Eo.REQUEST_PROXY_WORKER_MANAGER,data:m},!0)}setProxyServer(a){this.proxyServer=a,a?X.debug("reportProxyServerurl: ".concat(a)):X.debug("disable reportProxyServerurl: ".concat(a))}peerPublishStatus(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr({},g),{},{subscribeElapse:A.subscribeElapse,peer:A.peer,peerPublishDuration:Math.max(A.audioPublishDuration,A.videoPublishDuration),audiotag:A.audioPublishDuration>0?1:-1,videotag:A.videoPublishDuration>0?1:-1,lts:C,elapse:C-l.startTime,joinChannelSuccessElapse:C-(l.lastJoinSuccessTime||C),peerPublishDurationVideo:A.videoPublishDuration,peerPublishDurationAudio:A.audioPublishDuration});this.send({type:Eo.PEER_PUBLISH_STATUS,data:m},!0)}workerEvent(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now();(function(m,y,w){let b=m[y];if(!b||typeof b!="string")return[m];m[y]="";let M=DA(JSON.stringify(m)),k=0,V=[],K=0;for(let q=0;qthis.send({type:Eo.WORKER_EVENT,data:m},!0))}apworkerEvent(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{elapse:C-l.startTime,lts:C});this.send({type:Eo.AP_WORKER_EVENT,data:m},!0)}joinWebProxyAP(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{elapse:C-l.startTime,lts:C,extend:A.extend||void 0});this.send({type:Eo.JOIN_WEB_PROXY_AP,data:m},!0)}WebSocketQuit(a,A){let l=this.baseInfoMap.get(a);if(!l)return;let g=l.info,C=Date.now(),m=Yr(Yr(Yr({},g),A),{},{elapse:C-l.startTime,lts:C});this.send({type:Eo.WEBSOCKET_QUIT,data:m},!0)}async sendCustomReportMessage(a,A){if(this.customReportCount+=A.length,this.customReportCount>Ie("CUSTOM_REPORT_LIMIT"))throw new nt(fe.CUSTOM_REPORT_FREQUENCY_TOO_HIGH);this.customReportCounterTimer||(this.customReportCounterTimer=window.setInterval(()=>{this.customReportCount=0},5e3));let l=Date.now(),g=A.map(C=>({type:Eo.USER_ANALYTICS,data:Yr(Yr({sid:a},C),{},{lts:l})}));try{Ie("NEW_REPORT_SERVER")?await this.postDataToStatsCollector2(g):await this.postDataToStatsCollector(g)}catch(C){throw X.error("send custom report message failed",C.toString()),new nt(fe.CUSTOM_REPORT_SEND_FAILED,C.message)}}sendApiInvoke(a){let A=Ie("NOT_REPORT_EVENT");if(a.tag&&Rt(A)&&Rt(A).call(A,a.tag))return!1;if(a.sid===null)return this.apiInvokeUploadPendingItems.push(a),!1;let l=this.baseInfoMap.get(a.sid);if(!l)return this.apiInvokeUploadPendingItems.push(a),!1;let{cname:g,uid:C,cid:m}=l.info,y;if(a.lts=a.lts||Date.now(),a.error)if(a.error instanceof nt){let{code:b,message:M}=a.error;y=b||M||a.error.toString()}else y=a.error.toString();let w={invokeId:a.invokeId,sid:a.sid,cname:g,cid:m,uid:C,lts:a.lts,success:a.success,elapse:a.lts-l.startTime,execElapse:a.lts-a.apiInvokeTime,apiName:a.name,options:a.options?JSON.stringify(a.options):void 0,execStates:a.states?JSON.stringify(a.states):void 0,execResult:a.result?JSON.stringify(a.result):void 0,errorCode:a.error?y:void 0,errorMsg:a.error?JSON.stringify(a.error):void 0};return this.send({type:Eo.API_INVOKE,data:w},!1),!0}addSid(a){this.sids.add(a)}removeSid(a){this.sids.delete(a)}appendSessionId(){let a=this.apiInvokeUploadPendingItems;if(a.length===0)return;let A=Array.from(this.sids).find(l=>l!==null);A&&a.forEach(l=>{l&&(l.sid=A,this.sendApiInvoke(Object.assign({},l)))}),a.length=0}send(a,A){if(A)return this.keyEventUploadPendingItems.push(a),void this.sendItems(this.keyEventUploadPendingItems,!0);this.normalEventUploadPendingItems.push(a),this.normalEventUploadPendingItems.length>Ie("NORMAL_EVENT_QUEUE_CAPACITY")&&this.normalEventUploadPendingItems.splice(0,1),this.normalEventUploadPendingItems.length>=10&&this.sendItems(this.normalEventUploadPendingItems,!1)}doSend(){this.keyEventUploadPendingItems.length>0&&this.sendItems(this.keyEventUploadPendingItems,!0),this.normalEventUploadPendingItems.length>0&&Date.now()-this.lastSendNormalEventTime>=5e3&&this.sendItems(this.normalEventUploadPendingItems,!1)}sendItems(a,A){let l=[],g=[];for(;a.length;){let m=a.shift();l.length<20?l.push(m):g.push(m)}a.push(...g);for(let m of[...l]){var C;this.ltsList.indexOf(m.data.lts)!==-1?(m.data.lts=this.ltsList[this.ltsList.length-1]+1,this.ltsList.push(m.data.lts)):(this.ltsList.push(m.data.lts),LE(C=this.ltsList).call(C,(y,w)=>y-w))}return A||(this.lastSendNormalEventTime=Date.now()),Ie("ENABLE_EVENT_REPORT")&&l.length&&(Ie("NEW_REPORT_SERVER")?this.postDataToStatsCollector2(l):this.postDataToStatsCollector(l)).catch((m=>y=>{Ie("EVENT_REPORT_RETRY")&&(A?this.keyEventUploadPendingItems=this.keyEventUploadPendingItems.concat(m):(this.normalEventUploadPendingItems=this.normalEventUploadPendingItems.concat(m),this.normalEventUploadPendingItems.length>Ie("NORMAL_EVENT_QUEUE_CAPACITY")&&(this.normalEventUploadPendingItems.splice(0,this.normalEventUploadPendingItems.length-Ie("NORMAL_EVENT_QUEUE_CAPACITY")),X.warning("report: drop normal events"))))})(l)),a}async postDataToStatsCollector2(a){Xi.networkState===Va.OFFLINE&&await Ft.race([Xi.onlineWaiter,Ks(2*os.maxRetryTimeout)]);let A=C=>{let m=new Uint8Array;return C.forEach(y=>{let w=yf(JSON.stringify(y.data)),b=new ArrayBuffer(5),M=(V=>{let K=0;return Object.entries(Eo).forEach(q=>{let[ce,oe]=q;oe===V.type&&(K=kC[ce])}),K})(y),k=new DataView(b);k.setUint16(0,w.byteLength,!0),k.setUint8(2,255&M),k.setUint8(3,M>>>8&255),k.setUint8(4,M>>>16&255),m=zb(m,new Uint8Array(b)),m=zb(m,w)}),m},l="event",g=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("NEW_REPORT_SERVER_DOMAINS")[0],"&p=443&d=").concat(l):"https://".concat(Ie("NEW_REPORT_SERVER_DOMAINS")[0],"/").concat(l);for(let C=0;C<2;C+=1){C===1&&(g=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("NEW_REPORT_SERVER_DOMAINS")[1],"&p=443&d=").concat(l):"https://".concat(Ie("NEW_REPORT_SERVER_DOMAINS")[1],"/").concat(l));try{await l2(g,{timeout:1e4,data:A(a),headers:Yr(Yr({biz:"webrtc",sendts:Math.round(Date.now()/1e3),debug:"false"},this._appId&&{appid:this._appId}),{},{"Content-Type":"application/octet-stream"})},!0)}catch(m){if(C===1)throw m;continue}return}}async postDataToStatsCollector(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=(w=>{let b=w&&w.data.sid&&this.baseInfoMap.get(w.data.sid);return b&&b.info.vid&&+b.info.vid||0})(a[0]),g=l?void 0:this._aid,C={msgType:"EventMessages",sentTs:Math.round(Date.now()/1e3),payloads:a.map(w=>JSON.stringify(w)),vid:l,aid:g};Xi.networkState===Va.OFFLINE&&await Ft.race([Xi.onlineWaiter,Ks(2*os.maxRetryTimeout)]);let m=A?"/events/proto-raws":"/events/messages",y=this.url||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("EVENT_REPORT_DOMAIN"),"&p=").concat(Ie("STATS_COLLECTOR_PORT"),"&d=").concat(m):"https://".concat(Ie("EVENT_REPORT_DOMAIN"),":").concat(Ie("STATS_COLLECTOR_PORT")).concat(m));for(let w=0;w<2;w+=1){w===1&&(y=this.backupUrl||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(Ie("EVENT_REPORT_BACKUP_DOMAIN"),"&p=").concat(Ie("STATS_COLLECTOR_PORT"),"&d=").concat(m):"https://".concat(Ie("EVENT_REPORT_BACKUP_DOMAIN"),":").concat(Ie("STATS_COLLECTOR_PORT")).concat(m)));try{A?await GJ(y,{timeout:1e4,data:C}):await l2(y,{timeout:1e4,data:C})}catch(b){if(w===1)throw b;continue}return}}createBaseInfo(a,A){let l=Object.assign({},rU);return l.sid=a,this.baseInfoMap.set(a,{info:l,startTime:A}),l}reportResourceTiming(a,A){let l=performance.getEntriesByName(a),g=l[l.length-1];g&&this.reportApiInvoke(A,{name:"Client.resourceTiming",options:g,tag:Gn.TRACER}).onSuccess()}};a4.on("REPORT_LOG_UPLOAD",a=>{a.networkState=Xi.networkState,tr.reportApiInvoke(null,{name:"logUploadError",options:a,tag:Gn.TRACER}).onSuccess("logUploadError")});let ze=class extends nt{constructor(a){super(a,arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",arguments.length>2?arguments[2]:void 0),ko(this,"name","AgoraRTCException")}print(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error";return super.print(a,X)}throw(){super.throw(X)}},ta={getDisplayMedia:!1,getStreamFromExtension:!1,supportUnifiedPlan:!1,supportMinBitrate:!1,supportSetRtpSenderParameters:!1,supportDualStream:!0,webAudioMediaStreamDest:!1,supportReplaceTrack:!1,supportWebGL:!1,webAudioWithAEC:!1,supportRequestFrame:!1,supportShareAudio:!1,supportDualStreamEncoding:!1,supportDataChannel:!1,supportPCSetConfiguration:!1,supportWebRTCEncodedTransform:!1,supportWebRTCInsertableStream:!1,supportRequestVideoFrameCallback:!1,supportWebCrypto:!1,supportSuppressLocalAudioPlayback:!1,supportRestrictOwnAudio:!1};function Bi(){return ta}function ra(){return"setSinkId"in HTMLAudioElement.prototype&&(!Ie("RESTRICTION_SET_PLAYBACK_DEVICE")||(Tg()||HP())&&!RR())}function Dg(){return!ta.supportUnifiedPlan||Ie("CHROME_FORCE_PLAN_B")&&Od()}function So(a){return!(uo()||YP(87)||Dg()||!Ie("ENABLE_PRE_SUB")&&(a==null||!a.autoSubscribe||Ie("FORCE_DISABLE_AUTO_SUB")))}function Lf(a){return Ie("ENABLE_INSTANT_VIDEO")?Ie("ENABLE_INSTANT_VIDEO"):!(a==null||!a.autoSubscribe||Ie("FORCE_DISABLE_AUTO_SUB"))}function dl(){return navigator.mediaDevices&&"getSupportedConstraints"in navigator.mediaDevices}function Mf(){if(dl()){let a=navigator.mediaDevices.getSupportedConstraints();return!(!("suppressLocalAudioPlayback"in a)||!a.suppressLocalAudioPlayback)}return Nd(141)||ol(141)||ZE(141)}function VR(){if(dl()){let a=navigator.mediaDevices.getSupportedConstraints();return!(!("restrictOwnAudio"in a)||!a.restrictOwnAudio)}return Nd(141)||ol(141)||ZE(125)}let Ys=function(a){return a.IOS_15_16_INTERRUPTION_START="ios15_16-interruption-start",a.IOS_15_16_INTERRUPTION_END="ios15_16-interruption-end",a.IOS_INTERRUPTION_START="ios-interruption-start",a.IOS_INTERRUPTION_END="ios-interruption-end",a.STATE_CHANGE="state-change",a}({});function sh(a,A,l){return{sampleRate:a,stereo:A,bitrate:l}}function Gi(a,A,l,g,C){return{width:a,height:A,frameRate:l,bitrateMin:g,bitrateMax:C}}function Jl(a,A,l,g,C){return{width:{max:a},height:{max:A},frameRate:l,bitrateMin:g,bitrateMax:C}}function KR(a,A){return{numSpatialLayers:a,numTemporalLayers:A}}let ql={"90p":Gi(160,90),"90p_1":Gi(160,90),"120p":Gi(160,120,15,30,65),"120p_1":Gi(160,120,15,30,65),"120p_3":Gi(120,120,15,30,50),"120p_4":Gi(212,120),"180p":Gi(320,180,15,30,140),"180p_1":Gi(320,180,15,30,140),"180p_3":Gi(180,180,15,30,100),"180p_4":Gi(240,180,15,30,120),"240p":Gi(320,240,15,40,200),"240p_1":Gi(320,240,15,40,200),"240p_3":Gi(240,240,15,40,140),"240p_4":Gi(424,240,15,40,220),"360p":Gi(640,360,15,80,400),"360p_1":Gi(640,360,15,80,400),"360p_3":Gi(360,360,15,80,260),"360p_4":Gi(640,360,30,80,600),"360p_6":Gi(360,360,30,80,400),"360p_7":Gi(480,360,15,80,320),"360p_8":Gi(480,360,30,80,490),"360p_9":Gi(640,360,15,80,800),"360p_10":Gi(640,360,24,80,800),"360p_11":Gi(640,360,24,80,1e3),"480p":Gi(640,480,15,100,500),"480p_1":Gi(640,480,15,100,500),"480p_2":Gi(640,480,30,100,1e3),"480p_3":Gi(480,480,15,100,400),"480p_4":Gi(640,480,30,100,750),"480p_6":Gi(480,480,30,100,600),"480p_8":Gi(848,480,15,100,610),"480p_9":Gi(848,480,30,100,930),"480p_10":Gi(640,480,10,100,400),"720p":Gi(1280,720,15,120,1130),"720p_auto":Gi(1280,720,30,900,3e3),"720p_1":Gi(1280,720,15,120,1130),"720p_2":Gi(1280,720,30,120,2e3),"720p_3":Gi(1280,720,30,120,1710),"720p_5":Gi(960,720,15,120,910),"720p_6":Gi(960,720,30,120,1380),"1080p":Gi(1920,1080,15,120,2080),"1080p_1":Gi(1920,1080,15,120,2080),"1080p_2":Gi(1920,1080,30,120,3e3),"1080p_3":Gi(1920,1080,30,120,3150),"1080p_5":Gi(1920,1080,60,120,4780),"1440p":Gi(2560,1440,30,120,4850),"1440p_1":Gi(2560,1440,30,120,4850),"1440p_2":Gi(2560,1440,60,120,7350),"4k":Gi(3840,2160,30,120,8910),"4k_1":Gi(3840,2160,30,120,8910),"4k_3":Gi(3840,2160,60,120,13500)},iU={"480p":Jl(640,480,5),"480p_1":Jl(640,480,5),"480p_2":Jl(640,480,30),"480p_3":Jl(640,480,15),"720p":Jl(1280,720,5),"720p_auto":Gi(1280,720,30,900,3e3),"720p_1":Jl(1280,720,5),"720p_2":Jl(1280,720,30),"720p_3":Jl(1280,720,15),"1080p":Jl(1920,1080,5),"1080p_1":Jl(1920,1080,5),"1080p_2":Jl(1920,1080,30),"1080p_3":Jl(1920,1080,15)},c4={"1SL1TL":KR(1,1),"3SL3TL":KR(3,3),"2SL3TL":KR(2,3)};function ya(a){return a||(a="480p_1"),typeof a=="string"?Object.assign({},ql[a]):a}function h2(a){return typeof a=="string"?Object.assign({},iU[a]):a}function kf(a){return typeof a=="string"?Object.assign({},c4[a]):a}let nU={speech_low_quality:sh(16e3,!1),speech_standard:sh(32e3,!1,18),music_standard:sh(48e3,!1),standard_stereo:sh(48e3,!0,56),high_quality:sh(48e3,!1,128),high_quality_stereo:sh(48e3,!0,192)};function Pf(a){return typeof a=="string"?Object.assign({},nU[a]):a}let ah=[];function HR(a){return zo(a,"mediaSource",["screen","window","application"]),!0}let nr=function(a){return a.NEED_RENEGOTIATE="@need_renegotiate",a.NEED_REPLACE_TRACK="@need_replace_track",a.NEED_REPLACE_MIXING_TRACK="@need_replace_mixing_track",a.NEED_CLOSE="@need_close",a.NEED_ENABLE_TRACK="@need_enable_track",a.NEED_DISABLE_TRACK="@need_disable_track",a.NEED_SESSION_ID="@need_sid",a.SET_OPTIMIZATION_MODE="@set_optimization_mode",a.GET_STATS="@get_stats",a.GET_RTC_STATS="@get_rtc_stats",a.GET_LOW_VIDEO_TRACK="@get_low_video_track",a.NEED_RESET_REMOTE_SDP="@need_reset_remote_sdp",a.NEED_UPDATE_VIDEO_ENCODER="@need_update_video_encoder",a.NEED_UPDATE_VIDEO_SEND_PARAMETERS="@need_update_video_send_parameters",a.NEED_MUTE_TRACK="@need_mute_track",a.NEED_UNMUTE_TRACK="@need_unmute_track",a}({}),$i=function(a){return a.SCREEN_TRACK="screen_track",a.CUSTOM_TRACK="custome_track",a.LOW_STREAM="low_stream",a.SCREEN_LOW_TRACK="screen_low_track",a}({}),bg=function(a){return a[a.HIGH_STREAM=0]="HIGH_STREAM",a[a.LOW_STREAM=1]="LOW_STREAM",a}({}),l4=function(a){return a[a.HIGH_STREAM=0]="HIGH_STREAM",a[a.LOW_STREAM=1]="LOW_STREAM",a[a.HIGH_STREAM_LAYER1=4]="HIGH_STREAM_LAYER1",a[a.HIGH_STREAM_LAYER2=5]="HIGH_STREAM_LAYER2",a[a.HIGH_STREAM_LAYER3=6]="HIGH_STREAM_LAYER3",a[a.HIGH_STREAM_LAYER4=7]="HIGH_STREAM_LAYER4",a[a.HIGH_STREAM_LAYER5=8]="HIGH_STREAM_LAYER5",a[a.HIGH_STREAM_LAYER6=9]="HIGH_STREAM_LAYER6",a}({}),Tc=function(a){return a[a.DISABLE=0]="DISABLE",a[a.LOW_STREAM=1]="LOW_STREAM",a[a.AUDIO_ONLY=2]="AUDIO_ONLY",a[a.HIGH_STREAM_LAYER1=3]="HIGH_STREAM_LAYER1",a[a.HIGH_STREAM_LAYER2=4]="HIGH_STREAM_LAYER2",a[a.HIGH_STREAM_LAYER3=5]="HIGH_STREAM_LAYER3",a[a.HIGH_STREAM_LAYER4=6]="HIGH_STREAM_LAYER4",a[a.HIGH_STREAM_LAYER5=7]="HIGH_STREAM_LAYER5",a[a.HIGH_STREAM_LAYER6=8]="HIGH_STREAM_LAYER6",a}({}),Wl=function(a){return a.TRANSCEIVER_UPDATED="transceiver-updated",a.SEI_TO_SEND="sei-to-send",a.SEI_RECEIVED="sei-received",a.TRACK_UPDATED="track-updated",a}({}),Du=function(a){return a.SOURCE_STATE_CHANGE="source-state-change",a.TRACK_ENDED="track-ended",a.BEAUTY_EFFECT_OVERLOAD="beauty-effect-overload",a.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",a.CLOSED="closed",a}({}),wc=function(a){return a.FIRST_FRAME_DECODED="first-frame-decoded",a.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",a.VIDEO_STATE_CHANGED="video-state-changed",a.PLAY_START="play-start",a.PLAY_END="play-end",a.FIRST_FRAME_RENDER="first-frame-render",a}({}),PC=function(a){return a.AUDIO="audio",a.VIDEO="video",a.DATA="data",a}({}),WA=function(a){return a.AUDIO_SOURCE_STATE_CHANGE="audio_source_state_change",a.RECEIVE_TRACK_BUFFER="receive_track_buffer",a.ON_AUDIO_BUFFER="on_audio_buffer",a.UPDATE_SOURCE="update_source",a}({});(function(a){a.UPDATE_TRACK_SOURCE="update-track-source"})({});let YR={sendVolumeLevel:0,sendBitrate:0,sendBytes:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,currentPacketLossRate:0},I2={sendBytes:0,sendBitrate:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,sendResolutionHeight:0,sendResolutionWidth:0,captureResolutionHeight:0,captureResolutionWidth:0,targetSendBitrate:0,totalDuration:0,totalFreezeTime:0,currentPacketLossRate:0},W1={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveLevel:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receivePacketsDiscarded:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},d4={uplinkNetworkQuality:0,downlinkNetworkQuality:0},Ah={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receiveResolutionHeight:0,receiveResolutionWidth:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},Bn=function(a){return a.ON_TRACK="on_track",a.ON_NODE="on_node",a}({}),XA=function(a){return a.REQUEST_UPDATE_CONSTRAINTS="request_update_constraints",a.REQUEST_CONSTRAINTS="request_constraints",a}({}),Qa=function(a){return a.IDLE="IDLE",a.INITING="INITING",a.INITEND="INITEND",a}({}),Ng=function(a){return a.STATE_CHANGE="state_change",a.RECORDING_DEVICE_CHANGED="recordingDeviceChanged",a.PLAYOUT_DEVICE_CHANGED="playoutDeviceChanged",a.CAMERA_DEVICE_CHANGED="cameraDeviceChanged",a}({}),Ta=function(a){return a.NONE="none",a.INIT="init",a.CANPLAY="canplay",a.PLAYING="playing",a.PAUSED="paused",a.SUSPEND="suspend",a.STALLED="stalled",a.WAITING="waiting",a.ERROR="error",a.DESTROYED="destroyed",a.ABORT="abort",a.ENDED="ended",a.EMPTIED="emptied",a.LOADEDDATA="loadeddata",a}({}),Vi=function(a){return a[a.VideoStateStopped=0]="VideoStateStopped",a[a.VideoStateStarting=1]="VideoStateStarting",a[a.VideoStateDecoding=2]="VideoStateDecoding",a[a.VideoStateFrozen=3]="VideoStateFrozen",a}({}),Dn={uninit:100,none:110,init:120,loadeddata:130,canplay:200,playing:210,paused:220,suspend:300,stalled:310,waiting:320,error:330,destroyed:340,abort:350,ended:360,emptied:370},de=function(a){return a.OPEN="open",a.MESSAGE="message",a.CLOSE="close",a.CLOSING="closing",a.ERROR="error",a}({});function Li(a,A,l,g,C){var m,y,w={};return Object.keys(g).forEach(function(b){w[b]=g[b]}),w.enumerable=!!w.enumerable,w.configurable=!!w.configurable,("value"in w||w.initializer)&&(w.writable=!0),w=$c(m=j9(y=l.slice()).call(y)).call(m,function(b,M){return M(a,A,b)||b},w),C&&w.initializer!==void 0&&(w.value=w.initializer?w.initializer.call(C):void 0,w.initializer=void 0),w.initializer===void 0?(Object.defineProperty(a,A,w),null):w}function $e(a,A,l){return(A=function(g){var C=function(m,y){if(typeof m!="object"||!m)return m;var w=m[Symbol.toPrimitive];if(w!==void 0){var b=w.call(m,"string");if(typeof b!="object")return b;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(m)}(g);return typeof C=="symbol"?C:C+""}(A))in a?Object.defineProperty(a,A,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[A]=l,a}function Fr(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Qn(a){for(var A=1;A{var l;tr.reportApiInvoke(null,{name:Co.GET_MEDIA_STREAM_TRACK,options:[],tag:Gn.TRACER}).onSuccess(((l=this._mediaStreamTrack)===null||l===void 0?void 0:l.label)||"")},this.mediaStreamTrack.id||this.getTrackId()),this._mediaStreamTrack}getRTCRtpTransceiver(A){return A===bg.LOW_STREAM?this._lowRtpTransceiver:this._rtpTransceiver}getMediaStreamTrackSettings(){return this.getMediaStreamTrack(!0).getSettings()}close(){this._isClosed=!0,this._lowRtpTransceiver=void 0,this._rtpTransceiver=void 0,function(A){let l=ah.indexOf(A);l!==-1&&ah.splice(l,1)}(this),this.emit(Du.CLOSED),this.removeAllListeners(Wl.SEI_RECEIVED)}_updateRtpTransceiver(A,l){if(l===bg.LOW_STREAM){if(this._lowRtpTransceiver===A)return;this._lowRtpTransceiver=A}else{if(this._rtpTransceiver===A)return;this._rtpTransceiver=A}this.emit(Wl.TRANSCEIVER_UPDATED,A,l)}}class UC extends u4{get isExternalTrack(){return this._isExternalTrack}get muted(){return this._muted}get enabled(){return this._enabled}get processorContext(){return this._processorContext}constructor(A,l){super(A,l),$e(this,"_enabled",!0),$e(this,"_muted",!1),$e(this,"_isExternalTrack",!1),$e(this,"_isClosed",!1),$e(this,"_enabledMutex",void 0),$e(this,"processor",void 0),$e(this,"_processorContext",void 0),$e(this,"_handleTrackEnded",()=>{this.onTrackEnded()}),this._enabledMutex=new Is("".concat(this.getTrackId())),A.addEventListener("ended",this._handleTrackEnded)}getTrackLabel(){var A,l;return(A=(l=this._originMediaStreamTrack)===null||l===void 0?void 0:l.label)!==null&&A!==void 0?A:""}close(){this._isClosed||(this.stop(),this._originMediaStreamTrack.stop(),this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack.stop(),this._mediaStreamTrack=null),this._originMediaStreamTrack=null,this._enabledMutex=null,X.debug("[".concat(this.getTrackId(),"] close")),this.emit(nr.NEED_CLOSE),super.close())}async _updateOriginMediaStreamTrack(A,l){let g=arguments.length>2&&arguments[2]!==void 0&&arguments[2];this._isExternalTrack=g,A!==this._originMediaStreamTrack&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),l&&this._originMediaStreamTrack.stop()),A.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=A,this._muted&&(this._originMediaStreamTrack.enabled=!1),this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this),this.processor&&this._processorContext&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this._processorContext}))}_getDefaultPlayerConfig(){return{}}onTrackEnded(){X.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(Du.TRACK_ENDED)}stateCheck(A,l){if(X.debug("check track state, [muted: ".concat(this._muted,", enabled: ").concat(this._enabled,"] to [").concat(A,": ").concat(l,"]")),Yl(l,A),this._enabled&&this._muted&&A==="enabled"&&l===!1)throw new nt(fe.TRACK_STATE_UNREACHABLE,"cannot set enabled while the track is muted").print("error",X);if(!this._enabled&&!this._muted&&A==="muted"&&l===!0)throw new nt(fe.TRACK_STATE_UNREACHABLE,"cannot set muted while the track is disabled").print("error",X)}getProcessorStats(){return this._processorContext&&this._processorContext.gatherStats()||[]}getProcessorUsage(){return this._processorContext?this._processorContext.gatherUsage():Ft.resolve([])}}let g4=window.AudioContext||window.webkitAudioContext,ch,vc=null,kn=new class extends io{constructor(){super(...arguments),$e(this,"prevState",void 0),$e(this,"curState",void 0),$e(this,"currentTime",void 0),$e(this,"currentTimeStuckAt",void 0),$e(this,"interruptDetectorTrack",void 0),$e(this,"onLocalAudioTrackMute",()=>{X.info("ios15-interruption-start"),this.emit(Ys.IOS_15_16_INTERRUPTION_START)}),$e(this,"onLocalAudioTrackUnmute",async()=>{X.info("ios15-interruption-end"),this.curState!=="running"||this.duringInterruption?X.info("ios15-interruption-end-canceled"):(vc&&await vc.suspend(),this.emit(Ys.IOS_15_16_INTERRUPTION_END))})}get duringInterruption(){return this.prevState==="running"&&this.curState==="interrupted"}bindInterruptDetectorTrack(a){X.debug("webaudio bindInterruptDetectorTrack ".concat(a.getTrackId())),this.interruptDetectorTrack||(this.interruptDetectorTrack=a,this.interruptDetectorTrack._mediaStreamTrack.onmute=this.onLocalAudioTrackMute,this.interruptDetectorTrack._mediaStreamTrack.onunmute=this.onLocalAudioTrackUnmute)}unbindInterruptDetectorTrack(a){X.debug("webaudio unbindInterruptDetectorTrack ".concat(a.getTrackId())),this.interruptDetectorTrack&&this.interruptDetectorTrack===a&&(this.interruptDetectorTrack._mediaStreamTrack&&(this.interruptDetectorTrack._mediaStreamTrack.onmute=null,this.interruptDetectorTrack._mediaStreamTrack.onunmute=null),this.interruptDetectorTrack=void 0)}};function wa(){if(!vc){if(function(){if(!g4)return void X.error("your browser is not support web audio");X.info("create audio context");let a=Qn({},Ie("WEBAUDIO_INIT_OPTIONS"));X.debug("audio context init option:",JSON.stringify(a)),vc=new g4(a),kn.curState=vc.state,vc.onstatechange=()=>{kn.prevState=kn.curState,kn.curState=vc?vc.state:void 0;let{prevState:A,curState:l}=kn,g=l==="running",C=l==="interrupted",m=A==="running",y=A==="suspended",w=A==="interrupted",b=Wi().osVersion;(Ma()||Hl())&&m&&C&&(X.info("ios".concat(b,"-interruption-start")),kn.emit(Ys.IOS_INTERRUPTION_START)),(Ma()||Hl())&&(y||w)&&g&&(X.info("ios".concat(b,"-interruption-end")),kn.emit(Ys.IOS_INTERRUPTION_END)),A!==l&&kn.emit(Ys.STATE_CHANGE,l,A)},setInterval(()=>{var A;let l=(A=vc)===null||A===void 0?void 0:A.currentTime;kn.currentTime!==l?(kn.currentTimeStuckAt&&(X.debug("AudioContext current time resume at ".concat(l)),kn.currentTimeStuckAt=void 0),kn.currentTime=l):(l!==kn.currentTimeStuckAt&&(tr.reportApiInvoke(null,{name:"WEB_AUDIO_CURRENT_TIME_STUCK",options:{currentTime:l},tag:Gn.TRACER}).onSuccess(),X.warning("AudioContext current time stuck at ".concat(l))),kn.currentTimeStuckAt=l)},5e3),async function(A){let l=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","touchend","keydown","keyup"],g,C,m=!1,y=!1,w=!1;function b(pe){A.state==="running"?M(!1):Ma()||Hl()?A.state==="suspended"&&(M(!0),pe&&A.resume().then(k,k)):A.state!=="closed"&&(M(!0),pe&&A.resume().then(k,k))}function M(pe){if(m!==pe){m=pe;for(let Se=0,be=l;Se",g=Se.children.item(0),g.controls=!1,g.disableRemotePlayback=!0,g.preload="auto",g.srcObject=pe.stream,C=()=>{if(Ie("IOS_AUTO_RESTART_BG_TAG")&&g&&g.srcObject&&!w&&(!g.paused||y!==!0)){g.paused||g.pause();try{w=!0,K()}catch{w=!1}return!0}},q(!0)}return kn.on(Ys.STATE_CHANGE,function(){b(!0)}),b(!1),C}(vc).then(A=>{ch=A})}(),!vc)throw new nt(fe.NOT_SUPPORTED,"can not create audio context");return vc}return vc}function X1(a){if(function(){if(E4!==null)return E4;let g=wa(),C=g.createBufferSource(),m=g.createGain(),y=g.createGain();C.connect(m),C.connect(y),C.disconnect(m);let w=!1;try{C.disconnect(m)}catch{w=!0}return C.disconnect(),E4=w,w}())return;let A=a.connect,l=a.disconnect;a.connect=(g,C,m)=>{var y;return a._inputNodes||(a._inputNodes=[]),Rt(y=a._inputNodes).call(y,g)||(g instanceof AudioNode?(a._inputNodes.push(g),A.call(a,g,C,m)):A.call(a,g,C)),a},a.disconnect=(g,C,m)=>{l.call(a),g?sl(a._inputNodes,g):a._inputNodes=[];for(let y of a._inputNodes)A.call(a,y)}}let E4=null;function h4(a,A){let l=!1,g=1/A;if(Ie("DISABLE_WEBAUDIO")){let C=window.setInterval(()=>{l?window.clearInterval(C):a(performance.now()/1e3)},1e3*g)}else{let C=wa(),m=C.createGain();m.gain.value=0,m.connect(C.destination);let y=()=>{if(l)return void(m=null);let w=C.createOscillator();w.onended=y,w.connect(m),w.start(0),w.stop(C.currentTime+g),a(C.currentTime)};y()}return()=>{l=!0}}class oU{constructor(){$e(this,"context",void 0),$e(this,"analyserNode",void 0),$e(this,"sourceNode",void 0),this.context=wa(),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4}updateSource(A){if(A!==this.sourceNode){if(this.sourceNode)try{this.sourceNode.disconnect(this.analyserNode)}catch{}this.sourceNode=A,A==null||A.connect(this.analyserNode)}}getVolumeLevel(){if(!this.sourceNode||(!this.context||Ma()||Hl()||this.context.state!=="running"&&this.context.resume(),!this.analyserNode))return 0;let A=new Float32Array(this.analyserNode.fftSize);if(this.analyserNode.getFloatTimeDomainData)this.analyserNode.getFloatTimeDomainData(A);else{let g=new Uint8Array(this.analyserNode.fftSize);this.analyserNode.getByteTimeDomainData(g);for(let C=0;Cg+C*C,0)/A.length;return Math.max(10*Math.log10(l)+100,0)/100}getAnalyserNode(){return this.analyserNode}rebuildAnalyser(){try{var A,l;(A=this.sourceNode)===null||A===void 0||A.disconnect(this.analyserNode),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4,(l=this.sourceNode)===null||l===void 0||l.connect(this.analyserNode)}catch{X.warning("rebuild analyser node failed.")}}destroy(){this.updateSource(void 0)}}class sU extends io{get processSourceNode(){return this.sourceNode}set processedNode(A){var l;if(!this.isDestroyed&&this._processedNode!==A){try{var g;(g=this.sourceNode)===null||g===void 0||g.disconnect(this.outputNode)}catch{}(l=this._processedNode)===null||l===void 0||l.disconnect(),this._processedNode=A,this.connect()}}get processedNode(){return this._processedNode}constructor(){super(),$e(this,"outputNode",void 0),$e(this,"outputTrack",void 0),$e(this,"isPlayed",!1),$e(this,"sourceNode",void 0),$e(this,"context",void 0),$e(this,"audioBufferNode",void 0),$e(this,"destNode",void 0),$e(this,"audioOutputLevel",0),$e(this,"volumeLevelAnalyser",void 0),$e(this,"_processedNode",void 0),$e(this,"playNode",void 0),$e(this,"isDestroyed",!1),$e(this,"onNoAudioInput",void 0),$e(this,"isNoAudioInput",!1),$e(this,"_noAudioInputCount",0),this.context=wa(),this.playNode=this.context.destination,this.outputNode=this.context.createGain(),X1(this.outputNode),this.volumeLevelAnalyser=new oU}startGetAudioBuffer(A){this.audioBufferNode||(this.audioBufferNode=this.context.createScriptProcessor(A),this.outputNode.connect(this.audioBufferNode),this.audioBufferNode.connect(this.context.destination),this.audioBufferNode.onaudioprocess=l=>{this.emit(WA.ON_AUDIO_BUFFER,function(g){for(let C=0;C{kn.emit("autoplay-failed")}),this.isPlayed=!0,this.playNode=A||this.context.destination,this.outputNode.connect(this.playNode)}stop(){if(this.isPlayed)try{this.outputNode.disconnect(this.playNode)}catch{}this.isPlayed=!1}getAccurateVolumeLevel(){return this.volumeLevelAnalyser.getVolumeLevel()}async checkHasAudioInput(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(A>5)return this.isNoAudioInput=!0,this.onNoAudioInput&&this.onNoAudioInput(),!1;Ma()||Hl()?this.context.state==="suspended"&&this.context.resume():this.context.state!=="running"&&this.context.resume();let l=this.volumeLevelAnalyser.getAnalyserNode(),g;l.getFloatTimeDomainData?(g=new Float32Array(l.fftSize),l.getFloatTimeDomainData(g)):(g=new Uint8Array(l.fftSize),l.getByteTimeDomainData(g));let C=!1;for(let m=0;m{if(X.debug("ready to rebuild web audio, state:",this.context.state),this.isNoAudioInput&&await this.checkHasAudioInput(),!this.isNoAudioInput||this.isDestroyed)return document.body.removeEventListener("click",this.rebuildWebAudio,!0),void X.debug("rebuild web audio success, current volume status",this.getAccurateVolumeLevel());this.context.resume().then(()=>X.info("resume success")),X.debug("rebuild web audio because of ios 12 bugs"),this.disconnect();let w=this.track;this.track=this.track.clone(),this.isCurrentTrackCloned?w.stop():this.isCurrentTrackCloned=!0;let b=new MediaStream([this.track]);this.sourceNode=this.context.createMediaStreamSource(b),X1(this.sourceNode),this.volumeLevelAnalyser.rebuildAnalyser();let M=this.outputNode.gain.value;this.outputNode=this.context.createGain(),this.outputNode.gain.setValueAtTime(M,this.context.currentTime),X1(this.outputNode),this.emit(WA.UPDATE_SOURCE),this.connect(),this.audioElement.srcObject=b,this.isPlayed&&this.play(this.playNode),this.checkHasAudioInput()}),A.kind!=="audio")throw new nt(fe.UNEXPECTED_ERROR);this.track=A;let m=new MediaStream([this.track]);if(this.isRemoteTrack=!!l,this.sourceNode=this.context.createMediaStreamSource(m),X1(this.sourceNode),g){let w=g.clone();w.enabled=!0,this.clonedTrack=w,X.debug("create an unmuted track ".concat(w.id," from the original track ").concat(g.id," to get the volume"));let b=this.context.createMediaStreamSource(new MediaStream([w]));X1(b),this.originVolumeLevelAnalyser=new oU,this.originVolumeLevelAnalyser.updateSource(b)}this.connect(),this.audioElement=document.createElement("audio"),this.audioElement.srcObject=m;let y=Wi();l&&y.os===Vs.IOS&&Number((C=y.osVersion)===null||C===void 0?void 0:C.split(".")[0])<15&&(kn.on(Ys.STATE_CHANGE,()=>{this.context.state==="suspended"?document.body.addEventListener("click",this.rebuildWebAudio,!0):this.context.state==="running"&&this.rebuildWebAudio()}),this.checkHasAudioInput().then(w=>{w||document.body.addEventListener("click",this.rebuildWebAudio,!0)}))}updateTrack(A){this.sourceNode.disconnect(),this.track=A,this.isCurrentTrackCloned=!1;let l=new MediaStream([A]);this.sourceNode=this.context.createMediaStreamSource(l),X1(this.sourceNode),this.processedNode||this.sourceNode.connect(this.outputNode),this.emit(WA.UPDATE_SOURCE),this.audioElement.srcObject=l}destroy(){var A;this.audioElement.srcObject=null,this.audioElement.remove(),kn.off("state-change",this.rebuildWebAudio),(A=this.originVolumeLevelAnalyser)===null||A===void 0||A.destroy(),this.clonedTrack=void 0,super.destroy()}createMediaStreamSourceNode(A){return this.context.createMediaStreamSource(new MediaStream([A]))}updateOriginTrack(A){let l=A.clone();l.enabled=!0,this.clonedTrack&&(this.clonedTrack.stop(),this.clonedTrack=l),X.debug("create an unmuted track ".concat(l.id," from the original track ").concat(A.id," to get the volume"));let g=this.context.createMediaStreamSource(new MediaStream([l]));X1(g),this.originVolumeLevelAnalyser&&this.originVolumeLevelAnalyser.updateSource(g)}getOriginVolumeLevel(){return this.originVolumeLevelAnalyser?this.originVolumeLevelAnalyser.getVolumeLevel():this.getAccurateVolumeLevel()}}async function jR(a,A,l){let g=(m,y)=>m?typeof m!="number"?m.max||m.exact||m.ideal||m.min||y:m:y,C={audio:!!l&&{mandatory:{chromeMediaSource:"desktop"}},video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:a,maxHeight:g(A.height,1080),maxWidth:g(A.width,1920)}}};return A.frameRate&&typeof A.frameRate!="number"?(C.video.mandatory.maxFrameRate=A.frameRate.max,C.video.mandatory.minFrameRate=A.frameRate.min):typeof A.frameRate=="number"&&(C.video.mandatory.maxFrameRate=A.frameRate),await navigator.mediaDevices.getUserMedia(C)}async function HJ(a,A){let l=await aU(a.mediaSource),{sourceId:g,audio:C}=await function(m){let y=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new Ft((w,b)=>{let M=document.createElement("div");M.innerText="share screen",M.setAttribute("style","text-align: center; height: 25px; line-height: 25px; border-radius: 4px 4px 0 0; background: #D4D2D4; border-bottom: solid 1px #B9B8B9;");let k=document.createElement("div");k.setAttribute("style","width: 100%; height: 500px; padding: 15px 25px ; box-sizing: border-box;");let V=document.createElement("div");V.innerText="Agora Web Screensharing wants to share the contents of your screen with webdemo.agorabeckon.com. Choose what you'd like to share.",V.setAttribute("style","height: 12%;");let K=document.createElement("div");K.setAttribute("style","width: 100%; height: 80%; background: #FFF; border: solid 1px #CBCBCB; display: flex; flex-wrap: wrap; justify-content: space-around; overflow-y: scroll; padding: 0 15px; box-sizing: border-box;");let q=document.createElement("div");q.setAttribute("style","display: flex; justify-content: space-between; padding: 16px 0;");let ce=document.createElement("button");ce.innerHTML="cancel",ce.setAttribute("style","width: 85px;"),ce.onclick=()=>{document.body.removeChild(pe);let Se=new Error("NotAllowedError");Se.name="NotAllowedError",b(Se)};let oe=y,le=document.createElement("div");if(y){let Se=document.createElement("input");Se.setAttribute("type","checkbox");let be=document.createElement("span");Se.setAttribute("style","margin-right: 6px;"),be.innerText="Share audio",Se.checked=oe,Se.onchange=()=>{oe=Se.checked},le.appendChild(Se),le.appendChild(be)}q.appendChild(le),q.appendChild(ce),k.appendChild(V),k.appendChild(K),k.appendChild(q);let pe=document.createElement("div");pe.setAttribute("style","position: fixed; z-index: 99999999; top: 50%; left: 50%; width: 620px; height: 525px; background: #ECECEC; border-radius: 4px; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);"),pe.appendChild(M),pe.appendChild(k),document.body.appendChild(pe),m.map(Se=>{if(Se.id){let be=document.createElement("div");be.setAttribute("style","width: 30%; height: 160px; padding: 20px 0; text-align: center;box-sizing: content-box;");let Ue=Se.thumbnail;try{let{width:xe}=Ue.getSize();xe>1920&&(Ue=Ue.resize({width:1920}))}catch(xe){throw xe&&xe.message.startsWith("Illegal invocation")&&console.error("Operate thumbnail error, please try to set contextIsolation: false. (https://github.com/electron/electron/issues/34953)"),xe}be.innerHTML='
'+Se.name.replace(/[\u00A0-\u9999<>\&]/g,function(xe){return"&#"+xe.charCodeAt(0)+";"})+"",be.onclick=()=>{document.body.removeChild(pe),w({sourceId:Se.id,audio:oe})},K.appendChild(be)}})})}(l,A);return await jR(g,a,C)}async function aU(a){let A=["window","screen"];a!=="application"&&a!=="window"||(A=["window"]),a==="screen"&&(A=["screen"]);let l=WP();if(!l)throw console.error("failed to fetch electron, please mount it to window"),new nt(fe.ELECTRON_IS_NULL);let g=null;try{var C;g=((C=l.desktopCapturer)===null||C===void 0?void 0:C.getSources({types:A}))||l.ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES",{types:A})}catch{g=null}g&&g.then||(g=new Ft((m,y)=>{l.desktopCapturer.getSources({types:A},(w,b)=>{w?y(w):m(b)})}));try{return await g}catch(m){throw new nt(fe.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,m.toString())}}let js=new Is("safari"),C4=!1,bo=!1;async function z1(a,A){let l=0,g=null;for(;l<2;)try{g=await $r(a,A,l>0);break}catch(C){if(C instanceof nt)throw X.error("[".concat(A,"] ").concat(C.toString())),C;let m=C2(C.name||C.code||C,C.message);if(m.code===fe.MEDIA_OPTION_INVALID){X.debug("[".concat(A,"] detect media option invalid, retry")),l+=1,await Ks(500);continue}throw X.error("[".concat(A,"] ").concat(m.toString())),m}if(!g)throw new nt(fe.UNEXPECTED_ERROR,"can not find stream after getUserMedia");return g}async function $r(a,A,l){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new nt(fe.NOT_SUPPORTED,"can not find getUserMedia");l&&(a.video&&(delete a.video.width,delete a.video.height),a.screen&&(delete a.screen.width,delete a.screen.height));let g=Bi(),C=new MediaStream;if(a.audioSource&&C.addTrack(a.audioSource),a.videoSource&&C.addTrack(a.videoSource),!a.audio&&!a.video&&!a.screen)return X.debug("Using Video Source/ Audio Source"),C;if(a.screen)if(WP())a.screen.sourceId?B2(C,await jR(a.screen.sourceId,a.screen,!!a.screenAudio)):B2(C,await HJ(a.screen,!!a.screenAudio));else if(Tg()&&a.screen.extensionId&&a.screen.mandatory){if(!g.getStreamFromExtension)throw new nt(fe.NOT_SUPPORTED,"This browser does not support screen sharing");X.debug("[".concat(A,'] Screen access on chrome stable, looking for extension"'));let K=await(y=a.screen.extensionId,w=A,new Ft((q,ce)=>{try{chrome.runtime.sendMessage(y,{getStream:!0},oe=>{if(!oe||!oe.streamId)return X.error("[".concat(w,"] No response from Chrome Plugin. Plugin not installed properly"),oe),void ce(new nt(fe.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));q(oe.streamId)})}catch(oe){X.error("[".concat(w,"] AgoraRTC screensharing plugin is not accessible(").concat(y,")"),oe.toString()),ce(new nt(fe.CHROME_PLUGIN_NOT_INSTALL))}}));a.screen.mandatory.chromeMediaSourceId=K,B2(C,await navigator.mediaDevices.getUserMedia({video:{mandatory:a.screen.mandatory}}))}else if(g.getDisplayMedia){var m;a.screen.mediaSource&&HR(a.screen.mediaSource);let K={width:a.screen.width,height:a.screen.height,frameRate:a.screen.frameRate,displaySurface:(m=a.screen.displaySurface)!==null&&m!==void 0?m:a.screen.mediaSource==="screen"?"monitor":a.screen.mediaSource},{selfBrowserSurface:q,surfaceSwitching:ce,systemAudio:oe,preferCurrentTab:le,windowAudio:pe,monitorTypeSurfaces:Se}=a.screen,be={selfBrowserSurface:q,surfaceSwitching:ce,systemAudio:oe,preferCurrentTab:le,windowAudio:pe,monitorTypeSurfaces:Se};!q&&delete be.selfBrowserSurface,!ce&&delete be.surfaceSwitching,!oe&&delete be.systemAudio,!le&&delete be.preferCurrentTab,!pe&&delete be.windowAudio,!Se&&delete be.monitorTypeSurfaces,X.debug("[".concat(A,"] getDisplayMedia:"),JSON.stringify({video:K,audio:a.screenAudio,controls:be})),B2(C,await navigator.mediaDevices.getDisplayMedia(Qn({video:K,audio:a.screenAudio},be)))}else{if(!uo())throw X.error("[".concat(A,"] This browser does not support screenSharing")),new nt(fe.NOT_SUPPORTED,"This browser does not support screen sharing");{a.screen.mediaSource&&HR(a.screen.mediaSource);let K={video:{mediaSource:a.screen.mediaSource,width:a.screen.width,height:a.screen.height,frameRate:a.screen.frameRate}};X.debug("[".concat(A,"] getUserMedia: ").concat(JSON.stringify(K))),B2(C,await navigator.mediaDevices.getUserMedia(K))}}var y,w;if(!a.video&&!a.audio)return C;let b={video:a.video,audio:a.audio},M=Ie("MEDIA_DEVICE_CONSTRAINTS");if(M)try{typeof M=="string"&&(M=JSON.parse(M)),b=wu(b,M)}catch{}X.debug("[".concat(A,"] GetUserMedia"),JSON.stringify(b)),Wi();let k,V=null;($s()||Ma()||DC())&&(V=await js.lock());try{k=await navigator.mediaDevices.getUserMedia(b)}catch(K){throw V&&V(),K}return b.audio&&(C4=!0),b.video&&(bo=!0),B2(C,k),V&&V(),C}function C2(a,A){switch(a){case"Starting video failed":case"OverconstrainedError":case"TrackStartError":return new nt(fe.MEDIA_OPTION_INVALID,"".concat(a,": ").concat(A));case"NotFoundError":case"DevicesNotFoundError":return new nt(fe.DEVICE_NOT_FOUND,"".concat(a,": ").concat(A));case"NotSupportedError":return new nt(fe.NOT_SUPPORTED,"".concat(a,": ").concat(A));case"NotReadableError":return new nt(fe.NOT_READABLE,"".concat(a,": ").concat(A));case"InvalidStateError":case"NotAllowedError":case"PERMISSION_DENIED":case"PermissionDeniedError":return new nt(fe.PERMISSION_DENIED,"".concat(a,": ").concat(A));case"ConstraintNotSatisfiedError":return new nt(fe.CONSTRAINT_NOT_SATISFIED,"".concat(a,": ").concat(A));default:return X.error("getUserMedia unexpected error",a),new nt(fe.UNEXPECTED_ERROR,"".concat(a,": ").concat(A))}}function B2(a,A){let l=a.getVideoTracks()[0],g=a.getAudioTracks()[0],C=A.getVideoTracks()[0],m=A.getAudioTracks()[0];m&&(g&&a.removeTrack(g),a.addTrack(m)),C&&(l&&a.removeTrack(l),a.addTrack(C))}let p1=new class extends io{get state(){return this._state}set state(a){a!==this._state&&(this.emit(Ng.STATE_CHANGE,a),this._state=a)}constructor(){super(),$e(this,"_state",Qa.IDLE),$e(this,"isAccessMicrophonePermission",!1),$e(this,"isAccessCameraPermission",!1),$e(this,"lastAccessMicrophonePermission",!1),$e(this,"lastAccessCameraPermission",!1),$e(this,"checkdeviceMatched",!1),$e(this,"deviceInfoMap",new Map),this.init().then(()=>{navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",this.updateDevicesInfo.bind(this)),window.setInterval(()=>{(Ie("ENUMERATE_DEVICES_INTERVAL")||(Ld()||t2()===Vs.HARMONY_OS)&&Od())&&this.updateDevicesInfo()},Ie("ENUMERATE_DEVICES_INTERVAL_TIME"))}).catch(a=>X.error(a.toString()))}async enumerateDevices(a,A){let l=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)throw new nt(fe.NOT_SUPPORTED,"enumerateDevices() not supported.");let g=await navigator.mediaDevices.enumerateDevices(),C=this.checkMediaDeviceInfoIsOk(g),m=!this.isAccessMicrophonePermission&&a,y=!this.isAccessCameraPermission&&A;C.audio&&(m=!1),C.video&&(y=!1);let w=null,b=null,M=null;if(!l&&(m||y)){if(js.isLocked&&(X.debug("[device manager] wait GUM lock"),(await js.lock())(),X.debug("[device manager] GUM unlock")),C4&&(m=!1,this.isAccessMicrophonePermission=!0),bo&&(y=!1,this.isAccessCameraPermission=!0),X.debug("[device manager] check media device permissions",a,A,m,y),m&&y){try{M=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch(k){let V=C2(k.name||k.code||k,k.message);if(V.code===fe.PERMISSION_DENIED)throw V;X.warning("getUserMedia failed in getDevices",V)}this.isAccessCameraPermission=!0,this.isAccessMicrophonePermission=!0}else if(m){try{w=await navigator.mediaDevices.getUserMedia({audio:a})}catch(k){let V=C2(k.name||k.code||k,k.message);if(V.code===fe.PERMISSION_DENIED)throw V;X.warning("getUserMedia failed in getDevices",V)}this.isAccessMicrophonePermission=!0}else if(y){try{b=await navigator.mediaDevices.getUserMedia({video:A})}catch(k){let V=C2(k.name||k.code||k,k.message);if(V.code===fe.PERMISSION_DENIED)throw V;X.warning("getUserMedia failed in getDevices",V)}this.isAccessCameraPermission=!0}X.debug("[device manager] mic permission",a,"cam permission",A)}try{let k=await navigator.mediaDevices.enumerateDevices();return w&&w.getTracks().forEach(V=>V.stop()),b&&b.getTracks().forEach(V=>V.stop()),M&&M.getTracks().forEach(V=>V.stop()),w=null,b=null,M=null,k}catch(k){return w&&w.getTracks().forEach(V=>V.stop()),b&&b.getTracks().forEach(V=>V.stop()),M&&M.getTracks().forEach(V=>V.stop()),w=null,b=null,M=null,new nt(fe.ENUMERATE_DEVICES_FAILED,k.toString()).throw()}}async getRecordingDevices(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,a)).filter(A=>A.kind==="audioinput")}async getCamerasDevices(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!1,!0,a)).filter(A=>A.kind==="videoinput")}async getSpeakers(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,a)).filter(A=>A.kind==="audiooutput")}searchDeviceIdByName(a){let A=null;return this.deviceInfoMap.forEach(l=>{l.device.label===a&&(A=l.device.deviceId)}),A}async getDeviceById(a){let A=(await this.enumerateDevices(!0,!0,!0)).find(l=>l.deviceId===a);if(!A)throw new nt(fe.DEVICE_NOT_FOUND,"deviceId: ".concat(a));return A}async init(){this.state=Qa.INITING;try{await this.updateDevicesInfo(),this.state=Qa.INITEND}catch(a){throw this.state=Qa.IDLE,(typeof isSecureContext=="boolean"?isSecureContext:location.protocol==="https:"||location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"||location.hostname==="::1")?(X.warning("Device Detection functionality cannot start properly.",a.toString()),a):new nt(fe.WEB_SECURITY_RESTRICT,"Your context is limited by web security, please try using https protocol or localhost.")}}async updateDevicesInfo(){let a=await this.enumerateDevices(!0,!0,!0),A=Date.now(),l=[];if(a[0]&&a[0].label&&this.checkdeviceMatched===!1){this.checkdeviceMatched=!0;let C=a.find(y=>y.kind==="audioinput"&&y.deviceId==="default"),m=a.find(y=>y.kind==="audiooutput"&&y.deviceId==="default");C&&m?m.groupId===C.groupId?X.debug("[device-check] default input ".concat(C.label," and output ").concat(m.label," is the same group")):X.debug("[device-check] default input ".concat(C.label," and output ").concat(m.label," is not the same group")):X.debug("[device-check] default input or output not found")}let g=this.checkMediaDeviceInfoIsOk(a);if(a.forEach(C=>{if(!C.deviceId)return;let m=this.deviceInfoMap.get("".concat(C.kind,"_").concat(C.deviceId));if((m?m.state:"INACTIVE")!=="ACTIVE"){let y={initAt:A,updateAt:A,device:C,state:"ACTIVE"};this.deviceInfoMap.set("".concat(C.kind,"_").concat(C.deviceId),y),l.push(y)}m&&(m.updateAt=A)}),this.deviceInfoMap.forEach((C,m)=>{C.state==="ACTIVE"&&C.updateAt!==A&&(C.state="INACTIVE",l.push(C))}),this.state!==Qa.INITEND)return g.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),void(g.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0));l.forEach(C=>{switch(C.device.kind){case"audioinput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(Ng.RECORDING_DEVICE_CHANGED,C);break;case"videoinput":this.lastAccessCameraPermission&&this.isAccessCameraPermission&&this.emit(Ng.CAMERA_DEVICE_CHANGED,C);break;case"audiooutput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(Ng.PLAYOUT_DEVICE_CHANGED,C)}}),g.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),g.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0)}checkMediaDeviceInfoIsOk(a){let A=a.filter(C=>C.kind==="audioinput"),l=a.filter(C=>C.kind==="videoinput"),g={audio:!1,video:!1};for(let C of A)if(C.label&&C.deviceId){g.audio=!0;break}for(let C of l)if(C.label&&C.deviceId){g.video=!0;break}return g}},JR=!1,cA=new class extends io{constructor(){super(...arguments),$e(this,"onAutoplayFailed",void 0),$e(this,"onAudioAutoplayFailed",void 0)}};function p4(){if(JR)return Ie("FLS_AUTOPLAY_EMITS")?(cA.onAutoplayFailed&&cA.onAutoplayFailed(),cA.emit("autoplay-failed")):void 0;{let a=A=>{A.preventDefault(),JR=!1,bC()?document.body.removeEventListener("click",a,!0):(document.body.removeEventListener("touchstart",a,!0),document.body.removeEventListener("mousedown",a,!0))};JR=!0,bC()?document.body.addEventListener("click",a,!0):(document.body.addEventListener("touchstart",a,!0),document.body.addEventListener("mousedown",a,!0)),X.info("detect media autoplay failed, document: https://docs.agora.io/cn/Voice/autoplay_policy_web_ng?platform=Web"),cA.onAutoplayFailed?cA.onAutoplayFailed():cA.onAudioAutoplayFailed?X.warning(`AgoraRTC.onAudioAutoplayFailed has been deprecated in favor of AgoraRTC.onAutoplayFailed. - - Please refer to the Agora document to migrate the newer API, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`):X.warning(`We have detected a media autoplay failed event, and found out that you haven't implemented AgoraRTC.onAutoplayFailed callback yet. - - It will cause audio/video element not playing automatically on some browsers without user interaction, possibly hurting user experiences. - - Please refer to the Agora document to properly handle autoplay failed event, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`),cA.emit("autoplay-failed")}}function Dc(a,A,l,g){if(!a)return;let C=tr.getBaseInfoBySessionId(a);if(!C)return;let m=C.info,y=Date.now(),w=Qn(Qn({},m),{},{vid:m.vid===void 0?0:Number(m.vid),lts:y,elapse:y-C.startTime,cbRegistered:cA.onAutoplayFailed||cA.onAudioAutoplayFailed?1:-1,errorMsg:l,mediaType:A,trackId:g,extend:void 0});tr.send({type:Eo.AUTOPLAY_FAILED,data:w},!0)}let qR=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","error"],va=new class{constructor(){$e(this,"onAutoplayFailed",void 0),$e(this,"elementMap",new Map),$e(this,"elementStateMap",new Map),$e(this,"elementsNeedToResume",[]),$e(this,"sinkIdMap",new Map),$e(this,"autoResumeAfterInterruption",a=>Ft.all(Array.from(this.elementMap.entries()).map(async A=>{let[l,g]=A,C=this.elementStateMap.get(l),m=g.srcObject.getAudioTracks()[0],y=m&&m.readyState;if(X.debug("resume after interrupted, ele: ".concat(C," audio: ").concat(y," ").concat(a)),y==="live"){if(a)return g.pause(),g.play();if(kn.curState==="running")return i2()?(g.pause(),g.play()):C&&C==="paused"?g.play():void 0}}))),$e(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{Array.from(this.elementMap.entries()).forEach(a=>{let[A,l]=a,g=l.srcObject.getAudioTracks()[0];g&&g.readyState==="live"&&(X.debug("auto resume after interruption inside autoResumeAfterInterruptionOnIOS15"),l.pause(),l.play())})}),this.autoResumeAudioElement(),kn.on(Ys.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),kn.on(Ys.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),kn.on(Ys.STATE_CHANGE,()=>{Ma()&&kn.prevState==="suspended"&&kn.curState==="running"&&this.autoResumeAfterInterruption()})}async setSinkID(a,A){let l=this.elementMap.get(a);if(this.sinkIdMap.set(a,A),l)try{await l.setSinkId(A)}catch(g){throw new nt(fe.PERMISSION_DENIED,"can not set sink id: "+g.toString())}}play(a,A,l,g){if(this.elementMap.has(A))return;let C=document.createElement("audio");C.autoplay=!0,C.srcObject=new MediaStream([a]),this.bindAudioElementEvents(A,C),this.elementMap.set(A,C),this.elementStateMap.set(A,Ta.INIT),this.setVolume(A,l);let m=this.sinkIdMap.get(A);if(m)try{C.setSinkId(m).catch(w=>{X.warning("[".concat(A,"] set sink id failed"),w.toString())})}catch(w){X.warning("[".concat(A,"] set sink id failed"),w.toString())}let y=C.play();y&&y.then&&y.catch(w=>{g&&Dc(g,"audio",w.message,A),X.warning("audio element play warning",w.toString()),this.elementMap.has(A)&&w.name==="NotAllowedError"&&(X.warning("detected audio element autoplay failed"),this.elementsNeedToResume.push(C),Fi(()=>{this.onAutoplayFailed&&this.onAutoplayFailed(),p4()}))})}updateTrack(a,A){let l=this.elementMap.get(a);l&&(l.srcObject=new MediaStream([A]))}isPlaying(a){return this.elementMap.has(a)&&this.elementStateMap.get(a)==="playing"}setVolume(a,A){let l=this.elementMap.get(a);l&&(A=Math.max(0,Math.min(100,A)),l.volume=A/100)}getVolume(a){let A=this.elementMap.get(a);return A?A.volume:0}stop(a){let A=this.elementMap.get(a);if(this.sinkIdMap.delete(a),!A)return;let l=this.elementsNeedToResume.indexOf(A);this.elementsNeedToResume.splice(l,1),A.srcObject=null,A.remove(),this.elementMap.delete(a),this.elementStateMap.delete(a)}bindAudioElementEvents(a,A){qR.forEach(l=>{A.addEventListener(l,g=>{let C=this.elementStateMap.get(a),m=g.type==="pause"?"paused":g.type;if(X.debug("[".concat(a,"] audio-element-status change ").concat(C," => ").concat(m)),g.type==="error"){let y=A==null?void 0:A.error;y&&X.error("[".concat(a,"] media error, code: ").concat(y.code,", message: ").concat(y.message))}this.elementStateMap.set(a,m)})})}getPlayerState(a){return this.elementStateMap.get(a)||"uninit"}autoResumeAudioElement(){let a=()=>{this.elementsNeedToResume.forEach(A=>{A.play().then(l=>{X.debug("Auto resume audio element success")}).catch(l=>{X.warning("Auto resume audio element failed!",l)})}),this.elementsNeedToResume=[]};new Ft(A=>{document.body?A():window.addEventListener("load",()=>A())}).then(()=>{bC()?document.body.addEventListener("click",a,!0):(document.body.addEventListener("touchstart",a,!0),document.body.addEventListener("mousedown",a,!0))})}};function J(){return function(a,A,l){let g=l.value;return typeof g=="function"&&(l.value=function(){this._isClosed&&new nt(fe.INVALID_OPERATION,"[".concat(this.getTrackId(),"] cannot operate a closed track")).print("warning",X);for(var C=arguments.length,m=new Array(C),y=0;y{w.then(b).catch(M)}):w}),l}}class f4 extends io{constructor(A){super(),$e(this,"name","VideoProcessorDestination"),$e(this,"ID","0"),$e(this,"_source",void 0),$e(this,"videoContext",void 0),$e(this,"inputTrack",void 0),this.videoContext=A}get kind(){return"video"}get enabled(){return!0}pipe(){throw new nt(fe.NOT_SUPPORTED,"VideoProcessor cannot pipe to any other Processor")}unpipe(){throw new nt(fe.NOT_SUPPORTED,"VideoProcessor cannot unpipe to any other Processor")}enable(){}disable(){}updateInput(A){if(A.context!==this.videoContext)throw new Error(`ProcessorContext passed to VideoTrack.processorDestination doesn't match it's belonging VideoTrack's context. -Probably you are making pipeline like this: -videoTrack1.pipe(processor).pipe(videoTrack2.processorDestination).`);A.track&&A.track!==this.inputTrack&&(this.videoContext.chained=!0,this.inputTrack=A.track,this.emit(Bn.ON_TRACK,A.track))}reset(){this.inputTrack=void 0,this.videoContext.chained=!1,this.emit(Bn.ON_TRACK,void 0)}}class AU extends io{set chained(A){this._chained=A}get chained(){return this._chained}constructor(A,l){super(),$e(this,"constraintsMap",new Map),$e(this,"statsRegistry",[]),$e(this,"usageRegistry",[]),$e(this,"trackId",void 0),$e(this,"direction",void 0),$e(this,"_chained",!1),this.trackId=A,this.direction=l}async getConstraints(){return await rs(this,XA.REQUEST_CONSTRAINTS)}async requestApplyConstraints(A,l){var g;return X.info("processor ".concat(l.name," requestApplyConstraints for ").concat(this.trackId)),A&&this.constraintsMap.set(l,A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(g=this.constraintsMap).call(g)))}async requestRevertConstraints(A){var l;if(this.constraintsMap.has(A))return X.info("processor ".concat(A.name," requestRevertConstraints for ").concat(this.trackId)),this.constraintsMap.delete(A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(l=this.constraintsMap).call(l)))}registerStats(A,l,g){this.statsRegistry.find(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l)||this.statsRegistry.push({processorName:A.name,processorID:A.ID,type:l,cb:g})}unregisterStats(A,l){let g=this.statsRegistry.findIndex(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l);g!==-1&&this.statsRegistry.splice(g,1)}gatherStats(){let A=[];for(let{processorID:l,processorName:g,type:C,cb:m}of this.statsRegistry)try{let y=m();A.push({processorID:l,processorName:g,type:C,stats:y})}catch(y){X.error(new nt(fe.UNEXPECTED_ERROR,y.message))}return A}registerUsage(A,l){this.usageRegistry.find(g=>g.processorID===A.ID&&g.processorName===A.name)||this.usageRegistry.push({processorID:A.ID,processorName:A.name,cb:l})}unregisterUsage(A){let l=this.usageRegistry.findIndex(g=>g.processorID===A.ID&&g.processorName===A.name);l!==-1&&this.usageRegistry.splice(l,1)}async gatherUsage(){let A=[];if(!this.chained)return[];for(let{cb:l}of this.usageRegistry)try{let g=l();g instanceof Ft&&(g=await g),A.push(Qn(Qn({},g),{},{direction:this.direction}))}catch(g){X.error("gather extension usage error",g)}return A}getDirection(){return this.direction}}class _4 extends io{constructor(A){super(),$e(this,"name","AudioProcessorDestination"),$e(this,"ID","0"),$e(this,"inputTrack",void 0),$e(this,"inputNode",void 0),$e(this,"audioProcessorContext",void 0),$e(this,"_source",void 0),this.audioProcessorContext=A}get kind(){return"audio"}get enabled(){return!0}pipe(){throw new nt(fe.NOT_SUPPORTED,"AudioProcessorDestination cannot pipe to any other Processor")}unpipe(){throw new nt(fe.NOT_SUPPORTED,"AudioProcessor cannot unpipe to any other Processor")}enable(){}disable(){}reset(){this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext.chained=!1,this.emit(Bn.ON_TRACK,void 0),this.emit(Bn.ON_NODE,void 0)}updateInput(A){if(A.context!==this.audioProcessorContext)throw new Error(`ProcessorContext passed to AudioTrack.processorDestination doesn't match it's belonging AudioTrack's context. - Probably you are making pipeline like this: audioTrack1.pipe(processor).pipe(audioTrack2.processorDestination).`);A.track&&this.inputTrack!==A.track&&(this.audioProcessorContext.chained=!0,this.inputTrack=A.track,this.emit(Bn.ON_TRACK,this.inputTrack)),A.node&&this.inputNode!==A.node&&(this.audioProcessorContext.chained=!0,this.inputNode=A.node,this.emit(Bn.ON_NODE,this.inputNode))}}class m4 extends io{set chained(A){this._chained=A}get chained(){return this._chained}constructor(A,l,g){super(),$e(this,"constraintsMap",new Map),$e(this,"statsRegistry",[]),$e(this,"audioContext",void 0),$e(this,"trackId",void 0),$e(this,"direction",void 0),$e(this,"usageRegistry",[]),$e(this,"_chained",!1),this.audioContext=A,this.trackId=l,this.direction=g}async getConstraints(){return rs(this,XA.REQUEST_CONSTRAINTS)}getAudioContext(){return this.audioContext}async requestApplyConstraints(A,l){var g;return X.info("processor ".concat(l.name," requestApplyConstraints for ").concat(this.trackId)),A&&this.constraintsMap.set(l,A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(g=this.constraintsMap).call(g)))}async requestRevertConstraints(A){var l;if(this.constraintsMap.has(A))return this.constraintsMap.delete(A),Wn(this,XA.REQUEST_UPDATE_CONSTRAINTS,Array.from(U1(l=this.constraintsMap).call(l)))}registerStats(A,l,g){this.statsRegistry.find(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l)||this.statsRegistry.push({processorName:A.name,processorID:A.ID,type:l,cb:g})}unregisterStats(A,l){let g=this.statsRegistry.findIndex(C=>C.processorID===A.ID&&C.processorName===A.name&&C.type===l);g!==-1&&this.statsRegistry.splice(g,1)}gatherStats(){let A=[];for(let{processorID:l,processorName:g,type:C,cb:m}of this.statsRegistry)try{let y=m();A.push({processorID:l,processorName:g,type:C,stats:y})}catch(y){X.error(new nt(fe.UNEXPECTED_ERROR,y.message))}return A}registerUsage(A,l){this.usageRegistry.find(g=>g.processorID===A.ID&&g.processorName===A.name)||this.usageRegistry.push({processorID:A.ID,processorName:A.name,cb:l})}unregisterUsage(A){let l=this.usageRegistry.findIndex(g=>g.processorID===A.ID&&g.processorName===A.name);l!==-1&&this.usageRegistry.splice(l,1)}async gatherUsage(){let A=[];if(!this.chained)return[];for(let{cb:l}of this.usageRegistry)try{let g=l();g instanceof Ft&&(g=await g),A.push(Qn(Qn({},g),{},{direction:this.direction}))}catch(g){X.error("gather extension usage error",g)}return A}getDirection(){return this.direction}}class B4 extends io{get isPlayed(){return!0}get isFreeze(){return!1}constructor(){super(),$e(this,"context",void 0),$e(this,"processSourceNode",void 0),$e(this,"outputTrack",void 0),$e(this,"processedNode",void 0),$e(this,"clonedTrack",void 0),$e(this,"outputNode",void 0),this.outputNode=new Rs}setVolume(){}createOutputTrack(){throw new nt(fe.NOT_SUPPORTED,"can not create output MediaStreamTrack when WebAudio disabled")}getOriginVolumeLevel(){return 0}getAccurateVolumeLevel(){return 0}stopGetAudioBuffer(){}startGetAudioBuffer(){}play(){}stop(){}destroy(){}updateTrack(){}updateOriginTrack(){}createMediaStreamSourceNode(){}}class Rs{disconnect(){}connect(){}}function ao(a){return new Ft((A,l)=>{let g=!1,C=document.createElement("video");C.setAttribute("autoplay",""),C.setAttribute("muted",""),C.muted=!0,C.autoplay=!0,C.setAttribute("playsinline",""),C.setAttribute("style","position: fixed; top: 0; left: 0; width: 1px; height: 1px"),document.body.appendChild(C);let m=Ma()?"canplay":"playing";C.addEventListener(m,()=>{let y=C.videoWidth,w=C.videoHeight;!y&&uo()||(g=!0,C.srcObject=null,C.remove(),A([y,w]))}),C.srcObject=new MediaStream([a]),C.play().catch(Ia),setTimeout(()=>{g||(C.srcObject=null,C.remove(),A([C.videoWidth,C.videoHeight]))},4e3)})}function WR(a){let A={};a.facingMode&&(A.facingMode=a.facingMode),a.cameraId&&(A.deviceId={exact:a.cameraId});let l=ya(a.encoderConfig);return l.width!=null&&(A.width=l.width),l.height!=null&&(A.height=l.height),!qb()&&l.frameRate&&(A.frameRate=l.frameRate),HP()&&typeof A.frameRate=="object"&&(A.frameRate.max=60),uo()&&(A.frameRate={ideal:30,max:30}),A}function ul(a){let A={};return qb()||(a.AGC!==void 0&&(A.autoGainControl=a.AGC),a.AEC!==void 0&&(A.echoCancellation=a.AEC),a.ANS!==void 0&&(A.noiseSuppression=a.ANS,Tg()&&a.ANS&&(A.googHighpassFilter=a.ANS))),A}function Uf(a){let A=ul(a);if(a.encoderConfig){let l=Pf(a.encoderConfig);A.channelCount=l.stereo?2:1,A.sampleRate=l.sampleRate,A.sampleSize=l.sampleSize}return a.microphoneId&&(A.deviceId={exact:a.microphoneId}),Ld()&&(A.sampleRate=void 0),A}let xf=a=>{let A=a._encoderConfig;if(!A)return;let{frameRate:l,width:g,height:C}=a.getMediaStreamTrackSettings(),{frameRate:m=l,width:y=g,height:w=C}=A;if(!m||!y||!w)return;y=a2(y),w=a2(w),m=a2(m);let{max:b,min:M}=function(q,ce,oe){let le=200*Math.pow(oe/15,.6)*Math.pow(q*ce/640/360,.75);return{min:Math.floor(le),max:Math.floor(4*le)}}(y,w,m),{bitrateMax:k,bitrateMin:V}=A||{};k||X.debug("calculate bitrate: [w: ".concat(y,", h: ").concat(w,", fps: ").concat(m,"] => [brMax: ").concat(k,", brMin: ").concat(V,"]"));let{maxFramerate:K}=Ie("ENCODER_CONFIG_LIMIT");return K&&typeof K=="number"&&(m=Math.min(m,K)),{frameRate:m,bitrateMax:k||b,bitrateMin:V||M,scaleResolutionDownBy:1,scale:0}},XR=async(a,A,l)=>await(async(g,C,m)=>{let y=function(M){let k=[];for(let V=0;V{let A=document.createElement("canvas");return A.width=2,A.height=2,new Ft((l,g)=>{A.toBlob(async C=>{if(A.remove(),C){let m=await S4(C);l({buffer:m,width:A.width,height:A.height})}else g(new nt(fe.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},a,1)})},S4=async a=>{let A=await a.arrayBuffer();return new Uint8Array(A)};var $R,R4,Ff,y4,ZR,Q4,ey,cU,T4,ty,yr,qt,qe,Js,Si,w4,Gf,D4,eo,ry,b4,N4,O4,L4,M4,Yo,S2,Hi,gl,iy,lU,dU,uU,El,ny,Vf,gU,Kf,lh,Da;let xt=($R=Sr({argsMap:(a,A)=>[a.getTrackId(),A],throttleTime:300}),R4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),Ff=J(),y4=rh("LocalAudioTrack","_enabledMutex"),ZR=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),Q4=J(),ey=rh("LocalAudioTrack","_enabledMutex"),cU=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),T4=J(),ty=J(),yr=J(),qt=Sr({argsMap:a=>[a.getTrackId()]}),qe=J(),Js=Sr({argsMap:a=>[a.getTrackId()]}),Si=J(),w4=Sr({argsMap:a=>[a.getTrackId()]}),Gf=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),D4=Sr({argsMap:a=>[a.getTrackId()]}),Li((eo=class extends UC{get _source(){return this.initWebAudio()}set _source(a){this._trackSource=a}get processorContext(){return this._processorContext||(this._processorContext=this.initProcessor().processorContext),this._processorContext}get processorDestination(){return this._processorDestination||(this._processorDestination=this.initProcessor().processorDestination),this._processorDestination}get isPlaying(){return this._useAudioElement?va.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"LocalAudioTrack"}constructor(a,A,l,g){super(a,l),$e(this,"trackMediaType",PC.AUDIO),$e(this,"_encoderConfig",void 0),$e(this,"_trackSource",void 0),$e(this,"metadata",[]),$e(this,"_enabled",!0),$e(this,"_volume",100),$e(this,"_useAudioElement",!0),$e(this,"_bypassWebAudio",!1),$e(this,"processor",void 0),$e(this,"_processorContext",void 0),$e(this,"_processorDestination",void 0),$e(this,"_getOriginVolumeLevel",void 0),this._encoderConfig=A,this._getOriginVolumeLevel=!!g,this._trackSource=new B4,Ie("DISABLE_WEBAUDIO")&&(this._bypassWebAudio=!0),Ie("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1),$s()&&!vc?setTimeout(()=>this.initWebAudio()):this.initWebAudio()}setVolume(a){Rn(a,"volume",0,1e3),this._volume=a,this._source.setVolume(a/100),this._useAudioElement&&va.setVolume(this.getTrackId(),a);try{if(this._bypassWebAudio)return void X.debug("[".concat(this.getTrackId(),"] setVolume returned because no pass through WebAudio."));let A=this._source.createOutputTrack();this._mediaStreamTrack!==A&&(this._mediaStreamTrack=A,Wn(this,nr.NEED_REPLACE_TRACK,this).then(()=>{X.debug("[".concat(this.getTrackId(),"] replace web audio track success"))}).catch(l=>{X.warning("[".concat(this.getTrackId(),"] replace web audio track failed"),l)}))}catch{}}getVolumeLevel(){return this._muted&&this.enabled&&this._getOriginVolumeLevel?this._source.getOriginVolumeLevel():this._source.getAccurateVolumeLevel()}async setPlaybackDevice(a){if(!this._useAudioElement||!ra())throw new nt(fe.NOT_SUPPORTED,"your browser does not support setting the audio output device");await va.setSinkID(this.getTrackId(),a)}async setEnabled(a,A,l){return this._setEnabled(a,A,l)}async _setEnabled(a,A,l){if(!l){if(a===this._enabled)return;this.stateCheck("enabled",a)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),a),a){this._originMediaStreamTrack.enabled=!0;try{l||(this._enabled=!0),await Wn(this,nr.NEED_ENABLE_TRACK,this),X.info("[".concat(this.getTrackId(),"] setEnabled to ").concat(a," success"))}catch(g){throw l||(this._enabled=!1),X.error("[".concat(this.getTrackId(),"] setEnabled to true error"),g.toString()),g}}else{this._originMediaStreamTrack.enabled=!1,l||(this._enabled=!1);try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(g){throw l||(this._enabled=!0),X.error("[".concat(this.getTrackId(),"] setEnabled to false error"),g.toString()),g}}}async setMuted(a){a!==this._muted&&(this.stateCheck("muted",a),this._muted=a,this._originMediaStreamTrack.enabled=!a,X.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(a)),a?await Wn(this,nr.NEED_MUTE_TRACK,this):await Wn(this,nr.NEED_UNMUTE_TRACK,this))}getStats(){return Qi(()=>{X.warning("[deprecated] LocalAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalAudioStats instead")},"localAudioTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},YR)}setAudioFrameCallback(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!a)return this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(A),this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),this._source.on(WA.ON_AUDIO_BUFFER,l=>a(l))}play(){X.debug("[".concat(this.getTrackId(),"] start audio playback")),this._useAudioElement?(X.debug("[".concat(this.getTrackId(),"] start audio playback in element")),va.play(this._mediaStreamTrack,this.getTrackId(),this._volume)):this._source.play()}stop(){X.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._useAudioElement?va.stop(this.getTrackId()):this._source.stop()}close(){super.close(),this._processorDestination&&this.unbindProcessorDestinationEvents(this._processorDestination),this._processorContext&&this.unbindProcessorContextEvents(this._processorContext),this.unpipe(),this._processorDestination&&this._processorDestination._source&&this._processorDestination._source.unpipe(),this._source.destroy()}_updatePlayerSource(){let a=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];X.debug("[".concat(this.getTrackId(),"] update player source track")),a&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&va.updateTrack(this.getTrackId(),this._mediaStreamTrack)}async _updateOriginMediaStreamTrack(a,A){this._originMediaStreamTrack!==a&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),A&&this._originMediaStreamTrack.stop()),a.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=a,this._muted&&(this._originMediaStreamTrack.enabled=!1),this.processor&&this._processorContext&&this.processor.updateInput({track:a,context:this._processorContext}),this._mediaStreamTrack!==this._source.outputTrack?(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this)):this._source.updateTrack(this._originMediaStreamTrack),this._getOriginVolumeLevel&&this._source.updateOriginTrack(a))}renewMediaStreamTrack(a){return Ft.resolve(void 0)}pipe(a){if(this._bypassWebAudio)throw new nt(fe.INVALID_OPERATION,"Can not process AudioTrack when bypassWebAudio set to true.");if(this.processor===a)return a;if(a._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(a.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=a,this.processor._source=this,a.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),a}unpipe(){var a;if(!this.processor)return;let A=this.processor;(a=this._source.processSourceNode)===null||a===void 0||a.disconnect(),this.processor._source=!1,this.processor=void 0,A.reset()}bindProcessorDestinationEvents(a){a.on(Bn.ON_TRACK,async A=>{A?A!==this._mediaStreamTrack&&(this._mediaStreamTrack=A,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(A),await Wn(this,nr.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this))}),a.on(Bn.ON_NODE,A=>{this._source.processedNode=A})}unbindProcessorDestinationEvents(a){a.removeAllListeners(Bn.ON_TRACK),a.removeAllListeners(Bn.ON_NODE)}bindProcessorContextEvents(a){a.on(XA.REQUEST_CONSTRAINTS,async A=>{A(this._originMediaStreamTrack.getSettings())})}unbindProcessorContextEvents(a){a.removeAllListeners(XA.REQUEST_CONSTRAINTS)}initWebAudio(){return this._trackSource instanceof B4&&(this._trackSource=new I4(this._mediaStreamTrack,!1,this._getOriginVolumeLevel?this._mediaStreamTrack:void 0)),this._trackSource}initProcessor(){let a=new m4(this._source.context,this.getTrackId(),"local"),A=new _4(a);return this._processorContext=a,this._processorDestination=A,this.bindProcessorContextEvents(a),this.bindProcessorDestinationEvents(A),this._source.on(WA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:a})}),this._useAudioElement&&(this._useAudioElement=!1,this.isPlaying&&(va.stop(this.getTrackId()),this._source.play()),Wn(this,nr.NEED_REPLACE_MIXING_TRACK,this).then(()=>{X.debug("[".concat(this.getTrackId(),"] replace from origin track to web audio track success"))}).catch(l=>{X.warning("[".concat(this.getTrackId(),"] replace from origin track to web audio track failed"),l)})),{processorContext:a,processorDestination:A}}}).prototype,"setVolume",[$R],Object.getOwnPropertyDescriptor(eo.prototype,"setVolume"),eo.prototype),Li(eo.prototype,"setPlaybackDevice",[R4,Ff],Object.getOwnPropertyDescriptor(eo.prototype,"setPlaybackDevice"),eo.prototype),Li(eo.prototype,"setEnabled",[y4,ZR,Q4],Object.getOwnPropertyDescriptor(eo.prototype,"setEnabled"),eo.prototype),Li(eo.prototype,"setMuted",[ey,cU,T4],Object.getOwnPropertyDescriptor(eo.prototype,"setMuted"),eo.prototype),Li(eo.prototype,"getStats",[ty],Object.getOwnPropertyDescriptor(eo.prototype,"getStats"),eo.prototype),Li(eo.prototype,"setAudioFrameCallback",[yr],Object.getOwnPropertyDescriptor(eo.prototype,"setAudioFrameCallback"),eo.prototype),Li(eo.prototype,"play",[qt,qe],Object.getOwnPropertyDescriptor(eo.prototype,"play"),eo.prototype),Li(eo.prototype,"stop",[Js,Si],Object.getOwnPropertyDescriptor(eo.prototype,"stop"),eo.prototype),Li(eo.prototype,"close",[w4],Object.getOwnPropertyDescriptor(eo.prototype,"close"),eo.prototype),Li(eo.prototype,"pipe",[Gf],Object.getOwnPropertyDescriptor(eo.prototype,"pipe"),eo.prototype),Li(eo.prototype,"unpipe",[D4],Object.getOwnPropertyDescriptor(eo.prototype,"unpipe"),eo.prototype),eo),gn=(ry=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),b4=J(),N4=rh("MicrophoneAudioTrack","_enabledMutex"),O4=Sr({argsMap:(a,A,l)=>[a.getTrackId(),A,l]}),L4=J(),M4=Sr({argsMap:a=>[a.getTrackId()]}),Li((Yo=class extends xt{get __className__(){return"MicrophoneAudioTrack"}constructor(a,A,l,g){super(a,A.encoderConfig?Pf(A.encoderConfig):{},g,Ie("GET_VOLUME_OF_MUTED_AUDIO_TRACK")),$e(this,"_config",void 0),$e(this,"_deviceName","default"),$e(this,"_constraints",void 0),$e(this,"_originalConstraints",void 0),$e(this,"_enabled",!0),this._config=A,this._constraints=l,this._originalConstraints=l,this._deviceName=a.label,typeof A.bypassWebAudio=="boolean"&&(this._bypassWebAudio=A.bypassWebAudio),(i2()||SR())&&kn.bindInterruptDetectorTrack(this)}async setDevice(a){if(X.info("[".concat(this.getTrackId(),"] start set device to ").concat(a)),this._enabled)try{let A=await p1.getDeviceById(a),l={};l.audio=Qn({},this._constraints),l.audio.deviceId={exact:a},this._originMediaStreamTrack.stop();let g=null;try{g=await z1(l,this.getTrackId())}catch(C){throw X.error("[".concat(this.getTrackId(),"] setDevice failed"),C.toString()),g=await z1({audio:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(g.getAudioTracks()[0],!1),C}await this._updateOriginMediaStreamTrack(g.getAudioTracks()[0],!1),this._deviceName=A.label,this._config.microphoneId=a,this._constraints.deviceId={exact:a}}catch(A){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),A.toString()),A}else try{let A=await p1.getDeviceById(a);this._deviceName=A.label,this._config.microphoneId=a,this._constraints.deviceId={exact:a}}catch(A){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),A.toString()),A}X.info("[".concat(this.getTrackId(),"] set device to ").concat(a," success"))}async setEnabled(a,A,l){if(A)return X.debug("[".concat(this.getTrackId(),"] setEnabled false (do not close microphone)")),await super._setEnabled(a);if(!l){if(a===this._enabled)return;this.stateCheck("enabled",a)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),a),Ie("AUTO_RESET_AUDIO_ROUTE")&&(Ma()||Hl())){let y=navigator.audioSession;y&&(a||(y.type="playback"),y.type="auto")}if(!a){var g;this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop(),(g=this._source.clonedTrack)===null||g===void 0||g.stop(),l||(this._enabled=!1);try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(y){throw X.error("[".concat(this.getTrackId(),"] setEnabled false failed"),y.toString()),y}return}let C=Qn({},this._constraints),m=p1.searchDeviceIdByName(this._deviceName);m&&!C.deviceId&&(C.deviceId=m);try{l||(this._enabled=!0);let y=await z1({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(y.getAudioTracks()[0],!1),await Wn(this,nr.NEED_ENABLE_TRACK,this)}catch(y){throw l||(this._enabled=!1),X.error("[".concat(this.getTrackId(),"] setEnabled true failed"),y.toString()),y}X.info("[".concat(this.getTrackId(),"] setEnabled success"))}close(){super.close(),(i2()||SR())&&kn.unbindInterruptDetectorTrack(this),ah.some(a=>function(A){return"__className__"in A&&A.__className__==="MicrophoneAudioTrack"}(a))||ch&&ch()&&(tr.reportApiInvoke(null,{name:"BG_AUDIO_TAG_RESTART",options:{},tag:Gn.TRACER}).onSuccess(),X.debug("restart background audio tag success"))}onTrackEnded(){if((Ma()||Hl())&&this._enabled&&!this._isClosed&&kn.duringInterruption){let a=async()=>{kn.off(Ys.IOS_INTERRUPTION_END,a),this._enabled&&!this._isClosed&&(X.debug("[".concat(this.getTrackId(),"] try capture microphone media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};kn.on(Ys.IOS_INTERRUPTION_END,a)}else X.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(Du.TRACK_ENDED)}async renewMediaStreamTrack(a){let A=a||this._constraints,l=p1.searchDeviceIdByName(this._deviceName);if(l&&!A.deviceId&&(A.deviceId=l),this._constraints=A,this._enabled){this._originMediaStreamTrack.stop();let g=await z1({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(g.getAudioTracks()[0],!0)}}bindProcessorContextEvents(a){super.bindProcessorContextEvents(a),a.on(XA.REQUEST_UPDATE_CONSTRAINTS,async(A,l,g)=>{try{let C=Object.assign({},this._originalConstraints,...A);await this.renewMediaStreamTrack(C),l()}catch(C){g(C)}})}unbindProcessorContextEvents(a){super.unbindProcessorContextEvents(a),a.removeAllListeners(XA.REQUEST_UPDATE_CONSTRAINTS)}}).prototype,"setDevice",[ry,b4],Object.getOwnPropertyDescriptor(Yo.prototype,"setDevice"),Yo.prototype),Li(Yo.prototype,"setEnabled",[N4,O4,L4],Object.getOwnPropertyDescriptor(Yo.prototype,"setEnabled"),Yo.prototype),Li(Yo.prototype,"close",[M4],Object.getOwnPropertyDescriptor(Yo.prototype,"close"),Yo.prototype),Yo),xC=(S2=Sr({argsMap:(a,A)=>[a.getTrackId(),A,a.duration]}),Hi=J(),gl=Sr({argsMap:a=>[a.getTrackId()]}),iy=J(),lU=Sr({argsMap:a=>[a.getTrackId()]}),dU=J(),uU=Sr({argsMap:a=>[a.getTrackId()]}),El=J(),ny=Sr({argsMap:a=>[a.getTrackId()]}),Vf=J(),gU=Sr({argsMap:a=>[a.getTrackId()]}),Kf=Sr({argsMap:a=>[a.getTrackId()]}),lh=J(),Li((Da=class extends xt{get __className__(){return"BufferSourceAudioTrack"}constructor(a,A,l,g){super(A.createOutputTrack(),l,g),$e(this,"source",void 0),$e(this,"_bufferSource",void 0),this._useAudioElement=!1,this.source=a,this._bufferSource=A,this._bufferSource.on(WA.AUDIO_SOURCE_STATE_CHANGE,C=>{this.safeEmit(Du.SOURCE_STATE_CHANGE,C)});try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}}get currentState(){return this._bufferSource.currentState}get duration(){return this._bufferSource.duration}get playbackSpeed(){return this._bufferSource.playbackSpeed}getCurrentTime(){return this._bufferSource.currentTime}startProcessAudioBuffer(a){a&&this._bufferSource.updateOptions(a),this._bufferSource.startProcessAudioBuffer()}pauseProcessAudioBuffer(){this._bufferSource.pauseProcessAudioBuffer()}seekAudioBuffer(a){this._bufferSource.seekAudioBuffer(a)}resumeProcessAudioBuffer(){this._bufferSource.resumeProcessAudioBuffer()}stopProcessAudioBuffer(){this._bufferSource.stopProcessAudioBuffer()}close(){this.source=null,this._bufferSource.destroy(),super.close()}setAudioBufferPlaybackSpeed(a){Rn(a,"speed",0),this._bufferSource.setAudioBufferPlaybackSpeed(a)}}).prototype,"startProcessAudioBuffer",[S2,Hi],Object.getOwnPropertyDescriptor(Da.prototype,"startProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"pauseProcessAudioBuffer",[gl,iy],Object.getOwnPropertyDescriptor(Da.prototype,"pauseProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"seekAudioBuffer",[lU,dU],Object.getOwnPropertyDescriptor(Da.prototype,"seekAudioBuffer"),Da.prototype),Li(Da.prototype,"resumeProcessAudioBuffer",[uU,El],Object.getOwnPropertyDescriptor(Da.prototype,"resumeProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"stopProcessAudioBuffer",[ny,Vf],Object.getOwnPropertyDescriptor(Da.prototype,"stopProcessAudioBuffer"),Da.prototype),Li(Da.prototype,"close",[gU],Object.getOwnPropertyDescriptor(Da.prototype,"close"),Da.prototype),Li(Da.prototype,"setAudioBufferPlaybackSpeed",[Kf,lh],Object.getOwnPropertyDescriptor(Da.prototype,"setAudioBufferPlaybackSpeed"),Da.prototype),Da);class Os extends xt{get __className__(){return"MixingAudioTrack"}get isActive(){for(let A of this.trackList)if(A._enabled&&!A._isClosed&&!A.muted)return!0;return!1}constructor(){let A=wa().createMediaStreamDestination();super(A.stream.getAudioTracks()[0],void 0,yn(8,"track-mix-")),$e(this,"trackList",void 0),$e(this,"destNode",void 0),this._useAudioElement=!1;try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}this.destNode=A,this.trackList=[]}hasAudioTrack(A){return this.trackList.indexOf(A)!==-1}addAudioTrack(A){this.trackList.indexOf(A)===-1?(X.debug("add ".concat(A.getTrackId()," to mixing track")),A._source.outputNode.connect(this.destNode),this.trackList.push(A),this.updateEncoderConfig()):X.debug("track ".concat(A.getTrackId()," is already added"))}removeAudioTrack(A){if(this.trackList.indexOf(A)!==-1){X.debug("remove ".concat(A.getTrackId()," from mixing track"));try{A._source.outputNode.disconnect(this.destNode)}catch{}sl(this.trackList,A),this.updateEncoderConfig()}}updateEncoderConfig(){let A={};this.trackList.forEach(l=>{l._encoderConfig&&((l._encoderConfig.bitrate||0)>(A.bitrate||0)&&(A.bitrate=l._encoderConfig.bitrate),(l._encoderConfig.sampleRate||0)>(A.sampleRate||0)&&(A.sampleRate=l._encoderConfig.sampleRate),(l._encoderConfig.sampleSize||0)>(A.sampleSize||0)&&(A.sampleSize=l._encoderConfig.sampleSize),l._encoderConfig.stereo&&(A.stereo=!0))}),this._encoderConfig=A}_updateRtpTransceiver(A){this._rtpTransceiver!==A&&(this._rtpTransceiver=A,this.trackList.forEach(l=>{l instanceof Os?l.emit(Wl.TRANSCEIVER_UPDATED,A):l._updateRtpTransceiver(A)}))}}class YJ extends sU{set currentState(A){A!==this._currentState&&(this._currentState=A,this.safeEmit(WA.AUDIO_SOURCE_STATE_CHANGE,this._currentState))}get currentState(){return this._currentState}constructor(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),$e(this,"audioBuffer",void 0),$e(this,"sourceNode",void 0),$e(this,"startPlayTime",0),$e(this,"startPlayOffset",0),$e(this,"pausePlayTime",0),$e(this,"options",void 0),$e(this,"currentLoopCount",0),$e(this,"currentPlaybackSpeed",100),$e(this,"_currentState","stopped"),this.audioBuffer=A,this.options=l,this.startPlayOffset=this.options.startPlayTime||0}createWebAudioDiagram(){return this.context.createGain()}get duration(){return this.audioBuffer?this.audioBuffer.duration:0}get playbackSpeed(){return this.currentPlaybackSpeed}get currentTime(){return this.audioBuffer?this.currentState==="stopped"?0:this.currentState==="paused"?this.pausePlayTime:((this.context.currentTime-this.startPlayTime)*(this.playbackSpeed/100)+this.startPlayOffset)%this.audioBuffer.duration:0}updateOptions(A){this.currentState==="stopped"?(this.options=A,this.startPlayOffset=this.options.startPlayTime||0):X.warning("can not set audio source options")}startProcessAudioBuffer(){this.sourceNode&&this.stopProcessAudioBuffer(),this.sourceNode=this.createSourceNode(),this.startSourceNode(),this.currentState="playing"}pauseProcessAudioBuffer(){this.sourceNode&&this.currentState==="playing"&&(this.pausePlayTime=this.currentTime,this.sourceNode.onended=null,this.sourceNode.stop(),this.sourceNode.buffer=null,this.sourceNode=this.createSourceNode(),this.currentState="paused")}seekAudioBuffer(A){this.sourceNode&&(this.sourceNode.onended=null,this.currentState==="playing"&&this.sourceNode.stop(),this.sourceNode=this.createSourceNode(),this.currentState==="playing"?(this.startPlayOffset=A,this.startSourceNode()):this.currentState==="paused"&&(this.pausePlayTime=A))}resumeProcessAudioBuffer(){this.currentState==="paused"&&this.sourceNode&&(this.startPlayOffset=this.pausePlayTime,this.pausePlayTime=0,this.startSourceNode(),this.currentState="playing")}stopProcessAudioBuffer(){if(this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop()}catch{}this.reset()}}destroy(){this.audioBuffer=null,super.destroy()}setAudioBufferPlaybackSpeed(A){this.sourceNode&&(this.currentState==="playing"&&(this.startPlayOffset=this.currentTime,this.startPlayTime=this.context.currentTime),this.sourceNode.playbackRate.value=A/100),this.currentPlaybackSpeed=A}startSourceNode(){this.sourceNode&&this.sourceNode.buffer&&(this.sourceNode.start(0,this.startPlayOffset),this.startPlayTime=this.context.currentTime,this.sourceNode.onended=this.handleSourceNodeEnded.bind(this))}createSourceNode(){let A=this.context.createBufferSource();return A.buffer=this.audioBuffer,A.loop=!!this.options.loop,A.connect(this.outputNode),A.playbackRate.value=this.currentPlaybackSpeed/100,A}handleSourceNodeEnded(){if(this.currentLoopCount+=1,this.options.cycle&&this.options.cycle>this.currentLoopCount)return this.startPlayOffset=0,this.sourceNode=void 0,void this.startProcessAudioBuffer();this.reset()}reset(){this.startPlayOffset=this.options.startPlayTime||0,this.currentState="stopped",this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=void 0),this.currentLoopCount=0}}let dh=new Map;function R2(a,A){if(a.length===0||A.length===0)return 1/0;let l=NR(a),g=NR(A);return Math.floor(g/l)}class $1{get rendFrameRate(){let A=Math.max(1,R2(this._render_interframe_delays_sizes,this._render_interframe_delays));return Math.floor(1e3/A)}get videoElementStatus(){return this._isInPage?this._videoElementStatus:Ta.DESTROYED}set videoElementStatus(A){A!==this._videoElementStatus&&(X.debug("[".concat(this.trackId,"] video-element-status change ").concat(this._videoElementStatus," => ").concat(A)),this._videoElementStatus=A)}get videoState(){return this._videoState}set videoState(A){var l;A!==this._videoState&&(this._videoState=A,(l=this.onVideoStateChanged)===null||l===void 0||l.call(this,this.videoState))}constructor(A){$e(this,"trackId",void 0),$e(this,"config",void 0),$e(this,"onFirstVideoFrameDecoded",void 0),$e(this,"onFirstVideoFrameRender",void 0),$e(this,"onVideoBufferReady",void 0),$e(this,"onVideoStateChanged",void 0),$e(this,"freezeTimeCounterList",[]),$e(this,"renderFreezeAccTime",0),$e(this,"renderFreezeAccTime2",0),$e(this,"isKeepLastFrame",!1),$e(this,"isDestroyed",!1),$e(this,"timeUpdatedCount",0),$e(this,"freezeTime",0),$e(this,"playbackTime",0),$e(this,"lastTimeUpdatedTime",0),$e(this,"autoplayFailed",!1),$e(this,"videoTrack",void 0),$e(this,"videoElement",void 0),$e(this,"cacheVideoElement",void 0),$e(this,"cancelRVFId",void 0),$e(this,"internal",!1),$e(this,"_render_interframe_delays",[]),$e(this,"_render_interframe_delays_sizes",[]),$e(this,"_videoState",Vi.VideoStateStopped),$e(this,"videoElementCheckInterval",void 0),$e(this,"videoElementFreezeTimeout",void 0),$e(this,"_videoElementStatus",Ta.NONE),$e(this,"_isInPage",!0),$e(this,"isGettingVideoDimensions",!1),$e(this,"startGetVideoDimensions",()=>{let l=()=>{if(this.isGettingVideoDimensions=!0,this.videoElement.videoWidth*this.videoElement.videoHeight>4)return X.debug("[".concat(this.trackId,"] current video dimensions:"),this.videoElement.videoWidth,this.videoElement.videoHeight),void(this.isGettingVideoDimensions=!1);setTimeout(l,500)};!this.isGettingVideoDimensions&&l()}),$e(this,"autoResumeAfterInterruption",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&kn.curState==="running"&&(X.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(_f())),jP()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),$e(this,"handleVideoEvents",l=>{switch(l.type){case"play":case"playing":l.type==="play"&&X.debug("[".concat(this.trackId,"] video element status: play")),this.startGetVideoDimensions(),this.videoElementStatus=Ta.PLAYING;break;case"loadeddata":if(this.videoState=Vi.VideoStateStarting,this.onFirstVideoFrameRender&&this.onFirstVideoFrameRender(),this.onFirstVideoFrameDecoded&&this.onFirstVideoFrameDecoded(),this.cacheVideoElement){try{this.cacheVideoElement.srcObject=null,this.cacheVideoElement.remove()}catch{}this.cacheVideoElement=void 0}break;case"canplay":this.videoElementStatus=Ta.CANPLAY;break;case"stalled":this.videoElementStatus=Ta.STALLED;break;case"suspend":this.videoElementStatus=Ta.SUSPEND;break;case"pause":this.videoElementStatus=Ta.PAUSED,Ma()||Hl()||$s()&&this.autoplayFailed||!this.videoTrack||this.videoTrack.readyState!=="live"||(X.debug("[track-".concat(this.trackId,"] video element paused, auto resume")),this.videoElement.play());break;case"waiting":this.videoElementStatus=Ta.WAITING;break;case"abort":this.videoElementStatus=Ta.ABORT;break;case"ended":this.videoElementStatus=Ta.ENDED;break;case"emptied":this.videoElementStatus=Ta.EMPTIED;break;case"error":{let g=this.videoElement.error;g&&(this.videoElementStatus=Ta.ERROR,X.error("[".concat(this.trackId,"] media error: ").concat(g.message," (").concat(g.code,")")));break}case"timeupdate":{let g=performance.now();if(this.timeUpdatedCount+=1,this.onVideoBufferReady&&this.timeUpdatedCount>Ie("BUFFER_READY_FRAMES")&&this.onVideoBufferReady(),this.timeUpdatedCount<10)return void(this.lastTimeUpdatedTime=g);let C=g-this.lastTimeUpdatedTime,m=this.lastTimeUpdatedTime;if(this.lastTimeUpdatedTime=g,f1.lastVisibleTimeIe("VIDEO_FREEZE_DURATION")&&(this.freezeTime+=C),this.playbackTime+=C;this.playbackTime>=6e3;){this.playbackTime-=6e3;let y=Math.min(6e3,this.freezeTime);this.freezeTimeCounterList.push(y),this.freezeTime=Math.max(0,this.freezeTime-6e3)}break}}}),$e(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&(X.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat(_f())),jP()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),this.trackId=A.trackId,this.config=A,A.element instanceof HTMLVideoElement?this.videoElement=A.element:this.videoElement=document.createElement("video"),kn.on(Ys.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),kn.on(Ys.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16)}getVideoElement(){return this.videoElement}getContainerElement(){var A;return(A=this.videoElement.parentElement)!==null&&A!==void 0?A:void 0}updateConfig(A){this.config=A,this.trackId=A.trackId,A.element!==this.videoElement&&(this.destroy(),this.videoElement=A.element),this.videoTrack&&this.initVideoElement()}updateVideoTrack(A){this.videoTrack!==A&&(this.videoTrack=A,this.initVideoElement())}play(A){let l=this.videoElement.play();l&&l.catch&&l.catch(C=>{A&&Dc(A,"video",C.message,this.trackId),C.name==="NotAllowedError"?(X.warning("detected video element autoplay failed",C),this.autoplayFailed=!0,this.handleAutoPlayFailed()):X.warning("[".concat(this.trackId,"] play warning: "),C)});let g=Wi();if((g.name==="Safari"&&Number(g.version)===15||i2())&&l&&l.then){let C=()=>{this.config.mirror&&!this.config.noStyle&&(this.videoElement.style.transform="rotateY(180deg)")};l.then(C).catch(C)}}getCurrentFrame(){let A=document.createElement("canvas");A.width=this.videoElement.videoWidth,A.height=this.videoElement.videoHeight;let l=A.getContext("2d");if(!l)return X.error("create canvas context failed!"),new ImageData(2,2);l.drawImage(this.videoElement,0,0,A.width,A.height);let g=l.getImageData(0,0,A.width,A.height);return A.remove(),g}async getCurrentFrameToUint8Array(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,g=document.createElement("canvas");g.width=this.videoElement.videoWidth,g.height=this.videoElement.videoHeight;let C=g.getContext("2d");return C?(C.drawImage(this.videoElement,0,0,g.width,g.height),new Ft((m,y)=>{g.toBlob(async w=>{if(g.remove(),w){let b=await S4(w);m({buffer:b,width:g.width,height:g.height})}else y(new nt(fe.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},A,l<0?.1:l>1?1:l)})):await zR(A)}destroy(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.isDestroyed=!0,kn.off(Ys.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),kn.off(Ys.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),A?this.videoElement.pause():this.videoElement.srcObject=null,this.resetVideoElement(),this.freezeTimeCounterList=[],this.videoState=Vi.VideoStateStopped}initVideoElement(){if(this.videoElementStatus=Ta.INIT,!this.videoElementCheckInterval&&(y2.forEach(m=>{this.videoElement.addEventListener(m,this.handleVideoEvents)}),this.videoElementCheckInterval=window.setInterval(()=>{this._isInPage=function(m){return m!==document.body&&document.body.contains(m)}(this.videoElement)},1e3),Ie("ENABLE_VIDEO_FRAME_CALLBACK"))){var A,l;let m,y=()=>{document.visibilityState==="visible"&&(document.removeEventListener("visibilitychange",y),this.videoElementFreezeTimeout=window.setTimeout(w,Ie("VIDEO_FREEZE_DURATION")))},w=()=>{this.videoElementFreezeTimeout=void 0,this.videoState===Vi.VideoStateDecoding&&(document.visibilityState==="visible"?this.videoState=Vi.VideoStateFrozen:document.addEventListener("visibilitychange",y))},b=(M,k)=>{if(this.videoElementStatus===Ta.PLAYING){if(m){let q=k.presentationTime-m.presentationTime,ce=k.presentedFrames-m.presentedFrames;this._render_interframe_delays_sizes.push(ce),this._render_interframe_delays.push(q);let oe=NR(this._render_interframe_delays_sizes),le=oe-this._render_interframe_delays_sizes[0];if(oe>30&&le>5&&(this._render_interframe_delays_sizes.shift(),this._render_interframe_delays.shift()),this.videoState===Vi.VideoStateStarting&&(this.videoState=Vi.VideoStateDecoding),this.videoState===Vi.VideoStateDecoding&&this.onVideoStateChanged&&(this.videoElementFreezeTimeout&&window.clearTimeout(this.videoElementFreezeTimeout),this.videoElementFreezeTimeout=window.setTimeout(w,Ie("VIDEO_FREEZE_DURATION"))),qIe("VIDEO_FREEZE_DURATION")&&f1.lastVisibleTime>=f1.lastHiddenTime&&m.timestamp>f1.lastVisibleTime&&m.timestamp>f1.lastHiddenTime){let pe=Math.min(66,R2(this._render_interframe_delays_sizes,this._render_interframe_delays)),Se=Math.max(0,q-(ce-1)*pe);this.renderFreezeAccTime2+=Se>pe?Se:0,this.renderFreezeAccTime+=q}}m=Qn(Qn({},k),{},{timestamp:M})}else this.isSkipCalcRenderFreezeTime()&&(m=Qn(Qn({},k),{},{timestamp:M}));var V,K;Ie("ENABLE_VIDEO_FRAME_CALLBACK")&&(this.cancelRVFId=(V=(K=this.videoElement).requestVideoFrameCallback)===null||V===void 0?void 0:V.call(K,b))};this.cancelRVFId=(A=(l=this.videoElement).requestVideoFrameCallback)===null||A===void 0?void 0:A.call(l,b)}this.videoElement.controls=!1,this.videoElement.setAttribute("playsinline",""),Ld()&&!Ie("HIDE_NO_POSTER")&&(this.videoElement.poster="noposter");let g=Wi();this.config.noStyle||(g.name==="Safari"&&Number(g.version)===15||i2()||!this.config.mirror||(this.videoElement.style.transform="rotateY(180deg)"),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover"),this.videoElement.setAttribute("muted",""),this.videoElement.muted=!0,this.videoElement.srcObject&&this.videoElement.srcObject instanceof MediaStream?this.videoElement.srcObject.getVideoTracks()[0]!==this.videoTrack&&(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,uo()&&this.videoElement.load()):(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,uo()&&this.videoElement.load());let C=this.videoElement.play();C!==void 0&&C.catch(m=>{X.debug("[".concat(this.trackId,"] playback interrupted"),m.toString())})}resetVideoElement(){var A,l;y2.forEach(g=>{this.videoElement&&this.videoElement.removeEventListener(g,this.handleVideoEvents)}),this.videoElementCheckInterval&&(window.clearInterval(this.videoElementCheckInterval),this.videoElementCheckInterval=void 0),this.cancelRVFId&&this.videoElement&&((A=(l=this.videoElement).cancelVideoFrameCallback)===null||A===void 0||A.call(l,this.cancelRVFId),this.cancelRVFId=void 0),this.videoElementStatus=Ta.NONE}isSkipCalcRenderFreezeTime(){return this.videoElementStatus===Ta.DESTROYED||this.internal}handleAutoPlayFailed(){let A=l=>{l.preventDefault(),this.videoElement.play().then(()=>{X.debug("[".concat(this.trackId,"] Video element for trackId:").concat(this.trackId," autoplay resumed."))}).catch(g=>{X.error(g)}),this.autoplayFailed=!1,bC()?document.body.removeEventListener("click",A,!0):(document.body.removeEventListener("touchstart",A,!0),document.body.removeEventListener("mousedown",A,!0))};bC()?document.body.addEventListener("click",A,!0):(document.body.addEventListener("touchstart",A,!0),document.body.addEventListener("mousedown",A,!0)),p4()}}let y2=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","timeupdate","error"];class zA extends $1{constructor(A){let l=arguments.length>1&&arguments[1]!==void 0&&arguments[1];super(A),$e(this,"container",void 0),$e(this,"slot",void 0),this.slot=A.element,this.internal=l,this.updateConfig(A)}updateConfig(A){this.config=A,this.trackId=A.trackId;let l=A.element;var g;!this.internal||this.slot?(l!==this.slot&&(this.destroy(),this.slot=l),this.createElements()):(this.slot=l,l&&this.container?(this.internal=!1,this.container.id="agora-video-player-".concat(this.trackId),this.videoElement.id="video_".concat(this.trackId),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover",(g=this.slot)===null||g===void 0||g.appendChild(this.container)):this.createElements())}updateVideoTrack(A){this.videoTrack!==A&&(this.videoTrack=A,this.createElements())}play(A){var l;(l=this.container)!==null&&l!==void 0&&l.contains(this.videoElement)&&super.play(A)}getCurrentFrame(){var A;return(A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)?super.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameToUint8Array(A){var l;let g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return(l=this.container)!==null&&l!==void 0&&l.contains(this.videoElement)?await super.getCurrentFrameToUint8Array(A,g):await zR(A)}destroy(){if(super.destroy(),this.videoElement.remove(),this.videoElement=document.createElement("video"),this.container){try{var A;this.container.remove(),(A=this.slot)===null||A===void 0||A.removeChild(this.container)}catch{}this.container=void 0}}createElements(){var A;this.container||(this.container=document.createElement("div")),this.container.id="agora-video-player-".concat(this.trackId),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.overflow="hidden",this.videoTrack?(this.container.style.backgroundColor="black",Ie("KEEP_LAST_FRAME")&&this.isKeepLastFrame&&this.videoElement.paused&&this.resetVideoElement(),this.mountedVideoElement()):this.unmountedVideoElement(),(A=this.slot)===null||A===void 0||A.appendChild(this.container)}mountedVideoElement(){var A;!this.container||(A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)||this.container.appendChild(this.videoElement),super.initVideoElement(),this.videoElement.id="video_".concat(this.trackId),this.videoElement.className="agora_video_player",this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.left="0",this.videoElement.style.top="0"}unmountedVideoElement(){var A;if((A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)){super.resetVideoElement();try{this.container&&this.container.removeChild(this.videoElement)}catch{}this.videoElement=document.createElement("video")}}resetVideoElement(){var A;(A=this.container)!==null&&A!==void 0&&A.contains(this.videoElement)&&(super.resetVideoElement(),this.cacheVideoElement=this.videoElement,this.videoElement=document.createElement("video"))}getContainerElement(){return this.container}}var oy,sy,k4,EU,P4,lA,Z1,FC,uh,Ca,Ud,ay,Hf,Mi,U4,We,x4,Xn,bc,F4,T2,G4,Ay,ec,bn,w2,gh,cy,hi,V4,K4,ly,H4,hU,Y4,dy,j4,tc;let Pi=(oy=Sr({argsMap:(a,A,l)=>[a.getTrackId(),typeof A=="string"?A:A instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",l]}),sy=J(),k4=Sr({argsMap:a=>[a.getTrackId()]}),EU=rh("LocalVideoTrack","_enabledMutex"),P4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),lA=J(),Z1=rh("LocalVideoTrack","_enabledMutex"),FC=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),uh=J(),Ca=Sr({argsMap:(a,A)=>[a.getTrackId(),A,a._saveEncodeBitrateRatio]}),Ud=J(),ay=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),Hf=J(),Mi=J(),U4=Sr({argsMap:(a,A,l)=>[a.getTrackId(),A,l]}),We=J(),x4=J(),Xn=J(),bc=Sr({argsMap:a=>[a.getTrackId()]}),F4=J(),T2=J(),G4=J(),Ay=J(),ec=J(),bn=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),w2=Sr({argsMap:a=>[a.getTrackId()]}),gh=Sr({argsMap:a=>[a.getTrackId()]}),cy=Sr({argsMap:(a,A,l)=>[a.getTrackId(),A.label,l]}),hi=class Ine extends UC{get videoHeight(){if($s()){let{height:A}=this._mediaStreamTrack.getSettings();return this._videoHeight=A,this._videoHeight}return this._videoHeight}get videoWidth(){if($s()){let{width:A}=this._mediaStreamTrack.getSettings();return this._videoWidth=A,this._videoWidth}return this._videoWidth}get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ta.PLAYING)}get processorDestination(){return this._processorDestination}get processorContext(){return this._processorContext}set processorContext(A){this._processorContext=A}get __className__(){return"LocalVideoTrack"}constructor(A,l,g,C,m,y){if(super(A,m),$e(this,"trackMediaType",PC.VIDEO),$e(this,"_player",void 0),$e(this,"isUseScaleResolutionDownBy",!1),$e(this,"_videoVisibleTimer",null),$e(this,"_previousVideoVisibleStatus",void 0),$e(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),$e(this,"_encoderConfig",void 0),$e(this,"_scalabilityMode",{numSpatialLayers:1,numTemporalLayers:1}),$e(this,"_optimizationMode",void 0),$e(this,"_saveEncodeBitrateRatio",1),$e(this,"_videoHeight",void 0),$e(this,"_videoWidth",void 0),$e(this,"_forceBitrateLimit",void 0),$e(this,"_enabled",!0),$e(this,"_processorDestination",void 0),$e(this,"_processorContext",void 0),$s()){let{width:w,height:b}=A.getSettings();this._videoWidth=w,this._videoHeight=b}else this.updateMediaStreamTrackResolution();if(this._scalabilityMode=g,this._optimizationMode=C,this._hints=y||[],l&&this._hints.indexOf($i.CUSTOM_TRACK)!==-1?this._encoderConfig=no(l):this._encoderConfig=l,this._hints.indexOf($i.SCREEN_TRACK)===-1)this.updateBitrateFromProfile();else if(_R(nn.CHROME,115)&&t2().indexOf("Windows")!==-1){let w=function(b,M){if("VideoFrame"in window&&"TransformStream"in window&&Bi().supportWebRTCInsertableStream){let k=new MediaStreamTrackProcessor(b),V=new MediaStreamTrackGenerator({kind:"video"}),K,q,ce=Date.now(),oe=()=>{le&&(clearInterval(le),le=void 0),K&&(K.close(),K=void 0),b.stop(),q=void 0,V.removeEventListener("ended",oe)},le=window.setInterval(()=>{if(q&&K&&Date.now()-ce>1e3)try{V.readyState==="live"?q.enqueue(K.clone()):oe()}catch{oe()}},1e3),pe=new TransformStream({transform:(Se,be)=>{V.readyState==="live"?(q=be,ce=Date.now(),K===void 0?(K=Se,be.enqueue(Se.clone())):(be.enqueue(K),K=Se)):Se.close()}});return V.addEventListener("ended",oe),k.readable.pipeThrough(pe).pipeTo(V.writable),V}}(A);w&&(X.info("local screen video track begin to inject frame"),this._mediaStreamTrack=w)}l&&this._hints.indexOf($i.CUSTOM_TRACK)!==-1&&this.setEncoderConfiguration(l),this._processorContext=new AU(this.getTrackId(),"local"),this._processorDestination=new f4(this.processorContext),this.bindProcessorDestinationEvents()}play(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof A=="string"){let C=document.getElementById(A);C?A=C:(X.warning("[".concat(this.getTrackId(),'] can not find "#').concat(A,'" element, use document.body')),A=document.body)}X.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(A instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(l));let g=Qn(Qn(Qn({},this._getDefaultPlayerConfig()),l),{},{trackId:this.getTrackId(),element:A});this._player?this._player.updateConfig(g):(A instanceof HTMLVideoElement?this._player=new $1(g):this._player=new zA(g),this._player.updateVideoTrack(this._mediaStreamTrack)),this._player.play(),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{let C=this.getVideoElementVisibleStatus();this.safeEmit(Du.VIDEO_ELEMENT_VISIBLE_STATUS,C)}catch{}},Ie("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,X.debug("[".concat(this.getTrackId(),"] stop video playback")))}async setEnabled(A,l){if(!l){if(A===this._enabled)return;this.stateCheck("enabled",A)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),A),!A){this._originMediaStreamTrack.enabled=!1;try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled to false error"),g.toString()),g}return l||(this._enabled=!1),void X.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}this._originMediaStreamTrack.enabled=!0;try{await Wn(this,nr.NEED_ENABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled to true error"),g.toString()),g}X.info("[".concat(this.getTrackId(),"] setEnabled to true success")),l||(this._enabled=!0)}async setMuted(A){A!==this._muted&&(this.stateCheck("muted",A),this._muted=A,this._originMediaStreamTrack.enabled=!A,X.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(A)),A?await Wn(this,nr.NEED_MUTE_TRACK,this):await Wn(this,nr.NEED_UNMUTE_TRACK,this))}async setSaveEncodeBitrateRatio(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this._saveEncodeBitrateRatio;if(this._saveEncodeBitrateRatio!==1&&this._encoderConfig&&this._encoderConfig.bitrateMax&&this._encoderConfig.bitrateMin){this._encoderConfig.bitrateMin=Math.floor(this._encoderConfig.bitrateMin*A),this._encoderConfig.bitrateMax=Math.floor(this._encoderConfig.bitrateMax*A),X.debug("[".concat(this.getTrackId(),"] set save encode bitrate ratio, ").concat(A)),this._saveEncodeBitrateRatio=1;try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(l){return l.throw(X)}}}async setEncoderConfiguration(A,l){if(!this._enabled)throw new nt(fe.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");if(A=ya(A),Ie("USE_STANDARD_BITRATE_DEFAULT")&&(delete A.bitrateMax,delete A.bitrateMin),this._forceBitrateLimit&&(A.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:A.bitrateMax,A.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:A.bitrateMin),A.width||A.height||A.frameRate){let g=WR({encoderConfig:A});($s()||Ma()||Hl())&&(g.deviceId=void 0),X.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(A),JSON.stringify(g));try{await this._originMediaStreamTrack.applyConstraints(g),this.updateMediaStreamTrackResolution()}catch(C){let m=new nt(fe.UNEXPECTED_ERROR,C.toString());throw X.error("[".concat(this.getTrackId(),"] applyConstraints error"),m.toString()),m}}this._encoderConfig=A,this._hints.indexOf($i.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(g){return g.throw(X)}}getStats(){return Qi(()=>{X.warning("[deprecated] LocalVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalVideoStats instead")},"localVideoTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},I2)}async setBeautyEffect(A){X.error("LocalVideoTrack.setBeautyEffect was deprecated, please migrate to agora-extension-beauty-effect")}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameImage(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return this._player?this._player.getCurrentFrameToUint8Array(A,l):await zR(A)}async findClosestProfile(){let{width:A,height:l,frameRate:g}=this.getMediaStreamTrackSettings(),{width:C,height:m,frameRate:y}=this._encoderConfig||{},w=a2(this._videoWidth||A||C||0),b=a2(this._videoHeight||l||m||0),M=function(k,V,K){if(!Array.isArray(Ie("VIDEO_ENCODER_CONFIG_LIST"))||Ie("VIDEO_ENCODER_CONFIG_LIST").length===0)return!1;let q=Math.min(k,V);return!(q>=480)&&Qn(Qn({},Ie("VIDEO_ENCODER_CONFIG_LIST").find(ce=>ce.height>q)),{},{frameRate:K})}(w,b,a2(g||y||15));if(M)return X.debug("[".concat(this.getTrackId(),"] find closest profile, ").concat(w,"x").concat(b," => ").concat(JSON.stringify(M))),this.setEncoderConfiguration(M)}async setBitrateLimit(A){X.debug("[".concat(this.getTrackId(),"] set bitrate limit, ").concat(JSON.stringify(A))),A&&(this._forceBitrateLimit=A,this._encoderConfig&&(this._encoderConfig.bitrateMax?this._encoderConfig.bitrateMax=this._encoderConfig.bitrateMax{let[l,g]=A;this._videoHeight=g,this._videoWidth=l}).catch(Ia)}_updatePlayerSource(){this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}_getDefaultPlayerConfig(){return{fit:"contain"}}async setSenderConfiguration(A){if(!this._enabled)throw new nt(fe.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");X.debug("[".concat(this.getTrackId(),"] setSenderConfiguration applyConstraints"),JSON.stringify(A)),A=ya(A),this._forceBitrateLimit&&(A.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:A.bitrateMax,A.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:A.bitrateMin),this._encoderConfig=A,this._hints.indexOf($i.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(l){return l.throw(X)}}updateBitrateFromProfile(){if(!this._encoderConfig)return;let{width:A,height:l,frameRate:g}=this.getMediaStreamTrackSettings();if(!A||!l||!g)return;let{bitrateMax:C,bitrateMin:m}=this._encoderConfig;if(m==null||C==null){let{max:y,min:w}=function(b,M,k,V,K){let q=Ie("BITRATE_ADAPTER_TYPE");if(q==="DEFAULT_BITRATE")return{min:V,max:K};if(K===void 0){let ce=Math.floor(200*Math.pow(k/15,.6)*Math.pow(b*M/640/360,.75));K=q==="STANDARD_BITRATE"?4*ce:2*ce,V=V??ce}else V=V??Math.floor(K/10);return{min:V,max:K}}(A,l,g,m,C);if(this._encoderConfig.bitrateMin=w,this._encoderConfig.bitrateMax=y,Ie("VIDEO_STANDARD_BITRATE_VERSION")&&m==null&&C==null){let[b,M]=function(k,V,K){let q=4*Math.floor(2e5*Math.pow(K/15,.6)*Math.pow(k*V/230400,.75)),ce=k*V,oe=new Map([[19200,.9],[230400,.85],[518400,.75],[921600,.7],[2073600,.6],[3686400,.5]]),le=new Map([[230400,.95],[518400,.9],[921600,.85],[2073600,.8]]),pe=U1(oe).call(oe).next().value,Se=1;if(oe.has(ce))pe=oe.get(ce);else{var be;let zt=LE(be=Array.from(oe.entries())).call(be,(li,ii)=>{let[br]=li,[Zi]=ii;return br-Zi}),gr=zt.find(li=>{let[ii]=li;return ii>ce});if(gr){let li=zt.indexOf(gr);if(li>0){let ii=zt[li-1],br=(ce-ii[0])/(gr[0]-ii[0]);pe=ii[1]+br*(gr[1]-ii[1])}else pe=gr[1]}else pe=zt[zt.length-1][1]}if(le.has(ce))Se=le.get(ce);else{var Ue;let zt=LE(Ue=Array.from(le.entries())).call(Ue,(li,ii)=>{let[br]=li,[Zi]=ii;return br-Zi}),gr=zt.find(li=>{let[ii]=li;return ii>ce});if(gr){let li=zt.indexOf(gr);if(li>0){let ii=zt[li-1],br=(ce-ii[0])/(gr[0]-ii[0]);Se=ii[1]+br*(gr[1]-ii[1])}else Se=gr[1]}else Se=zt[zt.length-1][1]}let xe=Ie("VIDEO_NEW_BITRATE_RATIO");xe&&xe>0&&(pe=xe/100);let Le=Math.floor(q*pe),je=Math.floor(65e4*Math.pow(k*V/230400,.5)*Math.pow(K/15,.69)),dt=Le,pt=Ie("VIDEO_STANDARD_BITRATE_VERSION");return pt&&pt>0&&(pt===1?dt=q:pt===2?dt=Le:pt===3&&(dt=je)),[Math.floor(dt/1e3),Se]}(A,l,g);this._encoderConfig.bitrateMax=b,this._encoderConfig.bitrateMin=w?Math.min(w,b):b,this._saveEncodeBitrateRatio=M,X.debug("[".concat(this.getTrackId(),"] update new bitrate from profile, [w: ").concat(A,", h: ").concat(l,", fps: ").concat(g,"] => [brMax: ").concat(this._encoderConfig.bitrateMax,", brMin: ").concat(this._encoderConfig.bitrateMin,", save_bitrate_ratio: ").concat(this._saveEncodeBitrateRatio,"]"))}else X.debug("[".concat(this.getTrackId(),"] update bitrate from profile, [w: ").concat(A,", h: ").concat(l,", fps: ").concat(g,"] => [brMax: ").concat(y,", brMin: ").concat(w,"]")),this._saveEncodeBitrateRatio=1}}getVideoElementVisibleStatus(){try{var A,l;let g=this==null||(A=this._player)===null||A===void 0?void 0:A.getContainerElement(),C={track:this,element:this==null||(l=this._player)===null||l===void 0?void 0:l.getVideoElement(),slot:g==null?void 0:g.parentElement},{element:m,slot:y}=C;if(this.isPlaying&&m instanceof HTMLVideoElement&&y instanceof HTMLElement){let w=Xb.checkOneElementVisible(m),b=Object.assign({},w);if(b.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=b.visible;let M=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});b.visible?M.onSuccess("Video is visible"):M.onSuccess("Invisible because of ".concat(b.reason))}return b}return}catch(g){throw new nt(fe.GET_VIDEO_ELEMENT_VISIBLE_ERROR,g.message)}}async renewMediaStreamTrack(A){}pipe(A){if(this.processor===A)return A;if(A._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(A.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=A,this.processor._source=this,A.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),A}unpipe(){if(!this.processor)return;let A=this.processor;this.processor._source=void 0,this.processor=void 0,A.reset()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe()}clone(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],g=this._encoderConfig;A&&(g=Qn(Qn({},g),ya(A))),g=qA(g);let C=yn(8,"track-video-cloned-"),m=new Ine(l?this._mediaStreamTrack.clone():this._mediaStreamTrack,g,qA(this._scalabilityMode),this._optimizationMode,C,qA(this._hints));return A&&g&&m.setEncoderConfiguration(g),X.debug("clone video track from ".concat(this.getTrackId()," to ").concat(C,", clone ").concat(l)),m}async replaceTrack(A,l){if(!(A instanceof MediaStreamTrack))throw new nt(fe.INVALID_PARAMS,"track should be an instance of MediaStreamTrack");if(A.kind!=="video")throw new nt(fe.INVALID_PARAMS,"track should be a video MediaStreamTrack");await this._updateOriginMediaStreamTrack(A,l,!0),this.updateMediaStreamTrackResolution()}sendSeiData(A){if(Qi(()=>{tr.reportApiInvoke(null,{name:Co.LOCAL_VIDEO_SEND_SEI_DATA,options:[],tag:Gn.TRACER}).onSuccess("")},this._mediaStreamTrack.id||this.getTrackId()),!Ie("ENABLE_VIDEO_SEI")||!Ie("ENABLE_ENCODED_TRANSFORM"))return void X.warning('To send/receive SEI, please call AgoraRTC.setParameter("ENABLE_VIDEO_SEI", true) before instantiate IAgoraRtcClient');if(A instanceof Uint8Array==0)return new nt(fe.INVALID_PARAMS,"Invalid argument type, ILocalVideoTrack.sendSeiData() only accept Uint8Array argument.").throw();let l=this.getRTCRtpTransceiver();if(!l)return void X.warning("Video track is not published, SEI can not be send");let g=l.sender.getParameters();if(g.codecs.length===0)return;let C=g.codecs[0].mimeType.toLocaleLowerCase();C==="video/h264"||C==="video/h265"?this.safeEmit("sei-to-send",A):X.warning("SEI is not supported by ".concat(C))}bindProcessorDestinationEvents(){this.processorDestination.on(Bn.ON_TRACK,async A=>{A?A!==this._mediaStreamTrack&&(this._mediaStreamTrack=A,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await Wn(this,nr.NEED_REPLACE_TRACK,this))})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Bn.ON_TRACK)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(XA.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(XA.REQUEST_CONSTRAINTS)}},Li(hi.prototype,"play",[oy,sy],Object.getOwnPropertyDescriptor(hi.prototype,"play"),hi.prototype),Li(hi.prototype,"stop",[k4],Object.getOwnPropertyDescriptor(hi.prototype,"stop"),hi.prototype),Li(hi.prototype,"setEnabled",[EU,P4,lA],Object.getOwnPropertyDescriptor(hi.prototype,"setEnabled"),hi.prototype),Li(hi.prototype,"setMuted",[Z1,FC,uh],Object.getOwnPropertyDescriptor(hi.prototype,"setMuted"),hi.prototype),Li(hi.prototype,"setSaveEncodeBitrateRatio",[Ca,Ud],Object.getOwnPropertyDescriptor(hi.prototype,"setSaveEncodeBitrateRatio"),hi.prototype),Li(hi.prototype,"setEncoderConfiguration",[ay,Hf],Object.getOwnPropertyDescriptor(hi.prototype,"setEncoderConfiguration"),hi.prototype),Li(hi.prototype,"getStats",[Mi],Object.getOwnPropertyDescriptor(hi.prototype,"getStats"),hi.prototype),Li(hi.prototype,"setBeautyEffect",[U4,We],Object.getOwnPropertyDescriptor(hi.prototype,"setBeautyEffect"),hi.prototype),Li(hi.prototype,"getCurrentFrameData",[x4],Object.getOwnPropertyDescriptor(hi.prototype,"getCurrentFrameData"),hi.prototype),Li(hi.prototype,"getCurrentFrameImage",[Xn],Object.getOwnPropertyDescriptor(hi.prototype,"getCurrentFrameImage"),hi.prototype),Li(hi.prototype,"findClosestProfile",[bc,F4],Object.getOwnPropertyDescriptor(hi.prototype,"findClosestProfile"),hi.prototype),Li(hi.prototype,"setBitrateLimit",[T2],Object.getOwnPropertyDescriptor(hi.prototype,"setBitrateLimit"),hi.prototype),Li(hi.prototype,"setOptimizationMode",[G4],Object.getOwnPropertyDescriptor(hi.prototype,"setOptimizationMode"),hi.prototype),Li(hi.prototype,"setScalabiltyMode",[Ay],Object.getOwnPropertyDescriptor(hi.prototype,"setScalabiltyMode"),hi.prototype),Li(hi.prototype,"updateMediaStreamTrackResolution",[ec],Object.getOwnPropertyDescriptor(hi.prototype,"updateMediaStreamTrackResolution"),hi.prototype),Li(hi.prototype,"pipe",[bn],Object.getOwnPropertyDescriptor(hi.prototype,"pipe"),hi.prototype),Li(hi.prototype,"unpipe",[w2],Object.getOwnPropertyDescriptor(hi.prototype,"unpipe"),hi.prototype),Li(hi.prototype,"close",[gh],Object.getOwnPropertyDescriptor(hi.prototype,"close"),hi.prototype),Li(hi.prototype,"replaceTrack",[cy],Object.getOwnPropertyDescriptor(hi.prototype,"replaceTrack"),hi.prototype),hi),uy=(V4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),K4=J(),ly=rh("CameraVideoTrack","_enabledMutex"),H4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),hU=J(),Y4=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),dy=J(),j4=Sr({argsMap:a=>[a.getTrackId()]}),tc=class Cne extends Pi{get __className__(){return"CameraVideoTrack"}constructor(A,l,g,C,m,y){super(A,ya(l.encoderConfig),C,m,y),$e(this,"_config",void 0),$e(this,"_originalConstraints",void 0),$e(this,"_constraints",void 0),$e(this,"_enabled",!0),$e(this,"_deviceName","default"),$e(this,"tryResumeVideoForIOS15_16WeChat",async()=>{(i2()||SR())&&!function(){let w=Wi();if(w.os!==Vs.IOS||!w.osVersion)return!1;let b=w.osVersion.split(".");return Number(b[0])===15&&Number(b[1])>=2}()&&Jb()&&this._enabled&&!this._isClosed&&(X.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS 15 device on WeChat.")),await this.renewMediaStreamTrack())}),this._config=l,this._originalConstraints=g,this._constraints=g,this._deviceName=A.label,this._encoderConfig=ya(this._config.encoderConfig),kn.on(Ys.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),kn.on(Ys.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),this.bindProcessorContextEvents()}async setDevice(A){return typeof A=="string"?this._setDeviceById(A):A.deviceId?this._setDeviceById(A.deviceId):A.facingMode?this._setDeviceByFacingModel(A.facingMode):void 0}async _setDeviceById(A){if(X.info("[".concat(this.getTrackId(),"] set device to ").concat(A)),this._enabled)try{let l=await p1.getDeviceById(A),g={};g.video=Qn({},this._constraints),g.video.deviceId={exact:A},g.video.facingMode=void 0,this._originMediaStreamTrack.stop();let C=null;try{C=await z1(g,this.getTrackId())}catch(m){throw X.error("[".concat(this.getTrackId(),"] setDevice failed"),m.toString()),C=await z1({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(C.getVideoTracks()[0],!1),m}await this._updateOriginMediaStreamTrack(C.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution(),this._deviceName=l.label,this._config.cameraId=A,this._constraints.deviceId={exact:A}}catch(l){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),l.toString()),l}else try{let l=await p1.getDeviceById(A);this._deviceName=l.label,this._config.cameraId=A,this._constraints.deviceId={exact:A}}catch(l){throw X.error("[".concat(this.getTrackId(),"] setDevice error"),l.toString()),l}X.info("[".concat(this.getTrackId(),"] setDevice success"))}async _setDeviceByFacingModel(A){X.info("[".concat(this.getTrackId(),"] set facingMode ").concat(A));let l={video:Qn(Qn({},this._constraints),{},{deviceId:void 0,facingMode:{exact:A}})};if(this._enabled){this._originMediaStreamTrack.stop();let g=null;try{g=await z1(l,this.getTrackId())}catch(C){throw X.error("[".concat(this.getTrackId(),"] setDeviceByFacingModel failed"),C.toString()),g=await z1({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(g.getVideoTracks()[0],!1),C}await this._updateOriginMediaStreamTrack(g.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution()}this._deviceName="",this._config.facingMode=A,this._config.cameraId=void 0,this._constraints=Qn({},l.video),X.info("[".concat(this.getTrackId(),"] setDeviceByFacingModel success"))}async setEnabled(A,l){if(!l){if(A===this._enabled)return;this.stateCheck("enabled",A)}if(X.info("[".concat(this.getTrackId(),"] start setEnabled"),A),A){try{if(this.isExternalTrack)this._originMediaStreamTrack.enabled=!0;else{let g=await z1({video:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(g.getVideoTracks()[0],!1)}await Wn(this,nr.NEED_ENABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled true error"),g.toString()),g}this.updateMediaStreamTrackResolution(),X.info("[".concat(this.getTrackId(),"] setEnabled to true success")),l||(this._enabled=!0)}else{this.isExternalTrack?this._originMediaStreamTrack.enabled=!1:(this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop()),l||(this._enabled=!1);try{await Wn(this,nr.NEED_DISABLE_TRACK,this)}catch(g){throw X.error("[".concat(this.getTrackId(),"] setEnabled to false error"),g.toString()),g}X.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}}async setEncoderConfiguration(A,l){if(!this._enabled)throw new nt(fe.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");A=ya(A),Ie("USE_STANDARD_BITRATE_DEFAULT")&&(delete A.bitrateMax,delete A.bitrateMin),this._forceBitrateLimit&&(A.bitrateMax=this._forceBitrateLimit.max_bitrate||A.bitrateMax,A.bitrateMin=this._forceBitrateLimit.min_bitrate||A.bitrateMin);let g=no(this._config);g.encoderConfig=A;let C=WR(g);($s()||Ma()||Hl())&&(C.deviceId=void 0),X.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(A),JSON.stringify(C));try{await this._originMediaStreamTrack.applyConstraints(C),this.updateMediaStreamTrackResolution()}catch(m){let y=new nt(fe.UNEXPECTED_ERROR,m.toString());throw X.error("[".concat(this.getTrackId(),"] applyConstraints error"),y.toString()),y}this._config=g,this._constraints=C,this._originalConstraints=C,this._encoderConfig=A,this._hints.indexOf($i.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await Wn(this,nr.NEED_UPDATE_VIDEO_ENCODER,this)}catch(m){return m.throw(X)}}_getDefaultPlayerConfig(){return{mirror:!0,fit:"cover"}}onTrackEnded(){if((Ma()||Hl())&&this._enabled&&!this._isClosed&&kn.duringInterruption){let A=async()=>{kn.off(Ys.IOS_INTERRUPTION_END,A),this._enabled&&!this._isClosed&&(X.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};kn.on(Ys.IOS_INTERRUPTION_END,A)}else X.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(Du.TRACK_ENDED)}async renewMediaStreamTrack(A){let l=A||this._constraints,g=p1.searchDeviceIdByName(this._deviceName);if(g&&!l.deviceId&&(l.deviceId={exact:g}),this._enabled){let C=await z1({video:l},this.getTrackId());this._constraints=l,await this._updateOriginMediaStreamTrack(C.getVideoTracks()[0],!0),this.updateMediaStreamTrackResolution()}}close(){super.close(),kn.off(Ys.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),kn.off(Ys.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat)}clone(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],g=this._encoderConfig;A&&(g=Qn(Qn({},g),ya(A))),g=qA(g);let C=yn(8,"track-cam-cloned-"),m=new Cne(l?this._mediaStreamTrack.clone():this._mediaStreamTrack,qA(Qn(Qn({},this._config),{},{encoderConfig:g})),qA(this._constraints),qA(this._scalabilityMode),this._optimizationMode,C);return A&&g&&m.setEncoderConfiguration(g),X.debug("clone track from ".concat(this.getTrackId()," to ").concat(C,", clone ").concat(l)),m}bindProcessorContextEvents(){this.processorContext.on(XA.REQUEST_UPDATE_CONSTRAINTS,async(A,l,g)=>{try{let C=Object.assign({},this._originalConstraints,...A);await this.renewMediaStreamTrack(C),l()}catch(C){g(C)}}),this.processorContext.on(XA.REQUEST_CONSTRAINTS,async A=>{A(this._originMediaStreamTrack.getSettings())})}},Li(tc.prototype,"setDevice",[V4,K4],Object.getOwnPropertyDescriptor(tc.prototype,"setDevice"),tc.prototype),Li(tc.prototype,"setEnabled",[ly,H4,hU],Object.getOwnPropertyDescriptor(tc.prototype,"setEnabled"),tc.prototype),Li(tc.prototype,"setEncoderConfiguration",[Y4,dy],Object.getOwnPropertyDescriptor(tc.prototype,"setEncoderConfiguration"),tc.prototype),Li(tc.prototype,"close",[j4],Object.getOwnPropertyDescriptor(tc.prototype,"close"),tc.prototype),tc);function Yf(a){let A=yn(8,"track-cus-"),l=tr.reportApiInvoke(null,{id:A,tag:Gn.TRACER,name:Co.CREATE_CUSTOM_AUDIO_TRACK,options:[a]}),g=new xt(a.mediaStreamTrack,a.encoderConfig?Pf(a.encoderConfig):{},A,!1);return X.info("create custom audio track success with config",a,"trackId",g.getTrackId()),l.onSuccess(g.getTrackId()),g}function Eh(a,A,l,g){l.optimizationMode&&(g&&g.width&&g.height?(l.encoderConfig=Qn(Qn({},g),{},{bitrateMin:g.bitrateMin,bitrateMax:g.bitrateMax}),l.optimizationMode!=="motion"&&l.optimizationMode!=="detail"||(A.contentHint=l.optimizationMode,A.contentHint===l.optimizationMode?X.debug("[".concat(a,"] set content hint to"),l.optimizationMode):X.debug("[".concat(a,"] set content hint failed")))):X.warning("[".concat(a,"] can not apply optimization mode bitrate config, no encoderConfig")))}var rc,gy,bA,J4,Nc,IU,rA,Fo,q4,W4,X4,z4,pa;class CU extends u4{getUserId(){return this._userId}constructor(A,l,g,C){super(A,"track-".concat(A.kind,"-").concat(l,"-").concat(C.clientId,"_").concat(yn(5,""))),$e(this,"_userId",void 0),$e(this,"_uintId",void 0),$e(this,"_isDestroyed",!1),$e(this,"store",void 0),$e(this,"processor",void 0),$e(this,"processorContext",void 0),this._userId=l,this._uintId=g,this.store=C}_updateOriginMediaStreamTrack(A){this._originMediaStreamTrack=A,this._mediaStreamTrack=A,this._updatePlayerSource(),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext})}_destroy(){this._isDestroyed=!0,X.info("[".concat(this.getTrackId(),"] is destroyed")),this.stop(),super.close()}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}}let D2=(rc=Sr({argsMap:(a,A,l)=>[a.getTrackId(),typeof A=="string"?A:A instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",l]}),gy=Sr({argsMap:a=>[a.getTrackId()]}),bA=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),J4=Sr({argsMap:a=>[a.getTrackId()]}),Li((Nc=class extends CU{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ta.PLAYING)}get __className__(){return"RemoteVideoTrack"}constructor(a,A,l,g,C){super(a,A,l,g),$e(this,"_videoVisibleTimer",null),$e(this,"_previousVideoVisibleStatus",void 0),$e(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),$e(this,"trackMediaType",PC.VIDEO),$e(this,"_videoWidth",void 0),$e(this,"_videoHeight",void 0),$e(this,"_player",void 0),$e(this,"_prePlayer",void 0),$e(this,"processorDestination",void 0),$e(this,"processorContext",void 0),this._prePlayer=C,this.updateMediaStreamTrackResolution(),this.processorContext=new AU(this.getTrackId(),"remote"),this.processorDestination=new f4(this.processorContext),this.bindProcessorDestinationEvents()}getStats(){return Qi(()=>{X.warning("[deprecated] RemoteVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteVideoStats instead")},"remoteVideoTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},Ah)}play(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.safeEmit(wc.PLAY_START),typeof a=="string"){let g=document.getElementById(a);g?a=g:(X.warning("[".concat(this.getTrackId(),'] can not find "#').concat(a,'" element, use document.body')),a=document.body)}X.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(a instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(A));let l=Qn(Qn({fit:"cover"},A),{},{trackId:this.getTrackId(),element:a});if(this._player)this._player.updateConfig(l);else{let g=!1,C=!1;a instanceof HTMLVideoElement?(this._player=new $1(l),this._prePlayer&&(this._prePlayer.destroy(),this._prePlayer=void 0,C=!0)):this._prePlayer&&!this._prePlayer.isDestroyed?(this._player=this._prePlayer,this._prePlayer=void 0,g=this._player.videoState>0,this._player.updateConfig(l)):this._player=new zA(l),this._player.updateVideoTrack(this._mediaStreamTrack),this._player.onFirstVideoFrameDecoded=()=>{this.store.subscribe(this.getUserId(),"video",void 0,void 0,Date.now()),this.safeEmit(wc.FIRST_FRAME_DECODED),C&&this.safeEmit(wc.FIRST_FRAME_RENDER)},this._player.onVideoStateChanged=m=>{this.safeEmit(wc.VIDEO_STATE_CHANGED,m)},g&&(this._player.onFirstVideoFrameDecoded(),this._player.onVideoStateChanged(this._player.videoState))}this._player.play(this.store.sessionId||void 0),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{let g=this.getVideoElementVisibleStatus();this.safeEmit(wc.VIDEO_ELEMENT_VISIBLE_STATUS,g)}catch{}},Ie("CHECK_VIDEO_VISIBLE_INTERVAL")),this.safeEmit(wc.PLAY_END)}stop(){let a=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(a),this._player=void 0,X.debug("[".concat(this.getTrackId(),"] stop video playback")))}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}updateMediaStreamTrackResolution(){ao(this._originMediaStreamTrack).then(a=>{let[A,l]=a;this._videoHeight=l,this._videoWidth=A}).catch(Ia)}_updatePlayerSource(){X.debug("[".concat(this.getTrackId(),"] update player source track")),this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}getVideoElementVisibleStatus(){try{var a,A;let l=this==null||(a=this._player)===null||a===void 0?void 0:a.getContainerElement(),g={track:this,element:this==null||(A=this._player)===null||A===void 0?void 0:A.getVideoElement(),slot:l==null?void 0:l.parentElement},{element:C,slot:m}=g;if(this.isPlaying&&C instanceof HTMLVideoElement&&m instanceof HTMLElement){let y=Xb.checkOneElementVisible(C),w=Object.assign({},y);if(w.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=w.visible;let b=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});w.visible?b.onSuccess("Video is visible"):b.onSuccess("Invisible because of ".concat(w.reason))}return w}return}catch(l){throw new nt(fe.GET_VIDEO_ELEMENT_VISIBLE_ERROR,l.message)}}pipe(a){if(this.processor===a)return a;if(a._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(a.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=a,this.processor._source=this,a.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),a}unpipe(){if(!this.processor)return;let a=this.processor;this.processor._source=void 0,this.processor=void 0,a.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Bn.ON_TRACK,async a=>{a?a!==this._mediaStreamTrack&&(this._mediaStreamTrack=a,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Bn.ON_TRACK)}_destroy(){this._prePlayer&&(this._prePlayer.destroy(),this._prePlayer=void 0),super._destroy(),this.unbindProcessorDestinationEvents()}_onSei(a){this.emit(Wl.SEI_RECEIVED,a)}}).prototype,"play",[rc],Object.getOwnPropertyDescriptor(Nc.prototype,"play"),Nc.prototype),Li(Nc.prototype,"stop",[gy],Object.getOwnPropertyDescriptor(Nc.prototype,"stop"),Nc.prototype),Li(Nc.prototype,"pipe",[bA],Object.getOwnPropertyDescriptor(Nc.prototype,"pipe"),Nc.prototype),Li(Nc.prototype,"unpipe",[J4],Object.getOwnPropertyDescriptor(Nc.prototype,"unpipe"),Nc.prototype),Nc),Og=(IU=Sr({argsMap:(a,A)=>[a.getTrackId(),A],throttleTime:300}),rA=Sr({argsMap:(a,A)=>[a.getTrackId(),A],throttleTime:300}),Fo=Sr({argsMap:(a,A)=>[a.getTrackId(),A]}),q4=Sr({argsMap:a=>[a.getTrackId()]}),W4=Sr({argsMap:a=>[a.getTrackId()]}),X4=Sr({argsMap:(a,A)=>[a.getTrackId(),A.name]}),z4=Sr({argsMap:a=>[a.getTrackId()]}),Li((pa=class extends CU{get isPlaying(){return this._useAudioElement?va.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"RemoteAudioTrack"}constructor(a,A,l,g){super(a,A,l,g),$e(this,"trackMediaType",PC.AUDIO),$e(this,"_source",void 0),$e(this,"_useAudioElement",!0),$e(this,"_volume",100),$e(this,"processorContext",void 0),$e(this,"processorDestination",void 0),$e(this,"_played",!1),$e(this,"_bypassWebAudio",!1),Ie("DISABLE_WEBAUDIO")?(this._source=new B4,this._bypassWebAudio=!0,this._useAudioElement=!0):(this._source=new I4(a,!0),Ie("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1)),this._source.once(WA.RECEIVE_TRACK_BUFFER,()=>{this.safeEmit(wc.FIRST_FRAME_DECODED)}),this.processorContext=new m4(this._source.context,this.getTrackId(),"remote"),this.processorDestination=new _4(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(WA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})})}setAudioFrameCallback(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!a)return this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(A),this._source.removeAllListeners(WA.ON_AUDIO_BUFFER),this._source.on(WA.ON_AUDIO_BUFFER,l=>a(l))}setVolume(a){this._volume=a,this._useAudioElement?va.setVolume(this.getTrackId(),a):this._source.setVolume(a/100)}setAmplifiedVolume(a){this._useAudioElement&&this._played&&(va.stop(this.getTrackId()),this._source.play()),this._useAudioElement=!1,a=Math.min(a,Ie("MAX_WEBAUDIO_VOLUME")),this._volume=a,this._source.setVolume(a/100)}async setPlaybackDevice(a){if(!this._useAudioElement||!ra())throw new nt(fe.NOT_SUPPORTED,"your browser does not support setting the audio output device");await va.setSinkID(this.getTrackId(),a)}getVolumeLevel(){return this._source.getAccurateVolumeLevel()}getVolume(){return this._useAudioElement?va.getVolume(this.getTrackId()):this._source instanceof I4?this._source.getAudioVolume():0}getStats(){return Qi(()=>{X.warning("[deprecated] RemoteAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteAudioStats instead")},"remoteAudioTrackGetStatsWarning"),JA(this,nr.GET_STATS)||Qn({},W1)}play(){X.debug("[".concat(this.getTrackId(),"] start audio playback")),this._played=!0,this._useAudioElement?(X.debug("[".concat(this.getTrackId(),"] use audio element to play")),va.play(this._mediaStreamTrack,this.getTrackId(),this._volume,this.store.sessionId||void 0)):(X.debug("[".concat(this.getTrackId(),"] use audio context to play")),this._source.play())}stop(){X.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._played=!1,this._useAudioElement?va.stop(this.getTrackId()):this._source.stop()}_destroy(){super._destroy(),this._played=!1,this.unbindProcessorDestinationEvents(),this._source.destroy()}_isFreeze(){return this._source.isFreeze}_updatePlayerSource(){let a=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];X.debug("[".concat(this.getTrackId(),"] update player source track")),a&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&va.updateTrack(this.getTrackId(),this._mediaStreamTrack)}pipe(a){if(this._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"can not pipe extension when WebAudio disabled");if(this.processor===a)return a;if(a._source)throw new nt(fe.INVALID_OPERATION,"Processor ".concat(a.name," already piped, please call unpipe beforehand."));return this.unpipe(),this.processor=a,this.processor._source=this,a.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),a}unpipe(){var a;if(this._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"can not unpipe extension when WebAudio disabled");if(!this.processor)return;let A=this.processor;(a=this._source.processSourceNode)===null||a===void 0||a.disconnect(),this.processor._source=!1,this.processor=void 0,A.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(Bn.ON_TRACK,async a=>{a?a!==this._mediaStreamTrack&&(this._mediaStreamTrack=a,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(a)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}),this.processorDestination.on(Bn.ON_NODE,a=>{this._source.processedNode=a;let A=!a;this._useAudioElement!==A&&(this._played?(this.stop(),this._useAudioElement=A,this.play()):this._useAudioElement=A)})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(Bn.ON_TRACK),this.processorDestination.removeAllListeners(Bn.ON_NODE)}}).prototype,"setVolume",[IU],Object.getOwnPropertyDescriptor(pa.prototype,"setVolume"),pa.prototype),Li(pa.prototype,"setAmplifiedVolume",[rA],Object.getOwnPropertyDescriptor(pa.prototype,"setAmplifiedVolume"),pa.prototype),Li(pa.prototype,"setPlaybackDevice",[Fo],Object.getOwnPropertyDescriptor(pa.prototype,"setPlaybackDevice"),pa.prototype),Li(pa.prototype,"play",[q4],Object.getOwnPropertyDescriptor(pa.prototype,"play"),pa.prototype),Li(pa.prototype,"stop",[W4],Object.getOwnPropertyDescriptor(pa.prototype,"stop"),pa.prototype),Li(pa.prototype,"pipe",[X4],Object.getOwnPropertyDescriptor(pa.prototype,"pipe"),pa.prototype),Li(pa.prototype,"unpipe",[z4],Object.getOwnPropertyDescriptor(pa.prototype,"unpipe"),pa.prototype),pa),f1=new class extends io{get visibility(){return document.visibilityState}get lastHiddenTime(){return this._lastHiddenTime}get lastVisibleTime(){return this._lastVisibleTime}constructor(){super(),$e(this,"_lastHiddenTime",0),$e(this,"_lastVisibleTime",0),$e(this,"needUploadStats",[]),$e(this,"isCollectingStats",!1),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this._lastHiddenTime=performance.now():this._lastVisibleTime=performance.now(),this.isCollectingStats&&this.needUploadStats.push(document.visibilityState==="visible"?1:0),X.debug("current web page is ".concat(document.visibilityState)),this.emit("VISIBILITY_CHANGE",document.visibilityState)})}startCollectStats(){this.isCollectingStats=!0,this.needUploadStats.push(this.visibility==="visible"?1:0)}stopCollectStats(){this.isCollectingStats=!1,this.needUploadStats.length=0}};class $4 extends io{constructor(A,l){super(),$e(this,"trackMediaType",PC.DATA),$e(this,"_version",1),$e(this,"_type",3),$e(this,"_config",void 0),$e(this,"_originDataChannel",void 0),$e(this,"_dataStreamPacketHeader",new ArrayBuffer(4)),$e(this,"_dataStreamPacketHandler",{serialize:g=>g,deserialize:g=>g}),$e(this,"_datachannelEventMap",new Map),this._config=A,l&&(this._originDataChannel=l,this._bandDataChannelEvents(l)),this._initPacketHeader()}useDataStream(A){this._dataStreamPacketHandler=A}get id(){return this._config.id}get ordered(){return this._config.ordered}get maxRetransmits(){return Ie("DATASTREAM_MAX_RETRANSMITS")}get metadata(){return this._config.metadata}get readyState(){var A,l;return(A=(l=this._originDataChannel)===null||l===void 0?void 0:l.readyState)!==null&&A!==void 0?A:"connecting"}get _originDataChannelId(){var A,l;return(A=(l=this._originDataChannel)===null||l===void 0?void 0:l.id)!==null&&A!==void 0?A:null}getChannelId(){return this.id}getConfig(){return this._config}_close(){this._originDataChannel&&(this._unbindDataChannelEvents(this._originDataChannel),this._originDataChannel=void 0)}async _waitTillOpen(){return new Ft((A,l)=>{if(this._originDataChannel){this._originDataChannel.readyState==="open"&&A();let g=setTimeout(()=>{var C;l(new nt(fe.DATACHANNEL_CONNECTION_TIMEOUT,"Cannot create datachannel, id: ".concat((C=this._originDataChannel)===null||C===void 0?void 0:C.id)))},1e4);this._originDataChannel.onopen=()=>{clearTimeout(g),this._originDataChannel&&this._bandDataChannelEvents(this._originDataChannel),A()},this._originDataChannel.onerror=()=>{throw clearTimeout(g),new nt(fe.DATACHANNEL_CONNECTION_TIMEOUT)}}else l(new nt(fe.DATACHANNEL_CONNECTION_TIMEOUT,"cannot find dataChannel"))})}_updateOriginDataChannel(A){this._originDataChannel=A,this._bandDataChannelEvents(A)}_initPacketHeader(){let A=new DataView(this._dataStreamPacketHeader);A.setUint16(0,this._version),A.setUint8(2,this._type),A.setUint8(3,this._config.id)}_bandDataChannelEvents(A){this._unbindDataChannelEvents(A),[de.OPEN,de.CLOSE,de.ERROR].forEach(l=>{let g=()=>{this.emit(l)};this._datachannelEventMap.set(l,g),A.addEventListener(l,g)})}_unbindDataChannelEvents(A){Array.from(this._datachannelEventMap.entries()).forEach(l=>{let[g,C]=l;A.removeEventListener(g,C)}),this._datachannelEventMap.clear()}}class pU extends $4{constructor(A){super(A),$e(this,"_messageListener",void 0),this._messageListener=l=>{if(l.data.byteLengthSA.revokeObjectURL(a),0),new Worker(SA.createObjectURL(a))}let Z4=71,Ey=1,hy=2,Iy=1,eN=2;var Lg=function(a){return a[a.AUDIO_LEVEL=1]="AUDIO_LEVEL",a[a.METADATA=2]="METADATA",a[a.AUDIO_64_BIT_PTS=3]="AUDIO_64_BIT_PTS",a}(Lg||{});function Cy(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=a.getUint8(0);if(l!==Z4)return;let g=a.getUint16(1),C=Ey+hy+g,m=new Uint8Array(a.byteLength-C);m.set(new Uint8Array(a.buffer,C,a.byteLength-C));let y={m:l,tlvLen:g,tlv:[],frame:m},w=Ey+hy;for(;w>1:127&V})}else if(b===Lg.METADATA||b===Lg.AUDIO_64_BIT_PTS){let V=new Uint8Array(M);for(let K=0;Ky;M--,k++)b=b*M/k;return b}(A,a))+a*Math.log(.5)+(A-a)*Math.log(1-.5)-Math.log(l)+l*a,qf.set(g,C)),Cl&&b++;A[y]!==b&&(A[y]=b,m=!0)}return m}window.cache=qf;let _U=0;class rN{constructor(A){$e(this,"id",void 0),$e(this,"immediates",[]),$e(this,"lastNonSilence",-1),$e(this,"immediateSpeechActivityScore",hh),$e(this,"lastLevelChangedTime",Date.now()),$e(this,"levels",[]),$e(this,"longs",[]),$e(this,"longSpeechActivityScore",hh),$e(this,"mediums",[]),$e(this,"mediumSpeechActivityScore",hh),$e(this,"minLevel",0),$e(this,"nextMinLevel",0),$e(this,"nextMinLevelWindowLength",0),$e(this,"energyScore",0),this.id=A||"".concat(_U++),this.immediates.length=50,this.mediums.length=10,this.longs.length=1,this.levels.length=this.immediates.length}computeImmediates(){let A=this.immediates,l=this.levels,g=this.minLevel+py,C=!1;for(let m=0;mhh&&(this.lastNonSilence=A)}evaluateMediumSpeechActivityScore(){this.mediumSpeechActivityScore=fy(this.mediums[0],5,24)}evaluateSpeechActivityScores(A){this.computeImmediates()&&(this.evaluateImmediateSpeechActivityScore(),this.computeMediums()&&(this.evaluateMediumSpeechActivityScore(),this.computeLongs()&&this.evaluateLongSpeechActivityScore(A)))}getLastLevelChangedTime(){return this.lastLevelChangedTime}getLevels(){var A;return"[".concat(j9(A=[...this.levels]).call(A).join(),"]")}getSpeechActivityScore(A){switch(A){case 0:return this.immediateSpeechActivityScore;case 1:return this.mediumSpeechActivityScore;case 2:return this.longSpeechActivityScore;default:throw new Error("interval "+A)}}levelChanged(A,l){if(this.lastLevelChangedTime<=l){this.lastLevelChangedTime=l;let g=A;return A<0&&(g=0),A>Jf&&(g=Jf),this.levels.unshift(g),this.levels.length>this.immediates.length&&this.levels.pop(),this.updateMinLevel(g),g>=this.minLevel+py?g:g/2}return-1}levelTimedOut(){this.levelChanged(0,this.lastLevelChangedTime)}updateMinLevel(A){if(A!==0){if(this.minLevel===0||this.minLevel>A)return this.minLevel=A,this.nextMinLevel=0,void(this.nextMinLevelWindowLength=0);if(this.nextMinLevel===0)return this.nextMinLevel=A,void(this.nextMinLevelWindowLength=1);if(this.nextMinLevel>A&&(this.nextMinLevel=A),this.nextMinLevelWindowLength++,this.nextMinLevelWindowLength>=750){let l=Math.sqrt(this.minLevel*this.nextMinLevel);l<0?l=0:l>Jf&&(l=Jf),this.minLevel=l,this.nextMinLevel=0,this.nextMinLevelWindowLength=0}}}}class mU{constructor(A){$e(this,"algorithm",void 0),this.algorithm=A}execute(){let A=!this.algorithm;if(!A)try{let l=this.algorithm.runInDecisionMaker(this);l<=0?A=!0:setTimeout(this.execute.bind(this),l)}catch{A=!0}A&&this.algorithm&&this.algorithm.decisionMakerExited(this)}}class _y{constructor(A,l,g){$e(this,"isDominant",void 0),$e(this,"energyRanking",void 0),$e(this,"energyScore",void 0),this.isDominant=A,this.energyRanking=l,this.energyScore=g}}class BU extends io{constructor(A){super(),$e(this,"dominantId",null),$e(this,"lastDecisionTime",0),$e(this,"lastLevelChangedTime",0),$e(this,"lastLevelIdleTime",0),$e(this,"relativeSpeechActivities",[]),$e(this,"speakers",new Map),$e(this,"enableSilence",!1),$e(this,"timeoutToSilenceInterval",0),$e(this,"decisionMaker",null),$e(this,"loudest",[]),$e(this,"numLoudestToTrack",3),$e(this,"energyExpireTimeMs",250),$e(this,"energyAlphaPct",50),this.timeoutToSilenceInterval=A,this.enableSilence=A>0,this.relativeSpeechActivities.length=3}setLoudestConfig(){let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:3,l=arguments.length>1?arguments[1]:void 0,g=arguments.length>2?arguments[2]:void 0;this.numLoudestToTrack=A,l!=null&&(this.energyExpireTimeMs=l),g!=null&&(this.energyAlphaPct=g),this.loudest.length>A&&this.loudest.splice(A)}getDominantSpeaker(){return this.dominantId}isAmongLoudest(A){return this.loudest.some(l=>l.id===A)}levelChanged(A,l){let g=Date.now(),C=this.getOrCreateSpeaker(A);this.lastLevelChangedTime0&&this.lastDecisionTime-this.lastLevelChangedTime>=15e3?-1:this._runInDecisionMaker()}decisionMakerExited(A){this.decisionMaker===A&&(this.decisionMaker=null)}destroy(){this.decisionMaker=null,this.loudest.length=0,this.speakers.clear(),this.removeAllListeners()}addSpeakers(A){A.forEach(l=>{this.speakers.has(l.id)||this.speakers.set(l.id,l)})}removeSpeakers(A){A.forEach(l=>{this.speakers.delete(l.id)})}getOrCreateSpeaker(A){let l=this.speakers.get(A);return l||(l=new rN(A),this.speakers.set(A,l),this.maybeStartDecisionMaker()),l}updateLoudestList(A,l,g){let C=A.id===this.dominantId;if(l<0){let b=0;for(;b=this.numLoudestToTrack)this.loudest.splice(y,1);else if(b.id!==A.id)++y;else if(this.loudest.splice(y,1),this.loudest.lengththis.numLoudestToTrack&&this.loudest.splice(this.numLoudestToTrack,1)),new _y(C,w,A.energyScore)}maybeStartDecisionMaker(){!this.decisionMaker&&this.speakers.size>0&&(this.decisionMaker=new mU(this),this.decisionMaker.execute())}makeDecision(A){let l=null,g=null,C=this.speakers.size,m=null;if(C===0)m=null;else if(C===1){var y;let w=U1(y=this.speakers).call(y).next().value;this.enableSilence&&w&&(m=w.id,w.evaluateSpeechActivityScores(A),A-w.lastNonSilence>this.timeoutToSilenceInterval&&(m=null))}else{let w=this.dominantId==null?null:this.speakers.get(this.dominantId);if(w==null){let k=this.speakers.entries().next();k.value&&(m=k.value[0],w=k.value[1])}else m=w.id;w==null||w.evaluateSpeechActivityScores(A);let b=this.relativeSpeechActivities,M=2;for(let k of this.speakers.entries()){let[V,K]=k;if(K===w)continue;K.evaluateSpeechActivityScores(A);for(let le=0;le3&&ce>2&&oe>0&&ce>M&&(M=ce,m=V)}this.enableSilence&&w!=null&&m===w.id&&A-w.lastNonSilence>this.timeoutToSilenceInterval&&(m=null)}m==null&&!this.enableSilence||m===this.dominantId||(l=this.dominantId,this.dominantId=m,g=this.dominantId),g==null&&!this.enableSilence||g===l||this.emit("ActiveSpeakerChanged",g)}_runInDecisionMaker(){let A=Date.now(),l=300-(A-this.lastLevelIdleTime),g=0;l<=0?(this.lastLevelIdleTime!==0&&this.timeoutIdleLevels(A),this.lastLevelIdleTime=A):g=l;let C=300-(A-this.lastDecisionTime);return C<=0&&(this.lastDecisionTime=A,this.makeDecision(A),C=300-(Date.now()-A)),C>0&&g>C&&(g=C),g}timeoutIdleLevels(A){let l=[];for(let C of U1(g=this.speakers).call(g)){var g;let m=A-C.getLastLevelChangedTime();36e5this.speakers.delete(C))}}let Ao=new Map,Xl=null,Wf=null,iN=3,Ih=[],zl=new Map,Xf=new Map;class bu{get samples(){return this.actives+this.inactives}get activeRate(){return this.actives/this.samples}constructor(A,l){$e(this,"id",void 0),$e(this,"track",void 0),$e(this,"score",0),$e(this,"active",!0),$e(this,"muted",!1),$e(this,"timer",0),$e(this,"actives",0),$e(this,"inactives",0),this.id=A,this.track=l,this.setActive(zl.size<3)}autoCheckActive(){this.autoSetActive(),this.autoAdjustActive(),this.resetTimer(),this.actives=0,this.inactives=0}autoSetActive(){let A=this.active;this.active=this.activeRate>=.8;let{actives:l,inactives:g}=function(){let C=[],m=[];return Array.from(U1(zl).call(zl)).forEach(y=>{y.active?C.push(y):m.push(y)}),{actives:C,inactives:m}}();if(l.length>3){let C;l.forEach(m=>{(!C||C.score>m.score)&&(C=m)}),C&&C.setActive(!1)}if(l.length<3&&g.length>0){let C;g.forEach(m=>{(!C||C.score40&&C.activeRate-this.activeRate>.4?C.setActive(!0):this.active=!0)}this.setMuted(!this.active)}setActive(A){this.active=A,this.resetTimer(),this.setMuted(!A)}autoAdjustActive(){this.active?this.autoSwitchToInactive():this.autoSwitchToActive()}autoSwitchToActive(){let A=function(l){let g;return Array.from(U1(zl).call(zl)).forEach(C=>{!C.active||C.id===l||C.samples<40||(!g||C.score.4&&(A.setActive(!1),this.setActive(!0))}autoSwitchToInactive(){let A=function(l){let g;return Array.from(U1(zl).call(zl)).forEach(C=>{C.active||C.id===l||C.samples<40||(!g||C.score>g.score)&&(g=C)}),g}(this.id);A&&A.activeRate-this.activeRate>.4&&(A.setActive(!0),this.setActive(!1))}addSample(A){A?this.actives+=1:this.inactives+=1,this.samples>66.66666666666667&&this.autoCheckActive()}setMuted(A){this.track&&(this.track.enabled=!A,this.muted=A)}resetTimer(){this.clearTimer(),this.timer=window.setTimeout(()=>{if(this.samples!==0)return this.samples<50?this.resetTimer():void this.autoCheckActive()},1e3)}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=0)}}let zf;function nN(a){let A=zl.get(a);A&&(zl.delete(a),A.clearTimer())}let $f=new Map,SU=new Map,my="video/h264",By="video/h265";function oN(a,A,l){let g=new Uint8Array(a,A,l),C=[],m=0;for(;C.length=a.length)return"";let g=a[l];return 128&g?"":(g>>1&63)>=32||l+134,ta.supportUnifiedPlan=function(){if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let A=new RTCPeerConnection,l=!1;try{A.addTransceiver("audio"),l=!0}catch{}return A.close(),l}(),ta.supportMinBitrate=a.name===nn.CHROME||a.name===nn.EDGE,ta.supportSetRtpSenderParameters=function(){let A=Wi();return!!(window.RTCRtpSender&&window.RTCRtpSender.prototype.setParameters&&window.RTCRtpSender.prototype.getParameters)&&(!!Od()||!(!$s()&&!DC())||A.name===nn.FIREFOX&&Number(A.version)>=64)}(),a.name===nn.SAFARI&&(Number(a.version)>=14?ta.supportDualStream=!0:ta.supportDualStream=!1),ta.webAudioMediaStreamDest=function(){let A=Wi();return!(A.name===nn.SAFARI&&Number(A.version)<12)}(),ta.supportReplaceTrack=!!window.RTCRtpSender&&typeof RTCRtpSender.prototype.replaceTrack=="function",ta.supportWebGL=typeof WebGLRenderingContext<"u",ta.supportRequestFrame=!!window.CanvasCaptureMediaStreamTrack,Od()||(ta.webAudioWithAEC=!0),ta.supportShareAudio=function(){let A=Wi();return(A.os===Vs.WIN_10||A.os===Vs.WIN_81||A.os===Vs.WIN_7||A.os===Vs.LINUX||A.os===Vs.MAC_OS||A.os===Vs.CHROMIUM_OS)&&A.name===nn.CHROME&&Number(A.version)>=74}(),ta.supportDataChannel=!!(Nd(76)||mf(68)||mR(14)),ta.supportPCSetConfiguration=function(){let A=window.RTCPeerConnection;return!uo()&&!!A&&A.prototype.setConfiguration instanceof Function}(),ta.supportWebRTCEncodedTransform=Nd(87)||KP()||mf(117),ta.supportWebRTCInsertableStream=function(){let A=Wi();return(A.name===nn.CHROME||A.name===nn.EDGE)&&Number(A.version)>=94&&"MediaStreamTrackGenerator"in window&&"MediaStreamTrackProcessor"in window}(),ta.supportRequestVideoFrameCallback="requestVideoFrameCallback"in HTMLVideoElement.prototype,ta.supportWebCrypto=typeof window<"u"&&window.crypto!==void 0&&window.crypto.subtle!==void 0,ta.supportSuppressLocalAudioPlayback=Mf(),ta.supportRestrictOwnAudio=VR(),Fi(()=>{ta.supportDualStreamEncoding=function(){let A=Wi();return!!Ie("DISABLE_WEBAUDIO")||A.name==="Safari"&&Number(A.version)>=14||!!(A.name==="Chrome"&&/Windows/i.test(A.os||"")&&Number(A.version)>=100&&Ie("CHROME_DUAL_STREAM_USE_ENCODING"))}(),X.debug("browser ua: ",navigator.userAgent),X.info("browser info: ",a),X.info("browser compatibility: ",ta)})})();let RU=["CHINA","GLOBAL"],AN=[[0,1,2,3,4,5,5],[0,2,2,3,4,5,5],[0,3,3,3,4,5,5],[0,4,4,4,4,5,5],[0,5,5,5,5,5,5]],ys=[],po=[];function xd(a,A){return!!A&&ys.some(l=>l.uid===a&&l.channelName===A)}function cN(){return po.length>0}var ia=yg.forEach,yU=Hp("forEach")?[].forEach:function(a){return ia(this,a,arguments.length>1?arguments[1]:void 0)};wn({target:"Array",proto:!0,forced:[].forEach!==yU},{forEach:yU});var QU=Cc("Array","forEach"),TU=pE,Sy=ts,wU=j,Ry=QU,yy=Array.prototype,vU={DOMTokenList:!0,NodeList:!0},DU=function(a){var A=a.forEach;return a===yy||wU(yy,a)&&A===yy.forEach||Sy(vU,TU(a))?Ry:A},bU=I(DU),NU=L1,lN=Om;wn({target:"Object",stat:!0,forced:f(function(){lN(1)})},{keys:function(a){return lN(NU(a))}});var OU=I(Tn.Object.keys),LU=I(G9),MU=I(Y9),kU=wn,dN=C0,PU=Zp,UU=Kn,uN=QT,xU=CE,FU=gs,GU=Ov,VU=vo,KU=pg,HU=I5("slice"),YU=VU("species"),Qy=Array,jU=Math.max;kU({target:"Array",proto:!0,forced:!HU},{slice:function(a,A){var l,g,C,m=FU(this),y=xU(m),w=uN(a,y),b=uN(A===void 0?y:A,y);if(dN(m)&&(l=m.constructor,(PU(l)&&(l===Qy||dN(l.prototype))||UU(l)&&(l=l[YU])===null)&&(l=void 0),l===Qy||l===void 0))return KU(m,w,b);for(g=new(l===void 0?Qy:l)(jU(b-w,0)),C=0;w\?\@\[\]\^\_\{\}\|\~\,]{1,64}$/.test(a))throw X.error("Invalid Channel Name ".concat(a)),new ze(fe.INVALID_PARAMS,"The length must be within 64 bytes. The supported characters: a-z,A-Z,0-9,space,!, #, $, %, &, (, ), +, -, :, ;, <, =, ., >, ?, @, [, ], ^, _, {, }, |, ~, ,")}function r_(a){if(A=a,!(typeof A=="number"&&Math.floor(A)===A&&0<=A&&A<=4294967295||yR(a,1,255)))throw new ze(fe.INVALID_PARAMS,"[String uid] Length of the string: [1,255]. ASCII characters only. [Number uid] The value range is [0,10000]");var A;typeof a=="string"&&X.warn("You input a string as the user ID, to ensure better end-user experience, Agora highly suggests not using a string as the user ID.")}let Nu=function(a){return a.TRANSCODE="mix_streaming",a.RAW="raw_streaming",a}({}),zU={alpha:1,height:640,width:360,x:0,y:0,zOrder:0,audioChannel:0},ic={x:0,y:0,width:160,height:160,zOrder:255,alpha:1};function vy(a,A){Tr(a.url,"".concat(A,".url"),1,1e3,!1),mo(a.x)||Rn(a.x,"".concat(A,".x"),0,1e4),mo(a.y)||Rn(a.y,"".concat(A,".y"),0,1e4),mo(a.width)||Rn(a.width,"".concat(A,".width"),0,1e4),mo(a.height)||Rn(a.height,"".concat(A,".height"),0,1e4),mo(a.zOrder)||Rn(a.zOrder,"".concat(A,".zOrder"),0,255),mo(a.alpha)||Rn(a.alpha,"".concat(A,".alpha"),0,1,!1)}let $U={audioBitrate:48,audioChannels:1,audioSampleRate:48e3,backgroundColor:0,height:360,lowLatency:!1,videoBitrate:400,videoCodecProfile:100,videoCodecType:1,videoFrameRate:15,videoGop:30,width:640,images:[],userConfigs:[],userConfigExtraInfo:""},Mg=function(a){return a.WARNING="@live_uap-warning",a.ERROR="@line_uap-error",a.PUBLISH_STREAM_STATUS="@live_uap-publish-status",a.WORKER_STATUS="@live_uap-worker-status",a.REQUEST_NEW_ADDRESS="@live_uap-request-address",a}({}),Dy=function(a){return a.REQUEST_WORKER_MANAGER_LIST="@live_req_worker_manager",a}({}),Qs=function(a){return a[a.LIVE_STREAM_RESPONSE_SUCCEED=200]="LIVE_STREAM_RESPONSE_SUCCEED",a[a.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM=454]="LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM",a[a.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR=450]="LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR",a[a.LIVE_STREAM_RESPONSE_BAD_STREAM=451]="LIVE_STREAM_RESPONSE_BAD_STREAM",a[a.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR=400]="LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR",a[a.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST=404]="LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST",a[a.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED=456]="LIVE_STREAM_RESPONSE_NOT_AUTHORIZED",a[a.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE=457]="LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE",a[a.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN=429]="LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN",a[a.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH=452]="LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH",a[a.LIVE_STREAM_RESPONSE_NOT_SUPPORTED=453]="LIVE_STREAM_RESPONSE_NOT_SUPPORTED",a[a.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM=455]="LIVE_STREAM_RESPONSE_MAX_STREAM_NUM",a[a.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR=500]="LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR",a[a.LIVE_STREAM_RESPONSE_WORKER_LOST=501]="LIVE_STREAM_RESPONSE_WORKER_LOST",a[a.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT=502]="LIVE_STREAM_RESPONSE_RESOURCE_LIMIT",a[a.LIVE_STREAM_RESPONSE_WORKER_QUIT=503]="LIVE_STREAM_RESPONSE_WORKER_QUIT",a[a.ERROR_FAIL_SEND_MESSAGE=504]="ERROR_FAIL_SEND_MESSAGE",a[a.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE=30]="PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE",a[a.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT=31]="PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT",a[a.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH=32]="PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH",a[a.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN=33]="PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN",a}({});function gN(a){if(!a.channelName)throw new ze(fe.INVALID_PARAMS,"invalid channelName in info");if(typeof a.uid!="number")throw new ze(fe.INVALID_PARAMS,"invalid uid in info, uid must be a number");return a.token&&Tr(a.token,"info.token",1,2047),r_(a.uid),t_(a.channelName),!0}let NA=function(a){return a[a.SetSdkProfile=0]="SetSdkProfile",a[a.SetSourceChannel=1]="SetSourceChannel",a[a.SetSourceUserId=2]="SetSourceUserId",a[a.SetDestChannel=3]="SetDestChannel",a[a.StartPacketTransfer=4]="StartPacketTransfer",a[a.StopPacketTransfer=5]="StopPacketTransfer",a[a.UpdateDestChannel=6]="UpdateDestChannel",a[a.Reconnect=7]="Reconnect",a[a.SetVideoProfile=8]="SetVideoProfile",a}({}),ls=function(a){return a.NETWORK_DISCONNECTED="NETWORK_DISCONNECTED",a.NETWORK_CONNECTED="NETWORK_CONNECTED",a.PACKET_JOINED_SRC_CHANNEL="PACKET_JOINED_SRC_CHANNEL",a.PACKET_JOINED_DEST_CHANNEL="PACKET_JOINED_DEST_CHANNEL",a.PACKET_SENT_TO_DEST_CHANNEL="PACKET_SENT_TO_DEST_CHANNEL",a.PACKET_RECEIVED_VIDEO_FROM_SRC="PACKET_RECEIVED_VIDEO_FROM_SRC",a.PACKET_RECEIVED_AUDIO_FROM_SRC="PACKET_RECEIVED_AUDIO_FROM_SRC",a.PACKET_UPDATE_DEST_CHANNEL="PACKET_UPDATE_DEST_CHANNEL",a.PACKET_UPDATE_DEST_CHANNEL_REFUSED="PACKET_UPDATE_DEST_CHANNEL_REFUSED",a.PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE="PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE",a}({}),$A=function(a){return a.RELAY_STATE_IDLE="RELAY_STATE_IDLE",a.RELAY_STATE_CONNECTING="RELAY_STATE_CONNECTING",a.RELAY_STATE_RUNNING="RELAY_STATE_RUNNING",a.RELAY_STATE_FAILURE="RELAY_STATE_FAILURE",a}({}),Fd=function(a){return a.RELAY_OK="RELAY_OK",a.SERVER_CONNECTION_LOST="SERVER_CONNECTION_LOST",a.SRC_TOKEN_EXPIRED="SRC_TOKEN_EXPIRED",a.DEST_TOKEN_EXPIRED="DEST_TOKEN_EXPIRED",a}({}),an=function(a){return a.High="high",a.Low="low",a.Audio="audio",a.Screen="screen",a.ScreenLow="screen_low",a}({}),Pn=function(a){return a.DISCONNECT="disconnect",a.CONNECTION_STATE_CHANGE="connection-state-change",a.NETWORK_QUALITY="network-quality",a.STREAM_TYPE_CHANGE="stream-type-change",a.IS_P2P_DISCONNECTED="is-p2p-dis",a.DISCONNECT_P2P="dis-p2p",a.REQUEST_NEW_GATEWAY_LIST="req-gate-url",a.NEED_RENEW_SESSION="need-sid",a.REQUEST_P2P_CONNECTION_PARAMS="request-p2p-connection-params",a.JOIN_RESPONSE="join-response",a.RESET_CONNECTION_EVENTS="reset-connection-events",a.PRE_CONNECT_PC="pre-connect_pc",a.UPDATE_GATEWAY_CONFIG="update-gateway-config",a.VOS_FALLBACK="vos-fallback",a.VOS_FALLBACK_PROMISE="vos-fallback-promise",a.RESET_SIGNAL="reset-signal",a.DATACHANNEL_FAILBACK="datachannel-failback",a}({}),i_=function(a){return a.P2P_DISCONNECTED="P2P_DISCONNECTED",a.A_ROUND_WS_FAILED="A_ROUND_WS_FAILED",a.TIMEOUT="TIMEOUT",a.UNKNOWN_REASON="UNKNOWN_REASON",a}({}),na=function(a){return a[a.Nothing=0]="Nothing",a[a.Audio=1]="Audio",a[a.LwoVideo=2]="LwoVideo",a[a.Video=4]="Video",a[a.Data=8]="Data",a[a.DataStream0=256]="DataStream0",a[a.DataStream1=512]="DataStream1",a[a.DataStream2=1024]="DataStream2",a[a.DataStream3=2048]="DataStream3",a[a.DataStream4=4096]="DataStream4",a[a.DataStream5=8192]="DataStream5",a[a.DataStream6=16384]="DataStream6",a[a.DataStream7=32768]="DataStream7",a}({}),fn=function(a){return a.CHINA="CHINA",a.ASIA="ASIA",a.NORTH_AMERICA="NORTH_AMERICA",a.EUROPE="EUROPE",a.JAPAN="JAPAN",a.INDIA="INDIA",a.KOREA="KOREA",a.HKMC="HKMC",a.US="US",a.OCEANIA="OCEANIA",a.SOUTH_AMERICA="SOUTH_AMERICA",a.AFRICA="AFRICA",a.OVERSEA="OVERSEA",a.GLOBAL="GLOBAL",a.EXTENSIONS="EXTENSIONS",a}({}),n_=[fn.AFRICA,fn.ASIA,fn.CHINA,fn.EUROPE,fn.GLOBAL,fn.INDIA,fn.JAPAN,fn.NORTH_AMERICA,fn.OCEANIA,fn.OVERSEA,fn.SOUTH_AMERICA],ka=function(a){return a.CHINA="CN",a.ASIA="AS",a.NORTH_AMERICA="NA",a.EUROPE="EU",a.JAPAN="JP",a.INDIA="IN",a.KOREA="KR",a.HKMC="HK",a.US="US",a.OCEANIA="OC",a.SOUTH_AMERICA="SA",a.AFRICA="AF",a.OVERSEA="OVERSEA",a.GLOBAL="GLOBAL",a.EXTENSIONS="GLOBAL",a}({}),KC={CHINA:{},ASIA:{CODE:ka.ASIA,WEBCS_DOMAIN:["ap-web-1-asia.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-asia.agora.io"],PROXY_CS:["proxy-ap-web-asia.agora.io"],CDS_AP:["cds-ap-web-asia.agora.io","cds-ap-web-asia2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-asia.agora.io","sua-ap-web-asia2.agora.io"],UAP_AP:["uap-ap-web-asia.agora.io","uap-ap-web-asia2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-asia.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-asia.agora.io"],LOG_UPLOAD_SERVER:["logservice-asia.agora.io"],PROXY_SERVER_TYPE3:["southeast-asia.webrtc-cloud-proxy.sd-rtn.com"]},NORTH_AMERICA:{CODE:ka.NORTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-north-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-north-america.agora.io"],PROXY_CS:["proxy-ap-web-america.agora.io"],CDS_AP:["cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],UAP_AP:["uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-north-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-north-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-north-america.agora.io"],PROXY_SERVER_TYPE3:["east-usa.webrtc-cloud-proxy.sd-rtn.com"]},EUROPE:{CODE:ka.EUROPE,WEBCS_DOMAIN:["ap-web-1-europe.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-europe.agora.io"],PROXY_CS:["proxy-ap-web-europe.agora.io"],CDS_AP:["cds-ap-web-europe.agora.io","cds-ap-web-europe2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-europe.agora.io","sua-ap-web-europe.agora.io"],UAP_AP:["uap-ap-web-europe.agora.io","uap-ap-web-europe2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-europe.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-europe.agora.io"],LOG_UPLOAD_SERVER:["logservice-europe.agora.io"],PROXY_SERVER_TYPE3:["europe.webrtc-cloud-proxy.sd-rtn.com"]},JAPAN:{CODE:ka.JAPAN,WEBCS_DOMAIN:["ap-web-1-japan.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-japan.agora.io"],PROXY_CS:["proxy-ap-web-japan.agora.io"],CDS_AP:["cds-ap-web-japan.agora.io","cds-ap-web-japan2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-japan.agora.io","sua-ap-web-japan2.agora.io"],UAP_AP:["uap-ap-web-japan.agora.io","uap-ap-web-japan2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-japan.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-japan.agora.io"],LOG_UPLOAD_SERVER:["logservice-japan.agora.io"],PROXY_SERVER_TYPE3:["japan.webrtc-cloud-proxy.sd-rtn.com"]},INDIA:{CODE:ka.INDIA,WEBCS_DOMAIN:["ap-web-1-india.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-india.agora.io"],PROXY_CS:["proxy-ap-web-india.agora.io"],CDS_AP:["cds-ap-web-india.agora.io","cds-ap-web-india2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-india.agora.io","sua-ap-web-india2.agora.io"],UAP_AP:["uap-ap-web-india.agora.io","uap-ap-web-india2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-india.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-india.agora.io"],LOG_UPLOAD_SERVER:["logservice-india.agora.io"],PROXY_SERVER_TYPE3:["india.webrtc-cloud-proxy.sd-rtn.com"]},KOREA:{CODE:ka.KOREA,WEBCS_DOMAIN:["ap-web-1-korea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-korea.agora.io"],PROXY_CS:["proxy-ap-web-korea.agora.io"],CDS_AP:["cds-ap-web-korea.agora.io","cds-ap-web-korea2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-korea.agora.io","sua-ap-web-korea2.agora.io"],UAP_AP:["uap-ap-web-korea.agora.io","uap-ap-web-korea2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-korea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-korea.agora.io"],LOG_UPLOAD_SERVER:["logservice-korea.agora.io"],PROXY_SERVER_TYPE3:["korea.webrtc-cloud-proxy.sd-rtn.com"]},HKMC:{CODE:ka.HKMC,WEBCS_DOMAIN:["ap-web-1-hkmc.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-hkmc.agora.io"],PROXY_CS:["proxy-ap-web-hkmc.agora.io"],CDS_AP:["cds-ap-web-hkmc.agora.io","cds-ap-web-hkmc2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-hkmc.agora.io","sua-ap-web-hkmc2.agora.io"],UAP_AP:["uap-ap-web-hkmc.agora.io","uap-ap-web-hkmc2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-hkmc.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-hkmc.agora.io"],LOG_UPLOAD_SERVER:["logservice-hkmc.agora.io"],PROXY_SERVER_TYPE3:["hkmc.webrtc-cloud-proxy.sd-rtn.com"]},US:{CODE:ka.US,WEBCS_DOMAIN:["ap-web-1-us.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-us.agora.io"],PROXY_CS:["proxy-ap-web-us.agora.io"],CDS_AP:["cds-ap-web-us.agora.io","cds-ap-web-us2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-us.agora.io","sua-ap-web-us2.agora.io"],UAP_AP:["uap-ap-web-us.agora.io","uap-ap-web-us2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-us.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-us.agora.io"],LOG_UPLOAD_SERVER:["logservice-us.agora.io"],PROXY_SERVER_TYPE3:["us.webrtc-cloud-proxy.sd-rtn.com"]},OVERSEA:{CODE:ka.OVERSEA,WEBCS_DOMAIN:["ap-web-1-oversea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oversea.agora.io"],PROXY_CS:["proxy-ap-web-oversea.agora.io"],CDS_AP:["cds-ap-web-oversea.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oversea.agora.io"],UAP_AP:["uap-ap-web-oversea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oversea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oversea.agora.io"],LOG_UPLOAD_SERVER:["logservice-oversea.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.agora.io"]},GLOBAL:{CODE:ka.GLOBAL,WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-ap-web-3.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-ap-web-3.agora.io"],UAP_AP:["uap-ap-web-1.agora.io","uap-ap-web-3.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2.agora.io"],LOG_UPLOAD_SERVER:["logservice.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com"]},OCEANIA:{CODE:ka.OCEANIA,WEBCS_DOMAIN:["ap-web-1-oceania.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oceania.agora.io"],PROXY_CS:["proxy-ap-web-oceania.agora.io"],CDS_AP:["cds-ap-web-oceania.agora.io","cds-ap-web-oceania2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oceania.agora.io","sua-ap-web-oceania2.agora.io"],UAP_AP:["uap-ap-web-oceania.agora.io","uap-ap-web-oceania2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oceania.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oceania.agora.io"],LOG_UPLOAD_SERVER:["logservice-oceania.agora.io"],PROXY_SERVER_TYPE3:["oceania.webrtc-cloud-proxy.sd-rtn.com"]},SOUTH_AMERICA:{CODE:ka.SOUTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-south-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-south-america.agora.io"],PROXY_CS:["proxy-ap-web-south-america.agora.io"],CDS_AP:["cds-ap-web-south-america.agora.io","cds-ap-web-south-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-south-america.agora.io","sua-ap-web-south-america2.agora.io"],UAP_AP:["uap-ap-web-south-america.agora.io","uap-ap-web-south-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-south-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-south-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-america.agora.io"],PROXY_SERVER_TYPE3:["south-america.webrtc-cloud-proxy.sd-rtn.com"]},AFRICA:{CODE:ka.AFRICA,WEBCS_DOMAIN:["ap-web-1-africa.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-africa.agora.io"],PROXY_CS:["proxy-ap-web-africa.agora.io"],CDS_AP:["cds-ap-web-africa.agora.io","cds-ap-web-africa2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-africa.agora.io","sua-ap-web-africa2.agora.io"],UAP_AP:["uap-ap-web-africa.agora.io","uap-ap-web-africa2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-africa.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-africa.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-africa.agora.io"],PROXY_SERVER_TYPE3:["africa.webrtc-cloud-proxy.sd-rtn.com"]},EXTENSIONS:{}};u2&&(KC.CHINA={CODE:ka.CHINA,WEBCS_DOMAIN:["webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["proxy-web.ap.sd-rtn.com"],CDS_AP:["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-web-2.ap.sd-rtn.com","uap-web-4.ap.sd-rtn.com"],EVENT_REPORT_DOMAIN:["web-3.statscollector.sd-rtn.com"],EVENT_REPORT_BACKUP_DOMAIN:["web-4.statscollector.sd-rtn.com"],LOG_UPLOAD_SERVER:["logservice-china.agora.io"],PROXY_SERVER_TYPE3:["east-cn.webrtc-cloud-proxy.sd-rtn.com"]});let Il=function(a){return a.UPDATE_BITRATE_LIMIT="update_bitrate_limit",a.UPDATE_CLIENT_ROLE_OPTIONS="update_client_role_options",a.UPDATE_REMOTE_VIDEO_STREAM_TYPE="update_remote_video_stream_type",a.FALLBACK_TO_HLS="fallback_to_hls",a.UPDATE_VOS_CONFIGURE="update_vos_configure",a}({});function by(a){return!!a&&!(!a.uplink||!a.id)&&a.uplink.max_bitrate!==void 0&&a.uplink.min_bitrate!==void 0}class EN extends io{constructor(A,l){super(),Ae(this,"onICEConnectionStateChange",void 0),Ae(this,"onConnectionStateChange",void 0),Ae(this,"onDTLSTransportStateChange",void 0),Ae(this,"onDTLSTransportError",void 0),Ae(this,"onICETransportStateChange",void 0),Ae(this,"onFirstAudioReceived",void 0),Ae(this,"onFirstVideoReceived",void 0),Ae(this,"onFirstAudioDecoded",void 0),Ae(this,"onFirstVideoDecoded",void 0),Ae(this,"onFirstVideoRender",void 0),Ae(this,"onFirstVideoBufferReady",void 0),Ae(this,"onFirstVideoDecodedTimeout",void 0),Ae(this,"onSelectedLocalCandidateChanged",void 0),Ae(this,"onSelectedRemoteCandidateChanged",void 0),Ae(this,"onICECandidateError",void 0),Ae(this,"getLocalVideoStats",void 0)}}class Gd extends EN{constructor(A,l){super(A,l),Ae(this,"establishPromise",void 0)}}let $t=function(a){return a.VIDEO="video",a.AUDIO="audio",a}({}),Ls=function(a){return a.UDP_RELAY="udp_relay",a.UDP_TCP_RELAY="udp_tcp_relay",a.TCP_RELAY="tcp_relay",a.RELAY="relay",a}({}),$l=function(a){return a[a.FIRST_CONNECTION=0]="FIRST_CONNECTION",a[a.UDP_TCP_RESTART=1]="UDP_TCP_RESTART",a[a.RELAY_RESTART=2]="RELAY_RESTART",a[a.TCP_RESTART=3]="TCP_RESTART",a[a.OLD_FIRST_CONNECTION=10]="OLD_FIRST_CONNECTION",a[a.OLD_RESTART=11]="OLD_RESTART",a[a.DISCONNECTED_OR_FAILED=20]="DISCONNECTED_OR_FAILED",a}({}),Ch=["disconnected","failed"],St=function(a){return a.LocalVideoTrack="videoTrack",a.LocalAudioTrack="audioTrack",a.LocalVideoLowTrack="videoLowTrack",a}({}),An=function(a){return a.New="new",a.Connected="connected",a.Reconnecting="reconnecting",a.Disconnected="disconnected",a}({}),hr=function(a){return a.AudioMetadata="audioMetadata",a.AudioPts="audioPts",a.StateChange="stateChange",a.IceConnectionStateChange="iceConnectionStateChange",a.RequestMuteLocal="requestMuteLocal",a.RequestUnmuteLocal="requestUnmuteLocal",a.RequestRePublish="requestRePublish",a.RequestRePublishDataChannel="requestRePublishDataChannel",a.RequestReSubscribe="requestReSubscribe",a.RequestUploadStats="requestUploadStats",a.RequestUpload="requestUpload",a.MediaReconnectStart="MediaReconnectStart",a.MediaReconnectEnd="MediaReconnectEnd",a.NeedSignalRTT="NeedSignalRTT",a.RequestRestartICE="RequestRestartIce",a.PeerConnectionStateChange="PeerConnectionStateChange",a.RequestReconnect="RequestReconnect",a.RequestReconnectPC="RequestReconnectPC",a.RequestUnpublishForReconnectPC="RequestUnpublishForReconnectPC",a.P2PLost="P2PLost",a.UpdateVideoEncoder="UpdateVideoEncoder",a.ConnectionTypeChange="ConnectionTypeChange",a.RequestLowStreamParameter="RequestLowStreamParameter",a.QueryClientConnectionState="QueryClientConnectionState",a.LocalCandidate="LocalCandidate",a.RequestP2PMuteLocal="requestP2PMuteLocal",a.RequestP2PUnPublish="RequestP2PUnPublish",a.RequestP2PUnmuteRemote="RequestP2PUnmuteRemote",a.RequestP2PMuteRemote="RequestP2PMuteRemote",a.RequestP2PRestartICE="RequestP2PRestartICE",a.FirstVideoPreRender="FirstVideoPreRender",a.FirstVideoBufferReady="FirstVideoBufferReady",a}({}),Cl=function(a){return a.CONNECTING="CONNECTING",a.RECONNECTING="RECONNECTING",a.CONNECTED="CONNECTED",a.CLOSED="CLOSED",a}({}),Zl=function(a){return a[a.CONNECT_AP=0]="CONNECT_AP",a[a.AP_CONNECTED=1]="AP_CONNECTED",a[a.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",a[a.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",a[a.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",a[a.CONNECT_WORKER=5]="CONNECT_WORKER",a[a.WORKER_CONNECTED=6]="WORKER_CONNECTED",a[a.CLOSED=7]="CLOSED",a}({}),sa=function(a){return a.CONNECTION_STATE_CHANGE="connection-state-change",a.STATE_CHANGE="state-change",a.INSPECT_RESULT="inspect-result",a.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",a.REQUEST_NEW_WORKER_URL="request-new-worker-url",a}({}),Ou=function(a){return a.NETWORK_ERROR="NETWORK_ERROR",a.SERVER_ERROR="SERVER_ERROR",a.MULTI_IP="MULTI_IP",a.TIMEOUT="TIMEOUT",a.OFFLINE="OFFLINE",a.LEAVE="LEAVE",a.P2P_FAILED="P2P_FAILED",a.FALLBACK="FALLBACK",a}({}),Ms=function(a){return a.CONNECTED="transmitter:connected",a.RECONNECTING="transmitter:reconnecting",a.WILL_RECONNECT="transmitter:will_reconnect",a.CLOSED="transmitter:closed",a.FAILED="transmitter:failed",a.ON_MESSAGE="transmitter:on_message",a.REQUEST_NEW_URLS="transmitter:request_new_urls",a.RECONNECT_CREATE_CONNECTION="transmitter:reconnect_create_connection",a.ON_TOKEN_PRIVILEGE_DID_EXPIRE="transmitter:on_token_privilege_did_expire",a.TO_CONNECT_DATACHANNEL="transmitter:to_connect_datachannel",a.FAILBACK="transmitter:failback",a.PRE_CONNECT_PC="transmitter:pre_connect_pc",a}({}),nc=function(a){return a.CAMERA_CHANGED="camera-changed",a.MICROPHONE_CHANGED="microphone-changed",a.PLAYBACK_DEVICE_CHANGED="playback-device-changed",a.AUDIO_AUTOPLAY_FAILED="audio-autoplay-failed",a.AUTOPLAY_FAILED="autoplay-failed",a.AUDIO_CONTEXT_STATE_CHANGED="audio-context-state-changed",a.SECURITY_POLICY_VIOLATION="security-policy-violation",a}({}),ba=function(a){return a.CONNECTING="CONNECTING",a.RECONNECTING="RECONNECTING",a.CONNECTED="CONNECTED",a.CLOSED="CLOSED",a}({}),Pc=function(a){return a.CONNECTION_STATE_CHANGE="connection-state-change",a.STATE_CHANGE="state-change",a.INSPECT_RESULT="inspect-result",a.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",a.REQUEST_NEW_WORKER_URL="request-new-worker-url",a}({}),b2=function(a){return a[a.CONNECT_AP=0]="CONNECT_AP",a[a.AP_CONNECTED=1]="AP_CONNECTED",a[a.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",a[a.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",a[a.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",a[a.CONNECT_WORKER=5]="CONNECT_WORKER",a[a.WORKER_CONNECTED=6]="WORKER_CONNECTED",a[a.CLOSED=7]="CLOSED",a}({}),Ro=function(a){return a.CALL="call",a.CANDIDATE="candidate",a.PUBLISH="publish",a.UNPUBLISH="unpublish",a.CONTROL="control",a.RESTART_ICE="restart_ice",a.ACK="ack",a.RESPONSE="response",a.JOIN="join",a.CHECK="check",a}({}),_1=function(a){return a.ABORT="abort",a}({}),Vd=function(a){return a.MUTE_LOCAL_AUDIO="mute_local_audio",a.MUTE_LOCAL_VIDEO="mute_local_video",a.UNMUTE_LOCAL_AUDIO="unmute_local_audio",a.UNMUTE_LOCAL_VIDEO="unmute_local_video",a}({}),Ny=function(a){return a.P2P_TOKEN_TIMEOUT="p2p_token_timeout",a.P2P_TOKEN_CHANGED="p2p_token_changed",a}({}),jJ={[e_.ACCESS_POINT]:{[dA.NO_FLAG_SET]:{desc:"flag is zero",retry:!1},[dA.FLAG_SET_BUT_EMPTY]:{desc:"flag is empty",retry:!1},[dA.INVALID_FALG_SET]:{desc:"invalid flag",retry:!1},[dA.FLAG_SET_BUT_NO_RE]:{desc:"flag set unilbs but no request",retry:!1},[dA.INVALID_SERVICE_ID]:{desc:"invalid service id",retry:!1},[dA.NO_SERVICE_AVAILABLE]:{desc:"no service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_P2P]:{desc:"no unilbs p2p service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_VOICE]:{desc:"no unilbs voice service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_WEBRTC]:{desc:"no unilbs webrtc service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_CDS]:{desc:"no cds service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_CDN]:{desc:"no cdn dispatcher service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_TDS]:{desc:"no tds service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_REPORT]:{desc:"no unilbs report service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_APP_CENTER]:{desc:"no app center service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_ENV0]:{desc:"no unilbs sig env0 service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_VOET]:{desc:"no unilbs voet service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_STRING_UID]:{desc:"no string uid service available",retry:!0},[dA.NO_SERVICE_AVAILABLE_WEBRTC_UNILBS]:{desc:"no webrtc unilbs service available",retry:!0}},[e_.UNILBS]:{[Oc.INVALID_VENDOR_KEY]:{desc:"invalid vendor key, can not find appid",retry:!1},[Oc.INVALID_CHANNEL_NAME]:{desc:"invalid channel name",retry:!1},[Oc.INTERNAL_ERROR]:{desc:"unilbs internal error",retry:!1},[Oc.NO_AUTHORIZED]:{desc:"invalid token, authorized failed",retry:!1},[Oc.DYNAMIC_KEY_TIMEOUT]:{desc:"dynamic key or token timeout",retry:!1},[Oc.NO_ACTIVE_STATUS]:{desc:"no active status",retry:!1},[Oc.DYNAMIC_KEY_EXPIRED]:{desc:"dynamic key expired",retry:!1},[Oc.STATIC_USE_DYNAMIC_KEY]:{desc:"static use dynamic key",retry:!1},[Oc.DYNAMIC_USE_STATIC_KEY]:{desc:"dynamic use static key",retry:!1},[Oc.USER_OVERLOAD]:{desc:"amount of users over load",retry:!1},[Oc.FORBIDDEN_REGION]:{desc:"the request is forbidden in this area",retry:!1},[Oc.CANNOT_MEET_AREA_DEMAND]:{desc:"unable to allocate services in this area",retry:!1},[Oc.REQ_DOWNGRADE_FALLBACK]:{desc:"request downgrade fallback",retry:!1}},[e_.STRING_UID_ALLOCATOR]:{[wy.IIIEGAL_APPID]:{desc:"invalid appid",retry:!1},[wy.IIIEGAL_UID]:{desc:"invalid string uid",retry:!1},[wy.INTERNAL_ERROR]:{desc:"string uid allocator internal error",retry:!0}}};function N2(a){let A=jJ[Math.floor(a/1e4)];if(!A)return{desc:"unknown error",retry:!1};let l=A[a%1e4];if(!l){if(Math.floor(a/1e4)===e_.ACCESS_POINT){let g=a%1e4;if(g.toString()[0]==="1")return{desc:a.toString(),retry:!1};if(g.toString()[0]==="2")return{desc:a.toString(),retry:!0}}return{desc:"unknown error",retry:!1}}return l}let Oy={[mr.K_TIMESTAMP_EXPIRED]:{desc:"K_TIMESTAMP_EXPIRED",action:"failed"},[mr.K_CHANNEL_PERMISSION_INVALID]:{desc:"K_CHANNEL_PERMISSION_INVALID",action:"failed"},[mr.K_CERTIFICATE_INVALID]:{desc:"K_CERTIFICATE_INVALID",action:"failed"},[mr.K_CHANNEL_NAME_EMPTY]:{desc:"K_CHANNEL_NAME_EMPTY",action:"failed"},[mr.K_CHANNEL_NOT_FOUND]:{desc:"K_CHANNEL_NOT_FOUND",action:"failed"},[mr.K_TICKET_INVALID]:{desc:"K_TICKET_INVALID",action:"failed"},[mr.K_CHANNEL_CONFLICTED]:{desc:"K_CHANNEL_CONFLICTED",action:"failed"},[mr.K_SERVICE_NOT_READY]:{desc:"K_SERVICE_NOT_READY",action:"tryNext"},[mr.K_SERVICE_TOO_HEAVY]:{desc:"K_SERVICE_TOO_HEAVY",action:"tryNext"},[mr.K_UID_BANNED]:{desc:"K_UID_BANNED",action:"failed"},[mr.K_IP_BANNED]:{desc:"K_IP_BANNED",action:"failed"},[mr.DATASTREAM2_NOT_AVAILABLE]:{desc:"DATASTREAM2_NOT_AVAILABLE",action:"quit"},[mr.K_AUTO_REBALANCE]:{desc:"k_AUTO_REBALANCE",action:"recover"},[mr.K_VOS_FALLBACK]:{desc:"K_VOS_FALLBACK",action:"tryNext"},[mr.ERR_INVALID_VENDOR_KEY]:{desc:"ERR_INVALID_VENDOR_KEY",action:"failed"},[mr.ERR_INVALID_CHANNEL_NAME]:{desc:"ERR_INVALID_CHANNEL_NAME",action:"failed"},[mr.WARN_NO_AVAILABLE_CHANNEL]:{desc:"WARN_NO_AVAILABLE_CHANNEL",action:"failed"},[mr.WARN_LOOKUP_CHANNEL_TIMEOUT]:{desc:"WARN_LOOKUP_CHANNEL_TIMEOUT",action:"tryNext"},[mr.WARN_LOOKUP_CHANNEL_REJECTED]:{desc:"WARN_LOOKUP_CHANNEL_REJECTED",action:"failed"},[mr.WARN_OPEN_CHANNEL_TIMEOUT]:{desc:"WARN_OPEN_CHANNEL_TIMEOUT",action:"tryNext"},[mr.WARN_OPEN_CHANNEL_REJECTED]:{desc:"WARN_OPEN_CHANNEL_REJECTED",action:"failed"},[mr.WARN_REQUEST_DEFERRED]:{desc:"WARN_REQUEST_DEFERRED",action:"failed"},[mr.ERR_DYNAMIC_KEY_TIMEOUT]:{desc:"ERR_DYNAMIC_KEY_TIMEOUT",action:"failed"},[mr.ERR_NO_AUTHORIZED]:{desc:"ERR_NO_AUTHORIZED",action:"failed"},[mr.ERR_VOM_SERVICE_UNAVAILABLE]:{desc:"ERR_VOM_SERVICE_UNAVAILABLE",action:"tryNext"},[mr.ERR_NO_CHANNEL_AVAILABLE_CODE]:{desc:"ERR_NO_CHANNEL_AVAILABLE_CODE",action:"failed"},[mr.ERR_MASTER_VOCS_UNAVAILABLE]:{desc:"ERR_MASTER_VOCS_UNAVAILABLE",action:"tryNext"},[mr.ERR_INTERNAL_ERROR]:{desc:"ERR_INTERNAL_ERROR",action:"tryNext"},[mr.ERR_NO_ACTIVE_STATUS]:{desc:"ERR_NO_ACTIVE_STATUS",action:"failed"},[mr.ERR_INVALID_UID]:{desc:"ERR_INVALID_UID",action:"failed"},[mr.ERR_DYNAMIC_KEY_EXPIRED]:{desc:"ERR_DYNAMIC_KEY_EXPIRED",action:"failed"},[mr.ERR_STATIC_USE_DYANMIC_KE]:{desc:"ERR_STATIC_USE_DYANMIC_KE",action:"failed"},[mr.ERR_DYNAMIC_USE_STATIC_KE]:{desc:"ERR_DYNAMIC_USE_STATIC_KE",action:"failed"},[mr.ERR_NO_VOCS_AVAILABLE]:{desc:"ERR_NO_VOCS_AVAILABLE",action:"tryNext"},[mr.ERR_NO_VOS_AVAILABLE]:{desc:"ERR_NO_VOS_AVAILABLE",action:"tryNext"},[mr.ERR_JOIN_CHANNEL_TIMEOUT]:{desc:"ERR_JOIN_CHANNEL_TIMEOUT",action:"tryNext"},[mr.ERR_JOIN_BY_MULTI_IP]:{desc:"ERR_JOIN_BY_MULTI_IP",action:"recover"},[mr.ERR_NOT_JOINED]:{desc:"ERR_NOT_JOINED",action:"failed"},[mr.ERR_REPEAT_JOIN_REQUEST]:{desc:"ERR_REPEAT_JOIN_REQUEST",action:"quit"},[mr.ERR_REPEAT_JOIN_CHANNEL]:{desc:"ERR_REPEAT_JOIN_CHANNEL",action:"quit"},[mr.ERR_INVALID_STRINGUID]:{desc:"ERR_INVALID_STRINGUID",action:"failed"},[mr.ERR_TOO_MANY_USERS]:{desc:"ERR_TOO_MANY_USERS",action:"tryNext"},[mr.ERR_SET_CLIENT_ROLE_TIMEOUT]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[mr.ERR_SET_CLIENT_ROLE_NO_PERMISSION]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[mr.ERR_SET_CLIENT_ROLE_ALREADY_IN_USE]:{desc:"ERR_SET_CLIENT_ROLE_ALREADY_IN_USE",action:"success"},[mr.ERR_PUBLISH_REQUEST_INVALID]:{desc:"ERR_PUBLISH_REQUEST_INVALID",action:"failed"},[mr.ERR_SUBSCRIBE_REQUEST_INVALID]:{desc:"ERR_SUBSCRIBE_REQUEST_INVALID",action:"failed"},[mr.ERR_NOT_SUPPORTED_MESSAGE]:{desc:"ERR_NOT_SUPPORTED_MESSAGE",action:"failed"},[mr.ERR_ILLEAGAL_PLUGIN]:{desc:"ERR_ILLEAGAL_PLUGIN",action:"failed"},[mr.ILLEGAL_CLIENT_ROLE_LEVEL]:{desc:"ILLEGAL_CLIENT_ROLE_LEVEL",action:"failed"},[mr.ERR_REJOIN_TOKEN_INVALID]:{desc:"ERR_REJOIN_TOKEN_INVALID",action:"failed"},[mr.ERR_REJOIN_USER_NOT_JOINED]:{desc:"ERR_REJOIN_NOT_JOINED",action:"failed"},[mr.ERR_INVALID_OPTIONAL_INFO]:{desc:"ERR_INVALID_OPTIONAL_INFO",action:"quit"},[mr.ERR_TEST_RECOVER]:{desc:"ERR_TEST_RECOVER",action:"recover"},[mr.ERR_TEST_TRYNEXT]:{desc:"ERR_TEST_TRYNEXT",action:"recover"},[mr.ERR_TEST_RETRY]:{desc:"ERR_TEST_RETRY",action:"recover"},[mr.ILLEGAL_AES_PASSWORD]:{desc:"ERR_TEST_RETRY",action:"failed"},[mr.ERR_TOO_MANY_BROADCASTERS]:{desc:"ERR_TOO_MANY_BROADCASTERS",action:"failed"},[mr.ERR_TOO_MANY_SUBSCRIBERS]:{desc:"ERR_TOO_MANY_SUBSCRIBERS",action:"failed"},[mr.ERR_LICENSE_ILLEGAL]:{desc:"ERR_LICENSE_ILLEGAL",action:"quit"},[mr.ERR_LICENSE_MISSING]:{desc:"ERR_LICENSE_MISSING",action:"quit"},[mr.ERR_LICENSE_EXPIRED]:{desc:"ERR_LICENSE_EXPIRED",action:"quit"},[mr.ERR_LICENSE_MINUTES_EXCEEDED]:{desc:"ERR_LICENSE_MINUTES_EXCEEDED",action:"quit"},[mr.ERR_LICENSE_PERIOD_INVALID]:{desc:"ERR_LICENSE_PERIOD_INVALID",action:"quit"},[mr.ERR_LICENSE_MULTIPLE_SDK_SERVICE]:{desc:"ERR_LICENSE_MULTIPLE_SDK_SERVICE",action:"quit"}};function O2(a){return Oy[a]||{desc:"UNKNOWN_ERROR_".concat(a),action:"failed"}}function Ly(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function o_(a){for(var A=1;A{A.onopen=null,A.onclose=null,A.onmessage=null,A.close()}),this.websockets.length=0}clearTimeout(){this.forceCloseTimeout&&clearTimeout(this.forceCloseTimeout),this.try443PortTimeout&&clearTimeout(this.try443PortTimeout),this.forceCloseTimeout=null,this.try443PortTimeout=null}logger(){var A;let l=Date.now()-this.startTime;for(var g=arguments.length,C=new Array(g),m=0;m{var q;return Rt(q=A.host).call(q,K)});w||(this.useDoubleDomain=!1);let b=[];if(this.useDoubleDomain)C.forEach(K=>{b.push(My(o_(o_({},A),{},{host:A.host.replace(w,K)}),l))});else{let K=o_({},A);if(l&&w){let q=C.find(ce=>ce!==w);q&&(K.host=K.host.replace(w,q))}b.push(My(K,l))}try{b.forEach(K=>{let q=new WebSocket(K);q.binaryType="arraybuffer",y.push(q),this.logger("ws is connecting:",q.url)})}catch(K){if(this.logger("ws create failed"),y.forEach(q=>q.close()),y.length=0,this.useDoubleDomain)return this.useDoubleDomain=!1,this.createWebSocket(A,l,g);if(!l&&Number(A.port)!==443)return this.createWebSocket(A,!0,g);throw new ze(fe.WS_ERR,"init websocket failed! Error: ".concat(K.toString()))}let M=ff();this.store&&this.store.recordJoinChannelService({urls:y.map(K=>K.url),service:"gateway"},this.recordIndex),y.forEach(K=>{K.onopen=()=>{this.logger("onopen: ws ".concat(K.url," open cost ").concat(Date.now()-m,"ms")),this.websockets.forEach(q=>{q!==K&&(q.onopen=null,q.onclose=null,q.onmessage=null,q.close(),this.logger("close backup websocket: ".concat(q.url)))}),this.websockets.length=0,M.resolve(K)},K.onclose=q=>{this.logger("onclose: ws ".concat(K.url," closed cost ").concat(Date.now()-m,"ms state: ").concat(K.readyState));let ce=y.every(oe=>oe.readyState===WebSocket.CLOSED||oe.readyState===WebSocket.CLOSING);this.logger("".concat(l?"443":"47xx"," websocket closed, all failed: ").concat(ce)),ce&&(l||this.isTry443PortFailed||this.useProxy)?(this.logger("onclose: all websocket is closed, ".concat(q.reason)),M.reject({code:q.code,reason:i_.A_ROUND_WS_FAILED})):!l&&ce&&!this.isNormalPortFailed&&this.try443PortTimeout&&(this.logger("all 47xx websocket is closed, try 443 port"),this.clearTimeout(),V()),l?this.isTry443PortFailed=ce:this.isNormalPortFailed=ce},K.onmessage=q=>this.logger("".concat(K.url," onmessage: ").concat(q.data))}),this.websockets.push(...y);let k=()=>{this.websockets.forEach(K=>K.readyState!==WebSocket.OPEN&&K.close())},V=()=>{if(M.isResolved)return k();Wi().os===Vs.MAC_OS&&uo()&&k(),this.createWebSocket(A,!0,!0).then(K=>{M.resolve(K)}).catch(K=>{this.isNormalPortFailed&&M.reject(K),this.logger("try 443 port to create ws failed")}),this.forceCloseTimeout=window.setTimeout(()=>{this.logger("5s timeout close un-opens, isWebsocket created: ",M.isResolved),this.forceCloseTimeout=null,k()},this.forceCloseWSDuration)};return g||(()=>{if(l||this.useProxy)return this.logger("add 5s timeout at ".concat(l?"try-443":"proxy"," condition")),this.forceCloseTimeout=window.setTimeout(()=>{this.forceCloseTimeout=null,k()},this.forceCloseWSDuration);this.try443PortTimeout=window.setTimeout(()=>{this.logger("2s timeout, isWebsocket created: ",M.isResolved),this.try443PortTimeout=null,V()},this.try443PortDuration)})(),M.promise}chooseBestWebsocket(A,l,g,C){return this.useDoubleDomain=!!l,typeof A=="string"&&(A=function(m){let y,w,b;return[,y,w,b]=m.match(ZU)||[],y||([,w,b]=m.match(e7)||[]),w&&b||([,w,b]=m.match(ky)||[]),w&&b||([,w]=m.match(s_)||[]),w||X.warning("un-destructible url: ",m),{proxy:y,host:w,port:b||"443"}}(A)),this.recordIndex=C,this.useProxy=!!A.proxy,g&&this.useProxy&&(X.warn("cannot use 443 only when use proxy"),g=!1),this.createWebSocket(A,!!g,!1).finally(()=>this.clearTimeout())}}function ph(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}class L2 extends io{get url(){return this.websocket&&this.websocket.url||this._websocketUrl}get reconnectMode(){return this._reconnectMode}set reconnectMode(A){var l;Rt(l=["tryNext","recover"]).call(l,A)&&this.resetReconnectCount(A),this._reconnectMode=A}get state(){return this._state}set state(A){A!==this._state&&(this._state=A,this._state==="reconnecting"?this.emit(qr.RECONNECTING,this.reconnectReason):this._state==="connected"?this.emit(qr.CONNECTED):this._state==="closed"?this.emit(qr.CLOSED):this._state==="failed"&&this.emit(qr.FAILED))}resetReconnectCount(A){X.debug("websocket reset reconnect count, reason: "+A),this.reconnectCount=0}constructor(A,l){let g=arguments.length>2&&arguments[2]!==void 0&&arguments[2],C=arguments.length>3&&arguments[3]!==void 0&&arguments[3],m=arguments.length>4&&arguments[4]!==void 0&&arguments[4],y=arguments.length>5?arguments[5]:void 0;super(),Ae(this,"_websocketUrl",null),Ae(this,"connectionID",0),Ae(this,"currentURLIndex",0),Ae(this,"urls",[]),Ae(this,"_reconnectMode","tryNext"),Ae(this,"reconnectReason",void 0),Ae(this,"_initMutex",void 0),Ae(this,"name",void 0),Ae(this,"_state","closed"),Ae(this,"reconnectInterrupter",void 0),Ae(this,"websocket",void 0),Ae(this,"retryConfig",void 0),Ae(this,"reconnectCount",0),Ae(this,"forceCloseTimeout",5e3),Ae(this,"onlineReconnectListener",void 0),Ae(this,"useCompress",void 0),Ae(this,"tryDoubleDomain",!1),Ae(this,"use443PortOnly",!1),Ae(this,"wsInflateLength",0),Ae(this,"wsDeflateLength",0),Ae(this,"closeEstablishingWs",()=>{}),Ae(this,"store",void 0),Ae(this,"joinGatewayRecordIndex",void 0),this.store=y,this.name=A,this.retryConfig=function(V){for(var K=1;K{V!==K&&(this.resetReconnectCount("network state change: ".concat(K," -> ").concat(V)),V===Va.ONLINE?(this.retryConfig.timeout=M,this.retryConfig.timeoutFactor=k):(this.retryConfig.timeout=w,this.retryConfig.timeoutFactor=b))})}getConnection(){return this.websocket||void 0}async init(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,g=await this._initMutex.lock();this._reconnectMode="tryNext",this.forceCloseTimeout=l,this.urls=A,this.state="connecting";try{var C;let m=ff(),y=this.urls[this.currentURLIndex];(C=this.store)===null||C===void 0||C.beforeConnect(),function(w){return!(Dg()||Ie("USE_NEW_TOKEN")||!Ie("ENABLE_PREALLOC_PC")&&(w==null||!w.autoSubscribe||Ie("FORCE_DISABLE_AUTO_SUB")))}(this.store)&&this.emit(Ms.PRE_CONNECT_PC),this.createWebSocketConnection(y).then(m.resolve).catch(m.reject),this.once(qr.CLOSED,()=>{m.reject(new nt(fe.WS_DISCONNECT))}),this.once(qr.CONNECTED,m.resolve),await m.promise}catch{}finally{g()}}close(A,l){if(this.currentURLIndex=0,this.resetReconnectCount("close"),this.reconnectInterrupter&&this.reconnectInterrupter(),this.websocket){this.websocket.onclose=null,this.websocket.onopen=null,this.websocket.onmessage=null;let g=this.websocket;l?setTimeout(()=>g.close(),500):g.close(),this.websocket=void 0,this._websocketUrl=null}this.state=A?"failed":"closed",this.closeEstablishingWs&&this.closeEstablishingWs()}reconnect(A,l){if(!this.websocket)return void X.warning("[".concat(this.name,"] can not reconnect, no websocket"));A!==void 0&&(this.reconnectMode=A),X.debug("[".concat(this.name,"] reconnect is triggered initiative")),typeof this.joinGatewayRecordIndex=="number"&&this.store&&this.store.recordJoinChannelService({status:"error",errors:[new Error(l)]},this.joinGatewayRecordIndex);let g=this.websocket.onclose;this.websocket.onclose=null,this.websocket.close(),g&&g.bind(this.websocket)({code:9999,reason:l})}sendMessage(A){let l=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this.websocket||this.websocket.readyState!==WebSocket.OPEN)throw new nt(fe.WS_ABORT,"websocket is not ready");try{l||(A=JSON.stringify(A)),this.websocket.send(A)}catch(g){throw new nt(fe.WS_ERR,"send websocket message error"+g.toString())}}setWsInflateData(A){this.wsDeflateLength=this.wsDeflateLength+A.originLength,this.wsInflateLength=this.wsInflateLength+A.compressedLength}getWsInflateData(){let A=this.wsInflateLength,l=this.wsDeflateLength;return this.clearWsInflateData(),{wsInflateLength:A,wsDeflateLength:l}}clearWsInflateData(){this.wsInflateLength=0,this.wsDeflateLength=0}async createWebSocketConnection(A){var l;let g=ff();this.connectionID+=1,this.joinGatewayRecordIndex=void 0;let C=k=>{var V;(V=this.store)===null||V===void 0||V.signalChannelOpen(),X.debug("[".concat(this.name,"] websocket opened:"),k),this.reconnectMode="retry",this.state="connected",this.resetReconnectCount("opened"),g.resolve()},m=async k=>{var V;if(X.debug("[".concat(this.name,"] websocket close ").concat((V=this.websocket)===null||V===void 0?void 0:V.url,", code: ").concat(k.code,", reason: ").concat(k.reason,", current mode: ").concat(this.reconnectMode)),this.reconnectCount>=this.retryConfig.maxRetryCount)g.reject(new nt(fe.WS_DISCONNECT,"websocket close: ".concat(k.code))),this.close();else{this.state==="connected"&&(this.reconnectReason=k.reason,this.state="reconnecting");let K=JA(this,qr.WILL_RECONNECT,this.reconnectMode,k.reason)||this.reconnectMode,q=await this.reconnectWithAction(K);if(this.state==="closed")return void X.debug("[".concat(this.connectionID,"] ws is closed, no need to reconnect"));if(!q)return g.reject(new nt(fe.WS_DISCONNECT,"websocket reconnect failed: ".concat(k.code))),this.close(!0);g.resolve()}},y=k=>{this.emit(qr.ON_MESSAGE,k)},w=k=>{X.warn("[".concat(this.connectionID,"] ws open error ").concat(k))};this.websocket&&(this.websocket.onclose=null,this.websocket.close()),Ie("GATEWAY_WSS_ADDRESS")&&this.name.startsWith("gateway")&&(A=Ie("GATEWAY_WSS_ADDRESS")),X.debug("[".concat(this.name,"] start connect, url:"),A);let b=(l=this.store)===null||l===void 0?void 0:l.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"});try{var M;this._websocketUrl=My(A);let k=await this.chooseBestWebsocketConnection(A);this.websocket=k,C&&C(this.websocket.url),this.websocket.onclose=m,this.websocket.onmessage=y,this.websocket.onerror=w,(M=this.store)===null||M===void 0||M.recordJoinChannelService({endTs:Date.now(),status:"success"},b),this.joinGatewayRecordIndex=b}catch(k){let V=this.state==="closed",K=k instanceof nt,q=K&&k.code===fe.WS_ABORT,ce=K&&k.code===fe.WS_ERR,oe=K?k.message:k&&(k.reason||k.toString());X.warning("[choose-best-ws] chooseBestWebsocket error: ".concat(oe)),this.store&&this.store.recordJoinChannelService({endTs:Date.now(),status:q?"aborted":"error",errors:[k]},b),V||ce?(g.reject(V?new nt(fe.WS_DISCONNECT,"websocket is closed: ".concat(oe)):new nt(fe.WS_ERR,"init websocket failed: ".concat(oe))),ce&&X.error("[".concat(this.name,"] init websocket failed: ").concat(oe))):m&&m(k)}return g.promise}async reconnectWithAction(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this.reconnectCount>=this.retryConfig.maxRetryCount||this.urls.length===0||this.state==="closed")return!1;X.warning("[choose-best-ws] action: =>",A),this.onlineReconnectListener||Xi.isOnline||!Xi.onlineWaiter||(this.onlineReconnectListener=Xi.onlineWaiter.then(()=>{this.onlineReconnectListener=void 0}));let g=!0;if(this.reconnectInterrupter=()=>g=!1,l){let y=Y1(this.reconnectCount,this.retryConfig);X.debug("[".concat(this.name,"] wait ").concat(y,"ms to reconnect websocket, mode: ").concat(A)),await Ft.race([Ks(y),this.onlineReconnectListener||new Ft(()=>{})])}if(this._state==="closed"||!g)return!1;this.reconnectCount+=1;let C=async(y,w)=>{this.emit(qr.RECONNECT_CREATE_CONNECTION,w),await this.createWebSocketConnection(y)};try{if(A==="retry")await C(this.urls[this.currentURLIndex],A);else if(A==="tryNext"){if(this.currentURLIndex+=1,this.currentURLIndex>=this.urls.length)return this.reconnectWithAction("recover",!1);X.debug("[".concat(this.name,"] websocket url length: ").concat(this.urls.length," current index: ").concat(this.currentURLIndex)),await C(this.urls[this.currentURLIndex],A)}else A==="recover"&&(X.debug("[".concat(this.name,"] request new urls")),this.resetReconnectCount("recover mode"),this.urls=await rs(this,qr.REQUEST_NEW_URLS),this.currentURLIndex=0,await C(this.urls[this.currentURLIndex],A))}catch(y){var m;X.error("[".concat(this.name,"] reconnect failed ").concat(y&&y.toString()));let w=y==null||(m=y.data)===null||m===void 0?void 0:m.desc;if(Array.isArray(w)){if(Rt(w).call(w,"dynamic key expired"))return this.emit(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1;if(Rt(w).call(w,"request downgrade fallback"))return this.emit(qr.ON_FALLBACK),!1}return this.reconnectWithAction(A,l)}return!0}}class Lu extends L2{constructor(A,l){super(A,l,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(A,l){let g=ff(),C=function(y,w){return new t7(y,w)}(this.forceCloseTimeout,this.store);this.closeEstablishingWs=()=>{X.debug("[choose-best-ws] close establishing websockets"),C.closeAllWebsockets(),g.reject(new nt(fe.WS_ABORT,"choose best websocket aborted"))};let m=Ie("GATEWAY_DOMAINS");return X.debug("[choose-best-ws] currentDomain: ",A,", domains: ",m,"total: ".concat(this.urls.length),"current: ".concat(this.currentURLIndex+1)),C.chooseBestWebsocket(A,this.tryDoubleDomain,this.use443PortOnly,l).then(g.resolve).catch(g.reject),g.promise.finally(()=>{this.closeEstablishingWs=void 0})}}class M2 extends L2{constructor(A,l){super(A,l,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(A,l){return new Ft((g,C)=>{let m=!1,y=[];this.closeEstablishingWs=()=>{X.debug("[choose-best-ws] close establishing websockets"),y.forEach(ce=>{ce.onclose=null,ce.onopen=null,ce.onmessage=null,ce.close()}),C(new nt(fe.WS_ABORT,"choose best websocket aborted"))};let w=Ie("GATEWAY_DOMAINS"),b,M=A.indexOf("?h="),k=w.find(ce=>M!==-1?Rt(A).call(A,ce,M):Rt(A).call(A,ce));X.debug("[choose-best-ws] currentDomain: ",k,", domains: ",w);let V=!this.tryDoubleDomain||!k;if(!V&&k){var K;let ce=Date.now();try{w.forEach(oe=>{let le=M===-1?A.replace(k,oe):A.substr(0,M)+A.substr(M).replace(k,oe),pe=new WebSocket(le);pe.binaryType="arraybuffer",y.push(pe),X.debug("[choose-best-ws] ws is connecting:",pe.url)})}catch{for(X.debug("[choose-best-ws] ws create failed, fallback to single url"),y.forEach(oe=>oe.close());y.length;)y.pop();V=!0}(K=this.store)===null||K===void 0||K.recordJoinChannelService({urls:y.map(oe=>oe.url),service:"gateway"},l),y.forEach(oe=>{oe.onopen=()=>{if(m)return;let le=Date.now()-ce;X.debug("[choose-best-ws] ws open cost ".concat(le,"ms")),y.filter(pe=>pe!==oe).forEach(pe=>{X.debug("[choose-best-ws]close backup websocket: ".concat(pe.url)),pe.close()}),m=!0,g(oe)},oe.onclose=le=>{b=le,!m&&(y.find(pe=>!(pe.readyState===WebSocket.CLOSED||pe.readyState===WebSocket.CLOSING))||(X.debug("[choose-best-ws] all websocket is closed"),m=!0,C(b)))},oe.onmessage=le=>{X.debug("[choose-best-ws]".concat(oe.url," onmessage: ").concat(le.data))}}),Ks(this.forceCloseTimeout).then(()=>{y.forEach(oe=>{oe.readyState!==WebSocket.OPEN&&oe.close()})})}if(V){var q;let ce;X.debug("[choose-best-ws] use single url: ",A),(q=this.store)===null||q===void 0||q.recordJoinChannelService({urls:[A],service:"gateway"},l);try{ce=new WebSocket(A),y.push(ce),ce.binaryType="arraybuffer"}catch(oe){let le=new nt(fe.WS_ERR,"init websocket failed! Error: ".concat(oe.toString()));return X.error("[".concat(this.name,"]").concat(le)),void C(le)}ce.onopen=()=>{g(ce)},ce.onclose=oe=>{C(oe)},ce.onmessage=oe=>{X.debug("[choose-best-ws]".concat(ce.url," onmessage: ").concat(oe.data))},Ks(this.forceCloseTimeout).then(()=>{ce&&ce.readyState!==WebSocket.OPEN&&ce.close()})}}).then(g=>(this.closeEstablishingWs=void 0,g)).catch(g=>{throw this.closeEstablishingWs=void 0,g})}}class r7 extends io{get connectionState(){return this._connectionState}set connectionState(A){A!==this._connectionState&&(this._connectionState=A,A===vi.CONNECTED?this.emit(or.WS_CONNECTED):A===vi.RECONNECTING?this.emit(or.WS_RECONNECTING,this._websocketReconnectReason):A===vi.CLOSED&&this.emit(or.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(A,l){super(),Ae(this,"__name__","AgoraRTCSignal"),Ae(this,"_disconnectedReason",void 0),Ae(this,"_websocketReconnectReason",void 0),Ae(this,"_connectionState",vi.CLOSED),Ae(this,"reconnectToken",void 0),Ae(this,"websocket",void 0),Ae(this,"openConnectionTime",void 0),Ae(this,"clientId",void 0),Ae(this,"lastMsgTime",Date.now()),Ae(this,"uploadCache",[]),Ae(this,"uploadCacheInterval",void 0),Ae(this,"rttRolling",new OR(5)),Ae(this,"pingpongTimer",void 0),Ae(this,"wsInflateDataTimer",void 0),Ae(this,"pingpongTimeoutCount",0),Ae(this,"ortc",void 0),Ae(this,"joinResponse",void 0),Ae(this,"multiIpOption",void 0),Ae(this,"initError",void 0),Ae(this,"spec",void 0),Ae(this,"store",void 0),Ae(this,"onWebsocketMessage",g=>{if(g.data instanceof ArrayBuffer)return void this.emit(or.ON_BINARY_DATA,g.data);let C=JSON.parse(g.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(C,"_id")){let m="res-@".concat(C._id);this.emit(m,C._result,C._message)}else if(Object.prototype.hasOwnProperty.call(C,"_type")){if(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED)switch(C._message.error_code){case 14:this.close(bi.UID_BANNED);break;case 15:this.close(bi.IP_BANNED);break;case 16:this.close(bi.CHANNEL_BANNED)}if(C._type===Or.ON_USER_LICENSE_BANNED)switch(C._message.error_code){case mr.ERR_LICENSE_MISSING:this.close(bi.LICENSE_MISSING);break;case mr.ERR_LICENSE_EXPIRED:this.close(bi.LICENSE_EXPIRED);break;case mr.ERR_LICENSE_MINUTES_EXCEEDED:this.close(bi.LICENSE_MINUTES_EXCEEDED);break;case mr.ERR_LICENSE_PERIOD_INVALID:this.close(bi.LICENSE_PERIOD_INVALID);break;case mr.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(bi.LICENSE_MULTIPLE_SDK_SERVICE);break;case mr.ERR_LICENSE_ILLEGAL:this.close(bi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=A.clientId,this.spec=A,this.store=l,this.websocket=new Lu("gateway-".concat(this.clientId),this.spec.retryConfig,!0,Ie("JOIN_GATEWAY_USE_DUAL_DOMAIN"),Ie("JOIN_GATEWAY_USE_443PORT_ONLY"),l),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===vi.CONNECTED&&this.reconnect("retry",xo.OFFLINE)})}async request(A,l,g,C){let m=yn(6,""),y={_id:m,_type:A,_message:l},w=this.websocket.connectionID,b=()=>new Ft((ce,oe)=>{if(this.connectionState===vi.CONNECTED)return ce();let le=()=>{this.off(or.WS_CLOSED,pe),ce()},pe=()=>{this.off(or.WS_CONNECTED,le),oe(new ze(fe.WS_ABORT))};this.once(or.WS_CONNECTED,le),this.once(or.WS_CLOSED,pe),A!==sr.PUBLISH&&A!==sr.PUBLISH_DATASTREAM&&A!==sr.SUBSCRIBE&&A!==sr.SUBSCRIBE_DATASTREAM&&A!==sr.UNSUBSCRIBE&&A!==sr.UNSUBSCRIBE_DATASTREAM&&A!==sr.UNPUBLISH&&A!==sr.UNPUBLISH_DATASTREAM&&A!==sr.CONTROL&&A!==sr.RESTART_ICE||this.once(or.DISCONNECT_P2P,()=>{oe(new ze(fe.DISCONNECT_P2P))}),A!==sr.PUBLISH&&A!==sr.RESTART_ICE||this.once(or.ABORT_P2P_EXECUTION,()=>{oe(new ze(fe.DISCONNECT_P2P))})});if(this.connectionState!==vi.CONNECTING&&this.connectionState!==vi.RECONNECTING||A===sr.JOIN||A===sr.REJOIN||await b(),this.websocket.sendMessage(y,!0),C)return;let M=new Ft((ce,oe)=>{let le=!1,pe=(be,Ue)=>{le=!0,ce({isSuccess:be==="success",message:Ue||{}}),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.emit(or.REQUEST_SUCCESS,A,l)};this.once("res-@".concat(m),pe);let Se=()=>{oe(new ze(fe.WS_ABORT,"type: ".concat(A))),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.off("res-@".concat(m),pe)};this.once(or.WS_CLOSED,Se),this.once(or.WS_RECONNECTING,Se),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||le||(X.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(A)),this.emit(or.REQUEST_TIMEOUT,A,l))})}),k=null;try{k=await M}catch(ce){if(this.connectionState===vi.CLOSED||A===sr.LEAVE)throw new ze(fe.WS_ABORT);return!this.spec.forceWaitGatewayResponse||g?ce.throw():A===sr.JOIN||A===sr.REJOIN?null:(await b(),await this.request(A,l))}if(k.isSuccess)return k.message;let V=Number(k.message.error_code||k.message.code),K=O2(V),q=new ze(fe.UNEXPECTED_RESPONSE,"".concat(K.desc,": ").concat(k.message.error_str),{code:V,data:k.message,desc:K.desc});return K.action==="success"?k.message:(X.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(A,", error_code: ").concat(V,", message: ").concat(K.desc,", action: ").concat(K.action)),V===mr.ERR_TOO_MANY_BROADCASTERS?((A===sr.JOIN||A===sr.REJOIN)&&(this.initError=q,this.close()),q.throw()):K.action==="failed"?q.throw():K.action==="quit"?(this.initError=q,this.close(),q.throw()):(V===mr.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=k.message.option,X.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",xo.MULTI_IP)):this.reconnect(K.action,xo.SERVER_ERROR),A===sr.JOIN||A===sr.REJOIN?null:await this.request(A,l)))}waitMessage(A,l){return new Ft(g=>{let C=m=>{(!l||l(m))&&(this.off(A,C),g(m))};this.on(A,C)})}uploadWRTCStats(A){if(!this.store.sessionId)return void X.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let l={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:A};this.upload(pn.WRTC_STATS,l)}upload(A,l){let g={_type:A,_message:l};try{this.websocket.sendMessage(g)}catch{let C=Ie("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(g),this.uploadCache.length>C&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==vi.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},Ie("UPLOAD_CACHE_INTERVAL")||2e3))}}send(A,l){let g={_type:A,_message:l};this.websocket.sendMessage(g)}init(A){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ft((l,g)=>{this.once(or.WS_CONNECTED,()=>l(this.joinResponse)),this.once(or.WS_CLOSED,C=>g(this.initError||new ze(fe.WS_ABORT,C))),this.connectionState=vi.CONNECTING,this.websocket.init(A).catch(g),this.wsInflateDataTimer&&window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=window.setInterval(()=>{this.handleWsInflateData()},2e4)})}close(A){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.wsInflateDataTimer&&(this.handleWsInflateData(),window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._disconnectedReason=A||bi.LEAVE,this.connectionState=vi.CLOSED,X.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close()}async join(){if(!this.joinResponse){this.emit(or.ABORT_P2P_EXECUTION),this.store.signalConnected();let A=await rs(this,or.REQUEST_JOIN_INFO);this.store.joinReq();let l=await this.request(sr.JOIN,A);if(this.ortc=A==null?void 0:A.ortc,this.store.joinRep(),!l)return this.emit(or.REPORT_JOIN_GATEWAY,i_.TIMEOUT,this.url||""),!1;this.joinResponse=l,this.emit(or.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}async rejoin(){if(!this.reconnectToken)throw new ze(fe.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");let A=o2(this,or.REQUEST_REJOIN_INFO);A.token=this.reconnectToken;let l=await this.request(sr.REJOIN,A);return!!l&&(this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),l.peers&&l.peers.forEach(g=>{this.emit(Or.ON_USER_ONLINE,{uid:g.uid}),g.audio&&this.emit(Or.ON_ADD_AUDIO_STREAM,{uid:g.uid,uint_id:g.uint_id,audio:!0,ssrcId:g.audio_ssrc}),g.video&&this.emit(Or.ON_ADD_VIDEO_STREAM,{uid:g.uid,uint_id:g.uint_id,video:!0,ssrcId:g.video_ssrc}),g.audio_mute?this.emit(Or.MUTE_AUDIO,{uid:g.uid}):this.emit(Or.UNMUTE_AUDIO,{uid:g.uid}),g.video_mute?this.emit(Or.MUTE_VIDEO,{uid:g.uid}):this.emit(Or.UNMUTE_VIDEO,{uid:g.uid}),g.audio_enable_local?this.emit(Or.ENABLE_LOCAL_AUDIO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_AUDIO,{uid:g.uid}),g.video_enable_local?this.emit(Or.ENABLE_LOCAL_VIDEO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_VIDEO,{uid:g.uid}),g.audio||g.video||this.emit(Or.ON_REMOVE_STREAM,{uid:g.uid,uint_id:g.uint_id})}),!0)}reconnect(A,l){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(A,l)}async downgradeCodec(A){if(!this.ortc)return!1;let l={downgrade_codec:A,ortc:this.ortc};return!!await this.request(sr.DOWNGRADE_CODEC,l)}handleNotification(A){X.debug("[".concat(this.clientId,"] receive notification: "),A);let l=O2(A.code);if(A.code===28&&"detail"in A&&(X.info("[".concat(this.clientId,"] receive recover notification: "),A.detail),this.emit(or.RECOVER_NOTIFICATION,A.detail)),l.action!=="success"){if(l.action!=="failed")return l.action==="quit"?A.code===mr.ERR_REPEAT_JOIN_CHANNEL&&Ie("IGNORE_UID_CHECK")?void this.close(bi.UID_CONFLICT):(l.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(bi.UID_BANNED),void this.close()):A.code===mr.K_VOS_FALLBACK&&"detail"in A?(X.info("[".concat(this.clientId,"] receive vos fallback notification: "),A.detail),A.detail==="FALLBACKCN"&&Ie("ENABLE_QUALITY_FALLBACK")?void rs(this,or.VOS_FALLBACK_PROMISE,A.detail).then(()=>{this.reconnect("recover",l.desc)}).catch(g=>{X.debug("[".concat(this.clientId,"] cancel vos fallback cn, error: "),g)}):A.detail==="fallback_hls"&&Ie("ENABLE_FALLBACK_TO_HLS")?(this.emit(or.VOS_FALLBACK,A.detail),void this.close(bi.FALLBACK_TO_HLS)):this.reconnect(l.action,l.desc)):void this.reconnect(l.action,xo.SERVER_ERROR);X.error("[".concat(this.clientId,"] ignore error: "),l.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;let A=Ie("PING_PONG_TIME_OUT"),l=Date.now();this.pingpongTimeoutCount>=A&&(X.warning("[".concat(this.clientId,"] PING-PONG Timeout. Last Socket Message: ").concat(l-this.lastMsgTime,"ms")),l-this.lastMsgTime>Ie("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",xo.TIMEOUT):this.request(sr.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let g=Date.now()-l;this.rttRolling.add(g),Ie("REPORT_STATS")&&this.send(sr.PING_BACK,{pingpongElapse:g})}).catch(g=>{})}handleWsInflateData(){let{wsInflateLength:A,wsDeflateLength:l}=this.websocket.getWsInflateData();A!==0&&l!==0&&this.upload(pn.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:l,ws_inflate_length:A})}handleWebsocketEvents(){this.websocket.on(qr.RECONNECT_CREATE_CONNECTION,A=>{this.emit(or.WS_RECONNECT_CREATE_CONNECTION,A)}),this.websocket.on(qr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(qr.CLOSED,()=>{this.connectionState=vi.CLOSED}),this.websocket.on(qr.FAILED,()=>{this._disconnectedReason=bi.NETWORK_ERROR,this.connectionState=vi.CLOSED}),this.websocket.on(qr.RECONNECTING,A=>{this._websocketReconnectReason=A,this.joinResponse=void 0,this.connectionState===vi.CONNECTED?this.connectionState=vi.RECONNECTING:this.connectionState=vi.CONNECTING}),this.websocket.on(qr.WILL_RECONNECT,(A,l,g)=>{let C=o2(this,or.IS_P2P_DISCONNECTED),m=C||A!=="retry";C&&A==="retry"&&(X.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),A="tryNext",l=i_.P2P_DISCONNECTED),m&&(X.debug("".concat(this.clientId," will renewSession, reconnect mode: ").concat(A)),this.emit(or.REPORT_JOIN_GATEWAY,l||i_.UNKNOWN_REASON,this.url||""),this.reconnectToken=void 0,this.emit(or.DISCONNECT_P2P)),g(A)}),this.websocket.on(qr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(A=>{X.warning("[".concat(this.clientId,"] rejoin failed ").concat(A)),this.reconnect("tryNext",xo.SERVER_ERROR)}):this.join().catch(A=>{if(this.emit(or.REPORT_JOIN_GATEWAY,A,this.url||""),A instanceof ze){if(A.code===fe.UNEXPECTED_RESPONSE&&A.data.code===mr.ERR_NO_AUTHORIZED)return this.initError=new ze(fe.TOKEN_EXPIRE,"dynamic key expired"),void this.close(bi.TOKEN_EXPIRE);X.error("[".concat(this.clientId,"] join gateway request failed"),A.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",xo.SERVER_ERROR):(this.initError=A,this.close())}})}),this.websocket.on(qr.REQUEST_NEW_URLS,(A,l)=>{rs(this,or.REQUEST_RECOVER,this.multiIpOption).then(A).catch(l)}),this.websocket.on(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(Ms.PRE_CONNECT_PC,()=>{this.emit(or.PRE_CONNECT_PC)}),this.websocket.on(qr.ON_FALLBACK,()=>{Ie("ENABLE_FALLBACK_TO_HLS")&&this.emit(or.VOS_FALLBACK,"fallback_hls")})}}let i7=function(a){return a.NATIVE_RTC="native_rtc",a.NATIVE_RTM="native_rtm",a.WEB_RTC="web_rtc",a.WEB_RTM="web_rtm",a}({}),ps=function(a){return a[a.CHOOSE_SERVER=11]="CHOOSE_SERVER",a[a.CLOUD_PROXY=18]="CLOUD_PROXY",a[a.CLOUD_PROXY_5=20]="CLOUD_PROXY_5",a[a.CLOUD_PROXY_FALLBACK=26]="CLOUD_PROXY_FALLBACK",a}({});function n7(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Py(a){for(var A=1;ARt(a).call(a,g));return l?a.split(".".concat(l))[0].replace(/-/g,"."):a}catch{return X.debug("serverUrlToIp error, fallback to url",a),a}}function IN(a,A){a.addresses||(a.addresses=[]);let l=function(w,b){if(Ie("CONNECT_GATEWAY_WITHOUT_DOMAIN"))return w.map(V=>{let{ip:K,port:q}=V;return{address:"".concat(K,":").concat(q)}});let M=Ie("GATEWAY_DOMAINS"),k=M[1]&&Rt(b).call(b,M[1])?1:0;return w.map(V=>{let{domain_prefix:K,port:q,ip:ce}=V;if(K)return{address:"".concat(K,".").concat(M[k++%M.length],":").concat(q)};let oe=/^[\.\:\d]+$/.test(ce),le=oe?"".concat(ce.replace(/[^\d]/g,"-"),".").concat(M[k++%M.length],":").concat(q):"".concat(ce,":").concat(q);return oe||X.debug("Cannot recognized as ip address: ".concat(ce,", use as host3")),{ip:ce,port:q,address:le}})}(a.addresses,A),g=Array.isArray(a.detail)&&a.detail[18];if(g&&typeof g=="string"){let w=g.split(";");for(let b=0;b=0&&a<.17?1:a>=.17&&a<.36?2:a>=.36&&a<.59?3:a>=.59&&a<=1?4:a>1?5:0}function YC(a,A){let l,g,C;switch(A){case ps.CHOOSE_SERVER:g=4096,C="choose server";break;case ps.CLOUD_PROXY:g=1048576,C="proxy";break;case ps.CLOUD_PROXY_5:g=4194304,C="proxy5";break;case ps.CLOUD_PROXY_FALLBACK:g=4194310,C="proxy fallback";break;default:throw new ze(fe.UNEXPECTED_ERROR,"multi unlibs response transformer get unknown service id",{csIp:a.detail&&a.detail[502],retry:!1})}if(a.response_body.forEach(m=>{m.buffer&&m.buffer.flag===g&&(l={code:m.buffer.code,addresses:(m.buffer.edges_services||[]).map(y=>Py(Py({},y),{},{ticket:m.buffer.cert})),server_ts:a.enter_ts,uid:m.buffer.uid,cid:m.buffer.cid,cname:m.buffer.cname,detail:Py(Py({},m.buffer.detail),a.detail),flag:m.buffer.flag,opid:a.opid,cert:m.buffer.cert})}),!l)throw new ze(fe.MULTI_UNILBS_RESPONSE_ERROR,"cannot parse response ".concat(C," from multi unilbs response"),{csIp:a.detail&&a.detail[502]});return l}async function CN(a,A){return await Ft.all(a.addresses.map(async l=>({address:ed(l.ip),tcpport:l.port,udpport:l.port,username:A&&Ie("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?A.toString():Ti.username,password:A&&Ie("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?await QR(A.toString()):Ti.password})))}function pN(a,A){let l=A.getMediaStreamTrack(!0).getSettings(),g=A.videoHeight||l.height,C=A.videoWidth||l.width;return g&&C?Math.max(Math.min(g,C)/Math.min(ZA(a.height),ZA(a.width)),1):(X.warning("can't get ori-track's height, default scale down 4 times for low stream"),4)}function fh(a){let{candidateType:A,relayProtocol:l,type:g,address:C,port:m,protocol:y}=a,w={candidateType:A,relayProtocol:l,protocol:y};if(g!=="local-candidate"){let b=C.split(".");b.length>=4&&(b[1]="*",b[2]="*"),w.address=b.join("."),w.port=m}return w}function Pt(a){let A=a.split(":"),l=a.split(/[-.]/),g=Rt(a).call(a,"-")?"-":".",C=a;return A.length>1?l.length>1?(l[1]="**",C=l[0]+g+"**:"+A[A.length-1]):C=A.length>2?A[0]+g+"**:"+A[A.length-1]:"**:"+A[A.length-1]:l.length>1&&(C=l[0]+g+"**"),C}function a_(a,A){return a.getTransceivers().find(l=>l.sender.track===A||l.receiver.track===A)}function k2(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Ie("SVC_MODE");if(Ie("ENABLE_SVC"))return function(A){return A in Bo}(a)?a:Bo.L1T3}let Uc={[$t.VIDEO]:[{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"},{key:"video-orientation",extensionName:"urn:3gpp:video-orientation"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"playout-delay",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"},{key:"video-content-type",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type"},{key:"color-space",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/color-space"},{key:"video-timing",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-timing"}],[$t.AUDIO]:[{key:"ssrc-audio-level",extensionName:"urn:ietf:params:rtp-hdrext:ssrc-audio-level"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"}]};function gA(a){a.send&&(er($t.VIDEO,a.send.videoExtensions),er($t.AUDIO,a.send.audioExtensions)),a.recv&&(er($t.VIDEO,a.recv.videoExtensions),er($t.AUDIO,a.recv.audioExtensions)),a.sendrecv&&(er($t.VIDEO,a.sendrecv.videoExtensions),er($t.AUDIO,a.sendrecv.audioExtensions))}function Br(a,A){a.send&&(Ci($t.VIDEO,a.send.videoExtensions,A.send.videoExtensions),Ci($t.AUDIO,a.send.audioExtensions,A.send.audioExtensions)),a.recv&&(Ci($t.VIDEO,a.recv.videoExtensions,A.recv.videoExtensions),Ci($t.AUDIO,a.recv.audioExtensions,A.recv.audioExtensions))}function Ci(a,A,l){A.forEach(g=>{var C;let m=Uc[a].find(w=>{var b;let{key:M}=w;return Rt(b=g.extensionName).call(b,M)});if(!m)return;let y=l.find(w=>{let{extensionName:b}=w;return Rt(b).call(b,m.key)});y&&Rt(C=y.extensionName).call(C,"gdpr_forbidden")&&(g.extensionName=y.extensionName)})}function er(a,A){A.forEach(l=>{var g;let C=Uc[a].find(m=>{var y;let{key:w}=m;return Rt(y=l.extensionName).call(y,w)});Rt(g=l.extensionName).call(g,"gdpr_forbidden")&&C&&(l.extensionName=C.extensionName)})}function ur(a){return a==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"||Rt(a).call(a,"abs-send-time")}function Mu(a){return a==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"||Rt(a).call(a,"draft-holmer-rmcat-transport-wide-cc-extensions-01")}function Ur(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function EA(a){for(var A=1;A1&&arguments[1]!==void 0?arguments[1]:{},l=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},g=arguments.length>3?arguments[3]:void 0,{filterRTX:C,filterVideoFec:m,filterAudioFec:y,filterAudioCodec:w,filterVideoCodec:b,unsupportedVideoUplinkCodec:M,unsupportedVideoDownlinkCodec:k}=A,{useXR:V}=l,K=[],q=[],ce=[],oe=[],le=!1,pe=!1;if(ki(a).mediaDescriptions.forEach(be=>{g&&g!==be.attributes.direction||(be.media.mediaType!=="video"||le||(q=be.attributes.payloads,oe=be.attributes.extmaps,le=!0),be.media.mediaType!=="audio"||pe||(K=be.attributes.payloads,ce=be.attributes.extmaps,pe=!0))}),!oe||q.length===0)throw new Error("Cannot get video capabilities from SDP.");if(!ce||K.length===0)throw new Error("Cannot get audio capabilities from SDP.");if(q.forEach(be=>{var Ue;(Ue=be.rtpMap)!==null&&Ue!==void 0&&Ue.clockRate&&(be.rtpMap.clockRate=parseInt(be.rtpMap.clockRate)),V&&be.rtcpFeedbacks.push({type:"rrtr"})}),K.forEach(be=>{var Ue;(Ue=be.rtpMap)!==null&&Ue!==void 0&&Ue.clockRate&&(be.rtpMap.clockRate=parseInt(be.rtpMap.clockRate)),V&&be.rtcpFeedbacks.push({type:"rrtr"})}),C&&(K=K.filter(be=>{var Ue;return((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLowerCase())!=="rtx"}),q=q.filter(be=>{var Ue;return((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLowerCase())!=="rtx"})),m){let be=q.filter(Le=>{var je;return/(red)|(ulpfec)|(flexfec)/i.test(((je=Le.rtpMap)===null||je===void 0?void 0:je.encodingName)||"")}),Ue=jo(be,q).map(Le=>Le.payloadType),xe=[...be.map(Le=>Le.payloadType),...Ue];q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType))}if(y&&(K=K.filter(be=>{var Ue;return!/(red)|(ulpfec)|(flexfec)/i.test(((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName)||"")})),w&&(w==null?void 0:w.length)>0&&(K=K.filter(be=>{var Ue;return Rt(w).call(w,((Ue=be.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLowerCase())||"")})),b&&(b==null?void 0:b.length)>0){let be=q.filter(Ue=>{var xe;return Rt(b).call(b,((xe=Ue.rtpMap)===null||xe===void 0?void 0:xe.encodingName.toLowerCase())||"")});q=be.concat(C?[]:jo(be,q))}let Se=Ie("UNSUPPORTED_VIDEO_CODEC");if(Se&&Se.length>0){let be=q.filter(Le=>Le.rtpMap&&Rt(Se).call(Se,Le.rtpMap.encodingName.toLowerCase())),Ue=jo(be,q),xe=be.concat(Ue).map(Le=>Le.payloadType);q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType)),X.debug("unsupportedVideoCodec: ".concat(Se,", toBeRemoved: ").concat(xe))}if(M&&M.length>0&&g==="sendonly"){let be=q.filter(Le=>Le.rtpMap&&Rt(M).call(M,Le.rtpMap.encodingName.toLowerCase())),Ue=jo(be,q),xe=be.concat(Ue).map(Le=>Le.payloadType);q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType)),X.debug("unsupportedVideoUplinkCodec: ".concat(M,", toBeRemoved: ").concat(xe))}if(k&&k.length>0&&g==="recvonly"){let be=q.filter(Le=>Le.rtpMap&&Rt(k).call(k,Le.rtpMap.encodingName.toLowerCase())),Ue=jo(be,q),xe=be.concat(Ue).map(Le=>Le.payloadType);q=q.filter(Le=>!Rt(xe).call(xe,Le.payloadType)),X.debug("unsupportedVideoDownlinkCodec: ".concat(k,", toBeRemoved: ").concat(xe))}return{audioCodecs:K,videoCodecs:q,audioExtensions:ce,videoExtensions:oe}}function fl(a){let A=ki(a),l,g;for(let C of A.mediaDescriptions){if(!l){let m=C.attributes.iceUfrag,y=C.attributes.icePwd;if(!m||!y)throw new Error("Cannot get iceUfrag or icePwd from SDP.");l={iceUfrag:m,icePwd:y}}if(!g){let m=C.attributes.fingerprints;m.length>0&&(g={fingerprints:m})}}if(!g&&A.attributes.fingerprints.length>0&&(g={fingerprints:A.attributes.fingerprints}),!g||!l)throw new Error("Cannot get iceParameters or dtlsParameters from SDP.");return{iceParameters:l,dtlsParameters:g}}function P2(a,A){let l=[],g=a.attributes.ssrcGroups.filter(y=>y.semantic==="FID"),C=a.attributes.ssrcGroups.find(y=>y.semantic==="SIM"),m=a.attributes.ssrcs;if(C)C.ssrcIds.forEach(y=>{var w;let b=(w=g.find(M=>M.ssrcIds[0]===y))===null||w===void 0?void 0:w.ssrcIds[1];l.push({ssrcId:y,rtx:A?b:void 0})});else if(g.length>0){let y=g[0].ssrcIds[0],w=g[0].ssrcIds[1];l.push({ssrcId:y,rtx:A?w:void 0})}else{if(m.length===0)throw new Error("No ssrcs found on local media description.");l.push({ssrcId:m[0].ssrcId})}return l}function ku(a,A,l){let{cname:g}=a,C=[];A&&(C=s7(A)),C.length===0&&(C=a.iceParameters.candidates.map(k=>({foundation:k.foundation,componentId:"1",transport:k.protocol,priority:k.priority.toString(),connectionAddress:k.ip,port:k.port.toString(),type:k.type,extension:{}})),X.debug("Using candidates from gateway."));let m={fingerprints:a.dtlsParameters.fingerprints.map(k=>({hashFunction:k.algorithm,fingerprint:k.fingerprint}))},y={iceUfrag:a.iceParameters.iceUfrag,icePwd:a.iceParameters.icePwd},w;switch(a.dtlsParameters.role){case"server":w="passive";break;case"client":w="active";break;case"auto":w="actpass"}let b=En(a.rtpCapabilities),M=[];return Array.isArray(l)&&l.length>0&&l.forEach(k=>{M.push({kind:$t.VIDEO,ssrcMsg:[{ssrcId:k.v,rtx:k.v_rtx}],mslabel:"".concat(k.v,"_").concat(k.a)},{kind:$t.AUDIO,ssrcMsg:[{ssrcId:k.a}],mslabel:"".concat(k.v,"_").concat(k.a)})}),{dtlsParameters:m,iceParameters:y,candidates:C,rtpCapabilities:b,setup:w,cname:g,preSSRCs:M}}function s7(a){let A=[];return a.ip&&typeof a.port=="number"&&(A=[{foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:a.ip,port:a.port.toString(),type:"host",extension:{}}],X.debug("Using remote candidate from AP ".concat(Pt(a.ip),":").concat(a.port)),a.ip6&&(A.push({foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:a.ip6,port:a.port.toString(),type:"host",extension:{}}),X.debug("Using IPV6 remote candidate from AP ".concat(Pt(a.ip6),":").concat(a.port)))),A}function U2(a,A,l){let g=[],C=[];return a.forEach(m=>{let{ssrcId:y,rtx:w}=m,b=yn(8,"track-"),M={ssrcId:y,attributes:EA({label:b,mslabel:l=l||yn(10,""),msid:"".concat(l," ").concat(b)},A&&{cname:A})};if(g.push(M),w!==void 0){let k={ssrcId:w,attributes:EA({label:b,mslabel:l,msid:"".concat(l," ").concat(b)},A&&{cname:A})};g.push(k),C.push({semantic:"FID",ssrcIds:[y,w]})}}),a.length>1&&C.push({semantic:"SIM",ssrcIds:a.map(m=>{let{ssrcId:y}=m;return y})}),{ssrcs:g,ssrcGroups:C}}function kg(a,A){A instanceof xt&&a.attributes.payloads.forEach(l=>{var g;let C=(g=l.rtpMap)===null||g===void 0?void 0:g.encodingName.toLowerCase();if(!C||["opus","pcmu","pcma","g722"].indexOf(C)===-1)return;l.fmtp||(l.fmtp={parameters:{}}),C==="opus"&&typeof Ie("OPUS_PTIME")=="number"?l.fmtp.parameters.ptime=Ie("OPUS_PTIME"):l.fmtp.parameters.minptime="10",l.fmtp.parameters.useinbandfec="1";let m=A._encoderConfig;m&&(C!=="pcmu"&&C!=="pcma"&&C!=="g722"&&(m.bitrate&&!uo()&&(l.fmtp.parameters.maxaveragebitrate="".concat(Math.floor(1e3*m.bitrate))),m.sampleRate&&(l.fmtp.parameters.maxplaybackrate="".concat(m.sampleRate),l.fmtp.parameters["sprop-maxcapturerate"]="".concat(m.sampleRate)),m.stereo&&(l.fmtp.parameters.stereo="1",l.fmtp.parameters["sprop-stereo"]="1")),A instanceof gn&&C==="opus"&&A._config.DTX&&(l.fmtp.parameters.usedtx="1"))})}function fN(a){let A=a.attributes.unrecognized.findIndex(l=>l.attField==="x-google-flag"&&l.attValue==="conference");A!==-1&&a.attributes.unrecognized.splice(A,1)}function Pu(a,A){var l;if(a.attributes.payloads.forEach(C=>{var m;((m=C.rtpMap)===null||m===void 0?void 0:m.encodingName.toLowerCase())==="h264"&&C.fmtp&&C.fmtp.parameters&&Ie("ENABLE_UP_SPS_PPS")&&(C.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),!(A instanceof Pi&&A._encoderConfig&&A._hints.indexOf($i.SCREEN_TRACK)===-1))return;let g=A._encoderConfig;Bi().supportMinBitrate&&g.bitrateMin&&a.attributes.payloads.forEach(C=>{var m,y;Rt(m=["h264","h265","vp8","vp9","av1"]).call(m,((y=C.rtpMap)===null||y===void 0?void 0:y.encodingName.toLowerCase())||"")&&(C.fmtp||(C.fmtp={parameters:{}}),C.fmtp.parameters["x-google-min-bitrate"]="".concat(g.bitrateMin))}),Bi().supportMinBitrate&&!Rt(l=A._hints).call(l,$i.LOW_STREAM)&&g.bitrateMax&&a.attributes.payloads.forEach(C=>{var m,y;Rt(m=["h264","h265","vp8","vp9","av1"]).call(m,((y=C.rtpMap)===null||y===void 0?void 0:y.encodingName.toLowerCase())||"")&&(C.fmtp||(C.fmtp={parameters:{}}),C.fmtp.parameters["x-google-start-bitrate"]="".concat(Ie("X_GOOGLE_START_BITRATE")||Math.floor(g.bitrateMax)))})}function xy(a){if(a.media.mediaType!=="video")return;let A=Wi();if(A.name!==nn.SAFARI&&A.os!==Vs.IOS)return;let l=a.attributes.extmaps.findIndex(g=>/video-orientation/g.test(g.extensionName));l!==-1&&a.attributes.extmaps.splice(l,1)}function ds(a,A,l){if(!A)return;let g,C;if(a.media.mediaType==="video"?(g=l.videoExtensions,C=l.videoCodecs):(g=l.audioExtensions,C=l.audioCodecs),A.twcc===!0){let m=g.find(y=>Mu(y.extensionName));if(m){let y=m.extensionName;a.attributes.extmaps.find(w=>Mu(w.extensionName))||a.attributes.extmaps.push({entry:m.entry,extensionName:y}),function(w,b){return b.filter(M=>!!w.find(k=>k.payloadType===M.payloadType&&!!k.rtcpFeedbacks.find(V=>V.type==="transport-cc")))}(C,a.attributes.payloads).forEach(w=>{w.rtcpFeedbacks.find(b=>b.type==="transport-cc")||w.rtcpFeedbacks.push({type:"transport-cc"})})}}else if(A.twcc===!1){let m=a.attributes.extmaps.findIndex(y=>Mu(y.extensionName));m!==-1&&a.attributes.extmaps.splice(m,1),a.attributes.payloads.forEach(y=>{let w=y.rtcpFeedbacks.findIndex(b=>b.type==="transport-cc");w!==-1&&y.rtcpFeedbacks.splice(w,1)})}if(A.remb===!0){let m=g.find(y=>ur(y.extensionName));if(m){let y=m.extensionName;a.attributes.extmaps.find(w=>w.extensionName===y)||a.attributes.extmaps.push({entry:m.entry,extensionName:y}),function(w,b){return b.filter(M=>!!w.find(k=>k.payloadType===M.payloadType&&!!k.rtcpFeedbacks.find(V=>V.type==="goog-remb")))}(C,a.attributes.payloads).forEach(w=>{w.rtcpFeedbacks.find(b=>b.type==="goog-remb")||w.rtcpFeedbacks.push({type:"goog-remb"})})}}else if(A.remb===!1){let m=a.attributes.extmaps.findIndex(y=>ur(y.extensionName));m!==-1&&a.attributes.extmaps.splice(m,1),a.attributes.payloads.forEach(y=>{let w=y.rtcpFeedbacks.findIndex(b=>b.type==="goog-remb");w!==-1&&y.rtcpFeedbacks.splice(w,1)})}}function Fy(a,A,l){if(uo()||a.media.mediaType!=="video"||!(A instanceof Pi)||l!=="vp9"&&l!=="vp8"||l==="vp8"&&!Ie("SIMULCAST")||l==="vp9"&&Ie("ENABLE_SVC")||A._scalabilityMode===void 0||A._scalabilityMode.numSpatialLayers<=1)return;let g=l==="vp8"?2:A._scalabilityMode.numSpatialLayers,C=a.attributes.ssrcs[0],m=a.attributes.ssrcGroups.find(w=>w.semantic==="FID"&&w.ssrcIds[0]===C.ssrcId),y={semantic:"SIM",ssrcIds:[C.ssrcId]};for(let w=1;wC.extensionName==="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension");return a.close(),g}catch{return}}async function Kd(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=new RTCPeerConnection;l.addTransceiver("video",{direction:"sendonly"}),l.addTransceiver("audio",{direction:"sendonly"}),l.addTransceiver("video",{direction:"recvonly"}),l.addTransceiver("audio",{direction:"recvonly"});let g=(await l.createOffer()).sdp,{send:C,recv:m,sendrecv:y}=function(){let w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},M=arguments.length>2?arguments[2]:void 0,k=jr(M,w,b,"sendonly"),V=jr(M,w,b,"recvonly"),K={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},q={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},ce={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(t1(k,V,"videoExtensions",K,q,ce),t1(k,V,"videoCodecs",K,q,ce),t1(k,V,"audioExtensions",K,q,ce),t1(k,V,"audioCodecs",K,q,ce),Ie("RAISE_H264_BASELINE_PRIORITY")){let oe=[],le=[];if(ce.videoCodecs.forEach((pe,Se)=>{var be;if(((be=pe.rtpMap)===null||be===void 0?void 0:be.encodingName.toLocaleLowerCase())==="h264"){var Ue,xe;let Le=ce.videoCodecs[Se+1],je=Le&&_N(pe,Le),dt=(Ue=pe.fmtp)===null||Ue===void 0?void 0:Ue.parameters["profile-level-id"],pt=(xe=pe.fmtp)===null||xe===void 0?void 0:xe.parameters["packetization-mode"];!dt||dt!==Ie("FIRST_H264_PROFILE_LEVEL_ID")||Ie("FIRST_PACKETIZATION_MODE")&&pt!==Ie("FIRST_PACKETIZATION_MODE")?je?le.push([pe,Le]):le.push([pe]):je?oe.push([pe,Le]):oe.push([pe])}}),oe.length>0&&le.length>0){X.debug("raising H264 baseline profile priority"),ce.videoCodecs.forEach((Se,be)=>{var Ue;if(((Ue=Se.rtpMap)===null||Ue===void 0?void 0:Ue.encodingName.toLocaleLowerCase())==="h264"){let xe=_N(Se,ce.videoCodecs[be+1]),Le=oe.shift()||le.shift()||[];Le.length>0&&(xe?ce.videoCodecs.splice(be,2,...Le):ce.videoCodecs.splice(be,1,...Le))}});let pe=q.videoCodecs.filter(Se=>{var be,Ue;return((be=Se.rtpMap)===null||be===void 0?void 0:be.encodingName.toLocaleLowerCase())==="h264"&&((Ue=Se.fmtp)===null||Ue===void 0?void 0:Ue.parameters["profile-level-id"])!==Ie("FIRST_H264_PROFILE_LEVEL_ID")});if(pe.length>0){let Se=jo(pe,q.videoCodecs).map(Ue=>Ue.payloadType),be=[...pe.map(Ue=>Ue.payloadType),...Se];q.videoCodecs=q.videoCodecs.filter(Ue=>!Rt(be).call(be,Ue.payloadType))}Ie("FILTER_SEND_H264_BASELINE")&&(K.videoCodecs=K.videoCodecs.filter(Se=>{var be,Ue;return!(((be=Se.rtpMap)===null||be===void 0?void 0:be.encodingName.toLocaleLowerCase())==="h264"&&((Ue=Se.fmtp)===null||Ue===void 0?void 0:Ue.parameters["profile-level-id"])!==Ie("FIRST_H264_PROFILE_LEVEL_ID"))}))}return{send:K,recv:q,sendrecv:ce}}return{send:K,recv:q,sendrecv:ce}}(a,A,g);try{l.close()}catch{}return{send:C,recv:m,sendrecv:y}}function e1(){let a={audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},A=jr(arguments.length>2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"recvonly"),l={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},g={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},C={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(t1(a,A,"videoExtensions",l,g,C),t1(a,A,"videoCodecs",l,g,C),t1(a,A,"audioExtensions",l,g,C),t1(a,A,"audioCodecs",l,g,C),Ie("RAISE_H264_BASELINE_PRIORITY")){let m=C.videoCodecs.findIndex(y=>y.rtpMap&&y.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&y.fmtp&&y.fmtp.parameters["profile-level-id"]==="42001f");if(m!==-1){let y=C.videoCodecs.findIndex(w=>w.rtpMap&&w.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(y!(w.rtpMap&&w.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&w.fmtp&&w.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:l,recv:g,sendrecv:C}}function t1(a,A,l,g,C,m){if(l==="videoExtensions"||l==="audioExtensions"){let y=[];return a[l].forEach(w=>{A[l].some((b,M)=>{if(w.entry===b.entry&&w.extensionName===b.extensionName)return y.push(M),!0})?m[l].push(w):g[l].push(w)}),void A[l].forEach((w,b)=>{y.indexOf(b)===-1&&C[l].push(w)})}if(l==="videoCodecs"||l==="audioCodecs"){let y=[];return a[l].forEach(w=>{A[l].some((b,M)=>{if(w.payloadType===b.payloadType&&JSON.stringify(w)===JSON.stringify(b))return y.push(M),!0})?m[l].push(w):g[l].push(w)}),void A[l].forEach((w,b)=>{y.indexOf(b)===-1&&C[l].push(w)})}}function En(a){let{send:A,recv:l,sendrecv:g}=a;if(!g){if(!A||!l)throw new Error("cannot merge rtp capabilities because one of send or recv is empty!");return{send:A,recv:l}}let C,m;return A?(C={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},C.audioCodecs=[...A.audioCodecs,...g.audioCodecs],C.videoCodecs=[...A.videoCodecs,...g.videoCodecs],C.audioExtensions=[...A.audioExtensions,...g.audioExtensions],C.videoExtensions=[...A.videoExtensions,...g.videoExtensions]):C=no(g),l?(m={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},m.audioCodecs=[...l.audioCodecs,...g.audioCodecs],m.videoCodecs=[...l.videoCodecs,...g.videoCodecs],m.audioExtensions=[...l.audioExtensions,...g.audioExtensions],m.videoExtensions=[...l.videoExtensions,...g.videoExtensions]):m=no(g),{send:C,recv:m}}function No(a){a.media.mediaType==="audio"&&a.attributes.payloads.filter(A=>{var l;return((l=A.rtpMap)===null||l===void 0?void 0:l.encodingName.toLowerCase())==="opus"}).forEach(A=>{A.fmtp||(A.fmtp={parameters:{}}),A.fmtp.parameters.stereo="1",A.fmtp.parameters["sprop-stereo"]="1"})}function _h(a,A,l,g){let C=[];if(a===$t.VIDEO){if(Ie("H264_PROFILE_LEVEL_ID")&&g==="h264"&&(C=A.videoCodecs.filter(m=>{var y;return Rt(y=m.rtpMap&&m.rtpMap.encodingName.toLowerCase()||"").call(y,g)&&m&&m.fmtp&&m.fmtp.parameters["profile-level-id"]===Ie("H264_PROFILE_LEVEL_ID")})),!Array.isArray(C)||C.length===0){let m=[],y=[],w=[],b=[];if(l.videoCodecs.forEach(M=>{let k=M.rtpMap&&M.rtpMap.encodingName.toLowerCase()||"";Rt(k).call(k,g)?m.push(M):Rt(k).call(k,"vp9")?y.push(M):Rt(k).call(k,"vp8")?w.push(M):Rt(k).call(k,"h264")&&b.push(M)}),m.length===0){let M="";y.length!==0?(m=y,M="vp9"):w.length!==0?(m=w,M="vp8"):b.length!==0&&(m=b,M="h264"),X.warning("codec ".concat(g," not included in rtpCapabilities, fallback to default payloads: ").concat(M))}m.length!==0&&(C=A.videoCodecs.filter(M=>m.some(k=>k.payloadType===M.payloadType)))}if(C.length===0&&(X.warning("codec ".concat(g," not included in rtpCapabilities, fallback to default payloads: ").concat(A.videoCodecs[0].rtpMap&&A.videoCodecs[0].rtpMap.encodingName)),C=A.videoCodecs),Ie("USE_PUB_RTX")||Ie("USE_SUB_RTX")){let m=jo(C,A.videoCodecs);C=[...C,...m]}}else{C=A.audioCodecs.filter(y=>{var w;return Rt(w=y.rtpMap&&y.rtpMap.encodingName.toLowerCase()||"").call(w,g)});let m=A.audioCodecs.filter(y=>{var w;return Rt(w=y.rtpMap&&y.rtpMap.encodingName.toLowerCase()||"").call(w,"red")});C.length===0&&(X.warning("codec ".concat(g," not included in rtpCapabilities, fallback to opus")),C=A.audioCodecs.filter(y=>{var w;return Rt(w=y.rtpMap&&y.rtpMap.encodingName.toLowerCase()||"").call(w,"opus")})),Ie("ENABLE_AUDIO_RED")&&m.length!==0&&(C=[...m,...C])}return C}function jo(a,A){let l=a.map(g=>g.payloadType.toString());return A.filter(g=>g.rtpMap&&g.rtpMap.encodingName==="rtx"&&g.fmtp&&g.fmtp.parameters.apt&&Rt(l).call(l,g.fmtp&&g.fmtp.parameters.apt))}async function gi(a,A,l){let g=A.toString(),C=Pa(g,"offer","remote","exchangeSDP");await a.setRemoteDescription({type:"offer",sdp:g});let m=await a.createAnswer();if(!m.sdp)throw new Error("cannot get answer sdp");let y=m.sdp;y=Gy(y,l||{}),C==null||C(y||""),await a.setLocalDescription({type:"answer",sdp:y})}function Gy(a,A,l){if(Ie("FORBID_MODIFY_LOCAL_OFFER_SDP"))return a;let g=ki(a),{useXR:C}=A;return g.mediaDescriptions.forEach(m=>{var y;m.attributes.mid&&(Array.isArray(l)&&!Rt(l).call(l,m.attributes.mid)||(m.media.mediaType==="audio"&&No(m),m.media.mediaType==="video"&&function(w){w.media.mediaType==="video"&&Ie("ENABLE_DOWN_SPS_PPS")&&w.attributes.payloads.filter(b=>{var M;return((M=b.rtpMap)===null||M===void 0?void 0:M.encodingName.toLowerCase())==="h264"}).forEach(b=>{b.fmtp||(b.fmtp={parameters:{}}),b.fmtp.parameters["sps-pps-idr-in-keyframe"]="1"})}(m),C&&Rt(y=["audio","video"]).call(y,m.media.mediaType)&&m.attributes.payloads.forEach(w=>{w.rtcpFeedbacks.findIndex(b=>b.type==="rrtr")===-1&&w.rtcpFeedbacks.push({type:"rrtr"})})))}),ea(g)}function Pa(a,A,l,g){if(Ie("SDP_LOGGING"))return X.upload("exchanging ".concat(l," ").concat(A," SDP during P2PConnection.").concat(g,` -`),a),A==="offer"?C=>{Pa(C,"answer",l==="local"?"remote":"local",g)}:void 0}async function A_(a,A,l){try{var g;if(!Bi().supportSetRtpSenderParameters||!function(b){return b==="vp9"||b==="av1"}(a)||!Ie("ENABLE_SVC"))return;let C={},m={},y=A.getParameters(),w=(g=y.encodings)===null||g===void 0?void 0:g[0];m.scalabilityMode=k2(l),w&&Object.assign(w,m),Object.assign(y,C),await A.setParameters(y),X.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode success: ".concat(JSON.stringify(y.encodings)))}catch(C){X.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode failed",C)}}function xc(a){let A=Ie("COMPATIBLE_SDP_EXTENSION");return!!(Array.isArray(A)&&A.length>0)&&A.some(l=>Rt(a).call(a,l))}function _N(a,A){try{var l;return((l=a.fmtp)===null||l===void 0?void 0:l.parameters.apt)===A.payloadType.toString()}catch{return!1}}function mN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function LA(a,A){return typeof Ie(a)===A?Ie(a):void 0}function rr(){try{let a=Ie("EXPERIMENTS")||{};return typeof a=="string"||Array.isArray(a)?{}:function(A){for(var l=1;l1&&arguments[1]!==void 0)||arguments[1])&&X.debug("install service ".concat(a.name)),qs[a.name]=a}function td(a){let A=qs[a];if(!A)throw new nt(fe.INVALID_OPERATION,"".concat(a," not found, please use AgoraRTC.use(").concat(a,"Service) to load it first"));return A}function Qt(a,A){return td("DataStream").create(a,A)}function ln(){return td("InterceptFrame").create()}function Cr(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Oo(a){for(var A=1;A255||"".concat(A.apResponse.cid,"_").concat(A.apResponse.cert).length<22?(X.debug("[".concat(this.store.clientId,"] Dc is not supported, because ticket length is incorrect, it has to be between 22 and 255")),k=!0):A.apResponse.addresses.some(V=>V.fingerprint)||Ie("FINGERPRINT")||(X.debug("[".concat(this.store.clientId,"] Dc is not supported, because fingerprint does not exist")),k=!0),k&&this.resetSignal()}this.store.joinGatewayStart(),A.cloudProxyServer!=="disabled"&&(this.hasChangeBGPAddress=!0);let C=Date.now(),m=Fc.get(A.cname);if(m||(m=new Map,Fc.set(A.cname,m)),this._isProactiveJoin=!0,m.has(A.uid)){let k=new ze(fe.UID_CONFLICT);throw tr.joinGateway(A.sid,{lts:C,succ:!1,ec:k.code,addr:null,uid:A.uid,cid:A.cid,firstSuccess:this._isProactiveJoin,isProxy:!!A.proxyServer||this.usingProxy,signalChannel:this.store.useDcSignal?"1":"0",preload:A.preload}),k}m.set(A.uid,!0),this.joinInfo=A,this.key=l;let y=0;this.joinGatewayStartTime=C;let w=A.proxyServer,b=this.store.useDcSignal?"datachannel":"websocket";try{X.debug("[".concat(this.store.clientId,"] use ").concat(b," join uid ").concat(y));let k=A.gatewayAddrs.map(K=>{let{address:q}=K,[ce,oe]=q.split(":"),le={host:ce,port:oe};return A.proxyServer&&(le.proxy=A.proxyServer),le}),V;V=this.store.useDcSignal?await this.signal.init(A.apResponse.addresses):await this.signal.init(k),y=V.uid,X.debug("[".concat(this.store.clientId,"] ").concat(b," join uid ").concat(y," cost ").concat(Date.now()-this.joinGatewayStartTime))}catch(k){var M;throw k.code===fe.INIT_DATACHANNEL_TIMEOUT&&this.signal.__name__==="AgoraRTCSignal"||tr.joinGateway(A.sid,{lts:C,succ:!1,ec:((M=k.data)===null||M===void 0?void 0:M.desc)||k.code,errorMsg:k.message,addr:this.signal.url,uid:A.uid,cid:A.cid,firstSuccess:this._isProactiveJoin,isProxy:!!w||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:A.preload}),k&&k.code===fe.INIT_DATACHANNEL_TIMEOUT?(X.warning("[".concat(this.store.clientId,"] User join datachannel failed"),k.toString()),this.resetSignal(),k):(X.error("[".concat(this.store.clientId,"] User join failed"),k.toString()),m.delete(A.uid),this.signal.close(),k)}return this.state="CONNECTED",this.inChannelInfo.joinAt=Date.now(),X.debug("[".concat(this.store.clientId,"] Connected to gateway server")),this.trafficStatsInterval=window.setInterval(()=>{this.updateTrafficStats().catch(k=>{X.warning("[".concat(this.store.clientId,"] get traffic stats error"),k.toString())})},3e3),this.networkQualityInterval=window.setInterval(()=>{navigator&&navigator.onLine!==void 0&&!navigator.onLine?this.emit(Pn.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6}):this._signalTimeout?this.emit(Pn.NETWORK_QUALITY,{downlinkNetworkQuality:5,uplinkNetworkQuality:5}):this.state==="CONNECTED"&&this._statsCollector.trafficStats?this.emit(Pn.NETWORK_QUALITY,{uplinkNetworkQuality:Uy(this._statsCollector.trafficStats.B_unq),downlinkNetworkQuality:Uy(this._statsCollector.trafficStats.B_dnq)}):this.emit(Pn.NETWORK_QUALITY,{uplinkNetworkQuality:0,downlinkNetworkQuality:0})},2e3),this.store.joinGatewayEnd(),y}async leave(){let A=arguments.length>0&&arguments[0]!==void 0&&arguments[0],l=arguments.length>1?arguments[1]:void 0;if(this.state!=="DISCONNECTED"){l!==bi.FALLBACK&&(this.state="DISCONNECTING");try{A||this.signal.connectionState!==vi.CONNECTED||await function(g,C){return C===1/0?g:Ft.race([g,Zb(C)])}(this.signal.request(sr.LEAVE,void 0,!0),3e3)}catch(g){X.warning("[".concat(this.store.clientId,"] leave request failed, ignore"),g)}this.signal.close(l),l!==bi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}}async publish(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));let C={state:"offer",p2p_id:this.store.p2pId,ortc:l,mode:this.spec.mode,extend:Ie("PUB_EXTEND"),twcc:!!Ie("PUBLISH_TWCC"),rtx:!!Ie("USE_PUB_RTX")};try{return(await this.signal.request(sr.PUBLISH,C,!0))._message}catch(m){if(g&&m.data&&m.data.code===mr.ERR_PUBLISH_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receive publish error code, retry"),m.toString()),await this.tryUnpubBeforeRepub(A,l),this.publish(A,l,!1);throw m}}async publishDataChannel(A,l,g){var C;if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));let m={stream_id:l.streamId,ordered:l.ordered?1:0,max_retrans_times:(C=l.maxRetransmits)!==null&&C!==void 0?C:10,channel_id:l.channelId,metadata:l.metadata};try{await this.signal.request(sr.PUBLISH_DATASTREAM,m,!0)}catch(y){if(g&&y.data&&y.data.code===mr.ERR_PUBLISH_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receive publish datachannels error code, retry"),y.toString()),await this.tryUnpubDataChannelBeforeRepub(A,l),this.publishDataChannel(A,l,!1);throw y}}async unpublish(A,l){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await this.signal.request(sr.UNPUBLISH,{stream_id:l,ortc:A},!0)}catch(g){X.warning("[".concat(this.store.clientId,"] unpublish warning: "),g)}}async unpublishDataChannel(A){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ft.all(A.map(l=>this.signal.request(sr.UNPUBLISH_DATASTREAM,{channel_id:l},!0)))}catch(l){X.warning("unpublish datachannels warning: ",l)}}async presubscribe(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not presubscribe when connection state is ".concat(this.state));let C={stream_id:A,stream_type:l,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!Ie("SUBSCRIBE_TWCC"),rtx:!!Ie("USE_SUB_RTX")||void 0,extend:Ie("SUB_EXTEND"),svc:Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0};try{return await this.signal.request(sr.PRE_SUBSCRIBE,C,!0)}catch(m){if(g&&m.data&&m.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] pre-subscribe error, retry"),m.toString()),this.presubscribe(A,l,!1);throw m}}async subscribe(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not subscribe when connection state is ".concat(this.state));let C={stream_id:A,stream_type:l.stream_type,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!Ie("SUBSCRIBE_TWCC"),rtx:!!Ie("USE_SUB_RTX"),extend:Ie("SUB_EXTEND"),ssrcId:l.ssrcId,svc:Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0};try{return(await this.signal.request(sr.SUBSCRIBE,C,!0))._message}catch(m){if(g&&m.data&&m.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receiver subscribe error code, retry"),m.toString()),await this.tryUnsubBeforeResub(A,l),await this.subscribe(A,l,!1);throw m}}async subscribeDataChannel(A,l,g){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not subscribe datachannel when connection state is ".concat(this.state));let C={uid:A,stream_id:l.id,channel_id:l.datachannelId};try{return void await this.signal.request(sr.SUBSCRIBE_DATASTREAM,C,!0)}catch(m){if(g&&m.data&&m.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receiver subscribe datachannel error code, retry"),m.toString()),await this.tryUnsubDataChannelBeforeResub(A,l),await this.subscribeDataChannel(A,l,!1);throw m}}async subscribeAll(A,l){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not massSubscribe when connection state is ".concat(this.state));let g={p2p_id:this.store.p2pId,users:A,dtx:!1,rtx:!!Ie("USE_SUB_RTX"),twcc:!!Ie("SUBSCRIBE_TWCC"),svc:Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0};try{return await this.signal.request(sr.SUBSCRIBE_STREAMS,g,!0)}catch(C){if(l&&C.data&&C.data.code===mr.ERR_SUBSCRIBE_REQUEST_INVALID)return X.warning("[".concat(this.store.clientId,"] receiver massSubscribe error code, retry"),C.toString()),await this.tryMassUnsubBeforeResub(A),await this.subscribeAll(A,!1);throw C}}async setVideoProfile(A){let l=function(g){if(!(g.bitrateMax&&g.bitrateMin&&g.frameRate&&g.height&&g.width))return;let C=g.frameRate,m=g.width,y=g.height,w=!0;return typeof C!="number"&&(C=C.exact||C.ideal||C.max||C.min||0,C||(w=!1)),typeof m!="number"&&(m=m.exact||m.ideal||m.max||m.min||0,m||(w=!1)),typeof y!="number"&&(y=y.exact||y.ideal||y.max||y.min||0,C||(w=!1)),w?{stream_type:0,width:m,height:y,fps:C,start_bps:1e3*g.bitrateMax,min_bps:1e3*g.bitrateMin,target_bps:1e3*g.bitrateMax}:void 0}(A);if(l)return this.signal.request(sr.SET_VIDEO_PROFILE,l);X.debug("[".concat(this.store.clientId,"] encoder config is not complete, do not report to gateway"))}async unsubscribe(A,l){try{await this.signal.request(sr.UNSUBSCRIBE,{p2p_id:this.store.p2pId,ortc:A,stream_id:l},!0)}catch(g){X.warning("[".concat(this.store.clientId,"] unsubscribe warning: "),g)}}async unsubscribeDataChannel(A,l){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ft.all(A.map(g=>this.signal.request(sr.UNSUBSCRIBE_DATASTREAM,{stream_id:g,uid:l},!0)))}catch(g){X.warning("unsubscribeDataChannel warning: ",g)}}async massUnsubscribe(A){try{await this.signal.request(sr.UNSUBSCRIBE_STREAMS,A,!0)}catch(l){X.warning("[".concat(this.store.clientId,"] massUnsubscribeAll warning: "),l)}}async reconnectPC(A){let{iceParameters:l,dtlsParameters:g,rtpCapabilities:C}=A;return{gatewayEstablishParams:await this.signal.request(sr.CONNECT_PC,{p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:{iceParameters:l,dtlsParameters:g,rtpCapabilities:C}},!0),gatewayAddress:this.getCurrentGatewayAddress()}}getGatewayInfo(){return this.signal.request(sr.GATEWAY_INFO)}async renewToken(A){await this.signal.request(sr.RENEW_TOKEN,A),this.key=A.token}updateClientRole(A,l){l&&(this._clientRoleOptions=Object.assign({},l)),Ie("CLIENT_ROLE_OPTIONS")&&(X.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(Ie("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," ")),this._clientRoleOptions=Object.assign({},Ie("CLIENT_ROLE_OPTIONS"))),this.role=A}async setClientRole(A,l){if(l&&(this._clientRoleOptions=Object.assign({},l)),Ie("CLIENT_ROLE_OPTIONS")&&(this._clientRoleOptions=Object.assign({},Ie("CLIENT_ROLE_OPTIONS")),X.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(Ie("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," "))),this.state!=="CONNECTED")return void(this.role=A);let g,C=0;A==="audience"?this._clientRoleOptions&&this._clientRoleOptions.delay?(g=this._clientRoleOptions.delay,C=1):C=this._clientRoleOptions&&this._clientRoleOptions.level?this._clientRoleOptions.level:2:C=0;let m=Object.assign({},l);delete m.delay,delete m.level,await this.signal.request(sr.SET_CLIENT_ROLE,Oo(Oo({role:A,level:C,delay:g},m),{},{client_ts:Date.now()})),this.role=A}async setDualStreamMode(A,l,g){await this.signal.request(sr.SET_DUAL_STREAM_MODE,{mode:A},g,l)}async setRemoteVideoStreamType(A,l){await this.signal.request(sr.SWITCH_VIDEO_STREAM,{stream_id:A,stream_type:l})}async setDefaultRemoteVideoStreamType(A){await this.signal.request(sr.DEFAULT_VIDEO_STREAM,{stream_type:A})}async setStreamFallbackOption(A,l){await this.signal.request(sr.SET_FALLBACK_OPTION,{stream_id:A,fallback_type:l})}async pickSVCLayer(A,l){await this.signal.request(sr.PICK_SVC_LAYER,{stream_id:A,spatial_layer:l.spatialLayer,temporal_layer:l.temporalLayer})}async setRTM2Flag(A){await this.signal.request(sr.SET_RTM2_FLAG,{rtm2_flag:A})}async sendExtensionMessage(A,l,g){if(this.store.useP2P)return this.signal.sendExtensionMessage(A,l,g)}getInChannelInfo(){return this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt),Oo({},this.inChannelInfo)}async setConfigure(A){if(A&&Array.isArray(A)&&A.length!==0)return this.signal.request(sr.CONFIGURE,A)}async getGatewayVersion(){return(await this.signal.request(sr.GATEWAY_INFO)).version}reset(){if(this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt,this.inChannelInfo.joinAt=null),this.trafficStatsInterval&&(window.clearInterval(this.trafficStatsInterval),this.trafficStatsInterval=void 0),this.joinInfo){let A=Fc.get(this.joinInfo.cname);A&&A.delete(this.joinInfo.uid)}this.joinInfo=void 0,this.key=void 0,this.networkQualityInterval&&(window.clearInterval(this.networkQualityInterval),this.networkQualityInterval=void 0),this.usingProxy=!1}updateTurnConfigFromSignal(){if(!this.joinInfo)return;let A=function(l){let g;return g=l.startsWith("dc")?l.match(/(dc\:\/\/)?([^:]+):(\d+)/):l.match(/(wss\:\/\/)?([^:]+):(\d+)/),g?{username:Ti.username,password:Ti.password,turnServerURL:g[2],tcpport:parseInt(g[3])+30,udpport:parseInt(g[3])+30,forceturn:!1}:null}((this.joinInfo.cloudProxyServer==="disabled"?this.signal.url:this.joinInfo.gatewayAddrs[this.signal.currentURLIndex].address)||"");this.joinInfo.turnServer.serversFromGateway=[],A&&this.joinInfo.turnServer.mode!=="off"&&this.joinInfo.cloudProxyServer==="disabled"&&this.joinInfo.turnServer.serversFromGateway.push(Oo(Oo({},Ti),{},{turnServerURL:A.turnServerURL,tcpport:A.tcpport,udpport:A.udpport,username:this.joinInfo.uid.toString(),password:this.joinInfo.token}))}async updateTrafficStats(){if(this.state!=="CONNECTED")return;let A=await this.signal.request(sr.TRAFFIC_STATS,void 0,!0);A.timestamp=Date.now(),A.ntp_offset!=null&&(this.ntpOffset=A.ntp_offset),A.peer_delay.forEach(l=>{let g=this._statsCollector.trafficStats&&this._statsCollector.trafficStats.peer_delay.find(C=>C.peer_uid===l.peer_uid);g&&g.B_st!==l.B_st&&Fi(()=>{this.emit(Pn.STREAM_TYPE_CHANGE,l.peer_uid,l.B_st)})}),this._statsCollector.updateTrafficStats(A)}getJoinMessage(A){var l,g,C,m;if(!this.joinInfo||!this.key)throw new ze(fe.UNEXPECTED_ERROR,"can not generate join message, no join info");let y=Object.assign({},this.joinInfo.apResponse),w=Ie("REPORT_APP_SCENARIO");if(typeof w!="string")try{w=JSON.stringify(w)}catch{w=void 0}var b;w&&w.length>128&&(w=void 0),this.store.hasStartJoinChannel=!0,this.store.isABTestSuccess||this.emit(Pn.UPDATE_GATEWAY_CONFIG),b=this.store.clientId,Rt(po).call(po,b)||po.push(b);let M=So(this.store),k=!((l=this.isPreallocation)===null||l===void 0||!l.call(this)),V=Lf(this.store),K=rr(),q=Nd(87)||KP()||mf(117),ce=(function(){let Se=Wi();if(Se.name!==nn.SAFARI||!Se.browserVersion)return!1;let be=Se.browserVersion.split(".");return Number(be[0])>18||Number(be[0])===18&&Number(be[1])>=4}()||BR(18,4,!1))&&r2(18,6,!0)&&this.spec.codec==="h264"&&Ie("ENABLE_ABSSENDTIME_AS_SENTTS"),oe=!(((g=y.detail)===null||g===void 0?void 0:g[3])!=="CN"||!Ie("ENABLE_QUALITY_FALLBACK"))&&Ie("ENABLE_QUALITY_FALLBACK"),le=!!Ie("ENABLE_AP_MULTI_IP")&&((C=y.detail)===null||C===void 0?void 0:C[5])==="multi-ip",pe=Oo({license:this.joinInfo.license,p2p_id:this.store.p2pId,session_id:this.joinInfo.sid,app_id:this.joinInfo.appId,channel_key:this.key,channel_name:this.joinInfo.cname,sdk_version:Cn,browser:navigator.userAgent,process_id:Ie("PROCESS_ID"),mode:this.store.useP2P?"p2p":this.spec.mode,codec:this.spec.codec,role:this.role,has_changed_gateway:le||this.hasChangeBGPAddress,ap_response:y,extend:Ie("JOIN_EXTEND"),details:{6:this.joinInfo.stringUid,cservice_map:this.joinInfo.cloudProxyServer==="proxy3"?"1":this.joinInfo.cloudProxyServer==="proxy5"?"2":void 0},features:{rejoin:!0},optionalInfo:this.joinInfo.optionalInfo,appScenario:w,attributes:{userAttributes:Oo(Oo({enableEncodedTransform:(!!Ie("ENABLE_AUDIO_METADATA")||!!Ie("ENABLE_AUDIO_PTS"))&&q||!!Ie("ENABLE_AUDIO_TOPN")&&_R(nn.CHROME,87,116)||void 0,enableAudioMetadata:!!Ie("ENABLE_AUDIO_METADATA")&&q,enableAudioPts:!!Ie("ENABLE_AUDIO_PTS")&&q,topnSmoothLevel:Ie("TOPN_SMOOTH_LEVEL"),topnNewSpeakerDelay:Ie("TOPN_NEW_SPEAKER_DELAY"),topnSwitchHoldMs:Ie("TOPN_SWITCH_HOLD_MS"),topnAudioGain:Ie("TOPN_AUDIO_GAIN"),enableNetworkQualityProbe:this.store.networkQualityProbe,enablePublishedUserList:Ie("ENABLE_PUBLISHED_USER_LIST"),maxSubscription:Ie("MAX_SUBSCRIPTION"),subscribeAudioFilterTopN:LA("SUBSCRIBE_AUDIO_FILTER_TOPN","number"),enablePublishAudioFilter:LA("ENABLE_PUBLISH_AUDIO_FILTER","boolean"),enableUserLicenseCheck:LA("ENABLE_USER_LICENSE_CHECK","boolean"),enableRTX:Ie("USE_PUB_RTX")===!0||Ie("USE_SUB_RTX")===!0||void 0,disableFEC:Ie("DISABLE_FEC"),enableNTPReport:!!Ie("ENABLE_NTP_REPORT")||void 0,enableInstantVideo:V,enableFulllinkAvSync:!!Ie("ENABLE_FULL_LINK_AV_SYNC")||void 0,enableDataStream2:LA("ENABLE_DATASTREAM_2","boolean"),enableAutFeedback:!!Ie("FORCE_ENABLE_AUT_CC")||!Dg()&&(!!Ie("ENABLE_AUT_FEEDBACK")||void 0),rtm2Flag:typeof this.joinInfo.rtmFlag=="number"?this.joinInfo.rtmFlag:void 0,enableUserAutoRebalanceCheck:!!Ie("ENABLE_USER_AUTO_REBALANCE_CHECK"),enableXR:LA("USE_XR","boolean"),enableLossbasedBwe:LA("ENABLE_LOSSBASED_BWE","boolean"),enableAutCC:!!Ie("FORCE_ENABLE_AUT_CC")||!Dg()&&(!!Ie("ENABLE_AUT_CC")||void 0),enableCCFallback:LA("ENABLE_CC_FALLBACK","boolean"),enablePreallocPC:k,preSubNum:M?LA("PRE_SUB_NUM","number"):void 0,enablePubTWCC:LA("PUBLISH_TWCC","boolean"),enableSubTWCC:LA("SUBSCRIBE_TWCC","boolean"),enablePubRTX:LA("USE_PUB_RTX","boolean"),enableSubRTX:LA("USE_SUB_RTX","boolean"),enableSubSVC:Ie("ENABLE_SVC")?Ie("ENABLE_SVC_DEFAULT_CODECS"):Array.isArray(Ie("SVC"))&&Ie("SVC").length!==0?Ie("SVC"):void 0,enableSvcExtended:Ie("ENABLE_SVC")&&Array.isArray(Ie("SVC_EXTENDED"))&&Ie("SVC_EXTENDED").length!==0?Ie("SVC_EXTENDED"):void 0,enableVosFallback:Ie("ENABLE_VOS_FALLBACK"),enableQualityFallback:oe},K),{},{audioDuplicate:LA("ENABLE_AUDIO_RED","boolean")?(m=LA("AUDIO_DUPLICATE_NUM","number"))!==null&&m!==void 0?m:2:void 0,senttsUsesAbsSendTime:!!ce||void 0,enableDualStreamFlag:LA("ENABLE_DUAL_STREAM_FLAG","boolean")})},join_ts:this.joinGatewayStartTime},A);return this.joinInfo.stringUid&&(pe.string_uid=this.joinInfo.stringUid),this.joinInfo.aesmode&&this.joinInfo.aespassword&&(pe.aes_mode=this.joinInfo.aesmode,Ie("ENCRYPT_AES")?(pe.aes_secret=this.joinInfo.aespassword,pe.aes_encrypt=!0):pe.aes_secret=this.joinInfo.aespassword,this.joinInfo.aessalt&&(pe.aes_salt=this.joinInfo.aessalt)),y.addresses[this.signal.websocket.currentURLIndex]&&(pe.ap_response.ticket=y.addresses[this.signal.websocket.currentURLIndex].ticket,delete y.addresses),this.joinInfo.defaultVideoStream!==void 0&&(pe.default_video_stream=this.joinInfo.defaultVideoStream),pe}getRejoinMessage(){if(!this.joinInfo)throw new ze(fe.UNEXPECTED_ERROR,"can not generate rejoin message, no join info");return{session_id:this.joinInfo.sid,channel_name:this.joinInfo.cname,cid:this.joinInfo.cid,uid:this.joinInfo.uid,vid:Number(this.joinInfo.vid)}}handleSignalEvents(){this.signal.on(or.WS_RECONNECT_CREATE_CONNECTION,A=>{this.joinGatewayStartTime=Date.now()}),this.signal.on(or.WS_RECONNECTING,A=>{this.joinInfo&&tr.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:A||xo.NETWORK_ERROR}),this.joinInfo&&(this.state="RECONNECTING",tr.sessionInit(this.joinInfo.sid,{lts:new Date().getTime(),extend:this.isSignalRecover?{recover:!0}:{rejoin:!0},cname:this.joinInfo.cname,appid:this.joinInfo.appId,mode:this.spec.mode,stringUid:this.joinInfo.stringUid,channelProfile:this.spec.mode==="live"?1:0,channelMode:0,lsid:this.joinInfo.sid,clientRole:this.role==="audience"?2:1,buildFormat:1}),this.isSignalRecover=!1,this.joinGatewayStartTime=Date.now())}),this.signal.on(or.WS_CLOSED,A=>{let l;switch(A){case bi.LEAVE:l=xo.LEAVE;break;case bi.UID_BANNED:case bi.IP_BANNED:case bi.CHANNEL_BANNED:case bi.SERVER_ERROR:l=xo.SERVER_ERROR;break;case bi.FALLBACK:l=xo.FALLBACK;break;case bi.LICENSE_MISSING:case bi.LICENSE_EXPIRED:case bi.LICENSE_MINUTES_EXCEEDED:case bi.LICENSE_PERIOD_INVALID:case bi.LICENSE_MULTIPLE_SDK_SERVICE:case bi.LICENSE_ILLEGAL:case bi.TOKEN_EXPIRE:l=A;break;default:l=xo.NETWORK_ERROR}X.debug("[".concat(this.store.clientId,"] [signal] websocket closed, reason: ").concat(l||"undefined -> "+xo.NETWORK_ERROR)),this.joinInfo&&tr.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:A===bi.LEAVE?1:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:l}),this._disconnectedReason=A,A!==bi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}),this.signal.on(or.WS_CONNECTED,()=>{if(this.updateTurnConfigFromSignal(),this.state="CONNECTED",this.joinInfo){if(this.role==="audience"){let A=Ie("CLIENT_ROLE_OPTIONS")||this._clientRoleOptions;A&&(A.level||A.delay)&&(X.debug("[".concat(this.store.clientId,"] patch to send set client role, role: ").concat(this.role,", mode: ").concat(this.spec.mode,", level: ").concat(A.level,", delay: ").concat(A.delay)),this.setClientRole(this.role,A))}if(tr.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!0,ec:null,vid:this.joinInfo.vid,addr:this.signal.url,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload,isABTestSuccess:this.store.isABTestSuccess}),this._isProactiveJoin=!1,this.joinInfo.useLocalAccessPoint&&this.joinInfo.setLocalAPVersion===1){let A=this.signal.url&&this.signal.url.match(/wss\:\/\/([^:]+):(\d+)/);if(!A)return void X.error("[".concat(this.store.clientId,"] set local access point after joined failed: ").concat(A));Mn("EVENT_REPORT_DOMAIN",A[1]),Mn("EVENT_REPORT_BACKUP_DOMAIN",A[1]),Mn("LOG_UPLOAD_SERVER","".concat(A[1],":6444"))}}}),this.signal.on(Or.ON_UPLINK_STATS,A=>{this._statsCollector.updateUplinkStats(A)}),this.signal.on(or.REQUEST_RECOVER,(A,l,g)=>{if(!this.joinInfo)return g(new ze(fe.UNEXPECTED_ERROR,"gateway: can not recover, no join info"));A&&(this.joinInfo.multiIP=A,this.hasChangeBGPAddress=!0),this.isSignalRecover=!0,rs(this,Pn.REQUEST_NEW_GATEWAY_LIST).then(l).catch(g)}),this.signal.on(or.REQUEST_JOIN_INFO,async(A,l,g)=>{var C,m,y;if(this.updateTurnConfigFromSignal(),this.store.useP2P)return void A(this.getJoinMessage({ortc:{}}));let w=no((C=this.joinInfo)===null||C===void 0?void 0:C.turnServer);if(Ie("NEW_TURN_MODE")&&w&&((m=this.joinInfo)===null||m===void 0?void 0:m.cloudProxyServer)==="disabled"){var b;let K=w.servers.map(oe=>"turnServerURL"in oe&&Ie("USE_TURN_IP")?Oo(Oo({},oe),{},{turnServerURL:HC(oe.turnServerURL)}):oe),q=(b=w.serversFromGateway)===null||b===void 0?void 0:b.map(oe=>Ie("USE_TURN_IP")?Oo(Oo({},oe),{},{turnServerURL:HC(oe.turnServerURL)}):oe),ce=this.signal.currentURLIndex;K.length>0&&(K=[K[ce%K.length]],w.servers=K),Array.isArray(q)&&q.length>0&&(q=[q[0]],w.serversFromGateway=q),X.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(ce))}let{iceParameters:M,dtlsParameters:k,rtpCapabilities:V}=await rs(this,Pn.REQUEST_P2P_CONNECTION_PARAMS,{turnServer:w,cloudProxyServer:(y=this.joinInfo)===null||y===void 0?void 0:y.cloudProxyServer});try{A(this.getJoinMessage({ortc:{iceParameters:M,dtlsParameters:k,rtpCapabilities:V,version:"2"}}))}catch(K){l(K)}}),this.signal.on(or.REQUEST_REJOIN_INFO,A=>{A(this.getRejoinMessage())}),this.signal.on(or.REPORT_JOIN_GATEWAY,(A,l)=>{if(!this.joinInfo)return;let g,C="";var m;A instanceof ze?(g=((m=A.data)===null||m===void 0?void 0:m.desc)||A.code,C=A.message):g=A,tr.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!1,ec:g,errorMsg:C,addr:l,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload})}),this.signal.on(or.IS_P2P_DISCONNECTED,A=>{A(o2(this,Pn.IS_P2P_DISCONNECTED))}),this.signal.on(or.DISCONNECT_P2P,()=>{this.emit(Pn.DISCONNECT_P2P)}),this.signal.on(or.REQUEST_SUCCESS,()=>{this._signalTimeout=!1}),this.signal.on(or.REQUEST_TIMEOUT,()=>{this._signalTimeout=!0}),this.signal.on(or.JOIN_RESPONSE,A=>{let l=this.getCurrentGatewayAddress();this.emit(Pn.JOIN_RESPONSE,A,l)}),this.signal.on(or.PRE_CONNECT_PC,async(A,l)=>{if(this.joinInfo){var g,C;this.updateTurnConfigFromSignal();let y=this.getCurrentGatewayAddress(),w=no((g=this.joinInfo)===null||g===void 0?void 0:g.turnServer);if(Ie("NEW_TURN_MODE")&&w&&((C=this.joinInfo)===null||C===void 0?void 0:C.cloudProxyServer)==="disabled"){var m;let M=w.servers.map(K=>"turnServerURL"in K&&Ie("USE_TURN_IP")?Oo(Oo({},K),{},{turnServerURL:HC(K.turnServerURL)}):K),k=(m=w.serversFromGateway)===null||m===void 0?void 0:m.map(K=>Ie("USE_TURN_IP")?Oo(Oo({},K),{},{turnServerURL:HC(K.turnServerURL)}):K),V=this.signal.currentURLIndex;M.length>0&&(M=[M[V%M.length]],w.servers=M),Array.isArray(k)&&k.length>0&&(k=[k[0]],w.serversFromGateway=k),X.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(V,",in pre pc"))}let b=Ie("FINGERPRINT")||this.joinInfo.apResponse.addresses[this.signal.currentURLIndex].fingerprint;if(y&&b){let M=s7(y);rs(this,Pn.PRE_CONNECT_PC,{candidates:M,fingerprint:b,turnServer:w}).then(k=>{A==null||A(k)}).catch(l||(()=>{}))}}}),this.signal.on(or.RECOVER_NOTIFICATION,A=>{this.joinInfo&&typeof Ie("AP_REQUEST_DETAIL")=="string"&&(this.joinInfo.apRequestDetail="".concat(Ie("AP_REQUEST_DETAIL"),";").concat(A))}),this.signal.on(or.VOS_FALLBACK,A=>{this.emit(Pn.VOS_FALLBACK,A)}),this.signal.on(or.DATACHANNEL_FAILBACK,A=>{X.warning("[".concat(this.store.clientId,"] User join datachannel failed")),this.reset(),this.resetSignal(),this.emit(Pn.DATACHANNEL_FAILBACK)})}async tryUnsubBeforeResub(A,l){try{await this.signal.request(sr.UNSUBSCRIBE,{p2p_id:this.store.p2pId,stream_id:A,ortc:[l]},!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] tryUnsubBeforeResub warning"),g),g}}async tryUnsubDataChannelBeforeResub(A,l){try{await this.signal.request(sr.UNSUBSCRIBE,{stream_id:l.id},!0)}catch(g){throw X.warning("unsubscribe datachannel warning",g),g}}async tryUnpubBeforeRepub(A,l){try{await this.signal.request(sr.UNPUBLISH,{stream_id:A,ortc:l},!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] tryUnpubBeforeRepub warning: "),g),g}}async tryUnpubDataChannelBeforeRepub(A,l){try{await this.signal.request(sr.UNPUBLISH_DATASTREAM,{channnel_id:l.channelId},!0)}catch(g){throw X.warning("unpublish datastream warning: ",g),g}}async tryMassUnsubBeforeResub(A){let l={users:A.map(g=>({stream_id:g.stream_id,stream_type:g.stream_type}))};try{await this.signal.request(sr.UNSUBSCRIBE_STREAMS,l,!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] tryMassUnsubBeforeResub warning"),g),g}}async muteLocal(A,l){let g={action:A.find(C=>C.stream_type===an.Audio)?"mute_local_audio":"mute_local_video",p2p_id:this.store.p2pId,ortc:A,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway muteLocal warning: "),C),C}}async unmuteLocal(A,l){let g={action:A.find(C=>C.stream_type===an.Audio)?"unmute_local_audio":"unmute_local_video",p2p_id:this.store.p2pId,ortc:A,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway unmuteLocal warning: "),C),C}}async muteRemote(A,l){let g={action:A===$t.AUDIO?"mute_remote_audio":"mute_remote_video",p2p_id:this.store.p2pId,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway muteRemote warning: "),C),C}}async unmuteRemote(A,l){let g={action:A===$t.AUDIO?"unmute_remote_audio":"unmute_remote_video",p2p_id:this.store.p2pId,stream_id:l};try{await this.signal.request(sr.CONTROL,g,!0,!0)}catch(C){throw X.warning("[".concat(this.store.clientId,"] gateway unmuteRemote warning: "),C),C}}uploadWRTCStats(A){this.signal.uploadWRTCStats(A)}upload(A,l){this.signal.upload(A,l)}getSignalRTT(){return this.signal.rtt}async restartICE(A){let l={p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:A};try{return await this.signal.request(sr.RESTART_ICE,l,!0)}catch(g){throw X.warning("[".concat(this.store.clientId,"] P2PChannel.restartICE warning: "),g),g}}reconnect(A,l){this.state==="CONNECTED"&&this.signal.reconnect(A||void 0,l||xo.P2P_FAILED)}getCurrentGatewayAddress(){var A,l;if(!Ie("GATEWAY_WSS_ADDRESS"))return Ie("USE_CANDIDATE_FROM_AP_DETAIL")&&(A=this.joinInfo)!==null&&A!==void 0&&A.apGatewayAddress?(X.debug("[".concat(this.store.clientId,"] use candidate from ap detail, ").concat(JSON.stringify(this.joinInfo.apGatewayAddress))),this.joinInfo.apGatewayAddress):(l=this.joinInfo)!==null&&l!==void 0&&l.gatewayAddrs?this.joinInfo.gatewayAddrs[this.signal.currentURLIndex]:void 0}async setPublishAudioFilterEnabled(A){await this.signal.request(sr.SET_PARAMETER,{enablePublishAudioFilter:A})}downgradeCodec(A){this.signal.downgradeCodec(A)}resetSignal(){this.signal&&(this.signal.removeAllListeners(),this.signal.close(bi.FALLBACK)),this.store.useDcSignal=!1,this.signal=new r7(Oo(Oo({},this.spec),{},{retryConfig:this.spec.websocketRetryConfig}),this.store),this.handleSignalEvents(),this.emit(Pn.RESET_SIGNAL)}}let Hd=0,fs=0;function iA(a,A,l,g){return new Ft((C,m)=>{A.timeout=A.timeout||Ie("HTTP_CONNECT_TIMEOUT"),A.responseType=A.responseType||"json",A.data&&!l?(A.data=JSON.stringify(A.data),Hd+=DA(A.data)):l&&(A.data.size?Hd+=A.data.size:A.data instanceof FormData?Hd+=Zs(A.data):Hd+=DA(JSON.stringify(A.data))),A.headers=A.headers||{},A.headers["Content-Type"]=A.headers["Content-Type"]||"application/json",A.method="POST",A.url=a,vA.request(A).then(y=>{typeof y.data=="string"?fs+=DA(y.data):y.data instanceof ArrayBuffer||y.data instanceof Uint8Array?fs+=y.data.byteLength:fs+=DA(JSON.stringify(y.data)),g&&C({data:y.data,headers:y.headers}),C(y.data)}).catch(y=>{vA.isCancel(y)?m(new ze(fe.OPERATION_ABORTED,"cancel token canceled")):y.code==="ECONNABORTED"?m(new ze(fe.NETWORK_TIMEOUT,y.message)):y.response?m(new ze(fe.NETWORK_RESPONSE_ERROR,y.response.status)):m(new ze(fe.NETWORK_ERROR,y.message))})})}(function(){var a;function A(ut){var kt=0;return function(){return kt>>0)+"_",It=0;return function ne(ve){if(this instanceof ne)throw new TypeError("Symbol is not a constructor");return new kt(Wt+(ve||"")+"_"+It++,ve)}}),m("Symbol.iterator",function(ut){if(ut)return ut;ut=Symbol("Symbol.iterator");for(var kt="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Wt=0;Wt"u"||!FormData.prototype.keys)){var be=function(ut,kt){for(var Wt=0;Wt{let a=Ie("AREAS");return a.length===0&&a.push(fn.GLOBAL),$c(a).call(a,(A,l,g)=>{let C=rd(l);return C?g===0?C:"".concat(A,",").concat(C):A},"")},rd=a=>a===fn.OVERSEA?"".concat(ka.ASIA,",").concat(ka.EUROPE,",").concat(ka.AFRICA,",").concat(ka.NORTH_AMERICA,",").concat(ka.SOUTH_AMERICA,",").concat(ka.OCEANIA):ka[a],jC=a=>{let A={CODE:"",WEBCS_DOMAIN:[],WEBCS_DOMAIN_BACKUP_LIST:[],PROXY_CS:[],CDS_AP:[],ACCOUNT_REGISTER:[],UAP_AP:[],EVENT_REPORT_DOMAIN:[],EVENT_REPORT_BACKUP_DOMAIN:[],LOG_UPLOAD_SERVER:[],PROXY_SERVER_TYPE3:[]};return a.map(l=>{let g=KC[l],C=Object.keys(g);C&&C.map(m=>{m!=="CODE"&&(A[m]=A[m].concat(g[m]))})}),A},Go={GLOBAL:{ASIA:[fn.CHINA,fn.JAPAN,fn.INDIA,fn.KOREA,fn.HKMC],EUROPE:[],NORTH_AMERICA:[fn.US],SOUTH_AMERICA:[],OCEANIA:[],AFRICA:[]}},Pg=Object.keys(Go[fn.GLOBAL]),Uu=[fn.CHINA,fn.NORTH_AMERICA,fn.EUROPE,fn.ASIA,fn.JAPAN,fn.INDIA,fn.OCEANIA,fn.SOUTH_AMERICA,fn.AFRICA,fn.KOREA,fn.HKMC,fn.US],qJ=function(a,A){let l=[];if(Rt(a).call(a,fn.GLOBAL)){let m=[fn.GLOBAL,fn.OVERSEA],y=Object.keys(KC);if(A===fn.GLOBAL)throw new ze(fe.INVALID_PARAMS,"GLOBAL is an invalid excludedArea value");if(A===fn.CHINA)l=[fn.OVERSEA];else if(C=A,Rt(Pg).call(Pg,C)){let w=(g=A,Go[fn.GLOBAL][g]||[]),b=[...m,A,...w];l=y.filter(M=>!Rt(b).call(b,M))}else if(function(w){let b=!1;return Pg.forEach(M=>{var k;Rt(k=Go[fn.GLOBAL][M]).call(k,w)&&(b=!0)}),b}(A)){let w=function(M){let k;return Pg.forEach(V=>{var K;Rt(K=Go[fn.GLOBAL][V]).call(K,M)&&(k=V)}),k}(A),b=[...m,w,A];l=y.filter(M=>!Rt(b).call(b,M))}else l=a;l=function(w){let b=[];return Uu.forEach(M=>{Rt(w).call(w,M)&&b.push(M)}),b.concat(w.filter(M=>!Rt(Uu).call(Uu,M)))}(l)}else l=a;var g,C;return l};function a7(a){var A,l;if(!a&&Rt(A=Ie("AREAS")).call(A,fn.EXTENSIONS))return X.debug("update area from ap : reset"),void mh(RU,!0);if(!Rt(l=Ie("AREAS")).call(l,fn.GLOBAL)||!a)return;let g=KC.EXTENSIONS;g&&(g={CODE:rd(fn.EXTENSIONS),WEBCS_DOMAIN:["ap-web-1-".concat(a,".agora.io")],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-".concat(a,".ap.sd-rtn.com")],PROXY_CS:["proxy-ap-web-".concat(a,".agora.io")],CDS_AP:["cds-ap-web-1-".concat(a,".agora.io"),"cds-ap-web-2-".concat(a,".ap.sd-rtn.com")],ACCOUNT_REGISTER:["sua-ap-web-1-".concat(a,".agora.io"),"sua-ap-web-2-".concat(a,".ap.sd-rtn.com")],UAP_AP:["uap-ap-web-1-".concat(a,".agora.io"),"uap-ap-web-2-".concat(a,".ap.sd-rtn.com")],EVENT_REPORT_DOMAIN:["statscollector-1-".concat(a,".agora.io")],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-".concat(a,".agora.io")],LOG_UPLOAD_SERVER:["logservice-".concat(a,".agora.io")],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy-".concat(a,".agora.io")]},X.debug("update area from ap success: ".concat(a,",config is "),g),Mn("AREAS",[fn.EXTENSIONS],!0),Object.keys(g).map(C=>{C==="LOG_UPLOAD_SERVER"||C==="EVENT_REPORT_DOMAIN"||C==="EVENT_REPORT_BACKUP_DOMAIN"||C==="PROXY_SERVER_TYPE3"?Mn(C,g[C][0]):Mn(C,g[C])}))}function mh(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=tr.reportApiInvoke(null,{name:Co.SET_AREA,options:a,tag:Gn.TRACER});try{let g=[];if(typeof a=="string"&&(g=[a]),Array.isArray(a)&&(a.forEach(m=>{if(!Rt(n_).call(n_,m))throw new ze(fe.INVALID_PARAMS,"invalid area code")}),g=a),Object.prototype.toString.call(a)==="[object Object]"){let{areaCode:m,excludedArea:y}=a;if(!m)throw new ze(fe.INVALID_PARAMS,"area code is needed");let w=m;typeof m=="string"&&(w=[m]),g=y?qJ(w,y):w}if(!A){if(Vr.AREAS){let m=new ze(fe.PROHIBITED_OPERATION,"setArea is prohibited because of config-distribute");return l.onError(m),void X.warning("setArea is prohibited because of config-distribute")}if(Rt(g).call(g,fn.GLOBAL)&&Ie("AREAS")===fn.EXTENSIONS){let m=new ze(fe.PROHIBITED_OPERATION,"setArea is prohibited because of ap extensions");return l.onError(m),void X.warning("setArea is prohibited because of ap extensions")}}Mn("AREAS",g,A);let C=jC(g);Object.keys(C).map(m=>{m==="LOG_UPLOAD_SERVER"||m==="EVENT_REPORT_DOMAIN"||m==="EVENT_REPORT_BACKUP_DOMAIN"||m==="PROXY_SERVER_TYPE3"?Mn(m,C[m][0]):Mn(m,C[m])}),X.debug("set area success:",g.join(","))}catch(g){throw l.onError(g),g}l.onSuccess()}function A7(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function m1(a){for(var A=1;A{w=Date.now();let k=await iA(M,{data:y,cancelToken:g,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"}});if(b=Date.now()-w,k.code!==0){let q=new ze(fe.UNEXPECTED_RESPONSE,"live streaming ap error, code"+k.code,{retry:!0,responseTime:b});throw X.error(q.toString()),q}let V=JSON.parse(k.json_body);if(V.code!==200){let q=new ze(fe.UNEXPECTED_RESPONSE,"live streaming app center error, code: ".concat(V.code,", reason: ").concat(V.reason),{code:V.code,responseTime:b});throw X.error(q.toString()),q}if(!V.servers||V.servers.length===0){let q=new ze(fe.UNEXPECTED_RESPONSE,"live streaming app center empty server",{code:V.code,responseTime:b});throw X.error(q.toString()),q}let K=function(q,ce){return{addressList:q.servers.map(oe=>"wss://".concat(oe.address.replace(/\./g,"-"),".").concat(Ie("WORKER_DOMAIN"),":").concat(oe.wss,"?serviceName=").concat(encodeURIComponent(ce))),workerToken:q.workerToken,vid:q.vid}}(V,A);return Ie("LIVE_STREAMING_ADDRESS")&&(K.addressList=Ie("LIVE_STREAMING_ADDRESS")instanceof Array?Ie("LIVE_STREAMING_ADDRESS"):[Ie("LIVE_STREAMING_ADDRESS")]),m1(m1({},K),{},{responseTime:b})},(k,V)=>(tr.apworkerEvent(l.sid,{success:!0,sc:200,serviceName:A,responseDetail:JSON.stringify(k.addressList),firstSuccess:V===0,responseTime:b,serverIp:a[V%a.length]}),!1),(k,V)=>(tr.apworkerEvent(l.sid,{success:!1,sc:k.data&&k.data.code||200,serviceName:A,responseTime:b,serverIp:a[V%a.length]}),!!(k.code!==fe.OPERATION_ABORTED&&k.code!==fe.UNEXPECTED_RESPONSE||k.data&&k.data.retry)&&(M=a[(V+1)%a.length],!0)),C)}let c_=1;function c7(a,A,l,g){let{url:C,areaCode:m}=a,{clientId:y,sid:w}=A,b=Date.now(),M,k=A.role,[V,K]=RN(A,m,[ps.CHOOSE_SERVER]),q=Xi.networkState;return jl(async()=>{q&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(g&&g.maxRetryTimeout||os.maxRetryTimeout)]),q=Xi.networkState;let{data:ce,headers:oe}=await iA(C,{data:V,cancelToken:l,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);M=oe.http3==="1"?1:-1,tr.reportResourceTiming(C,w),d7(ce,C,A,b,[ps.CHOOSE_SERVER],M);let le=YC(ce,ps.CHOOSE_SERVER);return SN(le),IN(le,C)},ce=>(ce&&tr.joinChooseServer(w,{role:k,lts:b,succ:!0,csAddr:C,opid:K,serverList:ce.gatewayAddrs.map(oe=>oe.address),ec:null,cid:ce.cid.toString(),uid:ce.uid.toString(),csIp:ce.csIp,unilbsServerIds:[ps.CHOOSE_SERVER].toString(),isHttp3:M,corssRegionTagReq:A.apRequestDetail,corssRegionTagRes:ce.res.detail&&ce.res.detail[38],vid:ce.vid}),!1),ce=>ce.code!==fe.OPERATION_ABORTED&&(ce.code===fe.CAN_NOT_GET_GATEWAY_SERVER?ce.data.retry:(tr.joinChooseServer(w,{role:k,lts:b,succ:!1,csAddr:C,serverList:null,opid:K,ec:ce.code,csIp:ce.data&&ce.data.csIp,unilbsServerIds:[ps.CHOOSE_SERVER].toString(),extend:JSON.stringify({networkState:q}),isHttp3:M,corssRegionTagReq:A.apRequestDetail}),X.warning("[".concat(y||"sid-".concat(w.slice(0,6)),"] Choose server network error, retry"),ce),!0)),g)}function l7(a,A,l,g){let C,{url:m,areaCode:y,serviceIds:w}=a,b=Date.now(),M=A.role,[k,V]=RN(A,y,w),K;return jl(async()=>{K&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(g&&g.maxRetryTimeout||os.maxRetryTimeout)]),K=Xi.networkState;let{data:q,headers:ce}=await iA(m,{data:k,cancelToken:l,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);C=ce.http3==="1"?1:-1,tr.reportResourceTiming(m,A.sid),d7(q,m,A,b,w,C);let oe=YC(q,ps.CHOOSE_SERVER),le=YC(q,A.cloudProxyServer==="proxy5"?ps.CLOUD_PROXY_5:A.cloudProxyServer==="proxy3"||A.cloudProxyServer==="proxy4"?ps.CLOUD_PROXY:ps.CLOUD_PROXY_FALLBACK),pe=performance.getEntriesByName(m),Se=pe[pe.length-1],be;return Se&&(be={name:Se.name,protocol:"nextHopProtocol"in Se?Se.nextHopProtocol:"",dnscost:"domainLookupEnd"in Se&&"domainLookupStart"in Se&&typeof Se.domainLookupEnd=="number"&&typeof Se.domainLookupStart=="number"?Se.domainLookupEnd-Se.domainLookupStart:-1,tcpTlsCost:"connectEnd"in Se&&"connectStart"in Se&&typeof Se.connectEnd=="number"&&typeof Se.connectStart=="number"?Se.connectEnd-Se.connectStart:-1,reqCost:"requestStart"in Se&&typeof Se.requestStart=="number"&&"responseEnd"in Se&&typeof Se.responseEnd=="number"?Se.responseEnd-Se.requestStart:-1,handleCost:"leave_ts"in q&&"enter_ts"in q&&typeof q.leave_ts=="number"&&typeof q.enter_ts=="number"?q.leave_ts-q.enter_ts:-1}),SN(oe),{gatewayInfo:IN(oe,m),proxyInfo:le,url:m,resourceTimingInfo:be}},q=>{var ce;return q.gatewayInfo&&tr.joinChooseServer(A.sid,{role:M,lts:b,succ:!0,csAddr:m,serverList:q.gatewayInfo.gatewayAddrs.map(oe=>oe.address),ec:null,opid:V,cid:q.gatewayInfo.cid.toString(),uid:q.gatewayInfo.uid.toString(),csIp:q.gatewayInfo.csIp,unilbsServerIds:w.toString(),isHttp3:C,corssRegionTagReq:A.apRequestDetail,corssRegionTagRes:q.gatewayInfo.res.detail&&q.gatewayInfo.res.detail[38],vid:(ce=q.gatewayInfo)===null||ce===void 0?void 0:ce.vid,resourceTimingInfo:q.resourceTimingInfo?JSON.stringify(q.resourceTimingInfo):void 0}),q.proxyInfo&&tr.joinWebProxyAP(A.sid,{lts:b,sucess:1,apServerAddr:m,turnServerAddrList:q.proxyInfo.addresses.map(oe=>oe.ip).join(","),errorCode:null,eventType:A.cloudProxyServer,unilbsServerIds:w.toString()}),!1},q=>q.code!==fe.OPERATION_ABORTED&&(q.code===fe.CAN_NOT_GET_GATEWAY_SERVER?q.data.retry:(tr.joinWebProxyAP(A.sid,{lts:b,sucess:0,apServerAddr:m,turnServerAddrList:null,errorCode:q.code,eventType:A.cloudProxyServer,unilbsServerIds:w.toString(),extend:JSON.stringify({networkState:K})}),X.warning("[".concat(A.clientId,"] multi unilbs network error, retry"),q),!0)),g)}let d7=(a,A,l,g,C,m)=>{let{sid:y,clientId:w,cloudProxyServer:b}=l,M=[],k=V=>{V.flag===4096?tr.joinChooseServer(y,{role:l.role,lts:g,succ:!1,csAddr:A,opid:a.opid,serverList:null,ec:V.error.message,csIp:V.error.data&&V.error.data.csIp,unilbsServerIds:C.toString(),isHttp3:m,corssRegionTagReq:l.apRequestDetail}):V.flag!==1048576&&V.flag!==4194304&&V.flag!==4194310||tr.joinWebProxyAP(y,{lts:g,sucess:0,apServerAddr:A,turnServerAddrList:null,errorCode:V.error.code,eventType:b,unilbsServerIds:C.toString()})};if(a.response_body.forEach(V=>{let K=V.buffer.code;if(V.uri===23&&K===0&&!V.buffer.edges_services)if(V.buffer.flag===4194310)X.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers"),V.buffer.edges_services=[];else{let q={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:Ie("NO_EDGES_RETRY"),csIp:a.detail[502]}),flag:V.buffer.flag};M.push(q),k(q)}if(K!==0){let q=N2(K),ce={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,q.desc,{desc:q.desc,retry:q.retry,csIp:a.detail[502]}),flag:V.buffer.flag};V.buffer.flag===4194310?X.warning(ce.error.toString()):M.push(ce),k(ce)}}),M.length)throw X.warning("[".concat(w||"sid-".concat(y.slice(0,6)),"] multi unilbs ").concat(A," failed, ").concat(M.map(V=>"flag: ".concat(V.flag,", message: ").concat(V.error.message,", retry: ").concat(V.error.data.retry)).join(" | "))),new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,M.map(V=>"flag: ".concat(V.flag,", message: ").concat(V.error.message)).join(" | "),{retry:!!M.find(V=>V.error.data.retry),csIp:a.detail[502],desc:[...new Set(M.map(V=>{var K;return V==null||(K=V.error)===null||K===void 0||(K=K.data)===null||K===void 0?void 0:K.desc}).filter(V=>!!V))]})},SN=a=>{var A,l,g,C;if(a.addresses&&a.addresses.length===0&&a.code===0)throw new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,"void gateway address",{retry:!0,csIp:a.detail&&a.detail[502]});if(Ie("AP_AREA")&&((g=a.detail)!==null&&g!==void 0&&g[23]&&typeof((C=a.detail)===null||C===void 0?void 0:C[23])=="string"?a7(a.detail[23].toLowerCase()):a7()),(A=a.detail)!==null&&A!==void 0&&A[19]&&typeof((l=a.detail)===null||l===void 0?void 0:l[19])=="string"){let y=a.detail[19],w=y==null?void 0:y.split(";");for(let b=0;b0){X.debug("assign gateway address to",Ie("GATEWAY_ADDRESS"));let y=Ie("GATEWAY_ADDRESS").map(w=>{var b,M;let k=(b=(M=a.addresses.find(V=>V.ip===w.ip&&V.port===w.port))===null||M===void 0?void 0:M.fingerprint)!==null&&b!==void 0?b:"";return{ip:w.ip,port:w.port,ticket:a.addresses[0]&&a.addresses[0].ticket,fingerprint:w.fingerprint||k}});a.addresses=y}},WJ=(a,A)=>{if(a.response_body&&a.response_body.length){let l=a.response_body[0];if(l.buffer.code!==0){let g=N2(l.buffer.code);throw new ze(fe.UPDATE_TICKET_FAILED,"[".concat(l.buffer.code,"]: ").concat(g.desc),{retry:g.retry})}return l.buffer.ticket}throw X.debug("update ticket request received ap response without response body:",A),new ze(fe.UPDATE_TICKET_FAILED,"cannot find response body from ap response",{retry:!1})},RN=(a,A,l)=>{let g=Math.floor(Math.random()*1e12),C=a.role==="host"?"1":a.role==="audience"?"2":void 0,m={appid:a.appId,client_ts:Date.now(),opid:g,sid:a.sid,request_bodies:[{uri:22,buffer:{cname:a.cname,detail:m1(m1(m1({6:a.stringUid,11:A,12:Ie("USE_NEW_TOKEN")?"1":void 0},C?{17:C}:{}),{},{22:A},a.apRequestDetail?{33:a.apRequestDetail}:{}),a.apRTM?{26:"RTM2"}:{}),key:a.token,service_ids:l,uid:a.uid||0}}]};m.request_bodies.forEach(w=>{a.multiIP&&a.multiIP.gateway_ip&&(w.buffer.detail[5]=JSON.stringify({vocs_ip:[a.multiIP.uni_lbs_ip],vos_ip:[a.multiIP.gateway_ip]}))});let y=new FormData;return y.append("request",JSON.stringify(m)),[y,g]},u7=(a,A)=>{let l=Math.floor(Math.random()*1e12),g={appid:a.appId,client_ts:Date.now(),opid:l,sid:a.sid,request_bodies:[{uri:28,buffer:{cname:a.cname,detail:{1:"",6:a.stringUid,12:"1"},token:a.token,service_ids:A,uid:a.uid||0,edges_services:a.apResponse.addresses.map(m=>({ip:m.ip,port:m.port}))}}]},C=new FormData;return C.append("request",JSON.stringify(g)),[C,l]},x2=0;function Bh(a){return Ft.all(a.map(A=>A.then(l=>{throw l},l=>l))).then(A=>{throw A},A=>A)}let Ug=async a=>{let{fragementLength:A,referenceList:l,asyncMapHandler:g,allFailedhandler:C,promisesCollector:m}=a,y=0,w=A,b,M=0,k=async()=>{let V=(()=>{let K=y*w,q=K+w;return l.slice(K,q).map(g)})();m&&m.push(...V);try{b=await Bh(V)}catch(K){if(M+=w,y++,!(M>=l.length))return void await k();C(K)}V.forEach(K=>K.cancel())};return await k(),b},yN=async a=>{let{referenceList:A,asyncMapHandler:l,closeFn:g}=a,C=A.length,m=0,y=async()=>{let w=l(A.shift());try{return await w}catch(b){if(m++,m>=C||g!=null&&g(b))throw b;return y()}};return y()};async function XJ(){if(typeof VideoDecoder>"u")return!0;let a,A=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,85,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,149,160,133,4,144,43,122,168,159,120,159,205,39,82,131,57,52,87,187,68,23,248,134,204,226,97,17,49,183,55,236,219,249,221,98,208,215,190,59,179,167,213,47,1,246,150,14,194,245,159,83,35,64,103,218,38,21,82,3,135,21,185,84,248,134],l=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,148,62,134,140,92,172,141,77,35,94,181,164,65,169,65,156,154,43,221,162,11,252,67,102,113,48,136,137,219,62,43,113,239,23,126,250,186,252,10,138,218,25,193,244,74,68,194,209,107,23,52,206,199,78,72,98,103,151,71,96,62,51,210,158,72,231,158],g=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,143,233,163,51,196,98,95,151,224,22,134,33,240,150,248,67,18,34,196,142,81,238,173,140,80,205,232,132,144,67,12,131,157,4,171,243,86,122,35,6,166,184,243,85,126,13,206,103,152,62,168,160,187,2,241,138,52,211,72,121,128,151,63,147,128,19,42],C=[18,0,50,138,1,48,192,64,253,248,65,17,67,192,32,0,16,0,0,0,0,0,0,0,195,12,48,144,64,32,0,209,75,61,9,204,25,115,79,226,115,63,63,208,70,210,220,153,126,241,237,37,107,195,153,1,99,112,230,189,209,169,130,10,11,22,167,215,159,205,197,7,183,162,26,48,254,141,134,103,32,16,235,45,1,15,18,119,169,110,206,251,51,115,202,60,148,1,46,39,109,25,28,86,168,15,77,211,239,2,58,43,146,26,230,184,81,48,140,226,226,250,222,146,171,133,164,13,188,180,64,122,142,146,32,208,238,170,193,35,53,44,225],m=[18,0,50,107,48,0,133,125,248,65,26,195,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,204,24,122,65,56,165,18,52,206,218,4,187,51,97,9,29,191,90,253,106,185,31,197,155,52,205,245,185,203,131,20,226,25,124,95,113,220,113,141,15,15,104,211,144,152,237,150,157,127,51,143,24,231,218,171,255,176,241,128,229,149,150,148,66,245,228,91,27,182,228,136,61,182,237,133,45,220,24,103,214,152],y=[18,0,50,122,48,1,9,253,248,65,26,67,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,198,182,231,242,220,235,163,140,12,36,36,166,46,132,210,4,71,23,218,132,27,30,17,45,244,79,31,243,195,136,100,169,76,88,142,85,204,217,121,168,29,163,198,17,251,223,73,12,212,244,139,123,151,179,75,216,96,208,136,40,229,42,59,149,10,116,228,85,99,93,221,108,255,140,248,20,30,167,122,109,206,164,108,197,110,251,23,243,133,160,63,13,207,177,12,128];return await new Ft((w,b)=>{let M;(async function(){a&&a.state!=="closed"||await async function(){a=new VideoDecoder({output:V=>{V.close(),clearTimeout(M),w(!0)},error:V=>{clearTimeout(M),w(!1)}}),await a.configure({codec:"av01.0.05M.08",width:160,height:90})}();let k=[A,l,g,C,m,y];for(let V=0;V{w(!1)},5e3)})}async function Ky(a,A,l,g){return{gatewayInfo:await async function(C,m,y,w){let b=null,M=[],k=async()=>{let K=Ie("WEBCS_DOMAIN").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(oe=>({url:C.proxyServer?"https://".concat(C.proxyServer,"/ap/?url=").concat(oe+"/api/v2/transpond/webrtc?v=2"):"https://".concat(oe,"/api/v2/transpond/webrtc?v=2"),areaCode:r1()})),q=w.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:K.map(oe=>oe.url)}),ce=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:K,asyncMapHandler:oe=>(X.debug("[".concat(C.clientId,"] Connect to choose_server:"),oe.url),c7(oe,C,m,y)),allFailedhandler:oe=>{throw w.recordJoinChannelService({endTs:Date.now(),status:"error",errors:oe},q),oe[0]},promisesCollector:M});return w.recordJoinChannelService({endTs:Date.now(),status:"success"},q),ce},V=async()=>{if(await Ks(1e3),b!==null)return b;let K=Ie("WEBCS_DOMAIN_BACKUP_LIST").map(oe=>({url:C.proxyServer?"https://".concat(C.proxyServer,"/ap/?url=").concat(oe+"/api/v2/transpond/webrtc?v=2"):"https://".concat(oe,"/api/v2/transpond/webrtc?v=2"),areaCode:r1()})),q=w.recordJoinChannelService({endTs:void 0,startTs:Date.now(),status:"pending",service:"chooseServer",urls:K.map(oe=>oe.url)}),ce=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:K,asyncMapHandler:oe=>(X.debug("[".concat(C.clientId,"] Connect to backup choose_server:"),oe.url),c7(oe,C,m,y)),allFailedhandler:oe=>{throw w.recordJoinChannelService({endTs:Date.now(),status:"error",errors:oe},q),oe[0]},promisesCollector:M});return w.recordJoinChannelService({endTs:Date.now(),status:"success"},q),ce};try{return b=await Bh([k(),V()]),M.length&&M.forEach(K=>K.cancel&&typeof K.cancel=="function"&&K.cancel()),b}catch(K){throw K[0]}}(a,A,l,g)}}async function QN(a,A,l,g,C){let m=a.cloudProxyServer;if(m==="disabled"){if(a.useLocalAccessPoint)return await Ky(a,A,l,C);if(Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY")){let{gatewayInfo:K,proxyInfo:q}=await TN(a,A,l,C);if(a.turnServer&&a.turnServer.mode!=="auto")return{gatewayInfo:K};let ce=q.map(oe=>({turnServerURL:oe.address,tcpport:oe.tcpport||Ti.tcpport,udpport:oe.udpport||Ti.udpport,username:oe.username||Ti.username,password:oe.password||Ti.password,forceturn:!1,security:!0}));if(C.useP2P){var y;let oe=(y=a.uid)!==null&&y!==void 0?y:K.uid,le="glb:".concat(oe.toString()),pe=await QR(le),Se=q.map(be=>({turnServerURL:be.address,tcpport:be.tcpport||Ti.tcpport,udpport:be.udpport||Ti.udpport,username:le,password:pe,forceturn:!1,security:!0}));ce.push(...Se)}return a.turnServer={mode:"manual",servers:ce},{gatewayInfo:K}}return await Ky(a,A,l,C)}let{proxyInfo:w,gatewayInfo:b}=await TN(a,A,l,C),M={gatewayInfo:b},k=w.map(K=>({turnServerURL:K.address,tcpport:m==="proxy3"?void 0:K.tcpport?K.tcpport:Ti.tcpport,udpport:m==="proxy4"?void 0:K.udpport?K.udpport:Ti.udpport,username:K.username||Ti.username,password:K.password||Ti.password,forceturn:m!=="proxy4",security:m==="proxy5"}));if(C.useP2P){var V;let K=(V=a.uid)!==null&&V!==void 0?V:b.uid,q="glb:".concat(K.toString()),ce=await QR(q),oe=w.map(le=>({turnServerURL:le.address,tcpport:m==="proxy3"?void 0:le.tcpport||Ti.tcpport,udpport:m==="proxy4"?void 0:le.udpport||Ti.udpport,username:q,password:ce,forceturn:m!=="proxy4",security:m==="proxy5"}));k.push(...oe)}return a.turnServer={mode:"manual",servers:k},X.debug("[".concat(a.clientId,"] set proxy server: ").concat(a.proxyServer,", mode: ").concat(m)),M}async function g7(a,A,l,g,C){let m=Ie("ACCOUNT_REGISTER").slice(0,Ie("AJAX_REQUEST_CONCURRENT")),y=[];y=A.proxyServer?m.map(b=>"https://".concat(A.proxyServer,"/ap/?url=").concat(b+"/api/v1")):m.map(b=>"https://".concat(b,"/api/v1"));let w=C==null?void 0:C.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"stringUID",urls:y});try{let b=await async function(M,k,V,K,q){let ce=Date.now(),oe={sid:V.sid,opid:10,appid:V.appId,string_uid:k},le=M[0],pe=await jl(()=>iA(le+"".concat(le.indexOf("?")===-1?"?":"&","action=stringuid"),{data:oe,cancelToken:K,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}}),(Se,be)=>{if(Se.code===0){if(Se.uid<=0||Se.uid>=Math.pow(2,32))throw X.error("Invalid Uint Uid ".concat(k," => ").concat(Se.uid),Se),tr.reqUserAccount(oe.sid,{lts:ce,success:!1,serverAddr:le,stringUid:oe.string_uid,uid:Se.uid,errorCode:fe.INVALID_UINT_UID_FROM_STRING_UID,extend:oe}),new ze(fe.INVALID_UINT_UID_FROM_STRING_UID);return tr.reqUserAccount(oe.sid,{lts:ce,success:!0,serverAddr:le,stringUid:oe.string_uid,uid:Se.uid,errorCode:null,extend:oe}),!1}let Ue=N2(Se.code);return Ue.retry&&(le=M[(be+1)%M.length]),tr.reqUserAccount(oe.sid,{lts:ce,success:!1,serverAddr:le,stringUid:oe.string_uid,uid:Se.uid,errorCode:Ue.desc,extend:oe}),Ue.retry},(Se,be)=>Se.code!==fe.OPERATION_ABORTED&&(tr.reqUserAccount(oe.sid,{lts:ce,success:!1,serverAddr:le,stringUid:oe.string_uid,uid:null,errorCode:Se.code,extend:oe}),le=M[(be+1)%M.length],!0),q);if(pe.code!==0){let Se=N2(pe.code);throw new ze(fe.UNEXPECTED_RESPONSE,Se.desc)}return pe}(y,a,A,l,g);return C==null||C.recordJoinChannelService({status:"success",endTs:Date.now()},w),b.uid}catch(b){throw C==null||C.recordJoinChannelService({status:"error",endTs:Date.now(),errors:[b]},w),b}}async function hA(a,A,l){let g=Ie("ACCOUNT_REGISTER"),C=[];C=A.proxyServer?g.map(m=>"https://".concat(A.proxyServer,"/ap/?url=").concat(m+"/api/v1")):g.map(m=>"https://".concat(m,"/api/v1"));try{return await yN({referenceList:C,asyncMapHandler:m=>async function(y,w,b,M){let k=Date.now(),V={sid:b.sid,opid:10,appid:b.appId,string_uid:w};try{let K=await iA(y+"".concat(y.indexOf("?")===-1?"?":"&","action=stringuid"),{data:V,cancelToken:M,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}});if(K.code!==0){let q=N2(K.code);throw new ze(fe.UNEXPECTED_RESPONSE,"preload sua error:".concat(q.desc),q)}if(K.uid<=0||K.uid>=Math.pow(2,32))throw new ze(fe.INVALID_UINT_UID_FROM_STRING_UID);return{requestTime:k,url:y,req:V,uid:K.uid,elapse:Date.now()-k}}catch(K){throw K}}(m,a,A,l),closeFn:m=>m.code===fe.OPERATION_ABORTED||m.code===fe.UNEXPECTED_RESPONSE&&!m.data.retry})}catch(m){throw m}}async function JC(a,A,l){let g=Ie("CDS_AP").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(b=>a.proxyServer?"https://".concat(a.proxyServer,"/ap/?url=").concat(b+"/api/v1"):"https://".concat(b,"/api/v1?action=config")),C=g.map(b=>function(M,k,V,K){let q=Wi(),ce={flag:64,cipher_method:0,features:m1(m1(m1(m1(m1({install_id:Of(),device:q.name,system:q.os,system_general:navigator.userAgent,vendor:k.appId,version:Cn,cname:k.cname,session_id:k.sid,proxyServer:k.proxyServer,sdk_type:i7.WEB_RTC,browser_name:q.name,browser_version:q.version,user_agent:navigator.userAgent,channel_name:k.cname},k.stringUid&&{string_uid:k.stringUid}),k.uid&&{uid:k.uid+""}),q.os&&{os_name:q.os}),q.osVersion&&{os_version:q.osVersion}),{},{detail:""})};return jl(()=>iA(M,{data:ce,timeout:1e3,cancelToken:V,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":54}}),void 0,oe=>oe.code!==fe.OPERATION_ABORTED,K)}(b,a,A,l)),m=null,y=null,w={};try{m=await Bh(C)}catch(b){if(b.code===fe.OPERATION_ABORTED)throw b;y=b}if(C.forEach(b=>b.cancel()),tr.reportApiInvoke(a.sid,{name:Co.REQUEST_CONFIG_DISTRIBUTE,options:{error:y,res:m}}).onSuccess(),m&&m.test_tags)try{w=function(b){if(!b.test_tags)return{};let M=b.test_tags,k=Object.keys(M),V={};return k.forEach(K=>{var q;let ce=RA(q=K.slice(4)).call(q),oe=JSON.parse(M[K]),le=oe[1];V[ce]={tag:oe[0]||"",value:le}}),V}(m)}catch{}return w}async function Hy(a,A){let l=Ie("WEBCS_DOMAIN").concat(Ie("WEBCS_DOMAIN_BACKUP_LIST")).map(g=>({url:"https://".concat(g,"/api/v2/transpond/webrtc?v=2"),areaCode:r1(),serviceIds:[ps.CHOOSE_SERVER,ps.CLOUD_PROXY_FALLBACK]}));try{return await yN({referenceList:l,asyncMapHandler:g=>async function(C,m,y){let w,{url:b,areaCode:M,serviceIds:k}=C,V=Date.now(),[K,q]=RN(m,M,k),ce=Xi.networkState;try{ce&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(os.maxRetryTimeout)]),ce=Xi.networkState;let{data:oe,headers:le}=await iA(b,{data:K,cancelToken:y,headers:{"Content-Type":"multipart/form-data;"}},!0,!0);w=le.http3==="1"?1:-1,(be=>{let Ue=[];if(be.response_body.forEach(xe=>{let Le=xe.buffer.code;if(xe.uri===23&&Le===0&&!xe.buffer.edges_services)if(xe.buffer.flag===4194310)xe.buffer.edges_services=[];else{let je={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:Ie("NO_EDGES_RETRY"),csIp:be.detail[502]}),flag:xe.buffer.flag};Ue.push(je)}if(Le!==0){let je=N2(Le),dt={error:new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,je.desc,{desc:je.desc,retry:je.retry,csIp:be.detail[502]}),flag:xe.buffer.flag};xe.buffer.flag===4194310?X.warning(dt.error.toString()):Ue.push(dt)}}),Ue.length)throw new ze(fe.CAN_NOT_GET_GATEWAY_SERVER,Ue.map(xe=>"flag: ".concat(xe.flag,", message: ").concat(xe.error.message)).join(" | "),{retry:!!Ue.find(xe=>xe.error.data.retry),csIp:be.detail[502],desc:[...new Set(Ue.map(xe=>{var Le;return xe==null||(Le=xe.error)===null||Le===void 0||(Le=Le.data)===null||Le===void 0?void 0:Le.desc}).filter(xe=>!!xe))]})})(oe);let pe=YC(oe,ps.CHOOSE_SERVER),Se=YC(oe,ps.CLOUD_PROXY_FALLBACK);return SN(pe),{gatewayInfo:IN(pe,b),proxyInfo:Se,opid:q,requestTime:V,url:b,isHttp3:w,elapse:Date.now()-V}}catch(oe){throw oe}}(g,a,A),closeFn:g=>g.code===fe.OPERATION_ABORTED||g.code===fe.CAN_NOT_GET_GATEWAY_SERVER&&!g.data.retry})}catch(g){throw g}}async function TN(a,A,l,g){let C=Ie("PROXY_SERVER_TYPE3"),m=(q,ce,oe)=>{let le=oe||C;return Array.isArray(le)&&(le=ce%2==0&&C[1]||C[0]),"https://".concat(le,"/ap/?url=").concat(q)},y=null,w=[],b=async()=>{let q=Ie("WEBCS_DOMAIN").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map((le,pe)=>{let Se;return Se=a.cloudProxyServer==="disabled"&&a.proxyServer?m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe,a.proxyServer):a.cloudProxyServer==="disabled"||a.cloudProxyServer==="fallback"?"https://".concat(le,"/api/v2/transpond/webrtc?v=2"):m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe),{url:Se,areaCode:r1(),serviceIds:[ps.CHOOSE_SERVER,a.cloudProxyServer==="proxy5"?ps.CLOUD_PROXY_5:a.cloudProxyServer==="proxy3"||a.cloudProxyServer==="proxy4"?ps.CLOUD_PROXY:ps.CLOUD_PROXY_FALLBACK]}}),ce=g.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:q.map(le=>le.url)}),oe=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:q,asyncMapHandler:le=>(X.debug("[".concat(a.clientId,"] Connect to choose_server:"),le.url),l7(le,a,A,l)),allFailedhandler:le=>{throw g.recordJoinChannelService({endTs:Date.now(),status:"error",errors:le},ce),le[0]},promisesCollector:w});return g.recordJoinChannelService({endTs:Date.now(),status:"success"},ce),oe},M=async()=>{if(await Ks(1e3),y!==null)return y;let q=Ie("WEBCS_DOMAIN_BACKUP_LIST").map((le,pe)=>{let Se;return Se=a.cloudProxyServer==="disabled"&&a.proxyServer?m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe,a.proxyServer):a.cloudProxyServer==="disabled"||a.cloudProxyServer==="fallback"?"https://".concat(le,"/api/v2/transpond/webrtc?v=2"):m("".concat(le,"/api/v2/transpond/webrtc?v=2"),pe),{url:Se,areaCode:r1(),serviceIds:[ps.CHOOSE_SERVER,a.cloudProxyServer==="proxy5"?ps.CLOUD_PROXY_5:a.cloudProxyServer==="proxy3"||a.cloudProxyServer==="proxy4"?ps.CLOUD_PROXY:ps.CLOUD_PROXY_FALLBACK]}}),ce=g.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:q.map(le=>le.url)}),oe=await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:q,asyncMapHandler:le=>(X.debug("[".concat(a.clientId,"] Connect to backup choose_server:"),le.url),l7(le,a,A,l)),allFailedhandler:le=>{throw g.recordJoinChannelService({endTs:Date.now(),status:"error",errors:le},ce),le[0]},promisesCollector:w});return g.recordJoinChannelService({endTs:Date.now(),status:"success"},ce),oe},k,V,K;try{({gatewayInfo:k,proxyInfo:V,url:K}=await Bh([b(),M()]))}catch(q){throw q[0]}if(w.length&&w.forEach(q=>q.cancel&&typeof q.cancel=="function"&&q.cancel()),!k||!V)throw new ze(fe.UNEXPECTED_ERROR,"missing gateway or proxy response").print();if(a.apUrl=K,a.cloudProxyServer!=="disabled"&&Array.isArray(C)&&K){let q=/^https?:\/\/(.+?)(\/.*)?$/.exec(K)[1];Rt(C).call(C,q)&&(a.proxyServer=q,X.setProxyServer(q),tr.setProxyServer(q))}return y={gatewayInfo:k,proxyInfo:await CN(V,k.uid)},y}async function l_(a,A,l){let g=Ie("UAP_AP").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(m=>a.proxyServer?"https://".concat(a.proxyServer,"/ap/?url=").concat(m+"/api/v1?action=uap"):"https://".concat(m,"/api/v1?action=uap")),C=g.map(m=>function(y,w,b,M){let k={command:"convergeAllocateEdge",sid:w.sid,appId:w.appId,token:w.token,ts:Date.now(),version:Cn,cname:w.cname,uid:w.uid.toString(),requestId:c_,seq:c_};c_+=1;let V={service_name:"tele_channel",json_body:JSON.stringify(k)};return jl(async()=>{let K=await iA(y,{data:V,cancelToken:b,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":61}});if(K.code!==0){let ce=new ze(fe.UNEXPECTED_RESPONSE,"cross channel ap error, code"+K.code,{retry:!0});throw X.error(ce.toString()),ce}let q=JSON.parse(K.json_body);if(q.code!==200){let ce=new ze(fe.UNEXPECTED_RESPONSE,"cross channel app center error, code: ".concat(q.code,", reason: ").concat(q.reason));throw X.error(ce.toString()),ce}if(!q.servers||q.servers.length===0){let ce=new ze(fe.UNEXPECTED_RESPONSE,"cross channel app center empty server");throw X.error(ce.toString()),ce}return{vid:q.vid,workerToken:q.workerToken,addressList:(Ie("CHANNEL_MEDIA_RELAY_SERVERS")||q.servers).map(ce=>"wss://".concat(ce.address.replace(/\./g,"-"),".").concat(Ie("WORKER_DOMAIN"),":").concat(ce.wss))}},void 0,K=>!!(K.code!==fe.OPERATION_ABORTED&&K.code!==fe.UNEXPECTED_RESPONSE||K.data&&K.data.retry),M)}(m,a,A,l));try{let m=await Bh(C);return C.forEach(y=>y.cancel()),m}catch(m){throw m[0]}}async function d_(a,A,l){let g=null,C=[],m=async y=>{let w=Ie(y?"WEBCS_DOMAIN_BACKUP_LIST":"WEBCS_DOMAIN").map(b=>a.proxyServer?"https://".concat(a.proxyServer,"/ap/?url=").concat(b+"/api/v2/transpond/webrtc?v=2"):"https://".concat(b,"/api/v2/transpond/webrtc?v=2"));return y&&(await Ks(1e3),g!==null)?g:await Ug({fragementLength:Ie("FRAGEMENT_LENGTH"),referenceList:w,asyncMapHandler:b=>(X.debug("[".concat(a.clientId,"] update ticket, Connect to ").concat(y?"backup":""," choose_server:"),b),function(M,k,V,K){let[q]=u7(k,[ps.CHOOSE_SERVER]),ce=Xi.networkState;return jl(async()=>{ce&&Xi.networkState===Va.OFFLINE&&Xi.onlineWaiter&&await Ft.race([Xi.onlineWaiter,Ks(K&&K.maxRetryTimeout||os.maxRetryTimeout)]),ce=Xi.networkState;let oe=await iA(M,{data:q,cancelToken:V,headers:{"Content-Type":"multipart/form-data;"}},!0);return WJ(oe,M)},()=>!1,oe=>oe.code!==fe.OPERATION_ABORTED&&(oe.code===fe.UPDATE_TICKET_FAILED?oe.data.retry:(X.warning("[".concat(k.clientId,"] update ticket network error, retry"),oe),!0)),K)}(b,a,A,l)),allFailedhandler:b=>{throw b[0]},promisesCollector:C})};try{return g=await Bh([m(!1),m(!0)]),C.length&&C.forEach(y=>y.cancel&&typeof y.cancel=="function"&&y.cancel()),g}catch(y){throw y[0]}}function Yy(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function qC(a){for(var A=1;A{this.updateConfigDistribute()},Ie("CONFIG_DISTRIBUTE_INTERVAL")))}stopGetConfigDistribute(){this.interval&&clearInterval(this.interval),this.interval=void 0,this.joinInfo=void 0,this.cancelToken=void 0,this.configs=void 0,this.limit_bitrate=void 0}async awaitConfigDistributeComplete(){this.mutex.isLocked&&(await this.mutex.lock())()}async updateConfigDistribute(){if(this.mutableParamsRead||(this.mutableParamsRead=!0,tr.reportApiInvoke(null,{options:void 0,name:Co.LOAD_CONFIG_FROM_LOCALSTORAGE,tag:Gn.TRACER}).onSuccess(JSON.stringify(Vr))),!this.joinInfo||!this.cancelToken||!this.retryConfig)return void X.debug("[config-distribute] get config distribute interrupted have no joininfo");let A,l=await this.mutex.lock();try{A=await JC(this.joinInfo,this.cancelToken,this.retryConfig),X.debug("[config-distribute] get config distribute",JSON.stringify(A));let g=function(C){var m;let y=LE(m=Object.keys(C).filter(M=>/^webrtc_ng_global_parameter/.test(M))).call(m);for(let M=0;MM;k--){let V=y[k],K=C[V].value;if(typeof K.__priority=="number"){let q=K.__priority,ce=y[k-1],oe=C[ce].value;if(typeof oe.__priority=="number"){if(!(q>oe.__priority))continue;{let le=V;y[k]=y[k-1],y[k-1]=le}}else{let le=V;y[k]=y[k-1],y[k-1]=le}}}let w=Date.now(),b={};return y.forEach(M=>{let k=C[M].value.__expires;k&&k<=w||(b[M]=C[M])}),b}(A);this.cacheGlobalParameterConfig(g),this.store.hasStartJoinChannel||(this.store.isABTestSuccess=!0),this.configs=g}catch(g){let C=new ze(fe.NETWORK_RESPONSE_ERROR,g);X.warning("[config-distribute] ".concat(C.toString()))}finally{l()}}getBitrateLimit(){return this.limit_bitrate||void 0}handleBitrateLimit(A){by(A)&&(this.limit_bitrate?this.limit_bitrate&&this.limit_bitrate.id!==A.id&&this.emit(Il.UPDATE_BITRATE_LIMIT,A):this.emit(Il.UPDATE_BITRATE_LIMIT,A))}getLowStreamConfigDistribute(){return this.limit_bitrate&&qC({},this.limit_bitrate.low_stream_uplink)}handleABTestConfigDistribute(A){try{let l={},g=Object.keys(A),C=[];g.forEach(m=>{let y=A[m].value;l[m]=y;let w=y.__id;if(w&&this.configCache[m]&&this.configCache[m].__id===w)return;let b=y.__type,M=A[m].value,k=A[m].tag,V=0;b?b===PR.REALTIME&&(V=1):Object.keys(M).some(K=>Object.prototype.hasOwnProperty.call(mi,K)||!cN()&&Object.prototype.hasOwnProperty.call(vn,K)?(V=1,!0):void 0),C.push({tag:k,isApplied:V,feature:m,params:JSON.stringify(y)})}),C.forEach(m=>{let{tag:y,feature:w,params:b,isApplied:M}=m;this.store.sessionId&&tr.abTest(this.store.sessionId,{intSucc:1,isApplied:M,tag:y,feature:w,params:b,cid:this.store.cid,uid:this.store.intUid})}),this.configCache=l}catch(l){X.debug("handleABTestConfigDistribute error",l)}}cacheGlobalParameterConfig(A){let l=function(C){let m={};return Object.keys(C).forEach(y=>{let w=C[y].value,b=w.__expires,M=w.__type;Object.keys(w).forEach(k=>{k==="__id"||k==="__type"||k==="__priority"||k==="__expires"||Object.prototype.hasOwnProperty.call(m,k)||(m[k]=qC(qC({value:w[k]},b&&{expires:b}),M&&{type:M}))})}),m}(A);try{var g;let C=(g=l.LIMIT_BITRATE)===null||g===void 0?void 0:g.value;delete l.LIMIT_BITRATE,C&&by(C)&&this.handleBitrateLimit(C),this.limit_bitrate=C,this.handleGlobalParameterConfig(l),this.handleABTestConfigDistribute(A),function(w){try{let b=Date.now();Object.keys(w).forEach(M=>{let{value:k,type:V,expires:K}=w[M];K&&K<=b||((V===PR.REALTIME||Object.prototype.hasOwnProperty.call(mi,M))&&(Vr[M]=k,zi[M]=k,X.debug("Update realtime parameters from config distribute",M,k)),V||cN()||!Object.prototype.hasOwnProperty.call(vn,M)||(Vr[M]=k,zi[M]=k,X.debug("Update gateway parameters from config distribute",M,k)))})}catch(b){X.error("Error update config immediately: ".concat(w),b.message)}}(l);let m=JSON.stringify(l),y=window.btoa(m);window.localStorage.setItem("websdk_ng_global_parameter",y),X.debug("Caching global parameters ".concat(m))}catch(C){X.error("Error caching global parameters:",C.message)}}handleGlobalParameterConfig(A){try{let l=Date.now();Object.keys(A).forEach(g=>{switch(g){case"CLIENT_ROLE_OPTIONS":if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:m,expires:y}=A[g];if(y&&y<=l)return;vf(zi[g],m)||(Vr[g]=m,zi[g]=m,this.emit(Il.UPDATE_CLIENT_ROLE_OPTIONS,m),X.debug("Updating client role options: ".concat(JSON.stringify(m))))}break;case"REMOTE_VIDEO_STREAM_TYPE":if(Object.prototype.hasOwnProperty.call(zi,g)){var C;let{value:m,expires:y}=A[g];if(y&&y<=l)return;typeof m=="number"&&Rt(C=[0,1,4,5,6,7,8,9]).call(C,m)&&(Vr[g]={value:m},zi[g]=m,this.emit(Il.UPDATE_REMOTE_VIDEO_STREAM_TYPE,m),X.debug("Updating client remote stream type: ".concat(JSON.stringify(m))))}break;case"ENABLE_FORCE_HLS":if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:m,expires:y}=A[g];if(y&&y<=l)return;vf(zi[g],m)||(Vr[g]=m,zi[g]=m,this.emit(Il.FALLBACK_TO_HLS,m),X.debug("Updating enable force hls: ".concat(JSON.stringify(m))))}break;case"VOS_CONFIGURE":if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:m,expires:y}=A[g];if(y&&y<=l)return;vf(zi[g],m)||(Vr[g]=m,zi[g]=m,this.emit(Il.UPDATE_VOS_CONFIGURE,m),X.debug("Updating vos configure: ".concat(JSON.stringify(m))))}}})}catch(l){X.error("Error handling global parameter config:",l.message)}}}class E7 extends io{constructor(){super(...arguments),Ae(this,"resultStorage",new Map)}setLocalAudioStats(A,l,g){this.record("AUDIO_INPUT_LEVEL_TOO_LOW",A,this.checkAudioInputLevel(g,l)),this.record("SEND_AUDIO_BITRATE_TOO_LOW",A,this.checkSendAudioBitrate(g,l))}setLocalVideoStats(A,l,g){this.record("SEND_VIDEO_BITRATE_TOO_LOW",A,this.checkSendVideoBitrate(g,l)),this.record("FRAMERATE_INPUT_TOO_LOW",A,this.checkFramerateInput(g,l)),this.record("FRAMERATE_SENT_TOO_LOW",A,this.checkFramerateSent(g)),!l.muted&&this.record("VIDEO_ENCODE_FAILED",A,this.checResolutionSent(g))}setRemoteAudioStats(A,l){let g=A.getUserId();this.record("AUDIO_OUTPUT_LEVEL_TOO_LOW",g,this.checkAudioOutputLevel(l))}setRemoteVideoStats(A,l){let g=A.getUserId();this.record("RECV_VIDEO_DECODE_FAILED",g,this.checkVideoDecode(l))}record(A,l,g){if(Ie("STATS_UPDATE_INTERVAL")>500)return;this.resultStorage.has(A)||this.resultStorage.set(A,{result:[],isPrevNormal:!0});let C=this.resultStorage.get(A);if(!C)return;C.result.push(g);let m=A==="VIDEO_ENCODE_FAILED"?Ie("ENCODE_EXCEPTION_TIMES"):5;if(C.result.length>=m){var y;let w=Rt(y=C.result).call(y,!0);C.isPrevNormal&&!w&&this.emit("exception",Yd[A],A,l),!C.isPrevNormal&&w&&this.emit("exception",Yd[A]+2e3,A+"_RECOVER",l),C.isPrevNormal=w,C.result=[]}}checkAudioOutputLevel(A){return!(A.receiveBitrate>0&&A.receiveLevel===0)}checkAudioInputLevel(A,l){return l instanceof Os&&!l.isActive||!!l.muted||A.sendVolumeLevel!==0}checkFramerateInput(A,l){let g=null;l._encoderConfig&&l._encoderConfig.frameRate&&(g=ZA(l._encoderConfig.frameRate));let C=A.captureFrameRate;return!g||!C||!(g>10&&C<5||g<10&&g>=5&&C<=1)}checkFramerateSent(A){return!(A.captureFrameRate&&A.sendFrameRate&&A.captureFrameRate>5&&A.sendFrameRate<=1)}checResolutionSent(A){var l;return!(!A.codecType||Rt(l=Ie("ENCODE_EXCEPTION_VALIDATE_CODEC")).call(l,A.codecType.toLocaleLowerCase()))||!A.captureFrameRate||A.sendFrameRate!==0||A.sendResolutionWidth!==0||A.sendResolutionHeight!==0}checkSendVideoBitrate(A,l){return!!l.muted||A.sendBitrate!==0}checkSendAudioBitrate(A,l){return l instanceof Os&&!l.isActive||!!l.muted||A.sendBitrate!==0}checkVideoDecode(A){return A.receiveBitrate===0||A.decodeFrameRate!==0}}let Yd={FRAMERATE_INPUT_TOO_LOW:1001,FRAMERATE_SENT_TOO_LOW:1002,SEND_VIDEO_BITRATE_TOO_LOW:1003,RECV_VIDEO_DECODE_FAILED:1005,AUDIO_INPUT_LEVEL_TOO_LOW:2001,AUDIO_OUTPUT_LEVEL_TOO_LOW:2002,SEND_AUDIO_BITRATE_TOO_LOW:2003,VIDEO_ENCODE_FAILED:2004},aa=new class{markSubscribeStart(a,A){performance.mark("agora-web-sdk/".concat(a,"/subscribe-").concat(A))}markPublishStart(a,A){performance.mark("agora-web-sdk/".concat(a,"/publish-").concat(A))}measureFromSubscribeStart(a,A){let l=performance.getEntriesByName("agora-web-sdk/".concat(a,"/subscribe-").concat(A));if(l.length>0){let g=l[l.length-1];return Math.round(performance.now()-g.startTime)}return 0}measureFromPublishStart(a,A){let l=performance.getEntriesByName("agora-web-sdk/".concat(a,"/publish-").concat(A));if(l.length>0){let g=l[l.length-1];return Math.round(performance.now()-g.startTime)}return 0}};function WC(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function jd(a){for(var A=1;A{this.p2pChannel&&(this.updateRemoteStats(this.p2pChannel),this.updateLocalStats(this.p2pChannel))}),this.store=A,this.exceptionMonitor=new E7,this.exceptionMonitor.on("exception",(l,g,C)=>{this.onStatsException&&this.onStatsException(l,g,C)})}startUpdateStats(){this.updateStatsInterval||(this.updateStatsInterval=window.setInterval(this.updateStats,1e3))}stopUpdateStats(){this.updateStatsInterval&&(window.clearInterval(this.updateStatsInterval),this.updateStatsInterval=void 0)}reset(){this.localStats=new Map,this.remoteStats=new Map,this.trafficStats=void 0,this.trafficStatsPeerList=[],this.uplinkStats=void 0}getLocalAudioTrackStats(){return this.localStats.get(St.LocalAudioTrack)||jd({},YR)}getLocalVideoTrackStats(){return this.localStats.get(St.LocalVideoTrack)||jd({},I2)}getRemoteAudioTrackStats(A){let l=(m,y)=>{if(!this.trafficStats)return y;let w=this.trafficStats.peer_delay.find(b=>b.peer_uid===m);return w&&(y.publishDuration=w.B_ppad+(Date.now()-this.trafficStats.timestamp)),y},g={};if(A){var C;let m=(C=this.remoteStats.get(A))===null||C===void 0?void 0:C.audioStats;m&&(g[A]=l(A,m))}else Array.from(this.remoteStats.entries()).forEach(m=>{let[y,{audioStats:w}]=m;w&&(g[y]=l(y,w))});return g}getRemoteNetworkQualityStats(A){let l={};if(A){var g;let C=(g=this.remoteStats.get(A))===null||g===void 0?void 0:g.networkStats;C&&(l[A]=C)}else Array.from(this.remoteStats.entries()).forEach(C=>{let[m,{networkStats:y}]=C;y&&(l[m]=y)});return l}getNetworkQuality(){let A=0,l=0;return this.trafficStats&&(A=Uy(this.trafficStats.B_unq),l=Uy(this.trafficStats.B_dnq)),{uplinkNetworkQuality:A,downlinkNetworkQuality:l}}getRemoteVideoTrackStats(A){let l=(m,y)=>{if(!this.trafficStats)return y;let w=this.trafficStats.peer_delay.find(b=>b.peer_uid===m);return w&&(y.publishDuration=w.B_ppvd+(Date.now()-this.trafficStats.timestamp)),y},g={};if(A){var C;let m=(C=this.remoteStats.get(A))===null||C===void 0?void 0:C.videoStats;m&&(g[A]=l(A,m))}else Array.from(this.remoteStats.entries()).forEach(m=>{let[y,{videoStats:w}]=m;w&&(g[y]=l(y,w))});return g}getRTCStats(){let A=0,l=0,g=0,C=0,m=this.localStats.get(St.LocalAudioTrack);m&&(A+=m.sendBytes,l+=m.sendBitrate);let y=this.localStats.get(St.LocalVideoTrack);y&&(A+=y.sendBytes,l+=y.sendBitrate);let w=this.localStats.get(St.LocalVideoLowTrack);w&&(A+=w.sendBytes,l+=w.sendBitrate),this.remoteStats.forEach(M=>{let{audioStats:k,videoStats:V}=M;k&&(g+=k.receiveBytes,C+=k.receiveBitrate),V&&(g+=V.receiveBytes,C+=V.receiveBitrate)});let b=1;return this.trafficStats&&(b+=this.trafficStats.peer_delay.length),{Duration:0,UserCount:b,SendBitrate:l,SendBytes:A,RecvBytes:g,RecvBitrate:C,OutgoingAvailableBandwidth:this.uplinkStats?this.uplinkStats.B_uab/1e3:0,RTT:this.trafficStats?2*this.trafficStats.B_acd:0}}addLocalStats(A){this.localStats.set(A,void 0)}removeLocalStats(A){A?this.localStats.delete(A):this.localStats.clear()}addRemoteStats(A){this.remoteStats.set(A,{})}removeRemoteStats(A){A?this.remoteStats.delete(A):this.remoteStats.clear()}addP2PChannel(A){this.p2pChannel=A}updateTrafficStats(A){A.peer_delay=A.peer_delay.filter(l=>l.B_ppad!==void 0||l.B_ppvd!==void 0),A.peer_delay.filter(l=>this.trafficStatsPeerList.indexOf(l.peer_uid)===-1).forEach(l=>{var g;let C=(g=this.p2pChannel)===null||g===void 0?void 0:g.getRemoteMedia(l.peer_uid),m=C!=null&&C.videoSSRC?aa.measureFromSubscribeStart(this.store.clientId,C.videoSSRC):0,y=C!=null&&C.audioSSRC?aa.measureFromSubscribeStart(this.store.clientId,C.audioSSRC):0;l.B_ppad!==void 0&&l.B_ppvd!==void 0&&(this.onUploadPublishDuration&&this.onUploadPublishDuration(l.peer_uid,l.B_ppad,l.B_ppvd,m>y?m:y),this.trafficStatsPeerList.push(l.peer_uid))}),this.trafficStats=A}updateUplinkStats(A){this.uplinkStats&&this.uplinkStats.B_fir!==A.B_fir&&X.debug("[".concat(this.store.clientId,"]: Period fir changes to ").concat(A.B_fir)),this.uplinkStats=A}static isRemoteVideoFreeze(A,l,g){if(!A)return!1;let C=!!g&&l.framesDecodeFreezeTime>g.framesDecodeFreezeTime,m=!g||l.framesDecodeCount>g.framesDecodeCount;return C||!m}static isRemoteAudioFreeze(A){return!!A&&A._isFreeze()}isLocalVideoFreeze(A){return!(!A.inputFrame||!A.sentFrame)&&A.inputFrame.frameRate>5&&A.sentFrame.frameRate<3}updateLocalStats(A){Array.from(this.localStats.entries()).forEach(l=>{let[g,C]=l;switch(g){case St.LocalVideoTrack:case St.LocalVideoLowTrack:{let w=C,b=jd({},I2),M=A.getStats(),k=A.getLocalMedia(g);if(M){let V=M.videoSend.find(K=>K.ssrc===(k==null?void 0:k.ssrcs[0].ssrcId));if(V){let K=A.getLocalVideoSize(),q=A.getEncoderConfig(St.LocalVideoTrack);var m;(V.codec==="H264"||V.codec==="H265"||V.codec==="VP8"||V.codec==="VP9"||V.codec==="AV1X"||V.codec==="AV1")&&(b.codecType=V.codec,(w==null?void 0:w.codecType)!==V.codec&&((m=this.onVideoCodecChanged)===null||m===void 0||m.call(this,V.codec.toLocaleLowerCase()))),b.sendBytes=V.bytes,b.sendBitrate=w?8*Math.max(0,b.sendBytes-w.sendBytes):0,V.inputFrame?(b.captureFrameRate=V.inputFrame.frameRate,b.captureResolutionHeight=V.inputFrame.height,b.captureResolutionWidth=V.inputFrame.width):K&&(b.captureResolutionWidth=K.width,b.captureResolutionHeight=K.height),V.sentFrame?(b.sendFrameRate=V.sentFrame.frameRate,b.sendResolutionHeight=V.sentFrame.height,b.sendResolutionWidth=V.sentFrame.width):K&&(b.sendResolutionWidth=K.width,b.sendResolutionHeight=K.height),V.avgEncodeMs&&(b.encodeDelay=V.avgEncodeMs),q&&q.bitrateMax?b.targetSendBitrate=1e3*q.bitrateMax:V.targetBitrate&&(b.targetSendBitrate=V.targetBitrate),b.sendPackets=V.packets,b.sendPacketsLost=V.packetsLost,b.sendJitterMs=V.jitterMs,b.sendRttMs=V.rttMs,b.totalDuration=w?w.totalDuration+1:1,b.totalFreezeTime=w?w.totalFreezeTime:0,this.isLocalVideoFreeze(V)&&(b.totalFreezeTime+=1),V.scalabilityMode&&this.scalabilityMode!==V.scalabilityMode&&(X.debug("[".concat(this.store.clientId,"]: The scalabilityMode of the video sending stream is ").concat(V.scalabilityMode)),this.scalabilityMode=V.scalabilityMode)}this.trafficStats&&(b.currentPacketLossRate=(this.trafficStats.B_pvlr4||0)/100)}var y;this.localStats.set(g,b),((w==null?void 0:w.sendResolutionWidth)!==b.sendResolutionWidth||(w==null?void 0:w.sendResolutionHeight)!==b.sendResolutionHeight)&&((y=this.onStatsChanged)===null||y===void 0||y.call(this,"resolution",{width:b.sendResolutionWidth,height:b.sendResolutionHeight})),b&&k&&this.exceptionMonitor.setLocalVideoStats(this.store.uid,k.track,b);break}case St.LocalAudioTrack:{let w=C,b=jd({},YR),M=A.getStats(),k=A.getLocalMedia(g);if(M){let V=M.audioSend.find(K=>K.ssrc===(k==null?void 0:k.ssrcs[0].ssrcId));if(V){if(V.codec!=="opus"&&V.codec!=="aac"&&V.codec!=="PCMU"&&V.codec!=="PCMA"&&V.codec!=="G722"||(b.codecType=V.codec),V.inputLevel)b.sendVolumeLevel=Math.round(32767*V.inputLevel);else{let K=A.getLocalAudioVolume();K&&(b.sendVolumeLevel=Math.round(32767*K))}b.sendBytes=V.bytes,b.sendPackets=V.packets,b.sendPacketsLost=V.packetsLost,b.sendJitterMs=V.jitterMs,b.sendRttMs=V.rttMs,b.sendBitrate=w?8*Math.max(0,b.sendBytes-w.sendBytes):0}}this.trafficStats&&(b.currentPacketLossRate=(this.trafficStats.B_palr4||0)/100),this.localStats.set(St.LocalAudioTrack,b),b&&k&&this.exceptionMonitor.setLocalAudioStats(this.store.uid,k.track,b);break}}})}updateRemoteStats(A){Array.from(this.remoteStats.entries()).forEach(l=>{var g,C;let[m,{videoStats:y,audioStats:w,videoPcStats:b}]=l,M=w,k=y,V=b,K=jd({},W1),q=jd({},Ah),ce=jd({},d4),{audioTrack:oe,videoTrack:le,audioSSRC:pe,videoSSRC:Se}=A.getRemoteMedia(m),be;be=this.store.useP2P?A.getStats(!0):A.getStats();let Ue=(g=be)===null||g===void 0?void 0:g.audioRecv.find(dt=>dt.ssrc===pe),xe=(C=be)===null||C===void 0?void 0:C.videoRecv.find(dt=>dt.ssrc===Se),Le=this.trafficStats&&this.trafficStats.peer_delay.find(dt=>dt.peer_uid===m);if(Ue&&(Ue.codec!=="opus"&&Ue.codec!=="aac"&&Ue.codec!=="PCMU"&&Ue.codec!=="PCMA"&&Ue.codec!=="G722"||(K.codecType=Ue.codec),Ue.outputLevel?K.receiveLevel=Math.round(32767*Ue.outputLevel):oe&&(K.receiveLevel=Math.round(32767*oe.getVolumeLevel())),K.receiveBytes=Ue.bytes,K.receivePackets=Ue.packets,K.receivePacketsLost=Ue.packetsLost,K.receivePacketsDiscarded=Ue.packetsDiscarded,K.packetLossRate=K.receivePacketsLost/(K.receivePackets+K.receivePacketsLost),K.receiveBitrate=M?8*Math.max(0,K.receiveBytes-M.receiveBytes):0,K.totalDuration=M?M.totalDuration+1:1,K.totalFreezeTime=M?M.totalFreezeTime:0,K.freezeRate=K.totalFreezeTime/K.totalDuration,K.receiveDelay=Ue.jitterBufferMs,K.totalDuration>10&&F2.isRemoteAudioFreeze(oe)&&(K.totalFreezeTime+=1)),xe){var je;xe.codec!=="H264"&&xe.codec!=="H265"&&xe.codec!=="VP8"&&xe.codec!=="VP9"&&xe.codec!=="AV1X"&&xe.codec!=="AV1"||(q.codecType=xe.codec),q.receiveBytes=xe.bytes,q.receiveBitrate=k?8*Math.max(0,q.receiveBytes-k.receiveBytes):0,q.decodeFrameRate=xe.decodeFrameRate<0?0:xe.decodeFrameRate,q.renderFrameRate=xe.decodeFrameRate<0?0:xe.decodeFrameRate,xe.outputFrame&&(q.renderFrameRate=xe.outputFrame.frameRate),xe.receivedFrame?(q.receiveFrameRate=xe.receivedFrame.frameRate,q.receiveResolutionHeight=xe.receivedFrame.height,q.receiveResolutionWidth=xe.receivedFrame.width):le&&(q.receiveResolutionHeight=le._videoHeight||0,q.receiveResolutionWidth=le._videoWidth||0),xe.framesRateFirefox!==void 0&&(q.receiveFrameRate=Math.round(xe.framesRateFirefox)),q.receivePackets=xe.packets,q.receivePacketsLost=xe.packetsLost,q.packetLossRate=q.receivePacketsLost/(q.receivePackets+q.receivePacketsLost);let dt=k?k.totalFreezeTime:0,pt=k?k.totalDuration:0;q.totalDuration=k?k.totalDuration+1:1,q.totalFreezeTime=(je=xe.totalFreezesDuration)!==null&&je!==void 0?je:dt||0,q.receiveDelay=xe.jitterBufferMs||0;let zt=!!Se&&A.getRemoteVideoIsReady(Se);xe.totalFreezesDuration===void 0&&le&&zt&&F2.isRemoteVideoFreeze(le,xe,V)&&(q.totalFreezeTime+=1),q.freezeRate=Math.max(0,Math.min((q.totalFreezeTime-dt)/(q.totalDuration-pt),1))}Le&&(K.end2EndDelay=Le.B_ad,q.end2EndDelay=Le.B_vd,K.transportDelay=Le.B_ed,q.transportDelay=Le.B_ed,K.currentPacketLossRate=Le.B_ealr4/100,q.currentPacketLossRate=Le.B_evlr4/100,ce.uplinkNetworkQuality=Le.B_punq?Le.B_punq:0,ce.downlinkNetworkQuality=Le.B_pdnq?Le.B_pdnq:0),this.remoteStats.set(m,{audioStats:K,videoStats:q,videoPcStats:xe,networkStats:ce}),oe&&this.exceptionMonitor.setRemoteAudioStats(oe,K),le&&this.exceptionMonitor.setRemoteVideoStats(le,q)})}}class u_{constructor(){Ae(this,"destChannelMediaInfos",new Map),Ae(this,"srcChannelMediaInfo",void 0)}setSrcChannelInfo(A){gN(A),this.srcChannelMediaInfo=A}addDestChannelInfo(A){gN(A),this.destChannelMediaInfos.set(A.channelName,A)}removeDestChannelInfo(A){t_(A),this.destChannelMediaInfos.delete(A)}getSrcChannelMediaInfo(){return this.srcChannelMediaInfo}getDestChannelMediaInfo(){return this.destChannelMediaInfos}}function jy(a){if(!(a instanceof u_))return new ze(fe.INVALID_PARAMS,"Config should be instance of [ChannelMediaRelayConfiguration]").throw();let A=a.getSrcChannelMediaInfo(),l=a.getDestChannelMediaInfo();if(!A)return new ze(fe.INVALID_PARAMS,"srcChannelMediaInfo should not be empty").throw();if(l.size===0)return new ze(fe.INVALID_PARAMS,"destChannelMediaInfo should not be empty").throw()}class xg{get hasVideo(){return this._video_enabled_&&!this._video_muted_&&this._video_added_}get hasAudio(){return this._audio_enabled_&&!this._audio_muted_&&this._audio_added_}get audioTrack(){if(this.hasAudio||this._audio_pre_subscribed)return this._audioTrack}get videoTrack(){if(this.hasVideo||this._video_pre_subscribed)return this._videoTrack}get dataChannels(){return this._dataChannels}constructor(A,l){Ae(this,"uid",void 0),Ae(this,"_uintid",void 0),Ae(this,"_trust_in_room_",!0),Ae(this,"_trust_audio_enabled_state_",!0),Ae(this,"_trust_video_enabled_state_",!0),Ae(this,"_trust_audio_mute_state_",!0),Ae(this,"_trust_video_mute_state_",!0),Ae(this,"_audio_muted_",!1),Ae(this,"_video_muted_",!1),Ae(this,"_audio_enabled_",!0),Ae(this,"_video_enabled_",!0),Ae(this,"_audio_added_",!1),Ae(this,"_video_added_",!1),Ae(this,"_is_pre_created",!1),Ae(this,"_video_pre_subscribed",!1),Ae(this,"_audio_pre_subscribed",!1),Ae(this,"_trust_video_stream_added_state_",!0),Ae(this,"_trust_audio_stream_added_state_",!0),Ae(this,"_audioTrack",void 0),Ae(this,"_videoTrack",void 0),Ae(this,"_dataChannels",[]),Ae(this,"_audioSSRC",void 0),Ae(this,"_videoSSRC",void 0),Ae(this,"_audioOrtc",void 0),Ae(this,"_videoOrtc",void 0),Ae(this,"_cname",void 0),Ae(this,"_rtxSsrcId",void 0),Ae(this,"_videoMid",void 0),Ae(this,"_audioMid",void 0),this.uid=A,this._uintid=l}}function wN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Jy(a){for(var A=1;A`v=0 -o=- 0 0 IN IP4 127.0.0.1 -s=AgoraGateway -t=0 0 -a=group:BUNDLE 0 1 2 -a=msid-semantic: WMS -a=ice-lite`.concat(a?` -a=extmap-allow-mixed`:"",` -m=video 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:0 -m=audio 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:1 -m=application 9 UDP/DTLS/SCTP webrtc-datachannel -c=IN IP4 127.0.0.1 -a=mid:2 -`),g_="9",G2=2e4,i1=4e4,Jd=class{get localCapabilities(){return no(this._localCapabilities)}get rtpCapabilities(){return no(this._rtpCapabilities)}get candidates(){return no(this._candidates)}get iceParameters(){return no(this._iceParameters)}get dtlsParameters(){return no(this._dtlsParameters)}constructor(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=arguments.length>2&&arguments[2]!==void 0&&arguments[2],g=arguments.length>3&&arguments[3]!==void 0&&arguments[3];Ae(this,"sessionDesc",void 0),Ae(this,"_localCapabilities",void 0),Ae(this,"_rtpCapabilities",void 0),Ae(this,"_candidates",void 0),Ae(this,"_originCandidates",void 0),Ae(this,"_iceParameters",void 0),Ae(this,"_isUseExtmapAllowMixed",void 0),Ae(this,"_isUseLocalCodecs",void 0),Ae(this,"_isUseDataChannel",void 0),Ae(this,"_dtlsParameters",void 0),Ae(this,"setup",void 0),Ae(this,"currentMidIndex",void 0),Ae(this,"cname",void 0),Ae(this,"useLocalCodecsMids",[]),Ae(this,"preloadSsrcs",[]),Ae(this,"firefoxSsrcMidMap",new Map),this._isUseExtmapAllowMixed=A,this._isUseLocalCodecs=l,this._isUseDataChannel=g,a=no(a);let{iceParameters:C,dtlsParameters:m,candidates:y,rtpCapabilities:w,setup:b,localCapabilities:M,cname:k}=a;this._rtpCapabilities=w,this._candidates=y,this._originCandidates=no(y),this._iceParameters=C,this._dtlsParameters=m,this._localCapabilities=M,this.setup=b,this.cname=k,[this.sessionDesc]=this.updateRemoteRTPCapabilities(w),this.currentMidIndex=this.sessionDesc.mediaDescriptions.length-1}checkPreloadSsrcs(a){return a.length===this.preloadSsrcs.length&&a.every(A=>{var l;return Rt(l=this.preloadSsrcs).call(l,A)})}preloadRemoteMedia(a){let A=0,l=[],g=[];for(;a>0;){let C=[Jy({ssrcId:i1+A},Ie("USE_SUB_RTX")?{rtx:i1+A+1}:{})],m="".concat(i1+A,"_").concat(G2+A),{ssrcs:y,ssrcGroups:w}=U2(C,this.cname,Ie("SYNC_GROUP")?m:void 0),b=this.preCreateOrRecycleSendMedia("video",y,w,void 0),M=[{ssrcId:G2+A}],k="".concat(i1+A,"_").concat(G2+A),{ssrcs:V,ssrcGroups:K}=U2(M,this.cname,Ie("SYNC_GROUP")?k:void 0),q=this.preCreateOrRecycleSendMedia("audio",V,K,void 0);a--,A+=2,l.push(b,q),g.push(y[0].ssrcId,V[0].ssrcId)}return this.useLocalCodecsMids.push(...l),this.preloadSsrcs=g,{mids:l,preSSRCs:g,isAvailable:!0}}preCreateOrRecycleSendMedia(a,A,l,g){let C=this.rtpCapabilities.send.videoCodecs,m=this._isUseLocalCodecs||C.length===0?this.localCapabilities.recv:this.rtpCapabilities.send;X.debug("create or recycle send media without remote rtp capabilities, ssrcs ",A[0].ssrcId);let y=a===$t.VIDEO?m.videoCodecs:m.audioCodecs,w=a===$t.VIDEO?m.videoExtensions:m.audioExtensions;this.currentMidIndex+=1;let b="".concat(this.currentMidIndex),M={media:{mediaType:a,port:g_,protos:["UDP","TLS","RTP","SAVPF"],fmts:y.map(k=>k.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:w,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:l,rtcpFeedbackWildcards:[],payloads:y,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(b)}};return M=this.mungSendMediaDesc(M,g),this.sessionDesc.mediaDescriptions.push(M),this.updateBundleMids(),b}toString(){return ea(this.sessionDesc)}send(a,A,l,g){let{ssrcs:C,ssrcGroups:m}=U2(A,this.cname,Ie("SYNC_GROUP")?l:void 0),y=this.findPreloadMediaDesc(C);if(y){if(uo()&&this.firefoxSsrcMidMap.set(C[0].ssrcId,y.attributes.mid),g&&(g.twcc||g.remb)){let w=this.sessionDesc.mediaDescriptions.indexOf(y);return this.sessionDesc.mediaDescriptions[w]=this.mungSendMediaDesc(y,g),{mid:y.attributes.mid,needExchangeSDP:!0}}return{mid:y.attributes.mid,needExchangeSDP:!1}}{let w=this.findAvailableMediaIndex(a,C),b;return w===-1||w===1&&($s()||function(){let M=Wi();return!(M.name!==nn.CHROME||!M.osVersion)&&Number(M.version)<=90}()||Nd(143)||ol(143)||Ie("RESERVE_MID_1_MLINE")||Ie("ENABLE_ENCODED_TRANSFORM")&&Tg())||w===0&&!function(M){let k=Wi();return!(k.name!==nn.FIREFOX||!k.osVersion)&&Number(k.version)===M}(138)&&Ie("USE_SUB_RTX")||Bf()?(b=this.createOrRecycleSendMedia(a,C,m,"sendonly",g),this.updateBundleMids()):(b=no(this.sessionDesc.mediaDescriptions[w]),b.attributes.direction="sendonly",b.attributes.ssrcs=C,b.attributes.ssrcGroups=m,this.sessionDesc.mediaDescriptions[w]=this.mungSendMediaDesc(b,g)),uo()&&this.firefoxSsrcMidMap.set(C[0].ssrcId,b.attributes.mid),{mid:b.attributes.mid,needExchangeSDP:!0}}}sendDataChannel(){let{mediaDesc:a,needExchangeSDP:A}=this.createOrRecycleDataChannel();return this.updateBundleMids(),{mid:a.attributes.mid,needExchangeSDP:A}}batchSend(a){let A=a.map(C=>{let{kind:m,ssrcMsg:y,mslabel:w}=C;return this.send(m,y,w)}),l=[],g=!1;return A.forEach(C=>{let{mid:m,needExchangeSDP:y}=C;y&&(g=!0),l.push(m)}),{mids:l,needExchangeSDP:g}}stopSending(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>l.attributes.mid&&a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");A.forEach(l=>{l.attributes.mid==="0"||uo()||Bf()?l.attributes.ssrcs=[]:(l.attributes.ssrcs=[],l.attributes.direction="inactive",l.media.port="0")}),this.updateBundleMids()}mute(a){let A=this.sessionDesc.mediaDescriptions.find(l=>l.attributes.mid===a);if(!A)throw new Error("mediaDescription not found with ".concat(a," in remote SDP when calling RemoteSDP.mute."));A.attributes.direction="inactive"}unmute(a){let A=this.sessionDesc.mediaDescriptions.find(l=>l.attributes.mid===a);if(!A)throw new Error("mediaDescription not found with ".concat(a," in remote SDP when calling RemoteSDP.unmute."));A.attributes.direction="sendonly"}muteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="inactive"})}unmuteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="recvonly"})}receive(a,A,l,g){a.forEach((C,m)=>{this.createOrRecycleRecvMedia(C,[],"recvonly",A,l,g[m])}),this.updateBundleMids()}stopReceiving(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");A.forEach(l=>{l.media.port="0",l.attributes.direction="inactive"}),this.updateBundleMids()}updateRemoteRTPCapabilities(a){let A=this.sessionDesc||ki((l=this._isUseExtmapAllowMixed,this._isUseDataChannel?vN(l):`v=0 -o=- 0 0 IN IP4 127.0.0.1 -s=AgoraGateway -t=0 0 -a=group:BUNDLE 0 1 -a=msid-semantic: WMS -a=ice-lite`.concat(l?` -a=extmap-allow-mixed`:"",` -m=video 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:0 -m=audio 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:1 -`)));var l;this._rtpCapabilities=a;let g=!1,C=this.rtpCapabilities.send,m=this.localCapabilities.send,y=this.localCapabilities.recv,w=y.videoCodecs,b=y.audioCodecs,M=y.videoExtensions,k=y.audioExtensions;for(let ce of A.mediaDescriptions){var V;if(ce.attributes.direction!=="sendonly"||typeof ce.attributes.mid!="string"||!Rt(V=this.useLocalCodecsMids).call(V,ce.attributes.mid)){if(g=!0,ce.attributes.iceUfrag=this._iceParameters.iceUfrag,ce.attributes.icePwd=this._iceParameters.icePwd,ce.attributes.fingerprints=this._dtlsParameters.fingerprints,ce.attributes.candidates=this._candidates,ce.attributes.setup=this.setup,ce.media.mediaType==="application"&&(ce.attributes.sctpPort="5000"),ce.media.mediaType==="video")if(this._isUseLocalCodecs&&ce.attributes.direction==="sendonly"){var K;ce.media.fmts=w.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=w,ce.attributes.extmaps=M;let oe=ce.attributes.mid;typeof oe!="string"||Rt(K=this.useLocalCodecsMids).call(K,oe)||this.useLocalCodecsMids.push(oe)}else if(C.videoCodecs.length===0){let oe=m.videoCodecs.filter(le=>{var pe,Se;return(pe=le.rtpMap)===null||pe===void 0?void 0:Rt(Se=pe.encodingName.toLowerCase()).call(Se,"vp8")});oe.length===0&&oe.push(m.videoCodecs[0]),ce.media.fmts=oe.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=oe,ce.attributes.extmaps=[]}else ce.media.fmts=C.videoCodecs.map(oe=>oe.payloadType.toString(10)),ce.attributes.payloads=C.videoCodecs,ce.attributes.extmaps=C.videoExtensions;if(ce.media.mediaType==="audio")if(this._isUseLocalCodecs&&ce.attributes.direction==="sendonly"){var q;ce.media.fmts=b.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=b,ce.attributes.extmaps=k;let oe=ce.attributes.mid;typeof oe!="string"||Rt(q=this.useLocalCodecsMids).call(q,oe)||this.useLocalCodecsMids.push(oe)}else if(C.audioCodecs.length===0){let oe=m.audioCodecs.filter(le=>{var pe,Se;return(pe=le.rtpMap)===null||pe===void 0?void 0:Rt(Se=pe.encodingName.toLowerCase()).call(Se,"opus")})||[m.audioCodecs[0]];ce.media.fmts=oe.map(le=>le.payloadType.toString(10)),ce.attributes.payloads=oe,ce.attributes.extmaps=[]}else ce.media.fmts=C.audioCodecs.map(oe=>oe.payloadType.toString(10)),ce.attributes.payloads=C.audioCodecs,ce.attributes.extmaps=C.audioExtensions,No(ce)}}return this.sessionDesc=A,this.currentMidIndex=A.mediaDescriptions.length-1,[this.sessionDesc,g]}updateCandidates(a){let A=this._originCandidates.filter(g=>g.transport==="udp"),l=[];if(A.forEach(g=>{l.push(Jy(Jy({},g),{},{foundation:"tcpcandidate",priority:Number(g.priority)-1+"",transport:"tcp",port:Number(g.port)+90+""}))}),A.length!==0){switch(a){case Ls.TCP_RELAY:this._candidates=l;break;case Ls.UDP_TCP_RELAY:case Ls.RELAY:this._candidates=[...A,...l];break;default:this._candidates=A}for(let g of this.sessionDesc.mediaDescriptions)g.attributes.candidates=this.candidates}}restartICE(a){a=no(a),this._iceParameters=a,this.sessionDesc.mediaDescriptions.forEach(A=>{A.attributes.iceUfrag=a.iceUfrag,A.attributes.icePwd=a.icePwd})}predictReceivingMids(a){let A=[];for(let l=0;l{let g=l.media.mediaType===a&&l.media.port!=="0"&&(l.attributes.direction==="sendonly"||l.attributes.direction==="sendrecv")&&l.attributes.ssrcs.length===0;if(uo()){if(g){let C=this.firefoxSsrcMidMap.get(A[0].ssrcId);return!(C||l.attributes.mid!=="0"&&l.attributes.mid!=="1")||!(!C||C!==l.attributes.mid)}return!1}return g})}createOrRecycleDataChannel(){for(let l of this.sessionDesc.mediaDescriptions)if(l.media.mediaType==="application")return{mediaDesc:l,needExchangeSDP:!1};this.currentMidIndex+=1;let a="".concat(this.currentMidIndex),A={media:{mediaType:"application",port:g_,protos:["UDP","DTLS","SCTP"],fmts:["webrtc-datachannel"]},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:[],fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[],rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,mid:"".concat(a),sctpPort:"5000"}};return this.sessionDesc.mediaDescriptions.push(A),{mediaDesc:A,needExchangeSDP:!0}}createOrRecycleRecvMedia(a,A,l,g,C,m){let y=a._mediaStreamTrack.kind,w=this.rtpCapabilities.recv,b=_h(y,w,this.localCapabilities.send,y===$t.VIDEO?g:C),M=y===$t.VIDEO?w.videoExtensions:w.audioExtensions;this.currentMidIndex+=1;let k="".concat(this.currentMidIndex),V={media:{mediaType:y,port:g_,protos:["UDP","TLS","RTP","SAVPF"],fmts:b.map(q=>q.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:M,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:b,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:l,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(k)}};V=this.mungRecvMediaDsec(V,a,m);let K=this.findFirstClosedMedia(y);if(K){let q=this.sessionDesc.mediaDescriptions.indexOf(K);this.sessionDesc.mediaDescriptions[q]=V}else this.sessionDesc.mediaDescriptions.push(V);return V}updateRemoteDtlsParameters(a){let A=new Set(this._dtlsParameters.fingerprints.map(C=>C.fingerprint)),l=new Set(a.map(C=>C.fingerprint)),g=!1;A.size!==l.size&&(g=!0);for(let C of A)l.has(C)||(g=!0);return g}updateRemoteCodec(a,A,l){let g=[...new Set(this._rtpCapabilities.recv.videoCodecs.map(V=>V.rtpMap&&V.rtpMap.encodingName.toLowerCase()||"").filter(V=>{var K;return Rt(K=Object.keys(Ss)).call(K,V)}))],C=new Set(A);if(g.every(V=>C.has(V)))return X.debug("codecs has not changed, no need to updateRemoteCodec, codecs: ".concat(A)),!1;let m=this._rtpCapabilities.recv.videoCodecs.filter(V=>A.some(K=>{var q;return Rt(q=V.rtpMap&&V.rtpMap.encodingName.toLowerCase()||"").call(q,K)}));if(m.length===0)return X.debug("updateRemoteCodec failed, because cannot find matched codec, remoteCapabilities codecs: ".concat(g," codecs: ").concat(A)),!1;let y=[...new Set(m.map(V=>V.rtpMap&&V.rtpMap.encodingName.toLowerCase()||""))],w;if(X.debug("updateRemoteCodec, from ".concat(g," to ").concat(y)),a.length===0)w=this.sessionDesc.mediaDescriptions.filter(V=>V.media.mediaType==="video"&&V.attributes.direction==="recvonly");else if(w=this.sessionDesc.mediaDescriptions.filter(V=>V.attributes.mid&&V.media.mediaType==="video"&&Rt(a).call(a,V.attributes.mid)&&V.attributes.direction==="recvonly"),w.length!==a.length)return X.debug("updateRemoteCodec failed, because cannot find mids, mids: ".concat(a,", codecs: ").concat(A)),!1;if(Ie("USE_PUB_RTX")||Ie("USE_SUB_RTX")){let V=jo(m,this.rtpCapabilities.recv.videoCodecs);m.push(...V)}this._rtpCapabilities.recv.videoCodecs=m;let b=this.localCapabilities.send,M=this.rtpCapabilities.recv,k=_h($t.VIDEO,M,b,l);return w.forEach(V=>{let K=k.map(q=>q.payloadType.toString(10));X.debug("updateRemoteCodec mid: ".concat(V.attributes.mid,", from"),V.attributes.payloads,"to",k),V.attributes.payloads=k,V.media.fmts=K}),X.debug("updateRemoteCodec success, mids: ".concat(a,", codecs: ").concat(A,", remote recv: ").concat(this._rtpCapabilities.recv.videoCodecs.length,", remote send: ").concat(this._rtpCapabilities.send.videoCodecs.length)),!0}createOrRecycleSendMedia(a,A,l,g,C){let m=this.rtpCapabilities.send.videoCodecs,y=this._isUseLocalCodecs||m.length===0?this.localCapabilities.recv:this.rtpCapabilities.send,w=a===$t.VIDEO?y.videoCodecs:y.audioCodecs,b=a===$t.VIDEO?y.videoExtensions:y.audioExtensions;this.currentMidIndex+=1;let M="".concat(this.currentMidIndex),k={media:{mediaType:a,port:g_,protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(K=>K.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:b,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:l,rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:g,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(M)}};k=this.mungSendMediaDesc(k,C);let V=this.findFirstClosedMedia(a);if(V){let K=this.sessionDesc.mediaDescriptions.indexOf(V);this.sessionDesc.mediaDescriptions[K]=k}else this.sessionDesc.mediaDescriptions.push(k);return k}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(a=>a.media.port!=="0").map(a=>a.attributes.mid)}mungRecvMediaDsec(a,A,l){let g=no(a);return fN(g),kg(g,A),Pu(g,A),xy(g),ds(g,l,this.localCapabilities.send),g}mungSendMediaDesc(a,A){let l=no(a);return l.attributes&&l.attributes.payloads&&Array.isArray(l.attributes.payloads)&&l.attributes.payloads.length>0&&l.attributes.payloads.forEach(g=>{g.rtpMap&&g.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&Ie("ENABLE_DOWN_SPS_PPS")&&(g.fmtp&&g.fmtp.parameters||(g.fmtp={parameters:{}}),g.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),ds(l,A,this.localCapabilities.recv),No(l),l}updateRecvMedia(a,A){let l=this.sessionDesc.mediaDescriptions.findIndex(g=>g.attributes.mid===a);if(l!==-1){let g=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[l],A);this.sessionDesc.mediaDescriptions[l]=g}}bumpMid(a){this.currentMidIndex+=a}findFirstClosedMedia(a){return this.sessionDesc.mediaDescriptions.find(A=>uo()?A.media.port==="0"&&A.media.mediaType===a:A.media.port==="0")}findPreloadMediaDesc(a){return this.sessionDesc.mediaDescriptions.find(A=>{var l;return((l=A.attributes)===null||l===void 0||(l=l.ssrcs[0])===null||l===void 0?void 0:l.ssrcId)===a[0].ssrcId})}getSSRC(a){var A;return(A=this.sessionDesc.mediaDescriptions.find(l=>l.attributes.mid===a))===null||A===void 0?void 0:A.attributes.ssrcs}};function DN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function xu(a){for(var A=1;A=A.length-1&&g===H2.DOWN)return a;let m=xu(xu({},a),{},{scale:g===H2.DOWN?++C:--C});switch(l){case"maintain-framerate":m=xu(xu({},m),A[C].motion);break;case"maintain-resolution":m=xu(xu({},m),A[C].detail);break;case"balanced":m=xu(xu({},m),A[C].balanced)}return m}function qy(a,A){if(A){let l={overUse:0,underUse:0,adaptationList:NN(A)};E_.set(a,l)}else E_.delete(a)}function NN(a){let A=xu({},a),{bitrateMax:l,frameRate:g,scaleResolutionDownBy:C,bitrateMin:m}=A,{MIN_FRAME_RATE:y,MAX_THRESHOLD_FRAMERATE:w,MAX_SCALE:b,BITRATE_MIN_THRESHOLD:M,BITRATE_MAX_THRESHOLD:k,BWE_SCALE_UP_THRESHOLD:V,BWE_SCALE_DOWN_THRESHOLD:K,PERF_SCALE_DOWN_THRESHOLD:q,PERF_SCALE_UP_THRESHOLD:ce,BALANCE_BITRATE_FACTOR:oe,BALANCE_FRAMERATE_FACTOR:le,BALANCE_RESOLUTION_FACTOR:pe,MOTION_RESOLUTION_FACTOR:Se,MOTION_BITRATE_FACTOR:be,DETAIL_FRAMERATE_FACTOR:Ue,DETAIL_BITRATE_FACTOR:xe}=kR,Le=Math.min(A.frameRate,w),je=[{scale:0,threshold:{bwe_down:Math.round(Math.pow(K,1)*l),bwe_up:l,fps_down:Math.round(Math.pow(q,1)*Le),fps_up:g},balanced:{scaleResolutionDownBy:1,frameRate:g,bitrateMax:l,bitrateMin:m},motion:{scaleResolutionDownBy:1,frameRate:g,bitrateMax:l,bitrateMin:m},detail:{scaleResolutionDownBy:1,frameRate:g,bitrateMax:l,bitrateMin:m}}];for(let dt=1;dt<=b;dt++){let pt={bwe_up:Math.round(Math.pow(V,dt)*l),bwe_down:Math.round(Math.pow(K,dt+1)*l),fps_up:Math.round(Math.pow(ce,dt)*Le),fps_down:Math.round(Math.pow(q,dt+1)*Le)},zt={scaleResolutionDownBy:C/Math.pow(pe,dt),frameRate:Math.max(Math.round(Math.pow(le,dt)*g),y),bitrateMax:Math.max(Math.round(Math.pow(oe,dt)*l),k),bitrateMin:Math.max(Math.round(Math.pow(oe,dt)*m),M)},gr={scaleResolutionDownBy:C/Math.pow(Se,dt),frameRate:g,bitrateMax:Math.max(Math.round(Math.pow(be,dt)*l),k),bitrateMin:Math.max(Math.round(Math.pow(be,dt)*m),M)},li={scaleResolutionDownBy:1,frameRate:Math.max(Math.round(Math.pow(Ue,dt)*g),y),bitrateMax:Math.max(Math.round(Math.pow(xe,dt)*l),k),bitrateMin:Math.max(Math.round(Math.pow(xe,dt)*m),M)};je.push({scale:dt,threshold:pt,balanced:zt,motion:gr,detail:li})}return je}function ON(a,A,l,g,C,m){let y=E_.get(a)||{overUse:0,underUse:0,adaptationList:NN(C)},{adaptationList:w}=y;E_.set(a,y);let{OVERUSE_TIMES_THRESHOLD:b,UNDERUSE_TIMES_THRESHOLD:M}=kR,{scale:k}=g,V,K;return typeof A=="number"&&A>0&&function(q,ce,oe,le){if(ce>=oe.length)return!1;let{threshold:{fps_down:pe}}=oe[ce];return Ie("FORCE_AG_HIGH_FRAMERATE")&&le==="maintain-framerate"&&(pe=oe[0].threshold.fps_down),qb)||typeof l=="number"&&l>0&&function(q,ce,oe){if(ce>=oe.length)return!1;let{threshold:{bwe_down:le}}=oe[ce];return qb)?(y.overUse=0,y.underUse=0,V=bN(g,w,m,H2.DOWN),[V,K]):(typeof A=="number"&&A>0&&typeof l=="number"&&l>0&&function(q,ce,oe,le){if(ce===0)return;let{threshold:{fps_up:pe}}=oe[ce];return Ie("FORCE_AG_HIGH_FRAMERATE")&&le==="maintain-framerate"&&(pe=oe[1].threshold.fps_up),q>pe}(A,k,w,m)&&function(q,ce,oe){if(ce===0)return;let{threshold:{bwe_up:le}}=oe[ce];return q>le}(l,k,w)&&(y.underUse++,y.underUse>M&&(y.overUse=0,y.underUse=0,V=bN(g,w,m,H2.UP),V.scale===0&&(K=j1.NONE))),[V,K])}function LN(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function Wy(a){for(var A=1;A{let M=h_.get(a);if(!Ie("ENABLE_AG_ADAPTATION")||!M)return XC(a,l),void C(A);let k=m();if(k.sendPackets>0&&k.OutgoingAvailableBandwidth>0){if(y===-1)return void(y=Date.now());if(Date.now()-y<1e3)return;let V=k.sendFrameRate,K=k.OutgoingAvailableBandwidth,[q,ce]=ON(a,V,K,M.adaptationConfig,A,g);ce&&(l.qualityLimitationReason=ce),q&&M.adaptationConfig.scale!==q.scale&&(X.debug("[".concat(a,"] applyAdaptation: ").concat(l.qualityLimitationReason,` - sendFps `).concat(V,", bwe ").concat(K,", switch from ").concat(M.adaptationConfig.scale," to ").concat(q.scale," ")),M.adaptationConfig=Wy(Wy({},M.adaptationConfig),q),C(q))}},Ie("CHECK_LOCAL_STATS_INTERVAL")),b=Wy({},A);h_.set(a,{timer:w,adaptationConfig:b,originConfig:A,adaptationFunc:C}),X.debug("[".concat(a,"] start adaptation, originConfig: ").concat(JSON.stringify(A),", degradationPreference: ").concat(g))}function XC(a,A){let l=h_.get(a);if(l){let{timer:g}=l;window.clearTimeout(g),h_.delete(a)}A.qualityLimitationReason=j1.NONE,qy(a)}function $J(a,A){var l;let g;switch(A){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=a._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return g}function kN(a){let A=Bi();if(a.some(l=>l._bypassWebAudio))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");if(!A.webAudioMediaStreamDest)throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks because your browser does not support audio mixing")}function j2(a,A){kN(a);let l=new Os;return a.forEach(g=>l.addAudioTrack(g)),l}let I_=!Bi().supportUnifiedPlan||Ie("CHROME_FORCE_PLAN_B")&&Od();function C_(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(a.useDcSignal)return l={spec:A,store:a},td("DataChannelConnection").create(l);var l;return I_?function(g){return td("PlanBConnection").create(g)}({spec:A,store:a}):new Gc(A,a)}function nA(a){return a&&(a.iceConnectionState==="disconnected"||a.iceConnectionState==="checking"||a.iceConnectionState==="failed")}function Fg(a){try{if(a.iceServers)return!1;if(a.turnServer&&a.turnServer.mode!=="off"){if(eh(a.turnServer.servers))return!1;if(Ie("FORCE_TURN_TCP")||a.turnServer.servers.concat(a.turnServer.serversFromGateway||[]).some(A=>A.forceturn))return!0}return!1}catch{return!1}}var fr;function I7(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function _l(a){for(var A=1;AA.rtpMap&&A.rtpMap.encodingName.toLowerCase()||"").filter(A=>{var l;return Rt(l=Object.keys(Ss)).call(l,A)}))]}constructor(A,l){super(A,l),Ae(this,"id",yn(5,"connection-")),Ae(this,"store",void 0),Ae(this,"peerConnection",void 0),Ae(this,"forceTurn",!1),Ae(this,"remoteSDP",void 0),Ae(this,"initialOffer",void 0),Ae(this,"transportEventReceiver",void 0),Ae(this,"statsFilter",void 0),Ae(this,"extension",{useXR:Ie("USE_XR")}),Ae(this,"localCapabilities",void 0),Ae(this,"remoteCodecs",void 0),Ae(this,"localCandidateCount",0),Ae(this,"allCandidatesReceived",!1),Ae(this,"isPreallocation",!1),Ae(this,"isPreRender",!1),Ae(this,"preMediaMap",new Map),Ae(this,"dataStreamChannelMap",new Map),Ae(this,"establishPromise",void 0),Ae(this,"recoveredDataChannelIds",[]),Ae(this,"currentDataChannelId",1),Ae(this,"supportAV1RtpSpec",!1),Ae(this,"mutex",void 0),Ae(this,"qualityLimitationReason",j1.NONE),Ae(this,"isFirstConnected",!1),this.store=l,this.forceTurn=Fg(A),this.mutex=new Is("P2PConnection-mutex",l.clientId),this.peerConnection=new RTCPeerConnection(pm.resolvePCConfiguration(A),{optional:[{googDscp:!0}]}),this.isFirstConnected=!1,this.statsFilter=MC(this.peerConnection,Ie("STATS_UPDATE_INTERVAL"),void 0,uo()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,A.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(A){return this.preMediaMap.get(A)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(A,l){if(this.remoteCodecs=l,!this.remoteSDP)return void X.debug("[P2PConnection] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(l));if(this.remoteSDP.updateRemoteCodec(A,l,this.store.codec)){let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}else X.debug("[P2PConnection] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});let l=await this.peerConnection.createOffer();if(!l.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let g=fl(l.sdp),C=await Kd({filterRTX:!Ie("USE_PUB_RTX")&&!Ie("USE_SUB_RTX"),filterVideoFec:Ie("FILTER_VIDEO_FEC"),filterAudioFec:Ie("FILTER_AUDIO_FEC"),filterVideoCodec:Ie("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:Ie("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:Ie("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=En(C),this.initialOffer=l,Ie("ENABLE_SVC")&&this.store.codec=="av1"){let y=await OA();var A;y&&(this.supportAV1RtpSpec=!0,(A=C.send)===null||A===void 0||A.videoExtensions.push(y))}let m;return l.sdp&&xc(l.sdp)&&(m=no(C),gA(m)),_l(_l({},g),{},{rtpCapabilities:m||C,offerSDP:l.sdp})}catch(l){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,l.toString())}}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.initialOffer.sdp&&xc(this.initialOffer.sdp)&&Br(A.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Jd(_l(_l({},A),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!Ie("ENABLE_PRE_SUB_WITH_PRE_PC")||!Ie("PRE_USE_LOCAL_CODECS"))&&So(this.store)),A.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);let l=this.remoteSDP.toString(),g=Gy(this.initialOffer.sdp,this.extension),C=this.logSDPExchange(g||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:g}),C==null||C(l),await this.peerConnection.setRemoteDescription({type:"answer",sdp:l});let m=this.peerConnection.getTransceivers()[0];if(m!=null&&m.receiver&&this.tryBindTransportEvents(m.receiver),So(this.store))if(A.preallocation&&Ie("ENABLE_PRE_SUB_WITH_PRE_PC")){let y=Ie("PRE_SUB_NUM"),{mids:w,preSSRCs:b}=this.remoteSDP.preloadRemoteMedia(y);await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media, in pre pc,add preload ssrcs ").concat(b)),this.presetMedia(w,b)}else{let{preSSRCs:y=[]}=A,w=y.map(M=>M.ssrcMsg[0].ssrcId);if(y.length===0)return;let{mids:b}=this.remoteSDP.batchSend(y.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[P2PConnection.connect] preload media, after join, add preload ssrcs ".concat(w)),this.presetMedia(b,w)}}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(l.toString()))}}presetMedia(A,l){A.forEach((g,C)=>{this.peerConnection.getTransceivers().forEach(m=>{if(m.mid!=null&&g===m.mid&&m.receiver.track){let y=m.receiver.track,w;y.kind==="video"&&Ie("ENABLE_PRE_RENDER")&&(w=new zA({trackId:"track-".concat(y.kind,"-unknown-").concat(this.store.clientId,"_").concat(yn(5,""))},!0),w.updateVideoTrack(y),w.onFirstVideoFrameRender=()=>{var b;let M=this.preMediaMap.get(l[C]);M&&(M.firstVideoRender=Date.now()),(b=this.onFirstVideoRender)===null||b===void 0||b.call(this,l[C])},w.onVideoBufferReady=()=>{var b;(b=this.onFirstVideoBufferReady)===null||b===void 0||b.call(this,l[C])},w.play(this.store.sessionId||void 0),this.isPreRender=!0),this.preMediaMap.set(l[C],{mid:g,track:y,player:w,transceiver:m})}}),this.store.peerReceiver()})}checkDtlsParameters(A){return!!this.remoteSDP&&A.length>0&&this.remoteSDP.updateRemoteDtlsParameters(A)}async updateRemoteConnect(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateRemoteConnect before remote SDP created");let l=!1,{rtpCapabilities:g}=A;if([,l]=this.remoteSDP.updateRemoteRTPCapabilities(g),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){let y=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);l=l||y}let{preSSRCs:C=[]}=A,m=C.map(y=>y.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(m)){let y=[],w=[];if(Array.from(this.preMediaMap.entries()).every(b=>{let[M,{mid:k,player:V,track:K}]=b;return y.push(k),w.push(M),this.preMediaMap.delete(M),V&&V.destroy(),!0}),y.length>0&&(this.remoteSDP.stopSending(y),await gi(this.peerConnection,this.remoteSDP,this.extension),X.warn("[P2PConnection.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(w)),tr.reportApiInvoke(this.store.sessionId,{name:Co.PRELOAD_MEDIA_FAILED,options:[C,w],tag:Gn.TRACER}).onSuccess()),C.length>0){let{mids:b}=this.remoteSDP.batchSend(C.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[P2PConnection.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(m)),this.presetMedia(b,m)}}l?(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[P2PConnection] updateRemoteConnect by exchanging SDP.")):X.debug("[P2PConnection] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.updateRemoteConnect failed; ".concat(l.toString()))}}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From P2PConnection.send"));try{if(!C.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let y=[],w=k2();A.forEach(le=>{let pe=C.peerConnection.addTransceiver(le._mediaStreamTrack,_l({direction:"sendonly"},le.trackMediaType==="video"&&C.supportAV1RtpSpec&&w?{sendEncodings:[{scalabilityMode:w}]}:{}));y.push(pe),le._updateRtpTransceiver(pe)}),uo()&&Ie("SIMULCAST")===!0&&(yield ri(C.applySimulcastForFirefox(y,A)));let b=yield ri(C.peerConnection.createOffer()),M=C.remoteSDP.predictReceivingMids(A.length),k=C.mungSendOfferSDP(b.sdp,A,M),V=ki(k),K=M.map(le=>{let pe=V.mediaDescriptions.find(Se=>Se.attributes.mid===le);if(!pe)throw new Error("Cannot extract ssrc from mediaDescription.");return P2(pe,Ie("USE_PUB_RTX"))}),q;try{q=yield K}catch(le){q=[],C.remoteSDP.receive(A,l,g,q);let pe=C.remoteSDP.toString();throw yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:pe})),yield ri(C.stopSending(M,!0)),le}C.remoteSDP.receive(A,l,g,q);let ce=C.remoteSDP.toString(),oe=C.logSDPExchange(k,"offer","local","send");return yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.applySimulcastEncodings(y,A)),yield ri(C.applySendEncodings(y,A)),oe==null||oe(ce),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:ce})),y.map((le,pe)=>{let Se=M[pe];return{localSSRC:K[pe],id:Se,transceiver:le}})}catch(y){throw y instanceof nt?y:new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(y.toString()))}finally{m()}})()}async createDataChannels(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.createDataChannels before remote SDP created");let g=this.dataStreamChannelMap.get(A);if(g&&g.readyState==="open")X.debug("[P2PConnection] Channels are already available and can be reused directly.");else{let m=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof m!="number")throw new Error("create DataChannel error, because cannot get dc id");g=this.peerConnection.createDataChannel("datastream-channel",{id:m,negotiated:!0,ordered:!1,maxRetransmits:Ie("DATASTREAM_MAX_RETRANSMITS")}),g.binaryType="arraybuffer",this.dataStreamChannelMap.set(A,g)}l.forEach(m=>{m._updateOriginDataChannel(g)});let{needExchangeSDP:C}=this.remoteSDP.sendDataChannel();if(C){let m=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:m});let y=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(y),X.debug("[P2PConnection] createDataChannels by exchanging SDP.")}else X.debug("[P2PConnection] createDataChannels no need to exchange SDP.");return}catch(g){throw g instanceof nt?g:new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.createDataChannels failed; ".concat(g.toString()))}}async stopDataChannels(A){try{let l=this.dataStreamChannelMap.get(A);return l&&(l.id&&this.recoveredDataChannelIds.push(l.id),l.close()),void this.dataStreamChannelMap.delete(A)}catch(l){throw l instanceof nt?l:new nt(fe.DATACHANNEL_FAILED,"P2PConnection.stopDataChannels failed; ".concat(l.toString()))}}async stopSending(A,l){let g=l?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let C=this.peerConnection.getTransceivers().filter(b=>A.indexOf(b.mid)!==-1);if(C.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");C.map(b=>{var M;XC(this.id+b.mid,this),b.direction="inactive",(M=b.stop)===null||M===void 0||M.call(b)});let m=await this.peerConnection.createOffer(),y=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(A);let w=this.remoteSDP.toString();y==null||y(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(C){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(C.toString()))}finally{g&&g()}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);y&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," by exchanging SDP.")));let w=this.peerConnection.getTransceivers().find(b=>b.mid===m);if(!w)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,id:m,transceiver:w}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async batchReceive(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");let{mids:l,needExchangeSDP:g}=this.remoteSDP.batchSend(A);return g&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [P2PConnection] batchReceive by exchanging SDP."))),l.map(C=>{let m=this.peerConnection.getTransceivers().find(y=>y.mid===C);if(!m)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:m.receiver.track,id:C,transceiver:m}})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(l.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");A.forEach(m=>{Array.from(this.preMediaMap.entries()).some(y=>{let[w,{mid:b,player:M}]=y;if(b===m)return this.preMediaMap.delete(w),M&&M.destroy(),!0})}),this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}async muteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.mute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteRemote failed; ".concat(l.toString()))}}async unmuteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.unmute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteRemote failed; ".concat(l.toString()))}}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(y=>{y.direction="inactive"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.muteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(async(y,w)=>{y.direction="sendonly"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.unmuteRemote(A),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(A,this.remoteCodecs,this.store.codec);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(l.toString()))}}restartICE(A){var l=this;return wA(function*(){let g=yield ri(l.mutex.lock("From P2PConnection.restartICE"));try{if(!l.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");let C=Bi().supportPCSetConfiguration,m=Ie("FORCE_TURN_TCP")||l.forceTurn;if(A===Ls.RELAY&&!C)return;if(C&&!m){let V=A===Ls.RELAY?"relay":"all",K=l.peerConnection.getConfiguration();K.iceTransportPolicy!==V&&(X.debug("[".concat(l.store.clientId,"] restartICE change iceTransportPolicy from [").concat(K.iceTransportPolicy,"] to [").concat(V,"]")),K.iceTransportPolicy=V,l.peerConnection.setConfiguration(K))}l.remoteSDP.updateCandidates(A);let y=yield ri(l.peerConnection.createOffer({iceRestart:!0}));if(!y.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let w=fl(y.sdp),{remoteIceParameters:b}=yield w.iceParameters;l.remoteSDP.restartICE(b);let M=l.remoteSDP.toString(),k=l.logSDPExchange(y.sdp||"","offer","local","restartICE");l.store.descriptionStart(),yield ri(l.peerConnection.setLocalDescription(y)),k==null||k(M),yield ri(l.peerConnection.setRemoteDescription({type:"answer",sdp:M}))}catch(C){X.warning("[".concat(l.store.clientId,"] restart ICE failed, abort operation"),C)}finally{g()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;let A=await this.mutex.lock("From P2PConnection.extendCandidate");try{this.remoteSDP.updateCandidates(Ls.TCP_RELAY),await gi(this.peerConnection,this.remoteSDP,this.extension)}catch(l){X.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),l)}finally{A()}}close(){var A;this.peerConnection.getTransceivers().forEach(l=>{XC(this.id+l.mid,this)}),this.preMediaMap.forEach(l=>{let{player:g}=l;g&&g.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return _l(_l({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l],[A]);this.remoteSDP.updateRecvMedia(A,l);let m=this.remoteSDP.toString(),y=this.logSDPExchange(C,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),y==null||y(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getTransceivers().filter(C=>C.mid===A);g.length===1&&(this.isVP8Simulcast(l)?uo()||await this.applySimulcastEncodings(g,[l]):await this.applySendEncodings(g,[l]))}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getTransceivers().find(C=>C.mid===l);g&&await g.sender.replaceTrack(A._mediaStreamTrack)}async getSelectedCandidatePair(){let A=this.peerConnection.getReceivers();if(A.length>0&&A[0].transport&&A[0].transport.iceTransport&&A[0].transport.iceTransport.getSelectedCandidatePair&&A[0].transport.iceTransport.getSelectedCandidatePair()){let l=A[0].transport.iceTransport,{local:g,remote:C}=l.getSelectedCandidatePair();return{local:_l(_l({},cl),{},{candidateType:g.type,protocol:g.protocol,address:g.address,port:g.port}),remote:_l(_l({},cl),{},{candidateType:C.type,protocol:C.protocol,address:C.address,port:C.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A;(A=this.onICEConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=A=>{if(A&&(A.errorCode||A.errorText)){var l;let g="code: ".concat(A.errorCode,", message: ").concat(A.errorText),C=A.port?"local: ".concat(A.port):"",m=Pt(A.url||"");X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICECandidateError(").concat(g,"), url: ").concat(m||"",", host_candidate:").concat(C)),(l=this.onICECandidateError)===null||l===void 0||l.call(this,g)}},this.peerConnection.onicegatheringstatechange=A=>{A&&A.target&&"iceGatheringState"in A.target&&X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(A.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=A=>{A.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},Ie("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A){let l={iceServers:[]},g=A.cloudProxyServer||"disabled";return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:Ie("NEW_TURN_MODE")&&l.iceServers&&g==="disabled"?(Ie("USE_TURN_SERVER_OF_GATEWAY")?A.turnServer.serversFromGateway&&l.iceServers.push(...pm.newTurnServerConfigToIceServers(A.turnServer.serversFromGateway)):l.iceServers.push(...pm.newTurnServerConfigToIceServers(A.turnServer.servers)),Ie("NEW_FORCE_TURN")&&(l.iceTransportPolicy="relay")):A.turnServer.mode!=="off"&&(l.iceServers&&l.iceServers.push(...pm.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...pm.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),Ie("FORCE_TURN_TCP")?l.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(C=>{C.forceturn&&(l.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(l.encodedInsertableStreams=!0),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&!Ie("FORCE_TURN_TCP")&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}static newTurnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{let C=Ie("NEW_TURN_MODE");C===1?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}):C===2?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}):C===3?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}):C===4&&(l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}))}),l}tryBindTransportEvents(A){let l=A.transport;if(l){this.transportEventReceiver=A,l.onstatechange=()=>{var C;l!=null&&l.state&&((C=this.onDTLSTransportStateChange)===null||C===void 0||C.call(this,l.state))},l.onerror=C=>{var m;(m=this.onDTLSTransportError)===null||m===void 0||m.call(this,"error"in C?C.error:C)};let g=l.iceTransport;g&&(g.onstatechange=()=>{let C=l==null?void 0:l.iceTransport.state;var m;C&&((m=this.onICETransportStateChange)===null||m===void 0||m.call(this,C))},g.getSelectedCandidatePair&&(g.onselectedcandidatepairchange=()=>{if(g.getSelectedCandidatePair()){let{local:C,remote:m}=g.getSelectedCandidatePair()||{};if(C&&m){let y=C.address+":"+C.port,w=m.address+":"+m.port;X.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Pt(y)),", remote ").concat(JSON.stringify(Pt(w))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(A,l){var g,C;if(l||(l=this.peerConnection.getSenders().find(oe=>oe.track===A._mediaStreamTrack)),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(A))return X.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Bi().supportSetRtpSenderParameters)return X.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let m={},y={};switch(A._optimizationMode){case"motion":m.degradationPreference="maintain-framerate";break;case"detail":m.degradationPreference="maintain-resolution";break;case"balanced":m.degradationPreference="balanced"}let w=a_(this.peerConnection,A._mediaStreamTrack),b=xf(A);if(MN(A)&&w&&l&&b&&this.getLocalVideoStats&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)){var M;let oe=m.degradationPreference||(Rt(M=A._hints).call(M,$i.CUSTOM_TRACK)?Ie("CUSTOM_ADAPTATION_DEFAULT_MODE"):"maintain-framerate");h7(this.id+w.mid,b,this,oe,le=>{l&&this.updateAdaptation(l,le)},this.getLocalVideoStats.bind(this))}if(A._encoderConfig){var k;let{bitrateMax:oe,frameRate:le,scaleResolutionDownBy:pe}=A._encoderConfig;oe&&(y.maxBitrate=1e3*oe),(Rt(k=A._hints).call(k,$i.LOW_STREAM)||A.isUseScaleResolutionDownBy)&&(le&&(y.maxFramerate=ZA(le)),pe&&pe>=1&&(y.scaleResolutionDownBy=pe))}let{maxFramerate:V}=Ie("ENCODER_CONFIG_LIMIT");if(V&&typeof V=="number"&&(y.maxFramerate=y.maxFramerate?Math.min(y.maxFramerate,V):V),Ie("DSCP_TYPE")&&Od()){var K;let oe=Ie("DSCP_TYPE");Rt(K=["very-low","low","medium","high"]).call(K,oe)&&(y.networkPriority=oe)}let q=l.getParameters(),ce=(C=q.encodings)===null||C===void 0?void 0:C[0];uo()&&!ce&&(m.encodings=[y]),ce&&Object.assign(ce,y),Object.assign(q,m),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(q.encodings))),await l.setParameters(q),await A_(this.store.codec,l,Ie("SVC_MODE"))}async updateAdaptation(A,l){var g,C;if(!A)return X.debug("[updateAdaptation] no rtpSender found");if(!Bi().supportSetRtpSenderParameters)return X.debug("[updateAdaptation] Browser not support set rtp-sender parameters");let m={},{bitrateMax:y,frameRate:w,scaleResolutionDownBy:b}=l;y&&(m.maxBitrate=1e3*y),w&&(m.maxFramerate=ZA(w)),b&&b>=1&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)&&(m.scaleResolutionDownBy=b);let M=A.getParameters(),k=(C=M.encodings)===null||C===void 0?void 0:C[0];k&&Object.assign(k,m),Object.assign(M,{});try{await A.setParameters(M),X.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify(M.encodings)))}catch(V){!("transport"in A)||A.transport&&A.transport.state==="connected"?this.peerConnectionState!=="connected"?X.debug("[updateAdaptation] peerConnection not connected}"):X.debug("[updateAdaptation] updateRtpSenderEncodings failed",V):X.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let w=g[y],b=C.mediaDescriptions.find(M=>M.attributes.mid===w);b&&(kg(b,m),Fy(b,m,this.store.codec))}),ea(C)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onFirstVideoDecodedTimeout=A=>{var l;(l=this.onFirstVideoDecodedTimeout)===null||l===void 0||l.call(this,A)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(A,l){if(A.length===l.length)for(let b=0;b200&&(y=k._scalabilityMode)!==null&&y!==void 0&&y.numSpatialLayers&&((w=k._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let V={},K={high:1e3*(k._encoderConfig.bitrateMax-50),medium:5e4};V.encodings=[{rid:"m",active:!0,maxBitrate:K.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:K.high}];let q=M.sender.getParameters();await M.sender.setParameters(Object.assign(q,V))}}}async applySimulcastEncodings(A,l){if(!uo()&&A.length===l.length)for(let g=0;g200&&(m=A._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((y=A._scalabilityMode)===null||y===void 0?void 0:y.numSpatialLayers)>1)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("[".concat(this.store.clientId,"] exchanging ").concat(g," ").concat(l," SDP during P2PConnection.").concat(C,` -`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}async getRemoteSSRC(A){if(!this.remoteSDP)return;let l=this.remoteSDP.getSSRC(A);return l&&l.length!==0?l[0].ssrcId:void 0}setConfiguration(A){if(Bi().supportPCSetConfiguration){let l=pm.resolvePCConfiguration(A);this.peerConnection.setConfiguration(l)}A.isPreallocation&&(this.isPreallocation=!0)}},Vt(fr.prototype,"updateRemoteRTPCapabilities",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateRemoteRTPCapabilities"),fr.prototype),Vt(fr.prototype,"connect",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"connect"),fr.prototype),Vt(fr.prototype,"updateRemoteConnect",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateRemoteConnect"),fr.prototype),Vt(fr.prototype,"createDataChannels",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"createDataChannels"),fr.prototype),Vt(fr.prototype,"receive",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"receive"),fr.prototype),Vt(fr.prototype,"batchReceive",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"batchReceive"),fr.prototype),Vt(fr.prototype,"stopReceiving",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"stopReceiving"),fr.prototype),Vt(fr.prototype,"muteRemote",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"muteRemote"),fr.prototype),Vt(fr.prototype,"unmuteRemote",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"unmuteRemote"),fr.prototype),Vt(fr.prototype,"muteLocal",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"muteLocal"),fr.prototype),Vt(fr.prototype,"unmuteLocal",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"unmuteLocal"),fr.prototype),Vt(fr.prototype,"close",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"close"),fr.prototype),Vt(fr.prototype,"updateEncoderConfig",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateEncoderConfig"),fr.prototype),Vt(fr.prototype,"updateSendParameters",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateSendParameters"),fr.prototype),Vt(fr.prototype,"replaceTrack",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"replaceTrack"),fr.prototype),Vt(fr.prototype,"updateAdaptation",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"updateAdaptation"),fr.prototype),Vt(fr.prototype,"getRemoteSSRC",[_a],Object.getOwnPropertyDescriptor(fr.prototype,"getRemoteSSRC"),fr.prototype),fr);function _a(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From P2PConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{if(!l)return g.stopCapture&&g.stopCapture();if(l.paused&&l.play(),l.videoHeight>2&&l.videoWidth>2){let k=l.videoWidth,V=l.videoHeight/k,K=g.width*V;Math.abs(K-g.height)>=2&&(X.debug("adjust low stream resolution","".concat(g.width,"x").concat(g.height," -> ").concat(g.width,"x").concat(K)),g.height=K)}y.drawImage(l,0,0,g.width,g.height),b.requestFrame&&b.requestFrame(),m!==a._mediaStreamTrack&&(m=a._mediaStreamTrack,l.srcObject=new MediaStream([m]))},g.stopCapture=h4(()=>g.startCapture&&g.startCapture(),C);let M=b.stop;return b.stop=()=>{M.call(b),l&&(l.remove(),l.srcObject=null,l=null),g&&(g.width=0,g.remove(),g.stopCapture&&g.stopCapture(),g.startCapture=void 0,g.stopCapture=void 0,g=null),X.debug("clean low stream renderer")},b}var Gg=function(a){return a[a.Video_Send_Type=190]="Video_Send_Type",a}(Gg||{}),qd=function(a){return a[a.Video_Send_Qp_Sum=2143]="Video_Send_Qp_Sum",a[a.Video_Send_Freeze=2082]="Video_Send_Freeze",a[a.Video_Recv_Qp_Sum=2144]="Video_Recv_Qp_Sum",a[a.Video_Recv_Freeze=2084]="Video_Recv_Freeze",a[a.Video_Render_Freeze_Time=2109]="Video_Render_Freeze_Time",a[a.Video_Render_Freeze_Time_Render=2147]="Video_Render_Freeze_Time_Render",a[a.Video_Render_Freeze_Time_Render2=2223]="Video_Render_Freeze_Time_Render2",a[a.Audio_Recv_Freeze=2083]="Audio_Recv_Freeze",a}(qd||{}),Wr=function(a){return a[a.Video_Send_Retransmit=2062]="Video_Send_Retransmit",a[a.Video_Send_Target_Encoded=2064]="Video_Send_Target_Encoded",a[a.Video_Send_Actual_Encoded=2060]="Video_Send_Actual_Encoded",a[a.Video_Send_Transmit=2066]="Video_Send_Transmit",a[a.Video_Send_Bandwidth=2061]="Video_Send_Bandwidth",a[a.Video_Capture_Height=2033]="Video_Capture_Height",a[a.Video_Capture_Width=2035]="Video_Capture_Width",a[a.Video_Capture_Frame_Rate=2034]="Video_Capture_Frame_Rate",a[a.Video_Send_Low_Height=2073]="Video_Send_Low_Height",a[a.Video_Send_Low_Frame_Rate=2075]="Video_Send_Low_Frame_Rate",a[a.Video_Send_Low_Width=2077]="Video_Send_Low_Width",a[a.Video_Send_Low_Bitrate=2069]="Video_Send_Low_Bitrate",a[a.Video_Send_Low_Package_Lost=2070]="Video_Send_Low_Package_Lost",a[a.Video_Send_Low_Package_Rate=2071]="Video_Send_Low_Package_Rate",a[a.Video_Send_Frame_Rate=2002]="Video_Send_Frame_Rate",a[a.Video_Send_Width=2003]="Video_Send_Width",a[a.Video_Send_Height=2004]="Video_Send_Height",a[a.Video_Send_Disabled=2095]="Video_Send_Disabled",a[a.Video_Send_Adaptation=2032]="Video_Send_Adaptation",a[a.Video_Send_Player_Status=2128]="Video_Send_Player_Status",a[a.Video_Send_Nacks=2009]="Video_Send_Nacks",a[a.Video_Send_Plis=2010]="Video_Send_Plis",a[a.Video_Send_Firs=2011]="Video_Send_Firs",a[a.Video_Send_Avg_Encode=2007]="Video_Send_Avg_Encode",a[a.Video_Send_Huge_Frame_Sent=2174]="Video_Send_Huge_Frame_Sent",a[a.Video_Send_Bytes_Retransmit=2173]="Video_Send_Bytes_Retransmit",a[a.Video_Send_Packages_Retransmit=2172]="Video_Send_Packages_Retransmit",a[a.Video_Send_Key_Frames_Encoded=2207]="Video_Send_Key_Frames_Encoded",a[a.Video_Send_Bitrate=2012]="Video_Send_Bitrate",a[a.Video_Send_Package_Rate=2031]="Video_Send_Package_Rate",a[a.Video_Send_Package_Lost=2005]="Video_Send_Package_Lost",a[a.Audio_Capture_PCM_Level=2104]="Audio_Capture_PCM_Level",a[a.Audio_Send_Level=2038]="Audio_Send_Level",a[a.Audio_Send_Bitrate=2039]="Audio_Send_Bitrate",a[a.Audio_Send_Package_Rate=2040]="Audio_Send_Package_Rate",a[a.Audio_Send_AEC_Return_Loss=2041]="Audio_Send_AEC_Return_Loss",a[a.Audio_Send_AEC_Return_Loss_Enhancement=2042]="Audio_Send_AEC_Return_Loss_Enhancement",a[a.Audio_Send_Freeze=2081]="Audio_Send_Freeze",a[a.Audio_Send_Disabled=2096]="Audio_Send_Disabled",a[a.Audio_Send_Bytes_Retransmit=2179]="Audio_Send_Bytes_Retransmit",a[a.Audio_Send_Packages_Retransmit=2180]="Audio_Send_Packages_Retransmit",a[a.Video_Recv_Height=2019]="Video_Recv_Height",a[a.Video_Recv_Width=2018]="Video_Recv_Width",a[a.Video_Recv_Frame_Rate_Output=2155]="Video_Recv_Frame_Rate_Output",a[a.Video_Recv_Jitter_Buffer=2023]="Video_Recv_Jitter_Buffer",a[a.Video_Recv_Current_Delay=2024]="Video_Recv_Current_Delay",a[a.Video_Recv_Nacks=2026]="Video_Recv_Nacks",a[a.Video_Recv_Plis=2027]="Video_Recv_Plis",a[a.Video_Recv_Firs=2028]="Video_Recv_Firs",a[a.Video_Recv_Disabled=2101]="Video_Recv_Disabled",a[a.Video_Recv_Player_Status=2129]="Video_Recv_Player_Status",a[a.Video_Recv_I_Frame_Delay=2149]="Video_Recv_I_Frame_Delay",a[a.Video_Render_Frame_Rate_Render=2022]="Video_Render_Frame_Rate_Render",a[a.Video_Render_Freeze_Duration=2156]="Video_Render_Freeze_Duration",a[a.Audio_Render_Level=2043]="Audio_Render_Level",a[a.Audio_Render_Freeze_Time_80ms=2226]="Audio_Render_Freeze_Time_80ms",a[a.Audio_Render_Freeze_Time_200ms=2227]="Audio_Render_Freeze_Time_200ms",a[a.Audio_Render_Freeze_Samples_80ms=2228]="Audio_Render_Freeze_Samples_80ms",a[a.Audio_Render_Freeze_Samples_200ms=2229]="Audio_Render_Freeze_Samples_200ms",a[a.Audio_Recv_PCM_Level=2105]="Audio_Recv_PCM_Level",a[a.Audio_Recv_Disabled=2102]="Audio_Recv_Disabled",a[a.Audio_Recv_Jitter_Buffer=2054]="Audio_Recv_Jitter_Buffer",a[a.Audio_Recv_Current_Delay=2047]="Audio_Recv_Current_Delay",a[a.Audio_Recv_Player_Status=2130]="Audio_Recv_Player_Status",a[a.Audio_Recv_Bitrate=2044]="Audio_Recv_Bitrate",a[a.Audio_Recv_Concealed_Samples=2148]="Audio_Recv_Concealed_Samples",a[a.Audio_Recv_Total_Samples_Received=2224]="Audio_Recv_Total_Samples_Received",a}(Wr||{}),yo=function(a){return a[a.Video_Render_Frame_Rate_Decode=2021]="Video_Render_Frame_Rate_Decode",a[a.Video_Recv_Frame_Rate=2020]="Video_Recv_Frame_Rate",a[a.Video_Recv_Frame_Dropped=2181]="Video_Recv_Frame_Dropped",a[a.Video_Recv_Bytes_Retransmit=2175]="Video_Recv_Bytes_Retransmit",a[a.Video_Recv_Packages_Retransmit=2176]="Video_Recv_Packages_Retransmit",a[a.Video_Recv_Packages_Discarded=2198]="Video_Recv_Packages_Discarded",a[a.Video_Recv_Avg_Decode=2200]="Video_Recv_Avg_Decode",a[a.Video_Recv_Avg_Processing_Delay=2202]="Video_Recv_Avg_Processing_Delay",a[a.Video_Recv_Avg_Assembly_Time=2203]="Video_Recv_Avg_Assembly_Time",a[a.Video_Recv_Avg_Inter_Frame_Delay=2204]="Video_Recv_Avg_Inter_Frame_Delay",a[a.Video_Recv_Key_Frames_Decoded=2206]="Video_Recv_Key_Frames_Decoded",a[a.Video_Recv_Package_Lost=2014]="Video_Recv_Package_Lost",a[a.Video_Recv_Bitrate=2029]="Video_Recv_Bitrate",a[a.Video_Recv_Package_Rate=2078]="Video_Recv_Package_Rate",a[a.Audio_Recv_Jitter=2055]="Audio_Recv_Jitter",a[a.Audio_Recv_Bytes_Retransmit=2178]="Audio_Recv_Bytes_Retransmit",a[a.Audio_Recv_Packages_Retransmit=2177]="Audio_Recv_Packages_Retransmit",a[a.Audio_Recv_Packages_Discarded=2199]="Audio_Recv_Packages_Discarded",a[a.Audio_Recv_Avg_Processing_Delay=2201]="Audio_Recv_Avg_Processing_Delay",a[a.Audio_Recv_Package_Rate=2046]="Audio_Recv_Package_Rate",a[a.Audio_Recv_Package_Lost=2045]="Audio_Recv_Package_Lost",a[a.Audio_Recv_AV_Sync_TIME=2237]="Audio_Recv_AV_Sync_TIME",a}(yo||{}),ma=function(a){return a[a.RTT=2006]="RTT",a[a.CONN_TYPE=801]="CONN_TYPE",a[a.STATS_UPDATE_INTERVAL=2205]="STATS_UPDATE_INTERVAL",a}(ma||{}),Ua=function(a){return a[a.RTC_PEER_CONNECTION_STATE=2219]="RTC_PEER_CONNECTION_STATE",a[a.PAGE_VISIBILITY=2233]="PAGE_VISIBILITY",a}(Ua||{}),Xy=function(a){return a[a.Transport_Send_Bitrate=2234]="Transport_Send_Bitrate",a[a.Transport_Recv_Bitrate=2235]="Transport_Recv_Bitrate",a}(Xy||{});let B1=1e3,zy=6,W2=3,ZJ=Math.max(zy,W2,60);function wr(a,A,l){l!=null&&Number.isFinite(l)&&(a[A]=Math.round(Math.max(0,l)))}function p_(a){let A={[ma.CONN_TYPE]:0,[ma.RTT]:a.rtt,[ma.STATS_UPDATE_INTERVAL]:a.updateInterval?Math.round(Math.max(0,a.updateInterval)):void 0};switch(a.selectedCandidatePair.localCandidate.candidateType){case"relay":{let l=a.selectedCandidatePair.localCandidate.relayProtocol;l==="udp"&&(A[ma.CONN_TYPE]=1),l==="tcp"&&(A[ma.CONN_TYPE]=3),l==="tls"&&(A[ma.CONN_TYPE]=4);break}case"srflx":A[ma.CONN_TYPE]=2;break;case"unknown":A[ma.CONN_TYPE]=5;break;default:A[ma.CONN_TYPE]=0}return A}function C7(a){let A=0;switch(a){case"none":A=0;break;case"cpu":A=1;break;case"bandwidth":A=2;break;case"other":A=3}return A}class p7 extends io{constructor(A){super(),Ae(this,"store",void 0),Ae(this,"uploadWRTCStatsTimer",void 0),Ae(this,"uploadOutboundDenoiserStatsTimer",void 0),Ae(this,"uploadExtStatsTimer",void 0),Ae(this,"uploadExtUsageStatsTimer",void 0),Ae(this,"uploadInboundExtStatsTimer",void 0),Ae(this,"requestStats",void 0),Ae(this,"requestTransportStats",void 0),Ae(this,"requestLocalMedia",void 0),Ae(this,"requestRemoteMedia",void 0),Ae(this,"requestAllTracks",void 0),Ae(this,"requestVideoIsReady",void 0),Ae(this,"requestUploadStats",void 0),Ae(this,"requestUpload",void 0),Ae(this,"uploadOutboundStarted",!1),Ae(this,"uploadInboundStarted",!1),Ae(this,"uploadTransportStarted",!1),Ae(this,"uploadBaseStatsStarted",!1),Ae(this,"uploadExtensionUsageStarted",!1),Ae(this,"lastRecvStats",void 0),Ae(this,"lastSendStats",void 0),Ae(this,"lastRefRecvStats",void 0),Ae(this,"lastRefSendStats",void 0),Ae(this,"lastNormalRecvStats",void 0),Ae(this,"lastNormalSendStats",void 0),Ae(this,"lastExtendStats",{}),Ae(this,"needUploadStats",{}),Ae(this,"needUploadRenderFreezeTime",!0),Ae(this,"lastUploadCompensateTime",-1),Ae(this,"uploadCompensateDeltaTime",0),this.store=A}uploadWRTCStats(A){if(!this.requestStats||!this.requestUploadStats)return;let l=A%W2==0,g=A%zy==0,C=A%60==0,m,y;if(this.uploadTransportStarted&&(m=this.requestStats(),this.store.useP2P&&(y=this.requestStats(!0))),!m&&this.uploadOutboundStarted&&(m=this.requestStats()),!y&&this.uploadInboundStarted&&(y=this.requestStats(!0)),m||y){var w;let b={};if(this.uploadTransportStarted&&m){let k=this.getTransportStats(m,l?this.lastRefSendStats:void 0,y,l);k&&(b.misc=[k])}if(this.uploadOutboundStarted&&m){let k=this.getOutboundStats(m,g?this.lastNormalSendStats:void 0,l?this.lastRefSendStats:void 0,this.lastSendStats,C);k&&(b.outbound=[k])}if(this.uploadInboundStarted&&y){this.uploadCompensateStats(A);let k=this.getInboundStats(y,g?this.lastNormalRecvStats:void 0,l?this.lastRefRecvStats:void 0,this.lastRecvStats);k&&(b.inbound=k)}let M=(w=this.requestTransportStats)===null||w===void 0?void 0:w.call(this).connectState;if(M&&(Array.isArray(b.misc)?b.misc[0]&&b.misc[0].addition&&(b.misc[0].addition[Ua.RTC_PEER_CONNECTION_STATE]=LR[M]):b.misc=[{addition:{[Ua.RTC_PEER_CONNECTION_STATE]:LR[M]}}]),f1.needUploadStats.length>0||g){let k=f1.needUploadStats.shift()||(f1.visibility==="visible"?1:0);Array.isArray(b.misc)?b.misc[0]&&b.misc[0].addition&&(b.misc[0].addition[Ua.PAGE_VISIBILITY]=k):b.misc=[{addition:{[Ua.PAGE_VISIBILITY]:k}}]}this.needUploadStats.sendType&&(Array.isArray(b.outbound)&&b.outbound[0]&&b.outbound[0].high&&(b.outbound[0].high[Gg.Video_Send_Type]=this.needUploadStats.sendType),this.needUploadStats.sendType=void 0),this.requestUploadStats(b)}this.lastRecvStats=y,this.lastSendStats=m,g&&(this.lastNormalRecvStats=y,this.lastNormalSendStats=m),l&&(this.lastRefRecvStats=y,this.lastRefSendStats=m)}startUploadWRTCStats(){if(this.uploadWRTCStatsTimer)return;this.uploadBaseStatsStarted=!0,f1.startCollectStats();let A=1;this.uploadWRTCStatsTimer=window.setInterval(()=>{if(!this.uploadTransportStarted&&!this.uploadInboundStarted&&!this.uploadOutboundStarted){if(this.uploadBaseStatsStarted){var l,g;let C=(l=this.requestTransportStats)===null||l===void 0?void 0:l.call(this);return void(C&&((g=this.requestUploadStats)===null||g===void 0||g.call(this,{misc:[{addition:{[Ua.RTC_PEER_CONNECTION_STATE]:LR[C.connectState]}}]})))}return this.stopUploadWRTCStats()}this.uploadWRTCStats(A),++A===ZJ+1&&(A=1)},B1)}uploadCompensateStats(A){if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;let l=A%W2==0&&this.needUploadRenderFreezeTime;if(!this.uploadInboundStarted||!l)return;if(this.lastUploadCompensateTime===-1)return void(this.lastUploadCompensateTime=Date.now());let g=Math.max(-6e3,Date.now()-this.lastUploadCompensateTime-6e3);if(this.uploadCompensateDeltaTime+=g,this.lastUploadCompensateTime=Date.now(),this.uploadCompensateDeltaTime<6e3)return;let C=Math.min(Math.floor(this.uploadCompensateDeltaTime/6e3),10);this.uploadCompensateDeltaTime-=6e3*C;let m=this.requestStats(!0);new Array(C).fill(0).forEach(()=>{if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;let y={};if(this.uploadInboundStarted&&m){let w=this.requestRemoteMedia()||[],b=[];w.forEach(M=>{let[k,V]=M,K={peer:k.uid};if(k._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(k._videoSSRC)&&V.has($t.VIDEO)&&k.videoTrack){let q=function(ce,oe,le){if(!oe.videoRecv.find(Se=>Se.ssrc===ce))return;let pe={};if(le&&le._player){let Se=le._player,{renderFreezeAccTime2:be,videoElementStatus:Ue}=Se;if(f1.visibility==="visible"&&Ue===Ta.PLAYING&&Bi().supportRequestVideoFrameCallback){let xe=Math.min(6e3,be);Se.renderFreezeAccTime2=Math.max(0,be-xe),wr(pe,qd.Video_Render_Freeze_Time_Render2,xe),Ie("USE_NEW_RENDER_FREEZE_TIME")&&wr(pe,qd.Video_Render_Freeze_Time_Render,xe)}}return pe}(k._videoSSRC,m,k.videoTrack);q&&(K.video=q)}K.video&&b.push(K)}),b.length>0&&(y.inbound=b,this.requestUploadStats(y))}})}stopUploadWRTCStats(){window.clearInterval(this.uploadWRTCStatsTimer),this.uploadWRTCStatsTimer=void 0,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0}getTransportStats(A,l,g,C){if(!this.requestStats)return;if(!C)return A.rtt==null?void 0:{addition:{[ma.RTT]:A.rtt,[ma.CONN_TYPE]:void 0,[ma.STATS_UPDATE_INTERVAL]:A.updateInterval||void 0}};let m=p_(A);if(this.store.useP2P){if(g){let y=p_(g);m[ma.CONN_TYPE]&&y[ma.CONN_TYPE]&&(m[ma.CONN_TYPE]+=y[ma.CONN_TYPE]<<3)}m[ma.CONN_TYPE]?m[ma.CONN_TYPE]+=110:m[ma.CONN_TYPE]=110}else{m[ma.CONN_TYPE]?m[ma.CONN_TYPE]+=100:m[ma.CONN_TYPE]=100;let y=function(w,b){return b?[Math.ceil(8*(w.transport.bytesSent-b.transport.bytesSent)/(w.timestamp-b.timestamp)),Math.ceil(8*(w.transport.bytesReceived-b.transport.bytesReceived)/(w.timestamp-b.timestamp))]:[0,0]}(A,l);m[Xy.Transport_Send_Bitrate]=y[0],m[Xy.Transport_Recv_Bitrate]=y[1]}return{addition:m}}getOutboundStats(A,l,g,C,m){if(!this.requestUploadStats||!this.requestLocalMedia)return;let y=this.requestLocalMedia();if(!y||y.length===0)return;let w,b,M;return y.forEach(k=>{let[V,{track:K,ssrcs:q}]=k;switch(V){case St.LocalVideoLowTrack:case St.LocalVideoTrack:if(V===St.LocalVideoTrack){var ce;let oe=function(be,Ue,xe,Le,je,dt){let pt=Ue.videoSend.find(ii=>ii.ssrc===be);if(!pt)return;let zt={},{sentFrame:gr,inputFrame:li}=pt;if(Le&&(wr(zt,qd.Video_Send_Qp_Sum,pt.qpSumPerFrame),li&&gr)){let ii=li.frameRate,br=gr.frameRate;zt[qd.Video_Send_Freeze]=function(Zi,Hn){let ut=!0;return ut=!(Zi<=5)&&(Zi<=10?Hn<3:Zi<=20?Hn<4:Hn<5),ut}(ii,br)?1:0}if(je){switch(gr&&(wr(zt,Wr.Video_Send_Height,gr.height),wr(zt,Wr.Video_Send_Width,gr.width),wr(zt,Wr.Video_Send_Frame_Rate,gr.frameRate)),zt[Wr.Video_Send_Disabled]=xe._originMediaStreamTrack&&!xe._originMediaStreamTrack.enabled||xe._mediaStreamTrack&&!xe._mediaStreamTrack.enabled?1:0,pt.adaptionChangeReason){case"none":zt[Wr.Video_Send_Adaptation]=0;break;case"cpu":zt[Wr.Video_Send_Adaptation]=1;break;case"bandwidth":zt[Wr.Video_Send_Adaptation]=2;break;case"other":zt[Wr.Video_Send_Adaptation]=3}let ii=0;pt.adaptionChangeReason&&(ii+=C7(pt.adaptionChangeReason)),Ue.qualityLimitationReason&&(ii+=C7(Ue.qualityLimitationReason)<<3),zt[Wr.Video_Send_Adaptation]=ii,zt[Wr.Video_Send_Player_Status]=Dn[xe._player?xe._player.videoElementStatus:"uninit"],wr(zt,Wr.Video_Send_Nacks,pt.nacksCount),wr(zt,Wr.Video_Send_Plis,pt.plisCount),wr(zt,Wr.Video_Send_Firs,pt.firsCount),wr(zt,Wr.Video_Send_Avg_Encode,pt.avgEncodeMs),wr(zt,Wr.Video_Send_Huge_Frame_Sent,pt.hugeFramesSent),wr(zt,Wr.Video_Send_Bytes_Retransmit,pt.retransmittedBytesSent),wr(zt,Wr.Video_Send_Packages_Retransmit,pt.retransmittedPacketsSent),wr(zt,Wr.Video_Send_Key_Frames_Encoded,pt.keyFramesEncoded);let br=je.videoSend.find(Zi=>Zi.ssrc===be);if(br){let Zi=B1*W2;br.timestamp&&pt.timestamp&&(Zi=pt.timestamp-br.timestamp),br.packets!=null&&pt.packets!=null&&wr(zt,Wr.Video_Send_Package_Rate,1e3*(pt.packets-br.packets)/Zi),pt.packetsLost!=null&&br.packetsLost!=null&&wr(zt,Wr.Video_Send_Package_Lost,pt.packetsLost-br.packetsLost),br.bytes!=null&&pt.bytes!=null&&wr(zt,Wr.Video_Send_Bitrate,8*(pt.bytes-br.bytes)/Zi)}}return zt}(q[0].ssrcId,A,K,l,g),le=K.__className__==="CameraVideoTrack"?3:Rt(ce=K._hints).call(ce,$i.SCREEN_TRACK)?7:10;(this.lastExtendStats.sendType!==le||m)&&(this.needUploadStats={sendType:le},this.lastExtendStats.sendType=le);let pe=K&&function(be,Ue,xe,Le){let je=Ue.videoSend.find(pt=>pt.ssrc===be);if(!je)return null;let dt={};if(Le){let pt=je.inputFrame,zt=pt&&pt.height||xe.videoHeight||0,gr=pt&&pt.width||xe.videoWidth||0,li=pt&&pt.frameRate||0;wr(dt,Wr.Video_Capture_Height,zt),wr(dt,Wr.Video_Capture_Width,gr),wr(dt,Wr.Video_Capture_Frame_Rate,li)}return dt}(q[0].ssrcId,A,K,!!g),Se=function(be,Ue){let xe={};return Ue&&(wr(xe,Wr.Video_Send_Retransmit,be.bitrate.retransmit),wr(xe,Wr.Video_Send_Target_Encoded,be.bitrate.targetEncoded),wr(xe,Wr.Video_Send_Actual_Encoded,be.bitrate.actualEncoded),wr(xe,Wr.Video_Send_Transmit,be.bitrate.transmit),wr(xe,Wr.Video_Send_Bandwidth,be.sendBandwidth)),xe}(A,!!g);b=Object.assign({},oe,pe,Se)}else M=function(oe,le,pe,Se,be){let Ue=le.videoSend.find(Le=>Le.ssrc===oe);if(!Ue)return;let xe={};if(Se){let Le=Ue.sentFrame;Le&&(wr(xe,Wr.Video_Send_Low_Height,Le.height),wr(xe,Wr.Video_Send_Low_Width,Le.width),wr(xe,Wr.Video_Send_Low_Frame_Rate,Le.frameRate));let je=Se.videoSend.find(dt=>dt.ssrc===oe);if(je){let dt=B1*zy;je.timestamp&&Ue.timestamp&&(dt=Ue.timestamp-je.timestamp),je.packets!=null&&Ue.packets!=null&&wr(xe,Wr.Video_Send_Low_Package_Rate,1e3*(Ue.packets-je.packets)/dt),Ue.packetsLost!=null&&je.packetsLost!=null&&wr(xe,Wr.Video_Send_Low_Package_Lost,Ue.packetsLost-je.packetsLost),je.bytes!=null&&Ue.bytes!=null&&wr(xe,Wr.Video_Send_Low_Bitrate,8*(Ue.bytes-je.bytes)/dt)}}return xe}(q[0].ssrcId,A,0,g);break;case St.LocalAudioTrack:w=K&&function(oe,le,pe,Se,be,Ue){let xe=le.audioSend.find(je=>je.ssrc===oe);if(!xe)return;let Le={};if(be){Le[Wr.Audio_Send_Disabled]=pe._originMediaStreamTrack&&!pe._originMediaStreamTrack.enabled||pe._mediaStreamTrack&&!pe._mediaStreamTrack.enabled?1:0;let je=100*pe._source.getAccurateVolumeLevel(),dt=xe.inputLevel;if(dt!=null){let zt=Math.ceil(50*Math.log10(100*dt+1));wr(Le,Wr.Audio_Send_Level,zt)}wr(Le,Wr.Audio_Capture_PCM_Level,je),wr(Le,Wr.Audio_Send_AEC_Return_Loss,xe.aecReturnLoss),wr(Le,Wr.Audio_Send_AEC_Return_Loss_Enhancement,xe.aecReturnLossEnhancement),wr(Le,Wr.Audio_Send_Bytes_Retransmit,xe.retransmittedBytesSent),wr(Le,Wr.Audio_Send_Packages_Retransmit,xe.retransmittedPacketsSent),Le[Wr.Audio_Send_Freeze]=0;let pt=be.audioSend.find(zt=>zt.ssrc===oe);if(pt){let zt=B1*zy;pt.timestamp&&xe.timestamp&&(zt=xe.timestamp-pt.timestamp),pt.bytes!=null&&xe.bytes!=null&&wr(Le,Wr.Audio_Send_Bitrate,8*(xe.bytes-pt.bytes)/zt),pt.packets!=null&&xe.packets!=null&&wr(Le,Wr.Audio_Send_Package_Rate,1e3*(xe.packets-pt.packets)/zt)}}return Le}(q[0].ssrcId,A,K,0,g)}}),{high:b,low:M,audio:w}}getInboundStats(A,l,g,C){if(!this.requestRemoteMedia)return;let m=this.requestRemoteMedia()||[],y=[];return m.forEach(w=>{let[b,M]=w,k={peer:b.uid},V;if(M.has($t.VIDEO)&&b.videoTrack){let K=b._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(b._videoSSRC)||!1,q=b.videoTrack?function(ce,oe,le,pe,Se,be,Ue,xe){let Le=oe.videoRecv.find(br=>br.ssrc===ce);if(!Le)return;let je={},{receivedFrame:dt,outputFrame:pt,decodeFrameRate:zt}=Le;wr(je,yo.Video_Render_Frame_Rate_Decode,zt),Le.framesRateFirefox&&wr(je,yo.Video_Recv_Frame_Rate,Le.framesRateFirefox),dt&&wr(je,yo.Video_Recv_Frame_Rate,dt.frameRate),wr(je,yo.Video_Recv_Frame_Dropped,Le.framesDroppedCount),wr(je,yo.Video_Recv_Bytes_Retransmit,Le.retransmittedBytesReceived),wr(je,yo.Video_Recv_Packages_Retransmit,Le.retransmittedPacketsReceived),wr(je,yo.Video_Recv_Packages_Discarded,Le.packetsDiscarded),wr(je,yo.Video_Recv_Avg_Decode,Le.avgDecodeMs),wr(je,yo.Video_Recv_Avg_Processing_Delay,Le.avgProcessingDelayMs),wr(je,yo.Video_Recv_Avg_Assembly_Time,Le.avgFramesAssembledFromMultiplePacketsMs),wr(je,yo.Video_Recv_Avg_Inter_Frame_Delay,Le.avgInterFrameDelayMs),wr(je,yo.Video_Recv_Key_Frames_Decoded,Le.keyFramesDecoded);let gr=xe&&xe.videoRecv.find(br=>br.ssrc===ce);if(gr){let br=oe.timestamp-xe.timestamp||B1;Le.packetsLost!=null&&gr.packetsLost!=null&&wr(je,yo.Video_Recv_Package_Lost,Le.packetsLost-gr.packetsLost),gr.bytes!=null&&Le.bytes!=null&&wr(je,yo.Video_Recv_Bitrate,8*(Le.bytes-gr.bytes)/br),gr.packets!=null&&Le.packets!=null&&wr(je,yo.Video_Recv_Package_Rate,1e3*(Le.packets-gr.packets)/br)}let li=be&&be.videoRecv.find(br=>br.ssrc===ce);if(li&&(wr(je,qd.Video_Recv_Qp_Sum,Le.qpSumPerFrame),je[qd.Video_Recv_Freeze]=pe&&F2.isRemoteVideoFreeze(le,Le,li)?1:0),Ue){var ii;let br=Ue.videoRecv.find(Hn=>Hn.ssrc===ce);dt?(wr(je,Wr.Video_Recv_Height,dt.height),wr(je,Wr.Video_Recv_Width,dt.width)):le&&(wr(je,Wr.Video_Recv_Height,le._videoHeight||0),wr(je,Wr.Video_Recv_Width,le._videoWidth||0)),pt&&wr(je,Wr.Video_Recv_Frame_Rate_Output,pt.frameRate);let Zi=(ii=le._player)===null||ii===void 0?void 0:ii.rendFrameRate.toFixed(0);if(Zi&&wr(je,Wr.Video_Render_Frame_Rate_Render,+Zi),wr(je,Wr.Video_Recv_Jitter_Buffer,Le.jitterBufferMs),wr(je,Wr.Video_Recv_Current_Delay,Le.currentDelayMs),wr(je,Wr.Video_Recv_Firs,Le.firsCount),wr(je,Wr.Video_Recv_Nacks,Le.nacksCount),wr(je,Wr.Video_Recv_Plis,Le.plisCount),le){je[Wr.Video_Recv_Disabled]=le._originMediaStreamTrack.enabled&&le._mediaStreamTrack.enabled?0:1;let Hn=le._player;if(Hn){let{freezeTimeCounterList:ut,renderFreezeAccTime:kt,renderFreezeAccTime2:Wt,videoElementStatus:It}=Hn;if(ut&&ut.length>0&&wr(je,qd.Video_Render_Freeze_Time,ut.splice(0,1)[0]),Se&&f1.visibility==="visible"&&It===Ta.PLAYING&&Bi().supportRequestVideoFrameCallback){let ne=Math.min(6e3,Wt);Hn.renderFreezeAccTime2=Math.max(0,Wt-ne),wr(je,qd.Video_Render_Freeze_Time_Render2,ne);let ve=Math.min(6e3,kt);Hn.renderFreezeAccTime=Math.max(0,kt-ve),wr(je,qd.Video_Render_Freeze_Time_Render,Ie("USE_NEW_RENDER_FREEZE_TIME")?ne:ve)}if(typeof Le.totalFreezesDuration=="number"){let ne=br&&br.totalFreezesDuration?Le.totalFreezesDuration-br.totalFreezesDuration:Le.totalFreezesDuration;wr(je,Wr.Video_Render_Freeze_Duration,1e3*ne)}}}if(je[Wr.Video_Recv_Player_Status]=Dn[le._player?le._player.videoElementStatus:"uninit"],br&&Le.totalInterFrameDelay!==void 0&&Le.totalSquaredInterFrameDelay!==void 0&&br.totalInterFrameDelay!==void 0&&br.totalSquaredInterFrameDelay!==void 0){let Hn=Le.totalInterFrameDelay-br.totalInterFrameDelay,ut=Le.totalSquaredInterFrameDelay-br.totalSquaredInterFrameDelay,kt=Le.framesDecodeCount-br.framesDecodeCount,Wt=Hn/kt*1e3,It=Math.round(1e3*Math.sqrt((ut-Math.pow(Hn,2)/kt)/kt));!isNaN(It)&&Wt+It>Math.max(3*Wt,Wt+150)&&(je[Wr.Video_Recv_I_Frame_Delay]=It)}}return je}(b._videoSSRC,A,b.videoTrack,K===!0,this.needUploadRenderFreezeTime,l,g,C):void 0;if(q&&(k.video=q),b.videoTrack){let ce=A.videoRecv.find(oe=>oe.ssrc===b._videoSSRC);ce&&ce.estimatedPlayoutTimestamp&&(V=ce.estimatedPlayoutTimestamp)}}if(M.has($t.AUDIO)&&b.audioTrack){let K=b.audioTrack?function(q,ce,oe,le,pe,Se){let be=ce.audioRecv.find(je=>je.ssrc===q);if(!be)return;let Ue={};wr(Ue,yo.Audio_Recv_Jitter,be.jitterMs),wr(Ue,yo.Audio_Recv_Bytes_Retransmit,be.retransmittedBytesReceived),wr(Ue,yo.Audio_Recv_Packages_Retransmit,be.retransmittedPacketsReceived),wr(Ue,yo.Audio_Recv_Packages_Discarded,be.packetsDiscarded),wr(Ue,yo.Audio_Recv_Avg_Processing_Delay,be.avgProcessingDelayMs);let xe=Se&&Se.audioRecv.find(je=>je.ssrc===q);if(xe){let je=B1;be.packets!=null&&xe.packets!=null&&wr(Ue,yo.Audio_Recv_Package_Rate,1e3*(be.packets-xe.packets)/je),be.packetsLost!=null&&xe.packetsLost!=null&&wr(Ue,yo.Audio_Recv_Package_Lost,be.packetsLost-xe.packetsLost)}if(le){let{receivedFrames:je,droppedFrames:dt}=be;je!=null&&dt!=null&&(Ue[qd.Audio_Recv_Freeze]=(Le=je)===0||100*dt/Le>20?1:0)}var Le;if(pe){let je=100*oe._source.getAccurateVolumeLevel(),dt=be.outputLevel;if(dt!=null){let zt=Math.ceil(50*Math.log10(100*dt+1));wr(Ue,Wr.Audio_Render_Level,zt)}wr(Ue,Wr.Audio_Recv_PCM_Level,je),oe&&(Ue[Wr.Audio_Recv_Disabled]=oe._originMediaStreamTrack.enabled&&oe._mediaStreamTrack.enabled?0:1),wr(Ue,Wr.Audio_Recv_Jitter_Buffer,be.jitterBufferMs),wr(Ue,Wr.Audio_Recv_Current_Delay,be.jitterBufferMs),Ue[Wr.Audio_Recv_Player_Status]=Dn[va.getPlayerState(oe.getTrackId())];let pt=pe.audioRecv.find(zt=>zt.ssrc===q);if(pt){pt.bytes!=null&&be.bytes!=null&&wr(Ue,Wr.Audio_Recv_Bitrate,8*(be.bytes-pt.bytes)/(B1*W2));let zt=be.concealedSamples-pt.concealedSamples;zt>0&&wr(Ue,Wr.Audio_Recv_Concealed_Samples,zt);let gr=be.totalSamplesReceived-pt.totalSamplesReceived;gr>0&&wr(Ue,Wr.Audio_Recv_Total_Samples_Received,gr);let li=be.freezeSamples80-pt.freezeSamples80;li>0&&wr(Ue,Wr.Audio_Render_Freeze_Samples_80ms,li);let ii=be.freezeSamples200-pt.freezeSamples200;ii>0&&wr(Ue,Wr.Audio_Render_Freeze_Samples_200ms,ii);let br=be.freezeMs80-pt.freezeMs80;wr(Ue,Wr.Audio_Render_Freeze_Time_80ms,br<0?0:br);let Zi=be.freezeMs200-pt.freezeMs200;wr(Ue,Wr.Audio_Render_Freeze_Time_200ms,Zi<0?0:Zi)}}return Ue}(b._audioSSRC,A,b.audioTrack,l,g,C):void 0;if(K&&(k.audio=K),b.audioTrack&&V){let q=A.audioRecv.find(ce=>ce.ssrc===b._audioSSRC);if(q&&q.estimatedPlayoutTimestamp){let ce=q.estimatedPlayoutTimestamp-V;k.audio?k.audio[yo.Audio_Recv_AV_Sync_TIME]=ce:k.audio={[yo.Audio_Recv_AV_Sync_TIME]:ce}}}}(k.video||k.audio)&&y.push(k)}),this.needUploadRenderFreezeTime=!this.needUploadRenderFreezeTime,y}startUploadTransportStats(){this.uploadTransportStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats()}stopUploadTransportStats(){this.uploadTransportStarted=!1}startUploadOutboundStats(){this.uploadOutboundStarted||(this.uploadOutboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=window.setInterval(()=>{if(!this.requestAllTracks||!this.requestUpload)return;let A=(this.requestAllTracks()||[]).find(l=>l instanceof gn);if(A&&A._external.getDenoiserStats){let l=A._external.getDenoiserStats();l&&this.requestUpload(pn.DENOISER_STATS,l)}},2e3),this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=window.setInterval(()=>{!this.requestAllTracks||!this.requestUpload||this.requestAllTracks().forEach(A=>{A.getProcessorStats().forEach(l=>{this.requestUpload&&this.requestUpload(l.type,l.stats)})})},2e3))}stopUploadOutboundStats(){this.uploadOutboundStarted&&(this.uploadOutboundStarted=!1,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=void 0,this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=void 0)}startUploadInboundStats(){this.uploadInboundStarted||(this.uploadInboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=window.setInterval(()=>{!this.requestUpload||!this.requestRemoteMedia||(this.requestRemoteMedia()||[]).forEach(A=>{let[l,g]=A;g.has($t.VIDEO)&&l.videoTrack&&l.videoTrack.getProcessorStats().forEach(C=>{this.requestUpload&&this.requestUpload(C.type,C.stats)}),g.has($t.AUDIO)&&l.audioTrack&&l.audioTrack.getProcessorStats().forEach(C=>{this.requestUpload&&this.requestUpload(C.type,C.stats)})})},2e3))}stopUploadInboundStats(){this.uploadInboundStarted&&(this.uploadInboundStarted=!1,this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0,this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=void 0)}startUploadExtensionUsageStats(){if(this.uploadExtensionUsageStarted)return;this.uploadExtensionUsageStarted=!0,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer);let A=new Map;this.uploadExtUsageStatsTimer=window.setInterval(async()=>{let l=Date.now(),g={connectionInterval:Ie("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3,details:[],lts:l},C=[],m=this.requestAllTracks&&this.requestAllTracks()||[];for(let M of m)!M.muted&&M.enabled&&(C=C.concat(await M.getProcessorUsage()));let y=this.requestRemoteMedia&&this.requestRemoteMedia()||[];for(let[M,k]of y)k.has($t.VIDEO)&&M.videoTrack&&(C=C.concat(await M.videoTrack.getProcessorUsage())),k.has($t.AUDIO)&&M.audioTrack&&(C=C.concat(await M.audioTrack.getProcessorUsage()));if(C.length===0)return;g.details=function(M,k){let V={};for(let{id:oe,value:le,level:pe,direction:Se}of M){var K;let be=(K=k.get(oe))!==null&&K!==void 0?K:0,Ue=le===2?be+Ie("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3:be;var q,ce;k.set(oe,Ue),V[oe]?(le===2&&(V[oe].value=le),pe>V[oe].level&&(V[oe].level=pe),Se==="remote"&&(V[oe].remoteUidCount+=1),V[oe].totalTs=(q=k.get(oe))!==null&&q!==void 0?q:0):V[oe]={value:le,level:pe,remoteUidCount:Se==="local"?0:1,totalTs:(ce=k.get(oe))!==null&&ce!==void 0?ce:0}}return Object.keys(V).map(oe=>{let{level:le,value:pe,totalTs:Se}=V[oe];return{id:oe,level:le,value:pe,totalTs:Se}})}(C,A);let w=Date.now(),b=w>l?w:l+1;this.requestUpload&&this.requestUpload(pn.EXTENSION_USAGE_STATS,{usageStats:g,sendTs:b})},Ie("EXTENSION_USAGE_UPLOAD_INTERVAL"))}stopUploadExtensionUsageStats(){this.uploadExtensionUsageStarted&&(this.uploadExtensionUsageStarted=!1,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer),this.uploadExtUsageStatsTimer=void 0)}stopUploadBaseStats(){this.uploadBaseStatsStarted=!1,f1.stopCollectStats()}}let tq=Ie("ICE_RESTART_INTERVAL"),$y=new Map,Vg=new Map,Fu=[Ls.UDP_TCP_RELAY,Ls.TCP_RELAY,Ls.RELAY],UN=Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Bi().supportPCSetConfiguration;function f7(a){let A=arguments.length>1&&arguments[1]!==void 0&&arguments[1],l=$y.get(a.id);l&&(window.clearTimeout(l),$y.delete(a.id));let g=Vg.get(a.id);A&&g&&g.index===Fu.length-1&&(X.debug("[".concat(a.id,"] reset ICE restart policy")),Vg.delete(a.id))}function _7(a,A,l){if($y.size===0&&Vg.size===0&&(Array.isArray(Ie("RESTART_SEQUENCE"))&&Ie("RESTART_SEQUENCE").length>0&&!function(w,b){if(w.length!==b.length)return!1;for(let M=0;MV===k).length!==b.filter(V=>V===k).length)return!1}return!0}(Fu,Ie("RESTART_SEQUENCE"))&&(Fu=Ie("RESTART_SEQUENCE").filter(w=>{var b;if(Rt(b=Object.values(Ls)).call(b,w))return!0}),X.debug("use reconnection policy from config distribution, queues: ".concat(Fu.join(" => ")))),UN=Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Bi().supportPCSetConfiguration),Fu.length===0)return void l();let g,{index:C=0,type:m}=Vg.get(a.id)||{};if(UN&&m===Ls.RELAY)return void l();let y=m&&C>=Fu.length-1;if(UN)m=Ls.RELAY;else{if(y)return void l();m?(C++,m=Fu[C]):(m=Fu[0],C=0)}X.debug("[".concat(a.id,"] choose ICE restart policy: ").concat(m,", index: ").concat(C)),A(m),Vg.set(a.id,{index:C,type:m}),g=window.setTimeout(()=>_7(a,A,l),tq),$y.set(a.id,g)}var Di;function Sh(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function IA(a){for(var A=1;A{let m=await this.mutex.lock("Locking from P2PChannel.handleMuteLocalTrack");try{if(!this.connection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel.handleMuteLocalTrack before connection established."));let y=this.filterTobeMutedTracks(l);if(y.length===0)return void g();let w=y.find(M=>M[0]==="videoLowTrack");if(w){let M=w[1];this.store.enableInstantMuteRestore?(M.track._originMediaStreamTrack.enabled=!1,X.info("[".concat(this.store.clientId,"] P2PChannel muteLocalLowTrack without close sender because enableInstantMuteRestore is true"))):M.track._originMediaStreamTrack.stop()}this.store.enableInstantMuteRestore?X.info("[".concat(this.store.clientId,"] P2PChannel muteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.muteLocal(y.map(M=>{let[,{id:k}]=M;return k}));let b=this.createMuteMessage(y);await Wn(this,hr.RequestMuteLocal,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleUnmuteLocalTrack",async(l,g,C)=>{let m=await this.mutex.lock("Locking from P2PChannel.handleUnmuteLocalTrack");try{if(!this.connection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel.handleUnmuteLocalTrack before connection established."));let y=this.filterTobeUnmutedTracks(l);if(y.length===0)return void g();let w=y.find(M=>M[0]==="videoLowTrack");if(w){let M=w[1];if(this.store.enableInstantMuteRestore)M.track._originMediaStreamTrack.enabled=!0,X.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalLowTrack without close sender because enableInstantMuteRestore is true"));else{if(M.track._originMediaStreamTrack.stop(),!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding){let k=l._mediaStreamTrack.clone();M.track._mediaStreamTrack=k,M.track._originMediaStreamTrack=k}else{let k=PN(l,o2(this,hr.RequestLowStreamParameter));M.track._mediaStreamTrack=k,M.track._originMediaStreamTrack=k}await new Ft((k,V)=>{this.handleReplaceTrack(M.track,k,V,!0)})}}this.store.enableInstantMuteRestore?X.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.unmuteLocal(y.map(M=>{let[,{id:k}]=M;return k}));let b=this.createUnmuteMessage(y);await Wn(this,hr.RequestUnmuteLocal,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleUpdateVideoEncoder",async(l,g,C,m)=>{let y;m||(y=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoEncoder"));try{let b=this.localTrackMap.get(St.LocalVideoTrack);if(!this.connection||!b||b.track!==l||this.state!==An.Connected)return void g();let{id:M,track:k}=b;await this.connection.updateSendParameters(M,k),await this.connection.updateEncoderConfig(M,k),this.emit(hr.UpdateVideoEncoder,k),g()}catch(b){C(b)}finally{var w;(w=y)===null||w===void 0||w()}}),Ae(this,"handleUpdateVideoSendParameters",async(l,g,C)=>{let m=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoSendParameters");try{let y=this.localTrackMap.get(St.LocalVideoTrack);if(!this.connection||!y||y.track!==l||this.state!==An.Connected)return void g();let{id:w,track:b}=y;await this.connection.updateSendParameters(w,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleReplaceMixingTrack",async(l,g,C,m)=>{if(!this.connection||this.state!==An.Connected)return void g();let y=j2([l]),w;X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(y.getTrackId(),"]")),typeof m=="boolean"&&m||(w=await this.mutex.lock("From P2PChannel.handleReplaceMixingTrack"));try{await this.replaceTrack(l,y),g()}catch(M){C(M)}finally{var b;(b=w)===null||b===void 0||b()}}),Ae(this,"handleReplaceTrack",async(l,g,C,m)=>{let y;X.debug("[".concat(this.store.clientId,"] P2PChannel handleReplaceTrack for [track-id-").concat(l.getTrackId(),"]")),typeof m=="boolean"&&m||(y=await this.mutex.lock("From P2PChannel.handleReplaceTrack"));try{var w;let M=Array.from(this.localTrackMap.entries()).find(k=>{let[,{track:V}]=k;return l===V});if(!this.connection||!M||this.state!==An.Connected)return void g();if(await((w=this.connection)===null||w===void 0?void 0:w.replaceTrack(l,M[1].id)),this.isPlanB){let k=M[1];k.id=l._mediaStreamTrack.id,this.localTrackMap.set(M[0],k)}if(M[0]===St.LocalVideoTrack&&!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding){let k=this.localTrackMap.get(St.LocalVideoLowTrack);if(k){let V=l._mediaStreamTrack.clone();k.track._originMediaStreamTrack.stop(),k.track._mediaStreamTrack=V,k.track._originMediaStreamTrack=V,await new Ft((K,q)=>{this.handleReplaceTrack(k.track,K,q,!0)})}}g()}catch(M){C(M)}finally{var b;(b=y)===null||b===void 0||b()}}),Ae(this,"handleGetRTCStats",l=>{l(this.statsCollector.getRTCStats())}),Ae(this,"handleGetLocalVideoStats",l=>{l(this.statsCollector.getLocalVideoTrackStats())}),Ae(this,"handleGetLocalAudioStats",l=>{l(this.statsCollector.getLocalAudioTrackStats())}),Ae(this,"handleGetRemoteVideoStats",l=>this.statsCollector.getRemoteVideoTrackStats(l.uid)[l.uid]),Ae(this,"handleGetRemoteAudioStats",l=>this.statsCollector.getRemoteAudioTrackStats(l.uid)[l.uid]),this.store=a,this.statsCollector=A,this.statsCollector.addP2PChannel(this),this.statsUploader=new p7(this.store),this.bindStatsUploaderEvents(),this.mutex=new Is("P2PChannel-mutex",this.store.clientId),this.isPlanB=!Bi().supportUnifiedPlan||Ie("CHROME_FORCE_PLAN_B")&&Od(),this.shouldForwardP2PCreation=Ie("FORWARD_P2P_CREATION")&&Bi().supportPCSetConfiguration&&RR(),this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection))}async startP2PConnection(a,A){var l;this.state=An.New,this._forceTurn=Fg(a),X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] forceTurn: ").concat(this._forceTurn));let g=this.shouldForwardP2PCreation&&((l=this.connection)===null||l===void 0?void 0:l.peerConnectionState)==="closed";if((!this.shouldForwardP2PCreation||g||A)&&((g||A)&&this.connection&&(X.warning("[".concat(this.store.clientId,"] P2PChannel.startP2PConnection ForwardP2P closed.")),this.resetConnection(this.connection)),this.connection=C_(this.store,a),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)),!this.connection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel.startConnection before P2PConnection initialization .");return this._pcStatsUploadType=Ie("NEW_ICE_RESTART")?$l.FIRST_CONNECTION:$l.OLD_FIRST_CONNECTION,this._isTryConnecting=!0,this._isStartRestartIce=!1,this._iceError=null,this.connection.setConfiguration(a),this.connection.establishPromise}async connect(a){if(!this.connection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel.connect before P2PChannel.startP2PConnection .");if(!this.isPreallocation()||this.state!==An.Connected){this.store.peerConnectionStart();let A=await this.connection.connect(a);return this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=An.Connected,A}if(this.connection instanceof Gc&&this.connection.checkDtlsParameters(a.dtlsParameters.fingerprints))return X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] dtls parameters mismatch, try next.")),tr.reportApiInvoke(this.store.sessionId,{name:Co.MISMATCH_DTLS_PARAMETERS,options:[a.dtlsParameters.fingerprints],tag:Gn.TRACER}).onSuccess(),void setTimeout(()=>{this.emit(hr.RequestReconnect)});await this.connection.updateRemoteConnect(a)}updateRemoteRTPCapabilities(a){let A=Array.from(this.localTrackMap.entries()).filter(C=>{var m;let[y]=C;return Rt(m=[St.LocalVideoLowTrack,St.LocalVideoTrack]).call(m,y)}),l=A.map(C=>{let[,{id:m}]=C;return m}),g=A.map(C=>{let[m]=C;return m});if(this.connection instanceof Gc||this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"){if(tr.updateRemoteRTPCapabilities(this.store.sessionId,{trackTypes:JSON.stringify(g),localCodecs:JSON.stringify(this.connection.localCodecs),remoteCodecs:JSON.stringify(a)}),!Rt(a).call(a,this.store.codec)){let C=["vp9","vp8","h264"].find(m=>Rt(a).call(a,m));C&&(this.store.codec=C,X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId," updateRemoteRTPCapabilities] default codec is not available, hence the fallback to ").concat(C,".")))}this.connection.updateRemoteRTPCapabilities(l,a)}}async getEstablishParams(){var a;return this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof Gc&&this.connection.peerConnectionState!=="closed"&&Rt(a=[An.New,An.Connected]).call(a,this.state)?this.connection.establishPromise:void 0}async publishDataChannel(a){if(!this.connection||this.state!==An.Connected){if(this.state===An.Disconnected)throw new nt(fe.UNEXPECTED_ERROR,"PeerConnection already disconnected.");return a.forEach(l=>{var g;Rt(g=this.pendingLocalDataChannels).call(g,l)||this.pendingLocalDataChannels.push(l)}),[]}let A=this.filterTobePublishedDataChannels(a);return A.length===0?[]:(A.forEach(l=>{let g=Date.now();this.store.publish(l.id.toString(),"datachannel",g)}),await this.connection.createDataChannels(this.store.uid,A),A.forEach(l=>{this.localDataChannels.push(l);let g=Date.now();this.store.publish(l.id+"","datachannel",void 0,g)}),a.map(l=>({streamId:l.id,ordered:l.ordered,maxRetransmits:l.maxRetransmits,metadata:l.metadata,channelId:l._originDataChannelId})))}publish(a,A,l){var g=this;return wA(function*(){let C=yield ri(g.mutex.lock("From P2PChannel.publish"));try{var m;let y=g.connection&&Rt(m=["disconnected","failed"]).call(m,g.connection.peerConnectionState);if(!g.connection||g.state!==An.Connected||y){if(g.state===An.Disconnected)throw new nt(fe.UNEXPECTED_ERROR,"PeerConnection already disconnected.");g.throwIfTrackTypeNotMatch(a);let b=a.filter(M=>g.pendingLocalTracks.indexOf(M)===-1);return g.pendingLocalTracks=g.pendingLocalTracks.concat(b),void(y&&(g._isWaitPcToRePub=!0))}g.store.pubId=g.store.pubId+1,aa.markPublishStart(g.store.clientId,g.store.pubId);let w=g.filterTobePublishedTracks(a,A,l);if(w.length===0)return void(yield ri(g.tryToUnmuteAudio(a)));yield*Z0(z2(g.doPublish(g.connection,w)))}finally{C()}})()}doPublish(a,A){var l=this;return wA(function*(){A.forEach(K=>{let{track:q,type:ce}=K,oe=Date.now();l.store.publish(q.getTrackId(),ce===St.LocalAudioTrack?"audio":"video",oe)}),l.bindLocalTrackEvents(A);let g=A.map(K=>{let{track:q}=K;return q}),C=yield ri(a.send(g,l.store.codec,l.store.audioCodec)),m=(yield ri(C.next())).value,y=l.createGatewayPublishMessage(A,m),w;try{w=yield y}catch(K){throw C.throw(K),(K==null?void 0:K.code)===fe.WS_ABORT&&A.forEach(q=>{let{track:ce}=q;l.pendingLocalTracks.indexOf(ce)===-1&&l.pendingLocalTracks.push(ce)}),l.unbindLocalTrackEvents(A),K}let b=l.mapPubResToRemoteConfig(y,w,g),M=(yield ri(C.next(b))).value;if(l.state===An.Disconnected)throw new nt(fe.UNEXPECTED_ERROR,"PeerConnection already disconnected.");Ie("ENABLE_VIDEO_SEI");let k=Ie("ENABLE_ENCODED_TRANSFORM"),V=Ie("ENABLE_AUDIO_METADATA");g.forEach(async K=>{let q=K.getRTCRtpTransceiver();if(!q||!k)return;let{interceptLocalVideoFrame:ce,interceptLocalAudioFrame:oe}=ln();K.trackMediaType===$t.VIDEO?await ce(q.sender,K):K.trackMediaType===$t.AUDIO&&await oe(q.sender,{metadata:V?()=>{let le=K.metadata.shift();return le&&le.value}:void 0})}),A.forEach(K=>{let{type:q}=K;l.statsCollector.addLocalStats(q)}),l.assignLocalTracks(A,M),l.statsUploader.startUploadOutboundStats(),A.forEach(K=>{let{track:q,type:ce}=K,oe=Date.now();l.store.publish(q.getTrackId(),ce===St.LocalAudioTrack?"audio":"video",void 0,oe)})})()}async updateVideoStreamParameter(a,A){let l=this.localTrackMap.get(A);if(!l||!this.connection)return;if(!(l.track instanceof Pi))return X.warn("[updateVideoStreamParameter]: track is not an instance of LocalVideoTrack");let{track:g}=l,C=function(m,y){let w={};return m.height&&m.width&&(w.scaleResolutionDownBy=pN(m,y)),w.maxFramerate=m.framerate?ZA(m.framerate):void 0,w.maxBitrate=m.bitrate?1e3*m.bitrate:void 0,w}(a,g);if(g._encoderConfig||(g._encoderConfig={}),A!==St.LocalVideoLowTrack||!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding)C.scaleResolutionDownBy!=null&&(g._encoderConfig.scaleResolutionDownBy=C.scaleResolutionDownBy);else{let m=g._originMediaStreamTrack;if(!m.canvas)return X.warn("[".concat(g.getTrackId(),"] no canvas on track"));(function(y,w){let b=y.canvas;w.width&&(b.width=ZA(w.width)),w.height&&(b.height=ZA(w.height)),w.framerate&&(b.stopCapture&&b.stopCapture(),b.stopCapture=h4(()=>{!b.startCapture&&b.stopCapture&&b.stopCapture(),b.startCapture&&b.startCapture()},ZA(w.framerate)))})(m,a)}C.maxBitrate!=null&&(g._encoderConfig.bitrateMax=C.maxBitrate/1e3),C.maxFramerate!=null&&(g._encoderConfig.frameRate&&typeof g._encoderConfig.frameRate=="object"?g._encoderConfig.frameRate.max=C.maxFramerate:g._encoderConfig.frameRate={max:C.maxFramerate}),X.debug("[".concat(g.getTrackId(),"] LowStreamEncoderConfig: , ").concat(JSON.stringify(g._encoderConfig))),await this.connection.updateRtpSenderEncodings(g)}publishLowStream(a){var A=this;return wA(function*(){if(!A.connection||A.state!==An.Connected)return;let l=yield ri(A.mutex.lock("Locking from P2PChannel.publishLowStream"));try{let C=A.localTrackMap.get(St.LocalVideoTrack);if(!C)throw new nt(fe.UNEXPECTED_ERROR,"Could not find high stream");if(A.localTrackMap.has(St.LocalVideoLowTrack))throw new nt(fe.UNEXPECTED_ERROR,"[".concat(A.store.clientId,"] Can't publish low stream when stream already publish"));let m=[{track:A.getLowVideoTrack(C.track,a),type:St.LocalVideoLowTrack}];if(yield*Z0(z2(A.doPublish(A.connection,m))),C.track.muted||!C.track.enabled){var g;let y=(g=A.localTrackMap.get(St.LocalVideoLowTrack))===null||g===void 0?void 0:g.id;y!==void 0&&(yield ri(A.connection.muteLocal([y])))}}finally{l()}})()}async republish(){this.pendingLocalTracks.length>0&&(X.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await rs(this,hr.RequestRePublish,this.pendingLocalTracks),this.emit(hr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[]),this.pendingLocalDataChannels.length>0&&(X.debug("Emit P2PChannelEvents.RequestRePublishDataChannel to republish datachannels."),await rs(this,hr.RequestRePublishDataChannel,this.pendingLocalDataChannels),this.pendingLocalDataChannels=[]),this._isWaitPcToRePub=!1}async reSubscribe(a){for(let A=this.pendingRemoteTracks.length-1;A>=0;A--){let{user:l,kind:g}=this.pendingRemoteTracks[A];(g!==$t.AUDIO||l._audio_added_&&l._audioSSRC)&&(g!==$t.VIDEO||l._video_added_&&l._videoSSRC)||this.pendingRemoteTracks.splice(A,1)}if(a)await rs(this,hr.RequestReSubscribe,this.pendingRemoteTracks);else for(let{user:A,kind:l}of this.pendingRemoteTracks)await this.subscribe(A,l,l===$t.VIDEO?A._videoSSRC:A._audioSSRC);this.pendingRemoteTracks.forEach(A=>{let{user:l}=A;this.emit(hr.MediaReconnectEnd,l.uid)}),this.pendingRemoteTracks=[]}async unpublish(a){if(!this.connection||this.state!==An.Connected)return void a.forEach(g=>{let C=this.pendingLocalTracks.indexOf(g);C!==-1&&this.pendingLocalTracks.splice(C,1)});let A=this.filterTobeUnpublishedTracks(a);if(A.length===0)return;let l=A.find(g=>g[0]==="videoLowTrack");return l&&l[1].track.close(),this.doUnpublish(this.connection,A)}async unpublishDataChannel(a){if(!this.connection||this.state!==An.Connected)return void a.forEach(l=>{let g=this.pendingLocalDataChannels.indexOf(l);g!==-1&&this.pendingLocalDataChannels.splice(g,1)});let A=this.filterTobeUnpublishedDataChannels(a);return A.length!==0?(A.forEach(l=>{let g=this.localDataChannels.indexOf(l);g!==-1&&this.localDataChannels.splice(g,1)}),this.localDataChannels.length===0&&await this.connection.stopDataChannels(this.store.uid),A.map(l=>l.id)):void 0}async unpublishLowStream(){if(!this.connection||this.state!==An.Connected)return;let a=this.localTrackMap.get(St.LocalVideoLowTrack);if(!a)return;a.track.close();let A=[[St.LocalVideoLowTrack,a]];return this.doUnpublish(this.connection,A)}async doUnpublish(a,A){let l=this.createGatewayUnpublishMessage(A);return await a.stopSending(A.map(g=>{let[,{id:C}]=g;return C})),this.withdrawLocalTracks(A),this.unbindLocalTrackEvents(A.map(g=>{let[C,{track:m}]=g;return{type:C,track:m}})),A.forEach(g=>{let[C]=g;this.statsCollector.removeLocalStats(C)}),this.localTrackMap.size===0&&this.statsUploader.stopUploadOutboundStats(),l}async subscribeDataChannel(a,A){if(!this.connection||this.state!==An.Connected)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");let l=A.filter(g=>{var C;return!((C=this.remoteDataChannelMap.get(a))!==null&&C!==void 0&&C.get(g.id))});if(l.length!==0)return await this.connection.createDataChannels(a.uid,l),l.forEach(g=>{var C;this.remoteDataChannelMap.has(a)?(C=this.remoteDataChannelMap.get(a))===null||C===void 0||C.set(g.id,g):this.remoteDataChannelMap.set(a,new Map([[g.id,g]]));let m=this.pendingRemoteDataChannels.findIndex(y=>{let{user:w,id:b}=y;return w.uid===a.uid&&b===g.id});m!==-1&&this.pendingRemoteDataChannels.splice(m,1)}),l.map(g=>g.id)}async subscribe(a,A,l,g,C){var m;if(!this.connection||this.state!==An.Connected)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");if((m=this.remoteUserMap.get(a))!==null&&m!==void 0&&m.has(A))return;let y,w,b,M,k=this.connection.getPreMedia(l);if(k)X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] preSSRCMap has ssrcId: ").concat(l,", no need to send sub to gateway.")),b=k.transceiver,y=k.track,w=k.mid,M=k.player,k.firstVideoRender&&this.store.firstVideoFrameDecoded(a.uid,{firstPreRender:k.firstVideoRender});else if(C){let q=C.find(oe=>{let{stream_type:le}=oe;return le===A});if(!q)throw new nt(fe.UNEXPECTED_ERROR,"Cannot subscribe to remote ".concat(A," for user: ").concat(a.uid," because subscribe answer from gateway does not contain stream_type: ").concat(A,"."));let ce=await this.connection.receive(A,q.ssrcs,String(a._uintid),q.attributes);(this.connection instanceof Gc||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(b=ce.transceiver),y=ce.track,w=ce.id}else{let q=await this.connection.receive(A,[{ssrcId:l,rtx:g}],String(a._uintid),void 0);(this.connection instanceof Gc||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(b=q.transceiver),y=q.track,w=q.id}if(A===$t.AUDIO?(a._audioTrack?a._audioTrack._updateOriginMediaStreamTrack(y):(a._audioTrack=new Og(y,a.uid,a._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(a._audioTrack.getTrackId()))),b&&a._audioTrack._updateRtpTransceiver(b),this.bindRemoteTrackEvents(a,a._audioTrack)):(a._videoTrack?a._videoTrack._updateOriginMediaStreamTrack(y):(a._videoTrack=new D2(y,a.uid,a._uintid,this.store,M),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(a._videoTrack.getTrackId())),a._videoTrack.once(wc.PLAY_START,()=>{this.store.firstVideoFrameDecoded(a.uid,{playStart:Date.now()})}),a._videoTrack.once(wc.PLAY_END,()=>{this.store.firstVideoFrameDecoded(a.uid,{playEnd:Date.now()}),this.reportVideoFirstFrameRender(a)}),M?a._videoTrack.once(wc.FIRST_FRAME_RENDER,()=>{this.store.firstVideoFrameDecoded(a.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(a)}):a._videoTrack.once(wc.FIRST_FRAME_DECODED,()=>{this.store.firstVideoFrameDecoded(a.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(a)})),b&&a._videoTrack._updateRtpTransceiver(b),this.bindRemoteTrackEvents(a,a._videoTrack)),b&&Ie("ENABLE_ENCODED_TRANSFORM")){let{interceptRemoteVideoFrame:q,interceptRemoteAudioFrame:ce}=ln();A==$t.VIDEO?await q(b.receiver,{onSei:Ie("ENABLE_VIDEO_SEI")&&(oe=>{var le;return(le=a._videoTrack)===null||le===void 0?void 0:le._onSei(oe)}),onFirstFrame:oe=>{var le;let pe=Array.from(Hs(le=this.remoteUserMap).call(le)).find(Se=>Se._videoSSRC===oe.ssrc);pe&&this.store.firstVideoFrameDecoded(pe.uid,{firstReceivedEncodedFrame:Date.now(),frameType:oe.type,rtpTimestamp:oe.rtpTimestamp,framePayloadType:oe.payloadType,frameDataLength:oe.length,mimeType:oe.mimeType})}}):A==$t.AUDIO&&await ce(b.receiver,{enableTopn:!!Ie("ENABLE_AUDIO_TOPN"),enableMetadata:!!Ie("ENABLE_AUDIO_METADATA"),enablePts:!!Ie("ENABLE_AUDIO_PTS"),onMetadata:oe=>{this.safeEmit(hr.AudioMetadata,oe)},onPts:oe=>{this.safeEmit(hr.AudioPts,oe)}})}let V=this.remoteUserMap.get(a);V?V.set(A,w):this.remoteUserMap.set(a,new Map([[A,w]])),this.statsCollector.addRemoteStats(a.uid),this.statsUploader.startUploadInboundStats();let K=this.pendingRemoteTracks.findIndex(q=>{let{user:ce,kind:oe}=q;return ce.uid===a.uid&&A===oe});K!==-1&&(this.pendingRemoteTracks.splice(K,1),this.emit(hr.MediaReconnectEnd,a.uid))}async massSubscribe(a){return this.massSubscribeNoLock(a)}async massSubscribeNoLock(a){if(!this.connection||this.state!==An.Connected)throw new nt(fe.INVALID_OPERATION,"Cannot subscribeAll remote users when peerConnection disconnected.");a=a.filter(C=>{var m;let{user:y,mediaType:w}=C;return!((m=this.remoteUserMap.get(y))!==null&&m!==void 0&&m.has(w))});let A=[],l=new Map;a.forEach(C=>{if(!this.connection)return;let m=this.connection.getPreMedia(C.ssrcId);if(m){let{track:y,mid:w,transceiver:b,player:M}=m;l.set(C.ssrcId,{track:y,id:w,transceiver:b,player:M})}else A.push(C)});let g=await this.connection.batchReceive(A.map(C=>{let{user:m,mediaType:y,ssrcId:w,rtxSsrcId:b}=C;return{kind:y,ssrcMsg:[{ssrcId:w,rtx:b}],mslabel:String(m._uintid)}}));A.forEach((C,m)=>{l.set(C.ssrcId,g[m])});for(let{user:C,mediaType:m,ssrcId:y}of a){let w=l.get(y);if(!w)return void X.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] cannot find ").concat(C.uid," subscribe data,").concat(m,", ").concat(y));let{track:b,id:M,transceiver:k,player:V}=w;if(k&&Ie("ENABLE_ENCODED_TRANSFORM")){let{interceptRemoteVideoFrame:ce,interceptRemoteAudioFrame:oe}=ln();m==$t.VIDEO?await ce(k.receiver,{onSei:Ie("ENABLE_VIDEO_SEI")&&(le=>{var pe;return(pe=C._videoTrack)===null||pe===void 0?void 0:pe._onSei(le)}),onFirstFrame:le=>{var pe;let Se=Array.from(Hs(pe=this.remoteUserMap).call(pe)).find(be=>be._videoSSRC===le.ssrc);Se&&this.store.firstVideoFrameDecoded(Se.uid,{firstReceivedEncodedFrame:Date.now(),frameType:le.type,rtpTimestamp:le.rtpTimestamp,framePayloadType:le.payloadType,frameDataLength:le.length,mimeType:le.mimeType})}}):m==$t.AUDIO&&await oe(k.receiver,{enableTopn:!!Ie("ENABLE_AUDIO_TOPN"),enableMetadata:!!Ie("ENABLE_AUDIO_METADATA"),enablePts:!!Ie("ENABLE_AUDIO_PTS"),onMetadata:le=>{this.safeEmit(hr.AudioMetadata,le)},onPts:le=>{this.safeEmit(hr.AudioPts,le)}})}if(m===$t.AUDIO?(C._audioTrack?C._audioTrack._updateOriginMediaStreamTrack(b):(C._audioTrack=new Og(b,C.uid,C._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(C._audioTrack.getTrackId()))),k&&C._audioTrack._updateRtpTransceiver(k),this.bindRemoteTrackEvents(C,C._audioTrack)):(C._videoTrack?C._videoTrack._updateOriginMediaStreamTrack(b):(C._videoTrack=new D2(b,C.uid,C._uintid,this.store,V),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(C._videoTrack.getTrackId()))),k&&C._videoTrack._updateRtpTransceiver(k),this.bindRemoteTrackEvents(C,C._videoTrack)),Ie("ENABLE_VIDEO_SEI")&&k){let{interceptRemoteVideoFrame:ce,interceptRemoteAudioFrame:oe}=ln();m==$t.VIDEO?await ce(k.receiver,{onSei:le=>{var pe;(pe=C._videoTrack)===null||pe===void 0||pe._onSei(le)},onFirstFrame:le=>{var pe;let Se=Array.from(Hs(pe=this.remoteUserMap).call(pe)).find(be=>be._videoSSRC===le.ssrc);Se&&this.store.firstVideoFrameDecoded(Se.uid,{firstReceivedEncodedFrame:Date.now(),frameType:le.type,rtpTimestamp:le.rtpTimestamp,framePayloadType:le.payloadType,frameDataLength:le.length,mimeType:le.mimeType})}}):m==$t.AUDIO&&await oe(k.receiver)}let K=this.remoteUserMap.get(C);K?K.set(m,M):this.remoteUserMap.set(C,new Map([[m,M]])),this.statsCollector.addRemoteStats(C.uid),this.statsUploader.startUploadInboundStats();let q=this.pendingRemoteTracks.findIndex(ce=>{let{user:oe,kind:le}=ce;return oe.uid===C.uid&&m===le});q!==-1&&(this.pendingRemoteTracks.splice(q,1),this.emit(hr.MediaReconnectEnd,C.uid))}}async unsubscribe(a,A,l){let g=this.pendingRemoteTracks.filter(y=>{let{user:w,kind:b}=y;return A!==void 0?w.uid===a.uid&&A===b:w.uid===a.uid});if(g.forEach(y=>{let w=this.pendingRemoteTracks.indexOf(y);this.pendingRemoteTracks.splice(w,1)}),this.connection&&this.state===An.Connected||l||g.forEach(y=>{let{kind:w}=y;var b;if(w===$t.AUDIO)(b=a._audioTrack)===null||b===void 0||b._destroy(),a._audioTrack=void 0;else if(w===$t.VIDEO){var M;(M=a._videoTrack)===null||M===void 0||M._destroy(),a._videoTrack=void 0}}),!this.connection||this.state!==An.Connected)return;let C=this.filterTobeUnSubscribedTracks(a,A);if(C.length===0)return;await this.connection.stopReceiving(C.map(y=>{let[,{id:w}]=y;return w}));let m=this.createUnsubscribeMessage(C);return this.withdrawRemoteTracks(C),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),C.forEach(y=>{let[w,{kind:b}]=y;var M,k;if(b===$t.VIDEO&&w._videoSSRC&&((M=this.connection)===null||M===void 0||M.setStatsRemoteVideoIsReady(w._videoSSRC,!1)),b===$t.VIDEO)this.unbindRemoteTrackEvents(w._videoTrack),l||((k=w._videoTrack)===null||k===void 0||k._destroy(),w._videoTrack=void 0);else if(b===$t.AUDIO){var V;this.unbindRemoteTrackEvents(w._audioTrack),!l&&((V=w._audioTrack)===null||V===void 0||V._destroy(),w._audioTrack=void 0)}}),m}async unsubscribeDataChannel(a,A){if(A.forEach(C=>{let m=this.pendingRemoteDataChannels.findIndex(y=>y.id===C.id);m!==-1&&this.pendingRemoteDataChannels.splice(m,1)}),!this.connection)return;let l=this.filterTobeUnSubscribedDataChannels(a,A);if(l.length===0)return;A.forEach(C=>{C._close()});let g=this.remoteDataChannelMap.get(a);return l.forEach(C=>{g&&g.delete(C.id)}),g&&g.size===0&&(this.remoteDataChannelMap.delete(a),await this.connection.stopDataChannels(a.uid)),l.map(C=>C.id)}async massUnsubscribe(a){return this.massUnsubscribeNoLock(a)}async massUnsubscribeNoLock(a){let A=[];for(let{user:C,mediaType:m}of a){let y=this.pendingRemoteTracks.filter(w=>{let{user:b,kind:M}=w;return m!==void 0?b.uid===C.uid&&m===M:b.uid===C.uid});y.forEach(w=>{let b=this.pendingRemoteTracks.indexOf(w);this.pendingRemoteTracks.splice(b,1)}),A=A.concat(y)}if(!this.connection||this.state!==An.Connected)return void A.forEach(C=>{let{user:m,kind:y}=C;var w;if(y===$t.AUDIO)(w=m._audioTrack)===null||w===void 0||w._destroy(),m._audioTrack=void 0;else if(y===$t.VIDEO){var b;(b=m._videoTrack)===null||b===void 0||b._destroy(),m._videoTrack=void 0}});let l=$c(a).call(a,(C,m)=>{let{user:y,mediaType:w}=m,b=this.filterTobeUnSubscribedTracks(y,w);return C.concat(b)},[]);if(l.length===0)return;await this.connection.stopReceiving(l.map(C=>{let[,{id:m}]=C;return m}));let g=this.createUnsubscribeAllMessage(l);return this.withdrawRemoteTracks(l),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),l.forEach(C=>{let[m,{kind:y}]=C;var w,b;if(y===$t.VIDEO&&m._videoSSRC&&((w=this.connection)===null||w===void 0||w.setStatsRemoteVideoIsReady(m._videoSSRC,!1)),y===$t.VIDEO)this.unbindRemoteTrackEvents(m._videoTrack),(b=m._videoTrack)===null||b===void 0||b._destroy(),m._videoTrack=void 0;else if(y===$t.AUDIO){var M;this.unbindRemoteTrackEvents(m._audioTrack),(M=m._audioTrack)===null||M===void 0||M._destroy(),m._audioTrack=void 0}}),g}isPreSubScribe(a){return!this.connection||this.state!==An.Connected?!1:!!this.connection.getPreMedia(a)}async muteRemote(a,A){if(!this.connection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(a.uid,"."));if(!l.get(A))return void X.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."));let g=A===$t.VIDEO?a._videoSSRC:a._audioSSRC;g!==void 0&&this.connection.setStatsRemoteVideoIsReady(g,!1)}async unmuteRemote(a,A){return this.unmuteRemoteNoLock(a,A)}async unmuteRemoteNoLock(a,A){if(!this.connection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(a.uid,"."));l.get(A)||X.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."))}addAudioMetadata(a){let A=this.localTrackMap.get(St.LocalAudioTrack),l=A&&A.track;l&&l.metadata.push(a)}getAllTracks(a){let A=this.localTrackMap.get(St.LocalAudioTrack);if((A==null?void 0:A.track)instanceof Os){let l=A.track;return Array.from(this.localTrackMap.entries()).filter(g=>{let[C]=g;return C!==St.LocalAudioTrack}).filter(g=>{let[C]=g;return!(a&&C===St.LocalVideoLowTrack)}).map(g=>{let[,{track:C}]=g;return C}).concat(l.trackList)}return Array.from(this.localTrackMap.entries()).filter(l=>{let[g]=l;return!(a&&g===St.LocalVideoLowTrack)}).map(l=>{let[,{track:g}]=l;return g})}getAllDataChannels(){return this.localDataChannels}reportPublishEvent(a,A,l,g,C){if(a){let y=this.localTrackMap.get(St.LocalAudioTrack),w=g?this.localTrackMap.get(St.LocalVideoLowTrack):this.localTrackMap.get(St.LocalVideoTrack);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.track.getTrackLabel(),videoName:w==null?void 0:w.track.getTrackLabel(),screenshare:(w==null?void 0:w.track._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}else{var m;l||(l=[]);let y=l.find(b=>b instanceof xt),w=g?(m=this.localTrackMap.get(St.LocalVideoTrack))===null||m===void 0?void 0:m.track:l.find(b=>b instanceof Pi);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.getTrackLabel(),videoName:w==null?void 0:w.getTrackLabel(),screenshare:(w==null?void 0:w._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}}reportSubscribeEvent(a,A,l,g){let C=g===$t.VIDEO?l._videoSSRC:l._audioSSRC;C&&tr.subscribe(this.store.sessionId,{succ:a,ec:A,video:g===$t.VIDEO,audio:g===$t.AUDIO,peerid:l.uid,subscribeRequestid:C,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,C),preSsrc:this.isPreSubScribe(C)})}reset(){X.debug("[".concat(this.store.clientId,"] P2PChannel.reset")),this.mutex=new Is("P2PChannel-mutex",this.store.clientId),this.connection&&(this.resetConnection(this.connection),this.connection=void 0),this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.statsUploader.stopUploadBaseStats(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();let a=this.localTrackMap.get(St.LocalAudioTrack);if((a==null?void 0:a.track)instanceof Os){if(a.track.trackList.length>0){let A=a.track;a.track.trackList.forEach(l=>{A.removeAudioTrack(l)})}a.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.iceFailedCount=0,this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.localDataChannels=[],this.remoteDataChannelMap.clear(),this.pendingLocalDataChannels=[],this.pendingRemoteDataChannels=[],this.state=An.Disconnected}getStats(){var a;return(a=this.connection)===null||a===void 0?void 0:a.getStats()}getRemoteVideoIsReady(a){var A;return((A=this.connection)===null||A===void 0?void 0:A.getRemoteVideoIsReady(a))||!1}getLocalAudioVolume(){let a=this.localTrackMap.get(St.LocalAudioTrack);if(a)return a.track.getVolumeLevel()}getLocalVideoSize(){let a=this.localTrackMap.get(St.LocalVideoTrack);if(a)return{width:a.track.videoWidth||0,height:a.track.videoHeight||0}}getEncoderConfig(a){let A=this.localTrackMap.get(a);return A&&A.track instanceof Pi||A&&A.track instanceof xt?A.track._encoderConfig:void 0}getLocalMedia(a){return this.localTrackMap.get(a)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}async hasRemoteMediaWithLock(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}getRemoteMedia(a){var A;let l=Array.from(Hs(A=this.remoteUserMap).call(A)).find(g=>g.uid===a);return l?{audioTrack:l.audioTrack,audioSSRC:l._audioSSRC,videoTrack:l.videoTrack,videoSSRC:l._videoSSRC}:{}}getAudioLevels(){let a=Array.from(this.remoteUserMap.entries()).map(l=>{let[g]=l;return{uid:g.uid,level:g.audioTrack?100*g.audioTrack._source.getAccurateVolumeLevel():0}}),A=this.localTrackMap.get(St.LocalAudioTrack);return A&&a.push({level:100*A.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),a=LE(a).call(a,(l,g)=>l.level-g.level),a}async disconnectForReconnect(){this.connection&&(X.debug("[".concat(this.store.clientId,"] P2PChannel.disconnectForReconnect closing P2PConnection")),this.state=An.Reconnecting,Ie("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A]=a;var l;A._videoTrack&&A._videoTrack._player&&((l=A._videoTrack._player.getVideoElement())===null||l===void 0||l.pause(),A._videoTrack._player.isKeepLastFrame=!0,A._videoTrack._originMediaStreamTrack.stop())}),this.resetConnection(this.connection),this.connection=void 0,this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)),this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(a=>{var A;let[l,{track:g}]=a;switch(l){case St.LocalVideoTrack:Rt(A=g._hints).call(A,$i.LOW_STREAM)?g.close():this.pendingLocalTracks.push(g);break;case St.LocalAudioTrack:g instanceof Os?this.pendingLocalTracks=this.pendingLocalTracks.concat(g.trackList):this.pendingLocalTracks.push(g);case St.LocalVideoLowTrack:}}),this.emit(hr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;Array.from(Hs(l).call(l)).forEach(g=>{this.setPendingRemoteMedia(A,g)}),this.emit(hr.MediaReconnectStart,A.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.localDataChannels.length!==0&&(this.localDataChannels.forEach(a=>{this.pendingLocalDataChannels.push(a)}),this.localDataChannels.length=0),this.remoteDataChannelMap.size!==0&&(Array.from(this.remoteDataChannelMap.entries()).forEach(a=>{let[A,l]=a;Array.from(Hs(l).call(l)).forEach(g=>{this.setPendingRemoteDataChannel(A,g)})}),this.remoteDataChannelMap.clear()),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),X.debug("[".concat(this.store.clientId,"] P2PChannel disconnected, waiting to reconnect.")))}hasPendingRemoteDataChannel(a,A){for(let l of this.pendingRemoteDataChannels){let{user:g,id:C}=l;if((a instanceof xg?a.uid:a)===g.uid&&C===A)return!0}return!1}setPendingRemoteDataChannel(a,A){this.hasPendingRemoteDataChannel(a,A)||this.pendingRemoteDataChannels.push({user:a,id:A})}hasPendingRemoteMedia(a,A){for(let l of this.pendingRemoteTracks){let{user:g,kind:C}=l;if((a instanceof xg?a.uid:a)===g.uid&&A===C)return!0}return!1}setPendingRemoteMedia(a,A){this.hasPendingRemoteMedia(a,A)||this.pendingRemoteTracks.push({user:a,kind:A})}restartICE(a){var A=this;return wA(function*(){if(!A.connection||A.state!==An.Connected)return;let l=yield ri(A.mutex.lock("From P2PChannel.restartICE")),g;try{g=yield ri(A.connection.restartICE(a));let m=yield ri(g.next());if(m.done)return;let y=m.value,w=yield y;switch(nA(A.connection)&&A.reportPCStats(Date.now(),!1,A._pcStatsUploadType),a){case Ls.UDP_TCP_RELAY:A._pcStatsUploadType=$l.UDP_TCP_RESTART;break;case Ls.TCP_RELAY:A._pcStatsUploadType=$l.TCP_RESTART;break;case Ls.RELAY:A._pcStatsUploadType=$l.RELAY_RESTART;break;default:A._pcStatsUploadType=$l.OLD_RESTART}A._isTryConnecting=!0,g.next(w)}catch(m){var C;(C=g)===null||C===void 0||C.throw(m)}finally{l()}})()}getUplinkNetworkQuality(){if(!this.connection)return 0;let a=this.connection.getStats(),A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalAudioTrack),g=a.videoSend.find(q=>q.ssrc===(A==null?void 0:A.ssrcs[0].ssrcId)),C=a.audioSend.find(q=>q.ssrc===(l==null?void 0:l.ssrcs[0].ssrcId));if(!g||!C)return 1;let m=JA(this,hr.NeedSignalRTT),y=g?g.rttMs:void 0,w=C?C.rttMs:void 0,b=y&&w?(y+w)/2:y||w,M=(b&&m?(b+m)/2:b||m)||0,k=100*a.sendPacketLossRate*.7/50+.3*M/1500,V=k<.17?1:k<.36?2:k<.59?3:k<.1?4:5,K=A==null?void 0:A.track;if(K&&K._encoderConfig&&K._hints.indexOf($i.SCREEN_TRACK)===-1){let q=K._encoderConfig.bitrateMax,ce=a.bitrate.actualEncoded;if(q&&ce){let oe=(1e3*q-ce)/(1e3*q);return AN[oe<.15?0:oe<.3?1:oe<.45?2:oe<.6?3:4][V]}}return V}getDownlinkNetworkQuality(){if(!this.connection)return 0;let a=this.connection.getStats(),A=0;return Array.from(this.remoteUserMap.entries()).forEach(l=>{let[g]=l,C=g._audioSSRC,m=g._videoSSRC,y=a.audioRecv.find(ce=>ce.ssrc===C),w=a.videoRecv.find(ce=>ce.ssrc===m);if(!y&&!w)return void(A+=1);let b=JA(this,hr.NeedSignalRTT),M=a.rtt,k=(M&&b?(M+b)/2:M||b)||0,V=y?y.jitterMs:void 0,K=a.recvPacketLossRate,q=.7*K*100/50+.3*k/1500;V&&(q=.6*K*100/50+.2*k/1500+.2*V/400),A+=q<.1?1:q<.17?2:q<.36?3:q<.59?4:5}),this.remoteUserMap.size>0?Math.round(A/this.remoteUserMap.size):A}async muteLocalTrack(a){return new Ft((A,l)=>{this.handleMuteLocalTrack(a,A,l)})}async replaceTrack(a,A){var l;if(X.debug("[".concat(this.store.clientId,"] P2PChannel replaceTrack from [").concat(a.getTrackId(),"] to [").concat(A.getTrackId(),"]")),!this.connection||this.state!==An.Connected)return;let g=Array.from(this.localTrackMap.entries()).find(m=>{let[,{track:y}]=m;return a===y});if(!g)return;let C=g[0];if(a!==A&&(this.unbindLocalTrackEvents([{track:a,type:C}]),this.bindLocalTrackEvents([{track:A,type:C}]),g[1].track=A),await((l=this.connection)===null||l===void 0?void 0:l.replaceTrack(A,g[1].id)),this.isPlanB){let m=g[1];m.id=A._mediaStreamTrack.id,this.localTrackMap.set(C,m)}if(C===St.LocalVideoTrack&&!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding){let m=this.localTrackMap.get(St.LocalVideoLowTrack);if(m){let y=a._mediaStreamTrack.clone();m.track._originMediaStreamTrack.stop(),m.track._mediaStreamTrack=y,m.track._originMediaStreamTrack=y,await new Ft((w,b)=>{this.handleReplaceTrack(m.track,w,b,!0)})}}}filterTobePublishedTracks(a,A,l){let g=[],C=this.getAllTracks();a=ns(a=a.filter(b=>C.indexOf(b)===-1));let m,y=!1,w=this.localTrackMap.get(St.LocalAudioTrack);for(let b of a){if(b instanceof Pi&&(this.localTrackMap.has(St.LocalVideoTrack)||y?new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(g.push({track:b,type:St.LocalVideoTrack}),y=!0),A)){let M=this.getLowVideoTrack(b,l);g.push({track:M,type:St.LocalVideoLowTrack})}if(b instanceof xt)if(w){let M=w.track;if(M instanceof Os)kN([b]),M.addAudioTrack(b),this.bindLocalAudioTrackEvents(b,!0);else{let k=j2([M,b]);X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(k.getTrackId(),"]")),this.replaceTrack(M,k)}}else m instanceof Os?(kN([b]),m.addAudioTrack(b)):m||!b._useAudioElement&&Bi().webAudioMediaStreamDest&&!b._bypassWebAudio?m=j2(m?[b,m]:[b]):m=b}return m&&(X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will send audioTrack [").concat(m.getTrackId(),"]")),g.push({track:m,type:St.LocalAudioTrack})),g}filterTobeUnpublishedTracks(a){let A=[],l=this.getAllTracks();a=ns(a=a.filter(g=>l.indexOf(g)!==-1));for(let g of a){if(g instanceof xt){let C=this.localTrackMap.get(St.LocalAudioTrack);if(!C)continue;C.track instanceof Os?(C.track.removeAudioTrack(g),this.unbindLocalAudioTrackEvents(g),C.track.trackList.length===0&&(A.push([St.LocalAudioTrack,C]),C.track.close())):A.push([St.LocalAudioTrack,C])}if(g instanceof Pi){let C=this.localTrackMap.get(St.LocalVideoTrack);if(!C)continue;A.push([St.LocalVideoTrack,C]);let m=this.localTrackMap.get(St.LocalVideoLowTrack);m&&A.push([St.LocalVideoLowTrack,m])}}return A}filterTobePublishedDataChannels(a){return a=(a=ns(a)).filter(A=>this.localDataChannels.findIndex(l=>l.id===A.id)===-1)}filterTobeUnpublishedDataChannels(a){return a=(a=(a=ns(a)).filter(A=>this.localDataChannels.indexOf(A)!==-1)).filter(A=>A._originDataChannel)}bindLocalTrackEvents(a){a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.addListener(nr.GET_STATS,this.handleGetLocalVideoStats),l.addListener(nr.GET_RTC_STATS,this.handleGetRTCStats),l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.addListener(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.bindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(a,A){a instanceof Os?a.trackList.forEach(l=>{l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),a.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),A||(a.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),a.addListener(nr.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack)))}unbindLocalTrackEvents(a){a||(a=Array.from(this.localTrackMap.entries()).map(A=>{let[l,{track:g}]=A;return{track:g,type:l}})),a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.off(nr.GET_STATS,this.handleGetLocalVideoStats),l.off(nr.GET_RTC_STATS,this.handleGetRTCStats),l.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.off(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.off(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.unbindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(a){a instanceof Os?a.trackList.forEach(A=>{A.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),A.off(nr.GET_STATS,this.handleGetLocalAudioStats),A.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.off(nr.GET_STATS,this.handleGetLocalAudioStats),a.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),a.off(nr.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack),a.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(a,A){A instanceof D2&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteVideoStats(a))}),A instanceof Og&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteAudioStats(a))})}unbindRemoteTrackEvents(a){a&&a.removeAllListeners(nr.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;l.has($t.AUDIO)&&this.unbindRemoteTrackEvents(A._audioTrack),l.has($t.VIDEO)&&this.unbindRemoteTrackEvents(A._videoTrack)})}createGatewayPublishMessage(a,A){return a.map((l,g)=>{var C;let m,y,{track:w,type:b}=l;switch(b){case St.LocalAudioTrack:m=an.Audio,y={dtx:w instanceof gn&&w._config.DTX,hq:!1,lq:!1,stereo:!1,speech:!1};break;case St.LocalVideoTrack:m=Rt(C=w._hints).call(C,$i.SCREEN_TRACK)?an.Screen:an.High,y=IA(IA({},o7(w)),{},{codec:this.store.codec,svc_mode:k2()});break;case St.LocalVideoLowTrack:m=an.Low,y=IA(IA({},o7(w)),{},{codec:this.store.codec,svc_mode:k2()})}return{stream_type:m,attributes:y,ssrcs:A[g]}})}createGatewayUnpublishMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}assignLocalTracks(a,A){a.forEach((l,g)=>{let{track:C,type:m}=l;this.localTrackMap.set(m,{track:C,id:A[g].id,ssrcs:A[g].localSSRC})})}withdrawLocalTracks(a){a.forEach(A=>{let[l]=A;this.localTrackMap.delete(l)})}bindConnectionEvents(a){a.onConnectionStateChange=async A=>{if(X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onConnectionStateChange(").concat(A,")")),this.emit(hr.PeerConnectionStateChange,A),A==="connecting"&&a instanceof Gc&&!uo()&&Ie("FIRST_TCP_CANDIDATE")&&window.setTimeout(()=>{A==="connecting"&&a.extendCandidate()},Ie("FIRST_TCP_CANDIDATE_INTERVAL")),A!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),A==="connected"&&(this._restartTimer&&(window.clearTimeout(this._restartTimer),this._restartTimer=void 0),a instanceof Gc&&f7(a,!0),this._isTryConnecting&&this.reportPCStats(Date.now(),!0,this._pcStatsUploadType),this._isTryConnecting=!1,this._isStartRestartIce=!1,this._pcStatsUploadType=$l.DISCONNECTED_OR_FAILED,JA(this,hr.QueryClientConnectionState)==="CONNECTED"&&this._isWaitPcToRePub)){let l=this.pendingLocalTracks.map(C=>C.getTrackId()),g=this.pendingLocalDataChannels.map(C=>"dc_".concat(C.id));tr.reportApiInvoke(this.store.sessionId,{name:Co.REPUB_AFTER_PC_CONNECTED,options:l.concat(g),tag:Gn.TRACER}).onSuccess(),this.republish()}if(Ie("NEW_ICE_RESTART")&&a instanceof Gc&&!uo()&&!this._forceTurn&&!this.store.useDcSignal){if(Rt(Ch).call(Ch,A)){if(this._isStartRestartIce)return;this._isStartRestartIce=!0;let l=C=>{nA(a)&&(X.debug("[".concat(this.store.clientId,"] [P2PChannel] try to restartICE, type is ").concat(C)),JA(this,hr.QueryClientConnectionState)==="CONNECTED"&&this.emit(hr.RequestRestartICE,C))},g=()=>{nA(a)&&(this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),X.debug("[".concat(this.store.clientId,"] P2PConnection disconnected timeout, force reconnect")),setTimeout(()=>this.emit(hr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())};return void(this._restartTimer=window.setTimeout(()=>{_7(a,l,g)},800))}}else{if(A==="disconnected"&&a.iceConnectionState==="disconnected")return setTimeout(()=>{a.iceConnectionState==="disconnected"&&Ie("ICE_RESTART")&&JA(this,hr.QueryClientConnectionState)==="CONNECTED"&&this.emit(hr.RequestRestartICE)},800),void setTimeout(()=>{a.peerConnectionState==="disconnected"&&(X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection disconnected timeout 4000ms, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),this._isTryConnecting=!1,setTimeout(()=>this.emit(hr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())},4e3);A==="failed"&&(X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection state failed, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),setTimeout(()=>this.emit(hr.P2PLost),0),this.iceFailedCount+=1,await this.requestReconnect())}},a.onICEConnectionStateChange=A=>{A!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(A,")")),tr.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:A,tag:Gn.TRACER}).onSuccess(),this.emit(hr.IceConnectionStateChange,A)},a.onICETransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(A,")"))},a.onDTLSTransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(A,")"))},a.onDTLSTransportError=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(A,")"))},a.onFirstAudioDecoded=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(m=>m._audioSSRC===A);var C;g&&(this.store.subscribe(g.uid,"audio",void 0,void 0,void 0,Date.now()),(C=g.audioTrack)===null||C===void 0||C.emit(wc.FIRST_FRAME_DECODED),tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_DECODE,Eo.FIRST_AUDIO_DECODE,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId}))},a.onFirstAudioReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._audioSSRC===A);g&&tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_RECEIVED,Eo.FIRST_AUDIO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId})},a.onFirstVideoDecoded=(A,l,g)=>{var C;let m=Array.from(Hs(C=this.remoteUserMap).call(C)).find(y=>y._videoSSRC===A);m&&this.store.firstVideoFrameDecoded(m.uid,{firstDecoded:Date.now()}),this.reportVideoFirstFrameDecoded(A,l,g)},a.onFirstVideoRender=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&(this.store.firstVideoFrameDecoded(g.uid,{firstPreRender:Date.now()}),this.reportVideoFirstFrameRender(g),this.emit(hr.FirstVideoPreRender,g.uid,A))},a.onFirstVideoReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&(this.store.firstVideoFrameDecoded(g.uid,{firstReceived:Date.now()}),tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_VIDEO_RECEIVED,Eo.FIRST_VIDEO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId}))},a.onFirstVideoBufferReady=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&this.emit(hr.FirstVideoBufferReady,g.uid,A)},a.onSelectedLocalCandidateChanged=(A,l)=>{let g=A.candidateType==="relay",C=l.candidateType==="relay";l.candidateType!=="unknown"&&g===C||this.emit(hr.ConnectionTypeChange,g),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onSelectedRemoteCandidateChanged=(A,l)=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onFirstVideoDecodedTimeout=A=>{this.reportVideoFirstFrameDecoded(A,void 0,void 0,!0)},a.getLocalVideoStats=()=>{let A=this.statsCollector.getLocalVideoTrackStats(),l=this.statsCollector.getRTCStats();return IA(IA({},A),l)},a.onICECandidateError=A=>{this._iceError=A}}fallbackConnection(){X.debug("[".concat(this.store.clientId,"] [P2PChannel] try to fallback connection")),this.state===An.Connected?(X.debug("[".concat(this.store.clientId,"] [P2PChannel] fallback to websocket but P2PChannel state still connected, disconnect first")),this.disconnectForReconnect()):(this.connection&&this.resetConnection(this.connection),this.shouldForwardP2PCreation&&(this.connection=C_(this.store),this.emit(hr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)))}resetConnection(a){a instanceof Gc&&function(A){Vg.delete(A.id),f7(A)}(a),a.close(),this.emit(hr.PeerConnectionStateChange,"closed"),function(A){A.onConnectionStateChange=void 0,A.onICEConnectionStateChange=void 0,A.onICETransportStateChange=void 0,A.onDTLSTransportStateChange=void 0,A.onDTLSTransportError=void 0,A.onFirstAudioDecoded=void 0,A.onFirstAudioReceived=void 0,A.onFirstVideoDecoded=void 0,A.onFirstVideoReceived=void 0,A.onSelectedLocalCandidateChanged=void 0,A.onSelectedRemoteCandidateChanged=void 0,A.onFirstVideoDecodedTimeout=void 0,A.getLocalVideoStats=void 0}(a),this._isWaitPcToRePub=!1}filterTobeMutedTracks(a){let A=[];if(this.getAllTracks().indexOf(a)===-1)return A;let l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive||A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g&&(A.push(g),g[0]===St.LocalVideoTrack)){let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}return A}filterTobeUnmutedTracks(a){let A=[],l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive&&A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g)if(g[0]===St.LocalVideoTrack){A.push(g);let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}else A.push(g);return A}createMuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}createUnmuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}filterTobeUnSubscribedTracks(a,A){let l=[],g=this.remoteUserMap.get(a);if(!g)return l;if(A){let C=g.get(A);if(!C)return l;l.push([a,{kind:A,id:C}])}else Array.from(g.entries()).forEach(C=>{let[m,y]=C;l.push([a,{kind:m,id:y}])});return l}filterTobeUnSubscribedDataChannels(a,A){let l=[];return A.forEach(g=>{var C;(C=this.remoteDataChannelMap.get(a))!==null&&C!==void 0&&C.has(g.id)&&l.push(g)}),l}createUnsubscribeMessage(a){let A=[];return a.forEach(l=>{let[g,{kind:C,id:m}]=l;switch(C){case $t.VIDEO:return void(g._videoSSRC&&A.push({stream_type:$t.VIDEO,ssrcId:g._videoSSRC}));case $t.AUDIO:return void(g._audioSSRC&&A.push({stream_type:$t.AUDIO,ssrcId:g._audioSSRC}))}}),A}createUnsubscribeAllMessage(a){let A=new Map;return a.forEach(l=>{let[g,{kind:C}]=l;if(A.has(g)){let m=A.get(g);C===$t.VIDEO?m|=na.Video:m|=na.Audio,A.set(g,m)}else C===$t.VIDEO?A.set(g,na.Video):A.set(g,na.Audio)}),{users:Array.from(A.entries()).map(l=>{let[g,C]=l;return{stream_id:g.uid,stream_type:C}})}}withdrawRemoteTracks(a){a.forEach(A=>{let[l,{kind:g}]=A,C=this.remoteUserMap.get(l);C&&(C.delete(g),Array.from(C.entries()).length===0&&this.remoteUserMap.delete(l))})}async updateBitrateLimit(a){let A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalVideoLowTrack);A&&(await A.track.setBitrateLimit(a.uplink),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(A.track,g,C,!0)})),l&&a.low_stream_uplink&&(await l.track.setBitrateLimit({max_bitrate:a.low_stream_uplink.bitrate,min_bitrate:a.low_stream_uplink.bitrate||0}),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(l.track,g,C,!0)}))}isP2PDisconnected(){return this.connection?this.connection.peerConnectionState!=="connected":!0}isPreallocation(){return!(!this.connection||!("name"in this.connection)||this.connection.name!=="DataChannelConnection"||this.connection.peerConnectionState==="closed")||this.connection instanceof Gc&&this.connection.isPreallocation}isPreSub(){return(this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof Gc)&&this.connection.isPreSub()}isPreRender(){return this.connection instanceof Gc&&this.connection.isPreRender}mapPubResToRemoteConfig(a,A,l){return a.map((g,C)=>{var m;let{stream_type:y}=g,w=(m=A.find(b=>{let{stream_type:M}=b;return y===M}))===null||m===void 0?void 0:m.attributes;if(w&&Ie("DISABLE_SCREEN_SHARE_REMB")){let b=l[C]._hints;(Rt(b).call(b,$i.SCREEN_TRACK)||Rt(b).call(b,$i.SCREEN_LOW_TRACK))&&(w.remb=!1,X.debug("disable remb for screen share, hints:",b))}return w})}async tryToUnmuteAudio(a){for(let l=0;l{let[,{id:y}]=m;return y})));let C=this.createUnmuteMessage(g);return void await Wn(this,hr.RequestUnmuteLocal,C)}}bindStatsUploaderEvents(){this.statsUploader.requestStats=()=>this.getStats(),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=a=>{var A;return!((A=this.connection)===null||A===void 0||!A.getRemoteVideoIsReady(a))},this.statsUploader.requestUpload=(a,A)=>this.emit(hr.RequestUpload,a,A),this.statsUploader.requestUploadStats=a=>this.emit(hr.RequestUploadStats,a),this.statsUploader.requestAllTracks=()=>this.getAllTracks(),this.statsUploader.requestTransportStats=()=>{var a;return{connectState:((a=this.connection)===null||a===void 0?void 0:a.peerConnectionState)||"closed"}}}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await Ks(Y1(this.dtlsFailedCount,os)),this.emit(hr.RequestReconnect)}async reconnectP2P(){let a=Array.from(this.localTrackMap.entries()),A=this.createGatewayUnpublishMessage(a);Array.from(this.remoteUserMap.entries()),A.length>0&&await rs(this,hr.RequestUnpublishForReconnectPC,A),this.disconnectForReconnect(),this.emit(hr.RequestReconnectPC)}canPublishLowStream(){return this.localTrackMap.has(St.LocalVideoTrack)||this.pendingLocalTracks.some(a=>a instanceof Pi)}throwIfTrackTypeNotMatch(a){if(a.filter(A=>A instanceof Pi).length>1)throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(a.filter(A=>A instanceof xt).length>1&&(a.some(A=>A instanceof xt&&A._bypassWebAudio)||!Bi().webAudioMediaStreamDest))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(let A of a){if(A instanceof Pi&&this.pendingLocalTracks.some(l=>l instanceof Pi))throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(A instanceof xt&&this.pendingLocalTracks.some(l=>l instanceof xt)&&(!Bi().webAudioMediaStreamDest||A._bypassWebAudio||this.pendingLocalTracks.some(l=>l instanceof xt&&l._bypassWebAudio)))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(a,A){var l;let g=!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding,C=IA(IA({},{width:160,height:120,framerate:15,bitrate:50}),A),m;m=g?a._mediaStreamTrack.clone():PN(a,C);let y=yn(8,"track-low-"),w=new Pi(m,IA(IA({},g&&{scaleResolutionDownBy:pN(C,a)}),{},{frameRate:C.framerate,bitrateMax:C.bitrate,bitrateMin:C.bitrate}),void 0,void 0,y);return w.on(Wl.TRANSCEIVER_UPDATED,b=>{a._updateRtpTransceiver(b,bg.LOW_STREAM)}),w._hints.push($i.LOW_STREAM),Rt(l=a._hints).call(l,$i.SCREEN_TRACK)&&w._hints.push($i.SCREEN_LOW_TRACK),a.on("sei-to-send",b=>{w.emit("sei-to-send",b)}),a.addListener(nr.NEED_CLOSE,()=>{w.close()}),w}async globalLock(){return this.mutex.lock("From P2PChannel.globalLock")}async reportPCStats(a,A,l){let g=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;if(this.connection&&this.connection instanceof Gc){var C,m,y,w;let b=this.store.keyMetrics.descriptionStart||0,{iceConnectionState:M,dtlsTransportState:k,peerConnectionState:V}=this.connection,{local:K,remote:q}=await this.connection.getSelectedCandidatePair();tr.pcStats(this.store.sessionId,{startTime:b,eventElapse:a-b||0,iceconnectionsate:M,dtlsstate:k,connectionstate:V,intSucc:A?1:2,error:this._iceError||g||"",selectedLocalCandidateProtocol:(C=K==null?void 0:K.protocol)!==null&&C!==void 0?C:"",selectedLocalCandidateType:(m=K.candidateType)!==null&&m!==void 0?m:"",selectedLocalCandidateAddress:"".concat(K.address,":").concat(K.port),selectedRemoteCandidateProtocol:(y=q.protocol)!==null&&y!==void 0?y:"",selectedRemoteCandidateType:(w=q.candidateType)!==null&&w!==void 0?w:"",selectedRemoteCandidateAddress:"".concat(q.address,":").concat(q.port),restartCnt:l,preallocation:this.connection.isPreallocation}),this._iceError=null}}reportVideoFirstFrameRender(a){let A=this.store.keyMetrics,l=A.firstVideoFrameDecoded.find(k=>k.userId===a.uid);if(!l)return;let{isInternalUpload:g,isExternalUpload:C}=l;if(g&&C)return;let{subscribeEnd:m,firstPreRender:y,peerPublishDuration:w,peerPubStatusMs:b}=l,{firstRender:M=0}=l;if(m&&(M||y)&&w&&b){l.isInternalUpload=!0;let{playEnd:k}=l;k&&(l.isExternalUpload=!0);let{firstPreRender:V=0}=l;M=V||M;let K=a.videoTrack,q={peer:a._uintid,width:(K==null?void 0:K._videoWidth)||0,height:(K==null?void 0:K._videoHeight)||0,ssrc:a._videoSSRC||0,p2pid:this.store.p2pId,peerPublishDuration:w,peerPubStatusMs:b,joinChannelStart:A.joinStart||0,preloadStart:A.preloadStart||0,preloadEnd:A.preloadEnd||0,apStart:A.requestAPStart||0,apEnd:A.requestAPEnd||0,suaEnd:A.requestSUAEnd||0,beforeConnect:A.beforeConnect||0,peerReceiver:A.peerReceiver||0,ice:A.iceConnectionEnd||0,pc:A.peerConnectionEnd||0,signalConnected:A.signalConnected||0,joinReq:A.joinReq||0,joinRes:A.joinRep||0,userJoinNotify:l.userJoinNotify||0,videoAddNotify:l.videoAddNotify||0,subscribeStart:l.subscribeStart||0,subscribeEnd:l.subscribeEnd||0,firstReceived:l.firstReceived||0,firstDecoded:l.firstDecoded||0,firstPreRender:V||0,firstRender:k?Math.max(M,k):Math.max(M,m),playStart:l.playStart||0,playEnd:l.playEnd||0,isPreSub:!(!a._videoSSRC||!this.isPreSubScribe(a._videoSSRC)),isPrePc:this.isPreallocation(),isPreInstantVideo:Lf(this.store),firstReceivedEncodedFrame:l.firstReceivedEncodedFrame||0,frameType:l.frameType||"",rtpTimestamp:l.rtpTimestamp||0,framePayloadType:l.framePayloadType||0,frameDataLength:l.frameDataLength||0,mimeType:l.mimeType||""};tr.firstXLAPeerFirstVideoFrame(this.store.sessionId,q)}}reportVideoFirstFrameDecoded(a,A,l,g){var C;let m=Array.from(Hs(C=this.remoteUserMap).call(C)).find(y=>y._videoSSRC===a);if(m){g||this.store.subscribe(m.uid,"video",void 0,void 0,void 0,void 0,Date.now());let y=this.store.keyMetrics,w=y.subscribe.find(b=>b.userId===m.uid&&b.type==="video");tr.firstRemoteVideoDecode(this.store.sessionId,Cs.FIRST_VIDEO_DECODE,Eo.FIRST_VIDEO_DECODE,{peer:m._uintid,videowidth:A,videoheight:l,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId,apEnd:y.requestAPEnd||0,apStart:y.requestAPStart||0,joinGwEnd:y.joinGatewayEnd||0,joinGwStart:y.joinGatewayStart||0,pcEnd:y.peerConnectionEnd||0,pcStart:y.peerConnectionStart||0,subscriberEnd:(w==null?void 0:w.subscribeEnd)||0,subscriberStart:(w==null?void 0:w.subscribeStart)||0,videoAddNotify:(w==null?void 0:w.streamAdded)||0,state:g?1:0,firstFrame:(w==null?void 0:w.firstFrame)||0})}}async remoteMediaSsrcChanged(a,A,l){if(!this.connection)return!1;let g=this.remoteUserMap.get(a);if(!g)return!1;let C=g.get(A);if(!C)return!1;let m=await this.connection.getRemoteSSRC(C);return m!==void 0&&m!==l}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(a=>{let[A,{track:l}]=a;A===St.LocalVideoLowTrack?l._updateRtpTransceiver(void 0,bg.LOW_STREAM):l._updateRtpTransceiver(void 0)})}},Vt(Di.prototype,"startP2PConnection",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"startP2PConnection"),Di.prototype),Vt(Di.prototype,"connect",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"connect"),Di.prototype),Vt(Di.prototype,"updateRemoteRTPCapabilities",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"updateRemoteRTPCapabilities"),Di.prototype),Vt(Di.prototype,"publishDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"publishDataChannel"),Di.prototype),Vt(Di.prototype,"unpublish",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unpublish"),Di.prototype),Vt(Di.prototype,"unpublishDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unpublishDataChannel"),Di.prototype),Vt(Di.prototype,"unpublishLowStream",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unpublishLowStream"),Di.prototype),Vt(Di.prototype,"subscribeDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"subscribeDataChannel"),Di.prototype),Vt(Di.prototype,"subscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"subscribe"),Di.prototype),Vt(Di.prototype,"massSubscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"massSubscribe"),Di.prototype),Vt(Di.prototype,"unsubscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unsubscribe"),Di.prototype),Vt(Di.prototype,"unsubscribeDataChannel",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unsubscribeDataChannel"),Di.prototype),Vt(Di.prototype,"massUnsubscribe",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"massUnsubscribe"),Di.prototype),Vt(Di.prototype,"muteRemote",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"muteRemote"),Di.prototype),Vt(Di.prototype,"unmuteRemote",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"unmuteRemote"),Di.prototype),Vt(Di.prototype,"hasRemoteMediaWithLock",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"hasRemoteMediaWithLock"),Di.prototype),Vt(Di.prototype,"disconnectForReconnect",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"disconnectForReconnect"),Di.prototype),Vt(Di.prototype,"updateBitrateLimit",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"updateBitrateLimit"),Di.prototype),Vt(Di.prototype,"remoteMediaSsrcChanged",[Aa],Object.getOwnPropertyDescriptor(Di.prototype,"remoteMediaSsrcChanged"),Di.prototype),Di);function Aa(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From P2PChannel.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b0&&(g.firstRecvTs=Date.now()-m);let w=l.mediaDelay+y;w<=0?(A.pop(),zC(l.context,C),w=0):w=Math.min(w,Rh),setTimeout(()=>A.length&&Jo(a),w)}function zC(a,A){a.safeEmit(si.STREAM_MESSAGE,A.uid,A.payload),a.onStreamMessage&&a.onStreamMessage(A)}function GN(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,l=arguments.length>2?arguments[2]:void 0;if(!a.syncWithAudio)return zC(l,{uid:a.uid,payload:a.payload});let g="".concat(l.id,"-").concat(a.uid),C=oc.get(g)||[],m=C.findIndex(M=>a.sendTs>=M.sendTs),y=Kg(Kg({},a),{},{context:l,mediaDelay:A,recvTs:Date.now()});m===-1?C.push(y):C.splice(m,0,y),oc.set(g,C);let w=!1;var b;S1.has(g)?w=!((b=S1.get(g))===null||b===void 0||!b.isSyncing):S1.set(g,{isSyncing:w,firstRecvTs:0,firstSendTs:0}),w||Jo(g)}let m7=Wi().name;function $2(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function VN(a){for(var A=1;A{let m=l.shift();m&&await m(),l.length>0&&g{l.push(async()=>{try{let k=await a(...y);b(k)}catch(k){M(k)}}),g{X.warn("Your browser does not support preloading, this feature be run in a secure environment")},"preload_webcrypto_not_supported");if(!l&&l!==null)throw new nt(fe.INVALID_PARAMS,"Invalid token: ".concat(l,". If you don not use token, set it to null"));l&&Tr(l,"token",1,2047),Tr(a,"appid",1,2047),t_(A),g&&r_(g);let w=Ln();X.debug("preload channel ".concat(A,", uid is ").concat(g));let b={appId:a,cname:A,token:l||a,uid:typeof g!="string"?g:null,sid:w,proxyServer:C,role:y},M,k;typeof g=="string"?(b.stringUid=g,[k,M]=await Ft.all([hA(g,{sid:w,appId:a},rI.token),Hy(VN(VN({},b),{},{token:l||a,uid:0}),rI.token)]),b.uid=k.uid,M.gatewayInfo.uid=b.uid,M.gatewayInfo.res.uid=b.uid):(m&&(b.stringUid=m),M=await Hy(b,rI.token));let V={sid:w,appId:a,cname:A,token:l||a,uid:b.stringUid||g,intUid:b.uid||M.gatewayInfo.uid,stringUid:b.stringUid,ts:Date.now(),sua:k,ap:M};await iI(V),Zy++}catch(w){throw eQ++,function(b){tI||(tI=window.setTimeout(()=>{let k="";f_.forEach((V,K)=>{k+="".concat(K,": ").concat(V," ;")}),tr.reportApiInvoke(null,{name:Co.PRELOAD,options:{success:Zy,failed:eQ,err:k}}).onError(b),Zy=0,eQ=0,f_.clear(),tI=null},Vu));let M=f_.get(b.code)||0;f_.set(b.code,M+1)}(w),w}}async function tQ(a){try{if(Ie("AP_REQUEST_DETAIL")||Ie("ENABLE_ROLE_SELECT_EDGE"))return;let A=ep(a);if(!A||a.cloudProxyServer!=="disabled")return;let l=await async function(g,C){try{let m=await window.crypto.subtle.importKey("raw",$b(C),"AES-GCM",!1,["decrypt"]),y=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:B7},m,th(g));return JSON.parse(window.atob(Md(new Uint8Array(y))))}catch{return}}(A,a.token||a.appId);if(!l||!function(g,C){return g.cname===C.cname&&g.appId===C.appId&&g.token===C.token?C.stringUid?g.stringUid===C.stringUid:typeof C.uid=="number"?g.uid===C.uid:g.uid==C.uid:!1}(l,a))return;if(l&&Date.now()-l.ts=0;b--)if(w(y[b]))return b;return-1}(l,y=>g in y);if(C===-1)return;let m=l.splice(C,1)[0];return iQ(yh,JSON.stringify(l)),m[g]}catch(l){X.warn("Error delete preload info: ".concat(A),l.message),iQ(yh,"")}}async function iI(a){let A;try{a.uid&&ep({appId:a.appId,cname:a.cname,token:a.token,uid:a.uid,stringUid:a.stringUid});let l=y7(a),g=await async function(m,y){try{let w=await window.crypto.subtle.importKey("raw",$b(y),"AES-GCM",!1,["encrypt"]),b=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:B7},w,th(window.btoa(JSON.stringify(m))));return Md(new Uint8Array(b))}catch{return}}(a,a.token||a.appId);if(!g)return;A=R7(yh);let C=A?JSON.parse(A):[];C.push({[l]:g}),C.length>Ie("AP_CACHE_NUM")&&C.shift(),iQ(yh,JSON.stringify(C))}catch(l){X.warn("Error caching server parameters:",l.message),iQ(yh,"")}}function rQ(a){if(a){let A=Xd.get(a);A&&(window.clearTimeout(A),A=null,Xd.delete(a)),Rt(eI).call(eI,a)||a.cloudProxyServer!=="disabled"||eI.push(a)}if(Xd.size0){let A=eI.shift();Xd.set(A,window.setTimeout(async()=>{let{appId:l,cname:g,token:C,stringUid:m,uid:y,proxyServer:w,role:b}=A;try{await iq(l,g,C,y,w,m,b),Xd.has(A)&&rQ(A)}catch(M){X.warn("update preload failed",M.message),KN(A)}},Ie("AP_UPDATE_INTERVAL")))}}function KN(a){let A=eI.indexOf(a);A!==-1&&eI.splice(A,1);let l=Xd.get(a);l&&(window.clearTimeout(l),l=null,Xd.delete(a),rQ())}function S7(a,A){let l=a.sua,g=a.ap;A&&l&&tr.reqUserAccount(a.sid,{lts:l.requestTime,elapse:l.elapse,success:!0,serverAddr:l.url,stringUid:A,uid:a.intUid,errorCode:null,extend:l.req}),tr.reportResourceTiming(a.ap.url,a.sid),tr.joinWebProxyAP(a.sid,{lts:g.requestTime,elapse:g.elapse,sucess:1,apServerAddr:g.url,turnServerAddrList:g.proxyInfo.addresses.map(C=>C.ip).join(","),eventType:"disabled",unilbsServerIds:[ps.CHOOSE_SERVER,ps.CLOUD_PROXY_FALLBACK].toString()}),tr.joinChooseServer(a.sid,{lts:g.requestTime,elapse:g.elapse,succ:!0,csAddr:g.url,opid:g.opid,serverList:g.gatewayInfo.gatewayAddrs.map(C=>C.address),ec:null,cid:g.gatewayInfo.cid.toString(),uid:g.gatewayInfo.uid.toString(),csIp:g.gatewayInfo.csIp,unilbsServerIds:[ps.CHOOSE_SERVER].toString(),isHttp3:g.isHttp3})}function R7(a){return window.atob(window.localStorage.getItem(a)||"")}function iQ(a,A){window.localStorage.setItem(a,window.btoa(A))}function y7(a){let A="".concat(a.appId,"_").concat(a.cname);return typeof a.uid=="string"&&(A+="_s_".concat(a.uid)),typeof a.uid=="number"&&(A+="_".concat(a.uid)),a.token&&(A+="_".concat(a.token)),Df(A)}function nQ(a){let A=function(){let l=aq.pop();return l?(l.offset=l.limit=0,l):{bytes:new Uint8Array(64),offset:0,limit:0}}();return function(l,g){let C=l.appId;C!==void 0&&(Vo(g,10),Qh(g,C));let m=l.cid;m!==void 0&&(Vo(g,16),Vo(g,m));let y=l.cname;y!==void 0&&(Vo(g,26),Qh(g,y));let w=l.deviceId;w!==void 0&&(Vo(g,34),Qh(g,w));let b=l.elapse;b!==void 0&&(Vo(g,40),Th(g,b));let M=l.fileSize;M!==void 0&&(Vo(g,48),Th(g,tp(M)));let k=l.height;k!==void 0&&(Vo(g,56),Th(g,tp(k)));let V=l.jpg;V!==void 0&&(Vo(g,66),Vo(g,V.length),T7(g,V));let K=l.networkType;K!==void 0&&(Vo(g,72),Th(g,tp(K)));let q=l.osType;q!==void 0&&(Vo(g,80),Th(g,tp(q)));let ce=l.requestId;ce!==void 0&&(Vo(g,90),Qh(g,ce));let oe=l.sdkVersion;oe!==void 0&&(Vo(g,98),Qh(g,oe));let le=l.sequence;le!==void 0&&(Vo(g,104),Th(g,tp(le)));let pe=l.sid;pe!==void 0&&(Vo(g,114),Qh(g,pe));let Se=l.timestamp;Se!==void 0&&(Vo(g,120),Th(g,Se));let be=l.uid;be!==void 0&&(Vo(g,128),Vo(g,be));let Ue=l.vid;Ue!==void 0&&(Vo(g,136),Vo(g,Ue));let xe=l.width;xe!==void 0&&(Vo(g,144),Th(g,tp(xe)));let Le=l.service;Le!==void 0&&(Vo(g,152),Vo(g,Le));let je=l.callbackData;je!==void 0&&(Vo(g,162),Vo(g,je.length),T7(g,je));let dt=l.ticket;dt!==void 0&&(Vo(g,170),Qh(g,dt));let pt=l.vendorConfigs;pt!==void 0&&(Vo(g,178),Qh(g,pt))}(a,A),function(l){let g=l.bytes,C=l.limit;return g.length===C?g:g.subarray(0,C)}(A)}function oq(a){return function(l){let g={};e:for(;!Q7(l);){let C=S_(l);switch(C>>>3){case 0:break e;case 1:g.code=S_(l);break;case 2:g.msg=B_(l,S_(l));break;case 3:g.requestId=B_(l,S_(l));break;case 4:g.timestamp=v7(l,!1);break;default:sq(l,7&C)}}return g}({bytes:A=a,offset:0,limit:A.length});var A}function sq(a,A){switch(A){case 0:for(;128&id(a););break;case 2:rp(a,S_(a));break;case 5:rp(a,4);break;case 1:rp(a,8);break;default:throw new Error("Unimplemented type: "+A)}}function tp(a){return{low:a|=0,high:a>>31,unsigned:a>=0}}let aq=[];function rp(a,A){if(a.offset+A>a.limit)throw new Error("Skip past limit");a.offset+=A}function Q7(a){return a.offset>=a.limit}function __(a,A){let l=a.bytes,g=a.offset,C=a.limit,m=g+A;if(m>l.length){let y=new Uint8Array(2*m);y.set(l),a.bytes=y}return a.offset=m,m>C&&(a.limit=m),g}function m_(a,A){let l=a.offset;if(l+A>a.limit)throw new Error("Read past limit");return a.offset+=A,l}function T7(a,A){let l=__(a,A.length);a.bytes.set(A,l)}function B_(a,A){let l=m_(a,A),g=String.fromCharCode,C=a.bytes,m="�",y="";for(let w=0;w=A?y+=m:(b=C[w+l+1],(192&b)!=128?y+=m:(V=(31&K)<<6|63&b,V<128?y+=m:(y+=g(V),w++))):(240&K)==224?w+2>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],(49344&(b|M<<8))!=32896?y+=m:(V=(15&K)<<12|(63&b)<<6|63&M,V<2048||V>=55296&&V<=57343?y+=m:(y+=g(V),w+=2))):(248&K)==240?w+3>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],k=C[w+l+3],(12632256&(b|M<<8|k<<16))!=8421504?y+=m:(V=(7&K)<<18|(63&b)<<12|(63&M)<<6|63&k,V<65536||V>1114111?y+=m:(V-=65536,y+=g(55296+(V>>10),56320+(1023&V)),w+=3))):y+=m:y+=g(K)}return y}function Qh(a,A){let l=A.length,g=0;for(let y=0;y=55296&&w<=56319&&y+1=55296&&w<=56319&&y+1>6&31|192:(w<65536?m[C++]=w>>12&15|224:(m[C++]=w>>18&7|240,m[C++]=w>>12&63|128),m[C++]=w>>6&63|128),m[C++]=63&w|128)}}function id(a){return a.bytes[m_(a,1)]}function w7(a,A){let l=__(a,1);a.bytes[l]=A}function S_(a){let A,l=0,g=0;do A=id(a),l<32&&(g|=(127&A)<>>=0;A>=128;)w7(a,127&A|128),A>>>=7;w7(a,A)}function v7(a,A){let l,g=0,C=0,m=0;return l=id(a),g=127&l,128&l&&(l=id(a),g|=(127&l)<<7,128&l&&(l=id(a),g|=(127&l)<<14,128&l&&(l=id(a),g|=(127&l)<<21,128&l&&(l=id(a),C=127&l,128&l&&(l=id(a),C|=(127&l)<<7,128&l&&(l=id(a),C|=(127&l)<<14,128&l&&(l=id(a),C|=(127&l)<<21,128&l&&(l=id(a),m=127&l,128&l&&(l=id(a),m|=(127&l)<<7))))))))),{low:g|C<<28,high:C>>>4|m<<24,unsigned:A}}function Th(a,A){let l=A.low>>>0,g=(A.low>>>28|A.high<<4)>>>0,C=A.high>>>24,m=C===0?g===0?l<16384?l<128?1:2:l<1<<21?3:4:g<16384?g<128?5:6:g<1<<21?7:8:C<128?9:10,y=__(a,m),w=a.bytes;switch(m){case 10:w[y+9]=C>>>7&1;case 9:w[y+8]=m!==9?128|C:127&C;case 8:w[y+7]=m!==8?g>>>21|128:g>>>21&127;case 7:w[y+6]=m!==7?g>>>14|128:g>>>14&127;case 6:w[y+5]=m!==6?g>>>7|128:g>>>7&127;case 5:w[y+4]=m!==5?128|g:127&g;case 4:w[y+3]=m!==4?l>>>21|128:l>>>21&127;case 3:w[y+2]=m!==3?l>>>14|128:l>>>14&127;case 2:w[y+1]=m!==2?l>>>7|128:l>>>7&127;case 1:w[y]=m!==1?128|l:127&l}}let R_={},wh={},oQ=4294967296,Aq=oQ*oQ,nd=Aq/2;YN(0,!0);let HN=YN(0),D7=vh(0,-2147483648,!1),cq=vh(-1,2147483647,!1);function YN(a,A){let l,g,C;return A?(C=0<=(a>>>=0)&&a<256)&&(g=wh[a],g)?g:(l=vh(a,0,!0),C&&(wh[a]=l),l):(C=-128<=(a|=0)&&a<128)&&(g=R_[a],g)?g:(l=vh(a,a<0?-1:0,!1),C&&(R_[a]=l),l)}function vh(a,A,l){return{low:0|a,high:0|A,unsigned:!!l}}function y_(a,A){if(isNaN(a))return HN;{if(a<=-9223372036854776e3)return D7;if(a+1>=nd)return cq}return a<0?HN:vh(a%oQ|0,a/oQ|0,A)}function Ku(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}class Q_ extends io{get connectionState(){return this._connectionState}set connectionState(A){if(this._connectionState===A)return;let l=this._connectionState;this._connectionState=A,this.emit(Pc.CONNECTION_STATE_CHANGE,A,l)}get quality(){return this._quality}set quality(A){this._quality=A>1?1:A<.1?.1:A,this._qualityTimer&&(window.clearTimeout(this._qualityTimer),this._qualityTimer=null),this._quality>=1||(this._qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this._qualityRatio},6e4))}constructor(A){var l;super(),Ae(this,"name","AgoraRTCImageModeration"),Ae(this,"_connectionState",ba.CONNECTING),Ae(this,"_sequence",0),Ae(this,"_moderationStartTime",void 0),Ae(this,"_workerConnection",void 0),Ae(this,"_workerMessageLengthLimit",void 0),Ae(this,"_qualityRatio",void 0),Ae(this,"_connectInfo",void 0),Ae(this,"_cancelTokenSource",vA.CancelToken.source()),Ae(this,"_retryConfig",void 0),Ae(this,"_moderationInterval",void 0),Ae(this,"_moderationTimer",null),Ae(this,"_moderationMode",1),Ae(this,"_quality",1),Ae(this,"_qualityTimer",null),Ae(this,"_ticket",void 0),Ae(this,"_moderationIntervalMinimum",void 0),Ae(this,"_uploadFailedNum",0),Ae(this,"_uploadNum",0),Ae(this,"_uploadTimer",null),Ae(this,"_extraInfo",void 0),Ae(this,"_vendor",""),Ae(this,"_encoder",new TextEncoder),Ae(this,"_moderationId",void 0),Ae(this,"inspectImage",()=>{if(this.connectionState!==ba.CONNECTED)throw new ze(fe.OPERATION_ABORTED,"image moderation service connection status is ".concat(this.connectionState));this._moderationTimer&&(window.clearInterval(this._moderationTimer),this._moderationTimer=null),this._moderationTimer=window.setInterval(()=>{this.connectionState===ba.CONNECTED?this.requestToInspectImage():X.debug("[".concat(this._moderationId,"] Moderation State is not connected , "),this.connectionState)},this._moderationInterval{X.debug("[".concat(this._moderationId,"] Moderation operation :").concat(b2[g]," ").concat(C||""))}),this.handleWorkerEvents()}async init(A,l){this.emit(Pc.STATE_CHANGE,b2.CONNECT_AP),this._connectInfo=A;let g=this._cancelTokenSource.token;return this._retryConfig=l,new Ft((C,m)=>{this.on(Pc.CONNECTION_STATE_CHANGE,(y,w)=>{y===ba.CONNECTED&&C()}),this.requestAP(A,g,l).then(y=>{this.connectWorker(y)}).catch(y=>{m(y)})})}updateConfig(A){var l;this._moderationInterval=(l=A.interval)!==null&&l!==void 0?l:1e3,A.extraInfo&&(this._extraInfo=this._encoder.encode(A.extraInfo)),A.vendor&&(this._vendor=A.vendor),X.debug("[".concat(this._moderationId,"] updateConfig: ").concat(JSON.stringify(A))),this.connectionState===ba.CONNECTED&&this.inspectImage()}async requestAP(A,l,g){let C=Ie("WEBCS_DOMAIN").map(b=>"https://".concat(b,"/api/v1")),m=await function(b,M,k,V){let{appId:K,areaCode:q,cname:ce,sid:oe,token:le,uid:pe}=M;x2++;let Se="moderation_plugin",be={service_name:Se,json_body:JSON.stringify({appId:K,areaCode:q,cname:ce,command:"allocateEdge",requestId:x2,seq:x2,sid:oe,appToken:le,ts:Date.now(),uid:pe+""})},Ue,xe,Le=b[0];return jl(async()=>{Ue=Date.now();let je=await iA(Le,{data:be,cancelToken:k,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(xe=Date.now()-Ue,je.code!==0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap error, code"+je.code,{retry:!0,responseTime:xe});throw X.error(gr.toString()),gr}let dt=JSON.parse(je.json_body);if(dt.code!==200){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap error, code: ".concat(dt.code,", reason: ").concat(dt.reason),{code:dt.code,responseTime:xe});throw X.error(gr.toString()),gr}if(!dt.servers||!Array.isArray(dt.servers)||dt.servers.length===0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap empty server",{code:dt.code,responseTime:xe});throw X.error(gr.toString()),gr}if(!dt.servers.some(gr=>!!gr.wss)){let gr=new ze(fe.UNEXPECTED_RESPONSE,"moderation plugin ap empty port",{code:dt.code,responseTime:xe});throw X.error(gr.toString()),gr}let pt=Ie("IMAGE_MODERATION_WORKER_WSS");if(pt)return{addressList:[pt],workerToken:dt.workerToken,vid:dt.vid,responseTime:xe};let zt=Ie("IMAGE_MODERATION_WORKER_HOST");return{addressList:dt.servers.map(gr=>{let{address:li,wss:ii}=gr;if(li&&ii)return"wss://".concat(li.replace(/\./g,"-"),".").concat(zt,":").concat(ii,"/moderation")}).filter(gr=>!!gr),workerToken:dt.workerToken,vid:dt.vid,ticket:dt.appTicket,responseTime:xe}},(je,dt)=>(tr.apworkerEvent(oe,{success:!0,sc:200,serviceName:Se,responseDetail:JSON.stringify(je.addressList),firstSuccess:dt===0,responseTime:xe,serverIp:b[dt%b.length]}),!1),(je,dt)=>(tr.apworkerEvent(oe,{success:!1,sc:je.data&&je.data.code||200,serviceName:Se,responseTime:xe,serverIp:b[dt%b.length]}),!!(je.code!==fe.OPERATION_ABORTED&&je.code!==fe.UNEXPECTED_RESPONSE||je.data&&je.data.retry)&&(Le=b[(dt+1)%b.length],!0)),V)}(C,A,l,g);this.emit(Pc.STATE_CHANGE,b2.AP_CONNECTED);let{addressList:y,ticket:w}=m;return this._ticket=w,y}async connectWorker(A){this.emit(Pc.STATE_CHANGE,b2.CONNECT_WORKER),await this._workerConnection.init(A,1e4)}handleWorkerEvents(){this._workerConnection.on(qr.CONNECTED,async()=>{this.emit(Pc.STATE_CHANGE,b2.WORKER_CONNECTED,this._workerConnection.url),this.connectionState=ba.CONNECTED}),this._workerConnection.on(qr.CLOSED,()=>{this.connectionState=ba.CLOSED}),this._workerConnection.on(qr.FAILED,()=>{this.connectionState=ba.CLOSED}),this._workerConnection.on(qr.RECONNECTING,()=>{this.connectionState=this.connectionState===ba.CONNECTED?ba.RECONNECTING:ba.CONNECTING}),this._workerConnection.on(qr.ON_MESSAGE,async A=>{if(A.data instanceof ArrayBuffer){let l=oq(new Uint8Array(A.data));Ie("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&X.debug("[".concat(this._moderationId,"] Response message for worker of image moderation "),JSON.stringify(l)),this._uploadNum++,l.code===void 0||l.code===0||(this._uploadFailedNum++,X.error("[".concat(this._moderationId,"] Error response from worke, code is ").concat(l.code,", msg is ").concat(l.msg)),this._uploadTimer||(this._uploadTimer=window.setTimeout(()=>{tr.reportApiInvoke(this._connectInfo.sid||null,{name:Co.IMAGE_MODERATION_UPLOAD,options:[this._uploadFailedNum,this._uploadNum,l.code],tag:Gn.TRACER}).onError(new ze(fe.IMAGE_MODERATION_UPLOAD_FAILED,l.msg)),this._uploadTimer=null},Ie("IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL"))))}else X.error("[".concat(this._moderationId,"] Unexpected message type from worker"))}),this._workerConnection.on(qr.WILL_RECONNECT,(A,l,g)=>{A==="recover"&&g(A),g("tryNext")}),this._workerConnection.on(qr.REQUEST_NEW_URLS,(A,l)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(A).catch(l)})}static intToLong(A){return{low:A|=0,high:A>>31,unsigned:A>=0}}async requestToInspectImage(){let A=JA(this,Pc.CLIENT_LOCAL_VIDEO_TRACK),l={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(A){if(!A.isPlaying)return void(Ie("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&X.debug("Only the track being played can be inspected"));this._sequence++;let g=await this.generateRequestData(A,l);this._workerConnection.sendMessage(g,!0,!0)}else Ie("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&X.debug("Only the track being published can be inspected")}async generateRequestData(A,l){let{appId:g,cname:C,cid:m,vid:y,sid:w,uid:b}=l,M=Date.now(),k=await A.getCurrentFrameImage("image/jpeg",this.quality),V=await XR(k,g,C),K=this._sequence+"-"+m+"-"+b+"-"+M+"-"+yn(12,""),q={appId:g,cid:m,cname:C,deviceId:"",elapse:Q_.intToLong(Number(M-this._moderationStartTime)),fileSize:k.buffer.byteLength,height:k.height,width:k.width,jpg:V,networkType:6,osType:7,requestId:K,sdkVersion:"4.24.2",sequence:this._sequence,sid:w,timestamp:y_(M),uid:b,vid:y,service:this._moderationMode,ticket:this._ticket,callbackData:this._extraInfo,vendorConfigs:this._vendor};this._extraInfo===void 0&&delete q.callbackData;let ce=nQ(q);if(ce.byteLength1024)throw new ze(fe.INVALID_PARAMS,"config.extraInfo length cannot exceed 1024 bytes");if(a&&a.vendor&&a.vendor.length>1024)throw new ze(fe.INVALID_PARAMS,"config.vendor length cannot exceed 1024 bytes")}let aQ={name:"ImageModeration",create:function(a){let{config:A}=a;return sQ(A),new Q_(A)}};var T_,AQ,ca,jN,b7,Dh,JN,qN,WN,XN,cQ,lQ,zN,N7,$N,O7,Hu,L7,ZN,M7,k7,ip,dQ,uQ,P7,eO,U7,w_,tO,rO,iO,x7,nO,F7,gQ,fo,np,G7,op,v_,sc,Hg,Jt;function xa(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function ac(a){for(var A=1;A{if(!Array.isArray(A)){if(!(A instanceof UC))return[A];A=[A]}return A.map(l=>l?Object(l).toString():"null")}}),ca=Sr({argsMap:(a,A)=>(A||(A=[]),Array.isArray(A)||A.trackMediaType!==PC.DATA?(Array.isArray(A)||(A=[A]),A.map(l=>l.getTrackId())):[A.getChannelId()])}),jN=Sr({argsMap:(a,A,l,g)=>[typeof A=="object"?A.uid:A,l,g]}),b7=Sr({argsMap:(a,A,l)=>[A,l]}),Dh=Sr({argsMap:(a,A)=>A.map(l=>{let{user:g,mediaType:C}=l;return[g==null?void 0:g.uid,C]})}),JN=Sr({argsMap:(a,A,l,g)=>[typeof A=="object"?A.uid:A,l,g]}),qN=Sr({argsMap:(a,A)=>A.map(l=>{let{user:g,mediaType:C}=l;return{uid:g==null?void 0:g.uid,mediaType:C}})}),WN=Sr(),XN=Sr(),cQ=Sr(),lQ=Sr(),zN=Sr(),N7=Sr(),$N=Sr(),O7=Sr(),Hu=Sr(),L7=Sr(),ZN=Sr(),M7=Sr(),k7=Sr(),ip=Sr(),dQ=Sr(),uQ=Sr(),P7=Sr({argsMap:(a,A)=>[A]}),eO=Sr(),U7=Sr(),w_=Sr(),tO=Sr(),rO=Sr(),iO=Sr(),x7=Sr(),nO=Sr(),F7=Sr({argsMap:(a,A)=>(Array.isArray(A)||(A=[A]),[JSON.stringify(A)])}),gQ=Sr(),fo=Sr(),np=Sr(),G7=Sr(),op=Sr(),v_=Sr(),sc=Sr({reportResult:!0}),Hg=Sr(),Jt=class extends io{get connectionState(){return this._gateway.state}get remoteUsers(){return this._users}get localTracks(){return this._p2pChannel.getAllTracks(!0)}get uid(){return this._uid}get channelName(){return this._channelName}get localDataChannels(){return this._p2pChannel.getAllDataChannels()}get mode(){return this._config.mode}get role(){var a;return((a=this._config)===null||a===void 0?void 0:a.role)||"audience"}get codec(){return this._config.codec}get audioCodec(){return this._config.audioCodec||"opus"}get isStringUID(){return!!this._joinInfo&&!!this._joinInfo.stringUid}get __className__(){return"Client"}constructor(a,A){let l;if(super(),Ae(this,"store",void 0),Ae(this,"_uid",void 0),Ae(this,"_channelName",void 0),Ae(this,"_uintUid",void 0),Ae(this,"_users",[]),Ae(this,"_config",void 0),Ae(this,"_clientId",void 0),Ae(this,"_appId",void 0),Ae(this,"_sessionId",null),Ae(this,"_key",void 0),Ae(this,"_rtmConfig",{}),Ae(this,"_joinInfo",void 0),Ae(this,"_gateway",void 0),Ae(this,"_statsCollector",void 0),Ae(this,"_configDistribute",void 0),Ae(this,"_leaveMutex",void 0),Ae(this,"_publishMutex",void 0),Ae(this,"_renewTokenMutex",void 0),Ae(this,"_subscribeMutex",void 0),Ae(this,"_encryptionMode","none"),Ae(this,"_encryptionSecret",null),Ae(this,"_encryptionSalt",null),Ae(this,"_encryptDataStream",!1),Ae(this,"_encryptDataStreamKey",null),Ae(this,"_encryptDataStreamIv",null),Ae(this,"_proxyServer",void 0),Ae(this,"_turnServer",{servers:[],mode:"auto"}),Ae(this,"_cloudProxyServerMode","disabled"),Ae(this,"_isDualStreamEnabled",!1),Ae(this,"_defaultStreamFallbackType",void 0),Ae(this,"_lowStreamParameter",void 0),Ae(this,"_streamFallbackTypeCacheMap",new Map),Ae(this,"_remoteStreamTypeCacheMap",new Map),Ae(this,"_axiosCancelSource",vA.CancelToken.source()),Ae(this,"_audioVolumeIndicationInterval",void 0),Ae(this,"_networkQualityInterval",void 0),Ae(this,"_userOfflineTimeout",void 0),Ae(this,"_streamRemovedTimeout",void 0),Ae(this,"_rteDetailInterval",void 0),Ae(this,"_liveTranscodeStreamingClient",void 0),Ae(this,"_liveRawStreamingClient",void 0),Ae(this,"_channelMediaRelayClient",void 0),Ae(this,"_networkQualitySensitivity","normal"),Ae(this,"_p2pChannel",void 0),Ae(this,"_useLocalAccessPoint",!1),Ae(this,"_setLocalAPVersion",void 0),Ae(this,"_joinAndNotLeaveYet",!1),Ae(this,"_numberOfJoinCount",0),Ae(this,"_joinResponse",null),Ae(this,"_remoteDefaultVideoStreamType",void 0),Ae(this,"_inspect",void 0),Ae(this,"_moderation",void 0),Ae(this,"_license",void 0),Ae(this,"_pendingPublishedUsers",[]),Ae(this,"ntpAlignErrorCount",0),Ae(this,"remoteInboundOffset",0),Ae(this,"_peerConnectionState",void 0),Ae(this,"_pendingRtpCapabilityChange",void 0),Ae(this,"_fallbackServerInfo",void 0),Ae(this,"_dualStreamMode",void 0),Ae(this,"_handleLocalTrackEnable",(C,m,y)=>{this.publish(C,!1).then(m).catch(y)}),Ae(this,"_handleLocalTrackDisable",(C,m,y)=>{this.unpublish(C).then(m).catch(y)}),Ae(this,"_handleUserOnline",C=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C.uid,this.channelName))return void X.debug("[".concat(C.uid,"] will be ignored in local"));this.isStringUID&&typeof C.uid!="string"&&X.error("[".concat(this._clientId,"] StringUID is Mixed with UintUID"));let m=this._users.find(y=>y.uid===C.uid);if(m)m._trust_in_room_=!0,m._is_pre_created&&(m._is_pre_created=!1,this.safeEmit(si.USER_JOINED,m));else{let y=new xg(C.uid,C.uint_id||C.uid);this._users.push(y),X.debug("[".concat(this._clientId,"] user online"),C.uid),this.store.firstVideoFrameDecoded(y.uid,{userJoinNotify:Date.now()}),this.safeEmit(si.USER_JOINED,y)}}),Ae(this,"_handleUserOffline",C=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C.uid,this.channelName))return;let m=this._users.find(y=>y.uid===C.uid);m&&(this._handleRemoveStream(C),this._handleRemoveDataChannels(C),m._audio_pre_subscribed||m._video_pre_subscribed?m._is_pre_created=!0:sl(this._users,m),this._remoteStreamTypeCacheMap.delete(m.uid),this._streamFallbackTypeCacheMap.delete(m.uid),X.debug("[".concat(this._clientId,"] user offline"),C.uid,"reason:",C.reason),this.safeEmit(si.USER_LEAVED,m,C.reason))}),Ae(this,"_handleAddAudioOrVideoStream",(C,m,y,w,b,M,k,V)=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(m,this.channelName))return;let K=this._users.find(oe=>oe.uid===m);if(!K)return void X.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));X.debug("[".concat(this._clientId,"] stream added with uid ").concat(m,", type ").concat(C)),this.store.subscribe(K.uid,C,void 0,void 0,void 0,Date.now()),C==="video"&&this.store.firstVideoFrameDecoded(K.uid,{videoAddNotify:Date.now()});let q=C==="audio"?K.hasAudio:K.hasVideo;K._uintid||(K._uintid=M||m),C==="audio"?K._trust_audio_stream_added_state_=!0:K._trust_video_stream_added_state_=!0,C==="audio"?(K._audio_added_=!0,y!==void 0&&(K._audioSSRC=y),w!==void 0&&(K._cname=w),k&&(K._audioOrtc=k)):(K._video_added_=!0,y!==void 0&&(K._videoSSRC=y),w!==void 0&&(K._cname=w),V!==void 0&&(K._rtxSsrcId=V),k&&(K._videoOrtc=k)),(C==="audio"?K.hasAudio:K.hasVideo)&&!q&&(X.info("[".concat(this._clientId,"] remote user ").concat(K.uid," published ").concat(C)),this.safeEmit(si.USER_PUBLISHED,K,C)),C==="video"?tr.onGatewayStream(this._sessionId,Cs.ON_ADD_VIDEO_STREAM,Eo.ON_ADD_VIDEO_STREAM,{peer:M||m,ssrc:K._videoSSRC}):tr.onGatewayStream(this._sessionId,Cs.ON_ADD_AUDIO_STREAM,Eo.ON_ADD_AUDIO_STREAM,{peer:M||m,ssrc:K._audioSSRC}),this._p2pChannel.remoteMediaSsrcChanged(K,C,y).then(oe=>{if(oe&&(X.debug("[".concat(this._clientId,"] resubscribe ").concat(C," for user ").concat(K.uid," after rejoin because SSRC id changed.")),this._p2pChannel instanceof Wd))return this._p2pChannel.unsubscribe(K,C,!0).then(()=>this._subscribe(K,C,!0).catch(le=>{X.error("[".concat(this._clientId,"] resubscribe error"),le.toString())}))}),this._p2pChannel.hasPendingRemoteMedia(K,C)&&(X.debug("[".concat(this._clientId,"] resubscribe ").concat(C," for user ").concat(K.uid," after reconnect.")),this._subscribe(K,C,!0).catch(oe=>{X.error("[".concat(this._clientId,"] resubscribe error"),oe.toString())}));let ce=this._getEncodingName(b);C==="video"&&(ce==="unknown"?this.safeEmit(si.AV1_DECODABLE_RESULT,!1):$s()||Ma()||(ce==null?void 0:ce.toLocaleLowerCase())!==Ss.av1||XJ().then(oe=>{Ie("FLS_ENABLE_AV1_DECODE_DETECT")&&this.safeEmit(si.AV1_DECODABLE_RESULT,oe),oe||this._gateway.downgradeCodec(ce)}))}),Ae(this,"_handleRemoveStream",C=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C.uid,this.channelName))return;let m=this._users.find(w=>w.uid===C.uid);if(!m)return void X.warning("[".concat(this._clientId,"] can not find target user!(on_remove_stream)"));X.debug("[".concat(this._clientId,"] stream removed with uid ").concat(C.uid));let y=()=>{};m.hasAudio&&m.hasVideo?y=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished audio track")),this.safeEmit(si.USER_UNPUBLISHED,m,"audio"),X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished video track")),this.safeEmit(si.USER_UNPUBLISHED,m,"video")}:m.hasVideo?y=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished video track")),this.safeEmit(si.USER_UNPUBLISHED,m,"video")}:m.hasAudio&&(y=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(m.uid," unpublished audio track")),this.safeEmit(si.USER_UNPUBLISHED,m,"audio")}),m._video_pre_subscribed||m._audio_pre_subscribed||(m._trust_audio_stream_added_state_=!0,m._trust_video_stream_added_state_=!0,m._audio_added_=!1,m._video_added_=!1,this._p2pChannel instanceof Wd&&this._p2pChannel.unsubscribe(m).then(w=>{if(w)return this._gateway.unsubscribe(w,m.uid)}),m._audioSSRC=void 0,m._videoSSRC=void 0,m._audioOrtc=void 0,m._videoOrtc=void 0,m._rtxSsrcId=void 0),tr.onGatewayStream(this._sessionId,Cs.ON_REMOVE_STREAM,Eo.ON_REMOVE_STREAM,{peer:C.uint_id||C.uid}),y()}),Ae(this,"_handleSetStreamLocalEnable",(C,m,y)=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(m,this.channelName))return;let w=this._users.find(k=>k.uid===m);if(!w)return void X.error("[".concat(this._clientId,"] can not find target user!(disable_local)"));X.debug("[".concat(this._clientId,"] local ").concat(C," ").concat(y?"enabled":"disabled"," with uid ").concat(m));let b=C==="audio"?w.hasAudio:w.hasVideo;if(C==="audio"){w._trust_audio_enabled_state_=!0;let k=w._audio_enabled_;if(w._audio_enabled_=y,w._audio_enabled_===k)return;{let V=w._audio_enabled_?"enable-local-audio":"disable-local-audio";X.debug("[".concat(this._clientId,"] user-info-updated, uid: ").concat(m,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,m,V)}}else{w._trust_video_enabled_state_=!0;let k=w._video_enabled_;if(w._video_enabled_=y,w._video_enabled_===k)return;{let V=w._video_enabled_?"enable-local-video":"disable-local-video";X.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(m,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,m,V)}}let M=C==="audio"?w.hasAudio:w.hasVideo;return b!==M?!b&&M?(X.info("[".concat(this._clientId,"] remote user ").concat(m," published ").concat(C)),void this.safeEmit(si.USER_PUBLISHED,w,C)):(C==="video"&&w._videoTrack&&w._videoTrack._destroy(),C==="audio"&&w._audioTrack,this._p2pChannel.muteRemote(w,C),X.info("[".concat(this._clientId,"] remote user ").concat(m," unpublished ").concat(C)),void this.safeEmit(si.USER_UNPUBLISHED,w,C)):void 0}),Ae(this,"_handleMuteStream",(C,m,y)=>{if(Ie("BLOCK_LOCAL_CLIENT")&&xd(C,this.channelName))return;X.debug("[".concat(this._clientId,"] receive mute message"),C,m,y);let w=this._users.find(k=>k.uid===C);if(!w)return void X.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(C));let b=m==="audio"?w.hasAudio:w.hasVideo;if(m==="audio"){w._trust_audio_mute_state_=!0;let k=w._audio_muted_;if(w._audio_muted_=y,w._audio_muted_===k)return;{let V=w._audio_muted_?"mute-audio":"unmute-audio";X.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(C,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,C,V)}}else{w._trust_video_mute_state_=!0;let k=w._video_muted_;if(w._video_muted_=y,w._video_muted_===k)return;{let V=w._video_muted_?"mute-video":"unmute-video";X.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(C,", msg: ").concat(V)),this.safeEmit(si.USER_INFO_UPDATED,C,V)}}let M=m==="audio"?w.hasAudio:w.hasVideo;if(b!==M){if(!b&&M)return(m==="audio"?w._audioSSRC:w._videoSSRC)?(X.info("[".concat(this._clientId,"] remote user ").concat(C," published ").concat(m)),void this.safeEmit(si.USER_PUBLISHED,w,m)):void X.warning("[".concat(this._clientId,"] remote user ").concat(C," receive ").concat(m," unmute message before add stream message, ").concat(m," SSRC doesn't exist yet."));m==="video"&&w._videoTrack&&!w._video_pre_subscribed&&w._videoTrack._destroy(),m==="audio"&&w._audioTrack,this._p2pChannel.muteRemote(w,m),X.info("[".concat(this._clientId,"] remote user ").concat(C," unpublished ").concat(m)),this.safeEmit(si.USER_UNPUBLISHED,w,m)}}),Ae(this,"_handleP2PLost",async C=>{X.debug("[".concat(this._clientId,"] receive p2p lost"),C),parseInt(C.p2pid,10)===this.store.p2pId?await this._p2pChannel.requestReconnect():X.warning("[".concat(this._clientId,"] P2PLost stream not found"),C)}),Ae(this,"_handleTokenWillExpire",()=>{X.debug("[".concat(this._clientId,"] received message onTokenPrivilegeWillExpire")),this.safeEmit(si.ON_TOKEN_PRIVILEGE_WILL_EXPIRE)}),Ae(this,"_handleBeforeUnload",C=>{C.type==="beforeunload"&&C.returnValue!==void 0&&C.returnValue!==""||(this.leave(),X.info("[".concat(this._clientId,"] auto leave onbeforeunload or pagehide")))}),Ae(this,"_handleUpdateNetworkQuality",()=>{if(this._networkQualitySensitivity==="normal")return;if(navigator&&navigator.onLine!==void 0&&!navigator.onLine)return void this.safeEmit(si.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6});let C={downlinkNetworkQuality:0,uplinkNetworkQuality:0};C.uplinkNetworkQuality=this._p2pChannel.getUplinkNetworkQuality(),C.downlinkNetworkQuality=this._p2pChannel.getDownlinkNetworkQuality(),this.safeEmit(si.NETWORK_QUALITY,C)}),Ae(this,"_handleP2PAddAudioOrVideoStream",(C,m,y,w)=>{let b=this._users.find(k=>k.uid===m);if(!b)return void X.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));X.debug("[".concat(this._clientId,"] stream added with uid ").concat(m,", type ").concat(C)),this.store.subscribe(b.uid,C,void 0,void 0,void 0,Date.now());let M=C==="audio"?b.hasAudio:b.hasVideo;C==="audio"?b._trust_audio_stream_added_state_=!0:b._trust_video_stream_added_state_=!0,C==="audio"?(b._audio_added_=!0,y!==void 0&&(b._audioSSRC=y),w!==void 0&&(b._audioMid=w)):(b._video_added_=!0,y!==void 0&&(b._videoSSRC=y),w!==void 0&&(b._videoMid=w)),(C==="audio"?b.hasAudio:b.hasVideo)&&!M&&(X.info("[".concat(this._clientId,"] remote user ").concat(b.uid," published ").concat(C)),this.safeEmit(si.USER_PUBLISHED,b,C)),this._p2pChannel.hasPendingRemoteMedia(b,C)&&(X.debug("[".concat(this._clientId,"] resubscribe ").concat(C," for user ").concat(b.uid," after reconnect.")),this._subscribe(b,C,!0).catch(k=>{X.error("[".concat(this._clientId,"] resubscribe error"),k.toString())}))}),this._config=a,this._clientId=A||yn(5,"client-"),this.store=new class{constructor(C,m,y,w,b){Hr(this,"state",void 0),this.state={codec:C,audioCodec:m,mode:y,clientId:w,sessionId:null,p2pId:0,dcId:0,pubId:0,subId:0,keyMetrics:{publish:[],subscribe:[],firstVideoFrameDecoded:[]},joinChannelServiceRecords:[],cloudProxyServerMode:"disabled",useP2P:!1,p2pTransport:ih.Default,hasStartJoinChannel:!1,isABTestSuccess:!1,rteUrl:void 0,rteSid:void 0,autoSubscribe:!1,enableInstantMuteRestore:!1,networkQualityProbe:!1,useDcSignal:!!b}}dispatch(C){this.state=function(m,y){switch(y.type){case Pr.SET_SESSION_ID:return Ot(Ot({},m),{},{sessionId:y.sessionId});case Pr.SET_P2P_ID:return Ot(Ot({},m),{},{p2pId:y.p2pId});case Pr.SET_UID:return Ot(Ot({},m),{},{uid:y.uid});case Pr.SET_INT_UID:return Ot(Ot({},m),{},{intUid:y.intUid});case Pr.SET_PUB_ID:return Ot(Ot({},m),{},{pubId:y.pubId});case Pr.KEY_METRIC_CLIENT_CREATED:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{clientCreated:y.metric})});case Pr.KEY_METRIC_JOIN_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinStart:y.metric})});case Pr.KEY_METRIC_PRELOAD_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{preloadStart:y.metric})});case Pr.KEY_METRIC_PRELOAD_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{preloadEnd:y.metric})});case Pr.KEY_METRIC_JOIN_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinEnd:y.metric})});case Pr.KEY_METRIC_REQUEST_AP_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{requestAPStart:y.metric})});case Pr.KEY_METRIC_REQUEST_AP_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{requestAPEnd:y.metric})});case Pr.KEY_METRIC_REQUEST_SUA_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{requestSUAEnd:y.metric})});case Pr.KEY_METRIC_BEFORE_CONNECT:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{beforeConnect:y.metric})});case Pr.KEY_METRIC_PEER_RECEIVER:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{peerReceiver:y.metric})});case Pr.KEY_METRIC_SIGNAL_CONNECTED:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{signalConnected:y.metric})});case Pr.KEY_METRIC_JOIN_REQ:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinReq:y.metric})});case Pr.KEY_METRIC_JOIN_REP:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinRep:y.metric})});case Pr.KEY_METRIC_JOIN_GATEWAY_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinGatewayStart:y.metric})});case Pr.KEY_METRIC_JOIN_GATEWAY_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{joinGatewayEnd:y.metric})});case Pr.KEY_METRIC_PEER_CONNECTION_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{peerConnectionStart:y.metric})});case Pr.KEY_METRIC_PEER_CONNECTION_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{peerConnectionEnd:y.metric})});case Pr.KEY_METRIC_DESCRIPTION_START:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{descriptionStart:y.metric})});case Pr.KEY_METRIC_SIGNAL_CHANNEL_OPEN:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{signalChannelOpen:y.metric})});case Pr.KEY_METRIC_ICE_CONNECTION_END:return Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{iceConnectionEnd:y.metric})});case Pr.KEY_METRIC_PUBLISH:{let w=m.keyMetrics.publish,b=w.findIndex(M=>M.trackId===y.metric.trackId);return b!==-1?(w[b]=Ot(Ot({},w[b]),y.metric),Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{publish:[...w]})})):Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{publish:[...m.keyMetrics.publish,y.metric]})})}case Pr.KEY_METRIC_SUBSCRIBE:{let w=m.keyMetrics.subscribe,b=w.findIndex(M=>M.userId===y.metric.userId&&M.type===y.metric.type);return b!==-1?(w[b]=Ot(Ot({},w[b]),y.metric),Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{subscribe:[...w]})})):Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{subscribe:[...m.keyMetrics.subscribe,y.metric]})})}case Pr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED:{let w=m.keyMetrics.firstVideoFrameDecoded,b=w.findIndex(M=>M.userId===y.metric.userId);return b!==-1?(w[b]=Ot(Ot({},w[b]),y.metric),Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{firstVideoFrameDecoded:[...w]})})):Ot(Ot({},m),{},{keyMetrics:Ot(Ot({},m.keyMetrics),{},{firstVideoFrameDecoded:[...m.keyMetrics.firstVideoFrameDecoded,y.metric]})})}case Pr.RESET_FIRST_VIDEO_FRAME_DECODED:return m.keyMetrics.firstVideoFrameDecoded=[],m;case Pr.SET_CLOUD_PROXY_SERVER_MODE:return m.cloudProxyServerMode=y.mode,m;case Pr.RECORD_JOIN_CHANNEL_SERVICE:return typeof y.index!="number"?m.joinChannelServiceRecords=[...m.joinChannelServiceRecords,y.record]:(m.joinChannelServiceRecords[y.index]=Ot(Ot({},m.joinChannelServiceRecords[y.index]),y.record),m.joinChannelServiceRecords=[...m.joinChannelServiceRecords]),m;case Pr.RESET_JOIN_CHANNEL_SERVICE_RECORDS:return m.joinChannelServiceRecords=[],m;case Pr.RESET_KEY_METRICS:return m.keyMetrics={publish:[],subscribe:[],firstVideoFrameDecoded:[]},m;case Pr.SET_USE_P2P:return Ot(Ot({},m),{},{useP2P:y.val});case Pr.SET_TRANSPORT_TYPE:return Ot(Ot({},m),{},{p2pTransport:y.val});case Pr.SET_RTE_URL:return Ot(Ot({},m),{},{rteUrl:y.rteUrl});case Pr.SET_RTE_SID:return Ot(Ot({},m),{},{rteSid:y.rteSid});default:return m}}(this.state,C)}get useDcSignal(){return this.state.useDcSignal}set useDcSignal(C){this.state.useDcSignal=C}set autoSubscribe(C){this.state.autoSubscribe=C}get autoSubscribe(){return this.state.autoSubscribe}set enableInstantMuteRestore(C){this.state.enableInstantMuteRestore=C}get enableInstantMuteRestore(){return this.state.enableInstantMuteRestore}set networkQualityProbe(C){this.state.networkQualityProbe=C}get networkQualityProbe(){return this.state.networkQualityProbe}set sessionId(C){this.dispatch({type:Pr.SET_SESSION_ID,sessionId:C})}get sessionId(){return this.state.sessionId}set rteUrl(C){this.dispatch({type:Pr.SET_RTE_URL,rteUrl:C})}get rteUrl(){return this.state.rteUrl}set rteSid(C){this.dispatch({type:Pr.SET_RTE_SID,rteSid:C})}get rteSid(){return this.state.rteSid}set cid(C){this.state.cid=C}get cid(){return this.state.cid}set codec(C){this.state.codec=C}get codec(){return this.state.codec}get mode(){return this.state.mode}get audioCodec(){return this.state.audioCodec}get clientId(){return this.state.clientId}set p2pId(C){this.dispatch({type:Pr.SET_P2P_ID,p2pId:C})}get p2pId(){return this.state.p2pId}set dcId(C){this.dispatch({type:Pr.SET_DC_ID,dcId:C})}get dcId(){return this.state.dcId}set uid(C){this.dispatch({type:Pr.SET_UID,uid:C})}get uid(){return this.state.uid}set intUid(C){this.dispatch({type:Pr.SET_INT_UID,intUid:C})}get intUid(){return this.state.intUid}set pubId(C){this.dispatch({type:Pr.SET_PUB_ID,pubId:C})}get pubId(){return this.state.pubId}set cloudProxyServerMode(C){this.dispatch({type:Pr.SET_CLOUD_PROXY_SERVER_MODE,mode:C})}get cloudProxyServerMode(){return this.state.cloudProxyServerMode}set useP2P(C){this.dispatch({type:Pr.SET_USE_P2P,val:C})}get useP2P(){return this.state.useP2P}set p2pTransport(C){this.dispatch({type:Pr.SET_TRANSPORT_TYPE,val:C})}get p2pTransport(){return this.state.p2pTransport}set hasStartJoinChannel(C){this.state.hasStartJoinChannel=C}get hasStartJoinChannel(){return this.state.hasStartJoinChannel}set isABTestSuccess(C){this.state.isABTestSuccess=C}get isABTestSuccess(){return this.state.isABTestSuccess}clientCreated(){this.dispatch({type:Pr.KEY_METRIC_CLIENT_CREATED,metric:Date.now()})}joinStart(){this.dispatch({type:Pr.KEY_METRIC_JOIN_START,metric:Date.now()})}preloadStart(){this.dispatch({type:Pr.KEY_METRIC_PRELOAD_START,metric:Date.now()})}preloadEnd(){this.dispatch({type:Pr.KEY_METRIC_PRELOAD_END,metric:Date.now()})}joinEnd(){this.dispatch({type:Pr.KEY_METRIC_JOIN_END,metric:Date.now()})}requestAPStart(){this.dispatch({type:Pr.KEY_METRIC_REQUEST_AP_START,metric:Date.now()})}requestAPEnd(){this.dispatch({type:Pr.KEY_METRIC_REQUEST_AP_END,metric:Date.now()})}requestSUAEnd(){this.dispatch({type:Pr.KEY_METRIC_REQUEST_SUA_END,metric:Date.now()})}beforeConnect(){this.dispatch({type:Pr.KEY_METRIC_BEFORE_CONNECT,metric:Date.now()})}peerReceiver(){this.dispatch({type:Pr.KEY_METRIC_PEER_RECEIVER,metric:Date.now()})}signalConnected(){this.dispatch({type:Pr.KEY_METRIC_SIGNAL_CONNECTED,metric:Date.now()})}joinReq(){this.dispatch({type:Pr.KEY_METRIC_JOIN_REQ,metric:Date.now()})}joinRep(){this.dispatch({type:Pr.KEY_METRIC_JOIN_REP,metric:Date.now()})}joinGatewayStart(){this.dispatch({type:Pr.KEY_METRIC_JOIN_GATEWAY_START,metric:Date.now()})}joinGatewayEnd(){this.dispatch({type:Pr.KEY_METRIC_JOIN_GATEWAY_END,metric:Date.now()})}peerConnectionStart(){this.dispatch({type:Pr.KEY_METRIC_PEER_CONNECTION_START,metric:Date.now()})}peerConnectionEnd(){this.dispatch({type:Pr.KEY_METRIC_PEER_CONNECTION_END,metric:Date.now()})}firstVideoFrameDecoded(C,m){this.dispatch({type:Pr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED,metric:Ot({userId:C},m)})}descriptionStart(){this.dispatch({type:Pr.KEY_METRIC_DESCRIPTION_START,metric:Date.now()})}signalChannelOpen(){this.dispatch({type:Pr.KEY_METRIC_SIGNAL_CHANNEL_OPEN,metric:Date.now()})}iceConnectionEnd(){this.dispatch({type:Pr.KEY_METRIC_ICE_CONNECTION_END,metric:Date.now()})}publish(C,m,y,w){this.dispatch({type:Pr.KEY_METRIC_PUBLISH,metric:Ot(Ot({trackId:C,type:m},y&&{publishStart:y}),w&&{publishEnd:w})})}subscribe(C,m,y,w,b,M,k){this.dispatch({type:Pr.KEY_METRIC_SUBSCRIBE,metric:Ot(Ot(Ot(Ot(Ot({userId:C,type:m},y&&{subscribeStart:y}),w&&{subscribeEnd:w}),b&&{firstFrame:b}),M&&{streamAdded:M}),k&&{firstDecoded:k})})}massSubscribe(C,m,y,w){C.forEach(b=>{this.dispatch({type:Pr.KEY_METRIC_SUBSCRIBE,metric:Ot(Ot(Ot({userId:b.userId,type:b.type},m&&{subscribeStart:m}),y&&{subscribeEnd:y}),w&&{firstFrame:w})})})}get keyMetrics(){return this.state.keyMetrics}recordJoinChannelService(C,m){C.service==="gateway"&&Array.isArray(C.urls)&&(C.urls=C.urls.map(y=>y.replace(/(\d+)-\d+-\d+-(\d+)/,"$1-*-*-$2")));try{return typeof m!="number"?(this.dispatch({type:Pr.RECORD_JOIN_CHANNEL_SERVICE,record:Ot(Ot({},C),{},{sessionId:this.sessionId,cloudProxyMode:this.cloudProxyServerMode,uid:this.uid})}),this.state.joinChannelServiceRecords.length-1):(m<0||m>=this.state.joinChannelServiceRecords.length||this.dispatch({type:Pr.RECORD_JOIN_CHANNEL_SERVICE,record:C,index:m}),m)}catch{return 0}}resetJoinChannelServiceRecords(){this.dispatch({type:Pr.RESET_JOIN_CHANNEL_SERVICE_RECORDS})}resetKeyMetrics(){this.dispatch({type:Pr.RESET_KEY_METRICS})}resetFirstVideoFrameDecoded(){this.dispatch({type:Pr.RESET_FIRST_VIDEO_FRAME_DECODED})}get joinChannelServiceRecords(){try{return this.state.joinChannelServiceRecords}catch{return[]}}}(a.codec,a.audioCodec,a.mode,this._clientId,Ie("SIGNAL_CHANNEL")===1),this._leaveMutex=new Is("client-leave",this._clientId),this._publishMutex=new Is("client-publish",this._clientId),this._renewTokenMutex=new Is("client-renewtoken",this._clientId),this._subscribeMutex=new Is("client-subscribe",this._clientId),this.store.clientCreated(),a.proxyServer&&this.setProxyServer(a.proxyServer,!0),a.turnServer&&this.setTurnServer(a.turnServer,!0),X.info("[".concat(this._clientId,"] Initializing AgoraRTC client v").concat(Cn," build: ").concat(o4,", mode: ").concat(this.mode,", codec: ").concat(this.codec)),a.clientRoleOptions)try{OC(a.clientRoleOptions),l=Object.assign({},a.clientRoleOptions)}catch(C){X.warning("[".concat(this._clientId,"] ").concat(C.toString()))}var g;this._statsCollector=new F2(this.store),this._statsCollector.onStatsException=(C,m,y)=>{X.warn("[".concat(this._clientId,"] receive exception msg, code: ").concat(C,", msg: ").concat(m,", uid: ").concat(y)),C===Yd.VIDEO_ENCODE_FAILED&&this.localTracks.forEach(w=>{w instanceof uy&&Ie("ENABLE_ENCODE_EXCEPTION")&&w.findClosestProfile()}),this.safeEmit(si.EXCEPTION,{code:C,msg:m,uid:y})},this._statsCollector.onUploadPublishDuration=(C,m,y,w)=>{let b=this._users.find(M=>M.uid===C);b&&(this.store.keyMetrics&&(this.store.firstVideoFrameDecoded(b.uid,{peerPublishDuration:y,peerPubStatusMs:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(b)),tr.peerPublishStatus(this._sessionId,{subscribeElapse:w,audioPublishDuration:m,videoPublishDuration:y,peer:b._uintid}))},this._statsCollector.onVideoCodecChanged=C=>{if(Ie("VIDEO_STANDARD_BITRATE_VERSION")&&(C==="av1"||C==="h265"||C==="h264")){let m=this.localTracks.find(y=>y instanceof Pi);m&&m._saveEncodeBitrateRatio!==1&&m.setSaveEncodeBitrateRatio(C==="h264"?Ie("BASELINE_MORE_H264_BITRATE_RATIO"):void 0)}},this.store.useP2P=a.mode==="p2p",this._gateway=new fa(this.store,{clientId:this._clientId,mode:this.mode,codec:this.codec,websocketRetryConfig:a.websocketRetryConfig||os,httpRetryConfig:a.httpRetryConfig||os,forceWaitGatewayResponse:a.forceWaitGatewayResponse===void 0||a.forceWaitGatewayResponse,statsCollector:this._statsCollector,role:a.role,clientRoleOptions:l}),this._configDistribute=new zJ(this._clientId,this.store),this.store.useP2P?(this._p2pChannel=(g={store:this.store,statsCollector:this._statsCollector},td("P2PChannel").create(g)),this._handleP2PEvents()):this._p2pChannel=new Wd(this.store,this._statsCollector),this._handleP2PChannelEvents(),this._handleGatewayEvents(),this._handleGatewaySignalEvents()}async joinMeta(a,A,l,g,C){let m=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],y=arguments.length>6&&arguments[6]!==void 0&&arguments[6];Mn("JOIN_GATEWAY_USE_443PORT_ONLY",m),Mn("JOIN_GATEWAY_USE_DUAL_DOMAIN",y);let w=this._gateway.signal.websocket;return w instanceof Lu&&(w.use443PortOnly=m,w.tryDoubleDomain=y),async function(b,M,k){pR.get(b)||pR.set(b,[]),fR.get(b)||fR.set(b,M),Qu.get(b)||Qu.set(b,0);let V=pR.get(b),K=fR.get(b);if(!V||!K)throw new Error("concurrent: deferQueue or maxConcurrency is null");if(Qu.get(b)===K){let pe=ff();V.push(pe),await pe.promise}Qu.set(b,Qu.get(b)+1);for(var q=arguments.length,ce=new Array(q>3?q-3:0),oe=3;oe0&&(V[0].resolve(),V.shift()),Qu.get(b)===0&&(pR.set(b,[]),fR.set(b,0),Qu.set(b,0)),le}("client.join",Ie("JOIN_MAX_CONCURRENCY"),this.join.bind(this),a,A,l,g,C)}async join(a,A,l,g,C){let m=++this._numberOfJoinCount;this.store.joinStart(),g&&(this.store.uid=g);let y=(bf||bf||(bf=(window.location.protocol.split(":")[0]||"").toUpperCase(),bf))==="HTTPS",w=r4()?window.isSecureContext:"Browser Not Support";(!r4()&&!y||!window.isSecureContext)&&X.warning("The website must be running in a secure context (About secure context: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts ), otherwise the media collection will be restricted by the browser");let b;tr.setAppId(a);try{if(!l&&l!==null)throw new ze(fe.INVALID_PARAMS,"Invalid token: ".concat(l,". If you don not use token, set it to null"));if(l&&Tr(l,"token",1,2047),Tr(a,"appid",1,2047),t_(A),g&&r_(g),C)if(typeof C=="string")Tr(C,"optionalInfo",1,256),b=C;else{if(typeof C!="object")throw new ze(fe.INVALID_PARAMS,"Invalid options: options is not a string or object");{let{autoSubscribe:le,enableInstantMuteRestore:pe,networkQualityProbe:Se}=C;le&&(Yl(le,"autoSubscribe"),X.info("[".concat(this._clientId,"] join: autoSubscribe: ").concat(le)),this.store.autoSubscribe=le),pe&&(Yl(pe,"enableInstantMuteRestore"),X.info("[".concat(this._clientId,"] join: enableInstantMuteRestore: ").concat(pe)),this.store.enableInstantMuteRestore=pe),Se&&(Yl(Se,"networkQualityProbe"),X.info("[".concat(this._clientId,"] join: networkQualityProbe: ").concat(Se)),this.store.networkQualityProbe=Se)}}}catch(le){throw tr.reportApiInvoke(Ln(),{name:Co.JOIN,options:[a,A,l,g],states:{isHttps:y,isSecureContext:w},tag:Gn.TRACER}).onError(le),le}if(this._leaveMutex.isLocked&&(X.debug("[".concat(this._clientId,"] join: waiting leave operation")),(await this._leaveMutex.lock())(),X.debug("[".concat(this._clientId,"] join: continue"))),this._joinAndNotLeaveYet=!0,this.connectionState!=="DISCONNECTED"){let le=new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already in connecting/connected state"));throw tr.reportApiInvoke(Ln(),{name:Co.JOIN,options:[a,A,l,g],states:{isHttps:y,isSecureContext:w},tag:Gn.TRACER}).onError(le),le}this._gateway.state="CONNECTING",this.store.preloadStart();let M=await tQ({appId:a,cname:A,uid:g,stringUid:typeof g=="string"?g:void 0,token:l||a,cloudProxyServer:this._cloudProxyServerMode});if(this.store.preloadEnd(),!this._joinAndNotLeaveYet)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));let k=(M==null?void 0:M.sid)||Ln();X.info("[".concat(this._clientId,"] start join channel ").concat(A,", join number: ").concat(m)),this._sessionId||(this._sessionId=k,this.store.sessionId=this._sessionId);let V=tr.reportApiInvoke(this._sessionId,{id:this._clientId,name:Co.JOIN,options:[a,A,l,g],states:{isHttps:y,isSecureContext:w},tag:Gn.TRACER}),K=ac(ac(ac({},this._rtmConfig),{},{role:this.role,clientId:this._clientId,appId:a,sid:this._sessionId,cname:A,uid:typeof g!="string"?g:null,turnServer:this._turnServer,proxyServer:this._proxyServer,token:l||a,cloudProxyServer:this._cloudProxyServerMode,optionalInfo:b,license:this._license,useLocalAccessPoint:this._useLocalAccessPoint,preload:!!M},this._remoteDefaultVideoStreamType!==void 0&&{defaultVideoStream:this._remoteDefaultVideoStreamType}),{},{apRequestDetail:Ie("AP_REQUEST_DETAIL")||void 0});if(this._useLocalAccessPoint&&(K.setLocalAPVersion=this._setLocalAPVersion),typeof g=="string"&&(K.stringUid=g,this._uintUid?(K.uid=this._uintUid,this._uintUid=void 0):K.uid=0),this._encryptionMode!=="none"&&this._encryptionSecret){if(K.aesmode=this._encryptionMode,K.aespassword=await(async le=>{let pe=function(xe){let Le=window.atob(`MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCMnXAHkKIGAM+x4N22gCI+Wyu -STM9ztkT3uYslTT2PuKmZfPzhH6kVdO7PTjGCOZnAsyb3oTtWat0KcxQ4jxvqQV+ -HvYl3iI1Yd4vl2c3qRMJPLtRDfNxa2Mcxgq7e9aEUibzdd0st+OJAy3tOj/Y0aVy -xQiYDz3vqa6bP29adwIDAQAB`),je=new Uint8Array(new ArrayBuffer(Le.length));for(let dt=0;dt{this.connectionState==="CONNECTING"&&q===this._sessionId&&tr.joinChannelTimeout(this._sessionId,5)},5e3);try{var ce;let le,pe=K.cloudProxyServer;if(Rt(ce=["proxy3","proxy4","proxy5"]).call(ce,pe)){let Le=Ie("PROXY_SERVER_TYPE3");Array.isArray(Le)?K.proxyServer=Le[0]:K.proxyServer=Le}if(tr.setProxyServer(K.proxyServer),X.setProxyServer(K.proxyServer),this.store.requestAPStart(),M){if(X.debug("[".concat(this._clientId,"] get serverInfo Success from Preload Cache ").concat(K.stringUid?", ".concat(K.stringUid," => ").concat(M.intUid):""," ")),K.stringUid&&!K.uid&&(K.uid=M.intUid),le={gatewayInfo:M.ap.gatewayInfo},Ie("JOIN_WITH_FALLBACK_MEDIA_PROXY")&&K.turnServer.mode==="auto")if(M.ap.proxyInfo.addresses.length===0)X.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers");else{let Le=(await CN(M.ap.proxyInfo,M.ap.gatewayInfo.uid)).map(je=>({turnServerURL:je.address,tcpport:je.tcpport||Ti.tcpport,udpport:je.udpport||Ti.udpport,username:je.username||Ti.username,password:je.password||Ti.password,forceturn:!1,security:!0}));K.turnServer={mode:"manual",servers:Le}}S7(M,K.stringUid)}else{if(K.stringUid&&!K.uid){let Le;[Le,le]=await Ft.all([g7(K.stringUid,K,this._axiosCancelSource.token,this._config.httpRetryConfig||os,this.store).finally(()=>{this.store.requestSUAEnd()}),QN(K,this._axiosCancelSource.token,this._config.httpRetryConfig||os,!0,this.store).finally(()=>{this.store.requestAPEnd()})]),X.debug("[".concat(this._clientId,"] getUserAccount Success ").concat(K.stringUid," => ").concat(Le)),K.uid=Le,le.gatewayInfo.uid=Le,le.gatewayInfo.res.uid=Le}else le=await QN(K,this._axiosCancelSource.token,this._config.httpRetryConfig||os,!0,this.store);if(!this._joinAndNotLeaveYet)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"))}this.store.requestAPEnd(),setTimeout(()=>{this._configDistribute.startGetConfigDistribute(K,this._axiosCancelSource.token),this._configDistribute.on(Il.UPDATE_BITRATE_LIMIT,Le=>{this._p2pChannel.updateBitrateLimit(Le)}),this._configDistribute.on(Il.UPDATE_CLIENT_ROLE_OPTIONS,Le=>{this._setClientRoleOptions(Le)}),this._configDistribute.on(Il.UPDATE_REMOTE_VIDEO_STREAM_TYPE,Le=>{var je;Rt(je=[0,1,4,5,6,7,8,9]).call(je,Le)&&(this.remoteUsers.forEach(dt=>{this._remoteStreamTypeCacheMap.get(dt.uid)!==Le&&this.setRemoteVideoStreamType(dt.uid,Le)}),this.setRemoteDefaultVideoStreamType(Le))}),this._configDistribute.on(Il.FALLBACK_TO_HLS,Le=>{Le&&this.safeEmit(si.FALLBACK_TO_HLS,LC.CONFIG)}),this._configDistribute.on(Il.UPDATE_VOS_CONFIGURE,Le=>{this._gateway.setConfigure(Le).catch(je=>{X.debug("[".concat(this._clientId,"] auto set vos config failed"),je)})})},0),this._key=l||a;let Se=le.gatewayInfo,be=K.uid?K.uid:Se.uid;this._joinInfo=ac(ac({},K),{},{cid:Se.cid,uid:be,vid:Se.vid,apResponse:Se.res,apGatewayAddress:Se.apGatewayAddress,uni_lbs_ip:Se.uni_lbs_ip,gatewayAddrs:Se.gatewayAddrs}),this.store.intUid=be,this.store.cid=Se.cid;let Ue=await this._joinGateway();if(!this._joinAndNotLeaveYet)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));V.onSuccess(Ue),this._appId=a,this._channelName=K.cname,this._uid=Ue,this.store.uid=Ue,setTimeout(()=>{this._networkQualityInterval&&window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=window.setInterval(this._handleUpdateNetworkQuality,2e3),!$s()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener($s()?"beforeunload":"pagehide",this._handleBeforeUnload),this._statsCollector.startUpdateStats()},0);let xe=K.stringUid?"string uid: ".concat(K.stringUid,",uid: ").concat(K.uid):"uid: ".concat(this._uid);return X.info("[".concat(this._clientId,"] Joining channel success: channel: ").concat(A,",").concat(xe)),setTimeout(()=>{X.startUpload()},5e3),this.store.joinEnd(),oe=this,Rt(ys).call(ys,oe)||ys.push(oe),this._cloudProxyServerMode==="disabled"&&Bi().supportWebCrypto&&Ie("ENABLE_PRELOAD")&&rQ(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0),this._sessionId&&tr.reportRteDetail(this._sessionId),this._rteDetailInterval=window.setInterval(()=>{this._sessionId&&tr.reportRteDetail(this._sessionId)},Ie("RTE_DETAIL_REPORT_INTERVAL")||6e4),Ue}catch(le){let pe=Array.isArray(le)?le[0]:le;throw pe&&pe.code===fe.OPERATION_ABORTED?X.warning("[".concat(this._clientId,"] join number: ").concat(m,", Joining channel failed, rollback"),pe):X.error("[".concat(this._clientId,"] join number: ").concat(m,", Joining channel failed, rollback"),pe),pe.code!==fe.OPERATION_ABORTED&&this._numberOfJoinCount===m&&(this._gateway.state="DISCONNECTED",this._reset()),V.onError(pe),pe}var oe}async _joinGateway(){if(!this._joinInfo||!this._key)throw new ze(fe.INVALID_OPERATION);try{return await this._gateway.join(this._joinInfo,this._key,!(this._joinInfo.cloudProxyServer!=="disabled"||this._joinInfo.proxyServer||!Ie("JOIN_WITH_FALLBACK_SIGNAL_PROXY")))}catch(a){if(a.code===fe.INIT_DATACHANNEL_TIMEOUT){if(this._gateway.leave(!0,bi.FALLBACK),X.debug("[".concat(this._clientId,"] join by datachannel timeout, fallback to websocket")),!this._joinInfo||!this._key)throw new ze(fe.INVALID_OPERATION);return tr.reportApiInvoke(this._sessionId,{name:Co.DATACHANNEL_FAILBACK,options:[this.store.clientId],tag:Gn.TRACER}).onSuccess(),await this._joinGateway()}throw a}}async leave(){X.info("[".concat(this._clientId,"] Leaving channel"));let a=()=>{!$s()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener($s()?"beforeunload":"pagehide",this._handleBeforeUnload),this._reset(),function(l){let g=ys.indexOf(l);g!==-1&&ys.splice(g,1)}(this),this._statsCollector.stopUpdateStats()};this.store.useDcSignal||a();let A=await this._leaveMutex.lock();if(this.connectionState==="DISCONNECTED")return X.info("[".concat(this._clientId,"] Leaving channel repeated, success")),void A();await this._gateway.leave(this.connectionState!=="CONNECTED",bi.LEAVE),X.info("[".concat(this._clientId,"] Leaving channel success")),this._joinAndNotLeaveYet=!1,this.store.resetJoinChannelServiceRecords(),A(),this.store.useDcSignal&&a()}async publish(a){let A=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!Array.isArray(a)){if(!(a instanceof UC))return this._publishDataChannel(a);a=[a]}if(a.length===0)throw new ze(fe.INVALID_PARAMS,"param list is empty");let l=a;if(this._gateway.role==="audience")throw new ze(fe.INVALID_OPERATION,"audience can not publish stream");for(let C of l){if(!(C instanceof UC))throw new ze(fe.INVALID_PARAMS,"parameter is not local track");if(!C._enabled&&A)throw new ze(fe.TRACK_IS_DISABLED,"can not publish a disabled track: ".concat(C.getTrackId()))}X.info("[".concat(this._clientId,"] Publishing tracks, id ").concat(l.map(C=>"".concat(C.getTrackId()," "))));let g=await this._publishMutex.lock();await this._configDistribute.awaitConfigDistributeComplete(),A&&l.forEach(C=>{let m=this._configDistribute.getBitrateLimit();C instanceof Pi&&m&&C.setBitrateLimit(m.uplink)});try{await this._publishHighStream(l),X.info("[".concat(this._clientId,"] Publish success, id ").concat(l.map(C=>"".concat(C.getTrackId()," "))))}catch(C){throw X.error("[".concat(this._clientId,"] publish error"),C.toString()),C}finally{g()}}async _publishDataChannel(a){if(a==null)throw new ze(fe.INVALID_PARAMS,"parameter is not local track or datachannel config, config is ".concat(JSON.stringify(a)));Rn(a.id,"id",0,65535,!0),Yl(a.ordered,"ordered"),Tr(a.metadata,"metadata",0,512),X.info("[".concat(this._clientId,"] Publishing datachannels, id ").concat(a.id));let A=await this._publishMutex.lock();try{if(this._p2pChannel.getAllDataChannels().findIndex(C=>C.id===a.id)!==-1)throw new ze(fe.INVALID_PARAMS,"Invalid id: ".concat(a.id,". If you want to republish the datachannel, unpublish first"));if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't publish datachannel, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish datachannel in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&Ie("FORCE_TURN")&&!Ie("TURN_ENABLE_TCP")&&!Ie("TURN_ENABLE_UDP"))throw new ze(fe.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");let l=function(C){return Qt(C,!1)}(a),g=await this._p2pChannel.publishDataChannel([l]);if(g.length>0){if(typeof l._originDataChannelId!="number")throw X.error("[".concat(this._clientId,"] can not publish with mediaType datachannel, cannot get RTCDatachannel id")),new ze(fe.CREATE_DATACHANNEL_ERROR);try{await Ft.all(g.map(C=>this._uid&&this._gateway.publishDataChannel(this._uid,C,!0))),await l._waitTillOpen()}catch(C){if(C.code!==fe.DISCONNECT_P2P)throw C}}return X.info("[".concat(this._clientId,"] Publish dataChannels success, id ").concat(l.id)),l}catch(l){throw X.error("[".concat(this._clientId,"] publish datachannels error"),l.toString()),l}finally{A()}}async unpublish(a){if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't unpublish stream, haven't joined yet!");let A=[];if(a)if(Array.isArray(a))A=a;else{if(!(a instanceof UC))return this._unpublishDataChannel([a]);A=[a]}else this.store.useP2P||await this._unpublishDataChannel(),A=this._p2pChannel.getAllTracks(!0);X.info("[".concat(this._clientId,"] Unpublish tracks, tracks ").concat(A.map(g=>"".concat(g.getTrackId()," "))," "));let l=await this._publishMutex.lock();try{if(this.store.useP2P){let g=await this._p2pChannel.unpublish(A);g&&await this._gateway.sendExtensionMessage(Ro.UNPUBLISH,{unpubMsg:g},!0)}else{let g=await this._p2pChannel.unpublish(A);g&&await this._gateway.unpublish(g,this._uid),X.info("[".concat(this._clientId,"] Unpublish success,tracks ").concat(A.map(C=>"".concat(C.getTrackId()))))}}catch(g){throw X.error("[".concat(this._clientId,"] unpublish error"),g.toString()),g}finally{l&&l()}}async _unpublishDataChannel(a){a!==void 0&&a.length!==0||(a=this._p2pChannel.getAllDataChannels()),X.info("[".concat(this._clientId,"] Unpublish datachannels, datachannels ").concat(a.map(l=>"".concat(l.id," "))," "));let A=await this._publishMutex.lock();try{let l=await this._p2pChannel.unpublishDataChannel(a);l&&await this._gateway.unpublishDataChannel(l),X.info("[".concat(this._clientId,"] Unpublish dataChannel success,dataChannel ").concat(a.map(g=>"".concat(g.id))))}catch(l){throw X.error("[".concat(this._clientId,"] unpublish dataChannel error"),l.toString()),l}finally{A&&A()}}async subscribe(a,A,l){if(!(a instanceof xg)){let g=this.remoteUsers.find(C=>C.uid===a);if(!g)throw new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");a=g}return A==="datachannel"?this._subscribeDataChannel(a,l):this._subscribe(a,A)}async presubscribe(a,A){if(zo(A,"mediaType",["audio","video"]),this.store.useP2P)throw new ze(fe.INVALID_OPERATION,"can't presub at p2p mode");if(!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can't presub when not join");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can't presub in ".concat(this.connectionState," state"));let l=A===$t.AUDIO,g=A===$t.VIDEO,C=await this._subscribeMutex.lock();try{let{ssrcId:m,ortc:y,rtxSsrcId:w,cname:b,uint_id:M}=await this._gateway.presubscribe(a,A,!0);if(m==null)throw new ze(fe.UNEXPECTED_RESPONSE,"no ssrc id");let k=this._users.find(K=>K.uid===a);k||(k=new xg(a,M||a),k._is_pre_created=!0,this._users.push(k)),b&&(k._cname=b),k._uintid||(k._uintid=M||a),l&&(k._audioSSRC=m,k._audio_pre_subscribed=!0,y&&(k._audioOrtc=y)),g&&(k._videoSSRC=m,k._video_pre_subscribed=!0,y&&(k._videoOrtc=y),w!=null&&(k._rtxSsrcId=w)),X.info("[".concat(this._clientId,"] presub succeed ssrc: ").concat(m)),await this._p2pChannel.subscribe(k,A,m,w,y);let V=l?k._audioTrack:k._videoTrack;if(!V)throw new ze(fe.UNEXPECTED_ERROR,"can not find remote track in user");return l&&(k._trust_audio_stream_added_state_=!0,k._audio_added_=!0),g&&(k._trust_video_stream_added_state_=!0,k._video_added_=!0),V}catch(m){throw X.error("[".concat(this._clientId,"] presub user ").concat(a," error"),m),m}finally{C()}}async _subscribeDataChannel(a,A){var l;if(Rn(A,"channelId",0,65535,!0),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe datachannel, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe datachannel in ".concat(this.connectionState," state"));if(!this._users.find(y=>y===a))throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", this user is not in the channel")),new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");if(!a.hasAudio&&!a.hasVideo&&a._dataChannels.length===0)throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", user is not published")),new ze(fe.INVALID_REMOTE_USER,"user is not published");let g=(l=a._dataChannels)===null||l===void 0?void 0:l.find(y=>y.id===A);if(!g)throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType datachannel, remote datachannel is not published")),new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);let C=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"] subscribe user ").concat(a.uid,", mediaType: datachannel"));try{let y=await this._p2pChannel.subscribeDataChannel(a,[g]);if(y&&Rt(y).call(y,g.id))try{var m;if(typeof g._originDataChannelId!="number")throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType datachannel, cannot get RTCDatachannel")),new ze(fe.CREATE_DATACHANNEL_ERROR);let w={id:g.id,datachannelId:g._originDataChannelId,ordered:g.ordered,maxRetransmits:g.maxRetransmits,metadata:(m=g.metadata)!==null&&m!==void 0?m:""};await this._gateway.subscribeDataChannel(a.uid,w,!0),await g._waitTillOpen()}catch(w){if((w==null?void 0:w.code)!==fe.WS_ABORT)throw await this._p2pChannel.unsubscribeDataChannel(a,[g]),w;await this._p2pChannel.unsubscribeDataChannel(a,[g]),this._p2pChannel.setPendingRemoteDataChannel(a,g.id)}return X.info("[".concat(this._clientId,"] subscribe success user ").concat(a.uid,", mediaType: datachannel")),g}finally{C()}}async _p2pSubscribe(a,A,l){if(zo(A,"mediaType",["audio","video"]),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(C=>C===a)){let C=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", this user is not in the channel")),C}if(!a.hasAudio&&!a.hasVideo){let C=new ze(fe.INVALID_REMOTE_USER,"user is not published");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", user is not published")),C}if(!l&&(A==="audio"&&!a.hasAudio||A==="video"&&!a.hasVideo)){let C=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType ").concat(A,", remote track is not published")),C}let g=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"] subscribe user ").concat(a.uid,", mediaType: ").concat(A));try{if(await this._p2pChannel.hasRemoteMediaWithLock(a,A))await this._p2pChannel.unmuteRemote(a,A);else try{let m=A==="audio"?a._audioSSRC:a._videoSSRC,y=A==="audio"?a._audioMid:a._videoMid;this.store.subscribe(a.uid,A,Date.now()),this.store.useP2P&&await this._p2pChannel.subscribe(a,A,m,y)}catch(m){throw m}X.info("[".concat(this._clientId,"] subscribe success user ").concat(a.uid,", mediaType: ").concat(A)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(a.uid,this._defaultStreamFallbackType).catch(m=>{X.warning("[".concat(this._clientId,"] auto set fallback failed"),m)});let C=A==="audio"?a._audioTrack:a._videoTrack;if(!C)throw new ze(fe.UNEXPECTED_ERROR,"can not find remote track in user object");return C}catch(C){throw X.error("[".concat(this._clientId,"] subscribe user ").concat(a.uid," error"),C),C}finally{g()}}async _subscribe(a,A,l){if(this.store.useP2P)return this._p2pSubscribe(a,A);if(zo(A,"mediaType",["audio","video"]),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(b=>b===a)){let b=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", this user is not in the channel")),b}if(!a.hasAudio&&!a.hasVideo){let b=new ze(fe.INVALID_REMOTE_USER,"user is not published");throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid,", user is not published")),b}if(!(l||(A!=="audio"||a.hasAudio&&a._audioSSRC!==void 0)&&(A!=="video"||a.hasVideo&&a._videoSSRC!==void 0))){let b=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);throw X.error("[".concat(this._clientId,"] can not subscribe ").concat(a.uid," with mediaType ").concat(A,", remote track is not published")),b}let g=A==="audio"?a._audioSSRC:a._videoSSRC,C=A==="audio"?a._audioOrtc:a._videoOrtc,m=A==="video"?a._rtxSsrcId:void 0,y={stream_type:A==="audio"?$t.AUDIO:$t.VIDEO,ssrcId:g};A==="video"&&this.store.firstVideoFrameDecoded(a.uid,{subscribeStart:Date.now()});let w=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"] subscribe user ").concat(a.uid,", mediaType: ").concat(A));try{if(await this._p2pChannel.hasRemoteMediaWithLock(a,A))await this._p2pChannel.unmuteRemote(a,A);else try{let M=A==="audio"?a._audioSSRC:a._videoSSRC;M!==void 0&&M!==g&&(g=M,C=A==="audio"?a._audioOrtc:a._videoOrtc,m=A==="video"?a._rtxSsrcId:void 0,y={stream_type:A==="audio"?$t.AUDIO:$t.VIDEO,ssrcId:g}),aa.markSubscribeStart(this.store.clientId,g),this.store.subscribe(a.uid,A,Date.now()),await this._p2pChannel.subscribe(a,A,g,m,C);try{this._p2pChannel.isPreSubScribe(g)||await this._gateway.subscribe(a.uid,y,!0)}catch(k){if((k==null?void 0:k.code)!==fe.WS_ABORT)throw await this._p2pChannel.unsubscribe(a,A),k;await this._p2pChannel.unsubscribe(a,A,!0),this._p2pChannel.setPendingRemoteMedia(a,A)}this.store.subscribe(a.uid,A,void 0,Date.now()),this._p2pChannel.reportSubscribeEvent(!0,null,a,A)}catch(M){throw this._p2pChannel.reportSubscribeEvent(!1,M==null?void 0:M.code,a,A),M}X.info("[".concat(this._clientId,"] subscribe success user ").concat(a.uid,", mediaType: ").concat(A)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(a.uid,this._defaultStreamFallbackType).catch(M=>{X.warning("[".concat(this._clientId,"] auto set fallback failed"),M)});let b=A==="audio"?a._audioTrack:a._videoTrack;if(!b)throw new ze(fe.UNEXPECTED_ERROR,"can not find remote track in user object");return A==="video"&&(this.store.firstVideoFrameDecoded(a.uid,{subscribeEnd:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(a)),b}catch(b){throw X.error("[".concat(this._clientId,"] subscribe user ").concat(a.uid," error"),b),b}finally{w()}}async massSubscribe(a){if(Qc(a,"subscribeList"),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));let A=Date.now(),l=new Map,g=await this._subscribeMutex.lock();X.info("[".concat(this._clientId,"]start massSubscribe user ").concat(a.map(w=>{let{user:b,mediaType:M}=w;return"user: ".concat(b==null?void 0:b.uid,", mediaType: ").concat(M)}).join("; ")));let C=(a=[...a]).map(w=>{let{user:b,mediaType:M}=w;return{user:b,mediaType:M}}),m=await this._p2pChannel.globalLock();try{var y;for(let b=a.length-1;b>=0;b--){let M=a[b],{user:k,mediaType:V}=M;if(zo(V,"mediaType",["audio","video"]),!k){let ce=new ze(fe.INVALID_PARAMS,"user property does not exist in subscribeList item");throw X.error("[".concat(this._clientId,"] user property does not exist in subscribeList item")),ce}if(!this._users.find(ce=>ce===k)){let ce=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");X.error("[".concat(this._clientId,"] can not massSubscribe ").concat(k.uid,", this user is not in the channel")),C[b].error=ce,a.splice(b,1);continue}if(V==="audio"&&(!k.hasAudio||k._audioSSRC===void 0)||V==="video"&&(!k.hasVideo||k._videoSSRC===void 0)){let ce=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);X.error("[".concat(this._clientId,"] can not subscribe ").concat(k.uid," with mediaType ").concat(V,", remote user is not published")),C[b].error=ce,a.splice(b,1);continue}let K=na.Video|na.LwoVideo,q=l.get(k);if(q){if(V==="video"?q&K:q&na.Audio){a.splice(b,1),X.warning("[".concat(this._clientId,"] repeat massSubscribe user:").concat(k.uid,", mediaType:").concat(V," twice"));continue}l.set(k,q|(V==="video"?K:na.Audio))}else l.set(k,V==="video"?K:na.Audio)}for(let b=a.length-1;b>=0;b--){let M=a[b],{user:k,mediaType:V}=M,K=na.Video|na.LwoVideo;if(this._p2pChannel.hasRemoteMedia(k,V)){await this._p2pChannel.unmuteRemoteNoLock(k,V);let q=l.get(k);l.set(k,V==="video"?q^K:q^na.Audio),a.splice(b,1)}}this.store.massSubscribe(a.map(b=>({userId:b.user.uid,type:b.mediaType})),A);let w=$c(y=Array.from(l.entries())).call(y,(b,M)=>{let[k,V]=M;if(V===0)return b;let K={stream_id:k.uid,stream_type:V};return V&na.Audio&&(K.audio_ssrc=k._audioSSRC),V&na.Video&&(K.video_ssrc=k._videoSSRC),b.push(K),b},[]);try{a.length>0&&await this._p2pChannel.massSubscribeNoLock(a.map(M=>{let{user:k,mediaType:V}=M;return{user:k,mediaType:V,ssrcId:V===$t.VIDEO?k._videoSSRC:k._audioSSRC,rtxSsrcId:V===$t.VIDEO?k._rtxSsrcId:void 0}}));let b=new Map;if(w=w.filter(M=>M.video_ssrc&&!this._p2pChannel.isPreSubScribe(M.video_ssrc)||M.audio_ssrc&&!this._p2pChannel.isPreSubScribe(M.audio_ssrc)||!M.video_ssrc&&!M.audio_ssrc),w.length>0){let M=await this._gateway.subscribeAll(w,!0);((M==null?void 0:M.users)||[]).forEach(k=>{let{stream_id:V,video_error_code:K,audio_error_code:q,error_code:ce}=k;(K||q||ce)&&b.set(V,{video_error_code:K,audio_error_code:q,error_code:ce})})}if(Array.from(b.entries()).length>0){let M=[];Array.from(b.entries()).forEach(k=>{let[V,K]=k,q=this.remoteUsers.find(ce=>ce.uid===V);if(q){let ce;K.error_code||K.video_error_code&&K.audio_error_code?ce=void 0:K.video_error_code?ce=$t.VIDEO:K.audio_error_code&&(ce=$t.AUDIO),M.push({user:q,mediaType:ce})}}),M.length>0&&await this._p2pChannel.massUnsubscribeNoLock(M)}for(let M of C){let k=b.get(M.user.uid);if(k){let V=k.error_code||M.mediaType==="audio"&&k.audio_error_code||M.mediaType==="video"&&k.video_error_code;if(V){let K=O2(V);X.error("user:".concat(M.user.uid," mediaType:").concat(M.mediaType," has massSubscribe error ").concat(K.desc)),M.error=new ze(fe.SUBSCRIBE_FAILED,"code ".concat(V,": ").concat(K.desc))}}M.error||(M.mediaType==="video"?M.track=M.user.videoTrack:M.track=M.user.audioTrack)}return this.store.massSubscribe(C.filter(M=>!M.error).map(M=>({userId:M.user.uid,type:M.mediaType})),void 0,Date.now()),C.forEach(M=>{var k;tr.subscribe(this.store.sessionId,{succ:!!M.error,ec:((k=M.error)===null||k===void 0?void 0:k.code)||null,video:M.mediaType===$t.VIDEO,audio:M.mediaType===$t.AUDIO,peerid:M.user.uid,subscribeRequestid:M.mediaType===$t.VIDEO?M.user._videoSSRC:M.user._audioSSRC,p2pid:this.store.p2pId,eventElapse:Math.floor(performance.now()-A),preSsrc:this._p2pChannel.isPreSubScribe(M.user._videoSSRC)},!0)}),X.info("[".concat(this._clientId,"] massSubscribe success ").concat(a.map(M=>{let{user:k,mediaType:V}=M;return"user: ".concat(k==null?void 0:k.uid,", mediaType: ").concat(V)}).join("; "))),C}catch(b){throw await this._p2pChannel.massUnsubscribeNoLock(a),b}}finally{m(),g()}}async unsubscribe(a,A,l){if(!(a instanceof xg)){let C=this.remoteUsers.find(m=>m.uid===a);if(!C)throw new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");a=C}if(A||this.store.useP2P){if(A==="datachannel")return this._unsubscribeDataChannel(a,l)}else await this._unsubscribeDataChannel(a,l);if(A&&zo(A,"mediaType",["audio","video"]),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't unsubscribe stream, haven't joined yet!");if(!this._users.find(C=>C===a)){let C=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not unsubscribe ").concat(a.uid,", user is not in the channel")),C}X.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(a.uid,", mediaType: ").concat(A));let g=await this._subscribeMutex.lock();try{if(this.store.useP2P)await this._p2pChannel.unsubscribe(a,A);else{let C=await this._p2pChannel.unsubscribe(a,A);C&&await this._gateway.unsubscribe(C,a.uid),A&&A!=="audio"||(a._audio_pre_subscribed=!1),A&&A!=="video"||(a._video_pre_subscribed=!1),a._is_pre_created&&sl(this._users,a),X.info("[".concat(this._clientId,"] unsubscribe success uid: ").concat(a.uid,", mediaType: ").concat(A))}}catch(C){if(C.code===fe.DISCONNECT_P2P)return void X.warning("disconnecting p2p, abort unsubscribe request.");throw X.error("[".concat(this._clientId,"] unsubscribe user ").concat(a.uid," error"),C.toString()),C}finally{g()}}async _unsubscribeDataChannel(a,A){if(A&&Rn(A,"id",0,65535,!0),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't unsubscribe datachannel, haven't joined yet!");if(!this._users.find(g=>g===a)){let g=new ze(fe.INVALID_REMOTE_USER,"user is not in the channel");throw X.error("[".concat(this._clientId,"] can not unsubscribe ").concat(a.uid,", user is not in the channel")),g}let l;if(typeof A=="number"){let g=a._dataChannels.find(C=>C.id===A);g&&(l=[g])}else l=a._dataChannels;if(l===void 0){let g=new ze(fe.REMOTE_USER_IS_NOT_PUBLISHED);throw X.error("[".concat(this._clientId,"] can not unsubscribe ").concat(a.uid," with channelId ").concat(A,", remote datachannel is not published")),g}X.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(a.uid,", mediaType: datachannel, ids: ").concat(l.map(g=>g.id)));try{let g=await this._p2pChannel.unsubscribeDataChannel(a,l);g&&await this._gateway.unsubscribeDataChannel(g,a.uid),X.info("[".concat(this._clientId,"] unsubscribe datachannel success uid: ").concat(a.uid,", mediaType: datachannel, ids: ").concat(g))}catch(g){if(g.code===fe.DISCONNECT_P2P)return void X.warning("disconnecting p2p, abort unsubscribe request.");throw X.error("[".concat(this._clientId,"] unsubscribe user ").concat(a.uid," error"),g.toString()),g}}async massUnsubscribe(a){if(Qc(a,"unsubscribeList"),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"Can't unsubscribeAll stream, haven't joined yet!");X.info("[".concat(this._clientId,"] start massUnsubscribe ").concat(a.map(l=>{let{user:g,mediaType:C}=l;return"user: ".concat(g==null?void 0:g.uid,", mediaType: ").concat(C,";")}).join())),a=[...a];let A=new Map;for(let l=a.length-1;l>=0;l--){let{user:g,mediaType:C}=a[l];if(!g){let y=new ze(fe.INVALID_PARAMS,"user property does not exist in unsubscribeList item");throw X.error("[".concat(this._clientId,"] user property does not exist in unsubscribeList item")),y}if(zo(C,"mediaType",["video","audio",void 0]),!this._users.find(y=>y===g)){X.warning("[".concat(this._clientId,"] can not unsubscribe ").concat(g.uid,", user is not in the channel")),a.splice(l,1);continue}let m=na.Video|na.LwoVideo;if(A.has(g)){let y=A.get(g),w;switch(C){case"video":w=y&m;break;case"audio":w=y&na.Audio;break;default:w=y&(na.Audio|m)}if(w){X.warning("[".concat(this._clientId,"] repeat massUnsubscribe user:").concat(g.uid,",mediaType:").concat(C," twice.")),a.splice(l,1);continue}C?C==="audio"?A.set(g,y|na.Audio):C==="video"&&A.set(g,y|m):A.set(g,y|na.Audio|m)}else C?C==="audio"?A.set(g,na.Audio):C==="video"&&A.set(g,m):A.set(g,na.Audio|m)}try{let l=await this._p2pChannel.massUnsubscribe(a);l&&await this._gateway.massUnsubscribe(l),X.info("[".concat(this._clientId,"] massUnsubscribe success ").concat(a.map(g=>{let{user:C,mediaType:m}=g;return"user: ".concat(C==null?void 0:C.uid,", mediaType: ").concat(m,";")}).join()))}catch(l){if(l.code===fe.DISCONNECT_P2P)return void X.warning("[".concat(this._clientId,"] disconnecting p2p, abort unsubscribe request."));throw X.error("[".concat(this._clientId,"] massUnsubscribe error"),l.toString()),l}}async setLowStreamParameter(a){(function(l){if(!l)throw new nt(fe.INVALID_PARAMS);mo(l.width)||AA(l.width,"streamParameter.width"),mo(l.height)||AA(l.height,"streamParameter.height"),mo(l.framerate)||AA(l.framerate,"streamParameter.framerate"),mo(l.bitrate)||Rn(l.bitrate,"streamParameter.bitrate")})(a),(!a.width&&a.height||a.width&&!a.height)&&X.warning("[".concat(this._clientId,"] The width and height parameters take effect only when both are set")),X.info("[".concat(this._clientId,"] set low stream parameter to"),JSON.stringify(a));let A=this._configDistribute.getLowStreamConfigDistribute();if(A&&A.bitrate&&a.bitrate&&A.bitrate{X.warning("[".concat(this._clientId,"] set dual stream mode failed"),l.toString())}):X.debug("[".concat(this._clientId,"] haven't joined yet, cache dual stream mode ").concat(a)),a){case n2.AUTO_SIMULCAST_STREAM:X.info("[".concat(this._clientId,"] set dual stream mode to ").concat(a));break;case n2.DISABLE_SIMULCAST_STREM:return this.disableDualStream();case n2.ENABLE_SIMULCAST_STREAM:return this.enableDualStream()}}catch(l){throw X.error("[".concat(this._clientId,"] set dual stream mode error"),l.toString()),l}}async enableDualStream(){if(!Bi().supportDualStream)throw tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),new ze(fe.NOT_SUPPORTED,"Your browser is not support dual stream");if(this._isDualStreamEnabled)throw new ze(fe.INVALID_OPERATION,"Dual stream is already enabled");if(this._p2pChannel.canPublishLowStream())try{await this._publishLowStream()}catch(a){throw tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),a}this._isDualStreamEnabled=!0,this._dualStreamMode=n2.ENABLE_SIMULCAST_STREAM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(a=>{X.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),a.toString())}),tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!0}),X.info("[".concat(this._clientId,"] enable dual stream"))}async disableDualStream(){if(this._isDualStreamEnabled){if(!this._joinInfo)return this._isDualStreamEnabled=!1,void X.info("[".concat(this._clientId,"] disable dual stream before join"));if(this._p2pChannel.getLocalMedia(St.LocalVideoLowTrack))try{let a=await this._p2pChannel.unpublishLowStream();a&&await this._gateway.unpublish(a,this._joinInfo.stringUid||this._joinInfo.uid)}catch(a){throw tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!1}),a}this._isDualStreamEnabled=!1,this._dualStreamMode=n2.DISABLE_SIMULCAST_STREM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(a=>{X.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),a.toString())}),tr.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!0}),X.info("[".concat(this._clientId,"] disable dual stream"))}}async setClientRole(a,A){if(function(g){zo(g,"role",["audience","host"])}(a),A&&OC(A),this.mode==="rtc"||this.mode==="p2p")throw X.warning("[".concat(this._clientId,"]").concat(this.mode," mode can not use setClientRole")),new ze(fe.INVALID_OPERATION,"".concat(this.mode," mode can not use setClientRole"));if(A&&A.level&&a==="host")throw new ze(fe.INVALID_OPERATION,"host mode can not set audience latency level");if(a==="audience"&&this._p2pChannel.hasLocalMedia())throw new ze(fe.INVALID_OPERATION,"can not set client role to audience when publishing stream");let l=this._config.role;if(this._joinInfo&&(this._joinInfo.role=a),a!==l&&Ie("ENABLE_ROLE_SELECT_EDGE")?(this._gateway.updateClientRole(a,A),this._config.role=a,this._gateway.reconnect("recover",xo.REGIONAL_DISTRIBUTION)):(await this._gateway.setClientRole(a,A),this._config.role=a),X.info("[".concat(this._clientId,"] set client role to ").concat(a,", level: ").concat(A&&A.level)),l==="audience"&&a!=="audience"&&this._pendingRtpCapabilityChange&&this._p2pChannel instanceof Wd){let{video_codec:g}=this._pendingRtpCapabilityChange;this._p2pChannel.updateRemoteRTPCapabilities(g.map(C=>C.toLowerCase()).filter(C=>{var m;return Rt(m=Object.keys(Ss)).call(m,C)}))}}async _setClientRoleOptions(a){if(this.mode==="rtc"||this.mode==="p2p"||this._config.role!=="audience"||this._p2pChannel.hasLocalMedia())return;let A=!1;try{a&&OC(a),await this._gateway.setClientRole(this._config.role,a),A=!0}catch{}finally{X.info("[".concat(this._clientId,"] set client role options ").concat(A?"succeed":"failed",", options is ").concat(a))}}getRemoteInboundOffset(){var a;let A=(a=this._p2pChannel.getStats())===null||a===void 0?void 0:a.audioSend[0];if(!A||!A.timestamp)return 0;let l=A.timestamp-Date.now();return Math.abs(l)>1e3+A.rttMs+100?this.ntpAlignErrorCount+=1:this.ntpAlignErrorCount=0,this.ntpAlignErrorCount>=3?l:0}getNtpWallTimeInMs(){return document.visibilityState==="visible"&&(this.remoteInboundOffset=this.getRemoteInboundOffset()),this.remoteInboundOffset+Date.now()+this._gateway.ntpOffset}setProxyServer(a,A){if(Tr(a,"proxyServer"),!A){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Set proxy server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new ze(fe.INVALID_OPERATION,"You have already set the proxy")}this._proxyServer=a,tr.setProxyServer(this._proxyServer),X.setProxyServer(this._proxyServer),X.info("[".concat(this._clientId,"] Set proxy server ").concat(A?"by initialize call":""," success."))}setTurnServer(a,A){if(Array.isArray(a)||(a=[a]),!A){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Set turn server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new ze(fe.INVALID_OPERATION,"You have already set the proxy")}if(eh(a))return this._turnServer={servers:a,mode:"original-manual"},void X.info("[".concat(this._clientId,"] Set original turnserver ").concat(A?"by initialize call":""," success: ").concat(a.map(l=>l.urls).join(","),"."));a.forEach(l=>wR(l)),this._turnServer={servers:a,mode:"manual"},X.info("[".concat(this._clientId,"] Set turnserver ").concat(A?"by initialize call":""," success."))}setLicense(a){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"you should set license before join channel");if(Tr(a,"license",32,32),!/^[A-Za-z\d]+$/.test(a))throw new ze(fe.INVALID_PARAMS,"license should only contains characters from A-Z a-z 0-9");this._license=a,X.info("[".concat(this._clientId,"] set license success"),a)}startProxyServer(a){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Start proxy server before join channel");if(this._proxyServer||this._turnServer.mode==="manual"||this._useLocalAccessPoint)throw new ze(fe.INVALID_OPERATION,"You have already set the proxy");let A=[3,4,5],l;switch(a===void 0&&(a=3),a){case 1:case 2:throw new ze(fe.NOT_SUPPORTED,"proxy mode 1/2 has been deprecated and not supported.");case 3:l="proxy3";break;case 4:l="proxy4";break;case 5:l="proxy5";break;default:throw new ze(fe.INVALID_PARAMS,"proxy server mode must be ".concat(A.join("|")))}this._cloudProxyServerMode=l,this.store.cloudProxyServerMode=l,X.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode)}stopProxyServer(){if(this.connectionState!=="DISCONNECTED")throw new ze(fe.INVALID_OPERATION,"Stop proxy server after leave channel");tr.setProxyServer(),X.setProxyServer(),this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled",X.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode),this._proxyServer=void 0,this._turnServer={mode:"auto",servers:[]}}setLocalAccessPointsV2(a){if(!a.accessPoints)throw new ze(fe.INVALID_PARAMS,"accessPoints is required.");Qc(a.accessPoints.serverList,"accessPoints.serverList"),Tr(a.accessPoints.domain,"accessPoints.domain");let A=(K,q)=>{Rn(K,q,0,65535,!0)},l=443;if(a.accessPoints.port&&(A(a.accessPoints.port,"accessPoints.port"),l=a.accessPoints.port),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new ze(fe.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");Ie("CLOSE_AFB_FOR_LOCAL_AP")&&(Mn("JOIN_WITH_FALLBACK_SIGNAL_PROXY",!1),Mn("JOIN_WITH_FALLBACK_MEDIA_PROXY",!1));let g=/^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,C=a.accessPoints.domain,m=a.accessPoints.serverList.map(K=>g.test(K)?"".concat(K.replace(/\./g,"-"),".").concat(C):K),y=m.map(K=>"".concat(K,":").concat(l));this._useLocalAccessPoint=!0,this._setLocalAPVersion=2,Mn("WEBCS_DOMAIN",y),Mn("WEBCS_DOMAIN_BACKUP_LIST",y),Mn("GATEWAY_DOMAINS",[C]),a.report&&a.report.hostname&&Array.isArray(a.report.hostname)&&a.report.hostname.length?(Qc(a.report.hostname,"report.hostname"),Mn("EVENT_REPORT_DOMAIN",a.report.hostname[0]),Mn("EVENT_REPORT_BACKUP_DOMAIN",a.report.hostname[1]||a.report.hostname[0])):(Mn("EVENT_REPORT_DOMAIN",m[0]),Mn("EVENT_REPORT_BACKUP_DOMAIN",m[1]||m[0]));let w=6443;a.report&&a.report.port&&(A(a.report.port,"report.port"),w=a.report.port),Mn("STATS_COLLECTOR_PORT",w),a.report?Mn("ENABLE_EVENT_REPORT",!0):Mn("ENABLE_EVENT_REPORT",!1);let b="";a.log&&a.log.hostname&&Array.isArray(a.log.hostname)&&a.log.hostname.length?(Qc(a.log.hostname,"log.hostname"),b=a.log.hostname[0]):b=m[0];let M=6444;a.log&&a.log.port&&(A(a.log.port,"log.port"),M=a.log.port),Mn("LOG_UPLOAD_SERVER","".concat(b,":").concat(M));let k=[];a.cds&&a.cds.hostname&&Array.isArray(a.cds.hostname)&&a.cds.hostname.length?(Qc(a.cds.hostname,"cds.hostname"),k=a.cds.hostname):k=m;let V=443;a.cds&&a.cds.port&&(A(a.cds.port,"cds.port"),V=a.cds.port),Mn("CDS_AP",k.map(K=>"".concat(K,":").concat(V))),a.cds?Mn("ENABLE_CONFIG_DISTRIBUTE",!0):Mn("ENABLE_CONFIG_DISTRIBUTE",!1),X.info("set local access point v2 success")}setLocalAccessPoints(a,A){if(Qc(a,"serverList"),Tr(A,"domain"),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new ze(fe.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");let l=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;a=a.map(g=>l.test(g)?"".concat(g.replace(/\./g,"-"),".").concat(A):g),this._useLocalAccessPoint=!0,this._setLocalAPVersion=1,Mn("WEBCS_DOMAIN",a),Mn("WEBCS_DOMAIN_BACKUP_LIST",a),Mn("GATEWAY_DOMAINS",[A]),Mn("EVENT_REPORT_DOMAIN",a[0]),Mn("EVENT_REPORT_BACKUP_DOMAIN",a[1]||a[0]),Mn("LOG_UPLOAD_SERVER","".concat(a[0],":6444")),X.info("[".concat(this._clientId,"] set local access point success"))}async setRemoteDefaultVideoStreamType(a){if(zo(a,"streamType",[0,1,4,5,6,7,8,9]),this._remoteDefaultVideoStreamType=a,this._joinInfo)try{await this._gateway.setDefaultRemoteVideoStreamType(a),this._joinInfo.defaultVideoStream=this._remoteDefaultVideoStreamType}catch(A){throw X.error("[".concat(this._clientId,"] set default remote video stream type error"),A.toString()),A}else X.debug("[".concat(this._clientId,"] haven't joined yet, cache remoteDefaultVideoStreamType ").concat(a))}async setRemoteVideoStreamType(a,A){zo(A,"streamType",[0,1,4,5,6,7,8,9]);try{await this._gateway.setRemoteVideoStreamType(a,A),setTimeout(()=>{let l=this._users.find(g=>g.uid===a);l&&l.videoTrack&&l.videoTrack.updateMediaStreamTrackResolution()},2e3)}catch(l){throw X.error("[".concat(this._clientId,"] set remote video stream type error"),l.toString()),l}X.info("[".concat(this._clientId,"] set remote ").concat(a," video stream type to ").concat(A)),this._remoteStreamTypeCacheMap.set(a,A)}async setStreamFallbackOption(a,A){zo(A,"fallbackType",[0,1,2,3,4,5,6,7,8]);try{await this._gateway.setStreamFallbackOption(a,A)}catch(l){throw X.error("[".concat(this._clientId,"] set stream fallback option"),l.toString()),l}X.info("[".concat(this._clientId,"] set remote ").concat(a," stream fallback type to ").concat(A)),this._streamFallbackTypeCacheMap.set(a,A)}setEncryptionConfig(a,A,l,g){(function(m){zo(m,"encryptionMode",["aes-128-xts","aes-256-xts","aes-128-ecb","sm4-128-ecb","aes-128-gcm","aes-256-gcm","aes-128-gcm2","aes-256-gcm2","none"])})(a),Tr(A,"secret");let C=["aes-128-gcm2","aes-256-gcm2"];if(Rt(C).call(C,a)){if(!l||!(l instanceof Uint8Array&&l.length===32))throw new ze(fe.INVALID_PARAMS,"salt must be an Uint8Array and exactly equal to 32 bytes")}else if(l)throw new ze(fe.INVALID_PARAMS,"current encrypt mode does not need salt");if(g){if(Yl(g,"encryptDataStream"),!Rt(C).call(C,a))throw new ze(fe.INVALID_PARAMS,"current encrypt mode does not support data stream");this._encryptDataStream=!0}new RegExp(`^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*,.<>?/:;'"|{}\\[\\]])(?=.{8,})`).test(A)||X.warning(`The secret is not strong: - The secret must contain at least 1 lowercase alphabetical character, - The secret must contain at least 1 uppercase alphabetical character, - The secret must contain at least 1 numeric character, - The secret must contain at least one special character, - The secret must be eight characters or longer. - `),this._encryptionMode=a,this._encryptionSecret=A,l&&(this._encryptionSalt=Md(l))}async renewToken(a){if(Tr(a,"token",1,2047),!this._key||!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"renewToken should not be called before user join");let A=this._key;this._key=a,this._joinInfo&&(this._joinInfo.token=a);let l=await this._renewTokenMutex.lock();try{if(Ie("USE_NEW_TOKEN")){X.debug("[".concat(this._clientId,"] start renew token with ticket from unilbs"));let g=await d_(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||os);X.debug("[".concat(this._clientId,"] get ticket from unilbs success")),await this._gateway.renewToken({token:a,ticket:g})}else X.debug("[".concat(this._clientId,"] start renew token without ticket")),await this._gateway.renewToken({token:a});X.debug("[".concat(this._clientId,"] renewToken success"))}catch(g){throw this._key=A,this._joinInfo.token=A,X.error("[".concat(this._clientId,"] renewToken failed"),g.toString()),g}finally{l()}}enableAudioVolumeIndicator(){this._audioVolumeIndicationInterval?X.warning("you have already enabled audio volume indicator!"):this._audioVolumeIndicationInterval=window.setInterval(()=>{let a=this._p2pChannel.getAudioLevels();this.safeEmit(si.VOLUME_INDICATOR,a)},Ie("AUDIO_VOLUME_INDICATION_INTERVAL")||2e3)}getRTCStats(){let a=this._statsCollector.getRTCStats(),A=this._gateway.getInChannelInfo();return a.Duration=Math.round(A.duration/1e3),a}async startLiveStreaming(a,A){if(!A){if(this.codec!=="h264")throw new ze(fe.LIVE_STREAMING_INVALID_RAW_STREAM,"raw streaming is only support h264");if(!this._p2pChannel.hasLocalMedia())throw new ze(fe.LIVE_STREAMING_INVALID_RAW_STREAM,"can not find stream to raw streaming")}if(this._liveRawStreamingClient&&this._liveRawStreamingClient.hasUrl(a)||this._liveTranscodeStreamingClient&&this._liveTranscodeStreamingClient.hasUrl(a))throw new ze(fe.LIVE_STREAMING_TASK_CONFLICT);let l=A?Nu.TRANSCODE:Nu.RAW;return this._createLiveStreamingClient(l).startLiveStreamingTask(a,l)}setLiveTranscoding(a){return this._createLiveStreamingClient(Nu.TRANSCODE).setTranscodingConfig(a)}async stopLiveStreaming(a){let A=[this._liveRawStreamingClient,this._liveTranscodeStreamingClient].filter(l=>l&&l.hasUrl(a));if(!A.length)throw new ze(fe.INVALID_PARAMS,"can not find live streaming url to stop");await Ft.all(A.map(l=>l&&l.stopLiveStreamingTask(a)))}async startChannelMediaRelay(a){jy(a),await this._createChannelMediaRelayClient().startChannelMediaRelay(a)}async updateChannelMediaRelay(a){jy(a),await this._createChannelMediaRelayClient().updateChannelMediaRelay(a)}async stopChannelMediaRelay(){await this._createChannelMediaRelayClient().stopChannelMediaRelay(),this._statsCollector.onStatsChanged&&(this._statsCollector.onStatsChanged=void 0)}sendAudioMetadata(a){this._p2pChannel instanceof Wd&&this._p2pChannel.addAudioMetadata(a)}async sendStreamMessage(a){var A;let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not send data stream, not joined");if((typeof a=="string"||a instanceof Uint8Array)&&(a={payload:a}),typeof a.payload=="string"){let C=new TextEncoder;a.payload=C.encode(a.payload)}let g=!1;if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Rt(A=["aes-128-gcm2","aes-256-gcm2"]).call(A,this._encryptionMode)&&(g=!0,a.payload=await async function(C,m,y){var w;let b=$c(w=Array.from(y)).call(w,(oe,le)=>oe+le,0),M={serverTs:0,seq:q1++,length:y.length,checkSum:b},k=new Uint8Array(wf(b,2)),V=new ArrayBuffer(sn),K=new DataView(V);K.setUint32(0,M.serverTs),K.setUint16(4,M.seq),K.setUint16(6,M.length),K.setUint16(8,M.checkSum);let q=16-y.length%16;y=Qf(y,new Uint8Array(q));let ce=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:C,tagLength:tA,additionalData:k},m,y);return Qf(new Uint8Array(V),new Uint8Array(ce))}(this._encryptDataStreamIv,this._encryptDataStreamKey,a.payload)),new Blob([a.payload]).size>1024)throw new ze(fe.INVALID_PARAMS,g?"encrypted stream message out of range.":"stream message out of range.");return this._gateway.signal.request(sr.DATA_STREAM,{payload:Md(a.payload),syncWithAudio:a.syncWithAudio,sendTs:Date.now()-rq},!l)}sendMetadata(a){if(!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not send metadata, not joined");if(new Blob([a]).size>1024)throw new ze(fe.METADATA_OUT_OF_RANGE);return this._gateway.signal.request(sr.SEND_METADATA,{session_id:this._joinInfo.sid,metadata:Md(a)})}async sendCustomReportMessage(a){if(Array.isArray(a)||(a=[a]),a.forEach(tU),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not send custom report, not joined");await tr.sendCustomReportMessage(this._joinInfo.sid,a)}getLocalAudioStats(){return this._statsCollector.getLocalAudioTrackStats()}getRemoteAudioStats(){return this._statsCollector.getRemoteAudioTrackStats()}getLocalVideoStats(){return this._statsCollector.getLocalVideoTrackStats()}getRemoteVideoStats(){return this._statsCollector.getRemoteVideoTrackStats()}getRemoteNetworkQuality(){let a=this._statsCollector.getRemoteNetworkQualityStats();if(Ie("DELETE_NEQ_AFTER_USER_LEAVE")){let A=this._users.map(l=>l.uid+"");Object.keys(a).forEach(l=>{Rt(A).call(A,l)||delete a[l]})}return a}getNetworkQuality(){return this._statsCollector.getNetworkQuality()}async pickSVCLayer(a,A){zo(A.spatialLayer,"spatialLayer",[0,1,2,3]),zo(A.temporalLayer,"temporalLayer",[0,1,2,3]);try{await this._gateway.pickSVCLayer(a,A)}catch(l){throw X.error("[".concat(this._clientId,"] pick SVC layer failed"),l.toString()),l}}async setRTMConfig(a){let{apRTM:A=!1,rtmFlag:l}=a;if(Yl(A,"apRTM"),Rn(l,"rtmFlag",0),this._rtmConfig.apRTM=A,this._rtmConfig.rtmFlag=l,X.debug("[".concat(this._clientId,"] setRTMconfig ").concat(JSON.stringify(a)," in ").concat(this.connectionState," state")),(this.connectionState==="CONNECTED"||this.connectionState==="RECONNECTING")&&this._joinInfo)return this._joinInfo.apRTM=A,this._joinInfo.rtmFlag=l,this._gateway.setRTM2Flag(l)}_reset(){if(X.debug("[".concat(this._clientId,"] reset client")),function(a){let A=po.indexOf(a);A!==-1&&po.splice(A,1)}(this._clientId),this.store.hasStartJoinChannel=!1,this.store.isABTestSuccess=!1,this.store.autoSubscribe=!1,this._pendingRtpCapabilityChange=void 0,this._axiosCancelSource.cancel(),this._axiosCancelSource=vA.CancelToken.source(),this._streamFallbackTypeCacheMap=new Map,this._remoteStreamTypeCacheMap=new Map,this._configDistribute.stopGetConfigDistribute(),this._joinInfo&&KN(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0,this._sessionId&&tr.reportRteDetail(this._sessionId)),this._fallbackServerInfo=void 0,this._joinInfo=void 0,this._proxyServer=void 0,this._defaultStreamFallbackType=void 0,this._sessionId&&tr.removeSid(this._sessionId),this._sessionId=null,this.store.sessionId=null,this.store.resetFirstVideoFrameDecoded(),this._statsCollector.reset(),this._key=void 0,this._appId=void 0,this._uid=void 0,this.store.uid=void 0,this._channelName=void 0,this._encryptionMode="none",this._encryptionSecret=null,this._encryptionSalt=null,this._encryptDataStreamKey=null,this._encryptDataStreamIv=null,this._pendingPublishedUsers=[],this._users.forEach(a=>{a._audioTrack&&a._audioTrack._destroy(),a._videoTrack&&a._videoTrack._destroy(),a._dataChannels&&(a._dataChannels.forEach(A=>A._close()),a._dataChannels.length=0)}),this._users=[],this._audioVolumeIndicationInterval&&(window.clearInterval(this._audioVolumeIndicationInterval),this._audioVolumeIndicationInterval=void 0),this._cloudProxyServerMode==="fallback"&&(this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled"),this._p2pChannel.reset(),this._publishMutex=new Is("client-publish",this._clientId),this._subscribeMutex=new Is("client-subscribe",this._clientId),this._networkQualityInterval&&(window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=void 0),this._liveRawStreamingClient&&(this._liveRawStreamingClient.terminate(),this._liveRawStreamingClient.removeAllListeners(),this._liveRawStreamingClient=void 0),this._liveTranscodeStreamingClient&&(this._liveTranscodeStreamingClient.terminate(),this._liveTranscodeStreamingClient.removeAllListeners(),this._liveTranscodeStreamingClient=void 0),this._channelMediaRelayClient&&(this._channelMediaRelayClient.dispose(),this._channelMediaRelayClient=void 0),this._inspect)try{this._inspect.close(),this._inspect=void 0}catch{}if(this._moderation)try{this.setImageModeration(!1)}catch{}}_startSession(a,A){var l;let g=a||Ln();a?X.debug("[".concat(this._clientId,"] new Session ").concat(g)):X.debug("[".concat(this._clientId,"] renewSession ").concat(this._sessionId," => ").concat(g));let C=a?"":this._sessionId||"";this._sessionId=g,this.store.sessionId=g,tr.addSid(g);let m={lts:new Date().getTime(),mode:this.mode,buildFormat:1,stringUid:(A==null?void 0:A.stringUid)||((l=this._joinInfo)===null||l===void 0?void 0:l.stringUid),channelProfile:this.mode==="live"?1:0,channelMode:0,isABTestSuccess:Number(this._configDistribute.isSuccess),lsid:C,clientRole:this.role==="audience"?2:1,rteUrl:this.store.rteUrl,rteSid:this.store.rteSid};tr.sessionInit(this._sessionId,ac({cname:A.channel,appid:A.appId},m)),this._joinInfo&&(this._joinInfo.sid=g),this._gateway.joinInfo&&(this._gateway.joinInfo.sid=g)}async _publishHighStream(a){if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&Ie("FORCE_TURN")&&!Ie("TURN_ENABLE_TCP")&&!Ie("TURN_ENABLE_UDP"))throw new ze(fe.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");X.debug("[".concat(this._clientId,"] publish high stream"));try{let l=await this._p2pChannel.publish(a,this._isDualStreamEnabled,this._lowStreamParameter);if(this.store.useP2P){let g=(await l.next()).value;if(g){try{await this._gateway.sendExtensionMessage(Ro.PUBLISH,g,!0)}catch(C){throw l.throw(C),C}await l.next()}this._p2pChannel.reportPublishEvent(!0,null)}else{let g=(await l.next()).value;if(g){var A;let C;try{C=await this._gateway.publish(this._uid,g,!0)}catch(m){if(m.code!==fe.DISCONNECT_P2P)throw l.throw(m),m}await l.next(((A=C)===null||A===void 0?void 0:A.ortc)||[])}this._p2pChannel.reportPublishEvent(!0,null);for(let C of a)C instanceof Pi&&C._encoderConfig&&this._gateway.setVideoProfile(C._encoderConfig).catch(m=>{X.debug("[".concat(this._clientId,"] stop setVideoProfile, because websocket is closed"))}),!C.muted&&C.enabled||await this._p2pChannel.muteLocalTrack(C)}}catch(l){if(this._p2pChannel.reportPublishEvent(!1,l==null?void 0:l.code,a),(l==null?void 0:l.code)===fe.WS_ABORT)return;throw l}}async _publishLowStream(){if(!this._joinInfo||this._uid===void 0)throw new ze(fe.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new ze(fe.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));X.debug("[".concat(this._clientId,"] publish low stream"));let a=this._configDistribute.getLowStreamConfigDistribute();a&&a.bitrate&&(this._lowStreamParameter||(this._lowStreamParameter={width:160,height:120,framerate:15,bitrate:50}),this._lowStreamParameter&&this._lowStreamParameter.bitrate&&a.bitrate{if(!this._joinInfo||!this._appId)return new ze(fe.INVALID_OPERATION,"can not create live streaming client, please join channel first").throw();let l=(g={joinInfo:this._joinInfo,appId:this._appId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig},td("LiveStreaming").create(g));var g;return l.onLiveStreamError=(C,m)=>{tr.reportApiInvoke(this._sessionId,{name:Co.ON_LIVE_STREAM_ERROR,options:[C,m],tag:Gn.TRACER}).onSuccess(),this.safeEmit(si.LIVE_STREAMING_ERROR,C,m)},l.onLiveStreamWarning=(C,m)=>{tr.reportApiInvoke(this._sessionId,{name:Co.ON_LIVE_STREAM_WARNING,options:[C,m],tag:Gn.TRACER}).onSuccess(),this.safeEmit(si.LIVE_STREAMING_WARNING,C,m)},l.on(Dy.REQUEST_WORKER_MANAGER_LIST,(C,m,y)=>{if(!this._joinInfo)return y(new ze(fe.INVALID_OPERATION,"can not find join info to get worker manager"));(async function(w,b,M,k){let V=Ie("UAP_AP").slice(0,Ie("AJAX_REQUEST_CONCURRENT")).map(K=>b.proxyServer?"https://".concat(b.proxyServer,"/ap/?url=").concat(K+"/api/v1?action=uap"):"https://".concat(K,"/api/v1?action=uap"));return await BN(V,w,b,M,k)})(C,this._joinInfo,this._axiosCancelSource.token,os).then(m).catch(y)}),l};return a===Nu.RAW?(this._liveRawStreamingClient=this._liveRawStreamingClient||A(),this._liveRawStreamingClient):(this._liveTranscodeStreamingClient=this._liveTranscodeStreamingClient||A(),this._liveTranscodeStreamingClient)}_createChannelMediaRelayClient(){if(!this._joinInfo)return new ze(fe.INVALID_OPERATION,"can not create channel media relay client, please join channel first").throw();if(!this._channelMediaRelayClient){let{sendResolutionWidth:A,sendResolutionHeight:l}=this.getLocalVideoStats(),g=(a={joinInfo:this._joinInfo,clientId:this._clientId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig,resolution:{width:A,height:l}},td("ChannelMediaRelay").create(a));g.on("state",C=>{C===$A.RELAY_STATE_FAILURE&&g&&g.dispose(),this.safeEmit(si.CHANNEL_MEDIA_RELAY_STATE,C)}),g.on("event",C=>{this.safeEmit(si.CHANNEL_MEDIA_RELAY_EVENT,C)}),this._channelMediaRelayClient=g,this._statsCollector.onStatsChanged=(C,m)=>{var y;C==="resolution"&&((y=this._channelMediaRelayClient)===null||y===void 0||y.setVideoProfile(m))}}var a;return this._channelMediaRelayClient}_handleUpdateDataChannel(a,A){let{added:l,deleted:g}=a,C=[];if(A){let m=[];this._users.forEach(y=>{y._dataChannels.forEach(w=>{l.every(b=>b.uid!==y._uintid||b.stream_id!==w.id)&&m.push({uid:y._uintid,stream_id:w.id,ordered:w.ordered,max_retrans_times:w.maxRetransmits,metadata:w.metadata})})}),m.length>0&&this._handleUpdateDataChannel({added:[],deleted:m})}Array.isArray(l)&&l.length>0&&l.forEach(m=>{let{uid:y,stream_id:w,ordered:b,max_retrans_times:M,metadata:k}=m,V=this._users.find(K=>K._uintid===y);if(!V)return void X.error("[".concat(this._clientId,"] can not find target user!(on_add_data_channel)"));if(X.debug("[".concat(this._clientId,"] data_channel added with uid ").concat(y)),Rt(C).call(C,V)||C.push(V),V._uintid||(V._uintid=y),V._dataChannels.findIndex(K=>K.id===m.stream_id)===-1){let K={id:w,ordered:!!b,maxRetransmits:M,metadata:k},q=function(ce){return Qt(ce,!0)}(K);V._dataChannels.push(q),X.info("[".concat(this._clientId,"] remote user ").concat(V.uid," published datachannel")),A||this.safeEmit(si.USER_PUBLISHED,V,"datachannel",K)}this._p2pChannel.hasPendingRemoteDataChannel(V,m.stream_id)&&(X.debug("[".concat(this._clientId,"] resubscribe datachannel for user ").concat(V.uid," after reconnect.")),this._subscribeDataChannel(V,m.stream_id).catch(K=>{X.error("[".concat(this._clientId,"] resubscribe datachannel error"),K.toString())}))}),A&&(this.safeEmit(si.PUBLISHED_USER_LIST,this._pendingPublishedUsers),this._pendingPublishedUsers=[]),Array.isArray(g)&&g.length>0&&g.forEach(m=>{let{uid:y,stream_id:w}=m,b=this._users.find(k=>k._uintid===y);if(!b)return void X.error("[".concat(this._clientId,"] can not find target user!(on_delete_data_channel)"));let M=b._dataChannels.find(k=>k.id===m.stream_id);M&&(X.debug("[".concat(this._clientId,"] data_stream delete with uid ").concat(y)),this._p2pChannel.unsubscribeDataChannel(b,[M]).then(k=>{if(b._dataChannels=b._dataChannels.filter(V=>V!==M),k)return this._gateway.unsubscribeDataChannel(k,b.uid)}),X.info("[".concat(this._clientId,"] remote user ").concat(y," unpublished datachannel ,id:").concat(M.id)),this.safeEmit(si.USER_UNPUBLISHED,b,"datachannel",M._config))})}_getEncodingName(a){var A,l;if(!this._joinResponse)return;let g=(A=this._joinResponse.ortc.rtpCapabilities.sendrecv)===null||A===void 0?void 0:A.videoCodecs;if(!g)return;for(let w of g){var C;if(w.payloadType===a)return w==null||(C=w.rtpMap)===null||C===void 0?void 0:C.encodingName}let m=(l=this._joinResponse.ortc.rtpCapabilities.recv)===null||l===void 0?void 0:l.videoCodecs;if(m)for(let w of m){var y;if(w.payloadType===a)return w==null||(y=w.rtpMap)===null||y===void 0?void 0:y.encodingName}return a===0?"unknown":void 0}_handleRemoveDataChannels(a){let A=this._users.find(l=>l.uid===a.uid);if(A){if(A._dataChannels!==void 0&&A._dataChannels.length>0){X.debug("[".concat(this._clientId,"] datachannel removed with uid ").concat(a.uid));let l=()=>{X.info("[".concat(this._clientId,"] remote user ").concat(A.uid," unpublished datachannel")),A._dataChannels.forEach(g=>{this.safeEmit(si.USER_UNPUBLISHED,A,"datachannel",g._config)})};this._p2pChannel.unsubscribeDataChannel(A,A._dataChannels).then(g=>{if(g)return this._gateway.unsubscribeDataChannel(g,A.uid)}),l()}}else X.warning("[".concat(this._clientId,"] can not find target user!(on_remove_datachannel)"))}_handleGatewayEvents(){this._gateway.on(Pn.UPDATE_GATEWAY_CONFIG,()=>{(function(){let a;try{a=window.localStorage.getItem("websdk_ng_global_parameter")}catch(A){return void X.error("Error loading sdk config",A.message)}if(a)try{let A=JSON.parse(window.atob(a)),l=Date.now();Object.keys(A).forEach(g=>{let{value:C,type:m,expires:y}=A[g];y&&y<=l||m||cN()||!Object.prototype.hasOwnProperty.call(vn,g)||(Vr[g]=C,zi[g]=C,X.debug("Update gateway parameters from config distribute",g,C))})}catch(A){X.error("Error update config from local cache",A.message)}})()}),this._gateway.on(Pn.DISCONNECT_P2P,async()=>{await this._p2pChannel.disconnectForReconnect()}),this._gateway.on(Pn.CONNECTION_STATE_CHANGE,(a,A,l)=>{var g;if(l===bi.FALLBACK)return;let C=()=>{this.safeEmit(si.CONNECTION_STATE_CHANGE,a,A,l)};if(tr.reportApiInvoke(this._sessionId||((g=this._gateway.joinInfo)===null||g===void 0?void 0:g.sid)||null,{name:Co.CONNECTION_STATE_CHANGE,options:[a,A,l],tag:Gn.TRACER}).onSuccess(JSON.stringify({cur:a,prev:A,reason:l})),X.info("[".concat(this._clientId,"] signal connection state change: ").concat(A," -> ").concat(a)),a==="DISCONNECTED")return this._reset(),void C();if(a==="RECONNECTING")this._users.forEach(y=>{y._trust_in_room_=!1,y._trust_audio_enabled_state_=!1,y._trust_video_enabled_state_=!1,y._trust_audio_mute_state_=!1,y._trust_video_mute_state_=!1,y._trust_audio_stream_added_state_=!1,y._trust_video_stream_added_state_=!1,y._is_pre_created||(y._audio_pre_subscribed||(y._audioSSRC=void 0,y._audioOrtc=void 0),y._video_pre_subscribed||(y._videoSSRC=void 0,y._videoOrtc=void 0,y._rtxSsrcId=void 0),y._cname=void 0)}),this._userOfflineTimeout&&window.clearTimeout(this._userOfflineTimeout),this._streamRemovedTimeout&&window.clearTimeout(this._streamRemovedTimeout),this._userOfflineTimeout=void 0,this._streamRemovedTimeout=void 0;else if(a==="CONNECTED"){var m;this._streamFallbackTypeCacheMap.forEach((y,w)=>{this._gateway.setStreamFallbackOption(w,y).catch(b=>{X.warning("[".concat(this._clientId,"] auto set stream fallback option failed"),b)})}),this._remoteStreamTypeCacheMap.forEach((y,w)=>{this._gateway.setRemoteVideoStreamType(w,y).catch(b=>{X.warning("[".concat(this._clientId,"] auto set remote stream type failed"),b)})}),Ie("VOS_CONFIGURE")&&Array.isArray(Ie("VOS_CONFIGURE"))&&Ie("VOS_CONFIGURE").length>0&&(this._gateway.setConfigure(Ie("VOS_CONFIGURE")).catch(y=>{X.debug("[".concat(this._clientId,"] auto set vos config failed"),y)}),X.debug("[".concat(this._clientId,"] ws connected auto set vos config"))),this._remoteDefaultVideoStreamType!==void 0&&((m=this._joinInfo)===null||m===void 0?void 0:m.defaultVideoStream)===void 0&&this.setRemoteDefaultVideoStreamType(this._remoteDefaultVideoStreamType).then(()=>{X.debug("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway connected"))}).catch(y=>{X.error("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway failed, ").concat(y))}),this._dualStreamMode&&this._gateway.setDualStreamMode(this._dualStreamMode).catch(y=>{X.warning("[".concat(this._clientId,"] auto set dual stream mode failed"),y)}),this.store.useP2P||(this._p2pChannel.republish(),this._userOfflineTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._userOfflineTimeout=void 0,this._users.filter(y=>!y._trust_in_room_).forEach(y=>{X.debug("[".concat(this._clientId,"] user offline timeout, emit user offline ").concat(y.uid)),this._handleUserOffline({uid:y.uid})}))},3e3),this._streamRemovedTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._streamRemovedTimeout=void 0,this._users.forEach(y=>{y._trust_audio_mute_state_||(X.debug("[".concat(this._clientId,"] auto dispatch audio unmute event ").concat(y.uid)),this._handleMuteStream(y.uid,$t.AUDIO,!1)),y._trust_video_mute_state_||(X.debug("[".concat(this._clientId,"] auto dispatch video unmute event ").concat(y.uid)),this._handleMuteStream(y.uid,$t.VIDEO,!1)),y._trust_audio_enabled_state_||(X.debug("[".concat(this._clientId,"] auto dispatch enable local audio ").concat(y.uid)),this._handleSetStreamLocalEnable("audio",y.uid,!0)),y._trust_video_enabled_state_||(X.debug("[".concat(this._clientId,"] auto dispatch enable local video ").concat(y.uid)),this._handleSetStreamLocalEnable("video",y.uid,!0)),y._trust_video_stream_added_state_||(X.debug("[".concat(this._clientId,"] auto dispatch reset video stream added ").concat(y.uid)),this._handleResetAddStream(y,"video")),y._trust_audio_stream_added_state_||(X.debug("[".concat(this._clientId,"] auto dispatch reset audio stream added ").concat(y.uid)),this._handleResetAddStream(y,"audio")),y._video_added_||y._audio_added_||(X.debug("[".concat(this._clientId,"] auto dispatch stream remove ").concat(y.uid)),this._handleRemoveStream({uid:y.uid,uint_id:y._uintid}))}))},1e3))}C()}),this._gateway.on(Pn.REQUEST_NEW_GATEWAY_LIST,async(a,A)=>{if(!this._joinInfo)return A(new ze(fe.UNEXPECTED_ERROR,"can not recover, no join info"));try{let l;if(this._fallbackServerInfo)l=this._fallbackServerInfo,this._fallbackServerInfo=void 0,this._joinInfo.preload=!1,tr.reportApiInvoke(this._sessionId,{name:Co.VOS_FALLBACK_CN,options:{cur:l.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!0},tag:Gn.TRACER}).onSuccess(),X.info("[".concat(this._clientId,"] use fallback cn server info"));else{let C=await tQ(ac(ac({},this._joinInfo),{},{uid:this._joinInfo.uid,stringUid:void 0}));C?(l=C.ap,S7(C),this._joinInfo.preload=!0):(l=await Ky(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||os,this.store),this._joinInfo.preload=!1)}this._joinInfo&&(this._joinInfo.apResponse=l.gatewayInfo.res,this._joinInfo.gatewayAddrs=l.gatewayInfo.gatewayAddrs,this._joinInfo.uni_lbs_ip=l.gatewayInfo.uni_lbs_ip);let g=[];l.gatewayInfo.gatewayAddrs.forEach(C=>{let{address:m}=C,[y,w]=m.split(":");this._joinInfo&&this._joinInfo.proxyServer?g.push({proxy:this._joinInfo.proxyServer,host:y,port:w}):g.push({host:y,port:w})}),a(g)}catch(l){A(l)}}),this._gateway.on(Pn.NETWORK_QUALITY,a=>{this._networkQualitySensitivity==="normal"&&this.safeEmit(si.NETWORK_QUALITY,a)}),this._gateway.on(Pn.STREAM_TYPE_CHANGE,(a,A)=>{this.safeEmit(si.STREAM_TYPE_CHANGED,a,A),tr.reportApiInvoke(this._sessionId,{name:Co.STREAM_TYPE_CHANGE,options:[a,A],tag:Gn.TRACER}).onSuccess(JSON.stringify({uid:a,streamType:A}))}),this._gateway.isPreSub=()=>"isPreSub"in this._p2pChannel&&this._p2pChannel.isPreSub(),this._gateway.isPreallocation=()=>"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation(),this._gateway.on(Pn.IS_P2P_DISCONNECTED,a=>{this._p2pChannel.isP2PDisconnected()?a(!0):this._p2pChannel.hasLocalMedia()||this._p2pChannel.hasRemoteMedia()?a(!1):a(!0)}),this._gateway.on(Pn.REQUEST_P2P_CONNECTION_PARAMS,async(a,A,l)=>{try{let g=await this._p2pChannel.getEstablishParams();g&&"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation()||(g=await this._p2pChannel.startP2PConnection(a)),A(g)}catch(g){l(g)}}),this._gateway.on(Pn.JOIN_RESPONSE,(a,A)=>{if(this.store.useP2P)return;let l;this._joinResponse=a,a.attributes?l=a.attributes.userAttributes.preSubSsrcs:X.debug("no attributes in joinResponse");let g=ku(a.ortc,A,l);this._p2pChannel.connect(g)}),this._gateway.on(Pn.PRE_CONNECT_PC,async(a,A,l)=>{let{candidates:g,fingerprint:C,turnServer:m}=a;if(this._joinInfo&&g.length>0&&!this._p2pChannel.isPlanB){let{cert:w,cid:b}=this._joinInfo.apResponse,M="".concat(b,"_").concat(w);if(M.length<4||M.length>256)return void X.debug("[".concat(this._clientId,"] ufrag length is not valid, length: ").concat(M.length));await this._p2pChannel.startP2PConnection({turnServer:m,cloudProxyServer:this._joinInfo.cloudProxyServer,isPreallocation:!0});try{var y;A(await this._p2pChannel.connect({iceParameters:{iceUfrag:"".concat(b,"_").concat(w),icePwd:"".concat(b,"_").concat(w)},dtlsParameters:{fingerprints:[{hashFunction:"sha-256",fingerprint:(y=Ie("FINGERPRINT"))!==null&&y!==void 0?y:C}]},candidates:g,rtpCapabilities:{send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},setup:"active",cname:"o/i14u9pJrxRKAsu",preallocation:!0}))}catch(k){k.code&&k.code===fe.EXCHANGE_SDP_FAILED&&await this._p2pChannel.startP2PConnection({turnServer:m,cloudProxyServer:this._joinInfo.cloudProxyServer},!0),l(k)}}}),this._gateway.on(Pn.VOS_FALLBACK,a=>{a==="fallback_hls"&&this.safeEmit(si.FALLBACK_TO_HLS,LC.VOSERROR)}),this._gateway.on(Pn.RESET_SIGNAL,()=>{this._p2pChannel instanceof Wd&&this._p2pChannel.fallbackConnection(),this._handleGatewaySignalEvents()}),this._gateway.on(Pn.DATACHANNEL_FAILBACK,()=>{tr.reportApiInvoke(this._sessionId,{name:Co.DATACHANNEL_FAILBACK,options:{},tag:Gn.TRACER}).onSuccess(),this._joinGateway()})}_handleGatewaySignalEvents(){this._gateway.signal.on(Or.ON_USER_ONLINE,this._handleUserOnline),this._gateway.signal.on(Or.ON_USER_OFFLINE,this._handleUserOffline),this._gateway.signal.on(Or.ON_ADD_AUDIO_STREAM,a=>this._handleAddAudioOrVideoStream("audio",a.uid,a.ssrcId,a.cname,a.pt,a.uint_id,a.ortc)),this._gateway.signal.on(Or.ON_ADD_VIDEO_STREAM,a=>this._handleAddAudioOrVideoStream("video",a.uid,a.ssrcId,a.cname,a.pt,a.uint_id,a.ortc,a.rtxSsrcId)),this._gateway.signal.on(Or.ON_REMOTE_DATASTREAM_UPDATE,a=>{this._handleUpdateDataChannel(a)}),this._gateway.signal.on(Or.ON_REMOTE_FULL_DATASTREAM_INFO,a=>{this._handleUpdateDataChannel({added:a.datastreams||[],deleted:[]},!0)}),this._gateway.signal.on(Or.ON_REMOVE_STREAM,this._handleRemoveStream),this._gateway.signal.on(Or.ON_P2P_LOST,this._handleP2PLost),this._gateway.signal.on(Or.MUTE_AUDIO,a=>this._handleMuteStream(a.uid,$t.AUDIO,!0)),this._gateway.signal.on(Or.UNMUTE_AUDIO,a=>this._handleMuteStream(a.uid,$t.AUDIO,!1)),this._gateway.signal.on(Or.MUTE_VIDEO,a=>this._handleMuteStream(a.uid,$t.VIDEO,!0)),this._gateway.signal.on(Or.UNMUTE_VIDEO,a=>this._handleMuteStream(a.uid,$t.VIDEO,!1)),this._gateway.signal.on(Or.RECEIVE_METADATA,a=>{let A=th(a.metadata);this.safeEmit(si.RECEIVE_METADATA,a.uid,A)}),this._gateway.signal.on(Or.ON_DATA_STREAM,async a=>{var A;if(!a)return;let l=th(a.payload);if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Rt(A=["aes-128-gcm2","aes-256-gcm2"]).call(A,this._encryptionMode)){if(a.payload.lengthw.uid===a.uid),y=C==null?void 0:C.audioRecv.find(w=>w.ssrc===(m==null?void 0:m._audioSSRC));g=y==null?void 0:y.jitterBufferMs}(g==null||Number.isNaN(g))&&(g=0),GN(ac(ac({},a),{},{payload:l}),g,{id:this._clientId,onStreamMessage:typeof this.onStreamMessage=="function"?this.onStreamMessage.bind(this):void 0,safeEmit:this.safeEmit.bind(this)})}),this._gateway.signal.on(Or.ON_CRYPT_ERROR,()=>{Qi(()=>{X.warning("[".concat(this._clientId,"] on crypt error")),this.safeEmit(si.CRYPT_ERROR)},this._sessionId)}),this._gateway.signal.on(Or.ON_TOKEN_PRIVILEGE_WILL_EXPIRE,this._handleTokenWillExpire),this._gateway.signal.on(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{X.warning("[".concat(this._clientId,"] received message onTokenPrivilegeDidExpire, please get new token and join again")),this._gateway.leave(!0,bi.TOKEN_EXPIRE),this.safeEmit(si.ON_TOKEN_PRIVILEGE_DID_EXPIRE),this._reset()}),this._gateway.signal.on(Or.ON_STREAM_FALLBACK_UPDATE,a=>{X.debug("[".concat(this._clientId,"] stream fallback peerId: ").concat(a.stream_id,", attr: ").concat(a.stream_type)),this.safeEmit(si.STREAM_FALLBACK,a.stream_id,a.stream_type===1?"fallback":"recover")}),this._gateway.signal.on(Or.ENABLE_MULTI_STREAM,a=>{this._dualStreamMode===n2.AUTO_SIMULCAST_STREAM&&this.enableDualStream().catch(A=>{X.debug("[".concat(this._clientId,"] set dual stream mode error"),A.toString())})}),this._gateway.signal.on(Or.ON_PUBLISH_STREAM,a=>{this.uid===this._uid&&(this._p2pChannel.reportPublishEvent(!0,null,void 0,!1,JSON.stringify({proxy:a.proxy})),X.info("[".concat(this._clientId,"] on publish stream, ").concat(JSON.stringify(a))))}),this._gateway.signal.on(Or.ENABLE_LOCAL_VIDEO,a=>{this._handleSetStreamLocalEnable("video",a.uid,!0)}),this._gateway.signal.on(Or.DISABLE_LOCAL_VIDEO,a=>{this._handleSetStreamLocalEnable("video",a.uid,!1)}),this._gateway.signal.on(or.REQUEST_TIMEOUT,(a,A)=>{if(this._joinInfo)switch(a){case sr.PUBLISH:{if(!A)return;let C=A.ortc;if(C){var l,g;let m=C.some(b=>{let{stream_type:M}=b;return M===an.Audio}),y=C.some(b=>{let{stream_type:M}=b;return M!==an.Audio}),w=C.some(b=>{let{stream_type:M}=b;return M===an.Screen||M===an.ScreenLow});A.state==="offer"&&tr.publish(this._joinInfo.sid,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:!1,ec:fe.TIMEOUT,audio:m,video:y,p2pid:A.p2p_id,publishRequestid:this.store.pubId,screenshare:w,audioName:m?(l=C.find(b=>{let{stream_type:M}=b;return M===an.Audio}))===null||l===void 0||(l=l.ssrcs[0])===null||l===void 0?void 0:l.ssrcId.toString():void 0,videoName:y?(g=C.find(b=>{let{stream_type:M}=b;return M!==an.Audio}))===null||g===void 0||(g=g.ssrcs[0])===null||g===void 0?void 0:g.ssrcId.toString():void 0})}break}case sr.SUBSCRIBE:A&&tr.subscribe(this._joinInfo.sid,{succ:!1,ec:fe.TIMEOUT,audio:A.stream_type===$t.AUDIO,video:A.stream_type===$t.VIDEO,peerid:A.stream_id,subscribeRequestid:A.ssrcId,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,A.ssrcId),preSsrc:this._p2pChannel.isPreSubScribe(A.ssrcId)})}}),this._gateway.signal.on(Or.ON_P2P_OK,a=>{this.uid,this._uid}),this._gateway.signal.on(Or.ON_PUBLISHED_USER_LIST,a=>{if(a==null||!a.users)return;Ie("BLOCK_LOCAL_CLIENT")&&(a.users=a.users.filter(g=>!xd(g.string_id||g.stream_id,this.channelName)));let A=[],l=[];for(let g of a.users){let C=this._users.find(k=>k._uintid===g.stream_id);C?C._trust_in_room_=!0:(C=new xg(g.string_id||g.stream_id,g.stream_id),this._users.push(C),this.store.firstVideoFrameDecoded(C.uid,{userJoinNotify:Date.now()}),this.getListeners(si.PUBLISHED_USER_LIST).length===0&&(X.debug("[".concat(this._clientId,"] user online"),g.stream_id),this.safeEmit(si.USER_JOINED,C)));let m=na.Audio&g.stream_type,y=(na.Video|na.LwoVideo)&g.stream_type,w=(65280&g.stream_type)!=0,b=m&&C.hasAudio,M=y&&C.hasVideo;y&&(C._trust_video_stream_added_state_=!0,C._video_added_=!0,C._videoSSRC=g.video_ssrc,C._rtxSsrcId=g.video_rtx),m&&(C._trust_audio_stream_added_state_=!0,C._audio_added_=!0,C._audioSSRC=g.audio_ssrc),m&&!b&&this.getListeners(si.PUBLISHED_USER_LIST).length===0&&(X.info("[".concat(this._clientId,"] remote user ").concat(C.uid," published audio")),this.safeEmit(si.USER_PUBLISHED,C,"audio")),y&&!M&&this.getListeners(si.PUBLISHED_USER_LIST).length===0&&(X.info("[".concat(this._clientId,"] remote user ").concat(C.uid," published video")),this.safeEmit(si.USER_PUBLISHED,C,"video")),(m&&!b||y&&!M||w)&&A.push(C),y&&this._p2pChannel.hasPendingRemoteMedia(C,"video")&&l.push({user:C,mediaType:"video"}),m&&this._p2pChannel.hasPendingRemoteMedia(C,"audio")&&l.push({user:C,mediaType:"audio"})}l.length>0&&(X.debug("[".concat(this._clientId,"] RE massSubscribe after reconnect ").concat(l.map(g=>"user: ".concat(g.user.uid,", mediaType: ").concat(g.mediaType)).join("; ")," ")),this.massSubscribe(l).catch(g=>{X.error("[".concat(this._clientId,"] mass resubscribe error"),g.toString())})),this.getListeners(si.PUBLISHED_USER_LIST).length>0?Ie("ENABLE_DATASTREAM_2")?this._pendingPublishedUsers=A:(X.info("[".concat(this._clientId,"] client emit user-list event, users: ").concat(A.map(g=>g.uid).join(", "))),this.safeEmit(si.PUBLISHED_USER_LIST,A)):X.info("[".concat(this._clientId,"] client not emit user-list event case there is no user-list listener, users: ").concat(A.map(g=>g.uid).join(", ")))}),this._gateway.signal.on(Or.ON_RTP_CAPABILITY_CHANGE,a=>{let{video_codec:A}=a;if(this._p2pChannel instanceof Wd){if(this.role==="audience"&&Ie("UPDATE_RTP_CAP_IN_HOST"))return this._pendingRtpCapabilityChange=a,void X.debug("[".concat(this._clientId,"] no need to change rtp capability because of audience, params: ").concat(JSON.stringify(a)));this._p2pChannel.updateRemoteRTPCapabilities(A.map(l=>l.toLowerCase()).filter(l=>{var g;return Rt(g=Object.keys(Ss)).call(g,l)}))}}),this._gateway.signal.on(or.VOS_FALLBACK_PROMISE,async(a,A,l)=>{if(a==="FALLBACKCN"&&Ie("ENABLE_QUALITY_FALLBACK")){if(!this._joinInfo)return l(new ze(fe.UNEXPECTED_ERROR,"can not recover, no join info"));X.info("[".concat(this._clientId,"] try fallback to cn, start request new server info"));let C=this._joinInfo.apRequestDetail;try{this._joinInfo.apRequestDetail=a;let m=await Ky(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||os,this.store);if(Ie("QUALITY_FALLBACK_REHEARSAL"))return tr.reportApiInvoke(this._sessionId,{name:Co.VOS_FALLBACK_CN,options:{cur:m.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:Gn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=C,void l();this._fallbackServerInfo=m,A()}catch(m){var g;let y=m==null||(g=m.data)===null||g===void 0?void 0:g.desc;Ie("QUALITY_FALLBACK_REHEARSAL")?(tr.reportApiInvoke(this._sessionId,{name:Co.VOS_FALLBACK_CN,options:{cur:"failed, errorReason: "+y||"unknown",prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:Gn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=C):Array.isArray(y)&&Rt(y).call(y,"request downgrade fallback")&&this.safeEmit(si.FALLBACK_TO_HLS,LC.AP_ERROR),l(m)}}else l()})}_handleP2PEvents(){this._gateway.signal.on(Or.ON_USER_OFFLINE,()=>{this._p2pChannel.disconnectForReconnect()}),this._gateway.signal.on(Ro.PUBLISH,(a,A,l)=>{let{uid:g}=a;a.forEach(C=>{let{kind:m,ssrcs:y,mid:w,isMuted:b}=C;this._handleP2PAddAudioOrVideoStream(m,g,y[0].ssrcId,w);let M=this._users.find(k=>k.uid===g);return M&&this.store.useP2P?this._p2pChannel.mockSubscribe(M,m,y[0].ssrcId,w).then(()=>{A()}).catch(l):A(),this._handleMuteStream(g,m,!!b)})}),this._gateway.signal.on(Ro.CALL,async(a,A,l)=>{if(this.store.useP2P)try{var g;A(await this._p2pChannel.startP2P({turnServer:(g=this._joinInfo)===null||g===void 0?void 0:g.turnServer},a))}catch(C){l(C)}}),this._gateway.signal.on(or.P2P_CONNECTION,async a=>{this.store.useP2P&&(await this._p2pChannel).p2pConnect(a)}),this._gateway.signal.on(Ro.UNPUBLISH,async(a,A,l)=>{if(this.store.useP2P){let{unpubMsg:g,uid:C}=a,m=this._users.find(y=>y.uid===C);if(!m)return X.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(C)),void A();try{g.forEach(async y=>{let{stream_type:w}=y,b=w===an.Audio?$t.AUDIO:$t.VIDEO;await this._p2pChannel.unsubscribe(m,b),this._handleMuteStream(C,b,!0)}),A()}catch(y){l(y)}}}),this._gateway.signal.on(Ro.CONTROL,async(a,A)=>{let{action:l}=a;switch(l){case Vd.MUTE_LOCAL_VIDEO:this._handleMuteStream(A,$t.VIDEO,!0);break;case Vd.MUTE_LOCAL_AUDIO:this._handleMuteStream(A,$t.AUDIO,!0);break;case Vd.UNMUTE_LOCAL_VIDEO:this._handleP2PAddAudioOrVideoStream("video",A),this._handleMuteStream(A,$t.VIDEO,!1);break;case Vd.UNMUTE_LOCAL_AUDIO:this._handleP2PAddAudioOrVideoStream("audio",A),this._handleMuteStream(A,$t.AUDIO,!1)}}),this._gateway.signal.on(Ro.RESTART_ICE,async(a,A,l)=>{if(this.store.useP2P)try{let{direction:g,iceParameter:C}=a;g!==uA.SEND_ONLY||C?A(await this._p2pChannel.restartICE(g,C)):(this._p2pChannel.handleDisconnect(g),A())}catch(g){l(g)}}),this._gateway.signal.on(Ro.CANDIDATE,a=>{if(this.store.useP2P){let{candidate:A,direction:l}=a;this._p2pChannel.addRemoteCandidate(A,l)}}),this._p2pChannel.on(hr.RequestP2PRestartICE,async(a,A,l)=>{try{let{direction:g}=a;A(await this._gateway.sendExtensionMessage(Ro.RESTART_ICE,a,g===uA.SEND_ONLY))}catch(g){l(g)}}),this._p2pChannel.on(hr.LocalCandidate,a=>{this._gateway.sendExtensionMessage(Ro.CANDIDATE,JSON.stringify(a),!0)}),this._p2pChannel.on(hr.RequestP2PMuteLocal,async(a,A,l)=>{try{await this._gateway.sendExtensionMessage(Ro.CONTROL,a,!0),A()}catch(g){l(g)}}),this._p2pChannel.on(hr.RequestP2PUnmuteRemote,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.unmuteRemote(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.RequestP2PMuteRemote,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.muteRemote(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.StateChange,(a,A)=>{A===An.Connected&&this._p2pChannel.republish()})}_handleP2PChannelEvents(){this._p2pChannel.on(hr.PeerConnectionStateChange,a=>{let A=this._peerConnectionState;a!==A&&(this.safeEmit(si.PEERCONNECTION_STATE_CHANGE,a,A),this._peerConnectionState=a)}),this._p2pChannel.on(hr.RequestMuteLocal,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.muteLocal(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.RequestUnmuteLocal,async(a,A,l)=>{if(this._joinInfo)try{await this._gateway.unmuteLocal(a,this._joinInfo.stringUid||this._joinInfo.uid),A()}catch(g){g.code===fe.DISCONNECT_P2P?A():l(g)}else A()}),this._p2pChannel.on(hr.RequestRePublish,(a,A,l)=>{this.publish(a,!1).then(A).catch(l)}),this._p2pChannel.on(hr.RequestRePublishDataChannel,(a,A,l)=>{Ft.all(a.map(async g=>{let C=await this._p2pChannel.publishDataChannel([g]);try{C.forEach(m=>{this._uid&&this._gateway.publishDataChannel(this._uid,m,!0)})}catch(m){if(m.code!==fe.DISCONNECT_P2P)throw m}})).then(A).catch(l)}),this._p2pChannel.on(hr.RequestReSubscribe,async(a,A,l)=>{try{for(let{user:g,kind:C}of a)C===$t.VIDEO?await this.subscribe(g,"video"):await this.subscribe(g,"audio");A()}catch(g){l(g)}}),this._p2pChannel.on(hr.RequestUpload,(a,A)=>{this._gateway.upload(a,A)}),this._p2pChannel.on(hr.RequestUploadStats,a=>{this._gateway.uploadWRTCStats(a)}),this._p2pChannel.on(hr.MediaReconnectStart,a=>{this.safeEmit(si.MEDIA_RECONNECT_START,a)}),this._p2pChannel.on(hr.MediaReconnectEnd,a=>{this.safeEmit(si.MEDIA_RECONNECT_END,a)}),this._p2pChannel.on(hr.NeedSignalRTT,a=>{a(this._gateway.getSignalRTT())}),this._p2pChannel.on(hr.RequestRestartICE,async a=>{if(this.store.useP2P)return;let A=await this._p2pChannel.restartICE(a),l=await A.next();if(l.done)return;let g=l.value,C;try{C=await this._gateway.restartICE({iceParameters:g})}catch(y){return void A.throw(y)}let{iceParameters:m}=function(y){let w=y.iceParameters;return{iceParameters:{iceUfrag:w.iceUfrag,icePwd:w.icePwd}}}(C);await A.next({remoteIceParameters:m})}),this._p2pChannel.on(hr.RequestReconnect,async()=>{this._gateway.reconnect()}),this._p2pChannel.on(hr.RequestReconnectPC,async()=>{var a;let{iceParameters:A,dtlsParameters:l,rtpCapabilities:g}=await this._p2pChannel.startP2PConnection({turnServer:(a=this._joinInfo)===null||a===void 0?void 0:a.turnServer}),{gatewayEstablishParams:C,gatewayAddress:m}=await this._gateway.reconnectPC({iceParameters:A,dtlsParameters:l,rtpCapabilities:g}),y=ku(C,m);await this._p2pChannel.connect(y),await this._p2pChannel.republish(),await this._p2pChannel.reSubscribe()}),this._p2pChannel.on(hr.RequestUnpublishForReconnectPC,async(a,A,l)=>{this._joinInfo&&this._uid!==void 0?(await this._gateway.unpublish(a,this._uid),A()):l()}),this._p2pChannel.on(hr.P2PLost,()=>{this.safeEmit(si.P2P_LOST,this.store.uid)}),this._p2pChannel.on(hr.UpdateVideoEncoder,a=>{a._encoderConfig&&this._gateway.setVideoProfile(a._encoderConfig)}),this._p2pChannel.on(hr.ConnectionTypeChange,a=>{this.safeEmit(si.IS_USING_CLOUD_PROXY,a),this._gateway.setUsingProxy(a)}),this._p2pChannel.on(hr.FirstVideoBufferReady,(a,A)=>{this.safeEmit(si.FIRST_VIDEO_BUFFER_READY,a,A)}),this._p2pChannel.on(hr.FirstVideoPreRender,(a,A)=>{this.safeEmit(si.FIRST_VIDEO_PRE_RENDER,a,A)}),this._p2pChannel.on(hr.RequestLowStreamParameter,a=>{a(this._lowStreamParameter||{width:160,height:120,framerate:15,bitrate:50})}),this._p2pChannel.on(hr.QueryClientConnectionState,a=>{a(this.connectionState)}),this._p2pChannel.on(hr.AudioMetadata,a=>{this.safeEmit(si.AUDIO_METADATA,a)}),this._p2pChannel.on(hr.AudioPts,a=>{this.safeEmit(si.AUDIO_PTS,Number(a))})}getKeyMetrics(){return this.store.keyMetrics}async enableContentInspect(a){if(!this._joinInfo||this.connectionState!=="CONNECTED")throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] can not create content inspect, please join channel first"));if(this._inspect)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] Inspect content service already in connecting/connected state"));try{let l=(A={config:a},td("ContentInspect").create(A));this._inspect=l,this.handleVideoInspectEvents(l);let{appId:g,cname:C,sid:m,token:y,uid:w,cid:b,vid:M}=this._joinInfo;await l.init({appId:g,areaCode:"",cname:C,sid:m,token:y,uid:w,cid:b,vid:M?Number(M):0},os)}catch(l){throw Array.isArray(l)?l[0]:l}var A}handleVideoInspectEvents(a){a.on(sa.CONNECTION_STATE_CHANGE,(A,l)=>{if(this.safeEmit(si.CONTENT_INSPECT_CONNECTION_STATE_CHANGE,A,l),l===Cl.CONNECTED){if(this.connectionState!=="CONNECTED")return void this.safeEmit(si.CONTENT_INSPECT_ERROR,new ze(fe.OPERATION_ABORTED,"Content inspect was cancelled because it left the channel"));a.inspectImage()}}),a.on(sa.INSPECT_RESULT,(A,l)=>{var g;if((l==null?void 0:l.code)===fe.INVALID_OPERATION&&this.connectionState==="DISCONNECTED")return X.debug("Stop inspect content because that has left channel"),this==null||(g=this._inspect)===null||g===void 0||g.close(),void(this._inspect=void 0);this.safeEmit(si.CONTENT_INSPECT_RESULT,A,l)}),a.on(sa.CLIENT_LOCAL_VIDEO_TRACK,A=>{A(this.localTracks.filter(l=>l.trackMediaType==="video")[0])})}async disableContentInspect(){if(!this._inspect)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] inspectVideoContent not started"));try{this._inspect.close(),this._inspect=void 0}catch(a){throw Array.isArray(a)?a[0]:a}}async setImageModeration(a,A){if(Yl(a,"enabled"),a){if(!A)throw new ze(fe.INVALID_PARAMS,"config is required");if(sQ(A),!this._joinInfo)throw new ze(fe.INVALID_OPERATION,"can not create image moderation, please join channel first");try{if(this._moderation)this._moderation.updateConfig(A);else{let g=(l={config:A},td("ImageModeration").create(l));this._moderation=g,this.handleImageModerationEvents(g);let{appId:C,cname:m,sid:y,token:w,uid:b,cid:M,vid:k}=this._joinInfo;await g.init({appId:C,areaCode:"",cname:m,sid:y,token:w,uid:b,cid:M,vid:k?Number(k):0},os)}}catch(g){throw Array.isArray(g)?g[0]:g}}else{var l;if(!this._moderation)throw new ze(fe.INVALID_OPERATION,"[".concat(this._clientId,"] image moderation not started"));try{this._moderation.close(),this._moderation.removeAllListeners(),this._moderation=void 0}catch(g){throw Array.isArray(g)?g[0]:g}}}handleImageModerationEvents(a){a.on(Pc.CONNECTION_STATE_CHANGE,(A,l)=>{if(this.safeEmit(si.IMAGE_MODERATION_CONNECTION_STATE_CHANGE,A,l),A===ba.CONNECTED){if(this.connectionState!=="CONNECTED")throw this.setImageModeration(!1),new ze(fe.OPERATION_ABORTED,"Image moderation was cancelled because it left the channel");a.inspectImage()}}),a.on(Pc.CLIENT_LOCAL_VIDEO_TRACK,A=>{A(this.localTracks.filter(l=>l.trackMediaType==="video")[0])})}setP2PTransport(a){if(function(A){zo(A,"transport",["default","auto","relay","sd-rtn"])}(a),this.mode!=="p2p")throw new ze(fe.INVALID_OPERATION,"only p2p mode can set p2pTransport");this.store.p2pTransport=a,X.info("[".concat(this._clientId,"] set client p2pTransport to ").concat(a))}getJoinChannelServiceRecords(){return X.debug("getJoinChannelServiceRecords"),this.store.joinChannelServiceRecords}async setPublishAudioFilterEnabled(a){Yl(a,"enabled"),Mn("ENABLE_PUBLISH_AUDIO_FILTER",a),this._joinInfo&&await this._gateway.setPublishAudioFilterEnabled(a)}_setRteInfo(a,A){this.store.rteUrl=a,this.store.rteSid=A}_isPreRender(){return"isPreRender"in this._p2pChannel&&this._p2pChannel.isPreRender()}_handleResetAddStream(a,A){switch(A){case"audio":a._audio_added_=!1,a._trust_audio_stream_added_state_=!0;break;case"video":a._video_added_=!1,a._trust_video_stream_added_state_=!0}}},Vt(Jt.prototype,"leave",[T_],Object.getOwnPropertyDescriptor(Jt.prototype,"leave"),Jt.prototype),Vt(Jt.prototype,"publish",[AQ],Object.getOwnPropertyDescriptor(Jt.prototype,"publish"),Jt.prototype),Vt(Jt.prototype,"unpublish",[ca],Object.getOwnPropertyDescriptor(Jt.prototype,"unpublish"),Jt.prototype),Vt(Jt.prototype,"subscribe",[jN],Object.getOwnPropertyDescriptor(Jt.prototype,"subscribe"),Jt.prototype),Vt(Jt.prototype,"presubscribe",[b7],Object.getOwnPropertyDescriptor(Jt.prototype,"presubscribe"),Jt.prototype),Vt(Jt.prototype,"massSubscribe",[Dh],Object.getOwnPropertyDescriptor(Jt.prototype,"massSubscribe"),Jt.prototype),Vt(Jt.prototype,"unsubscribe",[JN],Object.getOwnPropertyDescriptor(Jt.prototype,"unsubscribe"),Jt.prototype),Vt(Jt.prototype,"massUnsubscribe",[qN],Object.getOwnPropertyDescriptor(Jt.prototype,"massUnsubscribe"),Jt.prototype),Vt(Jt.prototype,"setLowStreamParameter",[WN],Object.getOwnPropertyDescriptor(Jt.prototype,"setLowStreamParameter"),Jt.prototype),Vt(Jt.prototype,"setDualStreamMode",[XN],Object.getOwnPropertyDescriptor(Jt.prototype,"setDualStreamMode"),Jt.prototype),Vt(Jt.prototype,"enableDualStream",[cQ],Object.getOwnPropertyDescriptor(Jt.prototype,"enableDualStream"),Jt.prototype),Vt(Jt.prototype,"disableDualStream",[lQ],Object.getOwnPropertyDescriptor(Jt.prototype,"disableDualStream"),Jt.prototype),Vt(Jt.prototype,"setClientRole",[zN],Object.getOwnPropertyDescriptor(Jt.prototype,"setClientRole"),Jt.prototype),Vt(Jt.prototype,"_setClientRoleOptions",[N7],Object.getOwnPropertyDescriptor(Jt.prototype,"_setClientRoleOptions"),Jt.prototype),Vt(Jt.prototype,"setProxyServer",[$N],Object.getOwnPropertyDescriptor(Jt.prototype,"setProxyServer"),Jt.prototype),Vt(Jt.prototype,"setTurnServer",[O7],Object.getOwnPropertyDescriptor(Jt.prototype,"setTurnServer"),Jt.prototype),Vt(Jt.prototype,"setLicense",[Hu],Object.getOwnPropertyDescriptor(Jt.prototype,"setLicense"),Jt.prototype),Vt(Jt.prototype,"startProxyServer",[L7],Object.getOwnPropertyDescriptor(Jt.prototype,"startProxyServer"),Jt.prototype),Vt(Jt.prototype,"stopProxyServer",[ZN],Object.getOwnPropertyDescriptor(Jt.prototype,"stopProxyServer"),Jt.prototype),Vt(Jt.prototype,"setLocalAccessPointsV2",[M7],Object.getOwnPropertyDescriptor(Jt.prototype,"setLocalAccessPointsV2"),Jt.prototype),Vt(Jt.prototype,"setLocalAccessPoints",[k7],Object.getOwnPropertyDescriptor(Jt.prototype,"setLocalAccessPoints"),Jt.prototype),Vt(Jt.prototype,"setRemoteDefaultVideoStreamType",[ip],Object.getOwnPropertyDescriptor(Jt.prototype,"setRemoteDefaultVideoStreamType"),Jt.prototype),Vt(Jt.prototype,"setRemoteVideoStreamType",[dQ],Object.getOwnPropertyDescriptor(Jt.prototype,"setRemoteVideoStreamType"),Jt.prototype),Vt(Jt.prototype,"setStreamFallbackOption",[uQ],Object.getOwnPropertyDescriptor(Jt.prototype,"setStreamFallbackOption"),Jt.prototype),Vt(Jt.prototype,"setEncryptionConfig",[P7],Object.getOwnPropertyDescriptor(Jt.prototype,"setEncryptionConfig"),Jt.prototype),Vt(Jt.prototype,"renewToken",[eO],Object.getOwnPropertyDescriptor(Jt.prototype,"renewToken"),Jt.prototype),Vt(Jt.prototype,"enableAudioVolumeIndicator",[U7],Object.getOwnPropertyDescriptor(Jt.prototype,"enableAudioVolumeIndicator"),Jt.prototype),Vt(Jt.prototype,"startLiveStreaming",[w_],Object.getOwnPropertyDescriptor(Jt.prototype,"startLiveStreaming"),Jt.prototype),Vt(Jt.prototype,"setLiveTranscoding",[tO],Object.getOwnPropertyDescriptor(Jt.prototype,"setLiveTranscoding"),Jt.prototype),Vt(Jt.prototype,"stopLiveStreaming",[rO],Object.getOwnPropertyDescriptor(Jt.prototype,"stopLiveStreaming"),Jt.prototype),Vt(Jt.prototype,"startChannelMediaRelay",[iO],Object.getOwnPropertyDescriptor(Jt.prototype,"startChannelMediaRelay"),Jt.prototype),Vt(Jt.prototype,"updateChannelMediaRelay",[x7],Object.getOwnPropertyDescriptor(Jt.prototype,"updateChannelMediaRelay"),Jt.prototype),Vt(Jt.prototype,"stopChannelMediaRelay",[nO],Object.getOwnPropertyDescriptor(Jt.prototype,"stopChannelMediaRelay"),Jt.prototype),Vt(Jt.prototype,"sendCustomReportMessage",[F7],Object.getOwnPropertyDescriptor(Jt.prototype,"sendCustomReportMessage"),Jt.prototype),Vt(Jt.prototype,"pickSVCLayer",[gQ],Object.getOwnPropertyDescriptor(Jt.prototype,"pickSVCLayer"),Jt.prototype),Vt(Jt.prototype,"setRTMConfig",[fo],Object.getOwnPropertyDescriptor(Jt.prototype,"setRTMConfig"),Jt.prototype),Vt(Jt.prototype,"enableContentInspect",[np],Object.getOwnPropertyDescriptor(Jt.prototype,"enableContentInspect"),Jt.prototype),Vt(Jt.prototype,"disableContentInspect",[G7],Object.getOwnPropertyDescriptor(Jt.prototype,"disableContentInspect"),Jt.prototype),Vt(Jt.prototype,"setImageModeration",[op],Object.getOwnPropertyDescriptor(Jt.prototype,"setImageModeration"),Jt.prototype),Vt(Jt.prototype,"setP2PTransport",[v_],Object.getOwnPropertyDescriptor(Jt.prototype,"setP2PTransport"),Jt.prototype),Vt(Jt.prototype,"getJoinChannelServiceRecords",[sc],Object.getOwnPropertyDescriptor(Jt.prototype,"getJoinChannelServiceRecords"),Jt.prototype),Vt(Jt.prototype,"setPublishAudioFilterEnabled",[Hg],Object.getOwnPropertyDescriptor(Jt.prototype,"setPublishAudioFilterEnabled"),Jt.prototype),Jt);function oO(){var a;let A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{codec:"vp8",audioCodec:"opus",mode:"rtc"},l=yn(5,"client-"),g=tr.reportApiInvoke(null,{id:l,name:Co.CREATE_CLIENT,options:[A],tag:Gn.TRACER});try{(function(C){zo(C.codec,"config.codec",["vp8","vp9","av1","h264","h265"]),zo(C.mode,"config.mode",["rtc","live","p2p"]),C.audioCodec!==void 0&&zo(C.audioCodec,"config.audioCodec",["opus","pcmu","pcma","g722"]),C.proxyServer!==void 0&&Tr(C.proxyServer,"config.proxyServer",1,1e4),C.turnServer!==void 0&&wR(C.turnServer),C.httpRetryConfig!==void 0&&TR(C.httpRetryConfig),C.websocketRetryConfig!==void 0&&TR(C.websocketRetryConfig)})(A)}catch(C){throw g.onError(C),C}return(jb(16,0,!0)||r2(16,0,!0))&&(A.codec==="vp9"&&(A.codec="vp8",X.debug("browser not support vp9, force use vp8")),Mn("UNSUPPORTED_VIDEO_CODEC",["vp9"])),A.audioCodec===void 0&&(A.audioCodec="opus"),g.onSuccess(),new V7(ac(ac({forceWaitGatewayResponse:!0},A),{},{role:Rt(a=["rtc","p2p"]).call(a,A.mode)?"host":A.role||"audience"}),l)}function sO(){let a=!1,A=Wi();return(A.name===nn.CHROME&&Number(A.version)>=58&&(Kl.engine.name!=="WebKit"||function(){let l=Wi();if(DC()){if(l.os===Vs.MAC_OS)return!0;if(l.os===Vs.IOS){let g=Kl.os.version&&Kl.os.version.split(".");if(g&&Number(g[0])===14&&g[1]&&Number(g[1])>=3||g&&Number(g[0])>14)return!0}}return!1}())||A.name===nn.FIREFOX&&Number(A.version)>=56||A.name===nn.OPERA&&Number(A.version)>=45||A.name===nn.SAFARI&&Number(A.version)>=11||A.name==="WebKit"&&(Ma()||Hl())&&A.osVersion&&Number(A.osVersion.split(".")[0])>=11||Jb()||Wi().name===nn.QQ)&&(a=!0),a}class D_{constructor(A,l){Ae(this,"id",0),Ae(this,"element",void 0),Ae(this,"peerPair",void 0),Ae(this,"context",void 0),Ae(this,"audioPlayerElement",void 0),Ae(this,"audioTrack",void 0),D_.count+=1,this.id=D_.count,this.element=A,this.context=l}initPeers(){this.peerPair=[new RTCPeerConnection,new RTCPeerConnection],this.peerPair[1].ontrack=A=>{let l=document.createElement("audio");l.srcObject=new MediaStream([A.track]),l.play(),this.audioPlayerElement=l}}async switchSdp(){if(!this.peerPair)return;let A=async(g,C)=>{let m=C==="offer"?await g.createOffer():await g.createAnswer();return await g.setLocalDescription(m),g.iceGatheringState==="complete"?g.localDescription:new Ft(y=>{g.onicegatheringstatechange=()=>{g.iceGatheringState==="complete"&&y(g.localDescription)}})},l=async(g,C)=>await g.setRemoteDescription(C);try{let g=await A(this.peerPair[0],"offer");await l(this.peerPair[1],g);let C=await A(this.peerPair[1],"answer");await l(this.peerPair[0],C)}catch(g){throw new ze(fe.LOCAL_AEC_ERROR,g.toString()).print()}}async getTracksFromMediaElement(A){if(this.audioTrack)return this.audioTrack;let l;try{A instanceof HTMLVideoElement&&(A.captureStream?A.captureStream():A.mozCaptureStream()),l=this.context.createMediaStreamDestination(),this.context.createMediaElementSource(A).connect(l)}catch(C){throw new ze(fe.LOCAL_AEC_ERROR,C.toString()).print()}if(!l)throw new ze(fe.LOCAL_AEC_ERROR,"no dest node when local aec").print();let g=l.stream.getAudioTracks()[0];return this.audioTrack=g,g}getElement(){return this.element}async startEchoCancellation(){this.context.resume(),this.peerPair&&this.close(),this.initPeers();let A=this.element,l=await this.getTracksFromMediaElement(A);this.peerPair&&this.peerPair[0].addTrack(l),await this.switchSdp()}close(){X.debug("close echo cancellation unit, id is",this.id),this.audioPlayerElement&&this.audioPlayerElement.pause(),this.peerPair&&this.peerPair.forEach(A=>{A.close()}),this.peerPair=void 0,this.audioPlayerElement=void 0}}var Ka,b_;Ae(D_,"count",0);let lq=window.AudioContext||window.webkitAudioContext,dq=new(Ka=Sr({report:tr}),Vt((b_=class{constructor(){Ae(this,"units",[]),Ae(this,"context",void 0)}processExternalMediaAEC(a){if(!this._doesEnvironmentNeedAEC())return X.debug("the system does not need to process local aec"),-1;this.context||(this.context=new lq);let A=this.units.find(l=>l&&l.getElement()===a);return A||(A=new D_(a,this.context),this.units.push(A)),A.startEchoCancellation(),X.debug("start processing local audio echo cancellation, id is",A.id),A.id}_doesEnvironmentNeedAEC(){return Wi().name!==nn.SAFARI}}).prototype,"processExternalMediaAEC",[Ka],Object.getOwnPropertyDescriptor(b_.prototype,"processExternalMediaAEC"),b_.prototype),b_);function Yg(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function K7(a){for(var A=1;A1&&arguments[1]!==void 0&&arguments[1];if(!aO)return;let l=Ts._cspEventHandlerPointer;if(l&&A)return void console.error(l,A);let g=C=>{if(!(C&&C.blockedURI&&(Ts.onSecurityPolicyViolation||Ts.getListeners(nc.SECURITY_POLICY_VIOLATION).length>0)))return;let m=C.blockedURI;Ie("CSP_DETECTED_HOSTNAME_LIST").some(y=>Rt(m).call(m,y))&&(Ts.onSecurityPolicyViolation&&typeof Ts.onSecurityPolicyViolation=="function"&&Ts.onSecurityPolicyViolation(C),Ts.getListeners(nc.SECURITY_POLICY_VIOLATION).length>0&&Ts.safeEmit(nc.SECURITY_POLICY_VIOLATION,C))};l&&aO.removeEventListener("securitypolicyviolation",l),(A||a&&typeof a=="function"||Ts.getListeners(nc.SECURITY_POLICY_VIOLATION).length>0)&&aO.addEventListener("securitypolicyviolation",g),Ts._cspEventHandlerPointer=g}var uq=j,AO=AC,hQ=RegExp.prototype,gq=function(a){return a===hQ||uq(hQ,a)?AO(a):a.flags},CA=I(gq);function Yu(a){let A=a.length;for(;--A>=0;)a[A]=0}let cO=256,H7=286,od=30,ju=15,nI=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Ha=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),lO=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ac=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),jg=new Array(576);Yu(jg);let sp=new Array(60);Yu(sp);let N_=new Array(512);Yu(N_);let O_=new Array(256);Yu(O_);let ml=new Array(29);Yu(ml);let Bl=new Array(od);function sd(a,A,l,g,C){this.static_tree=a,this.extra_bits=A,this.extra_base=l,this.elems=g,this.max_length=C,this.has_stree=a&&a.length}let dO,IQ,Y7;function CQ(a,A){this.dyn_tree=a,this.max_code=0,this.stat_desc=A}Yu(Bl);let j7=a=>a<256?N_[a]:N_[256+(a>>>7)],ap=(a,A)=>{a.pending_buf[a.pending++]=255&A,a.pending_buf[a.pending++]=A>>>8&255},cc=(a,A,l)=>{a.bi_valid>16-l?(a.bi_buf|=A<>16-a.bi_valid,a.bi_valid+=l-16):(a.bi_buf|=A<{cc(a,l[2*A],l[2*A+1])},J7=(a,A)=>{let l=0;do l|=1&a,a>>>=1,l<<=1;while(--A>0);return l>>>1},q7=(a,A,l)=>{let g=new Array(16),C,m,y=0;for(C=1;C<=ju;C++)y=y+l[C-1]<<1,g[C]=y;for(m=0;m<=A;m++){let w=a[2*m+1];w!==0&&(a[2*m]=J7(g[w]++,w))}},bh=a=>{let A;for(A=0;A{a.bi_valid>8?ap(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0},L_=(a,A,l,g)=>{let C=2*A,m=2*l;return a[C]{let g=a.heap[l],C=l<<1;for(;C<=a.heap_len&&(C{let g,C,m,y,w=0;if(a.sym_next!==0)do g=255&a.pending_buf[a.sym_buf+w++],g+=(255&a.pending_buf[a.sym_buf+w++])<<8,C=a.pending_buf[a.sym_buf+w++],g===0?Ju(a,C,A):(m=O_[C],Ju(a,m+cO+1,A),y=nI[m],y!==0&&(C-=ml[m],cc(a,C,y)),g--,m=j7(g),Ju(a,m,l),y=Ha[m],y!==0&&(g-=Bl[m],cc(a,g,y)));while(w{let l=A.dyn_tree,g=A.stat_desc.static_tree,C=A.stat_desc.has_stree,m=A.stat_desc.elems,y,w,b,M=-1;for(a.heap_len=0,a.heap_max=573,y=0;y>1;y>=1;y--)ad(a,l,y);b=m;do y=a.heap[1],a.heap[1]=a.heap[a.heap_len--],ad(a,l,1),w=a.heap[1],a.heap[--a.heap_max]=y,a.heap[--a.heap_max]=w,l[2*b]=l[2*y]+l[2*w],a.depth[b]=(a.depth[y]>=a.depth[w]?a.depth[y]:a.depth[w])+1,l[2*y+1]=l[2*w+1]=b,a.heap[1]=b++,ad(a,l,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],((k,V)=>{let K=V.dyn_tree,q=V.max_code,ce=V.stat_desc.static_tree,oe=V.stat_desc.has_stree,le=V.stat_desc.extra_bits,pe=V.stat_desc.extra_base,Se=V.stat_desc.max_length,be,Ue,xe,Le,je,dt,pt=0;for(Le=0;Le<=ju;Le++)k.bl_count[Le]=0;for(K[2*k.heap[k.heap_max]+1]=0,be=k.heap_max+1;be<573;be++)Ue=k.heap[be],Le=K[2*K[2*Ue+1]+1]+1,Le>Se&&(Le=Se,pt++),K[2*Ue+1]=Le,Ue>q||(k.bl_count[Le]++,je=0,Ue>=pe&&(je=le[Ue-pe]),dt=K[2*Ue],k.opt_len+=dt*(Le+je),oe&&(k.static_len+=dt*(ce[2*Ue+1]+je)));if(pt!==0){do{for(Le=Se-1;k.bl_count[Le]===0;)Le--;k.bl_count[Le]--,k.bl_count[Le+1]+=2,k.bl_count[Se]--,pt-=2}while(pt>0);for(Le=Se;Le!==0;Le--)for(Ue=k.bl_count[Le];Ue!==0;)xe=k.heap[--be],xe>q||(K[2*xe+1]!==Le&&(k.opt_len+=(Le-K[2*xe+1])*K[2*xe],K[2*xe+1]=Le),Ue--)}})(a,A),q7(l,M,a.bl_count)},pQ=(a,A,l)=>{let g,C,m=-1,y=A[1],w=0,b=7,M=4;for(y===0&&(b=138,M=3),A[2*(l+1)+1]=65535,g=0;g<=l;g++)C=y,y=A[2*(g+1)+1],++w{let g,C,m=-1,y=A[1],w=0,b=7,M=4;for(y===0&&(b=138,M=3),g=0;g<=l;g++)if(C=y,y=A[2*(g+1)+1],!(++w{cc(a,0+(g?1:0),3),W7(a),ap(a,l),ap(a,~l),l&&a.pending_buf.set(a.window.subarray(A,A+l),a.pending),a.pending+=l};var zd=a=>{uO||((()=>{let A,l,g,C,m,y=new Array(16);for(g=0,C=0;C<28;C++)for(ml[C]=g,A=0;A<1<>=7;C{let C,m,y=0;a.level>0?(a.strm.data_type===2&&(a.strm.data_type=(w=>{let b,M=4093624447;for(b=0;b<=31;b++,M>>>=1)if(1&M&&w.dyn_ltree[2*b]!==0)return 0;if(w.dyn_ltree[18]!==0||w.dyn_ltree[20]!==0||w.dyn_ltree[26]!==0)return 1;for(b=32;b{let b;for(pQ(w,w.dyn_ltree,w.l_desc.max_code),pQ(w,w.dyn_dtree,w.d_desc.max_code),M_(w,w.bl_desc),b=18;b>=3&&w.bl_tree[2*Ac[b]+1]===0;b--);return w.opt_len+=3*(b+1)+5+5+4,b})(a),C=a.opt_len+3+7>>>3,m=a.static_len+3+7>>>3,m<=C&&(C=m)):C=m=l+5,l+4<=C&&A!==-1?qu(a,A,l,g):a.strategy===4||m===C?(cc(a,2+(g?1:0),3),Nh(a,jg,sp)):(cc(a,4+(g?1:0),3),((w,b,M,k)=>{let V;for(cc(w,b-257,5),cc(w,M-1,5),cc(w,k-4,4),V=0;V(a.pending_buf[a.sym_buf+a.sym_next++]=A,a.pending_buf[a.sym_buf+a.sym_next++]=A>>8,a.pending_buf[a.sym_buf+a.sym_next++]=l,A===0?a.dyn_ltree[2*l]++:(a.matches++,A--,a.dyn_ltree[2*(O_[l]+cO+1)]++,a.dyn_dtree[2*j7(A)]++),a.sym_next===a.sym_end),k_=a=>{cc(a,2,3),Ju(a,256,jg),(A=>{A.bi_valid===16?(ap(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)})(a)},Z7={_tr_init:zd,_tr_stored_block:qu,_tr_flush_block:z7,_tr_tally:$7,_tr_align:k_},oI=(a,A,l,g)=>{let C=65535&a|0,m=a>>>16&65535|0,y=0;for(;l!==0;){y=l>2e3?2e3:l,l-=y;do C=C+A[g++]|0,m=m+C|0;while(--y);C%=65521,m%=65521}return C|m<<16|0};let ex=new Uint32Array((()=>{let a,A=[];for(var l=0;l<256;l++){a=l;for(var g=0;g<8;g++)a=1&a?3988292384^a>>>1:a>>>1;A[l]=a}return A})());var pA=(a,A,l,g)=>{let C=ex,m=g+l;a^=-1;for(let y=g;y>>8^C[255&(a^A[y])];return-1^a},Oh={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},P_={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_UNKNOWN:2,Z_DEFLATED:8};let{_tr_init:Ap,_tr_stored_block:fQ,_tr_flush_block:Eq,_tr_tally:Lh,_tr_align:cp}=Z7,{Z_NO_FLUSH:Jg,Z_PARTIAL_FLUSH:hq,Z_FULL_FLUSH:Iq,Z_FINISH:Ad,Z_BLOCK:tx,Z_OK:Ya,Z_STREAM_END:rx,Z_STREAM_ERROR:Sl,Z_DATA_ERROR:Cq,Z_BUF_ERROR:gO,Z_DEFAULT_COMPRESSION:pq,Z_FILTERED:U_,Z_HUFFMAN_ONLY:_Q,Z_RLE:fq,Z_FIXED:EO,Z_DEFAULT_STRATEGY:ix,Z_UNKNOWN:nx,Z_DEFLATED:x_}=P_,hO=286,ox=30,sx=19,_q=2*hO+1,mq=15,Mh=258,$d=262,kh=42,Ph=113,Wu=666,sI=(a,A)=>(a.msg=Oh[A],A),ax=a=>2*a-(a>4?9:0),R1=a=>{let A=a.length;for(;--A>=0;)a[A]=0},Bq=a=>{let A,l,g,C=a.w_size;A=a.hash_size,g=A;do l=a.head[--g],a.head[g]=l>=C?l-C:0;while(--A);A=C,g=A;do l=a.prev[--g],a.prev[g]=l>=C?l-C:0;while(--A)},Uh=(a,A,l)=>(A<{let A=a.state,l=A.pending;l>a.avail_out&&(l=a.avail_out),l!==0&&(a.output.set(A.pending_buf.subarray(A.pending_out,A.pending_out+l),a.next_out),a.next_out+=l,A.pending_out+=l,a.total_out+=l,a.avail_out-=l,A.pending-=l,A.pending===0&&(A.pending_out=0))},Rl=(a,A)=>{Eq(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,A),a.block_start=a.strstart,ks(a.strm)},Zo=(a,A)=>{a.pending_buf[a.pending++]=A},F_=(a,A)=>{a.pending_buf[a.pending++]=A>>>8&255,a.pending_buf[a.pending++]=255&A},IO=(a,A,l,g)=>{let C=a.avail_in;return C>g&&(C=g),C===0?0:(a.avail_in-=C,A.set(a.input.subarray(a.next_in,a.next_in+C),l),a.state.wrap===1?a.adler=oI(a.adler,A,C,l):a.state.wrap===2&&(a.adler=pA(a.adler,A,C,l)),a.next_in+=C,a.total_in+=C,C)},G_=(a,A)=>{let l,g,C=a.max_chain_length,m=a.strstart,y=a.prev_length,w=a.nice_match,b=a.strstart>a.w_size-$d?a.strstart-(a.w_size-$d):0,M=a.window,k=a.w_mask,V=a.prev,K=a.strstart+Mh,q=M[m+y-1],ce=M[m+y];a.prev_length>=a.good_match&&(C>>=2),w>a.lookahead&&(w=a.lookahead);do if(l=A,M[l+y]===ce&&M[l+y-1]===q&&M[l]===M[m]&&M[++l]===M[m+1]){m+=2,l++;do;while(M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&M[++m]===M[++l]&&my){if(a.match_start=A,y=g,g>=w)break;q=M[m+y-1],ce=M[m+y]}}while((A=V[A&k])>b&&--C!=0);return y<=a.lookahead?y:a.lookahead},lp=a=>{let A=a.w_size,l,g,C;do{if(g=a.window_size-a.lookahead-a.strstart,a.strstart>=A+(A-$d)&&(a.window.set(a.window.subarray(A,A+A-g),0),a.match_start-=A,a.strstart-=A,a.block_start-=A,a.insert>a.strstart&&(a.insert=a.strstart),Bq(a),g+=A),a.strm.avail_in===0)break;if(l=IO(a.strm,a.window,a.strstart+a.lookahead,g),a.lookahead+=l,a.lookahead+a.insert>=3)for(C=a.strstart-a.insert,a.ins_h=a.window[C],a.ins_h=Uh(a,a.ins_h,a.window[C+1]);a.insert&&(a.ins_h=Uh(a,a.ins_h,a.window[C+3-1]),a.prev[C&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=C,C++,a.insert--,!(a.lookahead+a.insert<3)););}while(a.lookahead<$d&&a.strm.avail_in!==0)},CO=(a,A)=>{let l,g,C,m=a.pending_buf_size-5>a.w_size?a.w_size:a.pending_buf_size-5,y=0,w=a.strm.avail_in;do{if(l=65535,C=a.bi_valid+42>>3,a.strm.avail_outg+a.strm.avail_in&&(l=g+a.strm.avail_in),l>C&&(l=C),l>8,a.pending_buf[a.pending-2]=~l,a.pending_buf[a.pending-1]=~l>>8,ks(a.strm),g&&(g>l&&(g=l),a.strm.output.set(a.window.subarray(a.block_start,a.block_start+g),a.strm.next_out),a.strm.next_out+=g,a.strm.avail_out-=g,a.strm.total_out+=g,a.block_start+=g,l-=g),l&&(IO(a.strm,a.strm.output,a.strm.next_out,l),a.strm.next_out+=l,a.strm.avail_out-=l,a.strm.total_out+=l)}while(y===0);return w-=a.strm.avail_in,w&&(w>=a.w_size?(a.matches=2,a.window.set(a.strm.input.subarray(a.strm.next_in-a.w_size,a.strm.next_in),0),a.strstart=a.w_size,a.insert=a.strstart):(a.window_size-a.strstart<=w&&(a.strstart-=a.w_size,a.window.set(a.window.subarray(a.w_size,a.w_size+a.strstart),0),a.matches<2&&a.matches++,a.insert>a.strstart&&(a.insert=a.strstart)),a.window.set(a.strm.input.subarray(a.strm.next_in-w,a.strm.next_in),a.strstart),a.strstart+=w,a.insert+=w>a.w_size-a.insert?a.w_size-a.insert:w),a.block_start=a.strstart),a.high_waterC&&a.block_start>=a.w_size&&(a.block_start-=a.w_size,a.strstart-=a.w_size,a.window.set(a.window.subarray(a.w_size,a.w_size+a.strstart),0),a.matches<2&&a.matches++,C+=a.w_size,a.insert>a.strstart&&(a.insert=a.strstart)),C>a.strm.avail_in&&(C=a.strm.avail_in),C&&(IO(a.strm,a.window,a.strstart,C),a.strstart+=C,a.insert+=C>a.w_size-a.insert?a.w_size-a.insert:C),a.high_water>3,C=a.pending_buf_size-C>65535?65535:a.pending_buf_size-C,m=C>a.w_size?a.w_size:C,g=a.strstart-a.block_start,(g>=m||(g||A===Ad)&&A!==Jg&&a.strm.avail_in===0&&g<=C)&&(l=g>C?C:g,y=A===Ad&&a.strm.avail_in===0&&l===g?1:0,fQ(a,a.block_start,l,y),a.block_start+=l,ks(a.strm)),y?3:1)},pO=(a,A)=>{let l,g;for(;;){if(a.lookahead<$d){if(lp(a),a.lookahead<$d&&A===Jg)return 1;if(a.lookahead===0)break}if(l=0,a.lookahead>=3&&(a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),l!==0&&a.strstart-l<=a.w_size-$d&&(a.match_length=G_(a,l)),a.match_length>=3)if(g=Lh(a,a.strstart-a.match_start,a.match_length-3),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=3){a.match_length--;do a.strstart++,a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(--a.match_length!=0);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+1]);else g=Lh(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(g&&(Rl(a,!1),a.strm.avail_out===0))return 1}return a.insert=a.strstart<2?a.strstart:2,A===Ad?(Rl(a,!0),a.strm.avail_out===0?3:4):a.sym_next&&(Rl(a,!1),a.strm.avail_out===0)?1:2},dp=(a,A)=>{let l,g,C;for(;;){if(a.lookahead<$d){if(lp(a),a.lookahead<$d&&A===Jg)return 1;if(a.lookahead===0)break}if(l=0,a.lookahead>=3&&(a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=2,l!==0&&a.prev_length4096)&&(a.match_length=2)),a.prev_length>=3&&a.match_length<=a.prev_length){C=a.strstart+a.lookahead-3,g=Lh(a,a.strstart-1-a.prev_match,a.prev_length-3),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=C&&(a.ins_h=Uh(a,a.ins_h,a.window[a.strstart+3-1]),l=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(--a.prev_length!=0);if(a.match_available=0,a.match_length=2,a.strstart++,g&&(Rl(a,!1),a.strm.avail_out===0))return 1}else if(a.match_available){if(g=Lh(a,0,a.window[a.strstart-1]),g&&Rl(a,!1),a.strstart++,a.lookahead--,a.strm.avail_out===0)return 1}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(g=Lh(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<2?a.strstart:2,A===Ad?(Rl(a,!0),a.strm.avail_out===0?3:4):a.sym_next&&(Rl(a,!1),a.strm.avail_out===0)?1:2};function Xu(a,A,l,g,C){this.good_length=a,this.max_lazy=A,this.nice_length=l,this.max_chain=g,this.func=C}let zu=[new Xu(0,0,0,0,CO),new Xu(4,4,8,4,pO),new Xu(4,5,16,8,pO),new Xu(4,6,32,32,pO),new Xu(4,4,16,16,dp),new Xu(8,16,32,32,dp),new Xu(8,16,128,128,dp),new Xu(8,32,128,256,dp),new Xu(32,128,258,1024,dp),new Xu(32,258,258,4096,dp)];function fO(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=x_,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(2*_q),this.dyn_dtree=new Uint16Array(2*(2*ox+1)),this.bl_tree=new Uint16Array(2*(2*sx+1)),R1(this.dyn_ltree),R1(this.dyn_dtree),R1(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(mq+1),this.heap=new Uint16Array(2*hO+1),R1(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*hO+1),R1(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}let V_=a=>{if(!a)return 1;let A=a.state;return!A||A.strm!==a||A.status!==kh&&A.status!==57&&A.status!==69&&A.status!==73&&A.status!==91&&A.status!==103&&A.status!==Ph&&A.status!==Wu?1:0},ja=a=>{if(V_(a))return sI(a,Sl);a.total_in=a.total_out=0,a.data_type=nx;let A=a.state;return A.pending=0,A.pending_out=0,A.wrap<0&&(A.wrap=-A.wrap),A.status=A.wrap===2?57:A.wrap?kh:Ph,a.adler=A.wrap===2?0:1,A.last_flush=-2,Ap(A),Ya},Ax=a=>{let A=ja(a);return A===Ya&&(l=>{l.window_size=2*l.w_size,R1(l.head),l.max_lazy_match=zu[l.level].max_lazy,l.good_match=zu[l.level].good_length,l.nice_match=zu[l.level].nice_length,l.max_chain_length=zu[l.level].max_chain,l.strstart=0,l.block_start=0,l.lookahead=0,l.insert=0,l.match_length=l.prev_length=2,l.match_available=0,l.ins_h=0})(a.state),A},_O=(a,A,l,g,C,m)=>{if(!a)return Sl;let y=1;if(A===pq&&(A=6),g<0?(y=0,g=-g):g>15&&(y=2,g-=16),C<1||C>9||l!==x_||g<8||g>15||A<0||A>9||m<0||m>EO||g===8&&y!==1)return sI(a,Sl);g===8&&(g=9);let w=new fO;return a.state=w,w.strm=a,w.status=kh,w.wrap=y,w.gzhead=null,w.w_bits=g,w.w_size=1<{if(V_(a)||A>tx||A<0)return a?sI(a,Sl):Sl;let l=a.state;if(!a.output||a.avail_in!==0&&!a.input||l.status===Wu&&A!==Ad)return sI(a,a.avail_out===0?gO:Sl);let g=l.last_flush;if(l.last_flush=A,l.pending!==0){if(ks(a),a.avail_out===0)return l.last_flush=-1,Ya}else if(a.avail_in===0&&ax(A)<=ax(g)&&A!==Ad)return sI(a,gO);if(l.status===Wu&&a.avail_in!==0)return sI(a,gO);if(l.status===kh&&l.wrap===0&&(l.status=Ph),l.status===kh){let C=x_+(l.w_bits-8<<4)<<8,m=-1;if(m=l.strategy>=_Q||l.level<2?0:l.level<6?1:l.level===6?2:3,C|=m<<6,l.strstart!==0&&(C|=32),C+=31-C%31,F_(l,C),l.strstart!==0&&(F_(l,a.adler>>>16),F_(l,65535&a.adler)),a.adler=1,l.status=Ph,ks(a),l.pending!==0)return l.last_flush=-1,Ya}if(l.status===57){if(a.adler=0,Zo(l,31),Zo(l,139),Zo(l,8),l.gzhead)Zo(l,(l.gzhead.text?1:0)+(l.gzhead.hcrc?2:0)+(l.gzhead.extra?4:0)+(l.gzhead.name?8:0)+(l.gzhead.comment?16:0)),Zo(l,255&l.gzhead.time),Zo(l,l.gzhead.time>>8&255),Zo(l,l.gzhead.time>>16&255),Zo(l,l.gzhead.time>>24&255),Zo(l,l.level===9?2:l.strategy>=_Q||l.level<2?4:0),Zo(l,255&l.gzhead.os),l.gzhead.extra&&l.gzhead.extra.length&&(Zo(l,255&l.gzhead.extra.length),Zo(l,l.gzhead.extra.length>>8&255)),l.gzhead.hcrc&&(a.adler=pA(a.adler,l.pending_buf,l.pending,0)),l.gzindex=0,l.status=69;else if(Zo(l,0),Zo(l,0),Zo(l,0),Zo(l,0),Zo(l,0),Zo(l,l.level===9?2:l.strategy>=_Q||l.level<2?4:0),Zo(l,3),l.status=Ph,ks(a),l.pending!==0)return l.last_flush=-1,Ya}if(l.status===69){if(l.gzhead.extra){let C=l.pending,m=(65535&l.gzhead.extra.length)-l.gzindex;for(;l.pending+m>l.pending_buf_size;){let w=l.pending_buf_size-l.pending;if(l.pending_buf.set(l.gzhead.extra.subarray(l.gzindex,l.gzindex+w),l.pending),l.pending=l.pending_buf_size,l.gzhead.hcrc&&l.pending>C&&(a.adler=pA(a.adler,l.pending_buf,l.pending-C,C)),l.gzindex+=w,ks(a),l.pending!==0)return l.last_flush=-1,Ya;C=0,m-=w}let y=new Uint8Array(l.gzhead.extra);l.pending_buf.set(y.subarray(l.gzindex,l.gzindex+m),l.pending),l.pending+=m,l.gzhead.hcrc&&l.pending>C&&(a.adler=pA(a.adler,l.pending_buf,l.pending-C,C)),l.gzindex=0}l.status=73}if(l.status===73){if(l.gzhead.name){let C,m=l.pending;do{if(l.pending===l.pending_buf_size){if(l.gzhead.hcrc&&l.pending>m&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m)),ks(a),l.pending!==0)return l.last_flush=-1,Ya;m=0}C=l.gzindexm&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m)),l.gzindex=0}l.status=91}if(l.status===91){if(l.gzhead.comment){let C,m=l.pending;do{if(l.pending===l.pending_buf_size){if(l.gzhead.hcrc&&l.pending>m&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m)),ks(a),l.pending!==0)return l.last_flush=-1,Ya;m=0}C=l.gzindexm&&(a.adler=pA(a.adler,l.pending_buf,l.pending-m,m))}l.status=103}if(l.status===103){if(l.gzhead.hcrc){if(l.pending+2>l.pending_buf_size&&(ks(a),l.pending!==0))return l.last_flush=-1,Ya;Zo(l,255&a.adler),Zo(l,a.adler>>8&255),a.adler=0}if(l.status=Ph,ks(a),l.pending!==0)return l.last_flush=-1,Ya}if(a.avail_in!==0||l.lookahead!==0||A!==Jg&&l.status!==Wu){let C=l.level===0?CO(l,A):l.strategy===_Q?((m,y)=>{let w;for(;;){if(m.lookahead===0&&(lp(m),m.lookahead===0)){if(y===Jg)return 1;break}if(m.match_length=0,w=Lh(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++,w&&(Rl(m,!1),m.strm.avail_out===0))return 1}return m.insert=0,y===Ad?(Rl(m,!0),m.strm.avail_out===0?3:4):m.sym_next&&(Rl(m,!1),m.strm.avail_out===0)?1:2})(l,A):l.strategy===fq?((m,y)=>{let w,b,M,k,V=m.window;for(;;){if(m.lookahead<=Mh){if(lp(m),m.lookahead<=Mh&&y===Jg)return 1;if(m.lookahead===0)break}if(m.match_length=0,m.lookahead>=3&&m.strstart>0&&(M=m.strstart-1,b=V[M],b===V[++M]&&b===V[++M]&&b===V[++M])){k=m.strstart+Mh;do;while(b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&b===V[++M]&&Mm.lookahead&&(m.match_length=m.lookahead)}if(m.match_length>=3?(w=Lh(m,1,m.match_length-3),m.lookahead-=m.match_length,m.strstart+=m.match_length,m.match_length=0):(w=Lh(m,0,m.window[m.strstart]),m.lookahead--,m.strstart++),w&&(Rl(m,!1),m.strm.avail_out===0))return 1}return m.insert=0,y===Ad?(Rl(m,!0),m.strm.avail_out===0?3:4):m.sym_next&&(Rl(m,!1),m.strm.avail_out===0)?1:2})(l,A):zu[l.level].func(l,A);if(C!==3&&C!==4||(l.status=Wu),C===1||C===3)return a.avail_out===0&&(l.last_flush=-1),Ya;if(C===2&&(A===hq?cp(l):A!==tx&&(fQ(l,0,0,!1),A===Iq&&(R1(l.head),l.lookahead===0&&(l.strstart=0,l.block_start=0,l.insert=0))),ks(a),a.avail_out===0))return l.last_flush=-1,Ya}return A!==Ad?Ya:l.wrap<=0?rx:(l.wrap===2?(Zo(l,255&a.adler),Zo(l,a.adler>>8&255),Zo(l,a.adler>>16&255),Zo(l,a.adler>>24&255),Zo(l,255&a.total_in),Zo(l,a.total_in>>8&255),Zo(l,a.total_in>>16&255),Zo(l,a.total_in>>24&255)):(F_(l,a.adler>>>16),F_(l,65535&a.adler)),ks(a),l.wrap>0&&(l.wrap=-l.wrap),l.pending!==0?Ya:rx)},Sq=(a,A)=>{let l=A.length;if(V_(a))return Sl;let g=a.state,C=g.wrap;if(C===2||C===1&&g.status!==kh||g.lookahead)return Sl;if(C===1&&(a.adler=oI(a.adler,A,l,0)),g.wrap=0,l>=g.w_size){C===0&&(R1(g.head),g.strstart=0,g.block_start=0,g.insert=0);let b=new Uint8Array(g.w_size);b.set(A.subarray(l-g.w_size,l),0),A=b,l=g.w_size}let m=a.avail_in,y=a.next_in,w=a.input;for(a.avail_in=l,a.next_in=0,a.input=A,lp(g);g.lookahead>=3;){let b=g.strstart,M=g.lookahead-2;do g.ins_h=Uh(g,g.ins_h,g.window[b+3-1]),g.prev[b&g.w_mask]=g.head[g.ins_h],g.head[g.ins_h]=b,b++;while(--M);g.strstart=b,g.lookahead=2,lp(g)}return g.strstart+=g.lookahead,g.block_start=g.strstart,g.insert=g.lookahead,g.lookahead=0,g.match_length=g.prev_length=2,g.match_available=0,a.next_in=y,a.input=w,a.avail_in=m,g.wrap=C,Ya},K_={deflateInit:(a,A)=>_O(a,A,x_,15,8,ix),deflateInit2:_O,deflateReset:Ax,deflateResetKeep:ja,deflateSetHeader:(a,A)=>V_(a)||a.state.wrap!==2?Sl:(a.state.gzhead=A,Ya),deflate:lx,deflateEnd:a=>{if(V_(a))return Sl;let A=a.state.status;return a.state=null,A===Ph?sI(a,Cq):Ya},deflateSetDictionary:Sq,deflateInfo:"pako deflate (from Nodeca project)"};let Rq=(a,A)=>Object.prototype.hasOwnProperty.call(a,A);var mQ={assign:function(a){let A=Array.prototype.slice.call(arguments,1);for(;A.length;){let l=A.shift();if(l){if(typeof l!="object")throw new TypeError(l+"must be non-object");for(let g in l)Rq(l,g)&&(a[g]=l[g])}}return a},flattenChunks:a=>{let A=0;for(let g=0,C=a.length;g=252?6:a>=248?5:a>=240?4:a>=224?3:a>=192?2:1;aI[254]=aI[254]=1;var H_={string2buf:a=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(a);let A,l,g,C,m,y=a.length,w=0;for(C=0;C>>6,A[m++]=128|63&l):l<65536?(A[m++]=224|l>>>12,A[m++]=128|l>>>6&63,A[m++]=128|63&l):(A[m++]=240|l>>>18,A[m++]=128|l>>>12&63,A[m++]=128|l>>>6&63,A[m++]=128|63&l);return A},buf2string:(a,A)=>{let l=A||a.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(a.subarray(0,A));let g,C,m=new Array(2*l);for(C=0,g=0;g4)m[C++]=65533,g+=w-1;else{for(y&=w===2?31:w===3?15:7;w>1&&g1?m[C++]=65533:y<65536?m[C++]=y:(y-=65536,m[C++]=55296|y>>10&1023,m[C++]=56320|1023&y)}}return((y,w)=>{if(w<65534&&y.subarray&&dx)return String.fromCharCode.apply(null,y.length===w?y:y.subarray(0,w));let b="";for(let M=0;M{(A=A||a.length)>a.length&&(A=a.length);let l=A-1;for(;l>=0&&(192&a[l])==128;)l--;return l<0||l===0?A:l+aI[a[l]]>A?l:A}},ux=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};let gx=Object.prototype.toString,{Z_NO_FLUSH:BQ,Z_SYNC_FLUSH:Ex,Z_FULL_FLUSH:yq,Z_FINISH:mO,Z_OK:SQ,Z_STREAM_END:BO,Z_DEFAULT_COMPRESSION:SO,Z_DEFAULT_STRATEGY:RO,Z_DEFLATED:RQ}=P_;function xh(a){this.options=mQ.assign({level:SO,method:RQ,chunkSize:16384,windowBits:15,memLevel:8,strategy:RO},a||{});let A=this.options;A.raw&&A.windowBits>0?A.windowBits=-A.windowBits:A.gzip&&A.windowBits>0&&A.windowBits<16&&(A.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ux,this.strm.avail_out=0;let l=K_.deflateInit2(this.strm,A.level,A.method,A.windowBits,A.memLevel,A.strategy);if(l!==SQ)throw new Error(Oh[l]);if(A.header&&K_.deflateSetHeader(this.strm,A.header),A.dictionary){let g;if(g=typeof A.dictionary=="string"?H_.string2buf(A.dictionary):gx.call(A.dictionary)==="[object ArrayBuffer]"?new Uint8Array(A.dictionary):A.dictionary,l=K_.deflateSetDictionary(this.strm,g),l!==SQ)throw new Error(Oh[l]);this._dict_set=!0}}function Y_(a,A){let l=new xh(A);if(l.push(a,!0),l.err)throw l.msg||Oh[l.err];return l.result}xh.prototype.push=function(a,A){let l=this.strm,g=this.options.chunkSize,C,m;if(this.ended)return!1;for(m=A===~~A?A:A===!0?mO:BQ,typeof a=="string"?l.input=H_.string2buf(a):gx.call(a)==="[object ArrayBuffer]"?l.input=new Uint8Array(a):l.input=a,l.next_in=0,l.avail_in=l.input.length;;)if(l.avail_out===0&&(l.output=new Uint8Array(g),l.next_out=0,l.avail_out=g),(m===Ex||m===yq)&&l.avail_out<=6)this.onData(l.output.subarray(0,l.next_out)),l.avail_out=0;else{if(C=K_.deflate(l,m),C===BO)return l.next_out>0&&this.onData(l.output.subarray(0,l.next_out)),C=K_.deflateEnd(this.strm),this.onEnd(C),this.ended=!0,C===SQ;if(l.avail_out!==0){if(m>0&&l.next_out>0)this.onData(l.output.subarray(0,l.next_out)),l.avail_out=0;else if(l.avail_in===0)break}else this.onData(l.output)}return!0},xh.prototype.onData=function(a){this.chunks.push(a)},xh.prototype.onEnd=function(a){a===SQ&&(this.result=mQ.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg};var j_={deflate:Y_,deflateRaw:function(a,A){return(A=A||{}).raw=!0,Y_(a,A)}};let yQ=16209;var Qq=function(a,A){let l,g,C,m,y,w,b,M,k,V,K,q,ce,oe,le,pe,Se,be,Ue,xe,Le,je,dt,pt,zt=a.state;l=a.next_in,dt=a.input,g=l+(a.avail_in-5),C=a.next_out,pt=a.output,m=C-(A-a.avail_out),y=C+(a.avail_out-257),w=zt.dmax,b=zt.wsize,M=zt.whave,k=zt.wnext,V=zt.window,K=zt.hold,q=zt.bits,ce=zt.lencode,oe=zt.distcode,le=(1<>>24,K>>>=be,q-=be,be=Se>>>16&255,be===0)pt[C++]=65535&Se;else{if(!(16&be)){if(!(64&be)){Se=ce[(65535&Se)+(K&(1<>>=be,q-=be),q<15&&(K+=dt[l++]<>>24,K>>>=be,q-=be,be=Se>>>16&255,!(16&be)){if(!(64&be)){Se=oe[(65535&Se)+(K&(1<w){a.msg="invalid distance too far back",zt.mode=yQ;break e}if(K>>>=be,q-=be,be=C-m,xe>be){if(be=xe-be,be>M&&zt.sane){a.msg="invalid distance too far back",zt.mode=yQ;break e}if(Le=0,je=V,k===0){if(Le+=b-be,be2;)pt[C++]=je[Le++],pt[C++]=je[Le++],pt[C++]=je[Le++],Ue-=3;Ue&&(pt[C++]=je[Le++],Ue>1&&(pt[C++]=je[Le++]))}else{Le=C-xe;do pt[C++]=pt[Le++],pt[C++]=pt[Le++],pt[C++]=pt[Le++],Ue-=3;while(Ue>2);Ue&&(pt[C++]=pt[Le++],Ue>1&&(pt[C++]=pt[Le++]))}break}}break}}while(l>3,l-=Ue,q-=Ue<<3,K&=(1<{let b=w.bits,M,k,V,K,q,ce,oe=0,le=0,pe=0,Se=0,be=0,Ue=0,xe=0,Le=0,je=0,dt=0,pt=null,zt=new Uint16Array(16),gr=new Uint16Array(16),li,ii,br,Zi=null;for(oe=0;oe<=AI;oe++)zt[oe]=0;for(le=0;le=1&&zt[Se]===0;Se--);if(be>Se&&(be=Se),Se===0)return C[m++]=20971520,C[m++]=20971520,w.bits=1,0;for(pe=1;pe0&&(a===0||Se!==1))return-1;for(gr[1]=0,oe=1;oe852||a===2&&je>592)return 1;for(;;){li=oe-xe,y[le]+1=ce?(ii=Zi[y[le]-ce],br=pt[y[le]-ce]):(ii=96,br=0),M=1<>xe)+k]=li<<24|ii<<16|br|0;while(k!==0);for(M=1<>=1;if(M!==0?(dt&=M-1,dt+=M):dt=0,le++,--zt[oe]==0){if(oe===Se)break;oe=A[l+y[le]]}if(oe>be&&(dt&K)!==V){for(xe===0&&(xe=be),q+=pe,Ue=oe-xe,Le=1<852||a===2&&je>592)return 1;V=dt&K,C[V]=be<<24|Ue<<16|q-m|0}}return dt!==0&&(C[q+dt]=oe-xe<<24|64<<16|0),w.bits=be,0};let{Z_FINISH:yO,Z_BLOCK:wq,Z_TREES:wQ,Z_OK:qg,Z_STREAM_END:QO,Z_NEED_DICT:vq,Z_STREAM_ERROR:cd,Z_DATA_ERROR:TO,Z_MEM_ERROR:vQ,Z_BUF_ERROR:Dq,Z_DEFLATED:Zd}=P_,Wg=16180,cI=16190,Xg=16191,DQ=16192,bQ=16194,q_=16199,W_=16200,wO=16206,Ba=16209,NQ=a=>(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24);function vO(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}let zg=a=>{if(!a)return 1;let A=a.state;return!A||A.strm!==a||A.mode16211?1:0},DO=a=>{if(zg(a))return cd;let A=a.state;return a.total_in=a.total_out=A.total=0,a.msg="",A.wrap&&(a.adler=1&A.wrap),A.mode=Wg,A.last=0,A.havedict=0,A.flags=-1,A.dmax=32768,A.head=null,A.hold=0,A.bits=0,A.lencode=A.lendyn=new Int32Array(852),A.distcode=A.distdyn=new Int32Array(592),A.sane=1,A.back=-1,qg},bO=a=>{if(zg(a))return cd;let A=a.state;return A.wsize=0,A.whave=0,A.wnext=0,DO(a)},Ix=(a,A)=>{let l;if(zg(a))return cd;let g=a.state;return A<0?(l=0,A=-A):(l=5+(A>>4),A<48&&(A&=15)),A&&(A<8||A>15)?cd:(g.window!==null&&g.wbits!==A&&(g.window=null),g.wrap=l,g.wbits=A,bO(a))},Cx=(a,A)=>{if(!a)return cd;let l=new vO;a.state=l,l.strm=a,l.window=null,l.mode=Wg;let g=Ix(a,A);return g!==qg&&(a.state=null),g},NO,OO,px=!0,bq=a=>{if(px){NO=new Int32Array(512),OO=new Int32Array(32);let A=0;for(;A<144;)a.lens[A++]=8;for(;A<256;)a.lens[A++]=9;for(;A<280;)a.lens[A++]=7;for(;A<288;)a.lens[A++]=8;for(J_(1,a.lens,0,288,NO,0,a.work,{bits:9}),A=0;A<32;)a.lens[A++]=5;J_(2,a.lens,0,32,OO,0,a.work,{bits:5}),px=!1}a.lencode=NO,a.lenbits=9,a.distcode=OO,a.distbits=5},fx=(a,A,l,g)=>{let C,m=a.state;return m.window===null&&(m.wsize=1<=m.wsize?(m.window.set(A.subarray(l-m.wsize,l),0),m.wnext=0,m.whave=m.wsize):(C=m.wsize-m.wnext,C>g&&(C=g),m.window.set(A.subarray(l-g,l-g+C),m.wnext),(g-=C)?(m.window.set(A.subarray(l-g,l),0),m.wnext=g,m.whave=m.wsize):(m.wnext+=C,m.wnext===m.wsize&&(m.wnext=0),m.whave{let l,g,C,m,y,w,b,M,k,V,K,q,ce,oe,le,pe,Se,be,Ue,xe,Le,je,dt=0,pt=new Uint8Array(4),zt,gr,li=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(zg(a)||!a.output||!a.input&&a.avail_in!==0)return cd;l=a.state,l.mode===Xg&&(l.mode=DQ),y=a.next_out,C=a.output,b=a.avail_out,m=a.next_in,g=a.input,w=a.avail_in,M=l.hold,k=l.bits,V=w,K=b,je=qg;e:for(;;)switch(l.mode){case Wg:if(l.wrap===0){l.mode=DQ;break}for(;k<16;){if(w===0)break e;w--,M+=g[m++]<>>8&255,l.check=pA(l.check,pt,2,0),M=0,k=0,l.mode=16181;break}if(l.head&&(l.head.done=!1),!(1&l.wrap)||(((255&M)<<8)+(M>>8))%31){a.msg="incorrect header check",l.mode=Ba;break}if((15&M)!==Zd){a.msg="unknown compression method",l.mode=Ba;break}if(M>>>=4,k-=4,Le=8+(15&M),l.wbits===0&&(l.wbits=Le),Le>15||Le>l.wbits){a.msg="invalid window size",l.mode=Ba;break}l.dmax=1<>8&1),512&CA(l)&&4&l.wrap&&(pt[0]=255&M,pt[1]=M>>>8&255,l.check=pA(l.check,pt,2,0)),M=0,k=0,l.mode=16182;case 16182:for(;k<32;){if(w===0)break e;w--,M+=g[m++]<>>8&255,pt[2]=M>>>16&255,pt[3]=M>>>24&255,l.check=pA(l.check,pt,4,0)),M=0,k=0,l.mode=16183;case 16183:for(;k<16;){if(w===0)break e;w--,M+=g[m++]<>8),512&CA(l)&&4&l.wrap&&(pt[0]=255&M,pt[1]=M>>>8&255,l.check=pA(l.check,pt,2,0)),M=0,k=0,l.mode=16184;case 16184:if(1024&CA(l)){for(;k<16;){if(w===0)break e;w--,M+=g[m++]<>>8&255,l.check=pA(l.check,pt,2,0)),M=0,k=0}else l.head&&(l.head.extra=null);l.mode=16185;case 16185:if(1024&CA(l)&&(q=l.length,q>w&&(q=w),q&&(l.head&&(Le=l.head.extra_len-l.length,l.head.extra||(l.head.extra=new Uint8Array(l.head.extra_len)),l.head.extra.set(g.subarray(m,m+q),Le)),512&CA(l)&&4&l.wrap&&(l.check=pA(l.check,g,q,m)),w-=q,m+=q,l.length-=q),l.length))break e;l.length=0,l.mode=16186;case 16186:if(2048&CA(l)){if(w===0)break e;q=0;do Le=g[m+q++],l.head&&Le&&l.length<65536&&(l.head.name+=String.fromCharCode(Le));while(Le&&q>9&1,l.head.done=!0),a.adler=l.check=0,l.mode=Xg;break;case 16189:for(;k<32;){if(w===0)break e;w--,M+=g[m++]<>>=7&k,k-=7&k,l.mode=wO;break}for(;k<3;){if(w===0)break e;w--,M+=g[m++]<>>=1,k-=1,3&M){case 0:l.mode=16193;break;case 1:if(bq(l),l.mode=q_,A===wQ){M>>>=2,k-=2;break e}break;case 2:l.mode=16196;break;case 3:a.msg="invalid block type",l.mode=Ba}M>>>=2,k-=2;break;case 16193:for(M>>>=7&k,k-=7&k;k<32;){if(w===0)break e;w--,M+=g[m++]<>>16^65535)){a.msg="invalid stored block lengths",l.mode=Ba;break}if(l.length=65535&M,M=0,k=0,l.mode=bQ,A===wQ)break e;case bQ:l.mode=16195;case 16195:if(q=l.length,q){if(q>w&&(q=w),q>b&&(q=b),q===0)break e;C.set(g.subarray(m,m+q),y),w-=q,m+=q,b-=q,y+=q,l.length-=q;break}l.mode=Xg;break;case 16196:for(;k<14;){if(w===0)break e;w--,M+=g[m++]<>>=5,k-=5,l.ndist=1+(31&M),M>>>=5,k-=5,l.ncode=4+(15&M),M>>>=4,k-=4,l.nlen>286||l.ndist>30){a.msg="too many length or distance symbols",l.mode=Ba;break}l.have=0,l.mode=16197;case 16197:for(;l.have>>=3,k-=3}for(;l.have<19;)l.lens[li[l.have++]]=0;if(l.lencode=l.lendyn,l.lenbits=7,zt={bits:l.lenbits},je=J_(0,l.lens,0,19,l.lencode,0,l.work,zt),l.lenbits=zt.bits,je){a.msg="invalid code lengths set",l.mode=Ba;break}l.have=0,l.mode=16198;case 16198:for(;l.have>>24,pe=dt>>>16&255,Se=65535&dt,!(le<=k);){if(w===0)break e;w--,M+=g[m++]<>>=le,k-=le,l.lens[l.have++]=Se;else{if(Se===16){for(gr=le+2;k>>=le,k-=le,l.have===0){a.msg="invalid bit length repeat",l.mode=Ba;break}Le=l.lens[l.have-1],q=3+(3&M),M>>>=2,k-=2}else if(Se===17){for(gr=le+3;k>>=le,k-=le,Le=0,q=3+(7&M),M>>>=3,k-=3}else{for(gr=le+7;k>>=le,k-=le,Le=0,q=11+(127&M),M>>>=7,k-=7}if(l.have+q>l.nlen+l.ndist){a.msg="invalid bit length repeat",l.mode=Ba;break}for(;q--;)l.lens[l.have++]=Le}}if(l.mode===Ba)break;if(l.lens[256]===0){a.msg="invalid code -- missing end-of-block",l.mode=Ba;break}if(l.lenbits=9,zt={bits:l.lenbits},je=J_(1,l.lens,0,l.nlen,l.lencode,0,l.work,zt),l.lenbits=zt.bits,je){a.msg="invalid literal/lengths set",l.mode=Ba;break}if(l.distbits=6,l.distcode=l.distdyn,zt={bits:l.distbits},je=J_(2,l.lens,l.nlen,l.ndist,l.distcode,0,l.work,zt),l.distbits=zt.bits,je){a.msg="invalid distances set",l.mode=Ba;break}if(l.mode=q_,A===wQ)break e;case q_:l.mode=W_;case W_:if(w>=6&&b>=258){a.next_out=y,a.avail_out=b,a.next_in=m,a.avail_in=w,l.hold=M,l.bits=k,Qq(a,K),y=a.next_out,C=a.output,b=a.avail_out,m=a.next_in,g=a.input,w=a.avail_in,M=l.hold,k=l.bits,l.mode===Xg&&(l.back=-1);break}for(l.back=0;dt=l.lencode[M&(1<>>24,pe=dt>>>16&255,Se=65535&dt,!(le<=k);){if(w===0)break e;w--,M+=g[m++]<>be)],le=dt>>>24,pe=dt>>>16&255,Se=65535&dt,!(be+le<=k);){if(w===0)break e;w--,M+=g[m++]<>>=be,k-=be,l.back+=be}if(M>>>=le,k-=le,l.back+=le,l.length=Se,pe===0){l.mode=16205;break}if(32&pe){l.back=-1,l.mode=Xg;break}if(64&pe){a.msg="invalid literal/length code",l.mode=Ba;break}l.extra=15&pe,l.mode=16201;case 16201:if(l.extra){for(gr=l.extra;k>>=l.extra,k-=l.extra,l.back+=l.extra}l.was=l.length,l.mode=16202;case 16202:for(;dt=l.distcode[M&(1<>>24,pe=dt>>>16&255,Se=65535&dt,!(le<=k);){if(w===0)break e;w--,M+=g[m++]<>be)],le=dt>>>24,pe=dt>>>16&255,Se=65535&dt,!(be+le<=k);){if(w===0)break e;w--,M+=g[m++]<>>=be,k-=be,l.back+=be}if(M>>>=le,k-=le,l.back+=le,64&pe){a.msg="invalid distance code",l.mode=Ba;break}l.offset=Se,l.extra=15&pe,l.mode=16203;case 16203:if(l.extra){for(gr=l.extra;k>>=l.extra,k-=l.extra,l.back+=l.extra}if(l.offset>l.dmax){a.msg="invalid distance too far back",l.mode=Ba;break}l.mode=16204;case 16204:if(b===0)break e;if(q=K-b,l.offset>q){if(q=l.offset-q,q>l.whave&&l.sane){a.msg="invalid distance too far back",l.mode=Ba;break}q>l.wnext?(q-=l.wnext,ce=l.wsize-q):ce=l.wnext-q,q>l.length&&(q=l.length),oe=l.window}else oe=C,ce=y-l.offset,q=l.length;q>b&&(q=b),b-=q,l.length-=q;do C[y++]=oe[ce++];while(--q);l.length===0&&(l.mode=W_);break;case 16205:if(b===0)break e;C[y++]=l.length,b--,l.mode=W_;break;case wO:if(l.wrap){for(;k<32;){if(w===0)break e;w--,M|=g[m++]<Cx(a,15),inflateInit2:Cx,inflate:Nq,inflateEnd:a=>{if(zg(a))return cd;let A=a.state;return A.window&&(A.window=null),a.state=null,qg},inflateGetHeader:(a,A)=>{if(zg(a))return cd;let l=a.state;return 2&l.wrap?(l.head=A,A.done=!1,qg):cd},inflateSetDictionary:(a,A)=>{let l=A.length,g,C,m;return zg(a)?cd:(g=a.state,g.wrap!==0&&g.mode!==cI?cd:g.mode===cI&&(C=1,C=oI(C,A,l,0),C!==g.check)?TO:(m=fx(a,A,l,l),m?(g.mode=16210,vQ):(g.havedict=1,qg)))},inflateInfo:"pako inflate (from Nodeca project)"},_x=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};let mx=Object.prototype.toString,{Z_NO_FLUSH:Oq,Z_FINISH:Lq,Z_OK:Zg,Z_STREAM_END:LO,Z_NEED_DICT:MO,Z_STREAM_ERROR:Mq,Z_DATA_ERROR:Bx,Z_MEM_ERROR:kq}=P_;function OQ(a){this.options=mQ.assign({chunkSize:65536,windowBits:15,to:""},a||{});let A=this.options;A.raw&&A.windowBits>=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,A.windowBits===0&&(A.windowBits=-15)),!(A.windowBits>=0&&A.windowBits<16)||a&&a.windowBits||(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&!(15&A.windowBits)&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new ux,this.strm.avail_out=0;let l=$g.inflateInit2(this.strm,A.windowBits);if(l!==Zg)throw new Error(Oh[l]);if(this.header=new _x,$g.inflateGetHeader(this.strm,this.header),A.dictionary&&(typeof A.dictionary=="string"?A.dictionary=H_.string2buf(A.dictionary):mx.call(A.dictionary)==="[object ArrayBuffer]"&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(l=$g.inflateSetDictionary(this.strm,A.dictionary),l!==Zg)))throw new Error(Oh[l])}function Sx(a,A){let l=new OQ(A);if(l.push(a),l.err)throw l.msg||Oh[l.err];return l.result}OQ.prototype.push=function(a,A){let l=this.strm,g=this.options.chunkSize,C=this.options.dictionary,m,y,w;if(this.ended)return!1;for(y=A===~~A?A:A===!0?Lq:Oq,mx.call(a)==="[object ArrayBuffer]"?l.input=new Uint8Array(a):l.input=a,l.next_in=0,l.avail_in=l.input.length;;){for(l.avail_out===0&&(l.output=new Uint8Array(g),l.next_out=0,l.avail_out=g),m=$g.inflate(l,y),m===MO&&C&&(m=$g.inflateSetDictionary(l,C),m===Zg?m=$g.inflate(l,y):m===Bx&&(m=MO));l.avail_in>0&&m===LO&&l.state.wrap>0&&a[l.next_in]!==0;)$g.inflateReset(l),m=$g.inflate(l,y);switch(m){case Mq:case Bx:case MO:case kq:return this.onEnd(m),this.ended=!0,!1}if(w=l.avail_out,l.next_out&&(l.avail_out===0||m===LO))if(this.options.to==="string"){let b=H_.utf8border(l.output,l.next_out),M=l.next_out-b,k=H_.buf2string(l.output,b);l.next_out=M,l.avail_out=g-M,M&&l.output.set(l.output.subarray(b,b+M),0),this.onData(k)}else this.onData(l.output.length===l.next_out?l.output:l.output.subarray(0,l.next_out));if(m!==Zg||w!==0){if(m===LO)return m=$g.inflateEnd(this.strm),this.onEnd(m),this.ended=!0,!0;if(l.avail_in===0)break}}return!0},OQ.prototype.onData=function(a){this.chunks.push(a)},OQ.prototype.onEnd=function(a){a===Zg&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=mQ.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg};var Pq={inflate:Sx,inflateRaw:function(a,A){return(A=A||{}).raw=!0,Sx(a,A)}};let{deflate:kO,deflateRaw:X_}=j_,{inflate:Uq,inflateRaw:xq}=Pq;var Fq=kO,Gq=X_,Vq=Uq,up=xq,Rx=function(a){return a[a.ONE_BYTE=0]="ONE_BYTE",a[a.TWO_BYTE=1]="TWO_BYTE",a}(Rx||{});class Ep{constructor(){Ae(this,"_sequence",0),Ae(this,"_startTime",Date.now()),Ae(this,"isUseOneByte",!0)}get startTime(){let A=Date.now()-this._startTime;return A128){let w=new Uint8Array(4);w.set([1,0,0,0]);let b={id:0,length:4,data:w.buffer},M={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[b]};l.commonPacketHeader.extension=1,l.extension=M,l.payload=this.compress(A),l.commonPacketHeader.length=8+(l.extension.length+2)+l.payload.byteLength}else l.commonPacketHeader.length=8+l.payload.byteLength;Ie("SHOW_DATASTREAM2_LOG")&&X.debug("send data header: ".concat(JSON.stringify(l.commonPacketHeader)));let g=new ArrayBuffer(l.commonPacketHeader.length),C=new Uint8Array(g),m=new DataView(g),y=0;if(m.setUint16(y,l.commonPacketHeader.extension<<15|l.commonPacketHeader.reserved<<14|l.commonPacketHeader.length,!0),y+=2,m.setUint32(y,l.commonPacketHeader.sequence,!0),y+=4,m.setUint16(y,l.commonStreamHeader,!0),y+=2,l.extension){let w=this.serializeExtension(l.extension);C.set(new Uint8Array(w),y),y+=w.byteLength}if(C.set(new Uint8Array(l.payload),y),y+=l.payload.byteLength,y!==l.commonPacketHeader.length)throw Error("serialize error!");return g}deserialize(A){if(A.byteLength<4)return new ArrayBuffer(0);let l=new DataView(A),g=0,C=l.getUint16(g,!0);g+=2;let m={length:16383&C,reserved:(16384&C)>>14,extension:(32768&C)>>15,sequence:l.getUint16(g+2,!0)<<16|l.getUint16(g,!0)},y,w;if(g+=4,Ie("SHOW_DATASTREAM2_LOG")&&X.debug("receive data header: ".concat(JSON.stringify(m))),l.getUint16(g,!0),g+=2,m.extension){w=this.deserializeExtension(A.slice(g)),g+=2+w.length,y=A.slice(g);let b=!1;if(w.datas.length>0){let M=w.datas.find(k=>k.id===0);M&&(b=(1&new DataView(M.data).getUint32(0,!0))==1)}y=b?this.decompress(y):y}else y=A.slice(8);return y}serializeExtension(A){let{profile:l,length:g,datas:C}=A,m=new ArrayBuffer(g+2),y=new Uint8Array(m),w=new DataView(m),b=0;if(w.setUint8(b++,l),w.setUint8(b++,g),C.forEach(M=>{l?(w.setUint8(b++,M.id),w.setUint8(b++,M.length),y.set(new Uint8Array(M.data),b),b+=M.data.byteLength):(w.setUint8(b++,M.id|M.length<<4),y.set(new Uint8Array(M.data),b),b+=M.data.byteLength)}),b!==g+2)throw Error("serialize extension error, is ".concat(b,"!==").concat(g+2));return m}deserializeExtension(A){let l=new DataView(A),g=0,C=l.getUint8(g);g++;let m=l.getUint8(g);g++;let y=C===Rx.TWO_BYTE,w=[],b=new DataView(A,2),M=0;for(;M>4,M++),V>0&&(K=b.buffer.slice(M+2,M+2+V),M+=K.byteLength),w.push({id:k,length:V,data:K})}if(M!==m)throw Error("parse error");return{profile:C,length:m,datas:w}}decompress(A){return Vq(new Uint8Array(A))}compress(A){return Fq(new Uint8Array(A))}}let yx={name:"DataStream",create:(a,A)=>{let l=A?new pU(a):new fU(a);return l.useDataStream(new Ep),l}};class Kq extends io{constructor(A,l,g){super(),Ae(this,"ws",void 0),Ae(this,"requestId",1),Ae(this,"heartBeatTimer",void 0),Ae(this,"joinInfo",void 0),Ae(this,"clientId",void 0),Ae(this,"onOpen",()=>{this.emit("open"),this.startHeartBeatCheck()}),Ae(this,"onClose",C=>{this.emit("close"),this.dispose()}),Ae(this,"onMessage",C=>{let m=JSON.parse(C.data);if(!m||m.command!=="serverResponse"||!m.requestId)return m&&m.command==="serverStatus"&&m.serverStatus&&m.serverStatus.command?(this.emit("status",m.serverStatus),void this.emit(m.serverStatus.command,m.serverStatus)):void 0;this.emit("req_".concat(m.requestId),m)}),this.joinInfo=A,this.clientId=l,this.ws=new M2("cross-channel-".concat(this.clientId),g),this.ws.on(qr.RECONNECTING,()=>{this.ws.reconnectMode="retry",this.emit("reconnecting")}),this.ws.on(qr.CONNECTED,this.onOpen),this.ws.on(qr.ON_MESSAGE,this.onMessage),this.ws.on(qr.CLOSED,this.onClose)}isConnect(){return this.ws.state==="connected"}sendMessage(A){let l=this.requestId++;return A.requestId=l,A.seq=l,this.ws.sendMessage(A),l}waitStatus(A){return new Ft((l,g)=>{let C=window.setTimeout(()=>{g(new ze(fe.TIMEOUT,"wait status timeout, status: ".concat(A)))},5e3);this.once(A,m=>{window.clearTimeout(C),m.state&&m.state!==0?g(new ze(fe.CROSS_CHANNEL_WAIT_STATUS_ERROR,"wait status error, status: ".concat(A))):l(void 0)}),this.once("dispose",()=>{window.clearTimeout(C),g(new ze(fe.WS_ABORT))})})}async request(A){if(this.ws.state==="closed")throw new ze(fe.WS_DISCONNECT);let l=()=>new Ft((y,w)=>{this.ws.once(qr.CLOSED,()=>w(new ze(fe.WS_ABORT))),this.ws.once(qr.CONNECTED,y)});this.ws.state!=="connected"&&await l();let g=this.sendMessage(A),C=new Ft((y,w)=>{let b=()=>{w(new ze(fe.WS_ABORT))};this.ws.once(qr.RECONNECTING,b),this.ws.once(qr.CLOSED,b),this.once("req_".concat(g),y),Ks(3e3).then(()=>{this.removeAllListeners("req_".concat(g)),this.ws.off(qr.RECONNECTING,b),this.ws.off(qr.CLOSED,b),w(new ze(fe.TIMEOUT,"cross channel ws request timeout"))})}),m=await C;if(!m||m.code!==200)throw new ze(fe.CROSS_CHANNEL_SERVER_ERROR_RESPONSE,"response: ".concat(JSON.stringify(m)));return m}async connect(A){this.ws.removeAllListeners(qr.REQUEST_NEW_URLS),this.ws.on(qr.REQUEST_NEW_URLS,l=>{l(A)}),await this.ws.init(A)}dispose(){this.clearHeartBeatCheck(),this.emit("dispose"),this.removeAllListeners(),this.ws.close()}sendPing(A){let l=this.requestId++;return A.requestId=l,this.ws.sendMessage(A),l}startHeartBeatCheck(){this.heartBeatTimer&&window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=window.setInterval(()=>{this.sendPing({command:"ping",appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sid:this.joinInfo.sid,ts:+new Date,requestId:0})},3e3)}clearHeartBeatCheck(){window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=void 0}}class Fa extends io{set state(A){A!==this._state&&(A!==$A.RELAY_STATE_FAILURE&&(this.errorCode=Fd.RELAY_OK),this.emit("state",A,this.errorCode),this._state=A)}get state(){return this._state}constructor(A,l,g,C,m){super(),Ae(this,"joinInfo",void 0),Ae(this,"sid",void 0),Ae(this,"clientId",void 0),Ae(this,"cancelToken",vA.CancelToken.source()),Ae(this,"workerToken",void 0),Ae(this,"requestId",0),Ae(this,"signal",void 0),Ae(this,"prevChannelMediaConfig",void 0),Ae(this,"httpRetryConfig",void 0),Ae(this,"_resolution",void 0),Ae(this,"_state",$A.RELAY_STATE_IDLE),Ae(this,"errorCode",Fd.RELAY_OK),Ae(this,"onStatus",y=>{X.debug("[".concat(this.clientId,"] ChannelMediaStatus: ").concat(JSON.stringify(y))),y&&y.command&&(y.command==="onAudioPacketReceived"&&this.emit("event",ls.PACKET_RECEIVED_AUDIO_FROM_SRC),y.command==="onVideoPacketReceived"&&this.emit("event",ls.PACKET_RECEIVED_VIDEO_FROM_SRC),y.command==="onSrcTokenPrivilegeDidExpire"&&(this.errorCode=Fd.SRC_TOKEN_EXPIRED,this.state=$A.RELAY_STATE_FAILURE),y.command==="onDestTokenPrivilegeDidExpire"&&(this.errorCode=Fd.DEST_TOKEN_EXPIRED,this.state=$A.RELAY_STATE_FAILURE))}),Ae(this,"onReconnect",async()=>{X.debug("[".concat(this.clientId,"] ChannelMediaSocket disconnect, reconnecting")),this.emit("event",ls.NETWORK_DISCONNECTED),this.state=$A.RELAY_STATE_IDLE,this.prevChannelMediaConfig&&this.sendStartRelayMessage(this.prevChannelMediaConfig).catch(y=>{this.state!==$A.RELAY_STATE_IDLE&&(X.error("auto restart channel media relay failed",y.toString()),this.errorCode=Fd.SERVER_CONNECTION_LOST,this.state=$A.RELAY_STATE_FAILURE)})}),this.joinInfo=A,this.clientId=l,this.sid=Ln(),this.signal=new Kq(this.joinInfo,this.clientId,g),this.httpRetryConfig=C,this._resolution=m}async startChannelMediaRelay(A){if(this.state!==$A.RELAY_STATE_IDLE)throw new ze(fe.INVALID_OPERATION);this.state=$A.RELAY_STATE_CONNECTING,await this.connect(),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: connect success"));try{await this.sendStartRelayMessage(A)}catch(l){throw l.data&&l.data.serverResponse&&l.data.serverResponse.command==="SetSourceChannel"?new ze(fe.CROSS_CHANNEL_FAILED_JOIN_SRC):l.data&&l.data.serverResponse&&l.serverResponse.command==="SetDestChannelStatus"?new ze(fe.CROSS_CHANNEL_FAILED_JOIN_DEST):l.data&&l.data.serverResponse&&l.serverResponse.command==="StartPacketTransfer"?new ze(fe.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST):l}this.prevChannelMediaConfig=A}async updateChannelMediaRelay(A){if(this.state!==$A.RELAY_STATE_RUNNING)throw new ze(fe.INVALID_OPERATION);await this.sendUpdateMessage(A),this.prevChannelMediaConfig=A}async setVideoProfile(A){if(this._resolution=A,this.state!==$A.RELAY_STATE_RUNNING)throw new ze(fe.INVALID_OPERATION);let l=this.genMessage(NA.SetVideoProfile);await this.signal.request(l),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: setVideoProfile success"))}async stopChannelMediaRelay(){await this.sendStopRelayMessage(),X.debug("[".concat(this.clientId,"] stopChannelMediaRelay: send stop message success")),this.state=$A.RELAY_STATE_IDLE,this.dispose()}dispose(){X.debug("[".concat(this.clientId,"] disposeChannelMediaRelay")),this.cancelToken.cancel(),this.cancelToken=vA.CancelToken.source(),this.state=$A.RELAY_STATE_IDLE,this.emit("dispose"),this.signal.dispose(),this.prevChannelMediaConfig=void 0}async connect(){let A=await l_(this.joinInfo,this.cancelToken.token,this.httpRetryConfig);this.workerToken=A.workerToken,await this.signal.connect(A.addressList),this.emit("event",ls.NETWORK_CONNECTED),this.signal.on("status",this.onStatus),this.signal.on("reconnecting",this.onReconnect)}async sendStartRelayMessage(A){let l=this.genMessage(NA.SetSdkProfile,A);await this.signal.request(l),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSdkProfile success"));let g=this.genMessage(NA.SetSourceChannel,A);await this.signal.request(g),await this.signal.waitStatus("SetSourceChannelStatus"),this.emit("event",ls.PACKET_JOINED_SRC_CHANNEL),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceChannel success"));let C=this.genMessage(NA.SetSourceUserId,A);await this.signal.request(C),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceUserId success"));let m=this.genMessage(NA.SetDestChannel,A);await this.signal.request(m),await this.signal.waitStatus("SetDestChannelStatus"),this.emit("event",ls.PACKET_JOINED_DEST_CHANNEL),X.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetDestChannel success"));let y=this.genMessage(NA.StartPacketTransfer,A);await this.signal.request(y),this.emit("event",ls.PACKET_SENT_TO_DEST_CHANNEL),this.state=$A.RELAY_STATE_RUNNING,X.debug("[".concat(this.clientId,"] startChannelMediaRelay: StartPacketTransfer success")),this.setVideoProfile(this._resolution)}async sendUpdateMessage(A){let l=this.genMessage(NA.UpdateDestChannel,A);await this.signal.request(l),this.emit("event",ls.PACKET_UPDATE_DEST_CHANNEL),X.debug("[".concat(this.clientId,"] sendUpdateMessage: UpdateDestChannel success"))}async sendStopRelayMessage(){let A=this.genMessage(NA.StopPacketTransfer);await this.signal.request(A),X.debug("[".concat(this.clientId,"] sendStopRelayMessage: StopPacketTransfer success"))}genMessage(A,l){let g=[],C=[],m=[];this.requestId+=1;let y={appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sdkVersion:Cn,sid:this.sid,ts:Date.now(),requestId:this.requestId,seq:this.requestId,allocate:!0,clientRequest:{}};y.sdkVersion==="4.24.2"&&(y.sdkVersion="0.0.1");let w=null,b=null;switch(A){case NA.SetSdkProfile:return y.clientRequest={command:"SetSdkProfile",type:"multi_channel"},y;case NA.SetSourceChannel:if(b=l&&l.getSrcChannelMediaInfo(),!b)throw new ze(fe.UNEXPECTED_ERROR,"can not find source config");return y.clientRequest={command:"SetSourceChannel",uid:"0",channelName:b.channelName,token:b.token||this.joinInfo.appId},y;case NA.SetSourceUserId:if(b=l&&l.getSrcChannelMediaInfo(),!b)throw new ze(fe.UNEXPECTED_ERROR,"can not find source config");return y.clientRequest={command:"SetSourceUserId",uid:b.uid+""},y;case NA.SetDestChannel:if(w=l&&l.getDestChannelMediaInfo(),!w)throw new ze(fe.UNEXPECTED_ERROR,"can not find dest config");return w.forEach(M=>{g.push(M.channelName),C.push(M.uid+""),m.push(M.token||this.joinInfo.appId)}),y.clientRequest={command:"SetDestChannel",channelName:g,uid:C,token:m},y;case NA.StartPacketTransfer:return y.clientRequest={command:"StartPacketTransfer"},y;case NA.Reconnect:return y.clientRequest={command:"Reconnect"},y;case NA.StopPacketTransfer:return y.clientRequest={command:"StopPacketTransfer"},y;case NA.UpdateDestChannel:if(w=l&&l.getDestChannelMediaInfo(),!w)throw new ze(fe.UNEXPECTED_ERROR,"can not find dest config");return w.forEach(M=>{g.push(M.channelName),C.push(M.uid+""),m.push(M.token||this.joinInfo.appId)}),y.clientRequest={command:"UpdateDestChannel",channelName:g,uid:C,token:m},y;case NA.SetVideoProfile:y.clientRequest={command:"SetVideoProfile",width:this._resolution.width,height:this._resolution.height}}return y}}let PO={name:"ChannelMediaRelay",create:function(a){return new Fa(a.joinInfo,a.clientId,a.websocketRetryConfig||os,a.httpRetryConfig||os,a.resolution)}};function Qx(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function hp(a){for(var A=1;A{this.reconnectMode="retry",this.startPingPong()}),Ae(this,"handleWebSocketMessage",m=>{if(!m.data)return;let y=JSON.parse(m.data);y.requestId?this.emit("@".concat(y.requestId,"-").concat(y.sid),y):(tr.workerEvent(this.spec.sid,{actionType:"status",serverCode:y.code,workerType:this.serviceMode===Nu.TRANSCODE?1:2}),this.emit(Mg.PUBLISH_STREAM_STATUS,y))}),this.spec=l,this.token=A,this.serviceMode=C,this.websocket=new M2("live-streaming",g),this.websocket.on(qr.CONNECTED,this.handleWebSocketOpen),this.websocket.on(qr.ON_MESSAGE,this.handleWebSocketMessage),this.websocket.on(qr.REQUEST_NEW_URLS,(m,y)=>{rs(this,Mg.REQUEST_NEW_ADDRESS).then(m).catch(y)}),this.websocket.on(qr.RECONNECTING,()=>{this.websocket.reconnectMode=this.reconnectMode})}init(A){return this.websocket.init(A)}async request(A,l,g,C){this.reqId+=1,A==="request"&&(this.commandReqId+=1);let m=this.commandReqId,y=this.reqId;if(!y||!this.websocket)throw new ze(fe.UNEXPECTED_ERROR);let w=hp({command:A,sdkVersion:Cn==="4.24.2"?"0.0.1":Cn,seq:y,requestId:y,allocate:g,cname:this.spec.cname,appId:this.spec.appId,sid:this.spec.sid,uid:this.spec.uid.toString(),ts:Math.floor(Date.now()/1e3)},l);if(this.websocket.state==="closed")throw new ze(fe.WS_DISCONNECT);let b=()=>new Ft((K,q)=>{this.websocket.once(qr.CLOSED,()=>q(new ze(fe.WS_ABORT))),this.websocket.once(qr.CONNECTED,K)});this.websocket.state!=="connected"&&await b(),w.clientRequest&&(w.clientRequest.workerToken=this.token);let M=new Ft((K,q)=>{let ce=()=>{q(new ze(fe.WS_ABORT))};this.websocket.once(qr.RECONNECTING,ce),this.websocket.once(qr.CLOSED,ce),this.once("@".concat(y,"-").concat(this.spec.sid),oe=>{K(oe)})});C&&tr.workerEvent(this.spec.sid,hp(hp({},C),{},{requestId:m,actionType:"request",payload:JSON.stringify(l.clientRequest),serverCode:0,code:0}));let k=Date.now();this.websocket.sendMessage(w);let V=null;try{V=await M}catch(K){if(this.websocket.state==="closed")throw K;return await b(),await this.request(A,l,g)}return C&&tr.workerEvent(this.spec.sid,hp(hp({},C),{},{requestId:m,actionType:"response",payload:JSON.stringify(V.serverResponse),serverCode:V.code,success:V.code===200,responseTime:Date.now()-k})),V.code!==200&&this.handleResponseError(V),V}tryNextAddress(){this.reconnectMode="tryNext",this.websocket.reconnect("tryNext")}close(){let A=Cn==="4.24.2"?"0.0.1":Cn;this.reqId+=1,this.websocket.state==="connected"?(this.websocket.sendMessage({command:"request",appId:this.spec.appId,cname:this.spec.cname,uid:this.spec.uid.toString(),sdkVersion:A,sid:this.spec.sid,seq:this.reqId,ts:Math.floor(Date.now()/1e3),requestId:this.reqId,clientRequest:{command:"DestroyWorker"}}),this.websocket.close(!1,!0)):this.websocket.close(!1),this.pingpongTimer&&(window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0)}handleResponseError(A){switch(A.code){case Qs.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM:return void X.warning("live stream response already exists stream");case Qs.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR:case Qs.LIVE_STREAM_RESPONSE_BAD_STREAM:case Qs.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR:return new ze(fe.LIVE_STREAMING_INVALID_ARGUMENT,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST:if(A.serverResponse.command==="UnpublishStream")return;throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case Qs.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED:return new ze(fe.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{let l=new ze(fe.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE);return this.emit(Mg.WARNING,l,A.serverResponse.url)}case Qs.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN:{let l=new ze(fe.LIVE_STREAMING_WARN_FREQUENT_REQUEST);return this.emit(Mg.WARNING,l,A.serverResponse.url)}case Qs.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH:throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case Qs.LIVE_STREAM_RESPONSE_NOT_SUPPORTED:return new ze(fe.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM:{let l=new ze(fe.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT);return this.emit(Mg.WARNING,l,A.serverResponse.url)}case Qs.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR:return new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:A.code}).throw();case Qs.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT:throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream resource limit",{retry:!0,changeAddress:!0});case Qs.LIVE_STREAM_RESPONSE_WORKER_LOST:case Qs.LIVE_STREAM_RESPONSE_WORKER_QUIT:if(A.serverResponse.command==="UnpublishStream")return;throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case Qs.ERROR_FAIL_SEND_MESSAGE:if(A.serverResponse.command==="UnpublishStream")return;if(A.serverResponse.command==="UpdateTranscoding"||A.serverResponse.command==="ControlStream")return new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{code:A.code}).throw();throw new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case Qs.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:return new ze(fe.LIVE_STREAMING_CDN_ERROR,"",{code:A.code}).throw()}}startPingPong(){this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(()=>{this.websocket.state==="connected"&&this.request("ping",{}).catch(Ia)},6e3)}}function UO(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function n1(a){for(var A=1;A1&&arguments[1]!==void 0?arguments[1]:os,g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:os;super(),Ae(this,"onLiveStreamWarning",void 0),Ae(this,"onLiveStreamError",void 0),Ae(this,"spec",void 0),Ae(this,"retryTimeout",1e4),Ae(this,"connection",void 0),Ae(this,"httpRetryConfig",void 0),Ae(this,"wsRetryConfig",void 0),Ae(this,"streamingTasks",new Map),Ae(this,"isStartingStreamingTask",!1),Ae(this,"taskMutex",new Is("live-streaming")),Ae(this,"cancelToken",vA.CancelToken.source()),Ae(this,"transcodingConfig",void 0),Ae(this,"uapResponse",void 0),Ae(this,"lastTaskId",1),Ae(this,"statusError",new Map),this.spec=A,this.httpRetryConfig=g,this.wsRetryConfig=l}async setTranscodingConfig(A){let l=n1(n1({},$U),A);l.videoCodecProfile!==66&&l.videoCodecProfile!==77&&l.videoCodecProfile!==100&&(X.debug("[".concat(this.spec.clientId,"] set transcoding config, fix video codec profile: ").concat(l.videoCodecProfile," -> 100")),l.videoCodecProfile=100),l.transcodingUsers||(l.transcodingUsers=l.userConfigs),l.transcodingUsers&&(l.transcodingUsers=l.transcodingUsers.map(y=>n1(n1(n1({},zU),y),{},{zOrder:y.zOrder?y.zOrder+1:1}))),function(y){mo(y.width)||Rn(y.width,"config.width",0,1e4),mo(y.height)||Rn(y.height,"config.height",0,1e4),mo(y.videoBitrate)||Rn(y.videoBitrate,"config.videoBitrate",1,1e6),mo(y.videoFrameRate)||Rn(y.videoFrameRate,"config.videoFrameRate"),mo(y.lowLatency)||Yl(y.lowLatency,"config.lowLatency"),mo(y.audioSampleRate)||zo(y.audioSampleRate,"config.audioSampleRate",[32e3,44100,48e3]),mo(y.audioBitrate)||Rn(y.audioBitrate,"config.audioBitrate",1,128),mo(y.audioChannels)||zo(y.audioChannels,"config.audioChannels",[1,2,3,4,5]),mo(y.videoGop)||Rn(y.videoGop,"config.videoGop"),mo(y.videoCodecProfile)||zo(y.videoCodecProfile,"config.videoCodecProfile",[66,77,100]),mo(y.userCount)||Rn(y.userCount,"config.userCount",0,17),mo(y.backgroundColor)||Rn(y.backgroundColor,"config.backgroundColor",0,16777215),mo(y.userConfigExtraInfo)||Tr(y.userConfigExtraInfo,"config.userConfigExtraInfo",0,4096,!1),y.transcodingUsers&&!mo(y.transcodingUsers)&&(Qc(y.transcodingUsers,"config.transcodingUsers"),y.transcodingUsers.forEach((w,b)=>{r_(w.uid),mo(w.x)||Rn(w.x,"transcodingUser[".concat(b,"].x"),0,1e4),mo(w.y)||Rn(w.y,"transcodingUser[".concat(b,"].y"),0,1e4),mo(w.width)||Rn(w.width,"transcodingUser[".concat(b,"].width"),0,1e4),mo(w.height)||Rn(w.height,"transcodingUser[".concat(b,"].height"),0,1e4),mo(w.zOrder)||Rn(w.zOrder-1,"transcodingUser[".concat(b,"].zOrder"),0,100),mo(w.alpha)||Rn(w.alpha,"transcodingUser[".concat(b,"].alpha"),0,1,!1)})),mo(y.watermark)||vy(y.watermark,"watermark"),mo(y.backgroundImage)||vy(y.backgroundImage,"backgroundImage"),y.images&&!mo(y.images)&&(Qc(y.images,"config.images"),y.images.forEach((w,b)=>{vy(w,"images[".concat(b,"]"))}))}(l);let g=[];l.images&&g.push(...l.images.map(y=>n1(n1(n1({},ic),y),{},{zOrder:255}))),l.backgroundImage&&(g.push(n1(n1(n1({},ic),l.backgroundImage),{},{zOrder:0})),delete l.backgroundImage),l.watermark&&(g.push(n1(n1(n1({},ic),l.watermark),{},{zOrder:255})),delete l.watermark),l.images=g,l.transcodingUsers&&(l.userConfigs=l.transcodingUsers.map(y=>n1({},y)),l.userCount=l.transcodingUsers.length,delete l.transcodingUsers);let C=(l.userConfigs||[]).map(y=>typeof y.uid=="number"?Ft.resolve(y.uid):g7(y.uid,this.spec,this.cancelToken.token,this.httpRetryConfig));if((await Ft.all(C)).forEach((y,w)=>{l.userConfigs&&l.userConfigs[w]&&(l.userConfigs[w].uid=y)}),this.transcodingConfig=l,this.connection)try{var m;let y=await this.connection.request("request",{clientRequest:{command:"UpdateTranscoding",transcodingConfig:this.transcodingConfig}},!1,{command:"UpdateTranscoding",workerType:1,requestByUser:!0,tid:Array.from(U1(m=this.streamingTasks).call(m)).map(w=>w.taskId).join("#")});X.debug("[".concat(this.spec.clientId,"] update live transcoding config success, code: ").concat(y.code,", config:"),JSON.stringify(this.transcodingConfig))}catch(y){if(!y.data||!y.data.retry)throw y;y.data.changeAddress&&this.connection.tryNextAddress(),this.streamingTasks.forEach(w=>{X.warning("[".concat(this.spec.clientId,"] live streaming receive error"),y.toString(),"try to republish",w.url),this.startLiveStreamingTask(w.url,w.mode,y).then(()=>{X.debug("[".concat(this.spec.clientId,"] live streaming republish ").concat(w.url," success"))}).catch(b=>{X.error("[".concat(this.spec.clientId,"] live streaming republish failed"),w.url,b.toString()),this.onLiveStreamError&&this.onLiveStreamError(w.url,b)})})}}async startLiveStreamingTask(A,l,g){if(!this.transcodingConfig&&l===Nu.TRANSCODE)throw new ze(fe.INVALID_OPERATION,"[LiveStreaming] no transcoding config found, can not start transcoding streaming task");let C={command:"PublishStream",ts:Date.now(),url:A,uid:this.spec.uid.toString(),autoDestroyTime:100,acceptImageTimeout:!0};X.debug("[".concat(this.spec.clientId,"] start live streaming ").concat(A,", mode: ").concat(l));let m=await this.taskMutex.lock();if(!this.connection&&g)return void m();if(this.streamingTasks.get(A)&&!g)return m(),new ze(fe.LIVE_STREAMING_TASK_CONFLICT).throw();try{this.connection||(this.connection=await this.connect(l))}catch(w){throw m(),w}switch(l){case Nu.TRANSCODE:C.transcodingConfig=n1({},this.transcodingConfig)}this.uapResponse&&this.uapResponse.vid&&(C.vid=this.uapResponse.vid),this.isStartingStreamingTask=!0;let y=this.lastTaskId++;try{let w=new Ft((M,k)=>{Ks(this.retryTimeout).then(()=>{if(g)return k(g);let V=this.statusError.get(A);return V?(this.statusError.delete(A),k(V)):void 0})}),b=await Ft.race([this.connection.request("request",{clientRequest:C},!0,{url:A,command:"PublishStream",workerType:l===Nu.TRANSCODE?1:2,requestByUser:!g,tid:y.toString()}),w]);this.isStartingStreamingTask=!1,X.debug("[".concat(this.spec.clientId,"] live streaming started, code: ").concat(b.code)),this.streamingTasks.set(A,{clientRequest:C,mode:l,url:A,taskId:y}),m()}catch(w){if(m(),this.isStartingStreamingTask=!1,!w.data||!w.data.retry||g)throw w;return w.data.changeAddress?(this.connection.tryNextAddress(),await this.startLiveStreamingTask(A,l,w)):await this.startLiveStreamingTask(A,l,w)}}stopLiveStreamingTask(A){return new Ft((l,g)=>{let C=this.streamingTasks.get(A);if(!C||!this.connection)return new ze(fe.UNEXPECTED_ERROR,"can not find streaming task to stop").throw();let m=C.mode;C.abortTask=()=>{X.debug("[".concat(this.spec.clientId,"] stop live streaming success(worker exception)")),this.streamingTasks.delete(A),l()},this.connection.request("request",{clientRequest:{command:"UnpublishStream",url:C.url}},!1,{url:A,command:"UnPublishStream",workerType:m===Nu.TRANSCODE?1:2,requestByUser:!0,tid:(this.lastTaskId++).toString()}).then(y=>{X.debug("[".concat(this.spec.clientId,"] stop live streaming success, code: ").concat(y.code)),this.streamingTasks.delete(A),this.streamingTasks.size===0&&(this.connection&&this.connection.close(),this.connection=void 0),l()}).catch(g)})}resetAllTask(){var A;let l=Array.from(U1(A=this.streamingTasks).call(A));this.terminate();for(let g of l)this.startLiveStreamingTask(g.url,g.mode).catch(C=>{this.onLiveStreamError&&this.onLiveStreamError(g.url,C)})}terminate(){this.cancelToken&&this.cancelToken.cancel(),this.streamingTasks=new Map,this.isStartingStreamingTask=!1,this.statusError=new Map,this.cancelToken=vA.CancelToken.source(),this.uapResponse=void 0,this.connection&&this.connection.close(),this.connection=void 0}async connect(A){if(this.connection)throw new ze(fe.UNEXPECTED_ERROR,"live streaming connection has already connected");let l=await rs(this,Dy.REQUEST_WORKER_MANAGER_LIST,A);return this.uapResponse=l,this.connection=new Hq(l.workerToken,this.spec,this.wsRetryConfig,A),this.connection.on(Mg.WARNING,(g,C)=>this.onLiveStreamWarning&&this.onLiveStreamWarning(C,g)),this.connection.on(Mg.PUBLISH_STREAM_STATUS,g=>this.handlePublishStreamServer(g)),this.connection.on(Mg.REQUEST_NEW_ADDRESS,(g,C)=>{if(!this.connection)return C(new ze(fe.UNEXPECTED_ERROR,"can not get new live streaming address list"));rs(this,Dy.REQUEST_WORKER_MANAGER_LIST,A).then(m=>{this.uapResponse=m,g(m.addressList)}).catch(C)}),await this.connection.init(l.addressList),this.connection}handlePublishStreamServer(A){let l=A.serverStatus&&A.serverStatus.url||"empty_url",g=this.streamingTasks.get(l),C=A.reason;switch(A.code){case Qs.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case Qs.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:{let y=new ze(fe.LIVE_STREAMING_CDN_ERROR,"",{code:A.code});if(g)return X.error(y.toString()),this.onLiveStreamError&&this.onLiveStreamError(l,y);if(!this.isStartingStreamingTask)return;this.statusError.set(l,y)}case Qs.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{let y=new ze(fe.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE,C);return this.onLiveStreamWarning&&this.onLiveStreamWarning(l,y)}case Qs.LIVE_STREAM_RESPONSE_WORKER_LOST:case Qs.LIVE_STREAM_RESPONSE_WORKER_QUIT:{var m;if(!this.connection)return;this.connection.tryNextAddress();let y=Array.from(U1(m=this.streamingTasks).call(m));for(let w of y)w.abortTask?w.abortTask():(X.warning("[".concat(this.spec.clientId,"] publish stream status code"),A.code,"try to republish",w.url),this.startLiveStreamingTask(w.url,w.mode,new ze(fe.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:A.code})).then(()=>{X.debug("[".concat(this.spec.clientId,"] republish live stream success"),w.url)}).catch(b=>{X.error(b.toString()),this.onLiveStreamError&&this.onLiveStreamError(w.url,b)}));return}}}hasUrl(A){return this.streamingTasks.has(A)}}let Yq={name:"LiveStreaming",create:function(a){return new xO(a.joinInfo,a.websocketRetryConfig||os,a.httpRetryConfig||os)}};function jq(a){let A=Dx();return function(l,g){let C=l.appId;C!==void 0&&(Un(g,10),$u(g,C));let m=l.cid;m!==void 0&&(Un(g,16),Un(g,m));let y=l.cname;y!==void 0&&(Un(g,26),$u(g,y));let w=l.deviceId;w!==void 0&&(Un(g,34),$u(g,w));let b=l.elapse;b!==void 0&&(Un(g,40),Gh(g,b));let M=l.fileSize;M!==void 0&&(Un(g,48),Gh(g,yl(M)));let k=l.height;k!==void 0&&(Un(g,56),Gh(g,yl(k)));let V=l.jpg;V!==void 0&&(Un(g,66),Un(g,V.length),function(Hn,ut){let kt=Fh(Hn,ut.length);Hn.bytes.set(ut,kt)}(g,V));let K=l.networkType;K!==void 0&&(Un(g,72),Gh(g,yl(K)));let q=l.osType;q!==void 0&&(Un(g,80),Gh(g,yl(q)));let ce=l.requestId;ce!==void 0&&(Un(g,90),$u(g,ce));let oe=l.sdkVersion;oe!==void 0&&(Un(g,98),$u(g,oe));let le=l.sequence;le!==void 0&&(Un(g,104),Gh(g,yl(le)));let pe=l.sid;pe!==void 0&&(Un(g,114),$u(g,pe));let Se=l.timestamp;Se!==void 0&&(Un(g,120),Gh(g,Se));let be=l.uid;be!==void 0&&(Un(g,128),Un(g,be));let Ue=l.vid;Ue!==void 0&&(Un(g,136),Un(g,Ue));let xe=l.width;xe!==void 0&&(Un(g,144),Gh(g,yl(xe)));let Le=l.service;Le!==void 0&&(Un(g,152),Un(g,Le));let je=l.callbackData;je!==void 0&&(Un(g,162),$u(g,je));let dt=l.jpgEncryption;dt!==void 0&&(Un(g,168),Un(g,dt));let pt=l.requestType;pt!==void 0&&(Un(g,176),Un(g,pt));let zt=l.scorePorn;zt!==void 0&&(Un(g,185),jO(g,zt));let gr=l.scoreSexy;gr!==void 0&&(Un(g,193),jO(g,gr));let li=l.scoreNeutral;li!==void 0&&(Un(g,201),jO(g,li));let ii=l.scene;ii!==void 0&&(Un(g,208),Un(g,ii));let br=l.ossFilePrefix;br!==void 0&&(Un(g,218),$u(g,br));let Zi=l.serviceVendor;if(Zi!==void 0)for(let Hn of Zi){Un(g,226);let ut=Dx();qq(Hn,ut),Un(g,ut.limit),Nx(g,ut),Xq(ut)}}(a,A),function(l){let g=l.bytes,C=l.limit;return g.length===C?g:g.subarray(0,C)}(A)}function Jq(a){return function(l){let g={};e:for(;!VO(l);){let C=eu(l);switch(C>>>3){case 0:break e;case 1:g.code=eu(l);break;case 2:g.msg=bx(l,eu(l));break;case 3:{let m=Wq(l);g.data=FO(l),l.limit=m;break}default:Tx(l,7&C)}}return g}({bytes:A=a,offset:0,limit:A.length});var A}function FO(a){let A={};e:for(;!VO(a);){let l=eu(a);switch(l>>>3){case 0:break e;case 1:A.requestId=bx(a,eu(a));break;case 2:A.requestType=eu(a)>>>0;break;case 3:A.scorePorn=YO(a);break;case 4:A.scoreSexy=YO(a);break;case 5:A.scoreNeutral=YO(a);break;case 6:A.requestScene=eu(a)>>>0;break;case 7:A.scene=eu(a)>>>0;break;default:Tx(a,7&l)}}return A}function qq(a,A){let l=a.service;l!==void 0&&(Un(A,8),Un(A,l));let g=a.vendor;g!==void 0&&(Un(A,16),Un(A,g));let C=a.token;C!==void 0&&(Un(A,26),$u(A,C));let m=a.callbackUrl;m!==void 0&&(Un(A,34),$u(A,m))}function Wq(a){let A=eu(a),l=a.limit;return a.limit=a.offset+A,l}function Tx(a,A){switch(A){case 0:for(;128&HO(a););break;case 2:LQ(a,eu(a));break;case 5:LQ(a,4);break;case 1:LQ(a,8);break;default:throw new Error("Unimplemented type: "+A)}}let wx=new Float32Array(1);new Uint8Array(wx.buffer);let GO=new Float64Array(1),y1=new Uint8Array(GO.buffer);function yl(a){return{low:a|=0,high:a>>31,unsigned:a>=0}}let vx=[];function Dx(){let a=vx.pop();return a?(a.offset=a.limit=0,a):{bytes:new Uint8Array(64),offset:0,limit:0}}function Xq(a){vx.push(a)}function LQ(a,A){if(a.offset+A>a.limit)throw new Error("Skip past limit");a.offset+=A}function VO(a){return a.offset>=a.limit}function Fh(a,A){let l=a.bytes,g=a.offset,C=a.limit,m=g+A;if(m>l.length){let y=new Uint8Array(2*m);y.set(l),a.bytes=y}return a.offset=m,m>C&&(a.limit=m),g}function KO(a,A){let l=a.offset;if(l+A>a.limit)throw new Error("Read past limit");return a.offset+=A,l}function bx(a,A){let l=KO(a,A),g=String.fromCharCode,C=a.bytes,m="�",y="";for(let w=0;w=A?y+=m:(b=C[w+l+1],(192&b)!=128?y+=m:(V=(31&K)<<6|63&b,V<128?y+=m:(y+=g(V),w++))):(240&K)==224?w+2>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],(49344&(b|M<<8))!=32896?y+=m:(V=(15&K)<<12|(63&b)<<6|63&M,V<2048||V>=55296&&V<=57343?y+=m:(y+=g(V),w+=2))):(248&K)==240?w+3>=A?y+=m:(b=C[w+l+1],M=C[w+l+2],k=C[w+l+3],(12632256&(b|M<<8|k<<16))!=8421504?y+=m:(V=(7&K)<<18|(63&b)<<12|(63&M)<<6|63&k,V<65536||V>1114111?y+=m:(V-=65536,y+=g(55296+(V>>10),56320+(1023&V)),w+=3))):y+=m:y+=g(K)}return y}function $u(a,A){let l=A.length,g=0;for(let y=0;y=55296&&w<=56319&&y+1=55296&&w<=56319&&y+1>6&31|192:(w<65536?m[C++]=w>>12&15|224:(m[C++]=w>>18&7|240,m[C++]=w>>12&63|128),m[C++]=w>>6&63|128),m[C++]=63&w|128)}}function Nx(a,A){let l=Fh(a,A.limit),g=a.bytes,C=A.bytes;for(let m=0,y=A.limit;m>>=0;A>=128;)MQ(a,127&A|128),A>>>=7;MQ(a,A)}function Gh(a,A){let l=A.low>>>0,g=(A.low>>>28|A.high<<4)>>>0,C=A.high>>>24,m=C===0?g===0?l<16384?l<128?1:2:l<1<<21?3:4:g<16384?g<128?5:6:g<1<<21?7:8:C<128?9:10,y=Fh(a,m),w=a.bytes;switch(m){case 10:w[y+9]=C>>>7&1;case 9:w[y+8]=m!==9?128|C:127&C;case 8:w[y+7]=m!==8?g>>>21|128:g>>>21&127;case 7:w[y+6]=m!==7?g>>>14|128:g>>>14&127;case 6:w[y+5]=m!==6?g>>>7|128:g>>>7&127;case 5:w[y+4]=m!==5?128|g:127&g;case 4:w[y+3]=m!==4?l>>>21|128:l>>>21&127;case 3:w[y+2]=m!==3?l>>>14|128:l>>>14&127;case 2:w[y+1]=m!==2?l>>>7|128:l>>>7&127;case 1:w[y]=m!==1?128|l:127&l}}function Ox(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}let zq=new Map([["moderation",1],["supervise",2]]);class $q extends io{get connectionState(){return this._connectionState}set connectionState(A){if(this._connectionState===A)return;let l=this._connectionState;this._connectionState=A,this.emit(sa.CONNECTION_STATE_CHANGE,l,A)}get inspectType(){return this._inspectType}set inspectType(A){var l;this._inspectMode=$c(l=A.map(g=>zq.get(g)||0)).call(l,(g,C)=>g+C),this._inspectType=A}get quality(){return this._quality}set quality(A){this._quality=A>1?1:A<.1?.1:A,this.qualityTimer&&(window.clearTimeout(this.qualityTimer),this.qualityTimer=null),this._quality>=1||(this.qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this.qualityRatio},6e4))}constructor(A){super(),Ae(this,"name","AgoraRTCVideoContentInspect"),Ae(this,"_connectionState",Cl.CONNECTING),Ae(this,"_innerConnectionState",void 0),Ae(this,"sequence",0),Ae(this,"inspectStartTime",void 0),Ae(this,"workerManagerConnection",void 0),Ae(this,"workerConnection",void 0),Ae(this,"workerMessageLengthLimit",void 0),Ae(this,"inspectIntervalMinimum",void 0),Ae(this,"qualityRatio",void 0),Ae(this,"_connectInfo",void 0),Ae(this,"_cancelTokenSource",vA.CancelToken.source()),Ae(this,"_retryConfig",void 0),Ae(this,"wmSequence",0),Ae(this,"inspectInterval",void 0),Ae(this,"inspectTimer",null),Ae(this,"ossFilePrefix",void 0),Ae(this,"extraInfo",void 0),Ae(this,"_inspectType",void 0),Ae(this,"_inspectMode",void 0),Ae(this,"_quality",1),Ae(this,"qualityTimer",null),Ae(this,"_inspectId",void 0),Ae(this,"_needWorkUrlOnly",!1),Ae(this,"inspectImage",()=>{if(this.connectionState!==Cl.CONNECTED)throw new ze(fe.OPERATION_ABORTED,"content inspect service connection status is ".concat(this.connectionState));this.inspectTimer&&(window.clearInterval(this.inspectTimer),this.inspectTimer=null),this.inspectTimer=window.setInterval(()=>{this.connectionState===Cl.CONNECTED?this.requestToInspectImage():X.debug("[".concat(this._inspectId,"] Inspect State is not connected , "),this.connectionState)},this.inspectInterval{this._innerConnectionState=l,X.debug("[".concat(this._inspectId,"] Inspect operation :").concat(Zl[l]," ").concat(g||""))}),this.handleWorkerManagerEvents(),this.workerConnection=new M2("worker-"+this._inspectId,os),this.handleWorkerEvents()}async init(A,l){this.emit(sa.STATE_CHANGE,Zl.CONNECT_AP),this._connectInfo=A;let g=this._cancelTokenSource.token;return this._retryConfig=l,new Ft((C,m)=>{this.on(sa.CONNECTION_STATE_CHANGE,(y,w)=>{w===Cl.CONNECTED&&C()}),this.requestAP(A,g,l).then(y=>{this.connectWorkerManager(y)}).catch(y=>{m(y)})})}async requestAP(A,l,g){let C=Ie("WEBCS_DOMAIN").map(w=>"https://".concat(w,"/api/v1")),m=await function(w,b,M,k){let{appId:V,areaCode:K,cname:q,sid:ce,token:oe,uid:le}=b;x2++;let pe="image_moderation_api",Se={service_name:pe,json_body:JSON.stringify({appId:V,areaCode:K,cname:q,command:"allocateEdge",requestId:x2,seq:x2,sid:ce,token:oe,ts:Date.now(),uid:le+""})},be,Ue,xe=w[0];return jl(async()=>{be=Date.now();let Le=await iA(xe,{data:Se,cancelToken:M,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(Ue=Date.now()-be,Le.code!==0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"image inspect ap error, code"+Le.code,{retry:!0,responseTime:Ue});throw X.error(gr.toString()),gr}let je=JSON.parse(Le.json_body);if(je.code!==200){let gr=new ze(fe.UNEXPECTED_RESPONSE,"image inspect ap error, code: ".concat(je.code,", reason: ").concat(je.reason),{code:je.code,responseTime:Ue});throw X.error(gr.toString()),gr}if(!je.servers||!Array.isArray(je.servers)||je.servers.length===0){let gr=new ze(fe.UNEXPECTED_RESPONSE,"image inspect ap empty server",{code:je.code,responseTime:Ue});throw X.error(gr.toString()),gr}let dt=Ie("VIDEO_INSPECT_WORKER_MANAGER_WSS");if(dt)return{addressList:[dt],workerToken:je.workerToken,vid:je.vid,responseTime:Ue};let pt=Ie("VIDEO_INSPECT_WORKER_MANAGER_HOST"),zt=Ie("VIDEO_INSPECT_WORKER_MANAGER_PORT");return{addressList:je.servers.map(gr=>{let{address:li,wss:ii}=gr;if(li&&ii)return"wss://".concat(li.replace(/\./g,"-"),".").concat(pt,":").concat(zt||ii)}).filter(gr=>!!gr),workerToken:je.workerToken,vid:je.vid,responseTime:Ue}},(Le,je)=>(tr.apworkerEvent(ce,{success:!0,sc:200,serviceName:pe,responseDetail:JSON.stringify(Le.addressList),firstSuccess:je===0,responseTime:Ue,serverIp:w[je%w.length]}),!1),(Le,je)=>(tr.apworkerEvent(ce,{success:!1,sc:Le.data&&Le.data.code||200,serviceName:pe,responseTime:Ue,serverIp:w[je%w.length]}),!!(Le.code!==fe.OPERATION_ABORTED&&Le.code!==fe.UNEXPECTED_RESPONSE||Le.data&&Le.data.retry)&&(xe=w[(je+1)%w.length],!0)),k)}(C,A,l,g);this.emit(sa.STATE_CHANGE,Zl.AP_CONNECTED);let{addressList:y}=m;return this.wmSequence++,y}async connectWorkerManager(A){let l=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._needWorkUrlOnly=l,this.emit(sa.STATE_CHANGE,Zl.CONNECT_WORKER_MANAGER),await this.workerManagerConnection.init(A,1e4)}async connectWorker(A){await this.workerConnection.init([A])}handleWorkerManagerEvents(){this.workerManagerConnection.on(qr.CONNECTED,async()=>{this.emit(sa.STATE_CHANGE,Zl.WORKER_MANAGER_CONNECTED,this.workerManagerConnection.url),this.workerManagerConnection.sendMessage({appId:this._connectInfo.appId,cname:this._connectInfo.cname,uid:this._connectInfo.uid+"",sdkVersion:"4.24.2",sid:this._connectInfo.sid,seq:this.wmSequence,ts:Number(Date.now()),requestId:Math.floor(1e12*Math.random()),allocate:!0,clientRequest:{command:"join"}},!0)}),this.workerManagerConnection.on(qr.CLOSED,()=>{this._innerConnectionState{this._innerConnectionState{this._innerConnectionState{this.emit(sa.STATE_CHANGE,Zl.GET_WORKER_MANAGER_RESPONSE);let l=this.workerManagerConnection.url;this.workerManagerConnection.close();let g=JSON.parse(A.data);if(g.code!==200)throw X.error("[".concat(this._inspectId,"] Unexpected code ").concat(g.code," from worker manager")),new ze(fe.UNEXPECTED_RESPONSE,"response code of worker is unexpected",g);if(!(g.serverResponse&&g.serverResponse.portWss&&l))throw X.error("[".concat(this._inspectId,"] Unexpected content from worker manager : ").concat(JSON.stringify(g))),new ze(fe.UNEXPECTED_RESPONSE,"response content of worker is unexpected",g);{let C=Ie("VIDEO_INSPECT_WORKER_PORT")||g.serverResponse.portWss,m=l.replace(/:\d+\/?$/,":".concat(C));this.emit(sa.STATE_CHANGE,Zl.CONNECT_WORKER,m),this._needWorkUrlOnly?this.emit(sa.REQUEST_NEW_WORKER_URL,m):await this.connectWorker(m)}}),this.workerManagerConnection.on(qr.WILL_RECONNECT,(A,l,g)=>{g(A)}),this.workerManagerConnection.on(qr.REQUEST_NEW_URLS,(A,l)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(A).catch(l)})}handleWorkerEvents(){this.workerConnection.on(qr.CONNECTED,async()=>{this.emit(sa.STATE_CHANGE,Zl.WORKER_CONNECTED,this.workerConnection.url),this.connectionState=Cl.CONNECTED}),this.workerConnection.on(qr.ON_MESSAGE,async A=>{if(A.data instanceof ArrayBuffer){let g=Jq(new Uint8Array(A.data));if(Ie("SHOW_VIDEO_INSPECT_WORKER_MESSAGE")&&X.debug("[".concat(this._inspectId,"] Response message for worker of inspect content "),JSON.stringify(g)),g.code===200){if(Array.isArray(this.inspectType)&&this.inspectType.length===1&&this.inspectType[0]==="supervise")return void this.emit(sa.INSPECT_RESULT,void 0,void 0);if(g.data&&g.data.scorePorn&&g.data.scoreSexy&&g.data.scoreNeutral){var l;let C={porn:g.data.scorePorn,sexy:g.data.scoreSexy,neutral:g.data.scoreNeutral},m=$c(l=Object.keys(C)).call(l,(w,b)=>C[w]>C[b]?w:b,"porn"),y=Object.keys(C).find(w=>w===m);this.emit(sa.INSPECT_RESULT,y)}else this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.UNEXPECTED_RESPONSE,g.code+"","There is an unexpected data on message"))}else this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.UNEXPECTED_RESPONSE,g.code+"",g.msg))}else X.error("[".concat(this._inspectId,"] Unexpected message type from worker")),this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.UNEXPECTED_RESPONSE,"invalid worker message type"))}),this.workerConnection.on(qr.CLOSED,()=>{this.connectionState=Cl.CLOSED}),this.workerConnection.on(qr.FAILED,()=>{this.connectionState=Cl.CLOSED}),this.workerConnection.on(qr.RECONNECTING,()=>{this.connectionState=this.connectionState===Cl.CONNECTED?Cl.RECONNECTING:Cl.CONNECTING}),this.workerConnection.on(qr.WILL_RECONNECT,(A,l,g)=>{A==="recover"&&g(A),g("tryNext")}),this.workerConnection.on(qr.REQUEST_NEW_URLS,(A,l)=>{this.workerManagerConnection.close(),this.once(sa.REQUEST_NEW_WORKER_URL,g=>{A([g])}),this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(g=>{this.connectWorkerManager(g,!0)}).catch(g=>{l(g)})})}async requestToInspectImage(){this.sequence++;let A=JA(this,sa.CLIENT_LOCAL_VIDEO_TRACK),l={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(A){if(!A.isPlaying)return void this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.INVALID_OPERATION,"Only the track being played can be inspected"));let g=await this.generateRequestData(A,l);this.workerConnection.sendMessage(g,!0,!0)}else this.emit(sa.INSPECT_RESULT,void 0,new ze(fe.INVALID_OPERATION,"Only the track being published can be inspected"))}async generateRequestData(A,l){let{appId:g,cname:C,cid:m,vid:y,sid:w,uid:b}=l,M=Date.now(),k=await A.getCurrentFrameImage("image/jpeg",this.quality),V=await XR(k,g,C),K=this.sequence+"-"+m+"-"+b+"-"+M+"-"+yn(12,""),q={appId:g,cid:m,cname:C,deviceId:"",elapse:(ce=Number(M-this.inspectStartTime),{low:ce|=0,high:ce>>31,unsigned:ce>=0}),fileSize:V.byteLength,jpgEncryption:2,height:k.height,width:k.width,jpg:V,networkType:6,osType:7,requestId:K,sdkVersion:"4.24.2",sequence:this.sequence,sid:w,timestamp:y_(M),uid:b,vid:y,service:this._inspectMode,callbackData:this.extraInfo,ossFilePrefix:this.ossFilePrefix};var ce;this.extraInfo===void 0&&delete q.callbackData,this.ossFilePrefix===void 0&&delete q.ossFilePrefix;let oe=jq(q);if(oe.byteLength{var m;if(!Rt(m=["supervise","moderation"]).call(m,C))throw new ze(fe.INVALID_PARAMS,"".concat(C," is not a valid inspect type."))}),l.inspectType=g}if(l&&l.extraInfo&&l.extraInfo.length>1024)throw new ze(fe.INVALID_PARAMS,"inspectConfig.extraInfo length cannot exceed 1024 bytes")}(A),new $q(A)}};var z_=I(Tn.Object.getOwnPropertySymbols),eW=wn,tW=mm.indexOf,rW=Hp,kQ=Bt([].indexOf),Lx=!!kQ&&1/kQ([1],1,-0)<0;eW({target:"Array",proto:!0,forced:Lx||!rW("indexOf")},{indexOf:function(a){var A=arguments.length>1?arguments[1]:void 0;return Lx?kQ(this,a,A)||0:tW(this,a,A)}});var iW=Cc("Array","indexOf"),nW=j,JO=iW,$_=Array.prototype,Mx=function(a){var A=a.indexOf;return a===$_||nW($_,a)&&A===$_.indexOf?JO:A},PQ=I(Mx);function kx(a,A){if(a==null)return{};var l,g,C=function(y,w){if(y==null)return{};var b={};for(var M in y)if({}.hasOwnProperty.call(y,M)){if(PQ(w).call(w,M)!==-1)continue;b[M]=y[M]}return b}(a,A);if(z_){var m=z_(a);for(g=0;gle.payloadType.toString(10)),oe.attributes.payloads=q,oe.attributes.extmaps=V.videoExtensions),oe.media.mediaType==="audio"&&(oe.media.fmts=ce.map(le=>le.payloadType.toString(10)),oe.attributes.payloads=ce,oe.attributes.extmaps=V.audioExtensions,No(oe));this.sessionDesc=k,this.currentMidIndex=k.mediaDescriptions.length-1}toString(){return ea(this.sessionDesc)}hasMid(a){return Array.isArray(a)?a.every(A=>this.hasMid(A)):this.sessionDesc.mediaDescriptions.some(A=>A.attributes.mid===a)}send(a,A,l,g,C){l=l.replace(/ /g,"-");let{ssrcs:m,ssrcGroups:y}=U2(A,this.cname,Ie("SYNC_GROUP")?l:void 0),w=this.findPreloadMediaDesc(m);if(w){if(uo()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,w.attributes.mid),C&&(C.twcc||C.remb)){let b=this.sessionDesc.mediaDescriptions.indexOf(w);return this.sessionDesc.mediaDescriptions[b]=this.mungSendMediaDesc(w,C),{mid:w.attributes.mid,needExchangeSDP:!0}}return{mid:w.attributes.mid,needExchangeSDP:!1}}{let b=this.findAvailableMediaIndex(a,m,g),M;return b===-1?(M=this.createOrRecycleSendMedia(a,m,y,"sendonly",g,C),this.updateBundleMids()):(M=no(this.sessionDesc.mediaDescriptions[b]),M.attributes.direction="sendonly",M.attributes.ssrcs=m,M.attributes.ssrcGroups=y,this.sessionDesc.mediaDescriptions[b]=this.mungSendMediaDesc(M,C)),uo()&&this.firefoxSsrcMidMap.set(m[0].ssrcId,M.attributes.mid),{needExchangeSDP:!0,mid:M.attributes.mid}}}stopSending(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>l.attributes.mid&&a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");A.forEach(l=>{l.attributes.ssrcs=[]}),this.updateBundleMids()}receive(a,A,l){let g=[];return a.forEach(C=>{let m=C._mediaStreamTrack.kind,y=this.findAvailableRecvMediaIndex(m),w,b=!1;y===-1?(b=!0,w=this.createOrRecycleRecvMedia(C,[],"recvonly",A,l),this.updateBundleMids()):(w=no(this.sessionDesc.mediaDescriptions[y]),w.attributes.direction="recvonly"),g.push({mid:w.attributes.mid,needCreateTransceiver:b})}),g}stopReceiving(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>a.indexOf(l.attributes.mid)!==-1);if(A.length!==a.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");A.forEach(l=>{l.media.port="0",l.attributes.direction="inactive"}),this.updateBundleMids()}addRemoteCandidate(a){let{foundation:A,protocol:l,address:g,port:C,type:m,relatedAddress:y,relatedPort:w,priority:b}=new RTCIceCandidate(a),M={foundation:A??"",componentId:"1",transport:l??"",priority:b?b+"":"",connectionAddress:g??"",port:C?C+"":"",type:m?m+"":"",relAddr:y??"",relPort:w?w+"":"",extension:{}};this.candidates.some(k=>k.priority===M.priority&&k.connectionAddress===M.connectionAddress&&k.port===M.port)||(this._candidates.push(M),this.sessionDesc.mediaDescriptions.forEach(k=>{k.attributes.candidates=this.candidates}))}clearRemoteCandidate(){this._candidates=[],this.sessionDesc.mediaDescriptions[0].attributes.candidates=this._candidates}createOrRecycleRecvMedia(a,A,l,g,C){let m=a._mediaStreamTrack.kind,y=this.rtpCapabilities.recv,w=_h(m,y,this.localCapabilities.send,m===$t.AUDIO?C:g),b=m===$t.VIDEO?y.videoExtensions:y.audioExtensions,M="".concat(++this.currentMidIndex),k={media:{mediaType:m,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(K=>K.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:b,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:l,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(M)}};k=this.mungRecvMediaDsec(k,a);let V=this.findFirstClosedMedia(m);if(V){let K=this.sessionDesc.mediaDescriptions.indexOf(V);this.sessionDesc.mediaDescriptions[K]=k}else this.sessionDesc.mediaDescriptions.push(k);return k}muteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="inactive"})}unmuteRemote(a){let A=this.sessionDesc.mediaDescriptions.filter(l=>Rt(a).call(a,l.attributes.mid||""));if(A.length!==a.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");A.forEach(l=>{l.attributes.direction="recvonly"})}findAvailableMediaIndex(a,A,l){return this.sessionDesc.mediaDescriptions.findIndex(g=>{let C=g.media.mediaType===a&&g.media.port!=="0"&&(g.attributes.direction==="sendonly"||g.attributes.direction==="sendrecv")&&g.attributes.ssrcs.length===0;if(uo()){if(C){let m=this.firefoxSsrcMidMap.get(A[0].ssrcId);return!(m||g.attributes.mid!=="0"&&g.attributes.mid!=="1")||!(!m||m!==g.attributes.mid)}return!1}return C&&g.attributes.mid===l})}findAvailableRecvMediaIndex(a){return this.sessionDesc.mediaDescriptions.findIndex(A=>{let l=A.media.mediaType===a&&A.media.port!=="0"&&(A.attributes.direction==="recvonly"||A.attributes.direction==="sendrecv");return A.attributes.mid!=="0"&&A.attributes.mid!=="1"&&l})}predictReceivingMids(a){let A=[];for(let l=0;l{A.attributes.iceUfrag=a.iceUfrag,A.attributes.icePwd=a.icePwd})}createOrRecycleSendMedia(a,A,l,g,C,m){let y=this.rtpCapabilities.send,w=a===$t.VIDEO?y.videoCodecs:y.audioCodecs,b=a===$t.VIDEO?y.videoExtensions:y.audioExtensions;uo()&&(C="".concat(++this.currentMidIndex));let M={media:{mediaType:a,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:w.map(V=>V.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:b,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:A,ssrcGroups:l,rtcpFeedbackWildcards:[],payloads:w,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:g,rtcpMux:!0,rtcpRsize:!0,mid:C}};M=this.mungSendMediaDesc(M,m);let k=this.findFirstClosedMedia(a);if(k){let V=this.sessionDesc.mediaDescriptions.indexOf(k);this.sessionDesc.mediaDescriptions[V]=M}else this.sessionDesc.mediaDescriptions.push(M);return M}mungRecvMediaDsec(a,A,l){let g=no(a);return fN(g),kg(g,A),Pu(g,A),xy(g),ds(g,l,this.localCapabilities.send),g}mungSendMediaDesc(a,A){let l=no(a);return ds(l,A,this.localCapabilities.recv),No(l),l}updateRecvMedia(a,A){let l=this.sessionDesc.mediaDescriptions.findIndex(g=>g.attributes.mid===a);if(l!==-1){let g=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[l],A);this.sessionDesc.mediaDescriptions[l]=g}}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(a=>a.media.port!=="0").map(a=>a.attributes.mid)}findPreloadMediaDesc(a){return this.sessionDesc.mediaDescriptions.find(A=>{var l;return((l=A.attributes)===null||l===void 0||(l=l.ssrcs[0])===null||l===void 0?void 0:l.ssrcId)===a[0].ssrcId})}findFirstClosedMedia(a){return this.sessionDesc.mediaDescriptions.find(A=>uo()?A.media.port==="0"&&A.media.mediaType===a:A.media.port==="0")}},UQ=["sdp"];var xn;function WO(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function eE(a){for(var A=1;A2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"sendonly"),K={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},q={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},ce={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(t1(V,k,"videoExtensions",K,q,ce),t1(V,k,"videoCodecs",K,q,ce),t1(V,k,"audioExtensions",K,q,ce),t1(V,k,"audioCodecs",K,q,ce),Ie("RAISE_H264_BASELINE_PRIORITY")){let oe=ce.videoCodecs.findIndex(le=>le.rtpMap&&le.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&le.fmtp&&le.fmtp.parameters["profile-level-id"]==="42001f");if(oe!==-1){let le=ce.videoCodecs.findIndex(pe=>pe.rtpMap&&pe.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(le!(pe.rtpMap&&pe.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&pe.fmtp&&pe.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:K,recv:q,sendrecv:ce}}({},{},g);this.remoteSDP=new qO({remoteIceParameters:C.iceParameters,remoteDtlsParameters:C.dtlsParameters,candidates:[],remoteRTPCapabilities:m,localCapabilities:this.localCapabilities,direction:this.direction,setup:"actpass",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()}),this.isReady=!0;let y=await this.peerConnection.createAnswer();if(!y.sdp)throw new Error("Cannot get answer sdp when trying to establish PeerConnection.");let w=fl(y.sdp);await this.peerConnection.setLocalDescription(y);let b=await e1({},{},y.sdp);this.localCapabilities=En(b);let M=this.peerConnection.getTransceivers()[0];return M!=null&&M.receiver&&M.receiver.transport&&this.tryBindTransportEvents(M.receiver.transport),eE(eE({},w),{},{sdp:y.sdp})}{this.peerConnection.addTransceiver("video",{direction:"sendonly"}),this.peerConnection.addTransceiver("audio",{direction:"sendonly"});let g=await this.peerConnection.createOffer();if(!g.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let C=fl(g.sdp);return this.initialOffer=g,eE(eE({},C),{},{sdp:g.sdp})}}catch(l){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,l.toString())}}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");await this.peerConnection.setLocalDescription(this.initialOffer);let{sdp:l,iceParameters:g,dtlsParameters:C}=A,m=await e1({},{},l);this.remoteSDP=new qO({remoteIceParameters:g,remoteDtlsParameters:C,candidates:[],remoteRTPCapabilities:m,localCapabilities:this.localCapabilities,direction:this.direction,setup:"active",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()});let y=this.peerConnection.getTransceivers()[0];y!=null&&y.sender&&y.sender.transport&&this.tryBindTransportEvents(y.sender.transport)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(l.toString()))}}async addRemoteCandidate(A){try{A&&this.pendingCandidates.push(A),this.peerConnection.remoteDescription&&this.isReady&&(this.pendingCandidates.forEach(l=>{this.peerConnection.addIceCandidate(l)}),this.pendingCandidates=[])}catch(l){throw new nt(fe.ADD_CANDIDATE_FAILED,"P2PConnection.addRemoteCandidate failed; ".concat(l.toString()))}}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From P2PConnection.send"));try{if(!C.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let y=[],w=C.remoteSDP.receive(A,l,g);A.forEach((le,pe)=>{if(w[pe].needCreateTransceiver){let Se=C.peerConnection.addTransceiver(le._mediaStreamTrack,{direction:"sendonly"});y.push(Se),le._updateRtpTransceiver(Se)}else{let Se=C.peerConnection.getTransceivers().find(be=>be.mid===w[pe].mid);if(!Se)throw new Error("cannot find transceiver when sendPeerconnection send, mid is ".concat(w[pe].mid));y.push(Se),le._updateRtpTransceiver(Se)}}),uo()&&Ie("SIMULCAST")===!0&&(yield ri(C.applySimulcastForFirefox(y,A)));let b=w.map(le=>le.mid),M=yield ri(C.peerConnection.createOffer()),k=C.mungSendOfferSDP(M.sdp,A,b),V=ki(k),K=b.map(le=>{let pe=V.mediaDescriptions.find(Se=>Se.attributes.mid===le);if(!pe)throw new Error("Cannot extract ssrc from mediaDescription.");return P2(pe,Ie("USE_PUB_RTX"))}),q=y.map((le,pe)=>{let Se=b[pe];return{localSSRC:K[pe],id:Se}});yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k}));try{yield q}catch(le){let pe=C.remoteSDP.toString();throw yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:pe})),yield ri(C.stopSending(b,!0)),le}yield ri(C.applySimulcastEncodings(y,A)),yield ri(C.applySendEncodings(y,A));let ce=C.remoteSDP.toString(),oe=C.logSDPExchange(k,"offer","local","send");return oe==null||oe(ce),yield ri(C.setRemoteDescription({type:"answer",sdp:ce})),y.map((le,pe)=>{let Se=b[pe];return{localSSRC:K[pe],id:Se}})}catch(y){throw y instanceof nt?y:new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(y.toString()))}finally{m()}})()}async stopSending(A,l){let g=l?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let C=this.peerConnection.getTransceivers().filter(b=>A.indexOf(b.mid)!==-1);if(C.length!==A.length)throw new Error("Transceivers' length (".concat(C.length,") doesn't match mids' length (").concat(A.length,") when trying to call P2PConnection.stopSending."));C.map(b=>{var M;b.direction="inactive",(M=b.stop)===null||M===void 0||M.call(b)});let m=await this.peerConnection.createOffer(),y=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(A);let w=this.remoteSDP.toString();y==null||y(w),await this.setRemoteDescription({type:"answer",sdp:w})}catch(C){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(C.toString()))}finally{g&&g()}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);if(y){let b=this.remoteSDP.toString(),M=this.logSDPExchange(b,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:b});let k=await this.peerConnection.createAnswer(),V=this.mungReceiveAnswerSDP(k.sdp,m,A);M==null||M(V||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:V}),X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," by exchanging SDP."))}else X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," no need to exchange SDP."));let w=this.peerConnection.getTransceivers().find(b=>b.mid===m);if(!w||w.mid===null)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,mid:w.mid,transceiver:w}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async mockReceive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);if(y){let w=this.remoteSDP.toString(),b=this.logSDPExchange(w,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:w});let M=await this.peerConnection.createAnswer(),k=this.mungReceiveAnswerSDP(M.sdp,m,A);b==null||b(k||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:k}),X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," by exchanging SDP."))}else X.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(A," no need to exchange SDP."))}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","stopReceiving");await this.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}async restartICE(A){try{if(this.store.p2pTransport===ih.Auto&&(this.store.p2pTransport=ih.SdRtn,Bi().supportPCSetConfiguration&&this.peerConnection.setConfiguration(gT.resolvePCConfiguration(this.spec,this.store.p2pTransport))),this.restartCnt>3&&(this.restartCnt=0,Bi().supportPCSetConfiguration&&this.peerConnection.setConfiguration(gT.resolvePCConfiguration(this.spec,this.store.p2pTransport,++this.curTurnServerIndex))),!A){this.restartCnt++,this.isReady=!1;let l=await this.peerConnection.createOffer({iceRestart:!0});if(!l.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let{iceParameters:g}=fl(l.sdp);return this.store.descriptionStart(),this.direction===uA.SEND_ONLY&&await this.peerConnection.setLocalDescription(l),g}if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");if(this.remoteSDP.restartICE(A),this.store.descriptionStart(),this.direction===uA.RECEIVE_ONLY){this.restartCnt++,await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()});let l=await this.peerConnection.createAnswer();if(!l.sdp)throw new Error("Cannot get answer sdp when trying to iceRestart.");let{iceParameters:g}=fl(l.sdp);return await this.peerConnection.setLocalDescription(l),g}await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()}),this.isReady=!0}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}close(){var A;this.peerConnection.close(),this.peerConnection.onicecandidate=null,(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.transport=void 0,this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l],[A]);this.remoteSDP.updateRecvMedia(A,l);let m=this.remoteSDP.toString(),y=this.logSDPExchange(C,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),y==null||y(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getTransceivers().filter(C=>C.mid===A);g.length===1&&(this.isVP8Simulcast(l)?uo()||await this.applySimulcastEncodings(g,[l]):await this.applySendEncodings(g,[l]))}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getTransceivers().find(C=>C.mid===l);g&&await g.sender.replaceTrack(A._mediaStreamTrack)}async getSelectedCandidatePair(){let A=this.peerConnection.getReceivers();if(A.length>0&&A[0].transport&&A[0].transport.iceTransport&&A[0].transport.iceTransport.getSelectedCandidatePair&&A[0].transport.iceTransport.getSelectedCandidatePair()){let l=A[0].transport.iceTransport,{local:g,remote:C}=l.getSelectedCandidatePair();return{local:eE(eE({},cl),{},{candidateType:g.type,protocol:g.protocol,address:g.address,port:g.port}),remote:eE(eE({},cl),{},{candidateType:C.type,protocol:C.protocol,address:C.address,port:C.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A,l;Rt(A=["connected","completed"]).call(A,this.peerConnection.iceConnectionState)&&(this.isReady=!1),(l=this.onICEConnectionStateChange)===null||l===void 0||l.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;this.peerConnection.connectionState==="connected"&&(this.restartCnt=0),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.startICECandidate()}startICECandidate(){this.peerConnection.onicecandidate||(this.localCandidateCount=0,this.peerConnection.onicecandidate=A=>{if(A.candidate){var l;A.candidate.candidate&&((l=this.onLocalCandidate)===null||l===void 0||l.call(this,A.candidate.toJSON())),this.localCandidateCount+=1}else X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount)})}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A,l){let g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,C={iceServers:[]};var m;return A.iceServers?C.iceServers=A.iceServers:A.turnServer&&A.turnServer.mode!=="off"&&(eh(A.turnServer.servers)?C.iceServers=A.turnServer.servers:(C.iceServers&&C.iceServers.push(...gT.turnServerConfigToIceServers(A.turnServer.servers,l,g)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&C.iceServers&&A.turnServer.serversFromGateway&&C.iceServers.push(...gT.turnServerConfigToIceServers(A.turnServer.serversFromGateway,l,g)),Rt(m=[ih.Relay,ih.SdRtn]).call(m,l)&&(C.iceTransportPolicy="relay"),Ie("FORCE_TURN_TCP")?C.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(y=>{y.forceturn&&(C.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(C.encodedInsertableStreams=!0),X.debug("P2PConnection p2pTransport is ".concat(l)),C}static turnServerConfigToIceServers(A,l){let g=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,C=[],m=A.filter(w=>w.tcpport);X.debug("P2PConnection turnServers is ".concat(m,", current index is ").concat(g));let y=m.length>g?m[g]:m[0];switch(l){case ih.SdRtn:let w=A.filter(M=>{var k;return Rt(k=M.username).call(k,"glb:")&&M.turnServerURL==M.turnServerURL}),b=w.length>g?w[g]:w[0];b&&(C.push({username:b.username,credential:b.password,credentialType:"password",urls:"turn:".concat(ed(b.turnServerURL),":").concat(b.tcpport,"?transport=udp")}),C.push({username:b.username,credential:b.password,credentialType:"password",urls:"turns:".concat(ed(b.turnServerURL),":").concat(b.tcpport,"?transport=tcp")}));break;case ih.Relay:y&&(C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turn:".concat(y.turnServerURL,":").concat(y.tcpport,"?transport=udp")}),C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turns:".concat(ed(y.turnServerURL),":").concat(y.tcpport,"?transport=tcp")}));break;default:y&&(C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turn:".concat(y.turnServerURL,":").concat(y.tcpport,"?transport=udp")}),C.push({username:y.username,credential:y.password,credentialType:"password",urls:"turns:".concat(ed(y.turnServerURL),":").concat(y.tcpport,"?transport=tcp")}),C.push({username:y.username,credential:y.password,credentialType:"password",urls:"stun:".concat(y.turnServerURL,":").concat(y.tcpport)}))}return C}tryBindTransportEvents(A){if(A){this.transport=A,A.onstatechange=()=>{var g;A!=null&&A.state&&((g=this.onDTLSTransportStateChange)===null||g===void 0||g.call(this,A.state))},A.onerror=g=>{var C;(C=this.onDTLSTransportError)===null||C===void 0||C.call(this,"error"in g?g.error:g)};let l=A.iceTransport;l&&(l.onstatechange=()=>{let g=A==null?void 0:A.iceTransport.state;var C;g&&((C=this.onICETransportStateChange)===null||C===void 0||C.call(this,g))},l.getSelectedCandidatePair&&(l.onselectedcandidatepairchange=()=>{if(l.getSelectedCandidatePair()){let{local:g,remote:C}=l.getSelectedCandidatePair()||{};if(g&&C){let m=g.address+":"+g.port,y=C.address+":"+C.port;X.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Pt(m)),", remote ").concat(JSON.stringify(Pt(y))))}}}))}}tryUnbindTransportEvents(){this.transport&&(this.transport.onstatechange=null,this.transport.onerror=null,this.transport.iceTransport&&(this.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(A,l){var g;if(l||(l=this.peerConnection.getSenders().find(k=>k.track===A._mediaStreamTrack)),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(A))return X.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Bi().supportSetRtpSenderParameters)return X.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let C={},m={};switch(A._optimizationMode){case"motion":C.degradationPreference="maintain-framerate";break;case"detail":C.degradationPreference="maintain-resolution";break;default:C.degradationPreference="balanced"}if(A._encoderConfig){var y;let{bitrateMax:k,frameRate:V,scaleResolutionDownBy:K}=A._encoderConfig;k&&(m.maxBitrate=1e3*k),Rt(y=A._hints).call(y,$i.LOW_STREAM)&&(V&&(m.maxFramerate=ZA(V)),K&&K>=1&&(m.scaleResolutionDownBy=K))}if(Ie("DSCP_TYPE")&&Od()){var w;let k=Ie("DSCP_TYPE");Rt(w=["very-low","low","medium","high"]).call(w,k)&&(m.networkPriority=k)}let b=l.getParameters(),M=(g=b.encodings)===null||g===void 0?void 0:g[0];uo()&&!M&&(C.encodings=[m]),M&&Object.assign(M,m),Object.assign(b,C),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(b.encodings))),await l.setParameters(b)}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let w=g[y],b=C.mediaDescriptions.find(M=>M.attributes.mid===w);b&&(kg(b,m),Fy(b,m,this.store.codec))}),ea(C)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onFirstVideoDecodedTimeout=A=>{var l;(l=this.onFirstVideoDecodedTimeout)===null||l===void 0||l.call(this,A)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(A,l){if(A.length===l.length)for(let b=0;b200&&(y=k._scalabilityMode)!==null&&y!==void 0&&y.numSpatialLayers&&((w=k._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let V={},K={high:1e3*(k._encoderConfig.bitrateMax-50),medium:5e4};V.encodings=[{rid:"m",active:!0,maxBitrate:K.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:K.high}];let q=M.sender.getParameters();await M.sender.setParameters(Object.assign(q,V))}}}async applySimulcastEncodings(A,l){if(!uo()&&A.length===l.length)for(let g=0;g200&&(m=A._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((y=A._scalabilityMode)===null||y===void 0?void 0:y.numSpatialLayers)>1)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("[".concat(this.store.clientId,"] exchanging ").concat(g," ").concat(l," SDP during P2PConnection.").concat(C,` -`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(y=>{y.direction="inactive"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.muteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(async y=>{y.direction="sendonly"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.unmuteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(l.toString()))}}async getRemoteSSRC(A,l){var g;if(l=l??((g=this.currentRemoteDescription)===null||g===void 0?void 0:g.sdp)){var C;let m=(C=ki(l).mediaDescriptions.find(y=>y.attributes.mid===A))===null||C===void 0?void 0:C.attributes.ssrcs;return m==null?void 0:m[0].ssrcId}}async setRemoteDescription(A){var l;await this.peerConnection.setRemoteDescription(A),Rt(l=["connected","completed"]).call(l,this.peerConnection.iceConnectionState)||(this.isReady=!0,this.addRemoteCandidate())}mungReceiveAnswerSDP(A,l,g){let C=ki(A),m=C.mediaDescriptions.find(y=>y.attributes.mid===l);return m&&g===$t.AUDIO&&m.media.mediaType==="audio"&&No(m),ea(C)}},Vt(xn.prototype,"establish",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"establish"),xn.prototype),Vt(xn.prototype,"connect",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"connect"),xn.prototype),Vt(xn.prototype,"receive",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"receive"),xn.prototype),Vt(xn.prototype,"mockReceive",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"mockReceive"),xn.prototype),Vt(xn.prototype,"stopReceiving",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"stopReceiving"),xn.prototype),Vt(xn.prototype,"restartICE",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"restartICE"),xn.prototype),Vt(xn.prototype,"close",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"close"),xn.prototype),Vt(xn.prototype,"updateEncoderConfig",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"updateEncoderConfig"),xn.prototype),Vt(xn.prototype,"updateSendParameters",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"updateSendParameters"),xn.prototype),Vt(xn.prototype,"replaceTrack",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"replaceTrack"),xn.prototype),Vt(xn.prototype,"muteLocal",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"muteLocal"),xn.prototype),Vt(xn.prototype,"unmuteLocal",[ld],Object.getOwnPropertyDescriptor(xn.prototype,"unmuteLocal"),xn.prototype),xn);function ld(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From P2PConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleMuteLocalTrack");try{if(!this.sendConnection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established."));let b=this.filterTobeMutedTracks(l);if(b.length===0)return void g();let M=b.find(q=>q[0]==="videoLowTrack");M&&M[1].track._originMediaStreamTrack.stop(),await this.sendConnection.muteLocal(b.map(q=>{let[,{id:ce}]=q;return ce}));let k=!1;var y,w;l.trackMediaType==="video"?k=!((y=this.localTrackMap.get(St.LocalAudioTrack))===null||y===void 0||!y.track._muted):k=((w=this.localTrackMap.get(St.LocalVideoTrack))===null||w===void 0?void 0:w.id)===void 0;let V=this.createMuteMessage(b);await Wn(this,hr.RequestMuteLocal,V);let K=l.trackMediaType==="video"?Vd.MUTE_LOCAL_VIDEO:Vd.MUTE_LOCAL_AUDIO;await Wn(this,hr.RequestP2PMuteLocal,{action:K,message:V,isMuteAll:k}),g()}catch(b){C(b)}finally{m()}}),Ae(this,"handleUnmuteLocalTrack",async(l,g,C)=>{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleUnmuteLocalTrack");try{if(!this.sendConnection||this.state!==An.Connected)return void C(new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleUnmuteLocalTrack before sendConnection established."));let y=this.filterTobeUnmutedTracks(l);if(y.length===0)return void g();await this.sendConnection.unmuteLocal(y.map(M=>{let[,{id:k}]=M;return k}));let w=this.createUnmuteMessage(y),b=l.trackMediaType==="video"?Vd.UNMUTE_LOCAL_VIDEO:Vd.UNMUTE_LOCAL_AUDIO;await Wn(this,hr.RequestP2PMuteLocal,{action:b,message:w}),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleUpdateVideoEncoder",async(l,g,C,m)=>{let y;typeof m=="boolean"&&m||(y=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoEncoder"));try{let b=this.localTrackMap.get(St.LocalVideoTrack);if(!this.sendConnection||!b||b.track!==l||this.state!==An.Connected)return void g();let{id:M,track:k}=b;M&&(await this.sendConnection.updateSendParameters(M,k),await this.sendConnection.updateEncoderConfig(M,k),this.emit(hr.UpdateVideoEncoder,k)),g()}catch(b){C(b)}finally{var w;(w=y)===null||w===void 0||w()}}),Ae(this,"handleUpdateVideoSendParameters",async(l,g,C)=>{let m=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoSendParameters");try{let y=this.localTrackMap.get(St.LocalVideoTrack);if(!this.sendConnection||!y||y.track!==l||this.state!==An.Connected)return void g();let{id:w,track:b}=y;w&&await this.sendConnection.updateSendParameters(w,b),g()}catch(y){C(y)}finally{m()}}),Ae(this,"handleReplaceTrack",async(l,g,C,m)=>{let y;X.debug("[".concat(this.store.clientId,"] P2PChannel2 handleReplaceTrack for [track-id-").concat(l.getTrackId(),"]")),typeof m=="boolean"&&m||(y=await this.sendMutex.lock("From P2PChannel2.handleReplaceTrack"));try{var w;let M=Array.from(this.localTrackMap.entries()).find(k=>{let[,{track:V}]=k;return l===V});if(!this.sendConnection||!M||M[1].id===void 0||this.state!==An.Connected)return void g();if(await((w=this.sendConnection)===null||w===void 0?void 0:w.replaceTrack(l,M[1].id)),M[0]===St.LocalVideoTrack&&Bi().supportDualStreamEncoding){let k=this.localTrackMap.get(St.LocalVideoLowTrack);if(k){let V=l._mediaStreamTrack.clone();k.track._originMediaStreamTrack.stop(),k.track._mediaStreamTrack=V,k.track._originMediaStreamTrack=V,await new Ft((K,q)=>{this.handleReplaceTrack(k.track,K,q,!0)})}}g()}catch(M){C(M)}finally{var b;(b=y)===null||b===void 0||b()}}),Ae(this,"handleGetLocalVideoStats",l=>{l(this.statsCollector.getLocalVideoTrackStats())}),Ae(this,"handleGetLocalAudioStats",l=>{l(this.statsCollector.getLocalAudioTrackStats())}),Ae(this,"handleGetRemoteVideoStats",l=>this.statsCollector.getRemoteVideoTrackStats(l.uid)[l.uid]),Ae(this,"handleGetRemoteAudioStats",l=>this.statsCollector.getRemoteAudioTrackStats(l.uid)[l.uid]),this.store=a,this.statsCollector=A,this.statsCollector.addP2PChannel(this),this.statsUploader=new p7(a),this.bindStatsUploaderEvents(),this.sendMutex=new Is("P2PChannel2-send-mutex",a.clientId),this.recvMutex=new Is("P2PChannel2-recv-mutex",a.clientId),this.reconnectInterval=window.setInterval(()=>{[this.sendConnection,this.recvConnection].forEach(l=>{l&&(l.iceConnectionState!=="disconnected"&&l.iceConnectionState!=="failed"||this.handleDisconnect(l.direction))})},Ie("ICE_RESTART_INTERVAL"))}async startP2PConnection(a,A){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support startP2PConnection.")}async connect(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support connect.")}async startP2P(a,A){let l;try{if(A){this.recvConnection&&(X.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset recvConnection.")),this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection)),l=await this.recvMutex.lock("From P2PChannel.startP2P"),this.recvConnection=new xQ(a,this.store,uA.RECEIVE_ONLY),this.bindConnectionEvents(this.recvConnection);let g=await this.recvConnection.establish(A);return{iceParameters:g.iceParameters,dtlsParameters:g.dtlsParameters,sdp:g.sdp}}{this.state=An.New,this.sendConnection&&(X.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset sendConnection.")),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection)),l=await this.sendMutex.lock("From P2PChannel.startP2P"),this.sendConnection=new xQ(a,this.store),this.store.peerConnectionStart(),this.bindConnectionEvents(this.sendConnection);let g=await this.sendConnection.establish();return{iceParameters:g.iceParameters,dtlsParameters:g.dtlsParameters,sdp:g.sdp}}}finally{l&&l()}}async p2pConnect(a){if(!this.sendConnection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel2.p2pConnect before P2PChannel2.startP2PConnection .");this.store.peerConnectionStart(),await this.sendConnection.connect(a),this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=An.Connected}async addRemoteCandidate(a,A){if(A===uA.RECEIVE_ONLY){if(!this.sendConnection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.sendConnection.addRemoteCandidate(a)}else{if(!this.recvConnection)throw new nt(fe.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.recvConnection.addRemoteCandidate(a)}}publish(a,A,l){var g=this;return wA(function*(){let C=yield ri(g.sendMutex.lock("From P2PChannel.publish"));try{if(!g.sendConnection||g.state!==An.Connected){g.throwIfTrackTypeNotMatch(a);let M=a.filter(k=>g.pendingLocalTracks.indexOf(k)===-1);return void(g.pendingLocalTracks=g.pendingLocalTracks.concat(M))}g.store.pubId=g.store.pubId+1,aa.markPublishStart(g.store.clientId,g.store.pubId);let m=g.filterTobePublishedTracks(a,A,l);if(m.length===0)return void(yield ri(g.tryToUnmuteAudio(a)));m.forEach(M=>{let{track:k,type:V}=M,K=Date.now();g.store.publish(k.getTrackId(),V===St.LocalAudioTrack?"audio":"video",K)}),g.bindLocalTrackEvents(m);let y=yield ri(g.sendConnection.send(m.map(M=>{let{track:k}=M;return k}),g.store.codec,g.store.audioCodec)),w=(yield ri(y.next())).value,b=g.createGatewayPublishMessage(m,w);try{yield b}catch(M){throw y.throw(M),(M==null?void 0:M.code)===fe.WS_ABORT&&m.forEach(k=>{let{track:V}=k;g.pendingLocalTracks.indexOf(V)===-1&&g.pendingLocalTracks.push(V)}),g.unbindLocalTrackEvents(m),M}yield ri(y.next()),m.forEach(M=>{let{type:k}=M;g.statsCollector.addLocalStats(k)}),g.statsUploader.startUploadOutboundStats(),g.assignLocalTracks(m,w),m.forEach(M=>{let{track:k,type:V}=M,K=Date.now();g.store.publish(k.getTrackId(),V===St.LocalAudioTrack?"audio":"video",void 0,K)}),g.startUploadUplinkState()}finally{C()}})()}async unpublish(a){if(!this.sendConnection||this.state!==An.Connected)return void(a.length===0?this.pendingLocalTracks.length=0:this.pendingLocalTracks=this.pendingLocalTracks.filter(C=>!Rt(a).call(a,C)));let A=this.filterTobeUnpublishedTracks(a);if(A.length===0)return;let l=A.find(C=>C[0]==="videoLowTrack");l&&l[1].track.close();let g=this.createGatewayUnpublishMessage(A);if(await this.sendConnection.stopSending(A.map(C=>{let[,{id:m}]=C;return m})),this.withdrawLocalTracks(A),this.unbindLocalTrackEvents(A.map(C=>{let[m,{track:y}]=C;return{type:m,track:y}})),A.forEach(C=>{let[m]=C;this.statsCollector.removeLocalStats(m)}),this.localTrackMap.size===0&&(this.statsUploader.stopUploadOutboundStats(),this.stopUploadUplinkState()),this.sendConnection&&this.state===An.Connected)return l&&l[1].track.close(),g;a.forEach(C=>{let m=this.pendingLocalTracks.indexOf(C);m!==-1&&this.pendingLocalTracks.splice(m,1)})}startUploadUplinkState(){if(this.uploadUnplinkStarted)return;this.uploadUnplinkStarted=!0,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval);let a=()=>{let A=[],l=[];Array.from(this.localTrackMap.entries()).forEach(g=>{let[C,{track:m,ssrcs:y}]=g,w={stream_type:$J(m,C),ssrcs:y};m._muted||!m._enabled?A.push(w):l.push(w)}),A.length>0&&A.forEach(g=>{Wn(this,hr.RequestMuteLocal,[g])}),l.length>0&&l.forEach(g=>{Wn(this,hr.RequestUnmuteLocal,[g])})};a(),this.uplinkStateUploadInterval=window.setInterval(()=>{a()},3e3)}stopUploadUplinkState(){this.uploadUnplinkStarted&&(this.uploadUnplinkStarted=!1,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval))}publishLowStream(a){return wA(function*(){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support publishLowStream.")})()}async republish(){this.pendingLocalTracks.length>0&&(X.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await rs(this,hr.RequestRePublish,this.pendingLocalTracks),this.emit(hr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[])}async unpublishLowStream(){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support unpublishLowStream.")}async subscribe(a,A,l,g){var C;if(!this.recvConnection)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");if((C=this.remoteUserMap.get(a))!==null&&C!==void 0&&C.has(A))return;let{track:m,mid:y,transceiver:w}=await this.recvConnection.receive(A,[{ssrcId:l}],String(a.uid),g);A===$t.AUDIO?(a._audioTrack?a._audioTrack._updateOriginMediaStreamTrack(m):(a._audioTrack=new Og(m,a.uid,a._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(a._audioTrack.getTrackId()))),w&&a._audioTrack._updateRtpTransceiver(w),this.bindRemoteTrackEvents(a,a._audioTrack)):(a._videoSSRC=l,a._videoTrack?a._videoTrack._updateOriginMediaStreamTrack(m):(a._videoTrack=new D2(m,a.uid,a._uintid,this.store),X.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(a._videoTrack.getTrackId()))),w&&a._videoTrack._updateRtpTransceiver(w),this.bindRemoteTrackEvents(a,a._videoTrack));let b=this.remoteUserMap.get(a);b?b.set(A,y):this.remoteUserMap.set(a,new Map([[A,y]])),this.statsCollector.addRemoteStats(a.uid),this.statsUploader.startUploadInboundStats(),this.startUploadDownlinkState();let M=this.pendingRemoteTracks.findIndex(k=>{let{user:V,kind:K}=k;return V.uid===a.uid&&A===K});M!==-1&&(this.pendingRemoteTracks.splice(M,1),this.emit(hr.MediaReconnectEnd,a.uid))}async mockSubscribe(a,A,l,g){if(!this.recvConnection)throw new nt(fe.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");await this.recvConnection.mockReceive(A,[{ssrcId:l}],String(a.uid),g)}async unsubscribe(a,A,l){let g=this.pendingRemoteTracks.filter(m=>{let{user:y,kind:w}=m;return A!==void 0?y.uid===a.uid&&A===w:y.uid===a.uid});if(g.forEach(m=>{let y=this.pendingRemoteTracks.indexOf(m);this.pendingRemoteTracks.splice(y,1)}),this.recvConnection||l||g.forEach(m=>{let{kind:y}=m;var w;if(y===$t.AUDIO)(w=a._audioTrack)===null||w===void 0||w._destroy(),a._audioTrack=void 0;else if(y===$t.VIDEO){var b;(b=a._videoTrack)===null||b===void 0||b._destroy(),a._videoTrack=void 0}}),!this.recvConnection)return;let C=this.filterTobeUnSubscribedTracks(a,A);C.length!==0&&(await this.recvConnection.stopReceiving(C.map(m=>{let[,{id:y}]=m;return y})),this.withdrawRemoteTracks(C),this.remoteUserMap.size===0&&(this.statsUploader.stopUploadInboundStats(),this.stopUploadDownlinkState()),C.forEach(m=>{let[y,{kind:w}]=m;var b,M;if(w===$t.VIDEO&&y._videoSSRC&&((b=this.recvConnection)===null||b===void 0||b.setStatsRemoteVideoIsReady(y._videoSSRC,!1)),w===$t.VIDEO)this.unbindRemoteTrackEvents(y._videoTrack),l||((M=y._videoTrack)===null||M===void 0||M._destroy(),y._videoTrack=void 0);else if(w===$t.AUDIO){var k;this.unbindRemoteTrackEvents(y._audioTrack),!l&&((k=y._audioTrack)===null||k===void 0||k._destroy(),y._audioTrack=void 0)}}),C.forEach(m=>{let[,{kind:y}]=m;Wn(this,hr.RequestP2PMuteRemote,y)}))}startUploadDownlinkState(){if(this.uploadDownlinkStarted)return;this.uploadDownlinkStarted=!0,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval);let a=()=>Array.from(this.remoteUserMap.entries()).forEach(A=>{let[,l]=A;[$t.VIDEO,$t.AUDIO].forEach(g=>{l.has(g)?Wn(this,hr.RequestP2PUnmuteRemote,g):Wn(this,hr.RequestP2PMuteRemote,g)})});a(),this.downlinkStatsUploadInterval=window.setInterval(()=>{a()},3e3)}stopUploadDownlinkState(){this.uploadDownlinkStarted&&(this.uploadDownlinkStarted=!1,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval))}getAllDataChannels(){return this.localDataChannels}async massSubscribe(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massSubscribe.")}async massSubscribeNoLock(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massSubscribeNoLock.")}async massUnsubscribe(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massUnsubscribe.")}async massUnsubscribeNoLock(a){throw new nt(fe.NOT_SUPPORTED,"p2p mode does not support massUnsubscribeNoLock.")}async muteRemote(a,A){if(!this.recvConnection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(a.uid,"."));if(!l.get(A))return void X.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."));let g=A===$t.VIDEO?a._videoSSRC:a._audioSSRC;g!==void 0&&this.recvConnection.setStatsRemoteVideoIsReady(g,!1)}async unmuteRemote(a,A){return this.unmuteRemoteNoLock(a,A)}async unmuteRemoteNoLock(a,A){if(!this.recvConnection)return;let l=this.remoteUserMap.get(a);if(!l)return void X.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(a.uid,"."));l.get(A)||X.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(a.uid," media type ").concat(A,"."))}getAllTracks(a){let A=this.localTrackMap.get(St.LocalAudioTrack);if((A==null?void 0:A.track)instanceof Os){let l=A.track;return Array.from(this.localTrackMap.entries()).filter(g=>{let[C]=g;return C!==St.LocalAudioTrack}).filter(g=>{let[C]=g;return!(a&&C===St.LocalVideoLowTrack)}).map(g=>{let[,{track:C}]=g;return C}).concat(l.trackList)}return Array.from(this.localTrackMap.entries()).filter(l=>{let[g]=l;return!(a&&g===St.LocalVideoLowTrack)}).map(l=>{let[,{track:g}]=l;return g})}reportPublishEvent(a,A,l,g,C){if(a){let y=this.localTrackMap.get(St.LocalAudioTrack),w=g?this.localTrackMap.get(St.LocalVideoLowTrack):this.localTrackMap.get(St.LocalVideoTrack);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.track.getTrackLabel(),videoName:w==null?void 0:w.track.getTrackLabel(),screenshare:(w==null?void 0:w.track._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}else{var m;l||(l=[]);let y=l.find(b=>b instanceof xt),w=g?(m=this.localTrackMap.get(St.LocalVideoTrack))===null||m===void 0?void 0:m.track:l.find(b=>b instanceof Pi);tr.publish(this.store.sessionId,{eventElapse:aa.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:a,ec:A,audioName:y==null?void 0:y.getTrackLabel(),videoName:w==null?void 0:w.getTrackLabel(),screenshare:(w==null?void 0:w._hints.indexOf($i.SCREEN_TRACK))!==-1,audio:!!y,video:!!w,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:C})}}reportSubscribeEvent(a,A,l,g){let C=g===$t.VIDEO?l._videoSSRC:l._audioSSRC;C&&tr.subscribe(this.store.sessionId,{succ:a,ec:A,video:g===$t.VIDEO,audio:g===$t.AUDIO,peerid:l.uid,subscribeRequestid:g===$t.VIDEO?l._videoSSRC:l._audioSSRC,p2pid:this.store.p2pId,eventElapse:aa.measureFromSubscribeStart(this.store.clientId,C)})}reset(){X.debug("[".concat(this.store.clientId,"] P2PChannel2.reset")),this.sendMutex=new Is("P2PChannel2-send-mutex",this.store.clientId),this.sendMutex=new Is("P2PChannel2-recv-mutex",this.store.clientId),this.sendConnection&&(this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0),this.recvConnection&&(this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();let a=this.localTrackMap.get(St.LocalAudioTrack);if((a==null?void 0:a.track)instanceof Os){if(a.track.trackList.length>0){let A=a.track;a.track.trackList.forEach(l=>{A.removeAudioTrack(l)})}a.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.reconnectInterval&&(window.clearInterval(this.reconnectInterval),this.reconnectInterval=void 0),this.state=An.Disconnected}getStats(a){var A,l;return a?(l=this.recvConnection)===null||l===void 0?void 0:l.getStats():(A=this.sendConnection)===null||A===void 0?void 0:A.getStats()}getRemoteVideoIsReady(a){var A;return((A=this.recvConnection)===null||A===void 0?void 0:A.getRemoteVideoIsReady(a))||!1}getLocalAudioVolume(){let a=this.localTrackMap.get(St.LocalAudioTrack);if(a)return a.track.getVolumeLevel()}getLocalVideoSize(){let a=this.localTrackMap.get(St.LocalVideoTrack);if(a)return{width:a.track.videoWidth||0,height:a.track.videoHeight||0}}getEncoderConfig(a){let A=this.localTrackMap.get(a);return A&&A.track instanceof Pi||A&&A.track instanceof xt?A.track._encoderConfig:void 0}getLocalMedia(a){return this.localTrackMap.get(a)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}async hasRemoteMediaWithLock(a,A){if(!a)return this.remoteUserMap.size>0;let l=this.remoteUserMap.get(a);return!!l&&(!A||l.has(A))}getRemoteMedia(a){var A;let l=Array.from(Hs(A=this.remoteUserMap).call(A)).find(g=>g.uid===a);return l?{audioTrack:l.audioTrack,audioSSRC:l._audioSSRC,videoTrack:l.videoTrack,videoSSRC:l._videoSSRC}:{}}getAudioLevels(){let a=Array.from(this.remoteUserMap.entries()).map(l=>{let[g]=l;return{uid:g.uid,level:g.audioTrack?100*g.audioTrack._source.getAccurateVolumeLevel():0}}),A=this.localTrackMap.get(St.LocalAudioTrack);return A&&a.push({level:100*A.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),a=LE(a).call(a,(l,g)=>l.level-g.level),a}async disconnectForReconnect(){this.sendConnection&&this.recvConnection&&(X.debug("[".concat(this.store.clientId,"] P2PChannel2.disconnectForReconnect closing P2PConnection")),this.state=An.Reconnecting,Ie("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A]=a;var l;A._videoTrack&&A._videoTrack._player&&((l=A._videoTrack._player.getVideoElement())===null||l===void 0||l.pause(),A._videoTrack._player.isKeepLastFrame=!0,A._videoTrack._originMediaStreamTrack.stop())}),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0,this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0,this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(a=>{var A;let[l,{track:g}]=a;switch(l){case St.LocalVideoTrack:Rt(A=g._hints).call(A,$i.LOW_STREAM)?g.close():this.pendingLocalTracks.push(g);break;case St.LocalAudioTrack:g instanceof Os?this.pendingLocalTracks=this.pendingLocalTracks.concat(g.trackList):this.pendingLocalTracks.push(g);case St.LocalVideoLowTrack:}}),this.emit(hr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;Array.from(Hs(l).call(l)).forEach(g=>{this.setPendingRemoteMedia(A,g)}),this.emit(hr.MediaReconnectStart,A.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),X.debug("[".concat(this.store.clientId,"] P2PChannel2 disconnected, waiting to reconnect.")))}hasPendingRemoteMedia(a,A){for(let l of this.pendingRemoteTracks){let{user:g,kind:C}=l;if((a instanceof xg?a.uid:a)===g.uid&&A===C)return!0}return!1}setPendingRemoteMedia(a,A){this.hasPendingRemoteMedia(a,A)||this.pendingRemoteTracks.push({user:a,kind:A})}async restartICE(a,A){let l,g;if(a===uA.SEND_ONLY){if(!this.sendConnection)throw new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established.");l=await this.sendMutex.lock("From P2PChannel.restartICE"),g=this.sendConnection}else{if(!this.recvConnection)throw new nt(fe.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before recvConnection established.");l=await this.recvMutex.lock("From P2PChannel.restartICE"),g=this.recvConnection}try{if(A){let C=await g.restartICE(A);return g.isInRestartIce=!1,C}{let C=await g.restartICE();if(C){let m=await rs(this,hr.RequestP2PRestartICE,{direction:uA.RECEIVE_ONLY,iceParameter:C});await g.restartICE(m),g.isInRestartIce=!1}}}finally{l()}}getUplinkNetworkQuality(){if(!this.sendConnection)return 0;let a=this.sendConnection.getStats(),A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalAudioTrack),g=a.videoSend.find(q=>{var ce;return q.ssrc===(A==null||(ce=A.ssrcs)===null||ce===void 0?void 0:ce[0].ssrcId)}),C=a.audioSend.find(q=>{var ce;return q.ssrc===(l==null||(ce=l.ssrcs)===null||ce===void 0?void 0:ce[0].ssrcId)});if(!g||!C)return 1;let m=JA(this,hr.NeedSignalRTT),y=g?g.rttMs:void 0,w=C?C.rttMs:void 0,b=y&&w?(y+w)/2:y||w,M=(b&&m?(b+m)/2:b||m)||0,k=100*a.sendPacketLossRate*.7/50+.3*M/1500,V=k<.17?1:k<.36?2:k<.59?3:k<.1?4:5,K=A==null?void 0:A.track;if(K&&K._encoderConfig&&K._hints.indexOf($i.SCREEN_TRACK)===-1){let q=K._encoderConfig.bitrateMax,ce=a.bitrate.actualEncoded;if(q&&ce){let oe=(1e3*q-ce)/(1e3*q);return AN[oe<.15?0:oe<.3?1:oe<.45?2:oe<.6?3:4][V]}}return V}getDownlinkNetworkQuality(){if(!this.recvConnection)return 0;let a=this.recvConnection.getStats(),A=0;return Array.from(this.remoteUserMap.entries()).forEach(l=>{let[g]=l,C=g._audioSSRC,m=g._videoSSRC,y=a.audioRecv.find(ce=>ce.ssrc===C),w=a.videoRecv.find(ce=>ce.ssrc===m);if(!y&&!w)return void(A+=1);let b=JA(this,hr.NeedSignalRTT),M=a.rtt,k=(M&&b?(M+b)/2:M||b)||0,V=y?y.jitterMs:void 0,K=a.recvPacketLossRate,q=.7*K*100/50+.3*k/1500;V&&(q=.6*K*100/50+.2*k/1500+.2*V/400),A+=q<.1?1:q<.17?2:q<.36?3:q<.59?4:5}),this.remoteUserMap.size>0?Math.round(A/this.remoteUserMap.size):A}async muteLocalTrack(a){return new Ft((A,l)=>{this.handleMuteLocalTrack(a,A,l)})}filterTobePublishedTracks(a,A,l){let g=[],C=Bi(),m=this.getAllTracks();a=ns(a=a.filter(b=>m.indexOf(b)===-1));let y=!1,w=!1;for(let b of a){if(b instanceof Pi&&(this.localTrackMap.has(St.LocalVideoTrack)||y?new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(g.push({track:b,type:St.LocalVideoTrack}),y=!0),A)){let M=this.getLowVideoTrack(b,l);g.push({track:M,type:St.LocalVideoLowTrack})}if(b instanceof xt){let M=this.localTrackMap.get(St.LocalAudioTrack);if(M){if(!(M.track instanceof Os))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(b._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");M.track.addAudioTrack(b),this.bindLocalAudioTrackEvents(b,!0)}else if(w){let k=g.find(V=>{let{type:K}=V;return K===St.LocalAudioTrack});if(!(k.track instanceof Os))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(b._bypassWebAudio)throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");k.track.addAudioTrack(b)}else{if(!C.webAudioMediaStreamDest||b instanceof Os||b._bypassWebAudio)g.push({track:b,type:St.LocalAudioTrack});else{let k=new Os;k.addAudioTrack(b),g.push({track:k,type:St.LocalAudioTrack})}w=!0}}}return g}filterTobeUnpublishedTracks(a){let A=[],l=this.getAllTracks();a=ns(a=a.filter(g=>l.indexOf(g)!==-1));for(let g of a){if(g instanceof xt){let C=this.localTrackMap.get(St.LocalAudioTrack);if(!C)continue;C.track instanceof Os?(C.track.removeAudioTrack(g),this.unbindLocalAudioTrackEvents(g),C.track.trackList.length===0&&(A.push([St.LocalAudioTrack,C]),C.track.close())):A.push([St.LocalAudioTrack,C])}if(g instanceof Pi){let C=this.localTrackMap.get(St.LocalVideoTrack);if(!C)continue;A.push([St.LocalVideoTrack,C]);let m=this.localTrackMap.get(St.LocalVideoLowTrack);m&&A.push([St.LocalVideoLowTrack,m])}}return A}bindLocalTrackEvents(a){a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.addListener(nr.GET_STATS,this.handleGetLocalVideoStats),l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.addListener(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.bindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(a,A){a instanceof Os?a.trackList.forEach(l=>{l.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),l.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.addListener(nr.GET_STATS,this.handleGetLocalAudioStats),a.addListener(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.addListener(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.addListener(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),A||a.addListener(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack))}unbindLocalTrackEvents(a){a||(a=Array.from(this.localTrackMap.entries()).map(A=>{let[l,{track:g}]=A;return{track:g,type:l}})),a.forEach(A=>{let{track:l,type:g}=A;switch(g){case St.LocalVideoTrack:l.off(nr.GET_STATS,this.handleGetLocalVideoStats),l.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),l.off(nr.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),l.off(nr.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),l.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),l.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),l.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case St.LocalAudioTrack:this.unbindLocalAudioTrackEvents(l);case St.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(a){a instanceof Os?a.trackList.forEach(A=>{A.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),A.off(nr.GET_STATS,this.handleGetLocalAudioStats),A.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),A.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(a.off(nr.GET_STATS,this.handleGetLocalAudioStats),a.off(nr.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),a.off(nr.NEED_REPLACE_TRACK,this.handleReplaceTrack),a.off(nr.NEED_MUTE_TRACK,this.handleMuteLocalTrack),a.off(nr.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(a,A){A instanceof D2&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteVideoStats(a))}),A instanceof Og&&A.addListener(nr.GET_STATS,l=>{l(this.handleGetRemoteAudioStats(a))})}unbindRemoteTrackEvents(a){a&&a.removeAllListeners(nr.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(a=>{let[A,l]=a;l.has($t.AUDIO)&&this.unbindRemoteTrackEvents(A._audioTrack),l.has($t.VIDEO)&&this.unbindRemoteTrackEvents(A._videoTrack)})}createGatewayPublishMessage(a,A){return a.map((l,g)=>{var C;let m,{track:y,type:w}=l;switch(w){case St.LocalAudioTrack:m=an.Audio;break;case St.LocalVideoTrack:m=Rt(C=y._hints).call(C,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:m=an.Low}return{kind:w===St.LocalAudioTrack?$t.AUDIO:$t.VIDEO,stream_type:m,mid:A[g].id,ssrcs:A[g].localSSRC,isMuted:y.muted||!y.enabled}})}createGatewayUnpublishMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}assignLocalTracks(a,A){a.forEach((l,g)=>{let{track:C,type:m}=l;this.localTrackMap.set(m,{track:C,id:A[g].id,ssrcs:A[g].localSSRC})})}withdrawLocalTracks(a){a.forEach(A=>{let[l]=A;this.localTrackMap.delete(l)})}bindConnectionEvents(a){a.onConnectionStateChange=async A=>{var l;X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: ").concat(a.name,".onConnectionStateChange(").concat(A,")")),this.emit(hr.PeerConnectionStateChange,A),A!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),A==="connected"&&(a.isInRestartIce=!1),Rt(l=this._restartStates).call(l,A)&&!a.isInRestartIce&&(A==="disconnected"&&await Ks(800),a.iceConnectionState!=="disconnected"&&a.iceConnectionState!=="failed"||this.handleDisconnect(a.direction))},a.onICEConnectionStateChange=A=>{A!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(A,")")),tr.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:A,tag:Gn.TRACER}).onSuccess(),this.emit(hr.IceConnectionStateChange,A)},a.onICETransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(A,")"))},a.onDTLSTransportStateChange=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(A,")"))},a.onDTLSTransportError=A=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(A,")"))},a.onFirstAudioDecoded=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(m=>m._audioSSRC===A);var C;g&&(this.store.subscribe(g.uid,"audio",void 0,void 0,void 0,Date.now()),(C=g.audioTrack)===null||C===void 0||C.emit(wc.FIRST_FRAME_DECODED),tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_DECODE,Eo.FIRST_AUDIO_DECODE,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId}))},a.onFirstAudioReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._audioSSRC===A);g&&tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_AUDIO_RECEIVED,Eo.FIRST_AUDIO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId})},a.onFirstVideoDecoded=(A,l,g)=>{this.reportVideoFirstFrameDecoded(A,l,g)},a.onFirstVideoReceived=A=>{var l;let g=Array.from(Hs(l=this.remoteUserMap).call(l)).find(C=>C._videoSSRC===A);g&&tr.firstRemoteFrame(this.store.sessionId,Cs.FIRST_VIDEO_RECEIVED,Eo.FIRST_VIDEO_RECEIVED,{peer:g._uintid,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,A),subscribeRequestid:A,p2pid:this.store.p2pId})},a.onSelectedLocalCandidateChanged=(A,l)=>{let g=A.candidateType==="relay",C=l.candidateType==="relay";l.candidateType!=="unknown"&&g===C||this.emit(hr.ConnectionTypeChange,g),X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onSelectedRemoteCandidateChanged=(A,l)=>{X.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(fh(l))," -> ").concat(JSON.stringify(fh(A)),")"))},a.onFirstVideoDecodedTimeout=A=>{this.reportVideoFirstFrameDecoded(A,void 0,void 0,!0)},a.onLocalCandidate=A=>{this.emit(hr.LocalCandidate,{candidate:A,direction:a.direction})}}unbindConnectionEvents(a){a.onConnectionStateChange=void 0,a.onICEConnectionStateChange=void 0,a.onICETransportStateChange=void 0,a.onDTLSTransportStateChange=void 0,a.onDTLSTransportError=void 0,a.onFirstAudioDecoded=void 0,a.onFirstAudioReceived=void 0,a.onFirstVideoDecoded=void 0,a.onFirstVideoReceived=void 0,a.onSelectedLocalCandidateChanged=void 0,a.onSelectedRemoteCandidateChanged=void 0,a.onFirstVideoDecodedTimeout=void 0,a.onLocalCandidate=void 0}async handleDisconnect(a){let A=a===uA.SEND_ONLY?this.sendConnection:this.recvConnection;A&&!A.isInRestartIce&&(A.isInRestartIce=!0,X.debug("[".concat(this.store.clientId,"] [P2PChannel-").concat(A.name,"] start use restartICE")),a===uA.SEND_ONLY?this.restartICE(a):rs(this,hr.RequestP2PRestartICE,{direction:uA.SEND_ONLY}))}filterTobeMutedTracks(a){let A=[];if(this.getAllTracks().indexOf(a)===-1)return A;let l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive||A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g&&(A.push(g),g[0]===St.LocalVideoTrack)){let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}return A}filterTobeUnmutedTracks(a){let A=[],l=this.localTrackMap.get(St.LocalAudioTrack);if(a instanceof xt&&(l==null?void 0:l.track)instanceof Os)return l.track.isActive&&A.push([St.LocalAudioTrack,l]),A;let g=Array.from(this.localTrackMap.entries()).find(C=>{let[,{track:m}]=C;return a===m});if(g)if(g[0]===St.LocalVideoTrack){A.push(g);let C=this.localTrackMap.get(St.LocalVideoLowTrack);C&&A.push([St.LocalVideoLowTrack,C])}else A.push(g);return A}createMuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}createUnmuteMessage(a){return a.map(A=>{var l;let g,[C,{track:m,ssrcs:y,id:w}]=A;switch(C){case St.LocalAudioTrack:g=an.Audio;break;case St.LocalVideoTrack:g=Rt(l=m._hints).call(l,$i.SCREEN_TRACK)?an.Screen:an.High;break;case St.LocalVideoLowTrack:g=an.Low}return{stream_type:g,ssrcs:y,mid:w}})}filterTobeUnSubscribedTracks(a,A){let l=[],g=this.remoteUserMap.get(a);if(!g)return l;if(A){let C=g.get(A);if(!C)return l;l.push([a,{kind:A,id:C}])}else Array.from(g.entries()).forEach(C=>{let[m,y]=C;l.push([a,{kind:m,id:y}])});return l}createUnsubscribeMessage(a){let A=[];return a.forEach(l=>{let[g,{kind:C,id:m}]=l;switch(C){case $t.VIDEO:return void(g._videoSSRC&&A.push({stream_type:$t.VIDEO,ssrcId:g._videoSSRC}));case $t.AUDIO:return void(g._audioSSRC&&A.push({stream_type:$t.AUDIO,ssrcId:g._audioSSRC}))}}),A}withdrawRemoteTracks(a){a.forEach(A=>{let[l,{kind:g}]=A,C=this.remoteUserMap.get(l);C&&(C.delete(g),Array.from(C.entries()).length===0&&this.remoteUserMap.delete(l))})}async updateBitrateLimit(a){let A=this.localTrackMap.get(St.LocalVideoTrack),l=this.localTrackMap.get(St.LocalVideoLowTrack);A&&(await A.track.setBitrateLimit(a.uplink),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(A.track,g,C,!0)})),l&&a.low_stream_uplink&&(await l.track.setBitrateLimit({max_bitrate:a.low_stream_uplink.bitrate,min_bitrate:a.low_stream_uplink.bitrate||0}),await new Ft((g,C)=>{this.handleUpdateVideoEncoder(l.track,g,C,!0)}))}isP2PDisconnected(){if(this.sendConnection&&this.recvConnection){let a=this.sendConnection.peerConnectionState,A=this.recvConnection.peerConnectionState;return a!=="connected"&&A!=="connected"}return!0}async tryToUnmuteAudio(a){for(let A=0;Athis.getStats(a),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()).filter(a=>{let[,{ssrcs:A}]=a;return!!A}),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=a=>{var A;return!((A=this.recvConnection)===null||A===void 0||!A.getRemoteVideoIsReady(a))},this.statsUploader.requestUpload=(a,A)=>this.emit(hr.RequestUpload,a,A),this.statsUploader.requestUploadStats=a=>this.emit(hr.RequestUploadStats,a),this.statsUploader.requestAllTracks=()=>this.getAllTracks()}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await Ks(Y1(this.dtlsFailedCount,os)),this.emit(hr.RequestReconnect)}async reconnectP2P(){}canPublishLowStream(){return this.localTrackMap.has(St.LocalVideoTrack)||this.pendingLocalTracks.some(a=>a instanceof Pi)}throwIfTrackTypeNotMatch(a){if(a.filter(A=>A instanceof Pi).length>1)throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(a.filter(A=>A instanceof xt).length>1&&(a.some(A=>A instanceof xt&&A._bypassWebAudio)||!Bi().webAudioMediaStreamDest))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(let A of a){if(A instanceof Pi&&this.pendingLocalTracks.some(l=>l instanceof Pi))throw new nt(fe.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(A instanceof xt&&this.pendingLocalTracks.some(l=>l instanceof xt)&&(!Bi().webAudioMediaStreamDest||A._bypassWebAudio||this.pendingLocalTracks.some(l=>l instanceof xt&&l._bypassWebAudio)))throw new nt(fe.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(a,A){let l=!Ie("DISABLE_DUAL_STREAM_USE_ENCODING")&&Bi().supportDualStreamEncoding,g=em(em({},{width:160,height:120,framerate:15,bitrate:50}),A),C;C=l?a._mediaStreamTrack.clone():PN(a,g);let m=yn(8,"track-low-"),y=new Pi(C,em(em({},l&&{scaleResolutionDownBy:pN(g,a)}),{},{frameRate:g.framerate,bitrateMax:g.bitrate,bitrateMin:g.bitrate}),void 0,void 0,m);return y.on(Wl.TRANSCEIVER_UPDATED,w=>{a._updateRtpTransceiver(w,bg.LOW_STREAM)}),y._hints.push($i.LOW_STREAM),a.addListener(nr.NEED_CLOSE,()=>{y.close()}),y}async globalLock(){return this.recvMutex.lock("From P2PChannel2.globalLock")}reportVideoFirstFrameDecoded(a,A,l,g){var C;let m=Array.from(Hs(C=this.remoteUserMap).call(C)).find(y=>y._videoSSRC===a);if(m){g||this.store.subscribe(m.uid,"video",void 0,void 0,void 0,void 0,Date.now());let y=this.store.keyMetrics,w=y.subscribe.find(b=>b.userId===m.uid&&b.type==="video");tr.firstRemoteVideoDecode(this.store.sessionId,Cs.FIRST_VIDEO_DECODE,Eo.FIRST_VIDEO_DECODE,{peer:m._uintid,videowidth:A,videoheight:l,subscribeElapse:aa.measureFromSubscribeStart(this.store.clientId,a),subscribeRequestid:a,p2pid:this.store.p2pId,apEnd:y.requestAPEnd||0,apStart:y.requestAPStart||0,joinGwEnd:y.joinGatewayEnd||0,joinGwStart:y.joinGatewayStart||0,pcEnd:y.peerConnectionEnd||0,pcStart:y.peerConnectionStart||0,subscriberEnd:(w==null?void 0:w.subscribeEnd)||0,subscriberStart:(w==null?void 0:w.subscribeStart)||0,videoAddNotify:(w==null?void 0:w.streamAdded)||0,state:g?1:0})}}async remoteMediaSsrcChanged(a,A,l){if(!this.recvConnection)return!1;let g=this.remoteUserMap.get(a);if(!g)return!1;let C=g.get(A);if(!C)return!1;let m=await this.recvConnection.getRemoteSSRC(C);return m!==void 0&&m!==l}isPreSubScribe(a){return!1}async publishDataChannel(a){throw new nt(fe.NOT_SUPPORTED)}async unpublishDataChannel(a){throw new nt(fe.NOT_SUPPORTED)}async subscribeDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}async unsubscribeDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}hasPendingRemoteDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}setPendingRemoteDataChannel(a,A){throw new nt(fe.NOT_SUPPORTED)}async preConnect(a){throw new nt(fe.NOT_SUPPORTED)}getEstablishParams(){throw new nt(fe.NOT_SUPPORTED)}async reSubscribe(a){throw new nt(fe.NOT_SUPPORTED)}reportVideoFirstFrameRender(a){}async updateVideoStreamParameter(a,A){throw new nt(fe.NOT_SUPPORTED)}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(a=>{let[A,{track:l}]=a;A===St.LocalVideoLowTrack?l._updateRtpTransceiver(void 0,bg.LOW_STREAM):l._updateRtpTransceiver(void 0)})}},Vt(Lo.prototype,"p2pConnect",[Px],Object.getOwnPropertyDescriptor(Lo.prototype,"p2pConnect"),Lo.prototype),Vt(Lo.prototype,"unpublish",[Ux],Object.getOwnPropertyDescriptor(Lo.prototype,"unpublish"),Lo.prototype),Vt(Lo.prototype,"unpublishLowStream",[xx],Object.getOwnPropertyDescriptor(Lo.prototype,"unpublishLowStream"),Lo.prototype),Vt(Lo.prototype,"subscribe",[XO],Object.getOwnPropertyDescriptor(Lo.prototype,"subscribe"),Lo.prototype),Vt(Lo.prototype,"mockSubscribe",[FQ],Object.getOwnPropertyDescriptor(Lo.prototype,"mockSubscribe"),Lo.prototype),Vt(Lo.prototype,"unsubscribe",[Fx],Object.getOwnPropertyDescriptor(Lo.prototype,"unsubscribe"),Lo.prototype),Vt(Lo.prototype,"muteRemote",[zO],Object.getOwnPropertyDescriptor(Lo.prototype,"muteRemote"),Lo.prototype),Vt(Lo.prototype,"unmuteRemote",[Gx],Object.getOwnPropertyDescriptor(Lo.prototype,"unmuteRemote"),Lo.prototype),Vt(Lo.prototype,"hasRemoteMediaWithLock",[Z_],Object.getOwnPropertyDescriptor(Lo.prototype,"hasRemoteMediaWithLock"),Lo.prototype),Vt(Lo.prototype,"disconnectForReconnect",[Vx],Object.getOwnPropertyDescriptor(Lo.prototype,"disconnectForReconnect"),Lo.prototype),Vt(Lo.prototype,"remoteMediaSsrcChanged",[Kx],Object.getOwnPropertyDescriptor(Lo.prototype,"remoteMediaSsrcChanged"),Lo.prototype),Lo);function Ql(a){return function(A,l,g){let C=A[l];if(typeof C!="function")throw new Error("Cannot use mutex on object property.");return g.value=async function(){for(var m=arguments.length,y=new Array(m),w=0;w{this.signal.connectionState===vi.CONNECTED&&this.check(),this.userMap.size===0?this.tokenInterval=window.setTimeout(g,1e3):this.tokenInterval=window.setTimeout(g,3*Ie("P2P_TOKEN_INTERVAL"))};g()}async send(A,l,g,C,m){var y;if(this.userMap.size===0)return;let w=Array.from(U1(y=this.userMap).call(y))[0].token;typeof l!="string"&&(l=JSON.stringify(l)),C=C??yn(6,""),m=m??this._sequence++;let b={_id:C,_type:A,_seq:m,_message:l,token:"".concat(this.token,"_").concat(w)};Ie("SHOW_P2P_LOG")&&X.debug("send message",b,"noNeedResponse : ".concat(g)),this.splitMessage(JSON.stringify(b)).forEach(k=>{this.signal.request(sr.DATA_STREAM,{payload:Md(this.encoder.encode(k))})});let M=new Ft((k,V)=>{let K=window.setTimeout(()=>{this.off("res-@".concat(C,"_ack"),q),this.off("res-@".concat(C),oe),this.off(_1.ABORT,ce),X.debug("[external-signal] request timeout, type: ".concat(A,", requestId: ").concat(C)),this.userMap.size===0?V(new nt(fe.INVALID_REMOTE_USER)):V(new nt(fe.TIMEOUT))},Ie("EXTERNAL_SIGNAL_REQUEST_TIMEOUT")),q=()=>{K&&window.clearTimeout(K),this.off(_1.ABORT,ce),g&&k()},ce=()=>{K&&window.clearTimeout(K),this.off("res-@".concat(C,"_ack"),q),this.off("res-@".concat(C),oe),V(new nt(fe.EXTERNAL_SIGNAL_ABORT,"type: ".concat(A,", requestId: ").concat(C)))};this.once(_1.ABORT,ce),this.once("res-@".concat(C,"_ack"),q);let oe=(pe,Se)=>{le=!0,K&&window.clearTimeout(K),this.off("res-@".concat(C,"_ack"),q),this.off(_1.ABORT,ce),pe==="success"?k(Se):V(new nt(fe.P2P_MESSAGE_FAILED,"request ".concat(A," failed, requestId: ").concat(C)))},le=!1;g||(this.once("res-@".concat(C),oe),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{le||X.warning("external_signal request timeout, type: ".concat(A,", requestId: ").concat(C,", ").concat(b))}))});try{return await M}catch(k){if(k.code===fe.TIMEOUT)return await this.send(A,l,g,C,m);throw k}}onMessage(A){var l;let{_uid:g}=A,C,m=this.userMap.get(g);if(m)C=m.splitMessageMap;else{if(this.userMap.size>0||!("_type"in A)||A._type!==Ro.CHECK)return;let{token:M}=A;C=new Map,m={uid:g,isStart:!0,token:M,splitMessageMap:C,nextExpectedSequenceNumber:0,receivedMessagesMap:new Map},this.userMap.set(g,m),this.signal.emit(Or.ON_USER_ONLINE,{uid:g}),this.handleUserOnline()}if("id"in A&&"total"in A){var y;let{id:M,total:k}=A,V=(y=C.get(M))!==null&&y!==void 0?y:[];if(V.push(A),C.has(M)||C.set(M,V),V.length!==k)return;{let K=LE(V).call(V,(q,ce)=>q.index-ce.index).map(q=>q.payload).join("");C.delete(M),(A=JSON.parse(K))._uid=g}}let{_type:w,token:b}=A;if(Rt(l=[Ro.ACK,Ro.CHECK]).call(l,w))return w===Ro.CHECK&&this.handleCheckToken(m,b),void this.receiveMessage(A);b==="".concat(m.token,"_").concat(this.token)?this.handleReceivedMessage(A):X.debug('Receive unexpected message", '.concat(b,", cur_token: ").concat(m.token,"_").concat(this.token),A)}check(){let A={_id:yn(6,""),token:this.token,_type:Ro.CHECK};Ie("SHOW_P2P_LOG")&&X.debug("send message",A),this.signal.request(sr.DATA_STREAM,{payload:Md(this.encoder.encode(JSON.stringify(A)))})}ack(A){let l={_id:A,_type:Ro.ACK,token:this.token};Ie("SHOW_P2P_LOG")&&X.debug("send message",l),this.signal.request(sr.DATA_STREAM,{payload:Md(this.encoder.encode(JSON.stringify(l)))})}response(A,l,g){this.send(Ro.RESPONSE,JSON.stringify({success:!g,message:l}),!0,A)}handleReceivedMessage(A){let l=()=>{this.userMap.forEach(M=>{let{receivedMessagesMap:k,nextExpectedSequenceNumber:V}=M;for(;k.has(V);){let K=k.get(V);k.delete(V),this.receiveMessage(K),M.nextExpectedSequenceNumber++}})};if(!A)return void l();let{_uid:g,_seq:C}=A,m=this.userMap.get(g),{receivedMessagesMap:y,isStart:w,nextExpectedSequenceNumber:b}=m;if(C{this.response(A._id,w)}).catch(()=>{this.response(A._id,void 0,!0)});break;case Ro.ACK:this.getListeners("res-@".concat(l,"_ack")).length>0&&this.emit("res-@".concat(l,"_ack"));break;case Ro.RESPONSE:{let{success:w,message:b}=y;this.emit("res-@".concat(l),w?"success":"failed",b);break}}}}splitMessage(A){if(A.length0;){m++;let b={id:C,index:m,total:w,payload:A.slice(0,y),token:"".concat(this.token,"_").concat(g)};JSON.stringify(b).length>Vh.MAX_MESSAGE_SIZE?y-=50:(l.push(b),A=A.slice(y))}return l.map(b=>JSON.stringify(b))}handleCheckToken(A,l){return A.token!==l?(X.debug("token changed, from ".concat(A.token," to ").concat(l)),this.reset(A.uid,l),!1):(this.tokenTimeout&&(window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0),this.tokenTimeout=window.setTimeout(()=>{X.debug("token timeout, ".concat(l)),this.reset(A.uid)},Ie("MAX_P2P_TIMEOUT")),!0)}async handleUserOnline(){let A=await rs(this.signal,Ro.CALL,void 0),l=await this.send(Ro.CALL,A);this.signal.emit(or.P2P_CONNECTION,l,!0)}async reset(A,l){let g=this.userMap.get(A);g&&(this.emit(_1.ABORT),this.signal.emit(Or.ON_USER_OFFLINE,{uid:g.uid,reason:Ny.P2P_TOKEN_CHANGED}),this._sequence=0,this.userMap.clear(),l||(X.debug("change local token from ".concat(l," to ").concat(l)),this.token=yn(6,"")))}clear(){this._sequence=0,this.userMap.clear(),this.tokenInterval&&window.clearTimeout(this.tokenInterval),this.tokenInterval=void 0,this.tokenTimeout&&window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0,this.emit(_1.ABORT)}}Ae(Vh,"MAX_SIZE",1),Ae(Vh,"MAX_MESSAGE_SIZE",1024);class sW extends io{get connectionState(){return this._connectionState}set connectionState(A){A!==this._connectionState&&(this._connectionState=A,A===vi.CONNECTED?this.emit(or.WS_CONNECTED):A===vi.RECONNECTING?this.emit(or.WS_RECONNECTING,this._websocketReconnectReason):A===vi.CLOSED&&this.emit(or.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(A,l){super(),Ae(this,"__name__","P2PSignal"),Ae(this,"_disconnectedReason",void 0),Ae(this,"_websocketReconnectReason",void 0),Ae(this,"_connectionState",vi.CLOSED),Ae(this,"reconnectToken",void 0),Ae(this,"p2pToken",void 0),Ae(this,"websocket",void 0),Ae(this,"openConnectionTime",void 0),Ae(this,"clientId",void 0),Ae(this,"lastMsgTime",Date.now()),Ae(this,"uploadCache",[]),Ae(this,"uploadCacheInterval",void 0),Ae(this,"rttRolling",new OR(5)),Ae(this,"pingpongTimer",void 0),Ae(this,"pingpongTimeoutCount",0),Ae(this,"joinResponse",void 0),Ae(this,"multiIpOption",void 0),Ae(this,"initError",void 0),Ae(this,"spec",void 0),Ae(this,"store",void 0),Ae(this,"_external_signal",void 0),Ae(this,"onWebsocketMessage",g=>{if(g.data instanceof ArrayBuffer)return void this.emit(or.ON_BINARY_DATA,g.data);let C=JSON.parse(g.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(C,"_id")){let m="res-@".concat(C._id);this.emit(m,C._result,C._message)}else if(Object.prototype.hasOwnProperty.call(C,"_type")){switch(C._type){case Or.ON_DATA_STREAM:return void this.handleDataStream(C._message);case Or.MUTE_AUDIO:case Or.MUTE_VIDEO:case Or.ON_P2P_LOST:case Or.ON_USER_ONLINE:return;case Or.ON_USER_OFFLINE:let{uid:m}=C._message;return X.debug("[".concat(this.clientId,"] user-offline uid: ").concat(m)),void this._external_signal.reset(m)}if(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED)switch(C._message.error_code){case 14:this.close(bi.UID_BANNED);break;case 15:this.close(bi.IP_BANNED);break;case 16:this.close(bi.CHANNEL_BANNED)}if(C._type===Or.ON_USER_LICENSE_BANNED)switch(C._message.error_code){case mr.ERR_LICENSE_MISSING:this.close(bi.LICENSE_MISSING);break;case mr.ERR_LICENSE_EXPIRED:this.close(bi.LICENSE_EXPIRED);break;case mr.ERR_LICENSE_MINUTES_EXCEEDED:this.close(bi.LICENSE_MINUTES_EXCEEDED);break;case mr.ERR_LICENSE_PERIOD_INVALID:this.close(bi.LICENSE_PERIOD_INVALID);break;case mr.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(bi.LICENSE_MULTIPLE_SDK_SERVICE);break;case mr.ERR_LICENSE_ILLEGAL:this.close(bi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=A.clientId,this.spec=A,this.store=l,this.websocket=new Lu("gateway-".concat(this.clientId),this.spec.retryConfig,!0,Ie("JOIN_GATEWAY_USE_DUAL_DOMAIN"),Ie("JOIN_GATEWAY_USE_443PORT_ONLY"),l),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===vi.CONNECTED&&this.reconnect("retry",xo.OFFLINE)}),this.p2pToken=yn(6,""),this._external_signal=new Vh(this,this.p2pToken)}async request(A,l,g,C){let m=yn(6,""),y={_id:m,_type:A,_message:l},w=this.websocket.connectionID,b=()=>new Ft((ce,oe)=>{if(this.connectionState===vi.CONNECTED)return ce();let le=()=>{this.off(or.WS_CLOSED,pe),ce()},pe=()=>{this.off(or.WS_CONNECTED,le),oe(new nt(fe.WS_ABORT))};this.once(or.WS_CONNECTED,le),this.once(or.WS_CLOSED,pe)});if(this.connectionState!==vi.CONNECTING&&this.connectionState!==vi.RECONNECTING||A===sr.JOIN||A===sr.REJOIN||await b(),this.websocket.sendMessage(y,!0),C)return;let M=new Ft((ce,oe)=>{let le=!1,pe=(be,Ue)=>{le=!0,ce({isSuccess:be==="success",message:Ue||{}}),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.emit(or.REQUEST_SUCCESS,A,l)};this.once("res-@".concat(m),pe);let Se=()=>{oe(new nt(fe.WS_ABORT,"type: ".concat(A))),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.off("res-@".concat(m),pe)};this.once(or.WS_CLOSED,Se),this.once(or.WS_RECONNECTING,Se),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||le||(X.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(A)),this.emit(or.REQUEST_TIMEOUT,A,l))})}),k=null;try{k=await M}catch(ce){if(this.connectionState===vi.CLOSED||A===sr.LEAVE)throw new nt(fe.WS_ABORT);return!this.spec.forceWaitGatewayResponse||g?ce.throw():A===sr.JOIN||A===sr.REJOIN?null:(await b(),await this.request(A,l))}if(k.isSuccess)return k.message;let V=Number(k.message.error_code||k.message.code),K=O2(V),q=new nt(fe.UNEXPECTED_RESPONSE,"".concat(K.desc,": ").concat(k.message.error_str),{code:V,data:k.message,desc:K.desc});return K.action==="success"?k.message:(X.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(A,", error_code: ").concat(V,", message: ").concat(K.desc,", action: ").concat(K.action)),V===mr.ERR_TOO_MANY_BROADCASTERS?((A===sr.JOIN||A===sr.REJOIN)&&(this.initError=q,this.close()),q.throw()):K.action==="failed"?q.throw():K.action==="quit"?(this.initError=q,this.close(),q.throw()):(V===mr.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=k.message.option,X.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",xo.MULTI_IP)):this.reconnect(K.action,xo.SERVER_ERROR),A===sr.JOIN||A===sr.REJOIN?null:await this.request(A,l)))}waitMessage(A,l){return new Ft(g=>{let C=m=>{(!l||l(m))&&(this.off(A,C),g(m))};this.on(A,C)})}uploadWRTCStats(A){if(!this.store.sessionId)return void X.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let l={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:A};this.upload(pn.WRTC_STATS,l)}upload(A,l){let g={_type:A,_message:l};try{this.websocket.sendMessage(g)}catch{let C=Ie("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(g),this.uploadCache.length>C&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==vi.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},Ie("UPLOAD_CACHE_INTERVAL")||2e3))}}send(A,l){let g={_type:A,_message:l};this.websocket.sendMessage(g)}async sendExtensionMessage(A,l,g){return await this._external_signal.send(A,l,g)}init(A){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ft((l,g)=>{this.once(or.WS_CONNECTED,()=>l(this.joinResponse)),this.once(or.WS_CLOSED,()=>g(this.initError||new nt(fe.WS_ABORT))),this.connectionState=vi.CONNECTING,this.websocket.init(A).catch(g)})}close(A){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._external_signal.clear(),this._disconnectedReason=A||bi.LEAVE,this.connectionState=vi.CLOSED,X.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close(),this.p2pToken=yn(6,""),this._external_signal.clear(),this._external_signal=new Vh(this,this.p2pToken)}async join(){if(!this.joinResponse){this.emit(or.ABORT_P2P_EXECUTION);let A=await rs(this,or.REQUEST_JOIN_INFO),l=await this.request(sr.JOIN,A);if(!l)return this.emit(or.REPORT_JOIN_GATEWAY,fe.TIMEOUT,this.url||""),!1;this.joinResponse=l,this.emit(or.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}reconnect(A,l){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(A,l)}async downgradeCodec(A){return!1}handleDataStream(A){try{var l;let g=th(A.payload),C=new TextDecoder().decode(g),m=JSON.parse(C);"total"in m&&"id"in m||Rt(l=Object.values(Ro)).call(l,m._type)?(m._uid=A.uid,this._external_signal.onMessage(m)):this.emit(Or.ON_DATA_STREAM,A)}catch{this.emit(Or.ON_DATA_STREAM,A)}}handleNotification(A){X.debug("[".concat(this.clientId,"] receive notification: "),A);let l=O2(A.code);if(l.action!=="success"){if(l.action!=="failed")return l.action==="quit"?A.code===mr.ERR_REPEAT_JOIN_CHANNEL&&Ie("IGNORE_UID_CHECK")?void this.close(bi.UID_CONFLICT):(l.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(bi.UID_BANNED),void this.close()):void this.reconnect(l.action,xo.SERVER_ERROR);X.error("[".concat(this.clientId,"] ignore error: "),l.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;let A=Ie("PING_PONG_TIME_OUT"),l=Date.now();this.pingpongTimeoutCount>=A&&(X.warning("[".concat(this.clientId,"] PINGPONG Timeout. Last Socket Message: ").concat(l-this.lastMsgTime,"ms")),l-this.lastMsgTime>Ie("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",xo.TIMEOUT):this.request(sr.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let g=Date.now()-l;this.rttRolling.add(g),Ie("REPORT_STATS")&&this.send(sr.PING_BACK,{pingpongElapse:g})}).catch(g=>{})}handleWebsocketEvents(){this.websocket.on(qr.RECONNECT_CREATE_CONNECTION,A=>{this.emit(or.WS_RECONNECT_CREATE_CONNECTION,A)}),this.websocket.on(qr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(qr.CLOSED,()=>{this.connectionState=vi.CLOSED}),this.websocket.on(qr.FAILED,()=>{this._disconnectedReason=bi.NETWORK_ERROR,this.connectionState=vi.CLOSED}),this.websocket.on(qr.RECONNECTING,A=>{this._websocketReconnectReason=A,this.joinResponse=void 0,this.connectionState===vi.CONNECTED?this.connectionState=vi.RECONNECTING:this.connectionState=vi.CONNECTING}),this.websocket.on(qr.WILL_RECONNECT,(A,l,g)=>{A!=="retry"?(X.debug("".concat(this.clientId," websocket will_connect event, renewSession reconnectMode is ").concat(A)),this.reconnectToken=void 0):X.debug("".concat(this.clientId," reconnect mode is retry, no need to renew session")),g(A)}),this.websocket.on(qr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.join().catch(A=>{if(this.emit(or.REPORT_JOIN_GATEWAY,A,this.url||""),A instanceof nt&&A.code===fe.UNEXPECTED_RESPONSE&&A.data.code===mr.ERR_NO_AUTHORIZED)return X.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",xo.SERVER_ERROR);X.error("[".concat(this.clientId,"] join gateway request failed"),A.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",xo.SERVER_ERROR):(this.initError=A,this.close())})}),this.websocket.on(qr.REQUEST_NEW_URLS,(A,l)=>{rs(this,or.REQUEST_RECOVER,this.multiIpOption).then(A).catch(l)}),this.websocket.on(qr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE)})}}let Yx={name:"P2PChannel",create:function(a){let{store:A,statsCollector:l}=a;return new oW(A,l)},createSubmodule:function(a){let{store:A,spec:l}=a;return new sW(l,A)}};function $O(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function GQ(a){for(var A=1;Aoe.payloadType.toString(10));let q=m.videoCodecs.filter(oe=>{var le,pe;return(le=oe.rtpMap)===null||le===void 0?void 0:Rt(pe=le.encodingName.toLowerCase()).call(pe,b)}),ce=m.videoCodecs.filter(oe=>!Rt(q).call(q,oe));K.attributes.payloads=[...q,...ce],K.attributes.extmaps=m.videoExtensions}K.media.mediaType==="audio"&&(K.media.fmts=m.audioCodecs.map(q=>q.payloadType.toString(10)),K.attributes.payloads=m.audioCodecs,K.attributes.extmaps=m.audioExtensions),k.mediaDescriptions[V]=this.mungMediaDesc(K)}this.sessionDesc=k,this.currentMidIndex=k.mediaDescriptions.length-1}toString(){return ea(this.sessionDesc)}send(A,l,g){let{ssrcs:C,ssrcGroups:m}=U2(l,this.cname),y=this.sessionDesc.mediaDescriptions.find(M=>A===$t.VIDEO?M.media.mediaType==="video":M.media.mediaType==="audio"),w=C[0].attributes.label,b=C[0].attributes.mslabel;return y.attributes.ssrcs=y.attributes.ssrcs.concat(C),y.attributes.ssrcGroups=y.attributes.ssrcGroups.concat(m),{id:w,mslabel:b}}batchSend(A){return A.map(l=>{let{kind:g,ssrcMsg:C}=l;return this.send(g,C,void 0)})}stopSending(A){this.sessionDesc.mediaDescriptions.forEach(l=>{let g=[],C=[],m=[];l.attributes.ssrcs.forEach(y=>{Rt(A).call(A,y.attributes.label||"")?m.push(y):g.push(y)}),l.attributes.ssrcGroups.forEach(y=>{var w;Rt(w=m.map(b=>b.ssrcId)).call(w,y.ssrcIds[0])||C.push(y)}),l.attributes.ssrcs=g,l.attributes.ssrcGroups=C})}mute(A){let l=this.sessionDesc.mediaDescriptions.find(g=>g.attributes.mid===A);if(!l)throw new Error("mediaDescription not found with ".concat(A," in remote SDP when calling RemoteSDP.mute."));l.attributes.direction="inactive"}unmute(A){let l=this.sessionDesc.mediaDescriptions.find(g=>g.attributes.mid===A);if(!l)throw new Error("mediaDescription not found with ".concat(A," in remote SDP when calling RemoteSDP.unmute."));l.attributes.direction="sendonly"}receive(A,l,g){A.forEach((C,m)=>{let y=C._mediaStreamTrack,w=this.sessionDesc.mediaDescriptions.findIndex(M=>M.attributes.mid===y.kind),b=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[w],C);this.sessionDesc.mediaDescriptions[w]=b})}stopReceiving(A){}updateCandidates(A){let l=this._originCandidates.filter(C=>C.transport==="udp"),g=[];if(l.forEach(C=>{g.push(GQ(GQ({},C),{},{foundation:"tcpcandidate",priority:Number(C.priority)-1+"",transport:"tcp",port:Number(C.port)+90+""}))}),l.length!==0){switch(A){case Ls.TCP_RELAY:this.candidates=g;break;case Ls.UDP_TCP_RELAY:case Ls.RELAY:this.candidates=[...l,...g];break;default:this.candidates=l}for(let C of this.sessionDesc.mediaDescriptions)C.attributes.candidates=this.candidates}}restartICE(A){A=no(A),this.iceParameters=A,this.sessionDesc.mediaDescriptions.forEach(l=>{l.attributes.iceUfrag=A.iceUfrag,l.attributes.icePwd=A.icePwd})}predictReceivingMids(A){let l=[];for(let g=0;gC.attributes.mid===A);if(g!==-1){let C=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[g],l);this.sessionDesc.mediaDescriptions[g]=C}}bumpMid(A){this.currentMidIndex+=A}updateTrackLabel(A,l,g){let C=this.sessionDesc.mediaDescriptions.find(y=>A===$t.VIDEO?y.attributes.mid==="video":y.attributes.mid==="audio");if(C){let y=C.attributes.ssrcs.find(w=>w.attributes.label===l);var m;y&&(y.attributes.label=g,(m=y.attributes.msid)===null||m===void 0||m.replace(l,g))}}mungMediaDesc(A){let l=no(A);return fN(l),function(g){let C=g.attributes.extmaps.find(m=>Mu(m.extensionName));C&&g.attributes.extmaps.splice(g.attributes.extmaps.indexOf(C),1),g.attributes.payloads.forEach(m=>{let y=m.rtcpFeedbacks.findIndex(w=>w.type==="transport-cc");y!==-1&&m.rtcpFeedbacks.splice(y,1)})}(l),l}getSSRC(A){for(let l of this.sessionDesc.mediaDescriptions)for(let g of l.attributes.ssrcs)if(g.attributes.label===A)return[g]}}var zn;function tm(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function VQ(a){for(var A=1;AA.rtpMap&&A.rtpMap.encodingName.toLowerCase()||"").filter(A=>{var l;return Rt(l=Object.keys(Ss)).call(l,A)}))]}constructor(A,l){super(A,l),Ae(this,"store",void 0),Ae(this,"peerConnection",void 0),Ae(this,"remoteSDP",void 0),Ae(this,"initialOffer",void 0),Ae(this,"statsFilter",void 0),Ae(this,"useRTX",!1),Ae(this,"localCapabilities",void 0),Ae(this,"localCandidateCount",0),Ae(this,"allCandidatesReceived",!1),Ae(this,"establishPromise",void 0),Ae(this,"mutex",void 0),this.store=l,this.mutex=new Is("P2PConnection-mutex",l.clientId),this.peerConnection=new RTCPeerConnection(w9.resolvePCConfiguration(A),{optional:[{googDscp:!0}]}),this.statsFilter=MC(this.peerConnection,Ie("STATS_UPDATE_INTERVAL"),void 0,uo()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,this.establishPromise=this.establish()}async establish(){try{let A=await this.peerConnection.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});if(!A.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let l=fl(A.sdp),g=jr(A.sdp,{filterRTX:!this.useRTX,filterVideoFec:Ie("FILTER_VIDEO_FEC"),filterAudioFec:Ie("FILTER_AUDIO_FEC"),filterAudioCodec:["opus"]});return this.localCapabilities=g,this.initialOffer=A,VQ(VQ({},l),{},{rtpCapabilities:{send:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},recv:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},sendrecv:g},offerSDP:A.sdp})}catch(A){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,A.toString())}}async updateRemoteConnect(){}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.remoteSDP=new aW(VQ(VQ({},A),{},{rtpCapabilities:A.rtpCapabilities.send,localCapabilities:this.localCapabilities,sdkCodec:this.store.codec}));let l=this.remoteSDP.toString();await this.peerConnection.setLocalDescription(this.initialOffer),await this.peerConnection.setRemoteDescription({type:"answer",sdp:l})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(l.toString()))}}async updateRemoteRTPCapabilities(A,l){throw new nt(fe.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}getPreMedia(A){}send(A,l){var g=this;return wA(function*(){let C=yield ri(g.mutex.lock());try{if(!g.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");let m=A.map(K=>g.peerConnection.addTrack(K._mediaStreamTrack)),y=yield ri(g.peerConnection.createOffer()),w=ki(y.sdp),b=A.map(K=>{let q=K._mediaStreamTrack,ce=w.mediaDescriptions.find(oe=>oe.attributes.mid===q.kind);if(!ce)throw new Error("Cannot extract ssrc from mediaDescription.");return function(oe,le,pe){let Se=oe.attributes.ssrcs.filter(Ue=>Ue.attributes.label===le),be=oe.attributes.ssrcGroups;if(Se.length===0)throw new Error("Cannot extract ssrc from plan-b SDP.");if(be&&Se.length>1){let Ue=be.find(xe=>xe.ssrcIds.indexOf(Se[0].ssrcId)!==-1);return Ue?[{ssrcId:Ue.ssrcIds[0],rtx:pe?Ue.ssrcIds[1]:void 0}]:[{ssrcId:Se[0].ssrcId}]}return[{ssrcId:Se[0].ssrcId}]}(ce,q.id,g.useRTX)}),M;try{M=yield b}catch(K){throw m.forEach(q=>{$s()&&q.replaceTrack(null),g.peerConnection.removeTrack(q)}),K}let k=g.mungSendOfferSDP(y.sdp,A);g.remoteSDP.receive(A,l,M);let V=g.remoteSDP.toString();return yield ri(g.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(g.applySendEncodings(m,A)),yield ri(g.peerConnection.setRemoteDescription({type:"answer",sdp:V})),A.map((K,q)=>{let ce=K._mediaStreamTrack.id;return{localSSRC:b[q],id:ce}})}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(m.toString()))}finally{C()}})()}async stopSending(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");let l=this.peerConnection.getSenders().filter(m=>{var y;return A.indexOf(((y=m.track)===null||y===void 0?void 0:y.id)||"")!==-1});if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");l.map(m=>{$s()&&m.replaceTrack(null),this.peerConnection.removeTrack(m)});let g=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(g),this.remoteSDP.stopReceiving(A);let C=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:C})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(l.toString()))}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(A," before remoteSDP created."));let{id:m,mslabel:y}=this.remoteSDP.send(A,l,C),w=new Ft((k,V)=>{let K=setTimeout(()=>{V(new Error("Cannot receive track, id: ".concat(m)))},1e4),q=ce=>{let oe=Wi();if((oe.name==="Safari"&&Number(oe.version)===11||Ma())&&ce.track.id!==m&&ce.streams[0].id===y){var le;let pe=ce.streams[0].getTracks()[0];return(le=this.remoteSDP)===null||le===void 0||le.updateTrackLabel(A,m,ce.track.id),this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k(pe)}if(ce.track.id===m)return this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k(ce.track)};this.peerConnection.addEventListener("track",q)}),b=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:b});let M=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(M),{track:await w,id:m}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(m.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let g=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(g)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(l.toString()))}}async muteRemote(A){}async unmuteRemote(A){}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");let l=this.peerConnection.getSenders().filter(g=>{var C;return A.indexOf(((C=g.track)===null||C===void 0?void 0:C.id)||"")!==-1});if(l.length!==A.length)throw new Error("sender' length doesn't match mids' length.");l.map(g=>{if($s()&&g.track)g.track.enabled=!1;else{let C=g.getParameters();C.encodings.forEach(m=>m.active=!1),g.setParameters(C)}})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");let l=this.peerConnection.getSenders().filter(m=>{var y;return A.indexOf(((y=m.track)===null||y===void 0?void 0:y.id)||"")!==-1});if(l.length!==A.length)throw new Error("Senders' length doesn't match mids' length.");l.map(async m=>{if($s()&&m.track)m.track.enabled=!0;else{let y=m.getParameters();y.encodings.forEach(w=>w.active=!0),await m.setParameters(y)}});let g=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(g);let C=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:C})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(l.toString()))}}restartICE(A){var l=this;return wA(function*(){let g=yield ri(l.mutex.lock("From P2PConnection.restartICE"));try{if(!l.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");let C=Bi().supportPCSetConfiguration;if(A===Ls.RELAY&&!C)return;if(C){let M=l.peerConnection.getConfiguration(),k=A===Ls.RELAY?"relay":"all";M.iceTransportPolicy!==k&&(X.debug("[".concat(l.store.clientId,"] restartICE change iceTransportPolicy from [").concat(M.iceTransportPolicy,"] to [").concat(k,"]")),M.iceTransportPolicy=k,l.peerConnection.setConfiguration(M))}A!==Ls.RELAY&&l.remoteSDP.updateCandidates(A);let m=yield ri(l.peerConnection.createOffer({iceRestart:!0}));if(!m.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let y=fl(m.sdp),{remoteIceParameters:w}=yield y.iceParameters;l.remoteSDP.restartICE(w);let b=l.remoteSDP.toString();yield ri(l.peerConnection.setLocalDescription(m)),yield ri(l.peerConnection.setRemoteDescription({type:"answer",sdp:b}))}catch(C){X.warning("[".concat(l.store.clientId,"] restart ICE failed, abort operation"),C)}finally{g()}})()}close(){var A;this.peerConnection.close(),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l]);this.remoteSDP.updateRecvMedia(l._mediaStreamTrack.kind,l);let m=this.remoteSDP.toString();await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getSenders().filter(C=>{var m;return((m=C.track)===null||m===void 0?void 0:m.id)===A});g.length===1&&await this.applySendEncodings(g,[l])}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getSenders().find(C=>{var m;return((m=C.track)===null||m===void 0?void 0:m.id)===l});g&&await g.replaceTrack(A._mediaStreamTrack)}createDataChannels(A,l){throw new nt(fe.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}stopDataChannels(A){throw new nt(fe.NOT_SUPPORTED,"Planb mode does not support stopDataChannels.")}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A;(A=this.onICEConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidate=A=>{A.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},Ie("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A){let l={iceServers:[],sdpSemantics:"plan-b"};return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&A.turnServer.mode!=="off"&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:(l.iceServers&&l.iceServers.push(...w9.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...w9.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(g=>{g.forceturn&&(l.iceTransportPolicy="relay")}))),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}async updateRtpSenderEncodings(A,l){var g;if(l||(l=this.peerConnection.getSenders().find(M=>{var k;return((k=M.track)===null||k===void 0?void 0:k.id)===A._mediaStreamTrack.id})),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(!Bi().supportSetRtpSenderParameters)return X.warn("Browser not support set rtp-sender parameters");let C={},m={};if(A instanceof Pi)switch(A._optimizationMode){case"motion":C.degradationPreference="maintain-framerate";break;case"detail":C.degradationPreference="maintain-resolution";break;default:C.degradationPreference="balanced"}if(Ie("DSCP_TYPE")&&Od()){var y;let M=Ie("DSCP_TYPE");Rt(y=["very-low","low","medium","high"]).call(y,M)&&(m.networkPriority=M)}let w=l.getParameters(),b=(g=w.encodings)===null||g===void 0?void 0:g[0];b&&Object.assign(b,m),Object.assign(w,C),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(w.encodings))),await l.setParameters(w)}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let y=C._mediaStreamTrack,w=g.mediaDescriptions.find(b=>b.attributes.mid===y.kind);w&&kg(w,C)}),ea(g)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0}async batchReceive(A){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");let l=this.remoteSDP.batchSend(A).map((m,y)=>{let{id:w,mslabel:b}=m,{kind:M}=A[y];return new Ft((k,V)=>{let K=setTimeout(()=>{V(new Error("Cannot receive track, id: ".concat(w)))},1e4),q=ce=>{let oe=Wi();if(oe.name==="Safari"&&Number(oe.version)===11&&ce.track.id!==w&&ce.streams[0].id===b){var le;let pe=ce.streams[0].getTracks()[0];return(le=this.remoteSDP)===null||le===void 0||le.updateTrackLabel(M,w,ce.track.id),this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k({track:pe,id:w})}if(ce.track.id===w)return this.peerConnection.removeEventListener("track",q),clearTimeout(K),void k({track:ce.track,id:w})};this.peerConnection.addEventListener("track",q)})}),g=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:g});let C=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(C),await Ft.all(l)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(l.toString()))}}async getRemoteSSRC(A){if(!this.remoteSDP)return;let l=this.remoteSDP.getSSRC(A);return l==null?void 0:l[0].ssrcId}setConfiguration(A){if(Bi().supportPCSetConfiguration){let l=w9.resolvePCConfiguration(A);this.peerConnection.setConfiguration(l)}}},Vt(zn.prototype,"connect",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"connect"),zn.prototype),Vt(zn.prototype,"stopSending",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"stopSending"),zn.prototype),Vt(zn.prototype,"receive",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"receive"),zn.prototype),Vt(zn.prototype,"stopReceiving",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"stopReceiving"),zn.prototype),Vt(zn.prototype,"muteRemote",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"muteRemote"),zn.prototype),Vt(zn.prototype,"unmuteRemote",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"unmuteRemote"),zn.prototype),Vt(zn.prototype,"muteLocal",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"muteLocal"),zn.prototype),Vt(zn.prototype,"unmuteLocal",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"unmuteLocal"),zn.prototype),Vt(zn.prototype,"close",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"close"),zn.prototype),Vt(zn.prototype,"updateEncoderConfig",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"updateEncoderConfig"),zn.prototype),Vt(zn.prototype,"updateSendParameters",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"updateSendParameters"),zn.prototype),Vt(zn.prototype,"replaceTrack",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"replaceTrack"),zn.prototype),Vt(zn.prototype,"getRemoteSSRC",[Tl],Object.getOwnPropertyDescriptor(zn.prototype,"getRemoteSSRC"),zn.prototype),zn);function Tl(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("Locking from P2PConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b1&&arguments[1]!==void 0?arguments[1]:{};if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support audio encoded transform");if(jf.has(a)||!a.track)return;let l={track:a.track};if(Tg()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");let C=null;try{C=a.createEncodedStreams()}catch(y){return void X.error("create audio-encoded-streams error",y&&y.message)}let m=new TransformStream({transform(y,w){l.controller||(l.controller=w),a.track&&a.track.id!==l.track.id&&(X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g));let b=A.metadata&&A.metadata();b?function(M,k){let{chunk:V,controller:K}=k,q=Lg.METADATA;V.data=function(ce,oe,le){let pe=le.byteLength,Se=pe+Iy+eN,be=Ey+hy+Se,Ue=new ArrayBuffer(ce.byteLength+be),xe=new DataView(Ue);xe.setUint8(0,Z4),xe.setUint16(1,Se),xe.setUint8(3,oe),xe.setUint16(4,pe);for(let je=0;je"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"audio-metadata-tx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),m.port1.onmessage=w=>{var b;if(w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id)X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g);else if(w.data.getMetadata){let M=A.metadata&&A.metadata();M&&m.port1.postMessage({metadata:M})}},l.worker=C}function g(){if(a.track){if(this.id!==a.track.id)return;a.track.removeEventListener("ended",g)}let C=jf.get(a);if(C){jf.delete(a);try{var m,y;(m=C.controller)===null||m===void 0||m.terminate(),(y=C.worker)===null||y===void 0||y.terminate()}catch(w){X.warning(w&&w.message)}}}jf.set(a,l),a.track.addEventListener("ended",g)},interceptRemoteAudioFrame:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support audio encoded transform");if($f.has(a))return;let l={track:a.track,onMetadata:A.onMetadata,onPts:A.onPts};if(Tg()&&!Ma()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");_R(nn.CHROME,87,116)||(A.enableTopn=!1);let C=null;try{C=a.createEncodedStreams()}catch(y){return void X.error("create audio-encoded-streams error",y&&y.message)}let m=new TransformStream({transform(y,w){l.controller||(l.controller=w),a.track&&a.track.id!==l.track.id&&(X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g)),A.enableTopn?function(b,M,k){var V;let K=Cy(new DataView(M.data));if(!K)return k.enqueue(M);let q=b.track.id;SU.set(q,b.track);let ce=(V=K.tlv.find(Ue=>Ue.tag===Lg.AUDIO_LEVEL))===null||V===void 0?void 0:V.value,oe=0;typeof ce=="number"&&(oe=127-ce);let le=Math.round(Math.pow(10,oe/60)-1),{selected:pe,speaker:Se}=function(Ue,xe){let Le=Ao.get(Ue);if(Le||(Le=function(je){let dt=new rN;return Ao.set(je,dt),Xl||(Xl=new BU(Ie("TOPN_SILENCE_THRESHOLD")||500),Xl.on("ActiveSpeakerChanged",pt=>{pt!=null&&(Wf=pt)})),Xl.addSpeakers([dt]),dt}(Ue)),Ao.size<=iN)return{selected:!0,speaker:Le};if(!Xl)throw new Error("no active speaker detector");return Xl.levelChanged(Le.id,xe),Ih=Xl.loudest.map(je=>je.id),Wf&&!Rt(Ih).call(Ih,Wf)&&Ih.length>=iN&&Ih.pop(),{selected:Rt(Ih).call(Ih,Le.id)||Le.id===Wf,speaker:Le}}(b,le),be=function(Ue,xe,Le){let je=zl.get(Ue)||new bu(Ue,xe);return je.score=Le,zl.set(Ue,je),function(dt){if(Xf.set(dt,!0),!zf)return void(zf=Date.now());let pt=Date.now();pt-zf>1e3&&(Xf.get(dt)?Xf.set(dt,!1):(nN(dt),Xf.delete(dt)),zf=pt)}(Ue),je}(q,b.track,Se.energyScore);be.addSample(pe),be.active&&(M.data=K.frame.buffer,k.enqueue(M))}(a,y,w):A.enableMetadata||A.enablePts?function(b,M,k,V){let K=new DataView(b.data),q=K.getUint8(0),ce;if(128&q&&q!==71){let pe=function(Se){if(Se.byteLength<=0)return[];let be=[],Ue=0;for(;Ue>7,je=127&Se.getUint8(Ue);if(!(Le&&Ue+4<=Se.byteLength)){Ue++;break}{let dt=Se.getUint32(Ue,!1),pt=(16776192&dt)>>10,zt=1023&dt;be.push({pt:je,ts_offset:pt,length:zt,data:new Uint8Array}),Ue+=4}}let xe=Se.byteLength-Ue;for(let Le of be){if(Le.length>xe)return console.warn("Broken red payload"),[];Le.length>0&&(Le.data=new Uint8Array(Se.buffer,Se.byteOffset+Ue,Le.length),Ue+=Le.length,xe-=Le.length)}if(xe>0){let Le={pt:be.length>0?be[be.length-1].pt:0,ts_offset:0,length:xe,data:new Uint8Array(Se.buffer,Se.byteOffset+Ue,xe)};be.push(Le)}return be}(K);if(pe.length>0){let Se=function(be){let Ue=0;for(let je=0;je>>0;xe[Le++]=dt>>24&255,xe[Le++]=dt>>16&255,xe[Le++]=dt>>8&255,xe[Le++]=255&dt}else xe[Le++]=127&be[je].pt;for(let je of be)xe.set(je.data,Le),Le+=je.length;return xe}(pe.map(be=>{let Ue=new Uint8Array(be.length);Ue.set(be.data);let xe=Cy(new DataView(Ue.buffer));return xe!=null&&xe.frame&&(be.data=xe==null?void 0:xe.frame),ce=xe,be}));b.data=Se.buffer}}else ce=Cy(K),ce&&(b.data=ce.frame.buffer);if(M.enqueue(b),!ce)return;let oe=ce.tlv.find(pe=>pe.tag===Lg.METADATA);oe&&k&&oe.value instanceof Uint8Array&&k(oe.value);let le=ce.tlv.find(pe=>pe.tag===Lg.AUDIO_64_BIT_PTS);le&&V&&le.value instanceof Uint8Array&&le.value.length==8&&V(new DataView(le.value.buffer).getBigUint64(0,!0))}(y,w,A.onMetadata,A.onPts):w.enqueue(y)}});C.readable.pipeThrough(m).pipeTo(C.writable)}else{if(typeof RTCRtpScriptTransform>"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"audio-metadata-rx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),m.port1.onmessage=w=>{var b;w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id?(X.debug("audio track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g)):w.data.metadata&&l.onMetadata?l.onMetadata(w.data.metadata):w.data.pts&&l.onPts&&l.onPts(w.data.pts)},l.worker=C}function g(){a.track.removeEventListener("ended",g),function(C){let m=$f.get(C);if(m){(function(b){let M=Ao.get(b);M&&(Ao.delete(b),Xl&&(Xl.removeSpeakers([M]),Ao.size===0&&(Xl.destroy(),Xl=null)))})(C),nN(C.track.id),$f.delete(C);try{var y,w;(y=m.controller)===null||y===void 0||y.terminate(),(w=m.worker)===null||w===void 0||w.terminate()}catch(b){X.warning(b&&b.message)}}}(a)}$f.set(a,l),a.track.addEventListener("ended",g)},interceptLocalVideoFrame:async function(a,A){if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support video encoded transform");if(Zf.has(a)||!a.track)return;let l={track:a.track};if(Tg()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");let C=null;try{C=a.createEncodedStreams()}catch(w){return void X.error("create video-encoded-streams error",w&&w.message)}let m=[];A.on("sei-to-send",w=>{m.push(w)});let y=new TransformStream({transform(w,b){l.controller||(l.controller=b),a.track&&a.track.id!==l.track.id&&(X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g));let M=aN(new Uint8Array(w.data)),k=m.shift();if(k){let V=function(K,q,ce){switch(ce){case my:return function(oe,le){let pe=sN(le),Se=pe.length,be=Math.floor(Se/255),Ue=Se%255,xe=new Uint8Array(6+be+1+Se+oe.byteLength);xe[0]=0,xe[1]=0,xe[2]=0,xe[3]=1,xe[4]=6,xe[5]=101;let Le=0;for(;Le"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"sei-tx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),A.on("sei-to-send",w=>{m.port1.postMessage({sei:w})}),m.port1.onmessage=w=>{var b;w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id&&(X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g))},l.worker=C}}function g(){if(a.track){if(this.id!==a.track.id)return;a.track.removeEventListener("ended",g)}let C=Zf.get(a);if(C){Zf.delete(a);try{var m,y;(m=C.controller)===null||m===void 0||m.terminate(),(y=C.worker)===null||y===void 0||y.terminate()}catch(w){X.warning(w&&w.message)}}}Zf.set(a,l),a.track.addEventListener("ended",g)},interceptRemoteVideoFrame:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Bi().supportWebRTCEncodedTransform)return void X.warning("browser not support video encoded transform");if(!a.track)return;if(VC.has(a)){let C=VC.get(a);return void(C&&(C.onSei=A.onSei))}let l={track:a.track,onSei:A.onSei};if(Tg()){if(!a.createEncodedStreams)return void X.warning("browser not support createEncodedStreams() API");let C=null;try{C=a.createEncodedStreams()}catch(y){return void X.error("create video-encoded-streams error",y&&y.message)}let m=new TransformStream({transform(y,w){if(l.controller||(l.controller=w),!l.firstFrameInfo){var b;let k=y.getMetadata()||{};l.firstFrameInfo=Qn({type:y.type,rtpTimestamp:y.timestamp,payloadType:k.payloadType||0,ssrc:k.synchronizationSource||0,length:y.data.byteLength},"mimeType"in k?{mimeType:k.mimeType}:{}),(b=A.onFirstFrame)===null||b===void 0||b.call(A,l.firstFrameInfo)}a.track&&a.track.id!==l.track.id&&(X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g));let M=function(k,V){switch(V){case my:return function(K){let q=new DataView(K.data),ce=0;for(;ce+4"u")return void X.warning("browser not support RTCRtpScriptTransform");let C=GC(),m=new MessageChannel;await new Ft(w=>C.onmessage=b=>{b.data==="registered"&&w(void 0)});let y=new RTCRtpScriptTransform(C,{name:"sei-rx",port:m.port2},[m.port2]);a.transform=y,await new Ft(w=>C.onmessage=b=>{b.data==="started"&&w(void 0)}),m.port1.onmessage=w=>{var b;if(w.data.transformed&&a.track&&((b=a.track)===null||b===void 0?void 0:b.id)!==l.track.id)X.debug("video track changed: ".concat(l.track.id," => ").concat(a.track.id)),l.track.removeEventListener("ended",g),l.track=a.track,l.track.addEventListener("ended",g);else if(w.data.sei&&l.onSei)l.onSei(w.data.sei);else if(w.data.firstFrameInfo&&A.onFirstFrame){var M;(M=A.onFirstFrame)===null||M===void 0||M.call(A,w.data.firstFrameInfo)}},l.worker=C}function g(){if(a.track){if(this.id!==a.track.id)return;a.track.removeEventListener("ended",g)}(function(C){let m=VC.get(C);if(m){VC.delete(C);try{var y,w;(y=m.controller)===null||y===void 0||y.terminate(),(w=m.worker)===null||w===void 0||w.terminate()}catch(b){X.warning(b&&b.message)}}})(a)}VC.set(a,l),a.track.addEventListener("ended",g)}},lW={name:"InterceptFrame",create:()=>cW};var Yi;function jx(a,A){var l=Object.keys(a);if(Object.getOwnPropertySymbols){var g=Object.getOwnPropertySymbols(a);A&&(g=g.filter(function(C){return Object.getOwnPropertyDescriptor(a,C).enumerable})),l.push.apply(l,g)}return l}function ru(a){for(var A=1;AA.rtpMap&&A.rtpMap.encodingName.toLowerCase()||"").filter(A=>{var l;return Rt(l=Object.keys(Ss)).call(l,A)}))]}constructor(A,l,g){super(A,l),Ae(this,"id",yn(5,"connection-")),Ae(this,"store",void 0),Ae(this,"peerConnection",void 0),Ae(this,"forceTurn",!1),Ae(this,"remoteSDP",void 0),Ae(this,"initialOffer",void 0),Ae(this,"transportEventReceiver",void 0),Ae(this,"statsFilter",void 0),Ae(this,"extension",{useXR:Ie("USE_XR")}),Ae(this,"localCapabilities",void 0),Ae(this,"remoteCodecs",void 0),Ae(this,"localCandidateCount",0),Ae(this,"allCandidatesReceived",!1),Ae(this,"isPreallocation",!1),Ae(this,"preMediaMap",new Map),Ae(this,"dataStreamChannelMap",new Map),Ae(this,"establishPromise",void 0),Ae(this,"recoveredDataChannelIds",[]),Ae(this,"currentDataChannelId",1),Ae(this,"supportAV1RtpSpec",!1),Ae(this,"mutex",void 0),Ae(this,"qualityLimitationReason",j1.NONE),Ae(this,"isFirstConnected",!1),this.store=l,this.forceTurn=Fg(A),this.mutex=new Is("NVConnectionExtension-mutex",l.clientId),this.peerConnection=g,this.isFirstConnected=!1,this.statsFilter=MC(this.peerConnection,Ie("STATS_UPDATE_INTERVAL"),void 0,uo()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,A.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(A){return this.preMediaMap.get(A)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(A,l){if(this.remoteCodecs=l,!this.remoteSDP)return void X.debug("[NVConnectionExtension] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(l));if(this.remoteSDP.updateRemoteCodec(A,l,this.store.codec)){let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}else X.debug("[NVConnectionExtension] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});let l=await this.peerConnection.createOffer();if(!l.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");let g=fl(l.sdp),C=await Kd({filterRTX:!Ie("USE_PUB_RTX")&&!Ie("USE_SUB_RTX"),filterVideoFec:Ie("FILTER_VIDEO_FEC"),filterAudioFec:Ie("FILTER_AUDIO_FEC"),filterVideoCodec:Ie("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:Ie("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:Ie("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=En(C),this.initialOffer=l,Ie("ENABLE_SVC")&&this.store.codec=="av1"){let y=await OA();var A;y&&(this.supportAV1RtpSpec=!0,(A=C.send)===null||A===void 0||A.videoExtensions.push(y))}let m;return l.sdp&&xc(l.sdp)&&(m=no(C),gA(m)),ru(ru({},g),{},{rtpCapabilities:m||C,offerSDP:l.sdp})}catch(l){throw new nt(fe.GET_LOCAL_CONNECTION_PARAMS_FAILED,l.toString())}}async connect(A){try{if(!this.initialOffer)throw new Error("Cannot establish NVConnectionExtension without initial offer.");this.initialOffer.sdp&&xc(this.initialOffer.sdp)&&Br(A.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Jd(ru(ru({},A),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!Ie("ENABLE_PRE_SUB_WITH_PRE_PC")||!Ie("PRE_USE_LOCAL_CODECS"))&&So(this.store),!0),A.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);let l=this.remoteSDP.toString(),g=Gy(this.initialOffer.sdp,this.extension),C=this.logSDPExchange(g||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:g}),C==null||C(l),await this.peerConnection.setRemoteDescription({type:"answer",sdp:l});let m=this.peerConnection.getTransceivers()[0];if(m!=null&&m.receiver&&this.tryBindTransportEvents(m.receiver),So(this.store))if(A.preallocation&&Ie("ENABLE_PRE_SUB_WITH_PRE_PC")){let y=Ie("PRE_SUB_NUM"),{mids:w,preSSRCs:b}=this.remoteSDP.preloadRemoteMedia(y);await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] preload media, in pre pc,add preload ssrcs ").concat(b)),this.presetMedia(w,b)}else{let{preSSRCs:y=[]}=A,w=y.map(M=>M.ssrcMsg[0].ssrcId);if(y.length===0)return;let{mids:b}=this.remoteSDP.batchSend(y.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[NVConnectionExtension.connect] preload media, after join, add preload ssrcs ".concat(w)),this.presetMedia(b,w)}}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.connect failed; ".concat(l.toString()))}}presetMedia(A,l){A.forEach((g,C)=>{this.peerConnection.getTransceivers().forEach(m=>{if(m.mid!=null&&g===m.mid&&m.receiver.track){let y=m.receiver.track,w;y.kind==="video"&&Ie("ENABLE_PRE_RENDER")&&(w=new zA({trackId:"track-".concat(y.kind,"-unknown-").concat(this.store.clientId,"_").concat(yn(5,""))},!0),w.updateVideoTrack(y),w.onFirstVideoFrameRender=()=>{var b;let M=this.preMediaMap.get(l[C]);M&&(M.firstVideoRender=Date.now()),(b=this.onFirstVideoRender)===null||b===void 0||b.call(this,l[C])},w.onVideoBufferReady=()=>{var b;(b=this.onFirstVideoBufferReady)===null||b===void 0||b.call(this,l[C])},w.play(this.store.sessionId||void 0)),this.preMediaMap.set(l[C],{mid:g,track:y,player:w,transceiver:m})}}),this.store.peerReceiver()})}checkDtlsParameters(A){return!!this.remoteSDP&&A.length>0&&this.remoteSDP.updateRemoteDtlsParameters(A)}async updateRemoteConnect(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateRemoteConnect before remote SDP created");let l=!1,{rtpCapabilities:g}=A;if([,l]=this.remoteSDP.updateRemoteRTPCapabilities(g),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){let y=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);l=l||y}let{preSSRCs:C=[]}=A,m=C.map(y=>y.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(m)){let y=[],w=[];if(Array.from(this.preMediaMap.entries()).every(b=>{let[M,{mid:k,player:V,track:K}]=b;return y.push(k),w.push(M),this.preMediaMap.delete(M),V&&V.destroy(),!0}),y.length>0&&(this.remoteSDP.stopSending(y),await gi(this.peerConnection,this.remoteSDP,this.extension),X.warn("[NVConnectionExtension.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(w)),tr.reportApiInvoke(this.store.sessionId,{name:Co.PRELOAD_MEDIA_FAILED,options:[C,w],tag:Gn.TRACER}).onSuccess()),C.length>0){let{mids:b}=this.remoteSDP.batchSend(C.map(M=>Object.assign({},M)));await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[NVConnectionExtension.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(m)),this.presetMedia(b,m)}}l?(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[NVConnectionExtension] updateRemoteConnect by exchanging SDP.")):X.debug("[NVConnectionExtension] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.updateRemoteConnect failed; ".concat(l.toString()))}}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From NVConnectionExtension.send"));try{if(!C.remoteSDP)throw new Error("Cannot call NVConnectionExtension.send before remote SDP created");let y=[],w=k2();A.forEach(le=>{let pe=C.peerConnection.addTransceiver(le._mediaStreamTrack,ru({direction:"sendonly"},le.trackMediaType==="video"&&C.supportAV1RtpSpec&&w?{sendEncodings:[{scalabilityMode:w}]}:{}));y.push(pe),le._updateRtpTransceiver(pe)}),uo()&&Ie("SIMULCAST")===!0&&(yield ri(C.applySimulcastForFirefox(y,A)));let b=yield ri(C.peerConnection.createOffer()),M=C.remoteSDP.predictReceivingMids(A.length),k=C.mungSendOfferSDP(b.sdp,A,M),V=ki(k),K=M.map(le=>{let pe=V.mediaDescriptions.find(Se=>Se.attributes.mid===le);if(!pe)throw new Error("Cannot extract ssrc from mediaDescription.");return P2(pe,Ie("USE_PUB_RTX"))}),q;try{q=yield K}catch(le){q=[],C.remoteSDP.receive(A,l,g,q);let pe=C.remoteSDP.toString();throw yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:pe})),yield ri(C.stopSending(M,!0)),le}C.remoteSDP.receive(A,l,g,q);let ce=C.remoteSDP.toString(),oe=C.logSDPExchange(k,"offer","local","send");return yield ri(C.peerConnection.setLocalDescription({type:"offer",sdp:k})),yield ri(C.applySimulcastEncodings(y,A)),yield ri(C.applySendEncodings(y,A)),oe==null||oe(ce),yield ri(C.peerConnection.setRemoteDescription({type:"answer",sdp:ce})),y.map((le,pe)=>{let Se=M[pe];return{localSSRC:K[pe],id:Se,transceiver:le}})}catch(y){throw y instanceof nt?y:new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.send failed; ".concat(y.toString()))}finally{m()}})()}async createDataChannels(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.createDataChannels before remote SDP created");let g=this.dataStreamChannelMap.get(A);if(g&&g.readyState==="open")X.debug("[NVConnectionExtension] Channels are already available and can be reused directly.");else{let m=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof m!="number")throw new Error("create DataChannel error, because cannot get dc id");g=this.peerConnection.createDataChannel("datastream-channel",{id:m,negotiated:!0,ordered:!1,maxRetransmits:Ie("DATASTREAM_MAX_RETRANSMITS")}),g.binaryType="arraybuffer",this.dataStreamChannelMap.set(A,g)}l.forEach(m=>{m._updateOriginDataChannel(g)});let{needExchangeSDP:C}=this.remoteSDP.sendDataChannel();if(C){let m=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:m});let y=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(y),X.debug("[NVConnectionExtension] createDataChannels by exchanging SDP.")}else X.debug("[NVConnectionExtension] createDataChannels no need to exchange SDP.");return}catch(g){throw g instanceof nt?g:new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.createDataChannels failed; ".concat(g.toString()))}}async stopDataChannels(A){try{let l=this.dataStreamChannelMap.get(A);return l&&(l.id&&this.recoveredDataChannelIds.push(l.id),l.close()),void this.dataStreamChannelMap.delete(A)}catch(l){throw l instanceof nt?l:new nt(fe.DATACHANNEL_FAILED,"NVConnectionExtension.stopDataChannels failed; ".concat(l.toString()))}}async stopSending(A,l){let g=l?void 0:await this.mutex.lock("From NVConnectionExtension.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopSending before remote SDP created");let C=this.peerConnection.getTransceivers().filter(b=>A.indexOf(b.mid)!==-1);if(C.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call NVConnectionExtension.stopSending.");C.map(b=>{var M;XC(this.id+b.mid,this),b.direction="inactive",(M=b.stop)===null||M===void 0||M.call(b)});let m=await this.peerConnection.createOffer(),y=this.logSDPExchange(m.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(m),this.remoteSDP.stopReceiving(A);let w=this.remoteSDP.toString();y==null||y(w),await this.peerConnection.setRemoteDescription({type:"answer",sdp:w})}catch(C){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.stopSending failed; ".concat(C.toString()))}finally{g&&g()}}async receive(A,l,g,C){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.receive ".concat(A," before remoteSDP created."));let{mid:m,needExchangeSDP:y}=this.remoteSDP.send(A,l,g,C);y&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] receive ").concat(A," by exchanging SDP.")));let w=this.peerConnection.getTransceivers().find(b=>b.mid===m);if(!w)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:w.receiver.track,id:m,transceiver:w}}catch(m){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(m.toString()))}}async batchReceive(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.batchReceive before remoteSDP created.");let{mids:l,needExchangeSDP:g}=this.remoteSDP.batchSend(A);return g&&(await gi(this.peerConnection,this.remoteSDP,this.extension),X.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] batchReceive by exchanging SDP."))),l.map(C=>{let m=this.peerConnection.getTransceivers().find(y=>y.mid===C);if(!m)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:m.receiver.track,id:C,transceiver:m}})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(l.toString()))}}async stopReceiving(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopReceiving before remote SDP created.");A.forEach(m=>{Array.from(this.preMediaMap.entries()).some(y=>{let[w,{mid:b,player:M}]=y;if(b===m)return this.preMediaMap.delete(w),M&&M.destroy(),!0})}),this.remoteSDP.stopSending(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension stopReceiving failed; ".concat(l.toString()))}}async muteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.mute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteRemote failed; ".concat(l.toString()))}}async unmuteRemote(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteRemote mid=".concat(A," before remote SDP created."));this.remoteSDP.unmute(A);let l=this.remoteSDP.toString(),g=this.logSDPExchange(l,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:l});let C=await this.peerConnection.createAnswer();g==null||g(C.sdp||""),await this.peerConnection.setLocalDescription(C)}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteRemote failed; ".concat(l.toString()))}}async muteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(y=>{y.direction="inactive"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.muteRemote(A);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteLocal failed; ".concat(l.toString()))}}async unmuteLocal(A){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteLocal before remote SDP created.");let l=this.peerConnection.getTransceivers().filter(y=>y.mid&&A.indexOf(y.mid)!==-1);if(l.length!==A.length)throw new Error("Transceivers' length doesn't match mids' length.");l.map(async(y,w)=>{y.direction="sendonly"});let g=await this.peerConnection.createOffer(),C=this.logSDPExchange(g.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(g),this.remoteSDP.unmuteRemote(A),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(A,this.remoteCodecs,this.store.codec);let m=this.remoteSDP.toString();C==null||C(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(l){throw new nt(fe.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteLocal failed; ".concat(l.toString()))}}restartICE(A){var l=this;return wA(function*(){let g=yield ri(l.mutex.lock("From NVConnectionExtension.restartICE"));try{if(!l.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");let C=Bi().supportPCSetConfiguration,m=Ie("FORCE_TURN_TCP")||l.forceTurn;if(A===Ls.RELAY&&!C)return;if(C&&!m){let V=A===Ls.RELAY?"relay":"all",K=l.peerConnection.getConfiguration();K.iceTransportPolicy!==V&&(X.debug("[".concat(l.store.clientId,"] restartICE change iceTransportPolicy from [").concat(K.iceTransportPolicy,"] to [").concat(V,"]")),K.iceTransportPolicy=V,l.peerConnection.setConfiguration(K))}l.remoteSDP.updateCandidates(A);let y=yield ri(l.peerConnection.createOffer({iceRestart:!0}));if(!y.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");let w=fl(y.sdp),{remoteIceParameters:b}=yield w.iceParameters;l.remoteSDP.restartICE(b);let M=l.remoteSDP.toString(),k=l.logSDPExchange(y.sdp||"","offer","local","restartICE");l.store.descriptionStart(),yield ri(l.peerConnection.setLocalDescription(y)),k==null||k(M),yield ri(l.peerConnection.setRemoteDescription({type:"answer",sdp:M}))}catch(C){X.warning("[".concat(l.store.clientId,"] restart ICE failed, abort operation"),C)}finally{g()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;let A=await this.mutex.lock("From NVConnectionExtension.extendCandidate");try{this.remoteSDP.updateCandidates(Ls.TCP_RELAY),await gi(this.peerConnection,this.remoteSDP,this.extension)}catch(l){X.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),l)}finally{A()}}close(){var A;this.peerConnection.getTransceivers().forEach(l=>{XC(this.id+l.mid,this)}),this.preMediaMap.forEach(l=>{let{player:g}=l;g&&g.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return ru(ru({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(A){return this.statsFilter.getVideoIsReady(A)}async updateEncoderConfig(A,l){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateEncoderConfig before remote SDP created.");let g=await this.peerConnection.createOffer(),C=this.mungSendOfferSDP(g.sdp,[l],[A]);this.remoteSDP.updateRecvMedia(A,l);let m=this.remoteSDP.toString(),y=this.logSDPExchange(C,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:C}),y==null||y(m),await this.peerConnection.setRemoteDescription({type:"answer",sdp:m})}catch(g){throw new nt(fe.EXCHANGE_SDP_FAILED,g.toString())}}async updateSendParameters(A,l){let g=this.peerConnection.getTransceivers().filter(C=>C.mid===A);g.length===1&&(this.isVP8Simulcast(l)?uo()||await this.applySimulcastEncodings(g,[l]):await this.applySendEncodings(g,[l]))}setStatsRemoteVideoIsReady(A,l){this.statsFilter.setVideoIsReady2(A,l)}async replaceTrack(A,l){let g=this.peerConnection.getTransceivers().find(C=>C.mid===l);g&&await g.sender.replaceTrack(A._mediaStreamTrack)}async getSelectedCandidatePair(){let A=this.peerConnection.getReceivers();if(A.length>0&&A[0].transport&&A[0].transport.iceTransport&&A[0].transport.iceTransport.getSelectedCandidatePair&&A[0].transport.iceTransport.getSelectedCandidatePair()){let l=A[0].transport.iceTransport,{local:g,remote:C}=l.getSelectedCandidatePair();return{local:ru(ru({},cl),{},{candidateType:g.type,protocol:g.protocol,address:g.address,port:g.port}),remote:ru(ru({},cl),{},{candidateType:C.type,protocol:C.protocol,address:C.address,port:C.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var A;(A=this.onICEConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var A;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(A=this.onConnectionStateChange)===null||A===void 0||A.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=A=>{if(A&&(A.errorCode||A.errorText)){var l;let g="code: ".concat(A.errorCode,", message: ").concat(A.errorText),C=A.port?"local: ".concat(A.port):"",m=Pt(A.url||"");X.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: NVConnectionExtension.onICECandidateError(").concat(g,"), url: ").concat(m||"",", host_candidate:").concat(C)),(l=this.onICECandidateError)===null||l===void 0||l.call(this,g)}},this.peerConnection.onicegatheringstatechange=A=>{A&&A.target&&"iceGatheringState"in A.target&&X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(A.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=A=>{A.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,X.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},Ie("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(A){let l={iceServers:[]},g=A.cloudProxyServer||"disabled";return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:Ie("NEW_TURN_MODE")&&l.iceServers&&g==="disabled"?(Ie("USE_TURN_SERVER_OF_GATEWAY")?A.turnServer.serversFromGateway&&l.iceServers.push(...ET.newTurnServerConfigToIceServers(A.turnServer.serversFromGateway)):l.iceServers.push(...ET.newTurnServerConfigToIceServers(A.turnServer.servers)),Ie("NEW_FORCE_TURN")&&(l.iceTransportPolicy="relay")):A.turnServer.mode!=="off"&&(l.iceServers&&l.iceServers.push(...ET.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...ET.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),Ie("FORCE_TURN_TCP")?l.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(C=>{C.forceturn&&(l.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(l.encodedInsertableStreams=!0),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&!Ie("FORCE_TURN_TCP")&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}static newTurnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{let C=Ie("NEW_TURN_MODE");C===1?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}):C===2?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}):C===3?l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}):C===4&&(l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=udp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":3478?transport=tcp")}),l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":443?transport=tcp")}))}),l}tryBindTransportEvents(A){let l=A.transport;if(l){this.transportEventReceiver=A,l.onstatechange=()=>{var C;l!=null&&l.state&&((C=this.onDTLSTransportStateChange)===null||C===void 0||C.call(this,l.state))},l.onerror=C=>{var m;(m=this.onDTLSTransportError)===null||m===void 0||m.call(this,"error"in C?C.error:C)};let g=l.iceTransport;g&&(g.onstatechange=()=>{let C=l==null?void 0:l.iceTransport.state;var m;C&&((m=this.onICETransportStateChange)===null||m===void 0||m.call(this,C))},g.getSelectedCandidatePair&&(g.onselectedcandidatepairchange=()=>{if(g.getSelectedCandidatePair()){let{local:C,remote:m}=g.getSelectedCandidatePair()||{};if(C&&m){let y=C.address+":"+C.port,w=m.address+":"+m.port;X.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Pt(y)),", remote ").concat(JSON.stringify(Pt(w))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(A,l){var g,C;if(l||(l=this.peerConnection.getSenders().find(oe=>oe.track===A._mediaStreamTrack)),!l)return X.warn("[".concat(A.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(A))return X.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Bi().supportSetRtpSenderParameters)return X.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");let m={},y={};switch(A._optimizationMode){case"motion":m.degradationPreference="maintain-framerate";break;case"detail":m.degradationPreference="maintain-resolution";break;case"balanced":m.degradationPreference="balanced"}let w=a_(this.peerConnection,A._mediaStreamTrack),b=xf(A);if(MN(A)&&w&&l&&b&&this.getLocalVideoStats&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)){var M;let oe=m.degradationPreference||(Rt(M=A._hints).call(M,$i.CUSTOM_TRACK)?Ie("CUSTOM_ADAPTATION_DEFAULT_MODE"):"maintain-framerate");h7(this.id+w.mid,b,this,oe,le=>{l&&this.updateAdaptation(l,le)},this.getLocalVideoStats.bind(this))}if(A._encoderConfig){var k;let{bitrateMax:oe,frameRate:le,scaleResolutionDownBy:pe}=A._encoderConfig;oe&&(y.maxBitrate=1e3*oe),(Rt(k=A._hints).call(k,$i.LOW_STREAM)||A.isUseScaleResolutionDownBy)&&(le&&(y.maxFramerate=ZA(le)),pe&&pe>=1&&(y.scaleResolutionDownBy=pe))}let{maxFramerate:V}=Ie("ENCODER_CONFIG_LIMIT");if(V&&typeof V=="number"&&(y.maxFramerate=y.maxFramerate?Math.min(y.maxFramerate,V):V),Ie("DSCP_TYPE")&&Od()){var K;let oe=Ie("DSCP_TYPE");Rt(K=["very-low","low","medium","high"]).call(K,oe)&&(y.networkPriority=oe)}let q=l.getParameters(),ce=(C=q.encodings)===null||C===void 0?void 0:C[0];uo()&&!ce&&(m.encodings=[y]),ce&&Object.assign(ce,y),Object.assign(q,m),X.debug("[".concat(A.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(q.encodings))),await l.setParameters(q),await A_(this.store.codec,l,Ie("SVC_MODE"))}async updateAdaptation(A,l){var g,C;if(!A)return X.debug("[updateAdaptation] no rtpSender found");if(!Bi().supportSetRtpSenderParameters)return X.debug("[updateAdaptation] Browser not support set rtp-sender parameters");let m={},{bitrateMax:y,frameRate:w,scaleResolutionDownBy:b}=l;y&&(m.maxBitrate=1e3*y),w&&(m.maxFramerate=ZA(w)),b&&b>=1&&Rt(g=["vp8","vp9"]).call(g,this.store.codec)&&(m.scaleResolutionDownBy=b);let M=A.getParameters(),k=(C=M.encodings)===null||C===void 0?void 0:C[0];k&&Object.assign(k,m),Object.assign(M,{});try{await A.setParameters(M),X.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify(M.encodings)))}catch(V){!("transport"in A)||A.transport&&A.transport.state==="connected"?this.peerConnectionState!=="connected"?X.debug("[updateAdaptation] peerConnection not connected}"):X.debug("[updateAdaptation] updateRtpSenderEncodings failed",V):X.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(A,l){try{if(!Bi().supportSetRtpSenderParameters||A.length!==l.length)return;for(let g=0;g{let w=g[y],b=C.mediaDescriptions.find(M=>M.attributes.mid===w);b&&(kg(b,m),Fy(b,m,this.store.codec))}),ea(C)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=A=>{var l;(l=this.onFirstAudioReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoReceived=A=>{var l;(l=this.onFirstVideoReceived)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstAudioDecoded=A=>{var l;(l=this.onFirstAudioDecoded)===null||l===void 0||l.call(this,A)},this.statsFilter.onFirstVideoDecoded=(A,l,g)=>{var C;(C=this.onFirstVideoDecoded)===null||C===void 0||C.call(this,A,l,g)},this.statsFilter.onSelectedLocalCandidateChanged=(A,l)=>{var g;(g=this.onSelectedLocalCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onSelectedRemoteCandidateChanged=(A,l)=>{var g;(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0||g.call(this,A,l)},this.statsFilter.onFirstVideoDecodedTimeout=A=>{var l;(l=this.onFirstVideoDecodedTimeout)===null||l===void 0||l.call(this,A)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(A,l){if(A.length===l.length)for(let b=0;b200&&(y=k._scalabilityMode)!==null&&y!==void 0&&y.numSpatialLayers&&((w=k._scalabilityMode)===null||w===void 0?void 0:w.numSpatialLayers)>1&&this.store.codec==="vp8"){let V={},K={high:1e3*(k._encoderConfig.bitrateMax-50),medium:5e4};V.encodings=[{rid:"m",active:!0,maxBitrate:K.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:K.high}];let q=M.sender.getParameters();await M.sender.setParameters(Object.assign(q,V))}}}async applySimulcastEncodings(A,l){if(!uo()&&A.length===l.length)for(let g=0;g200&&(m=A._scalabilityMode)!==null&&m!==void 0&&m.numSpatialLayers&&((y=A._scalabilityMode)===null||y===void 0?void 0:y.numSpatialLayers)>1)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("[".concat(this.store.clientId,"] exchanging ").concat(g," ").concat(l," SDP during NVConnectionExtension.").concat(C,` -`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}async getRemoteSSRC(A){if(!this.remoteSDP)return;let l=this.remoteSDP.getSSRC(A);return l&&l.length!==0?l[0].ssrcId:void 0}setConfiguration(A){if(Bi().supportPCSetConfiguration){let l=ET.resolvePCConfiguration(A);this.peerConnection.setConfiguration(l)}A.isPreallocation&&(this.isPreallocation=!0)}},Vt(Yi.prototype,"updateRemoteRTPCapabilities",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateRemoteRTPCapabilities"),Yi.prototype),Vt(Yi.prototype,"connect",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"connect"),Yi.prototype),Vt(Yi.prototype,"updateRemoteConnect",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateRemoteConnect"),Yi.prototype),Vt(Yi.prototype,"createDataChannels",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"createDataChannels"),Yi.prototype),Vt(Yi.prototype,"receive",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"receive"),Yi.prototype),Vt(Yi.prototype,"batchReceive",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"batchReceive"),Yi.prototype),Vt(Yi.prototype,"stopReceiving",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"stopReceiving"),Yi.prototype),Vt(Yi.prototype,"muteRemote",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"muteRemote"),Yi.prototype),Vt(Yi.prototype,"unmuteRemote",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"unmuteRemote"),Yi.prototype),Vt(Yi.prototype,"muteLocal",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"muteLocal"),Yi.prototype),Vt(Yi.prototype,"unmuteLocal",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"unmuteLocal"),Yi.prototype),Vt(Yi.prototype,"close",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"close"),Yi.prototype),Vt(Yi.prototype,"updateEncoderConfig",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateEncoderConfig"),Yi.prototype),Vt(Yi.prototype,"updateSendParameters",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateSendParameters"),Yi.prototype),Vt(Yi.prototype,"replaceTrack",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"replaceTrack"),Yi.prototype),Vt(Yi.prototype,"updateAdaptation",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"updateAdaptation"),Yi.prototype),Vt(Yi.prototype,"getRemoteSSRC",[o1],Object.getOwnPropertyDescriptor(Yi.prototype,"getRemoteSSRC"),Yi.prototype),Yi);function o1(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From NVConnectionExtension.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{let C=setTimeout(()=>{this.closeSignal(),g(new ze(fe.DATACHANNEL_CONNECTION_TIMEOUT,"Datachannel connection timed out, candidates: ".concat(JSON.stringify(A.candidates))))},Ie("DC_CONNECTION_TIMEOUT"));this.dataChannel.onopen=()=>{if(this.dataChannel.readyState==="open")return clearTimeout(C),void l()},this.dataChannel.onerror=m=>{this.closeSignal(),g(m)},this.dataChannel.addEventListener("close",()=>{g(new ze(fe.DATACHANNEL_CONNECTION_TIMEOUT))})}),{transmitter:this.dataChannel,close:this.closeSignal.bind(this)}}async updateRemoteRTPCapabilities(A,l){return this._p2pConnection.updateRemoteRTPCapabilities(A,l)}send(A,l,g){var C=this;return wA(function*(){let m=yield ri(C.mutex.lock("From DataChannelConnection.send"));try{return yield*Z0(lI(C._p2pConnection.send(A,l,g)))}finally{m()}})()}async stopSending(A,l){return this._p2pConnection.stopSending(A,l)}async createDataChannels(A,l){return this._p2pConnection.createDataChannels(A,l)}async stopDataChannels(A){return this._p2pConnection.stopDataChannels(A)}async receive(A,l,g,C){return this._nvMedia?(X.debug("[DataChannelConnection] receive ".concat(A," by DataChannel.")),await this._nvMedia.reveiveByRTCMedia(A,l,this.cname)):(X.debug("[DataChannelConnection] receive ".concat(A," by WebRTC.")),await this._p2pConnection.receive(A,l,g,C))}async batchReceive(A){return[...await this._p2pConnection.batchReceive(A)]}async stopReceiving(A){return await this._p2pConnection.stopReceiving(A)}async muteRemote(A){return await this._p2pConnection.muteRemote(A)}async unmuteRemote(A){return await this._p2pConnection.unmuteRemote(A)}async muteLocal(A){return await this._p2pConnection.muteLocal(A)}async unmuteLocal(A){return await this._p2pConnection.unmuteLocal(A)}restartICE(A){var l=this;return wA(function*(){return yield*Z0(lI(l._p2pConnection.restartICE(A)))})()}close(){var A;(A=this._nvMedia)===null||A===void 0||A.close(),this._p2pConnection.close(),this.unbindConnectionEvents(this._p2pConnection)}getStats(){return this._p2pConnection.getStats()}getRemoteVideoIsReady(A){return this._p2pConnection.getRemoteVideoIsReady(A)}updateRemoteConnect(A){var l;return(l=this._nvMedia)===null||l===void 0||l.setRemoteRtpCapabilities(A),this._p2pConnection.updateRemoteConnect(A)}async updateEncoderConfig(A,l){return await this._p2pConnection.updateEncoderConfig(A,l)}async updateSendParameters(A,l){return await this._p2pConnection.updateSendParameters(A,l)}setStatsRemoteVideoIsReady(A,l){this._p2pConnection.setStatsRemoteVideoIsReady(A,l)}async replaceTrack(A,l){return await this._p2pConnection.replaceTrack(A,l)}async getRemoteSSRC(A){return this._p2pConnection.getRemoteSSRC(A)}logSDPExchange(A,l,g,C){if(Ie("SDP_LOGGING"))return X.upload("exchanging ".concat(g," ").concat(l," SDP during DataChannelConnection.").concat(C,` -`),A),l==="offer"?m=>{this.logSDPExchange(m,"answer",g==="local"?"remote":"local",C)}:void 0}static resolvePCConfiguration(A){let l={iceServers:[]};return A.iceServers?l.iceServers=A.iceServers:A.turnServer&&A.turnServer.mode!=="off"&&(eh(A.turnServer.servers)?l.iceServers=A.turnServer.servers:(l.iceServers&&l.iceServers.push(...o8.turnServerConfigToIceServers(A.turnServer.servers)),Ie("USE_TURN_SERVER_OF_GATEWAY")&&l.iceServers&&A.turnServer.serversFromGateway&&l.iceServers.push(...o8.turnServerConfigToIceServers(A.turnServer.serversFromGateway)),Ie("FORCE_TURN_TCP")?l.iceTransportPolicy="relay":A.turnServer.servers.concat(A.turnServer.serversFromGateway||[]).forEach(g=>{g.forceturn&&(l.iceTransportPolicy="relay")}))),Ie("ENABLE_ENCODED_TRANSFORM")&&Bi().supportWebRTCEncodedTransform&&(l.encodedInsertableStreams=!0),l}static turnServerConfigToIceServers(A){let l=[];return A.forEach(g=>{g.security?g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turns:".concat(ed(g.turnServerURL),":").concat(g.tcpport,"?transport=tcp")}):(g.udpport&&!Ie("FORCE_TURN_TCP")&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.udpport,"?transport=udp")}),g.tcpport&&l.push({username:g.username,credential:g.password,credentialType:"password",urls:"turn:".concat(g.turnServerURL,":").concat(g.tcpport,"?transport=tcp")}))}),l}bindPCEvents(){this._p2pConnection.onICEConnectionStateChange=A=>{var l;return(l=this.onICEConnectionStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onConnectionStateChange=A=>{var l;return(l=this.onConnectionStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onDTLSTransportStateChange=A=>{var l;return(l=this.onDTLSTransportStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onDTLSTransportError=A=>{var l;return(l=this.onDTLSTransportError)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onICETransportStateChange=A=>{var l;return(l=this.onICETransportStateChange)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstAudioReceived=A=>{var l;return(l=this.onFirstAudioReceived)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoReceived=A=>{var l;return(l=this.onFirstVideoReceived)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstAudioDecoded=A=>{var l;return(l=this.onFirstAudioDecoded)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoRender=A=>{var l;return(l=this.onFirstVideoRender)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoBufferReady=A=>{var l;return(l=this.onFirstVideoBufferReady)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onFirstVideoDecoded=(A,l,g)=>{var C;return(C=this.onFirstVideoDecoded)===null||C===void 0?void 0:C.call(this,A,l,g)},this._p2pConnection.onFirstVideoDecodedTimeout=A=>{var l;return(l=this.onFirstVideoDecodedTimeout)===null||l===void 0?void 0:l.call(this,A)},this._p2pConnection.onSelectedLocalCandidateChanged=(A,l)=>{var g;return(g=this.onSelectedLocalCandidateChanged)===null||g===void 0?void 0:g.call(this,A,l)},this._p2pConnection.onSelectedRemoteCandidateChanged=(A,l)=>{var g;return(g=this.onSelectedRemoteCandidateChanged)===null||g===void 0?void 0:g.call(this,A,l)}}closeSignal(){this.dataChannel.close(),this.peerConnection.close()}unbindConnectionEvents(A){A.onConnectionStateChange=void 0,A.onICEConnectionStateChange=void 0,A.onICETransportStateChange=void 0,A.onDTLSTransportStateChange=void 0,A.onDTLSTransportError=void 0,A.onFirstAudioDecoded=void 0,A.onFirstAudioReceived=void 0,A.onFirstVideoDecoded=void 0,A.onFirstVideoReceived=void 0,A.onSelectedLocalCandidateChanged=void 0,A.onSelectedRemoteCandidateChanged=void 0,A.onFirstVideoDecodedTimeout=void 0}setConfiguration(A){this._p2pConnection.setConfiguration(A)}},Vt(Nn.prototype,"connect",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"connect"),Nn.prototype),Vt(Nn.prototype,"updateRemoteRTPCapabilities",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"updateRemoteRTPCapabilities"),Nn.prototype),Vt(Nn.prototype,"createDataChannels",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"createDataChannels"),Nn.prototype),Vt(Nn.prototype,"receive",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"receive"),Nn.prototype),Vt(Nn.prototype,"stopReceiving",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"stopReceiving"),Nn.prototype),Vt(Nn.prototype,"muteRemote",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"muteRemote"),Nn.prototype),Vt(Nn.prototype,"unmuteRemote",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"unmuteRemote"),Nn.prototype),Vt(Nn.prototype,"muteLocal",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"muteLocal"),Nn.prototype),Vt(Nn.prototype,"unmuteLocal",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"unmuteLocal"),Nn.prototype),Vt(Nn.prototype,"close",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"close"),Nn.prototype),Vt(Nn.prototype,"updateEncoderConfig",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"updateEncoderConfig"),Nn.prototype),Vt(Nn.prototype,"updateSendParameters",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"updateSendParameters"),Nn.prototype),Vt(Nn.prototype,"replaceTrack",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"replaceTrack"),Nn.prototype),Vt(Nn.prototype,"getRemoteSSRC",[Vc],Object.getOwnPropertyDescriptor(Nn.prototype,"getRemoteSSRC"),Nn.prototype),Nn);function Vc(a,A,l){let g=a[A];if(typeof g!="function")throw new Error("Cannot use mutex on object property.");return l.value=async function(){let C=this.mutex,m=await C.lock("From DataChannelConnection.".concat(A));try{for(var y=arguments.length,w=new Array(y),b=0;b{}),Ae(this,"_store",void 0),Ae(this,"_joinChannelServiceRecordIndex",void 0),Ae(this,"_transmitter",void 0),Ae(this,"_useCompress",void 0),Ae(this,"_inflateLength",0),Ae(this,"_deflateLength",0),this._store=C,this._name=A,this._retryConfig=function(m){for(var y=1;yg.close(),500):g.close(),this._transmitter=void 0}this.state=A?"failed":"closed",this._closeEstablishingTransmitter&&this._closeEstablishingTransmitter()}reconnect(A,l){if(!this._transmitter)return void X.warning("[".concat(this._name,"] can not reconnect, no websocket"));var g;A!==void 0&&(this.reconnectMode=A),X.debug("[".concat(this._name,"] reconnect is triggered initiative")),typeof this._joinChannelServiceRecordIndex=="number"&&((g=this._store)===null||g===void 0||g.recordJoinChannelService({status:"error",errors:[new Error(l)]},this._joinChannelServiceRecordIndex));let C=this._transmitter.onclose;this._transmitter.onclose=null,this._transmitter.close(),C&&C.bind(this._transmitter)({code:9999,reason:l})}getInflateData(){let A=this._inflateLength,l=this._deflateLength;return this.clearInflateData(),{inflateLength:A,deflateLength:l}}setInflateData(A){this._deflateLength=this._deflateLength+A.originLength,this._inflateLength=this._inflateLength+A.compressedLength}clearInflateData(){this._inflateLength=0,this._deflateLength=0}}let iu=function(a){return a[a.Default=0]="Default",a[a.Ack=1]="Ack",a}({});class EW{constructor(A,l,g){Ae(this,"version",1),Ae(this,"initialRTO",void 0),Ae(this,"maxBatchAckCount",void 0),Ae(this,"maxRTO",void 0),Ae(this,"initialRTT",void 0),Ae(this,"ID",void 0),Ae(this,"rtt",void 0),Ae(this,"packetNumber",1),Ae(this,"rtoRatioMap",new Map),Ae(this,"timeoutMap",new Map),Ae(this,"unorderedPacketQueue",[]),Ae(this,"batchAckPacketQueue",[]),Ae(this,"lastOrderedPacketNumber",0),Ae(this,"batchAckTimer",void 0),Ae(this,"sendImpl",void 0),Ae(this,"receiveImpl",void 0),this.sendImpl=A,this.receiveImpl=l,this.ID=yn(7,"transmitter-"),this.initialRTO=(g==null?void 0:g.initialRTO)!==void 0?g.initialRTO:Ie("TRANSMITTER_INITIAL_RTO"),this.initialRTT=(g==null?void 0:g.initialRTT)!==void 0?g.initialRTT:Ie("TRANSMITTER_INITIAL_RTT"),this.rtt=(g==null?void 0:g.initialRTT)!==void 0?g.initialRTT:Ie("TRANSMITTER_INITIAL_RTT"),this.maxBatchAckCount=(g==null?void 0:g.maxBatchAckCount)!==void 0?g.maxBatchAckCount:Ie("TRANSMITTER_MAX_BATCH_ACK_COUNT"),this.maxRTO=(g==null?void 0:g.maxRTO)!==void 0?g.maxRTO:Ie("TRANSMITTER_MAX_RTO")}packetize(A,l){return{type:iu.Default,version:this.version,packetNumber:l,payload:A}}serialize(A){switch(A.type){case iu.Default:{let l;typeof A.payload=="string"?l=new TextEncoder().encode(A.payload):l=A.payload;let g=new ArrayBuffer(l.length+15),C=new DataView(g);return C.setUint16(0,A.version),C.setUint8(2,A.type),C.setUint32(3,A.packetNumber),qP(C,7,BigInt(A.sendTs)),new Uint8Array(C.buffer).set(l,15),g}case iu.Ack:{let l=new ArrayBuffer(16),g=new DataView(l);return g.setUint16(0,A.version),g.setUint8(2,A.type),g.setUint32(3,A.maxAckPacketNumber),g.setUint8(7,A.shift),qP(g,8,BigInt(A.ackSendTs)),l}}}deserialize(A){let l=new DataView(A),g=l.getUint16(0),C=l.getUint8(2);switch(C){case iu.Default:{let m=l.getUint32(3),y=Sf(l,7),w=A.slice(15),b=new Uint8Array(w);return{version:g,type:C,packetNumber:m,sendTs:Number(y),payload:b}}case iu.Ack:{let m=l.getUint32(3),y=l.getUint8(7),w=Sf(l,8);return{version:g,type:C,maxAckPacketNumber:m,shift:y,ackSendTs:Number(w)}}default:throw X.error("[".concat(this.ID,"] Unrecognized packet type ").concat(C)),new Error("Unrecognized packet type ".concat(C))}}sendMessage(A){Ie("DC_DEBUG_LOG")&&typeof A=="string"&&X.debug("[".concat(this.ID,"] sending message packet"),JSON.parse(A));let l=this.packetize(A,this.packetNumber);this.packetNumber=this.packetNumber===4294967295?1:this.packetNumber+1;let g=this.calculateRTO(l),C=window.setTimeout(()=>{this.resendMessage(l)},g);this.timeoutMap.set(l.packetNumber,C),this.sendPacket(l)}onData(A){let l=this.deserialize(A);l.type===iu.Default?this.ack(l):l.type===iu.Ack&&(this.updateRTT(l,Math.round(performance.now())),this.clearRTO(l))}close(){this.rtt=this.initialRTT,this.packetNumber=1,Array.from(this.timeoutMap.entries()).forEach(A=>{let[l,g]=A;window.clearTimeout(g)}),this.timeoutMap=new Map,this.rtoRatioMap=new Map,this.unorderedPacketQueue=[],this.batchAckPacketQueue=[],this.lastOrderedPacketNumber=0,this.batchAckTimer!==void 0&&window.clearTimeout(this.batchAckTimer)}resendMessage(A){let l=this.calculateRTO(A),g=window.setTimeout(()=>{Ie("DC_DEBUG_LOG")&&typeof A.payload=="string"&&X.debug("[".concat(this.ID,"] resending message packet"),JSON.parse(A.payload),"timeout: ".concat(l)),this.resendMessage(A)},l);this.timeoutMap.set(A.packetNumber,g),this.sendPacket(A)}calculateRTO(A){let l=this.rtoRatioMap.get(A.packetNumber);if(l===void 0)return this.rtoRatioMap.set(A.packetNumber,1),this.initialRTO;{let g=9*this.rtt/8*l;return this.rtoRatioMap.set(A.packetNumber,l+1),g>this.maxRTO?this.maxRTO:g}}updateRTT(A,l){let g=A.ackSendTs;this.rtt=this.rtt*(7/8)+(l-g-this.rtt)/8}ack(A){if(A.packetNumber===this.lastOrderedPacketNumber+1)for(this.batchAckPacketQueue.length>=this.maxBatchAckCount&&this.batchAck(),this.batchAckTimer?this.batchAckPacketQueue.push(A):(this.batchAckPacketQueue.push(A),this.batchAckTimer=window.setTimeout(()=>{this.batchAck()},this.rtt/8)),this.lastOrderedPacketNumber+=1,this.receiveImpl(A.payload);;){let l=this.unorderedPacketQueue[0];if(!l){this.unorderedPacketQueue.shift();break}this.batchAckTimer&&this.batchAck(),this.receiveImpl(l.payload),this.unorderedPacketQueue.shift(),this.lastOrderedPacketNumber+=1}else if(A.packetNumber<=this.lastOrderedPacketNumber){let l={ackSendTs:A.sendTs,maxAckPacketNumber:A.packetNumber,shift:0,type:iu.Ack,version:this.version};Ie("DC_DEBUG_LOG")&&X.debug("[".concat(this.ID,"] sending ack packet"),l,"packetNumber: ".concat(A.packetNumber)),this.sendPacket(l)}else if(A.packetNumber>this.lastOrderedPacketNumber){this.unorderedPacketQueue[A.packetNumber-this.lastOrderedPacketNumber-2]=A;let l={ackSendTs:A.sendTs,maxAckPacketNumber:A.packetNumber,shift:0,type:iu.Ack,version:this.version};Ie("DC_DEBUG_LOG")&&X.debug("[".concat(this.ID,"] sending ack packet"),l,"packetNumber: ".concat(A.packetNumber)),this.sendPacket(l)}}batchAck(){window.clearTimeout(this.batchAckTimer),this.batchAckTimer=void 0;let A={ackSendTs:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].sendTs,maxAckPacketNumber:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].packetNumber,shift:this.batchAckPacketQueue.length-1,type:iu.Ack,version:this.version};Ie("DC_DEBUG_LOG")&&X.debug("[".concat(this.ID,"] sending batch ack packet"),A,"shift: ".concat(this.batchAckPacketQueue.length-1)),this.sendPacket(A),this.batchAckPacketQueue=[]}sendPacket(A){A.type===iu.Default&&(A.sendTs=Math.round(performance.now()));let l=this.serialize(A);this.sendImpl(l)}clearRTO(A){for(let l=A.maxAckPacketNumber-A.shift;l<=A.maxAckPacketNumber;l++){let g=this.timeoutMap.get(l);g!==void 0&&window.clearTimeout(g),this.timeoutMap.delete(l),this.rtoRatioMap.delete(l)}}}class qx extends gW{constructor(A,l){super(A,l,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3?arguments[3]:void 0),Ae(this,"_initMutex",void 0),Ae(this,"_reconnectInterrupter",void 0),Ae(this,"_url",void 0),Ae(this,"_transmitter",void 0),Ae(this,"_addresses",void 0),Ae(this,"_reliableTransmission",void 0),Ae(this,"_textEncoder",void 0),Ae(this,"_textDecoder",void 0),this._textEncoder=new TextEncoder,this._textDecoder=new TextDecoder,this._initMutex=new Is("datachannel");let{timeout:g,timeoutFactor:C}=l,m=Math.max(300,Math.floor(3*g/5)),y=Math.max(1.2,Math.floor(8*C)/10);Va.ONLINE&&(this._retryConfig.timeout=m,this._retryConfig.timeoutFactor=y),Xi.on(Tu.NETWORK_STATE_CHANGE,(w,b)=>{w!==b&&(this.resetReconnectCount("network state change: ".concat(b," -> ").concat(w)),w===Va.ONLINE?(this._retryConfig.timeout=m,this._retryConfig.timeoutFactor=y):(this._retryConfig.timeout=g,this._retryConfig.timeoutFactor=C))})}getConnection(){if(this._reliableTransmission)return this._reliableTransmission}async init(A){let l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;this._forceCloseTimeout=l;let g=(C,m)=>{this._addresses=A,this.currentURLIndex=this._addresses.findIndex(w=>w.fingerprint||Ie("FINGERPRINT"));let y=this._addresses[this.currentURLIndex];this.state="connecting",this.createTransmitterConnection(y).then(C).catch(m),this.once(Ms.CLOSED,()=>m(new ze(fe.WS_DISCONNECT))),this.once(Ms.CONNECTED,()=>C())};return this._initMutex.lock().then(C=>new Ft((m,y)=>{g(m,y)}).then(()=>{C()}).catch(()=>{C()}))}async sendMessage(A){let l=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this._transmitter||!this._reliableTransmission)throw new ze(fe.WS_ABORT,"datachannel is not ready");try{l||(A=JSON.stringify(A));let g=this._textEncoder.encode(A),C=Gq(g,{raw:!0});this._reliableTransmission.sendMessage(C)}catch(g){throw new ze(fe.WS_ERR,"send datachannel signal message error"+g.toString())}}unbindDcCloseEventListener(){this._transmitter&&(this._transmitter.onclose=null)}sendMessageWithJSON(A){let l=JSON.stringify(A);return{compressed:l,compressedLength:l.length,origin:A}}sendMessageWithUint8Array(A){return{compressed:A,compressedLength:A.byteLength,origin:A}}createTransmitterConnection(A){return this.connectionID+=1,this._joinChannelServiceRecordIndex=void 0,this._url="dc://".concat(A.ip,":").concat(A.port),new Ft((l,g)=>{var C;let m=()=>{X.debug("[".concat(this._name,"] datachannel opened:"),this._url),this.reconnectMode="recover",this.state="connected",this.resetReconnectCount("opened"),l()},y=async k=>{var V;if((V=this._closeEstablishingTransmitter)===null||V===void 0||V.call(this),X.debug("[".concat(this._name,"] datachannel close ").concat(this._url,", code: ").concat(k.code,", reason: ").concat(k.reason,", current mode: ").concat(this.reconnectMode)),this._reconnectCount{try{var V;(V=this._reliableTransmission)===null||V===void 0||V.onData(k.data)}catch(K){console.log(K)}};this._transmitter&&(this._transmitter.onclose=null,this._transmitter.close()),this._reliableTransmission&&(this._reliableTransmission.close(),this._reliableTransmission=void 0),X.debug("[".concat(this._name,"] start connect, address: ").concat(JSON.stringify(A)));let b=(C=this._store)===null||C===void 0?void 0:C.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"}),M=Date.now();rs(this,Ms.TO_CONNECT_DATACHANNEL).then(k=>{var V,K;if(!k)throw new Error("transmissonInfo not exist yet");let{transmitter:q,close:ce}=k;this._transmitter=q,(V=this._store)===null||V===void 0||V.signalChannelOpen();let oe=Date.now()-M;X.debug("[choose dc] dc open cost ".concat(oe,"ms")),this._reliableTransmission=new EW(le=>{var pe;this._transmitter&&this._transmitter.readyState==="open"&&((pe=this._transmitter)===null||pe===void 0||pe.send(le))},le=>{if(typeof le=="string")this.emit(Ms.ON_MESSAGE,le);else{let pe=up(le,{raw:!0}).buffer,Se=this._textDecoder.decode(pe);this.emit(Ms.ON_MESSAGE,Se)}}),this._closeEstablishingTransmitter=()=>{var le;(le=this._reliableTransmission)===null||le===void 0||le.close(),this._reliableTransmission=void 0,ce()},m&&m(),q.onclose=y,q.onmessage=w,(K=this._store)===null||K===void 0||K.recordJoinChannelService({endTs:Date.now(),status:"success"},b),this._joinChannelServiceRecordIndex=b}).catch(k=>{var V;if((V=this._store)===null||V===void 0||V.recordJoinChannelService({endTs:Date.now(),status:k instanceof ze&&k.code===fe.WS_ABORT?"aborted":"error",errors:[k]},b),this.state!=="closed"){if(k instanceof ze&&k.code===fe.WS_ERR){let K=new ze(fe.WS_ERR,"init datachannel failed! Error: ".concat(k.toString()));return X.error("[".concat(this._name,"]").concat(K)),void g(K)}y&&y(k)}else g(new ze(fe.WS_DISCONNECT,"datachannel is closed: ".concat(k.toString())))})})}async reconnectWithAction(A){let l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._reconnectCount>=this._retryConfig.maxRetryCount||!this._addresses||this.state==="closed")return!1;this._onlineReconnectListener||Xi.networkState!==Va.OFFLINE||(this._onlineReconnectListener=Xi.onlineWaiter&&Xi.onlineWaiter.then(()=>{this._onlineReconnectListener=void 0}));let g=!0;if(this._reconnectInterrupter=()=>{g=!1},l){let w=Y1(this._reconnectCount,this._retryConfig);X.debug("[".concat(this._name,"] wait ").concat(w,"ms to reconnect datachannel, mode: ").concat(A)),await Ft.race([Ks(w),this._onlineReconnectListener||new Ft(()=>{})])}if(this.state==="closed"||!g)return!1;this._reconnectCount+=1;let C=async(w,b)=>{this.emit(Ms.RECONNECT_CREATE_CONNECTION,b),await this.createTransmitterConnection(w)};try{if(A==="retry"){let w=this._addresses[this.currentURLIndex];await C(w,A)}else if(A==="tryNext"){this.currentURLIndex+=1;for(let b=this.currentURLIndex;b=this._addresses.length)return X.debug("[".concat(this._name,"] the available addresses are exhausted, change to recover")),await this.reconnectWithAction("recover",!1);X.debug("[".concat(this._name,"] datachannel url length: ").concat(this._addresses.length," current index: ").concat(this.currentURLIndex));let w=this._addresses[this.currentURLIndex];await C(w,A)}else A==="recover"&&(X.debug("[".concat(this._name,"] start to failback to websocket")),this.resetReconnectCount("recover mode"),this.emit(Ms.FAILBACK));return!0}catch(w){var m,y;return X.error("[".concat(this._name,"] reconnect failed"),w.toString()),w!=null&&(m=w.data)!==null&&m!==void 0&&m.desc&&Array.isArray(w.data.desc)&&w.data.desc.length&&Rt(y=w.data.desc).call(y,"dynamic key expired")?(this.emit(Ms.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1):await this.reconnectWithAction(A,l)}}}class hW extends io{get connectionState(){return this._connectionState}set connectionState(A){A!==this._connectionState&&(this._connectionState=A,A===vi.CONNECTED?this.emit(or.WS_CONNECTED):A===vi.RECONNECTING?this.emit(or.WS_RECONNECTING,this._websocketReconnectReason):A===vi.CLOSED&&this.emit(or.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket?this.websocket.url:null}get rtt(){return this.rttRolling.mean()}processPendingNotifications(){this.pendingNotifications.length!==0&&(X.debug("[".concat(this.clientId,"] processing ").concat(this.pendingNotifications.length," pending notifications")),this.pendingNotifications.forEach(A=>{let{type:l,message:g}=A;this.emit(l,g),l===Or.ON_NOTIFICATION&&this.handleNotification(g),l===Or.ON_USER_BANNED&&this.handleUserBanned(g)}),this.pendingNotifications=[])}handleUserBanned(A){switch(A.error_code){case 14:this.close(bi.UID_BANNED);break;case 15:this.close(bi.IP_BANNED);break;case 16:this.close(bi.CHANNEL_BANNED)}}constructor(A,l){super(),Ae(this,"__name__","DataChannelSignal"),Ae(this,"_disconnectedReason",void 0),Ae(this,"_websocketReconnectReason",void 0),Ae(this,"_connectionState",vi.CLOSED),Ae(this,"reconnectToken",void 0),Ae(this,"websocket",void 0),Ae(this,"openConnectionTime",void 0),Ae(this,"clientId",void 0),Ae(this,"lastMsgTime",Date.now()),Ae(this,"uploadCache",[]),Ae(this,"uploadCacheInterval",void 0),Ae(this,"rttRolling",new OR(5)),Ae(this,"pingpongTimer",void 0),Ae(this,"inflateDataTimer",void 0),Ae(this,"pingpongTimeoutCount",0),Ae(this,"ortc",void 0),Ae(this,"joinResponse",void 0),Ae(this,"multiIpOption",void 0),Ae(this,"initError",void 0),Ae(this,"spec",void 0),Ae(this,"store",void 0),Ae(this,"isJoining",!1),Ae(this,"pendingNotifications",[]),Ae(this,"onWebsocketMessage",g=>{if(g instanceof ArrayBuffer)return void this.emit(or.ON_BINARY_DATA,g);let C=JSON.parse(g);if(Ie("DC_DEBUG_LOG")&&X.debug("[datachannel-signal] received packet",C),this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(C,"_id")){let m="res-@".concat(C._id);this.emit(m,C._result,C._message)}else Object.prototype.hasOwnProperty.call(C,"_type")&&(this.isJoining?C._type===Or.ON_NOTIFICATION||C._type===Or.ON_USER_BANNED?(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED&&this.handleUserBanned(C._message)):(this.pendingNotifications.push({type:C._type,message:C._message}),X.debug("[".concat(this.clientId,"] cached notification during join: ").concat(C._type))):(this.emit(C._type,C._message),C._type===Or.ON_NOTIFICATION&&this.handleNotification(C._message),C._type===Or.ON_USER_BANNED&&this.handleUserBanned(C._message)))}),this.clientId=A.clientId,this.spec=A,this.store=l,this.websocket=new qx("gateway-".concat(this.clientId),this.spec.retryConfig,!0,l),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===vi.CONNECTED&&this.reconnect("retry",Ou.OFFLINE)})}async request(A,l,g,C){let m=yn(6,""),y={_id:m,_type:A,_message:l},w=this.websocket.connectionID,b=()=>new Ft((ce,oe)=>{if(this.connectionState===vi.CONNECTED)return ce();let le=()=>{this.off(or.WS_CLOSED,pe),ce()},pe=()=>{this.off(or.WS_CONNECTED,le),oe(new ze(fe.WS_ABORT))};this.once(or.WS_CONNECTED,le),this.once(or.WS_CLOSED,pe),A!==sr.PUBLISH&&A!==sr.SUBSCRIBE&&A!==sr.UNSUBSCRIBE&&A!==sr.UNPUBLISH&&A!==sr.CONTROL&&A!==sr.RESTART_ICE||this.once(or.DISCONNECT_P2P,()=>{oe(new ze(fe.DISCONNECT_P2P))}),A!==sr.PUBLISH&&A!==sr.RESTART_ICE||this.once(or.ABORT_P2P_EXECUTION,()=>{oe(new ze(fe.DISCONNECT_P2P))})});if(this.connectionState!==vi.CONNECTING&&this.connectionState!==vi.RECONNECTING||A===sr.JOIN||A===sr.REJOIN||await b(),A===sr.LEAVE&&(this.websocket.unbindDcCloseEventListener(),C=!0),Ie("DC_DEBUG_LOG")&&X.debug("[datachannel-signal] sendMessage",y),await this.websocket.sendMessage(y,!0,!1),C)return;let M=new Ft((ce,oe)=>{let le=!1,pe=(be,Ue)=>{le=!0,ce({isSuccess:be==="success",message:Ue||{}}),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.emit(or.REQUEST_SUCCESS,A,l)};this.once("res-@".concat(m),pe);let Se=()=>{oe(new ze(fe.WS_ABORT,"type: ".concat(A))),this.off(or.WS_CLOSED,Se),this.off(or.WS_RECONNECTING,Se),this.off("res-@".concat(m),pe)};this.once(or.WS_CLOSED,Se),this.once(or.WS_RECONNECTING,Se),Ks(Ie("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==w||le||(X.warning("dc request timeout, type: ".concat(A)),this.emit(or.REQUEST_TIMEOUT,A,l))})}),k=null;try{k=await M}catch(ce){if(this.connectionState===vi.CLOSED||A===sr.LEAVE)throw new ze(fe.WS_ABORT);return!this.spec.forceWaitGatewayResponse||g?ce.throw():A===sr.JOIN||A===sr.REJOIN?null:(await b(),await this.request(A,l))}if(k.isSuccess)return k.message;let V=Number(k.message.error_code||k.message.code),K=O2(V),q=new ze(fe.UNEXPECTED_RESPONSE,"".concat(K.desc,": ").concat(k.message.error_str),{code:V,data:k.message});return K.action==="success"?k.message:(X.warning("[".concat(this.websocket.connectionID,"] unexpected response from type ").concat(A,", error_code: ").concat(V,", message: ").concat(K.desc,", action: ").concat(K.action)),V===mr.ERR_TOO_MANY_BROADCASTERS?((A===sr.JOIN||A===sr.REJOIN)&&(this.initError=q,this.close()),q.throw()):K.action==="failed"?q.throw():K.action==="quit"?(this.initError=q,this.close(),q.throw()):(V===mr.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=k.message.option,X.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Ou.MULTI_IP)):this.reconnect(K.action,Ou.SERVER_ERROR),A===sr.JOIN||A===sr.REJOIN?null:await this.request(A,l)))}waitMessage(A,l){return new Ft(g=>{let C=m=>{(!l||l(m))&&(this.off(A,C),g(m))};this.on(A,C)})}uploadWRTCStats(A){if(!this.store.sessionId)return void X.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));let l={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:A};this.upload(pn.WRTC_STATS,l)}upload(A,l){let g={_type:A,_message:l};try{this.websocket.sendMessage(g)}catch{let C=Ie("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(g),this.uploadCache.length>C&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==vi.CONNECTED)return;let m=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(m._type,m._message)},Ie("UPLOAD_CACHE_INTERVAL")||2e3))}}async send(A,l){let g={_type:A,_message:l};await this.websocket.sendMessage(g)}init(A){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ft((l,g)=>{this.once(or.WS_CONNECTED,()=>l(this.joinResponse)),this.once(or.WS_CLOSED,()=>g(this.initError||new ze(fe.WS_ABORT))),this.connectionState=vi.CONNECTING,this.websocket.init(A).catch(g),this.websocket.once(Ms.FAILBACK,()=>{g(new ze(fe.INIT_DATACHANNEL_TIMEOUT))}),this.inflateDataTimer&&window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=window.setInterval(()=>{this.handleInflateData()},2e4),setTimeout(()=>{this.openConnectionTime===void 0&&(X.debug("[".concat(this.clientId,"] init datachannel timeout while join with failback to websocket")),g(new ze(fe.INIT_DATACHANNEL_TIMEOUT)))},Ie("DC_JOIN_WITH_FAILBACK"))})}close(A){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.inflateDataTimer&&(this.handleInflateData(),window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this.isJoining=!1,this.pendingNotifications=[],this._disconnectedReason=A||bi.LEAVE,this.connectionState=vi.CLOSED,X.debug("[".concat(this.clientId,"] ")+"will close datachannel in signal"),this.websocket.close(),A===bi.FALLBACK&&(this.websocket.removeAllListeners(),this.websocket=new qx("gateway-".concat(this.clientId),this.spec.retryConfig,!0,this.store),this.handleWebsocketEvents())}async join(){if(this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),Ie("DC_PINGPONG_INTERVAL")),!this.joinResponse){this.emit(or.ABORT_P2P_EXECUTION),this.store.signalConnected();let A=await rs(this,or.REQUEST_JOIN_INFO);this.store.joinReq(),this.isJoining=!0,this.pendingNotifications=[];let l=await this.request(sr.JOIN,A);if(this.store.joinRep(),this.ortc=A==null?void 0:A.ortc,!l)return this.emit(or.REPORT_JOIN_GATEWAY,fe.TIMEOUT,this.url||""),!1;this.joinResponse=l,this.emit(or.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=vi.CONNECTED,this.isJoining=!1,this.processPendingNotifications(),!0}async rejoin(){if(!this.reconnectToken)throw new ze(fe.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");let A=o2(this,or.REQUEST_REJOIN_INFO);A.token=this.reconnectToken;let l=await this.request(sr.REJOIN,A);return!!l&&(this.connectionState=vi.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),Ie("DC_PINGPONG_INTERVAL")),l.peers&&l.peers.forEach(g=>{this.emit(Or.ON_USER_ONLINE,{uid:g.uid}),g.audio&&this.emit(Or.ON_ADD_AUDIO_STREAM,{uid:g.uid,uint_id:g.uint_id,audio:!0,ssrcId:g.audio_ssrc}),g.video&&this.emit(Or.ON_ADD_VIDEO_STREAM,{uid:g.uid,uint_id:g.uint_id,video:!0,ssrcId:g.video_ssrc}),g.audio_mute?this.emit(Or.MUTE_AUDIO,{uid:g.uid}):this.emit(Or.UNMUTE_AUDIO,{uid:g.uid}),g.video_mute?this.emit(Or.MUTE_VIDEO,{uid:g.uid}):this.emit(Or.UNMUTE_VIDEO,{uid:g.uid}),g.audio_enable_local?this.emit(Or.ENABLE_LOCAL_AUDIO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_AUDIO,{uid:g.uid}),g.video_enable_local?this.emit(Or.ENABLE_LOCAL_VIDEO,{uid:g.uid}):this.emit(Or.DISABLE_LOCAL_VIDEO,{uid:g.uid}),g.audio||g.video||this.emit(Or.ON_REMOVE_STREAM,{uid:g.uid,uint_id:g.uint_id})}),!0)}reconnect(A,l){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(A,l)}async downgradeCodec(A){if(!this.ortc)return!1;let l={downgrade_codec:A,ortc:this.ortc};return!!await this.request(sr.DOWNGRADE_CODEC,l)}handleNotification(A){X.debug("[".concat(this.clientId,"] receive notification: "),A);let l=O2(A.code);if(l.action!=="success"){if(l.action!=="failed")return l.action==="quit"?(l.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(bi.UID_BANNED),void this.close()):void this.reconnect(l.action,Ou.SERVER_ERROR);X.error("[".concat(this.clientId,"] ignore error: "),l.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1,Ie("DC_DEBUG_LOG")&&console.debug("[datachannel-signal] pingpongTimeoutCount: ".concat(this.pingpongTimeoutCount));let A=Ie("PING_PONG_TIME_OUT"),l=Date.now();this.pingpongTimeoutCount>=A&&(X.warning("[datachannel-signal] PINGPONG Timeout. Last Socket Message: ".concat(l-this.lastMsgTime,"ms")),l-this.lastMsgTime>Ie("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("recover",Ou.FALLBACK):this.request(sr.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;let g=Date.now()-l;this.rttRolling.add(g),Ie("REPORT_STATS")&&this.send(sr.PING_BACK,{pingpongElapse:g})}).catch(g=>{})}handleInflateData(){let{inflateLength:A,deflateLength:l}=this.websocket.getInflateData();A!==0&&l!==0&&this.upload(pn.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:l,ws_inflate_length:A})}handleWebsocketEvents(){this.websocket.on(Ms.RECONNECT_CREATE_CONNECTION,A=>{this.emit(or.WS_RECONNECT_CREATE_CONNECTION,A)}),this.websocket.on(Ms.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(Ms.CLOSED,()=>{this.connectionState=vi.CLOSED}),this.websocket.on(Ms.FAILED,()=>{this._disconnectedReason=bi.NETWORK_ERROR,this.connectionState=vi.CLOSED}),this.websocket.on(Ms.RECONNECTING,A=>{this._websocketReconnectReason=A,this.joinResponse=void 0,this.connectionState===vi.CONNECTED?this.connectionState=vi.RECONNECTING:this.connectionState=vi.CONNECTING}),this.websocket.on(Ms.WILL_RECONNECT,(A,l)=>{if(o2(this,or.IS_P2P_DISCONNECTED)&&A==="retry")return X.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),this.reconnectToken=void 0,this.emit(or.NEED_RENEW_SESSION),this.emit(or.DISCONNECT_P2P),l("tryNext");A!=="retry"&&(X.debug("".concat(this.clientId," websockt will_connect event, renewSession reconnectMode is ").concat(A)),this.reconnectToken=void 0,this.emit(or.NEED_RENEW_SESSION),this.emit(or.DISCONNECT_P2P)),l(A)}),this.websocket.on(Ms.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(A=>{X.warning("[".concat(this.clientId,"] rejoin failed ").concat(A)),this.reconnect("tryNext",Ou.SERVER_ERROR)}):this.join().catch(A=>{if(this.emit(or.REPORT_JOIN_GATEWAY,A.message||A.code,this.url||""),A instanceof ze&&A.code===fe.UNEXPECTED_RESPONSE&&A.data.code===mr.ERR_NO_AUTHORIZED)return X.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",Ou.SERVER_ERROR);X.error("[".concat(this.clientId,"] join gateway request failed"),A.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Ou.SERVER_ERROR):(this.initError=A,this.close())})}),this.websocket.on(Ms.REQUEST_NEW_URLS,(A,l)=>{rs(this,or.REQUEST_RECOVER,this.multiIpOption).then(A).catch(l)}),this.websocket.on(Ms.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Or.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(Ms.TO_CONNECT_DATACHANNEL,(A,l)=>{rs(this,or.PRE_CONNECT_PC).then(A).catch(l)}),this.websocket.on(Ms.FAILBACK,()=>{this.openConnectionTime!==void 0&&this.emit(or.DATACHANNEL_FAILBACK)})}}let IW={name:"DataChannelConnection",create:function(a){let{store:A,spec:l}=a;return new uW(l,A)}},Wx={name:"DataChannelSignal",create:function(a){let{store:A,spec:l}=a;return new hW(l,A)}};Of(),Mn("PROCESS_ID","process-".concat(yn(8,""),"-").concat(yn(4,""),"-").concat(yn(4,""),"-").concat(yn(4,""),"-").concat(yn(12,""))),function(){let a;try{a=window.localStorage.getItem("websdk_ng_global_parameter")}catch(A){return void X.error("Error loading sdk config",A.message)}if(a)try{let A=JSON.parse(window.atob(a)),l=Date.now();X.debug("Loading global parameters from cache",A),Object.keys(A).forEach(g=>{if(Object.prototype.hasOwnProperty.call(zi,g)){let{value:C,expires:m}=A[g];if(m&&m<=l)return;Vr[g]=C,zi[g]=C}})}catch(A){X.error("Error loading mutableParamsCache: ".concat(a),A.message)}}(),Array.isArray(Vr.AREAS)&&Vr.AREAS.length>0&&mh(Vr.AREAS,!0);let ZO=(a,A,l)=>{X.debug("setParameter key:".concat(a,", value:").concat(JSON.stringify(A))),Mn(a,A,l)};MA(PO,!1),MA(Yq,!1),MA(aQ,!1),MA(Zq,!1),MA(yx,!1),MA(Yx,!1),MA(Ip,!1),MA(lW,!1),MA(IW,!1),MA(Wx,!1);let Ts=function(a){let A=new io,l=a,g={getListeners:A.getListeners.bind(A),on:(C,m)=>(function(y,w){y===nc.SECURITY_POLICY_VIOLATION&&EQ(w,!0)}(C,m),A.on.bind(A)(C,m)),addListener:A.addListener.bind(A),once:A.once.bind(A),off:A.off.bind(A),removeAllListeners:A.removeAllListeners.bind(A),emit:A.emit.bind(A),safeEmit:A.safeEmit.bind(A)};return K7(K7({},l),g)}({__TRACK_LIST__:ah,VERSION:Cn,BUILD:o4,ESM_BUNDLER:!1,ESM:!1,UMD:!0,DEV:!1,setParameter:ZO,getParameter:Ie,getSupportedCodec:async function(){let a={audio:[],video:[]};try{let A=new RTCPeerConnection,l=await async function(g){let C;return Bi().supportUnifiedPlan?(g.addTransceiver("video",{direction:"recvonly"}),g.addTransceiver("audio",{direction:"recvonly"}),C=(await g.createOffer()).sdp):C=(await g.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0})).sdp,C}(A);if(!l)return a;A.close(),A=null,a=function(g){let C={video:[],audio:[]};return g.match(/ VP8/i)&&C.video.push("VP8"),g.match(/ VP9/i)&&C.video.push("VP9"),g.match(/ AV1/i)&&C.video.push("AV1"),g.match(/ H264/i)&&C.video.push("H264"),g.match(/ H265/i)&&C.video.push("H265"),g.match(/ opus/i)&&C.audio.push("OPUS"),g.match(/ PCMU/i)&&C.audio.push("PCMU"),g.match(/ PCMA/i)&&C.audio.push("PCMA"),g.match(/ G722/i)&&C.audio.push("G722"),C}(l)}catch(A){throw new ze(fe.CREATE_OFFER_FAILED,A.toString&&A.toString()).print()}return a},checkSystemRequirements:function(){let a=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],A=tr.reportApiInvoke(null,{name:Co.CHECK_SYSTEM_REQUIREMENTS,options:[],tag:Gn.TRACER}),l=function(){let m=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],y=!1;try{let w=window.RTCPeerConnection,b=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,M=window.WebSocket;y=!(!w||!M),m&&!b&&(y=!1),y&&Ld()&&YP(75)&&new w().close()}catch(w){X.error("check system requirement failed: ",w),y=!1}return y}(a),g=sO();X.debug("checkSystemRequirements, api:",l,"browser",g);let C=l&&g;return A.onSuccess(C),Ie("IGNORE_RTC_DEVICE_CHECK")?l:C},getDevices:function(a){return p1.enumerateDevices(!0,!0,a)},getMicrophones:function(a){return p1.getRecordingDevices(a)},getCameras:function(a){return p1.getCamerasDevices(a)},getElectronScreenSources:aU,getPlaybackDevices:function(a){return p1.getSpeakers(a)},createClient:oO,createCameraVideoTrack:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=Ie("CAMERA_CAPTURE_CONFIG"),l=yn(8,"track-cam-"),g=tr.reportApiInvoke(null,{id:l,tag:Gn.TRACER,name:Co.CREATE_CAM_VIDEO_TRACK,options:[Qn({},a),A]});A&&(a.encoderConfig=A);let C=WR(a),m=null;X.info("start create camera video track with config",JSON.stringify(a),"trackId",l);try{m=(await z1({video:C},l)).getVideoTracks()[0]||null}catch(w){throw g.onError(w),w}if(!m){let w=new nt(fe.UNEXPECTED_ERROR,"can not find track in media stream");return g.onError(w),w.throw(X)}if(a.optimizationMode&&Eh(l,m,a,ya(a.encoderConfig)),Ie("USE_STANDARD_BITRATE_DEFAULT")){let w=ya(a.encoderConfig);a.encoderConfig=w,delete w.bitrateMax,delete w.bitrateMin}let y=new uy(m,a,C,a.scalabiltyMode?kf(a.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},a.optimizationMode,l);return g.onSuccess(y.getTrackId()),X.info("create camera video success, trackId:",l),y},createCustomVideoTrack:function(a){let A=yn(8,"track-cus-"),l=tr.reportApiInvoke(null,{id:A,tag:Gn.TRACER,name:Co.CREATE_CUSTOM_VIDEO_TRACK,options:[a]});Ie("USE_STANDARD_BITRATE_DEFAULT")&&(delete a.bitrateMax,delete a.bitrateMin);let g=new Pi(a.mediaStreamTrack,{width:a.width,height:a.height,frameRate:a.frameRate,bitrateMax:a.bitrateMax,bitrateMin:a.bitrateMin},a.scalabiltyMode?kf(a.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},a.optimizationMode,A,[$i.CUSTOM_TRACK]);return l.onSuccess(g.getTrackId()),X.info("create custom video track success with config",a,"trackId",g.getTrackId()),g},createScreenVideoTrack:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"disable",l=typeof A=="object"?function(K){let q=ul(K);return Mf()&&K.suppressLocalAudioPlayback&&(q.suppressLocalAudioPlayback=K.suppressLocalAudioPlayback),VR()&&K.restrictOwnAudio&&(q.restrictOwnAudio=!0),q}(A):void 0;l&&(A="auto");let g=yn(8,"track-scr-v-"),C=tr.reportApiInvoke(null,{id:g,tag:Gn.TRACER,name:Co.CREATE_SCREEN_VIDEO_TRACK,options:[Qn({},a),A]});a.encoderConfig?typeof a.encoderConfig=="string"||a.encoderConfig.width&&a.encoderConfig.height||(a.encoderConfig.width={max:1920},a.encoderConfig.height={max:1080}):a.encoderConfig="1080p_2";let m=function(K){let q={};K.screenSourceType&&(q.mediaSource=K.screenSourceType),K.extensionId&&Tg()&&(q.extensionId=K.extensionId);let{displaySurface:ce,selfBrowserSurface:oe,surfaceSwitching:le,systemAudio:pe,preferCurrentTab:Se,windowAudio:be,monitorTypeSurfaces:Ue}=K;(Nd(107)||ol(107)||ZE(93))&&(ce&&(zo(ce,"displaySurface",["browser","window","monitor"]),q.displaySurface=ce),oe?(zo(oe,"selfBrowserSurface",["exclude","include"]),q.selfBrowserSurface=oe):q.selfBrowserSurface="include",le&&(zo(le,"surfaceSwitching",["exclude","include"]),q.surfaceSwitching=le)),(Nd(105)||ol(105)||ZE(91))&&pe&&(zo(pe,"systemAudio",["exclude","include"]),q.systemAudio=pe),(Nd(94)||ol(94)||ZE(80))&&Se&&(q.preferCurrentTab=!0),(Nd(141)||ol(141)||ZE(125))&&be&&(zo(be,"windowAudio",["exclude","system"]),q.windowAudio=be),(Nd(119)||ol(119)||ZE(105))&&Ue&&(zo(Ue,"monitorTypeSurfaces",["exclude","include"]),q.monitorTypeSurfaces=Ue),K.electronScreenSourceId&&(q.sourceId=K.electronScreenSourceId);let xe=K.encoderConfig?h2(K.encoderConfig):null;return q.mandatory={chromeMediaSource:"desktop",maxWidth:xe?xe.width:void 0,maxHeight:xe?xe.height:void 0},xe&&(xe.frameRate&&(typeof xe.frameRate=="number"?(q.mandatory.maxFrameRate=xe.frameRate,q.mandatory.minFrameRate=xe.frameRate):(q.mandatory.maxFrameRate=xe.frameRate.max||xe.frameRate.ideal||xe.frameRate.exact||void 0,q.mandatory.minFrameRate=xe.frameRate.min||xe.frameRate.ideal||xe.frameRate.exact||void 0),q.frameRate=xe.frameRate),xe.width&&(q.width=xe.width),xe.height&&(q.height=xe.height)),q}(a),y=null,w=null,b=Bi();if(!b.supportShareAudio&&A==="enable"){let K=new nt(fe.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return C.onError(K),K.throw(X)}X.info("start create screen video track with config",a,"withAudio",A,"trackId",g);let M=b.supportShareAudio&&A!=="disable";try{let K=await z1({screen:m,screenAudio:M?l||!0:void 0},g);y=K.getVideoTracks()[0]||null,w=K.getAudioTracks()[0]||null}catch(K){throw C.onError(K),K}if(!y){let K=new nt(fe.UNEXPECTED_ERROR,"can not find track in media stream");return C.onError(K),K.throw(X)}if(!w&&A==="enable"){y&&y.stop();let K=new nt(fe.SHARE_AUDIO_NOT_ALLOWED);return C.onError(K),K.throw(X)}a.optimizationMode||(a.optimizationMode="detail"),a.optimizationMode&&(Eh(g,y,a,a.encoderConfig&&h2(a.encoderConfig)||void 0),a.encoderConfig&&typeof a.encoderConfig!="string"&&(a.encoderConfig.bitrateMin=a.encoderConfig.bitrateMax));let k=new Pi(y,a.encoderConfig?h2(a.encoderConfig):{},a.scalabiltyMode?kf(a.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},a.optimizationMode,g,[$i.SCREEN_TRACK]);if(!w)return C.onSuccess(k.getTrackId()),X.info("create screen video track success","video:",k.getTrackId()),k;let V=new xt(w,void 0,yn(8,"track-scr-a-"),!1);return C.onSuccess([k.getTrackId(),V.getTrackId()]),X.info("create screen video track success","video:",k.getTrackId(),"audio:",V.getTrackId()),[k,V]},createMicrophoneAndCameraTracks:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=Ie("CAMERA_CAPTURE_CONFIG"),g=yn(8,"track-mic-"),C=yn(8,"track-cam-"),m=tr.reportApiInvoke(null,{id:"".concat(g,"-").concat(C),tag:Gn.TRACER,name:Co.CREATE_MIC_AND_CAM_TRACKS,options:[a,A,l]});l&&(A.encoderConfig=l);let y=WR(A),w=Uf(a),b=null,M=null;X.info("start create camera video track(".concat(C,") and microphone audio track(").concat(g,") with config, audio: ").concat(JSON.stringify(a),", video: ").concat(JSON.stringify(A)));try{let K=await z1({audio:w,video:y},"".concat(g,"-").concat(C));b=K.getAudioTracks()[0],M=K.getVideoTracks()[0]}catch(K){throw m.onError(K),K}if(!b||!M){let K=new nt(fe.UNEXPECTED_ERROR,"can not find tracks in media stream");return m.onError(K),K.throw(X)}if(A.optimizationMode&&Eh(C,M,A,ya(A.encoderConfig)),Ie("USE_STANDARD_BITRATE_DEFAULT")){let K=ya(A.encoderConfig);A.encoderConfig=K,delete K.bitrateMax,delete K.bitrateMin}let k=new gn(b,a,w,g),V=new uy(M,A,y,A.scalabiltyMode?kf(A.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},A.optimizationMode,C);return m.onSuccess([k.getTrackId(),V.getTrackId()]),X.info("create camera video track(".concat(C,") and microphone audio track(").concat(g,") success")),[k,V]},createMicrophoneAudioTrack:async function(){let a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},A=yn(8,"track-mic-"),l=tr.reportApiInvoke(null,{id:A,tag:Gn.TRACER,name:Co.CREATE_MIC_AUDIO_TRACK,options:[a]}),g=Uf(a),C=null;X.info("start create microphone audio track with config",JSON.stringify(a),"trackId",A);try{C=(await z1({audio:g},A)).getAudioTracks()[0]||null}catch(y){throw l.onError(y),y}if(!C){let y=new nt(fe.UNEXPECTED_ERROR,"can not find track in media stream");return l.onError(y),y.throw(X)}let m=new gn(C,a,g,A);return l.onSuccess(m.getTrackId()),X.info("create microphone audio track success, trackId:",A),m},createCustomAudioTrack:Yf,createBufferSourceAudioTrack:async function(a){var A;let{cacheOnlineFile:l,encoderConfig:g}=a,{source:C}=a,m={source:C instanceof AudioBuffer?"AudioBuffer":C instanceof File?(A=File.name)!==null&&A!==void 0?A:"File":C,cacheOnlineFile:l,encoderConfig:g},y=yn(8,"track-buf-"),w=tr.reportApiInvoke(null,{id:y,tag:Gn.TRACER,name:Co.CREATE_BUFFER_AUDIO_TRACK,options:[m]});if(Ie("DISABLE_WEBAUDIO"))throw new nt(fe.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");X.info("start create buffer source audio track with config",JSON.stringify(m),"trackId",y);let b=C;if(!(C instanceof AudioBuffer))try{C=await async function(V,K){let q=null;if(typeof V=="string"){let oe=dh.get(V);if(oe)return X.debug("use cached audio resource: ",V),oe;try{q=(await jl(()=>vA.get(V,{responseType:"arraybuffer"}),void 0,void 0,{maxRetryCount:3})).data}catch(le){throw new nt(fe.FETCH_AUDIO_FILE_FAILED,le.toString())}}else q=await new Ft((oe,le)=>{let pe=new FileReader;pe.onload=Se=>{Se.target?oe(Se.target.result):le(new nt(fe.READ_LOCAL_AUDIO_FILE_ERROR))},pe.onerror=()=>{le(new nt(fe.READ_LOCAL_AUDIO_FILE_ERROR))},pe.readAsArrayBuffer(V)});let ce=await function(oe){let le=wa();return new Ft((pe,Se)=>{le.decodeAudioData(oe,be=>{pe(be)},be=>{Se(new nt(fe.DECODE_AUDIO_FILE_FAILED,be.toString()))})})}(q);return typeof V=="string"&&K&&dh.set(V,ce),ce}(C,l)}catch(V){return w.onError(V),V.throw(X)}let M=new YJ(C),k=new xC(b,M,g?Pf(g):{},y);return X.info("create buffer source audio track success, trackId:",y),w.onSuccess(k.getTrackId()),k},setAppType:function(a){if(X.debug("setAppType: ".concat(a)),!(Number.isInteger(a)&&a>=0))throw X.debug("Invalid appType"),new ze(fe.INVALID_PARAMS,"invalid app type",a);Mn("APP_TYPE",Math.floor(a))},setLogLevel:function(a){X.setLogLevel(a)},enableLogUpload:function(){Ie("USE_NEW_LOG")?Mn("UPLOAD_LOG",!0):X.enableLogUpload()},disableLogUpload:function(){Ie("USE_NEW_LOG")?Mn("UPLOAD_LOG",!1):X.disableLogUpload()},createChannelMediaRelayConfiguration:function(){return new u_},checkAudioTrackIsActive:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,l=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.CHECK_AUDIO_TRACK_IS_ACTIVE,options:[A]});if(!(a instanceof xt||a instanceof Og)){let b=new ze(fe.INVALID_TRACK,"the parameter is not a audio track");return l.onError(b),b.throw()}A&&A<1e3&&(A=1e3);let g=a instanceof xt?a.getTrackLabel():"remote_track",C=a.getVolumeLevel(),m=C,y=C,w=Date.now();return new Ft(b=>{let M=setInterval(()=>{let k=a.getVolumeLevel();m=k>m?k:m,y=k1e-4,K=Date.now()-w;if(V||K>A){clearInterval(M);let q=V,ce={duration:K,deviceLabel:g,maxVolumeLevel:m,result:q};X.info("[track-".concat(a.getTrackId(),"] check audio track active completed. ").concat(JSON.stringify(ce))),l.onSuccess(ce),b(q)}},200)})},checkVideoTrackIsActive:async function(a){let A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3,l=tr.reportApiInvoke(null,{tag:Gn.TRACER,name:Co.CHECK_VIDEO_TRACK_IS_ACTIVE,options:[A]});if(!(a instanceof Pi||a instanceof D2)){let V=new ze(fe.INVALID_TRACK,"the parameter is not a video track");return l.onError(V),V.throw()}A&&A<1e3&&(A=1e3);let g=a instanceof Pi?a.getTrackLabel():"remote_track",C=a.getMediaStreamTrack(!0),m=document.createElement("video");m.style.width="1px",m.style.height="1px",m.setAttribute("muted",""),m.muted=!0,m.setAttribute("playsinline",""),m.controls=!1,($s()||DC())&&(m.style.opacity="0.01",m.style.position="fixed",m.style.left="0",m.style.top="0",document.body.appendChild(m)),m.srcObject=new MediaStream([C]),m.play();let y=document.createElement("canvas");y.width=160,y.height=120;let w=0,b=0;try{let V=Date.now();w=await function(K,q,ce,oe){let le,pe=0,Se=null;return new Ft((be,Ue)=>{function xe(){pe>oe&&le&&(le(),be(pe));let Le=ce.getContext("2d");if(!Le){let pt=new ze(fe.UNEXPECTED_ERROR,"can not get canvas 2d context.");return X.error(pt.toString()),void Ue(pt)}Le.drawImage(K,0,0,160,120);let je=Le.getImageData(0,0,ce.width,ce.height),dt=Math.floor(je.data.length/3);if(Se){for(let pt=0;pt{le&&(le(),be(pe))},q),le=h4(()=>{xe()},30)})}(m,A,y,4),b=Date.now()-V}catch(V){throw l.onError(V),V}m7===nn.SAFARI&&(m.pause(),m.remove()),m.srcObject=null;let M=w>4,k={duration:b,changedPicNum:w,deviceLabel:g,result:M};return X.info("[track-".concat(a.getTrackId(),"] check video track active completed. ").concat(JSON.stringify(k))),l.onSuccess(k),M},setArea:mh,audioElementPlayCenter:va,resumeAudioContext:function(){return va.autoResumeAfterInterruption(!0)},processExternalMediaAEC:function(a){dq.processExternalMediaAEC(a)},registerExtensions:function(a){let A=Ie("PLUGIN_INFO")||[];a.forEach(l=>{"name"in l&&!Rt(A).call(A,l.name)&&A.push(l.name);let g=l;g.__registered__=!0,g.logger.hookLog=X.extLog,g.reporter.hookApiInvoke=tr.extApiInvoke,g.parameters&&Object.keys(g.parameters).forEach(C=>{g.parameters[C]=Ie(C)})}),ZO("PLUGIN_INFO",A)},ChannelMediaRelayError:Fd,ChannelMediaRelayEvent:ls,ChannelMediaRelayState:$A,RemoteStreamFallbackType:Tc,RemoteStreamType:l4,ConnectionDisconnectedReason:bi,AudienceLatencyLevelType:XP,AREAS:fn,preload:async function(a,A,l,g){return ZC(a,A,l,g)},startLastmileProbeTest:async function(a,A,l,g){let C={state:"unavailable"};await ZC(a,A,l,g);let m=await tQ({appId:a,cname:A,token:l||a,uid:g,cloudProxyServer:"disabled"});if(!m)return C;await iI(m);let y,w=oO({mode:"rtc",codec:"vp8"});try{y=await w.join(a,A,l,g,{networkQualityProbe:!0})}catch{return C}let b=new nq,M=b.createMuteAudioTrack(),k=await Yf({mediaStreamTrack:M});await w.publish([k]);let[V,K,q]=await new Ft((be,Ue)=>{let xe=setTimeout(()=>{clearTimeout(xe),be([!0,null,"audio"])},5e3);w.on("user-published",async(Le,je)=>{Le.uid===y&&(clearTimeout(xe),be([!1,Le,je]))})});if(V||!K)return await w.unpublish([k]),await w.leave(),k.close(),b.close(),C;await w.subscribe(K,q),await new Ft((be,Ue)=>{let xe=setTimeout(()=>{clearTimeout(xe),be(null)},5e3)});let ce=w.getRTCStats(),oe=w.getLocalAudioStats(),le=ce.RTT,pe=oe.sendJitterMs,Se=oe.currentPacketLossRate;return C={state:"complete",rtt:le,packetLossRate:Se,jitter:pe,networkQuality:((be,Ue,xe)=>{let Le=1;if(xe>0){let gr=Math.log(100*xe)/Math.log(2)+1;gr=Math.min(5,Math.max(0,gr)),Le=1-gr/5}let je=1;if(be>0){let gr=Math.log(be/40)/Math.log(2)+1;gr=Math.min(5,Math.max(0,gr)),je=1-gr/5}let dt=1;if(Ue>0){let gr=Math.log(Ue/10)/Math.log(2.5)+1;gr=Math.min(5,Math.max(0,gr)),dt=1-gr/5}let pt=.5*Le+.3*je+.2*dt,zt=0;return zt=pt>=.8?1:pt>=.6?2:pt>=.4?3:pt>=.2?4:5,zt})(le,pe,Se)},await w.unsubscribe(K),await w.unpublish([k]),await w.leave(),k.close(),b.close(),await iI(m),C}});return Object.defineProperties(Ts,{onAudioAutoplayFailed:{get:()=>cA.onAudioAutoplayFailed,set:a=>{cA.onAudioAutoplayFailed=a}},onAutoplayFailed:{get:()=>cA.onAutoplayFailed,set:a=>{cA.onAutoplayFailed=a}},_onSecurityPolicyViolation:{value:void 0,writable:!0},_cspEventHandlerPointer:{value:void 0,writable:!0},onSecurityPolicyViolation:{get:()=>Ts._onSecurityPolicyViolation,set(a){Ts._onSecurityPolicyViolation=a,EQ(a)}},__CLIENT_LIST__:{get:()=>Ie("SHOW_GLOBAL_CLIENT_LIST")?ys:[]}}),p1.on(Ng.CAMERA_DEVICE_CHANGED,a=>{X.info("camera device changed",JSON.stringify(a)),Ts.onCameraChanged&&Ts.onCameraChanged(a),Ts.safeEmit(nc.CAMERA_CHANGED,a)}),p1.on(Ng.RECORDING_DEVICE_CHANGED,a=>{X.info("microphone device changed",JSON.stringify(a)),Ts.onMicrophoneChanged&&Ts.onMicrophoneChanged(a),Ts.safeEmit(nc.MICROPHONE_CHANGED,a)}),p1.on(Ng.PLAYOUT_DEVICE_CHANGED,a=>{X.debug("playout device changed",JSON.stringify(a)),Ts.onPlaybackDeviceChanged&&Ts.onPlaybackDeviceChanged(a),Ts.safeEmit(nc.PLAYBACK_DEVICE_CHANGED,a)}),va.onAutoplayFailed=()=>{X.info("detect audio element autoplay failed"),cA.onAudioAutoplayFailed&&cA.onAudioAutoplayFailed()},kn.on("autoplay-failed",()=>{X.info("detect webaudio autoplay failed"),cA.onAudioAutoplayFailed&&cA.onAudioAutoplayFailed(),Ts.safeEmit(nc.AUTOPLAY_FAILED)}),kn.on(Ys.STATE_CHANGE,(a,A)=>{X.info("audio context state changed: ".concat(A," => ").concat(a)),Ts.onAudioContextStateChanged&&Ts.onAudioContextStateChanged(a,A),Ts.safeEmit(nc.AUDIO_CONTEXT_STATE_CHANGED,a,A)}),Xi.on(Tu.NETWORK_STATE_CHANGE,(a,A)=>{X.info("[network-indicator] network state changed, ".concat(A," => ").concat(a))}),window&&(window.__ARTC__=Ts),Ts})}),Mr={};n8(Mr,{AgoraRTCProvider:()=>p8,AgoraRTCReactError:()=>Je,AgoraRTCScreenShareProvider:()=>g8,LocalAudioTrack:()=>TS,LocalUser:()=>uY,LocalVideoTrack:()=>RS,RemoteAudioTrack:()=>vS,RemoteUser:()=>fY,RemoteVideoTrack:()=>yS,TrackBoundary:()=>tY,VERSION:()=>SY,default:()=>TY,useAutoPlayAudioTrack:()=>pl,useAutoPlayVideoTrack:()=>hl,useClientEvent:()=>d8,useConnectionState:()=>v8,useCurrentUID:()=>w8,useIsConnected:()=>kr,useJoin:()=>N8,useLocalCameraTrack:()=>B8,useLocalMicrophoneTrack:()=>F8,useLocalScreenTrack:()=>J8,useNetworkQuality:()=>L8,usePublish:()=>M8,useRTCClient:()=>Sn,useRTCScreenShareClient:()=>S8,useRemoteAudioTracks:()=>G8,useRemoteUserTrack:()=>gp,useRemoteUsers:()=>X8,useRemoteVideoTracks:()=>H8,useTrackEvent:()=>l8,useVolumeLevel:()=>V8});var TL=oa(ss());function Xe(n,e,o){return n.on(e,o),()=>n.off(e,o)}function i8(n){try{return n()}catch(e){console.error(e)}}function Ii(n){return()=>n.forEach(i8)}function nL(n,e){let o=setInterval(n,e);return()=>clearInterval(o)}function as(n,e){let o=setTimeout(n,e);return()=>clearTimeout(o)}function Lc(){let n,e,o;function d(){if(e){let x=e;e=void 0,x()}}async function I(){if(o){let x=o;o=void 0;try{await x()}catch(F){console.error(F)}}}async function f(x){n=!0,await I();try{o=await x()}catch(F){console.error(F)}n=!1,d()}async function S(){n=!0,await I(),n=!1,d()}function v(x){n?e=()=>f(x):f(x)}function L(){n?e=S:S()}return{run:v,dispose:L}}var kc=typeof document<"u"?reactExports.useLayoutEffect:reactExports.useEffect;function a8(n){return n!=null&&typeof n.then=="function"}function di(){let n=reactExports.useRef(!1);return reactExports.useEffect(()=>(n.current=!1,()=>{n.current=!0}),[]),n}function c8(){let n=di();function e(o,d){return new Promise(async(I,f)=>{try{let S=await o;n.current||I(S)}catch(S){n.current?d&&d(S):f(S)}})}return reactExports.useCallback(e,[n])}function fp(n){let e=c8(),[o,d]=reactExports.useState();return kc(()=>{a8(n)?e(n).then(d):d(n)},[n,e]),o}function Ai(n,e){let o=reactExports.useRef();reactExports.useEffect(()=>{let{run:d,dispose:I}=o.current||(o.current=Lc());return d(n),I},e)}function rL(n,e){let o=n.split("."),d=e.split("."),I=Math.max(o.length,d.length);for(let f=0;fv)return 1;if(S{d.current=o},[o]),reactExports.useEffect(()=>{if(n)return Xe(n,e,(...I)=>{d.current&&d.current(...I)})},[e,n])}function l8(n,e,o){let d=reactExports.useRef(o);kc(()=>{d.current=o},[o]),reactExports.useEffect(()=>{if(n)return Xe(n,e,(...I)=>{d.current&&d.current(...I)})},[e,n])}var aL=reactExports.createContext(null);function p8({client:n,children:e}){return jsxRuntimeExports.jsx(aL.Provider,{value:n,children:e})}function _8(n){let e=reactExports.useContext(aL);return n||e}function Sn(n){let e=_8(n);if(!e)throw new Error("Agora RTC client not found. Should be wrapped in ");return e}var cL=reactExports.createContext(null);function g8({client:n,children:e}){return jsxRuntimeExports.jsx(cL.Provider,{value:n,children:e})}function S8(n){let e=reactExports.useContext(cL);return n||e}function v8(n){let e=Sn(n),[o,d]=reactExports.useState(e?e.connectionState:"DISCONNECTED");return reactExports.useEffect(()=>{if(e){d(e.connectionState);let I;return Ii([Xe(e,"connection-state-change",f=>{I==null||I(),f==="CONNECTED"?I=as(()=>d(f),0):d(f)}),()=>I==null?void 0:I()])}else d("DISCONNECTED")},[e]),o}function kr(n){let e=Sn(n),[o,d]=reactExports.useState(e?e.connectionState==="CONNECTED":!1);return reactExports.useEffect(()=>{if(e){d(e.connectionState==="CONNECTED");let I;return Ii([Xe(e,"connection-state-change",f=>{I==null||I(),I=as(()=>d(f==="CONNECTED"),0)}),()=>I==null?void 0:I()])}else d(!1)},[e]),o}function w8(n){let e=Sn(n),[o,d]=reactExports.useState(e==null?void 0:e.uid);return reactExports.useEffect(()=>{if(e)return Xe(e,"connection-state-change",I=>{if(I==="CONNECTED")return as(()=>d(e.uid),0);I==="DISCONNECTED"&&d(void 0)})},[e]),o}var Je=class extends Error{constructor(e,o){var n=(...Tde)=>(super(...Tde),T9(this,"rtcMethod"),T9(this,"rtcError"),T9(this,"name","AgoraRTCReactException"),this);n(typeof o=="string"?o:o.message),this.rtcMethod=e,this.rtcError=o}log(e){console[e](this)}};function N8(n,e=!0,o){let d=Sn(o),I=kr(o),f=reactExports.useRef(),[S,v]=reactExports.useState(!1),[L,x]=reactExports.useState(0),[F,Y]=reactExports.useState(null),j=di();return Ai(async()=>{if(j.current||(Y(null),x(0),v(!1)),e&&d){try{j.current||v(!0);let{appid:re,channel:ee,token:he,uid:ue}=typeof n=="function"?await n():n,Ee=await d.join(re,ee,he,ue);j.current||x(Ee)}catch(re){console.error(re),j.current||Y(new Je("IAgoraRTCClient.join",re))}j.current||v(!1);let W=f.current||(f.current=Lc());return Ii([()=>{W.dispose()},()=>{W.run(()=>d.unpublish(d.localTracks))},()=>{for(let re of d.localTracks)re.isPlaying&&re.stop(),re.close();W.run(()=>d.leave())}])}},[e,o]),{data:L,isLoading:S,isConnected:I,error:F}}var dL=()=>({uplinkNetworkQuality:0,downlinkNetworkQuality:0,delay:0});function L8(n){let e=Sn(n),[o,d]=reactExports.useState(dL);return reactExports.useEffect(()=>{if(e)return Xe(e,"network-quality",I=>d({uplinkNetworkQuality:I.uplinkNetworkQuality,downlinkNetworkQuality:I.downlinkNetworkQuality,delay:e.getRTCStats().RTT??0}));d(dL())},[e]),o}var uL=oa(ss());function M8(n,e=!0,o){let d=Sn(o),I=kr(o),f=reactExports.useRef([]),[S,v]=reactExports.useState(!1),[L,x]=reactExports.useState(null),F=di();return Ai(async()=>{if(F.current||(v(!1),x(null)),!d||!I||!e)return;let Y=n.filter(Boolean),j=ee=>{let he=rL(uL.default.VERSION,"4.18.2")>=0;return he||new Je("usePublish","please check your agora-rtc-sdk-ng version in package.json, it's recommend upgrade to >= 4.18.2").log("warn"),he?d.mode!=="live"||d.role!=="audience":!0},W=ee=>f.current.some(he=>he&&he.getTrackId()===ee.getTrackId()),re=ee=>j()&&ee.enabled&&e&&!W(ee);for(let ee=0;ee(ue==null?void 0:ue.trackMediaType)===he.trackMediaType));try{F.current||v(!0),await d.publish(he)}catch(ue){console.error(ue),F.current||x(new Je("IAgoraRTCClient.publish",ue))}F.current||v(!1)}}f.current=Y},[I,e,d,n]),{isLoading:S,error:L}}function V8(n){let[e,o]=reactExports.useState(0);return reactExports.useEffect(()=>{if(n)return nL(()=>{o(n.getVolumeLevel())},1e3)},[n]),e}var hL=oa(ss());function F8(n=!0,e={ANS:!0,AEC:!0}){let[o,d]=reactExports.useState(null),[I,f]=reactExports.useState(!1),[S,v]=reactExports.useState(null),L=di();return Ai(async()=>{if(L.current||(f(!1),v(null)),n&&!o){try{L.current||f(!0);let x=await hL.default.createMicrophoneAudioTrack(e);L.current||d(x)}catch(x){console.error(x),L.current||v(new Je("IAgoraRTC.createMicrophoneAudioTrack",x))}L.current||f(!1)}},[n]),{localMicrophoneTrack:o,isLoading:I,error:S}}var pL=oa(ss());function B8(n=!0,e){let[o,d]=reactExports.useState(null),[I,f]=reactExports.useState(!1),[S,v]=reactExports.useState(null),L=di();return Ai(async()=>{if(L.current||(f(!1),v(null)),n&&!o){try{L.current||f(!0);let x=await pL.default.createCameraVideoTrack(e);L.current||d(x)}catch(x){console.error(x),L.current||v(new Je("IAgoraRTC.createCameraVideoTrack",x))}L.current||f(!1)}},[n]),{localCameraTrack:o,isLoading:I,error:S}}function G8(n,e){let o=Sn(e),[d,I]=reactExports.useState([]),f=kr(),S=reactExports.useRef([]),[v,L]=reactExports.useState(!1),[x,F]=reactExports.useState(null),Y=di();return Ai(async()=>{if(Y.current||F(null),!Array.isArray(n)||!f)return;let j=async ee=>{if(!ee.audioTrack&&n.some(({uid:he})=>ee.uid===he)){try{Y.current||L(!0),await o.subscribe(ee,"audio")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.subscribe",he))}ee.audioTrack&&!S.current.some(he=>he.getUserId()===ee.uid)&&S.current.push(ee.audioTrack),S.current=S.current.map(he=>ee.audioTrack&&he.getUserId()===ee.uid&&he.getTrackId()!==ee.audioTrack.getTrackId()?ee.audioTrack:he),Y.current||(I([...S.current]),L(!1))}},W=async ee=>{if(n.some(({uid:he})=>ee.uid===he)){Y.current||(S.current=S.current.filter(he=>he.getUserId()!==ee.uid),I([...S.current]));try{Y.current||L(!0),await o.unsubscribe(ee,"audio")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.unsubscribe",he))}Y.current||L(!1)}};n.map(ee=>{!ee.audioTrack&&ee.hasAudio&&j(ee)});let re=[];for(let ee=0;eeue.uid===he.getUserId())){let ue=o.remoteUsers.find(Ee=>Ee.uid===he.getUserId());ue&&re.push({user:ue,mediaType:"audio"}),S.current.splice(ee,1),ee--}}if(re.length>0){try{Y.current||L(!0),await o.massUnsubscribe(re)}catch(ee){console.error(ee),Y.current||F(new Je("IAgoraRTCClient.massUnsubscribe",ee))}Y.current||(I(S.current.slice()),L(!1))}return Ii([Xe(o,"user-published",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="audio"&&j(ee)}),Xe(o,"user-unpublished",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="audio"&&W(ee)})])},[f,o,n]),{audioTracks:d,isLoading:v,error:x}}function H8(n,e){let o=Sn(e),[d,I]=reactExports.useState([]),f=kr(),S=reactExports.useRef([]),[v,L]=reactExports.useState(!1),[x,F]=reactExports.useState(null),Y=di();return Ai(async()=>{if(Y.current||F(null),!Array.isArray(n)||!f)return;let j=async ee=>{if(!ee.videoTrack&&n.some(({uid:he})=>ee.uid===he)){try{Y.current||L(!0),await o.subscribe(ee,"video")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.subscribe",he))}ee.videoTrack&&!S.current.some(he=>he.getUserId()===ee.uid)&&S.current.push(ee.videoTrack),S.current=S.current.map(he=>ee.videoTrack&&he.getUserId()===ee.uid&&he.getTrackId()!==ee.videoTrack.getTrackId()?ee.videoTrack:he),Y.current||(I([...S.current]),L(!1))}},W=async ee=>{if(n.some(({uid:he})=>ee.uid===he)){Y.current||(S.current=S.current.filter(he=>he.getUserId()!==ee.uid),I([...S.current]));try{Y.current||L(!0),await o.unsubscribe(ee,"video")}catch(he){console.error(he),Y.current||F(new Je("IAgoraRTCClient.unsubscribe",he))}Y.current||L(!1)}};n.map(ee=>{!ee.videoTrack&&ee.hasVideo&&j(ee)});let re=[];for(let ee=0;eeue.uid===he.getUserId())){let ue=o.remoteUsers.find(Ee=>Ee.uid===he.getUserId());ue&&re.push({user:ue,mediaType:"video"}),S.current.splice(ee,1),ee--}}if(re.length>0){try{Y.current||L(!0),await o.massUnsubscribe(re)}catch(ee){console.error(ee),Y.current||F(new Je("IAgoraRTCClient.massUnsubscribe",ee))}Y.current||(I(S.current.slice()),L(!1))}return Ii([Xe(o,"user-published",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="video"&&j(ee)}),Xe(o,"user-unpublished",(ee,he)=>{n.find(ue=>ue.uid===ee.uid)&&he==="video"&&W(ee)})])},[f,o,n]),{videoTracks:d,isLoading:v,error:x}}function gp(n,e,o){let d=Sn(o),I=e==="audio"?"audioTrack":"videoTrack",[f,S]=reactExports.useState(n&&n[I]),v=kr(),L=reactExports.useRef(),[x,F]=reactExports.useState(!1),[Y,j]=reactExports.useState(null);return reactExports.useEffect(()=>{if(!n||!v)return;let W=!1;W||j(null);let re=e==="audio"?"hasAudio":"hasVideo",ee=n.uid,he=async(_e,De)=>{if(_e[I]&&d.remoteUsers.some(({uid:Fe})=>_e.uid===Fe))try{W||F(!0),await d.unsubscribe(_e,De)}catch(Fe){W||j(new Je("IAgoraRTCClient.unsubscribe",Fe)),console.error(Fe)}W||(S(void 0),F(!1))},ue=async(_e,De)=>{try{!_e[I]&&d.remoteUsers.some(({uid:Fe})=>_e.uid===Fe)&&(W||F(!0),await d.subscribe(_e,De)),W||S(_e[I])}catch(Fe){W||j(new Je("IAgoraRTCClient.subscribe",Fe)),console.error(Fe)}W||F(!1)},Ee=L.current||(L.current=Lc());return!n[I]&&n[re]?Ee.run(()=>ue(n,e)):S(n[I]),Ii([()=>{W=!0,Ee.dispose()},Xe(d,"user-published",(_e,De)=>{_e.uid===ee&&De===e&&Ee.run(()=>ue(_e,e))}),Xe(d,"user-unpublished",(_e,De)=>{_e.uid===ee&&De===e&&Ee.run(()=>he(_e,e))})])},[v,d,n,e,I]),{track:f,isLoading:x,error:Y}}function X8(n){let e=Sn(n),[o,d]=reactExports.useState(e?e.remoteUsers:[]);return reactExports.useEffect(()=>{if(e){let I=()=>d(e.remoteUsers.slice());return Ii([Xe(e,"user-joined",I),Xe(e,"user-left",I),Xe(e,"user-published",I),Xe(e,"user-unpublished",I)])}},[e]),o}var _L=oa(ss());function J8(n=!0,e,o){let[d,I]=reactExports.useState(null),[f,S]=reactExports.useState(!1),[v,L]=reactExports.useState(null),x=di();return Ai(async()=>{if(x.current||(S(!1),L(null)),n&&!d){try{x.current||S(!0);let F=await _L.default.createScreenVideoTrack(e,o);x.current||I(F)}catch(F){console.error(F),x.current||L(new Je("IAgoraRTC.createScreenVideoTrack",F))}x.current||S(!1)}},[n]),{screenTrack:d,isLoading:f,error:v}}function $8(){let n=new Map,e=1500;return{onMount:o=>{let d=n.get(o);d&&(d(),n.delete(o))},onUnmount:o=>{let d=n.get(o);d&&d(),n.set(o,as(()=>{o.isPlaying&&o.stop(),n.delete(o)},e))},dispose:()=>{for(let[o,d]of n)o.isPlaying&&o.stop(),d&&d();n.clear()}}}var gS=reactExports.createContext(void 0);function tY({children:n}){let[e]=reactExports.useState($8);return reactExports.useEffect(()=>e.dispose,[e]),jsxRuntimeExports.jsx(gS.Provider,{value:e,children:n})}function hl(n,e,o,d){let I=reactExports.useContext(gS);reactExports.useEffect(()=>{if(n)return d&&e?n.play(d,o||void 0):n.stop(),I?(I.onMount(n),()=>I.onUnmount(n)):()=>{n.isPlaying&&n.stop()}},[n,d,e,I,o])}function pl(n,e){let o=reactExports.useContext(gS);kc(()=>{if(n)return e?n.play():n.stop(),o?(o.onMount(n),()=>o.onUnmount(n)):()=>{n.isPlaying&&n.stop()}},[n,e,o])}function TS({track:n,play:e=!1,volume:o,disabled:d,muted:I,children:f}){let S=fp(n);return pl(S,e),reactExports.useEffect(()=>{S&&o!=null&&S.setVolume(o)},[S,o]),reactExports.useEffect(()=>{S&&d!=null&&S.setEnabled(!d).catch(console.warn)},[d,S]),reactExports.useEffect(()=>{S&&I!=null&&S.setMuted(I).catch(console.warn)},[I,S]),f?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:f}):null}var Sp={position:"relative",width:"100%",height:"100%",overflow:"hidden",background:"#000"},Tp={width:"100%",height:"100%"},Mc={position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",zIndex:2},cs=(n,e)=>reactExports.useMemo(()=>({...n,...e}),[n,e]);function RS({track:n,play:e,disabled:o,muted:d,style:I,videoPlayerConfig:f,...S}){let v=cs(Tp,I),[L,x]=reactExports.useState(null),F=fp(n);return hl(F,e,f,L),reactExports.useEffect(()=>{F&&o!=null&&F.setEnabled(!o).catch(console.warn)},[o,F]),reactExports.useEffect(()=>{F&&d!=null&&F.setMuted(d).catch(console.warn)},[d,F]),jsxRuntimeExports.jsx("div",{...S,ref:x,style:v})}var aY={width:"100%",height:"100%",background:"#1a1e21 center/cover no-repeat",filter:"blur(16px) brightness(0.4)"},cY={position:"absolute",top:"50%",left:"50%",maxWidth:"50%",maxHeight:"50%",aspectRatio:"1",transform:"translate(-50%, -50%)",borderRadius:"50%",overflow:"hidden",objectFit:"cover"};function Rp({cover:n}){return jsxRuntimeExports.jsx("div",{style:Mc,children:typeof n=="string"?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{style:{...aY,backgroundImage:`url(${n})`}}),jsxRuntimeExports.jsx("img",{src:n,style:cY})]}):n()})}function uY({micOn:n,cameraOn:e,audioTrack:o,videoTrack:d,playAudio:I,playVideo:f,volume:S,cover:v,children:L,style:x,...F}){let Y=cs(Sp,x);return f=f??!!e,I=I??!!n,jsxRuntimeExports.jsxs("div",{...F,style:Y,children:[jsxRuntimeExports.jsx(RS,{disabled:!e,play:f,track:d}),jsxRuntimeExports.jsx(TS,{disabled:!n,play:I,track:o,volume:S}),v&&!e&&jsxRuntimeExports.jsx(Rp,{cover:v}),jsxRuntimeExports.jsx("div",{style:Mc,children:L})]})}function vS({track:n,play:e=!1,playbackDeviceId:o,volume:d,children:I}){return pl(n,e),reactExports.useEffect(()=>{n&&o!=null&&n.setPlaybackDevice(o).catch(console.warn)},[n,o]),reactExports.useEffect(()=>{n&&d!=null&&n.setVolume(d)},[n,d]),I?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:I}):null}function yS({track:n,play:e,style:o,videoPlayerConfig:d,...I}){let f=cs(Tp,o),[S,v]=reactExports.useState(null);return hl(n,e,d,S),jsxRuntimeExports.jsx("div",{...I,ref:v,style:f})}function fY({user:n,playVideo:e,playAudio:o,playbackDeviceId:d,volume:I,cover:f,style:S,children:v,videoPlayerConfig:L,...x}){let F=cs(Sp,S),{track:Y}=gp(n,"video"),{track:j}=gp(n,"audio");return e=e??(n==null?void 0:n.hasVideo),o=o??(n==null?void 0:n.hasAudio),jsxRuntimeExports.jsxs("div",{...x,style:F,children:[jsxRuntimeExports.jsx(yS,{play:e,track:Y,videoPlayerConfig:L}),jsxRuntimeExports.jsx(vS,{play:o,playbackDeviceId:d,track:j,volume:I}),f&&!e&&jsxRuntimeExports.jsx(Rp,{cover:f}),jsxRuntimeExports.jsx("div",{style:Mc,children:v})]})}var SL=oa(ss()),IS=class{constructor(){T9(this,"appType",1001);SL.default.setAppType(this.appType)}};new IS;var SY="2.5.1";oo(Mr,oa(ss()));var TY=TL.default;const agoraRtcReact=Object.freeze(Object.defineProperty({__proto__:null,AgoraRTCProvider:p8,AgoraRTCReactError:Je,AgoraRTCScreenShareProvider:g8,LocalAudioTrack:TS,LocalUser:uY,LocalVideoTrack:RS,RemoteAudioTrack:vS,RemoteUser:fY,RemoteVideoTrack:yS,TrackBoundary:tY,VERSION:SY,default:TY,useAutoPlayAudioTrack:pl,useAutoPlayVideoTrack:hl,useClientEvent:d8,useConnectionState:v8,useCurrentUID:w8,useIsConnected:kr,useJoin:N8,useLocalCameraTrack:B8,useLocalMicrophoneTrack:F8,useLocalScreenTrack:J8,useNetworkQuality:L8,usePublish:M8,useRTCClient:Sn,useRTCScreenShareClient:S8,useRemoteAudioTracks:G8,useRemoteUserTrack:gp,useRemoteUsers:X8,useRemoteVideoTracks:H8,useTrackEvent:l8,useVolumeLevel:V8},Symbol.toStringTag,{value:"Module"})),scriptRel="modulepreload",assetsURL=function(n){return"/"+n},seen={},__vitePreload=function(e,o,d){let I=Promise.resolve();if(o&&o.length>0){document.getElementsByTagName("link");const S=document.querySelector("meta[property=csp-nonce]"),v=(S==null?void 0:S.nonce)||(S==null?void 0:S.getAttribute("nonce"));I=Promise.allSettled(o.map(L=>{if(L=assetsURL(L),L in seen)return;seen[L]=!0;const x=L.endsWith(".css"),F=x?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${L}"]${F}`))return;const Y=document.createElement("link");if(Y.rel=x?"stylesheet":scriptRel,x||(Y.as="script"),Y.crossOrigin="",Y.href=L,v&&Y.setAttribute("nonce",v),document.head.appendChild(Y),x)return new Promise((j,W)=>{Y.addEventListener("load",j),Y.addEventListener("error",()=>W(new Error(`Unable to preload CSS for ${L}`)))})}))}function f(S){const v=new Event("vite:preloadError",{cancelable:!0});if(v.payload=S,window.dispatchEvent(v),!v.defaultPrevented)throw S}return I.then(S=>{for(const v of S||[])v.status==="rejected"&&f(v.reason);return e().catch(f)})};var TranscriptHelperMode=(n=>(n.TEXT="text",n.WORD="word",n.CHUNK="chunk",n.UNKNOWN="unknown",n.AUTO="auto",n))(TranscriptHelperMode||{}),MessageType=(n=>(n.USER_TRANSCRIPTION="user.transcription",n.AGENT_TRANSCRIPTION="assistant.transcription",n.MSG_INTERRUPTED="message.interrupt",n.MSG_METRICS="message.metrics",n.MSG_ERROR="message.error",n.MSG_STATE="message.state",n.IMAGE_UPLOAD="image.upload",n.MESSAGE_INFO="message.info",n.MESSAGE_SAL_STATUS="message.sal_status",n))(MessageType||{}),ModuleType=(n=>(n.LLM="llm",n.MLLM="mllm",n.TTS="tts",n.CONTEXT="context",n.UNKNOWN="unknown",n))(ModuleType||{}),ConversationalAIError=class extends Error{constructor(n,e){super(n),this.name="ConversationalAIError",(e==null?void 0:e.cause)!==void 0&&(this.cause=e.cause)}},NotInitializedError=class extends ConversationalAIError{constructor(){super("AgoraVoiceAI is not initialized. Call await AgoraVoiceAI.init(config) before using getInstance()."),this.name="NotInitializedError"}},RTMRequiredError=class extends ConversationalAIError{constructor(n){super(`[AgoraVoiceAI] ${n}() requires RTM. Pass rtmConfig: { rtmEngine } when calling AgoraVoiceAI.init().`),this.name="RTMRequiredError"}},TurnStatus=(n=>(n[n.IN_PROGRESS=0]="IN_PROGRESS",n[n.END=1]="END",n[n.INTERRUPTED=2]="INTERRUPTED",n))(TurnStatus||{}),AgoraVoiceAIEvents=(n=>(n.AGENT_STATE_CHANGED="agent-state-changed",n.AGENT_INTERRUPTED="agent-interrupted",n.AGENT_METRICS="agent-metrics",n.AGENT_ERROR="agent-error",n.TRANSCRIPT_UPDATED="transcript-updated",n.DEBUG_LOG="debug-log",n.MESSAGE_RECEIPT_UPDATED="message-receipt-updated",n.MESSAGE_ERROR="message-error",n.MESSAGE_SAL_STATUS="message-sal-status",n))(AgoraVoiceAIEvents||{}),EventHelper=class{constructor(){this._eventMap=new Map,this._onceWrappers=new Map,this._logLevel=0,this._maxListeners=10,this._warnedEvents=new Set}setMaxListeners(n){return this._maxListeners=n,this}setLogLevel(n){return this._logLevel=n,this}get logLevel(){return this._logLevel}getListenerCounts(){const n={};for(const[e,o]of this._eventMap)n[String(e)]=o.length;return n}once(n,e){const o=(...d)=>{this.off(n,o),this._onceWrappers.delete(e),e(...d)};return this._onceWrappers.set(e,o),this.on(n,o),this}on(n,e){const o=this._eventMap.get(n)??[];return o.push(e),this._eventMap.set(n,o),this._maxListeners>0&&o.length>this._maxListeners&&!this._warnedEvents.has(n)&&(this._warnedEvents.add(n),console.warn(`[ConversationalAI] Possible listener leak: ${String(n)} has ${o.length} listeners (max: ${this._maxListeners}). Use setMaxListeners() to increase if intentional.`)),this._logLevel>=2&&console.debug(`Subscribed to event: ${String(n)}`),this}off(n,e){const o=this._eventMap.get(n);if(o){const d=this._onceWrappers.get(e)??e;this._eventMap.set(n,o.filter(I=>I!==d)),this._onceWrappers.delete(e),this._logLevel>=2&&console.debug(`Unsubscribed from event: ${String(n)}`)}return this}removeAllEventListeners(){this._eventMap.clear(),this._onceWrappers.clear(),this._logLevel>=2&&console.debug("Removed all event listeners")}emit(n,...e){const o=this._eventMap.get(n)??[];for(const d of o)try{d&&d(...e)}catch(I){if(this._logLevel>=1){const f=I,S=f.stack||f.message;console.error(`Error handling event ${String(n)}: ${S}`)}}return this._logLevel>=2&&console.debug({args:e},`Emitted event: ${String(n)}`),this}},MAX_ZIP_SIZE=4*1024*1024,LogManager=class{constructor(){this.currentSize=0,this.logs=[],this.textEncoder=new TextEncoder}addLog(n,...e){try{const o=new Date().toISOString(),d=e.map(v=>typeof v=="string"?v:JSON.stringify(v)).join(" "),I=`${o} ${d} -`,f=this.textEncoder.encode(I).length,S={message:I,size:f};if(this.logs.push(S),this.currentSize+=f,this.currentSize>MAX_ZIP_SIZE){let v=0,L=0;for(const x of this.logs)if(v+=x.size,L++,this.currentSize-v<=MAX_ZIP_SIZE)break;this.logs=this.logs.slice(L),this.currentSize-=v}}catch(o){console.info("Error in addLog:",o)}}async downloadLogs(){let n;try{n=(await __vitePreload(async()=>{const{default:e}=await import("./jszip.min-CQVN0a9q.js").then(o=>o.j);return{default:e}},[])).default}catch{throw new Error("[ConversationalAI] downloadLogs requires jszip. Install it with: npm install jszip")}try{const e=new n,o=this.logs.map(f=>f.message).join("");e.file("log.txt",o);const d=await e.generateAsync({type:"blob"}),I=new File([d],"logs.zip",{type:"application/zip"});return this.clear(),I}catch(e){return console.error("Error creating log file:",e),null}}clear(){this.logs=[],this.currentSize=0}info(...n){this.addLog("info",...n)}log(...n){this.addLog("log",...n)}debug(...n){this.addLog("debug",...n)}error(...n){this.addLog("error",...n)}warn(...n){this.addLog("warn",...n)}},logger=new LogManager,genTraceID=(n=8)=>{let e="";const o="abcdefghijklmnopqrstuvwxyz0123456789",d=o.length;for(let I=0;I{if(typeof n=="string")return n;try{return JSON.stringify(n)}catch{return String(n)}},factoryFormatLog=n=>(...e)=>`[${n.tag}] ${e.map(safeStringify).join(" ")}`,ConsoleMetricsReporter=class{report(n,e){console.debug(`[ConversationalAI:metrics] ${n}`,e)}},AgoraMetricsReporter=class{constructor(){this.reporter=null}async init(){try{const{default:n}=await __vitePreload(async()=>{const{default:e}=await import("./AgoraRTC_N-report.esm-Dhe53Dql.js");return{default:e}},[]);if(typeof n!="function"){console.warn("[ConversationalAI] @agora-js/report default export is not a constructor. Falling back to console metrics.");return}this.reporter=new n}catch(n){n instanceof Error&&("code"in n&&n.code==="MODULE_NOT_FOUND"||n.message.includes("Cannot find module"))?console.warn("[ConversationalAI] @agora-js/report not found. Falling back to console metrics. Install it with: pnpm add @agora-js/report"):console.error("[ConversationalAI] Failed to initialize @agora-js/report:",n)}}report(n,e){this.reporter?this.reporter.report(n,e):console.debug(`[ConversationalAI:metrics] ${n}`,e)}},SubRenderPTS=class{constructor(n,e,o){this._pts=0,this._intervalRef=null,this._isRunning=!1,this._interval=n,this.callMessagePrint=e,this.handleQueue=o}get pts(){return this._pts}get isRunning(){return this._isRunning}setRunning(n){this._isRunning=n}setInterval(n){this._interval=n}_preSetupInterval(){if(!this._isRunning){this.callMessagePrint("error","_preSetupInterval","Message service is not running");return}}setupIntervalForWords(n){if(this._preSetupInterval(),n!=null&&n.isForce){this._intervalRef&&(clearInterval(this._intervalRef),this._intervalRef=null),this._intervalRef=setInterval(()=>this.handleQueue(this._pts),this._interval);return}this._intervalRef||(this._intervalRef=setInterval(()=>this.handleQueue(this._pts),this._interval))}teardownInterval(){this._intervalRef&&(clearInterval(this._intervalRef),this._intervalRef=null)}get intervalRef(){return this._intervalRef}setIntervalRef(n){this._intervalRef=n}setPts(n){n>0&&n>this._pts&&(this._pts=n)}reset(){this.teardownInterval(),this._pts=0,this._isRunning=!1}},SELF_USER_ID=0,SubRenderQueue=class{constructor(n,e){this.queue=[],this.lastPoppedQueueItem=null,this.chatHistory=[],this.transcriptChunk=null,this.callMessagePrint=n,this.mutateChatHistory=e}processQueue(n){const e=this.queue.length;if(e!==0){if(e===1){const o=this.queue[0];this._handleTurnObj(o,n),this.mutateChatHistory();return}if(e>2&&this.callMessagePrint("error","Queue length is greater than 2, but it should not happen"),e>1){this.queue=this.queue.sort((S,v)=>S.turn_id-v.turn_id);const o=this.queue[this.queue.length-1],d=this.queue[this.queue.length-2];if(!o.words.length){this._handleTurnObj(d,n),this.mutateChatHistory();return}if(o.words[0].start_ms>n){this._handleTurnObj(d,n),this.mutateChatHistory();return}const f=this.chatHistory.find(S=>S.turn_id===d.turn_id&&S.stream_id===d.stream_id);if(!f){this.callMessagePrint("warn","No corresponding chatHistory item found",d);return}f.status=2,this.lastPoppedQueueItem=this.queue.shift(),this._handleTurnObj(o,n),this.mutateChatHistory();return}}}_handleTurnObj(n,e){let o=this.chatHistory.find(x=>x.turn_id===n.turn_id&&x.stream_id===n.stream_id);this.callMessagePrint("debug","handleTurnObj",n,"correspondingChatHistoryItem",o),o||(this.callMessagePrint("debug","handleTurnObj","No corresponding chatHistory item found","push to chatHistory"),o={turn_id:n.turn_id,uid:n.uid,stream_id:n.stream_id,_time:new Date().getTime(),text:"",status:n.status,metadata:n},this.appendChatHistory(o)),o._time=new Date().getTime(),o.metadata=n,n.status===2&&(o.status=2);const d=[],I=[];for(const x of n.words)x.start_ms<=e?d.push(x):I.push(x);const f=I.length===0,S=d.length>0&&d[d.length-1].word_status!==0;if(f&&S){o.text=n.text,o.status=n.status,this.lastPoppedQueueItem=this.queue.shift();return}const v=d.filter(x=>x.start_ms<=e).map(x=>x.word).join("");if(o.text=v,d.length>0&&d[d.length-1].word_status===2){this.lastPoppedQueueItem=this.queue.shift();return}}appendChatHistory(n){n.turn_id===0?this.chatHistory=[n,...this.chatHistory]:this.chatHistory.push(n)}interruptQueue(n){const e=n.turn_id,o=n.start_ms,d=this.queue.find(S=>S.turn_id===e);if(this.callMessagePrint("debug","interruptQueue",`turn_id: ${e}, start_ms: ${o}, correspondingQueueItem: ${d}`),!d)return;d.status=2;const I=d.words.filter(S=>S.start_ms<=o),f=d.words.filter(S=>S.start_ms>o);I.length===0?d.words.forEach(S=>{S.word_status=2}):(I[I.length-1].word_status=2,I!=null&&I[I.length-2]&&(I[I.length-2].word_status=2),f.forEach(S=>{S.word_status=2}),d.words=[...I,...f])}pushToQueue(n){const e=this.queue.find(d=>d.turn_id===n.turn_id),o=this.queue.reduce((d,I)=>Math.max(d,I.turn_id),0);if(!e){if(n.turn_id({...I,word_status:0})).sort((I,f)=>I.start_ms-f.start_ms).reduce((I,f)=>(I.find(S=>S.start_ms===f.start_ms)||I.push(f),I),[]);return e!==0&&o.length>0&&(o[o.length-1].word_status=e),o}reset(){this.queue=[],this.lastPoppedQueueItem=null,this.chatHistory=[],this.transcriptChunk=null}};SubRenderQueue.self_uid=SELF_USER_ID;var TAG="CovSubRenderController",SELF_USER_ID2=0,DEFAULT_INTERVAL=200,DEFAULT_CHUNK_INTERVAL=100,formatLog=factoryFormatLog({tag:TAG}),_CovSubRenderController=class v9{constructor(e={}){this._mode="unknown",this._agentMessageState=null,this._transcriptChunk=null,this.onChatHistoryUpdated=null,this.onAgentInterrupted=null,this.onDebugLog=null,this.onAgentMetrics=null,this.onAgentError=null,this.onMessageReceipt=null,this.onMessageError=null,this.onMessageSalStatus=null,this._enableLog=e.enableLog??!1,this.callMessagePrint=(d="debug",...I)=>{var f;this._enableLog&&(logger[d](formatLog(...I)),(f=this.onDebugLog)==null||f.call(this,`[${d}] ${formatLog(...I)}`))},this.callMessagePrint("debug",`${v9.NAME} initialized`);const o=e.interval??DEFAULT_INTERVAL;this._queue=new SubRenderQueue(this.callMessagePrint,this._mutateChatHistory.bind(this)),this._pts=new SubRenderPTS(o,this.callMessagePrint,this._queue.processQueue.bind(this._queue)),this.onChatHistoryUpdated=e.onChatHistoryUpdated??null,this.onAgentStateChanged=e.onAgentStateChanged??null,this.onAgentInterrupted=e.onAgentInterrupted??null,this.onDebugLog=e.onDebugLog??null,this.onAgentMetrics=e.onAgentMetrics??null,this.onAgentError=e.onAgentError??null,this.onMessageReceipt=e.onMessageReceipt??null,this.onMessageError=e.onMessageError??null,this.onMessageSalStatus=e.onMessageSalStatus??null}get chatHistory(){return this._queue.chatHistory}_mutateChatHistory(){var e;this.callMessagePrint("debug",">>> onChatHistoryUpdated",`pts: ${this._pts.pts}, chatHistory length: ${this._queue.chatHistory.length}`,this._queue.chatHistory.map(o=>`${o.uid}:${o.text}[status: ${o.status}]`).join(` -`)),(e=this.onChatHistoryUpdated)==null||e.call(this,this._queue.chatHistory)}handleTextMessage(e,o){const d=o.turn_id,I=o.text||"",f=o.stream_id,S=1,L=o.object==="user.transcription"?`${v9.self_uid}`:`${e}`,x=this._queue.chatHistory.find(F=>F.turn_id===d&&F.stream_id===f&&F.uid===L);x?(x.text=I,x.status=S,x.metadata=o,x._time=new Date().getTime(),this.callMessagePrint("debug","[Text Mode]",`[${e}]`,x)):(this.callMessagePrint("debug","[Text Mode]",`[${e}]`,"new item",o),this._queue.appendChatHistory({turn_id:d,uid:L,stream_id:f,_time:new Date().getTime(),text:I,status:S,metadata:o})),this._mutateChatHistory()}_handleTranscriptChunk(){if(!this._transcriptChunk){this.callMessagePrint("warn","[chunk Mode]","_handleTranscriptChunk","missing _transcriptChunk");return}const e=this._transcriptChunk.index,o=this._transcriptChunk.data,d=o.text.length,I=this._transcriptChunk.uid,f=e+1>=d?d:e+1;this._transcriptChunk.index=f;const S=o.text.substring(0,f),v=S.length>0&&o.turn_status!==0&&S.length===o.text.length,L=o.object==="user.transcription"?`${v9.self_uid}`:`${I}`,x=this._queue.chatHistory.find(F=>F.turn_id===o.turn_id&&F.stream_id===o.stream_id&&F.uid===L);x?(x.text=S,x.status=v?o.turn_status:x.status,x.metadata=o,x._time=Date.now(),this.callMessagePrint("debug","[chunk Mode]",`[${I}]`,"update transcriptChunk",x)):(this.callMessagePrint("debug","[chunk Mode]",`[${I}]`,"new transcriptChunk",this._transcriptChunk),this._queue.appendChatHistory({turn_id:o.turn_id,uid:L,stream_id:o.stream_id,_time:Date.now(),text:S,status:o.turn_status,metadata:o})),this._mutateChatHistory()}handleChunkTextMessage(e,o){var d;if(this.callMessagePrint("debug","[chunk Mode]",`[${e}]`,"new item",o),this._transcriptChunk&&this._transcriptChunk.data.turn_id{var S;return f.turn_id===((S=this._transcriptChunk)==null?void 0:S.data.turn_id)&&f.uid===e});I&&(I.status=1),this._transcriptChunk=null}this._transcriptChunk={index:((d=this._transcriptChunk)==null?void 0:d.index)??0,data:o,uid:e},this._pts.intervalRef||this._pts.setIntervalRef(setInterval(this._handleTranscriptChunk.bind(this),DEFAULT_CHUNK_INTERVAL))}handleMessageInterrupt(e,o){var f;this.callMessagePrint("debug","<<< [onInterrupted]",`pts: ${this._pts.pts}, uid: ${e}`,o);const d=o.turn_id,I=Math.min(o.start_ms,this._pts.pts)||o.start_ms;if(this._queue.interruptQueue({turn_id:d,start_ms:I}),this._transcriptChunk){this._pts.teardownInterval();const S=this._queue.chatHistory.find(v=>{var L;return v.turn_id===((L=this._transcriptChunk)==null?void 0:L.data.turn_id)&&v.uid===e});S&&(S.status=2),this._transcriptChunk=null}this._mutateChatHistory(),(f=this.onAgentInterrupted)==null||f.call(this,`${e}`,{turnID:d,timestamp:I})}handleMessageMetrics(e,o){var S;const d=o.latency_ms,I=o.module,f=o.metric_name;if(!Object.values(ModuleType).includes(I)){this.callMessagePrint("warn","Unknown metric module:",o);return}(S=this.onAgentMetrics)==null||S.call(this,`${e}`,{type:I,name:f,value:d,timestamp:o.send_ts})}handleMessageSalStatus(e,o){var d;this.callMessagePrint("debug","handleMessageSalStatus",o),(d=this.onMessageSalStatus)==null||d.call(this,`${e}`,o)}handleMessageError(e,o){var S,v;const d=o.code||-1,I=o.message,f=o.module;if(!Object.values(ModuleType).includes(f)){this.callMessagePrint("warn","Unknown error module:",o);return}if(f==="context"){try{const L=JSON.parse(I),x={type:(L==null?void 0:L.module)==="picture"?"image":"unknown",code:d,message:I,timestamp:(o==null?void 0:o.send_ts)||Date.now()};(S=this.onMessageError)==null||S.call(this,`${e}`,x)}catch(L){this.callMessagePrint("error","Failed to parse context error message",L,o)}return}(v=this.onAgentError)==null||v.call(this,`${e}`,{type:f,code:d,message:I,timestamp:(o==null?void 0:o.send_ts)||Date.now()})}handleMessageInfo(e,o){var d;try{const I=(o==null?void 0:o.message)||"",f=JSON.parse(I),S=o==null?void 0:o.module,v=o==null?void 0:o.turn_id;if(!I||!f||!S||!v){this.callMessagePrint("error","handleMessageInfo","Invalid message object",o);return}const L=(o==null?void 0:o.resource_type)==="picture"?"image":"unknown";(d=this.onMessageReceipt)==null||d.call(this,e,{moduleType:S,messageType:L,message:I,turnId:v})}catch(I){this.callMessagePrint("debug","handleMessageInfo","Failed to parse message string from image info message",I,o)}}handleAgentStatus(e){var L,x,F,Y,j,W;const o=e.stateChanged,d=Number(o.turn_id),I=Number.isFinite(d)?d:-1,f=Number(((L=this._agentMessageState)==null?void 0:L.turn_id)??-1);if((Number.isFinite(f)?f:-1)>I){this.callMessagePrint("debug","handleAgentStatus","ignore older message(turn_id)");return}const v=e.timestamp;if(Number(((x=this._agentMessageState)==null?void 0:x.timestamp)??0)>=v){this.callMessagePrint("debug","handleAgentStatus","ignore older message(timestamp)");return}this.callMessagePrint("debug",">>> handleAgentStatus",`pts: ${this._pts.pts}, uid: ${e.publisher}`,`prev-state: ${(F=this._agentMessageState)==null?void 0:F.state}, prev-turn_id: ${(Y=this._agentMessageState)==null?void 0:Y.turn_id}, prev-timestamp: ${(j=this._agentMessageState)==null?void 0:j.timestamp}`,`current-state: ${e.stateChanged.state}, turn_id: ${e.stateChanged.turn_id}, timestamp: ${e.timestamp}`),this._agentMessageState={state:o.state,turn_id:o.turn_id,timestamp:v},(W=this.onAgentStateChanged)==null||W.call(this,e.publisher,{state:o.state,turnID:Number(o.turn_id),timestamp:v,reason:""})}handleWordAgentMessage(e,o){var L;if(typeof o.turn_status>"u"){this.callMessagePrint("debug","[Word Mode]",`[${e}]`,"Drop message with undefined turn_status",o.turn_id);return}const d=o.turn_id,I=o.text||"",f=o.words||[],S=o.stream_id,v=(L=this._queue.lastPoppedQueueItem)==null?void 0:L.turn_id;if(v&&d!==0&&d<=v){this.callMessagePrint("debug","[Word Mode]",`[${e}]`,"Drop message with turn_id less than last popped queue item",`turn_id: ${d}, last popped queue item turn_id: ${v}`);return}this._queue.pushToQueue({uid:o.object==="user.transcription"?`${v9.self_uid}`:`${e}`,turn_id:d,words:f,text:I,status:o.turn_status,stream_id:S})}setMode(e){if(this._mode!=="unknown"&&this._mode!=="auto"){this.callMessagePrint("warn",`setMode ignored: mode already locked to ${this._mode}, cannot change to ${e}`);return}if(e==="unknown"){this.callMessagePrint("warn","Unknown mode should not be set");return}e==="chunk"?this._pts.setInterval(DEFAULT_CHUNK_INTERVAL):e!=="auto"&&this._pts.setInterval(DEFAULT_INTERVAL),this.callMessagePrint("debug","setMode",e),this._mode=e}handleMessage(e,o){const d=e==null?void 0:e.object;if(!Object.values(MessageType).includes(d)){this.callMessagePrint("info","<<< [unknown message]",o,e);return}const I=e.object==="assistant.transcription",f=e.object==="user.transcription",S=e.object==="message.interrupt",v=e.object==="message.metrics",L=e.object==="message.error",x=e.object==="message.info",F=e.object==="message.sal_status";if(I&&(this._mode==="unknown"||this._mode==="auto")&&(!e.words||Array.isArray(e.words)&&e.words.length===0?this.setMode("text"):(this._pts.setupIntervalForWords({isForce:!0}),this.setMode("word"))),I&&this._mode==="word"){this._pts.setupIntervalForWords({isForce:!1}),this.handleWordAgentMessage(o.publisher,e);return}if(I&&this._mode==="text"){this.handleTextMessage(o.publisher,e);return}if(I&&this._mode==="chunk"){this.handleChunkTextMessage(o.publisher,e);return}if(f){this.handleTextMessage(o.publisher,e);return}if(S){this.handleMessageInterrupt(o.publisher,e);return}if(x){this.handleMessageInfo(o.publisher,e);return}if(v){this.handleMessageMetrics(o.publisher,e);return}if(L){this.handleMessageError(o.publisher,e);return}if(F){this.handleMessageSalStatus(o.publisher,e);return}}run(){this._pts.setRunning(!0)}setPts(e){this._pts.setPts(e)}cleanup(){this.callMessagePrint("debug","cleanup"),this._pts.reset(),this._queue.reset(),this._mode="unknown",this._agentMessageState=null,this._transcriptChunk=null}};_CovSubRenderController.NAME=TAG;_CovSubRenderController.self_uid=SELF_USER_ID2;var CovSubRenderController=_CovSubRenderController,ChunkedMessageAssembler=class{constructor(n=3e4,e=1e3,o=!1){this.cache=new Map,this.timestamps=new Map,this.ttlMs=n,this.maxCacheSize=e,this.enableLog=o}assemble(n){this.evictStale();const e=n.split("|");if(e.length!==4)return null;const[o,d,I,f]=e,S=parseInt(d,10),v=I==="???"?-1:parseInt(I,10);if(isNaN(S)||v!==-1&&isNaN(v))return this.enableLog&&console.warn("[ChunkedMessageAssembler] Non-numeric part index/sum",{msgId:o}),null;if(v!==-1&&v<=0)return this.enableLog&&console.warn("[ChunkedMessageAssembler] Invalid part_sum",{msgId:o,part_sum:v}),null;if(S<1)return this.enableLog&&console.warn("[ChunkedMessageAssembler] Invalid part_idx: must be >= 1 (1-based wire format)",{msgId:o,rawPartIdx:S}),null;const L=S-1;if(v!==-1&&L>=v)return this.enableLog&&console.warn("[ChunkedMessageAssembler] part_idx >= part_sum",{msgId:o,part_idx:L,part_sum:v}),null;if(!this.cache.has(o)&&this.cache.size>=this.maxCacheSize){const F=this.findOldestKey();F&&(this.cache.delete(F),this.timestamps.delete(F))}this.cache.has(o)||(this.cache.set(o,[]),this.timestamps.set(o,Date.now()));const x=this.cache.get(o);if(x.some(F=>F.part_idx===L))return null;if(x.push({part_idx:L,part_sum:v,content:f}),x.sort((F,Y)=>F.part_idx-Y.part_idx),v!==-1&&x.length===v){const F=x.map(Y=>Y.content).join("");this.cache.delete(o),this.timestamps.delete(o);try{const Y=atob(F);return JSON.parse(Y)}catch{return this.enableLog&&console.warn("[ChunkedMessageAssembler] Failed to decode chunk payload",{msgId:o}),null}}return null}clear(){this.cache.clear(),this.timestamps.clear()}evictStale(){const n=Date.now();for(const[e,o]of this.timestamps)n-o>this.ttlMs&&(this.cache.delete(e),this.timestamps.delete(e))}findOldestKey(){let n,e=1/0;for(const[o,d]of this.timestamps)d{var I;this.enableLog&&(logger[o](formatLog2(...d)),(I=this.onDebugLog)==null||I.call(this,`[${o}] ${formatLog2(...d)}`))},this.callMessagePrint("debug",`${bs.NAME} initialized, version: ${bs.VERSION}`);const e=(o,d)=>(...I)=>{try{o(...I)}catch(f){this.callMessagePrint("error",`Error in ${d} callback`,f)}};this.covSubRenderController=new CovSubRenderController({enableLog:this.enableLog,onChatHistoryUpdated:e(this.onChatHistoryUpdated.bind(this),"onChatHistoryUpdated"),onAgentStateChanged:e(this.onAgentStateChanged.bind(this),"onAgentStateChanged"),onAgentInterrupted:e(this.onAgentInterrupted.bind(this),"onAgentInterrupted"),onDebugLog:e(this.onDebugLog.bind(this),"onDebugLog"),onAgentMetrics:e(this.onAgentMetrics.bind(this),"onAgentMetrics"),onAgentError:e(this.onAgentError.bind(this),"onAgentError"),onMessageReceipt:e(this.onMessageReceiptUpdated.bind(this),"onMessageReceipt"),onMessageError:e(this.onMessageError.bind(this),"onMessageError"),onMessageSalStatus:e(this.onMessageSalStatus.bind(this),"onMessageSalStatus")})}static getInstance(){if(!bs._instance)throw new NotInitializedError;return bs._instance}static getState(){var e;return((e=bs._instance)==null?void 0:e.getState())??null}getState(){return{initialized:!!this.rtcEngine,channel:this.channel,hasRtm:!!this.rtmEngine,renderMode:this.renderMode,listenerCounts:this.getListenerCounts()}}getCfg(){if(!this.rtcEngine)throw new NotInitializedError;return{rtcEngine:this.rtcEngine,renderMode:this.renderMode,channel:this.channel,enableLog:this.enableLog}}requireRTM(e="requireRTM"){if(!this.rtmEngine)throw new RTMRequiredError(e);return this.rtmEngine}static async init(e){if(bs._initPromise)try{await bs._initPromise}catch{}bs._initPromise=bs._doInit(e);try{return await bs._initPromise}finally{bs._initPromise=null}}static _validateEngines(e){var S;if(!(typeof process>"u"||!1))return;const d=(v,L,x)=>{if(typeof x!="function")throw new ConversationalAIError(`[AgoraVoiceAI] Invalid ${v}: expected \`${L}\` to be a function.`)},I=e.rtcEngine;d("rtcEngine","rtcEngine.on(eventName, listener)",I==null?void 0:I.on),d("rtcEngine","rtcEngine.off(eventName, listener)",I==null?void 0:I.off);const f=(S=e.rtmConfig)==null?void 0:S.rtmEngine;f&&(d("rtmEngine","rtmEngine.publish(channelName, message, options?)",f.publish),d("rtmEngine","rtmEngine.addEventListener(eventName, listener)",f.addEventListener),d("rtmEngine","rtmEngine.removeEventListener(eventName, listener)",f.removeEventListener))}static async _doInit(e){var d,I;bs._validateEngines(e);const o=e.enableAgoraMetrics?new AgoraMetricsReporter:new ConsoleMetricsReporter;return o instanceof AgoraMetricsReporter&&await o.init(),(d=bs._instance)!=null&&d.rtcEngine?(bs._instance.covSubRenderController.cleanup(),bs._instance.unsubscribe(),bs._instance.removeAllEventListeners()):bs._instance||(bs._instance=new bs),bs._instance.rtcEngine=e.rtcEngine,bs._instance.rtmEngine=((I=e.rtmConfig)==null?void 0:I.rtmEngine)??null,bs._instance.renderMode=e.renderMode??"unknown",bs._instance.enableLog=e.enableLog??!1,bs._instance.setLogLevel(e.enableLog?2:0),bs._instance.metricsReporter=o,bs._instance}subscribeMessage(e){this.bindRtcEvents(),this.rtmEngine&&this.bindRtmEvents(),this.channel=e,this.covSubRenderController.setMode(this.renderMode),this.covSubRenderController.run(),this._startEventTimeoutWarnings()}unsubscribe(){this._clearEventTimeout(),this.unbindRtcEvents(),this.rtmEngine&&this.unbindRtmEvents(),this.channel=null,this.covSubRenderController.cleanup(),this.chunkedAssembler.clear()}destroy(){const e=bs._instance;e&&(e.callMessagePrint("debug",`${bs.NAME} destroyed`),e._clearEventTimeout(),e.covSubRenderController.cleanup(),e.chunkedAssembler.clear(),e.unbindRtcEvents(),e.rtcEngine=null,e.unbindRtmEvents(),e.rtmEngine=null,e.renderMode="unknown",e.channel=null,e.removeAllEventListeners(),bs._instance=null)}async chat(e,o){switch(o.messageType){case"text":return this.sendText(e,o);case"image":return this.sendImage(e,o);default:throw new ConversationalAIError(`Unsupported chat message type: ${o.messageType}. Supported types: TEXT, IMAGE.`)}}async sendText(e,o){const d=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${d}] [chat] ${e}`,o);const I=this.requireRTM("sendText"),f={priority:o.priority??"interrupted",interruptable:o.responseInterruptable??!0,message:o.text??""};try{const S=JSON.stringify(f),v={channelType:"USER",customType:"user.transcription"};this.callMessagePrint("debug",`msg: [traceID: ${d}] rtm publish`,S);const L=await I.publish(e,S,v);this.callMessagePrint("debug",`>>> [traceID:${d}] [chat]`,"successfully sent chat message",L)}catch(S){throw this.callMessagePrint("error",`>>> [traceID:${d}] [chat]`,"failed to send chat message",S),new ConversationalAIError(`Failed to send chat message: ${S.message??S}`,{cause:S})}}async sendImage(e,o){const d=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${d}] [chat] ${e}`,o);const I=this.requireRTM("sendImage"),f={uuid:o.uuid,image_url:(o==null?void 0:o.url)||"",image_base64:(o==null?void 0:o.base64)||""};try{const S=JSON.stringify(f),v={channelType:"USER",customType:"image.upload"};this.callMessagePrint("debug",`msg: [traceID: ${d}] rtm publish`,S);const L=await I.publish(e,S,v);this.callMessagePrint("debug",`>>> [traceID:${d}] [chat]`,"successfully sent image message",L)}catch(S){throw this.callMessagePrint("error",`>>> [traceID:${d}] [chat]`,"failed to send image message",S),new ConversationalAIError(`Failed to send image message: ${S.message??S}`,{cause:S})}}async interrupt(e){const o=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${o}] [interrupt]`,e);const d=this.requireRTM("interrupt"),I={channelType:"USER",customType:"message.interrupt"},f=JSON.stringify({customType:"message.interrupt"});try{const S=await d.publish(e,f,I);this.callMessagePrint("debug",`>>> [traceID:${o}] [interrupt]`,"successfully sent interrupt message",S)}catch(S){throw this.callMessagePrint("error",`>>> [traceID:${o}] [interrupt]`,"failed to send interrupt message",S),new ConversationalAIError(`Failed to send interrupt: ${S.message??S}`,{cause:S})}}onChatHistoryUpdated(e){this.callMessagePrint("debug",">>> transcript-updated",e),this.emit("transcript-updated",e)}onAgentStateChanged(e,o){this.callMessagePrint("debug",">>> agent-state-changed",e,o),this.emit("agent-state-changed",e,o)}onAgentInterrupted(e,o){this.callMessagePrint("debug",">>> agent-interrupted",e,o),this.emit("agent-interrupted",e,o)}onDebugLog(e){this.emit("debug-log",e)}onAgentMetrics(e,o){this.callMessagePrint("debug",">>> agent-metrics",e,o),this.emit("agent-metrics",e,o)}onAgentError(e,o){this.callMessagePrint("error",">>> agent-error",e,o),this.emit("agent-error",e,o)}onMessageReceiptUpdated(e,o){this.callMessagePrint("debug",">>> message-receipt-updated",e,o),this.emit("message-receipt-updated",e,o)}onMessageError(e,o){this.callMessagePrint("error",">>> message-error",e,o),this.emit("message-error",e,o)}onMessageSalStatus(e,o){this.callMessagePrint("debug",">>> message-sal-status",e,o),this.emit("message-sal-status",e,o)}_clearEventTimeout(){this._eventTimeoutId!==null&&(clearTimeout(this._eventTimeoutId),this._eventTimeoutId=null),this._trackTranscriptHandler&&(this.off("transcript-updated",this._trackTranscriptHandler),this._trackTranscriptHandler=null),this._trackStateHandler&&(this.off("agent-state-changed",this._trackStateHandler),this._trackStateHandler=null)}_startEventTimeoutWarnings(){}bindRtcEvents(){this.getCfg().rtcEngine.on("audio-pts",this._boundHandleRtcAudioPTS),this.getCfg().rtcEngine.on("stream-message",this._boundHandleRtcStreamMessage)}unbindRtcEvents(){var e,o;(e=this.rtcEngine)==null||e.off("audio-pts",this._boundHandleRtcAudioPTS),(o=this.rtcEngine)==null||o.off("stream-message",this._boundHandleRtcStreamMessage)}bindRtmEvents(){this.rtmEngine.addEventListener("message",this._boundHandleRtmMessage),this.rtmEngine.addEventListener("presence",this._boundHandleRtmPresence),this.rtmEngine.addEventListener("status",this._boundHandleRtmStatus)}unbindRtmEvents(){var d;const e=["message","presence","status"],o=[this._boundHandleRtmMessage,this._boundHandleRtmPresence,this._boundHandleRtmStatus];for(let I=0;I>> [traceID:${o}] message`,`Publisher: ${e.publisher}, type: ${e.messageType}`);const d=e.message;let I;if(typeof d=="string")try{I=JSON.parse(d)}catch{this.callMessagePrint("warn",`>>> [traceID:${o}] message`,"Failed to parse RTM message",d);return}else if(d instanceof Uint8Array)try{const S=new TextDecoder("utf-8").decode(d);I=JSON.parse(S)}catch{this.callMessagePrint("warn",`>>> [traceID:${o}] message`,"Failed to parse RTM binary message");return}else{this.callMessagePrint("warn",`>>> [traceID:${o}] message`,"Unsupported message type received");return}this.callMessagePrint("debug",`>>> [traceID:${o}] message`,I);try{this.covSubRenderController.handleMessage(I,{publisher:e.publisher})}catch(f){this.callMessagePrint("error",`>>> [traceID:${o}] message`,"Error handling RTM message",f)}}_handleRtmPresence(e){const o=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${o}] presence`,`Publisher: ${e.publisher}`);const d=e.stateChanged;d&&typeof d.state=="string"&&typeof d.turn_id<"u"?(this.callMessagePrint("debug",`>>> [traceID:${o}] presence`,`State changed: ${d.state}, Turn ID: ${d.turn_id}, timestamp: ${e.timestamp}`),this.covSubRenderController.handleAgentStatus({...e,stateChanged:{state:d.state,turn_id:String(d.turn_id)}})):this.callMessagePrint("debug",`>>> [traceID:${o}] presence`,"No state change detected, skipping handling presence event")}_handleRtmStatus(e){const o=genTraceID();this.callMessagePrint("debug",`>>> [traceID:${o}] status`,e)}};_AgoraVoiceAI.NAME=TAG2;_AgoraVoiceAI.VERSION=VERSION;_AgoraVoiceAI._instance=null;_AgoraVoiceAI._initPromise=null;var AgoraVoiceAI=_AgoraVoiceAI;function r(n){var e,o,d="";if(typeof n=="string"||typeof n=="number")d+=n;else if(typeof n=="object")if(Array.isArray(n)){var I=n.length;for(e=0;en.length)&&(e=n.length);for(var o=0,d=Array(e);o2?d-2:0),f=2;f1?o-1:0),I=1;I"u"?null:unapply(BigInt.prototype.toString),symbolToString=typeof Symbol>"u"?null:unapply(Symbol.prototype.toString),objectHasOwnProperty=unapply(Object.prototype.hasOwnProperty),objectToString=unapply(Object.prototype.toString),regExpTest=unapply(RegExp.prototype.test),typeErrorCreate=unconstruct(TypeError);function unapply(n){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var o=arguments.length,d=new Array(o>1?o-1:0),I=1;I2&&arguments[2]!==void 0?arguments[2]:stringToLowerCase;if(setPrototypeOf&&setPrototypeOf(n,null),!arrayIsArray(e))return n;let d=e.length;for(;d--;){let I=e[d];if(typeof I=="string"){const f=o(I);f!==I&&(isFrozen(e)||(e[d]=f),I=f)}n[I]=!0}return n}function cleanArray(n){for(let e=0;e/g),TMPLIT_EXPR=seal(/\${[\w\W]*/g),DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]+$/),ARIA_ATTR=seal(/^aria-[\-\w]+$/),IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i),ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),DOCTYPE_NAME=seal(/^html$/i),CUSTOM_ELEMENT=seal(/^[a-z][.\w]*(-[.\w]+)+$/i),ELEMENT_MARKUP_PROBE=seal(/<[/\w!]/g),COMMENT_MARKUP_PROBE=seal(/<[/\w]/g),FALLBACK_TAG_CLOSE=seal(/<\/no(script|embed|frames)/i),SELF_CLOSING_TAG=seal(/\/>/i),NODE_TYPE={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},getGlobal=function(){return typeof window>"u"?null:window},_createTrustedTypesPolicy=function(e,o){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let d=null;const I="data-tt-policy-suffix";o&&o.hasAttribute(I)&&(d=o.getAttribute(I));const f="dompurify"+(d?"#"+d:"");try{return e.createPolicy(f,{createHTML(S){return S},createScriptURL(S){return S}})}catch{return console.warn("TrustedTypes policy "+f+" could not be created."),null}},_createHooksMap=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},_resolveSetOption=function(e,o,d,I){return objectHasOwnProperty(e,o)&&arrayIsArray(e[o])?addToSet(I.base?clone(I.base):{},e[o],I.transform):d};function createDOMPurify(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const e=dr=>createDOMPurify(dr);if(e.version="3.4.11",e.removed=[],!n||!n.document||n.document.nodeType!==NODE_TYPE.document||!n.Element)return e.isSupported=!1,e;let o=n.document;const d=o,I=d.currentScript;n.DocumentFragment;const f=n.HTMLTemplateElement,S=n.Node,v=n.Element,L=n.NodeFilter,x=n.NamedNodeMap;x===void 0&&(n.NamedNodeMap||n.MozNamedAttrMap),n.HTMLFormElement;const F=n.DOMParser,Y=n.trustedTypes,j=v.prototype,W=lookupGetter(j,"cloneNode"),re=lookupGetter(j,"remove"),ee=lookupGetter(j,"nextSibling"),he=lookupGetter(j,"childNodes"),ue=lookupGetter(j,"parentNode"),Ee=lookupGetter(j,"shadowRoot"),_e=lookupGetter(j,"attributes"),De=S&&S.prototype?lookupGetter(S.prototype,"nodeType"):null,Fe=S&&S.prototype?lookupGetter(S.prototype,"nodeName"):null;if(typeof f=="function"){const dr=o.createElement("template");dr.content&&dr.content.ownerDocument&&(o=dr.content.ownerDocument)}let Ve,Ge="",He,At=!1,Bt=0;const Tt=function(){if(Bt>0)throw typeErrorCreate('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},rt=function(Ze){Tt(),Bt++;try{return Ve.createHTML(Ze)}finally{Bt--}},ye=function(Ze){Tt(),Bt++;try{return Ve.createScriptURL(Ze)}finally{Bt--}},lt=function(){return At||(He=_createTrustedTypesPolicy(Y,I),At=!0),He},Yt=o,ct=Yt.implementation,ht=Yt.createNodeIterator,vt=Yt.createDocumentFragment,ar=Yt.getElementsByTagName,jt=d.importNode;let vr=_createHooksMap();e.isSupported=typeof entries=="function"&&typeof ue=="function"&&ct&&ct.createHTMLDocument!==void 0;const ai=MUSTACHE_EXPR,pi=ERB_EXPR,yi=TMPLIT_EXPR,fi=DATA_ATTR,Jn=ARIA_ATTR,xr=IS_SCRIPT_OR_DATA,pr=ATTR_WHITESPACE,ei=CUSTOM_ELEMENT;let _i=IS_ALLOWED_URI,Gr=null;const oi=addToSet({},[...html$1,...svg$1,...svgFilters,...mathMl$1,...text]);let Oi=null;const _o=addToSet({},[...html,...svg,...mathMl,...xml]);let $n=Object.seal(create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),gs=null,Bs=null;const Kn=Object.seal(create(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Tn=!0,Zn=!0,hc=!1,Fs=!0,bt=!1,Es=!0,Me=!1,ot=!1,Ct=null,Kt=null,Xr=!1,Lr=!1,Jr=!1,zr=!1,ci=!0,ro=!1;const Ho="user-content-";let Oa=!0,da=!1,ua={},Ns=null;const w1=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]);let qc=null;const ag=addToSet({},["audio","video","img","source","image","track"]);let du=null;const D1=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),oA="http://www.w3.org/1998/Math/MathML",xA="http://www.w3.org/2000/svg",Mo="http://www.w3.org/1999/xhtml";let _r=Mo,rn=!1,dn=null;const Io=addToSet({},[oA,xA,Mo],stringToString),b1=freeze(["mi","mo","mn","ms","mtext"]);let u1=addToSet({},b1);const N1=freeze(["annotation-xml"]);let Ic=addToSet({},N1);const Sa=addToSet({},["title","style","font","a","script"]);let Wc=null;const Ll=["application/xhtml+xml","text/html"],mA="text/html";let hs=null,O1=null;const gE=o.createElement("form"),EE=function(Ze){return Ze instanceof RegExp||Ze instanceof Function},Ag=function(){let Ze=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(O1&&O1===Ze)return;(!Ze||typeof Ze!="object")&&(Ze={}),Ze=clone(Ze),Wc=Ll.indexOf(Ze.PARSER_MEDIA_TYPE)===-1?mA:Ze.PARSER_MEDIA_TYPE,hs=Wc==="application/xhtml+xml"?stringToString:stringToLowerCase,Gr=_resolveSetOption(Ze,"ALLOWED_TAGS",oi,{transform:hs}),Oi=_resolveSetOption(Ze,"ALLOWED_ATTR",_o,{transform:hs}),dn=_resolveSetOption(Ze,"ALLOWED_NAMESPACES",Io,{transform:stringToString}),du=_resolveSetOption(Ze,"ADD_URI_SAFE_ATTR",D1,{transform:hs,base:D1}),qc=_resolveSetOption(Ze,"ADD_DATA_URI_TAGS",ag,{transform:hs,base:ag}),Ns=_resolveSetOption(Ze,"FORBID_CONTENTS",w1,{transform:hs}),gs=_resolveSetOption(Ze,"FORBID_TAGS",clone({}),{transform:hs}),Bs=_resolveSetOption(Ze,"FORBID_ATTR",clone({}),{transform:hs}),ua=objectHasOwnProperty(Ze,"USE_PROFILES")?Ze.USE_PROFILES&&typeof Ze.USE_PROFILES=="object"?clone(Ze.USE_PROFILES):Ze.USE_PROFILES:!1,Tn=Ze.ALLOW_ARIA_ATTR!==!1,Zn=Ze.ALLOW_DATA_ATTR!==!1,hc=Ze.ALLOW_UNKNOWN_PROTOCOLS||!1,Fs=Ze.ALLOW_SELF_CLOSE_IN_ATTR!==!1,bt=Ze.SAFE_FOR_TEMPLATES||!1,Es=Ze.SAFE_FOR_XML!==!1,Me=Ze.WHOLE_DOCUMENT||!1,Lr=Ze.RETURN_DOM||!1,Jr=Ze.RETURN_DOM_FRAGMENT||!1,zr=Ze.RETURN_TRUSTED_TYPE||!1,Xr=Ze.FORCE_BODY||!1,ci=Ze.SANITIZE_DOM!==!1,ro=Ze.SANITIZE_NAMED_PROPS||!1,Oa=Ze.KEEP_CONTENT!==!1,da=Ze.IN_PLACE||!1,_i=isRegex(Ze.ALLOWED_URI_REGEXP)?Ze.ALLOWED_URI_REGEXP:IS_ALLOWED_URI,_r=typeof Ze.NAMESPACE=="string"?Ze.NAMESPACE:Mo,u1=objectHasOwnProperty(Ze,"MATHML_TEXT_INTEGRATION_POINTS")&&Ze.MATHML_TEXT_INTEGRATION_POINTS&&typeof Ze.MATHML_TEXT_INTEGRATION_POINTS=="object"?clone(Ze.MATHML_TEXT_INTEGRATION_POINTS):addToSet({},b1),Ic=objectHasOwnProperty(Ze,"HTML_INTEGRATION_POINTS")&&Ze.HTML_INTEGRATION_POINTS&&typeof Ze.HTML_INTEGRATION_POINTS=="object"?clone(Ze.HTML_INTEGRATION_POINTS):addToSet({},N1);const Nt=objectHasOwnProperty(Ze,"CUSTOM_ELEMENT_HANDLING")&&Ze.CUSTOM_ELEMENT_HANDLING&&typeof Ze.CUSTOM_ELEMENT_HANDLING=="object"?clone(Ze.CUSTOM_ELEMENT_HANDLING):create(null);if($n=create(null),objectHasOwnProperty(Nt,"tagNameCheck")&&EE(Nt.tagNameCheck)&&($n.tagNameCheck=Nt.tagNameCheck),objectHasOwnProperty(Nt,"attributeNameCheck")&&EE(Nt.attributeNameCheck)&&($n.attributeNameCheck=Nt.attributeNameCheck),objectHasOwnProperty(Nt,"allowCustomizedBuiltInElements")&&typeof Nt.allowCustomizedBuiltInElements=="boolean"&&($n.allowCustomizedBuiltInElements=Nt.allowCustomizedBuiltInElements),seal($n),bt&&(Zn=!1),Jr&&(Lr=!0),ua&&(Gr=addToSet({},text),Oi=create(null),ua.html===!0&&(addToSet(Gr,html$1),addToSet(Oi,html)),ua.svg===!0&&(addToSet(Gr,svg$1),addToSet(Oi,svg),addToSet(Oi,xml)),ua.svgFilters===!0&&(addToSet(Gr,svgFilters),addToSet(Oi,svg),addToSet(Oi,xml)),ua.mathMl===!0&&(addToSet(Gr,mathMl$1),addToSet(Oi,mathMl),addToSet(Oi,xml))),Kn.tagCheck=null,Kn.attributeCheck=null,objectHasOwnProperty(Ze,"ADD_TAGS")&&(typeof Ze.ADD_TAGS=="function"?Kn.tagCheck=Ze.ADD_TAGS:arrayIsArray(Ze.ADD_TAGS)&&(Gr===oi&&(Gr=clone(Gr)),addToSet(Gr,Ze.ADD_TAGS,hs))),objectHasOwnProperty(Ze,"ADD_ATTR")&&(typeof Ze.ADD_ATTR=="function"?Kn.attributeCheck=Ze.ADD_ATTR:arrayIsArray(Ze.ADD_ATTR)&&(Oi===_o&&(Oi=clone(Oi)),addToSet(Oi,Ze.ADD_ATTR,hs))),objectHasOwnProperty(Ze,"ADD_URI_SAFE_ATTR")&&arrayIsArray(Ze.ADD_URI_SAFE_ATTR)&&addToSet(du,Ze.ADD_URI_SAFE_ATTR,hs),objectHasOwnProperty(Ze,"FORBID_CONTENTS")&&arrayIsArray(Ze.FORBID_CONTENTS)&&(Ns===w1&&(Ns=clone(Ns)),addToSet(Ns,Ze.FORBID_CONTENTS,hs)),objectHasOwnProperty(Ze,"ADD_FORBID_CONTENTS")&&arrayIsArray(Ze.ADD_FORBID_CONTENTS)&&(Ns===w1&&(Ns=clone(Ns)),addToSet(Ns,Ze.ADD_FORBID_CONTENTS,hs)),Oa&&(Gr["#text"]=!0),Me&&addToSet(Gr,["html","head","body"]),Gr.table&&(addToSet(Gr,["tbody"]),delete gs.tbody),Ze.TRUSTED_TYPES_POLICY){if(typeof Ze.TRUSTED_TYPES_POLICY.createHTML!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ze.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');const Rr=Ve;Ve=Ze.TRUSTED_TYPES_POLICY;try{Ge=rt("")}catch(ti){throw Ve=Rr,ti}}else Ze.TRUSTED_TYPES_POLICY===null?(Ve=void 0,Ge=""):(Ve===void 0&&(Ve=lt()),Ve&&typeof Ge=="string"&&(Ge=rt("")));freeze&&freeze(Ze),O1=Ze},Ml=addToSet({},[...svg$1,...svgFilters,...svgDisallowed]),Cd=addToSet({},[...mathMl$1,...mathMlDisallowed]),pd=function(Ze,Nt,Rr){return Nt.namespaceURI===Mo?Ze==="svg":Nt.namespaceURI===oA?Ze==="svg"&&(Rr==="annotation-xml"||u1[Rr]):!!Ml[Ze]},uu=function(Ze,Nt,Rr){return Nt.namespaceURI===Mo?Ze==="math":Nt.namespaceURI===xA?Ze==="math"&&Ic[Rr]:!!Cd[Ze]},Up=function(Ze,Nt,Rr){return Nt.namespaceURI===xA&&!Ic[Rr]||Nt.namespaceURI===oA&&!u1[Rr]?!1:!Cd[Ze]&&(Sa[Ze]||!Ml[Ze])},L1=function(Ze){let Nt=ue(Ze);(!Nt||!Nt.tagName)&&(Nt={namespaceURI:_r,tagName:"template"});const Rr=stringToLowerCase(Ze.tagName),ti=stringToLowerCase(Nt.tagName);return dn[Ze.namespaceURI]?Ze.namespaceURI===xA?pd(Rr,Nt,ti):Ze.namespaceURI===oA?uu(Rr,Nt,ti):Ze.namespaceURI===Mo?Up(Rr,Nt,ti):!!(Wc==="application/xhtml+xml"&&dn[Ze.namespaceURI]):!1},La=function(Ze){arrayPush(e.removed,{element:Ze});try{ue(Ze).removeChild(Ze)}catch{if(re(Ze),!ue(Ze))throw typeErrorCreate("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},hI=function(Ze){const Nt=he(Ze);if(Nt){const ti=[];arrayForEach(Nt,Ui=>{arrayPush(ti,Ui)}),arrayForEach(ti,Ui=>{try{re(Ui)}catch{}})}const Rr=_e(Ze);if(Rr)for(let ti=Rr.length-1;ti>=0;--ti){const Ui=Rr[ti],hn=Ui&&Ui.name;if(typeof hn=="string")try{Ze.removeAttribute(hn)}catch{}}},ts=function(Ze,Nt){try{arrayPush(e.removed,{attribute:Nt.getAttributeNode(Ze),from:Nt})}catch{arrayPush(e.removed,{attribute:null,from:Nt})}if(Nt.removeAttribute(Ze),Ze==="is")if(Lr||Jr)try{La(Nt)}catch{}else try{Nt.setAttribute(Ze,"")}catch{}},Xs=function(Ze){const Nt=_e(Ze);if(Nt)for(let Rr=Nt.length-1;Rr>=0;--Rr){const ti=Nt[Rr],Ui=ti&&ti.name;if(!(typeof Ui!="string"||Oi[hs(Ui)]))try{Ze.removeAttribute(Ui)}catch{}}},xp=function(Ze){const Nt=[Ze];for(;Nt.length>0;){const Rr=Nt.pop();(De?De(Rr):Rr.nodeType)===NODE_TYPE.element&&Xs(Rr);const Ui=he(Rr);if(Ui)for(let hn=Ui.length-1;hn>=0;--hn)Nt.push(Ui[hn])}},II=function(Ze){let Nt=null,Rr=null;if(Xr)Ze=""+Ze;else{const hn=stringMatch(Ze,/^[\r\n\t ]+/);Rr=hn&&hn[0]}Wc==="application/xhtml+xml"&&_r===Mo&&(Ze=''+Ze+"");const ti=Ve?rt(Ze):Ze;if(_r===Mo)try{Nt=new F().parseFromString(ti,Wc)}catch{}if(!Nt||!Nt.documentElement){Nt=ct.createDocument(_r,"template",null);try{Nt.documentElement.innerHTML=rn?Ge:ti}catch{}}const Ui=Nt.body||Nt.documentElement;return Ze&&Rr&&Ui.insertBefore(o.createTextNode(Rr),Ui.childNodes[0]||null),_r===Mo?ar.call(Nt,Me?"html":"body")[0]:Me?Nt.documentElement:Ui},hE=function(Ze){return ht.call(Ze.ownerDocument||Ze,Ze,L.SHOW_ELEMENT|L.SHOW_COMMENT|L.SHOW_TEXT|L.SHOW_PROCESSING_INSTRUCTION|L.SHOW_CDATA_SECTION,null)},fd=function(Ze){return Ze=stringReplace(Ze,ai," "),Ze=stringReplace(Ze,pi," "),Ze=stringReplace(Ze,yi," "),Ze},kl=function(Ze){var Nt;Ze.normalize();const Rr=ht.call(Ze.ownerDocument||Ze,Ze,L.SHOW_TEXT|L.SHOW_COMMENT|L.SHOW_CDATA_SECTION|L.SHOW_PROCESSING_INSTRUCTION,null);let ti=Rr.nextNode();for(;ti;)ti.data=fd(ti.data),ti=Rr.nextNode();const Ui=(Nt=Ze.querySelectorAll)===null||Nt===void 0?void 0:Nt.call(Ze,"template");Ui&&arrayForEach(Ui,hn=>{_d(hn.content)&&kl(hn.content)})},cg=function(Ze){const Nt=Fe?Fe(Ze):null;return typeof Nt!="string"||hs(Nt)!=="form"?!1:typeof Ze.nodeName!="string"||typeof Ze.textContent!="string"||typeof Ze.removeChild!="function"||Ze.attributes!==_e(Ze)||typeof Ze.removeAttribute!="function"||typeof Ze.setAttribute!="function"||typeof Ze.namespaceURI!="string"||typeof Ze.insertBefore!="function"||typeof Ze.hasChildNodes!="function"||Ze.nodeType!==De(Ze)||Ze.childNodes!==he(Ze)},_d=function(Ze){if(!De||typeof Ze!="object"||Ze===null)return!1;try{return De(Ze)===NODE_TYPE.documentFragment}catch{return!1}},lg=function(Ze){if(!De||typeof Ze!="object"||Ze===null)return!1;try{return typeof De(Ze)=="number"}catch{return!1}};function FA(dr,Ze,Nt){dr.length!==0&&arrayForEach(dr,Rr=>{Rr.call(e,Ze,Nt,O1)})}const md=function(Ze,Nt){return!!(Es&&Ze.hasChildNodes()&&!lg(Ze.firstElementChild)&®ExpTest(ELEMENT_MARKUP_PROBE,Ze.textContent)&®ExpTest(ELEMENT_MARKUP_PROBE,Ze.innerHTML)||Es&&Ze.namespaceURI===Mo&&Nt==="style"&&lg(Ze.firstElementChild)||Ze.nodeType===NODE_TYPE.processingInstruction||Es&&Ze.nodeType===NODE_TYPE.comment&®ExpTest(COMMENT_MARKUP_PROBE,Ze.data))},Xc=function(Ze,Nt){if(!gs[Nt]&&dg(Nt)&&($n.tagNameCheck instanceof RegExp&®ExpTest($n.tagNameCheck,Nt)||$n.tagNameCheck instanceof Function&&$n.tagNameCheck(Nt)))return!1;if(Oa&&!Ns[Nt]){const Rr=ue(Ze),ti=he(Ze);if(ti&&Rr){const Ui=ti.length;for(let hn=Ui-1;hn>=0;--hn){const Uo=da?ti[hn]:W(ti[hn],!0);Rr.insertBefore(Uo,ee(Ze))}}}return La(Ze),!0},IE=function(Ze){if(FA(vr.beforeSanitizeElements,Ze,null),cg(Ze))return La(Ze),!0;const Nt=hs(Fe?Fe(Ze):Ze.nodeName);if(FA(vr.uponSanitizeElement,Ze,{tagName:Nt,allowedTags:Gr}),md(Ze,Nt))return La(Ze),!0;if(gs[Nt]||!(Kn.tagCheck instanceof Function&&Kn.tagCheck(Nt))&&!Gr[Nt])return Xc(Ze,Nt);if((De?De(Ze):Ze.nodeType)===NODE_TYPE.element&&!L1(Ze)||(Nt==="noscript"||Nt==="noembed"||Nt==="noframes")&®ExpTest(FALLBACK_TAG_CLOSE,Ze.innerHTML))return La(Ze),!0;if(bt&&Ze.nodeType===NODE_TYPE.text){const ti=fd(Ze.textContent);Ze.textContent!==ti&&(arrayPush(e.removed,{element:Ze.cloneNode()}),Ze.textContent=ti)}return FA(vr.afterSanitizeElements,Ze,null),!1},vo=function(Ze,Nt,Rr){if(Bs[Nt]||ci&&(Nt==="id"||Nt==="name")&&(Rr in o||Rr in gE))return!1;const ti=Oi[Nt]||Kn.attributeCheck instanceof Function&&Kn.attributeCheck(Nt,Ze);if(!(Zn&®ExpTest(fi,Nt))){if(!(Tn&®ExpTest(Jn,Nt))){if(ti){if(!du[Nt]){if(!regExpTest(_i,stringReplace(Rr,pr,""))){if(!((Nt==="src"||Nt==="xlink:href"||Nt==="href")&&Ze!=="script"&&stringIndexOf(Rr,"data:")===0&&qc[Ze])){if(!(hc&&!regExpTest(xr,stringReplace(Rr,pr,"")))){if(Rr)return!1}}}}}else if(!(dg(Ze)&&($n.tagNameCheck instanceof RegExp&®ExpTest($n.tagNameCheck,Ze)||$n.tagNameCheck instanceof Function&&$n.tagNameCheck(Ze))&&($n.attributeNameCheck instanceof RegExp&®ExpTest($n.attributeNameCheck,Nt)||$n.attributeNameCheck instanceof Function&&$n.attributeNameCheck(Nt,Ze))||Nt==="is"&&$n.allowCustomizedBuiltInElements&&($n.tagNameCheck instanceof RegExp&®ExpTest($n.tagNameCheck,Rr)||$n.tagNameCheck instanceof Function&&$n.tagNameCheck(Rr))))return!1}}return!0},Po=addToSet({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),dg=function(Ze){return!Po[stringToLowerCase(Ze)]&®ExpTest(ei,Ze)},zh=function(Ze,Nt,Rr,ti){if(Ve&&typeof Y=="object"&&typeof Y.getAttributeType=="function"&&!Rr)switch(Y.getAttributeType(Ze,Nt)){case"TrustedHTML":return rt(ti);case"TrustedScriptURL":return ye(ti)}return ti},$h=function(Ze,Nt,Rr,ti){try{Rr?Ze.setAttributeNS(Rr,Nt,ti):Ze.setAttribute(Nt,ti),cg(Ze)?La(Ze):arrayPop(e.removed)}catch{ts(Nt,Ze)}},Zh=function(Ze){FA(vr.beforeSanitizeAttributes,Ze,null);const Nt=Ze.attributes;if(!Nt||cg(Ze))return;const Rr={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Oi,forceKeepAttr:void 0};let ti=Nt.length;const Ui=hs(Ze.nodeName);for(;ti--;){const hn=Nt[ti],Uo=hn.name,zs=hn.namespaceURI,GA=hn.value,M1=hs(Uo),A0=GA;let sA=Uo==="value"?A0:stringTrim(A0);if(Rr.attrName=M1,Rr.attrValue=sA,Rr.keepAttr=!0,Rr.forceKeepAttr=void 0,FA(vr.uponSanitizeAttribute,Ze,Rr),sA=Rr.attrValue,ro&&(M1==="id"||M1==="name")&&stringIndexOf(sA,Ho)!==0&&(ts(Uo,Ze),sA=Ho+sA),Es&®ExpTest(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,sA)){ts(Uo,Ze);continue}if(M1==="attributename"&&stringMatch(sA,"href")){ts(Uo,Ze);continue}if(!Rr.forceKeepAttr){if(!Rr.keepAttr){ts(Uo,Ze);continue}if(!Fs&®ExpTest(SELF_CLOSING_TAG,sA)){ts(Uo,Ze);continue}if(bt&&(sA=fd(sA)),!vo(Ui,M1,sA)){ts(Uo,Ze);continue}sA=zh(Ui,M1,zs,sA),sA!==A0&&$h(Ze,Uo,zs,sA)}}FA(vr.afterSanitizeAttributes,Ze,null)},Bd=function(Ze){let Nt=null;const Rr=hE(Ze);for(FA(vr.beforeSanitizeShadowDOM,Ze,null);Nt=Rr.nextNode();)if(FA(vr.uponSanitizeShadowNode,Nt,null),IE(Nt),Zh(Nt),_d(Nt.content)&&Bd(Nt.content),(De?De(Nt):Nt.nodeType)===NODE_TYPE.element){const Ui=Ee(Nt);_d(Ui)&&(o0(Ui),Bd(Ui))}FA(vr.afterSanitizeShadowDOM,Ze,null)},o0=function(Ze){const Nt=[{node:Ze,shadow:null}];for(;Nt.length>0;){const Rr=Nt.pop();if(Rr.shadow){Bd(Rr.shadow);continue}const ti=Rr.node,hn=(De?De(ti):ti.nodeType)===NODE_TYPE.element,Uo=he(ti);if(Uo)for(let zs=Uo.length-1;zs>=0;--zs)Nt.push({node:Uo[zs],shadow:null});if(hn){const zs=Fe?Fe(ti):null;if(typeof zs=="string"&&hs(zs)==="template"){const GA=ti.content;_d(GA)&&Nt.push({node:GA,shadow:null})}}if(hn){const zs=Ee(ti);_d(zs)&&Nt.push({node:null,shadow:zs},{node:zs,shadow:null})}}};return e.sanitize=function(dr){let Ze=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Nt=null,Rr=null,ti=null,Ui=null;if(rn=!dr,rn&&(dr=""),typeof dr!="string"&&!lg(dr)&&(dr=stringifyValue(dr),typeof dr!="string"))throw typeErrorCreate("dirty is not a string, aborting");if(!e.isSupported)return dr;ot?(Gr=Ct,Oi=Kt):Ag(Ze),(vr.uponSanitizeElement.length>0||vr.uponSanitizeAttribute.length>0)&&(Gr=clone(Gr)),vr.uponSanitizeAttribute.length>0&&(Oi=clone(Oi)),e.removed=[];const hn=da&&typeof dr!="string"&&lg(dr);if(hn){const GA=Fe?Fe(dr):dr.nodeName;if(typeof GA=="string"){const M1=hs(GA);if(!Gr[M1]||gs[M1])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}if(cg(dr))throw typeErrorCreate("root node is clobbered and cannot be sanitized in-place");try{o0(dr)}catch(M1){throw hI(dr),M1}}else if(lg(dr))Nt=II(""),Rr=Nt.ownerDocument.importNode(dr,!0),Rr.nodeType===NODE_TYPE.element&&Rr.nodeName==="BODY"||Rr.nodeName==="HTML"?Nt=Rr:Nt.appendChild(Rr),o0(Rr);else{if(!Lr&&!bt&&!Me&&dr.indexOf("<")===-1)return Ve&&zr?rt(dr):dr;if(Nt=II(dr),!Nt)return Lr?null:zr?Ge:""}Nt&&Xr&&La(Nt.firstChild);const Uo=hE(hn?dr:Nt);try{for(;ti=Uo.nextNode();)IE(ti),Zh(ti),_d(ti.content)&&Bd(ti.content)}catch(GA){throw hn&&hI(dr),GA}if(hn)return arrayForEach(e.removed,GA=>{GA.element&&xp(GA.element)}),bt&&kl(dr),dr;if(Lr){if(bt&&kl(Nt),Jr)for(Ui=vt.call(Nt.ownerDocument);Nt.firstChild;)Ui.appendChild(Nt.firstChild);else Ui=Nt;return(Oi.shadowroot||Oi.shadowrootmode)&&(Ui=jt.call(d,Ui,!0)),Ui}let zs=Me?Nt.outerHTML:Nt.innerHTML;return Me&&Gr["!doctype"]&&Nt.ownerDocument&&Nt.ownerDocument.doctype&&Nt.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,Nt.ownerDocument.doctype.name)&&(zs=" -`+zs),bt&&(zs=fd(zs)),Ve&&zr?rt(zs):zs},e.setConfig=function(){let dr=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ag(dr),ot=!0,Ct=Gr,Kt=Oi},e.clearConfig=function(){O1=null,ot=!1,Ct=null,Kt=null,Ve=He,Ge=""},e.isValidAttribute=function(dr,Ze,Nt){O1||Ag({});const Rr=hs(dr),ti=hs(Ze);return vo(Rr,ti,Nt)},e.addHook=function(dr,Ze){typeof Ze=="function"&&objectHasOwnProperty(vr,dr)&&arrayPush(vr[dr],Ze)},e.removeHook=function(dr,Ze){if(objectHasOwnProperty(vr,dr)){if(Ze!==void 0){const Nt=arrayLastIndexOf(vr[dr],Ze);return Nt===-1?void 0:arraySplice(vr[dr],Nt,1)[0]}return arrayPop(vr[dr])}},e.removeHooks=function(dr){objectHasOwnProperty(vr,dr)&&(vr[dr]=[])},e.removeAllHooks=function(){vr=_createHooksMap()},e}createDOMPurify();const concatArrays=(n,e)=>{const o=new Array(n.length+e.length);for(let d=0;d({classGroupId:n,validator:e}),createClassPartObject=(n=new Map,e=null,o)=>({nextPart:n,validators:e,classGroupId:o}),CLASS_PART_SEPARATOR="-",EMPTY_CONFLICTS=[],ARBITRARY_PROPERTY_PREFIX="arbitrary..",createClassGroupUtils=n=>{const e=createClassMap(n),{conflictingClassGroups:o,conflictingClassGroupModifiers:d}=n;return{getClassGroupId:S=>{if(S.startsWith("[")&&S.endsWith("]"))return getGroupIdForArbitraryProperty(S);const v=S.split(CLASS_PART_SEPARATOR),L=v[0]===""&&v.length>1?1:0;return getGroupRecursive(v,L,e)},getConflictingClassGroupIds:(S,v)=>{if(v){const L=d[S],x=o[S];return L?x?concatArrays(x,L):L:x||EMPTY_CONFLICTS}return o[S]||EMPTY_CONFLICTS}}},getGroupRecursive=(n,e,o)=>{if(n.length-e===0)return o.classGroupId;const I=n[e],f=o.nextPart.get(I);if(f){const x=getGroupRecursive(n,e+1,f);if(x)return x}const S=o.validators;if(S===null)return;const v=e===0?n.join(CLASS_PART_SEPARATOR):n.slice(e).join(CLASS_PART_SEPARATOR),L=S.length;for(let x=0;xn.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const e=n.slice(1,-1),o=e.indexOf(":"),d=e.slice(0,o);return d?ARBITRARY_PROPERTY_PREFIX+d:void 0})(),createClassMap=n=>{const{theme:e,classGroups:o}=n;return processClassGroups(o,e)},processClassGroups=(n,e)=>{const o=createClassPartObject();for(const d in n){const I=n[d];processClassesRecursively(I,o,d,e)}return o},processClassesRecursively=(n,e,o,d)=>{const I=n.length;for(let f=0;f{if(typeof n=="string"){processStringDefinition(n,e,o);return}if(typeof n=="function"){processFunctionDefinition(n,e,o,d);return}processObjectDefinition(n,e,o,d)},processStringDefinition=(n,e,o)=>{const d=n===""?e:getPart(e,n);d.classGroupId=o},processFunctionDefinition=(n,e,o,d)=>{if(isThemeGetter(n)){processClassesRecursively(n(d),e,o,d);return}e.validators===null&&(e.validators=[]),e.validators.push(createClassValidatorObject(o,n))},processObjectDefinition=(n,e,o,d)=>{const I=Object.entries(n),f=I.length;for(let S=0;S{let o=n;const d=e.split(CLASS_PART_SEPARATOR),I=d.length;for(let f=0;f"isThemeGetter"in n&&n.isThemeGetter===!0,createLruCache=n=>{if(n<1)return{get:()=>{},set:()=>{}};let e=0,o=Object.create(null),d=Object.create(null);const I=(f,S)=>{o[f]=S,e++,e>n&&(e=0,d=o,o=Object.create(null))};return{get(f){let S=o[f];if(S!==void 0)return S;if((S=d[f])!==void 0)return I(f,S),S},set(f,S){f in o?o[f]=S:I(f,S)}}},IMPORTANT_MODIFIER="!",MODIFIER_SEPARATOR=":",EMPTY_MODIFIERS=[],createResultObject=(n,e,o,d,I)=>({modifiers:n,hasImportantModifier:e,baseClassName:o,maybePostfixModifierPosition:d,isExternal:I}),createParseClassName=n=>{const{prefix:e,experimentalParseClassName:o}=n;let d=I=>{const f=[];let S=0,v=0,L=0,x;const F=I.length;for(let ee=0;eeL?x-L:void 0;return createResultObject(f,W,j,re)};if(e){const I=e+MODIFIER_SEPARATOR,f=d;d=S=>S.startsWith(I)?f(S.slice(I.length)):createResultObject(EMPTY_MODIFIERS,!1,S,void 0,!0)}if(o){const I=d;d=f=>o({className:f,parseClassName:I})}return d},createSortModifiers=n=>{const e=new Map;return n.orderSensitiveModifiers.forEach((o,d)=>{e.set(o,1e6+d)}),o=>{const d=[];let I=[];for(let f=0;f0&&(I.sort(),d.push(...I),I=[]),d.push(S)):I.push(S)}return I.length>0&&(I.sort(),d.push(...I)),d}},createConfigUtils=n=>({cache:createLruCache(n.cacheSize),parseClassName:createParseClassName(n),sortModifiers:createSortModifiers(n),postfixLookupClassGroupIds:createPostfixLookupClassGroupIds(n),...createClassGroupUtils(n)}),createPostfixLookupClassGroupIds=n=>{const e=Object.create(null),o=n.postfixLookupClassGroups;if(o)for(let d=0;d{const{parseClassName:o,getClassGroupId:d,getConflictingClassGroupIds:I,sortModifiers:f,postfixLookupClassGroupIds:S}=e,v=[],L=n.trim().split(SPLIT_CLASSES_REGEX);let x="";for(let F=L.length-1;F>=0;F-=1){const Y=L[F],{isExternal:j,modifiers:W,hasImportantModifier:re,baseClassName:ee,maybePostfixModifierPosition:he}=o(Y);if(j){x=Y+(x.length>0?" "+x:x);continue}let ue=!!he,Ee;if(ue){const Ge=ee.substring(0,he);Ee=d(Ge);const He=Ee&&S[Ee]?d(ee):void 0;He&&He!==Ee&&(Ee=He,ue=!1)}else Ee=d(ee);if(!Ee){if(!ue){x=Y+(x.length>0?" "+x:x);continue}if(Ee=d(ee),!Ee){x=Y+(x.length>0?" "+x:x);continue}ue=!1}const _e=W.length===0?"":W.length===1?W[0]:f(W).join(":"),De=re?_e+IMPORTANT_MODIFIER:_e,Fe=De+Ee;if(v.indexOf(Fe)>-1)continue;v.push(Fe);const Ve=I(Ee,ue);for(let Ge=0;Ge0?" "+x:x)}return x},twJoin=(...n)=>{let e=0,o,d,I="";for(;e{if(typeof n=="string")return n;let e,o="";for(let d=0;d{let o,d,I,f;const S=L=>{const x=e.reduce((F,Y)=>Y(F),n());return o=createConfigUtils(x),d=o.cache.get,I=o.cache.set,f=v,v(L)},v=L=>{const x=d(L);if(x)return x;const F=mergeClassList(L,o);return I(L,F),F};return f=S,(...L)=>f(twJoin(...L))},fallbackThemeArr=[],fromTheme=n=>{const e=o=>o[n]||fallbackThemeArr;return e.isThemeGetter=!0,e},arbitraryValueRegex=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,arbitraryVariableRegex=/^\((?:(\w[\w-]*):)?(.+)\)$/i,fractionRegex=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,tshirtUnitRegex=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,lengthUnitRegex=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,colorFunctionRegex=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,shadowRegex=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,imageRegex=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,isFraction=n=>fractionRegex.test(n),isNumber=n=>!!n&&!Number.isNaN(Number(n)),isInteger=n=>!!n&&Number.isInteger(Number(n)),isPercent=n=>n.endsWith("%")&&isNumber(n.slice(0,-1)),isTshirtSize=n=>tshirtUnitRegex.test(n),isAny=()=>!0,isLengthOnly=n=>lengthUnitRegex.test(n)&&!colorFunctionRegex.test(n),isNever=()=>!1,isShadow=n=>shadowRegex.test(n),isImage=n=>imageRegex.test(n),isAnyNonArbitrary=n=>!isArbitraryValue(n)&&!isArbitraryVariable(n),isNamedContainerQuery=n=>n.startsWith("@container")&&(n[10]==="/"&&n[11]!==void 0||n[11]==="s"&&n[16]!==void 0&&n.startsWith("-size/",10)||n[11]==="n"&&n[18]!==void 0&&n.startsWith("-normal/",10)),isArbitrarySize=n=>getIsArbitraryValue(n,isLabelSize,isNever),isArbitraryValue=n=>arbitraryValueRegex.test(n),isArbitraryLength=n=>getIsArbitraryValue(n,isLabelLength,isLengthOnly),isArbitraryNumber=n=>getIsArbitraryValue(n,isLabelNumber,isNumber),isArbitraryWeight=n=>getIsArbitraryValue(n,isLabelWeight,isAny),isArbitraryFamilyName=n=>getIsArbitraryValue(n,isLabelFamilyName,isNever),isArbitraryPosition=n=>getIsArbitraryValue(n,isLabelPosition,isNever),isArbitraryImage=n=>getIsArbitraryValue(n,isLabelImage,isImage),isArbitraryShadow=n=>getIsArbitraryValue(n,isLabelShadow,isShadow),isArbitraryVariable=n=>arbitraryVariableRegex.test(n),isArbitraryVariableLength=n=>getIsArbitraryVariable(n,isLabelLength),isArbitraryVariableFamilyName=n=>getIsArbitraryVariable(n,isLabelFamilyName),isArbitraryVariablePosition=n=>getIsArbitraryVariable(n,isLabelPosition),isArbitraryVariableSize=n=>getIsArbitraryVariable(n,isLabelSize),isArbitraryVariableImage=n=>getIsArbitraryVariable(n,isLabelImage),isArbitraryVariableShadow=n=>getIsArbitraryVariable(n,isLabelShadow,!0),isArbitraryVariableWeight=n=>getIsArbitraryVariable(n,isLabelWeight,!0),getIsArbitraryValue=(n,e,o)=>{const d=arbitraryValueRegex.exec(n);return d?d[1]?e(d[1]):o(d[2]):!1},getIsArbitraryVariable=(n,e,o=!1)=>{const d=arbitraryVariableRegex.exec(n);return d?d[1]?e(d[1]):o:!1},isLabelPosition=n=>n==="position"||n==="percentage",isLabelImage=n=>n==="image"||n==="url",isLabelSize=n=>n==="length"||n==="size"||n==="bg-size",isLabelLength=n=>n==="length",isLabelNumber=n=>n==="number",isLabelFamilyName=n=>n==="family-name",isLabelWeight=n=>n==="number"||n==="weight",isLabelShadow=n=>n==="shadow",getDefaultConfig=()=>{const n=fromTheme("color"),e=fromTheme("font"),o=fromTheme("text"),d=fromTheme("font-weight"),I=fromTheme("tracking"),f=fromTheme("leading"),S=fromTheme("breakpoint"),v=fromTheme("container"),L=fromTheme("spacing"),x=fromTheme("radius"),F=fromTheme("shadow"),Y=fromTheme("inset-shadow"),j=fromTheme("text-shadow"),W=fromTheme("drop-shadow"),re=fromTheme("blur"),ee=fromTheme("perspective"),he=fromTheme("aspect"),ue=fromTheme("ease"),Ee=fromTheme("animate"),_e=()=>["auto","avoid","all","avoid-page","page","left","right","column"],De=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Fe=()=>[...De(),isArbitraryVariable,isArbitraryValue],Ve=()=>["auto","hidden","clip","visible","scroll"],Ge=()=>["auto","contain","none"],He=()=>[isArbitraryVariable,isArbitraryValue,L],At=()=>[isFraction,"full","auto",...He()],Bt=()=>[isInteger,"none","subgrid",isArbitraryVariable,isArbitraryValue],Tt=()=>["auto",{span:["full",isInteger,isArbitraryVariable,isArbitraryValue]},isInteger,isArbitraryVariable,isArbitraryValue],rt=()=>[isInteger,"auto",isArbitraryVariable,isArbitraryValue],ye=()=>["auto","min","max","fr",isArbitraryVariable,isArbitraryValue],lt=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Yt=()=>["start","end","center","stretch","center-safe","end-safe"],ct=()=>["auto",...He()],ht=()=>[isFraction,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...He()],vt=()=>[isFraction,"screen","full","dvw","lvw","svw","min","max","fit",...He()],ar=()=>[isFraction,"screen","full","lh","dvh","lvh","svh","min","max","fit",...He()],jt=()=>[n,isArbitraryVariable,isArbitraryValue],vr=()=>[...De(),isArbitraryVariablePosition,isArbitraryPosition,{position:[isArbitraryVariable,isArbitraryValue]}],ai=()=>["no-repeat",{repeat:["","x","y","space","round"]}],pi=()=>["auto","cover","contain",isArbitraryVariableSize,isArbitrarySize,{size:[isArbitraryVariable,isArbitraryValue]}],yi=()=>[isPercent,isArbitraryVariableLength,isArbitraryLength],fi=()=>["","none","full",x,isArbitraryVariable,isArbitraryValue],Jn=()=>["",isNumber,isArbitraryVariableLength,isArbitraryLength],xr=()=>["solid","dashed","dotted","double"],pr=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ei=()=>[isNumber,isPercent,isArbitraryVariablePosition,isArbitraryPosition],_i=()=>["","none",re,isArbitraryVariable,isArbitraryValue],Gr=()=>["none",isNumber,isArbitraryVariable,isArbitraryValue],oi=()=>["none",isNumber,isArbitraryVariable,isArbitraryValue],Oi=()=>[isNumber,isArbitraryVariable,isArbitraryValue],_o=()=>[isFraction,"full",...He()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[isTshirtSize],breakpoint:[isTshirtSize],color:[isAny],container:[isTshirtSize],"drop-shadow":[isTshirtSize],ease:["in","out","in-out"],font:[isAnyNonArbitrary],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[isTshirtSize],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[isTshirtSize],shadow:[isTshirtSize],spacing:["px",isNumber],text:[isTshirtSize],"text-shadow":[isTshirtSize],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",isFraction,isArbitraryValue,isArbitraryVariable,he]}],container:["container"],"container-type":[{"@container":["","normal","size",isArbitraryVariable,isArbitraryValue]}],"container-named":[isNamedContainerQuery],columns:[{columns:[isNumber,isArbitraryValue,isArbitraryVariable,v]}],"break-after":[{"break-after":_e()}],"break-before":[{"break-before":_e()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Fe()}],overflow:[{overflow:Ve()}],"overflow-x":[{"overflow-x":Ve()}],"overflow-y":[{"overflow-y":Ve()}],overscroll:[{overscroll:Ge()}],"overscroll-x":[{"overscroll-x":Ge()}],"overscroll-y":[{"overscroll-y":Ge()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:At()}],"inset-x":[{"inset-x":At()}],"inset-y":[{"inset-y":At()}],start:[{"inset-s":At(),start:At()}],end:[{"inset-e":At(),end:At()}],"inset-bs":[{"inset-bs":At()}],"inset-be":[{"inset-be":At()}],top:[{top:At()}],right:[{right:At()}],bottom:[{bottom:At()}],left:[{left:At()}],visibility:["visible","invisible","collapse"],z:[{z:[isInteger,"auto",isArbitraryVariable,isArbitraryValue]}],basis:[{basis:[isFraction,"full","auto",v,...He()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[isNumber,isFraction,"auto","initial","none",isArbitraryValue]}],grow:[{grow:["",isNumber,isArbitraryVariable,isArbitraryValue]}],shrink:[{shrink:["",isNumber,isArbitraryVariable,isArbitraryValue]}],order:[{order:[isInteger,"first","last","none",isArbitraryVariable,isArbitraryValue]}],"grid-cols":[{"grid-cols":Bt()}],"col-start-end":[{col:Tt()}],"col-start":[{"col-start":rt()}],"col-end":[{"col-end":rt()}],"grid-rows":[{"grid-rows":Bt()}],"row-start-end":[{row:Tt()}],"row-start":[{"row-start":rt()}],"row-end":[{"row-end":rt()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ye()}],"auto-rows":[{"auto-rows":ye()}],gap:[{gap:He()}],"gap-x":[{"gap-x":He()}],"gap-y":[{"gap-y":He()}],"justify-content":[{justify:[...lt(),"normal"]}],"justify-items":[{"justify-items":[...Yt(),"normal"]}],"justify-self":[{"justify-self":["auto",...Yt()]}],"align-content":[{content:["normal",...lt()]}],"align-items":[{items:[...Yt(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Yt(),{baseline:["","last"]}]}],"place-content":[{"place-content":lt()}],"place-items":[{"place-items":[...Yt(),"baseline"]}],"place-self":[{"place-self":["auto",...Yt()]}],p:[{p:He()}],px:[{px:He()}],py:[{py:He()}],ps:[{ps:He()}],pe:[{pe:He()}],pbs:[{pbs:He()}],pbe:[{pbe:He()}],pt:[{pt:He()}],pr:[{pr:He()}],pb:[{pb:He()}],pl:[{pl:He()}],m:[{m:ct()}],mx:[{mx:ct()}],my:[{my:ct()}],ms:[{ms:ct()}],me:[{me:ct()}],mbs:[{mbs:ct()}],mbe:[{mbe:ct()}],mt:[{mt:ct()}],mr:[{mr:ct()}],mb:[{mb:ct()}],ml:[{ml:ct()}],"space-x":[{"space-x":He()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":He()}],"space-y-reverse":["space-y-reverse"],size:[{size:ht()}],"inline-size":[{inline:["auto",...vt()]}],"min-inline-size":[{"min-inline":["auto",...vt()]}],"max-inline-size":[{"max-inline":["none",...vt()]}],"block-size":[{block:["auto",...ar()]}],"min-block-size":[{"min-block":["auto",...ar()]}],"max-block-size":[{"max-block":["none",...ar()]}],w:[{w:[v,"screen",...ht()]}],"min-w":[{"min-w":[v,"screen","none",...ht()]}],"max-w":[{"max-w":[v,"screen","none","prose",{screen:[S]},...ht()]}],h:[{h:["screen","lh",...ht()]}],"min-h":[{"min-h":["screen","lh","none",...ht()]}],"max-h":[{"max-h":["screen","lh",...ht()]}],"font-size":[{text:["base",o,isArbitraryVariableLength,isArbitraryLength]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[d,isArbitraryVariableWeight,isArbitraryWeight]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",isPercent,isArbitraryValue]}],"font-family":[{font:[isArbitraryVariableFamilyName,isArbitraryFamilyName,e]}],"font-features":[{"font-features":[isArbitraryValue]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[I,isArbitraryVariable,isArbitraryValue]}],"line-clamp":[{"line-clamp":[isNumber,"none",isArbitraryVariable,isArbitraryNumber]}],leading:[{leading:[f,...He()]}],"list-image":[{"list-image":["none",isArbitraryVariable,isArbitraryValue]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",isArbitraryVariable,isArbitraryValue]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:jt()}],"text-color":[{text:jt()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...xr(),"wavy"]}],"text-decoration-thickness":[{decoration:[isNumber,"from-font","auto",isArbitraryVariable,isArbitraryLength]}],"text-decoration-color":[{decoration:jt()}],"underline-offset":[{"underline-offset":[isNumber,"auto",isArbitraryVariable,isArbitraryValue]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:He()}],"tab-size":[{tab:[isInteger,isArbitraryVariable,isArbitraryValue]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",isArbitraryVariable,isArbitraryValue]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",isArbitraryVariable,isArbitraryValue]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:vr()}],"bg-repeat":[{bg:ai()}],"bg-size":[{bg:pi()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},isInteger,isArbitraryVariable,isArbitraryValue],radial:["",isArbitraryVariable,isArbitraryValue],conic:[isInteger,isArbitraryVariable,isArbitraryValue]},isArbitraryVariableImage,isArbitraryImage]}],"bg-color":[{bg:jt()}],"gradient-from-pos":[{from:yi()}],"gradient-via-pos":[{via:yi()}],"gradient-to-pos":[{to:yi()}],"gradient-from":[{from:jt()}],"gradient-via":[{via:jt()}],"gradient-to":[{to:jt()}],rounded:[{rounded:fi()}],"rounded-s":[{"rounded-s":fi()}],"rounded-e":[{"rounded-e":fi()}],"rounded-t":[{"rounded-t":fi()}],"rounded-r":[{"rounded-r":fi()}],"rounded-b":[{"rounded-b":fi()}],"rounded-l":[{"rounded-l":fi()}],"rounded-ss":[{"rounded-ss":fi()}],"rounded-se":[{"rounded-se":fi()}],"rounded-ee":[{"rounded-ee":fi()}],"rounded-es":[{"rounded-es":fi()}],"rounded-tl":[{"rounded-tl":fi()}],"rounded-tr":[{"rounded-tr":fi()}],"rounded-br":[{"rounded-br":fi()}],"rounded-bl":[{"rounded-bl":fi()}],"border-w":[{border:Jn()}],"border-w-x":[{"border-x":Jn()}],"border-w-y":[{"border-y":Jn()}],"border-w-s":[{"border-s":Jn()}],"border-w-e":[{"border-e":Jn()}],"border-w-bs":[{"border-bs":Jn()}],"border-w-be":[{"border-be":Jn()}],"border-w-t":[{"border-t":Jn()}],"border-w-r":[{"border-r":Jn()}],"border-w-b":[{"border-b":Jn()}],"border-w-l":[{"border-l":Jn()}],"divide-x":[{"divide-x":Jn()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Jn()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...xr(),"hidden","none"]}],"divide-style":[{divide:[...xr(),"hidden","none"]}],"border-color":[{border:jt()}],"border-color-x":[{"border-x":jt()}],"border-color-y":[{"border-y":jt()}],"border-color-s":[{"border-s":jt()}],"border-color-e":[{"border-e":jt()}],"border-color-bs":[{"border-bs":jt()}],"border-color-be":[{"border-be":jt()}],"border-color-t":[{"border-t":jt()}],"border-color-r":[{"border-r":jt()}],"border-color-b":[{"border-b":jt()}],"border-color-l":[{"border-l":jt()}],"divide-color":[{divide:jt()}],"outline-style":[{outline:[...xr(),"none","hidden"]}],"outline-offset":[{"outline-offset":[isNumber,isArbitraryVariable,isArbitraryValue]}],"outline-w":[{outline:["",isNumber,isArbitraryVariableLength,isArbitraryLength]}],"outline-color":[{outline:jt()}],shadow:[{shadow:["","none",F,isArbitraryVariableShadow,isArbitraryShadow]}],"shadow-color":[{shadow:jt()}],"inset-shadow":[{"inset-shadow":["none",Y,isArbitraryVariableShadow,isArbitraryShadow]}],"inset-shadow-color":[{"inset-shadow":jt()}],"ring-w":[{ring:Jn()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:jt()}],"ring-offset-w":[{"ring-offset":[isNumber,isArbitraryLength]}],"ring-offset-color":[{"ring-offset":jt()}],"inset-ring-w":[{"inset-ring":Jn()}],"inset-ring-color":[{"inset-ring":jt()}],"text-shadow":[{"text-shadow":["none",j,isArbitraryVariableShadow,isArbitraryShadow]}],"text-shadow-color":[{"text-shadow":jt()}],opacity:[{opacity:[isNumber,isArbitraryVariable,isArbitraryValue]}],"mix-blend":[{"mix-blend":[...pr(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":pr()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[isNumber]}],"mask-image-linear-from-pos":[{"mask-linear-from":ei()}],"mask-image-linear-to-pos":[{"mask-linear-to":ei()}],"mask-image-linear-from-color":[{"mask-linear-from":jt()}],"mask-image-linear-to-color":[{"mask-linear-to":jt()}],"mask-image-t-from-pos":[{"mask-t-from":ei()}],"mask-image-t-to-pos":[{"mask-t-to":ei()}],"mask-image-t-from-color":[{"mask-t-from":jt()}],"mask-image-t-to-color":[{"mask-t-to":jt()}],"mask-image-r-from-pos":[{"mask-r-from":ei()}],"mask-image-r-to-pos":[{"mask-r-to":ei()}],"mask-image-r-from-color":[{"mask-r-from":jt()}],"mask-image-r-to-color":[{"mask-r-to":jt()}],"mask-image-b-from-pos":[{"mask-b-from":ei()}],"mask-image-b-to-pos":[{"mask-b-to":ei()}],"mask-image-b-from-color":[{"mask-b-from":jt()}],"mask-image-b-to-color":[{"mask-b-to":jt()}],"mask-image-l-from-pos":[{"mask-l-from":ei()}],"mask-image-l-to-pos":[{"mask-l-to":ei()}],"mask-image-l-from-color":[{"mask-l-from":jt()}],"mask-image-l-to-color":[{"mask-l-to":jt()}],"mask-image-x-from-pos":[{"mask-x-from":ei()}],"mask-image-x-to-pos":[{"mask-x-to":ei()}],"mask-image-x-from-color":[{"mask-x-from":jt()}],"mask-image-x-to-color":[{"mask-x-to":jt()}],"mask-image-y-from-pos":[{"mask-y-from":ei()}],"mask-image-y-to-pos":[{"mask-y-to":ei()}],"mask-image-y-from-color":[{"mask-y-from":jt()}],"mask-image-y-to-color":[{"mask-y-to":jt()}],"mask-image-radial":[{"mask-radial":[isArbitraryVariable,isArbitraryValue]}],"mask-image-radial-from-pos":[{"mask-radial-from":ei()}],"mask-image-radial-to-pos":[{"mask-radial-to":ei()}],"mask-image-radial-from-color":[{"mask-radial-from":jt()}],"mask-image-radial-to-color":[{"mask-radial-to":jt()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":De()}],"mask-image-conic-pos":[{"mask-conic":[isNumber]}],"mask-image-conic-from-pos":[{"mask-conic-from":ei()}],"mask-image-conic-to-pos":[{"mask-conic-to":ei()}],"mask-image-conic-from-color":[{"mask-conic-from":jt()}],"mask-image-conic-to-color":[{"mask-conic-to":jt()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:vr()}],"mask-repeat":[{mask:ai()}],"mask-size":[{mask:pi()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",isArbitraryVariable,isArbitraryValue]}],filter:[{filter:["","none",isArbitraryVariable,isArbitraryValue]}],blur:[{blur:_i()}],brightness:[{brightness:[isNumber,isArbitraryVariable,isArbitraryValue]}],contrast:[{contrast:[isNumber,isArbitraryVariable,isArbitraryValue]}],"drop-shadow":[{"drop-shadow":["","none",W,isArbitraryVariableShadow,isArbitraryShadow]}],"drop-shadow-color":[{"drop-shadow":jt()}],grayscale:[{grayscale:["",isNumber,isArbitraryVariable,isArbitraryValue]}],"hue-rotate":[{"hue-rotate":[isNumber,isArbitraryVariable,isArbitraryValue]}],invert:[{invert:["",isNumber,isArbitraryVariable,isArbitraryValue]}],saturate:[{saturate:[isNumber,isArbitraryVariable,isArbitraryValue]}],sepia:[{sepia:["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-filter":[{"backdrop-filter":["","none",isArbitraryVariable,isArbitraryValue]}],"backdrop-blur":[{"backdrop-blur":_i()}],"backdrop-brightness":[{"backdrop-brightness":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-contrast":[{"backdrop-contrast":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-grayscale":[{"backdrop-grayscale":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-invert":[{"backdrop-invert":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-opacity":[{"backdrop-opacity":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-saturate":[{"backdrop-saturate":[isNumber,isArbitraryVariable,isArbitraryValue]}],"backdrop-sepia":[{"backdrop-sepia":["",isNumber,isArbitraryVariable,isArbitraryValue]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":He()}],"border-spacing-x":[{"border-spacing-x":He()}],"border-spacing-y":[{"border-spacing-y":He()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",isArbitraryVariable,isArbitraryValue]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[isNumber,"initial",isArbitraryVariable,isArbitraryValue]}],ease:[{ease:["linear","initial",ue,isArbitraryVariable,isArbitraryValue]}],delay:[{delay:[isNumber,isArbitraryVariable,isArbitraryValue]}],animate:[{animate:["none",Ee,isArbitraryVariable,isArbitraryValue]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[ee,isArbitraryVariable,isArbitraryValue]}],"perspective-origin":[{"perspective-origin":Fe()}],rotate:[{rotate:Gr()}],"rotate-x":[{"rotate-x":Gr()}],"rotate-y":[{"rotate-y":Gr()}],"rotate-z":[{"rotate-z":Gr()}],scale:[{scale:oi()}],"scale-x":[{"scale-x":oi()}],"scale-y":[{"scale-y":oi()}],"scale-z":[{"scale-z":oi()}],"scale-3d":["scale-3d"],skew:[{skew:Oi()}],"skew-x":[{"skew-x":Oi()}],"skew-y":[{"skew-y":Oi()}],transform:[{transform:[isArbitraryVariable,isArbitraryValue,"","none","gpu","cpu"]}],"transform-origin":[{origin:Fe()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:_o()}],"translate-x":[{"translate-x":_o()}],"translate-y":[{"translate-y":_o()}],"translate-z":[{"translate-z":_o()}],"translate-none":["translate-none"],zoom:[{zoom:[isInteger,isArbitraryVariable,isArbitraryValue]}],accent:[{accent:jt()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:jt()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",isArbitraryVariable,isArbitraryValue]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":jt()}],"scrollbar-track-color":[{"scrollbar-track":jt()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":He()}],"scroll-mx":[{"scroll-mx":He()}],"scroll-my":[{"scroll-my":He()}],"scroll-ms":[{"scroll-ms":He()}],"scroll-me":[{"scroll-me":He()}],"scroll-mbs":[{"scroll-mbs":He()}],"scroll-mbe":[{"scroll-mbe":He()}],"scroll-mt":[{"scroll-mt":He()}],"scroll-mr":[{"scroll-mr":He()}],"scroll-mb":[{"scroll-mb":He()}],"scroll-ml":[{"scroll-ml":He()}],"scroll-p":[{"scroll-p":He()}],"scroll-px":[{"scroll-px":He()}],"scroll-py":[{"scroll-py":He()}],"scroll-ps":[{"scroll-ps":He()}],"scroll-pe":[{"scroll-pe":He()}],"scroll-pbs":[{"scroll-pbs":He()}],"scroll-pbe":[{"scroll-pbe":He()}],"scroll-pt":[{"scroll-pt":He()}],"scroll-pr":[{"scroll-pr":He()}],"scroll-pb":[{"scroll-pb":He()}],"scroll-pl":[{"scroll-pl":He()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",isArbitraryVariable,isArbitraryValue]}],fill:[{fill:["none",...jt()]}],"stroke-w":[{stroke:[isNumber,isArbitraryVariableLength,isArbitraryLength,isArbitraryNumber]}],stroke:[{stroke:["none",...jt()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},twMerge=createTailwindMerge(getDefaultConfig);function cn(...n){return twMerge(clsx(n))}var N3=Object.defineProperty,G3=(n,e,o)=>e in n?N3(n,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[e]=o,p=(n,e,o)=>G3(n,typeof e!="symbol"?e+"":e,o),V3=class{requestAnimationFrame(n){return requestAnimationFrame(n)}cancelAnimationFrame(n){cancelAnimationFrame(n)}},J3=class{constructor(){p(this,"_lastHandleId",0),p(this,"_lastImmediate",null)}requestAnimationFrame(n){return this._lastHandleId>=Number.MAX_SAFE_INTEGER&&(this._lastHandleId=0),this._lastHandleId+=1,this._lastImmediate=setImmediate(()=>{n(Date.now())}),this._lastHandleId}cancelAnimationFrame(n){this._lastImmediate&&clearImmediate(this._lastImmediate)}},q3=class{constructor(){p(this,"_strategy"),this._strategy=typeof requestAnimationFrame=="function"?new V3:new J3}requestAnimationFrame(n){return this._strategy.requestAnimationFrame(n)}cancelAnimationFrame(n){this._strategy.cancelAnimationFrame(n)}},E=typeof window<"u"&&typeof window.document<"u",_2=new Uint8Array([80,75,3,4]),K3=["v","ip","op","layers","fr","w","h"],X2="0.63.0",Y2="@lottiefiles/dotlottie-web",Q3=.75,X3=4,Y3=(()=>{var e;var n=typeof document<"u"?(e=document.currentScript)==null?void 0:e.src:void 0;return function(o={}){var d;function I(Be,Re,Ke){return(Re=f(Re))in Be?Object.defineProperty(Be,Re,{value:Ke,enumerable:!0,configurable:!0,writable:!0}):Be[Re]=Ke,Be}function f(Be){var Re=S(Be,"string");return typeof Re=="symbol"?Re:Re+""}function S(Be,Re){if(typeof Be!="object"||!Be)return Be;var Ke=Be[Symbol.toPrimitive];if(Ke!==void 0){var Ye=Ke.call(Be,Re);if(typeof Ye!="object")return Ye;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Re==="string"?String:Number)(Be)}var v=o,L,x,F=new Promise((Be,Re)=>{L=Be,x=Re}),Y=Object.assign({},v),j="./this.program",W="",re;typeof document<"u"&&document.currentScript&&(W=document.currentScript.src),n&&(W=n),W.startsWith("blob:")?W="":W=W.substr(0,W.replace(/[?#].*/,"").lastIndexOf("/")+1),re=async Be=>{if(Be=await fetch(Be,{credentials:"same-origin"}),Be.ok)return Be.arrayBuffer();throw Error(Be.status+" : "+Be.url)};var ee=v.printErr||console.error.bind(console);Object.assign(v,Y),Y=null,v.thisProgram&&(j=v.thisProgram);var he=v.wasmBinary,ue,Ee=!1,_e,De,Fe,Ve,Ge,He,At,Bt,Tt;function rt(){var Be=ue.buffer;v.HEAP8=De=new Int8Array(Be),v.HEAP16=Ve=new Int16Array(Be),v.HEAPU8=Fe=new Uint8Array(Be),v.HEAPU16=Ge=new Uint16Array(Be),v.HEAP32=He=new Int32Array(Be),v.HEAPU32=At=new Uint32Array(Be),v.HEAPF32=Bt=new Float32Array(Be),v.HEAPF64=Tt=new Float64Array(Be)}var ye=[],lt=[],Yt=[];function ct(){var Be=v.preRun.shift();ye.unshift(Be)}var ht=0,vt=null;function ar(Be){var Re;throw(Re=v.onAbort)===null||Re===void 0||Re.call(v,Be),Be="Aborted("+Be+")",ee(Be),Ee=!0,Be=new WebAssembly.RuntimeError(Be+". Build with -sASSERTIONS for more info."),x(Be),Be}var jt=Be=>Be.startsWith("data:application/octet-stream;base64,"),vr;async function ai(Be){if(!he)try{var Re=await re(Be);return new Uint8Array(Re)}catch{}if(Be==vr&&he)Be=new Uint8Array(he);else throw"both async and sync fetching of the wasm failed";return Be}async function pi(Be,Re){try{var Ke=await ai(Be);return await WebAssembly.instantiate(Ke,Re)}catch(Ye){ee(`failed to asynchronously prepare wasm: ${Ye}`),ar(Ye)}}async function yi(Be){var Re=vr;if(!he&&typeof WebAssembly.instantiateStreaming=="function"&&!jt(Re)&&typeof fetch=="function")try{var Ke=fetch(Re,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(Ke,Be)}catch(Ye){ee(`wasm streaming compile failed: ${Ye}`),ee("falling back to ArrayBuffer instantiation")}return pi(Re,Be)}class fi{constructor(Re){I(this,"name","ExitStatus"),this.message=`Program terminated with exit(${Re})`,this.status=Re}}var Jn=Be=>{for(;00&&arguments[0]!==void 0?arguments[0]:0,Re=arguments.length>1&&arguments[1]!==void 0?arguments[1]:NaN;var Ke=Fe,Ye=Be+Re;for(Re=Be;Ke[Re]&&!(Re>=Ye);)++Re;if(16gt?Ye+=String.fromCharCode(gt):(gt-=65536,Ye+=String.fromCharCode(55296|gt>>10,56320|gt&1023))}}else Ye+=String.fromCharCode(gt)}return Ye};class _i{constructor(Re){this.Ca=Re-24}}var Gr=0,oi=(Be,Re,Ke)=>{var Ye=Fe;if(0=Mt){var Er=Be.charCodeAt(++gt);Mt=65536+((Mt&1023)<<10)|Er&1023}if(127>=Mt){if(Re>=Ke)break;Ye[Re++]=Mt}else{if(2047>=Mt){if(Re+1>=Ke)break;Ye[Re++]=192|Mt>>6}else{if(65535>=Mt){if(Re+2>=Ke)break;Ye[Re++]=224|Mt>>12}else{if(Re+3>=Ke)break;Ye[Re++]=240|Mt>>18,Ye[Re++]=128|Mt>>12&63}Ye[Re++]=128|Mt>>6&63}Ye[Re++]=128|Mt&63}}Ye[Re]=0}},Oi={},_o=Be=>{for(;Be.length;){var Re=Be.pop();Be.pop()(Re)}};function $n(Be){return this.fromWireType(At[Be>>2])}var gs={},Bs={},Kn={},Tn,Zn=(Be,Re,Ke)=>{function Ye(cr){if(cr=Ke(cr),cr.length!==Be.length)throw new Tn("Mismatched type converter count");for(var Ei=0;EiKn[cr]=Re);var gt=Array(Re.length),Mt=[],Er=0;Re.forEach((cr,Ei)=>{Bs.hasOwnProperty(cr)?gt[Ei]=Bs[cr]:(Mt.push(cr),gs.hasOwnProperty(cr)||(gs[cr]=[]),gs[cr].push(()=>{gt[Ei]=Bs[cr],++Er,Er===Mt.length&&Ye(gt)}))}),Mt.length===0&&Ye(gt)},hc,Fs=Be=>{for(var Re="";Fe[Be];)Re+=hc[Fe[Be++]];return Re},bt;function Es(Be,Re){let Ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var Ye=Re.name;if(!Be)throw new bt(`type "${Ye}" must have a positive integer typeid pointer`);if(Bs.hasOwnProperty(Be)){if(Ke.hb)return;throw new bt(`Cannot register type '${Ye}' twice`)}Bs[Be]=Re,delete Kn[Be],gs.hasOwnProperty(Be)&&(Re=gs[Be],delete gs[Be],Re.forEach(gt=>gt()))}function Me(Be,Re){let Ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return Es(Be,Re,Ke)}var ot=Be=>{throw new bt(Be.Aa.Da.Ba.name+" instance already deleted")},Ct=!1,Kt=()=>{},Xr=(Be,Re,Ke)=>Re===Ke?Be:Ke.Ga===void 0?null:(Be=Xr(Be,Re,Ke.Ga),Be===null?null:Ke.$a(Be)),Lr={},Jr={},zr=(Be,Re)=>{if(Re===void 0)throw new bt("ptr should not be undefined");for(;Be.Ga;)Re=Be.Qa(Re),Be=Be.Ga;return Jr[Re]},ci=(Be,Re)=>{if(!Re.Da||!Re.Ca)throw new Tn("makeClassHandle requires ptr and ptrType");if(!!Re.Ha!=!!Re.Fa)throw new Tn("Both smartPtrType and smartPtr must be specified");return Re.count={value:1},ro(Object.create(Be,{Aa:{value:Re,writable:!0}}))},ro=Be=>typeof FinalizationRegistry>"u"?(ro=Re=>Re,Be):(Ct=new FinalizationRegistry(Re=>{Re=Re.Aa,--Re.count.value,Re.count.value===0&&(Re.Fa?Re.Ha.Ka(Re.Fa):Re.Da.Ba.Ka(Re.Ca))}),ro=Re=>{var Ke=Re.Aa;return Ke.Fa&&Ct.register(Re,{Aa:Ke},Re),Re},Kt=Re=>{Ct.unregister(Re)},ro(Be));function Ho(){}var Oa=(Be,Re)=>Object.defineProperty(Re,"name",{value:Be}),da=(Be,Re,Ke)=>{if(Be[Re].Ea===void 0){var Ye=Be[Re];Be[Re]=function(){for(var gt=arguments.length,Mt=new Array(gt),Er=0;Er{if(v.hasOwnProperty(Be)){if(Ke===void 0||v[Be].Ea!==void 0&&v[Be].Ea[Ke]!==void 0)throw new bt(`Cannot register public name '${Be}' twice`);if(da(v,Be,Be),v[Be].Ea.hasOwnProperty(Ke))throw new bt(`Cannot register multiple overloads of a function with the same number of arguments (${Ke})!`);v[Be].Ea[Ke]=Re}else v[Be]=Re,v[Be].Na=Ke},Ns=Be=>{Be=Be.replace(/[^a-zA-Z0-9_]/g,"$");var Re=Be.charCodeAt(0);return 48<=Re&&57>=Re?`_${Be}`:Be};function w1(Be,Re,Ke,Ye,gt,Mt,Er,cr){this.name=Be,this.constructor=Re,this.Ma=Ke,this.Ka=Ye,this.Ga=gt,this.bb=Mt,this.Qa=Er,this.$a=cr,this.jb=[]}var qc=(Be,Re,Ke)=>{for(;Re!==Ke;){if(!Re.Qa)throw new bt(`Expected null or instance of ${Ke.name}, got an instance of ${Re.name}`);Be=Re.Qa(Be),Re=Re.Ga}return Be};function ag(Be,Re){if(Re===null){if(this.Ta)throw new bt(`null is not a valid ${this.name}`);return 0}if(!Re.Aa)throw new bt(`Cannot pass "${Cd(Re)}" as a ${this.name}`);if(!Re.Aa.Ca)throw new bt(`Cannot pass deleted object as a pointer of type ${this.name}`);return qc(Re.Aa.Ca,Re.Aa.Da.Ba,this.Ba)}function du(Be,Re){if(Re===null){if(this.Ta)throw new bt(`null is not a valid ${this.name}`);if(this.Sa){var Ke=this.Ua();return Be!==null&&Be.push(this.Ka,Ke),Ke}return 0}if(!Re||!Re.Aa)throw new bt(`Cannot pass "${Cd(Re)}" as a ${this.name}`);if(!Re.Aa.Ca)throw new bt(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.Ra&&Re.Aa.Da.Ra)throw new bt(`Cannot convert argument of type ${Re.Aa.Ha?Re.Aa.Ha.name:Re.Aa.Da.name} to parameter type ${this.name}`);if(Ke=qc(Re.Aa.Ca,Re.Aa.Da.Ba,this.Ba),this.Sa){if(Re.Aa.Fa===void 0)throw new bt("Passing raw pointer to smart pointer is illegal");switch(this.ob){case 0:if(Re.Aa.Ha===this)Ke=Re.Aa.Fa;else throw new bt(`Cannot convert argument of type ${Re.Aa.Ha?Re.Aa.Ha.name:Re.Aa.Da.name} to parameter type ${this.name}`);break;case 1:Ke=Re.Aa.Fa;break;case 2:if(Re.Aa.Ha===this)Ke=Re.Aa.Fa;else{var Ye=Re.clone();Ke=this.kb(Ke,gE(()=>Ye.delete())),Be!==null&&Be.push(this.Ka,Ke)}break;default:throw new bt("Unsupporting sharing policy")}}return Ke}function D1(Be,Re){if(Re===null){if(this.Ta)throw new bt(`null is not a valid ${this.name}`);return 0}if(!Re.Aa)throw new bt(`Cannot pass "${Cd(Re)}" as a ${this.name}`);if(!Re.Aa.Ca)throw new bt(`Cannot pass deleted object as a pointer of type ${this.name}`);if(Re.Aa.Da.Ra)throw new bt(`Cannot convert argument of type ${Re.Aa.Da.name} to parameter type ${this.name}`);return qc(Re.Aa.Ca,Re.Aa.Da.Ba,this.Ba)}function oA(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji,xi){this.name=Be,this.Ba=Re,this.Ta=Ke,this.Ra=Ye,this.Sa=gt,this.ib=Mt,this.ob=Er,this.Ya=cr,this.Ua=Ei,this.kb=Ji,this.Ka=xi,gt||Re.Ga!==void 0?this.toWireType=du:(this.toWireType=Ye?ag:D1,this.Ja=null)}var xA=(Be,Re,Ke)=>{if(!v.hasOwnProperty(Be))throw new Tn("Replacing nonexistent public symbol");v[Be].Ea!==void 0&&Ke!==void 0?v[Be].Ea[Ke]=Re:(v[Be]=Re,v[Be].Na=Ke)},Mo,_r=function(Be,Re){let Ke=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return Be.includes("j")?(Be=Be.replace(/p/g,"i"),Re=(0,v["dynCall_"+Be])(Re,...Ke)):Re=Mo.get(Re)(...Ke),Re},rn=(Be,Re)=>function(){for(var Ke=arguments.length,Ye=new Array(Ke),gt=0;gt{Be=Fs(Be);var Ke=Be.includes("j")?rn(Be,Re):Mo.get(Re);if(typeof Ke!="function")throw new bt(`unknown function pointer with signature ${Be}: ${Re}`);return Ke},Io,b1=Be=>{Be=Rr(Be);var Re=Fs(Be);return Nt(Be),Re},u1=(Be,Re)=>{function Ke(Mt){gt[Mt]||Bs[Mt]||(Kn[Mt]?Kn[Mt].forEach(Ke):(Ye.push(Mt),gt[Mt]=!0))}var Ye=[],gt={};throw Re.forEach(Ke),new Io(`${Be}: `+Ye.map(b1).join([", "]))},N1=(Be,Re)=>{for(var Ke=[],Ye=0;Ye>2]);return Ke};function Ic(Be){for(var Re=1;ReMt)throw new bt("argTypes array size mismatch! Must at least get return value and 'this' types!");var Er=Re[1]!==null&&Ke!==null,cr=Ic(Re),Ei=Re[0].name!=="void",Ji=Mt-2,xi=Array(Ji),qn=[],mn=[];return Oa(Be,function(){for(var Gs=arguments.length,ga=new Array(Gs),zc=0;zc{Be=Be.trim();let Re=Be.indexOf("(");return Re!==-1?Be.substr(0,Re):Be},Ll=[],mA=[],hs=Be=>{9{if(!Be)throw new bt("Cannot use deleted val. handle = "+Be);return mA[Be]},gE=Be=>{switch(Be){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:let Re=Ll.pop()||mA.length;return mA[Re]=Be,mA[Re+1]=1,Re}},EE={name:"emscripten::val",fromWireType:Be=>{var Re=O1(Be);return hs(Be),Re},toWireType:(Be,Re)=>gE(Re),Ia:8,readValueFromPointer:$n,Ja:null},Ag=(Be,Re,Ke)=>{switch(Re){case 1:return Ke?function(Ye){return this.fromWireType(De[Ye])}:function(Ye){return this.fromWireType(Fe[Ye])};case 2:return Ke?function(Ye){return this.fromWireType(Ve[Ye>>1])}:function(Ye){return this.fromWireType(Ge[Ye>>1])};case 4:return Ke?function(Ye){return this.fromWireType(He[Ye>>2])}:function(Ye){return this.fromWireType(At[Ye>>2])};default:throw new TypeError(`invalid integer width (${Re}): ${Be}`)}},Ml=(Be,Re)=>{var Ke=Bs[Be];if(Ke===void 0)throw Be=`${Re} has unknown type ${b1(Be)}`,new bt(Be);return Ke},Cd=Be=>{if(Be===null)return"null";var Re=typeof Be;return Re==="object"||Re==="array"||Re==="function"?Be.toString():""+Be},pd=(Be,Re)=>{switch(Re){case 4:return function(Ke){return this.fromWireType(Bt[Ke>>2])};case 8:return function(Ke){return this.fromWireType(Tt[Ke>>3])};default:throw new TypeError(`invalid float width (${Re}): ${Be}`)}},uu=(Be,Re,Ke)=>{switch(Re){case 1:return Ke?Ye=>De[Ye]:Ye=>Fe[Ye];case 2:return Ke?Ye=>Ve[Ye>>1]:Ye=>Ge[Ye>>1];case 4:return Ke?Ye=>He[Ye>>2]:Ye=>At[Ye>>2];default:throw new TypeError(`invalid integer width (${Re}): ${Be}`)}},Up=Object.assign({optional:!0},EE),L1=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0,La=(Be,Re)=>{for(var Ke=Be>>1,Ye=Ke+Re/2;!(Ke>=Ye)&&Ge[Ke];)++Ke;if(Ke<<=1,32=Re/2);++Ye){var gt=Ve[Be+2*Ye>>1];if(gt==0)break;Ke+=String.fromCharCode(gt)}return Ke},hI=(Be,Re,Ke)=>{var Ye;if((Ye=Ke)!==null&&Ye!==void 0||(Ke=2147483647),2>Ke)return 0;Ke-=2;var gt=Re;Ke=Ke<2*Be.length?Ke/2:Be.length;for(var Mt=0;Mt>1]=Be.charCodeAt(Mt),Re+=2;return Ve[Re>>1]=0,Re-gt},ts=Be=>2*Be.length,Xs=(Be,Re)=>{for(var Ke=0,Ye="";!(Ke>=Re/4);){var gt=He[Be+4*Ke>>2];if(gt==0)break;++Ke,65536<=gt?(gt-=65536,Ye+=String.fromCharCode(55296|gt>>10,56320|gt&1023)):Ye+=String.fromCharCode(gt)}return Ye},xp=(Be,Re,Ke)=>{var Ye;if((Ye=Ke)!==null&&Ye!==void 0||(Ke=2147483647),4>Ke)return 0;var gt=Re;Ke=gt+Ke-4;for(var Mt=0;Mt=Er){var cr=Be.charCodeAt(++Mt);Er=65536+((Er&1023)<<10)|cr&1023}if(He[Re>>2]=Er,Re+=4,Re+4>Ke)break}return He[Re>>2]=0,Re-gt},II=Be=>{for(var Re=0,Ke=0;Ke=Ye&&++Ke,Re+=4}return Re},hE=0,fd=(Be,Re,Ke)=>{var Ye=[];return Be=Be.toWireType(Ye,Ke),Ye.length&&(At[Re>>2]=gE(Ye)),Be},kl=[],cg=Be=>{var Re=kl.length;return kl.push(Be),Re},_d=(Be,Re)=>{for(var Ke=Array(Be),Ye=0;Ye>2],"parameter "+Ye);return Ke},lg=Reflect.construct,FA={},md=Be=>{if(!(Be instanceof fi||Be=="unwind"))throw Be},Xc=Be=>{var Re;throw _e=Be,xr||0{if(!Ee)try{if(Be(),!(xr||0{if(!dg){var Be={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:j||"./this.program"},Re;for(Re in vo)vo[Re]===void 0?delete Be[Re]:Be[Re]=vo[Re];var Ke=[];for(Re in Be)Ke.push(`${Re}=${Be[Re]}`);dg=Ke}return dg},dg,zh=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return Be=>crypto.getRandomValues(Be);ar("initRandomDevice")},$h=Be=>($h=zh())(Be);Tn=v.InternalError=class extends Error{constructor(Be){super(Be),this.name="InternalError"}};for(var Zh=Array(256),Bd=0;256>Bd;++Bd)Zh[Bd]=String.fromCharCode(Bd);hc=Zh,bt=v.BindingError=class extends Error{constructor(Be){super(Be),this.name="BindingError"}},Object.assign(Ho.prototype,{isAliasOf:function(Be){if(!(this instanceof Ho&&Be instanceof Ho))return!1;var Re=this.Aa.Da.Ba,Ke=this.Aa.Ca;Be.Aa=Be.Aa;var Ye=Be.Aa.Da.Ba;for(Be=Be.Aa.Ca;Re.Ga;)Ke=Re.Qa(Ke),Re=Re.Ga;for(;Ye.Ga;)Be=Ye.Qa(Be),Ye=Ye.Ga;return Re===Ye&&Ke===Be},clone:function(){if(this.Aa.Ca||ot(this),this.Aa.Pa)return this.Aa.count.value+=1,this;var Be=ro,Re=Object,Ke=Re.create,Ye=Object.getPrototypeOf(this),gt=this.Aa;return Be=Be(Ke.call(Re,Ye,{Aa:{value:{count:gt.count,Oa:gt.Oa,Pa:gt.Pa,Ca:gt.Ca,Da:gt.Da,Fa:gt.Fa,Ha:gt.Ha}}})),Be.Aa.count.value+=1,Be.Aa.Oa=!1,Be},delete(){if(this.Aa.Ca||ot(this),this.Aa.Oa&&!this.Aa.Pa)throw new bt("Object already scheduled for deletion");Kt(this);var Be=this.Aa;--Be.count.value,Be.count.value===0&&(Be.Fa?Be.Ha.Ka(Be.Fa):Be.Da.Ba.Ka(Be.Ca)),this.Aa.Pa||(this.Aa.Fa=void 0,this.Aa.Ca=void 0)},isDeleted:function(){return!this.Aa.Ca},deleteLater:function(){if(this.Aa.Ca||ot(this),this.Aa.Oa&&!this.Aa.Pa)throw new bt("Object already scheduled for deletion");return this.Aa.Oa=!0,this}}),Object.assign(oA.prototype,{cb(Be){return this.Ya&&(Be=this.Ya(Be)),Be},Wa(Be){var Re;(Re=this.Ka)===null||Re===void 0||Re.call(this,Be)},Ia:8,readValueFromPointer:$n,fromWireType:function(Be){function Re(){return this.Sa?ci(this.Ba.Ma,{Da:this.ib,Ca:Ke,Ha:this,Fa:Be}):ci(this.Ba.Ma,{Da:this,Ca:Be})}var Ke=this.cb(Be);if(!Ke)return this.Wa(Be),null;var Ye=zr(this.Ba,Ke);if(Ye!==void 0)return Ye.Aa.count.value===0?(Ye.Aa.Ca=Ke,Ye.Aa.Fa=Be,Ye.clone()):(Ye=Ye.clone(),this.Wa(Be),Ye);if(Ye=this.Ba.bb(Ke),Ye=Lr[Ye],!Ye)return Re.call(this);Ye=this.Ra?Ye.Za:Ye.pointerType;var gt=Xr(Ke,this.Ba,Ye.Ba);return gt===null?Re.call(this):this.Sa?ci(Ye.Ba.Ma,{Da:Ye,Ca:gt,Ha:this,Fa:Be}):ci(Ye.Ba.Ma,{Da:Ye,Ca:gt})}}),Io=v.UnboundTypeError=((Be,Re)=>{var Ke=Oa(Re,function(Ye){this.name=Re,this.message=Ye,Ye=Error(Ye).stack,Ye!==void 0&&(this.stack=this.toString()+` -`+Ye.replace(/^Error(:[^\n]*)?\n/,""))});return Ke.prototype=Object.create(Be.prototype),Ke.prototype.constructor=Ke,Ke.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Ke})(Error,"UnboundTypeError"),mA.push(0,1,void 0,1,null,1,!0,1,!1,1),v.count_emval_handles=()=>mA.length/2-5-Ll.length;var o0={c:(Be,Re,Ke,Ye)=>ar(`Assertion failed: ${Be?ei(Be):""}, at: `+[Re?Re?ei(Re):"":"unknown filename",Ke,Ye?Ye?ei(Ye):"":"unknown function"]),j:(Be,Re,Ke)=>{var Ye=new _i(Be);throw At[Ye.Ca+16>>2]=0,At[Ye.Ca+4>>2]=Re,At[Ye.Ca+8>>2]=Ke,Gr=Be,Gr},P:()=>{},M:()=>{},N:()=>{},R:function(){},O:()=>{},T:()=>ar(""),w:Be=>{var Re=Oi[Be];delete Oi[Be];var Ke=Re.Ua,Ye=Re.Ka,gt=Re.Xa,Mt=gt.map(Er=>Er.gb).concat(gt.map(Er=>Er.mb));Zn([Be],Mt,Er=>{var cr={};return gt.forEach((Ei,Ji)=>{var xi=Er[Ji],qn=Ei.eb,mn=Ei.fb,Gs=Er[Ji+gt.length],ga=Ei.lb,zc=Ei.nb;cr[Ei.ab]={read:g1=>xi.fromWireType(qn(mn,g1)),write:(g1,Do)=>{var Xo=[];ga(zc,g1,Gs.toWireType(Xo,Do)),_o(Xo)}}}),[{name:Re.name,fromWireType:Ei=>{var Ji={},xi;for(xi in cr)Ji[xi]=cr[xi].read(Ei);return Ye(Ei),Ji},toWireType:(Ei,Ji)=>{for(var xi in cr)if(!(xi in Ji))throw new TypeError(`Missing field: "${xi}"`);var qn=Ke();for(xi in cr)cr[xi].write(qn,Ji[xi]);return Ei!==null&&Ei.push(Ye,qn),qn},Ia:8,readValueFromPointer:$n,Ja:Ye}]})},F:()=>{},_:(Be,Re,Ke,Ye)=>{Re=Fs(Re),Me(Be,{name:Re,fromWireType:function(gt){return!!gt},toWireType:function(gt,Mt){return Mt?Ke:Ye},Ia:8,readValueFromPointer:function(gt){return this.fromWireType(Fe[gt])},Ja:null})},k:(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji,xi,qn,mn)=>{xi=Fs(xi),Mt=dn(gt,Mt),cr&&(cr=dn(Er,cr)),Ji&&(Ji=dn(Ei,Ji)),mn=dn(qn,mn);var Gs=Ns(xi);ua(Gs,function(){u1(`Cannot construct ${xi} due to unbound types`,[Ye])}),Zn([Be,Re,Ke],Ye?[Ye]:[],ga=>{if(ga=ga[0],Ye)var zc=ga.Ba,g1=zc.Ma;else g1=Ho.prototype;ga=Oa(xi,function(){if(Object.getPrototypeOf(this)!==Do)throw new bt("Use 'new' to construct "+xi);if(Xo.La===void 0)throw new bt(xi+" has no accessible constructor");for(var d0=arguments.length,gu=new Array(d0),u0=0;u0{var Er=N1(Re,Ke);gt=dn(Ye,gt),Zn([],[Be],cr=>{cr=cr[0];var Ei=`constructor ${cr.name}`;if(cr.Ba.La===void 0&&(cr.Ba.La=[]),cr.Ba.La[Re-1]!==void 0)throw new bt(`Cannot register multiple constructors with identical number of parameters (${Re-1}) for class '${cr.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return cr.Ba.La[Re-1]=()=>{u1(`Cannot construct ${cr.name} due to unbound types`,Er)},Zn([],Er,Ji=>(Ji.splice(1,0,null),cr.Ba.La[Re-1]=Sa(Ei,Ji,null,gt,Mt),[])),[]})},d:(Be,Re,Ke,Ye,gt,Mt,Er,cr)=>{var Ei=N1(Ke,Ye);Re=Fs(Re),Re=Wc(Re),Mt=dn(gt,Mt),Zn([],[Be],Ji=>{function xi(){u1(`Cannot call ${qn} due to unbound types`,Ei)}Ji=Ji[0];var qn=`${Ji.name}.${Re}`;Re.startsWith("@@")&&(Re=Symbol[Re.substring(2)]),cr&&Ji.Ba.jb.push(Re);var mn=Ji.Ba.Ma,Gs=mn[Re];return Gs===void 0||Gs.Ea===void 0&&Gs.className!==Ji.name&&Gs.Na===Ke-2?(xi.Na=Ke-2,xi.className=Ji.name,mn[Re]=xi):(da(mn,Re,qn),mn[Re].Ea[Ke-2]=xi),Zn([],Ei,ga=>(ga=Sa(qn,ga,Ji,Mt,Er),mn[Re].Ea===void 0?(ga.Na=Ke-2,mn[Re]=ga):mn[Re].Ea[Ke-2]=ga,[])),[]})},Y:Be=>Me(Be,EE),D:(Be,Re,Ke,Ye)=>{function gt(){}Re=Fs(Re),gt.values={},Me(Be,{name:Re,constructor:gt,fromWireType:function(Mt){return this.constructor.values[Mt]},toWireType:(Mt,Er)=>Er.value,Ia:8,readValueFromPointer:Ag(Re,Ke,Ye),Ja:null}),ua(Re,gt)},m:(Be,Re,Ke)=>{var Ye=Ml(Be,"enum");Re=Fs(Re),Be=Ye.constructor,Ye=Object.create(Ye.constructor.prototype,{value:{value:Ke},constructor:{value:Oa(`${Ye.name}_${Re}`,function(){})}}),Be.values[Ke]=Ye,Be[Re]=Ye},A:(Be,Re,Ke)=>{Re=Fs(Re),Me(Be,{name:Re,fromWireType:Ye=>Ye,toWireType:(Ye,gt)=>gt,Ia:8,readValueFromPointer:pd(Re,Ke),Ja:null})},u:(Be,Re,Ke,Ye,gt,Mt)=>{var Er=N1(Re,Ke);Be=Fs(Be),Be=Wc(Be),gt=dn(Ye,gt),ua(Be,function(){u1(`Cannot call ${Be} due to unbound types`,Er)},Re-1),Zn([],Er,cr=>(xA(Be,Sa(Be,[cr[0],null].concat(cr.slice(1)),null,gt,Mt),Re-1),[]))},n:(Be,Re,Ke,Ye,gt)=>{if(Re=Fs(Re),gt===-1&&(gt=4294967295),gt=cr=>cr,Ye===0){var Mt=32-8*Ke;gt=cr=>cr<>>Mt}var Er=Re.includes("unsigned")?function(cr,Ei){return Ei>>>0}:function(cr,Ei){return Ei};Me(Be,{name:Re,fromWireType:gt,toWireType:Er,Ia:8,readValueFromPointer:uu(Re,Ke,Ye!==0),Ja:null})},g:(Be,Re,Ke)=>{function Ye(Mt){return new gt(De.buffer,At[Mt+4>>2],At[Mt>>2])}var gt=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][Re];Ke=Fs(Ke),Me(Be,{name:Ke,fromWireType:Ye,Ia:8,readValueFromPointer:Ye},{hb:!0})},o:Be=>{Me(Be,Up)},v:(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji,xi,qn)=>{Ke=Fs(Ke),Mt=dn(gt,Mt),cr=dn(Er,cr),Ji=dn(Ei,Ji),qn=dn(xi,qn),Zn([Be],[Re],mn=>(mn=mn[0],[new oA(Ke,mn.Ba,!1,!1,!0,mn,Ye,Mt,cr,Ji,qn)]))},Z:(Be,Re)=>{Re=Fs(Re),Me(Be,{name:Re,fromWireType:function(Ke){for(var Ye=At[Ke>>2],gt=Ke+4,Mt,Er=gt,cr=0;cr<=Ye;++cr){var Ei=gt+cr;(cr==Ye||Fe[Ei]==0)&&(Er=Er?ei(Er,Ei-Er):"",Mt===void 0?Mt=Er:(Mt+="\0",Mt+=Er),Er=Ei+1)}return Nt(Ke),Mt},toWireType:function(Ke,Ye){Ye instanceof ArrayBuffer&&(Ye=new Uint8Array(Ye));var gt,Mt=typeof Ye=="string";if(!(Mt||Ye instanceof Uint8Array||Ye instanceof Uint8ClampedArray||Ye instanceof Int8Array))throw new bt("Cannot pass non-string to std::string");if(Mt)for(var Er=gt=0;Er=cr?gt++:2047>=cr?gt+=2:55296<=cr&&57343>=cr?(gt+=4,++Er):gt+=3}else gt=Ye.length;if(Er=Ze(4+gt+1),cr=Er+4,At[Er>>2]=gt,Mt)oi(Ye,cr,gt+1);else if(Mt)for(Mt=0;Mt{if(Ke=Fs(Ke),Re===2)var Ye=La,gt=hI,Mt=ts,Er=cr=>Ge[cr>>1];else Re===4&&(Ye=Xs,gt=xp,Mt=II,Er=cr=>At[cr>>2]);Me(Be,{name:Ke,fromWireType:cr=>{for(var Ei=At[cr>>2],Ji,xi=cr+4,qn=0;qn<=Ei;++qn){var mn=cr+4+qn*Re;(qn==Ei||Er(mn)==0)&&(xi=Ye(xi,mn-xi),Ji===void 0?Ji=xi:(Ji+="\0",Ji+=xi),xi=mn+Re)}return Nt(cr),Ji},toWireType:(cr,Ei)=>{if(typeof Ei!="string")throw new bt(`Cannot pass non-string to C++ string type ${Ke}`);var Ji=Mt(Ei),xi=Ze(4+Ji+Re);return At[xi>>2]=Ji/Re,gt(Ei,xi+4,Ji+Re),cr!==null&&cr.push(Nt,xi),xi},Ia:8,readValueFromPointer:$n,Ja(cr){Nt(cr)}})},x:(Be,Re,Ke,Ye,gt,Mt)=>{Oi[Be]={name:Fs(Re),Ua:dn(Ke,Ye),Ka:dn(gt,Mt),Xa:[]}},i:(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji)=>{Oi[Be].Xa.push({ab:Fs(Re),gb:Ke,eb:dn(Ye,gt),fb:Mt,mb:Er,lb:dn(cr,Ei),nb:Ji})},$:(Be,Re)=>{Re=Fs(Re),Me(Be,{pb:!0,name:Re,Ia:0,fromWireType:()=>{},toWireType:()=>{}})},K:()=>{xr=!1,hE=0},I:()=>{throw 1/0},C:(Be,Re,Ke)=>(Be=O1(Be),Re=Ml(Re,"emval::as"),fd(Re,Ke,Be)),q:(Be,Re,Ke,Ye)=>(Be=kl[Be],Re=O1(Re),Be(null,Re,Ke,Ye)),W:hs,E:(Be,Re)=>(Be=O1(Be),Re=O1(Re),Be==Re),p:(Be,Re,Ke)=>{var Ye=_d(Be,Re),gt=Ye.shift();Be--;var Mt=Array(Be);return Re=`methodCaller<(${Ye.map(Er=>Er.name).join(", ")}) => ${gt.name}>`,cg(Oa(Re,(Er,cr,Ei,Ji)=>{for(var xi=0,qn=0;qn{9{var Re=O1(Be);_o(Re),hs(Be)},s:(Be,Re)=>(Be=Ml(Be,"_emval_take_value"),Be=Be.readValueFromPointer(Re),gE(Be)),G:(Be,Re)=>{if(FA[Be]&&(clearTimeout(FA[Be].id),delete FA[Be]),!Re)return 0;var Ke=setTimeout(()=>{delete FA[Be],IE(()=>ti(Be,performance.now()))},Re);return FA[Be]={id:Ke,qb:Re},0},H:(Be,Re,Ke,Ye)=>{var gt=new Date().getFullYear(),Mt=new Date(gt,0,1).getTimezoneOffset();gt=new Date(gt,6,1).getTimezoneOffset(),At[Be>>2]=60*Math.max(Mt,gt),He[Re>>2]=+(Mt!=gt),Re=Er=>{var cr=Math.abs(Er);return`UTC${0<=Er?"-":"+"}${String(Math.floor(cr/60)).padStart(2,"0")}${String(cr%60).padStart(2,"0")}`},Be=Re(Mt),Re=Re(gt),gtperformance.now(),J:Be=>{var Re=Fe.length;if(Be>>>=0,2147483648=Ke;Ke*=2){var Ye=Re*(1+.2/Ke);Ye=Math.min(Ye,Be+100663296);e:{Ye=(Math.min(2147483648,65536*Math.ceil(Math.max(Be,Ye)/65536))-ue.buffer.byteLength+65535)/65536|0;try{ue.grow(Ye),rt();var gt=1;break e}catch{}gt=void 0}if(gt)return!0}return!1},V:(Be,Re)=>{var Ke=0;return Po().forEach((Ye,gt)=>{var Mt=Re+Ke;for(gt=At[Be+4*gt>>2]=Mt,Mt=0;Mt{var Ke=Po();At[Be>>2]=Ke.length;var Ye=0;return Ke.forEach(gt=>Ye+=gt.length+1),At[Re>>2]=Ye,0},S:()=>52,Q:()=>52,l:zs,f:sA,e:fT,B:GA,aa:pT,a:M1,b:CT,h:A0,t:_T,U:Xc,L:(Be,Re)=>($h(Fe.subarray(Be,Be+Re)),0)},dr;(async function(Be,Re){function Ke(Mt){var Er;return dr=Mt.exports,ue=dr.da,rt(),Mo=dr.ga,lt.unshift(dr.ea),ht--,(Er=v.monitorRunDependencies)===null||Er===void 0||Er.call(v,ht),ht==0&&vt&&(Mt=vt,vt=null,Mt()),dr}ht++,(Be=v.monitorRunDependencies)===null||Be===void 0||Be.call(v,ht);var Ye={a:o0};if(v.instantiateWasm)try{return v.instantiateWasm(Ye,Ke)}catch(Mt){ee(`Module.instantiateWasm callback failed with error: ${Mt}`),x(Mt)}(Re=vr)!==null&&Re!==void 0||(vr=jt("DotLottiePlayer.wasm")?"DotLottiePlayer.wasm":v.locateFile?v.locateFile("DotLottiePlayer.wasm",W):W+"DotLottiePlayer.wasm");try{var gt=await yi(Ye);return Ke(gt.instance),gt}catch(Mt){x(Mt)}})();var Ze=Be=>(Ze=dr.fa)(Be),Nt=Be=>(Nt=dr.ha)(Be),Rr=Be=>(Rr=dr.ia)(Be),ti=(Be,Re)=>(ti=dr.ja)(Be,Re),Ui=(Be,Re)=>(Ui=dr.ka)(Be,Re),hn=Be=>(hn=dr.la)(Be),Uo=()=>(Uo=dr.ma)();v.dynCall_jiii=(Be,Re,Ke,Ye)=>(v.dynCall_jiii=dr.na)(Be,Re,Ke,Ye),v.dynCall_jii=(Be,Re,Ke)=>(v.dynCall_jii=dr.oa)(Be,Re,Ke),v.dynCall_vjii=(Be,Re,Ke,Ye,gt)=>(v.dynCall_vjii=dr.pa)(Be,Re,Ke,Ye,gt),v.dynCall_vjfii=(Be,Re,Ke,Ye,gt,Mt)=>(v.dynCall_vjfii=dr.qa)(Be,Re,Ke,Ye,gt,Mt),v.dynCall_vjiii=(Be,Re,Ke,Ye,gt,Mt)=>(v.dynCall_vjiii=dr.ra)(Be,Re,Ke,Ye,gt,Mt),v.dynCall_vj=(Be,Re,Ke)=>(v.dynCall_vj=dr.sa)(Be,Re,Ke),v.dynCall_vjiiiii=(Be,Re,Ke,Ye,gt,Mt,Er,cr)=>(v.dynCall_vjiiiii=dr.ta)(Be,Re,Ke,Ye,gt,Mt,Er,cr),v.dynCall_vjiffii=(Be,Re,Ke,Ye,gt,Mt,Er,cr)=>(v.dynCall_vjiffii=dr.ua)(Be,Re,Ke,Ye,gt,Mt,Er,cr),v.dynCall_vjiiii=(Be,Re,Ke,Ye,gt,Mt,Er)=>(v.dynCall_vjiiii=dr.va)(Be,Re,Ke,Ye,gt,Mt,Er),v.dynCall_viijii=(Be,Re,Ke,Ye,gt,Mt,Er)=>(v.dynCall_viijii=dr.wa)(Be,Re,Ke,Ye,gt,Mt,Er),v.dynCall_iiiiij=(Be,Re,Ke,Ye,gt,Mt,Er)=>(v.dynCall_iiiiij=dr.xa)(Be,Re,Ke,Ye,gt,Mt,Er),v.dynCall_iiiiijj=(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei)=>(v.dynCall_iiiiijj=dr.ya)(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei),v.dynCall_iiiiiijj=(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji)=>(v.dynCall_iiiiiijj=dr.za)(Be,Re,Ke,Ye,gt,Mt,Er,cr,Ei,Ji);function zs(Be,Re){var Ke=Uo();try{return Mo.get(Be)(Re)}catch(Ye){if(hn(Ke),Ye!==Ye+0)throw Ye;Ui(1,0)}}function GA(Be,Re,Ke,Ye,gt,Mt){var Er=Uo();try{return Mo.get(Be)(Re,Ke,Ye,gt,Mt)}catch(cr){if(hn(Er),cr!==cr+0)throw cr;Ui(1,0)}}function M1(Be,Re){var Ke=Uo();try{Mo.get(Be)(Re)}catch(Ye){if(hn(Ke),Ye!==Ye+0)throw Ye;Ui(1,0)}}function A0(Be,Re,Ke,Ye){var gt=Uo();try{Mo.get(Be)(Re,Ke,Ye)}catch(Mt){if(hn(gt),Mt!==Mt+0)throw Mt;Ui(1,0)}}function sA(Be,Re,Ke){var Ye=Uo();try{return Mo.get(Be)(Re,Ke)}catch(gt){if(hn(Ye),gt!==gt+0)throw gt;Ui(1,0)}}function CT(Be,Re,Ke){var Ye=Uo();try{Mo.get(Be)(Re,Ke)}catch(gt){if(hn(Ye),gt!==gt+0)throw gt;Ui(1,0)}}function pT(Be){var Re=Uo();try{Mo.get(Be)()}catch(Ke){if(hn(Re),Ke!==Ke+0)throw Ke;Ui(1,0)}}function fT(Be,Re,Ke,Ye){var gt=Uo();try{return Mo.get(Be)(Re,Ke,Ye)}catch(Mt){if(hn(gt),Mt!==Mt+0)throw Mt;Ui(1,0)}}function _T(Be,Re,Ke,Ye,gt){var Mt=Uo();try{Mo.get(Be)(Re,Ke,Ye,gt)}catch(Er){if(hn(Mt),Er!==Er+0)throw Er;Ui(1,0)}}var c0;vt=function Be(){c0||Fp(),c0||(vt=Be)};function Fp(){function Be(){if(!c0&&(c0=!0,v.calledRun=!0,!Ee)){var Re;if(Jn(lt),L(v),(Re=v.onRuntimeInitialized)===null||Re===void 0||Re.call(v),v.postRun)for(typeof v.postRun=="function"&&(v.postRun=[v.postRun]);v.postRun.length;){var Ke=v.postRun.shift();Yt.unshift(Ke)}Jn(Yt)}}if(!(0{setTimeout(()=>v.setStatus(""),1),Be()},1)):Be())}}if(v.preInit)for(typeof v.preInit=="function"&&(v.preInit=[v.preInit]);0n})}static async _loadWithBackup(){return this._ModulePromise||(this._ModulePromise=this._tryLoad(this._wasmURL).catch(async n=>{let e=`https://unpkg.com/${Y2}@${X2}/dist/dotlottie-player.wasm`;console.warn(`Primary WASM load failed from ${this._wasmURL}. Error: ${n.message}`),console.warn(`Attempting to load WASM from backup URL: ${e}`);try{return await this._tryLoad(e)}catch(o){throw console.error(`Primary WASM URL failed: ${n.message}`),console.error(`Backup WASM URL failed: ${o.message}`),new Error("WASM loading failed from all sources.")}})),this._ModulePromise}static async load(){return this._loadWithBackup()}static setWasmUrl(n){n!==this._wasmURL&&(this._wasmURL=n,this._ModulePromise=null)}};p(A1,"_ModulePromise",null),p(A1,"_wasmURL",`https://cdn.jsdelivr.net/npm/${Y2}@${X2}/dist/dotlottie-player.wasm`);var Z2=class{constructor(){p(this,"_eventListeners",new Map)}addEventListener(n,e){let o=this._eventListeners.get(n);o||(o=new Set,this._eventListeners.set(n,o)),o.add(e)}removeEventListener(n,e){let o=this._eventListeners.get(n);o&&(e?(o.delete(e),o.size===0&&this._eventListeners.delete(n)):this._eventListeners.delete(n))}dispatch(n){var e;(e=this._eventListeners.get(n.type))==null||e.forEach(o=>o(n))}removeAllEventListeners(){this._eventListeners.clear()}},N=class{static _initializeObserver(){if(this._observer)return;let n=e=>{e.forEach(o=>{let d=this._observedCanvases.get(o.target);d&&(o.isIntersecting?d.unfreeze():d.freeze())})};this._observer=new IntersectionObserver(n,{threshold:0})}static observe(n,e){var o;this._initializeObserver(),!this._observedCanvases.has(n)&&(this._observedCanvases.set(n,e),(o=this._observer)==null||o.observe(n))}static unobserve(n){var e,o;(e=this._observer)==null||e.unobserve(n),this._observedCanvases.delete(n),this._observedCanvases.size===0&&((o=this._observer)==null||o.disconnect(),this._observer=null)}};p(N,"_observer",null),p(N,"_observedCanvases",new Map);var G=class{static _initializeObserver(){if(this._observer)return;let n=e=>{e.forEach(o=>{let d=this._observedCanvases.get(o.target);if(!d)return;let[I,f]=d;clearTimeout(f);let S=setTimeout(()=>{I.resize()},100);this._observedCanvases.set(o.target,[I,S])})};this._observer=new ResizeObserver(n)}static observe(n,e){var o;this._initializeObserver(),!this._observedCanvases.has(n)&&(this._observedCanvases.set(n,[e,0]),(o=this._observer)==null||o.observe(n))}static unobserve(n){var o;let e=this._observedCanvases.get(n);if(e){let d=e[1];d&&clearTimeout(d)}(o=this._observer)==null||o.unobserve(n),this._observedCanvases.delete(n),!this._observedCanvases.size&&this._observer&&(this._observer.disconnect(),this._observer=null)}};p(G,"_observer",null),p(G,"_observedCanvases",new Map);function t0(n){return/^#([\da-f]{6}|[\da-f]{8})$/iu.test(n)}function e0(n){if(!t0(n))return 0;let e=n.replace("#","");return e=e.length===6?`${e}ff`:e,parseInt(e,16)}function V2(n){if(n.byteLength<4)return!1;let e=new Uint8Array(n.slice(0,_2.byteLength));for(let o=0;o<_2.length;o+=1)if(_2[o]!==e[o])return!1;return!0}function J2(n){return K3.every(e=>Object.prototype.hasOwnProperty.call(n,e))}function q2(n){if(typeof n=="string")try{return J2(JSON.parse(n))}catch{return!1}else return J2(n)}function d1(){return 1+((E?window.devicePixelRatio:1)-1)*Q3}function l1(n){let e=n.getBoundingClientRect(),o=window.innerHeight||document.documentElement.clientHeight,d=window.innerWidth||document.documentElement.clientWidth;return!(e.bottom<0||e.top>o||e.right<0||e.left>d)}function z(n){let e=n.target;if(e instanceof HTMLCanvasElement){let o=e.getBoundingClientRect();if(o.width===0||o.height===0||e.width===0||e.height===0)return null;let d=e.width/o.width,I=e.height/o.height,f=(n.clientX-o.left)*d,S=(n.clientY-o.top)*I;return!Number.isFinite(f)||!Number.isFinite(S)||Number.isNaN(f)||Number.isNaN(S)?null:{x:f,y:S}}return null}function t3(n){let e=n.replace("OpenUrl: ",""),o=e.indexOf(" | Target: "),d,I;o===-1?(d=e,I="_blank"):(d=e.substring(0,o),I=e.substring(o+11)),window.open(d,I)}var K2=(n,e)=>{let o=new n.VectorChar,d=new Uint8Array(e);for(let I=0;In==="reverse"?e.Mode.Reverse:n==="bounce"?e.Mode.Bounce:n==="reverse-bounce"?e.Mode.ReverseBounce:e.Mode.Forward,i0=(n,e)=>n==="contain"?e.Fit.Contain:n==="cover"?e.Fit.Cover:n==="fill"?e.Fit.Fill:n==="fit-height"?e.Fit.FitHeight:n==="fit-width"?e.Fit.FitWidth:e.Fit.None,n0=(n,e)=>{let o=new e.VectorFloat;return o.push_back(n[0]),o.push_back(n[1]),o},v2=(n,e)=>{let o=new e.VectorFloat;return n.length!==2||(o.push_back(n[0]),o.push_back(n[1])),o},p2=(n,e)=>n?{align:n0(n.align??[.5,.5],e),fit:i0(n.fit??"contain",e)}:e.createDefaultLayout(),e3=class wo{constructor(e){var o,d;p(this,"_canvas",null),p(this,"_pendingLoad",null),p(this,"_context",null),p(this,"_eventManager"),p(this,"_animationFrameId",null),p(this,"_frameManager"),p(this,"_dotLottieCore",null),p(this,"_stateMachineId",""),p(this,"_stateMachineConfig",null),p(this,"_isStateMachineRunning",!1),p(this,"_stateMachineObserverHandle",null),p(this,"_stateMachineInternalMessageObserver",null),p(this,"_dotLottieObserverHandle",null),p(this,"_renderConfig",{}),p(this,"_isFrozen",!1),p(this,"_backgroundColor",null),p(this,"_boundOnClick",null),p(this,"_boundOnPointerUp",null),p(this,"_boundOnPointerDown",null),p(this,"_boundOnPointerMove",null),p(this,"_boundOnPointerEnter",null),p(this,"_boundOnPointerLeave",null),p(this,"_bufferMismatchCount",0),p(this,"_lastExpectedBufferSize",0),this._canvas=e.canvas??null,this._eventManager=new Z2,this._frameManager=new q3,this._renderConfig={...e.renderConfig,devicePixelRatio:((o=e.renderConfig)==null?void 0:o.devicePixelRatio)||d1(),freezeOnOffscreen:((d=e.renderConfig)==null?void 0:d.freezeOnOffscreen)??!0},A1.load().then(I=>{wo._wasmModule=I;let f=new I.CallbackObserver;f.setOnLoad(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"load"})},0)}),f.setOnLoadError(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"loadError",error:new Error("failed to load")})},0)}),f.setOnPlay(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"play"})},0)}),f.setOnPause(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"pause"})},0)}),f.setOnStop(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"stop"})},0)}),f.setOnLoop(S=>{setTimeout(()=>{this._eventManager.dispatch({type:"loop",loopCount:S})},0)}),f.setOnComplete(()=>{setTimeout(()=>{this._eventManager.dispatch({type:"complete"})},0)}),f.setOnFrame(S=>{setTimeout(()=>{this._eventManager.dispatch({type:"frame",currentFrame:S})},0)}),f.setOnRender(S=>{setTimeout(()=>{this._eventManager.dispatch({type:"render",currentFrame:S})},0)}),this._dotLottieCore=new I.DotLottiePlayer({animationId:e.animationId??"",themeId:e.themeId??"",stateMachineId:"",autoplay:e.autoplay??!1,backgroundColor:0,loopAnimation:e.loop??!1,loopCount:e.loopCount??0,mode:f2(e.mode??"forward",I),segment:v2(e.segment??[],I),speed:e.speed??1,useFrameInterpolation:e.useFrameInterpolation??!0,marker:e.marker??"",layout:p2(e.layout,I)}),this._stateMachineId=e.stateMachineId??"",this._stateMachineConfig=e.stateMachineConfig??null,this._dotLottieObserverHandle=this._dotLottieCore.subscribe(f),this._eventManager.dispatch({type:"ready"}),e.data?this._canvas?this._loadFromData(e.data):this._pendingLoad={data:e.data}:e.src&&(this._canvas?this._loadFromSrc(e.src):this._pendingLoad={src:e.src}),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor)}).catch(I=>{this._eventManager.dispatch({type:"loadError",error:new Error(`Failed to load wasm module: ${I}`)})})}_dispatchError(e){console.error(e),this._eventManager.dispatch({type:"loadError",error:new Error(e)})}async _fetchData(e){let o=await fetch(e);if(!o.ok)throw new Error(`Failed to fetch animation data from URL: ${e}. ${o.status}: ${o.statusText}`);let d=await o.arrayBuffer();return V2(d)?d:new TextDecoder().decode(d)}_loadFromData(e){if(this._dotLottieCore===null||wo._wasmModule===null)return;if(!this._canvas){console.warn("[dotlottie-web] Cannot load animation without canvas. Call setCanvas() first.");return}let o=this._canvas.width,d=this._canvas.height,I=!1;if(typeof e=="string"){if(!q2(e)){this._dispatchError("Invalid Lottie JSON string: The provided string does not conform to the Lottie JSON format.");return}I=this._dotLottieCore.loadAnimationData(e,o,d)}else if(e instanceof ArrayBuffer){if(!V2(e)){this._dispatchError("Invalid dotLottie ArrayBuffer: The provided ArrayBuffer does not conform to the dotLottie format.");return}I=this._dotLottieCore.loadDotLottieData(K2(wo._wasmModule,e),o,d)}else if(typeof e=="object"){if(!q2(e)){this._dispatchError("Invalid Lottie JSON object: The provided object does not conform to the Lottie JSON format.");return}I=this._dotLottieCore.loadAnimationData(JSON.stringify(e),o,d)}else{this._dispatchError(`Unsupported data type for animation data. Expected: - - string (Lottie JSON), - - ArrayBuffer (dotLottie), - - object (Lottie JSON). - Received: ${typeof e}`);return}I&&(this._renderConfig.quality!==void 0&&this._dotLottieCore.setQuality(this._renderConfig.quality),E&&this.resize(),setTimeout(()=>{this._eventManager.dispatch({type:"frame",currentFrame:this.currentFrame})},0),this._dotLottieCore.render(),this._draw(),this._stateMachineId?this.stateMachineLoad(this._stateMachineId)&&this.stateMachineStart()&&this._startAnimationLoop():this._dotLottieCore.isPlaying()&&this._startAnimationLoop(),E&&this._canvas instanceof HTMLCanvasElement&&(this._renderConfig.freezeOnOffscreen&&(N.observe(this._canvas,this),l1(this._canvas)||this.freeze()),this._renderConfig.autoResize&&G.observe(this._canvas,this)))}_loadFromSrc(e){this._fetchData(e).then(o=>this._loadFromData(o)).catch(o=>this._dispatchError(`Failed to load animation data from URL: ${e}. ${o}`))}get buffer(){return this._dotLottieCore?this._dotLottieCore.buffer():null}get activeAnimationId(){var e;return(e=this._dotLottieCore)==null?void 0:e.activeAnimationId()}get activeThemeId(){var e;return(e=this._dotLottieCore)==null?void 0:e.activeThemeId()}get layout(){var o;let e=(o=this._dotLottieCore)==null?void 0:o.config().layout;if(e)return{align:[e.align.get(0),e.align.get(1)],fit:(()=>{var d,I,f,S,v,L;switch(e.fit){case((d=wo._wasmModule)==null?void 0:d.Fit.Contain):return"contain";case((I=wo._wasmModule)==null?void 0:I.Fit.Cover):return"cover";case((f=wo._wasmModule)==null?void 0:f.Fit.Fill):return"fill";case((S=wo._wasmModule)==null?void 0:S.Fit.FitHeight):return"fit-height";case((v=wo._wasmModule)==null?void 0:v.Fit.FitWidth):return"fit-width";case((L=wo._wasmModule)==null?void 0:L.Fit.None):return"none";default:return"contain"}})()}}get marker(){var e;return(e=this._dotLottieCore)==null?void 0:e.config().marker}get manifest(){var e;try{let o=(e=this._dotLottieCore)==null?void 0:e.manifestString();if(this._dotLottieCore===null||!o)return null;let d=JSON.parse(o);return Object.keys(d).length===0?null:d}catch{return null}}get renderConfig(){return this._renderConfig}get segment(){var o;let e=(o=this._dotLottieCore)==null?void 0:o.config().segment;if(e&&e.size()===2)return[e.get(0),e.get(1)]}get loop(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().loopAnimation)??!1}get mode(){var o,d,I,f;let e=(o=this._dotLottieCore)==null?void 0:o.config().mode;return e===((d=wo._wasmModule)==null?void 0:d.Mode.Reverse)?"reverse":e===((I=wo._wasmModule)==null?void 0:I.Mode.Bounce)?"bounce":e===((f=wo._wasmModule)==null?void 0:f.Mode.ReverseBounce)?"reverse-bounce":"forward"}get isFrozen(){return this._isFrozen}get isStateMachineRunning(){return this._isStateMachineRunning}get backgroundColor(){return this._backgroundColor??""}get autoplay(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().autoplay)??!1}get useFrameInterpolation(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().useFrameInterpolation)??!1}get speed(){var e;return((e=this._dotLottieCore)==null?void 0:e.config().speed)??0}get isReady(){return this._dotLottieCore!==null}get isLoaded(){var e;return((e=this._dotLottieCore)==null?void 0:e.isLoaded())??!1}get isPlaying(){var e;return((e=this._dotLottieCore)==null?void 0:e.isPlaying())??!1}get isPaused(){var e;return((e=this._dotLottieCore)==null?void 0:e.isPaused())??!1}get isStopped(){var e;return((e=this._dotLottieCore)==null?void 0:e.isStopped())??!1}get currentFrame(){return this._dotLottieCore?Math.round(this._dotLottieCore.currentFrame()*100)/100:0}get loopCount(){var e;return((e=this._dotLottieCore)==null?void 0:e.loopCount())??0}get totalFrames(){var e;return((e=this._dotLottieCore)==null?void 0:e.totalFrames())??0}get duration(){var e;return((e=this._dotLottieCore)==null?void 0:e.duration())??0}get segmentDuration(){var e;return((e=this._dotLottieCore)==null?void 0:e.segmentDuration())??0}get canvas(){return this._canvas}load(e){this._dotLottieCore===null||wo._wasmModule===null||(this._stopAnimationLoop(),this._cleanupCanvas(),this._isFrozen=!1,this._dotLottieCore.setConfig({animationId:e.animationId??"",themeId:e.themeId??"",stateMachineId:"",autoplay:e.autoplay??!1,backgroundColor:0,loopAnimation:e.loop??!1,loopCount:e.loopCount??0,mode:f2(e.mode??"forward",wo._wasmModule),segment:v2(e.segment??[],wo._wasmModule),speed:e.speed??1,useFrameInterpolation:e.useFrameInterpolation??!0,marker:e.marker??"",layout:p2(e.layout,wo._wasmModule)}),e.data?this._canvas?this._loadFromData(e.data):this._pendingLoad={data:e.data}:e.src&&(this._canvas?this._loadFromSrc(e.src):this._pendingLoad={src:e.src}),this.setBackgroundColor(e.backgroundColor??""))}_draw(){if(!(this._dotLottieCore===null||this._canvas===null)&&(!this._context&&"getContext"in this._canvas&&typeof this._canvas.getContext=="function"&&(typeof HTMLCanvasElement<"u"&&this._canvas instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&this._canvas instanceof OffscreenCanvas)&&(this._context=this._canvas.getContext("2d")),this._context)){let e=this._dotLottieCore.buffer(),o=this._canvas.width*this._canvas.height*X3;if(e.byteLength!==o){this._lastExpectedBufferSize===o?this._bufferMismatchCount+=1:(this._bufferMismatchCount=1,this._lastExpectedBufferSize=o),this._bufferMismatchCount===10&&console.warn(`[dotlottie-web] Persistent buffer size mismatch detected. Expected ${o} bytes for canvas ${this._canvas.width}x${this._canvas.height}, but got ${e.byteLength} bytes. This may indicate a WASM memory allocation issue or invalid canvas dimensions.`);return}this._bufferMismatchCount=0,this._lastExpectedBufferSize=o;let d=null,I=new Uint8ClampedArray(e,0,e.byteLength);typeof ImageData>"u"?(d=this._context.createImageData(this._canvas.width,this._canvas.height),d.data.set(I)):d=new ImageData(I,this._canvas.width,this._canvas.height),this._context.putImageData(d,0,0)}}_cleanupCanvas(){this._canvas&&E&&this._canvas instanceof HTMLCanvasElement&&(N.unobserve(this._canvas),G.unobserve(this._canvas),this._cleanupStateMachineListeners())}_initializeCanvas(){this._context=null,this._canvas&&E&&this._canvas instanceof HTMLCanvasElement&&this.isLoaded&&(this._renderConfig.freezeOnOffscreen&&(N.observe(this._canvas,this),l1(this._canvas)||this.freeze()),this._renderConfig.autoResize&&G.observe(this._canvas,this),this._isStateMachineRunning&&this._setupStateMachineListeners()),this._canvas&&this._dotLottieCore&&this.isLoaded&&this._dotLottieCore.resize(this._canvas.width,this._canvas.height)&&(this._dotLottieCore.render(),this._draw())}_stopAnimationLoop(){this._animationFrameId!==null&&(this._frameManager.cancelAnimationFrame(this._animationFrameId),this._animationFrameId=null)}_startAnimationLoop(){this._animationFrameId===null&&this._dotLottieCore&&!this._isFrozen&&(this._dotLottieCore.isPlaying()||this._isStateMachineRunning)&&(this._animationFrameId=this._frameManager.requestAnimationFrame(this._animationLoop.bind(this)))}_animationLoop(){if(this._dotLottieCore===null){this._stopAnimationLoop();return}if(!this._dotLottieCore.isPlaying()&&!this._isStateMachineRunning){this._stopAnimationLoop();return}try{this._dotLottieCore.tick()&&this._draw(),this._animationFrameId=this._frameManager.requestAnimationFrame(this._animationLoop.bind(this))}catch(e){console.error("Error in animation frame:",e),this._eventManager.dispatch({type:"renderError",error:e}),e instanceof WebAssembly.RuntimeError&&this.destroy()}}play(){this._dotLottieCore===null||!this.isLoaded||(this._stopAnimationLoop(),(this._dotLottieCore.play()||this._dotLottieCore.isPlaying())&&(this._isFrozen=!1,this._startAnimationLoop()),this._canvas&&E&&this._canvas instanceof HTMLCanvasElement&&this._renderConfig.freezeOnOffscreen&&!l1(this._canvas)&&this.freeze())}pause(){this._dotLottieCore!==null&&(this._dotLottieCore.pause(),this._stopAnimationLoop())}stop(){if(this._dotLottieCore===null)return;let e=this._dotLottieCore.stop();this._stopAnimationLoop(),e&&(this._eventManager.dispatch({type:"frame",currentFrame:this.currentFrame}),this._dotLottieCore.render(),this._draw())}setFrame(e){this._dotLottieCore!==null&&this._dotLottieCore.seek(e)&&this._dotLottieCore.render()&&this._draw()}setSpeed(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),speed:e})}setBackgroundColor(e){this._dotLottieCore!==null&&(E&&this._canvas instanceof HTMLCanvasElement?this._canvas.style.backgroundColor=e:this._dotLottieCore.setConfig({...this._dotLottieCore.config(),backgroundColor:e0(e)}),this._backgroundColor=e)}setLoop(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),loopAnimation:e})}setLoopCount(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),loopCount:e})}setUseFrameInterpolation(e){this._dotLottieCore!==null&&this._dotLottieCore.setConfig({...this._dotLottieCore.config(),useFrameInterpolation:e})}addEventListener(e,o){this._eventManager.addEventListener(e,o)}removeEventListener(e,o){this._eventManager.removeEventListener(e,o)}destroy(){var e,o,d,I;this._stopAnimationLoop(),this._isStateMachineRunning=!1,this._cleanupCanvas(),this._stateMachineObserverHandle&&((e=this._dotLottieCore)==null||e.stateMachineUnsubscribe(this._stateMachineObserverHandle),this._stateMachineObserverHandle.delete(),this._stateMachineObserverHandle=null),this._stateMachineInternalMessageObserver&&((o=this._dotLottieCore)==null||o.stateMachineInternalUnsubscribe(this._stateMachineInternalMessageObserver),this._stateMachineInternalMessageObserver.delete(),this._stateMachineInternalMessageObserver=null),this._dotLottieObserverHandle&&((d=this._dotLottieCore)==null||d.unsubscribe(this._dotLottieObserverHandle),this._dotLottieObserverHandle.delete(),this._dotLottieObserverHandle=null),(I=this._dotLottieCore)==null||I.delete(),this._dotLottieCore=null,this._context=null,this._eventManager.dispatch({type:"destroy"}),this._eventManager.removeAllEventListeners(),this._cleanupStateMachineListeners()}freeze(){this._animationFrameId!==null&&(this._stopAnimationLoop(),this._isFrozen=!0,this._eventManager.dispatch({type:"freeze"}))}unfreeze(){this._animationFrameId===null&&(this._isFrozen=!1,this._eventManager.dispatch({type:"unfreeze"}),this._startAnimationLoop())}resize(){if(!(!this._dotLottieCore||!this.isLoaded||!this._canvas)){if(E&&this._canvas instanceof HTMLCanvasElement){let e=this._renderConfig.devicePixelRatio||window.devicePixelRatio||1,{height:o,width:d}=this._canvas.getBoundingClientRect();o!==0&&d!==0&&(this._canvas.width=d*e,this._canvas.height=o*e)}this._dotLottieCore.resize(this._canvas.width,this._canvas.height)&&(this._dotLottieCore.render(),this._draw())}}setCanvas(e){if(!(!e||this._canvas===e)&&(this._canvas&&this._cleanupCanvas(),this._canvas=e,this._initializeCanvas(),this._pendingLoad)){let o=this._pendingLoad;this._pendingLoad=null,o.data?this._loadFromData(o.data):o.src&&this._loadFromSrc(o.src)}}setTransform(e){if(!this._dotLottieCore||!wo._wasmModule)return!1;let o=new wo._wasmModule.VectorFloat;for(let I of e)o.push_back(I);let d=this._dotLottieCore.setTransform(o);return d&&this._dotLottieCore.render()&&this._draw(),d}getTransform(){if(!this._dotLottieCore)return;let e=[0,0,0,0,0,0,0,0,0],o=this._dotLottieCore.getTransform();for(let d=0;d0&&typeof e[0]=="object"&&e[0]!==null&&"t"in e[0]&&"s"in e[0]}getSlotIds(){if(!this._dotLottieCore)return[];let e=this._dotLottieCore.getSlotIds(),o=[];for(let d=0;d{setTimeout(()=>{this._isStateMachineRunning=!0,this._eventManager.dispatch({type:"stateMachineStart"}),this._startAnimationLoop()},0)}),e.setOnStop(()=>{setTimeout(()=>{var d;this._isStateMachineRunning=!1,this._eventManager.dispatch({type:"stateMachineStop"}),(d=this._dotLottieCore)!=null&&d.isPlaying()||this._stopAnimationLoop()},0)}),e.setOnCustomEvent(d=>{this._eventManager.dispatch({type:"stateMachineCustomEvent",eventName:d})}),e.setOnBooleanInputValueChange((d,I,f)=>{this._eventManager.dispatch({type:"stateMachineBooleanInputValueChange",inputName:d,newValue:f,oldValue:I})}),e.setOnNumericInputValueChange((d,I,f)=>{this._eventManager.dispatch({type:"stateMachineNumericInputValueChange",inputName:d,newValue:f,oldValue:I})}),e.setOnStringInputValueChange((d,I,f)=>{this._eventManager.dispatch({type:"stateMachineStringInputValueChange",inputName:d,newValue:f,oldValue:I})}),e.setOnInputFired(d=>{this._eventManager.dispatch({type:"stateMachineInputFired",inputName:d})}),e.setOnTransition((d,I)=>{this._eventManager.dispatch({type:"stateMachineTransition",fromState:d,toState:I})}),e.setOnStateEntered(d=>{this._eventManager.dispatch({type:"stateMachineStateEntered",state:d})}),e.setOnStateExit(d=>{this._eventManager.dispatch({type:"stateMachineStateExit",state:d})}),e.setOnError(d=>{this._eventManager.dispatch({type:"stateMachineError",error:d})});let o=new wo._wasmModule.CallbackStateMachineInternalObserver;o.setOnMessage(d=>{E?d.startsWith("OpenUrl: ")&&t3(d):this._eventManager.dispatch({type:"stateMachineInternalMessage",message:d})}),this._stateMachineObserverHandle=this._dotLottieCore.stateMachineSubscribe(e),this._stateMachineInternalMessageObserver=this._dotLottieCore.stateMachineInternalSubscribe(o)}_cleanupStateMachineObservers(){var e,o;this._stateMachineObserverHandle&&((e=this._dotLottieCore)==null||e.stateMachineUnsubscribe(this._stateMachineObserverHandle),this._stateMachineObserverHandle.delete(),this._stateMachineObserverHandle=null),this._stateMachineInternalMessageObserver&&((o=this._dotLottieCore)==null||o.stateMachineInternalUnsubscribe(this._stateMachineInternalMessageObserver),this._stateMachineInternalMessageObserver.delete(),this._stateMachineInternalMessageObserver=null)}stateMachineLoad(e){if(!this._dotLottieCore||!wo._wasmModule)return!1;this._cleanupStateMachineObservers();let o=this._dotLottieCore.stateMachineLoad(e);return o&&this._setupStateMachineObservers(),o}stateMachineLoadData(e){if(!this._dotLottieCore||!wo._wasmModule)return!1;this._cleanupStateMachineObservers();let o=this._dotLottieCore.stateMachineLoadData(e);return o&&this._setupStateMachineObservers(),o}stateMachineSetConfig(e){this._stateMachineConfig=e}stateMachineStart(){if(wo._wasmModule===null||this._dotLottieCore===null)return!1;let e=wo._wasmModule.createDefaultOpenUrlPolicy();if(this._stateMachineConfig){let d=this._stateMachineConfig.openUrlPolicy;if(d&&typeof d.requireUserInteraction=="boolean"&&(e.requireUserInteraction=d.requireUserInteraction),d==null?void 0:d.whitelist){e.whitelist=new wo._wasmModule.VectorString;for(let I of d.whitelist)e.whitelist.push_back(I)}}let o=this._dotLottieCore.stateMachineStart(e);return o&&(this._isStateMachineRunning=!0,this._setupStateMachineListeners(),this._startAnimationLoop()),o}stateMachineStop(){if(!this._dotLottieCore)return!1;let e=this._dotLottieCore.stateMachineStop();return e&&(this._cleanupStateMachineObservers(),this._isStateMachineRunning=!1,this._cleanupStateMachineListeners(),this._dotLottieCore.isPlaying()||this._stopAnimationLoop()),e}stateMachineGetStatus(){var e;return((e=this._dotLottieCore)==null?void 0:e.stateMachineStatus())??""}stateMachineGetCurrentState(){var e;return((e=this._dotLottieCore)==null?void 0:e.stateMachineCurrentState())??""}stateMachineGetActiveId(){var e;return((e=this._dotLottieCore)==null?void 0:e.activeStateMachineId())??""}stateMachineOverrideState(e,o=!1){var d;return((d=this._dotLottieCore)==null?void 0:d.stateMachineOverrideCurrentState(e,o))??!1}stateMachineGet(e){var o;return((o=this._dotLottieCore)==null?void 0:o.getStateMachine(e))??""}stateMachineGetListeners(){if(!this._dotLottieCore)return[];let e=this._dotLottieCore.stateMachineFrameworkSetup(),o=[];for(let d=0;d"u")throw new Error("Worker is not supported in this environment.");let n=new Blob([new Uint8Array([34,117,115,101,32,115,116,114,105,99,116,34,59,10,40,40,41,32,61,62,32,123,10,32,32,118,97,114,32,95,95,100,101,102,80,114,111,112,32,61,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,59,10,32,32,118,97,114,32,95,95,100,101,102,78,111,114,109,97,108,80,114,111,112,32,61,32,40,111,98,106,44,32,107,101,121,44,32,118,97,108,117,101,41,32,61,62,32,107,101,121,32,105,110,32,111,98,106,32,63,32,95,95,100,101,102,80,114,111,112,40,111,98,106,44,32,107,101,121,44,32,123,32,101,110,117,109,101,114,97,98,108,101,58,32,116,114,117,101,44,32,99,111,110,102,105,103,117,114,97,98,108,101,58,32,116,114,117,101,44,32,119,114,105,116,97,98,108,101,58,32,116,114,117,101,44,32,118,97,108,117,101,32,125,41,32,58,32,111,98,106,91,107,101,121,93,32,61,32,118,97,108,117,101,59,10,32,32,118,97,114,32,95,95,112,117,98,108,105,99,70,105,101,108,100,32,61,32,40,111,98,106,44,32,107,101,121,44,32,118,97,108,117,101,41,32,61,62,32,95,95,100,101,102,78,111,114,109,97,108,80,114,111,112,40,111,98,106,44,32,116,121,112,101,111,102,32,107,101,121,32,33,61,61,32,34,115,121,109,98,111,108,34,32,63,32,107,101,121,32,43,32,34,34,32,58,32,107,101,121,44,32,118,97,108,117,101,41,59,10,10,32,32,47,47,32,115,114,99,47,97,110,105,109,97,116,105,111,110,45,102,114,97,109,101,45,109,97,110,97,103,101,114,46,116,115,10,32,32,118,97,114,32,87,101,98,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,59,10,32,32,32,32,125,10,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,32,123,10,32,32,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,78,111,100,101,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,108,97,115,116,72,97,110,100,108,101,73,100,34,44,32,48,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,108,97,115,116,73,109,109,101,100,105,97,116,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,32,62,61,32,78,117,109,98,101,114,46,77,65,88,95,83,65,70,69,95,73,78,84,69,71,69,82,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,32,61,32,48,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,32,43,61,32,49,59,10,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,73,109,109,101,100,105,97,116,101,32,61,32,115,101,116,73,109,109,101,100,105,97,116,101,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,40,68,97,116,101,46,110,111,119,40,41,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,108,97,115,116,72,97,110,100,108,101,73,100,59,10,32,32,32,32,125,10,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,95,105,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,108,97,115,116,73,109,109,101,100,105,97,116,101,41,32,123,10,32,32,32,32,32,32,32,32,99,108,101,97,114,73,109,109,101,100,105,97,116,101,40,116,104,105,115,46,95,108,97,115,116,73,109,109,101,100,105,97,116,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,97,110,97,103,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,114,97,116,101,103,121,34,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,114,97,116,101,103,121,32,61,32,116,121,112,101,111,102,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,61,61,32,34,102,117,110,99,116,105,111,110,34,32,63,32,110,101,119,32,87,101,98,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,40,41,32,58,32,110,101,119,32,78,111,100,101,65,110,105,109,97,116,105,111,110,70,114,97,109,101,83,116,114,97,116,101,103,121,40,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,115,116,114,97,116,101,103,121,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,99,97,108,108,98,97,99,107,41,59,10,32,32,32,32,125,10,32,32,32,32,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,114,97,116,101,103,121,46,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,105,100,41,59,10,32,32,32,32,125,10,32,32,125,59,10,10,32,32,47,47,32,115,114,99,47,99,111,110,115,116,97,110,116,115,46,116,115,10,32,32,118,97,114,32,73,83,95,66,82,79,87,83,69,82,32,61,32,116,121,112,101,111,102,32,119,105,110,100,111,119,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,32,38,38,32,116,121,112,101,111,102,32,119,105,110,100,111,119,46,100,111,99,117,109,101,110,116,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,59,10,32,32,118,97,114,32,90,73,80,95,83,73,71,78,65,84,85,82,69,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,91,56,48,44,32,55,53,44,32,51,44,32,52,93,41,59,10,32,32,118,97,114,32,76,79,84,84,73,69,95,74,83,79,78,95,77,65,78,68,65,84,79,82,89,95,70,73,69,76,68,83,32,61,32,91,34,118,34,44,32,34,105,112,34,44,32,34,111,112,34,44,32,34,108,97,121,101,114,115,34,44,32,34,102,114,34,44,32,34,119,34,44,32,34,104,34,93,59,10,32,32,118,97,114,32,80,65,67,75,65,71,69,95,86,69,82,83,73,79,78,32,61,32,34,48,46,54,51,46,48,34,59,10,32,32,118,97,114,32,80,65,67,75,65,71,69,95,78,65,77,69,32,61,32,34,64,108,111,116,116,105,101,102,105,108,101,115,47,100,111,116,108,111,116,116,105,101,45,119,101,98,34,59,10,32,32,118,97,114,32,68,69,70,65,85,76,84,95,68,80,82,95,70,65,67,84,79,82,32,61,32,48,46,55,53,59,10,32,32,118,97,114,32,66,89,84,69,83,95,80,69,82,95,80,73,88,69,76,32,61,32,52,59,10,10,32,32,47,47,32,115,114,99,47,99,111,114,101,47,100,111,116,108,111,116,116,105,101,45,112,108,97,121,101,114,46,106,115,10,32,32,118,97,114,32,99,114,101,97,116,101,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,77,111,100,117,108,101,32,61,32,40,40,41,32,61,62,32,123,10,32,32,32,32,118,97,114,32,95,115,99,114,105,112,116,78,97,109,101,32,61,32,116,121,112,101,111,102,32,100,111,99,117,109,101,110,116,32,33,61,32,34,117,110,100,101,102,105,110,101,100,34,32,63,32,100,111,99,117,109,101,110,116,46,99,117,114,114,101,110,116,83,99,114,105,112,116,63,46,115,114,99,32,58,32,118,111,105,100,32,48,59,10,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,116,105,111,110,40,109,111,100,117,108,101,65,114,103,32,61,32,123,125,41,32,123,10,32,32,32,32,32,32,118,97,114,32,109,111,100,117,108,101,82,116,110,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,101,44,32,114,44,32,116,50,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,114,32,61,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,114,41,41,32,105,110,32,101,32,63,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,101,44,32,114,44,32,123,32,118,97,108,117,101,58,32,116,50,44,32,101,110,117,109,101,114,97,98,108,101,58,32,116,114,117,101,44,32,99,111,110,102,105,103,117,114,97,98,108,101,58,32,116,114,117,101,44,32,119,114,105,116,97,98,108,101,58,32,116,114,117,101,32,125,41,32,58,32,101,91,114,93,32,61,32,116,50,44,32,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,95,116,111,80,114,111,112,101,114,116,121,75,101,121,40,116,50,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,105,32,61,32,95,116,111,80,114,105,109,105,116,105,118,101,40,116,50,44,32,34,115,116,114,105,110,103,34,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,115,121,109,98,111,108,34,32,61,61,32,116,121,112,101,111,102,32,105,32,63,32,105,32,58,32,105,32,43,32,34,34,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,95,116,111,80,114,105,109,105,116,105,118,101,40,116,50,44,32,114,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,34,111,98,106,101,99,116,34,32,33,61,32,116,121,112,101,111,102,32,116,50,32,124,124,32,33,116,50,41,32,114,101,116,117,114,110,32,116,50,59,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,116,50,91,83,121,109,98,111,108,46,116,111,80,114,105,109,105,116,105,118,101,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,33,61,61,32,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,105,32,61,32,101,46,99,97,108,108,40,116,50,44,32,114,32,124,124,32,34,100,101,102,97,117,108,116,34,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,34,111,98,106,101,99,116,34,32,33,61,32,116,121,112,101,111,102,32,105,41,32,114,101,116,117,114,110,32,105,59,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,34,64,64,116,111,80,114,105,109,105,116,105,118,101,32,109,117,115,116,32,114,101,116,117,114,110,32,97,32,112,114,105,109,105,116,105,118,101,32,118,97,108,117,101,46,34,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,34,115,116,114,105,110,103,34,32,61,61,61,32,114,32,63,32,83,116,114,105,110,103,32,58,32,78,117,109,98,101,114,41,40,116,50,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,104,32,61,32,109,111,100,117,108,101,65,114,103,44,32,97,97,44,32,98,97,44,32,99,97,32,61,32,110,101,119,32,80,114,111,109,105,115,101,40,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,97,32,61,32,97,59,10,32,32,32,32,32,32,32,32,98,97,32,61,32,98,59,10,32,32,32,32,32,32,125,41,44,32,102,97,32,61,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,123,125,44,32,104,41,44,32,104,97,32,61,32,34,46,47,116,104,105,115,46,112,114,111,103,114,97,109,34,44,32,112,32,61,32,34,34,44,32,105,97,59,10,32,32,32,32,32,32,34,117,110,100,101,102,105,110,101,100,34,32,33,61,32,116,121,112,101,111,102,32,100,111,99,117,109,101,110,116,32,38,38,32,100,111,99,117,109,101,110,116,46,99,117,114,114,101,110,116,83,99,114,105,112,116,32,38,38,32,40,112,32,61,32,100,111,99,117,109,101,110,116,46,99,117,114,114,101,110,116,83,99,114,105,112,116,46,115,114,99,41,59,10,32,32,32,32,32,32,95,115,99,114,105,112,116,78,97,109,101,32,38,38,32,40,112,32,61,32,95,115,99,114,105,112,116,78,97,109,101,41,59,10,32,32,32,32,32,32,112,46,115,116,97,114,116,115,87,105,116,104,40,34,98,108,111,98,58,34,41,32,63,32,112,32,61,32,34,34,32,58,32,112,32,61,32,112,46,115,117,98,115,116,114,40,48,44,32,112,46,114,101,112,108,97,99,101,40,47,91,63,35,93,46,42,47,44,32,34,34,41,46,108,97,115,116,73,110,100,101,120,79,102,40,34,47,34,41,32,43,32,49,41,59,10,32,32,32,32,32,32,105,97,32,61,32,97,115,121,110,99,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,97,119,97,105,116,32,102,101,116,99,104,40,97,44,32,123,32,99,114,101,100,101,110,116,105,97,108,115,58,32,34,115,97,109,101,45,111,114,105,103,105,110,34,32,125,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,97,46,111,107,41,32,114,101,116,117,114,110,32,97,46,97,114,114,97,121,66,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,69,114,114,111,114,40,97,46,115,116,97,116,117,115,32,43,32,34,32,58,32,34,32,43,32,97,46,117,114,108,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,118,97,114,32,116,32,61,32,104,46,112,114,105,110,116,69,114,114,32,124,124,32,99,111,110,115,111,108,101,46,101,114,114,111,114,46,98,105,110,100,40,99,111,110,115,111,108,101,41,59,10,32,32,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,104,44,32,102,97,41,59,10,32,32,32,32,32,32,102,97,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,104,46,116,104,105,115,80,114,111,103,114,97,109,32,38,38,32,40,104,97,32,61,32,104,46,116,104,105,115,80,114,111,103,114,97,109,41,59,10,32,32,32,32,32,32,118,97,114,32,106,97,32,61,32,104,46,119,97,115,109,66,105,110,97,114,121,44,32,107,97,44,32,108,97,32,61,32,102,97,108,115,101,44,32,109,97,44,32,117,44,32,120,44,32,121,44,32,122,44,32,67,44,32,68,44,32,110,97,44,32,111,97,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,112,97,40,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,107,97,46,98,117,102,102,101,114,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,56,32,61,32,117,32,61,32,110,101,119,32,73,110,116,56,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,49,54,32,61,32,121,32,61,32,110,101,119,32,73,110,116,49,54,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,85,56,32,61,32,120,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,85,49,54,32,61,32,122,32,61,32,110,101,119,32,85,105,110,116,49,54,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,51,50,32,61,32,67,32,61,32,110,101,119,32,73,110,116,51,50,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,85,51,50,32,61,32,68,32,61,32,110,101,119,32,85,105,110,116,51,50,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,70,51,50,32,61,32,110,97,32,61,32,110,101,119,32,70,108,111,97,116,51,50,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,104,46,72,69,65,80,70,54,52,32,61,32,111,97,32,61,32,110,101,119,32,70,108,111,97,116,54,52,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,113,97,32,61,32,91,93,44,32,114,97,32,61,32,91,93,44,32,115,97,32,61,32,91,93,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,116,97,40,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,104,46,112,114,101,82,117,110,46,115,104,105,102,116,40,41,59,10,32,32,32,32,32,32,32,32,113,97,46,117,110,115,104,105,102,116,40,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,70,32,61,32,48,44,32,71,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,117,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,111,110,65,98,111,114,116,59,10,32,32,32,32,32,32,32,32,40,95,104,36,111,110,65,98,111,114,116,32,61,32,104,46,111,110,65,98,111,114,116,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,111,110,65,98,111,114,116,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,111,110,65,98,111,114,116,46,99,97,108,108,40,104,44,32,97,41,59,10,32,32,32,32,32,32,32,32,97,32,61,32,34,65,98,111,114,116,101,100,40,34,32,43,32,97,32,43,32,34,41,34,59,10,32,32,32,32,32,32,32,32,116,40,97,41,59,10,32,32,32,32,32,32,32,32,108,97,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,97,32,61,32,110,101,119,32,87,101,98,65,115,115,101,109,98,108,121,46,82,117,110,116,105,109,101,69,114,114,111,114,40,97,32,43,32,34,46,32,66,117,105,108,100,32,119,105,116,104,32,45,115,65,83,83,69,82,84,73,79,78,83,32,102,111,114,32,109,111,114,101,32,105,110,102,111,46,34,41,59,10,32,32,32,32,32,32,32,32,98,97,40,97,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,97,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,118,97,32,61,32,40,97,41,32,61,62,32,97,46,115,116,97,114,116,115,87,105,116,104,40,34,100,97,116,97,58,97,112,112,108,105,99,97,116,105,111,110,47,111,99,116,101,116,45,115,116,114,101,97,109,59,98,97,115,101,54,52,44,34,41,44,32,119,97,59,10,32,32,32,32,32,32,97,115,121,110,99,32,102,117,110,99,116,105,111,110,32,120,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,106,97,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,97,119,97,105,116,32,105,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,123,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,97,32,61,61,32,119,97,32,38,38,32,106,97,41,32,97,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,106,97,41,59,10,32,32,32,32,32,32,32,32,101,108,115,101,32,116,104,114,111,119,32,34,98,111,116,104,32,97,115,121,110,99,32,97,110,100,32,115,121,110,99,32,102,101,116,99,104,105,110,103,32,111,102,32,116,104,101,32,119,97,115,109,32,102,97,105,108,101,100,34,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,97,115,121,110,99,32,102,117,110,99,116,105,111,110,32,121,97,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,119,97,105,116,32,120,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,119,97,105,116,32,87,101,98,65,115,115,101,109,98,108,121,46,105,110,115,116,97,110,116,105,97,116,101,40,99,44,32,98,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,40,96,102,97,105,108,101,100,32,116,111,32,97,115,121,110,99,104,114,111,110,111,117,115,108,121,32,112,114,101,112,97,114,101,32,119,97,115,109,58,32,36,123,100,125,96,41,44,32,117,97,40,100,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,97,115,121,110,99,32,102,117,110,99,116,105,111,110,32,122,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,119,97,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,106,97,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,87,101,98,65,115,115,101,109,98,108,121,46,105,110,115,116,97,110,116,105,97,116,101,83,116,114,101,97,109,105,110,103,32,38,38,32,33,118,97,40,98,41,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,102,101,116,99,104,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,102,101,116,99,104,40,98,44,32,123,32,99,114,101,100,101,110,116,105,97,108,115,58,32,34,115,97,109,101,45,111,114,105,103,105,110,34,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,119,97,105,116,32,87,101,98,65,115,115,101,109,98,108,121,46,105,110,115,116,97,110,116,105,97,116,101,83,116,114,101,97,109,105,110,103,40,99,44,32,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,40,96,119,97,115,109,32,115,116,114,101,97,109,105,110,103,32,99,111,109,112,105,108,101,32,102,97,105,108,101,100,58,32,36,123,100,125,96,41,44,32,116,40,34,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,65,114,114,97,121,66,117,102,102,101,114,32,105,110,115,116,97,110,116,105,97,116,105,111,110,34,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,121,97,40,98,44,32,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,108,97,115,115,32,65,97,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,95,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,116,104,105,115,44,32,34,110,97,109,101,34,44,32,34,69,120,105,116,83,116,97,116,117,115,34,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,96,80,114,111,103,114,97,109,32,116,101,114,109,105,110,97,116,101,100,32,119,105,116,104,32,101,120,105,116,40,36,123,97,125,41,96,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,117,115,32,61,32,97,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,66,97,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,48,32,60,32,97,46,108,101,110,103,116,104,59,32,41,32,97,46,115,104,105,102,116,40,41,40,104,41,59,10,32,32,32,32,32,32,125,44,32,67,97,32,61,32,104,46,110,111,69,120,105,116,82,117,110,116,105,109,101,32,124,124,32,116,114,117,101,44,32,68,97,32,61,32,34,117,110,100,101,102,105,110,101,100,34,32,33,61,32,116,121,112,101,111,102,32,84,101,120,116,68,101,99,111,100,101,114,32,63,32,110,101,119,32,84,101,120,116,68,101,99,111,100,101,114,40,41,32,58,32,118,111,105,100,32,48,44,32,69,97,32,61,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,97,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,48,32,38,38,32,97,114,103,117,109,101,110,116,115,91,48,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,48,93,32,58,32,48,59,10,32,32,32,32,32,32,32,32,108,101,116,32,98,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,49,32,38,38,32,97,114,103,117,109,101,110,116,115,91,49,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,49,93,32,58,32,78,97,78,59,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,120,44,32,100,32,61,32,97,32,43,32,98,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,98,32,61,32,97,59,32,99,91,98,93,32,38,38,32,33,40,98,32,62,61,32,100,41,59,32,41,32,43,43,98,59,10,32,32,32,32,32,32,32,32,105,102,32,40,49,54,32,60,32,98,32,45,32,97,32,38,38,32,99,46,98,117,102,102,101,114,32,38,38,32,68,97,41,32,114,101,116,117,114,110,32,68,97,46,100,101,99,111,100,101,40,99,46,115,117,98,97,114,114,97,121,40,97,44,32,98,41,41,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,100,32,61,32,34,34,59,32,97,32,60,32,98,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,99,91,97,43,43,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,32,38,32,49,50,56,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,99,91,97,43,43,93,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,49,57,50,32,61,61,32,40,101,32,38,32,50,50,52,41,41,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,40,101,32,38,32,51,49,41,32,60,60,32,54,32,124,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,99,91,97,43,43,93,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,50,50,52,32,61,61,32,40,101,32,38,32,50,52,48,41,32,63,32,40,101,32,38,32,49,53,41,32,60,60,32,49,50,32,124,32,102,32,60,60,32,54,32,124,32,107,32,58,32,40,101,32,38,32,55,41,32,60,60,32,49,56,32,124,32,102,32,60,60,32,49,50,32,124,32,107,32,60,60,32,54,32,124,32,99,91,97,43,43,93,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,54,53,53,51,54,32,62,32,101,32,63,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,32,58,32,40,101,32,45,61,32,54,53,53,51,54,44,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,53,53,50,57,54,32,124,32,101,32,62,62,32,49,48,44,32,53,54,51,50,48,32,124,32,101,32,38,32,49,48,50,51,41,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,99,108,97,115,115,32,70,97,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,67,97,32,61,32,97,32,45,32,50,52,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,71,97,32,61,32,48,44,32,72,97,32,61,32,48,44,32,72,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,120,59,10,32,32,32,32,32,32,32,32,105,102,32,40,48,32,60,32,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,98,32,43,32,99,32,45,32,49,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,101,32,61,32,48,59,32,101,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,53,53,50,57,54,32,60,61,32,102,32,38,38,32,53,55,51,52,51,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,43,43,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,32,61,32,54,53,53,51,54,32,43,32,40,40,102,32,38,32,49,48,50,51,41,32,60,60,32,49,48,41,32,124,32,107,32,38,32,49,48,50,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,49,50,55,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,102,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,48,52,55,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,49,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,57,50,32,124,32,102,32,62,62,32,54,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,54,53,53,51,53,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,50,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,50,50,52,32,124,32,102,32,62,62,32,49,50,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,51,32,62,61,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,50,52,48,32,124,32,102,32,62,62,32,49,56,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,50,56,32,124,32,102,32,62,62,32,49,50,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,50,56,32,124,32,102,32,62,62,32,54,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,91,98,43,43,93,32,61,32,49,50,56,32,124,32,102,32,38,32,54,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,100,91,98,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,73,97,32,61,32,123,125,44,32,74,97,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,97,46,108,101,110,103,116,104,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,97,46,112,111,112,40,41,59,10,32,32,32,32,32,32,32,32,32,32,97,46,112,111,112,40,41,40,98,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,73,40,97,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,68,91,97,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,74,32,61,32,123,125,44,32,75,32,61,32,123,125,44,32,75,97,32,61,32,123,125,44,32,76,44,32,78,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,40,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,103,32,61,32,99,40,103,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,46,108,101,110,103,116,104,32,33,61,61,32,97,46,108,101,110,103,116,104,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,77,105,115,109,97,116,99,104,101,100,32,116,121,112,101,32,99,111,110,118,101,114,116,101,114,32,99,111,117,110,116,34,41,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,108,32,61,32,48,59,32,108,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,108,41,32,77,40,97,91,108,93,44,32,103,91,108,93,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,97,46,102,111,114,69,97,99,104,40,40,103,41,32,61,62,32,75,97,91,103,93,32,61,32,98,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,65,114,114,97,121,40,98,46,108,101,110,103,116,104,41,44,32,102,32,61,32,91,93,44,32,107,32,61,32,48,59,10,32,32,32,32,32,32,32,32,98,46,102,111,114,69,97,99,104,40,40,103,44,32,108,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,75,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,103,41,32,63,32,101,91,108,93,32,61,32,75,91,103,93,32,58,32,40,102,46,112,117,115,104,40,103,41,44,32,74,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,103,41,32,124,124,32,40,74,91,103,93,32,61,32,91,93,41,44,32,74,91,103,93,46,112,117,115,104,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,101,91,108,93,32,61,32,75,91,103,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,43,43,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,61,61,32,102,46,108,101,110,103,116,104,32,38,38,32,100,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,41,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,48,32,61,61,61,32,102,46,108,101,110,103,116,104,32,38,38,32,100,40,101,41,59,10,32,32,32,32,32,32,125,44,32,76,97,44,32,79,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,98,32,61,32,34,34,59,32,120,91,97,93,59,32,41,32,98,32,43,61,32,76,97,91,120,91,97,43,43,93,93,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,80,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,77,97,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,99,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,50,32,38,38,32,97,114,103,117,109,101,110,116,115,91,50,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,50,93,32,58,32,123,125,59,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,46,110,97,109,101,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,116,121,112,101,32,34,36,123,100,125,34,32,109,117,115,116,32,104,97,118,101,32,97,32,112,111,115,105,116,105,118,101,32,105,110,116,101,103,101,114,32,116,121,112,101,105,100,32,112,111,105,110,116,101,114,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,75,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,46,104,98,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,116,121,112,101,32,39,36,123,100,125,39,32,116,119,105,99,101,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,75,91,97,93,32,61,32,98,59,10,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,75,97,91,97,93,59,10,32,32,32,32,32,32,32,32,74,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,32,38,38,32,40,98,32,61,32,74,91,97,93,44,32,100,101,108,101,116,101,32,74,91,97,93,44,32,98,46,102,111,114,69,97,99,104,40,40,101,41,32,61,62,32,101,40,41,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,77,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,99,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,50,32,38,38,32,97,114,103,117,109,101,110,116,115,91,50,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,50,93,32,58,32,123,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,77,97,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,79,97,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,97,46,65,97,46,68,97,46,66,97,46,110,97,109,101,32,43,32,34,32,105,110,115,116,97,110,99,101,32,97,108,114,101,97,100,121,32,100,101,108,101,116,101,100,34,41,59,10,32,32,32,32,32,32,125,44,32,80,97,32,61,32,102,97,108,115,101,44,32,81,97,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,125,44,32,82,97,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,98,32,61,61,61,32,99,41,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,99,46,71,97,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,97,32,61,32,82,97,40,97,44,32,98,44,32,99,46,71,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,32,61,61,61,32,97,32,63,32,110,117,108,108,32,58,32,99,46,36,97,40,97,41,59,10,32,32,32,32,32,32,125,44,32,83,97,32,61,32,123,125,44,32,84,97,32,61,32,123,125,44,32,85,97,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,98,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,112,116,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,117,110,100,101,102,105,110,101,100,34,41,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,97,46,71,97,59,32,41,32,98,32,61,32,97,46,81,97,40,98,41,44,32,97,32,61,32,97,46,71,97,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,84,97,91,98,93,59,10,32,32,32,32,32,32,125,44,32,86,97,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,68,97,32,124,124,32,33,98,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,109,97,107,101,67,108,97,115,115,72,97,110,100,108,101,32,114,101,113,117,105,114,101,115,32,112,116,114,32,97,110,100,32,112,116,114,84,121,112,101,34,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,33,98,46,72,97,32,33,61,61,32,33,33,98,46,70,97,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,66,111,116,104,32,115,109,97,114,116,80,116,114,84,121,112,101,32,97,110,100,32,115,109,97,114,116,80,116,114,32,109,117,115,116,32,98,101,32,115,112,101,99,105,102,105,101,100,34,41,59,10,32,32,32,32,32,32,32,32,98,46,99,111,117,110,116,32,61,32,123,32,118,97,108,117,101,58,32,49,32,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,81,40,79,98,106,101,99,116,46,99,114,101,97,116,101,40,97,44,32,123,32,65,97,58,32,123,32,118,97,108,117,101,58,32,98,44,32,119,114,105,116,97,98,108,101,58,32,116,114,117,101,32,125,32,125,41,41,59,10,32,32,32,32,32,32,125,44,32,81,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,34,117,110,100,101,102,105,110,101,100,34,32,61,61,61,32,116,121,112,101,111,102,32,70,105,110,97,108,105,122,97,116,105,111,110,82,101,103,105,115,116,114,121,41,32,114,101,116,117,114,110,32,81,32,61,32,40,98,41,32,61,62,32,98,44,32,97,59,10,32,32,32,32,32,32,32,32,80,97,32,61,32,110,101,119,32,70,105,110,97,108,105,122,97,116,105,111,110,82,101,103,105,115,116,114,121,40,40,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,98,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,45,45,98,46,99,111,117,110,116,46,118,97,108,117,101,59,10,32,32,32,32,32,32,32,32,32,32,48,32,61,61,61,32,98,46,99,111,117,110,116,46,118,97,108,117,101,32,38,38,32,40,98,46,70,97,32,63,32,98,46,72,97,46,75,97,40,98,46,70,97,41,32,58,32,98,46,68,97,46,66,97,46,75,97,40,98,46,67,97,41,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,81,32,61,32,40,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,98,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,99,46,70,97,32,38,38,32,80,97,46,114,101,103,105,115,116,101,114,40,98,44,32,123,32,65,97,58,32,99,32,125,44,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,81,97,32,61,32,40,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,80,97,46,117,110,114,101,103,105,115,116,101,114,40,98,41,59,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,81,40,97,41,59,10,32,32,32,32,32,32,125,44,32,87,97,32,61,32,91,93,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,88,97,40,41,32,123,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,89,97,32,61,32,40,97,44,32,98,41,32,61,62,32,79,98,106,101,99,116,46,100,101,102,105,110,101,80,114,111,112,101,114,116,121,40,98,44,32,34,110,97,109,101,34,44,32,123,32,118,97,108,117,101,58,32,97,32,125,41,44,32,90,97,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,97,91,98,93,46,69,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,97,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,32,61,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,101,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,41,44,32,95,107,101,121,32,61,32,48,59,32,95,107,101,121,32,60,32,95,108,101,110,59,32,95,107,101,121,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,91,95,107,101,121,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,97,91,98,93,46,69,97,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,101,46,108,101,110,103,116,104,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,70,117,110,99,116,105,111,110,32,39,36,123,99,125,39,32,99,97,108,108,101,100,32,119,105,116,104,32,97,110,32,105,110,118,97,108,105,100,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,40,36,123,101,46,108,101,110,103,116,104,125,41,32,45,32,101,120,112,101,99,116,115,32,111,110,101,32,111,102,32,40,36,123,97,91,98,93,46,69,97,125,41,33,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,91,98,93,46,69,97,91,101,46,108,101,110,103,116,104,93,46,97,112,112,108,121,40,116,104,105,115,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,46,69,97,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,46,69,97,91,100,46,78,97,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,36,97,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,104,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,99,32,124,124,32,118,111,105,100,32,48,32,33,61,61,32,104,91,97,93,46,69,97,32,38,38,32,118,111,105,100,32,48,32,33,61,61,32,104,91,97,93,46,69,97,91,99,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,112,117,98,108,105,99,32,110,97,109,101,32,39,36,123,97,125,39,32,116,119,105,99,101,96,41,59,10,32,32,32,32,32,32,32,32,32,32,90,97,40,104,44,32,97,44,32,97,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,104,91,97,93,46,69,97,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,99,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,109,117,108,116,105,112,108,101,32,111,118,101,114,108,111,97,100,115,32,111,102,32,97,32,102,117,110,99,116,105,111,110,32,119,105,116,104,32,116,104,101,32,115,97,109,101,32,110,117,109,98,101,114,32,111,102,32,97,114,103,117,109,101,110,116,115,32,40,36,123,99,125,41,33,96,41,59,10,32,32,32,32,32,32,32,32,32,32,104,91,97,93,46,69,97,91,99,93,32,61,32,98,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,104,91,97,93,32,61,32,98,44,32,104,91,97,93,46,78,97,32,61,32,99,59,10,32,32,32,32,32,32,125,44,32,97,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,97,46,114,101,112,108,97,99,101,40,47,91,94,97,45,122,65,45,90,48,45,57,95,93,47,103,44,32,34,36,34,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,48,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,52,56,32,60,61,32,98,32,38,38,32,53,55,32,62,61,32,98,32,63,32,96,95,36,123,97,125,96,32,58,32,97,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,98,98,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,97,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,99,111,110,115,116,114,117,99,116,111,114,32,61,32,98,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,77,97,32,61,32,99,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,75,97,32,61,32,100,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,71,97,32,61,32,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,98,98,32,61,32,102,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,81,97,32,61,32,107,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,36,97,32,61,32,103,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,106,98,32,61,32,91,93,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,99,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,98,32,33,61,61,32,99,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,81,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,69,120,112,101,99,116,101,100,32,110,117,108,108,32,111,114,32,105,110,115,116,97,110,99,101,32,111,102,32,36,123,99,46,110,97,109,101,125,44,32,103,111,116,32,97,110,32,105,110,115,116,97,110,99,101,32,111,102,32,36,123,98,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,98,46,81,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,98,46,71,97,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,98,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,84,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,110,117,108,108,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,34,36,123,101,98,40,98,41,125,34,32,97,115,32,97,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,100,101,108,101,116,101,100,32,111,98,106,101,99,116,32,97,115,32,97,32,112,111,105,110,116,101,114,32,111,102,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,98,40,98,46,65,97,46,67,97,44,32,98,46,65,97,46,68,97,46,66,97,44,32,116,104,105,115,46,66,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,102,98,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,84,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,110,117,108,108,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,83,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,116,104,105,115,46,85,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,97,32,38,38,32,97,46,112,117,115,104,40,116,104,105,115,46,75,97,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,32,124,124,32,33,98,46,65,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,34,36,123,101,98,40,98,41,125,34,32,97,115,32,97,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,100,101,108,101,116,101,100,32,111,98,106,101,99,116,32,97,115,32,97,32,112,111,105,110,116,101,114,32,111,102,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,82,97,32,38,38,32,98,46,65,97,46,68,97,46,82,97,41,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,96,67,97,110,110,111,116,32,99,111,110,118,101,114,116,32,97,114,103,117,109,101,110,116,32,111,102,32,116,121,112,101,32,36,123,98,46,65,97,46,72,97,32,63,32,98,46,65,97,46,72,97,46,110,97,109,101,32,58,32,98,46,65,97,46,68,97,46,110,97,109,101,125,32,116,111,32,112,97,114,97,109,101,116,101,114,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,99,32,61,32,99,98,40,98,46,65,97,46,67,97,44,32,98,46,65,97,46,68,97,46,66,97,44,32,116,104,105,115,46,66,97,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,83,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,98,46,65,97,46,70,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,80,97,115,115,105,110,103,32,114,97,119,32,112,111,105,110,116,101,114,32,116,111,32,115,109,97,114,116,32,112,111,105,110,116,101,114,32,105,115,32,105,108,108,101,103,97,108,34,41,59,10,32,32,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,116,104,105,115,46,111,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,46,65,97,46,72,97,32,61,61,61,32,116,104,105,115,41,32,99,32,61,32,98,46,65,97,46,70,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,67,97,110,110,111,116,32,99,111,110,118,101,114,116,32,97,114,103,117,109,101,110,116,32,111,102,32,116,121,112,101,32,36,123,98,46,65,97,46,72,97,32,63,32,98,46,65,97,46,72,97,46,110,97,109,101,32,58,32,98,46,65,97,46,68,97,46,110,97,109,101,125,32,116,111,32,112,97,114,97,109,101,116,101,114,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,32,61,32,98,46,65,97,46,70,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,50,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,46,65,97,46,72,97,32,61,61,61,32,116,104,105,115,41,32,99,32,61,32,98,46,65,97,46,70,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,46,99,108,111,110,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,32,61,32,116,104,105,115,46,107,98,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,98,40,40,41,32,61,62,32,100,91,34,100,101,108,101,116,101,34,93,40,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,97,32,38,38,32,97,46,112,117,115,104,40,116,104,105,115,46,75,97,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,34,85,110,115,117,112,112,111,114,116,105,110,103,32,115,104,97,114,105,110,103,32,112,111,108,105,99,121,34,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,104,98,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,84,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,110,117,108,108,32,105,115,32,110,111,116,32,97,32,118,97,108,105,100,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,34,36,123,101,98,40,98,41,125,34,32,97,115,32,97,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,98,46,65,97,46,67,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,100,101,108,101,116,101,100,32,111,98,106,101,99,116,32,97,115,32,97,32,112,111,105,110,116,101,114,32,111,102,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,98,46,65,97,46,68,97,46,82,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,99,111,110,118,101,114,116,32,97,114,103,117,109,101,110,116,32,111,102,32,116,121,112,101,32,36,123,98,46,65,97,46,68,97,46,110,97,109,101,125,32,116,111,32,112,97,114,97,109,101,116,101,114,32,116,121,112,101,32,36,123,116,104,105,115,46,110,97,109,101,125,96,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,98,40,98,46,65,97,46,67,97,44,32,98,46,65,97,46,68,97,46,66,97,44,32,116,104,105,115,46,66,97,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,105,98,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,44,32,109,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,97,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,66,97,32,61,32,98,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,84,97,32,61,32,99,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,82,97,32,61,32,100,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,83,97,32,61,32,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,105,98,32,61,32,102,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,111,98,32,61,32,107,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,89,97,32,61,32,103,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,85,97,32,61,32,108,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,107,98,32,61,32,110,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,75,97,32,61,32,109,59,10,32,32,32,32,32,32,32,32,101,32,124,124,32,118,111,105,100,32,48,32,33,61,61,32,98,46,71,97,32,63,32,116,104,105,115,46,116,111,87,105,114,101,84,121,112,101,32,61,32,102,98,32,58,32,40,116,104,105,115,46,116,111,87,105,114,101,84,121,112,101,32,61,32,100,32,63,32,100,98,32,58,32,104,98,44,32,116,104,105,115,46,74,97,32,61,32,110,117,108,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,106,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,104,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,40,97,41,41,32,116,104,114,111,119,32,110,101,119,32,76,40,34,82,101,112,108,97,99,105,110,103,32,110,111,110,101,120,105,115,116,101,110,116,32,112,117,98,108,105,99,32,115,121,109,98,111,108,34,41,59,10,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,33,61,61,32,104,91,97,93,46,69,97,32,38,38,32,118,111,105,100,32,48,32,33,61,61,32,99,32,63,32,104,91,97,93,46,69,97,91,99,93,32,61,32,98,32,58,32,40,104,91,97,93,32,61,32,98,44,32,104,91,97,93,46,78,97,32,61,32,99,41,59,10,32,32,32,32,32,32,125,44,32,82,44,32,107,98,32,61,32,102,117,110,99,116,105,111,110,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,99,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,62,32,50,32,38,38,32,97,114,103,117,109,101,110,116,115,91,50,93,32,33,61,61,32,118,111,105,100,32,48,32,63,32,97,114,103,117,109,101,110,116,115,91,50,93,32,58,32,91,93,59,10,32,32,32,32,32,32,32,32,97,46,105,110,99,108,117,100,101,115,40,34,106,34,41,32,63,32,40,97,32,61,32,97,46,114,101,112,108,97,99,101,40,47,112,47,103,44,32,34,105,34,41,44,32,98,32,61,32,40,48,44,32,104,91,34,100,121,110,67,97,108,108,95,34,32,43,32,97,93,41,40,98,44,32,46,46,46,99,41,41,32,58,32,98,32,61,32,82,46,103,101,116,40,98,41,40,46,46,46,99,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,108,98,32,61,32,40,97,44,32,98,41,32,61,62,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,50,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,99,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,50,41,44,32,95,107,101,121,50,32,61,32,48,59,32,95,107,101,121,50,32,60,32,95,108,101,110,50,59,32,95,107,101,121,50,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,91,95,107,101,121,50,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,50,93,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,107,98,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,125,44,32,83,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,79,40,97,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,46,105,110,99,108,117,100,101,115,40,34,106,34,41,32,63,32,108,98,40,97,44,32,98,41,32,58,32,82,46,103,101,116,40,98,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,34,102,117,110,99,116,105,111,110,34,32,33,61,32,116,121,112,101,111,102,32,99,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,117,110,107,110,111,119,110,32,102,117,110,99,116,105,111,110,32,112,111,105,110,116,101,114,32,119,105,116,104,32,115,105,103,110,97,116,117,114,101,32,36,123,97,125,58,32,36,123,98,125,96,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,109,98,44,32,111,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,110,98,40,97,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,79,40,97,41,59,10,32,32,32,32,32,32,32,32,84,40,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,112,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,99,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,101,91,102,93,32,124,124,32,75,91,102,93,32,124,124,32,40,75,97,91,102,93,32,63,32,75,97,91,102,93,46,102,111,114,69,97,99,104,40,99,41,32,58,32,40,100,46,112,117,115,104,40,102,41,44,32,101,91,102,93,32,61,32,116,114,117,101,41,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,91,93,44,32,101,32,61,32,123,125,59,10,32,32,32,32,32,32,32,32,98,46,102,111,114,69,97,99,104,40,99,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,109,98,40,96,36,123,97,125,58,32,96,32,43,32,100,46,109,97,112,40,111,98,41,46,106,111,105,110,40,91,34,44,32,34,93,41,41,59,10,32,32,32,32,32,32,125,44,32,113,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,91,93,44,32,100,32,61,32,48,59,32,100,32,60,32,97,59,32,100,43,43,41,32,99,46,112,117,115,104,40,68,91,98,32,43,32,52,32,42,32,100,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,114,98,40,97,41,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,98,32,61,32,49,59,32,98,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,98,41,32,105,102,32,40,110,117,108,108,32,33,61,61,32,97,91,98,93,32,38,38,32,118,111,105,100,32,48,32,61,61,61,32,97,91,98,93,46,74,97,41,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,115,98,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,98,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,105,102,32,40,50,32,62,32,102,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,97,114,103,84,121,112,101,115,32,97,114,114,97,121,32,115,105,122,101,32,109,105,115,109,97,116,99,104,33,32,77,117,115,116,32,97,116,32,108,101,97,115,116,32,103,101,116,32,114,101,116,117,114,110,32,118,97,108,117,101,32,97,110,100,32,39,116,104,105,115,39,32,116,121,112,101,115,33,34,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,110,117,108,108,32,33,61,61,32,98,91,49,93,32,38,38,32,110,117,108,108,32,33,61,61,32,99,44,32,103,32,61,32,114,98,40,98,41,44,32,108,32,61,32,34,118,111,105,100,34,32,33,61,61,32,98,91,48,93,46,110,97,109,101,44,32,110,32,61,32,102,32,45,32,50,44,32,109,32,61,32,65,114,114,97,121,40,110,41,44,32,113,32,61,32,91,93,44,32,114,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,89,97,40,97,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,51,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,65,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,51,41,44,32,95,107,101,121,51,32,61,32,48,59,32,95,107,101,121,51,32,60,32,95,108,101,110,51,59,32,95,107,101,121,51,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,65,91,95,107,101,121,51,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,51,93,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,46,108,101,110,103,116,104,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,113,46,108,101,110,103,116,104,32,61,32,107,32,63,32,50,32,58,32,49,59,10,32,32,32,32,32,32,32,32,32,32,113,91,48,93,32,61,32,101,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,118,32,61,32,98,91,49,93,46,116,111,87,105,114,101,84,121,112,101,40,114,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,113,91,49,93,32,61,32,118,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,119,32,61,32,48,59,32,119,32,60,32,110,59,32,43,43,119,41,32,109,91,119,93,32,61,32,98,91,119,32,43,32,50,93,46,116,111,87,105,114,101,84,121,112,101,40,114,44,32,65,91,119,93,41,44,32,113,46,112,117,115,104,40,109,91,119,93,41,59,10,32,32,32,32,32,32,32,32,32,32,65,32,61,32,100,40,46,46,46,113,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,41,32,74,97,40,114,41,59,10,32,32,32,32,32,32,32,32,32,32,101,108,115,101,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,119,32,61,32,107,32,63,32,49,32,58,32,50,59,32,119,32,60,32,98,46,108,101,110,103,116,104,59,32,119,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,69,32,61,32,49,32,61,61,61,32,119,32,63,32,118,32,58,32,109,91,119,32,45,32,50,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,98,91,119,93,46,74,97,32,38,38,32,98,91,119,93,46,74,97,40,69,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,32,61,32,108,32,63,32,98,91,48,93,46,102,114,111,109,87,105,114,101,84,121,112,101,40,65,41,32,58,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,116,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,97,32,61,32,97,46,116,114,105,109,40,41,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,32,61,32,97,46,105,110,100,101,120,79,102,40,34,40,34,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,45,49,32,33,61,61,32,98,32,63,32,97,46,115,117,98,115,116,114,40,48,44,32,98,41,32,58,32,97,59,10,32,32,32,32,32,32,125,44,32,118,98,32,61,32,91,93,44,32,85,32,61,32,91,93,44,32,119,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,57,32,60,32,97,32,38,38,32,48,32,61,61,61,32,45,45,85,91,97,32,43,32,49,93,32,38,38,32,40,85,91,97,93,32,61,32,118,111,105,100,32,48,44,32,118,98,46,112,117,115,104,40,97,41,41,59,10,32,32,32,32,32,32,125,44,32,86,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,67,97,110,110,111,116,32,117,115,101,32,100,101,108,101,116,101,100,32,118,97,108,46,32,104,97,110,100,108,101,32,61,32,34,32,43,32,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,85,91,97,93,59,10,32,32,32,32,32,32,125,44,32,103,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,118,111,105,100,32,48,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,50,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,110,117,108,108,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,52,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,116,114,117,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,54,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,102,97,108,115,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,56,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,32,61,32,118,98,46,112,111,112,40,41,32,124,124,32,85,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,32,32,85,91,98,93,32,61,32,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,85,91,98,32,43,32,49,93,32,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,120,98,32,61,32,123,10,32,32,32,32,32,32,32,32,110,97,109,101,58,32,34,101,109,115,99,114,105,112,116,101,110,58,58,118,97,108,34,44,10,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,119,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,97,44,32,98,41,32,61,62,32,103,98,40,98,41,44,10,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,125,44,32,121,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,117,91,100,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,120,91,100,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,50,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,121,91,100,32,62,62,32,49,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,122,91,100,32,62,62,32,49,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,52,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,67,91,100,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,68,91,100,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,105,110,116,101,103,101,114,32,119,105,100,116,104,32,40,36,123,98,125,41,58,32,36,123,97,125,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,122,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,75,91,97,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,99,41,32,116,104,114,111,119,32,97,32,61,32,96,36,123,98,125,32,104,97,115,32,117,110,107,110,111,119,110,32,116,121,112,101,32,36,123,111,98,40,97,41,125,96,44,32,110,101,119,32,80,40,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,101,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,110,117,108,108,32,61,61,61,32,97,41,32,114,101,116,117,114,110,32,34,110,117,108,108,34,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,116,121,112,101,111,102,32,97,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,111,98,106,101,99,116,34,32,61,61,61,32,98,32,124,124,32,34,97,114,114,97,121,34,32,61,61,61,32,98,32,124,124,32,34,102,117,110,99,116,105,111,110,34,32,61,61,61,32,98,32,63,32,97,46,116,111,83,116,114,105,110,103,40,41,32,58,32,34,34,32,43,32,97,59,10,32,32,32,32,32,32,125,44,32,65,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,52,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,116,105,111,110,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,110,97,91,99,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,56,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,117,110,99,116,105,111,110,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,111,97,91,99,32,62,62,32,51,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,102,108,111,97,116,32,119,105,100,116,104,32,40,36,123,98,125,41,58,32,36,123,97,125,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,66,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,49,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,40,100,41,32,61,62,32,117,91,100,93,32,58,32,40,100,41,32,61,62,32,120,91,100,93,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,50,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,40,100,41,32,61,62,32,121,91,100,32,62,62,32,49,93,32,58,32,40,100,41,32,61,62,32,122,91,100,32,62,62,32,49,93,59,10,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,52,58,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,32,63,32,40,100,41,32,61,62,32,67,91,100,32,62,62,32,50,93,32,58,32,40,100,41,32,61,62,32,68,91,100,32,62,62,32,50,93,59,10,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,105,110,118,97,108,105,100,32,105,110,116,101,103,101,114,32,119,105,100,116,104,32,40,36,123,98,125,41,58,32,36,123,97,125,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,67,98,32,61,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,123,32,111,112,116,105,111,110,97,108,58,32,116,114,117,101,32,125,44,32,120,98,41,44,32,68,98,32,61,32,34,117,110,100,101,102,105,110,101,100,34,32,33,61,32,116,121,112,101,111,102,32,84,101,120,116,68,101,99,111,100,101,114,32,63,32,110,101,119,32,84,101,120,116,68,101,99,111,100,101,114,40,34,117,116,102,45,49,54,108,101,34,41,32,58,32,118,111,105,100,32,48,44,32,69,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,32,62,62,32,49,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,100,32,61,32,99,32,43,32,98,32,47,32,50,59,32,33,40,99,32,62,61,32,100,41,32,38,38,32,122,91,99,93,59,32,41,32,43,43,99,59,10,32,32,32,32,32,32,32,32,99,32,60,60,61,32,49,59,10,32,32,32,32,32,32,32,32,105,102,32,40,51,50,32,60,32,99,32,45,32,97,32,38,38,32,68,98,41,32,114,101,116,117,114,110,32,68,98,46,100,101,99,111,100,101,40,120,46,115,117,98,97,114,114,97,121,40,97,44,32,99,41,41,59,10,32,32,32,32,32,32,32,32,99,32,61,32,34,34,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,100,32,61,32,48,59,32,33,40,100,32,62,61,32,98,32,47,32,50,41,59,32,43,43,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,121,91,97,32,43,32,50,32,42,32,100,32,62,62,32,49,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,32,101,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,99,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,70,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,99,59,10,32,32,32,32,32,32,32,32,40,95,99,32,61,32,99,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,99,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,99,32,58,32,99,32,61,32,50,49,52,55,52,56,51,54,52,55,59,10,32,32,32,32,32,32,32,32,105,102,32,40,50,32,62,32,99,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,99,32,45,61,32,50,59,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,59,10,32,32,32,32,32,32,32,32,99,32,61,32,99,32,60,32,50,32,42,32,97,46,108,101,110,103,116,104,32,63,32,99,32,47,32,50,32,58,32,97,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,101,32,61,32,48,59,32,101,32,60,32,99,59,32,43,43,101,41,32,121,91,98,32,62,62,32,49,93,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,101,41,44,32,98,32,43,61,32,50,59,10,32,32,32,32,32,32,32,32,121,91,98,32,62,62,32,49,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,32,45,32,100,59,10,32,32,32,32,32,32,125,44,32,71,98,32,61,32,40,97,41,32,61,62,32,50,32,42,32,97,46,108,101,110,103,116,104,44,32,72,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,48,44,32,100,32,61,32,34,34,59,32,33,40,99,32,62,61,32,98,32,47,32,52,41,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,67,91,97,32,43,32,52,32,42,32,99,32,62,62,32,50,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,32,101,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,43,43,99,59,10,32,32,32,32,32,32,32,32,32,32,54,53,53,51,54,32,60,61,32,101,32,63,32,40,101,32,45,61,32,54,53,53,51,54,44,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,53,53,50,57,54,32,124,32,101,32,62,62,32,49,48,44,32,53,54,51,50,48,32,124,32,101,32,38,32,49,48,50,51,41,41,32,58,32,100,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,59,10,32,32,32,32,32,32,125,44,32,73,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,99,50,59,10,32,32,32,32,32,32,32,32,40,95,99,50,32,61,32,99,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,99,50,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,99,50,32,58,32,99,32,61,32,50,49,52,55,52,56,51,54,52,55,59,10,32,32,32,32,32,32,32,32,105,102,32,40,52,32,62,32,99,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,59,10,32,32,32,32,32,32,32,32,99,32,61,32,100,32,43,32,99,32,45,32,52,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,101,32,61,32,48,59,32,101,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,53,53,50,57,54,32,60,61,32,102,32,38,38,32,53,55,51,52,51,32,62,61,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,43,43,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,102,32,61,32,54,53,53,51,54,32,43,32,40,40,102,32,38,32,49,48,50,51,41,32,60,60,32,49,48,41,32,124,32,107,32,38,32,49,48,50,51,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,67,91,98,32,62,62,32,50,93,32,61,32,102,59,10,32,32,32,32,32,32,32,32,32,32,98,32,43,61,32,52,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,98,32,43,32,52,32,62,32,99,41,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,67,91,98,32,62,62,32,50,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,32,45,32,100,59,10,32,32,32,32,32,32,125,44,32,74,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,98,32,61,32,48,44,32,99,32,61,32,48,59,32,99,32,60,32,97,46,108,101,110,103,116,104,59,32,43,43,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,97,46,99,104,97,114,67,111,100,101,65,116,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,53,53,50,57,54,32,60,61,32,100,32,38,38,32,53,55,51,52,51,32,62,61,32,100,32,38,38,32,43,43,99,59,10,32,32,32,32,32,32,32,32,32,32,98,32,43,61,32,52,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,75,98,32,61,32,48,44,32,76,98,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,97,32,61,32,97,46,116,111,87,105,114,101,84,121,112,101,40,100,44,32,99,41,59,10,32,32,32,32,32,32,32,32,100,46,108,101,110,103,116,104,32,38,38,32,40,68,91,98,32,62,62,32,50,93,32,61,32,103,98,40,100,41,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,125,44,32,77,98,32,61,32,91,93,44,32,78,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,77,98,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,77,98,46,112,117,115,104,40,97,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,59,10,32,32,32,32,32,32,125,44,32,79,98,32,61,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,65,114,114,97,121,40,97,41,44,32,100,32,61,32,48,59,32,100,32,60,32,97,59,32,43,43,100,41,32,99,91,100,93,32,61,32,122,98,40,68,91,98,32,43,32,52,32,42,32,100,32,62,62,32,50,93,44,32,34,112,97,114,97,109,101,116,101,114,32,34,32,43,32,100,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,44,32,80,98,32,61,32,82,101,102,108,101,99,116,46,99,111,110,115,116,114,117,99,116,44,32,81,98,32,61,32,123,125,44,32,82,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,40,97,32,105,110,115,116,97,110,99,101,111,102,32,65,97,32,124,124,32,34,117,110,119,105,110,100,34,32,61,61,32,97,41,41,32,116,104,114,111,119,32,97,59,10,32,32,32,32,32,32,125,44,32,83,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,111,110,69,120,105,116,59,10,32,32,32,32,32,32,32,32,109,97,32,61,32,97,59,10,32,32,32,32,32,32,32,32,67,97,32,124,124,32,48,32,60,32,75,98,32,124,124,32,40,40,95,104,36,111,110,69,120,105,116,32,61,32,104,46,111,110,69,120,105,116,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,104,36,111,110,69,120,105,116,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,95,104,36,111,110,69,120,105,116,46,99,97,108,108,40,104,44,32,97,41,44,32,108,97,32,61,32,116,114,117,101,41,59,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,65,97,40,97,41,59,10,32,32,32,32,32,32,125,44,32,84,98,32,61,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,108,97,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,97,40,41,44,32,33,40,67,97,32,124,124,32,48,32,60,32,75,98,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,97,32,61,32,97,32,61,32,109,97,44,32,83,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,82,98,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,82,98,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,85,98,32,61,32,123,125,44,32,87,98,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,86,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,85,83,69,82,58,32,34,119,101,98,95,117,115,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,76,79,71,78,65,77,69,58,32,34,119,101,98,95,117,115,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,80,65,84,72,58,32,34,47,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,80,87,68,58,32,34,47,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,72,79,77,69,58,32,34,47,104,111,109,101,47,119,101,98,95,117,115,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,76,65,78,71,58,32,40,34,111,98,106,101,99,116,34,32,61,61,32,116,121,112,101,111,102,32,110,97,118,105,103,97,116,111,114,32,38,38,32,110,97,118,105,103,97,116,111,114,46,108,97,110,103,117,97,103,101,115,32,38,38,32,110,97,118,105,103,97,116,111,114,46,108,97,110,103,117,97,103,101,115,91,48,93,32,124,124,32,34,67,34,41,46,114,101,112,108,97,99,101,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,45,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,95,34,10,32,32,32,32,32,32,32,32,32,32,32,32,41,32,43,32,34,46,85,84,70,45,56,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,95,58,32,104,97,32,124,124,32,34,46,47,116,104,105,115,46,112,114,111,103,114,97,109,34,10,32,32,32,32,32,32,32,32,32,32,125,44,32,98,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,98,32,105,110,32,85,98,41,32,118,111,105,100,32,48,32,61,61,61,32,85,98,91,98,93,32,63,32,100,101,108,101,116,101,32,97,91,98,93,32,58,32,97,91,98,93,32,61,32,85,98,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,98,32,105,110,32,97,41,32,99,46,112,117,115,104,40,96,36,123,98,125,61,36,123,97,91,98,93,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,86,98,32,61,32,99,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,86,98,59,10,32,32,32,32,32,32,125,44,32,86,98,44,32,88,98,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,34,111,98,106,101,99,116,34,32,61,61,32,116,121,112,101,111,102,32,99,114,121,112,116,111,32,38,38,32,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,99,114,121,112,116,111,46,103,101,116,82,97,110,100,111,109,86,97,108,117,101,115,41,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,40,97,41,32,61,62,32,99,114,121,112,116,111,46,103,101,116,82,97,110,100,111,109,86,97,108,117,101,115,40,97,41,59,10,32,32,32,32,32,32,32,32,117,97,40,34,105,110,105,116,82,97,110,100,111,109,68,101,118,105,99,101,34,41,59,10,32,32,32,32,32,32,125,44,32,89,98,32,61,32,40,97,41,32,61,62,32,40,89,98,32,61,32,88,98,40,41,41,40,97,41,59,10,32,32,32,32,32,32,76,32,61,32,104,46,73,110,116,101,114,110,97,108,69,114,114,111,114,32,61,32,99,108,97,115,115,32,101,120,116,101,110,100,115,32,69,114,114,111,114,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,34,73,110,116,101,114,110,97,108,69,114,114,111,114,34,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,90,98,32,61,32,65,114,114,97,121,40,50,53,54,41,44,32,36,98,32,61,32,48,59,32,50,53,54,32,62,32,36,98,59,32,43,43,36,98,41,32,90,98,91,36,98,93,32,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,36,98,41,59,10,32,32,32,32,32,32,76,97,32,61,32,90,98,59,10,32,32,32,32,32,32,80,32,61,32,104,46,66,105,110,100,105,110,103,69,114,114,111,114,32,61,32,99,108,97,115,115,32,101,120,116,101,110,100,115,32,69,114,114,111,114,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,115,117,112,101,114,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,34,66,105,110,100,105,110,103,69,114,114,111,114,34,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,88,97,46,112,114,111,116,111,116,121,112,101,44,32,123,10,32,32,32,32,32,32,32,32,105,115,65,108,105,97,115,79,102,58,32,102,117,110,99,116,105,111,110,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,40,116,104,105,115,32,105,110,115,116,97,110,99,101,111,102,32,88,97,32,38,38,32,97,32,105,110,115,116,97,110,99,101,111,102,32,88,97,41,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,116,104,105,115,46,65,97,46,68,97,46,66,97,44,32,99,32,61,32,116,104,105,115,46,65,97,46,67,97,59,10,32,32,32,32,32,32,32,32,32,32,97,46,65,97,32,61,32,97,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,97,46,65,97,46,68,97,46,66,97,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,97,32,61,32,97,46,65,97,46,67,97,59,32,98,46,71,97,59,32,41,32,99,32,61,32,98,46,81,97,40,99,41,44,32,98,32,61,32,98,46,71,97,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,59,32,100,46,71,97,59,32,41,32,97,32,61,32,100,46,81,97,40,97,41,44,32,100,32,61,32,100,46,71,97,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,98,32,61,61,61,32,100,32,38,38,32,99,32,61,61,61,32,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,99,108,111,110,101,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,67,97,32,124,124,32,79,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,65,97,46,80,97,41,32,114,101,116,117,114,110,32,116,104,105,115,46,65,97,46,99,111,117,110,116,46,118,97,108,117,101,32,43,61,32,49,44,32,116,104,105,115,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,81,44,32,98,32,61,32,79,98,106,101,99,116,44,32,99,32,61,32,98,46,99,114,101,97,116,101,44,32,100,32,61,32,79,98,106,101,99,116,46,103,101,116,80,114,111,116,111,116,121,112,101,79,102,40,116,104,105,115,41,44,32,101,32,61,32,116,104,105,115,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,97,40,10,32,32,32,32,32,32,32,32,32,32,32,32,99,46,99,97,108,108,40,98,44,32,100,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,65,97,58,32,123,32,118,97,108,117,101,58,32,123,32,99,111,117,110,116,58,32,101,46,99,111,117,110,116,44,32,79,97,58,32,101,46,79,97,44,32,80,97,58,32,101,46,80,97,44,32,67,97,58,32,101,46,67,97,44,32,68,97,58,32,101,46,68,97,44,32,70,97,58,32,101,46,70,97,44,32,72,97,58,32,101,46,72,97,32,125,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,97,46,65,97,46,99,111,117,110,116,46,118,97,108,117,101,32,43,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,97,46,65,97,46,79,97,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,91,34,100,101,108,101,116,101,34,93,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,67,97,32,124,124,32,79,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,65,97,46,79,97,32,38,38,32,33,116,104,105,115,46,65,97,46,80,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,79,98,106,101,99,116,32,97,108,114,101,97,100,121,32,115,99,104,101,100,117,108,101,100,32,102,111,114,32,100,101,108,101,116,105,111,110,34,41,59,10,32,32,32,32,32,32,32,32,32,32,81,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,97,32,61,32,116,104,105,115,46,65,97,59,10,32,32,32,32,32,32,32,32,32,32,45,45,97,46,99,111,117,110,116,46,118,97,108,117,101,59,10,32,32,32,32,32,32,32,32,32,32,48,32,61,61,61,32,97,46,99,111,117,110,116,46,118,97,108,117,101,32,38,38,32,40,97,46,70,97,32,63,32,97,46,72,97,46,75,97,40,97,46,70,97,41,32,58,32,97,46,68,97,46,66,97,46,75,97,40,97,46,67,97,41,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,80,97,32,124,124,32,40,116,104,105,115,46,65,97,46,70,97,32,61,32,118,111,105,100,32,48,44,32,116,104,105,115,46,65,97,46,67,97,32,61,32,118,111,105,100,32,48,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,105,115,68,101,108,101,116,101,100,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,33,116,104,105,115,46,65,97,46,67,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,100,101,108,101,116,101,76,97,116,101,114,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,67,97,32,124,124,32,79,97,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,65,97,46,79,97,32,38,38,32,33,116,104,105,115,46,65,97,46,80,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,79,98,106,101,99,116,32,97,108,114,101,97,100,121,32,115,99,104,101,100,117,108,101,100,32,102,111,114,32,100,101,108,101,116,105,111,110,34,41,59,10,32,32,32,32,32,32,32,32,32,32,87,97,46,112,117,115,104,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,65,97,46,79,97,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,105,98,46,112,114,111,116,111,116,121,112,101,44,32,123,10,32,32,32,32,32,32,32,32,99,98,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,89,97,32,38,38,32,40,97,32,61,32,116,104,105,115,46,89,97,40,97,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,87,97,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,116,104,105,115,36,75,97,59,10,32,32,32,32,32,32,32,32,32,32,40,95,116,104,105,115,36,75,97,32,61,32,116,104,105,115,46,75,97,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,116,104,105,115,36,75,97,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,116,104,105,115,36,75,97,46,99,97,108,108,40,116,104,105,115,44,32,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,98,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,83,97,32,63,32,86,97,40,116,104,105,115,46,66,97,46,77,97,44,32,123,32,68,97,58,32,116,104,105,115,46,105,98,44,32,67,97,58,32,99,44,32,72,97,58,32,116,104,105,115,44,32,70,97,58,32,97,32,125,41,32,58,32,86,97,40,116,104,105,115,46,66,97,46,77,97,44,32,123,32,68,97,58,32,116,104,105,115,44,32,67,97,58,32,97,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,116,104,105,115,46,99,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,99,41,32,114,101,116,117,114,110,32,116,104,105,115,46,87,97,40,97,41,44,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,85,97,40,116,104,105,115,46,66,97,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,33,61,61,32,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,61,32,100,46,65,97,46,99,111,117,110,116,46,118,97,108,117,101,41,32,114,101,116,117,114,110,32,100,46,65,97,46,67,97,32,61,32,99,44,32,100,46,65,97,46,70,97,32,61,32,97,44,32,100,46,99,108,111,110,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,100,32,61,32,100,46,99,108,111,110,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,87,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,116,104,105,115,46,66,97,46,98,98,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,83,97,91,100,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,100,41,32,114,101,116,117,114,110,32,98,46,99,97,108,108,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,116,104,105,115,46,82,97,32,63,32,100,46,90,97,32,58,32,100,46,112,111,105,110,116,101,114,84,121,112,101,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,82,97,40,99,44,32,116,104,105,115,46,66,97,44,32,100,46,66,97,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,32,61,61,61,32,101,32,63,32,98,46,99,97,108,108,40,116,104,105,115,41,32,58,32,116,104,105,115,46,83,97,32,63,32,86,97,40,100,46,66,97,46,77,97,44,32,123,32,68,97,58,32,100,44,32,67,97,58,32,101,44,32,72,97,58,32,116,104,105,115,44,32,70,97,58,32,97,32,125,41,32,58,32,86,97,40,100,46,66,97,46,77,97,44,32,123,32,68,97,58,32,100,44,32,67,97,58,32,101,32,125,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,109,98,32,61,32,104,46,85,110,98,111,117,110,100,84,121,112,101,69,114,114,111,114,32,61,32,40,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,89,97,40,98,44,32,102,117,110,99,116,105,111,110,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,110,97,109,101,32,61,32,98,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,100,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,69,114,114,111,114,40,100,41,46,115,116,97,99,107,59,10,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,33,61,61,32,100,32,38,38,32,40,116,104,105,115,46,115,116,97,99,107,32,61,32,116,104,105,115,46,116,111,83,116,114,105,110,103,40,41,32,43,32,34,92,110,34,32,43,32,100,46,114,101,112,108,97,99,101,40,47,94,69,114,114,111,114,40,58,91,94,92,110,93,42,41,63,92,110,47,44,32,34,34,41,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,46,112,114,111,116,111,116,121,112,101,32,61,32,79,98,106,101,99,116,46,99,114,101,97,116,101,40,97,46,112,114,111,116,111,116,121,112,101,41,59,10,32,32,32,32,32,32,32,32,99,46,112,114,111,116,111,116,121,112,101,46,99,111,110,115,116,114,117,99,116,111,114,32,61,32,99,59,10,32,32,32,32,32,32,32,32,99,46,112,114,111,116,111,116,121,112,101,46,116,111,83,116,114,105,110,103,32,61,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,32,61,61,61,32,116,104,105,115,46,109,101,115,115,97,103,101,32,63,32,116,104,105,115,46,110,97,109,101,32,58,32,96,36,123,116,104,105,115,46,110,97,109,101,125,58,32,36,123,116,104,105,115,46,109,101,115,115,97,103,101,125,96,59,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,125,41,40,69,114,114,111,114,44,32,34,85,110,98,111,117,110,100,84,121,112,101,69,114,114,111,114,34,41,59,10,32,32,32,32,32,32,85,46,112,117,115,104,40,48,44,32,49,44,32,118,111,105,100,32,48,44,32,49,44,32,110,117,108,108,44,32,49,44,32,116,114,117,101,44,32,49,44,32,102,97,108,115,101,44,32,49,41,59,10,32,32,32,32,32,32,104,46,99,111,117,110,116,95,101,109,118,97,108,95,104,97,110,100,108,101,115,32,61,32,40,41,32,61,62,32,85,46,108,101,110,103,116,104,32,47,32,50,32,45,32,53,32,45,32,118,98,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,118,97,114,32,108,99,32,61,32,123,10,32,32,32,32,32,32,32,32,99,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,117,97,40,10,32,32,32,32,32,32,32,32,32,32,96,65,115,115,101,114,116,105,111,110,32,102,97,105,108,101,100,58,32,36,123,97,32,63,32,69,97,40,97,41,32,58,32,34,34,125,44,32,97,116,58,32,96,32,43,32,91,98,32,63,32,98,32,63,32,69,97,40,98,41,32,58,32,34,34,32,58,32,34,117,110,107,110,111,119,110,32,102,105,108,101,110,97,109,101,34,44,32,99,44,32,100,32,63,32,100,32,63,32,69,97,40,100,41,32,58,32,34,34,32,58,32,34,117,110,107,110,111,119,110,32,102,117,110,99,116,105,111,110,34,93,10,32,32,32,32,32,32,32,32,41,44,10,32,32,32,32,32,32,32,32,106,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,110,101,119,32,70,97,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,100,46,67,97,32,43,32,49,54,32,62,62,32,50,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,68,91,100,46,67,97,32,43,32,52,32,62,62,32,50,93,32,61,32,98,59,10,32,32,32,32,32,32,32,32,32,32,68,91,100,46,67,97,32,43,32,56,32,62,62,32,50,93,32,61,32,99,59,10,32,32,32,32,32,32,32,32,32,32,71,97,32,61,32,97,59,10,32,32,32,32,32,32,32,32,32,32,72,97,43,43,59,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,71,97,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,80,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,77,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,78,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,82,58,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,79,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,84,58,32,40,41,32,61,62,32,117,97,40,34,34,41,44,10,32,32,32,32,32,32,32,32,119,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,73,97,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,73,97,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,98,46,85,97,44,32,100,32,61,32,98,46,75,97,44,32,101,32,61,32,98,46,88,97,44,32,102,32,61,32,101,46,109,97,112,40,40,107,41,32,61,62,32,107,46,103,98,41,46,99,111,110,99,97,116,40,101,46,109,97,112,40,40,107,41,32,61,62,32,107,46,109,98,41,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,97,93,44,32,102,44,32,40,107,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,103,32,61,32,123,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,46,102,111,114,69,97,99,104,40,40,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,109,32,61,32,107,91,110,93,44,32,113,32,61,32,108,46,101,98,44,32,114,32,61,32,108,46,102,98,44,32,65,32,61,32,107,91,110,32,43,32,101,46,108,101,110,103,116,104,93,44,32,118,32,61,32,108,46,108,98,44,32,119,32,61,32,108,46,110,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,91,108,46,97,98,93,32,61,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,58,32,40,69,41,32,61,62,32,109,46,102,114,111,109,87,105,114,101,84,121,112,101,40,113,40,114,44,32,69,41,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,119,114,105,116,101,58,32,40,69,44,32,100,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,66,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,40,119,44,32,69,44,32,65,46,116,111,87,105,114,101,84,121,112,101,40,66,44,32,100,97,41,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,74,97,40,66,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,46,110,97,109,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,108,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,110,32,61,32,123,125,44,32,109,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,109,32,105,110,32,103,41,32,110,91,109,93,32,61,32,103,91,109,93,46,114,101,97,100,40,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,40,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,109,32,105,110,32,103,41,32,105,102,32,40,33,40,109,32,105,110,32,110,41,41,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,96,77,105,115,115,105,110,103,32,102,105,101,108,100,58,32,34,36,123,109,125,34,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,113,32,61,32,99,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,109,32,105,110,32,103,41,32,103,91,109,93,46,119,114,105,116,101,40,113,44,32,110,91,109,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,108,32,38,38,32,108,46,112,117,115,104,40,100,44,32,113,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,113,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,100,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,70,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,95,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,33,33,101,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,101,44,32,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,32,63,32,99,32,58,32,100,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,102,117,110,99,116,105,111,110,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,102,114,111,109,87,105,114,101,84,121,112,101,40,120,91,101,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,107,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,44,32,109,44,32,113,44,32,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,109,32,61,32,79,40,109,41,59,10,32,32,32,32,32,32,32,32,32,32,102,32,61,32,83,40,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,103,32,38,38,32,40,103,32,61,32,83,40,107,44,32,103,41,41,59,10,32,32,32,32,32,32,32,32,32,32,110,32,38,38,32,40,110,32,61,32,83,40,108,44,32,110,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,32,61,32,83,40,113,44,32,114,41,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,65,32,61,32,97,98,40,109,41,59,10,32,32,32,32,32,32,32,32,32,32,36,97,40,65,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,111,110,115,116,114,117,99,116,32,36,123,109,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,91,100,93,41,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,97,44,32,98,44,32,99,93,44,32,100,32,63,32,91,100,93,32,58,32,91,93,44,32,40,118,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,32,61,32,118,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,119,32,61,32,118,46,66,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,69,32,61,32,119,46,77,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,69,32,61,32,88,97,46,112,114,111,116,111,116,121,112,101,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,32,61,32,89,97,40,109,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,79,98,106,101,99,116,46,103,101,116,80,114,111,116,111,116,121,112,101,79,102,40,116,104,105,115,41,32,33,61,61,32,100,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,34,85,115,101,32,39,110,101,119,39,32,116,111,32,99,111,110,115,116,114,117,99,116,32,34,32,43,32,109,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,66,46,76,97,41,32,116,104,114,111,119,32,110,101,119,32,80,40,109,32,43,32,34,32,104,97,115,32,110,111,32,97,99,99,101,115,115,105,98,108,101,32,99,111,110,115,116,114,117,99,116,111,114,34,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,95,108,101,110,52,32,61,32,97,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,44,32,78,97,32,61,32,110,101,119,32,65,114,114,97,121,40,95,108,101,110,52,41,44,32,95,107,101,121,52,32,61,32,48,59,32,95,107,101,121,52,32,60,32,95,108,101,110,52,59,32,95,107,101,121,52,43,43,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,78,97,91,95,107,101,121,52,93,32,61,32,97,114,103,117,109,101,110,116,115,91,95,107,101,121,52,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,117,98,32,61,32,66,46,76,97,91,78,97,46,108,101,110,103,116,104,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,61,61,61,32,117,98,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,84,114,105,101,100,32,116,111,32,105,110,118,111,107,101,32,99,116,111,114,32,111,102,32,36,123,109,125,32,119,105,116,104,32,105,110,118,97,108,105,100,32,110,117,109,98,101,114,32,111,102,32,112,97,114,97,109,101,116,101,114,115,32,40,36,123,78,97,46,108,101,110,103,116,104,125,41,32,45,32,101,120,112,101,99,116,101,100,32,40,36,123,79,98,106,101,99,116,46,107,101,121,115,40,66,46,76,97,41,46,116,111,83,116,114,105,110,103,40,41,125,41,32,112,97,114,97,109,101,116,101,114,115,32,105,110,115,116,101,97,100,33,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,117,98,46,97,112,112,108,121,40,116,104,105,115,44,32,78,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,97,32,61,32,79,98,106,101,99,116,46,99,114,101,97,116,101,40,69,44,32,123,32,99,111,110,115,116,114,117,99,116,111,114,58,32,123,32,118,97,108,117,101,58,32,118,32,125,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,46,112,114,111,116,111,116,121,112,101,32,61,32,100,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,66,32,61,32,110,101,119,32,98,98,40,109,44,32,118,44,32,100,97,44,32,114,44,32,119,44,32,102,44,32,103,44,32,110,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,66,46,71,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,101,97,36,86,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,95,101,97,36,86,97,32,61,32,40,101,97,32,61,32,66,46,71,97,41,46,86,97,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,101,97,36,86,97,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,101,97,36,86,97,32,58,32,101,97,46,86,97,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,66,46,71,97,46,86,97,46,112,117,115,104,40,66,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,119,32,61,32,110,101,119,32,105,98,40,109,44,32,66,44,32,116,114,117,101,44,32,102,97,108,115,101,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,97,32,61,32,110,101,119,32,105,98,40,109,32,43,32,34,42,34,44,32,66,44,32,102,97,108,115,101,44,32,102,97,108,115,101,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,69,32,61,32,110,101,119,32,105,98,40,109,32,43,32,34,32,99,111,110,115,116,42,34,44,32,66,44,32,102,97,108,115,101,44,32,116,114,117,101,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,83,97,91,97,93,32,61,32,123,32,112,111,105,110,116,101,114,84,121,112,101,58,32,101,97,44,32,90,97,58,32,69,32,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,106,98,40,65,44,32,118,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,119,44,32,101,97,44,32,69,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,114,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,113,98,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,83,40,100,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,91,97,93,44,32,40,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,103,32,61,32,103,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,96,99,111,110,115,116,114,117,99,116,111,114,32,36,123,103,46,110,97,109,101,125,96,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,61,61,61,32,103,46,66,97,46,76,97,32,38,38,32,40,103,46,66,97,46,76,97,32,61,32,91,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,118,111,105,100,32,48,32,33,61,61,32,103,46,66,97,46,76,97,91,98,32,45,32,49,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,67,97,110,110,111,116,32,114,101,103,105,115,116,101,114,32,109,117,108,116,105,112,108,101,32,99,111,110,115,116,114,117,99,116,111,114,115,32,119,105,116,104,32,105,100,101,110,116,105,99,97,108,32,110,117,109,98,101,114,32,111,102,32,112,97,114,97,109,101,116,101,114,115,32,40,36,123,98,32,45,32,49,125,41,32,102,111,114,32,99,108,97,115,115,32,39,36,123,103,46,110,97,109,101,125,39,33,32,79,118,101,114,108,111,97,100,32,114,101,115,111,108,117,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,111,110,108,121,32,112,101,114,102,111,114,109,101,100,32,117,115,105,110,103,32,116,104,101,32,112,97,114,97,109,101,116,101,114,32,99,111,117,110,116,44,32,110,111,116,32,97,99,116,117,97,108,32,116,121,112,101,32,105,110,102,111,33,96,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,103,46,66,97,46,76,97,91,98,32,45,32,49,93,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,111,110,115,116,114,117,99,116,32,36,123,103,46,110,97,109,101,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,107,44,32,40,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,46,115,112,108,105,99,101,40,49,44,32,48,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,46,66,97,46,76,97,91,98,32,45,32,49,93,32,61,32,115,98,40,108,44,32,110,44,32,110,117,108,108,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,100,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,113,98,40,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,116,98,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,102,32,61,32,83,40,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,91,97,93,44,32,40,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,109,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,97,108,108,32,36,123,113,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,108,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,110,32,61,32,110,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,113,32,61,32,96,36,123,110,46,110,97,109,101,125,46,36,123,98,125,96,59,10,32,32,32,32,32,32,32,32,32,32,32,32,98,46,115,116,97,114,116,115,87,105,116,104,40,34,64,64,34,41,32,38,38,32,40,98,32,61,32,83,121,109,98,111,108,91,98,46,115,117,98,115,116,114,105,110,103,40,50,41,93,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,103,32,38,38,32,110,46,66,97,46,106,98,46,112,117,115,104,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,114,32,61,32,110,46,66,97,46,77,97,44,32,65,32,61,32,114,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,61,61,61,32,65,32,124,124,32,118,111,105,100,32,48,32,61,61,61,32,65,46,69,97,32,38,38,32,65,46,99,108,97,115,115,78,97,109,101,32,33,61,61,32,110,46,110,97,109,101,32,38,38,32,65,46,78,97,32,61,61,61,32,99,32,45,32,50,32,63,32,40,109,46,78,97,32,61,32,99,32,45,32,50,44,32,109,46,99,108,97,115,115,78,97,109,101,32,61,32,110,46,110,97,109,101,44,32,114,91,98,93,32,61,32,109,41,32,58,32,40,90,97,40,114,44,32,98,44,32,113,41,44,32,114,91,98,93,46,69,97,91,99,32,45,32,50,93,32,61,32,109,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,108,44,32,40,118,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,32,61,32,115,98,40,113,44,32,118,44,32,110,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,111,105,100,32,48,32,61,61,61,32,114,91,98,93,46,69,97,32,63,32,40,118,46,78,97,32,61,32,99,32,45,32,50,44,32,114,91,98,93,32,61,32,118,41,32,58,32,114,91,98,93,46,69,97,91,99,32,45,32,50,93,32,61,32,118,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,89,58,32,40,97,41,32,61,62,32,77,40,97,44,32,120,98,41,44,10,32,32,32,32,32,32,32,32,68,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,101,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,101,46,118,97,108,117,101,115,32,61,32,123,125,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,58,32,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,99,111,110,115,116,114,117,99,116,111,114,46,118,97,108,117,101,115,91,102,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,102,44,32,107,41,32,61,62,32,107,46,118,97,108,117,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,121,98,40,98,44,32,99,44,32,100,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,36,97,40,98,44,32,101,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,109,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,122,98,40,97,44,32,34,101,110,117,109,34,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,100,46,99,111,110,115,116,114,117,99,116,111,114,59,10,32,32,32,32,32,32,32,32,32,32,100,32,61,32,79,98,106,101,99,116,46,99,114,101,97,116,101,40,100,46,99,111,110,115,116,114,117,99,116,111,114,46,112,114,111,116,111,116,121,112,101,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,108,117,101,58,32,123,32,118,97,108,117,101,58,32,99,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,58,32,123,32,118,97,108,117,101,58,32,89,97,40,96,36,123,100,46,110,97,109,101,125,95,36,123,98,125,96,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,97,46,118,97,108,117,101,115,91,99,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,32,32,97,91,98,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,65,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,100,41,32,61,62,32,100,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,100,44,32,101,41,32,61,62,32,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,65,98,40,98,44,32,99,41,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,58,32,110,117,108,108,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,117,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,113,98,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,79,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,116,98,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,83,40,100,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,36,97,40,10,32,32,32,32,32,32,32,32,32,32,32,32,97,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,98,40,96,67,97,110,110,111,116,32,99,97,108,108,32,36,123,97,125,32,100,117,101,32,116,111,32,117,110,98,111,117,110,100,32,116,121,112,101,115,96,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,98,32,45,32,49,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,93,44,32,107,44,32,40,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,106,98,40,97,44,32,115,98,40,97,44,32,91,103,91,48,93,44,32,110,117,108,108,93,46,99,111,110,99,97,116,40,103,46,115,108,105,99,101,40,49,41,41,44,32,110,117,108,108,44,32,101,44,32,102,41,44,32,98,32,45,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,110,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,45,49,32,61,61,61,32,101,32,38,38,32,40,101,32,61,32,52,50,57,52,57,54,55,50,57,53,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,40,103,41,32,61,62,32,103,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,48,32,61,61,61,32,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,51,50,32,45,32,56,32,42,32,99,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,40,103,41,32,61,62,32,103,32,60,60,32,102,32,62,62,62,32,102,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,98,46,105,110,99,108,117,100,101,115,40,34,117,110,115,105,103,110,101,100,34,41,32,63,32,102,117,110,99,116,105,111,110,40,103,44,32,108,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,32,62,62,62,32,48,59,10,32,32,32,32,32,32,32,32,32,32,125,32,58,32,102,117,110,99,116,105,111,110,40,103,44,32,108,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,108,59,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,32,110,97,109,101,58,32,98,44,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,101,44,32,116,111,87,105,114,101,84,121,112,101,58,32,107,44,32,73,97,58,32,56,44,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,66,98,40,98,44,32,99,44,32,48,32,33,61,61,32,100,41,44,32,74,97,58,32,110,117,108,108,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,103,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,101,40,117,46,98,117,102,102,101,114,44,32,68,91,102,32,43,32,52,32,62,62,32,50,93,44,32,68,91,102,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,91,73,110,116,56,65,114,114,97,121,44,32,85,105,110,116,56,65,114,114,97,121,44,32,73,110,116,49,54,65,114,114,97,121,44,32,85,105,110,116,49,54,65,114,114,97,121,44,32,73,110,116,51,50,65,114,114,97,121,44,32,85,105,110,116,51,50,65,114,114,97,121,44,32,70,108,111,97,116,51,50,65,114,114,97,121,44,32,70,108,111,97,116,54,52,65,114,114,97,121,93,91,98,93,59,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,79,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,32,110,97,109,101,58,32,99,44,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,100,44,32,73,97,58,32,56,44,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,100,32,125,44,32,123,32,104,98,58,32,116,114,117,101,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,111,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,67,98,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,118,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,44,32,109,44,32,113,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,79,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,102,32,61,32,83,40,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,103,32,61,32,83,40,107,44,32,103,41,59,10,32,32,32,32,32,32,32,32,32,32,110,32,61,32,83,40,108,44,32,110,41,59,10,32,32,32,32,32,32,32,32,32,32,113,32,61,32,83,40,109,44,32,113,41,59,10,32,32,32,32,32,32,32,32,32,32,78,40,91,97,93,44,32,91,98,93,44,32,40,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,32,61,32,114,91,48,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,110,101,119,32,105,98,40,99,44,32,114,46,66,97,44,32,102,97,108,115,101,44,32,102,97,108,115,101,44,32,116,114,117,101,44,32,114,44,32,100,44,32,102,44,32,103,44,32,110,44,32,113,41,93,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,90,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,98,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,100,32,61,32,68,91,99,32,62,62,32,50,93,44,32,101,32,61,32,99,32,43,32,52,44,32,102,44,32,107,32,61,32,101,44,32,103,32,61,32,48,59,32,103,32,60,61,32,100,59,32,43,43,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,101,32,43,32,103,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,32,61,61,32,100,32,124,124,32,48,32,61,61,32,120,91,108,93,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,32,107,32,63,32,69,97,40,107,44,32,108,32,45,32,107,41,32,58,32,34,34,44,32,118,111,105,100,32,48,32,61,61,61,32,102,32,63,32,102,32,61,32,107,32,58,32,40,102,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,48,41,44,32,102,32,43,61,32,107,41,44,32,107,32,61,32,108,32,43,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,102,117,110,99,116,105,111,110,40,99,44,32,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,66,117,102,102,101,114,32,38,38,32,40,100,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,100,41,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,44,32,102,32,61,32,34,115,116,114,105,110,103,34,32,61,61,32,116,121,112,101,111,102,32,100,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,40,102,32,124,124,32,100,32,105,110,115,116,97,110,99,101,111,102,32,85,105,110,116,56,65,114,114,97,121,32,124,124,32,100,32,105,110,115,116,97,110,99,101,111,102,32,85,105,110,116,56,67,108,97,109,112,101,100,65,114,114,97,121,32,124,124,32,100,32,105,110,115,116,97,110,99,101,111,102,32,73,110,116,56,65,114,114,97,121,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,80,40,34,67,97,110,110,111,116,32,112,97,115,115,32,110,111,110,45,115,116,114,105,110,103,32,116,111,32,115,116,100,58,58,115,116,114,105,110,103,34,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,107,32,61,32,101,32,61,32,48,59,32,107,32,60,32,100,46,108,101,110,103,116,104,59,32,43,43,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,103,32,61,32,100,46,99,104,97,114,67,111,100,101,65,116,40,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,49,50,55,32,62,61,32,103,32,63,32,101,43,43,32,58,32,50,48,52,55,32,62,61,32,103,32,63,32,101,32,43,61,32,50,32,58,32,53,53,50,57,54,32,60,61,32,103,32,38,38,32,53,55,51,52,51,32,62,61,32,103,32,63,32,40,101,32,43,61,32,52,44,32,43,43,107,41,32,58,32,101,32,43,61,32,51,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,101,32,61,32,100,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,32,97,99,40,52,32,43,32,101,32,43,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,103,32,61,32,107,32,43,32,52,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,68,91,107,32,62,62,32,50,93,32,61,32,101,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,41,32,72,40,100,44,32,103,44,32,101,32,43,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,105,102,32,40,102,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,102,32,61,32,48,59,32,102,32,60,32,101,59,32,43,43,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,108,32,61,32,100,46,99,104,97,114,67,111,100,101,65,116,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,53,53,32,60,32,108,41,32,116,104,114,111,119,32,84,40,103,41,44,32,110,101,119,32,80,40,34,83,116,114,105,110,103,32,104,97,115,32,85,84,70,45,49,54,32,99,111,100,101,32,117,110,105,116,115,32,116,104,97,116,32,100,111,32,110,111,116,32,102,105,116,32,105,110,32,56,32,98,105,116,115,34,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,120,91,103,32,43,32,102,93,32,61,32,108,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,108,115,101,32,102,111,114,32,40,102,32,61,32,48,59,32,102,32,60,32,101,59,32,43,43,102,41,32,120,91,103,32,43,32,102,93,32,61,32,100,91,102,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,99,32,38,38,32,99,46,112,117,115,104,40,84,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,107,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,121,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,32,61,32,79,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,32,61,61,61,32,98,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,69,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,70,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,71,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,40,103,41,32,61,62,32,122,91,103,32,62,62,32,49,93,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,52,32,61,61,61,32,98,32,38,38,32,40,100,32,61,32,72,98,44,32,101,32,61,32,73,98,44,32,102,32,61,32,74,98,44,32,107,32,61,32,40,103,41,32,61,62,32,68,91,103,32,62,62,32,50,93,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,99,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,103,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,108,32,61,32,68,91,103,32,62,62,32,50,93,44,32,110,44,32,109,32,61,32,103,32,43,32,52,44,32,113,32,61,32,48,59,32,113,32,60,61,32,108,59,32,43,43,113,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,114,32,61,32,103,32,43,32,52,32,43,32,113,32,42,32,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,113,32,61,61,32,108,32,124,124,32,48,32,61,61,32,107,40,114,41,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,109,32,61,32,100,40,109,44,32,114,32,45,32,109,41,44,32,118,111,105,100,32,48,32,61,61,61,32,110,32,63,32,110,32,61,32,109,32,58,32,40,110,32,43,61,32,83,116,114,105,110,103,46,102,114,111,109,67,104,97,114,67,111,100,101,40,48,41,44,32,110,32,43,61,32,109,41,44,32,109,32,61,32,114,32,43,32,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,103,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,111,87,105,114,101,84,121,112,101,58,32,40,103,44,32,108,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,34,115,116,114,105,110,103,34,32,33,61,32,116,121,112,101,111,102,32,108,41,32,116,104,114,111,119,32,110,101,119,32,80,40,96,67,97,110,110,111,116,32,112,97,115,115,32,110,111,110,45,115,116,114,105,110,103,32,116,111,32,67,43,43,32,115,116,114,105,110,103,32,116,121,112,101,32,36,123,99,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,110,32,61,32,102,40,108,41,44,32,109,32,61,32,97,99,40,52,32,43,32,110,32,43,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,68,91,109,32,62,62,32,50,93,32,61,32,110,32,47,32,98,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,40,108,44,32,109,32,43,32,52,44,32,110,32,43,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,110,117,108,108,32,33,61,61,32,103,32,38,38,32,103,46,112,117,115,104,40,84,44,32,109,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,32,32,32,32,73,97,58,32,56,44,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,58,32,73,44,10,32,32,32,32,32,32,32,32,32,32,32,32,74,97,40,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,84,40,103,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,120,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,73,97,91,97,93,32,61,32,123,32,110,97,109,101,58,32,79,40,98,41,44,32,85,97,58,32,83,40,99,44,32,100,41,44,32,75,97,58,32,83,40,101,44,32,102,41,44,32,88,97,58,32,91,93,32,125,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,105,58,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,73,97,91,97,93,46,88,97,46,112,117,115,104,40,123,32,97,98,58,32,79,40,98,41,44,32,103,98,58,32,99,44,32,101,98,58,32,83,40,100,44,32,101,41,44,32,102,98,58,32,102,44,32,109,98,58,32,107,44,32,108,98,58,32,83,40,103,44,32,108,41,44,32,110,98,58,32,110,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,36,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,79,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,77,40,97,44,32,123,32,112,98,58,32,116,114,117,101,44,32,110,97,109,101,58,32,98,44,32,73,97,58,32,48,44,32,102,114,111,109,87,105,114,101,84,121,112,101,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,125,44,32,116,111,87,105,114,101,84,121,112,101,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,125,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,75,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,75,98,32,61,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,73,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,73,110,102,105,110,105,116,121,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,67,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,122,98,40,98,44,32,34,101,109,118,97,108,58,58,97,115,34,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,76,98,40,98,44,32,99,44,32,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,113,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,77,98,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,86,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,40,110,117,108,108,44,32,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,87,58,32,119,98,44,10,32,32,32,32,32,32,32,32,69,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,86,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,32,61,61,32,98,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,112,58,32,40,97,44,32,98,44,32,99,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,79,98,40,97,44,32,98,41,44,32,101,32,61,32,100,46,115,104,105,102,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,97,45,45,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,65,114,114,97,121,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,96,109,101,116,104,111,100,67,97,108,108,101,114,60,40,36,123,100,46,109,97,112,40,40,107,41,32,61,62,32,107,46,110,97,109,101,41,46,106,111,105,110,40,34,44,32,34,41,125,41,32,61,62,32,36,123,101,46,110,97,109,101,125,62,96,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,78,98,40,10,32,32,32,32,32,32,32,32,32,32,32,32,89,97,40,98,44,32,40,107,44,32,103,44,32,108,44,32,110,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,109,32,61,32,48,44,32,113,32,61,32,48,59,32,113,32,60,32,97,59,32,43,43,113,41,32,102,91,113,93,32,61,32,100,91,113,93,46,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,40,110,32,43,32,109,41,44,32,109,32,43,61,32,100,91,113,93,46,73,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,32,61,32,49,32,61,61,61,32,99,32,63,32,80,98,40,103,44,32,102,41,32,58,32,103,46,97,112,112,108,121,40,107,44,32,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,76,98,40,101,44,32,108,44,32,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,122,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,57,32,60,32,97,32,38,38,32,40,85,91,97,32,43,32,49,93,32,43,61,32,49,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,99,97,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,86,40,97,41,59,10,32,32,32,32,32,32,32,32,32,32,74,97,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,119,98,40,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,115,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,122,98,40,97,44,32,34,95,101,109,118,97,108,95,116,97,107,101,95,118,97,108,117,101,34,41,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,97,46,114,101,97,100,86,97,108,117,101,70,114,111,109,80,111,105,110,116,101,114,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,103,98,40,97,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,71,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,81,98,91,97,93,32,38,38,32,40,99,108,101,97,114,84,105,109,101,111,117,116,40,81,98,91,97,93,46,105,100,41,44,32,100,101,108,101,116,101,32,81,98,91,97,93,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,98,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,81,98,91,97,93,59,10,32,32,32,32,32,32,32,32,32,32,32,32,84,98,40,40,41,32,61,62,32,98,99,40,97,44,32,112,101,114,102,111,114,109,97,110,99,101,46,110,111,119,40,41,41,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,98,41,59,10,32,32,32,32,32,32,32,32,32,32,81,98,91,97,93,32,61,32,123,32,105,100,58,32,99,44,32,113,98,58,32,98,32,125,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,72,58,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,40,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,68,97,116,101,40,41,41,46,103,101,116,70,117,108,108,89,101,97,114,40,41,44,32,102,32,61,32,110,101,119,32,68,97,116,101,40,101,44,32,48,44,32,49,41,46,103,101,116,84,105,109,101,122,111,110,101,79,102,102,115,101,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,61,32,110,101,119,32,68,97,116,101,40,101,44,32,54,44,32,49,41,46,103,101,116,84,105,109,101,122,111,110,101,79,102,102,115,101,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,97,32,62,62,32,50,93,32,61,32,54,48,32,42,32,77,97,116,104,46,109,97,120,40,102,44,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,67,91,98,32,62,62,32,50,93,32,61,32,78,117,109,98,101,114,40,102,32,33,61,32,101,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,40,107,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,103,32,61,32,77,97,116,104,46,97,98,115,40,107,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,96,85,84,67,36,123,48,32,60,61,32,107,32,63,32,34,45,34,32,58,32,34,43,34,125,36,123,83,116,114,105,110,103,40,77,97,116,104,46,102,108,111,111,114,40,103,32,47,32,54,48,41,41,46,112,97,100,83,116,97,114,116,40,50,44,32,34,48,34,41,125,36,123,83,116,114,105,110,103,40,103,32,37,32,54,48,41,46,112,97,100,83,116,97,114,116,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,50,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,48,34,10,32,32,32,32,32,32,32,32,32,32,32,32,41,125,96,59,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,32,32,97,32,61,32,98,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,98,32,61,32,98,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,101,32,60,32,102,32,63,32,40,72,40,97,44,32,99,44,32,49,55,41,44,32,72,40,98,44,32,100,44,32,49,55,41,41,32,58,32,40,72,40,97,44,32,100,44,32,49,55,41,44,32,72,40,98,44,32,99,44,32,49,55,41,41,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,98,97,58,32,40,41,32,61,62,32,112,101,114,102,111,114,109,97,110,99,101,46,110,111,119,40,41,44,10,32,32,32,32,32,32,32,32,74,58,32,40,97,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,120,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,97,32,62,62,62,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,50,49,52,55,52,56,51,54,52,56,32,60,32,97,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,118,97,114,32,99,32,61,32,49,59,32,52,32,62,61,32,99,59,32,99,32,42,61,32,50,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,98,32,42,32,40,49,32,43,32,48,46,50,32,47,32,99,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,100,32,61,32,77,97,116,104,46,109,105,110,40,100,44,32,97,32,43,32,49,48,48,54,54,51,50,57,54,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,97,58,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,32,61,32,40,77,97,116,104,46,109,105,110,40,50,49,52,55,52,56,51,54,52,56,44,32,54,53,53,51,54,32,42,32,77,97,116,104,46,99,101,105,108,40,77,97,116,104,46,109,97,120,40,97,44,32,100,41,32,47,32,54,53,53,51,54,41,41,32,45,32,107,97,46,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,32,43,32,54,53,53,51,53,41,32,47,32,54,53,53,51,54,32,124,32,48,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,107,97,46,103,114,111,119,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,112,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,32,97,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,41,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,86,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,87,98,40,41,46,102,111,114,69,97,99,104,40,40,100,44,32,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,98,32,43,32,99,59,10,32,32,32,32,32,32,32,32,32,32,32,32,101,32,61,32,68,91,97,32,43,32,52,32,42,32,101,32,62,62,32,50,93,32,61,32,102,59,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,102,32,61,32,48,59,32,102,32,60,32,100,46,108,101,110,103,116,104,59,32,43,43,102,41,32,117,91,101,43,43,93,32,61,32,100,46,99,104,97,114,67,111,100,101,65,116,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,117,91,101,93,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,32,43,61,32,100,46,108,101,110,103,116,104,32,43,32,49,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,88,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,87,98,40,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,97,32,62,62,32,50,93,32,61,32,99,46,108,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,48,59,10,32,32,32,32,32,32,32,32,32,32,99,46,102,111,114,69,97,99,104,40,40,101,41,32,61,62,32,100,32,43,61,32,101,46,108,101,110,103,116,104,32,43,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,68,91,98,32,62,62,32,50,93,32,61,32,100,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,44,10,32,32,32,32,32,32,32,32,83,58,32,40,41,32,61,62,32,53,50,44,10,32,32,32,32,32,32,32,32,81,58,32,40,41,32,61,62,32,53,50,44,10,32,32,32,32,32,32,32,32,108,58,32,99,99,44,10,32,32,32,32,32,32,32,32,102,58,32,100,99,44,10,32,32,32,32,32,32,32,32,101,58,32,101,99,44,10,32,32,32,32,32,32,32,32,66,58,32,102,99,44,10,32,32,32,32,32,32,32,32,97,97,58,32,103,99,44,10,32,32,32,32,32,32,32,32,97,58,32,104,99,44,10,32,32,32,32,32,32,32,32,98,58,32,105,99,44,10,32,32,32,32,32,32,32,32,104,58,32,106,99,44,10,32,32,32,32,32,32,32,32,116,58,32,107,99,44,10,32,32,32,32,32,32,32,32,85,58,32,83,98,44,10,32,32,32,32,32,32,32,32,76,58,32,40,97,44,32,98,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,89,98,40,120,46,115,117,98,97,114,114,97,121,40,97,44,32,97,32,43,32,98,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,44,32,87,59,10,32,32,32,32,32,32,40,97,115,121,110,99,32,102,117,110,99,116,105,111,110,40,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,44,32,95,119,97,41,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,97,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,59,10,32,32,32,32,32,32,32,32,32,32,87,32,61,32,100,46,101,120,112,111,114,116,115,59,10,32,32,32,32,32,32,32,32,32,32,107,97,32,61,32,87,46,100,97,59,10,32,32,32,32,32,32,32,32,32,32,112,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,82,32,61,32,87,46,103,97,59,10,32,32,32,32,32,32,32,32,32,32,114,97,46,117,110,115,104,105,102,116,40,87,46,101,97,41,59,10,32,32,32,32,32,32,32,32,32,32,70,45,45,59,10,32,32,32,32,32,32,32,32,32,32,40,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,32,61,32,104,46,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,99,105,101,115,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,46,99,97,108,108,40,104,44,32,70,41,59,10,32,32,32,32,32,32,32,32,32,32,48,32,61,61,32,70,32,38,38,32,71,32,38,38,32,40,100,32,61,32,71,44,32,71,32,61,32,110,117,108,108,44,32,100,40,41,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,87,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,70,43,43,59,10,32,32,32,32,32,32,32,32,40,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,32,61,32,104,46,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,99,105,101,115,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,109,111,110,105,116,111,114,82,117,110,68,101,112,101,110,100,101,110,50,46,99,97,108,108,40,104,44,32,70,41,59,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,123,32,97,58,32,108,99,32,125,59,10,32,32,32,32,32,32,32,32,105,102,32,40,104,46,105,110,115,116,97,110,116,105,97,116,101,87,97,115,109,41,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,104,46,105,110,115,116,97,110,116,105,97,116,101,87,97,115,109,40,98,44,32,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,40,96,77,111,100,117,108,101,46,105,110,115,116,97,110,116,105,97,116,101,87,97,115,109,32,99,97,108,108,98,97,99,107,32,102,97,105,108,101,100,32,119,105,116,104,32,101,114,114,111,114,58,32,36,123,100,125,96,41,44,32,98,97,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,40,95,119,97,32,61,32,119,97,41,32,33,61,61,32,110,117,108,108,32,38,38,32,95,119,97,32,33,61,61,32,118,111,105,100,32,48,32,63,32,95,119,97,32,58,32,119,97,32,61,32,118,97,40,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,41,32,63,32,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,32,58,32,104,46,108,111,99,97,116,101,70,105,108,101,32,63,32,104,46,108,111,99,97,116,101,70,105,108,101,40,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,44,32,112,41,32,58,32,112,32,43,32,34,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,46,119,97,115,109,34,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,97,119,97,105,116,32,122,97,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,97,40,99,46,105,110,115,116,97,110,99,101,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,98,97,40,100,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,40,41,59,10,32,32,32,32,32,32,118,97,114,32,97,99,32,61,32,40,97,41,32,61,62,32,40,97,99,32,61,32,87,46,102,97,41,40,97,41,44,32,84,32,61,32,40,97,41,32,61,62,32,40,84,32,61,32,87,46,104,97,41,40,97,41,44,32,110,98,32,61,32,40,97,41,32,61,62,32,40,110,98,32,61,32,87,46,105,97,41,40,97,41,44,32,98,99,32,61,32,40,97,44,32,98,41,32,61,62,32,40,98,99,32,61,32,87,46,106,97,41,40,97,44,32,98,41,44,32,88,32,61,32,40,97,44,32,98,41,32,61,62,32,40,88,32,61,32,87,46,107,97,41,40,97,44,32,98,41,44,32,89,32,61,32,40,97,41,32,61,62,32,40,89,32,61,32,87,46,108,97,41,40,97,41,44,32,90,32,61,32,40,41,32,61,62,32,40,90,32,61,32,87,46,109,97,41,40,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,106,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,106,105,105,105,32,61,32,87,46,110,97,41,40,97,44,32,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,106,105,105,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,106,105,105,32,61,32,87,46,111,97,41,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,32,61,32,87,46,112,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,102,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,102,105,105,32,61,32,87,46,113,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,32,61,32,87,46,114,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,32,61,32,40,97,44,32,98,44,32,99,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,32,61,32,87,46,115,97,41,40,97,44,32,98,44,32,99,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,105,32,61,32,87,46,116,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,102,102,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,102,102,105,105,32,61,32,87,46,117,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,106,105,105,105,105,32,61,32,87,46,118,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,118,105,105,106,105,105,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,118,105,105,106,105,105,32,61,32,87,46,119,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,32,61,32,87,46,120,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,106,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,106,106,32,61,32,87,46,121,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,41,59,10,32,32,32,32,32,32,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,105,106,106,32,61,32,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,41,32,61,62,32,40,104,46,100,121,110,67,97,108,108,95,105,105,105,105,105,105,106,106,32,61,32,87,46,122,97,41,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,44,32,107,44,32,103,44,32,108,44,32,110,41,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,99,99,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,100,32,33,61,61,32,100,32,43,32,48,41,32,116,104,114,111,119,32,100,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,102,99,40,97,44,32,98,44,32,99,44,32,100,44,32,101,44,32,102,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,107,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,44,32,101,44,32,102,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,107,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,103,32,33,61,61,32,103,32,43,32,48,41,32,116,104,114,111,119,32,103,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,104,99,40,97,44,32,98,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,99,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,99,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,100,32,33,61,61,32,100,32,43,32,48,41,32,116,104,114,111,119,32,100,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,106,99,40,97,44,32,98,44,32,99,44,32,100,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,32,33,61,61,32,102,32,43,32,48,41,32,116,104,114,111,119,32,102,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,100,99,40,97,44,32,98,44,32,99,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,32,33,61,61,32,101,32,43,32,48,41,32,116,104,114,111,119,32,101,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,105,99,40,97,44,32,98,44,32,99,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,100,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,44,32,99,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,100,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,32,33,61,61,32,101,32,43,32,48,41,32,116,104,114,111,119,32,101,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,103,99,40,97,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,32,33,61,61,32,99,32,43,32,48,41,32,116,104,114,111,119,32,99,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,101,99,40,97,44,32,98,44,32,99,44,32,100,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,101,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,102,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,102,32,33,61,61,32,102,32,43,32,48,41,32,116,104,114,111,119,32,102,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,107,99,40,97,44,32,98,44,32,99,44,32,100,44,32,101,41,32,123,10,32,32,32,32,32,32,32,32,118,97,114,32,102,32,61,32,90,40,41,59,10,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,82,46,103,101,116,40,97,41,40,98,44,32,99,44,32,100,44,32,101,41,59,10,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,89,40,102,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,107,32,33,61,61,32,107,32,43,32,48,41,32,116,104,114,111,119,32,107,59,10,32,32,32,32,32,32,32,32,32,32,88,40,49,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,118,97,114,32,109,99,59,10,32,32,32,32,32,32,71,32,61,32,102,117,110,99,116,105,111,110,32,110,99,40,41,32,123,10,32,32,32,32,32,32,32,32,109,99,32,124,124,32,111,99,40,41,59,10,32,32,32,32,32,32,32,32,109,99,32,124,124,32,40,71,32,61,32,110,99,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,111,99,40,41,32,123,10,32,32,32,32,32,32,32,32,102,117,110,99,116,105,111,110,32,97,40,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,109,99,32,38,38,32,40,109,99,32,61,32,116,114,117,101,44,32,104,46,99,97,108,108,101,100,82,117,110,32,61,32,116,114,117,101,44,32,33,108,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,59,10,32,32,32,32,32,32,32,32,32,32,32,32,66,97,40,114,97,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,97,97,40,104,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,40,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,32,61,32,104,46,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,101,100,41,32,61,61,61,32,110,117,108,108,32,124,124,32,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,32,61,61,61,32,118,111,105,100,32,48,32,124,124,32,95,104,36,111,110,82,117,110,116,105,109,101,73,110,105,116,105,97,108,105,122,46,99,97,108,108,40,104,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,104,46,112,111,115,116,82,117,110,41,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,104,46,112,111,115,116,82,117,110,32,38,38,32,40,104,46,112,111,115,116,82,117,110,32,61,32,91,104,46,112,111,115,116,82,117,110,93,41,59,32,104,46,112,111,115,116,82,117,110,46,108,101,110,103,116,104,59,32,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,118,97,114,32,98,32,61,32,104,46,112,111,115,116,82,117,110,46,115,104,105,102,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,115,97,46,117,110,115,104,105,102,116,40,98,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,66,97,40,115,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,33,40,48,32,60,32,70,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,104,46,112,114,101,82,117,110,41,32,102,111,114,32,40,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,104,46,112,114,101,82,117,110,32,38,38,32,40,104,46,112,114,101,82,117,110,32,61,32,91,104,46,112,114,101,82,117,110,93,41,59,32,104,46,112,114,101,82,117,110,46,108,101,110,103,116,104,59,32,41,32,116,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,66,97,40,113,97,41,59,10,32,32,32,32,32,32,32,32,32,32,48,32,60,32,70,32,124,124,32,40,104,46,115,101,116,83,116,97,116,117,115,32,63,32,40,104,46,115,101,116,83,116,97,116,117,115,40,34,82,117,110,110,105,110,103,46,46,46,34,41,44,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,104,46,115,101,116,83,116,97,116,117,115,40,34,34,41,44,32,49,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,97,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,49,41,41,32,58,32,97,40,41,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,104,46,112,114,101,73,110,105,116,41,10,32,32,32,32,32,32,32,32,102,111,114,32,40,34,102,117,110,99,116,105,111,110,34,32,61,61,32,116,121,112,101,111,102,32,104,46,112,114,101,73,110,105,116,32,38,38,32,40,104,46,112,114,101,73,110,105,116,32,61,32,91,104,46,112,114,101,73,110,105,116,93,41,59,32,48,32,60,32,104,46,112,114,101,73,110,105,116,46,108,101,110,103,116,104,59,32,41,32,104,46,112,114,101,73,110,105,116,46,112,111,112,40,41,40,41,59,10,32,32,32,32,32,32,111,99,40,41,59,10,32,32,32,32,32,32,109,111,100,117,108,101,82,116,110,32,61,32,99,97,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,82,116,110,59,10,32,32,32,32,125,59,10,32,32,125,41,40,41,59,10,32,32,118,97,114,32,100,111,116,108,111,116,116,105,101,95,112,108,97,121,101,114,95,100,101,102,97,117,108,116,32,61,32,99,114,101,97,116,101,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,77,111,100,117,108,101,59,10,10,32,32,47,47,32,115,114,99,47,99,111,114,101,47,100,111,116,108,111,116,116,105,101,45,119,97,115,109,45,108,111,97,100,101,114,46,116,115,10,32,32,118,97,114,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,82,101,110,100,101,114,101,114,76,111,97,100,101,114,32,105,115,32,97,32,115,116,97,116,105,99,32,99,108,97,115,115,32,97,110,100,32,99,97,110,110,111,116,32,98,101,32,105,110,115,116,97,110,116,105,97,116,101,100,46,34,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,95,116,114,121,76,111,97,100,40,117,114,108,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,117,108,101,32,61,32,97,119,97,105,116,32,100,111,116,108,111,116,116,105,101,95,112,108,97,121,101,114,95,100,101,102,97,117,108,116,40,123,32,108,111,99,97,116,101,70,105,108,101,58,32,40,41,32,61,62,32,117,114,108,32,125,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,84,114,105,101,115,32,116,111,32,108,111,97,100,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,32,102,114,111,109,32,116,104,101,32,112,114,105,109,97,114,121,32,85,82,76,44,32,102,97,108,108,105,110,103,32,98,97,99,107,32,116,111,32,97,32,98,97,99,107,117,112,32,85,82,76,32,105,102,32,110,101,99,101,115,115,97,114,121,46,10,32,32,32,32,32,42,32,84,104,114,111,119,115,32,97,110,32,101,114,114,111,114,32,105,102,32,98,111,116,104,32,85,82,76,115,32,102,97,105,108,32,116,111,32,108,111,97,100,32,116,104,101,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,80,114,111,109,105,115,101,60,77,111,100,117,108,101,62,32,45,32,65,32,112,114,111,109,105,115,101,32,116,104,97,116,32,114,101,115,111,108,118,101,115,32,116,111,32,116,104,101,32,108,111,97,100,101,100,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,95,108,111,97,100,87,105,116,104,66,97,99,107,117,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,32,61,32,116,104,105,115,46,95,116,114,121,76,111,97,100,40,116,104,105,115,46,95,119,97,115,109,85,82,76,41,46,99,97,116,99,104,40,97,115,121,110,99,32,40,105,110,105,116,105,97,108,69,114,114,111,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,97,99,107,117,112,85,114,108,32,61,32,96,104,116,116,112,115,58,47,47,117,110,112,107,103,46,99,111,109,47,36,123,80,65,67,75,65,71,69,95,78,65,77,69,125,64,36,123,80,65,67,75,65,71,69,95,86,69,82,83,73,79,78,125,47,100,105,115,116,47,100,111,116,108,111,116,116,105,101,45,112,108,97,121,101,114,46,119,97,115,109,96,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,96,80,114,105,109,97,114,121,32,87,65,83,77,32,108,111,97,100,32,102,97,105,108,101,100,32,102,114,111,109,32,36,123,116,104,105,115,46,95,119,97,115,109,85,82,76,125,46,32,69,114,114,111,114,58,32,36,123,105,110,105,116,105,97,108,69,114,114,111,114,46,109,101,115,115,97,103,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,96,65,116,116,101,109,112,116,105,110,103,32,116,111,32,108,111,97,100,32,87,65,83,77,32,102,114,111,109,32,98,97,99,107,117,112,32,85,82,76,58,32,36,123,98,97,99,107,117,112,85,114,108,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,97,119,97,105,116,32,116,104,105,115,46,95,116,114,121,76,111,97,100,40,98,97,99,107,117,112,85,114,108,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,98,97,99,107,117,112,69,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,80,114,105,109,97,114,121,32,87,65,83,77,32,85,82,76,32,102,97,105,108,101,100,58,32,36,123,105,110,105,116,105,97,108,69,114,114,111,114,46,109,101,115,115,97,103,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,66,97,99,107,117,112,32,87,65,83,77,32,85,82,76,32,102,97,105,108,101,100,58,32,36,123,98,97,99,107,117,112,69,114,114,111,114,46,109,101,115,115,97,103,101,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,34,87,65,83,77,32,108,111,97,100,105,110,103,32,102,97,105,108,101,100,32,102,114,111,109,32,97,108,108,32,115,111,117,114,99,101,115,46,34,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,80,117,98,108,105,99,32,109,101,116,104,111,100,32,116,111,32,108,111,97,100,32,116,104,101,32,87,101,98,65,115,115,101,109,98,108,121,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,32,85,116,105,108,105,122,101,115,32,97,32,112,114,105,109,97,114,121,32,97,110,100,32,98,97,99,107,117,112,32,85,82,76,32,102,111,114,32,114,111,98,117,115,116,110,101,115,115,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,80,114,111,109,105,115,101,60,77,111,100,117,108,101,62,32,45,32,65,32,112,114,111,109,105,115,101,32,116,104,97,116,32,114,101,115,111,108,118,101,115,32,116,111,32,116,104,101,32,108,111,97,100,101,100,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,108,111,97,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,108,111,97,100,87,105,116,104,66,97,99,107,117,112,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,97,32,110,101,119,32,85,82,76,32,102,111,114,32,116,104,101,32,87,65,83,77,32,102,105,108,101,32,97,110,100,32,105,110,118,97,108,105,100,97,116,101,115,32,116,104,101,32,99,117,114,114,101,110,116,32,109,111,100,117,108,101,32,112,114,111,109,105,115,101,46,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,114,105,110,103,32,45,32,32,84,104,101,32,110,101,119,32,85,82,76,32,102,111,114,32,116,104,101,32,87,65,83,77,32,102,105,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,115,101,116,87,97,115,109,85,114,108,40,117,114,108,41,32,123,10,32,32,32,32,32,32,105,102,32,40,117,114,108,32,61,61,61,32,116,104,105,115,46,95,119,97,115,109,85,82,76,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,119,97,115,109,85,82,76,32,61,32,117,114,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,77,111,100,117,108,101,80,114,111,109,105,115,101,32,61,32,110,117,108,108,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,47,47,32,101,115,108,105,110,116,45,100,105,115,97,98,108,101,45,110,101,120,116,45,108,105,110,101,32,64,116,121,112,101,115,99,114,105,112,116,45,101,115,108,105,110,116,47,110,97,109,105,110,103,45,99,111,110,118,101,110,116,105,111,110,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,44,32,34,95,77,111,100,117,108,101,80,114,111,109,105,115,101,34,44,32,110,117,108,108,41,59,10,32,32,47,47,32,85,82,76,32,102,111,114,32,116,104,101,32,87,65,83,77,32,102,105,108,101,44,32,99,111,110,115,116,114,117,99,116,101,100,32,117,115,105,110,103,32,112,97,99,107,97,103,101,32,105,110,102,111,114,109,97,116,105,111,110,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,44,32,34,95,119,97,115,109,85,82,76,34,44,32,96,104,116,116,112,115,58,47,47,99,100,110,46,106,115,100,101,108,105,118,114,46,110,101,116,47,110,112,109,47,36,123,80,65,67,75,65,71,69,95,78,65,77,69,125,64,36,123,80,65,67,75,65,71,69,95,86,69,82,83,73,79,78,125,47,100,105,115,116,47,100,111,116,108,111,116,116,105,101,45,112,108,97,121,101,114,46,119,97,115,109,96,41,59,10,10,32,32,47,47,32,115,114,99,47,101,118,101,110,116,45,109,97,110,97,103,101,114,46,116,115,10,32,32,118,97,114,32,69,118,101,110,116,77,97,110,97,103,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,34,44,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,108,101,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,103,101,116,40,116,121,112,101,41,59,10,32,32,32,32,32,32,105,102,32,40,33,108,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,32,61,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,115,101,116,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,115,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,103,101,116,40,116,121,112,101,41,59,10,32,32,32,32,32,32,105,102,32,40,33,108,105,115,116,101,110,101,114,115,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,115,105,122,101,32,61,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,116,121,112,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,116,121,112,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,100,105,115,112,97,116,99,104,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,103,101,116,40,101,118,101,110,116,46,116,121,112,101,41,59,10,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,63,46,102,111,114,69,97,99,104,40,40,108,105,115,116,101,110,101,114,41,32,61,62,32,108,105,115,116,101,110,101,114,40,101,118,101,110,116,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,109,111,118,101,65,108,108,69,118,101,110,116,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,32,32,125,10,32,32,125,59,10,10,32,32,47,47,32,115,114,99,47,111,102,102,115,99,114,101,101,110,45,111,98,115,101,114,118,101,114,46,116,115,10,32,32,118,97,114,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,115,116,97,116,105,99,32,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,114,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,116,101,114,115,101,99,116,105,111,110,79,98,115,101,114,118,101,114,67,97,108,108,98,97,99,107,32,61,32,40,101,110,116,114,105,101,115,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,101,110,116,114,105,101,115,46,102,111,114,69,97,99,104,40,40,101,110,116,114,121,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,103,101,116,40,101,110,116,114,121,46,116,97,114,103,101,116,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,101,110,116,114,121,46,105,115,73,110,116,101,114,115,101,99,116,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,117,110,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,101,119,32,73,110,116,101,114,115,101,99,116,105,111,110,79,98,115,101,114,118,101,114,40,105,110,116,101,114,115,101,99,116,105,111,110,79,98,115,101,114,118,101,114,67,97,108,108,98,97,99,107,44,32,123,10,32,32,32,32,32,32,32,32,116,104,114,101,115,104,111,108,100,58,32,48,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,111,98,115,101,114,118,101,40,99,97,110,118,97,115,44,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,104,97,115,40,99,97,110,118,97,115,41,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,101,116,40,99,97,110,118,97,115,44,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,100,101,108,101,116,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,105,122,101,32,61,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,100,105,115,99,111,110,110,101,99,116,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,125,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,114,34,44,32,110,117,108,108,41,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,34,44,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,41,59,10,10,32,32,47,47,32,115,114,99,47,114,101,115,105,122,101,45,111,98,115,101,114,118,101,114,46,116,115,10,32,32,118,97,114,32,82,69,83,73,90,69,95,68,69,66,79,85,78,67,69,95,84,73,77,69,32,61,32,49,48,48,59,10,32,32,118,97,114,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,32,61,32,99,108,97,115,115,32,123,10,32,32,32,32,115,116,97,116,105,99,32,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,114,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,105,122,101,72,97,110,100,108,101,114,32,61,32,40,101,110,116,114,105,101,115,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,101,110,116,114,105,101,115,46,102,111,114,69,97,99,104,40,40,101,110,116,114,121,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,101,108,101,109,101,110,116,32,61,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,103,101,116,40,101,110,116,114,121,46,116,97,114,103,101,116,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,101,108,101,109,101,110,116,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,91,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,44,32,116,105,109,101,111,117,116,93,32,61,32,101,108,101,109,101,110,116,59,10,32,32,32,32,32,32,32,32,32,32,99,108,101,97,114,84,105,109,101,111,117,116,40,116,105,109,101,111,117,116,41,59,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,110,101,119,84,105,109,101,111,117,116,32,61,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,82,69,83,73,90,69,95,68,69,66,79,85,78,67,69,95,84,73,77,69,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,101,116,40,101,110,116,114,121,46,116,97,114,103,101,116,44,32,91,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,44,32,110,101,119,84,105,109,101,111,117,116,93,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,101,119,32,82,101,115,105,122,101,79,98,115,101,114,118,101,114,40,114,101,115,105,122,101,72,97,110,100,108,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,111,98,115,101,114,118,101,40,99,97,110,118,97,115,44,32,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,105,110,105,116,105,97,108,105,122,101,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,104,97,115,40,99,97,110,118,97,115,41,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,101,116,40,99,97,110,118,97,115,44,32,91,100,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,44,32,48,93,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,101,108,101,109,101,110,116,32,61,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,103,101,116,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,105,102,32,40,101,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,116,105,109,101,111,117,116,73,100,32,61,32,101,108,101,109,101,110,116,91,49,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,105,109,101,111,117,116,73,100,41,32,99,108,101,97,114,84,105,109,101,111,117,116,40,116,105,109,101,111,117,116,73,100,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,63,46,117,110,111,98,115,101,114,118,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,100,101,108,101,116,101,40,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,46,115,105,122,101,32,38,38,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,46,100,105,115,99,111,110,110,101,99,116,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,111,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,125,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,114,34,44,32,110,117,108,108,41,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,44,32,34,95,111,98,115,101,114,118,101,100,67,97,110,118,97,115,101,115,34,44,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,41,59,10,10,32,32,47,47,32,115,114,99,47,117,116,105,108,115,46,116,115,10,32,32,102,117,110,99,116,105,111,110,32,105,115,72,101,120,67,111,108,111,114,40,99,111,108,111,114,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,47,94,35,40,91,92,100,97,45,102,93,123,54,125,124,91,92,100,97,45,102,93,123,56,125,41,36,47,105,117,46,116,101,115,116,40,99,111,108,111,114,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,104,101,120,83,116,114,105,110,103,84,111,82,71,66,65,73,110,116,40,99,111,108,111,114,72,101,120,41,32,123,10,32,32,32,32,105,102,32,40,33,105,115,72,101,120,67,111,108,111,114,40,99,111,108,111,114,72,101,120,41,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,125,10,32,32,32,32,108,101,116,32,104,101,120,32,61,32,99,111,108,111,114,72,101,120,46,114,101,112,108,97,99,101,40,34,35,34,44,32,34,34,41,59,10,32,32,32,32,104,101,120,32,61,32,104,101,120,46,108,101,110,103,116,104,32,61,61,61,32,54,32,63,32,96,36,123,104,101,120,125,102,102,96,32,58,32,104,101,120,59,10,32,32,32,32,114,101,116,117,114,110,32,112,97,114,115,101,73,110,116,40,104,101,120,44,32,49,54,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,68,111,116,76,111,116,116,105,101,40,102,105,108,101,68,97,116,97,41,32,123,10,32,32,32,32,105,102,32,40,102,105,108,101,68,97,116,97,46,98,121,116,101,76,101,110,103,116,104,32,60,32,52,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,99,111,110,115,116,32,102,105,108,101,83,105,103,110,97,116,117,114,101,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,102,105,108,101,68,97,116,97,46,115,108,105,99,101,40,48,44,32,90,73,80,95,83,73,71,78,65,84,85,82,69,46,98,121,116,101,76,101,110,103,116,104,41,41,59,10,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,90,73,80,95,83,73,71,78,65,84,85,82,69,46,108,101,110,103,116,104,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,105,102,32,40,90,73,80,95,83,73,71,78,65,84,85,82,69,91,105,93,32,33,61,61,32,102,105,108,101,83,105,103,110,97,116,117,114,101,91,105,93,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,76,111,116,116,105,101,74,83,79,78,40,106,115,111,110,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,76,79,84,84,73,69,95,74,83,79,78,95,77,65,78,68,65,84,79,82,89,95,70,73,69,76,68,83,46,101,118,101,114,121,40,40,102,105,101,108,100,41,32,61,62,32,79,98,106,101,99,116,46,112,114,111,116,111,116,121,112,101,46,104,97,115,79,119,110,80,114,111,112,101,114,116,121,46,99,97,108,108,40,106,115,111,110,44,32,102,105,101,108,100,41,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,76,111,116,116,105,101,40,102,105,108,101,68,97,116,97,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,102,105,108,101,68,97,116,97,32,61,61,61,32,34,115,116,114,105,110,103,34,41,32,123,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,105,115,76,111,116,116,105,101,74,83,79,78,40,74,83,79,78,46,112,97,114,115,101,40,102,105,108,101,68,97,116,97,41,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,95,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,115,76,111,116,116,105,101,74,83,79,78,40,102,105,108,101,68,97,116,97,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,103,101,116,68,101,102,97,117,108,116,68,80,82,40,41,32,123,10,32,32,32,32,99,111,110,115,116,32,100,112,114,32,61,32,73,83,95,66,82,79,87,83,69,82,32,63,32,119,105,110,100,111,119,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,58,32,49,59,10,32,32,32,32,114,101,116,117,114,110,32,49,32,43,32,40,100,112,114,32,45,32,49,41,32,42,32,68,69,70,65,85,76,84,95,68,80,82,95,70,65,67,84,79,82,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,101,108,101,109,101,110,116,41,32,123,10,32,32,32,32,99,111,110,115,116,32,114,101,99,116,32,61,32,101,108,101,109,101,110,116,46,103,101,116,66,111,117,110,100,105,110,103,67,108,105,101,110,116,82,101,99,116,40,41,59,10,32,32,32,32,99,111,110,115,116,32,118,105,101,119,112,111,114,116,72,101,105,103,104,116,32,61,32,119,105,110,100,111,119,46,105,110,110,101,114,72,101,105,103,104,116,32,124,124,32,100,111,99,117,109,101,110,116,46,100,111,99,117,109,101,110,116,69,108,101,109,101,110,116,46,99,108,105,101,110,116,72,101,105,103,104,116,59,10,32,32,32,32,99,111,110,115,116,32,118,105,101,119,112,111,114,116,87,105,100,116,104,32,61,32,119,105,110,100,111,119,46,105,110,110,101,114,87,105,100,116,104,32,124,124,32,100,111,99,117,109,101,110,116,46,100,111,99,117,109,101,110,116,69,108,101,109,101,110,116,46,99,108,105,101,110,116,87,105,100,116,104,59,10,32,32,32,32,114,101,116,117,114,110,32,33,40,114,101,99,116,46,98,111,116,116,111,109,32,60,32,48,32,124,124,32,114,101,99,116,46,116,111,112,32,62,32,118,105,101,119,112,111,114,116,72,101,105,103,104,116,32,124,124,32,114,101,99,116,46,114,105,103,104,116,32,60,32,48,32,124,124,32,114,101,99,116,46,108,101,102,116,32,62,32,118,105,101,119,112,111,114,116,87,105,100,116,104,41,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,32,123,10,32,32,32,32,99,111,110,115,116,32,99,97,110,118,97,115,32,61,32,101,118,101,110,116,46,116,97,114,103,101,116,59,10,32,32,32,32,105,102,32,40,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,99,116,32,61,32,99,97,110,118,97,115,46,103,101,116,66,111,117,110,100,105,110,103,67,108,105,101,110,116,82,101,99,116,40,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,99,116,46,119,105,100,116,104,32,61,61,61,32,48,32,124,124,32,114,101,99,116,46,104,101,105,103,104,116,32,61,61,61,32,48,32,124,124,32,99,97,110,118,97,115,46,119,105,100,116,104,32,61,61,61,32,48,32,124,124,32,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,99,97,108,101,88,32,61,32,99,97,110,118,97,115,46,119,105,100,116,104,32,47,32,114,101,99,116,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,99,97,108,101,89,32,61,32,99,97,110,118,97,115,46,104,101,105,103,104,116,32,47,32,114,101,99,116,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,40,101,118,101,110,116,46,99,108,105,101,110,116,88,32,45,32,114,101,99,116,46,108,101,102,116,41,32,42,32,115,99,97,108,101,88,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,40,101,118,101,110,116,46,99,108,105,101,110,116,89,32,45,32,114,101,99,116,46,116,111,112,41,32,42,32,115,99,97,108,101,89,59,10,32,32,32,32,32,32,105,102,32,40,33,78,117,109,98,101,114,46,105,115,70,105,110,105,116,101,40,120,41,32,124,124,32,33,78,117,109,98,101,114,46,105,115,70,105,110,105,116,101,40,121,41,32,124,124,32,78,117,109,98,101,114,46,105,115,78,97,78,40,120,41,32,124,124,32,78,117,109,98,101,114,46,105,115,78,97,78,40,121,41,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,32,120,44,32,121,32,125,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,102,117,110,99,116,105,111,110,32,104,97,110,100,108,101,79,112,101,110,85,114,108,40,109,101,115,115,97,103,101,41,32,123,10,32,32,32,32,99,111,110,115,116,32,99,111,110,116,101,110,116,32,61,32,109,101,115,115,97,103,101,46,114,101,112,108,97,99,101,40,34,79,112,101,110,85,114,108,58,32,34,44,32,34,34,41,59,10,32,32,32,32,99,111,110,115,116,32,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,32,61,32,99,111,110,116,101,110,116,46,105,110,100,101,120,79,102,40,34,32,124,32,84,97,114,103,101,116,58,32,34,41,59,10,32,32,32,32,108,101,116,32,117,114,108,84,111,79,112,101,110,59,10,32,32,32,32,108,101,116,32,116,97,114,103,101,116,59,10,32,32,32,32,105,102,32,40,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,32,61,61,61,32,45,49,41,32,123,10,32,32,32,32,32,32,117,114,108,84,111,79,112,101,110,32,61,32,99,111,110,116,101,110,116,59,10,32,32,32,32,32,32,116,97,114,103,101,116,32,61,32,34,95,98,108,97,110,107,34,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,117,114,108,84,111,79,112,101,110,32,61,32,99,111,110,116,101,110,116,46,115,117,98,115,116,114,105,110,103,40,48,44,32,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,41,59,10,32,32,32,32,32,32,116,97,114,103,101,116,32,61,32,99,111,110,116,101,110,116,46,115,117,98,115,116,114,105,110,103,40,116,97,114,103,101,116,83,101,112,97,114,97,116,111,114,73,110,100,101,120,32,43,32,34,32,124,32,84,97,114,103,101,116,58,32,34,46,108,101,110,103,116,104,41,59,10,32,32,32,32,125,10,32,32,32,32,119,105,110,100,111,119,46,111,112,101,110,40,117,114,108,84,111,79,112,101,110,44,32,116,97,114,103,101,116,41,59,10,32,32,125,10,10,32,32,47,47,32,115,114,99,47,117,116,105,108,115,47,118,101,99,116,111,114,45,99,104,97,114,46,116,115,10,32,32,118,97,114,32,116,111,86,101,99,116,111,114,67,104,97,114,32,61,32,40,109,111,100,117,108,101,44,32,100,97,116,97,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,118,101,99,116,111,114,67,104,97,114,32,61,32,110,101,119,32,109,111,100,117,108,101,46,86,101,99,116,111,114,67,104,97,114,40,41,59,10,32,32,32,32,99,111,110,115,116,32,117,105,110,116,56,65,114,114,97,121,32,61,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,100,97,116,97,41,59,10,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,117,105,110,116,56,65,114,114,97,121,46,108,101,110,103,116,104,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,98,121,116,101,32,61,32,117,105,110,116,56,65,114,114,97,121,91,105,93,59,10,32,32,32,32,32,32,105,102,32,40,98,121,116,101,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,116,121,112,101,111,102,32,98,121,116,101,32,61,61,61,32,34,110,117,109,98,101,114,34,41,32,123,10,32,32,32,32,32,32,32,32,118,101,99,116,111,114,67,104,97,114,46,112,117,115,104,95,98,97,99,107,40,98,121,116,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,118,101,99,116,111,114,67,104,97,114,59,10,32,32,125,59,10,10,32,32,47,47,32,115,114,99,47,100,111,116,108,111,116,116,105,101,46,116,115,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,32,61,32,40,109,111,100,101,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,105,102,32,40,109,111,100,101,32,61,61,61,32,34,114,101,118,101,114,115,101,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,82,101,118,101,114,115,101,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,34,98,111,117,110,99,101,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,66,111,117,110,99,101,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,34,114,101,118,101,114,115,101,45,98,111,117,110,99,101,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,82,101,118,101,114,115,101,66,111,117,110,99,101,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,77,111,100,101,46,70,111,114,119,97,114,100,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,70,105,116,32,61,32,40,102,105,116,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,105,102,32,40,102,105,116,32,61,61,61,32,34,99,111,110,116,97,105,110,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,67,111,110,116,97,105,110,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,99,111,118,101,114,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,67,111,118,101,114,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,102,105,108,108,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,70,105,108,108,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,102,105,116,45,104,101,105,103,104,116,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,70,105,116,72,101,105,103,104,116,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,105,116,32,61,61,61,32,34,102,105,116,45,119,105,100,116,104,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,70,105,116,87,105,100,116,104,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,70,105,116,46,78,111,110,101,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,65,108,105,103,110,32,61,32,40,97,108,105,103,110,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,99,111,114,101,65,108,105,103,110,32,61,32,110,101,119,32,109,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,99,111,114,101,65,108,105,103,110,46,112,117,115,104,95,98,97,99,107,40,97,108,105,103,110,91,48,93,41,59,10,32,32,32,32,99,111,114,101,65,108,105,103,110,46,112,117,115,104,95,98,97,99,107,40,97,108,105,103,110,91,49,93,41,59,10,32,32,32,32,114,101,116,117,114,110,32,99,111,114,101,65,108,105,103,110,59,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,32,61,32,40,115,101,103,109,101,110,116,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,99,111,114,101,115,101,103,109,101,110,116,32,61,32,110,101,119,32,109,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,105,102,32,40,115,101,103,109,101,110,116,46,108,101,110,103,116,104,32,33,61,61,32,50,41,32,114,101,116,117,114,110,32,99,111,114,101,115,101,103,109,101,110,116,59,10,32,32,32,32,99,111,114,101,115,101,103,109,101,110,116,46,112,117,115,104,95,98,97,99,107,40,115,101,103,109,101,110,116,91,48,93,41,59,10,32,32,32,32,99,111,114,101,115,101,103,109,101,110,116,46,112,117,115,104,95,98,97,99,107,40,115,101,103,109,101,110,116,91,49,93,41,59,10,32,32,32,32,114,101,116,117,114,110,32,99,111,114,101,115,101,103,109,101,110,116,59,10,32,32,125,59,10,32,32,118,97,114,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,32,61,32,40,108,97,121,111,117,116,44,32,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,105,102,32,40,33,108,97,121,111,117,116,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,111,100,117,108,101,46,99,114,101,97,116,101,68,101,102,97,117,108,116,76,97,121,111,117,116,40,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,97,108,105,103,110,58,32,99,114,101,97,116,101,67,111,114,101,65,108,105,103,110,40,108,97,121,111,117,116,46,97,108,105,103,110,32,63,63,32,91,48,46,53,44,32,48,46,53,93,44,32,109,111,100,117,108,101,41,44,10,32,32,32,32,32,32,102,105,116,58,32,99,114,101,97,116,101,67,111,114,101,70,105,116,40,108,97,121,111,117,116,46,102,105,116,32,63,63,32,34,99,111,110,116,97,105,110,34,44,32,109,111,100,117,108,101,41,10,32,32,32,32,125,59,10,32,32,125,59,10,32,32,118,97,114,32,95,68,111,116,76,111,116,116,105,101,32,61,32,99,108,97,115,115,32,95,68,111,116,76,111,116,116,105,101,32,123,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,114,101,97,116,101,115,32,97,32,110,101,119,32,68,111,116,76,111,116,116,105,101,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,32,102,111,114,32,114,101,110,100,101,114,105,110,103,32,76,111,116,116,105,101,32,97,110,105,109,97,116,105,111,110,115,46,10,32,32,32,32,32,42,32,73,110,105,116,105,97,108,105,122,101,115,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,44,32,101,118,101,110,116,32,115,121,115,116,101,109,44,32,97,110,100,32,108,111,97,100,115,32,97,110,105,109,97,116,105,111,110,32,105,102,32,115,114,99,32,111,114,32,100,97,116,97,32,105,115,32,112,114,111,118,105,100,101,100,32,105,110,32,99,111,110,102,105,103,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,67,111,110,102,105,103,117,114,97,116,105,111,110,32,111,98,106,101,99,116,32,115,112,101,99,105,102,121,105,110,103,32,97,110,105,109,97,116,105,111,110,32,115,111,117,114,99,101,44,32,112,108,97,121,98,97,99,107,32,115,101,116,116,105,110,103,115,44,32,97,110,100,32,114,101,110,100,101,114,105,110,103,32,111,112,116,105,111,110,115,10,32,32,32,32,32,42,47,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,99,97,110,118,97,115,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,112,101,110,100,105,110,103,76,111,97,100,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,99,111,110,116,101,120,116,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,101,118,101,110,116,77,97,110,97,103,101,114,34,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,102,114,97,109,101,77,97,110,97,103,101,114,34,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,100,111,116,76,111,116,116,105,101,67,111,114,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,34,44,32,34,34,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,34,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,114,101,110,100,101,114,67,111,110,102,105,103,34,44,32,123,125,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,105,115,70,114,111,122,101,110,34,44,32,102,97,108,115,101,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,47,47,32,66,111,117,110,100,32,101,118,101,110,116,32,108,105,115,116,101,110,101,114,115,32,102,111,114,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,67,108,105,99,107,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,34,44,32,110,117,108,108,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,34,44,32,48,41,59,10,32,32,32,32,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,116,104,105,115,44,32,34,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,34,44,32,48,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,32,99,111,110,102,105,103,46,99,97,110,118,97,115,32,63,63,32,110,117,108,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,32,61,32,110,101,119,32,69,118,101,110,116,77,97,110,97,103,101,114,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,32,61,32,110,101,119,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,97,110,97,103,101,114,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,32,61,32,123,10,32,32,32,32,32,32,32,32,46,46,46,99,111,110,102,105,103,46,114,101,110,100,101,114,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,58,32,99,111,110,102,105,103,46,114,101,110,100,101,114,67,111,110,102,105,103,63,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,103,101,116,68,101,102,97,117,108,116,68,80,82,40,41,44,10,32,32,32,32,32,32,32,32,47,47,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,105,115,32,116,114,117,101,32,98,121,32,100,101,102,97,117,108,116,32,116,111,32,112,114,101,118,101,110,116,32,117,110,110,101,99,101,115,115,97,114,121,32,114,101,110,100,101,114,105,110,103,32,119,104,101,110,32,116,104,101,32,99,97,110,118,97,115,32,105,115,32,111,102,102,115,99,114,101,101,110,10,32,32,32,32,32,32,32,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,58,32,99,111,110,102,105,103,46,114,101,110,100,101,114,67,111,110,102,105,103,63,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,63,63,32,116,114,117,101,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,46,108,111,97,100,40,41,46,116,104,101,110,40,40,109,111,100,117,108,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,32,109,111,100,117,108,101,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,32,61,32,110,101,119,32,109,111,100,117,108,101,46,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,76,111,97,100,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,97,100,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,76,111,97,100,69,114,114,111,114,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,101,114,114,111,114,58,32,110,101,119,32,69,114,114,111,114,40,34,102,97,105,108,101,100,32,116,111,32,108,111,97,100,34,41,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,80,108,97,121,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,112,108,97,121,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,80,97,117,115,101,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,112,97,117,115,101,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,111,112,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,115,116,111,112,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,76,111,111,112,40,40,108,111,111,112,67,111,117,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,111,112,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,67,111,109,112,108,101,116,101,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,99,111,109,112,108,101,116,101,34,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,70,114,97,109,101,40,40,99,117,114,114,101,110,116,70,114,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,102,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,82,101,110,100,101,114,40,40,99,117,114,114,101,110,116,70,114,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,114,101,110,100,101,114,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,32,110,101,119,32,109,111,100,117,108,101,46,68,111,116,76,111,116,116,105,101,80,108,97,121,101,114,40,123,10,32,32,32,32,32,32,32,32,32,32,97,110,105,109,97,116,105,111,110,73,100,58,32,99,111,110,102,105,103,46,97,110,105,109,97,116,105,111,110,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,116,104,101,109,101,73,100,58,32,99,111,110,102,105,103,46,116,104,101,109,101,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,47,47,32,70,73,88,77,69,58,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,105,100,32,105,115,32,110,111,116,32,117,115,101,102,117,108,44,32,115,105,110,99,101,32,116,104,101,32,108,111,97,100,32,97,110,100,32,115,116,97,114,116,32,111,102,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,114,101,113,117,105,114,101,32,116,111,32,98,101,32,99,111,110,116,114,111,108,108,101,100,32,98,121,32,116,104,101,32,102,114,97,109,101,119,111,114,107,10,32,32,32,32,32,32,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,97,117,116,111,112,108,97,121,58,32,99,111,110,102,105,103,46,97,117,116,111,112,108,97,121,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,48,44,10,32,32,32,32,32,32,32,32,32,32,108,111,111,112,65,110,105,109,97,116,105,111,110,58,32,99,111,110,102,105,103,46,108,111,111,112,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,58,32,99,111,110,102,105,103,46,108,111,111,112,67,111,117,110,116,32,63,63,32,48,44,10,32,32,32,32,32,32,32,32,32,32,109,111,100,101,58,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,40,99,111,110,102,105,103,46,109,111,100,101,32,63,63,32,34,102,111,114,119,97,114,100,34,44,32,109,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,40,99,111,110,102,105,103,46,115,101,103,109,101,110,116,32,63,63,32,91,93,44,32,109,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,32,32,115,112,101,101,100,58,32,99,111,110,102,105,103,46,115,112,101,101,100,32,63,63,32,49,44,10,32,32,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,99,111,110,102,105,103,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,63,63,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,32,32,109,97,114,107,101,114,58,32,99,111,110,102,105,103,46,109,97,114,107,101,114,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,40,99,111,110,102,105,103,46,108,97,121,111,117,116,44,32,109,111,100,117,108,101,41,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,61,32,99,111,110,102,105,103,46,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,63,63,32,34,34,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,32,61,32,99,111,110,102,105,103,46,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,32,63,63,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,117,98,115,99,114,105,98,101,40,99,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,114,101,97,100,121,34,32,125,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,99,111,110,102,105,103,46,100,97,116,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,99,111,110,102,105,103,46,100,97,116,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,100,97,116,97,58,32,99,111,110,102,105,103,46,100,97,116,97,32,125,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,99,111,110,102,105,103,46,115,114,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,83,114,99,40,99,111,110,102,105,103,46,115,114,99,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,115,114,99,58,32,99,111,110,102,105,103,46,115,114,99,32,125,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,99,111,110,102,105,103,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,99,111,110,102,105,103,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,46,99,97,116,99,104,40,40,101,114,114,111,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,108,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,32,32,101,114,114,111,114,58,32,110,101,119,32,69,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,108,111,97,100,32,119,97,115,109,32,109,111,100,117,108,101,58,32,36,123,101,114,114,111,114,125,96,41,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,109,101,115,115,97,103,101,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,109,101,115,115,97,103,101,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,108,111,97,100,69,114,114,111,114,34,44,32,101,114,114,111,114,58,32,110,101,119,32,69,114,114,111,114,40,109,101,115,115,97,103,101,41,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,97,115,121,110,99,32,95,102,101,116,99,104,68,97,116,97,40,115,114,99,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,97,119,97,105,116,32,102,101,116,99,104,40,115,114,99,41,59,10,32,32,32,32,32,32,105,102,32,40,33,114,101,115,112,111,110,115,101,46,111,107,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,102,101,116,99,104,32,97,110,105,109,97,116,105,111,110,32,100,97,116,97,32,102,114,111,109,32,85,82,76,58,32,36,123,115,114,99,125,46,32,36,123,114,101,115,112,111,110,115,101,46,115,116,97,116,117,115,125,58,32,36,123,114,101,115,112,111,110,115,101,46,115,116,97,116,117,115,84,101,120,116,125,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,100,97,116,97,32,61,32,97,119,97,105,116,32,114,101,115,112,111,110,115,101,46,97,114,114,97,121,66,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,105,102,32,40,105,115,68,111,116,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,100,97,116,97,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,84,101,120,116,68,101,99,111,100,101,114,40,41,46,100,101,99,111,100,101,40,100,97,116,97,41,59,10,32,32,32,32,125,10,32,32,32,32,95,108,111,97,100,70,114,111,109,68,97,116,97,40,100,97,116,97,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,34,91,100,111,116,108,111,116,116,105,101,45,119,101,98,93,32,67,97,110,110,111,116,32,108,111,97,100,32,97,110,105,109,97,116,105,111,110,32,119,105,116,104,111,117,116,32,99,97,110,118,97,115,46,32,67,97,108,108,32,115,101,116,67,97,110,118,97,115,40,41,32,102,105,114,115,116,46,34,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,108,101,116,32,108,111,97,100,101,100,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,100,97,116,97,32,61,61,61,32,34,115,116,114,105,110,103,34,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,32,32,34,73,110,118,97,108,105,100,32,76,111,116,116,105,101,32,74,83,79,78,32,115,116,114,105,110,103,58,32,84,104,101,32,112,114,111,118,105,100,101,100,32,115,116,114,105,110,103,32,100,111,101,115,32,110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,116,104,101,32,76,111,116,116,105,101,32,74,83,79,78,32,102,111,114,109,97,116,46,34,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,68,97,116,97,40,100,97,116,97,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,100,97,116,97,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,66,117,102,102,101,114,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,68,111,116,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,32,32,34,73,110,118,97,108,105,100,32,100,111,116,76,111,116,116,105,101,32,65,114,114,97,121,66,117,102,102,101,114,58,32,84,104,101,32,112,114,111,118,105,100,101,100,32,65,114,114,97,121,66,117,102,102,101,114,32,100,111,101,115,32,110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,116,104,101,32,100,111,116,76,111,116,116,105,101,32,102,111,114,109,97,116,46,34,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,68,111,116,76,111,116,116,105,101,68,97,116,97,40,116,111,86,101,99,116,111,114,67,104,97,114,40,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,44,32,100,97,116,97,41,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,116,121,112,101,111,102,32,100,97,116,97,32,61,61,61,32,34,111,98,106,101,99,116,34,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,76,111,116,116,105,101,40,100,97,116,97,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,32,32,34,73,110,118,97,108,105,100,32,76,111,116,116,105,101,32,74,83,79,78,32,111,98,106,101,99,116,58,32,84,104,101,32,112,114,111,118,105,100,101,100,32,111,98,106,101,99,116,32,100,111,101,115,32,110,111,116,32,99,111,110,102,111,114,109,32,116,111,32,116,104,101,32,76,111,116,116,105,101,32,74,83,79,78,32,102,111,114,109,97,116,46,34,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,68,97,116,97,40,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,100,97,116,97,41,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,10,32,32,32,32,32,32,32,32,32,32,96,85,110,115,117,112,112,111,114,116,101,100,32,100,97,116,97,32,116,121,112,101,32,102,111,114,32,97,110,105,109,97,116,105,111,110,32,100,97,116,97,46,32,69,120,112,101,99,116,101,100,58,32,10,32,32,32,32,32,32,32,32,32,32,45,32,115,116,114,105,110,103,32,40,76,111,116,116,105,101,32,74,83,79,78,41,44,10,32,32,32,32,32,32,32,32,32,32,45,32,65,114,114,97,121,66,117,102,102,101,114,32,40,100,111,116,76,111,116,116,105,101,41,44,10,32,32,32,32,32,32,32,32,32,32,45,32,111,98,106,101,99,116,32,40,76,111,116,116,105,101,32,74,83,79,78,41,46,32,10,32,32,32,32,32,32,32,32,32,32,82,101,99,101,105,118,101,100,58,32,36,123,116,121,112,101,111,102,32,100,97,116,97,125,96,10,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,81,117,97,108,105,116,121,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,102,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,58,32,116,104,105,115,46,99,117,114,114,101,110,116,70,114,97,109,101,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,115,109,76,111,97,100,101,100,32,61,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,115,109,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,115,109,83,116,97,114,116,101,100,32,61,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,115,109,83,116,97,114,116,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,97,117,116,111,82,101,115,105,122,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,108,111,97,100,70,114,111,109,83,114,99,40,115,114,99,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,102,101,116,99,104,68,97,116,97,40,115,114,99,41,46,116,104,101,110,40,40,100,97,116,97,41,32,61,62,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,100,97,116,97,41,41,46,99,97,116,99,104,40,40,101,114,114,111,114,41,32,61,62,32,116,104,105,115,46,95,100,105,115,112,97,116,99,104,69,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,108,111,97,100,32,97,110,105,109,97,116,105,111,110,32,100,97,116,97,32,102,114,111,109,32,85,82,76,58,32,36,123,115,114,99,125,46,32,36,123,101,114,114,111,114,125,96,41,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,114,97,119,32,112,105,120,101,108,32,98,117,102,102,101,114,32,99,111,110,116,97,105,110,105,110,103,32,116,104,101,32,114,101,110,100,101,114,101,100,32,97,110,105,109,97,116,105,111,110,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,82,71,66,65,32,112,105,120,101,108,32,100,97,116,97,32,97,115,32,97,32,85,105,110,116,56,65,114,114,97,121,32,102,111,114,32,97,100,118,97,110,99,101,100,32,105,109,97,103,101,32,112,114,111,99,101,115,115,105,110,103,32,111,114,32,99,117,115,116,111,109,32,114,101,110,100,101,114,105,110,103,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,98,117,102,102,101,114,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,98,117,102,102,101,114,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,73,68,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,97,110,105,109,97,116,105,111,110,32,102,114,111,109,32,97,32,109,117,108,116,105,45,97,110,105,109,97,116,105,111,110,32,100,111,116,76,111,116,116,105,101,32,102,105,108,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,32,115,112,101,99,105,102,105,99,32,97,110,105,109,97,116,105,111,110,32,105,115,32,97,99,116,105,118,101,32,111,114,32,102,111,114,32,115,105,110,103,108,101,45,97,110,105,109,97,116,105,111,110,32,102,105,108,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,73,68,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,116,104,101,109,101,32,97,112,112,108,105,101,100,32,116,111,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,32,116,104,101,109,101,32,105,115,32,97,99,116,105,118,101,46,32,84,104,101,109,101,115,32,109,111,100,105,102,121,32,99,111,108,111,114,115,32,97,110,100,32,118,105,115,117,97,108,32,112,114,111,112,101,114,116,105,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,97,99,116,105,118,101,84,104,101,109,101,73,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,99,116,105,118,101,84,104,101,109,101,73,100,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,108,97,121,111,117,116,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,102,111,114,32,112,111,115,105,116,105,111,110,105,110,103,32,97,110,100,32,115,99,97,108,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,73,110,99,108,117,100,101,115,32,102,105,116,32,109,111,100,101,32,40,99,111,110,116,97,105,110,44,32,99,111,118,101,114,44,32,102,105,108,108,44,32,101,116,99,46,41,32,97,110,100,32,97,108,105,103,110,109,101,110,116,32,91,120,44,32,121,93,32,118,97,108,117,101,115,32,40,48,45,49,32,114,97,110,103,101,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,108,97,121,111,117,116,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,97,121,111,117,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,108,97,121,111,117,116,59,10,32,32,32,32,32,32,105,102,32,40,108,97,121,111,117,116,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,32,32,97,108,105,103,110,58,32,91,108,97,121,111,117,116,46,97,108,105,103,110,46,103,101,116,40,48,41,44,32,108,97,121,111,117,116,46,97,108,105,103,110,46,103,101,116,40,49,41,93,44,10,32,32,32,32,32,32,32,32,32,32,102,105,116,58,32,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,115,119,105,116,99,104,32,40,108,97,121,111,117,116,46,102,105,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,67,111,110,116,97,105,110,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,99,111,110,116,97,105,110,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,67,111,118,101,114,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,99,111,118,101,114,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,70,105,108,108,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,105,108,108,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,70,105,116,72,101,105,103,104,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,105,116,45,104,101,105,103,104,116,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,70,105,116,87,105,100,116,104,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,105,116,45,119,105,100,116,104,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,97,115,101,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,70,105,116,46,78,111,110,101,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,110,111,110,101,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,99,111,110,116,97,105,110,34,59,10,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,125,41,40,41,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,109,97,114,107,101,114,32,110,97,109,101,32,105,102,32,97,32,109,97,114,107,101,114,45,98,97,115,101,100,32,115,101,103,109,101,110,116,32,105,115,32,115,101,116,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,32,109,97,114,107,101,114,32,105,115,32,97,99,116,105,118,101,46,32,85,115,101,32,115,101,116,77,97,114,107,101,114,40,41,32,116,111,32,97,99,116,105,118,97,116,101,32,97,32,110,97,109,101,100,32,115,101,103,109,101,110,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,109,97,114,107,101,114,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,109,97,114,107,101,114,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,109,97,114,107,101,114,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,109,97,110,105,102,101,115,116,32,99,111,110,116,97,105,110,105,110,103,32,109,101,116,97,100,97,116,97,32,97,98,111,117,116,32,97,110,105,109,97,116,105,111,110,115,44,32,116,104,101,109,101,115,44,32,97,110,100,32,115,116,97,116,101,115,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,110,117,108,108,32,105,102,32,110,111,32,109,97,110,105,102,101,115,116,32,105,115,32,97,118,97,105,108,97,98,108,101,32,111,114,32,105,102,32,116,104,101,32,108,111,97,100,101,100,32,97,110,105,109,97,116,105,111,110,32,100,111,101,115,110,39,116,32,105,110,99,108,117,100,101,32,111,110,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,109,97,110,105,102,101,115,116,40,41,32,123,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,97,110,105,102,101,115,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,109,97,110,105,102,101,115,116,83,116,114,105,110,103,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,33,109,97,110,105,102,101,115,116,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,97,110,105,102,101,115,116,74,115,111,110,32,61,32,74,83,79,78,46,112,97,114,115,101,40,109,97,110,105,102,101,115,116,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,79,98,106,101,99,116,46,107,101,121,115,40,109,97,110,105,102,101,115,116,74,115,111,110,41,46,108,101,110,103,116,104,32,61,61,61,32,48,41,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,109,97,110,105,102,101,115,116,74,115,111,110,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,95,101,114,114,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,114,101,110,100,101,114,105,110,103,32,99,111,110,102,105,103,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,73,110,99,108,117,100,101,115,32,115,101,116,116,105,110,103,115,32,108,105,107,101,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,44,32,97,117,116,111,82,101,115,105,122,101,44,32,97,110,100,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,114,101,110,100,101,114,67,111,110,102,105,103,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,112,108,97,121,98,97,99,107,32,115,101,103,109,101,110,116,32,97,115,32,91,115,116,97,114,116,70,114,97,109,101,44,32,101,110,100,70,114,97,109,101,93,46,10,32,32,32,32,32,42,32,73,102,32,110,111,32,115,101,103,109,101,110,116,32,105,115,32,115,101,116,44,32,114,101,116,117,114,110,115,32,117,110,100,101,102,105,110,101,100,32,97,110,100,32,116,104,101,32,102,117,108,108,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,115,101,103,109,101,110,116,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,101,103,109,101,110,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,115,101,103,109,101,110,116,59,10,32,32,32,32,32,32,105,102,32,40,115,101,103,109,101,110,116,32,38,38,32,115,101,103,109,101,110,116,46,115,105,122,101,40,41,32,61,61,61,32,50,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,91,115,101,103,109,101,110,116,46,103,101,116,40,48,41,44,32,115,101,103,109,101,110,116,46,103,101,116,40,49,41,93,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,108,111,111,112,32,99,111,110,102,105,103,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,115,101,116,32,116,111,32,108,111,111,112,32,99,111,110,116,105,110,117,111,117,115,108,121,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,108,111,111,112,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,108,111,111,112,65,110,105,109,97,116,105,111,110,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,32,109,111,100,101,46,10,32,32,32,32,32,42,32,68,101,116,101,114,109,105,110,101,115,32,112,108,97,121,98,97,99,107,32,100,105,114,101,99,116,105,111,110,58,32,39,102,111,114,119,97,114,100,39,44,32,39,114,101,118,101,114,115,101,39,44,32,39,98,111,117,110,99,101,39,32,40,102,111,114,119,97,114,100,32,116,104,101,110,32,114,101,118,101,114,115,101,41,44,32,111,114,32,39,114,101,118,101,114,115,101,45,98,111,117,110,99,101,39,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,109,111,100,101,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,109,111,100,101,59,10,32,32,32,32,32,32,105,102,32,40,109,111,100,101,32,61,61,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,77,111,100,101,46,82,101,118,101,114,115,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,114,101,118,101,114,115,101,34,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,77,111,100,101,46,66,111,117,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,98,111,117,110,99,101,34,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,109,111,100,101,32,61,61,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,77,111,100,101,46,82,101,118,101,114,115,101,66,111,117,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,114,101,118,101,114,115,101,45,98,111,117,110,99,101,34,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,34,102,111,114,119,97,114,100,34,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,114,101,110,100,101,114,105,110,103,32,105,115,32,99,117,114,114,101,110,116,108,121,32,102,114,111,122,101,110,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,102,114,101,101,122,101,40,41,32,104,97,115,32,98,101,101,110,32,99,97,108,108,101,100,32,97,110,100,32,116,104,101,32,114,101,110,100,101,114,105,110,103,32,108,111,111,112,32,105,115,32,112,97,117,115,101,100,32,116,111,32,115,97,118,101,32,114,101,115,111,117,114,99,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,70,114,111,122,101,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,97,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,105,115,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,97,110,100,32,114,117,110,110,105,110,103,46,10,32,32,32,32,32,42,32,84,114,117,101,32,97,102,116,101,114,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,32,105,115,32,99,97,108,108,101,100,32,97,110,100,32,117,110,116,105,108,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,32,105,115,32,99,97,108,108,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,98,97,99,107,103,114,111,117,110,100,32,99,111,108,111,114,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,104,101,32,98,97,99,107,103,114,111,117,110,100,32,99,111,108,111,114,32,97,115,32,97,32,115,116,114,105,110,103,32,40,101,46,103,46,44,32,39,35,70,70,70,70,70,70,39,32,111,114,32,39,116,114,97,110,115,112,97,114,101,110,116,39,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,97,117,116,111,112,108,97,121,32,99,111,110,102,105,103,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,111,110,102,105,103,117,114,101,100,32,116,111,32,115,116,97,114,116,32,112,108,97,121,105,110,103,32,97,117,116,111,109,97,116,105,99,97,108,108,121,32,119,104,101,110,32,108,111,97,100,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,97,117,116,111,112,108,97,121,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,97,117,116,111,112,108,97,121,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,102,114,97,109,101,32,105,110,116,101,114,112,111,108,97,116,105,111,110,32,115,101,116,116,105,110,103,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,102,114,97,109,101,32,105,110,116,101,114,112,111,108,97,116,105,111,110,32,105,115,32,101,110,97,98,108,101,100,32,102,111,114,32,115,109,111,111,116,104,101,114,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,32,115,112,101,101,100,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,104,101,32,115,112,101,101,100,32,109,117,108,116,105,112,108,105,101,114,32,40,49,32,61,32,110,111,114,109,97,108,32,115,112,101,101,100,44,32,50,32,61,32,100,111,117,98,108,101,32,115,112,101,101,100,44,32,48,46,53,32,61,32,104,97,108,102,32,115,112,101,101,100,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,115,112,101,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,99,111,110,102,105,103,40,41,46,115,112,101,101,100,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,32,97,110,100,32,99,111,114,101,32,112,108,97,121,101,114,32,104,97,118,101,32,98,101,101,110,32,105,110,105,116,105,97,108,105,122,101,100,46,10,32,32,32,32,32,42,32,67,104,101,99,107,32,116,104,105,115,32,98,101,102,111,114,101,32,112,101,114,102,111,114,109,105,110,103,32,111,112,101,114,97,116,105,111,110,115,32,116,104,97,116,32,114,101,113,117,105,114,101,32,116,104,101,32,112,108,97,121,101,114,32,116,111,32,98,101,32,114,101,97,100,121,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,82,101,97,100,121,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,33,61,61,32,110,117,108,108,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,97,110,32,97,110,105,109,97,116,105,111,110,32,104,97,115,32,98,101,101,110,32,115,117,99,99,101,115,115,102,117,108,108,121,32,108,111,97,100,101,100,32,97,110,100,32,105,115,32,114,101,97,100,121,32,102,111,114,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,32,67,104,101,99,107,32,116,104,105,115,32,98,101,102,111,114,101,32,99,97,108,108,105,110,103,32,112,108,97,121,40,41,32,111,114,32,111,116,104,101,114,32,112,108,97,121,98,97,99,107,32,109,101,116,104,111,100,115,32,116,111,32,101,110,115,117,114,101,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,114,101,97,100,121,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,76,111,97,100,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,76,111,97,100,101,100,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,112,108,97,121,105,110,103,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,97,110,105,109,97,116,105,111,110,32,105,115,32,97,99,116,105,118,101,108,121,32,112,108,97,121,105,110,103,44,32,102,97,108,115,101,32,119,104,101,110,32,112,97,117,115,101,100,44,32,115,116,111,112,112,101,100,44,32,111,114,32,110,111,116,32,115,116,97,114,116,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,80,108,97,121,105,110,103,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,80,108,97,121,105,110,103,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,112,97,117,115,101,100,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,112,97,117,115,101,40,41,32,104,97,115,32,98,101,101,110,32,99,97,108,108,101,100,32,97,110,100,32,97,110,105,109,97,116,105,111,110,32,105,115,32,110,111,116,32,112,108,97,121,105,110,103,32,111,114,32,115,116,111,112,112,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,80,97,117,115,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,80,97,117,115,101,100,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,73,110,100,105,99,97,116,101,115,32,119,104,101,116,104,101,114,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,99,117,114,114,101,110,116,108,121,32,115,116,111,112,112,101,100,46,10,32,32,32,32,32,42,32,84,114,117,101,32,119,104,101,110,32,115,116,111,112,40,41,32,104,97,115,32,98,101,101,110,32,99,97,108,108,101,100,32,111,114,32,97,110,105,109,97,116,105,111,110,32,104,97,115,110,39,116,32,115,116,97,114,116,101,100,32,121,101,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,105,115,83,116,111,112,112,101,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,83,116,111,112,112,101,100,40,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,32,110,117,109,98,101,114,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,116,114,97,99,107,105,110,103,32,112,108,97,121,98,97,99,107,32,112,111,115,105,116,105,111,110,32,111,114,32,105,109,112,108,101,109,101,110,116,105,110,103,32,99,117,115,116,111,109,32,102,114,97,109,101,32,100,105,115,112,108,97,121,115,46,32,82,111,117,110,100,101,100,32,116,111,32,50,32,100,101,99,105,109,97,108,32,112,108,97,99,101,115,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,99,117,114,114,101,110,116,70,114,97,109,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,48,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,77,97,116,104,46,114,111,117,110,100,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,117,114,114,101,110,116,70,114,97,109,101,40,41,32,42,32,49,48,48,41,32,47,32,49,48,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,116,105,109,101,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,104,97,115,32,99,111,109,112,108,101,116,101,100,32,97,32,108,111,111,112,32,100,117,114,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,32,73,110,99,114,101,109,101,110,116,115,32,101,97,99,104,32,116,105,109,101,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,99,111,109,112,108,101,116,101,115,32,111,110,101,32,102,117,108,108,32,99,121,99,108,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,108,111,111,112,67,111,117,110,116,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,108,111,111,112,67,111,117,110,116,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,116,111,116,97,108,32,110,117,109,98,101,114,32,111,102,32,102,114,97,109,101,115,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,85,115,101,32,119,105,116,104,32,99,117,114,114,101,110,116,70,114,97,109,101,32,116,111,32,99,97,108,99,117,108,97,116,101,32,112,108,97,121,98,97,99,107,32,112,114,111,103,114,101,115,115,32,97,115,32,97,32,112,101,114,99,101,110,116,97,103,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,116,111,116,97,108,70,114,97,109,101,115,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,116,111,116,97,108,70,114,97,109,101,115,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,116,111,116,97,108,32,100,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,110,32,115,101,99,111,110,100,115,46,10,32,32,32,32,32,42,32,82,101,112,114,101,115,101,110,116,115,32,116,104,101,32,116,105,109,101,32,116,111,32,112,108,97,121,32,102,114,111,109,32,116,104,101,32,102,105,114,115,116,32,102,114,97,109,101,32,116,111,32,116,104,101,32,108,97,115,116,32,97,116,32,110,111,114,109,97,108,32,115,112,101,101,100,32,40,115,112,101,101,100,32,61,32,49,41,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,100,117,114,97,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,100,117,114,97,116,105,111,110,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,100,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,99,116,105,118,101,32,115,101,103,109,101,110,116,32,105,110,32,115,101,99,111,110,100,115,46,10,32,32,32,32,32,42,32,73,102,32,110,111,32,115,101,103,109,101,110,116,32,105,115,32,115,101,116,44,32,114,101,116,117,114,110,115,32,116,104,101,32,102,117,108,108,32,97,110,105,109,97,116,105,111,110,32,100,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,40,41,32,63,63,32,48,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,99,97,110,118,97,115,32,101,108,101,109,101,110,116,32,117,115,101,100,32,102,111,114,32,114,101,110,100,101,114,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,116,104,101,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,44,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,44,32,111,114,32,82,101,110,100,101,114,83,117,114,102,97,99,101,32,115,101,116,32,100,117,114,105,110,103,32,105,110,105,116,105,97,108,105,122,97,116,105,111,110,46,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,32,99,97,110,118,97,115,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,99,97,110,118,97,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,68,121,110,97,109,105,99,97,108,108,121,32,108,111,97,100,115,32,97,32,110,101,119,32,97,110,105,109,97,116,105,111,110,44,32,114,101,112,108,97,99,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,111,110,101,32,105,102,32,97,110,121,46,10,32,32,32,32,32,42,32,83,116,111,112,115,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,44,32,99,108,101,97,110,115,32,117,112,32,114,101,115,111,117,114,99,101,115,44,32,97,110,100,32,108,111,97,100,115,32,102,114,111,109,32,116,104,101,32,112,114,111,118,105,100,101,100,32,115,114,99,32,111,114,32,100,97,116,97,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,67,111,110,102,105,103,117,114,97,116,105,111,110,32,102,111,114,32,116,104,101,32,110,101,119,32,97,110,105,109,97,116,105,111,110,32,40,97,108,108,32,67,111,110,102,105,103,32,112,114,111,112,101,114,116,105,101,115,32,101,120,99,101,112,116,32,99,97,110,118,97,115,41,10,32,32,32,32,32,42,47,10,32,32,32,32,108,111,97,100,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,97,110,105,109,97,116,105,111,110,73,100,58,32,99,111,110,102,105,103,46,97,110,105,109,97,116,105,111,110,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,116,104,101,109,101,73,100,58,32,99,111,110,102,105,103,46,116,104,101,109,101,73,100,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,97,117,116,111,112,108,97,121,58,32,99,111,110,102,105,103,46,97,117,116,111,112,108,97,121,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,48,44,10,32,32,32,32,32,32,32,32,108,111,111,112,65,110,105,109,97,116,105,111,110,58,32,99,111,110,102,105,103,46,108,111,111,112,32,63,63,32,102,97,108,115,101,44,10,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,58,32,99,111,110,102,105,103,46,108,111,111,112,67,111,117,110,116,32,63,63,32,48,44,10,32,32,32,32,32,32,32,32,109,111,100,101,58,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,40,99,111,110,102,105,103,46,109,111,100,101,32,63,63,32,34,102,111,114,119,97,114,100,34,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,40,99,111,110,102,105,103,46,115,101,103,109,101,110,116,32,63,63,32,91,93,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,44,10,32,32,32,32,32,32,32,32,115,112,101,101,100,58,32,99,111,110,102,105,103,46,115,112,101,101,100,32,63,63,32,49,44,10,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,99,111,110,102,105,103,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,63,63,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,58,32,99,111,110,102,105,103,46,109,97,114,107,101,114,32,63,63,32,34,34,44,10,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,40,99,111,110,102,105,103,46,108,97,121,111,117,116,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,105,102,32,40,99,111,110,102,105,103,46,100,97,116,97,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,99,111,110,102,105,103,46,100,97,116,97,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,100,97,116,97,58,32,99,111,110,102,105,103,46,100,97,116,97,32,125,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,99,111,110,102,105,103,46,115,114,99,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,83,114,99,40,99,111,110,102,105,103,46,115,114,99,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,123,32,115,114,99,58,32,99,111,110,102,105,103,46,115,114,99,32,125,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,99,111,110,102,105,103,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,63,63,32,34,34,41,59,10,32,32,32,32,125,10,32,32,32,32,95,100,114,97,119,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,99,111,110,116,101,120,116,32,38,38,32,34,103,101,116,67,111,110,116,101,120,116,34,32,105,110,32,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,116,121,112,101,111,102,32,116,104,105,115,46,95,99,97,110,118,97,115,46,103,101,116,67,111,110,116,101,120,116,32,61,61,61,32,34,102,117,110,99,116,105,111,110,34,32,38,38,32,40,116,121,112,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,124,124,32,116,121,112,101,111,102,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,32,33,61,61,32,34,117,110,100,101,102,105,110,101,100,34,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,103,101,116,67,111,110,116,101,120,116,40,34,50,100,34,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,111,110,116,101,120,116,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,98,117,102,102,101,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,98,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,32,42,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,32,42,32,66,89,84,69,83,95,80,69,82,95,80,73,88,69,76,59,10,32,32,32,32,32,32,32,32,105,102,32,40,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,32,33,61,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,32,61,61,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,43,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,61,32,49,59,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,32,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,61,61,61,32,49,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,119,97,114,110,40,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,96,91,100,111,116,108,111,116,116,105,101,45,119,101,98,93,32,80,101,114,115,105,115,116,101,110,116,32,98,117,102,102,101,114,32,115,105,122,101,32,109,105,115,109,97,116,99,104,32,100,101,116,101,99,116,101,100,46,32,69,120,112,101,99,116,101,100,32,36,123,101,120,112,101,99,116,101,100,76,101,110,103,116,104,125,32,98,121,116,101,115,32,102,111,114,32,99,97,110,118,97,115,32,36,123,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,125,120,36,123,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,125,44,32,98,117,116,32,103,111,116,32,36,123,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,125,32,98,121,116,101,115,46,32,84,104,105,115,32,109,97,121,32,105,110,100,105,99,97,116,101,32,97,32,87,65,83,77,32,109,101,109,111,114,121,32,97,108,108,111,99,97,116,105,111,110,32,105,115,115,117,101,32,111,114,32,105,110,118,97,108,105,100,32,99,97,110,118,97,115,32,100,105,109,101,110,115,105,111,110,115,46,96,10,32,32,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,117,102,102,101,114,77,105,115,109,97,116,99,104,67,111,117,110,116,32,61,32,48,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,97,115,116,69,120,112,101,99,116,101,100,66,117,102,102,101,114,83,105,122,101,32,61,32,101,120,112,101,99,116,101,100,76,101,110,103,116,104,59,10,32,32,32,32,32,32,32,32,108,101,116,32,105,109,97,103,101,68,97,116,97,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,99,108,97,109,112,101,100,66,117,102,102,101,114,32,61,32,110,101,119,32,85,105,110,116,56,67,108,97,109,112,101,100,65,114,114,97,121,40,98,117,102,102,101,114,44,32,48,44,32,98,117,102,102,101,114,46,98,121,116,101,76,101,110,103,116,104,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,73,109,97,103,101,68,97,116,97,32,61,61,61,32,34,117,110,100,101,102,105,110,101,100,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,109,97,103,101,68,97,116,97,32,61,32,116,104,105,115,46,95,99,111,110,116,101,120,116,46,99,114,101,97,116,101,73,109,97,103,101,68,97,116,97,40,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,32,32,32,32,105,109,97,103,101,68,97,116,97,46,100,97,116,97,46,115,101,116,40,99,108,97,109,112,101,100,66,117,102,102,101,114,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,105,109,97,103,101,68,97,116,97,32,61,32,110,101,119,32,73,109,97,103,101,68,97,116,97,40,99,108,97,109,112,101,100,66,117,102,102,101,114,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,46,112,117,116,73,109,97,103,101,68,97,116,97,40,105,109,97,103,101,68,97,116,97,44,32,48,44,32,48,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,105,110,105,116,105,97,108,105,122,101,67,97,110,118,97,115,40,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,38,38,32,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,97,117,116,111,82,101,115,105,122,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,38,38,32,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,105,122,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,105,122,101,40,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,114,101,115,105,122,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,33,61,61,32,110,117,108,108,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,46,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,61,61,32,110,117,108,108,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,38,38,32,33,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,38,38,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,32,124,124,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,76,111,111,112,46,98,105,110,100,40,116,104,105,115,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,97,110,105,109,97,116,105,111,110,76,111,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,32,38,38,32,33,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,97,100,118,97,110,99,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,116,105,99,107,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,97,100,118,97,110,99,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,32,116,104,105,115,46,95,102,114,97,109,101,77,97,110,97,103,101,114,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,76,111,111,112,46,98,105,110,100,40,116,104,105,115,41,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,34,69,114,114,111,114,32,105,110,32,97,110,105,109,97,116,105,111,110,32,102,114,97,109,101,58,34,44,32,101,114,114,111,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,114,101,110,100,101,114,69,114,114,111,114,34,44,32,101,114,114,111,114,32,125,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,101,114,114,111,114,32,105,110,115,116,97,110,99,101,111,102,32,87,101,98,65,115,115,101,109,98,108,121,46,82,117,110,116,105,109,101,69,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,100,101,115,116,114,111,121,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,116,97,114,116,115,32,111,114,32,114,101,115,117,109,101,115,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,102,114,111,109,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,85,110,102,114,101,101,122,101,115,32,114,101,110,100,101,114,105,110,103,32,105,102,32,102,114,111,122,101,110,32,97,110,100,32,115,116,97,114,116,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,108,111,111,112,46,32,85,112,100,97,116,101,115,32,105,115,80,108,97,121,105,110,103,32,115,116,97,116,101,32,116,111,32,116,114,117,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,112,108,97,121,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,33,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,112,108,97,121,105,110,103,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,112,108,97,121,40,41,59,10,32,32,32,32,32,32,105,102,32,40,112,108,97,121,105,110,103,32,124,124,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,32,38,38,32,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,38,38,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,38,38,32,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,80,97,117,115,101,115,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,97,116,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,83,116,111,112,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,108,111,111,112,32,119,104,105,108,101,32,112,114,101,115,101,114,118,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,32,112,111,115,105,116,105,111,110,46,32,85,112,100,97,116,101,115,32,105,115,80,97,117,115,101,100,32,115,116,97,116,101,32,116,111,32,116,114,117,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,112,97,117,115,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,112,97,117,115,101,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,116,111,112,115,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,97,110,100,32,114,101,115,101,116,115,32,116,111,32,116,104,101,32,115,116,97,114,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,72,97,108,116,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,108,111,111,112,32,97,110,100,32,114,101,116,117,114,110,115,32,116,111,32,116,104,101,32,98,101,103,105,110,110,105,110,103,46,32,85,112,100,97,116,101,115,32,105,115,83,116,111,112,112,101,100,32,115,116,97,116,101,32,116,111,32,116,114,117,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,111,107,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,105,102,32,40,111,107,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,102,114,97,109,101,34,44,32,99,117,114,114,101,110,116,70,114,97,109,101,58,32,116,104,105,115,46,99,117,114,114,101,110,116,70,114,97,109,101,32,125,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,101,107,115,32,116,111,32,97,32,115,112,101,99,105,102,105,99,32,102,114,97,109,101,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,97,110,100,32,114,101,110,100,101,114,115,32,105,116,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,105,109,112,108,101,109,101,110,116,105,110,103,32,99,117,115,116,111,109,32,115,99,114,117,98,98,105,110,103,32,99,111,110,116,114,111,108,115,32,111,114,32,112,114,101,99,105,115,101,32,102,114,97,109,101,32,112,111,115,105,116,105,111,110,105,110,103,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,114,97,109,101,32,45,32,84,104,101,32,116,97,114,103,101,116,32,102,114,97,109,101,32,110,117,109,98,101,114,32,116,111,32,115,101,101,107,32,116,111,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,70,114,97,109,101,40,102,114,97,109,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,85,112,100,97,116,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,101,107,40,102,114,97,109,101,41,59,10,32,32,32,32,32,32,105,102,32,40,102,114,97,109,101,85,112,100,97,116,101,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,114,101,110,100,101,114,101,100,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,98,97,99,107,32,115,112,101,101,100,46,10,32,32,32,32,32,42,32,86,97,108,117,101,115,32,97,98,111,118,101,32,49,32,115,112,101,101,100,32,117,112,32,112,108,97,121,98,97,99,107,44,32,98,101,108,111,119,32,49,32,115,108,111,119,32,105,116,32,100,111,119,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,112,101,101,100,32,45,32,80,108,97,121,98,97,99,107,32,115,112,101,101,100,32,109,117,108,116,105,112,108,105,101,114,32,40,101,46,103,46,44,32,50,32,102,111,114,32,50,120,32,115,112,101,101,100,44,32,48,46,53,32,102,111,114,32,104,97,108,102,32,115,112,101,101,100,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,112,101,101,100,40,115,112,101,101,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,115,112,101,101,100,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,98,97,99,107,103,114,111,117,110,100,32,99,111,108,111,114,32,111,102,32,116,104,101,32,99,97,110,118,97,115,32,111,114,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,70,111,114,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,44,32,115,101,116,115,32,116,104,101,32,67,83,83,32,98,97,99,107,103,114,111,117,110,100,46,32,70,111,114,32,111,116,104,101,114,32,115,117,114,102,97,99,101,115,44,32,114,101,110,100,101,114,115,32,98,101,104,105,110,100,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,108,111,114,32,45,32,67,83,83,32,99,111,108,111,114,32,115,116,114,105,110,103,32,40,101,46,103,46,44,32,39,35,70,70,70,70,70,70,39,44,32,39,114,103,98,97,40,48,44,48,44,48,44,48,46,53,41,39,44,32,39,116,114,97,110,115,112,97,114,101,110,116,39,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,99,111,108,111,114,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,115,116,121,108,101,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,61,32,99,111,108,111,114,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,104,101,120,83,116,114,105,110,103,84,111,82,71,66,65,73,110,116,40,99,111,108,111,114,41,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,61,32,99,111,108,111,114,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,69,110,97,98,108,101,115,32,111,114,32,100,105,115,97,98,108,101,115,32,99,111,110,116,105,110,117,111,117,115,32,108,111,111,112,105,110,103,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,87,104,101,110,32,101,110,97,98,108,101,100,32,119,105,116,104,32,108,111,111,112,67,111,117,110,116,32,115,101,116,32,116,111,32,48,44,32,97,110,105,109,97,116,105,111,110,32,114,101,112,101,97,116,115,32,105,110,100,101,102,105,110,105,116,101,108,121,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,111,111,112,32,45,32,84,114,117,101,32,116,111,32,101,110,97,98,108,101,32,108,111,111,112,105,110,103,44,32,102,97,108,115,101,32,116,111,32,112,108,97,121,32,111,110,99,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,76,111,111,112,40,108,111,111,112,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,108,111,111,112,65,110,105,109,97,116,105,111,110,58,32,108,111,111,112,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,116,104,101,32,110,117,109,98,101,114,32,111,102,32,97,100,100,105,116,105,111,110,97,108,32,116,105,109,101,115,32,116,111,32,114,101,112,108,97,121,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,97,102,116,101,114,32,116,104,101,32,102,105,114,115,116,32,112,108,97,121,46,10,32,32,32,32,32,42,32,82,101,113,117,105,114,101,115,32,108,111,111,112,32,116,111,32,98,101,32,116,114,117,101,46,32,65,32,118,97,108,117,101,32,111,102,32,48,32,109,101,97,110,115,32,105,110,102,105,110,105,116,101,32,114,101,112,108,97,121,115,59,32,97,32,112,111,115,105,116,105,118,101,32,118,97,108,117,101,32,110,32,109,101,97,110,115,10,32,32,32,32,32,42,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,115,32,97,32,116,111,116,97,108,32,111,102,32,110,32,43,32,49,32,116,105,109,101,115,32,40,105,110,105,116,105,97,108,32,112,108,97,121,32,43,32,110,32,114,101,112,108,97,121,115,41,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,111,111,112,67,111,117,110,116,32,45,32,78,117,109,98,101,114,32,111,102,32,97,100,100,105,116,105,111,110,97,108,32,114,101,112,108,97,121,115,32,40,48,32,61,32,105,110,102,105,110,105,116,101,44,32,49,32,61,32,112,108,97,121,115,32,116,119,105,99,101,44,32,50,32,61,32,112,108,97,121,115,32,116,104,114,101,101,32,116,105,109,101,115,44,32,101,116,99,46,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,76,111,111,112,67,111,117,110,116,40,108,111,111,112,67,111,117,110,116,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,69,110,97,98,108,101,115,32,111,114,32,100,105,115,97,98,108,101,115,32,102,114,97,109,101,32,105,110,116,101,114,112,111,108,97,116,105,111,110,32,102,111,114,32,115,109,111,111,116,104,101,114,32,112,108,97,121,98,97,99,107,46,10,32,32,32,32,32,42,32,87,104,101,110,32,101,110,97,98,108,101,100,44,32,105,110,116,101,114,112,111,108,97,116,101,115,32,98,101,116,119,101,101,110,32,102,114,97,109,101,115,46,32,87,104,101,110,32,100,105,115,97,98,108,101,100,44,32,115,104,111,119,115,32,101,120,97,99,116,32,102,114,97,109,101,45,98,121,45,102,114,97,109,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,45,32,84,114,117,101,32,102,111,114,32,115,109,111,111,116,104,32,105,110,116,101,114,112,111,108,97,116,105,111,110,44,32,102,97,108,115,101,32,102,111,114,32,101,120,97,99,116,32,102,114,97,109,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,85,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,40,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,117,98,115,99,114,105,98,101,115,32,116,111,32,97,110,105,109,97,116,105,111,110,32,101,118,101,110,116,115,32,108,105,107,101,32,112,108,97,121,44,32,112,97,117,115,101,44,32,102,114,97,109,101,44,32,99,111,109,112,108,101,116,101,44,32,101,116,99,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,114,101,97,99,116,32,116,111,32,97,110,105,109,97,116,105,111,110,32,115,116,97,116,101,32,99,104,97,110,103,101,115,32,97,110,100,32,112,108,97,121,98,97,99,107,32,112,114,111,103,114,101,115,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,121,112,101,32,45,32,69,118,101,110,116,32,116,121,112,101,32,116,111,32,108,105,115,116,101,110,32,102,111,114,32,40,101,46,103,46,44,32,39,112,108,97,121,39,44,32,39,102,114,97,109,101,39,44,32,39,99,111,109,112,108,101,116,101,39,41,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,105,115,116,101,110,101,114,32,45,32,67,97,108,108,98,97,99,107,32,102,117,110,99,116,105,111,110,32,105,110,118,111,107,101,100,32,119,104,101,110,32,116,104,101,32,101,118,101,110,116,32,111,99,99,117,114,115,10,32,32,32,32,32,42,47,10,32,32,32,32,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,85,110,115,117,98,115,99,114,105,98,101,115,32,102,114,111,109,32,97,110,105,109,97,116,105,111,110,32,101,118,101,110,116,115,46,10,32,32,32,32,32,42,32,73,102,32,110,111,32,108,105,115,116,101,110,101,114,32,105,115,32,112,114,111,118,105,100,101,100,44,32,114,101,109,111,118,101,115,32,97,108,108,32,108,105,115,116,101,110,101,114,115,32,102,111,114,32,116,104,101,32,103,105,118,101,110,32,101,118,101,110,116,32,116,121,112,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,121,112,101,32,45,32,69,118,101,110,116,32,116,121,112,101,32,116,111,32,115,116,111,112,32,108,105,115,116,101,110,105,110,103,32,102,111,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,105,115,116,101,110,101,114,32,45,32,83,112,101,99,105,102,105,99,32,99,97,108,108,98,97,99,107,32,116,111,32,114,101,109,111,118,101,44,32,111,114,32,117,110,100,101,102,105,110,101,100,32,116,111,32,114,101,109,111,118,101,32,97,108,108,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,116,121,112,101,44,32,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,108,101,97,110,115,32,117,112,32,97,110,100,32,100,101,115,116,114,111,121,115,32,116,104,101,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,44,32,114,101,108,101,97,115,105,110,103,32,97,108,108,32,114,101,115,111,117,114,99,101,115,46,10,32,32,32,32,32,42,32,83,116,111,112,115,32,112,108,97,121,98,97,99,107,44,32,114,101,109,111,118,101,115,32,101,118,101,110,116,32,108,105,115,116,101,110,101,114,115,44,32,97,110,100,32,102,114,101,101,115,32,87,65,83,77,32,109,101,109,111,114,121,46,32,67,97,108,108,32,119,104,101,110,32,116,104,101,32,112,108,97,121,101,114,32,105,115,32,110,111,32,108,111,110,103,101,114,32,110,101,101,100,101,100,46,10,32,32,32,32,32,42,47,10,32,32,32,32,100,101,115,116,114,111,121,40,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,117,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,111,110,116,101,120,116,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,10,32,32,32,32,32,32,32,32,116,121,112,101,58,32,34,100,101,115,116,114,111,121,34,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,114,101,109,111,118,101,65,108,108,69,118,101,110,116,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,80,97,117,115,101,115,32,116,104,101,32,114,101,110,100,101,114,105,110,103,32,108,111,111,112,32,119,105,116,104,111,117,116,32,99,104,97,110,103,105,110,103,32,112,108,97,121,98,97,99,107,32,115,116,97,116,101,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,114,101,100,117,99,105,110,103,32,67,80,85,47,71,80,85,32,117,115,97,103,101,32,119,104,101,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,105,115,32,111,102,102,115,99,114,101,101,110,32,111,114,32,104,105,100,100,101,110,46,32,68,105,115,112,97,116,99,104,101,115,32,39,102,114,101,101,122,101,39,32,101,118,101,110,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,102,114,101,101,122,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,102,114,101,101,122,101,34,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,115,117,109,101,115,32,116,104,101,32,114,101,110,100,101,114,105,110,103,32,108,111,111,112,32,97,102,116,101,114,32,98,101,105,110,103,32,102,114,111,122,101,110,46,10,32,32,32,32,32,42,32,82,101,115,116,97,114,116,115,32,102,114,97,109,101,32,114,101,110,100,101,114,105,110,103,32,119,104,105,108,101,32,109,97,105,110,116,97,105,110,105,110,103,32,116,104,101,32,99,117,114,114,101,110,116,32,112,108,97,121,98,97,99,107,32,115,116,97,116,101,46,32,68,105,115,112,97,116,99,104,101,115,32,39,117,110,102,114,101,101,122,101,39,32,101,118,101,110,116,46,10,32,32,32,32,32,42,47,10,32,32,32,32,117,110,102,114,101,101,122,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,97,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,33,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,115,70,114,111,122,101,110,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,117,110,102,114,101,101,122,101,34,32,125,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,99,97,108,99,117,108,97,116,101,115,32,97,110,100,32,117,112,100,97,116,101,115,32,99,97,110,118,97,115,32,100,105,109,101,110,115,105,111,110,115,32,98,97,115,101,100,32,111,110,32,99,117,114,114,101,110,116,32,115,105,122,101,46,10,32,32,32,32,32,42,32,67,97,108,108,32,116,104,105,115,32,119,104,101,110,32,116,104,101,32,99,97,110,118,97,115,32,99,111,110,116,97,105,110,101,114,32,115,105,122,101,32,99,104,97,110,103,101,115,32,116,111,32,109,97,105,110,116,97,105,110,32,112,114,111,112,101,114,32,114,101,110,100,101,114,105,110,103,46,32,85,115,117,97,108,108,121,32,104,97,110,100,108,101,100,32,98,121,32,97,117,116,111,82,101,115,105,122,101,46,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,105,122,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,116,104,105,115,46,105,115,76,111,97,100,101,100,32,124,124,32,33,116,104,105,115,46,95,99,97,110,118,97,115,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,100,112,114,32,61,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,119,105,110,100,111,119,46,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,49,59,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,123,32,104,101,105,103,104,116,58,32,99,108,105,101,110,116,72,101,105,103,104,116,44,32,119,105,100,116,104,58,32,99,108,105,101,110,116,87,105,100,116,104,32,125,32,61,32,116,104,105,115,46,95,99,97,110,118,97,115,46,103,101,116,66,111,117,110,100,105,110,103,67,108,105,101,110,116,82,101,99,116,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,99,108,105,101,110,116,72,101,105,103,104,116,32,33,61,61,32,48,32,38,38,32,99,108,105,101,110,116,87,105,100,116,104,32,33,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,32,61,32,99,108,105,101,110,116,87,105,100,116,104,32,42,32,100,112,114,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,32,99,108,105,101,110,116,72,101,105,103,104,116,32,42,32,100,112,114,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,105,122,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,105,122,101,40,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,105,122,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,99,97,110,118,97,115,32,101,108,101,109,101,110,116,32,117,115,101,100,32,102,111,114,32,114,101,110,100,101,114,105,110,103,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,109,111,118,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,116,111,32,97,32,100,105,102,102,101,114,101,110,116,32,99,97,110,118,97,115,32,119,105,116,104,111,117,116,32,114,101,99,114,101,97,116,105,110,103,32,116,104,101,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,97,110,118,97,115,32,45,32,78,101,119,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,44,32,79,102,102,115,99,114,101,101,110,67,97,110,118,97,115,44,32,111,114,32,82,101,110,100,101,114,83,117,114,102,97,99,101,32,116,111,32,114,101,110,100,101,114,32,116,111,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,67,97,110,118,97,115,40,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,99,97,110,118,97,115,32,124,124,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,61,61,32,99,97,110,118,97,115,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,32,61,32,99,97,110,118,97,115,59,10,32,32,32,32,32,32,116,104,105,115,46,95,105,110,105,116,105,97,108,105,122,101,67,97,110,118,97,115,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,112,101,110,100,105,110,103,32,61,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,112,101,110,100,105,110,103,76,111,97,100,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,105,102,32,40,112,101,110,100,105,110,103,46,100,97,116,97,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,68,97,116,97,40,112,101,110,100,105,110,103,46,100,97,116,97,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,112,101,110,100,105,110,103,46,115,114,99,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,108,111,97,100,70,114,111,109,83,114,99,40,112,101,110,100,105,110,103,46,115,114,99,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,112,112,108,105,101,115,32,97,32,51,120,51,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,116,111,32,116,104,101,32,101,110,116,105,114,101,32,97,110,105,109,97,116,105,111,110,32,111,110,32,116,104,101,32,99,97,110,118,97,115,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,116,114,97,110,115,108,97,116,101,44,32,114,111,116,97,116,101,44,32,115,99,97,108,101,44,32,111,114,32,115,107,101,119,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,114,101,110,100,101,114,105,110,103,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,114,97,110,115,102,111,114,109,32,45,32,57,45,101,108,101,109,101,110,116,32,97,114,114,97,121,32,114,101,112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,105,110,32,114,111,119,45,109,97,106,111,114,32,111,114,100,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,119,97,115,32,97,112,112,108,105,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,114,97,110,115,102,111,114,109,40,116,114,97,110,115,102,111,114,109,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,118,97,108,32,111,102,32,116,114,97,110,115,102,111,114,109,41,32,123,10,32,32,32,32,32,32,32,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,46,112,117,115,104,95,98,97,99,107,40,118,97,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,111,107,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,84,114,97,110,115,102,111,114,109,40,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,41,59,10,32,32,32,32,32,32,105,102,32,40,111,107,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,111,107,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,51,120,51,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,32,109,97,116,114,105,120,32,97,112,112,108,105,101,100,32,116,111,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,97,32,57,45,101,108,101,109,101,110,116,32,97,114,114,97,121,32,114,101,112,114,101,115,101,110,116,105,110,103,32,97,102,102,105,110,101,32,116,114,97,110,115,102,111,114,109,97,116,105,111,110,115,32,40,116,114,97,110,115,108,97,116,105,111,110,44,32,114,111,116,97,116,105,111,110,44,32,115,99,97,108,101,44,32,115,107,101,119,41,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,97,110,115,102,111,114,109,32,97,114,114,97,121,32,111,102,32,57,32,110,117,109,98,101,114,115,44,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,97,118,97,105,108,97,98,108,101,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,84,114,97,110,115,102,111,114,109,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,114,97,110,115,102,111,114,109,32,61,32,91,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,44,32,48,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,84,114,97,110,115,102,111,114,109,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,116,114,97,110,115,102,111,114,109,91,105,93,32,61,32,116,114,97,110,115,102,111,114,109,86,101,99,116,111,114,46,103,101,116,40,105,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,97,110,115,102,111,114,109,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,97,32,102,114,97,109,101,32,114,97,110,103,101,32,116,111,32,112,108,97,121,32,105,110,115,116,101,97,100,32,111,102,32,116,104,101,32,102,117,108,108,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,112,108,97,121,105,110,103,32,115,112,101,99,105,102,105,99,32,115,101,99,116,105,111,110,115,32,111,114,32,99,114,101,97,116,105,110,103,32,97,110,105,109,97,116,105,111,110,32,115,101,113,117,101,110,99,101,115,32,102,114,111,109,32,115,117,98,115,101,99,116,105,111,110,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,114,116,70,114,97,109,101,32,45,32,83,116,97,114,116,105,110,103,32,102,114,97,109,101,32,110,117,109,98,101,114,32,40,105,110,99,108,117,115,105,118,101,41,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,101,110,100,70,114,97,109,101,32,45,32,69,110,100,105,110,103,32,102,114,97,109,101,32,110,117,109,98,101,114,32,40,105,110,99,108,117,115,105,118,101,41,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,101,103,109,101,110,116,40,115,116,97,114,116,70,114,97,109,101,44,32,101,110,100,70,114,97,109,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,99,114,101,97,116,101,67,111,114,101,83,101,103,109,101,110,116,40,91,115,116,97,114,116,70,114,97,109,101,44,32,101,110,100,70,114,97,109,101,93,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,116,104,101,32,112,108,97,121,98,97,99,107,32,100,105,114,101,99,116,105,111,110,32,109,111,100,101,46,10,32,32,32,32,32,42,32,67,111,110,116,114,111,108,115,32,119,104,101,116,104,101,114,32,97,110,105,109,97,116,105,111,110,32,112,108,97,121,115,32,102,111,114,119,97,114,100,44,32,105,110,32,114,101,118,101,114,115,101,44,32,111,114,32,97,108,116,101,114,110,97,116,101,115,32,40,98,111,117,110,99,101,41,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,109,111,100,101,32,45,32,80,108,97,121,98,97,99,107,32,109,111,100,101,58,32,39,102,111,114,119,97,114,100,39,44,32,39,114,101,118,101,114,115,101,39,44,32,39,98,111,117,110,99,101,39,44,32,111,114,32,39,114,101,118,101,114,115,101,45,98,111,117,110,99,101,39,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,77,111,100,101,40,109,111,100,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,109,111,100,101,58,32,99,114,101,97,116,101,67,111,114,101,77,111,100,101,40,109,111,100,101,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,85,112,100,97,116,101,115,32,114,101,110,100,101,114,105,110,103,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,108,105,107,101,32,97,117,116,111,82,101,115,105,122,101,44,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,44,32,97,110,100,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,46,10,32,32,32,32,32,42,32,68,121,110,97,109,105,99,97,108,108,121,32,99,104,97,110,103,101,115,32,104,111,119,32,116,104,101,32,99,97,110,118,97,115,32,98,101,104,97,118,101,115,32,119,105,116,104,111,117,116,32,114,101,108,111,97,100,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,80,97,114,116,105,97,108,32,82,101,110,100,101,114,67,111,110,102,105,103,32,119,105,116,104,32,112,114,111,112,101,114,116,105,101,115,32,116,111,32,117,112,100,97,116,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,82,101,110,100,101,114,67,111,110,102,105,103,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,123,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,44,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,44,32,113,117,97,108,105,116,121,44,32,46,46,46,114,101,115,116,67,111,110,102,105,103,32,125,32,61,32,99,111,110,102,105,103,59,10,32,32,32,32,32,32,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,32,61,32,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,46,46,46,114,101,115,116,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,47,47,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,105,115,32,97,32,115,112,101,99,105,97,108,32,99,97,115,101,44,32,105,116,32,115,104,111,117,108,100,32,98,101,32,115,101,116,32,116,111,32,116,104,101,32,100,101,102,97,117,108,116,32,118,97,108,117,101,32,105,102,32,105,116,39,115,32,110,111,116,32,112,114,111,118,105,100,101,100,10,32,32,32,32,32,32,32,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,58,32,100,101,118,105,99,101,80,105,120,101,108,82,97,116,105,111,32,124,124,32,103,101,116,68,101,102,97,117,108,116,68,80,82,40,41,44,10,32,32,32,32,32,32,32,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,58,32,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,32,63,63,32,116,114,117,101,44,10,32,32,32,32,32,32,32,32,46,46,46,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,123,32,113,117,97,108,105,116,121,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,105,102,32,40,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,81,117,97,108,105,116,121,40,113,117,97,108,105,116,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,97,117,116,111,82,101,115,105,122,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,67,97,110,118,97,115,82,101,115,105,122,101,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,102,114,101,101,122,101,79,110,79,102,102,115,99,114,101,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,44,32,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,105,115,69,108,101,109,101,110,116,73,110,86,105,101,119,112,111,114,116,40,116,104,105,115,46,95,99,97,110,118,97,115,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,79,102,102,115,99,114,101,101,110,79,98,115,101,114,118,101,114,46,117,110,111,98,115,101,114,118,101,40,116,104,105,115,46,95,99,97,110,118,97,115,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,105,115,70,114,111,122,101,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,117,110,102,114,101,101,122,101,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,119,105,116,99,104,101,115,32,116,111,32,97,32,100,105,102,102,101,114,101,110,116,32,97,110,105,109,97,116,105,111,110,32,119,105,116,104,105,110,32,97,32,109,117,108,116,105,45,97,110,105,109,97,116,105,111,110,32,100,111,116,76,111,116,116,105,101,32,102,105,108,101,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,108,111,97,100,32,97,32,100,105,102,102,101,114,101,110,116,32,97,110,105,109,97,116,105,111,110,32,98,121,32,105,116,115,32,73,68,32,119,105,116,104,111,117,116,32,99,114,101,97,116,105,110,103,32,97,32,110,101,119,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,97,110,105,109,97,116,105,111,110,73,100,32,45,32,73,68,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,116,111,32,108,111,97,100,32,40,109,117,115,116,32,101,120,105,115,116,32,105,110,32,116,104,101,32,109,97,110,105,102,101,115,116,41,10,32,32,32,32,32,42,47,10,32,32,32,32,108,111,97,100,65,110,105,109,97,116,105,111,110,40,97,110,105,109,97,116,105,111,110,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,40,41,32,61,61,61,32,97,110,105,109,97,116,105,111,110,73,100,32,124,124,32,33,116,104,105,115,46,95,99,97,110,118,97,115,41,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,40,97,110,105,109,97,116,105,111,110,73,100,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,119,105,100,116,104,44,32,116,104,105,115,46,95,99,97,110,118,97,115,46,104,101,105,103,104,116,41,59,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,32,33,61,61,32,118,111,105,100,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,81,117,97,108,105,116,121,40,116,104,105,115,46,95,114,101,110,100,101,114,67,111,110,102,105,103,46,113,117,97,108,105,116,121,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,116,104,105,115,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,99,116,105,118,97,116,101,115,32,97,32,110,97,109,101,100,32,109,97,114,107,101,114,32,116,111,32,112,108,97,121,32,111,110,108,121,32,116,104,97,116,32,109,97,114,107,101,100,32,115,101,103,109,101,110,116,46,10,32,32,32,32,32,42,32,77,97,114,107,101,114,115,32,100,101,102,105,110,101,32,110,97,109,101,100,32,115,101,99,116,105,111,110,115,32,119,105,116,104,105,110,32,97,110,32,97,110,105,109,97,116,105,111,110,46,32,85,115,101,32,109,97,114,107,101,114,115,40,41,32,116,111,32,108,105,115,116,32,97,118,97,105,108,97,98,108,101,32,109,97,114,107,101,114,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,109,97,114,107,101,114,32,45,32,78,97,109,101,32,111,102,32,116,104,101,32,109,97,114,107,101,114,32,116,111,32,97,99,116,105,118,97,116,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,77,97,114,107,101,114,40,109,97,114,107,101,114,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,97,108,108,32,109,97,114,107,101,114,115,32,100,101,102,105,110,101,100,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,119,105,116,104,32,116,104,101,105,114,32,116,105,109,101,32,97,110,100,32,100,117,114,97,116,105,111,110,46,10,32,32,32,32,32,42,32,77,97,114,107,101,114,115,32,114,101,112,114,101,115,101,110,116,32,110,97,109,101,100,32,115,101,99,116,105,111,110,115,32,116,104,97,116,32,99,97,110,32,98,101,32,112,108,97,121,101,100,32,117,115,105,110,103,32,115,101,116,77,97,114,107,101,114,40,41,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,109,97,114,107,101,114,32,111,98,106,101,99,116,115,32,119,105,116,104,32,110,97,109,101,44,32,116,105,109,101,44,32,97,110,100,32,100,117,114,97,116,105,111,110,32,112,114,111,112,101,114,116,105,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,109,97,114,107,101,114,115,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,115,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,109,97,114,107,101,114,115,40,41,59,10,32,32,32,32,32,32,105,102,32,40,109,97,114,107,101,114,115,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,109,97,114,107,101,114,115,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,109,97,114,107,101,114,115,46,103,101,116,40,105,41,59,10,32,32,32,32,32,32,32,32,32,32,114,101,115,117,108,116,46,112,117,115,104,40,123,10,32,32,32,32,32,32,32,32,32,32,32,32,110,97,109,101,58,32,109,97,114,107,101,114,46,110,97,109,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,116,105,109,101,58,32,109,97,114,107,101,114,46,116,105,109,101,44,10,32,32,32,32,32,32,32,32,32,32,32,32,100,117,114,97,116,105,111,110,58,32,109,97,114,107,101,114,46,100,117,114,97,116,105,111,110,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,114,101,115,117,108,116,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,112,112,108,105,101,115,32,97,32,116,104,101,109,101,32,116,111,32,116,104,101,32,97,110,105,109,97,116,105,111,110,44,32,109,111,100,105,102,121,105,110,103,32,99,111,108,111,114,115,32,97,110,100,32,118,105,115,117,97,108,32,112,114,111,112,101,114,116,105,101,115,46,10,32,32,32,32,32,42,32,84,104,101,109,101,115,32,97,114,101,32,112,114,101,100,101,102,105,110,101,100,32,105,110,32,116,104,101,32,100,111,116,76,111,116,116,105,101,32,109,97,110,105,102,101,115,116,46,32,82,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,109,101,32,119,97,115,32,115,117,99,99,101,115,115,102,117,108,108,121,32,108,111,97,100,101,100,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,104,101,109,101,73,100,32,45,32,73,68,32,111,102,32,116,104,101,32,116,104,101,109,101,32,116,111,32,97,112,112,108,121,32,40,109,117,115,116,32,101,120,105,115,116,32,105,110,32,109,97,110,105,102,101,115,116,41,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,109,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,104,101,109,101,40,116,104,101,109,101,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,76,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,84,104,101,109,101,40,116,104,101,109,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,101,109,101,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,101,109,101,76,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,109,111,118,101,115,32,116,104,101,32,99,117,114,114,101,110,116,108,121,32,97,112,112,108,105,101,100,32,116,104,101,109,101,32,97,110,100,32,114,101,115,116,111,114,101,115,32,111,114,105,103,105,110,97,108,32,97,110,105,109,97,116,105,111,110,32,99,111,108,111,114,115,46,10,32,32,32,32,32,42,32,85,115,101,32,116,104,105,115,32,116,111,32,114,101,118,101,114,116,32,116,111,32,116,104,101,32,100,101,102,97,117,108,116,32,97,112,112,101,97,114,97,110,99,101,32,97,102,116,101,114,32,97,112,112,108,121,105,110,103,32,97,32,116,104,101,109,101,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,109,101,32,119,97,115,32,114,101,115,101,116,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,101,116,84,104,101,109,101,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,82,101,115,101,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,101,116,84,104,101,109,101,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,101,109,101,82,101,115,101,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,101,109,101,82,101,115,101,116,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,65,112,112,108,105,101,115,32,97,32,99,117,115,116,111,109,32,116,104,101,109,101,32,102,114,111,109,32,116,104,101,109,101,32,100,97,116,97,32,105,110,115,116,101,97,100,32,111,102,32,109,97,110,105,102,101,115,116,32,116,104,101,109,101,32,73,68,46,10,32,32,32,32,32,42,32,85,115,101,102,117,108,32,102,111,114,32,100,121,110,97,109,105,99,97,108,108,121,32,103,101,110,101,114,97,116,101,100,32,111,114,32,117,115,101,114,45,99,114,101,97,116,101,100,32,116,104,101,109,101,115,32,110,111,116,32,105,110,32,116,104,101,32,109,97,110,105,102,101,115,116,46,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,104,101,109,101,68,97,116,97,32,45,32,84,104,101,109,101,32,100,97,116,97,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,32,111,114,32,97,32,115,116,114,117,99,116,117,114,101,100,32,84,104,101,109,101,32,111,98,106,101,99,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,109,101,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,96,96,96,116,121,112,101,115,99,114,105,112,116,10,32,32,32,32,32,42,32,47,47,32,85,115,105,110,103,32,97,32,115,116,114,105,110,103,32,40,101,120,105,115,116,105,110,103,32,98,101,104,97,118,105,111,114,41,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,39,123,34,114,117,108,101,115,34,58,91,123,34,105,100,34,58,34,98,103,34,44,34,116,121,112,101,34,58,34,67,111,108,111,114,34,44,34,118,97,108,117,101,34,58,91,49,44,48,44,48,93,125,93,125,39,41,59,10,32,32,32,32,32,42,10,32,32,32,32,32,42,32,47,47,32,85,115,105,110,103,32,97,32,84,104,101,109,101,32,111,98,106,101,99,116,32,40,110,101,119,32,98,101,104,97,118,105,111,114,41,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,123,10,32,32,32,32,32,42,32,32,32,114,117,108,101,115,58,32,91,10,32,32,32,32,32,42,32,32,32,32,32,123,10,32,32,32,32,32,42,32,32,32,32,32,32,32,105,100,58,32,39,98,97,99,107,103,114,111,117,110,100,95,99,111,108,111,114,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,116,121,112,101,58,32,39,67,111,108,111,114,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,118,97,108,117,101,58,32,91,48,46,50,44,32,48,46,52,44,32,48,46,56,93,10,32,32,32,32,32,42,32,32,32,32,32,125,44,10,32,32,32,32,32,42,32,32,32,32,32,123,10,32,32,32,32,32,42,32,32,32,32,32,32,32,105,100,58,32,39,116,105,116,108,101,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,116,121,112,101,58,32,39,84,101,120,116,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,118,97,108,117,101,58,32,123,10,32,32,32,32,32,42,32,32,32,32,32,32,32,32,32,116,101,120,116,58,32,39,72,101,108,108,111,32,87,111,114,108,100,39,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,32,32,102,111,110,116,83,105,122,101,58,32,52,56,44,10,32,32,32,32,32,42,32,32,32,32,32,32,32,32,32,102,105,108,108,67,111,108,111,114,58,32,91,49,44,32,49,44,32,49,93,10,32,32,32,32,32,42,32,32,32,32,32,32,32,125,10,32,32,32,32,32,42,32,32,32,32,32,125,10,32,32,32,32,32,42,32,32,32,93,10,32,32,32,32,32,42,32,125,41,59,10,32,32,32,32,32,42,32,96,96,96,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,104,101,109,101,68,97,116,97,40,116,104,101,109,101,68,97,116,97,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,68,97,116,97,83,116,114,105,110,103,32,61,32,116,121,112,101,111,102,32,116,104,101,109,101,68,97,116,97,32,61,61,61,32,34,115,116,114,105,110,103,34,32,63,32,116,104,101,109,101,68,97,116,97,32,58,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,116,104,101,109,101,68,97,116,97,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,76,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,116,104,101,109,101,68,97,116,97,83,116,114,105,110,103,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,101,109,101,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,101,109,101,76,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,109,117,108,116,105,112,108,101,32,115,108,111,116,32,118,97,108,117,101,115,32,97,116,32,111,110,99,101,32,102,111,114,32,112,97,114,97,109,101,116,101,114,105,122,101,100,32,97,110,105,109,97,116,105,111,110,115,46,10,32,32,32,32,32,42,32,83,108,111,116,115,32,97,108,108,111,119,32,114,117,110,116,105,109,101,32,99,117,115,116,111,109,105,122,97,116,105,111,110,32,111,102,32,99,111,108,111,114,115,44,32,116,101,120,116,44,32,105,109,97,103,101,115,44,32,111,114,32,111,116,104,101,114,32,112,114,111,112,101,114,116,105,101,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,115,32,45,32,79,98,106,101,99,116,32,109,97,112,112,105,110,103,32,115,108,111,116,32,73,68,115,32,116,111,32,116,104,101,105,114,32,118,97,108,117,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,108,111,116,115,40,115,108,111,116,115,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,115,40,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,115,108,111,116,115,41,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,114,101,103,105,111,110,32,84,121,112,101,100,32,83,108,111,116,32,65,80,73,115,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,104,101,99,107,32,105,102,32,118,97,108,117,101,32,105,115,32,97,110,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,32,40,104,97,115,32,111,98,106,101,99,116,115,32,119,105,116,104,32,39,116,39,32,97,110,100,32,39,115,39,32,112,114,111,112,101,114,116,105,101,115,41,10,32,32,32,32,32,42,47,10,32,32,32,32,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,65,114,114,97,121,46,105,115,65,114,114,97,121,40,118,97,108,117,101,41,32,38,38,32,118,97,108,117,101,46,108,101,110,103,116,104,32,62,32,48,32,38,38,32,116,121,112,101,111,102,32,118,97,108,117,101,91,48,93,32,61,61,61,32,34,111,98,106,101,99,116,34,32,38,38,32,118,97,108,117,101,91,48,93,32,33,61,61,32,110,117,108,108,32,38,38,32,34,116,34,32,105,110,32,118,97,108,117,101,91,48,93,32,38,38,32,34,115,34,32,105,110,32,118,97,108,117,101,91,48,93,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,97,108,108,32,115,108,111,116,32,73,68,115,32,105,110,32,116,104,101,32,97,110,105,109,97,116,105,111,110,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,115,108,111,116,32,73,68,32,115,116,114,105,110,103,115,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,73,100,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,100,115,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,73,100,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,100,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,105,100,115,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,105,100,115,46,112,117,115,104,40,105,100,115,86,101,99,116,111,114,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,100,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,116,121,112,101,32,111,102,32,97,32,115,108,111,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,113,117,101,114,121,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,115,108,111,116,32,116,121,112,101,32,40,39,99,111,108,111,114,39,44,32,39,103,114,97,100,105,101,110,116,39,44,32,39,116,101,120,116,39,44,32,39,115,99,97,108,97,114,39,44,32,39,118,101,99,116,111,114,39,44,32,39,112,111,115,105,116,105,111,110,39,44,32,39,105,109,97,103,101,39,41,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,84,121,112,101,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,121,112,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,84,121,112,101,40,115,108,111,116,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,116,121,112,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,121,112,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,99,117,114,114,101,110,116,32,118,97,108,117,101,32,111,102,32,97,32,115,108,111,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,113,117,101,114,121,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,112,97,114,115,101,100,32,115,108,111,116,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,83,116,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,115,108,111,116,83,116,114,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,74,83,79,78,46,112,97,114,115,101,40,115,108,111,116,83,116,114,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,32,97,108,108,32,115,108,111,116,115,32,97,115,32,97,110,32,111,98,106,101,99,116,32,119,105,116,104,32,115,108,111,116,32,73,68,115,32,97,115,32,107,101,121,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,79,98,106,101,99,116,32,99,111,110,116,97,105,110,105,110,103,32,97,108,108,32,115,108,111,116,115,44,32,111,114,32,101,109,112,116,121,32,111,98,106,101,99,116,32,105,102,32,110,111,116,32,108,111,97,100,101,100,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,99,111,110,115,116,32,115,108,111,116,115,32,61,32,100,111,116,76,111,116,116,105,101,46,103,101,116,83,108,111,116,115,40,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,83,108,111,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,123,125,59,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,74,83,79,78,46,112,97,114,115,101,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,115,83,116,114,40,41,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,123,125,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,99,111,108,111,114,32,115,108,111,116,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,99,111,108,111,114,32,91,114,44,32,103,44,32,98,44,32,97,93,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,114,101,100,32,99,111,108,111,114,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,67,111,108,111,114,83,108,111,116,40,39,109,121,67,111,108,111,114,39,44,32,91,49,44,32,48,44,32,48,44,32,49,93,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,99,111,108,111,114,32,40,114,101,100,32,116,111,32,98,108,117,101,41,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,67,111,108,111,114,83,108,111,116,40,39,109,121,67,111,108,111,114,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,91,49,44,32,48,44,32,48,44,32,49,93,32,92,125,44,32,92,123,32,116,58,32,54,48,44,32,115,58,32,91,48,44,32,48,44,32,49,44,32,49,93,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,67,111,108,111,114,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,104,105,115,46,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,117,108,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,115,99,97,108,97,114,32,115,108,111,116,32,118,97,108,117,101,32,40,115,105,110,103,108,101,32,110,117,109,98,101,114,32,108,105,107,101,32,114,111,116,97,116,105,111,110,44,32,111,112,97,99,105,116,121,41,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,110,117,109,98,101,114,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,114,111,116,97,116,105,111,110,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,83,99,97,108,97,114,83,108,111,116,40,39,114,111,116,97,116,105,111,110,39,44,32,52,53,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,114,111,116,97,116,105,111,110,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,83,99,97,108,97,114,83,108,111,116,40,39,114,111,116,97,116,105,111,110,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,48,32,92,125,44,32,92,123,32,116,58,32,54,48,44,32,115,58,32,51,54,48,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,83,99,97,108,97,114,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,121,112,101,111,102,32,118,97,108,117,101,32,33,61,61,32,34,110,117,109,98,101,114,34,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,117,108,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,118,101,99,116,111,114,32,115,108,111,116,32,118,97,108,117,101,32,40,50,68,32,111,114,32,51,68,32,112,111,105,110,116,32,102,111,114,32,112,111,115,105,116,105,111,110,44,32,115,99,97,108,101,44,32,101,116,99,46,41,10,32,32,32,32,32,42,32,72,97,110,100,108,101,115,32,98,111,116,104,32,34,118,101,99,116,111,114,34,32,97,110,100,32,34,112,111,115,105,116,105,111,110,34,32,115,108,111,116,32,116,121,112,101,115,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,118,101,99,116,111,114,32,91,120,44,32,121,93,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,115,99,97,108,101,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,86,101,99,116,111,114,83,108,111,116,40,39,115,99,97,108,101,39,44,32,91,49,53,48,44,32,49,53,48,93,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,112,111,115,105,116,105,111,110,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,86,101,99,116,111,114,83,108,111,116,40,39,112,111,115,105,116,105,111,110,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,91,48,44,32,48,93,32,92,125,44,32,92,123,32,116,58,32,54,48,44,32,115,58,32,91,49,48,48,44,32,50,48,48,93,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,86,101,99,116,111,114,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,104,105,115,46,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,59,10,32,32,32,32,32,32,105,102,32,40,114,101,115,117,108,116,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,103,114,97,100,105,101,110,116,32,115,108,111,116,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,83,116,97,116,105,99,32,103,114,97,100,105,101,110,116,32,91,111,102,102,115,101,116,44,32,114,44,32,103,44,32,98,44,32,46,46,46,93,32,111,114,32,97,114,114,97,121,32,111,102,32,107,101,121,102,114,97,109,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,116,97,116,105,99,32,114,101,100,32,116,111,32,98,108,117,101,32,103,114,97,100,105,101,110,116,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,71,114,97,100,105,101,110,116,83,108,111,116,40,39,109,121,71,114,97,100,105,101,110,116,39,44,32,91,48,44,32,49,44,32,48,44,32,48,44,32,49,44,32,48,44,32,48,44,32,49,93,41,59,10,32,32,32,32,32,42,32,47,47,32,65,110,105,109,97,116,101,100,32,103,114,97,100,105,101,110,116,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,71,114,97,100,105,101,110,116,83,108,111,116,40,39,109,121,71,114,97,100,105,101,110,116,39,44,32,91,92,123,32,116,58,32,48,44,32,115,58,32,91,48,44,32,49,44,32,48,44,32,48,44,32,49,44,32,48,44,32,48,44,32,49,93,32,92,125,93,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,71,114,97,100,105,101,110,116,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,115,65,110,105,109,97,116,101,100,32,61,32,116,104,105,115,46,95,105,115,75,101,121,102,114,97,109,101,65,114,114,97,121,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,32,97,58,32,105,115,65,110,105,109,97,116,101,100,32,63,32,49,32,58,32,48,44,32,107,58,32,118,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,32,97,32,116,101,120,116,32,115,108,111,116,32,118,97,108,117,101,32,40,97,108,119,97,121,115,32,115,116,97,116,105,99,32,45,32,116,101,120,116,32,100,111,99,117,109,101,110,116,115,32,100,111,110,39,116,32,115,117,112,112,111,114,116,32,97,110,105,109,97,116,105,111,110,41,10,32,32,32,32,32,42,32,83,117,112,112,111,114,116,115,32,112,97,114,116,105,97,108,32,117,112,100,97,116,101,115,32,45,32,111,110,108,121,32,112,114,111,118,105,100,101,100,32,112,114,111,112,101,114,116,105,101,115,32,119,105,108,108,32,98,101,32,99,104,97,110,103,101,100,44,32,111,116,104,101,114,115,32,105,110,104,101,114,105,116,32,102,114,111,109,32,101,120,105,115,116,105,110,103,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,115,101,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,101,120,116,32,100,111,99,117,109,101,110,116,32,112,114,111,112,101,114,116,105,101,115,32,40,112,97,114,116,105,97,108,32,97,108,108,111,119,101,100,41,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,32,64,101,120,97,109,112,108,101,10,32,32,32,32,32,42,32,47,47,32,83,101,116,32,97,108,108,32,112,114,111,112,101,114,116,105,101,115,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,101,120,116,83,108,111,116,40,39,116,105,116,108,101,39,44,32,92,123,32,116,58,32,39,72,101,108,108,111,32,87,111,114,108,100,39,44,32,115,58,32,50,52,44,32,102,99,58,32,91,48,44,32,48,44,32,48,44,32,49,93,32,92,125,41,59,10,32,32,32,32,32,42,32,47,47,32,80,97,114,116,105,97,108,32,117,112,100,97,116,101,32,45,32,111,110,108,121,32,99,104,97,110,103,101,32,116,101,120,116,44,32,107,101,101,112,32,101,120,105,115,116,105,110,103,32,102,111,110,116,32,115,105,122,101,44,32,99,111,108,111,114,44,32,101,116,99,46,10,32,32,32,32,32,42,32,100,111,116,76,111,116,116,105,101,46,115,101,116,84,101,120,116,83,108,111,116,40,39,116,105,116,108,101,39,44,32,92,123,32,116,58,32,39,78,101,119,32,84,101,120,116,39,32,92,125,41,59,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,84,101,120,116,83,108,111,116,40,115,108,111,116,73,100,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,120,105,115,116,105,110,103,86,97,108,117,101,32,61,32,74,83,79,78,46,112,97,114,115,101,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,103,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,41,41,59,10,32,32,32,32,32,32,108,101,116,32,109,101,114,103,101,100,84,101,120,116,68,111,99,32,61,32,118,97,108,117,101,59,10,32,32,32,32,32,32,105,102,32,40,101,120,105,115,116,105,110,103,86,97,108,117,101,32,38,38,32,34,107,34,32,105,110,32,101,120,105,115,116,105,110,103,86,97,108,117,101,32,38,38,32,65,114,114,97,121,46,105,115,65,114,114,97,121,40,101,120,105,115,116,105,110,103,86,97,108,117,101,91,34,107,34,93,41,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,107,101,121,102,114,97,109,101,48,32,61,32,101,120,105,115,116,105,110,103,86,97,108,117,101,91,34,107,34,93,91,48,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,34,115,34,32,105,110,32,107,101,121,102,114,97,109,101,48,32,38,38,32,116,121,112,101,111,102,32,107,101,121,102,114,97,109,101,48,91,34,115,34,93,32,61,61,61,32,34,111,98,106,101,99,116,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,109,101,114,103,101,100,84,101,120,116,68,111,99,32,61,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,46,46,46,107,101,121,102,114,97,109,101,48,91,34,115,34,93,44,10,32,32,32,32,32,32,32,32,32,32,32,32,46,46,46,118,97,108,117,101,10,32,32,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,108,111,116,74,115,111,110,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,123,10,32,32,32,32,32,32,32,32,97,58,32,48,44,10,32,32,32,32,32,32,32,32,107,58,32,91,123,32,116,58,32,48,44,32,115,58,32,109,101,114,103,101,100,84,101,120,116,68,111,99,32,125,93,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,83,108,111,116,83,116,114,40,115,108,111,116,73,100,44,32,115,108,111,116,74,115,111,110,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,115,101,116,32,97,32,115,108,111,116,32,116,111,32,105,116,115,32,111,114,105,103,105,110,97,108,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,114,101,115,101,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,101,116,83,108,111,116,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,101,116,83,108,111,116,40,115,108,111,116,73,100,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,108,101,97,114,32,97,32,115,108,111,116,39,115,32,99,117,115,116,111,109,32,118,97,108,117,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,73,100,32,45,32,84,104,101,32,115,108,111,116,32,73,68,32,116,111,32,99,108,101,97,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,99,108,101,97,114,83,108,111,116,40,115,108,111,116,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,108,101,97,114,83,108,111,116,40,115,108,111,116,73,100,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,82,101,115,101,116,32,97,108,108,32,115,108,111,116,115,32,116,111,32,116,104,101,105,114,32,111,114,105,103,105,110,97,108,32,118,97,108,117,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,114,101,115,101,116,83,108,111,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,115,101,116,83,108,111,116,115,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,108,101,97,114,32,97,108,108,32,115,108,111,116,32,99,117,115,116,111,109,32,118,97,108,117,101,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,99,108,101,97,114,83,108,111,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,108,101,97,114,83,108,111,116,115,40,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,114,101,110,100,101,114,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,114,97,119,40,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,114,117,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,101,110,100,114,101,103,105,111,110,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,85,112,100,97,116,101,115,32,116,104,101,32,108,97,121,111,117,116,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,102,111,114,32,112,111,115,105,116,105,111,110,105,110,103,32,97,110,100,32,115,99,97,108,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,67,104,97,110,103,101,115,32,104,111,119,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,102,105,116,115,32,97,110,100,32,97,108,105,103,110,115,32,119,105,116,104,105,110,32,116,104,101,32,99,97,110,118,97,115,32,119,105,116,104,111,117,116,32,114,101,113,117,105,114,105,110,103,32,97,32,114,101,108,111,97,100,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,97,121,111,117,116,32,45,32,78,101,119,32,108,97,121,111,117,116,32,99,111,110,102,105,103,117,114,97,116,105,111,110,32,119,105,116,104,32,102,105,116,32,109,111,100,101,32,97,110,100,32,97,108,105,103,110,109,101,110,116,32,118,97,108,117,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,76,97,121,111,117,116,40,108,97,121,111,117,116,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,32,124,124,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,67,111,110,102,105,103,40,123,10,32,32,32,32,32,32,32,32,46,46,46,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,99,111,110,102,105,103,40,41,44,10,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,99,114,101,97,116,101,67,111,114,101,76,97,121,111,117,116,40,108,97,121,111,117,116,44,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,83,101,116,115,32,97,32,99,117,115,116,111,109,32,118,105,101,119,112,111,114,116,32,114,101,103,105,111,110,32,102,111,114,32,114,101,110,100,101,114,105,110,103,32,97,32,112,111,114,116,105,111,110,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,46,10,32,32,32,32,32,42,32,68,101,102,105,110,101,115,32,97,32,114,101,99,116,97,110,103,117,108,97,114,32,97,114,101,97,32,116,111,32,114,101,110,100,101,114,44,32,117,115,101,102,117,108,32,102,111,114,32,105,109,112,108,101,109,101,110,116,105,110,103,32,97,110,105,109,97,116,105,111,110,32,99,108,105,112,112,105,110,103,32,111,114,32,112,97,110,110,105,110,103,32,101,102,102,101,99,116,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,88,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,39,115,32,116,111,112,45,108,101,102,116,32,99,111,114,110,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,89,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,39,115,32,116,111,112,45,108,101,102,116,32,99,111,114,110,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,119,105,100,116,104,32,45,32,87,105,100,116,104,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,32,105,110,32,112,105,120,101,108,115,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,104,101,105,103,104,116,32,45,32,72,101,105,103,104,116,32,111,102,32,116,104,101,32,118,105,101,119,112,111,114,116,32,105,110,32,112,105,120,101,108,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,118,105,101,119,112,111,114,116,32,119,97,115,32,115,101,116,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,101,116,86,105,101,119,112,111,114,116,40,120,44,32,121,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,101,116,86,105,101,119,112,111,114,116,40,120,44,32,121,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,111,110,102,105,103,117,114,101,115,32,116,104,101,32,85,82,76,32,102,111,114,32,108,111,97,100,105,110,103,32,116,104,101,32,87,65,83,77,32,109,111,100,117,108,101,46,10,32,32,32,32,32,42,32,67,97,108,108,32,116,104,105,115,32,98,101,102,111,114,101,32,99,114,101,97,116,105,110,103,32,97,110,121,32,112,108,97,121,101,114,32,105,110,115,116,97,110,99,101,115,32,116,111,32,108,111,97,100,32,116,104,101,32,87,65,83,77,32,102,114,111,109,32,97,32,99,117,115,116,111,109,32,67,68,78,32,111,114,32,108,111,99,97,108,32,112,97,116,104,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,117,114,108,32,45,32,85,82,76,32,112,111,105,110,116,105,110,103,32,116,111,32,116,104,101,32,100,111,116,108,111,116,116,105,101,32,87,65,83,77,32,102,105,108,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,115,101,116,87,97,115,109,85,114,108,40,117,114,108,41,32,123,10,32,32,32,32,32,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,46,115,101,116,87,97,115,109,85,114,108,40,117,114,108,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,82,101,103,105,115,116,101,114,32,97,32,99,117,115,116,111,109,32,102,111,110,116,32,102,111,114,32,117,115,101,32,105,110,32,97,110,105,109,97,116,105,111,110,115,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,111,110,116,78,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,102,111,110,116,32,116,111,32,114,101,103,105,115,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,111,110,116,83,111,117,114,99,101,32,45,32,69,105,116,104,101,114,32,97,32,85,82,76,32,115,116,114,105,110,103,32,116,111,32,102,101,116,99,104,32,116,104,101,32,102,111,110,116,44,32,111,114,32,65,114,114,97,121,66,117,102,102,101,114,47,85,105,110,116,56,65,114,114,97,121,32,111,102,32,102,111,110,116,32,100,97,116,97,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,80,114,111,109,105,115,101,60,98,111,111,108,101,97,110,62,32,45,32,116,114,117,101,32,105,102,32,114,101,103,105,115,116,114,97,116,105,111,110,32,115,117,99,99,101,101,100,101,100,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,97,115,121,110,99,32,114,101,103,105,115,116,101,114,70,111,110,116,40,102,111,110,116,78,97,109,101,44,32,102,111,110,116,83,111,117,114,99,101,41,32,123,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,117,108,101,32,61,32,97,119,97,105,116,32,68,111,116,76,111,116,116,105,101,87,97,115,109,76,111,97,100,101,114,46,108,111,97,100,40,41,59,10,32,32,32,32,32,32,32,32,108,101,116,32,102,111,110,116,68,97,116,97,59,10,32,32,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,102,111,110,116,83,111,117,114,99,101,32,61,61,61,32,34,115,116,114,105,110,103,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,97,119,97,105,116,32,102,101,116,99,104,40,102,111,110,116,83,111,117,114,99,101,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,114,101,115,112,111,110,115,101,46,111,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,102,101,116,99,104,32,102,111,110,116,32,102,114,111,109,32,85,82,76,58,32,36,123,102,111,110,116,83,111,117,114,99,101,125,46,32,83,116,97,116,117,115,58,32,36,123,114,101,115,112,111,110,115,101,46,115,116,97,116,117,115,125,96,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,97,119,97,105,116,32,114,101,115,112,111,110,115,101,46,97,114,114,97,121,66,117,102,102,101,114,40,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,102,111,110,116,83,111,117,114,99,101,32,105,110,115,116,97,110,99,101,111,102,32,85,105,110,116,56,65,114,114,97,121,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,116,101,109,112,66,117,102,102,101,114,32,61,32,102,111,110,116,83,111,117,114,99,101,46,98,117,102,102,101,114,46,115,108,105,99,101,40,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,79,102,102,115,101,116,44,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,79,102,102,115,101,116,32,43,32,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,76,101,110,103,116,104,10,32,32,32,32,32,32,32,32,32,32,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,101,109,112,66,117,102,102,101,114,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,66,117,102,102,101,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,116,101,109,112,66,117,102,102,101,114,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,110,101,119,32,65,114,114,97,121,66,117,102,102,101,114,40,102,111,110,116,83,111,117,114,99,101,46,98,121,116,101,76,101,110,103,116,104,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,110,101,119,32,85,105,110,116,56,65,114,114,97,121,40,102,111,110,116,68,97,116,97,41,46,115,101,116,40,102,111,110,116,83,111,117,114,99,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,102,111,110,116,68,97,116,97,32,61,32,102,111,110,116,83,111,117,114,99,101,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,115,117,99,99,101,115,115,32,61,32,109,111,100,117,108,101,46,114,101,103,105,115,116,101,114,70,111,110,116,40,102,111,110,116,78,97,109,101,44,32,116,111,86,101,99,116,111,114,67,104,97,114,40,109,111,100,117,108,101,44,32,102,111,110,116,68,97,116,97,41,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,115,117,99,99,101,115,115,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,70,97,105,108,101,100,32,116,111,32,114,101,103,105,115,116,101,114,32,102,111,110,116,32,34,36,123,102,111,110,116,78,97,109,101,125,34,46,32,70,111,110,116,32,100,97,116,97,32,109,97,121,32,98,101,32,105,110,118,97,108,105,100,46,96,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,115,117,99,99,101,115,115,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,96,69,114,114,111,114,32,114,101,103,105,115,116,101,114,105,110,103,32,102,111,110,116,32,34,36,123,102,111,110,116,78,97,109,101,125,34,58,96,44,32,101,114,114,111,114,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,65,110,105,109,97,116,101,115,32,115,109,111,111,116,104,108,121,32,116,111,32,97,32,115,112,101,99,105,102,105,99,32,102,114,97,109,101,32,111,118,101,114,32,97,32,100,117,114,97,116,105,111,110,32,117,115,105,110,103,32,108,105,110,101,97,114,32,101,97,115,105,110,103,46,10,32,32,32,32,32,42,32,67,114,101,97,116,101,115,32,97,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,116,114,97,110,115,105,116,105,111,110,105,110,103,32,102,114,111,109,32,116,104,101,32,99,117,114,114,101,110,116,32,102,114,97,109,101,32,116,111,32,116,104,101,32,116,97,114,103,101,116,32,102,114,97,109,101,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,102,114,97,109,101,32,45,32,84,97,114,103,101,116,32,102,114,97,109,101,32,110,117,109,98,101,114,32,116,111,32,116,119,101,101,110,32,116,111,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,100,117,114,97,116,105,111,110,32,45,32,68,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,105,110,32,115,101,99,111,110,100,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,119,101,101,110,32,115,116,97,114,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,116,119,101,101,110,40,102,114,97,109,101,44,32,100,117,114,97,116,105,111,110,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,32,61,32,91,48,44,32,48,44,32,49,44,32,49,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,86,101,99,116,111,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,118,97,108,32,111,102,32,101,97,115,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,101,97,115,105,110,103,86,101,99,116,111,114,46,112,117,115,104,95,98,97,99,107,40,118,97,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,116,119,101,101,110,40,102,114,97,109,101,44,32,100,117,114,97,116,105,111,110,44,32,101,97,115,105,110,103,86,101,99,116,111,114,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,116,97,114,116,32,97,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,116,111,32,97,32,115,112,101,99,105,102,105,99,32,109,97,114,107,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,109,97,114,107,101,114,32,45,32,84,104,101,32,109,97,114,107,101,114,32,110,97,109,101,32,116,111,32,116,119,101,101,110,32,116,111,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,100,117,114,97,116,105,111,110,32,45,32,68,117,114,97,116,105,111,110,32,111,102,32,116,104,101,32,116,119,101,101,110,32,97,110,105,109,97,116,105,111,110,32,105,110,32,115,101,99,111,110,100,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,119,101,101,110,32,119,97,115,32,115,116,97,114,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,116,119,101,101,110,84,111,77,97,114,107,101,114,40,109,97,114,107,101,114,44,32,100,117,114,97,116,105,111,110,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,32,61,32,91,48,44,32,48,44,32,49,44,32,49,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,97,115,105,110,103,86,101,99,116,111,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,70,108,111,97,116,40,41,59,10,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,118,97,108,32,111,102,32,101,97,115,105,110,103,41,32,123,10,32,32,32,32,32,32,32,32,101,97,115,105,110,103,86,101,99,116,111,114,46,112,117,115,104,95,98,97,99,107,40,118,97,108,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,116,119,101,101,110,84,111,77,97,114,107,101,114,40,109,97,114,107,101,114,44,32,100,117,114,97,116,105,111,110,44,32,101,97,115,105,110,103,86,101,99,116,111,114,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,111,114,105,103,105,110,97,108,32,100,105,109,101,110,115,105,111,110,115,32,111,102,32,116,104,101,32,97,110,105,109,97,116,105,111,110,32,97,115,32,100,101,102,105,110,101,100,32,105,110,32,116,104,101,32,115,111,117,114,99,101,32,102,105,108,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,119,105,100,116,104,32,97,110,100,32,104,101,105,103,104,116,32,105,110,32,112,105,120,101,108,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,97,110,105,109,97,116,105,111,110,39,115,32,105,110,116,114,105,110,115,105,99,32,115,105,122,101,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,79,98,106,101,99,116,32,119,105,116,104,32,119,105,100,116,104,32,97,110,100,32,104,101,105,103,104,116,32,112,114,111,112,101,114,116,105,101,115,32,105,110,32,112,105,120,101,108,115,10,32,32,32,32,32,42,47,10,32,32,32,32,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,46,103,101,116,40,48,41,32,63,63,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,46,103,101,116,40,49,41,32,63,63,32,48,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,119,105,100,116,104,44,10,32,32,32,32,32,32,32,32,104,101,105,103,104,116,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,71,101,116,115,32,116,104,101,32,79,114,105,101,110,116,101,100,32,66,111,117,110,100,105,110,103,32,66,111,120,32,40,79,66,66,41,32,112,111,105,110,116,115,32,111,102,32,97,32,108,97,121,101,114,32,98,121,32,105,116,115,32,110,97,109,101,46,10,32,32,32,32,32,42,32,82,101,116,117,114,110,115,32,56,32,110,117,109,98,101,114,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,52,32,99,111,114,110,101,114,32,112,111,105,110,116,115,32,40,120,44,121,41,32,105,110,32,99,108,111,99,107,119,105,115,101,32,111,114,100,101,114,32,102,114,111,109,32,116,111,112,45,108,101,102,116,58,32,91,120,48,44,32,121,48,44,32,120,49,44,32,121,49,44,32,120,50,44,32,121,50,44,32,120,51,44,32,121,51,93,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,108,97,121,101,114,78,97,109,101,32,45,32,78,97,109,101,32,111,102,32,116,104,101,32,108,97,121,101,114,32,116,111,32,103,101,116,32,98,111,117,110,100,115,32,102,111,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,56,32,110,117,109,98,101,114,115,32,114,101,112,114,101,115,101,110,116,105,110,103,32,116,104,101,32,98,111,117,110,100,105,110,103,32,98,111,120,32,99,111,114,110,101,114,115,44,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,108,97,121,101,114,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,103,101,116,76,97,121,101,114,66,111,117,110,100,105,110,103,66,111,120,40,108,97,121,101,114,78,97,109,101,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,98,111,117,110,100,115,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,103,101,116,76,97,121,101,114,66,111,117,110,100,115,40,108,97,121,101,114,78,97,109,101,41,59,10,32,32,32,32,32,32,105,102,32,40,33,98,111,117,110,100,115,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,105,102,32,40,98,111,117,110,100,115,46,115,105,122,101,40,41,32,33,61,61,32,56,41,32,114,101,116,117,114,110,32,118,111,105,100,32,48,59,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,105,110,116,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,56,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,112,111,105,110,116,115,46,112,117,115,104,40,98,111,117,110,100,115,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,112,111,105,110,116,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,67,111,110,118,101,114,116,115,32,116,104,101,109,101,32,100,97,116,97,32,105,110,116,111,32,76,111,116,116,105,101,32,115,108,111,116,32,102,111,114,109,97,116,32,102,111,114,32,100,121,110,97,109,105,99,32,99,111,110,116,101,110,116,32,114,101,112,108,97,99,101,109,101,110,116,46,10,32,32,32,32,32,42,32,85,116,105,108,105,116,121,32,102,117,110,99,116,105,111,110,32,102,111,114,32,116,114,97,110,115,102,111,114,109,105,110,103,32,116,104,101,109,101,32,100,101,102,105,110,105,116,105,111,110,115,32,105,110,116,111,32,115,108,111,116,45,99,111,109,112,97,116,105,98,108,101,32,100,97,116,97,32,115,116,114,117,99,116,117,114,101,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,116,104,101,109,101,32,45,32,84,104,101,109,101,32,100,97,116,97,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,108,111,116,115,32,45,32,83,108,111,116,32,100,101,102,105,110,105,116,105,111,110,115,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,97,110,115,102,111,114,109,101,100,32,115,108,111,116,115,32,100,97,116,97,32,97,115,32,97,32,74,83,79,78,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,105,99,32,116,114,97,110,115,102,111,114,109,84,104,101,109,101,84,111,76,111,116,116,105,101,83,108,111,116,115,40,116,104,101,109,101,44,32,115,108,111,116,115,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,63,46,116,114,97,110,115,102,111,114,109,84,104,101,109,101,84,111,76,111,116,116,105,101,83,108,111,116,115,40,116,104,101,109,101,44,32,115,108,111,116,115,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,114,101,103,105,111,110,32,83,116,97,116,101,32,77,97,99,104,105,110,101,10,32,32,32,32,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,67,97,108,108,98,97,99,107,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,97,114,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,34,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,111,112,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,34,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,44,32,48,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,67,117,115,116,111,109,69,118,101,110,116,40,40,101,118,101,110,116,78,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,34,44,32,101,118,101,110,116,78,97,109,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,40,40,105,110,112,117,116,78,97,109,101,44,32,111,108,100,86,97,108,117,101,44,32,110,101,119,86,97,108,117,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,32,105,110,112,117,116,78,97,109,101,44,32,110,101,119,86,97,108,117,101,44,32,111,108,100,86,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,40,40,105,110,112,117,116,78,97,109,101,44,32,111,108,100,86,97,108,117,101,44,32,110,101,119,86,97,108,117,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,32,105,110,112,117,116,78,97,109,101,44,32,110,101,119,86,97,108,117,101,44,32,111,108,100,86,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,40,40,105,110,112,117,116,78,97,109,101,44,32,111,108,100,86,97,108,117,101,44,32,110,101,119,86,97,108,117,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,32,105,110,112,117,116,78,97,109,101,44,32,110,101,119,86,97,108,117,101,44,32,111,108,100,86,97,108,117,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,73,110,112,117,116,70,105,114,101,100,40,40,105,110,112,117,116,78,97,109,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,34,44,32,105,110,112,117,116,78,97,109,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,84,114,97,110,115,105,116,105,111,110,40,40,102,114,111,109,83,116,97,116,101,44,32,116,111,83,116,97,116,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,34,44,32,102,114,111,109,83,116,97,116,101,44,32,116,111,83,116,97,116,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,97,116,101,69,110,116,101,114,101,100,40,40,115,116,97,116,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,34,44,32,115,116,97,116,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,83,116,97,116,101,69,120,105,116,40,40,115,116,97,116,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,34,44,32,115,116,97,116,101,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,46,115,101,116,79,110,69,114,114,111,114,40,40,101,114,114,111,114,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,34,44,32,101,114,114,111,114,32,125,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,109,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,67,97,108,108,98,97,99,107,83,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,79,98,115,101,114,118,101,114,40,41,59,10,32,32,32,32,32,32,115,109,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,46,115,101,116,79,110,77,101,115,115,97,103,101,40,40,109,101,115,115,97,103,101,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,109,101,115,115,97,103,101,46,115,116,97,114,116,115,87,105,116,104,40,34,79,112,101,110,85,114,108,58,32,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,104,97,110,100,108,101,79,112,101,110,85,114,108,40,109,101,115,115,97,103,101,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,101,118,101,110,116,77,97,110,97,103,101,114,46,100,105,115,112,97,116,99,104,40,123,32,116,121,112,101,58,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,34,44,32,109,101,115,115,97,103,101,32,125,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,117,98,115,99,114,105,98,101,40,115,109,67,97,108,108,98,97,99,107,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,83,117,98,115,99,114,105,98,101,40,115,109,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,125,10,32,32,32,32,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,72,97,110,100,108,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,85,110,115,117,98,115,99,114,105,98,101,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,46,100,101,108,101,116,101,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,79,98,115,101,114,118,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,76,111,97,100,115,32,97,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,98,121,32,105,116,115,32,73,68,32,102,114,111,109,32,116,104,101,32,100,111,116,76,111,116,116,105,101,32,109,97,110,105,102,101,115,116,46,10,32,32,32,32,32,42,32,83,116,97,116,101,32,109,97,99,104,105,110,101,115,32,101,110,97,98,108,101,32,105,110,116,101,114,97,99,116,105,118,101,44,32,101,118,101,110,116,45,100,114,105,118,101,110,32,97,110,105,109,97,116,105,111,110,32,98,101,104,97,118,105,111,114,115,46,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,45,32,84,104,101,32,73,68,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,116,111,32,108,111,97,100,32,40,109,117,115,116,32,101,120,105,115,116,32,105,110,32,109,97,110,105,102,101,115,116,41,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,44,32,102,97,108,115,101,32,111,116,104,101,114,119,105,115,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,76,111,97,100,32,97,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,102,114,111,109,32,100,97,116,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,32,45,32,84,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,100,97,116,97,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,108,111,97,100,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,124,124,32,33,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,41,59,10,32,32,32,32,32,32,105,102,32,40,108,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,108,111,97,100,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,99,111,110,102,105,103,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,99,111,110,102,105,103,32,45,32,84,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,99,111,110,102,105,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,67,111,110,102,105,103,40,99,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,32,61,32,99,111,110,102,105,103,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,116,97,114,116,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,115,116,97,114,116,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,32,61,61,61,32,110,117,108,108,32,124,124,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,61,61,61,32,110,117,108,108,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,114,101,79,112,101,110,85,114,108,32,61,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,99,114,101,97,116,101,68,101,102,97,117,108,116,79,112,101,110,85,114,108,80,111,108,105,99,121,40,41,59,10,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,111,112,101,110,85,114,108,80,111,108,105,99,121,32,61,32,116,104,105,115,46,95,115,116,97,116,101,77,97,99,104,105,110,101,67,111,110,102,105,103,46,111,112,101,110,85,114,108,80,111,108,105,99,121,59,10,32,32,32,32,32,32,32,32,105,102,32,40,111,112,101,110,85,114,108,80,111,108,105,99,121,32,38,38,32,116,121,112,101,111,102,32,111,112,101,110,85,114,108,80,111,108,105,99,121,46,114,101,113,117,105,114,101,85,115,101,114,73,110,116,101,114,97,99,116,105,111,110,32,61,61,61,32,34,98,111,111,108,101,97,110,34,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,114,101,79,112,101,110,85,114,108,46,114,101,113,117,105,114,101,85,115,101,114,73,110,116,101,114,97,99,116,105,111,110,32,61,32,111,112,101,110,85,114,108,80,111,108,105,99,121,46,114,101,113,117,105,114,101,85,115,101,114,73,110,116,101,114,97,99,116,105,111,110,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,111,112,101,110,85,114,108,80,111,108,105,99,121,63,46,119,104,105,116,101,108,105,115,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,114,101,79,112,101,110,85,114,108,46,119,104,105,116,101,108,105,115,116,32,61,32,110,101,119,32,95,68,111,116,76,111,116,116,105,101,46,95,119,97,115,109,77,111,100,117,108,101,46,86,101,99,116,111,114,83,116,114,105,110,103,40,41,59,10,32,32,32,32,32,32,32,32,32,32,102,111,114,32,40,99,111,110,115,116,32,117,114,108,32,111,102,32,111,112,101,110,85,114,108,80,111,108,105,99,121,46,119,104,105,116,101,108,105,115,116,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,111,114,101,79,112,101,110,85,114,108,46,119,104,105,116,101,108,105,115,116,46,112,117,115,104,95,98,97,99,107,40,117,114,108,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,114,116,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,99,111,114,101,79,112,101,110,85,114,108,41,59,10,32,32,32,32,32,32,105,102,32,40,115,116,97,114,116,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,97,114,116,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,97,114,116,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,116,111,112,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,119,97,115,32,115,116,111,112,112,101,100,32,115,117,99,99,101,115,115,102,117,108,108,121,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,111,112,112,101,100,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,59,10,32,32,32,32,32,32,105,102,32,40,115,116,111,112,112,101,100,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,79,98,115,101,114,118,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,105,115,83,116,97,116,101,77,97,99,104,105,110,101,82,117,110,110,105,110,103,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,105,115,80,108,97,121,105,110,103,40,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,115,116,111,112,65,110,105,109,97,116,105,111,110,76,111,111,112,40,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,115,116,111,112,112,101,100,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,117,115,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,117,115,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,97,116,117,115,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,117,115,40,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,67,117,114,114,101,110,116,83,116,97,116,101,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,67,117,114,114,101,110,116,83,116,97,116,101,40,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,97,99,116,105,118,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,73,68,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,97,99,116,105,118,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,73,68,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,65,99,116,105,118,101,73,100,40,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,97,99,116,105,118,101,83,116,97,116,101,77,97,99,104,105,110,101,73,100,40,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,79,118,101,114,114,105,100,101,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,32,45,32,84,104,101,32,115,116,97,116,101,32,116,111,32,111,118,101,114,114,105,100,101,32,116,111,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,105,109,109,101,100,105,97,116,101,32,45,32,87,104,101,116,104,101,114,32,116,111,32,105,109,109,101,100,105,97,116,101,108,121,32,116,114,97,110,115,105,116,105,111,110,32,116,111,32,116,104,101,32,115,116,97,116,101,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,116,114,117,101,32,105,102,32,116,104,101,32,115,116,97,116,101,32,111,118,101,114,114,105,100,101,32,119,97,115,32,115,117,99,99,101,115,115,102,117,108,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,83,116,97,116,101,40,115,116,97,116,101,44,32,105,109,109,101,100,105,97,116,101,32,61,32,102,97,108,115,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,67,117,114,114,101,110,116,83,116,97,116,101,40,115,116,97,116,101,44,32,105,109,109,101,100,105,97,116,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,115,112,101,99,105,102,105,99,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,98,121,32,73,68,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,45,32,84,104,101,32,73,68,32,111,102,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,116,111,32,103,101,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,100,97,116,97,32,97,115,32,97,32,115,116,114,105,110,103,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,103,101,116,83,116,97,116,101,77,97,99,104,105,110,101,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,32,63,63,32,34,34,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,116,104,101,32,108,105,115,116,32,111,102,32,115,116,97,116,101,32,109,97,99,104,105,110,101,32,108,105,115,116,101,110,101,114,115,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,114,114,97,121,32,111,102,32,108,105,115,116,101,110,101,114,32,110,97,109,101,115,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,70,114,97,109,101,119,111,114,107,83,101,116,117,112,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,108,105,115,116,101,110,101,114,115,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,108,105,115,116,101,110,101,114,115,46,112,117,115,104,40,108,105,115,116,101,110,101,114,115,86,101,99,116,111,114,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,108,105,115,116,101,110,101,114,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,97,32,98,111,111,108,101,97,110,32,105,110,112,117,116,32,118,97,108,117,101,32,102,111,114,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,98,111,111,108,101,97,110,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,104,101,32,98,111,111,108,101,97,110,32,118,97,108,117,101,32,116,111,32,115,101,116,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,97,32,110,117,109,101,114,105,99,32,105,110,112,117,116,32,118,97,108,117,101,32,102,111,114,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,110,117,109,101,114,105,99,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,104,101,32,110,117,109,101,114,105,99,32,118,97,108,117,101,32,116,111,32,115,101,116,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,83,101,116,32,97,32,115,116,114,105,110,103,32,105,110,112,117,116,32,118,97,108,117,101,32,102,111,114,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,115,116,114,105,110,103,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,118,97,108,117,101,32,45,32,84,104,101,32,115,116,114,105,110,103,32,118,97,108,117,101,32,116,111,32,115,101,116,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,63,63,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,98,111,111,108,101,97,110,32,105,110,112,117,116,32,118,97,108,117,101,32,102,114,111,109,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,98,111,111,108,101,97,110,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,98,111,111,108,101,97,110,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,110,117,109,101,114,105,99,32,105,110,112,117,116,32,118,97,108,117,101,32,102,114,111,109,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,110,117,109,101,114,105,99,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,110,117,109,101,114,105,99,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,32,115,116,114,105,110,103,32,105,110,112,117,116,32,118,97,108,117,101,32,102,114,111,109,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,115,116,114,105,110,103,32,105,110,112,117,116,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,115,116,114,105,110,103,32,118,97,108,117,101,32,111,114,32,117,110,100,101,102,105,110,101,100,32,105,102,32,110,111,116,32,102,111,117,110,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,71,101,116,32,97,108,108,32,116,104,101,32,105,110,112,117,116,115,32,111,102,32,116,104,101,32,99,117,114,114,101,110,116,32,115,116,97,116,101,32,109,97,99,104,105,110,101,46,32,82,101,116,117,114,110,115,32,116,104,101,32,107,101,121,32,110,97,109,101,44,32,102,111,108,108,111,119,101,100,32,98,121,32,105,116,39,115,32,116,121,112,101,32,97,115,32,97,32,115,116,114,105,110,103,46,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,65,110,32,97,114,114,97,121,32,111,102,32,105,110,112,117,116,32,107,101,121,115,32,102,111,108,108,111,119,101,100,32,98,121,32,105,116,39,115,32,116,121,112,101,32,97,116,32,110,43,49,46,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,41,32,114,101,116,117,114,110,32,91,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,112,117,116,115,86,101,99,116,111,114,32,61,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,40,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,112,117,116,115,32,61,32,91,93,59,10,32,32,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,48,59,32,105,32,60,32,105,110,112,117,116,115,86,101,99,116,111,114,46,115,105,122,101,40,41,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,105,110,112,117,116,115,46,112,117,115,104,40,105,110,112,117,116,115,86,101,99,116,111,114,46,103,101,116,40,105,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,112,117,116,115,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,70,105,114,101,32,97,110,32,101,118,101,110,116,32,105,110,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,110,97,109,101,32,45,32,84,104,101,32,110,97,109,101,32,111,102,32,116,104,101,32,101,118,101,110,116,32,116,111,32,102,105,114,101,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,40,110,97,109,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,40,110,97,109,101,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,99,108,105,99,107,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,99,108,105,99,107,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,99,108,105,99,107,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,117,112,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,100,111,119,110,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,109,111,118,101,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,101,110,116,101,114,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,47,42,42,10,32,32,32,32,32,42,32,64,101,120,112,101,114,105,109,101,110,116,97,108,10,32,32,32,32,32,42,32,80,111,115,116,32,97,32,112,111,105,110,116,101,114,32,101,120,105,116,32,101,118,101,110,116,32,116,111,32,116,104,101,32,115,116,97,116,101,32,109,97,99,104,105,110,101,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,120,32,45,32,84,104,101,32,120,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,112,97,114,97,109,32,121,32,45,32,84,104,101,32,121,32,99,111,111,114,100,105,110,97,116,101,32,111,102,32,116,104,101,32,112,111,105,110,116,101,114,10,32,32,32,32,32,42,32,64,114,101,116,117,114,110,115,32,84,104,101,32,101,118,101,110,116,32,114,101,115,117,108,116,32,111,114,32,117,110,100,101,102,105,110,101,100,10,32,32,32,32,32,42,47,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,120,44,32,121,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,63,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,10,32,32,32,32,95,111,110,67,108,105,99,107,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,85,112,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,68,111,119,110,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,77,111,118,101,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,69,110,116,101,114,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,111,110,80,111,105,110,116,101,114,76,101,97,118,101,40,101,118,101,110,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,111,115,105,116,105,111,110,32,61,32,103,101,116,80,111,105,110,116,101,114,80,111,115,105,116,105,111,110,40,101,118,101,110,116,41,59,10,32,32,32,32,32,32,105,102,32,40,112,111,115,105,116,105,111,110,41,32,123,10,32,32,32,32,32,32,32,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,112,111,115,105,116,105,111,110,46,120,44,32,112,111,115,105,116,105,111,110,46,121,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,115,101,116,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,32,38,38,32,116,104,105,115,46,95,100,111,116,76,111,116,116,105,101,67,111,114,101,32,33,61,61,32,110,117,108,108,32,38,38,32,116,104,105,115,46,105,115,76,111,97,100,101,100,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,108,105,115,116,101,110,101,114,115,32,61,32,116,104,105,115,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,67,108,105,99,107,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,32,61,32,116,104,105,115,46,95,111,110,67,108,105,99,107,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,99,108,105,99,107,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,85,112,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,85,112,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,117,112,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,68,111,119,110,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,68,111,119,110,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,100,111,119,110,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,77,111,118,101,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,77,111,118,101,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,109,111,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,69,110,116,101,114,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,69,110,116,101,114,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,101,110,116,101,114,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,108,105,115,116,101,110,101,114,115,46,105,110,99,108,117,100,101,115,40,34,80,111,105,110,116,101,114,69,120,105,116,34,41,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,32,61,32,116,104,105,115,46,95,111,110,80,111,105,110,116,101,114,76,101,97,118,101,46,98,105,110,100,40,116,104,105,115,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,108,101,97,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,95,99,108,101,97,110,117,112,83,116,97,116,101,77,97,99,104,105,110,101,76,105,115,116,101,110,101,114,115,40,41,32,123,10,32,32,32,32,32,32,105,102,32,40,73,83,95,66,82,79,87,83,69,82,32,38,38,32,116,104,105,115,46,95,99,97,110,118,97,115,32,105,110,115,116,97,110,99,101,111,102,32,72,84,77,76,67,97,110,118,97,115,69,108,101,109,101,110,116,41,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,99,108,105,99,107,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,67,108,105,99,107,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,117,112,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,85,112,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,100,111,119,110,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,68,111,119,110,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,109,111,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,77,111,118,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,101,110,116,101,114,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,69,110,116,101,114,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,105,102,32,40,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,99,97,110,118,97,115,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,40,34,112,111,105,110,116,101,114,108,101,97,118,101,34,44,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,41,59,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,95,98,111,117,110,100,79,110,80,111,105,110,116,101,114,76,101,97,118,101,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,47,47,32,35,101,110,100,114,101,103,105,111,110,10,32,32,125,59,10,32,32,95,95,112,117,98,108,105,99,70,105,101,108,100,40,95,68,111,116,76,111,116,116,105,101,44,32,34,95,119,97,115,109,77,111,100,117,108,101,34,44,32,110,117,108,108,41,59,10,32,32,118,97,114,32,68,111,116,76,111,116,116,105,101,32,61,32,95,68,111,116,76,111,116,116,105,101,59,10,10,32,32,47,47,32,115,114,99,47,119,111,114,107,101,114,47,100,111,116,108,111,116,116,105,101,46,119,111,114,107,101,114,46,116,115,10,32,32,118,97,114,32,105,110,115,116,97,110,99,101,115,77,97,112,32,61,32,47,42,32,64,95,95,80,85,82,69,95,95,32,42,47,32,110,101,119,32,77,97,112,40,41,59,10,32,32,118,97,114,32,101,118,101,110,116,72,97,110,100,108,101,114,77,97,112,32,61,32,123,10,32,32,32,32,114,101,97,100,121,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,82,101,97,100,121,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,99,111,109,112,108,101,116,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,67,111,109,112,108,101,116,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,76,111,97,100,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,108,111,97,100,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,69,114,114,111,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,97,100,69,114,114,111,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,76,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,108,111,97,100,69,114,114,111,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,110,100,101,114,69,114,114,111,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,69,114,114,111,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,82,101,110,100,101,114,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,114,101,110,100,101,114,69,114,114,111,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,111,112,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,111,112,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,76,111,111,112,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,108,111,111,112,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,108,97,121,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,108,97,121,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,80,108,97,121,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,112,108,97,121,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,97,117,115,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,112,97,117,115,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,80,97,117,115,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,112,97,117,115,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,111,112,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,111,112,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,111,112,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,111,112,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,102,114,97,109,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,70,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,102,114,97,109,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,110,100,101,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,82,101,110,100,101,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,114,101,110,100,101,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,102,114,101,101,122,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,101,101,122,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,70,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,102,114,101,101,122,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,117,110,102,114,101,101,122,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,117,110,102,114,101,101,122,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,85,110,102,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,117,110,102,114,101,101,122,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,100,101,115,116,114,111,121,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,100,101,115,116,114,111,121,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,68,101,115,116,114,111,121,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,100,101,115,116,114,111,121,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,47,47,32,101,115,108,105,110,116,45,100,105,115,97,98,108,101,45,110,101,120,116,45,108,105,110,101,32,110,111,45,115,101,99,114,101,116,115,47,110,111,45,115,101,99,114,101,116,115,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,69,118,101,110,116,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,69,118,101,110,116,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,58,32,40,105,110,115,116,97,110,99,101,73,100,41,32,61,62,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,32,61,32,101,118,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,34,34,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,34,111,110,83,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,34,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,58,32,123,10,32,32,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,44,10,32,32,32,32,32,32,32,32,32,32,101,118,101,110,116,58,32,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,99,111,109,109,97,110,100,115,32,61,32,123,10,32,32,32,32,115,101,116,84,114,97,110,115,102,111,114,109,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,84,114,97,110,115,102,111,114,109,40,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,116,114,97,110,115,102,111,114,109,41,59,10,32,32,32,32,125,44,10,32,32,32,32,103,101,116,84,114,97,110,115,102,111,114,109,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,103,101,116,84,114,97,110,115,102,111,114,109,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,103,101,116,68,111,116,76,111,116,116,105,101,73,110,115,116,97,110,99,101,83,116,97,116,101,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,32,61,32,123,10,32,32,32,32,32,32,32,32,108,111,111,112,67,111,117,110,116,58,32,105,110,115,116,97,110,99,101,46,108,111,111,112,67,111,117,110,116,44,10,32,32,32,32,32,32,32,32,105,115,76,111,97,100,101,100,58,32,105,110,115,116,97,110,99,101,46,105,115,76,111,97,100,101,100,44,10,32,32,32,32,32,32,32,32,105,115,80,97,117,115,101,100,58,32,105,110,115,116,97,110,99,101,46,105,115,80,97,117,115,101,100,44,10,32,32,32,32,32,32,32,32,105,115,80,108,97,121,105,110,103,58,32,105,110,115,116,97,110,99,101,46,105,115,80,108,97,121,105,110,103,44,10,32,32,32,32,32,32,32,32,105,115,83,116,111,112,112,101,100,58,32,105,110,115,116,97,110,99,101,46,105,115,83,116,111,112,112,101,100,44,10,32,32,32,32,32,32,32,32,105,115,70,114,111,122,101,110,58,32,105,110,115,116,97,110,99,101,46,105,115,70,114,111,122,101,110,44,10,32,32,32,32,32,32,32,32,108,111,111,112,58,32,105,110,115,116,97,110,99,101,46,108,111,111,112,44,10,32,32,32,32,32,32,32,32,109,111,100,101,58,32,105,110,115,116,97,110,99,101,46,109,111,100,101,44,10,32,32,32,32,32,32,32,32,115,112,101,101,100,58,32,105,110,115,116,97,110,99,101,46,115,112,101,101,100,44,10,32,32,32,32,32,32,32,32,99,117,114,114,101,110,116,70,114,97,109,101,58,32,105,110,115,116,97,110,99,101,46,99,117,114,114,101,110,116,70,114,97,109,101,44,10,32,32,32,32,32,32,32,32,116,111,116,97,108,70,114,97,109,101,115,58,32,105,110,115,116,97,110,99,101,46,116,111,116,97,108,70,114,97,109,101,115,44,10,32,32,32,32,32,32,32,32,100,117,114,97,116,105,111,110,58,32,105,110,115,116,97,110,99,101,46,100,117,114,97,116,105,111,110,44,10,32,32,32,32,32,32,32,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,105,110,115,116,97,110,99,101,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,44,10,32,32,32,32,32,32,32,32,114,101,110,100,101,114,67,111,110,102,105,103,58,32,105,110,115,116,97,110,99,101,46,114,101,110,100,101,114,67,111,110,102,105,103,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,58,32,105,110,115,116,97,110,99,101,46,109,97,114,107,101,114,44,10,32,32,32,32,32,32,32,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,105,110,115,116,97,110,99,101,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,44,10,32,32,32,32,32,32,32,32,109,97,114,107,101,114,115,58,32,105,110,115,116,97,110,99,101,46,109,97,114,107,101,114,115,40,41,44,10,32,32,32,32,32,32,32,32,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,58,32,105,110,115,116,97,110,99,101,46,97,99,116,105,118,101,65,110,105,109,97,116,105,111,110,73,100,44,10,32,32,32,32,32,32,32,32,97,99,116,105,118,101,84,104,101,109,101,73,100,58,32,105,110,115,116,97,110,99,101,46,97,99,116,105,118,101,84,104,101,109,101,73,100,44,10,32,32,32,32,32,32,32,32,97,117,116,111,112,108,97,121,58,32,105,110,115,116,97,110,99,101,46,97,117,116,111,112,108,97,121,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,58,32,105,110,115,116,97,110,99,101,46,115,101,103,109,101,110,116,44,10,32,32,32,32,32,32,32,32,108,97,121,111,117,116,58,32,105,110,115,116,97,110,99,101,46,108,97,121,111,117,116,44,10,32,32,32,32,32,32,32,32,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,58,32,105,110,115,116,97,110,99,101,46,115,101,103,109,101,110,116,68,117,114,97,116,105,111,110,44,10,32,32,32,32,32,32,32,32,105,115,82,101,97,100,121,58,32,105,110,115,116,97,110,99,101,46,105,115,82,101,97,100,121,44,10,32,32,32,32,32,32,32,32,109,97,110,105,102,101,115,116,58,32,105,110,115,116,97,110,99,101,46,109,97,110,105,102,101,115,116,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,115,116,97,116,101,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,76,97,121,111,117,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,97,121,111,117,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,108,97,121,111,117,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,76,97,121,111,117,116,40,108,97,121,111,117,116,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,76,105,115,116,101,110,101,114,115,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,77,97,99,104,105,110,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,76,111,97,100,68,97,116,97,40,115,116,97,116,101,77,97,99,104,105,110,101,68,97,116,97,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,67,108,105,99,107,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,85,112,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,68,111,119,110,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,77,111,118,101,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,110,116,101,114,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,80,111,115,116,80,111,105,110,116,101,114,69,120,105,116,69,118,101,110,116,40,120,44,32,121,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,118,97,108,117,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,118,97,108,117,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,118,97,108,117,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,118,97,108,117,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,67,111,110,102,105,103,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,99,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,67,111,110,102,105,103,40,99,111,110,102,105,103,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,118,97,108,117,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,118,97,108,117,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,83,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,44,32,118,97,108,117,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,78,117,109,101,114,105,99,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,66,111,111,108,101,97,110,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,114,105,110,103,73,110,112,117,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,73,110,112,117,116,115,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,110,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,70,105,114,101,69,118,101,110,116,40,110,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,97,116,117,115,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,83,116,97,116,117,115,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,67,117,114,114,101,110,116,83,116,97,116,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,67,117,114,114,101,110,116,83,116,97,116,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,65,99,116,105,118,101,73,100,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,65,99,116,105,118,101,73,100,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,83,116,97,116,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,109,109,101,100,105,97,116,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,109,109,101,100,105,97,116,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,79,118,101,114,114,105,100,101,83,116,97,116,101,40,115,116,97,116,101,44,32,105,109,109,101,100,105,97,116,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,116,97,116,101,77,97,99,104,105,110,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,116,97,116,101,77,97,99,104,105,110,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,116,97,116,101,77,97,99,104,105,110,101,71,101,116,40,115,116,97,116,101,77,97,99,104,105,110,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,99,114,101,97,116,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,99,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,115,77,97,112,46,104,97,115,40,105,110,115,116,97,110,99,101,73,100,41,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,97,108,114,101,97,100,121,32,101,120,105,115,116,115,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,110,101,119,32,68,111,116,76,111,116,116,105,101,40,99,111,110,102,105,103,41,59,10,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,32,104,101,105,103,104,116,59,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,119,105,100,116,104,32,61,32,119,105,100,116,104,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,115,77,97,112,46,115,101,116,40,105,110,115,116,97,110,99,101,73,100,44,32,105,110,115,116,97,110,99,101,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,101,118,101,110,116,115,32,61,32,91,10,32,32,32,32,32,32,32,32,34,99,111,109,112,108,101,116,101,34,44,10,32,32,32,32,32,32,32,32,34,102,114,97,109,101,34,44,10,32,32,32,32,32,32,32,32,34,108,111,97,100,34,44,10,32,32,32,32,32,32,32,32,34,108,111,97,100,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,34,114,101,110,100,101,114,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,34,108,111,111,112,34,44,10,32,32,32,32,32,32,32,32,34,112,97,117,115,101,34,44,10,32,32,32,32,32,32,32,32,34,112,108,97,121,34,44,10,32,32,32,32,32,32,32,32,34,115,116,111,112,34,44,10,32,32,32,32,32,32,32,32,34,100,101,115,116,114,111,121,34,44,10,32,32,32,32,32,32,32,32,34,102,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,34,117,110,102,114,101,101,122,101,34,44,10,32,32,32,32,32,32,32,32,34,114,101,110,100,101,114,34,44,10,32,32,32,32,32,32,32,32,34,114,101,97,100,121,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,114,116,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,111,112,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,84,114,97,110,115,105,116,105,111,110,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,110,116,101,114,101,100,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,97,116,101,69,120,105,116,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,67,117,115,116,111,109,69,118,101,110,116,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,69,114,114,111,114,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,66,111,111,108,101,97,110,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,78,117,109,101,114,105,99,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,83,116,114,105,110,103,73,110,112,117,116,86,97,108,117,101,67,104,97,110,103,101,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,112,117,116,70,105,114,101,100,34,44,10,32,32,32,32,32,32,32,32,34,115,116,97,116,101,77,97,99,104,105,110,101,73,110,116,101,114,110,97,108,77,101,115,115,97,103,101,34,10,32,32,32,32,32,32,93,59,10,32,32,32,32,32,32,101,118,101,110,116,115,46,102,111,114,69,97,99,104,40,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,40,101,118,101,110,116,44,32,101,118,101,110,116,72,97,110,100,108,101,114,77,97,112,91,101,118,101,110,116,93,40,105,110,115,116,97,110,99,101,73,100,41,41,59,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,73,100,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,44,10,32,32,32,32,100,101,115,116,114,111,121,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,114,101,116,117,114,110,59,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,100,101,115,116,114,111,121,40,41,59,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,115,77,97,112,46,100,101,108,101,116,101,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,102,114,101,101,122,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,102,114,101,101,122,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,99,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,108,111,97,100,40,99,111,110,102,105,103,41,59,10,32,32,32,32,125,44,10,32,32,32,32,108,111,97,100,65,110,105,109,97,116,105,111,110,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,97,110,105,109,97,116,105,111,110,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,97,110,105,109,97,116,105,111,110,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,108,111,97,100,65,110,105,109,97,116,105,111,110,40,97,110,105,109,97,116,105,111,110,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,84,104,101,109,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,116,104,101,109,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,84,104,101,109,101,40,116,104,101,109,101,73,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,84,104,101,109,101,68,97,116,97,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,116,104,101,109,101,68,97,116,97,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,116,104,101,109,101,68,97,116,97,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,84,104,101,109,101,68,97,116,97,40,116,104,101,109,101,68,97,116,97,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,97,117,115,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,112,97,117,115,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,112,108,97,121,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,112,108,97,121,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,103,105,115,116,101,114,70,111,110,116,58,32,97,115,121,110,99,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,123,32,102,111,110,116,78,97,109,101,44,32,102,111,110,116,83,111,117,114,99,101,32,125,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,68,111,116,76,111,116,116,105,101,46,114,101,103,105,115,116,101,114,70,111,110,116,40,102,111,110,116,78,97,109,101,44,32,102,111,110,116,83,111,117,114,99,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,114,101,115,105,122,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,102,32,40,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,41,32,123,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,104,101,105,103,104,116,32,61,32,104,101,105,103,104,116,59,10,32,32,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,99,97,110,118,97,115,46,119,105,100,116,104,32,61,32,119,105,100,116,104,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,114,101,115,105,122,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,66,97,99,107,103,114,111,117,110,100,67,111,108,111,114,40,98,97,99,107,103,114,111,117,110,100,67,111,108,111,114,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,70,114,97,109,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,102,114,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,70,114,97,109,101,40,102,114,97,109,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,77,111,100,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,109,111,100,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,109,111,100,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,77,111,100,101,40,109,111,100,101,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,82,101,110,100,101,114,67,111,110,102,105,103,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,110,100,101,114,67,111,110,102,105,103,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,114,101,110,100,101,114,67,111,110,102,105,103,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,82,101,110,100,101,114,67,111,110,102,105,103,40,114,101,110,100,101,114,67,111,110,102,105,103,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,83,101,103,109,101,110,116,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,101,103,109,101,110,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,101,103,109,101,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,83,101,103,109,101,110,116,40,115,101,103,109,101,110,116,91,48,93,44,32,115,101,103,109,101,110,116,91,49,93,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,83,112,101,101,100,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,115,112,101,101,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,115,112,101,101,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,83,112,101,101,100,40,115,112,101,101,100,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,85,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,85,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,40,117,115,101,70,114,97,109,101,73,110,116,101,114,112,111,108,97,116,105,111,110,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,87,97,115,109,85,114,108,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,68,111,116,76,111,116,116,105,101,46,115,101,116,87,97,115,109,85,114,108,40,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,117,114,108,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,116,111,112,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,116,111,112,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,117,110,102,114,101,101,122,101,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,117,110,102,114,101,101,122,101,40,41,59,10,32,32,32,32,125,44,10,32,32,32,32,116,119,101,101,110,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,114,97,109,101,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,102,114,97,109,101,59,10,32,32,32,32,32,32,99,111,110,115,116,32,100,117,114,97,116,105,111,110,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,100,117,114,97,116,105,111,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,116,119,101,101,110,40,102,114,97,109,101,44,32,100,117,114,97,116,105,111,110,41,59,10,32,32,32,32,125,44,10,32,32,32,32,116,119,101,101,110,84,111,77,97,114,107,101,114,58,32,40,114,101,113,117,101,115,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,109,97,114,107,101,114,59,10,32,32,32,32,32,32,99,111,110,115,116,32,100,117,114,97,116,105,111,110,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,100,117,114,97,116,105,111,110,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,116,119,101,101,110,84,111,77,97,114,107,101,114,40,109,97,114,107,101,114,44,32,100,117,114,97,116,105,111,110,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,86,105,101,119,112,111,114,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,120,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,120,59,10,32,32,32,32,32,32,99,111,110,115,116,32,121,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,121,59,10,32,32,32,32,32,32,99,111,110,115,116,32,119,105,100,116,104,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,119,105,100,116,104,59,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,105,103,104,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,104,101,105,103,104,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,116,97,110,99,101,46,115,101,116,86,105,101,119,112,111,114,116,40,120,44,32,121,44,32,119,105,100,116,104,44,32,104,101,105,103,104,116,41,59,10,32,32,32,32,125,44,10,32,32,32,32,97,110,105,109,97,116,105,111,110,83,105,122,101,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,123,32,104,101,105,103,104,116,44,32,119,105,100,116,104,32,125,32,61,32,105,110,115,116,97,110,99,101,46,97,110,105,109,97,116,105,111,110,83,105,122,101,40,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,32,32,32,32,104,101,105,103,104,116,44,10,32,32,32,32,32,32,32,32,119,105,100,116,104,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,77,97,114,107,101,114,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,109,97,114,107,101,114,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,109,97,114,107,101,114,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,77,97,114,107,101,114,40,109,97,114,107,101,114,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,76,111,111,112,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,111,112,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,108,111,111,112,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,76,111,111,112,40,108,111,111,112,41,59,10,32,32,32,32,125,44,10,32,32,32,32,115,101,116,76,111,111,112,67,111,117,110,116,40,114,101,113,117,101,115,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,73,100,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,105,110,115,116,97,110,99,101,73,100,59,10,32,32,32,32,32,32,99,111,110,115,116,32,108,111,111,112,67,111,117,110,116,32,61,32,114,101,113,117,101,115,116,46,112,97,114,97,109,115,46,108,111,111,112,67,111,117,110,116,59,10,32,32,32,32,32,32,99,111,110,115,116,32,105,110,115,116,97,110,99,101,32,61,32,105,110,115,116,97,110,99,101,115,77,97,112,46,103,101,116,40,105,110,115,116,97,110,99,101,73,100,41,59,10,32,32,32,32,32,32,105,102,32,40,33,105,110,115,116,97,110,99,101,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,73,110,115,116,97,110,99,101,32,119,105,116,104,32,105,100,32,36,123,105,110,115,116,97,110,99,101,73,100,125,32,100,111,101,115,32,110,111,116,32,101,120,105,115,116,46,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,105,110,115,116,97,110,99,101,46,115,101,116,76,111,111,112,67,111,117,110,116,40,108,111,111,112,67,111,117,110,116,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,102,117,110,99,116,105,111,110,32,101,120,101,99,117,116,101,67,111,109,109,97,110,100,40,114,112,99,82,101,113,117,101,115,116,41,32,123,10,32,32,32,32,99,111,110,115,116,32,109,101,116,104,111,100,32,61,32,114,112,99,82,101,113,117,101,115,116,46,109,101,116,104,111,100,59,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,99,111,109,109,97,110,100,115,91,109,101,116,104,111,100,93,32,61,61,61,32,34,102,117,110,99,116,105,111,110,34,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,99,111,109,109,97,110,100,115,91,109,101,116,104,111,100,93,40,114,112,99,82,101,113,117,101,115,116,41,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,77,101,116,104,111,100,32,36,123,109,101,116,104,111,100,125,32,105,115,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,32,105,110,32,99,111,109,109,97,110,100,115,46,96,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,115,101,108,102,46,111,110,109,101,115,115,97,103,101,32,61,32,97,115,121,110,99,32,40,101,118,101,110,116,41,32,61,62,32,123,10,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,97,119,97,105,116,32,101,120,101,99,117,116,101,67,111,109,109,97,110,100,40,101,118,101,110,116,46,100,97,116,97,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,101,118,101,110,116,46,100,97,116,97,46,105,100,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,101,118,101,110,116,46,100,97,116,97,46,109,101,116,104,111,100,44,10,32,32,32,32,32,32,32,32,114,101,115,117,108,116,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,114,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,32,99,97,116,99,104,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,101,114,114,111,114,82,101,115,112,111,110,115,101,32,61,32,123,10,32,32,32,32,32,32,32,32,105,100,58,32,101,118,101,110,116,46,100,97,116,97,46,105,100,44,10,32,32,32,32,32,32,32,32,109,101,116,104,111,100,58,32,101,118,101,110,116,46,100,97,116,97,46,109,101,116,104,111,100,44,10,32,32,32,32,32,32,32,32,101,114,114,111,114,58,32,101,114,114,111,114,46,109,101,115,115,97,103,101,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,115,101,108,102,46,112,111,115,116,77,101,115,115,97,103,101,40,101,114,114,111,114,82,101,115,112,111,110,115,101,41,59,10,32,32,32,32,125,10,32,32,125,59,10,32,32,118,97,114,32,100,117,109,109,121,32,61,32,34,34,59,10,32,32,118,97,114,32,100,111,116,108,111,116,116,105,101,95,119,111,114,107,101,114,95,100,101,102,97,117,108,116,32,61,32,100,117,109,109,121,59,10,125,41,40,41,59,10])],{type:"application/javascript"}),e=URL.createObjectURL(n),o=new Worker(e);return URL.revokeObjectURL(e),o}},r0=a0,s0=class{constructor(){p(this,"_workers",new Map),p(this,"_animationWorkerMap",new Map)}getWorker(n){return this._workers.has(n)||this._workers.set(n,new r0),this._workers.get(n)}assignAnimationToWorker(n,e){this._animationWorkerMap.set(n,e)}unassignAnimationFromWorker(n){this._animationWorkerMap.delete(n)}sendMessage(n,e,o){this.getWorker(n).postMessage(e,o||[])}broadcastMessage(n,e){this._workers.forEach(o=>{o.postMessage(n,e||[])})}terminateWorker(n){let e=this._workers.get(n);e&&(e.terminate(),this._workers.delete(n))}};function Q2(n,e){if(typeof HTMLCanvasElement<"u"&&n instanceof HTMLCanvasElement){let{height:o,width:d}=n.getBoundingClientRect();if(o!==0&&d!==0)return{width:d*e,height:o*e}}return{width:n.width,height:n.height}}function m2(){return Date.now().toString(36)+Math.random().toString(36).substr(2,9)}var g2=class Pp{constructor(e){var I,f;if(p(this,"_eventManager",new Z2),p(this,"_id"),p(this,"_worker"),p(this,"_canvas"),p(this,"_dotLottieInstanceState",{loopCount:0,markers:[],autoplay:!1,backgroundColor:"",currentFrame:0,duration:0,loop:!1,mode:"forward",segment:[0,0],segmentDuration:0,speed:1,totalFrames:0,isLoaded:!1,isPlaying:!1,isPaused:!1,isStopped:!0,isFrozen:!1,useFrameInterpolation:!1,renderConfig:{devicePixelRatio:d1()},activeAnimationId:"",activeThemeId:"",layout:void 0,marker:void 0,isReady:!1,manifest:null}),p(this,"_created",!1),p(this,"_boundOnClick",null),p(this,"_boundOnPointerUp",null),p(this,"_boundOnPointerDown",null),p(this,"_boundOnPointerMove",null),p(this,"_boundOnPointerEnter",null),p(this,"_boundOnPointerLeave",null),p(this,"_pendingConfig",null),e.canvas){let S=typeof HTMLCanvasElement<"u"&&e.canvas instanceof HTMLCanvasElement,v=typeof OffscreenCanvas<"u"&&e.canvas instanceof OffscreenCanvas;if(!S&&!v)throw new Error("Worker-based DotLottie requires HTMLCanvasElement or OffscreenCanvas")}this._canvas=e.canvas??null,this._id=`dotlottie-${m2()}`;let o=e.workerId||"defaultWorker";this._worker=Pp._workerManager.getWorker(o),Pp._workerManager.assignAnimationToWorker(this._id,o),Pp._wasmUrl&&this._sendMessage("setWasmUrl",{url:Pp._wasmUrl});let d={...e,renderConfig:{...e.renderConfig,devicePixelRatio:((I=e.renderConfig)==null?void 0:I.devicePixelRatio)||d1(),freezeOnOffscreen:((f=e.renderConfig)==null?void 0:f.freezeOnOffscreen)??!0}};this._pendingConfig=d,this._canvas&&(this._create(d),this._pendingConfig=null),this._worker.addEventListener("message",this._handleWorkerEvent.bind(this))}async _handleWorkerEvent(e){let o=e.data;if(!o.id&&(o.method==="onLoad"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event),E&&this._canvas instanceof HTMLCanvasElement&&(this._dotLottieInstanceState.renderConfig.freezeOnOffscreen&&(N.observe(this._canvas,this),l1(this._canvas)||await this.freeze()),this._dotLottieInstanceState.renderConfig.autoResize&&G.observe(this._canvas,this))),o.method==="onComplete"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onDestroy"&&o.result.instanceId===this._id&&this._eventManager.dispatch(o.result.event),o.method==="onUnfreeze"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._dotLottieInstanceState.isFrozen=!1,this._eventManager.dispatch(o.result.event)),o.method==="onFrame"&&o.result.instanceId===this._id&&(this._dotLottieInstanceState.currentFrame=o.result.event.currentFrame,this._eventManager.dispatch(o.result.event)),o.method==="onRender"&&o.result.instanceId===this._id&&this._eventManager.dispatch(o.result.event),o.method==="onFreeze"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onPause"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onPlay"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStop"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onLoadError"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onRenderError"&&o.result.instanceId===this._id&&this._eventManager.dispatch(o.result.event),o.method==="onReady"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onLoop"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStart"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._setupStateMachineListeners(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStop"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._cleanupStateMachineListeners(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineTransition"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStateEntered"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStateExit"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineCustomEvent"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineError"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineBooleanInputValueChange"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineNumericInputValueChange"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineStringInputValueChange"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineInputFired"&&o.result.instanceId===this._id&&(await this._updateDotLottieInstanceState(),this._eventManager.dispatch(o.result.event)),o.method==="onStateMachineInternalMessage"&&o.result.instanceId===this._id)){await this._updateDotLottieInstanceState();let d=o.result.event;d.message.startsWith("OpenUrl: ")&&t3(d.message)}}async _create(e){var I;if(!this._canvas)return;let o;this._canvas instanceof HTMLCanvasElement?o=this._canvas.transferControlToOffscreen():o=this._canvas;let{instanceId:d}=await this._sendMessage("create",{instanceId:this._id,config:{...e,canvas:o},...Q2(this._canvas,((I=e.renderConfig)==null?void 0:I.devicePixelRatio)||d1())},[o]);if(d!==this._id)throw new Error("Instance ID mismatch");this._created=!0,await this._updateDotLottieInstanceState()}get loopCount(){return this._dotLottieInstanceState.loopCount}get isLoaded(){return this._dotLottieInstanceState.isLoaded}get isPlaying(){return this._dotLottieInstanceState.isPlaying}get isPaused(){return this._dotLottieInstanceState.isPaused}get isStopped(){return this._dotLottieInstanceState.isStopped}get currentFrame(){return this._dotLottieInstanceState.currentFrame}get isFrozen(){return this._dotLottieInstanceState.isFrozen}get segmentDuration(){return this._dotLottieInstanceState.segmentDuration}get totalFrames(){return this._dotLottieInstanceState.totalFrames}get segment(){return this._dotLottieInstanceState.segment}get speed(){return this._dotLottieInstanceState.speed}get duration(){return this._dotLottieInstanceState.duration}get isReady(){return this._dotLottieInstanceState.isReady}get mode(){return this._dotLottieInstanceState.mode}get canvas(){return this._canvas}async setCanvas(e){let o=typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement,d=typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas;if(!o&&!d)throw new Error("Worker-based DotLottie requires HTMLCanvasElement or OffscreenCanvas");if(this._canvas!==e){if(this._created&&this._canvas!==null)throw new Error("Cannot change canvas after worker instance is already created with a different canvas.");this._canvas=e,!this._created&&this._pendingConfig&&(await this._create(this._pendingConfig),this._pendingConfig=null)}}get autoplay(){return this._dotLottieInstanceState.autoplay}get backgroundColor(){return this._dotLottieInstanceState.backgroundColor}get loop(){return this._dotLottieInstanceState.loop}get useFrameInterpolation(){return this._dotLottieInstanceState.useFrameInterpolation}get renderConfig(){return this._dotLottieInstanceState.renderConfig}get manifest(){return this._dotLottieInstanceState.manifest}get activeAnimationId(){return this._dotLottieInstanceState.activeAnimationId}get marker(){return this._dotLottieInstanceState.marker}get activeThemeId(){return this._dotLottieInstanceState.activeThemeId}get layout(){return this._dotLottieInstanceState.layout}async play(){this._created&&(await this._sendMessage("play",{instanceId:this._id}),await this._updateDotLottieInstanceState(),E&&this._canvas instanceof HTMLCanvasElement&&this._dotLottieInstanceState.renderConfig.freezeOnOffscreen&&!l1(this._canvas)&&await this.freeze())}async pause(){this._created&&(await this._sendMessage("pause",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async stop(){this._created&&(await this._sendMessage("stop",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async setSpeed(e){this._created&&(await this._sendMessage("setSpeed",{instanceId:this._id,speed:e}),await this._updateDotLottieInstanceState())}async setMode(e){this._created&&(await this._sendMessage("setMode",{instanceId:this._id,mode:e}),await this._updateDotLottieInstanceState())}async setFrame(e){this._created&&(await this._sendMessage("setFrame",{frame:e,instanceId:this._id}),await this._updateDotLottieInstanceState())}async setSegment(e,o){this._created&&(await this._sendMessage("setSegment",{instanceId:this._id,segment:[e,o]}),await this._updateDotLottieInstanceState())}async setRenderConfig(e){if(!this._created)return;let{devicePixelRatio:o,freezeOnOffscreen:d,quality:I,...f}=e;await this._sendMessage("setRenderConfig",{instanceId:this._id,renderConfig:{...this._dotLottieInstanceState.renderConfig,...f,devicePixelRatio:o||d1(),freezeOnOffscreen:d??!0,...I!==void 0&&{quality:I}}}),await this._updateDotLottieInstanceState(),E&&this._canvas instanceof HTMLCanvasElement&&(this._dotLottieInstanceState.renderConfig.autoResize?G.observe(this._canvas,this):G.unobserve(this._canvas),this._dotLottieInstanceState.renderConfig.freezeOnOffscreen?(N.observe(this._canvas,this),l1(this._canvas)||await this.freeze()):(N.unobserve(this._canvas),this._dotLottieInstanceState.isFrozen&&await this.unfreeze()))}async setUseFrameInterpolation(e){this._created&&(await this._sendMessage("setUseFrameInterpolation",{instanceId:this._id,useFrameInterpolation:e}),await this._updateDotLottieInstanceState())}async setTheme(e){if(!this._created)return!1;let o=this._sendMessage("setTheme",{instanceId:this._id,themeId:e});return await this._updateDotLottieInstanceState(),o}async load(e){if(!this._created){this._pendingConfig&&(this._pendingConfig={...this._pendingConfig,...e});return}await this._sendMessage("load",{config:e,instanceId:this._id}),await this._updateDotLottieInstanceState()}async setLoop(e){this._created&&(await this._sendMessage("setLoop",{instanceId:this._id,loop:e}),await this._updateDotLottieInstanceState())}async setLoopCount(e){this._created&&(await this._sendMessage("setLoopCount",{instanceId:this._id,loopCount:e}),await this._updateDotLottieInstanceState())}async resize(){if(!this._created||!this._canvas)return;let{height:e,width:o}=Q2(this._canvas,this._dotLottieInstanceState.renderConfig.devicePixelRatio||d1());await this._sendMessage("resize",{height:e,instanceId:this._id,width:o}),await this._updateDotLottieInstanceState()}async destroy(){this._created&&(this._created=!1,await this._sendMessage("destroy",{instanceId:this._id}),this._cleanupStateMachineListeners(),Pp._workerManager.unassignAnimationFromWorker(this._id),this._eventManager.removeAllEventListeners(),E&&this._canvas instanceof HTMLCanvasElement&&(N.unobserve(this._canvas),G.unobserve(this._canvas)))}async freeze(){this._created&&(await this._sendMessage("freeze",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async unfreeze(){this._created&&(await this._sendMessage("unfreeze",{instanceId:this._id}),await this._updateDotLottieInstanceState())}async setBackgroundColor(e){this._created&&(await this._sendMessage("setBackgroundColor",{instanceId:this._id,backgroundColor:e}),await this._updateDotLottieInstanceState())}async loadAnimation(e){this._created&&(await this._sendMessage("loadAnimation",{animationId:e,instanceId:this._id}),await this._updateDotLottieInstanceState())}async setLayout(e){this._created&&(await this._sendMessage("setLayout",{instanceId:this._id,layout:e}),await this._updateDotLottieInstanceState())}async _updateDotLottieInstanceState(){if(!this._created)return;let e=await this._sendMessage("getDotLottieInstanceState",{instanceId:this._id});this._dotLottieInstanceState=e.state}markers(){return this._dotLottieInstanceState.markers}async setMarker(e){this._created&&(await this._sendMessage("setMarker",{instanceId:this._id,marker:e}),await this._updateDotLottieInstanceState())}async setThemeData(e){if(!this._created)return!1;let o=await this._sendMessage("setThemeData",{instanceId:this._id,themeData:e});return await this._updateDotLottieInstanceState(),o}async setViewport(e,o,d,I){return this._created?this._sendMessage("setViewport",{x:e,y:o,width:d,height:I,instanceId:this._id}):!1}async animationSize(){return this._created?this._sendMessage("animationSize",{instanceId:this._id}):{height:0,width:0}}async tween(e,o){return this._created?this._sendMessage("tween",{instanceId:this._id,frame:e,duration:o}):!1}async tweenToMarker(e,o){return this._created?this._sendMessage("tweenToMarker",{instanceId:this._id,marker:e,duration:o}):!1}async setTransform(e){return this._created?this._sendMessage("setTransform",{instanceId:this._id,transform:e}):!1}async getTransform(){if(this._created)return this._sendMessage("getTransform",{instanceId:this._id})}async _sendMessage(e,o,d){let I={id:`dotlottie-request-${m2()}`,method:e,params:o};return this._worker.postMessage(I,d||[]),new Promise((f,S)=>{let v=L=>{let x=L.data;x.id===I.id&&(this._worker.removeEventListener("message",v),x.error?S(new Error(`Failed to execute method ${e}: ${x.error}`)):f(x.result))};this._worker.addEventListener("message",v)})}addEventListener(e,o){this._eventManager.addEventListener(e,o)}removeEventListener(e,o){this._eventManager.removeEventListener(e,o)}static setWasmUrl(e){Pp._wasmUrl=e}static async registerFont(e,o){try{let d=m2();return Pp._workerManager.broadcastMessage({id:d,method:"registerFont",params:{fontName:e,fontSource:o}}),!0}catch(d){return console.error(`Error broadcasting registerFont for "${e}":`,d),!1}}async stateMachineLoad(e){if(!this._created)return!1;let o=await this._sendMessage("stateMachineLoad",{instanceId:this._id,stateMachineId:e});return await this._updateDotLottieInstanceState(),o}async stateMachineLoadData(e){if(!this._created)return!1;let o=await this._sendMessage("stateMachineLoadData",{instanceId:this._id,stateMachineData:e});return await this._updateDotLottieInstanceState(),o}async stateMachineStart(){if(!this._created)return!1;let e=await this._sendMessage("stateMachineStart",{instanceId:this._id});return e&&(this._setupStateMachineListeners(),await this._updateDotLottieInstanceState()),e}async stateMachineStop(){return this._created?(this._cleanupStateMachineListeners(),this._sendMessage("stateMachineStop",{instanceId:this._id})):!1}async stateMachineSetNumericInput(e,o){return this._created?this._sendMessage("stateMachineSetNumericInput",{instanceId:this._id,name:e,value:o}):!1}async stateMachineSetBooleanInput(e,o){return this._created?this._sendMessage("stateMachineSetBooleanInput",{instanceId:this._id,name:e,value:o}):!1}async stateMachineSetConfig(e){this._created&&this._sendMessage("stateMachineSetConfig",{instanceId:this._id,config:e})}async stateMachineSetStringInput(e,o){return this._created?this._sendMessage("stateMachineSetStringInput",{instanceId:this._id,name:e,value:o}):!1}async stateMachineGetNumericInput(e){if(this._created)return this._sendMessage("stateMachineGetNumericInput",{instanceId:this._id,name:e})}async stateMachineGetBooleanInput(e){if(this._created)return this._sendMessage("stateMachineGetBooleanInput",{instanceId:this._id,name:e})}async stateMachineGetStringInput(e){if(this._created)return this._sendMessage("stateMachineGetStringInput",{instanceId:this._id,name:e})}async stateMachineGetInputs(){if(this._created)return this._sendMessage("stateMachineGetInputs",{instanceId:this._id})}async stateMachineFireEvent(e){this._created&&this._sendMessage("stateMachineFireEvent",{instanceId:this._id,name:e})}async stateMachineGetStatus(){return this._created?this._sendMessage("stateMachineGetStatus",{instanceId:this._id}):""}async stateMachineGetCurrentState(){return this._created?this._sendMessage("stateMachineGetCurrentState",{instanceId:this._id}):""}async stateMachineGetActiveId(){return this._created?this._sendMessage("stateMachineGetActiveId",{instanceId:this._id}):""}async stateMachineOverrideState(e,o=!1){return this._created?this._sendMessage("stateMachineOverrideState",{instanceId:this._id,state:e,immediate:o}):!1}async stateMachineGet(e){return this._created?this._sendMessage("stateMachineGet",{instanceId:this._id,stateMachineId:e}):""}async stateMachineGetListeners(){return this._created?this._sendMessage("stateMachineGetListeners",{instanceId:this._id}):[]}async stateMachinePostClickEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostClickEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerUpEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerUpEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerDownEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerDownEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerMoveEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerMoveEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerEnterEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerEnterEvent",{instanceId:this._id,x:e,y:o})}async stateMachinePostPointerExitEvent(e,o){if(this._created)return this._sendMessage("stateMachinePostPointerExitEvent",{instanceId:this._id,x:e,y:o})}_onClick(e){let o=z(e);o&&this._sendMessage("stateMachinePostClickEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerUp(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerUpEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerDown(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerDownEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerMove(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerMoveEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerEnter(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerEnterEvent",{instanceId:this._id,x:o.x,y:o.y})}_onPointerLeave(e){let o=z(e);o&&this._sendMessage("stateMachinePostPointerExitEvent",{instanceId:this._id,x:o.x,y:o.y})}async _setupStateMachineListeners(){if(E&&this._canvas instanceof HTMLCanvasElement&&this.isLoaded){let e=await this._sendMessage("stateMachineGetListeners",{instanceId:this._id});if(e.length===0)return;this._cleanupStateMachineListeners(),e.includes("Click")&&(this._boundOnClick=this._onClick.bind(this),this._canvas.addEventListener("click",this._boundOnClick)),e.includes("PointerUp")&&(this._boundOnPointerUp=this._onPointerUp.bind(this),this._canvas.addEventListener("pointerup",this._boundOnPointerUp)),e.includes("PointerDown")&&(this._boundOnPointerDown=this._onPointerDown.bind(this),this._canvas.addEventListener("pointerdown",this._boundOnPointerDown)),e.includes("PointerMove")&&(this._boundOnPointerMove=this._onPointerMove.bind(this),this._canvas.addEventListener("pointermove",this._boundOnPointerMove)),e.includes("PointerEnter")&&(this._boundOnPointerEnter=this._onPointerEnter.bind(this),this._canvas.addEventListener("pointerenter",this._boundOnPointerEnter)),e.includes("PointerExit")&&(this._boundOnPointerLeave=this._onPointerLeave.bind(this),this._canvas.addEventListener("pointerleave",this._boundOnPointerLeave))}}_cleanupStateMachineListeners(){E&&this._canvas instanceof HTMLCanvasElement&&(this._boundOnClick&&(this._canvas.removeEventListener("click",this._boundOnClick),this._boundOnClick=null),this._boundOnPointerUp&&(this._canvas.removeEventListener("pointerup",this._boundOnPointerUp),this._boundOnPointerUp=null),this._boundOnPointerDown&&(this._canvas.removeEventListener("pointerdown",this._boundOnPointerDown),this._boundOnPointerDown=null),this._boundOnPointerMove&&(this._canvas.removeEventListener("pointermove",this._boundOnPointerMove),this._boundOnPointerMove=null),this._boundOnPointerEnter&&(this._canvas.removeEventListener("pointerenter",this._boundOnPointerEnter),this._boundOnPointerEnter=null),this._boundOnPointerLeave&&(this._canvas.removeEventListener("pointerleave",this._boundOnPointerLeave),this._boundOnPointerLeave=null))}};p(g2,"_workerManager",new s0),p(g2,"_wasmUrl","");var K1=({animationId:n,autoplay:e,backgroundColor:o,className:d,createDotLottie:I,data:f,dotLottieRefCallback:S,layout:v,loop:L,mode:x,playOnHover:F,renderConfig:Y,segment:j,speed:W,src:re,stateMachineConfig:ee,stateMachineId:he,style:ue,themeData:Ee,themeId:_e,useFrameInterpolation:De,workerId:Fe,...Ve})=>{let Ge=reactExports.useRef(null),He=reactExports.useRef(null),At=reactExports.useRef(S),Bt={speed:W,mode:x,loop:L,useFrameInterpolation:De,segment:j,backgroundColor:o,autoplay:e,themeId:_e,workerId:Fe,src:re,data:f,layout:v,renderConfig:Y,animationId:n,stateMachineConfig:ee,stateMachineId:he},Tt=reactExports.useRef(Bt);At.current=S,Tt.current=Bt;let rt=reactExports.useCallback(ye=>{var lt,Yt;He.current=ye,ye?Ge.current=I({...Tt.current,canvas:ye}):((lt=Ge.current)==null||lt.destroy(),Ge.current=null),(Yt=At.current)==null||Yt.call(At,Ge.current)},[]);return reactExports.useEffect(()=>{var lt,Yt;let ye=ct=>{var ht,vt;F&&(ct.type==="mouseenter"&&((ht=Ge.current)==null||ht.play()),ct.type==="mouseleave"&&((vt=Ge.current)==null||vt.pause()))};return(lt=He.current)==null||lt.addEventListener("mouseenter",ye),(Yt=He.current)==null||Yt.addEventListener("mouseleave",ye),()=>{var ct,ht;(ct=He.current)==null||ct.removeEventListener("mouseenter",ye),(ht=He.current)==null||ht.removeEventListener("mouseleave",ye)}},[F]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setSpeed(W??1)},[W]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setMode(x??"forward")},[x]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setLoop(L??!1)},[L]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setUseFrameInterpolation(De??!0)},[De]),reactExports.useEffect(()=>{var ye;typeof(j==null?void 0:j[0])=="number"&&typeof j[1]=="number"&&((ye=Ge.current)==null||ye.setSegment(j[0],j[1]))},[j]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setBackgroundColor(o??"")},[o]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setRenderConfig(Y??{})},[JSON.stringify(Y)]),reactExports.useEffect(()=>{var ye;typeof f!="string"&&typeof f!="object"||((ye=Ge.current)==null||ye.load({data:f,...Tt.current}))},[f]),reactExports.useEffect(()=>{var ye;typeof re=="string"&&((ye=Ge.current)==null||ye.load({src:re,...Tt.current}))},[re]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setMarker(Ve.marker??"")},[Ve.marker]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.loadAnimation(n??"")},[n]),reactExports.useEffect(()=>{var ye;typeof _e=="string"&&((ye=Ge.current)==null||ye.setTheme(_e))},[_e]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setThemeData(Ee??"")},[Ee]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.setLayout(v??{})},[v==null?void 0:v.fit,(v==null?void 0:v.align)&&v.align[0],(v==null?void 0:v.align)&&v.align[1]]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)!=null&&ye.isLoaded&&(typeof he=="string"&&he?Ge.current.stateMachineLoad(he)&&Ge.current.stateMachineStart():Ge.current.stateMachineStop())},[he]),reactExports.useEffect(()=>{var ye;(ye=Ge.current)==null||ye.stateMachineSetConfig(ee??null)},[ee]),jsxRuntimeExports.jsx("div",{className:d,...!d&&{style:{width:"100%",height:"100%",lineHeight:0,...ue}},children:jsxRuntimeExports.jsx("canvas",{ref:rt,style:{width:"100%",height:"100%"},...Ve})})},h0=n=>new V1(n),E0=n=>jsxRuntimeExports.jsx(K1,{...n,createDotLottie:h0});function setRef$1(n,e){if(typeof n=="function")return n(e);n!=null&&(n.current=e)}function composeRefs(...n){return e=>{let o=!1;const d=n.map(I=>{const f=setRef$1(I,e);return!o&&typeof f=="function"&&(o=!0),f});if(o)return()=>{for(let I=0;I{let{children:I,...f}=o,S=null,v=!1;const L=[];isLazyComponent(I)&&typeof use=="function"&&(I=use(I._payload)),reactExports.Children.forEach(I,j=>{var W;if(isSlottable(j)){v=!0;const re=j;let ee="child"in re.props?re.props.child:re.props.children;isLazyComponent(ee)&&typeof use=="function"&&(ee=use(ee._payload)),S=getSlottableElementFromSlottable(re,ee),L.push((W=S==null?void 0:S.props)==null?void 0:W.children)}else L.push(j)}),S?S=reactExports.cloneElement(S,void 0,L):!v&&reactExports.Children.count(I)===1&&reactExports.isValidElement(I)&&(S=I);const x=S?getElementRef$1(S):void 0,F=useComposedRefs(d,x);if(!S){if(I||I===0)throw new Error(v?createSlottableError(n):createSlotError(n));return I}const Y=mergeProps(f,S.props??{});return S.type!==reactExports.Fragment&&(Y.ref=d?F:x),reactExports.cloneElement(S,Y)});return e.displayName=`${n}.Slot`,e}var Slot$3=createSlot("Slot"),SLOTTABLE_IDENTIFIER=Symbol.for("radix.slottable"),getSlottableElementFromSlottable=(n,e)=>{if("child"in n.props){const o=n.props.child;return reactExports.isValidElement(o)?reactExports.cloneElement(o,void 0,n.props.children(o.props.children)):null}return reactExports.isValidElement(e)?e:null};function mergeProps(n,e){const o={...e};for(const d in e){const I=n[d],f=e[d];/^on[A-Z]/.test(d)?I&&f?o[d]=(...v)=>{const L=f(...v);return I(...v),L}:I&&(o[d]=I):d==="style"?o[d]={...I,...f}:d==="className"&&(o[d]=[I,f].filter(Boolean).join(" "))}return{...n,...o}}function getElementRef$1(n){var d,I;let e=(d=Object.getOwnPropertyDescriptor(n.props,"ref"))==null?void 0:d.get,o=e&&"isReactWarning"in e&&e.isReactWarning;return o?n.ref:(e=(I=Object.getOwnPropertyDescriptor(n,"ref"))==null?void 0:I.get,o=e&&"isReactWarning"in e&&e.isReactWarning,o?n.props.ref:n.props.ref||n.ref)}function isSlottable(n){return reactExports.isValidElement(n)&&typeof n.type=="function"&&"__radixId"in n.type&&n.type.__radixId===SLOTTABLE_IDENTIFIER}var REACT_LAZY_TYPE=Symbol.for("react.lazy");function isLazyComponent(n){return n!=null&&typeof n=="object"&&"$$typeof"in n&&n.$$typeof===REACT_LAZY_TYPE&&"_payload"in n&&isPromiseLike(n._payload)}function isPromiseLike(n){return typeof n=="object"&&n!==null&&"then"in n}var createSlotError=n=>`${n} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,createSlottableError=n=>`${n} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,use=React2[" use ".trim().toString()];const falsyToString=n=>typeof n=="boolean"?`${n}`:n===0?"0":n,cx=clsx,cva=(n,e)=>o=>{var d;if((e==null?void 0:e.variants)==null)return cx(n,o==null?void 0:o.class,o==null?void 0:o.className);const{variants:I,defaultVariants:f}=e,S=Object.keys(I).map(x=>{const F=o==null?void 0:o[x],Y=f==null?void 0:f[x];if(F===null)return null;const j=falsyToString(F)||falsyToString(Y);return I[x][j]}),v=o&&Object.entries(o).reduce((x,F)=>{let[Y,j]=F;return j===void 0||(x[Y]=j),x},{}),L=e==null||(d=e.compoundVariants)===null||d===void 0?void 0:d.reduce((x,F)=>{let{class:Y,className:j,...W}=F;return Object.entries(W).every(re=>{let[ee,he]=re;return Array.isArray(he)?he.includes({...f,...v}[ee]):{...f,...v}[ee]===he})?[...x,Y,j]:x},[]);return cx(n,S,L,o==null?void 0:o.class,o==null?void 0:o.className)};/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const mergeClasses=(...n)=>n.filter((e,o,d)=>!!e&&e.trim()!==""&&d.indexOf(e)===o).join(" ").trim();/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const toKebabCase=n=>n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const toCamelCase=n=>n.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,o,d)=>d?d.toUpperCase():o.toLowerCase());/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const toPascalCase=n=>{const e=toCamelCase(n);return e.charAt(0).toUpperCase()+e.slice(1)};/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */var defaultAttributes={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const hasA11yProp=n=>{for(const e in n)if(e.startsWith("aria-")||e==="role"||e==="title")return!0;return!1},LucideContext=reactExports.createContext({}),useLucideContext=()=>reactExports.useContext(LucideContext),Icon=reactExports.forwardRef(({color:n,size:e,strokeWidth:o,absoluteStrokeWidth:d,className:I="",children:f,iconNode:S,...v},L)=>{const{size:x=24,strokeWidth:F=2,absoluteStrokeWidth:Y=!1,color:j="currentColor",className:W=""}=useLucideContext()??{},re=d??Y?Number(o??F)*24/Number(e??x):o??F;return reactExports.createElement("svg",{ref:L,...defaultAttributes,width:e??x??defaultAttributes.width,height:e??x??defaultAttributes.height,stroke:n??j,strokeWidth:re,className:mergeClasses("lucide",W,I),...!f&&!hasA11yProp(v)&&{"aria-hidden":"true"},...v},[...S.map(([ee,he])=>reactExports.createElement(ee,he)),...Array.isArray(f)?f:[f]])});/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const createLucideIcon=(n,e)=>{const o=reactExports.forwardRef(({className:d,...I},f)=>reactExports.createElement(Icon,{ref:f,iconNode:e,className:mergeClasses(`lucide-${toKebabCase(toPascalCase(n))}`,`lucide-${n}`,d),...I}));return o.displayName=toPascalCase(n),o};/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const __iconNode$5=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Check=createLucideIcon("check",__iconNode$5);/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const __iconNode$4=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],ChevronDown=createLucideIcon("chevron-down",__iconNode$4);/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const __iconNode$3=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M15 9.34V5a3 3 0 0 0-5.68-1.33",key:"1gzdoj"}],["path",{d:"M16.95 16.95A7 7 0 0 1 5 12v-2",key:"cqa7eg"}],["path",{d:"M18.89 13.23A7 7 0 0 0 19 12v-2",key:"16hl24"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v3a3 3 0 0 0 5.12 2.12",key:"r2i35w"}]],MicOff=createLucideIcon("mic-off",__iconNode$3);/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const __iconNode$2=[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]],Mic=createLucideIcon("mic",__iconNode$2);/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const __iconNode$1=[["path",{d:"M10.66 6H14a2 2 0 0 1 2 2v2.5l5.248-3.062A.5.5 0 0 1 22 7.87v8.196",key:"w8jjjt"}],["path",{d:"M16 16a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h2",key:"1xawa7"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],VideoOff=createLucideIcon("video-off",__iconNode$1);/** - * @license lucide-react v1.23.0 - ISC - * - * This source code is licensed under the ISC license. - * See the LICENSE file in the root directory of this source tree. - */const __iconNode=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],Video=createLucideIcon("video",__iconNode);var ambient_default="data:application/zip;base64,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",analyzing_default="data:application/zip;base64,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",disconnected_default="data:application/zip;base64,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",joining_default="data:application/zip;base64,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",listening_default="data:application/zip;base64,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",not_joined_default="data:application/zip;base64,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",talking_default="data:application/zip;base64,UEsDBBQAAAAIALCRZFrQRIkngQAAALUAAAANAAAAbWFuaWZlc3QuanNvbo2NQQ7CIBBF7zJrqQUrhK56AU9gXNAyVQwFA6OJaXp3Z+W6u/+T9/JW+GCpISfoQcIB7piwOMqF/+AzxUwU8Phf4lkH2bSNYta96bEPTGFxxJEK/XWF4Nkxytu502dx0gZF58dJOFRKmNlOo2xlZ7Vh9RXd95I9spFyWVyE7bb9AFBLAwQUAAAACACwkWRasFn2lrMFAACxKgAANAAAAGFuaW1hdGlvbnMvNzJkOWY0NjUtMzY3ZS00ZGJjLWFlMjItN2Y5Y2IxMDE0OTY3Lmpzb27tWtlS6zgQ/ZUpPTse7Uue5gfmCygeMkW4ZMgARTLLrRT/Pqe1OHYWgm1Sl0sgxHGklno7Urfa2bCbmxs25RW7Y1Ol8flv/vxrvp6x6YZ9Y1P22/JxvV7MbxfL+erX9ePj8n6xnvy5+oXXxtVy8gdIa85eKracfZ8/r9j0asPW3zFRxVbPbCrwsWbTiZAVe3zCd+0qtsAN2CwfML9SVjOIMFv9Plvds+ntbLmaV2z2GEnuMeGGRWFwoQYwMLyK/9fgWvrBh7o21HAlOK/oza/Biwj+QyME9lVzQQ+EvBIVXjQP2BUy5yxI0lXLTIjJMB0IoQx/qRKfJMgwLsI6kDTXA2zk63yk1Biarq9y0jIqckwbIW3hU+yGd5eXVwrDm+sotYS2L3QLDLSdKhz4ukgE2LR6YIXEoGmBeC9oXDwAvYJkP4A38wre1DvgrUidrdXSp0FisUo0PpmBNClGjRChRiiw4+Noo9qQYr2nUM0UStXO4A7U2fz4gvnwRdWKPAmhB3CAmzIHo2o5VkonByq6FSMIKDpSDCEEdGmsVQzUWCyhd3cx0kAFdx8bNWkM3RfVkP9p9jx/IA4DAC4/PMAlNtixTqNIdU54h9Fr0PmhWrbg7Udj29XDoG3PAW3AeAy0xceHthuLa9vei84BbWvGrz4/FtiC6/HxQ0g1DNwagecc8NYH4I22FrwxhsAdONTK4L7DwPXz34BygrkWrifMc3o1COGU6Z60Ouylra5sNlMMUdF6PlkqpXzFghPs71LralLau26W4TTDiQuVRdKauRV2k8SvmbgwNLX0qZkjb9/h59LUPfgJWYLLniqZY1fvArI9MwnN+2BodTd7mtNElH8TngDSgif5ZjwVFNlzoWhLn0b01S7pwb49Q8AFdCgN8yUaKKs/xOqAaBIrGu9rTF6mvMUM8y5VENVECF8bmgFn2g1NjpiDvg6L2gtDRxq8eE32TPfllfohSB0sPrF/xONPPqzBsntGwLl6p2XPtJCsWBBKH7JaVmxNthrvrzd7C1tfhiB2hwLBuF33gqD5KBBEwPtxCIT08k3ow17Fg+cq0KlecRFshGGC45FO6j4yqgGseSfAbo39UdGKlHE4WvtWos6GVvsj98s9tCJcF7QeyB8oAsbwSnedEEsFo9SDuxxnCY5WK6GcLOAVuKNyIgKW8hGpjiDsvOLpL5FhDJFxIwLXdKtVkMJYG3s1kgpcnfOOtp3Y7aTRHlWQ2B9iBQzDDQI09RoZNA+x0yiqVxnhtXRc02BlvJcK1FkEnZZZnNh4K4OzxE8SkcTUcbUZmsUaCC5dkthY0EKlvEplUNY5kl3pgHVqIvssP03tVZQ80DXW0KyLaxrNIMqnym5y09/8EEPjVEhGT2JYEfJfyx+nqJI7TlElt5ykis45RZW8dIoq+egUVfIVOcQHZ3Tpaqh5aSJ0nfJdrMECh8VzirRJnhMRnSWp/PLcz+q5pkb+tX+N3b8EIP3ZsxCkFv2zkP0yQN8nFaPKAG84JHcLXdsjuYWvJyJ+NAdkKSjhzG39z/+CzuNbXttyA024w2pb6OmnTpfH9szfEb1UGHa0PFJWGnfah10KbHTv5LVv1f+TnvZ7nLV02qZjBPMB219oH7a2ux/ta9oayUMTbtKGKBGorI47qXdBayt3CgVxoos4d6GU0WA39MZu37L+5ZYJIq5cBKHDRhjhRU1Y/4YrrWJpilCNHCUGfXzl6OJOcArclHEA1cBlGRzxGUX71PgkV/XG535I5mdGKirIlK0ZXVsUtAftt43KrcfIOEX0W5I8vKeiw5flwExFmJw4HDlydcbS47Z2lmNL0tE/pShjkUw0v6rJoqTk4GPvLiVydaLXdpfYK4RfUHxrP7ju/SiG+6/VdHmrqVkv2zWUo21+XVYEbj8bl9T8D+TBTxHw+9GK3WI2PNff++HHbLWar2NUe/kfUEsBAhQAFAAAAAgAsJFkWtBEiSeBAAAAtQAAAA0AAAAAAAAAAAAAAAAAAAAAAG1hbmlmZXN0Lmpzb25QSwECFAAUAAAACACwkWRasFn2lrMFAACxKgAANAAAAAAAAAAAAAAAAACsAAAAYW5pbWF0aW9ucy83MmQ5ZjQ2NS0zNjdlLTRkYmMtYWUyMi03ZjljYjEwMTQ5NjcuanNvblBLBQYAAAAAAgACAJ0AAACxBgAAAAA=",bundledAnimations={"not-joined":not_joined_default,joining:joining_default,ambient:ambient_default,listening:listening_default,analyzing:analyzing_default,talking:talking_default,disconnected:disconnected_default},stateToText={"not-joined":"Not Joined",joining:"Joining",ambient:"Ambient",listening:"Listening",analyzing:"Analyzing",talking:"Talking",disconnected:"Disconnected"},sizeClasses$1={sm:{container:"w-32 h-32",text:"text-sm"},md:{container:"w-48 h-48",text:"text-base"},lg:{container:"w-64 h-64",text:"text-lg"}},AgentVisualizer=reactExports.forwardRef(({state:n,size:e="md",lottiePaths:o,className:d,...I},f)=>{const S=stateToText[n],v=sizeClasses$1[e],L=(o==null?void 0:o[n])??bundledAnimations[n];return jsxRuntimeExports.jsxs("div",{ref:f,className:cn("flex flex-col items-center justify-center gap-4",d),...I,children:[jsxRuntimeExports.jsx("div",{className:cn("flex items-center justify-center",v.container),children:jsxRuntimeExports.jsx(E0,{src:L,loop:!0,autoplay:!0,className:"h-full w-full"})}),S&&jsxRuntimeExports.jsx("p",{className:cn("text-foreground text-center font-medium",v.text),children:S})]})});AgentVisualizer.displayName="AgentVisualizer";var buttonVariants=cva("relative inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground",destructive:"bg-destructive text-font",secondary:"bg-secondary text-secondary-foreground",ghost:"hover:bg-accent hover:text-accent-foreground"},size:{default:"h-12 px-4 py-4 rounded-md",icon:"h-10 w-10 rounded-md"}},defaultVariants:{variant:"default",size:"default"}});function Button({className:n,variant:e,size:o,asChild:d=!1,label:I,labelClassName:f,...S}){const v=d?Slot$3:"button",L=jsxRuntimeExports.jsx(v,{"data-slot":"button",className:cn(buttonVariants({variant:e,size:o,className:n})),...S});return I?jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center",children:[L,jsxRuntimeExports.jsx("p",{className:cn("text-muted-foreground mt-2 text-xs",f),children:I})]}):L}var ConversationContext=reactExports.createContext(null),useConversation=()=>{const n=reactExports.useContext(ConversationContext);if(!n)throw new Error("useConversation must be used within Conversation");return n},useConversationNames=()=>{const n=reactExports.useContext(ConversationContext);return n?{agentName:n.agentName,userName:n.userName}:{agentName:"Agent",userName:"User"}},Conversation=reactExports.forwardRef(({className:n,height:e="h-[400px]",agentName:o="Agent",userName:d="User",...I},f)=>{const S=reactExports.useRef(null),[v,L]=reactExports.useState(!1),x=reactExports.useCallback(j=>{S.current=j,typeof f=="function"?f(j):f&&(f.current=j)},[f]),F=reactExports.useCallback(()=>{S.current&&(S.current.scrollTop=S.current.scrollHeight)},[]);reactExports.useEffect(()=>{const j=S.current,W=()=>{if(j){const{scrollTop:he,scrollHeight:ue,clientHeight:Ee}=j,_e=ue-he-Ee<100;L(!_e)}};let re=null;const ee=new MutationObserver(()=>{re&&cancelAnimationFrame(re),re=requestAnimationFrame(F)});return j&&(ee.observe(j,{childList:!0,subtree:!0}),j.addEventListener("scroll",W)),()=>{ee.disconnect(),re&&cancelAnimationFrame(re),j&&j.removeEventListener("scroll",W)}},[F]);const Y=reactExports.useMemo(()=>({scrollRef:S,agentName:o,userName:d}),[o,d]);return jsxRuntimeExports.jsx(ConversationContext.Provider,{value:Y,children:jsxRuntimeExports.jsxs("div",{ref:x,className:cn("relative flex flex-col overflow-scroll",e,n),...I,children:[jsxRuntimeExports.jsx("div",{className:"flex-1 min-h-0",children:I.children}),v&&jsxRuntimeExports.jsx(ConversationScrollButton,{onClick:F})]})})});Conversation.displayName="Conversation";var ConversationContent=reactExports.forwardRef(({className:n,padding:e="p-4",...o},d)=>jsxRuntimeExports.jsx("div",{ref:d,className:cn("flex flex-col gap-1",e,n),...o}));ConversationContent.displayName="ConversationContent";var ConversationEmptyState=reactExports.forwardRef(({className:n,icon:e,title:o="No messages yet",description:d="Start a conversation to see messages here",...I},f)=>jsxRuntimeExports.jsxs("div",{ref:f,className:cn("flex h-full flex-col items-center justify-center gap-3 p-8 text-center",n),...I,children:[e&&jsxRuntimeExports.jsx("div",{className:"flex justify-center",children:e}),jsxRuntimeExports.jsxs("div",{className:"space-y-1",children:[jsxRuntimeExports.jsx("h3",{className:"font-semibold",children:o}),jsxRuntimeExports.jsx("p",{className:"text-muted-foreground text-sm",children:d})]})]}));ConversationEmptyState.displayName="ConversationEmptyState";var ConversationScrollButton=reactExports.forwardRef(({className:n,...e},o)=>{const{scrollRef:d}=useConversation();return jsxRuntimeExports.jsx(Button,{ref:o,className:cn("absolute bottom-4 left-1/2 -translate-x-1/2 shadow-md",n),onClick:()=>{d.current&&(d.current.scrollTop=d.current.scrollHeight)},...e,children:jsxRuntimeExports.jsx(ChevronDown,{className:"h-4 w-4"})})});ConversationScrollButton.displayName="ConversationScrollButton";var Message=reactExports.forwardRef(({className:n,from:e,name:o,children:d,...I},f)=>{const{agentName:S,userName:v}=useConversationNames(),L=e==="user",x=o??(L?v:S);return jsxRuntimeExports.jsx("div",{ref:f,className:cn("flex w-full",n),style:{justifyContent:L?"flex-end":"flex-start"},...I,children:jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-0.5",style:{alignItems:L?"flex-end":"flex-start"},children:[x&&jsxRuntimeExports.jsx("div",{className:"text-sm font-medium text-muted-foreground",children:x}),d]})})});Message.displayName="Message";var MessageContent=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx("div",{ref:o,className:cn("flex max-w-xs flex-col gap-2 rounded-2xl px-1 py-1 bg-secondary text-foreground",n),...e}));MessageContent.displayName="MessageContent";function composeEventHandlers(n,e,{checkForDefaultPrevented:o=!0}={}){return function(I){if(n==null||n(I),o===!1||!I||!I.defaultPrevented)return e==null?void 0:e(I)}}function createContextScope(n,e=[]){let o=[];function d(f,S){const v=reactExports.createContext(S);v.displayName=f+"Context";const L=o.length;o=[...o,S];const x=Y=>{var ue;const{scope:j,children:W,...re}=Y,ee=((ue=j==null?void 0:j[n])==null?void 0:ue[L])||v,he=reactExports.useMemo(()=>re,Object.values(re));return jsxRuntimeExports.jsx(ee.Provider,{value:he,children:W})};x.displayName=f+"Provider";function F(Y,j,W={}){var ue;const{optional:re=!1}=W,ee=((ue=j==null?void 0:j[n])==null?void 0:ue[L])||v,he=reactExports.useContext(ee);if(he)return he;if(S!==void 0)return S;if(!re)throw new Error(`\`${Y}\` must be used within \`${f}\``)}return[x,F]}const I=()=>{const f=o.map(S=>reactExports.createContext(S));return function(v){const L=(v==null?void 0:v[n])||f;return reactExports.useMemo(()=>({[`__scope${n}`]:{...v,[n]:L}}),[v,L])}};return I.scopeName=n,[d,composeContextScopes(I,...e)]}function composeContextScopes(...n){const e=n[0];if(n.length===1)return e;const o=()=>{const d=n.map(I=>({useScope:I(),scopeName:I.scopeName}));return function(f){const S=d.reduce((v,{useScope:L,scopeName:x})=>{const Y=L(f)[`__scope${x}`];return{...v,...Y}},{});return reactExports.useMemo(()=>({[`__scope${e.scopeName}`]:S}),[S])}};return o.scopeName=e.scopeName,o}var useLayoutEffect2=globalThis!=null&&globalThis.document?reactExports.useLayoutEffect:()=>{},useInsertionEffect=React2[" useInsertionEffect ".trim().toString()]||useLayoutEffect2;function useControllableState({prop:n,defaultProp:e,onChange:o=()=>{},caller:d}){const[I,f,S]=useUncontrolledState({defaultProp:e,onChange:o}),v=n!==void 0,L=v?n:I;{const F=reactExports.useRef(n!==void 0);reactExports.useEffect(()=>{const Y=F.current;Y!==v&&console.warn(`${d} is changing from ${Y?"controlled":"uncontrolled"} to ${v?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),F.current=v},[v,d])}const x=reactExports.useCallback(F=>{var Y;if(v){const j=isFunction$2(F)?F(n):F;j!==n&&((Y=S.current)==null||Y.call(S,j))}else f(F)},[v,n,f,S]);return[L,x]}function useUncontrolledState({defaultProp:n,onChange:e}){const[o,d]=reactExports.useState(n),I=reactExports.useRef(o),f=reactExports.useRef(e);return useInsertionEffect(()=>{f.current=e},[e]),reactExports.useEffect(()=>{var S;I.current!==o&&((S=f.current)==null||S.call(f,o),I.current=o)},[o,I]),[o,d,f]}function isFunction$2(n){return typeof n=="function"}var NODES=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Primitive=NODES.reduce((n,e)=>{const o=createSlot(`Primitive.${e}`),d=reactExports.forwardRef((I,f)=>{const{asChild:S,...v}=I,L=S?o:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),jsxRuntimeExports.jsx(L,{...v,ref:f})});return d.displayName=`Primitive.${e}`,{...n,[e]:d}},{});function dispatchDiscreteCustomEvent(n,e){n&&reactDomExports.flushSync(()=>n.dispatchEvent(e))}function createCollection(n){const e=n+"CollectionProvider",[o,d]=createContextScope(e),[I,f]=o(e,{collectionRef:{current:null},itemMap:new Map}),S=ee=>{const{scope:he,children:ue}=ee,Ee=reactExports.useRef(null),_e=reactExports.useRef(new Map).current;return jsxRuntimeExports.jsx(I,{scope:he,itemMap:_e,collectionRef:Ee,children:ue})};S.displayName=e;const v=n+"CollectionSlot",L=createSlot(v),x=reactExports.forwardRef((ee,he)=>{const{scope:ue,children:Ee}=ee,_e=f(v,ue),De=useComposedRefs(he,_e.collectionRef);return jsxRuntimeExports.jsx(L,{ref:De,children:Ee})});x.displayName=v;const F=n+"CollectionItemSlot",Y="data-radix-collection-item",j=createSlot(F),W=reactExports.forwardRef((ee,he)=>{const{scope:ue,children:Ee,..._e}=ee,De=reactExports.useRef(null),Fe=useComposedRefs(he,De),Ve=f(F,ue);return reactExports.useEffect(()=>(Ve.itemMap.set(De,{ref:De,..._e}),()=>void Ve.itemMap.delete(De))),jsxRuntimeExports.jsx(j,{[Y]:"",ref:Fe,children:Ee})});W.displayName=F;function re(ee){const he=f(n+"CollectionConsumer",ee);return reactExports.useCallback(()=>{const Ee=he.collectionRef.current;if(!Ee)return[];const _e=Array.from(Ee.querySelectorAll(`[${Y}]`));return Array.from(he.itemMap.values()).sort((Ve,Ge)=>_e.indexOf(Ve.ref.current)-_e.indexOf(Ge.ref.current))},[he.collectionRef,he.itemMap])}return[{Provider:S,Slot:x,ItemSlot:W},re,d]}var DirectionContext=reactExports.createContext(void 0);function useDirection(n){const e=reactExports.useContext(DirectionContext);return n||e||"ltr"}function useCallbackRef$1(n){const e=reactExports.useRef(n);return reactExports.useEffect(()=>{e.current=n}),reactExports.useMemo(()=>(...o)=>{var d;return(d=e.current)==null?void 0:d.call(e,...o)},[])}var DISMISSABLE_LAYER_NAME="DismissableLayer",CONTEXT_UPDATE="dismissableLayer.update",POINTER_DOWN_OUTSIDE="dismissableLayer.pointerDownOutside",FOCUS_OUTSIDE="dismissableLayer.focusOutside",originalBodyPointerEvents,DismissableLayerContext=reactExports.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),DismissableLayer=reactExports.forwardRef((n,e)=>{const{disableOutsidePointerEvents:o=!1,deferPointerDownOutside:d=!1,onEscapeKeyDown:I,onPointerDownOutside:f,onFocusOutside:S,onInteractOutside:v,onDismiss:L,...x}=n,F=reactExports.useContext(DismissableLayerContext),[Y,j]=reactExports.useState(null),W=(Y==null?void 0:Y.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,re]=reactExports.useState({}),ee=useComposedRefs(e,j),he=Array.from(F.layers),[ue]=[...F.layersWithOutsidePointerEventsDisabled].slice(-1),Ee=ue?he.indexOf(ue):-1,_e=Y?he.indexOf(Y):-1,De=F.layersWithOutsidePointerEventsDisabled.size>0,Fe=_e>=Ee,Ve=reactExports.useRef(!1),Ge=usePointerDownOutside(Tt=>{f==null||f(Tt),v==null||v(Tt),Tt.defaultPrevented||L==null||L()},{ownerDocument:W,deferPointerDownOutside:d,isDeferredPointerDownOutsideRef:Ve,dismissableSurfaces:F.dismissableSurfaces,shouldHandlePointerDownOutside:reactExports.useCallback(Tt=>{if(!(Tt instanceof Node))return!1;const rt=[...F.branches].some(ye=>ye.contains(Tt));return Fe&&!rt},[F.branches,Fe])}),He=useFocusOutside(Tt=>{if(d&&Ve.current)return;const rt=Tt.target;[...F.branches].some(lt=>lt.contains(rt))||(S==null||S(Tt),v==null||v(Tt),Tt.defaultPrevented||L==null||L())},W),At=Y?_e===he.length-1:!1,Bt=useCallbackRef$1(Tt=>{Tt.key==="Escape"&&(I==null||I(Tt),!Tt.defaultPrevented&&L&&(Tt.preventDefault(),L()))});return reactExports.useEffect(()=>{if(At)return W.addEventListener("keydown",Bt,{capture:!0}),()=>W.removeEventListener("keydown",Bt,{capture:!0})},[W,At,Bt]),reactExports.useEffect(()=>{if(Y)return o&&(F.layersWithOutsidePointerEventsDisabled.size===0&&(originalBodyPointerEvents=W.body.style.pointerEvents,W.body.style.pointerEvents="none"),F.layersWithOutsidePointerEventsDisabled.add(Y)),F.layers.add(Y),dispatchUpdate(),()=>{o&&(F.layersWithOutsidePointerEventsDisabled.delete(Y),F.layersWithOutsidePointerEventsDisabled.size===0&&(W.body.style.pointerEvents=originalBodyPointerEvents))}},[Y,W,o,F]),reactExports.useEffect(()=>()=>{Y&&(F.layers.delete(Y),F.layersWithOutsidePointerEventsDisabled.delete(Y),dispatchUpdate())},[Y,F]),reactExports.useEffect(()=>{const Tt=()=>re({});return document.addEventListener(CONTEXT_UPDATE,Tt),()=>document.removeEventListener(CONTEXT_UPDATE,Tt)},[]),jsxRuntimeExports.jsx(Primitive.div,{...x,ref:ee,style:{pointerEvents:De?Fe?"auto":"none":void 0,...n.style},onFocusCapture:composeEventHandlers(n.onFocusCapture,He.onFocusCapture),onBlurCapture:composeEventHandlers(n.onBlurCapture,He.onBlurCapture),onPointerDownCapture:composeEventHandlers(n.onPointerDownCapture,Ge.onPointerDownCapture)})});DismissableLayer.displayName=DISMISSABLE_LAYER_NAME;var BRANCH_NAME="DismissableLayerBranch",DismissableLayerBranch=reactExports.forwardRef((n,e)=>{const o=reactExports.useContext(DismissableLayerContext),d=reactExports.useRef(null),I=useComposedRefs(e,d);return reactExports.useEffect(()=>{const f=d.current;if(f)return o.branches.add(f),()=>{o.branches.delete(f)}},[o.branches]),jsxRuntimeExports.jsx(Primitive.div,{...n,ref:I})});DismissableLayerBranch.displayName=BRANCH_NAME;function useDismissableLayerSurface(){const n=reactExports.useContext(DismissableLayerContext),[e,o]=reactExports.useState(null);return reactExports.useEffect(()=>{if(e)return n.dismissableSurfaces.add(e),()=>{n.dismissableSurfaces.delete(e)}},[e,n.dismissableSurfaces]),o}var IS_TRUE=()=>!0;function usePointerDownOutside(n,e){const{ownerDocument:o=globalThis==null?void 0:globalThis.document,deferPointerDownOutside:d=!1,isDeferredPointerDownOutsideRef:I,dismissableSurfaces:f,shouldHandlePointerDownOutside:S=IS_TRUE}=e,v=useCallbackRef$1(n),L=reactExports.useRef(!1),x=reactExports.useRef(!1),F=reactExports.useRef(new Map),Y=reactExports.useRef(()=>{});return reactExports.useEffect(()=>{function j(){x.current=!1,I.current=!1,F.current.clear()}function W(){return Array.from(F.current.values()).some(Boolean)}function re(_e){if(!x.current)return;const De=_e.target;De instanceof Node&&[...f].some(Ve=>Ve.contains(De))||F.current.set(_e.type,!0),_e.type==="click"&&window.setTimeout(()=>{x.current&&Y.current()},0)}function ee(_e){x.current&&F.current.set(_e.type,!1)}const he=_e=>{if(_e.target&&!L.current){let De=function(){o.removeEventListener("click",Y.current);const Ve=W();j(),Ve||handleAndDispatchCustomEvent(POINTER_DOWN_OUTSIDE,v,Fe,{discrete:!0})};if(!S(_e.target)){o.removeEventListener("click",Y.current),j(),L.current=!1;return}const Fe={originalEvent:_e};x.current=!0,I.current=d&&_e.button===0,F.current.clear(),!d||_e.button!==0?De():(o.removeEventListener("click",Y.current),Y.current=De,o.addEventListener("click",Y.current,{once:!0}))}else o.removeEventListener("click",Y.current),j();L.current=!1},ue=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const _e of ue)o.addEventListener(_e,re,!0),o.addEventListener(_e,ee);const Ee=window.setTimeout(()=>{o.addEventListener("pointerdown",he)},0);return()=>{window.clearTimeout(Ee),o.removeEventListener("pointerdown",he),o.removeEventListener("click",Y.current);for(const _e of ue)o.removeEventListener(_e,re,!0),o.removeEventListener(_e,ee)}},[o,v,d,I,f,S]),{onPointerDownCapture:()=>L.current=!0}}function useFocusOutside(n,e=globalThis==null?void 0:globalThis.document){const o=useCallbackRef$1(n),d=reactExports.useRef(!1);return reactExports.useEffect(()=>{const I=f=>{f.target&&!d.current&&handleAndDispatchCustomEvent(FOCUS_OUTSIDE,o,{originalEvent:f},{discrete:!1})};return e.addEventListener("focusin",I),()=>e.removeEventListener("focusin",I)},[e,o]),{onFocusCapture:()=>d.current=!0,onBlurCapture:()=>d.current=!1}}function dispatchUpdate(){const n=new CustomEvent(CONTEXT_UPDATE);document.dispatchEvent(n)}function handleAndDispatchCustomEvent(n,e,o,{discrete:d}){const I=o.originalEvent.target,f=new CustomEvent(n,{bubbles:!1,cancelable:!0,detail:o});e&&I.addEventListener(n,e,{once:!0}),d?dispatchDiscreteCustomEvent(I,f):I.dispatchEvent(f)}var count$1=0,guards=null;function useFocusGuards(){reactExports.useEffect(()=>{guards||(guards={start:createFocusGuard(),end:createFocusGuard()});const{start:n,end:e}=guards;return document.body.firstElementChild!==n&&document.body.insertAdjacentElement("afterbegin",n),document.body.lastElementChild!==e&&document.body.insertAdjacentElement("beforeend",e),count$1++,()=>{count$1===1&&(guards==null||guards.start.remove(),guards==null||guards.end.remove(),guards=null),count$1=Math.max(0,count$1-1)}},[])}function createFocusGuard(){const n=document.createElement("span");return n.setAttribute("data-radix-focus-guard",""),n.tabIndex=0,n.style.outline="none",n.style.opacity="0",n.style.position="fixed",n.style.pointerEvents="none",n}var AUTOFOCUS_ON_MOUNT="focusScope.autoFocusOnMount",AUTOFOCUS_ON_UNMOUNT="focusScope.autoFocusOnUnmount",EVENT_OPTIONS={bubbles:!1,cancelable:!0},FOCUS_SCOPE_NAME="FocusScope",FocusScope=reactExports.forwardRef((n,e)=>{const{loop:o=!1,trapped:d=!1,onMountAutoFocus:I,onUnmountAutoFocus:f,...S}=n,[v,L]=reactExports.useState(null),x=useCallbackRef$1(I),F=useCallbackRef$1(f),Y=reactExports.useRef(null),j=useComposedRefs(e,L),W=reactExports.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;reactExports.useEffect(()=>{if(d){let ee=function(_e){if(W.paused||!v)return;const De=_e.target;v.contains(De)?Y.current=De:focus(Y.current,{select:!0})},he=function(_e){if(W.paused||!v)return;const De=_e.relatedTarget;De!==null&&(v.contains(De)||focus(Y.current,{select:!0}))},ue=function(_e){if(document.activeElement===document.body)for(const Fe of _e)Fe.removedNodes.length>0&&focus(v)};document.addEventListener("focusin",ee),document.addEventListener("focusout",he);const Ee=new MutationObserver(ue);return v&&Ee.observe(v,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",ee),document.removeEventListener("focusout",he),Ee.disconnect()}}},[d,v,W.paused]),reactExports.useEffect(()=>{if(v){focusScopesStack.add(W);const ee=document.activeElement;if(!v.contains(ee)){const ue=new CustomEvent(AUTOFOCUS_ON_MOUNT,EVENT_OPTIONS);v.addEventListener(AUTOFOCUS_ON_MOUNT,x),v.dispatchEvent(ue),ue.defaultPrevented||(focusFirst(removeLinks(getTabbableCandidates(v)),{select:!0}),document.activeElement===ee&&focus(v))}return()=>{v.removeEventListener(AUTOFOCUS_ON_MOUNT,x),setTimeout(()=>{const ue=new CustomEvent(AUTOFOCUS_ON_UNMOUNT,EVENT_OPTIONS);v.addEventListener(AUTOFOCUS_ON_UNMOUNT,F),v.dispatchEvent(ue),ue.defaultPrevented||focus(ee??document.body,{select:!0}),v.removeEventListener(AUTOFOCUS_ON_UNMOUNT,F),focusScopesStack.remove(W)},0)}}},[v,x,F,W]);const re=reactExports.useCallback(ee=>{if(!o&&!d||W.paused)return;const he=ee.key==="Tab"&&!ee.altKey&&!ee.ctrlKey&&!ee.metaKey,ue=document.activeElement;if(he&&ue){const Ee=ee.currentTarget,[_e,De]=getTabbableEdges(Ee);_e&&De?!ee.shiftKey&&ue===De?(ee.preventDefault(),o&&focus(_e,{select:!0})):ee.shiftKey&&ue===_e&&(ee.preventDefault(),o&&focus(De,{select:!0})):ue===Ee&&ee.preventDefault()}},[o,d,W.paused]);return jsxRuntimeExports.jsx(Primitive.div,{tabIndex:-1,...S,ref:j,onKeyDown:re})});FocusScope.displayName=FOCUS_SCOPE_NAME;function focusFirst(n,{select:e=!1}={}){const o=document.activeElement;for(const d of n)if(focus(d,{select:e}),document.activeElement!==o)return}function getTabbableEdges(n){const e=getTabbableCandidates(n),o=findVisible(e,n),d=findVisible(e.reverse(),n);return[o,d]}function getTabbableCandidates(n){const e=[],o=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,{acceptNode:d=>{const I=d.tagName==="INPUT"&&d.type==="hidden";return d.disabled||d.hidden||I?NodeFilter.FILTER_SKIP:d.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)e.push(o.currentNode);return e}function findVisible(n,e){const o=typeof e.checkVisibility=="function"&&e.checkVisibility({checkVisibilityCSS:!0});for(const d of n)if(!(o?!d.checkVisibility({checkVisibilityCSS:!0}):isHidden(d,{upTo:e})))return d}function isHidden(n,{upTo:e}){if(getComputedStyle(n).visibility==="hidden")return!0;for(;n;){if(e!==void 0&&n===e)return!1;if(getComputedStyle(n).display==="none")return!0;n=n.parentElement}return!1}function isSelectableInput(n){return n instanceof HTMLInputElement&&"select"in n}function focus(n,{select:e=!1}={}){if(n&&n.focus){const o=document.activeElement;n.focus({preventScroll:!0}),n!==o&&isSelectableInput(n)&&e&&n.select()}}var focusScopesStack=createFocusScopesStack();function createFocusScopesStack(){let n=[];return{add(e){const o=n[0];e!==o&&(o==null||o.pause()),n=arrayRemove(n,e),n.unshift(e)},remove(e){var o;n=arrayRemove(n,e),(o=n[0])==null||o.resume()}}}function arrayRemove(n,e){const o=[...n],d=o.indexOf(e);return d!==-1&&o.splice(d,1),o}function removeLinks(n){return n.filter(e=>e.tagName!=="A")}var useReactId=React2[" useId ".trim().toString()]||(()=>{}),count=0;function useId(n){const[e,o]=reactExports.useState(useReactId());return useLayoutEffect2(()=>{o(d=>d??String(count++))},[n]),e?`radix-${e}`:""}const sides=["top","right","bottom","left"],min=Math.min,max=Math.max,round=Math.round,floor=Math.floor,createCoords=n=>({x:n,y:n}),oppositeSideMap={left:"right",right:"left",bottom:"top",top:"bottom"};function clamp$1(n,e,o){return max(n,min(e,o))}function evaluate(n,e){return typeof n=="function"?n(e):n}function getSide(n){return n.split("-")[0]}function getAlignment(n){return n.split("-")[1]}function getOppositeAxis(n){return n==="x"?"y":"x"}function getAxisLength(n){return n==="y"?"height":"width"}function getSideAxis(n){const e=n[0];return e==="t"||e==="b"?"y":"x"}function getAlignmentAxis(n){return getOppositeAxis(getSideAxis(n))}function getAlignmentSides(n,e,o){o===void 0&&(o=!1);const d=getAlignment(n),I=getAlignmentAxis(n),f=getAxisLength(I);let S=I==="x"?d===(o?"end":"start")?"right":"left":d==="start"?"bottom":"top";return e.reference[f]>e.floating[f]&&(S=getOppositePlacement(S)),[S,getOppositePlacement(S)]}function getExpandedPlacements(n){const e=getOppositePlacement(n);return[getOppositeAlignmentPlacement(n),e,getOppositeAlignmentPlacement(e)]}function getOppositeAlignmentPlacement(n){return n.includes("start")?n.replace("start","end"):n.replace("end","start")}const lrPlacement=["left","right"],rlPlacement=["right","left"],tbPlacement=["top","bottom"],btPlacement=["bottom","top"];function getSideList(n,e,o){switch(n){case"top":case"bottom":return o?e?rlPlacement:lrPlacement:e?lrPlacement:rlPlacement;case"left":case"right":return e?tbPlacement:btPlacement;default:return[]}}function getOppositeAxisPlacements(n,e,o,d){const I=getAlignment(n);let f=getSideList(getSide(n),o==="start",d);return I&&(f=f.map(S=>S+"-"+I),e&&(f=f.concat(f.map(getOppositeAlignmentPlacement)))),f}function getOppositePlacement(n){const e=getSide(n);return oppositeSideMap[e]+n.slice(e.length)}function expandPaddingObject(n){return{top:0,right:0,bottom:0,left:0,...n}}function getPaddingObject(n){return typeof n!="number"?expandPaddingObject(n):{top:n,right:n,bottom:n,left:n}}function rectToClientRect(n){const{x:e,y:o,width:d,height:I}=n;return{width:d,height:I,top:o,left:e,right:e+d,bottom:o+I,x:e,y:o}}function computeCoordsFromPlacement(n,e,o){let{reference:d,floating:I}=n;const f=getSideAxis(e),S=getAlignmentAxis(e),v=getAxisLength(S),L=getSide(e),x=f==="y",F=d.x+d.width/2-I.width/2,Y=d.y+d.height/2-I.height/2,j=d[v]/2-I[v]/2;let W;switch(L){case"top":W={x:F,y:d.y-I.height};break;case"bottom":W={x:F,y:d.y+d.height};break;case"right":W={x:d.x+d.width,y:Y};break;case"left":W={x:d.x-I.width,y:Y};break;default:W={x:d.x,y:d.y}}switch(getAlignment(e)){case"start":W[S]-=j*(o&&x?-1:1);break;case"end":W[S]+=j*(o&&x?-1:1);break}return W}async function detectOverflow(n,e){var o;e===void 0&&(e={});const{x:d,y:I,platform:f,rects:S,elements:v,strategy:L}=n,{boundary:x="clippingAncestors",rootBoundary:F="viewport",elementContext:Y="floating",altBoundary:j=!1,padding:W=0}=evaluate(e,n),re=getPaddingObject(W),he=v[j?Y==="floating"?"reference":"floating":Y],ue=rectToClientRect(await f.getClippingRect({element:(o=await(f.isElement==null?void 0:f.isElement(he)))==null||o?he:he.contextElement||await(f.getDocumentElement==null?void 0:f.getDocumentElement(v.floating)),boundary:x,rootBoundary:F,strategy:L})),Ee=Y==="floating"?{x:d,y:I,width:S.floating.width,height:S.floating.height}:S.reference,_e=await(f.getOffsetParent==null?void 0:f.getOffsetParent(v.floating)),De=await(f.isElement==null?void 0:f.isElement(_e))?await(f.getScale==null?void 0:f.getScale(_e))||{x:1,y:1}:{x:1,y:1},Fe=rectToClientRect(f.convertOffsetParentRelativeRectToViewportRelativeRect?await f.convertOffsetParentRelativeRectToViewportRelativeRect({elements:v,rect:Ee,offsetParent:_e,strategy:L}):Ee);return{top:(ue.top-Fe.top+re.top)/De.y,bottom:(Fe.bottom-ue.bottom+re.bottom)/De.y,left:(ue.left-Fe.left+re.left)/De.x,right:(Fe.right-ue.right+re.right)/De.x}}const MAX_RESET_COUNT=50,computePosition$1=async(n,e,o)=>{const{placement:d="bottom",strategy:I="absolute",middleware:f=[],platform:S}=o,v=S.detectOverflow?S:{...S,detectOverflow},L=await(S.isRTL==null?void 0:S.isRTL(e));let x=await S.getElementRects({reference:n,floating:e,strategy:I}),{x:F,y:Y}=computeCoordsFromPlacement(x,d,L),j=d,W=0;const re={};for(let ee=0;ee({name:"arrow",options:n,async fn(e){const{x:o,y:d,placement:I,rects:f,platform:S,elements:v,middlewareData:L}=e,{element:x,padding:F=0}=evaluate(n,e)||{};if(x==null)return{};const Y=getPaddingObject(F),j={x:o,y:d},W=getAlignmentAxis(I),re=getAxisLength(W),ee=await S.getDimensions(x),he=W==="y",ue=he?"top":"left",Ee=he?"bottom":"right",_e=he?"clientHeight":"clientWidth",De=f.reference[re]+f.reference[W]-j[W]-f.floating[re],Fe=j[W]-f.reference[W],Ve=await(S.getOffsetParent==null?void 0:S.getOffsetParent(x));let Ge=Ve?Ve[_e]:0;(!Ge||!await(S.isElement==null?void 0:S.isElement(Ve)))&&(Ge=v.floating[_e]||f.floating[re]);const He=De/2-Fe/2,At=Ge/2-ee[re]/2-1,Bt=min(Y[ue],At),Tt=min(Y[Ee],At),rt=Bt,ye=Ge-ee[re]-Tt,lt=Ge/2-ee[re]/2+He,Yt=clamp$1(rt,lt,ye),ct=!L.arrow&&getAlignment(I)!=null&<!==Yt&&f.reference[re]/2-(ltlt<=0)){var Tt,rt;const lt=(((Tt=f.flip)==null?void 0:Tt.index)||0)+1,Yt=Ge[lt];if(Yt&&(!(Y==="alignment"?Ee!==getSideAxis(Yt):!1)||Bt.every(vt=>getSideAxis(vt.placement)===Ee?vt.overflows[0]>0:!0)))return{data:{index:lt,overflows:Bt},reset:{placement:Yt}};let ct=(rt=Bt.filter(ht=>ht.overflows[0]<=0).sort((ht,vt)=>ht.overflows[1]-vt.overflows[1])[0])==null?void 0:rt.placement;if(!ct)switch(W){case"bestFit":{var ye;const ht=(ye=Bt.filter(vt=>{if(Ve){const ar=getSideAxis(vt.placement);return ar===Ee||ar==="y"}return!0}).map(vt=>[vt.placement,vt.overflows.filter(ar=>ar>0).reduce((ar,jt)=>ar+jt,0)]).sort((vt,ar)=>vt[1]-ar[1])[0])==null?void 0:ye[0];ht&&(ct=ht);break}case"initialPlacement":ct=v;break}if(I!==ct)return{reset:{placement:ct}}}return{}}}};function getSideOffsets(n,e){return{top:n.top-e.height,right:n.right-e.width,bottom:n.bottom-e.height,left:n.left-e.width}}function isAnySideFullyClipped(n){return sides.some(e=>n[e]>=0)}const hide$2=function(n){return n===void 0&&(n={}),{name:"hide",options:n,async fn(e){const{rects:o,platform:d}=e,{strategy:I="referenceHidden",...f}=evaluate(n,e);switch(I){case"referenceHidden":{const S=await d.detectOverflow(e,{...f,elementContext:"reference"}),v=getSideOffsets(S,o.reference);return{data:{referenceHiddenOffsets:v,referenceHidden:isAnySideFullyClipped(v)}}}case"escaped":{const S=await d.detectOverflow(e,{...f,altBoundary:!0}),v=getSideOffsets(S,o.floating);return{data:{escapedOffsets:v,escaped:isAnySideFullyClipped(v)}}}default:return{}}}}},originSides=new Set(["left","top"]);async function convertValueToCoords(n,e){const{placement:o,platform:d,elements:I}=n,f=await(d.isRTL==null?void 0:d.isRTL(I.floating)),S=getSide(o),v=getAlignment(o),L=getSideAxis(o)==="y",x=originSides.has(S)?-1:1,F=f&&L?-1:1,Y=evaluate(e,n);let{mainAxis:j,crossAxis:W,alignmentAxis:re}=typeof Y=="number"?{mainAxis:Y,crossAxis:0,alignmentAxis:null}:{mainAxis:Y.mainAxis||0,crossAxis:Y.crossAxis||0,alignmentAxis:Y.alignmentAxis};return v&&typeof re=="number"&&(W=v==="end"?re*-1:re),L?{x:W*F,y:j*x}:{x:j*x,y:W*F}}const offset$2=function(n){return n===void 0&&(n=0),{name:"offset",options:n,async fn(e){var o,d;const{x:I,y:f,placement:S,middlewareData:v}=e,L=await convertValueToCoords(e,n);return S===((o=v.offset)==null?void 0:o.placement)&&(d=v.arrow)!=null&&d.alignmentOffset?{}:{x:I+L.x,y:f+L.y,data:{...L,placement:S}}}}},shift$2=function(n){return n===void 0&&(n={}),{name:"shift",options:n,async fn(e){const{x:o,y:d,placement:I,platform:f}=e,{mainAxis:S=!0,crossAxis:v=!1,limiter:L={fn:ue=>{let{x:Ee,y:_e}=ue;return{x:Ee,y:_e}}},...x}=evaluate(n,e),F={x:o,y:d},Y=await f.detectOverflow(e,x),j=getSideAxis(getSide(I)),W=getOppositeAxis(j);let re=F[W],ee=F[j];if(S){const ue=W==="y"?"top":"left",Ee=W==="y"?"bottom":"right",_e=re+Y[ue],De=re-Y[Ee];re=clamp$1(_e,re,De)}if(v){const ue=j==="y"?"top":"left",Ee=j==="y"?"bottom":"right",_e=ee+Y[ue],De=ee-Y[Ee];ee=clamp$1(_e,ee,De)}const he=L.fn({...e,[W]:re,[j]:ee});return{...he,data:{x:he.x-o,y:he.y-d,enabled:{[W]:S,[j]:v}}}}}},limitShift$2=function(n){return n===void 0&&(n={}),{options:n,fn(e){const{x:o,y:d,placement:I,rects:f,middlewareData:S}=e,{offset:v=0,mainAxis:L=!0,crossAxis:x=!0}=evaluate(n,e),F={x:o,y:d},Y=getSideAxis(I),j=getOppositeAxis(Y);let W=F[j],re=F[Y];const ee=evaluate(v,e),he=typeof ee=="number"?{mainAxis:ee,crossAxis:0}:{mainAxis:0,crossAxis:0,...ee};if(L){const _e=j==="y"?"height":"width",De=f.reference[j]-f.floating[_e]+he.mainAxis,Fe=f.reference[j]+f.reference[_e]-he.mainAxis;WFe&&(W=Fe)}if(x){var ue,Ee;const _e=j==="y"?"width":"height",De=originSides.has(getSide(I)),Fe=f.reference[Y]-f.floating[_e]+(De&&((ue=S.offset)==null?void 0:ue[Y])||0)+(De?0:he.crossAxis),Ve=f.reference[Y]+f.reference[_e]+(De?0:((Ee=S.offset)==null?void 0:Ee[Y])||0)-(De?he.crossAxis:0);reVe&&(re=Ve)}return{[j]:W,[Y]:re}}}},size$2=function(n){return n===void 0&&(n={}),{name:"size",options:n,async fn(e){var o,d;const{placement:I,rects:f,platform:S,elements:v}=e,{apply:L=()=>{},...x}=evaluate(n,e),F=await S.detectOverflow(e,x),Y=getSide(I),j=getAlignment(I),W=getSideAxis(I)==="y",{width:re,height:ee}=f.floating;let he,ue;Y==="top"||Y==="bottom"?(he=Y,ue=j===(await(S.isRTL==null?void 0:S.isRTL(v.floating))?"start":"end")?"left":"right"):(ue=Y,he=j==="end"?"top":"bottom");const Ee=ee-F.top-F.bottom,_e=re-F.left-F.right,De=min(ee-F[he],Ee),Fe=min(re-F[ue],_e),Ve=!e.middlewareData.shift;let Ge=De,He=Fe;if((o=e.middlewareData.shift)!=null&&o.enabled.x&&(He=_e),(d=e.middlewareData.shift)!=null&&d.enabled.y&&(Ge=Ee),Ve&&!j){const Bt=max(F.left,0),Tt=max(F.right,0),rt=max(F.top,0),ye=max(F.bottom,0);W?He=re-2*(Bt!==0||Tt!==0?Bt+Tt:max(F.left,F.right)):Ge=ee-2*(rt!==0||ye!==0?rt+ye:max(F.top,F.bottom))}await L({...e,availableWidth:He,availableHeight:Ge});const At=await S.getDimensions(v.floating);return re!==At.width||ee!==At.height?{reset:{rects:!0}}:{}}}};function hasWindow(){return typeof window<"u"}function getNodeName(n){return isNode(n)?(n.nodeName||"").toLowerCase():"#document"}function getWindow(n){var e;return(n==null||(e=n.ownerDocument)==null?void 0:e.defaultView)||window}function getDocumentElement(n){var e;return(e=(isNode(n)?n.ownerDocument:n.document)||window.document)==null?void 0:e.documentElement}function isNode(n){return hasWindow()?n instanceof Node||n instanceof getWindow(n).Node:!1}function isElement(n){return hasWindow()?n instanceof Element||n instanceof getWindow(n).Element:!1}function isHTMLElement(n){return hasWindow()?n instanceof HTMLElement||n instanceof getWindow(n).HTMLElement:!1}function isShadowRoot(n){return!hasWindow()||typeof ShadowRoot>"u"?!1:n instanceof ShadowRoot||n instanceof getWindow(n).ShadowRoot}function isOverflowElement(n){const{overflow:e,overflowX:o,overflowY:d,display:I}=getComputedStyle$1(n);return/auto|scroll|overlay|hidden|clip/.test(e+d+o)&&I!=="inline"&&I!=="contents"}function isTableElement(n){return/^(table|td|th)$/.test(getNodeName(n))}function isTopLayer(n){try{if(n.matches(":popover-open"))return!0}catch{}try{return n.matches(":modal")}catch{return!1}}const willChangeRe=/transform|translate|scale|rotate|perspective|filter/,containRe=/paint|layout|strict|content/,isNotNone=n=>!!n&&n!=="none";let isWebKitValue;function isContainingBlock(n){const e=isElement(n)?getComputedStyle$1(n):n;return isNotNone(e.transform)||isNotNone(e.translate)||isNotNone(e.scale)||isNotNone(e.rotate)||isNotNone(e.perspective)||!isWebKit()&&(isNotNone(e.backdropFilter)||isNotNone(e.filter))||willChangeRe.test(e.willChange||"")||containRe.test(e.contain||"")}function getContainingBlock(n){let e=getParentNode(n);for(;isHTMLElement(e)&&!isLastTraversableNode(e);){if(isContainingBlock(e))return e;if(isTopLayer(e))return null;e=getParentNode(e)}return null}function isWebKit(){return isWebKitValue==null&&(isWebKitValue=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),isWebKitValue}function isLastTraversableNode(n){return/^(html|body|#document)$/.test(getNodeName(n))}function getComputedStyle$1(n){return getWindow(n).getComputedStyle(n)}function getNodeScroll(n){return isElement(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function getParentNode(n){if(getNodeName(n)==="html")return n;const e=n.assignedSlot||n.parentNode||isShadowRoot(n)&&n.host||getDocumentElement(n);return isShadowRoot(e)?e.host:e}function getNearestOverflowAncestor(n){const e=getParentNode(n);return isLastTraversableNode(e)?n.ownerDocument?n.ownerDocument.body:n.body:isHTMLElement(e)&&isOverflowElement(e)?e:getNearestOverflowAncestor(e)}function getOverflowAncestors(n,e,o){var d;e===void 0&&(e=[]),o===void 0&&(o=!0);const I=getNearestOverflowAncestor(n),f=I===((d=n.ownerDocument)==null?void 0:d.body),S=getWindow(I);if(f){const v=getFrameElement(S);return e.concat(S,S.visualViewport||[],isOverflowElement(I)?I:[],v&&o?getOverflowAncestors(v):[])}else return e.concat(I,getOverflowAncestors(I,[],o))}function getFrameElement(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}function getCssDimensions(n){const e=getComputedStyle$1(n);let o=parseFloat(e.width)||0,d=parseFloat(e.height)||0;const I=isHTMLElement(n),f=I?n.offsetWidth:o,S=I?n.offsetHeight:d,v=round(o)!==f||round(d)!==S;return v&&(o=f,d=S),{width:o,height:d,$:v}}function unwrapElement(n){return isElement(n)?n:n.contextElement}function getScale(n){const e=unwrapElement(n);if(!isHTMLElement(e))return createCoords(1);const o=e.getBoundingClientRect(),{width:d,height:I,$:f}=getCssDimensions(e);let S=(f?round(o.width):o.width)/d,v=(f?round(o.height):o.height)/I;return(!S||!Number.isFinite(S))&&(S=1),(!v||!Number.isFinite(v))&&(v=1),{x:S,y:v}}const noOffsets=createCoords(0);function getVisualOffsets(n){const e=getWindow(n);return!isWebKit()||!e.visualViewport?noOffsets:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function shouldAddVisualOffsets(n,e,o){return e===void 0&&(e=!1),!o||e&&o!==getWindow(n)?!1:e}function getBoundingClientRect(n,e,o,d){e===void 0&&(e=!1),o===void 0&&(o=!1);const I=n.getBoundingClientRect(),f=unwrapElement(n);let S=createCoords(1);e&&(d?isElement(d)&&(S=getScale(d)):S=getScale(n));const v=shouldAddVisualOffsets(f,o,d)?getVisualOffsets(f):createCoords(0);let L=(I.left+v.x)/S.x,x=(I.top+v.y)/S.y,F=I.width/S.x,Y=I.height/S.y;if(f){const j=getWindow(f),W=d&&isElement(d)?getWindow(d):d;let re=j,ee=getFrameElement(re);for(;ee&&d&&W!==re;){const he=getScale(ee),ue=ee.getBoundingClientRect(),Ee=getComputedStyle$1(ee),_e=ue.left+(ee.clientLeft+parseFloat(Ee.paddingLeft))*he.x,De=ue.top+(ee.clientTop+parseFloat(Ee.paddingTop))*he.y;L*=he.x,x*=he.y,F*=he.x,Y*=he.y,L+=_e,x+=De,re=getWindow(ee),ee=getFrameElement(re)}}return rectToClientRect({width:F,height:Y,x:L,y:x})}function getWindowScrollBarX(n,e){const o=getNodeScroll(n).scrollLeft;return e?e.left+o:getBoundingClientRect(getDocumentElement(n)).left+o}function getHTMLOffset(n,e){const o=n.getBoundingClientRect(),d=o.left+e.scrollLeft-getWindowScrollBarX(n,o),I=o.top+e.scrollTop;return{x:d,y:I}}function convertOffsetParentRelativeRectToViewportRelativeRect(n){let{elements:e,rect:o,offsetParent:d,strategy:I}=n;const f=I==="fixed",S=getDocumentElement(d),v=e?isTopLayer(e.floating):!1;if(d===S||v&&f)return o;let L={scrollLeft:0,scrollTop:0},x=createCoords(1);const F=createCoords(0),Y=isHTMLElement(d);if((Y||!Y&&!f)&&((getNodeName(d)!=="body"||isOverflowElement(S))&&(L=getNodeScroll(d)),Y)){const W=getBoundingClientRect(d);x=getScale(d),F.x=W.x+d.clientLeft,F.y=W.y+d.clientTop}const j=S&&!Y&&!f?getHTMLOffset(S,L):createCoords(0);return{width:o.width*x.x,height:o.height*x.y,x:o.x*x.x-L.scrollLeft*x.x+F.x+j.x,y:o.y*x.y-L.scrollTop*x.y+F.y+j.y}}function getClientRects(n){return Array.from(n.getClientRects())}function getDocumentRect(n){const e=getDocumentElement(n),o=getNodeScroll(n),d=n.ownerDocument.body,I=max(e.scrollWidth,e.clientWidth,d.scrollWidth,d.clientWidth),f=max(e.scrollHeight,e.clientHeight,d.scrollHeight,d.clientHeight);let S=-o.scrollLeft+getWindowScrollBarX(n);const v=-o.scrollTop;return getComputedStyle$1(d).direction==="rtl"&&(S+=max(e.clientWidth,d.clientWidth)-I),{width:I,height:f,x:S,y:v}}const SCROLLBAR_MAX=25;function getViewportRect(n,e){const o=getWindow(n),d=getDocumentElement(n),I=o.visualViewport;let f=d.clientWidth,S=d.clientHeight,v=0,L=0;if(I){f=I.width,S=I.height;const F=isWebKit();(!F||F&&e==="fixed")&&(v=I.offsetLeft,L=I.offsetTop)}const x=getWindowScrollBarX(d);if(x<=0){const F=d.ownerDocument,Y=F.body,j=getComputedStyle(Y),W=F.compatMode==="CSS1Compat"&&parseFloat(j.marginLeft)+parseFloat(j.marginRight)||0,re=Math.abs(d.clientWidth-Y.clientWidth-W);re<=SCROLLBAR_MAX&&(f-=re)}else x<=SCROLLBAR_MAX&&(f+=x);return{width:f,height:S,x:v,y:L}}function getInnerBoundingClientRect(n,e){const o=getBoundingClientRect(n,!0,e==="fixed"),d=o.top+n.clientTop,I=o.left+n.clientLeft,f=isHTMLElement(n)?getScale(n):createCoords(1),S=n.clientWidth*f.x,v=n.clientHeight*f.y,L=I*f.x,x=d*f.y;return{width:S,height:v,x:L,y:x}}function getClientRectFromClippingAncestor(n,e,o){let d;if(e==="viewport")d=getViewportRect(n,o);else if(e==="document")d=getDocumentRect(getDocumentElement(n));else if(isElement(e))d=getInnerBoundingClientRect(e,o);else{const I=getVisualOffsets(n);d={x:e.x-I.x,y:e.y-I.y,width:e.width,height:e.height}}return rectToClientRect(d)}function hasFixedPositionAncestor(n,e){const o=getParentNode(n);return o===e||!isElement(o)||isLastTraversableNode(o)?!1:getComputedStyle$1(o).position==="fixed"||hasFixedPositionAncestor(o,e)}function getClippingElementAncestors(n,e){const o=e.get(n);if(o)return o;let d=getOverflowAncestors(n,[],!1).filter(v=>isElement(v)&&getNodeName(v)!=="body"),I=null;const f=getComputedStyle$1(n).position==="fixed";let S=f?getParentNode(n):n;for(;isElement(S)&&!isLastTraversableNode(S);){const v=getComputedStyle$1(S),L=isContainingBlock(S);!L&&v.position==="fixed"&&(I=null),(f?!L&&!I:!L&&v.position==="static"&&!!I&&(I.position==="absolute"||I.position==="fixed")||isOverflowElement(S)&&!L&&hasFixedPositionAncestor(n,S))?d=d.filter(F=>F!==S):I=v,S=getParentNode(S)}return e.set(n,d),d}function getClippingRect(n){let{element:e,boundary:o,rootBoundary:d,strategy:I}=n;const S=[...o==="clippingAncestors"?isTopLayer(e)?[]:getClippingElementAncestors(e,this._c):[].concat(o),d],v=getClientRectFromClippingAncestor(e,S[0],I);let L=v.top,x=v.right,F=v.bottom,Y=v.left;for(let j=1;j{S(!1,1e-7)},1e3)}Ge===1&&!rectsAreEqual(x,n.getBoundingClientRect())&&S(),De=!1}try{o=new IntersectionObserver(Fe,{..._e,root:I.ownerDocument})}catch{o=new IntersectionObserver(Fe,_e)}o.observe(n)}return S(!0),f}function autoUpdate(n,e,o,d){d===void 0&&(d={});const{ancestorScroll:I=!0,ancestorResize:f=!0,elementResize:S=typeof ResizeObserver=="function",layoutShift:v=typeof IntersectionObserver=="function",animationFrame:L=!1}=d,x=unwrapElement(n),F=I||f?[...x?getOverflowAncestors(x):[],...e?getOverflowAncestors(e):[]]:[];F.forEach(ue=>{I&&ue.addEventListener("scroll",o,{passive:!0}),f&&ue.addEventListener("resize",o)});const Y=x&&v?observeMove(x,o):null;let j=-1,W=null;S&&(W=new ResizeObserver(ue=>{let[Ee]=ue;Ee&&Ee.target===x&&W&&e&&(W.unobserve(e),cancelAnimationFrame(j),j=requestAnimationFrame(()=>{var _e;(_e=W)==null||_e.observe(e)})),o()}),x&&!L&&W.observe(x),e&&W.observe(e));let re,ee=L?getBoundingClientRect(n):null;L&&he();function he(){const ue=getBoundingClientRect(n);ee&&!rectsAreEqual(ee,ue)&&o(),ee=ue,re=requestAnimationFrame(he)}return o(),()=>{var ue;F.forEach(Ee=>{I&&Ee.removeEventListener("scroll",o),f&&Ee.removeEventListener("resize",o)}),Y==null||Y(),(ue=W)==null||ue.disconnect(),W=null,L&&cancelAnimationFrame(re)}}const offset$1=offset$2,shift$1=shift$2,flip$1=flip$2,size$1=size$2,hide$1=hide$2,arrow$2=arrow$3,limitShift$1=limitShift$2,computePosition=(n,e,o)=>{const d=new Map,I={platform,...o},f={...I.platform,_c:d};return computePosition$1(n,e,{...I,platform:f})};var isClient=typeof document<"u",noop=function(){},index=isClient?reactExports.useLayoutEffect:noop;function deepEqual(n,e){if(n===e)return!0;if(typeof n!=typeof e)return!1;if(typeof n=="function"&&n.toString()===e.toString())return!0;let o,d,I;if(n&&e&&typeof n=="object"){if(Array.isArray(n)){if(o=n.length,o!==e.length)return!1;for(d=o;d--!==0;)if(!deepEqual(n[d],e[d]))return!1;return!0}if(I=Object.keys(n),o=I.length,o!==Object.keys(e).length)return!1;for(d=o;d--!==0;)if(!{}.hasOwnProperty.call(e,I[d]))return!1;for(d=o;d--!==0;){const f=I[d];if(!(f==="_owner"&&n.$$typeof)&&!deepEqual(n[f],e[f]))return!1}return!0}return n!==n&&e!==e}function getDPR(n){return typeof window>"u"?1:(n.ownerDocument.defaultView||window).devicePixelRatio||1}function roundByDPR(n,e){const o=getDPR(n);return Math.round(e*o)/o}function useLatestRef(n){const e=reactExports.useRef(n);return index(()=>{e.current=n}),e}function useFloating(n){n===void 0&&(n={});const{placement:e="bottom",strategy:o="absolute",middleware:d=[],platform:I,elements:{reference:f,floating:S}={},transform:v=!0,whileElementsMounted:L,open:x}=n,[F,Y]=reactExports.useState({x:0,y:0,strategy:o,placement:e,middlewareData:{},isPositioned:!1}),[j,W]=reactExports.useState(d);deepEqual(j,d)||W(d);const[re,ee]=reactExports.useState(null),[he,ue]=reactExports.useState(null),Ee=reactExports.useCallback(vt=>{vt!==Ve.current&&(Ve.current=vt,ee(vt))},[]),_e=reactExports.useCallback(vt=>{vt!==Ge.current&&(Ge.current=vt,ue(vt))},[]),De=f||re,Fe=S||he,Ve=reactExports.useRef(null),Ge=reactExports.useRef(null),He=reactExports.useRef(F),At=L!=null,Bt=useLatestRef(L),Tt=useLatestRef(I),rt=useLatestRef(x),ye=reactExports.useCallback(()=>{if(!Ve.current||!Ge.current)return;const vt={placement:e,strategy:o,middleware:j};Tt.current&&(vt.platform=Tt.current),computePosition(Ve.current,Ge.current,vt).then(ar=>{const jt={...ar,isPositioned:rt.current!==!1};lt.current&&!deepEqual(He.current,jt)&&(He.current=jt,reactDomExports.flushSync(()=>{Y(jt)}))})},[j,e,o,Tt,rt]);index(()=>{x===!1&&He.current.isPositioned&&(He.current.isPositioned=!1,Y(vt=>({...vt,isPositioned:!1})))},[x]);const lt=reactExports.useRef(!1);index(()=>(lt.current=!0,()=>{lt.current=!1}),[]),index(()=>{if(De&&(Ve.current=De),Fe&&(Ge.current=Fe),De&&Fe){if(Bt.current)return Bt.current(De,Fe,ye);ye()}},[De,Fe,ye,Bt,At]);const Yt=reactExports.useMemo(()=>({reference:Ve,floating:Ge,setReference:Ee,setFloating:_e}),[Ee,_e]),ct=reactExports.useMemo(()=>({reference:De,floating:Fe}),[De,Fe]),ht=reactExports.useMemo(()=>{const vt={position:o,left:0,top:0};if(!ct.floating)return vt;const ar=roundByDPR(ct.floating,F.x),jt=roundByDPR(ct.floating,F.y);return v?{...vt,transform:"translate("+ar+"px, "+jt+"px)",...getDPR(ct.floating)>=1.5&&{willChange:"transform"}}:{position:o,left:ar,top:jt}},[o,v,ct.floating,F.x,F.y]);return reactExports.useMemo(()=>({...F,update:ye,refs:Yt,elements:ct,floatingStyles:ht}),[F,ye,Yt,ct,ht])}const arrow$1=n=>{function e(o){return{}.hasOwnProperty.call(o,"current")}return{name:"arrow",options:n,fn(o){const{element:d,padding:I}=typeof n=="function"?n(o):n;return d&&e(d)?d.current!=null?arrow$2({element:d.current,padding:I}).fn(o):{}:d?arrow$2({element:d,padding:I}).fn(o):{}}}},offset=(n,e)=>{const o=offset$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},shift=(n,e)=>{const o=shift$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},limitShift=(n,e)=>({fn:limitShift$1(n).fn,options:[n,e]}),flip=(n,e)=>{const o=flip$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},size=(n,e)=>{const o=size$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},hide=(n,e)=>{const o=hide$1(n);return{name:o.name,fn:o.fn,options:[n,e]}},arrow=(n,e)=>{const o=arrow$1(n);return{name:o.name,fn:o.fn,options:[n,e]}};var NAME$1="Arrow",Arrow$1=reactExports.forwardRef((n,e)=>{const{children:o,width:d=10,height:I=5,...f}=n;return jsxRuntimeExports.jsx(Primitive.svg,{...f,ref:e,width:d,height:I,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:n.asChild?o:jsxRuntimeExports.jsx("polygon",{points:"0,0 30,0 15,10"})})});Arrow$1.displayName=NAME$1;var Root=Arrow$1;function useSize(n){const[e,o]=reactExports.useState(void 0);return useLayoutEffect2(()=>{if(n){o({width:n.offsetWidth,height:n.offsetHeight});const d=new ResizeObserver(I=>{if(!Array.isArray(I)||!I.length)return;const f=I[0];let S,v;if("borderBoxSize"in f){const L=f.borderBoxSize,x=Array.isArray(L)?L[0]:L;S=x.inlineSize,v=x.blockSize}else S=n.offsetWidth,v=n.offsetHeight;o({width:S,height:v})});return d.observe(n,{box:"border-box"}),()=>d.unobserve(n)}else o(void 0)},[n]),e}var POPPER_NAME="Popper",[createPopperContext,createPopperScope]=createContextScope(POPPER_NAME),[PopperProvider,usePopperContext]=createPopperContext(POPPER_NAME),Popper=n=>{const{__scopePopper:e,children:o}=n,[d,I]=reactExports.useState(null),[f,S]=reactExports.useState(void 0);return jsxRuntimeExports.jsx(PopperProvider,{scope:e,anchor:d,onAnchorChange:I,placementState:f,setPlacementState:S,children:o})};Popper.displayName=POPPER_NAME;var ANCHOR_NAME$1="PopperAnchor",PopperAnchor=reactExports.forwardRef((n,e)=>{const{__scopePopper:o,virtualRef:d,...I}=n,f=usePopperContext(ANCHOR_NAME$1,o),S=reactExports.useRef(null),v=f.onAnchorChange,L=reactExports.useCallback(re=>{S.current=re,re&&v(re)},[v]),x=useComposedRefs(e,L),F=reactExports.useRef(null);reactExports.useEffect(()=>{if(!d)return;const re=F.current;F.current=d.current,re!==F.current&&v(F.current)});const Y=f.placementState&&getSideAndAlignFromPlacement(f.placementState),j=Y==null?void 0:Y[0],W=Y==null?void 0:Y[1];return d?null:jsxRuntimeExports.jsx(Primitive.div,{"data-radix-popper-side":j,"data-radix-popper-align":W,...I,ref:x})});PopperAnchor.displayName=ANCHOR_NAME$1;var CONTENT_NAME$3="PopperContent",[PopperContentProvider,useContentContext]=createPopperContext(CONTENT_NAME$3),PopperContent=reactExports.forwardRef((n,e)=>{var pr,ei,_i,Gr,oi,Oi;const{__scopePopper:o,side:d="bottom",sideOffset:I=0,align:f="center",alignOffset:S=0,arrowPadding:v=0,avoidCollisions:L=!0,collisionBoundary:x=[],collisionPadding:F=0,sticky:Y="partial",hideWhenDetached:j=!1,updatePositionStrategy:W="optimized",onPlaced:re,...ee}=n,he=usePopperContext(CONTENT_NAME$3,o),[ue,Ee]=reactExports.useState(null),_e=useComposedRefs(e,Ee),[De,Fe]=reactExports.useState(null),Ve=useSize(De),Ge=(Ve==null?void 0:Ve.width)??0,He=(Ve==null?void 0:Ve.height)??0,At=d+(f!=="center"?"-"+f:""),Bt=typeof F=="number"?F:{top:0,right:0,bottom:0,left:0,...F},Tt=Array.isArray(x)?x:[x],rt=Tt.length>0,ye={padding:Bt,boundary:Tt.filter(isNotNull),altBoundary:rt},{refs:lt,floatingStyles:Yt,placement:ct,isPositioned:ht,middlewareData:vt}=useFloating({strategy:"fixed",placement:At,whileElementsMounted:(..._o)=>autoUpdate(..._o,{animationFrame:W==="always"}),elements:{reference:he.anchor},middleware:[offset({mainAxis:I+He,alignmentAxis:S}),L&&shift({mainAxis:!0,crossAxis:!1,limiter:Y==="partial"?limitShift():void 0,...ye}),L&&flip({...ye}),size({...ye,apply:({elements:_o,rects:$n,availableWidth:gs,availableHeight:Bs})=>{const{width:Kn,height:Tn}=$n.reference,Zn=_o.floating.style;Zn.setProperty("--radix-popper-available-width",`${gs}px`),Zn.setProperty("--radix-popper-available-height",`${Bs}px`),Zn.setProperty("--radix-popper-anchor-width",`${Kn}px`),Zn.setProperty("--radix-popper-anchor-height",`${Tn}px`)}}),De&&arrow({element:De,padding:v}),transformOrigin({arrowWidth:Ge,arrowHeight:He}),j&&hide({strategy:"referenceHidden",...ye,boundary:rt?ye.boundary:void 0})]}),ar=he.setPlacementState;useLayoutEffect2(()=>(ar(ct),()=>{ar(void 0)}),[ct,ar]);const[jt,vr]=getSideAndAlignFromPlacement(ct),ai=useCallbackRef$1(re);useLayoutEffect2(()=>{ht&&(ai==null||ai())},[ht,ai]);const pi=(pr=vt.arrow)==null?void 0:pr.x,yi=(ei=vt.arrow)==null?void 0:ei.y,fi=((_i=vt.arrow)==null?void 0:_i.centerOffset)!==0,[Jn,xr]=reactExports.useState();return useLayoutEffect2(()=>{ue&&xr(window.getComputedStyle(ue).zIndex)},[ue]),jsxRuntimeExports.jsx("div",{ref:lt.setFloating,"data-radix-popper-content-wrapper":"",style:{...Yt,transform:ht?Yt.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Jn,"--radix-popper-transform-origin":[(Gr=vt.transformOrigin)==null?void 0:Gr.x,(oi=vt.transformOrigin)==null?void 0:oi.y].join(" "),...((Oi=vt.hide)==null?void 0:Oi.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:n.dir,children:jsxRuntimeExports.jsx(PopperContentProvider,{scope:o,placedSide:jt,placedAlign:vr,onArrowChange:Fe,arrowX:pi,arrowY:yi,shouldHideArrow:fi,children:jsxRuntimeExports.jsx(Primitive.div,{"data-side":jt,"data-align":vr,...ee,ref:_e,style:{...ee.style,animation:ht?void 0:"none"}})})})});PopperContent.displayName=CONTENT_NAME$3;var ARROW_NAME$2="PopperArrow",OPPOSITE_SIDE={top:"bottom",right:"left",bottom:"top",left:"right"},PopperArrow=reactExports.forwardRef(function(e,o){const{__scopePopper:d,...I}=e,f=useContentContext(ARROW_NAME$2,d),S=OPPOSITE_SIDE[f.placedSide];return jsxRuntimeExports.jsx("span",{ref:f.onArrowChange,style:{position:"absolute",left:f.arrowX,top:f.arrowY,[S]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[f.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[f.placedSide],visibility:f.shouldHideArrow?"hidden":void 0},children:jsxRuntimeExports.jsx(Root,{...I,ref:o,style:{...I.style,display:"block"}})})});PopperArrow.displayName=ARROW_NAME$2;function isNotNull(n){return n!==null}var transformOrigin=n=>({name:"transformOrigin",options:n,fn(e){var he,ue,Ee;const{placement:o,rects:d,middlewareData:I}=e,S=((he=I.arrow)==null?void 0:he.centerOffset)!==0,v=S?0:n.arrowWidth,L=S?0:n.arrowHeight,[x,F]=getSideAndAlignFromPlacement(o),Y={start:"0%",center:"50%",end:"100%"}[F],j=(((ue=I.arrow)==null?void 0:ue.x)??0)+v/2,W=(((Ee=I.arrow)==null?void 0:Ee.y)??0)+L/2;let re="",ee="";return x==="bottom"?(re=S?Y:`${j}px`,ee=`${-L}px`):x==="top"?(re=S?Y:`${j}px`,ee=`${d.floating.height+L}px`):x==="right"?(re=`${-L}px`,ee=S?Y:`${W}px`):x==="left"&&(re=`${d.floating.width+L}px`,ee=S?Y:`${W}px`),{data:{x:re,y:ee}}}});function getSideAndAlignFromPlacement(n){const[e,o="center"]=n.split("-");return[e,o]}var Root2$1=Popper,Anchor=PopperAnchor,Content=PopperContent,Arrow=PopperArrow,PORTAL_NAME$3="Portal",Portal$1=reactExports.forwardRef((n,e)=>{var v;const{container:o,...d}=n,[I,f]=reactExports.useState(!1);useLayoutEffect2(()=>f(!0),[]);const S=o||I&&((v=globalThis==null?void 0:globalThis.document)==null?void 0:v.body);return S?reactDomExports.createPortal(jsxRuntimeExports.jsx(Primitive.div,{...d,ref:e}),S):null});Portal$1.displayName=PORTAL_NAME$3;function useStateMachine(n,e){return reactExports.useReducer((o,d)=>e[o][d]??o,n)}var Presence=n=>{const{present:e,children:o}=n,d=usePresence(e),I=typeof o=="function"?o({present:d.isPresent}):reactExports.Children.only(o),f=useStableComposedRefs(d.ref,getElementRef(I));return typeof o=="function"||d.isPresent?reactExports.cloneElement(I,{ref:f}):null};Presence.displayName="Presence";function usePresence(n){const[e,o]=reactExports.useState(),d=reactExports.useRef(null),I=reactExports.useRef(n),f=reactExports.useRef("none"),S=reactExports.useRef(void 0),v=n?"mounted":"unmounted",[L,x]=useStateMachine(v,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return reactExports.useEffect(()=>{L==="mounted"?(f.current=S.current??getAnimationName(d.current),S.current=void 0):f.current="none"},[L]),useLayoutEffect2(()=>{const F=d.current,Y=I.current;if(Y!==n){const W=f.current,re=getAnimationName(F);n?(S.current=re,x("MOUNT")):re==="none"||(F==null?void 0:F.display)==="none"?x("UNMOUNT"):x(Y&&W!==re?"ANIMATION_OUT":"UNMOUNT"),I.current=n}},[n,x]),useLayoutEffect2(()=>{if(e){let F;const Y=e.ownerDocument.defaultView??window,j=re=>{const he=getAnimationName(d.current).includes(CSS.escape(re.animationName));if(re.target===e&&he&&(x("ANIMATION_END"),!I.current)){const ue=e.style.animationFillMode;e.style.animationFillMode="forwards",F=Y.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=ue)})}},W=re=>{re.target===e&&(f.current=getAnimationName(d.current))};return e.addEventListener("animationstart",W),e.addEventListener("animationcancel",j),e.addEventListener("animationend",j),()=>{Y.clearTimeout(F),e.removeEventListener("animationstart",W),e.removeEventListener("animationcancel",j),e.removeEventListener("animationend",j)}}else x("ANIMATION_END")},[e,x]),{isPresent:["mounted","unmountSuspended"].includes(L),ref:reactExports.useCallback(F=>{if(F){const Y=getComputedStyle(F);d.current=Y,S.current=getAnimationName(Y)}else d.current=null;o(F)},[])}}function setRef(n,e){if(typeof n=="function")return n(e);n!=null&&(n.current=e)}function useStableComposedRefs(...n){const e=reactExports.useRef(n);return e.current=n,reactExports.useCallback(o=>{const d=e.current;let I=!1;const f=d.map(S=>{const v=setRef(S,o);return!I&&typeof v=="function"&&(I=!0),v});if(I)return()=>{for(let S=0;S"u")return null;var e=Array.isArray(n)?n[0]:n;return e.ownerDocument.body},counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={},lockCount=0,unwrapHost=function(n){return n&&(n.host||unwrapHost(n.parentNode))},correctTargets=function(n,e){return e.map(function(o){if(n.contains(o))return o;var d=unwrapHost(o);return d&&n.contains(d)?d:(console.error("aria-hidden",o,"in not contained inside",n,". Doing nothing"),null)}).filter(function(o){return!!o})},applyAttributeToOthers=function(n,e,o,d){var I=correctTargets(e,Array.isArray(n)?n:[n]);markerMap[o]||(markerMap[o]=new WeakMap);var f=markerMap[o],S=[],v=new Set,L=new Set(I),x=function(Y){!Y||v.has(Y)||(v.add(Y),x(Y.parentNode))};I.forEach(x);var F=function(Y){!Y||L.has(Y)||Array.prototype.forEach.call(Y.children,function(j){if(v.has(j))F(j);else try{var W=j.getAttribute(d),re=W!==null&&W!=="false",ee=(counterMap.get(j)||0)+1,he=(f.get(j)||0)+1;counterMap.set(j,ee),f.set(j,he),S.push(j),ee===1&&re&&uncontrolledNodes.set(j,!0),he===1&&j.setAttribute(o,"true"),re||j.setAttribute(d,"true")}catch(ue){console.error("aria-hidden: cannot operate on ",j,ue)}})};return F(e),v.clear(),lockCount++,function(){S.forEach(function(Y){var j=counterMap.get(Y)-1,W=f.get(Y)-1;counterMap.set(Y,j),f.set(Y,W),j||(uncontrolledNodes.has(Y)||Y.removeAttribute(d),uncontrolledNodes.delete(Y)),W||Y.removeAttribute(o)}),lockCount--,lockCount||(counterMap=new WeakMap,counterMap=new WeakMap,uncontrolledNodes=new WeakMap,markerMap={})}},hideOthers=function(n,e,o){o===void 0&&(o="data-aria-hidden");var d=Array.from(Array.isArray(n)?n:[n]),I=getDefaultParent(n);return I?(d.push.apply(d,Array.from(I.querySelectorAll("[aria-live], script"))),applyAttributeToOthers(d,I,o,"aria-hidden")):function(){return null}},__assign=function(){return __assign=Object.assign||function(e){for(var o,d=1,I=arguments.length;d"u")return zeroGap;var e=getOffset(n),o=document.documentElement.clientWidth,d=window.innerWidth;return{left:e[0],top:e[1],right:e[2],gap:Math.max(0,d-o+e[2]-e[0])}},Style=styleSingleton(),lockAttribute="data-scroll-locked",getStyles=function(n,e,o,d){var I=n.left,f=n.top,S=n.right,v=n.gap;return o===void 0&&(o="margin"),` - .`.concat(noScrollbarsClassName,` { - overflow: hidden `).concat(d,`; - padding-right: `).concat(v,"px ").concat(d,`; - } - body[`).concat(lockAttribute,`] { - overflow: hidden `).concat(d,`; - overscroll-behavior: contain; - `).concat([e&&"position: relative ".concat(d,";"),o==="margin"&&` - padding-left: `.concat(I,`px; - padding-top: `).concat(f,`px; - padding-right: `).concat(S,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(v,"px ").concat(d,`; - `),o==="padding"&&"padding-right: ".concat(v,"px ").concat(d,";")].filter(Boolean).join(""),` - } - - .`).concat(zeroRightClassName,` { - right: `).concat(v,"px ").concat(d,`; - } - - .`).concat(fullWidthClassName,` { - margin-right: `).concat(v,"px ").concat(d,`; - } - - .`).concat(zeroRightClassName," .").concat(zeroRightClassName,` { - right: 0 `).concat(d,`; - } - - .`).concat(fullWidthClassName," .").concat(fullWidthClassName,` { - margin-right: 0 `).concat(d,`; - } - - body[`).concat(lockAttribute,`] { - `).concat(removedBarSizeVariable,": ").concat(v,`px; - } -`)},getCurrentUseCounter=function(){var n=parseInt(document.body.getAttribute(lockAttribute)||"0",10);return isFinite(n)?n:0},useLockAttribute=function(){reactExports.useEffect(function(){return document.body.setAttribute(lockAttribute,(getCurrentUseCounter()+1).toString()),function(){var n=getCurrentUseCounter()-1;n<=0?document.body.removeAttribute(lockAttribute):document.body.setAttribute(lockAttribute,n.toString())}},[])},RemoveScrollBar=function(n){var e=n.noRelative,o=n.noImportant,d=n.gapMode,I=d===void 0?"margin":d;useLockAttribute();var f=reactExports.useMemo(function(){return getGapWidth(I)},[I]);return reactExports.createElement(Style,{styles:getStyles(f,!e,I,o?"":"!important")})},passiveSupported=!1;if(typeof window<"u")try{var options=Object.defineProperty({},"passive",{get:function(){return passiveSupported=!0,!0}});window.addEventListener("test",options,options),window.removeEventListener("test",options,options)}catch{passiveSupported=!1}var nonPassive=passiveSupported?{passive:!1}:!1,alwaysContainsScroll=function(n){return n.tagName==="TEXTAREA"},elementCanBeScrolled=function(n,e){if(!(n instanceof Element))return!1;var o=window.getComputedStyle(n);return o[e]!=="hidden"&&!(o.overflowY===o.overflowX&&!alwaysContainsScroll(n)&&o[e]==="visible")},elementCouldBeVScrolled=function(n){return elementCanBeScrolled(n,"overflowY")},elementCouldBeHScrolled=function(n){return elementCanBeScrolled(n,"overflowX")},locationCouldBeScrolled=function(n,e){var o=e.ownerDocument,d=e;do{typeof ShadowRoot<"u"&&d instanceof ShadowRoot&&(d=d.host);var I=elementCouldBeScrolled(n,d);if(I){var f=getScrollVariables(n,d),S=f[1],v=f[2];if(S>v)return!0}d=d.parentNode}while(d&&d!==o.body);return!1},getVScrollVariables=function(n){var e=n.scrollTop,o=n.scrollHeight,d=n.clientHeight;return[e,o,d]},getHScrollVariables=function(n){var e=n.scrollLeft,o=n.scrollWidth,d=n.clientWidth;return[e,o,d]},elementCouldBeScrolled=function(n,e){return n==="v"?elementCouldBeVScrolled(e):elementCouldBeHScrolled(e)},getScrollVariables=function(n,e){return n==="v"?getVScrollVariables(e):getHScrollVariables(e)},getDirectionFactor=function(n,e){return n==="h"&&e==="rtl"?-1:1},handleScroll=function(n,e,o,d,I){var f=getDirectionFactor(n,window.getComputedStyle(e).direction),S=f*d,v=o.target,L=e.contains(v),x=!1,F=S>0,Y=0,j=0;do{if(!v)break;var W=getScrollVariables(n,v),re=W[0],ee=W[1],he=W[2],ue=ee-he-f*re;(re||ue)&&elementCouldBeScrolled(n,v)&&(Y+=ue,j+=re);var Ee=v.parentNode;v=Ee&&Ee.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Ee.host:Ee}while(!L&&v!==document.body||L&&(e.contains(v)||e===v));return(F&&Math.abs(Y)<1||!F&&Math.abs(j)<1)&&(x=!0),x},getTouchXY=function(n){return"changedTouches"in n?[n.changedTouches[0].clientX,n.changedTouches[0].clientY]:[0,0]},getDeltaXY=function(n){return[n.deltaX,n.deltaY]},extractRef=function(n){return n&&"current"in n?n.current:n},deltaCompare=function(n,e){return n[0]===e[0]&&n[1]===e[1]},generateStyle=function(n){return` - .block-interactivity-`.concat(n,` {pointer-events: none;} - .allow-interactivity-`).concat(n,` {pointer-events: all;} -`)},idCounter=0,lockStack=[];function RemoveScrollSideCar(n){var e=reactExports.useRef([]),o=reactExports.useRef([0,0]),d=reactExports.useRef(),I=reactExports.useState(idCounter++)[0],f=reactExports.useState(styleSingleton)[0],S=reactExports.useRef(n);reactExports.useEffect(function(){S.current=n},[n]),reactExports.useEffect(function(){if(n.inert){document.body.classList.add("block-interactivity-".concat(I));var ee=__spreadArray([n.lockRef.current],(n.shards||[]).map(extractRef),!0).filter(Boolean);return ee.forEach(function(he){return he.classList.add("allow-interactivity-".concat(I))}),function(){document.body.classList.remove("block-interactivity-".concat(I)),ee.forEach(function(he){return he.classList.remove("allow-interactivity-".concat(I))})}}},[n.inert,n.lockRef.current,n.shards]);var v=reactExports.useCallback(function(ee,he){if("touches"in ee&&ee.touches.length===2||ee.type==="wheel"&&ee.ctrlKey)return!S.current.allowPinchZoom;var ue=getTouchXY(ee),Ee=o.current,_e="deltaX"in ee?ee.deltaX:Ee[0]-ue[0],De="deltaY"in ee?ee.deltaY:Ee[1]-ue[1],Fe,Ve=ee.target,Ge=Math.abs(_e)>Math.abs(De)?"h":"v";if("touches"in ee&&Ge==="h"&&Ve.type==="range")return!1;var He=window.getSelection(),At=He&&He.anchorNode,Bt=At?At===Ve||At.contains(Ve):!1;if(Bt)return!1;var Tt=locationCouldBeScrolled(Ge,Ve);if(!Tt)return!0;if(Tt?Fe=Ge:(Fe=Ge==="v"?"h":"v",Tt=locationCouldBeScrolled(Ge,Ve)),!Tt)return!1;if(!d.current&&"changedTouches"in ee&&(_e||De)&&(d.current=Fe),!Fe)return!0;var rt=d.current||Fe;return handleScroll(rt,he,ee,rt==="h"?_e:De)},[]),L=reactExports.useCallback(function(ee){var he=ee;if(!(!lockStack.length||lockStack[lockStack.length-1]!==f)){var ue="deltaY"in he?getDeltaXY(he):getTouchXY(he),Ee=e.current.filter(function(Fe){return Fe.name===he.type&&(Fe.target===he.target||he.target===Fe.shadowParent)&&deltaCompare(Fe.delta,ue)})[0];if(Ee&&Ee.should){he.cancelable&&he.preventDefault();return}if(!Ee){var _e=(S.current.shards||[]).map(extractRef).filter(Boolean).filter(function(Fe){return Fe.contains(he.target)}),De=_e.length>0?v(he,_e[0]):!S.current.noIsolation;De&&he.cancelable&&he.preventDefault()}}},[]),x=reactExports.useCallback(function(ee,he,ue,Ee){var _e={name:ee,delta:he,target:ue,should:Ee,shadowParent:getOutermostShadowParent(ue)};e.current.push(_e),setTimeout(function(){e.current=e.current.filter(function(De){return De!==_e})},1)},[]),F=reactExports.useCallback(function(ee){o.current=getTouchXY(ee),d.current=void 0},[]),Y=reactExports.useCallback(function(ee){x(ee.type,getDeltaXY(ee),ee.target,v(ee,n.lockRef.current))},[]),j=reactExports.useCallback(function(ee){x(ee.type,getTouchXY(ee),ee.target,v(ee,n.lockRef.current))},[]);reactExports.useEffect(function(){return lockStack.push(f),n.setCallbacks({onScrollCapture:Y,onWheelCapture:Y,onTouchMoveCapture:j}),document.addEventListener("wheel",L,nonPassive),document.addEventListener("touchmove",L,nonPassive),document.addEventListener("touchstart",F,nonPassive),function(){lockStack=lockStack.filter(function(ee){return ee!==f}),document.removeEventListener("wheel",L,nonPassive),document.removeEventListener("touchmove",L,nonPassive),document.removeEventListener("touchstart",F,nonPassive)}},[]);var W=n.removeScrollBar,re=n.inert;return reactExports.createElement(reactExports.Fragment,null,re?reactExports.createElement(f,{styles:generateStyle(I)}):null,W?reactExports.createElement(RemoveScrollBar,{noRelative:n.noRelative,gapMode:n.gapMode}):null)}function getOutermostShadowParent(n){for(var e=null;n!==null;)n instanceof ShadowRoot&&(e=n.host,n=n.host),n=n.parentNode;return e}const SideCar=exportSidecar(effectCar,RemoveScrollSideCar);var ReactRemoveScroll=reactExports.forwardRef(function(n,e){return reactExports.createElement(RemoveScroll,__assign({},n,{ref:e,sideCar:SideCar}))});ReactRemoveScroll.classNames=RemoveScroll.classNames;var Chip=reactExports.forwardRef(({children:n,...e},o)=>jsxRuntimeExports.jsx("div",{ref:o,className:"bg-card-layer-1 relative inline-flex items-center justify-center gap-2 rounded-full p-3",...e,children:n}));Chip.displayName="Chip";var agoraRTCPromise=null;function importAgoraRTC(){return agoraRTCPromise||(agoraRTCPromise=__vitePreload(()=>Promise.resolve().then(()=>agoraRtcReact),void 0).then(n=>n.default)),agoraRTCPromise}function useAudioDevices({enabled:n=!0}={}){const[e,o]=reactExports.useState([]),[d,I]=reactExports.useState(n),[f,S]=reactExports.useState(null),[v,L]=reactExports.useState(!1),x=reactExports.useRef(null),F=reactExports.useCallback(async()=>{if(!(!n||typeof window>"u"))try{I(!0),S(null);const Y=await importAgoraRTC();x.current=Y;const W=(await Y.getMicrophones()).map(re=>{let ee=re.label||`Microphone ${re.deviceId.slice(0,8)}`;return ee=ee.replace(/\s*\([^)]*\)/g,"").trim(),{deviceId:re.deviceId,label:ee,groupId:re.groupId}});o(W),L(!0)}catch(Y){S(Y instanceof Error?Y.message:"Failed to get audio devices")}finally{I(!1)}},[n]);return reactExports.useEffect(()=>{if(!n){o([]),I(!1),S(null),L(!1);return}F()},[n,F]),reactExports.useEffect(()=>{if(!n||typeof window>"u")return;let Y=!0,j=()=>{};return importAgoraRTC().then(W=>{if(!Y)return;const re=()=>{F()};W.on("microphone-changed",re),j=()=>{W.off("microphone-changed",re)}}),()=>{Y=!1,j()}},[n,F]),{devices:e,loading:d,error:f,hasPermission:v,loadDevices:F}}var PREFIX="[agora-agent-uikit]",isVerbose=()=>typeof window<"u"&&!!window.__AGORA_UIKIT_DEBUG__,debug={log:(...n)=>{isVerbose()&&console.debug(PREFIX,...n)},warn:(...n)=>{console.warn(PREFIX,...n)},error:(...n)=>{console.error(PREFIX,...n)}},POPOVER_NAME="Popover",[createPopoverContext]=createContextScope(POPOVER_NAME,[createPopperScope]),usePopperScope$1=createPopperScope(),[PopoverProvider,usePopoverContext]=createPopoverContext(POPOVER_NAME),Popover$1=n=>{const{__scopePopover:e,children:o,open:d,defaultOpen:I,onOpenChange:f,modal:S=!1}=n,v=usePopperScope$1(e),L=reactExports.useRef(null),[x,F]=reactExports.useState(!1),[Y,j]=useControllableState({prop:d,defaultProp:I??!1,onChange:f,caller:POPOVER_NAME});return jsxRuntimeExports.jsx(Root2$1,{...v,children:jsxRuntimeExports.jsx(PopoverProvider,{scope:e,contentId:useId(),triggerRef:L,open:Y,onOpenChange:j,onOpenToggle:reactExports.useCallback(()=>j(W=>!W),[j]),hasCustomAnchor:x,onCustomAnchorAdd:reactExports.useCallback(()=>F(!0),[]),onCustomAnchorRemove:reactExports.useCallback(()=>F(!1),[]),modal:S,children:o})})};Popover$1.displayName=POPOVER_NAME;var ANCHOR_NAME="PopoverAnchor",PopoverAnchor=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopoverContext(ANCHOR_NAME,o),f=usePopperScope$1(o),{onCustomAnchorAdd:S,onCustomAnchorRemove:v}=I;return reactExports.useEffect(()=>(S(),()=>v()),[S,v]),jsxRuntimeExports.jsx(Anchor,{...f,...d,ref:e})});PopoverAnchor.displayName=ANCHOR_NAME;var TRIGGER_NAME$3="PopoverTrigger",PopoverTrigger$1=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopoverContext(TRIGGER_NAME$3,o),f=usePopperScope$1(o),S=useComposedRefs(e,I.triggerRef),v=jsxRuntimeExports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":I.open,"aria-controls":I.open?I.contentId:void 0,"data-state":getState$2(I.open),...d,ref:S,onClick:composeEventHandlers(n.onClick,I.onOpenToggle)});return I.hasCustomAnchor?v:jsxRuntimeExports.jsx(Anchor,{asChild:!0,...f,children:v})});PopoverTrigger$1.displayName=TRIGGER_NAME$3;var PORTAL_NAME$2="PopoverPortal",[PortalProvider$2,usePortalContext$2]=createPopoverContext(PORTAL_NAME$2,{forceMount:void 0}),PopoverPortal=n=>{const{__scopePopover:e,forceMount:o,children:d,container:I}=n,f=usePopoverContext(PORTAL_NAME$2,e);return jsxRuntimeExports.jsx(PortalProvider$2,{scope:e,forceMount:o,children:jsxRuntimeExports.jsx(Presence,{present:o||f.open,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,container:I,children:d})})})};PopoverPortal.displayName=PORTAL_NAME$2;var CONTENT_NAME$2="PopoverContent",PopoverContent$1=reactExports.forwardRef((n,e)=>{const o=usePortalContext$2(CONTENT_NAME$2,n.__scopePopover),{forceMount:d=o.forceMount,...I}=n,f=usePopoverContext(CONTENT_NAME$2,n.__scopePopover);return jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:f.modal?jsxRuntimeExports.jsx(PopoverContentModal,{...I,ref:e}):jsxRuntimeExports.jsx(PopoverContentNonModal,{...I,ref:e})})});PopoverContent$1.displayName=CONTENT_NAME$2;var Slot$2=createSlot("PopoverContent.RemoveScroll"),PopoverContentModal=reactExports.forwardRef((n,e)=>{const o=usePopoverContext(CONTENT_NAME$2,n.__scopePopover),d=reactExports.useRef(null),I=useComposedRefs(e,d),f=reactExports.useRef(!1);return reactExports.useEffect(()=>{const S=d.current;if(S)return hideOthers(S)},[]),jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot$2,allowPinchZoom:!0,children:jsxRuntimeExports.jsx(PopoverContentImpl,{...n,ref:I,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:composeEventHandlers(n.onCloseAutoFocus,S=>{var v;S.preventDefault(),f.current||(v=o.triggerRef.current)==null||v.focus()}),onPointerDownOutside:composeEventHandlers(n.onPointerDownOutside,S=>{const v=S.detail.originalEvent,L=v.button===0&&v.ctrlKey===!0,x=v.button===2||L;f.current=x},{checkForDefaultPrevented:!1}),onFocusOutside:composeEventHandlers(n.onFocusOutside,S=>S.preventDefault(),{checkForDefaultPrevented:!1})})})}),PopoverContentNonModal=reactExports.forwardRef((n,e)=>{const o=usePopoverContext(CONTENT_NAME$2,n.__scopePopover),d=reactExports.useRef(!1),I=reactExports.useRef(!1);return jsxRuntimeExports.jsx(PopoverContentImpl,{...n,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:f=>{var S,v;(S=n.onCloseAutoFocus)==null||S.call(n,f),f.defaultPrevented||(d.current||(v=o.triggerRef.current)==null||v.focus(),f.preventDefault()),d.current=!1,I.current=!1},onInteractOutside:f=>{var L,x;(L=n.onInteractOutside)==null||L.call(n,f),f.defaultPrevented||(d.current=!0,f.detail.originalEvent.type==="pointerdown"&&(I.current=!0));const S=f.target;((x=o.triggerRef.current)==null?void 0:x.contains(S))&&f.preventDefault(),f.detail.originalEvent.type==="focusin"&&I.current&&f.preventDefault()}})}),PopoverContentImpl=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,trapFocus:d,onOpenAutoFocus:I,onCloseAutoFocus:f,disableOutsidePointerEvents:S,onEscapeKeyDown:v,onPointerDownOutside:L,onFocusOutside:x,onInteractOutside:F,...Y}=n,j=usePopoverContext(CONTENT_NAME$2,o),W=usePopperScope$1(o);return useFocusGuards(),jsxRuntimeExports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:I,onUnmountAutoFocus:f,children:jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:S,onInteractOutside:F,onEscapeKeyDown:v,onPointerDownOutside:L,onFocusOutside:x,onDismiss:()=>j.onOpenChange(!1),deferPointerDownOutside:!0,children:jsxRuntimeExports.jsx(Content,{"data-state":getState$2(j.open),role:"dialog",id:j.contentId,...W,...Y,ref:e,style:{...Y.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),CLOSE_NAME$1="PopoverClose",PopoverClose=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopoverContext(CLOSE_NAME$1,o);return jsxRuntimeExports.jsx(Primitive.button,{type:"button",...d,ref:e,onClick:composeEventHandlers(n.onClick,()=>I.onOpenChange(!1))})});PopoverClose.displayName=CLOSE_NAME$1;var ARROW_NAME$1="PopoverArrow",PopoverArrow=reactExports.forwardRef((n,e)=>{const{__scopePopover:o,...d}=n,I=usePopperScope$1(o);return jsxRuntimeExports.jsx(Arrow,{...I,...d,ref:e})});PopoverArrow.displayName=ARROW_NAME$1;function getState$2(n){return n?"open":"closed"}var Root2=Popover$1,Trigger=PopoverTrigger$1,Portal=PopoverPortal,Content2=PopoverContent$1;function clamp(n,[e,o]){return Math.min(o,Math.max(e,n))}function usePrevious(n){const e=reactExports.useRef({value:n,previous:n});return reactExports.useMemo(()=>(e.current.value!==n&&(e.current.previous=e.current.value,e.current.value=n),e.current.previous),[n])}var VISUALLY_HIDDEN_STYLES=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),NAME="VisuallyHidden",VisuallyHidden=reactExports.forwardRef((n,e)=>jsxRuntimeExports.jsx(Primitive.span,{...n,ref:e,style:{...VISUALLY_HIDDEN_STYLES,...n.style}}));VisuallyHidden.displayName=NAME;var OPEN_KEYS=[" ","Enter","ArrowUp","ArrowDown"],SELECTION_KEYS=[" ","Enter"],SELECT_NAME="Select",[Collection,useCollection,createCollectionScope]=createCollection(SELECT_NAME),[createSelectContext]=createContextScope(SELECT_NAME,[createCollectionScope,createPopperScope]),usePopperScope=createPopperScope(),[SelectProviderImpl,useSelectContext]=createSelectContext(SELECT_NAME),[SelectNativeOptionsProvider,useSelectNativeOptionsContext]=createSelectContext(SELECT_NAME),PROVIDER_NAME="SelectProvider";function SelectProvider(n){const{__scopeSelect:e,children:o,open:d,defaultOpen:I,onOpenChange:f,value:S,defaultValue:v,onValueChange:L,dir:x,name:F,autoComplete:Y,disabled:j,required:W,form:re,internal_do_not_use_render:ee}=n,he=usePopperScope(e),[ue,Ee]=reactExports.useState(null),[_e,De]=reactExports.useState(null),[Fe,Ve]=reactExports.useState(!1),Ge=useDirection(x),[He,At]=useControllableState({prop:d,defaultProp:I??!1,onChange:f,caller:SELECT_NAME}),[Bt,Tt]=useControllableState({prop:S,defaultProp:v,onChange:L,caller:SELECT_NAME}),rt=reactExports.useRef(null),ye=reactExports.useRef(Bt);reactExports.useEffect(()=>{const ai=re?ue==null?void 0:ue.ownerDocument.getElementById(re):ue==null?void 0:ue.form;if(ai instanceof HTMLFormElement){const pi=()=>Tt(ye.current);return ai.addEventListener("reset",pi),()=>ai.removeEventListener("reset",pi)}},[re,ue,Tt]);const lt=ue?!!re||!!ue.closest("form"):!0,[Yt,ct]=reactExports.useState(new Set),ht=useId(),vt=Array.from(Yt).map(ai=>ai.props.value).join(";"),ar=reactExports.useCallback(ai=>{ct(pi=>new Set(pi).add(ai))},[]),jt=reactExports.useCallback(ai=>{ct(pi=>{const yi=new Set(pi);return yi.delete(ai),yi})},[]),vr={required:W,trigger:ue,onTriggerChange:Ee,valueNode:_e,onValueNodeChange:De,valueNodeHasChildren:Fe,onValueNodeHasChildrenChange:Ve,contentId:ht,value:Bt,onValueChange:Tt,open:He,onOpenChange:At,dir:Ge,triggerPointerDownPosRef:rt,disabled:j,name:F,autoComplete:Y,form:re,nativeOptions:Yt,nativeSelectKey:vt,isFormControl:lt};return jsxRuntimeExports.jsx(Root2$1,{...he,children:jsxRuntimeExports.jsx(SelectProviderImpl,{scope:e,...vr,children:jsxRuntimeExports.jsx(Collection.Provider,{scope:e,children:jsxRuntimeExports.jsx(SelectNativeOptionsProvider,{scope:e,onNativeOptionAdd:ar,onNativeOptionRemove:jt,children:isFunction$1(ee)?ee(vr):o})})})})}SelectProvider.displayName=PROVIDER_NAME;var Select=n=>{const{__scopeSelect:e,children:o,...d}=n;return jsxRuntimeExports.jsx(SelectProvider,{__scopeSelect:e,...d,internal_do_not_use_render:({isFormControl:I})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[o,I?jsxRuntimeExports.jsx(SelectBubbleInput,{__scopeSelect:e}):null]})})};Select.displayName=SELECT_NAME;var TRIGGER_NAME$2="SelectTrigger",SelectTrigger=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,disabled:d=!1,...I}=n,f=usePopperScope(o),S=useSelectContext(TRIGGER_NAME$2,o),v=S.disabled||d,L=useComposedRefs(e,S.onTriggerChange),x=useCollection(o),F=reactExports.useRef("touch"),[Y,j,W]=useTypeaheadSearch(ee=>{const he=x().filter(_e=>!_e.disabled),ue=he.find(_e=>_e.value===S.value),Ee=findNextItem(he,ee,ue);Ee!==void 0&&S.onValueChange(Ee.value)}),re=ee=>{v||(S.onOpenChange(!0),W()),ee&&(S.triggerPointerDownPosRef.current={x:Math.round(ee.pageX),y:Math.round(ee.pageY)})};return jsxRuntimeExports.jsx(Anchor,{asChild:!0,...f,children:jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"combobox","aria-controls":S.open?S.contentId:void 0,"aria-expanded":S.open,"aria-required":S.required,"aria-autocomplete":"none",dir:S.dir,"data-state":S.open?"open":"closed",disabled:v,"data-disabled":v?"":void 0,"data-placeholder":shouldShowPlaceholder(S.value)?"":void 0,...I,ref:L,onClick:composeEventHandlers(I.onClick,ee=>{ee.currentTarget.focus(),F.current!=="mouse"&&re(ee)}),onPointerDown:composeEventHandlers(I.onPointerDown,ee=>{F.current=ee.pointerType;const he=ee.target;he.hasPointerCapture(ee.pointerId)&&he.releasePointerCapture(ee.pointerId),ee.button===0&&ee.ctrlKey===!1&&ee.pointerType==="mouse"&&(re(ee),ee.preventDefault())}),onKeyDown:composeEventHandlers(I.onKeyDown,ee=>{const he=Y.current!=="";!(ee.ctrlKey||ee.altKey||ee.metaKey)&&ee.key.length===1&&j(ee.key),!(he&&ee.key===" ")&&OPEN_KEYS.includes(ee.key)&&(re(),ee.preventDefault())})})})});SelectTrigger.displayName=TRIGGER_NAME$2;var VALUE_NAME="SelectValue",SelectValue=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,className:d,style:I,children:f,placeholder:S="",...v}=n,L=useSelectContext(VALUE_NAME,o),{onValueNodeHasChildrenChange:x}=L,F=f!==void 0,Y=useComposedRefs(e,L.onValueNodeChange);useLayoutEffect2(()=>{x(F)},[x,F]);const j=shouldShowPlaceholder(L.value);return jsxRuntimeExports.jsx(Primitive.span,{...v,asChild:j?!1:v.asChild,ref:Y,style:{pointerEvents:"none"},children:jsxRuntimeExports.jsx(reactExports.Fragment,{children:j?S:f},j?"placeholder":"value")})});SelectValue.displayName=VALUE_NAME;var ICON_NAME="SelectIcon",SelectIcon=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,children:d,...I}=n;return jsxRuntimeExports.jsx(Primitive.span,{"aria-hidden":!0,...I,ref:e,children:d||"▼"})});SelectIcon.displayName=ICON_NAME;var PORTAL_NAME$1="SelectPortal",[PortalProvider$1,usePortalContext$1]=createSelectContext(PORTAL_NAME$1,{forceMount:void 0}),SelectPortal=n=>{const{__scopeSelect:e,forceMount:o,...d}=n;return jsxRuntimeExports.jsx(PortalProvider$1,{scope:n.__scopeSelect,forceMount:o,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,...d})})};SelectPortal.displayName=PORTAL_NAME$1;var CONTENT_NAME$1="SelectContent",SelectContent=reactExports.forwardRef((n,e)=>{const o=usePortalContext$1(CONTENT_NAME$1,n.__scopeSelect),{forceMount:d=o.forceMount,...I}=n,f=useSelectContext(CONTENT_NAME$1,n.__scopeSelect),[S,v]=reactExports.useState();return useLayoutEffect2(()=>{v(new DocumentFragment)},[]),jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:({present:L})=>L?jsxRuntimeExports.jsx(SelectContentImpl,{...I,ref:e}):jsxRuntimeExports.jsx(SelectContentFragment,{...I,fragment:S})})});SelectContent.displayName=CONTENT_NAME$1;var SelectContentFragment=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,children:d,fragment:I}=n;return I?reactDomExports.createPortal(jsxRuntimeExports.jsx(SelectContentProvider,{scope:o,children:jsxRuntimeExports.jsx(Collection.Slot,{scope:o,children:jsxRuntimeExports.jsx("div",{ref:e,children:d})})}),I):null});SelectContentFragment.displayName="SelectContentFragment";var CONTENT_MARGIN=10,[SelectContentProvider,useSelectContentContext]=createSelectContext(CONTENT_NAME$1),CONTENT_IMPL_NAME="SelectContentImpl",Slot$1=createSlot("SelectContent.RemoveScroll"),SelectContentImpl=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o}=n,{position:d="item-aligned",onCloseAutoFocus:I,onEscapeKeyDown:f,onPointerDownOutside:S,side:v,sideOffset:L,align:x,alignOffset:F,arrowPadding:Y,collisionBoundary:j,collisionPadding:W,sticky:re,hideWhenDetached:ee,avoidCollisions:he,...ue}=n,Ee=useSelectContext(CONTENT_NAME$1,o),[_e,De]=reactExports.useState(null),[Fe,Ve]=reactExports.useState(null),Ge=useComposedRefs(e,De),[He,At]=reactExports.useState(null),[Bt,Tt]=reactExports.useState(null),rt=useCollection(o),[ye,lt]=reactExports.useState(!1),Yt=reactExports.useRef(!1);reactExports.useEffect(()=>{if(_e)return hideOthers(_e)},[_e]),useFocusGuards();const ct=reactExports.useCallback(xr=>{const[pr,...ei]=rt().map(oi=>oi.ref.current),[_i]=ei.slice(-1),Gr=document.activeElement;for(const oi of xr)if(oi===Gr||(oi==null||oi.scrollIntoView({block:"nearest"}),oi===pr&&Fe&&(Fe.scrollTop=0),oi===_i&&Fe&&(Fe.scrollTop=Fe.scrollHeight),oi==null||oi.focus(),document.activeElement!==Gr))return},[rt,Fe]),ht=reactExports.useCallback(()=>ct([He,_e]),[ct,He,_e]);reactExports.useEffect(()=>{ye&&ht()},[ye,ht]);const{onOpenChange:vt,triggerPointerDownPosRef:ar}=Ee;reactExports.useEffect(()=>{if(_e){let xr={x:0,y:0};const pr=_i=>{var Gr,oi;xr={x:Math.abs(Math.round(_i.pageX)-(((Gr=ar.current)==null?void 0:Gr.x)??0)),y:Math.abs(Math.round(_i.pageY)-(((oi=ar.current)==null?void 0:oi.y)??0))}},ei=_i=>{xr.x<=10&&xr.y<=10?_i.preventDefault():_i.composedPath().includes(_e)||vt(!1),document.removeEventListener("pointermove",pr),ar.current=null};return ar.current!==null&&(document.addEventListener("pointermove",pr),document.addEventListener("pointerup",ei,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",pr),document.removeEventListener("pointerup",ei,{capture:!0})}}},[_e,vt,ar]),reactExports.useEffect(()=>{const xr=()=>vt(!1);return window.addEventListener("blur",xr),window.addEventListener("resize",xr),()=>{window.removeEventListener("blur",xr),window.removeEventListener("resize",xr)}},[vt]);const[jt,vr]=useTypeaheadSearch(xr=>{const pr=rt().filter(Gr=>!Gr.disabled),ei=pr.find(Gr=>Gr.ref.current===document.activeElement),_i=findNextItem(pr,xr,ei);_i&&setTimeout(()=>{var Gr;return(Gr=_i.ref.current)==null?void 0:Gr.focus()})}),ai=reactExports.useCallback((xr,pr,ei)=>{const _i=!Yt.current&&!ei;(Ee.value!==void 0&&Ee.value===pr||_i)&&(At(xr),_i&&(Yt.current=!0))},[Ee.value]),pi=reactExports.useCallback(()=>_e==null?void 0:_e.focus(),[_e]),yi=reactExports.useCallback((xr,pr,ei)=>{const _i=!Yt.current&&!ei;(Ee.value!==void 0&&Ee.value===pr||_i)&&Tt(xr)},[Ee.value]),fi=d==="popper"?SelectPopperPosition:SelectItemAlignedPosition,Jn=fi===SelectPopperPosition?{side:v,sideOffset:L,align:x,alignOffset:F,arrowPadding:Y,collisionBoundary:j,collisionPadding:W,sticky:re,hideWhenDetached:ee,avoidCollisions:he}:{};return jsxRuntimeExports.jsx(SelectContentProvider,{scope:o,content:_e,viewport:Fe,onViewportChange:Ve,itemRefCallback:ai,selectedItem:He,onItemLeave:pi,itemTextRefCallback:yi,focusSelectedItem:ht,selectedItemText:Bt,position:d,isPositioned:ye,searchRef:jt,children:jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot$1,allowPinchZoom:!0,children:jsxRuntimeExports.jsx(FocusScope,{asChild:!0,trapped:Ee.open,onMountAutoFocus:xr=>{xr.preventDefault()},onUnmountAutoFocus:composeEventHandlers(I,xr=>{var pr;(pr=Ee.trigger)==null||pr.focus({preventScroll:!0}),xr.preventDefault()}),children:jsxRuntimeExports.jsx(DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:f,onPointerDownOutside:S,onFocusOutside:xr=>xr.preventDefault(),onDismiss:()=>Ee.onOpenChange(!1),children:jsxRuntimeExports.jsx(fi,{role:"listbox",id:Ee.contentId,"data-state":Ee.open?"open":"closed",dir:Ee.dir,onContextMenu:xr=>xr.preventDefault(),...ue,...Jn,onPlaced:()=>lt(!0),ref:Ge,style:{display:"flex",flexDirection:"column",outline:"none",...ue.style},onKeyDown:composeEventHandlers(ue.onKeyDown,xr=>{const pr=xr.ctrlKey||xr.altKey||xr.metaKey;if(xr.key==="Tab"&&xr.preventDefault(),!pr&&xr.key.length===1&&vr(xr.key),["ArrowUp","ArrowDown","Home","End"].includes(xr.key)){let _i=rt().filter(Gr=>!Gr.disabled).map(Gr=>Gr.ref.current);if(["ArrowUp","End"].includes(xr.key)&&(_i=_i.slice().reverse()),["ArrowUp","ArrowDown"].includes(xr.key)){const Gr=xr.target,oi=_i.indexOf(Gr);_i=_i.slice(oi+1)}setTimeout(()=>ct(_i)),xr.preventDefault()}})})})})})})});SelectContentImpl.displayName=CONTENT_IMPL_NAME;var ITEM_ALIGNED_POSITION_NAME="SelectItemAlignedPosition",SelectItemAlignedPosition=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,onPlaced:d,...I}=n,f=useSelectContext(CONTENT_NAME$1,o),S=useSelectContentContext(CONTENT_NAME$1,o),[v,L]=reactExports.useState(null),[x,F]=reactExports.useState(null),Y=useComposedRefs(e,F),j=useCollection(o),W=reactExports.useRef(!1),re=reactExports.useRef(!0),{viewport:ee,selectedItem:he,selectedItemText:ue,focusSelectedItem:Ee}=S,_e=reactExports.useCallback(()=>{if(f.trigger&&f.valueNode&&v&&x&&ee&&he&&ue){const Ge=f.trigger.getBoundingClientRect(),He=x.getBoundingClientRect(),At=f.valueNode.getBoundingClientRect(),Bt=ue.getBoundingClientRect();if(f.dir!=="rtl"){const Gr=Bt.left-He.left,oi=At.left-Gr,Oi=Ge.left-oi,_o=Ge.width+Oi,$n=Math.max(_o,He.width),gs=window.innerWidth-CONTENT_MARGIN,Bs=clamp(oi,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,gs-$n)]);v.style.minWidth=_o+"px",v.style.left=Bs+"px"}else{const Gr=He.right-Bt.right,oi=window.innerWidth-At.right-Gr,Oi=window.innerWidth-Ge.right-oi,_o=Ge.width+Oi,$n=Math.max(_o,He.width),gs=window.innerWidth-CONTENT_MARGIN,Bs=clamp(oi,[CONTENT_MARGIN,Math.max(CONTENT_MARGIN,gs-$n)]);v.style.minWidth=_o+"px",v.style.right=Bs+"px"}const Tt=j(),rt=window.innerHeight-CONTENT_MARGIN*2,ye=ee.scrollHeight,lt=window.getComputedStyle(x),Yt=parseInt(lt.borderTopWidth,10),ct=parseInt(lt.paddingTop,10),ht=parseInt(lt.borderBottomWidth,10),vt=parseInt(lt.paddingBottom,10),ar=Yt+ct+ye+vt+ht,jt=Math.min(he.offsetHeight*5,ar),vr=window.getComputedStyle(ee),ai=parseInt(vr.paddingTop,10),pi=parseInt(vr.paddingBottom,10),yi=Ge.top+Ge.height/2-CONTENT_MARGIN,fi=rt-yi,Jn=he.offsetHeight/2,xr=he.offsetTop+Jn,pr=Yt+ct+xr,ei=ar-pr;if(pr<=yi){const Gr=Tt.length>0&&he===Tt[Tt.length-1].ref.current;v.style.bottom="0px";const oi=x.clientHeight-ee.offsetTop-ee.offsetHeight,Oi=Math.max(fi,Jn+(Gr?pi:0)+oi+ht),_o=pr+Oi;v.style.height=_o+"px"}else{const Gr=Tt.length>0&&he===Tt[0].ref.current;v.style.top="0px";const Oi=Math.max(yi,Yt+ee.offsetTop+(Gr?ai:0)+Jn)+ei;v.style.height=Oi+"px",ee.scrollTop=pr-yi+ee.offsetTop}v.style.margin=`${CONTENT_MARGIN}px 0`,v.style.minHeight=jt+"px",v.style.maxHeight=rt+"px",d==null||d(),requestAnimationFrame(()=>W.current=!0)}},[j,f.trigger,f.valueNode,v,x,ee,he,ue,f.dir,d]);useLayoutEffect2(()=>_e(),[_e]);const[De,Fe]=reactExports.useState();useLayoutEffect2(()=>{x&&Fe(window.getComputedStyle(x).zIndex)},[x]);const Ve=reactExports.useCallback(Ge=>{Ge&&re.current===!0&&(_e(),Ee==null||Ee(),re.current=!1)},[_e,Ee]);return jsxRuntimeExports.jsx(SelectViewportProvider,{scope:o,contentWrapper:v,shouldExpandOnScrollRef:W,onScrollButtonChange:Ve,children:jsxRuntimeExports.jsx("div",{ref:L,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:De},children:jsxRuntimeExports.jsx(Primitive.div,{...I,ref:Y,style:{boxSizing:"border-box",maxHeight:"100%",...I.style}})})})});SelectItemAlignedPosition.displayName=ITEM_ALIGNED_POSITION_NAME;var POPPER_POSITION_NAME="SelectPopperPosition",SelectPopperPosition=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,align:d="start",collisionPadding:I=CONTENT_MARGIN,...f}=n,S=usePopperScope(o);return jsxRuntimeExports.jsx(Content,{...S,...f,ref:e,align:d,collisionPadding:I,style:{boxSizing:"border-box",...f.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});SelectPopperPosition.displayName=POPPER_POSITION_NAME;var[SelectViewportProvider,useSelectViewportContext]=createSelectContext(CONTENT_NAME$1,{}),VIEWPORT_NAME="SelectViewport",SelectViewport=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,nonce:d,...I}=n,f=useSelectContentContext(VIEWPORT_NAME,o),S=useSelectViewportContext(VIEWPORT_NAME,o),v=useComposedRefs(e,f.onViewportChange),L=reactExports.useRef(0);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:d}),jsxRuntimeExports.jsx(Collection.Slot,{scope:o,children:jsxRuntimeExports.jsx(Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...I,ref:v,style:{position:"relative",flex:1,overflow:"hidden auto",...I.style},onScroll:composeEventHandlers(I.onScroll,x=>{const F=x.currentTarget,{contentWrapper:Y,shouldExpandOnScrollRef:j}=S;if(j!=null&&j.current&&Y){const W=Math.abs(L.current-F.scrollTop);if(W>0){const re=window.innerHeight-CONTENT_MARGIN*2,ee=parseFloat(Y.style.minHeight),he=parseFloat(Y.style.height),ue=Math.max(ee,he);if(ue0?De:0,Y.style.justifyContent="flex-end")}}}L.current=F.scrollTop})})})]})});SelectViewport.displayName=VIEWPORT_NAME;var GROUP_NAME="SelectGroup",[SelectGroupContextProvider,useSelectGroupContext]=createSelectContext(GROUP_NAME),SelectGroup=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n,I=useId();return jsxRuntimeExports.jsx(SelectGroupContextProvider,{scope:o,id:I,children:jsxRuntimeExports.jsx(Primitive.div,{role:"group","aria-labelledby":I,...d,ref:e})})});SelectGroup.displayName=GROUP_NAME;var LABEL_NAME="SelectLabel",SelectLabel=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n,I=useSelectGroupContext(LABEL_NAME,o);return jsxRuntimeExports.jsx(Primitive.div,{id:I.id,...d,ref:e})});SelectLabel.displayName=LABEL_NAME;var ITEM_NAME="SelectItem",[SelectItemContextProvider,useSelectItemContext]=createSelectContext(ITEM_NAME),SelectItem=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,value:d,disabled:I=!1,textValue:f,...S}=n,v=useSelectContext(ITEM_NAME,o),L=useSelectContentContext(ITEM_NAME,o),x=v.value===d,[F,Y]=reactExports.useState(f??""),[j,W]=reactExports.useState(!1),re=useCallbackRef$1(_e=>{var De;return(De=L.itemRefCallback)==null?void 0:De.call(L,_e,d,I)}),ee=useComposedRefs(e,re),he=useId(),ue=reactExports.useRef("touch"),Ee=()=>{I||(v.onValueChange(d),v.onOpenChange(!1))};return jsxRuntimeExports.jsx(SelectItemContextProvider,{scope:o,value:d,disabled:I,textId:he,isSelected:x,onItemTextChange:reactExports.useCallback(_e=>{Y(De=>De||((_e==null?void 0:_e.textContent)??"").trim())},[]),children:jsxRuntimeExports.jsx(Collection.ItemSlot,{scope:o,value:d,disabled:I,textValue:F,children:jsxRuntimeExports.jsx(Primitive.div,{role:"option","aria-labelledby":he,"data-highlighted":j?"":void 0,"aria-selected":x&&j,"data-state":x?"checked":"unchecked","aria-disabled":I||void 0,"data-disabled":I?"":void 0,tabIndex:I?void 0:-1,...S,ref:ee,onFocus:composeEventHandlers(S.onFocus,()=>W(!0)),onBlur:composeEventHandlers(S.onBlur,()=>W(!1)),onClick:composeEventHandlers(S.onClick,()=>{ue.current!=="mouse"&&Ee()}),onPointerUp:composeEventHandlers(S.onPointerUp,()=>{ue.current==="mouse"&&Ee()}),onPointerDown:composeEventHandlers(S.onPointerDown,_e=>{ue.current=_e.pointerType}),onPointerMove:composeEventHandlers(S.onPointerMove,_e=>{var De;ue.current=_e.pointerType,I?(De=L.onItemLeave)==null||De.call(L):ue.current==="mouse"&&_e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:composeEventHandlers(S.onPointerLeave,_e=>{var De;_e.currentTarget===document.activeElement&&((De=L.onItemLeave)==null||De.call(L))}),onKeyDown:composeEventHandlers(S.onKeyDown,_e=>{var Fe;I||_e.target!==_e.currentTarget||((Fe=L.searchRef)==null?void 0:Fe.current)!==""&&_e.key===" "||(SELECTION_KEYS.includes(_e.key)&&Ee(),_e.key===" "&&_e.preventDefault())})})})})});SelectItem.displayName=ITEM_NAME;var ITEM_TEXT_NAME="SelectItemText",SelectItemText=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,className:d,style:I,...f}=n,S=useSelectContext(ITEM_TEXT_NAME,o),v=useSelectContentContext(ITEM_TEXT_NAME,o),L=useSelectItemContext(ITEM_TEXT_NAME,o),x=useSelectNativeOptionsContext(ITEM_TEXT_NAME,o),[F,Y]=reactExports.useState(null),j=useCallbackRef$1(Ee=>{var _e;return(_e=v.itemTextRefCallback)==null?void 0:_e.call(v,Ee,L.value,L.disabled)}),W=useComposedRefs(e,Y,L.onItemTextChange,j),re=F==null?void 0:F.textContent,ee=reactExports.useMemo(()=>jsxRuntimeExports.jsx("option",{value:L.value,disabled:L.disabled,children:re},L.value),[L.disabled,L.value,re]),{onNativeOptionAdd:he,onNativeOptionRemove:ue}=x;return useLayoutEffect2(()=>(he(ee),()=>ue(ee)),[he,ue,ee]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Primitive.span,{id:L.textId,...f,ref:W}),L.isSelected&&S.valueNode&&!S.valueNodeHasChildren&&!shouldShowPlaceholder(S.value)?reactDomExports.createPortal(f.children,S.valueNode):null]})});SelectItemText.displayName=ITEM_TEXT_NAME;var ITEM_INDICATOR_NAME="SelectItemIndicator",SelectItemIndicator=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n;return useSelectItemContext(ITEM_INDICATOR_NAME,o).isSelected?jsxRuntimeExports.jsx(Primitive.span,{"aria-hidden":!0,...d,ref:e}):null});SelectItemIndicator.displayName=ITEM_INDICATOR_NAME;var SCROLL_UP_BUTTON_NAME="SelectScrollUpButton",SelectScrollUpButton=reactExports.forwardRef((n,e)=>{const o=useSelectContentContext(SCROLL_UP_BUTTON_NAME,n.__scopeSelect),d=useSelectViewportContext(SCROLL_UP_BUTTON_NAME,n.__scopeSelect),[I,f]=reactExports.useState(!1),S=useComposedRefs(e,d.onScrollButtonChange);return useLayoutEffect2(()=>{if(o.viewport&&o.isPositioned){let v=function(){const x=L.scrollTop>0;f(x)};const L=o.viewport;return v(),L.addEventListener("scroll",v),()=>L.removeEventListener("scroll",v)}},[o.viewport,o.isPositioned]),I?jsxRuntimeExports.jsx(SelectScrollButtonImpl,{...n,ref:S,onAutoScroll:()=>{const{viewport:v,selectedItem:L}=o;v&&L&&(v.scrollTop=v.scrollTop-L.offsetHeight)}}):null});SelectScrollUpButton.displayName=SCROLL_UP_BUTTON_NAME;var SCROLL_DOWN_BUTTON_NAME="SelectScrollDownButton",SelectScrollDownButton=reactExports.forwardRef((n,e)=>{const o=useSelectContentContext(SCROLL_DOWN_BUTTON_NAME,n.__scopeSelect),d=useSelectViewportContext(SCROLL_DOWN_BUTTON_NAME,n.__scopeSelect),[I,f]=reactExports.useState(!1),S=useComposedRefs(e,d.onScrollButtonChange);return useLayoutEffect2(()=>{if(o.viewport&&o.isPositioned){let v=function(){const x=L.scrollHeight-L.clientHeight,F=Math.ceil(L.scrollTop)L.removeEventListener("scroll",v)}},[o.viewport,o.isPositioned]),I?jsxRuntimeExports.jsx(SelectScrollButtonImpl,{...n,ref:S,onAutoScroll:()=>{const{viewport:v,selectedItem:L}=o;v&&L&&(v.scrollTop=v.scrollTop+L.offsetHeight)}}):null});SelectScrollDownButton.displayName=SCROLL_DOWN_BUTTON_NAME;var SelectScrollButtonImpl=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,onAutoScroll:d,...I}=n,f=useSelectContentContext("SelectScrollButton",o),S=reactExports.useRef(null),v=useCollection(o),L=reactExports.useCallback(()=>{S.current!==null&&(window.clearInterval(S.current),S.current=null)},[]);return reactExports.useEffect(()=>()=>L(),[L]),useLayoutEffect2(()=>{var F;const x=v().find(Y=>Y.ref.current===document.activeElement);(F=x==null?void 0:x.ref.current)==null||F.scrollIntoView({block:"nearest"})},[v]),jsxRuntimeExports.jsx(Primitive.div,{"aria-hidden":!0,...I,ref:e,style:{flexShrink:0,...I.style},onPointerDown:composeEventHandlers(I.onPointerDown,()=>{S.current===null&&(S.current=window.setInterval(d,50))}),onPointerMove:composeEventHandlers(I.onPointerMove,()=>{var x;(x=f.onItemLeave)==null||x.call(f),S.current===null&&(S.current=window.setInterval(d,50))}),onPointerLeave:composeEventHandlers(I.onPointerLeave,()=>{L()})})}),SEPARATOR_NAME="SelectSeparator",SelectSeparator=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n;return jsxRuntimeExports.jsx(Primitive.div,{"aria-hidden":!0,...d,ref:e})});SelectSeparator.displayName=SEPARATOR_NAME;var ARROW_NAME="SelectArrow",SelectArrow=reactExports.forwardRef((n,e)=>{const{__scopeSelect:o,...d}=n,I=usePopperScope(o);return useSelectContentContext(ARROW_NAME,o).position==="popper"?jsxRuntimeExports.jsx(Arrow,{...I,...d,ref:e}):null});SelectArrow.displayName=ARROW_NAME;var BUBBLE_INPUT_NAME$1="SelectBubbleInput",SelectBubbleInput=reactExports.forwardRef(({__scopeSelect:n,...e},o)=>{const d=useSelectContext(BUBBLE_INPUT_NAME$1,n),{value:I,onValueChange:f,required:S,disabled:v,name:L,autoComplete:x,form:F}=d,{nativeOptions:Y,nativeSelectKey:j}=d,W=reactExports.useRef(null),re=useComposedRefs(o,W),ee=I??"",he=usePrevious(ee),ue=Array.from(Y).some(Ee=>(Ee.props.value??"")==="");return reactExports.useEffect(()=>{const Ee=W.current;if(!Ee)return;const _e=window.HTMLSelectElement.prototype,Fe=Object.getOwnPropertyDescriptor(_e,"value").set;if(he!==ee&&Fe){const Ve=new Event("change",{bubbles:!0});Fe.call(Ee,ee),Ee.dispatchEvent(Ve)}},[he,ee]),jsxRuntimeExports.jsxs(Primitive.select,{"aria-hidden":!0,required:S,tabIndex:-1,name:L,autoComplete:x,disabled:v,form:F,onChange:Ee=>f(Ee.target.value),...e,style:{...VISUALLY_HIDDEN_STYLES,...e.style},ref:re,defaultValue:ee,children:[shouldShowPlaceholder(I)&&!ue?jsxRuntimeExports.jsx("option",{value:""}):null,Array.from(Y)]},j)});SelectBubbleInput.displayName=BUBBLE_INPUT_NAME$1;function isFunction$1(n){return typeof n=="function"}function shouldShowPlaceholder(n){return n===""||n===void 0}function useTypeaheadSearch(n){const e=useCallbackRef$1(n),o=reactExports.useRef(""),d=reactExports.useRef(0),I=reactExports.useCallback(S=>{const v=o.current+S;e(v),function L(x){o.current=x,window.clearTimeout(d.current),x!==""&&(d.current=window.setTimeout(()=>L(""),1e3))}(v)},[e]),f=reactExports.useCallback(()=>{o.current="",window.clearTimeout(d.current)},[]);return reactExports.useEffect(()=>()=>window.clearTimeout(d.current),[]),[o,I,f]}function findNextItem(n,e,o){const I=e.length>1&&Array.from(e).every(x=>x===e[0])?e[0]:e,f=o?n.indexOf(o):-1;let S=wrapArray(n,Math.max(f,0));I.length===1&&(S=S.filter(x=>x!==o));const L=S.find(x=>x.textValue.toLowerCase().startsWith(I.toLowerCase()));return L!==o?L:void 0}function wrapArray(n,e){return n.map((o,d)=>n[(e+d)%n.length])}var DIALOG_NAME="Dialog",[createDialogContext]=createContextScope(DIALOG_NAME),[DialogProvider,useDialogContext]=createDialogContext(DIALOG_NAME),Dialog$1=n=>{const{__scopeDialog:e,children:o,open:d,defaultOpen:I,onOpenChange:f,modal:S=!0}=n,v=reactExports.useRef(null),L=reactExports.useRef(null),[x,F]=useControllableState({prop:d,defaultProp:I??!1,onChange:f,caller:DIALOG_NAME});return jsxRuntimeExports.jsx(DialogProvider,{scope:e,triggerRef:v,contentRef:L,contentId:useId(),titleId:useId(),descriptionId:useId(),open:x,onOpenChange:F,onOpenToggle:reactExports.useCallback(()=>F(Y=>!Y),[F]),modal:S,children:o})};Dialog$1.displayName=DIALOG_NAME;var TRIGGER_NAME$1="DialogTrigger",DialogTrigger=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(TRIGGER_NAME$1,o),f=useComposedRefs(e,I.triggerRef);return jsxRuntimeExports.jsx(Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":I.open,"aria-controls":I.open?I.contentId:void 0,"data-state":getState$1(I.open),...d,ref:f,onClick:composeEventHandlers(n.onClick,I.onOpenToggle)})});DialogTrigger.displayName=TRIGGER_NAME$1;var PORTAL_NAME="DialogPortal",[PortalProvider,usePortalContext]=createDialogContext(PORTAL_NAME,{forceMount:void 0}),DialogPortal$1=n=>{const{__scopeDialog:e,forceMount:o,children:d,container:I}=n,f=useDialogContext(PORTAL_NAME,e);return jsxRuntimeExports.jsx(PortalProvider,{scope:e,forceMount:o,children:reactExports.Children.map(d,S=>jsxRuntimeExports.jsx(Presence,{present:o||f.open,children:jsxRuntimeExports.jsx(Portal$1,{asChild:!0,container:I,children:S})}))})};DialogPortal$1.displayName=PORTAL_NAME;var OVERLAY_NAME="DialogOverlay",DialogOverlay$1=reactExports.forwardRef((n,e)=>{const o=usePortalContext(OVERLAY_NAME,n.__scopeDialog),{forceMount:d=o.forceMount,...I}=n,f=useDialogContext(OVERLAY_NAME,n.__scopeDialog);return f.modal?jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:jsxRuntimeExports.jsx(DialogOverlayImpl,{...I,ref:e})}):null});DialogOverlay$1.displayName=OVERLAY_NAME;var Slot=createSlot("DialogOverlay.RemoveScroll"),DialogOverlayImpl=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(OVERLAY_NAME,o),f=useDismissableLayerSurface(),S=useComposedRefs(e,f);return jsxRuntimeExports.jsx(ReactRemoveScroll,{as:Slot,allowPinchZoom:!0,shards:[I.contentRef],children:jsxRuntimeExports.jsx(Primitive.div,{"data-state":getState$1(I.open),...d,ref:S,style:{pointerEvents:"auto",...d.style}})})}),CONTENT_NAME="DialogContent",DialogContent$1=reactExports.forwardRef((n,e)=>{const o=usePortalContext(CONTENT_NAME,n.__scopeDialog),{forceMount:d=o.forceMount,...I}=n,f=useDialogContext(CONTENT_NAME,n.__scopeDialog);return jsxRuntimeExports.jsx(Presence,{present:d||f.open,children:f.modal?jsxRuntimeExports.jsx(DialogContentModal,{...I,ref:e}):jsxRuntimeExports.jsx(DialogContentNonModal,{...I,ref:e})})});DialogContent$1.displayName=CONTENT_NAME;var DialogContentModal=reactExports.forwardRef((n,e)=>{const o=useDialogContext(CONTENT_NAME,n.__scopeDialog),d=reactExports.useRef(null),I=useComposedRefs(e,o.contentRef,d);return reactExports.useEffect(()=>{const f=d.current;if(f)return hideOthers(f)},[]),jsxRuntimeExports.jsx(DialogContentImpl,{...n,ref:I,trapFocus:o.open,disableOutsidePointerEvents:o.open,onCloseAutoFocus:composeEventHandlers(n.onCloseAutoFocus,f=>{var S;f.preventDefault(),(S=o.triggerRef.current)==null||S.focus()}),onPointerDownOutside:composeEventHandlers(n.onPointerDownOutside,f=>{const S=f.detail.originalEvent,v=S.button===0&&S.ctrlKey===!0;(S.button===2||v)&&f.preventDefault()}),onFocusOutside:composeEventHandlers(n.onFocusOutside,f=>f.preventDefault())})}),DialogContentNonModal=reactExports.forwardRef((n,e)=>{const o=useDialogContext(CONTENT_NAME,n.__scopeDialog),d=reactExports.useRef(!1),I=reactExports.useRef(!1);return jsxRuntimeExports.jsx(DialogContentImpl,{...n,ref:e,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:f=>{var S,v;(S=n.onCloseAutoFocus)==null||S.call(n,f),f.defaultPrevented||(d.current||(v=o.triggerRef.current)==null||v.focus(),f.preventDefault()),d.current=!1,I.current=!1},onInteractOutside:f=>{var L,x;(L=n.onInteractOutside)==null||L.call(n,f),f.defaultPrevented||(d.current=!0,f.detail.originalEvent.type==="pointerdown"&&(I.current=!0));const S=f.target;((x=o.triggerRef.current)==null?void 0:x.contains(S))&&f.preventDefault(),f.detail.originalEvent.type==="focusin"&&I.current&&f.preventDefault()}})}),DialogContentImpl=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,trapFocus:d,onOpenAutoFocus:I,onCloseAutoFocus:f,...S}=n,v=useDialogContext(CONTENT_NAME,o);return useFocusGuards(),jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx(FocusScope,{asChild:!0,loop:!0,trapped:d,onMountAutoFocus:I,onUnmountAutoFocus:f,children:jsxRuntimeExports.jsx(DismissableLayer,{role:"dialog",id:v.contentId,"aria-describedby":v.descriptionId,"aria-labelledby":v.titleId,"data-state":getState$1(v.open),...S,ref:e,deferPointerDownOutside:!0,onDismiss:()=>v.onOpenChange(!1)})})})}),TITLE_NAME="DialogTitle",DialogTitle$1=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(TITLE_NAME,o);return jsxRuntimeExports.jsx(Primitive.h2,{id:I.titleId,...d,ref:e})});DialogTitle$1.displayName=TITLE_NAME;var DESCRIPTION_NAME="DialogDescription",DialogDescription$1=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(DESCRIPTION_NAME,o);return jsxRuntimeExports.jsx(Primitive.p,{id:I.descriptionId,...d,ref:e})});DialogDescription$1.displayName=DESCRIPTION_NAME;var CLOSE_NAME="DialogClose",DialogClose$1=reactExports.forwardRef((n,e)=>{const{__scopeDialog:o,...d}=n,I=useDialogContext(CLOSE_NAME,o);return jsxRuntimeExports.jsx(Primitive.button,{type:"button",...d,ref:e,onClick:composeEventHandlers(n.onClick,()=>I.onOpenChange(!1))})});DialogClose$1.displayName=CLOSE_NAME;function getState$1(n){return n?"open":"closed"}var SWITCH_NAME="Switch",[createSwitchContext]=createContextScope(SWITCH_NAME),[SwitchProviderImpl,useSwitchContext]=createSwitchContext(SWITCH_NAME);function SwitchProvider(n){const{__scopeSwitch:e,checked:o,children:d,defaultChecked:I,disabled:f,form:S,name:v,onCheckedChange:L,required:x,value:F="on",internal_do_not_use_render:Y}=n,[j,W]=useControllableState({prop:o,defaultProp:I??!1,onChange:L,caller:SWITCH_NAME}),[re,ee]=reactExports.useState(null),[he,ue]=reactExports.useState(null),Ee=reactExports.useRef(!1),_e=re?!!S||!!re.closest("form"):!0,De={checked:j,setChecked:W,disabled:f,control:re,setControl:ee,name:v,form:S,value:F,hasConsumerStoppedPropagationRef:Ee,required:x,defaultChecked:I,isFormControl:_e,bubbleInput:he,setBubbleInput:ue};return jsxRuntimeExports.jsx(SwitchProviderImpl,{scope:e,...De,children:isFunction(Y)?Y(De):d})}var TRIGGER_NAME="SwitchTrigger",SwitchTrigger=reactExports.forwardRef(({__scopeSwitch:n,onClick:e,...o},d)=>{const{control:I,form:f,value:S,disabled:v,checked:L,required:x,setControl:F,setChecked:Y,hasConsumerStoppedPropagationRef:j,isFormControl:W,bubbleInput:re}=useSwitchContext(TRIGGER_NAME,n),ee=useComposedRefs(d,F),he=reactExports.useRef(L);return reactExports.useEffect(()=>{const ue=f?I==null?void 0:I.ownerDocument.getElementById(f):I==null?void 0:I.form;if(ue instanceof HTMLFormElement){const Ee=()=>Y(he.current);return ue.addEventListener("reset",Ee),()=>ue.removeEventListener("reset",Ee)}},[I,f,Y]),jsxRuntimeExports.jsx(Primitive.button,{type:"button",role:"switch","aria-checked":L,"aria-required":x,"data-state":getState(L),"data-disabled":v?"":void 0,disabled:v,value:S,...o,ref:ee,onClick:composeEventHandlers(e,ue=>{Y(Ee=>!Ee),re&&W&&(j.current=ue.isPropagationStopped(),j.current||ue.stopPropagation())})})});SwitchTrigger.displayName=TRIGGER_NAME;var Switch=reactExports.forwardRef((n,e)=>{const{__scopeSwitch:o,name:d,checked:I,defaultChecked:f,required:S,disabled:v,value:L,onCheckedChange:x,form:F,...Y}=n;return jsxRuntimeExports.jsx(SwitchProvider,{__scopeSwitch:o,checked:I,defaultChecked:f,disabled:v,required:S,onCheckedChange:x,name:d,form:F,value:L,internal_do_not_use_render:({isFormControl:j})=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(SwitchTrigger,{...Y,ref:e,__scopeSwitch:o}),j&&jsxRuntimeExports.jsx(SwitchBubbleInput,{__scopeSwitch:o})]})})});Switch.displayName=SWITCH_NAME;var THUMB_NAME="SwitchThumb",SwitchThumb=reactExports.forwardRef((n,e)=>{const{__scopeSwitch:o,...d}=n,I=useSwitchContext(THUMB_NAME,o);return jsxRuntimeExports.jsx(Primitive.span,{"data-state":getState(I.checked),"data-disabled":I.disabled?"":void 0,...d,ref:e})});SwitchThumb.displayName=THUMB_NAME;var BUBBLE_INPUT_NAME="SwitchBubbleInput",SwitchBubbleInput=reactExports.forwardRef(({__scopeSwitch:n,...e},o)=>{const{control:d,hasConsumerStoppedPropagationRef:I,checked:f,defaultChecked:S,required:v,disabled:L,name:x,value:F,form:Y,bubbleInput:j,setBubbleInput:W}=useSwitchContext(BUBBLE_INPUT_NAME,n),re=useComposedRefs(o,W),ee=usePrevious(f),he=useSize(d);reactExports.useEffect(()=>{const Ee=j;if(!Ee)return;const _e=window.HTMLInputElement.prototype,Fe=Object.getOwnPropertyDescriptor(_e,"checked").set,Ve=!I.current;if(ee!==f&&Fe){const Ge=new Event("click",{bubbles:Ve});Fe.call(Ee,f),Ee.dispatchEvent(Ge)}},[j,ee,f,I]);const ue=reactExports.useRef(f);return jsxRuntimeExports.jsx(Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:S??ue.current,required:v,disabled:L,name:x,value:F,form:Y,...e,tabIndex:-1,ref:re,style:{...e.style,...he,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});SwitchBubbleInput.displayName=BUBBLE_INPUT_NAME;function isFunction(n){return typeof n=="function"}function getState(n){return n?"checked":"unchecked"}function SimpleVisualizer({data:n,className:e,activeColor:o="#374151",inactiveColor:d="#d1d5db",barWidth:I=3,barHeight:f=16,barGap:S=2}){return jsxRuntimeExports.jsx("div",{className:cn("flex items-center justify-start",e),style:{gap:`${S}px`,height:`${f*2}px`},role:"img","aria-label":"Audio level indicator",children:n.map((v,L)=>jsxRuntimeExports.jsx("div",{style:{width:`${I}px`,height:`${f}px`,backgroundColor:v>0?o:d,borderRadius:"9999px",transition:"background-color 75ms",willChange:"background-color"}},L))})}var MicButton=reactExports.forwardRef(({state:n="idle",icon:e=jsxRuntimeExports.jsx(Mic,{className:"h-4 w-4"}),showErrorBadge:o=!1,audioData:d,className:I,disabled:f,...S},v)=>{const L=n==="processing",x=n==="error";return jsxRuntimeExports.jsxs("button",{ref:v,disabled:f||x,className:cn("relative inline-flex items-center justify-center rounded-lg border px-3 py-2 text-sm font-medium transition-colors",!x&&"border-input bg-background hover:bg-accent focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",x&&"border-destructive bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:ring-destructive cursor-not-allowed focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",f&&"cursor-not-allowed opacity-50",I),"aria-label":x?"Microphone error":n==="listening"?"Microphone active":"Microphone",...S,children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-center gap-1.5",children:[x?jsxRuntimeExports.jsx(MicOff,{className:"h-4 w-4"}):e,d&&d.length>0&&jsxRuntimeExports.jsx(SimpleVisualizer,{data:d,className:L?"text-slate-400":""})]}),x&&o&&jsxRuntimeExports.jsx("div",{className:"absolute -top-2 -right-2 flex h-5 w-5 items-center justify-center rounded-full bg-amber-400 text-amber-900",children:jsxRuntimeExports.jsx("span",{className:"text-xs leading-none font-bold",children:"!"})})]})});MicButton.displayName="MicButton";var Response=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx("div",{ref:o,className:cn("text-sm leading-relaxed break-words whitespace-pre-wrap",n),...e}));Response.displayName="Response";var EMessageStatus=(n=>(n[n.IN_PROGRESS=0]="IN_PROGRESS",n[n.END=1]="END",n[n.INTERRUPTED=2]="INTERRUPTED",n))(EMessageStatus||{});new Set(Object.values(EMessageStatus).filter(n=>typeof n=="number"));var sizeClasses={sm:"h-8 w-8",md:"h-10 w-10",lg:"h-12 w-12"},getInitials=(n,e)=>e?e.toUpperCase():n?n.split(" ").slice(0,2).map(o=>o[0]).join("").toUpperCase():"?",Avatar=reactExports.forwardRef(({className:n,src:e,icon:o,initials:d,name:I,size:f="md",bgColor:S="bg-gradient-to-br from-blue-500 to-blue-600",alt:v="avatar",...L},x)=>{const[F,Y]=reactExports.useState(!1),j=getInitials(I,d);return jsxRuntimeExports.jsx("div",{ref:x,className:cn("ring-border flex items-center justify-center overflow-hidden rounded-full ring-1",sizeClasses[f],n),...L,children:e&&!F?jsxRuntimeExports.jsx("img",{src:e,alt:v,className:"h-full w-full object-cover",onError:()=>Y(!0)}):o?jsxRuntimeExports.jsx("div",{className:cn("h-full w-full flex items-center justify-center text-white",S),children:o}):jsxRuntimeExports.jsx("div",{className:cn("h-full w-full flex items-center justify-center text-xs font-semibold text-white",S),children:j})})});Avatar.displayName="Avatar";function useVideoPlayback({videoTrack:n,useMediaStream:e,videoContainerRef:o,videoElementRef:d,debugLabel:I="useVideoPlayback"}){const[f,S]=reactExports.useState(!1);return reactExports.useEffect(()=>{if(!e||!n||!d.current){e&&S(!1);return}try{const v=n.getMediaStreamTrack(),L=new MediaStream([v]);d.current.srcObject=L,d.current.play().catch(x=>{x.name!=="AbortError"&&debug.error(`${I}: MediaStream playback failed`,x)}),S(!0)}catch(v){debug.error(`${I}: failed to attach MediaStream`,v),S(!1)}return()=>{d.current&&(d.current.srcObject=null),S(!1)}},[n,e,I]),reactExports.useEffect(()=>{if(e||!n||!o.current){e||S(!1);return}try{n.play(o.current),S(!0)}catch(v){debug.error(`${I}: failed to play video track`,v),S(!1)}return()=>{try{n.stop(),S(!1)}catch(v){debug.error(`${I}: failed to stop video track`,v)}}},[n,e,I]),{isPlaying:f}}var AvatarVideoDisplay=reactExports.forwardRef(({className:n,videoTrack:e,state:o="disconnected",showStatus:d=!1,placeholder:I,useMediaStream:f=!1,objectFit:S="cover",...v},L)=>{const x=reactExports.useRef(null),F=reactExports.useRef(null),{isPlaying:Y}=useVideoPlayback({videoTrack:e??null,useMediaStream:f,videoContainerRef:x,videoElementRef:F,debugLabel:"AvatarVideoDisplay"}),j=!Y||o==="disconnected";return jsxRuntimeExports.jsxs("div",{ref:L,className:cn("relative overflow-hidden rounded-lg bg-muted","flex items-center justify-center",n),...v,children:[!f&&jsxRuntimeExports.jsx("div",{ref:x,className:cn("absolute inset-2 rounded-lg overflow-hidden",j&&"hidden")}),f&&jsxRuntimeExports.jsx("video",{ref:F,autoPlay:!0,playsInline:!0,className:cn("absolute inset-2 w-[calc(100%-1rem)] h-[calc(100%-1rem)] rounded-lg",j&&"hidden"),style:{objectFit:S}}),j&&jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-gradient-to-br from-slate-800 to-slate-900 text-muted-foreground",children:I||jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-16 w-16 rounded-full bg-slate-700/50 flex items-center justify-center",children:jsxRuntimeExports.jsx("svg",{className:"h-8 w-8",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:jsxRuntimeExports.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"})})}),jsxRuntimeExports.jsx("p",{className:"text-sm",children:o==="loading"?"Connecting...":"No video"})]})}),d&&o!=="disconnected"&&jsxRuntimeExports.jsxs("div",{className:"absolute top-2 right-2 rounded-full bg-black/60 px-2 py-1 text-xs text-white backdrop-blur-sm",children:[o==="loading"&&"Connecting...",o==="connected"&&Y&&jsxRuntimeExports.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntimeExports.jsx("span",{className:"h-2 w-2 rounded-full bg-green-500 animate-pulse"}),"Live"]})]})]})});AvatarVideoDisplay.displayName="AvatarVideoDisplay";var LocalVideoPreview=reactExports.forwardRef(({className:n,videoTrack:e,isMirrored:o=!0,showLabel:d=!1,label:I="You",placeholder:f,useMediaStream:S=!1,isVideoMuted:v=!1,onToggleMute:L,showMuteControl:x=!1,objectFit:F="cover",...Y},j)=>{const W=reactExports.useRef(null),re=reactExports.useRef(null),[ee,he]=reactExports.useState(!1),{isPlaying:ue}=useVideoPlayback({videoTrack:e??null,useMediaStream:S,videoContainerRef:W,videoElementRef:re,debugLabel:"LocalVideoPreview"}),Ee=!ue;return jsxRuntimeExports.jsxs("div",{ref:j,className:cn("relative overflow-hidden rounded-lg bg-muted","flex items-center justify-center",n),onMouseEnter:()=>he(!0),onMouseLeave:()=>he(!1),...Y,children:[!S&&jsxRuntimeExports.jsx("div",{ref:W,className:cn("absolute inset-2 rounded-lg overflow-hidden",o&&"scale-x-[-1]",Ee&&"hidden")}),S&&jsxRuntimeExports.jsx("video",{ref:re,autoPlay:!0,playsInline:!0,muted:!0,className:cn("absolute inset-2 w-[calc(100%-1rem)] h-[calc(100%-1rem)] rounded-lg",o&&"scale-x-[-1]",Ee&&"hidden"),style:{objectFit:F}}),Ee&&jsxRuntimeExports.jsx("div",{className:"flex h-full w-full items-center justify-center bg-gradient-to-br from-slate-700 to-slate-800 text-muted-foreground",children:f||jsxRuntimeExports.jsxs("div",{className:"flex flex-col items-center gap-2",children:[jsxRuntimeExports.jsx("div",{className:"h-12 w-12 rounded-full bg-slate-600/50 flex items-center justify-center",children:jsxRuntimeExports.jsx(Video,{className:"h-6 w-6"})}),jsxRuntimeExports.jsx("p",{className:"text-xs",children:"Camera off"})]})}),d&&ue&&I&&jsxRuntimeExports.jsx("div",{className:"absolute bottom-2 left-2 rounded-full bg-black/60 px-2 py-1 text-xs text-white backdrop-blur-sm",children:I}),x&&L&&ue&&ee&&jsxRuntimeExports.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-black/30 backdrop-blur-[2px]",children:jsxRuntimeExports.jsx("button",{onClick:_e=>{_e.stopPropagation(),L()},className:cn("flex items-center justify-center rounded-full p-4 transition-all","bg-black/60 hover:bg-black/80 text-white","shadow-lg backdrop-blur-sm"),"aria-label":v?"Unmute video":"Mute video",children:v?jsxRuntimeExports.jsx(VideoOff,{className:"h-6 w-6"}):jsxRuntimeExports.jsx(Video,{className:"h-6 w-6"})})})]})});LocalVideoPreview.displayName="LocalVideoPreview";function Popover({...n}){return jsxRuntimeExports.jsx(Root2,{"data-slot":"popover",...n})}function PopoverTrigger({...n}){return jsxRuntimeExports.jsx(Trigger,{"data-slot":"popover-trigger",...n})}function PopoverContent({className:n,align:e="center",sideOffset:o=4,...d}){return jsxRuntimeExports.jsx(Portal,{children:jsxRuntimeExports.jsx(Content2,{"data-slot":"popover-content",align:e,sideOffset:o,className:cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden",n),...d})})}var CameraSelector=reactExports.forwardRef(({devices:n=[],value:e,onValueChange:o,disabled:d=!1,onDisabledChange:I,hasError:f=!1,className:S},v)=>{const[L,x]=reactExports.useState(!1),F=n.find(W=>W.deviceId===e)||n[0],Y=()=>{I==null||I(!d)},j=W=>{o==null||o(W),x(!1)};return jsxRuntimeExports.jsxs("div",{ref:v,className:cn("inline-flex items-center gap-2 rounded-lg border bg-background px-3 py-2",f&&"border-destructive",S),children:[jsxRuntimeExports.jsx("button",{onClick:Y,"aria-label":"Toggle camera",className:cn("flex h-8 w-8 items-center justify-center rounded-full transition-colors","focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none",f?"bg-destructive/10 text-destructive hover:bg-destructive/20":d?"bg-muted text-muted-foreground hover:bg-muted/80":"bg-primary/10 text-primary hover:bg-primary/20"),children:f||d?jsxRuntimeExports.jsx(VideoOff,{className:"h-4 w-4"}):jsxRuntimeExports.jsx(Video,{className:"h-4 w-4"})}),n.length>0&&jsxRuntimeExports.jsxs(Popover,{open:L,onOpenChange:x,children:[jsxRuntimeExports.jsxs(PopoverTrigger,{"aria-label":"Select camera device",className:"flex items-center gap-2 text-sm hover:text-foreground/80",disabled:d||f,children:[jsxRuntimeExports.jsx("span",{className:"max-w-[150px] truncate",children:(F==null?void 0:F.label)||"Select camera"}),jsxRuntimeExports.jsx(ChevronDown,{className:cn("h-4 w-4 transition-transform",L&&"rotate-180")})]}),jsxRuntimeExports.jsx(PopoverContent,{align:"start",sideOffset:8,className:"w-64 p-1",children:n.map(W=>jsxRuntimeExports.jsxs("button",{onClick:()=>j(W.deviceId),className:cn("flex w-full items-center justify-between rounded px-3 py-2 text-sm hover:bg-accent",W.deviceId===e&&"bg-accent"),children:[jsxRuntimeExports.jsx("span",{className:"truncate",children:W.label}),W.deviceId===e&&jsxRuntimeExports.jsx(Check,{className:"h-4 w-4 flex-shrink-0"})]},W.deviceId))})]}),n.length===0&&!f&&jsxRuntimeExports.jsx("span",{className:"text-sm text-muted-foreground",children:"No cameras available"}),f&&jsxRuntimeExports.jsx("div",{className:"ml-auto flex h-5 w-5 items-center justify-center rounded-full bg-amber-400 text-amber-900",children:jsxRuntimeExports.jsx("span",{className:"text-xs font-bold leading-none",children:"!"})})]})});CameraSelector.displayName="CameraSelector";var VideoGrid=reactExports.forwardRef(({className:n,avatar:e,chat:o,localVideo:d,controls:I,...f},S)=>jsxRuntimeExports.jsxs("div",{ref:S,className:cn("grid h-full w-full",n),style:{gridTemplateColumns:"40% 60%",gridTemplateRows:"1fr 1fr",gap:"1rem"},...f,children:[jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",style:{gridRow:"1"},children:o}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",style:{gridRow:"1 / 3",gridColumn:"2"},children:e}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",style:{gridRow:"2"},children:d})]}));VideoGrid.displayName="VideoGrid";var VideoGridWithControls=reactExports.forwardRef(({className:n,avatar:e,chat:o,localVideo:d,controls:I,...f},S)=>jsxRuntimeExports.jsxs("div",{ref:S,className:cn("grid h-full w-full gap-4","grid-cols-2 grid-rows-2",n),...f,children:[jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",children:o}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",children:e}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg",children:d}),jsxRuntimeExports.jsx("div",{className:"overflow-hidden rounded-lg border bg-card shadow-lg p-4 flex items-center justify-center",children:I})]}));VideoGridWithControls.displayName="VideoGridWithControls";var MobileTabs=reactExports.forwardRef(({className:n,tabs:e,activeTab:o,onTabChange:d,tabPosition:I="top",...f},S)=>{var j;const[v,L]=reactExports.useState(((j=e[0])==null?void 0:j.id)||""),x=o!==void 0?o:v,F=W=>{o===void 0&&L(W),d==null||d(W)},Y=jsxRuntimeExports.jsx("div",{className:"flex border-b bg-muted/30",role:"tablist",children:e.map((W,re)=>jsxRuntimeExports.jsxs(reactExports.Fragment,{children:[jsxRuntimeExports.jsxs("button",{role:"tab","aria-selected":x===W.id,onClick:()=>F(W.id),className:cn("cursor-pointer flex flex-1 items-center justify-center gap-2 px-3 py-2 text-sm font-medium transition-colors",x===W.id?"bg-background text-foreground border-b-2 border-primary":"text-muted-foreground hover:text-foreground"),children:[W.icon&&jsxRuntimeExports.jsx("span",{className:"h-4 w-4",children:W.icon}),jsxRuntimeExports.jsx("span",{children:W.label})]}),rejsxRuntimeExports.jsx("div",{role:"tabpanel",className:cn("flex-1 overflow-hidden",W.id===x?"":"hidden"),children:W.content},W.id)),I==="bottom"&&Y]})});MobileTabs.displayName="MobileTabs";var ValuePicker=reactExports.forwardRef(({items:n,value:e,onValueChange:o,placeholder:d="Select a value...",label:I,disabled:f,open:S,onOpenChange:v,maxHeight:L},x)=>{const F=n.find(j=>j.id===e),Y=!!L;return jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[I&&jsxRuntimeExports.jsx("label",{className:"text-small font-medium",children:I}),jsxRuntimeExports.jsxs(Select,{value:e,onValueChange:o,open:S,onOpenChange:v,children:[jsxRuntimeExports.jsxs(SelectTrigger,{ref:x,disabled:f,className:cn("bg-input-field-bg text-font-high text-normal inline-flex w-full items-center justify-between border p-3 font-medium outline-hidden","data-[state=closed]:rounded-md data-[state=open]:rounded-none","data-[placeholder]:text-muted-foreground","disabled:pointer-events-none disabled:opacity-50"),children:[jsxRuntimeExports.jsx(SelectValue,{placeholder:d,asChild:!0,children:jsxRuntimeExports.jsx("span",{className:"truncate leading-tight",children:(F==null?void 0:F.name)||d})}),jsxRuntimeExports.jsx(SelectIcon,{asChild:!0,children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-5"})})]}),jsxRuntimeExports.jsx(SelectPortal,{children:jsxRuntimeExports.jsxs(SelectContent,{className:cn("bg-input-field-bg text-font-high text-normal border-t-primary-brand relative z-50 w-[var(--radix-select-trigger-width)] overflow-hidden rounded-br-md rounded-bl-md border p-0","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2","data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2","data-[side=top]:slide-in-from-bottom-2"),position:"popper",sideOffset:0,children:[Y&&jsxRuntimeExports.jsx(SelectScrollUpButton,{className:"flex cursor-default items-center justify-center py-1",children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-4 rotate-180"})}),jsxRuntimeExports.jsx(SelectViewport,{className:cn(Y&&"overflow-y-auto"),style:Y?{maxHeight:L}:void 0,children:n.length===0?jsxRuntimeExports.jsx("div",{className:"text-muted-foreground py-6 text-center text-sm",children:"No items found."}):n.map(j=>jsxRuntimeExports.jsxs(SelectItem,{value:j.id,className:cn("bg-input-field-bg text-normal relative flex cursor-pointer items-center gap-2 rounded-sm p-3 pr-8 outline-hidden select-none","transition-colors hover:rounded-none hover:bg-[var(--color-neutral)]/25","data-[state=checked]:rounded-none data-[state=checked]:bg-[var(--color-neutral)]/15","focus-visible:bg-[var(--color-neutral)]/15"),children:[jsxRuntimeExports.jsx(SelectItemText,{className:"flex-1",children:j.name}),jsxRuntimeExports.jsx("span",{className:"pointer-events-none absolute right-3 flex size-4 items-center justify-center",children:jsxRuntimeExports.jsx(SelectItemIndicator,{children:jsxRuntimeExports.jsx(Check,{className:"size-4"})})})]},j.id))}),Y&&jsxRuntimeExports.jsx(SelectScrollDownButton,{className:"flex cursor-default items-center justify-center py-1",children:jsxRuntimeExports.jsx(ChevronDown,{className:"size-4"})})]})})]})]})});ValuePicker.displayName="ValuePicker";var Dialog=Dialog$1,DialogPortal=DialogPortal$1,DialogClose=DialogClose$1,DialogOverlay=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx(DialogOverlay$1,{ref:o,className:cn("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",n),...e}));DialogOverlay.displayName=DialogOverlay$1.displayName;var DialogContent=reactExports.forwardRef(({className:n,children:e,...o},d)=>jsxRuntimeExports.jsxs(DialogPortal,{children:[jsxRuntimeExports.jsx(DialogOverlay,{}),jsxRuntimeExports.jsx(DialogContent$1,{ref:d,style:{position:"fixed",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},className:cn("z-50 grid w-[calc(100%-2rem)] max-w-2xl gap-4 border bg-background p-4 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 rounded-lg","sm:w-full sm:p-6","max-h-[90vh] overflow-y-auto",n),...o,children:e})]}));DialogContent.displayName=DialogContent$1.displayName;var DialogHeader=({className:n,...e})=>jsxRuntimeExports.jsx("div",{className:cn("flex flex-col space-y-1.5 text-center sm:text-left pl-1",n),...e});DialogHeader.displayName="DialogHeader";var DialogTitle=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx(DialogTitle$1,{ref:o,className:cn("text-lg font-semibold leading-none tracking-tight",n),...e}));DialogTitle.displayName=DialogTitle$1.displayName;var DialogDescription=reactExports.forwardRef(({className:n,...e},o)=>jsxRuntimeExports.jsx(DialogDescription$1,{ref:o,className:cn("text-sm text-muted-foreground",n),...e}));DialogDescription.displayName=DialogDescription$1.displayName;var DEFAULT_LANGUAGES=[{id:"en-US",name:"English (US)"},{id:"en-GB",name:"English (UK)"},{id:"es-ES",name:"Spanish (Spain)"},{id:"es-MX",name:"Spanish (Mexico)"},{id:"fr-FR",name:"French"},{id:"de-DE",name:"German"},{id:"it-IT",name:"Italian"},{id:"pt-BR",name:"Portuguese (Brazil)"},{id:"ja-JP",name:"Japanese"},{id:"ko-KR",name:"Korean"},{id:"zh-CN",name:"Chinese (Simplified)"},{id:"zh-TW",name:"Chinese (Traditional)"}],AgentSettings=reactExports.forwardRef(({selectedMicId:n,onMicChange:e,enableAivad:o,onEnableAivadChange:d,language:I,onLanguageChange:f,prompt:S,onPromptChange:v,greeting:L,onGreetingChange:x,languages:F=DEFAULT_LANGUAGES,disabled:Y=!1,className:j},W)=>{const{devices:re}=useAudioDevices({enabled:!!e}),ee="system-default",he=[{id:ee,name:"System Default"},...re.map(Ee=>({id:Ee.deviceId,name:Ee.label}))],ue=Ee=>{e==null||e(Ee===ee?"":Ee)};return jsxRuntimeExports.jsxs("div",{ref:W,className:cn("flex flex-col gap-6",j),children:[e&&jsxRuntimeExports.jsx(ValuePicker,{label:"Microphone",items:he,value:n||ee,onValueChange:ue,placeholder:"Select a microphone...",maxHeight:"200px"}),jsxRuntimeExports.jsx(ValuePicker,{label:"Speech Recognition Language",items:F,value:I,onValueChange:f,placeholder:"Select a language...",disabled:Y,maxHeight:"300px"}),jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between bg-input-field-bg border rounded-md p-3 pr-4",children:[jsxRuntimeExports.jsx("span",{className:"text-sm font-medium",children:"AI Turn Detection"}),jsxRuntimeExports.jsx(Switch,{checked:o,onCheckedChange:d,disabled:Y,style:{width:"44px",height:"24px",padding:"2px"},className:cn("peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors","focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background","disabled:cursor-not-allowed disabled:opacity-50",o?"bg-primary":"bg-input"),children:jsxRuntimeExports.jsx(SwitchThumb,{style:{transform:o?"translateX(20px)":"translateX(0)"},className:cn("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform")})})]}),v&&jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx("label",{htmlFor:"agent-prompt",className:"text-small font-medium",children:"System Prompt"}),jsxRuntimeExports.jsx("textarea",{id:"agent-prompt",value:S||"",onChange:Ee=>v(Ee.target.value),disabled:Y,placeholder:"You are a helpful AI assistant...",rows:6,className:cn("w-full rounded-md border border-input bg-input-field-bg px-3 py-2 text-sm","focus:outline-none focus:ring-2 focus:ring-ring","disabled:cursor-not-allowed disabled:opacity-50","resize-none")})]}),x&&jsxRuntimeExports.jsxs("div",{className:"flex flex-col gap-3",children:[jsxRuntimeExports.jsx("label",{htmlFor:"agent-greeting",className:"text-small font-medium",children:"Greeting Message"}),jsxRuntimeExports.jsx("input",{id:"agent-greeting",type:"text",value:L||"",onChange:Ee=>x(Ee.target.value),disabled:Y,placeholder:"Hello! How can I help you today?",className:cn("w-full rounded-md border border-input bg-input-field-bg px-3 py-2 text-sm","focus:outline-none focus:ring-2 focus:ring-ring","disabled:cursor-not-allowed disabled:opacity-50")})]})]})});AgentSettings.displayName="AgentSettings";var SettingsDialog=reactExports.forwardRef(({open:n,onOpenChange:e,title:o="Agent Settings",description:d="Configure your agent settings and session preferences.",children:I,...f},S)=>jsxRuntimeExports.jsx(Dialog,{open:n,onOpenChange:e,children:jsxRuntimeExports.jsxs(DialogContent,{ref:S,children:[jsxRuntimeExports.jsxs(DialogHeader,{children:[jsxRuntimeExports.jsx(DialogTitle,{children:o}),jsxRuntimeExports.jsx(DialogDescription,{children:d}),jsxRuntimeExports.jsxs(DialogClose,{className:"cursor-pointer absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",children:[jsxRuntimeExports.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsxRuntimeExports.jsx("path",{d:"M18 6 6 18"}),jsxRuntimeExports.jsx("path",{d:"m6 6 12 12"})]}),jsxRuntimeExports.jsx("span",{className:"sr-only",children:"Close"})]})]}),jsxRuntimeExports.jsx(AgentSettings,{...f}),I]})}));SettingsDialog.displayName="SettingsDialog";function CopyButton({text:n}){const[e,o]=reactExports.useState(!1),d=reactExports.useRef(null);reactExports.useEffect(()=>()=>{d.current!==null&&clearTimeout(d.current)},[]);const I=()=>{d.current!==null&&clearTimeout(d.current),d.current=setTimeout(()=>{o(!1),d.current=null},2e3)},f=async()=>{try{await navigator.clipboard.writeText(n),o(!0),I()}catch{try{const S=document.createElement("textarea");S.value=n,S.style.position="fixed",S.style.opacity="0",document.body.appendChild(S),S.select(),document.execCommand("copy"),document.body.removeChild(S),o(!0),I()}catch{}}};return jsxRuntimeExports.jsx("button",{type:"button",onClick:f,className:"ml-2 shrink-0 rounded px-2 py-0.5 text-xs text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-colors",children:e?"Copied":"Copy"})}var SessionPanel=reactExports.forwardRef(({agentId:n,payload:e,className:o,...d},I)=>{if(!n)return null;const f=e?JSON.stringify(e,null,2):"";return jsxRuntimeExports.jsxs("div",{ref:I,className:cn("space-y-4 border-t pt-4 mt-4",o),...d,children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-muted-foreground",children:"Agent ID"}),jsxRuntimeExports.jsx(CopyButton,{text:n})]}),jsxRuntimeExports.jsx("code",{className:"mt-1 block rounded-md bg-muted px-3 py-2 text-xs font-mono break-all",children:n})]}),e&&jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntimeExports.jsx("label",{className:"text-sm font-medium text-muted-foreground",children:"Join Request Body"}),jsxRuntimeExports.jsx(CopyButton,{text:f})]}),jsxRuntimeExports.jsx("pre",{className:"mt-1 max-h-64 overflow-auto rounded-md bg-muted px-3 py-2 text-xs font-mono whitespace-pre-wrap break-all",children:f})]})]})});SessionPanel.displayName="SessionPanel";function MicButtonWithVisualizer({isEnabled:n,setIsEnabled:e,track:o,enabledColor:d="#A0FAFF",disabledColor:I="#DE344A",onToggle:f,className:S="",localMicrophoneTrack:v}){const[L,x]=reactExports.useState(Array(5).fill({height:0})),F=Sn(),Y=reactExports.useRef(n);Y.current=n;const j=reactExports.useRef(null),W=reactExports.useRef(null),re=reactExports.useRef(void 0),ee=o||v;reactExports.useEffect(()=>{const Ee=()=>{if(!W.current)return;const Fe=new Uint8Array(W.current.frequencyBinCount);W.current.getByteFrequencyData(Fe);const Ve=Math.floor(Fe.length/5),Ge=Array(5).fill(0).map((He,At)=>{const Bt=At*Ve,Tt=Bt+Ve,rt=Fe.slice(Bt,Tt),ye=rt.reduce((ct,ht)=>ct+ht,0)/rt.length,lt=Math.min(60,ye/255*100*1.2);return{height:Math.pow(lt/60,.7)*60}});x(Ge),re.current=requestAnimationFrame(Ee)},_e=()=>{re.current&&cancelAnimationFrame(re.current),j.current&&(j.current.close(),j.current=null),x(Array(5).fill({height:0}))};return ee&&n?(async()=>{if(ee)try{j.current=new AudioContext,W.current=j.current.createAnalyser(),W.current.fftSize=64,W.current.smoothingTimeConstant=.5;let Fe;if(ee instanceof MediaStream)Fe=ee;else{const Ge=ee.getMediaStreamTrack();Fe=new MediaStream([Ge])}j.current.createMediaStreamSource(Fe).connect(W.current),Ee()}catch(Fe){debug.error("MicButtonWithVisualizer: failed to setup audio analyser",Fe)}})():_e(),()=>_e()},[ee,n]);const he=async()=>{if(f){await f();return}const Ee=ee&&!(ee instanceof MediaStream)?ee:null;if(Ee){const _e=!n;try{await Ee.setEnabled(_e),_e?await F.publish(Ee):await F.unpublish(Ee),e(_e)}catch(De){debug.error("MicButtonWithVisualizer: failed to toggle microphone",De),Ee.setEnabled(Y.current)}}else e(!n)},ue=n?d:I;return jsxRuntimeExports.jsxs("button",{onClick:he,className:`group relative flex h-16 w-16 items-center justify-center rounded-full border-2 shadow-lg transition-all duration-300 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-none ${S}`,style:{borderColor:ue},"aria-label":n?"Mute microphone":"Unmute microphone",children:[jsxRuntimeExports.jsx("div",{className:"absolute inset-0 flex items-center justify-center gap-1",children:L.map((Ee,_e)=>jsxRuntimeExports.jsx("div",{className:"w-1 rounded-full transition-all duration-100 group-hover:bg-black group-active:bg-black",style:{height:`${Ee.height}%`,transform:`scaleY(${Math.max(.1,Ee.height/100)})`,transformOrigin:"center",backgroundColor:ue}},_e))}),jsxRuntimeExports.jsx("div",{className:"relative z-10 transition-colors duration-300",children:n?jsxRuntimeExports.jsx(Mic,{size:24,className:"transition-colors duration-300 group-hover:text-black group-active:text-black",style:{color:d}}):jsxRuntimeExports.jsx(MicOff,{size:24,className:"transition-colors duration-300 group-hover:text-black group-active:text-black",style:{color:I}})})]})}var agoraRtm={exports:{}},AgoraRTC_NProduction={exports:{}},hasRequiredAgoraRTC_NProduction;function requireAgoraRTC_NProduction(){return hasRequiredAgoraRTC_NProduction||(hasRequiredAgoraRTC_NProduction=1,function(n,e){var o={};(function(d,I){n.exports=I()})(commonjsGlobal,function(){function d(t,s){return s.forEach(function(c){c&&typeof c!="string"&&!Array.isArray(c)&&Object.keys(c).forEach(function(u){if(u!=="default"&&!(u in t)){var h=Object.getOwnPropertyDescriptor(c,u);Object.defineProperty(t,u,h.get?h:{enumerable:!0,get:function(){return c[u]}})}})}),Object.freeze(t)}var I=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof commonjsGlobal<"u"?commonjsGlobal:typeof self<"u"?self:{};function f(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var S=function(t){try{return!!t()}catch{return!0}},v=!S(function(){var t=(function(){}).bind();return typeof t!="function"||t.hasOwnProperty("prototype")}),L=v,x=Function.prototype,F=x.call,Y=L&&x.bind.bind(F,F),j=L?Y:function(t){return function(){return F.apply(t,arguments)}},W=j({}.isPrototypeOf),re=function(t){return t&&t.Math===Math&&t},ee=re(typeof globalThis=="object"&&globalThis)||re(typeof window=="object"&&window)||re(typeof self=="object"&&self)||re(typeof I=="object"&&I)||re(typeof I=="object"&&I)||function(){return this}()||Function("return this")(),he=v,ue=Function.prototype,Ee=ue.apply,_e=ue.call,De=typeof Reflect=="object"&&Reflect.apply||(he?_e.bind(Ee):function(){return _e.apply(Ee,arguments)}),Fe=j,Ve=Fe({}.toString),Ge=Fe("".slice),He=function(t){return Ge(Ve(t),8,-1)},At=He,Bt=j,Tt=function(t){if(At(t)==="Function")return Bt(t)},rt=typeof document=="object"&&document.all,ye=rt===void 0&&rt!==void 0?function(t){return typeof t=="function"||t===rt}:function(t){return typeof t=="function"},lt={},Yt=!S(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),ct=v,ht=Function.prototype.call,vt=ct?ht.bind(ht):function(){return ht.apply(ht,arguments)},ar={},jt={}.propertyIsEnumerable,vr=Object.getOwnPropertyDescriptor,ai=vr&&!jt.call({1:2},1);ar.f=ai?function(t){var s=vr(this,t);return!!s&&s.enumerable}:jt;var pi,yi,fi=function(t,s){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:s}},Jn=S,xr=He,pr=Object,ei=j("".split),_i=Jn(function(){return!pr("z").propertyIsEnumerable(0)})?function(t){return xr(t)==="String"?ei(t,""):pr(t)}:pr,Gr=function(t){return t==null},oi=Gr,Oi=TypeError,_o=function(t){if(oi(t))throw new Oi("Can't call method on "+t);return t},$n=_i,gs=_o,Bs=function(t){return $n(gs(t))},Kn=ye,Tn=function(t){return typeof t=="object"?t!==null:Kn(t)},Zn={},hc=Zn,Fs=ee,bt=ye,Es=function(t){return bt(t)?t:void 0},Me=function(t,s){return arguments.length<2?Es(hc[t])||Es(Fs[t]):hc[t]&&hc[t][s]||Fs[t]&&Fs[t][s]},ot=ee.navigator,Ct=ot&&ot.userAgent,Kt=Ct?String(Ct):"",Xr=ee,Lr=Kt,Jr=Xr.process,zr=Xr.Deno,ci=Jr&&Jr.versions||zr&&zr.version,ro=ci&&ci.v8;ro&&(yi=(pi=ro.split("."))[0]>0&&pi[0]<4?1:+(pi[0]+pi[1])),!yi&&Lr&&(!(pi=Lr.match(/Edge\/(\d+)/))||pi[1]>=74)&&(pi=Lr.match(/Chrome\/(\d+)/))&&(yi=+pi[1]);var Ho=yi,Oa=Ho,da=S,ua=ee.String,Ns=!!Object.getOwnPropertySymbols&&!da(function(){var t=Symbol("symbol detection");return!ua(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Oa&&Oa<41}),w1=Ns&&!Symbol.sham&&typeof Symbol.iterator=="symbol",qc=Me,ag=ye,du=W,D1=Object,oA=w1?function(t){return typeof t=="symbol"}:function(t){var s=qc("Symbol");return ag(s)&&du(s.prototype,D1(t))},xA=String,Mo=function(t){try{return xA(t)}catch{return"Object"}},_r=ye,rn=Mo,dn=TypeError,Io=function(t){if(_r(t))return t;throw new dn(rn(t)+" is not a function")},b1=Io,u1=Gr,N1=function(t,s){var c=t[s];return u1(c)?void 0:b1(c)},Ic=vt,Sa=ye,Wc=Tn,Ll=TypeError,mA={exports:{}},hs=ee,O1=Object.defineProperty,gE=ee,EE=function(t,s){try{O1(hs,t,{value:s,configurable:!0,writable:!0})}catch{hs[t]=s}return s},Ag="__core-js_shared__",Ml=mA.exports=gE[Ag]||EE(Ag,{});(Ml.versions||(Ml.versions=[])).push({version:"3.49.0",mode:"pure",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"});var Cd=mA.exports,pd=Cd,uu=function(t,s){return pd[t]||(pd[t]=s||{})},Up=_o,L1=Object,La=function(t){return L1(Up(t))},hI=La,ts=j({}.hasOwnProperty),Xs=Object.hasOwn||function(t,s){return ts(hI(t),s)},xp=j,II=0,hE=Math.random(),fd=xp(1.1.toString),kl=function(t){return"Symbol("+(t===void 0?"":t)+")_"+fd(++II+hE,36)},cg=uu,_d=Xs,lg=kl,FA=Ns,md=w1,Xc=ee.Symbol,IE=cg("wks"),vo=md?Xc.for||Xc:Xc&&Xc.withoutSetter||lg,Po=function(t){return _d(IE,t)||(IE[t]=FA&&_d(Xc,t)?Xc[t]:vo("Symbol."+t)),IE[t]},dg=vt,zh=Tn,$h=oA,Zh=N1,Bd=function(t,s){var c,u;if(Sa(c=t.toString)&&!Wc(u=Ic(c,t))||Sa(c=t.valueOf)&&!Wc(u=Ic(c,t)))return u;throw new Ll("Can't convert object to primitive value")},o0=TypeError,dr=Po("toPrimitive"),Ze=function(t,s){if(!zh(t)||$h(t))return t;var c,u=Zh(t,dr);if(u){if(c=dg(u,t,s),!zh(c)||$h(c))return c;throw new o0("Can't convert object to primitive value")}return Bd(t)},Nt=oA,Rr=function(t){var s=Ze(t,"string");return Nt(s)?s:s+""},ti=Tn,Ui=ee.document,hn=ti(Ui)&&ti(Ui.createElement),Uo=function(t){return hn?Ui.createElement(t):{}},zs=Uo,GA=!Yt&&!S(function(){return Object.defineProperty(zs("div"),"a",{get:function(){return 7}}).a!==7}),M1=Yt,A0=vt,sA=ar,CT=fi,pT=Bs,fT=Rr,_T=Xs,c0=GA,Fp=Object.getOwnPropertyDescriptor;lt.f=M1?Fp:function(t,s){if(t=pT(t),s=fT(s),c0)try{return Fp(t,s)}catch{}if(_T(t,s))return CT(!A0(sA.f,t,s),t[s])};var Be=S,Re=ye,Ke=/#|\.prototype\./,Ye=function(t,s){var c=Mt[gt(t)];return c===cr||c!==Er&&(Re(s)?Be(s):!!s)},gt=Ye.normalize=function(t){return String(t).replace(Ke,".").toLowerCase()},Mt=Ye.data={},Er=Ye.NATIVE="N",cr=Ye.POLYFILL="P",Ei=Ye,Ji=Io,xi=v,qn=Tt(Tt.bind),mn=function(t,s){return Ji(t),s===void 0?t:xi?qn(t,s):function(){return t.apply(s,arguments)}},Gs={},ga=Yt&&S(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),zc=Tn,g1=String,Do=TypeError,Xo=function(t){if(zc(t))return t;throw new Do(g1(t)+" is not an object")},_m=Yt,l0=GA,d0=ga,gu=Xo,u0=Rr,CI=TypeError,mT=Object.defineProperty,BT=Object.getOwnPropertyDescriptor,Gp="enumerable",Vp="configurable",ST="writable";Gs.f=_m?d0?function(t,s,c){if(gu(t),s=u0(s),gu(c),typeof t=="function"&&s==="prototype"&&"value"in c&&ST in c&&!c[ST]){var u=BT(t,s);u&&u[ST]&&(t[s]=c.value,c={configurable:Vp in c?c[Vp]:u[Vp],enumerable:Gp in c?c[Gp]:u[Gp],writable:!1})}return mT(t,s,c)}:mT:function(t,s,c){if(gu(t),s=u0(s),gu(c),l0)try{return mT(t,s,c)}catch{}if("get"in c||"set"in c)throw new CI("Accessors not supported");return"value"in c&&(t[s]=c.value),t};var A8=Gs,g0=fi,Sd=Yt?function(t,s,c){return A8.f(t,s,g0(1,c))}:function(t,s,c){return t[s]=c,t},Kp=ee,u8=De,E8=Tt,h8=ye,I8=lt.f,pI=Ei,fI=Zn,_I=mn,I0=Sd,b9=Xs,wn=function(t){var s=function(c,u,h){if(this instanceof s){switch(arguments.length){case 0:return new t;case 1:return new t(c);case 2:return new t(c,u)}return new t(c,u,h)}return u8(t,this,arguments)};return s.prototype=t.prototype,s},In=function(t,s){var c,u,h,_,B,Q,T,D,O,P=t.target,U=t.global,H=t.stat,$=t.proto,Z=U?Kp:H?Kp[P]:Kp[P]&&Kp[P].prototype,te=U?fI:fI[P]||I0(fI,P,{})[P],se=te.prototype;for(_ in s)u=!(c=pI(U?_:P+(H?".":"#")+_,t.forced))&&Z&&b9(Z,_),Q=te[_],u&&(T=t.dontCallGetSet?(O=I8(Z,_))&&O.value:Z[_]),B=u&&T?T:s[_],(c||$||typeof Q!=typeof B)&&(D=t.bind&&u?_I(B,Kp):t.wrap&&u?wn(B):$&&h8(B)?E8(B):B,(t.sham||B&&B.sham||Q&&Q.sham)&&I0(D,"sham",!0),I0(te,_,D),$&&(b9(fI,h=P+"Prototype")||I0(fI,h,{}),I0(fI[h],_,B),t.real&&se&&(c||!se[_])&&I0(se,_,B)))},C8=Math.ceil,f8=Math.floor,m8=Math.trunc||function(t){var s=+t;return(s>0?f8:C8)(s)},RT=m8,yT=function(t){var s=+t;return s!=s||s===0?0:RT(s)},R8=yT,y8=Math.max,QT=Math.min,TT=function(t,s){var c=R8(t);return c<0?y8(c+s,0):QT(c,s)},Q8=yT,N9=Math.min,O9=function(t){var s=Q8(t);return s>0?N9(s,9007199254740991):0},CE=O9,ug=function(t){return CE(t.length)},T8=Bs,D8=TT,L9=ug,mm=function(t){return function(s,c,u){var h=T8(s),_=L9(h);if(_===0)return!t&&-1;var B,Q=D8(u,_);if(t&&c!=c){for(;_>Q;)if((B=h[Q++])!=B)return!0}else for(;_>Q;Q++)if((t||Q in h)&&h[Q]===c)return t||Q||0;return!t&&-1}},wT={includes:mm(!0),indexOf:mm(!1)},b8=In,O8=wT.includes,Cc=S,k8=Cc(function(){return!Array(1).includes()}),P8=Cc(function(){return[,1].includes(void 0,1)});b8({target:"Array",proto:!0,forced:k8||P8},{includes:function(t){return O8(this,t,arguments.length>1?arguments[1]:void 0)}});var U8=ee,x8=Zn,E1=function(t,s){var c=x8[t+"Prototype"],u=c&&c[s];if(u)return u;var h=U8[t],_=h&&h.prototype;return _&&_[s]},K8=E1("Array","includes"),Y8=Tn,M9=He,vT=Po("match"),DT=function(t){var s;return Y8(t)&&((s=t[vT])!==void 0?!!s:M9(t)==="RegExp")},j8=DT,Bm=TypeError,k9={};k9[Po("toStringTag")]="z";var bT=String(k9)==="[object z]",q8=bT,pE=ye,Sm=He,W8=Po("toStringTag"),k1=Object,z8=Sm(function(){return arguments}())==="Arguments",fE=q8?Sm:function(t){var s,c,u;return t===void 0?"Undefined":t===null?"Null":typeof(c=function(h,_){try{return h[_]}catch{}}(s=k1(t),W8))=="string"?c:z8?Sm(s):(u=Sm(s))==="Object"&&pE(s.callee)?"Arguments":u},Z8=fE,eG=String,h1=function(t){if(Z8(t)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return eG(t)},tG=Po("match"),rG=In,iG=function(t){if(j8(t))throw new Bm("The method doesn't accept regular expressions");return t},P9=_o,U9=h1,nG=function(t){var s=/./;try{"/./"[t](s)}catch{try{return s[tG]=!1,"/./"[t](s)}catch{}}return!1},NT=j("".indexOf);rG({target:"String",proto:!0,forced:!nG("includes")},{includes:function(t){return!!~NT(U9(P9(this)),U9(iG(t)),arguments.length>1?arguments[1]:void 0)}});var OT=E1("String","includes"),x9=W,Rt=K8,oG=OT,LT=Array.prototype,MT=String.prototype,sG=function(t){var s=t.includes;return t===LT||x9(LT,t)&&s===LT.includes?Rt:typeof t=="string"||t===MT||x9(MT,t)&&s===MT.includes?oG:s},Et=f(sG),F9=Io,aG=La,AG=_i,cG=ug,Hp=TypeError,mI="Reduce of empty array with no initial value",lG=function(t){return function(s,c,u,h){var _=aG(s),B=AG(_),Q=cG(_);if(F9(c),Q===0&&u<2)throw new Hp(mI);var T=t?Q-1:0,D=t?-1:1;if(u<2)for(;;){if(T in B){h=B[T],T+=D;break}if(T+=D,t?T<0:Q<=T)throw new Hp(mI)}for(;t?T>=0:Q>T;T+=D)T in B&&(h=c(h,B[T],T,_));return h}},dG={left:lG(!1)},Rm=S,BI=function(t,s){var c=[][t];return!!c&&Rm(function(){c.call(null,s||function(){return 1},1)})},_E=ee,uG=Kt,gG=He,ym=function(t){return uG.slice(0,t.length)===t},kT=ym("Bun/")?"BUN":ym("Cloudflare-Workers")?"CLOUDFLARE":ym("Deno/")?"DENO":ym("Node.js/")?"NODE":_E.Bun&&typeof Bun.version=="string"?"BUN":_E.Deno&&typeof Deno.version=="object"?"DENO":gG(_E.process)==="process"?"NODE":_E.window&&_E.document?"BROWSER":"REST",SI=kT==="NODE",EG=dG.left;In({target:"Array",proto:!0,forced:!SI&&Ho>79&&Ho<83||!BI("reduce")},{reduce:function(t){var s=arguments.length;return EG(this,t,s,s>1?arguments[1]:void 0)}});var G9=E1("Array","reduce"),$c=W,hG=G9,C0=Array.prototype,IG=function(t){var s=t.reduce;return t===C0||$c(C0,t)&&s===C0.reduce?hG:s},V9=IG,VA=f(V9),K9=He,p0=Array.isArray||function(t){return K9(t)==="Array"},CG=In,pG=p0,PT=j([].reverse),H9=[1,2];CG({target:"Array",proto:!0,forced:String(H9)===String(H9.reverse())},{reverse:function(){return pG(this)&&(this.length=this.length),PT(this)}});var Y9=E1("Array","reverse"),j9=W,fG=Y9,Qm=Array.prototype,Tm=function(t){var s=t.reverse;return t===Qm||j9(Qm,t)&&s===Qm.reverse?fG:s},J9=Tm,RI=f(J9),_G=kl,q9=uu("keys"),wm=function(t){return q9[t]||(q9[t]=_G(t))},W9=!S(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),UT=Xs,mG=ye,xT=La,BG=W9,X9=wm("IE_PROTO"),FT=Object,SG=FT.prototype,GT=BG?FT.getPrototypeOf:function(t){var s=xT(t);if(UT(s,X9))return s[X9];var c=s.constructor;return mG(c)&&s instanceof c?c.prototype:s instanceof FT?SG:null},RG=j,yG=Io,QG=Tn,TG=function(t){return QG(t)||t===null},wG=String,vG=TypeError,vm=function(t,s,c){try{return RG(yG(Object.getOwnPropertyDescriptor(t,s)[c]))}catch{}},Dm=Tn,VT=_o,DG=function(t){if(TG(t))return t;throw new vG("Can't set "+wG(t)+" as a prototype")},bG=Object.setPrototypeOf||("__proto__"in{}?function(){var t,s=!1,c={};try{(t=vm(Object.prototype,"__proto__","set"))(c,[]),s=c instanceof Array}catch{}return function(u,h){return VT(u),DG(h),Dm(u)&&(s?t(u,h):u.__proto__=h),u}}():void 0),bm={},Yp={},Nm=Xs,KT=Bs,NG=wT.indexOf,OG=Yp,yI=j([].push),z9=function(t,s){var c,u=KT(t),h=0,_=[];for(c in u)!Nm(OG,c)&&Nm(u,c)&&yI(_,c);for(;s.length>h;)Nm(u,c=s[h++])&&(~NG(_,c)||yI(_,c));return _},HT=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],LG=z9,MG=HT.concat("length","prototype");bm.f=Object.getOwnPropertyNames||function(t){return LG(t,MG)};var jp={};jp.f=Object.getOwnPropertySymbols;var kG=Me,$9=bm,PG=jp,UG=Xo,xG=j([].concat),YT=kG("Reflect","ownKeys")||function(t){var s=$9.f(UG(t)),c=PG.f;return c?xG(s,c(t)):s},Z9=Xs,FG=YT,Om=lt,GG=Gs,jT={},VG=z9,KG=HT,Lm=Object.keys||function(t){return VG(t,KG)},HG=Yt,Mm=ga,eL=Gs,YG=Xo,jG=Bs,tL=Lm;jT.f=HG&&!Mm?Object.defineProperties:function(t,s){YG(t);for(var c,u=jG(s),h=tL(s),_=h.length,B=0;_>B;)eL.f(t,c=h[B++],u[c]);return t};var km,iL=Me("document","documentElement"),JG=Xo,JT=jT,Pm=HT,oL=Yp,qT=iL,sL=Uo,Um="prototype",QI="script",TI=wm("IE_PROTO"),WT=function(){},AL=function(t){return"<"+QI+">"+t+""},XT=function(t){t.write(AL("")),t.close();var s=t.parentWindow.Object;return t=null,s},xm=function(){try{km=new ActiveXObject("htmlfile")}catch{}var t,s,c;xm=typeof document<"u"?document.domain&&km?XT(km):(s=sL("iframe"),c="java"+QI+":",s.style.display="none",qT.appendChild(s),s.src=String(c),(t=s.contentWindow.document).open(),t.write(AL("document.F=Object")),t.close(),t.F):XT(km);for(var u=Pm.length;u--;)delete xm[Um][Pm[u]];return xm()};oL[TI]=!0;var Jp=Object.create||function(t,s){var c;return t!==null?(WT[Um]=JG(t),c=new WT,WT[Um]=null,c[TI]=t):c=xm(),s===void 0?c:JT.f(c,s)},lL=Tn,qG=Sd,gL=Error,WG=j("".replace),XG=String(new gL("zxcasd").stack),EL=/\n\s*at [^:]*:[^\n]*/,zG=EL.test(XG),IL=fi,wI=!S(function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",IL(1,7)),t.stack!==7)}),$G=Sd,ZG=function(t,s){if(zG&&typeof t=="string"&&!gL.prepareStackTrace)for(;s--;)t=WG(t,EL,"");return t},eV=wI,zT=Error.captureStackTrace,vI={},CL=vI,tV=Po("iterator"),rV=Array.prototype,fL=function(t){return t!==void 0&&(CL.Array===t||rV[tV]===t)},Fm=fE,mL=N1,iV=Gr,nV=vI,oV=Po("iterator"),qp=function(t){if(!iV(t))return mL(t,oV)||mL(t,"@@iterator")||nV[Fm(t)]},sV=vt,$T=Io,aV=Xo,BL=Mo,AV=qp,RL=TypeError,ZT=function(t,s){var c=arguments.length<2?AV(t):s;if($T(c))return aV(sV(c,t));throw new RL(BL(t)+" is not iterable")},cV=vt,yL=Xo,lV=N1,ew=function(t,s,c){var u,h;yL(t);try{if(!(u=lV(t,"return"))){if(s==="throw")throw c;return c}u=cV(u,t)}catch(_){h=!0,u=_}if(s==="throw")throw c;if(h)throw u;return yL(u),c},dV=mn,QL=vt,uV=Xo,gV=Mo,wL=fL,EV=ug,Wp=W,vL=ZT,Xp=qp,DL=ew,hV=TypeError,Gm=function(t,s){this.stopped=t,this.result=s},bL=Gm.prototype,mE=function(t,s,c){var u,h,_,B,Q,T,D,O=c&&c.that,P=!(!c||!c.AS_ENTRIES),U=!(!c||!c.IS_RECORD),H=!(!c||!c.IS_ITERATOR),$=!(!c||!c.INTERRUPTED),Z=dV(s,O),te=function(me){var Qe=u;return u=void 0,Qe&&DL(Qe,"normal"),new Gm(!0,me)},se=function(me){return P?(uV(me),$?Z(me[0],me[1],te):Z(me[0],me[1])):$?Z(me,te):Z(me)};if(U)u=t.iterator;else if(H)u=t;else{if(!(h=Xp(t)))throw new hV(gV(t)+" is not iterable");if(wL(h)){for(_=0,B=EV(t);B>_;_++)if((Q=se(t[_]))&&Wp(bL,Q))return Q;return new Gm(!1)}u=vL(t,h)}for(T=U?t.next:u.next;!(D=QL(T,u)).done;){var ge=D.value;try{Q=se(ge)}catch(me){if(!u)throw me;DL(u,"throw",me)}if(typeof Q=="object"&&Q&&Wp(bL,Q))return Q}return new Gm(!1)},IV=h1,NL=In,tw=W,rw=GT,Vm=bG,CV=function(t,s,c){for(var u=FG(s),h=GG.f,_=Om.f,B=0;B2&&Km(c,arguments[2]);var h=[];return DI(t,Ym,{that:h}),iw(c,"errors",h),c};Vm?Vm(bI,BE):CV(bI,BE,{name:!0});var jm=bI.prototype=OL(BE.prototype,{constructor:nw(1,bI),message:nw(1,""),name:nw(1,"AggregateError")});NL({global:!0},{AggregateError:bI});var Jm,NI,qm,fV=ye,Wm=ee.WeakMap,sw=fV(Wm)&&/native code/.test(String(Wm)),LL=ee,_V=Tn,ML=Sd,zp=Xs,aw=Cd,Eu=wm,OI=Yp,SE="Object already initialized",Xm=LL.TypeError,kL=LL.WeakMap;if(sw||aw.state){var I1=aw.state||(aw.state=new kL);I1.get=I1.get,I1.has=I1.has,I1.set=I1.set,Jm=function(t,s){if(I1.has(t))throw new Xm(SE);return s.facade=t,I1.set(t,s),s},NI=function(t){return I1.get(t)||{}},qm=function(t){return I1.has(t)}}else{var RE=Eu("state");OI[RE]=!0,Jm=function(t,s){if(zp(t,RE))throw new Xm(SE);return s.facade=t,ML(t,RE,s),s},NI=function(t){return zp(t,RE)?t[RE]:{}},qm=function(t){return zp(t,RE)}}var f0,Aw,PL,gg={set:Jm,get:NI,has:qm,enforce:function(t){return qm(t)?NI(t):Jm(t,{})},getterFor:function(t){return function(s){var c;if(!_V(s)||(c=NI(s)).type!==t)throw new Xm("Incompatible receiver, "+t+" required");return c}}},zm=Yt,mV=Xs,Eg=Function.prototype,BV=zm&&Object.getOwnPropertyDescriptor,UL=mV(Eg,"name"),xL={PROPER:UL&&(function(){}).name==="something",CONFIGURABLE:UL&&(!zm||zm&&BV(Eg,"name").configurable)},SV=Sd,hg=function(t,s,c,u){return u&&u.enumerable?t[s]=c:SV(t,s,c),t},RV=S,cw=ye,FL=Tn,yV=Jp,lw=GT,QV=hg,dw=Po("iterator"),GL=!1;[].keys&&("next"in(PL=[].keys())?(Aw=lw(lw(PL)))!==Object.prototype&&(f0=Aw):GL=!0);var TV=!FL(f0)||RV(function(){var t={};return f0[dw].call(t)!==t});cw((f0=TV?{}:yV(f0))[dw])||QV(f0,dw,function(){return this});var VL={IteratorPrototype:f0,BUGGY_SAFARI_ITERATORS:GL},wV=fE,vV=bT?{}.toString:function(){return"[object "+wV(this)+"]"},KL=bT,Ig=Gs.f,DV=Sd,bV=Xs,NV=vV,HL=Po("toStringTag"),Cg=function(t,s,c,u){var h=c?t:t&&t.prototype;h&&(bV(h,HL)||Ig(h,HL,{configurable:!0,value:s}),u&&!KL&&DV(h,"toString",NV))},OV=VL.IteratorPrototype,uw=Jp,LV=fi,MV=Cg,kV=vI,PV=function(){return this},gw=function(t,s,c,u){var h=s+" Iterator";return t.prototype=uw(OV,{next:LV(+!u,c)}),MV(t,h,!1,!0),kV[h]=PV,t},UV=In,YL=vt,jL=xL,xV=gw,FV=GT,$m=Cg,Zm=hg,Ew=vI,eB=VL,JL=jL.PROPER,tB=eB.BUGGY_SAFARI_ITERATORS,rB=Po("iterator"),$p="keys",iB="values",hw="entries",qL=function(){return this},WL=function(t,s,c,u,h,_,B){xV(c,s,u);var Q,T,D,O=function(se){if(se===h&&Z)return Z;if(!tB&&se&&se in H)return H[se];switch(se){case $p:case iB:case hw:return function(){return new c(this,se)}}return function(){return new c(this)}},P=s+" Iterator",U=!1,H=t.prototype,$=H[rB]||H["@@iterator"]||h&&H[h],Z=!tB&&$||O(h),te=s==="Array"&&H.entries||$;if(te&&(Q=FV(te.call(new t)))!==Object.prototype&&Q.next&&($m(Q,P,!0,!0),Ew[P]=qL),JL&&h===iB&&$&&$.name!==iB&&(U=!0,Z=function(){return YL($,this)}),h)if(T={values:O(iB),keys:_?Z:O($p),entries:O(hw)},B)for(D in T)(tB||U||!(D in H))&&Zm(H,D,T[D]);else UV({target:s,proto:!0,forced:tB||U},T);return B&&H[rB]!==Z&&Zm(H,rB,Z,{}),Ew[s]=Z,T},_0=function(t,s){return{value:t,done:s}},XL=Bs,zL=vI,$L=gg;Gs.f;var GV=WL,m0=_0,ZL="Array Iterator",VV=$L.set,KV=$L.getterFor(ZL);GV(Array,"Array",function(t,s){VV(this,{type:ZL,target:XL(t),index:0,kind:s})},function(){var t=KV(this),s=t.target,c=t.index++;if(!s||c>=s.length)return t.target=null,m0(void 0,!0);switch(t.kind){case"keys":return m0(c,!1);case"values":return m0(s[c],!1)}return m0([c,s[c]],!1)},"values"),zL.Arguments=zL.Array;var eM=Gs,nB=function(t,s,c){return eM.f(t,s,c)},HV=Me,Iw=nB,YV=Yt,oB=Po("species"),jV=W,tM=TypeError,Cw=function(t,s){if(jV(s,t))return t;throw new tM("Incorrect invocation")},JV=ye,sB=Cd,qV=j(Function.toString);JV(sB.inspectSource)||(sB.inspectSource=function(t){return qV(t)});var rM=sB.inspectSource,iM=j,nM=S,aB=ye,WV=fE,XV=rM,LI=function(){},pw=Me("Reflect","construct"),B0=/^\s*(?:class|function)\b/,MI=iM(B0.exec),oM=!B0.test(LI),S0=function(t){if(!aB(t))return!1;try{return pw(LI,[],t),!0}catch{return!1}},Zp=function(t){if(!aB(t))return!1;switch(WV(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return oM||!!MI(B0,XV(t))}catch{return!0}};Zp.sham=!0;var r3,kI,sM,AB,cB=!pw||nM(function(){var t;return S0(S0.call)||!S0(Object)||!S0(function(){t=!0})||t})?Zp:S0,zV=cB,$V=Mo,fw=TypeError,pg=Xo,ZV=function(t){if(zV(t))return t;throw new fw($V(t)+" is not a constructor")},R0=Gr,aM=Po("species"),P1=function(t,s){var c,u=pg(t).constructor;return u===void 0||R0(c=pg(u)[aM])?s:ZV(c)},yE=j([].slice),eK=TypeError,QE=function(t,s){if(t1?XK(arguments,1):[],c=zK.f(this),u=VM(function(){return GM(tv(t),void 0,s)});return(u.error?c.reject:c.resolve)(u.value),c.promise}});var $K=Rd;In({target:"Promise",stat:!0},{withResolvers:function(){var t=$K.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var HM=In,iv=Q0,nv=S,ZK=Me,eH=ye,tH=P1,YM=xM,jM=iv&&iv.prototype;HM({target:"Promise",proto:!0,real:!0,forced:!!iv&&nv(function(){jM.finally.call({then:function(){}},function(){})})},{finally:function(t){var s=tH(this,ZK("Promise")),c=eH(t);return this.then(c?function(u){return YM(s,t()).then(function(){return u})}:t,c?function(u){return YM(s,t()).then(function(){throw u})}:t)}});var ov=j,JM=yT,sv=h1,rH=_o,iH=ov("".charAt),av=ov("".charCodeAt),nH=ov("".slice),Av=function(t){return function(s,c){var u,h,_=sv(rH(s)),B=JM(c),Q=_.length;return B<0||B>=Q?t?"":void 0:(u=av(_,B))<55296||u>56319||B+1===Q||(h=av(_,B+1))<56320||h>57343?t?iH(_,B):u:t?nH(_,B,B+2):h-56320+(u-55296<<10)+65536}},bB={codeAt:Av(!1),charAt:Av(!0)},oH=bB.charAt,sH=h1,qM=gg,aH=WL,WM=_0,XM="String Iterator",zM=qM.set,cv=qM.getterFor(XM);aH(String,"String",function(t){zM(this,{type:XM,string:sH(t),index:0})},function(){var t,s=cv(this),c=s.string,u=s.index;return u>=c.length?WM(void 0,!0):(t=oH(c,u),s.index+=t.length,WM(t,!1))});var $M=Zn.Promise,Ft={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},AH=ee,cH=Cg,ZM=vI;for(var lv in Ft)cH(AH[lv],lv),ZM[lv]=ZM.Array;var e6=$M,Ut=f(e6),lH=E1("Array","values"),dH=fE,U1=Xs,t6=W,uH=lH,NB=Array.prototype,gH={DOMTokenList:!0,NodeList:!0},dv=function(t){var s=t.values;return t===NB||t6(NB,t)&&s===NB.values||U1(gH,dH(t))?uH:s},BA=f(dv),uv=Mo,EH=TypeError,r6=yE,i6=Math.floor,gv=function(t,s){var c=t.length;if(c<8)for(var u,h,_=1;_0;)t[h]=t[--h];h!==_++&&(t[h]=u)}else for(var B=i6(c/2),Q=gv(r6(t,0,B),s),T=gv(r6(t,B),s),D=Q.length,O=T.length,P=0,U=0;P3)){if(mH)return!0;if(c6)return c6<603;var t,s,c,u,h="";for(t=65;t<76;t++){switch(s=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:c=3;break;case 68:case 71:c=4;break;default:c=2}for(u=0;u<47;u++)_g.push({k:s+u,v:c})}for(_g.sort(function(_,B){return B.v-_.v}),u=0;u<_g.length;u++)s=_g[u].k.charAt(0),h.charAt(h.length-1)!==s&&(h+=s);return h!=="DGBEFHACIJK"}});o6({target:"Array",proto:!0,forced:SH||!pv||!RH||!LE},{sort:function(t){t!==void 0&&pH(t);var s=fH(this);if(LE)return t===void 0?l6(s):l6(s,t);var c,u,h=[],_=Iv(s);for(u=0;u<_;u++)u in s&&BH(h,s[u]);for(OE(h,function(B){return function(Q,T){if(T===void 0)return-1;if(Q===void 0)return 1;if(B!==void 0)return+B(Q,T)||0;var D=Cv(Q),O=Cv(T);return D===O?0:D>O?1:-1}}(t)),c=Iv(h),u=0;uh;){if(DH(s=+arguments[h],1114111)!==s)throw new MB(s+" is not a valid code point");c[h++]=s<65536?u6(s):u6(55296+((s-=65536)>>10),s%1024+56320)}return g6(c,"")}});var _v=S,bH=Po("iterator"),b0=!_v(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),s=t.searchParams,c=new URLSearchParams("a=1&a=2&b=3"),u="";return t.pathname="c%20d",s.forEach(function(h,_){s.delete("b"),u+=_+h}),c.delete("a",2),c.delete("b",void 0),!t.toJSON||!c.has("a",1)||c.has("a",2)||!c.has("a",void 0)||c.has("b")||!s.size&&!0||!s.sort||t.href!=="https://a/c%20d?a=1&c=3"||s.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!s[bH]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://тест").host!=="xn--e1aybc"||new URL("https://a#б").hash!=="#%D0%B1"||u!=="a1c3"||new URL("https://x",void 0).host!=="x"}),yd=hg,N0=In,mv=ee,PB=Nw,NH=Me,UB=vt,Qd=j,d3=Yt,xB=b0,Bv=hg,Sv=nB,OH=function(t,s,c){for(var u in s)c&&c.unsafe&&t[u]?t[u]=s[u]:yd(t,u,s[u],c);return t},LH=Cg,MH=gw,Rv=gg,yv=Cw,KA=ye,kH=Xs,E6=mn,h6=fE,PH=Xo,u3=Tn,za=h1,UH=Jp,I6=fi,O0=ZT,C6=qp,g3=_0,HA=QE,xH=n6,p6=Po("iterator"),mg="URLSearchParams",YI=mg+"Iterator",FB=Rv.set,Zc=Rv.getterFor(mg),FH=Rv.getterFor(YI),f6=PB("fetch"),GB=PB("Request"),E3=PB("Headers"),Qv=GB&&GB.prototype,h3=E3&&E3.prototype,_6=mv.TypeError,ME=mv.encodeURIComponent,m6=String.fromCharCode,GH=NH("String","fromCodePoint"),B6=parseInt,I3=Qd("".charAt),Tv=Qd([].join),kE=Qd([].push),S6=Qd("".replace),VH=Qd([].shift),wv=Qd([].splice),R6=Qd("".split),y6=Qd("".slice),T6=Qd(/./.exec),KH=/\+/g,HH=/^[0-9a-f]+$/i,w6=function(t,s){var c=y6(t,s,s+2);return T6(HH,c)?B6(c,16):NaN},v6=function(t){for(var s=0,c=128;c>0&&t&c;c>>=1)s++;return s},vv=function(t){var s=null,c=t.length;switch(c){case 1:s=t[0];break;case 2:s=(31&t[0])<<6|63&t[1];break;case 3:s=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:s=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return s===null||s>1114111||s>=55296&&s<=57343||s<(c>3?65536:c>2?2048:c>1?128:0)?null:s},Dv=function(t){for(var s=(t=S6(t,KH," ")).length,c="",u=0;us){c+="%",u++;continue}var _=w6(t,u+1);if(_!=_){c+=h,u++;continue}u+=2;var B=v6(_);if(B===0)h=m6(_);else{if(B===1||B>4){c+="�",u++;continue}for(var Q=[_],T=1;Ts||I3(t,u)!=="%");){var D=w6(t,u+1);if(D!=D||D>191||D<128||T===1&&(_===224&&D<160||_===237&&D>159||_===240&&D<144||_===244&&D>143))break;kE(Q,D),u+=2,T++}if(Q.length!==B){c+="�";continue}var O=vv(Q);if(O===null){for(var P=0;P=s.length)return t.target=null,g3(void 0,!0);var u=s[c];switch(t.kind){case"keys":return g3(u.key,!1);case"values":return g3(u.value,!1)}return g3([u.key,u.value],!1)},!0),HB=function(t){this.entries=[],this.url=null,t!==void 0&&(u3(t)?this.parseObject(t):this.parseQuery(typeof t=="string"?I3(t,0)==="?"?y6(t,1):t:za(t)))};HB.prototype={type:mg,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var s,c,u,h,_,B,Q,T=this.entries,D=C6(t);if(D)for(c=(s=O0(t,D)).next;!(u=UB(c,s)).done;){if(_=(h=O0(PH(u.value))).next,(B=UB(_,h)).done||(Q=UB(_,h)).done||!UB(_,h).done)throw new _6("Expected sequence with length 2");kE(T,{key:za(B.value),value:za(Q.value)})}else for(var O in t)kH(t,O)&&kE(T,{key:O,value:za(t[O])})},parseQuery:function(t){if(t)for(var s,c,u=this.entries,h=R6(t,"&"),_=0;_0?arguments[0]:void 0));d3||(this.size=t.entries.length)},JI=F1.prototype;if(OH(JI,{append:function(t,s){var c=Zc(this);HA(arguments.length,2),kE(c.entries,{key:za(t),value:za(s)}),d3||this.size++,c.updateURL()},delete:function(t){for(var s=Zc(this),c=HA(arguments.length,1),u=s.entries,h=za(t),_=c<2?void 0:arguments[1],B=_===void 0?_:za(_),Q=0;Qc.key?1:-1}),t.updateURL()},forEach:function(t){for(var s,c=Zc(this).entries,u=E6(t,arguments.length>1?arguments[1]:void 0),h=0;h1?N6(arguments[1]):{})}}),KA(GB)){var bv=function(t){return yv(this,Qv),new GB(t,arguments.length>1?N6(arguments[1]):{})};Qv.constructor=bv,bv.prototype=Qv,N0({global:!0,dontCallGetSet:!0,forced:!0},{Request:bv})}}var Ul,Nv={URLSearchParams:F1,getState:Zc},JH=Zn.URLSearchParams,O6=Yt,qH=j,WH=vt,qI=S,YB=Lm,XH=jp,zH=ar,$H=La,ZH=_i,WI=Object.assign,L6=Object.defineProperty,eY=qH([].concat),Ov=!WI||qI(function(){if(O6&&WI({b:1},WI(L6({},"a",{enumerable:!0,get:function(){L6(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var t={},s={},c=Symbol("assign detection"),u="abcdefghijklmnopqrst";return t[c]=7,u.split("").forEach(function(h){s[h]=h}),WI({},t)[c]!==7||YB(WI({},s)).join("")!==u})?function(t,s){for(var c=$H(t),u=arguments.length,h=1,_=XH.f,B=zH.f;u>h;)for(var Q,T=ZH(arguments[h++]),D=_?eY(YB(T),_(T)):YB(T),O=D.length,P=0;O>P;)Q=D[P++],O6&&!WH(B,T,Q)||(c[Q]=T[Q]);return c}:WI,rY=Xo,iY=ew,nY=Yt,oY=Gs,sY=fi,jB=function(t,s,c){nY?oY.f(t,s,sY(0,c)):t[s]=c},AY=Yt,M6=p0,lY=TypeError,dY=Object.getOwnPropertyDescriptor,C3=AY&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}()?function(t,s){if(M6(t)&&!dY(t,"length").writable)throw new lY("Cannot set read only .length");return t.length=s}:function(t,s){return t.length=s},L0=mn,Lv=vt,gY=La,k6=function(t,s,c,u){try{return u?s(rY(c)[0],c[1]):s(c)}catch(h){iY(t,"throw",h)}},P6=fL,U6=cB,EY=ug,M0=jB,Mv=C3,x6=ZT,F6=qp,PE=ew,G6=Array,V6=function(t){var s=U6(this),c=arguments.length,u=c>1?arguments[1]:void 0,h=u!==void 0;h&&(u=L0(u,c>2?arguments[2]:void 0));var _,B,Q,T,D,O,P=gY(t),U=F6(P),H=0;if(!U||this===G6&&P6(U))for(_=EY(P),B=s?new this(_):G6(_);_>H;H++)O=h?u(P[H],H):P[H],M0(B,H,O);else for(B=s?new this:[],D=(T=x6(P,U)).next;!(Q=Lv(D,T)).done;H++){O=h?k6(T,u,[Q.value,H],!0):Q.value;try{M0(B,H,O)}catch($){PE(T,"throw",$)}}return Mv(B,H),B},k0=j,JB=2147483647,hY=/[^\0-\u007E]/,K6=/[.\u3002\uFF0E\uFF61]/g,H6="Overflow: input needs wider integers to process",qB=RangeError,IY=k0(K6.exec),UE=Math.floor,WB=String.fromCharCode,el=k0("".charCodeAt),p3=k0([].join),aA=k0([].push),CY=k0("".replace),kv=k0("".split),Pv=k0("".toLowerCase),P0=function(t){return t+22+75*(t<26)},Td=function(t,s,c){var u=0;for(t=c?UE(t/700):t>>1,t+=UE(t/s);t>455;)t=UE(t/35),u+=36;return UE(u+36*t/(t+38))},pY=function(t){var s=[];t=function(se){for(var ge=[],me=0,Qe=se.length;me=55296&&Oe<=56319&&me=_&&uUE((JB-B)/P))throw new qB(H6);for(B+=(O-_)*P,_=O,c=0;cJB)throw new qB(H6);if(u===_){for(var U=B,H=36;;){var $=H<=Q?1:H>=Q+26?26:H-Q;if(U<$)break;var Z=U-$,te=36-$;aA(s,WB(P0($+Z%te))),U=UE(Z/te),H+=36}aA(s,WB(P0(U))),Q=Td(B,P,D===T),B=0,D++}}B++,_++}return p3(s,"")},_Y=In,wd=Yt,mY=b0,XB=ee,Uv=mn,tl=j,zB=hg,G1=nB,BY=Cw,$B=Xs,Bg=Ov,xE=V6,fc=yE,RY=bB.codeAt,Y6=function(t){var s,c,u=[],h=kv(CY(Pv(t),K6,"."),".");for(s=0;s?@[\\\]^|]/,X6=/[\0\t\n\r #/:<>?@[\\\]^|]/,jv=/^[\u0000-\u0020]+/,z6=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,ek=/[\t\n\r]/g,F0=function(t){var s,c,u,h;if(typeof t=="number"){for(s=[],c=0;c<4;c++)NY(s,t%256),t=_3(t/256);return U0(s,".")}if(typeof t=="object"){for(s="",u=function(_){for(var B=null,Q=1,T=null,D=0,O=0;O<8;O++)_[O]!==0?(D>Q&&(B=T,Q=D),T=null,D=0):(T===null&&(T=O),++D);return D>Q?T:B}(t),c=0;c<8;c++)h&&t[c]===0||(h&&(h=!1),u===c?(s+=c?":":"::",h=!0):(s+=vY(t[c],16),c<7&&(s+=":")));return"["+s+"]"}return t},S3={},Jv=Bg({},S3,{" ":1,'"':1,"#":1,"<":1,">":1}),tS=Bg({},Jv,{"'":1}),R3=Bg({},S3,{" ":1,'"':1,"<":1,">":1,"`":1}),rS=Bg({},R3,{"#":1,"?":1,"{":1,"}":1,"^":1}),y3=Bg({},rS,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),pu=function(t,s){var c=RY(t,0);return c>=32&&c<127&&!$B(s,t)?t:t==="'"&&$B(s,t)?"%27":wY(t)},rC={ftp:21,file:null,http:80,https:443,ws:80,wss:443},iC=function(t,s){var c;return t.length===2&&_c(Gv,xl(t,0))&&((c=xl(t,1))===":"||!s&&c==="|")},iS=function(t){var s;return t.length>1&&iC(tC(t,0,2))&&(t.length===2||(s=xl(t,2))==="/"||s==="\\"||s==="?"||s==="#")},nC=function(t){return t==="."||eS(t)==="%2e"},Fl={},qv={},Rg={},fu={},nS={},FE={},C1={},rl={},T3={},w3={},Wv={},oS={},Xv={},AS={},tk={},v3={},oC={},_u={},rk={},G0={},mu={},zv=function(t,s,c){var u,h,_,B=$a(t);if(s){if(h=this.parse(B))throw new $I(h);this.searchParams=null}else{if(c!==void 0&&(u=new zv(c,!0)),h=this.parse(B,null,u))throw new $I(h);(_=QY(new yY)).bindURL(this),this.searchParams=_}};zv.prototype={type:"URL",parse:function(t,s,c){var u,h,_,B,Q,T=this,D=s||Fl,O=0,P="",U=!1,H=!1,$=!1;for(t=$a(t),s||(T.scheme="",T.username="",T.password="",T.host=null,T.port=null,T.path=[],T.query=null,T.fragment=null,T.cannotBeABaseURL=!1,t=ZB(t,jv,""),t=ZB(t,z6,"$1")),t=ZB(t,ek,""),u=xE(t);O<=u.length;){switch(h=u[O],D){case Fl:if(!h||!_c(Gv,h)){if(s)return x0;D=Rg;continue}P+=eS(h),D=qv;break;case qv:if(h&&_c(Vv,h))P+=eS(h);else{if(h!==":"){if(s)return x0;P="",D=Rg,O=0;continue}if(s&&(T.isSpecial()!==$B(rC,P)||P==="file"&&(T.includesCredentials()||T.port!==null)||T.scheme==="file"&&T.host===""))return;if(T.scheme=P,s)return void(T.isSpecial()&&rC[T.scheme]===T.port&&(T.port=null));P="",T.scheme==="file"?D=AS:T.isSpecial()&&c&&c.scheme===T.scheme?D=fu:T.isSpecial()?D=rl:u[O+1]==="/"?(D=nS,O++):(T.cannotBeABaseURL=!0,eC(T.path,""),D=rk)}break;case Rg:if(!c||c.cannotBeABaseURL&&h!=="#")return x0;if(c.cannotBeABaseURL&&h==="#"){T.scheme=c.scheme,T.path=fc(c.path),T.query=c.query,T.fragment="",T.cannotBeABaseURL=!0,D=mu;break}D=c.scheme==="file"?AS:FE;continue;case fu:if(h!=="/"||u[O+1]!=="/"){D=FE;continue}D=T3,O++;break;case nS:if(h==="/"){D=w3;break}D=_u;continue;case FE:if(T.scheme=c.scheme,h===Ul)T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.query=c.query;else if(h==="/"||h==="\\"&&T.isSpecial())D=C1;else if(h==="?")T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.query="",D=G0;else{if(h!=="#"){T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.path.length&&T.path.length--,D=_u;continue}T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,T.path=fc(c.path),T.query=c.query,T.fragment="",D=mu}break;case C1:if(!T.isSpecial()||h!=="/"&&h!=="\\"){if(h!=="/"){T.username=c.username,T.password=c.password,T.host=c.host,T.port=c.port,D=_u;continue}D=w3}else D=T3;break;case rl:if(D=T3,h!=="/"||u[O+1]!=="/")continue;O++;break;case T3:if(h!=="/"&&h!=="\\"){D=w3;continue}break;case w3:if(h==="@"){U&&(P="%40"+P),U=!0,_=xE(P);for(var Z=0;Z<_.length;Z++){var te=_[Z];if(te!==":"||$){var se=pu(te,y3);$?T.password+=se:T.username+=se}else $=!0}P=""}else if(h===Ul||h==="/"||h==="?"||h==="#"||h==="\\"&&T.isSpecial()){if(U&&P==="")return"Invalid authority";O-=xE(P).length+1,P="",D=Wv}else P+=h;break;case Wv:case oS:if(s&&T.scheme==="file"){D=v3;continue}if(h!==":"||H){if(h===Ul||h==="/"||h==="?"||h==="#"||h==="\\"&&T.isSpecial()){if(T.isSpecial()&&P==="")return Iu;if(s&&P===""&&(T.includesCredentials()||T.port!==null))return;if(B=T.parseHost(P))return B;if(P="",D=oC,s)return;continue}h==="["?H=!0:h==="]"&&(H=!1),P+=h}else{if(P==="")return Iu;if(s===oS)return;if(B=T.parseHost(P))return B;P="",D=Xv}break;case Xv:if(!_c(Cu,h)){if(h===Ul||h==="/"||h==="?"||h==="#"||h==="\\"&&T.isSpecial()||s){if(P!==""){var ge=ZI(P,10);if(ge>65535)return Fv;T.port=T.isSpecial()&&ge===rC[T.scheme]?null:ge,P=""}if(s)return;D=oC;continue}return Fv}P+=h;break;case AS:if(T.scheme="file",T.host="",h==="/"||h==="\\")D=tk;else{if(!c||c.scheme!=="file"){D=_u;continue}switch(h){case Ul:T.host=c.host,T.path=fc(c.path),T.query=c.query;break;case"?":T.host=c.host,T.path=fc(c.path),T.query="",D=G0;break;case"#":T.host=c.host,T.path=fc(c.path),T.query=c.query,T.fragment="",D=mu;break;default:T.host=c.host,iS(U0(fc(u,O),""))||(T.path=fc(c.path),T.shortenPath()),D=_u;continue}}break;case tk:if(h==="/"||h==="\\"){D=v3;break}c&&c.scheme==="file"&&(T.host=c.host,!iS(U0(fc(u,O),""))&&iC(c.path[0],!0)&&eC(T.path,c.path[0])),D=_u;continue;case v3:if(h===Ul||h==="/"||h==="\\"||h==="?"||h==="#"){if(!s&&iC(P))D=_u;else if(P===""){if(T.host="",s)return;D=oC}else{if(B=T.parseHost(P))return B;if(T.host==="localhost"&&(T.host=""),s)return;P="",D=oC}continue}P+=h;break;case oC:if(T.isSpecial()){if(D=_u,h!=="/"&&h!=="\\")continue}else if(s||h!=="?")if(s||h!=="#"){if(h!==Ul&&(D=_u,h!=="/"))continue}else T.fragment="",D=mu;else T.query="",D=G0;break;case _u:if(h===Ul||h==="/"||h==="\\"&&T.isSpecial()||!s&&(h==="?"||h==="#")){if((Q=eS(Q=P))===".."||Q==="%2e."||Q===".%2e"||Q==="%2e%2e"?(T.shortenPath(),h==="/"||h==="\\"&&T.isSpecial()||eC(T.path,"")):nC(P)?h==="/"||h==="\\"&&T.isSpecial()||eC(T.path,""):(T.scheme==="file"&&!T.path.length&&iC(P)&&(T.host!==null&&T.host!==""&&(T.host=""),P=xl(P,0)+":"),eC(T.path,P)),P="",T.scheme==="file"&&(h===Ul||h==="?"||h==="#"))for(;T.path.length>1&&T.path[0]==="";)bY(T.path);h==="?"?(T.query="",D=G0):h==="#"&&(T.fragment="",D=mu)}else P+=pu(h,rS);break;case rk:h==="?"?(T.query="",D=G0):h==="#"?(T.fragment="",D=mu):h!==Ul&&(T.path[0]+=pu(h,S3));break;case G0:s||h!=="#"?h!==Ul&&(T.query+=pu(h,T.isSpecial()?tS:Jv)):(T.fragment="",D=mu);break;case mu:h!==Ul&&(T.fragment+=pu(h,R3))}O++}},parseHost:function(t){var s,c,u;if(xl(t,0)==="["){if(xl(t,t.length-1)!=="]"||(s=function(h){var _,B,Q,T,D,O,P,U=[0,0,0,0,0,0,0,0],H=0,$=null,Z=0,te=function(){return xl(h,Z)};if(te()===":"){if(xl(h,1)!==":")return;Z+=2,$=++H}for(;te();){if(H===8)return;if(te()!==":"){for(_=B=0;B<4&&_c(Hv,te());)_=16*_+ZI(te(),16),Z++,B++;if(te()==="."){if(B===0||(Z-=B,H>6))return;for(Q=0;te();){if(T=null,Q>0){if(!(te()==="."&&Q<4))return;Z++}if(!_c(Cu,te()))return;for(;_c(Cu,te());){if(D=ZI(te(),10),T===null)T=D;else{if(T===0)return;T=10*T+D}if(T>255)return;Z++}U[H]=256*U[H]+T,++Q!=2&&Q!==4||H++}if(Q!==4)return;break}if(te()===":"){if(Z++,!te())return}else if(te())return;U[H++]=_}else{if($!==null)return;Z++,$=++H}}if($!==null)for(O=H-$,H=7;H!==0&&O>0;)P=U[H],U[H--]=U[$+O-1],U[$+--O]=P;else if(H!==8)return;return U}(tC(t,1,-1)),!s))return Iu;this.host=s}else if(this.isSpecial()){if(t=Y6(t),_c(Yv,t))return Iu;if(function(h){var _,B,Q=W6(h,".");if(Q[Q.length-1]===""){if(Q.length===1)return!1;Q.length--}return _=Q[Q.length-1],!!_c(Kv,_)||!!_c(m3,_)&&((B=tC(_,2))===""||!!_c(Hv,B))}(t)){if(s=function(h){var _,B,Q,T,D,O,P,U=W6(h,".");if(U.length&&U[U.length-1]===""&&U.length--,(_=U.length)>4)return null;for(B=[],Q=0;Q<_;Q++){if((T=U[Q])==="")return null;if(D=10,T.length>1&&xl(T,0)==="0"&&(D=_c(m3,T)?16:8,T=tC(T,D===8?1:2)),T==="")O=0;else{if(!_c(D===10?Kv:D===8?B3:Hv,T))return null;O=ZI(T,D)}eC(B,O)}for(Q=0;Q<_;Q++)if(O=B[Q],Q===_-1){if(O>=xv(256,5-_))return null}else if(O>255)return null;for(P=DY(B),Q=0;Q1&&B[0]===""&&(D+="/."),D+=t.cannotBeABaseURL?B[0]:B.length?"/"+U0(B,"/"):"",Q!==null&&(D+="?"+Q),T!==null&&(D+="#"+T),D},setHref:function(t){var s=this.parse(t);if(s)throw new $I(s);this.searchParams.update()},getOrigin:function(){var t=this.scheme,s=this.port;if(t==="blob")try{return new sC(this.path[0]).origin}catch{return"null"}return t!=="file"&&this.isSpecial()?t+"://"+F0(this.host)+(s!==null?":"+s:""):"null"},getProtocol:function(){return this.scheme+":"},setProtocol:function(t){this.parse($a(t)+":",Fl)},getUsername:function(){return this.username},setUsername:function(t){var s=xE($a(t));if(!this.cannotHaveUsernamePasswordPort()){this.username="";for(var c=0;c1?arguments[1]:void 0,u=XI(s,new zv(t,!1,c));wd||(s.href=u.serialize(),s.origin=u.getOrigin(),s.protocol=u.getProtocol(),s.username=u.getUsername(),s.password=u.getPassword(),s.host=u.getHost(),s.hostname=u.getHostname(),s.port=u.getPort(),s.pathname=u.getPathname(),s.search=u.getSearch(),s.searchParams=u.getSearchParams(),s.hash=u.getHash())},SA=sC.prototype,il=function(t,s){return{get:function(){return zI(this)[t]()},set:s&&function(c){return zI(this)[s](c)},configurable:!0,enumerable:!0}};if(wd&&(G1(SA,"href",il("serialize","setHref")),G1(SA,"origin",il("getOrigin")),G1(SA,"protocol",il("getProtocol","setProtocol")),G1(SA,"username",il("getUsername","setUsername")),G1(SA,"password",il("getPassword","setPassword")),G1(SA,"host",il("getHost","setHost")),G1(SA,"hostname",il("getHostname","setHostname")),G1(SA,"port",il("getPort","setPort")),G1(SA,"pathname",il("getPathname","setPathname")),G1(SA,"search",il("getSearch","setSearch")),G1(SA,"searchParams",il("getSearchParams")),G1(SA,"hash",il("getHash","setHash"))),zB(SA,"toJSON",function(){return zI(this).serialize()},{enumerable:!0}),zB(SA,"toString",function(){return zI(this).serialize()},{enumerable:!0}),Sg){var $v=Sg.createObjectURL,D3=Sg.revokeObjectURL;$v&&zB(sC,"createObjectURL",Uv($v,Sg)),D3&&zB(sC,"revokeObjectURL",Uv(D3,Sg))}vd(sC,"URL"),_Y({global:!0,forced:!mY,sham:!wd},{URL:sC});var V0=In,ik=S,OY=QE,Zv=h1,eD=b0,cS=Me("URL"),nk=eD&&ik(function(){cS.canParse()}),tD=ik(function(){return cS.canParse.length!==1});V0({target:"URL",stat:!0,forced:!nk||tD},{canParse:function(t){var s=OY(arguments.length,1),c=Zv(t),u=s<2||arguments[1]===void 0?void 0:Zv(arguments[1]);try{return!!new cS(c,u)}catch{return!1}}});var sk=In,ak=QE,rD=h1,Ak=b0,ck=Me("URL");sk({target:"URL",stat:!0,forced:!Ak},{parse:function(t){var s=ak(arguments.length,1),c=rD(t),u=s<2||arguments[1]===void 0?void 0:rD(arguments[1]);try{return new ck(c,u)}catch{return null}}});var b3=f(Zn.URL);let iD=!0,nD=!0;function O3(t,s,c){const u=t.match(s);return u&&u.length>=c&&parseInt(u[c],10)}function GE(t,s,c){if(!t.RTCPeerConnection)return;const u=t.RTCPeerConnection.prototype,h=u.addEventListener;u.addEventListener=function(B,Q){if(B!==s)return h.apply(this,arguments);const T=D=>{const O=c(D);O&&(Q.handleEvent?Q.handleEvent(O):Q(O))};return this._eventMap=this._eventMap||{},this._eventMap[s]||(this._eventMap[s]=new Map),this._eventMap[s].set(Q,T),h.apply(this,[B,T])};const _=u.removeEventListener;u.removeEventListener=function(B,Q){if(B!==s||!this._eventMap||!this._eventMap[s])return _.apply(this,arguments);if(!this._eventMap[s].has(Q))return _.apply(this,arguments);const T=this._eventMap[s].get(Q);return this._eventMap[s].delete(Q),this._eventMap[s].size===0&&delete this._eventMap[s],Object.keys(this._eventMap).length===0&&delete this._eventMap,_.apply(this,[B,T])},Object.defineProperty(u,"on"+s,{get(){return this["_on"+s]},set(B){this["_on"+s]&&(this.removeEventListener(s,this["_on"+s]),delete this["_on"+s]),B&&this.addEventListener(s,this["_on"+s]=B)},enumerable:!0,configurable:!0})}function oD(t){return typeof t!="boolean"?new Error("Argument type: "+typeof t+". Please use a boolean."):(iD=t,t?"adapter.js logging disabled":"adapter.js logging enabled")}function lk(t){return typeof t!="boolean"?new Error("Argument type: "+typeof t+". Please use a boolean."):(nD=!t,"adapter.js deprecation warnings "+(t?"disabled":"enabled"))}function sD(){if(typeof window=="object"){if(iD)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function lS(t,s){nD&&console.warn(t+" is deprecated, please use "+s+" instead.")}function aD(t){return Object.prototype.toString.call(t)==="[object Object]"}function dS(t){var s;return aD(t)?VA(s=Object.keys(t)).call(s,function(c,u){const h=aD(t[u]),_=h?dS(t[u]):t[u],B=h&&!Object.keys(_).length;return _===void 0||B?c:Object.assign(c,{[u]:_})},{}):t}function uS(t,s,c){s&&!c.has(s.id)&&(c.set(s.id,s),Object.keys(s).forEach(u=>{u.endsWith("Id")?uS(t,t.get(s[u]),c):u.endsWith("Ids")&&s[u].forEach(h=>{uS(t,t.get(h),c)})}))}function AD(t,s,c){const u=c?"outbound-rtp":"inbound-rtp",h=new Map;if(s===null)return h;const _=[];return t.forEach(B=>{B.type==="track"&&B.trackIdentifier===s.id&&_.push(B)}),_.forEach(B=>{t.forEach(Q=>{Q.type===u&&Q.trackId===B.id&&uS(t,Q,h)})}),h}const cD=sD;function lD(t,s){const c=t&&t.navigator;if(!c.mediaDevices)return;const u=function(B){if(typeof B!="object"||B.mandatory||B.optional)return B;const Q={};return Object.keys(B).forEach(T=>{if(T==="require"||T==="advanced"||T==="mediaSource")return;const D=typeof B[T]=="object"?B[T]:{ideal:B[T]};D.exact!==void 0&&typeof D.exact=="number"&&(D.min=D.max=D.exact);const O=function(P,U){return P?P+U.charAt(0).toUpperCase()+U.slice(1):U==="deviceId"?"sourceId":U};if(D.ideal!==void 0){Q.optional=Q.optional||[];let P={};typeof D.ideal=="number"?(P[O("min",T)]=D.ideal,Q.optional.push(P),P={},P[O("max",T)]=D.ideal,Q.optional.push(P)):(P[O("",T)]=D.ideal,Q.optional.push(P))}D.exact!==void 0&&typeof D.exact!="number"?(Q.mandatory=Q.mandatory||{},Q.mandatory[O("",T)]=D.exact):["min","max"].forEach(P=>{D[P]!==void 0&&(Q.mandatory=Q.mandatory||{},Q.mandatory[O(P,T)]=D[P])})}),B.advanced&&(Q.optional=(Q.optional||[]).concat(B.advanced)),Q},h=function(B,Q){if(s.version>=61)return Q(B);if((B=JSON.parse(JSON.stringify(B)))&&typeof B.audio=="object"){const T=function(D,O,P){O in D&&!(P in D)&&(D[P]=D[O],delete D[O])};T((B=JSON.parse(JSON.stringify(B))).audio,"autoGainControl","googAutoGainControl"),T(B.audio,"noiseSuppression","googNoiseSuppression"),B.audio=u(B.audio)}if(B&&typeof B.video=="object"){let T=B.video.facingMode;T=T&&(typeof T=="object"?T:{ideal:T});const D=s.version<66;if(T&&(T.exact==="user"||T.exact==="environment"||T.ideal==="user"||T.ideal==="environment")&&(!c.mediaDevices.getSupportedConstraints||!c.mediaDevices.getSupportedConstraints().facingMode||D)){let O;if(delete B.video.facingMode,T.exact==="environment"||T.ideal==="environment"?O=["back","rear"]:T.exact!=="user"&&T.ideal!=="user"||(O=["front"]),O)return c.mediaDevices.enumerateDevices().then(P=>{P=P.filter(H=>H.kind==="videoinput");let U=P.find(H=>O.some($=>{var Z;return Et(Z=H.label.toLowerCase()).call(Z,$)}));return!U&&P.length&&Et(O).call(O,"back")&&(U=P[P.length-1]),U&&(B.video.deviceId=T.exact?{exact:U.deviceId}:{ideal:U.deviceId}),B.video=u(B.video),cD("chrome: "+JSON.stringify(B)),Q(B)})}B.video=u(B.video)}return cD("chrome: "+JSON.stringify(B)),Q(B)},_=function(B){return s.version>=64?B:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[B.name]||B.name,message:B.message,constraint:B.constraint||B.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(c.getUserMedia=(function(B,Q,T){h(B,D=>{c.webkitGetUserMedia(D,Q,O=>{T&&T(_(O))})})}).bind(c),c.mediaDevices.getUserMedia){const B=c.mediaDevices.getUserMedia.bind(c.mediaDevices);c.mediaDevices.getUserMedia=function(Q){return h(Q,T=>B(T).then(D=>{if(T.audio&&!D.getAudioTracks().length||T.video&&!D.getVideoTracks().length)throw D.getTracks().forEach(O=>{O.stop()}),new DOMException("","NotFoundError");return D},D=>Ut.reject(_(D))))}}}function dD(t){t.MediaStream=t.MediaStream||t.webkitMediaStream}function uD(t){if(typeof t=="object"&&t.RTCPeerConnection&&!("ontrack"in t.RTCPeerConnection.prototype)){Object.defineProperty(t.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(c){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=c)},enumerable:!0,configurable:!0});const s=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=c=>{c.stream.addEventListener("addtrack",u=>{let h;h=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(B=>B.track&&B.track.id===u.track.id):{track:u.track};const _=new Event("track");_.track=u.track,_.receiver=h,_.transceiver={receiver:h},_.streams=[c.stream],this.dispatchEvent(_)}),c.stream.getTracks().forEach(u=>{let h;h=t.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(B=>B.track&&B.track.id===u.id):{track:u};const _=new Event("track");_.track=u,_.receiver=h,_.transceiver={receiver:h},_.streams=[c.stream],this.dispatchEvent(_)})},this.addEventListener("addstream",this._ontrackpoly)),s.apply(this,arguments)}}else GE(t,"track",s=>(s.transceiver||Object.defineProperty(s,"transceiver",{value:{receiver:s.receiver}}),s))}function gD(t){if(typeof t=="object"&&t.RTCPeerConnection&&!("getSenders"in t.RTCPeerConnection.prototype)&&"createDTMFSender"in t.RTCPeerConnection.prototype){const s=function(h,_){return{track:_,get dtmf(){return this._dtmf===void 0&&(_.kind==="audio"?this._dtmf=h.createDTMFSender(_):this._dtmf=null),this._dtmf},_pc:h}};if(!t.RTCPeerConnection.prototype.getSenders){t.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const h=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addTrack=function(B,Q){let T=h.apply(this,arguments);return T||(T=s(this,B),this._senders.push(T)),T};const _=t.RTCPeerConnection.prototype.removeTrack;t.RTCPeerConnection.prototype.removeTrack=function(B){_.apply(this,arguments);const Q=this._senders.indexOf(B);Q!==-1&&this._senders.splice(Q,1)}}const c=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(h){this._senders=this._senders||[],c.apply(this,[h]),h.getTracks().forEach(_=>{this._senders.push(s(this,_))})};const u=t.RTCPeerConnection.prototype.removeStream;t.RTCPeerConnection.prototype.removeStream=function(h){this._senders=this._senders||[],u.apply(this,[h]),h.getTracks().forEach(_=>{const B=this._senders.find(Q=>Q.track===_);B&&this._senders.splice(this._senders.indexOf(B),1)})}}else if(typeof t=="object"&&t.RTCPeerConnection&&"getSenders"in t.RTCPeerConnection.prototype&&"createDTMFSender"in t.RTCPeerConnection.prototype&&t.RTCRtpSender&&!("dtmf"in t.RTCRtpSender.prototype)){const s=t.RTCPeerConnection.prototype.getSenders;t.RTCPeerConnection.prototype.getSenders=function(){const c=s.apply(this,[]);return c.forEach(u=>u._pc=this),c},Object.defineProperty(t.RTCRtpSender.prototype,"dtmf",{get(){return this._dtmf===void 0&&(this.track.kind==="audio"?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function ED(t){if(!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){const c=Array.prototype.slice.call(arguments),u=c[0],h=c[1],_=c[2];if(arguments.length>0&&typeof u=="function")return s.apply(this,arguments);if(s.length===0&&(arguments.length===0||typeof u!="function"))return s.apply(this,[]);const B=function(T){const D={};return T.result().forEach(O=>{const P={id:O.id,timestamp:O.timestamp,type:{localcandidate:"local-candidate",remotecandidate:"remote-candidate"}[O.type]||O.type};O.names().forEach(U=>{P[U]=O.stat(U)}),D[P.id]=P}),D},Q=function(T){return new Map(Object.keys(T).map(D=>[D,T[D]]))};if(arguments.length>=2){const T=function(D){h(Q(B(D)))};return s.apply(this,[T,u])}return new Ut((T,D)=>{s.apply(this,[function(O){T(Q(B(O)))},D])}).then(h,_)}}function hD(t){if(!(typeof t=="object"&&t.RTCPeerConnection&&t.RTCRtpSender&&t.RTCRtpReceiver))return;if(!("getStats"in t.RTCRtpSender.prototype)){const c=t.RTCPeerConnection.prototype.getSenders;c&&(t.RTCPeerConnection.prototype.getSenders=function(){const h=c.apply(this,[]);return h.forEach(_=>_._pc=this),h});const u=t.RTCPeerConnection.prototype.addTrack;u&&(t.RTCPeerConnection.prototype.addTrack=function(){const h=u.apply(this,arguments);return h._pc=this,h}),t.RTCRtpSender.prototype.getStats=function(){const h=this;return this._pc.getStats().then(_=>AD(_,h.track,!0))}}if(!("getStats"in t.RTCRtpReceiver.prototype)){const c=t.RTCPeerConnection.prototype.getReceivers;c&&(t.RTCPeerConnection.prototype.getReceivers=function(){const u=c.apply(this,[]);return u.forEach(h=>h._pc=this),u}),GE(t,"track",u=>(u.receiver._pc=u.srcElement,u)),t.RTCRtpReceiver.prototype.getStats=function(){const u=this;return this._pc.getStats().then(h=>AD(h,u.track,!1))}}if(!("getStats"in t.RTCRtpSender.prototype)||!("getStats"in t.RTCRtpReceiver.prototype))return;const s=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof t.MediaStreamTrack){const c=arguments[0];let u,h,_;return this.getSenders().forEach(B=>{B.track===c&&(u?_=!0:u=B)}),this.getReceivers().forEach(B=>(B.track===c&&(h?_=!0:h=B),B.track===c)),_||u&&h?Ut.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):u?u.getStats():h?h.getStats():Ut.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return s.apply(this,arguments)}}function ID(t){t.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(_=>this._shimmedLocalStreams[_][0])};const s=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addTrack=function(_,B){if(!B)return s.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const Q=s.apply(this,arguments);return this._shimmedLocalStreams[B.id]?this._shimmedLocalStreams[B.id].indexOf(Q)===-1&&this._shimmedLocalStreams[B.id].push(Q):this._shimmedLocalStreams[B.id]=[B,Q],Q};const c=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(_){this._shimmedLocalStreams=this._shimmedLocalStreams||{},_.getTracks().forEach(T=>{if(this.getSenders().find(O=>O.track===T))throw new DOMException("Track already exists.","InvalidAccessError")});const B=this.getSenders();c.apply(this,arguments);const Q=this.getSenders().filter(T=>B.indexOf(T)===-1);this._shimmedLocalStreams[_.id]=[_].concat(Q)};const u=t.RTCPeerConnection.prototype.removeStream;t.RTCPeerConnection.prototype.removeStream=function(_){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[_.id],u.apply(this,arguments)};const h=t.RTCPeerConnection.prototype.removeTrack;t.RTCPeerConnection.prototype.removeTrack=function(_){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},_&&Object.keys(this._shimmedLocalStreams).forEach(B=>{const Q=this._shimmedLocalStreams[B].indexOf(_);Q!==-1&&this._shimmedLocalStreams[B].splice(Q,1),this._shimmedLocalStreams[B].length===1&&delete this._shimmedLocalStreams[B]}),h.apply(this,arguments)}}function CD(t,s){if(!t.RTCPeerConnection)return;if(t.RTCPeerConnection.prototype.addTrack&&s.version>=65)return ID(t);const c=t.RTCPeerConnection.prototype.getLocalStreams;t.RTCPeerConnection.prototype.getLocalStreams=function(){const T=c.apply(this);return this._reverseStreams=this._reverseStreams||{},T.map(D=>this._reverseStreams[D.id])};const u=t.RTCPeerConnection.prototype.addStream;t.RTCPeerConnection.prototype.addStream=function(T){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},T.getTracks().forEach(D=>{if(this.getSenders().find(P=>P.track===D))throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[T.id]){const D=new t.MediaStream(T.getTracks());this._streams[T.id]=D,this._reverseStreams[D.id]=T,T=D}u.apply(this,[T])};const h=t.RTCPeerConnection.prototype.removeStream;function _(T,D){let O=D.sdp;return Object.keys(T._reverseStreams||[]).forEach(P=>{const U=T._reverseStreams[P],H=T._streams[U.id];O=O.replace(new RegExp(H.id,"g"),U.id)}),new RTCSessionDescription({type:D.type,sdp:O})}t.RTCPeerConnection.prototype.removeStream=function(T){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},h.apply(this,[this._streams[T.id]||T]),delete this._reverseStreams[this._streams[T.id]?this._streams[T.id].id:T.id],delete this._streams[T.id]},t.RTCPeerConnection.prototype.addTrack=function(T,D){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");const O=[].slice.call(arguments,1);if(O.length!==1||!O[0].getTracks().find(H=>H===T))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");if(this.getSenders().find(H=>H.track===T))throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const U=this._streams[D.id];if(U)U.addTrack(T),Ut.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const H=new t.MediaStream([T]);this._streams[D.id]=H,this._reverseStreams[H.id]=D,this.addStream(H)}return this.getSenders().find(H=>H.track===T)},["createOffer","createAnswer"].forEach(function(T){const D=t.RTCPeerConnection.prototype[T],O={[T](){const P=arguments;return arguments.length&&typeof arguments[0]=="function"?D.apply(this,[U=>{const H=_(this,U);P[0].apply(null,[H])},U=>{P[1]&&P[1].apply(null,U)},arguments[2]]):D.apply(this,arguments).then(U=>_(this,U))}};t.RTCPeerConnection.prototype[T]=O[T]});const B=t.RTCPeerConnection.prototype.setLocalDescription;t.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(T,D){let O=D.sdp;return Object.keys(T._reverseStreams||[]).forEach(P=>{const U=T._reverseStreams[P],H=T._streams[U.id];O=O.replace(new RegExp(U.id,"g"),H.id)}),new RTCSessionDescription({type:D.type,sdp:O})}(this,arguments[0]),B.apply(this,arguments)):B.apply(this,arguments)};const Q=Object.getOwnPropertyDescriptor(t.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(t.RTCPeerConnection.prototype,"localDescription",{get(){const T=Q.get.apply(this);return T.type===""?T:_(this,T)}}),t.RTCPeerConnection.prototype.removeTrack=function(T){if(this.signalingState==="closed")throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!T._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(T._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let D;this._streams=this._streams||{},Object.keys(this._streams).forEach(O=>{this._streams[O].getTracks().find(P=>T.track===P)&&(D=this._streams[O])}),D&&(D.getTracks().length===1?this.removeStream(this._reverseStreams[D.id]):D.removeTrack(T.track),this.dispatchEvent(new Event("negotiationneeded")))}}function ES(t,s){!t.RTCPeerConnection&&t.webkitRTCPeerConnection&&(t.RTCPeerConnection=t.webkitRTCPeerConnection),t.RTCPeerConnection&&s.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(c){const u=t.RTCPeerConnection.prototype[c],h={[c](){return arguments[0]=new(c==="addIceCandidate"?t.RTCIceCandidate:t.RTCSessionDescription)(arguments[0]),u.apply(this,arguments)}};t.RTCPeerConnection.prototype[c]=h[c]})}function pD(t,s){GE(t,"negotiationneeded",c=>{const u=c.target;if(!(s.version<72||u.getConfiguration&&u.getConfiguration().sdpSemantics==="plan-b")||u.signalingState==="stable")return c})}var fD=Object.freeze({__proto__:null,fixNegotiationNeeded:pD,shimAddTrackRemoveTrack:CD,shimAddTrackRemoveTrackWithNative:ID,shimGetDisplayMedia:function(t,s){t.navigator.mediaDevices&&"getDisplayMedia"in t.navigator.mediaDevices||t.navigator.mediaDevices&&(typeof s=="function"?t.navigator.mediaDevices.getDisplayMedia=function(c){return s(c).then(u=>{const h=c.video&&c.video.width,_=c.video&&c.video.height,B=c.video&&c.video.frameRate;return c.video={mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:u,maxFrameRate:B||3}},h&&(c.video.mandatory.maxWidth=h),_&&(c.video.mandatory.maxHeight=_),t.navigator.mediaDevices.getUserMedia(c)})}:console.error("shimGetDisplayMedia: getSourceId argument is not a function"))},shimGetSendersWithDtmf:gD,shimGetStats:ED,shimGetUserMedia:lD,shimMediaStream:dD,shimOnTrack:uD,shimPeerConnection:ES,shimSenderReceiverGetStats:hD});function _D(t,s){const c=t&&t.navigator,u=t&&t.MediaStreamTrack;if(c.getUserMedia=function(h,_,B){lS("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),c.mediaDevices.getUserMedia(h).then(_,B)},!(s.version>55&&"autoGainControl"in c.mediaDevices.getSupportedConstraints())){const h=function(B,Q,T){Q in B&&!(T in B)&&(B[T]=B[Q],delete B[Q])},_=c.mediaDevices.getUserMedia.bind(c.mediaDevices);if(c.mediaDevices.getUserMedia=function(B){return typeof B=="object"&&typeof B.audio=="object"&&(B=JSON.parse(JSON.stringify(B)),h(B.audio,"autoGainControl","mozAutoGainControl"),h(B.audio,"noiseSuppression","mozNoiseSuppression")),_(B)},u&&u.prototype.getSettings){const B=u.prototype.getSettings;u.prototype.getSettings=function(){const Q=B.apply(this,arguments);return h(Q,"mozAutoGainControl","autoGainControl"),h(Q,"mozNoiseSuppression","noiseSuppression"),Q}}if(u&&u.prototype.applyConstraints){const B=u.prototype.applyConstraints;u.prototype.applyConstraints=function(Q){return this.kind==="audio"&&typeof Q=="object"&&(Q=JSON.parse(JSON.stringify(Q)),h(Q,"autoGainControl","mozAutoGainControl"),h(Q,"noiseSuppression","mozNoiseSuppression")),B.apply(this,[Q])}}}}function mD(t){typeof t=="object"&&t.RTCTrackEvent&&"receiver"in t.RTCTrackEvent.prototype&&!("transceiver"in t.RTCTrackEvent.prototype)&&Object.defineProperty(t.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function hS(t,s){if(typeof t!="object"||!t.RTCPeerConnection&&!t.mozRTCPeerConnection)return;!t.RTCPeerConnection&&t.mozRTCPeerConnection&&(t.RTCPeerConnection=t.mozRTCPeerConnection),s.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(h){const _=t.RTCPeerConnection.prototype[h],B={[h](){return arguments[0]=new(h==="addIceCandidate"?t.RTCIceCandidate:t.RTCSessionDescription)(arguments[0]),_.apply(this,arguments)}};t.RTCPeerConnection.prototype[h]=B[h]});const c={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotecandidate:"remote-candidate"},u=t.RTCPeerConnection.prototype.getStats;t.RTCPeerConnection.prototype.getStats=function(){const h=Array.prototype.slice.call(arguments),_=h[0],B=h[1],Q=h[2];return u.apply(this,[_||null]).then(T=>{if(s.version<53&&!B)try{T.forEach(D=>{D.type=c[D.type]||D.type})}catch(D){if(D.name!=="TypeError")throw D;T.forEach((O,P)=>{T.set(P,Object.assign({},O,{type:c[O.type]||O.type}))})}return T}).then(B,Q)}}function BD(t){if(typeof t!="object"||!t.RTCPeerConnection||!t.RTCRtpSender||t.RTCRtpSender&&"getStats"in t.RTCRtpSender.prototype)return;const s=t.RTCPeerConnection.prototype.getSenders;s&&(t.RTCPeerConnection.prototype.getSenders=function(){const u=s.apply(this,[]);return u.forEach(h=>h._pc=this),u});const c=t.RTCPeerConnection.prototype.addTrack;c&&(t.RTCPeerConnection.prototype.addTrack=function(){const u=c.apply(this,arguments);return u._pc=this,u}),t.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Ut.resolve(new Map)}}function SD(t){if(typeof t!="object"||!t.RTCPeerConnection||!t.RTCRtpSender||t.RTCRtpSender&&"getStats"in t.RTCRtpReceiver.prototype)return;const s=t.RTCPeerConnection.prototype.getReceivers;s&&(t.RTCPeerConnection.prototype.getReceivers=function(){const c=s.apply(this,[]);return c.forEach(u=>u._pc=this),c}),GE(t,"track",c=>(c.receiver._pc=c.srcElement,c)),t.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function RD(t){t.RTCPeerConnection&&!("removeStream"in t.RTCPeerConnection.prototype)&&(t.RTCPeerConnection.prototype.removeStream=function(s){lS("removeStream","removeTrack"),this.getSenders().forEach(c=>{var u;c.track&&Et(u=s.getTracks()).call(u,c.track)&&this.removeTrack(c)})})}function dk(t){t.DataChannel&&!t.RTCDataChannel&&(t.RTCDataChannel=t.DataChannel)}function uk(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.addTransceiver;s&&(t.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let c=arguments[1]&&arguments[1].sendEncodings;c===void 0&&(c=[]),c=[...c];const u=c.length>0;u&&c.forEach(_=>{if("rid"in _&&!/^[a-z0-9]{0,16}$/i.test(_.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in _&&!(parseFloat(_.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in _&&!(parseFloat(_.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const h=s.apply(this,arguments);if(u){const _=h.sender,B=_.getParameters();(!("encodings"in B)||B.encodings.length===1&&Object.keys(B.encodings[0]).length===0)&&(B.encodings=c,_.sendEncodings=c,this.setParametersPromises.push(_.setParameters(B).then(()=>{delete _.sendEncodings}).catch(()=>{delete _.sendEncodings})))}return h})}function CS(t){if(typeof t!="object"||!t.RTCRtpSender)return;const s=t.RTCRtpSender.prototype.getParameters;s&&(t.RTCRtpSender.prototype.getParameters=function(){const c=s.apply(this,arguments);return"encodings"in c||(c.encodings=[].concat(this.sendEncodings||[{}])),c})}function yD(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.createOffer;t.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ut.all(this.setParametersPromises).then(()=>s.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):s.apply(this,arguments)}}function gk(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype.createAnswer;t.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Ut.all(this.setParametersPromises).then(()=>s.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):s.apply(this,arguments)}}var Ek=Object.freeze({__proto__:null,shimAddTransceiver:uk,shimCreateAnswer:gk,shimCreateOffer:yD,shimGetDisplayMedia:function(t,s){t.navigator.mediaDevices&&"getDisplayMedia"in t.navigator.mediaDevices||t.navigator.mediaDevices&&(t.navigator.mediaDevices.getDisplayMedia=function(c){if(!c||!c.video){const u=new DOMException("getDisplayMedia without video constraints is undefined");return u.name="NotFoundError",u.code=8,Ut.reject(u)}return c.video===!0?c.video={mediaSource:s}:c.video.mediaSource=s,t.navigator.mediaDevices.getUserMedia(c)})},shimGetParameters:CS,shimGetUserMedia:_D,shimOnTrack:mD,shimPeerConnection:hS,shimRTCDataChannel:dk,shimReceiverGetStats:SD,shimRemoveStream:RD,shimSenderGetStats:BD});function hk(t){if(typeof t=="object"&&t.RTCPeerConnection){if("getLocalStreams"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in t.RTCPeerConnection.prototype)){const s=t.RTCPeerConnection.prototype.addTrack;t.RTCPeerConnection.prototype.addStream=function(c){var u;this._localStreams||(this._localStreams=[]),Et(u=this._localStreams).call(u,c)||this._localStreams.push(c),c.getAudioTracks().forEach(h=>s.call(this,h,c)),c.getVideoTracks().forEach(h=>s.call(this,h,c))},t.RTCPeerConnection.prototype.addTrack=function(c){for(var u=arguments.length,h=new Array(u>1?u-1:0),_=1;_{var Q;this._localStreams?Et(Q=this._localStreams).call(Q,B)||this._localStreams.push(B):this._localStreams=[B]}),s.apply(this,arguments)}}"removeStream"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.removeStream=function(s){this._localStreams||(this._localStreams=[]);const c=this._localStreams.indexOf(s);if(c===-1)return;this._localStreams.splice(c,1);const u=s.getTracks();this.getSenders().forEach(h=>{Et(u).call(u,h.track)&&this.removeTrack(h)})})}}function Ik(t){if(typeof t=="object"&&t.RTCPeerConnection&&("getRemoteStreams"in t.RTCPeerConnection.prototype||(t.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in t.RTCPeerConnection.prototype))){Object.defineProperty(t.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(c){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=c),this.addEventListener("track",this._onaddstreampoly=u=>{u.streams.forEach(h=>{var _;if(this._remoteStreams||(this._remoteStreams=[]),Et(_=this._remoteStreams).call(_,h))return;this._remoteStreams.push(h);const B=new Event("addstream");B.stream=h,this.dispatchEvent(B)})})}});const s=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){const c=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(u){u.streams.forEach(h=>{if(c._remoteStreams||(c._remoteStreams=[]),c._remoteStreams.indexOf(h)>=0)return;c._remoteStreams.push(h);const _=new Event("addstream");_.stream=h,c.dispatchEvent(_)})}),s.apply(c,arguments)}}}function Ck(t){if(typeof t!="object"||!t.RTCPeerConnection)return;const s=t.RTCPeerConnection.prototype,c=s.createOffer,u=s.createAnswer,h=s.setLocalDescription,_=s.setRemoteDescription,B=s.addIceCandidate;s.createOffer=function(T,D){const O=arguments.length>=2?arguments[2]:arguments[0],P=c.apply(this,[O]);return D?(P.then(T,D),Ut.resolve()):P},s.createAnswer=function(T,D){const O=arguments.length>=2?arguments[2]:arguments[0],P=u.apply(this,[O]);return D?(P.then(T,D),Ut.resolve()):P};let Q=function(T,D,O){const P=h.apply(this,[T]);return O?(P.then(D,O),Ut.resolve()):P};s.setLocalDescription=Q,Q=function(T,D,O){const P=_.apply(this,[T]);return O?(P.then(D,O),Ut.resolve()):P},s.setRemoteDescription=Q,Q=function(T,D,O){const P=B.apply(this,[T]);return O?(P.then(D,O),Ut.resolve()):P},s.addIceCandidate=Q}function pk(t){const s=t&&t.navigator;if(s.mediaDevices&&s.mediaDevices.getUserMedia){const c=s.mediaDevices,u=c.getUserMedia.bind(c);s.mediaDevices.getUserMedia=h=>u(QD(h))}!s.getUserMedia&&s.mediaDevices&&s.mediaDevices.getUserMedia&&(s.getUserMedia=(function(c,u,h){s.mediaDevices.getUserMedia(c).then(u,h)}).bind(s))}function QD(t){return t&&t.video!==void 0?Object.assign({},t,{video:dS(t.video)}):t}function fk(t){if(!t.RTCPeerConnection)return;const s=t.RTCPeerConnection;t.RTCPeerConnection=function(c,u){if(c&&c.iceServers){const h=[];for(let _=0;_s.generateCertificate})}function mk(t){typeof t=="object"&&t.RTCTrackEvent&&"receiver"in t.RTCTrackEvent.prototype&&!("transceiver"in t.RTCTrackEvent.prototype)&&Object.defineProperty(t.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Bk(t){const s=t.RTCPeerConnection.prototype.createOffer;t.RTCPeerConnection.prototype.createOffer=function(c){if(c){c.offerToReceiveAudio!==void 0&&(c.offerToReceiveAudio=!!c.offerToReceiveAudio);const u=this.getTransceivers().find(_=>_.receiver.track.kind==="audio");c.offerToReceiveAudio===!1&&u?u.direction==="sendrecv"?u.setDirection?u.setDirection("sendonly"):u.direction="sendonly":u.direction==="recvonly"&&(u.setDirection?u.setDirection("inactive"):u.direction="inactive"):c.offerToReceiveAudio!==!0||u||this.addTransceiver("audio",{direction:"recvonly"}),c.offerToReceiveVideo!==void 0&&(c.offerToReceiveVideo=!!c.offerToReceiveVideo);const h=this.getTransceivers().find(_=>_.receiver.track.kind==="video");c.offerToReceiveVideo===!1&&h?h.direction==="sendrecv"?h.setDirection?h.setDirection("sendonly"):h.direction="sendonly":h.direction==="recvonly"&&(h.setDirection?h.setDirection("inactive"):h.direction="inactive"):c.offerToReceiveVideo!==!0||h||this.addTransceiver("video",{direction:"recvonly"})}return s.apply(this,arguments)}}function Sk(t){typeof t!="object"||t.AudioContext||(t.AudioContext=t.webkitAudioContext)}var pS=Object.freeze({__proto__:null,shimAudioContext:Sk,shimCallbacksAPI:Ck,shimConstraints:QD,shimCreateOfferLegacy:Bk,shimGetUserMedia:pk,shimLocalStreamsAPI:hk,shimRTCIceServerUrls:fk,shimRemoteStreamsAPI:Ik,shimTrackEventTransceiver:mk}),Rk=` -\v\f\r                 \u2028\u2029\uFEFF`,RA=_o,yk=h1,fS=Rk,K0=j("".replace),LY=RegExp("^["+fS+"]+"),_S=RegExp("(^|[^"+fS+"])["+fS+"]+$"),TD=function(t){return function(s){var c=yk(RA(s));return 1&t&&(c=K0(c,LY,"")),2&t&&(c=K0(c,_S,"$1")),c}},mS={trim:TD(3)},BS=xL.PROPER,wD=S,SS=Rk,QS=mS.trim;In({target:"String",proto:!0,forced:function(t){return wD(function(){return!!SS[t]()||"​…᠎"[t]()!=="​…᠎"||BS&&SS[t].name!==t})}("trim")},{trim:function(){return QS(this)}});var wS=E1("String","trim"),MY=W,kY=wS,DS=String.prototype,PY=function(t){var s=t.trim;return typeof t=="string"||t===DS||MY(DS,t)&&s===DS.trim?kY:s},Ga=f(PY),Qk={exports:{}};(function(t){const s={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};s.localCName=s.generateIdentifier(),s.splitLines=function(c){return c.trim().split(` -`).map(u=>u.trim())},s.splitSections=function(c){return c.split(` -m=`).map((u,h)=>(h>0?"m="+u:u).trim()+`\r -`)},s.getDescription=function(c){const u=s.splitSections(c);return u&&u[0]},s.getMediaSections=function(c){const u=s.splitSections(c);return u.shift(),u},s.matchPrefix=function(c,u){return s.splitLines(c).filter(h=>h.indexOf(u)===0)},s.parseCandidate=function(c){let u;u=c.indexOf("a=candidate:")===0?c.substring(12).split(" "):c.substring(10).split(" ");const h={foundation:u[0],component:{1:"rtp",2:"rtcp"}[u[1]]||u[1],protocol:u[2].toLowerCase(),priority:parseInt(u[3],10),ip:u[4],address:u[4],port:parseInt(u[5],10),type:u[7]};for(let _=8;_0?u[0].split("/")[1]:"sendrecv",uri:u[1],attributes:u.slice(2).join(" ")}},s.writeExtmap=function(c){return"a=extmap:"+(c.id||c.preferredId)+(c.direction&&c.direction!=="sendrecv"?"/"+c.direction:"")+" "+c.uri+(c.attributes?" "+c.attributes:"")+`\r -`},s.parseFmtp=function(c){const u={};let h;const _=c.substring(c.indexOf(" ")+1).split(";");for(let B=0;B<_.length;B++)h=_[B].trim().split("="),u[h[0].trim()]=h[1];return u},s.writeFmtp=function(c){let u="",h=c.payloadType;if(c.preferredPayloadType!==void 0&&(h=c.preferredPayloadType),c.parameters&&Object.keys(c.parameters).length){const _=[];Object.keys(c.parameters).forEach(B=>{c.parameters[B]!==void 0?_.push(B+"="+c.parameters[B]):_.push(B)}),u+="a=fmtp:"+h+" "+_.join(";")+`\r -`}return u},s.parseRtcpFb=function(c){const u=c.substring(c.indexOf(" ")+1).split(" ");return{type:u.shift(),parameter:u.join(" ")}},s.writeRtcpFb=function(c){let u="",h=c.payloadType;return c.preferredPayloadType!==void 0&&(h=c.preferredPayloadType),c.rtcpFeedback&&c.rtcpFeedback.length&&c.rtcpFeedback.forEach(_=>{u+="a=rtcp-fb:"+h+" "+_.type+(_.parameter&&_.parameter.length?" "+_.parameter:"")+`\r -`}),u},s.parseSsrcMedia=function(c){const u=c.indexOf(" "),h={ssrc:parseInt(c.substring(7,u),10)},_=c.indexOf(":",u);return _>-1?(h.attribute=c.substring(u+1,_),h.value=c.substring(_+1)):h.attribute=c.substring(u+1),h},s.parseSsrcGroup=function(c){const u=c.substring(13).split(" ");return{semantics:u.shift(),ssrcs:u.map(h=>parseInt(h,10))}},s.getMid=function(c){const u=s.matchPrefix(c,"a=mid:")[0];if(u)return u.substring(6)},s.parseFingerprint=function(c){const u=c.substring(14).split(" ");return{algorithm:u[0].toLowerCase(),value:u[1].toUpperCase()}},s.getDtlsParameters=function(c,u){return{role:"auto",fingerprints:s.matchPrefix(c+u,"a=fingerprint:").map(s.parseFingerprint)}},s.writeDtlsParameters=function(c,u){let h="a=setup:"+u+`\r -`;return c.fingerprints.forEach(_=>{h+="a=fingerprint:"+_.algorithm+" "+_.value+`\r -`}),h},s.parseCryptoLine=function(c){const u=c.substring(9).split(" ");return{tag:parseInt(u[0],10),cryptoSuite:u[1],keyParams:u[2],sessionParams:u.slice(3)}},s.writeCryptoLine=function(c){return"a=crypto:"+c.tag+" "+c.cryptoSuite+" "+(typeof c.keyParams=="object"?s.writeCryptoKeyParams(c.keyParams):c.keyParams)+(c.sessionParams?" "+c.sessionParams.join(" "):"")+`\r -`},s.parseCryptoKeyParams=function(c){if(c.indexOf("inline:")!==0)return null;const u=c.substring(7).split("|");return{keyMethod:"inline",keySalt:u[0],lifeTime:u[1],mkiValue:u[2]?u[2].split(":")[0]:void 0,mkiLength:u[2]?u[2].split(":")[1]:void 0}},s.writeCryptoKeyParams=function(c){return c.keyMethod+":"+c.keySalt+(c.lifeTime?"|"+c.lifeTime:"")+(c.mkiValue&&c.mkiLength?"|"+c.mkiValue+":"+c.mkiLength:"")},s.getCryptoParameters=function(c,u){return s.matchPrefix(c+u,"a=crypto:").map(s.parseCryptoLine)},s.getIceParameters=function(c,u){const h=s.matchPrefix(c+u,"a=ice-ufrag:")[0],_=s.matchPrefix(c+u,"a=ice-pwd:")[0];return h&&_?{usernameFragment:h.substring(12),password:_.substring(10)}:null},s.writeIceParameters=function(c){let u="a=ice-ufrag:"+c.usernameFragment+`\r -a=ice-pwd:`+c.password+`\r -`;return c.iceLite&&(u+=`a=ice-lite\r -`),u},s.parseRtpParameters=function(c){const u={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},h=s.splitLines(c)[0].split(" ");u.profile=h[2];for(let B=3;B{u.headerExtensions.push(s.parseExtmap(B))});const _=s.matchPrefix(c,"a=rtcp-fb:* ").map(s.parseRtcpFb);return u.codecs.forEach(B=>{_.forEach(Q=>{B.rtcpFeedback.find(T=>T.type===Q.type&&T.parameter===Q.parameter)||B.rtcpFeedback.push(Q)})}),u},s.writeRtpDescription=function(c,u){let h="";h+="m="+c+" ",h+=u.codecs.length>0?"9":"0",h+=" "+(u.profile||"UDP/TLS/RTP/SAVPF")+" ",h+=u.codecs.map(B=>B.preferredPayloadType!==void 0?B.preferredPayloadType:B.payloadType).join(" ")+`\r -`,h+=`c=IN IP4 0.0.0.0\r -`,h+=`a=rtcp:9 IN IP4 0.0.0.0\r -`,u.codecs.forEach(B=>{h+=s.writeRtpMap(B),h+=s.writeFmtp(B),h+=s.writeRtcpFb(B)});let _=0;return u.codecs.forEach(B=>{B.maxptime>_&&(_=B.maxptime)}),_>0&&(h+="a=maxptime:"+_+`\r -`),u.headerExtensions&&u.headerExtensions.forEach(B=>{h+=s.writeExtmap(B)}),h},s.parseRtpEncodingParameters=function(c){const u=[],h=s.parseRtpParameters(c),_=h.fecMechanisms.indexOf("RED")!==-1,B=h.fecMechanisms.indexOf("ULPFEC")!==-1,Q=s.matchPrefix(c,"a=ssrc:").map(U=>s.parseSsrcMedia(U)).filter(U=>U.attribute==="cname"),T=Q.length>0&&Q[0].ssrc;let D;const O=s.matchPrefix(c,"a=ssrc-group:FID").map(U=>U.substring(17).split(" ").map(H=>parseInt(H,10)));O.length>0&&O[0].length>1&&O[0][0]===T&&(D=O[0][1]),h.codecs.forEach(U=>{if(U.name.toUpperCase()==="RTX"&&U.parameters.apt){let H={ssrc:T,codecPayloadType:parseInt(U.parameters.apt,10)};T&&D&&(H.rtx={ssrc:D}),u.push(H),_&&(H=JSON.parse(JSON.stringify(H)),H.fec={ssrc:T,mechanism:B?"red+ulpfec":"red"},u.push(H))}}),u.length===0&&T&&u.push({ssrc:T});let P=s.matchPrefix(c,"b=");return P.length&&(P=P[0].indexOf("b=TIAS:")===0?parseInt(P[0].substring(7),10):P[0].indexOf("b=AS:")===0?1e3*parseInt(P[0].substring(5),10)*.95-16e3:void 0,u.forEach(U=>{U.maxBitrate=P})),u},s.parseRtcpParameters=function(c){const u={},h=s.matchPrefix(c,"a=ssrc:").map(Q=>s.parseSsrcMedia(Q)).filter(Q=>Q.attribute==="cname")[0];h&&(u.cname=h.value,u.ssrc=h.ssrc);const _=s.matchPrefix(c,"a=rtcp-rsize");u.reducedSize=_.length>0,u.compound=_.length===0;const B=s.matchPrefix(c,"a=rtcp-mux");return u.mux=B.length>0,u},s.writeRtcpParameters=function(c){let u="";return c.reducedSize&&(u+=`a=rtcp-rsize\r -`),c.mux&&(u+=`a=rtcp-mux\r -`),c.ssrc!==void 0&&c.cname&&(u+="a=ssrc:"+c.ssrc+" cname:"+c.cname+`\r -`),u},s.parseMsid=function(c){let u;const h=s.matchPrefix(c,"a=msid:");if(h.length===1)return u=h[0].substring(7).split(" "),{stream:u[0],track:u[1]};const _=s.matchPrefix(c,"a=ssrc:").map(B=>s.parseSsrcMedia(B)).filter(B=>B.attribute==="msid");return _.length>0?(u=_[0].value.split(" "),{stream:u[0],track:u[1]}):void 0},s.parseSctpDescription=function(c){const u=s.parseMLine(c),h=s.matchPrefix(c,"a=max-message-size:");let _;h.length>0&&(_=parseInt(h[0].substring(19),10)),isNaN(_)&&(_=65536);const B=s.matchPrefix(c,"a=sctp-port:");if(B.length>0)return{port:parseInt(B[0].substring(12),10),protocol:u.fmt,maxMessageSize:_};const Q=s.matchPrefix(c,"a=sctpmap:");if(Q.length>0){const T=Q[0].substring(10).split(" ");return{port:parseInt(T[0],10),protocol:T[1],maxMessageSize:_}}},s.writeSctpDescription=function(c,u){let h=[];return h=c.protocol!=="DTLS/SCTP"?["m="+c.kind+" 9 "+c.protocol+" "+u.protocol+`\r -`,`c=IN IP4 0.0.0.0\r -`,"a=sctp-port:"+u.port+`\r -`]:["m="+c.kind+" 9 "+c.protocol+" "+u.port+`\r -`,`c=IN IP4 0.0.0.0\r -`,"a=sctpmap:"+u.port+" "+u.protocol+` 65535\r -`],u.maxMessageSize!==void 0&&h.push("a=max-message-size:"+u.maxMessageSize+`\r -`),h.join("")},s.generateSessionId=function(){return Math.random().toString().substr(2,22)},s.writeSessionBoilerplate=function(c,u,h){let _;const B=u!==void 0?u:2;return _=c||s.generateSessionId(),`v=0\r -o=`+(h||"thisisadapterortc")+" "+_+" "+B+` IN IP4 127.0.0.1\r -s=-\r -t=0 0\r -`},s.getDirection=function(c,u){const h=s.splitLines(c);for(let _=0;_(c.candidate&&Object.defineProperty(c,"candidate",{value:new t.RTCIceCandidate(c.candidate),writable:"false"}),c))}function vD(t){!t.RTCIceCandidate||t.RTCIceCandidate&&"relayProtocol"in t.RTCIceCandidate.prototype||GE(t,"icecandidate",s=>{if(s.candidate){const c=aC.parseCandidate(s.candidate.candidate);c.type==="relay"&&(s.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[c.priority>>24])}return s})}function AC(t,s){if(!t.RTCPeerConnection)return;"sctp"in t.RTCPeerConnection.prototype||Object.defineProperty(t.RTCPeerConnection.prototype,"sctp",{get(){return this._sctp===void 0?null:this._sctp}});const c=function(Q){if(!Q||!Q.sdp)return!1;const T=aC.splitSections(Q.sdp);return T.shift(),T.some(D=>{const O=aC.parseMLine(D);return O&&O.kind==="application"&&O.protocol.indexOf("SCTP")!==-1})},u=function(Q){const T=Q.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(T===null||T.length<2)return-1;const D=parseInt(T[1],10);return D!=D?-1:D},h=function(Q){let T=65536;return s.browser==="firefox"&&(T=s.version<57?Q===-1?16384:2147483637:s.version<60?s.version===57?65535:65536:2147483637),T},_=function(Q,T){let D=65536;s.browser==="firefox"&&s.version===57&&(D=65535);const O=aC.matchPrefix(Q.sdp,"a=max-message-size:");return O.length>0?D=parseInt(O[0].substr(19),10):s.browser==="firefox"&&T!==-1&&(D=2147483637),D},B=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,s.browser==="chrome"&&s.version>=76&&this.getConfiguration().sdpSemantics==="plan-b"&&Object.defineProperty(this,"sctp",{get(){return this._sctp===void 0?null:this._sctp},enumerable:!0,configurable:!0}),c(arguments[0])){const Q=u(arguments[0]),T=h(Q),D=_(arguments[0],Q);let O;O=T===0&&D===0?Number.POSITIVE_INFINITY:T===0||D===0?Math.max(T,D):Math.min(T,D);const P={};Object.defineProperty(P,"maxMessageSize",{get:()=>O}),this._sctp=P}return B.apply(this,arguments)}}function cC(t){if(!t.RTCPeerConnection||!("createDataChannel"in t.RTCPeerConnection.prototype))return;function s(u,h){const _=u.send;u.send=function(){const B=arguments[0],Q=B.length||B.size||B.byteLength;if(u.readyState==="open"&&h.sctp&&Q>h.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+h.sctp.maxMessageSize+" bytes)");return _.apply(u,arguments)}}const c=t.RTCPeerConnection.prototype.createDataChannel;t.RTCPeerConnection.prototype.createDataChannel=function(){const u=c.apply(this,arguments);return s(u,this),u},GE(t,"datachannel",u=>(s(u.channel,u.target),u))}function DD(t){if(!t.RTCPeerConnection||"connectionState"in t.RTCPeerConnection.prototype)return;const s=t.RTCPeerConnection.prototype;Object.defineProperty(s,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(s,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(c){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),c&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=c)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(c=>{const u=s[c];s[c]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=h=>{const _=h.target;if(_._lastConnectionState!==_.connectionState){_._lastConnectionState=_.connectionState;const B=new Event("connectionstatechange",h);_.dispatchEvent(B)}return h},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),u.apply(this,arguments)}})}function L3(t,s){if(!t.RTCPeerConnection||s.browser==="chrome"&&s.version>=71||s.browser==="safari"&&s.version>=605)return;const c=t.RTCPeerConnection.prototype.setRemoteDescription;t.RTCPeerConnection.prototype.setRemoteDescription=function(u){if(u&&u.sdp&&u.sdp.indexOf(` -a=extmap-allow-mixed`)!==-1){const h=u.sdp.split(` -`).filter(_=>Ga(_).call(_)!=="a=extmap-allow-mixed").join(` -`);t.RTCSessionDescription&&u instanceof t.RTCSessionDescription?arguments[0]=new t.RTCSessionDescription({type:u.type,sdp:h}):u.sdp=h}return c.apply(this,arguments)}}function NS(t,s){if(!t.RTCPeerConnection||!t.RTCPeerConnection.prototype)return;const c=t.RTCPeerConnection.prototype.addIceCandidate;c&&c.length!==0&&(t.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?(s.browser==="chrome"&&s.version<78||s.browser==="firefox"&&s.version<68||s.browser==="safari")&&arguments[0]&&arguments[0].candidate===""?Ut.resolve():c.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Ut.resolve())})}function lC(t,s){if(!t.RTCPeerConnection||!t.RTCPeerConnection.prototype)return;const c=t.RTCPeerConnection.prototype.setLocalDescription;c&&c.length!==0&&(t.RTCPeerConnection.prototype.setLocalDescription=function(){let u=arguments[0]||{};if(typeof u!="object"||u.type&&u.sdp)return c.apply(this,arguments);if(u={type:u.type,sdp:u.sdp},!u.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":u.type="offer";break;default:u.type="answer"}return u.sdp||u.type!=="offer"&&u.type!=="answer"?c.apply(this,[u]):(u.type==="offer"?this.createOffer:this.createAnswer).apply(this).then(h=>c.apply(this,[h]))})}var UY=Object.freeze({__proto__:null,removeExtmapAllowMixed:L3,shimAddIceCandidateNullOrEmpty:NS,shimConnectionState:DD,shimMaxMessageSize:AC,shimParameterlessSetLocalDescription:lC,shimRTCIceCandidate:bS,shimRTCIceCandidateRelayProtocol:vD,shimSendThrowTypeError:cC});(function(){let t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).window,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const c=sD,u=function(_){const B={browser:null,version:null};if(_===void 0||!_.navigator)return B.browser="Not a browser.",B;const Q=_.navigator;if(Q.mozGetUserMedia)B.browser="firefox",B.version=O3(Q.userAgent,/Firefox\/(\d+)\./,1);else if(Q.webkitGetUserMedia||_.isSecureContext===!1&&_.webkitRTCPeerConnection)B.browser="chrome",B.version=O3(Q.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else{if(!_.RTCPeerConnection||!Q.userAgent.match(/AppleWebKit\/(\d+)\./))return B.browser="Not a supported browser.",B;B.browser="safari",B.version=O3(Q.userAgent,/AppleWebKit\/(\d+)\./,1),B.supportsUnifiedPlan=_.RTCRtpTransceiver&&"currentDirection"in _.RTCRtpTransceiver.prototype}return B}(t),h={browserDetails:u,commonShim:UY,extractVersion:O3,disableLog:oD,disableWarnings:lk,sdp:wk};switch(u.browser){case"chrome":if(!fD||!ES||!s.shimChrome)return c("Chrome shim is not included in this adapter release."),h;if(u.version===null)return c("Chrome shim can not determine version, not shimming."),h;c("adapter.js shimming chrome."),h.browserShim=fD,NS(t,u),lC(t),lD(t,u),dD(t),ES(t,u),uD(t),CD(t,u),gD(t),ED(t),hD(t),pD(t,u),bS(t),vD(t),DD(t),AC(t,u),cC(t),L3(t,u);break;case"firefox":if(!Ek||!hS||!s.shimFirefox)return c("Firefox shim is not included in this adapter release."),h;c("adapter.js shimming firefox."),h.browserShim=Ek,NS(t,u),lC(t),_D(t,u),hS(t,u),mD(t),RD(t),BD(t),SD(t),dk(t),uk(t),CS(t),yD(t),gk(t),bS(t),DD(t),AC(t,u),cC(t);break;case"safari":if(!pS||!s.shimSafari)return c("Safari shim is not included in this adapter release."),h;c("adapter.js shimming safari."),h.browserShim=pS,NS(t,u),lC(t),fk(t),Bk(t),Ck(t),hk(t),Ik(t),mk(t),pk(t),Sk(t),bS(t),vD(t),AC(t,u),cC(t),L3(t,u);break;default:c("Unsupported browser!")}})({window:typeof window>"u"?void 0:window}),In({target:"Array",stat:!0},{isArray:p0});var xY=f(Zn.Array.isArray),FY=TypeError,OS=function(t){if(t>9007199254740991)throw new FY("Maximum allowed index exceeded");return t},bD=p0,GY=cB,VY=Tn,KY=Po("species"),H0=Array,HY=function(t){var s;return bD(t)&&(s=t.constructor,(GY(s)&&(s===H0||bD(s.prototype))||VY(s)&&(s=s[KY])===null)&&(s=void 0)),s===void 0?H0:s},vk=function(t,s){return new(HY(t))(s===0?0:s)},YY=S,jY=Ho,JY=Po("species"),LS=function(t){return jY>=51||!YY(function(){var s=[];return(s.constructor={})[JY]=function(){return{foo:1}},s[t](Boolean).foo!==1})},qY=In,Dk=S,WY=p0,XY=Tn,zY=La,$Y=ug,MS=OS,bk=jB,ZY=C3,ND=vk,Nk=LS,OD=Ho,Lk=Po("isConcatSpreadable"),Mk=OD>=51||!Dk(function(){var t=[];return t[Lk]=!1,t.concat()[0]!==t}),kk=function(t){if(!XY(t))return!1;var s=t[Lk];return s!==void 0?!!s:WY(t)};qY({target:"Array",proto:!0,forced:!Mk||!Nk("concat")},{concat:function(t){var s,c,u,h,_,B=zY(this),Q=ND(B,0),T=0;for(s=-1,u=arguments.length;sse;se++)if((Q||se in $)&&(U=te(P=$[se],se,H),t))if(s)uC(me,se,U);else if(U)switch(t){case 3:return!0;case 5:return P;case 6:return se;case 2:uC(me,ge++,P)}else switch(t){case 4:return!1;case 7:uC(me,ge++,P)}return _?-1:u||h?h:me}},M3={forEach:Jk(0)},gC=In,H1=ee,EC=vt,hC=j,Dd=Yt,Bu=Ns,qk=S,Za=Xs,mc=W,PS=Xo,VE=Bs,IC=Rr,lj=h1,LD=fi,CC=Jp,Wk=Lm,dj=bm,Xk=Pk,uj=jp,zk=lt,$k=Gs,k3=jT,MD=ar,KE=hg,Zk=nB,kD=uu,US=Yp,e5=kl,t5=Po,gj=dC,r5=Ea,Ej=Hk,i5=Cg,PD=gg,P3=M3.forEach,yA=wm("hidden"),Y0="Symbol",U3="prototype",Ht=PD.set,Fn=PD.getterFor(Y0),Gl=Object[U3],HE=H1.Symbol,pC=HE&&HE[U3],n5=H1.RangeError,o5=H1.TypeError,UD=H1.QObject,x3=zk.f,YE=$k.f,xS=Xk.f,s5=MD.f,a5=hC([].push),Su=kD("symbols"),fC=kD("op-symbols"),A5=kD("wks"),FS=!UD||!UD[U3]||!UD[U3].findChild,c5=function(t,s,c){var u=x3(Gl,s);return u&&delete Gl[s],YE(t,s,c),u&&t!==Gl&&YE(Gl,s,u),t},xD=Dd&&qk(function(){return CC(YE({},"a",{get:function(){return YE(this,"a",{value:7}).a}})).a!==7})?c5:YE,GS=function(t,s){var c=Su[t]=CC(pC);return Ht(c,{type:Y0,tag:t,description:s}),Dd||(c.description=s),c},F3=function(t,s,c){t===Gl&&F3(fC,s,c),PS(t);var u=IC(s);return PS(c),Za(Su,u)?(("enumerable"in c?!c.enumerable:!Za(t,u)||Za(t,yA)&&t[yA][u])?(Za(t,yA)||YE(t,yA,LD(1,CC(null))),t[yA][u]=!0):(Za(t,yA)&&t[yA][u]&&(t[yA][u]=!1),c=CC(c,{enumerable:LD(0,!1)})),xD(t,u,c)):YE(t,u,c)},FD=function(t,s){PS(t);var c=VE(s),u=Wk(c).concat(d5(c));return P3(u,function(h){Dd&&!EC(GD,c,h)||F3(t,h,c[h])}),t},GD=function(t){var s=IC(t),c=EC(s5,this,s);return!(this===Gl&&Za(Su,s)&&!Za(fC,s))&&(!(c||!Za(this,s)||!Za(Su,s)||Za(this,yA)&&this[yA][s])||c)},l5=function(t,s){var c=VE(t),u=IC(s);if(c!==Gl||!Za(Su,u)||Za(fC,u)){var h=x3(c,u);return!h||!Za(Su,u)||Za(c,yA)&&c[yA][u]||(h.enumerable=!0),h}},VD=function(t){var s=xS(VE(t)),c=[];return P3(s,function(u){Za(Su,u)||Za(US,u)||a5(c,u)}),c},d5=function(t){var s=t===Gl,c=xS(s?fC:VE(t)),u=[];return P3(c,function(h){!Za(Su,h)||s&&!Za(Gl,h)||a5(u,Su[h])}),u};Bu||(HE=function(){if(mc(pC,this))throw new o5("Symbol is not a constructor");var t=arguments.length&&arguments[0]!==void 0?lj(arguments[0]):void 0,s=e5(t),c=function(u){var h=this===void 0?H1:this;h===Gl&&EC(c,fC,u),Za(h,yA)&&Za(h[yA],s)&&(h[yA][s]=!1);var _=LD(1,u);try{xD(h,s,_)}catch(B){if(!(B instanceof n5))throw B;c5(h,s,_)}};return Dd&&FS&&xD(Gl,s,{configurable:!0,set:c}),GS(s,t)},KE(pC=HE[U3],"toString",function(){return Fn(this).tag}),KE(HE,"withoutSetter",function(t){return GS(e5(t),t)}),MD.f=GD,$k.f=F3,k3.f=FD,zk.f=l5,dj.f=Xk.f=VD,uj.f=d5,gj.f=function(t){return GS(t5(t),t)},Dd&&Zk(pC,"description",{configurable:!0,get:function(){return Fn(this).description}})),gC({global:!0,wrap:!0,forced:!Bu,sham:!Bu},{Symbol:HE}),P3(Wk(A5),function(t){r5(t)}),gC({target:Y0,stat:!0,forced:!Bu},{useSetter:function(){FS=!0},useSimple:function(){FS=!1}}),gC({target:"Object",stat:!0,forced:!Bu,sham:!Dd},{create:function(t,s){return s===void 0?CC(t):FD(CC(t),s)},defineProperty:F3,defineProperties:FD,getOwnPropertyDescriptor:l5}),gC({target:"Object",stat:!0,forced:!Bu},{getOwnPropertyNames:VD}),Ej(),i5(HE,Y0),US[yA]=!0;var u5=Ns&&!!Symbol.for&&!!Symbol.keyFor,hj=In,g5=Me,Ij=Xs,E5=h1,h5=uu,Cj=u5,KD=h5("string-to-symbol-registry"),I5=h5("symbol-to-string-registry");hj({target:"Symbol",stat:!0,forced:!Cj},{for:function(t){var s=E5(t);if(Ij(KD,s))return KD[s];var c=g5("Symbol")(s);return KD[s]=c,I5[c]=s,c}});var pj=In,fj=Xs,_j=oA,mj=Mo,Bj=u5,C5=uu("symbol-to-string-registry");pj({target:"Symbol",stat:!0,forced:!Bj},{keyFor:function(t){if(!_j(t))throw new TypeError(mj(t)+" is not a symbol");if(fj(C5,t))return C5[t]}});var p5=Tn,f5=gg.get,HD=j,Sj=Xs,VS=SyntaxError,_5=parseInt,Rj=String.fromCharCode,yj=HD("".charAt),YD=HD("".slice),m5=HD(/./.exec),B5={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` -`,"\\r":"\r","\\t":" "},S5=/^[\da-f]{4}$/i,Qj=/^[\u0000-\u001F]$/,R5=!S(function(){var t="9007199254740993",s=JSON.rawJSON(t);return!JSON.isRawJSON(s)||JSON.stringify(s)!==t}),_C=In,y5=Me,Q5=De,T5=vt,j0=j,w5=S,ha=p0,KS=ye,Tj=function(t){if(!p5(t))return!1;var s=f5(t);return!!s&&s.type==="RawJSON"},v5=oA,D5=He,b5=h1,wj=yE,vj=function(t,s){for(var c=!0,u="";st.length)&&(s=t.length);for(var c=0,u=new Array(s);cQ){var H=$S(U/10);return H===0?D:H<=Q?u[H-1]===void 0?ZS(O,1):u[H-1]+ZS(O,1):D}P=u[U-1]}return P===void 0?"":P})},lJ=Po("replace"),dJ=TypeError,Eb=eR("".indexOf),uJ=eR("".replace),hb=eR("".slice),sP=Math.max;nJ({target:"String",proto:!0},{replaceAll:function(t,s){var c,u,h,_,B,Q,T,D,O,P,U=gb(this),H=0,$="";if(oJ(t)){if((c=sJ(t))&&(u=X0(gb(AJ(t))),!~Eb(u,"g")))throw new dJ("`.replaceAll` does not allow non-global regexes");if(h=aJ(t,lJ))return nP(h,t,U,s);if(c)return uJ(X0(U),t,s)}for(_=X0(U),B=X0(t),(Q=oP(s))||(s=X0(s)),T=B.length,D=sP(1,T),O=Eb(_,B);O!==-1;)P=Q?X0(s(B,O,_)):cJ(B,_,O,[],void 0,s),$+=hb(_,H,O)+P,H=O+T,O=O+D>_.length?-1:Eb(_,B,O+D);return H<_.length&&($+=hb(_,H)),$}});var gJ=E1("String","replaceAll"),EJ=W,Ib=gJ,Cb=String.prototype,hJ=function(t){var s=t.replaceAll;return typeof t=="string"||t===Cb||EJ(Cb,t)&&s===Cb.replaceAll?Ib:s},aP=f(hJ),pb=ee;In({global:!0,forced:pb.globalThis!==pb},{globalThis:pb});var yu=f(ee),fb={exports:{}};(function(t,s){(function(c,u){var h="function",_="undefined",B="object",Q="string",T="major",D="model",O="name",P="type",U="vendor",H="version",$="architecture",Z="console",te="mobile",se="tablet",ge="smarttv",me="wearable",Qe="embedded",Oe="Amazon",we="Apple",Ne="ASUS",et="BlackBerry",st="Browser",Xt="Chrome",lr="Firefox",ft="Google",Ir="Huawei",ui="LG",Nr="Microsoft",Ki="Motorola",it="Opera",mt="Samsung",Gt="Sharp",at="Sony",ie="Xiaomi",Te="Zebra",ke="Facebook",_t="Chromium OS",Ar="Mac OS",ni=function(ho){for(var To={},On=0;On0?es.length===2?typeof es[1]==h?this[es[0]]=es[1].call(this,Xa):this[es[0]]=es[1]:es.length===3?typeof es[1]!==h||es[1].exec&&es[1].test?this[es[0]]=Xa?Xa.replace(es[1],es[2]):u:this[es[0]]=Xa?es[1].call(this,Xa,es[2]):u:es.length===4&&(this[es[0]]=Xa?es[3].call(this,Xa.replace(es[1],es[2])):u):this[es]=Xa||u;Ol+=2}},_s=function(ho,To){for(var On in To)if(typeof To[On]===B&&To[On].length>0){for(var la=0;la2&&(Ri[D]="iPad",Ri[P]=se),Ri},this.getEngine=function(){var Ri={};return Ri[O]=u,Ri[H]=u,a1.call(Ri,la,es.engine),Ri},this.getOS=function(){var Ri={};return Ri[O]=u,Ri[H]=u,a1.call(Ri,la,es.os),!Ri[O]&&lu&&lu.platform!="Unknown"&&(Ri[O]=lu.platform.replace(/chrome os/i,_t).replace(/macos/i,Ar)),Ri},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return la},this.setUA=function(Ri){return la=typeof Ri===Q&&Ri.length>350?Nl(Ri,350):Ri,this},this.setUA(la),this};UA.VERSION="0.7.34",UA.BROWSER=ni([O,H,T]),UA.CPU=ni([$]),UA.DEVICE=ni([D,U,P,Z,te,ge,se,me,Qe]),UA.ENGINE=UA.OS=ni([O,H]),t.exports&&(s=t.exports=UA),s.UAParser=UA;var xs=typeof c!==_&&(c.jQuery||c.Zepto);if(xs&&!xs.ua){var Ec=new UA;xs.ua=Ec.getResult(),xs.ua.get=function(){return Ec.getUA()},xs.ua.set=function(ho){Ec.setUA(ho);var To=Ec.getResult();for(var On in To)xs.ua[On]=To[On]}}})(typeof window=="object"?window:I)})(fb,fb.exports);var IJ=f(fb.exports),AP=fg.clear;In({global:!0,bind:!0,forced:ee.clearImmediate!==AP},{clearImmediate:AP});var tf=ee,cP=De,lP=ye,CJ=kT,dP=Kt,_b=yE,uP=QE,pJ=tf.Function,gP=/MSIE .\./.test(dP)||CJ==="BUN"&&function(){var t=tf.Bun.version.split(".");return t.length<3||t[0]==="0"&&(t[1]<3||t[1]==="3"&&t[2]==="0")}(),EP=In,z0=ee,mb=fg.set,rf=function(t,s){var c=1;return gP?function(u,h){var _=uP(arguments.length,1)>c,B=lP(u)?u:pJ(u),Q=_?_b(arguments,c):[],T=_?function(){cP(B,this,Q)}:B;return t(T)}:t},hP=z0.setImmediate?rf(mb):mb;EP({global:!0,bind:!0,forced:z0.setImmediate!==hP},{setImmediate:hP});var IP=f(Zn.setImmediate),Ae=ee,CP=CM,fJ=Io,Bb=QE,Sb=Yt;In({global:!0,dontCallGetSet:!0,forced:S(function(){return Sb&&Object.getOwnPropertyDescriptor(Ae,"queueMicrotask").value.length!==1})},{queueMicrotask:function(t){Bb(arguments.length,1),CP(fJ(t))}});var pP=f(Zn.queueMicrotask);function fP(t,s){return function(){return t.apply(s,arguments)}}const _J=Object.prototype.toString,nf=Object.getPrototypeOf,sf=Symbol.iterator,YA=Symbol.toStringTag,af=(Rb=Object.create(null),t=>{const s=_J.call(t);return Rb[s]||(Rb[s]=s.slice(8,-1).toLowerCase())});var Rb;const bd=t=>(t=t.toLowerCase(),s=>af(s)===t),Af=t=>s=>typeof s===t,SC=Array.isArray,RC=Af("undefined");function cf(t){return t!==null&&!RC(t)&&t.constructor!==null&&!RC(t.constructor)&&Sc(t.constructor.isBuffer)&&t.constructor.isBuffer(t)}const _P=bd("ArrayBuffer"),mJ=Af("string"),Sc=Af("function"),yb=Af("number"),yC=t=>t!==null&&typeof t=="object",tR=t=>{if(af(t)!=="object")return!1;const s=nf(t);return!(s!==null&&s!==Object.prototype&&Object.getPrototypeOf(s)!==null||YA in t||sf in t)},rR=bd("Date"),mP=bd("File"),BP=bd("Blob"),lf=bd("FileList"),SP=yu!==void 0?yu:typeof self<"u"?self:typeof window<"u"?window:typeof commonjsGlobal<"u"?commonjsGlobal:{},RP=SP.FormData!==void 0?SP.FormData:void 0,BJ=bd("URLSearchParams"),iR=ir(["ReadableStream","Request","Response","Headers"].map(bd),4),yP=iR[0],SJ=iR[1],RJ=iR[2],yJ=iR[3];function df(t,s){let c,u,h=(arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}).allOwnKeys,_=h!==void 0&&h;if(t!=null)if(typeof t!="object"&&(t=[t]),SC(t))for(c=0,u=t.length;c0;)if(u=c[h],s===u.toLowerCase())return u;return null}const XE=yu!==void 0?yu:typeof self<"u"?self:typeof window<"u"?window:commonjsGlobal,TP=t=>!RC(t)&&t!==XE,wP=(nR=typeof Uint8Array<"u"&&nf(Uint8Array),t=>nR&&t instanceof nR);var nR;const QJ=bd("HTMLFormElement"),Qb=(t=>{let s=Object.prototype.hasOwnProperty;return(c,u)=>s.call(c,u)})(),TJ=bd("RegExp"),oR=(t,s)=>{const c=Object.getOwnPropertyDescriptors(t),u={};df(c,(h,_)=>{let B;(B=s(h,_,t))!==!1&&(u[_]=B||h)}),Object.defineProperties(t,u)},sR=bd("AsyncFunction"),aR=(vP=typeof IP=="function",Tb=Sc(XE.postMessage),vP?IP:Tb?(wb="axios@".concat(Math.random()),AR=[],XE.addEventListener("message",t=>{let s=t.source,c=t.data;s===XE&&c===wb&&AR.length&&AR.shift()()},!1),t=>{AR.push(t),XE.postMessage(wb,"*")}):t=>setTimeout(t));var vP,Tb,wb,AR;const wJ=pP!==void 0?pP.bind(XE):typeof process<"u"&&process.nextTick||aR;var yt={isArray:SC,isArrayBuffer:_P,isBuffer:cf,isFormData:t=>{if(!t)return!1;if(RP&&t instanceof RP)return!0;const s=nf(t);if(!s||s===Object.prototype||!Sc(t.append))return!1;const c=af(t);return c==="formdata"||c==="object"&&Sc(t.toString)&&t.toString()==="[object FormData]"},isArrayBufferView:function(t){let s;return s=typeof ArrayBuffer<"u"&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&_P(t.buffer),s},isString:mJ,isNumber:yb,isBoolean:t=>t===!0||t===!1,isObject:yC,isPlainObject:tR,isEmptyObject:t=>{if(!yC(t)||cf(t))return!1;try{return Object.keys(t).length===0&&Object.getPrototypeOf(t)===Object.prototype}catch{return!1}},isReadableStream:yP,isRequest:SJ,isResponse:RJ,isHeaders:yJ,isUndefined:RC,isDate:rR,isFile:mP,isReactNativeBlob:t=>!(!t||t.uri===void 0),isReactNative:t=>t&&t.getParts!==void 0,isBlob:BP,isRegExp:TJ,isFunction:Sc,isStream:t=>yC(t)&&Sc(t.pipe),isURLSearchParams:BJ,isTypedArray:wP,isFileList:lf,forEach:df,merge:function t(){const s=TP(this)&&this||{},c=s.caseless,u=s.skipUndefined,h={},_=(D,O)=>{if(O==="__proto__"||O==="constructor"||O==="prototype")return;const P=c&&QP(h,O)||O,U=Qb(h,P)?h[P]:void 0;tR(U)&&tR(D)?h[P]=t(U,D):tR(D)?h[P]=t({},D):SC(D)?h[P]=D.slice():u&&RC(D)||(h[P]=D)};for(var B=arguments.length,Q=new Array(B),T=0;T{c&&Sc(u)?Object.defineProperty(t,h,{__proto__:null,value:fP(u,c),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(t,h,{__proto__:null,value:u,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:(arguments.length>3&&arguments[3]!==void 0?arguments[3]:{}).allOwnKeys}),t},trim:t=>Ga(t)?Ga(t).call(t):t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:t=>(t.charCodeAt(0)===65279&&(t=t.slice(1)),t),inherits:(t,s,c,u)=>{t.prototype=Object.create(s.prototype,u),Object.defineProperty(t.prototype,"constructor",{__proto__:null,value:t,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,"super",{__proto__:null,value:s.prototype}),c&&Object.assign(t.prototype,c)},toFlatObject:(t,s,c,u)=>{let h,_,B;const Q={};if(s=s||{},t==null)return s;do{for(h=Object.getOwnPropertyNames(t),_=h.length;_-- >0;)B=h[_],u&&!u(B,t,s)||Q[B]||(s[B]=t[B],Q[B]=!0);t=c!==!1&&nf(t)}while(t&&(!c||c(t,s))&&t!==Object.prototype);return s},kindOf:af,kindOfTest:bd,endsWith:(t,s,c)=>{t=String(t),(c===void 0||c>t.length)&&(c=t.length),c-=s.length;const u=t.indexOf(s,c);return u!==-1&&u===c},toArray:t=>{if(!t)return null;if(SC(t))return t;let s=t.length;if(!yb(s))return null;const c=new Array(s);for(;s-- >0;)c[s]=t[s];return c},forEachEntry:(t,s)=>{const c=(t&&t[sf]).call(t);let u;for(;(u=c.next())&&!u.done;){const h=u.value;s.call(t,h[0],h[1])}},matchAll:(t,s)=>{let c;const u=[];for(;(c=t.exec(s))!==null;)u.push(c);return u},isHTMLForm:QJ,hasOwnProperty:Qb,hasOwnProp:Qb,reduceDescriptors:oR,freezeMethods:t=>{oR(t,(s,c)=>{var u;if(Sc(t)&&Et(u=["arguments","caller","callee"]).call(u,c))return!1;const h=t[c];Sc(h)&&(s.enumerable=!1,"writable"in s?s.writable=!1:s.set||(s.set=()=>{throw Error("Can not rewrite read-only method '"+c+"'")}))})},toObjectSet:(t,s)=>{const c={},u=h=>{h.forEach(_=>{c[_]=!0})};return SC(t)?u(t):u(String(t).split(s)),c},toCamelCase:t=>t.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(s,c,u){return c.toUpperCase()+u}),noop:()=>{},toFiniteNumber:(t,s)=>t!=null&&Number.isFinite(t=+t)?t:s,findKey:QP,global:XE,isContextDefined:TP,isSpecCompliantForm:function(t){return!!(t&&Sc(t.append)&&t[YA]==="FormData"&&t[sf])},toJSONObject:t=>{const s=new WeakSet,c=u=>{if(yC(u)){if(s.has(u))return;if(cf(u))return u;if(!("toJSON"in u)){s.add(u);const h=SC(u)?[]:{};return df(u,(_,B)=>{const Q=c(_);!RC(Q)&&(h[B]=Q)}),s.delete(u),h}}return u};return c(t)},isAsyncFn:sR,isThenable:t=>t&&(yC(t)||Sc(t))&&Sc(t.then)&&Sc(t.catch),setImmediate:aR,asap:wJ,isIterable:t=>t!=null&&Sc(t[sf])};const vJ=yt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),DJ=new RegExp("[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+","g"),DP=new RegExp("[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+","g");function uf(t,s){return yt.isArray(t)?t.map(c=>uf(c,s)):function(c){let u=0,h=c.length;for(;uu;){const _=c.charCodeAt(h-1);if(_!==9&&_!==32)break;h-=1}return u===0&&h===c.length?c:c.slice(u,h)}(String(t).replace(s,""))}const vb=t=>uf(t,DJ),bJ=t=>uf(t,DP);function Db(t){const s=Object.create(null);return yt.forEach(t.toJSON(),(c,u)=>{s[u]=bJ(c)}),s}const QC=Symbol("internals");function zE(t){var s;return t&&Ga(s=String(t)).call(s).toLowerCase()}function TC(t){return t===!1||t==null?t:yt.isArray(t)?t.map(TC):vb(String(t))}function wC(t,s,c,u,h){return yt.isFunction(u)?u.call(this,s,c):(h&&(s=c),yt.isString(s)?yt.isString(u)?s.indexOf(u)!==-1:yt.isRegExp(u)?u.test(s):void 0:void 0)}class Rc{constructor(s){s&&this.set(s)}set(s,c,u){const h=this;function _(T,D,O){const P=zE(D);if(!P)throw new Error("header name must be a non-empty string");const U=yt.findKey(h,P);(!U||h[U]===void 0||O===!0||O===void 0&&h[U]!==!1)&&(h[U||D]=TC(T))}const B=(T,D)=>yt.forEach(T,(O,P)=>_(O,P,D));if(yt.isPlainObject(s)||s instanceof this.constructor)B(s,c);else if(yt.isString(s)&&(s=Ga(s).call(s))&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(Ga(Q=s).call(Q)))B((T=>{const D={};let O,P,U;return T&&T.split(` -`).forEach(function(H){var $,Z;U=H.indexOf(":"),O=Ga($=H.substring(0,U)).call($).toLowerCase(),P=Ga(Z=H.substring(U+1)).call(Z),!O||D[O]&&vJ[O]||(O==="set-cookie"?D[O]?D[O].push(P):D[O]=[P]:D[O]=D[O]?D[O]+", "+P:P)}),D})(s),c);else if(yt.isObject(s)&&yt.isIterable(s)){let T,D,O={};for(const P of s){if(!yt.isArray(P))throw TypeError("Object iterator must return a key-value pair");O[D=P[0]]=(T=O[D])?yt.isArray(T)?[...T,P[1]]:[T,P[1]]:P[1]}B(O,c)}else s!=null&&_(c,s,u);var Q;return this}get(s,c){if(s=zE(s)){const u=yt.findKey(this,s);if(u){const h=this[u];if(!c)return h;if(c===!0)return function(_){const B=Object.create(null),Q=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let T;for(;T=Q.exec(_);)B[T[1]]=T[2];return B}(h);if(yt.isFunction(c))return c.call(this,h,u);if(yt.isRegExp(c))return c.exec(h);throw new TypeError("parser must be boolean|regexp|function")}}}has(s,c){if(s=zE(s)){const u=yt.findKey(this,s);return!(!u||this[u]===void 0||c&&!wC(0,this[u],u,c))}return!1}delete(s,c){const u=this;let h=!1;function _(B){if(B=zE(B)){const Q=yt.findKey(u,B);!Q||c&&!wC(0,u[Q],Q,c)||(delete u[Q],h=!0)}}return yt.isArray(s)?s.forEach(_):_(s),h}clear(s){const c=Object.keys(this);let u=c.length,h=!1;for(;u--;){const _=c[u];s&&!wC(0,this[_],_,s,!0)||(delete this[_],h=!0)}return h}normalize(s){const c=this,u={};return yt.forEach(this,(h,_)=>{var B;const Q=yt.findKey(u,_);if(Q)return c[Q]=TC(h),void delete c[_];const T=s?function(D){return Ga(D).call(D).toLowerCase().replace(/([a-z\d])(\w*)/g,(O,P,U)=>P.toUpperCase()+U)}(_):Ga(B=String(_)).call(B);T!==_&&delete c[_],c[T]=TC(h),u[T]=!0}),this}concat(){for(var s=arguments.length,c=new Array(s),u=0;u{u!=null&&u!==!1&&(c[h]=s&&yt.isArray(u)?u.join(", "):u)}),c}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(s=>{let c=ir(s,2);return c[0]+": "+c[1]}).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(s){return s instanceof this?s:new this(s)}static concat(s){const c=new this(s);for(var u=arguments.length,h=new Array(u>1?u-1:0),_=1;_c.set(B)),c}static accessor(s){const c=(this[QC]=this[QC]={accessors:{}}).accessors,u=this.prototype;function h(_){const B=zE(_);c[B]||(function(Q,T){const D=yt.toCamelCase(" "+T);["get","set","has"].forEach(O=>{Object.defineProperty(Q,O+D,{__proto__:null,value:function(P,U,H){return this[O].call(this,T,P,U,H)},configurable:!0})})}(u,_),c[B]=!0)}return yt.isArray(s)?s.forEach(h):h(s),this}}Rc.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),yt.reduceDescriptors(Rc.prototype,(t,s)=>{let c=t.value,u=s[0].toUpperCase()+s.slice(1);return{get:()=>c,set(h){this[u]=h}}}),yt.freezeMethods(Rc);var yc=Rc;const bP="[REDACTED ****]";function vC(t,s){const c=new Set(s.map(_=>String(_).toLowerCase())),u=[],h=_=>{if(_===null||typeof _!="object"||yt.isBuffer(_))return _;if(u.indexOf(_)!==-1)return;let B;if(_ instanceof yc&&(_=_.toJSON()),u.push(_),yt.isArray(_))B=[],_.forEach((T,D)=>{const O=h(T);yt.isUndefined(O)||(B[D]=O)});else{if(!yt.isPlainObject(_)&&function(T){if(yt.hasOwnProp(T,"toJSON"))return!0;let D=Object.getPrototypeOf(T);for(;D&&D!==Object.prototype;){if(yt.hasOwnProp(D,"toJSON"))return!0;D=Object.getPrototypeOf(D)}return!1}(_))return u.pop(),_;B=Object.create(null);for(const T of Object.entries(_)){var Q=ir(T,2);const D=Q[0],O=Q[1],P=c.has(D.toLowerCase())?bP:h(O);yt.isUndefined(P)||(B[D]=P)}}return u.pop(),B};return h(t)}class TA extends Error{static from(s,c,u,h,_,B){const Q=new TA(s.message,c||s.code,u,h,_);return Q.cause=s,Q.name=s.name,s.status!=null&&Q.status==null&&(Q.status=s.status),B&&Object.assign(Q,B),Q}constructor(s,c,u,h,_){super(s),Object.defineProperty(this,"message",{__proto__:null,value:s,enumerable:!0,writable:!0,configurable:!0}),this.name="AxiosError",this.isAxiosError=!0,c&&(this.code=c),u&&(this.config=u),h&&(this.request=h),_&&(this.response=_,this.status=_.status)}toJSON(){const s=this.config,c=s&&yt.hasOwnProp(s,"redact")?s.redact:void 0,u=yt.isArray(c)&&c.length>0?vC(s,c):yt.toJSONObject(s);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:u,code:this.code,status:this.status}}}TA.ERR_BAD_OPTION_VALUE="ERR_BAD_OPTION_VALUE",TA.ERR_BAD_OPTION="ERR_BAD_OPTION",TA.ECONNABORTED="ECONNABORTED",TA.ETIMEDOUT="ETIMEDOUT",TA.ECONNREFUSED="ECONNREFUSED",TA.ERR_NETWORK="ERR_NETWORK",TA.ERR_FR_TOO_MANY_REDIRECTS="ERR_FR_TOO_MANY_REDIRECTS",TA.ERR_DEPRECATED="ERR_DEPRECATED",TA.ERR_BAD_RESPONSE="ERR_BAD_RESPONSE",TA.ERR_BAD_REQUEST="ERR_BAD_REQUEST",TA.ERR_CANCELED="ERR_CANCELED",TA.ERR_NOT_SUPPORT="ERR_NOT_SUPPORT",TA.ERR_INVALID_URL="ERR_INVALID_URL",TA.ERR_FORM_DATA_DEPTH_EXCEEDED="ERR_FORM_DATA_DEPTH_EXCEEDED";var qi=TA;function cR(t){return yt.isPlainObject(t)||yt.isArray(t)}function bb(t){return yt.endsWith(t,"[]")?t.slice(0,-2):t}function Ob(t,s,c){return t?t.concat(s).map(function(u,h){return u=bb(u),!c&&h?"["+u+"]":u}).join(c?".":""):s}const NJ=yt.toFlatObject(yt,{},null,function(t){return/^is[A-Z]/.test(t)});function gf(t,s,c){if(!yt.isObject(t))throw new TypeError("target must be an object");s=s||new FormData;const u=(c=yt.toFlatObject(c,{metaTokens:!0,dots:!1,indexes:!1},!1,function($,Z){return!yt.isUndefined(Z[$])})).metaTokens,h=c.visitor||P,_=c.dots,B=c.indexes,Q=c.Blob||typeof Blob<"u"&&Blob,T=c.maxDepth===void 0?100:c.maxDepth,D=Q&&yt.isSpecCompliantForm(s);if(!yt.isFunction(h))throw new TypeError("visitor must be a function");function O($){if($===null)return"";if(yt.isDate($))return $.toISOString();if(yt.isBoolean($))return $.toString();if(!D&&yt.isBlob($))throw new qi("Blob is not supported. Use a Buffer instead.");return yt.isArrayBuffer($)||yt.isTypedArray($)?D&&typeof Blob=="function"?new Blob([$]):Buffer.from($):$}function P($,Z,te){let se=$;if(yt.isReactNative(s)&&yt.isReactNativeBlob($))return s.append(Ob(te,Z,_),O($)),!1;if($&&!te&&typeof $=="object"){if(yt.endsWith(Z,"{}"))Z=u?Z:Z.slice(0,-2),$=JSON.stringify($);else if(yt.isArray($)&&function(ge){return yt.isArray(ge)&&!ge.some(cR)}($)||(yt.isFileList($)||yt.endsWith(Z,"[]"))&&(se=yt.toArray($)))return Z=bb(Z),se.forEach(function(ge,me){!yt.isUndefined(ge)&&ge!==null&&s.append(B===!0?Ob([Z],me,_):B===null?Z:Z+"[]",O(ge))}),!1}return!!cR($)||(s.append(Ob(te,Z,_),O($)),!1)}const U=[],H=Object.assign(NJ,{defaultVisitor:P,convertValue:O,isVisitable:cR});if(!yt.isObject(t))throw new TypeError("data must be an object");return function $(Z,te){let se=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(!yt.isUndefined(Z)){if(se>T)throw new qi("Object is too deeply nested ("+se+" levels). Max depth: "+T,qi.ERR_FORM_DATA_DEPTH_EXCEEDED);if(U.indexOf(Z)!==-1)throw Error("Circular reference detected in "+te.join("."));U.push(Z),yt.forEach(Z,function(ge,me){(!(yt.isUndefined(ge)||ge===null)&&h.call(s,ge,yt.isString(me)?Ga(me).call(me):me,te,H))===!0&&$(ge,te?te.concat(me):[me],se+1)}),U.pop()}}(t),s}function Lb(t){const s={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"};return encodeURIComponent(t).replace(/[!'()~]|%20/g,function(c){return s[c]})}function Ef(t,s){this._pairs=[],t&&gf(t,this,s)}const Mb=Ef.prototype;function $0(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function kb(t,s,c){if(!s)return t;const u=c&&c.encode||$0,h=yt.isFunction(c)?{serialize:c}:c,_=h&&h.serialize;let B;if(B=_?_(s,h):yt.isURLSearchParams(s)?s.toString():new Ef(s,h).toString(u),B){const Q=t.indexOf("#");Q!==-1&&(t=t.slice(0,Q)),t+=(t.indexOf("?")===-1?"?":"&")+B}return t}Mb.append=function(t,s){this._pairs.push([t,s])},Mb.toString=function(t){const s=t?function(c){return t.call(this,c,Lb)}:Lb;return this._pairs.map(function(c){return s(c[0])+"="+s(c[1])},"").join("&")};var NP=class{constructor(){this.handlers=[]}use(t,s,c){return this.handlers.push({fulfilled:t,rejected:s,synchronous:!!c&&c.synchronous,runWhen:c?c.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){yt.forEach(this.handlers,function(s){s!==null&&t(s)})}},Pb={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0},lR={exports:{}},OP=In,OJ=Yt,dR=Gs.f;OP({target:"Object",stat:!0,forced:Object.defineProperty!==dR,sham:!OJ},{defineProperty:dR});var wA=Zn.Object,hf=lR.exports=function(t,s,c){return wA.defineProperty(t,s,c)};wA.defineProperty.sham&&(hf.sham=!0);var ri=f(lR.exports),Z0=f(dC.f("iterator"));function $E(t){return $E=typeof WE=="function"&&typeof Z0=="symbol"?function(s){return typeof s}:function(s){return s&&typeof WE=="function"&&s.constructor===WE&&s!==WE.prototype?"symbol":typeof s},$E(t)}var Ub=f(dC.f("toPrimitive"));function uR(t){var s=function(c,u){if($E(c)!=="object"||c===null)return c;var h=c[Ub];if(h!==void 0){var _=h.call(c,u);if($E(_)!=="object")return _;throw new TypeError("@@toPrimitive must return a primitive value.")}return(u==="string"?String:Number)(c)}(t,"string");return $E(s)==="symbol"?s:String(s)}function ae(t,s,c){return(s=uR(s))in t?ri(t,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):t[s]=c,t}var LP=f(JH),LJ={isBrowser:!0,classes:{URLSearchParams:LP!==void 0?LP:Ef,FormData:typeof FormData<"u"?FormData:null,Blob:typeof Blob<"u"?Blob:null},protocols:["http","https","file","blob","url","data"]};const gR=typeof window<"u"&&typeof document<"u",ER=typeof navigator=="object"&&navigator||void 0,MP=gR&&(!ER||["ReactNative","NativeScript","NS"].indexOf(ER.product)<0),hR=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",MJ=gR&&window.location.href||"http://localhost";function xb(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Fb(t){for(var s=1;s=c.length;return B=!B&&yt.isArray(h)?h.length:B,T?(yt.hasOwnProp(h,B)?h[B]=yt.isArray(h[B])?h[B].concat(u):[h[B],u]:h[B]=u,!Q):(yt.hasOwnProp(h,B)&&yt.isObject(h[B])||(h[B]=[]),s(c,u,h[B],_)&&yt.isArray(h[B])&&(h[B]=function(D){const O={},P=Object.keys(D);let U;const H=P.length;let $;for(U=0;U{s(function(_){return YP(yt).call(yt,/\w+|\[(\w*)]/g,_).map(B=>B[0]==="[]"?"":B[1]||B[0])}(u),h,c,0)}),c}return null}const ol=(t,s)=>t!=null&&yt.hasOwnProp(t,s)?t[s]:void 0,mf={transitional:Pb,adapter:["xhr","http","fetch"],transformRequest:[function(t,s){const c=s.getContentType()||"",u=c.indexOf("application/json")>-1,h=yt.isObject(t);if(h&&yt.isHTMLForm(t)&&(t=new FormData(t)),yt.isFormData(t))return u?JSON.stringify(_R(t)):t;if(yt.isArrayBuffer(t)||yt.isBuffer(t)||yt.isStream(t)||yt.isFile(t)||yt.isBlob(t)||yt.isReadableStream(t))return t;if(yt.isArrayBufferView(t))return t.buffer;if(yt.isURLSearchParams(t))return s.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let _;if(h){const B=ol(this,"formSerializer");if(c.indexOf("application/x-www-form-urlencoded")>-1)return kJ(t,B).toString();if((_=yt.isFileList(t))||c.indexOf("multipart/form-data")>-1){const Q=ol(this,"env"),T=Q&&Q.FormData;return gf(_?{"files[]":t}:t,T&&new T,B)}}return h||u?(s.setContentType("application/json",!1),function(B,Q,T){if(yt.isString(B))try{return(Q||JSON.parse)(B),Ga(yt).call(yt,B)}catch(D){if(D.name!=="SyntaxError")throw D}return(T||JSON.stringify)(B)}(t)):t}],transformResponse:[function(t){const s=ol(this,"transitional")||mf.transitional,c=s&&s.forcedJSONParsing,u=ol(this,"responseType"),h=u==="json";if(yt.isResponse(t)||yt.isReadableStream(t))return t;if(t&&yt.isString(t)&&(c&&!u||h)){const _=!(s&&s.silentJSONParsing)&&h;try{return JSON.parse(t,ol(this,"parseReviver"))}catch(B){if(_)throw B.name==="SyntaxError"?qi.from(B,qi.ERR_BAD_RESPONSE,this,null,ol(this,"response")):B}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:jA.classes.FormData,Blob:jA.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};yt.forEach(["delete","get","head","post","put","patch","query"],t=>{mf.headers[t]={}});var mR=mf;function BR(t,s){const c=this||mR,u=s||c,h=yc.from(u.headers);let _=u.data;return yt.forEach(t,function(B){_=B.call(c,_,h.normalize(),s?s.status:void 0)}),h.normalize(),_}function jb(t){return!(!t||!t.__CANCEL__)}var r2=class extends qi{constructor(t,s,c){super(t??"canceled",qi.ERR_CANCELED,s,c),this.name="CanceledError",this.__CANCEL__=!0}};function ZE(t,s,c){const u=c.config.validateStatus;c.status&&u&&!u(c.status)?s(new qi("Request failed with status code "+c.status,c.status>=400&&c.status<500?qi.ERR_BAD_REQUEST:qi.ERR_BAD_RESPONSE,c.config,c.request,c)):t(c)}const Bf=function(t,s){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:3,u=0;const h=function(_,B){_=_||10;const Q=new Array(_),T=new Array(_);let D,O=0,P=0;return B=B!==void 0?B:1e3,function(U){const H=Date.now(),$=T[P];D||(D=H),Q[O]=U,T[O]=H;let Z=P,te=0;for(;Z!==O;)te+=Q[Z++],Z%=_;if(O=(O+1)%_,O===P&&(P=(P+1)%_),H-D1&&arguments[1]!==void 0?arguments[1]:Date.now(),Q=null,T&&(clearTimeout(T),T=null),_(...U)};return[function(){const U=Date.now(),H=U-D;for(var $=arguments.length,Z=new Array($),te=0;te<$;te++)Z[te]=arguments[te];H>=O?P(Z,U):(Q=Z,T||(T=setTimeout(()=>{T=null,P(Q)},O-H)))},()=>Q&&P(Q)]}(_=>{if(!_||typeof _.loaded!="number")return;const B=_.loaded,Q=_.lengthComputable?_.total:void 0,T=Q!=null?Math.min(B,Q):B,D=Math.max(0,T-u),O=h(D);u=Math.max(u,T),t({loaded:T,total:Q,progress:Q?T/Q:void 0,bytes:D,rate:O||void 0,estimated:O&&Q?(Q-T)/O:void 0,event:_,lengthComputable:Q!=null,[s?"download":"upload"]:!0})},c)},i2=(t,s)=>{const c=t!=null;return[u=>s[0]({lengthComputable:c,total:t,loaded:u}),s[1]]},SR=t=>function(){for(var s=arguments.length,c=new Array(s),u=0;ut(...c))};var jP=jA.hasStandardBrowserEnv?((t,s)=>c=>(c=new b3(c,jA.origin),t.protocol===c.protocol&&t.host===c.host&&(s||t.port===c.port)))(new b3(jA.origin),jA.navigator&&/(msie|trident)/i.test(jA.navigator.userAgent)):()=>!0,Hl=jA.hasStandardBrowserEnv?{write(t,s,c,u,h,_,B){if(typeof document>"u")return;const Q=["".concat(t,"=").concat(encodeURIComponent(s))];yt.isNumber(c)&&Q.push("expires=".concat(new Date(c).toUTCString())),yt.isString(u)&&Q.push("path=".concat(u)),yt.isString(h)&&Q.push("domain=".concat(h)),_===!0&&Q.push("secure"),yt.isString(B)&&Q.push("SameSite=".concat(B)),document.cookie=Q.join("; ")},read(t){if(typeof document>"u")return null;const s=document.cookie.split(";");for(let c=0;cnull,remove(){}};function Jb(t,s,c){let u=!function(h){return typeof h=="string"&&/^([a-z][a-z\d+\-.]*:)?\/\//i.test(h)}(s);return t&&(u||c===!1)?function(h,_){return _?h.replace(/\/?\/$/,"")+"/"+_.replace(/^\/+/,""):h}(t,s):s}function qb(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function RR(t){for(var s=1;st instanceof yc?RR({},t):t;function Ld(t,s){s=s||{};const c=Object.create(null);function u(D,O,P,U){return yt.isPlainObject(D)&&yt.isPlainObject(O)?yt.merge.call({caseless:U},D,O):yt.isPlainObject(O)?yt.merge({},O):yt.isArray(O)?O.slice():O}function h(D,O,P,U){return yt.isUndefined(O)?yt.isUndefined(D)?void 0:u(void 0,D,0,U):u(D,O,0,U)}function _(D,O){if(!yt.isUndefined(O))return u(void 0,O)}function B(D,O){return yt.isUndefined(O)?yt.isUndefined(D)?void 0:u(void 0,D):u(void 0,O)}function Q(D,O,P){return yt.hasOwnProp(s,P)?u(D,O):yt.hasOwnProp(t,P)?u(void 0,D):void 0}Object.defineProperty(c,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});const T={url:_,method:_,data:_,baseURL:B,transformRequest:B,transformResponse:B,paramsSerializer:B,timeout:B,timeoutMessage:B,withCredentials:B,withXSRFToken:B,adapter:B,responseType:B,xsrfCookieName:B,xsrfHeaderName:B,onUploadProgress:B,onDownloadProgress:B,decompress:B,maxContentLength:B,maxBodyLength:B,beforeRedirect:B,transport:B,httpAgent:B,httpsAgent:B,cancelToken:B,socketPath:B,allowedSocketPaths:B,responseEncoding:B,validateStatus:Q,headers:(D,O,P)=>h(Od(D),Od(O),0,!0)};return yt.forEach(Object.keys(RR(RR({},t),s)),function(D){if(D==="__proto__"||D==="constructor"||D==="prototype")return;const O=yt.hasOwnProp(T,D)?T[D]:h,P=O(yt.hasOwnProp(t,D)?t[D]:void 0,yt.hasOwnProp(s,D)?s[D]:void 0,D);yt.isUndefined(P)&&O!==Q||(c[D]=P)}),c}const bC=["content-type","content-length"];var Hr=t=>{const s=Ld({},t),c=H=>yt.hasOwnProp(s,H)?s[H]:void 0,u=c("data");let h=c("withXSRFToken");const _=c("xsrfHeaderName"),B=c("xsrfCookieName");let Q=c("headers");const T=c("auth"),D=c("baseURL"),O=c("allowAbsoluteUrls"),P=c("url");var U;if(s.headers=Q=yc.from(Q),s.url=kb(Jb(D,P,O),t.params,t.paramsSerializer),T&&Q.set("Authorization","Basic "+btoa((T.username||"")+":"+(T.password?(U=T.password,encodeURIComponent(U).replace(/%([0-9A-F]{2})/gi,(H,$)=>String.fromCharCode(parseInt($,16)))):""))),yt.isFormData(u)&&(jA.hasStandardBrowserEnv||jA.hasStandardBrowserWebWorkerEnv?Q.setContentType(void 0):yt.isFunction(u.getHeaders)&&function(H,$,Z){Z==="content-only"?Object.entries($).forEach(te=>{let se=ir(te,2),ge=se[0],me=se[1];Et(bC).call(bC,ge.toLowerCase())&&H.set(ge,me)}):H.set($)}(Q,u.getHeaders(),c("formDataHeaderPolicy"))),jA.hasStandardBrowserEnv&&(yt.isFunction(h)&&(h=h(s)),h===!0||h==null&&jP(s.url))){const H=_&&B&&Hl.read(B);H&&Q.set(_,H)}return s},JP=typeof XMLHttpRequest<"u"&&function(t){return new Ut(function(s,c){var u;const h=Hr(t);let _=h.data;const B=yc.from(h.headers).normalize();let Q,T,D,O,P,U=h.responseType,H=h.onUploadProgress,$=h.onDownloadProgress;function Z(){O&&O(),P&&P(),h.cancelToken&&h.cancelToken.unsubscribe(Q),h.signal&&h.signal.removeEventListener("abort",Q)}let te=new XMLHttpRequest;function se(){if(!te)return;const Oe=yc.from("getAllResponseHeaders"in te&&te.getAllResponseHeaders());ZE(function(we){s(we),Z()},function(we){c(we),Z()},{data:U&&U!=="text"&&U!=="json"?te.response:te.responseText,status:te.status,statusText:te.statusText,headers:Oe,config:t,request:te}),te=null}if(te.open(h.method.toUpperCase(),h.url,!0),te.timeout=h.timeout,"onloadend"in te?te.onloadend=se:te.onreadystatechange=function(){te&&te.readyState===4&&(te.status!==0||te.responseURL&&te.responseURL.startsWith("file:"))&&setTimeout(se)},te.onabort=function(){te&&(c(new qi("Request aborted",qi.ECONNABORTED,t,te)),Z(),te=null)},te.onerror=function(Oe){const we=Oe&&Oe.message?Oe.message:"Network Error",Ne=new qi(we,qi.ERR_NETWORK,t,te);Ne.event=Oe||null,c(Ne),Z(),te=null},te.ontimeout=function(){let Oe=h.timeout?"timeout of "+h.timeout+"ms exceeded":"timeout exceeded";const we=h.transitional||Pb;h.timeoutErrorMessage&&(Oe=h.timeoutErrorMessage),c(new qi(Oe,we.clarifyTimeoutError?qi.ETIMEDOUT:qi.ECONNABORTED,t,te)),Z(),te=null},_===void 0&&B.setContentType(null),"setRequestHeader"in te&&yt.forEach(Db(B),function(Oe,we){te.setRequestHeader(we,Oe)}),yt.isUndefined(h.withCredentials)||(te.withCredentials=!!h.withCredentials),U&&U!=="json"&&(te.responseType=h.responseType),$){var ge=ir(Bf($,!0),2);D=ge[0],P=ge[1],te.addEventListener("progress",D)}if(H&&te.upload){var me=ir(Bf(H),2);T=me[0],O=me[1],te.upload.addEventListener("progress",T),te.upload.addEventListener("loadend",O)}(h.cancelToken||h.signal)&&(Q=Oe=>{te&&(c(!Oe||Oe.type?new r2(null,t,te):Oe),te.abort(),Z(),te=null)},h.cancelToken&&h.cancelToken.subscribe(Q),h.signal&&(h.signal.aborted?Q():h.signal.addEventListener("abort",Q)));const Qe=function(Oe){const we=/^([-+\w]{1,25}):(?:\/\/)?/.exec(Oe);return we&&we[1]||""}(h.url);!Qe||Et(u=jA.protocols).call(u,Qe)?te.send(_||null):c(new qi("Unsupported protocol "+Qe+":",qi.ERR_BAD_REQUEST,t))})},Ot=(t,s)=>{if(t=t?t.filter(Boolean):[],!s&&!t.length)return;const c=new AbortController;let u=!1;const h=function(T){if(!u){u=!0,B();const D=T instanceof Error?T:this.reason;c.abort(D instanceof qi?D:new r2(D instanceof Error?D.message:D))}};let _=s&&setTimeout(()=>{_=null,h(new qi("timeout of ".concat(s,"ms exceeded"),qi.ETIMEDOUT))},s);const B=()=>{t&&(_&&clearTimeout(_),_=null,t.forEach(T=>{T.unsubscribe?T.unsubscribe(h):T.removeEventListener("abort",h)}),t=null)};t.forEach(T=>T.addEventListener("abort",h));const Q=c.signal;return Q.unsubscribe=()=>yt.asap(B),Q},fe=f(e6),nt=dC.f("asyncIterator"),Yl=f(nt);function zo(t,s){this.v=t,this.k=s}function Rn(t){var s,c;function u(_,B){try{var Q=t[_](B),T=Q.value,D=T instanceof zo;fe.resolve(D?T.v:T).then(function(O){if(D){var P=_==="return"?"return":"next";if(!T.k||O.done)return u(P,O);O=t[P](O).value}h(Q.done?"return":"normal",O)},function(O){u("throw",O)})}catch(O){h("throw",O)}}function h(_,B){switch(_){case"return":s.resolve({value:B,done:!0});break;case"throw":s.reject(B);break;default:s.resolve({value:B,done:!1})}(s=s.next)?u(s.key,s.arg):c=null}this._invoke=function(_,B){return new fe(function(Q,T){var D={key:_,arg:B,resolve:Q,reject:T,next:null};c?c=c.next=D:(s=c=D,u(_,B))})},typeof t.return!="function"&&(this.return=void 0)}function AA(t){return function(){return new Rn(t.apply(this,arguments))}}function Tr(t){return new zo(t,0)}function Qc(t){var s={},c=!1;function u(h,_){return c=!0,{done:!1,value:new zo(_=new fe(function(B){B(t[h](_))}),1)}}return s[WE!==void 0&&Z0||"@@iterator"]=function(){return this},s.next=function(h){return c?(c=!1,h):u("next",h)},typeof t.throw=="function"&&(s.throw=function(h){if(c)throw c=!1,h;return u("throw",h)}),typeof t.return=="function"&&(s.return=function(h){return c?(c=!1,h):u("return",h)}),s}Rn.prototype[typeof WE=="function"&&Yl||"@@asyncIterator"]=function(){return this},Rn.prototype.next=function(t){return this._invoke("next",t)},Rn.prototype.throw=function(t){return this._invoke("throw",t)},Rn.prototype.return=function(t){return this._invoke("return",t)};var mo=f(nt);function yR(t){var s,c,u,h=2;for(typeof Symbol<"u"&&(c=mo,u=Symbol.iterator);h--;){if(c&&(s=t[c])!=null)return s.call(t);if(u&&(s=t[u])!=null)return new Sf(s.call(t));c="@@asyncIterator",u="@@iterator"}throw new TypeError("Object is not async iterable")}function Sf(t){function s(c){if(Object(c)!==c)return Ut.reject(new TypeError(c+" is not an object."));var u=c.done;return Ut.resolve(c.value).then(function(h){return{value:h,done:u}})}return Sf=function(c){this.s=c,this.n=c.next},Sf.prototype={s:null,n:null,next:function(){return s(this.n.apply(this.s,arguments))},return:function(c){var u=this.s.return;return u===void 0?Ut.resolve({value:c,done:!0}):s(u.apply(this.s,arguments))},throw:function(c){var u=this.s.return;return u===void 0?Ut.reject(c):s(u.apply(this.s,arguments))}},new Sf(t)}const qP=function*(t,s){let c=t.byteLength;if(!s||c{const h=Rf(t,s);let _,B=0,Q=T=>{_||(_=!0,u&&u(T))};return new ReadableStream({async pull(T){try{const D=await h.next(),O=D.done,P=D.value;if(O)return Q(),void T.close();let U=P.byteLength;if(c){let H=B+=U;c(H)}T.enqueue(new Uint8Array(P))}catch(D){throw Q(D),D}},cancel:T=>(Q(T),h.return())},{highWaterMark:2})},yf="1.16.1";function zb(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function QR(t){for(var s=1;s1?s-1:0),u=1;u{const s=yt.global!==void 0&&yt.global!==null?yt.global:yu,c=s.ReadableStream,u=s.TextEncoder,h=t=yt.merge.call({skipUndefined:!0},{Request:s.Request,Response:s.Response},t),_=h.fetch,B=h.Request,Q=h.Response,T=_?io(_):typeof fetch=="function",D=io(B),O=io(Q);if(!T)return!1;const P=T&&io(c),U=T&&(typeof u=="function"?(H=new u,ge=>H.encode(ge)):async ge=>new Uint8Array(await new B(ge).arrayBuffer()));var H;const $=D&&P&&NC(()=>{let ge=!1;const me=new B(jA.origin,{body:new c,method:"POST",get duplex(){return ge=!0,"half"}}),Qe=me.headers.has("Content-Type");return me.body!=null&&me.body.cancel(),ge&&!Qe}),Z=O&&P&&NC(()=>yt.isReadableStream(new Q("").body)),te={stream:Z&&(ge=>ge.body)};T&&["text","arrayBuffer","blob","formData","stream"].forEach(ge=>{!te[ge]&&(te[ge]=(me,Qe)=>{let Oe=me&&me[ge];if(Oe)return Oe.call(me);throw new qi("Response type '".concat(ge,"' is not supported"),qi.ERR_NOT_SUPPORT,Qe)})});const se=async(ge,me)=>{const Qe=yt.toFiniteNumber(ge.getContentLength());return Qe??(async Oe=>Oe==null?0:yt.isBlob(Oe)?Oe.size:yt.isSpecCompliantForm(Oe)?(await new B(jA.origin,{method:"POST",body:Oe}).arrayBuffer()).byteLength:yt.isArrayBufferView(Oe)||yt.isArrayBuffer(Oe)?Oe.byteLength:(yt.isURLSearchParams(Oe)&&(Oe+=""),yt.isString(Oe)?(await U(Oe)).byteLength:void 0))(me)};return async ge=>{let me=Hr(ge),Qe=me.url,Oe=me.method,we=me.data,Ne=me.signal,et=me.cancelToken,st=me.timeout,Xt=me.onDownloadProgress,lr=me.onUploadProgress,ft=me.responseType,Ir=me.headers,ui=me.withCredentials,Nr=ui===void 0?"same-origin":ui,Ki=me.fetchOptions,it=me.maxContentLength,mt=me.maxBodyLength;const Gt=yt.isNumber(it)&&it>-1,at=yt.isNumber(mt)&&mt>-1;let ie=_||fetch;ft=ft?(ft+"").toLowerCase():"text";let Te=Ot([Ne,et&&et.toAbortSignal()],st),ke=null;const _t=Te&&Te.unsubscribe&&(()=>{Te.unsubscribe()});let Ar;try{if(Gt&&typeof Qe=="string"&&Qe.startsWith("data:")&&function(c1){if(!c1||typeof c1!="string"||!c1.startsWith("data:"))return 0;const Id=c1.indexOf(",");if(Id<0)return 0;const UA=c1.slice(5,Id),xs=c1.slice(Id+1);if(/;base64/i.test(UA)){let ho=xs.length;const To=xs.length;for(let Ri=0;Ri=48&&Xa<=57||Xa>=65&&Xa<=70||Xa>=97&&Xa<=102)&&(Ol>=48&&Ol<=57||Ol>=65&&Ol<=70||Ol>=97&&Ol<=102)&&(ho-=2,Ri+=2)}let On=0,la=To-1;const lu=Ri=>Ri>=2&&xs.charCodeAt(Ri-2)===37&&xs.charCodeAt(Ri-1)===51&&(xs.charCodeAt(Ri)===68||xs.charCodeAt(Ri)===100);la>=0&&(xs.charCodeAt(la)===61?(On++,la--):lu(la)&&(On++,la-=3)),On===1&&la>=0&&(xs.charCodeAt(la)===61||lu(la))&&On++;const es=3*Math.floor(ho/4)-(On||0);return es>0?es:0}if(typeof Buffer<"u"&&typeof Buffer.byteLength=="function")return Buffer.byteLength(xs,"utf8");let Ec=0;for(let ho=0,To=xs.length;ho=55296&&On<=56319&&ho+1=56320&&la<=57343?(Ec+=4,ho++):Ec+=3}else Ec+=3}return Ec}(Qe)>it)throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke);if(at&&Oe!=="get"&&Oe!=="head"){const _s=await se(Ir,we);if(typeof _s=="number"&&isFinite(_s)&&_s>mt)throw new qi("Request body larger than maxBodyLength limit",qi.ERR_BAD_REQUEST,ge,ke)}if(lr&&$&&Oe!=="get"&&Oe!=="head"&&(Ar=await se(Ir,we))!==0){let _s,c1=new B(Qe,{method:"POST",body:we,duplex:"half"});if(yt.isFormData(we)&&(_s=c1.headers.get("content-type"))&&Ir.setContentType(_s),c1.body){const Id=ir(i2(Ar,Bf(SR(lr))),2),UA=Id[0],xs=Id[1];we=Xb(c1.body,65536,UA,xs)}}yt.isString(Nr)||(Nr=Nr?"include":"omit");const ni=D&&"credentials"in B.prototype;if(yt.isFormData(we)){const _s=Ir.getContentType();_s&&/^multipart\/form-data/i.test(_s)&&!/boundary=/i.test(_s)&&Ir.delete("content-type")}Ir.set("User-Agent","axios/"+yf,!1);const Ds=QR(QR({},Ki),{},{signal:Te,method:Oe.toUpperCase(),headers:Db(Ir.normalize()),body:we,duplex:"half",credentials:ni?Nr:void 0});ke=D&&new B(Qe,Ds);let Wo=await(D?ie(ke,Ki):ie(Qe,Ds));if(Gt){const _s=yt.toFiniteNumber(Wo.headers.get("content-length"));if(_s!=null&&_s>it)throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke)}const Nl=Z&&(ft==="stream"||ft==="response");if(Z&&Wo.body&&(Xt||Gt||Nl&&_t)){const _s={};["status","statusText","headers"].forEach(To=>{_s[To]=Wo[To]});const c1=yt.toFiniteNumber(Wo.headers.get("content-length")),Id=ir(Xt&&i2(c1,Bf(SR(Xt),!0))||[],2),UA=Id[0],xs=Id[1];let Ec=0;const ho=To=>{if(Gt&&(Ec=To,Ec>it))throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke);UA&&UA(To)};Wo=new Q(Xb(Wo.body,65536,ho,()=>{xs&&xs(),_t&&_t()}),_s)}ft=ft||"text";let a1=await te[yt.findKey(te,ft)||"text"](Wo,ge);if(Gt&&!Z&&!Nl){let _s;if(a1!=null&&(typeof a1.byteLength=="number"?_s=a1.byteLength:typeof a1.size=="number"?_s=a1.size:typeof a1=="string"&&(_s=typeof u=="function"?new u().encode(a1).byteLength:a1.length)),typeof _s=="number"&&_s>it)throw new qi("maxContentLength size of "+it+" exceeded",qi.ERR_BAD_RESPONSE,ge,ke)}return!Nl&&_t&&_t(),await new Ut((_s,c1)=>{ZE(_s,c1,{data:a1,headers:yc.from(Wo.headers),status:Wo.status,statusText:Wo.statusText,config:ge,request:ke})})}catch(ni){if(_t&&_t(),Te&&Te.aborted&&Te.reason instanceof qi){const Ds=Te.reason;throw Ds.config=ge,ke&&(Ds.request=ke),ni!==Ds&&(Ds.cause=ni),Ds}throw ni&&ni.name==="TypeError"&&/Load failed|fetch/i.test(ni.message)?Object.assign(new qi("Network Error",qi.ERR_NETWORK,ge,ke,ni&&ni.response),{cause:ni.cause||ni}):qi.from(ni,ni&&ni.code,ge,ke,ni&&ni.response)}}},Co=new Map,Gn=t=>{let s=t&&t.env||{};const c=s.fetch,u=[s.Request,s.Response,c];let h,_,B=u.length,Q=Co;for(;B--;)h=u[B],_=Q.get(h),_===void 0&&Q.set(h,_=B?new Map:WP(s)),Q=_;return _};Gn();const TR={http:null,xhr:JP,fetch:{get:Gn}};yt.forEach(TR,(t,s)=>{if(t){try{Object.defineProperty(t,"name",{__proto__:null,value:s})}catch{}Object.defineProperty(t,"adapterName",{__proto__:null,value:s})}});const XP=t=>"- ".concat(t),bi=t=>yt.isFunction(t)||t===null||t===!1;var eh={getAdapter:function(t,s){const c=(t=yt.isArray(t)?t:[t]).length;let u,h;const _={};for(let B=0;B{let D=ir(T,2),O=D[0],P=D[1];return"adapter ".concat(O," ")+(P===!1?"is not supported by the environment":"is not available in the build")});let Q=c?B.length>1?`since : -`+B.map(XP).join(` -`):" "+XP(B[0]):"as no adapter specified";throw new qi("There is no suitable adapter to dispatch the request "+Q,"ERR_NOT_SUPPORT")}return h},adapters:TR};function wR(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new r2(null,t)}function n2(t){return wR(t),t.headers=yc.from(t.headers),t.data=BR.call(t,t.transformRequest),["post","put","patch"].indexOf(t.method)!==-1&&t.headers.setContentType("application/x-www-form-urlencoded",!1),eh.getAdapter(t.adapter||mR.adapter,t)(t).then(function(s){wR(t),t.response=s;try{s.data=BR.call(t,t.transformResponse,s)}finally{delete t.response}return s.headers=yc.from(s.headers),s},function(s){if(!jb(s)&&(wR(t),s&&s.response)){t.response=s.response;try{s.response.data=BR.call(t,t.transformResponse,s.response)}finally{delete t.response}s.response.headers=yc.from(s.response.headers)}return Ut.reject(s)})}const OC={};["object","boolean","number","function","string","symbol"].forEach((t,s)=>{OC[t]=function(c){return typeof c===t||"a"+(s<1?"n ":" ")+t}});const si={};OC.transitional=function(t,s,c){function u(h,_){return"[Axios v"+yf+"] Transitional option '"+h+"'"+_+(c?". "+c:"")}return(h,_,B)=>{if(t===!1)throw new qi(u(_," has been removed"+(s?" in "+s:"")),qi.ERR_DEPRECATED);return s&&!si[_]&&(si[_]=!0,console.warn(u(_," has been deprecated since v"+s+" and will be removed in the near future"))),!t||t(h,_,B)}},OC.spelling=function(t){return(s,c)=>(console.warn("".concat(c," is likely a misspelling of ").concat(t)),!0)};var LC={assertOptions:function(t,s,c){if(typeof t!="object")throw new qi("options must be an object",qi.ERR_BAD_OPTION_VALUE);const u=Object.keys(t);let h=u.length;for(;h-- >0;){const _=u[h],B=Object.prototype.hasOwnProperty.call(s,_)?s[_]:void 0;if(B){const Q=t[_],T=Q===void 0||B(Q,_,t);if(T!==!0)throw new qi("option "+_+" must be "+T,qi.ERR_BAD_OPTION_VALUE)}else if(c!==!0)throw new qi("Unknown option "+_,qi.ERR_BAD_OPTION)}},validators:OC};const xo=LC.validators;let Va=class{constructor(t){this.defaults=t||{},this.interceptors={request:new NP,response:new NP}}async request(t,s){try{return await this._request(t,s)}catch(c){if(c instanceof Error){let u={};Error.captureStackTrace?Error.captureStackTrace(u):u=new Error;const h=(()=>{if(!u.stack)return"";const _=u.stack.indexOf(` -`);return _===-1?"":u.stack.slice(_+1)})();try{if(c.stack){if(h){const _=h.indexOf(` -`),B=_===-1?-1:h.indexOf(` -`,_+1),Q=B===-1?"":h.slice(B+1);String(c.stack).endsWith(Q)||(c.stack+=` -`+h)}}else c.stack=h}catch{}}throw c}}_request(t,s){typeof t=="string"?(s=s||{}).url=t:s=t||{};const c=s=Ld(this.defaults,s),u=c.transitional,h=c.paramsSerializer,_=c.headers;u!==void 0&&LC.assertOptions(u,{silentJSONParsing:xo.transitional(xo.boolean),forcedJSONParsing:xo.transitional(xo.boolean),clarifyTimeoutError:xo.transitional(xo.boolean),legacyInterceptorReqResOrdering:xo.transitional(xo.boolean)},!1),h!=null&&(yt.isFunction(h)?s.paramsSerializer={serialize:h}:LC.assertOptions(h,{encode:xo.function,serialize:xo.function},!0)),s.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?s.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:s.allowAbsoluteUrls=!0),LC.assertOptions(s,{baseUrl:xo.spelling("baseURL"),withXsrfToken:xo.spelling("withXSRFToken")},!0),s.method=(s.method||this.defaults.method||"get").toLowerCase();let B=_&&yt.merge(_.common,_[s.method]);_&&yt.forEach(["delete","get","head","post","put","patch","query","common"],$=>{delete _[$]}),s.headers=yc.concat(B,_);const Q=[];let T=!0;this.interceptors.request.forEach(function($){if(typeof $.runWhen=="function"&&$.runWhen(s)===!1)return;T=T&&$.synchronous;const Z=s.transitional||Pb;Z&&Z.legacyInterceptorReqResOrdering?Q.unshift($.fulfilled,$.rejected):Q.push($.fulfilled,$.rejected)});const D=[];let O;this.interceptors.response.forEach(function($){D.push($.fulfilled,$.rejected)});let P,U=0;if(!T){const $=[n2.bind(this),void 0];for($.unshift(...Q),$.push(...D),P=$.length,O=Ut.resolve(s);U{if(!u._listeners)return;let _=u._listeners.length;for(;_-- >0;)u._listeners[_](h);u._listeners=null}),this.promise.then=h=>{let _;const B=new Ut(Q=>{u.subscribe(Q),_=Q}).then(h);return B.cancel=function(){u.unsubscribe(_)},B},s(function(h,_,B){u.reason||(u.reason=new r2(h,_,B),c(u.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(s){this.reason?s(this.reason):this._listeners?this._listeners.push(s):this._listeners=[s]}unsubscribe(s){if(!this._listeners)return;const c=this._listeners.indexOf(s);c!==-1&&this._listeners.splice(c,1)}toAbortSignal(){const s=new AbortController,c=u=>{s.abort(u)};return this.subscribe(c),s.signal.unsubscribe=()=>this.unsubscribe(c),s.signal}static source(){let s;return{token:new rs(function(u){s=u}),cancel:s}}}var Wn=rs;const JA={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(JA).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];JA[u]=c});var o2=JA;const Xi=function t(s){const c=new Tu(s),u=fP(Tu.prototype.request,c);return yt.extend(u,Tu.prototype,c,{allOwnKeys:!0}),yt.extend(u,c,null,{allOwnKeys:!0}),u.create=function(h){return t(Ld(s,h))},u}(mR);Xi.Axios=Tu,Xi.CanceledError=r2,Xi.CancelToken=Wn,Xi.isCancel=jb,Xi.VERSION=yf,Xi.toFormData=gf,Xi.AxiosError=qi,Xi.Cancel=Xi.CanceledError,Xi.all=function(t){return Ut.all(t)},Xi.spread=function(t){return function(s){return t.apply(null,s)}},Xi.isAxiosError=function(t){return yt.isObject(t)&&t.isAxiosError===!0},Xi.mergeConfig=Ld,Xi.AxiosHeaders=yc,Xi.formToJSON=t=>_R(yt.isHTMLForm(t)?new FormData(t):t),Xi.getAdapter=eh.getAdapter,Xi.HttpStatusCode=o2,Xi.default=Xi;var on=Xi;on.Axios,on.AxiosError,on.CanceledError,on.isCancel,on.CancelToken,on.VERSION,on.all,on.Cancel,on.isAxiosError,on.spread,on.toFormData,on.AxiosHeaders,on.HttpStatusCode,on.formToJSON,on.getAdapter,on.mergeConfig,on.create;const zP=()=>{};function s2(){const t={promise:void 0,isResolved:!1,isRejected:!1,isFinished:!1,resolve:void 0,reject:void 0,cancel:zP};return t.promise=new Ut((s,c)=>{t.resolve=u=>{t.isFinished||(t.isResolved=!0,t.isFinished=!0,s(u),t.value=u)},t.reject=u=>{t.isFinished||(t.isRejected=!0,t.isFinished=!0,c(u))}}),t}const vR=new Map,DR=new Map,sl=new Map;let ns=function(t){return t.WIN_10="Windows 10",t.WIN_81="Windows 8.1",t.WIN_8="Windows 8",t.WIN_7="Windows 7",t.WIN_VISTA="Windows Vista",t.WIN_SERVER_2003="Windows Server 2003",t.WIN_XP="Windows XP",t.WIN_2000="Windows 2000",t.ANDROID="Android",t.HARMONY_OS="HarmonyOS",t.OPEN_BSD="Open BSD",t.SUN_OS="Sun OS",t.LINUX="Linux",t.IOS="iOS",t.MAC_OS="Mac OS",t.CHROMIUM_OS="Chromium OS",t.QNX="QNX",t.UNIX="UNIX",t.BEOS="BeOS",t.OS_2="OS/2",t.SEARCH_BOT="Search Bot",t}({}),Fi=function(t){return t.CHROME="Chrome",t.SAFARI="Safari",t.EDGE="Edge",t.FIREFOX="Firefox",t.OPERA="OPR",t.QQ="QQBrowser",t.WECHAT="MicroMessenger",t}({});const no=new IJ;let qA=no.getResult(),bR=null;function Qi(t){if(!bR){qA=no.getResult();const s=function(Q){if(Q.engine.name==="Blink"&&Q.browser.name!=="WeChat")return Fi.CHROME;switch(Q.browser.name){case"Chrome Headless":case"Chrome":case"Chromium":return Fi.CHROME;case"Safari":case"Mobile Safari":return Fi.SAFARI;case"Edge":return Fi.EDGE;case"Firefox":return Fi.FIREFOX;case"QQ":case"QQBrowser":return Fi.QQ;case"Opera":return Fi.OPERA;case"WeChat":return Fi.WECHAT;default:return Q.browser.name||""}}(qA),c=th(qA),u=function(Q){return Q.os.name==="Windows"?Q.os.version?Q.os.name+" "+Q.os.version:Q.os.name:Q.os.name||""}(qA),h=qA.os.version,_=th(qA,!1),B=qA.device.type;if(!(s&&c&&u&&h))return{name:s,version:c,os:u,osVersion:h,browserVersion:_,deviceType:B};bR={name:s,version:c,os:u,osVersion:h,browserVersion:_,deviceType:B}}return bR}function th(t){let s,c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return s=t.engine.name==="Blink"?t.engine.version||"":t.browser.version||"",c?s.split(".")[0]:s}function Md(){return Qi().os}function $b(){const t=Qi();return"".concat(t.os," ").concat(t.osVersion)}function Qf(){const t=Qi();return!!(qA.engine.name==="WebKit"&&t.os===ns.MAC_OS&&navigator.maxTouchPoints&&navigator.maxTouchPoints>0&&t.name!==Fi.SAFARI||Ia()&&t.name!==Fi.SAFARI)}function DA(){return Qi().name===Fi.CHROME}function Zs(){return Qi().name===Fi.SAFARI}function Zb(){const t=Qi();if(t.name!==Fi.SAFARI||!t.browserVersion)return!1;const s=t.browserVersion.split(".");return Number(s[0])>15||Number(s[0])===15&&Number(s[1])>=4}function Ks(){const t=Qi();if(t.name!==Fi.SAFARI||!t.browserVersion)return!1;const s=t.browserVersion.split(".");return Number(s[0])>18||Number(s[0])===18&&Number(s[1])>=4}function yn(){return Qi().name===Fi.EDGE}function Ln(){return Qi().name===Fi.FIREFOX}function Ia(){return Qi().os===ns.IOS}function al(t){const s=Qi();return!(s.name!==Fi.CHROME||!s.osVersion)&&Number(s.version)>=t}function e4(t){const s=Qi();return!(s.name!==Fi.CHROME||!s.osVersion)&&Number(s.version)=s&&Number(u.version)<=c:Number(u.version)===s)}function wu(t){const s=Qi();return!(s.name!==Fi.EDGE||!s.osVersion)&&Number(s.version)>=t}function wf(t){const s=Qi();return!(s.name!==Fi.FIREFOX||!s.osVersion)&&Number(s.version)>=t}function a2(t){const s=Qi();return!(s.name!==Fi.SAFARI||!s.osVersion)&&Number(s.version)>=t}function vf(t,s,c){const u=Qi();if(u.os!==ns.IOS||!u.osVersion)return!1;const h=u.osVersion.split(".");return c?s&&Number(h[0])===t&&Number(h[1])>s||Number(h[0])>t:s?Number(h[0])===t&&Number(h[1])>=s||Number(h[0])>t:Number(h[0])>=t}function NR(t,s,c){const u=Qi();if(u.os!==ns.IOS||!u.osVersion)return!1;const h=u.osVersion.split(".");return c?s&&Number(h[0])===t&&Number(h[1])=t}function t4(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])<14||Number(s[0])===14&&Number(s[1])<=6}function Is(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])===15}function rh(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])===16}function os(){const t=Qi();if(t.os!==ns.IOS||!t.osVersion)return!1;const s=t.osVersion.split(".");return Number(s[0])===15&&Number(s[1])>=1}function Y1(){return Zs()&&navigator.maxTouchPoints>0}function jl(){return Qi().name===Fi.WECHAT}function bf(){return window.navigator.appVersion&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)!==null&&window.navigator.appVersion.match(/Chrome\/([\w\W]*?)\./)[1]<=35}function OR(){const t=Md();return function(){const s=Qi().deviceType;return s==="mobile"||s==="tablet"}()||t===ns.ANDROID||t===ns.IOS||t===ns.HARMONY_OS}function Al(){const t=Qi();return t.name!==Fi.EDGE&&t.name!==Fi.SAFARI&&!!navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]./i)}function c2(){return Md()===ns.ANDROID}function l2(){const t=Qi();return c2()&&(t.name===Fi.CHROME||t.name===Fi.WECHAT||/chrome|chromium/i.test(navigator.userAgent))}function GJ(){var t;return!!Et(t=window.navigator.userAgent).call(t,"AgoraWebView")}function r4(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=Array(s);c1&&arguments[1]!==void 0?arguments[1]:"",c=arguments.length>2?arguments[2]:void 0;super(s),Dr(this,"code",void 0),Dr(this,"message",void 0),Dr(this,"data",void 0),Dr(this,"name","AgoraRTCException"),this.code=t,this.message="AgoraRTCError ".concat(this.code,": ").concat(s),this.data=c}toString(){return this.data?"".concat(this.message,` -data: `).concat(JSON.stringify(this.data)):this.message}print(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error",s=arguments.length>1?arguments[1]:void 0;return t==="error"&&(s||console).error(this.toString()),t==="warning"&&(s||console).warn(this.toString()),this}throw(t){throw this.print("error",t),this}};function ll(t,s){if(typeof t!="boolean")throw new tt(Ce.INVALID_PARAMS,"Invalid ".concat(s,": The value is of the boolean type."))}function As(t,s,c){if(!Et(c).call(c,t))throw new tt(Ce.INVALID_PARAMS,"".concat(s," can only be set as ").concat(JSON.stringify(c)))}function Vn(t,s){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1e4;if(tu||(!(arguments.length>4&&arguments[4]!==void 0)||arguments[4])&&!function(h){return typeof h=="number"&&h%1==0}(t))throw new tt(Ce.INVALID_PARAMS,"invalid ".concat(s,": the value range is [").concat(c,", ").concat(u,"]. integer only"))}function Nf(t,s){if(typeof t!="number"){if(!(t.min||t.max||t.ideal||t.exact))throw new tt(Ce.INVALID_PARAMS,"".concat(s," is not a valid ConstrainLong"));t.min!==void 0&&Vn(t.min,"".concat(s,".min"),0,1/0),t.max!==void 0&&Vn(t.max,"".concat(s,".max"),1,1/0),t.exact!==void 0&&Vn(t.exact,"".concat(s,".exact"),1,1/0),t.ideal!==void 0&&Vn(t.ideal,"".concat(s,".ideal"),1,1/0)}else Vn(t,s,1,1/0)}function Ra(t,s){let c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:255,h=!(arguments.length>4&&arguments[4]!==void 0)||arguments[4];if(t==null)throw new tt(Ce.INVALID_PARAMS,"".concat(s||"param"," cannot be empty"));if(!LR(t,c,u,h))throw new tt(Ce.INVALID_PARAMS,"Invalid ".concat(s||"string param",": Length of the string: [").concat(c,",").concat(u,"].").concat(h?" ASCII characters only.":""))}function j1(t,s){if(!Array.isArray(t))throw new tt(Ce.INVALID_PARAMS,"".concat(s," should be an array"))}function Bo(t){return t==null}function LR(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:255,u=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];return typeof t=="string"&&t.length<=c&&t.length>=s&&(!u||function(h){if(typeof h!="string")return!1;for(let _=0;_255)return!1}return!0}(t))}function J1(t,s,c){if("getBigUint64"in DataView.prototype)return t.getBigUint64(s,c);const u=t.getUint32(s,c),h=t.getUint32(s+4,c),_=0,B=+!c;return BigInt(u*B+h*_)<>BigInt(32)),_=Number(c&BigInt(4294967295));t.setUint32(s,h,u),t.setUint32(s+4,_,u)}var wg=function(t){return t.COVERED="COVERED",t.POSITION="POSITION",t.SIZE="SIZE",t.STYLE="STYLE",t}(wg||{}),MR=function(t){return t.UNMOUNTED="UNMOUNTED",t.INVALID_HTML_ELEMENT="INVALID_HTML_ELEMENT",t}(MR||{});const $P=new class{constructor(){Dr(this,"_clientSize",null),Dr(this,"getClientWidth",()=>document.documentElement?document.documentElement.clientWidth:document.body.clientWidth),Dr(this,"getClientHeight",()=>document.documentElement?document.documentElement.clientHeight:document.body.clientHeight),Dr(this,"getStyle",t=>window.getComputedStyle(t,null)),Dr(this,"checkCssVisibleProperty",t=>{var s;let c=!0;const u=this.getStyle(t),h=u.display,_=u.visibility,B=u.opacity,Q=u.filter;return(h==="none"||Et(s=["hidden","collapse"]).call(s,_)||Number(B)<.1)&&(c=!1),!!c&&(Q&&Q.split(" ").filter(T=>{var D;const O=T.split("(")[0];return Et(D=["brightness","blur","opacity"]).call(D,O)}).map(T=>{const D=cl(T.split(/\(|\)/),2),O=D[0],P=D[1];return[O,Number(P.match(/^[0-9\.]+/))]}).forEach(T=>{const D=cl(T,2),O=D[0],P=D[1];switch(O){case"brightness":(P<.1||P>3)&&(c=!1);break;case"blur":P>3&&(c=!1);break;case"opacity":P<.1&&(c=!1)}}),c)}),Dr(this,"checkPropertyUpToAllParentNodes",(t,s)=>{let c=!0,u=!0;const h=B=>s(B);let _=t;for(;_&&u;)h(_)||(c=!1,u=!1),_=_.parentElement,_||(u=!1);return c}),Dr(this,"checkActualCssVisibleIncludeInherit",t=>this.checkPropertyUpToAllParentNodes(t,this.checkCssVisibleProperty)),Dr(this,"getSizeAboutClient",t=>{const s=t.getBoundingClientRect(),c=s.width,u=s.height,h=s.left,_=s.right,B=s.top,Q=s.bottom,T=this.getClientWidth(),D=this.getClientHeight();return{width:c,height:u,left:h,right:_,top:B,bottom:Q,clientWidth:T,clientHeight:D,clientMin:Math.min(T,D)}}),Dr(this,"checkActualSize",()=>{const t=this._clientSize,s=t.width,c=t.height,u=t.clientMin;return this.checkSizeIsVisible(s,c,u)}),Dr(this,"elementFromPoint",(t,s)=>document.elementFromPoint?document.elementFromPoint(t,s):null),Dr(this,"checkCoverForAPoint",(t,s,c)=>{const u=this.elementFromPoint(t,s);return u!==null&&u!==c}),Dr(this,"getPointPositionList",()=>{const t=this._clientSize,s=t.width,c=t.height,u=t.left,h=t.top,_=s/6,B=c/6,Q=[],T=10**6;for(let D=0;D<5;D++)for(let O=0;O<5;O++){const P=(u*T+(D===0?.1:D===4?(_*D*T-1e5)/T:_*D)*T)/T,U=(h*T+(O===0?.1:O===4?(B*O*T-1e5)/T:B*O)*T)/T;Q.push({x:P,y:U})}return[...Q]}),Dr(this,"checkElementCover",t=>this.getPointPositionList().map(s=>this.checkCoverForAPoint(s.x,s.y,t)).filter(s=>!!s).length>6),Dr(this,"checkSizeIsVisible",(t,s,c)=>(t>50||c/t<=10)&&(s>50||c/s<=10)),Dr(this,"checkSizeOfPartInClient",()=>{const t=this._clientSize,s=t.left,c=t.right,u=t.top,h=t.bottom,_=t.clientHeight,B=t.clientWidth,Q=t.clientMin;let T,D,O,P;if(s<0)T=0;else{if(!(s(this._clientSize=null,{visible:!1,reason:t})),Dr(this,"checkOneElementVisible",t=>{if(t instanceof HTMLElement){if(this.checkElementIsMountedOnDom(t)){if(this.checkActualCssVisibleIncludeInherit(t)){if(this._clientSize=this.getSizeAboutClient(t),this.checkElementCover(t))return this.returnHiddenResult(wg.COVERED);{const s=this.checkActualSize(),c=this.checkSizeOfPartInClient();return s&&!c?this.returnHiddenResult(wg.POSITION):s?(this._clientSize=null,{visible:!0}):this.returnHiddenResult(wg.SIZE)}}return this.returnHiddenResult(wg.STYLE)}return this.returnHiddenResult(MR.UNMOUNTED)}return this.returnHiddenResult(MR.INVALID_HTML_ELEMENT)}),Dr(this,"checkElementIsMountedOnDom",t=>this.checkPropertyUpToAllParentNodes(t,s=>s.nodeName.toUpperCase()!=="HTML"?s.parentElement!==null:!!document.documentElement))}};function MC(t){return new TextEncoder().encode(t)}const n4=function(t,s){const c=new Uint8Array(t.byteLength+s.byteLength);return c.set(new Uint8Array(t),0),c.set(new Uint8Array(s),t.byteLength),c},Of=async t=>function(s,c){let u="";return new Uint8Array(s).forEach(h=>{u+=h.toString(c).padStart(2,"0")}),u}(await crypto.subtle.digest("SHA-256",MC(t)),16);let Cn=class{constructor(){Dr(this,"_events",{}),Dr(this,"addListener",this.on)}getListeners(t){return this._events[t]?this._events[t].map(s=>s.listener):[]}on(t,s){this._events[t]||(this._events[t]=[]);const c=this._events[t];this._indexOfListener(c,s)===-1&&c.push({listener:s,once:!1})}once(t,s){this._events[t]||(this._events[t]=[]);const c=this._events[t];this._indexOfListener(c,s)===-1&&c.push({listener:s,once:!0})}off(t,s){if(!this._events[t])return;const c=this._events[t],u=this._indexOfListener(c,s);u!==-1&&c.splice(u,1),this._events[t].length===0&&delete this._events[t]}removeAllListeners(t){t?delete this._events[t]:this._events={}}emit(t){this._events[t]||(this._events[t]=[]);const s=this._events[t].map(_=>_);for(var c=arguments.length,u=new Array(c>1?c-1:0),h=1;h1?s-1:0),u=1;u{h.once&&this.off(t,h.listener);try{h.listener.apply(this,c)}catch(_){console.error("safeEmit event:".concat(t," error ").concat(_==null?void 0:_.toString()))}})}_indexOfListener(t,s){let c=t.length;for(;c--;)if(t[c].listener===s)return c;return-1}},u2=null;function ih(){if(u2)return u2;if(window.electron)return u2=window.electron;if(!window.require)return null;try{return u2=window.require("electron"),u2}catch{return null}}let Ti=function(t){return t.CREATE_CLIENT="createClient",t.CHECK_SYSTEM_REQUIREMENTS="checkSystemRequirements",t.SET_AREA="setArea",t.PRELOAD="PRELOAD",t.CHECK_VIDEO_TRACK_IS_ACTIVE="checkVideoTrackIsActive",t.CHECK_AUDIO_TRACK_IS_ACTIVE="checkAudioTrackIsActive",t.CREATE_MIC_AUDIO_TRACK="createMicrophoneAudioTrack",t.CREATE_CUSTOM_AUDIO_TRACK="createCustomAudioTrack",t.CREATE_BUFFER_AUDIO_TRACK="createBufferSourceAudioTrack",t.CREATE_CAM_VIDEO_TRACK="createCameraVideoTrack",t.CREATE_CUSTOM_VIDEO_TRACK="createCustomVideoTrack",t.CREATE_MIC_AND_CAM_TRACKS="createMicrophoneAndCameraTracks",t.CREATE_SCREEN_VIDEO_TRACK="createScreenVideoTrack",t.SET_ENCRYPTION_CONFIG="Client.setEncryptionConfig",t.START_PROXY_SERVER="Client.startProxyServer",t.STOP_PROXY_SERVER="Client.stopProxyServer",t.SET_PROXY_SERVER="Client.setProxyServer",t.SET_TURN_SERVER="Client.setTurnServer",t.SET_CLIENT_ROLE="Client.setClientRole",t.SET_LOW_STREAM_PARAMETER="Client.setLowStreamParameter",t.ENABLE_DUAL_STREAM="Client.enableDualStream",t.DISABLE_DUAL_STREAM="Client.disableDualStream",t.JOIN="Client.join",t.LEAVE="Client.leave",t.PUBLISH="Client.publish",t.UNPUBLISH="Client.unpublish",t.SUBSCRIBE="Client.subscribe",t.MASS_SUBSCRIBE="Client.massSubscribe",t.MASS_UNSUBSCRIBE="Client.massUnsubscribe",t.UNSUBSCRIBE="Client.unsubscribe",t.RENEW_TOKEN="Client.renewToken",t.SET_REMOTE_VIDEO_STREAM_TYPE="Client.setRemoteVideoStreamType",t.SET_STREAM_FALLBACK_OPTION="Client.setStreamFallbackOption",t.ENABLE_AUDIO_VOLUME_INDICATOR="Client.enableAudioVolumeIndicator",t.SEND_CUSTOM_REPORT_MESSAGE="Client.sendCustomReportMessage",t.INSPECT_VIDEO_CONTENT="Client.inspectVideoContent",t.STOP_INSPECT_VIDEO_CONTENT="Client.stopInspectVideoContent",t.JOIN_FALLBACK_TO_PROXY="Client._joinFallbackToProxy",t.ON_LIVE_STREAM_WARNING="Client.onLiveStreamWarning",t.ON_LIVE_STREAM_ERROR="Client.onLiveStreamingError",t.START_LIVE_STREAMING="Client.startLiveStreaming",t.SET_LIVE_TRANSCODING="Client.setLiveTranscoding",t.STOP_LIVE_STREAMING="Client.stopLiveStreaming",t.START_CHANNEL_MEDIA_RELAY="Client.startChannelMediaRelay",t.UPDATE_CHANNEL_MEDIA_RELAY="Client.updateChannelMediaRelay",t.STOP_CHANNEL_MEDIA_RELAY="Client.stopChannelMediaRelay",t.REQUEST_CONFIG_DISTRIBUTE="_config-distribute-request",t.SET_CONFIG_DISTRIBUTE="_configDistribute",t.LOCAL_TRACK_SET_MUTED="LocalTrack.setMute",t.LOCAL_AUDIO_TRACK_PLAY="LocalAudioTrack.play",t.LOCAL_AUDIO_TRACK_PLAY_IN_ELEMENT="LocalAudioTrack.playInElement",t.LOCAL_AUDIO_TRACK_STOP="LocalAudioTrack.stop",t.LOCAL_AUDIO_TRACK_SET_VOLUME="LocalAudioTrack.setVolume",t.MIC_AUDIO_TRACK_SET_DEVICE="MicrophoneAudioTrack.setDevice",t.BUFFER_AUDIO_TRACK_START="BufferSourceAudioTrack.startProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_STOP="BufferSourceAudioTrack.stopProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_PAUSE="BufferSourceAudioTrack.pauseProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_RESUME="BufferSourceAudioTrack.resumeProcessAudioBuffer",t.BUFFER_AUDIO_TRACK_SEEK="BufferSourceAudioTrack.seekAudioBuffer",t.LOCAL_VIDEO_TRACK_PLAY="LocalVideoTrack.play",t.LOCAL_VIDEO_TRACK_STOP="LocalVideoTrack.stop",t.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE="LocalVideoTrack.getVideoElementVisibleStatus",t.LOCAL_VIDEO_TRACK_BEAUTY="LocalVideoTrack.setBeautyEffect",t.LOCAL_VIDEO_SEND_SEI_DATA="LocalVideoTrack.sendSeiData",t.CAM_VIDEO_TRACK_SET_DEVICE="CameraVideoTrack.setDevice",t.CAM_VIDEO_TRACK_SET_ENCODER_CONFIG="CameraVideoTrack.setEncoderConfiguration",t.REMOTE_VIDEO_TRACK_PLAY="RemoteVideoTrack.play",t.REMOTE_VIDEO_TRACK_STOP="RemoteVideoTrack.stop",t.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE="RemoteVideoTrack.getVideoElementVisibleStatus",t.REMOTE_AUDIO_TRACK_PLAY="RemoteAudioTrack.play",t.REMOTE_AUDIO_TRACK_STOP="RemoteAudioTrack.stop",t.REMOTE_AUDIO_SET_VOLUME="RemoteAudioTrack.setVolume",t.REMOTE_AUDIO_SET_OUTPUT_DEVICE="RemoteAudioTrack.setOutputDevice",t.GET_MEDIA_STREAM_TRACK="Track.getMediaStreamTrack",t.STREAM_TYPE_CHANGE="streamTypeChange",t.CONNECTION_STATE_CHANGE="connectionStateChange",t.LOAD_CONFIG_FROM_LOCALSTORAGE="loadConfigFromLocalStorage",t.IMAGE_MODERATION_UPLOAD="imageModerationUpload",t.REPUB_AFTER_PC_CONNECTED="repubAfterPCConnected",t.PRELOAD_MEDIA_FAILED="preloadMediaFailed",t.MISMATCH_DTLS_PARAMETERS="mismatchDtlsParameters",t.MISMATCH_ICE_PARAMETERS="mismatchIceParameters",t.VOS_FALLBACK_CN="vosFallbackCN",t.DATACHANNEL_FAILBACK="datachannelFailback",t}({}),vn=function(t){return t.TRACER="tracer",t}({});function kR(t){return Vn(t.timeout,"config.timeout",0,1e5),Vn(t.timeoutFactor,"config.timeoutFactor",0,100,!1),Vn(t.maxRetryCount,"config.maxRetryConfig",0,1/0),Vn(t.maxRetryTimeout,"config.maxRetryTimeout",0,1/0),!0}let o4=function(t){return t[t.AUDIENCE_LEVEL_LOW_LATENCY=1]="AUDIENCE_LEVEL_LOW_LATENCY",t[t.AUDIENCE_LEVEL_ULTRA_LOW_LATENCY=2]="AUDIENCE_LEVEL_ULTRA_LOW_LATENCY",t[t.AUDIENCE_LEVEL_SYNC_LATENCY=3]="AUDIENCE_LEVEL_SYNC_LATENCY",t}({}),mi=function(t){return t.LEAVE="LEAVE",t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.UID_BANNED="UID_BANNED",t.FALLBACK="FALLBACK",t.IP_BANNED="IP_BANNED",t.CHANNEL_BANNED="CHANNEL_BANNED",t.LICENSE_MISSING="LICENSE_MISSING",t.LICENSE_EXPIRED="LICENSE_EXPIRED",t.LICENSE_MINUTES_EXCEEDED="LICENSE_MINUTES_EXCEEDED",t.LICENSE_PERIOD_INVALID="LICENSE_PERIOD_INVALID",t.LICENSE_MULTIPLE_SDK_SERVICE="LICENSE_MULTIPLE_SDK_SERVICE",t.LICENSE_ILLEGAL="LICENSE_ILLEGAL",t.TOKEN_EXPIRE="TOKEN_EXPIRE",t.FALLBACK_TO_HLS="FALLBACK_TO_HLS",t.UID_CONFLICT="UID_CONFLICT",t}({});function zi(t){if(!Array.isArray(t)||t.length<1)return!1;try{t.forEach(s=>{if(!s.urls)throw Error()})}catch{return!1}return!0}function Mn(t){return Ra(t.turnServerURL,"turnServerURL"),Ra(t.username,"username"),Ra(t.password,"password"),t.udpport&&Vn(t.udpport,"udpport",1,99999,!0),t.forceturn&&ll(t.forceturn,"forceturn"),t.security&&ll(t.security,"security"),t.tcpport&&Vn(t.tcpport,"tcpport",1,99999,!0),!0}let Ie=function(t){return t[t.AUTO_SIMULCAST_STREAM=-1]="AUTO_SIMULCAST_STREAM",t[t.DISABLE_SIMULCAST_STREM=0]="DISABLE_SIMULCAST_STREM",t[t.ENABLE_SIMULCAST_STREAM=1]="ENABLE_SIMULCAST_STREAM",t}({});function PR(t){return t.level!==void 0&&As(t.level,"level",[1,2,3]),t.delay!==void 0&&Vn(t.delay,"delay",0,3e3,!0),!0}let Vr=function(t){return t.PEERCONNECTION_STATE_CHANGE="peerconnection-state-change",t.AUDIO_METADATA="audio-metadata",t.AUDIO_PTS="audio-pts",t.CONNECTION_STATE_CHANGE="connection-state-change",t.MEDIA_RECONNECT_START="media-reconnect-start",t.MEDIA_RECONNECT_END="media-reconnect-end",t.IS_USING_CLOUD_PROXY="is-using-cloud-proxy",t.USER_JOINED="user-joined",t.USER_LEAVED="user-left",t.USER_PUBLISHED="user-published",t.USER_UNPUBLISHED="user-unpublished",t.USER_INFO_UPDATED="user-info-updated",t.CLIENT_BANNED="client-banned",t.CHANNEL_MEDIA_RELAY_STATE="channel-media-relay-state",t.CHANNEL_MEDIA_RELAY_EVENT="channel-media-relay-event",t.VOLUME_INDICATOR="volume-indicator",t.CRYPT_ERROR="crypt-error",t.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="token-privilege-will-expire",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="token-privilege-did-expire",t.NETWORK_QUALITY="network-quality",t.STREAM_TYPE_CHANGED="stream-type-changed",t.STREAM_FALLBACK="stream-fallback",t.RECEIVE_METADATA="receive-metadata",t.STREAM_MESSAGE="stream-message",t.LIVE_STREAMING_ERROR="live-streaming-error",t.LIVE_STREAMING_WARNING="live-streaming-warning",t.EXCEPTION="exception",t.ERROR="error",t.P2P_LOST="p2p_lost",t.JOIN_FALLBACK_TO_PROXY="join-fallback-to-proxy",t.CHANNEL_FALLBACK_TO_WEBSOCKET="channel-fallback-to-websocket",t.MEDIA_CONNECTION_TYPE_CHANGE="media-connection-type-change",t.PUBLISHED_USER_LIST="published-user-list",t.USER_LIST="user-list",t.CONTENT_INSPECT_CONNECTION_STATE_CHANGE="content-inspect-connection-state-change",t.CONTENT_INSPECT_ERROR="content-inspect-error",t.CONTENT_INSPECT_RESULT="content-inspect-result",t.IMAGE_MODERATION_CONNECTION_STATE_CHANGE="image-moderation-connection-state-change",t.FALLBACK_TO_HLS="fallback-to-hls",t.FIRST_VIDEO_BUFFER_READY="first-video-buffer-ready",t.FIRST_VIDEO_PRE_RENDER="first-video-pre-render",t.AV1_DECODABLE_RESULT="av1-decodable-result",t}({}),Pr=function(t){return t.CONFIG="config",t.VOSERROR="vos_error",t.AP_ERROR="ap_error",t}({}),Ss=function(t){return t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.MULTI_IP="MULTI_IP",t.TIMEOUT="TIMEOUT",t.OFFLINE="OFFLINE",t.LEAVE="LEAVE",t.P2P_FAILED="P2P_FAILED",t.FALLBACK="FALLBACK",t.REGIONAL_DISTRIBUTION="REGIONAL_DISTRIBUTION",t}({}),tA=function(t){return t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({}),E2=function(t){return t.NETWORK_STATE_CHANGE="NETWORK_STATE_CHANGE",t.ONLINE="ONLINE",t.OFFLINE="OFFLINE",t}({});function $o(t,s){for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h{t.emit(s,...u,_,B)})}function sn(t,s){if(t.getListeners(s).length===0)return Ut.resolve();for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h2?c-2:0),h=2;h2?h-2:0),B=2;B{c=Q},Q=>{u=Q}),u!==null)throw u;if(c===null)throw new tt(Ce.UNEXPECTED_ERROR,"handler is not sync");return c}const ki=new class extends Cn{set networkState(t){this.emit(E2.NETWORK_STATE_CHANGE,t,this._networkState),t===tA.ONLINE?this.emit(E2.ONLINE):t===tA.OFFLINE&&(this.onlineWaiter=new Ut(s=>{this.once(E2.ONLINE,()=>{this.onlineWaiter=void 0,s(tA.ONLINE)})}),this.emit(E2.OFFLINE)),this._networkState=t}get networkState(){return this._networkState}get isOnline(){return this._networkState===tA.ONLINE}constructor(){super(),Dr(this,"_moduleName","network-indicator"),Dr(this,"_networkState",tA.ONLINE),Dr(this,"onlineWaiter",void 0),window.addEventListener("online",()=>{this.networkState=tA.ONLINE}),window.addEventListener("offline",()=>{this.networkState=tA.OFFLINE})}},ea=[];for(let t=0;t<256;++t)ea.push((t+256).toString(16).slice(1));const ZP=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto);let s4;const VJ=new Uint8Array(16);function KJ(){return ZP?ZP():function(c,u,h){var _,B,Q,T;const D=(_=(B=(c=c||{}).random)!==null&&B!==void 0?B:(Q=(T=c).rng)===null||Q===void 0?void 0:Q.call(T))!==null&&_!==void 0?_:function(){if(!s4){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");s4=crypto.getRandomValues.bind(crypto)}return s4(VJ)}();if(D.length<16)throw new Error("Random bytes length must be >= 16");if(D[6]=15&D[6]|64,D[8]=63&D[8]|128,u){if((h=h||0)<0||h+16>u.length)throw new RangeError("UUID byte range ".concat(h,":").concat(h+15," is out of buffer bounds"));for(let O=0;O<16;++O)u[h+O]=D[O];return u}return function(O){let P=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(ea[O[P+0]]+ea[O[P+1]]+ea[O[P+2]]+ea[O[P+3]]+"-"+ea[O[P+4]]+ea[O[P+5]]+"-"+ea[O[P+6]]+ea[O[P+7]]+"-"+ea[O[P+8]]+ea[O[P+9]]+"-"+ea[O[P+10]]+ea[O[P+11]]+ea[O[P+12]]+ea[O[P+13]]+ea[O[P+14]]+ea[O[P+15]]).toLowerCase()}(D)}(t,s,void 0);var t,s}function UR(t,s){const c=t.indexOf(s);c!==-1&&t.splice(c,1)}function oh(t){const s=[];return t.forEach(c=>{s.indexOf(c)===-1&&s.push(c)}),s}function xR(t){Ut!==void 0?Ut.resolve().then(t):setTimeout(t,0)}function go(t){return JSON.parse(JSON.stringify(t))}function Hs(t){try{return go(t)}catch{return t}}const ko={};function vg(t,s){ko[s]||(ko[s]=!0,t())}function Yr(t){const s=window.atob(t),c=new Uint8Array(new ArrayBuffer(s.length));for(let u=0;u1&&arguments[1]!==void 0?arguments[1]:16,c=new TextEncoder().encode(t);if(c.length>s)c=c.slice(0,s);else if(c.lengthB+Q.length,0),h=new Uint8Array(new ArrayBuffer(u));let _=0;return s.forEach(B=>{h.set(B,_),_+=B.length}),h}function vu(t){return window.TextEncoder?new TextEncoder().encode(t).length:t.length}function GR(t){let s=0;return(/DingTalk/i.test(navigator.userAgent)||/AliApp/i.test(navigator.userAgent))&&t.realFormData&&(t=t.realFormData),t.forEach(c=>{s+=typeof c=="string"?vu(c):c.size}),s+138}function eU(t){const s=new tt(Ce.TIMEOUT,"timeout");return new Ut((c,u)=>{window.setTimeout(()=>u(s),t)})}function so(t){return new Ut(s=>{window.setTimeout(s,t)})}function un(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:7,s=arguments.length>1?arguments[1]:void 0;const c=Math.random().toString(16).substr(2,t).toLowerCase();return c.length===t?"".concat(s).concat(c):"".concat(s).concat(c)+un(t-c.length,"")}function Pd(){let t,s=!1;try{var c;t=aP(c=KJ()).call(c,"-","")}catch{s=!0}return!s&&t&&t.length===32||(t=un(32,"")),t.toUpperCase()}const X=()=>{},A4=new class{constructor(){Dr(this,"fnMap",new Map)}throttleByKey(t,s,c,u){for(var h=arguments.length,_=new Array(h>4?h-4:0),B=4;B{const D=this.fnMap.get(s);D&&D.fn(...D.args),this.fnMap.delete(s)},c);this.fnMap.set(s,{fn:t,threshold:c,timer:T,args:_,skipFn:u})}else Q.skipFn&&Q.skipFn(...Q.args),this.fnMap.set(s,wt(wt({},Q),{},{fn:t,args:_,skipFn:u}))}else{const Q=window.setTimeout(()=>{const T=this.fnMap.get(s);T&&T.fn(...T.args),this.fnMap.delete(s)},c);this.fnMap.set(s,{fn:t,threshold:c,timer:Q,args:_,skipFn:u})}}},tU=A4.throttleByKey.bind(A4);function rU(t){return typeof t=="object"&&t!==null&&!(t instanceof RegExp)}function Cs(t,s){if(!rU(t)||!rU(s)||Array.isArray(t)&&!Array.isArray(s)||!Array.isArray(t)&&Array.isArray(s))return s;if(Array.isArray(s)&&Array.isArray(t)){const c=[...t];for(let u=0;u0&&(c[u]=255&t,t>>=8,u++,u!==s););return c}function kC(t){return typeof t=="number"?t:t.exact||t.ideal||t.max||t.min||0}function Sr(t,s){try{return typeof t=="object"&&typeof s=="object"&&JSON.stringify(t)===JSON.stringify(s)}catch{return!1}}function tr(t){return VA(t).call(t,(s,c)=>s+c,0)}function ze(t){const s="0123456789abcdef";function c(me){let Qe,Oe="";for(Qe=0;Qe<=3;Qe++)Oe+=s.charAt(me>>8*Qe+4&15)+s.charAt(me>>8*Qe&15);return Oe}function u(me,Qe){const Oe=(65535&me)+(65535&Qe);return(me>>16)+(Qe>>16)+(Oe>>16)<<16|65535&Oe}function h(me,Qe,Oe,we,Ne,et){return u(function(st,Xt){return st<>>32-Xt}(u(u(Qe,me),u(we,et)),Ne),Oe)}function _(me,Qe,Oe,we,Ne,et,st){return h(Qe&Oe|~Qe&we,me,Qe,Ne,et,st)}function B(me,Qe,Oe,we,Ne,et,st){return h(Qe&we|Oe&~we,me,Qe,Ne,et,st)}function Q(me,Qe,Oe,we,Ne,et,st){return h(Qe^Oe^we,me,Qe,Ne,et,st)}function T(me,Qe,Oe,we,Ne,et,st){return h(Oe^(Qe|~we),me,Qe,Ne,et,st)}const D=function(me){let Qe;const Oe=1+(me.length+8>>6),we=new Array(16*Oe);for(Qe=0;Qe<16*Oe;Qe++)we[Qe]=0;for(Qe=0;Qe>2]|=me.charCodeAt(Qe)<>2]|=128<0}lock(t){let s;this.locks+=1,this.logger("locked",t);const c=new Ut(h=>{s=()=>{this.locks-=1,this.logger("unlocked",t),h()}}),u=this.lockingPromise.then(()=>s);return this.lockingPromise=this.lockingPromise.then(()=>c),u}};function Dg(t,s){return function(c,u,h){const _=h.value;if(typeof _!="function")throw new Error("Cannot use mutex on object property.");return h.value=async function(){const B=this[s];if(!B)throw new Error("mutex property key ".concat(s," doesn't exist on ").concat(t));const Q=await B.lock("From ".concat(t,".").concat(u));try{for(var T=arguments.length,D=new Array(T),O=0;O{await function(D){return new Ut(O=>{window.setTimeout(O,D)})}(_),_*=h.timeoutFactor,_=Math.min(h.maxRetryTimeout,_)};let Q=!1;const T=new Ut(async(D,O)=>{s=s||(()=>!1),c=c||(()=>!0);for(let P=0;PQ=!0,T}let Mf,VR=class{constructor(t){Dr(this,"input",[]),Dr(this,"size",void 0),this.size=t}add(t){this.input.push(t),this.input.length>this.size&&this.input.splice(0,1)}mean(){var t;return this.input.length===0?0:VA(t=this.input).call(t,(s,c)=>s+c)/this.input.length}},Ys=0,sh=0;function Gi(t,s,c,u){return new Ut((h,_)=>{s.responseType=s.responseType||"json",s.data&&!c?(s.data=JSON.stringify(s.data),Ys+=vu(s.data)):c&&(s.data.size?Ys+=s.data.size:s.data instanceof FormData?Ys+=GR(s.data):Ys+=vu(JSON.stringify(s.data))),s.headers=s.headers||{},s.headers["Content-Type"]=s.headers["Content-Type"]||"application/json",s.method="POST",s.url=t,on.request(s).then(B=>{typeof B.data=="string"?sh+=vu(B.data):B.data instanceof ArrayBuffer||B.data instanceof Uint8Array?sh+=B.data.byteLength:sh+=vu(JSON.stringify(B.data)),h(B.data)}).catch(B=>{on.isCancel(B)?_(new tt(Ce.OPERATION_ABORTED,"cancel token canceled")):B.code==="ECONNABORTED"?_(new tt(Ce.NETWORK_TIMEOUT,B.message)):B.response?_(new tt(Ce.NETWORK_RESPONSE_ERROR,B.response.status)):_(new tt(Ce.NETWORK_ERROR,B.message))})})}async function Jl(t,s){const c=new Blob([s.data],{type:"buffer"});return await Gi(t,wt(wt({},s),{},{data:c,headers:{"Content-Type":"application/octet-stream"}}),!0)}const KR=()=>window.isSecureContext!==void 0;function ql(t){if(Array.isArray(t))return t.map(c=>c);if(!iU(t))return t;const s={};for(const c in t){const u=t[c];iU(u)||Array.isArray(u)?s[c]=ql(u):s[c]=u}return s}function iU(t){return!(typeof t!="object"||Array.isArray(t)||!t)}let c4=class{constructor(t){Dr(this,"input",[]),Dr(this,"size",void 0),this.size=t}add(t){this.input.push(t),this.input.length>this.size&&this.input.splice(0,1)}diffMean(){return this.input.length===0?0:(this.input[this.input.length-1]-this.input[0])/this.input.length}};const ya={address:"unknown",candidateType:"unknown",id:"unknown",port:0,priority:0,protocol:"unknown",type:"unknown"},h2={timestamp:0,bitrate:{actualEncoded:0,transmit:0},sendPacketLossRate:0,recvPacketLossRate:0,videoRecv:[],videoSend:[],audioRecv:[],audioSend:[],transport:{bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0},selectedCandidatePair:{id:"unknown",localCandidate:ya,remoteCandidate:ya},updateInterval:0},kf={firsCount:0,nacksCount:0,plisCount:0,framesDecodeCount:0,framesDecodeInterval:0,framesDecodeFreezeTime:0,decodeFrameRate:0,bytes:0,packetsLost:0,packetLostRate:0,packets:0,ssrc:0,qpSumPerFrame:0,framesDroppedCount:0,outputFrameRate:0,packetsDiscarded:0,framesAssembledFromMultiplePackets:0,totalProcessingDelay:0,avgDecodeMs:0,avgFramesAssembledFromMultiplePacketsMs:0,avgProcessingDelayMs:0,avgInterFrameDelayMs:0,totalAssemblyTime:0},nU={firsCount:0,nacksCount:0,plisCount:0,frameCount:0,bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0,qpSumPerFrame:0},Pf={bytes:0,packets:0,packetsLost:0,packetLostRate:0,ssrc:0,rttMs:0,jitterMs:0},ah={jitterBufferMs:0,jitterMs:0,bytes:0,packetsLost:0,packetLostRate:0,packetsDiscarded:0,packets:0,ssrc:0,receivedFrames:0,droppedFrames:0,concealedSamples:0,totalSamplesReceived:0,silentConcealedSamples:0,concealmentEvents:0,freezeMs80:0,freezeMs200:0,freezeSamples80:0,freezeSamples200:0};let HR=class{constructor(t,s){Dr(this,"onFirstVideoReceived",void 0),Dr(this,"onFirstVideoDecoded",void 0),Dr(this,"onFirstAudioReceived",void 0),Dr(this,"onFirstVideoDecodedTimeout",void 0),Dr(this,"onFirstAudioDecoded",void 0),Dr(this,"onSelectedLocalCandidateChanged",void 0),Dr(this,"onSelectedRemoteCandidateChanged",void 0),Dr(this,"videoIsReady",!1),Dr(this,"videoIsReady2",{}),Dr(this,"pc",void 0),Dr(this,"options",void 0),Dr(this,"intervalTimer",void 0),Dr(this,"stats",ql(h2)),Dr(this,"isFirstVideoReceived",{}),Dr(this,"isFirstVideoDecoded",{}),Dr(this,"isFirstAudioReceived",{}),Dr(this,"isFirstAudioDecoded",{}),Dr(this,"isFirstVideoDecodedTimeout",{}),Dr(this,"lossRateWindowStats",[]),this.pc=t,this.options=s,this.intervalTimer=window.setInterval(async()=>{this.updateStats()},this.options.updateInterval)}getStats(){return this.stats}getSelectedCandidatePair(){return new Ut(t=>{t({local:wt({},ya),remote:wt({},ya)})})}setVideoIsReady(t){this.videoIsReady=t}setVideoIsReady2(t,s){this.videoIsReady2[t]=s}getVideoIsReady(t){return this.videoIsReady2[t]||!1}setIsFirstAudioDecoded(t){}destroy(){window.clearInterval(this.intervalTimer),this.pc=void 0}calcLossRate(t){this.lossRateWindowStats.push(t),this.lossRateWindowStats.length>this.options.lossRateInterval&&this.lossRateWindowStats.splice(0,1);const s=this.lossRateWindowStats.length,c=["videoSend","audioSend","videoRecv","audioRecv"];let u=0,h=0,_=0,B=0;for(const Q of c)t[Q].forEach((T,D)=>{if(!this.lossRateWindowStats[s-1][Q][D]||!this.lossRateWindowStats[0][Q][D])return;const O=this.lossRateWindowStats[s-1][Q][D].packets-this.lossRateWindowStats[0][Q][D].packets,P=this.lossRateWindowStats[s-1][Q][D].packetsLost-this.lossRateWindowStats[0][Q][D].packetsLost;Q==="videoSend"||Q==="audioSend"?(u+=O,_+=P):(h+=O,B+=P),Number.isNaN(O)||Number.isNaN(O)?T.packetLostRate=0:T.packetLostRate=O<=0||P<=0?0:P/(O+P)});t.sendPacketLossRate=u<=0||_<=0?0:_/(u+_),t.recvPacketLossRate=h<=0||B<=0?0:B/(h+B)}},nr=class extends HR{constructor(){super(...arguments),Dr(this,"_stats",h2),Dr(this,"lastDecodeVideoReceiverStats",new Map)}async updateStats(){const t=await this._getStats(),s=this.statsResponsesToObjects(t);this._stats=ql(h2);const c=s.filter(h=>h.type==="ssrc");this.processSSRCStats(c);const u=s.find(h=>h.type==="VideoBwe");u&&this.processBandwidthStats(u),this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}processBandwidthStats(t){this._stats.bitrate={actualEncoded:Number(t.googActualEncBitrate),targetEncoded:Number(t.googTargetEncBitrate),retransmit:Number(t.googRetransmitBitrate),transmit:Number(t.googTransmitBitrate)},this._stats.sendBandwidth=Number(t.googAvailableSendBandwidth)}processSSRCStats(t){t.forEach(s=>{var c;const u=Et(c=s.id).call(c,"send");switch("".concat(s.mediaType,"_").concat(u?"send":"recv")){case"video_send":{const h=ql(nU);h.codec=s.googCodecName,h.adaptionChangeReason="none",s.googCpuLimitedResolution&&(h.adaptionChangeReason="cpu"),s.googBandwidthLimitedResolution&&(h.adaptionChangeReason="bandwidth"),h.avgEncodeMs=Number(s.googAvgEncodeMs),h.inputFrame={width:Number(s.googFrameWidthInput)||Number(s.googFrameWidthSent),height:Number(s.googFrameHeightInput)||Number(s.googFrameHeightSent),frameRate:Number(s.googFrameRateInput)},h.sentFrame={width:Number(s.googFrameWidthSent),height:Number(s.googFrameHeightSent),frameRate:Number(s.googFrameRateInput)},h.firsCount=Number(s.googFirReceived),h.nacksCount=Number(s.googNacksReceived),h.plisCount=Number(s.googPlisReceived),h.frameCount=Number(s.framesEncoded),h.bytes=Number(s.bytesSent),h.packets=Number(s.packetsSent),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.rttMs=Number(s.googRtt||0),this._stats.videoSend.push(h),this._stats.rtt=h.rttMs;break}case"video_recv":{const h=ql(kf),_=this.lastDecodeVideoReceiverStats.get(Number(s.ssrc));if(h.codec=s.googCodecName,h.targetDelayMs=Number(s.googTargetDelayMs),h.renderDelayMs=Number(s.googRenderDelayMs),h.currentDelayMs=Number(s.googCurrentDelayMs),h.minPlayoutDelayMs=Number(s.googMinPlayoutDelayMs),h.decodeMs=Number(s.googDecodeMs),h.maxDecodeMs=Number(s.googMaxDecodeMs),h.receivedFrame={width:Number(s.googFrameWidthReceived),height:Number(s.googFrameHeightReceived),frameRate:Number(s.googFrameRateReceived)},h.decodedFrame={width:Number(s.googFrameWidthReceived),height:Number(s.googFrameHeightReceived),frameRate:Number(s.googFrameRateDecoded)},h.decodeFrameRate=Number(s.googFrameRateDecoded),h.outputFrame={width:Number(s.googFrameWidthReceived),height:Number(s.googFrameHeightReceived),frameRate:Number(s.googFrameRateOutput)},h.jitterBufferMs=Number(s.googJitterBufferMs),h.firsCount=Number(s.googFirsSent),h.nacksCount=Number(s.googNacksSent),h.plisCount=Number(s.googPlisSent),h.framesDecodeCount=Number(s.framesDecoded),h.bytes=Number(s.bytesReceived),h.packets=Number(s.packetsReceived),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.packets>0&&!this.isFirstVideoReceived[h.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(h.ssrc),this.isFirstVideoReceived[h.ssrc]=!0),h.framesDecodeCount>0&&!this.isFirstVideoDecoded[h.ssrc]&&(this.onFirstVideoDecoded&&this.onFirstVideoDecoded(h.ssrc,h.decodedFrame.width,h.decodedFrame.height),this.isFirstVideoDecoded[h.ssrc]=!0),_){const B=_.stats,Q=Date.now()-_.lts;h.framesDecodeFreezeTime=B.framesDecodeFreezeTime,h.framesDecodeInterval=B.framesDecodeInterval,h.framesDecodeCount>B.framesDecodeCount&&this.isFirstVideoDecoded[h.ssrc]?(_.lts=Date.now(),h.framesDecodeInterval=Q,h.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(s.ssrc,10))?h.framesDecodeFreezeTime+=h.framesDecodeInterval:this.setVideoIsReady2(parseInt(s.ssrc,10),!0))):h.framesDecodeCount<_.stats.framesDecodeCount&&(h.framesDecodeInterval=0)}this.lastDecodeVideoReceiverStats.set(h.ssrc,{stats:wt({},h),lts:Date.now()}),this._stats.videoRecv.push(h);break}case"audio_recv":{const h=ql(ah);h.codec=s.googCodecName,h.outputLevel=Math.abs(Number(s.audioOutputLevel))/32767,h.decodingCNG=Number(s.googDecodingCNG),h.decodingCTN=Number(s.googDecodingCTN),h.decodingCTSG=Number(s.googDecodingCTSG),h.decodingNormal=Number(s.googDecodingNormal),h.decodingPLC=Number(s.googDecodingPLC),h.decodingPLCCNG=Number(s.googDecodingPLCCNG),h.expandRate=Number(s.googExpandRate),h.accelerateRate=Number(s.googAccelerateRate),h.preemptiveExpandRate=Number(s.googPreemptiveExpandRate),h.secondaryDecodedRate=Number(s.googSecondaryDecodedRate),h.speechExpandRate=Number(s.googSpeechExpandRate),h.preferredJitterBufferMs=Number(s.googPreferredJitterBufferMs),h.jitterBufferMs=Number(s.googJitterBufferMs),h.jitterMs=Number(s.googJitterReceived),h.bytes=Number(s.bytesReceived),h.packets=Number(s.packetsReceived),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.receivedFrames=Number(s.googDecodingCTN)||Number(s.packetsReceived),h.droppedFrames=Number(s.googDecodingPLC)+Number(s.googDecodingPLCCNG)||Number(s.packetsLost),h.receivedFrames>0&&!this.isFirstAudioReceived[h.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(h.ssrc),this.isFirstAudioReceived[h.ssrc]=!0),h.decodingNormal>0&&!this.isFirstAudioDecoded[h.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(h.ssrc),this.isFirstAudioDecoded[h.ssrc]=!0),this._stats.audioRecv.push(h);break}case"audio_send":{const h=ql(Pf);h.codec=s.googCodecName,h.inputLevel=Math.abs(Number(s.audioInputLevel))/32767,h.aecReturnLoss=Number(s.googEchoCancellationReturnLoss||0),h.aecReturnLossEnhancement=Number(s.googEchoCancellationReturnLossEnhancement||0),h.residualEchoLikelihood=Number(s.googResidualEchoLikelihood||0),h.residualEchoLikelihoodRecentMax=Number(s.googResidualEchoLikelihoodRecentMax||0),h.bytes=Number(s.bytesSent),h.packets=Number(s.packetsSent),h.packetsLost=Number(s.packetsLost),h.ssrc=Number(s.ssrc),h.rttMs=Number(s.googRtt||0),this._stats.rtt=h.rttMs,this._stats.audioSend.push(h);break}}})}_getStats(){return new Ut((t,s)=>{this.pc.getStats(t,s)})}statsResponsesToObjects(t){const s=[];return t.result().forEach(c=>{const u={id:c.id,timestamp:c.timestamp.valueOf().toString(),type:c.type};c.names().forEach(h=>{u[h]=c.stat(h)}),s.push(u)}),s}},$i=function(t){return t.BANDWIDTH="bandwidth",t.CPU="cpu",t.NONE="none",t.OTHER="other",t}({}),bg=function(t){return t.L1T1="L1T1",t.L1T2="L1T2",t.L1T3="L1T3",t.L1T3_KEY="L1T3_KEY",t.L2T1_KEY="L2T1_KEY",t.L2T2_KEY="L2T2_KEY",t.L2T3_KEY="L2T3_KEY",t.L3T1_KEY="L3T1_KEY",t.L3T2_KEY="L3T2_KEY",t.L3T3_KEY="L3T3_KEY",t}({}),l4=function(t){return t[t.new=0]="new",t[t.connecting=1]="connecting",t[t.connected=2]="connected",t[t.disconnected=3]="disconnected",t[t.failed=4]="failed",t[t.closed=5]="closed",t}({}),Tc=function(t){return t.CERTIFICATE="certificate",t.CODEC="codec",t.CANDIDATE_PAIR="candidate-pair",t.LOCAL_CANDIDATE="local-candidate",t.REMOTE_CANDIDATE="remote-candidate",t.INBOUND="inbound-rtp",t.TRACK="track",t.OUTBOUND="outbound-rtp",t.PC="peer-connection",t.REMOTE_INBOUND="remote-inbound-rtp",t.REMOTE_OUTBOUND="remote-outbound-rtp",t.TRANSPORT="transport",t.CSRC="csrc",t.DATA_CHANNEL="data-channel",t.STREAM="stream",t.SENDER="sender",t.RECEIVER="receiver",t}({});var Wl=function(t){return t[t.kNone=1]="kNone",t[t.kMillisecondsFromSeconds=1e3]="kMillisecondsFromSeconds",t[t.kBytesToBits=8]="kBytesToBits",t}(Wl||{});function Du(t,s,c,u){let h=arguments.length>4&&arguments[4]!==void 0?arguments[4]:Wl.kNone;if(!s)return;const _=Number(s[c]);if(typeof _!="number")return;const B=Number(s[u]);if(typeof B!="number")return;if(!t)return B?_/B*h:void 0;const Q=Number(t[c]);if(typeof Q!="number")return;const T=Number(t[u]);if(typeof T!="number")return;const D=B-T;return D?(_-Q)/D*h:void 0}let wc=class extends HR{constructor(){super(...arguments),Dr(this,"_stats",h2),Dr(this,"report",void 0),Dr(this,"lastDecodeVideoReceiverStats",new Map),Dr(this,"lastVideoFramesRecv",new Map),Dr(this,"lastVideoFramesSent",new Map),Dr(this,"lastVideoFramesDecode",new Map),Dr(this,"lastVideoFramesOutput",new Map),Dr(this,"lastVideoJBDelay",new Map),Dr(this,"lastAudioJBDelay",new Map),Dr(this,"mediaBytesSent",new Map),Dr(this,"mediaBytesRetransmit",new Map),Dr(this,"mediaBytesTargetEncode",new Map),Dr(this,"lastDecodeAudioReceiverStats",new Map),Dr(this,"lastAudioConcealment",new Map),Dr(this,"lastEncoderMs",new Map)}async updateStats(){this.report=await this.pc.getStats(),this._stats=ql(h2),this.report.forEach(t=>{switch(t.type){case Tc.OUTBOUND:case Tc.INBOUND:{const s=t.mediaType||t.kind,c=!s&&"frameWidth"in t,u=!s&&!("frameWidth"in t);t.type===Tc.OUTBOUND?s==="audio"||u?this.processAudioOutboundStats(t):(s==="video"||c)&&this.processVideoOutboundStats(t):t.type===Tc.INBOUND&&(s==="audio"||u?this.processAudioInboundStats(t):(s==="video"||c)&&this.processVideoInboundStats(t));break}case Tc.TRANSPORT:{this.processTransportStats(t);const s=this.report.get(t.selectedCandidatePairId);s&&this.processCandidatePairStats(s);break}case Tc.CANDIDATE_PAIR:t.selected&&this.processCandidatePairStats(t)}}),this.updateSendBitrate(),this._stats.updateInterval=Date.now()-this.stats.timestamp,this._stats.timestamp=Date.now(),this.calcLossRate(this._stats),this.stats=this._stats}async getSelectedCandidatePair(){const t=await this.pc.getStats(),s={local:wt({},ya),remote:wt({},ya)};return t.forEach(c=>{let u;if(c.type===Tc.TRANSPORT&&(u=t.get(c.selectedCandidatePairId)),c.type===Tc.CANDIDATE_PAIR&&c.selected&&(u=c),u){const h=(_,B)=>{_.type=B.type,_.id=B.id,B.address&&(_.address=B.address),B.candidateType&&(_.candidateType=B.candidateType),B.port&&(_.port=B.port),B.priority&&(_.priority=B.priority),B.protocol&&(_.protocol=B.protocol),B.relayProtocol&&(_.relayProtocol=B.relayProtocol)};if(u.localCandidateId){const _=t.get(u.localCandidateId);_&&h(s.local,_)}if(u.remoteCandidateId){const _=t.get(u.remoteCandidateId);_&&h(s.remote,_)}}}),s}processCandidatePairStats(t){if(this._stats.sendBandwidth=t.availableOutgoingBitrate||0,t.currentRoundTripTime&&(this._stats.rtt=1e3*t.currentRoundTripTime),this._stats.videoSend.forEach(s=>{t.currentRoundTripTime&&(s.rttMs=1e3*t.currentRoundTripTime)}),this._stats.audioSend.forEach(s=>{t.currentRoundTripTime&&(s.rttMs=1e3*t.currentRoundTripTime)}),this._stats.selectedCandidatePair.id=t.id,t.localCandidateId){const s=this.report.get(t.localCandidateId);s&&this.processCandidateStats(s)}if(t.remoteCandidateId){const s=this.report.get(t.remoteCandidateId);s&&this.processCandidateStats(s)}}processCandidateStats(t){let s;t.type===Tc.LOCAL_CANDIDATE&&(s=this._stats.selectedCandidatePair.localCandidate),t.type===Tc.REMOTE_CANDIDATE&&(s=this._stats.selectedCandidatePair.remoteCandidate),s&&(s.type=t.type,s.id=t.id,t.address&&(s.address=t.address),t.candidateType&&(s.candidateType=t.candidateType),t.port&&(s.port=t.port),t.priority&&(s.priority=t.priority),t.protocol&&(s.protocol=t.protocol),t.relayProtocol&&(s.relayProtocol=t.relayProtocol),t.type===Tc.LOCAL_CANDIDATE&&this.stats.selectedCandidatePair.localCandidate.id!==s.id&&this.onSelectedLocalCandidateChanged&&this.onSelectedLocalCandidateChanged(wt({},s),wt({},this.stats.selectedCandidatePair.localCandidate)),t.type===Tc.REMOTE_CANDIDATE&&this.stats.selectedCandidatePair.remoteCandidate.id!==s.id&&this.onSelectedRemoteCandidateChanged&&this.onSelectedRemoteCandidateChanged(wt({},s),wt({},this.stats.selectedCandidatePair.remoteCandidate)))}processAudioInboundStats(t){let s=this._stats.audioRecv.find(u=>u.ssrc===t.ssrc);s||(s=ql(ah),this._stats.audioRecv.push(s)),s.ssrc=t.ssrc,s.packets=t.packetsReceived,s.packetsLost=t.packetsLost,s.packetsDiscarded=t.packetsDiscarded,s.bytes=t.bytesReceived,s.jitterMs=1e3*t.jitter,s.retransmittedBytesReceived=t.retransmittedBytesReceived,s.retransmittedPacketsReceived=t.retransmittedPacketsReceived,s.totalProcessingDelay=t.totalProcessingDelay,s.jitterBufferEmittedCount=t.jitterBufferEmittedCount,s.estimatedPlayoutTimestamp=t.estimatedPlayoutTimestamp;const c=this.lastDecodeAudioReceiverStats.get(s.ssrc);s.avgProcessingDelayMs=Du(c,s,"totalProcessingDelay","jitterBufferEmittedCount",Wl.kMillisecondsFromSeconds),this.processAudioTrackReceiverStats(t,t.trackId,s),this.calculateAudioFreeze(s,c,t),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),s.receivedFrames||(s.receivedFrames=t.packetsReceived),s.droppedFrames||(s.droppedFrames=t.packetsLost),s.receivedFrames>0&&!this.isFirstAudioReceived[s.ssrc]&&(this.onFirstAudioReceived&&this.onFirstAudioReceived(s.ssrc),this.isFirstAudioReceived[s.ssrc]=!0),s.outputLevel&&s.outputLevel>0&&!this.isFirstAudioDecoded[s.ssrc]&&(this.onFirstAudioDecoded&&this.onFirstAudioDecoded(s.ssrc),this.isFirstAudioDecoded[s.ssrc]=!0),typeof t.concealedSamples=="number"&&(s.concealedSamples=t.concealedSamples),this.lastDecodeAudioReceiverStats.set(s.ssrc,wt({},s))}calculateAudioFreeze(t,s,c){const u=this.lastAudioConcealment.get(t.ssrc);if(s!=null&&u!=null){const h=u.lts,_=c.timestamp,B=_-h;if(B<=0)return;const Q=t.concealedSamples-s.concealedSamples-0,T=u.nonSilent+Q,D=t.totalSamplesReceived-s.totalSamplesReceived;if(D<=0)return;const O=80*D/B,P=200*D/B,U=B/D;let H=0;t.freezeSamples80=s.freezeSamples80,t.freezeMs80=s.freezeMs80,T>O&&(u.plc80>0?(t.freezeSamples80+=Q,t.freezeMs80+=Math.round(Q*U)):(t.freezeSamples80+=T,t.freezeMs80+=Math.round(T*U)),H=u.plc80+1);let $=0;t.freezeSamples200=s.freezeSamples200,t.freezeMs200=s.freezeMs200,T>P&&(u.plc200>0?(t.freezeSamples200+=Q,t.freezeMs200+=Math.round(Q*U)):(t.freezeSamples200+=T,t.freezeMs200+=Math.round(T*U)),$=u.plc200+1),this.lastAudioConcealment.set(t.ssrc,{nonSilent:Q,lts:_,plc80:H,plc200:$})}else t.freezeSamples80=0,t.freezeSamples200=0,t.freezeMs80=0,t.freezeMs200=0,this.lastAudioConcealment.set(t.ssrc,{nonSilent:0,lts:c.timestamp,plc80:0,plc200:0})}processVideoInboundStats(t){let s=this._stats.videoRecv.find(B=>B.ssrc===t.ssrc);s||(s=ql(kf),this._stats.videoRecv.push(s)),s.ssrc=t.ssrc,s.packets=t.packetsReceived,s.packetsLost=t.packetsLost,s.bytes=t.bytesReceived,s.firsCount=t.firCount,s.nacksCount=t.nackCount,s.plisCount=t.pliCount,s.framesDecodeCount=t.framesDecoded,s.framesDroppedCount=t.framesDropped,s.totalInterFrameDelay=t.totalInterFrameDelay,s.totalSquaredInterFrameDelay=t.totalSquaredInterFrameDelay,s.totalFreezesDuration=t.totalFreezesDuration,s.totalProcessingDelay=t.totalProcessingDelay,s.packetsDiscarded=t.packetsDiscarded,s.framesAssembledFromMultiplePackets=t.framesAssembledFromMultiplePackets,s.totalAssemblyTime=t.totalAssemblyTime,s.keyFramesDecoded=t.keyFramesDecoded,s.retransmittedBytesReceived=t.retransmittedBytesReceived,s.retransmittedPacketsReceived=t.retransmittedPacketsReceived,s.estimatedPlayoutTimestamp=t.estimatedPlayoutTimestamp;const c=this.lastDecodeVideoReceiverStats.get(s.ssrc),u=this.lastVideoFramesDecode.get(s.ssrc),h=this.lastVideoFramesOutput.get(s.ssrc),_=Date.now();if(s.framesDecodeCount>0&&!this.isFirstVideoDecoded[s.ssrc]){const B=s.decodedFrame?s.decodedFrame.width:0,Q=s.decodedFrame?s.decodedFrame.height:0;this.onFirstVideoDecoded&&this.onFirstVideoDecoded(s.ssrc,B,Q),this.isFirstVideoDecoded[s.ssrc]=!0}if(c){const B=c.stats,Q=_-c.lts;s.framesDecodeFreezeTime=B.framesDecodeFreezeTime,s.framesDecodeInterval=B.framesDecodeInterval,!this.isFirstVideoDecoded[s.ssrc]&&Q>this.options.firstVideoDecodedTimeout&&!this.isFirstVideoDecodedTimeout[s.ssrc]&&(this.onFirstVideoDecodedTimeout&&this.onFirstVideoDecodedTimeout(s.ssrc),this.isFirstVideoDecodedTimeout[s.ssrc]=!0),s.framesDecodeCount>B.framesDecodeCount&&this.isFirstVideoDecoded[s.ssrc]?(c.lts=Date.now(),s.framesDecodeInterval=Q,s.framesDecodeInterval>=this.options.freezeRateLimit&&(this.getVideoIsReady(parseInt(t.ssrc))?s.framesDecodeFreezeTime+=s.framesDecodeInterval:this.setVideoIsReady2(parseInt(t.ssrc,10),!0))):s.framesDecodeCountt.framesDecoded?s.qpSumPerFrame=t.qpSum/t.framesDecoded:s.qpSumPerFrame=(t.qpSum-c.qpSum)/(t.framesDecoded-c.stats.framesDecodeCount))}t.totalDecodeTime&&(s.decodeMs=1e3*t.totalDecodeTime,s.avgDecodeMs=Du(c==null?void 0:c.stats,s,"decodeMs","framesDecodeCount")),s.avgProcessingDelayMs=Du(c==null?void 0:c.stats,s,"totalProcessingDelay","framesDecodeCount",Wl.kMillisecondsFromSeconds),s.avgFramesAssembledFromMultiplePacketsMs=Du(c==null?void 0:c.stats,s,"totalAssemblyTime","framesAssembledFromMultiplePackets",Wl.kMillisecondsFromSeconds),s.avgInterFrameDelayMs=Du(c==null?void 0:c.stats,s,"totalInterFrameDelay","framesDecodeCount",Wl.kMillisecondsFromSeconds),u&&_-u.lts>=800?(s.decodeFrameRate=Math.round((s.framesDecodeCount-u.count)/((_-u.lts)/1e3)),this.lastVideoFramesDecode.set(s.ssrc,{count:s.framesDecodeCount,lts:_,rate:s.decodeFrameRate})):u?s.decodeFrameRate=u.rate:this.lastVideoFramesDecode.set(s.ssrc,{count:s.framesDecodeCount,lts:_,rate:0}),s.framesDroppedCount&&t.framesReceived&&(h&&_-h.lts>=800?(s.outputFrameRate=Math.round((t.framesReceived-s.framesDroppedCount-h.count)/((_-h.lts)/1e3)),this.lastVideoFramesOutput.set(s.ssrc,{count:t.framesReceived-s.framesDroppedCount,lts:_,rate:Math.max(s.outputFrameRate,0)})):h?s.outputFrameRate=h.rate:this.lastVideoFramesOutput.set(s.ssrc,{count:t.framesReceived-s.framesDroppedCount,lts:_,rate:0})),this.processVideoTrackReceiverStats(t,t.trackId,s),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),typeof t.powerEfficientDecoder=="boolean"&&(s.powerEfficientDecoder=t.powerEfficientDecoder?1:0),t.framerateMean&&(s.framesRateFirefox=t.framerateMean),s.packets>0&&!this.isFirstVideoReceived[s.ssrc]&&(this.onFirstVideoReceived&&this.onFirstVideoReceived(s.ssrc),this.isFirstVideoReceived[s.ssrc]=!0),this.lastDecodeVideoReceiverStats.set(s.ssrc,{stats:wt({},s),lts:c?c.lts:Date.now(),qpSum:t.qpSum})}processVideoOutboundStats(t){let s=this._stats.videoSend.find(u=>u.ssrc===t.ssrc);s||(s=ql(nU),this._stats.videoSend.push(s));const c=this.mediaBytesSent.get(t.ssrc);if(c)c.add(t.bytesSent);else{const u=new c4(10);u.add(t.bytesSent),this.mediaBytesSent.set(t.ssrc,u)}if(t.retransmittedBytesSent!==void 0){const u=this.mediaBytesRetransmit.get(t.ssrc);if(u)u.add(t.retransmittedBytesSent);else{const h=new c4(10);h.add(t.retransmittedBytesSent),this.mediaBytesRetransmit.set(t.ssrc,h)}}if(t.totalEncodedBytesTarget){const u=this.mediaBytesTargetEncode.get(t.ssrc);if(u)u.add(t.totalEncodedBytesTarget);else{const h=new c4(10);h.add(t.totalEncodedBytesTarget),this.mediaBytesTargetEncode.set(t.ssrc,h)}}if(s.ssrc=t.ssrc,s.bytes=t.bytesSent,s.packets=t.packetsSent,s.firsCount=t.firCount,s.nacksCount=t.nackCount,s.plisCount=t.pliCount,s.frameCount=t.framesEncoded,s.adaptionChangeReason=t.qualityLimitationReason,s.scalabilityMode=t.scalabilityMode,s.retransmittedBytesSent=t.retransmittedBytesSent,s.retransmittedPacketsSent=t.retransmittedPacketsSent,s.hugeFramesSent=t.hugeFramesSent,s.keyFramesEncoded=t.keyFramesEncoded,s.targetBitrate=t.targetBitrate,t.totalEncodeTime&&t.framesEncoded){const u=this.lastEncoderMs.get(t.ssrc);if(!u||u.lastFrameCount>t.framesEncoded)s.avgEncodeMs=1e3*t.totalEncodeTime/t.framesEncoded;else{const h=t.framesEncoded-u.lastFrameCount,_=t.totalEncodeTime-u.lastEncoderTime;s.avgEncodeMs=1e3*_/h}}if(t.framesEncoded&&t.qpSum){const u=this.lastEncoderMs.get(t.ssrc);!u||u.lastFrameCount>t.framesEncoded?s.qpSumPerFrame=t.qpSum/t.framesEncoded:s.qpSumPerFrame=(t.qpSum-u.lastQpSum)/(t.framesEncoded-u.lastFrameCount)}if(this.lastEncoderMs.set(t.ssrc,{lastFrameCount:t.framesEncoded,lastEncoderTime:t.totalEncodeTime,lastQpSum:t.qpSum,lts:Date.now()}),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),typeof t.powerEfficientEncoder=="boolean"&&(s.powerEfficientEncoder=t.powerEfficientEncoder?1:0),t.mediaSourceId&&this.processVideoMediaSource(t.mediaSourceId,s),this.processVideoTrackSenderStats(t,t.trackId,s),t.remoteId)this.processRemoteInboundStats(t.remoteId,s);else{const u=this.findRemoteStatsId(t.ssrc,Tc.REMOTE_INBOUND);u&&this.processRemoteInboundStats(u,s)}}processAudioOutboundStats(t){let s=this._stats.audioSend.find(c=>c.ssrc===t.ssrc);if(s||(s=ql(Pf),this._stats.audioSend.push(s)),s.ssrc=t.ssrc,s.packets=t.packetsSent,s.bytes=t.bytesSent,s.retransmittedBytesSent=t.retransmittedBytesSent,s.retransmittedPacketsSent=t.retransmittedPacketsSent,t.mediaSourceId&&this.processAudioMediaSource(t.mediaSourceId,s),t.codecId&&(s.codec=this.getCodecFromCodecStats(t.codecId)),this.processAudioTrackSenderStats(t,t.trackId,s),t.remoteId)this.processRemoteInboundStats(t.remoteId,s);else{const c=this.findRemoteStatsId(t.ssrc,Tc.REMOTE_INBOUND);c&&this.processRemoteInboundStats(c,s)}}processTransportStats(t){this._stats.transport.bytesReceived=t.bytesReceived||this._stats.transport.bytesReceived,this._stats.transport.bytesSent=t.bytesSent||this._stats.transport.bytesSent,this._stats.transport.packetsReceived=t.packetsReceived||this._stats.transport.packetsReceived,this._stats.transport.packetsSent=t.packetsSent||this._stats.transport.packetsSent}findRemoteStatsId(t,s){var c;const u=Array.from(BA(c=this.report).call(c)).find(h=>h.type===s&&h.ssrc===t);return u?u.id:null}processVideoMediaSource(t,s){const c=this.report.get(t);c&&c.width&&c.height&&c.framesPerSecond&&(s.inputFrame={width:c.width,height:c.height,frameRate:c.framesPerSecond})}processAudioMediaSource(t,s){const c=this.report.get(t);c&&(s.inputLevel=c.audioLevel)}processVideoTrackSenderStats(t,s,c){var u,h,_,B;const Q=s?this.report.get(s):void 0,T=(u=Q==null?void 0:Q.framesSent)!==null&&u!==void 0?u:t.framesSent;if(typeof T!="number")return;let D=(h=Q==null?void 0:Q.frameWidth)!==null&&h!==void 0?h:t.frameWidth,O=(_=Q==null?void 0:Q.frameHeight)!==null&&_!==void 0?_:t.frameHeight,P=(B=Q==null?void 0:Q.framesPerSecond)!==null&&B!==void 0?B:t.framesPerSecond;if(typeof D=="number"&&typeof O=="number"||(D=0,O=0),P==null){const U=Date.now(),H=this.lastVideoFramesSent.get(c.ssrc);H&&U-H.lts>=800?(P=Math.round((T-H.count)/((U-H.lts)/1e3)),this.lastVideoFramesSent.set(c.ssrc,{count:T,lts:U,rate:P})):H?P=H.rate:this.lastVideoFramesSent.set(c.ssrc,{count:T,lts:U,rate:0})}c.sentFrame={width:D,height:O,frameRate:Math.max(0,P)}}processVideoTrackReceiverStats(t,s,c){var u,h,_,B,Q;const T=s?this.report.get(s):void 0,D=(u=T==null?void 0:T.framesReceived)!==null&&u!==void 0?u:t.framesReceived,O=(h=T==null?void 0:T.frameWidth)!==null&&h!==void 0?h:t.frameWidth,P=(_=T==null?void 0:T.frameHeight)!==null&&_!==void 0?_:t.frameHeight,U=(B=T==null?void 0:T.jitterBufferDelay)!==null&&B!==void 0?B:t.jitterBufferDelay,H=(Q=T==null?void 0:T.jitterBufferEmittedCount)!==null&&Q!==void 0?Q:t.jitterBufferEmittedCount;if(typeof D=="number"){const $=this.lastVideoFramesRecv.get(c.ssrc),Z=Date.now();c.framesReceivedCount=D;let te=0;$&&Z-$.lts>=800?(te=Math.round((D-$.count)/((Z-$.lts)/1e3)),this.lastVideoFramesRecv.set(c.ssrc,{count:D,lts:Z,rate:te})):$?te=$.rate:this.lastVideoFramesRecv.set(c.ssrc,{count:D,lts:Z,rate:0}),c.receivedFrame={width:O||0,height:P||0,frameRate:te||0},c.decodedFrame={width:O||0,height:P||0,frameRate:c.decodeFrameRate||0},c.outputFrame={width:O||0,height:P||0,frameRate:c.outputFrameRate||c.decodeFrameRate||0}}if(U&&H){const $=this.lastVideoJBDelay.get(c.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0};let Z=$.jitterBufferMs;const te=H-$.jitterBufferEmittedCount;te>0&&(Z=1e3*(U-$.jitterBufferDelay)/te),c.jitterBufferMs=Z,c.currentDelayMs=Math.round(Z),this.lastVideoJBDelay.set(c.ssrc,{jitterBufferDelay:U,jitterBufferEmittedCount:H,jitterBufferMs:c.currentDelayMs})}}processAudioTrackSenderStats(t,s,c){var u,h,_,B;const Q=s?this.report.get(s):void 0,T=(u=(h=Q==null?void 0:Q.echoReturnLoss)!==null&&h!==void 0?h:t.echoReturnLoss)!==null&&u!==void 0?u:0,D=(_=(B=Q==null?void 0:Q.echoReturnLossEnhancement)!==null&&B!==void 0?B:t.echoReturnLossEnhancement)!==null&&_!==void 0?_:0;c.aecReturnLoss=T,c.aecReturnLossEnhancement=D}processAudioTrackReceiverStats(t,s,c){var u,h,_,B,Q,T,D,O,P;const U=s?this.report.get(s):void 0,H=(u=U==null?void 0:U.removedSamplesForAcceleration)!==null&&u!==void 0?u:t.removedSamplesForAcceleration,$=(h=U==null?void 0:U.totalSamplesReceived)!==null&&h!==void 0?h:t.totalSamplesReceived,Z=(_=U==null?void 0:U.jitterBufferDelay)!==null&&_!==void 0?_:t.jitterBufferDelay,te=(B=U==null?void 0:U.jitterBufferEmittedCount)!==null&&B!==void 0?B:t.jitterBufferEmittedCount,se=(Q=U==null?void 0:U.audioLevel)!==null&&Q!==void 0?Q:t==null?void 0:t.audioLevel,ge=(T=U==null?void 0:U.totalSamplesDuration)!==null&&T!==void 0?T:t==null?void 0:t.totalSamplesDuration,me=(D=U==null?void 0:U.concealedSamples)!==null&&D!==void 0?D:t.concealedSamples,Qe=(O=U==null?void 0:U.silentConcealedSamples)!==null&&O!==void 0?O:t.silentConcealedSamples,Oe=(P=U==null?void 0:U.concealmentEvents)!==null&&P!==void 0?P:t.concealmentEvents;if(typeof $=="number"&&(c.totalSamplesReceived=$),typeof Qe=="number"&&(c.silentConcealedSamples=Qe),typeof Oe=="number"&&(c.concealmentEvents=Oe),typeof me=="number"&&(c.concealedSamples=me),H&&$&&(c.accelerateRate=H/$),Z&&te){const Ne=this.lastAudioJBDelay.get(c.ssrc)||{jitterBufferDelay:0,jitterBufferEmittedCount:0,jitterBufferMs:0};let et=Ne.jitterBufferMs;const st=te-Ne.jitterBufferEmittedCount;st>0&&(et=1e3*(Z-Ne.jitterBufferDelay)/st),c.jitterBufferMs=Math.round(et),this.lastAudioJBDelay.set(c.ssrc,{jitterBufferDelay:Z,jitterBufferEmittedCount:te,jitterBufferMs:c.jitterBufferMs})}c.outputLevel=se;let we=1920;ge&&$&&(we=$/ge/50,c.receivedFrames=Math.round($/we)),me&&(c.droppedFrames=Math.round(me/we))}processRemoteInboundStats(t,s){const c=this.report.get(t);c&&(s.packetsLost=c.packetsLost,c.roundTripTime&&(s.rttMs=1e3*c.roundTripTime),c.jitter&&(s.jitterMs=1e3*c.jitter),c.timestamp&&(s.timestamp=c.timestamp))}getCodecFromCodecStats(t){const s=this.report.get(t);if(!s)return"";const c=s.mimeType.match(/\/(.*)$/);return c&&c[1]?c[1]:""}updateSendBitrate(){let t=0,s=null,c=null;this.mediaBytesSent.forEach(h=>{t+=h.diffMean()}),this.mediaBytesRetransmit.forEach(h=>{s=s===null?h.diffMean():s+h.diffMean()}),this.mediaBytesTargetEncode.forEach(h=>{c=c===null?h.diffMean():c+h.diffMean()});const u=s!==null?t-s:t;this._stats.bitrate={actualEncoded:8*u/(this.options.updateInterval/1e3),transmit:8*t/(this.options.updateInterval/1e3)},s!==null&&(this._stats.bitrate.retransmit=8*s/(this.options.updateInterval/1e3)),c!==null&&(this._stats.bitrate.targetEncoded=8*c/(this.options.updateInterval/1e3))}},PC=class extends HR{updateStats(){return Ut.resolve()}};function WA(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:250,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:8,u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:500,h=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1e4;const _=function(){const B=navigator.userAgent.toLocaleLowerCase().match(/chrome\/[\d]*/i);return B&&B[0]?Number(B[0].split("/")[1]):null}();return _?_<76?new nr(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h}):new wc(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h}):function(B){if(!window.RTCStatsReport)return!1;const Q=B.getStats();return!!(Q instanceof Ut||function(T){return!!T&&(typeof T=="object"||typeof T=="function")&&typeof T.then=="function"}(Q))}(t)?new wc(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h}):new PC(t,{updateInterval:s,lossRateInterval:c,freezeRateLimit:u,firstVideoDecodedTimeout:h})}const YR="websdk_ng_install_id";function I2(){try{if(de("INSTALL_ID"))return de("INSTALL_ID");let t=window.localStorage.getItem(YR);return t||(t=Pd(),window.localStorage.setItem(YR,t)),Dn("INSTALL_ID",t),t}catch{return}}const W1=function(t){if(t.match(/[0-9]+\.[0-9]+\.[0-9]+$/))return t;const s=t.match(/([0-9]+\.[0-9]+\.[0-9]+)\-([0-9]+)/);if(s&&s[1]&&s[2]){const c=s[1],u=s[2];return"".concat(c,".").concat(u)}return"4.0.0.999"}("4.24.5"),d4=function(){try{return JSON.parse("true")===!0}catch{return!0}}();let Ah=function(t){return t.Default="default",t.Auto="auto",t.Relay="relay",t.SdRtn="sd-rtn",t}({});const Bn=function(){const t="us".concat("erna","me"),s="pa".concat("sswo","rd"),c=["t","s","t"];c.splice(1,0,"e");const u=c.join(""),h=[];for(let Q=0;Q<6;Q++)h.push("1");const _=h.join(""),B={};return B[t]=u,B[s]=_,Object.assign(B,{turnServerURL:"",tcpport:3433,udpport:3478,forceturn:!1})}();window.DEFAULT_TURN_CONFIG=Bn;const XA={ENABLE_PUBLISHED_USER_LIST:!0,ENABLE_USER_LIST:!1,MAX_SUBSCRIPTION:50,SUBSCRIBE_AUDIO_FILTER_TOPN:void 0,ENABLE_PUBLISH_AUDIO_FILTER:void 0,ENABLE_USER_LICENSE_CHECK:!0,DISABLE_FEC:void 0,ENABLE_NTP_REPORT:!0,ENABLE_INSTANT_VIDEO:!1,ENABLE_USER_AUTO_REBALANCE_CHECK:!0,ENABLE_LOSSBASED_BWE:!0,ENABLE_AUT_CC:!0,FORCE_ENABLE_AUT_CC:!1,ENABLE_CC_FALLBACK:void 0,SUBSCRIBE_TWCC:!0,PUBLISH_TWCC:!1,ENABLE_SVC_DEFAULT_CODECS:["H264","VP8","VP9","AV1"],SVC:[],ENABLE_FULL_LINK_AV_SYNC:!1,SVC_MODE:null,ENABLE_AUT_FEEDBACK:!0,SVC_EXTENDED:["VP9"],ENABLE_JOIN_V4:!1,ENABLE_AP_COMPRESS:!0},Qa={MIN_FRAME_RATE:1,MAX_FRAME_RATE:30,MAX_THRESHOLD_FRAMERATE:30,BITRATE_MIN_THRESHOLD:100,BITRATE_MAX_THRESHOLD:100,MAX_SCALE:5,BWE_SCALE_UP_THRESHOLD:.6,BWE_SCALE_DOWN_THRESHOLD:.6,PERF_SCALE_UP_THRESHOLD:.7,PERF_SCALE_DOWN_THRESHOLD:.6,MOTION_RESOLUTION_FACTOR:.8,MOTION_BITRATE_FACTOR:.6,DETAIL_FRAMERATE_FACTOR:.8,DETAIL_BITRATE_FACTOR:.6,BALANCE_RESOLUTION_FACTOR:.9,BALANCE_FRAMERATE_FACTOR:.9,BALANCE_BITRATE_FACTOR:.6,OVERUSE_TIMES_THRESHOLD:10,UNDERUSE_TIMES_THRESHOLD:40},Ng="v4.24.5-0-g604b18ede-dirty(6/25/2026, 6:06:10 PM)",Ta={ENABLE_EVENT_REPORT:!0,UPLOAD_LOG:!1,ENABLE_AG_ADAPTATION:!0,FORCE_AG_HIGH_FRAMERATE:!1,FORCE_SUPPORT_AG_ADAPTATION:!1,ENCODER_CONFIG_LIMIT:{},CAMERA_CAPTURE_CONFIG:void 0,ENABLE_PRELOAD:!0,NEW_ICE_RESTART:!0,ICE_RESTART_INTERVAL:1e4,RESTART_SEQUENCE:["udp_tcp_relay","relay"],FIRST_TCP_CANDIDATE:!1,MAX_CONFIG_RETRY:10,ENABLE_CONFIG_RESTORE:!1,CONFIG_RESTORE_ERROR_API:["createClient","Client.join"],CONFIG_ERROR_MONITOR:["INVALID_OPERATION","UNEXPECTED_ERROR"],BLOCKED_CONFIG_MAX_TIME:864e5,FIRST_TCP_CANDIDATE_INTERVAL:1e3,TURN_DOMAIN:"edge.agora.io",TURN_DOMAINS:["edge.agora.io"],USE_TURN_IP:!0,NEW_TURN_MODE:4,NEW_FORCE_TURN:!1,USE_NEW_RENDER_FREEZE_TIME:!0,FLS_FALLBACK_TIMEOUT:3e4,RTE_DETAIL_REPORT_INTERVAL:6e4,ENCODE_EXCEPTION_TIMES:5,ENABLE_ENCODE_EXCEPTION:!0,ENCODE_EXCEPTION_VALIDATE_CODEC:["h264"],VIDEO_ENCODER_CONFIG_LIST:[{width:240,height:180},{width:320,height:240},{width:400,height:300},{width:480,height:360},{width:560,height:420},{width:640,height:480}],DELETE_NEQ_AFTER_USER_LEAVE:!0,UPDATE_RTP_CAP_IN_HOST:!1,IOS_BG_TAG:!0,IOS_AUTO_RESTART_BG_TAG:!0,IGNORE_UID_CHECK:!1,ENABLE_UP_SPS_PPS:!1,ENABLE_DOWN_SPS_PPS:!0,NO_EDGES_RETRY:!0,BUFFER_READY_FRAMES:3,FLS_SYNC_AV_PLAY_LIMIT:0,FLS_BUFFER_WAIT_TIME:1500,VOS_CONFIGURE:void 0,ENABLE_QUALITY_FALLBACK:!1,QUALITY_FALLBACK_REHEARSAL:!0,ENABLE_FLS_AV1_FIRST:!1,ENABLE_AP_MULTI_IP:!0,FLS_ENABLE_AV1_DETECT:!0,FLS_ENABLE_AV1_DECODE_DETECT:!0,ENABLE_SDP_ENDPOINT_LOG:!1,REMOTE_VIDEO_FREEZE_TIME_VERSION:2},Vi=wt(wt(wt(wt({},Ta),{},{PROCESS_ID:"",ENCRYPT_AES:!0,AREAS:["CHINA","GLOBAL"],WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN:["webrtc2-ap-web-1.agora.io","webrtc2-2.ap.sd-rtn.com"],SDP_ENDPOINT_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io","webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-web-2.ap.sd-rtn.com","cds-ap-web-3.agora.io","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-web-2.ap.sd-rtn.com","sua-ap-web-3.agora.io","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-ap-web-1.agora.io","uap-web-2.ap.sd-rtn.com","uap-ap-web-3.agora.io","uap-web-4.ap.sd-rtn.com"],LOG_UPLOAD_SERVER:"logservice.agora.io",EVENT_REPORT_DOMAIN:"statscollector-1.agora.io",EVENT_REPORT_BACKUP_DOMAIN:"web-2.statscollector.sd-rtn.com",GATEWAY_ADDRESS:[],GATEWAY_WSS_ADDRESS:"",LIVE_STREAMING_ADDRESS:"",HTTP_CONNECT_TIMEOUT:5e3,SIGNAL_REQUEST_TIMEOUT:1e4,REPORT_STATS:!0,NOT_REPORT_EVENT:[],PING_PONG_TIME_OUT:10,WEBSOCKET_TIMEOUT_MIN:1e4,EVENT_REPORT_SEND_INTERVAL:3e3,CONFIG_DISTRIBUTE_INTERVAL:3e5,ENABLE_CONFIG_DISTRIBUTE:!0,CANDIDATE_TIMEOUT:5e3,SHOW_REPORT_INVOKER_LOG:!1,SHOW_REPORT_USER_INVOKER_LOG:!0,JOIN_EXTEND:"",PUB_EXTEND:"",SUB_EXTEND:"",FORCE_TURN:!1,TURN_ENABLE_TCP:!0,TURN_ENABLE_UDP:!0,MAX_UPLOAD_CACHE:50,UPLOAD_CACHE_INTERVAL:2e3,AJAX_REQUEST_CONCURRENT:3,REPORT_APP_SCENARIO:void 0,GATEWAY_DOMAINS:["edge.agora.io","edge.sd-rtn.com"],CONNECT_GATEWAY_WITHOUT_DOMAIN:!1,WORKER_DOMAIN:"edge.agora.io",EVENT_REPORT_RETRY:!0,CHROME_FORCE_PLAN_B:!1,AUDIO_SOURCE_VOLUME_UPDATE_INTERVAL:400,AUDIO_SOURCE_AVG_VOLUME_DURATION:3e3,AUDIO_VOLUME_INDICATION_INTERVAL:2e3,VOLUME_VOICE_WEIGHT:10,GET_VOLUME_OF_MUTED_AUDIO_TRACK:!1,STATS_UPDATE_INTERVAL:250,NORMAL_EVENT_QUEUE_CAPACITY:100,CUSTOM_REPORT:!0,CUSTOM_REPORT_LIMIT:20,PROXY_SERVER_TYPE2:"webnginx-proxy.agora.io",PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com","webrtc-cloud-proxy.agora.io"],CUSTOM_PUB_ANSWER_MODIFIER:null,CUSTOM_SUB_ANSWER_MODIFIER:null,CUSTOM_PUB_OFFER_MODIFIER:null,CUSTOM_SUB_OFFER_MODIFIER:null,DSCP_TYPE:"high",REMOVE_NEW_CODECS:!0,FRAGEMENT_LENGTH:3,WEBSOCKET_COMPRESS:!1,SIMULCAST:!1,CHECK_VIDEO_VISIBLE_INTERVAL:3e4,CHECK_LOCAL_STATS_INTERVAL:250,PROFILE_SWITCH_INTERVAL:2e3,UNSUPPORTED_VIDEO_CODEC:[],ENUMERATE_DEVICES_INTERVAL:!1,ENUMERATE_DEVICES_INTERVAL_TIME:1e4,USE_NEW_TOKEN:!1,CLOSE_AFB_FOR_LOCAL_AP:!0,JOIN_MAX_CONCURRENCY:6,JOIN_WITH_FALLBACK_SIGNAL_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY:!0,JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE:!1,JOIN_GATEWAY_TRY_443PORT_DURATION:2e3,JOIN_GATEWAY_USE_443PORT_ONLY:!1,JOIN_GATEWAY_USE_DUAL_DOMAIN:!0,JOIN_GATEWAY_FALLBACK_PORT:443,USE_TURN_SERVER_OF_GATEWAY:!1,H264_PROFILE_LEVEL_ID:"",USE_NEW_LOG:!1,LOG_VERSION:3,MEDIA_DEVICE_CONSTRAINTS:null,ENCRYPT_PROXY_USERNAME_AND_PSW:!0,SDP_LOGGING:!1,CSP_DETECTED_HOSTNAME_LIST:["agora.io","sd-rtn.com"],REMOTE_AUDIO_TRACK_USES_WEB_AUDIO:!1,LOCAL_AUDIO_TRACK_USES_WEB_AUDIO:!1,BITRATE_ADAPTER_TYPE:"STANDARD_BITRATE",AI_DENOISER_PARAMETERS:{excludedLinks:[]},ADJUST_3A_FROM_PLUGINS:!0,RAISE_H264_BASELINE_PRIORITY:!0,FILTER_SEND_H264_BASELINE:!1,FIRST_H264_PROFILE_LEVEL_ID:"42001f",FIRST_PACKETIZATION_MODE:"",X_GOOGLE_START_BITRATE:void 0,NEW_REPORT_SERVER:!1,NEW_REPORT_SERVER_DOMAINS:["data-reporting.agora.io","data-reporting.agora.io"],VIDEO_INSPECT_WORKER_MESSAGE_LENGTH_LIMIT:3e5,VIDEO_INSPECT_INTERVAL_MINIMUM:1e3,VIDEO_INSPECT_QUALITY_RATIO:.9,VIDEO_INSPECT_WORKER_MANAGER_HOST:"edge.agora.io",VIDEO_INSPECT_WORKER_MANAGER_PORT:"",VIDEO_INSPECT_WORKER_MANAGER_WSS:"",VIDEO_INSPECT_WORKER_PORT:"",SHOW_VIDEO_INSPECT_WORKER_MESSAGE:!1,STATS_COLLECTOR_PORT:443,FORCE_TURN_TCP:!1,WEBAUDIO_INIT_OPTIONS:void 0,FILTER_VIDEO_FEC:!0,FILTER_AUDIO_FEC:!1,CHROME_DUAL_STREAM_USE_ENCODING:!0,DISABLE_DUAL_STREAM_USE_ENCODING:!1,EXTENSION_USAGE_UPLOAD_INTERVAL:1e4,ICE_RESTART:!0,FINGERPRINT:null,ENABLE_VIDEO_FRAME_CALLBACK:!0,VIDEO_FREEZE_DURATION:500,SPATIALIZER_PARAMETERS:{},UPLOAD_LOG_INTERVAL:3e3,UPLOAD_LOG_REQUEST_RETRY_INTERVAL:2e3,UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL:2e4,UPLOAD_LOG_TRY_INTERVAL_WHILE_OFF:5e3,UPLOAD_LOG_RETRY_INTERVAL_V1:1e4,UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1:200,UPLOAD_LOG_LENGTH_EACH_TIME:10,APP_TYPE:0,DISABLE_WEBAUDIO:!1,CHANNEL_MEDIA_RELAY_SERVERS:void 0,KEEP_LAST_FRAME:!0,FORWARD_P2P_CREATION:!0,SYNC_GROUP:!0,BLOCK_LOCAL_CLIENT:!1,ENABLE_AUDIO_TOPN:!1,ENABLE_AUDIO_METADATA:!1,ENABLE_AUDIO_PTS:!1,TOPN_SMOOTH_LEVEL:void 0,TOPN_NEW_SPEAKER_DELAY:void 0,TOPN_SWITCH_HOLD_MS:void 0,TOPN_AUDIO_GAIN:void 0,TOPN_SILENCE_THRESHOLD:250,AP_AREA:!0,ENABLE_ENCODED_TRANSFORM:!1,ENABLE_VIDEO_SEI:!1,IMAGE_MODERATION_WORKER_HOST:"edge.agora.io",IMAGE_MODERATION_WORKER_WSS:"",IMAGE_MODERATION_WORKER_MESSAGE_LENGTH_LIMIT:3e5,IMAGE_MODERATION_INTERVAL_MINIMUM:1e3,SHOW_IMAGE_MODERATION_WORKER_MESSAGE:!1,IMAGE_MODERATION_QUALITY_RATIO:.9,IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL:5e3,SHOW_GLOBAL_CLIENT_LIST:!1,DATASTREAM_MAX_RETRANSMITS:10,TCP_CANDIDATE_ONLY:!1,EXTERNAL_SIGNAL_REQUEST_TIMEOUT:3e3,SHOW_P2P_LOG:!1,MAX_P2P_TIMEOUT:3e4,P2P_TOKEN_INTERVAL:1e3,SHOW_DATASTREAM2_LOG:!1,RESTRICTION_SET_PLAYBACK_DEVICE:!0,USE_PURE_ENCRYPTION_MASTER_KEY:!1,ENABLE_AUDIO_RED:!1,OPUS_PTIME:void 0,AUDIO_DUPLICATE_NUM:void 0,ENABLE_ABSSENDTIME_AS_SENTTS:!0,ACCOUNT_REGISTER_RETRY_TIMEOUT:1,ACCOUNT_REGISTER_RETRY_RATIO:2,ACCOUNT_REGISTER_RETRY_TIMEOUT_MAX:6e4,ACCOUNT_REGISTER_RETRY_COUNT_MAX:1e5,AUDIO_CONTEXT:null,WEBCS_BACKUP_CONNECT_TIMEOUT:6e3,PLAYER_STATE_DEFER:2e3,SIGNAL_REQUEST_WATCH_INTERVAL:1e3,FILEPATH_LENMAX:255,DUALSTREAM_OPERATION_CHECK:!0,MEDIA_ELEMENT_EXISTS_DEPTH:3,SHIM_CANDIDATE:!1,LEAVE_MSG_TIMEOUT:2e3,STATS_FILTER:{transportId:!0,googTrackId:!0},FILTER_VIDEO_CODEC:[],SIGNAL_CHANNEL:0,TRANSMITTER_INITIAL_RTT:30,TRANSMITTER_INITIAL_RTO:30,TRANSMITTER_MAX_BATCH_ACK_COUNT:2,TRANSMITTER_MAX_RTO:500,DATACHANNEL_COMPRESS:!1,DC_JOIN_WITH_FAILBACK:4e3,DC_CONNECTION_TIMEOUT:2e3,DC_PINGPONG_INTERVAL:2e3,DC_DEBUG_LOG:!1,UNSUPPORTED_VIDEO_UPLINK_CODEC:[],UNSUPPORTED_VIDEO_DOWNLINK_CODEC:[],USE_NEW_NETWORK_CONFIG:!1,AUTO_RESET_AUDIO_ROUTE:!1,PLUGIN_INFO:[],OVERUSE_DETECTOR_PARAMS:Qa,CUSTOM_ADAPTATION_DEFAULT_MODE:"",HIDE_NO_POSTER:!1,AP_CACHE_NUM:10,AP_UPDATE_INTERVAL:12e4,AP_CACHE_LIFETIME:12e4,MAX_PRELOAD_ASYNC_LENGTH:3,DISABLE_SCREEN_SHARE_REMB:!1},XA),{},{USE_CANDIDATE_FROM_AP_DETAIL:!1,AP_REQUEST_DETAIL:void 0,ENABLE_ROLE_SELECT_EDGE:!1,CLIENT_ROLE_OPTIONS:void 0,REMOTE_VIDEO_STREAM_TYPE:void 0,COMPATIBLE_SDP_EXTENSION:["gdpr_forbidden"],LIMIT_BITRATE:void 0,EXPERIMENTS:{},USE_PUB_RTX:!0,USE_SUB_RTX:!0,ENABLE_DATASTREAM_2:!1,USE_XR:!0,ENABLE_PREALLOC_PC:!1,ENABLE_PRE_SUB:!1,ENABLE_SVC:!1,ENABLE_FORCE_HLS:!1,MAX_WEBAUDIO_VOLUME:300,ENABLE_VOS_FALLBACK:!1,ENABLE_FALLBACK_TO_HLS:!1,ENABLE_PRE_RENDER:!1,FORCE_DISABLE_AUTO_SUB:!1,ENABLE_PRE_SUB_WITH_PRE_PC:!0,PRE_USE_LOCAL_CODECS:!0},{INSTALL_ID:""}),{},{K_MIN_RENDER_DELAY:66,USE_STANDARD_BITRATE_DEFAULT:!1,VIDEO_NEW_BITRATE_RATIO:void 0,VIDEO_STANDARD_BITRATE_VERSION:2,BASELINE_MORE_H264_BITRATE_RATIO:1.1,IGNORE_RTC_DEVICE_CHECK:!1,FLS_AUTOPLAY_EMITS:!1,ENABLE_DUAL_STREAM_FLAG:!1,FORBID_MODIFY_LOCAL_OFFER_SDP:!1,RESERVE_MID_1_MLINE:!1,PRE_SUB_NUM:1,DC_IN_ESM:!0,PRE_PLAYOUT_DELAY_HINT:void 0});function Dn(t,s,c){var u,h,_;Et(u=Object.keys(Vi)).call(u,t)&&(!c&&Et(h=Object.keys($e)).call(h,t)||(Vi[t]=s,t!=="ENABLE_VIDEO_SEI"&&t!=="ENABLE_AUDIO_TOPN"&&t!=="ENABLE_AUDIO_METADATA"&&t!=="ENABLE_AUDIO_PTS"||s!==!0||(Vi.ENABLE_ENCODED_TRANSFORM=!0),t==="USE_NEW_NETWORK_CONFIG"&&s&&(_=!!s,Vi.USE_NEW_NETWORK_CONFIG=_,_&&(Vi.WEBCS_DOMAIN=["webrtc2-2.ap.sd-rtn.com"],Vi.WEBCS_DOMAIN_BACKUP_LIST=["webrtc2-4.ap.sd-rtn.com"],Vi.CDS_AP=["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],Vi.ACCOUNT_REGISTER=["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],Vi.EVENT_REPORT_DOMAIN="web-2.statscollector.sd-rtn.com",Vi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-1.agora.io",Vi.GATEWAY_DOMAINS=["edge.sd-rtn.com"])),t==="ENABLE_PRE_SUB"&&s&&(Vi.ENABLE_INSTANT_VIDEO=!0,Vi.ENABLE_PREALLOC_PC=!0),t==="ENABLE_SVC"&&s&&(Vi.ENABLE_AUT_CC=!0),t==="NEW_FORCE_TURN"&&s&&(Vi.NEW_TURN_MODE||(Vi.NEW_TURN_MODE=4))))}function de(t){if(t==="TURN_DOMAINS"){const s=Vi.TURN_DOMAINS;return Et(s).call(s,de("TURN_DOMAIN"))?s:[de("TURN_DOMAIN")].concat(s)}return Vi[t]}d4||(Vi.WEBCS_DOMAIN=["ap-web-1-oversea.agora.io","ap-web-1-north-america.agora.io"],Vi.WEBCS_DOMAIN_BACKUP_LIST=["ap-web-2-oversea.agora.io","ap-web-2-north-america.agora.io"],Vi.PROXY_CS=["proxy-ap-web-oversea.agora.io","proxy-ap-web-america.agora.io"],Vi.CDS_AP=["cds-ap-web-oversea.agora.io","cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],Vi.ACCOUNT_REGISTER=["sua-ap-web-oversea.agora.io","sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],Vi.UAP_AP=["uap-ap-web-oversea.agora.io","uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],Vi.LOG_UPLOAD_SERVER="logservice-oversea.agora.io",Vi.EVENT_REPORT_DOMAIN="statscollector-1-oversea.agora.io",Vi.EVENT_REPORT_BACKUP_DOMAIN="statscollector-2-oversea.agora.io",Vi.PROXY_SERVER_TYPE3="webrtc-cloud-proxy.agora.io",Vi.AREAS=["NORTH_AMERICA","OVERSEA"]);let Li=function(t){return t[t.REALTIME=1]="REALTIME",t}({});const $e={};var Fr=function(t){return t.SET_SESSION_ID="SET_SESSION_ID",t.SET_RTE_URL="SET_RTE_URL",t.SET_RTE_SID="SET_RTE_SID",t.SET_P2P_ID="SET_P2P_id",t.SET_DC_ID="SET_DC_id",t.SET_UID="SET_UID",t.SET_INT_UID="SET_INT_UID",t.SET_PUB_ID="SET_PUB_ID",t.SET_CLOUD_PROXY_SERVER_MODE="SET_CLOUD_PROXY_SERVER_MODE",t.KEY_METRIC_CLIENT_CREATED="KEY_METRIC_CLIENT_CREATED",t.KEY_METRIC_JOIN_START="KEY_METRIC_JOIN_START",t.KEY_METRIC_PRELOAD_START="KEY_METRIC_PRELOAD_START",t.KEY_METRIC_PRELOAD_END="KEY_METRIC_PRELOAD_END",t.KEY_METRIC_JOIN_END="KEY_METRIC_JOIN_END",t.KEY_METRIC_REQUEST_AP_START="KEY_METRIC_REQUEST_AP_START",t.KEY_METRIC_REQUEST_AP_END="KEY_METRIC_REQUEST_AP_END",t.KEY_METRIC_REQUEST_SUA_END="KEY_METRIC_REQUEST_SUA_END",t.KEY_METRIC_BEFORE_CONNECT="KEY_METRIC_BEFORE_CONNECT",t.KEY_METRIC_PEER_RECEIVER="KEY_METRIC_PEER_RECEIVER",t.KEY_METRIC_SIGNAL_CONNECTED="KEY_METRIC_SIGNAL_CONNECTED",t.KEY_METRIC_JOIN_REQ="KEY_METRIC_JOIN_REQ",t.KEY_METRIC_JOIN_REP="KEY_METRIC_JOIN_REP",t.KEY_METRIC_JOIN_GATEWAY_START="KEY_METRIC_JOIN_GATEWAY_START",t.KEY_METRIC_JOIN_GATEWAY_END="KEY_METRIC_JOIN_GATEWAY_END",t.KEY_METRIC_PEER_CONNECTION_START="KEY_METRIC_PEER_CONNECTION_START",t.KEY_METRIC_PEER_CONNECTION_END="KEY_METRIC_PEER_CONNECTION_END",t.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED="KEY_METRIC_FIRST_VIDEO_FRAME_DECODED",t.KEY_METRIC_DESCRIPTION_START="KEY_METRIC_DESCRIPTION_START",t.KEY_METRIC_ICE_CONNECTION_END="KEY_METRIC_ICE_CONNECTION_END",t.KEY_METRIC_SIGNAL_CHANNEL_OPEN="KEY_METRIC_SIGNAL_CHANNEL_OPEN",t.KEY_METRIC_PUBLISH="KEY_METRIC_PUBLISH",t.KEY_METRIC_SUBSCRIBE="KEY_METRIC_SUBSCRIBE",t.RECORD_JOIN_CHANNEL_SERVICE="RECORD_JOIN_CHANNEL_SERVICE",t.RESET_JOIN_CHANNEL_SERVICE_RECORDS="RESET_JOIN_CHANNEL_SERVICE_RECORDS",t.RESET_KEY_METRICS="RESET_KEY_METRICS",t.RESET_FIRST_VIDEO_FRAME_DECODED="RESET_FIRST_VIDEO_FRAME_DECODED",t.SET_USE_P2P="SET_USE_P2P",t.SET_TRANSPORT_TYPE="SET_TRANSPORT_TYPE",t}(Fr||{});let Qn=function(t){return t.h264="h264",t.h265="h265",t.vp8="vp8",t.vp9="vp9",t.av1="av1",t}({});(function(t){t.opus="opus",t.pcma="pcma",t.pcmu="pcmu",t.g722="g722"})({});const u4=128,UC=96,g4=1e3,ch=10;let vc=0;var kn=(()=>{var t={8:(u,h,_)=>{_.r(h),_.d(h,{Parser:()=>st,Printer:()=>ui,parse:()=>mt,print:()=>Gt});const B=` -`,Q="".concat("\r").concat(B),T=" ";let D;function O(at){return at>="0"&&at<="9"}function P(at){return at>="!"&&at<="~"}function U(at){return P(at)||at>="€"&&at<="ÿ"}function H(at){return at==="!"||at>="#"&&at<="'"||at>="*"&&at<="+"||at>="-"&&at<="."||at>="0"&&at<="9"||at>="A"&&at<="Z"||at>="^"&&at<="~"}function $(at){return at>="1"&&at<="9"}function Z(at){return at>="A"&&at<="Z"||at>="a"&&at<="z"}function te(at){return at==="d"||at==="h"||at==="m"||at==="s"}function se(at){return at>""&&at<" "||at>"\v"&&at<"\f"||at>""&&at<"ÿ"}function ge(at){return Z(at)||O(at)||at==="+"||at==="/"}function me(at){return O(at)||Z(at)||at==="+"||at==="/"||at==="-"||at==="_"}function Qe(at){return Z(at)||O(at)||at==="+"||at==="/"}function Oe(at,ie){var Te=Object.keys(at);if(Object.getOwnPropertySymbols){var ke=Object.getOwnPropertySymbols(at);ie&&(ke=ke.filter(function(_t){return Object.getOwnPropertyDescriptor(at,_t).enumerable})),Te.push.apply(Te,ke)}return Te}function we(at){for(var ie=1;ie=0&&_t<=255)return ke;throw new Error("Invalid decimal uchar")}consumeIP6Address(ie,Te){let ke=this.consumeHexpart(ie,Te);return ie[ke]===":"&&(ke+=1,ke=this.consumeIP4Address(ie,ke)),ke}consumeHexpart(ie,Te){let ke=Te;if(ie[ke]===":"&&ie[ke+1]===":"){ke+=2;try{ke=this.consumeHexseq(ie,ke)}catch{}return ke}if(ke=this.consumeHexseq(ie,ke),ie[ke]===":"&&ie[ke+1]===":"){ke+=2;try{ke=this.consumeHexseq(ie,ke)}catch{}return ke}return ke}consumeHexseq(ie,Te){let ke=Te;for(;ke=this.consumeHex4(ie,ke),ie[ke]===":"&&ie[ke+1]!==":";)ke+=1;return ke}consumeHex4(ie,Te){let ke=0;for(;ke<4;ke++)if(!((_t=ie[Te+ke])>="0"&&_t<="9"||_t>="a"&&_t<="f"||_t>="A"&&_t<="F")){if(ke===0)throw new Error("Invalid hex 4");break}var _t;return Te+ke}consumeFQDN(ie,Te){let ke=Te;for(;O(ie[ke])||Z(ie[ke])||ie[ke]==="-"||ie[ke]===".";)ke+=1;if(ke-Te<4)throw new Error("Invalid FQDN");return ke}consumeExtnAddr(ie,Te){return this.consumeOneOrMore(ie,Te,U)}consumeMulticastAddress(ie,Te,ke){switch(ke){case"IP4":case"ip4":return this.consumeIP4MulticastAddress(ie,Te);case"IP6":case"ip6":return this.consumeIP6MulticastAddress(ie,Te);default:try{return this.consumeFQDN(ie,Te)}catch{return this.consumeExtnAddr(ie,Te)}}}consumeIP6MulticastAddress(ie,Te){const ke=this.consumeHexpart(ie,Te);return ie[ke]==="/"?this.consumeInteger(ie,ke+1):ke}consumeIP4MulticastAddress(ie,Te){let ke=Te+3;const _t=ie.slice(Te,ke),Ar=parseInt(_t);if(Ar<224||Ar>239)throw new Error("Invalid IP4 multicast address, IPv4 multicast addresses may be in the range 224.0.0.0 to 239.255.255.255.");for(let ni=0;ni<3;ni++){if(ie[ke]!==".")throw new Error("Invalid IP4 multicast address.");ke+=1,ke=this.consumeDecimalUChar(ie,ke)}return ie[ke]==="/"&&(ke+=1),ke=this.consumeTTL(ie,ke),ie[ke]==="/"&&(ke=this.consumeInteger(ie,ke)),ke}consumeInteger(ie,Te){if(!$(ie[Te]))throw new Error("Invalid integer.");for(Te+=1;O(ie[Te]);)Te+=1;return Te}consumeTTL(ie,Te){if(ie[Te]==="0")return Te+1;if(!$(ie[Te]))throw new Error("Invalid TTL.");Te+=1;for(let ke=0;ke<2&&O(ie[Te]);ke++)Te+=1;return Te}consumeToken(ie,Te){return this.consumeOneOrMore(ie,Te,H)}consumeTime(ie,Te){let ke=Te;if(ie[ke]==="0")return ke+1;for($(ie[ke])&&(ke+=1);O(ie[ke]);)ke++;if(ke-Te<10)throw new Error("Invalid time");return ke}consumeAddress(ie,Te){return this.consumeTill(ie,Te,T)}consumeTypedTime(ie,Te){let ke=Te;return ke=this.consumeOneOrMore(ie,ke,O),te(ie[ke])?ke+1:ke}consumeRepeatInterval(ie,Te){if(!$(ie[Te]))throw new Error("Invalid repeat interval");for(Te+=1;O(ie[Te]);)Te+=1;return te(ie[Te])&&(Te+=1),Te}consumePort(ie,Te){return this.consumeOneOrMore(ie,Te,O)}consume(ie,Te,ke){for(let _t=0;_t=ie.length)throw new Error("consume exceeding value length");if(ie[Te+_t]!==ke[_t])throw new Error("consume ".concat(ke," failed at ").concat(_t))}return Te+ke.length}consumeTill(ie,Te,ke){let _t=Te;for(;_t!!Ga(Ec).call(Ec)).map(this.parseLine),this.currentLine=0;const ke=this.parseVersion(),_t=this.parseOrigin(),Ar=this.parseSessionName(),ni=this.parseInformation(),Ds=this.parseUri(),Wo=this.parseEmail(),Nl=this.parsePhone(),a1=this.parseConnection(),_s=this.parseBandWidth(),c1=this.parseTimeFields(),Id=this.parseKey(),UA=this.parseSessionAttribute(),xs=this.parseMediaDescription();if(this.currentLine!==this.records.length)throw new Error("parsing failed, non exhaustive sdp lines.");return{version:ke,origin:_t,sessionName:Ar,information:ni,uri:Ds,emails:Wo,phones:Nl,connection:a1,bandwidths:_s,timeFields:c1,key:Id,attributes:UA,mediaDescriptions:xs}}getCurrentRecord(){const ie=this.records[this.currentLine];if(!ie)throw new Error("Record doesn't exit.");return ie}probeEOL(ie){for(let Te=0;Te=.");const ke=ie[0];if(ie[1]!=="=")throw new Error('Invalid sdp line, should be a single character followed by an "=" sign.');return{type:ke,value:ie.slice(2),line:Te,cur:0}}parseSessionAttribute(){const ie=new lr;for(;this.currentLineH(_t)&&_t!==":"),_cur:0};Te.value[Te.cur]===":"&&(Te.cur+=1,ke.attValue=this.extractOneOrMore(Te,se)),ie.parse(ke),this.currentLine++}return ie.digest()}parseMediaAttributes(ie){const Te=new ft(ie);for(;this.currentLineH(Ar)&&Ar!==":"),_cur:0};ke.value[ke.cur]===":"&&(ke.cur+=1,_t.attValue=this.extractOneOrMore(ke,se)),Te.parse(_t),this.currentLine++}return Te.digest()}parseKey(){const ie=this.getCurrentRecord();if(ie.type===D.KEY){if(ie.value==="prompt"||ie.value==="clear:"||ie.value==="base64:"||ie.value==="uri:")return ie.value;throw this.currentLine++,new Error("Invalid key.")}}parseZone(){const ie=this.getCurrentRecord();if(ie.type===D.ZONE_ADJUSTMENTS){const Te=[];for(;;)try{const ke=this.extract(ie,this.consumeTime);this.consumeSpaceForRecord(ie);let _t=!1;ie.value[ie.cur]==="-"&&(_t=!0,ie.cur+=1);const Ar=this.extract(ie,this.consumeTypedTime);Te.push({time:ke,typedTime:Ar,back:_t})}catch{break}if(Te.length===0)throw new Error("Invalid zone adjustments");return this.currentLine++,Te}return[]}parseRepeat(){const ie=[];for(;;){const Te=this.getCurrentRecord();if(Te.type!==D.REPEAT)break;{const ke=this.extract(Te,this.consumeRepeatInterval),_t=this.parseTypedTime(Te);ie.push({repeatInterval:ke,typedTimes:_t}),this.currentLine++}}return ie}parseTypedTime(ie){const Te=[];for(;;)try{this.consumeSpaceForRecord(ie),Te.push(this.extract(ie,this.consumeTypedTime))}catch{break}if(Te.length===0)throw new Error("Invalid typed time.");return Te}parseTime(){const ie=this.getCurrentRecord(),Te=this.extract(ie,this.consumeTime);this.consumeSpaceForRecord(ie);const ke=this.extract(ie,this.consumeTime);return this.currentLine++,{startTime:Te,stopTime:ke}}parseBandWidth(){const ie=[];for(;this.currentLine2?ke-2:0),Ar=2;ArWo)throw new Error("error in length, should be less or equal than ".concat(Wo," characters."));return ie._cur=_t,Ar}consumeAttributeSpace(ie){if(ie.attValue[ie._cur]!==T)throw new Error("Invalid space at ".concat(ie._cur,"."));ie._cur+=1}extract(ie,Te){if(!ie.attValue)throw new Error("Nothing to extract from attValue.");for(var ke=arguments.length,_t=new Array(ke>2?ke-2:0),Ar=2;Ar=ie.attValue.length}peekChar(ie){if(!ie.attValue)throw new Error;return ie.attValue[ie._cur]}peek(ie,Te){if(!ie.attValue)throw new Error;for(let ke=0;keni!==T&&se(ni));ke.push({name:_t,value:Ar})}this.attributes.identities.push({assertionValue:Te,extensions:ke})}parseMsidSemantic(ie){this.peekChar(ie)===T&&this.consumeAttributeSpace(ie);const Te={semantic:this.extract(ie,this.consumeToken),identifierList:[]};for(;;){try{this.consumeAttributeSpace(ie)}catch{break}if(this.peekChar(ie)==="*"){this.extract(ie,this.consume,"*"),Te.applyForAll=!0;break}{const ke=this.extract(ie,this.consumeTill,T);Te.identifierList.push(ke)}}this.attributes.msidSemantic=Te}}class ft extends Xt{constructor(ie){super(),Ne(this,"attributes",void 0),ie.protos.indexOf("RTP")!==-1||ie.protos.indexOf("rtp"),this.attributes={unrecognized:[],candidates:[],extmaps:[],fingerprints:[],imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[]}}parse(ie){if(this.digested)throw new Error("already digested");try{switch(ie.attField){case"extmap":this.parseExtmap(ie);break;case"setup":this.parseSetup(ie);break;case"ice-ufrag":this.parseIceUfrag(ie);break;case"ice-pwd":this.parseIcePwd(ie);break;case"ice-options":this.parseIceOptions(ie);break;case"candidate":this.parseCandidate(ie);break;case"remote-candidate":this.parseRemoteCandidate(ie);break;case"end-of-candidates":this.parseEndOfCandidates();break;case"fingerprint":this.parseFingerprint(ie);break;case"rtpmap":this.parseRtpmap(ie);break;case"ptime":this.parsePtime(ie);break;case"maxptime":this.parseMaxPtime(ie);break;case"sendrecv":case"recvonly":case"sendonly":case"inactive":this.parseDirection(ie);break;case"ssrc":this.parseSSRC(ie);break;case"fmtp":this.parseFmtp(ie);break;case"rtcp-fb":this.parseRtcpFb(ie);break;case"rtcp-mux":this.parseRTCPMux();break;case"rtcp-mux-only":this.parseRTCPMuxOnly();break;case"rtcp-rsize":this.parseRTCPRsize();break;case"rtcp":this.parseRTCP(ie);break;case"mid":this.parseMid(ie);break;case"msid":this.parseMsid(ie);break;case"imageattr":this.parseImageAttr(ie);break;case"rid":this.parseRid(ie);break;case"simulcast":this.parseSimulcast(ie);break;case"sctp-port":this.parseSctpPort(ie);break;case"max-message-size":this.parseMaxMessageSize(ie);break;case"ssrc-group":this.parseSSRCGroup(ie);break;default:ie.ignored=!0,this.attributes.unrecognized.push(ie)}}catch(Te){throw console.error("parsing media attribute ".concat(ie.attField,' error, "a=').concat(ie.attField,":").concat(ie.attValue,'"')),Te}if(!ie.ignored&&ie.attValue&&!this.atEnd(ie))throw new Error("attribute parsing error")}parseCandidate(ie){const Te=this.extractOneOrMore(ie,ge,[1,32]);this.consumeAttributeSpace(ie);const ke=this.extractOneOrMore(ie,O,[1,5]);this.consumeAttributeSpace(ie);const _t=this.extract(ie,this.consumeToken);this.consumeAttributeSpace(ie);const Ar=this.extractOneOrMore(ie,O,[1,10]);this.consumeAttributeSpace(ie);const ni=this.extract(ie,this.consumeAddress);this.consumeAttributeSpace(ie);const Ds=this.extract(ie,this.consumePort);this.consumeAttributeSpace(ie),this.extract(ie,this.consume,"typ"),this.consumeAttributeSpace(ie);const Wo={foundation:Te,componentId:ke,transport:_t,priority:Ar,connectionAddress:ni,port:Ds,type:this.extract(ie,this.consumeToken),extension:{}};for(this.peek(ie," raddr")&&(this.extract(ie,this.consume," raddr"),this.consumeAttributeSpace(ie),Wo.relAddr=this.extract(ie,this.consumeAddress)),this.peek(ie," rport")&&(this.extract(ie,this.consume," rport"),this.consumeAttributeSpace(ie),Wo.relPort=this.extract(ie,this.consumePort));this.peekChar(ie)===T;){this.consumeAttributeSpace(ie);const Nl=this.extract(ie,this.consumeToken);this.consumeAttributeSpace(ie),Wo.extension[Nl]=this.extractOneOrMore(ie,P)}this.attributes.candidates.push(Wo)}parseRemoteCandidate(ie){const Te=[];for(;;){const ke=this.extractOneOrMore(ie,O,[1,5]);this.consumeAttributeSpace(ie);const _t=this.extract(ie,this.consumeAddress);this.consumeAttributeSpace(ie);const Ar=this.extract(ie,this.consumePort);Te.push({componentId:ke,connectionAddress:_t,port:Ar});try{this.consumeAttributeSpace(ie)}catch{break}}this.attributes.remoteCandidatesList.push(Te)}parseEndOfCandidates(){if(this.attributes.endOfCandidates)throw new Error("must be only one line of end-of-candidates");this.attributes.endOfCandidates=!0}parseRtpmap(ie){const Te=this.extract(ie,this.consumeToken);this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill,"/");this.extract(ie,this.consume,"/");const _t={encodingName:ke,clockRate:this.extractOneOrMore(ie,O)};this.atEnd(ie)||this.peekChar(ie)!=="/"||(this.extract(ie,this.consume,"/"),_t.encodingParameters=parseInt(this.extract(ie,this.consumeTill),10));const Ar=this.attributes.payloads.find(ni=>ni.payloadType===parseInt(Te,10));Ar?Ar.rtpMap=_t:this.attributes.payloads.push({payloadType:parseInt(Te,10),rtpMap:_t,rtcpFeedbacks:[]})}parsePtime(ie){if(this.attributes.ptime)throw new Error("must be only one line of ptime");this.attributes.ptime=this.extract(ie,this.consumeTill)}parseMaxPtime(ie){if(this.attributes.maxPtime)throw new Error("must be only one line of ptime");this.attributes.maxPtime=this.extract(ie,this.consumeTill)}parseDirection(ie){if(this.attributes.direction)throw new Error("must be only one line of direction info");this.attributes.direction=ie.attField}parseSSRC(ie){const Te=this.extractOneOrMore(ie,O);this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill,":");let _t;this.peekChar(ie)===":"&&(this.extract(ie,this.consume,":"),_t=this.extract(ie,this.consumeTill));const Ar=this.attributes.ssrcs.find(ni=>ni.ssrcId===parseInt(Te,10));Ar?Ar.attributes[ke]=_t:this.attributes.ssrcs.push({ssrcId:parseInt(Te,10),attributes:{[ke]:_t}})}parseFmtp(ie){const Te=this.extract(ie,this.consumeTill,T);this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill),_t={};ke.split(";").forEach(ni=>{let Ds=ir(ni.split("="),2),Wo=Ds[0],Nl=Ds[1];Wo=Ga(Wo).call(Wo);const a1=typeof Nl=="string"?Ga(Nl).call(Nl):null;typeof Wo=="string"&&Wo.length>0&&(_t[Wo]=a1)});const Ar=this.attributes.payloads.find(ni=>ni.payloadType===parseInt(Te,10));Ar?Ar.fmtp={parameters:_t}:this.attributes.payloads.push({payloadType:parseInt(Te,10),rtcpFeedbacks:[],fmtp:{parameters:_t}})}parseFmtParameters(ie){const Te={},ke=this.extract(ie,this.consumeTill,"=");ie._cur++;const _t=this.extract(ie,this.consumeTill,";");for(Te[ke]=_t;ie.attValue[ie._cur]===";";){const Ar=this.extract(ie,this.consumeTill,"=");ie._cur++;const ni=this.extract(ie,this.consumeTill,";");Te[Ar]=ni}return Te}parseRtcpFb(ie){let Te="";Te=this.peekChar(ie)==="*"?this.extract(ie,this.consume,"*"):this.extract(ie,this.consumeTill,T),this.consumeAttributeSpace(ie);const ke=this.extract(ie,this.consumeTill,T);let _t;if(ke==="trr-int")_t={type:ke,interval:this.extract(ie,this.consumeTill)};else{const Ar={type:ke};this.peekChar(ie)===T&&(this.consumeAttributeSpace(ie),Ar.parameter=this.extract(ie,this.consumeToken),this.peekChar(ie)===T&&(Ar.additional=this.extract(ie,this.consumeTill))),_t=Ar}if(Te==="*")this.attributes.rtcpFeedbackWildcards.push(_t);else{const Ar=this.attributes.payloads.find(ni=>ni.payloadType===parseInt(Te,10));Ar?Ar.rtcpFeedbacks.push(_t):this.attributes.payloads.push({payloadType:parseInt(Te,10),rtcpFeedbacks:[_t]})}}parseRTCPMux(){if(this.attributes.rtcpMux)throw new Error("must be single line of rtcp-mux");this.attributes.rtcpMux=!0}parseRTCPMuxOnly(){if(this.attributes.rtcpMuxOnly)throw new Error("must be single line of rtcp-only");this.attributes.rtcpMuxOnly=!0}parseRTCPRsize(){if(this.attributes.rtcpRsize)throw new Error("must be single line of rtcp-rsize");this.attributes.rtcpRsize=!0}parseRTCP(ie){if(this.attributes.rtcp)throw new Error("must be single line of rtcp");const Te={port:this.extract(ie,this.consumePort)};this.peekChar(ie)===T&&(this.consumeAttributeSpace(ie),Te.netType=this.extractOneOrMore(ie,H),this.consumeAttributeSpace(ie),Te.addressType=this.extractOneOrMore(ie,H),this.consumeAttributeSpace(ie),Te.address=this.extract(ie,this.consumeAddress)),this.attributes.rtcp=Te}parseMsid(ie){const Te={id:this.extractOneOrMore(ie,H,[1,64])};this.peekChar(ie)===T&&(this.consumeAttributeSpace(ie),Te.appdata=this.extractOneOrMore(ie,H,[1,64])),this.attributes.msids.push(Te)}parseImageAttr(ie){this.attributes.imageattr.push(ie.attValue)}parseRid(ie){const Te=this.extractOneOrMore(ie,_t=>Z(_t)||O(_t)||_t==="_"||_t==="-");this.consumeAttributeSpace(ie);const ke={id:Te,direction:this.extract(ie,this.consumeToken),params:[]};if(this.peekChar(ie)===T){if(this.consumeAttributeSpace(ie),this.peek(ie,"pt=")){this.extract(ie,this.consume,"pt=");const _t=[];for(;;){const Ar=this.extract(ie,this.consumeToken);_t.push(Ar);try{this.extract(ie,this.consume,",")}catch{break}}ke.payloads=_t,this.peekChar(ie)===T&&this.extract(ie,this.consume,T)}for(;;){const _t=this.extract(ie,this.consumeToken);switch(_t){case"depend":{const Ar={type:_t,rids:this.extract(ie,this.consume,"=").split(",")};ke.params.push(Ar);break}default:{const Ar={type:_t};this.peekChar(ie)==="="&&(this.extract(ie,this.consume,"="),Ar.val=this.extract(ie,this.consumeTill,";")),ke.params.push(Ar)}}try{this.extract(ie,this.consume,";")}catch{break}}}this.attributes.rids.push(ke)}parseSimulcast(ie){if(this.attributes.simulcast)throw new Error("must be single line of simulcast");this.attributes.simulcast=ie.attValue,this.extract(ie,this.consumeTill)}parseSctpPort(ie){this.attributes.sctpPort=this.extractOneOrMore(ie,O,[1,5])}parseMaxMessageSize(ie){this.attributes.maxMessageSize=this.extractOneOrMore(ie,O,[1,void 0])}digest(){return this.digested=!0,this.attributes}parseMid(ie){this.attributes.mid=this.extract(ie,this.consumeToken)}parseSSRCGroup(ie){const Te=this.extract(ie,this.consumeToken),ke=[];for(;;)try{this.consumeAttributeSpace(ie);const _t=this.extract(ie,this.consumeInteger);ke.push(parseInt(_t,10))}catch{break}this.attributes.ssrcGroups.push({semantic:Te,ssrcIds:ke})}}function Ir(at,ie,Te){return ie in at?Object.defineProperty(at,ie,{value:Te,enumerable:!0,configurable:!0,writable:!0}):at[ie]=Te,at}class ui{constructor(){Ir(this,"eol",Q)}print(ie,Te){let ke="";return Te&&(this.eol=Te),ke+=this.printVersion(ie.version),ke+=this.printOrigin(ie.origin),ke+=this.printSessionName(ie.sessionName),ke+=this.printInformation(ie.information),ke+=this.printUri(ie.uri),ke+=this.printEmail(ie.emails),ke+=this.printPhone(ie.phones),ke+=this.printConnection(ie.connection),ke+=this.printBandwidth(ie.bandwidths),ke+=this.printTimeFields(ie.timeFields),ke+=this.printKey(ie.key),ke+=this.printSessionAttributes(ie.attributes),ke+=this.printMediaDescription(ie.mediaDescriptions),ke}printVersion(ie){return"v=".concat(ie).concat(this.eol)}printOrigin(ie){return"o=".concat(ie.username," ").concat(ie.sessId," ").concat(ie.sessVersion," ").concat(ie.nettype," ").concat(ie.addrtype," ").concat(ie.unicastAddress).concat(this.eol)}printSessionName(ie){return ie?"s=".concat(ie).concat(this.eol):""}printInformation(ie){return ie?"i=".concat(ie).concat(this.eol):""}printUri(ie){return ie?"u=".concat(ie).concat(this.eol):""}printEmail(ie){let Te="";for(const ke of ie)Te+="e=".concat(ke).concat(this.eol);return Te}printPhone(ie){let Te="";for(const ke of ie)Te+="e=".concat(ke).concat(this.eol);return Te}printConnection(ie){return ie?"c=".concat(ie.nettype," ").concat(ie.addrtype," ").concat(ie.address).concat(this.eol):""}printBandwidth(ie){let Te="";for(const ke of ie)Te+="b=".concat(ke.bwtype,":").concat(ke.bandwidth).concat(this.eol);return Te}printTimeFields(ie){let Te="";for(const ke of ie){Te+="t=".concat(ke.time.startTime," ").concat(ke.time.startTime).concat(this.eol);for(const _t of ke.repeats)Te+="r=".concat(_t.repeatInterval," ").concat(_t.typedTimes.join(" ")).concat(this.eol);ke.zoneAdjustments&&(Te+="z=",Te+="z=".concat(ke.zoneAdjustments.map(_t=>"".concat(_t.time," ").concat(_t.back?"-":""," ").concat(_t.typedTime)).join(" ")).concat(this.eol),Te+=this.eol)}return Te}printKey(ie){return ie?"k=".concat(ie).concat(this.eol):""}printAttributes(ie){let Te="";for(const ke of ie)Te+="a=".concat(ke.attField).concat(ke.attValue?":".concat(ke.attValue):"").concat(this.eol);return Te}printMediaDescription(ie){let Te="";for(const ke of ie)Te+=this.printMedia(ke.media),Te+=this.printInformation(ke.information),Te+=this.printConnections(ke.connections),Te+=this.printBandwidth(ke.bandwidths),Te+=this.printKey(ke.key),Te+=this.printMediaAttributes(ke);return Te}printConnections(ie){let Te="";for(const ke of ie)Te+=this.printConnection(ke);return Te}printMedia(ie){return"m=".concat(ie.mediaType," ").concat(ie.port," ").concat(ie.protos.join("/")," ").concat(ie.fmts.join(" ")).concat(this.eol)}printSessionAttributes(ie){return new Ki(this.eol).print(ie)}printMediaAttributes(ie){return new it(this.eol).print(ie)}}class Nr{constructor(ie){Ir(this,"eol",void 0),this.eol=ie}printIceUfrag(ie){return ie===void 0?"":"a=ice-ufrag:".concat(ie).concat(this.eol)}printIcePwd(ie){return ie===void 0?"":"a=ice-pwd:".concat(ie).concat(this.eol)}printIceOptions(ie){return ie===void 0?"":"a=ice-options:".concat(ie.join(T)).concat(this.eol)}printFingerprints(ie){return ie.length>0?ie.map(Te=>"a=fingerprint:".concat(Te.hashFunction).concat(T).concat(Te.fingerprint)).join(this.eol)+this.eol:""}printExtmap(ie){return ie.map(Te=>"a=extmap:".concat(Te.entry).concat(Te.direction?"/".concat(Te.direction):"").concat(T).concat(Te.extensionName).concat(Te.extensionAttributes?"".concat(T).concat(Te.extensionAttributes):"").concat(this.eol)).join("")}printSetup(ie){return ie===void 0?"":"a=setup:".concat(ie).concat(this.eol)}printUnrecognized(ie){return ie.map(Te=>"a=".concat(Te.attField).concat(Te.attValue?":".concat(Te.attValue):"").concat(this.eol)).join("")}}class Ki extends Nr{print(ie){let Te="";return Te+=this.printGroups(ie.groups),Te+=this.printMsidSemantic(ie.msidSemantic),Te+=this.printIceLite(ie.iceLite),Te+=this.printIceUfrag(ie.iceUfrag),Te+=this.printIcePwd(ie.icePwd),Te+=this.printIceOptions(ie.iceOptions),Te+=this.printFingerprints(ie.fingerprints),Te+=this.printSetup(ie.setup),Te+=this.printTlsId(ie.tlsId),Te+=this.printIdentity(ie.identities),Te+=this.printExtmap(ie.extmaps),Te+=this.printUnrecognized(ie.unrecognized),Te}printGroups(ie){let Te="";return ie.length>0&&(Te+=ie.map(ke=>"a=group:".concat(ke.semantic).concat(ke.identificationTag.map(_t=>"".concat(T).concat(_t)).join("")).concat(this.eol)).join("")),Te}printIceLite(ie){return ie===void 0?"":"a=ice-lite"+this.eol}printTlsId(ie){return ie?"a=tls-id:".concat(ie).concat(this.eol):""}printIdentity(ie){return ie.length===0?"":ie.map(Te=>"a=identity:".concat(Te.assertionValue).concat(Te.extensions.map(ke=>"".concat(T).concat(ke.name).concat(ke.value?"=".concat(ke.value):"")))).join(this.eol)+this.eol}printMsidSemantic(ie){if(!ie)return"";let Te="a=msid-semantic:".concat(ie.semantic);return ie.applyForAll?Te+="".concat(T,"*"):ie.identifierList.length>0&&(Te+=ie.identifierList.map(ke=>"".concat(T).concat(ke))),Te+this.eol}}class it extends Nr{print(ie){const Te=ie.attributes;let ke="";return ke+=this.printRTCP(Te.rtcp),ke+=this.printIceUfrag(Te.iceUfrag),ke+=this.printIcePwd(Te.icePwd),ke+=this.printIceOptions(Te.iceOptions),ke+=this.printCandidates(Te.candidates),ke+=this.printRemoteCandidatesList(Te.remoteCandidatesList),ke+=this.printEndOfCandidates(Te.endOfCandidates),ke+=this.printFingerprints(Te.fingerprints),ke+=this.printSetup(Te.setup),ke+=this.printMid(Te.mid),ke+=this.printExtmap(Te.extmaps),ke+=this.printRTPRelated(Te),ke+=this.printPtime(Te.ptime),ke+=this.printMaxPtime(Te.maxPtime),ke+=this.printDirection(Te.direction),ke+=this.printSSRCGroups(Te.ssrcGroups),ke+=this.printSSRC(Te.ssrcs),ke+=this.printRTCPMux(Te.rtcpMux),ke+=this.printRTCPMuxOnly(Te.rtcpMuxOnly),ke+=this.printRTCPRsize(Te.rtcpRsize),ke+=this.printMSId(Te.msids),ke+=this.printImageattr(Te.imageattr),ke+=this.printRid(Te.rids),ke+=this.printSimulcast(Te.simulcast),ke+=this.printSCTPPort(Te.sctpPort),ke+=this.printMaxMessageSize(Te.maxMessageSize),ke+=this.printUnrecognized(Te.unrecognized),ke}printCandidates(ie){return ie.map(Te=>"a=candidate:".concat(Te.foundation).concat(T).concat(Te.componentId).concat(T).concat(Te.transport).concat(T).concat(Te.priority).concat(T).concat(Te.connectionAddress).concat(T).concat(Te.port).concat(T,"typ").concat(T).concat(Te.type).concat(Te.relAddr?"".concat(T,"raddr").concat(T).concat(Te.relAddr):"").concat(Te.relPort?"".concat(T,"rport").concat(T).concat(Te.relPort):"").concat(Object.keys(Te.extension).map(ke=>"".concat(T).concat(ke).concat(T).concat(Te.extension[ke])).join("")).concat(this.eol)).join("")}printRemoteCandidatesList(ie){return ie.map(Te=>"a=remote-candidates:".concat(Te.join(T)).concat(this.eol)).join("")}printEndOfCandidates(ie){return ie===void 0?"":"a=end-of-candidates"+this.eol}printRTPRelated(ie){if(!ie.payloads)return"";const Te=ie.payloads;let ke="";ke+=ie.rtcpFeedbackWildcards.map(_t=>this.printRTCPFeedback("*",_t)).join("");for(const _t of Te)ke+=this.printRtpMap(_t.payloadType,_t.rtpMap),ke+=this.printFmtp(_t.payloadType,_t.fmtp),ke+=_t.rtcpFeedbacks.map(Ar=>this.printRTCPFeedback(_t.payloadType,Ar)).join("");return ke}printFmtp(ie,Te){if(!Te)return"";const ke=Object.keys(Te.parameters);return ke.length===1&&Te.parameters[ke[0]]===null?"a=fmtp:".concat(ie).concat(T).concat(ke[0]).concat(this.eol):"a=fmtp:".concat(ie).concat(T).concat(Object.keys(Te.parameters).map(_t=>"".concat(_t,"=").concat(Te.parameters[_t])).join(";")).concat(this.eol)}printRtpMap(ie,Te){return Te?"a=rtpmap:".concat(ie).concat(T).concat(Te.encodingName,"/").concat(Te.clockRate).concat(Te.encodingParameters?"/".concat(Te.encodingParameters):"").concat(this.eol):""}printRTCPFeedback(ie,Te){let ke="a=rtcp-fb:".concat(ie).concat(T),_t=Te;return _t.type==="trr-int"?ke+="ttr-int".concat(T).concat(_t.interval):(ke+="".concat(_t.type),_t.parameter&&(ke+="".concat(T).concat(_t.parameter),_t.additional&&(ke+="".concat(T).concat(_t.additional)))),ke+this.eol}printPtime(ie){return ie===void 0?"":"a=ptime:".concat(ie).concat(this.eol)}printMaxPtime(ie){return ie===void 0?"":"a=maxptime:".concat(ie).concat(this.eol)}printDirection(ie){return ie===void 0?"":"a=".concat(ie).concat(this.eol)}printSSRC(ie){return ie.map(Te=>Object.keys(Te.attributes).map(ke=>"a=ssrc:".concat(Te.ssrcId.toString(10)).concat(T).concat(ke).concat(Te.attributes[ke]?":".concat(Te.attributes[ke]):"").concat(this.eol)).join("")).join("")}printRTCPMux(ie){return ie===void 0?"":"a=rtcp-mux".concat(this.eol)}printRTCPMuxOnly(ie){return ie===void 0?"":"a=rtcp-mux-only".concat(this.eol)}printRTCPRsize(ie){return ie===void 0?"":"a=rtcp-rsize".concat(this.eol)}printRTCP(ie){if(ie===void 0)return"";let Te="a=rtcp:".concat(ie.port);return ie.netType&&(Te+="".concat(T).concat(ie.netType)),ie.addressType&&(Te+="".concat(T).concat(ie.addressType)),ie.address&&(Te+="".concat(T).concat(ie.address)),Te+this.eol}printMSId(ie){return ie.map(Te=>"a=msid:".concat(Te.id).concat(Te.appdata?"".concat(T).concat(Te.appdata):"").concat(this.eol)).join("")}printImageattr(ie){return ie.map(Te=>"a=imageattr:".concat(Te).concat(this.eol)).join("")}printRid(ie){return ie.map(Te=>{let ke="a=rid:".concat(Te.id).concat(T).concat(Te.direction);return Te.payloads&&(ke+="".concat(T,"pt=").concat(Te.payloads.join(","))),Te.params.length>0&&(ke+="".concat(T).concat(Te.params.map(_t=>_t.type==="depend"?"depend=".concat(_t.rids.join(",")):"".concat(_t.type,"=").concat(_t.val)).join(";"))),ke+this.eol}).join("")}printSimulcast(ie){return ie===void 0?"":"a=simulcast:".concat(ie).concat(this.eol)}printSCTPPort(ie){return ie===void 0?"":"a=sctp-port:".concat(ie).concat(this.eol)}printMaxMessageSize(ie){return ie===void 0?"":"a=max-message-size:".concat(ie).concat(this.eol)}printMid(ie){return ie===void 0?"":"a=mid:".concat(ie).concat(this.eol)}printSSRCGroups(ie){return ie.map(Te=>"a=ssrc-group:".concat(Te.semantic).concat(Te.ssrcIds.map(ke=>"".concat(T).concat(ke.toString(10))).join("")).concat(this.eol)).join("")}}function mt(at){return new st().parse(at)}function Gt(at,ie){return new ui().print(at,ie)}}},s={};function c(u){if(s[u])return s[u].exports;var h=s[u]={exports:{}};return t[u](h,h.exports,c),h.exports}return c.d=(u,h)=>{for(var _ in h)c.o(h,_)&&!c.o(u,_)&&Object.defineProperty(u,_,{enumerable:!0,get:h[_]})},c.o=(u,h)=>Object.prototype.hasOwnProperty.call(u,h),c.r=u=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(u,"__esModule",{value:!0})},c(8)})();function wa(t){return kn.parse(t)}function X1(t,s){return kn.print(t,s)}var E4=E1("Array","keys"),h4=fE,oU=Xs,sU=W,I4=E4,jR=Array.prototype,HJ={DOMTokenList:!0,NodeList:!0},aU=function(t){var s=t.keys;return t===jR||sU(jR,t)&&s===jR.keys||oU(HJ,h4(t))?I4:s},js=f(aU);function C4(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=Array(s);c]+)(>|$)/g,function(T,D,O){if(O==="")return T;var P=B[D];return Array.isArray(P)?"$"+P.join("$"):typeof P=="number"?"$"+P:""}))}if(typeof _=="function"){var Q=this;return t[Symbol.replace].call(this,h,function(){var T=arguments;return typeof T[T.length-1]!="object"&&(T=[].slice.call(T)).push(u(T,Q)),_.apply(this,T)})}return t[Symbol.replace].call(this,h,_)},p1.apply(this,arguments)}const JR=new class extends Cn{constructor(){super(...arguments),bo(this,"currentUploadLogID",0)}reportLogUploadError(t){const s=t.errorRange;s[s.length-1]&&s[s.length-1]>this.currentUploadLogID&&(this.currentUploadLogID=s[s.length-1],this.emit("REPORT_LOG_UPLOAD",t))}};function cA(){const t=new Date;return t.toTimeString().split(" ")[0]+":"+t.getMilliseconds()}function p4(){const t=new Date,s=/((\d+:){2}\d+)/.exec(new Date().toUTCString());return s?(s==null?void 0:s[0])+":"+t.getUTCMilliseconds():t.toTimeString().split(" ")[0]+":"+t.getMilliseconds()}const Dc={DEBUG:0,INFO:1,WARNING:2,ERROR:3,NONE:4},qR=Date.now(),va=t=>{for(const s in Dc)if(Object.prototype.hasOwnProperty.call(Dc,s)&&Dc[s]===t)return s;return"DEFAULT"},J=new class{constructor(){bo(this,"proxyServerURL",void 0),bo(this,"logLevel",Dc.DEBUG),bo(this,"uploadState","collecting"),bo(this,"uploadStartTimer",void 0),bo(this,"uploadLogWaitingList",[]),bo(this,"uploadLogUploadingList",[]),bo(this,"uploadErrorCount",0),bo(this,"currentLogID",0),bo(this,"url",void 0),bo(this,"extLog",(t,s)=>{this.appendLogToWaitingList(t,...s)})}debug(){for(var t=arguments.length,s=new Array(t),c=0;c{this.log(...s)},Date.now()-qR);const u=Math.max(0,Math.min(4,s[0]));if(s[0]=cA()+" Agora-SDK [".concat(va(u),"]:"),this.appendLogToWaitingList(u,...s),u{this.uploadLog(...s)},Date.now()-qR);const u=Math.max(0,Math.min(4,s[0]));s[0]=cA()+" Agora-SDK [".concat(va(u),"]:"),this.appendLogToWaitingList(u,...s)}appendLogToWaitingList(t){if(!de("UPLOAD_LOG"))return;for(var s=arguments.length,c=new Array(s>1?s-1:0),u=1;u{typeof _=="object"&&(_=JSON.stringify(_)),h+="".concat(_," ")}),this.uploadLogWaitingList.push({payload_str:h,log_level:t,log_item_id:this.currentLogID++}),this.uploadState==="uploading"&&this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}startUpload(){this.uploadState="uploading",this.uploadStartTimer!==void 0&&(window.clearTimeout(this.uploadStartTimer),this.uploadStartTimer=void 0),this.uploadLogUploadingList.length===0&&this.uploadLogInterval()}scheduleUploadStart(){this.uploadState!=="uploading"&&this.uploadStartTimer===void 0&&(this.uploadStartTimer=window.setTimeout(()=>{this.uploadStartTimer=void 0,de("UPLOAD_LOG")&&this.startUpload()},5e3))}async uploadLogs(){const t=this.uploadLogUploadingList,s={sdk_version:W1,process_id:de("PROCESS_ID"),payload:JSON.stringify(t)};return dl(async()=>{const c=await on.post(this.url||(this.proxyServerURL?"https://".concat(this.proxyServerURL,"/ls/?h=").concat(de("LOG_UPLOAD_SERVER"),"&p=443&d=upload/v1"):"https://".concat(de("LOG_UPLOAD_SERVER"),"/upload/v1")),s,{responseType:"text"});if(c.data!=="OK"){const u=new Error("unexpected upload log response");throw u.response=c,u}},()=>(this.uploadLogUploadingList=[],!1),c=>{const u={status:-1,message:c.message,errorRange:t.map(h=>h.log_item_id)};return c.response?(u.status=c.response.status,u.data=c.response.data,u.headers=c.response.headers):c.request&&(u.status=c.request.status),JR.reportLogUploadError(u),!0},{timeout:de("UPLOAD_LOG_REQUEST_RETRY_INTERVAL"),maxRetryTimeout:de("UPLOAD_LOG_REQUEST_MAX_RETRY_INTERVAL")})}uploadLogInterval(){this.uploadLogUploadingList.length===0&&this.uploadLogWaitingList.length===0||(this.uploadLogUploadingList.length===0&&(this.uploadLogUploadingList=this.uploadLogWaitingList.splice(0,de("UPLOAD_LOG_LENGTH_EACH_TIME"))),this.uploadLogs().then(()=>{this.uploadErrorCount=0,this.uploadLogWaitingList.length>0&&window.setTimeout(()=>this.uploadLogInterval(),de("UPLOAD_LOG_INTERVAL"))}).catch(t=>{this.uploadErrorCount+=1,this.uploadErrorCount<2?window.setTimeout(()=>this.uploadLogInterval(),de("UPLOAD_LOG_TWICE_RETRY_INTERVAL_V1")):window.setTimeout(()=>this.uploadLogInterval(),de("UPLOAD_LOG_RETRY_INTERVAL_V1"))}))}};var f4;function AU(t){return Ra(t.reportId,"params.reportId",0,100,!1),Ra(t.category,"params.category",0,100,!1),Ra(t.event,"params.event",0,100,!1),Ra(t.label,"params.label",0,100,!1),Vn(t.value,"params.value",Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER,!1),!0}(f4={}).FREE="free",f4.UPLOADING="uploading",function(t){t[t.MISC=0]="MISC",t[t.INTERNAL_EVENT=1]="INTERNAL_EVENT",t[t.PUBLIC_EVENT=2]="PUBLIC_EVENT",t[t.WEB_EVENT=3]="WEB_EVENT",t[t.INTERNAL_API=4]="INTERNAL_API",t[t.WEB_API=5]="WEB_API",t[t.PUBLIC_API=6]="PUBLIC_API"}({});let _4=function(t){return t[t.RECOVER=0]="RECOVER",t[t.WARNING=1]="WARNING",t[t.ERROR=2]="ERROR",t}({}),m4=function(t){return t.CONFIG_DISTRIBUTE="config-distribute-error",t}({});const B4={sid:"",lts:0,success:null,cname:null,uid:null,peer:null,cid:null,elapse:null,extend:null,vid:0};let Rs=function(t){return t.PUBLISH="publish",t.SUBSCRIBE="subscribe",t.WS_COMPRESSOR_INIT="ws_compressor_init",t.SESSION_INIT="session_init",t.JOIN_CHOOSE_SERVER="join_choose_server",t.RTE_DETAIL="rte_detail_stats",t.REQ_USER_ACCOUNT="req_user_account",t.JOIN_GATEWAY="join_gateway",t.REJOIN_GATEWAY="rejoin_gateway",t.STREAM_SWITCH="stream_switch",t.REQUEST_PROXY_WORKER_MANAGER="request_proxy_worker_manager",t.REQUEST_PROXY_APPCENTER="request_proxy_appcenter",t.FIRST_VIDEO_RECEIVED="first_video_received",t.FIRST_AUDIO_RECEIVED="first_audio_received",t.FIRST_VIDEO_DECODE="first_video_decode",t.FIRST_AUDIO_DECODE="first_audio_decode",t.XLA_PEER_FIRST_VIDEO_FRAME="xla_peer_first_video_frame",t.ON_ADD_AUDIO_STREAM="on_add_audio_stream",t.ON_ADD_VIDEO_STREAM="on_add_video_stream",t.ON_UPDATE_STREAM="on_update_stream",t.ON_REMOVE_STREAM="on_remove_stream",t.USER_ANALYTICS="req_user_analytics",t.PC_STATS="pc_stats",t.UPDATE_REMOTE_RTPCAPABILITIES="update_remote_rtpCapabilities",t.AB_TEST="ab_test",t.ALARM_STATUS_NOTIFY="alarm_status_notify",t}({}),ao=function(t){return t.SESSION="io.agora.pb.Wrtc.Session",t.JOIN_CHOOSE_SERVER="io.agora.pb.Wrtc.JoinChooseServer",t.RTE_DETAIL="io.agora.pb.Wrtc.RteDetailStats",t.REQ_USER_ACCOUNT="io.agora.pb.Wrtc.ReqUserAccount",t.JOIN_GATEWAY="io.agora.pb.Wrtc.JoinGateway",t.RE_JOIN_GATEWAY="io.agora.pb.Wrtc.ReJoinGateway",t.PUBLISH="io.agora.pb.Wrtc.Publish",t.SUBSCRIBE="io.agora.pb.Wrtc.Subscribe",t.WS_COMPRESSOR_INIT="io.agora.pb.Wrtc.WsCompressorInit",t.STREAM_SWITCH="io.agora.pb.Wrtc.StreamSwitch",t.AUDIO_SENDING_STOPPED="io.agora.pb.Wrtc.AudioSendingStopped",t.VIDEO_SENDING_STOPPED="io.agora.pb.Wrtc.VideoSendingStopped",t.REQUEST_PROXY_APPCENTER="io.agora.pb.Wrtc.RequestProxyAppCenter",t.REQUEST_PROXY_WORKER_MANAGER="io.agora.pb.Wrtc.RequestProxyWorkerManager",t.API_INVOKE="io.agora.pb.Wrtc.ApiInvoke",t.FIRST_VIDEO_RECEIVED="io.agora.pb.Wrtc.FirstVideoReceived",t.FIRST_AUDIO_RECEIVED="io.agora.pb.Wrtc.FirstAudioReceived",t.FIRST_VIDEO_DECODE="io.agora.pb.Wrtc.FirstVideoDecode",t.FIRST_AUDIO_DECODE="io.agora.pb.Wrtc.FirstAudioDecode",t.XLA_PEER_FIRST_VIDEO_FRAME="io.agora.pb.Wrtc.XLAPeerFirstVideoFrame",t.ON_ADD_AUDIO_STREAM="io.agora.pb.Wrtc.OnAddAudioStream",t.ON_ADD_VIDEO_STREAM="io.agora.pb.Wrtc.OnAddVideoStream",t.ON_UPDATE_STREAM="io.agora.pb.Wrtc.OnUpdateStream",t.ON_REMOVE_STREAM="io.agora.pb.Wrtc.OnRemoveStream",t.JOIN_CHANNEL_TIMEOUT="io.agora.pb.Wrtc.JoinChannelTimeout",t.PEER_PUBLISH_STATUS="io.agora.pb.Wrtc.PeerPublishStatus",t.WORKER_EVENT="io.agora.pb.Wrtc.WorkerEvent",t.AP_WORKER_EVENT="io.agora.pb.Wrtc.APWorkerEvent",t.JOIN_WEB_PROXY_AP="io.agora.pb.Wrtc.JoinWebProxyAP",t.WEBSOCKET_QUIT="io.agora.pb.Wrtc.WebSocketQuit",t.USER_ANALYTICS="io.agora.pb.Wrtc.UserAnalytics",t.AUTOPLAY_FAILED="io.agora.pb.Wrtc.AutoplayFailed",t.PC_STATS="io.agora.pb.Wrtc.PCStats",t.UPDATE_REMOTE_RTPCAPABILITIES="io.agora.pb.Wrtc.UpdateRemoteRTPCapabilities",t.AB_TEST="io.agora.pb.Wrtc.ABTest",t.ALARM_STATUS_NOTIFY="io.agora.pb.Wrtc.AlarmStatusNotify",t}({});(function(t){t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT"})({});let WR=function(t){return t[t.SESSION=26]="SESSION",t[t.JOIN_CHOOSE_SERVER=27]="JOIN_CHOOSE_SERVER",t[t.REQ_USER_ACCOUNT=196]="REQ_USER_ACCOUNT",t[t.JOIN_GATEWAY=28]="JOIN_GATEWAY",t[t.PUBLISH=30]="PUBLISH",t[t.SUBSCRIBE=29]="SUBSCRIBE",t[t.WS_COMPRESSOR_INIT=9430]="WS_COMPRESSOR_INIT",t[t.STREAM_SWITCH=32]="STREAM_SWITCH",t[t.AUDIO_SENDING_STOPPED=33]="AUDIO_SENDING_STOPPED",t[t.VIDEO_SENDING_STOPPED=34]="VIDEO_SENDING_STOPPED",t[t.REQUEST_PROXY_APPCENTER=35]="REQUEST_PROXY_APPCENTER",t[t.REQUEST_PROXY_WORKER_MANAGER=36]="REQUEST_PROXY_WORKER_MANAGER",t[t.API_INVOKE=41]="API_INVOKE",t[t.FIRST_VIDEO_RECEIVED=348]="FIRST_VIDEO_RECEIVED",t[t.FIRST_AUDIO_RECEIVED=349]="FIRST_AUDIO_RECEIVED",t[t.FIRST_VIDEO_DECODE=350]="FIRST_VIDEO_DECODE",t[t.FIRST_AUDIO_DECODE=351]="FIRST_AUDIO_DECODE",t[t.ON_ADD_AUDIO_STREAM=352]="ON_ADD_AUDIO_STREAM",t[t.ON_ADD_VIDEO_STREAM=353]="ON_ADD_VIDEO_STREAM",t[t.ON_UPDATE_STREAM=356]="ON_UPDATE_STREAM",t[t.ON_REMOVE_STREAM=355]="ON_REMOVE_STREAM",t[t.JOIN_CHANNEL_TIMEOUT=407]="JOIN_CHANNEL_TIMEOUT",t[t.PEER_PUBLISH_STATUS=408]="PEER_PUBLISH_STATUS",t[t.WORKER_EVENT=156]="WORKER_EVENT",t[t.AP_WORKER_EVENT=160]="AP_WORKER_EVENT",t[t.JOIN_WEB_PROXY_AP=700]="JOIN_WEB_PROXY_AP",t[t.WEBSOCKET_QUIT=671]="WEBSOCKET_QUIT",t[t.USER_ANALYTICS=1e4]="USER_ANALYTICS",t[t.AUTOPLAY_FAILED=9178]="AUTOPLAY_FAILED",t}({});const ul="[config-restore]",Uf="websdk_ng_",xf=Uf+"blocked_config_hashes",XR=Uf+"api_failure_records",zR=Uf+"global_parameter",S4=Uf+"config_restore_state";function $R(t){var s;return t==null||typeof t!="object"?JSON.stringify(t):Array.isArray(t)?"["+t.map(c=>$R(c)).join(",")+"]":"{"+x1(s=Object.keys(t)).call(s).map(c=>JSON.stringify(c)+":"+$R(t[c])).join(",")+"}"}function R4(t){return function(s){let c=2166136261;for(let u=0;u>>0).toString(36)}($R(t))}function Ff(){try{const t=window.localStorage.getItem(S4);if(t)return JSON.parse(t)}catch{}return{currentConfigHash:"",configVerified:!1}}function y4(t){try{window.localStorage.setItem(S4,JSON.stringify(t))}catch{}}function ZR(){try{const t=window.localStorage.getItem(XR);return t?JSON.parse(t):[]}catch(t){return J.debug("[error] ".concat(ul," error getting API failure records:"),t),[]}}function Q4(){var t;return VA(t=ZR()).call(t,(s,c)=>s+c.count,0)}function ey(){try{window.localStorage.removeItem(XR)}catch(t){J.debug("[error] ".concat(ul," error clearing API failure records:"),t)}}function cU(){try{const t=Q4(),s=de("MAX_CONFIG_RETRY");if(t({api:h.apiName,error:h.errorCode||h.errorMessage,count:h.count,lastTime:h.lastTimestamp}))}}),ey()}catch(t){J.debug("[error] ".concat(ul," error restoring config:"),t)}}function T4(t,s){try{if(!de("ENABLE_CONFIG_RESTORE"))return;if(s&&s.name==="AgoraRTCException"){const T=de("CONFIG_ERROR_MONITOR");if(!Array.isArray(T)||!Et(T).call(T,s.code))return}const c=window.localStorage.getItem(zR);if(!c||c.length<20||Ff().configVerified)return;const u=de("CONFIG_RESTORE_ERROR_API");if(!Array.isArray(u)||!Et(u).call(u,t))return;let h,_;s&&(s.code&&(h=s.code),_=s.message?s.message:typeof s=="string"?s:s.toString()),function(T,D,O){try{const P=ZR(),U="".concat(T,":").concat(D||""),H=P.find(te=>"".concat(te.apiName,":").concat(te.errorCode||"")===U),$=Ff().currentConfigHash;if(H)H.count++,H.lastTimestamp=Date.now(),O&&(H.errorMessage=O),$&&(H.configHash=$);else{const te=Date.now();P.push({apiName:T,errorCode:D,errorMessage:O,count:1,firstTimestamp:te,lastTimestamp:te,configHash:$||void 0})}const Z=P.length>20?P.slice(-20):P;window.localStorage.setItem(XR,JSON.stringify(Z))}catch(P){J.debug("[error] ".concat(ul," error saving API failure record:"),P)}}(t,h,_);const B=Q4(),Q=de("MAX_CONFIG_RETRY");J.debug("".concat(ul," API failure count: ").concat(B,"/").concat(Q,", API: ").concat(t,", Error: ").concat(h||_)),B>=Q&&cU()}catch{}}function ty(){try{window.localStorage.removeItem(xf)}catch(t){J.debug("[error] ".concat(ul," error resetting blocked config:"),t)}}function yr(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return function(s,c,u){const h=u.value;if(typeof h=="function"){const _=t.className||s.__className__||(s.constructor.name==="AgoraRTCClient"?"Client":s.constructor.name);u.value=function(){for(var B,Q=arguments.length,T=new Array(Q),D=0;D(P.onSuccess(t.reportResult&&H),H)).catch(H=>{throw P.onError(H),H}):(P.onSuccess(t.reportResult&&U),U)}catch(U){throw P.onError(U),U}}}return u}}const qt=new class{constructor(){bo(this,"baseInfoMap",new Map),bo(this,"proxyServer",void 0),bo(this,"eventUploadTimer",void 0),bo(this,"setSessionIdTimer",void 0),bo(this,"url",void 0),bo(this,"sids",new Set),bo(this,"backupUrl",void 0),bo(this,"_appId",void 0),bo(this,"_aid",0),bo(this,"keyEventUploadPendingItems",[]),bo(this,"normalEventUploadPendingItems",[]),bo(this,"apiInvokeUploadPendingItems",[]),bo(this,"apiInvokeCount",0),bo(this,"apiInvokeLoggedCount",0),bo(this,"ltsList",[]),bo(this,"lastSendNormalEventTime",Date.now()),bo(this,"customReportCounterTimer",void 0),bo(this,"customReportCount",0),bo(this,"extApiInvoke",async t=>{for(const s of t){const c=$r($r({},s),{},{sid:null,invokeId:++this.apiInvokeCount,tag:vn.TRACER});this.sendApiInvoke(c)}}),this.eventUploadTimer=window.setInterval(this.doSend.bind(this),de("EVENT_REPORT_SEND_INTERVAL")),this.setSessionIdTimer=window.setInterval(this.appendSessionId.bind(this),de("EVENT_REPORT_SEND_INTERVAL"))}getBaseInfoBySessionId(t){return this.baseInfoMap.get(t)}setAppId(t){this._appId=t,this._aid=parseInt(t.replace(/[a-fA-F0-9]{8}/g,s=>{let c=B2(s,2);return c[0]+c[1]}),16)||0}reportApiInvoke(t,s,c){s.timeout=s.timeout||6e4,s.reportResult=s.reportResult===void 0||s.reportResult;const u=Date.now();this.apiInvokeCount+=1;const h=this.apiInvokeCount,_=!!de("SHOW_REPORT_INVOKER_LOG"),B=!!de("SHOW_REPORT_USER_INVOKER_LOG"),Q=_||B&&s.id;Q&&(this.apiInvokeLoggedCount+=1);const T=this.apiInvokeLoggedCount;function D(H,$){if(Q){let Z="[apiInvoke-".concat(T,"]");if(s.id&&(Z+="[".concat(s.id,"]")),s.name&&(Z+="[".concat(s.name,"]"),s.name===Ti.JOIN))return J.info("".concat(Z," ").concat(H));J.info("".concat(Z," ").concat(H),H==="start"?s.options:$||"")}}const O=()=>({tag:s.tag,invokeId:h,sid:t,name:s.name,apiInvokeTime:u,options:s.options,states:s.states||null});D("start");let P=!1;so(s.timeout).then(()=>{P||(this.sendApiInvoke($r($r({},O()),{},{error:Ce.API_INVOKE_TIMEOUT,success:!1})),D("timeout"),T4(s.name,new tt(Ce.API_INVOKE_TIMEOUT)))});const U=new tt(Ce.UNEXPECTED_ERROR,"".concat(s.name,": this api invoke is end"));return{onSuccess:H=>{const $=()=>{if(P)throw U;return P=!0,this.sendApiInvoke($r($r({},O()),{},{success:!0},s.reportResult&&{result:H})),D("onSuccess"),H};return c?tU($,s.name+"Success",c,()=>P=!0):$()},onError:H=>{const $=()=>{if(P)throw H;P=!0,this.sendApiInvoke($r($r({},O()),{},{success:!1,error:H})),T4(s.name,H),D("onFailure",H.toString())};return c?tU($,s.name+"Error",c,()=>P=!0):$()}}}_send(t,s,c){this.send({type:t,data:s},c)}_sendApiInvoke(t){return this.sendApiInvoke(t)}sessionInit(t,s){if(this.baseInfoMap.has(t))return;const c=Date.now(),u=this.createBaseInfo(t,c);u.cname=s.cname,u.rteUrl=s.rteUrl;const h=Object.assign({},{willUploadConsoleLog:de("UPLOAD_LOG"),maxTouchPoints:navigator.maxTouchPoints,areaVersion:d4?"global":"oversea",areas:de("AREAS")&&de("AREAS").join(",")},s.extend),_=s.stringUid,B=s.channelProfile,Q=s.channelMode,T=s.isABTestSuccess,D=s.lsid,O=s.clientRole,P=Date.now(),U=$r($r({},u),{},{eventType:Rs.SESSION_INIT,appid:s.appid,browser:navigator.userAgent,buildFormat:s.buildFormat,build:Ng,lts:P,elapse:P-c,extend:JSON.stringify(h),mode:s.mode,process:de("PROCESS_ID"),appType:de("APP_TYPE"),success:!0,version:W1,stringUid:_,channelProfile:B,channelMode:Q,isABTestSuccess:T,lsid:D,clientType:GJ()?42:20,clientRole:O,serviceId:de("PROCESS_ID"),extensionID:de("PLUGIN_INFO").join(",")||"",rteUrl:s.rteUrl,rteSid:s.rteSid,installId:I2()});this.send({type:ao.SESSION,data:U},!0)}reportRteDetail(t){const s=this.baseInfoMap.get(t);if(!s)return;const c=s.info,u=Date.now(),h=$r($r({},c),{},{eventType:Rs.RTE_DETAIL,lts:u,success:!0,elapse:u-s.startTime,vid:c.vid===void 0?0:Number(c.vid),ua:navigator.userAgent});this.send({type:ao.RTE_DETAIL,data:h},!0)}joinChooseServer(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info;s.vid&&(u.vid=s.vid);const h=Date.now(),_=$r($r({},u),{},{role:s.role,eventType:Rs.JOIN_CHOOSE_SERVER,lts:h,eventElapse:s.elapse||h-s.lts,chooseServerAddr:s.csAddr,errorCode:s.ec,elapse:h-c.startTime,success:s.succ,chooseServerAddrList:JSON.stringify(s.serverList),uid:s.uid?parseInt(s.uid):null,cid:s.cid?parseInt(s.cid):null,chooseServerIp:s.csIp||"",opid:s.opid,unilbsServerIds:s.unilbsServerIds,extend:s.extend||void 0,isHttp3:s.isHttp3,corssRegionTagReq:s.corssRegionTagReq||void 0,corssRegionTagRes:s.corssRegionTagRes||void 0,ua:navigator.userAgent,resourceTimingInfo:s.resourceTimingInfo||void 0});this.send({type:ao.JOIN_CHOOSE_SERVER,data:_},!0)}reqUserAccount(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.REQ_USER_ACCOUNT,lts:h,success:s.success,serverAddress:s.serverAddr,stringUid:s.stringUid,uid:s.uid,errorCode:s.errorCode,elapse:s.elapse||h-c.startTime,eventElapse:h-s.lts,extend:JSON.stringify(s.extend)});this.send({type:ao.REQ_USER_ACCOUNT,data:_},!0)}joinGateway(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info;s.vid&&(u.vid=s.vid),u.uid=s.uid,u.cid=s.cid;const h=Date.now(),_=s.firstSuccess,B=s.addr,Q=s.isProxy,T=h-c.startTime,D=$r($r({},u),{},{eventType:Rs.JOIN_GATEWAY,lts:h,gatewayAddr:s.addr,success:s.succ,errorCode:s.ec,errorMsg:s.errorMsg||"",elapse:T,eventElapse:h-s.lts,firstSuccess:_,signalChannel:s.signalChannel,preload:s.preload?1:0,installId:I2(),isABTestSuccess:s.isABTestSuccess?1:0,gatewayIp:null,gatewayPort:null,isProxy:Q?1:0}),O=D.success?1:0;if(s.succ&&(c.lastJoinSuccessTime=h),B)if(D.signalChannel==="1"){const P=p1(/(\d+\.\d+\.\d+\.\d+):(\d+)/,{ip:1,port:2}),U=B.match(P);D.gatewayIp=U&&U.groups?U.groups.ip:"",D.gatewayPort=U&&U.groups?U.groups.port:""}else if(Q){const P=B.match(/h=(\d{1,3}-){3}\d{1,3}/g),U=B.match(/p=[0-9]{1,6}/g);D.gatewayIp=P&&P.length?P[0].split("=")[1].replace(/-/g,"."):"",D.gatewayPort=U&&U.length?U[0].split("=")[1]:""}else{const P=B.match(/wss:\/\/(\d{1,3}-){3}\d{1,3}/g),U=B.match(/(:|p=)[0-9]{1,6}/g);D.gatewayIp=P&&P.length?P[0].split("//")[1].replace(/-/g,"."):"",D.gatewayPort=U&&U.length?U[0].split(/:|p=/g)[1]:""}if(_)this.send({type:ao.JOIN_GATEWAY,data:D},!0);else{const P={isSuccess:O,port:D.gatewayPort};delete D.success,delete D.eventType,delete D.firstSuccess,delete D.gatewayPort,D.vid=Number(D.vid);const U=Object.assign({},D,P,{eventType:Rs.REJOIN_GATEWAY});this.send({type:ao.RE_JOIN_GATEWAY,data:U},!0)}}joinChannelTimeout(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=Date.now(),h=$r($r({},c.info),{},{lts:u,timeout:s,elapse:u-c.startTime});this.send({type:ao.JOIN_CHANNEL_TIMEOUT,data:h},!0)}publish(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.PUBLISH,lts:h,eventElapse:s.eventElapse,elapse:h-c.startTime,success:s.succ,errorCode:s.ec,videoName:s.videoName,audioName:s.audioName,screenName:s.screenName,screenshare:s.screenshare,audio:s.audio,video:s.video,p2pid:s.p2pid,publishRequestid:s.publishRequestid});this.send({type:ao.PUBLISH,data:_},!0)}subscribe(t,s,c){const u=this.baseInfoMap.get(t);if(!u)return;const h=u.info,_=Date.now(),B=$r($r({},h),{},{eventType:Rs.SUBSCRIBE,lts:_,eventElapse:s.eventElapse,elapse:_-u.startTime,success:s.succ,errorCode:s.ec,video:s.video,audio:s.audio,subscribeRequestid:s.subscribeRequestid,p2pid:s.p2pid,preSsrc:s.preSsrc?1:0},c&&{extend:JSON.stringify({isMassSubscribe:!0})});typeof s.peerid=="string"?B.peerSuid=s.peerid:B.peer=s.peerid,this.send({type:ao.SUBSCRIBE,data:B},!0)}wsCompressorInit(t){var s;const c=[...js(s=this.baseInfoMap).call(s)],u=c.length?c[0]:"UnableToGetSid",h=this.baseInfoMap.get(u);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r({},_),{},{eventType:Rs.WS_COMPRESSOR_INIT,lts:B,eventElapse:t.eventElapse,elapse:B-h.startTime,status:t.status?1:2});this.send({type:ao.WS_COMPRESSOR_INIT,data:Q},!0)}firstXLAPeerFirstVideoFrame(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=s.peerPubStatusMs-(c.lastJoinSuccessTime||h),B=$r($r({},u),{},{elapse:h-c.startTime,eventType:Rs.XLA_PEER_FIRST_VIDEO_FRAME,lts:h,peer:s.peer,width:s.width,height:s.height,ssrc:s.ssrc,p2pid:s.p2pid,peerPublishDuration:s.peerPublishDuration,joinChannelSuccessElapse:_,peerPubStatusMs:s.peerPubStatusMs-s.joinChannelStart,availablePublish:s.peerPublishDuration>_?1:0,preloadStart:Math.max(s.preloadStart-s.joinChannelStart,0),preloadEnd:Math.max(s.preloadEnd-s.joinChannelStart,0),encrypt:Math.max(s.apStart-s.joinChannelStart,0),ap:Math.max(s.apEnd-s.joinChannelStart,0),sua:Math.max(s.suaEnd-s.joinChannelStart,0),beforeConnect:Math.max(s.beforeConnect-s.joinChannelStart,0),peerRecevier:Math.max(s.peerReceiver-s.joinChannelStart,0),ice:Math.max(s.ice-s.joinChannelStart,0),pc:Math.max(s.pc-s.joinChannelStart,0),signalConnected:Math.max(s.signalConnected-s.joinChannelStart,0),joinReq:Math.max(s.joinReq-s.joinChannelStart,0),joinRes:Math.max(s.joinRes-s.joinChannelStart,0),userJoinNotify:Math.max(s.userJoinNotify-s.joinChannelStart,0),videoSsrcNotify:Math.max(s.videoAddNotify-s.joinChannelStart,0),subscribeDelayMs:Math.max(s.subscribeStart-s.videoAddNotify,0),subscribeStart:Math.max(s.subscribeStart-s.joinChannelStart,0),subscribeEnd:Math.max(s.subscribeEnd-s.joinChannelStart,0),firstReceived:Math.max(s.firstReceived-s.joinChannelStart,0),firstDecoded:Math.max(s.firstDecoded-s.joinChannelStart,0),firstPreRender:Math.max(s.firstPreRender-s.joinChannelStart,0),firstRender:Math.max(s.firstRender-s.joinChannelStart,0),playDelayMs:Math.max(s.playStart-s.subscribeEnd,0),playStart:Math.max(s.playStart-s.joinChannelStart,0),playEnd:Math.max(s.playEnd-s.joinChannelStart,0),isPreSub:s.isPreSub?1:0,isPrePc:s.isPrePc?1:0,isPreInstantVideo:s.isPreInstantVideo?1:0,firstReceivedEncodedFrame:s.firstReceivedEncodedFrame?Math.max(s.firstReceivedEncodedFrame-s.joinChannelStart,0):void 0,frameType:s.frameType||"",rtpTimestamp:s.rtpTimestamp||0,framePayloadType:s.framePayloadType||0,frameDataLength:s.frameDataLength||0,mimeType:s.mimeType||"",sdpEndPoint:s.sdpEndPoint?1:0});this.send({type:ao.XLA_PEER_FIRST_VIDEO_FRAME,data:B},!0)}firstRemoteVideoDecode(t,s,c,u){const h=this.baseInfoMap.get(t);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r($r({},_),u),{},{elapse:B-h.startTime,eventType:s,lts:B,firstDecodeFrame:Math.max((u.firstFrame||B)-h.startTime,0),apEnd:Math.max(u.apEnd-h.startTime,0),apStart:Math.max(u.apStart-h.startTime,0),joinGwEnd:Math.max(u.joinGwEnd-h.startTime,0),joinGwStart:Math.max(u.joinGwStart-h.startTime,0),pcEnd:Math.max(u.pcEnd-h.startTime,0),pcStart:Math.max(u.pcStart-h.startTime,0),subscriberEnd:Math.max(u.subscriberEnd-h.startTime,0),subscriberStart:Math.max(u.subscriberStart-h.startTime,0),videoAddNotify:Math.max(u.videoAddNotify-h.startTime,0)});this.send({type:c,data:Q},!0)}firstRemoteFrame(t,s,c,u){const h=this.baseInfoMap.get(t);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r($r({},_),u),{},{elapse:B-h.startTime,eventType:s,lts:B});this.send({type:c,data:Q},!0)}abTest(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:u.vid===void 0?0:Number(u.vid),elapse:h-c.startTime,eventType:Rs.AB_TEST,lts:h});this.send({type:ao.AB_TEST,data:_},!0)}pcStats(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:u.vid===void 0?0:Number(u.vid),elapse:h-c.startTime,eventType:Rs.PC_STATS,lts:h,preallocation:s.preallocation?1:0});this.send({type:ao.PC_STATS,data:_},!0)}updateRemoteRTPCapabilities(t,s){if(t){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:u.vid===void 0?0:Number(u.vid),eventType:Rs.UPDATE_REMOTE_RTPCAPABILITIES,lts:h});this.send({type:ao.UPDATE_REMOTE_RTPCAPABILITIES,data:_},!0)}}onGatewayStream(t,s,c,u){const h=this.baseInfoMap.get(t);if(!h)return;const _=h.info,B=Date.now(),Q=$r($r($r({},_),u),{},{eventType:s,lts:B});this.send({type:c,data:Q},!0)}streamSwitch(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.STREAM_SWITCH,lts:h,isDual:s.isdual,elapse:h-c.startTime,success:s.succ});this.send({type:ao.STREAM_SWITCH,data:_},!0)}requestProxyAppCenter(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.REQUEST_PROXY_APPCENTER,lts:h,eventElapse:h-s.lts,elapse:h-c.startTime,APAddr:s.APAddr,workerManagerList:s.workerManagerList,response:s.response,errorCode:s.ec,success:s.succ});this.send({type:ao.REQUEST_PROXY_APPCENTER,data:_},!0)}requestProxyWorkerManager(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{eventType:Rs.REQUEST_PROXY_WORKER_MANAGER,lts:h,eventElapse:h-s.lts,elapse:h-c.startTime,workerManagerAddr:s.workerManagerAddr,response:s.response,errorCode:s.ec,success:s.succ});this.send({type:ao.REQUEST_PROXY_WORKER_MANAGER,data:_},!0)}setProxyServer(t){this.proxyServer=t,t?J.debug("reportProxyServerurl: ".concat(t)):J.debug("disable reportProxyServerurl: ".concat(t))}peerPublishStatus(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r({},u),{},{subscribeElapse:s.subscribeElapse,peer:s.peer,peerPublishDuration:Math.max(s.audioPublishDuration,s.videoPublishDuration),audiotag:s.audioPublishDuration>0?1:-1,videotag:s.videoPublishDuration>0?1:-1,lts:h,elapse:h-c.startTime,joinChannelSuccessElapse:h-(c.lastJoinSuccessTime||h),peerPublishDurationVideo:s.videoPublishDuration,peerPublishDurationAudio:s.audioPublishDuration});this.send({type:ao.PEER_PUBLISH_STATUS,data:_},!0)}workerEvent(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now();(function(_,B,Q){const T=_[B];if(!T||typeof T!="string")return[_];_[B]="";const D=vu(JSON.stringify(_));let O=0;const P=[];let U=0;for(let H=0;Hthis.send({type:ao.WORKER_EVENT,data:_},!0))}apworkerEvent(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{elapse:h-c.startTime,lts:h});this.send({type:ao.AP_WORKER_EVENT,data:_},!0)}joinWebProxyAP(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{elapse:h-c.startTime,lts:h,extend:s.extend||void 0});this.send({type:ao.JOIN_WEB_PROXY_AP,data:_},!0)}WebSocketQuit(t,s){const c=this.baseInfoMap.get(t);if(!c)return;const u=c.info,h=Date.now(),_=$r($r($r({},u),s),{},{elapse:h-c.startTime,lts:h});this.send({type:ao.WEBSOCKET_QUIT,data:_},!0)}async sendCustomReportMessage(t,s){if(this.customReportCount+=s.length,this.customReportCount>de("CUSTOM_REPORT_LIMIT"))throw new tt(Ce.CUSTOM_REPORT_FREQUENCY_TOO_HIGH);this.customReportCounterTimer||(this.customReportCounterTimer=window.setInterval(()=>{this.customReportCount=0},5e3));const c=Date.now(),u=s.map(h=>({type:ao.USER_ANALYTICS,data:$r($r({sid:t},h),{},{lts:c})}));try{de("NEW_REPORT_SERVER")?await this.postDataToStatsCollector2(u):await this.postDataToStatsCollector(u)}catch(h){throw J.error("send custom report message failed",h.toString()),new tt(Ce.CUSTOM_REPORT_SEND_FAILED,h.message)}}reportAlarm(t,s){const c=t?this.baseInfoMap.get(t):void 0,u=c==null?void 0:c.info,h=Date.now(),_=$r($r($r({},u),s),{},{vid:(u==null?void 0:u.vid)===void 0?0:Number(u.vid),elapse:c?h-c.startTime:0,eventType:Rs.ALARM_STATUS_NOTIFY,lts:h,installId:I2(),processId:de("PROCESS_ID")});this.send({type:ao.ALARM_STATUS_NOTIFY,data:_},!0)}sendApiInvoke(t){const s=de("NOT_REPORT_EVENT");if(t.tag&&Et(s)&&Et(s).call(s,t.tag))return!1;if(t.sid===null)return this.apiInvokeUploadPendingItems.push(t),!1;const c=this.baseInfoMap.get(t.sid);if(!c)return this.apiInvokeUploadPendingItems.push(t),!1;const u=c.info,h=u.cname,_=u.uid,B=u.cid;let Q;if(t.lts=t.lts||Date.now(),t.error)if(t.error instanceof tt){const D=t.error,O=D.code,P=D.message;Q=O||P||t.error.toString()}else Q=t.error.toString();const T={invokeId:t.invokeId,sid:t.sid,cname:h,cid:B,uid:_,lts:t.lts,success:t.success,elapse:t.lts-c.startTime,execElapse:t.lts-t.apiInvokeTime,apiName:t.name,options:t.options?JSON.stringify(t.options):void 0,execStates:t.states?JSON.stringify(t.states):void 0,execResult:t.result?JSON.stringify(t.result):void 0,errorCode:t.error?Q:void 0,errorMsg:t.error?JSON.stringify(t.error):void 0};return this.send({type:ao.API_INVOKE,data:T},!1),!0}addSid(t){this.sids.add(t)}removeSid(t){this.sids.delete(t)}appendSessionId(){const t=this.apiInvokeUploadPendingItems;if(t.length===0)return;const s=Array.from(this.sids).find(c=>c!==null);s&&t.forEach(c=>{c&&(c.sid=s,this.sendApiInvoke(Object.assign({},c)))}),t.length=0}send(t,s){if(s)return this.keyEventUploadPendingItems.push(t),void this.sendItems(this.keyEventUploadPendingItems,!0);this.normalEventUploadPendingItems.push(t),this.normalEventUploadPendingItems.length>de("NORMAL_EVENT_QUEUE_CAPACITY")&&this.normalEventUploadPendingItems.splice(0,1),this.normalEventUploadPendingItems.length>=10&&this.sendItems(this.normalEventUploadPendingItems,!1)}doSend(){this.keyEventUploadPendingItems.length>0&&this.sendItems(this.keyEventUploadPendingItems,!0),this.normalEventUploadPendingItems.length>0&&Date.now()-this.lastSendNormalEventTime>=5e3&&this.sendItems(this.normalEventUploadPendingItems,!1)}sendItems(t,s){const c=[],u=[];for(;t.length;){const _=t.shift();c.length<20?c.push(_):u.push(_)}t.push(...u);for(const _ of[...c]){var h;this.ltsList.indexOf(_.data.lts)!==-1?(_.data.lts=this.ltsList[this.ltsList.length-1]+1,this.ltsList.push(_.data.lts)):(this.ltsList.push(_.data.lts),x1(h=this.ltsList).call(h,(B,Q)=>B-Q))}return s||(this.lastSendNormalEventTime=Date.now()),de("ENABLE_EVENT_REPORT")&&c.length&&(de("NEW_REPORT_SERVER")?this.postDataToStatsCollector2(c):this.postDataToStatsCollector(c)).catch((_=>B=>{de("EVENT_REPORT_RETRY")&&(s?this.keyEventUploadPendingItems=this.keyEventUploadPendingItems.concat(_):(this.normalEventUploadPendingItems=this.normalEventUploadPendingItems.concat(_),this.normalEventUploadPendingItems.length>de("NORMAL_EVENT_QUEUE_CAPACITY")&&(this.normalEventUploadPendingItems.splice(0,this.normalEventUploadPendingItems.length-de("NORMAL_EVENT_QUEUE_CAPACITY")),J.warning("report: drop normal events"))))})(c)),t}async postDataToStatsCollector2(t){ki.networkState===tA.OFFLINE&&await Ut.race([ki.onlineWaiter,so(2*So.maxRetryTimeout)]);const s=h=>{let _=new Uint8Array;return h.forEach(B=>{const Q=MC(JSON.stringify(B.data)),T=new ArrayBuffer(5),D=(P=>{let U=0;return Object.entries(ao).forEach(H=>{let $=B2(H,2),Z=$[0];$[1]===P.type&&(U=WR[Z])}),U})(B),O=new DataView(T);O.setUint16(0,Q.byteLength,!0),O.setUint8(2,255&D),O.setUint8(3,D>>>8&255),O.setUint8(4,D>>>16&255),_=n4(_,new Uint8Array(T)),_=n4(_,Q)}),_},c="event";let u=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("NEW_REPORT_SERVER_DOMAINS")[0],"&p=443&d=").concat(c):"https://".concat(de("NEW_REPORT_SERVER_DOMAINS")[0],"/").concat(c);for(let h=0;h<2;h+=1){h===1&&(u=this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("NEW_REPORT_SERVER_DOMAINS")[1],"&p=443&d=").concat(c):"https://".concat(de("NEW_REPORT_SERVER_DOMAINS")[1],"/").concat(c));try{await Gi(u,{timeout:1e4,data:s(t),headers:$r($r({biz:"webrtc",sendts:Math.round(Date.now()/1e3),debug:"false"},this._appId&&{appid:this._appId}),{},{"Content-Type":"application/octet-stream"})},!0)}catch(_){if(h===1)throw _;continue}return}}async postDataToStatsCollector(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=(Q=>{const T=Q&&Q.data.sid&&this.baseInfoMap.get(Q.data.sid);return T&&T.info.vid&&+T.info.vid||0})(t[0]),u=c?void 0:this._aid,h={msgType:"EventMessages",sentTs:Math.round(Date.now()/1e3),payloads:t.map(Q=>JSON.stringify(Q)),vid:c,aid:u};ki.networkState===tA.OFFLINE&&await Ut.race([ki.onlineWaiter,so(2*So.maxRetryTimeout)]);const _=s?"/events/proto-raws":"/events/messages";let B=this.url||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("EVENT_REPORT_DOMAIN"),"&p=").concat(de("STATS_COLLECTOR_PORT"),"&d=").concat(_):"https://".concat(de("EVENT_REPORT_DOMAIN"),":").concat(de("STATS_COLLECTOR_PORT")).concat(_));for(let Q=0;Q<2;Q+=1){Q===1&&(B=this.backupUrl||(this.proxyServer?"https://".concat(this.proxyServer,"/rs/?h=").concat(de("EVENT_REPORT_BACKUP_DOMAIN"),"&p=").concat(de("STATS_COLLECTOR_PORT"),"&d=").concat(_):"https://".concat(de("EVENT_REPORT_BACKUP_DOMAIN"),":").concat(de("STATS_COLLECTOR_PORT")).concat(_)));try{s?await Jl(B,{timeout:1e4,data:h}):await Gi(B,{timeout:1e4,data:h})}catch(T){if(Q===1)throw T;continue}return}}createBaseInfo(t,s){const c=Object.assign({},B4);return c.sid=t,this.baseInfoMap.set(t,{info:c,startTime:s}),c}reportResourceTiming(t,s){const c=performance.getEntriesByName(t),u=c[c.length-1];u&&this.reportApiInvoke(s,{name:"Client.resourceTiming",options:u,tag:vn.TRACER}).onSuccess()}};JR.on("REPORT_LOG_UPLOAD",t=>{t.networkState=ki.networkState,qt.reportApiInvoke(null,{name:"logUploadError",options:t,tag:vn.TRACER}).onSuccess("logUploadError")});let qe=class extends tt{constructor(t){super(t,arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",arguments.length>2?arguments[2]:void 0),bo(this,"name","AgoraRTCException")}print(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"error";return super.print(t,J)}throw(){super.throw(J)}};const Js={getDisplayMedia:!1,getStreamFromExtension:!1,supportUnifiedPlan:!1,supportMinBitrate:!1,supportSetRtpSenderParameters:!1,supportDualStream:!0,webAudioMediaStreamDest:!1,supportReplaceTrack:!1,supportWebGL:!1,webAudioWithAEC:!1,supportRequestFrame:!1,supportShareAudio:!1,supportDualStreamEncoding:!1,supportDataChannel:!1,supportPCSetConfiguration:!1,supportWebRTCEncodedTransform:!1,supportWebRTCInsertableStream:!1,supportRequestVideoFrameCallback:!1,supportWebCrypto:!1,supportSuppressLocalAudioPlayback:!1,supportRestrictOwnAudio:!1};function Si(){return Js}function w4(){return"setSinkId"in HTMLAudioElement.prototype&&(!de("RESTRICTION_SET_PLAYBACK_DEVICE")||(DA()||yn())&&!OR())}function Gf(){return!Js.supportUnifiedPlan||de("CHROME_FORCE_PLAN_B")&&Al()}function D4(){return de("ENABLE_JOIN_V4")}function eo(t){return!(Ln()||e4(87)||Gf()||!de("ENABLE_PRE_SUB")&&(t==null||!t.autoSubscribe||de("FORCE_DISABLE_AUTO_SUB")))}function ry(t){return de("ENABLE_INSTANT_VIDEO")?de("ENABLE_INSTANT_VIDEO"):!(t==null||!t.autoSubscribe||de("FORCE_DISABLE_AUTO_SUB"))}function b4(){return!!de("FORCE_ENABLE_AUT_CC")||!Gf()&&(!!de("ENABLE_AUT_CC")||void 0)}function N4(){return!!de("FORCE_ENABLE_AUT_CC")||!Gf()&&(!!de("ENABLE_AUT_FEEDBACK")||void 0)}function O4(){return navigator.mediaDevices&&"getSupportedConstraints"in navigator.mediaDevices}function L4(){if(O4()){const t=navigator.mediaDevices.getSupportedConstraints();return!(!("suppressLocalAudioPlayback"in t)||!t.suppressLocalAudioPlayback)}return al(141)||wu(141)||A2(141)}function M4(){if(O4()){const t=navigator.mediaDevices.getSupportedConstraints();return!(!("restrictOwnAudio"in t)||!t.restrictOwnAudio)}return al(141)||wu(141)||A2(125)}let Yo=function(t){return t.IOS_15_16_INTERRUPTION_START="ios15_16-interruption-start",t.IOS_15_16_INTERRUPTION_END="ios15_16-interruption-end",t.IOS_INTERRUPTION_START="ios-interruption-start",t.IOS_INTERRUPTION_END="ios-interruption-end",t.STATE_CHANGE="state-change",t}({});function S2(t,s,c){return{sampleRate:t,stereo:s,bitrate:c}}function Hi(t,s,c,u,h){return{width:t,height:s,frameRate:c,bitrateMin:u,bitrateMax:h}}function gl(t,s,c,u,h){return{width:{max:t},height:{max:s},frameRate:c,bitrateMin:u,bitrateMax:h}}function iy(t,s){return{numSpatialLayers:t,numTemporalLayers:s}}const lU={"90p":Hi(160,90),"90p_1":Hi(160,90),"120p":Hi(160,120,15,30,65),"120p_1":Hi(160,120,15,30,65),"120p_3":Hi(120,120,15,30,50),"120p_4":Hi(212,120),"180p":Hi(320,180,15,30,140),"180p_1":Hi(320,180,15,30,140),"180p_3":Hi(180,180,15,30,100),"180p_4":Hi(240,180,15,30,120),"240p":Hi(320,240,15,40,200),"240p_1":Hi(320,240,15,40,200),"240p_3":Hi(240,240,15,40,140),"240p_4":Hi(424,240,15,40,220),"360p":Hi(640,360,15,80,400),"360p_1":Hi(640,360,15,80,400),"360p_3":Hi(360,360,15,80,260),"360p_4":Hi(640,360,30,80,600),"360p_6":Hi(360,360,30,80,400),"360p_7":Hi(480,360,15,80,320),"360p_8":Hi(480,360,30,80,490),"360p_9":Hi(640,360,15,80,800),"360p_10":Hi(640,360,24,80,800),"360p_11":Hi(640,360,24,80,1e3),"480p":Hi(640,480,15,100,500),"480p_1":Hi(640,480,15,100,500),"480p_2":Hi(640,480,30,100,1e3),"480p_3":Hi(480,480,15,100,400),"480p_4":Hi(640,480,30,100,750),"480p_6":Hi(480,480,30,100,600),"480p_8":Hi(848,480,15,100,610),"480p_9":Hi(848,480,30,100,930),"480p_10":Hi(640,480,10,100,400),"720p":Hi(1280,720,15,120,1130),"720p_auto":Hi(1280,720,30,900,3e3),"720p_1":Hi(1280,720,15,120,1130),"720p_2":Hi(1280,720,30,120,2e3),"720p_3":Hi(1280,720,30,120,1710),"720p_5":Hi(960,720,15,120,910),"720p_6":Hi(960,720,30,120,1380),"1080p":Hi(1920,1080,15,120,2080),"1080p_1":Hi(1920,1080,15,120,2080),"1080p_2":Hi(1920,1080,30,120,3e3),"1080p_3":Hi(1920,1080,30,120,3150),"1080p_5":Hi(1920,1080,60,120,4780),"1440p":Hi(2560,1440,30,120,4850),"1440p_1":Hi(2560,1440,30,120,4850),"1440p_2":Hi(2560,1440,60,120,7350),"4k":Hi(3840,2160,30,120,8910),"4k_1":Hi(3840,2160,30,120,8910),"4k_3":Hi(3840,2160,60,120,13500)},dU={"480p":gl(640,480,5),"480p_1":gl(640,480,5),"480p_2":gl(640,480,30),"480p_3":gl(640,480,15),"720p":gl(1280,720,5),"720p_auto":Hi(1280,720,30,900,3e3),"720p_1":gl(1280,720,5),"720p_2":gl(1280,720,30),"720p_3":gl(1280,720,15),"1080p":gl(1920,1080,5),"1080p_1":gl(1920,1080,5),"1080p_2":gl(1920,1080,30),"1080p_3":gl(1920,1080,15)},uU={"1SL1TL":iy(1,1),"3SL3TL":iy(3,3),"2SL3TL":iy(2,3)};function El(t){return t||(t="480p_1"),typeof t=="string"?Object.assign({},lU[t]):t}function ny(t){return typeof t=="string"?Object.assign({},dU[t]):t}function Vf(t){return typeof t=="string"?Object.assign({},uU[t]):t}const gU={speech_low_quality:S2(16e3,!1),speech_standard:S2(32e3,!1,18),music_standard:S2(48e3,!1),standard_stereo:S2(48e3,!0,56),high_quality:S2(48e3,!1,128),high_quality_stereo:S2(48e3,!0,192)};function Kf(t){return typeof t=="string"?Object.assign({},gU[t]):t}const lh=[];function Da(t){return As(t,"mediaSource",["screen","window","application"]),!0}let xt=function(t){return t.NEED_RENEGOTIATE="@need_renegotiate",t.NEED_REPLACE_TRACK="@need_replace_track",t.NEED_REPLACE_MIXING_TRACK="@need_replace_mixing_track",t.NEED_CLOSE="@need_close",t.NEED_ENABLE_TRACK="@need_enable_track",t.NEED_DISABLE_TRACK="@need_disable_track",t.NEED_SESSION_ID="@need_sid",t.SET_OPTIMIZATION_MODE="@set_optimization_mode",t.GET_STATS="@get_stats",t.GET_RTC_STATS="@get_rtc_stats",t.GET_LOW_VIDEO_TRACK="@get_low_video_track",t.NEED_RESET_REMOTE_SDP="@need_reset_remote_sdp",t.NEED_UPDATE_VIDEO_ENCODER="@need_update_video_encoder",t.NEED_UPDATE_VIDEO_SEND_PARAMETERS="@need_update_video_send_parameters",t.NEED_MUTE_TRACK="@need_mute_track",t.NEED_UNMUTE_TRACK="@need_unmute_track",t}({}),gn=function(t){return t.SCREEN_TRACK="screen_track",t.CUSTOM_TRACK="custome_track",t.LOW_STREAM="low_stream",t.SCREEN_LOW_TRACK="screen_low_track",t}({}),xC=function(t){return t[t.HIGH_STREAM=0]="HIGH_STREAM",t[t.LOW_STREAM=1]="LOW_STREAM",t}({}),Os=function(t){return t[t.HIGH_STREAM=0]="HIGH_STREAM",t[t.LOW_STREAM=1]="LOW_STREAM",t[t.HIGH_STREAM_LAYER1=4]="HIGH_STREAM_LAYER1",t[t.HIGH_STREAM_LAYER2=5]="HIGH_STREAM_LAYER2",t[t.HIGH_STREAM_LAYER3=6]="HIGH_STREAM_LAYER3",t[t.HIGH_STREAM_LAYER4=7]="HIGH_STREAM_LAYER4",t[t.HIGH_STREAM_LAYER5=8]="HIGH_STREAM_LAYER5",t[t.HIGH_STREAM_LAYER6=9]="HIGH_STREAM_LAYER6",t}({}),YJ=function(t){return t[t.DISABLE=0]="DISABLE",t[t.LOW_STREAM=1]="LOW_STREAM",t[t.AUDIO_ONLY=2]="AUDIO_ONLY",t[t.HIGH_STREAM_LAYER1=3]="HIGH_STREAM_LAYER1",t[t.HIGH_STREAM_LAYER2=4]="HIGH_STREAM_LAYER2",t[t.HIGH_STREAM_LAYER3=5]="HIGH_STREAM_LAYER3",t[t.HIGH_STREAM_LAYER4=6]="HIGH_STREAM_LAYER4",t[t.HIGH_STREAM_LAYER5=7]="HIGH_STREAM_LAYER5",t[t.HIGH_STREAM_LAYER6=8]="HIGH_STREAM_LAYER6",t}({}),dh=function(t){return t.TRANSCEIVER_UPDATED="transceiver-updated",t.SEI_TO_SEND="sei-to-send",t.SEI_RECEIVED="sei-received",t.TRACK_UPDATED="track-updated",t}({}),R2=function(t){return t.SOURCE_STATE_CHANGE="source-state-change",t.TRACK_ENDED="track-ended",t.BEAUTY_EFFECT_OVERLOAD="beauty-effect-overload",t.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",t.CLOSED="closed",t}({}),$1=function(t){return t.FIRST_FRAME_DECODED="first-frame-decoded",t.VIDEO_ELEMENT_VISIBLE_STATUS="video-element-visible-status",t.VIDEO_STATE_CHANGED="video-state-changed",t.PLAY_START="play-start",t.PLAY_END="play-end",t.FIRST_FRAME_RENDER="first-frame-render",t}({}),y2=function(t){return t.AUDIO="audio",t.VIDEO="video",t.DATA="data",t}({}),zA=function(t){return t.AUDIO_SOURCE_STATE_CHANGE="audio_source_state_change",t.RECEIVE_TRACK_BUFFER="receive_track_buffer",t.ON_AUDIO_BUFFER="on_audio_buffer",t.UPDATE_SOURCE="update_source",t}({});(function(t){t.UPDATE_TRACK_SOURCE="update-track-source"})({});const oy={sendVolumeLevel:0,sendBitrate:0,sendBytes:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,currentPacketLossRate:0},sy={sendBytes:0,sendBitrate:0,sendPackets:0,sendPacketsLost:0,sendJitterMs:0,sendRttMs:0,sendResolutionHeight:0,sendResolutionWidth:0,captureResolutionHeight:0,captureResolutionWidth:0,targetSendBitrate:0,totalDuration:0,totalFreezeTime:0,currentPacketLossRate:0},k4={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveLevel:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receivePacketsDiscarded:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1},EU={uplinkNetworkQuality:0,downlinkNetworkQuality:0},P4={transportDelay:0,end2EndDelay:0,receiveBitrate:0,receiveBytes:0,receiveDelay:0,receivePackets:0,receivePacketsLost:0,receiveResolutionHeight:0,receiveResolutionWidth:0,totalDuration:0,totalFreezeTime:0,freezeRate:0,packetLossRate:0,currentPacketLossRate:0,publishDuration:-1};let lA=function(t){return t.ON_TRACK="on_track",t.ON_NODE="on_node",t}({}),Z1=function(t){return t.REQUEST_UPDATE_CONSTRAINTS="request_update_constraints",t.REQUEST_CONSTRAINTS="request_constraints",t}({}),FC=function(t){return t.IDLE="IDLE",t.INITING="INITING",t.INITEND="INITEND",t}({}),uh=function(t){return t.STATE_CHANGE="state_change",t.RECORDING_DEVICE_CHANGED="recordingDeviceChanged",t.PLAYOUT_DEVICE_CHANGED="playoutDeviceChanged",t.CAMERA_DEVICE_CHANGED="cameraDeviceChanged",t}({}),Ca=function(t){return t.NONE="none",t.INIT="init",t.CANPLAY="canplay",t.PLAYING="playing",t.PAUSED="paused",t.SUSPEND="suspend",t.STALLED="stalled",t.WAITING="waiting",t.ERROR="error",t.DESTROYED="destroyed",t.ABORT="abort",t.ENDED="ended",t.EMPTIED="emptied",t.LOADEDDATA="loadeddata",t}({}),Ud=function(t){return t[t.VideoStateStopped=0]="VideoStateStopped",t[t.VideoStateStarting=1]="VideoStateStarting",t[t.VideoStateDecoding=2]="VideoStateDecoding",t[t.VideoStateFrozen=3]="VideoStateFrozen",t}({});const ay={uninit:100,none:110,init:120,loadeddata:130,canplay:200,playing:210,paused:220,suspend:300,stalled:310,waiting:320,error:330,destroyed:340,abort:350,ended:360,emptied:370};let Hf=function(t){return t.OPEN="open",t.MESSAGE="message",t.CLOSE="close",t.CLOSING="closing",t.ERROR="error",t}({});function Mi(t,s,c,u,h){var _,B,Q={};return Object.keys(u).forEach(function(T){Q[T]=u[T]}),Q.enumerable=!!Q.enumerable,Q.configurable=!!Q.configurable,("value"in Q||Q.initializer)&&(Q.writable=!0),Q=VA(_=RI(B=c.slice()).call(B)).call(_,function(T,D){return D(t,s,T)||T},Q),h&&Q.initializer!==void 0&&(Q.value=Q.initializer?Q.initializer.call(h):void 0,Q.initializer=void 0),Q.initializer===void 0?(Object.defineProperty(t,s,Q),null):Q}function U4(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=Array(s);c{var s;qt.reportApiInvoke(null,{name:Ti.GET_MEDIA_STREAM_TRACK,options:[],tag:vn.TRACER}).onSuccess(((s=this._mediaStreamTrack)===null||s===void 0?void 0:s.label)||"")},this.mediaStreamTrack.id||this.getTrackId()),this._mediaStreamTrack}getRTCRtpTransceiver(t){return t===xC.LOW_STREAM?this._lowRtpTransceiver:this._rtpTransceiver}getMediaStreamTrackSettings(){return this.getMediaStreamTrack(!0).getSettings()}close(){this._isClosed=!0,this._lowRtpTransceiver=void 0,this._rtpTransceiver=void 0,function(t){const s=lh.indexOf(t);s!==-1&&lh.splice(s,1)}(this),this.emit(R2.CLOSED),this.removeAllListeners(dh.SEI_RECEIVED)}_updateRtpTransceiver(t,s){if(s===xC.LOW_STREAM){if(this._lowRtpTransceiver===t)return;this._lowRtpTransceiver=t}else{if(this._rtpTransceiver===t)return;this._rtpTransceiver=t}this.emit(dh.TRANSCEIVER_UPDATED,t,s)}},T2=class extends F4{get isExternalTrack(){return this._isExternalTrack}get muted(){return this._muted}get enabled(){return this._enabled}get processorContext(){return this._processorContext}constructor(t,s){super(t,s),We(this,"_enabled",!0),We(this,"_muted",!1),We(this,"_isExternalTrack",!1),We(this,"_isClosed",!1),We(this,"_enabledMutex",void 0),We(this,"processor",void 0),We(this,"_processorContext",void 0),We(this,"_handleTrackEnded",()=>{this.onTrackEnded()}),this._enabledMutex=new ra("".concat(this.getTrackId())),t.addEventListener("ended",this._handleTrackEnded)}getTrackLabel(){var t,s;return(t=(s=this._originMediaStreamTrack)===null||s===void 0?void 0:s.label)!==null&&t!==void 0?t:""}close(){this._isClosed||(this.stop(),this._originMediaStreamTrack.stop(),this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack.stop(),this._mediaStreamTrack=null),this._originMediaStreamTrack=null,this._enabledMutex=null,J.debug("[".concat(this.getTrackId(),"] close")),this.emit(xt.NEED_CLOSE),super.close())}async _updateOriginMediaStreamTrack(t,s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];this._isExternalTrack=c,t!==this._originMediaStreamTrack&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),s&&this._originMediaStreamTrack.stop()),t.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=t,this._muted&&(this._originMediaStreamTrack.enabled=!1),this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this),this.processor&&this._processorContext&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this._processorContext}))}_getDefaultPlayerConfig(){return{}}onTrackEnded(){J.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(R2.TRACK_ENDED)}stateCheck(t,s){if(J.debug("check track state, [muted: ".concat(this._muted,", enabled: ").concat(this._enabled,"] to [").concat(t,": ").concat(s,"]")),ll(s,t),this._enabled&&this._muted&&t==="enabled"&&s===!1)throw new tt(Ce.TRACK_STATE_UNREACHABLE,"cannot set enabled while the track is muted").print("error",J);if(!this._enabled&&!this._muted&&t==="muted"&&s===!0)throw new tt(Ce.TRACK_STATE_UNREACHABLE,"cannot set muted while the track is disabled").print("error",J)}getProcessorStats(){return this._processorContext&&this._processorContext.gatherStats()||[]}getProcessorUsage(){return this._processorContext?this._processorContext.gatherUsage():Ut.resolve([])}};const G4=window.AudioContext||window.webkitAudioContext;let Ay,ec=null;const bn=new class extends Cn{constructor(){super(...arguments),We(this,"prevState",void 0),We(this,"curState",void 0),We(this,"currentTime",void 0),We(this,"currentTimeStuckAt",void 0),We(this,"interruptDetectorTrack",void 0),We(this,"onLocalAudioTrackMute",()=>{J.info("ios15-interruption-start"),this.emit(Yo.IOS_15_16_INTERRUPTION_START)}),We(this,"onLocalAudioTrackUnmute",async()=>{J.info("ios15-interruption-end"),this.curState!=="running"||this.duringInterruption?J.info("ios15-interruption-end-canceled"):(ec&&await ec.suspend(),this.emit(Yo.IOS_15_16_INTERRUPTION_END))})}get duringInterruption(){return this.prevState==="running"&&this.curState==="interrupted"}bindInterruptDetectorTrack(t){J.debug("webaudio bindInterruptDetectorTrack ".concat(t.getTrackId())),this.interruptDetectorTrack||(this.interruptDetectorTrack=t,this.interruptDetectorTrack._mediaStreamTrack.onmute=this.onLocalAudioTrackMute,this.interruptDetectorTrack._mediaStreamTrack.onunmute=this.onLocalAudioTrackUnmute)}unbindInterruptDetectorTrack(t){J.debug("webaudio unbindInterruptDetectorTrack ".concat(t.getTrackId())),this.interruptDetectorTrack&&this.interruptDetectorTrack===t&&(this.interruptDetectorTrack._mediaStreamTrack&&(this.interruptDetectorTrack._mediaStreamTrack.onmute=null,this.interruptDetectorTrack._mediaStreamTrack.onunmute=null),this.interruptDetectorTrack=void 0)}};function w2(){if(!ec){if(function(){if(!G4)return void J.error("your browser is not support web audio");J.info("create audio context");const t=Xn({},de("WEBAUDIO_INIT_OPTIONS"));J.debug("audio context init option:",JSON.stringify(t)),ec=new G4(t),bn.curState=ec.state,ec.onstatechange=()=>{bn.prevState=bn.curState,bn.curState=ec?ec.state:void 0;const s=bn.prevState,c=bn.curState,u=c==="running",h=c==="interrupted",_=s==="running",B=s==="suspended",Q=s==="interrupted",T=Qi().osVersion;(Ia()||Y1())&&_&&h&&(J.info("ios".concat(T,"-interruption-start")),bn.emit(Yo.IOS_INTERRUPTION_START)),(Ia()||Y1())&&(B||Q)&&u&&(J.info("ios".concat(T,"-interruption-end")),bn.emit(Yo.IOS_INTERRUPTION_END)),s!==c&&bn.emit(Yo.STATE_CHANGE,c,s)},setInterval(()=>{var s;const c=(s=ec)===null||s===void 0?void 0:s.currentTime;bn.currentTime!==c?(bn.currentTimeStuckAt&&(J.debug("AudioContext current time resume at ".concat(c)),bn.currentTimeStuckAt=void 0),bn.currentTime=c):(c!==bn.currentTimeStuckAt&&(qt.reportApiInvoke(null,{name:"WEB_AUDIO_CURRENT_TIME_STUCK",options:{currentTime:c},tag:vn.TRACER}).onSuccess(),J.warning("AudioContext current time stuck at ".concat(c))),bn.currentTimeStuckAt=c)},5e3),async function(s){const c=["click","contextmenu","auxclick","dblclick","mousedown","mouseup","touchend","keydown","keyup"];let u,h,_=!1,B=!1,Q=!1;function T(se){s.state==="running"?D(!1):Ia()||Y1()?s.state==="suspended"&&(D(!0),se&&s.resume().then(O,O)):s.state!=="closed"&&(D(!0),se&&s.resume().then(O,O))}function D(se){if(_!==se){_=se;for(let ge=0,me=c;ge",u=ge.children.item(0),u.controls=!1,u.disableRemotePlayback=!0,u.preload="auto",u.srcObject=se.stream,h=()=>{if(de("IOS_AUTO_RESTART_BG_TAG")&&u&&u.srcObject&&!Q&&(!u.paused||B!==!0)){u.paused||u.pause();try{Q=!0,U()}catch{Q=!1}return!0}},H(!0)}return bn.on(Yo.STATE_CHANGE,function(){T(!0)}),T(!1),h}(ec).then(s=>{Ay=s})}(),!ec)throw new tt(Ce.NOT_SUPPORTED,"can not create audio context");return ec}return ec}function gh(t){if(function(){if(cy!==null)return cy;const u=w2(),h=u.createBufferSource(),_=u.createGain(),B=u.createGain();h.connect(_),h.connect(B),h.disconnect(_);let Q=!1;try{h.disconnect(_)}catch{Q=!0}return h.disconnect(),cy=Q,Q}())return;const s=t.connect,c=t.disconnect;t.connect=(u,h,_)=>{var B;return t._inputNodes||(t._inputNodes=[]),Et(B=t._inputNodes).call(B,u)||(u instanceof AudioNode?(t._inputNodes.push(u),s.call(t,u,h,_)):s.call(t,u,h)),t},t.disconnect=(u,h,_)=>{c.call(t),u?UR(t._inputNodes,u):t._inputNodes=[];for(const B of t._inputNodes)s.call(t,B)}}let cy=null;function hi(t,s){let c=!1;const u=1/s;if(de("DISABLE_WEBAUDIO")){const h=window.setInterval(()=>{c?window.clearInterval(h):t(performance.now()/1e3)},1e3*u)}else{const h=w2();let _=h.createGain();_.gain.value=0,_.connect(h.destination);const B=()=>{if(c)return void(_=null);const Q=h.createOscillator();Q.onended=B,Q.connect(_),Q.start(0),Q.stop(h.currentTime+u),t(h.currentTime)};B()}return()=>{c=!0}}let V4=class{constructor(){We(this,"context",void 0),We(this,"analyserNode",void 0),We(this,"sourceNode",void 0),this.context=w2(),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4}updateSource(t){if(t!==this.sourceNode){if(this.sourceNode)try{this.sourceNode.disconnect(this.analyserNode)}catch{}this.sourceNode=t,t==null||t.connect(this.analyserNode)}}getVolumeLevel(){if(!this.sourceNode||(!this.context||Ia()||Y1()||this.context.state!=="running"&&this.context.resume(),!this.analyserNode))return 0;const t=new Float32Array(this.analyserNode.fftSize);if(this.analyserNode.getFloatTimeDomainData)this.analyserNode.getFloatTimeDomainData(t);else{const c=new Uint8Array(this.analyserNode.fftSize);this.analyserNode.getByteTimeDomainData(c);for(let u=0;uc+u*u,0)/t.length;return Math.max(10*Math.log10(s)+100,0)/100}getAnalyserNode(){return this.analyserNode}rebuildAnalyser(){try{var t,s;(t=this.sourceNode)===null||t===void 0||t.disconnect(this.analyserNode),this.analyserNode=this.context.createAnalyser(),this.analyserNode.fftSize=2048,this.analyserNode.smoothingTimeConstant=.4,(s=this.sourceNode)===null||s===void 0||s.connect(this.analyserNode)}catch{J.warning("rebuild analyser node failed.")}}destroy(){this.updateSource(void 0)}},K4=class extends Cn{get processSourceNode(){return this.sourceNode}set processedNode(t){var s;if(!this.isDestroyed&&this._processedNode!==t){try{var c;(c=this.sourceNode)===null||c===void 0||c.disconnect(this.outputNode)}catch{}(s=this._processedNode)===null||s===void 0||s.disconnect(),this._processedNode=t,this.connect()}}get processedNode(){return this._processedNode}constructor(){super(),We(this,"outputNode",void 0),We(this,"outputTrack",void 0),We(this,"isPlayed",!1),We(this,"sourceNode",void 0),We(this,"context",void 0),We(this,"audioBufferNode",void 0),We(this,"destNode",void 0),We(this,"audioOutputLevel",0),We(this,"volumeLevelAnalyser",void 0),We(this,"_processedNode",void 0),We(this,"playNode",void 0),We(this,"isDestroyed",!1),We(this,"onNoAudioInput",void 0),We(this,"isNoAudioInput",!1),We(this,"_noAudioInputCount",0),this.context=w2(),this.playNode=this.context.destination,this.outputNode=this.context.createGain(),gh(this.outputNode),this.volumeLevelAnalyser=new V4}startGetAudioBuffer(t){this.audioBufferNode||(this.audioBufferNode=this.context.createScriptProcessor(t),this.outputNode.connect(this.audioBufferNode),this.audioBufferNode.connect(this.context.destination),this.audioBufferNode.onaudioprocess=s=>{this.emit(zA.ON_AUDIO_BUFFER,function(c){for(let u=0;u{bn.emit("autoplay-failed")}),this.isPlayed=!0,this.playNode=t||this.context.destination,this.outputNode.connect(this.playNode)}stop(){if(this.isPlayed)try{this.outputNode.disconnect(this.playNode)}catch{}this.isPlayed=!1}getAccurateVolumeLevel(){return this.volumeLevelAnalyser.getVolumeLevel()}async checkHasAudioInput(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;if(t>5)return this.isNoAudioInput=!0,this.onNoAudioInput&&this.onNoAudioInput(),!1;Ia()||Y1()?this.context.state==="suspended"&&this.context.resume():this.context.state!=="running"&&this.context.resume();const s=this.volumeLevelAnalyser.getAnalyserNode();let c;s.getFloatTimeDomainData?(c=new Float32Array(s.fftSize),s.getFloatTimeDomainData(c)):(c=new Uint8Array(s.fftSize),s.getByteTimeDomainData(c));let u=!1;for(let h=0;h{if(J.debug("ready to rebuild web audio, state:",this.context.state),this.isNoAudioInput&&await this.checkHasAudioInput(),!this.isNoAudioInput||this.isDestroyed)return document.body.removeEventListener("click",this.rebuildWebAudio,!0),void J.debug("rebuild web audio success, current volume status",this.getAccurateVolumeLevel());this.context.resume().then(()=>J.info("resume success")),J.debug("rebuild web audio because of ios 12 bugs"),this.disconnect();const B=this.track;this.track=this.track.clone(),this.isCurrentTrackCloned?B.stop():this.isCurrentTrackCloned=!0;const Q=new MediaStream([this.track]);this.sourceNode=this.context.createMediaStreamSource(Q),gh(this.sourceNode),this.volumeLevelAnalyser.rebuildAnalyser();const T=this.outputNode.gain.value;this.outputNode=this.context.createGain(),this.outputNode.gain.setValueAtTime(T,this.context.currentTime),gh(this.outputNode),this.emit(zA.UPDATE_SOURCE),this.connect(),this.audioElement.srcObject=Q,this.isPlayed&&this.play(this.playNode),this.checkHasAudioInput()}),t.kind!=="audio")throw new tt(Ce.UNEXPECTED_ERROR);this.track=t;const h=new MediaStream([this.track]);if(this.isRemoteTrack=!!s,this.sourceNode=this.context.createMediaStreamSource(h),gh(this.sourceNode),c){const B=c.clone();B.enabled=!0,this.clonedTrack=B,J.debug("create an unmuted track ".concat(B.id," from the original track ").concat(c.id," to get the volume"));const Q=this.context.createMediaStreamSource(new MediaStream([B]));gh(Q),this.originVolumeLevelAnalyser=new V4,this.originVolumeLevelAnalyser.updateSource(Q)}this.connect(),this.audioElement=document.createElement("audio"),this.audioElement.srcObject=h;const _=Qi();s&&_.os===ns.IOS&&Number((u=_.osVersion)===null||u===void 0?void 0:u.split(".")[0])<15&&(bn.on(Yo.STATE_CHANGE,()=>{this.context.state==="suspended"?document.body.addEventListener("click",this.rebuildWebAudio,!0):this.context.state==="running"&&this.rebuildWebAudio()}),this.checkHasAudioInput().then(B=>{B||document.body.addEventListener("click",this.rebuildWebAudio,!0)}))}updateTrack(t){this.sourceNode.disconnect(),this.track=t,this.isCurrentTrackCloned=!1;const s=new MediaStream([t]);this.sourceNode=this.context.createMediaStreamSource(s),gh(this.sourceNode),this.processedNode||this.sourceNode.connect(this.outputNode),this.emit(zA.UPDATE_SOURCE),this.audioElement.srcObject=s}destroy(){var t;this.audioElement.srcObject=null,this.audioElement.remove(),bn.off("state-change",this.rebuildWebAudio),(t=this.originVolumeLevelAnalyser)===null||t===void 0||t.destroy(),this.clonedTrack=void 0,super.destroy()}createMediaStreamSourceNode(t){return this.context.createMediaStreamSource(new MediaStream([t]))}updateOriginTrack(t){const s=t.clone();s.enabled=!0,this.clonedTrack&&(this.clonedTrack.stop(),this.clonedTrack=s),J.debug("create an unmuted track ".concat(s.id," from the original track ").concat(t.id," to get the volume"));const c=this.context.createMediaStreamSource(new MediaStream([s]));gh(c),this.originVolumeLevelAnalyser&&this.originVolumeLevelAnalyser.updateSource(c)}getOriginVolumeLevel(){return this.originVolumeLevelAnalyser?this.originVolumeLevelAnalyser.getVolumeLevel():this.getAccurateVolumeLevel()}};async function H4(t,s,c){const u=(_,B)=>_?typeof _!="number"?_.max||_.exact||_.ideal||_.min||B:_:B,h={audio:!!c&&{mandatory:{chromeMediaSource:"desktop"}},video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:t,maxHeight:u(s.height,1080),maxWidth:u(s.width,1920)}}};return s.frameRate&&typeof s.frameRate!="number"?(h.video.mandatory.maxFrameRate=s.frameRate.max,h.video.mandatory.minFrameRate=s.frameRate.min):typeof s.frameRate=="number"&&(h.video.mandatory.maxFrameRate=s.frameRate),await navigator.mediaDevices.getUserMedia(h)}async function hU(t,s){const c=await Y4(t.mediaSource),u=await function(B){let Q=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return new Ut((T,D)=>{const O=document.createElement("div");O.innerText="share screen",O.setAttribute("style","text-align: center; height: 25px; line-height: 25px; border-radius: 4px 4px 0 0; background: #D4D2D4; border-bottom: solid 1px #B9B8B9;");const P=document.createElement("div");P.setAttribute("style","width: 100%; height: 500px; padding: 15px 25px ; box-sizing: border-box;");const U=document.createElement("div");U.innerText="Agora Web Screensharing wants to share the contents of your screen with webdemo.agorabeckon.com. Choose what you'd like to share.",U.setAttribute("style","height: 12%;");const H=document.createElement("div");H.setAttribute("style","width: 100%; height: 80%; background: #FFF; border: solid 1px #CBCBCB; display: flex; flex-wrap: wrap; justify-content: space-around; overflow-y: scroll; padding: 0 15px; box-sizing: border-box;");const $=document.createElement("div");$.setAttribute("style","display: flex; justify-content: space-between; padding: 16px 0;");const Z=document.createElement("button");Z.innerHTML="cancel",Z.setAttribute("style","width: 85px;"),Z.onclick=()=>{document.body.removeChild(ge);const me=new Error("NotAllowedError");me.name="NotAllowedError",D(me)};let te=Q;const se=document.createElement("div");if(Q){const me=document.createElement("input");me.setAttribute("type","checkbox");const Qe=document.createElement("span");me.setAttribute("style","margin-right: 6px;"),Qe.innerText="Share audio",me.checked=te,me.onchange=()=>{te=me.checked},se.appendChild(me),se.appendChild(Qe)}$.appendChild(se),$.appendChild(Z),P.appendChild(U),P.appendChild(H),P.appendChild($);const ge=document.createElement("div");ge.setAttribute("style","position: fixed; z-index: 99999999; top: 50%; left: 50%; width: 620px; height: 525px; background: #ECECEC; border-radius: 4px; -webkit-transform: translate(-50%,-50%); transform: translate(-50%,-50%);"),ge.appendChild(O),ge.appendChild(P),document.body.appendChild(ge),B.map(me=>{if(me.id){const Qe=document.createElement("div");Qe.setAttribute("style","width: 30%; height: 160px; padding: 20px 0; text-align: center;box-sizing: content-box;");let Oe=me.thumbnail;try{Oe.getSize().width>1920&&(Oe=Oe.resize({width:1920}))}catch(we){throw we&&we.message.startsWith("Illegal invocation")&&console.error("Operate thumbnail error, please try to set contextIsolation: false. (https://github.com/electron/electron/issues/34953)"),we}Qe.innerHTML='
'+me.name.replace(/[\u00A0-\u9999<>\&]/g,function(we){return"&#"+we.charCodeAt(0)+";"})+"",Qe.onclick=()=>{document.body.removeChild(ge),T({sourceId:me.id,audio:te})},H.appendChild(Qe)}})})}(c,s),h=u.sourceId,_=u.audio;return await H4(h,t,_)}async function Y4(t){let s=["window","screen"];t!=="application"&&t!=="window"||(s=["window"]),t==="screen"&&(s=["screen"]);const c=ih();if(!c)throw console.error("failed to fetch electron, please mount it to window"),new tt(Ce.ELECTRON_IS_NULL);let u=null;try{var h;u=((h=c.desktopCapturer)===null||h===void 0?void 0:h.getSources({types:s}))||c.ipcRenderer.invoke("DESKTOP_CAPTURER_GET_SOURCES",{types:s})}catch{u=null}u&&u.then||(u=new Ut((_,B)=>{c.desktopCapturer.getSources({types:s},(Q,T)=>{Q?B(Q):_(T)})}));try{return await u}catch(_){throw new tt(Ce.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR,_.toString())}}const dy=new ra("safari");let j4=!1,tc=!1;async function Pi(t,s){let c=0,u=null;for(;c<2;)try{u=await uy(t,s,c>0);break}catch(h){if(h instanceof tt)throw J.error("[".concat(s,"] ").concat(h.toString())),h;const _=Yf(h.name||h.code||h,h.message);if(_.code===Ce.MEDIA_OPTION_INVALID){J.debug("[".concat(s,"] detect media option invalid, retry")),c+=1,await so(500);continue}throw J.error("[".concat(s,"] ").concat(_.toString())),_}if(!u)throw new tt(Ce.UNEXPECTED_ERROR,"can not find stream after getUserMedia");return u}async function uy(t,s,c){if(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)throw new tt(Ce.NOT_SUPPORTED,"can not find getUserMedia");c&&(t.video&&(delete t.video.width,delete t.video.height),t.screen&&(delete t.screen.width,delete t.screen.height));const u=Si(),h=new MediaStream;if(t.audioSource&&h.addTrack(t.audioSource),t.videoSource&&h.addTrack(t.videoSource),!t.audio&&!t.video&&!t.screen)return J.debug("Using Video Source/ Audio Source"),h;if(t.screen)if(ih())t.screen.sourceId?Eh(h,await H4(t.screen.sourceId,t.screen,!!t.screenAudio)):Eh(h,await hU(t.screen,!!t.screenAudio));else if(DA()&&t.screen.extensionId&&t.screen.mandatory){if(!u.getStreamFromExtension)throw new tt(Ce.NOT_SUPPORTED,"This browser does not support screen sharing");J.debug("[".concat(s,'] Screen access on chrome stable, looking for extension"'));const U=await(B=t.screen.extensionId,Q=s,new Ut((H,$)=>{try{chrome.runtime.sendMessage(B,{getStream:!0},Z=>{if(!Z||!Z.streamId)return J.error("[".concat(Q,"] No response from Chrome Plugin. Plugin not installed properly"),Z),void $(new tt(Ce.CHROME_PLUGIN_NO_RESPONSE,"No response from Chrome Plugin. Plugin not installed properly"));H(Z.streamId)})}catch(Z){J.error("[".concat(Q,"] AgoraRTC screensharing plugin is not accessible(").concat(B,")"),Z.toString()),$(new tt(Ce.CHROME_PLUGIN_NOT_INSTALL))}}));t.screen.mandatory.chromeMediaSourceId=U,Eh(h,await navigator.mediaDevices.getUserMedia({video:{mandatory:t.screen.mandatory}}))}else if(u.getDisplayMedia){var _;t.screen.mediaSource&&Da(t.screen.mediaSource);const U={width:t.screen.width,height:t.screen.height,frameRate:t.screen.frameRate,displaySurface:(_=t.screen.displaySurface)!==null&&_!==void 0?_:t.screen.mediaSource==="screen"?"monitor":t.screen.mediaSource},H=t.screen,$=H.selfBrowserSurface,Z=H.surfaceSwitching,te=H.systemAudio,se=H.preferCurrentTab,ge=H.windowAudio,me=H.monitorTypeSurfaces,Qe={selfBrowserSurface:$,surfaceSwitching:Z,systemAudio:te,preferCurrentTab:se,windowAudio:ge,monitorTypeSurfaces:me};!$&&delete Qe.selfBrowserSurface,!Z&&delete Qe.surfaceSwitching,!te&&delete Qe.systemAudio,!se&&delete Qe.preferCurrentTab,!ge&&delete Qe.windowAudio,!me&&delete Qe.monitorTypeSurfaces,J.debug("[".concat(s,"] getDisplayMedia:"),JSON.stringify({video:U,audio:t.screenAudio,controls:Qe})),Eh(h,await navigator.mediaDevices.getDisplayMedia(Xn({video:U,audio:t.screenAudio},Qe)))}else{if(!Ln())throw J.error("[".concat(s,"] This browser does not support screenSharing")),new tt(Ce.NOT_SUPPORTED,"This browser does not support screen sharing");{t.screen.mediaSource&&Da(t.screen.mediaSource);const U={video:{mediaSource:t.screen.mediaSource,width:t.screen.width,height:t.screen.height,frameRate:t.screen.frameRate}};J.debug("[".concat(s,"] getUserMedia: ").concat(JSON.stringify(U))),Eh(h,await navigator.mediaDevices.getUserMedia(U))}}var B,Q;if(!t.video&&!t.audio)return h;let T={video:t.video,audio:t.audio},D=de("MEDIA_DEVICE_CONSTRAINTS");if(D)try{typeof D=="string"&&(D=JSON.parse(D)),T=Cs(T,D)}catch{}J.debug("[".concat(s,"] GetUserMedia"),JSON.stringify(T)),Qi();let O,P=null;(Zs()||Ia()||Qf())&&(P=await dy.lock());try{O=await navigator.mediaDevices.getUserMedia(T)}catch(U){throw P&&P(),U}return T.audio&&(j4=!0),T.video&&(tc=!0),Eh(h,O),P&&P(),h}function Yf(t,s){switch(t){case"Starting video failed":case"OverconstrainedError":case"TrackStartError":return new tt(Ce.MEDIA_OPTION_INVALID,"".concat(t,": ").concat(s));case"NotFoundError":case"DevicesNotFoundError":return new tt(Ce.DEVICE_NOT_FOUND,"".concat(t,": ").concat(s));case"NotSupportedError":return new tt(Ce.NOT_SUPPORTED,"".concat(t,": ").concat(s));case"NotReadableError":return new tt(Ce.NOT_READABLE,"".concat(t,": ").concat(s));case"InvalidStateError":case"NotAllowedError":case"PERMISSION_DENIED":case"PermissionDeniedError":return new tt(Ce.PERMISSION_DENIED,"".concat(t,": ").concat(s));case"ConstraintNotSatisfiedError":return new tt(Ce.CONSTRAINT_NOT_SATISFIED,"".concat(t,": ").concat(s));default:return J.error("getUserMedia unexpected error",t),new tt(Ce.UNEXPECTED_ERROR,"".concat(t,": ").concat(s))}}function Eh(t,s){const c=t.getVideoTracks()[0],u=t.getAudioTracks()[0],h=s.getVideoTracks()[0],_=s.getAudioTracks()[0];_&&(u&&t.removeTrack(u),t.addTrack(_)),h&&(c&&t.removeTrack(c),t.addTrack(h))}const rc=new class extends Cn{get state(){return this._state}set state(t){t!==this._state&&(this.emit(uh.STATE_CHANGE,t),this._state=t)}constructor(){super(),We(this,"_state",FC.IDLE),We(this,"isAccessMicrophonePermission",!1),We(this,"isAccessCameraPermission",!1),We(this,"lastAccessMicrophonePermission",!1),We(this,"lastAccessCameraPermission",!1),We(this,"checkdeviceMatched",!1),We(this,"deviceInfoMap",new Map),this.init().then(()=>{navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",this.updateDevicesInfo.bind(this)),window.setInterval(()=>{(de("ENUMERATE_DEVICES_INTERVAL")||(c2()||Md()===ns.HARMONY_OS)&&Al())&&this.updateDevicesInfo()},de("ENUMERATE_DEVICES_INTERVAL_TIME"))}).catch(t=>J.error(t.toString()))}async enumerateDevices(t,s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)throw new tt(Ce.NOT_SUPPORTED,"enumerateDevices() not supported.");const u=await navigator.mediaDevices.enumerateDevices(),h=this.checkMediaDeviceInfoIsOk(u);let _=!this.isAccessMicrophonePermission&&t,B=!this.isAccessCameraPermission&&s;h.audio&&(_=!1),h.video&&(B=!1);let Q=null,T=null,D=null;if(!c&&(_||B)){if(dy.isLocked&&(J.debug("[device manager] wait GUM lock"),(await dy.lock())(),J.debug("[device manager] GUM unlock")),j4&&(_=!1,this.isAccessMicrophonePermission=!0),tc&&(B=!1,this.isAccessCameraPermission=!0),J.debug("[device manager] check media device permissions",t,s,_,B),_&&B){try{D=await navigator.mediaDevices.getUserMedia({audio:!0,video:!0})}catch(O){const P=Yf(O.name||O.code||O,O.message);if(P.code===Ce.PERMISSION_DENIED)throw P;J.warning("getUserMedia failed in getDevices",P)}this.isAccessCameraPermission=!0,this.isAccessMicrophonePermission=!0}else if(_){try{Q=await navigator.mediaDevices.getUserMedia({audio:t})}catch(O){const P=Yf(O.name||O.code||O,O.message);if(P.code===Ce.PERMISSION_DENIED)throw P;J.warning("getUserMedia failed in getDevices",P)}this.isAccessMicrophonePermission=!0}else if(B){try{T=await navigator.mediaDevices.getUserMedia({video:s})}catch(O){const P=Yf(O.name||O.code||O,O.message);if(P.code===Ce.PERMISSION_DENIED)throw P;J.warning("getUserMedia failed in getDevices",P)}this.isAccessCameraPermission=!0}J.debug("[device manager] mic permission",t,"cam permission",s)}try{const O=await navigator.mediaDevices.enumerateDevices();return Q&&Q.getTracks().forEach(P=>P.stop()),T&&T.getTracks().forEach(P=>P.stop()),D&&D.getTracks().forEach(P=>P.stop()),Q=null,T=null,D=null,O}catch(O){return Q&&Q.getTracks().forEach(P=>P.stop()),T&&T.getTracks().forEach(P=>P.stop()),D&&D.getTracks().forEach(P=>P.stop()),Q=null,T=null,D=null,new tt(Ce.ENUMERATE_DEVICES_FAILED,O.toString()).throw()}}async getRecordingDevices(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,t)).filter(s=>s.kind==="audioinput")}async getCamerasDevices(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!1,!0,t)).filter(s=>s.kind==="videoinput")}async getSpeakers(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];return(await this.enumerateDevices(!0,!1,t)).filter(s=>s.kind==="audiooutput")}searchDeviceIdByName(t){let s=null;return this.deviceInfoMap.forEach(c=>{c.device.label===t&&(s=c.device.deviceId)}),s}async getDeviceById(t){const s=(await this.enumerateDevices(!0,!0,!0)).find(c=>c.deviceId===t);if(!s)throw new tt(Ce.DEVICE_NOT_FOUND,"deviceId: ".concat(t));return s}async init(){this.state=FC.INITING;try{await this.updateDevicesInfo(),this.state=FC.INITEND}catch(t){throw this.state=FC.IDLE,(typeof isSecureContext=="boolean"?isSecureContext:location.protocol==="https:"||location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"||location.hostname==="::1")?(J.warning("Device Detection functionality cannot start properly.",t.toString()),t):new tt(Ce.WEB_SECURITY_RESTRICT,"Your context is limited by web security, please try using https protocol or localhost.")}}async updateDevicesInfo(){const t=await this.enumerateDevices(!0,!0,!0),s=Date.now(),c=[];if(t[0]&&t[0].label&&this.checkdeviceMatched===!1){this.checkdeviceMatched=!0;const h=t.find(B=>B.kind==="audioinput"&&B.deviceId==="default"),_=t.find(B=>B.kind==="audiooutput"&&B.deviceId==="default");h&&_?_.groupId===h.groupId?J.debug("[device-check] default input ".concat(h.label," and output ").concat(_.label," is the same group")):J.debug("[device-check] default input ".concat(h.label," and output ").concat(_.label," is not the same group")):J.debug("[device-check] default input or output not found")}const u=this.checkMediaDeviceInfoIsOk(t);if(t.forEach(h=>{if(!h.deviceId)return;const _=this.deviceInfoMap.get("".concat(h.kind,"_").concat(h.deviceId));if((_?_.state:"INACTIVE")!=="ACTIVE"){const B={initAt:s,updateAt:s,device:h,state:"ACTIVE"};this.deviceInfoMap.set("".concat(h.kind,"_").concat(h.deviceId),B),c.push(B)}_&&(_.updateAt=s)}),this.deviceInfoMap.forEach((h,_)=>{h.state==="ACTIVE"&&h.updateAt!==s&&(h.state="INACTIVE",c.push(h))}),this.state!==FC.INITEND)return u.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),void(u.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0));c.forEach(h=>{switch(h.device.kind){case"audioinput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(uh.RECORDING_DEVICE_CHANGED,h);break;case"videoinput":this.lastAccessCameraPermission&&this.isAccessCameraPermission&&this.emit(uh.CAMERA_DEVICE_CHANGED,h);break;case"audiooutput":this.lastAccessMicrophonePermission&&this.isAccessMicrophonePermission&&this.emit(uh.PLAYOUT_DEVICE_CHANGED,h)}}),u.audio&&(this.lastAccessMicrophonePermission=!0,this.isAccessMicrophonePermission=!0),u.video&&(this.lastAccessCameraPermission=!0,this.isAccessCameraPermission=!0)}checkMediaDeviceInfoIsOk(t){const s=t.filter(h=>h.kind==="audioinput"),c=t.filter(h=>h.kind==="videoinput"),u={audio:!1,video:!1};for(const h of s)if(h.label&&h.deviceId){u.audio=!0;break}for(const h of c)if(h.label&&h.deviceId){u.video=!0;break}return u}};let gy=!1;const bA=new class extends Cn{constructor(){super(...arguments),We(this,"onAutoplayFailed",void 0),We(this,"onAudioAutoplayFailed",void 0)}};function J4(){if(gy)return de("FLS_AUTOPLAY_EMITS")?(bA.onAutoplayFailed&&bA.onAutoplayFailed(),bA.emit("autoplay-failed")):void 0;{const t=s=>{s.preventDefault(),gy=!1,l2()?document.body.removeEventListener("click",t,!0):(document.body.removeEventListener("touchstart",t,!0),document.body.removeEventListener("mousedown",t,!0))};gy=!0,l2()?document.body.addEventListener("click",t,!0):(document.body.addEventListener("touchstart",t,!0),document.body.addEventListener("mousedown",t,!0)),J.info("detect media autoplay failed, document: https://docs.agora.io/cn/Voice/autoplay_policy_web_ng?platform=Web"),bA.onAutoplayFailed?bA.onAutoplayFailed():bA.onAudioAutoplayFailed?J.warning(`AgoraRTC.onAudioAutoplayFailed has been deprecated in favor of AgoraRTC.onAutoplayFailed. - - Please refer to the Agora document to migrate the newer API, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`):J.warning(`We have detected a media autoplay failed event, and found out that you haven't implemented AgoraRTC.onAutoplayFailed callback yet. - - It will cause audio/video element not playing automatically on some browsers without user interaction, possibly hurting user experiences. - - Please refer to the Agora document to properly handle autoplay failed event, https://docs.agora.io/en/Voice/autoplay_policy_web_ng?platform=Web .`),bA.emit("autoplay-failed")}}function Nc(t,s,c,u){if(!t)return;const h=qt.getBaseInfoBySessionId(t);if(!h)return;const _=h.info,B=Date.now(),Q=Xn(Xn({},_),{},{vid:_.vid===void 0?0:Number(_.vid),lts:B,elapse:B-h.startTime,cbRegistered:bA.onAutoplayFailed||bA.onAudioAutoplayFailed?1:-1,errorMsg:c,mediaType:s,trackId:u,extend:void 0});qt.send({type:ao.AUTOPLAY_FAILED,data:Q},!0)}const IU=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","error"],rA=new class{constructor(){We(this,"onAutoplayFailed",void 0),We(this,"elementMap",new Map),We(this,"elementStateMap",new Map),We(this,"elementsNeedToResume",[]),We(this,"sinkIdMap",new Map),We(this,"autoResumeAfterInterruption",t=>Ut.all(Array.from(this.elementMap.entries()).map(async s=>{let c=bc(s,2),u=c[0],h=c[1];const _=this.elementStateMap.get(u),B=h.srcObject.getAudioTracks()[0],Q=B&&B.readyState;if(J.debug("resume after interrupted, ele: ".concat(_," audio: ").concat(Q," ").concat(t)),Q==="live"){if(t)return h.pause(),h.play();if(bn.curState==="running")return Is()?(h.pause(),h.play()):_&&_==="paused"?h.play():void 0}}))),We(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{Array.from(this.elementMap.entries()).forEach(t=>{let s=bc(t,2);s[0];let c=s[1];const u=c.srcObject.getAudioTracks()[0];u&&u.readyState==="live"&&(J.debug("auto resume after interruption inside autoResumeAfterInterruptionOnIOS15"),c.pause(),c.play())})}),this.autoResumeAudioElement(),bn.on(Yo.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),bn.on(Yo.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),bn.on(Yo.STATE_CHANGE,()=>{Ia()&&bn.prevState==="suspended"&&bn.curState==="running"&&this.autoResumeAfterInterruption()})}async setSinkID(t,s){const c=this.elementMap.get(t);if(this.sinkIdMap.set(t,s),c)try{await c.setSinkId(s)}catch(u){throw new tt(Ce.PERMISSION_DENIED,"can not set sink id: "+u.toString())}}play(t,s,c,u){if(this.elementMap.has(s))return;const h=document.createElement("audio");h.autoplay=!0,h.srcObject=new MediaStream([t]),this.bindAudioElementEvents(s,h),this.elementMap.set(s,h),this.elementStateMap.set(s,Ca.INIT),this.setVolume(s,c);const _=this.sinkIdMap.get(s);if(_)try{h.setSinkId(_).catch(Q=>{J.warning("[".concat(s,"] set sink id failed"),Q.toString())})}catch(Q){J.warning("[".concat(s,"] set sink id failed"),Q.toString())}const B=h.play();B&&B.then&&B.catch(Q=>{u&&Nc(u,"audio",Q.message,s),J.warning("audio element play warning",Q.toString()),this.elementMap.has(s)&&Q.name==="NotAllowedError"&&(J.warning("detected audio element autoplay failed"),this.elementsNeedToResume.push(h),xR(()=>{this.onAutoplayFailed&&this.onAutoplayFailed(),J4()}))})}updateTrack(t,s){const c=this.elementMap.get(t);c&&(c.srcObject=new MediaStream([s]))}isPlaying(t){return this.elementMap.has(t)&&this.elementStateMap.get(t)==="playing"}setVolume(t,s){const c=this.elementMap.get(t);c&&(s=Math.max(0,Math.min(100,s)),c.volume=s/100)}getVolume(t){const s=this.elementMap.get(t);return s?s.volume:0}stop(t){const s=this.elementMap.get(t);if(this.sinkIdMap.delete(t),!s)return;const c=this.elementsNeedToResume.indexOf(s);this.elementsNeedToResume.splice(c,1),s.srcObject=null,s.remove(),this.elementMap.delete(t),this.elementStateMap.delete(t)}bindAudioElementEvents(t,s){IU.forEach(c=>{s.addEventListener(c,u=>{const h=this.elementStateMap.get(t),_=u.type==="pause"?"paused":u.type;if(J.debug("[".concat(t,"] audio-element-status change ").concat(h," => ").concat(_)),u.type==="error"){const B=s==null?void 0:s.error;B&&J.error("[".concat(t,"] media error, code: ").concat(B.code,", message: ").concat(B.message))}this.elementStateMap.set(t,_)})})}getPlayerState(t){return this.elementStateMap.get(t)||"uninit"}autoResumeAudioElement(){const t=()=>{this.elementsNeedToResume.forEach(s=>{s.play().then(c=>{J.debug("Auto resume audio element success")}).catch(c=>{J.warning("Auto resume audio element failed!",c)})}),this.elementsNeedToResume=[]};new Ut(s=>{document.body?s():window.addEventListener("load",()=>s())}).then(()=>{l2()?document.body.addEventListener("click",t,!0):(document.body.addEventListener("touchstart",t,!0),document.body.addEventListener("mousedown",t,!0))})}};function Fo(){return function(t,s,c){const u=c.value;return typeof u=="function"&&(c.value=function(){this._isClosed&&new tt(Ce.INVALID_OPERATION,"[".concat(this.getTrackId(),"] cannot operate a closed track")).print("warning",J);for(var h=arguments.length,_=new Array(h),B=0;B{Q.then(T).catch(D)}):Q}),c}}let q4=class extends Cn{constructor(t){super(),We(this,"name","VideoProcessorDestination"),We(this,"ID","0"),We(this,"_source",void 0),We(this,"videoContext",void 0),We(this,"inputTrack",void 0),this.videoContext=t}get kind(){return"video"}get enabled(){return!0}pipe(){throw new tt(Ce.NOT_SUPPORTED,"VideoProcessor cannot pipe to any other Processor")}unpipe(){throw new tt(Ce.NOT_SUPPORTED,"VideoProcessor cannot unpipe to any other Processor")}enable(){}disable(){}updateInput(t){if(t.context!==this.videoContext)throw new Error(`ProcessorContext passed to VideoTrack.processorDestination doesn't match it's belonging VideoTrack's context. -Probably you are making pipeline like this: -videoTrack1.pipe(processor).pipe(videoTrack2.processorDestination).`);t.track&&t.track!==this.inputTrack&&(this.videoContext.chained=!0,this.inputTrack=t.track,this.emit(lA.ON_TRACK,t.track))}reset(){this.inputTrack=void 0,this.videoContext.chained=!1,this.emit(lA.ON_TRACK,void 0)}},W4=class extends Cn{set chained(t){this._chained=t}get chained(){return this._chained}constructor(t,s){super(),We(this,"constraintsMap",new Map),We(this,"statsRegistry",[]),We(this,"usageRegistry",[]),We(this,"trackId",void 0),We(this,"direction",void 0),We(this,"_chained",!1),this.trackId=t,this.direction=s}async getConstraints(){return await $o(this,Z1.REQUEST_CONSTRAINTS)}async requestApplyConstraints(t,s){var c;return J.info("processor ".concat(s.name," requestApplyConstraints for ").concat(this.trackId)),t&&this.constraintsMap.set(s,t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(c=this.constraintsMap).call(c)))}async requestRevertConstraints(t){var s;if(this.constraintsMap.has(t))return J.info("processor ".concat(t.name," requestRevertConstraints for ").concat(this.trackId)),this.constraintsMap.delete(t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(s=this.constraintsMap).call(s)))}registerStats(t,s,c){this.statsRegistry.find(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s)||this.statsRegistry.push({processorName:t.name,processorID:t.ID,type:s,cb:c})}unregisterStats(t,s){const c=this.statsRegistry.findIndex(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s);c!==-1&&this.statsRegistry.splice(c,1)}gatherStats(){const t=[];for(const s of this.statsRegistry){const c=s.processorID,u=s.processorName,h=s.type,_=s.cb;try{const B=_();t.push({processorID:c,processorName:u,type:h,stats:B})}catch(B){J.error(new tt(Ce.UNEXPECTED_ERROR,B.message))}}return t}registerUsage(t,s){this.usageRegistry.find(c=>c.processorID===t.ID&&c.processorName===t.name)||this.usageRegistry.push({processorID:t.ID,processorName:t.name,cb:s})}unregisterUsage(t){const s=this.usageRegistry.findIndex(c=>c.processorID===t.ID&&c.processorName===t.name);s!==-1&&this.usageRegistry.splice(s,1)}async gatherUsage(){const t=[];if(!this.chained)return[];for(const s of this.usageRegistry){const c=s.cb;try{let u=c();u instanceof Ut&&(u=await u),t.push(Xn(Xn({},u),{},{direction:this.direction}))}catch(u){J.error("gather extension usage error",u)}}return t}getDirection(){return this.direction}},X4=class extends Cn{constructor(t){super(),We(this,"name","AudioProcessorDestination"),We(this,"ID","0"),We(this,"inputTrack",void 0),We(this,"inputNode",void 0),We(this,"audioProcessorContext",void 0),We(this,"_source",void 0),this.audioProcessorContext=t}get kind(){return"audio"}get enabled(){return!0}pipe(){throw new tt(Ce.NOT_SUPPORTED,"AudioProcessorDestination cannot pipe to any other Processor")}unpipe(){throw new tt(Ce.NOT_SUPPORTED,"AudioProcessor cannot unpipe to any other Processor")}enable(){}disable(){}reset(){this.inputTrack=void 0,this.inputNode=void 0,this.audioProcessorContext.chained=!1,this.emit(lA.ON_TRACK,void 0),this.emit(lA.ON_NODE,void 0)}updateInput(t){if(t.context!==this.audioProcessorContext)throw new Error(`ProcessorContext passed to AudioTrack.processorDestination doesn't match it's belonging AudioTrack's context. - Probably you are making pipeline like this: audioTrack1.pipe(processor).pipe(audioTrack2.processorDestination).`);t.track&&this.inputTrack!==t.track&&(this.audioProcessorContext.chained=!0,this.inputTrack=t.track,this.emit(lA.ON_TRACK,this.inputTrack)),t.node&&this.inputNode!==t.node&&(this.audioProcessorContext.chained=!0,this.inputNode=t.node,this.emit(lA.ON_NODE,this.inputNode))}},z4=class extends Cn{set chained(t){this._chained=t}get chained(){return this._chained}constructor(t,s,c){super(),We(this,"constraintsMap",new Map),We(this,"statsRegistry",[]),We(this,"audioContext",void 0),We(this,"trackId",void 0),We(this,"direction",void 0),We(this,"usageRegistry",[]),We(this,"_chained",!1),this.audioContext=t,this.trackId=s,this.direction=c}async getConstraints(){return $o(this,Z1.REQUEST_CONSTRAINTS)}getAudioContext(){return this.audioContext}async requestApplyConstraints(t,s){var c;return J.info("processor ".concat(s.name," requestApplyConstraints for ").concat(this.trackId)),t&&this.constraintsMap.set(s,t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(c=this.constraintsMap).call(c)))}async requestRevertConstraints(t){var s;if(this.constraintsMap.has(t))return this.constraintsMap.delete(t),sn(this,Z1.REQUEST_UPDATE_CONSTRAINTS,Array.from(BA(s=this.constraintsMap).call(s)))}registerStats(t,s,c){this.statsRegistry.find(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s)||this.statsRegistry.push({processorName:t.name,processorID:t.ID,type:s,cb:c})}unregisterStats(t,s){const c=this.statsRegistry.findIndex(u=>u.processorID===t.ID&&u.processorName===t.name&&u.type===s);c!==-1&&this.statsRegistry.splice(c,1)}gatherStats(){const t=[];for(const s of this.statsRegistry){const c=s.processorID,u=s.processorName,h=s.type,_=s.cb;try{const B=_();t.push({processorID:c,processorName:u,type:h,stats:B})}catch(B){J.error(new tt(Ce.UNEXPECTED_ERROR,B.message))}}return t}registerUsage(t,s){this.usageRegistry.find(c=>c.processorID===t.ID&&c.processorName===t.name)||this.usageRegistry.push({processorID:t.ID,processorName:t.name,cb:s})}unregisterUsage(t){const s=this.usageRegistry.findIndex(c=>c.processorID===t.ID&&c.processorName===t.name);s!==-1&&this.usageRegistry.splice(s,1)}async gatherUsage(){const t=[];if(!this.chained)return[];for(const s of this.usageRegistry){const c=s.cb;try{let u=c();u instanceof Ut&&(u=await u),t.push(Xn(Xn({},u),{},{direction:this.direction}))}catch(u){J.error("gather extension usage error",u)}}return t}getDirection(){return this.direction}},pa=class extends Cn{get isPlayed(){return!0}get isFreeze(){return!1}constructor(){super(),We(this,"context",void 0),We(this,"processSourceNode",void 0),We(this,"outputTrack",void 0),We(this,"processedNode",void 0),We(this,"clonedTrack",void 0),We(this,"outputNode",void 0),this.outputNode=new CU}setVolume(){}createOutputTrack(){throw new tt(Ce.NOT_SUPPORTED,"can not create output MediaStreamTrack when WebAudio disabled")}getOriginVolumeLevel(){return 0}getAccurateVolumeLevel(){return 0}stopGetAudioBuffer(){}startGetAudioBuffer(){}play(){}stop(){}destroy(){}updateTrack(){}updateOriginTrack(){}createMediaStreamSourceNode(){}},CU=class{disconnect(){}connect(){}};function D2(t){return new Ut((s,c)=>{let u=!1;const h=document.createElement("video");h.setAttribute("autoplay",""),h.setAttribute("muted",""),h.muted=!0,h.autoplay=!0,h.setAttribute("playsinline",""),h.setAttribute("style","position: fixed; top: 0; left: 0; width: 1px; height: 1px"),document.body.appendChild(h);const _=Ia()?"canplay":"playing";h.addEventListener(_,()=>{const B=h.videoWidth,Q=h.videoHeight;!B&&Ln()||(u=!0,h.srcObject=null,h.remove(),s([B,Q]))}),h.srcObject=new MediaStream([t]),h.play().catch(X),setTimeout(()=>{u||(h.srcObject=null,h.remove(),s([h.videoWidth,h.videoHeight]))},4e3)})}function Og(t){const s={};t.facingMode&&(s.facingMode=t.facingMode),t.cameraId&&(s.deviceId={exact:t.cameraId});const c=El(t.encoderConfig);return c.width!=null&&(s.width=c.width),c.height!=null&&(s.height=c.height),!bf()&&c.frameRate&&(s.frameRate=c.frameRate),yn()&&typeof s.frameRate=="object"&&(s.frameRate.max=60),Ln()&&(s.frameRate={ideal:30,max:30}),s}function f1(t){const s={};return bf()||(t.AGC!==void 0&&(s.autoGainControl=t.AGC),t.AEC!==void 0&&(s.echoCancellation=t.AEC),t.ANS!==void 0&&(s.noiseSuppression=t.ANS,DA()&&t.ANS&&(s.googHighpassFilter=t.ANS))),s}function $4(t){const s=f1(t);if(t.encoderConfig){const c=Kf(t.encoderConfig);s.channelCount=c.stereo?2:1,s.sampleRate=c.sampleRate,s.sampleSize=c.sampleSize}return t.microphoneId&&(s.deviceId={exact:t.microphoneId}),c2()&&(s.sampleRate=void 0),s}const pU=t=>{const s=t._encoderConfig;if(!s)return;const c=t.getMediaStreamTrackSettings(),u=c.frameRate,h=c.width,_=c.height;let B=s.frameRate,Q=B===void 0?u:B,T=s.width,D=T===void 0?h:T,O=s.height,P=O===void 0?_:O;if(!Q||!D||!P)return;D=kC(D),P=kC(P),Q=kC(Q);const U=function(Oe,we,Ne){const et=200*Math.pow(Ne/15,.6)*Math.pow(Oe*we/640/360,.75);return{min:Math.floor(et),max:Math.floor(4*et)}}(D,P,Q),H=U.max,$=U.min,Z=s||{},te=Z.bitrateMax,se=Z.bitrateMin,ge=Z.minDownscaleWidth,me=Z.minDownscaleHeight;te||J.debug("calculate bitrate: [w: ".concat(D,", h: ").concat(P,", fps: ").concat(Q,"] => [brMax: ").concat(te,", brMin: ").concat(se,"]"));const Qe=de("ENCODER_CONFIG_LIMIT").maxFramerate;return Qe&&typeof Qe=="number"&&(Q=Math.min(Q,Qe)),{width:D,height:P,frameRate:Q,bitrateMax:te||H,bitrateMin:se||$,scaleResolutionDownBy:1,scale:0,minDownscaleWidth:ge,minDownscaleHeight:me}},fU=async(t,s,c)=>await(async(u,h,_)=>{const B=function(D){const O=[];for(let P=0;P{const s=document.createElement("canvas");return s.width=2,s.height=2,new Ut((c,u)=>{s.toBlob(async h=>{if(s.remove(),h){const _=await Z4(h);c({buffer:_,width:s.width,height:s.height})}else u(new tt(Ce.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},t,1)})},Z4=async t=>{const s=await t.arrayBuffer();return new Uint8Array(s)};var Ey,hy,Iy,eN,Lg,Cy,jf,Jf,hh,py,qf,fy,tN,_U,rN,mU,_y,BU,Ao,Xl,Wf,iN,Ih,zl,Xf,bu,zf,nN,$f,SU,my,By,oN,sN,aN,Zf,VC,RU,AN,ys;let po=(Ey=yr({argsMap:(t,s)=>[t.getTrackId(),s],throttleTime:300}),hy=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Iy=Fo(),eN=Dg("LocalAudioTrack","_enabledMutex"),Lg=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Cy=Fo(),jf=Dg("LocalAudioTrack","_enabledMutex"),Jf=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),hh=Fo(),py=Fo(),qf=Fo(),fy=yr({argsMap:t=>[t.getTrackId()]}),tN=Fo(),_U=yr({argsMap:t=>[t.getTrackId()]}),rN=Fo(),mU=yr({argsMap:t=>[t.getTrackId()]}),_y=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),BU=yr({argsMap:t=>[t.getTrackId()]}),Mi((Ao=class extends T2{get _source(){return this.initWebAudio()}set _source(t){this._trackSource=t}get processorContext(){return this._processorContext||(this._processorContext=this.initProcessor().processorContext),this._processorContext}get processorDestination(){return this._processorDestination||(this._processorDestination=this.initProcessor().processorDestination),this._processorDestination}get isPlaying(){return this._useAudioElement?rA.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"LocalAudioTrack"}constructor(t,s,c,u){super(t,c),We(this,"trackMediaType",y2.AUDIO),We(this,"_encoderConfig",void 0),We(this,"_trackSource",void 0),We(this,"metadata",[]),We(this,"_enabled",!0),We(this,"_volume",100),We(this,"_useAudioElement",!0),We(this,"_bypassWebAudio",!1),We(this,"processor",void 0),We(this,"_processorContext",void 0),We(this,"_processorDestination",void 0),We(this,"_getOriginVolumeLevel",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),this._encoderConfig=s,this._getOriginVolumeLevel=!!u,this._trackSource=new pa,de("DISABLE_WEBAUDIO")&&(this._bypassWebAudio=!0),de("LOCAL_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1),Zs()&&!ec?setTimeout(()=>this.initWebAudio()):this.initWebAudio()}setVolume(t){Vn(t,"volume",0,1e3),this._volume=t,this._source.setVolume(t/100),this._useAudioElement&&rA.setVolume(this.getTrackId(),t);try{if(this._bypassWebAudio)return void J.debug("[".concat(this.getTrackId(),"] setVolume returned because no pass through WebAudio."));const s=this._source.createOutputTrack();this._mediaStreamTrack!==s&&(this._mediaStreamTrack=s,sn(this,xt.NEED_REPLACE_TRACK,this).then(()=>{J.debug("[".concat(this.getTrackId(),"] replace web audio track success"))}).catch(c=>{J.warning("[".concat(this.getTrackId(),"] replace web audio track failed"),c)}))}catch{}}getVolumeLevel(){return this._muted&&this.enabled&&this._getOriginVolumeLevel?this._source.getOriginVolumeLevel():this._source.getAccurateVolumeLevel()}async setPlaybackDevice(t){if(!this._useAudioElement||!w4())throw new tt(Ce.NOT_SUPPORTED,"your browser does not support setting the audio output device");await rA.setSinkID(this.getTrackId(),t)}async setEnabled(t,s,c){return this._setEnabled(t,s,c)}async _setEnabled(t,s,c){if(!c){if(t===this._enabled)return;this.stateCheck("enabled",t)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),t),t){this._originMediaStreamTrack.enabled=!0;try{c||(this._enabled=!0),await sn(this,xt.NEED_ENABLE_TRACK,this),J.info("[".concat(this.getTrackId(),"] setEnabled to ").concat(t," success"))}catch(u){throw c||(this._enabled=!1),J.error("[".concat(this.getTrackId(),"] setEnabled to true error"),u.toString()),u}}else{this._originMediaStreamTrack.enabled=!1,c||(this._enabled=!1);try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(u){throw c||(this._enabled=!0),J.error("[".concat(this.getTrackId(),"] setEnabled to false error"),u.toString()),u}}}async setMuted(t){t!==this._muted&&(this.stateCheck("muted",t),this._muted=t,this._originMediaStreamTrack.enabled=!t,J.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(t)),t?await sn(this,xt.NEED_MUTE_TRACK,this):await sn(this,xt.NEED_UNMUTE_TRACK,this))}getStats(){return vg(()=>{J.warning("[deprecated] LocalAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalAudioStats instead")},"localAudioTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},oy)}setAudioFrameCallback(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!t)return this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(s),this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),this._source.on(zA.ON_AUDIO_BUFFER,c=>t(c))}play(){J.debug("[".concat(this.getTrackId(),"] start audio playback")),this._useAudioElement?(J.debug("[".concat(this.getTrackId(),"] start audio playback in element")),rA.play(this._mediaStreamTrack,this.getTrackId(),this._volume)):this._source.play()}stop(){J.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._useAudioElement?rA.stop(this.getTrackId()):this._source.stop()}close(){super.close(),this._processorDestination&&this.unbindProcessorDestinationEvents(this._processorDestination),this._processorContext&&this.unbindProcessorContextEvents(this._processorContext),this.unpipe(),this._processorDestination&&this._processorDestination._source&&this._processorDestination._source.unpipe(),this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1),this._source.destroy()}_updatePlayerSource(){let t=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];J.debug("[".concat(this.getTrackId(),"] update player source track")),t&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&rA.updateTrack(this.getTrackId(),this._mediaStreamTrack)}async _updateOriginMediaStreamTrack(t,s){this._originMediaStreamTrack!==t&&(this._originMediaStreamTrack&&(this._originMediaStreamTrack.removeEventListener("ended",this._handleTrackEnded),s&&this._originMediaStreamTrack.stop()),t.addEventListener("ended",this._handleTrackEnded),this._originMediaStreamTrack=t,this._muted&&(this._originMediaStreamTrack.enabled=!1),this.processor&&this._processorContext&&this.processor.updateInput({track:t,context:this._processorContext}),this._mediaStreamTrack!==this._source.outputTrack?(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this)):this._source.updateTrack(this._originMediaStreamTrack),this._getOriginVolumeLevel&&this._source.updateOriginTrack(t))}renewMediaStreamTrack(t){return Ut.resolve(void 0)}_ensureExtensionManager(t){return this._extensionManager||(this._extensionManager=t.createAudioExtensionManager(this),this._extensionManager.onOutputTrackChanged=s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,sn(this,xt.NEED_REPLACE_TRACK,this))}),this._extensionManager}useExtension(t,s){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureExtensionManager(t),this._useExtensionMode=!0,this._extensionManager.useExtension(t,s)}removeExtension(t){if(!this._extensionManager)return!1;const s=this._extensionManager.removeExtension(t);return s&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(t.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),s}addReferenceTrack(t){if(!this._extensionManager)throw new tt(Ce.INVALID_OPERATION,"Call useExtension() before addReferenceTrack().");this._extensionManager.addReferenceTrack(t),J.info("[".concat(this.getTrackId(),"] addReferenceTrack"))}removeReferenceTrack(t){return!!this._extensionManager&&this._extensionManager.removeReferenceTrack(t)}pipe(t){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active. Call removeExtension() for all extensions first.");if(this._bypassWebAudio)throw new tt(Ce.INVALID_OPERATION,"Can not process AudioTrack when bypassWebAudio set to true.");if(this.processor===t)return t;if(t._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(t.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=t,this.processor._source=this,t.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),t}unpipe(){var t;if(!this.processor)return;const s=this.processor;(t=this._source.processSourceNode)===null||t===void 0||t.disconnect(),this.processor._source=!1,this.processor=void 0,this._usePipeMode=!1,s.reset()}bindProcessorDestinationEvents(t){t.on(lA.ON_TRACK,async s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(s),await sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this))}),t.on(lA.ON_NODE,s=>{this._source.processedNode=s})}unbindProcessorDestinationEvents(t){t.removeAllListeners(lA.ON_TRACK),t.removeAllListeners(lA.ON_NODE)}bindProcessorContextEvents(t){t.on(Z1.REQUEST_CONSTRAINTS,async s=>{s(this._originMediaStreamTrack.getSettings())})}unbindProcessorContextEvents(t){t.removeAllListeners(Z1.REQUEST_CONSTRAINTS)}initWebAudio(){return this._trackSource instanceof pa&&(this._trackSource=new ly(this._mediaStreamTrack,!1,this._getOriginVolumeLevel?this._mediaStreamTrack:void 0)),this._trackSource}initProcessor(){const t=new z4(this._source.context,this.getTrackId(),"local"),s=new X4(t);return this._processorContext=t,this._processorDestination=s,this.bindProcessorContextEvents(t),this.bindProcessorDestinationEvents(s),this._source.on(zA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:t})}),this._useAudioElement&&(this._useAudioElement=!1,this.isPlaying&&(rA.stop(this.getTrackId()),this._source.play()),sn(this,xt.NEED_REPLACE_MIXING_TRACK,this).then(()=>{J.debug("[".concat(this.getTrackId(),"] replace from origin track to web audio track success"))}).catch(c=>{J.warning("[".concat(this.getTrackId(),"] replace from origin track to web audio track failed"),c)})),{processorContext:t,processorDestination:s}}}).prototype,"setVolume",[Ey],Object.getOwnPropertyDescriptor(Ao.prototype,"setVolume"),Ao.prototype),Mi(Ao.prototype,"setPlaybackDevice",[hy,Iy],Object.getOwnPropertyDescriptor(Ao.prototype,"setPlaybackDevice"),Ao.prototype),Mi(Ao.prototype,"setEnabled",[eN,Lg,Cy],Object.getOwnPropertyDescriptor(Ao.prototype,"setEnabled"),Ao.prototype),Mi(Ao.prototype,"setMuted",[jf,Jf,hh],Object.getOwnPropertyDescriptor(Ao.prototype,"setMuted"),Ao.prototype),Mi(Ao.prototype,"getStats",[py],Object.getOwnPropertyDescriptor(Ao.prototype,"getStats"),Ao.prototype),Mi(Ao.prototype,"setAudioFrameCallback",[qf],Object.getOwnPropertyDescriptor(Ao.prototype,"setAudioFrameCallback"),Ao.prototype),Mi(Ao.prototype,"play",[fy,tN],Object.getOwnPropertyDescriptor(Ao.prototype,"play"),Ao.prototype),Mi(Ao.prototype,"stop",[_U,rN],Object.getOwnPropertyDescriptor(Ao.prototype,"stop"),Ao.prototype),Mi(Ao.prototype,"close",[mU],Object.getOwnPropertyDescriptor(Ao.prototype,"close"),Ao.prototype),Mi(Ao.prototype,"pipe",[_y],Object.getOwnPropertyDescriptor(Ao.prototype,"pipe"),Ao.prototype),Mi(Ao.prototype,"unpipe",[BU],Object.getOwnPropertyDescriptor(Ao.prototype,"unpipe"),Ao.prototype),Ao),xd=(Xl=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Wf=Fo(),iN=Dg("MicrophoneAudioTrack","_enabledMutex"),Ih=yr({argsMap:(t,s,c)=>[t.getTrackId(),s,c]}),zl=Fo(),Xf=yr({argsMap:t=>[t.getTrackId()]}),Mi((bu=class extends po{get __className__(){return"MicrophoneAudioTrack"}constructor(t,s,c,u){super(t,s.encoderConfig?Kf(s.encoderConfig):{},u,de("GET_VOLUME_OF_MUTED_AUDIO_TRACK")),We(this,"_config",void 0),We(this,"_deviceName","default"),We(this,"_constraints",void 0),We(this,"_originalConstraints",void 0),We(this,"_enabled",!0),this._config=s,this._constraints=c,this._originalConstraints=c,this._deviceName=t.label,typeof s.bypassWebAudio=="boolean"&&(this._bypassWebAudio=s.bypassWebAudio),(Is()||rh())&&bn.bindInterruptDetectorTrack(this)}async setDevice(t){if(J.info("[".concat(this.getTrackId(),"] start set device to ").concat(t)),this._enabled)try{const s=await rc.getDeviceById(t),c={};c.audio=Xn({},this._constraints),c.audio.deviceId={exact:t},this._originMediaStreamTrack.stop();let u=null;try{u=await Pi(c,this.getTrackId())}catch(h){throw J.error("[".concat(this.getTrackId(),"] setDevice failed"),h.toString()),u=await Pi({audio:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(u.getAudioTracks()[0],!1),h}await this._updateOriginMediaStreamTrack(u.getAudioTracks()[0],!1),this._deviceName=s.label,this._config.microphoneId=t,this._constraints.deviceId={exact:t}}catch(s){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),s.toString()),s}else try{const s=await rc.getDeviceById(t);this._deviceName=s.label,this._config.microphoneId=t,this._constraints.deviceId={exact:t}}catch(s){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),s.toString()),s}J.info("[".concat(this.getTrackId(),"] set device to ").concat(t," success"))}async setEnabled(t,s,c){if(s)return J.debug("[".concat(this.getTrackId(),"] setEnabled false (do not close microphone)")),await super._setEnabled(t);if(!c){if(t===this._enabled)return;this.stateCheck("enabled",t)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),t),de("AUTO_RESET_AUDIO_ROUTE")&&(Ia()||Y1())){const B=navigator.audioSession;B&&(t||(B.type="playback"),B.type="auto")}if(!t){var u;this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop(),(u=this._source.clonedTrack)===null||u===void 0||u.stop(),c||(this._enabled=!1);try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(B){throw J.error("[".concat(this.getTrackId(),"] setEnabled false failed"),B.toString()),B}return}const h=Xn({},this._constraints),_=rc.searchDeviceIdByName(this._deviceName);_&&!h.deviceId&&(h.deviceId=_);try{c||(this._enabled=!0);const B=await Pi({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(B.getAudioTracks()[0],!1),await sn(this,xt.NEED_ENABLE_TRACK,this)}catch(B){throw c||(this._enabled=!1),J.error("[".concat(this.getTrackId(),"] setEnabled true failed"),B.toString()),B}J.info("[".concat(this.getTrackId(),"] setEnabled success"))}close(){super.close(),(Is()||rh())&&bn.unbindInterruptDetectorTrack(this),lh.some(t=>function(s){return"__className__"in s&&s.__className__==="MicrophoneAudioTrack"}(t))||Ay&&Ay()&&(qt.reportApiInvoke(null,{name:"BG_AUDIO_TAG_RESTART",options:{},tag:vn.TRACER}).onSuccess(),J.debug("restart background audio tag success"))}onTrackEnded(){if((Ia()||Y1())&&this._enabled&&!this._isClosed&&bn.duringInterruption){const t=async()=>{bn.off(Yo.IOS_INTERRUPTION_END,t),this._enabled&&!this._isClosed&&(J.debug("[".concat(this.getTrackId(),"] try capture microphone media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};bn.on(Yo.IOS_INTERRUPTION_END,t)}else J.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(R2.TRACK_ENDED)}async renewMediaStreamTrack(t){const s=t||this._constraints,c=rc.searchDeviceIdByName(this._deviceName);if(c&&!s.deviceId&&(s.deviceId=c),this._constraints=s,this._enabled){this._originMediaStreamTrack.stop();const u=await Pi({audio:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(u.getAudioTracks()[0],!0)}}bindProcessorContextEvents(t){super.bindProcessorContextEvents(t),t.on(Z1.REQUEST_UPDATE_CONSTRAINTS,async(s,c,u)=>{try{const h=Object.assign({},this._originalConstraints,...s);await this.renewMediaStreamTrack(h),c()}catch(h){u(h)}})}unbindProcessorContextEvents(t){super.unbindProcessorContextEvents(t),t.removeAllListeners(Z1.REQUEST_UPDATE_CONSTRAINTS)}}).prototype,"setDevice",[Xl,Wf],Object.getOwnPropertyDescriptor(bu.prototype,"setDevice"),bu.prototype),Mi(bu.prototype,"setEnabled",[iN,Ih,zl],Object.getOwnPropertyDescriptor(bu.prototype,"setEnabled"),bu.prototype),Mi(bu.prototype,"close",[Xf],Object.getOwnPropertyDescriptor(bu.prototype,"close"),bu.prototype),bu),cN=(zf=yr({argsMap:(t,s)=>[t.getTrackId(),s,t.duration]}),nN=Fo(),$f=yr({argsMap:t=>[t.getTrackId()]}),SU=Fo(),my=yr({argsMap:t=>[t.getTrackId()]}),By=Fo(),oN=yr({argsMap:t=>[t.getTrackId()]}),sN=Fo(),aN=yr({argsMap:t=>[t.getTrackId()]}),Zf=Fo(),VC=yr({argsMap:t=>[t.getTrackId()]}),RU=yr({argsMap:t=>[t.getTrackId()]}),AN=Fo(),Mi((ys=class extends po{get __className__(){return"BufferSourceAudioTrack"}constructor(t,s,c,u){super(s.createOutputTrack(),c,u),We(this,"source",void 0),We(this,"_bufferSource",void 0),this._useAudioElement=!1,this.source=t,this._bufferSource=s,this._bufferSource.on(zA.AUDIO_SOURCE_STATE_CHANGE,h=>{this.safeEmit(R2.SOURCE_STATE_CHANGE,h)});try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}}get currentState(){return this._bufferSource.currentState}get duration(){return this._bufferSource.duration}get playbackSpeed(){return this._bufferSource.playbackSpeed}getCurrentTime(){return this._bufferSource.currentTime}startProcessAudioBuffer(t){t&&this._bufferSource.updateOptions(t),this._bufferSource.startProcessAudioBuffer()}pauseProcessAudioBuffer(){this._bufferSource.pauseProcessAudioBuffer()}seekAudioBuffer(t){this._bufferSource.seekAudioBuffer(t)}resumeProcessAudioBuffer(){this._bufferSource.resumeProcessAudioBuffer()}stopProcessAudioBuffer(){this._bufferSource.stopProcessAudioBuffer()}close(){this.source=null,this._bufferSource.destroy(),super.close()}setAudioBufferPlaybackSpeed(t){Vn(t,"speed",0),this._bufferSource.setAudioBufferPlaybackSpeed(t)}}).prototype,"startProcessAudioBuffer",[zf,nN],Object.getOwnPropertyDescriptor(ys.prototype,"startProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"pauseProcessAudioBuffer",[$f,SU],Object.getOwnPropertyDescriptor(ys.prototype,"pauseProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"seekAudioBuffer",[my,By],Object.getOwnPropertyDescriptor(ys.prototype,"seekAudioBuffer"),ys.prototype),Mi(ys.prototype,"resumeProcessAudioBuffer",[oN,sN],Object.getOwnPropertyDescriptor(ys.prototype,"resumeProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"stopProcessAudioBuffer",[aN,Zf],Object.getOwnPropertyDescriptor(ys.prototype,"stopProcessAudioBuffer"),ys.prototype),Mi(ys.prototype,"close",[VC],Object.getOwnPropertyDescriptor(ys.prototype,"close"),ys.prototype),Mi(ys.prototype,"setAudioBufferPlaybackSpeed",[RU,AN],Object.getOwnPropertyDescriptor(ys.prototype,"setAudioBufferPlaybackSpeed"),ys.prototype),ys),ia=class pne extends po{get __className__(){return"MixingAudioTrack"}get isActive(){for(const s of this.trackList)if(s._enabled&&!s._isClosed&&!s.muted)return!0;return!1}constructor(){const s=w2().createMediaStreamDestination();super(s.stream.getAudioTracks()[0],void 0,un(8,"track-mix-")),We(this,"trackList",void 0),We(this,"destNode",void 0),this._useAudioElement=!1;try{this._mediaStreamTrack=this._source.createOutputTrack()}catch{}this.destNode=s,this.trackList=[]}hasAudioTrack(s){return this.trackList.indexOf(s)!==-1}addAudioTrack(s){this.trackList.indexOf(s)===-1?(J.debug("add ".concat(s.getTrackId()," to mixing track")),s._source.outputNode.connect(this.destNode),this.trackList.push(s),this.updateEncoderConfig()):J.debug("track ".concat(s.getTrackId()," is already added"))}removeAudioTrack(s){if(this.trackList.indexOf(s)!==-1){J.debug("remove ".concat(s.getTrackId()," from mixing track"));try{s._source.outputNode.disconnect(this.destNode)}catch{}UR(this.trackList,s),this.updateEncoderConfig()}}updateEncoderConfig(){const s={};this.trackList.forEach(c=>{c._encoderConfig&&((c._encoderConfig.bitrate||0)>(s.bitrate||0)&&(s.bitrate=c._encoderConfig.bitrate),(c._encoderConfig.sampleRate||0)>(s.sampleRate||0)&&(s.sampleRate=c._encoderConfig.sampleRate),(c._encoderConfig.sampleSize||0)>(s.sampleSize||0)&&(s.sampleSize=c._encoderConfig.sampleSize),c._encoderConfig.stereo&&(s.stereo=!0))}),this._encoderConfig=s}_updateRtpTransceiver(s){this._rtpTransceiver!==s&&(this._rtpTransceiver=s,this.trackList.forEach(c=>{c instanceof pne?c.emit(dh.TRANSCEIVER_UPDATED,s):c._updateRtpTransceiver(s)}))}},yU=class extends K4{set currentState(t){t!==this._currentState&&(this._currentState=t,this.safeEmit(zA.AUDIO_SOURCE_STATE_CHANGE,this._currentState))}get currentState(){return this._currentState}constructor(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),We(this,"audioBuffer",void 0),We(this,"sourceNode",void 0),We(this,"startPlayTime",0),We(this,"startPlayOffset",0),We(this,"pausePlayTime",0),We(this,"options",void 0),We(this,"currentLoopCount",0),We(this,"currentPlaybackSpeed",100),We(this,"_currentState","stopped"),this.audioBuffer=t,this.options=s,this.startPlayOffset=this.options.startPlayTime||0}createWebAudioDiagram(){return this.context.createGain()}get duration(){return this.audioBuffer?this.audioBuffer.duration:0}get playbackSpeed(){return this.currentPlaybackSpeed}get currentTime(){return this.audioBuffer?this.currentState==="stopped"?0:this.currentState==="paused"?this.pausePlayTime:((this.context.currentTime-this.startPlayTime)*(this.playbackSpeed/100)+this.startPlayOffset)%this.audioBuffer.duration:0}updateOptions(t){this.currentState==="stopped"?(this.options=t,this.startPlayOffset=this.options.startPlayTime||0):J.warning("can not set audio source options")}startProcessAudioBuffer(){this.sourceNode&&this.stopProcessAudioBuffer(),this.sourceNode=this.createSourceNode(),this.startSourceNode(),this.currentState="playing"}pauseProcessAudioBuffer(){this.sourceNode&&this.currentState==="playing"&&(this.pausePlayTime=this.currentTime,this.sourceNode.onended=null,this.sourceNode.stop(),this.sourceNode.buffer=null,this.sourceNode=this.createSourceNode(),this.currentState="paused")}seekAudioBuffer(t){this.sourceNode&&(this.sourceNode.onended=null,this.currentState==="playing"&&this.sourceNode.stop(),this.sourceNode=this.createSourceNode(),this.currentState==="playing"?(this.startPlayOffset=t,this.startSourceNode()):this.currentState==="paused"&&(this.pausePlayTime=t))}resumeProcessAudioBuffer(){this.currentState==="paused"&&this.sourceNode&&(this.startPlayOffset=this.pausePlayTime,this.pausePlayTime=0,this.startSourceNode(),this.currentState="playing")}stopProcessAudioBuffer(){if(this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop()}catch{}this.reset()}}destroy(){this.audioBuffer=null,super.destroy()}setAudioBufferPlaybackSpeed(t){this.sourceNode&&(this.currentState==="playing"&&(this.startPlayOffset=this.currentTime,this.startPlayTime=this.context.currentTime),this.sourceNode.playbackRate.value=t/100),this.currentPlaybackSpeed=t}startSourceNode(){this.sourceNode&&this.sourceNode.buffer&&(this.sourceNode.start(0,this.startPlayOffset),this.startPlayTime=this.context.currentTime,this.sourceNode.onended=this.handleSourceNodeEnded.bind(this))}createSourceNode(){const t=this.context.createBufferSource();return t.buffer=this.audioBuffer,t.loop=!!this.options.loop,t.connect(this.outputNode),t.playbackRate.value=this.currentPlaybackSpeed/100,t}handleSourceNodeEnded(){if(this.currentLoopCount+=1,this.options.cycle&&this.options.cycle>this.currentLoopCount)return this.startPlayOffset=0,this.sourceNode=void 0,void this.startProcessAudioBuffer();this.reset()}reset(){this.startPlayOffset=this.options.startPlayTime||0,this.currentState="stopped",this.sourceNode&&(this.sourceNode.disconnect(),this.sourceNode=void 0),this.currentLoopCount=0}};const QU=new Map;function TU(t,s){if(t.length===0||s.length===0)return 1/0;const c=tr(t),u=tr(s);return Math.floor(u/c)}let Sy=class{get rendFrameRate(){const t=Math.max(1,TU(this._render_interframe_delays_sizes,this._render_interframe_delays));return Math.floor(1e3/t)}get videoElementStatus(){return this._isInPage?this._videoElementStatus:Ca.DESTROYED}set videoElementStatus(t){t!==this._videoElementStatus&&(J.debug("[".concat(this.trackId,"] video-element-status change ").concat(this._videoElementStatus," => ").concat(t)),this._videoElementStatus=t)}get videoState(){return this._videoState}set videoState(t){var s;t!==this._videoState&&(this._videoState=t,(s=this.onVideoStateChanged)===null||s===void 0||s.call(this,this.videoState))}constructor(t){We(this,"trackId",void 0),We(this,"config",void 0),We(this,"onFirstVideoFrameDecoded",void 0),We(this,"onFirstVideoFrameRender",void 0),We(this,"onVideoBufferReady",void 0),We(this,"onVideoStateChanged",void 0),We(this,"freezeTimeCounterList",[]),We(this,"renderFreezeAccTime",0),We(this,"renderFreezeAccTime2",0),We(this,"totalFreezeTime",0),We(this,"isKeepLastFrame",!1),We(this,"isDestroyed",!1),We(this,"timeUpdatedCount",0),We(this,"freezeTime",0),We(this,"playbackTime",0),We(this,"lastTimeUpdatedTime",0),We(this,"autoplayFailed",!1),We(this,"videoTrack",void 0),We(this,"videoElement",void 0),We(this,"cacheVideoElement",void 0),We(this,"cancelRVFId",void 0),We(this,"internal",!1),We(this,"_render_interframe_delays",[]),We(this,"_render_interframe_delays_sizes",[]),We(this,"_videoState",Ud.VideoStateStopped),We(this,"videoElementCheckInterval",void 0),We(this,"videoElementFreezeTimeout",void 0),We(this,"_videoElementStatus",Ca.NONE),We(this,"_isInPage",!0),We(this,"isGettingVideoDimensions",!1),We(this,"startGetVideoDimensions",()=>{const s=()=>{if(this.isGettingVideoDimensions=!0,this.videoElement.videoWidth*this.videoElement.videoHeight>4)return J.debug("[".concat(this.trackId,"] current video dimensions:"),this.videoElement.videoWidth,this.videoElement.videoHeight),void(this.isGettingVideoDimensions=!1);setTimeout(s,500)};!this.isGettingVideoDimensions&&s()}),We(this,"autoResumeAfterInterruption",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&bn.curState==="running"&&(J.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat($b())),os()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),We(this,"handleVideoEvents",s=>{switch(s.type){case"play":case"playing":s.type==="play"&&J.debug("[".concat(this.trackId,"] video element status: play")),this.startGetVideoDimensions(),this.videoElementStatus=Ca.PLAYING;break;case"loadeddata":if(this.videoState=Ud.VideoStateStarting,this.onFirstVideoFrameRender&&this.onFirstVideoFrameRender(),this.onFirstVideoFrameDecoded&&this.onFirstVideoFrameDecoded(),this.cacheVideoElement){try{this.cacheVideoElement.srcObject=null,this.cacheVideoElement.remove()}catch{}this.cacheVideoElement=void 0}break;case"canplay":this.videoElementStatus=Ca.CANPLAY;break;case"stalled":this.videoElementStatus=Ca.STALLED;break;case"suspend":this.videoElementStatus=Ca.SUSPEND;break;case"pause":this.videoElementStatus=Ca.PAUSED,Ia()||Y1()||Zs()&&this.autoplayFailed||!this.videoTrack||this.videoTrack.readyState!=="live"||(J.debug("[track-".concat(this.trackId,"] video element paused, auto resume")),this.videoElement.play());break;case"waiting":this.videoElementStatus=Ca.WAITING;break;case"abort":this.videoElementStatus=Ca.ABORT;break;case"ended":this.videoElementStatus=Ca.ENDED;break;case"emptied":this.videoElementStatus=Ca.EMPTIED;break;case"error":{const c=this.videoElement.error;c&&(this.videoElementStatus=Ca.ERROR,J.error("[".concat(this.trackId,"] media error: ").concat(c.message," (").concat(c.code,")")));break}case"timeupdate":{const c=performance.now();if(this.timeUpdatedCount+=1,this.onVideoBufferReady&&this.timeUpdatedCount>de("BUFFER_READY_FRAMES")&&this.onVideoBufferReady(),this.timeUpdatedCount<10)return void(this.lastTimeUpdatedTime=c);const u=c-this.lastTimeUpdatedTime,h=this.lastTimeUpdatedTime;if(this.lastTimeUpdatedTime=c,Pn.lastVisibleTimede("VIDEO_FREEZE_DURATION")&&(this.freezeTime+=u),this.playbackTime+=u;this.playbackTime>=6e3;){this.playbackTime-=6e3;const _=Math.min(6e3,this.freezeTime);this.freezeTimeCounterList.push(_),this.freezeTime=Math.max(0,this.freezeTime-6e3)}break}}}),We(this,"autoResumeAfterInterruptionOnIOS15_16",()=>{this.videoTrack&&this.videoTrack.readyState==="live"&&(J.debug("[track-".concat(this.trackId,"] video element paused, auto resume for ").concat($b())),os()?(this.videoElement.srcObject=null,this.videoElement.srcObject=new MediaStream([this.videoTrack]),this.videoElement.play()):(this.videoElement.pause(),this.videoElement.play()))}),this.trackId=t.trackId,this.config=t,t.element instanceof HTMLVideoElement?this.videoElement=t.element:this.videoElement=document.createElement("video"),bn.on(Yo.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),bn.on(Yo.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16)}getVideoElement(){return this.videoElement}getContainerElement(){var t;return(t=this.videoElement.parentElement)!==null&&t!==void 0?t:void 0}updateConfig(t){this.config=t,this.trackId=t.trackId,t.element!==this.videoElement&&(this.destroy(),this.videoElement=t.element),this.videoTrack&&this.initVideoElement()}updateVideoTrack(t){this.videoTrack!==t&&(this.videoTrack=t,this.initVideoElement())}play(t){const s=this.videoElement.play();s&&s.catch&&s.catch(u=>{t&&Nc(t,"video",u.message,this.trackId),u.name==="NotAllowedError"?(J.warning("detected video element autoplay failed",u),this.autoplayFailed=!0,this.handleAutoPlayFailed()):J.warning("[".concat(this.trackId,"] play warning: "),u)});const c=Qi();if((c.name==="Safari"&&Number(c.version)===15||Is())&&s&&s.then){const u=()=>{this.config.mirror&&!this.config.noStyle&&(this.videoElement.style.transform="rotateY(180deg)")};s.then(u).catch(u)}}getCurrentFrame(){const t=document.createElement("canvas");t.width=this.videoElement.videoWidth,t.height=this.videoElement.videoHeight;const s=t.getContext("2d");if(!s)return J.error("create canvas context failed!"),new ImageData(2,2);s.drawImage(this.videoElement,0,0,t.width,t.height);const c=s.getImageData(0,0,t.width,t.height);return t.remove(),c}async getCurrentFrameToUint8Array(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const c=document.createElement("canvas");c.width=this.videoElement.videoWidth,c.height=this.videoElement.videoHeight;const u=c.getContext("2d");return u?(u.drawImage(this.videoElement,0,0,c.width,c.height),new Ut((h,_)=>{c.toBlob(async B=>{if(c.remove(),B){const Q=await Z4(B);h({buffer:Q,width:c.width,height:c.height})}else _(new tt(Ce.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED))},t,s<0?.1:s>1?1:s)})):await GC(t)}destroy(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this.isDestroyed=!0,bn.off(Yo.IOS_INTERRUPTION_END,this.autoResumeAfterInterruption),bn.off(Yo.IOS_15_16_INTERRUPTION_END,this.autoResumeAfterInterruptionOnIOS15_16),t?this.videoElement.pause():this.videoElement.srcObject=null,this.resetVideoElement(),this.freezeTimeCounterList=[],this.videoState=Ud.VideoStateStopped}initVideoElement(){if(this._videoElementStatus!==Ca.NONE&&this._videoElementStatus!==Ca.DESTROYED||(this.videoElementStatus=Ca.INIT),!this.videoElementCheckInterval&&(wU.forEach(h=>{this.videoElement.addEventListener(h,this.handleVideoEvents)}),this.videoElementCheckInterval=window.setInterval(()=>{this._isInPage=function(h){return h!==document.body&&document.body.contains(h)}(this.videoElement)},1e3),de("ENABLE_VIDEO_FRAME_CALLBACK"))){var t,s;let h;const _=()=>{document.visibilityState==="visible"&&(document.removeEventListener("visibilitychange",_),this.videoElementFreezeTimeout=window.setTimeout(B,de("VIDEO_FREEZE_DURATION")))},B=()=>{this.videoElementFreezeTimeout=void 0,this.videoState===Ud.VideoStateDecoding&&(document.visibilityState==="visible"?this.videoState=Ud.VideoStateFrozen:document.addEventListener("visibilitychange",_))},Q=(T,D)=>{if(this.videoElementStatus===Ca.PLAYING){if(h){const U=D.presentationTime-h.presentationTime,H=D.presentedFrames-h.presentedFrames;this._render_interframe_delays_sizes.push(H),this._render_interframe_delays.push(U);const $=tr(this._render_interframe_delays_sizes),Z=$-this._render_interframe_delays_sizes[0];if($>30&&Z>5&&(this._render_interframe_delays_sizes.shift(),this._render_interframe_delays.shift()),this.videoState===Ud.VideoStateStarting&&(this.videoState=Ud.VideoStateDecoding),this.videoState===Ud.VideoStateDecoding&&this.onVideoStateChanged&&(this.videoElementFreezeTimeout&&window.clearTimeout(this.videoElementFreezeTimeout),this.videoElementFreezeTimeout=window.setTimeout(B,de("VIDEO_FREEZE_DURATION"))),Ude("VIDEO_FREEZE_DURATION")&&Pn.lastVisibleTime>=Pn.lastHiddenTime&&h.timestamp>Pn.lastVisibleTime&&h.timestamp>Pn.lastHiddenTime){const te=Math.min(66,TU(this._render_interframe_delays_sizes,this._render_interframe_delays)),se=Math.max(0,U-(H-1)*te),ge=se>te?se:0;this.renderFreezeAccTime2+=ge,this.totalFreezeTime+=ge,this.renderFreezeAccTime+=U}}h=Xn(Xn({},D),{},{timestamp:T})}else this.isSkipCalcRenderFreezeTime()&&(h=Xn(Xn({},D),{},{timestamp:T}));var O,P;de("ENABLE_VIDEO_FRAME_CALLBACK")&&(this.cancelRVFId=(O=(P=this.videoElement).requestVideoFrameCallback)===null||O===void 0?void 0:O.call(P,Q))};this.cancelRVFId=(t=(s=this.videoElement).requestVideoFrameCallback)===null||t===void 0?void 0:t.call(s,Q)}this.videoElement.controls=!1,this.videoElement.setAttribute("playsinline",""),c2()&&!de("HIDE_NO_POSTER")&&(this.videoElement.poster="noposter");const c=Qi();this.config.noStyle||(c.name==="Safari"&&Number(c.version)===15||Is()||!this.config.mirror||(this.videoElement.style.transform="rotateY(180deg)"),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover"),this.videoElement.setAttribute("muted",""),this.videoElement.muted=!0,this.videoElement.srcObject&&this.videoElement.srcObject instanceof MediaStream?this.videoElement.srcObject.getVideoTracks()[0]!==this.videoTrack&&(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,Ln()&&this.videoElement.load()):(this.videoElement.srcObject=this.videoTrack?new MediaStream([this.videoTrack]):null,Ln()&&this.videoElement.load());const u=this.videoElement.play();u!==void 0&&u.catch(h=>{J.debug("[".concat(this.trackId,"] playback interrupted"),h.toString())})}resetVideoElement(){var t,s;wU.forEach(c=>{this.videoElement&&this.videoElement.removeEventListener(c,this.handleVideoEvents)}),this.videoElementCheckInterval&&(window.clearInterval(this.videoElementCheckInterval),this.videoElementCheckInterval=void 0),this.cancelRVFId&&this.videoElement&&((t=(s=this.videoElement).cancelVideoFrameCallback)===null||t===void 0||t.call(s,this.cancelRVFId),this.cancelRVFId=void 0),this.videoElementStatus=Ca.NONE}isSkipCalcRenderFreezeTime(){return this.videoElementStatus===Ca.DESTROYED||this.internal}handleAutoPlayFailed(){const t=s=>{s.preventDefault(),this.videoElement.play().then(()=>{J.debug("[".concat(this.trackId,"] Video element for trackId:").concat(this.trackId," autoplay resumed."))}).catch(c=>{J.error(c)}),this.autoplayFailed=!1,l2()?document.body.removeEventListener("click",t,!0):(document.body.removeEventListener("touchstart",t,!0),document.body.removeEventListener("mousedown",t,!0))};l2()?document.body.addEventListener("click",t,!0):(document.body.addEventListener("touchstart",t,!0),document.body.addEventListener("mousedown",t,!0)),J4()}};const wU=["play","playing","loadeddata","canplay","pause","stalled","suspend","waiting","abort","emptied","ended","timeupdate","error"];let Ry=class extends Sy{constructor(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];super(t),We(this,"container",void 0),We(this,"slot",void 0),this.slot=t.element,this.internal=s,this.updateConfig(t)}updateConfig(t){this.config=t,this.trackId=t.trackId;const s=t.element;var c;!this.internal||this.slot?(s!==this.slot&&(this.destroy(),this.slot=s),this.createElements()):(this.slot=s,s&&this.container?(this.internal=!1,this.container.id="agora-video-player-".concat(this.trackId),this.videoElement.id="video_".concat(this.trackId),this.config.fit?this.videoElement.style.objectFit=this.config.fit:this.videoElement.style.objectFit="cover",(c=this.slot)===null||c===void 0||c.appendChild(this.container)):this.createElements())}updateVideoTrack(t){this.videoTrack!==t&&(this.videoTrack=t,this.createElements())}play(t){var s;(s=this.container)!==null&&s!==void 0&&s.contains(this.videoElement)&&super.play(t)}getCurrentFrame(){var t;return(t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)?super.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameToUint8Array(t){var s;let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return(s=this.container)!==null&&s!==void 0&&s.contains(this.videoElement)?await super.getCurrentFrameToUint8Array(t,c):await GC(t)}destroy(){if(super.destroy(),this.videoElement.remove(),this.videoElement=document.createElement("video"),this.container){try{var t;this.container.remove(),(t=this.slot)===null||t===void 0||t.removeChild(this.container)}catch{}this.container=void 0}}createElements(){var t;this.container||(this.container=document.createElement("div")),this.container.id="agora-video-player-".concat(this.trackId),this.container.style.width="100%",this.container.style.height="100%",this.container.style.position="relative",this.container.style.overflow="hidden",this.videoTrack?(this.container.style.backgroundColor="black",de("KEEP_LAST_FRAME")&&this.isKeepLastFrame&&this.videoElement.paused&&this.resetVideoElement(),this.mountedVideoElement()):this.unmountedVideoElement(),(t=this.slot)===null||t===void 0||t.appendChild(this.container)}mountedVideoElement(){var t;!this.container||(t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)||this.container.appendChild(this.videoElement),super.initVideoElement(),this.videoElement.id="video_".concat(this.trackId),this.videoElement.className="agora_video_player",this.videoElement.style.width="100%",this.videoElement.style.height="100%",this.videoElement.style.position="absolute",this.videoElement.style.left="0",this.videoElement.style.top="0"}unmountedVideoElement(){var t;if((t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)){super.resetVideoElement();try{this.container&&this.container.removeChild(this.videoElement)}catch{}this.videoElement=document.createElement("video")}}resetVideoElement(){var t;(t=this.container)!==null&&t!==void 0&&t.contains(this.videoElement)&&(super.resetVideoElement(),this.cacheVideoElement=this.videoElement,this.videoElement=document.createElement("video"))}getContainerElement(){return this.container}};var yy,vU,DU,bU,NU,lN,OU,LU,MU,kU,dN,PU,UU,uN,xU,FU,GU,VU,KU,HU,YU,Qy,jU,JU,qU,WU,Ty,XU,wi,Vt,e_,wy,Oc,dA,mr,vi,or,sr;let pn=(yy=yr({argsMap:(t,s,c)=>[t.getTrackId(),typeof s=="string"?s:s instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",c]}),vU=Fo(),DU=yr({argsMap:t=>[t.getTrackId()]}),bU=Dg("LocalVideoTrack","_enabledMutex"),NU=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),lN=Fo(),OU=Dg("LocalVideoTrack","_enabledMutex"),LU=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),MU=Fo(),kU=yr({argsMap:(t,s)=>[t.getTrackId(),s,t._saveEncodeBitrateRatio]}),dN=Fo(),PU=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),UU=Fo(),uN=Fo(),xU=yr({argsMap:(t,s,c)=>[t.getTrackId(),s,c]}),FU=Fo(),GU=Fo(),VU=Fo(),KU=yr({argsMap:t=>[t.getTrackId()]}),HU=Fo(),YU=Fo(),Qy=Fo(),jU=Fo(),JU=Fo(),qU=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),WU=yr({argsMap:t=>[t.getTrackId()]}),Ty=yr({argsMap:t=>[t.getTrackId()]}),XU=yr({argsMap:(t,s,c)=>[t.getTrackId(),s.label,c]}),wi=class fne extends T2{get videoHeight(){if(Zs()){const s=this._mediaStreamTrack.getSettings().height;return this._videoHeight=s,this._videoHeight}return this._videoHeight}get videoWidth(){if(Zs()){const s=this._mediaStreamTrack.getSettings().width;return this._videoWidth=s,this._videoWidth}return this._videoWidth}get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ca.PLAYING)}get processorDestination(){return this._processorDestination}get processorContext(){return this._processorContext}set processorContext(s){this._processorContext=s}get __className__(){return"LocalVideoTrack"}constructor(s,c,u,h,_,B){if(super(s,_),We(this,"trackMediaType",y2.VIDEO),We(this,"_player",void 0),We(this,"isUseScaleResolutionDownBy",!1),We(this,"_videoVisibleTimer",null),We(this,"_previousVideoVisibleStatus",void 0),We(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),We(this,"_encoderConfig",void 0),We(this,"_scalabilityMode",{numSpatialLayers:1,numTemporalLayers:1}),We(this,"_optimizationMode",void 0),We(this,"_saveEncodeBitrateRatio",1),We(this,"_videoHeight",void 0),We(this,"_videoWidth",void 0),We(this,"_forceBitrateLimit",void 0),We(this,"_enabled",!0),We(this,"_processorDestination",void 0),We(this,"_processorContext",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),Zs()){const Q=s.getSettings(),T=Q.width,D=Q.height;this._videoWidth=T,this._videoHeight=D}else this.updateMediaStreamTrackResolution();if(this._scalabilityMode=u,this._optimizationMode=h,this._hints=B||[],c&&this._hints.indexOf(gn.CUSTOM_TRACK)!==-1?this._encoderConfig=go(c):this._encoderConfig=c,this._hints.indexOf(gn.SCREEN_TRACK)===-1)this.updateBitrateFromProfile();else if(Tf(Fi.CHROME,115)&&Md().indexOf("Windows")!==-1){const Q=function(T,D){if("VideoFrame"in window&&"TransformStream"in window&&Si().supportWebRTCInsertableStream){const O=new MediaStreamTrackProcessor(T),P=new MediaStreamTrackGenerator({kind:"video"});let U,H,$=Date.now();const Z=()=>{te&&(clearInterval(te),te=void 0),U&&(U.close(),U=void 0),T.stop(),H=void 0,P.removeEventListener("ended",Z)};let te=window.setInterval(()=>{if(H&&U&&Date.now()-$>1e3)try{P.readyState==="live"?H.enqueue(U.clone()):Z()}catch{Z()}},1e3);const se=new TransformStream({transform:(ge,me)=>{P.readyState==="live"?(H=me,$=Date.now(),U===void 0?(U=ge,me.enqueue(ge.clone())):(me.enqueue(U),U=ge)):ge.close()}});return P.addEventListener("ended",Z),O.readable.pipeThrough(se).pipeTo(P.writable),P}}(s);Q&&(J.info("local screen video track begin to inject frame"),this._mediaStreamTrack=Q)}c&&this._hints.indexOf(gn.CUSTOM_TRACK)!==-1&&this.setEncoderConfiguration(c),this._processorContext=new W4(this.getTrackId(),"local"),this._processorDestination=new q4(this.processorContext),this.bindProcessorDestinationEvents()}play(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(typeof s=="string"){const h=document.getElementById(s);h?s=h:(J.warning("[".concat(this.getTrackId(),'] can not find "#').concat(s,'" element, use document.body')),s=document.body)}J.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(s instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(c));const u=Xn(Xn(Xn({},this._getDefaultPlayerConfig()),c),{},{trackId:this.getTrackId(),element:s});this._player?this._player.updateConfig(u):(s instanceof HTMLVideoElement?this._player=new Sy(u):this._player=new Ry(u),this._player.updateVideoTrack(this._mediaStreamTrack)),this._player.play(),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{const h=this.getVideoElementVisibleStatus();this.safeEmit(R2.VIDEO_ELEMENT_VISIBLE_STATUS,h)}catch{}},de("CHECK_VIDEO_VISIBLE_INTERVAL"))}stop(){this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(),this._player=void 0,J.debug("[".concat(this.getTrackId(),"] stop video playback")))}async setEnabled(s,c){if(!c){if(s===this._enabled)return;this.stateCheck("enabled",s)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),s),!s){this._originMediaStreamTrack.enabled=!1;try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled to false error"),u.toString()),u}return c||(this._enabled=!1),void J.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}this._originMediaStreamTrack.enabled=!0;try{await sn(this,xt.NEED_ENABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled to true error"),u.toString()),u}J.info("[".concat(this.getTrackId(),"] setEnabled to true success")),c||(this._enabled=!0)}async setMuted(s){s!==this._muted&&(this.stateCheck("muted",s),this._muted=s,this._originMediaStreamTrack.enabled=!s,J.debug("[".concat(this.getTrackId(),"] start set muted: ").concat(s)),s?await sn(this,xt.NEED_MUTE_TRACK,this):await sn(this,xt.NEED_UNMUTE_TRACK,this))}async setSaveEncodeBitrateRatio(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this._saveEncodeBitrateRatio;if(this._saveEncodeBitrateRatio!==1&&this._encoderConfig&&this._encoderConfig.bitrateMax&&this._encoderConfig.bitrateMin){this._encoderConfig.bitrateMin=Math.floor(this._encoderConfig.bitrateMin*s),this._encoderConfig.bitrateMax=Math.floor(this._encoderConfig.bitrateMax*s),J.debug("[".concat(this.getTrackId(),"] set save encode bitrate ratio, ").concat(s)),this._saveEncodeBitrateRatio=1;try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(c){return c.throw(J)}}}async setEncoderConfiguration(s,c){if(!this._enabled)throw new tt(Ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");if(s=El(s),de("USE_STANDARD_BITRATE_DEFAULT")&&(delete s.bitrateMax,delete s.bitrateMin),this._forceBitrateLimit&&(s.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:s.bitrateMax,s.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:s.bitrateMin),s.width||s.height||s.frameRate){const u=Og({encoderConfig:s});(Zs()||Ia()||Y1())&&(u.deviceId=void 0),J.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(s),JSON.stringify(u));try{await this._originMediaStreamTrack.applyConstraints(u),this.updateMediaStreamTrackResolution()}catch(h){const _=new tt(Ce.UNEXPECTED_ERROR,h.toString());throw J.error("[".concat(this.getTrackId(),"] applyConstraints error"),_.toString()),_}}this._encoderConfig=s,this._hints.indexOf(gn.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(u){return u.throw(J)}}getStats(){return vg(()=>{J.warning("[deprecated] LocalVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getLocalVideoStats instead")},"localVideoTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},sy)}async setBeautyEffect(s){J.error("LocalVideoTrack.setBeautyEffect was deprecated, please migrate to agora-extension-beauty-effect")}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}async getCurrentFrameImage(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;return this._player?this._player.getCurrentFrameToUint8Array(s,c):await GC(s)}async findClosestProfile(){const s=this.getMediaStreamTrackSettings(),c=s.width,u=s.height,h=s.frameRate,_=this._encoderConfig||{},B=_.width,Q=_.height,T=_.frameRate,D=kC(this._videoWidth||c||B||0),O=kC(this._videoHeight||u||Q||0),P=function(U,H,$){if(!Array.isArray(de("VIDEO_ENCODER_CONFIG_LIST"))||de("VIDEO_ENCODER_CONFIG_LIST").length===0)return!1;const Z=Math.min(U,H);return!(Z>=480)&&Xn(Xn({},de("VIDEO_ENCODER_CONFIG_LIST").find(te=>te.height>Z)),{},{frameRate:$})}(D,O,kC(h||T||15));if(P)return J.debug("[".concat(this.getTrackId(),"] find closest profile, ").concat(D,"x").concat(O," => ").concat(JSON.stringify(P))),this.setEncoderConfiguration(P)}async setBitrateLimit(s){J.debug("[".concat(this.getTrackId(),"] set bitrate limit, ").concat(JSON.stringify(s))),s&&(this._forceBitrateLimit=s,this._encoderConfig&&(this._encoderConfig.bitrateMax?this._encoderConfig.bitrateMax=this._encoderConfig.bitrateMax{let c=bc(s,2),u=c[0],h=c[1];this._videoHeight=h,this._videoWidth=u}).catch(X)}_updatePlayerSource(){this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}_getDefaultPlayerConfig(){return{fit:"contain"}}async setSenderConfiguration(s){if(!this._enabled)throw new tt(Ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");J.debug("[".concat(this.getTrackId(),"] setSenderConfiguration applyConstraints"),JSON.stringify(s)),s=El(s),this._forceBitrateLimit&&(s.bitrateMax=this._forceBitrateLimit.max_bitrate?this._forceBitrateLimit.max_bitrate:s.bitrateMax,s.bitrateMin=this._forceBitrateLimit.min_bitrate?this._forceBitrateLimit.min_bitrate:s.bitrateMin),this._encoderConfig=s,this._hints.indexOf(gn.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(c){return c.throw(J)}}updateBitrateFromProfile(){if(!this._encoderConfig)return;const s=this.getMediaStreamTrackSettings(),c=s.width,u=s.height,h=s.frameRate;if(!c||!u||!h)return;const _=this._encoderConfig,B=_.bitrateMax,Q=_.bitrateMin;if(Q==null||B==null){const T=function(P,U,H,$,Z){const te=de("BITRATE_ADAPTER_TYPE");if(te==="DEFAULT_BITRATE")return{min:$,max:Z};if(Z===void 0){const se=Math.floor(200*Math.pow(H/15,.6)*Math.pow(P*U/640/360,.75));Z=te==="STANDARD_BITRATE"?4*se:2*se,$=$??se}else $=$??Math.floor(Z/10);return{min:$,max:Z}}(c,u,h,Q,B),D=T.max,O=T.min;if(this._encoderConfig.bitrateMin=O,this._encoderConfig.bitrateMax=D,de("VIDEO_STANDARD_BITRATE_VERSION")&&Q==null&&B==null){const P=bc(function($,Z,te){const se=4*Math.floor(2e5*Math.pow(te/15,.6)*Math.pow($*Z/230400,.75)),ge=$*Z,me=new Map([[19200,.9],[230400,.85],[518400,.75],[921600,.7],[2073600,.6],[3686400,.5]]),Qe=new Map([[230400,.95],[518400,.9],[921600,.85],[2073600,.8]]);let Oe=BA(me).call(me).next().value,we=1;if(me.has(ge))Oe=me.get(ge);else{var Ne;const ui=x1(Ne=Array.from(me.entries())).call(Ne,(Ki,it)=>bc(Ki,1)[0]-bc(it,1)[0]),Nr=ui.find(Ki=>bc(Ki,1)[0]>ge);if(Nr){const Ki=ui.indexOf(Nr);if(Ki>0){const it=ui[Ki-1],mt=(ge-it[0])/(Nr[0]-it[0]);Oe=it[1]+mt*(Nr[1]-it[1])}else Oe=Nr[1]}else Oe=ui[ui.length-1][1]}if(Qe.has(ge))we=Qe.get(ge);else{var et;const ui=x1(et=Array.from(Qe.entries())).call(et,(Ki,it)=>bc(Ki,1)[0]-bc(it,1)[0]),Nr=ui.find(Ki=>bc(Ki,1)[0]>ge);if(Nr){const Ki=ui.indexOf(Nr);if(Ki>0){const it=ui[Ki-1],mt=(ge-it[0])/(Nr[0]-it[0]);we=it[1]+mt*(Nr[1]-it[1])}else we=Nr[1]}else we=ui[ui.length-1][1]}const st=de("VIDEO_NEW_BITRATE_RATIO");st&&st>0&&(Oe=st/100);const Xt=Math.floor(se*Oe),lr=Math.floor(65e4*Math.pow($*Z/230400,.5)*Math.pow(te/15,.69));let ft=Xt;const Ir=de("VIDEO_STANDARD_BITRATE_VERSION");return Ir&&Ir>0&&(Ir===1?ft=se:Ir===2?ft=Xt:Ir===3&&(ft=lr)),[Math.floor(ft/1e3),we]}(c,u,h),2),U=P[0],H=P[1];this._encoderConfig.bitrateMax=U,this._encoderConfig.bitrateMin=O?Math.min(O,U):U,this._saveEncodeBitrateRatio=H,J.debug("[".concat(this.getTrackId(),"] update new bitrate from profile, [w: ").concat(c,", h: ").concat(u,", fps: ").concat(h,"] => [brMax: ").concat(this._encoderConfig.bitrateMax,", brMin: ").concat(this._encoderConfig.bitrateMin,", save_bitrate_ratio: ").concat(this._saveEncodeBitrateRatio,"]"))}else J.debug("[".concat(this.getTrackId(),"] update bitrate from profile, [w: ").concat(c,", h: ").concat(u,", fps: ").concat(h,"] => [brMax: ").concat(D,", brMin: ").concat(O,"]")),this._saveEncodeBitrateRatio=1}}getVideoElementVisibleStatus(){try{var s,c;const u=this==null||(s=this._player)===null||s===void 0?void 0:s.getContainerElement(),h={track:this,element:this==null||(c=this._player)===null||c===void 0?void 0:c.getVideoElement(),slot:u==null?void 0:u.parentElement},_=h.element,B=h.slot;if(this.isPlaying&&_ instanceof HTMLVideoElement&&B instanceof HTMLElement){const Q=$P.checkOneElementVisible(_),T=Object.assign({},Q);if(T.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=T.visible;const D=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.LOCAL_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});T.visible?D.onSuccess("Video is visible"):D.onSuccess("Invisible because of ".concat(T.reason))}return T}return}catch(u){throw new tt(Ce.GET_VIDEO_ELEMENT_VISIBLE_ERROR,u.message)}}async renewMediaStreamTrack(s){}_ensureVideoExtensionManager(s){return this._extensionManager||(this._extensionManager=s.createVideoExtensionManager(this),this._extensionManager.onOutputTrackChanged=c=>{c?c!==this._mediaStreamTrack&&(this._mediaStreamTrack=c,this._updatePlayerSource(),sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),sn(this,xt.NEED_REPLACE_TRACK,this))},this._extensionManager.onEmpty=()=>{this._useExtensionMode=!1,this._extensionManager=void 0}),this._extensionManager}useExtension(s,c){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureVideoExtensionManager(s),this._useExtensionMode=!0,this._extensionManager.useExtension(s,c)}removeExtension(s){if(!this._extensionManager)return!1;const c=this._extensionManager.removeExtension(s);return c&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(s.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),c}pipe(s){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active. Call removeExtension() for all extensions first.");if(this.processor===s)return s;if(s._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(s.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=s,this.processor._source=this,s.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),s}unpipe(){if(!this.processor)return;const s=this.processor;this.processor._source=void 0,this.processor=void 0,this._usePipeMode=!1,s.reset()}close(){super.close(),this.unbindProcessorDestinationEvents(),this.unbindProcessorContextEvents(),this.unpipe(),this.processorDestination._source&&this.processorDestination._source.unpipe(),this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1)}clone(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],u=this._encoderConfig;s&&(u=Xn(Xn({},u),El(s))),u=Hs(u);const h=un(8,"track-video-cloned-"),_=new fne(c?this._mediaStreamTrack.clone():this._mediaStreamTrack,u,Hs(this._scalabilityMode),this._optimizationMode,h,Hs(this._hints));return s&&u&&_.setEncoderConfiguration(u),J.debug("clone video track from ".concat(this.getTrackId()," to ").concat(h,", clone ").concat(c)),_}async replaceTrack(s,c){if(!(s instanceof MediaStreamTrack))throw new tt(Ce.INVALID_PARAMS,"track should be an instance of MediaStreamTrack");if(s.kind!=="video")throw new tt(Ce.INVALID_PARAMS,"track should be a video MediaStreamTrack");await this._updateOriginMediaStreamTrack(s,c,!0),this.updateMediaStreamTrackResolution()}sendSeiData(s){if(vg(()=>{qt.reportApiInvoke(null,{name:Ti.LOCAL_VIDEO_SEND_SEI_DATA,options:[],tag:vn.TRACER}).onSuccess("")},this._mediaStreamTrack.id||this.getTrackId()),!de("ENABLE_VIDEO_SEI")||!de("ENABLE_ENCODED_TRANSFORM"))return void J.warning('To send/receive SEI, please call AgoraRTC.setParameter("ENABLE_VIDEO_SEI", true) before instantiate IAgoraRtcClient');if(s instanceof Uint8Array==0)return new tt(Ce.INVALID_PARAMS,"Invalid argument type, ILocalVideoTrack.sendSeiData() only accept Uint8Array argument.").throw();const c=this.getRTCRtpTransceiver();if(!c)return void J.warning("Video track is not published, SEI can not be send");const u=c.sender.getParameters();if(u.codecs.length===0)return;const h=u.codecs[0].mimeType.toLocaleLowerCase();h==="video/h264"||h==="video/h265"?this.safeEmit("sei-to-send",s):J.warning("SEI is not supported by ".concat(h))}bindProcessorDestinationEvents(){this.processorDestination.on(lA.ON_TRACK,async s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource(),await sn(this,xt.NEED_REPLACE_TRACK,this))})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(lA.ON_TRACK)}unbindProcessorContextEvents(){this.processorContext.removeAllListeners(Z1.REQUEST_UPDATE_CONSTRAINTS),this.processorContext.removeAllListeners(Z1.REQUEST_CONSTRAINTS)}},Mi(wi.prototype,"play",[yy,vU],Object.getOwnPropertyDescriptor(wi.prototype,"play"),wi.prototype),Mi(wi.prototype,"stop",[DU],Object.getOwnPropertyDescriptor(wi.prototype,"stop"),wi.prototype),Mi(wi.prototype,"setEnabled",[bU,NU,lN],Object.getOwnPropertyDescriptor(wi.prototype,"setEnabled"),wi.prototype),Mi(wi.prototype,"setMuted",[OU,LU,MU],Object.getOwnPropertyDescriptor(wi.prototype,"setMuted"),wi.prototype),Mi(wi.prototype,"setSaveEncodeBitrateRatio",[kU,dN],Object.getOwnPropertyDescriptor(wi.prototype,"setSaveEncodeBitrateRatio"),wi.prototype),Mi(wi.prototype,"setEncoderConfiguration",[PU,UU],Object.getOwnPropertyDescriptor(wi.prototype,"setEncoderConfiguration"),wi.prototype),Mi(wi.prototype,"getStats",[uN],Object.getOwnPropertyDescriptor(wi.prototype,"getStats"),wi.prototype),Mi(wi.prototype,"setBeautyEffect",[xU,FU],Object.getOwnPropertyDescriptor(wi.prototype,"setBeautyEffect"),wi.prototype),Mi(wi.prototype,"getCurrentFrameData",[GU],Object.getOwnPropertyDescriptor(wi.prototype,"getCurrentFrameData"),wi.prototype),Mi(wi.prototype,"getCurrentFrameImage",[VU],Object.getOwnPropertyDescriptor(wi.prototype,"getCurrentFrameImage"),wi.prototype),Mi(wi.prototype,"findClosestProfile",[KU,HU],Object.getOwnPropertyDescriptor(wi.prototype,"findClosestProfile"),wi.prototype),Mi(wi.prototype,"setBitrateLimit",[YU],Object.getOwnPropertyDescriptor(wi.prototype,"setBitrateLimit"),wi.prototype),Mi(wi.prototype,"setOptimizationMode",[Qy],Object.getOwnPropertyDescriptor(wi.prototype,"setOptimizationMode"),wi.prototype),Mi(wi.prototype,"setScalabiltyMode",[jU],Object.getOwnPropertyDescriptor(wi.prototype,"setScalabiltyMode"),wi.prototype),Mi(wi.prototype,"updateMediaStreamTrackResolution",[JU],Object.getOwnPropertyDescriptor(wi.prototype,"updateMediaStreamTrackResolution"),wi.prototype),Mi(wi.prototype,"pipe",[qU],Object.getOwnPropertyDescriptor(wi.prototype,"pipe"),wi.prototype),Mi(wi.prototype,"unpipe",[WU],Object.getOwnPropertyDescriptor(wi.prototype,"unpipe"),wi.prototype),Mi(wi.prototype,"close",[Ty],Object.getOwnPropertyDescriptor(wi.prototype,"close"),wi.prototype),Mi(wi.prototype,"replaceTrack",[XU],Object.getOwnPropertyDescriptor(wi.prototype,"replaceTrack"),wi.prototype),wi),Or=(Vt=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),e_=Fo(),wy=Dg("CameraVideoTrack","_enabledMutex"),Oc=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),dA=Fo(),mr=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),vi=Fo(),or=yr({argsMap:t=>[t.getTrackId()]}),sr=class _ne extends pn{get __className__(){return"CameraVideoTrack"}constructor(s,c,u,h,_,B){super(s,El(c.encoderConfig),h,_,B),We(this,"_config",void 0),We(this,"_originalConstraints",void 0),We(this,"_constraints",void 0),We(this,"_enabled",!0),We(this,"_deviceName","default"),We(this,"tryResumeVideoForIOS15_16WeChat",async()=>{(Is()||rh())&&!function(){const Q=Qi();if(Q.os!==ns.IOS||!Q.osVersion)return!1;const T=Q.osVersion.split(".");return Number(T[0])===15&&Number(T[1])>=2}()&&jl()&&this._enabled&&!this._isClosed&&(J.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS 15 device on WeChat.")),await this.renewMediaStreamTrack())}),this._config=c,this._originalConstraints=u,this._constraints=u,this._deviceName=s.label,this._encoderConfig=El(this._config.encoderConfig),bn.on(Yo.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),bn.on(Yo.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),this.bindProcessorContextEvents()}async setDevice(s){return typeof s=="string"?this._setDeviceById(s):s.deviceId?this._setDeviceById(s.deviceId):s.facingMode?this._setDeviceByFacingModel(s.facingMode):void 0}async _setDeviceById(s){if(J.info("[".concat(this.getTrackId(),"] set device to ").concat(s)),this._enabled)try{const c=await rc.getDeviceById(s),u={};u.video=Xn({},this._constraints),u.video.deviceId={exact:s},u.video.facingMode=void 0,this._originMediaStreamTrack.stop();let h=null;try{h=await Pi(u,this.getTrackId())}catch(_){throw J.error("[".concat(this.getTrackId(),"] setDevice failed"),_.toString()),h=await Pi({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(h.getVideoTracks()[0],!1),_}await this._updateOriginMediaStreamTrack(h.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution(),this._deviceName=c.label,this._config.cameraId=s,this._constraints.deviceId={exact:s}}catch(c){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),c.toString()),c}else try{const c=await rc.getDeviceById(s);this._deviceName=c.label,this._config.cameraId=s,this._constraints.deviceId={exact:s}}catch(c){throw J.error("[".concat(this.getTrackId(),"] setDevice error"),c.toString()),c}J.info("[".concat(this.getTrackId(),"] setDevice success"))}async _setDeviceByFacingModel(s){J.info("[".concat(this.getTrackId(),"] set facingMode ").concat(s));const c={video:Xn(Xn({},this._constraints),{},{deviceId:void 0,facingMode:{exact:s}})};if(this._enabled){this._originMediaStreamTrack.stop();let u=null;try{u=await Pi(c,this.getTrackId())}catch(h){throw J.error("[".concat(this.getTrackId(),"] setDeviceByFacingModel failed"),h.toString()),u=await Pi({video:this._constraints},this.getTrackId()),await this._updateOriginMediaStreamTrack(u.getVideoTracks()[0],!1),h}await this._updateOriginMediaStreamTrack(u.getVideoTracks()[0],!1),this.updateMediaStreamTrackResolution()}this._deviceName="",this._config.facingMode=s,this._config.cameraId=void 0,this._constraints=Xn({},c.video),J.info("[".concat(this.getTrackId(),"] setDeviceByFacingModel success"))}async setEnabled(s,c){if(!c){if(s===this._enabled)return;this.stateCheck("enabled",s)}if(J.info("[".concat(this.getTrackId(),"] start setEnabled"),s),s){try{if(this.isExternalTrack)this._originMediaStreamTrack.enabled=!0;else{const u=await Pi({video:this._constraints},this.getTrackId());await this._updateOriginMediaStreamTrack(u.getVideoTracks()[0],!1)}await sn(this,xt.NEED_ENABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled true error"),u.toString()),u}this.updateMediaStreamTrackResolution(),J.info("[".concat(this.getTrackId(),"] setEnabled to true success")),c||(this._enabled=!0)}else{this.isExternalTrack?this._originMediaStreamTrack.enabled=!1:(this._originMediaStreamTrack.onended=null,this._originMediaStreamTrack.stop()),c||(this._enabled=!1);try{await sn(this,xt.NEED_DISABLE_TRACK,this)}catch(u){throw J.error("[".concat(this.getTrackId(),"] setEnabled to false error"),u.toString()),u}J.info("[".concat(this.getTrackId(),"] setEnabled to false success"))}}async setEncoderConfiguration(s,c){if(!this._enabled)throw new tt(Ce.TRACK_IS_DISABLED,"can not set encoder configuration when track is disabled");s=El(s),de("USE_STANDARD_BITRATE_DEFAULT")&&(delete s.bitrateMax,delete s.bitrateMin),this._forceBitrateLimit&&(s.bitrateMax=this._forceBitrateLimit.max_bitrate||s.bitrateMax,s.bitrateMin=this._forceBitrateLimit.min_bitrate||s.bitrateMin);const u=go(this._config);u.encoderConfig=s;const h=Og(u);(Zs()||Ia()||Y1())&&(h.deviceId=void 0),J.debug("[".concat(this.getTrackId(),"] setEncoderConfiguration applyConstraints"),JSON.stringify(s),JSON.stringify(h));try{await this._originMediaStreamTrack.applyConstraints(h),this.updateMediaStreamTrackResolution()}catch(_){const B=new tt(Ce.UNEXPECTED_ERROR,_.toString());throw J.error("[".concat(this.getTrackId(),"] applyConstraints error"),B.toString()),B}this._config=u,this._constraints=h,this._originalConstraints=h,this._encoderConfig=s,this._hints.indexOf(gn.SCREEN_TRACK)===-1&&this.updateBitrateFromProfile();try{await sn(this,xt.NEED_UPDATE_VIDEO_ENCODER,this)}catch(_){return _.throw(J)}}_getDefaultPlayerConfig(){return{mirror:!0,fit:"cover"}}onTrackEnded(){if((Ia()||Y1())&&this._enabled&&!this._isClosed&&bn.duringInterruption){const s=async()=>{bn.off(Yo.IOS_INTERRUPTION_END,s),this._enabled&&!this._isClosed&&(J.debug("[".concat(this.getTrackId(),"] try capture camera media device for interrupted iOS device.")),await this.setEnabled(!1),await this.setEnabled(!0))};bn.on(Yo.IOS_INTERRUPTION_END,s)}else J.debug("[".concat(this.getTrackId(),"] track ended")),this.safeEmit(R2.TRACK_ENDED)}async renewMediaStreamTrack(s){const c=s||this._constraints,u=rc.searchDeviceIdByName(this._deviceName);if(u&&!c.deviceId&&(c.deviceId={exact:u}),this._enabled){const h=await Pi({video:c},this.getTrackId());this._constraints=c,await this._updateOriginMediaStreamTrack(h.getVideoTracks()[0],!0),this.updateMediaStreamTrackResolution()}}close(){super.close(),bn.off(Yo.IOS_15_16_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat),bn.off(Yo.IOS_INTERRUPTION_END,this.tryResumeVideoForIOS15_16WeChat)}clone(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],u=this._encoderConfig;s&&(u=Xn(Xn({},u),El(s))),u=Hs(u);const h=un(8,"track-cam-cloned-"),_=new _ne(c?this._mediaStreamTrack.clone():this._mediaStreamTrack,Hs(Xn(Xn({},this._config),{},{encoderConfig:u})),Hs(this._constraints),Hs(this._scalabilityMode),this._optimizationMode,h);return s&&u&&_.setEncoderConfiguration(u),J.debug("clone track from ".concat(this.getTrackId()," to ").concat(h,", clone ").concat(c)),_}bindProcessorContextEvents(){this.processorContext.on(Z1.REQUEST_UPDATE_CONSTRAINTS,async(s,c,u)=>{try{const h=Object.assign({},this._originalConstraints,...s);await this.renewMediaStreamTrack(h),c()}catch(h){u(h)}}),this.processorContext.on(Z1.REQUEST_CONSTRAINTS,async s=>{s(this._originMediaStreamTrack.getSettings())})}},Mi(sr.prototype,"setDevice",[Vt,e_],Object.getOwnPropertyDescriptor(sr.prototype,"setDevice"),sr.prototype),Mi(sr.prototype,"setEnabled",[wy,Oc,dA],Object.getOwnPropertyDescriptor(sr.prototype,"setEnabled"),sr.prototype),Mi(sr.prototype,"setEncoderConfiguration",[mr,vi],Object.getOwnPropertyDescriptor(sr.prototype,"setEncoderConfiguration"),sr.prototype),Mi(sr.prototype,"close",[or],Object.getOwnPropertyDescriptor(sr.prototype,"close"),sr.prototype),sr);function uA(t){const s=un(8,"track-cus-"),c=qt.reportApiInvoke(null,{id:s,tag:vn.TRACER,name:Ti.CREATE_CUSTOM_AUDIO_TRACK,options:[t]}),u=new po(t.mediaStreamTrack,t.encoderConfig?Kf(t.encoderConfig):{},s,!1);return J.info("create custom audio track success with config",t,"trackId",u.getTrackId()),c.onSuccess(u.getTrackId()),u}function qr(t,s,c,u){c.optimizationMode&&(u&&u.width&&u.height?(c.encoderConfig=Xn(Xn({},u),{},{bitrateMin:u.bitrateMin,bitrateMax:u.bitrateMax}),c.optimizationMode!=="motion"&&c.optimizationMode!=="detail"||(s.contentHint=c.optimizationMode,s.contentHint===c.optimizationMode?J.debug("[".concat(t,"] set content hint to"),c.optimizationMode):J.debug("[".concat(t,"] set content hint failed")))):J.warning("[".concat(t,"] can not apply optimization mode bitrate config, no encoderConfig")))}var t_,r_,Nu,zU,ic,vy,$U,Mg,Dy,Qs,gN,NA,ls;let $A=class extends F4{getUserId(){return this._userId}constructor(t,s,c,u){super(t,"track-".concat(t.kind,"-").concat(s,"-").concat(u.clientId,"_").concat(un(5,""))),We(this,"_userId",void 0),We(this,"_uintId",void 0),We(this,"_isDestroyed",!1),We(this,"store",void 0),We(this,"processor",void 0),We(this,"processorContext",void 0),this._userId=s,this._uintId=c,this.store=u}_updateOriginMediaStreamTrack(t){this._originMediaStreamTrack=t,this._mediaStreamTrack=t,this._updatePlayerSource(),this.processor&&this.processor.updateInput({track:this._originMediaStreamTrack,context:this.processorContext})}_destroy(){this._isDestroyed=!0,J.info("[".concat(this.getTrackId(),"] is destroyed")),this.stop(),super.close()}getProcessorStats(){return this.processorContext.gatherStats()}getProcessorUsage(){return this.processorContext.gatherUsage()}},Fd=(t_=yr({argsMap:(t,s,c)=>[t.getTrackId(),typeof s=="string"?s:s instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement",c]}),r_=yr({argsMap:t=>[t.getTrackId()]}),Nu=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),zU=yr({argsMap:t=>[t.getTrackId()]}),Mi((ic=class extends $A{get isPlaying(){return!(!this._player||this._player.videoElementStatus!==Ca.PLAYING)}get __className__(){return"RemoteVideoTrack"}constructor(t,s,c,u,h){super(t,s,c,u),We(this,"_videoVisibleTimer",null),We(this,"_previousVideoVisibleStatus",void 0),We(this,"_clearPreviousVideoVisibleStatus",()=>this._previousVideoVisibleStatus=void 0),We(this,"trackMediaType",y2.VIDEO),We(this,"_videoWidth",void 0),We(this,"_videoHeight",void 0),We(this,"_player",void 0),We(this,"_prePlayer",void 0),We(this,"processorDestination",void 0),We(this,"processorContext",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),this._prePlayer=h,this.updateMediaStreamTrackResolution(),this.processorContext=new W4(this.getTrackId(),"remote"),this.processorDestination=new q4(this.processorContext),this.bindProcessorDestinationEvents()}getStats(){return vg(()=>{J.warning("[deprecated] RemoteVideoTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteVideoStats instead")},"remoteVideoTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},P4)}play(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.safeEmit($1.PLAY_START),typeof t=="string"){const u=document.getElementById(t);u?t=u:(J.warning("[".concat(this.getTrackId(),'] can not find "#').concat(t,'" element, use document.body')),t=document.body)}J.debug("[".concat(this.getTrackId(),"] start video playback in ").concat(t instanceof HTMLVideoElement?"HTMLVideoElement":"HTMLElement"),JSON.stringify(s));const c=Xn(Xn({fit:"cover"},s),{},{trackId:this.getTrackId(),element:t});if(this._player)this._player.updateConfig(c);else{let u=!1,h=!1;const _=this._prePlayer&&!this._prePlayer.isDestroyed&&t===this._prePlayer.config.element;this._prePlayer&&!_&&(this._prePlayer.destroy(),h=!0),_?(this._player=this._prePlayer,u=this._player.videoState>0,this._player.updateConfig(c)):this._player=t instanceof HTMLVideoElement?new Sy(c):new Ry(c),this._prePlayer=void 0,this._player.updateVideoTrack(this._mediaStreamTrack),this._player.onFirstVideoFrameDecoded=()=>{this.store.subscribe(this.getUserId(),"video",void 0,void 0,Date.now()),this.safeEmit($1.FIRST_FRAME_DECODED),h&&this.safeEmit($1.FIRST_FRAME_RENDER)},this._player.onVideoStateChanged=B=>{this.safeEmit($1.VIDEO_STATE_CHANGED,B)},u&&(this._player.onFirstVideoFrameDecoded(),this._player.onVideoStateChanged(this._player.videoState))}this._player.play(this.store.sessionId||void 0),this._videoVisibleTimer&&window.clearInterval(this._videoVisibleTimer),this._clearPreviousVideoVisibleStatus(),this._videoVisibleTimer=window.setInterval(()=>{try{const u=this.getVideoElementVisibleStatus();this.safeEmit($1.VIDEO_ELEMENT_VISIBLE_STATUS,u)}catch{}},de("CHECK_VIDEO_VISIBLE_INTERVAL")),this.safeEmit($1.PLAY_END)}stop(){let t=arguments.length>0&&arguments[0]!==void 0&&arguments[0];this._player&&(this._videoVisibleTimer&&(window.clearInterval(this._videoVisibleTimer),this._videoVisibleTimer=null),this._clearPreviousVideoVisibleStatus(),this._player.destroy(t),this._player=void 0,J.debug("[".concat(this.getTrackId(),"] stop video playback")))}getCurrentFrameData(){return this._player?this._player.getCurrentFrame():new ImageData(2,2)}updateMediaStreamTrackResolution(){D2(this._originMediaStreamTrack).then(t=>{let s=bc(t,2),c=s[0],u=s[1];this._videoHeight=u,this._videoWidth=c}).catch(X)}_updatePlayerSource(){J.debug("[".concat(this.getTrackId(),"] update player source track")),this._player&&this._player.updateVideoTrack(this._mediaStreamTrack)}getVideoElementVisibleStatus(){try{var t,s;const c=this==null||(t=this._player)===null||t===void 0?void 0:t.getContainerElement(),u={track:this,element:this==null||(s=this._player)===null||s===void 0?void 0:s.getVideoElement(),slot:c==null?void 0:c.parentElement},h=u.element,_=u.slot;if(this.isPlaying&&h instanceof HTMLVideoElement&&_ instanceof HTMLElement){const B=$P.checkOneElementVisible(h),Q=Object.assign({},B);if(Q.visible!==this._previousVideoVisibleStatus){this._previousVideoVisibleStatus=Q.visible;const T=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.REMOTE_VIDEO_TRACK_GET_VIDEO_VISIBLE,options:[this.getTrackId()]});Q.visible?T.onSuccess("Video is visible"):T.onSuccess("Invisible because of ".concat(Q.reason))}return Q}return}catch(c){throw new tt(Ce.GET_VIDEO_ELEMENT_VISIBLE_ERROR,c.message)}}_ensureVideoExtensionManager(t){return this._extensionManager||(this._extensionManager=t.createVideoExtensionManager(this),this._extensionManager.onOutputTrackChanged=s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())},this._extensionManager.onEmpty=()=>{this._useExtensionMode=!1,this._extensionManager=void 0}),this._extensionManager}useExtension(t,s){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureVideoExtensionManager(t),this._useExtensionMode=!0,this._extensionManager.useExtension(t,s)}removeExtension(t){if(!this._extensionManager)return!1;const s=this._extensionManager.removeExtension(t);return s&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(t.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),s}pipe(t){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active. Call removeExtension() for all extensions first.");if(this.processor===t)return t;if(t._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(t.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=t,this.processor._source=this,t.updateInput({track:this._originMediaStreamTrack,context:this.processorContext}),t}unpipe(){if(!this.processor)return;const t=this.processor;this.processor._source=void 0,this.processor=void 0,this._usePipeMode=!1,t.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(lA.ON_TRACK,async t=>{t?t!==this._mediaStreamTrack&&(this._mediaStreamTrack=t,this._updatePlayerSource()):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(lA.ON_TRACK)}_destroy(){this._prePlayer&&(this._prePlayer.destroy(),this._prePlayer=void 0),this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1),super._destroy(),this.unbindProcessorDestinationEvents()}_onSei(t){this.emit(dh.SEI_RECEIVED,t)}}).prototype,"play",[t_],Object.getOwnPropertyDescriptor(ic.prototype,"play"),ic.prototype),Mi(ic.prototype,"stop",[r_],Object.getOwnPropertyDescriptor(ic.prototype,"stop"),ic.prototype),Mi(ic.prototype,"pipe",[Nu],Object.getOwnPropertyDescriptor(ic.prototype,"pipe"),ic.prototype),Mi(ic.prototype,"unpipe",[zU],Object.getOwnPropertyDescriptor(ic.prototype,"unpipe"),ic.prototype),ic),an=(vy=yr({argsMap:(t,s)=>[t.getTrackId(),s],throttleTime:300}),$U=yr({argsMap:(t,s)=>[t.getTrackId(),s],throttleTime:300}),Mg=yr({argsMap:(t,s)=>[t.getTrackId(),s]}),Dy=yr({argsMap:t=>[t.getTrackId()]}),Qs=yr({argsMap:t=>[t.getTrackId()]}),gN=yr({argsMap:(t,s)=>[t.getTrackId(),s.name]}),NA=yr({argsMap:t=>[t.getTrackId()]}),Mi((ls=class extends $A{get isPlaying(){return this._useAudioElement?rA.isPlaying(this.getTrackId()):this._source.isPlayed}get __className__(){return"RemoteAudioTrack"}constructor(t,s,c,u){super(t,s,c,u),We(this,"trackMediaType",y2.AUDIO),We(this,"_source",void 0),We(this,"_useAudioElement",!0),We(this,"_volume",100),We(this,"processorContext",void 0),We(this,"processorDestination",void 0),We(this,"_usePipeMode",!1),We(this,"_useExtensionMode",!1),We(this,"_extensionManager",void 0),We(this,"_played",!1),We(this,"_bypassWebAudio",!1),de("DISABLE_WEBAUDIO")?(this._source=new pa,this._bypassWebAudio=!0,this._useAudioElement=!0):(this._source=new ly(t,!0),de("REMOTE_AUDIO_TRACK_USES_WEB_AUDIO")&&(this._useAudioElement=!1)),this._source.once(zA.RECEIVE_TRACK_BUFFER,()=>{this.safeEmit($1.FIRST_FRAME_DECODED)}),this.processorContext=new z4(this._source.context,this.getTrackId(),"remote"),this.processorDestination=new X4(this.processorContext),this.bindProcessorDestinationEvents(),this._source.on(zA.UPDATE_SOURCE,()=>{this.processor&&this.processor.updateInput({node:this._source.processSourceNode,context:this.processorContext})})}setAudioFrameCallback(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:4096;if(!t)return this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),void this._source.stopGetAudioBuffer();this._source.startGetAudioBuffer(s),this._source.removeAllListeners(zA.ON_AUDIO_BUFFER),this._source.on(zA.ON_AUDIO_BUFFER,c=>t(c))}setVolume(t){this._volume=t,this._useAudioElement?rA.setVolume(this.getTrackId(),t):this._source.setVolume(t/100)}setAmplifiedVolume(t){this._useAudioElement&&this._played&&(rA.stop(this.getTrackId()),this._source.play()),this._useAudioElement=!1,t=Math.min(t,de("MAX_WEBAUDIO_VOLUME")),this._volume=t,this._source.setVolume(t/100)}async setPlaybackDevice(t){if(!this._useAudioElement||!w4())throw new tt(Ce.NOT_SUPPORTED,"your browser does not support setting the audio output device");await rA.setSinkID(this.getTrackId(),t)}getVolumeLevel(){return this._source.getAccurateVolumeLevel()}getVolume(){return this._useAudioElement?rA.getVolume(this.getTrackId()):this._source instanceof ly?this._source.getAudioVolume():0}getStats(){return vg(()=>{J.warning("[deprecated] RemoteAudioTrack.getStats will be removed in the future, use AgoraRTCClient.getRemoteAudioStats instead")},"remoteAudioTrackGetStatsWarning"),q1(this,xt.GET_STATS)||Xn({},k4)}play(){J.debug("[".concat(this.getTrackId(),"] start audio playback")),this._played=!0,this._useAudioElement?(J.debug("[".concat(this.getTrackId(),"] use audio element to play")),rA.play(this._mediaStreamTrack,this.getTrackId(),this._volume,this.store.sessionId||void 0)):(J.debug("[".concat(this.getTrackId(),"] use audio context to play")),this._source.play())}stop(){J.debug("[".concat(this.getTrackId(),"] stop audio playback")),this._played=!1,this._useAudioElement?rA.stop(this.getTrackId()):this._source.stop()}_destroy(){super._destroy(),this._played=!1,this._extensionManager&&(this._extensionManager.destroy(),this._extensionManager=void 0,this._useExtensionMode=!1),this.unbindProcessorDestinationEvents(),this._source.destroy()}_isFreeze(){return this._source.isFreeze}_updatePlayerSource(){let t=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];J.debug("[".concat(this.getTrackId(),"] update player source track")),t&&this._source.updateTrack(this._mediaStreamTrack),this._useAudioElement&&rA.updateTrack(this.getTrackId(),this._mediaStreamTrack)}_ensureAudioExtensionManager(t){return this._extensionManager||(this._extensionManager=t.createAudioExtensionManager(this),this._extensionManager.onOutputTrackChanged=s=>{s?s!==this._mediaStreamTrack&&(this._mediaStreamTrack=s,this._updatePlayerSource(!1)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}),this._extensionManager}useExtension(t){if(this._usePipeMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use useExtension() when pipe() mode is active. Call unpipe() first.");return this._ensureAudioExtensionManager(t),this._useExtensionMode=!0,this._extensionManager.useExtension(t)}removeExtension(t){if(!this._extensionManager)return!1;const s=this._extensionManager.removeExtension(t);return s&&J.info("[".concat(this.getTrackId(),"] removeExtension: ").concat(t.name)),this._extensionManager.hasExtensions||(this._useExtensionMode=!1),s}addReferenceTrack(t){if(!this._extensionManager)throw new tt(Ce.INVALID_OPERATION,"Call useExtension() before addReferenceTrack().");this._extensionManager.addReferenceTrack(t),J.info("[".concat(this.getTrackId(),"] addReferenceTrack"))}removeReferenceTrack(t){return!!this._extensionManager&&this._extensionManager.removeReferenceTrack(t)}pipe(t){if(this._useExtensionMode)throw new tt(Ce.INVALID_OPERATION,"Cannot use pipe() when useExtension() mode is active.");if(this._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"can not pipe extension when WebAudio disabled");if(this.processor===t)return t;if(t._source)throw new tt(Ce.INVALID_OPERATION,"Processor ".concat(t.name," already piped, please call unpipe beforehand."));return this.unpipe(),this._usePipeMode=!0,this.processor=t,this.processor._source=this,t.updateInput({track:this._originMediaStreamTrack,node:this._source.processSourceNode,context:this.processorContext}),t}unpipe(){var t;if(this._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"can not unpipe extension when WebAudio disabled");if(!this.processor)return;const s=this.processor;(t=this._source.processSourceNode)===null||t===void 0||t.disconnect(),this.processor._source=!1,this.processor=void 0,this._usePipeMode=!1,s.reset()}bindProcessorDestinationEvents(){this.processorDestination.on(lA.ON_TRACK,async t=>{t?t!==this._mediaStreamTrack&&(this._mediaStreamTrack=t,this._updatePlayerSource(!1),this._source.processedNode=this._source.createMediaStreamSourceNode(t)):this._mediaStreamTrack!==this._originMediaStreamTrack&&(this._mediaStreamTrack=this._originMediaStreamTrack,this._updatePlayerSource())}),this.processorDestination.on(lA.ON_NODE,t=>{this._source.processedNode=t;const s=!t;this._useAudioElement!==s&&(this._played?(this.stop(),this._useAudioElement=s,this.play()):this._useAudioElement=s)})}unbindProcessorDestinationEvents(){this.processorDestination.removeAllListeners(lA.ON_TRACK),this.processorDestination.removeAllListeners(lA.ON_NODE)}}).prototype,"setVolume",[vy],Object.getOwnPropertyDescriptor(ls.prototype,"setVolume"),ls.prototype),Mi(ls.prototype,"setAmplifiedVolume",[$U],Object.getOwnPropertyDescriptor(ls.prototype,"setAmplifiedVolume"),ls.prototype),Mi(ls.prototype,"setPlaybackDevice",[Mg],Object.getOwnPropertyDescriptor(ls.prototype,"setPlaybackDevice"),ls.prototype),Mi(ls.prototype,"play",[Dy],Object.getOwnPropertyDescriptor(ls.prototype,"play"),ls.prototype),Mi(ls.prototype,"stop",[Qs],Object.getOwnPropertyDescriptor(ls.prototype,"stop"),ls.prototype),Mi(ls.prototype,"pipe",[gN],Object.getOwnPropertyDescriptor(ls.prototype,"pipe"),ls.prototype),Mi(ls.prototype,"unpipe",[NA],Object.getOwnPropertyDescriptor(ls.prototype,"unpipe"),ls.prototype),ls);const Pn=new class extends Cn{get visibility(){return document.visibilityState}get lastHiddenTime(){return this._lastHiddenTime}get lastVisibleTime(){return this._lastVisibleTime}constructor(){super(),We(this,"_lastHiddenTime",0),We(this,"_lastVisibleTime",0),We(this,"needUploadStats",[]),We(this,"isCollectingStats",!1),document.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this._lastHiddenTime=performance.now():this._lastVisibleTime=performance.now(),this.isCollectingStats&&this.needUploadStats.push(document.visibilityState==="visible"?1:0),J.debug("current web page is ".concat(document.visibilityState)),this.emit("VISIBILITY_CHANGE",document.visibilityState)})}startCollectStats(){this.isCollectingStats=!0,this.needUploadStats.push(this.visibility==="visible"?1:0)}stopCollectStats(){this.isCollectingStats=!1,this.needUploadStats.length=0}};let i_=class extends Cn{constructor(t,s){super(),We(this,"trackMediaType",y2.DATA),We(this,"_version",1),We(this,"_type",3),We(this,"_config",void 0),We(this,"_originDataChannel",void 0),We(this,"_dataStreamPacketHeader",new ArrayBuffer(4)),We(this,"_dataStreamPacketHandler",{serialize:c=>c,deserialize:c=>c}),We(this,"_datachannelEventMap",new Map),this._config=t,s&&(this._originDataChannel=s,this._bandDataChannelEvents(s)),this._initPacketHeader()}useDataStream(t){this._dataStreamPacketHandler=t}get id(){return this._config.id}get ordered(){return this._config.ordered}get maxRetransmits(){return de("DATASTREAM_MAX_RETRANSMITS")}get metadata(){return this._config.metadata}get readyState(){var t,s;return(t=(s=this._originDataChannel)===null||s===void 0?void 0:s.readyState)!==null&&t!==void 0?t:"connecting"}get _originDataChannelId(){var t,s;return(t=(s=this._originDataChannel)===null||s===void 0?void 0:s.id)!==null&&t!==void 0?t:null}getChannelId(){return this.id}getConfig(){return this._config}_close(){this._originDataChannel&&(this._unbindDataChannelEvents(this._originDataChannel),this._originDataChannel=void 0)}async _waitTillOpen(){return new Ut((t,s)=>{if(this._originDataChannel){this._originDataChannel.readyState==="open"&&t();const c=setTimeout(()=>{var u;s(new tt(Ce.DATACHANNEL_CONNECTION_TIMEOUT,"Cannot create datachannel, id: ".concat((u=this._originDataChannel)===null||u===void 0?void 0:u.id)))},1e4);this._originDataChannel.onopen=()=>{clearTimeout(c),this._originDataChannel&&this._bandDataChannelEvents(this._originDataChannel),t()},this._originDataChannel.onerror=()=>{throw clearTimeout(c),new tt(Ce.DATACHANNEL_CONNECTION_TIMEOUT)}}else s(new tt(Ce.DATACHANNEL_CONNECTION_TIMEOUT,"cannot find dataChannel"))})}_updateOriginDataChannel(t){this._originDataChannel=t,this._bandDataChannelEvents(t)}_initPacketHeader(){const t=new DataView(this._dataStreamPacketHeader);t.setUint16(0,this._version),t.setUint8(2,this._type),t.setUint8(3,this._config.id)}_bandDataChannelEvents(t){this._unbindDataChannelEvents(t),[Hf.OPEN,Hf.CLOSE,Hf.ERROR].forEach(s=>{const c=()=>{this.emit(s)};this._datachannelEventMap.set(s,c),t.addEventListener(s,c)})}_unbindDataChannelEvents(t){Array.from(this._datachannelEventMap.entries()).forEach(s=>{let c=bc(s,2),u=c[0],h=c[1];t.removeEventListener(u,h)}),this._datachannelEventMap.clear()}},na=class extends i_{constructor(t){super(t),We(this,"_messageListener",void 0),this._messageListener=s=>{if(s.data.byteLengthb3.revokeObjectURL(t),0),new Worker(b3.createObjectURL(t))}const ka=71,KC=1,Il=2,by=1,EN=2;var Gd=function(t){return t[t.AUDIO_LEVEL=1]="AUDIO_LEVEL",t[t.METADATA=2]="METADATA",t[t.AUDIO_64_BIT_PTS=3]="AUDIO_64_BIT_PTS",t}(Gd||{});function $t(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=t.getUint8(0);if(c!==ka)return;const u=t.getUint16(1),h=KC+Il+u,_=new Uint8Array(t.byteLength-h);_.set(new Uint8Array(t.buffer,h,t.byteLength-h));const B={m:c,tlvLen:u,tlv:[],frame:_};let Q=KC+Il;for(;Q>1:127&P})}else if(T===Gd.METADATA||T===Gd.AUDIO_64_BIT_PTS){const P=new Uint8Array(D);for(let U=0;UQ;O--,P++)D=D*O/P;return D}(s,t))+t*Math.log(.5)+(s-t)*Math.log(1-.5)-Math.log(c)+c*t,An.set(u,h)),hc&&T++;s[B]!==T&&(s[B]=T,_=!0)}return _}window.cache=An;let Zl=0,sa=class{constructor(t){We(this,"id",void 0),We(this,"immediates",[]),We(this,"lastNonSilence",-1),We(this,"immediateSpeechActivityScore",Ch),We(this,"lastLevelChangedTime",Date.now()),We(this,"levels",[]),We(this,"longs",[]),We(this,"longSpeechActivityScore",Ch),We(this,"mediums",[]),We(this,"mediumSpeechActivityScore",Ch),We(this,"minLevel",0),We(this,"nextMinLevel",0),We(this,"nextMinLevelWindowLength",0),We(this,"energyScore",0),this.id=t||"".concat(Zl++),this.immediates.length=50,this.mediums.length=10,this.longs.length=1,this.levels.length=this.immediates.length}computeImmediates(){const t=this.immediates,s=this.levels,c=this.minLevel+St;let u=!1;for(let h=0;hCh&&(this.lastNonSilence=t)}evaluateMediumSpeechActivityScore(){this.mediumSpeechActivityScore=hr(this.mediums[0],5,24)}evaluateSpeechActivityScores(t){this.computeImmediates()&&(this.evaluateImmediateSpeechActivityScore(),this.computeMediums()&&(this.evaluateMediumSpeechActivityScore(),this.computeLongs()&&this.evaluateLongSpeechActivityScore(t)))}getLastLevelChangedTime(){return this.lastLevelChangedTime}getLevels(){var t;return"[".concat(RI(t=[...this.levels]).call(t).join(),"]")}getSpeechActivityScore(t){switch(t){case 0:return this.immediateSpeechActivityScore;case 1:return this.mediumSpeechActivityScore;case 2:return this.longSpeechActivityScore;default:throw new Error("interval "+t)}}levelChanged(t,s){if(this.lastLevelChangedTime<=s){this.lastLevelChangedTime=s;let c=t;return t<0&&(c=0),t>$l&&(c=$l),this.levels.unshift(c),this.levels.length>this.immediates.length&&this.levels.pop(),this.updateMinLevel(c),c>=this.minLevel+St?c:c/2}return-1}levelTimedOut(){this.levelChanged(0,this.lastLevelChangedTime)}updateMinLevel(t){if(t!==0){if(this.minLevel===0||this.minLevel>t)return this.minLevel=t,this.nextMinLevel=0,void(this.nextMinLevelWindowLength=0);if(this.nextMinLevel===0)return this.nextMinLevel=t,void(this.nextMinLevelWindowLength=1);if(this.nextMinLevel>t&&(this.nextMinLevel=t),this.nextMinLevelWindowLength++,this.nextMinLevelWindowLength>=750){let s=Math.sqrt(this.minLevel*this.nextMinLevel);s<0?s=0:s>$l&&(s=$l),this.minLevel=s,this.nextMinLevel=0,this.nextMinLevelWindowLength=0}}}},Ou=class{constructor(t,s,c){We(this,"isDominant",void 0),We(this,"energyRanking",void 0),We(this,"energyScore",void 0),this.isDominant=t,this.energyRanking=s,this.energyScore=c}},Ms=class extends Cn{constructor(t){super(),We(this,"dominantId",null),We(this,"lastDecisionTime",0),We(this,"lastLevelChangedTime",0),We(this,"lastLevelIdleTime",0),We(this,"relativeSpeechActivities",[]),We(this,"speakers",new Map),We(this,"enableSilence",!1),We(this,"timeoutToSilenceInterval",0),We(this,"decisionMaker",null),We(this,"loudest",[]),We(this,"numLoudestToTrack",3),We(this,"energyExpireTimeMs",250),We(this,"energyAlphaPct",50),this.timeoutToSilenceInterval=t,this.enableSilence=t>0,this.relativeSpeechActivities.length=3}setLoudestConfig(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:3,s=arguments.length>1?arguments[1]:void 0,c=arguments.length>2?arguments[2]:void 0;this.numLoudestToTrack=t,s!=null&&(this.energyExpireTimeMs=s),c!=null&&(this.energyAlphaPct=c),this.loudest.length>t&&this.loudest.splice(t)}getDominantSpeaker(){return this.dominantId}isAmongLoudest(t){return this.loudest.some(s=>s.id===t)}levelChanged(t,s){const c=Date.now(),u=this.getOrCreateSpeaker(t);this.lastLevelChangedTime0&&this.lastDecisionTime-this.lastLevelChangedTime>=15e3?-1:this._runInDecisionMaker()}decisionMakerExited(t){this.decisionMaker===t&&(this.decisionMaker=null)}destroy(){this.decisionMaker=null,this.loudest.length=0,this.speakers.clear(),this.removeAllListeners()}addSpeakers(t){t.forEach(s=>{this.speakers.has(s.id)||this.speakers.set(s.id,s)})}removeSpeakers(t){t.forEach(s=>{this.speakers.delete(s.id)})}getOrCreateSpeaker(t){let s=this.speakers.get(t);return s||(s=new sa(t),this.speakers.set(t,s),this.maybeStartDecisionMaker()),s}updateLoudestList(t,s,c){const u=t.id===this.dominantId;if(s<0){let Q=0;for(;Q=this.numLoudestToTrack)this.loudest.splice(_,1);else if(Q.id!==t.id)++_;else if(this.loudest.splice(_,1),this.loudest.lengththis.numLoudestToTrack&&this.loudest.splice(this.numLoudestToTrack,1)),new Ou(u,B,t.energyScore)}maybeStartDecisionMaker(){!this.decisionMaker&&this.speakers.size>0&&(this.decisionMaker=new class{constructor(t){We(this,"algorithm",void 0),this.algorithm=t}execute(){let t=!this.algorithm;if(!t)try{const s=this.algorithm.runInDecisionMaker(this);s<=0?t=!0:setTimeout(this.execute.bind(this),s)}catch{t=!0}t&&this.algorithm&&this.algorithm.decisionMakerExited(this)}}(this),this.decisionMaker.execute())}makeDecision(t){let s=null,c=null;const u=this.speakers.size;let h=null;if(u===0)h=null;else if(u===1){var _;const B=BA(_=this.speakers).call(_).next().value;this.enableSilence&&B&&(h=B.id,B.evaluateSpeechActivityScores(t),t-B.lastNonSilence>this.timeoutToSilenceInterval&&(h=null))}else{let B=this.dominantId==null?null:this.speakers.get(this.dominantId);if(B==null){const D=this.speakers.entries().next();D.value&&(h=D.value[0],B=D.value[1])}else h=B.id;B!=null&&B.evaluateSpeechActivityScores(t);const Q=this.relativeSpeechActivities;let T=2;for(const D of this.speakers.entries()){const O=bc(D,2),P=O[0],U=O[1];if(U===B)continue;U.evaluateSpeechActivityScores(t);for(let te=0;te3&&$>2&&Z>0&&$>T&&(T=$,h=P)}this.enableSilence&&B!=null&&h===B.id&&t-B.lastNonSilence>this.timeoutToSilenceInterval&&(h=null)}h==null&&!this.enableSilence||h===this.dominantId||(s=this.dominantId,this.dominantId=h,c=this.dominantId),c==null&&!this.enableSilence||c===s||this.emit("ActiveSpeakerChanged",c)}_runInDecisionMaker(){const t=Date.now(),s=300-(t-this.lastLevelIdleTime);let c=0;s<=0?(this.lastLevelIdleTime!==0&&this.timeoutIdleLevels(t),this.lastLevelIdleTime=t):c=s;let u=300-(t-this.lastDecisionTime);return u<=0&&(this.lastDecisionTime=t,this.makeDecision(t),u=300-(Date.now()-t)),u>0&&c>u&&(c=u),c}timeoutIdleLevels(t){const s=[];for(const u of BA(c=this.speakers).call(c)){var c;const h=t-u.getLastLevelChangedTime();36e5this.speakers.delete(u))}};const nc=new Map;let ba=null,Pc=null;const b2=3;let Ro=[];const _1=new Map,Vd=new Map;let Ny,jJ=class{get samples(){return this.actives+this.inactives}get activeRate(){return this.actives/this.samples}constructor(t,s){We(this,"id",void 0),We(this,"track",void 0),We(this,"score",0),We(this,"active",!0),We(this,"muted",!1),We(this,"timer",0),We(this,"actives",0),We(this,"inactives",0),this.id=t,this.track=s,this.setActive(_1.size<3)}autoCheckActive(){this.autoSetActive(),this.autoAdjustActive(),this.resetTimer(),this.actives=0,this.inactives=0}autoSetActive(){const t=this.active;this.active=this.activeRate>=.8;const s=function(){const h=[],_=[];return Array.from(BA(_1).call(_1)).forEach(B=>{B.active?h.push(B):_.push(B)}),{actives:h,inactives:_}}(),c=s.actives,u=s.inactives;if(c.length>3){let h;c.forEach(_=>{(!h||h.score>_.score)&&(h=_)}),h&&h.setActive(!1)}if(c.length<3&&u.length>0){let h;u.forEach(_=>{(!h||h.score<_.score)&&_.id!==this.id&&(h=_)}),h&&t&&!this.active&&(h.samples>40&&h.activeRate-this.activeRate>.4?h.setActive(!0):this.active=!0)}this.setMuted(!this.active)}setActive(t){this.active=t,this.resetTimer(),this.setMuted(!t)}autoAdjustActive(){this.active?this.autoSwitchToInactive():this.autoSwitchToActive()}autoSwitchToActive(){const t=function(s){let c;return Array.from(BA(_1).call(_1)).forEach(u=>{!u.active||u.id===s||u.samples<40||(!c||u.score.4&&(t.setActive(!1),this.setActive(!0))}autoSwitchToInactive(){const t=function(s){let c;return Array.from(BA(_1).call(_1)).forEach(u=>{u.active||u.id===s||u.samples<40||(!c||u.score>c.score)&&(c=u)}),c}(this.id);t&&t.activeRate-this.activeRate>.4&&(t.setActive(!0),this.setActive(!1))}addSample(t){t?this.actives+=1:this.inactives+=1,this.samples>66.66666666666667&&this.autoCheckActive()}setMuted(t){this.track&&(this.track.enabled=!t,this.muted=t)}resetTimer(){this.clearTimer(),this.timer=window.setTimeout(()=>{if(this.samples!==0)return this.samples<50?this.resetTimer():void this.autoCheckActive()},1e3)}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=0)}};function N2(t){const s=_1.get(t);s&&(_1.delete(t),s.clearTimer())}const Oy=new Map,O2=new Map,Ly="video/h264",o_="video/h265";function My(t,s,c){let u=new Uint8Array(t,s,c),h=[],_=0;for(;h.length=t.length)return"";const u=t[c];return 128&u?"":(u>>1&63)>=32||c+134,Js.supportUnifiedPlan=function(){if(!window.RTCRtpTransceiver||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;const s=new RTCPeerConnection;let c=!1;try{s.addTransceiver("audio"),c=!0}catch{}return s.close(),c}(),Js.supportMinBitrate=t.name===Fi.CHROME||t.name===Fi.EDGE,Js.supportSetRtpSenderParameters=function(){const s=Qi();return!!(window.RTCRtpSender&&window.RTCRtpSender.prototype.setParameters&&window.RTCRtpSender.prototype.getParameters)&&(!!Al()||!(!Zs()&&!Qf())||s.name===Fi.FIREFOX&&Number(s.version)>=64)}(),t.name===Fi.SAFARI&&(Number(t.version)>=14?Js.supportDualStream=!0:Js.supportDualStream=!1),Js.webAudioMediaStreamDest=function(){const s=Qi();return!(s.name===Fi.SAFARI&&Number(s.version)<12)}(),Js.supportReplaceTrack=!!window.RTCRtpSender&&typeof RTCRtpSender.prototype.replaceTrack=="function",Js.supportWebGL=typeof WebGLRenderingContext<"u",Js.supportRequestFrame=!!window.CanvasCaptureMediaStreamTrack,Al()||(Js.webAudioWithAEC=!0),Js.supportShareAudio=function(){const s=Qi();return(s.os===ns.WIN_10||s.os===ns.WIN_81||s.os===ns.WIN_7||s.os===ns.LINUX||s.os===ns.MAC_OS||s.os===ns.CHROMIUM_OS)&&s.name===Fi.CHROME&&Number(s.version)>=74}(),Js.supportDataChannel=!!(al(76)||wf(68)||a2(14)),Js.supportPCSetConfiguration=function(){const s=window.RTCPeerConnection;return!Ln()&&!!s&&s.prototype.setConfiguration instanceof Function}(),Js.supportWebRTCEncodedTransform=al(87)||Zb()||wf(117),Js.supportWebRTCInsertableStream=function(){const s=Qi();return(s.name===Fi.CHROME||s.name===Fi.EDGE)&&Number(s.version)>=94&&"MediaStreamTrackGenerator"in window&&"MediaStreamTrackProcessor"in window}(),Js.supportRequestVideoFrameCallback="requestVideoFrameCallback"in HTMLVideoElement.prototype,Js.supportWebCrypto=typeof window<"u"&&window.crypto!==void 0&&window.crypto.subtle!==void 0,Js.supportSuppressLocalAudioPlayback=L4(),Js.supportRestrictOwnAudio=M4(),xR(()=>{Js.supportDualStreamEncoding=function(){const s=Qi();return!!de("DISABLE_WEBAUDIO")||s.name==="Safari"&&Number(s.version)>=14||!!(s.name==="Chrome"&&/Windows/i.test(s.os||"")&&Number(s.version)>=100&&de("CHROME_DUAL_STREAM_USE_ENCODING"))}(),J.debug("browser ua: ",navigator.userAgent),J.info("browser info: ",t),J.info("browser compatibility: ",Js)})})();const JJ=["CHINA","GLOBAL"],t7=[[0,1,2,3,4,5,5],[0,2,2,3,4,5,5],[0,3,3,3,4,5,5],[0,4,4,4,4,5,5],[0,5,5,5,5,5,5]],ph=[],L2=[];function Lu(t,s){return!!s&&ph.some(c=>c.uid===t&&c.channelName===s)}function M2(){return L2.length>0}var r7=M3.forEach,i7=BI("forEach")?[].forEach:function(t){return r7(this,t,arguments.length>1?arguments[1]:void 0)};In({target:"Array",proto:!0,forced:[].forEach!==i7},{forEach:i7});var ps=E1("Array","forEach"),n7=fE,Py=Xs,hN=W,ed=ps,HC=Array.prototype,IN={DOMTokenList:!0,NodeList:!0},ZA=function(t){var s=t.forEach;return t===HC||hN(HC,t)&&s===HC.forEach||Py(IN,n7(t))?ed:s},o7=f(ZA),Uy=La,YC=Lm;In({target:"Object",stat:!0,forced:S(function(){YC(1)})},{keys:function(t){return YC(Uy(t))}});var CN=f(Zn.Object.keys),pN=f(V9),fh=f(J9);function Pt(t,s,c,u,h){var _,B,Q,T={};return o7(_=CN(u)).call(_,function(D){T[D]=u[D]}),T.enumerable=!!T.enumerable,T.configurable=!!T.configurable,("value"in T||T.initializer)&&(T.writable=!0),T=pN(B=fh(Q=$5(c).call(c)).call(Q)).call(B,function(D,O){return O(t,s,D)||D},T),h&&T.initializer!==void 0&&(T.value=T.initializer?T.initializer.call(h):void 0,T.initializer=void 0),T.initializer===void 0&&(ri(t,s,T),T=null),T}let a_=function(t){return t[t.ACCESS_POINT=101]="ACCESS_POINT",t[t.UNILBS=201]="UNILBS",t[t.STRING_UID_ALLOCATOR=901]="STRING_UID_ALLOCATOR",t}({}),k2=function(t){return t[t.IIIEGAL_APPID=1]="IIIEGAL_APPID",t[t.IIIEGAL_UID=2]="IIIEGAL_UID",t[t.INTERNAL_ERROR=3]="INTERNAL_ERROR",t}({}),Uc=function(t){return t[t.INVALID_VENDOR_KEY=5]="INVALID_VENDOR_KEY",t[t.INVALID_CHANNEL_NAME=7]="INVALID_CHANNEL_NAME",t[t.INTERNAL_ERROR=8]="INTERNAL_ERROR",t[t.NO_AUTHORIZED=9]="NO_AUTHORIZED",t[t.DYNAMIC_KEY_TIMEOUT=10]="DYNAMIC_KEY_TIMEOUT",t[t.NO_ACTIVE_STATUS=11]="NO_ACTIVE_STATUS",t[t.DYNAMIC_KEY_EXPIRED=13]="DYNAMIC_KEY_EXPIRED",t[t.STATIC_USE_DYNAMIC_KEY=14]="STATIC_USE_DYNAMIC_KEY",t[t.DYNAMIC_USE_STATIC_KEY=15]="DYNAMIC_USE_STATIC_KEY",t[t.USER_OVERLOAD=16]="USER_OVERLOAD",t[t.FORBIDDEN_REGION=18]="FORBIDDEN_REGION",t[t.CANNOT_MEET_AREA_DEMAND=19]="CANNOT_MEET_AREA_DEMAND",t[t.REQ_DOWNGRADE_FALLBACK=27]="REQ_DOWNGRADE_FALLBACK",t}({}),gA=function(t){return t[t.NO_FLAG_SET=100]="NO_FLAG_SET",t[t.FLAG_SET_BUT_EMPTY=101]="FLAG_SET_BUT_EMPTY",t[t.INVALID_FALG_SET=102]="INVALID_FALG_SET",t[t.FLAG_SET_BUT_NO_RE=103]="FLAG_SET_BUT_NO_RE",t[t.INVALID_SERVICE_ID=104]="INVALID_SERVICE_ID",t[t.NO_SERVICE_AVAILABLE=200]="NO_SERVICE_AVAILABLE",t[t.NO_SERVICE_AVAILABLE_P2P=201]="NO_SERVICE_AVAILABLE_P2P",t[t.NO_SERVICE_AVAILABLE_VOICE=202]="NO_SERVICE_AVAILABLE_VOICE",t[t.NO_SERVICE_AVAILABLE_WEBRTC=203]="NO_SERVICE_AVAILABLE_WEBRTC",t[t.NO_SERVICE_AVAILABLE_CDS=204]="NO_SERVICE_AVAILABLE_CDS",t[t.NO_SERVICE_AVAILABLE_CDN=205]="NO_SERVICE_AVAILABLE_CDN",t[t.NO_SERVICE_AVAILABLE_TDS=206]="NO_SERVICE_AVAILABLE_TDS",t[t.NO_SERVICE_AVAILABLE_REPORT=207]="NO_SERVICE_AVAILABLE_REPORT",t[t.NO_SERVICE_AVAILABLE_APP_CENTER=208]="NO_SERVICE_AVAILABLE_APP_CENTER",t[t.NO_SERVICE_AVAILABLE_ENV0=209]="NO_SERVICE_AVAILABLE_ENV0",t[t.NO_SERVICE_AVAILABLE_VOET=210]="NO_SERVICE_AVAILABLE_VOET",t[t.NO_SERVICE_AVAILABLE_STRING_UID=211]="NO_SERVICE_AVAILABLE_STRING_UID",t[t.NO_SERVICE_AVAILABLE_WEBRTC_UNILBS=212]="NO_SERVICE_AVAILABLE_WEBRTC_UNILBS",t[t.NO_SERVICE_AVAILABLE_UNILBS_FLV=213]="NO_SERVICE_AVAILABLE_UNILBS_FLV",t}({}),Br=function(t){return t[t.K_TIMESTAMP_EXPIRED=2]="K_TIMESTAMP_EXPIRED",t[t.K_CHANNEL_PERMISSION_INVALID=3]="K_CHANNEL_PERMISSION_INVALID",t[t.K_CERTIFICATE_INVALID=4]="K_CERTIFICATE_INVALID",t[t.K_CHANNEL_NAME_EMPTY=5]="K_CHANNEL_NAME_EMPTY",t[t.K_CHANNEL_NOT_FOUND=6]="K_CHANNEL_NOT_FOUND",t[t.K_TICKET_INVALID=7]="K_TICKET_INVALID",t[t.K_CHANNEL_CONFLICTED=8]="K_CHANNEL_CONFLICTED",t[t.K_SERVICE_NOT_READY=9]="K_SERVICE_NOT_READY",t[t.K_SERVICE_TOO_HEAVY=10]="K_SERVICE_TOO_HEAVY",t[t.K_UID_BANNED=14]="K_UID_BANNED",t[t.K_IP_BANNED=15]="K_IP_BANNED",t[t.K_CHANNEL_BANNED=16]="K_CHANNEL_BANNED",t[t.DATASTREAM2_NOT_AVAILABLE=27]="DATASTREAM2_NOT_AVAILABLE",t[t.K_AUTO_REBALANCE=28]="K_AUTO_REBALANCE",t[t.K_VOS_FALLBACK=30]="K_VOS_FALLBACK",t[t.WARN_NO_AVAILABLE_CHANNEL=103]="WARN_NO_AVAILABLE_CHANNEL",t[t.WARN_LOOKUP_CHANNEL_TIMEOUT=104]="WARN_LOOKUP_CHANNEL_TIMEOUT",t[t.WARN_LOOKUP_CHANNEL_REJECTED=105]="WARN_LOOKUP_CHANNEL_REJECTED",t[t.WARN_OPEN_CHANNEL_TIMEOUT=106]="WARN_OPEN_CHANNEL_TIMEOUT",t[t.WARN_OPEN_CHANNEL_REJECTED=107]="WARN_OPEN_CHANNEL_REJECTED",t[t.WARN_REQUEST_DEFERRED=108]="WARN_REQUEST_DEFERRED",t[t.ERR_DYNAMIC_KEY_TIMEOUT=109]="ERR_DYNAMIC_KEY_TIMEOUT",t[t.ERR_NO_AUTHORIZED=110]="ERR_NO_AUTHORIZED",t[t.ERR_VOM_SERVICE_UNAVAILABLE=111]="ERR_VOM_SERVICE_UNAVAILABLE",t[t.ERR_NO_CHANNEL_AVAILABLE_CODE=112]="ERR_NO_CHANNEL_AVAILABLE_CODE",t[t.ERR_MASTER_VOCS_UNAVAILABLE=114]="ERR_MASTER_VOCS_UNAVAILABLE",t[t.ERR_INTERNAL_ERROR=115]="ERR_INTERNAL_ERROR",t[t.ERR_NO_ACTIVE_STATUS=116]="ERR_NO_ACTIVE_STATUS",t[t.ERR_INVALID_UID=117]="ERR_INVALID_UID",t[t.ERR_DYNAMIC_KEY_EXPIRED=118]="ERR_DYNAMIC_KEY_EXPIRED",t[t.ERR_STATIC_USE_DYANMIC_KE=119]="ERR_STATIC_USE_DYANMIC_KE",t[t.ERR_DYNAMIC_USE_STATIC_KE=120]="ERR_DYNAMIC_USE_STATIC_KE",t[t.ERR_NO_VOCS_AVAILABLE=2e3]="ERR_NO_VOCS_AVAILABLE",t[t.ERR_NO_VOS_AVAILABLE=2001]="ERR_NO_VOS_AVAILABLE",t[t.ERR_JOIN_CHANNEL_TIMEOUT=2002]="ERR_JOIN_CHANNEL_TIMEOUT",t[t.ERR_REPEAT_JOIN_CHANNEL=2003]="ERR_REPEAT_JOIN_CHANNEL",t[t.ERR_JOIN_BY_MULTI_IP=2004]="ERR_JOIN_BY_MULTI_IP",t[t.ERR_NOT_JOINED=2011]="ERR_NOT_JOINED",t[t.ERR_REPEAT_JOIN_REQUEST=2012]="ERR_REPEAT_JOIN_REQUEST",t[t.ERR_INVALID_VENDOR_KEY=2013]="ERR_INVALID_VENDOR_KEY",t[t.ERR_INVALID_CHANNEL_NAME=2014]="ERR_INVALID_CHANNEL_NAME",t[t.ERR_INVALID_STRINGUID=2015]="ERR_INVALID_STRINGUID",t[t.ERR_TOO_MANY_USERS=2016]="ERR_TOO_MANY_USERS",t[t.ERR_SET_CLIENT_ROLE_TIMEOUT=2017]="ERR_SET_CLIENT_ROLE_TIMEOUT",t[t.ERR_SET_CLIENT_ROLE_NO_PERMISSION=2018]="ERR_SET_CLIENT_ROLE_NO_PERMISSION",t[t.ERR_SET_CLIENT_ROLE_ALREADY_IN_USE=2019]="ERR_SET_CLIENT_ROLE_ALREADY_IN_USE",t[t.ERR_PUBLISH_REQUEST_INVALID=2020]="ERR_PUBLISH_REQUEST_INVALID",t[t.ERR_SUBSCRIBE_REQUEST_INVALID=2021]="ERR_SUBSCRIBE_REQUEST_INVALID",t[t.ERR_NOT_SUPPORTED_MESSAGE=2022]="ERR_NOT_SUPPORTED_MESSAGE",t[t.ERR_ILLEAGAL_PLUGIN=2023]="ERR_ILLEAGAL_PLUGIN",t[t.ERR_REJOIN_TOKEN_INVALID=2024]="ERR_REJOIN_TOKEN_INVALID",t[t.ERR_REJOIN_USER_NOT_JOINED=2025]="ERR_REJOIN_USER_NOT_JOINED",t[t.ERR_INVALID_OPTIONAL_INFO=2027]="ERR_INVALID_OPTIONAL_INFO",t[t.ILLEGAL_AES_PASSWORD=2028]="ILLEGAL_AES_PASSWORD",t[t.ILLEGAL_CLIENT_ROLE_LEVEL=2029]="ILLEGAL_CLIENT_ROLE_LEVEL",t[t.ERR_TOO_MANY_BROADCASTERS=2031]="ERR_TOO_MANY_BROADCASTERS",t[t.ERR_TOO_MANY_SUBSCRIBERS=2032]="ERR_TOO_MANY_SUBSCRIBERS",t[t.ERR_LICENSE_MISSING=32769]="ERR_LICENSE_MISSING",t[t.ERR_LICENSE_EXPIRED=32771]="ERR_LICENSE_EXPIRED",t[t.ERR_LICENSE_MINUTES_EXCEEDED=32773]="ERR_LICENSE_MINUTES_EXCEEDED",t[t.ERR_LICENSE_PERIOD_INVALID=32774]="ERR_LICENSE_PERIOD_INVALID",t[t.ERR_LICENSE_MULTIPLE_SDK_SERVICE=32778]="ERR_LICENSE_MULTIPLE_SDK_SERVICE",t[t.ERR_LICENSE_ILLEGAL=32783]="ERR_LICENSE_ILLEGAL",t[t.ERR_TEST_RECOVER=9e3]="ERR_TEST_RECOVER",t[t.ERR_TEST_TRYNEXT=9001]="ERR_TEST_TRYNEXT",t[t.ERR_TEST_RETRY=9002]="ERR_TEST_RETRY",t}({}),Ci=function(t){return t.CONNECTING="connecting",t.CONNECTED="connected",t.RECONNECTING="reconnecting",t.CLOSED="closed",t}({}),er=function(t){return t.WS_CONNECTED="ws_connected",t.WS_RECONNECTING="ws_reconnecting",t.WS_CLOSED="ws_closed",t.WS_RECONNECT_CREATE_CONNECTION="ws_reconnect_create_connection",t.ON_BINARY_DATA="on_binary_data",t.REQUEST_RECOVER="request_recover",t.REQUEST_JOIN_INFO="request_join_info",t.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE="request_pre_join_response",t.REQUEST_REJOIN_INFO="req_rejoin_info",t.IS_P2P_DISCONNECTED="is_p2p_dis",t.DISCONNECT_P2P="dis_p2p",t.ABORT_P2P_EXECUTION="abort_p2p_execution",t.NEED_RENEW_SESSION="need-sid",t.REPORT_JOIN_GATEWAY="report_join_gateway",t.REQUEST_TIMEOUT="request_timeout",t.REQUEST_SUCCESS="request_success",t.JOIN_RESPONSE="join_response",t.PRE_CONNECT_PC="pre_connect_pc",t.DATACHANNEL_PRECONNECT="datachannel_preconnect",t.DATACHANNEL_CONNECTING="datachannel_connecting",t.DATACHANNEL_FAILBACK="datachannel_failback",t.P2P_CONNECTION="p2p_connection",t.P2P_REMOTE_CANDIDATE_UPDATE="p2p_remote_candidate_update",t.P2P_SUBSCRIBE="p2p_subscribe",t.P2P_UNSUBSCRIBE="p2p_unsubscribe",t.P2P_EXCHANGE_SDP="p2p_exchange_sdp",t.P2P_ON_ADD_VIDEO_STREAM="p2p_on_add_video_stream",t.P2P_ON_ADD_AUDIO_STREAM="p2p_on_add_audio_stream",t.RECOVER_NOTIFICATION="recover_notification",t.VOS_FALLBACK="vos_fallback",t.VOS_FALLBACK_PROMISE="vos_fallback_promise",t}({}),ur=function(t){return t.PING="ping",t.PING_BACK="ping_back",t.JOIN="join_v3",t.REJOIN="rejoin_v3",t.LEAVE="leave",t.SET_CLIENT_ROLE="set_client_role",t.PUBLISH="publish",t.PUBLISH_DATASTREAM="publish_datastream",t.UNPUBLISH="unpublish",t.UNPUBLISH_DATASTREAM="unpublish_datastream",t.SUBSCRIBE="subscribe",t.PRE_SUBSCRIBE="pre_subscribe",t.SUBSCRIBE_DATASTREAM="subscribe_datastream",t.SUBSCRIBE_STREAMS="subscribe_streams",t.UNSUBSCRIBE="unsubscribe",t.UNSUBSCRIBE_DATASTREAM="unsubscribe_datastream",t.UNSUBSCRIBE_STREAMS="unsubscribe_streams",t.SUBSCRIBE_CHANGE="subscribe_change",t.TRAFFIC_STATS="traffic_stats",t.RENEW_TOKEN="renew_token",t.SET_DUAL_STREAM_MODE="set_dual_stream_mode",t.SWITCH_VIDEO_STREAM="switch_video_stream",t.DEFAULT_VIDEO_STREAM="default_video_stream",t.SET_FALLBACK_OPTION="set_fallback_option",t.CONFIGURE="configure",t.GATEWAY_INFO="gateway_info",t.CONTROL="control",t.SEND_METADATA="send_metadata",t.DATA_STREAM="data_stream",t.PICK_SVC_LAYER="pick_svc_layer",t.RESTART_ICE="restart_ice",t.CONNECT_PC="connect_pc",t.SET_VIDEO_PROFILE="set_video_profile",t.SET_PARAMETER="set_parameter",t.SET_RTM2_FLAG="set_rtm2_flag",t.DOWNGRADE_CODEC="downgrade_codec",t}({}),Mu=function(t){return t.WRTC_STATS="wrtc_stats",t.WS_INFLATE_DATA_LENGTH="ws_inflate_data_length",t.DENOISER_STATS="denoiser_stats",t.EXTENSION_USAGE_STATS="extension_usage_stats",t}({}),Ur=function(t){return t.ON_USER_ONLINE="on_user_online",t.ON_USER_OFFLINE="on_user_offline",t.ON_STREAM_FALLBACK_UPDATE="on_stream_fallback_update",t.ON_PUBLISH_STREAM="on_publish_stream",t.ON_UPLINK_STATS="on_uplink_stats",t.ON_P2P_LOST="on_p2p_lost",t.ON_REMOVE_STREAM="on_remove_stream",t.ON_ADD_AUDIO_STREAM="on_add_audio_stream",t.ON_ADD_VIDEO_STREAM="on_add_video_stream",t.ON_TOKEN_PRIVILEGE_WILL_EXPIRE="on_token_privilege_will_expire",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="on_token_privilege_did_expire",t.ON_USER_BANNED="on_user_banned",t.ON_USER_LICENSE_BANNED="on_user_license_banned",t.ON_NOTIFICATION="on_notification",t.ON_CRYPT_ERROR="on_crypt_error",t.MUTE_AUDIO="mute_audio",t.MUTE_VIDEO="mute_video",t.UNMUTE_AUDIO="unmute_audio",t.UNMUTE_VIDEO="unmute_video",t.ON_P2P_OK="on_p2p_ok",t.RECEIVE_METADATA="receive_metadata",t.ON_DATA_STREAM="on_data_stream",t.ON_RTP_CAPABILITY_CHANGE="on_rtp_capability_change",t.ON_REMOTE_DATASTREAM_UPDATE="on_remote_datastream_update",t.ON_REMOTE_FULL_DATASTREAM_INFO="on_remote_full_datastream_info",t.ENABLE_LOCAL_VIDEO="enable_local_video",t.DISABLE_LOCAL_VIDEO="disable_local_video",t.ENABLE_LOCAL_AUDIO="enable_local_audio",t.DISABLE_LOCAL_AUDIO="disable_local_audio",t.ON_PUBLISHED_USER_LIST="on_published_user_list",t.ENABLE_MULTI_STREAM="enable_multi_stream",t.ON_USER_LIST="on_user_list",t}({}),EA=function(t){return t.SEND_ONLY="SEND_ONLY",t.RECEIVE_ONLY="RECEIVE_ONLY",t}({}),jr=function(t){return t.CONNECTED="websocket:connected",t.RECONNECTING="websocket:reconnecting",t.WILL_RECONNECT="websocket:will_reconnect",t.CLOSED="websocket:closed",t.FAILED="websocket:failed",t.ON_MESSAGE="websocket:on_message",t.REQUEST_NEW_URLS="websocket:request_new_urls",t.RECONNECT_CREATE_CONNECTION="websocket:reconnect_create_connection",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="websocket:on_token_privilege_did_expire",t.ON_FALLBACK="websocket:on_fallback",t}({});function fl(t){if(typeof t!="string"||!/^[a-zA-Z0-9 \!\#\$\%\&\(\)\+\-\:\;\<\=\.\>\?\@\[\]\^\_\{\}\|\~\,]{1,64}$/.test(t))throw J.error("Invalid Channel Name ".concat(t)),new qe(Ce.INVALID_PARAMS,"The length must be within 64 bytes. The supported characters: a-z,A-Z,0-9,space,!, #, $, %, &, (, ), +, -, :, ;, <, =, ., >, ?, @, [, ], ^, _, {, }, |, ~, ,")}function P2(t){if(s=t,!(typeof s=="number"&&Math.floor(s)===s&&0<=s&&s<=4294967295||LR(t,1,255)))throw new qe(Ce.INVALID_PARAMS,"[String uid] Length of the string: [1,255]. ASCII characters only. [Number uid] The value range is [0,10000]");var s;typeof t=="string"&&J.warn("You input a string as the user ID, to ensure better end-user experience, Agora highly suggests not using a string as the user ID.")}let ku=function(t){return t.TRANSCODE="mix_streaming",t.RAW="raw_streaming",t}({});const s7={alpha:1,height:640,width:360,x:0,y:0,zOrder:0,audioChannel:0},U2={x:0,y:0,width:160,height:160,zOrder:255,alpha:1};function kg(t,s){Ra(t.url,"".concat(s,".url"),1,1e3,!1),Bo(t.x)||Vn(t.x,"".concat(s,".x"),0,1e4),Bo(t.y)||Vn(t.y,"".concat(s,".y"),0,1e4),Bo(t.width)||Vn(t.width,"".concat(s,".width"),0,1e4),Bo(t.height)||Vn(t.height,"".concat(s,".height"),0,1e4),Bo(t.zOrder)||Vn(t.zOrder,"".concat(s,".zOrder"),0,255),Bo(t.alpha)||Vn(t.alpha,"".concat(s,".alpha"),0,1,!1)}const fN={audioBitrate:48,audioChannels:1,audioSampleRate:48e3,backgroundColor:0,height:360,lowLatency:!1,videoBitrate:400,videoCodecProfile:100,videoCodecType:1,videoFrameRate:15,videoGop:30,width:640,images:[],userConfigs:[],userConfigExtraInfo:""};let Pu=function(t){return t.WARNING="@live_uap-warning",t.ERROR="@line_uap-error",t.PUBLISH_STREAM_STATUS="@live_uap-publish-status",t.WORKER_STATUS="@live_uap-worker-status",t.REQUEST_NEW_ADDRESS="@live_uap-request-address",t}({}),xy=function(t){return t.REQUEST_WORKER_MANAGER_LIST="@live_req_worker_manager",t}({}),ds=function(t){return t[t.LIVE_STREAM_RESPONSE_SUCCEED=200]="LIVE_STREAM_RESPONSE_SUCCEED",t[t.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM=454]="LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM",t[t.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR=450]="LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR",t[t.LIVE_STREAM_RESPONSE_BAD_STREAM=451]="LIVE_STREAM_RESPONSE_BAD_STREAM",t[t.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR=400]="LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR",t[t.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST=404]="LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST",t[t.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED=456]="LIVE_STREAM_RESPONSE_NOT_AUTHORIZED",t[t.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE=457]="LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE",t[t.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN=429]="LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN",t[t.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH=452]="LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH",t[t.LIVE_STREAM_RESPONSE_NOT_SUPPORTED=453]="LIVE_STREAM_RESPONSE_NOT_SUPPORTED",t[t.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM=455]="LIVE_STREAM_RESPONSE_MAX_STREAM_NUM",t[t.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR=500]="LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR",t[t.LIVE_STREAM_RESPONSE_WORKER_LOST=501]="LIVE_STREAM_RESPONSE_WORKER_LOST",t[t.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT=502]="LIVE_STREAM_RESPONSE_RESOURCE_LIMIT",t[t.LIVE_STREAM_RESPONSE_WORKER_QUIT=503]="LIVE_STREAM_RESPONSE_WORKER_QUIT",t[t.ERROR_FAIL_SEND_MESSAGE=504]="ERROR_FAIL_SEND_MESSAGE",t[t.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE=30]="PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE",t[t.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT=31]="PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT",t[t.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH=32]="PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH",t[t.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN=33]="PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN",t}({});function Fy(t){if(!t.channelName)throw new qe(Ce.INVALID_PARAMS,"invalid channelName in info");if(typeof t.uid!="number")throw new qe(Ce.INVALID_PARAMS,"invalid uid in info, uid must be a number");return t.token&&Ra(t.token,"info.token",1,2047),P2(t.uid),fl(t.channelName),!0}let OA=function(t){return t[t.SetSdkProfile=0]="SetSdkProfile",t[t.SetSourceChannel=1]="SetSourceChannel",t[t.SetSourceUserId=2]="SetSourceUserId",t[t.SetDestChannel=3]="SetDestChannel",t[t.StartPacketTransfer=4]="StartPacketTransfer",t[t.StopPacketTransfer=5]="StopPacketTransfer",t[t.UpdateDestChannel=6]="UpdateDestChannel",t[t.Reconnect=7]="Reconnect",t[t.SetVideoProfile=8]="SetVideoProfile",t}({}),Kd=function(t){return t.NETWORK_DISCONNECTED="NETWORK_DISCONNECTED",t.NETWORK_CONNECTED="NETWORK_CONNECTED",t.PACKET_JOINED_SRC_CHANNEL="PACKET_JOINED_SRC_CHANNEL",t.PACKET_JOINED_DEST_CHANNEL="PACKET_JOINED_DEST_CHANNEL",t.PACKET_SENT_TO_DEST_CHANNEL="PACKET_SENT_TO_DEST_CHANNEL",t.PACKET_RECEIVED_VIDEO_FROM_SRC="PACKET_RECEIVED_VIDEO_FROM_SRC",t.PACKET_RECEIVED_AUDIO_FROM_SRC="PACKET_RECEIVED_AUDIO_FROM_SRC",t.PACKET_UPDATE_DEST_CHANNEL="PACKET_UPDATE_DEST_CHANNEL",t.PACKET_UPDATE_DEST_CHANNEL_REFUSED="PACKET_UPDATE_DEST_CHANNEL_REFUSED",t.PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE="PACKET_UPDATE_DEST_CHANNEL_NOT_CHANGE",t}({}),e1=function(t){return t.RELAY_STATE_IDLE="RELAY_STATE_IDLE",t.RELAY_STATE_CONNECTING="RELAY_STATE_CONNECTING",t.RELAY_STATE_RUNNING="RELAY_STATE_RUNNING",t.RELAY_STATE_FAILURE="RELAY_STATE_FAILURE",t}({}),t1=function(t){return t.RELAY_OK="RELAY_OK",t.SERVER_CONNECTION_LOST="SERVER_CONNECTION_LOST",t.SRC_TOKEN_EXPIRED="SRC_TOKEN_EXPIRED",t.DEST_TOKEN_EXPIRED="DEST_TOKEN_EXPIRED",t}({}),En=function(t){return t.High="high",t.Low="low",t.Audio="audio",t.Screen="screen",t.ScreenLow="screen_low",t}({}),No=function(t){return t.DISCONNECT="disconnect",t.CONNECTION_STATE_CHANGE="connection-state-change",t.NETWORK_QUALITY="network-quality",t.STREAM_TYPE_CHANGE="stream-type-change",t.IS_P2P_DISCONNECTED="is-p2p-dis",t.DISCONNECT_P2P="dis-p2p",t.REQUEST_NEW_GATEWAY_LIST="req-gate-url",t.NEED_RENEW_SESSION="need-sid",t.REQUEST_P2P_CONNECTION_PARAMS="request-p2p-connection-params",t.JOIN_RESPONSE="join-response",t.RESET_CONNECTION_EVENTS="reset-connection-events",t.PRE_CONNECT_PC="pre-connect_pc",t.UPDATE_GATEWAY_CONFIG="update-gateway-config",t.VOS_FALLBACK="vos-fallback",t.VOS_FALLBACK_PROMISE="vos-fallback-promise",t.RESET_SIGNAL="reset-signal",t.DATACHANNEL_FAILBACK="datachannel-failback",t}({}),_h=function(t){return t.P2P_DISCONNECTED="P2P_DISCONNECTED",t.A_ROUND_WS_FAILED="A_ROUND_WS_FAILED",t.TIMEOUT="TIMEOUT",t.UNKNOWN_REASON="UNKNOWN_REASON",t}({}),jo=function(t){return t[t.Nothing=0]="Nothing",t[t.Audio=1]="Audio",t[t.LowVideo=2]="LowVideo",t[t.Video=4]="Video",t[t.Data=8]="Data",t[t.DataStream0=256]="DataStream0",t[t.DataStream1=512]="DataStream1",t[t.DataStream2=1024]="DataStream2",t[t.DataStream3=2048]="DataStream3",t[t.DataStream4=4096]="DataStream4",t[t.DataStream5=8192]="DataStream5",t[t.DataStream6=16384]="DataStream6",t[t.DataStream7=32768]="DataStream7",t}({}),gi=function(t){return t.CHINA="CHINA",t.ASIA="ASIA",t.NORTH_AMERICA="NORTH_AMERICA",t.EUROPE="EUROPE",t.JAPAN="JAPAN",t.INDIA="INDIA",t.KOREA="KOREA",t.HKMC="HKMC",t.US="US",t.OCEANIA="OCEANIA",t.SOUTH_AMERICA="SOUTH_AMERICA",t.AFRICA="AFRICA",t.OVERSEA="OVERSEA",t.GLOBAL="GLOBAL",t.EXTENSIONS="EXTENSIONS",t}({});const Gy=[gi.AFRICA,gi.ASIA,gi.CHINA,gi.EUROPE,gi.GLOBAL,gi.INDIA,gi.JAPAN,gi.NORTH_AMERICA,gi.OCEANIA,gi.OVERSEA,gi.SOUTH_AMERICA];let Pa=function(t){return t.CHINA="CN",t.ASIA="AS",t.NORTH_AMERICA="NA",t.EUROPE="EU",t.JAPAN="JP",t.INDIA="IN",t.KOREA="KR",t.HKMC="HK",t.US="US",t.OCEANIA="OC",t.SOUTH_AMERICA="SA",t.AFRICA="AF",t.OVERSEA="OVERSEA",t.GLOBAL="GLOBAL",t.EXTENSIONS="GLOBAL",t}({});const A_={CHINA:{},ASIA:{CODE:Pa.ASIA,WEBCS_DOMAIN:["ap-web-1-asia.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-asia.agora.io"],PROXY_CS:["proxy-ap-web-asia.agora.io"],CDS_AP:["cds-ap-web-asia.agora.io","cds-ap-web-asia2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-asia.agora.io","sua-ap-web-asia2.agora.io"],UAP_AP:["uap-ap-web-asia.agora.io","uap-ap-web-asia2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-asia.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-asia.agora.io"],LOG_UPLOAD_SERVER:["logservice-asia.agora.io"],PROXY_SERVER_TYPE3:["southeast-asia.webrtc-cloud-proxy.sd-rtn.com"]},NORTH_AMERICA:{CODE:Pa.NORTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-north-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-north-america.agora.io"],PROXY_CS:["proxy-ap-web-america.agora.io"],CDS_AP:["cds-ap-web-america.agora.io","cds-ap-web-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-america.agora.io","sua-ap-web-america2.agora.io"],UAP_AP:["uap-ap-web-america.agora.io","uap-ap-web-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-north-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-north-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-north-america.agora.io"],PROXY_SERVER_TYPE3:["east-usa.webrtc-cloud-proxy.sd-rtn.com"]},EUROPE:{CODE:Pa.EUROPE,WEBCS_DOMAIN:["ap-web-1-europe.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-europe.agora.io"],PROXY_CS:["proxy-ap-web-europe.agora.io"],CDS_AP:["cds-ap-web-europe.agora.io","cds-ap-web-europe2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-europe.agora.io","sua-ap-web-europe.agora.io"],UAP_AP:["uap-ap-web-europe.agora.io","uap-ap-web-europe2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-europe.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-europe.agora.io"],LOG_UPLOAD_SERVER:["logservice-europe.agora.io"],PROXY_SERVER_TYPE3:["europe.webrtc-cloud-proxy.sd-rtn.com"]},JAPAN:{CODE:Pa.JAPAN,WEBCS_DOMAIN:["ap-web-1-japan.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-japan.agora.io"],PROXY_CS:["proxy-ap-web-japan.agora.io"],CDS_AP:["cds-ap-web-japan.agora.io","cds-ap-web-japan2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-japan.agora.io","sua-ap-web-japan2.agora.io"],UAP_AP:["uap-ap-web-japan.agora.io","uap-ap-web-japan2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-japan.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-japan.agora.io"],LOG_UPLOAD_SERVER:["logservice-japan.agora.io"],PROXY_SERVER_TYPE3:["japan.webrtc-cloud-proxy.sd-rtn.com"]},INDIA:{CODE:Pa.INDIA,WEBCS_DOMAIN:["ap-web-1-india.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-india.agora.io"],PROXY_CS:["proxy-ap-web-india.agora.io"],CDS_AP:["cds-ap-web-india.agora.io","cds-ap-web-india2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-india.agora.io","sua-ap-web-india2.agora.io"],UAP_AP:["uap-ap-web-india.agora.io","uap-ap-web-india2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-india.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-india.agora.io"],LOG_UPLOAD_SERVER:["logservice-india.agora.io"],PROXY_SERVER_TYPE3:["india.webrtc-cloud-proxy.sd-rtn.com"]},KOREA:{CODE:Pa.KOREA,WEBCS_DOMAIN:["ap-web-1-korea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-korea.agora.io"],PROXY_CS:["proxy-ap-web-korea.agora.io"],CDS_AP:["cds-ap-web-korea.agora.io","cds-ap-web-korea2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-korea.agora.io","sua-ap-web-korea2.agora.io"],UAP_AP:["uap-ap-web-korea.agora.io","uap-ap-web-korea2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-korea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-korea.agora.io"],LOG_UPLOAD_SERVER:["logservice-korea.agora.io"],PROXY_SERVER_TYPE3:["korea.webrtc-cloud-proxy.sd-rtn.com"]},HKMC:{CODE:Pa.HKMC,WEBCS_DOMAIN:["ap-web-1-hkmc.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-hkmc.agora.io"],PROXY_CS:["proxy-ap-web-hkmc.agora.io"],CDS_AP:["cds-ap-web-hkmc.agora.io","cds-ap-web-hkmc2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-hkmc.agora.io","sua-ap-web-hkmc2.agora.io"],UAP_AP:["uap-ap-web-hkmc.agora.io","uap-ap-web-hkmc2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-hkmc.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-hkmc.agora.io"],LOG_UPLOAD_SERVER:["logservice-hkmc.agora.io"],PROXY_SERVER_TYPE3:["hkmc.webrtc-cloud-proxy.sd-rtn.com"]},US:{CODE:Pa.US,WEBCS_DOMAIN:["ap-web-1-us.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-us.agora.io"],PROXY_CS:["proxy-ap-web-us.agora.io"],CDS_AP:["cds-ap-web-us.agora.io","cds-ap-web-us2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-us.agora.io","sua-ap-web-us2.agora.io"],UAP_AP:["uap-ap-web-us.agora.io","uap-ap-web-us2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-us.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-us.agora.io"],LOG_UPLOAD_SERVER:["logservice-us.agora.io"],PROXY_SERVER_TYPE3:["us.webrtc-cloud-proxy.sd-rtn.com"]},OVERSEA:{CODE:Pa.OVERSEA,WEBCS_DOMAIN:["ap-web-1-oversea.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oversea.agora.io"],PROXY_CS:["proxy-ap-web-oversea.agora.io"],CDS_AP:["cds-ap-web-oversea.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oversea.agora.io"],UAP_AP:["uap-ap-web-oversea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oversea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oversea.agora.io"],LOG_UPLOAD_SERVER:["logservice-oversea.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.agora.io"]},GLOBAL:{CODE:Pa.GLOBAL,WEBCS_DOMAIN:["webrtc2-ap-web-1.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-ap-web-3.agora.io"],PROXY_CS:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],CDS_AP:["cds-ap-web-1.agora.io","cds-ap-web-3.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-1.agora.io","sua-ap-web-3.agora.io"],UAP_AP:["uap-ap-web-1.agora.io","uap-ap-web-3.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2.agora.io"],LOG_UPLOAD_SERVER:["logservice.agora.io"],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy.sd-rtn.com"]},OCEANIA:{CODE:Pa.OCEANIA,WEBCS_DOMAIN:["ap-web-1-oceania.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-oceania.agora.io"],PROXY_CS:["proxy-ap-web-oceania.agora.io"],CDS_AP:["cds-ap-web-oceania.agora.io","cds-ap-web-oceania2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-oceania.agora.io","sua-ap-web-oceania2.agora.io"],UAP_AP:["uap-ap-web-oceania.agora.io","uap-ap-web-oceania2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oceania.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oceania.agora.io"],LOG_UPLOAD_SERVER:["logservice-oceania.agora.io"],PROXY_SERVER_TYPE3:["oceania.webrtc-cloud-proxy.sd-rtn.com"]},SOUTH_AMERICA:{CODE:Pa.SOUTH_AMERICA,WEBCS_DOMAIN:["ap-web-1-south-america.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-south-america.agora.io"],PROXY_CS:["proxy-ap-web-south-america.agora.io"],CDS_AP:["cds-ap-web-south-america.agora.io","cds-ap-web-south-america2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-south-america.agora.io","sua-ap-web-south-america2.agora.io"],UAP_AP:["uap-ap-web-south-america.agora.io","uap-ap-web-south-america2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-south-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-south-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-america.agora.io"],PROXY_SERVER_TYPE3:["south-america.webrtc-cloud-proxy.sd-rtn.com"]},AFRICA:{CODE:Pa.AFRICA,WEBCS_DOMAIN:["ap-web-1-africa.agora.io"],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-africa.agora.io"],PROXY_CS:["proxy-ap-web-africa.agora.io"],CDS_AP:["cds-ap-web-africa.agora.io","cds-ap-web-africa2.agora.io"],ACCOUNT_REGISTER:["sua-ap-web-africa.agora.io","sua-ap-web-africa2.agora.io"],UAP_AP:["uap-ap-web-africa.agora.io","uap-ap-web-africa2.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-africa.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-africa.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-africa.agora.io"],PROXY_SERVER_TYPE3:["africa.webrtc-cloud-proxy.sd-rtn.com"]},EXTENSIONS:{}};d4&&(A_.CHINA={CODE:Pa.CHINA,WEBCS_DOMAIN:["webrtc2-2.ap.sd-rtn.com"],WEBCS_DOMAIN_BACKUP_LIST:["webrtc2-4.ap.sd-rtn.com"],PROXY_CS:["proxy-web.ap.sd-rtn.com"],CDS_AP:["cds-web-2.ap.sd-rtn.com","cds-web-4.ap.sd-rtn.com"],ACCOUNT_REGISTER:["sua-web-2.ap.sd-rtn.com","sua-web-4.ap.sd-rtn.com"],UAP_AP:["uap-web-2.ap.sd-rtn.com","uap-web-4.ap.sd-rtn.com"],EVENT_REPORT_DOMAIN:["web-3.statscollector.sd-rtn.com"],EVENT_REPORT_BACKUP_DOMAIN:["web-4.statscollector.sd-rtn.com"],LOG_UPLOAD_SERVER:["logservice-china.agora.io"],PROXY_SERVER_TYPE3:["east-cn.webrtc-cloud-proxy.sd-rtn.com"]});let xc=function(t){return t.UPDATE_BITRATE_LIMIT="update_bitrate_limit",t.UPDATE_CLIENT_ROLE_OPTIONS="update_client_role_options",t.UPDATE_REMOTE_VIDEO_STREAM_TYPE="update_remote_video_stream_type",t.FALLBACK_TO_HLS="fallback_to_hls",t.UPDATE_VOS_CONFIGURE="update_vos_configure",t}({});function _N(t){return!!t&&!(!t.uplink||!t.id)&&t.uplink.max_bitrate!==void 0&&t.uplink.min_bitrate!==void 0}class mN extends Cn{constructor(s,c){super(),ae(this,"onICEConnectionStateChange",void 0),ae(this,"onConnectionStateChange",void 0),ae(this,"onDTLSTransportStateChange",void 0),ae(this,"onDTLSTransportError",void 0),ae(this,"onICETransportStateChange",void 0),ae(this,"onFirstAudioReceived",void 0),ae(this,"onFirstVideoReceived",void 0),ae(this,"onFirstAudioDecoded",void 0),ae(this,"onFirstVideoDecoded",void 0),ae(this,"onFirstVideoRender",void 0),ae(this,"onFirstVideoBufferReady",void 0),ae(this,"onFirstVideoDecodedTimeout",void 0),ae(this,"onSelectedLocalCandidateChanged",void 0),ae(this,"onSelectedRemoteCandidateChanged",void 0),ae(this,"onICECandidateError",void 0),ae(this,"getLocalVideoStats",void 0)}}class LA extends mN{constructor(s,c){super(s,c),ae(this,"establishPromise",void 0)}}let rr=function(t){return t.VIDEO="video",t.AUDIO="audio",t}({}),qs=function(t){return t.UDP_RELAY="udp_relay",t.UDP_TCP_RELAY="udp_tcp_relay",t.TCP_RELAY="tcp_relay",t.RELAY="relay",t}({}),MA=function(t){return t[t.FIRST_CONNECTION=0]="FIRST_CONNECTION",t[t.UDP_TCP_RESTART=1]="UDP_TCP_RESTART",t[t.RELAY_RESTART=2]="RELAY_RESTART",t[t.TCP_RESTART=3]="TCP_RESTART",t[t.OLD_FIRST_CONNECTION=10]="OLD_FIRST_CONNECTION",t[t.OLD_RESTART=11]="OLD_RESTART",t[t.DISCONNECTED_OR_FAILED=20]="DISCONNECTED_OR_FAILED",t}({});const td=["disconnected","failed"];let Qt=function(t){return t.LocalVideoTrack="videoTrack",t.LocalAudioTrack="audioTrack",t.LocalVideoLowTrack="videoLowTrack",t}({}),ln=function(t){return t.New="new",t.Connected="connected",t.Reconnecting="reconnecting",t.Disconnected="disconnected",t}({}),Cr=function(t){return t.AudioMetadata="audioMetadata",t.AudioPts="audioPts",t.StateChange="stateChange",t.IceConnectionStateChange="iceConnectionStateChange",t.RequestMuteLocal="requestMuteLocal",t.RequestUnmuteLocal="requestUnmuteLocal",t.RequestRePublish="requestRePublish",t.RequestRePublishDataChannel="requestRePublishDataChannel",t.RequestReSubscribe="requestReSubscribe",t.RequestUploadStats="requestUploadStats",t.RequestUpload="requestUpload",t.MediaReconnectStart="MediaReconnectStart",t.MediaReconnectEnd="MediaReconnectEnd",t.NeedSignalRTT="NeedSignalRTT",t.RequestRestartICE="RequestRestartIce",t.PeerConnectionStateChange="PeerConnectionStateChange",t.RequestReconnect="RequestReconnect",t.RequestReconnectPC="RequestReconnectPC",t.RequestUnpublishForReconnectPC="RequestUnpublishForReconnectPC",t.P2PLost="P2PLost",t.UpdateVideoEncoder="UpdateVideoEncoder",t.ConnectionTypeChange="ConnectionTypeChange",t.RequestLowStreamParameter="RequestLowStreamParameter",t.QueryClientConnectionState="QueryClientConnectionState",t.LocalCandidate="LocalCandidate",t.RequestP2PMuteLocal="requestP2PMuteLocal",t.RequestP2PUnPublish="RequestP2PUnPublish",t.RequestP2PUnmuteRemote="RequestP2PUnmuteRemote",t.RequestP2PMuteRemote="RequestP2PMuteRemote",t.RequestP2PRestartICE="RequestP2PRestartICE",t.FirstVideoPreRender="FirstVideoPreRender",t.FirstVideoBufferReady="FirstVideoBufferReady",t}({}),Oo=function(t){return t.CONNECTING="CONNECTING",t.RECONNECTING="RECONNECTING",t.CONNECTED="CONNECTED",t.CLOSED="CLOSED",t}({}),Fc=function(t){return t[t.CONNECT_AP=0]="CONNECT_AP",t[t.AP_CONNECTED=1]="AP_CONNECTED",t[t.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",t[t.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",t[t.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",t[t.CONNECT_WORKER=5]="CONNECT_WORKER",t[t.WORKER_CONNECTED=6]="WORKER_CONNECTED",t[t.CLOSED=7]="CLOSED",t}({}),fa=function(t){return t.CONNECTION_STATE_CHANGE="connection-state-change",t.STATE_CHANGE="state-change",t.INSPECT_RESULT="inspect-result",t.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",t.REQUEST_NEW_WORKER_URL="request-new-worker-url",t}({}),Hd=function(t){return t.NETWORK_ERROR="NETWORK_ERROR",t.SERVER_ERROR="SERVER_ERROR",t.MULTI_IP="MULTI_IP",t.TIMEOUT="TIMEOUT",t.OFFLINE="OFFLINE",t.LEAVE="LEAVE",t.P2P_FAILED="P2P_FAILED",t.FALLBACK="FALLBACK",t}({}),fs=function(t){return t.CONNECTED="transmitter:connected",t.RECONNECTING="transmitter:reconnecting",t.WILL_RECONNECT="transmitter:will_reconnect",t.CLOSED="transmitter:closed",t.FAILED="transmitter:failed",t.ON_MESSAGE="transmitter:on_message",t.REQUEST_NEW_URLS="transmitter:request_new_urls",t.RECONNECT_CREATE_CONNECTION="transmitter:reconnect_create_connection",t.ON_TOKEN_PRIVILEGE_DID_EXPIRE="transmitter:on_token_privilege_did_expire",t.TO_CONNECT_DATACHANNEL="transmitter:to_connect_datachannel",t.FAILBACK="transmitter:failback",t.PRE_CONNECT_PC="transmitter:pre_connect_pc",t}({}),iA=function(t){return t.CAMERA_CHANGED="camera-changed",t.MICROPHONE_CHANGED="microphone-changed",t.PLAYBACK_DEVICE_CHANGED="playback-device-changed",t.AUDIO_AUTOPLAY_FAILED="audio-autoplay-failed",t.AUTOPLAY_FAILED="autoplay-failed",t.AUDIO_CONTEXT_STATE_CHANGED="audio-context-state-changed",t.SECURITY_POLICY_VIOLATION="security-policy-violation",t}({}),r1=function(t){return t.CONNECTING="CONNECTING",t.RECONNECTING="RECONNECTING",t.CONNECTED="CONNECTED",t.CLOSED="CLOSED",t}({}),rd=function(t){return t.CONNECTION_STATE_CHANGE="connection-state-change",t.STATE_CHANGE="state-change",t.INSPECT_RESULT="inspect-result",t.CLIENT_LOCAL_VIDEO_TRACK="client-local-video-track",t.REQUEST_NEW_WORKER_URL="request-new-worker-url",t}({}),jC=function(t){return t[t.CONNECT_AP=0]="CONNECT_AP",t[t.AP_CONNECTED=1]="AP_CONNECTED",t[t.CONNECT_WORKER_MANAGER=2]="CONNECT_WORKER_MANAGER",t[t.WORKER_MANAGER_CONNECTED=3]="WORKER_MANAGER_CONNECTED",t[t.GET_WORKER_MANAGER_RESPONSE=4]="GET_WORKER_MANAGER_RESPONSE",t[t.CONNECT_WORKER=5]="CONNECT_WORKER",t[t.WORKER_CONNECTED=6]="WORKER_CONNECTED",t[t.CLOSED=7]="CLOSED",t}({}),Go=function(t){return t.CALL="call",t.CANDIDATE="candidate",t.PUBLISH="publish",t.UNPUBLISH="unpublish",t.CONTROL="control",t.RESTART_ICE="restart_ice",t.ACK="ack",t.RESPONSE="response",t.JOIN="join",t.CHECK="check",t}({}),Pg=function(t){return t.ABORT="abort",t}({}),Uu=function(t){return t.MUTE_LOCAL_AUDIO="mute_local_audio",t.MUTE_LOCAL_VIDEO="mute_local_video",t.UNMUTE_LOCAL_AUDIO="unmute_local_audio",t.UNMUTE_LOCAL_VIDEO="unmute_local_video",t}({}),qJ=function(t){return t.P2P_TOKEN_TIMEOUT="p2p_token_timeout",t.P2P_TOKEN_CHANGED="p2p_token_changed",t}({});const a7={[a_.ACCESS_POINT]:{[gA.NO_FLAG_SET]:{desc:"flag is zero",retry:!1},[gA.FLAG_SET_BUT_EMPTY]:{desc:"flag is empty",retry:!1},[gA.INVALID_FALG_SET]:{desc:"invalid flag",retry:!1},[gA.FLAG_SET_BUT_NO_RE]:{desc:"flag set unilbs but no request",retry:!1},[gA.INVALID_SERVICE_ID]:{desc:"invalid service id",retry:!1},[gA.NO_SERVICE_AVAILABLE]:{desc:"no service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_P2P]:{desc:"no unilbs p2p service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_VOICE]:{desc:"no unilbs voice service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_WEBRTC]:{desc:"no unilbs webrtc service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_CDS]:{desc:"no cds service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_CDN]:{desc:"no cdn dispatcher service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_TDS]:{desc:"no tds service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_REPORT]:{desc:"no unilbs report service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_APP_CENTER]:{desc:"no app center service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_ENV0]:{desc:"no unilbs sig env0 service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_VOET]:{desc:"no unilbs voet service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_STRING_UID]:{desc:"no string uid service available",retry:!0},[gA.NO_SERVICE_AVAILABLE_WEBRTC_UNILBS]:{desc:"no webrtc unilbs service available",retry:!0}},[a_.UNILBS]:{[Uc.INVALID_VENDOR_KEY]:{desc:"invalid vendor key, can not find appid",retry:!1},[Uc.INVALID_CHANNEL_NAME]:{desc:"invalid channel name",retry:!1},[Uc.INTERNAL_ERROR]:{desc:"unilbs internal error",retry:!1},[Uc.NO_AUTHORIZED]:{desc:"invalid token, authorized failed",retry:!1},[Uc.DYNAMIC_KEY_TIMEOUT]:{desc:"dynamic key or token timeout",retry:!1},[Uc.NO_ACTIVE_STATUS]:{desc:"no active status",retry:!1},[Uc.DYNAMIC_KEY_EXPIRED]:{desc:"dynamic key expired",retry:!1},[Uc.STATIC_USE_DYNAMIC_KEY]:{desc:"static use dynamic key",retry:!1},[Uc.DYNAMIC_USE_STATIC_KEY]:{desc:"dynamic use static key",retry:!1},[Uc.USER_OVERLOAD]:{desc:"amount of users over load",retry:!1},[Uc.FORBIDDEN_REGION]:{desc:"the request is forbidden in this area",retry:!1},[Uc.CANNOT_MEET_AREA_DEMAND]:{desc:"unable to allocate services in this area",retry:!1},[Uc.REQ_DOWNGRADE_FALLBACK]:{desc:"request downgrade fallback",retry:!1}},[a_.STRING_UID_ALLOCATOR]:{[k2.IIIEGAL_APPID]:{desc:"invalid appid",retry:!1},[k2.IIIEGAL_UID]:{desc:"invalid string uid",retry:!1},[k2.INTERNAL_ERROR]:{desc:"string uid allocator internal error",retry:!0}}};function mh(t){const s=a7[Math.floor(t/1e4)];if(!s)return{desc:"unknown error",retry:!1};const c=s[t%1e4];if(!c){if(Math.floor(t/1e4)===a_.ACCESS_POINT){const u=t%1e4;if(u.toString()[0]==="1")return{desc:t.toString(),retry:!1};if(u.toString()[0]==="2")return{desc:t.toString(),retry:!0}}return{desc:"unknown error",retry:!1}}return c}const A7={[Br.K_TIMESTAMP_EXPIRED]:{desc:"K_TIMESTAMP_EXPIRED",action:"failed"},[Br.K_CHANNEL_PERMISSION_INVALID]:{desc:"K_CHANNEL_PERMISSION_INVALID",action:"failed"},[Br.K_CERTIFICATE_INVALID]:{desc:"K_CERTIFICATE_INVALID",action:"failed"},[Br.K_CHANNEL_NAME_EMPTY]:{desc:"K_CHANNEL_NAME_EMPTY",action:"failed"},[Br.K_CHANNEL_NOT_FOUND]:{desc:"K_CHANNEL_NOT_FOUND",action:"failed"},[Br.K_TICKET_INVALID]:{desc:"K_TICKET_INVALID",action:"failed"},[Br.K_CHANNEL_CONFLICTED]:{desc:"K_CHANNEL_CONFLICTED",action:"failed"},[Br.K_SERVICE_NOT_READY]:{desc:"K_SERVICE_NOT_READY",action:"tryNext"},[Br.K_SERVICE_TOO_HEAVY]:{desc:"K_SERVICE_TOO_HEAVY",action:"tryNext"},[Br.K_UID_BANNED]:{desc:"K_UID_BANNED",action:"failed"},[Br.K_IP_BANNED]:{desc:"K_IP_BANNED",action:"failed"},[Br.DATASTREAM2_NOT_AVAILABLE]:{desc:"DATASTREAM2_NOT_AVAILABLE",action:"quit"},[Br.K_AUTO_REBALANCE]:{desc:"k_AUTO_REBALANCE",action:"recover"},[Br.K_VOS_FALLBACK]:{desc:"K_VOS_FALLBACK",action:"tryNext"},[Br.ERR_INVALID_VENDOR_KEY]:{desc:"ERR_INVALID_VENDOR_KEY",action:"failed"},[Br.ERR_INVALID_CHANNEL_NAME]:{desc:"ERR_INVALID_CHANNEL_NAME",action:"failed"},[Br.WARN_NO_AVAILABLE_CHANNEL]:{desc:"WARN_NO_AVAILABLE_CHANNEL",action:"failed"},[Br.WARN_LOOKUP_CHANNEL_TIMEOUT]:{desc:"WARN_LOOKUP_CHANNEL_TIMEOUT",action:"tryNext"},[Br.WARN_LOOKUP_CHANNEL_REJECTED]:{desc:"WARN_LOOKUP_CHANNEL_REJECTED",action:"failed"},[Br.WARN_OPEN_CHANNEL_TIMEOUT]:{desc:"WARN_OPEN_CHANNEL_TIMEOUT",action:"tryNext"},[Br.WARN_OPEN_CHANNEL_REJECTED]:{desc:"WARN_OPEN_CHANNEL_REJECTED",action:"failed"},[Br.WARN_REQUEST_DEFERRED]:{desc:"WARN_REQUEST_DEFERRED",action:"failed"},[Br.ERR_DYNAMIC_KEY_TIMEOUT]:{desc:"ERR_DYNAMIC_KEY_TIMEOUT",action:"failed"},[Br.ERR_NO_AUTHORIZED]:{desc:"ERR_NO_AUTHORIZED",action:"failed"},[Br.ERR_VOM_SERVICE_UNAVAILABLE]:{desc:"ERR_VOM_SERVICE_UNAVAILABLE",action:"tryNext"},[Br.ERR_NO_CHANNEL_AVAILABLE_CODE]:{desc:"ERR_NO_CHANNEL_AVAILABLE_CODE",action:"failed"},[Br.ERR_MASTER_VOCS_UNAVAILABLE]:{desc:"ERR_MASTER_VOCS_UNAVAILABLE",action:"tryNext"},[Br.ERR_INTERNAL_ERROR]:{desc:"ERR_INTERNAL_ERROR",action:"tryNext"},[Br.ERR_NO_ACTIVE_STATUS]:{desc:"ERR_NO_ACTIVE_STATUS",action:"failed"},[Br.ERR_INVALID_UID]:{desc:"ERR_INVALID_UID",action:"failed"},[Br.ERR_DYNAMIC_KEY_EXPIRED]:{desc:"ERR_DYNAMIC_KEY_EXPIRED",action:"failed"},[Br.ERR_STATIC_USE_DYANMIC_KE]:{desc:"ERR_STATIC_USE_DYANMIC_KE",action:"failed"},[Br.ERR_DYNAMIC_USE_STATIC_KE]:{desc:"ERR_DYNAMIC_USE_STATIC_KE",action:"failed"},[Br.ERR_NO_VOCS_AVAILABLE]:{desc:"ERR_NO_VOCS_AVAILABLE",action:"tryNext"},[Br.ERR_NO_VOS_AVAILABLE]:{desc:"ERR_NO_VOS_AVAILABLE",action:"tryNext"},[Br.ERR_JOIN_CHANNEL_TIMEOUT]:{desc:"ERR_JOIN_CHANNEL_TIMEOUT",action:"tryNext"},[Br.ERR_JOIN_BY_MULTI_IP]:{desc:"ERR_JOIN_BY_MULTI_IP",action:"recover"},[Br.ERR_NOT_JOINED]:{desc:"ERR_NOT_JOINED",action:"failed"},[Br.ERR_REPEAT_JOIN_REQUEST]:{desc:"ERR_REPEAT_JOIN_REQUEST",action:"quit"},[Br.ERR_REPEAT_JOIN_CHANNEL]:{desc:"ERR_REPEAT_JOIN_CHANNEL",action:"quit"},[Br.ERR_INVALID_STRINGUID]:{desc:"ERR_INVALID_STRINGUID",action:"failed"},[Br.ERR_TOO_MANY_USERS]:{desc:"ERR_TOO_MANY_USERS",action:"tryNext"},[Br.ERR_SET_CLIENT_ROLE_TIMEOUT]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[Br.ERR_SET_CLIENT_ROLE_NO_PERMISSION]:{desc:"ERR_SET_CLIENT_ROLE_TIMEOUT",action:"failed"},[Br.ERR_SET_CLIENT_ROLE_ALREADY_IN_USE]:{desc:"ERR_SET_CLIENT_ROLE_ALREADY_IN_USE",action:"success"},[Br.ERR_PUBLISH_REQUEST_INVALID]:{desc:"ERR_PUBLISH_REQUEST_INVALID",action:"failed"},[Br.ERR_SUBSCRIBE_REQUEST_INVALID]:{desc:"ERR_SUBSCRIBE_REQUEST_INVALID",action:"failed"},[Br.ERR_NOT_SUPPORTED_MESSAGE]:{desc:"ERR_NOT_SUPPORTED_MESSAGE",action:"failed"},[Br.ERR_ILLEAGAL_PLUGIN]:{desc:"ERR_ILLEAGAL_PLUGIN",action:"failed"},[Br.ILLEGAL_CLIENT_ROLE_LEVEL]:{desc:"ILLEGAL_CLIENT_ROLE_LEVEL",action:"failed"},[Br.ERR_REJOIN_TOKEN_INVALID]:{desc:"ERR_REJOIN_TOKEN_INVALID",action:"failed"},[Br.ERR_REJOIN_USER_NOT_JOINED]:{desc:"ERR_REJOIN_NOT_JOINED",action:"failed"},[Br.ERR_INVALID_OPTIONAL_INFO]:{desc:"ERR_INVALID_OPTIONAL_INFO",action:"quit"},[Br.ERR_TEST_RECOVER]:{desc:"ERR_TEST_RECOVER",action:"recover"},[Br.ERR_TEST_TRYNEXT]:{desc:"ERR_TEST_TRYNEXT",action:"recover"},[Br.ERR_TEST_RETRY]:{desc:"ERR_TEST_RETRY",action:"recover"},[Br.ILLEGAL_AES_PASSWORD]:{desc:"ERR_TEST_RETRY",action:"failed"},[Br.ERR_TOO_MANY_BROADCASTERS]:{desc:"ERR_TOO_MANY_BROADCASTERS",action:"failed"},[Br.ERR_TOO_MANY_SUBSCRIBERS]:{desc:"ERR_TOO_MANY_SUBSCRIBERS",action:"failed"},[Br.ERR_LICENSE_ILLEGAL]:{desc:"ERR_LICENSE_ILLEGAL",action:"quit"},[Br.ERR_LICENSE_MISSING]:{desc:"ERR_LICENSE_MISSING",action:"quit"},[Br.ERR_LICENSE_EXPIRED]:{desc:"ERR_LICENSE_EXPIRED",action:"quit"},[Br.ERR_LICENSE_MINUTES_EXCEEDED]:{desc:"ERR_LICENSE_MINUTES_EXCEEDED",action:"quit"},[Br.ERR_LICENSE_PERIOD_INVALID]:{desc:"ERR_LICENSE_PERIOD_INVALID",action:"quit"},[Br.ERR_LICENSE_MULTIPLE_SDK_SERVICE]:{desc:"ERR_LICENSE_MULTIPLE_SDK_SERVICE",action:"quit"}};function m1(t){return A7[t]||{desc:"UNKNOWN_ERROR_".concat(t),action:"failed"}}function Vy(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function BN(t){for(var s=1;s{s.onopen=null,s.onclose=null,s.onmessage=null,s.close()}),this.websockets.length=0}clearTimeout(){this.forceCloseTimeout&&clearTimeout(this.forceCloseTimeout),this.try443PortTimeout&&clearTimeout(this.try443PortTimeout),this.forceCloseTimeout=null,this.try443PortTimeout=null}logger(){var s;const c=Date.now()-this.startTime;for(var u=arguments.length,h=new Array(u),_=0;_{var H;return Et(H=s.host).call(H,U)});Q||(this.useDoubleDomain=!1);const T=[];if(this.useDoubleDomain)h.forEach(U=>{T.push(c_(BN(BN({},s),{},{host:s.host.replace(Q,U)}),c))});else{const U=BN({},s);if(c&&Q){const H=h.find($=>$!==Q);H&&(U.host=U.host.replace(Q,H))}T.push(c_(U,c))}try{T.forEach(U=>{const H=new WebSocket(U);H.binaryType="arraybuffer",B.push(H),this.logger("ws is connecting:",H.url)})}catch(U){if(this.logger("ws create failed"),B.forEach(H=>H.close()),B.length=0,this.useDoubleDomain)return this.useDoubleDomain=!1,this.createWebSocket(s,c,u);if(!c&&Number(s.port)!==443)return this.createWebSocket(s,!0,u);throw new qe(Ce.WS_ERR,"init websocket failed! Error: ".concat(U.toString()))}const D=s2();this.store&&this.store.recordJoinChannelService({urls:B.map(U=>U.url),service:"gateway"},this.recordIndex),B.forEach(U=>{U.onopen=()=>{this.logger("onopen: ws ".concat(U.url," open cost ").concat(Date.now()-_,"ms")),this.websockets.forEach(H=>{H!==U&&(H.onopen=null,H.onclose=null,H.onmessage=null,H.close(),this.logger("close backup websocket: ".concat(H.url)))}),this.websockets.length=0,D.resolve(U)},U.onclose=H=>{this.logger("onclose: ws ".concat(U.url," closed cost ").concat(Date.now()-_,"ms state: ").concat(U.readyState));const $=B.every(Z=>Z.readyState===WebSocket.CLOSED||Z.readyState===WebSocket.CLOSING);this.logger("".concat(c?"443":"47xx"," websocket closed, all failed: ").concat($)),$&&(c||this.isTry443PortFailed||this.useProxy)?(this.logger("onclose: all websocket is closed, ".concat(H.reason)),D.reject({code:H.code,reason:_h.A_ROUND_WS_FAILED})):!c&&$&&!this.isNormalPortFailed&&this.try443PortTimeout&&(this.logger("all 47xx websocket is closed, try 443 port"),this.clearTimeout(),P()),c?this.isTry443PortFailed=$:this.isNormalPortFailed=$},U.onmessage=H=>this.logger("".concat(U.url," onmessage: ").concat(H.data))}),this.websockets.push(...B);const O=()=>{this.websockets.forEach(U=>U.readyState!==WebSocket.OPEN&&U.close())},P=()=>{if(D.isResolved)return O();Qi().os===ns.MAC_OS&&Ln()&&O(),this.createWebSocket(s,!0,!0).then(U=>{D.resolve(U)}).catch(U=>{this.isNormalPortFailed&&D.reject(U),this.logger("try 443 port to create ws failed")}),this.forceCloseTimeout=window.setTimeout(()=>{this.logger("5s timeout close un-opens, isWebsocket created: ",D.isResolved),this.forceCloseTimeout=null,O()},this.forceCloseWSDuration)};return u||(()=>{if(c||this.useProxy)return this.logger("add 5s timeout at ".concat(c?"try-443":"proxy"," condition")),this.forceCloseTimeout=window.setTimeout(()=>{this.forceCloseTimeout=null,O()},this.forceCloseWSDuration);this.try443PortTimeout=window.setTimeout(()=>{this.logger("2s timeout, isWebsocket created: ",D.isResolved),this.try443PortTimeout=null,P()},this.try443PortDuration)})(),D.promise}chooseBestWebsocket(s,c,u,h){return this.useDoubleDomain=!!c,typeof s=="string"&&(s=function(_){let B,Q,T;var D=ir(_.match(c7)||[],4);if(B=D[1],Q=D[2],T=D[3],!B){var O=ir(_.match(l7)||[],3);Q=O[1],T=O[2]}if(!Q||!T){var P=ir(_.match(d7)||[],3);Q=P[1],T=P[2]}return Q&&T||(Q=ir(_.match(SN)||[],2)[1]),Q||J.warning("un-destructible url: ",_),{proxy:B,host:Q,port:T||"443"}}(s)),this.recordIndex=h,this.useProxy=!!s.proxy,u&&this.useProxy&&(J.warn("cannot use 443 only when use proxy"),u=!1),this.createWebSocket(s,!!u,!1).finally(()=>this.clearTimeout())}}function u7(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}class x2 extends Cn{get url(){return this.websocket&&this.websocket.url||this._websocketUrl}get reconnectMode(){return this._reconnectMode}set reconnectMode(s){var c;Et(c=["tryNext","recover"]).call(c,s)&&this.resetReconnectCount(s),this._reconnectMode=s}get state(){return this._state}set state(s){s!==this._state&&(this._state=s,this._state==="reconnecting"?this.emit(jr.RECONNECTING,this.reconnectReason):this._state==="connected"?this.emit(jr.CONNECTED):this._state==="closed"?this.emit(jr.CLOSED):this._state==="failed"&&this.emit(jr.FAILED))}resetReconnectCount(s){J.debug("websocket reset reconnect count, reason: "+s),this.reconnectCount=0}constructor(s,c){let u=arguments.length>2&&arguments[2]!==void 0&&arguments[2],h=arguments.length>3&&arguments[3]!==void 0&&arguments[3],_=arguments.length>4&&arguments[4]!==void 0&&arguments[4],B=arguments.length>5?arguments[5]:void 0;super(),ae(this,"_websocketUrl",null),ae(this,"connectionID",0),ae(this,"currentURLIndex",0),ae(this,"urls",[]),ae(this,"_reconnectMode","tryNext"),ae(this,"reconnectReason",void 0),ae(this,"_initMutex",void 0),ae(this,"name",void 0),ae(this,"_state","closed"),ae(this,"reconnectInterrupter",void 0),ae(this,"websocket",void 0),ae(this,"retryConfig",void 0),ae(this,"reconnectCount",0),ae(this,"forceCloseTimeout",5e3),ae(this,"onlineReconnectListener",void 0),ae(this,"useCompress",void 0),ae(this,"tryDoubleDomain",!1),ae(this,"use443PortOnly",!1),ae(this,"wsInflateLength",0),ae(this,"wsDeflateLength",0),ae(this,"closeEstablishingWs",()=>{}),ae(this,"store",void 0),ae(this,"joinGatewayRecordIndex",void 0),this.store=B,this.name=s,this.retryConfig=function(P){for(var U=1;U{P!==U&&(this.resetReconnectCount("network state change: ".concat(U," -> ").concat(P)),P===tA.ONLINE?(this.retryConfig.timeout=D,this.retryConfig.timeoutFactor=O):(this.retryConfig.timeout=Q,this.retryConfig.timeoutFactor=T))})}getConnection(){return this.websocket||void 0}async init(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const u=await this._initMutex.lock();this._reconnectMode="tryNext",this.forceCloseTimeout=c,this.urls=s,this.state="connecting";try{var h;const _=s2(),B=this.urls[this.currentURLIndex];(h=this.store)===null||h===void 0||h.beforeConnect(),(function(Q){return!(Gf()||de("USE_NEW_TOKEN")||!de("ENABLE_PREALLOC_PC")&&(Q==null||!Q.autoSubscribe||de("FORCE_DISABLE_AUTO_SUB")))}(this.store)||de("ENABLE_JOIN_V4"))&&this.emit(fs.PRE_CONNECT_PC),this.createWebSocketConnection(B).then(_.resolve).catch(_.reject),this.once(jr.CLOSED,()=>{_.reject(new tt(Ce.WS_DISCONNECT))}),this.once(jr.CONNECTED,_.resolve),await _.promise}catch{}finally{u()}}close(s,c){if(this.currentURLIndex=0,this.resetReconnectCount("close"),this.reconnectInterrupter&&this.reconnectInterrupter(),this.websocket){this.websocket.onclose=null,this.websocket.onopen=null,this.websocket.onmessage=null;const u=this.websocket;c?setTimeout(()=>u.close(),500):u.close(),this.websocket=void 0,this._websocketUrl=null}this.state=s?"failed":"closed",this.closeEstablishingWs&&this.closeEstablishingWs()}reconnect(s,c){if(!this.websocket)return void J.warning("[".concat(this.name,"] can not reconnect, no websocket"));s!==void 0&&(this.reconnectMode=s),J.debug("[".concat(this.name,"] reconnect is triggered initiative")),typeof this.joinGatewayRecordIndex=="number"&&this.store&&this.store.recordJoinChannelService({status:"error",errors:[new Error(c)]},this.joinGatewayRecordIndex);const u=this.websocket.onclose;this.websocket.onclose=null,this.websocket.close(),u&&u.bind(this.websocket)({code:9999,reason:c})}sendMessage(s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this.websocket||this.websocket.readyState!==WebSocket.OPEN)throw new tt(Ce.WS_ABORT,"websocket is not ready");try{c||(s=JSON.stringify(s)),this.websocket.send(s)}catch(u){throw new tt(Ce.WS_ERR,"send websocket message error"+u.toString())}}setWsInflateData(s){this.wsDeflateLength=this.wsDeflateLength+s.originLength,this.wsInflateLength=this.wsInflateLength+s.compressedLength}getWsInflateData(){const s=this.wsInflateLength,c=this.wsDeflateLength;return this.clearWsInflateData(),{wsInflateLength:s,wsDeflateLength:c}}clearWsInflateData(){this.wsInflateLength=0,this.wsDeflateLength=0}async createWebSocketConnection(s){var c;const u=s2();this.connectionID+=1,this.joinGatewayRecordIndex=void 0;const h=O=>{var P;(P=this.store)===null||P===void 0||P.signalChannelOpen(),J.debug("[".concat(this.name,"] websocket opened:"),O),this.reconnectMode="retry",this.state="connected",this.resetReconnectCount("opened"),u.resolve()},_=async O=>{var P;if(J.debug("[".concat(this.name,"] websocket close ").concat((P=this.websocket)===null||P===void 0?void 0:P.url,", code: ").concat(O.code,", reason: ").concat(O.reason,", current mode: ").concat(this.reconnectMode)),this.reconnectCount>=this.retryConfig.maxRetryCount)u.reject(new tt(Ce.WS_DISCONNECT,"websocket close: ".concat(O.code))),this.close();else{this.state==="connected"&&(this.reconnectReason=O.reason,this.state="reconnecting");const U=q1(this,jr.WILL_RECONNECT,this.reconnectMode,O.reason)||this.reconnectMode,H=await this.reconnectWithAction(U);if(this.state==="closed")return void J.debug("[".concat(this.connectionID,"] ws is closed, no need to reconnect"));if(!H)return u.reject(new tt(Ce.WS_DISCONNECT,"websocket reconnect failed: ".concat(O.code))),this.close(!0);u.resolve()}},B=O=>{this.emit(jr.ON_MESSAGE,O)},Q=O=>{J.warn("[".concat(this.connectionID,"] ws open error ").concat(O))};this.websocket&&(this.websocket.onclose=null,this.websocket.close()),de("GATEWAY_WSS_ADDRESS")&&this.name.startsWith("gateway")&&(s=de("GATEWAY_WSS_ADDRESS")),J.debug("[".concat(this.name,"] start connect, url:"),s);const T=(c=this.store)===null||c===void 0?void 0:c.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"});try{var D;this._websocketUrl=c_(s);const O=await this.chooseBestWebsocketConnection(s);this.websocket=O,h&&h(this.websocket.url),this.websocket.onclose=_,this.websocket.onmessage=B,this.websocket.onerror=Q,(D=this.store)===null||D===void 0||D.recordJoinChannelService({endTs:Date.now(),status:"success"},T),this.joinGatewayRecordIndex=T}catch(O){const P=this.state==="closed",U=O instanceof tt,H=U&&O.code===Ce.WS_ABORT,$=U&&O.code===Ce.WS_ERR,Z=U?O.message:O&&(O.reason||O.toString());J.warning("[choose-best-ws] chooseBestWebsocket error: ".concat(Z)),this.store&&this.store.recordJoinChannelService({endTs:Date.now(),status:H?"aborted":"error",errors:[O]},T),P||$?(u.reject(P?new tt(Ce.WS_DISCONNECT,"websocket is closed: ".concat(Z)):new tt(Ce.WS_ERR,"init websocket failed: ".concat(Z))),$&&J.error("[".concat(this.name,"] init websocket failed: ").concat(Z))):_&&_(O)}return u.promise}async reconnectWithAction(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this.reconnectCount>=this.retryConfig.maxRetryCount||this.urls.length===0||this.state==="closed")return!1;J.warning("[choose-best-ws] action: =>",s),this.onlineReconnectListener||ki.isOnline||!ki.onlineWaiter||(this.onlineReconnectListener=ki.onlineWaiter.then(()=>{this.onlineReconnectListener=void 0}));let u=!0;if(this.reconnectInterrupter=()=>u=!1,c){const B=Lf(this.reconnectCount,this.retryConfig);J.debug("[".concat(this.name,"] wait ").concat(B,"ms to reconnect websocket, mode: ").concat(s)),await Ut.race([so(B),this.onlineReconnectListener||new Ut(()=>{})])}if(this._state==="closed"||!u)return!1;this.reconnectCount+=1;const h=async(B,Q)=>{this.emit(jr.RECONNECT_CREATE_CONNECTION,Q),await this.createWebSocketConnection(B)};try{if(s==="retry")await h(this.urls[this.currentURLIndex],s);else if(s==="tryNext"){if(this.currentURLIndex+=1,this.currentURLIndex>=this.urls.length)return this.reconnectWithAction("recover",!1);J.debug("[".concat(this.name,"] websocket url length: ").concat(this.urls.length," current index: ").concat(this.currentURLIndex)),await h(this.urls[this.currentURLIndex],s)}else s==="recover"&&(J.debug("[".concat(this.name,"] request new urls")),this.resetReconnectCount("recover mode"),this.urls=await $o(this,jr.REQUEST_NEW_URLS),this.currentURLIndex=0,await h(this.urls[this.currentURLIndex],s))}catch(B){var _;J.error("[".concat(this.name,"] reconnect failed ").concat(B&&B.toString()));const Q=B==null||(_=B.data)===null||_===void 0?void 0:_.desc;if(Array.isArray(Q)){if(Et(Q).call(Q,"dynamic key expired"))return this.emit(jr.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1;if(Et(Q).call(Q,"request downgrade fallback"))return this.emit(jr.ON_FALLBACK),!1}return this.reconnectWithAction(s,c)}return!0}}class Bh extends x2{constructor(s,c){super(s,c,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(s,c){const u=s2(),h=function(B,Q){return new RN(B,Q)}(this.forceCloseTimeout,this.store);this.closeEstablishingWs=()=>{J.debug("[choose-best-ws] close establishing websockets"),h.closeAllWebsockets(),u.reject(new tt(Ce.WS_ABORT,"choose best websocket aborted"))};const _=de("GATEWAY_DOMAINS");return J.debug("[choose-best-ws] currentDomain: ",s,", domains: ",_,"total: ".concat(this.urls.length),"current: ".concat(this.currentURLIndex+1)),h.chooseBestWebsocket(s,this.tryDoubleDomain,this.use443PortOnly,c).then(u.resolve).catch(u.reject),u.promise.finally(()=>{this.closeEstablishingWs=void 0})}}class Ug extends x2{constructor(s,c){super(s,c,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3&&arguments[3]!==void 0&&arguments[3],arguments.length>4&&arguments[4]!==void 0&&arguments[4],arguments.length>5?arguments[5]:void 0)}async chooseBestWebsocketConnection(s,c){return new Ut((u,h)=>{let _=!1;const B=[];this.closeEstablishingWs=()=>{J.debug("[choose-best-ws] close establishing websockets"),B.forEach($=>{$.onclose=null,$.onopen=null,$.onmessage=null,$.close()}),h(new tt(Ce.WS_ABORT,"choose best websocket aborted"))};const Q=de("GATEWAY_DOMAINS");let T;const D=s.indexOf("?h="),O=Q.find($=>D!==-1?Et(s).call(s,$,D):Et(s).call(s,$));J.debug("[choose-best-ws] currentDomain: ",O,", domains: ",Q);let P=!this.tryDoubleDomain||!O;if(!P&&O){var U;const $=Date.now();try{Q.forEach(Z=>{const te=D===-1?s.replace(O,Z):s.substr(0,D)+s.substr(D).replace(O,Z),se=new WebSocket(te);se.binaryType="arraybuffer",B.push(se),J.debug("[choose-best-ws] ws is connecting:",se.url)})}catch{for(J.debug("[choose-best-ws] ws create failed, fallback to single url"),B.forEach(te=>te.close());B.length;)B.pop();P=!0}(U=this.store)===null||U===void 0||U.recordJoinChannelService({urls:B.map(Z=>Z.url),service:"gateway"},c),B.forEach(Z=>{Z.onopen=()=>{if(_)return;const te=Date.now()-$;J.debug("[choose-best-ws] ws open cost ".concat(te,"ms")),B.filter(se=>se!==Z).forEach(se=>{J.debug("[choose-best-ws]close backup websocket: ".concat(se.url)),se.close()}),_=!0,u(Z)},Z.onclose=te=>{T=te,!_&&(B.find(se=>!(se.readyState===WebSocket.CLOSED||se.readyState===WebSocket.CLOSING))||(J.debug("[choose-best-ws] all websocket is closed"),_=!0,h(T)))},Z.onmessage=te=>{J.debug("[choose-best-ws]".concat(Z.url," onmessage: ").concat(te.data))}}),so(this.forceCloseTimeout).then(()=>{B.forEach(Z=>{Z.readyState!==WebSocket.OPEN&&Z.close()})})}if(P){var H;let $;J.debug("[choose-best-ws] use single url: ",s),(H=this.store)===null||H===void 0||H.recordJoinChannelService({urls:[s],service:"gateway"},c);try{$=new WebSocket(s),B.push($),$.binaryType="arraybuffer"}catch(Z){const te=new tt(Ce.WS_ERR,"init websocket failed! Error: ".concat(Z.toString()));return J.error("[".concat(this.name,"]").concat(te)),void h(te)}$.onopen=()=>{u($)},$.onclose=Z=>{h(Z)},$.onmessage=Z=>{J.debug("[choose-best-ws]".concat($.url," onmessage: ").concat(Z.data))},so(this.forceCloseTimeout).then(()=>{$&&$.readyState!==WebSocket.OPEN&&$.close()})}}).then(u=>(this.closeEstablishingWs=void 0,u)).catch(u=>{throw this.closeEstablishingWs=void 0,u})}}class yN extends Cn{get connectionState(){return this._connectionState}set connectionState(s){s!==this._connectionState&&(this._connectionState=s,s===Ci.CONNECTED?this.emit(er.WS_CONNECTED):s===Ci.RECONNECTING?this.emit(er.WS_RECONNECTING,this._websocketReconnectReason):s===Ci.CLOSED&&this.emit(er.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(s,c){super(),ae(this,"__name__","AgoraRTCSignal"),ae(this,"_disconnectedReason",void 0),ae(this,"_websocketReconnectReason",void 0),ae(this,"_connectionState",Ci.CLOSED),ae(this,"reconnectToken",void 0),ae(this,"websocket",void 0),ae(this,"openConnectionTime",void 0),ae(this,"clientId",void 0),ae(this,"lastMsgTime",Date.now()),ae(this,"uploadCache",[]),ae(this,"uploadCacheInterval",void 0),ae(this,"rttRolling",new VR(5)),ae(this,"pingpongTimer",void 0),ae(this,"wsInflateDataTimer",void 0),ae(this,"pingpongTimeoutCount",0),ae(this,"ortc",void 0),ae(this,"joinResponse",void 0),ae(this,"multiIpOption",void 0),ae(this,"initError",void 0),ae(this,"spec",void 0),ae(this,"store",void 0),ae(this,"onWebsocketMessage",u=>{if(u.data instanceof ArrayBuffer)return void this.emit(er.ON_BINARY_DATA,u.data);const h=JSON.parse(u.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(h,"_id")){const _="res-@".concat(h._id);this.emit(_,h._result,h._message)}else if(Object.prototype.hasOwnProperty.call(h,"_type")){if(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED)switch(h._message.error_code){case 14:this.close(mi.UID_BANNED);break;case 15:this.close(mi.IP_BANNED);break;case 16:this.close(mi.CHANNEL_BANNED)}if(h._type===Ur.ON_USER_LICENSE_BANNED)switch(h._message.error_code){case Br.ERR_LICENSE_MISSING:this.close(mi.LICENSE_MISSING);break;case Br.ERR_LICENSE_EXPIRED:this.close(mi.LICENSE_EXPIRED);break;case Br.ERR_LICENSE_MINUTES_EXCEEDED:this.close(mi.LICENSE_MINUTES_EXCEEDED);break;case Br.ERR_LICENSE_PERIOD_INVALID:this.close(mi.LICENSE_PERIOD_INVALID);break;case Br.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(mi.LICENSE_MULTIPLE_SDK_SERVICE);break;case Br.ERR_LICENSE_ILLEGAL:this.close(mi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=s.clientId,this.spec=s,this.store=c,this.websocket=new Bh("gateway-".concat(this.clientId),this.spec.retryConfig,!0,de("JOIN_GATEWAY_USE_DUAL_DOMAIN"),de("JOIN_GATEWAY_USE_443PORT_ONLY"),c),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Ci.CONNECTED&&this.reconnect("retry",Ss.OFFLINE)})}async request(s,c,u,h){const _=un(6,""),B={_id:_,_type:s,_message:c},Q=this.websocket.connectionID,T=()=>new Ut(($,Z)=>{if(this.connectionState===Ci.CONNECTED)return $();const te=()=>{this.off(er.WS_CLOSED,se),$()},se=()=>{this.off(er.WS_CONNECTED,te),Z(new qe(Ce.WS_ABORT))};this.once(er.WS_CONNECTED,te),this.once(er.WS_CLOSED,se),s!==ur.PUBLISH&&s!==ur.PUBLISH_DATASTREAM&&s!==ur.SUBSCRIBE&&s!==ur.SUBSCRIBE_DATASTREAM&&s!==ur.UNSUBSCRIBE&&s!==ur.UNSUBSCRIBE_DATASTREAM&&s!==ur.UNPUBLISH&&s!==ur.UNPUBLISH_DATASTREAM&&s!==ur.CONTROL&&s!==ur.RESTART_ICE||this.once(er.DISCONNECT_P2P,()=>{Z(new qe(Ce.DISCONNECT_P2P))}),s!==ur.PUBLISH&&s!==ur.RESTART_ICE||this.once(er.ABORT_P2P_EXECUTION,()=>{Z(new qe(Ce.DISCONNECT_P2P))})});if(this.connectionState!==Ci.CONNECTING&&this.connectionState!==Ci.RECONNECTING||s===ur.JOIN||s===ur.REJOIN||await T(),this.websocket.sendMessage(B,!0),h)return;const D=new Ut(($,Z)=>{let te=!1;const se=(me,Qe)=>{te=!0,$({isSuccess:me==="success",message:Qe||{}}),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.emit(er.REQUEST_SUCCESS,s,c)};this.once("res-@".concat(_),se);const ge=()=>{Z(new qe(Ce.WS_ABORT,"type: ".concat(s))),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.off("res-@".concat(_),se)};this.once(er.WS_CLOSED,ge),this.once(er.WS_RECONNECTING,ge),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==Q||te||(J.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(s)),this.emit(er.REQUEST_TIMEOUT,s,c))})});let O=null;try{O=await D}catch($){if(this.connectionState===Ci.CLOSED||s===ur.LEAVE)throw new qe(Ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||u?$.throw():s===ur.JOIN||s===ur.REJOIN?null:(await T(),await this.request(s,c))}if(O.isSuccess)return O.message;const P=Number(O.message.error_code||O.message.code),U=m1(P),H=new qe(Ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(O.message.error_str),{code:P,data:O.message,desc:U.desc});return U.action==="success"?O.message:(J.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(s,", error_code: ").concat(P,", message: ").concat(U.desc,", action: ").concat(U.action)),P===Br.ERR_TOO_MANY_BROADCASTERS?((s===ur.JOIN||s===ur.REJOIN)&&(this.initError=H,this.close()),H.throw()):U.action==="failed"?H.throw():U.action==="quit"?(this.initError=H,this.close(),H.throw()):(P===Br.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=O.message.option,J.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Ss.MULTI_IP)):this.reconnect(U.action,Ss.SERVER_ERROR),s===ur.JOIN||s===ur.REJOIN?null:await this.request(s,c)))}waitMessage(s,c){return new Ut(u=>{const h=_=>{(!c||c(_))&&(this.off(s,h),u(_))};this.on(s,h)})}uploadWRTCStats(s){if(!this.store.sessionId)return void J.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));const c={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:s};this.upload(Mu.WRTC_STATS,c)}upload(s,c){const u={_type:s,_message:c};try{this.websocket.sendMessage(u)}catch{const _=de("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(u),this.uploadCache.length>_&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Ci.CONNECTED)return;const B=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(B._type,B._message)},de("UPLOAD_CACHE_INTERVAL")||2e3))}}send(s,c){const u={_type:s,_message:c};this.websocket.sendMessage(u)}init(s){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ut((c,u)=>{this.once(er.WS_CONNECTED,()=>c(this.joinResponse)),this.once(er.WS_CLOSED,h=>u(this.initError||new qe(Ce.WS_ABORT,h))),this.connectionState=Ci.CONNECTING,this.websocket.init(s).catch(u),this.wsInflateDataTimer&&window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=window.setInterval(()=>{this.handleWsInflateData()},2e4)})}close(s){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.wsInflateDataTimer&&(this.handleWsInflateData(),window.clearInterval(this.wsInflateDataTimer),this.wsInflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._disconnectedReason=s||mi.LEAVE,this.connectionState=Ci.CLOSED,J.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close()}async join(){if(!this.joinResponse){this.emit(er.ABORT_P2P_EXECUTION),this.store.signalConnected();const s=await $o(this,er.REQUEST_JOIN_INFO);this.store.joinReq();let c=await $o(this,er.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE);if(c){J.debug("join response from pre join response");const u=await this.request(ur.JOIN,s);u&&"ortc"in u&&(c=u)}else J.debug("join response from request join_v3"),c=await this.request(ur.JOIN,s);if(this.ortc=s==null?void 0:s.ortc,this.store.joinRep(),!c)return this.emit(er.REPORT_JOIN_GATEWAY,_h.TIMEOUT,this.url||""),!1;this.joinResponse=c,this.emit(er.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}async rejoin(){if(!this.reconnectToken)throw new qe(Ce.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");const s=nh(this,er.REQUEST_REJOIN_INFO);s.token=this.reconnectToken;const c=await this.request(ur.REJOIN,s);return!!c&&(this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),c.peers&&c.peers.forEach(u=>{this.emit(Ur.ON_USER_ONLINE,{uid:u.uid}),u.audio&&this.emit(Ur.ON_ADD_AUDIO_STREAM,{uid:u.uid,uint_id:u.uint_id,audio:!0,ssrcId:u.audio_ssrc}),u.video&&this.emit(Ur.ON_ADD_VIDEO_STREAM,{uid:u.uid,uint_id:u.uint_id,video:!0,ssrcId:u.video_ssrc}),u.audio_mute?this.emit(Ur.MUTE_AUDIO,{uid:u.uid}):this.emit(Ur.UNMUTE_AUDIO,{uid:u.uid}),u.video_mute?this.emit(Ur.MUTE_VIDEO,{uid:u.uid}):this.emit(Ur.UNMUTE_VIDEO,{uid:u.uid}),u.audio_enable_local?this.emit(Ur.ENABLE_LOCAL_AUDIO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_AUDIO,{uid:u.uid}),u.video_enable_local?this.emit(Ur.ENABLE_LOCAL_VIDEO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_VIDEO,{uid:u.uid}),u.audio||u.video||this.emit(Ur.ON_REMOVE_STREAM,{uid:u.uid,uint_id:u.uint_id})}),!0)}reconnect(s,c){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(s,c)}async downgradeCodec(s){if(!this.ortc)return!1;const c={downgrade_codec:s,ortc:this.ortc};return!!await this.request(ur.DOWNGRADE_CODEC,c)}handleNotification(s){J.debug("[".concat(this.clientId,"] receive notification: "),s);const c=m1(s.code);if(s.code===28&&"detail"in s&&(J.info("[".concat(this.clientId,"] receive recover notification: "),s.detail),this.emit(er.RECOVER_NOTIFICATION,s.detail)),c.action!=="success"){if(c.action!=="failed")return c.action==="quit"?s.code===Br.ERR_REPEAT_JOIN_CHANNEL&&de("IGNORE_UID_CHECK")?void this.close(mi.UID_CONFLICT):(c.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(mi.UID_BANNED),void this.close()):s.code===Br.K_VOS_FALLBACK&&"detail"in s?(J.info("[".concat(this.clientId,"] receive vos fallback notification: "),s.detail),s.detail==="FALLBACKCN"&&de("ENABLE_QUALITY_FALLBACK")?void $o(this,er.VOS_FALLBACK_PROMISE,s.detail).then(()=>{this.reconnect("recover",c.desc)}).catch(u=>{J.debug("[".concat(this.clientId,"] cancel vos fallback cn, error: "),u)}):s.detail==="fallback_hls"&&de("ENABLE_FALLBACK_TO_HLS")?(this.emit(er.VOS_FALLBACK,s.detail),void this.close(mi.FALLBACK_TO_HLS)):this.reconnect(c.action,c.desc)):void this.reconnect(c.action,Ss.SERVER_ERROR);J.error("[".concat(this.clientId,"] ignore error: "),c.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;const s=de("PING_PONG_TIME_OUT"),c=Date.now();this.pingpongTimeoutCount>=s&&(J.warning("[".concat(this.clientId,"] PING-PONG Timeout. Last Socket Message: ").concat(c-this.lastMsgTime,"ms")),c-this.lastMsgTime>de("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",Ss.TIMEOUT):this.request(ur.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;const u=Date.now()-c;this.rttRolling.add(u),de("REPORT_STATS")&&this.send(ur.PING_BACK,{pingpongElapse:u})}).catch(u=>{})}handleWsInflateData(){const s=this.websocket.getWsInflateData(),c=s.wsInflateLength,u=s.wsDeflateLength;c!==0&&u!==0&&this.upload(Mu.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:u,ws_inflate_length:c})}handleWebsocketEvents(){this.websocket.on(jr.RECONNECT_CREATE_CONNECTION,s=>{this.emit(er.WS_RECONNECT_CREATE_CONNECTION,s)}),this.websocket.on(jr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(jr.CLOSED,()=>{this.connectionState=Ci.CLOSED}),this.websocket.on(jr.FAILED,()=>{this._disconnectedReason=mi.NETWORK_ERROR,this.connectionState=Ci.CLOSED}),this.websocket.on(jr.RECONNECTING,s=>{this._websocketReconnectReason=s,this.joinResponse=void 0,this.connectionState===Ci.CONNECTED?this.connectionState=Ci.RECONNECTING:this.connectionState=Ci.CONNECTING}),this.websocket.on(jr.WILL_RECONNECT,(s,c,u)=>{const h=nh(this,er.IS_P2P_DISCONNECTED),_=h||s!=="retry";h&&s==="retry"&&(J.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),s="tryNext",c=_h.P2P_DISCONNECTED),_&&(J.debug("".concat(this.clientId," will renewSession, reconnect mode: ").concat(s)),this.emit(er.REPORT_JOIN_GATEWAY,c||_h.UNKNOWN_REASON,this.url||""),this.reconnectToken=void 0,this.emit(er.DISCONNECT_P2P)),u(s)}),this.websocket.on(jr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(s=>{J.warning("[".concat(this.clientId,"] rejoin failed ").concat(s)),this.reconnect("tryNext",Ss.SERVER_ERROR)}):this.join().catch(s=>{if(this.emit(er.REPORT_JOIN_GATEWAY,s,this.url||""),s instanceof qe){if(s.code===Ce.UNEXPECTED_RESPONSE&&s.data.code===Br.ERR_NO_AUTHORIZED)return this.initError=new qe(Ce.TOKEN_EXPIRE,"dynamic key expired"),void this.close(mi.TOKEN_EXPIRE);J.error("[".concat(this.clientId,"] join gateway request failed"),s.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Ss.SERVER_ERROR):(this.initError=s,this.close())}})}),this.websocket.on(jr.REQUEST_NEW_URLS,(s,c)=>{$o(this,er.REQUEST_RECOVER,this.multiIpOption).then(s).catch(c)}),this.websocket.on(jr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(fs.PRE_CONNECT_PC,()=>{this.emit(er.PRE_CONNECT_PC)}),this.websocket.on(jr.ON_FALLBACK,()=>{de("ENABLE_FALLBACK_TO_HLS")&&this.emit(er.VOS_FALLBACK,"fallback_hls")})}}var XJ=W,Ky=db,QN=RegExp.prototype,g7=function(t){return t===QN||XJ(QN,t)?Ky(t):t.flags},hA=f(g7);function JC(t){let s=t.length;for(;--s>=0;)t[s]=0}const Hy=256,TN=286,l_=30,d_=15,Yy=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),qC=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),zJ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),E7=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Yd=new Array(576);JC(Yd);const aa=new Array(60);JC(aa);const WC=new Array(512);JC(WC);const jd=new Array(256);JC(jd);const F2=new Array(29);JC(F2);const u_=new Array(l_);function jy(t,s,c,u,h){this.static_tree=t,this.extra_bits=s,this.extra_base=c,this.elems=u,this.max_length=h,this.has_stree=t&&t.length}let xg,wN,Jy;function vN(t,s){this.dyn_tree=t,this.max_code=0,this.stat_desc=s}JC(u_);const g_=t=>t<256?WC[t]:WC[256+(t>>>7)],G2=(t,s)=>{t.pending_buf[t.pending++]=255&s,t.pending_buf[t.pending++]=s>>>8&255},i1=(t,s,c)=>{t.bi_valid>16-c?(t.bi_buf|=s<>16-t.bi_valid,t.bi_valid+=c-16):(t.bi_buf|=s<{i1(t,c[2*s],c[2*s+1])},DN=(t,s)=>{let c=0;do c|=1&t,t>>>=1,c<<=1;while(--s>0);return c>>>1},xu=(t,s,c)=>{const u=new Array(16);let h,_,B=0;for(h=1;h<=d_;h++)B=B+c[h-1]<<1,u[h]=B;for(_=0;_<=s;_++){let Q=t[2*_+1];Q!==0&&(t[2*_]=DN(u[Q]++,Q))}},H2=t=>{let s;for(s=0;s{t.bi_valid>8?G2(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},bN=(t,s,c,u)=>{const h=2*s,_=2*c;return t[h]{const u=t.heap[c];let h=c<<1;for(;h<=t.heap_len&&(h{let u,h,_,B,Q=0;if(t.sym_next!==0)do u=255&t.pending_buf[t.sym_buf+Q++],u+=(255&t.pending_buf[t.sym_buf+Q++])<<8,h=t.pending_buf[t.sym_buf+Q++],u===0?Jd(t,h,s):(_=jd[h],Jd(t,_+Hy+1,s),B=Yy[_],B!==0&&(h-=F2[_],i1(t,h,B)),u--,_=g_(u),Jd(t,_,c),B=qC[_],B!==0&&(u-=u_[_],i1(t,u,B)));while(Q{const c=s.dyn_tree,u=s.stat_desc.static_tree,h=s.stat_desc.has_stree,_=s.stat_desc.elems;let B,Q,T,D=-1;for(t.heap_len=0,t.heap_max=573,B=0;B<_;B++)c[2*B]!==0?(t.heap[++t.heap_len]=D=B,t.depth[B]=0):c[2*B+1]=0;for(;t.heap_len<2;)T=t.heap[++t.heap_len]=D<2?++D:0,c[2*T]=1,t.depth[T]=0,t.opt_len--,h&&(t.static_len-=u[2*T+1]);for(s.max_code=D,B=t.heap_len>>1;B>=1;B--)qy(t,c,B);T=_;do B=t.heap[1],t.heap[1]=t.heap[t.heap_len--],qy(t,c,1),Q=t.heap[1],t.heap[--t.heap_max]=B,t.heap[--t.heap_max]=Q,c[2*T]=c[2*B]+c[2*Q],t.depth[T]=(t.depth[B]>=t.depth[Q]?t.depth[B]:t.depth[Q])+1,c[2*B+1]=c[2*Q+1]=T,t.heap[1]=T++,qy(t,c,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((O,P)=>{const U=P.dyn_tree,H=P.max_code,$=P.stat_desc.static_tree,Z=P.stat_desc.has_stree,te=P.stat_desc.extra_bits,se=P.stat_desc.extra_base,ge=P.stat_desc.max_length;let me,Qe,Oe,we,Ne,et,st=0;for(we=0;we<=d_;we++)O.bl_count[we]=0;for(U[2*O.heap[O.heap_max]+1]=0,me=O.heap_max+1;me<573;me++)Qe=O.heap[me],we=U[2*U[2*Qe+1]+1]+1,we>ge&&(we=ge,st++),U[2*Qe+1]=we,Qe>H||(O.bl_count[we]++,Ne=0,Qe>=se&&(Ne=te[Qe-se]),et=U[2*Qe],O.opt_len+=et*(we+Ne),Z&&(O.static_len+=et*($[2*Qe+1]+Ne)));if(st!==0){do{for(we=ge-1;O.bl_count[we]===0;)we--;O.bl_count[we]--,O.bl_count[we+1]+=2,O.bl_count[ge]--,st-=2}while(st>0);for(we=ge;we!==0;we--)for(Qe=O.bl_count[we];Qe!==0;)Oe=O.heap[--me],Oe>H||(U[2*Oe+1]!==we&&(O.opt_len+=(we-U[2*Oe+1])*U[2*Oe],U[2*Oe+1]=we),Qe--)}})(t,s),xu(c,D,t.bl_count)},LN=(t,s,c)=>{let u,h,_=-1,B=s[1],Q=0,T=7,D=4;for(B===0&&(T=138,D=3),s[2*(c+1)+1]=65535,u=0;u<=c;u++)h=B,B=s[2*(u+1)+1],++Q{let u,h,_=-1,B=s[1],Q=0,T=7,D=4;for(B===0&&(T=138,D=3),u=0;u<=c;u++)if(h=B,B=s[2*(u+1)+1],!(++Q{i1(t,0+(u?1:0),3),E_(t),G2(t,c),G2(t,~c),c&&t.pending_buf.set(t.window.subarray(s,s+c),t.pending),t.pending+=c};var h7=t=>{MN||((()=>{let s,c,u,h,_;const B=new Array(16);for(u=0,h=0;h<28;h++)for(F2[h]=u,s=0;s<1<>=7;h{let h,_,B=0;t.level>0?(t.strm.data_type===2&&(t.strm.data_type=(Q=>{let T,D=4093624447;for(T=0;T<=31;T++,D>>>=1)if(1&D&&Q.dyn_ltree[2*T]!==0)return 0;if(Q.dyn_ltree[18]!==0||Q.dyn_ltree[20]!==0||Q.dyn_ltree[26]!==0)return 1;for(T=32;T{let T;for(LN(Q,Q.dyn_ltree,Q.l_desc.max_code),LN(Q,Q.dyn_dtree,Q.d_desc.max_code),ON(Q,Q.bl_desc),T=18;T>=3&&Q.bl_tree[2*E7[T]+1]===0;T--);return Q.opt_len+=3*(T+1)+5+5+4,T})(t),h=t.opt_len+3+7>>>3,_=t.static_len+3+7>>>3,_<=h&&(h=_)):h=_=c+5,c+4<=h&&s!==-1?h_(t,s,c,u):t.strategy===4||_===h?(i1(t,2+(u?1:0),3),NN(t,Yd,aa)):(i1(t,4+(u?1:0),3),((Q,T,D,O)=>{let P;for(i1(Q,T-257,5),i1(Q,D-1,5),i1(Q,O-4,4),P=0;P(t.pending_buf[t.sym_buf+t.sym_next++]=s,t.pending_buf[t.sym_buf+t.sym_next++]=s>>8,t.pending_buf[t.sym_buf+t.sym_next++]=c,s===0?t.dyn_ltree[2*c]++:(t.matches++,s--,t.dyn_ltree[2*(jd[c]+Hy+1)]++,t.dyn_dtree[2*g_(s)]++),t.sym_next===t.sym_end),kN=t=>{i1(t,2,3),Jd(t,256,Yd),(s=>{s.bi_valid===16?(G2(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)})(t)},j2={_tr_init:h7,_tr_stored_block:h_,_tr_flush_block:XC,_tr_tally:$J,_tr_align:kN},I_=(t,s,c,u)=>{let h=65535&t|0,_=t>>>16&65535|0,B=0;for(;c!==0;){B=c>2e3?2e3:c,c-=B;do h=h+s[u++]|0,_=_+h|0;while(--B);h%=65521,_%=65521}return h|_<<16|0};const C_=new Uint32Array((()=>{let t,s=[];for(var c=0;c<256;c++){t=c;for(var u=0;u<8;u++)t=1&t?3988292384^t>>>1:t>>>1;s[c]=t}return s})());var nA=(t,s,c,u)=>{const h=C_,_=u+c;t^=-1;for(let B=u;B<_;B++)t=t>>>8^h[255&(t^s[B])];return-1^t},Fg={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},fr={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_UNKNOWN:2,Z_DEFLATED:8};const I7=j2._tr_init,_l=j2._tr_stored_block,Gc=j2._tr_flush_block,_a=j2._tr_tally,PN=j2._tr_align,Gg=fr.Z_NO_FLUSH,qd=fr.Z_PARTIAL_FLUSH,Wr=fr.Z_FULL_FLUSH,yo=fr.Z_FINISH,ma=fr.Z_BLOCK,Ua=fr.Z_OK,Xy=fr.Z_STREAM_END,B1=fr.Z_STREAM_ERROR,zy=fr.Z_DATA_ERROR,W2=fr.Z_BUF_ERROR,ZJ=fr.Z_DEFAULT_COMPRESSION,wr=fr.Z_FILTERED,p_=fr.Z_HUFFMAN_ONLY,C7=fr.Z_RLE,p7=fr.Z_FIXED,tq=fr.Z_DEFAULT_STRATEGY,$y=fr.Z_UNKNOWN,Vg=fr.Z_DEFLATED,Fu=286,UN=30,f7=19,_7=2*Fu+1,Di=15,Sh=258,IA=262,z2=42,Gu=113,Wd=666,Aa=(t,s)=>(t.msg=Fg[s],s),xN=t=>2*t-(t>4?9:0),Kg=t=>{let s=t.length;for(;--s>=0;)t[s]=0},rq=t=>{let s,c,u,h=t.w_size;s=t.hash_size,u=s;do c=t.head[--u],t.head[u]=c>=h?c-h:0;while(--s);s=h,u=s;do c=t.prev[--u],t.prev[u]=c>=h?c-h:0;while(--s)};let Rh=(t,s,c)=>(s<{const s=t.state;let c=s.pending;c>t.avail_out&&(c=t.avail_out),c!==0&&(t.output.set(s.pending_buf.subarray(s.pending_out,s.pending_out+c),t.next_out),t.next_out+=c,s.pending_out+=c,t.total_out+=c,t.avail_out-=c,s.pending-=c,s.pending===0&&(s.pending_out=0))},S1=(t,s)=>{Gc(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,s),t.block_start=t.strstart,oc(t.strm)},Jo=(t,s)=>{t.pending_buf[t.pending++]=s},zC=(t,s)=>{t.pending_buf[t.pending++]=s>>>8&255,t.pending_buf[t.pending++]=255&s},GN=(t,s,c,u)=>{let h=t.avail_in;return h>u&&(h=u),h===0?0:(t.avail_in-=h,s.set(t.input.subarray(t.next_in,t.next_in+h),c),t.state.wrap===1?t.adler=I_(t.adler,s,h,c):t.state.wrap===2&&(t.adler=nA(t.adler,s,h,c)),t.next_in+=h,t.total_in+=h,h)},m7=(t,s)=>{let c,u,h=t.max_chain_length,_=t.strstart,B=t.prev_length,Q=t.nice_match;const T=t.strstart>t.w_size-IA?t.strstart-(t.w_size-IA):0,D=t.window,O=t.w_mask,P=t.prev,U=t.strstart+Sh;let H=D[_+B-1],$=D[_+B];t.prev_length>=t.good_match&&(h>>=2),Q>t.lookahead&&(Q=t.lookahead);do if(c=s,D[c+B]===$&&D[c+B-1]===H&&D[c]===D[_]&&D[++c]===D[_+1]){_+=2,c++;do;while(D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&D[++_]===D[++c]&&_B){if(t.match_start=s,B=u,u>=Q)break;H=D[_+B-1],$=D[_+B]}}while((s=P[s&O])>T&&--h!=0);return B<=t.lookahead?B:t.lookahead},$2=t=>{const s=t.w_size;let c,u,h;do{if(u=t.window_size-t.lookahead-t.strstart,t.strstart>=s+(s-IA)&&(t.window.set(t.window.subarray(s,s+s-u),0),t.match_start-=s,t.strstart-=s,t.block_start-=s,t.insert>t.strstart&&(t.insert=t.strstart),rq(t),u+=s),t.strm.avail_in===0)break;if(c=GN(t.strm,t.window,t.strstart+t.lookahead,u),t.lookahead+=c,t.lookahead+t.insert>=3)for(h=t.strstart-t.insert,t.ins_h=t.window[h],t.ins_h=Rh(t,t.ins_h,t.window[h+1]);t.insert&&(t.ins_h=Rh(t,t.ins_h,t.window[h+3-1]),t.prev[h&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=h,h++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let c,u,h,_=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,B=0,Q=t.strm.avail_in;do{if(c=65535,h=t.bi_valid+42>>3,t.strm.avail_outu+t.strm.avail_in&&(c=u+t.strm.avail_in),c>h&&(c=h),c<_&&(c===0&&s!==yo||s===Gg||c!==u+t.strm.avail_in)))break;B=s===yo&&c===u+t.strm.avail_in?1:0,_l(t,0,0,B),t.pending_buf[t.pending-4]=c,t.pending_buf[t.pending-3]=c>>8,t.pending_buf[t.pending-2]=~c,t.pending_buf[t.pending-1]=~c>>8,oc(t.strm),u&&(u>c&&(u=c),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+u),t.strm.next_out),t.strm.next_out+=u,t.strm.avail_out-=u,t.strm.total_out+=u,t.block_start+=u,c-=u),c&&(GN(t.strm,t.strm.output,t.strm.next_out,c),t.strm.next_out+=c,t.strm.avail_out-=c,t.strm.total_out+=c)}while(B===0);return Q-=t.strm.avail_in,Q&&(Q>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=Q&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-Q,t.strm.next_in),t.strstart),t.strstart+=Q,t.insert+=Q>t.w_size-t.insert?t.w_size-t.insert:Q),t.block_start=t.strstart),t.high_waterh&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,h+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),h>t.strm.avail_in&&(h=t.strm.avail_in),h&&(GN(t.strm,t.window,t.strstart,h),t.strstart+=h,t.insert+=h>t.w_size-t.insert?t.w_size-t.insert:h),t.high_water>3,h=t.pending_buf_size-h>65535?65535:t.pending_buf_size-h,_=h>t.w_size?t.w_size:h,u=t.strstart-t.block_start,(u>=_||(u||s===yo)&&s!==Gg&&t.strm.avail_in===0&&u<=h)&&(c=u>h?h:u,B=s===yo&&t.strm.avail_in===0&&c===u?1:0,_l(t,t.block_start,c,B),t.block_start+=c,oc(t.strm)),B?3:1)},yh=(t,s)=>{let c,u;for(;;){if(t.lookahead=3&&(t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),c!==0&&t.strstart-c<=t.w_size-IA&&(t.match_length=m7(t,c)),t.match_length>=3)if(u=_a(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do t.strstart++,t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!=0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+1]);else u=_a(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(u&&(S1(t,!1),t.strm.avail_out===0))return 1}return t.insert=t.strstart<2?t.strstart:2,s===yo?(S1(t,!0),t.strm.avail_out===0?3:4):t.sym_next&&(S1(t,!1),t.strm.avail_out===0)?1:2},$C=(t,s)=>{let c,u,h;for(;;){if(t.lookahead=3&&(t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,c!==0&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){h=t.strstart+t.lookahead-3,u=_a(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=h&&(t.ins_h=Rh(t,t.ins_h,t.window[t.strstart+3-1]),c=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!=0);if(t.match_available=0,t.match_length=2,t.strstart++,u&&(S1(t,!1),t.strm.avail_out===0))return 1}else if(t.match_available){if(u=_a(t,0,t.window[t.strstart-1]),u&&S1(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(u=_a(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,s===yo?(S1(t,!0),t.strm.avail_out===0?3:4):t.sym_next&&(S1(t,!1),t.strm.avail_out===0)?1:2};function Vu(t,s,c,u,h){this.good_length=t,this.max_lazy=s,this.nice_length=c,this.max_chain=u,this.func=h}const Xd=[new Vu(0,0,0,0,VN),new Vu(4,4,8,4,yh),new Vu(4,5,16,8,yh),new Vu(4,6,32,32,yh),new Vu(4,4,16,16,$C),new Vu(8,16,32,32,$C),new Vu(8,16,128,128,$C),new Vu(8,32,128,256,$C),new Vu(32,128,258,1024,$C),new Vu(32,258,258,4096,$C)];function eI(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Vg,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(2*_7),this.dyn_dtree=new Uint16Array(2*(2*UN+1)),this.bl_tree=new Uint16Array(2*(2*f7+1)),Kg(this.dyn_ltree),Kg(this.dyn_dtree),Kg(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Di+1),this.heap=new Uint16Array(2*Fu+1),Kg(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Fu+1),Kg(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const tI=t=>{if(!t)return 1;const s=t.state;return!s||s.strm!==t||s.status!==z2&&s.status!==57&&s.status!==69&&s.status!==73&&s.status!==91&&s.status!==103&&s.status!==Gu&&s.status!==Wd?1:0},Zy=t=>{if(tI(t))return Aa(t,B1);t.total_in=t.total_out=0,t.data_type=$y;const s=t.state;return s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap===2?57:s.wrap?z2:Gu,t.adler=s.wrap===2?0:1,s.last_flush=-2,I7(s),Ua},eQ=t=>{const s=Zy(t);return s===Ua&&(c=>{c.window_size=2*c.w_size,Kg(c.head),c.max_lazy_match=Xd[c.level].max_lazy,c.good_match=Xd[c.level].good_length,c.nice_match=Xd[c.level].nice_length,c.max_chain_length=Xd[c.level].max_chain,c.strstart=0,c.block_start=0,c.lookahead=0,c.insert=0,c.match_length=c.prev_length=2,c.match_available=0,c.ins_h=0})(t.state),s},f_=(t,s,c,u,h,_)=>{if(!t)return B1;let B=1;if(s===ZJ&&(s=6),u<0?(B=0,u=-u):u>15&&(B=2,u-=16),h<1||h>9||c!==Vg||u<8||u>15||s<0||s>9||_<0||_>p7||u===8&&B!==1)return Aa(t,B1);u===8&&(u=9);const Q=new eI;return t.state=Q,Q.strm=t,Q.status=z2,Q.wrap=B,Q.gzhead=null,Q.w_bits=u,Q.w_size=1<{if(tI(t)||s>ma||s<0)return t?Aa(t,B1):B1;const c=t.state;if(!t.output||t.avail_in!==0&&!t.input||c.status===Wd&&s!==yo)return Aa(t,t.avail_out===0?W2:B1);const u=c.last_flush;if(c.last_flush=s,c.pending!==0){if(oc(t),t.avail_out===0)return c.last_flush=-1,Ua}else if(t.avail_in===0&&xN(s)<=xN(u)&&s!==yo)return Aa(t,W2);if(c.status===Wd&&t.avail_in!==0)return Aa(t,W2);if(c.status===z2&&c.wrap===0&&(c.status=Gu),c.status===z2){let h=Vg+(c.w_bits-8<<4)<<8,_=-1;if(_=c.strategy>=p_||c.level<2?0:c.level<6?1:c.level===6?2:3,h|=_<<6,c.strstart!==0&&(h|=32),h+=31-h%31,zC(c,h),c.strstart!==0&&(zC(c,t.adler>>>16),zC(c,65535&t.adler)),t.adler=1,c.status=Gu,oc(t),c.pending!==0)return c.last_flush=-1,Ua}if(c.status===57){if(t.adler=0,Jo(c,31),Jo(c,139),Jo(c,8),c.gzhead)Jo(c,(c.gzhead.text?1:0)+(c.gzhead.hcrc?2:0)+(c.gzhead.extra?4:0)+(c.gzhead.name?8:0)+(c.gzhead.comment?16:0)),Jo(c,255&c.gzhead.time),Jo(c,c.gzhead.time>>8&255),Jo(c,c.gzhead.time>>16&255),Jo(c,c.gzhead.time>>24&255),Jo(c,c.level===9?2:c.strategy>=p_||c.level<2?4:0),Jo(c,255&c.gzhead.os),c.gzhead.extra&&c.gzhead.extra.length&&(Jo(c,255&c.gzhead.extra.length),Jo(c,c.gzhead.extra.length>>8&255)),c.gzhead.hcrc&&(t.adler=nA(t.adler,c.pending_buf,c.pending,0)),c.gzindex=0,c.status=69;else if(Jo(c,0),Jo(c,0),Jo(c,0),Jo(c,0),Jo(c,0),Jo(c,c.level===9?2:c.strategy>=p_||c.level<2?4:0),Jo(c,3),c.status=Gu,oc(t),c.pending!==0)return c.last_flush=-1,Ua}if(c.status===69){if(c.gzhead.extra){let h=c.pending,_=(65535&c.gzhead.extra.length)-c.gzindex;for(;c.pending+_>c.pending_buf_size;){let Q=c.pending_buf_size-c.pending;if(c.pending_buf.set(c.gzhead.extra.subarray(c.gzindex,c.gzindex+Q),c.pending),c.pending=c.pending_buf_size,c.gzhead.hcrc&&c.pending>h&&(t.adler=nA(t.adler,c.pending_buf,c.pending-h,h)),c.gzindex+=Q,oc(t),c.pending!==0)return c.last_flush=-1,Ua;h=0,_-=Q}let B=new Uint8Array(c.gzhead.extra);c.pending_buf.set(B.subarray(c.gzindex,c.gzindex+_),c.pending),c.pending+=_,c.gzhead.hcrc&&c.pending>h&&(t.adler=nA(t.adler,c.pending_buf,c.pending-h,h)),c.gzindex=0}c.status=73}if(c.status===73){if(c.gzhead.name){let h,_=c.pending;do{if(c.pending===c.pending_buf_size){if(c.gzhead.hcrc&&c.pending>_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_)),oc(t),c.pending!==0)return c.last_flush=-1,Ua;_=0}h=c.gzindex_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_)),c.gzindex=0}c.status=91}if(c.status===91){if(c.gzhead.comment){let h,_=c.pending;do{if(c.pending===c.pending_buf_size){if(c.gzhead.hcrc&&c.pending>_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_)),oc(t),c.pending!==0)return c.last_flush=-1,Ua;_=0}h=c.gzindex_&&(t.adler=nA(t.adler,c.pending_buf,c.pending-_,_))}c.status=103}if(c.status===103){if(c.gzhead.hcrc){if(c.pending+2>c.pending_buf_size&&(oc(t),c.pending!==0))return c.last_flush=-1,Ua;Jo(c,255&t.adler),Jo(c,t.adler>>8&255),t.adler=0}if(c.status=Gu,oc(t),c.pending!==0)return c.last_flush=-1,Ua}if(t.avail_in!==0||c.lookahead!==0||s!==Gg&&c.status!==Wd){let h=c.level===0?VN(c,s):c.strategy===p_?((_,B)=>{let Q;for(;;){if(_.lookahead===0&&($2(_),_.lookahead===0)){if(B===Gg)return 1;break}if(_.match_length=0,Q=_a(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++,Q&&(S1(_,!1),_.strm.avail_out===0))return 1}return _.insert=0,B===yo?(S1(_,!0),_.strm.avail_out===0?3:4):_.sym_next&&(S1(_,!1),_.strm.avail_out===0)?1:2})(c,s):c.strategy===C7?((_,B)=>{let Q,T,D,O;const P=_.window;for(;;){if(_.lookahead<=Sh){if($2(_),_.lookahead<=Sh&&B===Gg)return 1;if(_.lookahead===0)break}if(_.match_length=0,_.lookahead>=3&&_.strstart>0&&(D=_.strstart-1,T=P[D],T===P[++D]&&T===P[++D]&&T===P[++D])){O=_.strstart+Sh;do;while(T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&T===P[++D]&&D_.lookahead&&(_.match_length=_.lookahead)}if(_.match_length>=3?(Q=_a(_,1,_.match_length-3),_.lookahead-=_.match_length,_.strstart+=_.match_length,_.match_length=0):(Q=_a(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++),Q&&(S1(_,!1),_.strm.avail_out===0))return 1}return _.insert=0,B===yo?(S1(_,!0),_.strm.avail_out===0?3:4):_.sym_next&&(S1(_,!1),_.strm.avail_out===0)?1:2})(c,s):Xd[c.level].func(c,s);if(h!==3&&h!==4||(c.status=Wd),h===1||h===3)return t.avail_out===0&&(c.last_flush=-1),Ua;if(h===2&&(s===qd?PN(c):s!==ma&&(_l(c,0,0,!1),s===Wr&&(Kg(c.head),c.lookahead===0&&(c.strstart=0,c.block_start=0,c.insert=0))),oc(t),t.avail_out===0))return c.last_flush=-1,Ua}return s!==yo?Ua:c.wrap<=0?Xy:(c.wrap===2?(Jo(c,255&t.adler),Jo(c,t.adler>>8&255),Jo(c,t.adler>>16&255),Jo(c,t.adler>>24&255),Jo(c,255&t.total_in),Jo(c,t.total_in>>8&255),Jo(c,t.total_in>>16&255),Jo(c,t.total_in>>24&255)):(zC(c,t.adler>>>16),zC(c,65535&t.adler)),oc(t),c.wrap>0&&(c.wrap=-c.wrap),c.pending!==0?Ua:Xy)},iq=(t,s)=>{let c=s.length;if(tI(t))return B1;const u=t.state,h=u.wrap;if(h===2||h===1&&u.status!==z2||u.lookahead)return B1;if(h===1&&(t.adler=I_(t.adler,s,c,0)),u.wrap=0,c>=u.w_size){h===0&&(Kg(u.head),u.strstart=0,u.block_start=0,u.insert=0);let T=new Uint8Array(u.w_size);T.set(s.subarray(c-u.w_size,c),0),s=T,c=u.w_size}const _=t.avail_in,B=t.next_in,Q=t.input;for(t.avail_in=c,t.next_in=0,t.input=s,$2(u);u.lookahead>=3;){let T=u.strstart,D=u.lookahead-2;do u.ins_h=Rh(u,u.ins_h,u.window[T+3-1]),u.prev[T&u.w_mask]=u.head[u.ins_h],u.head[u.ins_h]=T,T++;while(--D);u.strstart=T,u.lookahead=2,$2(u)}return u.strstart+=u.lookahead,u.block_start=u.strstart,u.insert=u.lookahead,u.lookahead=0,u.match_length=u.prev_length=2,u.match_available=0,t.next_in=B,t.input=Q,t.avail_in=_,u.wrap=h,Ua},rI={deflateInit:(t,s)=>f_(t,s,Vg,15,8,tq),deflateInit2:f_,deflateReset:eQ,deflateResetKeep:Zy,deflateSetHeader:(t,s)=>tI(t)||t.state.wrap!==2?B1:(t.state.gzhead=s,Ua),deflate:B7,deflateEnd:t=>{if(tI(t))return B1;const s=t.state.status;return t.state=null,s===Gu?Aa(t,zy):Ua},deflateSetDictionary:iq,deflateInfo:"pako deflate (from Nodeca project)"};const nq=(t,s)=>Object.prototype.hasOwnProperty.call(t,s);var ZC={assign:function(t){const s=Array.prototype.slice.call(arguments,1);for(;s.length;){const c=s.shift();if(c){if(typeof c!="object")throw new TypeError(c+"must be non-object");for(const u in c)nq(c,u)&&(t[u]=c[u])}}return t},flattenChunks:t=>{let s=0;for(let u=0,h=t.length;u=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;ep[254]=ep[254]=1;var iI={string2buf:t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let s,c,u,h,_,B=t.length,Q=0;for(h=0;h>>6,s[_++]=128|63&c):c<65536?(s[_++]=224|c>>>12,s[_++]=128|c>>>6&63,s[_++]=128|63&c):(s[_++]=240|c>>>18,s[_++]=128|c>>>12&63,s[_++]=128|c>>>6&63,s[_++]=128|63&c);return s},buf2string:(t,s)=>{const c=s||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,s));let u,h;const _=new Array(2*c);for(h=0,u=0;u4)_[h++]=65533,u+=Q-1;else{for(B&=Q===2?31:Q===3?15:7;Q>1&&u1?_[h++]=65533:B<65536?_[h++]=B:(B-=65536,_[h++]=55296|B>>10&1023,_[h++]=56320|1023&B)}}return((B,Q)=>{if(Q<65534&&B.subarray&&tQ)return String.fromCharCode.apply(null,B.length===Q?B:B.subarray(0,Q));let T="";for(let D=0;D{(s=s||t.length)>t.length&&(s=t.length);let c=s-1;for(;c>=0&&(192&t[c])==128;)c--;return c<0||c===0?s:c+ep[t[c]]>s?c:s}},rQ=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const KN=Object.prototype.toString,S7=fr.Z_NO_FLUSH,R7=fr.Z_SYNC_FLUSH,iQ=fr.Z_FULL_FLUSH,y7=fr.Z_FINISH,nQ=fr.Z_OK,oq=fr.Z_STREAM_END,sq=fr.Z_DEFAULT_COMPRESSION,tp=fr.Z_DEFAULT_STRATEGY,aq=fr.Z_DEFLATED;function rp(t){this.options=ZC.assign({level:sq,method:aq,chunkSize:16384,windowBits:15,memLevel:8,strategy:tp},t||{});let s=this.options;s.raw&&s.windowBits>0?s.windowBits=-s.windowBits:s.gzip&&s.windowBits>0&&s.windowBits<16&&(s.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new rQ,this.strm.avail_out=0;let c=rI.deflateInit2(this.strm,s.level,s.method,s.windowBits,s.memLevel,s.strategy);if(c!==nQ)throw new Error(Fg[c]);if(s.header&&rI.deflateSetHeader(this.strm,s.header),s.dictionary){let u;if(u=typeof s.dictionary=="string"?iI.string2buf(s.dictionary):KN.call(s.dictionary)==="[object ArrayBuffer]"?new Uint8Array(s.dictionary):s.dictionary,c=rI.deflateSetDictionary(this.strm,u),c!==nQ)throw new Error(Fg[c]);this._dict_set=!0}}function Q7(t,s){const c=new rp(s);if(c.push(t,!0),c.err)throw c.msg||Fg[c.err];return c.result}rp.prototype.push=function(t,s){const c=this.strm,u=this.options.chunkSize;let h,_;if(this.ended)return!1;for(_=s===~~s?s:s===!0?y7:S7,typeof t=="string"?c.input=iI.string2buf(t):KN.call(t)==="[object ArrayBuffer]"?c.input=new Uint8Array(t):c.input=t,c.next_in=0,c.avail_in=c.input.length;;)if(c.avail_out===0&&(c.output=new Uint8Array(u),c.next_out=0,c.avail_out=u),(_===R7||_===iQ)&&c.avail_out<=6)this.onData(c.output.subarray(0,c.next_out)),c.avail_out=0;else{if(h=rI.deflate(c,_),h===oq)return c.next_out>0&&this.onData(c.output.subarray(0,c.next_out)),h=rI.deflateEnd(this.strm),this.onEnd(h),this.ended=!0,h===nQ;if(c.avail_out!==0){if(_>0&&c.next_out>0)this.onData(c.output.subarray(0,c.next_out)),c.avail_out=0;else if(c.avail_in===0)break}else this.onData(c.output)}return!0},rp.prototype.onData=function(t){this.chunks.push(t)},rp.prototype.onEnd=function(t){t===nQ&&(this.result=ZC.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var __={deflate:Q7,deflateRaw:function(t,s){return(s=s||{}).raw=!0,Q7(t,s)}};const m_=16209;var T7=function(t,s){let c,u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et,st;const Xt=t.state;c=t.next_in,et=t.input,u=c+(t.avail_in-5),h=t.next_out,st=t.output,_=h-(s-t.avail_out),B=h+(t.avail_out-257),Q=Xt.dmax,T=Xt.wsize,D=Xt.whave,O=Xt.wnext,P=Xt.window,U=Xt.hold,H=Xt.bits,$=Xt.lencode,Z=Xt.distcode,te=(1<>>24,U>>>=me,H-=me,me=ge>>>16&255,me===0)st[h++]=65535≥else{if(!(16&me)){if(!(64&me)){ge=$[(65535&ge)+(U&(1<>>=me,H-=me),H<15&&(U+=et[c++]<>>24,U>>>=me,H-=me,me=ge>>>16&255,!(16&me)){if(!(64&me)){ge=Z[(65535&ge)+(U&(1<Q){t.msg="invalid distance too far back",Xt.mode=m_;break e}if(U>>>=me,H-=me,me=h-_,Oe>me){if(me=Oe-me,me>D&&Xt.sane){t.msg="invalid distance too far back",Xt.mode=m_;break e}if(we=0,Ne=P,O===0){if(we+=T-me,me2;)st[h++]=Ne[we++],st[h++]=Ne[we++],st[h++]=Ne[we++],Qe-=3;Qe&&(st[h++]=Ne[we++],Qe>1&&(st[h++]=Ne[we++]))}else{we=h-Oe;do st[h++]=st[we++],st[h++]=st[we++],st[h++]=st[we++],Qe-=3;while(Qe>2);Qe&&(st[h++]=st[we++],Qe>1&&(st[h++]=st[we++]))}break}}break}}while(c>3,c-=Qe,H-=Qe<<3,U&=(1<{const T=Q.bits;let D,O,P,U,H,$,Z=0,te=0,se=0,ge=0,me=0,Qe=0,Oe=0,we=0,Ne=0,et=0,st=null;const Xt=new Uint16Array(16),lr=new Uint16Array(16);let ft,Ir,ui,Nr=null;for(Z=0;Z<=B_;Z++)Xt[Z]=0;for(te=0;te=1&&Xt[ge]===0;ge--);if(me>ge&&(me=ge),ge===0)return h[_++]=20971520,h[_++]=20971520,Q.bits=1,0;for(se=1;se0&&(t===0||ge!==1))return-1;for(lr[1]=0,Z=1;Z852||t===2&&Ne>592)return 1;for(;;){ft=Z-Oe,B[te]+1<$?(Ir=0,ui=B[te]):B[te]>=$?(Ir=Nr[B[te]-$],ui=st[B[te]-$]):(Ir=96,ui=0),D=1<>Oe)+O]=ft<<24|Ir<<16|ui|0;while(O!==0);for(D=1<>=1;if(D!==0?(et&=D-1,et+=D):et=0,te++,--Xt[Z]==0){if(Z===ge)break;Z=s[c+B[te]]}if(Z>me&&(et&U)!==P){for(Oe===0&&(Oe=me),H+=se,Qe=Z-Oe,we=1<852||t===2&&Ne>592)return 1;P=et&U,h[P]=me<<24|Qe<<16|H-_|0}}return et!==0&&(h[H+et]=Z-Oe<<24|64<<16|0),Q.bits=me,0};const v7=fr.Z_FINISH,Th=fr.Z_BLOCK,R_=fr.Z_TREES,wh=fr.Z_OK,oQ=fr.Z_STREAM_END,Aq=fr.Z_NEED_DICT,nd=fr.Z_STREAM_ERROR,HN=fr.Z_DATA_ERROR,D7=fr.Z_MEM_ERROR,cq=fr.Z_BUF_ERROR,YN=fr.Z_DEFLATED,vh=16180,y_=16190,Ku=16191,Q_=16192,sQ=16194,aQ=16199,T_=16200,AQ=16206,ca=16209,jN=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function b7(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Dh=t=>{if(!t)return 1;const s=t.state;return!s||s.strm!==t||s.mode16211?1:0},JN=t=>{if(Dh(t))return nd;const s=t.state;return t.total_in=t.total_out=s.total=0,t.msg="",s.wrap&&(t.adler=1&s.wrap),s.mode=vh,s.last=0,s.havedict=0,s.flags=-1,s.dmax=32768,s.head=null,s.hold=0,s.bits=0,s.lencode=s.lendyn=new Int32Array(852),s.distcode=s.distdyn=new Int32Array(592),s.sane=1,s.back=-1,wh},qN=t=>{if(Dh(t))return nd;const s=t.state;return s.wsize=0,s.whave=0,s.wnext=0,JN(t)},WN=(t,s)=>{let c;if(Dh(t))return nd;const u=t.state;return s<0?(c=0,s=-s):(c=5+(s>>4),s<48&&(s&=15)),s&&(s<8||s>15)?nd:(u.window!==null&&u.wbits!==s&&(u.window=null),u.wrap=c,u.wbits=s,qN(t))},XN=(t,s)=>{if(!t)return nd;const c=new b7;t.state=c,c.strm=t,c.window=null,c.mode=vh;const u=WN(t,s);return u!==wh&&(t.state=null),u};let cQ,lQ,zN=!0;const N7=t=>{if(zN){cQ=new Int32Array(512),lQ=new Int32Array(32);let s=0;for(;s<144;)t.lens[s++]=8;for(;s<256;)t.lens[s++]=9;for(;s<280;)t.lens[s++]=7;for(;s<288;)t.lens[s++]=8;for(Vo(1,t.lens,0,288,cQ,0,t.work,{bits:9}),s=0;s<32;)t.lens[s++]=5;Vo(2,t.lens,0,32,lQ,0,t.work,{bits:5}),zN=!1}t.lencode=cQ,t.lenbits=9,t.distcode=lQ,t.distbits=5},$N=(t,s,c,u)=>{let h;const _=t.state;return _.window===null&&(_.wsize=1<<_.wbits,_.wnext=0,_.whave=0,_.window=new Uint8Array(_.wsize)),u>=_.wsize?(_.window.set(s.subarray(c-_.wsize,c),0),_.wnext=0,_.whave=_.wsize):(h=_.wsize-_.wnext,h>u&&(h=u),_.window.set(s.subarray(c-u,c-u+h),_.wnext),(u-=h)?(_.window.set(s.subarray(c-u,c),0),_.wnext=u,_.whave=_.wsize):(_.wnext+=h,_.wnext===_.wsize&&(_.wnext=0),_.whave<_.wsize&&(_.whave+=h))),0};var O7=(t,s)=>{let c,u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et=0;const st=new Uint8Array(4);let Xt,lr;const ft=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Dh(t)||!t.output||!t.input&&t.avail_in!==0)return nd;c=t.state,c.mode===Ku&&(c.mode=Q_),B=t.next_out,h=t.output,T=t.avail_out,_=t.next_in,u=t.input,Q=t.avail_in,D=c.hold,O=c.bits,P=Q,U=T,Ne=wh;e:for(;;)switch(c.mode){case vh:if(c.wrap===0){c.mode=Q_;break}for(;O<16;){if(Q===0)break e;Q--,D+=u[_++]<>>8&255,c.check=nA(c.check,st,2,0),D=0,O=0,c.mode=16181;break}if(c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&D)<<8)+(D>>8))%31){t.msg="incorrect header check",c.mode=ca;break}if((15&D)!==YN){t.msg="unknown compression method",c.mode=ca;break}if(D>>>=4,O-=4,we=8+(15&D),c.wbits===0&&(c.wbits=we),we>15||we>c.wbits){t.msg="invalid window size",c.mode=ca;break}c.dmax=1<>8&1),512&hA(c)&&4&c.wrap&&(st[0]=255&D,st[1]=D>>>8&255,c.check=nA(c.check,st,2,0)),D=0,O=0,c.mode=16182;case 16182:for(;O<32;){if(Q===0)break e;Q--,D+=u[_++]<>>8&255,st[2]=D>>>16&255,st[3]=D>>>24&255,c.check=nA(c.check,st,4,0)),D=0,O=0,c.mode=16183;case 16183:for(;O<16;){if(Q===0)break e;Q--,D+=u[_++]<>8),512&hA(c)&&4&c.wrap&&(st[0]=255&D,st[1]=D>>>8&255,c.check=nA(c.check,st,2,0)),D=0,O=0,c.mode=16184;case 16184:if(1024&hA(c)){for(;O<16;){if(Q===0)break e;Q--,D+=u[_++]<>>8&255,c.check=nA(c.check,st,2,0)),D=0,O=0}else c.head&&(c.head.extra=null);c.mode=16185;case 16185:if(1024&hA(c)&&(H=c.length,H>Q&&(H=Q),H&&(c.head&&(we=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Uint8Array(c.head.extra_len)),c.head.extra.set(u.subarray(_,_+H),we)),512&hA(c)&&4&c.wrap&&(c.check=nA(c.check,u,H,_)),Q-=H,_+=H,c.length-=H),c.length))break e;c.length=0,c.mode=16186;case 16186:if(2048&hA(c)){if(Q===0)break e;H=0;do we=u[_+H++],c.head&&we&&c.length<65536&&(c.head.name+=String.fromCharCode(we));while(we&&H>9&1,c.head.done=!0),t.adler=c.check=0,c.mode=Ku;break;case 16189:for(;O<32;){if(Q===0)break e;Q--,D+=u[_++]<>>=7&O,O-=7&O,c.mode=AQ;break}for(;O<3;){if(Q===0)break e;Q--,D+=u[_++]<>>=1,O-=1,3&D){case 0:c.mode=16193;break;case 1:if(N7(c),c.mode=aQ,s===R_){D>>>=2,O-=2;break e}break;case 2:c.mode=16196;break;case 3:t.msg="invalid block type",c.mode=ca}D>>>=2,O-=2;break;case 16193:for(D>>>=7&O,O-=7&O;O<32;){if(Q===0)break e;Q--,D+=u[_++]<>>16^65535)){t.msg="invalid stored block lengths",c.mode=ca;break}if(c.length=65535&D,D=0,O=0,c.mode=sQ,s===R_)break e;case sQ:c.mode=16195;case 16195:if(H=c.length,H){if(H>Q&&(H=Q),H>T&&(H=T),H===0)break e;h.set(u.subarray(_,_+H),B),Q-=H,_+=H,T-=H,B+=H,c.length-=H;break}c.mode=Ku;break;case 16196:for(;O<14;){if(Q===0)break e;Q--,D+=u[_++]<>>=5,O-=5,c.ndist=1+(31&D),D>>>=5,O-=5,c.ncode=4+(15&D),D>>>=4,O-=4,c.nlen>286||c.ndist>30){t.msg="too many length or distance symbols",c.mode=ca;break}c.have=0,c.mode=16197;case 16197:for(;c.have>>=3,O-=3}for(;c.have<19;)c.lens[ft[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,Xt={bits:c.lenbits},Ne=Vo(0,c.lens,0,19,c.lencode,0,c.work,Xt),c.lenbits=Xt.bits,Ne){t.msg="invalid code lengths set",c.mode=ca;break}c.have=0,c.mode=16198;case 16198:for(;c.have>>24,se=et>>>16&255,ge=65535&et,!(te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>>=te,O-=te,c.lens[c.have++]=ge;else{if(ge===16){for(lr=te+2;O>>=te,O-=te,c.have===0){t.msg="invalid bit length repeat",c.mode=ca;break}we=c.lens[c.have-1],H=3+(3&D),D>>>=2,O-=2}else if(ge===17){for(lr=te+3;O>>=te,O-=te,we=0,H=3+(7&D),D>>>=3,O-=3}else{for(lr=te+7;O>>=te,O-=te,we=0,H=11+(127&D),D>>>=7,O-=7}if(c.have+H>c.nlen+c.ndist){t.msg="invalid bit length repeat",c.mode=ca;break}for(;H--;)c.lens[c.have++]=we}}if(c.mode===ca)break;if(c.lens[256]===0){t.msg="invalid code -- missing end-of-block",c.mode=ca;break}if(c.lenbits=9,Xt={bits:c.lenbits},Ne=Vo(1,c.lens,0,c.nlen,c.lencode,0,c.work,Xt),c.lenbits=Xt.bits,Ne){t.msg="invalid literal/lengths set",c.mode=ca;break}if(c.distbits=6,c.distcode=c.distdyn,Xt={bits:c.distbits},Ne=Vo(2,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,Xt),c.distbits=Xt.bits,Ne){t.msg="invalid distances set",c.mode=ca;break}if(c.mode=aQ,s===R_)break e;case aQ:c.mode=T_;case T_:if(Q>=6&&T>=258){t.next_out=B,t.avail_out=T,t.next_in=_,t.avail_in=Q,c.hold=D,c.bits=O,T7(t,U),B=t.next_out,h=t.output,T=t.avail_out,_=t.next_in,u=t.input,Q=t.avail_in,D=c.hold,O=c.bits,c.mode===Ku&&(c.back=-1);break}for(c.back=0;et=c.lencode[D&(1<>>24,se=et>>>16&255,ge=65535&et,!(te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>me)],te=et>>>24,se=et>>>16&255,ge=65535&et,!(me+te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>>=me,O-=me,c.back+=me}if(D>>>=te,O-=te,c.back+=te,c.length=ge,se===0){c.mode=16205;break}if(32&se){c.back=-1,c.mode=Ku;break}if(64&se){t.msg="invalid literal/length code",c.mode=ca;break}c.extra=15&se,c.mode=16201;case 16201:if(c.extra){for(lr=c.extra;O>>=c.extra,O-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=16202;case 16202:for(;et=c.distcode[D&(1<>>24,se=et>>>16&255,ge=65535&et,!(te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>me)],te=et>>>24,se=et>>>16&255,ge=65535&et,!(me+te<=O);){if(Q===0)break e;Q--,D+=u[_++]<>>=me,O-=me,c.back+=me}if(D>>>=te,O-=te,c.back+=te,64&se){t.msg="invalid distance code",c.mode=ca;break}c.offset=ge,c.extra=15&se,c.mode=16203;case 16203:if(c.extra){for(lr=c.extra;O>>=c.extra,O-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){t.msg="invalid distance too far back",c.mode=ca;break}c.mode=16204;case 16204:if(T===0)break e;if(H=U-T,c.offset>H){if(H=c.offset-H,H>c.whave&&c.sane){t.msg="invalid distance too far back",c.mode=ca;break}H>c.wnext?(H-=c.wnext,$=c.wsize-H):$=c.wnext-H,H>c.length&&(H=c.length),Z=c.window}else Z=h,$=B-c.offset,H=c.length;H>T&&(H=T),T-=H,c.length-=H;do h[B++]=Z[$++];while(--H);c.length===0&&(c.mode=T_);break;case 16205:if(T===0)break e;h[B++]=c.length,T--,c.mode=T_;break;case AQ:if(c.wrap){for(;O<32;){if(Q===0)break e;Q--,D|=u[_++]<XN(t,15),inflateInit2:XN,inflate:O7,inflateEnd:t=>{if(Dh(t))return nd;let s=t.state;return s.window&&(s.window=null),t.state=null,wh},inflateGetHeader:(t,s)=>{if(Dh(t))return nd;const c=t.state;return 2&c.wrap?(c.head=s,s.done=!1,wh):nd},inflateSetDictionary:(t,s)=>{const c=s.length;let u,h,_;return Dh(t)?nd:(u=t.state,u.wrap!==0&&u.mode!==y_?nd:u.mode===y_&&(h=1,h=I_(h,s,c,0),h!==u.check)?HN:(_=$N(t,s,c,c),_?(u.mode=16210,D7):(u.havedict=1,wh)))},inflateInfo:"pako inflate (from Nodeca project)"},L7=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ZN=Object.prototype.toString,M7=fr.Z_NO_FLUSH,k7=fr.Z_FINISH,ip=fr.Z_OK,dQ=fr.Z_STREAM_END,uQ=fr.Z_NEED_DICT,P7=fr.Z_STREAM_ERROR,eO=fr.Z_DATA_ERROR,U7=fr.Z_MEM_ERROR;function w_(t){this.options=ZC.assign({chunkSize:65536,windowBits:15,to:""},t||{});const s=this.options;s.raw&&s.windowBits>=0&&s.windowBits<16&&(s.windowBits=-s.windowBits,s.windowBits===0&&(s.windowBits=-15)),!(s.windowBits>=0&&s.windowBits<16)||t&&t.windowBits||(s.windowBits+=32),s.windowBits>15&&s.windowBits<48&&!(15&s.windowBits)&&(s.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new rQ,this.strm.avail_out=0;let c=Hu.inflateInit2(this.strm,s.windowBits);if(c!==ip)throw new Error(Fg[c]);if(this.header=new L7,Hu.inflateGetHeader(this.strm,this.header),s.dictionary&&(typeof s.dictionary=="string"?s.dictionary=iI.string2buf(s.dictionary):ZN.call(s.dictionary)==="[object ArrayBuffer]"&&(s.dictionary=new Uint8Array(s.dictionary)),s.raw&&(c=Hu.inflateSetDictionary(this.strm,s.dictionary),c!==ip)))throw new Error(Fg[c])}function tO(t,s){const c=new w_(s);if(c.push(t),c.err)throw c.msg||Fg[c.err];return c.result}w_.prototype.push=function(t,s){const c=this.strm,u=this.options.chunkSize,h=this.options.dictionary;let _,B,Q;if(this.ended)return!1;for(B=s===~~s?s:s===!0?k7:M7,ZN.call(t)==="[object ArrayBuffer]"?c.input=new Uint8Array(t):c.input=t,c.next_in=0,c.avail_in=c.input.length;;){for(c.avail_out===0&&(c.output=new Uint8Array(u),c.next_out=0,c.avail_out=u),_=Hu.inflate(c,B),_===uQ&&h&&(_=Hu.inflateSetDictionary(c,h),_===ip?_=Hu.inflate(c,B):_===eO&&(_=uQ));c.avail_in>0&&_===dQ&&c.state.wrap>0&&t[c.next_in]!==0;)Hu.inflateReset(c),_=Hu.inflate(c,B);switch(_){case P7:case eO:case uQ:case U7:return this.onEnd(_),this.ended=!0,!1}if(Q=c.avail_out,c.next_out&&(c.avail_out===0||_===dQ))if(this.options.to==="string"){let T=iI.utf8border(c.output,c.next_out),D=c.next_out-T,O=iI.buf2string(c.output,T);c.next_out=D,c.avail_out=u-D,D&&c.output.set(c.output.subarray(T,T+D),0),this.onData(O)}else this.onData(c.output.length===c.next_out?c.output:c.output.subarray(0,c.next_out));if(_!==ip||Q!==0){if(_===dQ)return _=Hu.inflateEnd(this.strm),this.onEnd(_),this.ended=!0,!0;if(c.avail_in===0)break}}return!0},w_.prototype.onData=function(t){this.chunks.push(t)},w_.prototype.onEnd=function(t){t===ip&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=ZC.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var rO={inflate:tO,inflateRaw:function(t,s){return(s=s||{}).raw=!0,tO(t,s)}},iO,x7=__.deflate,nO=__.deflateRaw,F7=rO.inflate,gQ=rO.inflateRaw,fo=function(t){return t[t.CHOOSE_SERVER=11]="CHOOSE_SERVER",t[t.CLOUD_PROXY=18]="CLOUD_PROXY",t[t.CLOUD_PROXY_5=20]="CLOUD_PROXY_5",t[t.CLOUD_PROXY_FALLBACK=26]="CLOUD_PROXY_FALLBACK",t}(fo||{});function np(t){let s=!1;const c=[];for(let u=0;u0&&Hg[0]<4?1:+(Hg[0]+Hg[1])),!Jt&&oI&&(!(Hg=oI.match(/Edge\/(\d+)/))||Hg[1]>=74)&&(Hg=oI.match(/Chrome\/(\d+)/))&&(Jt=+Hg[1]);var Ap=Jt,fQ=Ap,Eq=xa,Lh=Ha.String,cp=!!Object.getOwnPropertySymbols&&!Eq(function(){var t=Symbol("symbol detection");return!Lh(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&fQ&&fQ<41}),Jg=cp&&!Symbol.sham&&typeof Symbol.iterator=="symbol",hq=qu,Iq=Ac,Ad=zd,tx=Object,Ya=Jg?function(t){return typeof t=="symbol"}:function(t){var s=hq("Symbol");return Iq(s)&&Ad(s.prototype,tx(t))},rx=String,Sl=function(t){try{return rx(t)}catch{return"Object"}},Cq=Ac,gO=Sl,pq=TypeError,U_=function(t){if(Cq(t))return t;throw new pq(gO(t)+" is not a function")},_Q=U_,fq=hQ,EO=function(t,s){var c=t[s];return fq(c)?void 0:_Q(c)},ix=ad,nx=Ac,x_=ml,hO=TypeError,ox={exports:{}},sx=Ha,_q=Object.defineProperty,mq=Ha,Mh="__core-js_shared__",$d=ox.exports=mq[Mh]||function(t,s){try{_q(sx,t,{value:s,configurable:!0,writable:!0})}catch{sx[t]=s}return s}(Mh,{});($d.versions||($d.versions=[])).push({version:"3.49.0",mode:"pure",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE",source:"https://github.com/zloirock/core-js"});var kh=ox.exports,Ph=kh,Wu=function(t,s){return Ph[t]||(Ph[t]=s||{})},sI=Yu,ax=Object,R1=function(t){return ax(sI(t))},Bq=R1,Uh=Ka({}.hasOwnProperty),ks=Object.hasOwn||function(t,s){return Uh(Bq(t),s)},Rl=Ka,Zo=0,F_=Math.random(),IO=Rl(1.1.toString),G_=function(t){return"Symbol("+(t===void 0?"":t)+")_"+IO(++Zo+F_,36)},lp=Wu,CO=ks,pO=G_,dp=cp,Xu=Jg,zu=Ha.Symbol,fO=lp("wks"),V_=Xu?zu.for||zu:zu&&zu.withoutSetter||pO,ja=function(t){return CO(fO,t)||(fO[t]=dp&&CO(zu,t)?zu[t]:V_("Symbol."+t)),fO[t]},Ax=ad,_O=ml,lx=Ya,Sq=EO,K_=TypeError,Rq=ja("toPrimitive"),mQ=function(t,s){if(!_O(t)||lx(t))return t;var c,u=Sq(t,Rq);if(u){if(c=Ax(u,t,s),!_O(c)||lx(c))return c;throw new K_("Can't convert object to primitive value")}return function(h,_){var B,Q;if(nx(B=h.toString)&&!x_(Q=ix(B,h))||nx(B=h.valueOf)&&!x_(Q=ix(B,h)))return Q;throw new hO("Can't convert object to primitive value")}(t)},dx=Ya,aI=function(t){var s=mQ(t,"string");return dx(s)?s:s+""},H_=Bl,ux=ap,gx=cc,BQ=bh,Ex=aI,yq=TypeError,mO=Object.defineProperty,SQ=Object.getOwnPropertyDescriptor,BO="enumerable",SO="configurable",RO="writable";sd.f=H_?gx?function(t,s,c){if(BQ(t),s=Ex(s),BQ(c),typeof t=="function"&&s==="prototype"&&"value"in c&&RO in c&&!c[RO]){var u=SQ(t,s);u&&u[RO]&&(t[s]=c.value,c={configurable:SO in c?c[SO]:u[SO],enumerable:BO in c?c[BO]:u[BO],writable:!1})}return mO(t,s,c)}:mO:function(t,s,c){if(BQ(t),s=Ex(s),BQ(c),ux)try{return mO(t,s,c)}catch{}if("get"in c||"set"in c)throw new yq("Accessors not supported");return"value"in c&&(t[s]=c.value),t};var RQ,xh,Y_,j_=function(t,s){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:s}},yQ=sd,Qq=j_,AI=Bl?function(t,s,c){return yQ.f(t,s,Qq(1,c))}:function(t,s,c){return t[s]=c,t},Tq=G_,hx=Wu("keys"),QQ=function(t){return hx[t]||(hx[t]=Tq(t))},TQ={},J_=N_,yO=Ha,wq=ml,wQ=AI,qg=ks,QO=kh,vq=QQ,cd=TQ,TO="Object already initialized",vQ=yO.TypeError,Dq=yO.WeakMap;if(J_||QO.state){var Zd=QO.state||(QO.state=new Dq);Zd.get=Zd.get,Zd.has=Zd.has,Zd.set=Zd.set,RQ=function(t,s){if(Zd.has(t))throw new vQ(TO);return s.facade=t,Zd.set(t,s),s},xh=function(t){return Zd.get(t)||{}},Y_=function(t){return Zd.has(t)}}else{var Wg=vq("state");cd[Wg]=!0,RQ=function(t,s){if(qg(t,Wg))throw new vQ(TO);return s.facade=t,wQ(t,Wg,s),s},xh=function(t){return qg(t,Wg)?t[Wg]:{}},Y_=function(t){return qg(t,Wg)}}var cI={set:RQ,get:xh,has:Y_,enforce:function(t){return Y_(t)?xh(t):RQ(t,{})},getterFor:function(t){return function(s){var c;if(!wq(s)||(c=xh(s)).type!==t)throw new vQ("Incompatible receiver, "+t+" required");return c}}},Xg=ac,DQ=Function.prototype,bQ=DQ.apply,q_=DQ.call,W_=typeof Reflect=="object"&&Reflect.apply||(Xg?q_.bind(bQ):function(){return q_.apply(bQ,arguments)}),wO=Yg,Ba=Ka,NQ=function(t){if(wO(t)==="Function")return Ba(t)},vO={},zg={},DO={}.propertyIsEnumerable,bO=Object.getOwnPropertyDescriptor,Ix=bO&&!DO.call({1:2},1);zg.f=Ix?function(t){var s=bO(this,t);return!!s&&s.enumerable}:DO;var Cx=Bl,NO=ad,OO=zg,px=j_,bq=od,fx=aI,Nq=ks,$g=ap,_x=Object.getOwnPropertyDescriptor;vO.f=Cx?_x:function(t,s){if(t=bq(t),s=fx(s),$g)try{return _x(t,s)}catch{}if(Nq(t,s))return px(!NO(OO.f,t,s),t[s])};var mx=xa,Oq=Ac,Lq=/#|\.prototype\./,Zg=function(t,s){var c=MO[LO(t)];return c===Bx||c!==Mq&&(Oq(s)?mx(s):!!s)},LO=Zg.normalize=function(t){return String(t).replace(Lq,".").toLowerCase()},MO=Zg.data={},Mq=Zg.NATIVE="N",Bx=Zg.POLYFILL="P",kq=Zg,OQ=U_,Sx=ac,Pq=NQ(NQ.bind),kO=function(t,s){return OQ(t),s===void 0?t:Sx?Pq(t,s):function(){return t.apply(s,arguments)}},X_=Ha,Uq=W_,xq=NQ,Fq=Ac,Gq=vO.f,Vq=kq,up=Nh,Rx=kO,Ep=AI,yx=ks,Kq=function(t){var s=function(c,u,h){if(this instanceof s){switch(arguments.length){case 0:return new t;case 1:return new t(c);case 2:return new t(c,u)}return new t(c,u,h)}return Uq(t,this,arguments)};return s.prototype=t.prototype,s},Fa=function(t,s){var c,u,h,_,B,Q,T,D,O,P=t.target,U=t.global,H=t.stat,$=t.proto,Z=U?X_:H?X_[P]:X_[P]&&X_[P].prototype,te=U?up:up[P]||Ep(up,P,{})[P],se=te.prototype;for(_ in s)u=!(c=Vq(U?_:P+(H?".":"#")+_,t.forced))&&Z&&yx(Z,_),Q=te[_],u&&(T=t.dontCallGetSet?(O=Gq(Z,_))&&O.value:Z[_]),B=u&&T?T:s[_],(c||$||typeof Q!=typeof B)&&(D=t.bind&&u?Rx(B,X_):t.wrap&&u?Kq(B):$&&Fq(B)?xq(B):B,(t.sham||B&&B.sham||Q&&Q.sham)&&Ep(D,"sham",!0),Ep(te,_,D),$&&(yx(up,h=P+"Prototype")||Ep(up,h,{}),Ep(up[h],_,B),t.real&&se&&(c||!se[_])&&Ep(se,_,B)))},PO=Bl,Qx=ks,hp=Function.prototype,Hq=PO&&Object.getOwnPropertyDescriptor,UO=Qx(hp,"name"),n1={PROPER:UO&&(function(){}).name==="something",CONFIGURABLE:UO&&(!PO||PO&&Hq(hp,"name").configurable)},xO={},Yq=Math.ceil,jq=Math.floor,Jq=Math.trunc||function(t){var s=+t;return(s>0?jq:Yq)(s)},FO=function(t){var s=+t;return s!=s||s===0?0:Jq(s)},qq=FO,Wq=Math.max,Tx=Math.min,wx=function(t,s){var c=qq(t);return c<0?Wq(c+s,0):Tx(c,s)},GO=FO,y1=Math.min,yl=function(t){return function(s){var c=GO(s);return c>0?y1(c,9007199254740991):0}(t.length)},vx=od,Dx=wx,Xq=yl,LQ=function(t){return function(s,c,u){var h=vx(s),_=Xq(h);if(_===0)return!t&&-1;var B,Q=Dx(u,_);if(t&&c!=c){for(;_>Q;)if((B=h[Q++])!=B)return!0}else for(;_>Q;Q++)if((t||Q in h)&&h[Q]===c)return t||Q||0;return!t&&-1}},VO={includes:LQ(!0),indexOf:LQ(!1)},Fh=ks,KO=od,bx=VO.indexOf,$u=TQ,Nx=Ka([].push),HO=function(t,s){var c,u=KO(t),h=0,_=[];for(c in u)!Fh($u,c)&&Fh(u,c)&&Nx(_,c);for(;s.length>h;)Fh(u,c=s[h++])&&(~bx(_,c)||Nx(_,c));return _},MQ=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],YO=HO,jO=MQ,eu=Object.keys||function(t){return YO(t,jO)},Un=Bl,Gh=cc,Ox=sd,zq=bh,$q=od,Zq=eu;xO.f=Un&&!Gh?Object.defineProperties:function(t,s){zq(t);for(var c,u=$q(s),h=Zq(s),_=h.length,B=0;_>B;)Ox.f(t,c=h[B++],u[c]);return t};var z_,eW=qu("document","documentElement"),tW=bh,rW=xO,kQ=MQ,Lx=TQ,iW=eW,nW=CQ,JO="prototype",$_="script",Mx=QQ("IE_PROTO"),PQ=function(){},kx=function(t){return"<"+$_+">"+t+""},qO=function(t){t.write(kx("")),t.close();var s=t.parentWindow.Object;return t=null,s},UQ=function(){try{z_=new ActiveXObject("htmlfile")}catch{}var t,s,c;UQ=typeof document<"u"?document.domain&&z_?qO(z_):(s=nW("iframe"),c="java"+$_+":",s.style.display="none",iW.appendChild(s),s.src=String(c),(t=s.contentWindow.document).open(),t.write(kx("document.F=Object")),t.close(),t.F):qO(z_);for(var u=kQ.length;u--;)delete UQ[JO][kQ[u]];return UQ()};Lx[Mx]=!0;var xn,WO,eE,xQ=Object.create||function(t,s){var c;return t!==null?(PQ[JO]=tW(t),c=new PQ,PQ[JO]=null,c[Mx]=t):c=UQ(),s===void 0?c:rW.f(c,s)},ld=!xa(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),tu=ks,Px=Ac,Ux=R1,xx=ld,XO=QQ("IE_PROTO"),FQ=Object,Fx=FQ.prototype,zO=xx?FQ.getPrototypeOf:function(t){var s=Ux(t);if(tu(s,XO))return s[XO];var c=s.constructor;return Px(c)&&s instanceof c?c.prototype:s instanceof FQ?Fx:null},Gx=AI,Z_=function(t,s,c,u){return u&&u.enumerable?t[s]=c:Gx(t,s,c),t},Vx=xa,Kx=Ac,Lo=ml,Hx=xQ,em=zO,oW=Z_,Ql=ja("iterator"),Vh=!1;js([])&&("next"in(eE=js(iO=[]).call(iO))?(WO=em(em(eE)))!==Object.prototype&&(xn=WO):Vh=!0);var sW=!Lo(xn)||Vx(function(){var t={};return xn[Ql].call(t)!==t});Kx((xn=sW?{}:Hx(xn))[Ql])||oW(xn,Ql,function(){return this});var Yx={IteratorPrototype:xn,BUGGY_SAFARI_ITERATORS:Vh},$O={};$O[ja("toStringTag")]="z";var GQ=String($O)==="[object z]",aW=GQ,zn=Ac,tm=Yg,VQ=ja("toStringTag"),AW=Object,Tl=tm(function(){return arguments}())==="Arguments",Ip=aW?tm:function(t){var s,c,u;return t===void 0?"Undefined":t===null?"Null":typeof(c=function(h,_){try{return h[_]}catch{}}(s=AW(t),VQ))=="string"?c:Tl?tm(s):(u=tm(s))==="Object"&&zn(s.callee)?"Arguments":u},cW=Ip,lW=GQ?{}.toString:function(){return"[object "+cW(this)+"]"},Yi=GQ,jx=sd.f,ru=AI,dW=ks,o1=lW,Nn=ja("toStringTag"),lI=function(t,s,c,u){var h=c?t:t&&t.prototype;h&&(dW(h,Nn)||jx(h,Nn,{configurable:!0,value:s}),u&&!Yi&&ru(h,"toString",o1))},KQ=Yx.IteratorPrototype,uW=xQ,Vc=j_,Jx=lI,gW=ju,iu=function(){return this},EW=Fa,qx=ad,hW=zO,IW=lI,Wx=Z_,ZO=ju,Ts=n1.PROPER,a=Yx.BUGGY_SAFARI_ITERATORS,A=ja("iterator"),l="keys",g="values",C="entries",m=function(){return this},y=function(t,s,c,u,h,_,B){(function(se,ge,me,Qe){var Oe=ge+" Iterator";se.prototype=uW(KQ,{next:Vc(1,me)}),Jx(se,Oe,!1,!0),gW[Oe]=iu})(c,s,u);var Q,T,D,O=function(se){if(se===h&&Z)return Z;if(!a&&se&&se in H)return H[se];switch(se){case l:case g:case C:return function(){return new c(this,se)}}return function(){return new c(this)}},P=s+" Iterator",U=!1,H=t.prototype,$=H[A]||H["@@iterator"]||h&&H[h],Z=!a&&$||O(h),te=s==="Array"&&H.entries||$;if(te&&(Q=hW(te.call(new t)))!==Object.prototype&&Q.next&&(IW(Q,P,!0,!0),ZO[P]=m),Ts&&h===g&&$&&$.name!==g&&(U=!0,Z=function(){return qx($,this)}),h)if(T={values:O(g),keys:_?Z:O(l),entries:O(C)},B)for(D in T)(a||U||!(D in H))&&Wx(H,D,T[D]);else EW({target:s,proto:!0,forced:a||U},T);return B&&H[A]!==Z&&Wx(H,A,Z,{}),ZO[s]=Z,T},w=function(t,s){return{value:t,done:s}},b=od,M=ju,k=cI;sd.f;var V=y,K=w,q="Array Iterator",ce=k.set,oe=k.getterFor(q);V(Array,"Array",function(t,s){ce(this,{type:q,target:b(t),index:0,kind:s})},function(){var t=oe(this),s=t.target,c=t.index++;if(!s||c>=s.length)return t.target=null,K(void 0,!0);switch(t.kind){case"keys":return K(c,!1);case"values":return K(s[c],!1)}return K([c,s[c]],!1)},"values"),M.Arguments=M.Array;var le=Ha,pe=lI,Se=ju;for(var be in{CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0})pe(le[be],be),Se[be]=Se.Array;var Ue=Ha,xe=Nh,Le=function(t,s){var c=xe[t+"Prototype"],u=c&&c[s];if(u)return u;var h=Ue[t],_=h&&h.prototype;return _&&_[s]},je=Le("Array","values"),dt=Ip,pt=ks,zt=zd,gr=je,li=Array.prototype,ii={DOMTokenList:!0,NodeList:!0},br=sc(function(t){var s=BA(t);return t===li||zt(li,t)&&s===BA(li)||pt(ii,dt(t))?gr:s}),Zi=Ha;Fa({global:!0,forced:Zi.globalThis!==Zi},{globalThis:Zi});var Hn=sc(Ha);function ut(){let t=0,s=0;for(let u=0;u<28;u+=7){let h=this.buf[this.pos++];if(t|=(127&h)<>4,(128&c)==0)return this.assertBounds(),[t,s];for(let u=3;u<=31;u+=7){let h=this.buf[this.pos++];if(s|=(127&h)<>>_,Q=!(!(B>>>7)&&s==0),T=255&(Q?128|B:B);if(c.push(T),!Q)return}const u=t>>>28&15|(7&s)<<4,h=!!(s>>3);if(c.push(255&(h?128|u:u)),h){for(let _=3;_<31;_+=7){const B=s>>>_,Q=!!(B>>>7),T=255&(Q?128|B:B);if(c.push(T),!Q)return}c.push(s>>>31&1)}}const Wt=4294967296;function It(t){const s=t[0]==="-";s&&(t=t.slice(1));const c=1e6;let u=0,h=0;function _(B,Q){const T=Number(t.slice(B,Q));h*=c,u=u*c+T,u>=Wt&&(h+=u/Wt|0,u%=Wt)}return _(-24,-18),_(-18,-12),_(-12,-6),_(-6),s?Pe(u,h):ve(u,h)}function ne(t,s){var c=function(D,O){return{lo:D>>>0,hi:O>>>0}}(t,s);if(t=c.lo,(s=c.hi)<=2097151)return String(Wt*s+t);const u=16777215&(t>>>24|s<<8),h=s>>16&65535;let _=(16777215&t)+6777216*u+6710656*h,B=u+8147497*h,Q=2*h;const T=1e7;return _>=T&&(B+=Math.floor(_/T),_%=T),B>=T&&(Q+=Math.floor(B/T),B%=T),Q.toString()+Lt(B)+Lt(_)}function ve(t,s){return{lo:0|t,hi:0|s}}function Pe(t,s){return s=~s,t?t=1+~t:s+=1,ve(t,s)}const Lt=t=>{const s=String(t);return"0000000".slice(s.length)+s};function Kr(t,s){if(t>=0){for(;t>127;)s.push(127&t|128),t>>>=7;s.push(t)}else{for(let c=0;c<9;c++)s.push(127&t|128),t>>=7;s.push(1)}}function co(){let t=this.buf[this.pos++],s=127&t;if(!(128&t))return this.assertBounds(),s;if(t=this.buf[this.pos++],s|=(127&t)<<7,(128&t)==0)return this.assertBounds(),s;if(t=this.buf[this.pos++],s|=(127&t)<<14,(128&t)==0)return this.assertBounds(),s;if(t=this.buf[this.pos++],s|=(127&t)<<21,(128&t)==0)return this.assertBounds(),s;t=this.buf[this.pos++],s|=(15&t)<<28;for(let c=5;128&t&&c<10;c++)t=this.buf[this.pos++];if(128&t)throw new Error("invalid varint");return this.assertBounds(),s>>>0}const _n=function(){const t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(Hn.Deno||typeof process!="object"||typeof o!="object"||o.BUF_BIGINT_DISABLE!=="1")){const s=BigInt("-9223372036854775808"),c=BigInt("9223372036854775807"),u=BigInt("0"),h=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(_){const B=typeof _=="bigint"?_:BigInt(_);if(B>c||Bh||B(t.setInt32(0,_,!0),t.setInt32(4,B,!0),t.getBigInt64(0,!0)),uDec:(_,B)=>(t.setInt32(0,_,!0),t.setInt32(4,B,!0),t.getBigUint64(0,!0))}}return{zero:"0",supported:!1,parse:s=>(typeof s!="string"&&(s=s.toString()),Kc(s),s),uParse:s=>(typeof s!="string"&&(s=s.toString()),tE(s),s),enc:s=>(typeof s!="string"&&(s=s.toString()),Kc(s),It(s)),uEnc:s=>(typeof s!="string"&&(s=s.toString()),tE(s),It(s)),dec:(s,c)=>function(u,h){let _=ve(u,h);const B=2147483648&_.hi;B&&(_=Pe(_.lo,_.hi));const Q=ne(_.lo,_.hi);return B?"-"+Q:Q}(s,c),uDec:(s,c)=>ne(s,c)}}();function Kc(t){if(!/^-?[0-9]+$/.test(t))throw new Error("invalid int64: "+t)}function tE(t){if(!/^[0-9]+$/.test(t))throw new Error("invalid uint64: "+t)}var Dt;function dd(t,s){switch(t){case Dt.STRING:return"";case Dt.BOOL:return!1;case Dt.DOUBLE:case Dt.FLOAT:return 0;case Dt.INT64:case Dt.UINT64:case Dt.SFIXED64:case Dt.FIXED64:case Dt.SINT64:return s?"0":_n.zero;case Dt.BYTES:return new Uint8Array(0);default:return 0}}(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(Dt||(Dt={}));const rm=2,lc=Symbol.for("reflect unsafe local");function Cp(t,s){const c=t[s.localName].case;return c===void 0?c:s.fields.find(u=>u.localName===c)}function nu(t,s){return Object.prototype.hasOwnProperty.call(t,s)&&t[s]!==void 0}function rE(t,s){if(s.oneof){const c=t[s.oneof.localName];return c.case===s.localName?c.value:void 0}return t[s.localName]}function e9(t,s,c){s.oneof?t[s.oneof.localName]={case:s.localName,value:c}:t[s.localName]=c}function HQ(t){for(const s of t.field)nu(s,"jsonName")||(s.jsonName=np(s.name));t.nestedType.forEach(HQ)}var ou=Yg,ud=Array.isArray||function(t){return ou(t)==="Array"},YQ=Fa,ws=ud,Ps=Ka(RI([])),to=[1,2];YQ({target:"Array",proto:!0,forced:String(to)===String(RI(to).call(to))},{reverse:function(){return ws(this)&&(this.length=this.length),Ps(this)}});var Q1=Le("Array","reverse"),su=zd,us=Q1,au=Array.prototype,ji=sc(function(t){var s=RI(t);return t===au||su(au,t)&&s===RI(au)?us:s});function*wl(t){switch(t.kind){case"file":for(const s of t.messages)yield s,yield*wl(s);yield*t.enums,yield*t.services,yield*t.extensions;break;case"message":for(const s of t.nestedMessages)yield s,yield*wl(s);yield*t.nestedEnums,yield*t.nestedExtensions}}function Kh(){const t=function(){const _=new Map,B=new Map,Q=new Map;return{kind:"registry",types:_,extendees:B,[Symbol.iterator]:()=>br(_).call(_),get files(){return br(Q).call(Q)},addFile(T,D,O){if(Q.set(T.proto.name,T),!D)for(const P of wl(T))this.add(P);if(O)for(const P of T.dependencies)this.addFile(P,D,O)},add(T){if(T.kind=="extension"){let D=B.get(T.extendee.typeName);D||B.set(T.extendee.typeName,D=new Map),D.set(T.number,T)}_.set(T.typeName,T)},get:T=>_.get(T),getFile:T=>Q.get(T),getMessage(T){const D=_.get(T);return(D==null?void 0:D.kind)=="message"?D:void 0},getEnum(T){const D=_.get(T);return(D==null?void 0:D.kind)=="enum"?D:void 0},getExtension(T){const D=_.get(T);return(D==null?void 0:D.kind)=="extension"?D:void 0},getExtensionFor(T,D){var O;return(O=B.get(T.typeName))===null||O===void 0?void 0:O.get(D)},getService(T){const D=_.get(T);return(D==null?void 0:D.kind)=="service"?D:void 0}}}();for(var s=arguments.length,c=new Array(s),u=0;u"file ".concat(t.name)},_=new Map,B={get:Q=>_.get(Q),add(Q){var T;iE(((T=Q.proto.options)===null||T===void 0?void 0:T.mapEntry)===!0),_.set(Q.typeName,Q)}};for(const Q of t.enumType)Uz(Q,h,void 0,s);for(const Q of t.messageType)xz(Q,h,void 0,s,B);for(const Q of t.service)Dne(Q,h,s);fW(h,s);for(const Q of br(_).call(_))_W(Q,s,B);for(const Q of h.messages)_W(Q,s,B),fW(Q,s);s.addFile(h,!0)}function fW(t,s){switch(t.kind){case"file":for(const c of t.proto.extension){const u=mW(c,t,s);t.extensions.push(u),s.add(u)}break;case"message":for(const c of t.proto.extension){const u=mW(c,t,s);t.nestedExtensions.push(u),s.add(u)}for(const c of t.nestedMessages)fW(c,s)}}function _W(t,s,c){const u=t.proto.oneofDecl.map(_=>function(B,Q){return{kind:"oneof",proto:B,deprecated:!1,parent:Q,fields:[],name:B.name,localName:op(np(B.name)),toString(){return"oneof ".concat(Q.typeName,".").concat(this.name)}}}(_,t)),h=new Set;for(const _ of t.proto.field){const B=Lne(_,u),Q=mW(_,t,s,B,c);t.fields.push(Q),t.field[Q.localName]=Q,B===void 0?t.members.push(Q):(B.fields.push(Q),h.has(B)||(h.add(B),t.members.push(B)))}for(const _ of u.filter(B=>h.has(B)))t.oneofs.push(_);for(const _ of t.nestedMessages)_W(_,s,c)}function Uz(t,s,c,u){var h,_,B,Q,T;const D=function(P,U){const H=(($=P).substring(0,1)+$.substring(1).replace(/[A-Z]/g,Z=>"_"+Z)).toLowerCase()+"_";var $;for(const Z of U){if(!Z.name.toLowerCase().startsWith(H))return;const te=Z.name.substring(H.length);if(te.length==0||/^\d/.test(te))return}return H}(t.name,t.value),O={kind:"enum",proto:t,deprecated:(_=(h=t.options)===null||h===void 0?void 0:h.deprecated)!==null&&_!==void 0&&_,file:s,parent:c,open:!0,name:t.name,typeName:Xx(t,c,s),value:{},values:[],sharedPrefix:D,toString(){return"enum ".concat(this.typeName)}};O.open=function(P){var U;return vne==jQ("enumType",{proto:P.proto,parent:(U=P.parent)!==null&&U!==void 0?U:P.file})}(O),u.add(O);for(const P of t.value){const U=P.name;br(O).push(O.value[P.number]={kind:"enum_value",proto:P,deprecated:(Q=(B=P.options)===null||B===void 0?void 0:B.deprecated)!==null&&Q!==void 0&&Q,parent:O,name:U,localName:op(D==null?U:U.substring(D.length)),number:P.number,toString:()=>"enum value ".concat(O.typeName,".").concat(U)})}((T=c==null?void 0:c.nestedEnums)!==null&&T!==void 0?T:s.enums).push(O)}function xz(t,s,c,u,h){var _,B,Q,T;const D={kind:"message",proto:t,deprecated:(B=(_=t.options)===null||_===void 0?void 0:_.deprecated)!==null&&B!==void 0&&B,file:s,parent:c,name:t.name,typeName:Xx(t,c,s),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return"message ".concat(this.typeName)}};((Q=t.options)===null||Q===void 0?void 0:Q.mapEntry)===!0?h.add(D):(((T=c==null?void 0:c.nestedMessages)!==null&&T!==void 0?T:s.messages).push(D),u.add(D));for(const O of t.enumType)Uz(O,s,D,u);for(const O of t.nestedType)xz(O,s,D,u,h)}function Dne(t,s,c){var u,h;const _={kind:"service",proto:t,deprecated:(h=(u=t.options)===null||u===void 0?void 0:u.deprecated)!==null&&h!==void 0&&h,file:s,name:t.name,typeName:Xx(t,void 0,s),methods:[],method:{},toString(){return"service ".concat(this.typeName)}};s.services.push(_),c.add(_);for(const B of t.method){const Q=bne(B,_,c);_.methods.push(Q),_.method[Q.localName]=Q}}function bne(t,s,c){var u,h,_,B;let Q;Q=t.clientStreaming&&t.serverStreaming?"bidi_streaming":t.clientStreaming?"client_streaming":t.serverStreaming?"server_streaming":"unary";const T=c.getMessage(dI(t.inputType)),D=c.getMessage(dI(t.outputType));iE(T,"invalid MethodDescriptorProto: input_type ".concat(t.inputType," not found")),iE(D,"invalid MethodDescriptorProto: output_type ".concat(t.inputType," not found"));const O=t.name;return{kind:"rpc",proto:t,deprecated:(h=(u=t.options)===null||u===void 0?void 0:u.deprecated)!==null&&h!==void 0&&h,parent:s,name:O,localName:op(O.length?op(O[0].toLowerCase()+O.substring(1)):O),methodKind:Q,input:T,output:D,idempotency:(B=(_=t.options)===null||_===void 0?void 0:_.idempotencyLevel)!==null&&B!==void 0?B:yne,toString:()=>"rpc ".concat(s.typeName,".").concat(O)}}function mW(t,s,c,u,h){var _,B,Q;const T=h===void 0,D={kind:"field",proto:t,deprecated:(B=(_=t.options)===null||_===void 0?void 0:_.deprecated)!==null&&B!==void 0&&B,name:t.name,number:t.number,scalar:void 0,message:void 0,enum:void 0,presence:Mne(t,u,T,s),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(T){const H=s.kind=="file"?s:s.file,$=s.kind=="file"?void 0:s,Z=Xx(t,$,H);D.kind="extension",D.file=H,D.parent=$,D.oneof=void 0,D.typeName=Z,D.jsonName="[".concat(Z,"]"),D.toString=()=>"extension ".concat(Z);const te=c.getMessage(dI(t.extendee));iE(te,"invalid FieldDescriptorProto: extendee ".concat(t.extendee," not found")),D.extendee=te}else{const H=s;iE(H.kind=="message"),D.parent=H,D.oneof=u,D.localName=u?np(t.name):op(np(t.name)),D.jsonName=t.jsonName,D.toString=()=>"field ".concat(H.typeName,".").concat(t.name)}const O=t.label,P=t.type,U=(Q=t.options)===null||Q===void 0?void 0:Q.jstype;if(O===CW){const H=P==r9?h==null?void 0:h.get(dI(t.typeName)):void 0;if(H){D.fieldKind="map";const $=function(se){const ge=se.fields.find(Qe=>Qe.number===1),me=se.fields.find(Qe=>Qe.number===2);return iE(ge&&ge.fieldKind=="scalar"&&ge.scalar!=Dt.BYTES&&ge.scalar!=Dt.FLOAT&&ge.scalar!=Dt.DOUBLE&&me&&me.fieldKind!="list"&&me.fieldKind!="map"),{key:ge,value:me}}(H),Z=$.key,te=$.value;return D.mapKey=Z.scalar,D.mapKind=te.fieldKind,D.message=te.message,D.delimitedEncoding=!1,D.enum=te.enum,D.scalar=te.scalar,D}switch(D.fieldKind="list",P){case r9:case t9:D.listKind="message",D.message=c.getMessage(dI(t.typeName)),iE(D.message),D.delimitedEncoding=Fz(t,s);break;case Oz:D.listKind="enum",D.enum=c.getEnum(dI(t.typeName)),iE(D.enum);break;default:D.listKind="scalar",D.scalar=P,D.longAsString=U==Lz}return D.packed=function($,Z){if($.label!=CW)return!1;switch($.type){case Bne:case Sne:case t9:case r9:return!1}const te=$.options;return te&&nu(te,"packed")?te.packed:Tne==jQ("repeatedFieldEncoding",{proto:$,parent:Z})}(t,s),D}switch(P){case r9:case t9:D.fieldKind="message",D.message=c.getMessage(dI(t.typeName)),iE(D.message,"invalid FieldDescriptorProto: type_name ".concat(t.typeName," not found")),D.delimitedEncoding=Fz(t,s),D.getDefaultValue=()=>{};break;case Oz:{const H=c.getEnum(dI(t.typeName));iE(H!==void 0,"invalid FieldDescriptorProto: type_name ".concat(t.typeName," not found")),D.fieldKind="enum",D.enum=c.getEnum(dI(t.typeName)),D.getDefaultValue=()=>nu(t,"defaultValue")?function($,Z){const te=br($).find(se=>se.name===Z);if(!te)throw new Error("cannot parse ".concat($," default value: ").concat(Z));return te.number}(H,t.defaultValue):void 0;break}default:D.fieldKind="scalar",D.scalar=P,D.longAsString=U==Lz,D.getDefaultValue=()=>nu(t,"defaultValue")?function(H,$){switch(H){case Dt.STRING:return $;case Dt.BYTES:{const Z=function(te){const se=[],ge={tail:te,c:"",next(){return this.tail.length!=0&&(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(me){if(this.tail.length>=me){const Qe=this.tail.substring(0,me);return this.tail=this.tail.substring(me),Qe}return!1}};for(;ge.next();)if(ge.c==="\\"){if(ge.next())switch(ge.c){case"\\":se.push(ge.c.charCodeAt(0));break;case"b":se.push(8);break;case"f":se.push(12);break;case"n":se.push(10);break;case"r":se.push(13);break;case"t":se.push(9);break;case"v":se.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{const me=ge.c,Qe=ge.take(2);if(Qe===!1)return!1;const Oe=parseInt(me+Qe,8);if(Number.isNaN(Oe))return!1;se.push(Oe);break}case"x":{const me=ge.c,Qe=ge.take(2);if(Qe===!1)return!1;const Oe=parseInt(me+Qe,16);if(Number.isNaN(Oe))return!1;se.push(Oe);break}case"u":{const me=ge.c,Qe=ge.take(4);if(Qe===!1)return!1;const Oe=parseInt(me+Qe,16);if(Number.isNaN(Oe))return!1;const we=new Uint8Array(4);new DataView(we.buffer).setInt32(0,Oe,!0),se.push(we[0],we[1],we[2],we[3]);break}case"U":{const me=ge.c,Qe=ge.take(8);if(Qe===!1)return!1;const Oe=_n.uEnc(me+Qe),we=new Uint8Array(8),Ne=new DataView(we.buffer);Ne.setInt32(0,Oe.lo,!0),Ne.setInt32(4,Oe.hi,!0),se.push(we[0],we[1],we[2],we[3],we[4],we[5],we[6],we[7]);break}}}else se.push(ge.c.charCodeAt(0));return new Uint8Array(se)}($);if(Z===!1)throw new Error("cannot parse ".concat(Dt[H]," default value: ").concat($));return Z}case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:return _n.parse($);case Dt.UINT64:case Dt.FIXED64:return _n.uParse($);case Dt.DOUBLE:case Dt.FLOAT:switch($){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return Number.NaN;default:return parseFloat($)}case Dt.BOOL:return $==="true";case Dt.INT32:case Dt.UINT32:case Dt.SINT32:case Dt.FIXED32:case Dt.SFIXED32:return parseInt($,10)}}(P,t.defaultValue):void 0}return D}function Nne(t){switch(t.syntax){case"":case"proto2":return Zu;case"proto3":return mne;case"editions":if(t.edition in kz)return t.edition;throw new Error("".concat(t.name,": unsupported edition"));default:throw new Error("".concat(t.name,': unsupported syntax "').concat(t.syntax,'"'))}}function One(t,s){return t.dependency.map(c=>{const u=s.getFile(c);if(!u)throw new Error("Cannot find ".concat(c,", imported by ").concat(t.name));return u})}function Xx(t,s,c){let u;return u=s?"".concat(s.typeName,".").concat(t.name):c.proto.package.length>0?"".concat(c.proto.package,".").concat(t.name):"".concat(t.name),u}function dI(t){return t.startsWith(".")?t.substring(1):t}function Lne(t,s){if(!nu(t,"oneofIndex")||t.proto3Optional)return;const c=s[t.oneofIndex];return iE(c,"invalid FieldDescriptorProto: oneof #".concat(t.oneofIndex," for field #").concat(t.number," not found")),c}function Mne(t,s,c,u){if(t.label==Rne)return Qne;if(t.label==CW)return Mz;if(s||t.proto3Optional||c)return pW;const h=jQ("fieldPresence",{proto:t,parent:u});return h!=Mz||t.type!=r9&&t.type!=t9?h:pW}function Fz(t,s){return t.type==t9||wne==jQ("messageEncoding",{proto:t,parent:s})}function jQ(t,s){var c,u;const h=(c=s.proto.options)===null||c===void 0?void 0:c.features;if(h){const _=h[t];if(_!=0)return _}if("kind"in s){if(s.kind=="message")return jQ(t,(u=s.parent)!==null&&u!==void 0?u:s.file);const _=kz[s.edition];if(!_)throw new Error("feature default for edition ".concat(s.edition," not found"));return _[t]}return jQ(t,s.parent)}function iE(t,s){if(!t)throw new Error(s)}function Gz(t){var s,c,u,h,_,B,Q,T;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:t.name,field:(c=(s=t.field)===null||s===void 0?void 0:s.map(kne))!==null&&c!==void 0?c:[],extension:[],nestedType:(h=(u=t.nestedType)===null||u===void 0?void 0:u.map(Gz))!==null&&h!==void 0?h:[],enumType:(B=(_=t.enumType)===null||_===void 0?void 0:_.map(Vz))!==null&&B!==void 0?B:[],extensionRange:(T=(Q=t.extensionRange)===null||Q===void 0?void 0:Q.map(O=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},O)))!==null&&T!==void 0?T:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function kne(t){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},t),{options:t.options?Pne(t.options):void 0}))}function Pne(t){var s,c,u;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},t),{targets:(s=t.targets)!==null&&s!==void 0?s:[],editionDefaults:(u=(c=t.editionDefaults)===null||c===void 0?void 0:c.map(_=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},_)))!==null&&u!==void 0?u:[],uninterpretedOption:[]}))}function Vz(t){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:t.name,reservedName:[],reservedRange:[],value:t.value.map(c=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},c))})}function Kz(t){const s=function(){if(!JQ){JQ=[];const T=Yz("std");for(let D=0;D>4,Q=u,B=2;break;case 2:h[_++]=(15&Q)<<4|(60&u)>>2,Q=u,B=3;break;case 3:h[_++]=(3&Q)<<6|u,B=0}}if(B==1)throw Error("invalid base64 string");return h.subarray(0,_)}let zx,Hz,JQ;function Yz(t){return zx||(zx="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),Hz=zx.slice(0,-2).concat("-","_")),t=="url"?Hz:zx}Fa({target:"Array",stat:!0},{isArray:ud});var Une=sc(Nh.Array.isArray),xne=TypeError,jz=function(t){if(t>9007199254740991)throw new xne("Maximum allowed index exceeded");return t},Fne=Bl,Gne=sd,Vne=j_,$x=function(t,s,c){Fne?Gne.f(t,s,Vne(0,c)):t[s]=c},Kne=Bl,Hne=ud,Yne=TypeError,jne=Object.getOwnPropertyDescriptor,Zx=Kne&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}()?function(t,s){if(Hne(t)&&!jne(t,"length").writable)throw new Yne("Cannot set read only .length");return t.length=s}:function(t,s){return t.length=s},Jne=Ac,BW=kh,qne=Ka(Function.toString);Jne(BW.inspectSource)||(BW.inspectSource=function(t){return qne(t)});var Wne=BW.inspectSource,Xne=Ka,zne=xa,Jz=Ac,$ne=Ip,Zne=Wne,qz=function(){},Wz=qu("Reflect","construct"),SW=/^\s*(?:class|function)\b/,eoe=Xne(SW.exec),toe=!SW.test(qz),i9=function(t){if(!Jz(t))return!1;try{return Wz(qz,[],t),!0}catch{return!1}},Xz=function(t){if(!Jz(t))return!1;switch($ne(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return toe||!!eoe(SW,Zne(t))}catch{return!0}};Xz.sham=!0;var RW=!Wz||zne(function(){var t;return i9(i9.call)||!i9(Object)||!i9(function(){t=!0})||t})?Xz:i9,zz=ud,roe=RW,ioe=ml,noe=ja("species"),$z=Array,Zz=function(t,s){return new(function(c){var u;return zz(c)&&(u=c.constructor,(roe(u)&&(u===$z||zz(u.prototype))||ioe(u)&&(u=u[noe])===null)&&(u=void 0)),u===void 0?$z:u}(t))(s===0?0:s)},ooe=xa,soe=Ap,aoe=ja("species"),e$=function(t){return soe>=51||!ooe(function(){var s=[];return(s.constructor={})[aoe]=function(){return{foo:1}},s[t](Boolean).foo!==1})},Aoe=Fa,coe=xa,loe=ud,doe=ml,uoe=R1,goe=yl,t$=jz,r$=$x,Eoe=Zx,hoe=Zz,Ioe=e$,Coe=Ap,i$=ja("isConcatSpreadable"),poe=Coe>=51||!coe(function(){var t=[];return t[i$]=!1,t.concat()[0]!==t}),foe=function(t){if(!doe(t))return!1;var s=t[i$];return s!==void 0?!!s:loe(t)};Aoe({target:"Array",proto:!0,forced:!poe||!Ioe("concat")},{concat:function(t){var s,c,u,h,_,B=uoe(this),Q=hoe(B,0),T=0;for(s=-1,u=arguments.length;sse;se++)if((Q||se in $)&&(U=te(P=$[se],se,H),t))if(s)wW(me,se,U);else if(U)switch(t){case 3:return!0;case 5:return P;case 6:return se;case 2:wW(me,ge++,P)}else switch(t){case 4:return!1;case 7:wW(me,ge++,P)}return _?-1:u||h?h:me}},Goe={forEach:Foe(0)},tF=Fa,n9=Ha,vW=ad,Voe=Ka,qQ=Bl,WQ=cp,Koe=xa,kA=ks,Hoe=zd,DW=bh,rF=od,bW=aI,Yoe=pp,NW=j_,XQ=xQ,l$=eu,joe=yW,d$=n$,Joe=QW,u$=vO,g$=sd,qoe=xO,E$=zg,h$=Z_,OW=Wu,I$=TQ,C$=G_,Woe=ja,Xoe=TW,zoe=Ja,$oe=A$,Zoe=lI,p$=cI,iF=Goe.forEach,Hc=QQ("hidden"),nF="Symbol",o9="prototype",ese=p$.set,f$=p$.getterFor(nF),nE=Object[o9],zQ=n9.Symbol,oF=zQ&&zQ[o9],tse=n9.RangeError,rse=n9.TypeError,LW=n9.QObject,_$=u$.f,im=g$.f,m$=d$.f,ise=E$.f,B$=Voe([].push),uI=OW("symbols"),s9=OW("op-symbols"),nse=OW("wks"),MW=!LW||!LW[o9]||!LW[o9].findChild,S$=function(t,s,c){var u=_$(nE,s);return u&&delete nE[s],im(t,s,c),u&&t!==nE&&im(nE,s,u),t},kW=qQ&&Koe(function(){return XQ(im({},"a",{get:function(){return im(this,"a",{value:7}).a}})).a!==7})?S$:im,PW=function(t,s){var c=uI[t]=XQ(oF);return ese(c,{type:nF,tag:t,description:s}),qQ||(c.description=s),c},sF=function(t,s,c){t===nE&&sF(s9,s,c),DW(t);var u=bW(s);return DW(c),kA(uI,u)?(("enumerable"in c?!c.enumerable:!kA(t,u)||kA(t,Hc)&&t[Hc][u])?(kA(t,Hc)||im(t,Hc,NW(1,XQ(null))),t[Hc][u]=!0):(kA(t,Hc)&&t[Hc][u]&&(t[Hc][u]=!1),c=XQ(c,{enumerable:NW(0,!1)})),kW(t,u,c)):im(t,u,c)},UW=function(t,s){DW(t);var c=rF(s),u=l$(c).concat(T$(c));return iF(u,function(h){qQ&&!vW(R$,c,h)||sF(t,h,c[h])}),t},R$=function(t){var s=bW(t),c=vW(ise,this,s);return!(this===nE&&kA(uI,s)&&!kA(s9,s))&&(!(c||!kA(this,s)||!kA(uI,s)||kA(this,Hc)&&this[Hc][s])||c)},y$=function(t,s){var c=rF(t),u=bW(s);if(c!==nE||!kA(uI,u)||kA(s9,u)){var h=_$(c,u);return!h||!kA(uI,u)||kA(c,Hc)&&c[Hc][u]||(h.enumerable=!0),h}},Q$=function(t){var s=m$(rF(t)),c=[];return iF(s,function(u){kA(uI,u)||kA(I$,u)||B$(c,u)}),c},T$=function(t){var s=t===nE,c=m$(s?s9:rF(t)),u=[];return iF(c,function(h){!kA(uI,h)||s&&!kA(nE,h)||B$(u,uI[h])}),u};WQ||(h$(oF=(zQ=function(){if(Hoe(oF,this))throw new rse("Symbol is not a constructor");var t=arguments.length&&arguments[0]!==void 0?Yoe(arguments[0]):void 0,s=C$(t),c=function(u){var h=this===void 0?n9:this;h===nE&&vW(c,s9,u),kA(h,Hc)&&kA(h[Hc],s)&&(h[Hc][s]=!1);var _=NW(1,u);try{kW(h,s,_)}catch(B){if(!(B instanceof tse))throw B;S$(h,s,_)}};return qQ&&MW&&kW(nE,s,{configurable:!0,set:c}),PW(s,t)})[o9],"toString",function(){return f$(this).tag}),h$(zQ,"withoutSetter",function(t){return PW(C$(t),t)}),E$.f=R$,g$.f=sF,qoe.f=UW,u$.f=y$,joe.f=d$.f=Q$,Joe.f=T$,Xoe.f=function(t){return PW(Woe(t),t)},qQ&&function(t,s,c){Toe.f(t,s,c)}(oF,"description",{configurable:!0,get:function(){return f$(this).description}})),tF({global:!0,wrap:!0,forced:!WQ,sham:!WQ},{Symbol:zQ}),iF(l$(nse),function(t){zoe(t)}),tF({target:nF,stat:!0,forced:!WQ},{useSetter:function(){MW=!0},useSimple:function(){MW=!1}}),tF({target:"Object",stat:!0,forced:!WQ,sham:!qQ},{create:function(t,s){return s===void 0?XQ(t):UW(XQ(t),s)},defineProperty:sF,defineProperties:UW,getOwnPropertyDescriptor:y$}),tF({target:"Object",stat:!0,forced:!WQ},{getOwnPropertyNames:Q$}),$oe(),Zoe(zQ,nF),I$[Hc]=!0;var w$=cp&&!!Symbol.for&&!!Symbol.keyFor,ose=Fa,sse=qu,ase=ks,Ase=pp,v$=Wu,cse=w$,xW=v$("string-to-symbol-registry"),lse=v$("symbol-to-string-registry");ose({target:"Symbol",stat:!0,forced:!cse},{for:function(t){var s=Ase(t);if(ase(xW,s))return xW[s];var c=sse("Symbol")(s);return xW[s]=c,lse[c]=s,c}});var dse=Fa,gse=ks,Ese=Ya,hse=Sl,Ise=w$,D$=Wu("symbol-to-string-registry");dse({target:"Symbol",stat:!0,forced:!Ise},{keyFor:function(t){if(!Ese(t))throw new TypeError(hse(t)+" is not a symbol");if(gse(D$,t))return D$[t]}});var Cse=ml,pse=cI.get,FW=Ka,fse=ks,aF=SyntaxError,_se=parseInt,mse=String.fromCharCode,Bse=FW("".charAt),b$=FW("".slice),N$=FW(/./.exec),O$={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":` -`,"\\r":"\r","\\t":" "},Sse=/^[\da-f]{4}$/i,Rse=/^[\u0000-\u001F]$/,yse=!xa(function(){var t="9007199254740993",s=JSON.rawJSON(t);return!JSON.isRawJSON(s)||JSON.stringify(s)!==t}),Qse=Fa,L$=qu,Tse=W_,M$=ad,nm=Ka,k$=xa,P$=ud,AF=Ac,U$=Ya,x$=Yg,wse=pp,vse=eF,Dse=function(t,s){for(var c=!0,u="";s=Q?t?"":void 0:(u=nZ(_,B))<55296||u>56319||B+1===Q||(h=nZ(_,B+1))<56320||h>57343?t?sae(_,B):u:t?aae(_,B,B+2):h-56320+(u-55296<<10)+65536}},cae=Aae(!0),lae=pp,oZ=cI,dae=y,sZ=w,aZ="String Iterator",uae=oZ.set,gae=oZ.getterFor(aZ);dae(String,"String",function(t){uae(this,{type:aZ,string:lae(t),index:0})},function(){var t,s=gae(this),c=s.string,u=s.index;return u>=c.length?sZ(void 0,!0):(t=cae(c,u),s.index+=t.length,sZ(t,!1))});var Eae=Ip,AZ=EO,hae=hQ,Iae=ju,Cae=ja("iterator"),WW=function(t){if(!hae(t))return AZ(t,Cae)||AZ(t,"@@iterator")||Iae[Eae(t)]},pae=sc(WW),fae=R1,_ae=yl,mae=Zx,Bae=jz;Fa({target:"Array",proto:!0,forced:xa(function(){return[].push.call({length:4294967296},1)!==4294967297})||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}()},{push:function(t){var s=fae(this),c=_ae(s),u=arguments.length;Bae(c+u);for(var h=0;h1?arguments[1]:void 0,h=u!==void 0;h&&(u=rAe(u,c>2?arguments[2]:void 0));var _,B,Q,T,D,O,P=nAe(t),U=dAe(P),H=0;if(!U||this===EZ&&sAe(U))for(_=AAe(P),B=s?new this(_):EZ(_);_>H;H++)O=h?u(P[H],H):P[H],gZ(B,H,O);else for(B=s?new this:[],D=(T=lAe(P,U)).next;!(Q=iAe(D,T)).done;H++){O=h?oAe(T,u,[Q.value,H],!0):Q.value;try{gZ(B,H,O)}catch($){uAe(T,"throw",$)}}return cAe(B,H),B}});var EAe=sc(Nh.Array.from);function pZ(t,s){(s==null||s>t.length)&&(s=t.length);for(var c=0,u=new Array(s);c0;)t[h]=t[--h];h!==_++&&(t[h]=u)}else for(var B=IAe(c/2),Q=ZW(_Z(t,0,B),s),T=ZW(_Z(t,B),s),D=Q.length,O=T.length,P=0,U=0;P3)){if(wAe)return!0;if(vZ)return vZ<603;var t,s,c,u,h="";for(t=65;t<76;t++){switch(s=String.fromCharCode(t),t){case 66:case 69:case 70:case 72:c=3;break;case 68:case 71:c=4;break;default:c=2}for(u=0;u<47;u++)oE.push({k:s+u,v:c})}for(x1(oE).call(oE,function(_,B){return B.v-_.v}),u=0;uO?1:-1}}(t)),c=yZ(h),u=0;u1?arguments[1]:void 0)}});var qAe=Le("Array","includes"),WAe=ml,XAe=Yg,zAe=ja("match"),$Ae=TypeError,ZAe=ja("match"),e1e=Fa,t1e=function(t){if(function(s){var c;return WAe(s)&&((c=s[zAe])!==void 0?!!c:XAe(s)==="RegExp")}(t))throw new $Ae("The method doesn't accept regular expressions");return t},r1e=Yu,OZ=pp,i1e=Ka("".indexOf);e1e({target:"String",proto:!0,forced:!function(t){var s=/./;try{"/./"[t](s)}catch{try{return s[ZAe]=!1,"/./"[t](s)}catch{}}return!1}("includes")},{includes:function(t){return!!~i1e(OZ(r1e(this)),OZ(t1e(t)),arguments.length>1?arguments[1]:void 0)}});var n1e=Le("String","includes"),LZ=zd,o1e=qAe,s1e=n1e,nX=Array.prototype,oX=String.prototype,dF=sc(function(t){var s=Et(t);return t===nX||LZ(nX,t)&&s===Et(nX)?o1e:typeof t=="string"||t===oX||LZ(oX,t)&&s===Et(oX)?s1e:s});const MZ=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"];class gd extends Error{constructor(s,c){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"FieldValueInvalidError";super(c),this.name=u,this.field=()=>s}}function mp(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function sX(t,s){var c,u,h,_;if(mp(t)&&lc in t&&"add"in t&&"field"in t&&typeof t.field=="function"){if(s!==void 0){const B=s,Q=t.field();return B.listKind==Q.listKind&&B.scalar===Q.scalar&&((c=B.message)===null||c===void 0?void 0:c.typeName)===((u=Q.message)===null||u===void 0?void 0:u.typeName)&&((h=B.enum)===null||h===void 0?void 0:h.typeName)===((_=Q.enum)===null||_===void 0?void 0:_.typeName)}return!0}return!1}function aX(t,s){var c,u,h,_;if(mp(t)&&lc in t&&"has"in t&&"field"in t&&typeof t.field=="function"){if(s!==void 0){const B=s,Q=t.field();return B.mapKey===Q.mapKey&&B.mapKind==Q.mapKind&&B.scalar===Q.scalar&&((c=B.message)===null||c===void 0?void 0:c.typeName)===((u=Q.message)===null||u===void 0?void 0:u.typeName)&&((h=B.enum)===null||h===void 0?void 0:h.typeName)===((_=Q.enum)===null||_===void 0?void 0:_.typeName)}return!0}return!1}function AX(t,s){return mp(t)&&lc in t&&"desc"in t&&mp(t.desc)&&t.desc.kind==="message"&&(s===void 0||t.desc.typeName==s.typeName)}const cX=Symbol.for("@bufbuild/protobuf/text-encoding");function lX(){if(Hn[cX]==null){const t=new Hn.TextEncoder,s=new Hn.TextDecoder;Hn[cX]={encodeUtf8:c=>t.encode(c),decodeUtf8:c=>s.decode(c),checkUtf8(c){try{return encodeURIComponent(c),!0}catch{return!1}}}}return Hn[cX]}var fA;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(fA||(fA={}));const kZ=34028234663852886e22,PZ=-34028234663852886e22,UZ=4294967295,xZ=2147483647,FZ=-2147483648;class GZ{constructor(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:lX().encodeUtf8;this.encodeUtf8=s,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let s=0;for(let h=0;h>>0)}raw(s){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(s),this}uint32(s){for(VZ(s);s>127;)this.buf.push(127&s|128),s>>>=7;return this.buf.push(s),this}int32(s){return uX(s),Kr(s,this.buf),this}bool(s){return this.buf.push(s?1:0),this}bytes(s){return this.uint32(s.byteLength),this.raw(s)}string(s){let c=this.encodeUtf8(s);return this.uint32(c.byteLength),this.raw(c)}float(s){(function(u){if(typeof u=="string"){const h=u;if(u=Number(u),Number.isNaN(u)&&h!=="NaN")throw new Error("invalid float32: "+h)}else if(typeof u!="number")throw new Error("invalid float32: "+typeof u);if(Number.isFinite(u)&&(u>kZ||u>31)>>>0,this.buf),this}sfixed64(s){let c=new Uint8Array(8),u=new DataView(c.buffer),h=_n.enc(s);return u.setInt32(0,h.lo,!0),u.setInt32(4,h.hi,!0),this.raw(c)}fixed64(s){let c=new Uint8Array(8),u=new DataView(c.buffer),h=_n.uEnc(s);return u.setInt32(0,h.lo,!0),u.setInt32(4,h.hi,!0),this.raw(c)}int64(s){let c=_n.enc(s);return kt(c.lo,c.hi,this.buf),this}sint64(s){const c=_n.enc(s),u=c.hi>>31;return kt(c.lo<<1^u,(c.hi<<1|c.lo>>>31)^u,this.buf),this}uint64(s){const c=_n.uEnc(s);return kt(c.lo,c.hi,this.buf),this}}class dX{constructor(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:lX().decodeUtf8;this.decodeUtf8=c,this.varint64=ut,this.uint32=co,this.buf=s,this.len=s.length,this.pos=0,this.view=new DataView(s.buffer,s.byteOffset,s.byteLength)}tag(){let s=this.uint32(),c=s>>>3,u=7&s;if(c<=0||u<0||u>5)throw new Error("illegal tag: field no "+c+" wire type "+u);return[c,u]}skip(s,c){let u=this.pos;switch(s){case fA.Varint:for(;128&this.buf[this.pos++];);break;case fA.Bit64:this.pos+=4;case fA.Bit32:this.pos+=4;break;case fA.LengthDelimited:let h=this.uint32();this.pos+=h;break;case fA.StartGroup:for(;;){const _=PA(this.tag(),2),B=_[0],Q=_[1];if(Q===fA.EndGroup){if(c!==void 0&&B!==c)throw new Error("invalid end group tag");break}this.skip(Q,B)}break;default:throw new Error("cant skip wire type "+s)}return this.assertBounds(),this.buf.subarray(u,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let s=this.uint32();return s>>>1^-(1&s)}int64(){return _n.dec(...this.varint64())}uint64(){return _n.uDec(...this.varint64())}sint64(){let s=PA(this.varint64(),2),c=s[0],u=s[1],h=-(1&c);return c=(c>>>1|(1&u)<<31)^h,u=u>>>1^h,_n.dec(c,u)}bool(){let s=PA(this.varint64(),2),c=s[0],u=s[1];return c!==0||u!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return _n.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return _n.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let s=this.uint32(),c=this.pos;return this.pos+=s,this.assertBounds(),this.buf.subarray(c,c+s)}string(){return this.decodeUtf8(this.bytes())}}function uX(t){if(typeof t=="string")t=Number(t);else if(typeof t!="number")throw new Error("invalid int32: "+typeof t);if(!Number.isInteger(t)||t>xZ||tUZ||t<0)throw new Error("invalid uint32: "+t)}function om(t,s){const c=t.fieldKind=="list"?sX(s,t):t.fieldKind=="map"?aX(s,t):gX(t,s);if(c===!0)return;let u;switch(t.fieldKind){case"list":u="expected ".concat(jZ(t),", got ").concat(T1(s));break;case"map":u="expected ".concat(JZ(t),", got ").concat(T1(s));break;default:u=uF(t,s,c)}return new gd(t,u)}function KZ(t,s,c){const u=gX(t,c);if(u!==!0)return new gd(t,"list item #".concat(s+1,": ").concat(uF(t,c,u)))}function gX(t,s){return t.scalar!==void 0?HZ(s,t.scalar):t.enum!==void 0?t.enum.open?Number.isInteger(s):br(t.enum).some(c=>c.number===s):AX(s,t.message)}function HZ(t,s){switch(s){case Dt.DOUBLE:return typeof t=="number";case Dt.FLOAT:return typeof t=="number"&&(!(!Number.isNaN(t)&&Number.isFinite(t))||!(t>kZ||txZ||tUZ||t<0)||"".concat(t.toFixed()," out of range"));case Dt.BOOL:return typeof t=="boolean";case Dt.STRING:return typeof t=="string"&&(lX().checkUtf8(t)||"invalid UTF8");case Dt.BYTES:return t instanceof Uint8Array;case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return _n.parse(t),!0}catch{return"".concat(t," out of range")}return!1;case Dt.FIXED64:case Dt.UINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return _n.uParse(t),!0}catch{return"".concat(t," out of range")}return!1}}function uF(t,s,c){return c=typeof c=="string"?": ".concat(c):", got ".concat(T1(s)),t.scalar!==void 0?"expected ".concat(function(u){switch(u){case Dt.STRING:return"string";case Dt.BOOL:return"boolean";case Dt.INT64:case Dt.SINT64:case Dt.SFIXED64:return"bigint (int64)";case Dt.UINT64:case Dt.FIXED64:return"bigint (uint64)";case Dt.BYTES:return"Uint8Array";case Dt.DOUBLE:return"number (float64)";case Dt.FLOAT:return"number (float32)";case Dt.FIXED32:case Dt.UINT32:return"number (uint32)";case Dt.INT32:case Dt.SFIXED32:case Dt.SINT32:return"number (int32)"}}(t.scalar))+c:t.enum!==void 0?"expected ".concat(t.enum.toString())+c:"expected ".concat(YZ(t.message))+c}function T1(t){switch(typeof t){case"object":return t===null?"null":t instanceof Uint8Array?"Uint8Array(".concat(t.length,")"):Array.isArray(t)?"Array(".concat(t.length,")"):sX(t)?jZ(t.field()):aX(t)?JZ(t.field()):AX(t)?YZ(t.desc):iX(t)?"message ".concat(t.$typeName):"object";case"string":return t.length>30?"string":'"'.concat(t.split('"').join('\\"'),'"');case"boolean":case"number":return String(t);case"bigint":return String(t)+"n";default:return typeof t}}function YZ(t){return"ReflectMessage (".concat(t.typeName,")")}function jZ(t){switch(t.listKind){case"message":return"ReflectList (".concat(t.message.toString(),")");case"enum":return"ReflectList (".concat(t.enum.toString(),")");case"scalar":return"ReflectList (".concat(Dt[t.scalar],")")}}function JZ(t){switch(t.mapKind){case"message":return"ReflectMap (".concat(Dt[t.mapKey],", ").concat(t.message.toString(),")");case"enum":return"ReflectMap (".concat(Dt[t.mapKey],", ").concat(t.enum.toString(),")");case"scalar":return"ReflectMap (".concat(Dt[t.mapKey],", ").concat(Dt[t.scalar],")")}}function a9(t){const s=t.fields[0];return qZ(t.typeName)&&s!==void 0&&s.fieldKind=="scalar"&&s.name=="value"&&s.number==1}function qZ(t){var s;return t.startsWith("google.protobuf.")&&dF(s=["DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue"]).call(s,t.substring(16))}const a1e=999,A1e=998,gF=2;function gI(t,s){if(iX(s,t))return s;const c=function(u){let h;if(function(_){switch(_.file.edition){case a1e:return!1;case A1e:return!0;default:return _.fields.some(B=>B.presence!=gF&&B.fieldKind!="message"&&!B.oneof)}}(u)){const _=zZ.get(u);let B,Q;if(_)B=_.prototype,Q=_.members;else{B={},Q=new Set;for(const T of u.members)T.kind!="oneof"&&(T.fieldKind!="scalar"&&T.fieldKind!="enum"||T.presence!=gF&&(Q.add(T),B[T.localName]=IX(T)));zZ.set(u,{prototype:B,members:Q})}h=Object.create(B),h.$typeName=u.typeName;for(const T of u.members)if(!Q.has(T)){if(T.kind=="field"&&(T.fieldKind=="message"||(T.fieldKind=="scalar"||T.fieldKind=="enum")&&T.presence!=gF))continue;h[T.localName]=IX(T)}}else{h={$typeName:u.typeName};for(const _ of u.members)_.kind!="oneof"&&_.presence!=gF||(h[_.localName]=IX(_))}return h}(t);return s!==void 0&&function(u,h,_){for(const B of u.members){let Q,T=_[B.localName];if(T!=null){if(B.kind=="oneof"){const D=Cp(_,B);if(!D)continue;Q=D,T=rE(_,D)}else Q=B;switch(Q.fieldKind){case"message":T=EX(Q,T);break;case"scalar":T=WZ(Q,T);break;case"list":T=l1e(Q,T);break;case"map":T=c1e(Q,T)}e9(h,Q,T)}}}(t,c,s),c}function WZ(t,s){return t.scalar==Dt.BYTES?hX(s):s}function c1e(t,s){if(mp(s)){if(t.scalar==Dt.BYTES)return XZ(s,hX);if(t.mapKind=="message")return XZ(s,c=>EX(t,c))}return s}function l1e(t,s){if(Array.isArray(s)){if(t.scalar==Dt.BYTES)return s.map(hX);if(t.listKind=="message")return s.map(c=>EX(t,c))}return s}function EX(t,s){if(t.fieldKind=="message"&&!t.oneof&&a9(t.message))return WZ(t.message.fields[0],s);if(mp(s)){if(t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!=="google.protobuf.Value")return s;if(!iX(s,t.message))return gI(t.message,s)}return s}function hX(t){return Array.isArray(t)?new Uint8Array(t):t}function XZ(t,s){const c={};for(const u of Object.entries(t))c[u[0]]=s(u[1]);return c}const d1e=Symbol(),zZ=new WeakMap;function IX(t){if(t.kind=="oneof")return{case:void 0};if(t.fieldKind=="list")return[];if(t.fieldKind=="map")return{};if(t.fieldKind=="message")return d1e;const s=t.getDefaultValue();return s!==void 0?t.fieldKind=="scalar"&&t.longAsString?s.toString():s:t.fieldKind=="scalar"?dd(t.scalar,t.longAsString):br(t.enum)[0].number}function eg(t,s){return new ZZ(t,s,!(arguments.length>2&&arguments[2]!==void 0)||arguments[2])}const $Z=new WeakMap;class ZZ{get sortedFields(){var s;const c=$Z.get(this.desc);if(c)return c;const u=kAe(s=this.desc.fields.concat()).call(s,(h,_)=>h.number-_.number);return $Z.set(this.desc,u),u}constructor(s,c){let u=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];this.lists=new Map,this.maps=new Map,this.check=u,this.desc=s,this.message=this[lc]=c??gI(s),this.fields=s.fields,this.oneofs=s.oneofs,this.members=s.members}findNumber(s){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(c=>[c.number,c]))),this._fieldsByNumber.get(s)}oneofCase(s){return A9(this.message,s),Cp(this.message,s)}isSet(s){return A9(this.message,s),function(c,u){const h=u.localName;if(u.oneof)return c[u.oneof.localName].case===h;if(u.presence!=rm)return c[h]!==void 0&&Object.prototype.hasOwnProperty.call(c,h);switch(u.fieldKind){case"list":return c[h].length>0;case"map":return Object.keys(c[h]).length>0;case"scalar":return!function(_,B){switch(_){case Dt.BOOL:return B===!1;case Dt.STRING:return B==="";case Dt.BYTES:return B instanceof Uint8Array&&!B.byteLength;default:return B==0}}(u.scalar,c[h]);case"enum":return c[h]!==br(u.enum)[0].number}throw new Error("message field with implicit presence")}(this.message,s)}clear(s){A9(this.message,s),function(c,u){const h=u.localName;if(u.oneof){const _=u.oneof.localName;c[_].case===h&&(c[_]={case:void 0})}else if(u.presence!=rm)delete c[h];else switch(u.fieldKind){case"map":c[h]={};break;case"list":c[h]=[];break;case"enum":c[h]=br(u.enum)[0].number;break;case"scalar":c[h]=dd(u.scalar,u.longAsString)}}(this.message,s)}get(s){A9(this.message,s);const c=rE(this.message,s);switch(s.fieldKind){case"list":let u=this.lists.get(s);return u&&u[lc]===c||this.lists.set(s,u=new u1e(s,c,this.check)),u;case"map":let h=this.maps.get(s);return h&&h[lc]===c||this.maps.set(s,h=new g1e(s,c,this.check)),h;case"message":return pX(s,c,this.check);case"scalar":return c===void 0?dd(s.scalar,!1):mX(s,c);case"enum":return c??br(s.enum)[0].number}}set(s,c){if(A9(this.message,s),this.check){const h=om(s,c);if(h)throw h}let u;u=s.fieldKind=="message"?CX(s,c):aX(c)||sX(c)?c[lc]:BX(s,c),e9(this.message,s,u)}getUnknown(){return this.message.$unknown}setUnknown(s){this.message.$unknown=s}}function A9(t,s){if(s.parent.typeName!==t.$typeName)throw new gd(s,"cannot use ".concat(s.toString()," with message ").concat(t.$typeName),"ForeignFieldError")}class u1e{field(){return this._field}get size(){return this._arr.length}constructor(s,c,u){this._field=s,this._arr=this[lc]=c,this.check=u}get(s){const c=this._arr[s];return c===void 0?void 0:fX(this._field,c,this.check)}set(s,c){if(s<0||s>=this._arr.length)throw new gd(this._field,"list item #".concat(s+1,": out of range"));if(this.check){const u=KZ(this._field,s,c);if(u)throw u}this._arr[s]=eee(this._field,c)}add(s){if(this.check){const c=KZ(this._field,this._arr.length,s);if(c)throw c}this._arr.push(eee(this._field,s))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return br(this).call(this)}keys(){var s;return KAe(s=this._arr).call(s)}*values(){for(const s of this._arr)yield fX(this._field,s,this.check)}*entries(){for(let s=0;s2&&arguments[2]!==void 0)||arguments[2];this.obj=this[lc]=c??{},this.check=u,this._field=s}field(){return this._field}set(s,c){if(this.check){const u=function(h,_,B){const Q=HZ(_,h.mapKey);if(Q!==!0)return new gd(h,"invalid map key: ".concat(uF({scalar:h.mapKey},_,Q)));const T=gX(h,B);return T!==!0?new gd(h,"map entry ".concat(T1(_),": ").concat(uF(h,B,T))):void 0}(this._field,s,c);if(u)throw u}return this.obj[EF(s)]=function(u,h){return u.mapKind=="message"?CX(u,h):BX(u,h)}(this._field,c),this}delete(s){const c=EF(s),u=Object.prototype.hasOwnProperty.call(this.obj,c);return u&&delete this.obj[c],u}clear(){for(const s of Object.keys(this.obj))delete this.obj[s]}get(s){let c=this.obj[EF(s)];return c!==void 0&&(c=_X(this._field,c,this.check)),c}has(s){return Object.prototype.hasOwnProperty.call(this.obj,EF(s))}*keys(){for(const s of Object.keys(this.obj))yield tee(s,this._field.mapKey)}*entries(){for(const s of Object.entries(this.obj))yield[tee(s[0],this._field.mapKey),_X(this._field,s[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(const s of Object.values(this.obj))yield _X(this._field,s,this.check)}forEach(s,c){for(const u of this.entries())s.call(c,u[1],u[0],this)}}function CX(t,s){return AX(s)?qZ(s.message.$typeName)&&!t.oneof&&t.fieldKind=="message"?s.message.value:s.desc.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"?iee(s.message):s.message:s}function pX(t,s,c){return s!==void 0&&(a9(t.message)&&!t.oneof&&t.fieldKind=="message"?s={$typeName:t.message.typeName,value:mX(t.message.fields[0],s)}:t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"&&mp(s)&&(s=ree(s))),new ZZ(t.message,s,c)}function eee(t,s){return t.listKind=="message"?CX(t,s):BX(t,s)}function fX(t,s,c){return t.listKind=="message"?pX(t,s,c):mX(t,s)}function _X(t,s,c){return t.mapKind=="message"?pX(t,s,c):s}function EF(t){return typeof t=="string"||typeof t=="number"?t:String(t)}function tee(t,s){switch(s){case Dt.STRING:return t;case Dt.INT32:case Dt.FIXED32:case Dt.UINT32:case Dt.SFIXED32:case Dt.SINT32:{const c=Number.parseInt(t);if(Number.isFinite(c))return c;break}case Dt.BOOL:switch(t){case"true":return!0;case"false":return!1}break;case Dt.UINT64:case Dt.FIXED64:try{return _n.uParse(t)}catch{}break;default:try{return _n.parse(t)}catch{}}return t}function mX(t,s){switch(t.scalar){case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:"longAsString"in t&&t.longAsString&&typeof s=="string"&&(s=_n.parse(s));break;case Dt.FIXED64:case Dt.UINT64:"longAsString"in t&&t.longAsString&&typeof s=="string"&&(s=_n.uParse(s))}return s}function BX(t,s){switch(t.scalar){case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:"longAsString"in t&&t.longAsString?s=String(s):typeof s!="string"&&typeof s!="number"||(s=_n.parse(s));break;case Dt.FIXED64:case Dt.UINT64:"longAsString"in t&&t.longAsString?s=String(s):typeof s!="string"&&typeof s!="number"||(s=_n.uParse(s))}return s}function ree(t){const s={$typeName:"google.protobuf.Struct",fields:{}};if(mp(t))for(const u of Object.entries(t)){var c=PA(u,2);const h=c[0],_=c[1];s.fields[h]=oee(_)}return s}function iee(t){const s={};for(const u of Object.entries(t.fields)){var c=PA(u,2);const h=c[0],_=c[1];s[h]=nee(_)}return s}function nee(t){switch(t.kind.case){case"structValue":return iee(t.kind.value);case"listValue":return br(t.kind.value).map(nee);case"nullValue":case void 0:return null;default:return t.kind.value}}function oee(t){const s={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof t){case"number":s.kind={case:"numberValue",value:t};break;case"string":s.kind={case:"stringValue",value:t};break;case"boolean":s.kind={case:"boolValue",value:t};break;case"object":if(t===null)s.kind={case:"nullValue",value:0};else if(Array.isArray(t)){const c={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(t))for(const u of t)br(c).push(oee(u));s.kind={case:"listValue",value:c}}else s.kind={case:"structValue",value:ree(t)}}return s}const E1e=3,see={writeUnknownFields:!0};function aee(t,s,c){return hF(new GZ,function(u){return u?Object.assign(Object.assign({},see),u):see}(c),eg(t,s)).finish()}function hF(t,s,c){var u;for(const h of c.sortedFields)if(c.isSet(h))Aee(t,s,c,h);else if(h.presence==E1e)throw new Error("cannot encode ".concat(h," to binary: required field not set"));if(s.writeUnknownFields)for(const h of(u=c.getUnknown())!==null&&u!==void 0?u:[]){const _=h.no,B=h.wireType,Q=h.data;t.tag(_,B).raw(Q)}return t}function Aee(t,s,c,u){var h;switch(u.fieldKind){case"scalar":case"enum":IF(t,c.desc.typeName,u.name,(h=u.scalar)!==null&&h!==void 0?h:Dt.INT32,u.number,c.get(u));break;case"list":(function(B,Q,T,D){var O;if(T.listKind=="message"){for(const U of D)cee(B,Q,T,U);return}const P=(O=T.scalar)!==null&&O!==void 0?O:Dt.INT32;if(T.packed){if(!D.size)return;B.tag(T.number,fA.LengthDelimited).fork();for(const U of D)lee(B,T.parent.typeName,T.name,P,U);B.join()}else for(const U of D)IF(B,T.parent.typeName,T.name,P,T.number,U)})(t,s,u,c.get(u));break;case"message":cee(t,s,u,c.get(u));break;case"map":for(const B of c.get(u)){var _=PA(B,2);h1e(t,s,u,_[0],_[1])}}}function IF(t,s,c,u,h,_){lee(t.tag(h,function(B){switch(B){case Dt.BYTES:case Dt.STRING:return fA.LengthDelimited;case Dt.DOUBLE:case Dt.FIXED64:case Dt.SFIXED64:return fA.Bit64;case Dt.FIXED32:case Dt.SFIXED32:case Dt.FLOAT:return fA.Bit32;default:return fA.Varint}}(u)),s,c,u,_)}function cee(t,s,c,u){c.delimitedEncoding?hF(t.tag(c.number,fA.StartGroup),s,u).tag(c.number,fA.EndGroup):hF(t.tag(c.number,fA.LengthDelimited).fork(),s,u).join()}function h1e(t,s,c,u,h){var _;switch(t.tag(c.number,fA.LengthDelimited).fork(),IF(t,c.parent.typeName,c.name,c.mapKey,1,u),c.mapKind){case"scalar":case"enum":IF(t,c.parent.typeName,c.name,(_=c.scalar)!==null&&_!==void 0?_:Dt.INT32,2,h);break;case"message":hF(t.tag(2,fA.LengthDelimited).fork(),s,h).join()}t.join()}function lee(t,s,c,u,h){try{switch(u){case Dt.STRING:t.string(h);break;case Dt.BOOL:t.bool(h);break;case Dt.DOUBLE:t.double(h);break;case Dt.FLOAT:t.float(h);break;case Dt.INT32:t.int32(h);break;case Dt.INT64:t.int64(h);break;case Dt.UINT64:t.uint64(h);break;case Dt.FIXED64:t.fixed64(h);break;case Dt.BYTES:t.bytes(h);break;case Dt.FIXED32:t.fixed32(h);break;case Dt.SFIXED32:t.sfixed32(h);break;case Dt.SFIXED64:t.sfixed64(h);break;case Dt.SINT64:t.sint64(h);break;case Dt.UINT32:t.uint32(h);break;case Dt.SINT32:t.sint32(h)}}catch(_){throw _ instanceof Error?new Error("cannot encode field ".concat(s,".").concat(c," to binary: ").concat(_.message)):_}}var I1e=U_,C1e=R1,p1e=AO,f1e=yl,dee=TypeError,uee="Reduce of empty array with no initial value",_1e=function(t){return function(s,c,u,h){var _=C1e(s),B=p1e(_),Q=f1e(_);if(I1e(c),Q===0&&u<2)throw new dee(uee);var T=t?Q-1:0,D=t?-1:1;if(u<2)for(;;){if(T in B){h=B[T],T+=D;break}if(T+=D,t?T<0:Q<=T)throw new dee(uee)}for(;t?T>=0:Q>T;T+=D)T in B&&(h=c(h,B[T],T,_));return h}},m1e={left:_1e(!1)},c9=Ha,B1e=k_,S1e=Yg,CF=function(t){return B1e.slice(0,t.length)===t},R1e=CF("Bun/")?"BUN":CF("Cloudflare-Workers")?"CLOUDFLARE":CF("Deno/")?"DENO":CF("Node.js/")?"NODE":c9.Bun&&typeof Bun.version=="string"?"BUN":c9.Deno&&typeof Deno.version=="object"?"DENO":S1e(c9.process)==="process"?"NODE":c9.window&&c9.document?"BROWSER":"REST",y1e=m1e.left;Fa({target:"Array",proto:!0,forced:R1e!=="NODE"&&Ap>79&&Ap<83||!mZ("reduce")},{reduce:function(t){var s=arguments.length;return y1e(this,t,s,s>1?arguments[1]:void 0)}});var Q1e=Le("Array","reduce"),T1e=zd,w1e=Q1e,SX=Array.prototype,v1e=sc(function(t){var s=VA(t);return t===SX||T1e(SX,t)&&s===VA(SX)?w1e:s});function sm(t,s){for(var c=arguments.length,u=new Array(c>2?c-2:0),h=2;h_.nestedMessages[B],t.messages[s])}const D1e=sm(function(t){const s=function(c){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},c),{messageType:c.messageType.map(Gz),enumType:c.enumType.map(Vz)}))}(t);return s.messageType.forEach(HQ),Kh(s,()=>{}).getFile(s.name)}({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false"},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true"},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),1);var gee,Eee,hee,Iee,Cee,pee,fee,_ee,mee,Bee,See,Ree,yee,Qee,Tee,wee,vee,Dee,bee,Nee;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(gee||(gee={})),function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"}(Eee||(Eee={})),function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"}(hee||(hee={})),function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"}(Iee||(Iee={})),function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"}(Cee||(Cee={})),function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"}(pee||(pee={})),function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"}(fee||(fee={})),function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"}(_ee||(_ee={})),function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"}(mee||(mee={})),function(t){t[t.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",t[t.EXPORT_ALL=1]="EXPORT_ALL",t[t.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",t[t.LOCAL_ALL=3]="LOCAL_ALL",t[t.STRICT=4]="STRICT"}(Bee||(Bee={})),function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"}(See||(See={})),function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"}(Ree||(Ree={})),function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"}(yee||(yee={})),function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.VERIFY=2]="VERIFY",t[t.NONE=3]="NONE"}(Qee||(Qee={})),function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"}(Tee||(Tee={})),function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"}(wee||(wee={})),function(t){t[t.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",t[t.STYLE2024=1]="STYLE2024",t[t.STYLE_LEGACY=2]="STYLE_LEGACY"}(vee||(vee={})),function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"}(Dee||(Dee={})),function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_LEGACY=900]="EDITION_LEGACY",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_2024=1001]="EDITION_2024",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",t[t.EDITION_MAX=2147483647]="EDITION_MAX"}(bee||(bee={})),function(t){t[t.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",t[t.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",t[t.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"}(Nee||(Nee={}));const Oee={readUnknownFields:!0};function RX(t,s,c){const u=eg(t,void 0,!1);return Lee(u,new dX(s),function(h){return h?Object.assign(Object.assign({},Oee),h):Oee}(c),!1,s.byteLength),u.message}function Lee(t,s,c,u,h){var _;const B=u?s.len:s.pos+h;let Q,T;const D=(_=t.getUnknown())!==null&&_!==void 0?_:[];for(;s.pos0&&t.setUnknown(D)}function Mee(t,s,c,u,h){var _;switch(c.fieldKind){case"scalar":t.set(c,$Q(s,c.scalar));break;case"enum":const B=$Q(s,Dt.INT32);if(c.enum.open)t.set(c,B);else if(br(c.enum).some(Q=>Q.number===B))t.set(c,B);else if(h.readUnknownFields){const Q=[];Kr(B,Q);const T=(_=t.getUnknown())!==null&&_!==void 0?_:[];T.push({no:c.number,wireType:u,data:new Uint8Array(Q)}),t.setUnknown(T)}break;case"message":t.set(c,yX(s,h,c,t.get(c)));break;case"list":(function(Q,T,D,O){var P;const U=D.field();if(U.listKind==="message")return void D.add(yX(Q,O,U));const H=(P=U.scalar)!==null&&P!==void 0?P:Dt.INT32;if(!(T==fA.LengthDelimited&&H!=Dt.STRING&&H!=Dt.BYTES))return void D.add($Q(Q,H));const $=Q.uint32()+Q.pos;for(;Q.pos<$;)D.add($Q(Q,H))})(s,u,t.get(c),h);break;case"map":(function(Q,T,D){const O=T.field();let P,U;const H=Q.uint32(),$=Q.pos+H;for(;Q.pos<$;)switch(PA(Q.tag(),1)[0]){case 1:P=$Q(Q,O.mapKey);break;case 2:switch(O.mapKind){case"scalar":U=$Q(Q,O.scalar);break;case"enum":U=Q.int32();break;case"message":U=yX(Q,D,O)}}if(P===void 0&&(P=dd(O.mapKey,!1)),U===void 0)switch(O.mapKind){case"scalar":U=dd(O.scalar,!1);break;case"enum":U=br(O.enum)[0].number;break;case"message":U=eg(O.message,void 0,!1)}T.set(P,U)})(s,t.get(c),h)}}function yX(t,s,c,u){const h=c.delimitedEncoding,_=u??eg(c.message,void 0,!1);return Lee(_,t,s,h,h?c.number:t.uint32()),_}function $Q(t,s){switch(s){case Dt.STRING:return t.string();case Dt.BOOL:return t.bool();case Dt.DOUBLE:return t.double();case Dt.FLOAT:return t.float();case Dt.INT32:return t.int32();case Dt.INT64:return t.int64();case Dt.UINT64:return t.uint64();case Dt.FIXED64:return t.fixed64();case Dt.BYTES:return t.bytes();case Dt.FIXED32:return t.fixed32();case Dt.SFIXED32:return t.sfixed32();case Dt.SFIXED64:return t.sfixed64();case Dt.SINT64:return t.sint64();case Dt.UINT32:return t.uint32();case Dt.SINT32:return t.sint32()}}function pF(t,s){var c;const u=RX(D1e,Kz(t));return u.messageType.forEach(HQ),u.dependency=(c=s==null?void 0:s.map(h=>h.proto.name))!==null&&c!==void 0?c:[],Kh(u,h=>s==null?void 0:s.find(_=>_.proto.name===h)).getFile(u.name)}const b1e=sm(pF("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),0);function kee(t){const s=t.lastIndexOf("/"),c=s>=0?t.substring(s+1):t;if(!c.length)throw new Error("invalid type url: ".concat(t));return c}const l9=pF("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),N1e=sm(l9,0),Pee=sm(l9,1),O1e=sm(l9,2);var QX;(function(t){t[t.NULL_VALUE=0]="NULL_VALUE"})(QX||(QX={}));const L1e=pF("CgpvcnRjLnByb3RvEgtpby5hZ29yYS5wYiKoAQoET1JUQxILCgNpY2UYASADKAkSJQoEZHRscxgCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSIQoEc2VuZBgDIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcBIhCgRyZWN2GAQgASgLMhMuaW8uYWdvcmEucGIuUnRwQ2FwEiYKCXNlbmRfcmVjdhgFIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcCLQAQoGUnRwQ2FwEjMKDGF1ZGlvX2NvZGVjcxgBIAMoCzIdLmlvLmFnb3JhLnBiLlBheWxvYWRBdHRyaWJ1dGUSMwoMdmlkZW9fY29kZWNzGAIgAygLMh0uaW8uYWdvcmEucGIuUGF5bG9hZEF0dHJpYnV0ZRItChBhdWRpb19leHRlbnNpb25zGAMgAygLMhMuaW8uYWdvcmEucGIuRXh0bWFwEi0KEHZpZGVvX2V4dGVuc2lvbnMYBCADKAsyEy5pby5hZ29yYS5wYi5FeHRtYXAiqQEKBkV4dG1hcBINCgVlbnRyeRgBIAEoDRIuCg5leHRlbnNpb25fbmFtZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIWCglkaXJlY3Rpb24YAyABKAlIAIgBARIhChRleHRlbnNpb25fYXR0cmlidXRlcxgEIAEoCUgBiAEBQgwKCl9kaXJlY3Rpb25CFwoVX2V4dGVuc2lvbl9hdHRyaWJ1dGVzIp4BChBQYXlsb2FkQXR0cmlidXRlEiQKB3J0cF9tYXAYASABKAsyEy5pby5hZ29yYS5wYi5SdHBNYXASHwoEZm10cBgCIAEoCzIRLmlvLmFnb3JhLnBiLkZtdHASLQoOcnRjcF9mZWVkYmFja3MYAyADKAsyFS5pby5hZ29yYS5wYi5GZWVkYmFjaxIUCgxwYXlsb2FkX3R5cGUYBCABKA0i4gEKBlJ0cE1hcBIfChJlbnVtX2VuY29kaW5nX25hbWUYASABKA1IAIgBARIhChRzdHJpbmdfZW5jb2RpbmdfbmFtZRgCIAEoCUgBiAEBEioKCmNsb2NrX3JhdGUYAyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSIAoTZW5jb2RpbmdfcGFyYW1ldGVycxgEIAEoDUgCiAEBQhUKE19lbnVtX2VuY29kaW5nX25hbWVCFwoVX3N0cmluZ19lbmNvZGluZ19uYW1lQhYKFF9lbmNvZGluZ19wYXJhbWV0ZXJzIqoCCgRGbXRwEj4KD2VudW1fcGFyYW1ldGVycxgBIAMoCzIlLmlvLmFnb3JhLnBiLkZtdHAuRW51bVBhcmFtZXRlcnNFbnRyeRJCChFzdHJpbmdfcGFyYW1ldGVycxgCIAMoCzInLmlvLmFnb3JhLnBiLkZtdHAuU3RyaW5nUGFyYW1ldGVyc0VudHJ5Gk0KE0VudW1QYXJhbWV0ZXJzRW50cnkSCwoDa2V5GAEgASgNEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ARpPChVTdHJpbmdQYXJhbWV0ZXJzRW50cnkSCwoDa2V5GAEgASgJEiUKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlOgI4ASLMAQoIRmVlZGJhY2sSFgoJZW51bV90eXBlGAEgASgNSACIAQESGAoLc3RyaW5nX3R5cGUYAiABKAlIAYgBARIWCglwYXJhbWV0ZXIYAyABKAlIAogBARIXCgphZGRpdGlvbmFsGAQgASgJSAOIAQESFQoIaW50ZXJ2YWwYBSABKAlIBIgBAUIMCgpfZW51bV90eXBlQg4KDF9zdHJpbmdfdHlwZUIMCgpfcGFyYW1ldGVyQg0KC19hZGRpdGlvbmFsQgsKCV9pbnRlcnZhbCKBAQoRUnRwQ2FwQmVmb3JlTWVyZ2USIQoEc2VuZBgBIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcBIhCgRyZWN2GAIgASgLMhMuaW8uYWdvcmEucGIuUnRwQ2FwEiYKCXNlbmRfcmVjdhgDIAEoCzITLmlvLmFnb3JhLnBiLlJ0cENhcCKrEQoPT3J0Y05lZ290aWF0aW9uEk4KE2luX291dF9hdWRpb19wdF9tYXAYASADKAsyMS5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uSW5PdXRBdWRpb1B0TWFwRW50cnkSTgoTaW5fb3V0X3ZpZGVvX3B0X21hcBgCIAMoCzIxLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5Jbk91dFZpZGVvUHRNYXBFbnRyeRJOChNvdXRfaW5fYXVkaW9fcHRfbWFwGAMgAygLMjEuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLk91dEluQXVkaW9QdE1hcEVudHJ5Ek4KE291dF9pbl92aWRlb19wdF9tYXAYBCADKAsyMS5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uT3V0SW5WaWRlb1B0TWFwRW50cnkSYwoeaW5fb3V0X2F1ZGlvX2hlYWRlcl9leHRlbnNfbWFwGAUgAygLMjsuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLkluT3V0QXVkaW9IZWFkZXJFeHRlbnNNYXBFbnRyeRJjCh5vdXRfaW5fYXVkaW9faGVhZGVyX2V4dGVuc19tYXAYBiADKAsyOy5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uT3V0SW5BdWRpb0hlYWRlckV4dGVuc01hcEVudHJ5EmMKHmluX291dF92aWRlb19oZWFkZXJfZXh0ZW5zX21hcBgHIAMoCzI7LmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5Jbk91dFZpZGVvSGVhZGVyRXh0ZW5zTWFwRW50cnkSYwoeb3V0X2luX3ZpZGVvX2hlYWRlcl9leHRlbnNfbWFwGAggAygLMjsuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLk91dEluVmlkZW9IZWFkZXJFeHRlbnNNYXBFbnRyeRJQChRydHBfcnR4X2F1ZGlvX3B0X21hcBgJIAMoCzIyLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5SdHBSdHhBdWRpb1B0TWFwRW50cnkSUAoUcnRwX3J0eF92aWRlb19wdF9tYXAYCiADKAsyMi5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uUnRwUnR4VmlkZW9QdE1hcEVudHJ5ElAKFHJ0eF9ydHBfYXVkaW9fcHRfbWFwGAsgAygLMjIuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uLlJ0eFJ0cEF1ZGlvUHRNYXBFbnRyeRJQChRydHhfcnRwX3ZpZGVvX3B0X21hcBgMIAMoCzIyLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5SdHhSdHBWaWRlb1B0TWFwRW50cnkSRQoOcnRwX3JlZF9wdF9tYXAYDSADKAsyLS5pby5hZ29yYS5wYi5PcnRjTmVnb3RpYXRpb24uUnRwUmVkUHRNYXBFbnRyeRJFCg5yZWRfcnRwX3B0X21hcBgOIAMoCzItLmlvLmFnb3JhLnBiLk9ydGNOZWdvdGlhdGlvbi5SZWRSdHBQdE1hcEVudHJ5Eg8KB2NmZ19ydHgYDyABKAgSFQoNaGFzX2F1ZGlvX3J0eBgQIAEoCBIVCg1oYXNfdmlkZW9fcnR4GBEgASgIEhAKCGNmZ19ycnRyGBIgASgIEhYKDmhhc192aWRlb19ycnRyGBMgASgIEhYKDmhhc19hdWRpb19ycnRyGBQgASgIEg8KB2NmZ19yZWQYFSABKAgSFQoNaGFzX2F1ZGlvX3JlZBgWIAEoCBIRCglpbl9yZWRfcHQYFyADKA0aNgoUSW5PdXRBdWRpb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo2ChRJbk91dFZpZGVvUHRNYXBFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBGjYKFE91dEluQXVkaW9QdE1hcEVudHJ5EgsKA2tleRgBIAEoDRINCgV2YWx1ZRgCIAEoDToCOAEaNgoUT3V0SW5WaWRlb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5Jbk91dEF1ZGlvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5PdXRJbkF1ZGlvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5Jbk91dFZpZGVvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARpACh5PdXRJblZpZGVvSGVhZGVyRXh0ZW5zTWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHBSdHhBdWRpb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHBSdHhWaWRlb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHhSdHBBdWRpb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARo3ChVSdHhSdHBWaWRlb1B0TWFwRW50cnkSCwoDa2V5GAEgASgNEg0KBXZhbHVlGAIgASgNOgI4ARoyChBSdHBSZWRQdE1hcEVudHJ5EgsKA2tleRgBIAEoDRINCgV2YWx1ZRgCIAEoDToCOAEaMgoQUmVkUnRwUHRNYXBFbnRyeRILCgNrZXkYASABKA0SDQoFdmFsdWUYAiABKA06AjgBKtACChJWaWRlb0V4dGVuc2lvbk5hbWUSGQoVVklERU9fRVhUX0hEUl9UT0ZGU0VUEAASGwoXVklERU9fRVhUX0FCU19TRU5EX1RJTUUQARIZChVWSURFT19FWFRfT1JJRU5UQVRJT04QAhISCg5WSURFT19FWFRfVFdDQxADEhsKF1ZJREVPX0VYVF9QTEFZT1VUX0RFTEFZEAQSGgoWVklERU9fRVhUX0NPTlRFTlRfVFlQRRAFEhoKFlZJREVPX0VYVF9WSURFT19USU1JTkcQBhIZChVWSURFT19FWFRfQ09MT1JfU1BBQ0UQBxIWChJWSURFT19FWFRfU0RFU19NSUQQCBIgChxWSURFT19FWFRfU0RFU19SVFBfU1RSRUFNX0lEEAkSKQolVklERU9fRVhUX1NERURfUkVQQUlSRURfUlRQX1NUUkVBTV9JRBAKKsQBChJBdWRpb0V4dGVuc2lvbk5hbWUSGQoVQVVESU9fRVhUX0FVRElPX0xFVkVMEAASGwoXQVVESU9fRVhUX0FCU19TRU5EX1RJTUUQARISCg5BVURJT19FWFRfVFdDQxACEhYKEkFVRElPX0VYVF9TREVTX01JRBADEiAKHEFVRElPX0VYVF9TREVTX1JUUF9TVFJFQU1fSUQQBBIoCiRBVURJT19FWFRfU0RTX1JFUEFJUkVEX1JUUF9TVFJFQU1fSUQQBSqBAwoMRW5jb2RpbmdOYW1lEh0KGUVOQ09ESU5HX05BTUVfVU5TUEVDSUZJRUQQABIVChFFTkNPRElOR19OQU1FX1ZQOBABEhUKEUVOQ09ESU5HX05BTUVfVlA5EAISFgoSRU5DT0RJTkdfTkFNRV9IMjY0EAMSFgoSRU5DT0RJTkdfTkFNRV9IMjY1EAQSFQoRRU5DT0RJTkdfTkFNRV9BVjEQBRIWChJFTkNPRElOR19OQU1FX0c3MTEQBhIWChJFTkNPRElOR19OQU1FX0c3MjIQBxIWChJFTkNPRElOR19OQU1FX09QVVMQCBIWChJFTkNPRElOR19OQU1FX1BDTVUQCRIWChJFTkNPRElOR19OQU1FX1BDTUEQChIUChBFTkNPRElOR19OQU1FX0NOEAsSIQodRU5DT0RJTkdfTkFNRV9URUxFUEhPTkVfRVZFTlQQDBIVChFFTkNPRElOR19OQU1FX1JUWBANEhUKEUVOQ09ESU5HX05BTUVfUkVEEA4qrgMKDUZtdHBQYXJhbWV0ZXISHgoaRk1UUF9QQVJBTUVURVJfVU5TUEVDSUZJRUQQABIbChdGTVRQX1BBUkFNRVRFUl9NSU5QVElNRRABEh8KG0ZNVFBfUEFSQU1FVEVSX1VTRUlOQkFOREZFQxACEhsKF0ZNVFBfUEFSQU1FVEVSX0xFVkVMX0lEEAMSHQoZRk1UUF9QQVJBTUVURVJfUFJPRklMRV9JRBAEEhwKGEZNVFBfUEFSQU1FVEVSX1RJRVJfRkxBRxAFEhoKFkZNVFBfUEFSQU1FVEVSX1RYX01PREUQBhIqCiZGTVRQX1BBUkFNRVRFUl9MRVZFTF9BU1lNTUVUUllfQUxMT1dFRBAHEiUKIUZNVFBfUEFSQU1FVEVSX1BBQ0tFVElaQVRJT05fTU9ERRAIEiMKH0ZNVFBfUEFSQU1FVEVSX1BST0ZJTEVfTEVWRUxfSUQQCRIcChhGTVRQX1BBUkFNRVRFUl9MRVZFTF9JRFgQChIaChZGTVRQX1BBUkFNRVRFUl9QUk9GSUxFEAsSFwoTRk1UUF9QQVJBTUVURVJfVElFUhAMKrEBCgxGZWVkYmFja1R5cGUSHQoZRkVFREJBQ0tfVFlQRV9VTlNQRUNJRklFRBAAEhsKF0ZFRURCQUNLX1RZUEVfR09PR19SRU1CEAESHgoaRkVFREJBQ0tfVFlQRV9UUkFOU1BPUlRfQ0MQAhIVChFGRUVEQkFDS19UWVBFX0NDTRADEhYKEkZFRURCQUNLX1RZUEVfTkFDSxAEEhYKEkZFRURCQUNLX1RZUEVfUlJUUhAFYgZwcm90bzM",[l9]);let sE=function(t){return t[t.VIDEO_EXT_HDR_TOFFSET=0]="VIDEO_EXT_HDR_TOFFSET",t[t.VIDEO_EXT_ABS_SEND_TIME=1]="VIDEO_EXT_ABS_SEND_TIME",t[t.VIDEO_EXT_ORIENTATION=2]="VIDEO_EXT_ORIENTATION",t[t.VIDEO_EXT_TWCC=3]="VIDEO_EXT_TWCC",t[t.VIDEO_EXT_PLAYOUT_DELAY=4]="VIDEO_EXT_PLAYOUT_DELAY",t[t.VIDEO_EXT_CONTENT_TYPE=5]="VIDEO_EXT_CONTENT_TYPE",t[t.VIDEO_EXT_VIDEO_TIMING=6]="VIDEO_EXT_VIDEO_TIMING",t[t.VIDEO_EXT_COLOR_SPACE=7]="VIDEO_EXT_COLOR_SPACE",t[t.VIDEO_EXT_SDES_MID=8]="VIDEO_EXT_SDES_MID",t[t.VIDEO_EXT_SDES_RTP_STREAM_ID=9]="VIDEO_EXT_SDES_RTP_STREAM_ID",t[t.VIDEO_EXT_SDED_REPAIRED_RTP_STREAM_ID=10]="VIDEO_EXT_SDED_REPAIRED_RTP_STREAM_ID",t}({}),ZQ=function(t){return t[t.AUDIO_EXT_AUDIO_LEVEL=0]="AUDIO_EXT_AUDIO_LEVEL",t[t.AUDIO_EXT_ABS_SEND_TIME=1]="AUDIO_EXT_ABS_SEND_TIME",t[t.AUDIO_EXT_TWCC=2]="AUDIO_EXT_TWCC",t[t.AUDIO_EXT_SDES_MID=3]="AUDIO_EXT_SDES_MID",t[t.AUDIO_EXT_SDES_RTP_STREAM_ID=4]="AUDIO_EXT_SDES_RTP_STREAM_ID",t[t.AUDIO_EXT_SDS_REPAIRED_RTP_STREAM_ID=5]="AUDIO_EXT_SDS_REPAIRED_RTP_STREAM_ID",t}({}),Ed=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.VP8=1]="VP8",t[t.VP9=2]="VP9",t[t.H264=3]="H264",t[t.H265=4]="H265",t[t.AV1=5]="AV1",t[t.G711=6]="G711",t[t.G722=7]="G722",t[t.OPUS=8]="OPUS",t[t.PCMU=9]="PCMU",t[t.PCMA=10]="PCMA",t[t.CN=11]="CN",t[t.TELEPHONE_EVENT=12]="TELEPHONE_EVENT",t[t.RTX=13]="RTX",t[t.RED=14]="RED",t}({}),tg=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.MINPTIME=1]="MINPTIME",t[t.USEINBANDFEC=2]="USEINBANDFEC",t[t.LEVEL_ID=3]="LEVEL_ID",t[t.PROFILE_ID=4]="PROFILE_ID",t[t.TIER_FLAG=5]="TIER_FLAG",t[t.TX_MODE=6]="TX_MODE",t[t.LEVEL_ASYMMETRY_ALLOWED=7]="LEVEL_ASYMMETRY_ALLOWED",t[t.PACKETIZATION_MODE=8]="PACKETIZATION_MODE",t[t.PROFILE_LEVEL_ID=9]="PROFILE_LEVEL_ID",t[t.LEVEL_IDX=10]="LEVEL_IDX",t[t.PROFILE=11]="PROFILE",t[t.TIER=12]="TIER",t}({}),d9=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.GOOG_REMB=1]="GOOG_REMB",t[t.TRANSPORT_CC=2]="TRANSPORT_CC",t[t.CCM=3]="CCM",t[t.NACK=4]="NACK",t[t.RRTR=5]="RRTR",t}({});const Uee=pF("CgxzaWduYWwucHJvdG8SC2lvLmFnb3JhLnBiIuUFCg5Vc2VyQXR0cmlidXRlcxIVCghmZWF0dXJlMRgBIAEoDUgAiAEBEhUKCGZlYXR1cmUyGAIgASgNSAGIAQESHAoPdG9wblNtb290aExldmVsGAMgASgNSAKIAQESIAoTdG9wbk5ld1NwZWFrZXJEZWxheRgEIAEoDUgDiAEBEh0KEHRvcG5Td2l0Y2hIb2xkTXMYBSABKA1IBIgBARIaCg10b3BuQXVkaW9HYWluGAYgASgNSAWIAQESHAoPbWF4U3Vic2NyaXB0aW9uGAcgASgNSAaIAQESJQoYc3Vic2NyaWJlQXVkaW9GaWx0ZXJUb3BOGAggASgNSAeIAQESFQoIcnRtMkZsYWcYCSABKA1ICIgBARIWCglwcmVTdWJOdW0YCiABKA1ICYgBARIpCglwcmVTdWJVaWQYCyADKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSFAoMZW5hYmxlU3ViU1ZDGAwgAygJEhkKEWVuYWJsZVN2Y0V4dGVuZGVkGA0gAygJEhsKDmF1ZGlvRHVwbGljYXRlGA4gASgNSAqIAQESGwoObnRwRml4ZWRPZmZzZXQYDyABKAVIC4gBARIxCgtleHBlcmltZW50cxgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIDIgBAUILCglfZmVhdHVyZTFCCwoJX2ZlYXR1cmUyQhIKEF90b3BuU21vb3RoTGV2ZWxCFgoUX3RvcG5OZXdTcGVha2VyRGVsYXlCEwoRX3RvcG5Td2l0Y2hIb2xkTXNCEAoOX3RvcG5BdWRpb0dhaW5CEgoQX21heFN1YnNjcmlwdGlvbkIbChlfc3Vic2NyaWJlQXVkaW9GaWx0ZXJUb3BOQgsKCV9ydG0yRmxhZ0IMCgpfcHJlU3ViTnVtQhEKD19hdWRpb0R1cGxpY2F0ZUIRCg9fbnRwRml4ZWRPZmZzZXRCDgoMX2V4cGVyaW1lbnRzIrcBChZVc2VyQXR0cmlidXRlc1Jlc3BvbnNlEiwKC3ByZVN1YlNzcmNzGAEgAygLMhcuaW8uYWdvcmEucGIuUHJlU3ViU3NyYxIlChhzdWJzY3JpYmVBdWRpb0ZpbHRlclRvcE4YAiABKA1IAIgBARIrCgpleHRlbnNpb25zGAMgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEIbChlfc3Vic2NyaWJlQXVkaW9GaWx0ZXJUb3BOInIKClByZVN1YlNzcmMSKAoDdWlkGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSACIAQESCQoBYRgCIAEoDRINCgVhX3J0eBgDIAEoDRIJCgF2GAQgASgNEg0KBXZfcnR4GAUgASgNQgYKBF91aWQizwYKDVNpZ25hbFJlcXVlc3QSFAoHbGljZW5zZRgBIAEoCUgAiAEBEg4KBnAycF9pZBgCIAEoDRISCgpzZXNzaW9uX2lkGAMgASgJEg4KBmFwcF9pZBgEIAEoCRITCgtjaGFubmVsX2tleRgFIAEoCRIUCgxjaGFubmVsX25hbWUYBiABKAkSEwoLc2RrX3ZlcnNpb24YByABKAkSFAoHYnJvd3NlchgIIAEoCUgBiAEBEioKCnByb2Nlc3NfaWQYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSDAoEbW9kZRgKIAEoCRINCgVjb2RlYxgLIAEoCRIRCgRyb2xlGAwgASgJSAKIAQESIAoTaGFzX2NoYW5nZWRfZ2F0ZXdheRgNIAEoCEgDiAEBEhMKBmV4dGVuZBgOIAEoCUgEiAEBEhkKDGNzZXJ2aWNlX21hcBgPIAEoCUgFiAEBEhoKDW9wdGlvbmFsX2luZm8YECABKAlIBogBARIZCgxhcHBfc2NlbmFyaW8YESABKAlIB4gBARIvCgphdHRyaWJ1dGVzGBIgASgLMhsuaW8uYWdvcmEucGIuVXNlckF0dHJpYnV0ZXMSEgoKcmVxdWVzdF90cxgTIAEoBBIXCgpzdHJpbmdfdWlkGBQgASgJSAiIAQESFQoIYWVzX21vZGUYFSABKAlICYgBARIXCgphZXNfc2VjcmV0GBYgASgJSAqIAQESGAoLYWVzX2VuY3J5cHQYFyABKAhIC4gBARIVCghhZXNfc2FsdBgYIAEoCUgMiAEBEiEKFGRlZmF1bHRfdmlkZW9fc3RyZWFtGBkgASgNSA2IAQFCCgoIX2xpY2Vuc2VCCgoIX2Jyb3dzZXJCBwoFX3JvbGVCFgoUX2hhc19jaGFuZ2VkX2dhdGV3YXlCCQoHX2V4dGVuZEIPCg1fY3NlcnZpY2VfbWFwQhAKDl9vcHRpb25hbF9pbmZvQg8KDV9hcHBfc2NlbmFyaW9CDQoLX3N0cmluZ191aWRCCwoJX2Flc19tb2RlQg0KC19hZXNfc2VjcmV0Qg4KDF9hZXNfZW5jcnlwdEILCglfYWVzX3NhbHRCFwoVX2RlZmF1bHRfdmlkZW9fc3RyZWFtIl8KEk11bHRpVW5pbGJzUmVxdWVzdBILCgN1cmkYASABKA0SJwoGZGV0YWlsGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBITCgtzZXJ2aWNlX2lkcxgDIAMoDSKtAQoSU2RwRW5kcG9pbnRSZXF1ZXN0Ei8KBnVuaWxicxgBIAMoCzIfLmlvLmFnb3JhLnBiLk11bHRpVW5pbGJzUmVxdWVzdBILCgN1aWQYAiABKA0SDAoEb3BpZBgDIAEoBBIqCgZzaWduYWwYBCABKAsyGi5pby5hZ29yYS5wYi5TaWduYWxSZXF1ZXN0Eh8KBG9ydGMYBSABKAsyES5pby5hZ29yYS5wYi5PUlRDIvQCChNTZHBFbmRwb2ludFJlc3BvbnNlEicKBmRldGFpbBgBIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEAoIZW50ZXJfdHMYAiABKAQSEAoIbGVhdmVfdHMYAyABKAQSDAoEb3BpZBgEIAEoBBI5Cg91bmlsYnNfcmVzcG9uc2UYBSADKAsyIC5pby5hZ29yYS5wYi5NdWx0aVVuaWxic1Jlc3BvbnNlEgsKA3VpZBgGIAEoDRJAChNhdHRyaWJ1dGVzX3Jlc3BvbnNlGAcgASgLMiMuaW8uYWdvcmEucGIuVXNlckF0dHJpYnV0ZXNSZXNwb25zZRIUCgxyZWpvaW5fdG9rZW4YCCABKAkSMAoIYWRkX29ydGMYCSABKAsyHi5pby5hZ29yYS5wYi5SdHBDYXBCZWZvcmVNZXJnZRIwCghkZWxfb3J0YxgKIAEoCzIeLmlvLmFnb3JhLnBiLlJ0cENhcEJlZm9yZU1lcmdlIq4BChNNdWx0aVVuaWxic1Jlc3BvbnNlEgwKBGNlcnQYASABKAkSCwoDY2lkGAIgASgNEgwKBGNvZGUYAyABKA0SJwoGZGV0YWlsGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIqCghzZXJ2aWNlcxgFIAMoCzIYLmlvLmFnb3JhLnBiLlNlcnZpY2VJbmZvEgwKBGZsYWcYBiABKA0SCwoDdXJpGAcgASgNIkkKC1NlcnZpY2VJbmZvEgoKAmlwGAEgASgJEgwKBHBvcnQYAiABKA0SEwoLZmluZ2VycHJpbnQYAyABKAkSCwoDaWNlGAQgAygJIn0KCkFQUmVzcG9uc2USCwoDdWlkGAEgASgNEgsKA2NpZBgCIAEoDRIMCgRjZXJ0GAMgASgJEicKBmRldGFpbBgEIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSEwoGdGlja2V0GAUgASgJSACIAQFCCQoHX3RpY2tldCK9AQoNSm9pbkZvcndhcmRlchISCgpyZWpvaW5fa2V5GAEgASgJEioKBnNpZ25hbBgCIAEoCzIaLmlvLmFnb3JhLnBiLlNpZ25hbFJlcXVlc3QSCwoDaWNlGAMgAygJEjEKC25lZ290aWF0aW9uGAQgASgLMhwuaW8uYWdvcmEucGIuT3J0Y05lZ290aWF0aW9uEiwKC2FwX3Jlc3BvbnNlGAUgASgLMhcuaW8uYWdvcmEucGIuQVBSZXNwb25zZSrbBQoVVXNlckF0dHJpYnV0ZUZlYXR1cmUxEg8KC1VOU1BFQ0lGSUVEEAASGgoWZW5hYmxlRW5jb2RlZFRyYW5zZm9ybRABEhcKE2VuYWJsZUF1ZGlvTWV0YWRhdGEQAhISCg5lbmFibGVBdWRpb1B0cxAEEh0KGWVuYWJsZU5ldHdvcmtRdWFsaXR5UHJvYmUQCBIbChdlbmFibGVQdWJsaXNoZWRVc2VyTGlzdBAQEhwKGGVuYWJsZVB1Ymxpc2hBdWRpb0ZpbHRlchAgEhoKFmVuYWJsZVVzZXJMaWNlbnNlQ2hlY2sQQBIOCgllbmFibGVSVFgQgAESFAoPZW5hYmxlTlRQUmVwb3J0EIACEhcKEmVuYWJsZUluc3RhbnRWaWRlbxCABBIZChRlbmFibGVGdWxsbGlua0F2U3luYxCACBIWChFlbmFibGVEYXRhU3RyZWFtMhCAEBIWChFlbmFibGVBdXRGZWVkYmFjaxCAIBIhChxlbmFibGVVc2VyQXV0b1JlYmFsYW5jZUNoZWNrEIBAEg4KCGVuYWJsZVhSEICAARIYChJlbmFibGVMb3NzYmFzZWRCd2UQgIACEhEKC2VuYWJsZUF1dENDEICABBIWChBlbmFibGVDQ0ZhbGxiYWNrEICACBIWChBlbmFibGVQcmVhbGxvY1BDEICAEBITCg1lbmFibGVQdWJUV0NDEICAIBITCg1lbmFibGVTdWJUV0NDEICAQBITCgxlbmFibGVQdWJSVFgQgICAARITCgxlbmFibGVTdWJSVFgQgICAAhIcChVlbmFibGVRdWFsaXR5RmFsbGJhY2sQgICABBIcChVzZW50dHNVc2VzQWJzU2VuZFRpbWUQgICACBIbChRlbmFibGVEdWFsU3RyZWFtRmxhZxCAgIAQEhEKCmRpc2FibGVGRUMQgICAIBIYChFlbmFibGVWb3NGYWxsYmFjaxCAgIBAYgZwcm90bzM",[l9,L1e]),xee=sm(Uee,5),Fee=sm(Uee,6);let Gee=function(t){return t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.enableEncodedTransform=1]="enableEncodedTransform",t[t.enableAudioMetadata=2]="enableAudioMetadata",t[t.enableAudioPts=4]="enableAudioPts",t[t.enableNetworkQualityProbe=8]="enableNetworkQualityProbe",t[t.enablePublishedUserList=16]="enablePublishedUserList",t[t.enablePublishAudioFilter=32]="enablePublishAudioFilter",t[t.enableUserLicenseCheck=64]="enableUserLicenseCheck",t[t.enableRTX=128]="enableRTX",t[t.enableNTPReport=256]="enableNTPReport",t[t.enableInstantVideo=512]="enableInstantVideo",t[t.enableFulllinkAvSync=1024]="enableFulllinkAvSync",t[t.enableDataStream2=2048]="enableDataStream2",t[t.enableAutFeedback=4096]="enableAutFeedback",t[t.enableUserAutoRebalanceCheck=8192]="enableUserAutoRebalanceCheck",t[t.enableXR=16384]="enableXR",t[t.enableLossbasedBwe=32768]="enableLossbasedBwe",t[t.enableAutCC=65536]="enableAutCC",t[t.enableCCFallback=131072]="enableCCFallback",t[t.enablePreallocPC=262144]="enablePreallocPC",t[t.enablePubTWCC=524288]="enablePubTWCC",t[t.enableSubTWCC=1048576]="enableSubTWCC",t[t.enablePubRTX=2097152]="enablePubRTX",t[t.enableSubRTX=4194304]="enableSubRTX",t[t.enableQualityFallback=8388608]="enableQualityFallback",t[t.senttsUsesAbsSendTime=16777216]="senttsUsesAbsSendTime",t[t.enableDualStreamFlag=33554432]="enableDualStreamFlag",t[t.disableFEC=67108864]="disableFEC",t[t.enableVosFallback=134217728]="enableVosFallback",t}({});const TX={VP8:Ed.VP8,VP9:Ed.VP9,H264:Ed.H264,H265:Ed.H265,AV1:Ed.AV1,G711:Ed.G711,G722:Ed.G722,opus:Ed.OPUS,PCMU:Ed.PCMU,PCMA:Ed.PCMA,CN:Ed.CN,"telephone-event":Ed.TELEPHONE_EVENT,rtx:Ed.RTX,red:Ed.RED},wX={minptime:tg.MINPTIME,useinbandfec:tg.USEINBANDFEC,"level-id":tg.LEVEL_ID,"profile-id":tg.PROFILE_ID,"tier-flag":tg.TIER_FLAG,"tx-mode":tg.TX_MODE,"level-asymmetry-allowed":tg.LEVEL_ASYMMETRY_ALLOWED,"packetization-mode":tg.PACKETIZATION_MODE,"profile-level-id":tg.PROFILE_LEVEL_ID,"level-idx":tg.LEVEL_IDX,profile:tg.PROFILE,tier:tg.TIER},vX={"goog-remb":d9.GOOG_REMB,"transport-cc":d9.TRANSPORT_CC,ccm:d9.CCM,nack:d9.NACK,rrtr:d9.RRTR};function M1e(t){if(t)return Object.keys(vX).find(s=>vX[s]===t)}const fF={"urn:ietf:params:rtp-hdrext:toffset":sE.VIDEO_EXT_HDR_TOFFSET,"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time":sE.VIDEO_EXT_ABS_SEND_TIME,"urn:3gpp:video-orientation":sE.VIDEO_EXT_ORIENTATION,"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01":sE.VIDEO_EXT_TWCC,"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay":sE.VIDEO_EXT_PLAYOUT_DELAY,"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type":sE.VIDEO_EXT_CONTENT_TYPE,"http://www.webrtc.org/experiments/rtp-hdrext/video-timing":sE.VIDEO_EXT_VIDEO_TIMING,"http://www.webrtc.org/experiments/rtp-hdrext/color-space":sE.VIDEO_EXT_COLOR_SPACE,"urn:ietf:params:rtp-hdrext:sdes:mid":sE.VIDEO_EXT_SDES_MID,"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id":sE.VIDEO_EXT_SDES_RTP_STREAM_ID,"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id":sE.VIDEO_EXT_SDED_REPAIRED_RTP_STREAM_ID},Vee={"urn:ietf:params:rtp-hdrext:ssrc-audio-level":ZQ.AUDIO_EXT_AUDIO_LEVEL,"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time":ZQ.AUDIO_EXT_ABS_SEND_TIME,"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01":ZQ.AUDIO_EXT_TWCC,"urn:ietf:params:rtp-hdrext:sdes:mid":ZQ.AUDIO_EXT_SDES_MID,"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id":ZQ.AUDIO_EXT_SDES_RTP_STREAM_ID,"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id":ZQ.AUDIO_EXT_SDS_REPAIRED_RTP_STREAM_ID};function k1e(t,s,c){return(s=function(u){var h=function(_,B){if(typeof _!="object"||!_)return _;var Q=_[Symbol.toPrimitive];if(Q!==void 0){var T=Q.call(_,"string");if(typeof T!="object")return T;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(_)}(u);return typeof h=="symbol"?h:h+""}(s))in t?Object.defineProperty(t,s,{value:c,enumerable:!0,configurable:!0,writable:!0}):t[s]=c,t}function Kee(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function qo(t){for(var s=1;s128&&(H=void 0);const $=s.cloudProxyServer==="proxy3"?"1":s.cloudProxyServer==="proxy5"?"2":void 0,Z=function(ge,me,Qe,Oe,we){var Ne,et,st,Xt;Qe=Object.assign({},Qe);const lr=eo(ge),ft=ry(ge),Ir=((Ne=ge.preSubOptions)===null||Ne===void 0?void 0:Ne.length)||0,ui=Ir>0?(et=ge.preSubOptions)===null||et===void 0?void 0:et.map(ie=>ie.uid):void 0,Nr=vs("PRE_SUB_NUM","number")||1,Ki=Ir>Nr?Ir:Nr,it=Hee(),mt=(Ks()||vf(18,4,!1))&&Df(18,6,!0)&&me==="h264"&&de("ENABLE_ABSSENDTIME_AS_SENTTS"),Gt=!(((st=Qe.detail)===null||st===void 0?void 0:st[3])!=="CN"||!de("ENABLE_QUALITY_FALLBACK"))&&de("ENABLE_QUALITY_FALLBACK"),at=qo(qo({enableEncodedTransform:(!!de("ENABLE_AUDIO_METADATA")||!!de("ENABLE_AUDIO_PTS"))&&DX||!!de("ENABLE_AUDIO_TOPN")&&Tf(Fi.CHROME,87,116)||void 0,enableAudioMetadata:!!de("ENABLE_AUDIO_METADATA")&&DX,enableAudioPts:!!de("ENABLE_AUDIO_PTS")&&DX,topnSmoothLevel:de("TOPN_SMOOTH_LEVEL"),topnNewSpeakerDelay:de("TOPN_NEW_SPEAKER_DELAY"),topnSwitchHoldMs:de("TOPN_SWITCH_HOLD_MS"),topnAudioGain:de("TOPN_AUDIO_GAIN"),enableNetworkQualityProbe:ge.networkQualityProbe,enablePublishedUserList:de("ENABLE_PUBLISHED_USER_LIST"),enableUserList:de("ENABLE_USER_LIST"),maxSubscription:de("MAX_SUBSCRIPTION"),subscribeAudioFilterTopN:vs("SUBSCRIBE_AUDIO_FILTER_TOPN","number"),enablePublishAudioFilter:vs("ENABLE_PUBLISH_AUDIO_FILTER","boolean"),enableUserLicenseCheck:vs("ENABLE_USER_LICENSE_CHECK","boolean"),enableRTX:de("USE_PUB_RTX")===!0||de("USE_SUB_RTX")===!0||void 0,disableFEC:de("DISABLE_FEC"),enableNTPReport:!!de("ENABLE_NTP_REPORT")||void 0,enableInstantVideo:ft,enableFulllinkAvSync:!!de("ENABLE_FULL_LINK_AV_SYNC")||void 0,enableDataStream2:vs("ENABLE_DATASTREAM_2","boolean"),enableAutFeedback:N4(),rtm2Flag:typeof Oe=="number"?Oe:void 0,enableUserAutoRebalanceCheck:!!de("ENABLE_USER_AUTO_REBALANCE_CHECK"),enableXR:vs("USE_XR","boolean"),enableLossbasedBwe:vs("ENABLE_LOSSBASED_BWE","boolean"),enableAutCC:b4(),enableCCFallback:vs("ENABLE_CC_FALLBACK","boolean"),preSubUid:lr?ui:void 0,preSubNum:lr?Ki:void 0,enablePubTWCC:vs("PUBLISH_TWCC","boolean"),enableSubTWCC:vs("SUBSCRIBE_TWCC","boolean"),enablePubRTX:vs("USE_PUB_RTX","boolean"),enableSubRTX:vs("USE_SUB_RTX","boolean"),enableSubSVC:de("ENABLE_SVC")?de("ENABLE_SVC_DEFAULT_CODECS"):Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0,enableSvcExtended:de("ENABLE_SVC")&&Array.isArray(de("SVC_EXTENDED"))&&de("SVC_EXTENDED").length!==0?de("SVC_EXTENDED"):void 0,enableVosFallback:de("ENABLE_VOS_FALLBACK"),enableQualityFallback:Gt},it),{},{audioDuplicate:vs("ENABLE_AUDIO_RED","boolean")?(Xt=vs("AUDIO_DUPLICATE_NUM","number"))!==null&&Xt!==void 0?Xt:2:void 0,senttsUsesAbsSendTime:!!mt||void 0,enableDualStreamFlag:vs("ENABLE_DUAL_STREAM_FLAG","boolean")});for(const ie in at)at[ie]===void 0&&delete at[ie],Array.isArray(at[ie])&&at[ie].length===0&&delete at[ie],ie==="enablePreallocPC"&&delete at[ie];return at.enablePreallocPC=!0,at}(t,B,D,s.rtmFlag),te=qo(qo(qo(qo(qo({},s.license?{license:s.license}:{}),{},{p2pId:t.p2pId,sessionId:s.sid,appId:s.appId,channelKey:(u=s.token)!==null&&u!==void 0?u:s.appId,channelName:s.cname,sdkVersion:W1,processId:de("PROCESS_ID"),mode:t.useP2P?"p2p":_,codec:B,role:(h=s.role)!==null&&h!==void 0?h:"audience",hasChangedGateway:O||T,extend:de("JOIN_EXTEND")},$?{cservice_map:$}:{}),s.optionalInfo?{optionalInfo:s.optionalInfo}:{}),H?{appScenario:H}:{}),{},{attributes:U1e(Z),requestTs:(se=Q,Number(se))});var se;return s.stringUid&&(te.stringUid=s.stringUid),s.aesmode&&s.aespassword&&(te.aesMode=s.aesmode,de("ENCRYPT_AES")?(te.aesSecret=s.aespassword,te.aesEncrypt=!0):te.aesSecret=s.aespassword,s.aessalt&&(te.aesSalt=s.aessalt)),s.defaultVideoStream!==void 0&&(te.defaultVideoStream=s.defaultVideoStream),te}const DX=al(87)||Zb()||wf(117);function U1e(t){const s={enableSubSVC:[],enableSvcExtended:[]},c=["topnSmoothLevel","topnNewSpeakerDelay","topnSwitchHoldMs","topnAudioGain","maxSubscription","subscribeAudioFilterTopN","rtm2Flag","preSubNum","enableSubSVC","enableSvcExtended","audioDuplicate","preSubUid"],u={};for(const Q in Gee){const T=Gee[Q];typeof T=="number"&&T!==0&&(u[Q]=T)}const h=[],_={};for(const Q in t){const T=t[Q];if(Q in u&&T===!0){const D=u[Q];let O,P;for(D<4294967296?(O=0,P=D):(O=1,P=1<0&&h.forEach((Q,T)=>{Q!==void 0&&Q!==0&&(s["feature".concat(T+1)]=Q)});const B=Object.keys(_);B.length>0&&(s.experiments=_,B.forEach(Q=>{Q in s&&delete s[Q]}));for(const Q in s)s[Q]===void 0&&delete s[Q],Array.isArray(s[Q])&&s[Q].length===0&&delete s[Q];return s}function eT(t){var s,c,u,h;const _=function(U){if(U)return TX[U]||void 0}((s=t.rtpMap)===null||s===void 0?void 0:s.encodingName),B=_||(c=t.rtpMap)===null||c===void 0?void 0:c.encodingName,Q=(u=t.rtpMap)===null||u===void 0?void 0:u.encodingParameters,T=(h=t.fmtp)===null||h===void 0?void 0:h.parameters;let D,O;T&&Object.keys(T).forEach(U=>{const H=function($){if($)return wX[$]||void 0}(U);H?(D||(D={}),D[H]=T[U]+""):(O||(O={}),O[U]=T[U]+"")});const P=D||O?qo(qo({},D?{enumParameters:D}:{}),O?{stringParameters:O}:{}):void 0;return qo(qo({payloadType:t.payloadType,rtpMap:t.rtpMap?qo(qo(qo({},_?{enumEncodingName:_}:{}),B?{stringEncodingName:B}:{}),{},{clockRate:t.rtpMap.clockRate+""},Q?{encodingParameters:Q}:{}):void 0},P?{fmtp:P}:{}),{},{rtcpFeedbacks:t.rtcpFeedbacks.map(U=>{const H=function(Z){if(Z)return vX[Z]||void 0}(U.type),$=qo(qo(qo({},"parameter"in U&&U.parameter?{parameter:U.parameter}:{}),"additional"in U&&U.additional?{additional:U.additional}:{}),"interval"in U&&U.interval?{interval:U.interval}:{});return qo(H?{enumType:H}:{stringType:U.type},$)})})}function Bp(t){let s;if(t.rtpMap){const h=t.rtpMap,_=h.enumEncodingName,B=h.stringEncodingName,Q=h.clockRate,T=h.encodingParameters,D=_?function(O){if(O)return Object.keys(TX).find(P=>TX[P]===O)}(_):B;s={encodingName:D??"",clockRate:(Q==null?void 0:Q.kind.value)+"",encodingParameters:T}}const c={parameters:{}};if(t.fmtp){const h=t.fmtp,_=h.enumParameters,B=h.stringParameters;_&&Object.keys(_).forEach(Q=>{const T=function(D){if(D)return Object.keys(wX).find(O=>wX[O]===D)}(Q);T&&(c.parameters[T]=_[Q].kind.value+"")}),B&&Object.keys(B).forEach(Q=>{c.parameters[Q]=B[Q].kind.value+""})}let u=[];return t.rtcpFeedbacks&&(u=t.rtcpFeedbacks.map(h=>{const _=h.enumType,B=h.stringType,Q=h.parameter,T=h.additional,D=h.interval,O=qo(qo(qo({},Q?{parameter:Q}:{}),T?{additional:T}:{}),D?{interval:D}:{});return qo(_?{type:M1e(_)+""}:{type:B+""},O)})),{payloadType:t.payloadType,rtpMap:s,fmtp:c,rtcpFeedbacks:u}}function tT(t,s){const c=function(u,h){if(u==="video"){const _=fF[h];return typeof _=="number"?_:void 0}if(u==="audio"){const _=fF[h];return typeof _=="number"?_:void 0}}(t,s.extensionName);return{entry:s.entry,extensionName:typeof c=="number"?c:s.extensionName}}function yp(t,s){var c,u;const h=function(_,B){if(B||typeof B=="number")return _==="video"?Object.keys(fF).find(Q=>fF[Q]===B):Object.keys(Vee).find(Q=>Vee[Q]===B)}(t,Number((c=s.extensionName)===null||c===void 0?void 0:c.kind.value))||((u=s.extensionName)===null||u===void 0?void 0:u.kind.value);return{entry:s.entry,extensionName:h+""}}function x1e(t){var s,c,u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et;const st={audioCodecs:(s=(c=t.rtpCapabilities.send)===null||c===void 0?void 0:c.audioCodecs.map(ft=>eT(ft)))!==null&&s!==void 0?s:[],videoCodecs:(u=(h=t.rtpCapabilities.send)===null||h===void 0?void 0:h.videoCodecs.map(ft=>eT(ft)))!==null&&u!==void 0?u:[],audioExtensions:(_=(B=t.rtpCapabilities.send)===null||B===void 0?void 0:B.audioExtensions.map(ft=>tT("audio",ft)))!==null&&_!==void 0?_:[],videoExtensions:(Q=(T=t.rtpCapabilities.send)===null||T===void 0?void 0:T.videoExtensions.map(ft=>tT("video",ft)))!==null&&Q!==void 0?Q:[]},Xt={audioCodecs:(D=(O=t.rtpCapabilities.recv)===null||O===void 0?void 0:O.audioCodecs.map(ft=>eT(ft)))!==null&&D!==void 0?D:[],videoCodecs:(P=(U=t.rtpCapabilities.recv)===null||U===void 0?void 0:U.videoCodecs.map(ft=>eT(ft)))!==null&&P!==void 0?P:[],audioExtensions:(H=($=t.rtpCapabilities.recv)===null||$===void 0?void 0:$.audioExtensions.map(ft=>tT("audio",ft)))!==null&&H!==void 0?H:[],videoExtensions:(Z=(te=t.rtpCapabilities.recv)===null||te===void 0?void 0:te.videoExtensions.map(ft=>tT("video",ft)))!==null&&Z!==void 0?Z:[]},lr={audioCodecs:(se=(ge=t.rtpCapabilities.sendrecv)===null||ge===void 0?void 0:ge.audioCodecs.map(ft=>eT(ft)))!==null&&se!==void 0?se:[],videoCodecs:(me=(Qe=t.rtpCapabilities.sendrecv)===null||Qe===void 0?void 0:Qe.videoCodecs.map(ft=>eT(ft)))!==null&&me!==void 0?me:[],audioExtensions:(Oe=(we=t.rtpCapabilities.sendrecv)===null||we===void 0?void 0:we.audioExtensions.map(ft=>tT("audio",ft)))!==null&&Oe!==void 0?Oe:[],videoExtensions:(Ne=(et=t.rtpCapabilities.sendrecv)===null||et===void 0?void 0:et.videoExtensions.map(ft=>tT("video",ft)))!==null&&Ne!==void 0?Ne:[]};return{ice:[t.iceParameters.iceUfrag,t.iceParameters.icePwd],dtls:t.dtlsParameters.fingerprints.map(ft=>({[ft.hashFunction]:ft.fingerprint})),send:st,recv:Xt,sendRecv:lr}}function F1e(t,s,c){var u,h,_,B,Q,T,D,O,P,U,H,$,Z,te,se,ge,me,Qe,Oe,we,Ne,et,st,Xt,lr,ft,Ir,ui,Nr,Ki,it,mt;s&&s.sendRecv&&(s.send={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((me=s.send)===null||me===void 0?void 0:me.audioCodecs)||[],...s.sendRecv.audioCodecs],videoCodecs:[...((Qe=s.send)===null||Qe===void 0?void 0:Qe.videoCodecs)||[],...s.sendRecv.videoCodecs],audioExtensions:[...((Oe=s.send)===null||Oe===void 0?void 0:Oe.audioExtensions)||[],...s.sendRecv.audioExtensions],videoExtensions:[...((we=s.send)===null||we===void 0?void 0:we.videoExtensions)||[],...s.sendRecv.videoExtensions]},s.recv={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((Ne=s.recv)===null||Ne===void 0?void 0:Ne.audioCodecs)||[],...s.sendRecv.audioCodecs],videoCodecs:[...((et=s.recv)===null||et===void 0?void 0:et.videoCodecs)||[],...s.sendRecv.videoCodecs],audioExtensions:[...((st=s.recv)===null||st===void 0?void 0:st.audioExtensions)||[],...s.sendRecv.audioExtensions],videoExtensions:[...((Xt=s.recv)===null||Xt===void 0?void 0:Xt.videoExtensions)||[],...s.sendRecv.videoExtensions]}),c&&c.sendRecv&&(c.send={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((lr=c.send)===null||lr===void 0?void 0:lr.audioCodecs)||[],...c.sendRecv.audioCodecs],videoCodecs:[...((ft=c.send)===null||ft===void 0?void 0:ft.videoCodecs)||[],...c.sendRecv.videoCodecs],audioExtensions:[...((Ir=c.send)===null||Ir===void 0?void 0:Ir.audioExtensions)||[],...c.sendRecv.audioExtensions],videoExtensions:[...((ui=c.send)===null||ui===void 0?void 0:ui.videoExtensions)||[],...c.sendRecv.videoExtensions]},c.recv={$typeName:"io.agora.pb.RtpCap",audioCodecs:[...((Nr=c.recv)===null||Nr===void 0?void 0:Nr.audioCodecs)||[],...c.sendRecv.audioCodecs],videoCodecs:[...((Ki=c.recv)===null||Ki===void 0?void 0:Ki.videoCodecs)||[],...c.sendRecv.videoCodecs],audioExtensions:[...((it=c.recv)===null||it===void 0?void 0:it.audioExtensions)||[],...c.sendRecv.audioExtensions],videoExtensions:[...((mt=c.recv)===null||mt===void 0?void 0:mt.videoExtensions)||[],...c.sendRecv.videoExtensions]});const Gt=s?{send:{audioCodecs:((u=s.send)===null||u===void 0?void 0:u.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((h=s.send)===null||h===void 0?void 0:h.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((_=s.send)===null||_===void 0?void 0:_.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:((B=s.send)===null||B===void 0?void 0:B.videoExtensions.map(Ar=>yp("video",Ar)))||[]},recv:{audioCodecs:((Q=s.recv)===null||Q===void 0?void 0:Q.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((T=s.recv)===null||T===void 0?void 0:T.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((D=s.recv)===null||D===void 0?void 0:D.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:((O=s.recv)===null||O===void 0?void 0:O.videoExtensions.map(Ar=>yp("video",Ar)))||[]}}:void 0,at=c?{send:{audioCodecs:((P=c.send)===null||P===void 0?void 0:P.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((U=c.send)===null||U===void 0?void 0:U.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((H=c.send)===null||H===void 0?void 0:H.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:(($=c.send)===null||$===void 0?void 0:$.videoExtensions.map(Ar=>yp("video",Ar)))||[]},recv:{audioCodecs:((Z=c.recv)===null||Z===void 0?void 0:Z.audioCodecs.map(Ar=>Bp(Ar)))||[],videoCodecs:((te=c.recv)===null||te===void 0?void 0:te.videoCodecs.map(Ar=>Bp(Ar)))||[],audioExtensions:((se=c.recv)===null||se===void 0?void 0:se.audioExtensions.map(Ar=>yp("audio",Ar)))||[],videoExtensions:((ge=c.recv)===null||ge===void 0?void 0:ge.videoExtensions.map(Ar=>yp("video",Ar)))||[]}}:void 0,ie={send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},Te=t.send,ke=t.recv,_t=t.sendrecv;return Te&&(ie.send.audioCodecs.push(...Te.audioCodecs),ie.send.videoCodecs.push(...Te.videoCodecs),ie.send.audioExtensions.push(...Te.audioExtensions),ie.send.videoExtensions.push(...Te.videoExtensions)),ke&&(ie.recv.audioCodecs.push(...ke.audioCodecs),ie.recv.videoCodecs.push(...ke.videoCodecs),ie.recv.audioExtensions.push(...ke.audioExtensions),ie.recv.videoExtensions.push(...ke.videoExtensions)),_t&&(ie.send.audioCodecs.push(..._t.audioCodecs),ie.send.videoCodecs.push(..._t.videoCodecs),ie.send.audioExtensions.push(..._t.audioExtensions),ie.send.videoExtensions.push(..._t.videoExtensions),ie.recv.audioCodecs.push(..._t.audioCodecs),ie.recv.videoCodecs.push(..._t.videoCodecs),ie.recv.audioExtensions.push(..._t.audioExtensions),ie.recv.videoExtensions.push(..._t.videoExtensions)),Gt&&(ie.send.audioCodecs.push(...Gt.send.audioCodecs),ie.send.videoCodecs.push(...Gt.send.videoCodecs),ie.send.audioExtensions.push(...Gt.send.audioExtensions),ie.send.videoExtensions.push(...Gt.send.videoExtensions),ie.recv.audioCodecs.push(...Gt.recv.audioCodecs),ie.recv.videoCodecs.push(...Gt.recv.videoCodecs),ie.recv.audioExtensions.push(...Gt.recv.audioExtensions),ie.recv.videoExtensions.push(...Gt.recv.videoExtensions)),at&&(at.send.audioCodecs.forEach(Ar=>{ie.send.audioCodecs=ie.send.audioCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)}),at.send.videoCodecs.forEach(Ar=>{ie.send.videoCodecs=ie.send.videoCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)}),at.send.audioExtensions.forEach(Ar=>{ie.send.audioExtensions=ie.send.audioExtensions.filter(ni=>ni.entry!==Ar.entry)}),at.send.videoExtensions.forEach(Ar=>{ie.send.videoExtensions=ie.send.videoExtensions.filter(ni=>ni.entry!==Ar.entry)}),at.recv.audioCodecs.forEach(Ar=>{ie.recv.audioCodecs=ie.recv.audioCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)}),at.recv.videoCodecs.forEach(Ar=>{ie.recv.videoCodecs=ie.recv.videoCodecs.filter(ni=>ni.payloadType!==Ar.payloadType)})),{send:ie.recv,recv:ie.send}}function G1e(t,s){Yee(s,t);const c=function(Q,T){if(Q===void 0)return[];if(T.fieldKind==="enum"||T.fieldKind==="scalar"){for(let D=Q.length-1;D>=0;--D)if(Q[D].no==T.number)return[Q[D]];return[]}return Q.filter(D=>D.no===T.number)}(t.$unknown,s),u=PA(_F(s),3),h=u[0],_=u[1],B=u[2];for(const Q of c)Mee(h,new dX(Q.data),_,Q.wireType,{readUnknownFields:!0});return B()}function V1e(t,s,c){var u;Yee(s,t);const h=((u=t.$unknown)!==null&&u!==void 0?u:[]).filter(O=>O.no!==s.number),_=PA(_F(s,c),2),B=_[0],Q=_[1],T=new GZ;Aee(T,{writeUnknownFields:!0},B,Q);const D=new dX(T.finish());for(;D.pos{const B=_[c];if(B===void 0){const Q=t.message;return a9(Q)?dd(Q.fields[0].scalar,Q.fields[0].longAsString):gI(Q)}return B}]}function Yee(t,s){if(t.extendee.typeName!=s.$typeName)throw new Error("extension ".concat(t.typeName," can only be applied to message ").concat(t.extendee.typeName))}const K1e=3,H1e=2,jee={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function u9(t,s){var c;const u=function(_,B){var Q;if(_.desc.typeName.startsWith("google.protobuf."))switch(_.desc.typeName){case"google.protobuf.Any":return function(T,D){if(T.typeUrl==="")return{};const O=D.registry;let P,U;if(O&&(P=function($,Z){if($.typeUrl==="")return;const te=Z.kind=="message"?Z:Z.getMessage(kee($.typeUrl));return te&&function(se,ge){return se.typeUrl!==""&&(typeof ge=="string"?ge:ge.typeName)===kee(se.typeUrl)}($,te)?RX(te,$.value):void 0}(T,O),P&&(U=O.getMessage(P.$typeName))),!U||!P)throw new Error("cannot encode message ".concat(T.$typeName,' to JSON: "').concat(T.typeUrl,'" is not in the type registry'));let H=u9(eg(U,P),D);return(U.typeName.startsWith("google.protobuf.")||H===null||Array.isArray(H)||typeof H!="object")&&(H={value:H}),H["@type"]=T.typeUrl,H}(_.message,B);case"google.protobuf.Timestamp":return function(T){const D=1e3*Number(T.seconds);if(DDate.parse("9999-12-31T23:59:59Z"))throw new Error("cannot encode message ".concat(T.$typeName," to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive"));if(T.nanos<0)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: nanos must not be negative"));if(T.nanos>999999999)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: nanos must not be greater than 99999999"));let O="Z";if(T.nanos>0){const P=(T.nanos+1e9).toString().substring(1);O=P.substring(3)==="000000"?"."+P.substring(0,3)+"Z":P.substring(6)==="000"?"."+P.substring(0,6)+"Z":"."+P+"Z"}return new Date(D).toISOString().replace(".000Z",O)}(_.message);case"google.protobuf.Duration":return function(T){const D=Number(T.seconds),O=T.nanos;if(D>315576e6||D<-315576e6)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: value out of range"));if(D>0&&O<0||D<0&&O>0)throw new Error("cannot encode message ".concat(T.$typeName," to JSON: nanos sign must match seconds sign"));let P=T.seconds.toString();if(O!==0){let U=Math.abs(O).toString();U="0".repeat(9-U.length)+U,U.substring(3)==="000000"?U=U.substring(0,3):U.substring(6)==="000"&&(U=U.substring(0,6)),P+="."+U,O<0&&D==0&&(P="-"+P)}return P+"s"}(_.message);case"google.protobuf.FieldMask":return(Q=_.message).paths.map(T=>{if(T.match(/_[0-9]?_/g)||T.match(/[A-Z]/g))throw new Error("cannot encode message ".concat(Q.$typeName,' to JSON: lowerCamelCase of path name "')+T+'" is irreversible');return np(T)}).join(",");case"google.protobuf.Struct":return qee(_.message);case"google.protobuf.Value":return NX(_.message);case"google.protobuf.ListValue":return Wee(_.message);default:if(a9(_.desc)){const T=_.desc.fields[0];return mF(T,_.get(T))}return}}(t,s);if(u!==void 0)return u;const h={};for(const _ of t.sortedFields){if(!t.isSet(_)){if(_.presence==K1e)throw new Error("cannot encode ".concat(_," to JSON: required field not set"));if(!s.alwaysEmitImplicit||_.presence!==H1e)continue}const B=Jee(_,t.get(_),s);B!==void 0&&(h[Y1e(_,s)]=B)}if(s.registry){const _=new Set;for(const B of(c=t.getUnknown())!==null&&c!==void 0?c:[]){const Q=B.no;if(!_.has(Q)){_.add(Q);const T=s.registry.getExtensionFor(t.desc,Q);if(!T)continue;const D=PA(_F(T,G1e(t.message,T)),2),O=D[0],P=D[1],U=Jee(P,O.get(P),s);U!==void 0&&(h[T.jsonName]=U)}}}return h}function Jee(t,s,c){switch(t.fieldKind){case"scalar":return mF(t,s);case"message":return u9(s,c);case"enum":return bX(t.enum,s,c.enumAsInteger);case"list":return function(u,h){const _=u.field(),B=[];switch(_.listKind){case"scalar":for(const Q of u)B.push(mF(_,Q));break;case"enum":for(const Q of u)B.push(bX(_.enum,Q,h.enumAsInteger));break;case"message":for(const Q of u)B.push(u9(Q,h))}return h.alwaysEmitImplicit||B.length>0?B:void 0}(s,c);case"map":return function(u,h){const _=u.field(),B={};switch(_.mapKind){case"scalar":for(const O of u){var Q=PA(O,2);const P=Q[0],U=Q[1];B[P]=mF(_,U)}break;case"message":for(const O of u){var T=PA(O,2);const P=T[0],U=T[1];B[P]=u9(U,h)}break;case"enum":for(const O of u){var D=PA(O,2);const P=D[0],U=D[1];B[P]=bX(_.enum,U,h.enumAsInteger)}}return h.alwaysEmitImplicit||u.size>0?B:void 0}(s,c)}}function bX(t,s,c){var u;if(typeof s!="number")throw new Error("cannot encode ".concat(t," to JSON: expected number, got ").concat(T1(s)));if(t.typeName=="google.protobuf.NullValue")return null;if(c)return s;const h=t.value[s];return(u=h==null?void 0:h.name)!==null&&u!==void 0?u:s}function mF(t,s){var c,u,h,_,B,Q;switch(t.scalar){case Dt.INT32:case Dt.SFIXED32:case Dt.SINT32:case Dt.FIXED32:case Dt.UINT32:if(typeof s!="number")throw new Error("cannot encode ".concat(t," to JSON: ").concat((c=om(t,s))===null||c===void 0?void 0:c.message));return s;case Dt.FLOAT:case Dt.DOUBLE:if(typeof s!="number")throw new Error("cannot encode ".concat(t," to JSON: ").concat((u=om(t,s))===null||u===void 0?void 0:u.message));return Number.isNaN(s)?"NaN":s===Number.POSITIVE_INFINITY?"Infinity":s===Number.NEGATIVE_INFINITY?"-Infinity":s;case Dt.STRING:if(typeof s!="string")throw new Error("cannot encode ".concat(t," to JSON: ").concat((h=om(t,s))===null||h===void 0?void 0:h.message));return s;case Dt.BOOL:if(typeof s!="boolean")throw new Error("cannot encode ".concat(t," to JSON: ").concat((_=om(t,s))===null||_===void 0?void 0:_.message));return s;case Dt.UINT64:case Dt.FIXED64:case Dt.INT64:case Dt.SFIXED64:case Dt.SINT64:if(typeof s!="bigint"&&typeof s!="string")throw new Error("cannot encode ".concat(t," to JSON: ").concat((B=om(t,s))===null||B===void 0?void 0:B.message));return s.toString();case Dt.BYTES:if(s instanceof Uint8Array)return function(T){let D=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"std";const O=Yz(D),P=D=="std";let U,H="",$=0,Z=0;for(let te=0;te>2],Z=(3&U)<<4,$=1;break;case 1:H+=O[Z|U>>4],Z=(15&U)<<2,$=2;break;case 2:H+=O[Z|U>>6],H+=O[63&U],$=0}return $&&(H+=O[Z],P&&(H+="=",$==1&&(H+="="))),H}(s);throw new Error("cannot encode ".concat(t," to JSON: ").concat((Q=om(t,s))===null||Q===void 0?void 0:Q.message))}}function Y1e(t,s){return s.useProtoFieldName?t.name:t.jsonName}function qee(t){const s={};for(const u of Object.entries(t.fields)){var c=PA(u,2);const h=c[0],_=c[1];s[h]=NX(_)}return s}function NX(t){switch(t.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(t.kind.value))throw new Error("".concat(t.$typeName," cannot be NaN or Infinity"));return t.kind.value;case"boolValue":case"stringValue":return t.kind.value;case"structValue":return qee(t.kind.value);case"listValue":return Wee(t.kind.value);default:throw new Error("".concat(t.$typeName," must have a value"))}}function Wee(t){return br(t).map(NX)}var Xee=` -\v\f\r                 \u2028\u2029\uFEFF`,j1e=Yu,J1e=pp,OX=Xee,zee=Ka("".replace),q1e=RegExp("^["+OX+"]+"),W1e=RegExp("(^|[^"+OX+"])["+OX+"]+$"),LX=function(t){return function(s){var c=J1e(j1e(s));return 1&t&&(c=zee(c,q1e,"")),2&t&&(c=zee(c,W1e,"$1")),c}},X1e={start:LX(1),end:LX(2),trim:LX(3)},z1e=n1.PROPER,$1e=xa,$ee=Xee,Z1e=Ga(X1e);Fa({target:"String",proto:!0,forced:function(t){return $1e(function(){return!!$ee[t]()||"​…᠎"[t]()!=="​…᠎"||z1e&&$ee[t].name!==t})}("trim")},{trim:function(){return Z1e(this)}});var ece=Le("String","trim"),tce=zd,rce=ece,MX=String.prototype,Zee=sc(function(t){var s=Ga(t);return typeof t=="string"||t===MX||tce(MX,t)&&s===Ga(MX)?rce:s});const ete={ignoreUnknownFields:!1};function rT(t,s,c){var u;if(function(Q,T,D){if(!Q.desc.typeName.startsWith("google.protobuf."))return!1;switch(Q.desc.typeName){case"google.protobuf.Any":return function(O,P,U){var H;if(P===null||Array.isArray(P)||typeof P!="object")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: expected object but got ").concat(T1(P)));if(Object.keys(P).length==0)return;const $=P["@type"];if(typeof $!="string"||$=="")throw new Error("cannot decode message ".concat(O.$typeName,' from JSON: "@type" is empty'));const Z=dF($).call($,"/")?$.substring($.lastIndexOf("/")+1):$;if(!Z.length)throw new Error("cannot decode message ".concat(O.$typeName,' from JSON: "@type" is invalid'));const te=(H=U.registry)===null||H===void 0?void 0:H.getMessage(Z);if(!te)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat($," is not in the type registry"));const se=eg(te);if(Z.startsWith("google.protobuf.")&&Object.prototype.hasOwnProperty.call(P,"value"))rT(se,P.value,U);else{const ge=Object.assign({},P);delete ge["@type"],rT(se,ge,U)}(function(ge,me,Qe){var Oe;Qe||(Qe=gI(b1e)),Qe.value=aee(ge,me),Qe.typeUrl=(Oe=me.$typeName,"type.googleapis.com/".concat(Oe))})(se.desc,se.message,O)}(Q.message,T,D),!0;case"google.protobuf.Timestamp":return function(O,P){if(typeof P!="string")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));const U=P.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!U)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: invalid RFC 3339 string"));const H=Date.parse(U[1]+"-"+U[2]+"-"+U[3]+"T"+U[4]+":"+U[5]+":"+U[6]+(U[8]?U[8]:"Z"));if(Number.isNaN(H))throw new Error("cannot decode message ".concat(O.$typeName," from JSON: invalid RFC 3339 string"));if(HDate.parse("9999-12-31T23:59:59Z"))throw new Error("cannot decode message ".concat(O.$typeName," from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive"));O.seconds=_n.parse(H/1e3),O.nanos=0,U[7]&&(O.nanos=parseInt("1"+U[7]+"0".repeat(9-U[7].length))-1e9)}(Q.message,T),!0;case"google.protobuf.Duration":return function(O,P){if(typeof P!="string")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));const U=P.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(U===null)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));const H=Number(U[1]);if(H>315576e6||H<-315576e6)throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));if(O.seconds=_n.parse(H),typeof U[2]!="string")return;const $=U[2]+"0".repeat(9-U[2].length);O.nanos=parseInt($),(H<0||Object.is(H,-0))&&(O.nanos=-O.nanos)}(Q.message,T),!0;case"google.protobuf.FieldMask":return function(O,P){if(typeof P!="string")throw new Error("cannot decode message ".concat(O.$typeName," from JSON: ").concat(T1(P)));P!==""&&(O.paths=P.split(",").map(function(U){if(dF(U).call(U,"_"))throw new Error("cannot decode message ".concat(O.$typeName," from JSON: path names must be lowerCamelCase"));const H=U.replace(/[A-Z]/g,$=>"_"+$.toLowerCase());return H[0]==="_"?H.substring(1):H}))}(Q.message,T),!0;case"google.protobuf.Struct":return ite(Q.message,T),!0;case"google.protobuf.Value":return PX(Q.message,T),!0;case"google.protobuf.ListValue":return nte(Q.message,T),!0;default:if(a9(Q.desc)){const O=Q.desc.fields[0];return T===null?Q.clear(O):Q.set(O,RF(O,T,!0)),!0}return!1}}(t,s,c))return;if(s==null||Array.isArray(s)||typeof s!="object")throw new Error("cannot decode ".concat(t.desc," from JSON: ").concat(T1(s)));const h=new Map,_=new Map;for(const Q of t.desc.fields)_.set(Q.name,Q).set(Q.jsonName,Q);for(const Q of Object.entries(s)){var B=PA(Q,2);const T=B[0],D=B[1],O=_.get(T);if(O){if(O.oneof){if(D===null&&O.fieldKind=="scalar")continue;const P=h.get(O.oneof);if(P!==void 0)throw new gd(O.oneof,"oneof set multiple times by ".concat(P.name," and ").concat(O.name));h.set(O.oneof,O)}tte(t,O,D,c)}else{let P;if(T.startsWith("[")&&T.endsWith("]")&&(P=(u=c.registry)===null||u===void 0?void 0:u.getExtension(T.substring(1,T.length-1)))&&P.extendee.typeName===t.desc.typeName){const U=PA(_F(P),3),H=U[0],$=U[1],Z=U[2];tte(H,$,D,c),V1e(t.message,P,Z())}if(!P&&!c.ignoreUnknownFields)throw new Error("cannot decode ".concat(t.desc,' from JSON: key "').concat(T,'" is unknown'))}}}function tte(t,s,c,u){switch(s.fieldKind){case"scalar":(function(h,_,B){const Q=RF(_,B,!1);Q===SF?h.clear(_):h.set(_,Q)})(t,s,c);break;case"enum":(function(h,_,B,Q){const T=kX(_.enum,B,Q.ignoreUnknownFields,!1);T===SF?h.clear(_):T!==BF&&h.set(_,T)})(t,s,c,u);break;case"message":(function(h,_,B,Q){if(B===null&&_.message.typeName!="google.protobuf.Value")return void h.clear(_);const T=h.isSet(_)?h.get(_):eg(_.message);rT(T,B,Q),h.set(_,T)})(t,s,c,u);break;case"list":(function(h,_,B){if(_===null)return;const Q=h.field();if(!Array.isArray(_))throw new gd(Q,"expected Array, got "+T1(_));for(const T of _){if(T===null)throw new gd(Q,"list item must not be null");switch(Q.listKind){case"message":const D=eg(Q.message);rT(D,T,B),h.add(D);break;case"enum":const O=kX(Q.enum,T,B.ignoreUnknownFields,!0);O!==BF&&h.add(O);break;case"scalar":h.add(RF(Q,T,!0))}}})(t.get(s),c,u);break;case"map":(function(h,_,B){if(_===null)return;const Q=h.field();if(typeof _!="object"||Array.isArray(_))throw new gd(Q,"expected object, got "+T1(_));for(const D of Object.entries(_)){var T=PA(D,2);const O=T[0],P=T[1];if(P===null)throw new gd(Q,"map value must not be null");let U;switch(Q.mapKind){case"message":const $=eg(Q.message);rT($,P,B),U=$;break;case"enum":if(U=kX(Q.enum,P,B.ignoreUnknownFields,!0),U===BF)return;break;case"scalar":U=RF(Q,P,!0)}const H=ice(Q.mapKey,O);h.set(H,U)}})(t.get(s),c,u)}}const BF=Symbol();function kX(t,s,c,u){if(s===null)return t.typeName=="google.protobuf.NullValue"?0:u?br(t)[0].number:SF;switch(typeof s){case"number":if(Number.isInteger(s))return s;break;case"string":const h=br(t).find(_=>_.name===s);if(h!==void 0)return h.number;if(c)return BF}throw new Error("cannot decode ".concat(t," from JSON: ").concat(T1(s)))}const SF=Symbol();function RF(t,s,c){if(s===null)return c?dd(t.scalar,!1):SF;switch(t.scalar){case Dt.DOUBLE:case Dt.FLOAT:if(s==="NaN")return NaN;if(s==="Infinity")return Number.POSITIVE_INFINITY;if(s==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof s=="number"){if(Number.isNaN(s))throw new gd(t,"unexpected NaN number");if(!Number.isFinite(s))throw new gd(t,"unexpected infinite number");break}if(typeof s=="string"){if(s===""||Zee(s).call(s).length!==s.length)break;const u=Number(s);if(!Number.isFinite(u))break;return u}break;case Dt.INT32:case Dt.FIXED32:case Dt.SFIXED32:case Dt.SINT32:case Dt.UINT32:return rte(s);case Dt.BYTES:if(typeof s=="string"){if(s==="")return new Uint8Array(0);try{return Kz(s)}catch(u){const h=u instanceof Error?u.message:String(u);throw new gd(t,h)}}}return s}function ice(t,s){switch(t){case Dt.BOOL:switch(s){case"true":return!0;case"false":return!1}return s;case Dt.INT32:case Dt.FIXED32:case Dt.UINT32:case Dt.SFIXED32:case Dt.SINT32:return rte(s);default:return s}}function rte(t){if(typeof t=="string"){if(t===""||Zee(t).call(t).length!==t.length)return t;const s=Number(t);return Number.isNaN(s)?t:s}return t}function ite(t,s){if(typeof s!="object"||s==null||Array.isArray(s))throw new Error("cannot decode message ".concat(t.$typeName," from JSON ").concat(T1(s)));for(const u of Object.entries(s)){var c=PA(u,2);const h=c[0],_=c[1],B=gI(Pee);PX(B,_),t.fields[h]=B}}function PX(t,s){switch(typeof s){case"number":t.kind={case:"numberValue",value:s};break;case"string":t.kind={case:"stringValue",value:s};break;case"boolean":t.kind={case:"boolValue",value:s};break;case"object":if(s===null)t.kind={case:"nullValue",value:QX.NULL_VALUE};else if(Array.isArray(s)){const c=gI(O1e);nte(c,s),t.kind={case:"listValue",value:c}}else{const c=gI(N1e);ite(c,s),t.kind={case:"structValue",value:c}}break;default:throw new Error("cannot decode message ".concat(t.$typeName," from JSON ").concat(T1(s)))}return t}function nte(t,s){if(!Array.isArray(s))throw new Error("cannot decode message ".concat(t.$typeName," from JSON ").concat(T1(s)));for(const c of s){const u=gI(Pee);PX(u,c),br(t).push(u)}}function nce(t,s,c,u,h){let _,B=h.opid,Q=h.mode,T=h.codec,D=h.hasChangeBGPAddress,O=D!==void 0&&D,P=h.ortc;s.multiIP&&s.multiIP.gateway_ip&&(_=JSON.stringify({vocs_ip:[s.multiIP.uni_lbs_ip],vos_ip:[s.multiIP.gateway_ip]}));const U=s.role==="host"?"1":s.role==="audience"?"2":void 0,H={opid:B,unilbs:[{uri:22,detail:qo(qo(qo(qo(qo(qo({},c?{11:c,22:c}:{}),_?{5:_}:{}),de("USE_NEW_TOKEN")?{12:"1"}:{}),U?{17:U}:{}),s.apRequestDetail?{33:s.apRequestDetail}:{}),s.apRTM?{26:"RTM2"}:{}),serviceIds:u}],uid:s.uid||0,signal:P1e(t,s,{mode:Q,codec:T,joinGatewayStartTime:Date.now(),hasChangeBGPAddress:O}),ortc:x1e(P)},$=function(se,ge,me){const Qe=eg(se);try{rT(Qe,ge,function(we){return we?Object.assign(Object.assign({},ete),we):ete}(me))}catch(we){throw(Oe=we)instanceof Error&&dF(MZ).call(MZ,Oe.name)&&"field"in Oe&&typeof Oe.field=="function"?new Error("cannot decode ".concat(we.field()," from JSON: ").concat(we.message),{cause:we}):we}var Oe;return Qe.message}(xee,H),Z=aee(xee,$),te=de("ENABLE_AP_COMPRESS")?nO(Z,{raw:!0}):Z;return de("ENABLE_SDP_ENDPOINT_LOG")&&J.debug("[sdp-endpoint] request json",H," sdpEndpointRequestJson,length is ".concat(te.length)),te}function oce(t,s,c){var u,h,_;const B=de("ENABLE_AP_COMPRESS")?gQ(c,{raw:!0}):c,Q=RX(Fee,new Uint8Array(B));de("ENABLE_SDP_ENDPOINT_LOG")&&J.debug("[sdp-endpoint] response json",function(U,H,$){return u9(eg(U,H),function(Z){return Z?Object.assign(Object.assign({},jee),Z):jee}($))}(Fee,Q)," sdpEndpointResponseJson,length is ".concat(c.byteLength));const T=((u=Q.attributesResponse)===null||u===void 0?void 0:u.preSubSsrcs.map(U=>({a:U.a,a_rtx:U.aRtx,v:U.v,v_rtx:U.vRtx})))||[],D=(h=Q.attributesResponse)===null||h===void 0?void 0:h.subscribeAudioFilterTopN,O=(_=Q.attributesResponse)===null||_===void 0?void 0:_.extensions,P=Q.unilbsResponse[0].detail?Number(Q.unilbsResponse[0].detail[8]):void 0;return{detail:Q.detail,enter_ts:Number(Q.enterTs),leave_ts:Number(Q.leaveTs),opid:Number(Q.opid),response_body:Q.unilbsResponse.map(U=>({buffer:{cert:U.cert,cid:U.cid,cname:t.cname,code:U.code,detail:U.detail||{},edges_services:U.services.map(H=>({ip:H.ip,port:H.port,fingerprint:H.fingerprint,iceUfrag:H.ice[0],icePwd:H.ice[1]})),flag:U.flag,uid:Q.uid},uri:U.uri})),signalResponse:{attributes:{userAttributes:qo(qo({preSubSsrcs:T},typeof D=="number"?{subscribeAudioFilterTopN:D}:{}),O)},rejoin_token:Q.rejoinToken,return_vosip:!1,uid:t.stringUid?t.stringUid:Q.uid,intUid:Q.uid,vid:P,rtpCapabilities:F1e(s.rtpCapabilities,Q.addOrtc,Q.delOrtc)}}}function ote(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function yF(t){for(var s=1;sEt(t).call(t,u));return c?t.split(".".concat(c))[0].replace(/-/g,"."):t}catch{return J.debug("serverUrlToIp error, fallback to url",t),t}}function g9(t,s){t.addresses||(t.addresses=[]);const c=function(Q,T){if(de("CONNECT_GATEWAY_WITHOUT_DOMAIN"))return Q.map(P=>{let U=P.ip,H=P.port;return{address:"".concat(U,":").concat(H)}});const D=de("GATEWAY_DOMAINS");let O=D[1]&&Et(T).call(T,D[1])?1:0;return Q.map(P=>{let U=P.domain_prefix,H=P.port,$=P.ip;if(U)return{address:"".concat(U,".").concat(D[O++%D.length],":").concat(H)};const Z=/^[\.\:\d]+$/.test($),te=Z?"".concat($.replace(/[^\d]/g,"-"),".").concat(D[O++%D.length],":").concat(H):"".concat($,":").concat(H);return Z||J.debug("Cannot recognized as ip address: ".concat($,", use as host3")),{ip:$,port:H,address:te}})}(t.addresses,s),u=Array.isArray(t.detail)&&t.detail[18];if(u&&typeof u=="string"){const Q=u.split(";");for(let T=0;T=0&&t<.17?1:t>=.17&&t<.36?2:t>=.36&&t<.59?3:t>=.59&&t<=1?4:t>1?5:0}function am(t,s){let c,u,h;switch(s){case fo.CHOOSE_SERVER:u=4096,h="choose server";break;case fo.CLOUD_PROXY:u=1048576,h="proxy";break;case fo.CLOUD_PROXY_5:u=4194304,h="proxy5";break;case fo.CLOUD_PROXY_FALLBACK:u=4194310,h="proxy fallback";break;default:throw new qe(Ce.UNEXPECTED_ERROR,"multi unlibs response transformer get unknown service id",{csIp:t.detail&&t.detail[502],retry:!1})}if(t.response_body.forEach(_=>{_.buffer&&_.buffer.flag===u&&(c={code:_.buffer.code,addresses:(_.buffer.edges_services||[]).map(B=>yF(yF({},B),{},{ticket:_.buffer.cert})),server_ts:t.enter_ts,uid:_.buffer.uid,cid:_.buffer.cid,cname:_.buffer.cname,detail:yF(yF({},_.buffer.detail),t.detail),flag:_.buffer.flag,opid:t.opid,cert:_.buffer.cert,signalResponse:"signalResponse"in t?t.signalResponse:void 0})}),!c)throw new qe(Ce.MULTI_UNILBS_RESPONSE_ERROR,"cannot parse response ".concat(h," from multi unilbs response"),{csIp:t.detail&&t.detail[502]});return c}async function ate(t,s){return await Ut.all(t.addresses.map(async c=>({address:rg(c.ip),tcpport:c.port,udpport:c.port,username:s&&de("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?s.toString():Bn.username,password:s&&de("ENCRYPT_PROXY_USERNAME_AND_PSW")&&window.isSecureContext?await Of(s.toString()):Bn.password})))}function xX(t,s){const c=s.getMediaStreamTrack(!0).getSettings(),u=s.videoHeight||c.height,h=s.videoWidth||c.width;return u&&h?Math.max(Math.min(u,h)/Math.min(dc(t.height),dc(t.width)),1):(J.warning("can't get ori-track's height, default scale down 4 times for low stream"),4)}function Qp(t){let s=t.candidateType,c=t.relayProtocol,u=t.type,h=t.address,_=t.port;const B={candidateType:s,relayProtocol:c,protocol:t.protocol};if(u!=="local-candidate"){const Q=h.split(".");Q.length>=4&&(Q[1]="*",Q[2]="*"),B.address=Q.join("."),B.port=_}return B}function Hh(t){const s=t.split(":"),c=t.split(/[-.]/),u=Et(t).call(t,"-")?"-":".";let h=t;return s.length>1?c.length>1?(c[1]="**",h=c[0]+u+"**:"+s[s.length-1]):h=s.length>2?s[0]+u+"**:"+s[s.length-1]:"**:"+s[s.length-1]:c.length>1&&(h=c[0]+u+"**"),h}function Ate(t,s){return t.getTransceivers().find(c=>c.sender.track===s||c.receiver.track===s)}function E9(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:de("SVC_MODE");if(de("ENABLE_SVC"))return function(s){return s in bg}(t)?t:bg.L1T3}const cte={[rr.VIDEO]:[{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"},{key:"video-orientation",extensionName:"urn:3gpp:video-orientation"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"playout-delay",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"},{key:"video-content-type",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-content-type"},{key:"color-space",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/color-space"},{key:"video-timing",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/video-timing"}],[rr.AUDIO]:[{key:"ssrc-audio-level",extensionName:"urn:ietf:params:rtp-hdrext:ssrc-audio-level"},{key:"draft-holmer-rmcat-transport-wide-cc-extensions-01",extensionName:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"},{key:"abs-send-time",extensionName:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"}]};function lte(t){t.send&&(iT(rr.VIDEO,t.send.videoExtensions),iT(rr.AUDIO,t.send.audioExtensions)),t.recv&&(iT(rr.VIDEO,t.recv.videoExtensions),iT(rr.AUDIO,t.recv.audioExtensions)),t.sendrecv&&(iT(rr.VIDEO,t.sendrecv.videoExtensions),iT(rr.AUDIO,t.sendrecv.audioExtensions))}function dte(t,s){t.send&&(wF(rr.VIDEO,t.send.videoExtensions,s.send.videoExtensions),wF(rr.AUDIO,t.send.audioExtensions,s.send.audioExtensions)),t.recv&&(wF(rr.VIDEO,t.recv.videoExtensions,s.recv.videoExtensions),wF(rr.AUDIO,t.recv.audioExtensions,s.recv.audioExtensions))}function wF(t,s,c){s.forEach(u=>{var h;const _=cte[t].find(Q=>{var T;let D=Q.key;return Et(T=u.extensionName).call(T,D)});if(!_)return;const B=c.find(Q=>{let T=Q.extensionName;return Et(T).call(T,_.key)});B&&Et(h=B.extensionName).call(h,"gdpr_forbidden")&&(u.extensionName=B.extensionName)})}function iT(t,s){s.forEach(c=>{var u;const h=cte[t].find(_=>{var B;let Q=_.key;return Et(B=c.extensionName).call(B,Q)});Et(u=c.extensionName).call(u,"gdpr_forbidden")&&h&&(c.extensionName=h.extensionName)})}function ute(t){return t==="http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"||Et(t).call(t,"abs-send-time")}function vF(t){return t==="http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"||Et(t).call(t,"draft-holmer-rmcat-transport-wide-cc-extensions-01")}function gte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Ete(t){for(var s=1;s1&&arguments[1]!==void 0?arguments[1]:{},c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},u=arguments.length>3?arguments[3]:void 0;const h=s.filterRTX,_=s.filterVideoFec,B=s.filterAudioFec,Q=s.filterAudioCodec,T=s.filterVideoCodec,D=s.unsupportedVideoUplinkCodec,O=s.unsupportedVideoDownlinkCodec,P=c.useXR;let U=[],H=[],$=[],Z=[],te=!1,se=!1;if(wa(t).mediaDescriptions.forEach(me=>{u&&u!==me.attributes.direction||(me.media.mediaType!=="video"||te||(H=me.attributes.payloads,Z=me.attributes.extmaps,te=!0),me.media.mediaType!=="audio"||se||(U=me.attributes.payloads,$=me.attributes.extmaps,se=!0))}),!Z||H.length===0)throw new Error("Cannot get video capabilities from SDP.");if(!$||U.length===0)throw new Error("Cannot get audio capabilities from SDP.");if(H.forEach(me=>{var Qe;(Qe=me.rtpMap)!==null&&Qe!==void 0&&Qe.clockRate&&(me.rtpMap.clockRate=parseInt(me.rtpMap.clockRate)),P&&me.rtcpFeedbacks.push({type:"rrtr"})}),U.forEach(me=>{var Qe;(Qe=me.rtpMap)!==null&&Qe!==void 0&&Qe.clockRate&&(me.rtpMap.clockRate=parseInt(me.rtpMap.clockRate)),P&&me.rtcpFeedbacks.push({type:"rrtr"})}),h&&(U=U.filter(me=>{var Qe;return((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLowerCase())!=="rtx"}),H=H.filter(me=>{var Qe;return((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLowerCase())!=="rtx"})),_){const me=H.filter(we=>{var Ne;return/(red)|(ulpfec)|(flexfec)/i.test(((Ne=we.rtpMap)===null||Ne===void 0?void 0:Ne.encodingName)||"")}),Qe=wp(me,H).map(we=>we.payloadType),Oe=[...me.map(we=>we.payloadType),...Qe];H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType))}if(B&&(U=U.filter(me=>{var Qe;return!/(red)|(ulpfec)|(flexfec)/i.test(((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName)||"")})),Q&&(Q==null?void 0:Q.length)>0&&(U=U.filter(me=>{var Qe;return Et(Q).call(Q,((Qe=me.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLowerCase())||"")})),T&&(T==null?void 0:T.length)>0){const me=H.filter(Qe=>{var Oe;return Et(T).call(T,((Oe=Qe.rtpMap)===null||Oe===void 0?void 0:Oe.encodingName.toLowerCase())||"")});H=me.concat(h?[]:wp(me,H))}const ge=de("UNSUPPORTED_VIDEO_CODEC");if(ge&&ge.length>0){const me=H.filter(we=>we.rtpMap&&Et(ge).call(ge,we.rtpMap.encodingName.toLowerCase())),Qe=wp(me,H),Oe=me.concat(Qe).map(we=>we.payloadType);H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType)),J.debug("unsupportedVideoCodec: ".concat(ge,", toBeRemoved: ").concat(Oe))}if(D&&D.length>0&&u==="sendonly"){const me=H.filter(we=>we.rtpMap&&Et(D).call(D,we.rtpMap.encodingName.toLowerCase())),Qe=wp(me,H),Oe=me.concat(Qe).map(we=>we.payloadType);H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType)),J.debug("unsupportedVideoUplinkCodec: ".concat(D,", toBeRemoved: ").concat(Oe))}if(O&&O.length>0&&u==="recvonly"){const me=H.filter(we=>we.rtpMap&&Et(O).call(O,we.rtpMap.encodingName.toLowerCase())),Qe=wp(me,H),Oe=me.concat(Qe).map(we=>we.payloadType);H=H.filter(we=>!Et(Oe).call(Oe,we.payloadType)),J.debug("unsupportedVideoDownlinkCodec: ".concat(O,", toBeRemoved: ").concat(Oe))}return{audioCodecs:U,videoCodecs:H,audioExtensions:$,videoExtensions:Z}}function Yh(t){const s=wa(t);let c,u;for(const h of s.mediaDescriptions){if(!c){const _=h.attributes.iceUfrag,B=h.attributes.icePwd;if(!_||!B)throw new Error("Cannot get iceUfrag or icePwd from SDP.");c={iceUfrag:_,icePwd:B}}if(!u){const _=h.attributes.fingerprints;_.length>0&&(u={fingerprints:_})}}if(!u&&s.attributes.fingerprints.length>0&&(u={fingerprints:s.attributes.fingerprints}),!u||!c)throw new Error("Cannot get iceParameters or dtlsParameters from SDP.");return{iceParameters:c,dtlsParameters:u}}function FX(t,s){const c=[],u=t.attributes.ssrcGroups.filter(B=>B.semantic==="FID"),h=t.attributes.ssrcGroups.find(B=>B.semantic==="SIM"),_=t.attributes.ssrcs;if(h)h.ssrcIds.forEach(B=>{var Q;const T=(Q=u.find(D=>D.ssrcIds[0]===B))===null||Q===void 0?void 0:Q.ssrcIds[1];c.push({ssrcId:B,rtx:s?T:void 0})});else if(u.length>0){const B=u[0].ssrcIds[0],Q=u[0].ssrcIds[1];c.push({ssrcId:B,rtx:s?Q:void 0})}else{if(_.length===0)throw new Error("No ssrcs found on local media description.");c.push({ssrcId:_[0].ssrcId})}return c}function hte(t,s,c){const u=t.cname;let h=[];s&&(h=Cte(s)),h.length===0&&(h=t.iceParameters.candidates.map(T=>({foundation:T.foundation,componentId:"1",transport:T.protocol,priority:T.priority.toString(),connectionAddress:T.ip,port:T.port.toString(),type:T.type,extension:{}})),J.debug("Using candidates from gateway."));const _={fingerprints:t.dtlsParameters.fingerprints.map(T=>({hashFunction:T.algorithm,fingerprint:T.fingerprint}))},B={iceUfrag:t.iceParameters.iceUfrag,icePwd:t.iceParameters.icePwd};let Q;switch(t.dtlsParameters.role){case"server":Q="passive";break;case"client":Q="active";break;case"auto":Q="actpass"}return{dtlsParameters:_,iceParameters:B,candidates:h,rtpCapabilities:C9(t.rtpCapabilities),setup:Q,cname:u,preSSRCs:Ite(c)}}function Ite(t){const s=[];return Array.isArray(t)&&t.length>0&&t.forEach(c=>{s.push({kind:rr.VIDEO,ssrcMsg:[{ssrcId:c.v,rtx:c.v_rtx}],mslabel:"".concat(c.v,"_").concat(c.a)},{kind:rr.AUDIO,ssrcMsg:[{ssrcId:c.a}],mslabel:"".concat(c.v,"_").concat(c.a)})}),s}function Cte(t){let s=[];return t.ip&&typeof t.port=="number"&&(s=[{foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:t.ip,port:t.port.toString(),type:"host",extension:{}}],J.debug("Using remote candidate from AP ".concat(Hh(t.ip),":").concat(t.port)),t.ip6&&(s.push({foundation:"udpcandidate",componentId:"1",transport:"udp",priority:"2103266323",connectionAddress:t.ip6,port:t.port.toString(),type:"host",extension:{}}),J.debug("Using IPV6 remote candidate from AP ".concat(Hh(t.ip6),":").concat(t.port)))),s}function I9(t,s,c){const u=[],h=[];return t.forEach(_=>{let B=_.ssrcId,Q=_.rtx;const T=un(8,"track-"),D={ssrcId:B,attributes:Ete({label:T,mslabel:c=c||un(10,""),msid:"".concat(c," ").concat(T)},s&&{cname:s})};if(u.push(D),Q!==void 0){const O={ssrcId:Q,attributes:Ete({label:T,mslabel:c,msid:"".concat(c," ").concat(T)},s&&{cname:s})};u.push(O),h.push({semantic:"FID",ssrcIds:[B,Q]})}}),t.length>1&&h.push({semantic:"SIM",ssrcIds:t.map(_=>_.ssrcId)}),{ssrcs:u,ssrcGroups:h}}function Am(t,s){s instanceof po&&t.attributes.payloads.forEach(c=>{var u;const h=(u=c.rtpMap)===null||u===void 0?void 0:u.encodingName.toLowerCase();if(!h||["opus","pcmu","pcma","g722"].indexOf(h)===-1)return;c.fmtp||(c.fmtp={parameters:{}}),h==="opus"&&typeof de("OPUS_PTIME")=="number"?c.fmtp.parameters.ptime=de("OPUS_PTIME"):c.fmtp.parameters.minptime="10",c.fmtp.parameters.useinbandfec="1";const _=s._encoderConfig;_&&(h!=="pcmu"&&h!=="pcma"&&h!=="g722"&&(_.bitrate&&!Ln()&&(c.fmtp.parameters.maxaveragebitrate="".concat(Math.floor(1e3*_.bitrate))),_.sampleRate&&(c.fmtp.parameters.maxplaybackrate="".concat(_.sampleRate),c.fmtp.parameters["sprop-maxcapturerate"]="".concat(_.sampleRate)),_.stereo&&(c.fmtp.parameters.stereo="1",c.fmtp.parameters["sprop-stereo"]="1")),s instanceof xd&&h==="opus"&&s._config.DTX&&(c.fmtp.parameters.usedtx="1"))})}function GX(t){const s=t.attributes.unrecognized.findIndex(c=>c.attField==="x-google-flag"&&c.attValue==="conference");s!==-1&&t.attributes.unrecognized.splice(s,1)}function VX(t,s){var c;if(t.attributes.payloads.forEach(h=>{var _;((_=h.rtpMap)===null||_===void 0?void 0:_.encodingName.toLowerCase())==="h264"&&h.fmtp&&h.fmtp.parameters&&de("ENABLE_UP_SPS_PPS")&&(h.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),!(s instanceof pn&&s._encoderConfig&&s._hints.indexOf(gn.SCREEN_TRACK)===-1))return;const u=s._encoderConfig;Si().supportMinBitrate&&u.bitrateMin&&t.attributes.payloads.forEach(h=>{var _,B;Et(_=["h264","h265","vp8","vp9","av1"]).call(_,((B=h.rtpMap)===null||B===void 0?void 0:B.encodingName.toLowerCase())||"")&&(h.fmtp||(h.fmtp={parameters:{}}),h.fmtp.parameters["x-google-min-bitrate"]="".concat(u.bitrateMin))}),Si().supportMinBitrate&&!Et(c=s._hints).call(c,gn.LOW_STREAM)&&u.bitrateMax&&t.attributes.payloads.forEach(h=>{var _,B;Et(_=["h264","h265","vp8","vp9","av1"]).call(_,((B=h.rtpMap)===null||B===void 0?void 0:B.encodingName.toLowerCase())||"")&&(h.fmtp||(h.fmtp={parameters:{}}),h.fmtp.parameters["x-google-start-bitrate"]="".concat(de("X_GOOGLE_START_BITRATE")||Math.floor(u.bitrateMax)))})}function pte(t){if(t.media.mediaType!=="video")return;const s=Qi();if(s.name!==Fi.SAFARI&&s.os!==ns.IOS)return;const c=t.attributes.extmaps.findIndex(u=>/video-orientation/g.test(u.extensionName));c!==-1&&t.attributes.extmaps.splice(c,1)}function DF(t,s,c){if(!s)return;let u,h;if(t.media.mediaType==="video"?(u=c.videoExtensions,h=c.videoCodecs):(u=c.audioExtensions,h=c.audioCodecs),s.twcc===!0){const _=u.find(B=>vF(B.extensionName));if(_){const B=_.extensionName;t.attributes.extmaps.find(T=>vF(T.extensionName))||t.attributes.extmaps.push({entry:_.entry,extensionName:B}),function(T,D){return D.filter(O=>!!T.find(P=>P.payloadType===O.payloadType&&!!P.rtcpFeedbacks.find(U=>U.type==="transport-cc")))}(h,t.attributes.payloads).forEach(T=>{T.rtcpFeedbacks.find(D=>D.type==="transport-cc")||T.rtcpFeedbacks.push({type:"transport-cc"})})}}else if(s.twcc===!1){const _=t.attributes.extmaps.findIndex(B=>vF(B.extensionName));_!==-1&&t.attributes.extmaps.splice(_,1),t.attributes.payloads.forEach(B=>{const Q=B.rtcpFeedbacks.findIndex(T=>T.type==="transport-cc");Q!==-1&&B.rtcpFeedbacks.splice(Q,1)})}if(s.remb===!0){const _=u.find(B=>ute(B.extensionName));if(_){const B=_.extensionName;t.attributes.extmaps.find(T=>T.extensionName===B)||t.attributes.extmaps.push({entry:_.entry,extensionName:B}),function(T,D){return D.filter(O=>!!T.find(P=>P.payloadType===O.payloadType&&!!P.rtcpFeedbacks.find(U=>U.type==="goog-remb")))}(h,t.attributes.payloads).forEach(T=>{T.rtcpFeedbacks.find(D=>D.type==="goog-remb")||T.rtcpFeedbacks.push({type:"goog-remb"})})}}else if(s.remb===!1){const _=t.attributes.extmaps.findIndex(B=>ute(B.extensionName));_!==-1&&t.attributes.extmaps.splice(_,1),t.attributes.payloads.forEach(B=>{const Q=B.rtcpFeedbacks.findIndex(T=>T.type==="goog-remb");Q!==-1&&B.rtcpFeedbacks.splice(Q,1)})}}function KX(t,s,c){if(Ln()||t.media.mediaType!=="video"||!(s instanceof pn)||c!=="vp9"&&c!=="vp8"||c==="vp8"&&!de("SIMULCAST")||c==="vp9"&&de("ENABLE_SVC")||s._scalabilityMode===void 0||s._scalabilityMode.numSpatialLayers<=1)return;const u=c==="vp8"?2:s._scalabilityMode.numSpatialLayers,h=t.attributes.ssrcs[0],_=t.attributes.ssrcGroups.find(Q=>Q.semantic==="FID"&&Q.ssrcIds[0]===h.ssrcId),B={semantic:"SIM",ssrcIds:[h.ssrcId]};for(let Q=1;Qh.extensionName==="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension");return t.close(),u}catch{return}}async function HX(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const c=new RTCPeerConnection;c.addTransceiver("video",{direction:"sendonly"}),c.addTransceiver("audio",{direction:"sendonly"}),c.addTransceiver("video",{direction:"recvonly"}),c.addTransceiver("audio",{direction:"recvonly"});const u=function(){let Q=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},D=arguments.length>2?arguments[2]:void 0;const O=h9(D,Q,T,"sendonly"),P=h9(D,Q,T,"recvonly"),U={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},H={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},$={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(ig(O,P,"videoExtensions",U,H,$),ig(O,P,"videoCodecs",U,H,$),ig(O,P,"audioExtensions",U,H,$),ig(O,P,"audioCodecs",U,H,$),de("RAISE_H264_BASELINE_PRIORITY")){const Z=[],te=[];if($.videoCodecs.forEach((se,ge)=>{var me;if(((me=se.rtpMap)===null||me===void 0?void 0:me.encodingName.toLocaleLowerCase())==="h264"){var Qe,Oe;const we=$.videoCodecs[ge+1],Ne=we&&Ste(se,we),et=(Qe=se.fmtp)===null||Qe===void 0?void 0:Qe.parameters["profile-level-id"],st=(Oe=se.fmtp)===null||Oe===void 0?void 0:Oe.parameters["packetization-mode"];!et||et!==de("FIRST_H264_PROFILE_LEVEL_ID")||de("FIRST_PACKETIZATION_MODE")&&st!==de("FIRST_PACKETIZATION_MODE")?Ne?te.push([se,we]):te.push([se]):Ne?Z.push([se,we]):Z.push([se])}}),Z.length>0&&te.length>0){J.debug("raising H264 baseline profile priority"),$.videoCodecs.forEach((ge,me)=>{var Qe;if(((Qe=ge.rtpMap)===null||Qe===void 0?void 0:Qe.encodingName.toLocaleLowerCase())==="h264"){const Oe=Ste(ge,$.videoCodecs[me+1]),we=Z.shift()||te.shift()||[];we.length>0&&(Oe?$.videoCodecs.splice(me,2,...we):$.videoCodecs.splice(me,1,...we))}});const se=H.videoCodecs.filter(ge=>{var me,Qe;return((me=ge.rtpMap)===null||me===void 0?void 0:me.encodingName.toLocaleLowerCase())==="h264"&&((Qe=ge.fmtp)===null||Qe===void 0?void 0:Qe.parameters["profile-level-id"])!==de("FIRST_H264_PROFILE_LEVEL_ID")});if(se.length>0){const ge=wp(se,H.videoCodecs).map(Qe=>Qe.payloadType),me=[...se.map(Qe=>Qe.payloadType),...ge];H.videoCodecs=H.videoCodecs.filter(Qe=>!Et(me).call(me,Qe.payloadType))}de("FILTER_SEND_H264_BASELINE")&&(U.videoCodecs=U.videoCodecs.filter(ge=>{var me,Qe;return!(((me=ge.rtpMap)===null||me===void 0?void 0:me.encodingName.toLocaleLowerCase())==="h264"&&((Qe=ge.fmtp)===null||Qe===void 0?void 0:Qe.parameters["profile-level-id"])!==de("FIRST_H264_PROFILE_LEVEL_ID"))}))}return{send:U,recv:H,sendrecv:$}}return{send:U,recv:H,sendrecv:$}}(t,s,(await c.createOffer()).sdp),h=u.send,_=u.recv,B=u.sendrecv;try{c.close()}catch{}return{send:h,recv:_,sendrecv:B}}function _te(){const t={audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},s=h9(arguments.length>2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"recvonly"),c={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},u={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},h={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(ig(t,s,"videoExtensions",c,u,h),ig(t,s,"videoCodecs",c,u,h),ig(t,s,"audioExtensions",c,u,h),ig(t,s,"audioCodecs",c,u,h),de("RAISE_H264_BASELINE_PRIORITY")){const _=h.videoCodecs.findIndex(B=>B.rtpMap&&B.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&B.fmtp&&B.fmtp.parameters["profile-level-id"]==="42001f");if(_!==-1){const B=h.videoCodecs.findIndex(Q=>Q.rtpMap&&Q.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(B<_){J.debug("raising H264 baseline profile priority");const Q=h.videoCodecs[_];h.videoCodecs.splice(_,1),h.videoCodecs.splice(B,0,Q)}B!==-1&&(u.videoCodecs=u.videoCodecs.filter(Q=>!(Q.rtpMap&&Q.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&Q.fmtp&&Q.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:c,recv:u,sendrecv:h}}function ig(t,s,c,u,h,_){if(c==="videoExtensions"||c==="audioExtensions"){const B=[];return t[c].forEach(Q=>{s[c].some((T,D)=>{if(Q.entry===T.entry&&Q.extensionName===T.extensionName)return B.push(D),!0})?_[c].push(Q):u[c].push(Q)}),void s[c].forEach((Q,T)=>{B.indexOf(T)===-1&&h[c].push(Q)})}if(c==="videoCodecs"||c==="audioCodecs"){const B=[];return t[c].forEach(Q=>{s[c].some((T,D)=>{if(Q.payloadType===T.payloadType&&JSON.stringify(Q)===JSON.stringify(T))return B.push(D),!0})?_[c].push(Q):u[c].push(Q)}),void s[c].forEach((Q,T)=>{B.indexOf(T)===-1&&h[c].push(Q)})}}function C9(t){const s=t.send,c=t.recv,u=t.sendrecv;if(!u){if(!s||!c)throw new Error("cannot merge rtp capabilities because one of send or recv is empty!");return{send:s,recv:c}}let h,_;return s?(h={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},h.audioCodecs=[...s.audioCodecs,...u.audioCodecs],h.videoCodecs=[...s.videoCodecs,...u.videoCodecs],h.audioExtensions=[...s.audioExtensions,...u.audioExtensions],h.videoExtensions=[...s.videoExtensions,...u.videoExtensions]):h=go(u),c?(_={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},_.audioCodecs=[...c.audioCodecs,...u.audioCodecs],_.videoCodecs=[...c.videoCodecs,...u.videoCodecs],_.audioExtensions=[...c.audioExtensions,...u.audioExtensions],_.videoExtensions=[...c.videoExtensions,...u.videoExtensions]):_=go(u),{send:h,recv:_}}function nT(t){t.media.mediaType==="audio"&&t.attributes.payloads.filter(s=>{var c;return((c=s.rtpMap)===null||c===void 0?void 0:c.encodingName.toLowerCase())==="opus"}).forEach(s=>{s.fmtp||(s.fmtp={parameters:{}}),s.fmtp.parameters.stereo="1",s.fmtp.parameters["sprop-stereo"]="1"})}function p9(t,s,c,u){let h=[];if(t===rr.VIDEO){if(de("H264_PROFILE_LEVEL_ID")&&u==="h264"&&(h=s.videoCodecs.filter(_=>{var B;return Et(B=_.rtpMap&&_.rtpMap.encodingName.toLowerCase()||"").call(B,u)&&_&&_.fmtp&&_.fmtp.parameters["profile-level-id"]===de("H264_PROFILE_LEVEL_ID")})),!Array.isArray(h)||h.length===0){let _=[];const B=[],Q=[],T=[];if(c.videoCodecs.forEach(D=>{const O=D.rtpMap&&D.rtpMap.encodingName.toLowerCase()||"";Et(O).call(O,u)?_.push(D):Et(O).call(O,"vp9")?B.push(D):Et(O).call(O,"vp8")?Q.push(D):Et(O).call(O,"h264")&&T.push(D)}),_.length===0){let D="";B.length!==0?(_=B,D="vp9"):Q.length!==0?(_=Q,D="vp8"):T.length!==0&&(_=T,D="h264"),J.warning("codec ".concat(u," not included in rtpCapabilities, fallback to default payloads: ").concat(D))}_.length!==0&&(h=s.videoCodecs.filter(D=>_.some(O=>O.payloadType===D.payloadType)))}if(h.length===0&&(J.warning("codec ".concat(u," not included in rtpCapabilities, fallback to default payloads: ").concat(s.videoCodecs[0].rtpMap&&s.videoCodecs[0].rtpMap.encodingName)),h=s.videoCodecs),de("USE_PUB_RTX")||de("USE_SUB_RTX")){const _=wp(h,s.videoCodecs);h=[...h,..._]}}else{h=s.audioCodecs.filter(B=>{var Q;return Et(Q=B.rtpMap&&B.rtpMap.encodingName.toLowerCase()||"").call(Q,u)});const _=s.audioCodecs.filter(B=>{var Q;return Et(Q=B.rtpMap&&B.rtpMap.encodingName.toLowerCase()||"").call(Q,"red")});h.length===0&&(J.warning("codec ".concat(u," not included in rtpCapabilities, fallback to opus")),h=s.audioCodecs.filter(B=>{var Q;return Et(Q=B.rtpMap&&B.rtpMap.encodingName.toLowerCase()||"").call(Q,"opus")})),de("ENABLE_AUDIO_RED")&&_.length!==0&&(h=[..._,...h])}return h}function wp(t,s){const c=t.map(u=>u.payloadType.toString());return s.filter(u=>u.rtpMap&&u.rtpMap.encodingName==="rtx"&&u.fmtp&&u.fmtp.parameters.apt&&Et(c).call(c,u.fmtp&&u.fmtp.parameters.apt))}async function Yc(t,s,c){const u=s.toString(),h=mte(u,"offer","remote","exchangeSDP");await t.setRemoteDescription({type:"offer",sdp:u});const _=await t.createAnswer();if(!_.sdp)throw new Error("cannot get answer sdp");let B=_.sdp;B=f9(B,c||{}),h==null||h(B||""),await t.setLocalDescription({type:"answer",sdp:B})}function f9(t,s,c){if(de("FORBID_MODIFY_LOCAL_OFFER_SDP"))return t;const u=wa(t),h=s.useXR;return u.mediaDescriptions.forEach(_=>{var B;_.attributes.mid&&(Array.isArray(c)&&!Et(c).call(c,_.attributes.mid)||(_.media.mediaType==="audio"&&nT(_),_.media.mediaType==="video"&&function(Q){Q.media.mediaType==="video"&&de("ENABLE_DOWN_SPS_PPS")&&Q.attributes.payloads.filter(T=>{var D;return((D=T.rtpMap)===null||D===void 0?void 0:D.encodingName.toLowerCase())==="h264"}).forEach(T=>{T.fmtp||(T.fmtp={parameters:{}}),T.fmtp.parameters["sps-pps-idr-in-keyframe"]="1"})}(_),h&&Et(B=["audio","video"]).call(B,_.media.mediaType)&&_.attributes.payloads.forEach(Q=>{Q.rtcpFeedbacks.findIndex(T=>T.type==="rrtr")===-1&&Q.rtcpFeedbacks.push({type:"rrtr"})})))}),X1(u)}function mte(t,s,c,u){if(de("SDP_LOGGING"))return J.upload("exchanging ".concat(c," ").concat(s," SDP during P2PConnection.").concat(u,` -`),t),s==="offer"?h=>{mte(h,"answer",c==="local"?"remote":"local",u)}:void 0}async function Bte(t,s,c){try{var u;if(!Si().supportSetRtpSenderParameters||!function(T){return T==="vp9"||T==="av1"}(t)||!de("ENABLE_SVC"))return;const h={},_={},B=s.getParameters(),Q=(u=B.encodings)===null||u===void 0?void 0:u[0];_.scalabilityMode=E9(c),Q&&Object.assign(Q,_),Object.assign(B,h),await s.setParameters(B),J.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode success: ".concat(JSON.stringify(B.encodings)))}catch(h){J.debug("[updateAdaptation] updateRtpSenderEncodings scalabilityMode failed",h)}}function bF(t){const s=de("COMPATIBLE_SDP_EXTENSION");return!!(Array.isArray(s)&&s.length>0)&&s.some(c=>Et(t).call(t,c))}function Ste(t,s){try{var c;return((c=t.fmtp)===null||c===void 0?void 0:c.parameters.apt)===s.payloadType.toString()}catch{return!1}}const Rte={};function jh(t){(!(arguments.length>1&&arguments[1]!==void 0)||arguments[1])&&J.debug("install service ".concat(t.name)),Rte[t.name]=t}function aE(t){const s=Rte[t];if(!s)throw new tt(Ce.INVALID_OPERATION,"".concat(t," not found, please use AgoraRTC.use(").concat(t,"Service) to load it first"));return s}function yte(t,s){return aE("DataStream").create(t,s)}function NF(){return aE("InterceptFrame").create()}function YX(t,s){return!(t.length<4||t.length>256)&&!(s.length<22||s.length>256)}function Qte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function qa(t){for(var s=1;s$.fingerprint)||de("FINGERPRINT")||(J.debug("[".concat(this.store.clientId,"] Dc is not supported, because fingerprint does not exist")),O=!0):(J.debug("[".concat(this.store.clientId,"] Dc is not supported, because ticket length is incorrect, it has to be between 22 and 255")),O=!0),O&&this.resetSignal()}this.store.joinGatewayStart(),s.cloudProxyServer!=="disabled"&&(this.hasChangeBGPAddress=!0);const h=Date.now();let _=jX.get(s.cname);if(_||(_=new Map,jX.set(s.cname,_)),this._isProactiveJoin=!0,_.has(s.uid)){const O=new qe(Ce.UID_CONFLICT);throw qt.joinGateway(s.sid,{lts:h,succ:!1,ec:O.code,addr:null,uid:s.uid,cid:s.cid,firstSuccess:this._isProactiveJoin,isProxy:!!s.proxyServer||this.usingProxy,signalChannel:this.store.useDcSignal?"1":"0",preload:s.preload}),O}_.set(s.uid,!0),this.joinInfo=s,this.key=c;let B=0;this.joinGatewayStartTime=h;const Q=s.proxyServer,T=this.store.useDcSignal?"datachannel":"websocket";try{J.debug("[".concat(this.store.clientId,"] use ").concat(T," join uid ").concat(B));const O=s.gatewayAddrs.map(U=>{const H=ir(U.address.split(":"),2),$={host:H[0],port:H[1]};return s.proxyServer&&($.proxy=s.proxyServer),$});let P;P=this.store.useDcSignal?await this.signal.init(s.apResponse.addresses):await this.signal.init(O),B=P.uid,J.debug("[".concat(this.store.clientId,"] ").concat(T," join uid ").concat(B," cost ").concat(Date.now()-this.joinGatewayStartTime))}catch(O){var D;throw O.code===Ce.INIT_DATACHANNEL_TIMEOUT&&this.signal.__name__==="AgoraRTCSignal"||qt.joinGateway(s.sid,{lts:h,succ:!1,ec:((D=O.data)===null||D===void 0?void 0:D.desc)||O.code,errorMsg:O.message,addr:this.signal.url,uid:s.uid,cid:s.cid,firstSuccess:this._isProactiveJoin,isProxy:!!Q||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:s.preload}),O&&O.code===Ce.INIT_DATACHANNEL_TIMEOUT?(J.warning("[".concat(this.store.clientId,"] User join datachannel failed"),O.toString()),this.resetSignal(),O):(J.error("[".concat(this.store.clientId,"] User join failed"),O.toString()),_.delete(s.uid),this.signal.close(),O)}return this.state="CONNECTED",this.inChannelInfo.joinAt=Date.now(),J.debug("[".concat(this.store.clientId,"] Connected to gateway server")),this.trafficStatsInterval=window.setInterval(()=>{this.updateTrafficStats().catch(O=>{J.warning("[".concat(this.store.clientId,"] get traffic stats error"),O.toString())})},3e3),this.networkQualityInterval=window.setInterval(()=>{navigator&&navigator.onLine!==void 0&&!navigator.onLine?this.emit(No.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6}):this._signalTimeout?this.emit(No.NETWORK_QUALITY,{downlinkNetworkQuality:5,uplinkNetworkQuality:5}):this.state==="CONNECTED"&&this._statsCollector.trafficStats?this.emit(No.NETWORK_QUALITY,{uplinkNetworkQuality:TF(this._statsCollector.trafficStats.B_unq),downlinkNetworkQuality:TF(this._statsCollector.trafficStats.B_dnq)}):this.emit(No.NETWORK_QUALITY,{uplinkNetworkQuality:0,downlinkNetworkQuality:0})},2e3),this.store.joinGatewayEnd(),B}async leave(){let s=arguments.length>0&&arguments[0]!==void 0&&arguments[0],c=arguments.length>1?arguments[1]:void 0;if(this.state!=="DISCONNECTED"){c!==mi.FALLBACK&&(this.state="DISCONNECTING");try{s||this.signal.connectionState!==Ci.CONNECTED||await function(u,h){return h===1/0?u:Ut.race([u,eU(h)])}(this.signal.request(ur.LEAVE,void 0,!0),3e3)}catch(u){J.warning("[".concat(this.store.clientId,"] leave request failed, ignore"),u)}this.signal.close(c),c!==mi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}}async publish(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));const h={state:"offer",p2p_id:this.store.p2pId,ortc:c,mode:this.spec.mode,extend:de("PUB_EXTEND"),twcc:!!de("PUBLISH_TWCC"),rtx:!!de("USE_PUB_RTX")};try{return(await this.signal.request(ur.PUBLISH,h,!0))._message}catch(_){if(u&&_.data&&_.data.code===Br.ERR_PUBLISH_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receive publish error code, retry"),_.toString()),await this.tryUnpubBeforeRepub(s,c),this.publish(s,c,!1);throw _}}async publishDataChannel(s,c,u){var h;if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));const _={stream_id:c.streamId,ordered:c.ordered?1:0,max_retrans_times:(h=c.maxRetransmits)!==null&&h!==void 0?h:10,channel_id:c.channelId,metadata:c.metadata};try{await this.signal.request(ur.PUBLISH_DATASTREAM,_,!0)}catch(B){if(u&&B.data&&B.data.code===Br.ERR_PUBLISH_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receive publish datachannels error code, retry"),B.toString()),await this.tryUnpubDataChannelBeforeRepub(s,c),this.publishDataChannel(s,c,!1);throw B}}async unpublish(s,c){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await this.signal.request(ur.UNPUBLISH,{stream_id:c,ortc:s},!0)}catch(u){J.warning("[".concat(this.store.clientId,"] unpublish warning: "),u)}}async unpublishDataChannel(s){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ut.all(s.map(c=>this.signal.request(ur.UNPUBLISH_DATASTREAM,{channel_id:c},!0)))}catch(c){J.warning("unpublish datachannels warning: ",c)}}async presubscribe(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not presubscribe when connection state is ".concat(this.state));const h={stream_id:s,stream_type:c,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!de("SUBSCRIBE_TWCC"),rtx:!!de("USE_SUB_RTX")||void 0,extend:de("SUB_EXTEND"),svc:Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0};try{return await this.signal.request(ur.PRE_SUBSCRIBE,h,!0)}catch(_){if(u&&_.data&&_.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] pre-subscribe error, retry"),_.toString()),this.presubscribe(s,c,!1);throw _}}async subscribe(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not subscribe when connection state is ".concat(this.state));const h={stream_id:s,stream_type:c.stream_type,mode:this.spec.mode,codec:this.spec.codec,p2p_id:this.store.p2pId,twcc:!!de("SUBSCRIBE_TWCC"),rtx:!!de("USE_SUB_RTX"),extend:de("SUB_EXTEND"),ssrcId:c.ssrcId,svc:Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0};try{return(await this.signal.request(ur.SUBSCRIBE,h,!0))._message}catch(_){if(u&&_.data&&_.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receiver subscribe error code, retry"),_.toString()),await this.tryUnsubBeforeResub(s,c),await this.subscribe(s,c,!1);throw _}}async subscribeDataChannel(s,c,u){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not subscribe datachannel when connection state is ".concat(this.state));const h={uid:s,stream_id:c.id,channel_id:c.datachannelId};try{return void await this.signal.request(ur.SUBSCRIBE_DATASTREAM,h,!0)}catch(_){if(u&&_.data&&_.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receiver subscribe datachannel error code, retry"),_.toString()),await this.tryUnsubDataChannelBeforeResub(s,c),await this.subscribeDataChannel(s,c,!1);throw _}}async subscribeAll(s,c){if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not massSubscribe when connection state is ".concat(this.state));const u={p2p_id:this.store.p2pId,users:s,dtx:!1,rtx:!!de("USE_SUB_RTX"),twcc:!!de("SUBSCRIBE_TWCC"),svc:Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0};try{return await this.signal.request(ur.SUBSCRIBE_STREAMS,u,!0)}catch(h){if(c&&h.data&&h.data.code===Br.ERR_SUBSCRIBE_REQUEST_INVALID)return J.warning("[".concat(this.store.clientId,"] receiver massSubscribe error code, retry"),h.toString()),await this.tryMassUnsubBeforeResub(s),await this.subscribeAll(s,!1);throw h}}async setVideoProfile(s){const c=function(u){if(!(u.bitrateMax&&u.bitrateMin&&u.frameRate&&u.height&&u.width))return;let h=u.frameRate,_=u.width,B=u.height,Q=!0;return typeof h!="number"&&(h=h.exact||h.ideal||h.max||h.min||0,h||(Q=!1)),typeof _!="number"&&(_=_.exact||_.ideal||_.max||_.min||0,_||(Q=!1)),typeof B!="number"&&(B=B.exact||B.ideal||B.max||B.min||0,B||(Q=!1)),Q?{stream_type:0,width:_,height:B,fps:h,start_bps:1e3*u.bitrateMax,min_bps:1e3*u.bitrateMin,target_bps:1e3*u.bitrateMax}:void 0}(s);if(c)return this.signal.request(ur.SET_VIDEO_PROFILE,c);J.debug("[".concat(this.store.clientId,"] encoder config is not complete, do not report to gateway"))}async unsubscribe(s,c){try{await this.signal.request(ur.UNSUBSCRIBE,{p2p_id:this.store.p2pId,ortc:s,stream_id:c},!0)}catch(u){J.warning("[".concat(this.store.clientId,"] unsubscribe warning: "),u)}}async unsubscribeDataChannel(s,c){try{if(this.state!=="CONNECTED"&&this.state!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish when connection state is ".concat(this.state));await Ut.all(s.map(u=>this.signal.request(ur.UNSUBSCRIBE_DATASTREAM,{stream_id:u,uid:c},!0)))}catch(u){J.warning("unsubscribeDataChannel warning: ",u)}}async massUnsubscribe(s){try{await this.signal.request(ur.UNSUBSCRIBE_STREAMS,s,!0)}catch(c){J.warning("[".concat(this.store.clientId,"] massUnsubscribeAll warning: "),c)}}async reconnectPC(s){const c=s.iceParameters,u=s.dtlsParameters,h=s.rtpCapabilities;return{gatewayEstablishParams:await this.signal.request(ur.CONNECT_PC,{p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:{iceParameters:c,dtlsParameters:u,rtpCapabilities:h}},!0),gatewayAddress:this.getCurrentGatewayAddress()}}getGatewayInfo(){return this.signal.request(ur.GATEWAY_INFO)}async renewToken(s){await this.signal.request(ur.RENEW_TOKEN,s),this.key=s.token}updateClientRole(s,c){c&&(this._clientRoleOptions=Object.assign({},c)),de("CLIENT_ROLE_OPTIONS")&&(J.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(de("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," ")),this._clientRoleOptions=Object.assign({},de("CLIENT_ROLE_OPTIONS"))),this.role=s}async setClientRole(s,c){if(c&&(this._clientRoleOptions=Object.assign({},c)),de("CLIENT_ROLE_OPTIONS")&&(this._clientRoleOptions=Object.assign({},de("CLIENT_ROLE_OPTIONS")),J.debug("[".concat(this.store.clientId,"] Set roleOptions for ").concat(JSON.stringify(de("CLIENT_ROLE_OPTIONS"))," instead of ").concat(JSON.stringify(this._clientRoleOptions)," "))),this.state!=="CONNECTED")return void(this.role=s);let u,h=0;s==="audience"?this._clientRoleOptions&&this._clientRoleOptions.delay?(u=this._clientRoleOptions.delay,h=1):h=this._clientRoleOptions&&this._clientRoleOptions.level?this._clientRoleOptions.level:2:h=0;const _=Object.assign({},c);delete _.delay,delete _.level,await this.signal.request(ur.SET_CLIENT_ROLE,qa(qa({role:s,level:h,delay:u},_),{},{client_ts:Date.now()})),this.role=s}async setDualStreamMode(s,c,u){await this.signal.request(ur.SET_DUAL_STREAM_MODE,{mode:s},u,c)}async setRemoteVideoStreamType(s,c){await this.signal.request(ur.SWITCH_VIDEO_STREAM,{stream_id:s,stream_type:c})}async setDefaultRemoteVideoStreamType(s){await this.signal.request(ur.DEFAULT_VIDEO_STREAM,{stream_type:s})}async setStreamFallbackOption(s,c){await this.signal.request(ur.SET_FALLBACK_OPTION,{stream_id:s,fallback_type:c})}async pickSVCLayer(s,c){await this.signal.request(ur.PICK_SVC_LAYER,{stream_id:s,spatial_layer:c.spatialLayer,temporal_layer:c.temporalLayer})}async setRTM2Flag(s){await this.signal.request(ur.SET_RTM2_FLAG,{rtm2_flag:s})}async sendExtensionMessage(s,c,u){if(this.store.useP2P)return this.signal.sendExtensionMessage(s,c,u)}getInChannelInfo(){return this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt),qa({},this.inChannelInfo)}async setConfigure(s){if(s&&Array.isArray(s)&&s.length!==0)return this.signal.request(ur.CONFIGURE,s)}async getGatewayVersion(){return(await this.signal.request(ur.GATEWAY_INFO)).version}reset(){if(this.inChannelInfo.joinAt&&(this.inChannelInfo.duration=Date.now()-this.inChannelInfo.joinAt,this.inChannelInfo.joinAt=null),this.trafficStatsInterval&&(window.clearInterval(this.trafficStatsInterval),this.trafficStatsInterval=void 0),this.joinInfo){const s=jX.get(this.joinInfo.cname);s&&s.delete(this.joinInfo.uid)}this.joinInfo=void 0,this.key=void 0,this.networkQualityInterval&&(window.clearInterval(this.networkQualityInterval),this.networkQualityInterval=void 0),this.usingProxy=!1}updateTurnConfigFromSignal(){if(!this.joinInfo)return;const s=function(c){let u;return u=c.startsWith("dc")?c.match(/(dc\:\/\/)?([^:]+):(\d+)/):c.match(/(wss\:\/\/)?([^:]+):(\d+)/),u?{username:Bn.username,password:Bn.password,turnServerURL:u[2],tcpport:parseInt(u[3])+30,udpport:parseInt(u[3])+30,forceturn:!1}:null}((this.joinInfo.cloudProxyServer==="disabled"?this.signal.url:this.joinInfo.gatewayAddrs[this.signal.currentURLIndex].address)||"");this.joinInfo.turnServer.serversFromGateway=[],s&&this.joinInfo.turnServer.mode!=="off"&&this.joinInfo.cloudProxyServer==="disabled"&&this.joinInfo.turnServer.serversFromGateway.push(qa(qa({},Bn),{},{turnServerURL:s.turnServerURL,tcpport:s.tcpport,udpport:s.udpport,username:this.joinInfo.uid.toString(),password:this.joinInfo.token}))}async updateTrafficStats(){if(this.state!=="CONNECTED")return;const s=await this.signal.request(ur.TRAFFIC_STATS,void 0,!0);s.timestamp=Date.now(),s.ntp_offset!=null&&(this.ntpOffset=s.ntp_offset),s.peer_delay.forEach(c=>{const u=this._statsCollector.trafficStats&&this._statsCollector.trafficStats.peer_delay.find(h=>h.peer_uid===c.peer_uid);u&&u.B_st!==c.B_st&&xR(()=>{this.emit(No.STREAM_TYPE_CHANGE,c.peer_uid,c.B_st)})}),this._statsCollector.updateTrafficStats(s)}getJoinMessage(s){var c,u;if(!this.joinInfo||!this.key)throw new qe(Ce.UNEXPECTED_ERROR,"can not generate join message, no join info");return this.store.hasStartJoinChannel=!0,this.store.isABTestSuccess||this.emit(No.UPDATE_GATEWAY_CONFIG),u=this.store.clientId,Et(L2).call(L2,u)||L2.push(u),function(_,B,Q,T){var D,O,P,U,H;let $=T.key,Z=T.role,te=T.joinGatewayStartTime,se=T.hasChangeBGPAddress,ge=T.isPreallocation,me=T.ortc,Qe=T.currentURLIndex;const Oe=Object.assign({},B.apResponse);let we=!1;"signalResponse"in Oe&&Oe.signalResponse&&(_.p2pId===1&&(we=!0),ge=!1,delete Oe.signalResponse);let Ne=de("REPORT_APP_SCENARIO");if(typeof Ne!="string")try{Ne=JSON.stringify(Ne)}catch{Ne=void 0}Ne&&Ne.length>128&&(Ne=void 0);const et=eo(_),st=ry(_),Xt=((D=_.preSubOptions)===null||D===void 0?void 0:D.length)||0,lr=Xt>0?(O=_.preSubOptions)===null||O===void 0?void 0:O.map(at=>at.uid):void 0,ft=vs("PRE_SUB_NUM","number")||1,Ir=Xt>ft?Xt:ft,ui=Hee(),Nr=al(87)||Zb()||wf(117),Ki=(Ks()||vf(18,4,!1))&&Df(18,6,!0)&&Q.codec==="h264"&&de("ENABLE_ABSSENDTIME_AS_SENTTS"),it=!(((P=Oe.detail)===null||P===void 0?void 0:P[3])!=="CN"||!de("ENABLE_QUALITY_FALLBACK"))&&de("ENABLE_QUALITY_FALLBACK"),mt=!!de("ENABLE_AP_MULTI_IP")&&((U=Oe.detail)===null||U===void 0?void 0:U[5])==="multi-ip",Gt={license:B.license,p2p_id:_.p2pId,session_id:B.sid,app_id:B.appId,channel_key:$,channel_name:B.cname,sdk_version:W1,browser:navigator.userAgent,process_id:de("PROCESS_ID"),mode:_.useP2P?"p2p":Q.mode,codec:Q.codec,role:Z,has_changed_gateway:mt||se,ap_response:Oe,extend:de("JOIN_EXTEND"),details:{6:B.stringUid,cservice_map:B.cloudProxyServer==="proxy3"?"1":B.cloudProxyServer==="proxy5"?"2":void 0},features:qo({rejoin:!0},we?{multi_signaling:we}:{}),optionalInfo:B.optionalInfo,appScenario:Ne,attributes:{userAttributes:qo(qo({enableEncodedTransform:(!!de("ENABLE_AUDIO_METADATA")||!!de("ENABLE_AUDIO_PTS"))&&Nr||!!de("ENABLE_AUDIO_TOPN")&&Tf(Fi.CHROME,87,116)||void 0,enableAudioMetadata:!!de("ENABLE_AUDIO_METADATA")&&Nr,enableAudioPts:!!de("ENABLE_AUDIO_PTS")&&Nr,topnSmoothLevel:de("TOPN_SMOOTH_LEVEL"),topnNewSpeakerDelay:de("TOPN_NEW_SPEAKER_DELAY"),topnSwitchHoldMs:de("TOPN_SWITCH_HOLD_MS"),topnAudioGain:de("TOPN_AUDIO_GAIN"),enableNetworkQualityProbe:_.networkQualityProbe,enablePublishedUserList:de("ENABLE_PUBLISHED_USER_LIST"),enableUserList:de("ENABLE_USER_LIST"),maxSubscription:de("MAX_SUBSCRIPTION"),subscribeAudioFilterTopN:vs("SUBSCRIBE_AUDIO_FILTER_TOPN","number"),enablePublishAudioFilter:vs("ENABLE_PUBLISH_AUDIO_FILTER","boolean"),enableUserLicenseCheck:vs("ENABLE_USER_LICENSE_CHECK","boolean"),enableRTX:de("USE_PUB_RTX")===!0||de("USE_SUB_RTX")===!0||void 0,disableFEC:de("DISABLE_FEC"),enableNTPReport:!!de("ENABLE_NTP_REPORT")||void 0,enableInstantVideo:st,enableFulllinkAvSync:!!de("ENABLE_FULL_LINK_AV_SYNC")||void 0,enableDataStream2:vs("ENABLE_DATASTREAM_2","boolean"),enableAutFeedback:N4(),rtm2Flag:typeof B.rtmFlag=="number"?B.rtmFlag:void 0,enableUserAutoRebalanceCheck:!!de("ENABLE_USER_AUTO_REBALANCE_CHECK"),enableXR:vs("USE_XR","boolean"),enableLossbasedBwe:vs("ENABLE_LOSSBASED_BWE","boolean"),enableAutCC:b4(),enableCCFallback:vs("ENABLE_CC_FALLBACK","boolean"),enablePreallocPC:ge,preSubUid:et?lr:void 0,preSubNum:et?Ir:void 0,enablePubTWCC:vs("PUBLISH_TWCC","boolean"),enableSubTWCC:vs("SUBSCRIBE_TWCC","boolean"),enablePubRTX:vs("USE_PUB_RTX","boolean"),enableSubRTX:vs("USE_SUB_RTX","boolean"),enableSubSVC:de("ENABLE_SVC")?de("ENABLE_SVC_DEFAULT_CODECS"):Array.isArray(de("SVC"))&&de("SVC").length!==0?de("SVC"):void 0,enableSvcExtended:de("ENABLE_SVC")&&Array.isArray(de("SVC_EXTENDED"))&&de("SVC_EXTENDED").length!==0?de("SVC_EXTENDED"):void 0,enableVosFallback:de("ENABLE_VOS_FALLBACK"),enableQualityFallback:it},ui),{},{audioDuplicate:vs("ENABLE_AUDIO_RED","boolean")?(H=vs("AUDIO_DUPLICATE_NUM","number"))!==null&&H!==void 0?H:2:void 0,senttsUsesAbsSendTime:!!Ki||void 0,enableDualStreamFlag:vs("ENABLE_DUAL_STREAM_FLAG","boolean")})},join_ts:te,ortc:me||{}};return B.stringUid&&(Gt.string_uid=B.stringUid),B.aesmode&&B.aespassword&&(Gt.aes_mode=B.aesmode,de("ENCRYPT_AES")?(Gt.aes_secret=B.aespassword,Gt.aes_encrypt=!0):Gt.aes_secret=B.aespassword,B.aessalt&&(Gt.aes_salt=B.aessalt)),Oe.addresses[Qe]&&(Gt.ap_response.ticket=Oe.addresses[Qe].ticket,delete Oe.addresses),B.defaultVideoStream!==void 0&&(Gt.default_video_stream=B.defaultVideoStream),Gt}(this.store,this.joinInfo,this.spec,{key:this.key,role:this.role,joinGatewayStartTime:this.joinGatewayStartTime,hasChangeBGPAddress:this.hasChangeBGPAddress,isPreallocation:!((c=this.isPreallocation)===null||c===void 0||!c.call(this)),ortc:s,currentURLIndex:this.signal.currentURLIndex})}getRejoinMessage(){if(!this.joinInfo)throw new qe(Ce.UNEXPECTED_ERROR,"can not generate rejoin message, no join info");return{session_id:this.joinInfo.sid,channel_name:this.joinInfo.cname,cid:this.joinInfo.cid,uid:this.joinInfo.uid,vid:Number(this.joinInfo.vid)}}handleSignalEvents(){this.signal.on(er.WS_RECONNECT_CREATE_CONNECTION,s=>{this.joinGatewayStartTime=Date.now()}),this.signal.on(er.WS_RECONNECTING,s=>{this.joinInfo&&qt.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:s||Ss.NETWORK_ERROR}),this.joinInfo&&(this.state="RECONNECTING",qt.sessionInit(this.joinInfo.sid,{lts:new Date().getTime(),extend:this.isSignalRecover?{recover:!0}:{rejoin:!0},cname:this.joinInfo.cname,appid:this.joinInfo.appId,mode:this.spec.mode,stringUid:this.joinInfo.stringUid,channelProfile:this.spec.mode==="live"?1:0,channelMode:0,lsid:this.joinInfo.sid,clientRole:this.role==="audience"?2:1,buildFormat:1}),this.isSignalRecover=!1,this.joinGatewayStartTime=Date.now())}),this.signal.on(er.WS_CLOSED,s=>{let c;switch(s){case mi.LEAVE:c=Ss.LEAVE;break;case mi.UID_BANNED:case mi.IP_BANNED:case mi.CHANNEL_BANNED:case mi.SERVER_ERROR:c=Ss.SERVER_ERROR;break;case mi.FALLBACK:c=Ss.FALLBACK;break;case mi.LICENSE_MISSING:case mi.LICENSE_EXPIRED:case mi.LICENSE_MINUTES_EXCEEDED:case mi.LICENSE_PERIOD_INVALID:case mi.LICENSE_MULTIPLE_SDK_SERVICE:case mi.LICENSE_ILLEGAL:case mi.TOKEN_EXPIRE:c=s;break;default:c=Ss.NETWORK_ERROR}J.debug("[".concat(this.store.clientId,"] [signal] websocket closed, reason: ").concat(c||"undefined -> "+Ss.NETWORK_ERROR)),this.joinInfo&&qt.WebSocketQuit(this.joinInfo.sid,{lts:Date.now(),succ:s===mi.LEAVE?1:-1,cname:this.joinInfo.cname,uid:this.joinInfo.uid,cid:this.joinInfo.cid,errorCode:c}),this._disconnectedReason=s,s!==mi.FALLBACK&&(this.state="DISCONNECTED"),this.reset()}),this.signal.on(er.WS_CONNECTED,()=>{if(this.updateTurnConfigFromSignal(),this.state="CONNECTED",this.joinInfo){if(this.role==="audience"){const s=de("CLIENT_ROLE_OPTIONS")||this._clientRoleOptions;s&&(s.level||s.delay)&&(J.debug("[".concat(this.store.clientId,"] patch to send set client role, role: ").concat(this.role,", mode: ").concat(this.spec.mode,", level: ").concat(s.level,", delay: ").concat(s.delay)),this.setClientRole(this.role,s))}if(qt.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!0,ec:null,vid:this.joinInfo.vid,addr:this.signal.url,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload,isABTestSuccess:this.store.isABTestSuccess}),this._isProactiveJoin=!1,this.joinInfo.useLocalAccessPoint&&this.joinInfo.setLocalAPVersion===1){const s=this.signal.url&&this.signal.url.match(/wss\:\/\/([^:]+):(\d+)/);if(!s)return void J.error("[".concat(this.store.clientId,"] set local access point after joined failed: ").concat(s));Dn("EVENT_REPORT_DOMAIN",s[1]),Dn("EVENT_REPORT_BACKUP_DOMAIN",s[1]),Dn("LOG_UPLOAD_SERVER","".concat(s[1],":6444"))}}}),this.signal.on(Ur.ON_UPLINK_STATS,s=>{this._statsCollector.updateUplinkStats(s)}),this.signal.on(er.REQUEST_RECOVER,(s,c,u)=>{if(!this.joinInfo)return u(new qe(Ce.UNEXPECTED_ERROR,"gateway: can not recover, no join info"));s&&(this.joinInfo.multiIP=s,this.hasChangeBGPAddress=!0),this.isSignalRecover=!0,$o(this,No.REQUEST_NEW_GATEWAY_LIST).then(c).catch(u)}),this.signal.on(er.REQUEST_JOIN_INFO,async(s,c,u)=>{var h,_,B;if(this.updateTurnConfigFromSignal(),this.store.useP2P)return void s(this.getJoinMessage());const Q=go((h=this.joinInfo)===null||h===void 0?void 0:h.turnServer);if(de("NEW_TURN_MODE")&&Q&&((_=this.joinInfo)===null||_===void 0?void 0:_.cloudProxyServer)==="disabled"){var T;let H=Q.servers.map(te=>"turnServerURL"in te&&de("USE_TURN_IP")?qa(qa({},te),{},{turnServerURL:QF(te.turnServerURL)}):te),$=(T=Q.serversFromGateway)===null||T===void 0?void 0:T.map(te=>de("USE_TURN_IP")?qa(qa({},te),{},{turnServerURL:QF(te.turnServerURL)}):te);const Z=this.signal.currentURLIndex;H.length>0&&(H=[H[Z%H.length]],Q.servers=H),Array.isArray($)&&$.length>0&&($=[$[0]],Q.serversFromGateway=$),J.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(Z))}const D=await $o(this,No.REQUEST_P2P_CONNECTION_PARAMS,{turnServer:Q,cloudProxyServer:(B=this.joinInfo)===null||B===void 0?void 0:B.cloudProxyServer}),O=D.iceParameters,P=D.dtlsParameters,U=D.rtpCapabilities;try{s(this.getJoinMessage({iceParameters:O,dtlsParameters:P,rtpCapabilities:U,version:"2"}))}catch(H){c(H)}}),this.signal.on(er.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE,(s,c)=>{if(this.joinInfo&&this.joinInfo.signalResponse){const u=this.joinInfo.apResponse.addresses[this.signal.currentURLIndex],h=this.joinInfo.signalResponse,_=de("FINGERPRINT")||u.fingerprint;if(!u.iceUfrag||!u.icePwd||!_)return J.debug("cannot get iceUfrag or icePwd or fingerprint from serverAddress"),void s(void 0);const B=qa(qa({},h),{},{ortc:{dtlsParameters:{role:"client",fingerprints:[{algorithm:"sha-256",fingerprint:de("FINGERPRINT")||u.fingerprint}]},iceParameters:{candidates:[],iceUfrag:u.iceUfrag,icePwd:u.icePwd},rtpCapabilities:h.rtpCapabilities,cname:"o/i14u9pJrxRKAsu"}});this.joinInfo&&delete this.joinInfo.signalResponse,s(B)}else s(void 0)}),this.signal.on(er.REQUEST_REJOIN_INFO,s=>{s(this.getRejoinMessage())}),this.signal.on(er.REPORT_JOIN_GATEWAY,(s,c)=>{if(!this.joinInfo)return;let u,h="";var _;s instanceof qe?(u=((_=s.data)===null||_===void 0?void 0:_.desc)||s.code,h=s.message):u=s,qt.joinGateway(this.joinInfo.sid,{lts:this.joinGatewayStartTime,succ:!1,ec:u,errorMsg:h,addr:c,uid:this.joinInfo.uid,cid:this.joinInfo.cid,firstSuccess:this._isProactiveJoin,isProxy:!!this.joinInfo.proxyServer||this.usingProxy,signalChannel:this.signal.__name__==="DataChannelSignal"?"1":"0",preload:this.joinInfo.preload})}),this.signal.on(er.IS_P2P_DISCONNECTED,s=>{s(nh(this,No.IS_P2P_DISCONNECTED))}),this.signal.on(er.DISCONNECT_P2P,()=>{this.emit(No.DISCONNECT_P2P)}),this.signal.on(er.REQUEST_SUCCESS,()=>{this._signalTimeout=!1}),this.signal.on(er.REQUEST_TIMEOUT,()=>{this._signalTimeout=!0}),this.signal.on(er.JOIN_RESPONSE,s=>{const c=this.getCurrentGatewayAddress();this.emit(No.JOIN_RESPONSE,s,c)}),this.signal.on(er.PRE_CONNECT_PC,async(s,c)=>{if(this.joinInfo){var u,h;this.updateTurnConfigFromSignal();const B=this.getCurrentGatewayAddress(),Q=go((u=this.joinInfo)===null||u===void 0?void 0:u.turnServer);if(de("NEW_TURN_MODE")&&Q&&((h=this.joinInfo)===null||h===void 0?void 0:h.cloudProxyServer)==="disabled"){var _;let O=Q.servers.map(H=>"turnServerURL"in H&&de("USE_TURN_IP")?qa(qa({},H),{},{turnServerURL:QF(H.turnServerURL)}):H),P=(_=Q.serversFromGateway)===null||_===void 0?void 0:_.map(H=>de("USE_TURN_IP")?qa(qa({},H),{},{turnServerURL:QF(H.turnServerURL)}):H);const U=this.signal.currentURLIndex;O.length>0&&(O=[O[U%O.length]],Q.servers=O),Array.isArray(P)&&P.length>0&&(P=[P[0]],Q.serversFromGateway=P),J.debug("[".concat(this.store.clientId,"] use single turn, use turn server index: ").concat(U,",in pre pc"))}const T=this.joinInfo.apResponse.addresses[this.signal.currentURLIndex],D=de("FINGERPRINT")||T.fingerprint;if(B&&D){const O=Cte(B);$o(this,No.PRE_CONNECT_PC,{candidates:O,fingerprint:D,turnServer:Q,iceUfrag:T.iceUfrag,icePwd:T.icePwd}).then(P=>{s==null||s(P)}).catch(c||(()=>{}))}}}),this.signal.on(er.RECOVER_NOTIFICATION,s=>{this.joinInfo&&typeof de("AP_REQUEST_DETAIL")=="string"&&(this.joinInfo.apRequestDetail="".concat(de("AP_REQUEST_DETAIL"),";").concat(s))}),this.signal.on(er.VOS_FALLBACK,s=>{this.emit(No.VOS_FALLBACK,s)}),this.signal.on(er.DATACHANNEL_FAILBACK,s=>{J.warning("[".concat(this.store.clientId,"] User join datachannel failed")),this.reset(),this.resetSignal(),this.emit(No.DATACHANNEL_FAILBACK)})}async tryUnsubBeforeResub(s,c){try{await this.signal.request(ur.UNSUBSCRIBE,{p2p_id:this.store.p2pId,stream_id:s,ortc:[c]},!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] tryUnsubBeforeResub warning"),u),u}}async tryUnsubDataChannelBeforeResub(s,c){try{await this.signal.request(ur.UNSUBSCRIBE,{stream_id:c.id},!0)}catch(u){throw J.warning("unsubscribe datachannel warning",u),u}}async tryUnpubBeforeRepub(s,c){try{await this.signal.request(ur.UNPUBLISH,{stream_id:s,ortc:c},!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] tryUnpubBeforeRepub warning: "),u),u}}async tryUnpubDataChannelBeforeRepub(s,c){try{await this.signal.request(ur.UNPUBLISH_DATASTREAM,{channnel_id:c.channelId},!0)}catch(u){throw J.warning("unpublish datastream warning: ",u),u}}async tryMassUnsubBeforeResub(s){const c={users:s.map(u=>({stream_id:u.stream_id,stream_type:u.stream_type}))};try{await this.signal.request(ur.UNSUBSCRIBE_STREAMS,c,!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] tryMassUnsubBeforeResub warning"),u),u}}async muteLocal(s,c){const u={action:s.find(h=>h.stream_type===En.Audio)?"mute_local_audio":"mute_local_video",p2p_id:this.store.p2pId,ortc:s,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway muteLocal warning: "),h),h}}async unmuteLocal(s,c){const u={action:s.find(h=>h.stream_type===En.Audio)?"unmute_local_audio":"unmute_local_video",p2p_id:this.store.p2pId,ortc:s,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway unmuteLocal warning: "),h),h}}async muteRemote(s,c){const u={action:s===rr.AUDIO?"mute_remote_audio":"mute_remote_video",p2p_id:this.store.p2pId,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway muteRemote warning: "),h),h}}async unmuteRemote(s,c){const u={action:s===rr.AUDIO?"unmute_remote_audio":"unmute_remote_video",p2p_id:this.store.p2pId,stream_id:c};try{await this.signal.request(ur.CONTROL,u,!0,!0)}catch(h){throw J.warning("[".concat(this.store.clientId,"] gateway unmuteRemote warning: "),h),h}}uploadWRTCStats(s){this.signal.uploadWRTCStats(s)}upload(s,c){this.signal.upload(s,c)}getSignalRTT(){return this.signal.rtt}async restartICE(s){const c={p2p_id:this.store.p2pId,stream_id:this.store.uid,ortc:s};try{return await this.signal.request(ur.RESTART_ICE,c,!0)}catch(u){throw J.warning("[".concat(this.store.clientId,"] P2PChannel.restartICE warning: "),u),u}}reconnect(s,c){this.state==="CONNECTED"&&this.signal.reconnect(s||void 0,c||Ss.P2P_FAILED)}getCurrentGatewayAddress(){var s,c;if(!de("GATEWAY_WSS_ADDRESS"))return de("USE_CANDIDATE_FROM_AP_DETAIL")&&(s=this.joinInfo)!==null&&s!==void 0&&s.apGatewayAddress?(J.debug("[".concat(this.store.clientId,"] use candidate from ap detail, ").concat(JSON.stringify(this.joinInfo.apGatewayAddress))),this.joinInfo.apGatewayAddress):(c=this.joinInfo)!==null&&c!==void 0&&c.gatewayAddrs?this.joinInfo.gatewayAddrs[this.signal.currentURLIndex]:void 0}async setPublishAudioFilterEnabled(s){await this.signal.request(ur.SET_PARAMETER,{enablePublishAudioFilter:s})}downgradeCodec(s){this.signal.downgradeCodec(s)}resetSignal(){this.signal&&(this.signal.removeAllListeners(),this.signal.close(mi.FALLBACK)),this.store.useDcSignal=!1,this.signal=new yN(qa(qa({},this.spec),{},{retryConfig:this.spec.websocketRetryConfig}),this.store),this.handleSignalEvents(),this.emit(No.RESET_SIGNAL)}}let ace=function(t){return t.NATIVE_RTC="native_rtc",t.NATIVE_RTM="native_rtm",t.WEB_RTC="web_rtc",t.WEB_RTM="web_rtm",t}({}),OF=0,JX=0;function ng(t,s,c,u){return new Ut((h,_)=>{s.timeout=s.timeout||de("HTTP_CONNECT_TIMEOUT"),s.responseType=s.responseType||"json",s.data&&!c?(s.data=JSON.stringify(s.data),OF+=vu(s.data)):c&&(s.data.size?OF+=s.data.size:s.data instanceof FormData?OF+=GR(s.data):OF+=vu(JSON.stringify(s.data))),s.headers=s.headers||{},s.headers["Content-Type"]=s.headers["Content-Type"]||"application/json",s.method="POST",s.url=t,on.request(s).then(B=>{typeof B.data=="string"?JX+=vu(B.data):B.data instanceof ArrayBuffer||B.data instanceof Uint8Array?JX+=B.data.byteLength:JX+=vu(JSON.stringify(B.data)),u&&h({data:B.data,headers:B.headers}),h(B.data)}).catch(B=>{on.isCancel(B)?_(new qe(Ce.OPERATION_ABORTED,"cancel token canceled")):B.code==="ECONNABORTED"?_(new qe(Ce.NETWORK_TIMEOUT,B.message)):B.response?_(new qe(Ce.NETWORK_RESPONSE_ERROR,B.response.status)):_(new qe(Ce.NETWORK_ERROR,B.message))})})}/*! formdata-polyfill. MIT License. Jimmy W?rting */(function(){var t;function s(it){var mt=0;return function(){return mt>>0)+"_",at=0;return function ie(Te){if(this instanceof ie)throw new TypeError("Symbol is not a constructor");return new mt(Gt+(Te||"")+"_"+at++,Te)}}),_("Symbol.iterator",function(it){if(it)return it;it=Symbol("Symbol.iterator");for(var mt="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),Gt=0;Gt"u"||!FormData.prototype.keys)){var me=function(it,mt){for(var Gt=0;Gt{const t=de("AREAS");return t.length===0&&t.push(gi.GLOBAL),VA(t).call(t,(s,c,u)=>{const h=Tte(c);return h?u===0?h:"".concat(s,",").concat(h):s},"")},Tte=t=>t===gi.OVERSEA?"".concat(Pa.ASIA,",").concat(Pa.EUROPE,",").concat(Pa.AFRICA,",").concat(Pa.NORTH_AMERICA,",").concat(Pa.SOUTH_AMERICA,",").concat(Pa.OCEANIA):Pa[t],Ace=t=>{const s={CODE:"",WEBCS_DOMAIN:[],WEBCS_DOMAIN_BACKUP_LIST:[],PROXY_CS:[],CDS_AP:[],ACCOUNT_REGISTER:[],UAP_AP:[],EVENT_REPORT_DOMAIN:[],EVENT_REPORT_BACKUP_DOMAIN:[],LOG_UPLOAD_SERVER:[],PROXY_SERVER_TYPE3:[]};return t.map(c=>{const u=A_[c],h=Object.keys(u);h&&h.map(_=>{_!=="CODE"&&(s[_]=s[_].concat(u[_]))})}),s},LF={GLOBAL:{ASIA:[gi.CHINA,gi.JAPAN,gi.INDIA,gi.KOREA,gi.HKMC],EUROPE:[],NORTH_AMERICA:[gi.US],SOUTH_AMERICA:[],OCEANIA:[],AFRICA:[]}},MF=Object.keys(LF[gi.GLOBAL]),qX=[gi.CHINA,gi.NORTH_AMERICA,gi.EUROPE,gi.ASIA,gi.JAPAN,gi.INDIA,gi.OCEANIA,gi.SOUTH_AMERICA,gi.AFRICA,gi.KOREA,gi.HKMC,gi.US],cce=function(t,s){let c=[];if(Et(t).call(t,gi.GLOBAL)){const _=[gi.GLOBAL,gi.OVERSEA],B=Object.keys(A_);if(s===gi.GLOBAL)throw new qe(Ce.INVALID_PARAMS,"GLOBAL is an invalid excludedArea value");if(s===gi.CHINA)c=[gi.OVERSEA];else if(h=s,Et(MF).call(MF,h)){const Q=(u=s,LF[gi.GLOBAL][u]||[]),T=[..._,s,...Q];c=B.filter(D=>!Et(T).call(T,D))}else if(function(Q){let T=!1;return MF.forEach(D=>{var O;Et(O=LF[gi.GLOBAL][D]).call(O,Q)&&(T=!0)}),T}(s)){const Q=function(D){let O;return MF.forEach(P=>{var U;Et(U=LF[gi.GLOBAL][P]).call(U,D)&&(O=P)}),O}(s),T=[..._,Q,s];c=B.filter(D=>!Et(T).call(T,D))}else c=t;c=function(Q){const T=[];return qX.forEach(D=>{Et(Q).call(Q,D)&&T.push(D)}),T.concat(Q.filter(D=>!Et(qX).call(qX,D)))}(c)}else c=t;var u,h;return c};function wte(t){var s,c;if(!t&&Et(s=de("AREAS")).call(s,gi.EXTENSIONS))return J.debug("update area from ap : reset"),void WX(JJ,!0);if(!Et(c=de("AREAS")).call(c,gi.GLOBAL)||!t)return;let u=A_.EXTENSIONS;u&&(u={CODE:Tte(gi.EXTENSIONS),WEBCS_DOMAIN:["ap-web-1-".concat(t,".agora.io")],WEBCS_DOMAIN_BACKUP_LIST:["ap-web-2-".concat(t,".ap.sd-rtn.com")],PROXY_CS:["proxy-ap-web-".concat(t,".agora.io")],CDS_AP:["cds-ap-web-1-".concat(t,".agora.io"),"cds-ap-web-2-".concat(t,".ap.sd-rtn.com")],ACCOUNT_REGISTER:["sua-ap-web-1-".concat(t,".agora.io"),"sua-ap-web-2-".concat(t,".ap.sd-rtn.com")],UAP_AP:["uap-ap-web-1-".concat(t,".agora.io"),"uap-ap-web-2-".concat(t,".ap.sd-rtn.com")],EVENT_REPORT_DOMAIN:["statscollector-1-".concat(t,".agora.io")],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-".concat(t,".agora.io")],LOG_UPLOAD_SERVER:["logservice-".concat(t,".agora.io")],PROXY_SERVER_TYPE3:["webrtc-cloud-proxy-".concat(t,".agora.io")]},J.debug("update area from ap success: ".concat(t,",config is "),u),Dn("AREAS",[gi.EXTENSIONS],!0),Object.keys(u).map(h=>{h==="LOG_UPLOAD_SERVER"||h==="EVENT_REPORT_DOMAIN"||h==="EVENT_REPORT_BACKUP_DOMAIN"||h==="PROXY_SERVER_TYPE3"?Dn(h,u[h][0]):Dn(h,u[h])}))}function WX(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=qt.reportApiInvoke(null,{name:Ti.SET_AREA,options:t,tag:vn.TRACER});try{let u=[];if(typeof t=="string"&&(u=[t]),Array.isArray(t)&&(t.forEach(_=>{if(!Et(Gy).call(Gy,_))throw new qe(Ce.INVALID_PARAMS,"invalid area code")}),u=t),Object.prototype.toString.call(t)==="[object Object]"){const _=t,B=_.areaCode,Q=_.excludedArea;if(!B)throw new qe(Ce.INVALID_PARAMS,"area code is needed");let T=B;typeof B=="string"&&(T=[B]),u=Q?cce(T,Q):T}if(!s){if($e.AREAS){const _=new qe(Ce.PROHIBITED_OPERATION,"setArea is prohibited because of config-distribute");return c.onError(_),void J.warning("setArea is prohibited because of config-distribute")}if(Et(u).call(u,gi.GLOBAL)&&de("AREAS")===gi.EXTENSIONS){const _=new qe(Ce.PROHIBITED_OPERATION,"setArea is prohibited because of ap extensions");return c.onError(_),void J.warning("setArea is prohibited because of ap extensions")}}Dn("AREAS",u,s);const h=Ace(u);Object.keys(h).map(_=>{_==="LOG_UPLOAD_SERVER"||_==="EVENT_REPORT_DOMAIN"||_==="EVENT_REPORT_BACKUP_DOMAIN"||_==="PROXY_SERVER_TYPE3"?Dn(_,h[_][0]):Dn(_,h[_])}),J.debug("set area success:",u.join(","))}catch(u){throw c.onError(u),u}c.onSuccess()}function vte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Jh(t){for(var s=1;s{Q=Date.now();const O=await ng(D,{data:B,cancelToken:u,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"}});if(T=Date.now()-Q,O.code!==0){const H=new qe(Ce.UNEXPECTED_RESPONSE,"live streaming ap error, code"+O.code,{retry:!0,responseTime:T});throw J.error(H.toString()),H}const P=JSON.parse(O.json_body);if(P.code!==200){const H=new qe(Ce.UNEXPECTED_RESPONSE,"live streaming app center error, code: ".concat(P.code,", reason: ").concat(P.reason),{code:P.code,responseTime:T});throw J.error(H.toString()),H}if(!P.servers||P.servers.length===0){const H=new qe(Ce.UNEXPECTED_RESPONSE,"live streaming app center empty server",{code:P.code,responseTime:T});throw J.error(H.toString()),H}const U=function(H,$){return{addressList:H.servers.map(Z=>"wss://".concat(Z.address.replace(/\./g,"-"),".").concat(de("WORKER_DOMAIN"),":").concat(Z.wss,"?serviceName=").concat(encodeURIComponent($))),workerToken:H.workerToken,vid:H.vid}}(P,s);return de("LIVE_STREAMING_ADDRESS")&&(U.addressList=de("LIVE_STREAMING_ADDRESS")instanceof Array?de("LIVE_STREAMING_ADDRESS"):[de("LIVE_STREAMING_ADDRESS")]),Jh(Jh({},U),{},{responseTime:T})},(O,P)=>(qt.apworkerEvent(c.sid,{success:!0,sc:200,serviceName:s,responseDetail:JSON.stringify(O.addressList),firstSuccess:P===0,responseTime:T,serverIp:t[P%t.length]}),!1),(O,P)=>(qt.apworkerEvent(c.sid,{success:!1,sc:O.data&&O.data.code||200,serviceName:s,responseTime:T,serverIp:t[P%t.length]}),!!(O.code!==Ce.OPERATION_ABORTED&&O.code!==Ce.UNEXPECTED_RESPONSE||O.data&&O.data.retry)&&(D=t[(P+1)%t.length],!0)),h)}let zX=1;function kF(t,s,c,u,h,_,B){let Q=t.url,T=t.areaCode;const D=Date.now();let O;const P=c.role,U=ir(uce(h,c,u,T,Array.isArray(s)?s:[s]),2),H=U[0],$=U[1];let Z=ki.networkState;return dl(async()=>{Z&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(B&&B.maxRetryTimeout||So.maxRetryTimeout)]),Z=ki.networkState;const te=await ng(Q,{data:H,cancelToken:_,responseType:"arraybuffer",headers:{"Content-Type":"text/plain;"}},!0,!0),se=te.data,ge=te.headers;let me;O=ge.http3==="1"?1:-1,qt.reportResourceTiming(Q,c.sid);const Qe=ge["content-type"]||ge["Content-Type"]||"",Oe=Et(Qe).call(Qe,"application/json");try{me=Oe?function(lr){const ft=de("ENABLE_AP_COMPRESS")?gQ(lr,{raw:!0}):lr,Ir=new TextDecoder().decode(ft);return JSON.parse(Ir)}(se):oce(c,u,se)}catch{throw new qe(Ce.PB_ERROR,"sdp enpoint response transformer get unknown res",{retry:!1})}$X(me,Q,c,D,Array.isArray(s)?s:[s],O);const we=am(me,fo.CHOOSE_SERVER);let Ne;Array.isArray(s)&&s.length>1&&(Ne=am(me,c.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:c.cloudProxyServer==="proxy3"||c.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK));const et=performance.getEntriesByName(Q),st=et[et.length-1];let Xt;return st&&(Xt={name:st.name,protocol:"nextHopProtocol"in st?st.nextHopProtocol:"",dnscost:"domainLookupEnd"in st&&"domainLookupStart"in st&&typeof st.domainLookupEnd=="number"&&typeof st.domainLookupStart=="number"?st.domainLookupEnd-st.domainLookupStart:-1,tcpTlsCost:"connectEnd"in st&&"connectStart"in st&&typeof st.connectEnd=="number"&&typeof st.connectStart=="number"?st.connectEnd-st.connectStart:-1,reqCost:"requestStart"in st&&typeof st.requestStart=="number"&&"responseEnd"in st&&typeof st.responseEnd=="number"?st.responseEnd-st.requestStart:-1,handleCost:"leave_ts"in me&&"enter_ts"in me&&typeof me.leave_ts=="number"&&typeof me.enter_ts=="number"?me.leave_ts-me.enter_ts:-1}),PF(we),Array.isArray(s)?{gatewayInfo:g9(we,Q),proxyInfo:Ne,url:Q,resourceTimingInfo:Xt}:g9(we,Q)},te=>{const se="gatewayInfo"in te?te.gatewayInfo:te,ge="proxyInfo"in te?te.proxyInfo:void 0,me="resourceTimingInfo"in te?te.resourceTimingInfo:void 0;return se&&qt.joinChooseServer(c.sid,{role:P,lts:D,succ:!0,csAddr:Q,serverList:se.gatewayAddrs.map(Qe=>Qe.address),ec:null,opid:$,cid:se.cid.toString(),uid:se.uid.toString(),csIp:se.csIp,unilbsServerIds:s.toString(),isHttp3:O,corssRegionTagReq:c.apRequestDetail,corssRegionTagRes:se.res.detail&&se.res.detail[38],vid:se==null?void 0:se.vid,resourceTimingInfo:me?JSON.stringify(me):void 0}),ge&&qt.joinWebProxyAP(c.sid,{lts:D,sucess:1,apServerAddr:Q,turnServerAddrList:ge.addresses.map(Qe=>Qe.ip).join(","),errorCode:null,eventType:c.cloudProxyServer,unilbsServerIds:s.toString()}),!1},te=>te.code!==Ce.PB_ERROR&&te.code!==Ce.OPERATION_ABORTED&&(te.code===Ce.CAN_NOT_GET_GATEWAY_SERVER?te.data.retry:(qt.joinWebProxyAP(c.sid,{lts:D,sucess:0,apServerAddr:Q,turnServerAddrList:null,errorCode:te.code,eventType:c.cloudProxyServer,unilbsServerIds:s.toString(),extend:JSON.stringify({networkState:Z})}),J.warning("[".concat(c.clientId,"] multi unilbs network error, retry"),te),!0)),B)}function Dte(t,s,c,u){let h=t.url,_=t.areaCode;const B=s.clientId,Q=s.sid,T=Date.now();let D;const O=s.role,P=ir(ZX(s,_,[fo.CHOOSE_SERVER]),2),U=P[0],H=P[1];let $=ki.networkState;return dl(async()=>{$&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(u&&u.maxRetryTimeout||So.maxRetryTimeout)]),$=ki.networkState;const Z=await ng(h,{data:U,cancelToken:c,headers:{"Content-Type":"multipart/form-data;"}},!0,!0),te=Z.data;D=Z.headers.http3==="1"?1:-1,qt.reportResourceTiming(h,Q),$X(te,h,s,T,[fo.CHOOSE_SERVER],D);const ge=am(te,fo.CHOOSE_SERVER);return PF(ge),g9(ge,h)},Z=>(Z&&qt.joinChooseServer(Q,{role:O,lts:T,succ:!0,csAddr:h,opid:H,serverList:Z.gatewayAddrs.map(te=>te.address),ec:null,cid:Z.cid.toString(),uid:Z.uid.toString(),csIp:Z.csIp,unilbsServerIds:[fo.CHOOSE_SERVER].toString(),isHttp3:D,corssRegionTagReq:s.apRequestDetail,corssRegionTagRes:Z.res.detail&&Z.res.detail[38],vid:Z.vid}),!1),Z=>Z.code!==Ce.OPERATION_ABORTED&&(Z.code===Ce.CAN_NOT_GET_GATEWAY_SERVER?Z.data.retry:(qt.joinChooseServer(Q,{role:O,lts:T,succ:!1,csAddr:h,serverList:null,opid:H,ec:Z.code,csIp:Z.data&&Z.data.csIp,unilbsServerIds:[fo.CHOOSE_SERVER].toString(),extend:JSON.stringify({networkState:$}),isHttp3:D,corssRegionTagReq:s.apRequestDetail}),J.warning("[".concat(B||"sid-".concat(Q.slice(0,6)),"] Choose server network error, retry"),Z),!0)),u)}function bte(t,s,c,u){let h,_=t.url,B=t.areaCode,Q=t.serviceIds;const T=Date.now(),D=s.role,O=ir(ZX(s,B,Q),2),P=O[0],U=O[1];let H;return dl(async()=>{H&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(u&&u.maxRetryTimeout||So.maxRetryTimeout)]),H=ki.networkState;const $=await ng(_,{data:P,cancelToken:c,headers:{"Content-Type":"multipart/form-data;"}},!0,!0),Z=$.data;h=$.headers.http3==="1"?1:-1,qt.reportResourceTiming(_,s.sid),$X(Z,_,s,T,Q,h);const se=am(Z,fo.CHOOSE_SERVER),ge=am(Z,s.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:s.cloudProxyServer==="proxy3"||s.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK),me=performance.getEntriesByName(_),Qe=me[me.length-1];let Oe;return Qe&&(Oe={name:Qe.name,protocol:"nextHopProtocol"in Qe?Qe.nextHopProtocol:"",dnscost:"domainLookupEnd"in Qe&&"domainLookupStart"in Qe&&typeof Qe.domainLookupEnd=="number"&&typeof Qe.domainLookupStart=="number"?Qe.domainLookupEnd-Qe.domainLookupStart:-1,tcpTlsCost:"connectEnd"in Qe&&"connectStart"in Qe&&typeof Qe.connectEnd=="number"&&typeof Qe.connectStart=="number"?Qe.connectEnd-Qe.connectStart:-1,reqCost:"requestStart"in Qe&&typeof Qe.requestStart=="number"&&"responseEnd"in Qe&&typeof Qe.responseEnd=="number"?Qe.responseEnd-Qe.requestStart:-1,handleCost:"leave_ts"in Z&&"enter_ts"in Z&&typeof Z.leave_ts=="number"&&typeof Z.enter_ts=="number"?Z.leave_ts-Z.enter_ts:-1}),PF(se),{gatewayInfo:g9(se,_),proxyInfo:ge,url:_,resourceTimingInfo:Oe}},$=>{var Z;return $.gatewayInfo&&qt.joinChooseServer(s.sid,{role:D,lts:T,succ:!0,csAddr:_,serverList:$.gatewayInfo.gatewayAddrs.map(te=>te.address),ec:null,opid:U,cid:$.gatewayInfo.cid.toString(),uid:$.gatewayInfo.uid.toString(),csIp:$.gatewayInfo.csIp,unilbsServerIds:Q.toString(),isHttp3:h,corssRegionTagReq:s.apRequestDetail,corssRegionTagRes:$.gatewayInfo.res.detail&&$.gatewayInfo.res.detail[38],vid:(Z=$.gatewayInfo)===null||Z===void 0?void 0:Z.vid,resourceTimingInfo:$.resourceTimingInfo?JSON.stringify($.resourceTimingInfo):void 0}),$.proxyInfo&&qt.joinWebProxyAP(s.sid,{lts:T,sucess:1,apServerAddr:_,turnServerAddrList:$.proxyInfo.addresses.map(te=>te.ip).join(","),errorCode:null,eventType:s.cloudProxyServer,unilbsServerIds:Q.toString()}),!1},$=>$.code!==Ce.OPERATION_ABORTED&&($.code===Ce.CAN_NOT_GET_GATEWAY_SERVER?$.data.retry:(qt.joinWebProxyAP(s.sid,{lts:T,sucess:0,apServerAddr:_,turnServerAddrList:null,errorCode:$.code,eventType:s.cloudProxyServer,unilbsServerIds:Q.toString(),extend:JSON.stringify({networkState:H})}),J.warning("[".concat(s.clientId,"] multi unilbs network error, retry"),$),!0)),u)}const $X=(t,s,c,u,h,_)=>{const B=c.sid,Q=c.clientId,T=c.cloudProxyServer,D=[],O=P=>{P.flag===4096?qt.joinChooseServer(B,{role:c.role,lts:u,succ:!1,csAddr:s,opid:t.opid,serverList:null,ec:P.error.message,csIp:P.error.data&&P.error.data.csIp,unilbsServerIds:h.toString(),isHttp3:_,corssRegionTagReq:c.apRequestDetail}):P.flag!==1048576&&P.flag!==4194304&&P.flag!==4194310||qt.joinWebProxyAP(B,{lts:u,sucess:0,apServerAddr:s,turnServerAddrList:null,errorCode:P.error.code,eventType:T,unilbsServerIds:h.toString()})};if(t.response_body.forEach(P=>{const U=P.buffer.code;if(P.uri===23&&U===0&&!P.buffer.edges_services)if(P.buffer.flag===4194310)J.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers"),P.buffer.edges_services=[];else{const H={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:de("NO_EDGES_RETRY"),csIp:t.detail[502]}),flag:P.buffer.flag};D.push(H),O(H)}if(U!==0){const H=mh(U),$={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,H.desc,{desc:H.desc,retry:H.retry,csIp:t.detail[502]}),flag:P.buffer.flag};P.buffer.flag===4194310?J.warning($.error.toString()):D.push($),O($)}}),D.length)throw J.warning("[".concat(Q||"sid-".concat(B.slice(0,6)),"] multi unilbs ").concat(s," failed, ").concat(D.map(P=>"flag: ".concat(P.flag,", message: ").concat(P.error.message,", retry: ").concat(P.error.data.retry)).join(" | "))),new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,D.map(P=>"flag: ".concat(P.flag,", message: ").concat(P.error.message)).join(" | "),{retry:!!D.find(P=>P.error.data.retry),csIp:t.detail[502],desc:[...new Set(D.map(P=>{var U;return P==null||(U=P.error)===null||U===void 0||(U=U.data)===null||U===void 0?void 0:U.desc}).filter(P=>!!P))]})},PF=t=>{var s,c,u,h;if(t.addresses&&t.addresses.length===0&&t.code===0)throw new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,"void gateway address",{retry:!0,csIp:t.detail&&t.detail[502]});if(de("AP_AREA")&&((u=t.detail)!==null&&u!==void 0&&u[23]&&typeof((h=t.detail)===null||h===void 0?void 0:h[23])=="string"?wte(t.detail[23].toLowerCase()):wte()),(s=t.detail)!==null&&s!==void 0&&s[19]&&typeof((c=t.detail)===null||c===void 0?void 0:c[19])=="string"){const B=t.detail[19],Q=B==null?void 0:B.split(";");for(let T=0;T0){J.debug("assign gateway address to",de("GATEWAY_ADDRESS"));const B=de("GATEWAY_ADDRESS").map(Q=>{var T,D,O,P;const U=(T=(D=t.addresses.find(H=>H.ip===Q.ip&&H.port===Q.port))===null||D===void 0?void 0:D.fingerprint)!==null&&T!==void 0?T:"";return{ip:Q.ip,port:Q.port,ticket:t.addresses[0]&&t.addresses[0].ticket,fingerprint:U,iceUfrag:(O=t.addresses[0])===null||O===void 0?void 0:O.iceUfrag,icePwd:(P=t.addresses[0])===null||P===void 0?void 0:P.icePwd}});t.addresses=B}},dce=(t,s)=>{if(t.response_body&&t.response_body.length){const c=t.response_body[0];if(c.buffer.code!==0){const u=mh(c.buffer.code);throw new qe(Ce.UPDATE_TICKET_FAILED,"[".concat(c.buffer.code,"]: ").concat(u.desc),{retry:u.retry})}return c.buffer.ticket}throw J.debug("update ticket request received ap response without response body:",s),new qe(Ce.UPDATE_TICKET_FAILED,"cannot find response body from ap response",{retry:!1})},ZX=(t,s,c)=>{const u=Math.floor(Math.random()*1e12),h=t.role==="host"?"1":t.role==="audience"?"2":void 0,_={appid:t.appId,client_ts:Date.now(),opid:u,sid:t.sid,request_bodies:[{uri:22,buffer:{cname:t.cname,detail:Jh(Jh(Jh({6:t.stringUid,11:s,12:de("USE_NEW_TOKEN")?"1":void 0},h?{17:h}:{}),{},{22:s},t.apRequestDetail?{33:t.apRequestDetail}:{}),t.apRTM?{26:"RTM2"}:{}),key:t.token,service_ids:c,uid:t.uid||0}}]};_.request_bodies.forEach(Q=>{t.multiIP&&t.multiIP.gateway_ip&&(Q.buffer.detail[5]=JSON.stringify({vocs_ip:[t.multiIP.uni_lbs_ip],vos_ip:[t.multiIP.gateway_ip]}))});const B=new FormData;return B.append("request",JSON.stringify(_)),[B,u]},uce=(t,s,c,u,h)=>{const _=Math.floor(Math.random()*1e12);return[nce(t,s,u,h,{opid:_,mode:t.mode,codec:t.codec,hasChangeBGPAddress:!1,ortc:c}),_]},gce=(t,s)=>{const c=Math.floor(Math.random()*1e12),u={appid:t.appId,client_ts:Date.now(),opid:c,sid:t.sid,request_bodies:[{uri:28,buffer:{cname:t.cname,detail:{1:"",6:t.stringUid,12:"1"},token:t.token,service_ids:s,uid:t.uid||0,edges_services:t.apResponse.addresses.map(_=>({ip:_.ip,port:_.port}))}}]},h=new FormData;return h.append("request",JSON.stringify(u)),[h,c]};let oT=0;function lm(t){return Ut.all(t.map(s=>s.then(c=>{throw c},c=>c))).then(s=>{throw s},s=>s)}const dm=async t=>{let s=t.fragementLength,c=t.referenceList,u=t.asyncMapHandler,h=t.allFailedhandler,_=t.promisesCollector,B=0;const Q=s;let T,D=0;const O=async()=>{const P=(()=>{const U=B*Q,H=U+Q;return c.slice(U,H).map(u)})();_&&_.push(...P);try{T=await lm(P)}catch(U){if(D+=Q,B++,!(D>=c.length))return void await O();h(U)}P.forEach(U=>U.cancel())};return await O(),T},Nte=async t=>{let s=t.referenceList,c=t.asyncMapHandler,u=t.closeFn;const h=s.length;let _=0;const B=async()=>{const Q=c(s.shift());try{return await Q}catch(T){if(_++,_>=h||u!=null&&u(T))throw T;return B()}};return B()};async function Ece(){if(typeof VideoDecoder>"u")return!0;let t;const s=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,85,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,149,160,133,4,144,43,122,168,159,120,159,205,39,82,131,57,52,87,187,68,23,248,134,204,226,97,17,49,183,55,236,219,249,221,98,208,215,190,59,179,167,213,47,1,246,150,14,194,245,159,83,35,64,103,218,38,21,82,3,135,21,185,84,248,134],c=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,148,62,134,140,92,172,141,77,35,94,181,164,65,169,65,156,154,43,221,162,11,252,67,102,113,48,136,137,219,62,43,113,239,23,126,250,186,252,10,138,218,25,193,244,74,68,194,209,107,23,52,206,199,78,72,98,103,151,71,96,62,51,210,158,72,231,158],u=[18,0,10,13,0,0,0,3,180,253,144,6,136,8,8,8,32,50,87,16,66,128,2,8,32,132,0,8,0,180,90,204,169,166,242,109,241,190,143,143,233,163,51,196,98,95,151,224,22,134,33,240,150,248,67,18,34,196,142,81,238,173,140,80,205,232,132,144,67,12,131,157,4,171,243,86,122,35,6,166,184,243,85,126,13,206,103,152,62,168,160,187,2,241,138,52,211,72,121,128,151,63,147,128,19,42],h=[18,0,50,138,1,48,192,64,253,248,65,17,67,192,32,0,16,0,0,0,0,0,0,0,195,12,48,144,64,32,0,209,75,61,9,204,25,115,79,226,115,63,63,208,70,210,220,153,126,241,237,37,107,195,153,1,99,112,230,189,209,169,130,10,11,22,167,215,159,205,197,7,183,162,26,48,254,141,134,103,32,16,235,45,1,15,18,119,169,110,206,251,51,115,202,60,148,1,46,39,109,25,28,86,168,15,77,211,239,2,58,43,146,26,230,184,81,48,140,226,226,250,222,146,171,133,164,13,188,180,64,122,142,146,32,208,238,170,193,35,53,44,225],_=[18,0,50,107,48,0,133,125,248,65,26,195,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,204,24,122,65,56,165,18,52,206,218,4,187,51,97,9,29,191,90,253,106,185,31,197,155,52,205,245,185,203,131,20,226,25,124,95,113,220,113,141,15,15,104,211,144,152,237,150,157,127,51,143,24,231,218,171,255,176,241,128,229,149,150,148,66,245,228,91,27,182,228,136,61,182,237,133,45,220,24,103,214,152],B=[18,0,50,122,48,1,9,253,248,65,26,67,64,62,32,31,16,0,0,0,0,0,1,4,16,64,144,64,32,0,198,182,231,242,220,235,163,140,12,36,36,166,46,132,210,4,71,23,218,132,27,30,17,45,244,79,31,243,195,136,100,169,76,88,142,85,204,217,121,168,29,163,198,17,251,223,73,12,212,244,139,123,151,179,75,216,96,208,136,40,229,42,59,149,10,116,228,85,99,93,221,108,255,140,248,20,30,167,122,109,206,164,108,197,110,251,23,243,133,160,63,13,207,177,12,128];return await new Ut((T,D)=>{let O;(async function(){t&&t.state!=="closed"||await async function(){t=new VideoDecoder({output:U=>{U.close(),clearTimeout(O),T(!0)},error:U=>{clearTimeout(O),T(!1)}}),await t.configure({codec:"av01.0.05M.08",width:160,height:90})}();const P=[s,c,u,h,_,B];for(let U=0;U{T(!1)},5e3)})}async function _9(t,s,c,u){return{gatewayInfo:await async function(_,B,Q,T){let D=null;const O=[],P=async()=>{const H=de("WEBCS_DOMAIN").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(te=>({url:_.proxyServer?"https://".concat(_.proxyServer,"/ap/?url=").concat(te+"/api/v2/transpond/webrtc?v=2"):"https://".concat(te,"/api/v2/transpond/webrtc?v=2"),areaCode:cm()})),$=T.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:H.map(te=>te.url)}),Z=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:H,asyncMapHandler:te=>(J.debug("[".concat(_.clientId,"] Connect to choose_server:"),te.url),Dte(te,_,B,Q)),allFailedhandler:te=>{throw T.recordJoinChannelService({endTs:Date.now(),status:"error",errors:te},$),te[0]},promisesCollector:O});return T.recordJoinChannelService({endTs:Date.now(),status:"success"},$),Z},U=async()=>{if(await so(1e3),D!==null)return D;const H=de("WEBCS_DOMAIN_BACKUP_LIST").map(te=>({url:_.proxyServer?"https://".concat(_.proxyServer,"/ap/?url=").concat(te+"/api/v2/transpond/webrtc?v=2"):"https://".concat(te,"/api/v2/transpond/webrtc?v=2"),areaCode:cm()})),$=T.recordJoinChannelService({endTs:void 0,startTs:Date.now(),status:"pending",service:"chooseServer",urls:H.map(te=>te.url)}),Z=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:H,asyncMapHandler:te=>(J.debug("[".concat(_.clientId,"] Connect to backup choose_server:"),te.url),Dte(te,_,B,Q)),allFailedhandler:te=>{throw T.recordJoinChannelService({endTs:Date.now(),status:"error",errors:te},$),te[0]},promisesCollector:O});return T.recordJoinChannelService({endTs:Date.now(),status:"success"},$),Z};try{return D=await lm([P(),U()]),O.length&&O.forEach(H=>H.cancel&&typeof H.cancel=="function"&&H.cancel()),D}catch(H){throw H[0]}}(t,s,c,u)}}async function Ote(t,s,c,u,h){const _=t.cloudProxyServer;if(_==="disabled"){if(t.useLocalAccessPoint)return await _9(t,s,c,h);if(de("JOIN_WITH_FALLBACK_MEDIA_PROXY")){const H=await UF(t,s,c,h),$=H.gatewayInfo,Z=H.proxyInfo;if(t.turnServer&&t.turnServer.mode!=="auto")return{gatewayInfo:$};const te=Z.map(se=>({turnServerURL:se.address,tcpport:se.tcpport||Bn.tcpport,udpport:se.udpport||Bn.udpport,username:se.username||Bn.username,password:se.password||Bn.password,forceturn:!1,security:!0}));if(h.useP2P){var B;const se=(B=t.uid)!==null&&B!==void 0?B:$.uid,ge="glb:".concat(se.toString()),me=await Of(ge),Qe=Z.map(Oe=>({turnServerURL:Oe.address,tcpport:Oe.tcpport||Bn.tcpport,udpport:Oe.udpport||Bn.udpport,username:ge,password:me,forceturn:!1,security:!0}));te.push(...Qe)}return t.turnServer={mode:"manual",servers:te},{gatewayInfo:$}}return await _9(t,s,c,h)}const Q=await UF(t,s,c,h),T=Q.proxyInfo,D=Q.gatewayInfo,O={gatewayInfo:D},P=T.map(H=>({turnServerURL:H.address,tcpport:_==="proxy3"?void 0:H.tcpport?H.tcpport:Bn.tcpport,udpport:_==="proxy4"?void 0:H.udpport?H.udpport:Bn.udpport,username:H.username||Bn.username,password:H.password||Bn.password,forceturn:_!=="proxy4",security:_==="proxy5"}));if(h.useP2P){var U;const H=(U=t.uid)!==null&&U!==void 0?U:D.uid,$="glb:".concat(H.toString()),Z=await Of($),te=T.map(se=>({turnServerURL:se.address,tcpport:_==="proxy3"?void 0:se.tcpport||Bn.tcpport,udpport:_==="proxy4"?void 0:se.udpport||Bn.udpport,username:$,password:Z,forceturn:_!=="proxy4",security:_==="proxy5"}));P.push(...te)}return t.turnServer={mode:"manual",servers:P},J.debug("[".concat(t.clientId,"] set proxy server: ").concat(t.proxyServer,", mode: ").concat(_)),O}async function hce(t,s,c,u,h){const _=t.cloudProxyServer;if(_==="disabled"){if(t.useLocalAccessPoint)return await _9(t,s,c,u);if(de("JOIN_WITH_FALLBACK_MEDIA_PROXY")){const O=await UF(t,s,c,u,h),P=O.gatewayInfo,U=O.proxyInfo;if(t.turnServer&&t.turnServer.mode!=="auto")return{gatewayInfo:P};const H=U.map($=>({turnServerURL:$.address,tcpport:$.tcpport||Bn.tcpport,udpport:$.udpport||Bn.udpport,username:$.username||Bn.username,password:$.password||Bn.password,forceturn:!1,security:!0}));return t.turnServer={mode:"manual",servers:H},{gatewayInfo:P}}return{gatewayInfo:await async function(P,U,H,$,Z){let te=null;const se=[],ge=async()=>{const Qe=de("SDP_ENDPOINT_DOMAIN").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(Ne=>({url:P.proxyServer?"https://".concat(P.proxyServer,"/ap/?url=").concat(Ne+"/api/v3/transpond/webrtc?v=3"):"https://".concat(Ne,"/api/v3/transpond/webrtc?v=3"),areaCode:cm()})),Oe=Z.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:Qe.map(Ne=>Ne.url)}),we=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Qe,asyncMapHandler:Ne=>(J.debug("[".concat(P.clientId,"] Connect to choose_server:"),Ne.url),kF(Ne,fo.CHOOSE_SERVER,P,U,Z,H,$)),allFailedhandler:Ne=>{throw Z.recordJoinChannelService({endTs:Date.now(),status:"error",errors:Ne},Oe),Ne[0]},promisesCollector:se});return Z.recordJoinChannelService({endTs:Date.now(),status:"success"},Oe),we},me=async()=>{if(await so(1e3),te!==null)return te;const Qe=de("SDP_ENDPOINT_DOMAIN_BACKUP_LIST").map(Ne=>({url:P.proxyServer?"https://".concat(P.proxyServer,"/ap/?url=").concat(Ne+"/api/v3/transpond/webrtc?v=3"):"https://".concat(Ne,"/api/v3/transpond/webrtc?v=3"),areaCode:cm()})),Oe=Z.recordJoinChannelService({endTs:void 0,startTs:Date.now(),status:"pending",service:"chooseServer",urls:Qe.map(Ne=>Ne.url)}),we=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Qe,asyncMapHandler:Ne=>(J.debug("[".concat(P.clientId,"] Connect to backup choose_server:"),Ne.url),kF(Ne,fo.CHOOSE_SERVER,P,U,Z,H,$)),allFailedhandler:Ne=>{throw Z.recordJoinChannelService({endTs:Date.now(),status:"error",errors:Ne},Oe),Ne[0]},promisesCollector:se});return Z.recordJoinChannelService({endTs:Date.now(),status:"success"},Oe),we};try{return te=await lm([ge(),me()]),se.length&&se.forEach(Qe=>Qe.cancel&&typeof Qe.cancel=="function"&&Qe.cancel()),te}catch(Qe){throw Qe[0]}}(t,h,s,c,u)}}const B=await UF(t,s,c,u),Q=B.proxyInfo,T={gatewayInfo:B.gatewayInfo},D=Q.map(O=>({turnServerURL:O.address,tcpport:_==="proxy3"?void 0:O.tcpport?O.tcpport:Bn.tcpport,udpport:_==="proxy4"?void 0:O.udpport?O.udpport:Bn.udpport,username:O.username||Bn.username,password:O.password||Bn.password,forceturn:_!=="proxy4",security:_==="proxy5"}));return t.turnServer={mode:"manual",servers:D},J.debug("[".concat(t.clientId,"] set proxy server: ").concat(t.proxyServer,", mode: ").concat(_)),T}async function ez(t,s,c,u,h){const _=de("ACCOUNT_REGISTER").slice(0,de("AJAX_REQUEST_CONCURRENT"));let B=[];B=s.proxyServer?_.map(T=>"https://".concat(s.proxyServer,"/ap/?url=").concat(T+"/api/v1")):_.map(T=>"https://".concat(T,"/api/v1"));const Q=h==null?void 0:h.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"stringUID",urls:B});try{const T=await async function(D,O,P,U,H){const $=Date.now(),Z={sid:P.sid,opid:10,appid:P.appId,string_uid:O};let te=D[0];const se=await dl(()=>ng(te+"".concat(te.indexOf("?")===-1?"?":"&","action=stringuid"),{data:Z,cancelToken:U,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}}),(ge,me)=>{if(ge.code===0){if(ge.uid<=0||ge.uid>=Math.pow(2,32))throw J.error("Invalid Uint Uid ".concat(O," => ").concat(ge.uid),ge),qt.reqUserAccount(Z.sid,{lts:$,success:!1,serverAddr:te,stringUid:Z.string_uid,uid:ge.uid,errorCode:Ce.INVALID_UINT_UID_FROM_STRING_UID,extend:Z}),new qe(Ce.INVALID_UINT_UID_FROM_STRING_UID);return qt.reqUserAccount(Z.sid,{lts:$,success:!0,serverAddr:te,stringUid:Z.string_uid,uid:ge.uid,errorCode:null,extend:Z}),!1}const Qe=mh(ge.code);return Qe.retry&&(te=D[(me+1)%D.length]),qt.reqUserAccount(Z.sid,{lts:$,success:!1,serverAddr:te,stringUid:Z.string_uid,uid:ge.uid,errorCode:Qe.desc,extend:Z}),Qe.retry},(ge,me)=>ge.code!==Ce.OPERATION_ABORTED&&(qt.reqUserAccount(Z.sid,{lts:$,success:!1,serverAddr:te,stringUid:Z.string_uid,uid:null,errorCode:ge.code,extend:Z}),te=D[(me+1)%D.length],!0),H);if(se.code!==0){const ge=mh(se.code);throw new qe(Ce.UNEXPECTED_RESPONSE,ge.desc)}return se}(B,t,s,c,u);return h==null||h.recordJoinChannelService({status:"success",endTs:Date.now()},Q),T.uid}catch(T){throw h==null||h.recordJoinChannelService({status:"error",endTs:Date.now(),errors:[T]},Q),T}}async function Ice(t,s,c){const u=de("ACCOUNT_REGISTER");let h=[];h=s.proxyServer?u.map(_=>"https://".concat(s.proxyServer,"/ap/?url=").concat(_+"/api/v1")):u.map(_=>"https://".concat(_,"/api/v1"));try{return await Nte({referenceList:h,asyncMapHandler:B=>async function(Q,T,D,O){const P=Date.now(),U={sid:D.sid,opid:10,appid:D.appId,string_uid:T};try{const H=await ng(Q+"".concat(Q.indexOf("?")===-1?"?":"&","action=stringuid"),{data:U,cancelToken:O,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":72}});if(H.code!==0){const $=mh(H.code);throw new qe(Ce.UNEXPECTED_RESPONSE,"preload sua error:".concat($.desc),$)}if(H.uid<=0||H.uid>=Math.pow(2,32))throw new qe(Ce.INVALID_UINT_UID_FROM_STRING_UID);return{requestTime:P,url:Q,req:U,uid:H.uid,elapse:Date.now()-P}}catch(H){throw H}}(B,t,s,c),closeFn:B=>B.code===Ce.OPERATION_ABORTED||B.code===Ce.UNEXPECTED_RESPONSE&&!B.data.retry})}catch(_){throw _}}async function Cce(t,s,c){const u=de("CDS_AP").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(T=>t.proxyServer?"https://".concat(t.proxyServer,"/ap/?url=").concat(T+"/api/v1"):"https://".concat(T,"/api/v1?action=config")),h=u.map(T=>function(D,O,P,U){const H=Qi(),$={flag:64,cipher_method:0,features:Jh(Jh(Jh(Jh(Jh({install_id:I2(),device:H.name,system:H.os,system_general:navigator.userAgent,vendor:O.appId,version:W1,cname:O.cname,session_id:O.sid,proxyServer:O.proxyServer,sdk_type:ace.WEB_RTC,browser_name:H.name,browser_version:H.version,user_agent:navigator.userAgent,channel_name:O.cname},O.stringUid&&{string_uid:O.stringUid}),O.uid&&{uid:O.uid+""}),H.os&&{os_name:H.os}),H.osVersion&&{os_version:H.osVersion}),{},{detail:""})};return dl(()=>ng(D,{data:$,timeout:1e3,cancelToken:P,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":54}}),void 0,Z=>Z.code!==Ce.OPERATION_ABORTED,U)}(T,t,s,c));let _=null,B=null,Q={};try{_=await lm(h)}catch(T){if(T.code===Ce.OPERATION_ABORTED)throw T;B=T}if(h.forEach(T=>T.cancel()),qt.reportApiInvoke(t.sid,{name:Ti.REQUEST_CONFIG_DISTRIBUTE,options:{error:B,res:_}}).onSuccess(),_&&_.test_tags)try{Q=function(T){if(!T.test_tags)return{};const D=T.test_tags,O=Object.keys(D),P={};return O.forEach(U=>{var H;const $=Ga(H=U.slice(4)).call(H),Z=JSON.parse(D[U]),te=Z[1];P[$]={tag:Z[0]||"",value:te}}),P}(_)}catch{}return Q}async function Lte(t,s){const c=de("WEBCS_DOMAIN").concat(de("WEBCS_DOMAIN_BACKUP_LIST")).map(u=>({url:"https://".concat(u,"/api/v2/transpond/webrtc?v=2"),areaCode:cm(),serviceIds:[fo.CHOOSE_SERVER,fo.CLOUD_PROXY_FALLBACK]}));try{return await Nte({referenceList:c,asyncMapHandler:h=>async function(_,B,Q){let T,D=_.url,O=_.areaCode,P=_.serviceIds;const U=Date.now(),H=ir(ZX(B,O,P),2),$=H[0],Z=H[1];let te=ki.networkState;try{te&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(So.maxRetryTimeout)]),te=ki.networkState;const se=await ng(D,{data:$,cancelToken:Q,headers:{"Content-Type":"multipart/form-data;"}},!0,!0),ge=se.data;T=se.headers.http3==="1"?1:-1,(we=>{const Ne=[];if(we.response_body.forEach(et=>{const st=et.buffer.code;if(et.uri===23&&st===0&&!et.buffer.edges_services)if(et.buffer.flag===4194310)et.buffer.edges_services=[];else{const Xt={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,"no edge services in ap response",{retry:de("NO_EDGES_RETRY"),csIp:we.detail[502]}),flag:et.buffer.flag};Ne.push(Xt)}if(st!==0){const Xt=mh(st),lr={error:new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,Xt.desc,{desc:Xt.desc,retry:Xt.retry,csIp:we.detail[502]}),flag:et.buffer.flag};et.buffer.flag===4194310?J.warning(lr.error.toString()):Ne.push(lr)}}),Ne.length)throw new qe(Ce.CAN_NOT_GET_GATEWAY_SERVER,Ne.map(et=>"flag: ".concat(et.flag,", message: ").concat(et.error.message)).join(" | "),{retry:!!Ne.find(et=>et.error.data.retry),csIp:we.detail[502],desc:[...new Set(Ne.map(et=>{var st;return et==null||(st=et.error)===null||st===void 0||(st=st.data)===null||st===void 0?void 0:st.desc}).filter(et=>!!et))]})})(ge);const Qe=am(ge,fo.CHOOSE_SERVER),Oe=am(ge,fo.CLOUD_PROXY_FALLBACK);return PF(Qe),{gatewayInfo:g9(Qe,D),proxyInfo:Oe,opid:Z,requestTime:U,url:D,isHttp3:T,elapse:Date.now()-U}}catch(se){throw se}}(h,t,s),closeFn:h=>h.code===Ce.OPERATION_ABORTED||h.code===Ce.CAN_NOT_GET_GATEWAY_SERVER&&!h.data.retry})}catch(u){throw u}}async function UF(t,s,c,u,h){const _=de("PROXY_SERVER_TYPE3"),B=(Z,te,se)=>{let ge=se||_;return Array.isArray(ge)&&(ge=te%2==0&&_[1]||_[0]),"https://".concat(ge,"/ap/?url=").concat(Z)};let Q=null;const T=[],D=async()=>{const Z=de(h?"SDP_ENDPOINT_DOMAIN":"WEBCS_DOMAIN").slice(0,de("AJAX_REQUEST_CONCURRENT")).map((ge,me)=>{let Qe;return Qe=t.cloudProxyServer==="disabled"&&t.proxyServer?B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me,t.proxyServer):t.cloudProxyServer==="disabled"||t.cloudProxyServer==="fallback"?"https://".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"):B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me),{url:Qe,areaCode:cm(),serviceIds:[fo.CHOOSE_SERVER,t.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:t.cloudProxyServer==="proxy3"||t.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK]}}),te=u.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:Z.map(ge=>ge.url)}),se=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Z,asyncMapHandler:ge=>(J.debug("[".concat(t.clientId,"] Connect to choose_server:"),ge.url),h?kF(ge,ge.serviceIds,t,h,u,s,c):bte(ge,t,s,c)),allFailedhandler:ge=>{throw u.recordJoinChannelService({endTs:Date.now(),status:"error",errors:ge},te),ge[0]},promisesCollector:T});return u.recordJoinChannelService({endTs:Date.now(),status:"success"},te),se},O=async()=>{if(await so(1e3),Q!==null)return Q;const Z=de(h?"SDP_ENDPOINT_DOMAIN_BACKUP_LIST":"WEBCS_DOMAIN_BACKUP_LIST").map((ge,me)=>{let Qe;return Qe=t.cloudProxyServer==="disabled"&&t.proxyServer?B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me,t.proxyServer):t.cloudProxyServer==="disabled"||t.cloudProxyServer==="fallback"?"https://".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"):B("".concat(ge,"/").concat(h?"api/v3/transpond/webrtc?v=3":"api/v2/transpond/webrtc?v=2"),me),{url:Qe,areaCode:cm(),serviceIds:[fo.CHOOSE_SERVER,t.cloudProxyServer==="proxy5"?fo.CLOUD_PROXY_5:t.cloudProxyServer==="proxy3"||t.cloudProxyServer==="proxy4"?fo.CLOUD_PROXY:fo.CLOUD_PROXY_FALLBACK]}}),te=u.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"chooseServer",urls:Z.map(ge=>ge.url)}),se=await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Z,asyncMapHandler:ge=>(J.debug("[".concat(t.clientId,"] Connect to backup choose_server:"),ge.url),h?kF(ge,ge.serviceIds,t,h,u,s,c):bte(ge,t,s,c)),allFailedhandler:ge=>{throw u.recordJoinChannelService({endTs:Date.now(),status:"error",errors:ge},te),ge[0]},promisesCollector:T});return u.recordJoinChannelService({endTs:Date.now(),status:"success"},te),se};let P,U,H;try{var $=await lm([D(),O()]);P=$.gatewayInfo,U=$.proxyInfo,H=$.url}catch(Z){throw Z[0]}if(T.length&&T.forEach(Z=>Z.cancel&&typeof Z.cancel=="function"&&Z.cancel()),!P||!U)throw new qe(Ce.UNEXPECTED_ERROR,"missing gateway or proxy response").print();if(t.apUrl=H,t.cloudProxyServer!=="disabled"&&Array.isArray(_)&&H){const Z=/^https?:\/\/(.+?)(\/.*)?$/.exec(H)[1];Et(_).call(_,Z)&&(t.proxyServer=Z,J.setProxyServer(Z),qt.setProxyServer(Z))}return Q={gatewayInfo:P,proxyInfo:await ate(U,P.uid)},Q}async function pce(t,s,c){const u=de("UAP_AP").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(_=>t.proxyServer?"https://".concat(t.proxyServer,"/ap/?url=").concat(_+"/api/v1?action=uap"):"https://".concat(_,"/api/v1?action=uap")),h=u.map(_=>function(B,Q,T,D){const O={command:"convergeAllocateEdge",sid:Q.sid,appId:Q.appId,token:Q.token,ts:Date.now(),version:W1,cname:Q.cname,uid:Q.uid.toString(),requestId:zX,seq:zX};zX+=1;const P={service_name:"tele_channel",json_body:JSON.stringify(O)};return dl(async()=>{const U=await ng(B,{data:P,cancelToken:T,headers:{"X-Packet-Service-Type":0,"X-Packet-URI":61}});if(U.code!==0){const $=new qe(Ce.UNEXPECTED_RESPONSE,"cross channel ap error, code"+U.code,{retry:!0});throw J.error($.toString()),$}const H=JSON.parse(U.json_body);if(H.code!==200){const $=new qe(Ce.UNEXPECTED_RESPONSE,"cross channel app center error, code: ".concat(H.code,", reason: ").concat(H.reason));throw J.error($.toString()),$}if(!H.servers||H.servers.length===0){const $=new qe(Ce.UNEXPECTED_RESPONSE,"cross channel app center empty server");throw J.error($.toString()),$}return{vid:H.vid,workerToken:H.workerToken,addressList:(de("CHANNEL_MEDIA_RELAY_SERVERS")||H.servers).map($=>"wss://".concat($.address.replace(/\./g,"-"),".").concat(de("WORKER_DOMAIN"),":").concat($.wss))}},void 0,U=>!!(U.code!==Ce.OPERATION_ABORTED&&U.code!==Ce.UNEXPECTED_RESPONSE||U.data&&U.data.retry),D)}(_,t,s,c));try{const _=await lm(h);return h.forEach(B=>B.cancel()),_}catch(_){throw _[0]}}async function fce(t,s,c){let u=null;const h=[],_=async B=>{const Q=de(B?"WEBCS_DOMAIN_BACKUP_LIST":"WEBCS_DOMAIN").map(T=>t.proxyServer?"https://".concat(t.proxyServer,"/ap/?url=").concat(T+"/api/v2/transpond/webrtc?v=2"):"https://".concat(T,"/api/v2/transpond/webrtc?v=2"));return B&&(await so(1e3),u!==null)?u:await dm({fragementLength:de("FRAGEMENT_LENGTH"),referenceList:Q,asyncMapHandler:T=>(J.debug("[".concat(t.clientId,"] update ticket, Connect to ").concat(B?"backup":""," choose_server:"),T),function(D,O,P,U){const H=ir(gce(O,[fo.CHOOSE_SERVER]),1)[0];let $=ki.networkState;return dl(async()=>{$&&ki.networkState===tA.OFFLINE&&ki.onlineWaiter&&await Ut.race([ki.onlineWaiter,so(U&&U.maxRetryTimeout||So.maxRetryTimeout)]),$=ki.networkState;const Z=await ng(D,{data:H,cancelToken:P,headers:{"Content-Type":"multipart/form-data;"}},!0);return dce(Z,D)},()=>!1,Z=>Z.code!==Ce.OPERATION_ABORTED&&(Z.code===Ce.UPDATE_TICKET_FAILED?Z.data.retry:(J.warning("[".concat(O.clientId,"] update ticket network error, retry"),Z),!0)),U)}(T,t,s,c)),allFailedhandler:T=>{throw T[0]},promisesCollector:h})};try{return u=await lm([_(!1),_(!0)]),h.length&&h.forEach(B=>B.cancel&&typeof B.cancel=="function"&&B.cancel()),u}catch(B){throw B[0]}}function Mte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function tz(t){for(var s=1;s{this.updateConfigDistribute()},de("CONFIG_DISTRIBUTE_INTERVAL")))}stopGetConfigDistribute(){this.interval&&clearInterval(this.interval),this.interval=void 0,this.joinInfo=void 0,this.cancelToken=void 0,this.configs=void 0,this.limit_bitrate=void 0}async awaitConfigDistributeComplete(){this.mutex.isLocked&&(await this.mutex.lock())()}async updateConfigDistribute(){if(this.mutableParamsRead||(this.mutableParamsRead=!0,qt.reportApiInvoke(null,{options:void 0,name:Ti.LOAD_CONFIG_FROM_LOCALSTORAGE,tag:vn.TRACER}).onSuccess(JSON.stringify($e))),!this.joinInfo||!this.cancelToken||!this.retryConfig)return void J.debug("[config-distribute] get config distribute interrupted have no joininfo");let s;const c=await this.mutex.lock();try{s=await Cce(this.joinInfo,this.cancelToken,this.retryConfig),J.debug("[config-distribute] get config distribute",JSON.stringify(s));const u=function(h){var _;const B=x1(_=Object.keys(h).filter(D=>/^webrtc_ng_global_parameter/.test(D))).call(_);for(let D=0;DD;O--){const P=B[O],U=h[P].value;if(typeof U.__priority=="number"){const H=U.__priority,$=B[O-1],Z=h[$].value;if(typeof Z.__priority=="number"){if(!(H>Z.__priority))continue;{const te=P;B[O]=B[O-1],B[O-1]=te}}else{const te=P;B[O]=B[O-1],B[O-1]=te}}}const Q=Date.now(),T={};return B.forEach(D=>{const O=h[D].value.__expires;O&&O<=Q||(T[D]=h[D])}),T}(s);this.cacheGlobalParameterConfig(u),this.store.hasStartJoinChannel||(this.store.isABTestSuccess=!0),this.configs=u}catch(u){const h=new qe(Ce.NETWORK_RESPONSE_ERROR,u);J.warning("[config-distribute] ".concat(h.toString()))}finally{c()}}getBitrateLimit(){return this.limit_bitrate||void 0}handleBitrateLimit(s){_N(s)&&(this.limit_bitrate?this.limit_bitrate&&this.limit_bitrate.id!==s.id&&this.emit(xc.UPDATE_BITRATE_LIMIT,s):this.emit(xc.UPDATE_BITRATE_LIMIT,s))}getLowStreamConfigDistribute(){return this.limit_bitrate&&tz({},this.limit_bitrate.low_stream_uplink)}handleABTestConfigDistribute(s){try{const c={},u=Object.keys(s),h=[];u.forEach(_=>{const B=s[_].value;c[_]=B;const Q=B.__id;if(Q&&this.configCache[_]&&this.configCache[_].__id===Q)return;const T=B.__type,D=s[_].value,O=s[_].tag;let P=0;T?T===Li.REALTIME&&(P=1):Object.keys(D).some(U=>Object.prototype.hasOwnProperty.call(Ta,U)||!M2()&&Object.prototype.hasOwnProperty.call(XA,U)?(P=1,!0):void 0),h.push({tag:O,isApplied:P,feature:_,params:JSON.stringify(B)})}),h.forEach(_=>{let B=_.tag,Q=_.feature,T=_.params,D=_.isApplied;this.store.sessionId&&qt.abTest(this.store.sessionId,{intSucc:1,isApplied:D,tag:B,feature:Q,params:T,cid:this.store.cid,uid:this.store.intUid})}),this.configCache=c}catch(c){J.debug("handleABTestConfigDistribute error",c)}}cacheGlobalParameterConfig(s){const c=function(h){const _={};return Object.keys(h).forEach(B=>{const Q=h[B].value,T=Q.__expires,D=Q.__type;Object.keys(Q).forEach(O=>{O==="__id"||O==="__type"||O==="__priority"||O==="__expires"||Object.prototype.hasOwnProperty.call(_,O)||(_[O]=tz(tz({value:Q[O]},T&&{expires:T}),D&&{type:D}))})}),_}(s);try{var u;const h=(u=c.LIMIT_BITRATE)===null||u===void 0?void 0:u.value;if(delete c.LIMIT_BITRATE,h&&_N(h)&&this.handleBitrateLimit(h),this.limit_bitrate=h,this.handleGlobalParameterConfig(c),this.handleABTestConfigDistribute(s),function(Q){try{const T=Date.now();Object.keys(Q).forEach(D=>{const O=Q[D],P=O.value,U=O.type,H=O.expires;H&&H<=T||((U===Li.REALTIME||Object.prototype.hasOwnProperty.call(Ta,D))&&($e[D]=P,Vi[D]=P,J.debug("Update realtime parameters from config distribute",D,P)),U||M2()||!Object.prototype.hasOwnProperty.call(XA,D)||($e[D]=P,Vi[D]=P,J.debug("Update gateway parameters from config distribute",D,P)))})}catch(T){J.error("Error update config immediately: ".concat(Q),T.message)}}(c),function(Q){try{var T;if(!de("ENABLE_CONFIG_RESTORE"))return!1;const D=R4(Q),O=window.localStorage.getItem(xf);if(!O)return!1;const P=JSON.parse(O),U=de("BLOCKED_CONFIG_MAX_TIME");return Date.now()-P.timestamp>U?(ty(),!1):Et(T=P.configHashes).call(T,D)}catch(D){return J.debug("[error] ".concat(ul," error checking blocked config:"),D),!1}}(c))return J.debug("[warning] [config-distribute] blocked config detected and skipped"),void qt.reportAlarm(this.store.sessionId||null,{type:m4.CONFIG_DISTRIBUTE,status:_4.RECOVER,message:"Blocked config detected and skipped"});(function(Q){try{const T=R4(Q),D=Ff();if(D.currentConfigHash&&D.currentConfigHash===T)return y4({currentConfigHash:T,configVerified:!0}),ey(),ty(),void J.debug("".concat(ul," config verified as safe, skip further checks"));y4({currentConfigHash:T,configVerified:!1}),ey(),ty()}catch(T){J.debug("[error] ".concat(ul," error on config applied:"),T)}})(c);const _=JSON.stringify(c),B=window.btoa(_);window.localStorage.setItem("websdk_ng_global_parameter",B),J.debug("Caching global parameters ".concat(_))}catch(h){J.error("Error caching global parameters:",h.message)}}handleGlobalParameterConfig(s){try{const c=Date.now();Object.keys(s).forEach(u=>{switch(u){case"CLIENT_ROLE_OPTIONS":if(Object.prototype.hasOwnProperty.call(Vi,u)){const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;Sr(Vi[u],B)||($e[u]=B,Vi[u]=B,this.emit(xc.UPDATE_CLIENT_ROLE_OPTIONS,B),J.debug("Updating client role options: ".concat(JSON.stringify(B))))}break;case"REMOTE_VIDEO_STREAM_TYPE":if(Object.prototype.hasOwnProperty.call(Vi,u)){var h;const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;typeof B=="number"&&Et(h=[0,1,4,5,6,7,8,9]).call(h,B)&&($e[u]={value:B},Vi[u]=B,this.emit(xc.UPDATE_REMOTE_VIDEO_STREAM_TYPE,B),J.debug("Updating client remote stream type: ".concat(JSON.stringify(B))))}break;case"ENABLE_FORCE_HLS":if(Object.prototype.hasOwnProperty.call(Vi,u)){const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;Sr(Vi[u],B)||($e[u]=B,Vi[u]=B,this.emit(xc.FALLBACK_TO_HLS,B),J.debug("Updating enable force hls: ".concat(JSON.stringify(B))))}break;case"VOS_CONFIGURE":if(Object.prototype.hasOwnProperty.call(Vi,u)){const _=s[u],B=_.value,Q=_.expires;if(Q&&Q<=c)return;Sr(Vi[u],B)||($e[u]=B,Vi[u]=B,this.emit(xc.UPDATE_VOS_CONFIGURE,B),J.debug("Updating vos configure: ".concat(JSON.stringify(B))))}}})}catch(c){J.error("Error handling global parameter config:",c.message)}}}class mce extends Cn{constructor(){super(...arguments),ae(this,"resultStorage",new Map)}setLocalAudioStats(s,c,u){this.record("AUDIO_INPUT_LEVEL_TOO_LOW",s,this.checkAudioInputLevel(u,c)),this.record("SEND_AUDIO_BITRATE_TOO_LOW",s,this.checkSendAudioBitrate(u,c))}setLocalVideoStats(s,c,u){this.record("SEND_VIDEO_BITRATE_TOO_LOW",s,this.checkSendVideoBitrate(u,c)),this.record("FRAMERATE_INPUT_TOO_LOW",s,this.checkFramerateInput(u,c)),this.record("FRAMERATE_SENT_TOO_LOW",s,this.checkFramerateSent(u)),!c.muted&&this.record("VIDEO_ENCODE_FAILED",s,this.checResolutionSent(u))}setRemoteAudioStats(s,c){const u=s.getUserId();this.record("AUDIO_OUTPUT_LEVEL_TOO_LOW",u,this.checkAudioOutputLevel(c))}setRemoteVideoStats(s,c){const u=s.getUserId();this.record("RECV_VIDEO_DECODE_FAILED",u,this.checkVideoDecode(c))}record(s,c,u){if(de("STATS_UPDATE_INTERVAL")>500)return;this.resultStorage.has(s)||this.resultStorage.set(s,{result:[],isPrevNormal:!0});const h=this.resultStorage.get(s);if(!h)return;h.result.push(u);const _=s==="VIDEO_ENCODE_FAILED"?de("ENCODE_EXCEPTION_TIMES"):5;if(h.result.length>=_){var B;const Q=Et(B=h.result).call(B,!0);h.isPrevNormal&&!Q&&this.emit("exception",rz[s],s,c),!h.isPrevNormal&&Q&&this.emit("exception",rz[s]+2e3,s+"_RECOVER",c),h.isPrevNormal=Q,h.result=[]}}checkAudioOutputLevel(s){return!(s.receiveBitrate>0&&s.receiveLevel===0)}checkAudioInputLevel(s,c){return c instanceof ia&&!c.isActive||!!c.muted||s.sendVolumeLevel!==0}checkFramerateInput(s,c){let u=null;c._encoderConfig&&c._encoderConfig.frameRate&&(u=dc(c._encoderConfig.frameRate));const h=s.captureFrameRate;return!u||!h||!(u>10&&h<5||u<10&&u>=5&&h<=1)}checkFramerateSent(s){return!(s.captureFrameRate&&s.sendFrameRate&&s.captureFrameRate>5&&s.sendFrameRate<=1)}checResolutionSent(s){var c;return!(!s.codecType||Et(c=de("ENCODE_EXCEPTION_VALIDATE_CODEC")).call(c,s.codecType.toLocaleLowerCase()))||!s.captureFrameRate||s.sendFrameRate!==0||s.sendResolutionWidth!==0||s.sendResolutionHeight!==0}checkSendVideoBitrate(s,c){return!!c.muted||s.sendBitrate!==0}checkSendAudioBitrate(s,c){return c instanceof ia&&!c.isActive||!!c.muted||s.sendBitrate!==0}checkVideoDecode(s){return s.receiveBitrate===0||s.decodeFrameRate!==0}}const rz={FRAMERATE_INPUT_TOO_LOW:1001,FRAMERATE_SENT_TOO_LOW:1002,SEND_VIDEO_BITRATE_TOO_LOW:1003,RECV_VIDEO_DECODE_FAILED:1005,AUDIO_INPUT_LEVEL_TOO_LOW:2001,AUDIO_OUTPUT_LEVEL_TOO_LOW:2002,SEND_AUDIO_BITRATE_TOO_LOW:2003,VIDEO_ENCODE_FAILED:2004},_A=new class{markSubscribeStart(t,s){performance.mark("agora-web-sdk/".concat(t,"/subscribe-").concat(s))}markPublishStart(t,s){performance.mark("agora-web-sdk/".concat(t,"/publish-").concat(s))}measureFromSubscribeStart(t,s){const c=performance.getEntriesByName("agora-web-sdk/".concat(t,"/subscribe-").concat(s));if(c.length>0){const u=c[c.length-1];return Math.round(performance.now()-u.startTime)}return 0}measureFromPublishStart(t,s){const c=performance.getEntriesByName("agora-web-sdk/".concat(t,"/publish-").concat(s));if(c.length>0){const u=c[c.length-1];return Math.round(performance.now()-u.startTime)}return 0}};function kte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function um(t){for(var s=1;s{this.p2pChannel&&(this.updateRemoteStats(this.p2pChannel),this.updateLocalStats(this.p2pChannel))}),this.store=s,this.exceptionMonitor=new mce,this.exceptionMonitor.on("exception",(c,u,h)=>{this.onStatsException&&this.onStatsException(c,u,h)})}startUpdateStats(){this.updateStatsInterval||(this.updateStatsInterval=window.setInterval(this.updateStats,1e3))}stopUpdateStats(){this.updateStatsInterval&&(window.clearInterval(this.updateStatsInterval),this.updateStatsInterval=void 0)}reset(){this.localStats=new Map,this.remoteStats=new Map,this.trafficStats=void 0,this.trafficStatsPeerList=[],this.uplinkStats=void 0}getLocalAudioTrackStats(){return this.localStats.get(Qt.LocalAudioTrack)||um({},oy)}getLocalVideoTrackStats(){return this.localStats.get(Qt.LocalVideoTrack)||um({},sy)}getRemoteAudioTrackStats(s){const c=(_,B)=>{if(!this.trafficStats)return B;const Q=this.trafficStats.peer_delay.find(T=>T.peer_uid===_);return Q&&(B.publishDuration=Q.B_ppad+(Date.now()-this.trafficStats.timestamp)),B},u={};if(s){var h;const _=(h=this.remoteStats.get(s))===null||h===void 0?void 0:h.audioStats;_&&(u[s]=c(s,_))}else Array.from(this.remoteStats.entries()).forEach(_=>{let B=ir(_,2),Q=B[0],T=B[1].audioStats;T&&(u[Q]=c(Q,T))});return u}getRemoteNetworkQualityStats(s){const c={};if(s){var u;const h=(u=this.remoteStats.get(s))===null||u===void 0?void 0:u.networkStats;h&&(c[s]=h)}else Array.from(this.remoteStats.entries()).forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1].networkStats;Q&&(c[B]=Q)});return c}getNetworkQuality(){let s=0,c=0;return this.trafficStats&&(s=TF(this.trafficStats.B_unq),c=TF(this.trafficStats.B_dnq)),{uplinkNetworkQuality:s,downlinkNetworkQuality:c}}getRemoteVideoTrackStats(s){const c=(_,B)=>{if(!this.trafficStats)return B;const Q=this.trafficStats.peer_delay.find(T=>T.peer_uid===_);return Q&&(B.publishDuration=Q.B_ppvd+(Date.now()-this.trafficStats.timestamp)),B},u={};if(s){var h;const _=(h=this.remoteStats.get(s))===null||h===void 0?void 0:h.videoStats;_&&(u[s]=c(s,_))}else Array.from(this.remoteStats.entries()).forEach(_=>{let B=ir(_,2),Q=B[0],T=B[1].videoStats;T&&(u[Q]=c(Q,T))});return u}getRTCStats(){let s=0,c=0,u=0,h=0;const _=this.localStats.get(Qt.LocalAudioTrack);_&&(s+=_.sendBytes,c+=_.sendBitrate);const B=this.localStats.get(Qt.LocalVideoTrack);B&&(s+=B.sendBytes,c+=B.sendBitrate);const Q=this.localStats.get(Qt.LocalVideoLowTrack);Q&&(s+=Q.sendBytes,c+=Q.sendBitrate),this.remoteStats.forEach(D=>{let O=D.audioStats,P=D.videoStats;O&&(u+=O.receiveBytes,h+=O.receiveBitrate),P&&(u+=P.receiveBytes,h+=P.receiveBitrate)});let T=1;return this.trafficStats&&(T+=this.trafficStats.peer_delay.length),{Duration:0,UserCount:T,SendBitrate:c,SendBytes:s,RecvBytes:u,RecvBitrate:h,OutgoingAvailableBandwidth:this.uplinkStats?this.uplinkStats.B_uab/1e3:0,RTT:this.trafficStats?2*this.trafficStats.B_acd:0}}addLocalStats(s){this.localStats.set(s,void 0)}removeLocalStats(s){s?this.localStats.delete(s):this.localStats.clear()}addRemoteStats(s){this.remoteStats.set(s,{})}removeRemoteStats(s){s?this.remoteStats.delete(s):this.remoteStats.clear()}addP2PChannel(s){this.p2pChannel=s}updateTrafficStats(s){s.peer_delay=s.peer_delay.filter(c=>c.B_ppad!==void 0||c.B_ppvd!==void 0),s.peer_delay.filter(c=>this.trafficStatsPeerList.indexOf(c.peer_uid)===-1).forEach(c=>{var u;const h=(u=this.p2pChannel)===null||u===void 0?void 0:u.getRemoteMedia(c.peer_uid),_=h!=null&&h.videoSSRC?_A.measureFromSubscribeStart(this.store.clientId,h.videoSSRC):0,B=h!=null&&h.audioSSRC?_A.measureFromSubscribeStart(this.store.clientId,h.audioSSRC):0;c.B_ppad!==void 0&&c.B_ppvd!==void 0&&(this.onUploadPublishDuration&&this.onUploadPublishDuration(c.peer_uid,c.B_ppad,c.B_ppvd,_>B?_:B),this.trafficStatsPeerList.push(c.peer_uid))}),this.trafficStats=s}updateUplinkStats(s){this.uplinkStats&&this.uplinkStats.B_fir!==s.B_fir&&J.debug("[".concat(this.store.clientId,"]: Period fir changes to ").concat(s.B_fir)),this.uplinkStats=s}static isRemoteVideoFreeze(s,c,u){if(!s)return!1;const h=!!u&&c.framesDecodeFreezeTime>u.framesDecodeFreezeTime,_=!u||c.framesDecodeCount>u.framesDecodeCount;return h||!_}static isRemoteAudioFreeze(s){return!!s&&s._isFreeze()}isLocalVideoFreeze(s){return!(!s.inputFrame||!s.sentFrame)&&s.inputFrame.frameRate>5&&s.sentFrame.frameRate<3}updateLocalStats(s){Array.from(this.localStats.entries()).forEach(c=>{let u=ir(c,2),h=u[0],_=u[1];switch(h){case Qt.LocalVideoTrack:case Qt.LocalVideoLowTrack:{const T=_,D=um({},sy),O=s.getStats(),P=s.getLocalMedia(h);if(O){const U=O.videoSend.find(H=>H.ssrc===(P==null?void 0:P.ssrcs[0].ssrcId));if(U){const H=s.getLocalVideoSize(),$=s.getEncoderConfig(Qt.LocalVideoTrack);var B;(U.codec==="H264"||U.codec==="H265"||U.codec==="VP8"||U.codec==="VP9"||U.codec==="AV1X"||U.codec==="AV1")&&(D.codecType=U.codec,(T==null?void 0:T.codecType)!==U.codec&&((B=this.onVideoCodecChanged)===null||B===void 0||B.call(this,U.codec.toLocaleLowerCase()))),D.sendBytes=U.bytes,D.sendBitrate=T?8*Math.max(0,D.sendBytes-T.sendBytes):0,U.inputFrame?(D.captureFrameRate=U.inputFrame.frameRate,D.captureResolutionHeight=U.inputFrame.height,D.captureResolutionWidth=U.inputFrame.width):H&&(D.captureResolutionWidth=H.width,D.captureResolutionHeight=H.height),U.sentFrame?(D.sendFrameRate=U.sentFrame.frameRate,D.sendResolutionHeight=U.sentFrame.height,D.sendResolutionWidth=U.sentFrame.width):H&&(D.sendResolutionWidth=H.width,D.sendResolutionHeight=H.height),U.avgEncodeMs&&(D.encodeDelay=U.avgEncodeMs),$&&$.bitrateMax?D.targetSendBitrate=1e3*$.bitrateMax:U.targetBitrate&&(D.targetSendBitrate=U.targetBitrate),D.sendPackets=U.packets,D.sendPacketsLost=U.packetsLost,D.sendJitterMs=U.jitterMs,D.sendRttMs=U.rttMs,D.totalDuration=T?T.totalDuration+1:1,D.totalFreezeTime=T?T.totalFreezeTime:0,this.isLocalVideoFreeze(U)&&(D.totalFreezeTime+=1),U.scalabilityMode&&this.scalabilityMode!==U.scalabilityMode&&(J.debug("[".concat(this.store.clientId,"]: The scalabilityMode of the video sending stream is ").concat(U.scalabilityMode)),this.scalabilityMode=U.scalabilityMode)}this.trafficStats&&(D.currentPacketLossRate=(this.trafficStats.B_pvlr4||0)/100)}var Q;this.localStats.set(h,D),((T==null?void 0:T.sendResolutionWidth)!==D.sendResolutionWidth||(T==null?void 0:T.sendResolutionHeight)!==D.sendResolutionHeight)&&((Q=this.onStatsChanged)===null||Q===void 0||Q.call(this,"resolution",{width:D.sendResolutionWidth,height:D.sendResolutionHeight})),D&&P&&this.exceptionMonitor.setLocalVideoStats(this.store.uid,P.track,D);break}case Qt.LocalAudioTrack:{const T=_,D=um({},oy),O=s.getStats(),P=s.getLocalMedia(h);if(O){const U=O.audioSend.find(H=>H.ssrc===(P==null?void 0:P.ssrcs[0].ssrcId));if(U){if(U.codec!=="opus"&&U.codec!=="aac"&&U.codec!=="PCMU"&&U.codec!=="PCMA"&&U.codec!=="G722"||(D.codecType=U.codec),U.inputLevel)D.sendVolumeLevel=Math.round(32767*U.inputLevel);else{const H=s.getLocalAudioVolume();H&&(D.sendVolumeLevel=Math.round(32767*H))}D.sendBytes=U.bytes,D.sendPackets=U.packets,D.sendPacketsLost=U.packetsLost,D.sendJitterMs=U.jitterMs,D.sendRttMs=U.rttMs,D.sendBitrate=T?8*Math.max(0,D.sendBytes-T.sendBytes):0}}this.trafficStats&&(D.currentPacketLossRate=(this.trafficStats.B_palr4||0)/100),this.localStats.set(Qt.LocalAudioTrack,D),D&&P&&this.exceptionMonitor.setLocalAudioStats(this.store.uid,P.track,D);break}}})}updateRemoteStats(s){Array.from(this.remoteStats.entries()).forEach(c=>{var u,h;let _=ir(c,2),B=_[0],Q=_[1],T=Q.videoStats;const D=Q.audioStats,O=T,P=Q.videoPcStats,U=um({},k4),H=um({},P4),$=um({},EU),Z=s.getRemoteMedia(B),te=Z.audioTrack,se=Z.videoTrack,ge=Z.audioSSRC,me=Z.videoSSRC;let Qe;Qe=this.store.useP2P?s.getStats(!0):s.getStats();const Oe=(u=Qe)===null||u===void 0?void 0:u.audioRecv.find(st=>st.ssrc===ge),we=(h=Qe)===null||h===void 0?void 0:h.videoRecv.find(st=>st.ssrc===me),Ne=this.trafficStats&&this.trafficStats.peer_delay.find(st=>st.peer_uid===B);if(Oe&&(Oe.codec!=="opus"&&Oe.codec!=="aac"&&Oe.codec!=="PCMU"&&Oe.codec!=="PCMA"&&Oe.codec!=="G722"||(U.codecType=Oe.codec),Oe.outputLevel?U.receiveLevel=Math.round(32767*Oe.outputLevel):te&&(U.receiveLevel=Math.round(32767*te.getVolumeLevel())),U.receiveBytes=Oe.bytes,U.receivePackets=Oe.packets,U.receivePacketsLost=Oe.packetsLost,U.receivePacketsDiscarded=Oe.packetsDiscarded,U.packetLossRate=U.receivePacketsLost/(U.receivePackets+U.receivePacketsLost),U.receiveBitrate=D?8*Math.max(0,U.receiveBytes-D.receiveBytes):0,U.totalDuration=D?D.totalDuration+1:1,U.totalFreezeTime=D?D.totalFreezeTime:0,U.freezeRate=U.totalFreezeTime/U.totalDuration,U.receiveDelay=Oe.jitterBufferMs,U.totalDuration>10&&m9.isRemoteAudioFreeze(te)&&(U.totalFreezeTime+=1)),we){we.codec!=="H264"&&we.codec!=="H265"&&we.codec!=="VP8"&&we.codec!=="VP9"&&we.codec!=="AV1X"&&we.codec!=="AV1"||(H.codecType=we.codec),H.receiveBytes=we.bytes,H.receiveBitrate=O?8*Math.max(0,H.receiveBytes-O.receiveBytes):0,H.decodeFrameRate=we.decodeFrameRate<0?0:we.decodeFrameRate,H.renderFrameRate=we.decodeFrameRate<0?0:we.decodeFrameRate,we.outputFrame&&(H.renderFrameRate=we.outputFrame.frameRate),we.receivedFrame?(H.receiveFrameRate=we.receivedFrame.frameRate,H.receiveResolutionHeight=we.receivedFrame.height,H.receiveResolutionWidth=we.receivedFrame.width):se&&(H.receiveResolutionHeight=se._videoHeight||0,H.receiveResolutionWidth=se._videoWidth||0),we.framesRateFirefox!==void 0&&(H.receiveFrameRate=Math.round(we.framesRateFirefox)),H.receivePackets=we.packets,H.receivePacketsLost=we.packetsLost,H.packetLossRate=H.receivePacketsLost/(H.receivePackets+H.receivePacketsLost),H.receiveDelay=we.jitterBufferMs||0;const st=!!me&&s.getRemoteVideoIsReady(me),Xt=O?O.totalFreezeTime:0,lr=O?O.totalDuration:0;var et;H.totalDuration=O?O.totalDuration+1:1,de("REMOTE_VIDEO_FREEZE_TIME_VERSION")===1?se&&st&&se._player&&(H.totalFreezeTime=se._player.totalFreezeTime/1e3):(H.totalFreezeTime=(et=we.totalFreezesDuration)!==null&&et!==void 0?et:Xt||0,we.totalFreezesDuration===void 0&&se&&st&&m9.isRemoteVideoFreeze(se,we,P)&&(H.totalFreezeTime+=1)),H.freezeRate=Math.max(0,Math.min((H.totalFreezeTime-Xt)/(H.totalDuration-lr),1))}Ne&&(U.end2EndDelay=Ne.B_ad,H.end2EndDelay=Ne.B_vd,U.transportDelay=Ne.B_ed,H.transportDelay=Ne.B_ed,U.currentPacketLossRate=Ne.B_ealr4/100,H.currentPacketLossRate=Ne.B_evlr4/100,$.uplinkNetworkQuality=Ne.B_punq?Ne.B_punq:0,$.downlinkNetworkQuality=Ne.B_pdnq?Ne.B_pdnq:0),this.remoteStats.set(B,{audioStats:U,videoStats:H,videoPcStats:we,networkStats:$}),te&&this.exceptionMonitor.setRemoteAudioStats(te,U),se&&this.exceptionMonitor.setRemoteVideoStats(se,H)})}}class Pte{constructor(){ae(this,"destChannelMediaInfos",new Map),ae(this,"srcChannelMediaInfo",void 0)}setSrcChannelInfo(s){Fy(s),this.srcChannelMediaInfo=s}addDestChannelInfo(s){Fy(s),this.destChannelMediaInfos.set(s.channelName,s)}removeDestChannelInfo(s){fl(s),this.destChannelMediaInfos.delete(s)}getSrcChannelMediaInfo(){return this.srcChannelMediaInfo}getDestChannelMediaInfo(){return this.destChannelMediaInfos}}function Ute(t){if(!(t instanceof Pte))return new qe(Ce.INVALID_PARAMS,"Config should be instance of [ChannelMediaRelayConfiguration]").throw();const s=t.getSrcChannelMediaInfo(),c=t.getDestChannelMediaInfo();if(!s)return new qe(Ce.INVALID_PARAMS,"srcChannelMediaInfo should not be empty").throw();if(c.size===0)return new qe(Ce.INVALID_PARAMS,"destChannelMediaInfo should not be empty").throw()}class vp{get hasVideo(){return this._video_enabled_&&!this._video_muted_&&this._video_added_}get hasAudio(){return this._audio_enabled_&&!this._audio_muted_&&this._audio_added_}get audioTrack(){if(this.hasAudio||this._audio_pre_subscribed)return this._audioTrack}get videoTrack(){if(this.hasVideo||this._video_pre_subscribed)return this._videoTrack}get dataChannels(){return this._dataChannels}constructor(s,c){ae(this,"uid",void 0),ae(this,"_uintid",void 0),ae(this,"_trust_in_room_",!0),ae(this,"_trust_audio_enabled_state_",!0),ae(this,"_trust_video_enabled_state_",!0),ae(this,"_trust_audio_mute_state_",!0),ae(this,"_trust_video_mute_state_",!0),ae(this,"_audio_muted_",!1),ae(this,"_video_muted_",!1),ae(this,"_audio_enabled_",!0),ae(this,"_video_enabled_",!0),ae(this,"_audio_added_",!1),ae(this,"_video_added_",!1),ae(this,"_is_pre_created",!1),ae(this,"_video_pre_subscribed",!1),ae(this,"_audio_pre_subscribed",!1),ae(this,"_trust_video_stream_added_state_",!0),ae(this,"_trust_audio_stream_added_state_",!0),ae(this,"_audioTrack",void 0),ae(this,"_videoTrack",void 0),ae(this,"_dataChannels",[]),ae(this,"_audioSSRC",void 0),ae(this,"_videoSSRC",void 0),ae(this,"_audioOrtc",void 0),ae(this,"_videoOrtc",void 0),ae(this,"_cname",void 0),ae(this,"_rtxSsrcId",void 0),ae(this,"_videoMid",void 0),ae(this,"_audioMid",void 0),this.uid=s,this._uintid=c}}function xte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function iz(t){for(var s=1;s`v=0 -o=- 0 0 IN IP4 127.0.0.1 -s=AgoraGateway -t=0 0 -a=group:BUNDLE 0 1 2 -a=msid-semantic: WMS -a=ice-lite`.concat(t?` -a=extmap-allow-mixed`:"",` -m=video 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:0 -m=audio 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:1 -m=application 9 UDP/DTLS/SCTP webrtc-datachannel -c=IN IP4 127.0.0.1 -a=mid:2 -`),xF="9",nz=2e4,FF=4e4;let Fte=class{get localCapabilities(){return go(this._localCapabilities)}get rtpCapabilities(){return go(this._rtpCapabilities)}get candidates(){return go(this._candidates)}get iceParameters(){return go(this._iceParameters)}get dtlsParameters(){return go(this._dtlsParameters)}constructor(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1],c=arguments.length>2&&arguments[2]!==void 0&&arguments[2],u=arguments.length>3&&arguments[3]!==void 0&&arguments[3];ae(this,"sessionDesc",void 0),ae(this,"_localCapabilities",void 0),ae(this,"_rtpCapabilities",void 0),ae(this,"_candidates",void 0),ae(this,"_originCandidates",void 0),ae(this,"_iceParameters",void 0),ae(this,"_isUseExtmapAllowMixed",void 0),ae(this,"_isUseLocalCodecs",void 0),ae(this,"_isUseDataChannel",void 0),ae(this,"_dtlsParameters",void 0),ae(this,"setup",void 0),ae(this,"currentMidIndex",void 0),ae(this,"cname",void 0),ae(this,"useLocalCodecsMids",[]),ae(this,"preloadSsrcs",[]),ae(this,"firefoxSsrcMidMap",new Map),this._isUseExtmapAllowMixed=s,this._isUseLocalCodecs=c,this._isUseDataChannel=u;const h=t=go(t),_=h.iceParameters,B=h.dtlsParameters,Q=h.candidates,T=h.rtpCapabilities,D=h.setup,O=h.localCapabilities,P=h.cname;this._rtpCapabilities=T,this._candidates=Q,this._originCandidates=go(Q),this._iceParameters=_,this._dtlsParameters=B,this._localCapabilities=O,this.setup=D,this.cname=P;var U=ir(this.updateRemoteRTPCapabilities(T),1);this.sessionDesc=U[0],this.currentMidIndex=this.sessionDesc.mediaDescriptions.length-1}checkPreloadSsrcs(t){return t.length===this.preloadSsrcs.length&&t.every(s=>{var c;return Et(c=this.preloadSsrcs).call(c,s)})}preloadRemoteMedia(t){let s=0;const c=[],u=[];for(;t>0;){const h=[iz({ssrcId:FF+s},de("USE_SUB_RTX")?{rtx:FF+s+1}:{})],_="".concat(FF+s,"_").concat(nz+s),B=I9(h,this.cname,de("SYNC_GROUP")?_:void 0),Q=B.ssrcs,T=B.ssrcGroups,D=this.preCreateOrRecycleSendMedia("video",Q,T,void 0),O=[{ssrcId:nz+s}],P="".concat(FF+s,"_").concat(nz+s),U=I9(O,this.cname,de("SYNC_GROUP")?P:void 0),H=U.ssrcs,$=U.ssrcGroups,Z=this.preCreateOrRecycleSendMedia("audio",H,$,void 0);t--,s+=2,c.push(D,Z),u.push(Q[0].ssrcId,H[0].ssrcId)}return this.useLocalCodecsMids.push(...c),this.preloadSsrcs=u,{mids:c,preSSRCs:u,isAvailable:!0}}preCreateOrRecycleSendMedia(t,s,c,u){const h=this.rtpCapabilities.send.videoCodecs,_=this._isUseLocalCodecs||h.length===0?this.localCapabilities.recv:this.rtpCapabilities.send;J.debug("create or recycle send media without remote rtp capabilities, ssrcs ",s[0].ssrcId);const B=t===rr.VIDEO?_.videoCodecs:_.audioCodecs,Q=t===rr.VIDEO?_.videoExtensions:_.audioExtensions;this.currentMidIndex+=1;const T="".concat(this.currentMidIndex);let D={media:{mediaType:t,port:xF,protos:["UDP","TLS","RTP","SAVPF"],fmts:B.map(O=>O.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:Q,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:c,rtcpFeedbackWildcards:[],payloads:B,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:"sendonly",rtcpMux:!0,rtcpRsize:!0,mid:"".concat(T)}};return D=this.mungSendMediaDesc(D,u),this.sessionDesc.mediaDescriptions.push(D),this.updateBundleMids(),T}toString(){return X1(this.sessionDesc)}send(t,s,c,u){const h=I9(s,this.cname,de("SYNC_GROUP")?c:void 0),_=h.ssrcs,B=h.ssrcGroups,Q=this.findPreloadMediaDesc(_);if(Q){if(Ln()&&this.firefoxSsrcMidMap.set(_[0].ssrcId,Q.attributes.mid),u&&(u.twcc||u.remb)){const T=this.sessionDesc.mediaDescriptions.indexOf(Q);return this.sessionDesc.mediaDescriptions[T]=this.mungSendMediaDesc(Q,u),{mid:Q.attributes.mid,needExchangeSDP:!0}}return{mid:Q.attributes.mid,needExchangeSDP:!1}}{const T=this.findAvailableMediaIndex(t,_);let D;return T===-1||T===1&&(Zs()||function(){const O=Qi();return!(O.name!==Fi.CHROME||!O.osVersion)&&Number(O.version)<=90}()||al(143)||wu(143)||de("RESERVE_MID_1_MLINE")||de("ENABLE_ENCODED_TRANSFORM")&&DA())||T===0&&!function(O){const P=Qi();return!(P.name!==Fi.FIREFOX||!P.osVersion)&&Number(P.version)===O}(138)&&de("USE_SUB_RTX")||t4()?(D=this.createOrRecycleSendMedia(t,_,B,"sendonly",u),this.updateBundleMids()):(D=go(this.sessionDesc.mediaDescriptions[T]),D.attributes.direction="sendonly",D.attributes.ssrcs=_,D.attributes.ssrcGroups=B,this.sessionDesc.mediaDescriptions[T]=this.mungSendMediaDesc(D,u)),Ln()&&this.firefoxSsrcMidMap.set(_[0].ssrcId,D.attributes.mid),{mid:D.attributes.mid,needExchangeSDP:!0}}}sendDataChannel(){const t=this.createOrRecycleDataChannel(),s=t.mediaDesc,c=t.needExchangeSDP;return this.updateBundleMids(),{mid:s.attributes.mid,needExchangeSDP:c}}batchSend(t){const s=t.map(h=>{let _=h.kind,B=h.ssrcMsg,Q=h.mslabel;return this.send(_,B,Q)}),c=[];let u=!1;return s.forEach(h=>{let _=h.mid;h.needExchangeSDP&&(u=!0),c.push(_)}),{mids:c,needExchangeSDP:u}}stopSending(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>c.attributes.mid&&t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");s.forEach(c=>{c.attributes.mid==="0"||Ln()||t4()?c.attributes.ssrcs=[]:(c.attributes.ssrcs=[],c.attributes.direction="inactive",c.media.port="0")}),this.updateBundleMids()}mute(t){const s=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===t);if(!s)throw new Error("mediaDescription not found with ".concat(t," in remote SDP when calling RemoteSDP.mute."));s.attributes.direction="inactive"}unmute(t){const s=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===t);if(!s)throw new Error("mediaDescription not found with ".concat(t," in remote SDP when calling RemoteSDP.unmute."));s.attributes.direction="sendonly"}muteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="inactive"})}unmuteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="recvonly"})}receive(t,s,c,u){t.forEach((h,_)=>{this.createOrRecycleRecvMedia(h,[],"recvonly",s,c,u[_])}),this.updateBundleMids()}stopReceiving(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");s.forEach(c=>{c.media.port="0",c.attributes.direction="inactive"}),this.updateBundleMids()}updateRemoteRTPCapabilities(t){const s=this.sessionDesc||wa((c=this._isUseExtmapAllowMixed,this._isUseDataChannel?Bce(c):`v=0 -o=- 0 0 IN IP4 127.0.0.1 -s=AgoraGateway -t=0 0 -a=group:BUNDLE 0 1 -a=msid-semantic: WMS -a=ice-lite`.concat(c?` -a=extmap-allow-mixed`:"",` -m=video 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:0 -m=audio 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:1 -`)));var c;this._rtpCapabilities=t;let u=!1;const h=this.rtpCapabilities.send,_=this.localCapabilities.send,B=this.localCapabilities.recv,Q=B.videoCodecs,T=B.audioCodecs,D=B.videoExtensions,O=B.audioExtensions;for(const $ of s.mediaDescriptions){var P;if($.attributes.direction!=="sendonly"||typeof $.attributes.mid!="string"||!Et(P=this.useLocalCodecsMids).call(P,$.attributes.mid)){if(u=!0,$.attributes.iceUfrag=this._iceParameters.iceUfrag,$.attributes.icePwd=this._iceParameters.icePwd,$.attributes.fingerprints=this._dtlsParameters.fingerprints,$.attributes.candidates=this._candidates,$.attributes.setup=this.setup,$.media.mediaType==="application"&&($.attributes.sctpPort="5000"),$.media.mediaType==="video")if(this._isUseLocalCodecs&&$.attributes.direction==="sendonly"){var U;$.media.fmts=Q.map(te=>te.payloadType.toString(10)),$.attributes.payloads=Q,$.attributes.extmaps=D;const Z=$.attributes.mid;typeof Z!="string"||Et(U=this.useLocalCodecsMids).call(U,Z)||this.useLocalCodecsMids.push(Z)}else if(h.videoCodecs.length===0){const Z=_.videoCodecs.filter(te=>{var se,ge;return(se=te.rtpMap)===null||se===void 0?void 0:Et(ge=se.encodingName.toLowerCase()).call(ge,"vp8")});Z.length===0&&Z.push(_.videoCodecs[0]),$.media.fmts=Z.map(te=>te.payloadType.toString(10)),$.attributes.payloads=Z,$.attributes.extmaps=[]}else $.media.fmts=h.videoCodecs.map(Z=>Z.payloadType.toString(10)),$.attributes.payloads=h.videoCodecs,$.attributes.extmaps=h.videoExtensions;if($.media.mediaType==="audio")if(this._isUseLocalCodecs&&$.attributes.direction==="sendonly"){var H;$.media.fmts=T.map(te=>te.payloadType.toString(10)),$.attributes.payloads=T,$.attributes.extmaps=O;const Z=$.attributes.mid;typeof Z!="string"||Et(H=this.useLocalCodecsMids).call(H,Z)||this.useLocalCodecsMids.push(Z)}else if(h.audioCodecs.length===0){const Z=_.audioCodecs.filter(te=>{var se,ge;return(se=te.rtpMap)===null||se===void 0?void 0:Et(ge=se.encodingName.toLowerCase()).call(ge,"opus")})||[_.audioCodecs[0]];$.media.fmts=Z.map(te=>te.payloadType.toString(10)),$.attributes.payloads=Z,$.attributes.extmaps=[]}else $.media.fmts=h.audioCodecs.map(Z=>Z.payloadType.toString(10)),$.attributes.payloads=h.audioCodecs,$.attributes.extmaps=h.audioExtensions,nT($)}}return this.sessionDesc=s,this.currentMidIndex=s.mediaDescriptions.length-1,[this.sessionDesc,u]}updateCandidates(t){const s=this._originCandidates.filter(u=>u.transport==="udp"),c=[];if(s.forEach(u=>{c.push(iz(iz({},u),{},{foundation:"tcpcandidate",priority:Number(u.priority)-1+"",transport:"tcp",port:Number(u.port)+90+""}))}),s.length!==0){switch(t){case qs.TCP_RELAY:this._candidates=c;break;case qs.UDP_TCP_RELAY:case qs.RELAY:this._candidates=[...s,...c];break;default:this._candidates=s}for(const u of this.sessionDesc.mediaDescriptions)u.attributes.candidates=this.candidates}}restartICE(t){let s=!1;return t=go(t),this._iceParameters=t,this.sessionDesc.mediaDescriptions.forEach(c=>{c.attributes.iceUfrag===t.iceUfrag&&c.attributes.icePwd===t.icePwd||(s=!0),c.attributes.iceUfrag=t.iceUfrag,c.attributes.icePwd=t.icePwd}),s}predictReceivingMids(t){const s=[];for(let c=0;c{const u=c.media.mediaType===t&&c.media.port!=="0"&&(c.attributes.direction==="sendonly"||c.attributes.direction==="sendrecv")&&c.attributes.ssrcs.length===0;if(Ln()){if(u){const h=this.firefoxSsrcMidMap.get(s[0].ssrcId);return!(h||c.attributes.mid!=="0"&&c.attributes.mid!=="1")||!(!h||h!==c.attributes.mid)}return!1}return u})}createOrRecycleDataChannel(){for(const c of this.sessionDesc.mediaDescriptions)if(c.media.mediaType==="application")return{mediaDesc:c,needExchangeSDP:!1};this.currentMidIndex+=1;const t="".concat(this.currentMidIndex),s={media:{mediaType:"application",port:xF,protos:["UDP","DTLS","SCTP"],fmts:["webrtc-datachannel"]},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:[],fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:[],ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:[],rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,mid:"".concat(t),sctpPort:"5000"}};return this.sessionDesc.mediaDescriptions.push(s),{mediaDesc:s,needExchangeSDP:!0}}createOrRecycleRecvMedia(t,s,c,u,h,_){const B=t._mediaStreamTrack.kind,Q=this.rtpCapabilities.recv,T=p9(B,Q,this.localCapabilities.send,B===rr.VIDEO?u:h),D=B===rr.VIDEO?Q.videoExtensions:Q.audioExtensions;this.currentMidIndex+=1;const O="".concat(this.currentMidIndex);let P={media:{mediaType:B,port:xF,protos:["UDP","TLS","RTP","SAVPF"],fmts:T.map(H=>H.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:D,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:T,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:c,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(O)}};P=this.mungRecvMediaDsec(P,t,_);const U=this.findFirstClosedMedia(B);if(U){const H=this.sessionDesc.mediaDescriptions.indexOf(U);this.sessionDesc.mediaDescriptions[H]=P}else this.sessionDesc.mediaDescriptions.push(P);return P}updateRemoteDtlsParameters(t){const s=new Set(this._dtlsParameters.fingerprints.map(h=>h.fingerprint)),c=new Set(t.map(h=>h.fingerprint));let u=!1;s.size!==c.size&&(u=!0);for(const h of s)c.has(h)||(u=!0);return u}updateRemoteCodec(t,s,c){const u=[...new Set(this._rtpCapabilities.recv.videoCodecs.map(P=>P.rtpMap&&P.rtpMap.encodingName.toLowerCase()||"").filter(P=>{var U;return Et(U=Object.keys(Qn)).call(U,P)}))],h=new Set(s);if(u.every(P=>h.has(P)))return J.debug("codecs has not changed, no need to updateRemoteCodec, codecs: ".concat(s)),!1;const _=this._rtpCapabilities.recv.videoCodecs.filter(P=>s.some(U=>{var H;return Et(H=P.rtpMap&&P.rtpMap.encodingName.toLowerCase()||"").call(H,U)}));if(_.length===0)return J.debug("updateRemoteCodec failed, because cannot find matched codec, remoteCapabilities codecs: ".concat(u," codecs: ").concat(s)),!1;const B=[...new Set(_.map(P=>P.rtpMap&&P.rtpMap.encodingName.toLowerCase()||""))];let Q;if(J.debug("updateRemoteCodec, from ".concat(u," to ").concat(B)),t.length===0)Q=this.sessionDesc.mediaDescriptions.filter(P=>P.media.mediaType==="video"&&P.attributes.direction==="recvonly");else if(Q=this.sessionDesc.mediaDescriptions.filter(P=>P.attributes.mid&&P.media.mediaType==="video"&&Et(t).call(t,P.attributes.mid)&&P.attributes.direction==="recvonly"),Q.length!==t.length)return J.debug("updateRemoteCodec failed, because cannot find mids, mids: ".concat(t,", codecs: ").concat(s)),!1;if(de("USE_PUB_RTX")||de("USE_SUB_RTX")){const P=wp(_,this.rtpCapabilities.recv.videoCodecs);_.push(...P)}this._rtpCapabilities.recv.videoCodecs=_;const T=this.localCapabilities.send,D=this.rtpCapabilities.recv,O=p9(rr.VIDEO,D,T,c);return Q.forEach(P=>{const U=O.map(H=>H.payloadType.toString(10));J.debug("updateRemoteCodec mid: ".concat(P.attributes.mid,", from"),P.attributes.payloads,"to",O),P.attributes.payloads=O,P.media.fmts=U}),J.debug("updateRemoteCodec success, mids: ".concat(t,", codecs: ").concat(s,", remote recv: ").concat(this._rtpCapabilities.recv.videoCodecs.length,", remote send: ").concat(this._rtpCapabilities.send.videoCodecs.length)),!0}createOrRecycleSendMedia(t,s,c,u,h){const _=this.rtpCapabilities.send.videoCodecs,B=this._isUseLocalCodecs||_.length===0?this.localCapabilities.recv:this.rtpCapabilities.send,Q=t===rr.VIDEO?B.videoCodecs:B.audioCodecs,T=t===rr.VIDEO?B.videoExtensions:B.audioExtensions;this.currentMidIndex+=1;const D="".concat(this.currentMidIndex);let O={media:{mediaType:t,port:xF,protos:["UDP","TLS","RTP","SAVPF"],fmts:Q.map(U=>U.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:this.candidates,extmaps:T,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:c,rtcpFeedbackWildcards:[],payloads:Q,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:u,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(D)}};O=this.mungSendMediaDesc(O,h);const P=this.findFirstClosedMedia(t);if(P){const U=this.sessionDesc.mediaDescriptions.indexOf(P);this.sessionDesc.mediaDescriptions[U]=O}else this.sessionDesc.mediaDescriptions.push(O);return O}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(t=>t.media.port!=="0").map(t=>t.attributes.mid)}mungRecvMediaDsec(t,s,c){const u=go(t);return GX(u),Am(u,s),VX(u,s),pte(u),DF(u,c,this.localCapabilities.send),u}mungSendMediaDesc(t,s){const c=go(t);return c.attributes&&c.attributes.payloads&&Array.isArray(c.attributes.payloads)&&c.attributes.payloads.length>0&&c.attributes.payloads.forEach(u=>{u.rtpMap&&u.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&de("ENABLE_DOWN_SPS_PPS")&&(u.fmtp&&u.fmtp.parameters||(u.fmtp={parameters:{}}),u.fmtp.parameters["sps-pps-idr-in-keyframe"]="1")}),DF(c,s,this.localCapabilities.recv),nT(c),c}updateRecvMedia(t,s){const c=this.sessionDesc.mediaDescriptions.findIndex(u=>u.attributes.mid===t);if(c!==-1){const u=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[c],s);this.sessionDesc.mediaDescriptions[c]=u}}bumpMid(t){this.currentMidIndex+=t}findFirstClosedMedia(t){return this.sessionDesc.mediaDescriptions.find(s=>Ln()?s.media.port==="0"&&s.media.mediaType===t:s.media.port==="0")}findPreloadMediaDesc(t){return this.sessionDesc.mediaDescriptions.find(s=>{var c;return((c=s.attributes)===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId)===t[0].ssrcId})}getSSRC(t){var s;return(s=this.sessionDesc.mediaDescriptions.find(c=>c.attributes.mid===t))===null||s===void 0?void 0:s.attributes.ssrcs}};function oz(t){return!!t&&(typeof t.minDownscaleWidth=="number"&&t.minDownscaleWidth>=1||typeof t.minDownscaleHeight=="number"&&t.minDownscaleHeight>=1)}function Gte(t){return t==="vp8"||t==="vp9"}function Vte(t,s,c,u){if(typeof u!="number")return Array.from({length:c+1},(D,O)=>t/Math.pow(s,O));const h=Math.max(t,u),_=h/t;if(_<=1)return Array.from({length:c+1},()=>t);const B=1/s,Q=Math.min(c,Math.max(1,Math.ceil(Math.log(_)/Math.log(B)))),T=Math.pow(_,1/Q);return Array.from({length:c+1},(D,O)=>{if(O===0)return t;const P=Math.min(O,Q);return Math.min(t*Math.pow(T,P),h)})}function Kte(t,s,c,u){if(typeof u!="number")return c;const h=Math.max(t,u)/t;if(h<=1)return 0;const _=1/s;return Math.min(c,Math.max(1,Math.ceil(Math.log(h)/Math.log(_))))}function Hte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function EI(t){for(var s=1;s=s.length-1&&u===sT.DOWN)return t;let _=EI(EI({},t),{},{scale:u===sT.DOWN?++h:--h});switch(c){case"maintain-framerate":_=EI(EI({},_),s[h].motion);break;case"maintain-resolution":_=EI(EI({},_),s[h].detail);break;case"balanced":_=EI(EI({},_),s[h].balanced)}return _}function jte(t,s,c){if(s){const u={overUse:0,underUse:0,adaptationList:Jte(s,c)};GF.set(t,u)}else GF.delete(t)}function Jte(t,s){const c=EI({},t),u=c.bitrateMax,h=c.frameRate,_=c.scaleResolutionDownBy,B=c.bitrateMin,Q=function(Ir){const ui=[];if(typeof Ir.minDownscaleHeight=="number"&&Ir.minDownscaleHeight>=1&&Ir.height>0&&ui.push(Ir.height/Ir.minDownscaleHeight),typeof Ir.minDownscaleWidth=="number"&&Ir.minDownscaleWidth>=1&&Ir.width>0&&ui.push(Ir.width/Ir.minDownscaleWidth),ui.length)return Math.max(Ir.scaleResolutionDownBy,Math.min(...ui))}(c),T=Qa.MIN_FRAME_RATE,D=Qa.MAX_THRESHOLD_FRAMERATE,O=Qa.MAX_SCALE,P=Qa.BITRATE_MIN_THRESHOLD,U=Qa.BITRATE_MAX_THRESHOLD,H=Qa.BWE_SCALE_UP_THRESHOLD,$=Qa.BWE_SCALE_DOWN_THRESHOLD,Z=Qa.PERF_SCALE_DOWN_THRESHOLD,te=Qa.PERF_SCALE_UP_THRESHOLD,se=Qa.BALANCE_BITRATE_FACTOR,ge=Qa.BALANCE_FRAMERATE_FACTOR,me=Qa.BALANCE_RESOLUTION_FACTOR,Qe=Qa.MOTION_RESOLUTION_FACTOR,Oe=Qa.MOTION_BITRATE_FACTOR,we=Qa.DETAIL_FRAMERATE_FACTOR,Ne=Qa.DETAIL_BITRATE_FACTOR,et=Math.min(c.frameRate,D);let st=O;s==="maintain-framerate"?st=Kte(_,Qe,O,Q):s==="balanced"&&(st=Kte(_,me,O,Q));const Xt=Vte(_,me,st,Q),lr=Vte(_,Qe,st,Q),ft=[{scale:0,threshold:{bwe_down:Math.round(Math.pow($,1)*u),bwe_up:u,fps_down:Math.round(Math.pow(Z,1)*et),fps_up:h},balanced:{scaleResolutionDownBy:1,frameRate:h,bitrateMax:u,bitrateMin:B},motion:{scaleResolutionDownBy:1,frameRate:h,bitrateMax:u,bitrateMin:B},detail:{scaleResolutionDownBy:1,frameRate:h,bitrateMax:u,bitrateMin:B}}];for(let Ir=1;Ir<=st;Ir++){const ui={bwe_up:Math.round(Math.pow(H,Ir)*u),bwe_down:Math.round(Math.pow($,Ir+1)*u),fps_up:Math.round(Math.pow(te,Ir)*et),fps_down:Math.round(Math.pow(Z,Ir+1)*et)},Nr={scaleResolutionDownBy:Xt[Ir],frameRate:Math.max(Math.round(Math.pow(ge,Ir)*h),T),bitrateMax:Math.max(Math.round(Math.pow(se,Ir)*u),U),bitrateMin:Math.max(Math.round(Math.pow(se,Ir)*B),P)},Ki={scaleResolutionDownBy:lr[Ir],frameRate:h,bitrateMax:Math.max(Math.round(Math.pow(Oe,Ir)*u),U),bitrateMin:Math.max(Math.round(Math.pow(Oe,Ir)*B),P)},it={scaleResolutionDownBy:1,frameRate:Math.max(Math.round(Math.pow(we,Ir)*h),T),bitrateMax:Math.max(Math.round(Math.pow(Ne,Ir)*u),U),bitrateMin:Math.max(Math.round(Math.pow(Ne,Ir)*B),P)};ft.push({scale:Ir,threshold:ui,balanced:Nr,motion:Ki,detail:it})}return ft}function Sce(t,s,c,u,h,_){const B=GF.get(t)||{overUse:0,underUse:0,adaptationList:Jte(h,_)},Q=B.adaptationList;GF.set(t,B);const T=Qa.OVERUSE_TIMES_THRESHOLD,D=Qa.UNDERUSE_TIMES_THRESHOLD,O=u.scale;let P,U;return typeof s=="number"&&s>0&&function(H,$,Z,te){if($>=Z.length)return!1;let se=Z[$].threshold.fps_down;return de("FORCE_AG_HIGH_FRAMERATE")&&te==="maintain-framerate"&&(se=Z[0].threshold.fps_down),HT)||typeof c=="number"&&c>0&&function(H,$,Z){return!($>=Z.length)&&HT)?(B.overUse=0,B.underUse=0,P=Yte(u,Q,_,sT.DOWN),[P,U]):(typeof s=="number"&&s>0&&typeof c=="number"&&c>0&&function(H,$,Z,te){if($===0)return;let se=Z[$].threshold.fps_up;return de("FORCE_AG_HIGH_FRAMERATE")&&te==="maintain-framerate"&&(se=Z[1].threshold.fps_up),H>se}(s,O,Q,_)&&function(H,$,Z){if($!==0)return H>Z[$].threshold.bwe_up}(c,O,Q)&&(B.underUse++,B.underUse>D&&(B.overUse=0,B.underUse=0,P=Yte(u,Q,_,sT.UP),P.scale===0&&(U=$i.NONE))),[P,U])}function qte(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function sz(t){for(var s=1;s{const D=VF.get(t);if(!de("ENABLE_AG_ADAPTATION")||!D)return Dp(t,c),void h(s);const O=_();if(O.sendPackets>0&&O.OutgoingAvailableBandwidth>0){if(B===-1)return void(B=Date.now());if(Date.now()-B<1e3)return;const P=O.sendFrameRate,U=O.OutgoingAvailableBandwidth,H=ir(Sce(t,P,U,D.adaptationConfig,s,u),2),$=H[0],Z=H[1];Z&&(c.qualityLimitationReason=Z),$&&D.adaptationConfig.scale!==$.scale&&(J.debug("[".concat(t,"] applyAdaptation: ").concat(c.qualityLimitationReason,` - sendFps `).concat(P,", bwe ").concat(U,", switch from ").concat(D.adaptationConfig.scale," to ").concat($.scale," ")),D.adaptationConfig=sz(sz({},D.adaptationConfig),$),h($))}},de("CHECK_LOCAL_STATS_INTERVAL")),T=sz({},s);VF.set(t,{timer:Q,adaptationConfig:T,originConfig:s,adaptationFunc:h}),J.debug("[".concat(t,"] start adaptation, originConfig: ").concat(JSON.stringify(s),", degradationPreference: ").concat(u))}function Dp(t,s){const c=VF.get(t);if(c){const u=c.timer;window.clearTimeout(u),VF.delete(t)}s.qualityLimitationReason=$i.NONE,jte(t)}const zte=["balanced","maintain-framerate","maintain-resolution"];function $te(t){switch(t){case"motion":return"maintain-framerate";case"detail":return"maintain-resolution";case"balanced":return"balanced";default:return}}function Zte(t){var s;let c=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const u=$te(t._optimizationMode);if(u)return u;const h=de("CUSTOM_ADAPTATION_DEFAULT_MODE");return Et(s=t._hints).call(s,gn.CUSTOM_TRACK)?function(_){return typeof _=="string"&&Et(zte).call(zte,_)}(h)?h:c?"maintain-framerate":"":"maintain-framerate"}function ere(t,s){return s?"maintain-resolution":$te(t._optimizationMode)||void 0}function tre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function rre(t,s,c){var u;const h=t.getParameters(),_=(u=h.encodings)===null||u===void 0?void 0:u[0];return _&&Object.assign(_,c),Object.assign(h,s),h}async function ire(t,s,c){try{return await t.setParameters(rre(t,s,c)),{classification:"transient"}}catch(u){const h=function(_){for(var B=1;Bc._bypassWebAudio))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");if(!s.webAudioMediaStreamDest)throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks because your browser does not support audio mixing")}function Az(t,s){az(t);const c=new ia;return t.forEach(u=>c.addAudioTrack(u)),c}const yce=!Si().supportUnifiedPlan||de("CHROME_FORCE_PLAN_B")&&Al();function Qce(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t.useDcSignal)return c={spec:s,store:t},aE("DataChannelConnection").create(c);var c;return yce?function(h){return aE("PlanBConnection").create(h)}({spec:s,store:t}):new vl(s,t)}function cz(t){return t&&(t.iceConnectionState==="disconnected"||t.iceConnectionState==="checking"||t.iceConnectionState==="failed")}function lz(t){try{if(t.iceServers)return!1;if(t.turnServer&&t.turnServer.mode!=="off"){if(zi(t.turnServer.servers))return!1;if(de("FORCE_TURN_TCP")||t.turnServer.servers.concat(t.turnServer.serversFromGateway||[]).some(s=>s.forceturn))return!0}return!1}catch{return!1}}var en;function nre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Au(t){for(var s=1;ss.rtpMap&&s.rtpMap.encodingName.toLowerCase()||"").filter(s=>{var c;return Et(c=Object.keys(Qn)).call(c,s)}))]}constructor(s,c){super(s,c),ae(this,"id",un(5,"connection-")),ae(this,"store",void 0),ae(this,"peerConnection",void 0),ae(this,"forceTurn",!1),ae(this,"remoteSDP",void 0),ae(this,"initialOffer",void 0),ae(this,"transportEventReceiver",void 0),ae(this,"statsFilter",void 0),ae(this,"extension",{useXR:de("USE_XR")}),ae(this,"localCapabilities",void 0),ae(this,"remoteCodecs",void 0),ae(this,"localCandidateCount",0),ae(this,"allCandidatesReceived",!1),ae(this,"isPreallocation",!1),ae(this,"isPreRender",!1),ae(this,"preMediaMap",new Map),ae(this,"dataStreamChannelMap",new Map),ae(this,"establishPromise",void 0),ae(this,"recoveredDataChannelIds",[]),ae(this,"currentDataChannelId",1),ae(this,"supportAV1RtpSpec",!1),ae(this,"mutex",void 0),ae(this,"qualityLimitationReason",$i.NONE),ae(this,"unsupportedResolutionFloorTrackIds",new Set),ae(this,"isFirstConnected",!1),this.store=c,this.forceTurn=lz(s),this.mutex=new ra("P2PConnection-mutex",c.clientId),this.peerConnection=new RTCPeerConnection(fm.resolvePCConfiguration(s),{optional:[{googDscp:!0}]}),this.isFirstConnected=!1,this.statsFilter=WA(this.peerConnection,de("STATS_UPDATE_INTERVAL"),void 0,Ln()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,s.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(s){return this.preMediaMap.get(s)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(s,c){if(this.remoteCodecs=c,!this.remoteSDP)return void J.debug("[P2PConnection] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(c));if(this.remoteSDP.updateRemoteCodec(s,c,this.store.codec)){const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}else J.debug("[P2PConnection] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});const c=await this.peerConnection.createOffer();if(!c.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const u=Yh(c.sdp),h=await HX({filterRTX:!de("USE_PUB_RTX")&&!de("USE_SUB_RTX"),filterVideoFec:de("FILTER_VIDEO_FEC"),filterAudioFec:de("FILTER_AUDIO_FEC"),filterVideoCodec:de("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:de("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:de("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=C9(h),this.initialOffer=c,de("ENABLE_SVC")&&this.store.codec=="av1"){const B=await fte();var s;B&&(this.supportAV1RtpSpec=!0,(s=h.send)===null||s===void 0||s.videoExtensions.push(B))}let _;return c.sdp&&bF(c.sdp)&&(_=go(h),lte(_)),Au(Au({},u),{},{rtpCapabilities:_||h,offerSDP:c.sdp})}catch(c){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,c.toString())}}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");if(this.initialOffer.sdp&&bF(this.initialOffer.sdp)&&dte(s.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Fte(Au(Au({},s),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!de("ENABLE_PRE_SUB_WITH_PRE_PC")||!de("PRE_USE_LOCAL_CODECS"))&&eo(this.store)),s.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec),D4()&&eo(this.store)){var c;const h=((c=this.store.preSubOptions)===null||c===void 0?void 0:c.length)||0,_=de("PRE_SUB_NUM")||1,B=h>_?h:_,Q=this.remoteSDP.preloadRemoteMedia(B),T=Q.mids,D=Q.preSSRCs,O=f9(this.initialOffer.sdp,this.extension),P=this.logSDPExchange(O||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:O}),P==null||P(O),new Array(B).fill(0).forEach(()=>{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"})});const U=await this.peerConnection.createOffer(),H=this.logSDPExchange(U.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(U);const $=this.remoteSDP.toString();H==null||H($),await this.peerConnection.setRemoteDescription({type:"answer",sdp:$}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media with icc/dtls, add preload ssrcs ").concat(D)),this.presetMedia(T,D);const Z=this.peerConnection.getTransceivers()[0];Z!=null&&Z.receiver&&this.tryBindTransportEvents(Z.receiver)}else{const h=this.remoteSDP.toString(),_=f9(this.initialOffer.sdp,this.extension),B=this.logSDPExchange(_||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:_}),B==null||B(h),await this.peerConnection.setRemoteDescription({type:"answer",sdp:h});const Q=this.peerConnection.getTransceivers()[0];if(Q!=null&&Q.receiver&&this.tryBindTransportEvents(Q.receiver),eo(this.store))if(s.preallocation&&de("ENABLE_PRE_SUB_WITH_PRE_PC")){var u;const T=((u=this.store.preSubOptions)===null||u===void 0?void 0:u.length)||0,D=de("PRE_SUB_NUM")||1,O=T>D?T:D,P=this.remoteSDP.preloadRemoteMedia(O),U=P.mids,H=P.preSSRCs;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media, in pre pc,add preload ssrcs ").concat(H)),this.presetMedia(U,H)}else{const T=s.preSSRCs,D=T===void 0?[]:T,O=D.map(U=>U.ssrcMsg[0].ssrcId);if(D.length===0)return;const P=this.remoteSDP.batchSend(D.map(U=>Object.assign({},U))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection.connect] preload media, after join, add preload ssrcs ".concat(O)),this.presetMedia(P,O)}}}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(h.toString()))}}presetMedia(s,c){s.forEach((u,h)=>{this.peerConnection.getTransceivers().forEach(_=>{if(_.mid!=null&&u===_.mid&&_.receiver.track){const T=_.receiver.track;if(de("PRE_PLAYOUT_DELAY_HINT")){const O=_.receiver;"playoutDelayHint"in O&&(O.playoutDelayHint=de("PRE_PLAYOUT_DELAY_HINT"),J.debug("[".concat(this.store.clientId,"] [P2PConnection] presetMedia set playoutDelayHint to ").concat(de("PRE_PLAYOUT_DELAY_HINT"))))}let D;if(T.kind==="video"&&de("ENABLE_PRE_RENDER")){var B,Q;let O=(B=this.store.preSubOptions)===null||B===void 0||(B=B[h])===null||B===void 0?void 0:B.element;const P=((Q=this.store.preSubOptions)===null||Q===void 0||(Q=Q[h])===null||Q===void 0?void 0:Q.config)||{};J.debug("try to play pre sub video",typeof O=="string"?O:"element","config: ".concat(JSON.stringify(P))),typeof O=="string"&&(O=document.getElementById(O)||void 0),D=O instanceof HTMLVideoElement?new Sy(Au({trackId:"track-".concat(T.kind,"-unknown-").concat(this.store.clientId,"_").concat(un(5,"")),element:O},P)):new Ry(Au({trackId:"track-".concat(T.kind,"-unknown-").concat(this.store.clientId,"_").concat(un(5,"")),element:O},P),!O),D.updateVideoTrack(T),D.onFirstVideoFrameRender=()=>{var U;D&&(D.onFirstVideoFrameRender=void 0);const H=this.preMediaMap.get(c[h]);H&&(H.firstVideoRender=Date.now()),(U=this.onFirstVideoRender)===null||U===void 0||U.call(this,c[h])},D.onVideoBufferReady=()=>{var U;(U=this.onFirstVideoBufferReady)===null||U===void 0||U.call(this,c[h])},D.play(this.store.sessionId||void 0),this.isPreRender=!0}this.preMediaMap.set(c[h],{mid:u,track:T,player:D,transceiver:_})}}),this.store.peerReceiver()})}checkDtlsParameters(s){return!!this.remoteSDP&&s.length>0&&this.remoteSDP.updateRemoteDtlsParameters(s)}checkIceParameters(s){return this.remoteSDP?this.remoteSDP.restartICE(s):!1}async updateRemoteConnect(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateRemoteConnect before remote SDP created");let c=!1;const u=s.rtpCapabilities;if(c=ir(this.remoteSDP.updateRemoteRTPCapabilities(u),2)[1],Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){const Q=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);c=c||Q}const h=s.preSSRCs,_=h===void 0?[]:h,B=_.map(Q=>Q.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(B)){const Q=[],T=[];if(Array.from(this.preMediaMap.entries()).every(D=>{let O=ir(D,2),P=O[0],U=O[1],H=U.mid,$=U.player;return U.track,Q.push(H),T.push(P),this.preMediaMap.delete(P),$&&$.destroy(),!0}),Q.length>0&&(this.remoteSDP.stopSending(Q),await Yc(this.peerConnection,this.remoteSDP,this.extension),J.warn("[P2PConnection.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(T)),qt.reportApiInvoke(this.store.sessionId,{name:Ti.PRELOAD_MEDIA_FAILED,options:[_,T],tag:vn.TRACER}).onSuccess()),_.length>0){const D=this.remoteSDP.batchSend(_.map(O=>Object.assign({},O))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(B)),this.presetMedia(D,B)}}c?(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection] updateRemoteConnect by exchanging SDP.")):J.debug("[P2PConnection] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.updateRemoteConnect failed; ".concat(c.toString()))}}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From P2PConnection.send"));try{if(!h.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");const B=[],Q=E9();s.forEach(te=>{const se=h.peerConnection.addTransceiver(te._mediaStreamTrack,Au({direction:"sendonly"},te.trackMediaType==="video"&&h.supportAV1RtpSpec&&Q?{sendEncodings:[{scalabilityMode:Q}]}:{}));B.push(se),te._updateRtpTransceiver(se)}),Ln()&&de("SIMULCAST")===!0&&(yield Tr(h.applySimulcastForFirefox(B,s)));const T=yield Tr(h.peerConnection.createOffer()),D=h.remoteSDP.predictReceivingMids(s.length),O=h.mungSendOfferSDP(T.sdp,s,D),P=wa(O),U=D.map(te=>{const se=P.mediaDescriptions.find(ge=>ge.attributes.mid===te);if(!se)throw new Error("Cannot extract ssrc from mediaDescription.");return FX(se,de("USE_PUB_RTX"))});let H;try{H=yield U}catch(te){H=[],h.remoteSDP.receive(s,c,u,H);const se=h.remoteSDP.toString();throw yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:se})),yield Tr(h.stopSending(D,!0)),te}h.remoteSDP.receive(s,c,u,H);const $=h.remoteSDP.toString(),Z=h.logSDPExchange(O,"offer","local","send");return yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.applySimulcastEncodings(B,s)),yield Tr(h.applySendEncodings(B,s)),Z==null||Z($),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:$})),B.map((te,se)=>{const ge=D[se];return{localSSRC:U[se],id:ge,transceiver:te}})}catch(B){throw B instanceof tt?B:new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(B.toString()))}finally{_()}})()}async createDataChannels(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.createDataChannels before remote SDP created");let u=this.dataStreamChannelMap.get(s);if(u&&u.readyState==="open")J.debug("[P2PConnection] Channels are already available and can be reused directly.");else{const _=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof _!="number")throw new Error("create DataChannel error, because cannot get dc id");u=this.peerConnection.createDataChannel("datastream-channel",{id:_,negotiated:!0,ordered:!1,maxRetransmits:de("DATASTREAM_MAX_RETRANSMITS")}),u.binaryType="arraybuffer",this.dataStreamChannelMap.set(s,u)}if(c.forEach(_=>{_._updateOriginDataChannel(u)}),this.remoteSDP.sendDataChannel().needExchangeSDP){const _=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:_});const B=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(B),J.debug("[P2PConnection] createDataChannels by exchanging SDP.")}else J.debug("[P2PConnection] createDataChannels no need to exchange SDP.");return}catch(u){throw u instanceof tt?u:new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.createDataChannels failed; ".concat(u.toString()))}}async stopDataChannels(s){try{const c=this.dataStreamChannelMap.get(s);return c&&(c.id&&this.recoveredDataChannelIds.push(c.id),c.close()),void this.dataStreamChannelMap.delete(s)}catch(c){throw c instanceof tt?c:new tt(Ce.DATACHANNEL_FAILED,"P2PConnection.stopDataChannels failed; ".concat(c.toString()))}}async stopSending(s,c){const u=c?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");const h=this.peerConnection.getTransceivers().filter(T=>s.indexOf(T.mid)!==-1);if(h.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");h.map(T=>{var D;Dp(this.id+T.mid,this),T.direction="inactive",(D=T.stop)===null||D===void 0||D.call(T)});const _=await this.peerConnection.createOffer(),B=this.logSDPExchange(_.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(_),this.remoteSDP.stopReceiving(s);const Q=this.remoteSDP.toString();B==null||B(Q),await this.peerConnection.setRemoteDescription({type:"answer",sdp:Q})}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(h.toString()))}finally{u&&u()}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;_.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," by exchanging SDP.")));const Q=this.peerConnection.getTransceivers().find(T=>T.mid===B);if(!Q)throw new Error("Cannot get transceiver after setLocalDescription.");if(de("PRE_PLAYOUT_DELAY_HINT")){const T=Q.receiver;"playoutDelayHint"in T&&(T.playoutDelayHint=de("PRE_PLAYOUT_DELAY_HINT"),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," set playoutDelayHint to ").concat(de("PRE_PLAYOUT_DELAY_HINT"))))}return{track:Q.receiver.track,id:B,transceiver:Q}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async batchReceive(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");const c=this.remoteSDP.batchSend(s),u=c.mids;return c.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] batchReceive by exchanging SDP."))),u.map(h=>{const _=this.peerConnection.getTransceivers().find(B=>B.mid===h);if(!_)throw new Error("Cannot get transceiver after setLocalDescription.");if(de("PRE_PLAYOUT_DELAY_HINT")){const B=_.receiver;"playoutDelayHint"in B&&(B.playoutDelayHint=de("PRE_PLAYOUT_DELAY_HINT"),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(B.track.kind," set playoutDelayHint to ").concat(de("PRE_PLAYOUT_DELAY_HINT"))))}return{track:_.receiver.track,id:h,transceiver:_}})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(c.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");s.forEach(_=>{Array.from(this.preMediaMap.entries()).some(B=>{let Q=ir(B,2),T=Q[0],D=Q[1],O=D.mid,P=D.player;if(O===_)return this.preMediaMap.delete(T),P&&P.destroy(),!0})}),this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}async muteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.mute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteRemote failed; ".concat(c.toString()))}}async unmuteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.unmute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteRemote failed; ".concat(c.toString()))}}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(B=>{B.direction="inactive"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.muteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(async(B,Q)=>{B.direction="sendonly"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.unmuteRemote(s),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(s,this.remoteCodecs,this.store.codec);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(c.toString()))}}restartICE(s){var c=this;return AA(function*(){const u=yield Tr(c.mutex.lock("From P2PConnection.restartICE"));try{if(!c.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");const h=Si().supportPCSetConfiguration,_=de("FORCE_TURN_TCP")||c.forceTurn;if(s===qs.RELAY&&!h)return;if(h&&!_){const P=s===qs.RELAY?"relay":"all",U=c.peerConnection.getConfiguration();U.iceTransportPolicy!==P&&(J.debug("[".concat(c.store.clientId,"] restartICE change iceTransportPolicy from [").concat(U.iceTransportPolicy,"] to [").concat(P,"]")),U.iceTransportPolicy=P,c.peerConnection.setConfiguration(U))}c.remoteSDP.updateCandidates(s);const B=yield Tr(c.peerConnection.createOffer({iceRestart:!0}));if(!B.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const Q=Yh(B.sdp),T=(yield Q.iceParameters).remoteIceParameters;c.remoteSDP.restartICE(T);const D=c.remoteSDP.toString(),O=c.logSDPExchange(B.sdp||"","offer","local","restartICE");c.store.descriptionStart(),yield Tr(c.peerConnection.setLocalDescription(B)),O==null||O(D),yield Tr(c.peerConnection.setRemoteDescription({type:"answer",sdp:D}))}catch(h){J.warning("[".concat(c.store.clientId,"] restart ICE failed, abort operation"),h)}finally{u()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;const s=await this.mutex.lock("From P2PConnection.extendCandidate");try{this.remoteSDP.updateCandidates(qs.TCP_RELAY),await Yc(this.peerConnection,this.remoteSDP,this.extension)}catch(c){J.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),c)}finally{s()}}close(){var s;this.peerConnection.getTransceivers().forEach(c=>{Dp(this.id+c.mid,this)}),this.preMediaMap.forEach(c=>{let u=c.player;u&&u.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return Au(Au({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c],[s]);this.remoteSDP.updateRecvMedia(s,c);const _=this.remoteSDP.toString(),B=this.logSDPExchange(h,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),B==null||B(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getTransceivers().filter(h=>h.mid===s);u.length===1&&(this.isVP8Simulcast(c)?Ln()||await this.applySimulcastEncodings(u,[c]):await this.applySendEncodings(u,[c]))}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getTransceivers().find(h=>h.mid===c);u&&await u.sender.replaceTrack(s._mediaStreamTrack)}async getSelectedCandidatePair(){const s=this.peerConnection.getReceivers();if(s.length>0&&s[0].transport&&s[0].transport.iceTransport&&s[0].transport.iceTransport.getSelectedCandidatePair&&s[0].transport.iceTransport.getSelectedCandidatePair()){const c=s[0].transport.iceTransport.getSelectedCandidatePair(),u=c.local,h=c.remote;return{local:Au(Au({},ya),{},{candidateType:u.type,protocol:u.protocol,address:u.address,port:u.port}),remote:Au(Au({},ya),{},{candidateType:h.type,protocol:h.protocol,address:h.address,port:h.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s;(s=this.onICEConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=s=>{if(s&&(s.errorCode||s.errorText)){var c;const u="code: ".concat(s.errorCode,", message: ").concat(s.errorText),h=s.port?"local: ".concat(s.port):"",_=Hh(s.url||"");J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICECandidateError(").concat(u,"), url: ").concat(_||"",", host_candidate:").concat(h)),(c=this.onICECandidateError)===null||c===void 0||c.call(this,u)}},this.peerConnection.onicegatheringstatechange=s=>{s&&s.target&&"iceGatheringState"in s.target&&J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(s.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=s=>{s.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},de("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s){const c={iceServers:[]},u=s.cloudProxyServer||"disabled";return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:de("NEW_TURN_MODE")&&c.iceServers&&u==="disabled"?(de("USE_TURN_SERVER_OF_GATEWAY")?s.turnServer.serversFromGateway&&c.iceServers.push(...fm.newTurnServerConfigToIceServers(s.turnServer.serversFromGateway)):c.iceServers.push(...fm.newTurnServerConfigToIceServers(s.turnServer.servers)),de("NEW_FORCE_TURN")&&(c.iceTransportPolicy="relay")):s.turnServer.mode!=="off"&&(c.iceServers&&c.iceServers.push(...fm.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...fm.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),de("FORCE_TURN_TCP")?c.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(h=>{h.forceturn&&(c.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(c.encodedInsertableStreams=!0),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&!de("FORCE_TURN_TCP")&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}static newTurnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{const h=de("NEW_TURN_MODE");h===1?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}):h===2?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}):h===3?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}):h===4&&(c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}))}),c}tryBindTransportEvents(s){const c=s.transport;if(c){this.transportEventReceiver=s,c.onstatechange=()=>{var h;c!=null&&c.state&&((h=this.onDTLSTransportStateChange)===null||h===void 0||h.call(this,c.state))},c.onerror=h=>{var _;(_=this.onDTLSTransportError)===null||_===void 0||_.call(this,"error"in h?h.error:h)};const u=c.iceTransport;u&&(u.onstatechange=()=>{const h=c==null?void 0:c.iceTransport.state;var _;h&&((_=this.onICETransportStateChange)===null||_===void 0||_.call(this,h))},u.getSelectedCandidatePair&&(u.onselectedcandidatepairchange=()=>{if(u.getSelectedCandidatePair()){const h=u.getSelectedCandidatePair()||{},_=h.local,B=h.remote;if(_&&B){const Q=_.address+":"+_.port,T=B.address+":"+B.port;J.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Hh(Q)),", remote ").concat(JSON.stringify(Hh(T))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(s,c){var u,h;if(c||(c=this.peerConnection.getSenders().find(Oe=>Oe.track===s._mediaStreamTrack)),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(s))return J.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Si().supportSetRtpSenderParameters)return J.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");const _=pU(s),B=!!_&&Gte(this.store.codec)&&oz(_),Q=B&&!this.unsupportedResolutionFloorTrackIds.has(s.getTrackId()),T=!!_&&!(B&&!Q)&&Wte(s,Q?_:void 0),D=Q&&T,O=Q||Et(u=["vp8","vp9"]).call(u,this.store.codec),P={},U={},H=ere(s,D);H&&(P.degradationPreference=H);const $=Ate(this.peerConnection,s._mediaStreamTrack);if(T&&$&&c&&_&&this.getLocalVideoStats&&O){const Qe=this.id+$.mid,Oe=Zte(s,Q);Xte(Qe,_,this,Oe,we=>{c&&this.updateAdaptation(s,c,we,Qe,Q)},this.getLocalVideoStats.bind(this))}if(s._encoderConfig){var Z;const Qe=s._encoderConfig,Oe=Qe.bitrateMax,we=Qe.frameRate,Ne=Qe.scaleResolutionDownBy;Oe&&(U.maxBitrate=1e3*Oe),(Et(Z=s._hints).call(Z,gn.LOW_STREAM)||s.isUseScaleResolutionDownBy)&&(we&&(U.maxFramerate=dc(we)),Ne&&Ne>=1&&(U.scaleResolutionDownBy=Ne))}const te=de("ENCODER_CONFIG_LIMIT").maxFramerate;if(te&&typeof te=="number"&&(U.maxFramerate=U.maxFramerate?Math.min(U.maxFramerate,te):te),de("DSCP_TYPE")&&Al()){var se;const Qe=de("DSCP_TYPE");Et(se=["very-low","low","medium","high"]).call(se,Qe)&&(U.networkPriority=Qe)}const ge=c.getParameters(),me=(h=ge.encodings)===null||h===void 0?void 0:h[0];Ln()&&!me&&(P.encodings=[U]),me&&Object.assign(me,U),Object.assign(ge,P),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(ge.encodings))),await c.setParameters(ge),await Bte(this.store.codec,c,de("SVC_MODE"))}async updateAdaptation(s,c,u,h,_){var B,Q;if(!c)return J.debug("[updateAdaptation] no rtpSender found");if(!Si().supportSetRtpSenderParameters)return J.debug("[updateAdaptation] Browser not support set rtp-sender parameters");const T={},D={},O=u.bitrateMax,P=u.frameRate,U=u.scaleResolutionDownBy;O&&(D.maxBitrate=1e3*O),P&&(D.maxFramerate=dc(P));let H=!1;typeof U=="number"&&U>=1&&(_||Et(B=["vp8","vp9"]).call(B,this.store.codec))&&(D.scaleResolutionDownBy=U,H=U>1);const $=c.getParameters(),Z=(Q=$.encodings)===null||Q===void 0?void 0:Q[0];Z&&Object.assign(Z,D),Object.assign($,T);try{await c.setParameters($),J.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify($.encodings)))}catch(te){if(!("transport"in c)||c.transport&&c.transport.state==="connected")if(this.peerConnectionState!=="connected")J.debug("[updateAdaptation] peerConnection not connected}");else if(_&&H){const se=await ire(c,T,D);se.classification==="unsupported"?(this.unsupportedResolutionFloorTrackIds.add(s.getTrackId()),Dp(h,this),J.warn("[".concat(s.getTrackId(),"] fallback to browser adaptation because scaleResolutionDownBy adaptation is unsupported"),te,se.retryWithScaleError),this.updateRtpSenderEncodings(s,c).catch(ge=>{J.warn("[".concat(s.getTrackId(),"] failed to re-apply browser adaptation after disabling resolution floor"),ge)})):se.classification==="transient"?J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled after transient setParameters failure"),te):J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled because setParameters failure is not classified as unsupported"),te,se.retryWithScaleError,se.retryWithoutScaleError)}else J.debug("[updateAdaptation] updateRtpSenderEncodings failed",te);else J.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const Q=u[B],T=h.mediaDescriptions.find(D=>D.attributes.mid===Q);T&&(Am(T,_),KX(T,_,this.store.codec))}),X1(h)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onFirstVideoDecodedTimeout=s=>{var c;(c=this.onFirstVideoDecodedTimeout)===null||c===void 0||c.call(this,s)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(s,c){if(s.length===c.length)for(let T=0;T200&&(B=O._scalabilityMode)!==null&&B!==void 0&&B.numSpatialLayers&&((Q=O._scalabilityMode)===null||Q===void 0?void 0:Q.numSpatialLayers)>1&&this.store.codec==="vp8"){const P={},U={high:1e3*(O._encoderConfig.bitrateMax-50),medium:5e4};P.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];const H=D.sender.getParameters();await D.sender.setParameters(Object.assign(H,P))}}}async applySimulcastEncodings(s,c){if(!Ln()&&s.length===c.length)for(let u=0;u200&&(_=s._scalabilityMode)!==null&&_!==void 0&&_.numSpatialLayers&&((B=s._scalabilityMode)===null||B===void 0?void 0:B.numSpatialLayers)>1)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("[".concat(this.store.clientId,"] exchanging ").concat(u," ").concat(c," SDP during P2PConnection.").concat(h,` -`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}async getRemoteSSRC(s){if(!this.remoteSDP)return;const c=this.remoteSDP.getSSRC(s);return c&&c.length!==0?c[0].ssrcId:void 0}setConfiguration(s){if(Si().supportPCSetConfiguration){const c=fm.resolvePCConfiguration(s);this.peerConnection.setConfiguration(c)}s.isPreallocation&&(this.isPreallocation=!0)}},Pt(en.prototype,"updateRemoteRTPCapabilities",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateRemoteRTPCapabilities"),en.prototype),Pt(en.prototype,"connect",[uc],Object.getOwnPropertyDescriptor(en.prototype,"connect"),en.prototype),Pt(en.prototype,"updateRemoteConnect",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateRemoteConnect"),en.prototype),Pt(en.prototype,"createDataChannels",[uc],Object.getOwnPropertyDescriptor(en.prototype,"createDataChannels"),en.prototype),Pt(en.prototype,"receive",[uc],Object.getOwnPropertyDescriptor(en.prototype,"receive"),en.prototype),Pt(en.prototype,"batchReceive",[uc],Object.getOwnPropertyDescriptor(en.prototype,"batchReceive"),en.prototype),Pt(en.prototype,"stopReceiving",[uc],Object.getOwnPropertyDescriptor(en.prototype,"stopReceiving"),en.prototype),Pt(en.prototype,"muteRemote",[uc],Object.getOwnPropertyDescriptor(en.prototype,"muteRemote"),en.prototype),Pt(en.prototype,"unmuteRemote",[uc],Object.getOwnPropertyDescriptor(en.prototype,"unmuteRemote"),en.prototype),Pt(en.prototype,"muteLocal",[uc],Object.getOwnPropertyDescriptor(en.prototype,"muteLocal"),en.prototype),Pt(en.prototype,"unmuteLocal",[uc],Object.getOwnPropertyDescriptor(en.prototype,"unmuteLocal"),en.prototype),Pt(en.prototype,"close",[uc],Object.getOwnPropertyDescriptor(en.prototype,"close"),en.prototype),Pt(en.prototype,"updateEncoderConfig",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateEncoderConfig"),en.prototype),Pt(en.prototype,"updateSendParameters",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateSendParameters"),en.prototype),Pt(en.prototype,"replaceTrack",[uc],Object.getOwnPropertyDescriptor(en.prototype,"replaceTrack"),en.prototype),Pt(en.prototype,"updateAdaptation",[uc],Object.getOwnPropertyDescriptor(en.prototype,"updateAdaptation"),en.prototype),Pt(en.prototype,"getRemoteSSRC",[uc],Object.getOwnPropertyDescriptor(en.prototype,"getRemoteSSRC"),en.prototype),en);function uc(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From P2PConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{if(!c)return u.stopCapture&&u.stopCapture();if(c.paused&&c.play(),c.videoHeight>2&&c.videoWidth>2){const O=c.videoWidth,P=c.videoHeight/O,U=u.width*P;Math.abs(U-u.height)>=2&&(J.debug("adjust low stream resolution","".concat(u.width,"x").concat(u.height," -> ").concat(u.width,"x").concat(U)),u.height=U)}B.drawImage(c,0,0,u.width,u.height),T.requestFrame&&T.requestFrame(),_!==t._mediaStreamTrack&&(_=t._mediaStreamTrack,c.srcObject=new MediaStream([_]))},u.stopCapture=hi(()=>u.startCapture&&u.startCapture(),h);const D=T.stop;return T.stop=()=>{D.call(T),c&&(c.remove(),c.srcObject=null,c=null),u&&(u.width=0,u.remove(),u.stopCapture&&u.stopCapture(),u.startCapture=void 0,u.stopCapture=void 0,u=null),J.debug("clean low stream renderer")},T}var ore=function(t){return t[t.Video_Send_Type=190]="Video_Send_Type",t}(ore||{}),Dl=function(t){return t[t.Video_Send_Qp_Sum=2143]="Video_Send_Qp_Sum",t[t.Video_Send_Freeze=2082]="Video_Send_Freeze",t[t.Video_Send_Codec=2240]="Video_Send_Codec",t[t.Video_Send_Power_Efficient_Encoder=2241]="Video_Send_Power_Efficient_Encoder",t[t.Video_Recv_Qp_Sum=2144]="Video_Recv_Qp_Sum",t[t.Video_Recv_Freeze=2084]="Video_Recv_Freeze",t[t.Video_Recv_Codec=2242]="Video_Recv_Codec",t[t.Video_Recv_Power_Efficient_Decoder=2243]="Video_Recv_Power_Efficient_Decoder",t[t.Video_Render_Freeze_Time=2109]="Video_Render_Freeze_Time",t[t.Video_Render_Freeze_Time_Render=2147]="Video_Render_Freeze_Time_Render",t[t.Video_Render_Freeze_Time_Render2=2223]="Video_Render_Freeze_Time_Render2",t[t.Audio_Recv_Freeze=2083]="Audio_Recv_Freeze",t}(Dl||{}),Zr=function(t){return t[t.Video_Send_Retransmit=2062]="Video_Send_Retransmit",t[t.Video_Send_Target_Encoded=2064]="Video_Send_Target_Encoded",t[t.Video_Send_Actual_Encoded=2060]="Video_Send_Actual_Encoded",t[t.Video_Send_Transmit=2066]="Video_Send_Transmit",t[t.Video_Send_Bandwidth=2061]="Video_Send_Bandwidth",t[t.Video_Capture_Height=2033]="Video_Capture_Height",t[t.Video_Capture_Width=2035]="Video_Capture_Width",t[t.Video_Capture_Frame_Rate=2034]="Video_Capture_Frame_Rate",t[t.Video_Send_Low_Height=2073]="Video_Send_Low_Height",t[t.Video_Send_Low_Frame_Rate=2075]="Video_Send_Low_Frame_Rate",t[t.Video_Send_Low_Width=2077]="Video_Send_Low_Width",t[t.Video_Send_Low_Bitrate=2069]="Video_Send_Low_Bitrate",t[t.Video_Send_Low_Package_Lost=2070]="Video_Send_Low_Package_Lost",t[t.Video_Send_Low_Package_Rate=2071]="Video_Send_Low_Package_Rate",t[t.Video_Send_Frame_Rate=2002]="Video_Send_Frame_Rate",t[t.Video_Send_Width=2003]="Video_Send_Width",t[t.Video_Send_Height=2004]="Video_Send_Height",t[t.Video_Send_Disabled=2095]="Video_Send_Disabled",t[t.Video_Send_Adaptation=2032]="Video_Send_Adaptation",t[t.Video_Send_Player_Status=2128]="Video_Send_Player_Status",t[t.Video_Send_Nacks=2009]="Video_Send_Nacks",t[t.Video_Send_Plis=2010]="Video_Send_Plis",t[t.Video_Send_Firs=2011]="Video_Send_Firs",t[t.Video_Send_Avg_Encode=2007]="Video_Send_Avg_Encode",t[t.Video_Send_Huge_Frame_Sent=2174]="Video_Send_Huge_Frame_Sent",t[t.Video_Send_Bytes_Retransmit=2173]="Video_Send_Bytes_Retransmit",t[t.Video_Send_Packages_Retransmit=2172]="Video_Send_Packages_Retransmit",t[t.Video_Send_Key_Frames_Encoded=2207]="Video_Send_Key_Frames_Encoded",t[t.Video_Send_Bitrate=2012]="Video_Send_Bitrate",t[t.Video_Send_Package_Rate=2031]="Video_Send_Package_Rate",t[t.Video_Send_Package_Lost=2005]="Video_Send_Package_Lost",t[t.Audio_Capture_PCM_Level=2104]="Audio_Capture_PCM_Level",t[t.Audio_Send_Level=2038]="Audio_Send_Level",t[t.Audio_Send_Bitrate=2039]="Audio_Send_Bitrate",t[t.Audio_Send_Package_Rate=2040]="Audio_Send_Package_Rate",t[t.Audio_Send_AEC_Return_Loss=2041]="Audio_Send_AEC_Return_Loss",t[t.Audio_Send_AEC_Return_Loss_Enhancement=2042]="Audio_Send_AEC_Return_Loss_Enhancement",t[t.Audio_Send_Freeze=2081]="Audio_Send_Freeze",t[t.Audio_Send_Disabled=2096]="Audio_Send_Disabled",t[t.Audio_Send_Bytes_Retransmit=2179]="Audio_Send_Bytes_Retransmit",t[t.Audio_Send_Packages_Retransmit=2180]="Audio_Send_Packages_Retransmit",t[t.Video_Recv_Height=2019]="Video_Recv_Height",t[t.Video_Recv_Width=2018]="Video_Recv_Width",t[t.Video_Recv_Frame_Rate_Output=2155]="Video_Recv_Frame_Rate_Output",t[t.Video_Recv_Jitter_Buffer=2023]="Video_Recv_Jitter_Buffer",t[t.Video_Recv_Current_Delay=2024]="Video_Recv_Current_Delay",t[t.Video_Recv_Nacks=2026]="Video_Recv_Nacks",t[t.Video_Recv_Plis=2027]="Video_Recv_Plis",t[t.Video_Recv_Firs=2028]="Video_Recv_Firs",t[t.Video_Recv_Disabled=2101]="Video_Recv_Disabled",t[t.Video_Recv_Player_Status=2129]="Video_Recv_Player_Status",t[t.Video_Recv_I_Frame_Delay=2149]="Video_Recv_I_Frame_Delay",t[t.Video_Render_Frame_Rate_Render=2022]="Video_Render_Frame_Rate_Render",t[t.Video_Render_Freeze_Duration=2156]="Video_Render_Freeze_Duration",t[t.Audio_Render_Level=2043]="Audio_Render_Level",t[t.Audio_Render_Freeze_Time_80ms=2226]="Audio_Render_Freeze_Time_80ms",t[t.Audio_Render_Freeze_Time_200ms=2227]="Audio_Render_Freeze_Time_200ms",t[t.Audio_Render_Freeze_Samples_80ms=2228]="Audio_Render_Freeze_Samples_80ms",t[t.Audio_Render_Freeze_Samples_200ms=2229]="Audio_Render_Freeze_Samples_200ms",t[t.Audio_Recv_PCM_Level=2105]="Audio_Recv_PCM_Level",t[t.Audio_Recv_Disabled=2102]="Audio_Recv_Disabled",t[t.Audio_Recv_Jitter_Buffer=2054]="Audio_Recv_Jitter_Buffer",t[t.Audio_Recv_Current_Delay=2047]="Audio_Recv_Current_Delay",t[t.Audio_Recv_Player_Status=2130]="Audio_Recv_Player_Status",t[t.Audio_Recv_Bitrate=2044]="Audio_Recv_Bitrate",t[t.Audio_Recv_Concealed_Samples=2148]="Audio_Recv_Concealed_Samples",t[t.Audio_Recv_Total_Samples_Received=2224]="Audio_Recv_Total_Samples_Received",t}(Zr||{}),Na=function(t){return t[t.Video_Render_Frame_Rate_Decode=2021]="Video_Render_Frame_Rate_Decode",t[t.Video_Recv_Frame_Rate=2020]="Video_Recv_Frame_Rate",t[t.Video_Recv_Frame_Dropped=2181]="Video_Recv_Frame_Dropped",t[t.Video_Recv_Bytes_Retransmit=2175]="Video_Recv_Bytes_Retransmit",t[t.Video_Recv_Packages_Retransmit=2176]="Video_Recv_Packages_Retransmit",t[t.Video_Recv_Packages_Discarded=2198]="Video_Recv_Packages_Discarded",t[t.Video_Recv_Avg_Decode=2200]="Video_Recv_Avg_Decode",t[t.Video_Recv_Avg_Processing_Delay=2202]="Video_Recv_Avg_Processing_Delay",t[t.Video_Recv_Avg_Assembly_Time=2203]="Video_Recv_Avg_Assembly_Time",t[t.Video_Recv_Avg_Inter_Frame_Delay=2204]="Video_Recv_Avg_Inter_Frame_Delay",t[t.Video_Recv_Key_Frames_Decoded=2206]="Video_Recv_Key_Frames_Decoded",t[t.Video_Recv_Package_Lost=2014]="Video_Recv_Package_Lost",t[t.Video_Recv_Bitrate=2029]="Video_Recv_Bitrate",t[t.Video_Recv_Package_Rate=2078]="Video_Recv_Package_Rate",t[t.Audio_Recv_Jitter=2055]="Audio_Recv_Jitter",t[t.Audio_Recv_Bytes_Retransmit=2178]="Audio_Recv_Bytes_Retransmit",t[t.Audio_Recv_Packages_Retransmit=2177]="Audio_Recv_Packages_Retransmit",t[t.Audio_Recv_Packages_Discarded=2199]="Audio_Recv_Packages_Discarded",t[t.Audio_Recv_Avg_Processing_Delay=2201]="Audio_Recv_Avg_Processing_Delay",t[t.Audio_Recv_Package_Rate=2046]="Audio_Recv_Package_Rate",t[t.Audio_Recv_Package_Lost=2045]="Audio_Recv_Package_Lost",t[t.Audio_Recv_AV_Sync_TIME=2237]="Audio_Recv_AV_Sync_TIME",t}(Na||{}),Wa=function(t){return t[t.RTT=2006]="RTT",t[t.CONN_TYPE=801]="CONN_TYPE",t[t.STATS_UPDATE_INTERVAL=2205]="STATS_UPDATE_INTERVAL",t}(Wa||{}),aT=function(t){return t[t.RTC_PEER_CONNECTION_STATE=2219]="RTC_PEER_CONNECTION_STATE",t[t.PAGE_VISIBILITY=2233]="PAGE_VISIBILITY",t}(aT||{}),uz=function(t){return t[t.Transport_Send_Bitrate=2234]="Transport_Send_Bitrate",t[t.Transport_Recv_Bitrate=2235]="Transport_Recv_Bitrate",t}(uz||{});const gm=1e3,KF=6,B9=3,Tce=Math.max(KF,B9,60);function sre(t){return t=t.toLowerCase(),Et(t).call(t,"vp8")?1:Et(t).call(t,"h264")?2:Et(t).call(t,"vp9")?3:Et(t).call(t,"av1")?4:Et(t).call(t,"h265")?5:0}function Qr(t,s,c){c!=null&&Number.isFinite(c)&&(t[s]=Math.round(Math.max(0,c)))}function are(t){const s={[Wa.CONN_TYPE]:0,[Wa.RTT]:t.rtt,[Wa.STATS_UPDATE_INTERVAL]:t.updateInterval?Math.round(Math.max(0,t.updateInterval)):void 0};switch(t.selectedCandidatePair.localCandidate.candidateType){case"relay":{const c=t.selectedCandidatePair.localCandidate.relayProtocol;c==="udp"&&(s[Wa.CONN_TYPE]=1),c==="tcp"&&(s[Wa.CONN_TYPE]=3),c==="tls"&&(s[Wa.CONN_TYPE]=4);break}case"srflx":s[Wa.CONN_TYPE]=2;break;case"unknown":s[Wa.CONN_TYPE]=5;break;default:s[Wa.CONN_TYPE]=0}return s}function Are(t){let s=0;switch(t){case"none":s=0;break;case"cpu":s=1;break;case"bandwidth":s=2;break;case"other":s=3}return s}class cre extends Cn{constructor(s){super(),ae(this,"store",void 0),ae(this,"uploadWRTCStatsTimer",void 0),ae(this,"uploadOutboundDenoiserStatsTimer",void 0),ae(this,"uploadExtStatsTimer",void 0),ae(this,"uploadExtUsageStatsTimer",void 0),ae(this,"uploadInboundExtStatsTimer",void 0),ae(this,"requestStats",void 0),ae(this,"requestTransportStats",void 0),ae(this,"requestLocalMedia",void 0),ae(this,"requestRemoteMedia",void 0),ae(this,"requestAllTracks",void 0),ae(this,"requestVideoIsReady",void 0),ae(this,"requestUploadStats",void 0),ae(this,"requestUpload",void 0),ae(this,"uploadOutboundStarted",!1),ae(this,"uploadInboundStarted",!1),ae(this,"uploadTransportStarted",!1),ae(this,"uploadBaseStatsStarted",!1),ae(this,"uploadExtensionUsageStarted",!1),ae(this,"lastRecvStats",void 0),ae(this,"lastSendStats",void 0),ae(this,"lastRefRecvStats",void 0),ae(this,"lastRefSendStats",void 0),ae(this,"lastNormalRecvStats",void 0),ae(this,"lastNormalSendStats",void 0),ae(this,"lastExtendStats",{}),ae(this,"needUploadStats",{}),ae(this,"needUploadRenderFreezeTime",!0),ae(this,"lastUploadCompensateTime",-1),ae(this,"uploadCompensateDeltaTime",0),this.store=s}uploadWRTCStats(s){if(!this.requestStats||!this.requestUploadStats)return;const c=s%B9==0,u=s%KF==0,h=s%60==0;let _,B;if(this.uploadTransportStarted&&(_=this.requestStats(),this.store.useP2P&&(B=this.requestStats(!0))),!_&&this.uploadOutboundStarted&&(_=this.requestStats()),!B&&this.uploadInboundStarted&&(B=this.requestStats(!0)),_||B){var Q;const T={};if(this.uploadTransportStarted&&_){const O=this.getTransportStats(_,c?this.lastRefSendStats:void 0,B,c);O&&(T.misc=[O])}if(this.uploadOutboundStarted&&_){const O=this.getOutboundStats(_,u?this.lastNormalSendStats:void 0,c?this.lastRefSendStats:void 0,this.lastSendStats,h);O&&(T.outbound=[O])}if(this.uploadInboundStarted&&B){this.uploadCompensateStats(s);const O=this.getInboundStats(B,u?this.lastNormalRecvStats:void 0,c?this.lastRefRecvStats:void 0,this.lastRecvStats);O&&(T.inbound=O)}const D=(Q=this.requestTransportStats)===null||Q===void 0?void 0:Q.call(this).connectState;if(D&&(Array.isArray(T.misc)?T.misc[0]&&T.misc[0].addition&&(T.misc[0].addition[aT.RTC_PEER_CONNECTION_STATE]=l4[D]):T.misc=[{addition:{[aT.RTC_PEER_CONNECTION_STATE]:l4[D]}}]),Pn.needUploadStats.length>0||u){const O=Pn.needUploadStats.shift()||(Pn.visibility==="visible"?1:0);Array.isArray(T.misc)?T.misc[0]&&T.misc[0].addition&&(T.misc[0].addition[aT.PAGE_VISIBILITY]=O):T.misc=[{addition:{[aT.PAGE_VISIBILITY]:O}}]}this.needUploadStats.sendType&&(Array.isArray(T.outbound)&&T.outbound[0]&&T.outbound[0].high&&(T.outbound[0].high[ore.Video_Send_Type]=this.needUploadStats.sendType),this.needUploadStats.sendType=void 0),this.requestUploadStats(T)}this.lastRecvStats=B,this.lastSendStats=_,u&&(this.lastNormalRecvStats=B,this.lastNormalSendStats=_),c&&(this.lastRefRecvStats=B,this.lastRefSendStats=_)}startUploadWRTCStats(){if(this.uploadWRTCStatsTimer)return;this.uploadBaseStatsStarted=!0,Pn.startCollectStats();let s=1;this.uploadWRTCStatsTimer=window.setInterval(()=>{if(!this.uploadTransportStarted&&!this.uploadInboundStarted&&!this.uploadOutboundStarted){if(this.uploadBaseStatsStarted){var c,u;const h=(c=this.requestTransportStats)===null||c===void 0?void 0:c.call(this);return void(h&&((u=this.requestUploadStats)===null||u===void 0||u.call(this,{misc:[{addition:{[aT.RTC_PEER_CONNECTION_STATE]:l4[h.connectState]}}]})))}return this.stopUploadWRTCStats()}this.uploadWRTCStats(s),++s===Tce+1&&(s=1)},gm)}uploadCompensateStats(s){if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;const c=s%B9==0&&this.needUploadRenderFreezeTime;if(!this.uploadInboundStarted||!c)return;if(this.lastUploadCompensateTime===-1)return void(this.lastUploadCompensateTime=Date.now());const u=Math.max(-6e3,Date.now()-this.lastUploadCompensateTime-6e3);if(this.uploadCompensateDeltaTime+=u,this.lastUploadCompensateTime=Date.now(),this.uploadCompensateDeltaTime<6e3)return;const h=Math.min(Math.floor(this.uploadCompensateDeltaTime/6e3),10);this.uploadCompensateDeltaTime-=6e3*h;const _=this.requestStats(!0);new Array(h).fill(0).forEach(()=>{if(!this.requestStats||!this.requestUploadStats||!this.requestRemoteMedia)return;const B={};if(this.uploadInboundStarted&&_){const Q=this.requestRemoteMedia()||[],T=[];Q.forEach(D=>{let O=ir(D,2),P=O[0],U=O[1];const H={peer:P.uid};if(P._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(P._videoSSRC)&&U.has(rr.VIDEO)&&P.videoTrack){const $=function(Z,te,se){if(!te.videoRecv.find(me=>me.ssrc===Z))return;const ge={};if(se&&se._player){const me=se._player,Qe=me.renderFreezeAccTime2,Oe=me.videoElementStatus;if(Pn.visibility==="visible"&&Oe===Ca.PLAYING&&Si().supportRequestVideoFrameCallback){const we=Math.min(6e3,Qe);me.renderFreezeAccTime2=Math.max(0,Qe-we),Qr(ge,Dl.Video_Render_Freeze_Time_Render2,we),de("USE_NEW_RENDER_FREEZE_TIME")&&Qr(ge,Dl.Video_Render_Freeze_Time_Render,we)}}return ge}(P._videoSSRC,_,P.videoTrack);$&&(H.video=$)}H.video&&T.push(H)}),T.length>0&&(B.inbound=T,this.requestUploadStats(B))}})}stopUploadWRTCStats(){window.clearInterval(this.uploadWRTCStatsTimer),this.uploadWRTCStatsTimer=void 0,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0}getTransportStats(s,c,u,h){if(!this.requestStats)return;if(!h)return s.rtt==null?void 0:{addition:{[Wa.RTT]:s.rtt,[Wa.CONN_TYPE]:void 0,[Wa.STATS_UPDATE_INTERVAL]:s.updateInterval||void 0}};const _=are(s);if(this.store.useP2P){if(u){const B=are(u);_[Wa.CONN_TYPE]&&B[Wa.CONN_TYPE]&&(_[Wa.CONN_TYPE]+=B[Wa.CONN_TYPE]<<3)}_[Wa.CONN_TYPE]?_[Wa.CONN_TYPE]+=110:_[Wa.CONN_TYPE]=110}else{_[Wa.CONN_TYPE]?_[Wa.CONN_TYPE]+=100:_[Wa.CONN_TYPE]=100;const B=function(Q,T){return T?[Math.ceil(8*(Q.transport.bytesSent-T.transport.bytesSent)/(Q.timestamp-T.timestamp)),Math.ceil(8*(Q.transport.bytesReceived-T.transport.bytesReceived)/(Q.timestamp-T.timestamp))]:[0,0]}(s,c);_[uz.Transport_Send_Bitrate]=B[0],_[uz.Transport_Recv_Bitrate]=B[1]}return{addition:_}}getOutboundStats(s,c,u,h,_){if(!this.requestUploadStats||!this.requestLocalMedia)return;const B=this.requestLocalMedia();if(!B||B.length===0)return;let Q,T,D;return B.forEach(O=>{let P=ir(O,2),U=P[0],H=P[1],$=H.track,Z=H.ssrcs;switch(U){case Qt.LocalVideoLowTrack:case Qt.LocalVideoTrack:if(U===Qt.LocalVideoTrack){var te;const se=function(Oe,we,Ne,et,st,Xt){const lr=we.videoSend.find(Nr=>Nr.ssrc===Oe);if(!lr)return;const ft={},Ir=lr.sentFrame,ui=lr.inputFrame;if(et&&(Qr(ft,Dl.Video_Send_Qp_Sum,lr.qpSumPerFrame),lr.codec&&Qr(ft,Dl.Video_Send_Codec,sre(lr.codec)),typeof lr.powerEfficientEncoder=="number"&&Qr(ft,Dl.Video_Send_Power_Efficient_Encoder,lr.powerEfficientEncoder),ui&&Ir)){const Nr=ui.frameRate,Ki=Ir.frameRate;ft[Dl.Video_Send_Freeze]=function(it,mt){let Gt=!0;return Gt=!(it<=5)&&(it<=10?mt<3:it<=20?mt<4:mt<5),Gt}(Nr,Ki)?1:0}if(st){switch(Ir&&(Qr(ft,Zr.Video_Send_Height,Ir.height),Qr(ft,Zr.Video_Send_Width,Ir.width),Qr(ft,Zr.Video_Send_Frame_Rate,Ir.frameRate)),ft[Zr.Video_Send_Disabled]=Ne._originMediaStreamTrack&&!Ne._originMediaStreamTrack.enabled||Ne._mediaStreamTrack&&!Ne._mediaStreamTrack.enabled?1:0,lr.adaptionChangeReason){case"none":ft[Zr.Video_Send_Adaptation]=0;break;case"cpu":ft[Zr.Video_Send_Adaptation]=1;break;case"bandwidth":ft[Zr.Video_Send_Adaptation]=2;break;case"other":ft[Zr.Video_Send_Adaptation]=3}let Nr=0;lr.adaptionChangeReason&&(Nr+=Are(lr.adaptionChangeReason)),we.qualityLimitationReason&&(Nr+=Are(we.qualityLimitationReason)<<3),ft[Zr.Video_Send_Adaptation]=Nr,ft[Zr.Video_Send_Player_Status]=ay[Ne._player?Ne._player.videoElementStatus:"uninit"],Qr(ft,Zr.Video_Send_Nacks,lr.nacksCount),Qr(ft,Zr.Video_Send_Plis,lr.plisCount),Qr(ft,Zr.Video_Send_Firs,lr.firsCount),Qr(ft,Zr.Video_Send_Avg_Encode,lr.avgEncodeMs),Qr(ft,Zr.Video_Send_Huge_Frame_Sent,lr.hugeFramesSent),Qr(ft,Zr.Video_Send_Bytes_Retransmit,lr.retransmittedBytesSent),Qr(ft,Zr.Video_Send_Packages_Retransmit,lr.retransmittedPacketsSent),Qr(ft,Zr.Video_Send_Key_Frames_Encoded,lr.keyFramesEncoded);const Ki=st.videoSend.find(it=>it.ssrc===Oe);if(Ki){let it=gm*B9;Ki.timestamp&&lr.timestamp&&(it=lr.timestamp-Ki.timestamp),Ki.packets!=null&&lr.packets!=null&&Qr(ft,Zr.Video_Send_Package_Rate,1e3*(lr.packets-Ki.packets)/it),lr.packetsLost!=null&&Ki.packetsLost!=null&&Qr(ft,Zr.Video_Send_Package_Lost,lr.packetsLost-Ki.packetsLost),Ki.bytes!=null&&lr.bytes!=null&&Qr(ft,Zr.Video_Send_Bitrate,8*(lr.bytes-Ki.bytes)/it)}}return ft}(Z[0].ssrcId,s,$,c,u),ge=$.__className__==="CameraVideoTrack"?3:Et(te=$._hints).call(te,gn.SCREEN_TRACK)?7:10;(this.lastExtendStats.sendType!==ge||_)&&(this.needUploadStats={sendType:ge},this.lastExtendStats.sendType=ge);const me=$&&function(Oe,we,Ne,et){const st=we.videoSend.find(lr=>lr.ssrc===Oe);if(!st)return null;const Xt={};if(et){const lr=st.inputFrame,ft=lr&&lr.height||Ne.videoHeight||0,Ir=lr&&lr.width||Ne.videoWidth||0,ui=lr&&lr.frameRate||0;Qr(Xt,Zr.Video_Capture_Height,ft),Qr(Xt,Zr.Video_Capture_Width,Ir),Qr(Xt,Zr.Video_Capture_Frame_Rate,ui)}return Xt}(Z[0].ssrcId,s,$,!!u),Qe=function(Oe,we){const Ne={};return we&&(Qr(Ne,Zr.Video_Send_Retransmit,Oe.bitrate.retransmit),Qr(Ne,Zr.Video_Send_Target_Encoded,Oe.bitrate.targetEncoded),Qr(Ne,Zr.Video_Send_Actual_Encoded,Oe.bitrate.actualEncoded),Qr(Ne,Zr.Video_Send_Transmit,Oe.bitrate.transmit),Qr(Ne,Zr.Video_Send_Bandwidth,Oe.sendBandwidth)),Ne}(s,!!u);T=Object.assign({},se,me,Qe)}else D=function(se,ge,me,Qe,Oe){const we=ge.videoSend.find(et=>et.ssrc===se);if(!we)return;const Ne={};if(Qe){const et=we.sentFrame;et&&(Qr(Ne,Zr.Video_Send_Low_Height,et.height),Qr(Ne,Zr.Video_Send_Low_Width,et.width),Qr(Ne,Zr.Video_Send_Low_Frame_Rate,et.frameRate));const st=Qe.videoSend.find(Xt=>Xt.ssrc===se);if(st){let Xt=gm*KF;st.timestamp&&we.timestamp&&(Xt=we.timestamp-st.timestamp),st.packets!=null&&we.packets!=null&&Qr(Ne,Zr.Video_Send_Low_Package_Rate,1e3*(we.packets-st.packets)/Xt),we.packetsLost!=null&&st.packetsLost!=null&&Qr(Ne,Zr.Video_Send_Low_Package_Lost,we.packetsLost-st.packetsLost),st.bytes!=null&&we.bytes!=null&&Qr(Ne,Zr.Video_Send_Low_Bitrate,8*(we.bytes-st.bytes)/Xt)}}return Ne}(Z[0].ssrcId,s,0,u);break;case Qt.LocalAudioTrack:Q=$&&function(se,ge,me,Qe,Oe,we){const Ne=ge.audioSend.find(st=>st.ssrc===se);if(!Ne)return;const et={};if(Oe){et[Zr.Audio_Send_Disabled]=me._originMediaStreamTrack&&!me._originMediaStreamTrack.enabled||me._mediaStreamTrack&&!me._mediaStreamTrack.enabled?1:0;const st=100*me._source.getAccurateVolumeLevel(),Xt=Ne.inputLevel;if(Xt!=null){const ft=Math.ceil(50*Math.log10(100*Xt+1));Qr(et,Zr.Audio_Send_Level,ft)}Qr(et,Zr.Audio_Capture_PCM_Level,st),Qr(et,Zr.Audio_Send_AEC_Return_Loss,Ne.aecReturnLoss),Qr(et,Zr.Audio_Send_AEC_Return_Loss_Enhancement,Ne.aecReturnLossEnhancement),Qr(et,Zr.Audio_Send_Bytes_Retransmit,Ne.retransmittedBytesSent),Qr(et,Zr.Audio_Send_Packages_Retransmit,Ne.retransmittedPacketsSent),et[Zr.Audio_Send_Freeze]=0;const lr=Oe.audioSend.find(ft=>ft.ssrc===se);if(lr){let ft=gm*KF;lr.timestamp&&Ne.timestamp&&(ft=Ne.timestamp-lr.timestamp),lr.bytes!=null&&Ne.bytes!=null&&Qr(et,Zr.Audio_Send_Bitrate,8*(Ne.bytes-lr.bytes)/ft),lr.packets!=null&&Ne.packets!=null&&Qr(et,Zr.Audio_Send_Package_Rate,1e3*(Ne.packets-lr.packets)/ft)}}return et}(Z[0].ssrcId,s,$,0,u)}}),{high:T,low:D,audio:Q}}getInboundStats(s,c,u,h){if(!this.requestRemoteMedia)return;const _=this.requestRemoteMedia()||[],B=[];return _.forEach(Q=>{let T=ir(Q,2),D=T[0],O=T[1];const P={peer:D.uid};let U;if(O.has(rr.VIDEO)&&D.videoTrack){const H=D._videoSSRC&&this.requestVideoIsReady&&this.requestVideoIsReady(D._videoSSRC)||!1,$=D.videoTrack?function(Z,te,se,ge,me,Qe,Oe,we){const Ne=te.videoRecv.find(Nr=>Nr.ssrc===Z);if(!Ne)return;const et={},st=Ne.receivedFrame,Xt=Ne.outputFrame,lr=Ne.decodeFrameRate;Qr(et,Na.Video_Render_Frame_Rate_Decode,lr),Ne.framesRateFirefox&&Qr(et,Na.Video_Recv_Frame_Rate,Ne.framesRateFirefox),st&&Qr(et,Na.Video_Recv_Frame_Rate,st.frameRate),Qr(et,Na.Video_Recv_Frame_Dropped,Ne.framesDroppedCount),Qr(et,Na.Video_Recv_Bytes_Retransmit,Ne.retransmittedBytesReceived),Qr(et,Na.Video_Recv_Packages_Retransmit,Ne.retransmittedPacketsReceived),Qr(et,Na.Video_Recv_Packages_Discarded,Ne.packetsDiscarded),Qr(et,Na.Video_Recv_Avg_Decode,Ne.avgDecodeMs),Qr(et,Na.Video_Recv_Avg_Processing_Delay,Ne.avgProcessingDelayMs),Qr(et,Na.Video_Recv_Avg_Assembly_Time,Ne.avgFramesAssembledFromMultiplePacketsMs),Qr(et,Na.Video_Recv_Avg_Inter_Frame_Delay,Ne.avgInterFrameDelayMs),Qr(et,Na.Video_Recv_Key_Frames_Decoded,Ne.keyFramesDecoded);const ft=we&&we.videoRecv.find(Nr=>Nr.ssrc===Z);if(ft){const Nr=te.timestamp-we.timestamp||gm;Ne.packetsLost!=null&&ft.packetsLost!=null&&Qr(et,Na.Video_Recv_Package_Lost,Ne.packetsLost-ft.packetsLost),ft.bytes!=null&&Ne.bytes!=null&&Qr(et,Na.Video_Recv_Bitrate,8*(Ne.bytes-ft.bytes)/Nr),ft.packets!=null&&Ne.packets!=null&&Qr(et,Na.Video_Recv_Package_Rate,1e3*(Ne.packets-ft.packets)/Nr)}const Ir=Qe&&Qe.videoRecv.find(Nr=>Nr.ssrc===Z);if(Ir&&(Qr(et,Dl.Video_Recv_Qp_Sum,Ne.qpSumPerFrame),Ne.codec&&Qr(et,Dl.Video_Recv_Codec,sre(Ne.codec)),typeof Ne.powerEfficientDecoder=="number"&&Qr(et,Dl.Video_Recv_Power_Efficient_Decoder,Ne.powerEfficientDecoder),et[Dl.Video_Recv_Freeze]=ge&&m9.isRemoteVideoFreeze(se,Ne,Ir)?1:0),Oe){var ui;const Nr=Oe.videoRecv.find(it=>it.ssrc===Z);st?(Qr(et,Zr.Video_Recv_Height,st.height),Qr(et,Zr.Video_Recv_Width,st.width)):se&&(Qr(et,Zr.Video_Recv_Height,se._videoHeight||0),Qr(et,Zr.Video_Recv_Width,se._videoWidth||0)),Xt&&Qr(et,Zr.Video_Recv_Frame_Rate_Output,Xt.frameRate);const Ki=(ui=se._player)===null||ui===void 0?void 0:ui.rendFrameRate.toFixed(0);if(Ki&&Qr(et,Zr.Video_Render_Frame_Rate_Render,+Ki),Qr(et,Zr.Video_Recv_Jitter_Buffer,Ne.jitterBufferMs),Qr(et,Zr.Video_Recv_Current_Delay,Ne.currentDelayMs),Qr(et,Zr.Video_Recv_Firs,Ne.firsCount),Qr(et,Zr.Video_Recv_Nacks,Ne.nacksCount),Qr(et,Zr.Video_Recv_Plis,Ne.plisCount),se){et[Zr.Video_Recv_Disabled]=se._originMediaStreamTrack.enabled&&se._mediaStreamTrack.enabled?0:1;const it=se._player;if(it){const mt=it.freezeTimeCounterList,Gt=it.renderFreezeAccTime,at=it.renderFreezeAccTime2,ie=it.videoElementStatus;if(mt&&mt.length>0&&Qr(et,Dl.Video_Render_Freeze_Time,mt.splice(0,1)[0]),me&&Pn.visibility==="visible"&&ie===Ca.PLAYING&&Si().supportRequestVideoFrameCallback){const Te=Math.min(6e3,at);it.renderFreezeAccTime2=Math.max(0,at-Te),Qr(et,Dl.Video_Render_Freeze_Time_Render2,Te);const ke=Math.min(6e3,Gt);it.renderFreezeAccTime=Math.max(0,Gt-ke),Qr(et,Dl.Video_Render_Freeze_Time_Render,de("USE_NEW_RENDER_FREEZE_TIME")?Te:ke)}if(typeof Ne.totalFreezesDuration=="number"){const Te=Nr&&Nr.totalFreezesDuration?Ne.totalFreezesDuration-Nr.totalFreezesDuration:Ne.totalFreezesDuration;Qr(et,Zr.Video_Render_Freeze_Duration,1e3*Te)}}}if(et[Zr.Video_Recv_Player_Status]=ay[se._player?se._player.videoElementStatus:"uninit"],Nr&&Ne.totalInterFrameDelay!==void 0&&Ne.totalSquaredInterFrameDelay!==void 0&&Nr.totalInterFrameDelay!==void 0&&Nr.totalSquaredInterFrameDelay!==void 0){const it=Ne.totalInterFrameDelay-Nr.totalInterFrameDelay,mt=Ne.totalSquaredInterFrameDelay-Nr.totalSquaredInterFrameDelay,Gt=Ne.framesDecodeCount-Nr.framesDecodeCount,at=it/Gt*1e3,ie=Math.round(1e3*Math.sqrt((mt-Math.pow(it,2)/Gt)/Gt));!isNaN(ie)&&at+ie>Math.max(3*at,at+150)&&(et[Zr.Video_Recv_I_Frame_Delay]=ie)}}return et}(D._videoSSRC,s,D.videoTrack,H===!0,this.needUploadRenderFreezeTime,c,u,h):void 0;if($&&(P.video=$),D.videoTrack){const Z=s.videoRecv.find(te=>te.ssrc===D._videoSSRC);Z&&Z.estimatedPlayoutTimestamp&&(U=Z.estimatedPlayoutTimestamp)}}if(O.has(rr.AUDIO)&&D.audioTrack){const H=!D.hasAudio,$=D.audioTrack?function(Z,te,se,ge,me,Qe){let Oe=arguments.length>6&&arguments[6]!==void 0&&arguments[6];const we=te.audioRecv.find(Xt=>Xt.ssrc===Z);if(!we)return;const Ne={};Qr(Ne,Na.Audio_Recv_Jitter,we.jitterMs),Qr(Ne,Na.Audio_Recv_Bytes_Retransmit,we.retransmittedBytesReceived),Qr(Ne,Na.Audio_Recv_Packages_Retransmit,we.retransmittedPacketsReceived),Qr(Ne,Na.Audio_Recv_Packages_Discarded,we.packetsDiscarded),Qr(Ne,Na.Audio_Recv_Avg_Processing_Delay,we.avgProcessingDelayMs);const et=Qe&&Qe.audioRecv.find(Xt=>Xt.ssrc===Z);if(et){const Xt=gm;we.packets!=null&&et.packets!=null&&Qr(Ne,Na.Audio_Recv_Package_Rate,1e3*(we.packets-et.packets)/Xt),we.packetsLost!=null&&et.packetsLost!=null&&Qr(Ne,Na.Audio_Recv_Package_Lost,we.packetsLost-et.packetsLost)}if(ge){const Xt=we.receivedFrames,lr=we.droppedFrames;Xt!=null&&lr!=null&&(Ne[Dl.Audio_Recv_Freeze]=(st=Xt)===0||100*lr/st>20?1:0)}var st;if(me){const Xt=100*se._source.getAccurateVolumeLevel(),lr=we.outputLevel;if(lr!=null){const Ir=Math.ceil(50*Math.log10(100*lr+1));Qr(Ne,Zr.Audio_Render_Level,Ir)}Qr(Ne,Zr.Audio_Recv_PCM_Level,Xt),se&&(Ne[Zr.Audio_Recv_Disabled]=se._originMediaStreamTrack.enabled&&se._mediaStreamTrack.enabled?0:1),Qr(Ne,Zr.Audio_Recv_Jitter_Buffer,we.jitterBufferMs),Qr(Ne,Zr.Audio_Recv_Current_Delay,we.jitterBufferMs),Ne[Zr.Audio_Recv_Player_Status]=ay[rA.getPlayerState(se.getTrackId())];const ft=me.audioRecv.find(Ir=>Ir.ssrc===Z);if(ft&&(ft.bytes!=null&&we.bytes!=null&&Qr(Ne,Zr.Audio_Recv_Bitrate,8*(we.bytes-ft.bytes)/(gm*B9)),!Oe)){const Ir=we.concealedSamples-ft.concealedSamples;Ir>0&&Qr(Ne,Zr.Audio_Recv_Concealed_Samples,Ir);const ui=we.totalSamplesReceived-ft.totalSamplesReceived;ui>0&&Qr(Ne,Zr.Audio_Recv_Total_Samples_Received,ui);const Nr=we.freezeSamples80-ft.freezeSamples80;Nr>0&&Qr(Ne,Zr.Audio_Render_Freeze_Samples_80ms,Nr);const Ki=we.freezeSamples200-ft.freezeSamples200;Ki>0&&Qr(Ne,Zr.Audio_Render_Freeze_Samples_200ms,Ki);const it=we.freezeMs80-ft.freezeMs80;Qr(Ne,Zr.Audio_Render_Freeze_Time_80ms,it<0?0:it);const mt=we.freezeMs200-ft.freezeMs200;Qr(Ne,Zr.Audio_Render_Freeze_Time_200ms,mt<0?0:mt)}}return Ne}(D._audioSSRC,s,D.audioTrack,c,u,h,H):void 0;if($&&(P.audio=$),D.audioTrack&&U){const Z=s.audioRecv.find(te=>te.ssrc===D._audioSSRC);if(Z&&Z.estimatedPlayoutTimestamp){const te=Z.estimatedPlayoutTimestamp-U;P.audio?P.audio[Na.Audio_Recv_AV_Sync_TIME]=te:P.audio={[Na.Audio_Recv_AV_Sync_TIME]:te}}}}(P.video||P.audio)&&B.push(P)}),this.needUploadRenderFreezeTime=!this.needUploadRenderFreezeTime,B}startUploadTransportStats(){this.uploadTransportStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats()}stopUploadTransportStats(){this.uploadTransportStarted=!1}startUploadOutboundStats(){this.uploadOutboundStarted||(this.uploadOutboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=window.setInterval(()=>{if(!this.requestAllTracks||!this.requestUpload)return;const s=(this.requestAllTracks()||[]).find(c=>c instanceof xd);if(s&&s._external.getDenoiserStats){const c=s._external.getDenoiserStats();c&&this.requestUpload(Mu.DENOISER_STATS,c)}},2e3),this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=window.setInterval(()=>{!this.requestAllTracks||!this.requestUpload||this.requestAllTracks().forEach(s=>{s.getProcessorStats().forEach(c=>{this.requestUpload&&this.requestUpload(c.type,c.stats)})})},2e3))}stopUploadOutboundStats(){this.uploadOutboundStarted&&(this.uploadOutboundStarted=!1,this.lastSendStats&&(this.lastSendStats.videoSend=[],this.lastSendStats.audioSend=[],this.lastSendStats=void 0),this.lastRefSendStats&&(this.lastRefSendStats.videoSend=[],this.lastRefSendStats.audioSend=[],this.lastRefSendStats=void 0),this.lastNormalSendStats&&(this.lastNormalSendStats.videoSend=[],this.lastNormalSendStats.audioSend=[],this.lastNormalSendStats=void 0),this.lastExtendStats={},this.needUploadStats={},this.uploadOutboundDenoiserStatsTimer&&window.clearInterval(this.uploadOutboundDenoiserStatsTimer),this.uploadOutboundDenoiserStatsTimer=void 0,this.uploadExtStatsTimer&&window.clearInterval(this.uploadExtStatsTimer),this.uploadExtStatsTimer=void 0)}startUploadInboundStats(){this.uploadInboundStarted||(this.uploadInboundStarted=!0,this.uploadWRTCStatsTimer||this.startUploadWRTCStats(),this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=window.setInterval(()=>{!this.requestUpload||!this.requestRemoteMedia||(this.requestRemoteMedia()||[]).forEach(s=>{let c=ir(s,2),u=c[0],h=c[1];h.has(rr.VIDEO)&&u.videoTrack&&u.videoTrack.getProcessorStats().forEach(_=>{this.requestUpload&&this.requestUpload(_.type,_.stats)}),h.has(rr.AUDIO)&&u.audioTrack&&u.audioTrack.getProcessorStats().forEach(_=>{this.requestUpload&&this.requestUpload(_.type,_.stats)})})},2e3))}stopUploadInboundStats(){this.uploadInboundStarted&&(this.uploadInboundStarted=!1,this.lastRecvStats&&(this.lastRecvStats.videoRecv=[],this.lastRecvStats.audioRecv=[],this.lastRecvStats=void 0),this.lastRefRecvStats&&(this.lastRefRecvStats.videoRecv=[],this.lastRefRecvStats.audioRecv=[],this.lastRefRecvStats=void 0),this.lastNormalRecvStats&&(this.lastNormalRecvStats.videoRecv=[],this.lastNormalRecvStats.audioRecv=[],this.lastNormalRecvStats=void 0),this.lastUploadCompensateTime=-1,this.uploadCompensateDeltaTime=0,this.needUploadRenderFreezeTime=!0,this.uploadInboundExtStatsTimer&&window.clearInterval(this.uploadInboundExtStatsTimer),this.uploadInboundExtStatsTimer=void 0)}startUploadExtensionUsageStats(){if(this.uploadExtensionUsageStarted)return;this.uploadExtensionUsageStarted=!0,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer);const s=new Map;this.uploadExtUsageStatsTimer=window.setInterval(async()=>{const c=Date.now(),u={connectionInterval:de("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3,details:[],lts:c};let h=[];const _=this.requestAllTracks&&this.requestAllTracks()||[];for(const O of _)!O.muted&&O.enabled&&(h=h.concat(await O.getProcessorUsage()));const B=this.requestRemoteMedia&&this.requestRemoteMedia()||[];for(const O of B){var Q=ir(O,2);const P=Q[0],U=Q[1];U.has(rr.VIDEO)&&P.videoTrack&&(h=h.concat(await P.videoTrack.getProcessorUsage())),U.has(rr.AUDIO)&&P.audioTrack&&(h=h.concat(await P.audioTrack.getProcessorUsage()))}if(h.length===0)return;u.details=function(O,P){const U={};for(const te of O){var H;const se=te.id,ge=te.value,me=te.level,Qe=te.direction,Oe=(H=P.get(se))!==null&&H!==void 0?H:0,we=ge===2?Oe+de("EXTENSION_USAGE_UPLOAD_INTERVAL")/1e3:Oe;var $,Z;P.set(se,we),U[se]?(ge===2&&(U[se].value=ge),me>U[se].level&&(U[se].level=me),Qe==="remote"&&(U[se].remoteUidCount+=1),U[se].totalTs=($=P.get(se))!==null&&$!==void 0?$:0):U[se]={value:ge,level:me,remoteUidCount:Qe==="local"?0:1,totalTs:(Z=P.get(se))!==null&&Z!==void 0?Z:0}}return Object.keys(U).map(te=>{const se=U[te];return{id:te,level:se.level,value:se.value,totalTs:se.totalTs}})}(h,s);const T=Date.now(),D=T>c?T:c+1;this.requestUpload&&this.requestUpload(Mu.EXTENSION_USAGE_STATS,{usageStats:u,sendTs:D})},de("EXTENSION_USAGE_UPLOAD_INTERVAL"))}stopUploadExtensionUsageStats(){this.uploadExtensionUsageStarted&&(this.uploadExtensionUsageStarted=!1,this.uploadExtUsageStatsTimer&&window.clearInterval(this.uploadExtUsageStatsTimer),this.uploadExtUsageStatsTimer=void 0)}stopUploadBaseStats(){this.uploadBaseStatsStarted=!1,Pn.stopCollectStats()}}const wce=de("ICE_RESTART_INTERVAL");let HF=new Map,AT=new Map,bp=[qs.UDP_TCP_RELAY,qs.TCP_RELAY,qs.RELAY],gz=de("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Si().supportPCSetConfiguration;function lre(t){let s=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const c=HF.get(t.id);c&&(window.clearTimeout(c),HF.delete(t.id));const u=AT.get(t.id);s&&u&&u.index===bp.length-1&&(J.debug("[".concat(t.id,"] reset ICE restart policy")),AT.delete(t.id))}function dre(t,s,c){if(HF.size===0&&AT.size===0&&(Array.isArray(de("RESTART_SEQUENCE"))&&de("RESTART_SEQUENCE").length>0&&!function(D,O){if(D.length!==O.length)return!1;for(let P=0;PH===U).length!==O.filter(H=>H===U).length)return!1}return!0}(bp,de("RESTART_SEQUENCE"))&&(bp=de("RESTART_SEQUENCE").filter(D=>{var O;if(Et(O=Object.values(qs)).call(O,D))return!0}),J.debug("use reconnection policy from config distribution, queues: ".concat(bp.join(" => ")))),gz=de("JOIN_WITH_FALLBACK_MEDIA_PROXY_FORCE")&&Si().supportPCSetConfiguration),bp.length===0)return void c();let u,h=AT.get(t.id)||{},_=h.index,B=_===void 0?0:_,Q=h.type;if(gz&&Q===qs.RELAY)return void c();let T=Q&&B>=bp.length-1;if(gz)Q=qs.RELAY;else{if(T)return void c();Q?(B++,Q=bp[B]):(Q=bp[0],B=0)}J.debug("[".concat(t.id,"] choose ICE restart policy: ").concat(Q,", index: ").concat(B)),s(Q),AT.set(t.id,{index:B,type:Q}),u=window.setTimeout(()=>dre(t,s,c),wce),HF.set(t.id,u)}var Ni;function ure(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function qh(t){for(var s=1;s{const _=await this.mutex.lock("Locking from P2PChannel.handleMuteLocalTrack");try{if(!this.connection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel.handleMuteLocalTrack before connection established."));const B=this.filterTobeMutedTracks(c);if(B.length===0)return void u();const Q=B.find(D=>D[0]==="videoLowTrack");if(Q){const D=Q[1];this.store.enableInstantMuteRestore?(D.track._originMediaStreamTrack.enabled=!1,J.info("[".concat(this.store.clientId,"] P2PChannel muteLocalLowTrack without close sender because enableInstantMuteRestore is true"))):D.track._originMediaStreamTrack.stop()}this.store.enableInstantMuteRestore?J.info("[".concat(this.store.clientId,"] P2PChannel muteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.muteLocal(B.map(D=>ir(D,2)[1].id));const T=this.createMuteMessage(B);await sn(this,Cr.RequestMuteLocal,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleUnmuteLocalTrack",async(c,u,h)=>{const _=await this.mutex.lock("Locking from P2PChannel.handleUnmuteLocalTrack");try{if(!this.connection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel.handleUnmuteLocalTrack before connection established."));const B=this.filterTobeUnmutedTracks(c);if(B.length===0)return void u();const Q=B.find(D=>D[0]==="videoLowTrack");if(Q){const D=Q[1];if(this.store.enableInstantMuteRestore)D.track._originMediaStreamTrack.enabled=!0,J.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalLowTrack without close sender because enableInstantMuteRestore is true"));else{if(D.track._originMediaStreamTrack.stop(),!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding){const O=c._mediaStreamTrack.clone();D.track._mediaStreamTrack=O,D.track._originMediaStreamTrack=O}else{const O=dz(c,nh(this,Cr.RequestLowStreamParameter));D.track._mediaStreamTrack=O,D.track._originMediaStreamTrack=O}await new Ut((O,P)=>{this.handleReplaceTrack(D.track,O,P,!0)})}}this.store.enableInstantMuteRestore?J.info("[".concat(this.store.clientId,"] P2PChannel unmuteLocalTrack without close sender because enableInstantMuteRestore is true")):await this.connection.unmuteLocal(B.map(D=>ir(D,2)[1].id));const T=this.createUnmuteMessage(B);await sn(this,Cr.RequestUnmuteLocal,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleUpdateVideoEncoder",async(c,u,h,_)=>{let B;_||(B=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoEncoder"));try{const T=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.connection||!T||T.track!==c||this.state!==ln.Connected)return void u();const D=T.id,O=T.track;await this.connection.updateSendParameters(D,O),await this.connection.updateEncoderConfig(D,O),this.emit(Cr.UpdateVideoEncoder,O),u()}catch(T){h(T)}finally{var Q;(Q=B)===null||Q===void 0||Q()}}),ae(this,"handleUpdateVideoSendParameters",async(c,u,h)=>{const _=await this.mutex.lock("Locking from P2PChannel.handleUpdateVideoSendParameters");try{const B=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.connection||!B||B.track!==c||this.state!==ln.Connected)return void u();const Q=B.id,T=B.track;await this.connection.updateSendParameters(Q,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleReplaceMixingTrack",async(c,u,h,_)=>{if(!this.connection||this.state!==ln.Connected)return void u();const B=Az([c]);let Q;J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(B.getTrackId(),"]")),typeof _=="boolean"&&_||(Q=await this.mutex.lock("From P2PChannel.handleReplaceMixingTrack"));try{await this.replaceTrack(c,B),u()}catch(D){h(D)}finally{var T;(T=Q)===null||T===void 0||T()}}),ae(this,"handleReplaceTrack",async(c,u,h,_)=>{let B;J.debug("[".concat(this.store.clientId,"] P2PChannel handleReplaceTrack for [track-id-").concat(c.getTrackId(),"]")),typeof _=="boolean"&&_||(B=await this.mutex.lock("From P2PChannel.handleReplaceTrack"));try{var Q;const D=Array.from(this.localTrackMap.entries()).find(O=>{let P=ir(O,2)[1].track;return c===P});if(!this.connection||!D||this.state!==ln.Connected)return void u();if(await((Q=this.connection)===null||Q===void 0?void 0:Q.replaceTrack(c,D[1].id)),this.isPlanB){const O=D[1];O.id=c._mediaStreamTrack.id,this.localTrackMap.set(D[0],O)}if(D[0]===Qt.LocalVideoTrack&&!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding){const O=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(O){const P=c._mediaStreamTrack.clone();O.track._originMediaStreamTrack.stop(),O.track._mediaStreamTrack=P,O.track._originMediaStreamTrack=P,await new Ut((U,H)=>{this.handleReplaceTrack(O.track,U,H,!0)})}}u()}catch(D){h(D)}finally{var T;(T=B)===null||T===void 0||T()}}),ae(this,"handleGetRTCStats",c=>{c(this.statsCollector.getRTCStats())}),ae(this,"handleGetLocalVideoStats",c=>{c(this.statsCollector.getLocalVideoTrackStats())}),ae(this,"handleGetLocalAudioStats",c=>{c(this.statsCollector.getLocalAudioTrackStats())}),ae(this,"handleGetRemoteVideoStats",c=>this.statsCollector.getRemoteVideoTrackStats(c.uid)[c.uid]),ae(this,"handleGetRemoteAudioStats",c=>this.statsCollector.getRemoteAudioTrackStats(c.uid)[c.uid]),this.store=t,this.statsCollector=s,this.statsCollector.addP2PChannel(this),this.statsUploader=new cre(this.store),this.bindStatsUploaderEvents(),this.mutex=new ra("P2PChannel-mutex",this.store.clientId),this.isPlanB=!Si().supportUnifiedPlan||de("CHROME_FORCE_PLAN_B")&&Al(),this.shouldForwardP2PCreation=de("FORWARD_P2P_CREATION")&&Si().supportPCSetConfiguration&&OR(),this.shouldForwardP2PCreation&&this.recreateConnection()}async startP2PConnection(t,s){var c;this.state=ln.New,this._forceTurn=lz(t),J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] forceTurn: ").concat(this._forceTurn));const u=this.shouldForwardP2PCreation&&((c=this.connection)===null||c===void 0?void 0:c.peerConnectionState)==="closed";if((!this.shouldForwardP2PCreation||u||s)&&((u||s)&&this.connection&&(J.warning("[".concat(this.store.clientId,"] P2PChannel.startP2PConnection ForwardP2P closed.")),this.resetConnection(this.connection)),this.recreateConnection(t)),!this.connection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel.startConnection before P2PConnection initialization .");return this._pcStatsUploadType=de("NEW_ICE_RESTART")?MA.FIRST_CONNECTION:MA.OLD_FIRST_CONNECTION,this._isTryConnecting=!0,this._isStartRestartIce=!1,this._iceError=null,this.connection.setConfiguration(t),this.connection.establishPromise}updateConnectionConfiguration(t){var s;(s=this.connection)===null||s===void 0||s.setConfiguration(t),this._p2pBySDPEndPoint=!0}async connect(t){if(!this.connection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel.connect before P2PChannel.startP2PConnection .");if(!this.isPreallocation()||this.state!==ln.Connected){this.store.peerConnectionStart();const s=await this.connection.connect(t);return this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=ln.Connected,s}if(this.connection instanceof vl||this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"){const s=this.connection.checkDtlsParameters(t.dtlsParameters.fingerprints),c=YX(t.iceParameters.iceUfrag,t.iceParameters.icePwd);c||J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] ice parameters mismatch, length: ").concat(t.iceParameters.iceUfrag.length," / ").concat(t.iceParameters.icePwd.length));const u=this.connection.checkIceParameters(t.iceParameters),h=s||!c||u&&!(this.connection instanceof vl);(h||u)&&(J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] dtls parameters mismatch, ").concat(h?"try next":"restart ICE")),qt.reportApiInvoke(this.store.sessionId,{name:s?Ti.MISMATCH_DTLS_PARAMETERS:Ti.MISMATCH_ICE_PARAMETERS,options:s?[t.dtlsParameters.fingerprints]:[t.iceParameters],tag:vn.TRACER}).onSuccess(),setTimeout(()=>{h?this.emit(Cr.RequestReconnect):u&&this.emit(Cr.RequestRestartICE,qs.UDP_RELAY)}))}await this.connection.updateRemoteConnect(t)}updateRemoteRTPCapabilities(t){const s=Array.from(this.localTrackMap.entries()).filter(h=>{var _;let B=ir(h,1)[0];return Et(_=[Qt.LocalVideoLowTrack,Qt.LocalVideoTrack]).call(_,B)}),c=s.map(h=>ir(h,2)[1].id),u=s.map(h=>ir(h,1)[0]);if(this.connection instanceof vl||this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"){if(qt.updateRemoteRTPCapabilities(this.store.sessionId,{trackTypes:JSON.stringify(u),localCodecs:JSON.stringify(this.connection.localCodecs),remoteCodecs:JSON.stringify(t)}),!Et(t).call(t,this.store.codec)){const h=["vp9","vp8","h264"].find(_=>Et(t).call(t,_));h&&(this.store.codec=h,J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId," updateRemoteRTPCapabilities] default codec is not available, hence the fallback to ").concat(h,".")))}this.connection.updateRemoteRTPCapabilities(c,t)}}async getEstablishParams(){var t;return this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof vl&&this.connection.peerConnectionState!=="closed"&&Et(t=[ln.New,ln.Connected]).call(t,this.state)?this.connection.establishPromise:void 0}async publishDataChannel(t){if(!this.connection||this.state!==ln.Connected){if(this.state===ln.Disconnected)throw new tt(Ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");return t.forEach(c=>{var u;Et(u=this.pendingLocalDataChannels).call(u,c)||this.pendingLocalDataChannels.push(c)}),[]}const s=this.filterTobePublishedDataChannels(t);return s.length===0?[]:(s.forEach(c=>{const u=Date.now();this.store.publish(c.id.toString(),"datachannel",u)}),await this.connection.createDataChannels(this.store.uid,s),s.forEach(c=>{this.localDataChannels.push(c);const u=Date.now();this.store.publish(c.id+"","datachannel",void 0,u)}),t.map(c=>({streamId:c.id,ordered:c.ordered,maxRetransmits:c.maxRetransmits,metadata:c.metadata,channelId:c._originDataChannelId})))}publish(t,s,c){var u=this;return AA(function*(){const h=yield Tr(u.mutex.lock("From P2PChannel.publish"));try{var _;const B=u.connection&&Et(_=["disconnected","failed"]).call(_,u.connection.peerConnectionState);if(!u.connection||u.state!==ln.Connected||B){if(u.state===ln.Disconnected)throw new tt(Ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");u.throwIfTrackTypeNotMatch(t);const T=t.filter(D=>u.pendingLocalTracks.indexOf(D)===-1);return u.pendingLocalTracks=u.pendingLocalTracks.concat(T),void(B&&(u._isWaitPcToRePub=!0))}u.store.pubId=u.store.pubId+1,_A.markPublishStart(u.store.clientId,u.store.pubId);const Q=u.filterTobePublishedTracks(t,s,c);if(Q.length===0)return void(yield Tr(u.tryToUnmuteAudio(t)));yield*Qc(gre(u.doPublish(u.connection,Q)))}finally{h()}})()}doPublish(t,s){var c=this;return AA(function*(){s.forEach(U=>{let H=U.track,$=U.type;const Z=Date.now();c.store.publish(H.getTrackId(),$===Qt.LocalAudioTrack?"audio":"video",Z)}),c.bindLocalTrackEvents(s);const u=s.map(U=>U.track),h=yield Tr(t.send(u,c.store.codec,c.store.audioCodec)),_=(yield Tr(h.next())).value,B=c.createGatewayPublishMessage(s,_);let Q;try{Q=yield B}catch(U){throw h.throw(U),(U==null?void 0:U.code)===Ce.WS_ABORT&&s.forEach(H=>{let $=H.track;c.pendingLocalTracks.indexOf($)===-1&&c.pendingLocalTracks.push($)}),c.unbindLocalTrackEvents(s),U}const T=c.mapPubResToRemoteConfig(B,Q,u),D=(yield Tr(h.next(T))).value;if(c.state===ln.Disconnected)throw new tt(Ce.UNEXPECTED_ERROR,"PeerConnection already disconnected.");de("ENABLE_VIDEO_SEI");const O=de("ENABLE_ENCODED_TRANSFORM"),P=de("ENABLE_AUDIO_METADATA");u.forEach(async U=>{const H=U.getRTCRtpTransceiver();if(!H||!O)return;const $=NF(),Z=$.interceptLocalVideoFrame,te=$.interceptLocalAudioFrame;U.trackMediaType===rr.VIDEO?await Z(H.sender,U):U.trackMediaType===rr.AUDIO&&await te(H.sender,{metadata:P?()=>{const se=U.metadata.shift();return se&&se.value}:void 0})}),s.forEach(U=>{let H=U.type;c.statsCollector.addLocalStats(H)}),c.assignLocalTracks(s,D),c.statsUploader.startUploadOutboundStats(),s.forEach(U=>{let H=U.track,$=U.type;const Z=Date.now();c.store.publish(H.getTrackId(),$===Qt.LocalAudioTrack?"audio":"video",void 0,Z)})})()}async updateVideoStreamParameter(t,s){const c=this.localTrackMap.get(s);if(!c||!this.connection)return;if(!(c.track instanceof pn))return J.warn("[updateVideoStreamParameter]: track is not an instance of LocalVideoTrack");const u=c.track,h=function(_,B){const Q={};return _.height&&_.width&&(Q.scaleResolutionDownBy=xX(_,B)),Q.maxFramerate=_.framerate?dc(_.framerate):void 0,Q.maxBitrate=_.bitrate?1e3*_.bitrate:void 0,Q}(t,u);if(u._encoderConfig||(u._encoderConfig={}),s!==Qt.LocalVideoLowTrack||!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding)h.scaleResolutionDownBy!=null&&(u._encoderConfig.scaleResolutionDownBy=h.scaleResolutionDownBy);else{const _=u._originMediaStreamTrack;if(!_.canvas)return J.warn("[".concat(u.getTrackId(),"] no canvas on track"));(function(B,Q){const T=B.canvas;Q.width&&(T.width=dc(Q.width)),Q.height&&(T.height=dc(Q.height)),Q.framerate&&(T.stopCapture&&T.stopCapture(),T.stopCapture=hi(()=>{!T.startCapture&&T.stopCapture&&T.stopCapture(),T.startCapture&&T.startCapture()},dc(Q.framerate)))})(_,t)}h.maxBitrate!=null&&(u._encoderConfig.bitrateMax=h.maxBitrate/1e3),h.maxFramerate!=null&&(u._encoderConfig.frameRate&&typeof u._encoderConfig.frameRate=="object"?u._encoderConfig.frameRate.max=h.maxFramerate:u._encoderConfig.frameRate={max:h.maxFramerate}),J.debug("[".concat(u.getTrackId(),"] LowStreamEncoderConfig: , ").concat(JSON.stringify(u._encoderConfig))),await this.connection.updateRtpSenderEncodings(u)}publishLowStream(t){var s=this;return AA(function*(){if(!s.connection||s.state!==ln.Connected)return;const c=yield Tr(s.mutex.lock("Locking from P2PChannel.publishLowStream"));try{const h=s.localTrackMap.get(Qt.LocalVideoTrack);if(!h)throw new tt(Ce.UNEXPECTED_ERROR,"Could not find high stream");if(s.localTrackMap.has(Qt.LocalVideoLowTrack))throw new tt(Ce.UNEXPECTED_ERROR,"[".concat(s.store.clientId,"] Can't publish low stream when stream already publish"));const _=[{track:s.getLowVideoTrack(h.track,t),type:Qt.LocalVideoLowTrack}];if(yield*Qc(gre(s.doPublish(s.connection,_))),h.track.muted||!h.track.enabled){var u;const B=(u=s.localTrackMap.get(Qt.LocalVideoLowTrack))===null||u===void 0?void 0:u.id;B!==void 0&&(yield Tr(s.connection.muteLocal([B])))}}finally{c()}})()}async republish(){this.pendingLocalTracks.length>0&&(J.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await $o(this,Cr.RequestRePublish,this.pendingLocalTracks),this.emit(Cr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[]),this.pendingLocalDataChannels.length>0&&(J.debug("Emit P2PChannelEvents.RequestRePublishDataChannel to republish datachannels."),await $o(this,Cr.RequestRePublishDataChannel,this.pendingLocalDataChannels),this.pendingLocalDataChannels=[]),this._isWaitPcToRePub=!1}async reSubscribe(t){for(let s=this.pendingRemoteTracks.length-1;s>=0;s--){const c=this.pendingRemoteTracks[s],u=c.user,h=c.kind;(h!==rr.AUDIO||u._audio_added_&&u._audioSSRC)&&(h!==rr.VIDEO||u._video_added_&&u._videoSSRC)||this.pendingRemoteTracks.splice(s,1)}if(t)await $o(this,Cr.RequestReSubscribe,this.pendingRemoteTracks);else for(const s of this.pendingRemoteTracks){const c=s.user,u=s.kind;await this.subscribe(c,u,u===rr.VIDEO?c._videoSSRC:c._audioSSRC)}this.pendingRemoteTracks.forEach(s=>{let c=s.user;this.emit(Cr.MediaReconnectEnd,c.uid)}),this.pendingRemoteTracks=[]}async unpublish(t){if(!this.connection||this.state!==ln.Connected)return void t.forEach(u=>{const h=this.pendingLocalTracks.indexOf(u);h!==-1&&this.pendingLocalTracks.splice(h,1)});const s=this.filterTobeUnpublishedTracks(t);if(s.length===0)return;const c=s.find(u=>u[0]==="videoLowTrack");return c&&c[1].track.close(),this.doUnpublish(this.connection,s)}async unpublishDataChannel(t){if(!this.connection||this.state!==ln.Connected)return void t.forEach(c=>{const u=this.pendingLocalDataChannels.indexOf(c);u!==-1&&this.pendingLocalDataChannels.splice(u,1)});const s=this.filterTobeUnpublishedDataChannels(t);return s.length!==0?(s.forEach(c=>{const u=this.localDataChannels.indexOf(c);u!==-1&&this.localDataChannels.splice(u,1)}),this.localDataChannels.length===0&&await this.connection.stopDataChannels(this.store.uid),s.map(c=>c.id)):void 0}async unpublishLowStream(){if(!this.connection||this.state!==ln.Connected)return;const t=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(!t)return;t.track.close();const s=[[Qt.LocalVideoLowTrack,t]];return this.doUnpublish(this.connection,s)}async doUnpublish(t,s){const c=this.createGatewayUnpublishMessage(s);return await t.stopSending(s.map(u=>ir(u,2)[1].id)),this.withdrawLocalTracks(s),this.unbindLocalTrackEvents(s.map(u=>{let h=ir(u,2);return{type:h[0],track:h[1].track}})),s.forEach(u=>{let h=ir(u,1)[0];this.statsCollector.removeLocalStats(h)}),this.localTrackMap.size===0&&this.statsUploader.stopUploadOutboundStats(),c}async subscribeDataChannel(t,s){if(!this.connection||this.state!==ln.Connected)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");const c=s.filter(u=>{var h;return!((h=this.remoteDataChannelMap.get(t))!==null&&h!==void 0&&h.get(u.id))});if(c.length!==0)return await this.connection.createDataChannels(t.uid,c),c.forEach(u=>{var h;this.remoteDataChannelMap.has(t)?(h=this.remoteDataChannelMap.get(t))===null||h===void 0||h.set(u.id,u):this.remoteDataChannelMap.set(t,new Map([[u.id,u]]));const _=this.pendingRemoteDataChannels.findIndex(B=>{let Q=B.user,T=B.id;return Q.uid===t.uid&&T===u.id});_!==-1&&this.pendingRemoteDataChannels.splice(_,1)}),c.map(u=>u.id)}async subscribe(t,s,c,u,h){var _;if(!this.connection||this.state!==ln.Connected)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when peerConnection disconnected.");if((_=this.remoteUserMap.get(t))!==null&&_!==void 0&&_.has(s))return;let B,Q,T,D;const O=this.connection.getPreMedia(c);if(O)J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] preSSRCMap has ssrcId: ").concat(c,", no need to send sub to gateway.")),T=O.transceiver,B=O.track,Q=O.mid,D=O.player,O.firstVideoRender&&this.store.firstVideoFrameDecoded(t.uid,{firstPreRender:O.firstVideoRender});else if(h){const H=h.find(Z=>Z.stream_type===s);if(!H)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot subscribe to remote ".concat(s," for user: ").concat(t.uid," because subscribe answer from gateway does not contain stream_type: ").concat(s,"."));const $=await this.connection.receive(s,H.ssrcs,String(t._uintid),H.attributes);(this.connection instanceof vl||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(T=$.transceiver),B=$.track,Q=$.id}else{const H=await this.connection.receive(s,[{ssrcId:c,rtx:u}],String(t._uintid),void 0);(this.connection instanceof vl||"name"in this.connection&&this.connection.name==="DataChannelConnection")&&(T=H.transceiver),B=H.track,Q=H.id}if(s===rr.AUDIO?(t._audioTrack?t._audioTrack._updateOriginMediaStreamTrack(B):(t._audioTrack=new an(B,t.uid,t._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(t._audioTrack.getTrackId()))),T&&t._audioTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._audioTrack)):(t._videoTrack?t._videoTrack._updateOriginMediaStreamTrack(B):(t._videoTrack=new Fd(B,t.uid,t._uintid,this.store,D),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(t._videoTrack.getTrackId())),t._videoTrack.once($1.PLAY_START,()=>{this.store.firstVideoFrameDecoded(t.uid,{playStart:Date.now()})}),t._videoTrack.once($1.PLAY_END,()=>{this.store.firstVideoFrameDecoded(t.uid,{playEnd:Date.now()}),this.reportVideoFirstFrameRender(t)}),D?t._videoTrack.once($1.FIRST_FRAME_RENDER,()=>{this.store.firstVideoFrameDecoded(t.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(t)}):t._videoTrack.once($1.FIRST_FRAME_DECODED,()=>{this.store.firstVideoFrameDecoded(t.uid,{firstRender:Date.now()}),this.reportVideoFirstFrameRender(t)})),T&&t._videoTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._videoTrack)),T&&de("ENABLE_ENCODED_TRANSFORM")){const H=NF(),$=H.interceptRemoteVideoFrame,Z=H.interceptRemoteAudioFrame;s==rr.VIDEO?await $(T.receiver,{onSei:de("ENABLE_VIDEO_SEI")&&(te=>{var se;return(se=t._videoTrack)===null||se===void 0?void 0:se._onSei(te)}),onFirstFrame:te=>{var se;const ge=Array.from(js(se=this.remoteUserMap).call(se)).find(me=>me._videoSSRC===te.ssrc);ge&&this.store.firstVideoFrameDecoded(ge.uid,{firstReceivedEncodedFrame:Date.now(),frameType:te.type,rtpTimestamp:te.rtpTimestamp,framePayloadType:te.payloadType,frameDataLength:te.length,mimeType:te.mimeType})}}):s==rr.AUDIO&&await Z(T.receiver,{enableTopn:!!de("ENABLE_AUDIO_TOPN"),enableMetadata:!!de("ENABLE_AUDIO_METADATA"),enablePts:!!de("ENABLE_AUDIO_PTS"),onMetadata:te=>{this.safeEmit(Cr.AudioMetadata,te)},onPts:te=>{this.safeEmit(Cr.AudioPts,te)}})}const P=this.remoteUserMap.get(t);P?P.set(s,Q):this.remoteUserMap.set(t,new Map([[s,Q]])),this.statsCollector.addRemoteStats(t.uid),this.statsUploader.startUploadInboundStats();const U=this.pendingRemoteTracks.findIndex(H=>{let $=H.user,Z=H.kind;return $.uid===t.uid&&s===Z});U!==-1&&(this.pendingRemoteTracks.splice(U,1),this.emit(Cr.MediaReconnectEnd,t.uid))}async massSubscribe(t){return this.massSubscribeNoLock(t)}async massSubscribeNoLock(t){if(!this.connection||this.state!==ln.Connected)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribeAll remote users when peerConnection disconnected.");t=t.filter(h=>{var _;let B=h.user,Q=h.mediaType;return!((_=this.remoteUserMap.get(B))!==null&&_!==void 0&&_.has(Q))});const s=[],c=new Map;t.forEach(h=>{if(!this.connection)return;const _=this.connection.getPreMedia(h.ssrcId);if(_){const B=_.track,Q=_.mid,T=_.transceiver,D=_.player;c.set(h.ssrcId,{track:B,id:Q,transceiver:T,player:D})}else s.push(h)});const u=await this.connection.batchReceive(s.map(h=>{let _=h.user;return{kind:h.mediaType,ssrcMsg:[{ssrcId:h.ssrcId,rtx:h.rtxSsrcId}],mslabel:String(_._uintid)}}));s.forEach((h,_)=>{c.set(h.ssrcId,u[_])});for(const h of t){const _=h.user,B=h.mediaType,Q=h.ssrcId,T=c.get(Q);if(!T)return void J.debug("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] cannot find ").concat(_.uid," subscribe data,").concat(B,", ").concat(Q));const D=T.track,O=T.id,P=T.transceiver,U=T.player;if(P&&de("ENABLE_ENCODED_TRANSFORM")){const Z=NF(),te=Z.interceptRemoteVideoFrame,se=Z.interceptRemoteAudioFrame;B==rr.VIDEO?await te(P.receiver,{onSei:de("ENABLE_VIDEO_SEI")&&(ge=>{var me;return(me=_._videoTrack)===null||me===void 0?void 0:me._onSei(ge)}),onFirstFrame:ge=>{var me;const Qe=Array.from(js(me=this.remoteUserMap).call(me)).find(Oe=>Oe._videoSSRC===ge.ssrc);Qe&&this.store.firstVideoFrameDecoded(Qe.uid,{firstReceivedEncodedFrame:Date.now(),frameType:ge.type,rtpTimestamp:ge.rtpTimestamp,framePayloadType:ge.payloadType,frameDataLength:ge.length,mimeType:ge.mimeType})}}):B==rr.AUDIO&&await se(P.receiver,{enableTopn:!!de("ENABLE_AUDIO_TOPN"),enableMetadata:!!de("ENABLE_AUDIO_METADATA"),enablePts:!!de("ENABLE_AUDIO_PTS"),onMetadata:ge=>{this.safeEmit(Cr.AudioMetadata,ge)},onPts:ge=>{this.safeEmit(Cr.AudioPts,ge)}})}if(B===rr.AUDIO?(_._audioTrack?_._audioTrack._updateOriginMediaStreamTrack(D):(_._audioTrack=new an(D,_.uid,_._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(_._audioTrack.getTrackId()))),P&&_._audioTrack._updateRtpTransceiver(P),this.bindRemoteTrackEvents(_,_._audioTrack)):(_._videoTrack?_._videoTrack._updateOriginMediaStreamTrack(D):(_._videoTrack=new Fd(D,_.uid,_._uintid,this.store,U),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(_._videoTrack.getTrackId()))),P&&_._videoTrack._updateRtpTransceiver(P),this.bindRemoteTrackEvents(_,_._videoTrack)),de("ENABLE_VIDEO_SEI")&&P){const Z=NF(),te=Z.interceptRemoteVideoFrame,se=Z.interceptRemoteAudioFrame;B==rr.VIDEO?await te(P.receiver,{onSei:ge=>{var me;(me=_._videoTrack)===null||me===void 0||me._onSei(ge)},onFirstFrame:ge=>{var me;const Qe=Array.from(js(me=this.remoteUserMap).call(me)).find(Oe=>Oe._videoSSRC===ge.ssrc);Qe&&this.store.firstVideoFrameDecoded(Qe.uid,{firstReceivedEncodedFrame:Date.now(),frameType:ge.type,rtpTimestamp:ge.rtpTimestamp,framePayloadType:ge.payloadType,frameDataLength:ge.length,mimeType:ge.mimeType})}}):B==rr.AUDIO&&await se(P.receiver)}const H=this.remoteUserMap.get(_);H?H.set(B,O):this.remoteUserMap.set(_,new Map([[B,O]])),this.statsCollector.addRemoteStats(_.uid),this.statsUploader.startUploadInboundStats();const $=this.pendingRemoteTracks.findIndex(Z=>{let te=Z.user,se=Z.kind;return te.uid===_.uid&&B===se});$!==-1&&(this.pendingRemoteTracks.splice($,1),this.emit(Cr.MediaReconnectEnd,_.uid))}}async unsubscribe(t,s,c){const u=this.pendingRemoteTracks.filter(B=>{let Q=B.user,T=B.kind;return s!==void 0?Q.uid===t.uid&&s===T:Q.uid===t.uid});if(u.forEach(B=>{const Q=this.pendingRemoteTracks.indexOf(B);this.pendingRemoteTracks.splice(Q,1)}),this.connection&&this.state===ln.Connected||c||u.forEach(B=>{let Q=B.kind;var T;if(Q===rr.AUDIO)(T=t._audioTrack)===null||T===void 0||T._destroy(),t._audioTrack=void 0;else if(Q===rr.VIDEO){var D;(D=t._videoTrack)===null||D===void 0||D._destroy(),t._videoTrack=void 0}}),!this.connection||this.state!==ln.Connected)return;const h=this.filterTobeUnSubscribedTracks(t,s);if(h.length===0)return;await this.connection.stopReceiving(h.map(B=>ir(B,2)[1].id));const _=this.createUnsubscribeMessage(h);return this.withdrawRemoteTracks(h),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),h.forEach(B=>{let Q=ir(B,2),T=Q[0],D=Q[1].kind;var O,P;if(D===rr.VIDEO&&T._videoSSRC&&((O=this.connection)===null||O===void 0||O.setStatsRemoteVideoIsReady(T._videoSSRC,!1)),D===rr.VIDEO)this.unbindRemoteTrackEvents(T._videoTrack),c||((P=T._videoTrack)===null||P===void 0||P._destroy(),T._videoTrack=void 0);else if(D===rr.AUDIO){var U;this.unbindRemoteTrackEvents(T._audioTrack),!c&&((U=T._audioTrack)===null||U===void 0||U._destroy(),T._audioTrack=void 0)}}),_}async unsubscribeDataChannel(t,s){if(s.forEach(h=>{const _=this.pendingRemoteDataChannels.findIndex(B=>B.id===h.id);_!==-1&&this.pendingRemoteDataChannels.splice(_,1)}),!this.connection)return;const c=this.filterTobeUnSubscribedDataChannels(t,s);if(c.length===0)return;s.forEach(h=>{h._close()});const u=this.remoteDataChannelMap.get(t);return c.forEach(h=>{u&&u.delete(h.id)}),u&&u.size===0&&(this.remoteDataChannelMap.delete(t),await this.connection.stopDataChannels(t.uid)),c.map(h=>h.id)}async massUnsubscribe(t){return this.massUnsubscribeNoLock(t)}async massUnsubscribeNoLock(t){let s=[];for(const h of t){const _=h.user,B=h.mediaType,Q=this.pendingRemoteTracks.filter(T=>{let D=T.user,O=T.kind;return B!==void 0?D.uid===_.uid&&B===O:D.uid===_.uid});Q.forEach(T=>{const D=this.pendingRemoteTracks.indexOf(T);this.pendingRemoteTracks.splice(D,1)}),s=s.concat(Q)}if(!this.connection||this.state!==ln.Connected)return void s.forEach(h=>{let _=h.user,B=h.kind;var Q;if(B===rr.AUDIO)(Q=_._audioTrack)===null||Q===void 0||Q._destroy(),_._audioTrack=void 0;else if(B===rr.VIDEO){var T;(T=_._videoTrack)===null||T===void 0||T._destroy(),_._videoTrack=void 0}});const c=VA(t).call(t,(h,_)=>{let B=_.user,Q=_.mediaType;const T=this.filterTobeUnSubscribedTracks(B,Q);return h.concat(T)},[]);if(c.length===0)return;await this.connection.stopReceiving(c.map(h=>ir(h,2)[1].id));const u=this.createUnsubscribeAllMessage(c);return this.withdrawRemoteTracks(c),this.remoteUserMap.size===0&&this.statsUploader.stopUploadInboundStats(),c.forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1].kind;var T,D;if(Q===rr.VIDEO&&B._videoSSRC&&((T=this.connection)===null||T===void 0||T.setStatsRemoteVideoIsReady(B._videoSSRC,!1)),Q===rr.VIDEO)this.unbindRemoteTrackEvents(B._videoTrack),(D=B._videoTrack)===null||D===void 0||D._destroy(),B._videoTrack=void 0;else if(Q===rr.AUDIO){var O;this.unbindRemoteTrackEvents(B._audioTrack),(O=B._audioTrack)===null||O===void 0||O._destroy(),B._audioTrack=void 0}}),u}isPreSubScribe(t){return!this.connection||this.state!==ln.Connected?!1:!!this.connection.getPreMedia(t)}async muteRemote(t,s){if(!this.connection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(t.uid,"."));if(!c.get(s))return void J.warning("[".concat(this.store.clientId,"] P2PChannel.muteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."));const u=s===rr.VIDEO?t._videoSSRC:t._audioSSRC;u!==void 0&&this.connection.setStatsRemoteVideoIsReady(u,!1)}async unmuteRemote(t,s){return this.unmuteRemoteNoLock(t,s)}async unmuteRemoteNoLock(t,s){if(!this.connection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(t.uid,"."));c.get(s)||J.warning("[".concat(this.store.clientId,"] P2PChannel.unmuteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."))}addAudioMetadata(t){const s=this.localTrackMap.get(Qt.LocalAudioTrack),c=s&&s.track;c&&c.metadata.push(t)}getAllTracks(t){const s=this.localTrackMap.get(Qt.LocalAudioTrack);if((s==null?void 0:s.track)instanceof ia){const c=s.track;return Array.from(this.localTrackMap.entries()).filter(u=>ir(u,1)[0]!==Qt.LocalAudioTrack).filter(u=>{let h=ir(u,1)[0];return!(t&&h===Qt.LocalVideoLowTrack)}).map(u=>ir(u,2)[1].track).concat(c.trackList)}return Array.from(this.localTrackMap.entries()).filter(c=>{let u=ir(c,1)[0];return!(t&&u===Qt.LocalVideoLowTrack)}).map(c=>ir(c,2)[1].track)}getAllDataChannels(){return this.localDataChannels}reportPublishEvent(t,s,c,u,h){if(t){const B=this.localTrackMap.get(Qt.LocalAudioTrack),Q=u?this.localTrackMap.get(Qt.LocalVideoLowTrack):this.localTrackMap.get(Qt.LocalVideoTrack);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.track.getTrackLabel(),videoName:Q==null?void 0:Q.track.getTrackLabel(),screenshare:(Q==null?void 0:Q.track._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}else{var _;c||(c=[]);const B=c.find(T=>T instanceof po),Q=u?(_=this.localTrackMap.get(Qt.LocalVideoTrack))===null||_===void 0?void 0:_.track:c.find(T=>T instanceof pn);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.getTrackLabel(),videoName:Q==null?void 0:Q.getTrackLabel(),screenshare:(Q==null?void 0:Q._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}}reportSubscribeEvent(t,s,c,u){const h=u===rr.VIDEO?c._videoSSRC:c._audioSSRC;h&&qt.subscribe(this.store.sessionId,{succ:t,ec:s,video:u===rr.VIDEO,audio:u===rr.AUDIO,peerid:c.uid,subscribeRequestid:h,p2pid:this.store.p2pId,eventElapse:_A.measureFromSubscribeStart(this.store.clientId,h),preSsrc:this.isPreSubScribe(h)})}reset(){J.debug("[".concat(this.store.clientId,"] P2PChannel.reset")),this.mutex=new ra("P2PChannel-mutex",this.store.clientId),this.connection&&(this.resetConnection(this.connection),this.connection=void 0),this.shouldForwardP2PCreation&&this.recreateConnection(),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.statsUploader.stopUploadBaseStats(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();const t=this.localTrackMap.get(Qt.LocalAudioTrack);if((t==null?void 0:t.track)instanceof ia){if(t.track.trackList.length>0){const s=t.track;t.track.trackList.forEach(c=>{s.removeAudioTrack(c)})}t.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.iceFailedCount=0,this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.localDataChannels=[],this.remoteDataChannelMap.clear(),this.pendingLocalDataChannels=[],this.pendingRemoteDataChannels=[],this.state=ln.Disconnected}getStats(){var t;return(t=this.connection)===null||t===void 0?void 0:t.getStats()}getRemoteVideoIsReady(t){var s;return((s=this.connection)===null||s===void 0?void 0:s.getRemoteVideoIsReady(t))||!1}getLocalAudioVolume(){const t=this.localTrackMap.get(Qt.LocalAudioTrack);if(t)return t.track.getVolumeLevel()}getLocalVideoSize(){const t=this.localTrackMap.get(Qt.LocalVideoTrack);if(t)return{width:t.track.videoWidth||0,height:t.track.videoHeight||0}}getEncoderConfig(t){const s=this.localTrackMap.get(t);return s&&s.track instanceof pn||s&&s.track instanceof po?s.track._encoderConfig:void 0}getLocalMedia(t){return this.localTrackMap.get(t)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}async hasRemoteMediaWithLock(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}getRemoteMedia(t){var s;const c=Array.from(js(s=this.remoteUserMap).call(s)).find(u=>u.uid===t);return c?{audioTrack:c.audioTrack,audioSSRC:c._audioSSRC,videoTrack:c.videoTrack,videoSSRC:c._videoSSRC}:{}}getAudioLevels(){let t=Array.from(this.remoteUserMap.entries()).map(c=>{let u=ir(c,1)[0];return{uid:u.uid,level:u.audioTrack?100*u.audioTrack._source.getAccurateVolumeLevel():0}});const s=this.localTrackMap.get(Qt.LocalAudioTrack);return s&&t.push({level:100*s.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),t=x1(t).call(t,(c,u)=>c.level-u.level),t}async disconnectForReconnect(){this.connection&&(J.debug("[".concat(this.store.clientId,"] P2PChannel.disconnectForReconnect closing P2PConnection")),this.state=ln.Reconnecting,de("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,1)[0];var c;s._videoTrack&&s._videoTrack._player&&((c=s._videoTrack._player.getVideoElement())===null||c===void 0||c.pause(),s._videoTrack._player.isKeepLastFrame=!0,s._videoTrack._originMediaStreamTrack.stop())}),this.resetConnection(this.connection),this.connection=void 0,this.shouldForwardP2PCreation&&this.recreateConnection(),this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(t=>{var s;let c=ir(t,2),u=c[0],h=c[1].track;switch(u){case Qt.LocalVideoTrack:Et(s=h._hints).call(s,gn.LOW_STREAM)?h.close():this.pendingLocalTracks.push(h);break;case Qt.LocalAudioTrack:h instanceof ia?this.pendingLocalTracks=this.pendingLocalTracks.concat(h.trackList):this.pendingLocalTracks.push(h);case Qt.LocalVideoLowTrack:}}),this.emit(Cr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];Array.from(js(u).call(u)).forEach(h=>{this.setPendingRemoteMedia(c,h)}),this.emit(Cr.MediaReconnectStart,c.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.localDataChannels.length!==0&&(this.localDataChannels.forEach(t=>{this.pendingLocalDataChannels.push(t)}),this.localDataChannels.length=0),this.remoteDataChannelMap.size!==0&&(Array.from(this.remoteDataChannelMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];Array.from(js(u).call(u)).forEach(h=>{this.setPendingRemoteDataChannel(c,h)})}),this.remoteDataChannelMap.clear()),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),J.debug("[".concat(this.store.clientId,"] P2PChannel disconnected, waiting to reconnect.")))}hasPendingRemoteDataChannel(t,s){for(const c of this.pendingRemoteDataChannels){const u=c.user,h=c.id;if((t instanceof vp?t.uid:t)===u.uid&&h===s)return!0}return!1}setPendingRemoteDataChannel(t,s){this.hasPendingRemoteDataChannel(t,s)||this.pendingRemoteDataChannels.push({user:t,id:s})}hasPendingRemoteMedia(t,s){for(const c of this.pendingRemoteTracks){const u=c.user,h=c.kind;if((t instanceof vp?t.uid:t)===u.uid&&s===h)return!0}return!1}setPendingRemoteMedia(t,s){this.hasPendingRemoteMedia(t,s)||this.pendingRemoteTracks.push({user:t,kind:s})}restartICE(t){var s=this;return AA(function*(){if(!s.connection||s.state!==ln.Connected)return;const c=yield Tr(s.mutex.lock("From P2PChannel.restartICE"));let u;try{u=yield Tr(s.connection.restartICE(t));const _=yield Tr(u.next());if(_.done)return;const B=_.value,Q=yield B;switch(cz(s.connection)&&s.reportPCStats(Date.now(),!1,s._pcStatsUploadType),t){case qs.UDP_TCP_RELAY:s._pcStatsUploadType=MA.UDP_TCP_RESTART;break;case qs.TCP_RELAY:s._pcStatsUploadType=MA.TCP_RESTART;break;case qs.RELAY:s._pcStatsUploadType=MA.RELAY_RESTART;break;default:s._pcStatsUploadType=MA.OLD_RESTART}s._isTryConnecting=!0,u.next(Q)}catch(_){var h;(h=u)===null||h===void 0||h.throw(_)}finally{c()}})()}getUplinkNetworkQuality(){if(!this.connection)return 0;const t=this.connection.getStats(),s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalAudioTrack),u=t.videoSend.find(H=>H.ssrc===(s==null?void 0:s.ssrcs[0].ssrcId)),h=t.audioSend.find(H=>H.ssrc===(c==null?void 0:c.ssrcs[0].ssrcId));if(!u||!h)return 1;const _=q1(this,Cr.NeedSignalRTT),B=u?u.rttMs:void 0,Q=h?h.rttMs:void 0,T=B&&Q?(B+Q)/2:B||Q,D=(T&&_?(T+_)/2:T||_)||0,O=100*t.sendPacketLossRate*.7/50+.3*D/1500,P=O<.17?1:O<.36?2:O<.59?3:O<.1?4:5,U=s==null?void 0:s.track;if(U&&U._encoderConfig&&U._hints.indexOf(gn.SCREEN_TRACK)===-1){const H=U._encoderConfig.bitrateMax,$=t.bitrate.actualEncoded;if(H&&$){const Z=(1e3*H-$)/(1e3*H);return t7[Z<.15?0:Z<.3?1:Z<.45?2:Z<.6?3:4][P]}}return P}getDownlinkNetworkQuality(){if(!this.connection)return 0;const t=this.connection.getStats();let s=0;return Array.from(this.remoteUserMap.entries()).forEach(c=>{let u=ir(c,1)[0];const h=u._audioSSRC,_=u._videoSSRC,B=t.audioRecv.find($=>$.ssrc===h),Q=t.videoRecv.find($=>$.ssrc===_);if(!B&&!Q)return void(s+=1);const T=q1(this,Cr.NeedSignalRTT),D=t.rtt,O=(D&&T?(D+T)/2:D||T)||0,P=B?B.jitterMs:void 0,U=t.recvPacketLossRate;let H=.7*U*100/50+.3*O/1500;P&&(H=.6*U*100/50+.2*O/1500+.2*P/400),s+=H<.1?1:H<.17?2:H<.36?3:H<.59?4:5}),this.remoteUserMap.size>0?Math.round(s/this.remoteUserMap.size):s}async muteLocalTrack(t){return new Ut((s,c)=>{this.handleMuteLocalTrack(t,s,c)})}async replaceTrack(t,s){var c;if(J.debug("[".concat(this.store.clientId,"] P2PChannel replaceTrack from [").concat(t.getTrackId(),"] to [").concat(s.getTrackId(),"]")),!this.connection||this.state!==ln.Connected)return;const u=Array.from(this.localTrackMap.entries()).find(_=>{let B=ir(_,2)[1].track;return t===B});if(!u)return;const h=u[0];if(t!==s&&(this.unbindLocalTrackEvents([{track:t,type:h}]),this.bindLocalTrackEvents([{track:s,type:h}]),u[1].track=s),await((c=this.connection)===null||c===void 0?void 0:c.replaceTrack(s,u[1].id)),this.isPlanB){const _=u[1];_.id=s._mediaStreamTrack.id,this.localTrackMap.set(h,_)}if(h===Qt.LocalVideoTrack&&!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding){const _=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(_){const B=t._mediaStreamTrack.clone();_.track._originMediaStreamTrack.stop(),_.track._mediaStreamTrack=B,_.track._originMediaStreamTrack=B,await new Ut((Q,T)=>{this.handleReplaceTrack(_.track,Q,T,!0)})}}}filterTobePublishedTracks(t,s,c){const u=[],h=this.getAllTracks();t=oh(t=t.filter(T=>h.indexOf(T)===-1));let _,B=!1;const Q=this.localTrackMap.get(Qt.LocalAudioTrack);for(const T of t){if(T instanceof pn&&(this.localTrackMap.has(Qt.LocalVideoTrack)||B?new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(u.push({track:T,type:Qt.LocalVideoTrack}),B=!0),s)){const D=this.getLowVideoTrack(T,c);u.push({track:D,type:Qt.LocalVideoLowTrack})}if(T instanceof po)if(Q){const D=Q.track;if(D instanceof ia)az([T]),D.addAudioTrack(T),this.bindLocalAudioTrackEvents(T,!0);else{const O=Az([D,T]);J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will replace audioTrack [").concat(O.getTrackId(),"]")),this.replaceTrack(D,O)}}else _ instanceof ia?(az([T]),_.addAudioTrack(T)):_||!T._useAudioElement&&Si().webAudioMediaStreamDest&&!T._bypassWebAudio?_=Az(_?[T,_]:[T]):_=T}return _&&(J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection will send audioTrack [").concat(_.getTrackId(),"]")),u.push({track:_,type:Qt.LocalAudioTrack})),u}filterTobeUnpublishedTracks(t){const s=[],c=this.getAllTracks();t=oh(t=t.filter(u=>c.indexOf(u)!==-1));for(const u of t){if(u instanceof po){const h=this.localTrackMap.get(Qt.LocalAudioTrack);if(!h)continue;h.track instanceof ia?(h.track.removeAudioTrack(u),this.unbindLocalAudioTrackEvents(u),h.track.trackList.length===0&&(s.push([Qt.LocalAudioTrack,h]),h.track.close())):s.push([Qt.LocalAudioTrack,h])}if(u instanceof pn){const h=this.localTrackMap.get(Qt.LocalVideoTrack);if(!h)continue;s.push([Qt.LocalVideoTrack,h]);const _=this.localTrackMap.get(Qt.LocalVideoLowTrack);_&&s.push([Qt.LocalVideoLowTrack,_])}}return s}filterTobePublishedDataChannels(t){return t=(t=oh(t)).filter(s=>this.localDataChannels.findIndex(c=>c.id===s.id)===-1)}filterTobeUnpublishedDataChannels(t){return t=(t=(t=oh(t)).filter(s=>this.localDataChannels.indexOf(s)!==-1)).filter(s=>s._originDataChannel)}bindLocalTrackEvents(t){t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.addListener(xt.GET_STATS,this.handleGetLocalVideoStats),c.addListener(xt.GET_RTC_STATS,this.handleGetRTCStats),c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.addListener(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.bindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(t,s){t instanceof ia?t.trackList.forEach(c=>{c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),t.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),s||(t.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),t.addListener(xt.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack)))}unbindLocalTrackEvents(t){t||(t=Array.from(this.localTrackMap.entries()).map(s=>{let c=ir(s,2),u=c[0];return{track:c[1].track,type:u}})),t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.off(xt.GET_STATS,this.handleGetLocalVideoStats),c.off(xt.GET_RTC_STATS,this.handleGetRTCStats),c.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.off(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.off(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.unbindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(t){t instanceof ia?t.trackList.forEach(s=>{s.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),s.off(xt.GET_STATS,this.handleGetLocalAudioStats),s.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.off(xt.GET_STATS,this.handleGetLocalAudioStats),t.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),t.off(xt.NEED_REPLACE_MIXING_TRACK,this.handleReplaceMixingTrack),t.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(t,s){s instanceof Fd&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteVideoStats(t))}),s instanceof an&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteAudioStats(t))})}unbindRemoteTrackEvents(t){t&&t.removeAllListeners(xt.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];u.has(rr.AUDIO)&&this.unbindRemoteTrackEvents(c._audioTrack),u.has(rr.VIDEO)&&this.unbindRemoteTrackEvents(c._videoTrack)})}createGatewayPublishMessage(t,s){return t.map((c,u)=>{var h;let _,B,Q=c.track;switch(c.type){case Qt.LocalAudioTrack:_=En.Audio,B={dtx:Q instanceof xd&&Q._config.DTX,hq:!1,lq:!1,stereo:!1,speech:!1};break;case Qt.LocalVideoTrack:_=Et(h=Q._hints).call(h,gn.SCREEN_TRACK)?En.Screen:En.High,B=qh(qh({},ste(Q)),{},{codec:this.store.codec,svc_mode:E9()});break;case Qt.LocalVideoLowTrack:_=En.Low,B=qh(qh({},ste(Q)),{},{codec:this.store.codec,svc_mode:E9()})}return{stream_type:_,attributes:B,ssrcs:s[u]}})}createGatewayUnpublishMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}assignLocalTracks(t,s){t.forEach((c,u)=>{let h=c.track,_=c.type;this.localTrackMap.set(_,{track:h,id:s[u].id,ssrcs:s[u].localSSRC})})}withdrawLocalTracks(t){t.forEach(s=>{let c=ir(s,1)[0];this.localTrackMap.delete(c)})}bindConnectionEvents(t){t.onConnectionStateChange=async s=>{if(J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onConnectionStateChange(").concat(s,")")),this.emit(Cr.PeerConnectionStateChange,s),s==="connecting"&&t instanceof vl&&!Ln()&&de("FIRST_TCP_CANDIDATE")&&window.setTimeout(()=>{s==="connecting"&&t.extendCandidate()},de("FIRST_TCP_CANDIDATE_INTERVAL")),s!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),s==="connected"&&(this._restartTimer&&(window.clearTimeout(this._restartTimer),this._restartTimer=void 0),t instanceof vl&&lre(t,!0),this._isTryConnecting&&this.reportPCStats(Date.now(),!0,this._pcStatsUploadType),this._isTryConnecting=!1,this._isStartRestartIce=!1,this._pcStatsUploadType=MA.DISCONNECTED_OR_FAILED,q1(this,Cr.QueryClientConnectionState)==="CONNECTED"&&this._isWaitPcToRePub)){const c=this.pendingLocalTracks.map(h=>h.getTrackId()),u=this.pendingLocalDataChannels.map(h=>"dc_".concat(h.id));qt.reportApiInvoke(this.store.sessionId,{name:Ti.REPUB_AFTER_PC_CONNECTED,options:c.concat(u),tag:vn.TRACER}).onSuccess(),this.republish()}if(de("NEW_ICE_RESTART")&&t instanceof vl&&!Ln()&&!this._forceTurn&&!this.store.useDcSignal){if(Et(td).call(td,s)){if(this._isStartRestartIce)return;this._isStartRestartIce=!0;const c=h=>{cz(t)&&(J.debug("[".concat(this.store.clientId,"] [P2PChannel] try to restartICE, type is ").concat(h)),q1(this,Cr.QueryClientConnectionState)==="CONNECTED"&&this.emit(Cr.RequestRestartICE,h))},u=()=>{cz(t)&&(this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),J.debug("[".concat(this.store.clientId,"] P2PConnection disconnected timeout, force reconnect")),setTimeout(()=>this.emit(Cr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())};return void(this._restartTimer=window.setTimeout(()=>{dre(t,c,u)},800))}}else{if(s==="disconnected"&&t.iceConnectionState==="disconnected")return setTimeout(()=>{t.iceConnectionState==="disconnected"&&de("ICE_RESTART")&&q1(this,Cr.QueryClientConnectionState)==="CONNECTED"&&this.emit(Cr.RequestRestartICE)},800),void setTimeout(()=>{t.peerConnectionState==="disconnected"&&(J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection disconnected timeout 4000ms, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),this._isTryConnecting=!1,setTimeout(()=>this.emit(Cr.P2PLost),0),this.iceFailedCount+=1,this.requestReconnect())},4e3);s==="failed"&&(J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection state failed, force reconnect")),this.reportPCStats(Date.now(),!1,this._pcStatsUploadType),setTimeout(()=>this.emit(Cr.P2PLost),0),this.iceFailedCount+=1,await this.requestReconnect())}},t.onICEConnectionStateChange=s=>{s!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(s,")")),qt.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:s,tag:vn.TRACER}).onSuccess(),this.emit(Cr.IceConnectionStateChange,s)},t.onICETransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(s,")"))},t.onDTLSTransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(s,")"))},t.onDTLSTransportError=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(s,")"))},t.onFirstAudioDecoded=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(_=>_._audioSSRC===s);var h;u&&(this.store.subscribe(u.uid,"audio",void 0,void 0,void 0,Date.now()),(h=u.audioTrack)===null||h===void 0||h.emit($1.FIRST_FRAME_DECODED),qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_DECODE,ao.FIRST_AUDIO_DECODE,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId}))},t.onFirstAudioReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._audioSSRC===s);u&&qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_RECEIVED,ao.FIRST_AUDIO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId})},t.onFirstVideoDecoded=(s,c,u)=>{var h;const _=Array.from(js(h=this.remoteUserMap).call(h)).find(B=>B._videoSSRC===s);_&&this.store.firstVideoFrameDecoded(_.uid,{firstDecoded:Date.now()}),this.reportVideoFirstFrameDecoded(s,c,u)},t.onFirstVideoRender=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&(this.store.firstVideoFrameDecoded(u.uid,{firstPreRender:Date.now()}),this.reportVideoFirstFrameRender(u),this.emit(Cr.FirstVideoPreRender,u.uid,s))},t.onFirstVideoReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&(this.store.firstVideoFrameDecoded(u.uid,{firstReceived:Date.now()}),qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_VIDEO_RECEIVED,ao.FIRST_VIDEO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId}))},t.onFirstVideoBufferReady=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&this.emit(Cr.FirstVideoBufferReady,u.uid,s)},t.onSelectedLocalCandidateChanged=(s,c)=>{const u=s.candidateType==="relay",h=c.candidateType==="relay";c.candidateType!=="unknown"&&u===h||this.emit(Cr.ConnectionTypeChange,u),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onSelectedRemoteCandidateChanged=(s,c)=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onFirstVideoDecodedTimeout=s=>{this.reportVideoFirstFrameDecoded(s,void 0,void 0,!0)},t.getLocalVideoStats=()=>{const s=this.statsCollector.getLocalVideoTrackStats(),c=this.statsCollector.getRTCStats();return qh(qh({},s),c)},t.onICECandidateError=s=>{this._iceError=s}}fallbackConnection(){J.debug("[".concat(this.store.clientId,"] [P2PChannel] try to fallback connection")),this.state===ln.Connected?(J.debug("[".concat(this.store.clientId,"] [P2PChannel] fallback to websocket but P2PChannel state still connected, disconnect first")),this.disconnectForReconnect()):(this.connection&&this.resetConnection(this.connection),this.shouldForwardP2PCreation&&this.recreateConnection())}resetConnection(t){t instanceof vl&&function(s){AT.delete(s.id),lre(s)}(t),t.close(),this.emit(Cr.PeerConnectionStateChange,"closed"),function(s){s.onConnectionStateChange=void 0,s.onICEConnectionStateChange=void 0,s.onICETransportStateChange=void 0,s.onDTLSTransportStateChange=void 0,s.onDTLSTransportError=void 0,s.onFirstAudioDecoded=void 0,s.onFirstAudioReceived=void 0,s.onFirstVideoDecoded=void 0,s.onFirstVideoReceived=void 0,s.onSelectedLocalCandidateChanged=void 0,s.onSelectedRemoteCandidateChanged=void 0,s.onFirstVideoDecodedTimeout=void 0,s.getLocalVideoStats=void 0}(t),this._isWaitPcToRePub=!1}recreateConnection(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this._p2pBySDPEndPoint=!1,this.connection=Qce(this.store,t),this.emit(Cr.PeerConnectionStateChange,this.connection.peerConnectionState),this.bindConnectionEvents(this.connection)}filterTobeMutedTracks(t){const s=[];if(this.getAllTracks().indexOf(t)===-1)return s;const c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive||s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u&&(s.push(u),u[0]===Qt.LocalVideoTrack)){const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}return s}filterTobeUnmutedTracks(t){const s=[],c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive&&s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u)if(u[0]===Qt.LocalVideoTrack){s.push(u);const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}else s.push(u);return s}createMuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}createUnmuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}filterTobeUnSubscribedTracks(t,s){const c=[],u=this.remoteUserMap.get(t);if(!u)return c;if(s){const h=u.get(s);if(!h)return c;c.push([t,{kind:s,id:h}])}else Array.from(u.entries()).forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1];c.push([t,{kind:B,id:Q}])});return c}filterTobeUnSubscribedDataChannels(t,s){const c=[];return s.forEach(u=>{var h;(h=this.remoteDataChannelMap.get(t))!==null&&h!==void 0&&h.has(u.id)&&c.push(u)}),c}createUnsubscribeMessage(t){const s=[];return t.forEach(c=>{let u=ir(c,2),h=u[0],_=u[1],B=_.kind;switch(_.id,B){case rr.VIDEO:return void(h._videoSSRC&&s.push({stream_type:rr.VIDEO,ssrcId:h._videoSSRC}));case rr.AUDIO:return void(h._audioSSRC&&s.push({stream_type:rr.AUDIO,ssrcId:h._audioSSRC}))}}),s}createUnsubscribeAllMessage(t){const s=new Map;return t.forEach(c=>{let u=ir(c,2),h=u[0],_=u[1].kind;if(s.has(h)){let B=s.get(h);_===rr.VIDEO?B|=jo.Video:B|=jo.Audio,s.set(h,B)}else _===rr.VIDEO?s.set(h,jo.Video):s.set(h,jo.Audio)}),{users:Array.from(s.entries()).map(c=>{let u=ir(c,2),h=u[0],_=u[1];return{stream_id:h.uid,stream_type:_}})}}withdrawRemoteTracks(t){t.forEach(s=>{let c=ir(s,2),u=c[0],h=c[1].kind;const _=this.remoteUserMap.get(u);_&&(_.delete(h),Array.from(_.entries()).length===0&&this.remoteUserMap.delete(u))})}async updateBitrateLimit(t){const s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalVideoLowTrack);s&&(await s.track.setBitrateLimit(t.uplink),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(s.track,u,h,!0)})),c&&t.low_stream_uplink&&(await c.track.setBitrateLimit({max_bitrate:t.low_stream_uplink.bitrate,min_bitrate:t.low_stream_uplink.bitrate||0}),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(c.track,u,h,!0)}))}isP2PDisconnected(){return this.connection?this.connection.peerConnectionState!=="connected":!0}isPreallocation(){return!(!this.connection||!("name"in this.connection)||this.connection.name!=="DataChannelConnection"||this.connection.peerConnectionState==="closed")||this.connection instanceof vl&&this.connection.isPreallocation}isPreSub(){return(this.connection&&"name"in this.connection&&this.connection.name==="DataChannelConnection"&&this.connection.peerConnectionState!=="closed"||this.connection instanceof vl)&&this.connection.isPreSub()}isPreRender(){return this.connection instanceof vl&&this.connection.isPreRender}mapPubResToRemoteConfig(t,s,c){return t.map((u,h)=>{var _;let B=u.stream_type;const Q=(_=s.find(T=>{let D=T.stream_type;return B===D}))===null||_===void 0?void 0:_.attributes;if(Q&&de("DISABLE_SCREEN_SHARE_REMB")){const T=c[h]._hints;(Et(T).call(T,gn.SCREEN_TRACK)||Et(T).call(T,gn.SCREEN_LOW_TRACK))&&(Q.remb=!1,J.debug("disable remb for screen share, hints:",T))}return Q})}async tryToUnmuteAudio(t){for(let c=0;cir(_,2)[1].id)));const h=this.createUnmuteMessage(u);return void await sn(this,Cr.RequestUnmuteLocal,h)}}bindStatsUploaderEvents(){this.statsUploader.requestStats=()=>this.getStats(),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=t=>{var s;return!((s=this.connection)===null||s===void 0||!s.getRemoteVideoIsReady(t))},this.statsUploader.requestUpload=(t,s)=>this.emit(Cr.RequestUpload,t,s),this.statsUploader.requestUploadStats=t=>this.emit(Cr.RequestUploadStats,t),this.statsUploader.requestAllTracks=()=>this.getAllTracks(),this.statsUploader.requestTransportStats=()=>{var t;return{connectState:((t=this.connection)===null||t===void 0?void 0:t.peerConnectionState)||"closed"}}}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await so(Lf(this.dtlsFailedCount,So)),this.emit(Cr.RequestReconnect)}async reconnectP2P(){const t=Array.from(this.localTrackMap.entries()),s=this.createGatewayUnpublishMessage(t);Array.from(this.remoteUserMap.entries()),s.length>0&&await $o(this,Cr.RequestUnpublishForReconnectPC,s),this.disconnectForReconnect(),this.emit(Cr.RequestReconnectPC)}canPublishLowStream(){return this.localTrackMap.has(Qt.LocalVideoTrack)||this.pendingLocalTracks.some(t=>t instanceof pn)}throwIfTrackTypeNotMatch(t){if(t.filter(s=>s instanceof pn).length>1)throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(t.filter(s=>s instanceof po).length>1&&(t.some(s=>s instanceof po&&s._bypassWebAudio)||!Si().webAudioMediaStreamDest))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(const s of t){if(s instanceof pn&&this.pendingLocalTracks.some(c=>c instanceof pn))throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(s instanceof po&&this.pendingLocalTracks.some(c=>c instanceof po)&&(!Si().webAudioMediaStreamDest||s._bypassWebAudio||this.pendingLocalTracks.some(c=>c instanceof po&&c._bypassWebAudio)))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(t,s){var c;const u=!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding,h=qh(qh({},{width:160,height:120,framerate:15,bitrate:50}),s);let _;_=u?t._mediaStreamTrack.clone():dz(t,h);const B=un(8,"track-low-"),Q=new pn(_,qh(qh({},u&&{scaleResolutionDownBy:xX(h,t)}),{},{frameRate:h.framerate,bitrateMax:h.bitrate,bitrateMin:h.bitrate}),void 0,void 0,B);return Q.on(dh.TRANSCEIVER_UPDATED,T=>{t._updateRtpTransceiver(T,xC.LOW_STREAM)}),Q._hints.push(gn.LOW_STREAM),Et(c=t._hints).call(c,gn.SCREEN_TRACK)&&Q._hints.push(gn.SCREEN_LOW_TRACK),t.on("sei-to-send",T=>{Q.emit("sei-to-send",T)}),t.addListener(xt.NEED_CLOSE,()=>{Q.close()}),Q}async globalLock(){return this.mutex.lock("From P2PChannel.globalLock")}async reportPCStats(t,s,c){let u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;if(this.connection&&this.connection instanceof vl){var h,_,B,Q;const T=this.store.keyMetrics.descriptionStart||0,D=this.connection,O=D.iceConnectionState,P=D.dtlsTransportState,U=D.peerConnectionState,H=await this.connection.getSelectedCandidatePair(),$=H.local,Z=H.remote;qt.pcStats(this.store.sessionId,{startTime:T,eventElapse:t-T||0,iceconnectionsate:O,dtlsstate:P,connectionstate:U,intSucc:s?1:2,error:this._iceError||u||"",selectedLocalCandidateProtocol:(h=$==null?void 0:$.protocol)!==null&&h!==void 0?h:"",selectedLocalCandidateType:(_=$.candidateType)!==null&&_!==void 0?_:"",selectedLocalCandidateAddress:"".concat($.address,":").concat($.port),selectedRemoteCandidateProtocol:(B=Z.protocol)!==null&&B!==void 0?B:"",selectedRemoteCandidateType:(Q=Z.candidateType)!==null&&Q!==void 0?Q:"",selectedRemoteCandidateAddress:"".concat(Z.address,":").concat(Z.port),restartCnt:c,preallocation:this.connection.isPreallocation,sdpEndPoint:this._p2pBySDPEndPoint?1:0}),this._iceError=null}}reportVideoFirstFrameRender(t){const s=this.store.keyMetrics,c=s.firstVideoFrameDecoded.find(P=>P.userId===t.uid);if(!c)return;const u=c.isInternalUpload,h=c.isExternalUpload;if(u&&h)return;const _=c.subscribeEnd,B=c.firstPreRender,Q=c.peerPublishDuration,T=c.peerPubStatusMs;let D=c.firstRender,O=D===void 0?0:D;if(_&&(O||B)&&Q&&T){c.isInternalUpload=!0;const P=c.playEnd;P&&(c.isExternalUpload=!0);const U=c.firstPreRender,H=U===void 0?0:U;O=H||O;const $=t.videoTrack,Z={peer:t._uintid,width:($==null?void 0:$._videoWidth)||0,height:($==null?void 0:$._videoHeight)||0,ssrc:t._videoSSRC||0,p2pid:this.store.p2pId,peerPublishDuration:Q,peerPubStatusMs:T,joinChannelStart:s.joinStart||0,preloadStart:s.preloadStart||0,preloadEnd:s.preloadEnd||0,apStart:s.requestAPStart||0,apEnd:s.requestAPEnd||0,suaEnd:s.requestSUAEnd||0,beforeConnect:s.beforeConnect||0,peerReceiver:s.peerReceiver||0,ice:s.iceConnectionEnd||0,pc:s.peerConnectionEnd||0,signalConnected:s.signalConnected||0,joinReq:s.joinReq||0,joinRes:s.joinRep||0,userJoinNotify:c.userJoinNotify||0,videoAddNotify:c.videoAddNotify||0,subscribeStart:c.subscribeStart||0,subscribeEnd:c.subscribeEnd||0,firstReceived:c.firstReceived||0,firstDecoded:c.firstDecoded||0,firstPreRender:H||0,firstRender:P?Math.max(O,P):Math.max(O,_),playStart:c.playStart||0,playEnd:c.playEnd||0,isPreSub:!(!t._videoSSRC||!this.isPreSubScribe(t._videoSSRC)),isPrePc:this.isPreallocation(),isPreInstantVideo:ry(this.store),firstReceivedEncodedFrame:c.firstReceivedEncodedFrame||0,frameType:c.frameType||"",rtpTimestamp:c.rtpTimestamp||0,framePayloadType:c.framePayloadType||0,frameDataLength:c.frameDataLength||0,mimeType:c.mimeType||"",sdpEndPoint:this._p2pBySDPEndPoint};qt.firstXLAPeerFirstVideoFrame(this.store.sessionId,Z)}}reportVideoFirstFrameDecoded(t,s,c,u){var h;const _=Array.from(js(h=this.remoteUserMap).call(h)).find(B=>B._videoSSRC===t);if(_){u||this.store.subscribe(_.uid,"video",void 0,void 0,void 0,void 0,Date.now());const B=this.store.keyMetrics,Q=B.subscribe.find(T=>T.userId===_.uid&&T.type==="video");qt.firstRemoteVideoDecode(this.store.sessionId,Rs.FIRST_VIDEO_DECODE,ao.FIRST_VIDEO_DECODE,{peer:_._uintid,videowidth:s,videoheight:c,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,t),subscribeRequestid:t,p2pid:this.store.p2pId,apEnd:B.requestAPEnd||0,apStart:B.requestAPStart||0,joinGwEnd:B.joinGatewayEnd||0,joinGwStart:B.joinGatewayStart||0,pcEnd:B.peerConnectionEnd||0,pcStart:B.peerConnectionStart||0,subscriberEnd:(Q==null?void 0:Q.subscribeEnd)||0,subscriberStart:(Q==null?void 0:Q.subscribeStart)||0,videoAddNotify:(Q==null?void 0:Q.streamAdded)||0,state:u?1:0,firstFrame:(Q==null?void 0:Q.firstFrame)||0})}}async remoteMediaSsrcChanged(t,s,c){if(!this.connection)return!1;const u=this.remoteUserMap.get(t);if(!u)return!1;const h=u.get(s);if(!h)return!1;const _=await this.connection.getRemoteSSRC(h);return _!==void 0&&_!==c}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1].track;c===Qt.LocalVideoLowTrack?u._updateRtpTransceiver(void 0,xC.LOW_STREAM):u._updateRtpTransceiver(void 0)})}},Pt(Ni.prototype,"startP2PConnection",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"startP2PConnection"),Ni.prototype),Pt(Ni.prototype,"connect",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"connect"),Ni.prototype),Pt(Ni.prototype,"updateRemoteRTPCapabilities",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"updateRemoteRTPCapabilities"),Ni.prototype),Pt(Ni.prototype,"publishDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"publishDataChannel"),Ni.prototype),Pt(Ni.prototype,"unpublish",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unpublish"),Ni.prototype),Pt(Ni.prototype,"unpublishDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unpublishDataChannel"),Ni.prototype),Pt(Ni.prototype,"unpublishLowStream",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unpublishLowStream"),Ni.prototype),Pt(Ni.prototype,"subscribeDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"subscribeDataChannel"),Ni.prototype),Pt(Ni.prototype,"subscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"subscribe"),Ni.prototype),Pt(Ni.prototype,"massSubscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"massSubscribe"),Ni.prototype),Pt(Ni.prototype,"unsubscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unsubscribe"),Ni.prototype),Pt(Ni.prototype,"unsubscribeDataChannel",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unsubscribeDataChannel"),Ni.prototype),Pt(Ni.prototype,"massUnsubscribe",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"massUnsubscribe"),Ni.prototype),Pt(Ni.prototype,"muteRemote",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"muteRemote"),Ni.prototype),Pt(Ni.prototype,"unmuteRemote",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"unmuteRemote"),Ni.prototype),Pt(Ni.prototype,"hasRemoteMediaWithLock",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"hasRemoteMediaWithLock"),Ni.prototype),Pt(Ni.prototype,"disconnectForReconnect",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"disconnectForReconnect"),Ni.prototype),Pt(Ni.prototype,"updateBitrateLimit",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"updateBitrateLimit"),Ni.prototype),Pt(Ni.prototype,"remoteMediaSsrcChanged",[s1],Object.getOwnPropertyDescriptor(Ni.prototype,"remoteMediaSsrcChanged"),Ni.prototype),Ni);function s1(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From P2PChannel.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T0&&(u.firstRecvTs=Date.now()-_);let Q=c.mediaDelay+B;Q<=0?(s.pop(),Cre(c.context,h),Q=0):Q=Math.min(Q,Dce),setTimeout(()=>s.length&&Ire(t),Q)}function Cre(t,s){t.safeEmit(Vr.STREAM_MESSAGE,s.uid,s.payload),t.onStreamMessage&&t.onStreamMessage(s)}function bce(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,c=arguments.length>2?arguments[2]:void 0;if(!t.syncWithAudio)return Cre(c,{uid:t.uid,payload:t.payload});const u="".concat(c.id,"-").concat(t.uid),h=Ez.get(u)||[],_=h.findIndex(D=>t.sendTs>=D.sendTs),B=hre(hre({},t),{},{context:c,mediaDelay:s,recvTs:Date.now()});_===-1?h.push(B):h.splice(_,0,B),Ez.set(u,h);let Q=!1;var T;jF.has(u)?Q=!((T=jF.get(u))===null||T===void 0||!T.isSyncing):jF.set(u,{isSyncing:Q,firstRecvTs:0,firstSendTs:0}),Q||Ire(u)}const Nce=Qi().name;function pre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function fre(t){for(var s=1;s{const _=c.shift();_&&await _(),c.length>0&&u{c.push(async()=>{try{const O=await t(...B);T(O)}catch(O){D(O)}}),u{J.warn("Your browser does not support preloading, this feature be run in a secure environment")},"preload_webcrypto_not_supported");if(!c&&c!==null)throw new tt(Ce.INVALID_PARAMS,"Invalid token: ".concat(c,". If you don not use token, set it to null"));c&&Ra(c,"token",1,2047),Ra(t,"appid",1,2047),fl(s),u&&P2(u);const T=Pd();J.debug("preload channel ".concat(s,", uid is ").concat(u));const D={appId:t,cname:s,token:c||t,uid:typeof u!="string"?u:null,sid:T,proxyServer:h,role:B};let O,P;if(typeof u=="string"){D.stringUid=u;var Q=ir(await Ut.all([Ice(u,{sid:T,appId:t},pz.token),Lte(fre(fre({},D),{},{token:c||t,uid:0}),pz.token)]),2);P=Q[0],O=Q[1],D.uid=P.uid,O.gatewayInfo.uid=D.uid,O.gatewayInfo.res.uid=D.uid}else _&&(D.stringUid=_),O=await Lte(D,pz.token);const U={sid:T,appId:t,cname:s,token:c||t,uid:D.stringUid||u,intUid:D.uid||O.gatewayInfo.uid,stringUid:D.stringUid,ts:Date.now(),sua:P,ap:O};await mz(U),Iz++}catch(T){throw Cz++,function(D){hz||(hz=window.setTimeout(()=>{let P="";JF.forEach((U,H)=>{P+="".concat(H,": ").concat(U," ;")}),qt.reportApiInvoke(null,{name:Ti.PRELOAD,options:{success:Iz,failed:Cz,err:P}}).onError(D),Iz=0,Cz=0,JF.clear(),hz=null},Lce));const O=JF.get(D.code)||0;JF.set(D.code,O+1)}(T),T}}async function _z(t){try{if(de("AP_REQUEST_DETAIL")||de("ENABLE_ROLE_SELECT_EDGE")||de("ENABLE_JOIN_V4"))return;const s=mre(t);if(!s||t.cloudProxyServer!=="disabled")return;const c=await async function(u,h){try{const _=await window.crypto.subtle.importKey("raw",FR(h),"AES-GCM",!1,["decrypt"]),B=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:_re},_,Yr(u));return JSON.parse(window.atob(kd(new Uint8Array(B))))}catch{return}}(s,t.token||t.appId);if(!c||!function(u,h){return u.cname===h.cname&&u.appId===h.appId&&u.token===h.token?h.stringUid?u.stringUid===h.stringUid:typeof h.uid=="number"?u.uid===h.uid:u.uid==h.uid:!1}(c,t))return;if(c&&Date.now()-c.ts=0;T--)if(Q(B[T]))return T;return-1}(c,B=>u in B);if(h===-1)return;const _=c.splice(h,1)[0];return qF(cT,JSON.stringify(c)),_[u]}catch(c){J.warn("Error delete preload info: ".concat(s),c.message),qF(cT,"")}}async function mz(t){let s;try{t.uid&&mre({appId:t.appId,cname:t.cname,token:t.token,uid:t.uid,stringUid:t.stringUid});const c=yre(t),u=await async function(_,B){try{const Q=await window.crypto.subtle.importKey("raw",FR(B),"AES-GCM",!1,["encrypt"]),T=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:_re},Q,Yr(window.btoa(JSON.stringify(_))));return kd(new Uint8Array(T))}catch{return}}(t,t.token||t.appId);if(!u)return;s=Rre(cT);const h=s?JSON.parse(s):[];h.push({[c]:u}),h.length>de("AP_CACHE_NUM")&&h.shift(),qF(cT,JSON.stringify(h))}catch(c){J.warn("Error caching server parameters:",c.message),qF(cT,"")}}function Bz(t){if(t){let s=hm.get(t);s&&(window.clearTimeout(s),s=null,hm.delete(t)),Et(Im).call(Im,t)||t.cloudProxyServer!=="disabled"||Im.push(t)}if(hm.size0){const s=Im.shift();hm.set(s,window.setTimeout(async()=>{const c=s.appId,u=s.cname,h=s.token,_=s.stringUid,B=s.uid,Q=s.proxyServer,T=s.role;try{await Mce(c,u,h,B,Q,_,T),hm.has(s)&&Bz(s)}catch(D){J.warn("update preload failed",D.message),Bre(s)}},de("AP_UPDATE_INTERVAL")))}}function Bre(t){const s=Im.indexOf(t);s!==-1&&Im.splice(s,1);let c=hm.get(t);c&&(window.clearTimeout(c),c=null,hm.delete(t),Bz())}function Sre(t,s){const c=t.sua,u=t.ap;s&&c&&qt.reqUserAccount(t.sid,{lts:c.requestTime,elapse:c.elapse,success:!0,serverAddr:c.url,stringUid:s,uid:t.intUid,errorCode:null,extend:c.req}),qt.reportResourceTiming(t.ap.url,t.sid),qt.joinWebProxyAP(t.sid,{lts:u.requestTime,elapse:u.elapse,sucess:1,apServerAddr:u.url,turnServerAddrList:u.proxyInfo.addresses.map(h=>h.ip).join(","),eventType:"disabled",unilbsServerIds:[fo.CHOOSE_SERVER,fo.CLOUD_PROXY_FALLBACK].toString()}),qt.joinChooseServer(t.sid,{lts:u.requestTime,elapse:u.elapse,succ:!0,csAddr:u.url,opid:u.opid,serverList:u.gatewayInfo.gatewayAddrs.map(h=>h.address),ec:null,cid:u.gatewayInfo.cid.toString(),uid:u.gatewayInfo.uid.toString(),csIp:u.gatewayInfo.csIp,unilbsServerIds:[fo.CHOOSE_SERVER].toString(),isHttp3:u.isHttp3})}function Rre(t){return window.atob(window.localStorage.getItem(t)||"")}function qF(t,s){window.localStorage.setItem(t,window.btoa(s))}function yre(t){let s="".concat(t.appId,"_").concat(t.cname);return typeof t.uid=="string"&&(s+="_s_".concat(t.uid)),typeof t.uid=="number"&&(s+="_".concat(t.uid)),t.token&&(s+="_".concat(t.token)),ze(s)}function Pce(t){let s=function(){const c=Fce.pop();return c?(c.offset=c.limit=0,c):{bytes:new Uint8Array(64),offset:0,limit:0}}();return function(c,u){let h=c.appId;h!==void 0&&(Us(u,10),Np(u,h));let _=c.cid;_!==void 0&&(Us(u,16),Us(u,_));let B=c.cname;B!==void 0&&(Us(u,26),Np(u,B));let Q=c.deviceId;Q!==void 0&&(Us(u,34),Np(u,Q));let T=c.elapse;T!==void 0&&(Us(u,40),Lp(u,T));let D=c.fileSize;D!==void 0&&(Us(u,48),Lp(u,lT(D)));let O=c.height;O!==void 0&&(Us(u,56),Lp(u,lT(O)));let P=c.jpg;P!==void 0&&(Us(u,66),Us(u,P.length),Tre(u,P));let U=c.networkType;U!==void 0&&(Us(u,72),Lp(u,lT(U)));let H=c.osType;H!==void 0&&(Us(u,80),Lp(u,lT(H)));let $=c.requestId;$!==void 0&&(Us(u,90),Np(u,$));let Z=c.sdkVersion;Z!==void 0&&(Us(u,98),Np(u,Z));let te=c.sequence;te!==void 0&&(Us(u,104),Lp(u,lT(te)));let se=c.sid;se!==void 0&&(Us(u,114),Np(u,se));let ge=c.timestamp;ge!==void 0&&(Us(u,120),Lp(u,ge));let me=c.uid;me!==void 0&&(Us(u,128),Us(u,me));let Qe=c.vid;Qe!==void 0&&(Us(u,136),Us(u,Qe));let Oe=c.width;Oe!==void 0&&(Us(u,144),Lp(u,lT(Oe)));let we=c.service;we!==void 0&&(Us(u,152),Us(u,we));let Ne=c.callbackData;Ne!==void 0&&(Us(u,162),Us(u,Ne.length),Tre(u,Ne));let et=c.ticket;et!==void 0&&(Us(u,170),Np(u,et));let st=c.vendorConfigs;st!==void 0&&(Us(u,178),Np(u,st))}(t,s),function(c){let u=c.bytes,h=c.limit;return u.length===h?u:u.subarray(0,h)}(s)}function Uce(t){return function(c){let u={};e:for(;!Gce(c);){let h=S9(c);switch(h>>>3){case 0:break e;case 1:u.code=S9(c);break;case 2:u.msg=wre(c,S9(c));break;case 3:u.requestId=wre(c,S9(c));break;case 4:u.timestamp=Vce(c,!1);break;default:xce(c,7&h)}}return u}({bytes:s=t,offset:0,limit:s.length});var s}function xce(t,s){switch(s){case 0:for(;128&og(t););break;case 2:Sz(t,S9(t));break;case 5:Sz(t,4);break;case 1:Sz(t,8);break;default:throw new Error("Unimplemented type: "+s)}}function lT(t){return{low:t|=0,high:t>>31,unsigned:t>=0}}let Fce=[];function Sz(t,s){if(t.offset+s>t.limit)throw new Error("Skip past limit");t.offset+=s}function Gce(t){return t.offset>=t.limit}function WF(t,s){let c=t.bytes,u=t.offset,h=t.limit,_=u+s;if(_>c.length){let B=new Uint8Array(2*_);B.set(c),t.bytes=B}return t.offset=_,_>h&&(t.limit=_),u}function Qre(t,s){let c=t.offset;if(c+s>t.limit)throw new Error("Read past limit");return t.offset+=s,c}function Tre(t,s){let c=WF(t,s.length);t.bytes.set(s,c)}function wre(t,s){let c=Qre(t,s),u=String.fromCharCode,h=t.bytes,_="�",B="";for(let Q=0;Q=s?B+=_:(T=h[Q+c+1],(192&T)!=128?B+=_:(P=(31&U)<<6|63&T,P<128?B+=_:(B+=u(P),Q++))):(240&U)==224?Q+2>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],(49344&(T|D<<8))!=32896?B+=_:(P=(15&U)<<12|(63&T)<<6|63&D,P<2048||P>=55296&&P<=57343?B+=_:(B+=u(P),Q+=2))):(248&U)==240?Q+3>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],O=h[Q+c+3],(12632256&(T|D<<8|O<<16))!=8421504?B+=_:(P=(7&U)<<18|(63&T)<<12|(63&D)<<6|63&O,P<65536||P>1114111?B+=_:(P-=65536,B+=u(55296+(P>>10),56320+(1023&P)),Q+=3))):B+=_:B+=u(U)}return B}function Np(t,s){let c=s.length,u=0;for(let B=0;B=55296&&Q<=56319&&B+1=55296&&Q<=56319&&B+1>6&31|192:(Q<65536?_[h++]=Q>>12&15|224:(_[h++]=Q>>18&7|240,_[h++]=Q>>12&63|128),_[h++]=Q>>6&63|128),_[h++]=63&Q|128)}}function og(t){return t.bytes[Qre(t,1)]}function vre(t,s){let c=WF(t,1);t.bytes[c]=s}function S9(t){let s,c=0,u=0;do s=og(t),c<32&&(u|=(127&s)<>>=0;s>=128;)vre(t,127&s|128),s>>>=7;vre(t,s)}function Vce(t,s){let c,u=0,h=0,_=0;return c=og(t),u=127&c,128&c&&(c=og(t),u|=(127&c)<<7,128&c&&(c=og(t),u|=(127&c)<<14,128&c&&(c=og(t),u|=(127&c)<<21,128&c&&(c=og(t),h=127&c,128&c&&(c=og(t),h|=(127&c)<<7,128&c&&(c=og(t),h|=(127&c)<<14,128&c&&(c=og(t),h|=(127&c)<<21,128&c&&(c=og(t),_=127&c,128&c&&(c=og(t),_|=(127&c)<<7))))))))),{low:u|h<<28,high:h>>>4|_<<24,unsigned:s}}function Lp(t,s){let c=s.low>>>0,u=(s.low>>>28|s.high<<4)>>>0,h=s.high>>>24,_=h===0?u===0?c<16384?c<128?1:2:c<1<<21?3:4:u<16384?u<128?5:6:u<1<<21?7:8:h<128?9:10,B=WF(t,_),Q=t.bytes;switch(_){case 10:Q[B+9]=h>>>7&1;case 9:Q[B+8]=_!==9?128|h:127&h;case 8:Q[B+7]=_!==8?u>>>21|128:u>>>21&127;case 7:Q[B+6]=_!==7?u>>>14|128:u>>>14&127;case 6:Q[B+5]=_!==6?u>>>7|128:u>>>7&127;case 5:Q[B+4]=_!==5?128|u:127&u;case 4:Q[B+3]=_!==4?c>>>21|128:c>>>21&127;case 3:Q[B+2]=_!==3?c>>>14|128:c>>>14&127;case 2:Q[B+1]=_!==2?c>>>7|128:c>>>7&127;case 1:Q[B]=_!==1?128|c:127&c}}const Dre={},bre={},XF=4294967296,Kce=XF*XF,Nre=Kce/2;Lre(0,!0);const Ore=Lre(0),Hce=R9(0,-2147483648,!1),Yce=R9(-1,2147483647,!1);function Lre(t,s){let c,u,h;return s?(h=0<=(t>>>=0)&&t<256)&&(u=bre[t],u)?u:(c=R9(t,0,!0),h&&(bre[t]=c),c):(h=-128<=(t|=0)&&t<128)&&(u=Dre[t],u)?u:(c=R9(t,t<0?-1:0,!1),h&&(Dre[t]=c),c)}function R9(t,s,c){return{low:0|t,high:0|s,unsigned:!!c}}function Mre(t,s){if(isNaN(t))return Ore;{if(t<=-Nre)return Hce;if(t+1>=Nre)return Yce}return t<0?Ore:R9(t%XF|0,t/XF|0,s)}function kre(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}class Rz extends Cn{get connectionState(){return this._connectionState}set connectionState(s){if(this._connectionState===s)return;const c=this._connectionState;this._connectionState=s,this.emit(rd.CONNECTION_STATE_CHANGE,s,c)}get quality(){return this._quality}set quality(s){this._quality=s>1?1:s<.1?.1:s,this._qualityTimer&&(window.clearTimeout(this._qualityTimer),this._qualityTimer=null),this._quality>=1||(this._qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this._qualityRatio},6e4))}constructor(s){var c;super(),ae(this,"name","AgoraRTCImageModeration"),ae(this,"_connectionState",r1.CONNECTING),ae(this,"_sequence",0),ae(this,"_moderationStartTime",void 0),ae(this,"_workerConnection",void 0),ae(this,"_workerMessageLengthLimit",void 0),ae(this,"_qualityRatio",void 0),ae(this,"_connectInfo",void 0),ae(this,"_cancelTokenSource",on.CancelToken.source()),ae(this,"_retryConfig",void 0),ae(this,"_moderationInterval",void 0),ae(this,"_moderationTimer",null),ae(this,"_moderationMode",1),ae(this,"_quality",1),ae(this,"_qualityTimer",null),ae(this,"_ticket",void 0),ae(this,"_moderationIntervalMinimum",void 0),ae(this,"_uploadFailedNum",0),ae(this,"_uploadNum",0),ae(this,"_uploadTimer",null),ae(this,"_extraInfo",void 0),ae(this,"_vendor",""),ae(this,"_encoder",new TextEncoder),ae(this,"_moderationId",void 0),ae(this,"inspectImage",()=>{if(this.connectionState!==r1.CONNECTED)throw new qe(Ce.OPERATION_ABORTED,"image moderation service connection status is ".concat(this.connectionState));this._moderationTimer&&(window.clearInterval(this._moderationTimer),this._moderationTimer=null),this._moderationTimer=window.setInterval(()=>{this.connectionState===r1.CONNECTED?this.requestToInspectImage():J.debug("[".concat(this._moderationId,"] Moderation State is not connected , "),this.connectionState)},this._moderationInterval{J.debug("[".concat(this._moderationId,"] Moderation operation :").concat(jC[u]," ").concat(h||""))}),this.handleWorkerEvents()}async init(s,c){this.emit(rd.STATE_CHANGE,jC.CONNECT_AP),this._connectInfo=s;const u=this._cancelTokenSource.token;return this._retryConfig=c,new Ut((h,_)=>{this.on(rd.CONNECTION_STATE_CHANGE,(B,Q)=>{B===r1.CONNECTED&&h()}),this.requestAP(s,u,c).then(B=>{this.connectWorker(B)}).catch(B=>{_(B)})})}updateConfig(s){var c;this._moderationInterval=(c=s.interval)!==null&&c!==void 0?c:1e3,s.extraInfo&&(this._extraInfo=this._encoder.encode(s.extraInfo)),s.vendor&&(this._vendor=s.vendor),J.debug("[".concat(this._moderationId,"] updateConfig: ").concat(JSON.stringify(s))),this.connectionState===r1.CONNECTED&&this.inspectImage()}async requestAP(s,c,u){const h=de("WEBCS_DOMAIN").map(T=>"https://".concat(T,"/api/v1")),_=await function(T,D,O,P){let U=D.appId,H=D.areaCode,$=D.cname,Z=D.sid,te=D.token,se=D.uid;oT++;const ge="moderation_plugin",me={service_name:ge,json_body:JSON.stringify({appId:U,areaCode:H,cname:$,command:"allocateEdge",requestId:oT,seq:oT,sid:Z,appToken:te,ts:Date.now(),uid:se+""})};let Qe,Oe,we=T[0];return dl(async()=>{Qe=Date.now();const Ne=await ng(we,{data:me,cancelToken:O,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(Oe=Date.now()-Qe,Ne.code!==0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap error, code"+Ne.code,{retry:!0,responseTime:Oe});throw J.error(ft.toString()),ft}const et=JSON.parse(Ne.json_body);if(et.code!==200){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap error, code: ".concat(et.code,", reason: ").concat(et.reason),{code:et.code,responseTime:Oe});throw J.error(ft.toString()),ft}if(!et.servers||!Array.isArray(et.servers)||et.servers.length===0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap empty server",{code:et.code,responseTime:Oe});throw J.error(ft.toString()),ft}if(!et.servers.some(ft=>!!ft.wss)){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"moderation plugin ap empty port",{code:et.code,responseTime:Oe});throw J.error(ft.toString()),ft}const st=de("IMAGE_MODERATION_WORKER_WSS");if(st)return{addressList:[st],workerToken:et.workerToken,vid:et.vid,responseTime:Oe};const Xt=de("IMAGE_MODERATION_WORKER_HOST");return{addressList:et.servers.map(ft=>{let Ir=ft.address,ui=ft.wss;if(Ir&&ui)return"wss://".concat(Ir.replace(/\./g,"-"),".").concat(Xt,":").concat(ui,"/moderation")}).filter(ft=>!!ft),workerToken:et.workerToken,vid:et.vid,ticket:et.appTicket,responseTime:Oe}},(Ne,et)=>(qt.apworkerEvent(Z,{success:!0,sc:200,serviceName:ge,responseDetail:JSON.stringify(Ne.addressList),firstSuccess:et===0,responseTime:Oe,serverIp:T[et%T.length]}),!1),(Ne,et)=>(qt.apworkerEvent(Z,{success:!1,sc:Ne.data&&Ne.data.code||200,serviceName:ge,responseTime:Oe,serverIp:T[et%T.length]}),!!(Ne.code!==Ce.OPERATION_ABORTED&&Ne.code!==Ce.UNEXPECTED_RESPONSE||Ne.data&&Ne.data.retry)&&(we=T[(et+1)%T.length],!0)),P)}(h,s,c,u);this.emit(rd.STATE_CHANGE,jC.AP_CONNECTED);const B=_.addressList,Q=_.ticket;return this._ticket=Q,B}async connectWorker(s){this.emit(rd.STATE_CHANGE,jC.CONNECT_WORKER),await this._workerConnection.init(s,1e4)}handleWorkerEvents(){this._workerConnection.on(jr.CONNECTED,async()=>{this.emit(rd.STATE_CHANGE,jC.WORKER_CONNECTED,this._workerConnection.url),this.connectionState=r1.CONNECTED}),this._workerConnection.on(jr.CLOSED,()=>{this.connectionState=r1.CLOSED}),this._workerConnection.on(jr.FAILED,()=>{this.connectionState=r1.CLOSED}),this._workerConnection.on(jr.RECONNECTING,()=>{this.connectionState=this.connectionState===r1.CONNECTED?r1.RECONNECTING:r1.CONNECTING}),this._workerConnection.on(jr.ON_MESSAGE,async s=>{if(s.data instanceof ArrayBuffer){const c=Uce(new Uint8Array(s.data));de("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&J.debug("[".concat(this._moderationId,"] Response message for worker of image moderation "),JSON.stringify(c)),this._uploadNum++,c.code===void 0||c.code===0||(this._uploadFailedNum++,J.error("[".concat(this._moderationId,"] Error response from worke, code is ").concat(c.code,", msg is ").concat(c.msg)),this._uploadTimer||(this._uploadTimer=window.setTimeout(()=>{qt.reportApiInvoke(this._connectInfo.sid||null,{name:Ti.IMAGE_MODERATION_UPLOAD,options:[this._uploadFailedNum,this._uploadNum,c.code],tag:vn.TRACER}).onError(new qe(Ce.IMAGE_MODERATION_UPLOAD_FAILED,c.msg)),this._uploadTimer=null},de("IMAGE_MODERATION_UPLOAD_REPORT_INTERVAL"))))}else J.error("[".concat(this._moderationId,"] Unexpected message type from worker"))}),this._workerConnection.on(jr.WILL_RECONNECT,(s,c,u)=>{s==="recover"&&u(s),u("tryNext")}),this._workerConnection.on(jr.REQUEST_NEW_URLS,(s,c)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(s).catch(c)})}static intToLong(s){return{low:s|=0,high:s>>31,unsigned:s>=0}}async requestToInspectImage(){const s=q1(this,rd.CLIENT_LOCAL_VIDEO_TRACK),c={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(s){if(!s.isPlaying)return void(de("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&J.debug("Only the track being played can be inspected"));this._sequence++;const u=await this.generateRequestData(s,c);this._workerConnection.sendMessage(u,!0,!0)}else de("SHOW_IMAGE_MODERATION_WORKER_MESSAGE")&&J.debug("Only the track being published can be inspected")}async generateRequestData(s,c){let u=c.appId,h=c.cname,_=c.cid,B=c.vid,Q=c.sid,T=c.uid;const D=Date.now(),O=await s.getCurrentFrameImage("image/jpeg",this.quality),P=await fU(O,u,h),U=this._sequence+"-"+_+"-"+T+"-"+D+"-"+un(12,""),H={appId:u,cid:_,cname:h,deviceId:"",elapse:Rz.intToLong(Number(D-this._moderationStartTime)),fileSize:O.buffer.byteLength,height:O.height,width:O.width,jpg:P,networkType:6,osType:7,requestId:U,sdkVersion:"4.24.5",sequence:this._sequence,sid:Q,timestamp:Mre(D),uid:T,vid:B,service:this._moderationMode,ticket:this._ticket,callbackData:this._extraInfo,vendorConfigs:this._vendor};this._extraInfo===void 0&&delete H.callbackData;const $=Pce(H);if($.byteLength1024)throw new qe(Ce.INVALID_PARAMS,"config.extraInfo length cannot exceed 1024 bytes");if(t&&t.vendor&&t.vendor.length>1024)throw new qe(Ce.INVALID_PARAMS,"config.vendor length cannot exceed 1024 bytes")}const jce={name:"ImageModeration",create:function(t){let s=t.config;return Pre(s),new Rz(s)}};var Ure,xre,Fre,Gre,Vre,Kre,Hre,Yre,jre,Jre,qre,Wre,Xre,zre,$re,Zre,eie,tie,rie,iie,nie,oie,sie,aie,Aie,cie,lie,die,uie,gie,Eie,hie,Iie,Cie,pie,fie,_ie,mie,Bie,Sie,Rie,yie,Zt;function Qie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function bl(t){for(var s=1;s{if(!Array.isArray(s)){if(!(s instanceof T2))return[s];s=[s]}return s.map(c=>c?Object(c).toString():"null")}}),Fre=yr({argsMap:(t,s)=>(s||(s=[]),Array.isArray(s)||s.trackMediaType!==y2.DATA?(Array.isArray(s)||(s=[s]),s.map(c=>c.getTrackId())):[s.getChannelId()])}),Gre=yr({argsMap:(t,s,c,u)=>[typeof s=="object"?s.uid:s,c,u]}),Vre=yr({argsMap:(t,s,c)=>[s,c]}),Kre=yr({argsMap:(t,s)=>s.map(c=>{let u=c.user,h=c.mediaType;return[u==null?void 0:u.uid,h]})}),Hre=yr({argsMap:(t,s,c,u)=>[typeof s=="object"?s.uid:s,c,u]}),Yre=yr({argsMap:(t,s)=>s.map(c=>{let u=c.user,h=c.mediaType;return{uid:u==null?void 0:u.uid,mediaType:h}})}),jre=yr(),Jre=yr(),qre=yr(),Wre=yr(),Xre=yr(),zre=yr(),$re=yr(),Zre=yr(),eie=yr(),tie=yr(),rie=yr(),iie=yr(),nie=yr(),oie=yr(),sie=yr(),aie=yr(),Aie=yr({argsMap:(t,s)=>[s]}),cie=yr(),lie=yr(),die=yr(),uie=yr(),gie=yr(),Eie=yr(),hie=yr(),Iie=yr(),Cie=yr({argsMap:(t,s)=>(Array.isArray(s)||(s=[s]),[JSON.stringify(s)])}),pie=yr(),fie=yr(),_ie=yr(),mie=yr(),Bie=yr(),Sie=yr(),Rie=yr({reportResult:!0}),yie=yr(),Zt=class extends Cn{get connectionState(){return this._gateway.state}get remoteUsers(){return this._users}get localTracks(){return this._p2pChannel.getAllTracks(!0)}get uid(){return this._uid}get channelName(){return this._channelName}get localDataChannels(){return this._p2pChannel.getAllDataChannels()}get mode(){return this._config.mode}get role(){var t;return((t=this._config)===null||t===void 0?void 0:t.role)||"audience"}get codec(){return this._config.codec}get audioCodec(){return this._config.audioCodec||"opus"}get isStringUID(){return!!this._joinInfo&&!!this._joinInfo.stringUid}get __className__(){return"Client"}constructor(t,s){let c;if(super(),ae(this,"store",void 0),ae(this,"_uid",void 0),ae(this,"_channelName",void 0),ae(this,"_uintUid",void 0),ae(this,"_users",[]),ae(this,"_config",void 0),ae(this,"_clientId",void 0),ae(this,"_appId",void 0),ae(this,"_sessionId",null),ae(this,"_key",void 0),ae(this,"_rtmConfig",{}),ae(this,"_joinInfo",void 0),ae(this,"_gateway",void 0),ae(this,"_statsCollector",void 0),ae(this,"_configDistribute",void 0),ae(this,"_leaveMutex",void 0),ae(this,"_publishMutex",void 0),ae(this,"_renewTokenMutex",void 0),ae(this,"_subscribeMutex",void 0),ae(this,"_encryptionMode","none"),ae(this,"_encryptionSecret",null),ae(this,"_encryptionSalt",null),ae(this,"_encryptDataStream",!1),ae(this,"_encryptDataStreamKey",null),ae(this,"_encryptDataStreamIv",null),ae(this,"_proxyServer",void 0),ae(this,"_turnServer",{servers:[],mode:"auto"}),ae(this,"_cloudProxyServerMode","disabled"),ae(this,"_isDualStreamEnabled",!1),ae(this,"_defaultStreamFallbackType",void 0),ae(this,"_lowStreamParameter",void 0),ae(this,"_streamFallbackTypeCacheMap",new Map),ae(this,"_remoteStreamTypeCacheMap",new Map),ae(this,"_axiosCancelSource",on.CancelToken.source()),ae(this,"_audioVolumeIndicationInterval",void 0),ae(this,"_networkQualityInterval",void 0),ae(this,"_userOfflineTimeout",void 0),ae(this,"_streamRemovedTimeout",void 0),ae(this,"_rteDetailInterval",void 0),ae(this,"_liveTranscodeStreamingClient",void 0),ae(this,"_liveRawStreamingClient",void 0),ae(this,"_channelMediaRelayClient",void 0),ae(this,"_networkQualitySensitivity","normal"),ae(this,"_p2pChannel",void 0),ae(this,"_useLocalAccessPoint",!1),ae(this,"_setLocalAPVersion",void 0),ae(this,"_joinAndNotLeaveYet",!1),ae(this,"_numberOfJoinCount",0),ae(this,"_joinResponse",null),ae(this,"_remoteDefaultVideoStreamType",void 0),ae(this,"_inspect",void 0),ae(this,"_moderation",void 0),ae(this,"_license",void 0),ae(this,"_pendingPublishedUsers",[]),ae(this,"ntpAlignErrorCount",0),ae(this,"remoteInboundOffset",0),ae(this,"_peerConnectionState",void 0),ae(this,"_pendingRtpCapabilityChange",void 0),ae(this,"_fallbackServerInfo",void 0),ae(this,"_dualStreamMode",void 0),ae(this,"_handleLocalTrackEnable",(h,_,B)=>{this.publish(h,!1).then(_).catch(B)}),ae(this,"_handleLocalTrackDisable",(h,_,B)=>{this.unpublish(h).then(_).catch(B)}),ae(this,"_handleUserOnline",h=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h.uid,this.channelName))return void J.debug("[".concat(h.uid,"] will be ignored in local"));this.isStringUID&&typeof h.uid!="string"&&J.error("[".concat(this._clientId,"] StringUID is Mixed with UintUID"));const _=this._users.find(B=>B.uid===h.uid);if(_)_._trust_in_room_=!0,_._is_pre_created&&(_._is_pre_created=!1,this.safeEmit(Vr.USER_JOINED,_));else{const B=new vp(h.uid,h.uint_id||h.uid);this._users.push(B),J.debug("[".concat(this._clientId,"] user online"),h.uid),this.store.firstVideoFrameDecoded(B.uid,{userJoinNotify:Date.now()}),this.safeEmit(Vr.USER_JOINED,B)}}),ae(this,"_handleUserOffline",h=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h.uid,this.channelName))return;const _=this._users.find(B=>B.uid===h.uid);_&&(this._handleRemoveStream(h),this._handleRemoveDataChannels(h),_._audio_pre_subscribed||_._video_pre_subscribed?_._is_pre_created=!0:UR(this._users,_),this._remoteStreamTypeCacheMap.delete(_.uid),this._streamFallbackTypeCacheMap.delete(_.uid),J.debug("[".concat(this._clientId,"] user offline"),h.uid,"reason:",h.reason),this.safeEmit(Vr.USER_LEAVED,_,h.reason))}),ae(this,"_handleAddAudioOrVideoStream",(h,_,B,Q,T,D,O,P)=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(_,this.channelName))return;const U=this._users.find(Z=>Z.uid===_);if(!U)return void J.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));J.debug("[".concat(this._clientId,"] stream added with uid ").concat(_,", type ").concat(h)),this.store.subscribe(U.uid,h,void 0,void 0,void 0,Date.now()),h==="video"&&this.store.firstVideoFrameDecoded(U.uid,{videoAddNotify:Date.now()});const H=h==="audio"?U.hasAudio:U.hasVideo;U._uintid||(U._uintid=D||_),h==="audio"?U._trust_audio_stream_added_state_=!0:U._trust_video_stream_added_state_=!0,h==="audio"?(U._audio_added_=!0,B!==void 0&&(U._audioSSRC=B),Q!==void 0&&(U._cname=Q),O&&(U._audioOrtc=O)):(U._video_added_=!0,B!==void 0&&(U._videoSSRC=B),Q!==void 0&&(U._cname=Q),P!==void 0&&(U._rtxSsrcId=P),O&&(U._videoOrtc=O)),(h==="audio"?U.hasAudio:U.hasVideo)&&!H&&(J.info("[".concat(this._clientId,"] remote user ").concat(U.uid," published ").concat(h)),this.safeEmit(Vr.USER_PUBLISHED,U,h)),h==="video"?qt.onGatewayStream(this._sessionId,Rs.ON_ADD_VIDEO_STREAM,ao.ON_ADD_VIDEO_STREAM,{peer:D||_,ssrc:U._videoSSRC}):qt.onGatewayStream(this._sessionId,Rs.ON_ADD_AUDIO_STREAM,ao.ON_ADD_AUDIO_STREAM,{peer:D||_,ssrc:U._audioSSRC}),this._p2pChannel.remoteMediaSsrcChanged(U,h,B).then(Z=>{if(Z&&(J.debug("[".concat(this._clientId,"] resubscribe ").concat(h," for user ").concat(U.uid," after rejoin because SSRC id changed.")),this._p2pChannel instanceof Em))return this._p2pChannel.unsubscribe(U,h,!0).then(()=>this._subscribe(U,h,!0).catch(te=>{J.error("[".concat(this._clientId,"] resubscribe error"),te.toString())}))}),this._p2pChannel.hasPendingRemoteMedia(U,h)&&(J.debug("[".concat(this._clientId,"] resubscribe ").concat(h," for user ").concat(U.uid," after reconnect.")),this._subscribe(U,h,!0).catch(Z=>{J.error("[".concat(this._clientId,"] resubscribe error"),Z.toString())}));const $=this._getEncodingName(T);h==="video"&&($==="unknown"?this.safeEmit(Vr.AV1_DECODABLE_RESULT,!1):Zs()||Ia()||($==null?void 0:$.toLocaleLowerCase())!==Qn.av1||Ece().then(Z=>{de("FLS_ENABLE_AV1_DECODE_DETECT")&&this.safeEmit(Vr.AV1_DECODABLE_RESULT,Z),Z||this._gateway.downgradeCodec($)}))}),ae(this,"_handleRemoveStream",h=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h.uid,this.channelName))return;const _=this._users.find(Q=>Q.uid===h.uid);if(!_)return void J.warning("[".concat(this._clientId,"] can not find target user!(on_remove_stream)"));J.debug("[".concat(this._clientId,"] stream removed with uid ").concat(h.uid));let B=()=>{};_.hasAudio&&_.hasVideo?B=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished audio track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"audio"),J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished video track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"video")}:_.hasVideo?B=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished video track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"video")}:_.hasAudio&&(B=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(_.uid," unpublished audio track")),this.safeEmit(Vr.USER_UNPUBLISHED,_,"audio")}),_._video_pre_subscribed||_._audio_pre_subscribed||(_._trust_audio_stream_added_state_=!0,_._trust_video_stream_added_state_=!0,_._audio_added_=!1,_._video_added_=!1,this._p2pChannel instanceof Em&&this._p2pChannel.unsubscribe(_).then(Q=>{if(Q)return this._gateway.unsubscribe(Q,_.uid)}),_._audioSSRC=void 0,_._videoSSRC=void 0,_._audioOrtc=void 0,_._videoOrtc=void 0,_._rtxSsrcId=void 0),qt.onGatewayStream(this._sessionId,Rs.ON_REMOVE_STREAM,ao.ON_REMOVE_STREAM,{peer:h.uint_id||h.uid}),B()}),ae(this,"_handleSetStreamLocalEnable",(h,_,B)=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(_,this.channelName))return;const Q=this._users.find(O=>O.uid===_);if(!Q)return void J.error("[".concat(this._clientId,"] can not find target user!(disable_local)"));J.debug("[".concat(this._clientId,"] local ").concat(h," ").concat(B?"enabled":"disabled"," with uid ").concat(_));const T=h==="audio"?Q.hasAudio:Q.hasVideo;if(h==="audio"){Q._trust_audio_enabled_state_=!0;const O=Q._audio_enabled_;if(Q._audio_enabled_=B,Q._audio_enabled_===O)return;{const P=Q._audio_enabled_?"enable-local-audio":"disable-local-audio";J.debug("[".concat(this._clientId,"] user-info-updated, uid: ").concat(_,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,_,P)}}else{Q._trust_video_enabled_state_=!0;const O=Q._video_enabled_;if(Q._video_enabled_=B,Q._video_enabled_===O)return;{const P=Q._video_enabled_?"enable-local-video":"disable-local-video";J.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(_,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,_,P)}}const D=h==="audio"?Q.hasAudio:Q.hasVideo;return T!==D?!T&&D?(J.info("[".concat(this._clientId,"] remote user ").concat(_," published ").concat(h)),void this.safeEmit(Vr.USER_PUBLISHED,Q,h)):(h==="video"&&Q._videoTrack&&Q._videoTrack._destroy(),h==="audio"&&Q._audioTrack,this._p2pChannel.muteRemote(Q,h),J.info("[".concat(this._clientId,"] remote user ").concat(_," unpublished ").concat(h)),void this.safeEmit(Vr.USER_UNPUBLISHED,Q,h)):void 0}),ae(this,"_handleMuteStream",(h,_,B)=>{if(de("BLOCK_LOCAL_CLIENT")&&Lu(h,this.channelName))return;J.debug("[".concat(this._clientId,"] receive mute message"),h,_,B);const Q=this._users.find(O=>O.uid===h);if(!Q)return void J.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(h));const T=_==="audio"?Q.hasAudio:Q.hasVideo;if(_==="audio"){Q._trust_audio_mute_state_=!0;const O=Q._audio_muted_;if(Q._audio_muted_=B,Q._audio_muted_===O)return;{const P=Q._audio_muted_?"mute-audio":"unmute-audio";J.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(h,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,h,P)}}else{Q._trust_video_mute_state_=!0;const O=Q._video_muted_;if(Q._video_muted_=B,Q._video_muted_===O)return;{const P=Q._video_muted_?"mute-video":"unmute-video";J.debug("[".concat(this._clientId,"] user-info-update, uid: ").concat(h,", msg: ").concat(P)),this.safeEmit(Vr.USER_INFO_UPDATED,h,P)}}const D=_==="audio"?Q.hasAudio:Q.hasVideo;if(T!==D){if(!T&&D)return(_==="audio"?Q._audioSSRC:Q._videoSSRC)?(J.info("[".concat(this._clientId,"] remote user ").concat(h," published ").concat(_)),void this.safeEmit(Vr.USER_PUBLISHED,Q,_)):void J.warning("[".concat(this._clientId,"] remote user ").concat(h," receive ").concat(_," unmute message before add stream message, ").concat(_," SSRC doesn't exist yet."));_==="video"&&Q._videoTrack&&!Q._video_pre_subscribed&&Q._videoTrack._destroy(),_==="audio"&&Q._audioTrack,this._p2pChannel.muteRemote(Q,_),J.info("[".concat(this._clientId,"] remote user ").concat(h," unpublished ").concat(_)),this.safeEmit(Vr.USER_UNPUBLISHED,Q,_)}}),ae(this,"_handleP2PLost",async h=>{J.debug("[".concat(this._clientId,"] receive p2p lost"),h),parseInt(h.p2pid,10)===this.store.p2pId?await this._p2pChannel.requestReconnect():J.warning("[".concat(this._clientId,"] P2PLost stream not found"),h)}),ae(this,"_handleTokenWillExpire",()=>{J.debug("[".concat(this._clientId,"] received message onTokenPrivilegeWillExpire")),this.safeEmit(Vr.ON_TOKEN_PRIVILEGE_WILL_EXPIRE)}),ae(this,"_handleBeforeUnload",h=>{h.type==="beforeunload"&&h.returnValue!==void 0&&h.returnValue!==""||(this.leave(),J.info("[".concat(this._clientId,"] auto leave onbeforeunload or pagehide")))}),ae(this,"_handleUpdateNetworkQuality",()=>{if(this._networkQualitySensitivity==="normal")return;if(navigator&&navigator.onLine!==void 0&&!navigator.onLine)return void this.safeEmit(Vr.NETWORK_QUALITY,{downlinkNetworkQuality:6,uplinkNetworkQuality:6});const h={downlinkNetworkQuality:0,uplinkNetworkQuality:0};h.uplinkNetworkQuality=this._p2pChannel.getUplinkNetworkQuality(),h.downlinkNetworkQuality=this._p2pChannel.getDownlinkNetworkQuality(),this.safeEmit(Vr.NETWORK_QUALITY,h)}),ae(this,"_handleP2PAddAudioOrVideoStream",(h,_,B,Q)=>{const T=this._users.find(O=>O.uid===_);if(!T)return void J.error("[".concat(this._clientId,"] can not find target user!(on_add_stream)"));J.debug("[".concat(this._clientId,"] stream added with uid ").concat(_,", type ").concat(h)),this.store.subscribe(T.uid,h,void 0,void 0,void 0,Date.now());const D=h==="audio"?T.hasAudio:T.hasVideo;h==="audio"?T._trust_audio_stream_added_state_=!0:T._trust_video_stream_added_state_=!0,h==="audio"?(T._audio_added_=!0,B!==void 0&&(T._audioSSRC=B),Q!==void 0&&(T._audioMid=Q)):(T._video_added_=!0,B!==void 0&&(T._videoSSRC=B),Q!==void 0&&(T._videoMid=Q)),(h==="audio"?T.hasAudio:T.hasVideo)&&!D&&(J.info("[".concat(this._clientId,"] remote user ").concat(T.uid," published ").concat(h)),this.safeEmit(Vr.USER_PUBLISHED,T,h)),this._p2pChannel.hasPendingRemoteMedia(T,h)&&(J.debug("[".concat(this._clientId,"] resubscribe ").concat(h," for user ").concat(T.uid," after reconnect.")),this._subscribe(T,h,!0).catch(O=>{J.error("[".concat(this._clientId,"] resubscribe error"),O.toString())}))}),this._config=t,this._clientId=s||un(5,"client-"),this.store=new class{constructor(h,_,B,Q,T){Dr(this,"state",void 0),this.state={codec:h,audioCodec:_,mode:B,clientId:Q,sessionId:null,p2pId:0,dcId:0,pubId:0,subId:0,keyMetrics:{publish:[],subscribe:[],firstVideoFrameDecoded:[]},joinChannelServiceRecords:[],cloudProxyServerMode:"disabled",useP2P:!1,p2pTransport:Ah.Default,hasStartJoinChannel:!1,isABTestSuccess:!1,rteUrl:void 0,rteSid:void 0,autoSubscribe:!1,enableInstantMuteRestore:!1,networkQualityProbe:!1,useDcSignal:!!T,preSubOptions:void 0}}dispatch(h){this.state=function(_,B){switch(B.type){case Fr.SET_SESSION_ID:return wt(wt({},_),{},{sessionId:B.sessionId});case Fr.SET_P2P_ID:return wt(wt({},_),{},{p2pId:B.p2pId});case Fr.SET_UID:return wt(wt({},_),{},{uid:B.uid});case Fr.SET_INT_UID:return wt(wt({},_),{},{intUid:B.intUid});case Fr.SET_PUB_ID:return wt(wt({},_),{},{pubId:B.pubId});case Fr.KEY_METRIC_CLIENT_CREATED:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{clientCreated:B.metric})});case Fr.KEY_METRIC_JOIN_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinStart:B.metric})});case Fr.KEY_METRIC_PRELOAD_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{preloadStart:B.metric})});case Fr.KEY_METRIC_PRELOAD_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{preloadEnd:B.metric})});case Fr.KEY_METRIC_JOIN_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinEnd:B.metric})});case Fr.KEY_METRIC_REQUEST_AP_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{requestAPStart:B.metric})});case Fr.KEY_METRIC_REQUEST_AP_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{requestAPEnd:B.metric})});case Fr.KEY_METRIC_REQUEST_SUA_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{requestSUAEnd:B.metric})});case Fr.KEY_METRIC_BEFORE_CONNECT:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{beforeConnect:B.metric})});case Fr.KEY_METRIC_PEER_RECEIVER:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{peerReceiver:B.metric})});case Fr.KEY_METRIC_SIGNAL_CONNECTED:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{signalConnected:B.metric})});case Fr.KEY_METRIC_JOIN_REQ:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinReq:B.metric})});case Fr.KEY_METRIC_JOIN_REP:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinRep:B.metric})});case Fr.KEY_METRIC_JOIN_GATEWAY_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinGatewayStart:B.metric})});case Fr.KEY_METRIC_JOIN_GATEWAY_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{joinGatewayEnd:B.metric})});case Fr.KEY_METRIC_PEER_CONNECTION_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{peerConnectionStart:B.metric})});case Fr.KEY_METRIC_PEER_CONNECTION_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{peerConnectionEnd:B.metric})});case Fr.KEY_METRIC_DESCRIPTION_START:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{descriptionStart:B.metric})});case Fr.KEY_METRIC_SIGNAL_CHANNEL_OPEN:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{signalChannelOpen:B.metric})});case Fr.KEY_METRIC_ICE_CONNECTION_END:return wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{iceConnectionEnd:B.metric})});case Fr.KEY_METRIC_PUBLISH:{const Q=_.keyMetrics.publish,T=Q.findIndex(D=>D.trackId===B.metric.trackId);return T!==-1?(Q[T]=wt(wt({},Q[T]),B.metric),wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{publish:[...Q]})})):wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{publish:[..._.keyMetrics.publish,B.metric]})})}case Fr.KEY_METRIC_SUBSCRIBE:{const Q=_.keyMetrics.subscribe,T=Q.findIndex(D=>D.userId===B.metric.userId&&D.type===B.metric.type);return T!==-1?(Q[T]=wt(wt({},Q[T]),B.metric),wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{subscribe:[...Q]})})):wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{subscribe:[..._.keyMetrics.subscribe,B.metric]})})}case Fr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED:{const Q=_.keyMetrics.firstVideoFrameDecoded,T=Q.findIndex(D=>D.userId===B.metric.userId);return T!==-1?(Q[T]=wt(wt({},Q[T]),B.metric),wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{firstVideoFrameDecoded:[...Q]})})):wt(wt({},_),{},{keyMetrics:wt(wt({},_.keyMetrics),{},{firstVideoFrameDecoded:[..._.keyMetrics.firstVideoFrameDecoded,B.metric]})})}case Fr.RESET_FIRST_VIDEO_FRAME_DECODED:return _.keyMetrics.firstVideoFrameDecoded=[],_;case Fr.SET_CLOUD_PROXY_SERVER_MODE:return _.cloudProxyServerMode=B.mode,_;case Fr.RECORD_JOIN_CHANNEL_SERVICE:return typeof B.index!="number"?_.joinChannelServiceRecords=[..._.joinChannelServiceRecords,B.record]:(_.joinChannelServiceRecords[B.index]=wt(wt({},_.joinChannelServiceRecords[B.index]),B.record),_.joinChannelServiceRecords=[..._.joinChannelServiceRecords]),_;case Fr.RESET_JOIN_CHANNEL_SERVICE_RECORDS:return _.joinChannelServiceRecords=[],_;case Fr.RESET_KEY_METRICS:return _.keyMetrics={publish:[],subscribe:[],firstVideoFrameDecoded:[]},_;case Fr.SET_USE_P2P:return wt(wt({},_),{},{useP2P:B.val});case Fr.SET_TRANSPORT_TYPE:return wt(wt({},_),{},{p2pTransport:B.val});case Fr.SET_RTE_URL:return wt(wt({},_),{},{rteUrl:B.rteUrl});case Fr.SET_RTE_SID:return wt(wt({},_),{},{rteSid:B.rteSid});default:return _}}(this.state,h)}get useDcSignal(){return this.state.useDcSignal}set useDcSignal(h){this.state.useDcSignal=h}set autoSubscribe(h){this.state.autoSubscribe=h}get autoSubscribe(){return this.state.autoSubscribe}set enableInstantMuteRestore(h){this.state.enableInstantMuteRestore=h}get enableInstantMuteRestore(){return this.state.enableInstantMuteRestore}set networkQualityProbe(h){this.state.networkQualityProbe=h}get networkQualityProbe(){return this.state.networkQualityProbe}set preSubOptions(h){this.state.preSubOptions=h}get preSubOptions(){return this.state.preSubOptions}set sessionId(h){this.dispatch({type:Fr.SET_SESSION_ID,sessionId:h})}get sessionId(){return this.state.sessionId}set rteUrl(h){this.dispatch({type:Fr.SET_RTE_URL,rteUrl:h})}get rteUrl(){return this.state.rteUrl}set rteSid(h){this.dispatch({type:Fr.SET_RTE_SID,rteSid:h})}get rteSid(){return this.state.rteSid}set cid(h){this.state.cid=h}get cid(){return this.state.cid}set codec(h){this.state.codec=h}get codec(){return this.state.codec}get mode(){return this.state.mode}get audioCodec(){return this.state.audioCodec}get clientId(){return this.state.clientId}set p2pId(h){this.dispatch({type:Fr.SET_P2P_ID,p2pId:h})}get p2pId(){return this.state.p2pId}set dcId(h){this.dispatch({type:Fr.SET_DC_ID,dcId:h})}get dcId(){return this.state.dcId}set uid(h){this.dispatch({type:Fr.SET_UID,uid:h})}get uid(){return this.state.uid}set intUid(h){this.dispatch({type:Fr.SET_INT_UID,intUid:h})}get intUid(){return this.state.intUid}set pubId(h){this.dispatch({type:Fr.SET_PUB_ID,pubId:h})}get pubId(){return this.state.pubId}set cloudProxyServerMode(h){this.dispatch({type:Fr.SET_CLOUD_PROXY_SERVER_MODE,mode:h})}get cloudProxyServerMode(){return this.state.cloudProxyServerMode}set useP2P(h){this.dispatch({type:Fr.SET_USE_P2P,val:h})}get useP2P(){return this.state.useP2P}set p2pTransport(h){this.dispatch({type:Fr.SET_TRANSPORT_TYPE,val:h})}get p2pTransport(){return this.state.p2pTransport}set hasStartJoinChannel(h){this.state.hasStartJoinChannel=h}get hasStartJoinChannel(){return this.state.hasStartJoinChannel}set isABTestSuccess(h){this.state.isABTestSuccess=h}get isABTestSuccess(){return this.state.isABTestSuccess}clientCreated(){this.dispatch({type:Fr.KEY_METRIC_CLIENT_CREATED,metric:Date.now()})}joinStart(){this.dispatch({type:Fr.KEY_METRIC_JOIN_START,metric:Date.now()})}preloadStart(){this.dispatch({type:Fr.KEY_METRIC_PRELOAD_START,metric:Date.now()})}preloadEnd(){this.dispatch({type:Fr.KEY_METRIC_PRELOAD_END,metric:Date.now()})}joinEnd(){this.dispatch({type:Fr.KEY_METRIC_JOIN_END,metric:Date.now()})}requestAPStart(){this.dispatch({type:Fr.KEY_METRIC_REQUEST_AP_START,metric:Date.now()})}requestAPEnd(){this.dispatch({type:Fr.KEY_METRIC_REQUEST_AP_END,metric:Date.now()})}requestSUAEnd(){this.dispatch({type:Fr.KEY_METRIC_REQUEST_SUA_END,metric:Date.now()})}beforeConnect(){this.dispatch({type:Fr.KEY_METRIC_BEFORE_CONNECT,metric:Date.now()})}peerReceiver(){this.dispatch({type:Fr.KEY_METRIC_PEER_RECEIVER,metric:Date.now()})}signalConnected(){this.dispatch({type:Fr.KEY_METRIC_SIGNAL_CONNECTED,metric:Date.now()})}joinReq(){this.dispatch({type:Fr.KEY_METRIC_JOIN_REQ,metric:Date.now()})}joinRep(){this.dispatch({type:Fr.KEY_METRIC_JOIN_REP,metric:Date.now()})}joinGatewayStart(){this.dispatch({type:Fr.KEY_METRIC_JOIN_GATEWAY_START,metric:Date.now()})}joinGatewayEnd(){this.dispatch({type:Fr.KEY_METRIC_JOIN_GATEWAY_END,metric:Date.now()})}peerConnectionStart(){this.dispatch({type:Fr.KEY_METRIC_PEER_CONNECTION_START,metric:Date.now()})}peerConnectionEnd(){this.dispatch({type:Fr.KEY_METRIC_PEER_CONNECTION_END,metric:Date.now()})}firstVideoFrameDecoded(h,_){this.dispatch({type:Fr.KEY_METRIC_FIRST_VIDEO_FRAME_DECODED,metric:wt({userId:h},_)})}descriptionStart(){this.dispatch({type:Fr.KEY_METRIC_DESCRIPTION_START,metric:Date.now()})}signalChannelOpen(){this.dispatch({type:Fr.KEY_METRIC_SIGNAL_CHANNEL_OPEN,metric:Date.now()})}iceConnectionEnd(){this.dispatch({type:Fr.KEY_METRIC_ICE_CONNECTION_END,metric:Date.now()})}publish(h,_,B,Q){this.dispatch({type:Fr.KEY_METRIC_PUBLISH,metric:wt(wt({trackId:h,type:_},B&&{publishStart:B}),Q&&{publishEnd:Q})})}subscribe(h,_,B,Q,T,D,O){this.dispatch({type:Fr.KEY_METRIC_SUBSCRIBE,metric:wt(wt(wt(wt(wt({userId:h,type:_},B&&{subscribeStart:B}),Q&&{subscribeEnd:Q}),T&&{firstFrame:T}),D&&{streamAdded:D}),O&&{firstDecoded:O})})}massSubscribe(h,_,B,Q){h.forEach(T=>{this.dispatch({type:Fr.KEY_METRIC_SUBSCRIBE,metric:wt(wt(wt({userId:T.userId,type:T.type},_&&{subscribeStart:_}),B&&{subscribeEnd:B}),Q&&{firstFrame:Q})})})}get keyMetrics(){return this.state.keyMetrics}recordJoinChannelService(h,_){h.service==="gateway"&&Array.isArray(h.urls)&&(h.urls=h.urls.map(B=>B.replace(/(\d+)-\d+-\d+-(\d+)/,"$1-*-*-$2")));try{return typeof _!="number"?(this.dispatch({type:Fr.RECORD_JOIN_CHANNEL_SERVICE,record:wt(wt({},h),{},{sessionId:this.sessionId,cloudProxyMode:this.cloudProxyServerMode,uid:this.uid})}),this.state.joinChannelServiceRecords.length-1):(_<0||_>=this.state.joinChannelServiceRecords.length||this.dispatch({type:Fr.RECORD_JOIN_CHANNEL_SERVICE,record:h,index:_}),_)}catch{return 0}}resetJoinChannelServiceRecords(){this.dispatch({type:Fr.RESET_JOIN_CHANNEL_SERVICE_RECORDS})}resetKeyMetrics(){this.dispatch({type:Fr.RESET_KEY_METRICS})}resetFirstVideoFrameDecoded(){this.dispatch({type:Fr.RESET_FIRST_VIDEO_FRAME_DECODED})}get joinChannelServiceRecords(){try{return this.state.joinChannelServiceRecords}catch{return[]}}}(t.codec,t.audioCodec,t.mode,this._clientId,de("SIGNAL_CHANNEL")===1),this._leaveMutex=new ra("client-leave",this._clientId),this._publishMutex=new ra("client-publish",this._clientId),this._renewTokenMutex=new ra("client-renewtoken",this._clientId),this._subscribeMutex=new ra("client-subscribe",this._clientId),this.store.clientCreated(),t.proxyServer&&this.setProxyServer(t.proxyServer,!0),t.turnServer&&this.setTurnServer(t.turnServer,!0),J.info("[".concat(this._clientId,"] Initializing AgoraRTC client v").concat(W1," build: ").concat(Ng,", mode: ").concat(this.mode,", codec: ").concat(this.codec)),t.clientRoleOptions)try{PR(t.clientRoleOptions),c=Object.assign({},t.clientRoleOptions)}catch(h){J.warning("[".concat(this._clientId,"] ").concat(h.toString()))}var u;this._statsCollector=new m9(this.store),this._statsCollector.onStatsException=(h,_,B)=>{J.warn("[".concat(this._clientId,"] receive exception msg, code: ").concat(h,", msg: ").concat(_,", uid: ").concat(B)),h===rz.VIDEO_ENCODE_FAILED&&this.localTracks.forEach(Q=>{Q instanceof Or&&de("ENABLE_ENCODE_EXCEPTION")&&Q.findClosestProfile()}),this.safeEmit(Vr.EXCEPTION,{code:h,msg:_,uid:B})},this._statsCollector.onUploadPublishDuration=(h,_,B,Q)=>{const T=this._users.find(D=>D.uid===h);T&&(this.store.keyMetrics&&(this.store.firstVideoFrameDecoded(T.uid,{peerPublishDuration:B,peerPubStatusMs:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(T)),qt.peerPublishStatus(this._sessionId,{subscribeElapse:Q,audioPublishDuration:_,videoPublishDuration:B,peer:T._uintid}))},this._statsCollector.onVideoCodecChanged=h=>{if(de("VIDEO_STANDARD_BITRATE_VERSION")&&(h==="av1"||h==="h265"||h==="h264")){const _=this.localTracks.find(B=>B instanceof pn);_&&_._saveEncodeBitrateRatio!==1&&_.setSaveEncodeBitrateRatio(h==="h264"?de("BASELINE_MORE_H264_BITRATE_RATIO"):void 0)}},this.store.useP2P=t.mode==="p2p",this._gateway=new sce(this.store,{clientId:this._clientId,mode:this.mode,codec:this.codec,websocketRetryConfig:t.websocketRetryConfig||So,httpRetryConfig:t.httpRetryConfig||So,forceWaitGatewayResponse:t.forceWaitGatewayResponse===void 0||t.forceWaitGatewayResponse,statsCollector:this._statsCollector,role:t.role,clientRoleOptions:c}),this._configDistribute=new _ce(this._clientId,this.store),this.store.useP2P?(this._p2pChannel=(u={store:this.store,statsCollector:this._statsCollector},aE("P2PChannel").create(u)),this._handleP2PEvents()):this._p2pChannel=new Em(this.store,this._statsCollector),this._handleP2PChannelEvents(),this._handleGatewayEvents(),this._handleGatewaySignalEvents()}async joinMeta(t,s,c,u,h){let _=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],B=arguments.length>6&&arguments[6]!==void 0&&arguments[6];Dn("JOIN_GATEWAY_USE_443PORT_ONLY",_),Dn("JOIN_GATEWAY_USE_DUAL_DOMAIN",B);const Q=this._gateway.signal.websocket;return Q instanceof Bh&&(Q.use443PortOnly=_,Q.tryDoubleDomain=B),async function(T,D,O){vR.get(T)||vR.set(T,[]),DR.get(T)||DR.set(T,D),sl.get(T)||sl.set(T,0);const P=vR.get(T),U=DR.get(T);if(!P||!U)throw new Error("concurrent: deferQueue or maxConcurrency is null");if(sl.get(T)===U){const se=s2();P.push(se),await se.promise}sl.set(T,sl.get(T)+1);for(var H=arguments.length,$=new Array(H>3?H-3:0),Z=3;Z0&&(P[0].resolve(),P.shift()),sl.get(T)===0&&(vR.set(T,[]),DR.set(T,0),sl.set(T,0)),te}("client.join",de("JOIN_MAX_CONCURRENCY"),this.join.bind(this),t,s,c,u,h)}async join(t,s,c,u,h){J.scheduleUploadStart();const _=++this._numberOfJoinCount;this.store.joinStart(),u&&(this.store.uid=u);const B=(Mf||Mf||(Mf=(window.location.protocol.split(":")[0]||"").toUpperCase(),Mf))==="HTTPS",Q=KR()?window.isSecureContext:"Browser Not Support";(!KR()&&!B||!window.isSecureContext)&&J.warning("The website must be running in a secure context (About secure context: https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts ), otherwise the media collection will be restricted by the browser");let T;qt.setAppId(t);try{if(!c&&c!==null)throw new qe(Ce.INVALID_PARAMS,"Invalid token: ".concat(c,". If you don not use token, set it to null"));if(c&&Ra(c,"token",1,2047),Ra(t,"appid",1,2047),fl(s),u&&P2(u),h)if(typeof h=="string")Ra(h,"optionalInfo",1,256),T=h;else{if(typeof h!="object")throw new qe(Ce.INVALID_PARAMS,"Invalid options: options is not a string or object");{const se=h.autoSubscribe,ge=h.enableInstantMuteRestore,me=h.networkQualityProbe,Qe=h.preSubOptions;se&&(ll(se,"autoSubscribe"),J.info("[".concat(this._clientId,"] join: autoSubscribe: ").concat(se)),this.store.autoSubscribe=se),ge&&(ll(ge,"enableInstantMuteRestore"),J.info("[".concat(this._clientId,"] join: enableInstantMuteRestore: ").concat(ge)),this.store.enableInstantMuteRestore=ge),me&&(ll(me,"networkQualityProbe"),J.info("[".concat(this._clientId,"] join: networkQualityProbe: ").concat(me)),this.store.networkQualityProbe=me),Array.isArray(Qe)&&(j1(Qe,"preSubOptions"),Qe.forEach(Oe=>{P2(Oe.uid),function(we,Ne){if(typeof we!="string"&&!(we instanceof HTMLElement||we instanceof HTMLVideoElement))throw new tt(Ce.INVALID_PARAMS,"".concat(Ne," should be a string or a HTML element"))}(Oe.element,"element")}),J.info("[".concat(this._clientId,"] join: preSubOptions: ").concat(Qe.map(Oe=>"".concat(Oe.uid,": ").concat(typeof Oe.element=="string"?Oe.element:Oe.element.id)).join(","))),this.store.preSubOptions=Qe)}}}catch(se){throw qt.reportApiInvoke(Pd(),{name:Ti.JOIN,options:[t,s,c,u],states:{isHttps:B,isSecureContext:Q},tag:vn.TRACER}).onError(se),se}if(this._leaveMutex.isLocked&&(J.debug("[".concat(this._clientId,"] join: waiting leave operation")),(await this._leaveMutex.lock())(),J.debug("[".concat(this._clientId,"] join: continue"))),this._joinAndNotLeaveYet=!0,this.connectionState!=="DISCONNECTED"){const se=new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already in connecting/connected state"));throw qt.reportApiInvoke(Pd(),{name:Ti.JOIN,options:[t,s,c,u],states:{isHttps:B,isSecureContext:Q},tag:vn.TRACER}).onError(se),se}this._gateway.state="CONNECTING",this.store.preloadStart();const D=await _z({appId:t,cname:s,uid:u,stringUid:typeof u=="string"?u:void 0,token:c||t,cloudProxyServer:this._cloudProxyServerMode});if(this.store.preloadEnd(),!this._joinAndNotLeaveYet)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));const O=(D==null?void 0:D.sid)||Pd();J.info("[".concat(this._clientId,"] start join channel ").concat(s,", join number: ").concat(_)),this._sessionId||(this._sessionId=O,this.store.sessionId=this._sessionId);const P=qt.reportApiInvoke(this._sessionId,{id:this._clientId,name:Ti.JOIN,options:[t,s,c,u],states:{isHttps:B,isSecureContext:Q},tag:vn.TRACER}),U=bl(bl(bl({},this._rtmConfig),{},{role:this.role,clientId:this._clientId,appId:t,sid:this._sessionId,cname:s,uid:typeof u!="string"?u:null,turnServer:this._turnServer,proxyServer:this._proxyServer,token:c||t,cloudProxyServer:this._cloudProxyServerMode,optionalInfo:T,license:this._license,useLocalAccessPoint:this._useLocalAccessPoint,preload:!!D},this._remoteDefaultVideoStreamType!==void 0&&{defaultVideoStream:this._remoteDefaultVideoStreamType}),{},{apRequestDetail:de("AP_REQUEST_DETAIL")||void 0});if(this._useLocalAccessPoint&&(U.setLocalAPVersion=this._setLocalAPVersion),typeof u=="string"&&(U.stringUid=u,this._uintUid?(U.uid=this._uintUid,this._uintUid=void 0):U.uid=0),this._encryptionMode!=="none"&&this._encryptionSecret){if(U.aesmode=this._encryptionMode,U.aespassword=await(async se=>{const ge=function(we){const Ne=window.atob(`MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCMnXAHkKIGAM+x4N22gCI+Wyu -STM9ztkT3uYslTT2PuKmZfPzhH6kVdO7PTjGCOZnAsyb3oTtWat0KcxQ4jxvqQV+ -HvYl3iI1Yd4vl2c3qRMJPLtRDfNxa2Mcxgq7e9aEUibzdd0st+OJAy3tOj/Y0aVy -xQiYDz3vqa6bP29adwIDAQAB`),et=new Uint8Array(new ArrayBuffer(Ne.length));for(let st=0;st{this.connectionState==="CONNECTING"&&H===this._sessionId&&qt.joinChannelTimeout(this._sessionId,5)},5e3);try{var $;let se;const ge=U.cloudProxyServer;if(Et($=["proxy3","proxy4","proxy5"]).call($,ge)){const Ne=de("PROXY_SERVER_TYPE3");Array.isArray(Ne)?U.proxyServer=Ne[0]:U.proxyServer=Ne}if(qt.setProxyServer(U.proxyServer),J.setProxyServer(U.proxyServer),this.store.requestAPStart(),de("ENABLE_JOIN_V4")&&U.cloudProxyServer==="disabled")try{U.stringUid&&!U.uid&&(U.uid=await ez(U.stringUid,U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store).finally(()=>{this.store.requestSUAEnd()}),J.debug("[".concat(this._clientId,"] getUserAccount Success ").concat(U.stringUid," => ").concat(U.uid))),J.debug("[".concat(this._clientId,"] try use best first frame line"));const Ne=await this._p2pChannel.startP2PConnection({isPreallocation:!0});se=await hce(U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store,Ne),J.debug("[".concat(this._clientId,"] get serverInfo from sdp endpoint")),de("ENABLE_SDP_ENDPOINT_LOG")&&J.debug("[".concat(this._clientId,"] serverInfo: "),se)}catch(Ne){se=void 0,J.debug("[".concat(this._clientId,"] join channel with sdp endpoint failed, fallback to normal join ap"),Ne)}if(!se)if(D){if(J.debug("[".concat(this._clientId,"] get serverInfo Success from Preload Cache ").concat(U.stringUid?", ".concat(U.stringUid," => ").concat(D.intUid):""," ")),U.stringUid&&!U.uid&&(U.uid=D.intUid),se={gatewayInfo:D.ap.gatewayInfo},de("JOIN_WITH_FALLBACK_MEDIA_PROXY")&&U.turnServer.mode==="auto")if(D.ap.proxyInfo.addresses.length===0)J.warning("no edge services in ap response of proxy fallback, will not set proxy in iceServers");else{const Ne=(await ate(D.ap.proxyInfo,D.ap.gatewayInfo.uid)).map(et=>({turnServerURL:et.address,tcpport:et.tcpport||Bn.tcpport,udpport:et.udpport||Bn.udpport,username:et.username||Bn.username,password:et.password||Bn.password,forceturn:!1,security:!0}));U.turnServer={mode:"manual",servers:Ne}}Sre(D,U.stringUid)}else{if(U.stringUid&&!U.uid){let Ne;var Z=ir(await Ut.all([ez(U.stringUid,U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store).finally(()=>{this.store.requestSUAEnd()}),Ote(U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,!0,this.store).finally(()=>{this.store.requestAPEnd()})]),2);Ne=Z[0],se=Z[1],J.debug("[".concat(this._clientId,"] getUserAccount Success ").concat(U.stringUid," => ").concat(Ne)),U.uid=Ne,se.gatewayInfo.uid=Ne,se.gatewayInfo.res.uid=Ne}else se=await Ote(U,this._axiosCancelSource.token,this._config.httpRetryConfig||So,!0,this.store);if(!this._joinAndNotLeaveYet)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"))}this.store.requestAPEnd(),setTimeout(()=>{this._configDistribute.startGetConfigDistribute(U,this._axiosCancelSource.token),this._configDistribute.on(xc.UPDATE_BITRATE_LIMIT,Ne=>{this._p2pChannel.updateBitrateLimit(Ne)}),this._configDistribute.on(xc.UPDATE_CLIENT_ROLE_OPTIONS,Ne=>{this._setClientRoleOptions(Ne)}),this._configDistribute.on(xc.UPDATE_REMOTE_VIDEO_STREAM_TYPE,Ne=>{var et;Et(et=[0,1,4,5,6,7,8,9]).call(et,Ne)&&(this.remoteUsers.forEach(st=>{this._remoteStreamTypeCacheMap.get(st.uid)!==Ne&&this.setRemoteVideoStreamType(st.uid,Ne)}),this.setRemoteDefaultVideoStreamType(Ne))}),this._configDistribute.on(xc.FALLBACK_TO_HLS,Ne=>{Ne&&this.safeEmit(Vr.FALLBACK_TO_HLS,Pr.CONFIG)}),this._configDistribute.on(xc.UPDATE_VOS_CONFIGURE,Ne=>{this._gateway.setConfigure(Ne).catch(et=>{J.debug("[".concat(this._clientId,"] auto set vos config failed"),et)})})},0),this._key=c||t;const me=se.gatewayInfo,Qe=U.uid?U.uid:me.uid;this._joinInfo=bl(bl({},U),{},{cid:me.cid,uid:Qe,vid:me.vid,apResponse:me.res,apGatewayAddress:me.apGatewayAddress,uni_lbs_ip:me.uni_lbs_ip,gatewayAddrs:me.gatewayAddrs,signalResponse:me.res.signalResponse}),this.store.intUid=Qe,this.store.cid=me.cid;const Oe=await this._joinGateway();if(!this._joinAndNotLeaveYet)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Client already left"));P.onSuccess(Oe),this._appId=t,this._channelName=U.cname,this._uid=Oe,this.store.uid=Oe,setTimeout(()=>{this._networkQualityInterval&&window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=window.setInterval(this._handleUpdateNetworkQuality,2e3),!Zs()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener(Zs()?"beforeunload":"pagehide",this._handleBeforeUnload),this._statsCollector.startUpdateStats()},0);const we=U.stringUid?"string uid: ".concat(U.stringUid,",uid: ").concat(U.uid):"uid: ".concat(this._uid);return J.info("[".concat(this._clientId,"] Joining channel success: channel: ").concat(s,",").concat(we)),this.store.joinEnd(),te=this,Et(ph).call(ph,te)||ph.push(te),this._cloudProxyServerMode==="disabled"&&Si().supportWebCrypto&&de("ENABLE_PRELOAD")&&Bz(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0),this._sessionId&&qt.reportRteDetail(this._sessionId),this._rteDetailInterval=window.setInterval(()=>{this._sessionId&&qt.reportRteDetail(this._sessionId)},de("RTE_DETAIL_REPORT_INTERVAL")||6e4),Oe}catch(se){const ge=Array.isArray(se)?se[0]:se;throw ge&&ge.code===Ce.OPERATION_ABORTED?J.warning("[".concat(this._clientId,"] join number: ").concat(_,", Joining channel failed, rollback"),ge):J.error("[".concat(this._clientId,"] join number: ").concat(_,", Joining channel failed, rollback"),ge),ge.code!==Ce.OPERATION_ABORTED&&this._numberOfJoinCount===_&&(this._gateway.state="DISCONNECTED",this._reset()),P.onError(ge),ge}var te}async _joinGateway(){if(!this._joinInfo||!this._key)throw new qe(Ce.INVALID_OPERATION);try{return await this._gateway.join(this._joinInfo,this._key,!(this._joinInfo.cloudProxyServer!=="disabled"||this._joinInfo.proxyServer||!de("JOIN_WITH_FALLBACK_SIGNAL_PROXY")))}catch(t){if(t.code===Ce.INIT_DATACHANNEL_TIMEOUT){if(this._gateway.leave(!0,mi.FALLBACK),J.debug("[".concat(this._clientId,"] join by datachannel timeout, fallback to websocket")),!this._joinInfo||!this._key)throw new qe(Ce.INVALID_OPERATION);return qt.reportApiInvoke(this._sessionId,{name:Ti.DATACHANNEL_FAILBACK,options:[this.store.clientId],tag:vn.TRACER}).onSuccess(),await this._joinGateway()}throw t}}async leave(){J.info("[".concat(this._clientId,"] Leaving channel"));const t=()=>{!Zs()&&this.store.useDcSignal?(window.addEventListener("beforeunload",this._handleBeforeUnload),window.addEventListener("pagehide",this._handleBeforeUnload)):window.addEventListener(Zs()?"beforeunload":"pagehide",this._handleBeforeUnload),this._reset(),function(c){const u=ph.indexOf(c);u!==-1&&ph.splice(u,1)}(this),this._statsCollector.stopUpdateStats()};this.store.useDcSignal||t();const s=await this._leaveMutex.lock();if(this.connectionState==="DISCONNECTED")return J.info("[".concat(this._clientId,"] Leaving channel repeated, success")),void s();await this._gateway.leave(this.connectionState!=="CONNECTED",mi.LEAVE),J.info("[".concat(this._clientId,"] Leaving channel success")),this._joinAndNotLeaveYet=!1,this.store.resetJoinChannelServiceRecords(),s(),this.store.useDcSignal&&t()}async publish(t){let s=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!Array.isArray(t)){if(!(t instanceof T2))return this._publishDataChannel(t);t=[t]}if(t.length===0)throw new qe(Ce.INVALID_PARAMS,"param list is empty");const c=t;if(this._gateway.role==="audience")throw new qe(Ce.INVALID_OPERATION,"audience can not publish stream");for(const h of c){if(!(h instanceof T2))throw new qe(Ce.INVALID_PARAMS,"parameter is not local track");if(!h._enabled&&s)throw new qe(Ce.TRACK_IS_DISABLED,"can not publish a disabled track: ".concat(h.getTrackId()))}J.info("[".concat(this._clientId,"] Publishing tracks, id ").concat(c.map(h=>"".concat(h.getTrackId()," "))));const u=await this._publishMutex.lock();await this._configDistribute.awaitConfigDistributeComplete(),s&&c.forEach(h=>{const _=this._configDistribute.getBitrateLimit();h instanceof pn&&_&&h.setBitrateLimit(_.uplink)});try{await this._publishHighStream(c),J.info("[".concat(this._clientId,"] Publish success, id ").concat(c.map(h=>"".concat(h.getTrackId()," "))))}catch(h){throw J.error("[".concat(this._clientId,"] publish error"),h.toString()),h}finally{u()}}async _publishDataChannel(t){if(t==null)throw new qe(Ce.INVALID_PARAMS,"parameter is not local track or datachannel config, config is ".concat(JSON.stringify(t)));Vn(t.id,"id",0,65535,!0),ll(t.ordered,"ordered"),Ra(t.metadata,"metadata",0,512),J.info("[".concat(this._clientId,"] Publishing datachannels, id ").concat(t.id));const s=await this._publishMutex.lock();try{if(this._p2pChannel.getAllDataChannels().findIndex(h=>h.id===t.id)!==-1)throw new qe(Ce.INVALID_PARAMS,"Invalid id: ".concat(t.id,". If you want to republish the datachannel, unpublish first"));if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't publish datachannel, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish datachannel in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&de("FORCE_TURN")&&!de("TURN_ENABLE_TCP")&&!de("TURN_ENABLE_UDP"))throw new qe(Ce.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");const c=function(h){return yte(h,!1)}(t),u=await this._p2pChannel.publishDataChannel([c]);if(u.length>0){if(typeof c._originDataChannelId!="number")throw J.error("[".concat(this._clientId,"] can not publish with mediaType datachannel, cannot get RTCDatachannel id")),new qe(Ce.CREATE_DATACHANNEL_ERROR);try{await Ut.all(u.map(h=>this._uid&&this._gateway.publishDataChannel(this._uid,h,!0))),await c._waitTillOpen()}catch(h){if(h.code!==Ce.DISCONNECT_P2P)throw h}}return J.info("[".concat(this._clientId,"] Publish dataChannels success, id ").concat(c.id)),c}catch(c){throw J.error("[".concat(this._clientId,"] publish datachannels error"),c.toString()),c}finally{s()}}async unpublish(t){if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't unpublish stream, haven't joined yet!");let s=[];if(t)if(Array.isArray(t))s=t;else{if(!(t instanceof T2))return this._unpublishDataChannel([t]);s=[t]}else this.store.useP2P||await this._unpublishDataChannel(),s=this._p2pChannel.getAllTracks(!0);J.info("[".concat(this._clientId,"] Unpublish tracks, tracks ").concat(s.map(u=>"".concat(u.getTrackId()," "))," "));const c=await this._publishMutex.lock();try{if(this.store.useP2P){const u=await this._p2pChannel.unpublish(s);u&&await this._gateway.sendExtensionMessage(Go.UNPUBLISH,{unpubMsg:u},!0)}else{const u=await this._p2pChannel.unpublish(s);u&&await this._gateway.unpublish(u,this._uid),J.info("[".concat(this._clientId,"] Unpublish success,tracks ").concat(s.map(h=>"".concat(h.getTrackId()))))}}catch(u){throw J.error("[".concat(this._clientId,"] unpublish error"),u.toString()),u}finally{c&&c()}}async _unpublishDataChannel(t){t!==void 0&&t.length!==0||(t=this._p2pChannel.getAllDataChannels()),J.info("[".concat(this._clientId,"] Unpublish datachannels, datachannels ").concat(t.map(c=>"".concat(c.id," "))," "));const s=await this._publishMutex.lock();try{const c=await this._p2pChannel.unpublishDataChannel(t);c&&await this._gateway.unpublishDataChannel(c),J.info("[".concat(this._clientId,"] Unpublish dataChannel success, dataChannel ids: ").concat(t.map(u=>"".concat(u.id))))}catch(c){throw J.error("[".concat(this._clientId,"] unpublish dataChannel error"),c.toString()),c}finally{s&&s()}}async subscribe(t,s,c){if(!(t instanceof vp)){const u=this.remoteUsers.find(h=>h.uid===t);if(!u)throw new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");t=u}return s==="datachannel"?this._subscribeDataChannel(t,c):this._subscribe(t,s)}async presubscribe(t,s){if(As(s,"mediaType",["audio","video"]),this.store.useP2P)throw new qe(Ce.INVALID_OPERATION,"can't presub at p2p mode");if(!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can't presub when not join");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can't presub in ".concat(this.connectionState," state"));const c=s===rr.AUDIO,u=s===rr.VIDEO,h=await this._subscribeMutex.lock();try{const _=await this._gateway.presubscribe(t,s,!0),B=_.ssrcId,Q=_.ortc,T=_.rtxSsrcId,D=_.cname,O=_.uint_id;if(B==null)throw new qe(Ce.UNEXPECTED_RESPONSE,"no ssrc id");let P=this._users.find(H=>H.uid===t);P||(P=new vp(t,O||t),P._is_pre_created=!0,this._users.push(P)),D&&(P._cname=D),P._uintid||(P._uintid=O||t),c&&(P._audioSSRC=B,P._audio_pre_subscribed=!0,Q&&(P._audioOrtc=Q)),u&&(P._videoSSRC=B,P._video_pre_subscribed=!0,Q&&(P._videoOrtc=Q),T!=null&&(P._rtxSsrcId=T)),J.info("[".concat(this._clientId,"] presub succeed ssrc: ").concat(B)),await this._p2pChannel.subscribe(P,s,B,T,Q);const U=c?P._audioTrack:P._videoTrack;if(!U)throw new qe(Ce.UNEXPECTED_ERROR,"can not find remote track in user");return c&&(P._trust_audio_stream_added_state_=!0,P._audio_added_=!0),u&&(P._trust_video_stream_added_state_=!0,P._video_added_=!0),U}catch(_){throw J.error("[".concat(this._clientId,"] presub user ").concat(t," error"),_),_}finally{h()}}async _subscribeDataChannel(t,s){var c;if(Vn(s,"channelId",0,65535,!0),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe datachannel, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe datachannel in ".concat(this.connectionState," state"));if(!this._users.find(Q=>Q===t))throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", this user is not in the channel")),new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");if(!t.hasAudio&&!t.hasVideo&&t._dataChannels.length===0)throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", user is not published")),new qe(Ce.INVALID_REMOTE_USER,"user is not published");const h=(c=t._dataChannels)===null||c===void 0?void 0:c.find(Q=>Q.id===s);if(!h)throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType datachannel, remote datachannel is not published")),new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);const _=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"] subscribe user ").concat(t.uid,", mediaType: datachannel"));try{const Q=await this._p2pChannel.subscribeDataChannel(t,[h]);if(Q&&Et(Q).call(Q,h.id))try{var B;if(typeof h._originDataChannelId!="number")throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType datachannel, cannot get RTCDatachannel")),new qe(Ce.CREATE_DATACHANNEL_ERROR);const T={id:h.id,datachannelId:h._originDataChannelId,ordered:h.ordered,maxRetransmits:h.maxRetransmits,metadata:(B=h.metadata)!==null&&B!==void 0?B:""};await this._gateway.subscribeDataChannel(t.uid,T,!0),await h._waitTillOpen()}catch(T){if((T==null?void 0:T.code)!==Ce.WS_ABORT)throw await this._p2pChannel.unsubscribeDataChannel(t,[h]),T;await this._p2pChannel.unsubscribeDataChannel(t,[h]),this._p2pChannel.setPendingRemoteDataChannel(t,h.id)}return J.info("[".concat(this._clientId,"] subscribe success user ").concat(t.uid,", mediaType: datachannel")),h}finally{_()}}async _p2pSubscribe(t,s,c){if(As(s,"mediaType",["audio","video"]),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(_=>_===t)){const _=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", this user is not in the channel")),_}if(!t.hasAudio&&!t.hasVideo){const _=new qe(Ce.INVALID_REMOTE_USER,"user is not published");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", user is not published")),_}if(!c&&(s==="audio"&&!t.hasAudio||s==="video"&&!t.hasVideo)){const _=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType ").concat(s,", remote track is not published")),_}const h=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"] subscribe user ").concat(t.uid,", mediaType: ").concat(s));try{if(await this._p2pChannel.hasRemoteMediaWithLock(t,s))await this._p2pChannel.unmuteRemote(t,s);else try{const B=s==="audio"?t._audioSSRC:t._videoSSRC,Q=s==="audio"?t._audioMid:t._videoMid;this.store.subscribe(t.uid,s,Date.now()),this.store.useP2P&&await this._p2pChannel.subscribe(t,s,B,Q)}catch(B){throw B}J.info("[".concat(this._clientId,"] subscribe success user ").concat(t.uid,", mediaType: ").concat(s)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(t.uid,this._defaultStreamFallbackType).catch(B=>{J.warning("[".concat(this._clientId,"] auto set fallback failed"),B)});const _=s==="audio"?t._audioTrack:t._videoTrack;if(!_)throw new qe(Ce.UNEXPECTED_ERROR,"can not find remote track in user object");return _}catch(_){throw J.error("[".concat(this._clientId,"] subscribe user ").concat(t.uid," error"),_),_}finally{h()}}async _subscribe(t,s,c){if(this.store.useP2P)return this._p2pSubscribe(t,s);if(As(s,"mediaType",["audio","video"]),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));if(!this._users.find(D=>D===t)){const D=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", this user is not in the channel")),D}if(!t.hasAudio&&!t.hasVideo){const D=new qe(Ce.INVALID_REMOTE_USER,"user is not published");throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid,", user is not published")),D}if(!(c||(s!=="audio"||t.hasAudio&&t._audioSSRC!==void 0)&&(s!=="video"||t.hasVideo&&t._videoSSRC!==void 0))){const D=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);throw J.error("[".concat(this._clientId,"] can not subscribe ").concat(t.uid," with mediaType ").concat(s,", remote track is not published")),D}let h=s==="audio"?t._audioSSRC:t._videoSSRC,_=s==="audio"?t._audioOrtc:t._videoOrtc,B=s==="video"?t._rtxSsrcId:void 0,Q={stream_type:s==="audio"?rr.AUDIO:rr.VIDEO,ssrcId:h};s==="video"&&this.store.firstVideoFrameDecoded(t.uid,{subscribeStart:Date.now()});const T=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"] subscribe user ").concat(t.uid,", mediaType: ").concat(s));try{if(await this._p2pChannel.hasRemoteMediaWithLock(t,s))await this._p2pChannel.unmuteRemote(t,s);else try{const O=s==="audio"?t._audioSSRC:t._videoSSRC;O!==void 0&&O!==h&&(h=O,_=s==="audio"?t._audioOrtc:t._videoOrtc,B=s==="video"?t._rtxSsrcId:void 0,Q={stream_type:s==="audio"?rr.AUDIO:rr.VIDEO,ssrcId:h}),_A.markSubscribeStart(this.store.clientId,h),this.store.subscribe(t.uid,s,Date.now()),await this._p2pChannel.subscribe(t,s,h,B,_);try{this._p2pChannel.isPreSubScribe(h)||await this._gateway.subscribe(t.uid,Q,!0)}catch(P){if((P==null?void 0:P.code)!==Ce.WS_ABORT)throw await this._p2pChannel.unsubscribe(t,s),P;await this._p2pChannel.unsubscribe(t,s,!0),this._p2pChannel.setPendingRemoteMedia(t,s)}this.store.subscribe(t.uid,s,void 0,Date.now()),this._p2pChannel.reportSubscribeEvent(!0,null,t,s)}catch(O){throw this._p2pChannel.reportSubscribeEvent(!1,O==null?void 0:O.code,t,s),O}J.info("[".concat(this._clientId,"] subscribe success user ").concat(t.uid,", mediaType: ").concat(s)),this._defaultStreamFallbackType!==void 0&&this.setStreamFallbackOption(t.uid,this._defaultStreamFallbackType).catch(O=>{J.warning("[".concat(this._clientId,"] auto set fallback failed"),O)});const D=s==="audio"?t._audioTrack:t._videoTrack;if(!D)throw new qe(Ce.UNEXPECTED_ERROR,"can not find remote track in user object");return s==="video"&&(this.store.firstVideoFrameDecoded(t.uid,{subscribeEnd:Date.now()}),this._p2pChannel.reportVideoFirstFrameRender(t)),D}catch(D){throw J.error("[".concat(this._clientId,"] subscribe user ").concat(t.uid," error"),D),D}finally{T()}}async massSubscribe(t){if(j1(t,"subscribeList"),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream, not joined");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"Can't subscribe stream in ".concat(this.connectionState," state"));const s=Date.now(),c=new Map,u=await this._subscribeMutex.lock();J.info("[".concat(this._clientId,"]start massSubscribe user ").concat(t.map(Q=>{let T=Q.user,D=Q.mediaType;return"user: ".concat(T==null?void 0:T.uid,", mediaType: ").concat(D)}).join("; ")));const h=(t=[...t]).map(Q=>({user:Q.user,mediaType:Q.mediaType})),_=await this._p2pChannel.globalLock();try{var B;for(let T=t.length-1;T>=0;T--){const D=t[T],O=D.user,P=D.mediaType;if(As(P,"mediaType",["audio","video"]),!O){const Z=new qe(Ce.INVALID_PARAMS,"user property does not exist in subscribeList item");throw J.error("[".concat(this._clientId,"] user property does not exist in subscribeList item")),Z}if(!this._users.find(Z=>Z===O)){const Z=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");J.error("[".concat(this._clientId,"] can not massSubscribe ").concat(O.uid,", this user is not in the channel")),h[T].error=Z,t.splice(T,1);continue}if(P==="audio"&&(!O.hasAudio||O._audioSSRC===void 0)||P==="video"&&(!O.hasVideo||O._videoSSRC===void 0)){const Z=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);J.error("[".concat(this._clientId,"] can not subscribe ").concat(O.uid," with mediaType ").concat(P,", remote user is not published")),h[T].error=Z,t.splice(T,1);continue}const H=jo.Video|jo.LowVideo,$=c.get(O);if($){if(P==="video"?$&H:$&jo.Audio){t.splice(T,1),J.warning("[".concat(this._clientId,"] repeat massSubscribe user:").concat(O.uid,", mediaType:").concat(P," twice"));continue}c.set(O,$|(P==="video"?H:jo.Audio))}else c.set(O,P==="video"?H:jo.Audio)}for(let T=t.length-1;T>=0;T--){const D=t[T],O=D.user,P=D.mediaType,U=jo.Video|jo.LowVideo;if(this._p2pChannel.hasRemoteMedia(O,P)){await this._p2pChannel.unmuteRemoteNoLock(O,P);const H=c.get(O);c.set(O,P==="video"?H^U:H^jo.Audio),t.splice(T,1)}}this.store.massSubscribe(t.map(T=>({userId:T.user.uid,type:T.mediaType})),s);let Q=VA(B=Array.from(c.entries())).call(B,(T,D)=>{let O=ir(D,2),P=O[0],U=O[1];if(U===0)return T;const H={stream_id:P.uid,stream_type:U};return U&jo.Audio&&(H.audio_ssrc=P._audioSSRC),U&jo.Video&&(H.video_ssrc=P._videoSSRC),T.push(H),T},[]);try{t.length>0&&await this._p2pChannel.massSubscribeNoLock(t.map(D=>{let O=D.user,P=D.mediaType;return{user:O,mediaType:P,ssrcId:P===rr.VIDEO?O._videoSSRC:O._audioSSRC,rtxSsrcId:P===rr.VIDEO?O._rtxSsrcId:void 0}}));const T=new Map;if(Q=Q.filter(D=>D.video_ssrc&&!this._p2pChannel.isPreSubScribe(D.video_ssrc)||D.audio_ssrc&&!this._p2pChannel.isPreSubScribe(D.audio_ssrc)||!D.video_ssrc&&!D.audio_ssrc),Q.length>0){const D=await this._gateway.subscribeAll(Q,!0);((D==null?void 0:D.users)||[]).forEach(O=>{let P=O.stream_id,U=O.video_error_code,H=O.audio_error_code,$=O.error_code;(U||H||$)&&T.set(P,{video_error_code:U,audio_error_code:H,error_code:$})})}if(Array.from(T.entries()).length>0){const D=[];Array.from(T.entries()).forEach(O=>{let P=ir(O,2),U=P[0],H=P[1];const $=this.remoteUsers.find(Z=>Z.uid===U);if($){let Z;H.error_code||H.video_error_code&&H.audio_error_code?Z=void 0:H.video_error_code?Z=rr.VIDEO:H.audio_error_code&&(Z=rr.AUDIO),D.push({user:$,mediaType:Z})}}),D.length>0&&await this._p2pChannel.massUnsubscribeNoLock(D)}for(const D of h){const O=T.get(D.user.uid);if(O){const P=O.error_code||D.mediaType==="audio"&&O.audio_error_code||D.mediaType==="video"&&O.video_error_code;if(P){const U=m1(P);J.error("user:".concat(D.user.uid," mediaType:").concat(D.mediaType," has massSubscribe error ").concat(U.desc)),D.error=new qe(Ce.SUBSCRIBE_FAILED,"code ".concat(P,": ").concat(U.desc))}}D.error||(D.mediaType==="video"?D.track=D.user.videoTrack:D.track=D.user.audioTrack)}return this.store.massSubscribe(h.filter(D=>!D.error).map(D=>({userId:D.user.uid,type:D.mediaType})),void 0,Date.now()),h.forEach(D=>{var O;qt.subscribe(this.store.sessionId,{succ:!!D.error,ec:((O=D.error)===null||O===void 0?void 0:O.code)||null,video:D.mediaType===rr.VIDEO,audio:D.mediaType===rr.AUDIO,peerid:D.user.uid,subscribeRequestid:D.mediaType===rr.VIDEO?D.user._videoSSRC:D.user._audioSSRC,p2pid:this.store.p2pId,eventElapse:Math.floor(performance.now()-s),preSsrc:this._p2pChannel.isPreSubScribe(D.user._videoSSRC)},!0)}),J.info("[".concat(this._clientId,"] massSubscribe success ").concat(t.map(D=>{let O=D.user,P=D.mediaType;return"user: ".concat(O==null?void 0:O.uid,", mediaType: ").concat(P)}).join("; "))),h}catch(T){throw await this._p2pChannel.massUnsubscribeNoLock(t),T}}finally{_(),u()}}async unsubscribe(t,s,c){if(!(t instanceof vp)){const _=this.remoteUsers.find(B=>B.uid===t);if(!_)throw new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");t=_}if(s||this.store.useP2P){if(s==="datachannel")return this._unsubscribeDataChannel(t,c)}else await this._unsubscribeDataChannel(t,c);if(s&&As(s,"mediaType",["audio","video"]),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't unsubscribe stream, haven't joined yet!");if(!this._users.find(_=>_===t)){const _=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not unsubscribe ").concat(t.uid,", user is not in the channel")),_}J.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(t.uid,", mediaType: ").concat(s));const h=await this._subscribeMutex.lock();try{if(this.store.useP2P)await this._p2pChannel.unsubscribe(t,s);else{const _=await this._p2pChannel.unsubscribe(t,s);_&&await this._gateway.unsubscribe(_,t.uid),s&&s!=="audio"||(t._audio_pre_subscribed=!1),s&&s!=="video"||(t._video_pre_subscribed=!1),t._is_pre_created&&UR(this._users,t),J.info("[".concat(this._clientId,"] unsubscribe success uid: ").concat(t.uid,", mediaType: ").concat(s))}}catch(_){if(_.code===Ce.DISCONNECT_P2P)return void J.warning("disconnecting p2p, abort unsubscribe request.");throw J.error("[".concat(this._clientId,"] unsubscribe user ").concat(t.uid," error"),_.toString()),_}finally{h()}}async _unsubscribeDataChannel(t,s){if(s&&Vn(s,"id",0,65535,!0),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't unsubscribe datachannel, haven't joined yet!");if(!this._users.find(h=>h===t)){const h=new qe(Ce.INVALID_REMOTE_USER,"user is not in the channel");throw J.error("[".concat(this._clientId,"] can not unsubscribe ").concat(t.uid,", user is not in the channel")),h}let u;if(typeof s=="number"){const h=t._dataChannels.find(_=>_.id===s);h&&(u=[h])}else u=t._dataChannels;if(u===void 0){const h=new qe(Ce.REMOTE_USER_IS_NOT_PUBLISHED);throw J.error("[".concat(this._clientId,"] can not unsubscribe ").concat(t.uid," with channelId ").concat(s,", remote datachannel is not published")),h}J.info("[".concat(this._clientId,"] unsubscribe uid: ").concat(t.uid,", mediaType: datachannel, ids: ").concat(u.map(h=>h.id)));try{const h=await this._p2pChannel.unsubscribeDataChannel(t,u);h&&await this._gateway.unsubscribeDataChannel(h,t.uid),J.info("[".concat(this._clientId,"] unsubscribe datachannel success uid: ").concat(t.uid,", mediaType: datachannel, ids: ").concat(h))}catch(h){if(h.code===Ce.DISCONNECT_P2P)return void J.warning("disconnecting p2p, abort unsubscribe request.");throw J.error("[".concat(this._clientId,"] unsubscribe user ").concat(t.uid," error"),h.toString()),h}}async massUnsubscribe(t){if(j1(t,"unsubscribeList"),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"Can't unsubscribeAll stream, haven't joined yet!");J.info("[".concat(this._clientId,"] start massUnsubscribe ").concat(t.map(c=>{let u=c.user,h=c.mediaType;return"user: ".concat(u==null?void 0:u.uid,", mediaType: ").concat(h,";")}).join())),t=[...t];const s=new Map;for(let c=t.length-1;c>=0;c--){const u=t[c],h=u.user,_=u.mediaType;if(!h){const T=new qe(Ce.INVALID_PARAMS,"user property does not exist in unsubscribeList item");throw J.error("[".concat(this._clientId,"] user property does not exist in unsubscribeList item")),T}if(As(_,"mediaType",["video","audio",void 0]),!this._users.find(T=>T===h)){J.warning("[".concat(this._clientId,"] can not unsubscribe ").concat(h.uid,", user is not in the channel")),t.splice(c,1);continue}const Q=jo.Video|jo.LowVideo;if(s.has(h)){const T=s.get(h);let D;switch(_){case"video":D=T&Q;break;case"audio":D=T&jo.Audio;break;default:D=T&(jo.Audio|Q)}if(D){J.warning("[".concat(this._clientId,"] repeat massUnsubscribe user:").concat(h.uid,",mediaType:").concat(_," twice.")),t.splice(c,1);continue}_?_==="audio"?s.set(h,T|jo.Audio):_==="video"&&s.set(h,T|Q):s.set(h,T|jo.Audio|Q)}else _?_==="audio"?s.set(h,jo.Audio):_==="video"&&s.set(h,Q):s.set(h,jo.Audio|Q)}try{const c=await this._p2pChannel.massUnsubscribe(t);c&&await this._gateway.massUnsubscribe(c),J.info("[".concat(this._clientId,"] massUnsubscribe success ").concat(t.map(u=>{let h=u.user,_=u.mediaType;return"user: ".concat(h==null?void 0:h.uid,", mediaType: ").concat(_,";")}).join()))}catch(c){if(c.code===Ce.DISCONNECT_P2P)return void J.warning("[".concat(this._clientId,"] disconnecting p2p, abort unsubscribe request."));throw J.error("[".concat(this._clientId,"] massUnsubscribe error"),c.toString()),c}}async setLowStreamParameter(t){(function(c){if(!c)throw new tt(Ce.INVALID_PARAMS);Bo(c.width)||Nf(c.width,"streamParameter.width"),Bo(c.height)||Nf(c.height,"streamParameter.height"),Bo(c.framerate)||Nf(c.framerate,"streamParameter.framerate"),Bo(c.bitrate)||Vn(c.bitrate,"streamParameter.bitrate")})(t),(!t.width&&t.height||t.width&&!t.height)&&J.warning("[".concat(this._clientId,"] The width and height parameters take effect only when both are set")),J.info("[".concat(this._clientId,"] set low stream parameter to"),JSON.stringify(t));const s=this._configDistribute.getLowStreamConfigDistribute();if(s&&s.bitrate&&t.bitrate&&s.bitrate{J.warning("[".concat(this._clientId,"] set dual stream mode failed"),c.toString())}):J.debug("[".concat(this._clientId,"] haven't joined yet, cache dual stream mode ").concat(t)),t){case Ie.AUTO_SIMULCAST_STREAM:J.info("[".concat(this._clientId,"] set dual stream mode to ").concat(t));break;case Ie.DISABLE_SIMULCAST_STREM:return this.disableDualStream();case Ie.ENABLE_SIMULCAST_STREAM:return this.enableDualStream()}}catch(c){throw J.error("[".concat(this._clientId,"] set dual stream mode error"),c.toString()),c}}async enableDualStream(){if(!Si().supportDualStream)throw qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),new qe(Ce.NOT_SUPPORTED,"Your browser is not support dual stream");if(this._isDualStreamEnabled)throw new qe(Ce.INVALID_OPERATION,"Dual stream is already enabled");if(this._p2pChannel.canPublishLowStream())try{await this._publishLowStream()}catch(t){throw qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!1}),t}this._isDualStreamEnabled=!0,this._dualStreamMode=Ie.ENABLE_SIMULCAST_STREAM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(t=>{J.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),t.toString())}),qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!0,succ:!0}),J.info("[".concat(this._clientId,"] enable dual stream"))}async disableDualStream(){if(this._isDualStreamEnabled){if(!this._joinInfo)return this._isDualStreamEnabled=!1,void J.info("[".concat(this._clientId,"] disable dual stream before join"));if(this._p2pChannel.getLocalMedia(Qt.LocalVideoLowTrack))try{const t=await this._p2pChannel.unpublishLowStream();t&&await this._gateway.unpublish(t,this._joinInfo.stringUid||this._joinInfo.uid)}catch(t){throw qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!1}),t}this._isDualStreamEnabled=!1,this._dualStreamMode=Ie.DISABLE_SIMULCAST_STREM,this._joinInfo&&this._gateway.setDualStreamMode(this._dualStreamMode,!0,!0).catch(t=>{J.debug("[".concat(this._clientId,"] try to inform gateway to set dual stream mode to ").concat(this._dualStreamMode," ,but failed"),t.toString())}),qt.streamSwitch(this._sessionId,{lts:Date.now(),isdual:!1,succ:!0}),J.info("[".concat(this._clientId,"] disable dual stream"))}}async setClientRole(t,s){if(function(u){As(u,"role",["audience","host"])}(t),s&&PR(s),this.mode==="rtc"||this.mode==="p2p")throw J.warning("[".concat(this._clientId,"]").concat(this.mode," mode can not use setClientRole")),new qe(Ce.INVALID_OPERATION,"".concat(this.mode," mode can not use setClientRole"));if(s&&s.level&&t==="host")throw new qe(Ce.INVALID_OPERATION,"host mode can not set audience latency level");if(t==="audience"&&this._p2pChannel.hasLocalMedia())throw new qe(Ce.INVALID_OPERATION,"can not set client role to audience when publishing stream");const c=this._config.role;if(this._joinInfo&&(this._joinInfo.role=t),t!==c&&de("ENABLE_ROLE_SELECT_EDGE")?(this._gateway.updateClientRole(t,s),this._config.role=t,this._gateway.reconnect("recover",Ss.REGIONAL_DISTRIBUTION)):(await this._gateway.setClientRole(t,s),this._config.role=t),J.info("[".concat(this._clientId,"] set client role to ").concat(t,", level: ").concat(s&&s.level)),c==="audience"&&t!=="audience"&&this._pendingRtpCapabilityChange&&this._p2pChannel instanceof Em){const u=this._pendingRtpCapabilityChange.video_codec;this._p2pChannel.updateRemoteRTPCapabilities(u.map(h=>h.toLowerCase()).filter(h=>{var _;return Et(_=Object.keys(Qn)).call(_,h)}))}}async _setClientRoleOptions(t){if(this.mode==="rtc"||this.mode==="p2p"||this._config.role!=="audience"||this._p2pChannel.hasLocalMedia())return;let s=!1;try{t&&PR(t),await this._gateway.setClientRole(this._config.role,t),s=!0}catch{}finally{J.info("[".concat(this._clientId,"] set client role options ").concat(s?"succeed":"failed",", options is ").concat(t))}}getRemoteInboundOffset(){var t;const s=(t=this._p2pChannel.getStats())===null||t===void 0?void 0:t.audioSend[0];if(!s||!s.timestamp)return 0;const c=s.timestamp-Date.now();return Math.abs(c)>1e3+s.rttMs+100?this.ntpAlignErrorCount+=1:this.ntpAlignErrorCount=0,this.ntpAlignErrorCount>=3?c:0}getNtpWallTimeInMs(){return document.visibilityState==="visible"&&(this.remoteInboundOffset=this.getRemoteInboundOffset()),this.remoteInboundOffset+Date.now()+this._gateway.ntpOffset}setProxyServer(t,s){if(Ra(t,"proxyServer"),!s){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Set proxy server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new qe(Ce.INVALID_OPERATION,"You have already set the proxy")}this._proxyServer=t,qt.setProxyServer(this._proxyServer),J.setProxyServer(this._proxyServer),J.info("[".concat(this._clientId,"] Set proxy server ").concat(s?"by initialize call":""," success."))}setTurnServer(t,s){if(Array.isArray(t)||(t=[t]),!s){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Set turn server before join channel");if(this._cloudProxyServerMode!=="disabled"||this._useLocalAccessPoint)throw new qe(Ce.INVALID_OPERATION,"You have already set the proxy")}if(zi(t))return this._turnServer={servers:t,mode:"original-manual"},void J.info("[".concat(this._clientId,"] Set original turnserver ").concat(s?"by initialize call":""," success: ").concat(t.map(c=>c.urls).join(","),"."));t.forEach(c=>Mn(c)),this._turnServer={servers:t,mode:"manual"},J.info("[".concat(this._clientId,"] Set turnserver ").concat(s?"by initialize call":""," success."))}setLicense(t){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"you should set license before join channel");if(Ra(t,"license",32,32),!/^[A-Za-z\d]+$/.test(t))throw new qe(Ce.INVALID_PARAMS,"license should only contains characters from A-Z a-z 0-9");this._license=t,J.info("[".concat(this._clientId,"] set license success"),t)}startProxyServer(t){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Start proxy server before join channel");if(this._proxyServer||this._turnServer.mode==="manual"||this._useLocalAccessPoint)throw new qe(Ce.INVALID_OPERATION,"You have already set the proxy");const s=[3,4,5];let c;switch(t===void 0&&(t=3),t){case 1:case 2:throw new qe(Ce.NOT_SUPPORTED,"proxy mode 1/2 has been deprecated and not supported.");case 3:c="proxy3";break;case 4:c="proxy4";break;case 5:c="proxy5";break;default:throw new qe(Ce.INVALID_PARAMS,"proxy server mode must be ".concat(s.join("|")))}this._cloudProxyServerMode=c,this.store.cloudProxyServerMode=c,J.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode)}stopProxyServer(){if(this.connectionState!=="DISCONNECTED")throw new qe(Ce.INVALID_OPERATION,"Stop proxy server after leave channel");qt.setProxyServer(),J.setProxyServer(),this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled",J.info("[".concat(this._clientId,"] set cloud proxy server mode to"),this._cloudProxyServerMode),this._proxyServer=void 0,this._turnServer={mode:"auto",servers:[]}}setLocalAccessPointsV2(t){if(!t.accessPoints)throw new qe(Ce.INVALID_PARAMS,"accessPoints is required.");j1(t.accessPoints.serverList,"accessPoints.serverList"),Ra(t.accessPoints.domain,"accessPoints.domain");const s=(U,H)=>{Vn(U,H,0,65535,!0)};let c=443;if(t.accessPoints.port&&(s(t.accessPoints.port,"accessPoints.port"),c=t.accessPoints.port),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new qe(Ce.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");de("CLOSE_AFB_FOR_LOCAL_AP")&&(Dn("JOIN_WITH_FALLBACK_SIGNAL_PROXY",!1),Dn("JOIN_WITH_FALLBACK_MEDIA_PROXY",!1));const u=/^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/,h=t.accessPoints.domain,_=t.accessPoints.serverList.map(U=>u.test(U)?"".concat(U.replace(/\./g,"-"),".").concat(h):U),B=_.map(U=>"".concat(U,":").concat(c));this._useLocalAccessPoint=!0,this._setLocalAPVersion=2,Dn("WEBCS_DOMAIN",B),Dn("WEBCS_DOMAIN_BACKUP_LIST",B),Dn("GATEWAY_DOMAINS",[h]),t.report&&t.report.hostname&&Array.isArray(t.report.hostname)&&t.report.hostname.length?(j1(t.report.hostname,"report.hostname"),Dn("EVENT_REPORT_DOMAIN",t.report.hostname[0]),Dn("EVENT_REPORT_BACKUP_DOMAIN",t.report.hostname[1]||t.report.hostname[0])):(Dn("EVENT_REPORT_DOMAIN",_[0]),Dn("EVENT_REPORT_BACKUP_DOMAIN",_[1]||_[0]));let Q=6443;t.report&&t.report.port&&(s(t.report.port,"report.port"),Q=t.report.port),Dn("STATS_COLLECTOR_PORT",Q),t.report?Dn("ENABLE_EVENT_REPORT",!0):Dn("ENABLE_EVENT_REPORT",!1);let T="";t.log&&t.log.hostname&&Array.isArray(t.log.hostname)&&t.log.hostname.length?(j1(t.log.hostname,"log.hostname"),T=t.log.hostname[0]):T=_[0];let D=6444;t.log&&t.log.port&&(s(t.log.port,"log.port"),D=t.log.port),Dn("LOG_UPLOAD_SERVER","".concat(T,":").concat(D));let O=[];t.cds&&t.cds.hostname&&Array.isArray(t.cds.hostname)&&t.cds.hostname.length?(j1(t.cds.hostname,"cds.hostname"),O=t.cds.hostname):O=_;let P=443;t.cds&&t.cds.port&&(s(t.cds.port,"cds.port"),P=t.cds.port),Dn("CDS_AP",O.map(U=>"".concat(U,":").concat(P))),t.cds?Dn("ENABLE_CONFIG_DISTRIBUTE",!0):Dn("ENABLE_CONFIG_DISTRIBUTE",!1),J.info("set local access point v2 success")}setLocalAccessPoints(t,s){if(j1(t,"serverList"),Ra(s,"domain"),this._proxyServer||this._cloudProxyServerMode!=="disabled")throw new qe(Ce.INVALID_OPERATION,"set local access point failed, You have already set the cloud proxy");const c=/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;t=t.map(u=>c.test(u)?"".concat(u.replace(/\./g,"-"),".").concat(s):u),this._useLocalAccessPoint=!0,this._setLocalAPVersion=1,Dn("WEBCS_DOMAIN",t),Dn("WEBCS_DOMAIN_BACKUP_LIST",t),Dn("GATEWAY_DOMAINS",[s]),Dn("EVENT_REPORT_DOMAIN",t[0]),Dn("EVENT_REPORT_BACKUP_DOMAIN",t[1]||t[0]),Dn("LOG_UPLOAD_SERVER","".concat(t[0],":6444")),J.info("[".concat(this._clientId,"] set local access point success"))}async setRemoteDefaultVideoStreamType(t){if(As(t,"streamType",[0,1,4,5,6,7,8,9]),this._remoteDefaultVideoStreamType=t,this._joinInfo)try{await this._gateway.setDefaultRemoteVideoStreamType(t),this._joinInfo.defaultVideoStream=this._remoteDefaultVideoStreamType}catch(s){throw J.error("[".concat(this._clientId,"] set default remote video stream type error"),s.toString()),s}else J.debug("[".concat(this._clientId,"] haven't joined yet, cache remoteDefaultVideoStreamType ").concat(t))}async setRemoteVideoStreamType(t,s){As(s,"streamType",[0,1,4,5,6,7,8,9]);try{await this._gateway.setRemoteVideoStreamType(t,s),setTimeout(()=>{const c=this._users.find(u=>u.uid===t);c&&c.videoTrack&&c.videoTrack.updateMediaStreamTrackResolution()},2e3)}catch(c){throw J.error("[".concat(this._clientId,"] set remote video stream type error"),c.toString()),c}J.info("[".concat(this._clientId,"] set remote ").concat(t," video stream type to ").concat(s)),this._remoteStreamTypeCacheMap.set(t,s)}async setStreamFallbackOption(t,s){As(s,"fallbackType",[0,1,2,3,4,5,6,7,8]);try{await this._gateway.setStreamFallbackOption(t,s)}catch(c){throw J.error("[".concat(this._clientId,"] set stream fallback option"),c.toString()),c}J.info("[".concat(this._clientId,"] set remote ").concat(t," stream fallback type to ").concat(s)),this._streamFallbackTypeCacheMap.set(t,s)}setEncryptionConfig(t,s,c,u){(function(_){As(_,"encryptionMode",["aes-128-xts","aes-256-xts","aes-128-ecb","sm4-128-ecb","aes-128-gcm","aes-256-gcm","aes-128-gcm2","aes-256-gcm2","none"])})(t),Ra(s,"secret");const h=["aes-128-gcm2","aes-256-gcm2"];if(Et(h).call(h,t)){if(!c||!(c instanceof Uint8Array&&c.length===32))throw new qe(Ce.INVALID_PARAMS,"salt must be an Uint8Array and exactly equal to 32 bytes")}else if(c)throw new qe(Ce.INVALID_PARAMS,"current encrypt mode does not need salt");if(u){if(ll(u,"encryptDataStream"),!Et(h).call(h,t))throw new qe(Ce.INVALID_PARAMS,"current encrypt mode does not support data stream");this._encryptDataStream=!0}new RegExp(`^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*,.<>?/:;'"|{}\\[\\]])(?=.{8,})`).test(s)||J.warning(`The secret is not strong: - The secret must contain at least 1 lowercase alphabetical character, - The secret must contain at least 1 uppercase alphabetical character, - The secret must contain at least 1 numeric character, - The secret must contain at least one special character, - The secret must be eight characters or longer. - `),this._encryptionMode=t,this._encryptionSecret=s,c&&(this._encryptionSalt=kd(c))}async renewToken(t){if(Ra(t,"token",1,2047),!this._key||!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"renewToken should not be called before user join");const s=this._key;this._key=t,this._joinInfo&&(this._joinInfo.token=t);const c=await this._renewTokenMutex.lock();try{if(de("USE_NEW_TOKEN")){J.debug("[".concat(this._clientId,"] start renew token with ticket from unilbs"));const u=await fce(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||So);J.debug("[".concat(this._clientId,"] get ticket from unilbs success")),await this._gateway.renewToken({token:t,ticket:u})}else J.debug("[".concat(this._clientId,"] start renew token without ticket")),await this._gateway.renewToken({token:t});J.debug("[".concat(this._clientId,"] renewToken success"))}catch(u){throw this._key=s,this._joinInfo.token=s,J.error("[".concat(this._clientId,"] renewToken failed"),u.toString()),u}finally{c()}}enableAudioVolumeIndicator(){this._audioVolumeIndicationInterval?J.warning("you have already enabled audio volume indicator!"):this._audioVolumeIndicationInterval=window.setInterval(()=>{const t=this._p2pChannel.getAudioLevels();this.safeEmit(Vr.VOLUME_INDICATOR,t)},de("AUDIO_VOLUME_INDICATION_INTERVAL")||2e3)}getRTCStats(){const t=this._statsCollector.getRTCStats(),s=this._gateway.getInChannelInfo();return t.Duration=Math.round(s.duration/1e3),t}async startLiveStreaming(t,s){if(!s){if(this.codec!=="h264")throw new qe(Ce.LIVE_STREAMING_INVALID_RAW_STREAM,"raw streaming is only support h264");if(!this._p2pChannel.hasLocalMedia())throw new qe(Ce.LIVE_STREAMING_INVALID_RAW_STREAM,"can not find stream to raw streaming")}if(this._liveRawStreamingClient&&this._liveRawStreamingClient.hasUrl(t)||this._liveTranscodeStreamingClient&&this._liveTranscodeStreamingClient.hasUrl(t))throw new qe(Ce.LIVE_STREAMING_TASK_CONFLICT);const c=s?ku.TRANSCODE:ku.RAW;return this._createLiveStreamingClient(c).startLiveStreamingTask(t,c)}setLiveTranscoding(t){return this._createLiveStreamingClient(ku.TRANSCODE).setTranscodingConfig(t)}async stopLiveStreaming(t){const s=[this._liveRawStreamingClient,this._liveTranscodeStreamingClient].filter(c=>c&&c.hasUrl(t));if(!s.length)throw new qe(Ce.INVALID_PARAMS,"can not find live streaming url to stop");await Ut.all(s.map(c=>c&&c.stopLiveStreamingTask(t)))}async startChannelMediaRelay(t){Ute(t),await this._createChannelMediaRelayClient().startChannelMediaRelay(t)}async updateChannelMediaRelay(t){Ute(t),await this._createChannelMediaRelayClient().updateChannelMediaRelay(t)}async stopChannelMediaRelay(){await this._createChannelMediaRelayClient().stopChannelMediaRelay(),this._statsCollector.onStatsChanged&&(this._statsCollector.onStatsChanged=void 0)}sendAudioMetadata(t){this._p2pChannel instanceof Em&&this._p2pChannel.addAudioMetadata(t)}async sendStreamMessage(t){var s;let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not send data stream, not joined");if((typeof t=="string"||t instanceof Uint8Array)&&(t={payload:t}),typeof t.payload=="string"){const h=new TextEncoder;t.payload=h.encode(t.payload)}let u=!1;if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Et(s=["aes-128-gcm2","aes-256-gcm2"]).call(s,this._encryptionMode)&&(u=!0,t.payload=await async function(h,_,B){var Q;const T=VA(Q=Array.from(B)).call(Q,(Z,te)=>Z+te,0),D={serverTs:0,seq:vc++,length:B.length,checkSum:T},O=new Uint8Array(Eo(T,2)),P=new ArrayBuffer(ch),U=new DataView(P);U.setUint32(0,D.serverTs),U.setUint16(4,D.seq),U.setUint16(6,D.length),U.setUint16(8,D.checkSum);const H=16-B.length%16;B=a4(B,new Uint8Array(H));const $=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:h,tagLength:u4,additionalData:O},_,B);return a4(new Uint8Array(P),new Uint8Array($))}(this._encryptDataStreamIv,this._encryptDataStreamKey,t.payload)),new Blob([t.payload]).size>1024)throw new qe(Ce.INVALID_PARAMS,u?"encrypted stream message out of range.":"stream message out of range.");return this._gateway.signal.request(ur.DATA_STREAM,{payload:kd(t.payload),syncWithAudio:t.syncWithAudio,sendTs:Date.now()-vce},!c)}sendMetadata(t){if(!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not send metadata, not joined");if(new Blob([t]).size>1024)throw new qe(Ce.METADATA_OUT_OF_RANGE);return this._gateway.signal.request(ur.SEND_METADATA,{session_id:this._joinInfo.sid,metadata:kd(t)})}async sendCustomReportMessage(t){if(Array.isArray(t)||(t=[t]),t.forEach(AU),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not send custom report, not joined");await qt.sendCustomReportMessage(this._joinInfo.sid,t)}getLocalAudioStats(){return this._statsCollector.getLocalAudioTrackStats()}getRemoteAudioStats(){return this._statsCollector.getRemoteAudioTrackStats()}getLocalVideoStats(){return this._statsCollector.getLocalVideoTrackStats()}getRemoteVideoStats(){return this._statsCollector.getRemoteVideoTrackStats()}getRemoteNetworkQuality(){const t=this._statsCollector.getRemoteNetworkQualityStats();if(de("DELETE_NEQ_AFTER_USER_LEAVE")){const s=this._users.map(c=>c.uid+"");Object.keys(t).forEach(c=>{Et(s).call(s,c)||delete t[c]})}return t}getNetworkQuality(){return this._statsCollector.getNetworkQuality()}async pickSVCLayer(t,s){As(s.spatialLayer,"spatialLayer",[0,1,2,3]),As(s.temporalLayer,"temporalLayer",[0,1,2,3]);try{await this._gateway.pickSVCLayer(t,s)}catch(c){throw J.error("[".concat(this._clientId,"] pick SVC layer failed"),c.toString()),c}}async setRTMConfig(t){const s=t.apRTM,c=s!==void 0&&s,u=t.rtmFlag;if(ll(c,"apRTM"),Vn(u,"rtmFlag",0),this._rtmConfig.apRTM=c,this._rtmConfig.rtmFlag=u,J.debug("[".concat(this._clientId,"] setRTMconfig ").concat(JSON.stringify(t)," in ").concat(this.connectionState," state")),(this.connectionState==="CONNECTED"||this.connectionState==="RECONNECTING")&&this._joinInfo)return this._joinInfo.apRTM=c,this._joinInfo.rtmFlag=u,this._gateway.setRTM2Flag(u)}_reset(){if(J.debug("[".concat(this._clientId,"] reset client")),function(t){const s=L2.indexOf(t);s!==-1&&L2.splice(s,1)}(this._clientId),this.store.hasStartJoinChannel=!1,this.store.isABTestSuccess=!1,this.store.autoSubscribe=!1,this._pendingRtpCapabilityChange=void 0,this._axiosCancelSource.cancel(),this._axiosCancelSource=on.CancelToken.source(),this._streamFallbackTypeCacheMap=new Map,this._remoteStreamTypeCacheMap=new Map,this._configDistribute.stopGetConfigDistribute(),this._joinInfo&&Bre(this._joinInfo),this._rteDetailInterval&&(window.clearInterval(this._rteDetailInterval),this._rteDetailInterval=void 0,this._sessionId&&qt.reportRteDetail(this._sessionId)),this._fallbackServerInfo=void 0,this._joinInfo=void 0,this._proxyServer=void 0,this._defaultStreamFallbackType=void 0,this._sessionId&&qt.removeSid(this._sessionId),this._sessionId=null,this.store.sessionId=null,this.store.resetFirstVideoFrameDecoded(),this._statsCollector.reset(),this._key=void 0,this._appId=void 0,this._uid=void 0,this.store.uid=void 0,this._channelName=void 0,this._encryptionMode="none",this._encryptionSecret=null,this._encryptionSalt=null,this._encryptDataStreamKey=null,this._encryptDataStreamIv=null,this._pendingPublishedUsers=[],this._users.forEach(t=>{t._audioTrack&&t._audioTrack._destroy(),t._videoTrack&&t._videoTrack._destroy(),t._dataChannels&&(t._dataChannels.forEach(s=>s._close()),t._dataChannels.length=0)}),this._users=[],this._audioVolumeIndicationInterval&&(window.clearInterval(this._audioVolumeIndicationInterval),this._audioVolumeIndicationInterval=void 0),this._cloudProxyServerMode==="fallback"&&(this._cloudProxyServerMode="disabled",this.store.cloudProxyServerMode="disabled"),this._p2pChannel.reset(),this._publishMutex=new ra("client-publish",this._clientId),this._subscribeMutex=new ra("client-subscribe",this._clientId),this._networkQualityInterval&&(window.clearInterval(this._networkQualityInterval),this._networkQualityInterval=void 0),this._liveRawStreamingClient&&(this._liveRawStreamingClient.terminate(),this._liveRawStreamingClient.removeAllListeners(),this._liveRawStreamingClient=void 0),this._liveTranscodeStreamingClient&&(this._liveTranscodeStreamingClient.terminate(),this._liveTranscodeStreamingClient.removeAllListeners(),this._liveTranscodeStreamingClient=void 0),this._channelMediaRelayClient&&(this._channelMediaRelayClient.dispose(),this._channelMediaRelayClient=void 0),this._inspect)try{this._inspect.close(),this._inspect=void 0}catch{}if(this._moderation)try{this.setImageModeration(!1)}catch{}}_startSession(t,s){var c;const u=t||Pd();t?J.debug("[".concat(this._clientId,"] new Session ").concat(u)):J.debug("[".concat(this._clientId,"] renewSession ").concat(this._sessionId," => ").concat(u));const h=t?"":this._sessionId||"";this._sessionId=u,this.store.sessionId=u,qt.addSid(u);const _={lts:new Date().getTime(),mode:this.mode,buildFormat:1,stringUid:(s==null?void 0:s.stringUid)||((c=this._joinInfo)===null||c===void 0?void 0:c.stringUid),channelProfile:this.mode==="live"?1:0,channelMode:0,isABTestSuccess:Number(this._configDistribute.isSuccess),lsid:h,clientRole:this.role==="audience"?2:1,rteUrl:this.store.rteUrl,rteSid:this.store.rteSid};qt.sessionInit(this._sessionId,bl({cname:s.channel,appid:s.appId},_)),this._joinInfo&&(this._joinInfo.sid=u),this._gateway.joinInfo&&(this._gateway.joinInfo.sid=u)}async _publishHighStream(t){if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));if(this._turnServer.mode==="auto"&&de("FORCE_TURN")&&!de("TURN_ENABLE_TCP")&&!de("TURN_ENABLE_UDP"))throw new qe(Ce.UNEXPECTED_ERROR,"force TURN With No TURN Configuration");J.debug("[".concat(this._clientId,"] publish high stream"));try{const c=await this._p2pChannel.publish(t,this._isDualStreamEnabled,this._lowStreamParameter);if(this.store.useP2P){const u=(await c.next()).value;if(u){try{await this._gateway.sendExtensionMessage(Go.PUBLISH,u,!0)}catch(h){throw c.throw(h),h}await c.next()}this._p2pChannel.reportPublishEvent(!0,null)}else{const u=(await c.next()).value;if(u){var s;let h;try{h=await this._gateway.publish(this._uid,u,!0)}catch(_){if(_.code!==Ce.DISCONNECT_P2P)throw c.throw(_),_}await c.next(((s=h)===null||s===void 0?void 0:s.ortc)||[])}this._p2pChannel.reportPublishEvent(!0,null);for(const h of t)h instanceof pn&&h._encoderConfig&&this._gateway.setVideoProfile(h._encoderConfig).catch(_=>{J.debug("[".concat(this._clientId,"] stop setVideoProfile, because websocket is closed"))}),!h.muted&&h.enabled||await this._p2pChannel.muteLocalTrack(h)}}catch(c){if(this._p2pChannel.reportPublishEvent(!1,c==null?void 0:c.code,t),(c==null?void 0:c.code)===Ce.WS_ABORT)return;throw c}}async _publishLowStream(){if(!this._joinInfo||this._uid===void 0)throw new qe(Ce.INVALID_OPERATION,"Can't publish stream, haven't joined yet!");if(this.connectionState!=="CONNECTED"&&this.connectionState!=="RECONNECTING")throw new qe(Ce.INVALID_OPERATION,"can not publish stream in ".concat(this.connectionState," state"));J.debug("[".concat(this._clientId,"] publish low stream"));const t=this._configDistribute.getLowStreamConfigDistribute();t&&t.bitrate&&(this._lowStreamParameter||(this._lowStreamParameter={width:160,height:120,framerate:15,bitrate:50}),this._lowStreamParameter&&this._lowStreamParameter.bitrate&&t.bitrate{if(!this._joinInfo||!this._appId)return new qe(Ce.INVALID_OPERATION,"can not create live streaming client, please join channel first").throw();const c=(u={joinInfo:this._joinInfo,appId:this._appId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig},aE("LiveStreaming").create(u));var u;return c.onLiveStreamError=(h,_)=>{qt.reportApiInvoke(this._sessionId,{name:Ti.ON_LIVE_STREAM_ERROR,options:[h,_],tag:vn.TRACER}).onSuccess(),this.safeEmit(Vr.LIVE_STREAMING_ERROR,h,_)},c.onLiveStreamWarning=(h,_)=>{qt.reportApiInvoke(this._sessionId,{name:Ti.ON_LIVE_STREAM_WARNING,options:[h,_],tag:vn.TRACER}).onSuccess(),this.safeEmit(Vr.LIVE_STREAMING_WARNING,h,_)},c.on(xy.REQUEST_WORKER_MANAGER_LIST,(h,_,B)=>{if(!this._joinInfo)return B(new qe(Ce.INVALID_OPERATION,"can not find join info to get worker manager"));(async function(Q,T,D,O){const P=de("UAP_AP").slice(0,de("AJAX_REQUEST_CONCURRENT")).map(U=>T.proxyServer?"https://".concat(T.proxyServer,"/ap/?url=").concat(U+"/api/v1?action=uap"):"https://".concat(U,"/api/v1?action=uap"));return await lce(P,Q,T,D,O)})(h,this._joinInfo,this._axiosCancelSource.token,So).then(_).catch(B)}),c};return t===ku.RAW?(this._liveRawStreamingClient=this._liveRawStreamingClient||s(),this._liveRawStreamingClient):(this._liveTranscodeStreamingClient=this._liveTranscodeStreamingClient||s(),this._liveTranscodeStreamingClient)}_createChannelMediaRelayClient(){if(!this._joinInfo)return new qe(Ce.INVALID_OPERATION,"can not create channel media relay client, please join channel first").throw();if(!this._channelMediaRelayClient){const s=this.getLocalVideoStats(),c=s.sendResolutionWidth,u=s.sendResolutionHeight,h=(t={joinInfo:this._joinInfo,clientId:this._clientId,websocketRetryConfig:this._config.websocketRetryConfig,httpRetryConfig:this._config.httpRetryConfig,resolution:{width:c,height:u}},aE("ChannelMediaRelay").create(t));h.on("state",_=>{_===e1.RELAY_STATE_FAILURE&&h&&h.dispose(),this.safeEmit(Vr.CHANNEL_MEDIA_RELAY_STATE,_)}),h.on("event",_=>{this.safeEmit(Vr.CHANNEL_MEDIA_RELAY_EVENT,_)}),this._channelMediaRelayClient=h,this._statsCollector.onStatsChanged=(_,B)=>{var Q;_==="resolution"&&((Q=this._channelMediaRelayClient)===null||Q===void 0||Q.setVideoProfile(B))}}var t;return this._channelMediaRelayClient}_handleFullDatachannel(t){const s=[],c=[];this._users.forEach(u=>{const h=u._dataChannels;h.forEach(_=>{t.some(B=>B.uid===u._uintid&&B.stream_id===_.id&&B.metadata===_.metadata)||s.push({uid:u._uintid,stream_id:_.id,ordered:_.ordered,max_retrans_times:_.maxRetransmits,metadata:_.metadata})}),t.filter(_=>_.uid===u._uintid).forEach(_=>{if(!h.some(B=>u._uintid===_.uid&&B.id===_.stream_id&&B.metadata===_.metadata)){const B=s.findIndex(Q=>u._uintid===Q.uid&&Q.stream_id===_.stream_id);B!==-1&&(c.push(_),s.splice(B,1))}})}),this._handleDataChannelDeleted(s),this._handleDataChannelUpdated(c),this._handleDataChannelAdded(t,!0),J.debug("[".concat(this._clientId,"] emit full infos, data_channel ids: ").concat(t.map(u=>u.stream_id))),this.safeEmit(Vr.PUBLISHED_USER_LIST,this._pendingPublishedUsers),this._pendingPublishedUsers=[]}_handleDataChannelAdded(t,s){const c=[];Array.isArray(t)&&t.length>0&&(J.debug("[".concat(this._clientId,"] data_channel ids: ").concat(t.map(u=>u.stream_id)," added")),t.forEach(u=>{const h=u.uid,_=u.stream_id,B=u.ordered,Q=u.max_retrans_times,T=u.metadata,D=this._users.find(P=>P._uintid===h);if(!D)return void J.error("[".concat(this._clientId,"] can not find target user!(on_add_data_channel)"));if(J.debug("[".concat(this._clientId,"] data_channel added with uid ").concat(h)),Et(c).call(c,D)||c.push(D),D._uintid||(D._uintid=h),D._dataChannels.findIndex(P=>P.id===u.stream_id)!==-1){const P=D._dataChannels.find(U=>U.id===u.stream_id);P==null||P._updateDataChannelConfig(bl(bl({},P==null?void 0:P.getConfig()),{},{metadata:u.metadata}))}else{const P={id:_,ordered:!!B,maxRetransmits:Q,metadata:T},U=function(H){return yte(H,!0)}(P);D._dataChannels.push(U),J.info("[".concat(this._clientId,"] remote user ").concat(D.uid," published datachannel")),s||this.safeEmit(Vr.USER_PUBLISHED,D,"datachannel",P)}this._p2pChannel.hasPendingRemoteDataChannel(D,u.stream_id)&&(J.debug("[".concat(this._clientId,"] resubscribe datachannel id: ").concat(u.stream_id," for user ").concat(D.uid," after reconnect.")),this._subscribeDataChannel(D,u.stream_id).catch(P=>{J.error("[".concat(this._clientId,"] resubscribe datachannel error"),P.toString())}))}))}_handleDataChannelUpdated(t){Array.isArray(t)&&t.length>0&&(J.debug("[".concat(this._clientId,"] data_channel ids: ").concat(t.map(s=>s.stream_id)," updated")),t.forEach(s=>{var c;const u=s.uid,h=s.stream_id,_=s.metadata,B=this._users.find(T=>T._uintid===u);if(!B)return void J.error("[".concat(this._clientId,"] can not find target user!(on_update_data_channel)"));const Q=B._dataChannels.find(T=>T.id===h);J.debug("[".concat(this._clientId,"] data_channel: ").concat(h," updated with uid ").concat(u,", last metadata: ").concat(Q==null||(c=Q._config)===null||c===void 0?void 0:c.metadata,", new metadata: ").concat(_)),this.safeEmit(Vr.USER_UNPUBLISHED,B,"datachannel",Q==null?void 0:Q._config),this.safeEmit(Vr.USER_PUBLISHED,B,"datachannel",{id:h,ordered:!!s.ordered,maxRetransmits:s.max_retrans_times,metadata:_})}))}_handleDataChannelDeleted(t){Array.isArray(t)&&t.length>0&&(J.debug("[".concat(this._clientId,"] data_channel ids: ").concat(t.map(s=>s.stream_id)," deleted")),t.forEach(s=>{const c=s.uid;s.stream_id;const u=this._users.find(_=>_._uintid===c);if(!u)return void J.error("[".concat(this._clientId,"] can not find target user!(on_delete_data_channel)"));const h=u._dataChannels.find(_=>_.id===s.stream_id);h&&(J.debug("[".concat(this._clientId,"] data_stream delete with uid ").concat(c)),u._dataChannels=u._dataChannels.filter(_=>_.id!==h.id),this._p2pChannel.unsubscribeDataChannel(u,[h]).then(_=>{if(_)return this._gateway.unsubscribeDataChannel(_,u.uid)}),J.info("[".concat(this._clientId,"] remote user ").concat(c," unpublished datachannel , id:").concat(h.id)),this.safeEmit(Vr.USER_UNPUBLISHED,u,"datachannel",h._config))}))}_handleUpdateDataChannel(t){const s=t.added,c=t.deleted;this._handleDataChannelDeleted(c??[]),this._handleDataChannelAdded(s??[])}_getEncodingName(t){var s,c;if(!this._joinResponse)return;const u=(s=this._joinResponse.ortc.rtpCapabilities.sendrecv)===null||s===void 0?void 0:s.videoCodecs;if(!u)return;for(const Q of u){var h;if(Q.payloadType===t)return Q==null||(h=Q.rtpMap)===null||h===void 0?void 0:h.encodingName}const _=(c=this._joinResponse.ortc.rtpCapabilities.recv)===null||c===void 0?void 0:c.videoCodecs;if(_)for(const Q of _){var B;if(Q.payloadType===t)return Q==null||(B=Q.rtpMap)===null||B===void 0?void 0:B.encodingName}return t===0?"unknown":void 0}_handleRemoveDataChannels(t){const s=this._users.find(c=>c.uid===t.uid);if(s){if(s._dataChannels!==void 0&&s._dataChannels.length>0){J.debug("[".concat(this._clientId,"] datachannel removed with uid ").concat(t.uid));const c=()=>{J.info("[".concat(this._clientId,"] remote user ").concat(s.uid," unpublished datachannel")),s._dataChannels.forEach(u=>{this.safeEmit(Vr.USER_UNPUBLISHED,s,"datachannel",u._config)})};this._p2pChannel.unsubscribeDataChannel(s,s._dataChannels).then(u=>{if(u)return this._gateway.unsubscribeDataChannel(u,s.uid)}),c()}}else J.warning("[".concat(this._clientId,"] can not find target user!(on_remove_datachannel)"))}_handleGatewayEvents(){this._gateway.on(No.UPDATE_GATEWAY_CONFIG,()=>{(function(){let t;try{t=window.localStorage.getItem("websdk_ng_global_parameter")}catch(s){return void J.error("Error loading sdk config",s.message)}if(t)try{const s=JSON.parse(window.atob(t)),c=Date.now();Object.keys(s).forEach(u=>{const h=s[u],_=h.value,B=h.type,Q=h.expires;Q&&Q<=c||B||M2()||!Object.prototype.hasOwnProperty.call(XA,u)||($e[u]=_,Vi[u]=_,J.debug("Update gateway parameters from config distribute",u,_))})}catch(s){J.error("Error update config from local cache",s.message)}})()}),this._gateway.on(No.DISCONNECT_P2P,async()=>{await this._p2pChannel.disconnectForReconnect()}),this._gateway.on(No.CONNECTION_STATE_CHANGE,(t,s,c)=>{var u;if(c===mi.FALLBACK)return;const h=()=>{this.safeEmit(Vr.CONNECTION_STATE_CHANGE,t,s,c)};if(qt.reportApiInvoke(this._sessionId||((u=this._gateway.joinInfo)===null||u===void 0?void 0:u.sid)||null,{name:Ti.CONNECTION_STATE_CHANGE,options:[t,s,c],tag:vn.TRACER}).onSuccess(JSON.stringify({cur:t,prev:s,reason:c})),J.info("[".concat(this._clientId,"] signal connection state change: ").concat(s," -> ").concat(t)),t==="DISCONNECTED")return this._reset(),void h();if(t==="RECONNECTING")this._users.forEach(B=>{B._trust_in_room_=!1,B._trust_audio_enabled_state_=!1,B._trust_video_enabled_state_=!1,B._trust_audio_mute_state_=!1,B._trust_video_mute_state_=!1,B._trust_audio_stream_added_state_=!1,B._trust_video_stream_added_state_=!1,B._is_pre_created||(B._audio_pre_subscribed||(B._audioSSRC=void 0,B._audioOrtc=void 0),B._video_pre_subscribed||(B._videoSSRC=void 0,B._videoOrtc=void 0,B._rtxSsrcId=void 0),B._cname=void 0)}),this._userOfflineTimeout&&window.clearTimeout(this._userOfflineTimeout),this._streamRemovedTimeout&&window.clearTimeout(this._streamRemovedTimeout),this._userOfflineTimeout=void 0,this._streamRemovedTimeout=void 0;else if(t==="CONNECTED"){var _;this._streamFallbackTypeCacheMap.forEach((B,Q)=>{this._gateway.setStreamFallbackOption(Q,B).catch(T=>{J.warning("[".concat(this._clientId,"] auto set stream fallback option failed"),T)})}),this._remoteStreamTypeCacheMap.forEach((B,Q)=>{this._gateway.setRemoteVideoStreamType(Q,B).catch(T=>{J.warning("[".concat(this._clientId,"] auto set remote stream type failed"),T)})}),de("VOS_CONFIGURE")&&Array.isArray(de("VOS_CONFIGURE"))&&de("VOS_CONFIGURE").length>0&&(this._gateway.setConfigure(de("VOS_CONFIGURE")).catch(B=>{J.debug("[".concat(this._clientId,"] auto set vos config failed"),B)}),J.debug("[".concat(this._clientId,"] ws connected auto set vos config"))),this._remoteDefaultVideoStreamType!==void 0&&((_=this._joinInfo)===null||_===void 0?void 0:_.defaultVideoStream)===void 0&&this.setRemoteDefaultVideoStreamType(this._remoteDefaultVideoStreamType).then(()=>{J.debug("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway connected"))}).catch(B=>{J.error("[".concat(this._clientId,"] setRemoteDefaultVideoStreamType after gateway failed, ").concat(B))}),this._dualStreamMode&&this._gateway.setDualStreamMode(this._dualStreamMode).catch(B=>{J.warning("[".concat(this._clientId,"] auto set dual stream mode failed"),B)}),this.store.useP2P||(this._p2pChannel.republish(),this._userOfflineTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._userOfflineTimeout=void 0,this._users.filter(B=>!B._trust_in_room_).forEach(B=>{J.debug("[".concat(this._clientId,"] user offline timeout, emit user offline ").concat(B.uid)),this._handleUserOffline({uid:B.uid})}))},3e3),this._streamRemovedTimeout=window.setTimeout(()=>{this.connectionState==="CONNECTED"&&(this._streamRemovedTimeout=void 0,this._users.forEach(B=>{B._trust_audio_mute_state_||(J.debug("[".concat(this._clientId,"] auto dispatch audio unmute event ").concat(B.uid)),this._handleMuteStream(B.uid,rr.AUDIO,!1)),B._trust_video_mute_state_||(J.debug("[".concat(this._clientId,"] auto dispatch video unmute event ").concat(B.uid)),this._handleMuteStream(B.uid,rr.VIDEO,!1)),B._trust_audio_enabled_state_||(J.debug("[".concat(this._clientId,"] auto dispatch enable local audio ").concat(B.uid)),this._handleSetStreamLocalEnable("audio",B.uid,!0)),B._trust_video_enabled_state_||(J.debug("[".concat(this._clientId,"] auto dispatch enable local video ").concat(B.uid)),this._handleSetStreamLocalEnable("video",B.uid,!0)),B._trust_video_stream_added_state_||(J.debug("[".concat(this._clientId,"] auto dispatch reset video stream added ").concat(B.uid)),this._handleResetAddStream(B,"video")),B._trust_audio_stream_added_state_||(J.debug("[".concat(this._clientId,"] auto dispatch reset audio stream added ").concat(B.uid)),this._handleResetAddStream(B,"audio")),B._video_added_||B._audio_added_||(J.debug("[".concat(this._clientId,"] auto dispatch stream remove ").concat(B.uid)),this._handleRemoveStream({uid:B.uid,uint_id:B._uintid}))}))},1e3))}h()}),this._gateway.on(No.REQUEST_NEW_GATEWAY_LIST,async(t,s)=>{if(!this._joinInfo)return s(new qe(Ce.UNEXPECTED_ERROR,"can not recover, no join info"));try{let c;if(this._fallbackServerInfo)c=this._fallbackServerInfo,this._fallbackServerInfo=void 0,this._joinInfo.preload=!1,qt.reportApiInvoke(this._sessionId,{name:Ti.VOS_FALLBACK_CN,options:{cur:c.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!0},tag:vn.TRACER}).onSuccess(),J.info("[".concat(this._clientId,"] use fallback cn server info"));else{const h=await _z(bl(bl({},this._joinInfo),{},{uid:this._joinInfo.uid,stringUid:void 0}));h?(c=h.ap,Sre(h),this._joinInfo.preload=!0):(c=await _9(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store),this._joinInfo.preload=!1)}this._joinInfo&&(this._joinInfo.apResponse=c.gatewayInfo.res,this._joinInfo.gatewayAddrs=c.gatewayInfo.gatewayAddrs,this._joinInfo.uni_lbs_ip=c.gatewayInfo.uni_lbs_ip,delete this._joinInfo.signalResponse);const u=[];c.gatewayInfo.gatewayAddrs.forEach(h=>{const _=ir(h.address.split(":"),2),B=_[0],Q=_[1];this._joinInfo&&this._joinInfo.proxyServer?u.push({proxy:this._joinInfo.proxyServer,host:B,port:Q}):u.push({host:B,port:Q})}),t(u)}catch(c){s(c)}}),this._gateway.on(No.NETWORK_QUALITY,t=>{this._networkQualitySensitivity==="normal"&&this.safeEmit(Vr.NETWORK_QUALITY,t)}),this._gateway.on(No.STREAM_TYPE_CHANGE,(t,s)=>{this.safeEmit(Vr.STREAM_TYPE_CHANGED,t,s),qt.reportApiInvoke(this._sessionId,{name:Ti.STREAM_TYPE_CHANGE,options:[t,s],tag:vn.TRACER}).onSuccess(JSON.stringify({uid:t,streamType:s}))}),this._gateway.isPreSub=()=>"isPreSub"in this._p2pChannel&&this._p2pChannel.isPreSub(),this._gateway.isPreallocation=()=>"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation(),this._gateway.on(No.IS_P2P_DISCONNECTED,t=>{this._p2pChannel.isP2PDisconnected()?t(!0):this._p2pChannel.hasLocalMedia()||this._p2pChannel.hasRemoteMedia()?t(!1):t(!0)}),this._gateway.on(No.REQUEST_P2P_CONNECTION_PARAMS,async(t,s,c)=>{try{let u=await this._p2pChannel.getEstablishParams();u&&"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation()||(u=await this._p2pChannel.startP2PConnection(t)),s(u)}catch(u){c(u)}}),this._gateway.on(No.JOIN_RESPONSE,(t,s)=>{if(this.store.useP2P)return;let c;this._joinResponse=t,t.attributes?c=t.attributes.userAttributes.preSubSsrcs:J.debug("no attributes in joinResponse");const u=hte(t.ortc,s,c);this._p2pChannel.connect(u)}),this._gateway.on(No.PRE_CONNECT_PC,async(t,s,c)=>{const u=t.candidates,h=t.fingerprint,_=t.turnServer;if(this._joinInfo&&u.length>0&&!this._p2pChannel.isPlanB){var B,Q;const D=this._joinInfo.apResponse,O=D.cert,P=D.cid,U="".concat(P,"_").concat(O),H=t.iceUfrag||U,$=t.icePwd||U;if(!YX(H,$))return void J.debug("[".concat(this._clientId,"] ufrag/pwd length is not valid, length: ").concat(H.length," / ").concat($.length));let Z;await this._p2pChannel.getEstablishParams()&&"isPreallocation"in this._p2pChannel&&this._p2pChannel.isPreallocation()?(this._p2pChannel.updateConnectionConfiguration({turnServer:_,cloudProxyServer:this._joinInfo.cloudProxyServer,isPreallocation:!0}),J.debug("pre pc before connect ws/dc, use sdp endpoint")):await this._p2pChannel.startP2PConnection({turnServer:_,cloudProxyServer:this._joinInfo.cloudProxyServer,isPreallocation:!0});const te=(B=this._joinInfo.signalResponse)===null||B===void 0||(B=B.attributes)===null||B===void 0||(B=B.userAttributes)===null||B===void 0?void 0:B.preSubSsrcs;Array.isArray(te)&&te.length>0&&(Z=Ite(te));const se=(Q=this._joinInfo.signalResponse)===null||Q===void 0?void 0:Q.rtpCapabilities;try{var T;s(await this._p2pChannel.connect(bl({iceParameters:{iceUfrag:H,icePwd:$},dtlsParameters:{fingerprints:[{hashFunction:"sha-256",fingerprint:(T=de("FINGERPRINT"))!==null&&T!==void 0?T:h}]},candidates:u,rtpCapabilities:se||{send:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]},recv:{audioCodecs:[],videoCodecs:[],audioExtensions:[],videoExtensions:[]}},setup:"active",cname:"o/i14u9pJrxRKAsu",preallocation:!0},Z?{preSSRCs:Z}:{})))}catch(ge){ge.code&&ge.code===Ce.EXCHANGE_SDP_FAILED&&(J.debug("try to pre connect pc, but exchange sdp failed, reset p2p connection",ge),await this._p2pChannel.startP2PConnection({turnServer:_,cloudProxyServer:this._joinInfo.cloudProxyServer},!0)),c(ge)}}}),this._gateway.on(No.VOS_FALLBACK,t=>{t==="fallback_hls"&&this.safeEmit(Vr.FALLBACK_TO_HLS,Pr.VOSERROR)}),this._gateway.on(No.RESET_SIGNAL,()=>{this._p2pChannel instanceof Em&&this._p2pChannel.fallbackConnection(),this._handleGatewaySignalEvents()}),this._gateway.on(No.DATACHANNEL_FAILBACK,()=>{qt.reportApiInvoke(this._sessionId,{name:Ti.DATACHANNEL_FAILBACK,options:{},tag:vn.TRACER}).onSuccess(),this._joinGateway()})}_handleGatewaySignalEvents(){this._gateway.signal.on(Ur.ON_USER_ONLINE,this._handleUserOnline),this._gateway.signal.on(Ur.ON_USER_OFFLINE,this._handleUserOffline),this._gateway.signal.on(Ur.ON_ADD_AUDIO_STREAM,t=>this._handleAddAudioOrVideoStream("audio",t.uid,t.ssrcId,t.cname,t.pt,t.uint_id,t.ortc)),this._gateway.signal.on(Ur.ON_ADD_VIDEO_STREAM,t=>this._handleAddAudioOrVideoStream("video",t.uid,t.ssrcId,t.cname,t.pt,t.uint_id,t.ortc,t.rtxSsrcId)),this._gateway.signal.on(Ur.ON_REMOTE_DATASTREAM_UPDATE,t=>{this._handleUpdateDataChannel(t)}),this._gateway.signal.on(Ur.ON_REMOTE_FULL_DATASTREAM_INFO,t=>{var s;this._handleFullDatachannel((s=t.datastreams)!==null&&s!==void 0?s:[])}),this._gateway.signal.on(Ur.ON_REMOVE_STREAM,this._handleRemoveStream),this._gateway.signal.on(Ur.ON_P2P_LOST,this._handleP2PLost),this._gateway.signal.on(Ur.MUTE_AUDIO,t=>this._handleMuteStream(t.uid,rr.AUDIO,!0)),this._gateway.signal.on(Ur.UNMUTE_AUDIO,t=>this._handleMuteStream(t.uid,rr.AUDIO,!1)),this._gateway.signal.on(Ur.MUTE_VIDEO,t=>this._handleMuteStream(t.uid,rr.VIDEO,!0)),this._gateway.signal.on(Ur.UNMUTE_VIDEO,t=>this._handleMuteStream(t.uid,rr.VIDEO,!1)),this._gateway.signal.on(Ur.RECEIVE_METADATA,t=>{const s=Yr(t.metadata);this.safeEmit(Vr.RECEIVE_METADATA,t.uid,s)}),this._gateway.signal.on(Ur.ON_DATA_STREAM,async t=>{var s;if(!t)return;let c=Yr(t.payload);if(this._encryptDataStream&&this._encryptDataStreamIv&&this._encryptDataStreamKey&&window.crypto.subtle&&Et(s=["aes-128-gcm2","aes-256-gcm2"]).call(s,this._encryptionMode)){if(t.payload.lengthQ.uid===t.uid),B=h==null?void 0:h.audioRecv.find(Q=>Q.ssrc===(_==null?void 0:_._audioSSRC));u=B==null?void 0:B.jitterBufferMs}(u==null||Number.isNaN(u))&&(u=0),bce(bl(bl({},t),{},{payload:c}),u,{id:this._clientId,onStreamMessage:typeof this.onStreamMessage=="function"?this.onStreamMessage.bind(this):void 0,safeEmit:this.safeEmit.bind(this)})}),this._gateway.signal.on(Ur.ON_CRYPT_ERROR,()=>{vg(()=>{J.warning("[".concat(this._clientId,"] on crypt error")),this.safeEmit(Vr.CRYPT_ERROR)},this._sessionId)}),this._gateway.signal.on(Ur.ON_TOKEN_PRIVILEGE_WILL_EXPIRE,this._handleTokenWillExpire),this._gateway.signal.on(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{J.warning("[".concat(this._clientId,"] received message onTokenPrivilegeDidExpire, please get new token and join again")),this._gateway.leave(!0,mi.TOKEN_EXPIRE),this.safeEmit(Vr.ON_TOKEN_PRIVILEGE_DID_EXPIRE),this._reset()}),this._gateway.signal.on(Ur.ON_STREAM_FALLBACK_UPDATE,t=>{J.debug("[".concat(this._clientId,"] stream fallback peerId: ").concat(t.stream_id,", attr: ").concat(t.stream_type)),this.safeEmit(Vr.STREAM_FALLBACK,t.stream_id,t.stream_type===1?"fallback":"recover")}),this._gateway.signal.on(Ur.ENABLE_MULTI_STREAM,t=>{this._dualStreamMode===Ie.AUTO_SIMULCAST_STREAM&&this.enableDualStream().catch(s=>{J.debug("[".concat(this._clientId,"] set dual stream mode error"),s.toString())})}),this._gateway.signal.on(Ur.ON_PUBLISH_STREAM,t=>{this.uid===this._uid&&(this._p2pChannel.reportPublishEvent(!0,null,void 0,!1,JSON.stringify({proxy:t.proxy})),J.info("[".concat(this._clientId,"] on publish stream, ").concat(JSON.stringify(t))))}),this._gateway.signal.on(Ur.ENABLE_LOCAL_VIDEO,t=>{this._handleSetStreamLocalEnable("video",t.uid,!0)}),this._gateway.signal.on(Ur.DISABLE_LOCAL_VIDEO,t=>{this._handleSetStreamLocalEnable("video",t.uid,!1)}),this._gateway.signal.on(er.REQUEST_TIMEOUT,(t,s)=>{if(this._joinInfo)switch(t){case ur.PUBLISH:{if(!s)return;const h=s.ortc;if(h){var c,u;const _=h.some(T=>T.stream_type===En.Audio),B=h.some(T=>T.stream_type!==En.Audio),Q=h.some(T=>{let D=T.stream_type;return D===En.Screen||D===En.ScreenLow});s.state==="offer"&&qt.publish(this._joinInfo.sid,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:!1,ec:Ce.TIMEOUT,audio:_,video:B,p2pid:s.p2p_id,publishRequestid:this.store.pubId,screenshare:Q,audioName:_?(c=h.find(T=>T.stream_type===En.Audio))===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId.toString():void 0,videoName:B?(u=h.find(T=>T.stream_type!==En.Audio))===null||u===void 0||(u=u.ssrcs[0])===null||u===void 0?void 0:u.ssrcId.toString():void 0})}break}case ur.SUBSCRIBE:s&&qt.subscribe(this._joinInfo.sid,{succ:!1,ec:Ce.TIMEOUT,audio:s.stream_type===rr.AUDIO,video:s.stream_type===rr.VIDEO,peerid:s.stream_id,subscribeRequestid:s.ssrcId,p2pid:this.store.p2pId,eventElapse:_A.measureFromSubscribeStart(this.store.clientId,s.ssrcId),preSsrc:this._p2pChannel.isPreSubScribe(s.ssrcId)})}}),this._gateway.signal.on(Ur.ON_P2P_OK,t=>{this.uid,this._uid}),this._gateway.signal.on(Ur.ON_PUBLISHED_USER_LIST,t=>{if(t==null||!t.users)return;let s=t.users;de("BLOCK_LOCAL_CLIENT")&&(s=s.filter(c=>!Lu(c.string_id||c.stream_id,this.channelName))),this._handleUserList(s)}),this._gateway.signal.on(Ur.ON_USER_LIST,t=>{if(!t||!Array.isArray(t.users)||t.users.length===0)return;let s=t.users;s=de("BLOCK_LOCAL_CLIENT")?s.filter(c=>!Lu(c.string_id||c.stream_id,this.channelName)):s,this._handleUserList(s)}),this._gateway.signal.on(Ur.ON_RTP_CAPABILITY_CHANGE,t=>{const s=t.video_codec;if(this._p2pChannel instanceof Em){if(this.role==="audience"&&de("UPDATE_RTP_CAP_IN_HOST"))return this._pendingRtpCapabilityChange=t,void J.debug("[".concat(this._clientId,"] no need to change rtp capability because of audience, params: ").concat(JSON.stringify(t)));this._p2pChannel.updateRemoteRTPCapabilities(s.map(c=>c.toLowerCase()).filter(c=>{var u;return Et(u=Object.keys(Qn)).call(u,c)}))}}),this._gateway.signal.on(er.VOS_FALLBACK_PROMISE,async(t,s,c)=>{if(t==="FALLBACKCN"&&de("ENABLE_QUALITY_FALLBACK")){if(!this._joinInfo)return c(new qe(Ce.UNEXPECTED_ERROR,"can not recover, no join info"));J.info("[".concat(this._clientId,"] try fallback to cn, start request new server info"));const h=this._joinInfo.apRequestDetail;try{this._joinInfo.apRequestDetail=t;const _=await _9(this._joinInfo,this._axiosCancelSource.token,this._config.httpRetryConfig||So,this.store);if(de("QUALITY_FALLBACK_REHEARSAL"))return qt.reportApiInvoke(this._sessionId,{name:Ti.VOS_FALLBACK_CN,options:{cur:_.gatewayInfo.gatewayAddrs,prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:vn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=h,void c();this._fallbackServerInfo=_,s()}catch(_){var u;const B=_==null||(u=_.data)===null||u===void 0?void 0:u.desc;de("QUALITY_FALLBACK_REHEARSAL")?(qt.reportApiInvoke(this._sessionId,{name:Ti.VOS_FALLBACK_CN,options:{cur:"failed, errorReason: "+B||"unknown",prev:this._joinInfo.gatewayAddrs,is_done:!1},tag:vn.TRACER}).onSuccess(),this._joinInfo.apRequestDetail=h):Array.isArray(B)&&Et(B).call(B,"request downgrade fallback")&&this.safeEmit(Vr.FALLBACK_TO_HLS,Pr.AP_ERROR),c(_)}}else c()})}_handleUserList(t){var s=this;if(t.length===0)return;const c=[],u=[],h=[],_=[],B=[],Q=[],T=this.getListeners(Vr.USER_LIST).length>0,D=this.getListeners(Vr.PUBLISHED_USER_LIST).length>0;for(const P of t){let U=this._users.find(me=>me._uintid===P.stream_id);const H=!!U;U?U._trust_in_room_=!0:(U=new vp(P.string_id||P.stream_id,P.stream_id),this._users.push(U),this.store.firstVideoFrameDecoded(U.uid,{userJoinNotify:Date.now()}));const $=jo.Audio&P.stream_type,Z=(jo.Video|jo.LowVideo)&P.stream_type,te=(65280&P.stream_type)!=0,se=$&&U.hasAudio,ge=Z&&U.hasVideo;Z&&(U._trust_video_stream_added_state_=!0,U._video_added_=!0,U._videoSSRC=P.video_ssrc,U._rtxSsrcId=P.video_rtx),$&&(U._trust_audio_stream_added_state_=!0,U._audio_added_=!0,U._audioSSRC=P.audio_ssrc),($&&!se||Z&&!ge||te)&&(u.push(U),$&&!se&&h.push(U),Z&&!ge&&_.push(U)),H||B.push(U),Z&&this._p2pChannel.hasPendingRemoteMedia(U,"video")&&Q.push({user:U,mediaType:"video"}),$&&this._p2pChannel.hasPendingRemoteMedia(U,"audio")&&Q.push({user:U,mediaType:"audio"}),c.push(U)}Q.length>0&&(J.debug("[".concat(this._clientId,"] RE massSubscribe after reconnect ").concat(Q.map(P=>"user: ".concat(P.user.uid,", mediaType: ").concat(P.mediaType)).join("; ")," ")),this.massSubscribe(Q).catch(P=>{J.error("[".concat(this._clientId,"] mass resubscribe error"),P.toString())}));const O=function(){let P=arguments.length>0&&arguments[0]!==void 0&&arguments[0];J.info("[".concat(s._clientId,"] client not emit user-list event case there is no user-list listener...")),P||B.forEach(U=>{J.debug("[".concat(s._clientId,"] user online"),U._uintid),s.safeEmit(Vr.USER_JOINED,U)}),u.length>0&&(h.forEach(U=>{J.info("[".concat(s._clientId,"] remote user ").concat(U.uid," published audio")),s.safeEmit(Vr.USER_PUBLISHED,U,"audio")}),_.forEach(U=>{J.info("[".concat(s._clientId,"] remote user ").concat(U.uid," published video")),s.safeEmit(Vr.USER_PUBLISHED,U,"video")}))};if(de("ENABLE_USER_LIST"))T?(this.safeEmit(Vr.USER_LIST,c),O(!0)):O();else if(D){if(u.length>0){const P=VA(u).call(u,(U,H)=>"".concat(U&&U+", ").concat(H.uid),"");de("ENABLE_DATASTREAM_2")?this._pendingPublishedUsers=u:(J.info("[".concat(this._clientId,"] client emit published-user-list, users: ").concat(P)),this.safeEmit(Vr.PUBLISHED_USER_LIST,u))}}else O()}_handleP2PEvents(){this._gateway.signal.on(Ur.ON_USER_OFFLINE,()=>{this._p2pChannel.disconnectForReconnect()}),this._gateway.signal.on(Go.PUBLISH,(t,s,c)=>{const u=t.uid;t.forEach(h=>{const _=h.kind,B=h.ssrcs,Q=h.mid,T=h.isMuted;this._handleP2PAddAudioOrVideoStream(_,u,B[0].ssrcId,Q);const D=this._users.find(O=>O.uid===u);return D&&this.store.useP2P?this._p2pChannel.mockSubscribe(D,_,B[0].ssrcId,Q).then(()=>{s()}).catch(c):s(),this._handleMuteStream(u,_,!!T)})}),this._gateway.signal.on(Go.CALL,async(t,s,c)=>{if(this.store.useP2P)try{var u;s(await this._p2pChannel.startP2P({turnServer:(u=this._joinInfo)===null||u===void 0?void 0:u.turnServer},t))}catch(h){c(h)}}),this._gateway.signal.on(er.P2P_CONNECTION,async t=>{this.store.useP2P&&(await this._p2pChannel).p2pConnect(t)}),this._gateway.signal.on(Go.UNPUBLISH,async(t,s,c)=>{if(this.store.useP2P){const u=t.unpubMsg,h=t.uid,_=this._users.find(B=>B.uid===h);if(!_)return J.warning("[".concat(this._clientId,"] can not find remote user, ignore mute event, uid: ").concat(h)),void s();try{u.forEach(async B=>{const Q=B.stream_type===En.Audio?rr.AUDIO:rr.VIDEO;await this._p2pChannel.unsubscribe(_,Q),this._handleMuteStream(h,Q,!0)}),s()}catch(B){c(B)}}}),this._gateway.signal.on(Go.CONTROL,async(t,s)=>{switch(t.action){case Uu.MUTE_LOCAL_VIDEO:this._handleMuteStream(s,rr.VIDEO,!0);break;case Uu.MUTE_LOCAL_AUDIO:this._handleMuteStream(s,rr.AUDIO,!0);break;case Uu.UNMUTE_LOCAL_VIDEO:this._handleP2PAddAudioOrVideoStream("video",s),this._handleMuteStream(s,rr.VIDEO,!1);break;case Uu.UNMUTE_LOCAL_AUDIO:this._handleP2PAddAudioOrVideoStream("audio",s),this._handleMuteStream(s,rr.AUDIO,!1)}}),this._gateway.signal.on(Go.RESTART_ICE,async(t,s,c)=>{if(this.store.useP2P)try{const u=t.direction,h=t.iceParameter;u!==EA.SEND_ONLY||h?s(await this._p2pChannel.restartICE(u,h)):(this._p2pChannel.handleDisconnect(u),s())}catch(u){c(u)}}),this._gateway.signal.on(Go.CANDIDATE,t=>{if(this.store.useP2P){const s=t.candidate,c=t.direction;this._p2pChannel.addRemoteCandidate(s,c)}}),this._p2pChannel.on(Cr.RequestP2PRestartICE,async(t,s,c)=>{try{const u=t.direction;s(await this._gateway.sendExtensionMessage(Go.RESTART_ICE,t,u===EA.SEND_ONLY))}catch(u){c(u)}}),this._p2pChannel.on(Cr.LocalCandidate,t=>{this._gateway.sendExtensionMessage(Go.CANDIDATE,JSON.stringify(t),!0)}),this._p2pChannel.on(Cr.RequestP2PMuteLocal,async(t,s,c)=>{try{await this._gateway.sendExtensionMessage(Go.CONTROL,t,!0),s()}catch(u){c(u)}}),this._p2pChannel.on(Cr.RequestP2PUnmuteRemote,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.unmuteRemote(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.RequestP2PMuteRemote,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.muteRemote(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.StateChange,(t,s)=>{s===ln.Connected&&this._p2pChannel.republish()})}_handleP2PChannelEvents(){this._p2pChannel.on(Cr.PeerConnectionStateChange,t=>{const s=this._peerConnectionState;t!==s&&(this.safeEmit(Vr.PEERCONNECTION_STATE_CHANGE,t,s),this._peerConnectionState=t)}),this._p2pChannel.on(Cr.RequestMuteLocal,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.muteLocal(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.RequestUnmuteLocal,async(t,s,c)=>{if(this._joinInfo)try{await this._gateway.unmuteLocal(t,this._joinInfo.stringUid||this._joinInfo.uid),s()}catch(u){u.code===Ce.DISCONNECT_P2P?s():c(u)}else s()}),this._p2pChannel.on(Cr.RequestRePublish,(t,s,c)=>{this.publish(t,!1).then(s).catch(c)}),this._p2pChannel.on(Cr.RequestRePublishDataChannel,(t,s,c)=>{Ut.all(t.map(async u=>{const h=await this._p2pChannel.publishDataChannel([u]);try{h.forEach(_=>{this._uid&&this._gateway.publishDataChannel(this._uid,_,!0)})}catch(_){if(_.code!==Ce.DISCONNECT_P2P)throw _}})).then(s).catch(c)}),this._p2pChannel.on(Cr.RequestReSubscribe,async(t,s,c)=>{try{for(const u of t){const h=u.user;u.kind===rr.VIDEO?await this.subscribe(h,"video"):await this.subscribe(h,"audio")}s()}catch(u){c(u)}}),this._p2pChannel.on(Cr.RequestUpload,(t,s)=>{this._gateway.upload(t,s)}),this._p2pChannel.on(Cr.RequestUploadStats,t=>{this._gateway.uploadWRTCStats(t)}),this._p2pChannel.on(Cr.MediaReconnectStart,t=>{this.safeEmit(Vr.MEDIA_RECONNECT_START,t)}),this._p2pChannel.on(Cr.MediaReconnectEnd,t=>{this.safeEmit(Vr.MEDIA_RECONNECT_END,t)}),this._p2pChannel.on(Cr.NeedSignalRTT,t=>{t(this._gateway.getSignalRTT())}),this._p2pChannel.on(Cr.RequestRestartICE,async t=>{if(this.store.useP2P)return;const s=await this._p2pChannel.restartICE(t),c=await s.next();if(c.done)return;const u=c.value;let h;try{h=await this._gateway.restartICE({iceParameters:u})}catch(B){return void s.throw(B)}const _=function(B){const Q=B.iceParameters;return{iceParameters:{iceUfrag:Q.iceUfrag,icePwd:Q.icePwd}}}(h).iceParameters;await s.next({remoteIceParameters:_})}),this._p2pChannel.on(Cr.RequestReconnect,async()=>{this._gateway.reconnect()}),this._p2pChannel.on(Cr.RequestReconnectPC,async()=>{var t;const s=await this._p2pChannel.startP2PConnection({turnServer:(t=this._joinInfo)===null||t===void 0?void 0:t.turnServer}),c=s.iceParameters,u=s.dtlsParameters,h=s.rtpCapabilities,_=await this._gateway.reconnectPC({iceParameters:c,dtlsParameters:u,rtpCapabilities:h}),B=hte(_.gatewayEstablishParams,_.gatewayAddress);await this._p2pChannel.connect(B),await this._p2pChannel.republish(),await this._p2pChannel.reSubscribe()}),this._p2pChannel.on(Cr.RequestUnpublishForReconnectPC,async(t,s,c)=>{this._joinInfo&&this._uid!==void 0?(await this._gateway.unpublish(t,this._uid),s()):c()}),this._p2pChannel.on(Cr.P2PLost,()=>{this.safeEmit(Vr.P2P_LOST,this.store.uid)}),this._p2pChannel.on(Cr.UpdateVideoEncoder,t=>{t._encoderConfig&&this._gateway.setVideoProfile(t._encoderConfig)}),this._p2pChannel.on(Cr.ConnectionTypeChange,t=>{this.safeEmit(Vr.IS_USING_CLOUD_PROXY,t),this._gateway.setUsingProxy(t)}),this._p2pChannel.on(Cr.FirstVideoBufferReady,(t,s)=>{this.safeEmit(Vr.FIRST_VIDEO_BUFFER_READY,t,s)}),this._p2pChannel.on(Cr.FirstVideoPreRender,(t,s)=>{this.safeEmit(Vr.FIRST_VIDEO_PRE_RENDER,t,s)}),this._p2pChannel.on(Cr.RequestLowStreamParameter,t=>{t(this._lowStreamParameter||{width:160,height:120,framerate:15,bitrate:50})}),this._p2pChannel.on(Cr.QueryClientConnectionState,t=>{t(this.connectionState)}),this._p2pChannel.on(Cr.AudioMetadata,t=>{this.safeEmit(Vr.AUDIO_METADATA,t)}),this._p2pChannel.on(Cr.AudioPts,t=>{this.safeEmit(Vr.AUDIO_PTS,Number(t))})}getKeyMetrics(){return this.store.keyMetrics}async enableContentInspect(t){if(!this._joinInfo||this.connectionState!=="CONNECTED")throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] can not create content inspect, please join channel first"));if(this._inspect)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] Inspect content service already in connecting/connected state"));try{const c=(s={config:t},aE("ContentInspect").create(s));this._inspect=c,this.handleVideoInspectEvents(c);const u=this._joinInfo,h=u.appId,_=u.cname,B=u.sid,Q=u.token,T=u.uid,D=u.cid,O=u.vid;await c.init({appId:h,areaCode:"",cname:_,sid:B,token:Q,uid:T,cid:D,vid:O?Number(O):0},So)}catch(c){throw Array.isArray(c)?c[0]:c}var s}handleVideoInspectEvents(t){t.on(fa.CONNECTION_STATE_CHANGE,(s,c)=>{if(this.safeEmit(Vr.CONTENT_INSPECT_CONNECTION_STATE_CHANGE,s,c),c===Oo.CONNECTED){if(this.connectionState!=="CONNECTED")return void this.safeEmit(Vr.CONTENT_INSPECT_ERROR,new qe(Ce.OPERATION_ABORTED,"Content inspect was cancelled because it left the channel"));t.inspectImage()}}),t.on(fa.INSPECT_RESULT,(s,c)=>{var u;if((c==null?void 0:c.code)===Ce.INVALID_OPERATION&&this.connectionState==="DISCONNECTED")return J.debug("Stop inspect content because that has left channel"),this==null||(u=this._inspect)===null||u===void 0||u.close(),void(this._inspect=void 0);this.safeEmit(Vr.CONTENT_INSPECT_RESULT,s,c)}),t.on(fa.CLIENT_LOCAL_VIDEO_TRACK,s=>{s(this.localTracks.filter(c=>c.trackMediaType==="video")[0])})}async disableContentInspect(){if(!this._inspect)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] inspectVideoContent not started"));try{this._inspect.close(),this._inspect=void 0}catch(t){throw Array.isArray(t)?t[0]:t}}async setImageModeration(t,s){if(ll(t,"enabled"),t){if(!s)throw new qe(Ce.INVALID_PARAMS,"config is required");if(Pre(s),!this._joinInfo)throw new qe(Ce.INVALID_OPERATION,"can not create image moderation, please join channel first");try{if(this._moderation)this._moderation.updateConfig(s);else{const u=(c={config:s},aE("ImageModeration").create(c));this._moderation=u,this.handleImageModerationEvents(u);const h=this._joinInfo,_=h.appId,B=h.cname,Q=h.sid,T=h.token,D=h.uid,O=h.cid,P=h.vid;await u.init({appId:_,areaCode:"",cname:B,sid:Q,token:T,uid:D,cid:O,vid:P?Number(P):0},So)}}catch(u){throw Array.isArray(u)?u[0]:u}}else{var c;if(!this._moderation)throw new qe(Ce.INVALID_OPERATION,"[".concat(this._clientId,"] image moderation not started"));try{this._moderation.close(),this._moderation.removeAllListeners(),this._moderation=void 0}catch(u){throw Array.isArray(u)?u[0]:u}}}handleImageModerationEvents(t){t.on(rd.CONNECTION_STATE_CHANGE,(s,c)=>{if(this.safeEmit(Vr.IMAGE_MODERATION_CONNECTION_STATE_CHANGE,s,c),s===r1.CONNECTED){if(this.connectionState!=="CONNECTED")throw this.setImageModeration(!1),new qe(Ce.OPERATION_ABORTED,"Image moderation was cancelled because it left the channel");t.inspectImage()}}),t.on(rd.CLIENT_LOCAL_VIDEO_TRACK,s=>{s(this.localTracks.filter(c=>c.trackMediaType==="video")[0])})}setP2PTransport(t){if(function(s){As(s,"transport",["default","auto","relay","sd-rtn"])}(t),this.mode!=="p2p")throw new qe(Ce.INVALID_OPERATION,"only p2p mode can set p2pTransport");this.store.p2pTransport=t,J.info("[".concat(this._clientId,"] set client p2pTransport to ").concat(t))}getJoinChannelServiceRecords(){return J.debug("getJoinChannelServiceRecords"),this.store.joinChannelServiceRecords}async setPublishAudioFilterEnabled(t){ll(t,"enabled"),Dn("ENABLE_PUBLISH_AUDIO_FILTER",t),this._joinInfo&&await this._gateway.setPublishAudioFilterEnabled(t)}_setRteInfo(t,s){this.store.rteUrl=t,this.store.rteSid=s}_isPreRender(){return"isPreRender"in this._p2pChannel&&this._p2pChannel.isPreRender()}_handleResetAddStream(t,s){switch(s){case"audio":t._audio_added_=!1,t._trust_audio_stream_added_state_=!0;break;case"video":t._video_added_=!1,t._trust_video_stream_added_state_=!0}}},Pt(Zt.prototype,"leave",[Ure],Object.getOwnPropertyDescriptor(Zt.prototype,"leave"),Zt.prototype),Pt(Zt.prototype,"publish",[xre],Object.getOwnPropertyDescriptor(Zt.prototype,"publish"),Zt.prototype),Pt(Zt.prototype,"unpublish",[Fre],Object.getOwnPropertyDescriptor(Zt.prototype,"unpublish"),Zt.prototype),Pt(Zt.prototype,"subscribe",[Gre],Object.getOwnPropertyDescriptor(Zt.prototype,"subscribe"),Zt.prototype),Pt(Zt.prototype,"presubscribe",[Vre],Object.getOwnPropertyDescriptor(Zt.prototype,"presubscribe"),Zt.prototype),Pt(Zt.prototype,"massSubscribe",[Kre],Object.getOwnPropertyDescriptor(Zt.prototype,"massSubscribe"),Zt.prototype),Pt(Zt.prototype,"unsubscribe",[Hre],Object.getOwnPropertyDescriptor(Zt.prototype,"unsubscribe"),Zt.prototype),Pt(Zt.prototype,"massUnsubscribe",[Yre],Object.getOwnPropertyDescriptor(Zt.prototype,"massUnsubscribe"),Zt.prototype),Pt(Zt.prototype,"setLowStreamParameter",[jre],Object.getOwnPropertyDescriptor(Zt.prototype,"setLowStreamParameter"),Zt.prototype),Pt(Zt.prototype,"setDualStreamMode",[Jre],Object.getOwnPropertyDescriptor(Zt.prototype,"setDualStreamMode"),Zt.prototype),Pt(Zt.prototype,"enableDualStream",[qre],Object.getOwnPropertyDescriptor(Zt.prototype,"enableDualStream"),Zt.prototype),Pt(Zt.prototype,"disableDualStream",[Wre],Object.getOwnPropertyDescriptor(Zt.prototype,"disableDualStream"),Zt.prototype),Pt(Zt.prototype,"setClientRole",[Xre],Object.getOwnPropertyDescriptor(Zt.prototype,"setClientRole"),Zt.prototype),Pt(Zt.prototype,"_setClientRoleOptions",[zre],Object.getOwnPropertyDescriptor(Zt.prototype,"_setClientRoleOptions"),Zt.prototype),Pt(Zt.prototype,"setProxyServer",[$re],Object.getOwnPropertyDescriptor(Zt.prototype,"setProxyServer"),Zt.prototype),Pt(Zt.prototype,"setTurnServer",[Zre],Object.getOwnPropertyDescriptor(Zt.prototype,"setTurnServer"),Zt.prototype),Pt(Zt.prototype,"setLicense",[eie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLicense"),Zt.prototype),Pt(Zt.prototype,"startProxyServer",[tie],Object.getOwnPropertyDescriptor(Zt.prototype,"startProxyServer"),Zt.prototype),Pt(Zt.prototype,"stopProxyServer",[rie],Object.getOwnPropertyDescriptor(Zt.prototype,"stopProxyServer"),Zt.prototype),Pt(Zt.prototype,"setLocalAccessPointsV2",[iie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLocalAccessPointsV2"),Zt.prototype),Pt(Zt.prototype,"setLocalAccessPoints",[nie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLocalAccessPoints"),Zt.prototype),Pt(Zt.prototype,"setRemoteDefaultVideoStreamType",[oie],Object.getOwnPropertyDescriptor(Zt.prototype,"setRemoteDefaultVideoStreamType"),Zt.prototype),Pt(Zt.prototype,"setRemoteVideoStreamType",[sie],Object.getOwnPropertyDescriptor(Zt.prototype,"setRemoteVideoStreamType"),Zt.prototype),Pt(Zt.prototype,"setStreamFallbackOption",[aie],Object.getOwnPropertyDescriptor(Zt.prototype,"setStreamFallbackOption"),Zt.prototype),Pt(Zt.prototype,"setEncryptionConfig",[Aie],Object.getOwnPropertyDescriptor(Zt.prototype,"setEncryptionConfig"),Zt.prototype),Pt(Zt.prototype,"renewToken",[cie],Object.getOwnPropertyDescriptor(Zt.prototype,"renewToken"),Zt.prototype),Pt(Zt.prototype,"enableAudioVolumeIndicator",[lie],Object.getOwnPropertyDescriptor(Zt.prototype,"enableAudioVolumeIndicator"),Zt.prototype),Pt(Zt.prototype,"startLiveStreaming",[die],Object.getOwnPropertyDescriptor(Zt.prototype,"startLiveStreaming"),Zt.prototype),Pt(Zt.prototype,"setLiveTranscoding",[uie],Object.getOwnPropertyDescriptor(Zt.prototype,"setLiveTranscoding"),Zt.prototype),Pt(Zt.prototype,"stopLiveStreaming",[gie],Object.getOwnPropertyDescriptor(Zt.prototype,"stopLiveStreaming"),Zt.prototype),Pt(Zt.prototype,"startChannelMediaRelay",[Eie],Object.getOwnPropertyDescriptor(Zt.prototype,"startChannelMediaRelay"),Zt.prototype),Pt(Zt.prototype,"updateChannelMediaRelay",[hie],Object.getOwnPropertyDescriptor(Zt.prototype,"updateChannelMediaRelay"),Zt.prototype),Pt(Zt.prototype,"stopChannelMediaRelay",[Iie],Object.getOwnPropertyDescriptor(Zt.prototype,"stopChannelMediaRelay"),Zt.prototype),Pt(Zt.prototype,"sendCustomReportMessage",[Cie],Object.getOwnPropertyDescriptor(Zt.prototype,"sendCustomReportMessage"),Zt.prototype),Pt(Zt.prototype,"pickSVCLayer",[pie],Object.getOwnPropertyDescriptor(Zt.prototype,"pickSVCLayer"),Zt.prototype),Pt(Zt.prototype,"setRTMConfig",[fie],Object.getOwnPropertyDescriptor(Zt.prototype,"setRTMConfig"),Zt.prototype),Pt(Zt.prototype,"enableContentInspect",[_ie],Object.getOwnPropertyDescriptor(Zt.prototype,"enableContentInspect"),Zt.prototype),Pt(Zt.prototype,"disableContentInspect",[mie],Object.getOwnPropertyDescriptor(Zt.prototype,"disableContentInspect"),Zt.prototype),Pt(Zt.prototype,"setImageModeration",[Bie],Object.getOwnPropertyDescriptor(Zt.prototype,"setImageModeration"),Zt.prototype),Pt(Zt.prototype,"setP2PTransport",[Sie],Object.getOwnPropertyDescriptor(Zt.prototype,"setP2PTransport"),Zt.prototype),Pt(Zt.prototype,"getJoinChannelServiceRecords",[Rie],Object.getOwnPropertyDescriptor(Zt.prototype,"getJoinChannelServiceRecords"),Zt.prototype),Pt(Zt.prototype,"setPublishAudioFilterEnabled",[yie],Object.getOwnPropertyDescriptor(Zt.prototype,"setPublishAudioFilterEnabled"),Zt.prototype),Zt);function Tie(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{codec:"vp8",audioCodec:"opus",mode:"rtc"};const s=un(5,"client-"),c=qt.reportApiInvoke(null,{id:s,name:Ti.CREATE_CLIENT,options:[t],tag:vn.TRACER});try{var u;(function(_){As(_.codec,"config.codec",["vp8","vp9","av1","h264","h265"]),As(_.mode,"config.mode",["rtc","live","p2p"]),_.audioCodec!==void 0&&As(_.audioCodec,"config.audioCodec",["opus","pcmu","pcma","g722"]),_.proxyServer!==void 0&&Ra(_.proxyServer,"config.proxyServer",1,1e4),_.turnServer!==void 0&&Mn(_.turnServer),_.httpRetryConfig!==void 0&&kR(_.httpRetryConfig),_.websocketRetryConfig!==void 0&&kR(_.websocketRetryConfig)})(t),(NR(16,0,!0)||Df(16,0,!0))&&(t.codec==="vp9"&&(t.codec="vp8",J.debug("browser not support vp9, force use vp8")),Dn("UNSUPPORTED_VIDEO_CODEC",["vp9"])),t.audioCodec===void 0&&(t.audioCodec="opus");const h=new Jce(bl(bl({forceWaitGatewayResponse:!0},t),{},{role:Et(u=["rtc","p2p"]).call(u,t.mode)?"host":t.role||"audience"}),s);return c.onSuccess(),h}catch(h){throw c.onError(h),h}}function qce(){let t=!1;const s=Qi();return(s.name===Fi.CHROME&&Number(s.version)>=58&&(qA.engine.name!=="WebKit"||function(){const c=Qi();if(Qf()){if(c.os===ns.MAC_OS)return!0;if(c.os===ns.IOS){const u=qA.os.version&&qA.os.version.split(".");if(u&&Number(u[0])===14&&u[1]&&Number(u[1])>=3||u&&Number(u[0])>14)return!0}}return!1}())||s.name===Fi.FIREFOX&&Number(s.version)>=56||s.name===Fi.OPERA&&Number(s.version)>=45||s.name===Fi.SAFARI&&Number(s.version)>=11||s.name==="WebKit"&&(Ia()||Y1())&&s.osVersion&&Number(s.osVersion.split(".")[0])>=11||jl()||Qi().name===Fi.QQ)&&(t=!0),t}class y9{constructor(s,c){ae(this,"id",0),ae(this,"element",void 0),ae(this,"peerPair",void 0),ae(this,"context",void 0),ae(this,"audioPlayerElement",void 0),ae(this,"audioTrack",void 0),y9.count+=1,this.id=y9.count,this.element=s,this.context=c}initPeers(){this.peerPair=[new RTCPeerConnection,new RTCPeerConnection],this.peerPair[1].ontrack=s=>{const c=document.createElement("audio");c.srcObject=new MediaStream([s.track]),c.play(),this.audioPlayerElement=c}}async switchSdp(){if(!this.peerPair)return;const s=async(u,h)=>{const _=h==="offer"?await u.createOffer():await u.createAnswer();return await u.setLocalDescription(_),u.iceGatheringState==="complete"?u.localDescription:new Ut(B=>{u.onicegatheringstatechange=()=>{u.iceGatheringState==="complete"&&B(u.localDescription)}})},c=async(u,h)=>await u.setRemoteDescription(h);try{const u=await s(this.peerPair[0],"offer");await c(this.peerPair[1],u);const h=await s(this.peerPair[1],"answer");await c(this.peerPair[0],h)}catch(u){throw new qe(Ce.LOCAL_AEC_ERROR,u.toString()).print()}}async getTracksFromMediaElement(s){if(this.audioTrack)return this.audioTrack;let c;try{s instanceof HTMLVideoElement&&(s.captureStream?s.captureStream():s.mozCaptureStream()),c=this.context.createMediaStreamDestination(),this.context.createMediaElementSource(s).connect(c)}catch(h){throw new qe(Ce.LOCAL_AEC_ERROR,h.toString()).print()}if(!c)throw new qe(Ce.LOCAL_AEC_ERROR,"no dest node when local aec").print();const u=c.stream.getAudioTracks()[0];return this.audioTrack=u,u}getElement(){return this.element}async startEchoCancellation(){this.context.resume(),this.peerPair&&this.close(),this.initPeers();const s=this.element,c=await this.getTracksFromMediaElement(s);this.peerPair&&this.peerPair[0].addTrack(c),await this.switchSdp()}close(){J.debug("close echo cancellation unit, id is",this.id),this.audioPlayerElement&&this.audioPlayerElement.pause(),this.peerPair&&this.peerPair.forEach(s=>{s.close()}),this.peerPair=void 0,this.audioPlayerElement=void 0}}var wie,zF;ae(y9,"count",0);const Wce=window.AudioContext||window.webkitAudioContext,Xce=new(wie=yr({report:qt}),Pt((zF=class{constructor(){ae(this,"units",[]),ae(this,"context",void 0)}processExternalMediaAEC(t){if(!this._doesEnvironmentNeedAEC())return J.debug("the system does not need to process local aec"),-1;this.context||(this.context=new Wce);let s=this.units.find(c=>c&&c.getElement()===t);return s||(s=new y9(t,this.context),this.units.push(s)),s.startEchoCancellation(),J.debug("start processing local audio echo cancellation, id is",s.id),s.id}_doesEnvironmentNeedAEC(){return Qi().name!==Fi.SAFARI}}).prototype,"processExternalMediaAEC",[wie],Object.getOwnPropertyDescriptor(zF.prototype,"processExternalMediaAEC"),zF.prototype),zF);function vie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Die(t){for(var s=1;s1&&arguments[1]!==void 0&&arguments[1];if(!yz)return;const c=Ws._cspEventHandlerPointer;if(c&&s)return void console.error(c,s);const u=h=>{if(!(h&&h.blockedURI&&(Ws.onSecurityPolicyViolation||Ws.getListeners(iA.SECURITY_POLICY_VIOLATION).length>0)))return;const _=h.blockedURI;de("CSP_DETECTED_HOSTNAME_LIST").some(B=>Et(_).call(_,B))&&(Ws.onSecurityPolicyViolation&&typeof Ws.onSecurityPolicyViolation=="function"&&Ws.onSecurityPolicyViolation(h),Ws.getListeners(iA.SECURITY_POLICY_VIOLATION).length>0&&Ws.safeEmit(iA.SECURITY_POLICY_VIOLATION,h))};c&&yz.removeEventListener("securitypolicyviolation",c),(s||t&&typeof t=="function"||Ws.getListeners(iA.SECURITY_POLICY_VIOLATION).length>0)&&yz.addEventListener("securitypolicyviolation",u),Ws._cspEventHandlerPointer=u}var Nie=function(t){return t[t.ONE_BYTE=0]="ONE_BYTE",t[t.TWO_BYTE=1]="TWO_BYTE",t}(Nie||{});class zce{constructor(){ae(this,"_sequence",0),ae(this,"_startTime",Date.now()),ae(this,"isUseOneByte",!0)}get startTime(){const s=Date.now()-this._startTime;return s128){const Q=new Uint8Array(4);Q.set([1,0,0,0]);const T={id:0,length:4,data:Q.buffer},D={profile:this.isUseOneByte?0:1,length:this.isUseOneByte?5:6,datas:[T]};c.commonPacketHeader.extension=1,c.extension=D,c.payload=this.compress(s),c.commonPacketHeader.length=8+(c.extension.length+2)+c.payload.byteLength}else c.commonPacketHeader.length=8+c.payload.byteLength;de("SHOW_DATASTREAM2_LOG")&&J.debug("send data header: ".concat(JSON.stringify(c.commonPacketHeader)));const u=new ArrayBuffer(c.commonPacketHeader.length),h=new Uint8Array(u),_=new DataView(u);let B=0;if(_.setUint16(B,c.commonPacketHeader.extension<<15|c.commonPacketHeader.reserved<<14|c.commonPacketHeader.length,!0),B+=2,_.setUint32(B,c.commonPacketHeader.sequence,!0),B+=4,_.setUint16(B,c.commonStreamHeader,!0),B+=2,c.extension){const Q=this.serializeExtension(c.extension);h.set(new Uint8Array(Q),B),B+=Q.byteLength}if(h.set(new Uint8Array(c.payload),B),B+=c.payload.byteLength,B!==c.commonPacketHeader.length)throw Error("serialize error!");return u}deserialize(s){if(s.byteLength<4)return new ArrayBuffer(0);const c=new DataView(s);let u=0;const h=c.getUint16(u,!0);u+=2;const _={length:16383&h,reserved:(16384&h)>>14,extension:(32768&h)>>15,sequence:c.getUint16(u+2,!0)<<16|c.getUint16(u,!0)};let B,Q;if(u+=4,de("SHOW_DATASTREAM2_LOG")&&J.debug("receive data header: ".concat(JSON.stringify(_))),c.getUint16(u,!0),u+=2,_.extension){Q=this.deserializeExtension(s.slice(u)),u+=2+Q.length,B=s.slice(u);let T=!1;if(Q.datas.length>0){const D=Q.datas.find(O=>O.id===0);D&&(T=(1&new DataView(D.data).getUint32(0,!0))==1)}B=T?this.decompress(B):B}else B=s.slice(8);return B}serializeExtension(s){const c=s.profile,u=s.length,h=s.datas,_=new ArrayBuffer(u+2),B=new Uint8Array(_),Q=new DataView(_);let T=0;if(Q.setUint8(T++,c),Q.setUint8(T++,u),h.forEach(D=>{c?(Q.setUint8(T++,D.id),Q.setUint8(T++,D.length),B.set(new Uint8Array(D.data),T),T+=D.data.byteLength):(Q.setUint8(T++,D.id|D.length<<4),B.set(new Uint8Array(D.data),T),T+=D.data.byteLength)}),T!==u+2)throw Error("serialize extension error, is ".concat(T,"!==").concat(u+2));return _}deserializeExtension(s){const c=new DataView(s);let u=0;const h=c.getUint8(u);u++;const _=c.getUint8(u);u++;const B=h===Nie.TWO_BYTE,Q=[],T=new DataView(s,2);let D=0;for(;D<_;){let O=0,P=0,U=new ArrayBuffer(0);B?(O=T.getUint8(D),D++,P=T.getUint8(D),D++):(O=15&T.getUint8(D),P=T.getUint8(D)>>4,D++),P>0&&(U=T.buffer.slice(D+2,D+2+P),D+=U.byteLength),Q.push({id:O,length:P,data:U})}if(D!==_)throw Error("parse error");return{profile:h,length:_,datas:Q}}decompress(s){return F7(new Uint8Array(s))}compress(s){return x7(new Uint8Array(s))}}const $ce={name:"DataStream",create:(t,s)=>{const c=s?new na(t):new fn(t);return c.useDataStream(new zce),c}};class Zce extends Cn{constructor(s,c,u){super(),ae(this,"ws",void 0),ae(this,"requestId",1),ae(this,"heartBeatTimer",void 0),ae(this,"joinInfo",void 0),ae(this,"clientId",void 0),ae(this,"onOpen",()=>{this.emit("open"),this.startHeartBeatCheck()}),ae(this,"onClose",h=>{this.emit("close"),this.dispose()}),ae(this,"onMessage",h=>{const _=JSON.parse(h.data);if(!_||_.command!=="serverResponse"||!_.requestId)return _&&_.command==="serverStatus"&&_.serverStatus&&_.serverStatus.command?(this.emit("status",_.serverStatus),void this.emit(_.serverStatus.command,_.serverStatus)):void 0;this.emit("req_".concat(_.requestId),_)}),this.joinInfo=s,this.clientId=c,this.ws=new Ug("cross-channel-".concat(this.clientId),u),this.ws.on(jr.RECONNECTING,()=>{this.ws.reconnectMode="retry",this.emit("reconnecting")}),this.ws.on(jr.CONNECTED,this.onOpen),this.ws.on(jr.ON_MESSAGE,this.onMessage),this.ws.on(jr.CLOSED,this.onClose)}isConnect(){return this.ws.state==="connected"}sendMessage(s){const c=this.requestId++;return s.requestId=c,s.seq=c,this.ws.sendMessage(s),c}waitStatus(s){return new Ut((c,u)=>{const h=window.setTimeout(()=>{u(new qe(Ce.TIMEOUT,"wait status timeout, status: ".concat(s)))},5e3);this.once(s,_=>{window.clearTimeout(h),_.state&&_.state!==0?u(new qe(Ce.CROSS_CHANNEL_WAIT_STATUS_ERROR,"wait status error, status: ".concat(s))):c(void 0)}),this.once("dispose",()=>{window.clearTimeout(h),u(new qe(Ce.WS_ABORT))})})}async request(s){if(this.ws.state==="closed")throw new qe(Ce.WS_DISCONNECT);const c=()=>new Ut((B,Q)=>{this.ws.once(jr.CLOSED,()=>Q(new qe(Ce.WS_ABORT))),this.ws.once(jr.CONNECTED,B)});this.ws.state!=="connected"&&await c();const u=this.sendMessage(s),h=new Ut((B,Q)=>{const T=()=>{Q(new qe(Ce.WS_ABORT))};this.ws.once(jr.RECONNECTING,T),this.ws.once(jr.CLOSED,T),this.once("req_".concat(u),B),so(3e3).then(()=>{this.removeAllListeners("req_".concat(u)),this.ws.off(jr.RECONNECTING,T),this.ws.off(jr.CLOSED,T),Q(new qe(Ce.TIMEOUT,"cross channel ws request timeout"))})}),_=await h;if(!_||_.code!==200)throw new qe(Ce.CROSS_CHANNEL_SERVER_ERROR_RESPONSE,"response: ".concat(JSON.stringify(_)));return _}async connect(s){this.ws.removeAllListeners(jr.REQUEST_NEW_URLS),this.ws.on(jr.REQUEST_NEW_URLS,c=>{c(s)}),await this.ws.init(s)}dispose(){this.clearHeartBeatCheck(),this.emit("dispose"),this.removeAllListeners(),this.ws.close()}sendPing(s){const c=this.requestId++;return s.requestId=c,this.ws.sendMessage(s),c}startHeartBeatCheck(){this.heartBeatTimer&&window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=window.setInterval(()=>{this.sendPing({command:"ping",appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sid:this.joinInfo.sid,ts:+new Date,requestId:0})},3e3)}clearHeartBeatCheck(){window.clearInterval(this.heartBeatTimer),this.heartBeatTimer=void 0}}class ele extends Cn{set state(s){s!==this._state&&(s!==e1.RELAY_STATE_FAILURE&&(this.errorCode=t1.RELAY_OK),this.emit("state",s,this.errorCode),this._state=s)}get state(){return this._state}constructor(s,c,u,h,_){super(),ae(this,"joinInfo",void 0),ae(this,"sid",void 0),ae(this,"clientId",void 0),ae(this,"cancelToken",on.CancelToken.source()),ae(this,"workerToken",void 0),ae(this,"requestId",0),ae(this,"signal",void 0),ae(this,"prevChannelMediaConfig",void 0),ae(this,"httpRetryConfig",void 0),ae(this,"_resolution",void 0),ae(this,"_state",e1.RELAY_STATE_IDLE),ae(this,"errorCode",t1.RELAY_OK),ae(this,"onStatus",B=>{J.debug("[".concat(this.clientId,"] ChannelMediaStatus: ").concat(JSON.stringify(B))),B&&B.command&&(B.command==="onAudioPacketReceived"&&this.emit("event",Kd.PACKET_RECEIVED_AUDIO_FROM_SRC),B.command==="onVideoPacketReceived"&&this.emit("event",Kd.PACKET_RECEIVED_VIDEO_FROM_SRC),B.command==="onSrcTokenPrivilegeDidExpire"&&(this.errorCode=t1.SRC_TOKEN_EXPIRED,this.state=e1.RELAY_STATE_FAILURE),B.command==="onDestTokenPrivilegeDidExpire"&&(this.errorCode=t1.DEST_TOKEN_EXPIRED,this.state=e1.RELAY_STATE_FAILURE))}),ae(this,"onReconnect",async()=>{J.debug("[".concat(this.clientId,"] ChannelMediaSocket disconnect, reconnecting")),this.emit("event",Kd.NETWORK_DISCONNECTED),this.state=e1.RELAY_STATE_IDLE,this.prevChannelMediaConfig&&this.sendStartRelayMessage(this.prevChannelMediaConfig).catch(B=>{this.state!==e1.RELAY_STATE_IDLE&&(J.error("auto restart channel media relay failed",B.toString()),this.errorCode=t1.SERVER_CONNECTION_LOST,this.state=e1.RELAY_STATE_FAILURE)})}),this.joinInfo=s,this.clientId=c,this.sid=Pd(),this.signal=new Zce(this.joinInfo,this.clientId,u),this.httpRetryConfig=h,this._resolution=_}async startChannelMediaRelay(s){if(this.state!==e1.RELAY_STATE_IDLE)throw new qe(Ce.INVALID_OPERATION);this.state=e1.RELAY_STATE_CONNECTING,await this.connect(),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: connect success"));try{await this.sendStartRelayMessage(s)}catch(c){throw c.data&&c.data.serverResponse&&c.data.serverResponse.command==="SetSourceChannel"?new qe(Ce.CROSS_CHANNEL_FAILED_JOIN_SRC):c.data&&c.data.serverResponse&&c.serverResponse.command==="SetDestChannelStatus"?new qe(Ce.CROSS_CHANNEL_FAILED_JOIN_DEST):c.data&&c.data.serverResponse&&c.serverResponse.command==="StartPacketTransfer"?new qe(Ce.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST):c}this.prevChannelMediaConfig=s}async updateChannelMediaRelay(s){if(this.state!==e1.RELAY_STATE_RUNNING)throw new qe(Ce.INVALID_OPERATION);await this.sendUpdateMessage(s),this.prevChannelMediaConfig=s}async setVideoProfile(s){if(this._resolution=s,this.state!==e1.RELAY_STATE_RUNNING)throw new qe(Ce.INVALID_OPERATION);const c=this.genMessage(OA.SetVideoProfile);await this.signal.request(c),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: setVideoProfile success"))}async stopChannelMediaRelay(){await this.sendStopRelayMessage(),J.debug("[".concat(this.clientId,"] stopChannelMediaRelay: send stop message success")),this.state=e1.RELAY_STATE_IDLE,this.dispose()}dispose(){J.debug("[".concat(this.clientId,"] disposeChannelMediaRelay")),this.cancelToken.cancel(),this.cancelToken=on.CancelToken.source(),this.state=e1.RELAY_STATE_IDLE,this.emit("dispose"),this.signal.dispose(),this.prevChannelMediaConfig=void 0}async connect(){const s=await pce(this.joinInfo,this.cancelToken.token,this.httpRetryConfig);this.workerToken=s.workerToken,await this.signal.connect(s.addressList),this.emit("event",Kd.NETWORK_CONNECTED),this.signal.on("status",this.onStatus),this.signal.on("reconnecting",this.onReconnect)}async sendStartRelayMessage(s){const c=this.genMessage(OA.SetSdkProfile,s);await this.signal.request(c),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSdkProfile success"));const u=this.genMessage(OA.SetSourceChannel,s);await this.signal.request(u),await this.signal.waitStatus("SetSourceChannelStatus"),this.emit("event",Kd.PACKET_JOINED_SRC_CHANNEL),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceChannel success"));const h=this.genMessage(OA.SetSourceUserId,s);await this.signal.request(h),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetSourceUserId success"));const _=this.genMessage(OA.SetDestChannel,s);await this.signal.request(_),await this.signal.waitStatus("SetDestChannelStatus"),this.emit("event",Kd.PACKET_JOINED_DEST_CHANNEL),J.debug("[".concat(this.clientId,"] startChannelMediaRelay: SetDestChannel success"));const B=this.genMessage(OA.StartPacketTransfer,s);await this.signal.request(B),this.emit("event",Kd.PACKET_SENT_TO_DEST_CHANNEL),this.state=e1.RELAY_STATE_RUNNING,J.debug("[".concat(this.clientId,"] startChannelMediaRelay: StartPacketTransfer success")),this.setVideoProfile(this._resolution)}async sendUpdateMessage(s){const c=this.genMessage(OA.UpdateDestChannel,s);await this.signal.request(c),this.emit("event",Kd.PACKET_UPDATE_DEST_CHANNEL),J.debug("[".concat(this.clientId,"] sendUpdateMessage: UpdateDestChannel success"))}async sendStopRelayMessage(){const s=this.genMessage(OA.StopPacketTransfer);await this.signal.request(s),J.debug("[".concat(this.clientId,"] sendStopRelayMessage: StopPacketTransfer success"))}genMessage(s,c){const u=[],h=[],_=[];this.requestId+=1;const B={appId:this.joinInfo.appId,cname:this.joinInfo.cname,uid:this.joinInfo.uid.toString(),sdkVersion:W1,sid:this.sid,ts:Date.now(),requestId:this.requestId,seq:this.requestId,allocate:!0,clientRequest:{}};B.sdkVersion==="4.24.5"&&(B.sdkVersion="0.0.1");let Q=null,T=null;switch(s){case OA.SetSdkProfile:return B.clientRequest={command:"SetSdkProfile",type:"multi_channel"},B;case OA.SetSourceChannel:if(T=c&&c.getSrcChannelMediaInfo(),!T)throw new qe(Ce.UNEXPECTED_ERROR,"can not find source config");return B.clientRequest={command:"SetSourceChannel",uid:"0",channelName:T.channelName,token:T.token||this.joinInfo.appId},B;case OA.SetSourceUserId:if(T=c&&c.getSrcChannelMediaInfo(),!T)throw new qe(Ce.UNEXPECTED_ERROR,"can not find source config");return B.clientRequest={command:"SetSourceUserId",uid:T.uid+""},B;case OA.SetDestChannel:if(Q=c&&c.getDestChannelMediaInfo(),!Q)throw new qe(Ce.UNEXPECTED_ERROR,"can not find dest config");return Q.forEach(D=>{u.push(D.channelName),h.push(D.uid+""),_.push(D.token||this.joinInfo.appId)}),B.clientRequest={command:"SetDestChannel",channelName:u,uid:h,token:_},B;case OA.StartPacketTransfer:return B.clientRequest={command:"StartPacketTransfer"},B;case OA.Reconnect:return B.clientRequest={command:"Reconnect"},B;case OA.StopPacketTransfer:return B.clientRequest={command:"StopPacketTransfer"},B;case OA.UpdateDestChannel:if(Q=c&&c.getDestChannelMediaInfo(),!Q)throw new qe(Ce.UNEXPECTED_ERROR,"can not find dest config");return Q.forEach(D=>{u.push(D.channelName),h.push(D.uid+""),_.push(D.token||this.joinInfo.appId)}),B.clientRequest={command:"UpdateDestChannel",channelName:u,uid:h,token:_},B;case OA.SetVideoProfile:B.clientRequest={command:"SetVideoProfile",width:this._resolution.width,height:this._resolution.height}}return B}}const tle={name:"ChannelMediaRelay",create:function(t){return new ele(t.joinInfo,t.clientId,t.websocketRetryConfig||So,t.httpRetryConfig||So,t.resolution)}};function Oie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Q9(t){for(var s=1;s{this.reconnectMode="retry",this.startPingPong()}),ae(this,"handleWebSocketMessage",_=>{if(!_.data)return;const B=JSON.parse(_.data);B.requestId?this.emit("@".concat(B.requestId,"-").concat(B.sid),B):(qt.workerEvent(this.spec.sid,{actionType:"status",serverCode:B.code,workerType:this.serviceMode===ku.TRANSCODE?1:2}),this.emit(Pu.PUBLISH_STREAM_STATUS,B))}),this.spec=c,this.token=s,this.serviceMode=h,this.websocket=new Ug("live-streaming",u),this.websocket.on(jr.CONNECTED,this.handleWebSocketOpen),this.websocket.on(jr.ON_MESSAGE,this.handleWebSocketMessage),this.websocket.on(jr.REQUEST_NEW_URLS,(_,B)=>{$o(this,Pu.REQUEST_NEW_ADDRESS).then(_).catch(B)}),this.websocket.on(jr.RECONNECTING,()=>{this.websocket.reconnectMode=this.reconnectMode})}init(s){return this.websocket.init(s)}async request(s,c,u,h){this.reqId+=1,s==="request"&&(this.commandReqId+=1);const _=this.commandReqId,B=this.reqId;if(!B||!this.websocket)throw new qe(Ce.UNEXPECTED_ERROR);const Q=Q9({command:s,sdkVersion:W1==="4.24.5"?"0.0.1":W1,seq:B,requestId:B,allocate:u,cname:this.spec.cname,appId:this.spec.appId,sid:this.spec.sid,uid:this.spec.uid.toString(),ts:Math.floor(Date.now()/1e3)},c);if(this.websocket.state==="closed")throw new qe(Ce.WS_DISCONNECT);const T=()=>new Ut((U,H)=>{this.websocket.once(jr.CLOSED,()=>H(new qe(Ce.WS_ABORT))),this.websocket.once(jr.CONNECTED,U)});this.websocket.state!=="connected"&&await T(),Q.clientRequest&&(Q.clientRequest.workerToken=this.token);const D=new Ut((U,H)=>{const $=()=>{H(new qe(Ce.WS_ABORT))};this.websocket.once(jr.RECONNECTING,$),this.websocket.once(jr.CLOSED,$),this.once("@".concat(B,"-").concat(this.spec.sid),Z=>{U(Z)})});h&&qt.workerEvent(this.spec.sid,Q9(Q9({},h),{},{requestId:_,actionType:"request",payload:JSON.stringify(c.clientRequest),serverCode:0,code:0}));const O=Date.now();this.websocket.sendMessage(Q);let P=null;try{P=await D}catch(U){if(this.websocket.state==="closed")throw U;return await T(),await this.request(s,c,u)}return h&&qt.workerEvent(this.spec.sid,Q9(Q9({},h),{},{requestId:_,actionType:"response",payload:JSON.stringify(P.serverResponse),serverCode:P.code,success:P.code===200,responseTime:Date.now()-O})),P.code!==200&&this.handleResponseError(P),P}tryNextAddress(){this.reconnectMode="tryNext",this.websocket.reconnect("tryNext")}close(){const s=W1==="4.24.5"?"0.0.1":W1;this.reqId+=1,this.websocket.state==="connected"?(this.websocket.sendMessage({command:"request",appId:this.spec.appId,cname:this.spec.cname,uid:this.spec.uid.toString(),sdkVersion:s,sid:this.spec.sid,seq:this.reqId,ts:Math.floor(Date.now()/1e3),requestId:this.reqId,clientRequest:{command:"DestroyWorker"}}),this.websocket.close(!1,!0)):this.websocket.close(!1),this.pingpongTimer&&(window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0)}handleResponseError(s){switch(s.code){case ds.LIVE_STREAM_RESPONSE_ALREADY_EXISTS_STREAM:return void J.warning("live stream response already exists stream");case ds.LIVE_STREAM_RESPONSE_TRANSCODING_PARAMETER_ERROR:case ds.LIVE_STREAM_RESPONSE_BAD_STREAM:case ds.LIVE_STREAM_RESPONSE_WM_PARAMETER_ERROR:return new qe(Ce.LIVE_STREAMING_INVALID_ARGUMENT,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_WM_WORKER_NOT_EXIST:if(s.serverResponse.command==="UnpublishStream")return;throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case ds.LIVE_STREAM_RESPONSE_NOT_AUTHORIZED:return new qe(Ce.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{const c=new qe(Ce.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE);return this.emit(Pu.WARNING,c,s.serverResponse.url)}case ds.LIVE_STREAM_RESPONSE_REQUEST_TOO_OFTEN:{const c=new qe(Ce.LIVE_STREAMING_WARN_FREQUENT_REQUEST);return this.emit(Pu.WARNING,c,s.serverResponse.url)}case ds.LIVE_STREAM_RESPONSE_NOT_FOUND_PUBLISH:throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream response wm worker not exist",{retry:!0});case ds.LIVE_STREAM_RESPONSE_NOT_SUPPORTED:return new qe(Ce.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_MAX_STREAM_NUM:{const c=new qe(Ce.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT);return this.emit(Pu.WARNING,c,s.serverResponse.url)}case ds.LIVE_STREAM_RESPONSE_INTERNAL_SERVER_ERROR:return new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:s.code}).throw();case ds.LIVE_STREAM_RESPONSE_RESOURCE_LIMIT:throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"live stream resource limit",{retry:!0,changeAddress:!0});case ds.LIVE_STREAM_RESPONSE_WORKER_LOST:case ds.LIVE_STREAM_RESPONSE_WORKER_QUIT:if(s.serverResponse.command==="UnpublishStream")return;throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case ds.ERROR_FAIL_SEND_MESSAGE:if(s.serverResponse.command==="UnpublishStream")return;if(s.serverResponse.command==="UpdateTranscoding"||s.serverResponse.command==="ControlStream")return new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{code:s.code}).throw();throw new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"error fail send message",{retry:!0,changeAddress:!0});case ds.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:return new qe(Ce.LIVE_STREAMING_CDN_ERROR,"",{code:s.code}).throw()}}startPingPong(){this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(()=>{this.websocket.state==="connected"&&this.request("ping",{}).catch(X)},6e3)}}function Lie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function jc(t){for(var s=1;s1&&arguments[1]!==void 0?arguments[1]:So,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:So;super(),ae(this,"onLiveStreamWarning",void 0),ae(this,"onLiveStreamError",void 0),ae(this,"spec",void 0),ae(this,"retryTimeout",1e4),ae(this,"connection",void 0),ae(this,"httpRetryConfig",void 0),ae(this,"wsRetryConfig",void 0),ae(this,"streamingTasks",new Map),ae(this,"isStartingStreamingTask",!1),ae(this,"taskMutex",new ra("live-streaming")),ae(this,"cancelToken",on.CancelToken.source()),ae(this,"transcodingConfig",void 0),ae(this,"uapResponse",void 0),ae(this,"lastTaskId",1),ae(this,"statusError",new Map),this.spec=s,this.httpRetryConfig=u,this.wsRetryConfig=c}async setTranscodingConfig(s){const c=jc(jc({},fN),s);c.videoCodecProfile!==66&&c.videoCodecProfile!==77&&c.videoCodecProfile!==100&&(J.debug("[".concat(this.spec.clientId,"] set transcoding config, fix video codec profile: ").concat(c.videoCodecProfile," -> 100")),c.videoCodecProfile=100),c.transcodingUsers||(c.transcodingUsers=c.userConfigs),c.transcodingUsers&&(c.transcodingUsers=c.transcodingUsers.map(B=>jc(jc(jc({},s7),B),{},{zOrder:B.zOrder?B.zOrder+1:1}))),function(B){Bo(B.width)||Vn(B.width,"config.width",0,1e4),Bo(B.height)||Vn(B.height,"config.height",0,1e4),Bo(B.videoBitrate)||Vn(B.videoBitrate,"config.videoBitrate",1,1e6),Bo(B.videoFrameRate)||Vn(B.videoFrameRate,"config.videoFrameRate"),Bo(B.lowLatency)||ll(B.lowLatency,"config.lowLatency"),Bo(B.audioSampleRate)||As(B.audioSampleRate,"config.audioSampleRate",[32e3,44100,48e3]),Bo(B.audioBitrate)||Vn(B.audioBitrate,"config.audioBitrate",1,128),Bo(B.audioChannels)||As(B.audioChannels,"config.audioChannels",[1,2,3,4,5]),Bo(B.videoGop)||Vn(B.videoGop,"config.videoGop"),Bo(B.videoCodecProfile)||As(B.videoCodecProfile,"config.videoCodecProfile",[66,77,100]),Bo(B.userCount)||Vn(B.userCount,"config.userCount",0,17),Bo(B.backgroundColor)||Vn(B.backgroundColor,"config.backgroundColor",0,16777215),Bo(B.userConfigExtraInfo)||Ra(B.userConfigExtraInfo,"config.userConfigExtraInfo",0,4096,!1),B.transcodingUsers&&!Bo(B.transcodingUsers)&&(j1(B.transcodingUsers,"config.transcodingUsers"),B.transcodingUsers.forEach((Q,T)=>{P2(Q.uid),Bo(Q.x)||Vn(Q.x,"transcodingUser[".concat(T,"].x"),0,1e4),Bo(Q.y)||Vn(Q.y,"transcodingUser[".concat(T,"].y"),0,1e4),Bo(Q.width)||Vn(Q.width,"transcodingUser[".concat(T,"].width"),0,1e4),Bo(Q.height)||Vn(Q.height,"transcodingUser[".concat(T,"].height"),0,1e4),Bo(Q.zOrder)||Vn(Q.zOrder-1,"transcodingUser[".concat(T,"].zOrder"),0,100),Bo(Q.alpha)||Vn(Q.alpha,"transcodingUser[".concat(T,"].alpha"),0,1,!1)})),Bo(B.watermark)||kg(B.watermark,"watermark"),Bo(B.backgroundImage)||kg(B.backgroundImage,"backgroundImage"),B.images&&!Bo(B.images)&&(j1(B.images,"config.images"),B.images.forEach((Q,T)=>{kg(Q,"images[".concat(T,"]"))}))}(c);const u=[];c.images&&u.push(...c.images.map(B=>jc(jc(jc({},U2),B),{},{zOrder:255}))),c.backgroundImage&&(u.push(jc(jc(jc({},U2),c.backgroundImage),{},{zOrder:0})),delete c.backgroundImage),c.watermark&&(u.push(jc(jc(jc({},U2),c.watermark),{},{zOrder:255})),delete c.watermark),c.images=u,c.transcodingUsers&&(c.userConfigs=c.transcodingUsers.map(B=>jc({},B)),c.userCount=c.transcodingUsers.length,delete c.transcodingUsers);const h=(c.userConfigs||[]).map(B=>typeof B.uid=="number"?Ut.resolve(B.uid):ez(B.uid,this.spec,this.cancelToken.token,this.httpRetryConfig));if((await Ut.all(h)).forEach((B,Q)=>{c.userConfigs&&c.userConfigs[Q]&&(c.userConfigs[Q].uid=B)}),this.transcodingConfig=c,this.connection)try{var _;const B=await this.connection.request("request",{clientRequest:{command:"UpdateTranscoding",transcodingConfig:this.transcodingConfig}},!1,{command:"UpdateTranscoding",workerType:1,requestByUser:!0,tid:Array.from(BA(_=this.streamingTasks).call(_)).map(Q=>Q.taskId).join("#")});J.debug("[".concat(this.spec.clientId,"] update live transcoding config success, code: ").concat(B.code,", config:"),JSON.stringify(this.transcodingConfig))}catch(B){if(!B.data||!B.data.retry)throw B;B.data.changeAddress&&this.connection.tryNextAddress(),this.streamingTasks.forEach(Q=>{J.warning("[".concat(this.spec.clientId,"] live streaming receive error"),B.toString(),"try to republish",Q.url),this.startLiveStreamingTask(Q.url,Q.mode,B).then(()=>{J.debug("[".concat(this.spec.clientId,"] live streaming republish ").concat(Q.url," success"))}).catch(T=>{J.error("[".concat(this.spec.clientId,"] live streaming republish failed"),Q.url,T.toString()),this.onLiveStreamError&&this.onLiveStreamError(Q.url,T)})})}}async startLiveStreamingTask(s,c,u){if(!this.transcodingConfig&&c===ku.TRANSCODE)throw new qe(Ce.INVALID_OPERATION,"[LiveStreaming] no transcoding config found, can not start transcoding streaming task");const h={command:"PublishStream",ts:Date.now(),url:s,uid:this.spec.uid.toString(),autoDestroyTime:100,acceptImageTimeout:!0};J.debug("[".concat(this.spec.clientId,"] start live streaming ").concat(s,", mode: ").concat(c));const _=await this.taskMutex.lock();if(!this.connection&&u)return void _();if(this.streamingTasks.get(s)&&!u)return _(),new qe(Ce.LIVE_STREAMING_TASK_CONFLICT).throw();try{this.connection||(this.connection=await this.connect(c))}catch(Q){throw _(),Q}switch(c){case ku.TRANSCODE:h.transcodingConfig=jc({},this.transcodingConfig)}this.uapResponse&&this.uapResponse.vid&&(h.vid=this.uapResponse.vid),this.isStartingStreamingTask=!0;const B=this.lastTaskId++;try{const Q=new Ut((D,O)=>{so(this.retryTimeout).then(()=>{if(u)return O(u);const P=this.statusError.get(s);return P?(this.statusError.delete(s),O(P)):void 0})}),T=await Ut.race([this.connection.request("request",{clientRequest:h},!0,{url:s,command:"PublishStream",workerType:c===ku.TRANSCODE?1:2,requestByUser:!u,tid:B.toString()}),Q]);this.isStartingStreamingTask=!1,J.debug("[".concat(this.spec.clientId,"] live streaming started, code: ").concat(T.code)),this.streamingTasks.set(s,{clientRequest:h,mode:c,url:s,taskId:B}),_()}catch(Q){if(_(),this.isStartingStreamingTask=!1,!Q.data||!Q.data.retry||u)throw Q;return Q.data.changeAddress?(this.connection.tryNextAddress(),await this.startLiveStreamingTask(s,c,Q)):await this.startLiveStreamingTask(s,c,Q)}}stopLiveStreamingTask(s){return new Ut((c,u)=>{const h=this.streamingTasks.get(s);if(!h||!this.connection)return new qe(Ce.UNEXPECTED_ERROR,"can not find streaming task to stop").throw();const _=h.mode;h.abortTask=()=>{J.debug("[".concat(this.spec.clientId,"] stop live streaming success(worker exception)")),this.streamingTasks.delete(s),c()},this.connection.request("request",{clientRequest:{command:"UnpublishStream",url:h.url}},!1,{url:s,command:"UnPublishStream",workerType:_===ku.TRANSCODE?1:2,requestByUser:!0,tid:(this.lastTaskId++).toString()}).then(B=>{J.debug("[".concat(this.spec.clientId,"] stop live streaming success, code: ").concat(B.code)),this.streamingTasks.delete(s),this.streamingTasks.size===0&&(this.connection&&this.connection.close(),this.connection=void 0),c()}).catch(u)})}resetAllTask(){var s;const c=Array.from(BA(s=this.streamingTasks).call(s));this.terminate();for(const u of c)this.startLiveStreamingTask(u.url,u.mode).catch(h=>{this.onLiveStreamError&&this.onLiveStreamError(u.url,h)})}terminate(){this.cancelToken&&this.cancelToken.cancel(),this.streamingTasks=new Map,this.isStartingStreamingTask=!1,this.statusError=new Map,this.cancelToken=on.CancelToken.source(),this.uapResponse=void 0,this.connection&&this.connection.close(),this.connection=void 0}async connect(s){if(this.connection)throw new qe(Ce.UNEXPECTED_ERROR,"live streaming connection has already connected");const c=await $o(this,xy.REQUEST_WORKER_MANAGER_LIST,s);return this.uapResponse=c,this.connection=new rle(c.workerToken,this.spec,this.wsRetryConfig,s),this.connection.on(Pu.WARNING,(u,h)=>this.onLiveStreamWarning&&this.onLiveStreamWarning(h,u)),this.connection.on(Pu.PUBLISH_STREAM_STATUS,u=>this.handlePublishStreamServer(u)),this.connection.on(Pu.REQUEST_NEW_ADDRESS,(u,h)=>{if(!this.connection)return h(new qe(Ce.UNEXPECTED_ERROR,"can not get new live streaming address list"));$o(this,xy.REQUEST_WORKER_MANAGER_LIST,s).then(_=>{this.uapResponse=_,u(_.addressList)}).catch(h)}),await this.connection.init(c.addressList),this.connection}handlePublishStreamServer(s){const c=s.serverStatus&&s.serverStatus.url||"empty_url",u=this.streamingTasks.get(c),h=s.reason;switch(s.code){case ds.PUBLISH_STREAM_STATUS_ERROR_PUBLISH_BROKEN:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_CONNECT:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_HANDSHAKE:case ds.PUBLISH_STREAM_STATUS_ERROR_RTMP_PUBLISH:{const B=new qe(Ce.LIVE_STREAMING_CDN_ERROR,"",{code:s.code});if(u)return J.error(B.toString()),this.onLiveStreamError&&this.onLiveStreamError(c,B);if(!this.isStartingStreamingTask)return;this.statusError.set(c,B)}case ds.LIVE_STREAM_RESPONSE_FAILED_LOAD_IMAGE:{const B=new qe(Ce.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE,h);return this.onLiveStreamWarning&&this.onLiveStreamWarning(c,B)}case ds.LIVE_STREAM_RESPONSE_WORKER_LOST:case ds.LIVE_STREAM_RESPONSE_WORKER_QUIT:{var _;if(!this.connection)return;this.connection.tryNextAddress();const B=Array.from(BA(_=this.streamingTasks).call(_));for(const Q of B)Q.abortTask?Q.abortTask():(J.warning("[".concat(this.spec.clientId,"] publish stream status code"),s.code,"try to republish",Q.url),this.startLiveStreamingTask(Q.url,Q.mode,new qe(Ce.LIVE_STREAMING_INTERNAL_SERVER_ERROR,"",{code:s.code})).then(()=>{J.debug("[".concat(this.spec.clientId,"] republish live stream success"),Q.url)}).catch(T=>{J.error(T.toString()),this.onLiveStreamError&&this.onLiveStreamError(Q.url,T)}));return}}}hasUrl(s){return this.streamingTasks.has(s)}}const nle={name:"LiveStreaming",create:function(t){return new ile(t.joinInfo,t.websocketRetryConfig||So,t.httpRetryConfig||So)}};function ole(t){let s=Pie();return function(c,u){let h=c.appId;h!==void 0&&(Yn(u,10),Wh(u,h));let _=c.cid;_!==void 0&&(Yn(u,16),Yn(u,_));let B=c.cname;B!==void 0&&(Yn(u,26),Wh(u,B));let Q=c.deviceId;Q!==void 0&&(Yn(u,34),Wh(u,Q));let T=c.elapse;T!==void 0&&(Yn(u,40),Mp(u,T));let D=c.fileSize;D!==void 0&&(Yn(u,48),Mp(u,dT(D)));let O=c.height;O!==void 0&&(Yn(u,56),Mp(u,dT(O)));let P=c.jpg;P!==void 0&&(Yn(u,66),Yn(u,P.length),function(Ki,it){let mt=uT(Ki,it.length);Ki.bytes.set(it,mt)}(u,P));let U=c.networkType;U!==void 0&&(Yn(u,72),Mp(u,dT(U)));let H=c.osType;H!==void 0&&(Yn(u,80),Mp(u,dT(H)));let $=c.requestId;$!==void 0&&(Yn(u,90),Wh(u,$));let Z=c.sdkVersion;Z!==void 0&&(Yn(u,98),Wh(u,Z));let te=c.sequence;te!==void 0&&(Yn(u,104),Mp(u,dT(te)));let se=c.sid;se!==void 0&&(Yn(u,114),Wh(u,se));let ge=c.timestamp;ge!==void 0&&(Yn(u,120),Mp(u,ge));let me=c.uid;me!==void 0&&(Yn(u,128),Yn(u,me));let Qe=c.vid;Qe!==void 0&&(Yn(u,136),Yn(u,Qe));let Oe=c.width;Oe!==void 0&&(Yn(u,144),Mp(u,dT(Oe)));let we=c.service;we!==void 0&&(Yn(u,152),Yn(u,we));let Ne=c.callbackData;Ne!==void 0&&(Yn(u,162),Wh(u,Ne));let et=c.jpgEncryption;et!==void 0&&(Yn(u,168),Yn(u,et));let st=c.requestType;st!==void 0&&(Yn(u,176),Yn(u,st));let Xt=c.scorePorn;Xt!==void 0&&(Yn(u,185),Dz(u,Xt));let lr=c.scoreSexy;lr!==void 0&&(Yn(u,193),Dz(u,lr));let ft=c.scoreNeutral;ft!==void 0&&(Yn(u,201),Dz(u,ft));let Ir=c.scene;Ir!==void 0&&(Yn(u,208),Yn(u,Ir));let ui=c.ossFilePrefix;ui!==void 0&&(Yn(u,218),Wh(u,ui));let Nr=c.serviceVendor;if(Nr!==void 0)for(let Ki of Nr){Yn(u,226);let it=Pie();Ale(Ki,it),Yn(u,it.limit),ule(u,it),dle(it)}}(t,s),function(c){let u=c.bytes,h=c.limit;return u.length===h?u:u.subarray(0,h)}(s)}function sle(t){return function(c){let u={};e:for(;!Uie(c);){let h=Xh(c);switch(h>>>3){case 0:break e;case 1:u.code=Xh(c);break;case 2:u.msg=xie(c,Xh(c));break;case 3:{let _=cle(c);u.data=ale(c),c.limit=_;break}default:Mie(c,7&h)}}return u}({bytes:s=t,offset:0,limit:s.length});var s}function ale(t){let s={};e:for(;!Uie(t);){let c=Xh(t);switch(c>>>3){case 0:break e;case 1:s.requestId=xie(t,Xh(t));break;case 2:s.requestType=Xh(t)>>>0;break;case 3:s.scorePorn=vz(t);break;case 4:s.scoreSexy=vz(t);break;case 5:s.scoreNeutral=vz(t);break;case 6:s.requestScene=Xh(t)>>>0;break;case 7:s.scene=Xh(t)>>>0;break;default:Mie(t,7&c)}}return s}function Ale(t,s){let c=t.service;c!==void 0&&(Yn(s,8),Yn(s,c));let u=t.vendor;u!==void 0&&(Yn(s,16),Yn(s,u));let h=t.token;h!==void 0&&(Yn(s,26),Wh(s,h));let _=t.callbackUrl;_!==void 0&&(Yn(s,34),Wh(s,_))}function cle(t){let s=Xh(t),c=t.limit;return t.limit=t.offset+s,c}function Mie(t,s){switch(s){case 0:for(;128&Fie(t););break;case 2:Tz(t,Xh(t));break;case 5:Tz(t,4);break;case 1:Tz(t,8);break;default:throw new Error("Unimplemented type: "+s)}}let lle=new Float32Array(1);new Uint8Array(lle.buffer);let Qz=new Float64Array(1),Jc=new Uint8Array(Qz.buffer);function dT(t){return{low:t|=0,high:t>>31,unsigned:t>=0}}let kie=[];function Pie(){const t=kie.pop();return t?(t.offset=t.limit=0,t):{bytes:new Uint8Array(64),offset:0,limit:0}}function dle(t){kie.push(t)}function Tz(t,s){if(t.offset+s>t.limit)throw new Error("Skip past limit");t.offset+=s}function Uie(t){return t.offset>=t.limit}function uT(t,s){let c=t.bytes,u=t.offset,h=t.limit,_=u+s;if(_>c.length){let B=new Uint8Array(2*_);B.set(c),t.bytes=B}return t.offset=_,_>h&&(t.limit=_),u}function wz(t,s){let c=t.offset;if(c+s>t.limit)throw new Error("Read past limit");return t.offset+=s,c}function xie(t,s){let c=wz(t,s),u=String.fromCharCode,h=t.bytes,_="�",B="";for(let Q=0;Q=s?B+=_:(T=h[Q+c+1],(192&T)!=128?B+=_:(P=(31&U)<<6|63&T,P<128?B+=_:(B+=u(P),Q++))):(240&U)==224?Q+2>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],(49344&(T|D<<8))!=32896?B+=_:(P=(15&U)<<12|(63&T)<<6|63&D,P<2048||P>=55296&&P<=57343?B+=_:(B+=u(P),Q+=2))):(248&U)==240?Q+3>=s?B+=_:(T=h[Q+c+1],D=h[Q+c+2],O=h[Q+c+3],(12632256&(T|D<<8|O<<16))!=8421504?B+=_:(P=(7&U)<<18|(63&T)<<12|(63&D)<<6|63&O,P<65536||P>1114111?B+=_:(P-=65536,B+=u(55296+(P>>10),56320+(1023&P)),Q+=3))):B+=_:B+=u(U)}return B}function Wh(t,s){let c=s.length,u=0;for(let B=0;B=55296&&Q<=56319&&B+1=55296&&Q<=56319&&B+1>6&31|192:(Q<65536?_[h++]=Q>>12&15|224:(_[h++]=Q>>18&7|240,_[h++]=Q>>12&63|128),_[h++]=Q>>6&63|128),_[h++]=63&Q|128)}}function ule(t,s){let c=uT(t,s.limit),u=t.bytes,h=s.bytes;for(let _=0,B=s.limit;_>>=0;s>=128;)Gie(t,127&s|128),s>>>=7;Gie(t,s)}function Mp(t,s){let c=s.low>>>0,u=(s.low>>>28|s.high<<4)>>>0,h=s.high>>>24,_=h===0?u===0?c<16384?c<128?1:2:c<1<<21?3:4:u<16384?u<128?5:6:u<1<<21?7:8:h<128?9:10,B=uT(t,_),Q=t.bytes;switch(_){case 10:Q[B+9]=h>>>7&1;case 9:Q[B+8]=_!==9?128|h:127&h;case 8:Q[B+7]=_!==8?u>>>21|128:u>>>21&127;case 7:Q[B+6]=_!==7?u>>>14|128:u>>>14&127;case 6:Q[B+5]=_!==6?u>>>7|128:u>>>7&127;case 5:Q[B+4]=_!==5?128|u:127&u;case 4:Q[B+3]=_!==4?c>>>21|128:c>>>21&127;case 3:Q[B+2]=_!==3?c>>>14|128:c>>>14&127;case 2:Q[B+1]=_!==2?c>>>7|128:c>>>7&127;case 1:Q[B]=_!==1?128|c:127&c}}function Vie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}const gle=new Map([["moderation",1],["supervise",2]]);class Ele extends Cn{get connectionState(){return this._connectionState}set connectionState(s){if(this._connectionState===s)return;const c=this._connectionState;this._connectionState=s,this.emit(fa.CONNECTION_STATE_CHANGE,c,s)}get inspectType(){return this._inspectType}set inspectType(s){var c;this._inspectMode=VA(c=s.map(u=>gle.get(u)||0)).call(c,(u,h)=>u+h),this._inspectType=s}get quality(){return this._quality}set quality(s){this._quality=s>1?1:s<.1?.1:s,this.qualityTimer&&(window.clearTimeout(this.qualityTimer),this.qualityTimer=null),this._quality>=1||(this.qualityTimer=window.setTimeout(()=>{this.quality=this._quality/this.qualityRatio},6e4))}constructor(s){super(),ae(this,"name","AgoraRTCVideoContentInspect"),ae(this,"_connectionState",Oo.CONNECTING),ae(this,"_innerConnectionState",void 0),ae(this,"sequence",0),ae(this,"inspectStartTime",void 0),ae(this,"workerManagerConnection",void 0),ae(this,"workerConnection",void 0),ae(this,"workerMessageLengthLimit",void 0),ae(this,"inspectIntervalMinimum",void 0),ae(this,"qualityRatio",void 0),ae(this,"_connectInfo",void 0),ae(this,"_cancelTokenSource",on.CancelToken.source()),ae(this,"_retryConfig",void 0),ae(this,"wmSequence",0),ae(this,"inspectInterval",void 0),ae(this,"inspectTimer",null),ae(this,"ossFilePrefix",void 0),ae(this,"extraInfo",void 0),ae(this,"_inspectType",void 0),ae(this,"_inspectMode",void 0),ae(this,"_quality",1),ae(this,"qualityTimer",null),ae(this,"_inspectId",void 0),ae(this,"_needWorkUrlOnly",!1),ae(this,"inspectImage",()=>{if(this.connectionState!==Oo.CONNECTED)throw new qe(Ce.OPERATION_ABORTED,"content inspect service connection status is ".concat(this.connectionState));this.inspectTimer&&(window.clearInterval(this.inspectTimer),this.inspectTimer=null),this.inspectTimer=window.setInterval(()=>{this.connectionState===Oo.CONNECTED?this.requestToInspectImage():J.debug("[".concat(this._inspectId,"] Inspect State is not connected , "),this.connectionState)},this.inspectInterval{this._innerConnectionState=c,J.debug("[".concat(this._inspectId,"] Inspect operation :").concat(Fc[c]," ").concat(u||""))}),this.handleWorkerManagerEvents(),this.workerConnection=new Ug("worker-"+this._inspectId,So),this.handleWorkerEvents()}async init(s,c){this.emit(fa.STATE_CHANGE,Fc.CONNECT_AP),this._connectInfo=s;const u=this._cancelTokenSource.token;return this._retryConfig=c,new Ut((h,_)=>{this.on(fa.CONNECTION_STATE_CHANGE,(B,Q)=>{Q===Oo.CONNECTED&&h()}),this.requestAP(s,u,c).then(B=>{this.connectWorkerManager(B)}).catch(B=>{_(B)})})}async requestAP(s,c,u){const h=de("WEBCS_DOMAIN").map(Q=>"https://".concat(Q,"/api/v1")),_=await function(Q,T,D,O){let P=T.appId,U=T.areaCode,H=T.cname,$=T.sid,Z=T.token,te=T.uid;oT++;const se="image_moderation_api",ge={service_name:se,json_body:JSON.stringify({appId:P,areaCode:U,cname:H,command:"allocateEdge",requestId:oT,seq:oT,sid:$,token:Z,ts:Date.now(),uid:te+""})};let me,Qe,Oe=Q[0];return dl(async()=>{me=Date.now();const we=await ng(Oe,{data:ge,cancelToken:D,headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"61"},params:{action:"wrtc_gateway"}});if(Qe=Date.now()-me,we.code!==0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"image inspect ap error, code"+we.code,{retry:!0,responseTime:Qe});throw J.error(ft.toString()),ft}const Ne=JSON.parse(we.json_body);if(Ne.code!==200){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"image inspect ap error, code: ".concat(Ne.code,", reason: ").concat(Ne.reason),{code:Ne.code,responseTime:Qe});throw J.error(ft.toString()),ft}if(!Ne.servers||!Array.isArray(Ne.servers)||Ne.servers.length===0){const ft=new qe(Ce.UNEXPECTED_RESPONSE,"image inspect ap empty server",{code:Ne.code,responseTime:Qe});throw J.error(ft.toString()),ft}const et=de("VIDEO_INSPECT_WORKER_MANAGER_WSS");if(et)return{addressList:[et],workerToken:Ne.workerToken,vid:Ne.vid,responseTime:Qe};const st=de("VIDEO_INSPECT_WORKER_MANAGER_HOST"),Xt=de("VIDEO_INSPECT_WORKER_MANAGER_PORT");return{addressList:Ne.servers.map(ft=>{let Ir=ft.address,ui=ft.wss;if(Ir&&ui)return"wss://".concat(Ir.replace(/\./g,"-"),".").concat(st,":").concat(Xt||ui)}).filter(ft=>!!ft),workerToken:Ne.workerToken,vid:Ne.vid,responseTime:Qe}},(we,Ne)=>(qt.apworkerEvent($,{success:!0,sc:200,serviceName:se,responseDetail:JSON.stringify(we.addressList),firstSuccess:Ne===0,responseTime:Qe,serverIp:Q[Ne%Q.length]}),!1),(we,Ne)=>(qt.apworkerEvent($,{success:!1,sc:we.data&&we.data.code||200,serviceName:se,responseTime:Qe,serverIp:Q[Ne%Q.length]}),!!(we.code!==Ce.OPERATION_ABORTED&&we.code!==Ce.UNEXPECTED_RESPONSE||we.data&&we.data.retry)&&(Oe=Q[(Ne+1)%Q.length],!0)),O)}(h,s,c,u);this.emit(fa.STATE_CHANGE,Fc.AP_CONNECTED);const B=_.addressList;return this.wmSequence++,B}async connectWorkerManager(s){let c=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this._needWorkUrlOnly=c,this.emit(fa.STATE_CHANGE,Fc.CONNECT_WORKER_MANAGER),await this.workerManagerConnection.init(s,1e4)}async connectWorker(s){await this.workerConnection.init([s])}handleWorkerManagerEvents(){this.workerManagerConnection.on(jr.CONNECTED,async()=>{this.emit(fa.STATE_CHANGE,Fc.WORKER_MANAGER_CONNECTED,this.workerManagerConnection.url),this.workerManagerConnection.sendMessage({appId:this._connectInfo.appId,cname:this._connectInfo.cname,uid:this._connectInfo.uid+"",sdkVersion:"4.24.5",sid:this._connectInfo.sid,seq:this.wmSequence,ts:Number(Date.now()),requestId:Math.floor(1e12*Math.random()),allocate:!0,clientRequest:{command:"join"}},!0)}),this.workerManagerConnection.on(jr.CLOSED,()=>{this._innerConnectionState{this._innerConnectionState{this._innerConnectionState{this.emit(fa.STATE_CHANGE,Fc.GET_WORKER_MANAGER_RESPONSE);const c=this.workerManagerConnection.url;this.workerManagerConnection.close();const u=JSON.parse(s.data);if(u.code!==200)throw J.error("[".concat(this._inspectId,"] Unexpected code ").concat(u.code," from worker manager")),new qe(Ce.UNEXPECTED_RESPONSE,"response code of worker is unexpected",u);if(!(u.serverResponse&&u.serverResponse.portWss&&c))throw J.error("[".concat(this._inspectId,"] Unexpected content from worker manager : ").concat(JSON.stringify(u))),new qe(Ce.UNEXPECTED_RESPONSE,"response content of worker is unexpected",u);{const h=de("VIDEO_INSPECT_WORKER_PORT")||u.serverResponse.portWss,_=c.replace(/:\d+\/?$/,":".concat(h));this.emit(fa.STATE_CHANGE,Fc.CONNECT_WORKER,_),this._needWorkUrlOnly?this.emit(fa.REQUEST_NEW_WORKER_URL,_):await this.connectWorker(_)}}),this.workerManagerConnection.on(jr.WILL_RECONNECT,(s,c,u)=>{u(s)}),this.workerManagerConnection.on(jr.REQUEST_NEW_URLS,(s,c)=>{this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(s).catch(c)})}handleWorkerEvents(){this.workerConnection.on(jr.CONNECTED,async()=>{this.emit(fa.STATE_CHANGE,Fc.WORKER_CONNECTED,this.workerConnection.url),this.connectionState=Oo.CONNECTED}),this.workerConnection.on(jr.ON_MESSAGE,async s=>{if(s.data instanceof ArrayBuffer){const u=sle(new Uint8Array(s.data));if(de("SHOW_VIDEO_INSPECT_WORKER_MESSAGE")&&J.debug("[".concat(this._inspectId,"] Response message for worker of inspect content "),JSON.stringify(u)),u.code===200){if(Array.isArray(this.inspectType)&&this.inspectType.length===1&&this.inspectType[0]==="supervise")return void this.emit(fa.INSPECT_RESULT,void 0,void 0);if(u.data&&u.data.scorePorn&&u.data.scoreSexy&&u.data.scoreNeutral){var c;const h={porn:u.data.scorePorn,sexy:u.data.scoreSexy,neutral:u.data.scoreNeutral},_=VA(c=Object.keys(h)).call(c,(Q,T)=>h[Q]>h[T]?Q:T,"porn"),B=Object.keys(h).find(Q=>Q===_);this.emit(fa.INSPECT_RESULT,B)}else this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.UNEXPECTED_RESPONSE,u.code+"","There is an unexpected data on message"))}else this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.UNEXPECTED_RESPONSE,u.code+"",u.msg))}else J.error("[".concat(this._inspectId,"] Unexpected message type from worker")),this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.UNEXPECTED_RESPONSE,"invalid worker message type"))}),this.workerConnection.on(jr.CLOSED,()=>{this.connectionState=Oo.CLOSED}),this.workerConnection.on(jr.FAILED,()=>{this.connectionState=Oo.CLOSED}),this.workerConnection.on(jr.RECONNECTING,()=>{this.connectionState=this.connectionState===Oo.CONNECTED?Oo.RECONNECTING:Oo.CONNECTING}),this.workerConnection.on(jr.WILL_RECONNECT,(s,c,u)=>{s==="recover"&&u(s),u("tryNext")}),this.workerConnection.on(jr.REQUEST_NEW_URLS,(s,c)=>{this.workerManagerConnection.close(),this.once(fa.REQUEST_NEW_WORKER_URL,u=>{s([u])}),this.requestAP(this._connectInfo,this._cancelTokenSource.token,this._retryConfig).then(u=>{this.connectWorkerManager(u,!0)}).catch(u=>{c(u)})})}async requestToInspectImage(){this.sequence++;const s=q1(this,fa.CLIENT_LOCAL_VIDEO_TRACK),c={appId:this._connectInfo.appId,cname:this._connectInfo.cname,cid:this._connectInfo.cid,sid:this._connectInfo.sid,uid:this._connectInfo.uid,vid:this._connectInfo.vid};if(s){if(!s.isPlaying)return void this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.INVALID_OPERATION,"Only the track being played can be inspected"));const u=await this.generateRequestData(s,c);this.workerConnection.sendMessage(u,!0,!0)}else this.emit(fa.INSPECT_RESULT,void 0,new qe(Ce.INVALID_OPERATION,"Only the track being published can be inspected"))}async generateRequestData(s,c){let u=c.appId,h=c.cname,_=c.cid,B=c.vid,Q=c.sid,T=c.uid;const D=Date.now(),O=await s.getCurrentFrameImage("image/jpeg",this.quality),P=await fU(O,u,h),U=this.sequence+"-"+_+"-"+T+"-"+D+"-"+un(12,""),H={appId:u,cid:_,cname:h,deviceId:"",elapse:($=Number(D-this.inspectStartTime),{low:$|=0,high:$>>31,unsigned:$>=0}),fileSize:P.byteLength,jpgEncryption:2,height:O.height,width:O.width,jpg:P,networkType:6,osType:7,requestId:U,sdkVersion:"4.24.5",sequence:this.sequence,sid:Q,timestamp:Mre(D),uid:T,vid:B,service:this._inspectMode,callbackData:this.extraInfo,ossFilePrefix:this.ossFilePrefix};var $;this.extraInfo===void 0&&delete H.callbackData,this.ossFilePrefix===void 0&&delete H.ossFilePrefix;const Z=ole(H);if(Z.byteLength{var _;if(!Et(_=["supervise","moderation"]).call(_,h))throw new qe(Ce.INVALID_PARAMS,"".concat(h," is not a valid inspect type."))}),c.inspectType=u}if(c&&c.extraInfo&&c.extraInfo.length>1024)throw new qe(Ce.INVALID_PARAMS,"inspectConfig.extraInfo length cannot exceed 1024 bytes")}(s),new Ele(s)}};var Kie=f(Zn.Object.getOwnPropertySymbols),Ile=In,Cle=wT.indexOf,ple=BI,bz=Tt([].indexOf),Hie=!!bz&&1/bz([1],1,-0)<0;Ile({target:"Array",proto:!0,forced:Hie||!ple("indexOf")},{indexOf:function(t){var s=arguments.length>1?arguments[1]:void 0;return Hie?bz(this,t,s)||0:Cle(this,t,s)}});var fle=E1("Array","indexOf"),_le=W,mle=fle,Nz=Array.prototype,Ble=function(t){var s=t.indexOf;return t===Nz||_le(Nz,t)&&s===Nz.indexOf?mle:s},Yie=f(Ble);function Sle(t,s){if(t==null)return{};var c,u,h=function(B,Q){if(B==null)return{};var T,D,O={},P=CN(B);for(D=0;D=0||(O[T]=B[T]);return O}(t,s);if(Kie){var _=Kie(t);for(u=0;u<_.length;u++)c=_[u],Yie(s).call(s,c)>=0||Object.prototype.propertyIsEnumerable.call(t,c)&&(h[c]=t[c])}return h}let jie=class{get localCapabilities(){return go(this._localCapabilities)}get rtpCapabilities(){return go(this._rtpCapabilities)}get candidates(){return go(this._candidates)}get iceParameters(){return go(this._iceParameters)}get dtlsParameters(){return go(this._dtlsParameters)}constructor(t){ae(this,"sessionDesc",void 0),ae(this,"_localCapabilities",void 0),ae(this,"_rtpCapabilities",void 0),ae(this,"_candidates",void 0),ae(this,"_iceParameters",void 0),ae(this,"_dtlsParameters",void 0),ae(this,"setup",void 0),ae(this,"currentMidIndex",void 0),ae(this,"cname","o/i14u9pJrxRKAsu"),ae(this,"firefoxSsrcMidMap",new Map);const s=t=go(t),c=s.remoteIceParameters,u=s.remoteDtlsParameters,h=s.candidates,_=s.remoteRTPCapabilities,B=s.localCapabilities,Q=s.direction,T=s.setup,D=s.videoCodec,O=s.audioCodec;let P;this.setup=T,P=Q===EA.RECEIVE_ONLY?wa(`v=0 -o=- 0 0 IN IP4 127.0.0.1 -s=AgoraGateway -t=0 0 -a=group:BUNDLE 0 1 -a=msid-semantic: WMS -a=extmap-allow-mixed -m=video 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:0 -m=audio 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=sendonly -a=rtcp-mux -a=rtcp-rsize -a=mid:1 -`):wa(`v=0 -o=- 0 0 IN IP4 127.0.0.1 -s=AgoraGateway -t=0 0 -a=group:BUNDLE 0 1 -a=msid-semantic: WMS -a=extmap-allow-mixed -m=video 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=recvonly -a=rtcp-mux -a=rtcp-rsize -a=mid:0 -m=audio 9 UDP/TLS/RTP/SAVPF 0 -c=IN IP4 127.0.0.1 -a=rtcp:9 IN IP4 0.0.0.0 -a=recvonly -a=rtcp-mux -a=rtcp-rsize -a=mid:1 -`),this._rtpCapabilities=_,this._candidates=h,this._iceParameters=c,this._dtlsParameters=u,this._localCapabilities=B;const U=Q===EA.RECEIVE_ONLY?this.rtpCapabilities.send:this.rtpCapabilities.recv,H=Q===EA.RECEIVE_ONLY?this._localCapabilities.recv:this._localCapabilities.send,$=Q===EA.RECEIVE_ONLY?_.send.videoCodecs:p9(rr.VIDEO,U,H,D),Z=Q===EA.RECEIVE_ONLY?_.send.audioCodecs:p9(rr.AUDIO,U,H,O);for(const te of P.mediaDescriptions)te.attributes.iceUfrag=c.iceUfrag,te.attributes.icePwd=c.icePwd,te.attributes.fingerprints=u.fingerprints,te.attributes.candidates=h,te.attributes.setup=this.setup,te.media.mediaType==="application"&&(te.attributes.sctpPort="5000"),te.media.mediaType==="video"&&(te.media.fmts=$.map(se=>se.payloadType.toString(10)),te.attributes.payloads=$,te.attributes.extmaps=U.videoExtensions),te.media.mediaType==="audio"&&(te.media.fmts=Z.map(se=>se.payloadType.toString(10)),te.attributes.payloads=Z,te.attributes.extmaps=U.audioExtensions,nT(te));this.sessionDesc=P,this.currentMidIndex=P.mediaDescriptions.length-1}toString(){return X1(this.sessionDesc)}hasMid(t){return Array.isArray(t)?t.every(s=>this.hasMid(s)):this.sessionDesc.mediaDescriptions.some(s=>s.attributes.mid===t)}send(t,s,c,u,h){c=c.replace(/ /g,"-");const _=I9(s,this.cname,de("SYNC_GROUP")?c:void 0),B=_.ssrcs,Q=_.ssrcGroups,T=this.findPreloadMediaDesc(B);if(T){if(Ln()&&this.firefoxSsrcMidMap.set(B[0].ssrcId,T.attributes.mid),h&&(h.twcc||h.remb)){const D=this.sessionDesc.mediaDescriptions.indexOf(T);return this.sessionDesc.mediaDescriptions[D]=this.mungSendMediaDesc(T,h),{mid:T.attributes.mid,needExchangeSDP:!0}}return{mid:T.attributes.mid,needExchangeSDP:!1}}{const D=this.findAvailableMediaIndex(t,B,u);let O;return D===-1?(O=this.createOrRecycleSendMedia(t,B,Q,"sendonly",u,h),this.updateBundleMids()):(O=go(this.sessionDesc.mediaDescriptions[D]),O.attributes.direction="sendonly",O.attributes.ssrcs=B,O.attributes.ssrcGroups=Q,this.sessionDesc.mediaDescriptions[D]=this.mungSendMediaDesc(O,h)),Ln()&&this.firefoxSsrcMidMap.set(B[0].ssrcId,O.attributes.mid),{needExchangeSDP:!0,mid:O.attributes.mid}}}stopSending(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>c.attributes.mid&&t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.stopSending.");s.forEach(c=>{c.attributes.ssrcs=[]}),this.updateBundleMids()}receive(t,s,c){const u=[];return t.forEach(h=>{const _=h._mediaStreamTrack.kind,B=this.findAvailableRecvMediaIndex(_);let Q,T=!1;B===-1?(T=!0,Q=this.createOrRecycleRecvMedia(h,[],"recvonly",s,c),this.updateBundleMids()):(Q=go(this.sessionDesc.mediaDescriptions[B]),Q.attributes.direction="recvonly"),u.push({mid:Q.attributes.mid,needCreateTransceiver:T})}),u}stopReceiving(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>t.indexOf(c.attributes.mid)!==-1);if(s.length!==t.length)throw new Error("MediaDescriptions' length doesn't match mids's length when calling RemoteSDP.receive.");s.forEach(c=>{c.media.port="0",c.attributes.direction="inactive"}),this.updateBundleMids()}addRemoteCandidate(t){const s=new RTCIceCandidate(t),c=s.foundation,u=s.protocol,h=s.address,_=s.port,B=s.type,Q=s.relatedAddress,T=s.relatedPort,D=s.priority,O={foundation:c??"",componentId:"1",transport:u??"",priority:D?D+"":"",connectionAddress:h??"",port:_?_+"":"",type:B?B+"":"",relAddr:Q??"",relPort:T?T+"":"",extension:{}};this.candidates.some(P=>P.priority===O.priority&&P.connectionAddress===O.connectionAddress&&P.port===O.port)||(this._candidates.push(O),this.sessionDesc.mediaDescriptions.forEach(P=>{P.attributes.candidates=this.candidates}))}clearRemoteCandidate(){this._candidates=[],this.sessionDesc.mediaDescriptions[0].attributes.candidates=this._candidates}createOrRecycleRecvMedia(t,s,c,u,h){const _=t._mediaStreamTrack.kind,B=this.rtpCapabilities.recv,Q=p9(_,B,this.localCapabilities.send,_===rr.AUDIO?h:u),T=_===rr.VIDEO?B.videoExtensions:B.audioExtensions,D="".concat(++this.currentMidIndex);let O={media:{mediaType:_,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:Q.map(U=>U.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:T,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:[],rtcpFeedbackWildcards:[],payloads:Q,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:c,rtcpMux:!0,rtcpRsize:!0,mid:"".concat(D)}};O=this.mungRecvMediaDsec(O,t);const P=this.findFirstClosedMedia(_);if(P){const U=this.sessionDesc.mediaDescriptions.indexOf(P);this.sessionDesc.mediaDescriptions[U]=O}else this.sessionDesc.mediaDescriptions.push(O);return O}muteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="inactive"})}unmuteRemote(t){const s=this.sessionDesc.mediaDescriptions.filter(c=>Et(t).call(t,c.attributes.mid||""));if(s.length!==t.length)throw new Error("mediaDescriptions' length doesn't match mids' length when calling RemoteSDP.muteRemote.");s.forEach(c=>{c.attributes.direction="recvonly"})}findAvailableMediaIndex(t,s,c){return this.sessionDesc.mediaDescriptions.findIndex(u=>{const h=u.media.mediaType===t&&u.media.port!=="0"&&(u.attributes.direction==="sendonly"||u.attributes.direction==="sendrecv")&&u.attributes.ssrcs.length===0;if(Ln()){if(h){const _=this.firefoxSsrcMidMap.get(s[0].ssrcId);return!(_||u.attributes.mid!=="0"&&u.attributes.mid!=="1")||!(!_||_!==u.attributes.mid)}return!1}return h&&u.attributes.mid===c})}findAvailableRecvMediaIndex(t){return this.sessionDesc.mediaDescriptions.findIndex(s=>{const c=s.media.mediaType===t&&s.media.port!=="0"&&(s.attributes.direction==="recvonly"||s.attributes.direction==="sendrecv");return s.attributes.mid!=="0"&&s.attributes.mid!=="1"&&c})}predictReceivingMids(t){const s=[];for(let c=0;c{s.attributes.iceUfrag=t.iceUfrag,s.attributes.icePwd=t.icePwd})}createOrRecycleSendMedia(t,s,c,u,h,_){const B=this.rtpCapabilities.send,Q=t===rr.VIDEO?B.videoCodecs:B.audioCodecs,T=t===rr.VIDEO?B.videoExtensions:B.audioExtensions;Ln()&&(h="".concat(++this.currentMidIndex));let D={media:{mediaType:t,port:"9",protos:["UDP","TLS","RTP","SAVPF"],fmts:Q.map(P=>P.payloadType.toString(10))},connections:[{nettype:"IN",addrtype:"IP4",address:"127.0.0.1"}],bandwidths:[],attributes:{iceUfrag:this.iceParameters.iceUfrag,icePwd:this.iceParameters.icePwd,unrecognized:[],candidates:[],extmaps:T,fingerprints:this.dtlsParameters.fingerprints,imageattr:[],msids:[],remoteCandidatesList:[],rids:[],ssrcs:s,ssrcGroups:c,rtcpFeedbackWildcards:[],payloads:Q,rtcp:{port:"9",netType:"IN",addressType:"IP4",address:"0.0.0.0"},setup:this.setup,direction:u,rtcpMux:!0,rtcpRsize:!0,mid:h}};D=this.mungSendMediaDesc(D,_);const O=this.findFirstClosedMedia(t);if(O){const P=this.sessionDesc.mediaDescriptions.indexOf(O);this.sessionDesc.mediaDescriptions[P]=D}else this.sessionDesc.mediaDescriptions.push(D);return D}mungRecvMediaDsec(t,s,c){const u=go(t);return GX(u),Am(u,s),VX(u,s),pte(u),DF(u,c,this.localCapabilities.send),u}mungSendMediaDesc(t,s){const c=go(t);return DF(c,s,this.localCapabilities.recv),nT(c),c}updateRecvMedia(t,s){const c=this.sessionDesc.mediaDescriptions.findIndex(u=>u.attributes.mid===t);if(c!==-1){const u=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[c],s);this.sessionDesc.mediaDescriptions[c]=u}}updateBundleMids(){this.sessionDesc.attributes.groups[0].identificationTag=this.sessionDesc.mediaDescriptions.filter(t=>t.media.port!=="0").map(t=>t.attributes.mid)}findPreloadMediaDesc(t){return this.sessionDesc.mediaDescriptions.find(s=>{var c;return((c=s.attributes)===null||c===void 0||(c=c.ssrcs[0])===null||c===void 0?void 0:c.ssrcId)===t[0].ssrcId})}findFirstClosedMedia(t){return this.sessionDesc.mediaDescriptions.find(s=>Ln()?s.media.port==="0"&&s.media.mediaType===t:s.media.port==="0")}};const Rle=["sdp"];var Qo;function Jie(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function kp(t){for(var s=1;s2?arguments[2]:void 0,arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},"sendonly"),U={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},H={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},$={audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]};if(ig(P,O,"videoExtensions",U,H,$),ig(P,O,"videoCodecs",U,H,$),ig(P,O,"audioExtensions",U,H,$),ig(P,O,"audioCodecs",U,H,$),de("RAISE_H264_BASELINE_PRIORITY")){const Z=$.videoCodecs.findIndex(te=>te.rtpMap&&te.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&te.fmtp&&te.fmtp.parameters["profile-level-id"]==="42001f");if(Z!==-1){const te=$.videoCodecs.findIndex(se=>se.rtpMap&&se.rtpMap.encodingName.toLocaleLowerCase()==="h264");if(te!(se.rtpMap&&se.rtpMap.encodingName.toLocaleLowerCase()==="h264"&&se.fmtp&&se.fmtp.parameters["profile-level-id"]!=="42001f")))}}return{send:U,recv:H,sendrecv:$}}({},{},u);this.remoteSDP=new jie({remoteIceParameters:h.iceParameters,remoteDtlsParameters:h.dtlsParameters,candidates:[],remoteRTPCapabilities:_,localCapabilities:this.localCapabilities,direction:this.direction,setup:"actpass",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()}),this.isReady=!0;const B=await this.peerConnection.createAnswer();if(!B.sdp)throw new Error("Cannot get answer sdp when trying to establish PeerConnection.");const Q=Yh(B.sdp);await this.peerConnection.setLocalDescription(B);const T=await _te({},{},B.sdp);this.localCapabilities=C9(T);const D=this.peerConnection.getTransceivers()[0];return D!=null&&D.receiver&&D.receiver.transport&&this.tryBindTransportEvents(D.receiver.transport),kp(kp({},Q),{},{sdp:B.sdp})}{this.peerConnection.addTransceiver("video",{direction:"sendonly"}),this.peerConnection.addTransceiver("audio",{direction:"sendonly"});const u=await this.peerConnection.createOffer();if(!u.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const h=Yh(u.sdp);return this.initialOffer=u,kp(kp({},h),{},{sdp:u.sdp})}}catch(c){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,c.toString())}}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");await this.peerConnection.setLocalDescription(this.initialOffer);const c=s.sdp,u=s.iceParameters,h=s.dtlsParameters,_=await _te({},{},c);this.remoteSDP=new jie({remoteIceParameters:u,remoteDtlsParameters:h,candidates:[],remoteRTPCapabilities:_,localCapabilities:this.localCapabilities,direction:this.direction,setup:"active",videoCodec:this.store.codec,audioCodec:this.store.audioCodec}),await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()});const B=this.peerConnection.getTransceivers()[0];B!=null&&B.sender&&B.sender.transport&&this.tryBindTransportEvents(B.sender.transport)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(c.toString()))}}async addRemoteCandidate(s){try{s&&this.pendingCandidates.push(s),this.peerConnection.remoteDescription&&this.isReady&&(this.pendingCandidates.forEach(c=>{this.peerConnection.addIceCandidate(c)}),this.pendingCandidates=[])}catch(c){throw new tt(Ce.ADD_CANDIDATE_FAILED,"P2PConnection.addRemoteCandidate failed; ".concat(c.toString()))}}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From P2PConnection.send"));try{if(!h.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");const B=[],Q=h.remoteSDP.receive(s,c,u);s.forEach((te,se)=>{if(Q[se].needCreateTransceiver){const ge=h.peerConnection.addTransceiver(te._mediaStreamTrack,{direction:"sendonly"});B.push(ge),te._updateRtpTransceiver(ge)}else{const ge=h.peerConnection.getTransceivers().find(me=>me.mid===Q[se].mid);if(!ge)throw new Error("cannot find transceiver when sendPeerconnection send, mid is ".concat(Q[se].mid));B.push(ge),te._updateRtpTransceiver(ge)}}),Ln()&&de("SIMULCAST")===!0&&(yield Tr(h.applySimulcastForFirefox(B,s)));const T=Q.map(te=>te.mid),D=yield Tr(h.peerConnection.createOffer()),O=h.mungSendOfferSDP(D.sdp,s,T),P=wa(O),U=T.map(te=>{const se=P.mediaDescriptions.find(ge=>ge.attributes.mid===te);if(!se)throw new Error("Cannot extract ssrc from mediaDescription.");return FX(se,de("USE_PUB_RTX"))}),H=B.map((te,se)=>{const ge=T[se];return{localSSRC:U[se],id:ge}});yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O}));try{yield H}catch(te){const se=h.remoteSDP.toString();throw yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:se})),yield Tr(h.stopSending(T,!0)),te}yield Tr(h.applySimulcastEncodings(B,s)),yield Tr(h.applySendEncodings(B,s));const $=h.remoteSDP.toString(),Z=h.logSDPExchange(O,"offer","local","send");return Z==null||Z($),yield Tr(h.setRemoteDescription({type:"answer",sdp:$})),B.map((te,se)=>{const ge=T[se];return{localSSRC:U[se],id:ge}})}catch(B){throw B instanceof tt?B:new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(B.toString()))}finally{_()}})()}async stopSending(s,c){const u=c?void 0:await this.mutex.lock("From P2PConnection.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");const h=this.peerConnection.getTransceivers().filter(T=>s.indexOf(T.mid)!==-1);if(h.length!==s.length)throw new Error("Transceivers' length (".concat(h.length,") doesn't match mids' length (").concat(s.length,") when trying to call P2PConnection.stopSending."));h.map(T=>{var D;T.direction="inactive",(D=T.stop)===null||D===void 0||D.call(T)});const _=await this.peerConnection.createOffer(),B=this.logSDPExchange(_.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(_),this.remoteSDP.stopReceiving(s);const Q=this.remoteSDP.toString();B==null||B(Q),await this.setRemoteDescription({type:"answer",sdp:Q})}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(h.toString()))}finally{u&&u()}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;if(_.needExchangeSDP){const T=this.remoteSDP.toString(),D=this.logSDPExchange(T,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:T});const O=await this.peerConnection.createAnswer(),P=this.mungReceiveAnswerSDP(O.sdp,B,s);D==null||D(P||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:P}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," by exchanging SDP."))}else J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," no need to exchange SDP."));const Q=this.peerConnection.getTransceivers().find(T=>T.mid===B);if(!Q||Q.mid===null)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:Q.receiver.track,mid:Q.mid,transceiver:Q}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async mockReceive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;if(_.needExchangeSDP){const Q=this.remoteSDP.toString(),T=this.logSDPExchange(Q,"offer","remote","receive");await this.setRemoteDescription({type:"offer",sdp:Q});const D=await this.peerConnection.createAnswer(),O=this.mungReceiveAnswerSDP(D.sdp,B,s);T==null||T(O||""),await this.peerConnection.setLocalDescription({type:"answer",sdp:O}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," by exchanging SDP."))}else J.debug("[".concat(this.store.clientId,"] [P2PConnection] receive ").concat(s," no need to exchange SDP."))}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","stopReceiving");await this.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}async restartICE(s){try{if(this.store.p2pTransport===Ah.Auto&&(this.store.p2pTransport=Ah.SdRtn,Si().supportPCSetConfiguration&&this.peerConnection.setConfiguration(hT.resolvePCConfiguration(this.spec,this.store.p2pTransport))),this.restartCnt>3&&(this.restartCnt=0,Si().supportPCSetConfiguration&&this.peerConnection.setConfiguration(hT.resolvePCConfiguration(this.spec,this.store.p2pTransport,++this.curTurnServerIndex))),!s){this.restartCnt++,this.isReady=!1;const c=await this.peerConnection.createOffer({iceRestart:!0});if(!c.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const u=Yh(c.sdp).iceParameters;return this.store.descriptionStart(),this.direction===EA.SEND_ONLY&&await this.peerConnection.setLocalDescription(c),u}if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");if(this.remoteSDP.restartICE(s),this.store.descriptionStart(),this.direction===EA.RECEIVE_ONLY){this.restartCnt++,await this.setRemoteDescription({type:"offer",sdp:this.remoteSDP.toString()});const c=await this.peerConnection.createAnswer();if(!c.sdp)throw new Error("Cannot get answer sdp when trying to iceRestart.");const u=Yh(c.sdp).iceParameters;return await this.peerConnection.setLocalDescription(c),u}await this.setRemoteDescription({type:"answer",sdp:this.remoteSDP.toString()}),this.isReady=!0}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}close(){var s;this.peerConnection.close(),this.peerConnection.onicecandidate=null,(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.transport=void 0,this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c],[s]);this.remoteSDP.updateRecvMedia(s,c);const _=this.remoteSDP.toString(),B=this.logSDPExchange(h,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),B==null||B(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getTransceivers().filter(h=>h.mid===s);u.length===1&&(this.isVP8Simulcast(c)?Ln()||await this.applySimulcastEncodings(u,[c]):await this.applySendEncodings(u,[c]))}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getTransceivers().find(h=>h.mid===c);u&&await u.sender.replaceTrack(s._mediaStreamTrack)}async getSelectedCandidatePair(){const s=this.peerConnection.getReceivers();if(s.length>0&&s[0].transport&&s[0].transport.iceTransport&&s[0].transport.iceTransport.getSelectedCandidatePair&&s[0].transport.iceTransport.getSelectedCandidatePair()){const c=s[0].transport.iceTransport.getSelectedCandidatePair(),u=c.local,h=c.remote;return{local:kp(kp({},ya),{},{candidateType:u.type,protocol:u.protocol,address:u.address,port:u.port}),remote:kp(kp({},ya),{},{candidateType:h.type,protocol:h.protocol,address:h.address,port:h.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s,c;Et(s=["connected","completed"]).call(s,this.peerConnection.iceConnectionState)&&(this.isReady=!1),(c=this.onICEConnectionStateChange)===null||c===void 0||c.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;this.peerConnection.connectionState==="connected"&&(this.restartCnt=0),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.startICECandidate()}startICECandidate(){this.peerConnection.onicecandidate||(this.localCandidateCount=0,this.peerConnection.onicecandidate=s=>{if(s.candidate){var c;s.candidate.candidate&&((c=this.onLocalCandidate)===null||c===void 0||c.call(this,s.candidate.toJSON())),this.localCandidateCount+=1}else J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount)})}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s,c){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;const h={iceServers:[]};var _;return s.iceServers?h.iceServers=s.iceServers:s.turnServer&&s.turnServer.mode!=="off"&&(zi(s.turnServer.servers)?h.iceServers=s.turnServer.servers:(h.iceServers&&h.iceServers.push(...hT.turnServerConfigToIceServers(s.turnServer.servers,c,u)),de("USE_TURN_SERVER_OF_GATEWAY")&&h.iceServers&&s.turnServer.serversFromGateway&&h.iceServers.push(...hT.turnServerConfigToIceServers(s.turnServer.serversFromGateway,c,u)),Et(_=[Ah.Relay,Ah.SdRtn]).call(_,c)&&(h.iceTransportPolicy="relay"),de("FORCE_TURN_TCP")?h.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(B=>{B.forceturn&&(h.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(h.encodedInsertableStreams=!0),J.debug("P2PConnection p2pTransport is ".concat(c)),h}static turnServerConfigToIceServers(s,c){let u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;const h=[],_=s.filter(Q=>Q.tcpport);J.debug("P2PConnection turnServers is ".concat(_,", current index is ").concat(u));const B=_.length>u?_[u]:_[0];switch(c){case Ah.SdRtn:const Q=s.filter(D=>{var O;return Et(O=D.username).call(O,"glb:")&&D.turnServerURL==D.turnServerURL}),T=Q.length>u?Q[u]:Q[0];T&&(h.push({username:T.username,credential:T.password,credentialType:"password",urls:"turn:".concat(rg(T.turnServerURL),":").concat(T.tcpport,"?transport=udp")}),h.push({username:T.username,credential:T.password,credentialType:"password",urls:"turns:".concat(rg(T.turnServerURL),":").concat(T.tcpport,"?transport=tcp")}));break;case Ah.Relay:B&&(h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turn:".concat(B.turnServerURL,":").concat(B.tcpport,"?transport=udp")}),h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turns:".concat(rg(B.turnServerURL),":").concat(B.tcpport,"?transport=tcp")}));break;default:B&&(h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turn:".concat(B.turnServerURL,":").concat(B.tcpport,"?transport=udp")}),h.push({username:B.username,credential:B.password,credentialType:"password",urls:"turns:".concat(rg(B.turnServerURL),":").concat(B.tcpport,"?transport=tcp")}),h.push({username:B.username,credential:B.password,credentialType:"password",urls:"stun:".concat(B.turnServerURL,":").concat(B.tcpport)}))}return h}tryBindTransportEvents(s){if(s){this.transport=s,s.onstatechange=()=>{var u;s!=null&&s.state&&((u=this.onDTLSTransportStateChange)===null||u===void 0||u.call(this,s.state))},s.onerror=u=>{var h;(h=this.onDTLSTransportError)===null||h===void 0||h.call(this,"error"in u?u.error:u)};const c=s.iceTransport;c&&(c.onstatechange=()=>{const u=s==null?void 0:s.iceTransport.state;var h;u&&((h=this.onICETransportStateChange)===null||h===void 0||h.call(this,u))},c.getSelectedCandidatePair&&(c.onselectedcandidatepairchange=()=>{if(c.getSelectedCandidatePair()){const u=c.getSelectedCandidatePair()||{},h=u.local,_=u.remote;if(h&&_){const B=h.address+":"+h.port,Q=_.address+":"+_.port;J.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Hh(B)),", remote ").concat(JSON.stringify(Hh(Q))))}}}))}}tryUnbindTransportEvents(){this.transport&&(this.transport.onstatechange=null,this.transport.onerror=null,this.transport.iceTransport&&(this.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(s,c){var u;if(c||(c=this.peerConnection.getSenders().find(O=>O.track===s._mediaStreamTrack)),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(s))return J.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Si().supportSetRtpSenderParameters)return J.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");const h={},_={};switch(s._optimizationMode){case"motion":h.degradationPreference="maintain-framerate";break;case"detail":h.degradationPreference="maintain-resolution";break;default:h.degradationPreference="balanced"}if(s._encoderConfig){var B;const O=s._encoderConfig,P=O.bitrateMax,U=O.frameRate,H=O.scaleResolutionDownBy;P&&(_.maxBitrate=1e3*P),Et(B=s._hints).call(B,gn.LOW_STREAM)&&(U&&(_.maxFramerate=dc(U)),H&&H>=1&&(_.scaleResolutionDownBy=H))}if(de("DSCP_TYPE")&&Al()){var Q;const O=de("DSCP_TYPE");Et(Q=["very-low","low","medium","high"]).call(Q,O)&&(_.networkPriority=O)}const T=c.getParameters(),D=(u=T.encodings)===null||u===void 0?void 0:u[0];Ln()&&!D&&(h.encodings=[_]),D&&Object.assign(D,_),Object.assign(T,h),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(T.encodings))),await c.setParameters(T)}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const Q=u[B],T=h.mediaDescriptions.find(D=>D.attributes.mid===Q);T&&(Am(T,_),KX(T,_,this.store.codec))}),X1(h)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onFirstVideoDecodedTimeout=s=>{var c;(c=this.onFirstVideoDecodedTimeout)===null||c===void 0||c.call(this,s)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(s,c){if(s.length===c.length)for(let T=0;T200&&(B=O._scalabilityMode)!==null&&B!==void 0&&B.numSpatialLayers&&((Q=O._scalabilityMode)===null||Q===void 0?void 0:Q.numSpatialLayers)>1&&this.store.codec==="vp8"){const P={},U={high:1e3*(O._encoderConfig.bitrateMax-50),medium:5e4};P.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];const H=D.sender.getParameters();await D.sender.setParameters(Object.assign(H,P))}}}async applySimulcastEncodings(s,c){if(!Ln()&&s.length===c.length)for(let u=0;u200&&(_=s._scalabilityMode)!==null&&_!==void 0&&_.numSpatialLayers&&((B=s._scalabilityMode)===null||B===void 0?void 0:B.numSpatialLayers)>1)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("[".concat(this.store.clientId,"] exchanging ").concat(u," ").concat(c," SDP during P2PConnection.").concat(h,` -`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(B=>{B.direction="inactive"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.muteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(async B=>{B.direction="sendonly"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.unmuteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(c.toString()))}}async getRemoteSSRC(s,c){var u;if(c=c??((u=this.currentRemoteDescription)===null||u===void 0?void 0:u.sdp)){var h;const _=(h=wa(c).mediaDescriptions.find(B=>B.attributes.mid===s))===null||h===void 0?void 0:h.attributes.ssrcs;return _==null?void 0:_[0].ssrcId}}async setRemoteDescription(s){var c;await this.peerConnection.setRemoteDescription(s),Et(c=["connected","completed"]).call(c,this.peerConnection.iceConnectionState)||(this.isReady=!0,this.addRemoteCandidate())}mungReceiveAnswerSDP(s,c,u){const h=wa(s),_=h.mediaDescriptions.find(B=>B.attributes.mid===c);return _&&u===rr.AUDIO&&_.media.mediaType==="audio"&&nT(_),X1(h)}},Pt(Qo.prototype,"establish",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"establish"),Qo.prototype),Pt(Qo.prototype,"connect",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"connect"),Qo.prototype),Pt(Qo.prototype,"receive",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"receive"),Qo.prototype),Pt(Qo.prototype,"mockReceive",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"mockReceive"),Qo.prototype),Pt(Qo.prototype,"stopReceiving",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"stopReceiving"),Qo.prototype),Pt(Qo.prototype,"restartICE",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"restartICE"),Qo.prototype),Pt(Qo.prototype,"close",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"close"),Qo.prototype),Pt(Qo.prototype,"updateEncoderConfig",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"updateEncoderConfig"),Qo.prototype),Pt(Qo.prototype,"updateSendParameters",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"updateSendParameters"),Qo.prototype),Pt(Qo.prototype,"replaceTrack",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"replaceTrack"),Qo.prototype),Pt(Qo.prototype,"muteLocal",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"muteLocal"),Qo.prototype),Pt(Qo.prototype,"unmuteLocal",[sg],Object.getOwnPropertyDescriptor(Qo.prototype,"unmuteLocal"),Qo.prototype),Qo);function sg(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From P2PConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{const _=await this.sendMutex.lock("Locking from P2PChannel2.handleMuteLocalTrack");try{if(!this.sendConnection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established."));const T=this.filterTobeMutedTracks(c);if(T.length===0)return void u();const D=T.find(H=>H[0]==="videoLowTrack");D&&D[1].track._originMediaStreamTrack.stop(),await this.sendConnection.muteLocal(T.map(H=>ir(H,2)[1].id));let O=!1;var B,Q;c.trackMediaType==="video"?O=!((B=this.localTrackMap.get(Qt.LocalAudioTrack))===null||B===void 0||!B.track._muted):O=((Q=this.localTrackMap.get(Qt.LocalVideoTrack))===null||Q===void 0?void 0:Q.id)===void 0;const P=this.createMuteMessage(T);await sn(this,Cr.RequestMuteLocal,P);const U=c.trackMediaType==="video"?Uu.MUTE_LOCAL_VIDEO:Uu.MUTE_LOCAL_AUDIO;await sn(this,Cr.RequestP2PMuteLocal,{action:U,message:P,isMuteAll:O}),u()}catch(T){h(T)}finally{_()}}),ae(this,"handleUnmuteLocalTrack",async(c,u,h)=>{const _=await this.sendMutex.lock("Locking from P2PChannel2.handleUnmuteLocalTrack");try{if(!this.sendConnection||this.state!==ln.Connected)return void h(new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleUnmuteLocalTrack before sendConnection established."));const B=this.filterTobeUnmutedTracks(c);if(B.length===0)return void u();await this.sendConnection.unmuteLocal(B.map(D=>ir(D,2)[1].id));const Q=this.createUnmuteMessage(B),T=c.trackMediaType==="video"?Uu.UNMUTE_LOCAL_VIDEO:Uu.UNMUTE_LOCAL_AUDIO;await sn(this,Cr.RequestP2PMuteLocal,{action:T,message:Q}),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleUpdateVideoEncoder",async(c,u,h,_)=>{let B;typeof _=="boolean"&&_||(B=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoEncoder"));try{const T=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.sendConnection||!T||T.track!==c||this.state!==ln.Connected)return void u();const D=T.id,O=T.track;D&&(await this.sendConnection.updateSendParameters(D,O),await this.sendConnection.updateEncoderConfig(D,O),this.emit(Cr.UpdateVideoEncoder,O)),u()}catch(T){h(T)}finally{var Q;(Q=B)===null||Q===void 0||Q()}}),ae(this,"handleUpdateVideoSendParameters",async(c,u,h)=>{const _=await this.sendMutex.lock("Locking from P2PChannel2.handleUpdateVideoSendParameters");try{const B=this.localTrackMap.get(Qt.LocalVideoTrack);if(!this.sendConnection||!B||B.track!==c||this.state!==ln.Connected)return void u();const Q=B.id,T=B.track;Q&&await this.sendConnection.updateSendParameters(Q,T),u()}catch(B){h(B)}finally{_()}}),ae(this,"handleReplaceTrack",async(c,u,h,_)=>{let B;J.debug("[".concat(this.store.clientId,"] P2PChannel2 handleReplaceTrack for [track-id-").concat(c.getTrackId(),"]")),typeof _=="boolean"&&_||(B=await this.sendMutex.lock("From P2PChannel2.handleReplaceTrack"));try{var Q;const D=Array.from(this.localTrackMap.entries()).find(O=>{let P=ir(O,2)[1].track;return c===P});if(!this.sendConnection||!D||D[1].id===void 0||this.state!==ln.Connected)return void u();if(await((Q=this.sendConnection)===null||Q===void 0?void 0:Q.replaceTrack(c,D[1].id)),D[0]===Qt.LocalVideoTrack&&Si().supportDualStreamEncoding){const O=this.localTrackMap.get(Qt.LocalVideoLowTrack);if(O){const P=c._mediaStreamTrack.clone();O.track._originMediaStreamTrack.stop(),O.track._mediaStreamTrack=P,O.track._originMediaStreamTrack=P,await new Ut((U,H)=>{this.handleReplaceTrack(O.track,U,H,!0)})}}u()}catch(D){h(D)}finally{var T;(T=B)===null||T===void 0||T()}}),ae(this,"handleGetLocalVideoStats",c=>{c(this.statsCollector.getLocalVideoTrackStats())}),ae(this,"handleGetLocalAudioStats",c=>{c(this.statsCollector.getLocalAudioTrackStats())}),ae(this,"handleGetRemoteVideoStats",c=>this.statsCollector.getRemoteVideoTrackStats(c.uid)[c.uid]),ae(this,"handleGetRemoteAudioStats",c=>this.statsCollector.getRemoteAudioTrackStats(c.uid)[c.uid]),this.store=t,this.statsCollector=s,this.statsCollector.addP2PChannel(this),this.statsUploader=new cre(t),this.bindStatsUploaderEvents(),this.sendMutex=new ra("P2PChannel2-send-mutex",t.clientId),this.recvMutex=new ra("P2PChannel2-recv-mutex",t.clientId),this.reconnectInterval=window.setInterval(()=>{[this.sendConnection,this.recvConnection].forEach(c=>{c&&(c.iceConnectionState!=="disconnected"&&c.iceConnectionState!=="failed"||this.handleDisconnect(c.direction))})},de("ICE_RESTART_INTERVAL"))}async startP2PConnection(t,s){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support startP2PConnection.")}async connect(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support connect.")}async startP2P(t,s){let c;try{if(s){this.recvConnection&&(J.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset recvConnection.")),this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection)),c=await this.recvMutex.lock("From P2PChannel.startP2P"),this.recvConnection=new qie(t,this.store,EA.RECEIVE_ONLY),this.bindConnectionEvents(this.recvConnection);const u=await this.recvConnection.establish(s);return{iceParameters:u.iceParameters,dtlsParameters:u.dtlsParameters,sdp:u.sdp}}{this.state=ln.New,this.sendConnection&&(J.warning("[".concat(this.store.clientId,"] P2PChannel.startP2P reset sendConnection.")),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection)),c=await this.sendMutex.lock("From P2PChannel.startP2P"),this.sendConnection=new qie(t,this.store),this.store.peerConnectionStart(),this.bindConnectionEvents(this.sendConnection);const u=await this.sendConnection.establish();return{iceParameters:u.iceParameters,dtlsParameters:u.dtlsParameters,sdp:u.sdp}}}finally{c&&c()}}async p2pConnect(t){if(!this.sendConnection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.p2pConnect before P2PChannel2.startP2PConnection .");this.store.peerConnectionStart(),await this.sendConnection.connect(t),this.statsUploader.startUploadTransportStats(),this.statsUploader.startUploadExtensionUsageStats(),this.state=ln.Connected}async addRemoteCandidate(t,s){if(s===EA.RECEIVE_ONLY){if(!this.sendConnection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.sendConnection.addRemoteCandidate(t)}else{if(!this.recvConnection)throw new tt(Ce.UNEXPECTED_ERROR,"Cannot P2PChannel2.connect before P2PChannel2.addRemoteCandidate .");await this.recvConnection.addRemoteCandidate(t)}}publish(t,s,c){var u=this;return AA(function*(){const h=yield Tr(u.sendMutex.lock("From P2PChannel.publish"));try{if(!u.sendConnection||u.state!==ln.Connected){u.throwIfTrackTypeNotMatch(t);const D=t.filter(O=>u.pendingLocalTracks.indexOf(O)===-1);return void(u.pendingLocalTracks=u.pendingLocalTracks.concat(D))}u.store.pubId=u.store.pubId+1,_A.markPublishStart(u.store.clientId,u.store.pubId);const _=u.filterTobePublishedTracks(t,s,c);if(_.length===0)return void(yield Tr(u.tryToUnmuteAudio(t)));_.forEach(D=>{let O=D.track,P=D.type;const U=Date.now();u.store.publish(O.getTrackId(),P===Qt.LocalAudioTrack?"audio":"video",U)}),u.bindLocalTrackEvents(_);const B=yield Tr(u.sendConnection.send(_.map(D=>D.track),u.store.codec,u.store.audioCodec)),Q=(yield Tr(B.next())).value,T=u.createGatewayPublishMessage(_,Q);try{yield T}catch(D){throw B.throw(D),(D==null?void 0:D.code)===Ce.WS_ABORT&&_.forEach(O=>{let P=O.track;u.pendingLocalTracks.indexOf(P)===-1&&u.pendingLocalTracks.push(P)}),u.unbindLocalTrackEvents(_),D}yield Tr(B.next()),_.forEach(D=>{let O=D.type;u.statsCollector.addLocalStats(O)}),u.statsUploader.startUploadOutboundStats(),u.assignLocalTracks(_,Q),_.forEach(D=>{let O=D.track,P=D.type;const U=Date.now();u.store.publish(O.getTrackId(),P===Qt.LocalAudioTrack?"audio":"video",void 0,U)}),u.startUploadUplinkState()}finally{h()}})()}async unpublish(t){if(!this.sendConnection||this.state!==ln.Connected)return void(t.length===0?this.pendingLocalTracks.length=0:this.pendingLocalTracks=this.pendingLocalTracks.filter(h=>!Et(t).call(t,h)));const s=this.filterTobeUnpublishedTracks(t);if(s.length===0)return;const c=s.find(h=>h[0]==="videoLowTrack");c&&c[1].track.close();const u=this.createGatewayUnpublishMessage(s);if(await this.sendConnection.stopSending(s.map(h=>ir(h,2)[1].id)),this.withdrawLocalTracks(s),this.unbindLocalTrackEvents(s.map(h=>{let _=ir(h,2);return{type:_[0],track:_[1].track}})),s.forEach(h=>{let _=ir(h,1)[0];this.statsCollector.removeLocalStats(_)}),this.localTrackMap.size===0&&(this.statsUploader.stopUploadOutboundStats(),this.stopUploadUplinkState()),this.sendConnection&&this.state===ln.Connected)return c&&c[1].track.close(),u;t.forEach(h=>{const _=this.pendingLocalTracks.indexOf(h);_!==-1&&this.pendingLocalTracks.splice(_,1)})}startUploadUplinkState(){if(this.uploadUnplinkStarted)return;this.uploadUnplinkStarted=!0,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval);const t=()=>{const s=[],c=[];Array.from(this.localTrackMap.entries()).forEach(u=>{let h=ir(u,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs;const D={stream_type:Rce(Q,_),ssrcs:T};Q._muted||!Q._enabled?s.push(D):c.push(D)}),s.length>0&&s.forEach(u=>{sn(this,Cr.RequestMuteLocal,[u])}),c.length>0&&c.forEach(u=>{sn(this,Cr.RequestUnmuteLocal,[u])})};t(),this.uplinkStateUploadInterval=window.setInterval(()=>{t()},3e3)}stopUploadUplinkState(){this.uploadUnplinkStarted&&(this.uploadUnplinkStarted=!1,this.uplinkStateUploadInterval&&window.clearInterval(this.uplinkStateUploadInterval))}publishLowStream(t){return AA(function*(){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support publishLowStream.")})()}async republish(){this.pendingLocalTracks.length>0&&(J.debug("[".concat(this.store.clientId,"] Emit P2PChannelEvents.RequestRePublish to republish tracks.")),await $o(this,Cr.RequestRePublish,this.pendingLocalTracks),this.emit(Cr.MediaReconnectEnd,this.store.uid),this.pendingLocalTracks=[])}async unpublishLowStream(){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support unpublishLowStream.")}async subscribe(t,s,c,u){var h;if(!this.recvConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");if((h=this.remoteUserMap.get(t))!==null&&h!==void 0&&h.has(s))return;const _=await this.recvConnection.receive(s,[{ssrcId:c}],String(t.uid),u),B=_.track,Q=_.mid,T=_.transceiver;s===rr.AUDIO?(t._audioTrack?t._audioTrack._updateOriginMediaStreamTrack(B):(t._audioTrack=new an(B,t.uid,t._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote audio track: ").concat(t._audioTrack.getTrackId()))),T&&t._audioTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._audioTrack)):(t._videoSSRC=c,t._videoTrack?t._videoTrack._updateOriginMediaStreamTrack(B):(t._videoTrack=new Fd(B,t.uid,t._uintid,this.store),J.info("[".concat(this.store.clientId,"] [").concat(this.store.p2pId,"] create remote video track: ").concat(t._videoTrack.getTrackId()))),T&&t._videoTrack._updateRtpTransceiver(T),this.bindRemoteTrackEvents(t,t._videoTrack));const D=this.remoteUserMap.get(t);D?D.set(s,Q):this.remoteUserMap.set(t,new Map([[s,Q]])),this.statsCollector.addRemoteStats(t.uid),this.statsUploader.startUploadInboundStats(),this.startUploadDownlinkState();const O=this.pendingRemoteTracks.findIndex(P=>{let U=P.user,H=P.kind;return U.uid===t.uid&&s===H});O!==-1&&(this.pendingRemoteTracks.splice(O,1),this.emit(Cr.MediaReconnectEnd,t.uid))}async mockSubscribe(t,s,c,u){if(!this.recvConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot subscribe remote user when recvConnection disconnected.");await this.recvConnection.mockReceive(s,[{ssrcId:c}],String(t.uid),u)}async unsubscribe(t,s,c){const u=this.pendingRemoteTracks.filter(_=>{let B=_.user,Q=_.kind;return s!==void 0?B.uid===t.uid&&s===Q:B.uid===t.uid});if(u.forEach(_=>{const B=this.pendingRemoteTracks.indexOf(_);this.pendingRemoteTracks.splice(B,1)}),this.recvConnection||c||u.forEach(_=>{let B=_.kind;var Q;if(B===rr.AUDIO)(Q=t._audioTrack)===null||Q===void 0||Q._destroy(),t._audioTrack=void 0;else if(B===rr.VIDEO){var T;(T=t._videoTrack)===null||T===void 0||T._destroy(),t._videoTrack=void 0}}),!this.recvConnection)return;const h=this.filterTobeUnSubscribedTracks(t,s);h.length!==0&&(await this.recvConnection.stopReceiving(h.map(_=>ir(_,2)[1].id)),this.withdrawRemoteTracks(h),this.remoteUserMap.size===0&&(this.statsUploader.stopUploadInboundStats(),this.stopUploadDownlinkState()),h.forEach(_=>{let B=ir(_,2),Q=B[0],T=B[1].kind;var D,O;if(T===rr.VIDEO&&Q._videoSSRC&&((D=this.recvConnection)===null||D===void 0||D.setStatsRemoteVideoIsReady(Q._videoSSRC,!1)),T===rr.VIDEO)this.unbindRemoteTrackEvents(Q._videoTrack),c||((O=Q._videoTrack)===null||O===void 0||O._destroy(),Q._videoTrack=void 0);else if(T===rr.AUDIO){var P;this.unbindRemoteTrackEvents(Q._audioTrack),!c&&((P=Q._audioTrack)===null||P===void 0||P._destroy(),Q._audioTrack=void 0)}}),h.forEach(_=>{let B=ir(_,2)[1].kind;sn(this,Cr.RequestP2PMuteRemote,B)}))}startUploadDownlinkState(){if(this.uploadDownlinkStarted)return;this.uploadDownlinkStarted=!0,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval);const t=()=>Array.from(this.remoteUserMap.entries()).forEach(s=>{let c=ir(s,2)[1];[rr.VIDEO,rr.AUDIO].forEach(u=>{c.has(u)?sn(this,Cr.RequestP2PUnmuteRemote,u):sn(this,Cr.RequestP2PMuteRemote,u)})});t(),this.downlinkStatsUploadInterval=window.setInterval(()=>{t()},3e3)}stopUploadDownlinkState(){this.uploadDownlinkStarted&&(this.uploadDownlinkStarted=!1,this.downlinkStatsUploadInterval&&window.clearInterval(this.downlinkStatsUploadInterval))}getAllDataChannels(){return this.localDataChannels}async massSubscribe(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massSubscribe.")}async massSubscribeNoLock(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massSubscribeNoLock.")}async massUnsubscribe(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massUnsubscribe.")}async massUnsubscribeNoLock(t){throw new tt(Ce.NOT_SUPPORTED,"p2p mode does not support massUnsubscribeNoLock.")}async muteRemote(t,s){if(!this.recvConnection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(t.uid,"."));if(!c.get(s))return void J.warning("[".concat(this.store.clientId,"] P2PChannel2.muteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."));const u=s===rr.VIDEO?t._videoSSRC:t._audioSSRC;u!==void 0&&this.recvConnection.setStatsRemoteVideoIsReady(u,!1)}async unmuteRemote(t,s){return this.unmuteRemoteNoLock(t,s)}async unmuteRemoteNoLock(t,s){if(!this.recvConnection)return;const c=this.remoteUserMap.get(t);if(!c)return void J.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(t.uid,"."));c.get(s)||J.warning("[".concat(this.store.clientId,"] P2PChannel2.unmuteRemote has no remote user ").concat(t.uid," media type ").concat(s,"."))}getAllTracks(t){const s=this.localTrackMap.get(Qt.LocalAudioTrack);if((s==null?void 0:s.track)instanceof ia){const c=s.track;return Array.from(this.localTrackMap.entries()).filter(u=>ir(u,1)[0]!==Qt.LocalAudioTrack).filter(u=>{let h=ir(u,1)[0];return!(t&&h===Qt.LocalVideoLowTrack)}).map(u=>ir(u,2)[1].track).concat(c.trackList)}return Array.from(this.localTrackMap.entries()).filter(c=>{let u=ir(c,1)[0];return!(t&&u===Qt.LocalVideoLowTrack)}).map(c=>ir(c,2)[1].track)}reportPublishEvent(t,s,c,u,h){if(t){const B=this.localTrackMap.get(Qt.LocalAudioTrack),Q=u?this.localTrackMap.get(Qt.LocalVideoLowTrack):this.localTrackMap.get(Qt.LocalVideoTrack);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.track.getTrackLabel(),videoName:Q==null?void 0:Q.track.getTrackLabel(),screenshare:(Q==null?void 0:Q.track._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}else{var _;c||(c=[]);const B=c.find(T=>T instanceof po),Q=u?(_=this.localTrackMap.get(Qt.LocalVideoTrack))===null||_===void 0?void 0:_.track:c.find(T=>T instanceof pn);qt.publish(this.store.sessionId,{eventElapse:_A.measureFromPublishStart(this.store.clientId,this.store.pubId),succ:t,ec:s,audioName:B==null?void 0:B.getTrackLabel(),videoName:Q==null?void 0:Q.getTrackLabel(),screenshare:(Q==null?void 0:Q._hints.indexOf(gn.SCREEN_TRACK))!==-1,audio:!!B,video:!!Q,p2pid:this.store.p2pId,publishRequestid:this.store.pubId,extend:h})}}reportSubscribeEvent(t,s,c,u){const h=u===rr.VIDEO?c._videoSSRC:c._audioSSRC;h&&qt.subscribe(this.store.sessionId,{succ:t,ec:s,video:u===rr.VIDEO,audio:u===rr.AUDIO,peerid:c.uid,subscribeRequestid:u===rr.VIDEO?c._videoSSRC:c._audioSSRC,p2pid:this.store.p2pId,eventElapse:_A.measureFromSubscribeStart(this.store.clientId,h)})}reset(){J.debug("[".concat(this.store.clientId,"] P2PChannel2.reset")),this.sendMutex=new ra("P2PChannel2-send-mutex",this.store.clientId),this.sendMutex=new ra("P2PChannel2-recv-mutex",this.store.clientId),this.sendConnection&&(this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0),this.recvConnection&&(this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),this.statsUploader.stopUploadExtensionUsageStats(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.unbindLocalTrackEvents(),this.unbindAllRemoteTrackEvents(),this.unbindRtpTransceiver();const t=this.localTrackMap.get(Qt.LocalAudioTrack);if((t==null?void 0:t.track)instanceof ia){if(t.track.trackList.length>0){const s=t.track;t.track.trackList.forEach(c=>{s.removeAudioTrack(c)})}t.track.close()}this.localTrackMap.clear(),this.remoteUserMap.clear(),this.statsCollector.removeRemoteStats(),this.statsCollector.removeLocalStats(),this.dtlsFailedCount=0,this.pendingLocalTracks=[],this.pendingRemoteTracks=[],this.reconnectInterval&&(window.clearInterval(this.reconnectInterval),this.reconnectInterval=void 0),this.state=ln.Disconnected}getStats(t){var s,c;return t?(c=this.recvConnection)===null||c===void 0?void 0:c.getStats():(s=this.sendConnection)===null||s===void 0?void 0:s.getStats()}getRemoteVideoIsReady(t){var s;return((s=this.recvConnection)===null||s===void 0?void 0:s.getRemoteVideoIsReady(t))||!1}getLocalAudioVolume(){const t=this.localTrackMap.get(Qt.LocalAudioTrack);if(t)return t.track.getVolumeLevel()}getLocalVideoSize(){const t=this.localTrackMap.get(Qt.LocalVideoTrack);if(t)return{width:t.track.videoWidth||0,height:t.track.videoHeight||0}}getEncoderConfig(t){const s=this.localTrackMap.get(t);return s&&s.track instanceof pn||s&&s.track instanceof po?s.track._encoderConfig:void 0}getLocalMedia(t){return this.localTrackMap.get(t)}hasLocalMedia(){return this.localTrackMap.size>0}hasRemoteMedia(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}async hasRemoteMediaWithLock(t,s){if(!t)return this.remoteUserMap.size>0;const c=this.remoteUserMap.get(t);return!!c&&(!s||c.has(s))}getRemoteMedia(t){var s;const c=Array.from(js(s=this.remoteUserMap).call(s)).find(u=>u.uid===t);return c?{audioTrack:c.audioTrack,audioSSRC:c._audioSSRC,videoTrack:c.videoTrack,videoSSRC:c._videoSSRC}:{}}getAudioLevels(){let t=Array.from(this.remoteUserMap.entries()).map(c=>{let u=ir(c,1)[0];return{uid:u.uid,level:u.audioTrack?100*u.audioTrack._source.getAccurateVolumeLevel():0}});const s=this.localTrackMap.get(Qt.LocalAudioTrack);return s&&t.push({level:100*s.track._source.getAccurateVolumeLevel(),uid:this.store.uid}),t=x1(t).call(t,(c,u)=>c.level-u.level),t}async disconnectForReconnect(){this.sendConnection&&this.recvConnection&&(J.debug("[".concat(this.store.clientId,"] P2PChannel2.disconnectForReconnect closing P2PConnection")),this.state=ln.Reconnecting,de("KEEP_LAST_FRAME")&&this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,1)[0];var c;s._videoTrack&&s._videoTrack._player&&((c=s._videoTrack._player.getVideoElement())===null||c===void 0||c.pause(),s._videoTrack._player.isKeepLastFrame=!0,s._videoTrack._originMediaStreamTrack.stop())}),this.sendConnection.close(),this.unbindConnectionEvents(this.sendConnection),this.sendConnection=void 0,this.recvConnection.close(),this.unbindConnectionEvents(this.recvConnection),this.recvConnection=void 0,this.localTrackMap.size!==0&&(Array.from(this.localTrackMap.entries()).forEach(t=>{var s;let c=ir(t,2),u=c[0],h=c[1].track;switch(u){case Qt.LocalVideoTrack:Et(s=h._hints).call(s,gn.LOW_STREAM)?h.close():this.pendingLocalTracks.push(h);break;case Qt.LocalAudioTrack:h instanceof ia?this.pendingLocalTracks=this.pendingLocalTracks.concat(h.trackList):this.pendingLocalTracks.push(h);case Qt.LocalVideoLowTrack:}}),this.emit(Cr.MediaReconnectStart,this.store.uid)),this.unbindLocalTrackEvents(),this.localTrackMap.clear(),this.remoteUserMap.size!==0&&Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];Array.from(js(u).call(u)).forEach(h=>{this.setPendingRemoteMedia(c,h)}),this.emit(Cr.MediaReconnectStart,c.uid)}),this.unbindAllRemoteTrackEvents(),this.remoteUserMap.clear(),this.stopUploadUplinkState(),this.stopUploadDownlinkState(),this.statsUploader.stopUploadOutboundStats(),this.statsUploader.stopUploadInboundStats(),this.statsUploader.stopUploadTransportStats(),J.debug("[".concat(this.store.clientId,"] P2PChannel2 disconnected, waiting to reconnect.")))}hasPendingRemoteMedia(t,s){for(const c of this.pendingRemoteTracks){const u=c.user,h=c.kind;if((t instanceof vp?t.uid:t)===u.uid&&s===h)return!0}return!1}setPendingRemoteMedia(t,s){this.hasPendingRemoteMedia(t,s)||this.pendingRemoteTracks.push({user:t,kind:s})}async restartICE(t,s){let c,u;if(t===EA.SEND_ONLY){if(!this.sendConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before sendConnection established.");c=await this.sendMutex.lock("From P2PChannel.restartICE"),u=this.sendConnection}else{if(!this.recvConnection)throw new tt(Ce.INVALID_OPERATION,"Cannot call P2PChannel2.handleMuteLocalTrack before recvConnection established.");c=await this.recvMutex.lock("From P2PChannel.restartICE"),u=this.recvConnection}try{if(s){const h=await u.restartICE(s);return u.isInRestartIce=!1,h}{const h=await u.restartICE();if(h){const _=await $o(this,Cr.RequestP2PRestartICE,{direction:EA.RECEIVE_ONLY,iceParameter:h});await u.restartICE(_),u.isInRestartIce=!1}}}finally{c()}}getUplinkNetworkQuality(){if(!this.sendConnection)return 0;const t=this.sendConnection.getStats(),s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalAudioTrack),u=t.videoSend.find(H=>{var $;return H.ssrc===(s==null||($=s.ssrcs)===null||$===void 0?void 0:$[0].ssrcId)}),h=t.audioSend.find(H=>{var $;return H.ssrc===(c==null||($=c.ssrcs)===null||$===void 0?void 0:$[0].ssrcId)});if(!u||!h)return 1;const _=q1(this,Cr.NeedSignalRTT),B=u?u.rttMs:void 0,Q=h?h.rttMs:void 0,T=B&&Q?(B+Q)/2:B||Q,D=(T&&_?(T+_)/2:T||_)||0,O=100*t.sendPacketLossRate*.7/50+.3*D/1500,P=O<.17?1:O<.36?2:O<.59?3:O<.1?4:5,U=s==null?void 0:s.track;if(U&&U._encoderConfig&&U._hints.indexOf(gn.SCREEN_TRACK)===-1){const H=U._encoderConfig.bitrateMax,$=t.bitrate.actualEncoded;if(H&&$){const Z=(1e3*H-$)/(1e3*H);return t7[Z<.15?0:Z<.3?1:Z<.45?2:Z<.6?3:4][P]}}return P}getDownlinkNetworkQuality(){if(!this.recvConnection)return 0;const t=this.recvConnection.getStats();let s=0;return Array.from(this.remoteUserMap.entries()).forEach(c=>{let u=ir(c,1)[0];const h=u._audioSSRC,_=u._videoSSRC,B=t.audioRecv.find($=>$.ssrc===h),Q=t.videoRecv.find($=>$.ssrc===_);if(!B&&!Q)return void(s+=1);const T=q1(this,Cr.NeedSignalRTT),D=t.rtt,O=(D&&T?(D+T)/2:D||T)||0,P=B?B.jitterMs:void 0,U=t.recvPacketLossRate;let H=.7*U*100/50+.3*O/1500;P&&(H=.6*U*100/50+.2*O/1500+.2*P/400),s+=H<.1?1:H<.17?2:H<.36?3:H<.59?4:5}),this.remoteUserMap.size>0?Math.round(s/this.remoteUserMap.size):s}async muteLocalTrack(t){return new Ut((s,c)=>{this.handleMuteLocalTrack(t,s,c)})}filterTobePublishedTracks(t,s,c){const u=[],h=Si(),_=this.getAllTracks();t=oh(t=t.filter(T=>_.indexOf(T)===-1));let B=!1,Q=!1;for(const T of t){if(T instanceof pn&&(this.localTrackMap.has(Qt.LocalVideoTrack)||B?new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS).throw():(u.push({track:T,type:Qt.LocalVideoTrack}),B=!0),s)){const D=this.getLowVideoTrack(T,c);u.push({track:D,type:Qt.LocalVideoLowTrack})}if(T instanceof po){const D=this.localTrackMap.get(Qt.LocalAudioTrack);if(D){if(!(D.track instanceof ia))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(T._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");D.track.addAudioTrack(T),this.bindLocalAudioTrackEvents(T,!0)}else if(Q){const O=u.find(P=>P.type===Qt.LocalAudioTrack);if(!(O.track instanceof ia))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser does not support audio mixing");if(T._bypassWebAudio)throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio");O.track.addAudioTrack(T)}else{if(!h.webAudioMediaStreamDest||T instanceof ia||T._bypassWebAudio)u.push({track:T,type:Qt.LocalAudioTrack});else{const O=new ia;O.addAudioTrack(T),u.push({track:O,type:Qt.LocalAudioTrack})}Q=!0}}}return u}filterTobeUnpublishedTracks(t){const s=[],c=this.getAllTracks();t=oh(t=t.filter(u=>c.indexOf(u)!==-1));for(const u of t){if(u instanceof po){const h=this.localTrackMap.get(Qt.LocalAudioTrack);if(!h)continue;h.track instanceof ia?(h.track.removeAudioTrack(u),this.unbindLocalAudioTrackEvents(u),h.track.trackList.length===0&&(s.push([Qt.LocalAudioTrack,h]),h.track.close())):s.push([Qt.LocalAudioTrack,h])}if(u instanceof pn){const h=this.localTrackMap.get(Qt.LocalVideoTrack);if(!h)continue;s.push([Qt.LocalVideoTrack,h]);const _=this.localTrackMap.get(Qt.LocalVideoLowTrack);_&&s.push([Qt.LocalVideoLowTrack,_])}}return s}bindLocalTrackEvents(t){t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.addListener(xt.GET_STATS,this.handleGetLocalVideoStats),c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.addListener(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.bindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}bindLocalAudioTrackEvents(t,s){t instanceof ia?t.trackList.forEach(c=>{c.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),c.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.addListener(xt.GET_STATS,this.handleGetLocalAudioStats),t.addListener(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.addListener(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.addListener(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack),s||t.addListener(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack))}unbindLocalTrackEvents(t){t||(t=Array.from(this.localTrackMap.entries()).map(s=>{let c=ir(s,2),u=c[0];return{track:c[1].track,type:u}})),t.forEach(s=>{let c=s.track;switch(s.type){case Qt.LocalVideoTrack:c.off(xt.GET_STATS,this.handleGetLocalVideoStats),c.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),c.off(xt.NEED_UPDATE_VIDEO_ENCODER,this.handleUpdateVideoEncoder),c.off(xt.NEED_UPDATE_VIDEO_SEND_PARAMETERS,this.handleUpdateVideoSendParameters),c.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),c.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),c.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack);break;case Qt.LocalAudioTrack:this.unbindLocalAudioTrackEvents(c);case Qt.LocalVideoLowTrack:}})}unbindLocalAudioTrackEvents(t){t instanceof ia?t.trackList.forEach(s=>{s.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),s.off(xt.GET_STATS,this.handleGetLocalAudioStats),s.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),s.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack)}):(t.off(xt.GET_STATS,this.handleGetLocalAudioStats),t.off(xt.NEED_DISABLE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_ENABLE_TRACK,this.handleUnmuteLocalTrack),t.off(xt.NEED_REPLACE_TRACK,this.handleReplaceTrack),t.off(xt.NEED_MUTE_TRACK,this.handleMuteLocalTrack),t.off(xt.NEED_UNMUTE_TRACK,this.handleUnmuteLocalTrack))}bindRemoteTrackEvents(t,s){s instanceof Fd&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteVideoStats(t))}),s instanceof an&&s.addListener(xt.GET_STATS,c=>{c(this.handleGetRemoteAudioStats(t))})}unbindRemoteTrackEvents(t){t&&t.removeAllListeners(xt.GET_STATS)}unbindAllRemoteTrackEvents(){Array.from(this.remoteUserMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1];u.has(rr.AUDIO)&&this.unbindRemoteTrackEvents(c._audioTrack),u.has(rr.VIDEO)&&this.unbindRemoteTrackEvents(c._videoTrack)})}createGatewayPublishMessage(t,s){return t.map((c,u)=>{var h;let _,B=c.track,Q=c.type;switch(Q){case Qt.LocalAudioTrack:_=En.Audio;break;case Qt.LocalVideoTrack:_=Et(h=B._hints).call(h,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:_=En.Low}return{kind:Q===Qt.LocalAudioTrack?rr.AUDIO:rr.VIDEO,stream_type:_,mid:s[u].id,ssrcs:s[u].localSSRC,isMuted:B.muted||!B.enabled}})}createGatewayUnpublishMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}assignLocalTracks(t,s){t.forEach((c,u)=>{let h=c.track,_=c.type;this.localTrackMap.set(_,{track:h,id:s[u].id,ssrcs:s[u].localSSRC})})}withdrawLocalTracks(t){t.forEach(s=>{let c=ir(s,1)[0];this.localTrackMap.delete(c)})}bindConnectionEvents(t){t.onConnectionStateChange=async s=>{var c;J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: ").concat(t.name,".onConnectionStateChange(").concat(s,")")),this.emit(Cr.PeerConnectionStateChange,s),s!=="connected"||this.store.keyMetrics.peerConnectionEnd||this.store.peerConnectionEnd(),s==="connected"&&(t.isInRestartIce=!1),Et(c=this._restartStates).call(c,s)&&!t.isInRestartIce&&(s==="disconnected"&&await so(800),t.iceConnectionState!=="disconnected"&&t.iceConnectionState!=="failed"||this.handleDisconnect(t.direction))},t.onICEConnectionStateChange=s=>{s!=="connected"||this.store.keyMetrics.iceConnectionEnd||this.store.iceConnectionEnd(),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICEConnectionStateChange(").concat(s,")")),qt.reportApiInvoke(this.store.sessionId,{name:"ICEConnectionStateChange",options:s,tag:vn.TRACER}).onSuccess(),this.emit(Cr.IceConnectionStateChange,s)},t.onICETransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onICETransportStateChange(").concat(s,")"))},t.onDTLSTransportStateChange=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportStateChange(").concat(s,")"))},t.onDTLSTransportError=s=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.onDTLSTransportError(").concat(s,")"))},t.onFirstAudioDecoded=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(_=>_._audioSSRC===s);var h;u&&(this.store.subscribe(u.uid,"audio",void 0,void 0,void 0,Date.now()),(h=u.audioTrack)===null||h===void 0||h.emit($1.FIRST_FRAME_DECODED),qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_DECODE,ao.FIRST_AUDIO_DECODE,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId}))},t.onFirstAudioReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._audioSSRC===s);u&&qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_AUDIO_RECEIVED,ao.FIRST_AUDIO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId})},t.onFirstVideoDecoded=(s,c,u)=>{this.reportVideoFirstFrameDecoded(s,c,u)},t.onFirstVideoReceived=s=>{var c;const u=Array.from(js(c=this.remoteUserMap).call(c)).find(h=>h._videoSSRC===s);u&&qt.firstRemoteFrame(this.store.sessionId,Rs.FIRST_VIDEO_RECEIVED,ao.FIRST_VIDEO_RECEIVED,{peer:u._uintid,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,s),subscribeRequestid:s,p2pid:this.store.p2pId})},t.onSelectedLocalCandidateChanged=(s,c)=>{const u=s.candidateType==="relay",h=c.candidateType==="relay";c.candidateType!=="unknown"&&u===h||this.emit(Cr.ConnectionTypeChange,u),J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedLocalCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onSelectedRemoteCandidateChanged=(s,c)=>{J.info("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: P2PConnection.SelectedRemoteCandidateChanged(").concat(JSON.stringify(Qp(c))," -> ").concat(JSON.stringify(Qp(s)),")"))},t.onFirstVideoDecodedTimeout=s=>{this.reportVideoFirstFrameDecoded(s,void 0,void 0,!0)},t.onLocalCandidate=s=>{this.emit(Cr.LocalCandidate,{candidate:s,direction:t.direction})}}unbindConnectionEvents(t){t.onConnectionStateChange=void 0,t.onICEConnectionStateChange=void 0,t.onICETransportStateChange=void 0,t.onDTLSTransportStateChange=void 0,t.onDTLSTransportError=void 0,t.onFirstAudioDecoded=void 0,t.onFirstAudioReceived=void 0,t.onFirstVideoDecoded=void 0,t.onFirstVideoReceived=void 0,t.onSelectedLocalCandidateChanged=void 0,t.onSelectedRemoteCandidateChanged=void 0,t.onFirstVideoDecodedTimeout=void 0,t.onLocalCandidate=void 0}async handleDisconnect(t){const s=t===EA.SEND_ONLY?this.sendConnection:this.recvConnection;s&&!s.isInRestartIce&&(s.isInRestartIce=!0,J.debug("[".concat(this.store.clientId,"] [P2PChannel-").concat(s.name,"] start use restartICE")),t===EA.SEND_ONLY?this.restartICE(t):$o(this,Cr.RequestP2PRestartICE,{direction:EA.SEND_ONLY}))}filterTobeMutedTracks(t){const s=[];if(this.getAllTracks().indexOf(t)===-1)return s;const c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive||s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u&&(s.push(u),u[0]===Qt.LocalVideoTrack)){const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}return s}filterTobeUnmutedTracks(t){const s=[],c=this.localTrackMap.get(Qt.LocalAudioTrack);if(t instanceof po&&(c==null?void 0:c.track)instanceof ia)return c.track.isActive&&s.push([Qt.LocalAudioTrack,c]),s;const u=Array.from(this.localTrackMap.entries()).find(h=>{let _=ir(h,2)[1].track;return t===_});if(u)if(u[0]===Qt.LocalVideoTrack){s.push(u);const h=this.localTrackMap.get(Qt.LocalVideoLowTrack);h&&s.push([Qt.LocalVideoLowTrack,h])}else s.push(u);return s}createMuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}createUnmuteMessage(t){return t.map(s=>{var c;let u,h=ir(s,2),_=h[0],B=h[1],Q=B.track,T=B.ssrcs,D=B.id;switch(_){case Qt.LocalAudioTrack:u=En.Audio;break;case Qt.LocalVideoTrack:u=Et(c=Q._hints).call(c,gn.SCREEN_TRACK)?En.Screen:En.High;break;case Qt.LocalVideoLowTrack:u=En.Low}return{stream_type:u,ssrcs:T,mid:D}})}filterTobeUnSubscribedTracks(t,s){const c=[],u=this.remoteUserMap.get(t);if(!u)return c;if(s){const h=u.get(s);if(!h)return c;c.push([t,{kind:s,id:h}])}else Array.from(u.entries()).forEach(h=>{let _=ir(h,2),B=_[0],Q=_[1];c.push([t,{kind:B,id:Q}])});return c}createUnsubscribeMessage(t){const s=[];return t.forEach(c=>{let u=ir(c,2),h=u[0],_=u[1],B=_.kind;switch(_.id,B){case rr.VIDEO:return void(h._videoSSRC&&s.push({stream_type:rr.VIDEO,ssrcId:h._videoSSRC}));case rr.AUDIO:return void(h._audioSSRC&&s.push({stream_type:rr.AUDIO,ssrcId:h._audioSSRC}))}}),s}withdrawRemoteTracks(t){t.forEach(s=>{let c=ir(s,2),u=c[0],h=c[1].kind;const _=this.remoteUserMap.get(u);_&&(_.delete(h),Array.from(_.entries()).length===0&&this.remoteUserMap.delete(u))})}async updateBitrateLimit(t){const s=this.localTrackMap.get(Qt.LocalVideoTrack),c=this.localTrackMap.get(Qt.LocalVideoLowTrack);s&&(await s.track.setBitrateLimit(t.uplink),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(s.track,u,h,!0)})),c&&t.low_stream_uplink&&(await c.track.setBitrateLimit({max_bitrate:t.low_stream_uplink.bitrate,min_bitrate:t.low_stream_uplink.bitrate||0}),await new Ut((u,h)=>{this.handleUpdateVideoEncoder(c.track,u,h,!0)}))}isP2PDisconnected(){if(this.sendConnection&&this.recvConnection){const t=this.sendConnection.peerConnectionState,s=this.recvConnection.peerConnectionState;return t!=="connected"&&s!=="connected"}return!0}async tryToUnmuteAudio(t){for(let s=0;sthis.getStats(t),this.statsUploader.requestLocalMedia=()=>Array.from(this.localTrackMap.entries()).filter(t=>!!ir(t,2)[1].ssrcs),this.statsUploader.requestRemoteMedia=()=>Array.from(this.remoteUserMap.entries()),this.statsUploader.requestVideoIsReady=t=>{var s;return!((s=this.recvConnection)===null||s===void 0||!s.getRemoteVideoIsReady(t))},this.statsUploader.requestUpload=(t,s)=>this.emit(Cr.RequestUpload,t,s),this.statsUploader.requestUploadStats=t=>this.emit(Cr.RequestUploadStats,t),this.statsUploader.requestAllTracks=()=>this.getAllTracks()}unbindStatsUploaderEvents(){this.statsUploader.requestStats=void 0,this.statsUploader.requestLocalMedia=void 0,this.statsUploader.requestRemoteMedia=void 0,this.statsUploader.requestVideoIsReady=void 0}async requestReconnect(){this.dtlsFailedCount+=1,await so(Lf(this.dtlsFailedCount,So)),this.emit(Cr.RequestReconnect)}async reconnectP2P(){}canPublishLowStream(){return this.localTrackMap.has(Qt.LocalVideoTrack)||this.pendingLocalTracks.some(t=>t instanceof pn)}throwIfTrackTypeNotMatch(t){if(t.filter(s=>s instanceof pn).length>1)throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(t.filter(s=>s instanceof po).length>1&&(t.some(s=>s instanceof po&&s._bypassWebAudio)||!Si().webAudioMediaStreamDest))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode");for(const s of t){if(s instanceof pn&&this.pendingLocalTracks.some(c=>c instanceof pn))throw new tt(Ce.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS);if(s instanceof po&&this.pendingLocalTracks.some(c=>c instanceof po)&&(!Si().webAudioMediaStreamDest||s._bypassWebAudio||this.pendingLocalTracks.some(c=>c instanceof po&&c._bypassWebAudio)))throw new tt(Ce.NOT_SUPPORTED,"cannot publish multiple tracks which one of them configured with bypassWebAudio or your browser doesn't support MediaStreamDestNode")}}getLowVideoTrack(t,s){const c=!de("DISABLE_DUAL_STREAM_USE_ENCODING")&&Si().supportDualStreamEncoding,u=$F($F({},{width:160,height:120,framerate:15,bitrate:50}),s);let h;h=c?t._mediaStreamTrack.clone():dz(t,u);const _=un(8,"track-low-"),B=new pn(h,$F($F({},c&&{scaleResolutionDownBy:xX(u,t)}),{},{frameRate:u.framerate,bitrateMax:u.bitrate,bitrateMin:u.bitrate}),void 0,void 0,_);return B.on(dh.TRANSCEIVER_UPDATED,Q=>{t._updateRtpTransceiver(Q,xC.LOW_STREAM)}),B._hints.push(gn.LOW_STREAM),t.addListener(xt.NEED_CLOSE,()=>{B.close()}),B}async globalLock(){return this.recvMutex.lock("From P2PChannel2.globalLock")}reportVideoFirstFrameDecoded(t,s,c,u){var h;const _=Array.from(js(h=this.remoteUserMap).call(h)).find(B=>B._videoSSRC===t);if(_){u||this.store.subscribe(_.uid,"video",void 0,void 0,void 0,void 0,Date.now());const B=this.store.keyMetrics,Q=B.subscribe.find(T=>T.userId===_.uid&&T.type==="video");qt.firstRemoteVideoDecode(this.store.sessionId,Rs.FIRST_VIDEO_DECODE,ao.FIRST_VIDEO_DECODE,{peer:_._uintid,videowidth:s,videoheight:c,subscribeElapse:_A.measureFromSubscribeStart(this.store.clientId,t),subscribeRequestid:t,p2pid:this.store.p2pId,apEnd:B.requestAPEnd||0,apStart:B.requestAPStart||0,joinGwEnd:B.joinGatewayEnd||0,joinGwStart:B.joinGatewayStart||0,pcEnd:B.peerConnectionEnd||0,pcStart:B.peerConnectionStart||0,subscriberEnd:(Q==null?void 0:Q.subscribeEnd)||0,subscriberStart:(Q==null?void 0:Q.subscribeStart)||0,videoAddNotify:(Q==null?void 0:Q.streamAdded)||0,state:u?1:0})}}async remoteMediaSsrcChanged(t,s,c){if(!this.recvConnection)return!1;const u=this.remoteUserMap.get(t);if(!u)return!1;const h=u.get(s);if(!h)return!1;const _=await this.recvConnection.getRemoteSSRC(h);return _!==void 0&&_!==c}isPreSubScribe(t){return!1}async publishDataChannel(t){throw new tt(Ce.NOT_SUPPORTED)}async unpublishDataChannel(t){throw new tt(Ce.NOT_SUPPORTED)}async subscribeDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}async unsubscribeDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}hasPendingRemoteDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}setPendingRemoteDataChannel(t,s){throw new tt(Ce.NOT_SUPPORTED)}async preConnect(t){throw new tt(Ce.NOT_SUPPORTED)}getEstablishParams(){throw new tt(Ce.NOT_SUPPORTED)}async reSubscribe(t){throw new tt(Ce.NOT_SUPPORTED)}reportVideoFirstFrameRender(t){}async updateVideoStreamParameter(t,s){throw new tt(Ce.NOT_SUPPORTED)}unbindRtpTransceiver(){this.localTrackMap.size!==0&&Array.from(this.localTrackMap.entries()).forEach(t=>{let s=ir(t,2),c=s[0],u=s[1].track;c===Qt.LocalVideoLowTrack?u._updateRtpTransceiver(void 0,xC.LOW_STREAM):u._updateRtpTransceiver(void 0)})}},Pt(Ko.prototype,"p2pConnect",[Wie],Object.getOwnPropertyDescriptor(Ko.prototype,"p2pConnect"),Ko.prototype),Pt(Ko.prototype,"unpublish",[Xie],Object.getOwnPropertyDescriptor(Ko.prototype,"unpublish"),Ko.prototype),Pt(Ko.prototype,"unpublishLowStream",[zie],Object.getOwnPropertyDescriptor(Ko.prototype,"unpublishLowStream"),Ko.prototype),Pt(Ko.prototype,"subscribe",[$ie],Object.getOwnPropertyDescriptor(Ko.prototype,"subscribe"),Ko.prototype),Pt(Ko.prototype,"mockSubscribe",[Zie],Object.getOwnPropertyDescriptor(Ko.prototype,"mockSubscribe"),Ko.prototype),Pt(Ko.prototype,"unsubscribe",[ene],Object.getOwnPropertyDescriptor(Ko.prototype,"unsubscribe"),Ko.prototype),Pt(Ko.prototype,"muteRemote",[tne],Object.getOwnPropertyDescriptor(Ko.prototype,"muteRemote"),Ko.prototype),Pt(Ko.prototype,"unmuteRemote",[rne],Object.getOwnPropertyDescriptor(Ko.prototype,"unmuteRemote"),Ko.prototype),Pt(Ko.prototype,"hasRemoteMediaWithLock",[ine],Object.getOwnPropertyDescriptor(Ko.prototype,"hasRemoteMediaWithLock"),Ko.prototype),Pt(Ko.prototype,"disconnectForReconnect",[nne],Object.getOwnPropertyDescriptor(Ko.prototype,"disconnectForReconnect"),Ko.prototype),Pt(Ko.prototype,"remoteMediaSsrcChanged",[one],Object.getOwnPropertyDescriptor(Ko.prototype,"remoteMediaSsrcChanged"),Ko.prototype),Ko);function cE(t){return function(s,c,u){const h=s[c];if(typeof h!="function")throw new Error("Cannot use mutex on object property.");return u.value=async function(){for(var _=arguments.length,B=new Array(_),Q=0;Q<_;Q++)B[Q]=arguments[Q];switch(t){case AE.SEND_ONLY:{const T=await this.sendMutex.lock("From P2PChannel2.".concat(c));try{return await h.apply(this,B)}finally{T()}}case AE.RECEIVE_ONLY:{const T=await this.recvMutex.lock("From P2PChannel2.".concat(c));try{return await h.apply(this,B)}finally{T()}}default:{const T=await this.sendMutex.lock("From P2PChannel2.".concat(c)),D=await this.recvMutex.lock("From P2PChannel2.".concat(c));try{return await h.apply(this,B)}finally{T(),D()}}}},u}}class Cm extends Cn{constructor(s,c){super(),ae(this,"signal",void 0),ae(this,"token",void 0),ae(this,"tokenTimeout",void 0),ae(this,"tokenInterval",void 0),ae(this,"_sequence",0),ae(this,"userMap",new Map),ae(this,"encoder",new TextEncoder),this.signal=s,this.token=c;const u=()=>{this.signal.connectionState===Ci.CONNECTED&&this.check(),this.userMap.size===0?this.tokenInterval=window.setTimeout(u,1e3):this.tokenInterval=window.setTimeout(u,3*de("P2P_TOKEN_INTERVAL"))};u()}async send(s,c,u,h,_){var B;if(this.userMap.size===0)return;const Q=Array.from(BA(B=this.userMap).call(B))[0].token;typeof c!="string"&&(c=JSON.stringify(c)),h=h??un(6,""),_=_??this._sequence++;const T={_id:h,_type:s,_seq:_,_message:c,token:"".concat(this.token,"_").concat(Q)};de("SHOW_P2P_LOG")&&J.debug("send message",T,"noNeedResponse : ".concat(u)),this.splitMessage(JSON.stringify(T)).forEach(O=>{this.signal.request(ur.DATA_STREAM,{payload:kd(this.encoder.encode(O))})});const D=new Ut((O,P)=>{const U=window.setTimeout(()=>{this.off("res-@".concat(h,"_ack"),H),this.off("res-@".concat(h),Z),this.off(Pg.ABORT,$),J.debug("[external-signal] request timeout, type: ".concat(s,", requestId: ").concat(h)),this.userMap.size===0?P(new tt(Ce.INVALID_REMOTE_USER)):P(new tt(Ce.TIMEOUT))},de("EXTERNAL_SIGNAL_REQUEST_TIMEOUT")),H=()=>{U&&window.clearTimeout(U),this.off(Pg.ABORT,$),u&&O()},$=()=>{U&&window.clearTimeout(U),this.off("res-@".concat(h,"_ack"),H),this.off("res-@".concat(h),Z),P(new tt(Ce.EXTERNAL_SIGNAL_ABORT,"type: ".concat(s,", requestId: ").concat(h)))};this.once(Pg.ABORT,$),this.once("res-@".concat(h,"_ack"),H);const Z=(se,ge)=>{te=!0,U&&window.clearTimeout(U),this.off("res-@".concat(h,"_ack"),H),this.off(Pg.ABORT,$),se==="success"?O(ge):P(new tt(Ce.P2P_MESSAGE_FAILED,"request ".concat(s," failed, requestId: ").concat(h)))};let te=!1;u||(this.once("res-@".concat(h),Z),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{te||J.warning("external_signal request timeout, type: ".concat(s,", requestId: ").concat(h,", ").concat(T))}))});try{return await D}catch(O){if(O.code===Ce.TIMEOUT)return await this.send(s,c,u,h,_);throw O}}onMessage(s){var c;const u=s._uid;let h,_=this.userMap.get(u);if(_)h=_.splitMessageMap;else{if(this.userMap.size>0||!("_type"in s)||s._type!==Go.CHECK)return;const O=s.token;h=new Map,_={uid:u,isStart:!0,token:O,splitMessageMap:h,nextExpectedSequenceNumber:0,receivedMessagesMap:new Map},this.userMap.set(u,_),this.signal.emit(Ur.ON_USER_ONLINE,{uid:u}),this.handleUserOnline()}if("id"in s&&"total"in s){var B;const O=s,P=O.id,U=O.total,H=(B=h.get(P))!==null&&B!==void 0?B:[];if(H.push(s),h.has(P)||h.set(P,H),H.length!==U)return;{const $=x1(H).call(H,(Z,te)=>Z.index-te.index).map(Z=>Z.payload).join("");h.delete(P),(s=JSON.parse($))._uid=u}}const Q=s,T=Q._type,D=Q.token;if(Et(c=[Go.ACK,Go.CHECK]).call(c,T))return T===Go.CHECK&&this.handleCheckToken(_,D),void this.receiveMessage(s);D==="".concat(_.token,"_").concat(this.token)?this.handleReceivedMessage(s):J.debug('Receive unexpected message", '.concat(D,", cur_token: ").concat(_.token,"_").concat(this.token),s)}check(){const s={_id:un(6,""),token:this.token,_type:Go.CHECK};de("SHOW_P2P_LOG")&&J.debug("send message",s),this.signal.request(ur.DATA_STREAM,{payload:kd(this.encoder.encode(JSON.stringify(s)))})}ack(s){const c={_id:s,_type:Go.ACK,token:this.token};de("SHOW_P2P_LOG")&&J.debug("send message",c),this.signal.request(ur.DATA_STREAM,{payload:kd(this.encoder.encode(JSON.stringify(c)))})}response(s,c,u){this.send(Go.RESPONSE,JSON.stringify({success:!u,message:c}),!0,s)}handleReceivedMessage(s){const c=()=>{this.userMap.forEach(O=>{const P=O.receivedMessagesMap,U=O.nextExpectedSequenceNumber;for(;P.has(U);){const H=P.get(U);P.delete(U),this.receiveMessage(H),O.nextExpectedSequenceNumber++}})};if(!s)return void c();const u=s,h=u._uid,_=u._seq,B=this.userMap.get(h),Q=B.receivedMessagesMap,T=B.isStart,D=B.nextExpectedSequenceNumber;if(_{this.response(s._id,Q)}).catch(()=>{this.response(s._id,void 0,!0)});break;case Go.ACK:this.getListeners("res-@".concat(c,"_ack")).length>0&&this.emit("res-@".concat(c,"_ack"));break;case Go.RESPONSE:{const Q=B,T=Q.success,D=Q.message;this.emit("res-@".concat(c),T?"success":"failed",D);break}}}}splitMessage(s){if(s.length0;){_++;const T={id:h,index:_,total:Q,payload:s.slice(0,B),token:"".concat(this.token,"_").concat(u)};JSON.stringify(T).length>Cm.MAX_MESSAGE_SIZE?B-=50:(c.push(T),s=s.slice(B))}return c.map(T=>JSON.stringify(T))}handleCheckToken(s,c){return s.token!==c?(J.debug("token changed, from ".concat(s.token," to ").concat(c)),this.reset(s.uid,c),!1):(this.tokenTimeout&&(window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0),this.tokenTimeout=window.setTimeout(()=>{J.debug("token timeout, ".concat(c)),this.reset(s.uid)},de("MAX_P2P_TIMEOUT")),!0)}async handleUserOnline(){const s=await $o(this.signal,Go.CALL,void 0),c=await this.send(Go.CALL,s);this.signal.emit(er.P2P_CONNECTION,c,!0)}async reset(s,c){const u=this.userMap.get(s);u&&(this.emit(Pg.ABORT),this.signal.emit(Ur.ON_USER_OFFLINE,{uid:u.uid,reason:qJ.P2P_TOKEN_CHANGED}),this._sequence=0,this.userMap.clear(),c||(J.debug("change local token from ".concat(c," to ").concat(c)),this.token=un(6,"")))}clear(){this._sequence=0,this.userMap.clear(),this.tokenInterval&&window.clearTimeout(this.tokenInterval),this.tokenInterval=void 0,this.tokenTimeout&&window.clearTimeout(this.tokenTimeout),this.tokenTimeout=void 0,this.emit(Pg.ABORT)}}ae(Cm,"MAX_SIZE",1),ae(Cm,"MAX_MESSAGE_SIZE",1024);class Qle extends Cn{get connectionState(){return this._connectionState}set connectionState(s){s!==this._connectionState&&(this._connectionState=s,s===Ci.CONNECTED?this.emit(er.WS_CONNECTED):s===Ci.RECONNECTING?this.emit(er.WS_RECONNECTING,this._websocketReconnectReason):s===Ci.CLOSED&&this.emit(er.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket&&this.websocket.url||null}get rtt(){return this.rttRolling.mean()}constructor(s,c){super(),ae(this,"__name__","P2PSignal"),ae(this,"_disconnectedReason",void 0),ae(this,"_websocketReconnectReason",void 0),ae(this,"_connectionState",Ci.CLOSED),ae(this,"reconnectToken",void 0),ae(this,"p2pToken",void 0),ae(this,"websocket",void 0),ae(this,"openConnectionTime",void 0),ae(this,"clientId",void 0),ae(this,"lastMsgTime",Date.now()),ae(this,"uploadCache",[]),ae(this,"uploadCacheInterval",void 0),ae(this,"rttRolling",new VR(5)),ae(this,"pingpongTimer",void 0),ae(this,"pingpongTimeoutCount",0),ae(this,"joinResponse",void 0),ae(this,"multiIpOption",void 0),ae(this,"initError",void 0),ae(this,"spec",void 0),ae(this,"store",void 0),ae(this,"_external_signal",void 0),ae(this,"onWebsocketMessage",u=>{if(u.data instanceof ArrayBuffer)return void this.emit(er.ON_BINARY_DATA,u.data);const h=JSON.parse(u.data);if(this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(h,"_id")){const _="res-@".concat(h._id);this.emit(_,h._result,h._message)}else if(Object.prototype.hasOwnProperty.call(h,"_type")){switch(h._type){case Ur.ON_DATA_STREAM:return void this.handleDataStream(h._message);case Ur.MUTE_AUDIO:case Ur.MUTE_VIDEO:case Ur.ON_P2P_LOST:case Ur.ON_USER_ONLINE:return;case Ur.ON_USER_OFFLINE:const _=h._message.uid;return J.debug("[".concat(this.clientId,"] user-offline uid: ").concat(_)),void this._external_signal.reset(_)}if(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED)switch(h._message.error_code){case 14:this.close(mi.UID_BANNED);break;case 15:this.close(mi.IP_BANNED);break;case 16:this.close(mi.CHANNEL_BANNED)}if(h._type===Ur.ON_USER_LICENSE_BANNED)switch(h._message.error_code){case Br.ERR_LICENSE_MISSING:this.close(mi.LICENSE_MISSING);break;case Br.ERR_LICENSE_EXPIRED:this.close(mi.LICENSE_EXPIRED);break;case Br.ERR_LICENSE_MINUTES_EXCEEDED:this.close(mi.LICENSE_MINUTES_EXCEEDED);break;case Br.ERR_LICENSE_PERIOD_INVALID:this.close(mi.LICENSE_PERIOD_INVALID);break;case Br.ERR_LICENSE_MULTIPLE_SDK_SERVICE:this.close(mi.LICENSE_MULTIPLE_SDK_SERVICE);break;case Br.ERR_LICENSE_ILLEGAL:this.close(mi.LICENSE_ILLEGAL);break;default:this.close()}}}),this.clientId=s.clientId,this.spec=s,this.store=c,this.websocket=new Bh("gateway-".concat(this.clientId),this.spec.retryConfig,!0,de("JOIN_GATEWAY_USE_DUAL_DOMAIN"),de("JOIN_GATEWAY_USE_443PORT_ONLY"),c),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Ci.CONNECTED&&this.reconnect("retry",Ss.OFFLINE)}),this.p2pToken=un(6,""),this._external_signal=new Cm(this,this.p2pToken)}async request(s,c,u,h){const _=un(6,""),B={_id:_,_type:s,_message:c},Q=this.websocket.connectionID,T=()=>new Ut(($,Z)=>{if(this.connectionState===Ci.CONNECTED)return $();const te=()=>{this.off(er.WS_CLOSED,se),$()},se=()=>{this.off(er.WS_CONNECTED,te),Z(new tt(Ce.WS_ABORT))};this.once(er.WS_CONNECTED,te),this.once(er.WS_CLOSED,se)});if(this.connectionState!==Ci.CONNECTING&&this.connectionState!==Ci.RECONNECTING||s===ur.JOIN||s===ur.REJOIN||await T(),this.websocket.sendMessage(B,!0),h)return;const D=new Ut(($,Z)=>{let te=!1;const se=(me,Qe)=>{te=!0,$({isSuccess:me==="success",message:Qe||{}}),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.emit(er.REQUEST_SUCCESS,s,c)};this.once("res-@".concat(_),se);const ge=()=>{Z(new tt(Ce.WS_ABORT,"type: ".concat(s))),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.off("res-@".concat(_),se)};this.once(er.WS_CLOSED,ge),this.once(er.WS_RECONNECTING,ge),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==Q||te||(J.warning("[".concat(this.clientId,"] ws request timeout, type: ").concat(s)),this.emit(er.REQUEST_TIMEOUT,s,c))})});let O=null;try{O=await D}catch($){if(this.connectionState===Ci.CLOSED||s===ur.LEAVE)throw new tt(Ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||u?$.throw():s===ur.JOIN||s===ur.REJOIN?null:(await T(),await this.request(s,c))}if(O.isSuccess)return O.message;const P=Number(O.message.error_code||O.message.code),U=m1(P),H=new tt(Ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(O.message.error_str),{code:P,data:O.message,desc:U.desc});return U.action==="success"?O.message:(J.warning("[".concat(this.clientId,"] [").concat(this.websocket.connectionID,"] unexpected response from type ").concat(s,", error_code: ").concat(P,", message: ").concat(U.desc,", action: ").concat(U.action)),P===Br.ERR_TOO_MANY_BROADCASTERS?((s===ur.JOIN||s===ur.REJOIN)&&(this.initError=H,this.close()),H.throw()):U.action==="failed"?H.throw():U.action==="quit"?(this.initError=H,this.close(),H.throw()):(P===Br.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=O.message.option,J.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Ss.MULTI_IP)):this.reconnect(U.action,Ss.SERVER_ERROR),s===ur.JOIN||s===ur.REJOIN?null:await this.request(s,c)))}waitMessage(s,c){return new Ut(u=>{const h=_=>{(!c||c(_))&&(this.off(s,h),u(_))};this.on(s,h)})}uploadWRTCStats(s){if(!this.store.sessionId)return void J.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));const c={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:s};this.upload(Mu.WRTC_STATS,c)}upload(s,c){const u={_type:s,_message:c};try{this.websocket.sendMessage(u)}catch{const _=de("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(u),this.uploadCache.length>_&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Ci.CONNECTED)return;const B=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(B._type,B._message)},de("UPLOAD_CACHE_INTERVAL")||2e3))}}send(s,c){const u={_type:s,_message:c};this.websocket.sendMessage(u)}async sendExtensionMessage(s,c,u){return await this._external_signal.send(s,c,u)}init(s){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ut((c,u)=>{this.once(er.WS_CONNECTED,()=>c(this.joinResponse)),this.once(er.WS_CLOSED,()=>u(this.initError||new tt(Ce.WS_ABORT))),this.connectionState=Ci.CONNECTING,this.websocket.init(s).catch(u)})}close(s){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this._external_signal.clear(),this._disconnectedReason=s||mi.LEAVE,this.connectionState=Ci.CLOSED,J.debug("[".concat(this.clientId,"] ")+"will close websocket in signal"),this.websocket.close(),this.p2pToken=un(6,""),this._external_signal.clear(),this._external_signal=new Cm(this,this.p2pToken)}async join(){if(!this.joinResponse){this.emit(er.ABORT_P2P_EXECUTION);const s=await $o(this,er.REQUEST_JOIN_INFO),c=await this.request(ur.JOIN,s);if(!c)return this.emit(er.REPORT_JOIN_GATEWAY,Ce.TIMEOUT,this.url||""),!1;this.joinResponse=c,this.emit(er.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),3e3),!0}reconnect(s,c){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(s,c)}async downgradeCodec(s){return!1}handleDataStream(s){try{var c;const u=Yr(s.payload),h=new TextDecoder().decode(u),_=JSON.parse(h);"total"in _&&"id"in _||Et(c=Object.values(Go)).call(c,_._type)?(_._uid=s.uid,this._external_signal.onMessage(_)):this.emit(Ur.ON_DATA_STREAM,s)}catch{this.emit(Ur.ON_DATA_STREAM,s)}}handleNotification(s){J.debug("[".concat(this.clientId,"] receive notification: "),s);const c=m1(s.code);if(c.action!=="success"){if(c.action!=="failed")return c.action==="quit"?s.code===Br.ERR_REPEAT_JOIN_CHANNEL&&de("IGNORE_UID_CHECK")?void this.close(mi.UID_CONFLICT):(c.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(mi.UID_BANNED),void this.close()):void this.reconnect(c.action,Ss.SERVER_ERROR);J.error("[".concat(this.clientId,"] ignore error: "),c.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1;const s=de("PING_PONG_TIME_OUT"),c=Date.now();this.pingpongTimeoutCount>=s&&(J.warning("[".concat(this.clientId,"] PINGPONG Timeout. Last Socket Message: ").concat(c-this.lastMsgTime,"ms")),c-this.lastMsgTime>de("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("retry",Ss.TIMEOUT):this.request(ur.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;const u=Date.now()-c;this.rttRolling.add(u),de("REPORT_STATS")&&this.send(ur.PING_BACK,{pingpongElapse:u})}).catch(u=>{})}handleWebsocketEvents(){this.websocket.on(jr.RECONNECT_CREATE_CONNECTION,s=>{this.emit(er.WS_RECONNECT_CREATE_CONNECTION,s)}),this.websocket.on(jr.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(jr.CLOSED,()=>{this.connectionState=Ci.CLOSED}),this.websocket.on(jr.FAILED,()=>{this._disconnectedReason=mi.NETWORK_ERROR,this.connectionState=Ci.CLOSED}),this.websocket.on(jr.RECONNECTING,s=>{this._websocketReconnectReason=s,this.joinResponse=void 0,this.connectionState===Ci.CONNECTED?this.connectionState=Ci.RECONNECTING:this.connectionState=Ci.CONNECTING}),this.websocket.on(jr.WILL_RECONNECT,(s,c,u)=>{s!=="retry"?(J.debug("".concat(this.clientId," websocket will_connect event, renewSession reconnectMode is ").concat(s)),this.reconnectToken=void 0):J.debug("".concat(this.clientId," reconnect mode is retry, no need to renew session")),u(s)}),this.websocket.on(jr.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.join().catch(s=>{if(this.emit(er.REPORT_JOIN_GATEWAY,s,this.url||""),s instanceof tt&&s.code===Ce.UNEXPECTED_RESPONSE&&s.data.code===Br.ERR_NO_AUTHORIZED)return J.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",Ss.SERVER_ERROR);J.error("[".concat(this.clientId,"] join gateway request failed"),s.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Ss.SERVER_ERROR):(this.initError=s,this.close())})}),this.websocket.on(jr.REQUEST_NEW_URLS,(s,c)=>{$o(this,er.REQUEST_RECOVER,this.multiIpOption).then(s).catch(c)}),this.websocket.on(jr.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE)})}}const Tle={name:"P2PChannel",create:function(t){let s=t.store,c=t.statsCollector;return new yle(s,c)},createSubmodule:function(t){let s=t.store,c=t.spec;return new Qle(c,s)}};function ane(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function Ane(t){for(var s=1;ste.payloadType.toString(10));const $=B.videoCodecs.filter(te=>{var se,ge;return(se=te.rtpMap)===null||se===void 0?void 0:Et(ge=se.encodingName.toLowerCase()).call(ge,D)}),Z=B.videoCodecs.filter(te=>!Et($).call($,te));H.attributes.payloads=[...$,...Z],H.attributes.extmaps=B.videoExtensions}H.media.mediaType==="audio"&&(H.media.fmts=B.audioCodecs.map($=>$.payloadType.toString(10)),H.attributes.payloads=B.audioCodecs,H.attributes.extmaps=B.audioExtensions),P.mediaDescriptions[U]=this.mungMediaDesc(H)}this.sessionDesc=P,this.currentMidIndex=P.mediaDescriptions.length-1}toString(){return X1(this.sessionDesc)}send(s,c,u){const h=I9(c,this.cname),_=h.ssrcs,B=h.ssrcGroups,Q=this.sessionDesc.mediaDescriptions.find(O=>s===rr.VIDEO?O.media.mediaType==="video":O.media.mediaType==="audio"),T=_[0].attributes.label,D=_[0].attributes.mslabel;return Q.attributes.ssrcs=Q.attributes.ssrcs.concat(_),Q.attributes.ssrcGroups=Q.attributes.ssrcGroups.concat(B),{id:T,mslabel:D}}batchSend(s){return s.map(c=>{let u=c.kind,h=c.ssrcMsg;return this.send(u,h,void 0)})}stopSending(s){this.sessionDesc.mediaDescriptions.forEach(c=>{const u=[],h=[],_=[];c.attributes.ssrcs.forEach(B=>{Et(s).call(s,B.attributes.label||"")?_.push(B):u.push(B)}),c.attributes.ssrcGroups.forEach(B=>{var Q;Et(Q=_.map(T=>T.ssrcId)).call(Q,B.ssrcIds[0])||h.push(B)}),c.attributes.ssrcs=u,c.attributes.ssrcGroups=h})}mute(s){const c=this.sessionDesc.mediaDescriptions.find(u=>u.attributes.mid===s);if(!c)throw new Error("mediaDescription not found with ".concat(s," in remote SDP when calling RemoteSDP.mute."));c.attributes.direction="inactive"}unmute(s){const c=this.sessionDesc.mediaDescriptions.find(u=>u.attributes.mid===s);if(!c)throw new Error("mediaDescription not found with ".concat(s," in remote SDP when calling RemoteSDP.unmute."));c.attributes.direction="sendonly"}receive(s,c,u){s.forEach((h,_)=>{const B=h._mediaStreamTrack,Q=this.sessionDesc.mediaDescriptions.findIndex(D=>D.attributes.mid===B.kind),T=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[Q],h);this.sessionDesc.mediaDescriptions[Q]=T})}stopReceiving(s){}updateCandidates(s){const c=this._originCandidates.filter(h=>h.transport==="udp"),u=[];if(c.forEach(h=>{u.push(Ane(Ane({},h),{},{foundation:"tcpcandidate",priority:Number(h.priority)-1+"",transport:"tcp",port:Number(h.port)+90+""}))}),c.length!==0){switch(s){case qs.TCP_RELAY:this.candidates=u;break;case qs.UDP_TCP_RELAY:case qs.RELAY:this.candidates=[...c,...u];break;default:this.candidates=c}for(const h of this.sessionDesc.mediaDescriptions)h.attributes.candidates=this.candidates}}restartICE(s){s=go(s),this.iceParameters=s,this.sessionDesc.mediaDescriptions.forEach(c=>{c.attributes.iceUfrag=s.iceUfrag,c.attributes.icePwd=s.icePwd})}predictReceivingMids(s){const c=[];for(let u=0;uh.attributes.mid===s);if(u!==-1){const h=this.mungRecvMediaDsec(this.sessionDesc.mediaDescriptions[u],c);this.sessionDesc.mediaDescriptions[u]=h}}bumpMid(s){this.currentMidIndex+=s}updateTrackLabel(s,c,u){const h=this.sessionDesc.mediaDescriptions.find(B=>s===rr.VIDEO?B.attributes.mid==="video":B.attributes.mid==="audio");if(h){const B=h.attributes.ssrcs.find(Q=>Q.attributes.label===c);var _;B&&(B.attributes.label=u,(_=B.attributes.msid)===null||_===void 0||_.replace(c,u))}}mungMediaDesc(s){const c=go(s);return GX(c),function(u){const h=u.attributes.extmaps.find(_=>vF(_.extensionName));h&&u.attributes.extmaps.splice(u.attributes.extmaps.indexOf(h),1),u.attributes.payloads.forEach(_=>{const B=_.rtcpFeedbacks.findIndex(Q=>Q.type==="transport-cc");B!==-1&&_.rtcpFeedbacks.splice(B,1)})}(c),c}getSSRC(s){for(const c of this.sessionDesc.mediaDescriptions)for(const u of c.attributes.ssrcs)if(u.attributes.label===s)return[u]}}var lo;function cne(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function ZF(t){for(var s=1;ss.rtpMap&&s.rtpMap.encodingName.toLowerCase()||"").filter(s=>{var c;return Et(c=Object.keys(Qn)).call(c,s)}))]}constructor(s,c){super(s,c),ae(this,"store",void 0),ae(this,"peerConnection",void 0),ae(this,"remoteSDP",void 0),ae(this,"initialOffer",void 0),ae(this,"statsFilter",void 0),ae(this,"useRTX",!1),ae(this,"localCapabilities",void 0),ae(this,"localCandidateCount",0),ae(this,"allCandidatesReceived",!1),ae(this,"establishPromise",void 0),ae(this,"mutex",void 0),this.store=c,this.mutex=new ra("P2PConnection-mutex",c.clientId),this.peerConnection=new RTCPeerConnection(D9.resolvePCConfiguration(s),{optional:[{googDscp:!0}]}),this.statsFilter=WA(this.peerConnection,de("STATS_UPDATE_INTERVAL"),void 0,Ln()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,this.establishPromise=this.establish()}async establish(){try{const s=await this.peerConnection.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0});if(!s.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const c=Yh(s.sdp),u=h9(s.sdp,{filterRTX:!this.useRTX,filterVideoFec:de("FILTER_VIDEO_FEC"),filterAudioFec:de("FILTER_AUDIO_FEC"),filterAudioCodec:["opus"]});return this.localCapabilities=u,this.initialOffer=s,ZF(ZF({},c),{},{rtpCapabilities:{send:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},recv:{audioCodecs:[],audioExtensions:[],videoCodecs:[],videoExtensions:[]},sendrecv:u},offerSDP:s.sdp})}catch(s){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,s.toString())}}async updateRemoteConnect(){}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish P2PConnection without initial offer.");this.remoteSDP=new wle(ZF(ZF({},s),{},{rtpCapabilities:s.rtpCapabilities.send,localCapabilities:this.localCapabilities,sdkCodec:this.store.codec}));const c=this.remoteSDP.toString();await this.peerConnection.setLocalDescription(this.initialOffer),await this.peerConnection.setRemoteDescription({type:"answer",sdp:c})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.connect failed; ".concat(c.toString()))}}async updateRemoteRTPCapabilities(s,c){throw new tt(Ce.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}getPreMedia(s){}send(s,c){var u=this;return AA(function*(){const h=yield Tr(u.mutex.lock());try{if(!u.remoteSDP)throw new Error("Cannot call P2PConnection.send before remote SDP created");const _=s.map(U=>u.peerConnection.addTrack(U._mediaStreamTrack)),B=yield Tr(u.peerConnection.createOffer()),Q=wa(B.sdp),T=s.map(U=>{const H=U._mediaStreamTrack,$=Q.mediaDescriptions.find(Z=>Z.attributes.mid===H.kind);if(!$)throw new Error("Cannot extract ssrc from mediaDescription.");return function(Z,te,se){const ge=Z.attributes.ssrcs.filter(Qe=>Qe.attributes.label===te),me=Z.attributes.ssrcGroups;if(ge.length===0)throw new Error("Cannot extract ssrc from plan-b SDP.");if(me&&ge.length>1){const Qe=me.find(Oe=>Oe.ssrcIds.indexOf(ge[0].ssrcId)!==-1);return Qe?[{ssrcId:Qe.ssrcIds[0],rtx:se?Qe.ssrcIds[1]:void 0}]:[{ssrcId:ge[0].ssrcId}]}return[{ssrcId:ge[0].ssrcId}]}($,H.id,u.useRTX)});let D;try{D=yield T}catch(U){throw _.forEach(H=>{Zs()&&H.replaceTrack(null),u.peerConnection.removeTrack(H)}),U}const O=u.mungSendOfferSDP(B.sdp,s);u.remoteSDP.receive(s,c,D);const P=u.remoteSDP.toString();return yield Tr(u.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(u.applySendEncodings(_,s)),yield Tr(u.peerConnection.setRemoteDescription({type:"answer",sdp:P})),s.map((U,H)=>{const $=U._mediaStreamTrack.id;return{localSSRC:T[H],id:$}})}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.send failed; ".concat(_.toString()))}finally{h()}})()}async stopSending(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopSending before remote SDP created");const c=this.peerConnection.getSenders().filter(_=>{var B;return s.indexOf(((B=_.track)===null||B===void 0?void 0:B.id)||"")!==-1});if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call P2PConnection.stopSending.");c.map(_=>{Zs()&&_.replaceTrack(null),this.peerConnection.removeTrack(_)});const u=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(u),this.remoteSDP.stopReceiving(s);const h=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:h})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.stopSending failed; ".concat(c.toString()))}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,h),B=_.id,Q=_.mslabel,T=new Ut((P,U)=>{const H=setTimeout(()=>{U(new Error("Cannot receive track, id: ".concat(B)))},1e4),$=Z=>{const te=Qi();if((te.name==="Safari"&&Number(te.version)===11||Ia())&&Z.track.id!==B&&Z.streams[0].id===Q){var se;const ge=Z.streams[0].getTracks()[0];return(se=this.remoteSDP)===null||se===void 0||se.updateTrackLabel(s,B,Z.track.id),this.peerConnection.removeEventListener("track",$),clearTimeout(H),void P(ge)}if(Z.track.id===B)return this.peerConnection.removeEventListener("track",$),clearTimeout(H),void P(Z.track)};this.peerConnection.addEventListener("track",$)}),D=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:D});const O=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(O),{track:await T,id:B}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(_.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.stopReceiving before remote SDP created.");this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const u=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(u)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection stopReceiving failed; ".concat(c.toString()))}}async muteRemote(s){}async unmuteRemote(s){}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.muteLocal before remote SDP created.");const c=this.peerConnection.getSenders().filter(u=>{var h;return s.indexOf(((h=u.track)===null||h===void 0?void 0:h.id)||"")!==-1});if(c.length!==s.length)throw new Error("sender' length doesn't match mids' length.");c.map(u=>{if(Zs()&&u.track)u.track.enabled=!1;else{const h=u.getParameters();h.encodings.forEach(_=>_.active=!1),u.setParameters(h)}})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.unmuteLocal before remote SDP created.");const c=this.peerConnection.getSenders().filter(_=>{var B;return s.indexOf(((B=_.track)===null||B===void 0?void 0:B.id)||"")!==-1});if(c.length!==s.length)throw new Error("Senders' length doesn't match mids' length.");c.map(async _=>{if(Zs()&&_.track)_.track.enabled=!0;else{const B=_.getParameters();B.encodings.forEach(Q=>Q.active=!0),await _.setParameters(B)}});const u=await this.peerConnection.createOffer();await this.peerConnection.setLocalDescription(u);const h=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"answer",sdp:h})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.unmuteLocal failed; ".concat(c.toString()))}}restartICE(s){var c=this;return AA(function*(){const u=yield Tr(c.mutex.lock("From P2PConnection.restartICE"));try{if(!c.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");const h=Si().supportPCSetConfiguration;if(s===qs.RELAY&&!h)return;if(h){const D=c.peerConnection.getConfiguration(),O=s===qs.RELAY?"relay":"all";D.iceTransportPolicy!==O&&(J.debug("[".concat(c.store.clientId,"] restartICE change iceTransportPolicy from [").concat(D.iceTransportPolicy,"] to [").concat(O,"]")),D.iceTransportPolicy=O,c.peerConnection.setConfiguration(D))}s!==qs.RELAY&&c.remoteSDP.updateCandidates(s);const _=yield Tr(c.peerConnection.createOffer({iceRestart:!0}));if(!_.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const B=Yh(_.sdp),Q=(yield B.iceParameters).remoteIceParameters;c.remoteSDP.restartICE(Q);const T=c.remoteSDP.toString();yield Tr(c.peerConnection.setLocalDescription(_)),yield Tr(c.peerConnection.setRemoteDescription({type:"answer",sdp:T}))}catch(h){J.warning("[".concat(c.store.clientId,"] restart ICE failed, abort operation"),h)}finally{u()}})()}close(){var s;this.peerConnection.close(),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.statsFilter.destroy()}getStats(){return this.statsFilter.getStats()}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c]);this.remoteSDP.updateRecvMedia(c._mediaStreamTrack.kind,c);const _=this.remoteSDP.toString();await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getSenders().filter(h=>{var _;return((_=h.track)===null||_===void 0?void 0:_.id)===s});u.length===1&&await this.applySendEncodings(u,[c])}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getSenders().find(h=>{var _;return((_=h.track)===null||_===void 0?void 0:_.id)===c});u&&await u.replaceTrack(s._mediaStreamTrack)}createDataChannels(s,c){throw new tt(Ce.NOT_SUPPORTED,"Planb mode does not support createDataChannels.")}stopDataChannels(s){throw new tt(Ce.NOT_SUPPORTED,"Planb mode does not support stopDataChannels.")}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s;(s=this.onICEConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidate=s=>{s.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},de("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s){const c={iceServers:[],sdpSemantics:"plan-b"};return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&s.turnServer.mode!=="off"&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:(c.iceServers&&c.iceServers.push(...D9.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...D9.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(u=>{u.forceturn&&(c.iceTransportPolicy="relay")}))),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}async updateRtpSenderEncodings(s,c){var u;if(c||(c=this.peerConnection.getSenders().find(D=>{var O;return((O=D.track)===null||O===void 0?void 0:O.id)===s._mediaStreamTrack.id})),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(!Si().supportSetRtpSenderParameters)return J.warn("Browser not support set rtp-sender parameters");const h={},_={};if(s instanceof pn)switch(s._optimizationMode){case"motion":h.degradationPreference="maintain-framerate";break;case"detail":h.degradationPreference="maintain-resolution";break;default:h.degradationPreference="balanced"}if(de("DSCP_TYPE")&&Al()){var B;const D=de("DSCP_TYPE");Et(B=["very-low","low","medium","high"]).call(B,D)&&(_.networkPriority=D)}const Q=c.getParameters(),T=(u=Q.encodings)===null||u===void 0?void 0:u[0];T&&Object.assign(T,_),Object.assign(Q,h),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(Q.encodings))),await c.setParameters(Q)}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const B=h._mediaStreamTrack,Q=u.mediaDescriptions.find(T=>T.attributes.mid===B.kind);Q&&Am(Q,h)}),X1(u)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0}async batchReceive(s){try{if(!this.remoteSDP)throw new Error("Cannot call P2PConnection.batchReceive before remoteSDP created.");const c=this.remoteSDP.batchSend(s).map((_,B)=>{let Q=_.id,T=_.mslabel;const D=s[B].kind;return new Ut((O,P)=>{const U=setTimeout(()=>{P(new Error("Cannot receive track, id: ".concat(Q)))},1e4),H=$=>{const Z=Qi();if(Z.name==="Safari"&&Number(Z.version)===11&&$.track.id!==Q&&$.streams[0].id===T){var te;const se=$.streams[0].getTracks()[0];return(te=this.remoteSDP)===null||te===void 0||te.updateTrackLabel(D,Q,$.track.id),this.peerConnection.removeEventListener("track",H),clearTimeout(U),void O({track:se,id:Q})}if($.track.id===Q)return this.peerConnection.removeEventListener("track",H),clearTimeout(U),void O({track:$.track,id:Q})};this.peerConnection.addEventListener("track",H)})}),u=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:u});const h=await this.peerConnection.createAnswer();return await this.peerConnection.setLocalDescription(h),await Ut.all(c)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"P2PConnection.receive failed; ".concat(c.toString()))}}async getRemoteSSRC(s){if(!this.remoteSDP)return;const c=this.remoteSDP.getSSRC(s);return c==null?void 0:c[0].ssrcId}setConfiguration(s){if(Si().supportPCSetConfiguration){const c=D9.resolvePCConfiguration(s);this.peerConnection.setConfiguration(c)}}},Pt(lo.prototype,"connect",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"connect"),lo.prototype),Pt(lo.prototype,"stopSending",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"stopSending"),lo.prototype),Pt(lo.prototype,"receive",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"receive"),lo.prototype),Pt(lo.prototype,"stopReceiving",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"stopReceiving"),lo.prototype),Pt(lo.prototype,"muteRemote",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"muteRemote"),lo.prototype),Pt(lo.prototype,"unmuteRemote",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"unmuteRemote"),lo.prototype),Pt(lo.prototype,"muteLocal",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"muteLocal"),lo.prototype),Pt(lo.prototype,"unmuteLocal",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"unmuteLocal"),lo.prototype),Pt(lo.prototype,"close",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"close"),lo.prototype),Pt(lo.prototype,"updateEncoderConfig",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"updateEncoderConfig"),lo.prototype),Pt(lo.prototype,"updateSendParameters",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"updateSendParameters"),lo.prototype),Pt(lo.prototype,"replaceTrack",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"replaceTrack"),lo.prototype),Pt(lo.prototype,"getRemoteSSRC",[cu],Object.getOwnPropertyDescriptor(lo.prototype,"getRemoteSSRC"),lo.prototype),lo);function cu(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("Locking from P2PConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T1&&arguments[1]!==void 0?arguments[1]:{};if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support audio encoded transform");if(Ls.has(t)||!t.track)return;const c={track:t.track};if(DA()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");let h=null;try{h=t.createEncodedStreams()}catch(B){return void J.error("create audio-encoded-streams error",B&&B.message)}const _=new TransformStream({transform(B,Q){c.controller||(c.controller=Q),t.track&&t.track.id!==c.track.id&&(J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u));const T=s.metadata&&s.metadata();T?function(D,O){const P=O.chunk,U=O.controller,H=Gd.METADATA;P.data=function($,Z,te){const se=te.byteLength,ge=se+by+EN,me=KC+Il+ge,Qe=new ArrayBuffer($.byteLength+me),Oe=new DataView(Qe);Oe.setUint8(0,ka),Oe.setUint16(1,ge),Oe.setUint8(3,Z),Oe.setUint16(4,se);for(let Ne=0;Ne"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"audio-metadata-tx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),_.port1.onmessage=Q=>{var T;if(Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id)J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u);else if(Q.data.getMetadata){const D=s.metadata&&s.metadata();D&&_.port1.postMessage({metadata:D})}},c.worker=h}function u(){if(t.track){if(this.id!==t.track.id)return;t.track.removeEventListener("ended",u)}const h=Ls.get(t);if(h){Ls.delete(t);try{var _,B;(_=h.controller)===null||_===void 0||_.terminate(),(B=h.worker)===null||B===void 0||B.terminate()}catch(Q){J.warning(Q&&Q.message)}}}Ls.set(t,c),t.track.addEventListener("ended",u)},interceptRemoteAudioFrame:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support audio encoded transform");if(Oy.has(t))return;const c={track:t.track,onMetadata:s.onMetadata,onPts:s.onPts};if(DA()&&!Ia()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");Tf(Fi.CHROME,87,116)||(s.enableTopn=!1);let h=null;try{h=t.createEncodedStreams()}catch(B){return void J.error("create audio-encoded-streams error",B&&B.message)}const _=new TransformStream({transform(B,Q){c.controller||(c.controller=Q),t.track&&t.track.id!==c.track.id&&(J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u)),s.enableTopn?function(T,D,O){var P;const U=$t(new DataView(D.data));if(!U)return O.enqueue(D);const H=T.track.id;O2.set(H,T.track);const $=(P=U.tlv.find(Qe=>Qe.tag===Gd.AUDIO_LEVEL))===null||P===void 0?void 0:P.value;let Z=0;typeof $=="number"&&(Z=127-$);const te=function(Qe,Oe){let we=nc.get(Qe);if(we||(we=function(Ne){const et=new sa;return nc.set(Ne,et),ba||(ba=new Ms(de("TOPN_SILENCE_THRESHOLD")||500),ba.on("ActiveSpeakerChanged",st=>{st!=null&&(Pc=st)})),ba.addSpeakers([et]),et}(Qe)),nc.size<=b2)return{selected:!0,speaker:we};if(!ba)throw new Error("no active speaker detector");return ba.levelChanged(we.id,Oe),Ro=ba.loudest.map(Ne=>Ne.id),Pc&&!Et(Ro).call(Ro,Pc)&&Ro.length>=b2&&Ro.pop(),{selected:Et(Ro).call(Ro,we.id)||we.id===Pc,speaker:we}}(T,Math.round(Math.pow(10,Z/60)-1)),se=te.selected,ge=te.speaker,me=function(Qe,Oe,we){const Ne=_1.get(Qe)||new jJ(Qe,Oe);return Ne.score=we,_1.set(Qe,Ne),function(et){if(Vd.set(et,!0),!Ny)return void(Ny=Date.now());const st=Date.now();st-Ny>1e3&&(Vd.get(et)?Vd.set(et,!1):(N2(et),Vd.delete(et)),Ny=st)}(Qe),Ne}(H,T.track,ge.energyScore);me.addSample(se),me.active&&(D.data=U.frame.buffer,O.enqueue(D))}(t,B,Q):s.enableMetadata||s.enablePts?function(T,D,O,P){const U=new DataView(T.data),H=U.getUint8(0);let $;if(128&H&&H!==71){const se=function(ge){if(ge.byteLength<=0)return[];const me=[];let Qe=0;for(;Qe>7,Ne=127&ge.getUint8(Qe);if(!(we&&Qe+4<=ge.byteLength)){Qe++;break}{const et=ge.getUint32(Qe,!1),st=(16776192&et)>>10,Xt=1023&et;me.push({pt:Ne,ts_offset:st,length:Xt,data:new Uint8Array}),Qe+=4}}let Oe=ge.byteLength-Qe;for(const we of me){if(we.length>Oe)return console.warn("Broken red payload"),[];we.length>0&&(we.data=new Uint8Array(ge.buffer,ge.byteOffset+Qe,we.length),Qe+=we.length,Oe-=we.length)}if(Oe>0){const we={pt:me.length>0?me[me.length-1].pt:0,ts_offset:0,length:Oe,data:new Uint8Array(ge.buffer,ge.byteOffset+Qe,Oe)};me.push(we)}return me}(U);if(se.length>0){const ge=function(me){let Qe=0;for(let Ne=0;Ne>>0;Oe[we++]=et>>24&255,Oe[we++]=et>>16&255,Oe[we++]=et>>8&255,Oe[we++]=255&et}else Oe[we++]=127&me[Ne].pt;for(const Ne of me)Oe.set(Ne.data,we),we+=Ne.length;return Oe}(se.map(me=>{const Qe=new Uint8Array(me.length);Qe.set(me.data);const Oe=$t(new DataView(Qe.buffer));return Oe!=null&&Oe.frame&&(me.data=Oe==null?void 0:Oe.frame),$=Oe,me}));T.data=ge.buffer}}else $=$t(U),$&&(T.data=$.frame.buffer);if(D.enqueue(T),!$)return;const Z=$.tlv.find(se=>se.tag===Gd.METADATA);Z&&O&&Z.value instanceof Uint8Array&&O(Z.value);const te=$.tlv.find(se=>se.tag===Gd.AUDIO_64_BIT_PTS);te&&P&&te.value instanceof Uint8Array&&te.value.length==8&&P(new DataView(te.value.buffer).getBigUint64(0,!0))}(B,Q,s.onMetadata,s.onPts):Q.enqueue(B)}});h.readable.pipeThrough(_).pipeTo(h.writable)}else{if(typeof RTCRtpScriptTransform>"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"audio-metadata-rx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),_.port1.onmessage=Q=>{var T;Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id?(J.debug("audio track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u)):Q.data.metadata&&c.onMetadata?c.onMetadata(Q.data.metadata):Q.data.pts&&c.onPts&&c.onPts(Q.data.pts)},c.worker=h}function u(){t.track.removeEventListener("ended",u),function(h){const _=Oy.get(h);if(_){(function(T){const D=nc.get(T);D&&(nc.delete(T),ba&&(ba.removeSpeakers([D]),nc.size===0&&(ba.destroy(),ba=null)))})(h),N2(h.track.id),Oy.delete(h);try{var B,Q;(B=_.controller)===null||B===void 0||B.terminate(),(Q=_.worker)===null||Q===void 0||Q.terminate()}catch(T){J.warning(T&&T.message)}}}(t)}Oy.set(t,c),t.track.addEventListener("ended",u)},interceptLocalVideoFrame:async function(t,s){if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support video encoded transform");if(ky.has(t)||!t.track)return;const c={track:t.track};if(DA()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");let h=null;try{h=t.createEncodedStreams()}catch(Q){return void J.error("create video-encoded-streams error",Q&&Q.message)}const _=[];s.on("sei-to-send",Q=>{_.push(Q)});const B=new TransformStream({transform(Q,T){c.controller||(c.controller=T),t.track&&t.track.id!==c.track.id&&(J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u));const D=e7(new Uint8Array(Q.data)),O=_.shift();if(O){const P=function(U,H,$){switch($){case Ly:return function(Z,te){const se=ZU(te),ge=se.length,me=Math.floor(ge/255),Qe=ge%255,Oe=new Uint8Array(6+me+1+ge+Z.byteLength);Oe[0]=0,Oe[1]=0,Oe[2]=0,Oe[3]=1,Oe[4]=6,Oe[5]=101;let we=0;for(;we"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"sei-tx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),s.on("sei-to-send",Q=>{_.port1.postMessage({sei:Q})}),_.port1.onmessage=Q=>{var T;Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id&&(J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u))},c.worker=h}}function u(){if(t.track){if(this.id!==t.track.id)return;t.track.removeEventListener("ended",u)}const h=ky.get(t);if(h){ky.delete(t);try{var _,B;(_=h.controller)===null||_===void 0||_.terminate(),(B=h.worker)===null||B===void 0||B.terminate()}catch(Q){J.warning(Q&&Q.message)}}}ky.set(t,c),t.track.addEventListener("ended",u)},interceptRemoteVideoFrame:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Si().supportWebRTCEncodedTransform)return void J.warning("browser not support video encoded transform");if(!t.track)return;if(s_.has(t)){const h=s_.get(t);return void(h&&(h.onSei=s.onSei))}const c={track:t.track,onSei:s.onSei};if(DA()){if(!t.createEncodedStreams)return void J.warning("browser not support createEncodedStreams() API");let h=null;try{h=t.createEncodedStreams()}catch(B){return void J.error("create video-encoded-streams error",B&&B.message)}const _=new TransformStream({transform(B,Q){if(c.controller||(c.controller=Q),!c.firstFrameInfo){var T;const O=B.getMetadata()||{};c.firstFrameInfo=Xn({type:B.type,rtpTimestamp:B.timestamp,payloadType:O.payloadType||0,ssrc:O.synchronizationSource||0,length:B.data.byteLength},"mimeType"in O?{mimeType:O.mimeType}:{}),(T=s.onFirstFrame)===null||T===void 0||T.call(s,c.firstFrameInfo)}t.track&&t.track.id!==c.track.id&&(J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u));const D=function(O,P){switch(P){case Ly:return function(U){const H=new DataView(U.data);let $=0;for(;$+4"u")return void J.warning("browser not support RTCRtpScriptTransform");const h=n_(),_=new MessageChannel;await new Ut(Q=>h.onmessage=T=>{T.data==="registered"&&Q(void 0)});const B=new RTCRtpScriptTransform(h,{name:"sei-rx",port:_.port2},[_.port2]);t.transform=B,await new Ut(Q=>h.onmessage=T=>{T.data==="started"&&Q(void 0)}),_.port1.onmessage=Q=>{var T;if(Q.data.transformed&&t.track&&((T=t.track)===null||T===void 0?void 0:T.id)!==c.track.id)J.debug("video track changed: ".concat(c.track.id," => ").concat(t.track.id)),c.track.removeEventListener("ended",u),c.track=t.track,c.track.addEventListener("ended",u);else if(Q.data.sei&&c.onSei)c.onSei(Q.data.sei);else if(Q.data.firstFrameInfo&&s.onFirstFrame){var D;(D=s.onFirstFrame)===null||D===void 0||D.call(s,Q.data.firstFrameInfo)}},c.worker=h}function u(){if(t.track){if(this.id!==t.track.id)return;t.track.removeEventListener("ended",u)}(function(h){const _=s_.get(h);if(_){s_.delete(h);try{var B,Q;(B=_.controller)===null||B===void 0||B.terminate(),(Q=_.worker)===null||Q===void 0||Q.terminate()}catch(T){J.warning(T&&T.message)}}})(t)}s_.set(t,c),t.track.addEventListener("ended",u)}},Nle={name:"InterceptFrame",create:()=>ble};var tn;function lne(t,s){var c=Object.keys(t);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);s&&(u=u.filter(function(h){return Object.getOwnPropertyDescriptor(t,h).enumerable})),c.push.apply(c,u)}return c}function lE(t){for(var s=1;ss.rtpMap&&s.rtpMap.encodingName.toLowerCase()||"").filter(s=>{var c;return Et(c=Object.keys(Qn)).call(c,s)}))]}constructor(s,c,u){super(s,c),ae(this,"id",un(5,"connection-")),ae(this,"store",void 0),ae(this,"peerConnection",void 0),ae(this,"forceTurn",!1),ae(this,"remoteSDP",void 0),ae(this,"initialOffer",void 0),ae(this,"transportEventReceiver",void 0),ae(this,"statsFilter",void 0),ae(this,"extension",{useXR:de("USE_XR")}),ae(this,"localCapabilities",void 0),ae(this,"remoteCodecs",void 0),ae(this,"localCandidateCount",0),ae(this,"allCandidatesReceived",!1),ae(this,"isPreallocation",!1),ae(this,"preMediaMap",new Map),ae(this,"dataStreamChannelMap",new Map),ae(this,"establishPromise",void 0),ae(this,"recoveredDataChannelIds",[]),ae(this,"currentDataChannelId",1),ae(this,"supportAV1RtpSpec",!1),ae(this,"mutex",void 0),ae(this,"qualityLimitationReason",$i.NONE),ae(this,"unsupportedResolutionFloorTrackIds",new Set),ae(this,"isFirstConnected",!1),this.store=c,this.forceTurn=lz(s),this.mutex=new ra("NVConnectionExtension-mutex",c.clientId),this.peerConnection=u,this.isFirstConnected=!1,this.statsFilter=WA(this.peerConnection,de("STATS_UPDATE_INTERVAL"),void 0,Ln()?1200:void 0),this.bindPCEvents(),this.bindStatsEvents(),this.store.p2pId=this.store.p2pId+1,s.isPreallocation&&(this.isPreallocation=!0),this.establishPromise=this.establish()}getPreMedia(s){return this.preMediaMap.get(s)}isPreSub(){return this.preMediaMap.size>0}async updateRemoteRTPCapabilities(s,c){if(this.remoteCodecs=c,!this.remoteSDP)return void J.debug("[NVConnectionExtension] cannot updateRemoteRTPCapabilities before remote SDP created, local codecs: ".concat(this.localCodecs,", codecs: ").concat(c));if(this.remoteSDP.updateRemoteCodec(s,c,this.store.codec)){const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}else J.debug("[NVConnectionExtension] updateRemoteRTPCapabilities no need to exchange SDP.")}async establish(){try{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"});const c=await this.peerConnection.createOffer();if(!c.sdp)throw new Error("Cannot get initialOffer.sdp when trying to establish PeerConnection.");const u=Yh(c.sdp),h=await HX({filterRTX:!de("USE_PUB_RTX")&&!de("USE_SUB_RTX"),filterVideoFec:de("FILTER_VIDEO_FEC"),filterAudioFec:de("FILTER_AUDIO_FEC"),filterVideoCodec:de("FILTER_VIDEO_CODEC"),unsupportedVideoUplinkCodec:de("UNSUPPORTED_VIDEO_UPLINK_CODEC"),unsupportedVideoDownlinkCodec:de("UNSUPPORTED_VIDEO_DOWNLINK_CODEC")},this.extension);if(this.localCapabilities=C9(h),this.initialOffer=c,de("ENABLE_SVC")&&this.store.codec=="av1"){const B=await fte();var s;B&&(this.supportAV1RtpSpec=!0,(s=h.send)===null||s===void 0||s.videoExtensions.push(B))}let _;return c.sdp&&bF(c.sdp)&&(_=go(h),lte(_)),lE(lE({},u),{},{rtpCapabilities:_||h,offerSDP:c.sdp})}catch(c){throw new tt(Ce.GET_LOCAL_CONNECTION_PARAMS_FAILED,c.toString())}}async connect(s){try{if(!this.initialOffer)throw new Error("Cannot establish NVConnectionExtension without initial offer.");if(this.initialOffer.sdp&&bF(this.initialOffer.sdp)&&dte(s.rtpCapabilities,this.localCapabilities),this.remoteSDP=new Fte(lE(lE({},s),{},{localCapabilities:this.localCapabilities}),this.supportAV1RtpSpec,!(!de("ENABLE_PRE_SUB_WITH_PRE_PC")||!de("PRE_USE_LOCAL_CODECS"))&&eo(this.store),!0),s.preallocation&&(this.isPreallocation=!0),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec),D4()){var c;const h=((c=this.store.preSubOptions)===null||c===void 0?void 0:c.length)||0,_=de("PRE_SUB_NUM")||1,B=h>_?h:_,Q=this.remoteSDP.preloadRemoteMedia(B),T=Q.mids,D=Q.preSSRCs,O=f9(this.initialOffer.sdp,this.extension),P=this.logSDPExchange(O||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:O}),P==null||P(O),new Array(B).fill(0).forEach(()=>{this.peerConnection.addTransceiver("video",{direction:"recvonly"}),this.peerConnection.addTransceiver("audio",{direction:"recvonly"})});const U=await this.peerConnection.createOffer(),H=this.logSDPExchange(U.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(U);const $=this.remoteSDP.toString();H==null||H($),await this.peerConnection.setRemoteDescription({type:"answer",sdp:$}),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media with icc/dtls, add preload ssrcs ").concat(D)),this.presetMedia(T,D);const Z=this.peerConnection.getTransceivers()[0];Z!=null&&Z.receiver&&this.tryBindTransportEvents(Z.receiver)}else{const h=this.remoteSDP.toString(),_=f9(this.initialOffer.sdp,this.extension),B=this.logSDPExchange(_||"","offer","local","connect");this.store.descriptionStart(),await this.peerConnection.setLocalDescription({type:"offer",sdp:_}),B==null||B(h),await this.peerConnection.setRemoteDescription({type:"answer",sdp:h});const Q=this.peerConnection.getTransceivers()[0];if(Q!=null&&Q.receiver&&this.tryBindTransportEvents(Q.receiver),eo(this.store))if(s.preallocation&&de("ENABLE_PRE_SUB_WITH_PRE_PC")){var u;const T=((u=this.store.preSubOptions)===null||u===void 0?void 0:u.length)||0,D=de("PRE_SUB_NUM")||1,O=T>D?T:D,P=this.remoteSDP.preloadRemoteMedia(O),U=P.mids,H=P.preSSRCs;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [P2PConnection] preload media, in pre pc,add preload ssrcs ").concat(H)),this.presetMedia(U,H)}else{const T=s.preSSRCs,D=T===void 0?[]:T,O=D.map(U=>U.ssrcMsg[0].ssrcId);if(D.length===0)return;const P=this.remoteSDP.batchSend(D.map(U=>Object.assign({},U))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[P2PConnection.connect] preload media, after join, add preload ssrcs ".concat(O)),this.presetMedia(P,O)}}}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.connect failed; ".concat(h.toString()))}}presetMedia(s,c){s.forEach((u,h)=>{this.peerConnection.getTransceivers().forEach(_=>{if(_.mid!=null&&u===_.mid&&_.receiver.track){const B=_.receiver.track;let Q;B.kind==="video"&&de("ENABLE_PRE_RENDER")&&(Q=new Ry({trackId:"track-".concat(B.kind,"-unknown-").concat(this.store.clientId,"_").concat(un(5,""))},!0),Q.updateVideoTrack(B),Q.onFirstVideoFrameRender=()=>{var T;const D=this.preMediaMap.get(c[h]);D&&(D.firstVideoRender=Date.now()),(T=this.onFirstVideoRender)===null||T===void 0||T.call(this,c[h])},Q.onVideoBufferReady=()=>{var T;(T=this.onFirstVideoBufferReady)===null||T===void 0||T.call(this,c[h])},Q.play(this.store.sessionId||void 0)),this.preMediaMap.set(c[h],{mid:u,track:B,player:Q,transceiver:_})}}),this.store.peerReceiver()})}checkDtlsParameters(s){return!!this.remoteSDP&&s.length>0&&this.remoteSDP.updateRemoteDtlsParameters(s)}checkIceParameters(s){return this.remoteSDP?this.remoteSDP.restartICE(s):!1}async updateRemoteConnect(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateRemoteConnect before remote SDP created");let c=!1;const u=s.rtpCapabilities;if(c=ir(this.remoteSDP.updateRemoteRTPCapabilities(u),2)[1],Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0){const Q=this.remoteSDP.updateRemoteCodec([],this.remoteCodecs,this.store.codec);c=c||Q}const h=s.preSSRCs,_=h===void 0?[]:h,B=_.map(Q=>Q.ssrcMsg[0].ssrcId);if(!this.remoteSDP.checkPreloadSsrcs(B)){const Q=[],T=[];if(Array.from(this.preMediaMap.entries()).every(D=>{let O=ir(D,2),P=O[0],U=O[1],H=U.mid,$=U.player;return U.track,Q.push(H),T.push(P),this.preMediaMap.delete(P),$&&$.destroy(),!0}),Q.length>0&&(this.remoteSDP.stopSending(Q),await Yc(this.peerConnection,this.remoteSDP,this.extension),J.warn("[NVConnectionExtension.updateRemoteConnect] preload media, failed, del preload ssrcs ".concat(T)),qt.reportApiInvoke(this.store.sessionId,{name:Ti.PRELOAD_MEDIA_FAILED,options:[_,T],tag:vn.TRACER}).onSuccess()),_.length>0){const D=this.remoteSDP.batchSend(_.map(O=>Object.assign({},O))).mids;await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[NVConnectionExtension.updateRemoteConnect] preload media, after join, add preload ssrcs ".concat(B)),this.presetMedia(D,B)}}c?(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[NVConnectionExtension] updateRemoteConnect by exchanging SDP.")):J.debug("[NVConnectionExtension] updateRemoteConnect no need to exchange SDP, because no need to update remote codecs (use local codecs)")}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.updateRemoteConnect failed; ".concat(c.toString()))}}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From NVConnectionExtension.send"));try{if(!h.remoteSDP)throw new Error("Cannot call NVConnectionExtension.send before remote SDP created");const B=[],Q=E9();s.forEach(te=>{const se=h.peerConnection.addTransceiver(te._mediaStreamTrack,lE({direction:"sendonly"},te.trackMediaType==="video"&&h.supportAV1RtpSpec&&Q?{sendEncodings:[{scalabilityMode:Q}]}:{}));B.push(se),te._updateRtpTransceiver(se)}),Ln()&&de("SIMULCAST")===!0&&(yield Tr(h.applySimulcastForFirefox(B,s)));const T=yield Tr(h.peerConnection.createOffer()),D=h.remoteSDP.predictReceivingMids(s.length),O=h.mungSendOfferSDP(T.sdp,s,D),P=wa(O),U=D.map(te=>{const se=P.mediaDescriptions.find(ge=>ge.attributes.mid===te);if(!se)throw new Error("Cannot extract ssrc from mediaDescription.");return FX(se,de("USE_PUB_RTX"))});let H;try{H=yield U}catch(te){H=[],h.remoteSDP.receive(s,c,u,H);const se=h.remoteSDP.toString();throw yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:se})),yield Tr(h.stopSending(D,!0)),te}h.remoteSDP.receive(s,c,u,H);const $=h.remoteSDP.toString(),Z=h.logSDPExchange(O,"offer","local","send");return yield Tr(h.peerConnection.setLocalDescription({type:"offer",sdp:O})),yield Tr(h.applySimulcastEncodings(B,s)),yield Tr(h.applySendEncodings(B,s)),Z==null||Z($),yield Tr(h.peerConnection.setRemoteDescription({type:"answer",sdp:$})),B.map((te,se)=>{const ge=D[se];return{localSSRC:U[se],id:ge,transceiver:te}})}catch(B){throw B instanceof tt?B:new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.send failed; ".concat(B.toString()))}finally{_()}})()}async createDataChannels(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.createDataChannels before remote SDP created");let u=this.dataStreamChannelMap.get(s);if(u&&u.readyState==="open")J.debug("[NVConnectionExtension] Channels are already available and can be reused directly.");else{const _=this.currentDataChannelId<1023?this.currentDataChannelId++:this.recoveredDataChannelIds.shift();if(typeof _!="number")throw new Error("create DataChannel error, because cannot get dc id");u=this.peerConnection.createDataChannel("datastream-channel",{id:_,negotiated:!0,ordered:!1,maxRetransmits:de("DATASTREAM_MAX_RETRANSMITS")}),u.binaryType="arraybuffer",this.dataStreamChannelMap.set(s,u)}if(c.forEach(_=>{_._updateOriginDataChannel(u)}),this.remoteSDP.sendDataChannel().needExchangeSDP){const _=this.remoteSDP.toString();await this.peerConnection.setRemoteDescription({type:"offer",sdp:_});const B=await this.peerConnection.createAnswer();await this.peerConnection.setLocalDescription(B),J.debug("[NVConnectionExtension] createDataChannels by exchanging SDP.")}else J.debug("[NVConnectionExtension] createDataChannels no need to exchange SDP.");return}catch(u){throw u instanceof tt?u:new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.createDataChannels failed; ".concat(u.toString()))}}async stopDataChannels(s){try{const c=this.dataStreamChannelMap.get(s);return c&&(c.id&&this.recoveredDataChannelIds.push(c.id),c.close()),void this.dataStreamChannelMap.delete(s)}catch(c){throw c instanceof tt?c:new tt(Ce.DATACHANNEL_FAILED,"NVConnectionExtension.stopDataChannels failed; ".concat(c.toString()))}}async stopSending(s,c){const u=c?void 0:await this.mutex.lock("From NVConnectionExtension.stopSending");try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopSending before remote SDP created");const h=this.peerConnection.getTransceivers().filter(T=>s.indexOf(T.mid)!==-1);if(h.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length when trying to call NVConnectionExtension.stopSending.");h.map(T=>{var D;Dp(this.id+T.mid,this),T.direction="inactive",(D=T.stop)===null||D===void 0||D.call(T)});const _=await this.peerConnection.createOffer(),B=this.logSDPExchange(_.sdp||"","offer","local","stopSending");await this.peerConnection.setLocalDescription(_),this.remoteSDP.stopReceiving(s);const Q=this.remoteSDP.toString();B==null||B(Q),await this.peerConnection.setRemoteDescription({type:"answer",sdp:Q})}catch(h){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.stopSending failed; ".concat(h.toString()))}finally{u&&u()}}async receive(s,c,u,h){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.receive ".concat(s," before remoteSDP created."));const _=this.remoteSDP.send(s,c,u,h),B=_.mid;_.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] receive ").concat(s," by exchanging SDP.")));const Q=this.peerConnection.getTransceivers().find(T=>T.mid===B);if(!Q)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:Q.receiver.track,id:B,transceiver:Q}}catch(_){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(_.toString()))}}async batchReceive(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.batchReceive before remoteSDP created.");const c=this.remoteSDP.batchSend(s),u=c.mids;return c.needExchangeSDP&&(await Yc(this.peerConnection,this.remoteSDP,this.extension),J.debug("[".concat(this.store.clientId,"] [NVConnectionExtension] batchReceive by exchanging SDP."))),u.map(h=>{const _=this.peerConnection.getTransceivers().find(B=>B.mid===h);if(!_)throw new Error("Cannot get transceiver after setLocalDescription.");return{track:_.receiver.track,id:h,transceiver:_}})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.receive failed; ".concat(c.toString()))}}async stopReceiving(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.stopReceiving before remote SDP created.");s.forEach(_=>{Array.from(this.preMediaMap.entries()).some(B=>{let Q=ir(B,2),T=Q[0],D=Q[1],O=D.mid,P=D.player;if(O===_)return this.preMediaMap.delete(T),P&&P.destroy(),!0})}),this.remoteSDP.stopSending(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","stopReceiving");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension stopReceiving failed; ".concat(c.toString()))}}async muteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.mute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","muteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteRemote failed; ".concat(c.toString()))}}async unmuteRemote(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteRemote mid=".concat(s," before remote SDP created."));this.remoteSDP.unmute(s);const c=this.remoteSDP.toString(),u=this.logSDPExchange(c,"offer","remote","unmuteRemote");await this.peerConnection.setRemoteDescription({type:"offer",sdp:c});const h=await this.peerConnection.createAnswer();u==null||u(h.sdp||""),await this.peerConnection.setLocalDescription(h)}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteRemote failed; ".concat(c.toString()))}}async muteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.muteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(B=>{B.direction="inactive"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","muteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.muteRemote(s);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.muteLocal failed; ".concat(c.toString()))}}async unmuteLocal(s){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.unmuteLocal before remote SDP created.");const c=this.peerConnection.getTransceivers().filter(B=>B.mid&&s.indexOf(B.mid)!==-1);if(c.length!==s.length)throw new Error("Transceivers' length doesn't match mids' length.");c.map(async(B,Q)=>{B.direction="sendonly"});const u=await this.peerConnection.createOffer(),h=this.logSDPExchange(u.sdp||"","offer","local","unmuteLocal");await this.peerConnection.setLocalDescription(u),this.remoteSDP.unmuteRemote(s),Array.isArray(this.remoteCodecs)&&this.remoteCodecs.length>0&&this.remoteSDP.updateRemoteCodec(s,this.remoteCodecs,this.store.codec);const _=this.remoteSDP.toString();h==null||h(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(c){throw new tt(Ce.EXCHANGE_SDP_FAILED,"NVConnectionExtension.unmuteLocal failed; ".concat(c.toString()))}}restartICE(s){var c=this;return AA(function*(){const u=yield Tr(c.mutex.lock("From NVConnectionExtension.restartICE"));try{if(!c.remoteSDP)throw new Error("Cannot restartICE before remoteSDP created.");const h=Si().supportPCSetConfiguration,_=de("FORCE_TURN_TCP")||c.forceTurn;if(s===qs.RELAY&&!h)return;if(h&&!_){const P=s===qs.RELAY?"relay":"all",U=c.peerConnection.getConfiguration();U.iceTransportPolicy!==P&&(J.debug("[".concat(c.store.clientId,"] restartICE change iceTransportPolicy from [").concat(U.iceTransportPolicy,"] to [").concat(P,"]")),U.iceTransportPolicy=P,c.peerConnection.setConfiguration(U))}c.remoteSDP.updateCandidates(s);const B=yield Tr(c.peerConnection.createOffer({iceRestart:!0}));if(!B.sdp)throw new Error("Cannot restartICE because restart offer SDP does not exist.");const Q=Yh(B.sdp),T=(yield Q.iceParameters).remoteIceParameters;c.remoteSDP.restartICE(T);const D=c.remoteSDP.toString(),O=c.logSDPExchange(B.sdp||"","offer","local","restartICE");c.store.descriptionStart(),yield Tr(c.peerConnection.setLocalDescription(B)),O==null||O(D),yield Tr(c.peerConnection.setRemoteDescription({type:"answer",sdp:D}))}catch(h){J.warning("[".concat(c.store.clientId,"] restart ICE failed, abort operation"),h)}finally{u()}})()}async extendCandidate(){if(!this.remoteSDP||this.isFirstConnected)return;const s=await this.mutex.lock("From NVConnectionExtension.extendCandidate");try{this.remoteSDP.updateCandidates(qs.TCP_RELAY),await Yc(this.peerConnection,this.remoteSDP,this.extension)}catch(c){J.warning("[".concat(this.store.clientId,"] extend candidate failed, abort operation"),c)}finally{s()}}close(){var s;this.peerConnection.getTransceivers().forEach(c=>{Dp(this.id+c.mid,this)}),this.preMediaMap.forEach(c=>{let u=c.player;u&&u.destroy()}),this.preMediaMap.clear(),this.peerConnection.close(),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,"closed"),this.tryUnbindTransportEvents(),this.unbindPCEvents(),this.unbindStatsEvents(),this.removeAllListeners(),this.transportEventReceiver=void 0,this.statsFilter.destroy(),this.dataStreamChannelMap.clear(),this.recoveredDataChannelIds=[],this.currentDataChannelId=1}getStats(){return lE(lE({},this.statsFilter.getStats()),{},{qualityLimitationReason:this.qualityLimitationReason})}getRemoteVideoIsReady(s){return this.statsFilter.getVideoIsReady(s)}async updateEncoderConfig(s,c){try{if(!this.remoteSDP)throw new Error("Cannot call NVConnectionExtension.updateEncoderConfig before remote SDP created.");const u=await this.peerConnection.createOffer(),h=this.mungSendOfferSDP(u.sdp,[c],[s]);this.remoteSDP.updateRecvMedia(s,c);const _=this.remoteSDP.toString(),B=this.logSDPExchange(h,"offer","local","updateEncoderConfig");await this.peerConnection.setLocalDescription({type:"offer",sdp:h}),B==null||B(_),await this.peerConnection.setRemoteDescription({type:"answer",sdp:_})}catch(u){throw new tt(Ce.EXCHANGE_SDP_FAILED,u.toString())}}async updateSendParameters(s,c){const u=this.peerConnection.getTransceivers().filter(h=>h.mid===s);u.length===1&&(this.isVP8Simulcast(c)?Ln()||await this.applySimulcastEncodings(u,[c]):await this.applySendEncodings(u,[c]))}setStatsRemoteVideoIsReady(s,c){this.statsFilter.setVideoIsReady2(s,c)}async replaceTrack(s,c){const u=this.peerConnection.getTransceivers().find(h=>h.mid===c);u&&await u.sender.replaceTrack(s._mediaStreamTrack)}async getSelectedCandidatePair(){const s=this.peerConnection.getReceivers();if(s.length>0&&s[0].transport&&s[0].transport.iceTransport&&s[0].transport.iceTransport.getSelectedCandidatePair&&s[0].transport.iceTransport.getSelectedCandidatePair()){const c=s[0].transport.iceTransport.getSelectedCandidatePair(),u=c.local,h=c.remote;return{local:lE(lE({},ya),{},{candidateType:u.type,protocol:u.protocol,address:u.address,port:u.port}),remote:lE(lE({},ya),{},{candidateType:h.type,protocol:h.protocol,address:h.address,port:h.port})}}return this.statsFilter.getSelectedCandidatePair()}bindPCEvents(){this.peerConnection.oniceconnectionstatechange=()=>{var s;(s=this.onICEConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.iceConnectionState)},this.peerConnection.onconnectionstatechange=()=>{var s;this.peerConnection.connectionState==="connected"&&(this.isFirstConnected=!0),(s=this.onConnectionStateChange)===null||s===void 0||s.call(this,this.peerConnection.connectionState)},this.peerConnection.onicecandidateerror=s=>{if(s&&(s.errorCode||s.errorText)){var c;const u="code: ".concat(s.errorCode,", message: ").concat(s.errorText),h=s.port?"local: ".concat(s.port):"",_=Hh(s.url||"");J.debug("[".concat(this.store.clientId,"] [p2pId: ").concat(this.store.p2pId,"]: NVConnectionExtension.onICECandidateError(").concat(u,"), url: ").concat(_||"",", host_candidate:").concat(h)),(c=this.onICECandidateError)===null||c===void 0||c.call(this,u)}},this.peerConnection.onicegatheringstatechange=s=>{s&&s.target&&"iceGatheringState"in s.target&&J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] RTCPeerConnection.onicegatheringstatechange(").concat(s.target.iceGatheringState,")"))},this.peerConnection.onicecandidate=s=>{s.candidate?this.localCandidateCount+=1:(this.peerConnection.onicecandidate=null,this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] local candidate count"),this.localCandidateCount))},setTimeout(()=>{this.allCandidatesReceived||(this.allCandidatesReceived=!0,J.debug("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] onicecandidate timeout, local candidate count"),this.localCandidateCount))},de("CANDIDATE_TIMEOUT"))}unbindPCEvents(){this.peerConnection.oniceconnectionstatechange=null,this.peerConnection.onconnectionstatechange=null,this.peerConnection.onsignalingstatechange=null,this.peerConnection.onicecandidateerror=null,this.peerConnection.onicecandidate=null,this.peerConnection.ontrack=null}static resolvePCConfiguration(s){const c={iceServers:[]},u=s.cloudProxyServer||"disabled";return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:de("NEW_TURN_MODE")&&c.iceServers&&u==="disabled"?(de("USE_TURN_SERVER_OF_GATEWAY")?s.turnServer.serversFromGateway&&c.iceServers.push(...IT.newTurnServerConfigToIceServers(s.turnServer.serversFromGateway)):c.iceServers.push(...IT.newTurnServerConfigToIceServers(s.turnServer.servers)),de("NEW_FORCE_TURN")&&(c.iceTransportPolicy="relay")):s.turnServer.mode!=="off"&&(c.iceServers&&c.iceServers.push(...IT.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...IT.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),de("FORCE_TURN_TCP")?c.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(h=>{h.forceturn&&(c.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(c.encodedInsertableStreams=!0),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&!de("FORCE_TURN_TCP")&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}static newTurnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{const h=de("NEW_TURN_MODE");h===1?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}):h===2?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}):h===3?c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}):h===4&&(c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=udp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":3478?transport=tcp")}),c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":443?transport=tcp")}))}),c}tryBindTransportEvents(s){const c=s.transport;if(c){this.transportEventReceiver=s,c.onstatechange=()=>{var h;c!=null&&c.state&&((h=this.onDTLSTransportStateChange)===null||h===void 0||h.call(this,c.state))},c.onerror=h=>{var _;(_=this.onDTLSTransportError)===null||_===void 0||_.call(this,"error"in h?h.error:h)};const u=c.iceTransport;u&&(u.onstatechange=()=>{const h=c==null?void 0:c.iceTransport.state;var _;h&&((_=this.onICETransportStateChange)===null||_===void 0||_.call(this,h))},u.getSelectedCandidatePair&&(u.onselectedcandidatepairchange=()=>{if(u.getSelectedCandidatePair()){const h=u.getSelectedCandidatePair()||{},_=h.local,B=h.remote;if(_&&B){const Q=_.address+":"+_.port,T=B.address+":"+B.port;J.info("[".concat(this.store.clientId,"] [pc-").concat(this.store.p2pId,"] selectedcandidatepairchange: local ").concat(JSON.stringify(Hh(Q)),", remote ").concat(JSON.stringify(Hh(T))))}}}))}}tryUnbindTransportEvents(){this.transportEventReceiver&&this.transportEventReceiver.transport&&(this.transportEventReceiver.transport.onstatechange=null,this.transportEventReceiver.transport.onerror=null,this.transportEventReceiver.transport.iceTransport&&(this.transportEventReceiver.transport.iceTransport.onstatechange=null))}async updateRtpSenderEncodings(s,c){var u,h;if(c||(c=this.peerConnection.getSenders().find(Oe=>Oe.track===s._mediaStreamTrack)),!c)return J.warn("[".concat(s.getTrackId(),"] no rtpSender found}"));if(this.isVP8Simulcast(s))return J.warn("[updateRtpSenderEncodings] Track is VP8 simulcast, please apply simulcast encodings");if(!Si().supportSetRtpSenderParameters)return J.warn("[updateRtpSenderEncodings] Browser not support set rtp-sender parameters");const _=pU(s),B=!!_&&Gte(this.store.codec)&&oz(_),Q=B&&!this.unsupportedResolutionFloorTrackIds.has(s.getTrackId()),T=!!_&&!(B&&!Q)&&Wte(s,Q?_:void 0),D=Q&&T,O=Q||Et(u=["vp8","vp9"]).call(u,this.store.codec),P={},U={},H=ere(s,D);H&&(P.degradationPreference=H);const $=Ate(this.peerConnection,s._mediaStreamTrack);if(T&&$&&c&&_&&this.getLocalVideoStats&&O){const Qe=this.id+$.mid,Oe=Zte(s,Q);Xte(Qe,_,this,Oe,we=>{c&&this.updateAdaptation(s,c,we,Qe,Q)},this.getLocalVideoStats.bind(this))}if(s._encoderConfig){var Z;const Qe=s._encoderConfig,Oe=Qe.bitrateMax,we=Qe.frameRate,Ne=Qe.scaleResolutionDownBy;Oe&&(U.maxBitrate=1e3*Oe),(Et(Z=s._hints).call(Z,gn.LOW_STREAM)||s.isUseScaleResolutionDownBy)&&(we&&(U.maxFramerate=dc(we)),Ne&&Ne>=1&&(U.scaleResolutionDownBy=Ne))}const te=de("ENCODER_CONFIG_LIMIT").maxFramerate;if(te&&typeof te=="number"&&(U.maxFramerate=U.maxFramerate?Math.min(U.maxFramerate,te):te),de("DSCP_TYPE")&&Al()){var se;const Qe=de("DSCP_TYPE");Et(se=["very-low","low","medium","high"]).call(se,Qe)&&(U.networkPriority=Qe)}const ge=c.getParameters(),me=(h=ge.encodings)===null||h===void 0?void 0:h[0];Ln()&&!me&&(P.encodings=[U]),me&&Object.assign(me,U),Object.assign(ge,P),J.debug("[".concat(s.getTrackId(),"] updateRtpSenderEncodings: ").concat(JSON.stringify(ge.encodings))),await c.setParameters(ge),await Bte(this.store.codec,c,de("SVC_MODE"))}async updateAdaptation(s,c,u,h,_){var B,Q;if(!c)return J.debug("[updateAdaptation] no rtpSender found");if(!Si().supportSetRtpSenderParameters)return J.debug("[updateAdaptation] Browser not support set rtp-sender parameters");const T={},D={},O=u.bitrateMax,P=u.frameRate,U=u.scaleResolutionDownBy;O&&(D.maxBitrate=1e3*O),P&&(D.maxFramerate=dc(P));let H=!1;typeof U=="number"&&U>=1&&(_||Et(B=["vp8","vp9"]).call(B,this.store.codec))&&(D.scaleResolutionDownBy=U,H=U>1);const $=c.getParameters(),Z=(Q=$.encodings)===null||Q===void 0?void 0:Q[0];Z&&Object.assign(Z,D),Object.assign($,T);try{await c.setParameters($),J.debug("[updateAdaptation] updateRtpSenderEncodings: ".concat(JSON.stringify($.encodings)))}catch(te){if(!("transport"in c)||c.transport&&c.transport.state==="connected")if(this.peerConnectionState!=="connected")J.debug("[updateAdaptation] peerConnection not connected}");else if(_&&H){const se=await ire(c,T,D);se.classification==="unsupported"?(this.unsupportedResolutionFloorTrackIds.add(s.getTrackId()),Dp(h,this),J.warn("[".concat(s.getTrackId(),"] fallback to browser adaptation because scaleResolutionDownBy adaptation is unsupported"),te,se.retryWithScaleError),this.updateRtpSenderEncodings(s,c).catch(ge=>{J.warn("[".concat(s.getTrackId(),"] failed to re-apply browser adaptation after disabling resolution floor"),ge)})):se.classification==="transient"?J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled after transient setParameters failure"),te):J.debug("[".concat(s.getTrackId(),"] keep resolution floor enabled because setParameters failure is not classified as unsupported"),te,se.retryWithScaleError,se.retryWithoutScaleError)}else J.debug("[updateAdaptation] updateRtpSenderEncodings failed",te);else J.debug("[updateAdaptation] rtpSender transport not connected}")}}async applySendEncodings(s,c){try{if(!Si().supportSetRtpSenderParameters||s.length!==c.length)return;for(let u=0;u{const Q=u[B],T=h.mediaDescriptions.find(D=>D.attributes.mid===Q);T&&(Am(T,_),KX(T,_,this.store.codec))}),X1(h)}bindStatsEvents(){this.statsFilter.onFirstAudioReceived=s=>{var c;(c=this.onFirstAudioReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoReceived=s=>{var c;(c=this.onFirstVideoReceived)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstAudioDecoded=s=>{var c;(c=this.onFirstAudioDecoded)===null||c===void 0||c.call(this,s)},this.statsFilter.onFirstVideoDecoded=(s,c,u)=>{var h;(h=this.onFirstVideoDecoded)===null||h===void 0||h.call(this,s,c,u)},this.statsFilter.onSelectedLocalCandidateChanged=(s,c)=>{var u;(u=this.onSelectedLocalCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onSelectedRemoteCandidateChanged=(s,c)=>{var u;(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0||u.call(this,s,c)},this.statsFilter.onFirstVideoDecodedTimeout=s=>{var c;(c=this.onFirstVideoDecodedTimeout)===null||c===void 0||c.call(this,s)}}unbindStatsEvents(){this.statsFilter.onFirstAudioReceived=void 0,this.statsFilter.onFirstVideoReceived=void 0,this.statsFilter.onFirstAudioDecoded=void 0,this.statsFilter.onFirstVideoDecoded=void 0,this.statsFilter.onSelectedLocalCandidateChanged=void 0,this.statsFilter.onSelectedRemoteCandidateChanged=void 0,this.statsFilter.onFirstVideoDecodedTimeout=void 0}async applySimulcastForFirefox(s,c){if(s.length===c.length)for(let T=0;T200&&(B=O._scalabilityMode)!==null&&B!==void 0&&B.numSpatialLayers&&((Q=O._scalabilityMode)===null||Q===void 0?void 0:Q.numSpatialLayers)>1&&this.store.codec==="vp8"){const P={},U={high:1e3*(O._encoderConfig.bitrateMax-50),medium:5e4};P.encodings=[{rid:"m",active:!0,maxBitrate:U.medium,scaleResolutionDownBy:4},{rid:"h",active:!0,maxBitrate:U.high}];const H=D.sender.getParameters();await D.sender.setParameters(Object.assign(H,P))}}}async applySimulcastEncodings(s,c){if(!Ln()&&s.length===c.length)for(let u=0;u200&&(_=s._scalabilityMode)!==null&&_!==void 0&&_.numSpatialLayers&&((B=s._scalabilityMode)===null||B===void 0?void 0:B.numSpatialLayers)>1)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("[".concat(this.store.clientId,"] exchanging ").concat(u," ").concat(c," SDP during NVConnectionExtension.").concat(h,` -`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}async getRemoteSSRC(s){if(!this.remoteSDP)return;const c=this.remoteSDP.getSSRC(s);return c&&c.length!==0?c[0].ssrcId:void 0}setConfiguration(s){if(Si().supportPCSetConfiguration){const c=IT.resolvePCConfiguration(s);this.peerConnection.setConfiguration(c)}s.isPreallocation&&(this.isPreallocation=!0)}},Pt(tn.prototype,"updateRemoteRTPCapabilities",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateRemoteRTPCapabilities"),tn.prototype),Pt(tn.prototype,"connect",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"connect"),tn.prototype),Pt(tn.prototype,"updateRemoteConnect",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateRemoteConnect"),tn.prototype),Pt(tn.prototype,"createDataChannels",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"createDataChannels"),tn.prototype),Pt(tn.prototype,"receive",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"receive"),tn.prototype),Pt(tn.prototype,"batchReceive",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"batchReceive"),tn.prototype),Pt(tn.prototype,"stopReceiving",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"stopReceiving"),tn.prototype),Pt(tn.prototype,"muteRemote",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"muteRemote"),tn.prototype),Pt(tn.prototype,"unmuteRemote",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"unmuteRemote"),tn.prototype),Pt(tn.prototype,"muteLocal",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"muteLocal"),tn.prototype),Pt(tn.prototype,"unmuteLocal",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"unmuteLocal"),tn.prototype),Pt(tn.prototype,"close",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"close"),tn.prototype),Pt(tn.prototype,"updateEncoderConfig",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateEncoderConfig"),tn.prototype),Pt(tn.prototype,"updateSendParameters",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateSendParameters"),tn.prototype),Pt(tn.prototype,"replaceTrack",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"replaceTrack"),tn.prototype),Pt(tn.prototype,"updateAdaptation",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"updateAdaptation"),tn.prototype),Pt(tn.prototype,"getRemoteSSRC",[gc],Object.getOwnPropertyDescriptor(tn.prototype,"getRemoteSSRC"),tn.prototype),tn);function gc(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From NVConnectionExtension.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{const h=setTimeout(()=>{this.closeSignal(),u(new qe(Ce.DATACHANNEL_CONNECTION_TIMEOUT,"Datachannel connection timed out, candidates: ".concat(JSON.stringify(s.candidates))))},de("DC_CONNECTION_TIMEOUT"));this.dataChannel.onopen=()=>{if(this.dataChannel.readyState==="open")return clearTimeout(h),void c()},this.dataChannel.onerror=_=>{this.closeSignal(),u(_)},this.dataChannel.addEventListener("close",()=>{u(new qe(Ce.DATACHANNEL_CONNECTION_TIMEOUT))})}),{transmitter:this.dataChannel,close:this.closeSignal.bind(this)}}checkDtlsParameters(s){return this._p2pConnection.checkDtlsParameters(s)}checkIceParameters(s){return this._p2pConnection.checkIceParameters(s)}async updateRemoteRTPCapabilities(s,c){return this._p2pConnection.updateRemoteRTPCapabilities(s,c)}send(s,c,u){var h=this;return AA(function*(){const _=yield Tr(h.mutex.lock("From DataChannelConnection.send"));try{return yield*Qc(dne(h._p2pConnection.send(s,c,u)))}finally{_()}})()}async stopSending(s,c){return this._p2pConnection.stopSending(s,c)}async createDataChannels(s,c){return this._p2pConnection.createDataChannels(s,c)}async stopDataChannels(s){return this._p2pConnection.stopDataChannels(s)}async receive(s,c,u,h){return this._nvMedia?(J.debug("[DataChannelConnection] receive ".concat(s," by DataChannel.")),await this._nvMedia.reveiveByRTCMedia(s,c,this.cname)):(J.debug("[DataChannelConnection] receive ".concat(s," by WebRTC.")),await this._p2pConnection.receive(s,c,u,h))}async batchReceive(s){return[...await this._p2pConnection.batchReceive(s)]}async stopReceiving(s){return await this._p2pConnection.stopReceiving(s)}async muteRemote(s){return await this._p2pConnection.muteRemote(s)}async unmuteRemote(s){return await this._p2pConnection.unmuteRemote(s)}async muteLocal(s){return await this._p2pConnection.muteLocal(s)}async unmuteLocal(s){return await this._p2pConnection.unmuteLocal(s)}restartICE(s){var c=this;return AA(function*(){return yield*Qc(dne(c._p2pConnection.restartICE(s)))})()}close(){var s;(s=this._nvMedia)===null||s===void 0||s.close(),this._p2pConnection.close(),this.unbindConnectionEvents(this._p2pConnection)}getStats(){return this._p2pConnection.getStats()}getRemoteVideoIsReady(s){return this._p2pConnection.getRemoteVideoIsReady(s)}updateRemoteConnect(s){var c;return(c=this._nvMedia)===null||c===void 0||c.setRemoteRtpCapabilities(s),this._p2pConnection.updateRemoteConnect(s)}async updateEncoderConfig(s,c){return await this._p2pConnection.updateEncoderConfig(s,c)}async updateSendParameters(s,c){return await this._p2pConnection.updateSendParameters(s,c)}setStatsRemoteVideoIsReady(s,c){this._p2pConnection.setStatsRemoteVideoIsReady(s,c)}async replaceTrack(s,c){return await this._p2pConnection.replaceTrack(s,c)}async getRemoteSSRC(s){return this._p2pConnection.getRemoteSSRC(s)}logSDPExchange(s,c,u,h){if(de("SDP_LOGGING"))return J.upload("exchanging ".concat(u," ").concat(c," SDP during DataChannelConnection.").concat(h,` -`),s),c==="offer"?_=>{this.logSDPExchange(_,"answer",u==="local"?"remote":"local",h)}:void 0}static resolvePCConfiguration(s){const c={iceServers:[]};return s.iceServers?c.iceServers=s.iceServers:s.turnServer&&s.turnServer.mode!=="off"&&(zi(s.turnServer.servers)?c.iceServers=s.turnServer.servers:(c.iceServers&&c.iceServers.push(...s8.turnServerConfigToIceServers(s.turnServer.servers)),de("USE_TURN_SERVER_OF_GATEWAY")&&c.iceServers&&s.turnServer.serversFromGateway&&c.iceServers.push(...s8.turnServerConfigToIceServers(s.turnServer.serversFromGateway)),de("FORCE_TURN_TCP")?c.iceTransportPolicy="relay":s.turnServer.servers.concat(s.turnServer.serversFromGateway||[]).forEach(u=>{u.forceturn&&(c.iceTransportPolicy="relay")}))),de("ENABLE_ENCODED_TRANSFORM")&&Si().supportWebRTCEncodedTransform&&(c.encodedInsertableStreams=!0),c}static turnServerConfigToIceServers(s){const c=[];return s.forEach(u=>{u.security?u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turns:".concat(rg(u.turnServerURL),":").concat(u.tcpport,"?transport=tcp")}):(u.udpport&&!de("FORCE_TURN_TCP")&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.udpport,"?transport=udp")}),u.tcpport&&c.push({username:u.username,credential:u.password,credentialType:"password",urls:"turn:".concat(u.turnServerURL,":").concat(u.tcpport,"?transport=tcp")}))}),c}bindPCEvents(){this._p2pConnection.onICEConnectionStateChange=s=>{var c;return(c=this.onICEConnectionStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onConnectionStateChange=s=>{var c;return(c=this.onConnectionStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onDTLSTransportStateChange=s=>{var c;return(c=this.onDTLSTransportStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onDTLSTransportError=s=>{var c;return(c=this.onDTLSTransportError)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onICETransportStateChange=s=>{var c;return(c=this.onICETransportStateChange)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstAudioReceived=s=>{var c;return(c=this.onFirstAudioReceived)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoReceived=s=>{var c;return(c=this.onFirstVideoReceived)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstAudioDecoded=s=>{var c;return(c=this.onFirstAudioDecoded)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoRender=s=>{var c;return(c=this.onFirstVideoRender)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoBufferReady=s=>{var c;return(c=this.onFirstVideoBufferReady)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onFirstVideoDecoded=(s,c,u)=>{var h;return(h=this.onFirstVideoDecoded)===null||h===void 0?void 0:h.call(this,s,c,u)},this._p2pConnection.onFirstVideoDecodedTimeout=s=>{var c;return(c=this.onFirstVideoDecodedTimeout)===null||c===void 0?void 0:c.call(this,s)},this._p2pConnection.onSelectedLocalCandidateChanged=(s,c)=>{var u;return(u=this.onSelectedLocalCandidateChanged)===null||u===void 0?void 0:u.call(this,s,c)},this._p2pConnection.onSelectedRemoteCandidateChanged=(s,c)=>{var u;return(u=this.onSelectedRemoteCandidateChanged)===null||u===void 0?void 0:u.call(this,s,c)}}closeSignal(){this.dataChannel.close(),this.peerConnection.close()}unbindConnectionEvents(s){s.onConnectionStateChange=void 0,s.onICEConnectionStateChange=void 0,s.onICETransportStateChange=void 0,s.onDTLSTransportStateChange=void 0,s.onDTLSTransportError=void 0,s.onFirstAudioDecoded=void 0,s.onFirstAudioReceived=void 0,s.onFirstVideoDecoded=void 0,s.onFirstVideoReceived=void 0,s.onSelectedLocalCandidateChanged=void 0,s.onSelectedRemoteCandidateChanged=void 0,s.onFirstVideoDecodedTimeout=void 0}setConfiguration(s){this._p2pConnection.setConfiguration(s)}},Pt(jn.prototype,"connect",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"connect"),jn.prototype),Pt(jn.prototype,"updateRemoteRTPCapabilities",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"updateRemoteRTPCapabilities"),jn.prototype),Pt(jn.prototype,"createDataChannels",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"createDataChannels"),jn.prototype),Pt(jn.prototype,"receive",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"receive"),jn.prototype),Pt(jn.prototype,"stopReceiving",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"stopReceiving"),jn.prototype),Pt(jn.prototype,"muteRemote",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"muteRemote"),jn.prototype),Pt(jn.prototype,"unmuteRemote",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"unmuteRemote"),jn.prototype),Pt(jn.prototype,"muteLocal",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"muteLocal"),jn.prototype),Pt(jn.prototype,"unmuteLocal",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"unmuteLocal"),jn.prototype),Pt(jn.prototype,"close",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"close"),jn.prototype),Pt(jn.prototype,"updateEncoderConfig",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"updateEncoderConfig"),jn.prototype),Pt(jn.prototype,"updateSendParameters",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"updateSendParameters"),jn.prototype),Pt(jn.prototype,"replaceTrack",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"replaceTrack"),jn.prototype),Pt(jn.prototype,"getRemoteSSRC",[hd],Object.getOwnPropertyDescriptor(jn.prototype,"getRemoteSSRC"),jn.prototype),jn);function hd(t,s,c){const u=t[s];if(typeof u!="function")throw new Error("Cannot use mutex on object property.");return c.value=async function(){const h=this.mutex,_=await h.lock("From DataChannelConnection.".concat(s));try{for(var B=arguments.length,Q=new Array(B),T=0;T{}),ae(this,"_store",void 0),ae(this,"_joinChannelServiceRecordIndex",void 0),ae(this,"_transmitter",void 0),ae(this,"_useCompress",void 0),ae(this,"_inflateLength",0),ae(this,"_deflateLength",0),this._store=h,this._name=s,this._retryConfig=function(_){for(var B=1;Bu.close(),500):u.close(),this._transmitter=void 0}this.state=s?"failed":"closed",this._closeEstablishingTransmitter&&this._closeEstablishingTransmitter()}reconnect(s,c){if(!this._transmitter)return void J.warning("[".concat(this._name,"] can not reconnect, no websocket"));var u;s!==void 0&&(this.reconnectMode=s),J.debug("[".concat(this._name,"] reconnect is triggered initiative")),typeof this._joinChannelServiceRecordIndex=="number"&&((u=this._store)===null||u===void 0||u.recordJoinChannelService({status:"error",errors:[new Error(c)]},this._joinChannelServiceRecordIndex));const h=this._transmitter.onclose;this._transmitter.onclose=null,this._transmitter.close(),h&&h.bind(this._transmitter)({code:9999,reason:c})}getInflateData(){const s=this._inflateLength,c=this._deflateLength;return this.clearInflateData(),{inflateLength:s,deflateLength:c}}setInflateData(s){this._deflateLength=this._deflateLength+s.originLength,this._inflateLength=this._inflateLength+s.compressedLength}clearInflateData(){this._inflateLength=0,this._deflateLength=0}}let dE=function(t){return t[t.Default=0]="Default",t[t.Ack=1]="Ack",t}({});class kle{constructor(s,c,u){ae(this,"version",1),ae(this,"initialRTO",void 0),ae(this,"maxBatchAckCount",void 0),ae(this,"maxRTO",void 0),ae(this,"initialRTT",void 0),ae(this,"ID",void 0),ae(this,"rtt",void 0),ae(this,"packetNumber",1),ae(this,"rtoRatioMap",new Map),ae(this,"timeoutMap",new Map),ae(this,"unorderedPacketQueue",[]),ae(this,"batchAckPacketQueue",[]),ae(this,"lastOrderedPacketNumber",0),ae(this,"batchAckTimer",void 0),ae(this,"sendImpl",void 0),ae(this,"receiveImpl",void 0),this.sendImpl=s,this.receiveImpl=c,this.ID=un(7,"transmitter-"),this.initialRTO=(u==null?void 0:u.initialRTO)!==void 0?u.initialRTO:de("TRANSMITTER_INITIAL_RTO"),this.initialRTT=(u==null?void 0:u.initialRTT)!==void 0?u.initialRTT:de("TRANSMITTER_INITIAL_RTT"),this.rtt=(u==null?void 0:u.initialRTT)!==void 0?u.initialRTT:de("TRANSMITTER_INITIAL_RTT"),this.maxBatchAckCount=(u==null?void 0:u.maxBatchAckCount)!==void 0?u.maxBatchAckCount:de("TRANSMITTER_MAX_BATCH_ACK_COUNT"),this.maxRTO=(u==null?void 0:u.maxRTO)!==void 0?u.maxRTO:de("TRANSMITTER_MAX_RTO")}packetize(s,c){return{type:dE.Default,version:this.version,packetNumber:c,payload:s}}serialize(s){switch(s.type){case dE.Default:{let c;typeof s.payload=="string"?c=new TextEncoder().encode(s.payload):c=s.payload;const u=new ArrayBuffer(c.length+15),h=new DataView(u);return h.setUint16(0,s.version),h.setUint8(2,s.type),h.setUint32(3,s.packetNumber),d2(h,7,BigInt(s.sendTs)),new Uint8Array(h.buffer).set(c,15),u}case dE.Ack:{const c=new ArrayBuffer(16),u=new DataView(c);return u.setUint16(0,s.version),u.setUint8(2,s.type),u.setUint32(3,s.maxAckPacketNumber),u.setUint8(7,s.shift),d2(u,8,BigInt(s.ackSendTs)),c}}}deserialize(s){const c=new DataView(s),u=c.getUint16(0),h=c.getUint8(2);switch(h){case dE.Default:{const _=c.getUint32(3),B=J1(c,7),Q=s.slice(15),T=new Uint8Array(Q);return{version:u,type:h,packetNumber:_,sendTs:Number(B),payload:T}}case dE.Ack:{const _=c.getUint32(3),B=c.getUint8(7),Q=J1(c,8);return{version:u,type:h,maxAckPacketNumber:_,shift:B,ackSendTs:Number(Q)}}default:throw J.error("[".concat(this.ID,"] Unrecognized packet type ").concat(h)),new Error("Unrecognized packet type ".concat(h))}}sendMessage(s){de("DC_DEBUG_LOG")&&typeof s=="string"&&J.debug("[".concat(this.ID,"] sending message packet"),JSON.parse(s));const c=this.packetize(s,this.packetNumber);this.packetNumber=this.packetNumber===4294967295?1:this.packetNumber+1;const u=this.calculateRTO(c),h=window.setTimeout(()=>{this.resendMessage(c)},u);this.timeoutMap.set(c.packetNumber,h),this.sendPacket(c)}onData(s){const c=this.deserialize(s);c.type===dE.Default?this.ack(c):c.type===dE.Ack&&(this.updateRTT(c,Math.round(performance.now())),this.clearRTO(c))}close(){this.rtt=this.initialRTT,this.packetNumber=1,Array.from(this.timeoutMap.entries()).forEach(s=>{let c=ir(s,2);c[0];let u=c[1];window.clearTimeout(u)}),this.timeoutMap=new Map,this.rtoRatioMap=new Map,this.unorderedPacketQueue=[],this.batchAckPacketQueue=[],this.lastOrderedPacketNumber=0,this.batchAckTimer!==void 0&&window.clearTimeout(this.batchAckTimer)}resendMessage(s){const c=this.calculateRTO(s),u=window.setTimeout(()=>{de("DC_DEBUG_LOG")&&typeof s.payload=="string"&&J.debug("[".concat(this.ID,"] resending message packet"),JSON.parse(s.payload),"timeout: ".concat(c)),this.resendMessage(s)},c);this.timeoutMap.set(s.packetNumber,u),this.sendPacket(s)}calculateRTO(s){const c=this.rtoRatioMap.get(s.packetNumber);if(c===void 0)return this.rtoRatioMap.set(s.packetNumber,1),this.initialRTO;{const u=9*this.rtt/8*c;return this.rtoRatioMap.set(s.packetNumber,c+1),u>this.maxRTO?this.maxRTO:u}}updateRTT(s,c){const u=s.ackSendTs;this.rtt=this.rtt*(7/8)+(c-u-this.rtt)/8}ack(s){if(s.packetNumber===this.lastOrderedPacketNumber+1)for(this.batchAckPacketQueue.length>=this.maxBatchAckCount&&this.batchAck(),this.batchAckTimer?this.batchAckPacketQueue.push(s):(this.batchAckPacketQueue.push(s),this.batchAckTimer=window.setTimeout(()=>{this.batchAck()},this.rtt/8)),this.lastOrderedPacketNumber+=1,this.receiveImpl(s.payload);;){const c=this.unorderedPacketQueue[0];if(!c){this.unorderedPacketQueue.shift();break}this.batchAckTimer&&this.batchAck(),this.receiveImpl(c.payload),this.unorderedPacketQueue.shift(),this.lastOrderedPacketNumber+=1}else if(s.packetNumber<=this.lastOrderedPacketNumber){const c={ackSendTs:s.sendTs,maxAckPacketNumber:s.packetNumber,shift:0,type:dE.Ack,version:this.version};de("DC_DEBUG_LOG")&&J.debug("[".concat(this.ID,"] sending ack packet"),c,"packetNumber: ".concat(s.packetNumber)),this.sendPacket(c)}else if(s.packetNumber>this.lastOrderedPacketNumber){this.unorderedPacketQueue[s.packetNumber-this.lastOrderedPacketNumber-2]=s;const c={ackSendTs:s.sendTs,maxAckPacketNumber:s.packetNumber,shift:0,type:dE.Ack,version:this.version};de("DC_DEBUG_LOG")&&J.debug("[".concat(this.ID,"] sending ack packet"),c,"packetNumber: ".concat(s.packetNumber)),this.sendPacket(c)}}batchAck(){window.clearTimeout(this.batchAckTimer),this.batchAckTimer=void 0;const s={ackSendTs:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].sendTs,maxAckPacketNumber:this.batchAckPacketQueue[this.batchAckPacketQueue.length-1].packetNumber,shift:this.batchAckPacketQueue.length-1,type:dE.Ack,version:this.version};de("DC_DEBUG_LOG")&&J.debug("[".concat(this.ID,"] sending batch ack packet"),s,"shift: ".concat(this.batchAckPacketQueue.length-1)),this.sendPacket(s),this.batchAckPacketQueue=[]}sendPacket(s){s.type===dE.Default&&(s.sendTs=Math.round(performance.now()));const c=this.serialize(s);this.sendImpl(c)}clearRTO(s){for(let c=s.maxAckPacketNumber-s.shift;c<=s.maxAckPacketNumber;c++){const u=this.timeoutMap.get(c);u!==void 0&&window.clearTimeout(u),this.timeoutMap.delete(c),this.rtoRatioMap.delete(c)}}}class gne extends Mle{constructor(s,c){super(s,c,arguments.length>2&&arguments[2]!==void 0&&arguments[2],arguments.length>3?arguments[3]:void 0),ae(this,"_initMutex",void 0),ae(this,"_reconnectInterrupter",void 0),ae(this,"_url",void 0),ae(this,"_transmitter",void 0),ae(this,"_addresses",void 0),ae(this,"_reliableTransmission",void 0),ae(this,"_textEncoder",void 0),ae(this,"_textDecoder",void 0),this._textEncoder=new TextEncoder,this._textDecoder=new TextDecoder,this._initMutex=new ra("datachannel");const u=c.timeout,h=c.timeoutFactor,_=Math.max(300,Math.floor(3*u/5)),B=Math.max(1.2,Math.floor(8*h)/10);tA.ONLINE&&(this._retryConfig.timeout=_,this._retryConfig.timeoutFactor=B),ki.on(E2.NETWORK_STATE_CHANGE,(Q,T)=>{Q!==T&&(this.resetReconnectCount("network state change: ".concat(T," -> ").concat(Q)),Q===tA.ONLINE?(this._retryConfig.timeout=_,this._retryConfig.timeoutFactor=B):(this._retryConfig.timeout=u,this._retryConfig.timeoutFactor=h))})}getConnection(){if(this._reliableTransmission)return this._reliableTransmission}async init(s){let c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;this._forceCloseTimeout=c;const u=(h,_)=>{this._addresses=s,this.currentURLIndex=this._addresses.findIndex(Q=>Q.fingerprint||de("FINGERPRINT"));const B=this._addresses[this.currentURLIndex];this.state="connecting",this.createTransmitterConnection(B).then(h).catch(_),this.once(fs.CLOSED,()=>_(new qe(Ce.WS_DISCONNECT))),this.once(fs.CONNECTED,()=>h())};return this._initMutex.lock().then(h=>new Ut((_,B)=>{u(_,B)}).then(()=>{h()}).catch(()=>{h()}))}async sendMessage(s){let c=arguments.length>2&&arguments[2]!==void 0&&arguments[2];if(!this._transmitter||!this._reliableTransmission)throw new qe(Ce.WS_ABORT,"datachannel is not ready");try{c||(s=JSON.stringify(s));const u=this._textEncoder.encode(s),h=nO(u,{raw:!0});this._reliableTransmission.sendMessage(h)}catch(u){throw new qe(Ce.WS_ERR,"send datachannel signal message error"+u.toString())}}unbindDcCloseEventListener(){this._transmitter&&(this._transmitter.onclose=null)}sendMessageWithJSON(s){const c=JSON.stringify(s);return{compressed:c,compressedLength:c.length,origin:s}}sendMessageWithUint8Array(s){return{compressed:s,compressedLength:s.byteLength,origin:s}}createTransmitterConnection(s){return this.connectionID+=1,this._joinChannelServiceRecordIndex=void 0,this._url="dc://".concat(s.ip,":").concat(s.port),new Ut((c,u)=>{var h;const _=()=>{J.debug("[".concat(this._name,"] datachannel opened:"),this._url),this.reconnectMode="recover",this.state="connected",this.resetReconnectCount("opened"),c()},B=async O=>{var P;if((P=this._closeEstablishingTransmitter)===null||P===void 0||P.call(this),J.debug("[".concat(this._name,"] datachannel close ").concat(this._url,", code: ").concat(O.code,", reason: ").concat(O.reason,", current mode: ").concat(this.reconnectMode)),this._reconnectCount{try{var P;(P=this._reliableTransmission)===null||P===void 0||P.onData(O.data)}catch(U){console.log(U)}};this._transmitter&&(this._transmitter.onclose=null,this._transmitter.close()),this._reliableTransmission&&(this._reliableTransmission.close(),this._reliableTransmission=void 0),J.debug("[".concat(this._name,"] start connect, address: ").concat(JSON.stringify(s)));const T=(h=this._store)===null||h===void 0?void 0:h.recordJoinChannelService({startTs:Date.now(),status:"pending",service:"gateway"}),D=Date.now();$o(this,fs.TO_CONNECT_DATACHANNEL).then(O=>{var P,U;if(!O)throw new Error("transmissonInfo not exist yet");const H=O.transmitter,$=O.close;this._transmitter=H,(P=this._store)===null||P===void 0||P.signalChannelOpen();const Z=Date.now()-D;J.debug("[choose dc] dc open cost ".concat(Z,"ms")),this._reliableTransmission=new kle(te=>{var se;this._transmitter&&this._transmitter.readyState==="open"&&((se=this._transmitter)===null||se===void 0||se.send(te))},te=>{if(typeof te=="string")this.emit(fs.ON_MESSAGE,te);else{const se=gQ(te,{raw:!0}).buffer,ge=this._textDecoder.decode(se);this.emit(fs.ON_MESSAGE,ge)}}),this._closeEstablishingTransmitter=()=>{var te;(te=this._reliableTransmission)===null||te===void 0||te.close(),this._reliableTransmission=void 0,$()},_&&_(),H.onclose=B,H.onmessage=Q,(U=this._store)===null||U===void 0||U.recordJoinChannelService({endTs:Date.now(),status:"success"},T),this._joinChannelServiceRecordIndex=T}).catch(O=>{var P;if((P=this._store)===null||P===void 0||P.recordJoinChannelService({endTs:Date.now(),status:O instanceof qe&&O.code===Ce.WS_ABORT?"aborted":"error",errors:[O]},T),this.state!=="closed"){if(O instanceof qe&&O.code===Ce.WS_ERR){const U=new qe(Ce.WS_ERR,"init datachannel failed! Error: ".concat(O.toString()));return J.error("[".concat(this._name,"]").concat(U)),void u(U)}B&&B(O)}else u(new qe(Ce.WS_DISCONNECT,"datachannel is closed: ".concat(O.toString())))})})}async reconnectWithAction(s){let c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._reconnectCount>=this._retryConfig.maxRetryCount||!this._addresses||this.state==="closed")return!1;this._onlineReconnectListener||ki.networkState!==tA.OFFLINE||(this._onlineReconnectListener=ki.onlineWaiter&&ki.onlineWaiter.then(()=>{this._onlineReconnectListener=void 0}));let u=!0;if(this._reconnectInterrupter=()=>{u=!1},c){const Q=Lf(this._reconnectCount,this._retryConfig);J.debug("[".concat(this._name,"] wait ").concat(Q,"ms to reconnect datachannel, mode: ").concat(s)),await Ut.race([so(Q),this._onlineReconnectListener||new Ut(()=>{})])}if(this.state==="closed"||!u)return!1;this._reconnectCount+=1;const h=async(Q,T)=>{this.emit(fs.RECONNECT_CREATE_CONNECTION,T),await this.createTransmitterConnection(Q)};try{if(s==="retry"){const Q=this._addresses[this.currentURLIndex];await h(Q,s)}else if(s==="tryNext"){this.currentURLIndex+=1;for(let T=this.currentURLIndex;T=this._addresses.length)return J.debug("[".concat(this._name,"] the available addresses are exhausted, change to recover")),await this.reconnectWithAction("recover",!1);J.debug("[".concat(this._name,"] datachannel url length: ").concat(this._addresses.length," current index: ").concat(this.currentURLIndex));const Q=this._addresses[this.currentURLIndex];await h(Q,s)}else s==="recover"&&(J.debug("[".concat(this._name,"] start to failback to websocket")),this.resetReconnectCount("recover mode"),this.emit(fs.FAILBACK));return!0}catch(Q){var _,B;return J.error("[".concat(this._name,"] reconnect failed"),Q.toString()),Q!=null&&(_=Q.data)!==null&&_!==void 0&&_.desc&&Array.isArray(Q.data.desc)&&Q.data.desc.length&&Et(B=Q.data.desc).call(B,"dynamic key expired")?(this.emit(fs.ON_TOKEN_PRIVILEGE_DID_EXPIRE),!1):await this.reconnectWithAction(s,c)}}}class Ple extends Cn{get connectionState(){return this._connectionState}set connectionState(s){s!==this._connectionState&&(this._connectionState=s,s===Ci.CONNECTED?this.emit(er.WS_CONNECTED):s===Ci.RECONNECTING?this.emit(er.WS_RECONNECTING,this._websocketReconnectReason):s===Ci.CLOSED&&this.emit(er.WS_CLOSED,this._disconnectedReason))}get currentURLIndex(){return this.websocket.currentURLIndex}get url(){return this.websocket?this.websocket.url:null}get rtt(){return this.rttRolling.mean()}processPendingNotifications(){this.pendingNotifications.length!==0&&(J.debug("[".concat(this.clientId,"] processing ").concat(this.pendingNotifications.length," pending notifications")),this.pendingNotifications.forEach(s=>{let c=s.type,u=s.message;this.emit(c,u),c===Ur.ON_NOTIFICATION&&this.handleNotification(u),c===Ur.ON_USER_BANNED&&this.handleUserBanned(u)}),this.pendingNotifications=[])}handleUserBanned(s){switch(s.error_code){case 14:this.close(mi.UID_BANNED);break;case 15:this.close(mi.IP_BANNED);break;case 16:this.close(mi.CHANNEL_BANNED)}}constructor(s,c){super(),ae(this,"__name__","DataChannelSignal"),ae(this,"_disconnectedReason",void 0),ae(this,"_websocketReconnectReason",void 0),ae(this,"_connectionState",Ci.CLOSED),ae(this,"reconnectToken",void 0),ae(this,"websocket",void 0),ae(this,"openConnectionTime",void 0),ae(this,"clientId",void 0),ae(this,"lastMsgTime",Date.now()),ae(this,"uploadCache",[]),ae(this,"uploadCacheInterval",void 0),ae(this,"rttRolling",new VR(5)),ae(this,"pingpongTimer",void 0),ae(this,"inflateDataTimer",void 0),ae(this,"pingpongTimeoutCount",0),ae(this,"ortc",void 0),ae(this,"joinResponse",void 0),ae(this,"multiIpOption",void 0),ae(this,"initError",void 0),ae(this,"spec",void 0),ae(this,"store",void 0),ae(this,"isJoining",!1),ae(this,"pendingNotifications",[]),ae(this,"onWebsocketMessage",u=>{if(u instanceof ArrayBuffer)return void this.emit(er.ON_BINARY_DATA,u);const h=JSON.parse(u);if(de("DC_DEBUG_LOG")&&J.debug("[datachannel-signal] received packet",h),this.lastMsgTime=Date.now(),Object.prototype.hasOwnProperty.call(h,"_id")){const _="res-@".concat(h._id);this.emit(_,h._result,h._message)}else Object.prototype.hasOwnProperty.call(h,"_type")&&(this.isJoining?h._type===Ur.ON_NOTIFICATION||h._type===Ur.ON_USER_BANNED?(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED&&this.handleUserBanned(h._message)):(this.pendingNotifications.push({type:h._type,message:h._message}),J.debug("[".concat(this.clientId,"] cached notification during join: ").concat(h._type))):(this.emit(h._type,h._message),h._type===Ur.ON_NOTIFICATION&&this.handleNotification(h._message),h._type===Ur.ON_USER_BANNED&&this.handleUserBanned(h._message)))}),this.clientId=s.clientId,this.spec=s,this.store=c,this.websocket=new gne("gateway-".concat(this.clientId),this.spec.retryConfig,!0,c),this.handleWebsocketEvents(),window.addEventListener("offline",()=>{this.connectionState===Ci.CONNECTED&&this.reconnect("retry",Hd.OFFLINE)})}async request(s,c,u,h){const _=un(6,""),B={_id:_,_type:s,_message:c},Q=this.websocket.connectionID,T=()=>new Ut(($,Z)=>{if(this.connectionState===Ci.CONNECTED)return $();const te=()=>{this.off(er.WS_CLOSED,se),$()},se=()=>{this.off(er.WS_CONNECTED,te),Z(new qe(Ce.WS_ABORT))};this.once(er.WS_CONNECTED,te),this.once(er.WS_CLOSED,se),s!==ur.PUBLISH&&s!==ur.SUBSCRIBE&&s!==ur.UNSUBSCRIBE&&s!==ur.UNPUBLISH&&s!==ur.CONTROL&&s!==ur.RESTART_ICE||this.once(er.DISCONNECT_P2P,()=>{Z(new qe(Ce.DISCONNECT_P2P))}),s!==ur.PUBLISH&&s!==ur.RESTART_ICE||this.once(er.ABORT_P2P_EXECUTION,()=>{Z(new qe(Ce.DISCONNECT_P2P))})});if(this.connectionState!==Ci.CONNECTING&&this.connectionState!==Ci.RECONNECTING||s===ur.JOIN||s===ur.REJOIN||await T(),s===ur.LEAVE&&(this.websocket.unbindDcCloseEventListener(),h=!0),de("DC_DEBUG_LOG")&&J.debug("[datachannel-signal] sendMessage",B),await this.websocket.sendMessage(B,!0,!1),h)return;const D=new Ut(($,Z)=>{let te=!1;const se=(me,Qe)=>{te=!0,$({isSuccess:me==="success",message:Qe||{}}),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.emit(er.REQUEST_SUCCESS,s,c)};this.once("res-@".concat(_),se);const ge=()=>{Z(new qe(Ce.WS_ABORT,"type: ".concat(s))),this.off(er.WS_CLOSED,ge),this.off(er.WS_RECONNECTING,ge),this.off("res-@".concat(_),se)};this.once(er.WS_CLOSED,ge),this.once(er.WS_RECONNECTING,ge),so(de("SIGNAL_REQUEST_TIMEOUT")).then(()=>{this.websocket.connectionID!==Q||te||(J.warning("dc request timeout, type: ".concat(s)),this.emit(er.REQUEST_TIMEOUT,s,c))})});let O=null;try{O=await D}catch($){if(this.connectionState===Ci.CLOSED||s===ur.LEAVE)throw new qe(Ce.WS_ABORT);return!this.spec.forceWaitGatewayResponse||u?$.throw():s===ur.JOIN||s===ur.REJOIN?null:(await T(),await this.request(s,c))}if(O.isSuccess)return O.message;const P=Number(O.message.error_code||O.message.code),U=m1(P),H=new qe(Ce.UNEXPECTED_RESPONSE,"".concat(U.desc,": ").concat(O.message.error_str),{code:P,data:O.message});return U.action==="success"?O.message:(J.warning("[".concat(this.websocket.connectionID,"] unexpected response from type ").concat(s,", error_code: ").concat(P,", message: ").concat(U.desc,", action: ").concat(U.action)),P===Br.ERR_TOO_MANY_BROADCASTERS?((s===ur.JOIN||s===ur.REJOIN)&&(this.initError=H,this.close()),H.throw()):U.action==="failed"?H.throw():U.action==="quit"?(this.initError=H,this.close(),H.throw()):(P===Br.ERR_JOIN_BY_MULTI_IP?(this.multiIpOption=O.message.option,J.warning("[".concat(this.clientId,"] detect multi ip, recover")),this.reconnect("recover",Hd.MULTI_IP)):this.reconnect(U.action,Hd.SERVER_ERROR),s===ur.JOIN||s===ur.REJOIN?null:await this.request(s,c)))}waitMessage(s,c){return new Ut(u=>{const h=_=>{(!c||c(_))&&(this.off(s,h),u(_))};this.on(s,h)})}uploadWRTCStats(s){if(!this.store.sessionId)return void J.warn("[".concat(this.clientId,"] no session id when upload wrtc stats"));const c={lts:Date.now(),sid:this.store.sessionId,uid:this.store.intUid,stats:s};this.upload(Mu.WRTC_STATS,c)}upload(s,c){const u={_type:s,_message:c};try{this.websocket.sendMessage(u)}catch{const _=de("MAX_UPLOAD_CACHE")||50;this.uploadCache.push(u),this.uploadCache.length>_&&this.uploadCache.splice(0,1),this.uploadCache.length>0&&!this.uploadCacheInterval&&(this.uploadCacheInterval=window.setInterval(()=>{if(this.connectionState!==Ci.CONNECTED)return;const B=this.uploadCache.splice(0,1)[0];this.uploadCache.length===0&&(window.clearInterval(this.uploadCacheInterval),this.uploadCacheInterval=void 0),this.upload(B._type,B._message)},de("UPLOAD_CACHE_INTERVAL")||2e3))}}async send(s,c){const u={_type:s,_message:c};await this.websocket.sendMessage(u)}init(s){return this.initError=void 0,this.multiIpOption=void 0,this.joinResponse=void 0,this.reconnectToken=void 0,this.openConnectionTime=void 0,new Ut((c,u)=>{this.once(er.WS_CONNECTED,()=>c(this.joinResponse)),this.once(er.WS_CLOSED,()=>u(this.initError||new qe(Ce.WS_ABORT))),this.connectionState=Ci.CONNECTING,this.websocket.init(s).catch(u),this.websocket.once(fs.FAILBACK,()=>{u(new qe(Ce.INIT_DATACHANNEL_TIMEOUT))}),this.inflateDataTimer&&window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=window.setInterval(()=>{this.handleInflateData()},2e4),setTimeout(()=>{this.openConnectionTime===void 0&&(J.debug("[".concat(this.clientId,"] init datachannel timeout while join with failback to websocket")),u(new qe(Ce.INIT_DATACHANNEL_TIMEOUT)))},de("DC_JOIN_WITH_FAILBACK"))})}close(s){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.inflateDataTimer&&(this.handleInflateData(),window.clearInterval(this.inflateDataTimer),this.inflateDataTimer=void 0),this.reconnectToken=void 0,this.joinResponse=void 0,this.isJoining=!1,this.pendingNotifications=[],this._disconnectedReason=s||mi.LEAVE,this.connectionState=Ci.CLOSED,J.debug("[".concat(this.clientId,"] ")+"will close datachannel in signal"),this.websocket.close(),s===mi.FALLBACK&&(this.websocket.removeAllListeners(),this.websocket=new gne("gateway-".concat(this.clientId),this.spec.retryConfig,!0,this.store),this.handleWebsocketEvents())}async join(){if(this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),de("DC_PINGPONG_INTERVAL")),!this.joinResponse){this.emit(er.ABORT_P2P_EXECUTION),this.store.signalConnected();const s=await $o(this,er.REQUEST_JOIN_INFO);this.store.joinReq();let c=await $o(this,er.REQUEST_JOIN_INFO_WITH_PRE_JOIN_RESPONSE);if(this.isJoining=!0,this.pendingNotifications=[],c){J.debug("join response from pre join response");const u=await this.request(ur.JOIN,s);u&&"ortc"in u&&(c=u)}else J.debug("join response from request join_v3"),c=await this.request(ur.JOIN,s);if(this.store.joinRep(),this.ortc=s==null?void 0:s.ortc,!c)return this.emit(er.REPORT_JOIN_GATEWAY,Ce.TIMEOUT,this.url||""),!1;this.joinResponse=c,this.emit(er.JOIN_RESPONSE,this.joinResponse),this.reconnectToken=this.joinResponse.rejoin_token}return this.connectionState=Ci.CONNECTED,this.isJoining=!1,this.processPendingNotifications(),!0}async rejoin(){if(!this.reconnectToken)throw new qe(Ce.UNEXPECTED_ERROR,"can not rejoin, no rejoin token");const s=nh(this,er.REQUEST_REJOIN_INFO);s.token=this.reconnectToken;const c=await this.request(ur.REJOIN,s);return!!c&&(this.connectionState=Ci.CONNECTED,this.pingpongTimer&&window.clearInterval(this.pingpongTimer),this.pingpongTimer=window.setInterval(this.handlePingPong.bind(this),de("DC_PINGPONG_INTERVAL")),c.peers&&c.peers.forEach(u=>{this.emit(Ur.ON_USER_ONLINE,{uid:u.uid}),u.audio&&this.emit(Ur.ON_ADD_AUDIO_STREAM,{uid:u.uid,uint_id:u.uint_id,audio:!0,ssrcId:u.audio_ssrc}),u.video&&this.emit(Ur.ON_ADD_VIDEO_STREAM,{uid:u.uid,uint_id:u.uint_id,video:!0,ssrcId:u.video_ssrc}),u.audio_mute?this.emit(Ur.MUTE_AUDIO,{uid:u.uid}):this.emit(Ur.UNMUTE_AUDIO,{uid:u.uid}),u.video_mute?this.emit(Ur.MUTE_VIDEO,{uid:u.uid}):this.emit(Ur.UNMUTE_VIDEO,{uid:u.uid}),u.audio_enable_local?this.emit(Ur.ENABLE_LOCAL_AUDIO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_AUDIO,{uid:u.uid}),u.video_enable_local?this.emit(Ur.ENABLE_LOCAL_VIDEO,{uid:u.uid}):this.emit(Ur.DISABLE_LOCAL_VIDEO,{uid:u.uid}),u.audio||u.video||this.emit(Ur.ON_REMOVE_STREAM,{uid:u.uid,uint_id:u.uint_id})}),!0)}reconnect(s,c){this.pingpongTimer&&(this.pingpongTimeoutCount=0,window.clearInterval(this.pingpongTimer),this.pingpongTimer=void 0),this.websocket.reconnect(s,c)}async downgradeCodec(s){if(!this.ortc)return!1;const c={downgrade_codec:s,ortc:this.ortc};return!!await this.request(ur.DOWNGRADE_CODEC,c)}handleNotification(s){J.debug("[".concat(this.clientId,"] receive notification: "),s);const c=m1(s.code);if(c.action!=="success"){if(c.action!=="failed")return c.action==="quit"?(c.desc==="ERR_REPEAT_JOIN_CHANNEL"&&this.close(mi.UID_BANNED),void this.close()):void this.reconnect(c.action,Hd.SERVER_ERROR);J.error("[".concat(this.clientId,"] ignore error: "),c.desc)}}handlePingPong(){if(!this.websocket||this.websocket.state!=="connected")return;this.pingpongTimeoutCount>0&&this.rttRolling.add(3e3),this.pingpongTimeoutCount+=1,de("DC_DEBUG_LOG")&&console.debug("[datachannel-signal] pingpongTimeoutCount: ".concat(this.pingpongTimeoutCount));const s=de("PING_PONG_TIME_OUT"),c=Date.now();this.pingpongTimeoutCount>=s&&(J.warning("[datachannel-signal] PINGPONG Timeout. Last Socket Message: ".concat(c-this.lastMsgTime,"ms")),c-this.lastMsgTime>de("WEBSOCKET_TIMEOUT_MIN"))?this.reconnect("recover",Hd.FALLBACK):this.request(ur.PING,void 0,!0).then(()=>{this.pingpongTimeoutCount=0;const u=Date.now()-c;this.rttRolling.add(u),de("REPORT_STATS")&&this.send(ur.PING_BACK,{pingpongElapse:u})}).catch(u=>{})}handleInflateData(){const s=this.websocket.getInflateData(),c=s.inflateLength,u=s.deflateLength;c!==0&&u!==0&&this.upload(Mu.WS_INFLATE_DATA_LENGTH,{ws_deflate_length:u,ws_inflate_length:c})}handleWebsocketEvents(){this.websocket.on(fs.RECONNECT_CREATE_CONNECTION,s=>{this.emit(er.WS_RECONNECT_CREATE_CONNECTION,s)}),this.websocket.on(fs.ON_MESSAGE,this.onWebsocketMessage),this.websocket.on(fs.CLOSED,()=>{this.connectionState=Ci.CLOSED}),this.websocket.on(fs.FAILED,()=>{this._disconnectedReason=mi.NETWORK_ERROR,this.connectionState=Ci.CLOSED}),this.websocket.on(fs.RECONNECTING,s=>{this._websocketReconnectReason=s,this.joinResponse=void 0,this.connectionState===Ci.CONNECTED?this.connectionState=Ci.RECONNECTING:this.connectionState=Ci.CONNECTING}),this.websocket.on(fs.WILL_RECONNECT,(s,c)=>{if(nh(this,er.IS_P2P_DISCONNECTED)&&s==="retry")return J.debug("".concat(this.clientId," reconnect mode is retry, but p2p lost, change to tryNext")),this.reconnectToken=void 0,this.emit(er.NEED_RENEW_SESSION),this.emit(er.DISCONNECT_P2P),c("tryNext");s!=="retry"&&(J.debug("".concat(this.clientId," websockt will_connect event, renewSession reconnectMode is ").concat(s)),this.reconnectToken=void 0,this.emit(er.NEED_RENEW_SESSION),this.emit(er.DISCONNECT_P2P)),c(s)}),this.websocket.on(fs.CONNECTED,()=>{this.openConnectionTime=Date.now(),this.reconnectToken?this.rejoin().catch(s=>{J.warning("[".concat(this.clientId,"] rejoin failed ").concat(s)),this.reconnect("tryNext",Hd.SERVER_ERROR)}):this.join().catch(s=>{if(this.emit(er.REPORT_JOIN_GATEWAY,s.message||s.code,this.url||""),s instanceof qe&&s.code===Ce.UNEXPECTED_RESPONSE&&s.data.code===Br.ERR_NO_AUTHORIZED)return J.warning("[".concat(this.clientId,"] reconnect no authorized, recover")),void this.reconnect("recover",Hd.SERVER_ERROR);J.error("[".concat(this.clientId,"] join gateway request failed"),s.toString()),this.spec.forceWaitGatewayResponse?this.reconnect("tryNext",Hd.SERVER_ERROR):(this.initError=s,this.close())})}),this.websocket.on(fs.REQUEST_NEW_URLS,(s,c)=>{$o(this,er.REQUEST_RECOVER,this.multiIpOption).then(s).catch(c)}),this.websocket.on(fs.ON_TOKEN_PRIVILEGE_DID_EXPIRE,()=>{this.emit(Ur.ON_TOKEN_PRIVILEGE_DID_EXPIRE)}),this.websocket.on(fs.TO_CONNECT_DATACHANNEL,(s,c)=>{$o(this,er.PRE_CONNECT_PC).then(s).catch(c)}),this.websocket.on(fs.FAILBACK,()=>{this.openConnectionTime!==void 0&&this.emit(er.DATACHANNEL_FAILBACK)})}}const Ule={name:"DataChannelConnection",create:function(t){let s=t.store,c=t.spec;return new Lle(c,s)}},xle={name:"DataChannelSignal",create:function(t){let s=t.store,c=t.spec;return new Ple(c,s)}};I2(),Dn("PROCESS_ID","process-".concat(un(8,""),"-").concat(un(4,""),"-").concat(un(4,""),"-").concat(un(4,""),"-").concat(un(12,""))),function(){let t;try{t=window.localStorage.getItem("websdk_ng_global_parameter")}catch(s){return void J.error("Error loading sdk config",s.message)}if(t)try{const s=JSON.parse(window.atob(t)),c=Date.now();J.debug("Loading global parameters from cache",s),Object.keys(s).forEach(u=>{if(Object.prototype.hasOwnProperty.call(Vi,u)){const h=s[u],_=h.value,B=h.expires;if(B&&B<=c)return;$e[u]=_,Vi[u]=_}})}catch(s){J.error("Error loading mutableParamsCache: ".concat(t),s.message)}}(),Array.isArray($e.AREAS)&&$e.AREAS.length>0&&WX($e.AREAS,!0);const Ene=(t,s,c)=>{J.debug("setParameter key:".concat(t,", value:").concat(JSON.stringify(s))),Dn(t,s,c)};jh(tle,!1),jh(nle,!1),jh(jce,!1),jh(hle,!1),jh($ce,!1),jh(Tle,!1),jh(Dle,!1),jh(Nle,!1),jh(Ule,!1),jh(xle,!1);const Ws=function(t){const s=new Cn,c=t,u={getListeners:s.getListeners.bind(s),on:(h,_)=>(function(B,Q){B===iA.SECURITY_POLICY_VIOLATION&&bie(Q,!0)}(h,_),s.on.bind(s)(h,_)),addListener:s.addListener.bind(s),once:s.once.bind(s),off:s.off.bind(s),removeAllListeners:s.removeAllListeners.bind(s),emit:s.emit.bind(s),safeEmit:s.safeEmit.bind(s)};return Die(Die({},c),u)}({__TRACK_LIST__:lh,VERSION:W1,BUILD:Ng,ESM_BUNDLER:!1,ESM:!1,UMD:!0,DEV:!1,setParameter:Ene,getParameter:de,getSupportedCodec:async function(){let t={audio:[],video:[]};try{let s=new RTCPeerConnection;const c=await async function(u){let h;return Si().supportUnifiedPlan?(u.addTransceiver("video",{direction:"recvonly"}),u.addTransceiver("audio",{direction:"recvonly"}),h=(await u.createOffer()).sdp):h=(await u.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0})).sdp,h}(s);if(!c)return t;s.close(),s=null,t=function(u){const h={video:[],audio:[]};return u.match(/ VP8/i)&&h.video.push("VP8"),u.match(/ VP9/i)&&h.video.push("VP9"),u.match(/ AV1/i)&&h.video.push("AV1"),u.match(/ H264/i)&&h.video.push("H264"),u.match(/ H265/i)&&h.video.push("H265"),u.match(/ opus/i)&&h.audio.push("OPUS"),u.match(/ PCMU/i)&&h.audio.push("PCMU"),u.match(/ PCMA/i)&&h.audio.push("PCMA"),u.match(/ G722/i)&&h.audio.push("G722"),h}(c)}catch(s){throw new qe(Ce.CREATE_OFFER_FAILED,s.toString&&s.toString()).print()}return t},checkSystemRequirements:function(){let t=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];const s=qt.reportApiInvoke(null,{name:Ti.CHECK_SYSTEM_REQUIREMENTS,options:[],tag:vn.TRACER}),c=function(){let _=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],B=!1;try{const Q=window.RTCPeerConnection,T=navigator.mediaDevices&&navigator.mediaDevices.getUserMedia,D=window.WebSocket;B=!(!Q||!D),_&&!T&&(B=!1),B&&c2()&&e4(75)&&new Q().close()}catch(Q){J.error("check system requirement failed: ",Q),B=!1}return B}(t),u=qce();J.debug("checkSystemRequirements, api:",c,"browser",u);const h=c&&u;return s.onSuccess(h),de("IGNORE_RTC_DEVICE_CHECK")?c:h},getDevices:function(t){return rc.enumerateDevices(!0,!0,t)},getMicrophones:function(t){return rc.getRecordingDevices(t)},getCameras:function(t){return rc.getCamerasDevices(t)},getElectronScreenSources:Y4,getPlaybackDevices:function(t){return rc.getSpeakers(t)},createClient:Tie,createCameraVideoTrack:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const s=de("CAMERA_CAPTURE_CONFIG"),c=un(8,"track-cam-"),u=qt.reportApiInvoke(null,{id:c,tag:vn.TRACER,name:Ti.CREATE_CAM_VIDEO_TRACK,options:[Xn({},t),s]});s&&(t.encoderConfig=s);const h=Og(t);let _=null;J.info("start create camera video track with config",JSON.stringify(t),"trackId",c);try{_=(await Pi({video:h},c)).getVideoTracks()[0]||null}catch(Q){throw u.onError(Q),Q}if(!_){const Q=new tt(Ce.UNEXPECTED_ERROR,"can not find track in media stream");return u.onError(Q),Q.throw(J)}if(t.optimizationMode&&qr(c,_,t,El(t.encoderConfig)),de("USE_STANDARD_BITRATE_DEFAULT")){const Q=El(t.encoderConfig);t.encoderConfig=Q,delete Q.bitrateMax,delete Q.bitrateMin}const B=new Or(_,t,h,t.scalabiltyMode?Vf(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,c);return u.onSuccess(B.getTrackId()),J.info("create camera video success, trackId:",c),B},createCustomVideoTrack:function(t){const s=un(8,"track-cus-"),c=qt.reportApiInvoke(null,{id:s,tag:vn.TRACER,name:Ti.CREATE_CUSTOM_VIDEO_TRACK,options:[t]});de("USE_STANDARD_BITRATE_DEFAULT")&&(delete t.bitrateMax,delete t.bitrateMin);const u=new pn(t.mediaStreamTrack,{width:t.width,height:t.height,frameRate:t.frameRate,bitrateMax:t.bitrateMax,bitrateMin:t.bitrateMin,minDownscaleWidth:t.minDownscaleWidth,minDownscaleHeight:t.minDownscaleHeight},t.scalabiltyMode?Vf(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,s,[gn.CUSTOM_TRACK]);return c.onSuccess(u.getTrackId()),J.info("create custom video track success with config",t,"trackId",u.getTrackId()),u},createScreenVideoTrack:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"disable";const c=typeof s=="object"?function(U){const H=f1(U);return L4()&&U.suppressLocalAudioPlayback&&(H.suppressLocalAudioPlayback=U.suppressLocalAudioPlayback),M4()&&U.restrictOwnAudio&&(H.restrictOwnAudio=!0),H}(s):void 0;c&&(s="auto");const u=un(8,"track-scr-v-"),h=qt.reportApiInvoke(null,{id:u,tag:vn.TRACER,name:Ti.CREATE_SCREEN_VIDEO_TRACK,options:[Xn({},t),s]});t.encoderConfig?typeof t.encoderConfig=="string"||t.encoderConfig.width&&t.encoderConfig.height||(t.encoderConfig.width={max:1920},t.encoderConfig.height={max:1080}):t.encoderConfig="1080p_2";const _=function(U){const H={};U.screenSourceType&&(H.mediaSource=U.screenSourceType),U.extensionId&&DA()&&(H.extensionId=U.extensionId);const $=U.displaySurface,Z=U.selfBrowserSurface,te=U.surfaceSwitching,se=U.systemAudio,ge=U.preferCurrentTab,me=U.windowAudio,Qe=U.monitorTypeSurfaces;(al(107)||wu(107)||A2(93))&&($&&(As($,"displaySurface",["browser","window","monitor"]),H.displaySurface=$),Z?(As(Z,"selfBrowserSurface",["exclude","include"]),H.selfBrowserSurface=Z):H.selfBrowserSurface="include",te&&(As(te,"surfaceSwitching",["exclude","include"]),H.surfaceSwitching=te)),(al(105)||wu(105)||A2(91))&&se&&(As(se,"systemAudio",["exclude","include"]),H.systemAudio=se),(al(94)||wu(94)||A2(80))&&ge&&(H.preferCurrentTab=!0),(al(141)||wu(141)||A2(125))&&me&&(As(me,"windowAudio",["exclude","system"]),H.windowAudio=me),(al(119)||wu(119)||A2(105))&&Qe&&(As(Qe,"monitorTypeSurfaces",["exclude","include"]),H.monitorTypeSurfaces=Qe),U.electronScreenSourceId&&(H.sourceId=U.electronScreenSourceId);const Oe=U.encoderConfig?ny(U.encoderConfig):null;return H.mandatory={chromeMediaSource:"desktop",maxWidth:Oe?Oe.width:void 0,maxHeight:Oe?Oe.height:void 0},Oe&&(Oe.frameRate&&(typeof Oe.frameRate=="number"?(H.mandatory.maxFrameRate=Oe.frameRate,H.mandatory.minFrameRate=Oe.frameRate):(H.mandatory.maxFrameRate=Oe.frameRate.max||Oe.frameRate.ideal||Oe.frameRate.exact||void 0,H.mandatory.minFrameRate=Oe.frameRate.min||Oe.frameRate.ideal||Oe.frameRate.exact||void 0),H.frameRate=Oe.frameRate),Oe.width&&(H.width=Oe.width),Oe.height&&(H.height=Oe.height)),H}(t);let B=null,Q=null;const T=Si();if(!T.supportShareAudio&&s==="enable"){const U=new tt(Ce.NOT_SUPPORTED,"your browser or platform is not support share-screen with audio");return h.onError(U),U.throw(J)}J.info("start create screen video track with config",t,"withAudio",s,"trackId",u);const D=T.supportShareAudio&&s!=="disable";try{const U=await Pi({screen:_,screenAudio:D?c||!0:void 0},u);B=U.getVideoTracks()[0]||null,Q=U.getAudioTracks()[0]||null}catch(U){throw h.onError(U),U}if(!B){const U=new tt(Ce.UNEXPECTED_ERROR,"can not find track in media stream");return h.onError(U),U.throw(J)}if(!Q&&s==="enable"){B&&B.stop();const U=new tt(Ce.SHARE_AUDIO_NOT_ALLOWED);return h.onError(U),U.throw(J)}t.optimizationMode||(t.optimizationMode="detail"),t.optimizationMode&&(qr(u,B,t,t.encoderConfig&&ny(t.encoderConfig)||void 0),t.encoderConfig&&typeof t.encoderConfig!="string"&&(t.encoderConfig.bitrateMin=t.encoderConfig.bitrateMax));const O=new pn(B,t.encoderConfig?ny(t.encoderConfig):{},t.scalabiltyMode?Vf(t.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},t.optimizationMode,u,[gn.SCREEN_TRACK]);if(!Q)return h.onSuccess(O.getTrackId()),J.info("create screen video track success","video:",O.getTrackId()),O;const P=new po(Q,void 0,un(8,"track-scr-a-"),!1);return h.onSuccess([O.getTrackId(),P.getTrackId()]),J.info("create screen video track success","video:",O.getTrackId(),"audio:",P.getTrackId()),[O,P]},createMicrophoneAndCameraTracks:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const c=de("CAMERA_CAPTURE_CONFIG"),u=un(8,"track-mic-"),h=un(8,"track-cam-"),_=qt.reportApiInvoke(null,{id:"".concat(u,"-").concat(h),tag:vn.TRACER,name:Ti.CREATE_MIC_AND_CAM_TRACKS,options:[t,s,c]});c&&(s.encoderConfig=c);const B=Og(s),Q=$4(t);let T=null,D=null;J.info("start create camera video track(".concat(h,") and microphone audio track(").concat(u,") with config, audio: ").concat(JSON.stringify(t),", video: ").concat(JSON.stringify(s)));try{const U=await Pi({audio:Q,video:B},"".concat(u,"-").concat(h));T=U.getAudioTracks()[0],D=U.getVideoTracks()[0]}catch(U){throw _.onError(U),U}if(!T||!D){const U=new tt(Ce.UNEXPECTED_ERROR,"can not find tracks in media stream");return _.onError(U),U.throw(J)}if(s.optimizationMode&&qr(h,D,s,El(s.encoderConfig)),de("USE_STANDARD_BITRATE_DEFAULT")){const U=El(s.encoderConfig);s.encoderConfig=U,delete U.bitrateMax,delete U.bitrateMin}const O=new xd(T,t,Q,u),P=new Or(D,s,B,s.scalabiltyMode?Vf(s.scalabiltyMode):{numSpatialLayers:1,numTemporalLayers:1},s.optimizationMode,h);return _.onSuccess([O.getTrackId(),P.getTrackId()]),J.info("create camera video track(".concat(h,") and microphone audio track(").concat(u,") success")),[O,P]},createMicrophoneAudioTrack:async function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const s=un(8,"track-mic-"),c=qt.reportApiInvoke(null,{id:s,tag:vn.TRACER,name:Ti.CREATE_MIC_AUDIO_TRACK,options:[t]}),u=$4(t);let h=null;J.info("start create microphone audio track with config",JSON.stringify(t),"trackId",s);try{h=(await Pi({audio:u},s)).getAudioTracks()[0]||null}catch(B){throw c.onError(B),B}if(!h){const B=new tt(Ce.UNEXPECTED_ERROR,"can not find track in media stream");return c.onError(B),B.throw(J)}const _=new xd(h,t,u,s);return c.onSuccess(_.getTrackId()),J.info("create microphone audio track success, trackId:",s),_},createCustomAudioTrack:uA,createBufferSourceAudioTrack:async function(t){var s;const c=t.cacheOnlineFile,u=t.encoderConfig;let h=t.source;const _={source:h instanceof AudioBuffer?"AudioBuffer":h instanceof File?(s=File.name)!==null&&s!==void 0?s:"File":h,cacheOnlineFile:c,encoderConfig:u},B=un(8,"track-buf-"),Q=qt.reportApiInvoke(null,{id:B,tag:vn.TRACER,name:Ti.CREATE_BUFFER_AUDIO_TRACK,options:[_]});if(de("DISABLE_WEBAUDIO"))throw new tt(Ce.NOT_SUPPORTED,"can not create BufferSourceAudioTrack when WebAudio disabled");J.info("start create buffer source audio track with config",JSON.stringify(_),"trackId",B);const T=h;if(!(h instanceof AudioBuffer))try{h=await async function(P,U){let H=null;if(typeof P=="string"){const Z=QU.get(P);if(Z)return J.debug("use cached audio resource: ",P),Z;try{H=(await dl(()=>on.get(P,{responseType:"arraybuffer"}),void 0,void 0,{maxRetryCount:3})).data}catch(te){throw new tt(Ce.FETCH_AUDIO_FILE_FAILED,te.toString())}}else H=await new Ut((te,se)=>{const ge=new FileReader;ge.onload=me=>{me.target?te(me.target.result):se(new tt(Ce.READ_LOCAL_AUDIO_FILE_ERROR))},ge.onerror=()=>{se(new tt(Ce.READ_LOCAL_AUDIO_FILE_ERROR))},ge.readAsArrayBuffer(P)});const $=await function(Z){const te=w2();return new Ut((se,ge)=>{te.decodeAudioData(Z,me=>{se(me)},me=>{ge(new tt(Ce.DECODE_AUDIO_FILE_FAILED,me.toString()))})})}(H);return typeof P=="string"&&U&&QU.set(P,$),$}(h,c)}catch(P){return Q.onError(P),P.throw(J)}const D=new yU(h),O=new cN(T,D,u?Kf(u):{},B);return J.info("create buffer source audio track success, trackId:",B),Q.onSuccess(O.getTrackId()),O},setAppType:function(t){if(J.debug("setAppType: ".concat(t)),!(Number.isInteger(t)&&t>=0))throw J.debug("Invalid appType"),new qe(Ce.INVALID_PARAMS,"invalid app type",t);Dn("APP_TYPE",Math.floor(t))},setLogLevel:function(t){J.setLogLevel(t)},enableLogUpload:function(){de("USE_NEW_LOG")?Dn("UPLOAD_LOG",!0):J.enableLogUpload()},disableLogUpload:function(){de("USE_NEW_LOG")?Dn("UPLOAD_LOG",!1):J.disableLogUpload()},createChannelMediaRelayConfiguration:function(){return new Pte},checkAudioTrackIsActive:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const c=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.CHECK_AUDIO_TRACK_IS_ACTIVE,options:[s]});if(!(t instanceof po||t instanceof an)){const T=new qe(Ce.INVALID_TRACK,"the parameter is not a audio track");return c.onError(T),T.throw()}s&&s<1e3&&(s=1e3);const u=t instanceof po?t.getTrackLabel():"remote_track",h=t.getVolumeLevel();let _=h,B=h;const Q=Date.now();return new Ut(T=>{const D=setInterval(()=>{const O=t.getVolumeLevel();_=O>_?O:_,B=O1e-4,U=Date.now()-Q;if(P||U>s){clearInterval(D);const H=P,$={duration:U,deviceLabel:u,maxVolumeLevel:_,result:H};J.info("[track-".concat(t.getTrackId(),"] check audio track active completed. ").concat(JSON.stringify($))),c.onSuccess($),T(H)}},200)})},checkVideoTrackIsActive:async function(t){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5e3;const c=qt.reportApiInvoke(null,{tag:vn.TRACER,name:Ti.CHECK_VIDEO_TRACK_IS_ACTIVE,options:[s]});if(!(t instanceof pn||t instanceof Fd)){const P=new qe(Ce.INVALID_TRACK,"the parameter is not a video track");return c.onError(P),P.throw()}s&&s<1e3&&(s=1e3);const u=t instanceof pn?t.getTrackLabel():"remote_track",h=t.getMediaStreamTrack(!0),_=document.createElement("video");_.style.width="1px",_.style.height="1px",_.setAttribute("muted",""),_.muted=!0,_.setAttribute("playsinline",""),_.controls=!1,(Zs()||Qf())&&(_.style.opacity="0.01",_.style.position="fixed",_.style.left="0",_.style.top="0",document.body.appendChild(_)),_.srcObject=new MediaStream([h]),_.play();const B=document.createElement("canvas");B.width=160,B.height=120;let Q=0,T=0;try{const P=Date.now();Q=await function(U,H,$,Z){let te,se=0,ge=null;return new Ut((me,Qe)=>{function Oe(){se>Z&&te&&(te(),me(se));const we=$.getContext("2d");if(!we){const st=new qe(Ce.UNEXPECTED_ERROR,"can not get canvas 2d context.");return J.error(st.toString()),void Qe(st)}we.drawImage(U,0,0,160,120);const Ne=we.getImageData(0,0,$.width,$.height),et=Math.floor(Ne.data.length/3);if(ge){for(let st=0;st{te&&(te(),me(se))},H),te=hi(()=>{Oe()},30)})}(_,s,B,4),T=Date.now()-P}catch(P){throw c.onError(P),P}Nce===Fi.SAFARI&&(_.pause(),_.remove()),_.srcObject=null;const D=Q>4,O={duration:T,changedPicNum:Q,deviceLabel:u,result:D};return J.info("[track-".concat(t.getTrackId(),"] check video track active completed. ").concat(JSON.stringify(O))),c.onSuccess(O),D},setArea:WX,audioElementPlayCenter:rA,resumeAudioContext:function(){return rA.autoResumeAfterInterruption(!0)},processExternalMediaAEC:function(t){Xce.processExternalMediaAEC(t)},registerExtensions:function(t){const s=de("PLUGIN_INFO")||[];t.forEach(c=>{"name"in c&&!Et(s).call(s,c.name)&&s.push(c.name);const u=c;u.__registered__=!0,u.logger.hookLog=J.extLog,u.reporter.hookApiInvoke=qt.extApiInvoke,u.parameters&&Object.keys(u.parameters).forEach(h=>{u.parameters[h]=de(h)})}),Ene("PLUGIN_INFO",s)},ChannelMediaRelayError:t1,ChannelMediaRelayEvent:Kd,ChannelMediaRelayState:e1,RemoteStreamFallbackType:YJ,RemoteStreamType:Os,ConnectionDisconnectedReason:mi,AudienceLatencyLevelType:o4,AREAS:gi,preload:async function(t,s,c,u){return fz(t,s,c,u)},startLastmileProbeTest:async function(t,s,c,u){let h={state:"unavailable"};await fz(t,s,c,u);const _=await _z({appId:t,cname:s,token:c||t,uid:u,cloudProxyServer:"disabled"});if(!_)return h;await mz(_);const B=Tie({mode:"rtc",codec:"vp8"});let Q;try{Q=await B.join(t,s,c,u,{networkQualityProbe:!0})}catch{return h}const T=new kce,D=T.createMuteAudioTrack(),O=await uA({mediaStreamTrack:D});await B.publish([O]);const P=ir(await new Ut((Qe,Oe)=>{const we=setTimeout(()=>{clearTimeout(we),Qe([!0,null,"audio"])},5e3);B.on("user-published",async(Ne,et)=>{Ne.uid===Q&&(clearTimeout(we),Qe([!1,Ne,et]))})}),3),U=P[0],H=P[1],$=P[2];if(U||!H)return await B.unpublish([O]),await B.leave(),O.close(),T.close(),h;await B.subscribe(H,$),await new Ut((Qe,Oe)=>{const we=setTimeout(()=>{clearTimeout(we),Qe(null)},5e3)});const Z=B.getRTCStats(),te=B.getLocalAudioStats(),se=Z.RTT,ge=te.sendJitterMs,me=te.currentPacketLossRate;return h={state:"complete",rtt:se,packetLossRate:me,jitter:ge,networkQuality:((Qe,Oe,we)=>{let Ne=1;if(we>0){let ft=Math.log(100*we)/Math.log(2)+1;ft=Math.min(5,Math.max(0,ft)),Ne=1-ft/5}let et=1;if(Qe>0){let ft=Math.log(Qe/40)/Math.log(2)+1;ft=Math.min(5,Math.max(0,ft)),et=1-ft/5}let st=1;if(Oe>0){let ft=Math.log(Oe/10)/Math.log(2.5)+1;ft=Math.min(5,Math.max(0,ft)),st=1-ft/5}const Xt=.5*Ne+.3*et+.2*st;let lr=0;return lr=Xt>=.8?1:Xt>=.6?2:Xt>=.4?3:Xt>=.2?4:5,lr})(se,ge,me)},await B.unsubscribe(H),await B.unpublish([O]),await B.leave(),O.close(),T.close(),await mz(_),h}});return Object.defineProperties(Ws,{onAudioAutoplayFailed:{get:()=>bA.onAudioAutoplayFailed,set:t=>{bA.onAudioAutoplayFailed=t}},onAutoplayFailed:{get:()=>bA.onAutoplayFailed,set:t=>{bA.onAutoplayFailed=t}},_onSecurityPolicyViolation:{value:void 0,writable:!0},_cspEventHandlerPointer:{value:void 0,writable:!0},onSecurityPolicyViolation:{get:()=>Ws._onSecurityPolicyViolation,set(t){Ws._onSecurityPolicyViolation=t,bie(t)}},__CLIENT_LIST__:{get:()=>de("SHOW_GLOBAL_CLIENT_LIST")?ph:[]}}),rc.on(uh.CAMERA_DEVICE_CHANGED,t=>{J.info("camera device changed",JSON.stringify(t)),Ws.onCameraChanged&&Ws.onCameraChanged(t),Ws.safeEmit(iA.CAMERA_CHANGED,t)}),rc.on(uh.RECORDING_DEVICE_CHANGED,t=>{J.info("microphone device changed",JSON.stringify(t)),Ws.onMicrophoneChanged&&Ws.onMicrophoneChanged(t),Ws.safeEmit(iA.MICROPHONE_CHANGED,t)}),rc.on(uh.PLAYOUT_DEVICE_CHANGED,t=>{J.debug("playout device changed",JSON.stringify(t)),Ws.onPlaybackDeviceChanged&&Ws.onPlaybackDeviceChanged(t),Ws.safeEmit(iA.PLAYBACK_DEVICE_CHANGED,t)}),rA.onAutoplayFailed=()=>{J.info("detect audio element autoplay failed"),bA.onAudioAutoplayFailed&&bA.onAudioAutoplayFailed()},bn.on("autoplay-failed",()=>{J.info("detect webaudio autoplay failed"),bA.onAudioAutoplayFailed&&bA.onAudioAutoplayFailed(),Ws.safeEmit(iA.AUTOPLAY_FAILED)}),bn.on(Yo.STATE_CHANGE,(t,s)=>{J.info("audio context state changed: ".concat(s," => ").concat(t)),Ws.onAudioContextStateChanged&&Ws.onAudioContextStateChanged(t,s),Ws.safeEmit(iA.AUDIO_CONTEXT_STATE_CHANGED,t,s)}),ki.on(E2.NETWORK_STATE_CHANGE,(t,s)=>{J.info("[network-indicator] network state changed, ".concat(s," => ").concat(t))}),window&&(window.__ARTC__=Ws),Ws})}(AgoraRTC_NProduction)),AgoraRTC_NProduction.exports}(function(module,exports){var define_process_env_default={};/*! @preserve - * AgoraRTM Web SDK 2.2.4 - commit: v2.2.4-0-gfd60c918 - fusion: false - * Copyright (C) 2018-2026 Agora Lab. - * This file is licensed under the AGORA, INC. SDK LICENSE AGREEMENT - * A copy of this license may be found at https://www.agora.io/en/sdk-license-agreement/ - */(function(n,e){module.exports=e(requireAgoraRTC_NProduction())})(commonjsGlobal,function(AgoraRTC){let AreaCodeMap=function(n){return n.CHINA="CN",n.ASIA="AS",n.NORTH_AMERICA="NA",n.EUROPE="EU",n.JAPAN="JP",n.INDIA="IN",n.OCEANIA="OC",n.SOUTH_AMERICA="SA",n.AFRICA="AF",n.GLOBAL="GLOBAL",n.OVERSEA="OVERSEA",n.SOUTH_KOREA="KR",n.UNITED_STATES="US",n}({});AreaCodeMap.CHINA,AreaCodeMap.NORTH_AMERICA,AreaCodeMap.EUROPE,AreaCodeMap.ASIA,AreaCodeMap.JAPAN,AreaCodeMap.INDIA,AreaCodeMap.OCEANIA,AreaCodeMap.OVERSEA,AreaCodeMap.SOUTH_AMERICA,AreaCodeMap.AFRICA,AreaCodeMap.SOUTH_KOREA,AreaCodeMap.UNITED_STATES,AreaCodeMap.GLOBAL;const AREA_DOMAIN_MAP$1={[AreaCodeMap.ASIA]:{CODE:AreaCodeMap.ASIA,AP_DOMAINS:["ap-web-1-asia.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-asia.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-asia.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-asia.agora.io"],LOG_UPLOAD_SERVER:["logservice-asia.agora.io"],PROXY_AP:["proxy-ap-web-asia.agora.io"],PROXY_NGINX:["southeast-asia.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.NORTH_AMERICA]:{CODE:AreaCodeMap.NORTH_AMERICA,AP_DOMAINS:["ap-web-1-north-america.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-north-america.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-north-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-north-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-north-america.agora.io"],PROXY_AP:["proxy-ap-web-america.agora.io"],PROXY_NGINX:["east-usa.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.EUROPE]:{CODE:AreaCodeMap.EUROPE,AP_DOMAINS:["ap-web-1-europe.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-europe.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-europe.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-europe.agora.io"],LOG_UPLOAD_SERVER:["logservice-europe.agora.io"],PROXY_AP:["proxy-ap-web-europe.agora.io"],PROXY_NGINX:["europe.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.JAPAN]:{CODE:AreaCodeMap.JAPAN,AP_DOMAINS:["ap-web-1-japan.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-japan.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-japan.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-japan.agora.io"],LOG_UPLOAD_SERVER:["logservice-japan.agora.io"],PROXY_AP:["proxy-ap-web-japan.agora.io"],PROXY_NGINX:["japan.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.INDIA]:{CODE:AreaCodeMap.INDIA,AP_DOMAINS:["ap-web-1-india.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-india.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-india.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-india.agora.io"],LOG_UPLOAD_SERVER:["logservice-india.agora.io"],PROXY_AP:["proxy-ap-web-india.agora.io"],PROXY_NGINX:["india.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.OVERSEA]:{CODE:AreaCodeMap.OVERSEA,AP_DOMAINS:["ap-web-1-oversea.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-oversea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oversea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oversea.agora.io"],LOG_UPLOAD_SERVER:["logservice-oversea.agora.io"],PROXY_AP:["proxy-ap-web-oversea.agora.io"],PROXY_NGINX:["webrtc-cloud-proxy.agora.io"]},[AreaCodeMap.GLOBAL]:{CODE:AreaCodeMap.GLOBAL,AP_DOMAINS:["ap-web-1.agora.io","ap-web-2.agora.io"],AP_BACKUP_DOMAINS:["ap-web-3.agora.io","ap-web-4.agora.io"],EVENT_REPORT_DOMAIN:["webcollector-rtm.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["webcollector-1.agora.io"],LOG_UPLOAD_SERVER:["logservice-rtm.agora.io"],PROXY_AP:["ap-proxy-1.agora.io","ap-proxy-2.agora.io"],PROXY_NGINX:["webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.OCEANIA]:{CODE:AreaCodeMap.OCEANIA,AP_DOMAINS:["ap-web-1-oceania.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-oceania.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-oceania.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-oceania.agora.io"],LOG_UPLOAD_SERVER:["logservice-oceania.agora.io"],PROXY_AP:["proxy-ap-web-oceania.agora.io"],PROXY_NGINX:["oceania.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.SOUTH_AMERICA]:{CODE:AreaCodeMap.SOUTH_AMERICA,AP_DOMAINS:["ap-web-1-south-america.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-south-america.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-south-america.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-south-america.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-america.agora.io"],PROXY_AP:["proxy-ap-web-south-america.agora.io"],PROXY_NGINX:["south-america.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.AFRICA]:{CODE:AreaCodeMap.AFRICA,AP_DOMAINS:["ap-web-1-africa.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-africa.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-africa.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-africa.agora.io"],LOG_UPLOAD_SERVER:["logservice-south-africa.agora.io"],PROXY_AP:["proxy-ap-web-africa.agora.io"],PROXY_NGINX:["africa.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.CHINA]:{CODE:AreaCodeMap.CHINA,AP_DOMAINS:["webrtc2-2.ap.sd-rtn.com"],AP_BACKUP_DOMAINS:["webrtc2-4.ap.sd-rtn.com"],EVENT_REPORT_DOMAIN:["statscollector-1-china.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-china.agora.io"],LOG_UPLOAD_SERVER:["logservice-china.agora.io"],PROXY_AP:["proxy-ap-web.agoraio.cn"],PROXY_NGINX:["east-cn.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.SOUTH_KOREA]:{CODE:AreaCodeMap.SOUTH_KOREA,AP_DOMAINS:["ap-web-1-korea.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-korea.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-korea.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-korea.agora.io"],LOG_UPLOAD_SERVER:["logservice-korea.agora.io"],PROXY_AP:["proxy-ap-web-korea.agora.io"],PROXY_NGINX:["korea.webrtc-cloud-proxy.sd-rtn.com"]},[AreaCodeMap.UNITED_STATES]:{CODE:AreaCodeMap.UNITED_STATES,AP_DOMAINS:["ap-web-1-us.agora.io"],AP_BACKUP_DOMAINS:["ap-web-2-us.agora.io"],EVENT_REPORT_DOMAIN:["statscollector-1-us.agora.io"],EVENT_REPORT_BACKUP_DOMAIN:["statscollector-2-us.agora.io"],LOG_UPLOAD_SERVER:["logservice-us.agora.io"],PROXY_AP:["proxy-ap-web-us.agora.io"],PROXY_NGINX:["us.webrtc-cloud-proxy.sd-rtn.com"]}},continentCountryMap={[AreaCodeMap.ASIA]:[AreaCodeMap.CHINA,AreaCodeMap.JAPAN,AreaCodeMap.INDIA],[AreaCodeMap.EUROPE]:[],[AreaCodeMap.NORTH_AMERICA]:[],[AreaCodeMap.SOUTH_AMERICA]:[],[AreaCodeMap.OCEANIA]:[],[AreaCodeMap.AFRICA]:[]},areaWeights=[AreaCodeMap.GLOBAL,AreaCodeMap.CHINA,AreaCodeMap.NORTH_AMERICA,AreaCodeMap.EUROPE,AreaCodeMap.ASIA,AreaCodeMap.JAPAN,AreaCodeMap.INDIA,AreaCodeMap.OCEANIA,AreaCodeMap.SOUTH_AMERICA,AreaCodeMap.AFRICA];function _applyDecoratedDescriptor(n,e,o,d,I){var f={};return Object.keys(d).forEach(function(S){f[S]=d[S]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=o.slice().reverse().reduce(function(S,v){return v(n,e,S)||S},f),I&&f.initializer!==void 0&&(f.value=f.initializer?f.initializer.call(I):void 0,f.initializer=void 0),f.initializer===void 0?(Object.defineProperty(n,e,f),null):f}function _defineProperty$1(n,e,o){return(e=_toPropertyKey(e))in n?Object.defineProperty(n,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[e]=o,n}function ownKeys(n,e){var o=Object.keys(n);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(n);e&&(d=d.filter(function(I){return Object.getOwnPropertyDescriptor(n,I).enumerable})),o.push.apply(o,d)}return o}function _objectSpread2(n){for(var e=1;e1)this.connection=null;else{var I=this.connection,f=o._connection;this.connection=null,!f||I&&f!==I||f.unsubscribe()}}else this.connection=null},e}(Subscriber),ConnectableObservable=function(n){function e(o,d){var I=n.call(this)||this;return I.source=o,I.subjectFactory=d,I._refCount=0,I._isComplete=!1,I}return __extends$3(e,n),e.prototype._subscribe=function(o){return this.getSubject().subscribe(o)},e.prototype.getSubject=function(){var o=this._subject;return o&&!o.isStopped||(this._subject=this.subjectFactory()),this._subject},e.prototype.connect=function(){var o=this._connection;return o||(this._isComplete=!1,(o=this._connection=new Subscription$2).add(this.source.subscribe(new ConnectableSubscriber(this.getSubject(),this))),o.closed&&(this._connection=null,o=Subscription$2.EMPTY)),o},e.prototype.refCount=function(){return refCount()(this)},e}(Observable),connectableObservableDescriptor=function(){var n=ConnectableObservable.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:n._subscribe},_isComplete:{value:n._isComplete,writable:!0},getSubject:{value:n.getSubject},connect:{value:n.connect},refCount:{value:n.refCount}}}(),ConnectableSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.connectable=d,I}return __extends$3(e,n),e.prototype._error=function(o){this._unsubscribe(),n.prototype._error.call(this,o)},e.prototype._complete=function(){this.connectable._isComplete=!0,this._unsubscribe(),n.prototype._complete.call(this)},e.prototype._unsubscribe=function(){var o=this.connectable;if(o){this.connectable=null;var d=o._connection;o._refCount=0,o._subject=null,o._connection=null,d&&d.unsubscribe()}},e}(SubjectSubscriber),Action$2=function(n){function e(o,d){return n.call(this)||this}return __extends$3(e,n),e.prototype.schedule=function(o,d){return this},e}(Subscription$2),AsyncAction$2=function(n){function e(o,d){var I=n.call(this,o,d)||this;return I.scheduler=o,I.work=d,I.pending=!1,I}return __extends$3(e,n),e.prototype.schedule=function(o,d){if(d===void 0&&(d=0),this.closed)return this;this.state=o;var I=this.id,f=this.scheduler;return I!=null&&(this.id=this.recycleAsyncId(f,I,d)),this.pending=!0,this.delay=d,this.id=this.id||this.requestAsyncId(f,this.id,d),this},e.prototype.requestAsyncId=function(o,d,I){return I===void 0&&(I=0),setInterval(o.flush.bind(o,this),I)},e.prototype.recycleAsyncId=function(o,d,I){if(I===void 0&&(I=0),I!==null&&this.delay===I&&this.pending===!1)return d;clearInterval(d)},e.prototype.execute=function(o,d){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;var I=this._execute(o,d);if(I)return I;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))},e.prototype._execute=function(o,d){var I=!1,f=void 0;try{this.work(o)}catch(S){I=!0,f=!!S&&S||new Error(S)}if(I)return this.unsubscribe(),f},e.prototype._unsubscribe=function(){var o=this.id,d=this.scheduler,I=d.actions,f=I.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,f!==-1&&I.splice(f,1),o!=null&&(this.id=this.recycleAsyncId(d,o,null)),this.delay=null},e}(Action$2),QueueAction=function(n){function e(o,d){var I=n.call(this,o,d)||this;return I.scheduler=o,I.work=d,I}return __extends$3(e,n),e.prototype.schedule=function(o,d){return d===void 0&&(d=0),d>0?n.prototype.schedule.call(this,o,d):(this.delay=d,this.state=o,this.scheduler.flush(this),this)},e.prototype.execute=function(o,d){return d>0||this.closed?n.prototype.execute.call(this,o,d):this._execute(o,d)},e.prototype.requestAsyncId=function(o,d,I){return I===void 0&&(I=0),I!==null&&I>0||I===null&&this.delay>0?n.prototype.requestAsyncId.call(this,o,d,I):o.flush(this)},e}(AsyncAction$2),Scheduler$2=function(){function n(e,o){o===void 0&&(o=n.now),this.SchedulerAction=e,this.now=o}return n.prototype.schedule=function(e,o,d){return o===void 0&&(o=0),new this.SchedulerAction(this,e).schedule(d,o)},n.now=function(){return Date.now()},n}(),AsyncScheduler$2=function(n){function e(o,d){d===void 0&&(d=Scheduler$2.now);var I=n.call(this,o,function(){return e.delegate&&e.delegate!==I?e.delegate.now():d()})||this;return I.actions=[],I.active=!1,I.scheduled=void 0,I}return __extends$3(e,n),e.prototype.schedule=function(o,d,I){return d===void 0&&(d=0),e.delegate&&e.delegate!==this?e.delegate.schedule(o,d,I):n.prototype.schedule.call(this,o,d,I)},e.prototype.flush=function(o){var d=this.actions;if(this.active)d.push(o);else{var I;this.active=!0;do if(I=o.execute(o.state,o.delay))break;while(o=d.shift());if(this.active=!1,I){for(;o=d.shift();)o.unsubscribe();throw I}}},e}(Scheduler$2),QueueScheduler=function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return __extends$3(e,n),e}(AsyncScheduler$2),queueScheduler=new QueueScheduler(QueueAction),queue=queueScheduler,EMPTY=new Observable(function(n){return n.complete()});function empty(n){return n?emptyScheduled(n):EMPTY}function emptyScheduled(n){return new Observable(function(e){return n.schedule(function(){return e.complete()})})}function isScheduler(n){return n&&typeof n.schedule=="function"}var subscribeToArray=function(n){return function(e){for(var o=0,d=n.length;othis._bufferSize&&d.shift()}n.prototype.next.call(this,o)},e.prototype.nextTimeWindow=function(o){this.isStopped||(this._events.push(new ReplayEvent(this._getNow(),o)),this._trimBufferThenGetEvents()),n.prototype.next.call(this,o)},e.prototype._subscribe=function(o){var d,I=this._infiniteTimeWindow,f=I?this._events:this._trimBufferThenGetEvents(),S=this.scheduler,v=f.length;if(this.closed)throw new ObjectUnsubscribedError;if(this.isStopped||this.hasError?d=Subscription$2.EMPTY:(this.observers.push(o),d=new SubjectSubscription(this,o)),S&&o.add(o=new ObserveOnSubscriber(o,S)),I)for(var L=0;Ld&&(v=Math.max(v,S-d)),v>0&&f.splice(0,v),f},e}(Subject),ReplayEvent=function(){return function(n,e){this.time=n,this.value=e}}(),nextHandle=1,RESOLVED=function(){return Promise.resolve()}(),activeHandles={};function findAndClearHandle(n){return n in activeHandles&&(delete activeHandles[n],!0)}var Immediate={setImmediate:function(n){var e=nextHandle++;return activeHandles[e]=!0,RESOLVED.then(function(){return findAndClearHandle(e)&&n()}),e},clearImmediate:function(n){findAndClearHandle(n)}},AsapAction=function(n){function e(o,d){var I=n.call(this,o,d)||this;return I.scheduler=o,I.work=d,I}return __extends$3(e,n),e.prototype.requestAsyncId=function(o,d,I){return I===void 0&&(I=0),I!==null&&I>0?n.prototype.requestAsyncId.call(this,o,d,I):(o.actions.push(this),o.scheduled||(o.scheduled=Immediate.setImmediate(o.flush.bind(o,null))))},e.prototype.recycleAsyncId=function(o,d,I){if(I===void 0&&(I=0),I!==null&&I>0||I===null&&this.delay>0)return n.prototype.recycleAsyncId.call(this,o,d,I);o.actions.length===0&&(Immediate.clearImmediate(d),o.scheduled=void 0)},e}(AsyncAction$2),AsapScheduler=function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return __extends$3(e,n),e.prototype.flush=function(o){this.active=!0,this.scheduled=void 0;var d,I=this.actions,f=-1,S=I.length;o=o||I.shift();do if(d=o.execute(o.state,o.delay))break;while(++f0?this._next(o.shift()):this.active===0&&this.hasCompleted&&this.destination.complete()},e}(SimpleOuterSubscriber);function mergeAll(n){return n===void 0&&(n=Number.POSITIVE_INFINITY),mergeMap(identity$5,n)}function concatAll(){return mergeAll(1)}function concat(){for(var n=[],e=0;e1?I.next(Array.prototype.slice.call(arguments)):I.next(f)},I,o)})}function setupSubscription(n,e,o,d,I){var f;if(isEventTarget(n)){var S=n;n.addEventListener(e,o,I),f=function(){return S.removeEventListener(e,o,I)}}else if(isJQueryStyleEventEmitter(n)){var v=n;n.on(e,o),f=function(){return v.off(e,o)}}else if(isNodeStyleEventEmitter(n)){var L=n;n.addListener(e,o),f=function(){return L.removeListener(e,o)}}else{if(!n||!n.length)throw new TypeError("Invalid event target");for(var x=0,F=n.length;x=0}function interval(n,e){return n===void 0&&(n=0),e===void 0&&(e=async),(!isNumeric(n)||n<0)&&(n=0),e&&typeof e.schedule=="function"||(e=async),new Observable(function(o){return o.add(e.schedule(dispatch$1,n,{subscriber:o,counter:0,period:n})),o})}function dispatch$1(n){var e=n.subscriber,o=n.counter,d=n.period;e.next(o),this.schedule({subscriber:e,counter:o+1,period:d},d)}function merge(){for(var n=[],e=0;e1&&typeof n[n.length-1]=="number"&&(o=n.pop())):typeof I=="number"&&(o=n.pop()),d===null&&n.length===1&&n[0]instanceof Observable?n[0]:mergeAll(o)(fromArray(n,d))}var NEVER=new Observable(noop$3);function filter(n,e){return function(o){return o.lift(new FilterOperator(n,e))}}var FilterOperator=function(){function n(e,o){this.predicate=e,this.thisArg=o}return n.prototype.call=function(e,o){return o.subscribe(new FilterSubscriber(e,this.predicate,this.thisArg))},n}(),FilterSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.predicate=d,f.thisArg=I,f.count=0,f}return __extends$3(e,n),e.prototype._next=function(o){var d;try{d=this.predicate.call(this.thisArg,o,this.count++)}catch(I){return void this.destination.error(I)}d&&this.destination.next(o)},e}(Subscriber);function race(){for(var n=[],e=0;ethis.index},n.prototype.hasCompleted=function(){return this.array.length===this.index},n}(),ZipBufferIterator=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.parent=d,f.observable=I,f.stillUnsubscribed=!0,f.buffer=[],f.isComplete=!1,f}return __extends$3(e,n),e.prototype[iterator]=function(){return this},e.prototype.next=function(){var o=this.buffer;return o.length===0&&this.isComplete?{value:null,done:!0}:{value:o.shift(),done:!1}},e.prototype.hasValue=function(){return this.buffer.length>0},e.prototype.hasCompleted=function(){return this.buffer.length===0&&this.isComplete},e.prototype.notifyComplete=function(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()},e.prototype.notifyNext=function(o){this.buffer.push(o),this.parent.checkIterators()},e.prototype.subscribe=function(){return innerSubscribe(this.observable,new SimpleInnerSubscriber(this))},e}(SimpleOuterSubscriber),umd={exports:{}};(function(n,e){(function(o){Object.defineProperty(o,"__esModule",{value:!0}),o.default=void 0;/** - * @license - * Copyright 2009 The Closure Library Authors - * Copyright 2020 Daniel Wirtz / The long.js Authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */var d=null;try{d=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function I(ye,lt,Yt){this.low=0|ye,this.high=0|lt,this.unsigned=!!Yt}function f(ye){return(ye&&ye.__isLong__)===!0}function S(ye){var lt=Math.clz32(ye&-ye);return ye?31-lt:lt}I.prototype.__isLong__,Object.defineProperty(I.prototype,"__isLong__",{value:!0}),I.isLong=f;var v={},L={};function x(ye,lt){var Yt,ct,ht;return lt?(ht=0<=(ye>>>=0)&&ye<256)&&(ct=L[ye])?ct:(Yt=Y(ye,0,!0),ht&&(L[ye]=Yt),Yt):(ht=-128<=(ye|=0)&&ye<128)&&(ct=v[ye])?ct:(Yt=Y(ye,ye<0?-1:0,!1),ht&&(v[ye]=Yt),Yt)}function F(ye,lt){if(isNaN(ye))return lt?Fe:De;if(lt){if(ye<0)return Fe;if(ye>=ue)return Bt}else{if(ye<=-Ee)return Tt;if(ye+1>=Ee)return At}return ye<0?F(-ye,lt).neg():Y(ye%he|0,ye/he|0,lt)}function Y(ye,lt,Yt){return new I(ye,lt,Yt)}I.fromInt=x,I.fromNumber=F,I.fromBits=Y;var j=Math.pow;function W(ye,lt,Yt){if(ye.length===0)throw Error("empty string");if(typeof lt=="number"?(Yt=lt,lt=!1):lt=!!lt,ye==="NaN"||ye==="Infinity"||ye==="+Infinity"||ye==="-Infinity")return lt?Fe:De;if((Yt=Yt||10)<2||360)throw Error("interior hyphen");if(ct===0)return W(ye.substring(1),lt,Yt).neg();for(var ht=F(j(Yt,8)),vt=De,ar=0;ar>>0:this.low},rt.toNumber=function(){return this.unsigned?(this.high>>>0)*he+(this.low>>>0):this.high*he+(this.low>>>0)},rt.toString=function(ye){if((ye=ye||10)<2||36>>0).toString(ye);if((vt=jt).isZero())return vr+ar;for(;vr.length<6;)vr="0"+vr;ar=""+vr+ar}},rt.getHighBits=function(){return this.high},rt.getHighBitsUnsigned=function(){return this.high>>>0},rt.getLowBits=function(){return this.low},rt.getLowBitsUnsigned=function(){return this.low>>>0},rt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Tt)?64:this.neg().getNumBitsAbs();for(var ye=this.high!=0?this.high:this.low,lt=31;lt>0&&!(ye&1<>21;return!ye||!this.unsigned&&ye===-1&&!(this.low===0&&this.high===-2097152)},rt.isZero=function(){return this.high===0&&this.low===0},rt.eqz=rt.isZero,rt.isNegative=function(){return!this.unsigned&&this.high<0},rt.isPositive=function(){return this.unsigned||this.high>=0},rt.isOdd=function(){return!(1&~this.low)},rt.isEven=function(){return!(1&this.low)},rt.equals=function(ye){return f(ye)||(ye=re(ye)),(this.unsigned===ye.unsigned||this.high>>>31!=1||ye.high>>>31!=1)&&this.high===ye.high&&this.low===ye.low},rt.eq=rt.equals,rt.notEquals=function(ye){return!this.eq(ye)},rt.neq=rt.notEquals,rt.ne=rt.notEquals,rt.lessThan=function(ye){return this.comp(ye)<0},rt.lt=rt.lessThan,rt.lessThanOrEqual=function(ye){return this.comp(ye)<=0},rt.lte=rt.lessThanOrEqual,rt.le=rt.lessThanOrEqual,rt.greaterThan=function(ye){return this.comp(ye)>0},rt.gt=rt.greaterThan,rt.greaterThanOrEqual=function(ye){return this.comp(ye)>=0},rt.gte=rt.greaterThanOrEqual,rt.ge=rt.greaterThanOrEqual,rt.compare=function(ye){if(f(ye)||(ye=re(ye)),this.eq(ye))return 0;var lt=this.isNegative(),Yt=ye.isNegative();return lt&&!Yt?-1:!lt&&Yt?1:this.unsigned?ye.high>>>0>this.high>>>0||ye.high===this.high&&ye.low>>>0>this.low>>>0?-1:1:this.sub(ye).isNegative()?-1:1},rt.comp=rt.compare,rt.negate=function(){return!this.unsigned&&this.eq(Tt)?Tt:this.not().add(Ve)},rt.neg=rt.negate,rt.add=function(ye){f(ye)||(ye=re(ye));var lt=this.high>>>16,Yt=65535&this.high,ct=this.low>>>16,ht=65535&this.low,vt=ye.high>>>16,ar=65535&ye.high,jt=ye.low>>>16,vr=0,ai=0,pi=0,yi=0;return pi+=(yi+=ht+(65535&ye.low))>>>16,ai+=(pi+=ct+jt)>>>16,vr+=(ai+=Yt+ar)>>>16,vr+=lt+vt,Y((pi&=65535)<<16|(yi&=65535),(vr&=65535)<<16|(ai&=65535),this.unsigned)},rt.subtract=function(ye){return f(ye)||(ye=re(ye)),this.add(ye.neg())},rt.sub=rt.subtract,rt.multiply=function(ye){if(this.isZero())return this;if(f(ye)||(ye=re(ye)),d)return Y(d.mul(this.low,this.high,ye.low,ye.high),d.get_high(),this.unsigned);if(ye.isZero())return this.unsigned?Fe:De;if(this.eq(Tt))return ye.isOdd()?Tt:De;if(ye.eq(Tt))return this.isOdd()?Tt:De;if(this.isNegative())return ye.isNegative()?this.neg().mul(ye.neg()):this.neg().mul(ye).neg();if(ye.isNegative())return this.mul(ye.neg()).neg();if(this.lt(_e)&&ye.lt(_e))return F(this.toNumber()*ye.toNumber(),this.unsigned);var lt=this.high>>>16,Yt=65535&this.high,ct=this.low>>>16,ht=65535&this.low,vt=ye.high>>>16,ar=65535&ye.high,jt=ye.low>>>16,vr=65535&ye.low,ai=0,pi=0,yi=0,fi=0;return yi+=(fi+=ht*vr)>>>16,pi+=(yi+=ct*vr)>>>16,yi&=65535,pi+=(yi+=ht*jt)>>>16,ai+=(pi+=Yt*vr)>>>16,pi&=65535,ai+=(pi+=ct*jt)>>>16,pi&=65535,ai+=(pi+=ht*ar)>>>16,ai+=lt*vr+Yt*jt+ct*ar+ht*vt,Y((yi&=65535)<<16|(fi&=65535),(ai&=65535)<<16|(pi&=65535),this.unsigned)},rt.mul=rt.multiply,rt.divide=function(ye){if(f(ye)||(ye=re(ye)),ye.isZero())throw Error("division by zero");var lt,Yt,ct;if(d)return this.unsigned||this.high!==-2147483648||ye.low!==-1||ye.high!==-1?Y((this.unsigned?d.div_u:d.div_s)(this.low,this.high,ye.low,ye.high),d.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?Fe:De;if(this.unsigned){if(ye.unsigned||(ye=ye.toUnsigned()),ye.gt(this))return Fe;if(ye.gt(this.shru(1)))return Ge;ct=Fe}else{if(this.eq(Tt))return ye.eq(Ve)||ye.eq(He)?Tt:ye.eq(Tt)?Ve:(lt=this.shr(1).div(ye).shl(1)).eq(De)?ye.isNegative()?Ve:He:(Yt=this.sub(ye.mul(lt)),ct=lt.add(Yt.div(ye)));if(ye.eq(Tt))return this.unsigned?Fe:De;if(this.isNegative())return ye.isNegative()?this.neg().div(ye.neg()):this.neg().div(ye).neg();if(ye.isNegative())return this.div(ye.neg()).neg();ct=De}for(Yt=this;Yt.gte(ye);){lt=Math.max(1,Math.floor(Yt.toNumber()/ye.toNumber()));for(var ht=Math.ceil(Math.log(lt)/Math.LN2),vt=ht<=48?1:j(2,ht-48),ar=F(lt),jt=ar.mul(ye);jt.isNegative()||jt.gt(Yt);)jt=(ar=F(lt-=vt,this.unsigned)).mul(ye);ar.isZero()&&(ar=Ve),ct=ct.add(ar),Yt=Yt.sub(jt)}return ct},rt.div=rt.divide,rt.modulo=function(ye){return f(ye)||(ye=re(ye)),d?Y((this.unsigned?d.rem_u:d.rem_s)(this.low,this.high,ye.low,ye.high),d.get_high(),this.unsigned):this.sub(this.div(ye).mul(ye))},rt.mod=rt.modulo,rt.rem=rt.modulo,rt.not=function(){return Y(~this.low,~this.high,this.unsigned)},rt.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},rt.clz=rt.countLeadingZeros,rt.countTrailingZeros=function(){return this.low?S(this.low):S(this.high)+32},rt.ctz=rt.countTrailingZeros,rt.and=function(ye){return f(ye)||(ye=re(ye)),Y(this.low&ye.low,this.high&ye.high,this.unsigned)},rt.or=function(ye){return f(ye)||(ye=re(ye)),Y(this.low|ye.low,this.high|ye.high,this.unsigned)},rt.xor=function(ye){return f(ye)||(ye=re(ye)),Y(this.low^ye.low,this.high^ye.high,this.unsigned)},rt.shiftLeft=function(ye){return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye<32?Y(this.low<>>32-ye,this.unsigned):Y(0,this.low<>>ye|this.high<<32-ye,this.high>>ye,this.unsigned):Y(this.high>>ye-32,this.high>=0?0:-1,this.unsigned)},rt.shr=rt.shiftRight,rt.shiftRightUnsigned=function(ye){return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye<32?Y(this.low>>>ye|this.high<<32-ye,this.high>>>ye,this.unsigned):Y(ye===32?this.high:this.high>>>ye-32,0,this.unsigned)},rt.shru=rt.shiftRightUnsigned,rt.shr_u=rt.shiftRightUnsigned,rt.rotateLeft=function(ye){var lt;return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye===32?Y(this.high,this.low,this.unsigned):ye<32?(lt=32-ye,Y(this.low<>>lt,this.high<>>lt,this.unsigned)):(lt=32-(ye-=32),Y(this.high<>>lt,this.low<>>lt,this.unsigned))},rt.rotl=rt.rotateLeft,rt.rotateRight=function(ye){var lt;return f(ye)&&(ye=ye.toInt()),(ye&=63)==0?this:ye===32?Y(this.high,this.low,this.unsigned):ye<32?(lt=32-ye,Y(this.high<>>ye,this.low<>>ye,this.unsigned)):(lt=32-(ye-=32),Y(this.low<>>ye,this.high<>>ye,this.unsigned))},rt.rotr=rt.rotateRight,rt.toSigned=function(){return this.unsigned?Y(this.low,this.high,!1):this},rt.toUnsigned=function(){return this.unsigned?this:Y(this.low,this.high,!0)},rt.toBytes=function(ye){return ye?this.toBytesLE():this.toBytesBE()},rt.toBytesLE=function(){var ye=this.high,lt=this.low;return[255<,lt>>>8&255,lt>>>16&255,lt>>>24,255&ye,ye>>>8&255,ye>>>16&255,ye>>>24]},rt.toBytesBE=function(){var ye=this.high,lt=this.low;return[ye>>>24,ye>>>16&255,ye>>>8&255,255&ye,lt>>>24,lt>>>16&255,lt>>>8&255,255<]},I.fromBytes=function(ye,lt,Yt){return Yt?I.fromBytesLE(ye,lt):I.fromBytesBE(ye,lt)},I.fromBytesLE=function(ye,lt){return new I(ye[0]|ye[1]<<8|ye[2]<<16|ye[3]<<24,ye[4]|ye[5]<<8|ye[6]<<16|ye[7]<<24,lt)},I.fromBytesBE=function(ye,lt){return new I(ye[4]<<24|ye[5]<<16|ye[6]<<8|ye[7],ye[0]<<24|ye[1]<<16|ye[2]<<8|ye[3],lt)},typeof BigInt=="function"&&(I.fromBigInt=function(ye,lt){return Y(Number(BigInt.asIntN(32,ye)),Number(BigInt.asIntN(32,ye>>BigInt(32))),lt)},I.fromValue=function(ye,lt){return typeof ye=="bigint"?I.fromBigInt(ye,lt):re(ye,lt)},rt.toBigInt=function(){var ye=BigInt(this.low>>>0);return BigInt(this.unsigned?this.high>>>0:this.high)<0;)f.push(v%d),v=v/d|0}var L="";for(o=0;n.at(o)===0&&o=0;--o)L+=e[f[o]];return L}api.encode=function(n,e,o){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(o!==void 0&&typeof o!="number")throw new TypeError('"maxline" must be a number.');var d="";if(n instanceof Uint8Array){var I=0,f=e.length,S=e.charAt(0),v=[0];for(I=0;I0;)v.push(x%f),x=x/f|0}for(I=0;n[I]===0&&I=0;--I)d+=e[v[I]]}else d=_encodeWithByteBuffer(n,e);if(o){var F=new RegExp(".{1,"+o+"}","g");d=d.match(F).join(`\r -`)}return d},api.decode=function(n,e){if(typeof n!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var o=_reverseAlphabets[e];if(!o){o=_reverseAlphabets[e]=[];for(var d=0;d>=8;for(;x>0;)S.push(255&x),x>>=8}for(var F=0;n[F]===f&&F15?(o=Date.now(),f(S)):(e.push(S),e.length===1&&I.setAttribute("a",d=!d))}}util$5.nextTick=util$5.setImmediate})(),util$5.isNodejs=typeof process<"u"&&process.versions&&process.versions.node,util$5.globalScope=util$5.isNodejs?commonjsGlobal$1:typeof self>"u"?window:self,util$5.isArray=Array.isArray||function(n){return Object.prototype.toString.call(n)==="[object Array]"},util$5.isArrayBuffer=function(n){return typeof ArrayBuffer<"u"&&n instanceof ArrayBuffer},util$5.isArrayBufferView=function(n){return n&&util$5.isArrayBuffer(n.buffer)&&n.byteLength!==void 0},util$5.ByteBuffer=ByteStringBuffer,util$5.ByteStringBuffer=ByteStringBuffer;var _MAX_CONSTRUCTED_STRING_LENGTH=4096;function DataBuffer(n,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var o=util$5.isArrayBuffer(n),d=util$5.isArrayBufferView(n);if(o||d)return this.data=o?new DataView(n):new DataView(n.buffer,n.byteOffset,n.byteLength),void(this.write="writeOffset"in e?e.writeOffset:this.data.byteLength);this.data=new DataView(new ArrayBuffer(0)),this.write=0,n!=null&&this.putBytes(n),"writeOffset"in e&&(this.write=e.writeOffset)}util$5.ByteStringBuffer.prototype._optimizeConstructedString=function(n){this._constructedStringLength+=n,this._constructedStringLength>_MAX_CONSTRUCTED_STRING_LENGTH&&(this.data.substr(0,1),this._constructedStringLength=0)},util$5.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read},util$5.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0},util$5.ByteStringBuffer.prototype.putByte=function(n){return this.putBytes(String.fromCharCode(n))},util$5.ByteStringBuffer.prototype.fillWithByte=function(n,e){n=String.fromCharCode(n);for(var o=this.data;e>0;)1&e&&(o+=n),(e>>>=1)>0&&(n+=n);return this.data=o,this._optimizeConstructedString(e),this},util$5.ByteStringBuffer.prototype.putBytes=function(n){return this.data+=n,this._optimizeConstructedString(n.length),this},util$5.ByteStringBuffer.prototype.putString=function(n){return this.putBytes(util$5.encodeUtf8(n))},util$5.ByteStringBuffer.prototype.putInt16=function(n){return this.putBytes(String.fromCharCode(n>>8&255)+String.fromCharCode(255&n))},util$5.ByteStringBuffer.prototype.putInt24=function(n){return this.putBytes(String.fromCharCode(n>>16&255)+String.fromCharCode(n>>8&255)+String.fromCharCode(255&n))},util$5.ByteStringBuffer.prototype.putInt32=function(n){return this.putBytes(String.fromCharCode(n>>24&255)+String.fromCharCode(n>>16&255)+String.fromCharCode(n>>8&255)+String.fromCharCode(255&n))},util$5.ByteStringBuffer.prototype.putInt16Le=function(n){return this.putBytes(String.fromCharCode(255&n)+String.fromCharCode(n>>8&255))},util$5.ByteStringBuffer.prototype.putInt24Le=function(n){return this.putBytes(String.fromCharCode(255&n)+String.fromCharCode(n>>8&255)+String.fromCharCode(n>>16&255))},util$5.ByteStringBuffer.prototype.putInt32Le=function(n){return this.putBytes(String.fromCharCode(255&n)+String.fromCharCode(n>>8&255)+String.fromCharCode(n>>16&255)+String.fromCharCode(n>>24&255))},util$5.ByteStringBuffer.prototype.putInt=function(n,e){_checkBitsParam(e);var o="";do e-=8,o+=String.fromCharCode(n>>e&255);while(e>0);return this.putBytes(o)},util$5.ByteStringBuffer.prototype.putSignedInt=function(n,e){return n<0&&(n+=2<0);return e},util$5.ByteStringBuffer.prototype.getSignedInt=function(n){var e=this.getInt(n),o=2<=o&&(e-=o<<1),e},util$5.ByteStringBuffer.prototype.getBytes=function(n){var e;return n?(n=Math.min(this.length(),n),e=this.data.slice(this.read,this.read+n),this.read+=n):n===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e},util$5.ByteStringBuffer.prototype.bytes=function(n){return n===void 0?this.data.slice(this.read):this.data.slice(this.read,this.read+n)},util$5.ByteStringBuffer.prototype.at=function(n){return this.data.charCodeAt(this.read+n)},util$5.ByteStringBuffer.prototype.setAt=function(n,e){return this.data=this.data.substr(0,this.read+n)+String.fromCharCode(e)+this.data.substr(this.read+n+1),this},util$5.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)},util$5.ByteStringBuffer.prototype.copy=function(){var n=util$5.createBuffer(this.data);return n.read=this.read,n},util$5.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this},util$5.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this},util$5.ByteStringBuffer.prototype.truncate=function(n){var e=Math.max(0,this.length()-n);return this.data=this.data.substr(this.read,e),this.read=0,this},util$5.ByteStringBuffer.prototype.toHex=function(){for(var n="",e=this.read;e=n)return this;e=Math.max(e||this.growSize,n);var o=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),d=new Uint8Array(this.length()+e);return d.set(o),this.data=new DataView(d.buffer),this},util$5.DataBuffer.prototype.putByte=function(n){return this.accommodate(1),this.data.setUint8(this.write++,n),this},util$5.DataBuffer.prototype.fillWithByte=function(n,e){this.accommodate(e);for(var o=0;o>8&65535),this.data.setInt8(this.write,n>>16&255),this.write+=3,this},util$5.DataBuffer.prototype.putInt32=function(n){return this.accommodate(4),this.data.setInt32(this.write,n),this.write+=4,this},util$5.DataBuffer.prototype.putInt16Le=function(n){return this.accommodate(2),this.data.setInt16(this.write,n,!0),this.write+=2,this},util$5.DataBuffer.prototype.putInt24Le=function(n){return this.accommodate(3),this.data.setInt8(this.write,n>>16&255),this.data.setInt16(this.write,n>>8&65535,!0),this.write+=3,this},util$5.DataBuffer.prototype.putInt32Le=function(n){return this.accommodate(4),this.data.setInt32(this.write,n,!0),this.write+=4,this},util$5.DataBuffer.prototype.putInt=function(n,e){_checkBitsParam(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,n>>e&255);while(e>0);return this},util$5.DataBuffer.prototype.putSignedInt=function(n,e){return _checkBitsParam(e),this.accommodate(e/8),n<0&&(n+=2<0);return e},util$5.DataBuffer.prototype.getSignedInt=function(n){var e=this.getInt(n),o=2<=o&&(e-=o<<1),e},util$5.DataBuffer.prototype.getBytes=function(n){var e;return n?(n=Math.min(this.length(),n),e=this.data.slice(this.read,this.read+n),this.read+=n):n===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e},util$5.DataBuffer.prototype.bytes=function(n){return n===void 0?this.data.slice(this.read):this.data.slice(this.read,this.read+n)},util$5.DataBuffer.prototype.at=function(n){return this.data.getUint8(this.read+n)},util$5.DataBuffer.prototype.setAt=function(n,e){return this.data.setUint8(n,e),this},util$5.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)},util$5.DataBuffer.prototype.copy=function(){return new util$5.DataBuffer(this)},util$5.DataBuffer.prototype.compact=function(){if(this.read>0){var n=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(n.byteLength);e.set(n),this.data=new DataView(e),this.write-=this.read,this.read=0}return this},util$5.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this},util$5.DataBuffer.prototype.truncate=function(n){return this.write=Math.max(0,this.length()-n),this.read=Math.min(this.read,this.write),this},util$5.DataBuffer.prototype.toHex=function(){for(var n="",e=this.read;e0;)1&e&&(o+=n),(e>>>=1)>0&&(n+=n);return o},util$5.xorBytes=function(n,e,o){for(var d="",I="",f="",S=0,v=0;o>0;--o,++S)I=n.charCodeAt(S)^e.charCodeAt(S),v>=10&&(d+=f,f="",v=0),f+=String.fromCharCode(I),++v;return d+=f},util$5.hexToBytes=function(n){var e="",o=0;for(!0&n.length&&(o=1,e+=String.fromCharCode(parseInt(n[0],16)));o>24&255)+String.fromCharCode(n>>16&255)+String.fromCharCode(n>>8&255)+String.fromCharCode(255&n)};var _base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_base64Idx=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],_base58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";util$5.encode64=function(n,e){for(var o,d,I,f="",S="",v=0;v>2),f+=_base64.charAt((3&o)<<4|d>>4),isNaN(d)?f+="==":(f+=_base64.charAt((15&d)<<2|I>>6),f+=isNaN(I)?"=":_base64.charAt(63&I)),e&&f.length>e&&(S+=f.substr(0,e)+`\r -`,f=f.substr(e));return S+=f},util$5.decode64=function(n){n=n.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e,o,d,I,f="",S=0;S>4),d!==64&&(f+=String.fromCharCode((15&o)<<4|d>>2),I!==64&&(f+=String.fromCharCode((3&d)<<6|I)));return f},util$5.encodeUtf8=function(n){return unescape(encodeURIComponent(n))},util$5.decodeUtf8=function(n){return decodeURIComponent(escape(n))},util$5.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:baseN.encode,decode:baseN.decode}},util$5.binary.raw.encode=function(n){return String.fromCharCode.apply(null,n)},util$5.binary.raw.decode=function(n,e,o){var d=e;d||(d=new Uint8Array(n.length));for(var I=o=o||0,f=0;f>2),f+=_base64.charAt((3&o)<<4|d>>4),isNaN(d)?f+="==":(f+=_base64.charAt((15&d)<<2|I>>6),f+=isNaN(I)?"=":_base64.charAt(63&I)),e&&f.length>e&&(S+=f.substr(0,e)+`\r -`,f=f.substr(e));return S+=f},util$5.binary.base64.decode=function(n,e,o){var d,I,f,S,v=e;v||(v=new Uint8Array(3*Math.ceil(n.length/4))),n=n.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var L=0,x=o=o||0;L>4,f!==64&&(v[x++]=(15&I)<<4|f>>2,S!==64&&(v[x++]=(3&f)<<6|S));return e?x-o:v.subarray(0,x)},util$5.binary.base58.encode=function(n,e){return util$5.binary.baseN.encode(n,_base58,e)},util$5.binary.base58.decode=function(n,e){return util$5.binary.baseN.decode(n,_base58,e)},util$5.text={utf8:{},utf16:{}},util$5.text.utf8.encode=function(n,e,o){n=util$5.encodeUtf8(n);var d=e;d||(d=new Uint8Array(n.length));for(var I=o=o||0,f=0;f0&&f.push(o),S=d.lastIndex;var v=e[0][1];switch(v){case"s":case"o":I");break;case"%":f.push("%");break;default:f.push("<%"+v+"?>")}}return f.push(n.substring(S)),f.join("")},util$5.formatNumber=function(n,e,o,d){var I=n,f=isNaN(e=Math.abs(e))?2:e,S=o===void 0?",":o,v=d===void 0?".":d,L=I<0?"-":"",x=parseInt(I=Math.abs(+I||0).toFixed(f),10)+"",F=x.length>3?x.length%3:0;return L+(F?x.substr(0,F)+v:"")+x.substr(F).replace(/(\d{3})(?=\d)/g,"$1"+v)+(f?S+Math.abs(I-x).toFixed(f).slice(2):"")},util$5.formatSize=function(n){return n=n>=1073741824?util$5.formatNumber(n/1073741824,2,".","")+" GiB":n>=1048576?util$5.formatNumber(n/1048576,2,".","")+" MiB":n>=1024?util$5.formatNumber(n/1024,0)+" KiB":util$5.formatNumber(n,0)+" bytes"},util$5.bytesFromIP=function(n){return n.indexOf(".")!==-1?util$5.bytesFromIPv4(n):n.indexOf(":")!==-1?util$5.bytesFromIPv6(n):null},util$5.bytesFromIPv4=function(n){if((n=n.split(".")).length!==4)return null;for(var e=util$5.createBuffer(),o=0;oo[d].end-o[d].start&&(d=o.length-1)):o.push({start:v,end:v})}e.push(f)}if(o.length>0){var L=o[d];L.end-L.start>0&&(e.splice(L.start,L.end-L.start+1,""),L.start===0&&e.unshift(""),L.end===7&&e.push(""))}return e.join(":")},util$5.estimateCores=function(n,e){if(typeof n=="function"&&(e=n,n={}),n=n||{},"cores"in util$5&&!n.update)return e(null,util$5.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return util$5.cores=navigator.hardwareConcurrency,e(null,util$5.cores);if(typeof Worker>"u")return util$5.cores=1,e(null,util$5.cores);if(typeof Blob>"u")return util$5.cores=2,e(null,util$5.cores);var o=URL.createObjectURL(new Blob(["(",(function(){self.addEventListener("message",function(d){var I=Date.now(),f=I+4;self.postMessage({st:I,et:f})})}).toString(),")()"],{type:"application/javascript"}));(function d(I,f,S){if(f===0){var v=Math.floor(I.reduce(function(L,x){return L+x},0)/I.length);return util$5.cores=Math.max(1,v),URL.revokeObjectURL(o),e(null,util$5.cores)}(function(L,x){for(var F=[],Y=[],j=0;jue.st&&re.stre.st&&ue.st>>0,S>>>0];for(var v=d.fullMessageLength.length-1;v>=0;--v)d.fullMessageLength[v]+=S[1],S[1]=S[0]+(d.fullMessageLength[v]/4294967296>>>0),d.fullMessageLength[v]=d.fullMessageLength[v]>>>0,S[0]=S[1]/4294967296>>>0;return e.putBytes(I),_update(n,o,e),(e.read>2048||e.length()===0)&&e.compact(),d},d.digest=function(){var I=forge$4.util.createBuffer();I.putBytes(e.bytes());var f,S=d.fullMessageLength[d.fullMessageLength.length-1]+d.messageLengthSize&d.blockLength-1;I.putBytes(_padding.substr(0,d.blockLength-S));for(var v=8*d.fullMessageLength[0],L=0;L>>0,I.putInt32(v>>>0),v=f>>>0;I.putInt32(v);var x={h0:n.h0,h1:n.h1,h2:n.h2,h3:n.h3,h4:n.h4,h5:n.h5,h6:n.h6,h7:n.h7};_update(x,o,I);var F=forge$4.util.createBuffer();return F.putInt32(x.h0),F.putInt32(x.h1),F.putInt32(x.h2),F.putInt32(x.h3),F.putInt32(x.h4),F.putInt32(x.h5),F.putInt32(x.h6),F.putInt32(x.h7),F},d};var _padding=null,_initialized=!1,_k=null;function _init(){_padding="€",_padding+=forge$4.util.fillString("\0",64),_k=[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],_initialized=!0}function _update(n,e,o){for(var d,I,f,S,v,L,x,F,Y,j,W,re,ee,he=o.length();he>=64;){for(v=0;v<16;++v)e[v]=o.getInt32();for(;v<64;++v)d=((d=e[v-2])>>>17|d<<15)^(d>>>19|d<<13)^d>>>10,I=((I=e[v-15])>>>7|I<<25)^(I>>>18|I<<14)^I>>>3,e[v]=d+e[v-7]+I+e[v-16]|0;for(L=n.h0,x=n.h1,F=n.h2,Y=n.h3,j=n.h4,W=n.h5,re=n.h6,ee=n.h7,v=0;v<64;++v)f=(L>>>2|L<<30)^(L>>>13|L<<19)^(L>>>22|L<<10),S=L&x|F&(L^x),d=ee+((j>>>6|j<<26)^(j>>>11|j<<21)^(j>>>25|j<<7))+(re^j&(W^re))+_k[v]+e[v],ee=re,re=W,W=j,j=Y+d>>>0,Y=F,F=x,x=L,L=d+(I=f+S)>>>0;n.h0=n.h0+L|0,n.h1=n.h1+x|0,n.h2=n.h2+F|0,n.h3=n.h3+Y|0,n.h4=n.h4+j|0,n.h5=n.h5+W|0,n.h6=n.h6+re|0,n.h7=n.h7+ee|0,he-=64}}var forge$3=forge$8,hmac=forge$3.hmac=forge$3.hmac||{};hmac.create=function(){var n=null,e=null,o=null,d=null,I={start:function(f,S){if(f!==null)if(typeof f=="string"){if(!((f=f.toLowerCase())in forge$3.md.algorithms))throw new Error('Unknown hash algorithm "'+f+'"');e=forge$3.md.algorithms[f].create()}else e=f;if(S===null)S=n;else{if(typeof S=="string")S=forge$3.util.createBuffer(S);else if(forge$3.util.isArray(S)){var v=S;S=forge$3.util.createBuffer();for(var L=0;Le.blockLength&&(e.start(),e.update(S.bytes()),S=e.digest()),o=forge$3.util.createBuffer(),d=forge$3.util.createBuffer(),x=S.length(),L=0;L4||!I||I==="sha1"))return typeof I!="string"&&(I="sha1"),n=Buffer.from(n,"binary"),e=Buffer.from(e,"binary"),f?crypto$1.pbkdf2Sync.length===4?crypto$1.pbkdf2(n,e,o,d,function(_e,De){if(_e)return f(_e);f(null,De.toString("binary"))}):crypto$1.pbkdf2(n,e,o,d,I,function(_e,De){if(_e)return f(_e);f(null,De.toString("binary"))}):crypto$1.pbkdf2Sync.length===4?crypto$1.pbkdf2Sync(n,e,o,d).toString("binary"):crypto$1.pbkdf2Sync(n,e,o,d,I).toString("binary");if(I==null&&(I="sha1"),typeof I=="string"){if(!(I in forge$2.md.algorithms))throw new Error("Unknown hash algorithm: "+I);I=forge$2.md[I].create()}var S=I.digestLength;if(d>4294967295*S){var v=new Error("Derived key is too long.");if(f)return f(v);throw v}var L=Math.ceil(d/S),x=d-(L-1)*S,F=forge$2.hmac.create();F.start(I,n);var Y,j,W,re="";if(!f){for(var ee=1;ee<=L;++ee){F.start(null,null),F.update(e),F.update(forge$2.util.int32ToBytes(ee)),Y=W=F.digest().getBytes();for(var he=2;he<=o;++he)F.start(null,null),F.update(W),j=F.digest().getBytes(),Y=forge$2.util.xorBytes(Y,j,S),W=j;re+=eeL)return f(null,re);F.start(null,null),F.update(e),F.update(forge$2.util.int32ToBytes(ee)),Y=W=F.digest().getBytes(),he=2,Ee()}function Ee(){if(he<=o)return F.start(null,null),F.update(W),j=F.digest().getBytes(),Y=forge$2.util.xorBytes(Y,j,S),W=j,++he,forge$2.util.setImmediate(Ee);re+=ee4){var o=n;n=forge$1.util.createBuffer();for(var d=0;d0))return!0;for(var d=0;d0))return!0;for(var d=0;d0)return!1;var o=n.length(),d=n.at(o-1);return!(d>this.blockSize<<2)&&(n.truncate(d),!0)},modes.cbc=function(n){n=n||{},this.name="CBC",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)},modes.cbc.prototype.start=function(n){if(n.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else{if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._prev=this._iv.slice(0)}},modes.cbc.prototype.encrypt=function(n,e,o){if(n.length()0))return!0;for(var d=0;d0))return!0;for(var d=0;d0)return!1;var o=n.length(),d=n.at(o-1);return!(d>this.blockSize<<2)&&(n.truncate(d),!0)},modes.cfb=function(n){n=n||{},this.name="CFB",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0},modes.cfb.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.cfb.prototype.encrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0)n.read-=this.blockSize;else for(I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}},modes.cfb.prototype.decrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0)n.read-=this.blockSize;else for(I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}},modes.ofb=function(n){n=n||{},this.name="OFB",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0},modes.ofb.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.ofb.prototype.encrypt=function(n,e,o){var d=n.length();if(n.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0)n.read-=this.blockSize;else for(I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}},modes.ofb.prototype.decrypt=modes.ofb.prototype.encrypt,modes.ctr=function(n){n=n||{},this.name="CTR",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0},modes.ctr.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");this._iv=transformIV(n.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0},modes.ctr.prototype.encrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize)for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0&&(n.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}inc32(this._inBlock)},modes.ctr.prototype.decrypt=modes.ctr.prototype.encrypt,modes.gcm=function(n){n=n||{},this.name="GCM",this.cipher=n.cipher,this.blockSize=n.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=forge$1.util.createBuffer(),this._partialBytes=0,this._R=3774873600},modes.gcm.prototype.start=function(n){if(!("iv"in n))throw new Error("Invalid IV parameter.");var e,o=forge$1.util.createBuffer(n.iv);if(this._cipherLength=0,e="additionalData"in n?forge$1.util.createBuffer(n.additionalData):forge$1.util.createBuffer(),this._tagLength="tagLength"in n?n.tagLength:128,this._tag=null,n.decrypt&&(this._tag=forge$1.util.createBuffer(n.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var d=o.length();if(d===12)this._j0=[o.getInt32(),o.getInt32(),o.getInt32(),1];else{for(this._j0=[0,0,0,0];o.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[o.getInt32(),o.getInt32(),o.getInt32(),o.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(from64To32(8*d)))}this._inBlock=this._j0.slice(0),inc32(this._inBlock),this._partialBytes=0,e=forge$1.util.createBuffer(e),this._aDataLength=from64To32(8*e.length());var I=e.length()%this.blockSize;for(I&&e.fillWithByte(0,this.blockSize-I),this._s=[0,0,0,0];e.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()])},modes.gcm.prototype.encrypt=function(n,e,o){var d=n.length();if(d===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&d>=this.blockSize){for(var I=0;I0&&(f=this.blockSize-f),this._partialOutput.clear(),I=0;I0&&this._partialOutput.getBytes(this._partialBytes),f>0&&!o)return n.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(f-this._partialBytes)),this._partialBytes=f,!0;e.putBytes(this._partialOutput.getBytes(d-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),inc32(this._inBlock)},modes.gcm.prototype.decrypt=function(n,e,o){var d=n.length();if(d0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),inc32(this._inBlock),this._hashBlock[0]=n.getInt32(),this._hashBlock[1]=n.getInt32(),this._hashBlock[2]=n.getInt32(),this._hashBlock[3]=n.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var I=0;I0;--d)e[d]=n[d]>>>1|(1&n[d-1])<<31;e[0]=n[0]>>>1,o&&(e[0]^=this._R)},modes.gcm.prototype.tableMultiply=function(n){for(var e=[0,0,0,0],o=0;o<32;++o){var d=n[o/8|0]>>>4*(7-o%8)&15,I=this._m[o][d];e[0]^=I[0],e[1]^=I[1],e[2]^=I[2],e[3]^=I[3]}return e},modes.gcm.prototype.ghash=function(n,e,o){return e[0]^=o[0],e[1]^=o[1],e[2]^=o[2],e[3]^=o[3],this.tableMultiply(e)},modes.gcm.prototype.generateHashTable=function(n,e){for(var o=8/e,d=4*o,I=16*o,f=new Array(I),S=0;S>>1,I=new Array(o);I[d]=n.slice(0);for(var f=d>>>1;f>0;)this.pow(I[2*f],I[f]=[]),f>>=1;for(f=2;f>>=2,d=0;d>8^255&f^99,sbox[x]=f,isbox[f]=x,v=(S=n[f])<<24^f<<16^f<<8^f^S,L=((o=n[x])^(d=n[o])^(I=n[d]))<<24^(x^I)<<16^(x^d^I)<<8^x^o^I;for(var Y=0;Y<4;++Y)mix[Y][x]=v,imix[Y][f]=L,v=v<<24|v>>>8,L=L<<24|L>>>8;x===0?x=F=1:(x=o^n[n[n[o^I]]],F^=n[n[F]])}}function _expandKey(n,e){for(var o,d=n.slice(0),I=1,f=d.length,S=Nb*(f+6+1),v=f;v>>16&255]<<24^sbox[o>>>8&255]<<16^sbox[255&o]<<8^sbox[o>>>24]^rcon[I]<<24,I++):f>6&&v%f===4&&(o=sbox[o>>>24]<<24^sbox[o>>>16&255]<<16^sbox[o>>>8&255]<<8^sbox[255&o]),d[v]=d[v-f]^o;if(e){for(var L,x=imix[0],F=imix[1],Y=imix[2],j=imix[3],W=d.slice(0),re=(v=0,(S=d.length)-Nb);v>>24]]^F[sbox[L>>>16&255]]^Y[sbox[L>>>8&255]]^j[sbox[255&L]];d=W}return d}function _updateBlock(n,e,o,d){var I,f,S,v,L,x,F,Y,j,W,re,ee,he=n.length/4-1;d?(I=imix[0],f=imix[1],S=imix[2],v=imix[3],L=isbox):(I=mix[0],f=mix[1],S=mix[2],v=mix[3],L=sbox),x=e[0]^n[0],F=e[d?3:1]^n[1],Y=e[2]^n[2],j=e[d?1:3]^n[3];for(var ue=3,Ee=1;Ee>>24]^f[F>>>16&255]^S[Y>>>8&255]^v[255&j]^n[++ue],re=I[F>>>24]^f[Y>>>16&255]^S[j>>>8&255]^v[255&x]^n[++ue],ee=I[Y>>>24]^f[j>>>16&255]^S[x>>>8&255]^v[255&F]^n[++ue],j=I[j>>>24]^f[x>>>16&255]^S[F>>>8&255]^v[255&Y]^n[++ue],x=W,F=re,Y=ee;o[0]=L[x>>>24]<<24^L[F>>>16&255]<<16^L[Y>>>8&255]<<8^L[255&j]^n[++ue],o[d?3:1]=L[F>>>24]<<24^L[Y>>>16&255]<<16^L[j>>>8&255]<<8^L[255&x]^n[++ue],o[2]=L[Y>>>24]<<24^L[j>>>16&255]<<16^L[x>>>8&255]<<8^L[255&F]^n[++ue],o[d?1:3]=L[j>>>24]<<24^L[x>>>16&255]<<16^L[F>>>8&255]<<8^L[255&Y]^n[++ue]}function _createCipher(n){var e,o="AES-"+((n=n||{}).mode||"CBC").toUpperCase(),d=(e=n.decrypt?forge.cipher.createDecipher(o,n.key):forge.cipher.createCipher(o,n.key)).start;return e.start=function(I,f){var S=null;f instanceof forge.util.ByteBuffer&&(S=f,f={}),(f=f||{}).output=S,f.iv=I,d.call(e,f)},e}function isNil(n){return n==null}var isNil_1=isNil,isNil$1=getDefaultExportFromCjs(isNil_1);function copyArray$3(n,e){var o=-1,d=n.length;for(e||(e=Array(d));++o-1&&n%1==0&&n-1&&n%1==0&&n<=MAX_SAFE_INTEGER}var isLength_1=isLength$3,baseGetTag$4=_baseGetTag,isLength$2=isLength_1,isObjectLike$6=isObjectLike_1,argsTag$2="[object Arguments]",arrayTag$2="[object Array]",boolTag$3="[object Boolean]",dateTag$3="[object Date]",errorTag$2="[object Error]",funcTag$2="[object Function]",mapTag$5="[object Map]",numberTag$3="[object Number]",objectTag$4="[object Object]",regexpTag$3="[object RegExp]",setTag$5="[object Set]",stringTag$3="[object String]",weakMapTag$2="[object WeakMap]",arrayBufferTag$3="[object ArrayBuffer]",dataViewTag$4="[object DataView]",float32Tag$2="[object Float32Array]",float64Tag$2="[object Float64Array]",int8Tag$2="[object Int8Array]",int16Tag$2="[object Int16Array]",int32Tag$2="[object Int32Array]",uint8Tag$2="[object Uint8Array]",uint8ClampedTag$2="[object Uint8ClampedArray]",uint16Tag$2="[object Uint16Array]",uint32Tag$2="[object Uint32Array]",typedArrayTags={};function baseIsTypedArray$1(n){return isObjectLike$6(n)&&isLength$2(n.length)&&!!typedArrayTags[baseGetTag$4(n)]}typedArrayTags[float32Tag$2]=typedArrayTags[float64Tag$2]=typedArrayTags[int8Tag$2]=typedArrayTags[int16Tag$2]=typedArrayTags[int32Tag$2]=typedArrayTags[uint8Tag$2]=typedArrayTags[uint8ClampedTag$2]=typedArrayTags[uint16Tag$2]=typedArrayTags[uint32Tag$2]=!0,typedArrayTags[argsTag$2]=typedArrayTags[arrayTag$2]=typedArrayTags[arrayBufferTag$3]=typedArrayTags[boolTag$3]=typedArrayTags[dataViewTag$4]=typedArrayTags[dateTag$3]=typedArrayTags[errorTag$2]=typedArrayTags[funcTag$2]=typedArrayTags[mapTag$5]=typedArrayTags[numberTag$3]=typedArrayTags[objectTag$4]=typedArrayTags[regexpTag$3]=typedArrayTags[setTag$5]=typedArrayTags[stringTag$3]=typedArrayTags[weakMapTag$2]=!1;var _baseIsTypedArray=baseIsTypedArray$1;function baseUnary$4(n){return function(e){return n(e)}}var _baseUnary=baseUnary$4,_nodeUtil={exports:{}};_nodeUtil.exports,function(n,e){var o=_freeGlobal,d=e&&!e.nodeType&&e,I=d&&n&&!n.nodeType&&n,f=I&&I.exports===d&&o.process,S=function(){try{var v=I&&I.require&&I.require("util").types;return v||f&&f.binding&&f.binding("util")}catch{}}();n.exports=S}(_nodeUtil,_nodeUtil.exports);var _nodeUtilExports=_nodeUtil.exports,baseIsTypedArray=_baseIsTypedArray,baseUnary$3=_baseUnary,nodeUtil$2=_nodeUtilExports,nodeIsTypedArray=nodeUtil$2&&nodeUtil$2.isTypedArray,isTypedArray$3=nodeIsTypedArray?baseUnary$3(nodeIsTypedArray):baseIsTypedArray,isTypedArray_1=isTypedArray$3,baseTimes=_baseTimes,isArguments$3=isArguments_1,isArray$e=isArray_1$1,isBuffer$3=isBufferExports,isIndex$3=_isIndex,isTypedArray$2=isTypedArray_1,objectProto$c=Object.prototype,hasOwnProperty$a=objectProto$c.hasOwnProperty;function arrayLikeKeys$2(n,e){var o=isArray$e(n),d=!o&&isArguments$3(n),I=!o&&!d&&isBuffer$3(n),f=!o&&!d&&!I&&isTypedArray$2(n),S=o||d||I||f,v=S?baseTimes(n.length,String):[],L=v.length;for(var x in n)!e&&!hasOwnProperty$a.call(n,x)||S&&(x=="length"||I&&(x=="offset"||x=="parent")||f&&(x=="buffer"||x=="byteLength"||x=="byteOffset")||isIndex$3(x,L))||v.push(x);return v}var _arrayLikeKeys=arrayLikeKeys$2,objectProto$b=Object.prototype;function isPrototype$3(n){var e=n&&n.constructor;return n===(typeof e=="function"&&e.prototype||objectProto$b)}var _isPrototype=isPrototype$3;function overArg$2(n,e){return function(o){return n(e(o))}}var _overArg=overArg$2,overArg$1=_overArg,nativeKeys$1=overArg$1(Object.keys,Object),_nativeKeys=nativeKeys$1,isPrototype$2=_isPrototype,nativeKeys=_nativeKeys,objectProto$a=Object.prototype,hasOwnProperty$9=objectProto$a.hasOwnProperty;function baseKeys$1(n){if(!isPrototype$2(n))return nativeKeys(n);var e=[];for(var o in Object(n))hasOwnProperty$9.call(n,o)&&o!="constructor"&&e.push(o);return e}var _baseKeys=baseKeys$1;function isObject$d(n){var e=typeof n;return n!=null&&(e=="object"||e=="function")}var isObject_1$1=isObject$d,baseGetTag$3=_baseGetTag,isObject$c=isObject_1$1,asyncTag="[object AsyncFunction]",funcTag$1="[object Function]",genTag$1="[object GeneratorFunction]",proxyTag="[object Proxy]";function isFunction$6(n){if(!isObject$c(n))return!1;var e=baseGetTag$3(n);return e==funcTag$1||e==genTag$1||e==asyncTag||e==proxyTag}var isFunction_1$1=isFunction$6,isFunction$5=isFunction_1$1,isLength$1=isLength_1;function isArrayLike$8(n){return n!=null&&isLength$1(n.length)&&!isFunction$5(n)}var isArrayLike_1=isArrayLike$8,arrayLikeKeys$1=_arrayLikeKeys,baseKeys=_baseKeys,isArrayLike$7=isArrayLike_1;function keys$7(n){return isArrayLike$7(n)?arrayLikeKeys$1(n):baseKeys(n)}var keys_1=keys$7,baseValues=_baseValues,keys$6=keys_1;function values$2(n){return n==null?[]:baseValues(n,keys$6(n))}var values_1=values$2,values$3=getDefaultExportFromCjs(values_1),shuffleSelf=_shuffleSelf,values$1=values_1;function baseShuffle$1(n){return shuffleSelf(values$1(n))}var _baseShuffle=baseShuffle$1,arrayShuffle=_arrayShuffle,baseShuffle=_baseShuffle,isArray$d=isArray_1$1;function shuffle(n){return(isArray$d(n)?arrayShuffle:baseShuffle)(n)}var shuffle_1=shuffle,shuffle$1=getDefaultExportFromCjs(shuffle_1);function arraySome$1(n,e){for(var o=-1,d=n==null?0:n.length;++o-1}var _listCacheHas=listCacheHas$1,assocIndexOf=_assocIndexOf;function listCacheSet$1(n,e){var o=this.__data__,d=assocIndexOf(o,n);return d<0?(++this.size,o.push([n,e])):o[d][1]=e,this}var _listCacheSet=listCacheSet$1,listCacheClear=_listCacheClear,listCacheDelete=_listCacheDelete,listCacheGet=_listCacheGet,listCacheHas=_listCacheHas,listCacheSet=_listCacheSet;function ListCache$4(n){var e=-1,o=n==null?0:n.length;for(this.clear();++ev))return!1;var x=f.get(n),F=f.get(e);if(x&&F)return x==e&&F==n;var Y=-1,j=!0,W=o&COMPARE_UNORDERED_FLAG$3?new SetCache$1:void 0;for(f.set(n,e),f.set(e,n);++Y0&&o(v)?e>1?baseFlatten$2(v,e-1,o,d,I):arrayPush$1(I,v):d||(I[I.length]=v)}return I}var _baseFlatten=baseFlatten$2,baseEach=_baseEach,isArrayLike$4=isArrayLike_1;function baseMap$1(n,e){var o=-1,d=isArrayLike$4(n)?Array(n.length):[];return baseEach(n,function(I,f,S){d[++o]=e(I,f,S)}),d}var _baseMap=baseMap$1;function baseSortBy$1(n,e){var o=n.length;for(n.sort(e);o--;)n[o]=n[o].value;return n}var _baseSortBy=baseSortBy$1,isSymbol$2=isSymbol_1;function compareAscending$1(n,e){if(n!==e){var o=n!==void 0,d=n===null,I=n==n,f=isSymbol$2(n),S=e!==void 0,v=e===null,L=e==e,x=isSymbol$2(e);if(!v&&!x&&!f&&n>e||f&&S&&L&&!v&&!x||d&&S&&L||!o&&L||!I)return 1;if(!d&&!f&&!x&&n=v?L:L*(o[d]=="desc"?-1:1)}return n.index-e.index}var _compareMultiple=compareMultiple$1,arrayMap$2=_arrayMap,baseGet$2=_baseGet,baseIteratee$6=_baseIteratee,baseMap=_baseMap,baseSortBy=_baseSortBy,baseUnary$2=_baseUnary,compareMultiple=_compareMultiple,identity$2=identity_1,isArray$4=isArray_1$1;function baseOrderBy$1(n,e,o){e=e.length?arrayMap$2(e,function(f){return isArray$4(f)?function(S){return baseGet$2(S,f.length===1?f[0]:f)}:f}):[identity$2];var d=-1;e=arrayMap$2(e,baseUnary$2(baseIteratee$6));var I=baseMap(n,function(f,S,v){return{criteria:arrayMap$2(e,function(L){return L(f)}),index:++d,value:f}});return baseSortBy(I,function(f,S){return compareMultiple(f,S,o)})}var _baseOrderBy=baseOrderBy$1;function apply$1(n,e,o){switch(o.length){case 0:return n.call(e);case 1:return n.call(e,o[0]);case 2:return n.call(e,o[0],o[1]);case 3:return n.call(e,o[0],o[1],o[2])}return n.apply(e,o)}var _apply=apply$1,apply=_apply,nativeMax$2=Math.max;function overRest$2(n,e,o){return e=nativeMax$2(e===void 0?n.length-1:e,0),function(){for(var d=arguments,I=-1,f=nativeMax$2(d.length-e,0),S=Array(f);++I0){if(++e>=HOT_COUNT)return arguments[0]}else e=0;return n.apply(void 0,arguments)}}var _shortOut=shortOut$1,baseSetToString=_baseSetToString,shortOut=_shortOut,setToString$2=shortOut(baseSetToString),_setToString=setToString$2,identity=identity_1,overRest$1=_overRest,setToString$1=_setToString;function baseRest$2(n,e){return setToString$1(overRest$1(n,e,identity),n+"")}var _baseRest=baseRest$2,baseFlatten$1=_baseFlatten,baseOrderBy=_baseOrderBy,baseRest$1=_baseRest,isIterateeCall$1=_isIterateeCall,sortBy=baseRest$1(function(n,e){if(n==null)return[];var o=e.length;return o>1&&isIterateeCall$1(n,e[0],e[1])?e=[]:o>2&&isIterateeCall$1(e[0],e[1],e[2])&&(e=[e[0]]),baseOrderBy(n,baseFlatten$1(e,1),[])}),sortBy_1=sortBy,sortBy$1=getDefaultExportFromCjs(sortBy_1),baseRandom=_baseRandom;function arraySample$2(n){var e=n.length;return e?n[baseRandom(0,e-1)]:void 0}var _arraySample=arraySample$2,arraySample$1=_arraySample,values=values_1;function baseSample$1(n){return arraySample$1(values(n))}var _baseSample=baseSample$1,arraySample=_arraySample,baseSample=_baseSample,isArray$3=isArray_1$1;function sample(n){return(isArray$3(n)?arraySample:baseSample)(n)}var sample_1=sample,sample$1=getDefaultExportFromCjs(sample_1),reWhitespace=/\s/;function trimmedEndIndex$1(n){for(var e=n.length;e--&&reWhitespace.test(n.charAt(e)););return e}var _trimmedEndIndex=trimmedEndIndex$1,trimmedEndIndex=_trimmedEndIndex,reTrimStart$1=/^\s+/;function baseTrim$1(n){return n&&n.slice(0,trimmedEndIndex(n)+1).replace(reTrimStart$1,"")}var _baseTrim=baseTrim$1,baseTrim=_baseTrim,isObject$8=isObject_1$1,isSymbol$1=isSymbol_1,NAN=NaN,reIsBadHex=/^[-+]0x[0-9a-f]+$/i,reIsBinary=/^0b[01]+$/i,reIsOctal=/^0o[0-7]+$/i,freeParseInt=parseInt;function toNumber$1(n){if(typeof n=="number")return n;if(isSymbol$1(n))return NAN;if(isObject$8(n)){var e=typeof n.valueOf=="function"?n.valueOf():n;n=isObject$8(e)?e+"":e}if(typeof n!="string")return n===0?n:+n;n=baseTrim(n);var o=reIsBinary.test(n);return o||reIsOctal.test(n)?freeParseInt(n.slice(2),o?2:8):reIsBadHex.test(n)?NAN:+n}var toNumber_1=toNumber$1,toNumber=toNumber_1,INFINITY$1=1/0,MAX_INTEGER=17976931348623157e292;function toFinite$1(n){return n?(n=toNumber(n))===INFINITY$1||n===-INFINITY$1?(n<0?-1:1)*MAX_INTEGER:n==n?n:0:n===0?n:0}var toFinite_1=toFinite$1;function compact(n){for(var e=-1,o=n==null?0:n.length,d=0,I=[];++e1?o[I-1]:void 0,S=I>2?o[2]:void 0;for(f=n.length>3&&typeof f=="function"?(I--,f):void 0,S&&isIterateeCall(o[0],o[1],S)&&(f=I<3?void 0:f,I=1),e=Object(e);++dI?0:I+e),(o=o>I?I:o)<0&&(o+=I),I=e>o?0:o-e>>>0,e>>>=0;for(var f=Array(I);++d1),f}),copyObject(n,getAllKeysIn$1(n),o),d&&(o=baseClone(o,CLONE_DEEP_FLAG|CLONE_FLAT_FLAG|CLONE_SYMBOLS_FLAG,customOmitClone));for(var I=e.length;I--;)baseUnset(o,e[I]);return o}),omit_1=omit,omit$1=getDefaultExportFromCjs(omit_1),root=_root,toString=toString_1,reTrimStart=/^\s+/,nativeParseInt=root.parseInt;function parseInt$1(n,e,o){return o||e==null?e=0:e&&(e=+e),nativeParseInt(toString(n).replace(reTrimStart,""),e||0)}var _parseInt=parseInt$1,parseInt$2=getDefaultExportFromCjs(_parseInt);function isUndefined$1(n){return n===void 0}var isUndefined_1=isUndefined$1,isUndefined$2=getDefaultExportFromCjs(isUndefined_1),FUNC_ERROR_TEXT="Expected a function";function negate$1(n){if(typeof n!="function")throw new TypeError(FUNC_ERROR_TEXT);return function(){var e=arguments;switch(e.length){case 0:return!n.call(this);case 1:return!n.call(this,e[0]);case 2:return!n.call(this,e[0],e[1]);case 3:return!n.call(this,e[0],e[1],e[2])}return!n.apply(this,e)}}var negate_1=negate$1,assignValue=_assignValue,castPath$1=_castPath,isIndex=_isIndex,isObject$2=isObject_1$1,toKey=_toKey;function baseSet$1(n,e,o,d){if(!isObject$2(n))return n;for(var I=-1,f=(e=castPath$1(e,n)).length,S=f-1,v=n;v!=null&&++I-1?I[f?e[S]:S]:void 0}}var _createFind=createFind$1;function baseFindIndex$3(n,e,o,d){for(var I=n.length,f=o+(d?1:-1);d?f--:++f-1}var _arrayIncludes=arrayIncludes$1;function arrayIncludesWith$1(n,e,o){for(var d=-1,I=n==null?0:n.length;++d=LARGE_ARRAY_SIZE){var x=e?null:createSet(n);if(x)return setToArray(x);S=!1,I=cacheHas,L=new SetCache}else L=e?[]:v;e:for(;++d100?100:typeof o=="number"?o:SUB_STREAM_CHANNEL_LIMITATION;MUTABLE_PARAMS.STREAM_CHANNEL_COUNT=d;break;case"MESSAGE_CHANNEL_COUNT":MUTABLE_PARAMS.MESSAGE_CHANNEL_COUNT=typeof o=="number"?o:MAX_JOINED_CHANNELS;case"HISTORY_MSG_COUNT_LIMIT":MUTABLE_PARAMS.HISTORY_MSG_COUNT_LIMIT=typeof o=="number"?o:GET_MESSAGE_MAX_COUNT;break;case"API_RATE_LIMIT":if(isNil$1(o))MUTABLE_PARAMS.API_RATE_LIMIT=DEFAULT_API_RATE_LIMIT;else{if(!(o instanceof Map)){console.warn("setParameter: API_RATE_LIMIT value is not a Map");const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_PARAMETER);throw new RtmInvalidArgumentError("set parameter",[f],I)}{const I=o.entries();Array.from(I).forEach(f=>{let[S,v]=f;typeof v=="number"&&MUTABLE_PARAMS.API_RATE_LIMIT.set(S,v)})}}break;default:MUTABLE_PARAMS[e]=o}}_getParameter(e){return MUTABLE_PARAMS[e]}setParameter(e,o){return this._setParameter(e,o)}getParameter(e){return this._getParameter(e)}}const p=new Parameter,setParameter=p.setParameter.bind(p),getParameter=p.getParameter.bind(p);function setVidParameter(n,e){const o=getParameter("VID");o.set(n,e),setParameter("VID",o)}function catchError(n){return function(e){var o=new CatchOperator(n),d=e.lift(o);return o.caught=d}}var CatchOperator=function(){function n(e){this.selector=e}return n.prototype.call=function(e,o){return o.subscribe(new CatchSubscriber(e,this.selector,this.caught))},n}(),CatchSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.selector=d,f.caught=I,f}return __extends$3(e,n),e.prototype.error=function(o){if(!this.isStopped){var d=void 0;try{d=this.selector(o,this.caught)}catch(S){return void n.prototype.error.call(this,S)}this._unsubscribeAndRecycle();var I=new SimpleInnerSubscriber(this);this.add(I);var f=innerSubscribe(d,I);f!==I&&this.add(f)}},e}(SimpleOuterSubscriber);function concatMap(n,e){return mergeMap(n,e,1)}function defaultIfEmpty(n){return n===void 0&&(n=null),function(e){return e.lift(new DefaultIfEmptyOperator(n))}}var DefaultIfEmptyOperator=function(){function n(e){this.defaultValue=e}return n.prototype.call=function(e,o){return o.subscribe(new DefaultIfEmptySubscriber(e,this.defaultValue))},n}(),DefaultIfEmptySubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.defaultValue=d,I.isEmpty=!0,I}return __extends$3(e,n),e.prototype._next=function(o){this.isEmpty=!1,this.destination.next(o)},e.prototype._complete=function(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()},e}(Subscriber);function isDate(n){return n instanceof Date&&!isNaN(+n)}function delay(n,e){e===void 0&&(e=async);var o=isDate(n)?+n-e.now():Math.abs(n);return function(d){return d.lift(new DelayOperator(o,e))}}var DelayOperator=function(){function n(e,o){this.delay=e,this.scheduler=o}return n.prototype.call=function(e,o){return o.subscribe(new DelaySubscriber(e,this.delay,this.scheduler))},n}(),DelaySubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.delay=d,f.scheduler=I,f.queue=[],f.active=!1,f.errored=!1,f}return __extends$3(e,n),e.dispatch=function(o){for(var d=o.source,I=d.queue,f=o.scheduler,S=o.destination;I.length>0&&I[0].time-f.now()<=0;)I.shift().notification.observe(S);if(I.length>0){var v=Math.max(0,I[0].time-f.now());this.schedule(o,v)}else this.unsubscribe(),d.active=!1},e.prototype._schedule=function(o){this.active=!0,this.destination.add(o.schedule(e.dispatch,this.delay,{source:this,destination:this.destination,scheduler:o}))},e.prototype.scheduleNotification=function(o){if(this.errored!==!0){var d=this.scheduler,I=new DelayMessage(d.now()+this.delay,o);this.queue.push(I),this.active===!1&&this._schedule(d)}},e.prototype._next=function(o){this.scheduleNotification(Notification.createNext(o))},e.prototype._error=function(o){this.errored=!0,this.queue=[],this.destination.error(o),this.unsubscribe()},e.prototype._complete=function(){this.scheduleNotification(Notification.createComplete()),this.unsubscribe()},e}(Subscriber),DelayMessage=function(){return function(n,e){this.time=n,this.notification=e}}();function distinct(n,e){return function(o){return o.lift(new DistinctOperator(n,e))}}var DistinctOperator=function(){function n(e,o){this.keySelector=e,this.flushes=o}return n.prototype.call=function(e,o){return o.subscribe(new DistinctSubscriber(e,this.keySelector,this.flushes))},n}(),DistinctSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.keySelector=d,f.values=new Set,I&&f.add(innerSubscribe(I,new SimpleInnerSubscriber(f))),f}return __extends$3(e,n),e.prototype.notifyNext=function(){this.values.clear()},e.prototype.notifyError=function(o){this._error(o)},e.prototype._next=function(o){this.keySelector?this._useKeySelector(o):this._finalizeNext(o,o)},e.prototype._useKeySelector=function(o){var d,I=this.destination;try{d=this.keySelector(o)}catch(f){return void I.error(f)}this._finalizeNext(d,o)},e.prototype._finalizeNext=function(o,d){var I=this.values;I.has(o)||(I.add(o),this.destination.next(d))},e}(SimpleOuterSubscriber);function throwIfEmpty(n){return n===void 0&&(n=defaultErrorFactory),function(e){return e.lift(new ThrowIfEmptyOperator(n))}}var ThrowIfEmptyOperator=function(){function n(e){this.errorFactory=e}return n.prototype.call=function(e,o){return o.subscribe(new ThrowIfEmptySubscriber(e,this.errorFactory))},n}(),ThrowIfEmptySubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.errorFactory=d,I.hasValue=!1,I}return __extends$3(e,n),e.prototype._next=function(o){this.hasValue=!0,this.destination.next(o)},e.prototype._complete=function(){if(this.hasValue)return this.destination.complete();var o=void 0;try{o=this.errorFactory()}catch(d){o=d}this.destination.error(o)},e}(Subscriber);function defaultErrorFactory(){return new EmptyError}function take(n){return function(e){return n===0?empty():e.lift(new TakeOperator(n))}}var TakeOperator=function(){function n(e){if(this.total=e,this.total<0)throw new ArgumentOutOfRangeError}return n.prototype.call=function(e,o){return o.subscribe(new TakeSubscriber(e,this.total))},n}(),TakeSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.total=d,I.count=0,I}return __extends$3(e,n),e.prototype._next=function(o){var d=this.total,I=++this.count;I<=d&&(this.destination.next(o),I===d&&(this.destination.complete(),this.unsubscribe()))},e}(Subscriber);function finalize(n){return function(e){return e.lift(new FinallyOperator(n))}}var FinallyOperator=function(){function n(e){this.callback=e}return n.prototype.call=function(e,o){return o.subscribe(new FinallySubscriber(e,this.callback))},n}(),FinallySubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.add(new Subscription$2(d)),I}return __extends$3(e,n),e}(Subscriber);function first(n,e){var o=arguments.length>=2;return function(d){return d.pipe(n?filter(function(I,f){return n(I,f,d)}):identity$5,take(1),o?defaultIfEmpty(e):throwIfEmpty(function(){return new EmptyError}))}}function ignoreElements(){return function(n){return n.lift(new IgnoreElementsOperator)}}var IgnoreElementsOperator=function(){function n(){}return n.prototype.call=function(e,o){return o.subscribe(new IgnoreElementsSubscriber(e))},n}(),IgnoreElementsSubscriber=function(n){function e(){return n!==null&&n.apply(this,arguments)||this}return __extends$3(e,n),e.prototype._next=function(o){},e}(Subscriber);function takeLast(n){return function(e){return e.lift(new TakeLastOperator(n))}}var TakeLastOperator=function(){function n(e){if(this.total=e,this.total<0)throw new ArgumentOutOfRangeError}return n.prototype.call=function(e,o){return o.subscribe(new TakeLastSubscriber(e,this.total))},n}(),TakeLastSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.total=d,I.ring=new Array,I.count=0,I}return __extends$3(e,n),e.prototype._next=function(o){var d=this.ring,I=this.total,f=this.count++;d.length0)for(var I=this.count>=this.total?this.total:this.count,f=this.ring,S=0;S=2&&(o=!0),function(d){return d.lift(new ScanOperator(n,e,o))}}var ScanOperator=function(){function n(e,o,d){d===void 0&&(d=!1),this.accumulator=e,this.seed=o,this.hasSeed=d}return n.prototype.call=function(e,o){return o.subscribe(new ScanSubscriber(e,this.accumulator,this.seed,this.hasSeed))},n}(),ScanSubscriber=function(n){function e(o,d,I,f){var S=n.call(this,o)||this;return S.accumulator=d,S._seed=I,S.hasSeed=f,S.index=0,S}return __extends$3(e,n),Object.defineProperty(e.prototype,"seed",{get:function(){return this._seed},set:function(o){this.hasSeed=!0,this._seed=o},enumerable:!0,configurable:!0}),e.prototype._next=function(o){if(this.hasSeed)return this._tryNext(o);this.seed=o,this.destination.next(o)},e.prototype._tryNext=function(o){var d,I=this.index++;try{d=this.accumulator(this.seed,o,I)}catch(f){this.destination.error(f)}this.seed=d,this.destination.next(d)},e}(Subscriber);function reduce(n,e){return arguments.length>=2?function(o){return pipe(scan(n,e),takeLast(1),defaultIfEmpty(e))(o)}:function(o){return pipe(scan(function(d,I,f){return n(d,I,f+1)}),takeLast(1))(o)}}function multicast(n,e){return function(o){var d;d=typeof n=="function"?n:function(){return n};var I=Object.create(o,connectableObservableDescriptor);return I.source=o,I.subjectFactory=d,I}}function retryWhen(n){return function(e){return e.lift(new RetryWhenOperator(n,e))}}var RetryWhenOperator=function(){function n(e,o){this.notifier=e,this.source=o}return n.prototype.call=function(e,o){return o.subscribe(new RetryWhenSubscriber(e,this.notifier,this.source))},n}(),RetryWhenSubscriber=function(n){function e(o,d,I){var f=n.call(this,o)||this;return f.notifier=d,f.source=I,f}return __extends$3(e,n),e.prototype.error=function(o){if(!this.isStopped){var d=this.errors,I=this.retries,f=this.retriesSubscription;if(I)this.errors=void 0,this.retriesSubscription=void 0;else{d=new Subject;try{I=(0,this.notifier)(d)}catch(S){return n.prototype.error.call(this,S)}f=innerSubscribe(I,new SimpleInnerSubscriber(this))}this._unsubscribeAndRecycle(),this.errors=d,this.retries=I,this.retriesSubscription=f,d.next(o)}},e.prototype._unsubscribe=function(){var o=this.errors,d=this.retriesSubscription;o&&(o.unsubscribe(),this.errors=void 0),d&&(d.unsubscribe(),this.retriesSubscription=void 0),this.retries=void 0},e.prototype.notifyNext=function(){var o=this._unsubscribe;this._unsubscribe=null,this._unsubscribeAndRecycle(),this._unsubscribe=o,this.source.subscribe(this)},e}(SimpleOuterSubscriber);function shareSubjectFactory(){return new Subject}function share(){return function(n){return refCount()(multicast(shareSubjectFactory)(n))}}function shareReplay(n,e,o){var d;return d={bufferSize:n,windowTime:e,refCount:!1,scheduler:o},function(I){return I.lift(shareReplayOperator(d))}}function shareReplayOperator(n){var e,o,d=n.bufferSize,I=d===void 0?Number.POSITIVE_INFINITY:d,f=n.windowTime,S=f===void 0?Number.POSITIVE_INFINITY:f,v=n.refCount,L=n.scheduler,x=0,F=!1,Y=!1;return function(j){var W;x++,!e||F?(F=!1,e=new ReplaySubject(I,S,L),W=e.subscribe(this),o=j.subscribe({next:function(re){e.next(re)},error:function(re){F=!0,e.error(re)},complete:function(){Y=!0,o=void 0,e.complete()}}),Y&&(o=void 0)):W=e.subscribe(this),this.add(function(){x--,W.unsubscribe(),W=void 0,o&&!Y&&v&&x===0&&(o.unsubscribe(),o=void 0,e=void 0)})}}function switchMap(n,e){return function(o){return o.lift(new SwitchMapOperator(n))}}var SwitchMapOperator=function(){function n(e){this.project=e}return n.prototype.call=function(e,o){return o.subscribe(new SwitchMapSubscriber(e,this.project))},n}(),SwitchMapSubscriber=function(n){function e(o,d){var I=n.call(this,o)||this;return I.project=d,I.index=0,I}return __extends$3(e,n),e.prototype._next=function(o){var d,I=this.index++;try{d=this.project(o,I)}catch(f){return void this.destination.error(f)}this._innerSub(d)},e.prototype._innerSub=function(o){var d=this.innerSubscription;d&&d.unsubscribe();var I=new SimpleInnerSubscriber(this),f=this.destination;f.add(I),this.innerSubscription=innerSubscribe(o,I),this.innerSubscription!==I&&f.add(this.innerSubscription)},e.prototype._complete=function(){var o=this.innerSubscription;o&&!o.closed||n.prototype._complete.call(this),this.unsubscribe()},e.prototype._unsubscribe=function(){this.innerSubscription=void 0},e.prototype.notifyComplete=function(){this.innerSubscription=void 0,this.isStopped&&n.prototype._complete.call(this)},e.prototype.notifyNext=function(o){this.destination.next(o)},e}(SimpleOuterSubscriber);function switchAll(){return switchMap(identity$5)}function takeUntil(n){return function(e){return e.lift(new TakeUntilOperator(n))}}var TakeUntilOperator=function(){function n(e){this.notifier=e}return n.prototype.call=function(e,o){var d=new TakeUntilSubscriber(e),I=innerSubscribe(this.notifier,new SimpleInnerSubscriber(d));return I&&!d.seenValue?(d.add(I),o.subscribe(d)):d},n}(),TakeUntilSubscriber=function(n){function e(o){var d=n.call(this,o)||this;return d.seenValue=!1,d}return __extends$3(e,n),e.prototype.notifyNext=function(){this.seenValue=!0,this.complete()},e.prototype.notifyComplete=function(){},e}(SimpleOuterSubscriber);function tap(n,e,o){return function(d){return d.lift(new DoOperator(n,e,o))}}var DoOperator=function(){function n(e,o,d){this.nextOrObserver=e,this.error=o,this.complete=d}return n.prototype.call=function(e,o){return o.subscribe(new TapSubscriber(e,this.nextOrObserver,this.error,this.complete))},n}(),TapSubscriber=function(n){function e(o,d,I,f){var S=n.call(this,o)||this;return S._tapNext=noop$3,S._tapError=noop$3,S._tapComplete=noop$3,S._tapError=I||noop$3,S._tapComplete=f||noop$3,isFunction$7(d)?(S._context=S,S._tapNext=d):d&&(S._context=d,S._tapNext=d.next||noop$3,S._tapError=d.error||noop$3,S._tapComplete=d.complete||noop$3),S}return __extends$3(e,n),e.prototype._next=function(o){try{this._tapNext.call(this._context,o)}catch(d){return void this.destination.error(d)}this.destination.next(o)},e.prototype._error=function(o){try{this._tapError.call(this._context,o)}catch(d){return void this.destination.error(d)}this.destination.error(o)},e.prototype._complete=function(){try{this._tapComplete.call(this._context)}catch(o){return void this.destination.error(o)}return this.destination.complete()},e}(Subscriber),defaultThrottleConfig={leading:!0,trailing:!1};function throttleTime(n,e,o){return e===void 0&&(e=async),o===void 0&&(o=defaultThrottleConfig),function(d){return d.lift(new ThrottleTimeOperator(n,e,o.leading,o.trailing))}}var ThrottleTimeOperator=function(){function n(e,o,d,I){this.duration=e,this.scheduler=o,this.leading=d,this.trailing=I}return n.prototype.call=function(e,o){return o.subscribe(new ThrottleTimeSubscriber(e,this.duration,this.scheduler,this.leading,this.trailing))},n}(),ThrottleTimeSubscriber=function(n){function e(o,d,I,f,S){var v=n.call(this,o)||this;return v.duration=d,v.scheduler=I,v.leading=f,v.trailing=S,v._hasTrailingValue=!1,v._trailingValue=null,v}return __extends$3(e,n),e.prototype._next=function(o){this.throttled?this.trailing&&(this._trailingValue=o,this._hasTrailingValue=!0):(this.add(this.throttled=this.scheduler.schedule(dispatchNext,this.duration,{subscriber:this})),this.leading?this.destination.next(o):this.trailing&&(this._trailingValue=o,this._hasTrailingValue=!0))},e.prototype._complete=function(){this._hasTrailingValue?(this.destination.next(this._trailingValue),this.destination.complete()):this.destination.complete()},e.prototype.clearThrottle=function(){var o=this.throttled;o&&(this.trailing&&this._hasTrailingValue&&(this.destination.next(this._trailingValue),this._trailingValue=null,this._hasTrailingValue=!1),o.unsubscribe(),this.remove(o),this.throttled=null)},e}(Subscriber);function dispatchNext(n){n.subscriber.clearThrottle()}function timeoutWith(n,e,o){return o===void 0&&(o=async),function(d){var I=isDate(n),f=I?+n-o.now():Math.abs(n);return d.lift(new TimeoutWithOperator(f,I,e,o))}}var TimeoutWithOperator=function(){function n(e,o,d,I){this.waitFor=e,this.absoluteTimeout=o,this.withObservable=d,this.scheduler=I}return n.prototype.call=function(e,o){return o.subscribe(new TimeoutWithSubscriber(e,this.absoluteTimeout,this.waitFor,this.withObservable,this.scheduler))},n}(),TimeoutWithSubscriber=function(n){function e(o,d,I,f,S){var v=n.call(this,o)||this;return v.absoluteTimeout=d,v.waitFor=I,v.withObservable=f,v.scheduler=S,v.scheduleTimeout(),v}return __extends$3(e,n),e.dispatchTimeout=function(o){var d=o.withObservable;o._unsubscribeAndRecycle(),o.add(innerSubscribe(d,new SimpleInnerSubscriber(o)))},e.prototype.scheduleTimeout=function(){var o=this.action;o?this.action=o.schedule(this,this.waitFor):this.add(this.action=this.scheduler.schedule(e.dispatchTimeout,this.waitFor,this))},e.prototype._next=function(o){this.absoluteTimeout||this.scheduleTimeout(),n.prototype._next.call(this,o)},e.prototype._unsubscribe=function(){this.action=void 0,this.scheduler=null,this.withObservable=null},e}(SimpleOuterSubscriber);function timeout(n,e){return e===void 0&&(e=async),timeoutWith(n,throwError(new TimeoutError),e)}const UINT32_MAX=4294967295,ipKeywords=["ip","1","502"];function getRandomInt(n,e){const o=Math.ceil(n),d=Math.floor(e);return Math.floor(Math.random()*(d-o+1))+n}function getRandomUInt64(){const n=getRandomInt(0,UINT32_MAX),e=getRandomInt(1,UINT32_MAX);return new Long$1(n,e,!0)}function getSid(n){return n.toString().padEnd(32,"0")}function calIpDistance(n,e){const o=n.split(".").map(I=>Number(I)),d=e.split(".").map(I=>Number(I));return Math.sqrt(1e3*(o[0]-d[0])**2+100*(o[1]-d[1])**2+10*(o[2]-d[2])**2+1*(o[3]-d[3])**2)}function longToStringIfNeeded(n){return n.lessThanOrEqual(Number.MAX_SAFE_INTEGER)?n.toNumber():n.toString()}const prefixSeqMap=new Map;function uniquePrefixedId(n,e){const o="".concat(n).concat(e||""),d=prefixSeqMap.get(o)||1;return prefixSeqMap.set(o,d+1),"".concat(n).concat(d)}const getKeys=Object.keys,getEntries=Object.entries.bind(Object);function isLongNum(n){return typeof n=="number"||Long$1.isLong(n)}async function mockPromiseDelay(n,e){return new Promise(o=>{setTimeout(o,n)})}function replaceRange(n,e,o,d){return typeof n!="string"?"[Sensitive Info]":n.substring(0,e)+d+n.substring(o)}function maskIp(n){if(getParameter("SENSITIVE_LOG")){const e=/(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(?::(\d+))?/g;return n.replace(e,(o,d,I,f,S,v)=>v?"".concat(d,".*.*.").concat(S,":").concat(v):"".concat(d,".*.*.").concat(S))}return n}function replaceRangeWithAsterisk(n){const e=String(n),o=Math.floor(.7*e.length),d=e.length,I=d-o;return getParameter("SENSITIVE_LOG")?replaceRange(e,o,d,"*".repeat(I)):e}function concatenateUint8Array(){let n=0;for(var e=arguments.length,o=new Array(e),d=0;dI.byteLength){const L=new Uint8Array(f-I.byteLength);I=new Uint8Array([...I,...L])}const S=util$6.createBuffer(I),v=forgeCipher.createCipher("AES-GCM",util$6.createBuffer(e.slice(0,d)));if(v.start({iv:o}),v.update(S),v.finish()){const L=v.output.getBytes()+v.mode.tag.getBytes(),x=[];for(let F=0;F{const I=parseHost(d,e);return I.port&&(o=I.port),I.domain}),port:o}}function getSyncPacketUri(n){const e=Array.from(n.slice(2,4)),o=e[0],d=e[1];return new DataView(new Uint8Array([d,o]).buffer).getInt16(0)}function handleJoinOptionsAsDefault(n){var e,o,d,I;return{withLock:(e=n==null?void 0:n.withLock)!==null&&e!==void 0&&e,withMetadata:(o=n==null?void 0:n.withMetadata)!==null&&o!==void 0&&o,withPresence:(d=n==null?void 0:n.withPresence)===null||d===void 0||d,beQuiet:(I=n==null?void 0:n.beQuiet)!==null&&I!==void 0&&I}}function handleSubOptionsAsDefault(n){var e;return _objectSpread2(_objectSpread2({},handleJoinOptionsAsDefault(n)),{},{withMessage:(e=n==null?void 0:n.withMessage)===null||e===void 0||e})}function timeoutPromise(n,e,o,d,I){if(n)return new Promise((f,S)=>{const v=setTimeout(()=>{const{code:L,reason:x}=getErrorInfoByCode(d);S(new RtmTimeoutError(o,[x+"timeout occurred"],L))},e);n.then(L=>{clearTimeout(v),f(L)}).catch(L=>{if(clearTimeout(v),isRtmError(L)||I)S(L);else{var x;const{code:F,reason:Y}=getErrorInfoByCode(d);S(new RTMBaseError(o,[Y+((x=L==null?void 0:L.message)!==null&&x!==void 0?x:"")],F))}})})}const getReportLts=()=>Long$1.fromNumber(Date.now()),genTimeoutError=(n,e)=>of(void 0).pipe(delay(COMMON_REQUEST_TIMEOUT),map$1(()=>{throw new RtmTimeoutError(OperationName.rtm,[getErrorInfoByCode(n).reason||"Request timed out after ".concat(COMMON_REQUEST_TIMEOUT/1e3,"s")],n)})),addPeriodIfNeeded=n=>typeof n=="string"?n.endsWith(".")?n:"".concat(n,"."):n,throwInvalidPrivateConfig=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_PRIVATE_CONFIG);throw new RtmInvalidArgumentError(n,[d+e],o)};function optionalTimeout(n){return e=>n>0?e.pipe(timeout(1e3*n)):e}function genErrorMessage(n,e){const o=typeof e=="number"?e:e!==void 0&&typeof e!="string"?e.code:void 0,d=typeof e!="number"&&typeof e!="string"&&e!==void 0&&e.serverCode!==void 0?e.serverCode:void 0,I="".concat(o!==void 0?"Error Code ".concat(o):"").concat(d!==void 0?", server Code ".concat(d):"");let f;return f=typeof n=="string"&&n?addPeriodIfNeeded(n):Array.isArray(n)&&typeof n[0]=="string"&&n[0]?addPeriodIfNeeded(format$1(n[0],...n.slice(1))):"","".concat(I===""?"":"".concat(I," - ")).concat(f)}class RTMBaseError extends Error{constructor(e,o,d){var I;let f;super(genErrorMessage(o,d)),_defineProperty$1(this,"originalError",void 0),_defineProperty$1(this,"code",void 0),_defineProperty$1(this,"serverCode",void 0),_defineProperty$1(this,"error",void 0),_defineProperty$1(this,"reason",void 0),_defineProperty$1(this,"operation",void 0),_defineProperty$1(this,"errorCode",void 0),typeof d=="number"?this.code=d:typeof d=="string"?this.name=d:d!==void 0&&(d.originalError&&(this.originalError=d.originalError),d.code!==void 0&&(this.code=d.code),d.serverCode!==void 0&&(this.serverCode=d.serverCode)),f=typeof o=="string"&&o?addPeriodIfNeeded(o):Array.isArray(o)&&typeof o[0]=="string"&&o[0]?addPeriodIfNeeded(format$1(o[0],...o.slice(1))):"",this.error=!0,this.errorCode=(I=this.code)!==null&&I!==void 0?I:0,this.operation=e??"",this.reason=f}}class RtmInternalError extends Error{constructor(e,o){super(genErrorMessage(e,o)),_defineProperty$1(this,"name","RtmInternalError"),_defineProperty$1(this,"code",void 0),this.code=o}}const genError=()=>class extends RtmInternalError{constructor(n){const e=Object.keys(n);super(n[e[0]],e[0])}},CommonError=genError();class RtmTimeoutError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmTimeoutError")}}class RtmInvalidArgumentError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmInvalidArgumentError")}}class RtmInvalidStatusError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmInvalidStatusError")}}class RtmLimitExceededError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmLimitExceededError")}}class RtmInvokeTooOftenError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmInvokeTooOftenError")}}class RtmUnavailableError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmUnavailableError"),_defineProperty$1(this,"statusCode",void 0)}}class RtmUnauthenticatedError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmUnauthenticatedError"),_defineProperty$1(this,"serverCode",void 0)}}class RtmUnknownError extends RTMBaseError{constructor(){super(...arguments),_defineProperty$1(this,"name","RtmUnknownError")}}const isTimeout=n=>n instanceof RtmTimeoutError||n instanceof TimeoutError,isRtmError=n=>n instanceof RTMBaseError,isNoLogged=n=>n instanceof RtmInvalidStatusError,_excluded=["CODE"];function deepFreeze(n){return Object.getOwnPropertyNames(n).forEach(function(e){const o=n[e];typeof o=="object"&&o!==null&&deepFreeze(o)}),Object.freeze(n)}const AREA_DOMAIN_MAP=deepFreeze(AREA_DOMAIN_MAP$1),isContinent=n=>n in continentCountryMap,isCountry=n=>Object.values(continentCountryMap).flat().includes(n),getContinentByCountry=n=>{var e;return(e=getEntries(continentCountryMap).find(o=>{let[d,I]=o;return I.includes(n)}))===null||e===void 0?void 0:e[0]},sortAreasByWeight=n=>n.sort((e,o)=>areaWeights.indexOf(e)-areaWeights.indexOf(o)),getAreaDomainConfig=n=>{const e=new Set,o=sortAreasByWeight(n).slice(0,3).map(d=>{const I=AREA_DOMAIN_MAP[d];if(I===void 0)throw new RtmInternalError("invalid area key");const{CODE:f}=I,S=_objectWithoutProperties(I,_excluded);return e.add(f),S});if(o.length===0)throw new RtmInternalError("areas cannot be empty");return _objectSpread2({CODES:e},o.reduce((d,I)=>{for(let f=0,S=getEntries(d);fI!==AreaCodeMap.GLOBAL&&I!==AreaCodeMap.OVERSEA);if(isContinent(o)){const I=continentCountryMap[o],f=[...I??[],o];return getAreaDomainConfig(d.filter(S=>!f.includes(S)))}if(isCountry(o)){const I=getContinentByCountry(o);return getAreaDomainConfig(d.filter(f=>f!==o&&f!==I))}}if(isCountry(o)||isContinent(o))return getAreaDomainConfig(e);throw new RtmInvalidArgumentError("setArea","Invalid excludedArea area config")}let areaConfig;function setAreaConfig(n){areaConfig=n}const isInvalidAreaConfig=n=>{let e,{areaCodes:o,excludedArea:d}=n,I="",f=!1;if(Array.isArray(o)&&o.every(S=>S in AreaCode)?d!==void 0&&d===AreaCode.GLOBAL?(f=!0,I="Excluded area cannot be global"):d&&o.includes(d)?(f=!0,I="Excluded area cannot be in areaCodes"):d&&!(d in AreaCodeMap)&&(f=!0,I="Invalid excludedArea",e=d):(f=!0,I="Invalid area config"),f)throw areaConfig=void 0,setParameter("AREA_CONFIG",void 0),new RtmInvalidArgumentError("setArea",I,e)};function setArea(n){let{areaCodes:e,excludedArea:o}=n;if(isInvalidAreaConfig({areaCodes:e,excludedArea:o}),e.length===0&&o===void 0)return areaConfig=void 0,void setParameter("AREA_CONFIG",void 0);console.log(JSON.stringify({areaCodes:e,excludedArea:o}),"RTM setArea"),setAreaConfig(o===void 0?getAreaDomainConfig(e.map(d=>AreaCodeMap[d])):getAreaDomainConfigWithExclusion({areas:e.map(d=>AreaCodeMap[d]),excludedArea:AreaCodeMap[o]})),setParameter("AREA_CONFIG",{areaCodes:e,excludedArea:o})}function getDomain(n){let e=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],o=n.replace(/(https?:\/\/)?(www.)?/i,"");return e||(o=o.split(".").slice(o.split(".").length-2).join(".")),o.indexOf("/")!==-1?o.split("/")[0]:o}const getAreaCodeByApUrl=n=>{const e=getKeys(AREA_DOMAIN_MAP),o=getDomain(n);for(let d=0;d>>((3&e)<<3)&255;return rnds}}for(var rngBrowserExports=rngBrowser.exports,byteToHex=[],i=0;i<256;++i)byteToHex[i]=(i+256).toString(16).substr(1);function bytesToUuid$2(n,e){var o=e||0,d=byteToHex;return[d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],"-",d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]],d[n[o++]]].join("")}var bytesToUuid_1=bytesToUuid$2,rng$1=rngBrowserExports,bytesToUuid$1=bytesToUuid_1,_nodeId,_clockseq,_lastMSecs=0,_lastNSecs=0;function v1$1(n,e,o){var d=e&&o||0,I=e||[],f=(n=n||{}).node||_nodeId,S=n.clockseq!==void 0?n.clockseq:_clockseq;if(f==null||S==null){var v=rng$1();f==null&&(f=_nodeId=[1|v[0],v[1],v[2],v[3],v[4],v[5]]),S==null&&(S=_clockseq=16383&(v[6]<<8|v[7]))}var L=n.msecs!==void 0?n.msecs:new Date().getTime(),x=n.nsecs!==void 0?n.nsecs:_lastNSecs+1,F=L-_lastMSecs+(x-_lastNSecs)/1e4;if(F<0&&n.clockseq===void 0&&(S=S+1&16383),(F<0||L>_lastMSecs)&&n.nsecs===void 0&&(x=0),x>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=L,_lastNSecs=x,_clockseq=S;var Y=(1e4*(268435455&(L+=122192928e5))+x)%4294967296;I[d++]=Y>>>24&255,I[d++]=Y>>>16&255,I[d++]=Y>>>8&255,I[d++]=255&Y;var j=L/4294967296*1e4&268435455;I[d++]=j>>>8&255,I[d++]=255&j,I[d++]=j>>>24&15|16,I[d++]=j>>>16&255,I[d++]=S>>>8|128,I[d++]=255&S;for(var W=0;W<6;++W)I[d+W]=f[W];return e||bytesToUuid$1(I)}var v1_1=v1$1,rng=rngBrowserExports,bytesToUuid=bytesToUuid_1;function v4$1(n,e,o){var d=e&&o||0;typeof n=="string"&&(e=n==="binary"?new Array(16):null,n=null);var I=(n=n||{}).random||(n.rng||rng)();if(I[6]=15&I[6]|64,I[8]=63&I[8]|128,e)for(var f=0;f<16;++f)e[d+f]=I[f];return e||bytesToUuid(I)}var v4_1=v4$1,v1=v1_1,v4=v4_1,uuid=v4;uuid.v1=v1,uuid.v4=v4;var uuid_1=uuid,uuid$1=getDefaultExportFromCjs(uuid_1),events={exports:{}},R=typeof Reflect=="object"?Reflect:null,ReflectApply=R&&typeof R.apply=="function"?R.apply:function(n,e,o){return Function.prototype.apply.call(n,e,o)},ReflectOwnKeys;function ProcessEmitWarning(n){console&&console.warn&&console.warn(n)}ReflectOwnKeys=R&&typeof R.ownKeys=="function"?R.ownKeys:Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:function(n){return Object.getOwnPropertyNames(n)};var NumberIsNaN=Number.isNaN||function(n){return n!=n};function EventEmitter(){EventEmitter.init.call(this)}events.exports=EventEmitter,events.exports.once=once,EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._eventsCount=0,EventEmitter.prototype._maxListeners=void 0;var defaultMaxListeners=10;function checkListener(n){if(typeof n!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof n)}function _getMaxListeners(n){return n._maxListeners===void 0?EventEmitter.defaultMaxListeners:n._maxListeners}function _addListener(n,e,o,d){var I,f,S;if(checkListener(o),(f=n._events)===void 0?(f=n._events=Object.create(null),n._eventsCount=0):(f.newListener!==void 0&&(n.emit("newListener",e,o.listener?o.listener:o),f=n._events),S=f[e]),S===void 0)S=f[e]=o,++n._eventsCount;else if(typeof S=="function"?S=f[e]=d?[o,S]:[S,o]:d?S.unshift(o):S.push(o),(I=_getMaxListeners(n))>0&&S.length>I&&!S.warned){S.warned=!0;var v=new Error("Possible EventEmitter memory leak detected. "+S.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");v.name="MaxListenersExceededWarning",v.emitter=n,v.type=e,v.count=S.length,ProcessEmitWarning(v)}return n}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(n,e,o){var d={fired:!1,wrapFn:void 0,target:n,type:e,listener:o},I=onceWrapper.bind(d);return I.listener=o,d.wrapFn=I,I}function _listeners(n,e,o){var d=n._events;if(d===void 0)return[];var I=d[e];return I===void 0?[]:typeof I=="function"?o?[I.listener||I]:[I]:o?unwrapListeners(I):arrayClone(I,I.length)}function listenerCount(n){var e=this._events;if(e!==void 0){var o=e[n];if(typeof o=="function")return 1;if(o!==void 0)return o.length}return 0}function arrayClone(n,e){for(var o=new Array(e),d=0;d0&&(f=e[0]),f instanceof Error)throw f;var S=new Error("Unhandled error."+(f?" ("+f.message+")":""));throw S.context=f,S}var v=I[n];if(v===void 0)return!1;if(typeof v=="function")ReflectApply(v,this,e);else{var L=v.length,x=arrayClone(v,L);for(o=0;o=0;f--)if(o[f]===e||o[f].listener===e){S=o[f].listener,I=f;break}if(I<0)return this;I===0?o.shift():spliceOne(o,I),o.length===1&&(d[n]=o[0]),d.removeListener!==void 0&&this.emit("removeListener",n,S||e)}return this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.removeAllListeners=function(n){var e,o,d;if((o=this._events)===void 0)return this;if(o.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):o[n]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete o[n]),this;if(arguments.length===0){var I,f=Object.keys(o);for(d=0;d=0;d--)this.removeListener(n,e[d]);return this},EventEmitter.prototype.listeners=function(n){return _listeners(this,n,!0)},EventEmitter.prototype.rawListeners=function(n){return _listeners(this,n,!1)},EventEmitter.listenerCount=function(n,e){return typeof n.listenerCount=="function"?n.listenerCount(e):listenerCount.call(n,e)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function(){return this._eventsCount>0?ReflectOwnKeys(this._events):[]};var eventsExports=events.exports,EventEmitter$1=getDefaultExportFromCjs(eventsExports),key="__global_unique_id__",gud=function(){return commonjsGlobal$1[key]=(commonjsGlobal$1[key]||0)+1},gud$1=getDefaultExportFromCjs(gud);function getType(n){return Object.prototype.toString.call(n).slice(8,-1)}function isUndefined(n){return getType(n)==="Undefined"}function isNull(n){return getType(n)==="Null"}function isPlainObject(n){return getType(n)==="Object"&&n.constructor===Object&&Object.getPrototypeOf(n)===Object.prototype}function isEmptyObject(n){return isPlainObject(n)&&Object.keys(n).length===0}function isAnyObject(n){return getType(n)==="Object"}function isFunction$2(n){return typeof n=="function"}function isString(n){return getType(n)==="String"}function isNumber(n){return getType(n)==="Number"&&!isNaN(n)}function isBoolean(n){return getType(n)==="Boolean"}function isSymbol(n){return getType(n)==="Symbol"}function isPrimitive(n){return isBoolean(n)||isNull(n)||isUndefined(n)||isNumber(n)||isString(n)||isSymbol(n)}var safeJsonStringify$1={exports:{}},hasProp=Object.prototype.hasOwnProperty;function throwsMessage(n){return"[Throws: "+(n?n.message:"?")+"]"}function safeGetValueFromPropertyOnObject(n,e){if(hasProp.call(n,e))try{return n[e]}catch(o){return throwsMessage(o)}return n[e]}function ensureProperties(n){var e=[];return function o(d){if(d===null||typeof d!="object")return d;if(e.indexOf(d)!==-1)return"[Circular]";if(e.push(d),typeof d.toJSON=="function")try{var I=o(d.toJSON());return e.pop(),I}catch(v){return throwsMessage(v)}if(Array.isArray(d)){var f=d.map(o);return e.pop(),f}var S=Object.keys(d).reduce(function(v,L){return v[L]=o(safeGetValueFromPropertyOnObject(d,L)),v},{});return e.pop(),S}(n)}safeJsonStringify$1.exports=function(n,e,o){return JSON.stringify(ensureProperties(n),e,o)},safeJsonStringify$1.exports.ensureProperties=ensureProperties;var safeJsonStringifyExports=safeJsonStringify$1.exports,safeJsonStringify=getDefaultExportFromCjs(safeJsonStringifyExports),browser={exports:{}},ms,hasRequiredMs;function requireMs(){if(hasRequiredMs)return ms;hasRequiredMs=1;var n=1e3,e=60*n,o=60*e,d=24*o,I=7*d,f=365.25*d;function S(v,L,x,F){var Y=L>=1.5*x;return Math.round(v/x)+" "+F+(Y?"s":"")}return ms=function(v,L){L=L||{};var x=typeof v;if(x==="string"&&v.length>0)return function(F){if(!((F=String(F)).length>100)){var Y=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(F);if(Y){var j=parseFloat(Y[1]);switch((Y[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return j*f;case"weeks":case"week":case"w":return j*I;case"days":case"day":case"d":return j*d;case"hours":case"hour":case"hrs":case"hr":case"h":return j*o;case"minutes":case"minute":case"mins":case"min":case"m":return j*e;case"seconds":case"second":case"secs":case"sec":case"s":return j*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return j;default:return}}}}(v);if(x==="number"&&isFinite(v))return L.long?function(F){var Y=Math.abs(F);return Y>=d?S(F,Y,d,"day"):Y>=o?S(F,Y,o,"hour"):Y>=e?S(F,Y,e,"minute"):Y>=n?S(F,Y,n,"second"):F+" ms"}(v):function(F){var Y=Math.abs(F);return Y>=d?Math.round(F/d)+"d":Y>=o?Math.round(F/o)+"h":Y>=e?Math.round(F/e)+"m":Y>=n?Math.round(F/n)+"s":F+"ms"}(v);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(v))}}function setup(n){function e(I){let f,S,v,L=null;function x(){for(var F=arguments.length,Y=new Array(F),j=0;j{if(ue==="%%")return"%";he++;const _e=e.formatters[Ee];if(typeof _e=="function"){const De=Y[he];ue=_e.call(W,De),Y.splice(he,1),he--}return ue}),e.formatArgs.call(W,Y),(W.log||e.log).apply(W,Y)}return x.namespace=I,x.useColors=e.useColors(),x.color=e.selectColor(I),x.extend=o,x.destroy=e.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>L!==null?L:(S!==e.namespaces&&(S=e.namespaces,v=e.enabled(I)),v),set:F=>{L=F}}),typeof e.init=="function"&&e.init(x),x}function o(I,f){const S=e(this.namespace+(f===void 0?":":f)+I);return S.log=this.log,S}function d(I,f){let S=0,v=0,L=-1,x=0;for(;S"-"+f)].join(",");return e.enable(""),I},e.enable=function(I){e.save(I),e.namespaces=I,e.names=[],e.skips=[];const f=(typeof I=="string"?I:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let S=0;S{e[I]=n[I]}),e.names=[],e.skips=[],e.formatters={},e.selectColor=function(I){let f=0;for(let S=0;S{v!=="%%"&&(f++,v==="%c"&&(S=f))}),d.splice(S,0,I)},e.save=function(d){try{d?e.storage.setItem("debug",d):e.storage.removeItem("debug")}catch{}},e.load=function(){let d;try{d=e.storage.getItem("debug")||e.storage.getItem("DEBUG")}catch{}return!d&&typeof process<"u"&&"env"in process&&(d=define_process_env_default.DEBUG),d},e.useColors=function(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let d;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(d=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(d[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},e.storage=function(){try{return localStorage}catch{}}(),e.destroy=(()=>{let d=!1;return()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.log=console.debug||console.log||(()=>{}),n.exports=common(e);const{formatters:o}=n.exports;o.j=function(d){try{return JSON.stringify(d)}catch(I){return"[UnexpectedJSONParseError]: "+I.message}}})(browser,browser.exports);var browserExports=browser.exports,Debug=getDefaultExportFromCjs(browserExports);const PROHIBITED_REQUEST_INTERVAL=1e4;class OnlineDetector{constructor(){_defineProperty$1(this,"_isDetecting",!1),_defineProperty$1(this,"_lastRequestTimeInOffline",0),_defineProperty$1(this,"_sdkIsOline",void 0),_defineProperty$1(this,"_detectCheck",e=>{e||this._isDetecting||this._detectStart(),e&&(this._sdkIsOline=!0,this._isDetecting&&this._detectEnd())})}get isOnline(){return navigator&&navigator.onLine||this._sdkIsOline}_detectEnd(){this._isDetecting=!1,this._sdkIsOline=void 0,this._lastRequestTimeInOffline=0}_detectStart(){this._isDetecting=!0}permitRequest(){const e=navigator&&navigator.onLine;return this._detectCheck(e),!!(e||this._sdkIsOline||Date.now()-this._lastRequestTimeInOffline>PROHIBITED_REQUEST_INTERVAL)&&(e||this._sdkIsOline||(this._lastRequestTimeInOffline=Date.now()),!0)}updateSdkOnline(e){this._isDetecting&&(this._sdkIsOline=e)}}const onlineDetector=new OnlineDetector,uploadLog=Debug("RTM:DEBUG");uploadLog.enabled=isDev;var UploadState=function(n){return n[n.Uploading=0]="Uploading",n[n.Free=1]="Free",n}(UploadState||{});class LogUploader{constructor(e){_defineProperty$1(this,"_uploadTimer",null),_defineProperty$1(this,"uploadRequest",void 0),_defineProperty$1(this,"uploadState",void 0),_defineProperty$1(this,"uploadResendCount",void 0),_defineProperty$1(this,"LogCache",void 0),_defineProperty$1(this,"LogsToPost",void 0),_defineProperty$1(this,"processId",void 0),_defineProperty$1(this,"sdkVersion",void 0),_defineProperty$1(this,"logId",void 0),_defineProperty$1(this,"cloudProxy",void 0),_defineProperty$1(this,"privateLogUploadHosts",void 0),this.processId=e.processId,this.sdkVersion=e.sdkVersion,this.cloudProxy=e.cloudProxy,this.uploadRequest=e.uploadRequest,this.uploadState=UploadState.Free,this.uploadResendCount=0,this.LogCache=[],this.LogsToPost=[],this.logId=0,this.privateLogUploadHosts=e.privateLogUploadHosts}upload(e,o){this.LogCache.push(o),this.uploadState===UploadState.Free&&onlineDetector.isOnline&&getParameter("VID").get(e)!==void 0&&(this.LogsToPost=this.LogCache.length{this._uploadTimer=null;const d={sdk_version:this.sdkVersion,process_id:this.processId,payload:JSON.stringify(o)};try{var I;await this.uploadRequest(e,d,(I=this.cloudProxy)!==null&&I!==void 0&&I,this.privateLogUploadHosts)}catch{const v=this.uploadResendCount++<2?2e3:1e4;return void(this._uploadTimer=setTimeout(()=>{this._uploadTimer=null,this.postLog(e,this.LogsToPost)},v))}if(this.LogCache.length===0)return void(this.uploadState=UploadState.Free);this.uploadResendCount=0;const f=Math.min(this.LogCache.length,LOG_UPLOAD_MAX_ITEMS);this.LogsToPost=this.LogCache.splice(0,f),this.postLog(e,this.LogsToPost)},getParameter("LOG_UPLOAD_INTERVAL"))}}async function postWithAbortSignal(n,e,o){let{body:d,headers:I={},timeout:f=1e4,signal:S,withCredentials:v=!1}=e;if(onlineDetector.permitRequest()===!1)throw new Error("network is offline, not permit send request: url(".concat(n,")"));const L=OperationName.rtm,{useBinaryResponse:x=!1}={},F=new XMLHttpRequest;F.open("POST",n,!0),F.responseType=x?"arraybuffer":"text",F.withCredentials=v,F.timeout=f;const Y=d instanceof FormData,j=d instanceof Uint8Array,W=Object.keys(I).filter(re=>re.toLowerCase()==="content-type");if(W.length>1)throw new RangeError("multiple content-type");if(W.length===0&&(j?I["Content-Type"]="application/octet-stream":Y||(I["Content-Type"]="application/json")),!("setRequestHeader"in F)){F.abort();try{const re=await fetch(n,{body:Y||j?d:JSON.stringify(d),cache:"no-cache",credentials:v?"include":"same-origin",headers:I,method:"POST",mode:"cors",referrer:"no-referrer",signal:S}),{status:ee}=re;if(ee>=200&&ee<300||ee===304)return onlineDetector.updateSdkOnline(!0),x?{status:ee,responseData:await re.arrayBuffer()}:{status:ee,responseText:await re.text()};const he=new RtmUnavailableError(L,["Post XHR failure, status %d",ee]);try{const ue=await re.text();throw he.statusCode=ee,he.message=ue||"Request failed, status ".concat(ee),he}catch{throw he.statusCode=ee,he.message="Request failed, status ".concat(ee),he}}catch(re){throw onlineDetector.updateSdkOnline(!1),new RtmUnavailableError(L,["Post XHR failure, detail: %s",re.message])}}if(Object.keys(I).length!==0)for(let re=0,ee=Object.entries(I);re{F.abort(),S.removeEventListener("abort",re)};S.addEventListener("abort",re)}return Y||j?F.send(d):F.send(JSON.stringify(d)),new Promise((re,ee)=>{const he=()=>{try{ee(new DOMException("The request aborted.","AbortError"))}catch{const Ee=new Error("The request aborted.");Ee.name="AbortError",ee(Ee)}};F.onload=()=>{const{status:ue}=F;if(ue===0)he();else if(ue>=200&&ue<300||ue===304)re(x?{status:ue,responseData:F.response}:{status:ue,responseText:F.responseText});else{const Ee=new RtmUnavailableError(L,["Post XHR failure, status %d",ue]);Ee.statusCode=ue,Ee.message=F.response||"Request failed, status ".concat(F.status),ee(Ee)}},F.ontimeout=ue=>{ee(new RtmTimeoutError(L,["XHR request timed out after %d ms",f],{originalError:ue}))},F.onerror=()=>{F.status===0&&he();const ue=new RtmUnavailableError(L,["Post XHR failure, status %d",F.status]);ue.statusCode=F.status,ue.message=F.response||"Request failed, status ".concat(F.status),ee(ue)},F.onabort=()=>{he()}}).finally(()=>{F.status!==0?onlineDetector.updateSdkOnline(!0):onlineDetector.updateSdkOnline(!1)})}const LOG_SERVICE_MAIN_DOMAIN="logservice-rtm.agora.io",LOG_SERVICE_BACKUP_DOMAIN="rtm.logservice.sd-rtn.com";let logUploadDomainIdx=0;function getLogUploadDomain(){try{var n;const e=(n=getParameter("LOG_UPLOAD_DOMAIN_LIST"))!==null&&n!==void 0?n:[];return logUploadDomainIdx>=e.length&&(logUploadDomainIdx=0),e[logUploadDomainIdx]}catch(e){return console.error(e),""}}const getUTCTimestamp$1=()=>{const n=new Date,[e,o]=n.toISOString().split("T"),[d,I,f]=e.split("-");return"".concat(I,"-").concat(f," ").concat(o.replace(/\..+/,""),".").concat(n.getMilliseconds())},_uploadRequest=async function(n,e,o,d){var I,f;let S=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!getParameter("VID").get(n)||S>2)return;const v={withCredentials:!0,body:e,timeout:2e4,headers:{vid:getParameter("VID").get(n),"Content-Encoding":"gzip"}},L=d&&getPrivateSettingsPortAndDomains(d),x=L==null?void 0:L.hostname,F=(I=x==null?void 0:x.length)!==null&&I!==void 0?I:0,Y=L==null?void 0:L.port,j=x&&x[0],W=x&&x[F-1],re=S>0?(areaConfig==null?void 0:areaConfig.LOG_UPLOAD_SERVER[0])||getLogUploadDomain()||(W??LOG_SERVICE_BACKUP_DOMAIN):(areaConfig==null?void 0:areaConfig.LOG_UPLOAD_SERVER[0])||getLogUploadDomain()||(j??LOG_SERVICE_MAIN_DOMAIN),ee=o&&!d?"https://".concat((f=areaConfig==null?void 0:areaConfig.PROXY_NGINX[0])!==null&&f!==void 0?f:"webrtc-cloud-proxy.sd-rtn.com","/ls/?h=").concat(re,"&p=").concat(Y??443,"&d=upload/v1"):"https://".concat(re).concat(Y?":".concat(Y):"","/upload/v1");await postWithAbortSignal(ee,v).catch(he=>(logUploadDomainIdx++,_uploadRequest(n,e,o,d,S+1)))},logUploaders=new Map,logUploader=(n,e,o)=>{if(logUploaders.has(n)&&logUploaders.get(n)instanceof LogUploader)return logUploaders.get(n);{const d=new LogUploader({processId:"process-".concat(n),sdkVersion:"Agora_RTM_SDK_for_Web_".concat(BUILD),uploadRequest:_uploadRequest,cloudProxy:o!=null&&o,privateLogUploadHosts:e});return logUploaders.set(n,d),d}},blacklistedKeywords=["text","payload","rawMessage","thumbnail","attributeInfos","keys","value","extra","ticket"],sensitiveKeywords=["account","ticket","uid","detail","token","fileName","cname","user","group","key","origin","users","src","dst","lastUpdateUserId","channel","cert","wan_ip","userId","authorUid","target","lockName","appTicket","channelName","publisher","succeedUsers","failedUsers","10",...ipKeywords],whitelistedKeywords=["serverReceivedTs","hasPeerReceived","messageType","enableNotificationToChannelMembers","lastUpdateTs"],sensitiveEvents=["message","presence","topic","lock","storage","MessageFromPeer","LocalInvitationRefused","LocalInvitationAccepted","RemoteInvitationCanceled","PeersOnlineStatusChanged","AttributesUpdated","MemberJoined"],sensitiveArgsHandler=n=>{if(typeof n=="string")return replaceRangeWithAsterisk(n);if(Array.isArray(n)&&n.every(e=>typeof e=="string"))return n.map(e=>replaceRangeWithAsterisk(e));if(!isPrimitive(n)){const e={};for(let o=0;o0)return e;if(Object.keys(n).length<5){for(let o=0,d=Object.entries(n);ohandleLogObject(cloneDeep$1(n),getParameter("SENSITIVE_LOG")?blacklistedKeywords:[],getParameter("SENSITIVE_LOG")?sensitiveKeywords:[]),getPlain=n=>typeof n=="object"?isPlainObject(n)?filterLogObject(n):n.constructor&&n.constructor.name:n,formatLogTextAndParameters=(n,e)=>{if(n instanceof Error)return n.message;if(typeof n!="string")return JSON.stringify(filterLogObject(n));const o=e.map(d=>d instanceof Error?d.message:typeof d=="object"&&d!==null?safeJsonStringify(Array.isArray(d)?d.map(getPlain):getPlain(d)):d);return format$1(n.replace(/%[%Oo]/g,d=>d==="%%"?"%":d==="%o"||d==="%O"?"%s":d),...o)},logAndUploadGenerator=(n,e,o,d,I,f,S,v)=>{const L=Debug(o);L.enabled=!0,L.log=S,L.useColors=!1;const x="Ins#".concat(e," ");return function(F){for(var Y=arguments.length,j=new Array(Y>1?Y-1:0),W=1;W7?"...":""," - ").concat(x).concat(o," - ").concat(re.length>256?re.slice(0,256):re)})}const ee=he=>{const ue=re||formatLogTextAndParameters(addPeriodIfNeeded(F),j),Ee=getParameter("LOG_HANDLER"),_e="[uid: ".concat(I,"] ").concat(o," [UTC_Time: ").concat(getUTCTimestamp$1(),"]");isFunction$2(Ee)?Ee({level:he,message:x+ue,prefix:_e}):L("[UTC_Time: ".concat(getUTCTimestamp$1(),"][uid: ").concat(getParameter("SENSITIVE_LOG")?maskMiddleOfString(I):I,"]").concat(ue))};switch(o){case"RTM:INFO":f.logFilter.info&&ee("info");break;case"RTM:WARN":f.logFilter.warn&&ee("warn");break;case"RTM:ERROR":f.logFilter.error&&ee("error");break;case"RTM:TRACK":f.logFilter.track&&ee("info");break;case"RTM:MSG:RECV":case"RTM:MSG:SEND":case"RTM:DEBUG":f.logFilter.debug&&ee("debug")}}};let loggerId;function initLoggerId(n,e,o){loggerId=gud$1();const d=new LogUploader({processId:"process-".concat(n),sdkVersion:"Agora_RTM_SDK_for_Web_".concat(BUILD),uploadRequest:_uploadRequest,cloudProxy:o,privateLogUploadHosts:e});return logUploaders.set(n,d),loggerId}const loggerGenerator=(n,e,o,d,I,f,S,v)=>logAndUploadGenerator(n,e,"RTM:".concat(d),f,S,I,function(L){return o((x=L,"Ins#".concat(e," ").concat(x)));var x},v),genInfoLogger=(n,e,o,d,I,f)=>loggerGenerator(n,e,console.debug,"INFO",o,d,I,f),genWarnLogger=(n,e,o,d,I,f)=>loggerGenerator(n,e,console.warn,"WARN",o,d,I,f),genErrorLogger=(n,e,o,d,I,f)=>loggerGenerator(n,e,console.error,"ERROR",o,d,I,f),debugLoggerGenerator=(n,e,o,d,I,f)=>function(S){let v=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const L=console.debug||console.log,x=logAndUploadGenerator(n,e,S,d,I,o,function(F){return L((Y=F,"Ins#".concat(e," ").concat(Y)));var Y},f);return function(F){for(var Y=arguments.length,j=new Array(Y>1?Y-1:0),W=1;WS=>debugLoggerGenerator(n,e,o,d,I,f)("RTM:TRACK","[".concat(S,"] "));function loggedSensitive(n,e,o){let d=o;d===void 0&&(d=Object.getOwnPropertyDescriptor(n,e));const I=d.value;return d.value=function(){for(var f=arguments.length,S=new Array(f),v=0;v0?"%s with args: ".concat(S.map(()=>"%o")):"%s"),this.name,e,...S.map(sensitiveArgsHandler));try{var L=I.apply(this,S)}catch(F){throw this.logError("".concat(F.code!==void 0?"Error Code ".concat(F.code,": "):"","%s failed").concat(S.length>0?" with args: ".concat(S.map(()=>"%o")):""),e,...S.map(sensitiveArgsHandler)),F.originalError&&this.logError(F.originalError),this.errorTracker(F),F}const x=Date.now();return(async()=>{let F;try{F=await L}catch(j){return this.logError("".concat(j.code!==void 0?"Error Code ".concat(j.code,": "):"","%s failed").concat(S.length>0?" with args: ".concat(S.map(()=>"%o")):""),e,...S.map(sensitiveArgsHandler)),j.originalError&&this.logError(j.originalError),void this.errorTracker(j)}var Y;F!==L?F===void 0?this.resultTracker("%s promise resolves after %dms",e,Date.now()-x):this.resultTracker("%s promise resolves after %dms, result is %o",e,Date.now()-x,sensitiveArgsHandler(F)):isAnyObject(F)&&!isPlainObject(F)?this.resultTracker("%s result is %s",e,F.name||((Y=F.constructor)===null||Y===void 0?void 0:Y.name)):this.resultTracker("%s result is %o",e,F?sensitiveArgsHandler(F):"void")})(),L},d}const genLogFilter=n=>{let e=LogFilter.LOG_FILTER_NONE;switch(n){case"debug":e=LogFilter.LOG_FILTER_DEBUG;break;case"info":e=LogFilter.LOG_FILTER_INFO;break;case"warn":e=LogFilter.LOG_FILTER_WARN;break;case"none":e=LogFilter.LOG_FILTER_NONE;break;default:e=LogFilter.LOG_FILTER_ERROR}return e};class EventBase extends EventEmitter$1{constructor(e,o){var d;let I=arguments.length>2&&arguments[2]!==void 0&&arguments[2],f=arguments.length>3&&arguments[3]!==void 0&&arguments[3];super(),d=this,_defineProperty$1(this,"logError",void 0),_defineProperty$1(this,"invokeTracker",void 0),_defineProperty$1(this,"resultTracker",void 0),_defineProperty$1(this,"errorTracker",void 0),_defineProperty$1(this,"eventTracker",void 0),_defineProperty$1(this,"info",void 0),_defineProperty$1(this,"warn",void 0),_defineProperty$1(this,"log",void 0),_defineProperty$1(this,"genLogger",void 0),_defineProperty$1(this,"loggerId",void 0),_defineProperty$1(this,"logger",void 0),_defineProperty$1(this,"name",void 0),_defineProperty$1(this,"debug",void 0);const{appId:S,userId:v,processId:L,logLevel:x,logUpload:F,cloudProxy:Y}=e,j={logUpload:F,cloudProxy:Y,logFilter:genLogFilter(x)};this.logger=e,this.name=o,this.loggerId=this.logger.loggerId,this.info=genInfoLogger(S,this.loggerId,j,L,v),this.log=this.info,this.warn=genWarnLogger(S,this.loggerId,j,L,v),this.logError=genErrorLogger(S,this.loggerId,j,L,v),this.genLogger=debugLoggerGenerator(S,this.loggerId,j,L,v);const W=trackLoggerGenerator(S,this.loggerId,j,L,v);if(this.debug=this.genLogger("RTM:DEBUG","<".concat(o,"> ")),this.invokeTracker=W("Invoke"),this.eventTracker=W("Event"),this.resultTracker=W("Result"),this.errorTracker=W("Error"),I){const re=this.emit.bind(this),ee=function(){for(var he=arguments.length,ue=new Array(he),Ee=0;Ee0?"%s emitted with args: ".concat(De.map(()=>"%o")):"%s emitted"),o,_e,...getParameter("SENSITIVE_LOG")&&Fe?De.map(sensitiveArgsHandler):De);try{return re(...ue),!0}catch(Ve){return d.logError("Caught in the callback function of the event %s",_e,Ve),!1}};this.emit=ee}f&&(Object.defineProperty(this,"addListener",{value:void 0,writable:!1,configurable:!1}),Object.defineProperty(this,"removeListener",{value:void 0,writable:!1,configurable:!1}))}}var UZIP={},u16,u32;module.exports=UZIP,UZIP.parse=function(n,e){for(var o=UZIP.bin.readUshort,d=UZIP.bin.readUint,I=0,f={},S=new Uint8Array(n),v=S.length-4;d(S,v)!=101010256;)v--;I=v,I+=4;var L=o(S,I+=4);o(S,I+=2);var x=d(S,I+=2),F=d(S,I+=4);I+=4,I=F;for(var Y=0;Y>>24&255,d[o+1]=I>>>16&255,d[o+2]=I>>>8&255,d[o+3]=I>>>0&255,new Uint8Array(d.buffer,0,o+4)},UZIP.deflateRaw=function(n,e){e==null&&(e={level:6});var o=new Uint8Array(50+Math.floor(1.1*n.length)),d=UZIP.F.deflateRaw(n,o,d,e.level);return new Uint8Array(o.buffer,0,d)},UZIP.encode=function(n,e){e==null&&(e=!1);var o=0,d=UZIP.bin.writeUint,I=UZIP.bin.writeUshort,f={};for(var S in n){var v=!UZIP._noNeed(S)&&!e,L=n[S],x=UZIP.crc.crc(L,0,L.length);f[S]={cpr:v,usize:L.length,crc:x,file:v?UZIP.deflateRaw(L):L}}for(var S in f)o+=f[S].file.length+30+46+2*UZIP.bin.sizeUTF8(S);o+=22;var F=new Uint8Array(o),Y=0,j=[];for(var S in f){var W=f[S];j.push(Y),Y=UZIP._writeHeader(F,Y,S,W,0)}var re=0,ee=Y;for(var S in f)W=f[S],j.push(Y),Y=UZIP._writeHeader(F,Y,S,W,1,j[re++]);var he=Y-ee;return d(F,Y,101010256),Y+=4,I(F,Y+=4,re),I(F,Y+=2,re),d(F,Y+=2,he),d(F,Y+=4,ee),Y+=4,Y+=2,F.buffer},UZIP._noNeed=function(n){var e=n.split(".").pop().toLowerCase();return"png,jpg,jpeg,zip".indexOf(e)!=-1},UZIP._writeHeader=function(n,e,o,d,I,f){var S=UZIP.bin.writeUint,v=UZIP.bin.writeUshort,L=d.file;return S(n,e,I==0?67324752:33639248),e+=4,I==1&&(e+=2),v(n,e,20),v(n,e+=2,0),v(n,e+=2,d.cpr?8:0),S(n,e+=2,0),S(n,e+=4,d.crc),S(n,e+=4,L.length),S(n,e+=4,d.usize),v(n,e+=4,UZIP.bin.sizeUTF8(o)),v(n,e+=2,0),e+=2,I==1&&(e+=2,e+=2,S(n,e+=6,f),e+=4),e+=UZIP.bin.writeUTF8(n,e,o),I==0&&(n.set(L,e),e+=L.length),e},UZIP.crc={table:function(){for(var n=new Uint32Array(256),e=0;e<256;e++){for(var o=e,d=0;d<8;d++)1&o?o=3988292384^o>>>1:o>>>=1;n[e]=o}return n}(),update:function(n,e,o,d){for(var I=0;I>>8;return n},crc:function(n,e,o){return 4294967295^UZIP.crc.update(4294967295,n,e,o)}},UZIP.adler=function(n,e,o){for(var d=1,I=0,f=e,S=e+o;f>8&255},readUint:function(n,e){return 16777216*n[e+3]+(n[e+2]<<16|n[e+1]<<8|n[e])},writeUint:function(n,e,o){n[e]=255&o,n[e+1]=o>>8&255,n[e+2]=o>>16&255,n[e+3]=o>>24&255},readASCII:function(n,e,o){for(var d="",I=0;I>18,n[e+I+1]=128|S>>12&63,n[e+I+2]=128|S>>6&63,n[e+I+3]=128|63&S,I+=4}else n[e+I]=224|S>>12,n[e+I+1]=128|S>>6&63,n[e+I+2]=128|63&S,I+=3;else n[e+I]=192|S>>6,n[e+I+1]=128|63&S,I+=2;else n[e+I]=S,I++}return I},sizeUTF8:function(n){for(var e=n.length,o=0,d=0;d>>3}var j=f.lits,W=f.strt,re=f.prev,ee=0,he=0,ue=0,Ee=0,_e=0,De=0;for(Y>2&&(W[De=UZIP.F._hash(n,0)]=0),L=0;L14e3||he>26697)&&Y-L>100&&(F>>16,He=65535&Ve;if(Ve!=0){He=65535&Ve;var At=S(Ge=Ve>>>16,f.of0);f.lhst[257+At]++;var Bt=S(He,f.df0);f.dhst[Bt]++,Ee+=f.exb[At]+f.dxb[Bt],j[ee]=Ge<<23|L-F,j[ee+1]=He<<16|At<<8|Bt,ee+=2,F=L+Ge}else f.lhst[n[L]]++;he++}}for(ue==L&&n.length!=0||(F>>3},UZIP.F._bestMatch=function(n,e,o,d,I,f){var S=32767&e,v=o[S],L=S-v+32768&32767;if(v==S||d!=UZIP.F._hash(n,e-L))return 0;for(var x=0,F=0,Y=Math.min(32767,e);L<=Y&&--f!=0&&v!=S;){if(x==0||n[e+x]==n[e+x-L]){var j=UZIP.F._howLong(n,e,L);if(j>x){if(F=L,(x=j)>=I)break;L+2W&&(W=he,v=ee)}}}L+=(S=v)-(v=o[S])+32768&32767}return x<<16|F},UZIP.F._howLong=function(n,e,o){if(n[e]!=n[e-o]||n[e+1]!=n[e+1-o]||n[e+2]!=n[e+2-o])return 0;var d=e,I=Math.min(n.length,e+258);for(e+=3;e>>23,ht=ye+(8388607&Yt);ye>16,jt=vt>>8&255,vr=255&vt;De(v,L=UZIP.F._writeLit(257+jt,Bt,v,L),ct-Ee.of0[jt]),L+=Ee.exb[jt],_e(v,L=UZIP.F._writeLit(vr,Tt,v,L),ar-Ee.df0[vr]),L+=Ee.dxb[vr],ye+=ct}}L=UZIP.F._writeLit(256,Bt,v,L)}return L},UZIP.F._copyExact=function(n,e,o,d,I){var f=I>>>3;return d[f]=o,d[f+1]=o>>>8,d[f+2]=255-d[f],d[f+3]=255-d[f+1],f+=4,d.set(new Uint8Array(n.buffer,e,o),f),I+(o+4<<3)},UZIP.F.getTrees=function(){for(var n=UZIP.F.U,e=UZIP.F._hufTree(n.lhst,n.ltree,15),o=UZIP.F._hufTree(n.dhst,n.dtree,15),d=[],I=UZIP.F._lenCodes(n.ltree,d),f=[],S=UZIP.F._lenCodes(n.dtree,f),v=0;v4&&n.itree[1+(n.ordr[x-1]<<1)]==0;)x--;return[e,o,L,I,S,x,d,f]},UZIP.F.getSecond=function(n){for(var e=[],o=0;o>1)+",");return e},UZIP.F.contSize=function(n,e){for(var o=0,d=0;d15&&(UZIP.F._putsE(o,d,S,v),d+=v)}return d},UZIP.F._lenCodes=function(n,e){for(var o=n.length;o!=2&&n[o-1]==0;)o-=2;for(var d=0;d>>1,138))<11?e.push(17,x-3):e.push(18,x-11),d+=2*x-2}else if(I==v&&f==I&&S==I){for(L=d+5;L+2>>1,6);e.push(16,x-3),d+=2*x-2}else e.push(I,0)}return o>>>1},UZIP.F._hufTree=function(n,e,o){var d=[],I=n.length,f=e.length,S=0;for(S=0;So&&(UZIP.F.restrictDepth(L,o,ee),ee=o),S=0;Se;d++){var S=n[d].d;n[d].d=e,f+=I-(1<>>=o-e;f>0;)(S=n[d].d)=0;d--)n[d].d==e&&f<0&&(n[d].d--,f++);f!=0&&console.log("debt left")},UZIP.F._goodIndex=function(n,e){var o=0;return e[16|o]<=n&&(o|=16),e[8|o]<=n&&(o|=8),e[4|o]<=n&&(o|=4),e[2|o]<=n&&(o|=2),e[1|o]<=n&&(o|=1),o},UZIP.F._writeLit=function(n,e,o,d){return UZIP.F._putsF(o,d,e[n<<1]),d+e[1+(n<<1)]},UZIP.F.inflate=function(n,e){var o=Uint8Array;if(n[0]==3&&n[1]==0)return e||new o(0);var d=UZIP.F,I=d._bitsF,f=d._bitsE,S=d._decodeTiny,v=d.makeCodes,L=d.codes2map,x=d._get17,F=d.U,Y=e==null;Y&&(e=new o(n.length>>>2<<3));for(var j,W,re=0,ee=0,he=0,ue=0,Ee=0,_e=0,De=0,Fe=0,Ve=0;re==0;)if(re=I(n,Ve,1),ee=I(n,Ve+1,2),Ve+=3,ee!=0){if(Y&&(e=UZIP.F._check(e,Fe+(1<<17))),ee==1&&(j=F.flmap,W=F.fdmap,_e=511,De=31),ee==2){he=f(n,Ve,5)+257,ue=f(n,Ve+5,5)+1,Ee=f(n,Ve+10,4)+4,Ve+=14;for(var Ge=0;Ge<38;Ge+=2)F.itree[Ge]=0,F.itree[Ge+1]=0;var He=1;for(Ge=0;GeHe&&(He=At)}Ve+=3*Ee,v(F.itree,He),L(F.itree,He,F.imap),j=F.lmap,W=F.dmap,Ve=S(F.imap,(1<>>4;if(!(ye>>>8))e[Fe++]=ye;else{if(ye==256)break;var lt=Fe+ye-254;if(ye>264){var Yt=F.ldef[ye-257];lt=Fe+(Yt>>>3)+f(n,Ve,7&Yt),Ve+=7&Yt}var ct=W[x(n,Ve)&De];Ve+=15&ct;var ht=ct>>>4,vt=F.ddef[ht],ar=(vt>>>4)+I(n,Ve,15&vt);for(Ve+=15&vt,Y&&(e=UZIP.F._check(e,Fe+(1<<17)));Fe>>3)+4,vr=n[jt-4]|n[jt-3]<<8;Y&&(e=UZIP.F._check(e,Fe+vr)),e.set(new o(n.buffer,n.byteOffset+jt,vr),Fe),Ve=jt+vr<<3,Fe+=vr}return e.length==Fe?e:e.slice(0,Fe)},UZIP.F._check=function(n,e){var o=n.length;if(e<=o)return n;var d=new Uint8Array(Math.max(o<<1,e));return d.set(n,0),d},UZIP.F._decodeTiny=function(n,e,o,d,I,f){for(var S=UZIP.F._bitsE,v=UZIP.F._get17,L=0;L>>4;if(F<=15)f[L]=F,L++;else{var Y=0,j=0;F==16?(j=3+S(d,I,2),I+=2,Y=f[L-1]):F==17?(j=3+S(d,I,3),I+=3):F==18&&(j=11+S(d,I,7),I+=7);for(var W=L+j;L>>1;fI&&(I=v),f++}for(;f>1,v=n[f+1],L=S<<4|v,x=e-v,F=n[f]<>>15-e]=L,F++},UZIP.F.revCodes=function(n,e){for(var o=UZIP.F.U.rev15,d=15-e,I=0;I>>d}},UZIP.F._putsE=function(n,e,o){o<<=7&e;var d=e>>>3;n[d]|=o,n[d+1]|=o>>>8},UZIP.F._putsF=function(n,e,o){o<<=7&e;var d=e>>>3;n[d]|=o,n[d+1]|=o>>>8,n[d+2]|=o>>>16},UZIP.F._bitsE=function(n,e,o){return(n[e>>>3]|n[(e>>>3)+1]<<8)>>>(7&e)&(1<>>3]|n[(e>>>3)+1]<<8|n[(e>>>3)+2]<<16)>>>(7&e)&(1<>>3]|n[(e>>>3)+1]<<8|n[(e>>>3)+2]<<16)>>>(7&e)},UZIP.F._get25=function(n,e){return(n[e>>>3]|n[(e>>>3)+1]<<8|n[(e>>>3)+2]<<16|n[(e>>>3)+3]<<24)>>>(7&e)},UZIP.F.U=(u16=Uint16Array,u32=Uint32Array,{next_code:new u16(16),bl_count:new u16(16),ordr:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],of0:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],exb:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],ldef:new u16(32),df0:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],dxb:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],ddef:new u32(32),flmap:new u16(512),fltree:[],fdmap:new u16(32),fdtree:[],lmap:new u16(32768),ltree:[],ttree:[],dmap:new u16(32768),dtree:[],imap:new u16(512),itree:[],rev15:new u16(32768),lhst:new u32(286),dhst:new u32(30),ihst:new u32(19),lits:new u32(15e3),strt:new u16(65536),prev:new u16(32768)}),function(){for(var n=UZIP.F.U,e=0;e<32768;e++){var o=e;o=(4278255360&(o=(4042322160&(o=(3435973836&(o=(2863311530&o)>>>1|(1431655765&o)<<1))>>>2|(858993459&o)<<2))>>>4|(252645135&o)<<4))>>>8|(16711935&o)<<8,n.rev15[e]=(o>>>16|o<<16)>>>17}function d(I,f,S){for(;f--!=0;)I.push(0,S)}for(e=0;e<32;e++)n.ldef[e]=n.of0[e]<<3|n.exb[e],n.ddef[e]=n.df0[e]<<4|n.dxb[e];d(n.fltree,144,8),d(n.fltree,112,9),d(n.fltree,24,7),d(n.fltree,8,8),UZIP.F.makeCodes(n.fltree,9),UZIP.F.codes2map(n.fltree,9,n.flmap),UZIP.F.revCodes(n.fltree,9),d(n.fdtree,32,5),UZIP.F.makeCodes(n.fdtree,5),UZIP.F.codes2map(n.fdtree,5,n.fdmap),UZIP.F.revCodes(n.fdtree,5),d(n.itree,19,0),d(n.ltree,286,0),d(n.dtree,30,0),d(n.ttree,320,0)}();const{inflate:inflate$1,deflate}=UZIP;function isValidAppId(n){return/^[\dA-Za-z]{32}$/.test(n)}function isValidId(n){return typeof n=="string"&&!n.startsWith("_")&&/^[a-zA-Z0-9 \!\#\$\%\&\(\)\+\,\-\:\;\<\=\>\?\@\[\]\^\_\{\|\}\~]{1,64}$/.test(n)}function isValidTopic(n){return typeof n=="string"&&n.length>0&&!n.startsWith("_")&&isValidId(n)}function validateTopicName(n,e){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_TOPIC_NAME);if(!isValidTopic(n))throw new RtmInvalidArgumentError(e,[d],o);if(n.length===0||new Blob([n??""]).size>TOPIC_NAME_SIZE)throw new RtmInvalidArgumentError(e,[d],o)}function isUintString(n){const e=Number(n);return Number.isInteger(e)&&e>=0}function isValidIp(n){let e;try{e=n.split(".").map(o=>Number(o))}catch{return!1}if(e.length!==4||e[0]===0)return!1;for(let o=0,d=e;o255)return!1}return!0}function validMetaDataItem(n,e){let{items:o,maxMetaDataCount:d,maxMetaValueSize:I,majorRevision:f,type:S}=e;if(!Array.isArray(o)){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_METADATA_ITEM);throw new RtmInvalidArgumentError(n,[x],L)}const v=o.map(L=>[L.getKey(),L.getValue()]);if(v.length>d){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_METADATA_ITEM_EXCEED_LIMITATION);throw new RtmLimitExceededError(n,[x],L)}if(v.length===0){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_METADATA_ITEM);throw new RtmInvalidArgumentError(n,[x],L)}if(typeof f!="number"||f<-1||f%1!=0){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[x],L)}if(o.map(L=>{if((L==null?void 0:L.getRevision())<-1){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[F],x)}}),(S==="Update"||S==="Delete")&&f===0){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[x],L)}if((S==="Update"||S==="Delete")&&o.map(L=>L.getRevision()).includes(0)){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[x],L)}for(let L=0;LRTM_METADATA_KEY_MAX_LENGTH){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_KEY_LENGTH_OVERFLOW);throw new RtmInvalidArgumentError(n,[re],W)}if(S!=="Delete"&&typeof F!="string"){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_VALUE);throw new RtmInvalidArgumentError(n,[re],W)}if(j>I){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_VALUE_LENGTH_OVERFLOW);throw new RtmLimitExceededError(n,[re],W)}}}function validateMetaDataSize(n,e){if(new Blob([e??""]).size>RTM_METADATA_MAX_LENGTH){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_METADATA_LENGTH_OVERFLOW);throw new RtmLimitExceededError(n,[d],o)}}function validMetaDataMajorRevisionForRemove(n,e){if(e<-1){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[d],o)}if(e%1!=0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[d],o)}if(e===0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(n,[d],o)}}function validStateOfPresence(n,e){for(const d in n){var o;const I=new Blob([(o=n[d])!==null&&o!==void 0?o:""]).size;if(validStateKeyOfPresence(d,e),I>MAX_STATE_VALUE_SIZE){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_VALUE_SIZE_OVERFLOW);throw new RtmLimitExceededError(e,[S],f)}}}function validStateKeyOfPresence(n,e){const o=new Blob([n??""]).size;if(o>MAX_STATE_KEY_SIZE){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_KEY_SIZE_OVERFLOW);throw new RtmInvalidArgumentError(e,[I],d)}if(o===0||!isValidId(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_INVALID_STATE_KEY);throw new RtmInvalidArgumentError(e,[I],d)}}function checkKeyValidity(n){return n.length!==0&&n[0]!==K_SYNC_INTERNAL_KEY_PREFIX}function validateMessageSize(n,e){if(!n||typeof n!="string"&&!(n instanceof Uint8Array)){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);throw new RtmInvalidArgumentError(e,[d],o)}if((typeof n=="string"?new Blob([n??""]).size:n.byteLength)>PUBLISH_MESSAGE_SIZE){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_MESSAGE_LENGTH_EXCEED_LIMITATION);throw new RtmInvalidArgumentError(e,[d],o)}}function validateCustomType(n,e){const o=new Blob([n]);if(o.size>CUSTOM_TYPE_SIZE){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_CUSTOM_TYPE_LENGTH_OVERFLOW);throw new RtmInvalidArgumentError(e,[I],d)}if(typeof n!="string"||o.size===0){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_CUSTOM_TYPE);throw new RtmInvalidArgumentError(e,[I],d)}}function validateChannelName(n){return isValidId(n)}function validateChannelType(n,e){if(e!=="MESSAGE"&&e!=="STREAM"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_TYPE);throw new RtmInvalidArgumentError(n,[d],o)}}function validateHistoryChannelType(n,e){if(e!=="MESSAGE"&&e!=="USER"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_TYPE);throw new RtmInvalidArgumentError(n,[d],o)}}function validMessage(n,e){const o=OperationName.publish,{code:d,reason:I}=getErrorInfoByCode(e);if(!isPlainObject(n))throw new RtmInvalidArgumentError(o,[I],d);if(n.messageType===void 0)if(n.rawMessage instanceof Uint8Array){if(n.messageType="RAW",n.text!==void 0)throw new RtmInvalidArgumentError(o,[I],d)}else{if(typeof n.text!="string")throw new RtmInvalidArgumentError(o,[I],d);if(n.messageType="TEXT",n.rawMessage!==void 0)throw new RtmInvalidArgumentError(o,[I],d)}}function isValidEnvString(n){return!1}function validDomain(n){return/^(?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+[a-zA-Z]{2,}|(?:\d{1,3}\.){3}\d{1,3})(?::\d{1,5})?$/.test(n)}function validateIpPort(n){return/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})(?::([1-9]\d{0,4}))?$/.test(n)}function validatePrivateConfig(n){var e,o,d,I,f,S,v,L,x;if(isEmptyObject(n==null?void 0:n.privateConfig)||isEmptyObject(n==null||(e=n.privateConfig)===null||e===void 0?void 0:e.serviceType)||n==null||!n.privateConfig)return!1;let F=!1,Y="";const j=n==null||(o=n.privateConfig)===null||o===void 0?void 0:o.serviceType,W=n==null||(d=n.privateConfig)===null||d===void 0?void 0:d.accessPointHosts,re=n==null||(I=n.privateConfig)===null||I===void 0?void 0:I.eventUploadHosts,ee=n==null||(f=n.privateConfig)===null||f===void 0?void 0:f.logUploadHosts,he=n==null||(S=n.privateConfig)===null||S===void 0?void 0:S.originDomains;return(j==null?void 0:j.length)!==0&&(((v=j==null?void 0:j.length)!==null&&v!==void 0?v:0)===0||j!=null&&j.includes("MESSAGE")||j!=null&&j.includes("STREAM")||(Y=" ServiceType is illegal.",F=!0),((L=j==null?void 0:j.length)!==null&&L!==void 0?L:0)!==0&&((x=W==null?void 0:W.length)!==null&&x!==void 0?x:0)===0&&(F=!0),(W!=null&&W.some(ue=>!validDomain(ue))||he!=null&&he.some(ue=>!validDomain(ue))||re!=null&&re.some(ue=>!validDomain(ue))||ee!=null&&ee.some(ue=>!validDomain(ue)))&&(F=!0,Y+=" Hosts or domains is illegal."),F&&throwInvalidPrivateConfig(OperationName.initRTM,Y),!0)}function validateKey(n,e,o){switch(o){case"channel":if(!validateChannelName(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_NAME);throw new RtmInvalidArgumentError(e,[I],d)}break;case"uid":if(!isValidId(n)){const d=RTMErrorCode.RTM_ERROR_INVALID_USER_ID,{code:I,reason:f}=getErrorInfoByCode(d);throw new RtmInvalidArgumentError(e,[f],I)}break;case"lock-name":if(!isValidId(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_INVALID_NAME);throw new RtmInvalidArgumentError(e,[I],d)}break;case"metadata-lock":if(!isValidId(n)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_LOCK_NAME);throw new RtmInvalidArgumentError(e,[I],d)}}}class ReadByteBuffer{constructor(e){_defineProperty$1(this,"view",void 0),_defineProperty$1(this,"offset",void 0),this.view=new DataView(e),this.offset=0}getString(){const e=this.view.getUint16(this.offset,!0);this.offset+=2;const o=new Uint8Array(this.view.buffer,this.offset,e);return this.offset+=e,new TextDecoder().decode(o)}getUint32(){const e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}getUint16(){const e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}pack(){return this.view.buffer.slice(this.offset)}}function decodeBase64(n){const e=atob(n),o=new Uint8Array(e.length);for(let d=0;d"007",get006Version=()=>"006";function validateToken(n,e,o,d){if(e===n)return;function I(){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID);throw new RtmInvalidArgumentError(o,[L],v)}function f(){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmInvalidArgumentError(o,[L],v)}const S=n==null?void 0:n.slice(0,3);try{const v=S===get006Version()?fromStringWith006(n):S!==get007Version()||fromStringWith007(n);typeof v=="string"&&v!==e&&(isValidAppId(v)||f(),d("appId from token is '".concat(v,"', not match the appId of config.")),I()),v&&v!==e&&I()}catch(v){if(v instanceof RTMBaseError)throw v;d(v),f()}}function __awaiter(n,e,o,d){return new(o||(o=Promise))(function(I,f){function S(x){try{L(d.next(x))}catch(F){f(F)}}function v(x){try{L(d.throw(x))}catch(F){f(F)}}function L(x){var F;x.done?I(x.value):(F=x.value,F instanceof o?F:new o(function(Y){Y(F)})).then(S,v)}L((d=d.apply(n,[])).next())})}function __generator(n,e){var o,d,I,f,S={label:0,sent:function(){if(1&I[0])throw I[1];return I[1]},trys:[],ops:[]};return f={next:v(0),throw:v(1),return:v(2)},typeof Symbol=="function"&&(f[Symbol.iterator]=function(){return this}),f;function v(L){return function(x){return function(F){if(o)throw new TypeError("Generator is already executing.");for(;S;)try{if(o=1,d&&(I=2&F[0]?d.return:F[0]?d.throw||((I=d.return)&&I.call(d),0):d.next)&&!(I=I.call(d,F[1])).done)return I;switch(d=0,I&&(F=[2&F[0],I.value]),F[0]){case 0:case 1:I=F;break;case 4:return S.label++,{value:F[1],done:!1};case 5:S.label++,d=F[1],F=[0];continue;case 7:F=S.ops.pop(),S.trys.pop();continue;default:if(I=S.trys,!((I=I.length>0&&I[I.length-1])||F[0]!==6&&F[0]!==2)){S=0;continue}if(F[0]===3&&(!I||F[1]>I[0]&&F[1]0)&&!(d=f.next()).done;)S.push(d.value)}catch(v){I={error:v}}finally{try{d&&!d.done&&(o=f.return)&&o.call(f)}finally{if(I)throw I.error}}return S}function __spreadArray(n,e,o){if(arguments.length===2)for(var d,I=0,f=e.length;I1&&S.charAt(v)==="=";)++L;return Math.ceil(3*S.length)/4-L};for(var o=new Array(64),d=new Array(123),I=0;I<64;)d[o[I]=I<26?I+65:I<52?I+71:I<62?I-4:I-59|43]=I++;e.encode=function(S,v,L){for(var x,F=null,Y=[],j=0,W=0;v>2],x=(3&re)<<4,W=1;break;case 1:Y[j++]=o[x|re>>4],x=(15&re)<<2,W=2;break;case 2:Y[j++]=o[x|re>>6],Y[j++]=o[63&re],W=0}j>8191&&((F||(F=[])).push(String.fromCharCode.apply(String,Y)),j=0)}return W&&(Y[j++]=o[x],Y[j++]=61,W===1&&(Y[j++]=61)),F?(j&&F.push(String.fromCharCode.apply(String,Y.slice(0,j))),F.join("")):String.fromCharCode.apply(String,Y.slice(0,j))};var f="invalid encoding";e.decode=function(S,v,L){for(var x,F=L,Y=0,j=0;j1)break;if((W=d[W])===void 0)throw Error(f);switch(Y){case 0:x=W,Y=1;break;case 1:v[L++]=x<<2|(48&W)>>4,x=W,Y=2;break;case 2:v[L++]=(15&x)<<4|(60&W)>>2,x=W,Y=3;break;case 3:v[L++]=(3&x)<<6|W,Y=0}}if(Y===1)throw Error(f);return L-F},e.test=function(S){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(S)}}(base64$1)),base64$1}function requireEventemitter(){if(hasRequiredEventemitter)return eventemitter;function n(){this._listeners={}}return hasRequiredEventemitter=1,eventemitter=n,n.prototype.on=function(e,o,d){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:o,ctx:d||this}),this},n.prototype.off=function(e,o){if(e===void 0)this._listeners={};else if(o===void 0)this._listeners[e]=[];else for(var d=this._listeners[e],I=0;I0?0:2147483648,F,Y);else if(isNaN(x))L(2143289344,F,Y);else if(x>34028234663852886e22)L((j<<31|2139095040)>>>0,F,Y);else if(x<11754943508222875e-54)L((j<<31|Math.round(x/1401298464324817e-60))>>>0,F,Y);else{var W=Math.floor(Math.log(x)/Math.LN2);L((j<<31|W+127<<23|8388607&Math.round(x*Math.pow(2,-W)*8388608))>>>0,F,Y)}}function v(L,x,F){var Y=L(x,F),j=2*(Y>>31)+1,W=Y>>>23&255,re=8388607&Y;return W===255?re?NaN:j*(1/0):W===0?1401298464324817e-60*j*re:j*Math.pow(2,W-150)*(re+8388608)}f.writeFloatLE=S.bind(null,e),f.writeFloatBE=S.bind(null,o),f.readFloatLE=v.bind(null,d),f.readFloatBE=v.bind(null,I)}(),typeof Float64Array<"u"?function(){var S=new Float64Array([-0]),v=new Uint8Array(S.buffer),L=v[7]===128;function x(W,re,ee){S[0]=W,re[ee]=v[0],re[ee+1]=v[1],re[ee+2]=v[2],re[ee+3]=v[3],re[ee+4]=v[4],re[ee+5]=v[5],re[ee+6]=v[6],re[ee+7]=v[7]}function F(W,re,ee){S[0]=W,re[ee]=v[7],re[ee+1]=v[6],re[ee+2]=v[5],re[ee+3]=v[4],re[ee+4]=v[3],re[ee+5]=v[2],re[ee+6]=v[1],re[ee+7]=v[0]}function Y(W,re){return v[0]=W[re],v[1]=W[re+1],v[2]=W[re+2],v[3]=W[re+3],v[4]=W[re+4],v[5]=W[re+5],v[6]=W[re+6],v[7]=W[re+7],S[0]}function j(W,re){return v[7]=W[re],v[6]=W[re+1],v[5]=W[re+2],v[4]=W[re+3],v[3]=W[re+4],v[2]=W[re+5],v[1]=W[re+6],v[0]=W[re+7],S[0]}f.writeDoubleLE=L?x:F,f.writeDoubleBE=L?F:x,f.readDoubleLE=L?Y:j,f.readDoubleBE=L?j:Y}():function(){function S(L,x,F,Y,j,W){var re=Y<0?1:0;if(re&&(Y=-Y),Y===0)L(0,j,W+x),L(1/Y>0?0:2147483648,j,W+F);else if(isNaN(Y))L(0,j,W+x),L(2146959360,j,W+F);else if(Y>17976931348623157e292)L(0,j,W+x),L((re<<31|2146435072)>>>0,j,W+F);else{var ee;if(Y<22250738585072014e-324)L((ee=Y/5e-324)>>>0,j,W+x),L((re<<31|ee/4294967296)>>>0,j,W+F);else{var he=Math.floor(Math.log(Y)/Math.LN2);he===1024&&(he=1023),L(4503599627370496*(ee=Y*Math.pow(2,-he))>>>0,j,W+x),L((re<<31|he+1023<<20|1048576*ee&1048575)>>>0,j,W+F)}}}function v(L,x,F,Y,j){var W=L(Y,j+x),re=L(Y,j+F),ee=2*(re>>31)+1,he=re>>>20&2047,ue=4294967296*(1048575&re)+W;return he===2047?ue?NaN:ee*(1/0):he===0?5e-324*ee*ue:ee*Math.pow(2,he-1075)*(ue+4503599627370496)}f.writeDoubleLE=S.bind(null,e,0,4),f.writeDoubleBE=S.bind(null,o,4,0),f.readDoubleLE=v.bind(null,d,0,4),f.readDoubleBE=v.bind(null,I,4,0)}(),f}function e(f,S,v){S[v]=255&f,S[v+1]=f>>>8&255,S[v+2]=f>>>16&255,S[v+3]=f>>>24}function o(f,S,v){S[v]=f>>>24,S[v+1]=f>>>16&255,S[v+2]=f>>>8&255,S[v+3]=255&f}function d(f,S){return(f[S]|f[S+1]<<8|f[S+2]<<16|f[S+3]<<24)>>>0}function I(f,S){return(f[S]<<24|f[S+1]<<16|f[S+2]<<8|f[S+3])>>>0}return hasRequiredFloat=1,float=n(n)}function requireInquire(){if(hasRequiredInquire)return inquire_1;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(n){}return null}return hasRequiredInquire=1,inquire_1=inquire,inquire_1}var utf8$2={},hasRequiredUtf8,pool_1,hasRequiredPool,longbits,hasRequiredLongbits,hasRequiredMinimal;function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(n){var e=n;e.length=function(o){for(var d=0,I=0,f=0;f191&&f<224?v[L++]=(31&f)<<6|63&o[d++]:f>239&&f<365?(f=((7&f)<<18|(63&o[d++])<<12|(63&o[d++])<<6|63&o[d++])-65536,v[L++]=55296+(f>>10),v[L++]=56320+(1023&f)):v[L++]=(15&f)<<12|(63&o[d++])<<6|63&o[d++],L>8191&&((S||(S=[])).push(String.fromCharCode.apply(String,v)),L=0);return S?(L&&S.push(String.fromCharCode.apply(String,v.slice(0,L))),S.join("")):String.fromCharCode.apply(String,v.slice(0,L))},e.write=function(o,d,I){for(var f,S,v=I,L=0;L>6|192,d[I++]=63&f|128):(64512&f)==55296&&(64512&(S=o.charCodeAt(L+1)))==56320?(f=65536+((1023&f)<<10)+(1023&S),++L,d[I++]=f>>18|240,d[I++]=f>>12&63|128,d[I++]=f>>6&63|128,d[I++]=63&f|128):(d[I++]=f>>12|224,d[I++]=f>>6&63|128,d[I++]=63&f|128);return I-v}}(utf8$2)),utf8$2}function requirePool(){return hasRequiredPool?pool_1:(hasRequiredPool=1,pool_1=function(n,e,o){var d=o||8192,I=d>>>1,f=null,S=d;return function(v){if(v<1||v>I)return n(v);S+v>d&&(f=n(d),S=0);var L=e.call(f,S,S+=v);return 7&S&&(S=1+(7|S)),L}})}function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=e;var n=requireMinimal();function e(f,S){this.lo=f>>>0,this.hi=S>>>0}var o=e.zero=new e(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var d=e.zeroHash="\0\0\0\0\0\0\0\0";e.fromNumber=function(f){if(f===0)return o;var S=f<0;S&&(f=-f);var v=f>>>0,L=(f-v)/4294967296>>>0;return S&&(L=~L>>>0,v=~v>>>0,++v>4294967295&&(v=0,++L>4294967295&&(L=0))),new e(v,L)},e.from=function(f){if(typeof f=="number")return e.fromNumber(f);if(n.isString(f)){if(!n.Long)return e.fromNumber(parseInt(f,10));f=n.Long.fromString(f)}return f.low||f.high?new e(f.low>>>0,f.high>>>0):o},e.prototype.toNumber=function(f){if(!f&&this.hi>>>31){var S=1+~this.lo>>>0,v=~this.hi>>>0;return S||(v=v+1>>>0),-(S+4294967296*v)}return this.lo+4294967296*this.hi},e.prototype.toLong=function(f){return n.Long?new n.Long(0|this.lo,0|this.hi,!!f):{low:0|this.lo,high:0|this.hi,unsigned:!!f}};var I=String.prototype.charCodeAt;return e.fromHash=function(f){return f===d?o:new e((I.call(f,0)|I.call(f,1)<<8|I.call(f,2)<<16|I.call(f,3)<<24)>>>0,(I.call(f,4)|I.call(f,5)<<8|I.call(f,6)<<16|I.call(f,7)<<24)>>>0)},e.prototype.toHash=function(){return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},e.prototype.zzEncode=function(){var f=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^f)>>>0,this.lo=(this.lo<<1^f)>>>0,this},e.prototype.zzDecode=function(){var f=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^f)>>>0,this.hi=(this.hi>>>1^f)>>>0,this},e.prototype.length=function(){var f=this.lo,S=(this.lo>>>28|this.hi<<4)>>>0,v=this.hi>>>24;return v===0?S===0?f<16384?f<128?1:2:f<2097152?3:4:S<16384?S<128?5:6:S<2097152?7:8:v<128?9:10},longbits}function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,function(n){var e=n;function o(I,f,S){for(var v=Object.keys(f),L=0;L0)},e.Buffer=function(){try{var I=e.inquire("buffer").Buffer;return I.prototype.utf8Write?I:null}catch{return null}}(),e._Buffer_from=null,e._Buffer_allocUnsafe=null,e.newBuffer=function(I){return typeof I=="number"?e.Buffer?e._Buffer_allocUnsafe(I):new e.Array(I):e.Buffer?e._Buffer_from(I):typeof Uint8Array>"u"?I:new Uint8Array(I)},e.Array=typeof Uint8Array<"u"?Uint8Array:Array,e.Long=e.global.dcodeIO&&e.global.dcodeIO.Long||e.global.Long||e.inquire("long"),e.key2Re=/^true|false|0|1$/,e.key32Re=/^-?(?:0|[1-9][0-9]*)$/,e.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,e.longToHash=function(I){return I?e.LongBits.from(I).toHash():e.LongBits.zeroHash},e.longFromHash=function(I,f){var S=e.LongBits.fromHash(I);return e.Long?e.Long.fromBits(S.lo,S.hi,f):S.toNumber(!!f)},e.merge=o,e.lcFirst=function(I){return I.charAt(0).toLowerCase()+I.substring(1)},e.newError=d,e.ProtocolError=d("ProtocolError"),e.oneOfGetter=function(I){for(var f={},S=0;S-1;--L)if(f[v[L]]===1&&this[v[L]]!==void 0&&this[v[L]]!==null)return v[L]}},e.oneOfSetter=function(I){return function(f){for(var S=0;S127;)e[o++]=127&n|128,n>>>=7;e[o]=n}function VarintOp(n,e){this.len=n,this.next=void 0,this.val=e}function writeVarint64(n,e,o){for(;n.hi;)e[o++]=127&n.lo|128,n.lo=(n.lo>>>7|n.hi<<25)>>>0,n.hi>>>=7;for(;n.lo>127;)e[o++]=127&n.lo|128,n.lo=n.lo>>>7;e[o++]=n.lo}function writeFixed32(n,e,o){e[o]=255&n,e[o+1]=n>>>8&255,e[o+2]=n>>>16&255,e[o+3]=n>>>24}Writer$1.create=create$1(),Writer$1.alloc=function(n){return new util$4.Array(n)},util$4.Array!==Array&&(Writer$1.alloc=util$4.pool(Writer$1.alloc,util$4.Array.prototype.subarray)),Writer$1.prototype._push=function(n,e,o){return this.tail=this.tail.next=new Op(n,e,o),this.len+=e,this},VarintOp.prototype=Object.create(Op.prototype),VarintOp.prototype.fn=writeVarint32,Writer$1.prototype.uint32=function(n){return this.len+=(this.tail=this.tail.next=new VarintOp((n>>>=0)<128?1:n<16384?2:n<2097152?3:n<268435456?4:5,n)).len,this},Writer$1.prototype.int32=function(n){return n<0?this._push(writeVarint64,10,LongBits$1.fromNumber(n)):this.uint32(n)},Writer$1.prototype.sint32=function(n){return this.uint32((n<<1^n>>31)>>>0)},Writer$1.prototype.uint64=function(n){var e=LongBits$1.from(n);return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.int64=Writer$1.prototype.uint64,Writer$1.prototype.sint64=function(n){var e=LongBits$1.from(n).zzEncode();return this._push(writeVarint64,e.length(),e)},Writer$1.prototype.bool=function(n){return this._push(writeByte,1,n?1:0)},Writer$1.prototype.fixed32=function(n){return this._push(writeFixed32,4,n>>>0)},Writer$1.prototype.sfixed32=Writer$1.prototype.fixed32,Writer$1.prototype.fixed64=function(n){var e=LongBits$1.from(n);return this._push(writeFixed32,4,e.lo)._push(writeFixed32,4,e.hi)},Writer$1.prototype.sfixed64=Writer$1.prototype.fixed64,Writer$1.prototype.float=function(n){return this._push(util$4.float.writeFloatLE,4,n)},Writer$1.prototype.double=function(n){return this._push(util$4.float.writeDoubleLE,8,n)};var writeBytes=util$4.Array.prototype.set?function(n,e,o){e.set(n,o)}:function(n,e,o){for(var d=0;d>>0;if(!e)return this._push(writeByte,1,0);if(util$4.isString(n)){var o=Writer$1.alloc(e=base64.length(n));base64.decode(n,o,0),n=o}return this.uint32(e)._push(writeBytes,e,n)},Writer$1.prototype.string=function(n){var e=utf8$1.length(n);return e?this.uint32(e)._push(utf8$1.write,e,n):this._push(writeByte,1,0)},Writer$1.prototype.fork=function(){return this.states=new State(this),this.head=this.tail=new Op(noop,0,0),this.len=0,this},Writer$1.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Op(noop,0,0),this.len=0),this},Writer$1.prototype.ldelim=function(){var n=this.head,e=this.tail,o=this.len;return this.reset().uint32(o),o&&(this.tail.next=n.next,this.tail=e,this.len+=o),this},Writer$1.prototype.finish=function(){for(var n=this.head.next,e=this.constructor.alloc(this.len),o=0;n;)n.fn(n.val,e,o),o+=n.len,n=n.next;return e},Writer$1._configure=function(n){BufferWriter$1=n,Writer$1.create=create$1(),BufferWriter$1._configure()};var writer_buffer=BufferWriter,Writer=writer;(BufferWriter.prototype=Object.create(Writer.prototype)).constructor=BufferWriter;var util$3=requireMinimal();function BufferWriter(){Writer.call(this)}function writeStringBuffer(n,e,o){n.length<40?util$3.utf8.write(n,e,o):e.utf8Write?e.utf8Write(n,o):e.write(n,o)}BufferWriter._configure=function(){BufferWriter.alloc=util$3._Buffer_allocUnsafe,BufferWriter.writeBytesBuffer=util$3.Buffer&&util$3.Buffer.prototype instanceof Uint8Array&&util$3.Buffer.prototype.set.name==="set"?function(n,e,o){e.set(n,o)}:function(n,e,o){if(n.copy)n.copy(e,o,0,n.length);else for(var d=0;d>>0;return this.uint32(e),e&&this._push(BufferWriter.writeBytesBuffer,e,n),this},BufferWriter.prototype.string=function(n){var e=util$3.Buffer.byteLength(n);return this.uint32(e),e&&this._push(writeStringBuffer,e,n),this},BufferWriter._configure();var reader=Reader$1,util$2=requireMinimal(),BufferReader$1,LongBits=util$2.LongBits,utf8=util$2.utf8;function indexOutOfRange(n,e){return RangeError("index out of range: "+n.pos+" + "+(e||1)+" > "+n.len)}function Reader$1(n){this.buf=n,this.pos=0,this.len=n.length}var create_array=typeof Uint8Array<"u"?function(n){if(n instanceof Uint8Array||Array.isArray(n))return new Reader$1(n);throw Error("illegal buffer")}:function(n){if(Array.isArray(n))return new Reader$1(n);throw Error("illegal buffer")},create=function(){return util$2.Buffer?function(n){return(Reader$1.create=function(e){return util$2.Buffer.isBuffer(e)?new BufferReader$1(e):create_array(e)})(n)}:create_array},value;function readLongVarint(){var n=new LongBits(0,0),e=0;if(!(this.len-this.pos>4)){for(;e<3;++e){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return n}return n.lo=(n.lo|(127&this.buf[this.pos++])<<7*e)>>>0,n}for(;e<4;++e)if(n.lo=(n.lo|(127&this.buf[this.pos])<<7*e)>>>0,this.buf[this.pos++]<128)return n;if(n.lo=(n.lo|(127&this.buf[this.pos])<<28)>>>0,n.hi=(n.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return n;if(e=0,this.len-this.pos>4){for(;e<5;++e)if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return n}else for(;e<5;++e){if(this.pos>=this.len)throw indexOutOfRange(this);if(n.hi=(n.hi|(127&this.buf[this.pos])<<7*e+3)>>>0,this.buf[this.pos++]<128)return n}throw Error("invalid varint encoding")}function readFixed32_end(n,e){return(n[e-4]|n[e-3]<<8|n[e-2]<<16|n[e-1]<<24)>>>0}function readFixed64(){if(this.pos+8>this.len)throw indexOutOfRange(this,8);return new LongBits(readFixed32_end(this.buf,this.pos+=4),readFixed32_end(this.buf,this.pos+=4))}Reader$1.create=create(),Reader$1.prototype._slice=util$2.Array.prototype.subarray||util$2.Array.prototype.slice,Reader$1.prototype.uint32=(value=4294967295,function(){if(value=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128||(value=(value|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)||(value=(value|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)||(value=(value|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)||(value=(value|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128))return value;if((this.pos+=5)>this.len)throw this.pos=this.len,indexOutOfRange(this,10);return value}),Reader$1.prototype.int32=function(){return 0|this.uint32()},Reader$1.prototype.sint32=function(){var n=this.uint32();return n>>>1^-(1&n)},Reader$1.prototype.bool=function(){return this.uint32()!==0},Reader$1.prototype.fixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.sfixed32=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);return 0|readFixed32_end(this.buf,this.pos+=4)},Reader$1.prototype.float=function(){if(this.pos+4>this.len)throw indexOutOfRange(this,4);var n=util$2.float.readFloatLE(this.buf,this.pos);return this.pos+=4,n},Reader$1.prototype.double=function(){if(this.pos+8>this.len)throw indexOutOfRange(this,4);var n=util$2.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,n},Reader$1.prototype.bytes=function(){var n=this.uint32(),e=this.pos,o=this.pos+n;if(o>this.len)throw indexOutOfRange(this,n);if(this.pos+=n,Array.isArray(this.buf))return this.buf.slice(e,o);if(e===o){var d=util$2.Buffer;return d?d.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,e,o)},Reader$1.prototype.string=function(){var n=this.bytes();return utf8.read(n,0,n.length)},Reader$1.prototype.skip=function(n){if(typeof n=="number"){if(this.pos+n>this.len)throw indexOutOfRange(this,n);this.pos+=n}else do if(this.pos>=this.len)throw indexOutOfRange(this);while(128&this.buf[this.pos++]);return this},Reader$1.prototype.skipType=function(n){switch(n){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(n=7&this.uint32())!=4;)this.skipType(n);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+n+" at offset "+this.pos)}return this},Reader$1._configure=function(n){BufferReader$1=n,Reader$1.create=create(),BufferReader$1._configure();var e=util$2.Long?"toLong":"toNumber";util$2.merge(Reader$1.prototype,{int64:function(){return readLongVarint.call(this)[e](!1)},uint64:function(){return readLongVarint.call(this)[e](!0)},sint64:function(){return readLongVarint.call(this).zzDecode()[e](!1)},fixed64:function(){return readFixed64.call(this)[e](!0)},sfixed64:function(){return readFixed64.call(this)[e](!1)}})};var reader_buffer=BufferReader,Reader=reader;(BufferReader.prototype=Object.create(Reader.prototype)).constructor=BufferReader;var util$1=requireMinimal();function BufferReader(n){Reader.call(this,n)}BufferReader._configure=function(){util$1.Buffer&&(BufferReader.prototype._slice=util$1.Buffer.prototype.slice)},BufferReader.prototype.string=function(){var n=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+n,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+n,this.len))},BufferReader._configure();var rpc={},service=Service,util=requireMinimal();function Service(n,e,o){if(typeof n!="function")throw TypeError("rpcImpl must be a function");util.EventEmitter.call(this),this.rpcImpl=n,this.requestDelimited=!!e,this.responseDelimited=!!o}(Service.prototype=Object.create(util.EventEmitter.prototype)).constructor=Service,Service.prototype.rpcCall=function n(e,o,d,I,f){if(!I)throw TypeError("request must be specified");var S=this;if(!f)return util.asPromise(n,S,e,o,d,I);if(S.rpcImpl)try{return S.rpcImpl(e,o[S.requestDelimited?"encodeDelimited":"encode"](I).finish(),function(v,L){if(v)return S.emit("error",v,e),f(v);if(L!==null){if(!(L instanceof d))try{L=d[S.responseDelimited?"decodeDelimited":"decode"](L)}catch(x){return S.emit("error",x,e),f(x)}return S.emit("data",L,e),f(null,L)}S.end(!0)})}catch(v){return S.emit("error",v,e),void setTimeout(function(){f(v)},0)}else setTimeout(function(){f(Error("already ended"))},0)},Service.prototype.end=function(n){return this.rpcImpl&&(n||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},function(n){n.Service=service}(rpc);var roots={};(function(n){var e=n;function o(){e.util._configure(),e.Writer._configure(e.BufferWriter),e.Reader._configure(e.BufferReader)}e.build="minimal",e.Writer=writer,e.BufferWriter=writer_buffer,e.Reader=reader,e.BufferReader=reader_buffer,e.util=requireMinimal(),e.rpc=rpc,e.roots=roots,e.configure=o,o()})(indexMinimal);const Long=umdExports,minimal=indexMinimal;minimal.util.Long=Long,minimal.configure();var minimal_1=minimal;const $Reader$1=minimal_1.Reader,$Writer$2=minimal_1.Writer,$util$2=minimal_1.util,$root$2=minimal_1.roots.default||(minimal_1.roots.default={}),TopicMetadata=$root$2.TopicMetadata=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.topic=e.string();break;case 2:f.metadata=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/TopicMetadata"},n})(),StreamMessageProtocol=$root$2.StreamMessageProtocol=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.messageType=e.int32();break;case 2:f.payload=e.bytes();break;case 3:f.payloadLength=e.int32();break;case 4:f.sequence=e.int64();break;case 5:f.sendTs=e.int64();break;case 6:f.encrypted=e.bool();break;case 7:f.customType=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StreamMessageProtocol"},n})();let RTMStreamChannelStatusCode;(function(n){let e=function(o){return o[o.NO_ERROR=0]="NO_ERROR",o[o.PARTIALLY_SUCCESSFUL=1]="PARTIALLY_SUCCESSFUL",o[o.ALL_FAILED=2]="ALL_FAILED",o[o.UNKNOWN_ERROR=3]="UNKNOWN_ERROR",o[o.INVALID_PARAMS=4]="INVALID_PARAMS",o[o.REMOTE_USER_IS_NOT_PUBLISHED=5]="REMOTE_USER_IS_NOT_PUBLISHED",o[o.INVALID_REMOTE_USER=6]="INVALID_REMOTE_USER",o[o.TIMEOUT=7]="TIMEOUT",o[o.ALREADY_SUBSCRIBED_USER=20001]="ALREADY_SUBSCRIBED_USER",o[o.SUB_USER_EXCEED_LIMITATION=20003]="SUB_USER_EXCEED_LIMITATION",o[o.NOT_SUBSCRIBED_USER=20004]="NOT_SUBSCRIBED_USER",o}({});n.SubscribeTopicErrorCode=e})(RTMStreamChannelStatusCode||(RTMStreamChannelStatusCode={}));var isMobile$2={exports:{}};isMobile$2.exports=isMobile,isMobile$2.exports.isMobile=isMobile,isMobile$2.exports.default=isMobile;const mobileRE=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,notMobileRE=/CrOS/,tabletRE=/android|ipad|playbook|silk/i;function isMobile(n){n||(n={});let e=n.ua;if(e||typeof navigator>"u"||(e=navigator.userAgent),e&&e.headers&&typeof e.headers["user-agent"]=="string"&&(e=e.headers["user-agent"]),typeof e!="string")return!1;let o=mobileRE.test(e)&&!notMobileRE.test(e)||!!n.tablet&&tabletRE.test(e);return!o&&n.tablet&&n.featureDetect&&navigator&&navigator.maxTouchPoints>1&&e.indexOf("Macintosh")!==-1&&e.indexOf("Safari")!==-1&&(o=!0),o}var isMobileExports=isMobile$2.exports,isMobile$1=getDefaultExportFromCjs(isMobileExports),defaultProtocols=[],defaultWebsocketFactory=function(n,e){return new WebSocket(n,e)},normalClosureMessage="Normal closure";function makeWebSocketObservable(n,e){var o=e===void 0?{protocols:defaultProtocols,makeWebSocket:defaultWebsocketFactory}:e,d=o.protocols,I=d===void 0?defaultProtocols:d,f=o.makeWebSocket,S=f===void 0?defaultWebsocketFactory:f;return new Observable(function(v){var L,x=new Subject,F=S(n,I),Y=!1,j=!1,W=!1,re=function(){Y=!0},ee=function(he){if(L){re();var ue=new Error("Web socket message factory function called more than once");throw v.error(ue),ue}return L=he.subscribe(function(Ee){F.send(Ee)}),x};return F.onopen=function(){W=!0,j?(Y=!0,F.close()):v.next(ee)},F.onmessage=function(he){x.next(he.data)},F.onerror=function(he){re(),v.error(new Error(he.message))},F.onclose=function(he){Y||(re(),j?(v.complete(),x.complete()):v.error(new Error(he.code===1e3?normalClosureMessage:he.reason)))},function(){j=!0,L&&L.unsubscribe(),Y||(re(),W&&F.close())}})}const $Reader=minimal_1.Reader,$Writer$1=minimal_1.Writer,$util$1=minimal_1.util,$root$1=minimal_1.roots.default||(minimal_1.roots.default={}),Wrapper$1=$root$1.Wrapper=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.uri=e.int32();break;case 2:f.data=e.bytes();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Wrapper"},n})(),Ping3=$root$1.Ping3=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.ms=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Ping3"},n})(),Pong3=$root$1.Pong3=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.ms=e.uint64();break;case 3:f.serverMs=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Pong3"},n})(),UserJoin2=$root$1.UserJoin2=(()=>{function n(e){if(this.detail={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.seq=e.uint64();break;case 2:v.opt=e.uint64();break;case 3:v.instance=e.uint64();break;case 4:v.account=e.string();break;case 5:v.ticket=e.string();break;case 6:{v.detail===$util$1.emptyObject&&(v.detail={});let x=e.uint32()+e.pos;for(I=0,f=[];e.pos>>3){case 1:I=e.uint32();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.detail[I]=f;break}default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserJoin2"},n})(),UserResp2=$root$1.UserResp2=(()=>{function n(e){if(this.detail={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.seq=e.uint64();break;case 2:v.account=e.string();break;case 3:v.code=e.uint32();break;case 4:v.serverTs=e.uint64();break;case 5:{v.detail===$util$1.emptyObject&&(v.detail={});let x=e.uint32()+e.pos;for(I=0,f=[];e.pos>>3){case 1:I=e.uint32();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.detail[I]=f;break}default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserResp2"},n})(),UserQuit2=$root$1.UserQuit2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.flags=e.uint64():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserQuit2"},n})(),UserDrop=$root$1.UserDrop=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.code=e.uint32():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserDrop"},n})(),UserTicketNearlyExpire=$root$1.UserTicketNearlyExpire=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.expireTs=e.uint64();break;case 2:f.ticket=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserTicketNearlyExpire"},n})(),UserTicketNearlyExpire2=$root$1.UserTicketNearlyExpire2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.expireTs=e.uint64();break;case 2:f.ticket=e.string();break;case 3:f.resources=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserTicketNearlyExpire2"},n})(),UserRenewTokenReq=$root$1.UserRenewTokenReq=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.seq=e.uint64();break;case 3:f.account=e.string();break;case 4:f.ticket=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewTokenReq"},n})(),UserRenewTokenResp=$root$1.UserRenewTokenResp=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewTokenResp"},n})(),UserRenewToken2Req=$root$1.UserRenewToken2Req=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.seq=e.uint64();break;case 3:f.account=e.string();break;case 4:f.ticket=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewToken2Req"},n})(),UserRenewToken2Resp=$root$1.UserRenewToken2Resp=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.code=e.uint32();break;case 3:f.revoked=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/UserRenewToken2Resp"},n})(),GroupEnter=$root$1.GroupEnter=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.account=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupEnter"},n})(),GroupLeave=$root$1.GroupLeave=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.account=e.string():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupLeave"},n})(),GroupLeave2=$root$1.GroupLeave2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.account=e.string();break;case 2:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupLeave2"},n})(),GroupReply=$root$1.GroupReply=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.account=e.string();break;case 3:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupReply"},n})(),GroupLeaveNotice=$root$1.GroupLeaveNotice=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.user=e.string();break;case 3:f.group=e.string();break;case 4:f.instance=e.uint64();break;case 5:f.size=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupLeaveNotice"},n})(),GroupEnterNotice=$root$1.GroupEnterNotice=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.user=e.string();break;case 3:f.group=e.string();break;case 4:f.instance=e.uint64();break;case 5:f.size=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupEnterNotice"},n})(),Message=$root$1.Message=(()=>{function n(e){if(this.MiscMap={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.instance=e.uint64();break;case 2:v.dialogue=e.uint64();break;case 3:v.sequence=e.uint64();break;case 4:v.options=e.uint64();break;case 5:v.src=e.string();break;case 6:v.dst=e.string();break;case 7:v.payload=e.bytes();break;case 8:{v.MiscMap===$util$1.emptyObject&&(v.MiscMap={});let x=e.uint32()+e.pos;for(I="",f=[];e.pos>>3){case 1:I=e.string();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.MiscMap[I]=f;break}case 9:v.ms=e.uint64();break;default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Message"},n})(),Ack=$root$1.Ack=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.dialogue=e.uint64();break;case 3:f.sequence=e.uint64();break;case 4:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/Ack"},n})(),GroupDrop=$root$1.GroupDrop=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.account=e.string();break;case 2:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupDrop"},n})(),GroupAllUsersList=$root$1.GroupAllUsersList=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.group=e.string();break;case 3:f.pageSize=e.uint32();break;case 4:f.pageNumber=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupAllUsersList"},n})(),GroupAllUsersResult=$root$1.GroupAllUsersResult=(()=>{function n(e){if(this.memberInfos=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.group=e.string();break;case 3:f.totalSize=e.uint32();break;case 4:f.pageSize=e.uint32();break;case 5:f.pageNumber=e.uint32();break;case 6:f.memberInfos&&f.memberInfos.length||(f.memberInfos=[]),f.memberInfos.push($root$1.GroupAllUsersResult.MemberInfo.decode(e,e.uint32()));break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupAllUsersResult"},n.MemberInfo=function(){function e(o){if(o)for(let d=Object.keys(o),I=0;I>>3){case 1:S.account=o.string();break;case 2:S.ts=o.uint32();break;default:o.skipType(7&v)}}return S},e.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/GroupAllUsersResult.MemberInfo"},e}(),n})(),GroupCountNotice=$root$1.GroupCountNotice=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.instance=e.uint64();break;case 2:f.sequence=e.uint64();break;case 3:f.group=e.string();break;case 4:f.size=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/GroupCountNotice"},n})(),StateSubscribe=$root$1.StateSubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.sequence=e.uint64();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateSubscribe"},n})(),StateUpdate=$root$1.StateUpdate=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.allStates=e.string();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateUpdate"},n})(),StateSubscribeResult=$root$1.StateSubscribeResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.sequence=e.uint64();break;case 4:f.flags=e.uint64();break;case 5:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateSubscribeResult"},n})(),StateUnsubscribe=$root$1.StateUnsubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.sequence=e.uint64();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateUnsubscribe"},n})(),StateSet=$root$1.StateSet=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.author=e.string();break;case 3:f.value=e.string();break;case 4:f.lock=e.string();break;case 5:f.requestUuid=e.string();break;case 6:f.sequence=e.uint64();break;case 7:f.flags=e.uint64();break;case 8:f.baseRevision=e.uint64();break;case 9:f.lockRev=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateSet"},n})(),StateModify=$root$1.StateModify=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.author=e.string();break;case 3:f.value=e.string();break;case 4:f.lock=e.string();break;case 5:f.requestUuid=e.string();break;case 6:f.sequence=e.uint64();break;case 7:f.flags=e.uint64();break;case 8:f.baseRevision=e.uint64();break;case 9:f.lockRev=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateModify"},n})(),StateRequestResult=$root$1.StateRequestResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.requestUuid=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateRequestResult"},n})(),StateGet=$root$1.StateGet=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.lock=e.string();break;case 4:f.sequence=e.uint64();break;case 5:f.flags=e.uint64();break;case 6:f.lockRev=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateGet"},n})(),StateGetResult=$root$1.StateGetResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.subTarget=e.string();break;case 3:f.allStates=e.string();break;case 4:f.sequence=e.uint64();break;case 5:f.flags=e.uint64();break;case 6:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateGetResult"},n})(),StateLockAcquire=$root$1.StateLockAcquire=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.ttl=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockAcquire"},n})(),StateLockRelease=$root$1.StateLockRelease=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockRelease"},n})(),StateLockAcquireResult=$root$1.StateLockAcquireResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.lockRev=e.uint64();break;case 6:f.code=e.uint32();break;case 7:f.reason=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockAcquireResult"},n})(),StateLockUpdate=$root$1.StateLockUpdate=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.flags=e.uint64();break;case 4:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockUpdate"},n})(),StateLockReleaseResult=$root$1.StateLockReleaseResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockReleaseResult"},n})(),StateLockDisable=$root$1.StateLockDisable=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.userId=e.string();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDisable"},n})(),StateLockDisableResult=$root$1.StateLockDisableResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;case 5:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDisableResult"},n})(),StateLockSubscribe=$root$1.StateLockSubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockSubscribe"},n})(),StateLockSubscribeResult=$root$1.StateLockSubscribeResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.code=e.uint32();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockSubscribeResult"},n})(),LockState=$root$1.LockState=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.lockName=e.string();break;case 2:f.lockState=e.string();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/LockState"},n})(),StateLockSubscribeEvent=$root$1.StateLockSubscribeEvent=(()=>{function n(e){if(this.lockStates=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lockStates&&f.lockStates.length||(f.lockStates=[]),f.lockStates.push($root$1.LockState.decode(e,e.uint32()));break;case 3:f.eventType=e.int32();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockSubscribeEvent"},n})(),StateLockUnsubscribe=$root$1.StateLockUnsubscribe=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockUnsubscribe"},n})(),StateLockCreate=$root$1.StateLockCreate=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.ttl=e.uint64();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockCreate"},n})(),StateLockCreateResult=$root$1.StateLockCreateResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.code=e.uint32();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockCreateResult"},n})(),StateLockDelete=$root$1.StateLockDelete=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.requestUuid=e.string();break;case 4:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDelete"},n})(),StateLockDeleteResult=$root$1.StateLockDeleteResult=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.lock=e.string();break;case 3:f.code=e.uint32();break;case 4:f.requestUuid=e.string();break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockDeleteResult"},n})(),StateLockList=$root$1.StateLockList=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockList"},n})(),StateLockListResult=$root$1.StateLockListResult=(()=>{function n(e){if(this.lockStates=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.target=e.string();break;case 2:f.sequence=e.uint64();break;case 3:f.code=e.uint32();break;case 4:f.lockStates&&f.lockStates.length||(f.lockStates=[]),f.lockStates.push($root$1.LockState.decode(e,e.uint32()));break;case 5:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateLockListResult"},n})(),SyncInit=$root$1.SyncInit=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.seq=e.uint64():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncInit"},n})(),SyncInit2=$root$1.SyncInit2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.seq=e.uint64():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncInit2"},n})(),SyncInitAck=$root$1.SyncInitAck=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.seq=e.uint64();break;case 2:f.code=e.uint32();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncInitAck"},n})(),SyncFin=$root$1.SyncFin=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3==1?f.code=e.uint32():e.skipType(7&S)}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/SyncFin"},n})(),StateHistoryGet2=$root$1.StateHistoryGet2=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.uuid=e.string();break;case 2:f.startTime=e.uint64();break;case 3:f.endTime=e.uint64();break;case 4:f.dst=e.string();break;case 5:f.count=e.uint32();break;case 6:f.flags=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateHistoryGet2"},n})(),HistoryRecord2=$root$1.HistoryRecord2=(()=>{function n(e){if(this.details={},e)for(let o=Object.keys(e),d=0;d>>3){case 1:v.src=e.string();break;case 2:v.payload=e.bytes();break;case 3:v.options=e.uint64();break;case 4:v.ms=e.uint64();break;case 5:{v.details===$util$1.emptyObject&&(v.details={});let x=e.uint32()+e.pos;for(I="",f=[];e.pos>>3){case 1:I=e.string();break;case 2:f=e.bytes();break;default:e.skipType(7&F)}}v.details[I]=f;break}default:e.skipType(7&L)}}return v},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/HistoryRecord2"},n})(),StateHistoryGetResult2=$root$1.StateHistoryGetResult2=(()=>{function n(e){if(this.messages=[],e)for(let o=Object.keys(e),d=0;d>>3){case 1:f.uuid=e.string();break;case 2:f.startTime=e.uint64();break;case 3:f.endTime=e.uint64();break;case 4:f.dst=e.string();break;case 5:f.messages&&f.messages.length||(f.messages=[]),f.messages.push($root$1.HistoryRecord2.decode(e,e.uint32()));break;case 6:f.flags=e.uint64();break;case 7:f.code=e.uint32();break;case 8:f.more=e.bool();break;case 9:f.latestTime=e.uint64();break;case 10:f.oldestTime=e.uint64();break;default:e.skipType(7&S)}}return f},n.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/StateHistoryGetResult2"},n})(),URI$1=$root$1.URI=(()=>{const n={},e=Object.create(n);return e[n[0]="Unknown"]=0,e[n[1]="PingUri"]=1,e[n[2]="PongUri"]=2,e[n[3]="Ping2Uri"]=3,e[n[4]="Ping3Uri"]=4,e[n[5]="Pong3Uri"]=5,e[n[11]="UserJoinUri"]=11,e[n[12]="UserRespUri"]=12,e[n[15]="UserTicketNearlyExpireUri"]=15,e[n[16]="UserRenewTokenReqUri"]=16,e[n[17]="UserRenewTokenRespUri"]=17,e[n[18]="UserJoin2Uri"]=18,e[n[19]="UserResp2Uri"]=19,e[n[21]="UserQuitUri"]=21,e[n[22]="UserDropUri"]=22,e[n[24]="UserQuit2Uri"]=24,e[n[25]="UserTicketNearlyExpire2Uri"]=25,e[n[26]="UserRenewToken2ReqUri"]=26,e[n[27]="UserRenewToken2RespUri"]=27,e[n[31]="GroupEnterUri"]=31,e[n[32]="GroupLeaveUri"]=32,e[n[33]="GroupReplyUri"]=33,e[n[35]="GroupDropUri"]=35,e[n[230]="GroupLeave2Uri"]=230,e[n[36]="GroupEnterNoticeUri"]=36,e[n[37]="GroupLeaveNoticeUri"]=37,e[n[38]="GroupEventNoticeUri"]=38,e[n[39]="GroupCountNoticeUri"]=39,e[n[41]="UserStatusListUri"]=41,e[n[42]="UserStatusResultUri"]=42,e[n[51]="GroupStatusListUri"]=51,e[n[52]="GroupStatusResultUri"]=52,e[n[55]="GroupAllUsersListUri"]=55,e[n[56]="GroupAllUsersResultUri"]=56,e[n[100]="MessageUri"]=100,e[n[101]="AckUri"]=101,e[n[201]="UserJoinNoticeUri"]=201,e[n[202]="UserQuitNoticeUri"]=202,e[n[203]="UserWaitNoticeUri"]=203,e[n[301]="UserAttributeGetUri"]=301,e[n[302]="UserAttributeRetUri"]=302,e[n[303]="UserAttributeSetUri"]=303,e[n[304]="UserAttributeModUri"]=304,e[n[305]="UserAttributeDelUri"]=305,e[n[307]="UserAttributeRspUri"]=307,e[n[308]="UserAttributeErrUri"]=308,e[n[311]="UserAttributeKeysGetUri"]=311,e[n[312]="UserAttributeKeysRetUri"]=312,e[n[351]="GroupAttributeGetUri"]=351,e[n[352]="GroupAttributeRetUri"]=352,e[n[353]="GroupAttributeSetUri"]=353,e[n[354]="GroupAttributeModUri"]=354,e[n[355]="GroupAttributeDelUri"]=355,e[n[356]="GroupAttributeAltUri"]=356,e[n[357]="GroupAttributeRspUri"]=357,e[n[358]="GroupAttributeErrUri"]=358,e[n[361]="GroupAttributeKeysGetUri"]=361,e[n[362]="GroupAttributeKeysRetUri"]=362,e[n[401]="SubscribeUserStatusUri"]=401,e[n[402]="UnsubscribeUserStatusUri"]=402,e[n[499]="SubscribeResponseUri"]=499,e[n[601]="StateSubscribeUri"]=601,e[n[602]="StateUpdateUri"]=602,e[n[603]="StateSubscribeResultUri"]=603,e[n[604]="StateUnsubscribeUri"]=604,e[n[605]="StateSetUri"]=605,e[n[606]="StateModifyUri"]=606,e[n[607]="StateRequestResultUri"]=607,e[n[608]="StateGetUri"]=608,e[n[609]="StateGetResultUri"]=609,e[n[610]="StateLockAcquireUri"]=610,e[n[611]="StateLockReleaseUri"]=611,e[n[612]="StateLockAcquireResultUri"]=612,e[n[613]="StateLockUpdateUri"]=613,e[n[614]="StateLockReleaseResultUri"]=614,e[n[615]="StateLockDisableUri"]=615,e[n[616]="StateLockDisableResultUri"]=616,e[n[617]="StateLockSubscribeUri"]=617,e[n[618]="StateLockSubscribeResultUri"]=618,e[n[619]="StateLockSubscribeEventUri"]=619,e[n[620]="StateLockUnsubscribeUri"]=620,e[n[621]="StateLockCreateUri"]=621,e[n[622]="StateLockCreateResultUri"]=622,e[n[623]="StateLockDeleteUri"]=623,e[n[624]="StateLockDeleteResultUri"]=624,e[n[625]="StateLockListUri"]=625,e[n[626]="StateLockListResultUri"]=626,e[n[750]="SyncPacketUri"]=750,e[n[751]="SyncInitUri"]=751,e[n[752]="SyncInitAckUri"]=752,e[n[753]="SyncFinUri"]=753,e[n[633]="StateHistoryGet2Uri"]=633,e[n[634]="StateHistoryGetResult2Uri"]=634,e[n[754]="SyncInit2Uri"]=754,e})(),UserJoinDetailKey=$root$1.UserJoinDetailKey=(()=>{const n={},e=Object.create(n);return e[n[0]="kDetailKeyUnused"]=0,e[n[1]="kDetailKeyConsoleConfig"]=1,e[n[2]="kDetailKeyKeepAliveInterval"]=2,e[n[3]="kDetailKeyKeepAliveBuffer"]=3,e})(),LockEventType=$root$1.LockEventType=(()=>{const n={},e=Object.create(n);return e[n[0]="LockUnknown"]=0,e[n[1]="LockAdded"]=1,e[n[2]="LockModified"]=2,e[n[3]="LockRemoved"]=3,e[n[4]="LockSnapshot"]=4,e})();var ProtoPackets$1=Object.freeze({__proto__:null,Ack,GroupAllUsersList,GroupAllUsersResult,GroupCountNotice,GroupDrop,GroupEnter,GroupEnterNotice,GroupLeave,GroupLeave2,GroupLeaveNotice,GroupReply,HistoryRecord2,LockEventType,LockState,Message,Ping3,Pong3,StateGet,StateGetResult,StateHistoryGet2,StateHistoryGetResult2,StateLockAcquire,StateLockAcquireResult,StateLockCreate,StateLockCreateResult,StateLockDelete,StateLockDeleteResult,StateLockDisable,StateLockDisableResult,StateLockList,StateLockListResult,StateLockRelease,StateLockReleaseResult,StateLockSubscribe,StateLockSubscribeEvent,StateLockSubscribeResult,StateLockUnsubscribe,StateLockUpdate,StateModify,StateRequestResult,StateSet,StateSubscribe,StateSubscribeResult,StateUnsubscribe,StateUpdate,SyncFin,SyncInit,SyncInit2,SyncInitAck,URI:URI$1,UserDrop,UserJoin2,UserJoinDetailKey,UserQuit2,UserRenewToken2Req,UserRenewToken2Resp,UserRenewTokenReq,UserRenewTokenResp,UserResp2,UserTicketNearlyExpire,UserTicketNearlyExpire2,Wrapper:Wrapper$1,default:$root$1});const{URI}=$root$1,{Wrapper}=ProtoPackets$1,PacketsAndURI=_objectWithoutProperties(ProtoPackets$1,["Wrapper"]),Packets=omit$1(PacketsAndURI,"URI","LockEventType","UserJoinDetailKey"),nameToUri=n=>{const e="".concat(n,"Uri"),o=URI[e];if(typeof o!="number"||o===0)throw new TypeError("Got Unknown URI Name");return o};function uriToPacketName(n){return URI[n].slice(0,-3)}function getWrappedByName(n,e){const o=nameToUri(n),d=Packets[n],I=new d(e),f=d.encode(I).finish();return new Wrapper({uri:o,data:f})}function getSyncWrapped(n){return new Wrapper({uri:URI.SyncPacketUri,data:n})}const getApUrl=n=>{const e=getPrivateSettingsPortAndDomains([n]),o=e.port,d=e.hostname[0];return"https://".concat(d).concat(o?":".concat(o):"","/api/v1")};function getEdgeDomain(n,e,o,d,I){if(getParameter("EDGE_USE_IP")===!0)return n;const f=o&&o[0],S=o&&o[1];if(!(!e||!S)&&validateIpPort(S))return S;if(f&&validateIpPort(f))return f;const v="".concat(n.split(".").join("-")),L="".concat(e?S||f||I||"sd-rtn.com":f||I||"agora.io");return d===1?"".concat(v,".").concat(L):"".concat(v,".edge.").concat(L)}const $Writer=minimal_1.Writer,$util=minimal_1.util,$root=minimal_1.roots.default||(minimal_1.roots.default={}),Session=$root.Session=(()=>{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(this.linkServerList=[],e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(this.payloads=[],e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d{function n(e){if(e)for(let o=Object.keys(e),d=0;d=e.length&&(reportDomainIdx=0),e[reportDomainIdx]}catch(e){return console.error(e),""}}function initStorageCache(n){storageEvents.has(n)||storageEvents.set(n,[])}const decodeHexAsBytes=n=>{var e;const o=(e=n.match(/.{1,2}/g))===null||e===void 0?void 0:e.map(d=>parseInt(d,16));return o??[]},genAid=n=>{const e=decodeHexAsBytes(n),o=[e[0],e[4],e[8],e[12]];return o.reduce((I,f,S)=>I|f<<8*(o.length-1-S),0)>>>0};async function batchSendReport(n,e,o){var d;lastReportTime=Date.now();const I=o&&getPrivateSettingsPortAndDomains(o),f=I==null?void 0:I.port,S=I==null?void 0:I.hostname,v=(d=S==null?void 0:S.length)!==null&&d!==void 0?d:0,L=S&&S[0],x=S&&S[v-1],F=async function(Y){var j;let W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(W>3)return;const re=e&&!o?"https://".concat((j=areaConfig==null?void 0:areaConfig.PROXY_NGINX[0])!==null&&j!==void 0?j:"webrtc-cloud-proxy.sd-rtn.com","/rs/?h=").concat(Y,"&p=").concat(f??443,"&d=events/proto-raws"):"https://".concat(getReportDomain()||Y).concat(f?":".concat(f):"","/events/proto-raws");await postWithAbortSignal(re,{body:n,timeout:2e4,headers:{"Content-Type":"application/octet-stream"}}).catch(ee=>(reportDomainIdx++,F(Y,W+1)))};try{await F((areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN[0])||isValidEnvString(null)&&null||(L??EVENT_REPORT_DOMAIN))}catch{await F(areaConfig&&sample$1((areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN.length)>1?areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN.slice(1):areaConfig==null?void 0:areaConfig.EVENT_REPORT_DOMAIN)||(x??EVENT_REPORT_BACKUP_DOMAIN))}}function triggerReport(n,e,o,d){let I=arguments.length>4&&arguments[4]!==void 0&&arguments[4];if(onlineDetector.isOnline===!1)return;const f="".concat(eventsCacheKeyPrefix).concat(n);initStorageCache(f);const S=storageEvents.get(f);if(S.length!==0&&(!(S.length0;){const v=S.length>maxReportCount?maxReportCount:S.length,L=S.splice(0,v);storageEvents.set(f,S);const x=Math.ceil(Date.now()/1e3);batchSendReport(ProtoRaws.encode(Object.assign({vid:Long$1.fromNumber(Number(n)),sendTs:Long$1.fromNumber(x),payloads:L},Number(n)===0?{aid:Long$1.fromNumber(genAid(e))}:{})).finish(),o,d)}}function initEventReportTimer(n,e,o,d){return setInterval(()=>{const I=Date.now()-lastReportTime>forceReportInterval;triggerReport(n,e,o,d,I)},reportInterval)}function clearEventReportTimer(n){clearInterval(n)}async function addReportEvents(n,e,o,d,I,f){const S=ProtoPackets[e].encode(o).finish(),v=ReportId[e],L={id:Long$1.fromNumber(v),msg:S},x="".concat(eventsCacheKeyPrefix).concat(f);initStorageCache(x);const F=storageEvents.get(x);F.push(L),storageEvents.set(x,F),F.length>=maxReportCount&&triggerReport(f,n,d,I,!0)}async function sendReport(n,e,o,d,I){arguments.length>5&&arguments[5]!==void 0&&arguments[5]&&await mockPromiseDelay(1e4);const f=I&&getPrivateSettingsPortAndDomains(I),S=f==null?void 0:f.hostname;addReportEvents(n,e,o,d,I,"0"),triggerReport("0",n,d,S,!0)}function getElapse(n){return n===void 0?Long$1.fromNumber(0):Long$1.fromNumber(Date.now()-n)}function rateLimit(n){let e=1,o=asapScheduler;(arguments.length<=1?0:arguments.length-1)==1?typeof(arguments.length<=1?void 0:arguments[1])=="number"?e=arguments.length<=1?void 0:arguments[1]:o=arguments.length<=1?void 0:arguments[1]:(arguments.length<=1?0:arguments.length-1)==2&&(e=arguments.length<=1?void 0:arguments[1],o=arguments.length<=2?void 0:arguments[2]);const d=e||1;return I=>I.pipe(scan((f,S)=>{const v=o.now(),L=v-n;if((f=f.filter(x=>x.until>L)).length>=d){const x=f[0],F=f[f.length-1],Y=x.until+n*Math.floor(f.length/d);f.push({delay:F.untilf[f.length-1]),concatMap(f=>{const S=of(f.value);return f.delay?S.pipe(delay(f.delay,o)):S}))}const SocketError=genError(),deprecatedURI=[URI$1.PingUri,URI$1.PongUri,URI$1.Ping2Uri,URI$1.UserJoinUri,URI$1.UserRespUri,URI$1.UserQuitUri,URI$1.GroupEventNoticeUri,URI$1.UserStatusListUri,URI$1.UserStatusResultUri,URI$1.GroupStatusListUri,URI$1.GroupStatusResultUri,URI$1.UserJoinNoticeUri,URI$1.UserQuitNoticeUri,URI$1.UserWaitNoticeUri,URI$1.UserAttributeGetUri,URI$1.UserAttributeRetUri,URI$1.UserAttributeSetUri,URI$1.UserAttributeModUri,URI$1.UserAttributeDelUri,URI$1.UserAttributeRspUri,URI$1.UserAttributeErrUri,URI$1.UserAttributeKeysGetUri,URI$1.UserAttributeKeysRetUri,URI$1.GroupAttributeGetUri,URI$1.GroupAttributeRetUri,URI$1.GroupAttributeSetUri,URI$1.GroupAttributeModUri,URI$1.GroupAttributeDelUri,URI$1.GroupAttributeAltUri,URI$1.GroupAttributeRspUri,URI$1.GroupAttributeErrUri,URI$1.GroupAttributeKeysGetUri,URI$1.GroupAttributeKeysRetUri,URI$1.SubscribeUserStatusUri,URI$1.UnsubscribeUserStatusUri,URI$1.SubscribeResponseUri];class Socket extends EventBase{get address(){return"".concat(this.ip,":").concat(this.EDGE_ENV_PORT[this.env])}constructor(e,o,d,I,f,S,v,L,x){var F;if(super(f,uniquePrefixedId("Socket-",f.loggerId)),_defineProperty$1(this,"isActiveClose",!1),_defineProperty$1(this,"loggedIn",!1),_defineProperty$1(this,"useNewDomain",void 0),_defineProperty$1(this,"attemptsSinceLastError",0),_defineProperty$1(this,"receivedPacket",new Subject),_defineProperty$1(this,"receivedSyncPacket",new Subject),_defineProperty$1(this,"open$",void 0),_defineProperty$1(this,"input$",new Subject),_defineProperty$1(this,"userJoin$",new Subject),_defineProperty$1(this,"EDGE_ENV_PORT",(F=getParameter("EDGE_ENV_PORT"))!==null&&F!==void 0?F:EDGE_ENV_PORT),_defineProperty$1(this,"message$",new Subject),_defineProperty$1(this,"socket$",void 0),_defineProperty$1(this,"toClose",new Subject),_defineProperty$1(this,"toReconnect",new Subject),_defineProperty$1(this,"sendLogger",void 0),_defineProperty$1(this,"receiveLogger",void 0),_defineProperty$1(this,"ip",void 0),_defineProperty$1(this,"env",void 0),_defineProperty$1(this,"ticket",void 0),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"edgeDomain",void 0),_defineProperty$1(this,"_getDomain",()=>{var re,ee;return getEdgeDomain(this.ip,this.useNewDomain,(re=this.context.rtmConfig.privateConfig)===null||re===void 0?void 0:re.originDomains,(ee=this.context.rtmConfig.privateConfig)===null||ee===void 0?void 0:ee.domainMode,this.edgeDomain)}),_defineProperty$1(this,"_getProxyDomain",re=>{var ee,he;return getEdgeDomain(re,!1,(ee=this.context.rtmConfig.privateConfig)===null||ee===void 0?void 0:ee.originDomains,(he=this.context.rtmConfig.privateConfig)===null||he===void 0?void 0:he.domainMode)}),_defineProperty$1(this,"socketReconnector",re=>re.pipe(catchError(ee=>this.isActiveClose?EMPTY:(this.attemptsSinceLastError+=1,this.logError("Env_".concat(this.env,"(").concat(this.name,"): socket connection error, errorInfo: %o"),ee),this.loggedIn=!1,this.attemptsSinceLastError>=2?(this.log("ENV_".concat(this.env,"(").concat(this.name,"): will emit socketFailure")),this.emit("socketFailure"),EMPTY):this.isActiveClose?EMPTY:(this.log("ENV_".concat(this.env,"(").concat(this.name,"): will emit reconnect")),this.emit("reconnect"),this.useNewDomain=!this.useNewDomain,throwError(ee)))),retryWhen(ee=>ee.pipe(switchMap(he=>(this.warn("The %s of Env %d reconnecting %s",this.name,this.env,he.message),timer(SOCKET_RETRY_INTERVAL))))))),this.ip=e,this.env=o,this.ticket=d,this.context=I,this.useNewDomain=L??Math.random()>=.5,this.edgeDomain=x??"",this.sendLogger=this.genLogger("RTM:MSG:SEND"),this.receiveLogger=this.genLogger("RTM:MSG:RECV"),o!==0&&o!==1)throw new SocketError({ILLEGAL_RTM_ENV:"The env number is out of rtm env count"});const Y=this.EDGE_ENV_PORT[o];this.log("Opening websocket address %s for the Env %d, %s",maskIp(this.ip),this.env,this.name),this.context.addReportEvents("LinkLoginRequest",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),destServerIp:this.ip,linkId:this.env});const j=merge(this.input$,this.userJoin$.pipe(rateLimit(LOGIN_QPS_LIMIT)),this.message$).pipe(map$1(re=>Wrapper$1.encode(re).finish())),W=merge(makeWebSocketObservable("",{protocols:[],makeWebSocket:()=>{let re;const ee=getParameter("REGISTRAR_USE_WS")?"ws":"wss";if(this.log("registrar websocket use ".concat(ee)),this.context.addReportEvents("LinkTcpEvent",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),destServerIp:e,action:"create",code:0,responseTime:0,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0,!0),linktype:4,linkflag:Long$1.fromNumber(0,!0),linkenv:this.env}),!this.context.rtmConfig.cloudProxy&&!this.context.socketUseProxy||this.context.enablePrivate){const ue=parseHost(this._getDomain(),Y),Ee="".concat(ee,"://").concat(ue.domain);re=new WebSocket("".concat(Ee,":").concat(ue.port))}else{var he;if(S.length===0)throw this.logError("No cloud proxy server to connect, env: %d, name: %s",this.env,this.name),new RtmUnavailableError("");const ue=v();this.log("Using cloud proxy server %s, env: %d, name: %s",ue,this.env,this.name);const Ee=parseHost(this._getProxyDomain(ue));let _e="".concat(ee,"://").concat(Ee.domain,"/");_e=appendQueryParameter(_e,"sid",this.context.sid),_e=appendQueryParameter(_e,"remote_port",Y.toString()),_e=appendQueryParameter(_e,"remote_ip",this.ip),_e=appendQueryParameter(_e,"token",this.context.key),re=new WebSocket("".concat(_e,":").concat((he=Ee.port)!==null&&he!==void 0?he:443))}return re instanceof WebSocket&&this.addWebSocketEventListeners(re),re.binaryType="arraybuffer",re}}),this.toReconnect);this.socket$=race(W,NEVER.pipe(timeout(7e3),catchError(re=>(isTimeout(re)?this.warn("ENV_".concat(this.env,"(").concat(this.name,"): socket open timed out")):this.logError("ENV_".concat(this.env,"(").concat(this.name,"): error occurs of opening socket: %o"),re),throwError(re))))).pipe(map$1(re=>{if(re instanceof Error)throw this.warn("Env_%d: Force reconnect the socket",this.env),re;return re(j).pipe(map$1(ee=>Wrapper$1.decode(new Uint8Array(ee))))}),this.socketReconnector),this.open$=this.socket$.pipe(tap(re=>{this.log("ENV_".concat(this.env,": Websocket opened, addr: ").concat(maskIp(this.address)),this.name),this.context.addReportEvents("LinkTcpEvent",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),destServerIp:e,action:"on_connect",code:0,responseTime:0,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0,!0),linktype:4,linkflag:Long$1.fromNumber(0,!0),linkenv:this.env}),re.subscribe(ee=>{let{data:he,uri:ue}=ee;if(ue===URI$1.SyncPacketUri)return getSyncPacketUri(he),void this.receivedSyncPacket.next(he);const Ee=uriToPacketName(ue),_e=Packets[Ee].decode(he);if(deprecatedURI.includes(ue))return void this.receiveLogger("Env_%d: %s, deprecated.",this.env,Ee);const De=mergeWith$1({},omit$1(_e,"toJSON"),(Ve,Ge)=>Ge instanceof Long$1?longToStringIfNeeded(Ge):Ge);let Fe=!1;if(_e instanceof GroupEnterNotice||_e instanceof GroupLeaveNotice){const{instance:Ve}=_e;Ve.lessThanOrEqual(UINT32_MAX)&&(Fe=!0)}if(_e instanceof Message||_e instanceof Ack){const{instance:Ve,dialogue:Ge,sequence:He}=_e;(Ge.lessThanOrEqual(UINT32_MAX)||Ve.lessThanOrEqual(UINT32_MAX)||He.lessThan(1))&&(Fe=!0)}Fe?this.warn("Env_%d: Illegal %s, abandoned %o",this.env,Ee,De):((getParameter("LOG_PING_PONG")||LOG_PING_PONG||Ee!=="Pong3")&&this.receiveLogger("Env_%d: %s %o",this.env,Ee,De),this.receivedPacket.next([Ee,_e]))},()=>{})}),mapTo(void 0),takeUntil(this.toClose),share())}addWebSocketEventListeners(e){e.addEventListener("close",o=>{this.log("ws onclose, code: %d, reason: '%s', env: %d, name: %s",o.code,o.reason,this.env,this.name)}),e.addEventListener("error",o=>{this.log("ws onerror, env: %d, name: %s, error: %o",this.env,this.name,o)}),e.addEventListener("open",()=>{this.log("ws open, env: %d, name: %s",this.env,this.name)})}sendPacket(e,o){if(getParameter("LOG_PING_PONG")||LOG_PING_PONG||e!=="Ping3"){const I=mapValues$1(o,f=>f instanceof Long$1?longToStringIfNeeded(f):f);this.sendLogger("Env_%d: %s %o",this.env,e,I)}const d=getWrappedByName(e,o);e==="UserJoin2"?this.userJoin$.next(d):e!=="Message"||this.isActiveClose?this.isActiveClose||this.input$.next(d):this.message$.next(d)}close(){this.log("Closing websocket by client, name: %s, env: %d",this.name,this.env),this.isActiveClose=!0,this.loggedIn=!1,this.toClose.next()}fromReceived(e){return this.receivedPacket.pipe(filter(o=>{let[d]=o;return d===e}),map$1(o=>{let[,d]=o;return d}))}sendSyncPacket(e){const o=getSyncWrapped(e),d=getSyncPacketUri(e);(d!==102&&d!==104||LOG_SYNC_PING_PONG)&&this.sendLogger("Env_%d: %s send sync packet uri: %d",this.env,"SyncPacket",d),this.input$.next(o)}forceReconnect(){this.toReconnect.next(new SocketError({FORCE_RECONNECTING:"Connection seems broken, try force reconnecting"}))}changeToReOpened(){this.attemptsSinceLastError=0}}const HEADER_PACKET_SERVICE_TYPE="X-Packet-Service-Type",HEADER_PACKET_URI="X-Packet-URI",HEADER_CONTENT_TYPE="Content-Type",HEADER_VALUE_JSON="application/json",URI_CLOUD_PROXY="90",URI_AP="69",RESP_URI=23,RETRY_DELAY_MS=2e3,UNI_LBS_FLAG=128,CLOUD_PROXY_FLAG=262144;class AccessPoint extends EventBase{constructor(e,o,d){super(o,"AccessPoint"),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"apFinish$",new Subject),_defineProperty$1(this,"failedAreas",new Set),_defineProperty$1(this,"replayedEdges",new Map),_defineProperty$1(this,"lastEdges",new Map),_defineProperty$1(this,"apDomainList",[]),_defineProperty$1(this,"_cloudProxyServers",[]),_defineProperty$1(this,"_onApInfo",I=>{let{rtmArea:f,vid:S}=I;this.context.rtmArea=f,this.context.vid=S,setVidParameter(this.context.appId,this.context.vid),this.context.initReportEvent()}),_defineProperty$1(this,"handleUniLbsError",(I,f)=>{const S=OperationName.login;let v=I;if(I.toString().length>4){const F=I.toString().padStart(8,"0"),Y=parseInt(F.slice(0,4),10),j=parseInt(F.slice(4,8),10);if(Y===UNI_LBS_CODE)v=j;else{if(Y===ACCESS_POINT_CODE&&(UniLbsNonRetryableErrorCodes.includes(j)||j>0&&j<200)){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED);return throwError(new RtmUnavailableError(OperationName.login,[re],{code:W,serverCode:v}))}if(Y===ACCESS_POINT_CODE&&j>=200)return this.warn("AP lowFour code is %s, NO_SERVICE_AVAILABLE.",j),EMPTY}}const L=v.toString();if(!Object.keys(ApResErrorCode).includes(L)){const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED),j=new RtmUnavailableError(S,[Y+"apCode is ".concat(v,", unexpected code.")],{code:F,serverCode:v});return j.serverCode=v,throwError(j)}const x=ApResErrorCode[L];switch(this.warn("%s: %s's error type is %s",this.name,f,x),x){case"INVALID_APP_ID":case"APP_ID_NO_ACTIVATED":case"DYNAMIC_KEY_NOT_ENABLED":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_APP_ID),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}case"NO_AUTHORIZED":case"DYNAMIC_ENABLED_BUT_STATIC_KEY":case"INVALID_USER_ID":case"INVALID_TOKEN_UID":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}case"TOKEN_TIMEOUT":case"TOKEN_EXPIRED":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}case"CANNOT_MEET_AREA_DEMAND":{const F=getAreaCodeByApUrl(f);Array.isArray(F)&&F.length>0&&F.forEach(ee=>this.failedAreas.add(ee));const Y=areaConfig===void 0?2:areaConfig.CODES.size,{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_NO_SERVER_RESOURCES);if(this.failedAreas.size===Y){const ee=new RtmInvalidArgumentError(S,[W+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],j);return ee.serverCode=v,throwError(ee)}const re=new RtmUnavailableError(S,[W+"".concat(this.name," ").concat(F.join(", ")," cannot meet requirement")],j);return re.serverCode=v,throwError(re)}case"INIT_APPID_MISMATCH":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID),j=new RtmUnavailableError(S,[Y],F);return j.serverCode=v,throwError(j)}case"NO_ANY_PRIVILEGE":case"NO_RTM_PRIVILEGE":case"NO_ACTIVE_PRODUCT_STATUS":{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_NOT_AUTHORIZED),j=new RtmUnauthenticatedError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}default:{const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED),j=new RtmUnavailableError(S,[Y+" detail: ".concat(x,", ").concat(ApResErrorMessage[x])],F);return j.serverCode=v,throwError(j)}}}),_defineProperty$1(this,"generateShuffledUrls",(I,f)=>{const S=[...I],v=[...f],L=[],x=S.length+v.length;for(;L.length{var I;let f=this.apDomainList;const S=(I=this.context.rtmConfig.privateConfig)===null||I===void 0?void 0:I.accessPointHosts;return S!=null&&S.length&&(f=shuffle$1(S)),(this.context.rtmConfig.cloudProxy||this.context.socketUseProxy)&&(f=(areaConfig==null?void 0:areaConfig.PROXY_AP)||["ap-proxy-1.agora.io","ap-proxy-2.agora.io"]),zip(of(...f)).pipe(concatMap(v=>of(...v)))}),_defineProperty$1(this,"fetchCloudProxy",(I,f)=>{const S=uniquePrefixedId("AP-",this.loggerId);this.log("The AccessPoint requests %s(%s)",I,S);const v=new AbortController;this.apFinish$.subscribe(()=>v.abort());const L=getRandomInt(0,Number.MAX_SAFE_INTEGER);return defer(async()=>(this.log("%s request opid: %d",S,L),postWithAbortSignal(I,{headers:{[HEADER_PACKET_SERVICE_TYPE]:"0",[HEADER_PACKET_URI]:URI_CLOUD_PROXY,[HEADER_CONTENT_TYPE]:HEADER_VALUE_JSON},body:{sid:this.context.sid,opid:L,appid:this.context.appId,client_ts:Math.ceil(Date.now()/1e3),request_bodies:[{uri:RESP_URI-1,buffer:{service_ids:[7,16],key:f??this.context.key,cname:this.context.uid,uid:0,detail:_objectSpread2(_objectSpread2({},areaConfig===void 0?{11:[AreaCodeMap.CHINA,AreaCodeMap.GLOBAL].join(",")}:{11:Array.from(areaConfig.CODES).map(x=>x===AreaCodeMap.OVERSEA?"".concat(AreaCodeMap.ASIA,",").concat(AreaCodeMap.EUROPE,",").concat(AreaCodeMap.AFRICA,",").concat(AreaCodeMap.NORTH_AMERICA,",").concat(AreaCodeMap.SOUTH_AMERICA,",").concat(AreaCodeMap.OCEANIA):x).join(",")}),{12:"1",[AP_DETAIL_KEY_BUSINESS_TYPE]:"RTM2",[AP_DETAIL_KEY_APP_ID]:this.context.appId})}}]},signal:v.signal}))).pipe(catchError(x=>(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:10,opid:L,area:"",isp:""}),x.name!=="AbortError"&&this.logError("The ProxyAP request reg server failure, %s",x),EMPTY)),mergeMap(async x=>{var F;let{responseText:Y}=x;const j=JSON.parse(Y);this.log("The %s response is %o",S,j);const{response_body:W}=j;if(W===void 0||W.length===0||W.some(ct=>{var ht;return((ht=ct.buffer)===null||ht===void 0?void 0:ht.code)===void 0||ct.uri!==RESP_URI})){const{code:ct,reason:ht}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_REJECTED);return throwError(new RtmUnavailableError(OperationName.login,[ht+"cloud proxy response_body not valid"],ct))}const re=W.filter(ct=>ct.buffer.code!==0);if(re.length!==0){const ct=re.find(ht=>ht.buffer.flag===UNI_LBS_FLAG);var ee,he,ue,Ee,_e;return ct!==void 0?(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:(ee=ct==null||(he=ct.buffer)===null||he===void 0?void 0:he.code)!==null&&ee!==void 0?ee:0,opid:L,area:this.context.rtmArea,isp:(ue=(Ee=ct.buffer)===null||Ee===void 0||(Ee=Ee.detail)===null||Ee===void 0?void 0:Ee[2])!==null&&ue!==void 0?ue:""}),this.handleUniLbsError(ct.buffer.code,I)):(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:(_e=re[0].buffer.code)!==null&&_e!==void 0?_e:0,opid:L,area:this.context.rtmArea,isp:""}),this.logError("cloud proxy error response"),this.handleUniLbsError(re[0].buffer.code,I))}let De=[];for(let ct=0;ct{let{ip:ar}=vt;isValidIp(ar)&&this._cloudProxyServers.indexOf(ar)===-1&&(this.log("got cloud proxy server: %s",ar),this._cloudProxyServers.push(ar))});else if((ht==null||(Ve=ht.buffer)===null||Ve===void 0?void 0:Ve.flag)===UNI_LBS_FLAG){var At,Bt,Tt,rt,ye,lt;for(let vt=0,ar=ht.buffer.edges_services;vtvr.ip===jt.ip)||De.push({ip:jt.ip,ticket:ht.buffer.cert})}this._onApInfo({rtmArea:(At=(Bt=ht.buffer)===null||Bt===void 0||(Bt=Bt.detail)===null||Bt===void 0?void 0:Bt[9])!==null&&At!==void 0?At:"",vid:(Tt=(rt=ht.buffer)===null||rt===void 0||(rt=rt.detail)===null||rt===void 0?void 0:rt[8])!==null&&Tt!==void 0?Tt:""}),this._reportApEvent({apAddr:I,edgeInfos:De,serverErrCode:ht.buffer.code,opid:L,area:this.context.rtmArea,isp:(ye=(lt=ht.buffer)===null||lt===void 0||(lt=lt.detail)===null||lt===void 0?void 0:lt[2])!==null&&ye!==void 0?ye:""})}}this.resetApDomainList();const Yt=(F=getParameter("EDGE_IP_LIST"))!==null&&F!==void 0?F:[];return this.log("registrar EDGE_IP_LIST: ".concat(Yt," ")),Yt!=null&&Yt.length&&(De=Yt.map(ct=>({ip:ct,ticket:De[0].ticket}))),De.forEach(ct=>{this.replayedEdges.set(ct.ip,ct)}),of(...De,queueScheduler)}),catchError(x=>isRtmError(x)?throwError(x):EMPTY),mergeAll(),filter(x=>x!==void 0&&typeof x.ip=="string"&&typeof x.ticket=="string"&&isValidIp(x.ip)))}),_defineProperty$1(this,"fetchAp",(I,f)=>{const S=uniquePrefixedId("AP-",this.loggerId);this.log("The AccessPoint requests %s(%s)",I,S);const v=new AbortController;this.apFinish$.subscribe(()=>v.abort());const L=getRandomInt(0,Number.MAX_SAFE_INTEGER);return defer(async()=>(this.log("%s request opid: %d",S,L),postWithAbortSignal(I,{headers:{[HEADER_PACKET_SERVICE_TYPE]:"0",[HEADER_PACKET_URI]:URI_AP,[HEADER_CONTENT_TYPE]:HEADER_VALUE_JSON},body:{flag:UNI_LBS_FLAG,opid:L,key:f||this.context.key,cname:this.context.uid,detail:_objectSpread2(_objectSpread2({},areaConfig===void 0?{11:[AreaCodeMap.CHINA,AreaCodeMap.GLOBAL].join(",")}:{11:Array.from(areaConfig.CODES).map(x=>x===AreaCodeMap.OVERSEA?"".concat(AreaCodeMap.ASIA,",").concat(AreaCodeMap.EUROPE,",").concat(AreaCodeMap.AFRICA,",").concat(AreaCodeMap.NORTH_AMERICA,",").concat(AreaCodeMap.SOUTH_AMERICA,",").concat(AreaCodeMap.OCEANIA):x).join(",")}),{12:"1",[AP_DETAIL_KEY_BUSINESS_TYPE]:"RTM2",[AP_DETAIL_KEY_APP_ID]:this.context.appId}),uid:0,sid:this.context.sid},signal:v.signal}))).pipe(catchError(x=>(this._reportApEvent({apAddr:I,edgeInfos:[],serverErrCode:10,opid:L,area:"",isp:""}),x.name!=="AbortError"&&this.logError("The AP request reg server failure, %s",x),EMPTY)),mergeMap(async x=>{var F,Y,j;let{responseText:W}=x;const re=JSON.parse(W);this.log("The %s response is %o",S,re);const{code:ee,addresses:he,detail:ue}=re;if(this._onApInfo({rtmArea:(F=ue==null?void 0:ue[9])!==null&&F!==void 0?F:"",vid:(Y=ue[8])!==null&&Y!==void 0?Y:""}),this._reportApEvent({apAddr:I,edgeInfos:he,serverErrCode:ee,opid:L,area:ue[9],isp:ue[2]}),ee!==0)return this.handleUniLbsError(ee,I);this.resetApDomainList();let Ee=he;const _e=(j=getParameter("EDGE_IP_LIST"))!==null&&j!==void 0?j:[];return this.log("registrar EDGE_IP_LIST: ".concat(_e.map(maskIp))),_e!=null&&_e.length&&(Ee=_e.map(De=>({ip:De,ticket:Ee[0].ticket}))),Ee.length===0?throwError(new Error("No available edge address to connect")):(Ee.forEach(De=>{this.replayedEdges.set(De.ip,De)}),of(...Ee,queueScheduler))}),mergeAll(),catchError(x=>isRtmError(x)?throwError(x):EMPTY),filter(x=>x!==void 0&&typeof x.ip=="string"&&typeof x.ticket=="string"))}),this.context=e,this._cloudProxyServers=d,this.resetApDomainList()}_reportApEvent(e){let{apAddr:o,edgeInfos:d,serverErrCode:I,opid:f,area:S,isp:v}=e;this.context.addReportEvents("ApEvent",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),apAddr:o,linkServerList:d.map(L=>L.ip),serverErrCode:I,flag:128,envId:0,opId:Long$1.fromNumber(f),errCode:0,area:S,isp:v,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),localWanIp:"",responseTime:0,apLinkType:"tcp",resultcount:d.length,validresultcount:d.length,newvalidresultcount:d.length})}getApUrl$(){var e,o;return this.generateUrlStream().pipe(take(((e=areaConfig==null||(o=areaConfig.CODES)===null||o===void 0?void 0:o.size)!==null&&e!==void 0?e:0)||Number(getParameter("CONCURRENT_AP_NUM"))||AP_CONCURRENT_REQ_NUM),throwIfEmpty(()=>AccessPoint.runOutOfUrlSymbol),catchError((d,I)=>d===AccessPoint.runOutOfUrlSymbol?I:throwError(d)))}genApEdgeInfo$(e){return this.replayedEdges.size===0?(this.log("The AccessPoint starts to query edge info"),e||this.context.sendReport("ApRequest",{sid:this.context.sid,userId:this.context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this.context.startTime),apAddr:"",opId:Long$1.fromNumber(0),envId:0,flag:128,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),rtmapflag:Long$1.fromNumber(0)}),timer(0,RETRY_DELAY_MS).pipe(take(1),mergeMap(()=>this.getApUrl$()),mergeMap(o=>this.context.rtmConfig.cloudProxy||this.context.socketUseProxy?this.fetchCloudProxy(getApUrl(o)):(this.updateApDomainList(o),this.apDomainList.length===0&&this.resetApDomainList(),this.fetchAp(getApUrl(o)))),catchError(o=>(o instanceof TimeoutError&&this.warn("AP request timeout"),throwError(o))),distinct(o=>{let{ip:d}=o;return d}),takeUntil(this.apFinish$))):of(...this.replayedEdges.values())}updateApDomainList(e){for(let o=this.apDomainList.length-1;o>=0;o--)if(this.apDomainList[o]===e){this.apDomainList.splice(o,1);break}}resetApDomainList(){this.apDomainList=[];const e=getParameter("AP_DOMAIN_LIST");e!=null&&e.length&&this.apDomainList.push(...e),areaConfig?(this.apDomainList.push(...shuffle$1(areaConfig.AP_DOMAINS)),this.apDomainList.push(...shuffle$1(areaConfig.AP_BACKUP_DOMAINS))):(this.apDomainList.push(...this.generateShuffledUrls(AP_DOMAINS_IO,AP_DOMAINS_NEW)),this.apDomainList.push(...this.generateShuffledUrls(AP_BACKUP_DOMAINS_IO,AP_BACKUP_DOMAINS_NEW)))}isEdgeRunOut(){return this.replayedEdges.size===0}banIp(e){this.warn("edge %s lost",e),this.replayedEdges.delete(e),this.isEdgeRunOut()&&this.warn("run out of edge")}clearEdges4RenewToken(){this.lastEdges.clear(),this.replayedEdges.forEach((e,o)=>{this.lastEdges.set(o,_objectSpread2({},e))}),this.replayedEdges.clear()}recoverEdges4RenewToken(){this.replayedEdges.clear(),this.lastEdges.forEach((e,o)=>{this.replayedEdges.set(o,_objectSpread2({},e))}),this.lastEdges.clear()}clearUp(){this.failedAreas.clear()}}_defineProperty$1(AccessPoint,"runOutOfUrlSymbol",Symbol("AP urls are used up"));const ConnectionError=genError();class Connection extends EventBase{get firstEnv(){return this._firstEnv}constructor(e,o){var d;super(o,"Connection"),_defineProperty$1(this,"apClient",void 0),_defineProperty$1(this,"startApRequest$",new Subject),_defineProperty$1(this,"endLogin$",new Subject),_defineProperty$1(this,"lastOpenSockets",[new ReplaySubject(1),new ReplaySubject(1)]),_defineProperty$1(this,"EDGE_ENV_PORT",(d=getParameter("EDGE_ENV_PORT"))!==null&&d!==void 0?d:EDGE_ENV_PORT),_defineProperty$1(this,"curOpenSockets",[void 0,void 0]),_defineProperty$1(this,"ipIterator",0),_defineProperty$1(this,"loginSocketOpenFailureCount",0),_defineProperty$1(this,"_firstEnv",Math.random()>=.5?1:0),_defineProperty$1(this,"firstOpenKeeperSubject",new Subject),_defineProperty$1(this,"secondOpenKeeperSubject",new Subject),_defineProperty$1(this,"blacklistedIP",{}),_defineProperty$1(this,"openKeeperSubs",[void 0,void 0]),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"logger",void 0),_defineProperty$1(this,"_cloudProxyServers",[]),_defineProperty$1(this,"_proxyIdx",0),_defineProperty$1(this,"edgeIdx",0),this.context=e,this.logger=o,this.apClient=new AccessPoint(this.context,o,this._cloudProxyServers),this.apClient.apFinish$.subscribe(()=>{this.log("Ap client fetch finished")})}genProxyIp(){const e=this._proxyIdx,o=this._cloudProxyServers;return this._proxyIdx=o.length>0?(e+1)%o.length:0,o[e]}getEdgeDomain(){try{var e;const o=(e=getParameter("EDGE_DOMAIN_TLD_LIST"))!==null&&e!==void 0?e:[];this.edgeIdx>=o.length&&(this.edgeIdx=0);const d=o[this.edgeIdx];return this.edgeIdx++,d}catch(o){return console.error(o),""}}makeSocket(e,o,d){const{ip:I,ticket:f}=e;this.emit("syncTicketUpdated",{ticket:atob(f)});const S=this.getEdgeDomain(),v=new Socket(I,o,f,this.context,this.logger,this._cloudProxyServers,this.genProxyIp.bind(this),d,S);return v.once("socketFailure",()=>this.onSocketFailure(v)),v}createFirstSocketOpener(){let e=!1;return this.startApRequest$.pipe(tap(()=>{this.log("start request ap by genApEdgeInfo$")}),switchMap(()=>this.apClient.genApEdgeInfo$().pipe(retryWhen(o=>o.pipe(tap(d=>{if(isRtmError(d))throw d}),delay(2e3),takeUntil(this.apClient.apFinish$))),filter(o=>{var d;return((d=this.blacklistedIP[o.ip])!==null&&d!==void 0?d:0)<=1}),tap(o=>{this.log("An edge info got %o",o)}),tap({error:o=>{this.logError("get edge info error %o",o),this.emit("connectionInitFailure",o)}}),finalize(()=>{this.apClient.clearUp()}))),takeUntil(this.endLogin$)).pipe(mergeMap(o=>{if(o===void 0)return throwError(new Error("create first socket occurs Invalid edge info"));this.log("create first socket ip: %s, env: %s",maskIp(o.ip),this._firstEnv);const d=this.makeSocket(o,this._firstEnv,e);if(this._firstEnv=this._firstEnv===1?0:1,getParameter("ENABLE_EDGE_AUTO_FALLBACK")&&!this.context.rtmConfig.cloudProxy){const I=Date.now();let f;d.on("reconnect",()=>{this.loginSocketOpenFailureCount+=1,f!=null||(f=Date.now()-I),f<500&&this.loginSocketOpenFailureCount>1&&this.context.rtmConfig.privateConfig===void 0&&this.context.socketUseProxy===!0?this.context.socketUseProxy=!1:f<500&&this.loginSocketOpenFailureCount>1&&this.context.rtmConfig.privateConfig===void 0&&(this.context.socketUseProxy=!0)})}return e=!d.useNewDomain,d.open$.pipe(mapTo(d))}),takeUntil(this.apClient.apFinish$),take(1),tap(o=>{this.log("The websocket of first ENV_%d opened to %s:%d",o.env,maskIp(o.ip),this.EDGE_ENV_PORT[o.env]),this.curOpenSockets[o.env]=o,this.lastOpenSockets[o.env].next(o),this._firstEnv=o.env,this.openSecondSocket(o.env,o.ip,o.useNewDomain)}),share(),mergeMap(o=>o.open$.pipe(tap(()=>{this.log("The websocket of first ENV_%d re-opened to %s:%d",o.env,maskIp(o.ip),this.EDGE_ENV_PORT[o.env]),o.changeToReOpened(),this.curOpenSockets[o.env]=o,this.lastOpenSockets[o.env].next(o)}))),tap(()=>{this.log("first socket re opened")}))}onSocketFailure(e){this.apClient.banIp(e.ip),e.close();const o=[0,1].filter(I=>I!==e.env)[0],d=this.curOpenSockets[o];this.log("ENV_".concat(e.env,"(").concat(e.name,"): socketFailure received, otherSocketState: ").concat(d==null?void 0:d.loggedIn)),d&&d.loggedIn?this.reopenSocketWithApRequest(e.env):(d&&this.closeSocket(d.env),this.log("ENV_".concat(e.env,"(").concat(e.name,"): will emit connectionFailure")),this.emit("connectionFailure"))}openSecondSocket(e,o,d){const I=e===1?0:1,f=this.apClient.genApEdgeInfo$().pipe(reduce((v,L)=>[...v,L],[]),map$1(v=>sortBy$1(v,L=>{let{ip:x}=L;return calIpDistance(o,x)}).slice(-1)[0]),mergeMap(v=>{if(v===void 0)return throwError(new Error("create second socket occurs Invalid edge info"));this.log("create second socket. ip: %s, env: %s",maskIp(v.ip),I);const L=this.makeSocket(v,I,d);return L.open$.pipe(tap(()=>{this.lastOpenSockets[I].next(L),this.curOpenSockets[I]=L}),mergeMap((x,F)=>(this.log("The websocket of second ENV_%d %s to %s:%d",L.env,F>0?"re-opened":"opened",maskIp(L.ip),this.EDGE_ENV_PORT[L.env]),EMPTY)))}),share()),S=this.secondOpenKeeperSubject.pipe(switchAll());this.openKeeperSubs[I]=S.subscribe({error:this.logError}),this.secondOpenKeeperSubject.next(f)}reopenSocketWithApRequest(e){const o=[0,1].filter(v=>v!==e)[0],d=this.curOpenSockets[o];if(d===void 0)return;const I=d.ip;let f;const S=(v=>v.pipe(throwIfEmpty(()=>new ConnectionError({AP_NO_AVAILABLE_EDGE:"No available edge address to connect"})),retryWhen(L=>L.pipe(tap(x=>{if(x.code!==RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED)if(x.code!==RTMErrorCode.RTM_ERROR_LOGIN_NOT_AUTHORIZED){if(isRtmError(x))throw x}else this.apClient.apFinish$.next(void 0);else this.apClient.apFinish$.next(void 0)}),delay(getParameter("RECONNECTING_AP_INTERVAL")))),tap(L=>{this.log("An edge info got %o",L)}),finalize(()=>{this.apClient.clearUp()})))(this.apClient.genApEdgeInfo$()).pipe(reduce((v,L)=>[...v,L],[]),map$1(v=>{const L=sortBy$1(v,x=>{let{ip:F}=x;return calIpDistance(I,F)});return L.length-1>=this.ipIterator?L.slice(-this.ipIterator++-1)[0]:(this.ipIterator=0,L.slice(-1)[0])}),throwIfEmpty(),mergeMap(v=>{if(v===void 0)return throwError(new Error("reopen socket with ap request occurs Invalid edge info"));const L=this.makeSocket(v,e,f);return f=!L.useNewDomain,L.open$.pipe(mapTo(L))}),take(1),tap(v=>{this.log("The websocket of ENV_%d opened to %s:%d using ap",v.env,maskIp(v.ip),this.EDGE_ENV_PORT[v.env]),this.curOpenSockets[v.env]=v,this.lastOpenSockets[v.env].next(v)}),mergeMap(v=>v.open$.pipe(tap(()=>{this.log("The websocket of ENV_%d re-opened to %s:%d using ap",v.env,maskIp(v.ip),this.EDGE_ENV_PORT[v.env]),v.changeToReOpened(),this.curOpenSockets[e]=v,this.lastOpenSockets[e].next(v)}))),share());e===this._firstEnv?(this.firstOpenKeeperSubject.next(S),this.log("reopenSocketWithAp, and start openSocket$, firstOpenKeeperSubject emit next")):this.secondOpenKeeperSubject.next(S)}initConnection(){this.openKeeperSubs.forEach(d=>{d==null||d.unsubscribe()}),this.log("initConnection, and start firstSocketOpener, firstOpenKeeperSubject emit next");const e=this.createFirstSocketOpener(),o=this.firstOpenKeeperSubject.pipe(switchAll());this.openKeeperSubs[this._firstEnv]=o.subscribe(),this.firstOpenKeeperSubject.next(e),this.startApRequest$.next(void 0)}closeSocket(e){if(![0,1].includes(e))throw new CommonError({INVALID_ENV:"The env argument is not 0 or 1"});const o=this.openKeeperSubs[e];o==null||o.unsubscribe(),this.openKeeperSubs[e]=void 0;const d=this.curOpenSockets[e];d==null||d.close(),this.curOpenSockets[e]=void 0}waitClosing(e){const o=e.isActiveClose;return e.isActiveClose=!0,o===!0?EMPTY:e.open$.pipe(ignoreElements(),catchError(d=>d.message===normalClosureMessage?EMPTY:throwError(d)),timeout(LOGOUT_SOCKET_CLOSE_TIMEOUT),catchError(d=>d instanceof TimeoutError?(this.warn("Force closing the ENV_%d connection",e.env),EMPTY):throwError(d)))}stopLogin(){this.endLogin$.next()}banIP(e){var o;this.log("ip banned",e);const d=(o=this.blacklistedIP[e])!==null&&o!==void 0?o:0;this.blacklistedIP[e]=d+1,d>0&&this.apClient.banIp(e)}}let AckCodeType=function(n){return n[n.kAckMiss=1]="kAckMiss",n[n.kAckPeerOffline=8]="kAckPeerOffline",n[n.kAckNoPrivilege=9]="kAckNoPrivilege",n}({}),RegServerErrorCode=function(n){return n[n.kOk=0]="kOk",n[n.kFail=1]="kFail",n[n.kTimestampExpired=2]="kTimestampExpired",n[n.kChannelPermissionInvalid=3]="kChannelPermissionInvalid",n[n.kCertificateInvalid=4]="kCertificateInvalid",n[n.kChannelNameEmpty=5]="kChannelNameEmpty",n[n.kChannelNotFound=6]="kChannelNotFound",n[n.kTicketInvalid=7]="kTicketInvalid",n[n.kChannelConflicted=8]="kChannelConflicted",n[n.kServiceNotReady=9]="kServiceNotReady",n[n.kServiceTooHeavy=10]="kServiceTooHeavy",n[n.kRejoined=11]="kRejoined",n[n.kNoNeedToChange=13]="kNoNeedToChange",n[n.kUidBanned=14]="kUidBanned",n[n.kIpBanned=15]="kIpBanned",n[n.kChannelBanned=16]="kChannelBanned",n[n.kTicketParseError=17]="kTicketParseError",n[n.kTicketIllegalLength=18]="kTicketIllegalLength",n[n.kTicketNotAuth=19]="kTicketNotAuth",n[n.kTicketUnknownVersion=20]="kTicketUnknownVersion",n[n.kLoginedFromRemote=21]="kLoginedFromRemote",n[n.kGwychFailed=23]="kGwychFailed",n[n.kTooManyBroadcasters=24]="kTooManyBroadcasters",n[n.kServerDown=25]="kServerDown",n[n.kResourceHeldByOther=26]="kResourceHeldByOther",n[n.kRtm2GwychFailed=27]="kRtm2GwychFailed",n[n.kAutoRebalance=28]="kAutoRebalance",n[n.kBannedForExceedingQuota=101]="kBannedForExceedingQuota",n[n.kRequestPending=65535]="kRequestPending",n[n.kVoid=1e4]="kVoid",n[n.kConnectionTimeout=10001]="kConnectionTimeout",n[n.kInvalidPacket=10002]="kInvalidPacket",n[n.kAlreadyJoined=10003]="kAlreadyJoined",n[n.kJoinTimeout=10004]="kJoinTimeout",n[n.kRejoinFailed=10005]="kRejoinFailed",n[n.kJoinTooFrequently=10006]="kJoinTooFrequently",n[n.kCompressionMethodUnrecognized=10007]="kCompressionMethodUnrecognized",n[n.kUserNotFound=10008]="kUserNotFound",n[n.kUserInstanceConflict=10009]="kUserInstanceConflict",n[n.kContentOversized=10010]="kContentOversized",n[n.kRequestTooFrequently=10011]="kRequestTooFrequently",n[n.kDamagedPacket=10012]="kDamagedPacket",n[n.kInvalidRequestParameters=10013]="kInvalidRequestParameters",n[n.kServerInternalError=10014]="kServerInternalError",n[n.kContentNotFound=10015]="kContentNotFound",n[n.kIncompatible=10016]="kIncompatible",n[n.kEdgeInDegradation=10017]="kEdgeInDegradation",n[n.kUserBannedByRule=10018]="kUserBannedByRule",n[n.kUserBannedByAuth=10019]="kUserBannedByAuth",n[n.kGroupUserBannedByAuth=10020]="kGroupUserBannedByAuth",n[n.kConsoleConfigNotFound=10021]="kConsoleConfigNotFound",n[n.kUserRejectedByConsoleConfig=10022]="kUserRejectedByConsoleConfig",n[n.kGroupUserNoPrivilege=10025]="kGroupUserNoPrivilege",n[n.kTest1=11001]="kTest1",n[n.kTest2=11002]="kTest2",n[n.kTest3=11003]="kTest3",n}({}),SyncServerErrorCode=function(n){return n[n.kMetadataOk=0]="kMetadataOk",n[n.kDuplicatedOperation=1]="kDuplicatedOperation",n[n.kSyncServerError=2]="kSyncServerError",n[n.kArgumentError=3]="kArgumentError",n[n.kAutheticationError=4]="kAutheticationError",n[n.kExceedLimitationError=5]="kExceedLimitationError",n[n.kOutdateRevision=6]="kOutdateRevision",n[n.kLockAcquireFailed=7]="kLockAcquireFailed",n[n.kLockExpired=8]="kLockExpired",n[n.kLockWatching=9]="kLockWatching",n[n.kInvalidLock=10]="kInvalidLock",n[n.kLockReleased=11]="kLockReleased",n[n.kWriteNotAllowed=12]="kWriteNotAllowed",n[n.kNoLock=13]="kNoLock",n[n.kNoPrivilege=14]="kNoPrivilege",n[n.kTimeOutError=100]="kTimeOutError",n[n.kUnknownError=255]="kUnknownError",n}({});function convertMetadataServerCodeToSdkCode(n){switch(n){case SyncServerErrorCode.kMetadataOk:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_OK);case SyncServerErrorCode.kArgumentError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_ARGUMENT);case SyncServerErrorCode.kOutdateRevision:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OUTDATED_REVISION);case SyncServerErrorCode.kTimeOutError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);case SyncServerErrorCode.kNoPrivilege:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_PERMISSION_DENIED);default:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_FAILED)}}function convertServerCodeToSdkCodeForSub(n){switch(n){case SyncServerErrorCode.kMetadataOk:case SyncServerErrorCode.kDuplicatedOperation:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_OK);case SyncServerErrorCode.kArgumentError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_ARGUMENT);case SyncServerErrorCode.kTimeOutError:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);case SyncServerErrorCode.kNoPrivilege:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED);default:return getErrorInfoByCode(n)}}function convertLockServerCodeToSdkCode(n){switch(n){case SyncServerErrorCode.kMetadataOk:case SyncServerErrorCode.kDuplicatedOperation:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_OK);case SyncServerErrorCode.kOutdateRevision:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_ALREADY_EXIST);case SyncServerErrorCode.kLockAcquireFailed:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_ACQUIRE_FAILED);case SyncServerErrorCode.kNoLock:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_EXIST);case SyncServerErrorCode.kNoPrivilege:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_PERMISSION_DENIED);default:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_FAILED)}}function convertDataChannelJoinCodeToSdkCode(n,e){switch(n){case AgoraRTCErrorCode.NOT_SUPPORTED:case AgoraRTCErrorCode.UNEXPECTED_RESPONSE:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_AVAILABLE);case AgoraRTCErrorCode.INIT_DATACHANNEL_TIMEOUT:case AgoraRTCErrorCode.CREATE_DATACHANNEL_ERROR:case AgoraRTCErrorCode.DATACHANNEL_FAILED:case AgoraRTCErrorCode.DATACHANNEL_CONNECTION_TIMEOUT:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_TOPIC_FAILED);case AgoraRTCErrorCode.CAN_NOT_GET_GATEWAY_SERVER:case AgoraRTCErrorCode.VOID_GATEWAY_ADDRESS:case AgoraRTCErrorCode.MULTI_UNILBS_RESPONSE_ERROR:case AgoraRTCErrorCode.UID_CONFLICT:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED);case AgoraRTCErrorCode.TOKEN_EXPIRE:return getErrorInfoByCode(RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED);case AgoraRTCErrorCode.TIMEOUT:case AgoraRTCErrorCode.UNEXPECTED_ERROR:case AgoraRTCErrorCode.INVALID_PARAMS:case AgoraRTCErrorCode.NOT_READABLE:case AgoraRTCErrorCode.INVALID_OPERATION:case AgoraRTCErrorCode.OPERATION_ABORTED:case AgoraRTCErrorCode.WEB_SECURITY_RESTRICT:case AgoraRTCErrorCode.EXCHANGE_SDP_FAILED:case AgoraRTCErrorCode.NETWORK_ERROR:case AgoraRTCErrorCode.NETWORK_TIMEOUT:case AgoraRTCErrorCode.NETWORK_RESPONSE_ERROR:case AgoraRTCErrorCode.API_INVOKE_TIMEOUT:case AgoraRTCErrorCode.ENUMERATE_DEVICES_FAILED:case AgoraRTCErrorCode.DEVICE_NOT_FOUND:case AgoraRTCErrorCode.ELECTRON_IS_NULL:case AgoraRTCErrorCode.ELECTRON_DESKTOP_CAPTURER_GET_SOURCES_ERROR:case AgoraRTCErrorCode.CHROME_PLUGIN_NO_RESPONSE:case AgoraRTCErrorCode.CHROME_PLUGIN_NOT_INSTALL:case AgoraRTCErrorCode.MEDIA_OPTION_INVALID:case AgoraRTCErrorCode.PERMISSION_DENIED:case AgoraRTCErrorCode.CONSTRAINT_NOT_SATISFIED:case AgoraRTCErrorCode.TRACK_IS_DISABLED:case AgoraRTCErrorCode.GET_VIDEO_ELEMENT_VISIBLE_ERROR:case AgoraRTCErrorCode.SHARE_AUDIO_NOT_ALLOWED:case AgoraRTCErrorCode.LOW_STREAM_ENCODING_ERROR:case AgoraRTCErrorCode.SET_ENCODING_PARAMETER_ERROR:case AgoraRTCErrorCode.TRACK_STATE_UNREACHABLE:case AgoraRTCErrorCode.INVALID_UINT_UID_FROM_STRING_UID:case AgoraRTCErrorCode.CAN_NOT_GET_PROXY_SERVER:case AgoraRTCErrorCode.UPDATE_TICKET_FAILED:case AgoraRTCErrorCode.INVALID_LOCAL_TRACK:case AgoraRTCErrorCode.INVALID_TRACK:case AgoraRTCErrorCode.SENDER_NOT_FOUND:case AgoraRTCErrorCode.CREATE_OFFER_FAILED:case AgoraRTCErrorCode.SET_ANSWER_FAILED:case AgoraRTCErrorCode.ICE_FAILED:case AgoraRTCErrorCode.PC_CLOSED:case AgoraRTCErrorCode.SENDER_REPLACE_FAILED:case AgoraRTCErrorCode.GET_LOCAL_CAPABILITIES_FAILED:case AgoraRTCErrorCode.GET_LOCAL_CONNECTION_PARAMS_FAILED:case AgoraRTCErrorCode.SUBSCRIBE_FAILED:case AgoraRTCErrorCode.UNSUBSCRIBE_FAILED:case AgoraRTCErrorCode.GATEWAY_P2P_LOST:case AgoraRTCErrorCode.NO_ICE_CANDIDATE:case AgoraRTCErrorCode.CAN_NOT_PUBLISH_MULTIPLE_VIDEO_TRACKS:case AgoraRTCErrorCode.EXIST_DISABLED_VIDEO_TRACK:case AgoraRTCErrorCode.INVALID_REMOTE_USER:case AgoraRTCErrorCode.REMOTE_USER_IS_NOT_PUBLISHED:case AgoraRTCErrorCode.CUSTOM_REPORT_SEND_FAILED:case AgoraRTCErrorCode.CUSTOM_REPORT_FREQUENCY_TOO_HIGH:case AgoraRTCErrorCode.FETCH_AUDIO_FILE_FAILED:case AgoraRTCErrorCode.READ_LOCAL_AUDIO_FILE_ERROR:case AgoraRTCErrorCode.DECODE_AUDIO_FILE_FAILED:case AgoraRTCErrorCode.WS_ABORT:case AgoraRTCErrorCode.WS_DISCONNECT:case AgoraRTCErrorCode.WS_ERR:case AgoraRTCErrorCode.LIVE_STREAMING_TASK_CONFLICT:case AgoraRTCErrorCode.LIVE_STREAMING_INVALID_ARGUMENT:case AgoraRTCErrorCode.LIVE_STREAMING_INTERNAL_SERVER_ERROR:case AgoraRTCErrorCode.LIVE_STREAMING_PUBLISH_STREAM_NOT_AUTHORIZED:case AgoraRTCErrorCode.LIVE_STREAMING_TRANSCODING_NOT_SUPPORTED:case AgoraRTCErrorCode.LIVE_STREAMING_CDN_ERROR:case AgoraRTCErrorCode.LIVE_STREAMING_INVALID_RAW_STREAM:case AgoraRTCErrorCode.LIVE_STREAMING_WARN_STREAM_NUM_REACH_LIMIT:case AgoraRTCErrorCode.LIVE_STREAMING_WARN_FAILED_LOAD_IMAGE:case AgoraRTCErrorCode.LIVE_STREAMING_WARN_FREQUENT_REQUEST:case AgoraRTCErrorCode.WEBGL_INTERNAL_ERROR:case AgoraRTCErrorCode.BEAUTY_PROCESSOR_INTERNAL_ERROR:case AgoraRTCErrorCode.CROSS_CHANNEL_WAIT_STATUS_ERROR:case AgoraRTCErrorCode.CROSS_CHANNEL_FAILED_JOIN_SRC:case AgoraRTCErrorCode.CROSS_CHANNEL_FAILED_JOIN_DEST:case AgoraRTCErrorCode.CROSS_CHANNEL_FAILED_PACKET_SENT_TO_DEST:case AgoraRTCErrorCode.CROSS_CHANNEL_SERVER_ERROR_RESPONSE:case AgoraRTCErrorCode.METADATA_OUT_OF_RANGE:case AgoraRTCErrorCode.LOCAL_AEC_ERROR:case AgoraRTCErrorCode.INVALID_PLUGIN:case AgoraRTCErrorCode.DISCONNECT_P2P:case AgoraRTCErrorCode.CONVERTING_IMAGEDATA_TO_BLOB_FAILED:case AgoraRTCErrorCode.CONVERTING_VIDEO_FRAME_TO_BLOB_FAILED:case AgoraRTCErrorCode.ADD_CANDIDATE_FAILED:case AgoraRTCErrorCode.EXTERNAL_SIGNAL_ABORT:case AgoraRTCErrorCode.IMAGE_MODERATION_UPLOAD_FAILED:case AgoraRTCErrorCode.P2P_MESSAGE_FAILED:case AgoraRTCErrorCode.PROHIBITED_OPERATION:default:{var o;const d=getErrorInfoByCode(e);return{code:d.code,reason:(o=d.reason)!==null&&o!==void 0?o:""}}}}function comparator(n,e){return Long$1.fromValue(n).eq(e)}function validateField(n,e){const o=e===void 0?n.val:e,{isBoolean:d,isNumber:I,oneof:f,len:S}=n;if([d,I,f].filter(F=>!F).length!==2)throw new TypeError("invalid field type");if(o===void 0)return;let v=!1;if(f!==void 0){const F=values$3(f);uniqWith$1(F,comparator).length===F.length&&find$1(F,Y=>comparator(o,Y))!==void 0&&(v=!0)}const L=d!==void 0&&(o===0||o===1)&&S===1,x=I!==void 0&&o.toString(2).length<=S;if(!(v||L||x))throw new Error("invalid field value")}class Struct{constructor(){_defineProperty$1(this,"size",0),_defineProperty$1(this,"fields",new Map)}define(e,o,d){if(this.size+=d,this.size>64)throw new RangeError("the struct over 64 bits is not supported");const I={val:0,isNumber:o==="number",isBoolean:o==="boolean",oneof:o==="number"||o==="boolean"?void 0:o,len:d};validateField(I),this.fields.set(e,I)}set(e,o){const d=this.fields.get(e);if(!d)throw new Error("field not found");const{oneof:I}=d;let f;if(Long$1.isLong(o)||typeof o=="number")f=o;else if(typeof o=="boolean")f=o?1:0;else{if(I===void 0)throw new Error("invalid field type");const S=I[o];if(S===void 0)throw new Error("field type not found");f=S}validateField(d,f),d.val=f}toNumber(){let e=0,o=0;for(let d=0,I=Array.from(this.fields);dtypeof S=="string")&&I!==void 0)return o.some(S=>f(S));throw new Error("invalid valueTypes")}from(e){const o=Long$1.fromValue(e);let d=0;for(let I=0,f=Array.from(this.fields);I2&&arguments[2]!==void 0?arguments[2]:0;return hackSetInterval(e.flush.bind(e,this),d)}recycleAsyncId(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(d!==null&&this.delay===d&&this.pending===!1)return o;hackClearInterval(o)}}const getHackAsyncScheduler=()=>new AsyncScheduler_2(HackAsyncAction);class ConnectionController extends EventBase{set connSyncEnv(e){this._connSyncEnv=e}get connSyncEnv(){return this._connSyncEnv}get syncEstablishState(){return this._syncEstablishState}set syncEstablishState(e){this._syncEstablishState=e}constructor(e,o,d,I,f){super(d,"ConnControl"),_defineProperty$1(this,"userJoinOptions",new UserJoinOptions(!1)),_defineProperty$1(this,"loggedOut",!1),_defineProperty$1(this,"curLoginSockets",[void 0,void 0]),_defineProperty$1(this,"loginSocketSubs",[{receivers:[]},{receivers:[]}]),_defineProperty$1(this,"loginObservableController$",new Subject),_defineProperty$1(this,"lastLoginSockets",void 0),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"connection",void 0),_defineProperty$1(this,"instanceId",void 0),_defineProperty$1(this,"lastPingTime",void 0),_defineProperty$1(this,"manualShakeHand",void 0),_defineProperty$1(this,"requestConnectDatabase",void 0),_defineProperty$1(this,"loginSubject$",new Subject),_defineProperty$1(this,"canEmitUserJoined",!1),_defineProperty$1(this,"networkOnlineSubject",new Subject),_defineProperty$1(this,"loginInDisConnectedSubject$",new Subject),_defineProperty$1(this,"cancelLogin$",void 0),_defineProperty$1(this,"syncInitTimer",null),_defineProperty$1(this,"shakeHandTimer",null),_defineProperty$1(this,"tokenPrivilegeSubscription",null),_defineProperty$1(this,"linkIntervals",[...LINK_INTERVALS]),_defineProperty$1(this,"_connSyncEnv",void 0),_defineProperty$1(this,"_syncEstablishState",SyncEstablishState.DISCONNECTED),_defineProperty$1(this,"_lastPingSequences",[Long$1.ZERO,Long$1.ZERO]),_defineProperty$1(this,"registerConnectionFailureListener",()=>{const S=()=>{this.log("registrar: connectionFailure, start reLogin..."),this.context.internalEmitter.emit("login-request"),this.loginHandler(!0).subscribe({next:()=>{this.log("reLogin connected successfully")},error:v=>{this.logError("reLogin failed with error: %o",v)}})};this.connection.once("connectionFailure",()=>{this.context.internalEmitter.emit("login-timeout",!0),S()})}),this.context=e,this.context.startTime=Date.now(),this.connection=new Connection(e,d),this.instanceId=o,this.lastPingTime=[0,0],this.setMaxListeners(512),this.log("The instanceId is %s",this.instanceId.toString()),this.connection.on("syncTicketUpdated",S=>{let{ticket:v}=S;this.emit("syncTicketUpdated",{ticket:v})}),this.manualShakeHand=I,this.requestConnectDatabase=f,this.cancelLogin$=fromEvent(this,"cancel-login").pipe(tap(()=>{const S=OperationName.login,{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_CANCELED);throw new RtmUnavailableError(S,[L],v)}),share())}release(){this.removeAllListeners(),this.cancelSyncTimer()}getOtherEnvTicket(e){var o;return(o=this.curLoginSockets.filter(d=>d&&d.loggedIn).find(d=>(d==null?void 0:d.env)===e))===null||o===void 0?void 0:o.ticket}async connSyncDB(e){if(!this.context.disablePresence){this._syncEstablishState=SyncEstablishState.CONNECTING;try{await this.requestConnectDatabase(),this.context.internalEmitter.emit("connectedDatabase"),this._syncEstablishState=SyncEstablishState.CONNECTED}catch(d){var o;const I=(o=d==null?void 0:d.reason)!==null&&o!==void 0?o:"none err detail";if(this.warn("change connSyncEnv: %d to undefined because %s, %o",e,I,d),this._syncEstablishState=SyncEstablishState.DISCONNECTED,d instanceof RtmTimeoutError)throw d.message=SyncDisconnectedReason.CONNECT_SYNC_DATABASE_TIMEOUT,d;{const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT),v=new RTMBaseError(OperationName.login,["conn db failed"+(d instanceof Error?d.message:"")+S],f);throw v.message=SyncDisconnectedReason.CONNECT_SYNC_DATABASE_ERROR,v}}}}resetLinkIntervals(){this.linkIntervals=[...LINK_INTERVALS]}getVirtualSyncSocket(){return this.getLoginSockets().filter(e=>e.env===this.connSyncEnv)}handleFailed(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"login failed",o=arguments.length>1?arguments[1]:void 0;this.emit("syncDisconnected",e),this.updateLoggedOut(!0),this.context.internalEmitter.emit("userDrop",o),this.clearSockets()}loginHandler(){let e=arguments.length>0&&arguments[0]!==void 0&&arguments[0];if(this.context.socketUseProxy=!1,this.connSyncEnv=void 0,this.loggedOut&&e){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_ABORTED);throw new RtmInvalidStatusError(OperationName.login,[S+"logout when login retrying"],f)}this.connection.initConnection();const{seq:o}=this.context,d=this.getSocketLoginObservables(this.connection.lastOpenSockets,o,e);let I;return this.lastLoginSockets=d,this.initKeepAliveSender(),this.initLoginReceiver(),this.linkIntervals=[...LINK_INTERVALS],this.log("start login..."),merge(...d,fromEvent(this.connection,"connectionInitFailure").pipe(tap(f=>{throw e&&this.handleFailed(),f})),this.cancelLogin$,this.networkOnlineSubject.pipe(tap(()=>{this.log("network change, will retry connect in 2s");const f=new TimeoutError;throw f.name="network-change",this.linkIntervals=[...LINK_INTERVALS],f}))).pipe(timeout(LOGIN_RESP_TIMEOUT),take(1),tap(async f=>(this.connSyncInLogin(f,e),f)),catchError(f=>(f instanceof TimeoutError&&(f&&f.name==="network-change"?this.context.internalEmitter.emit("net-change-abort-reconn"):(this.warn("client ".concat(e?"re-":"","login timeout")),this.context.internalEmitter.emit("login-timeout",e))),f&&f.code===RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED&&(this.warn("token expired when login, isRetrying: %s",e),e&&this.context.internalEmitter.emit("tokenExpired"),this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin()),this.clearSockets(),throwError(f))),retryWhen(f=>f.pipe(switchMap(S=>{if(this.connection.apClient.apFinish$.next(void 0),I=this.getFallBackTimer(),S instanceof TimeoutError)return merge(this.cancelLogin$,race(interval(I),this.networkOnlineSubject.pipe(tap(()=>{this.log("network is online, will retry connect now")})),this.loginInDisConnectedSubject$.pipe(tap(()=>{this.linkIntervals=[...LINK_INTERVALS],this.log("custom call login, will retry right now")}))).pipe(take(1),takeUntil(this.connection.apClient.apFinish$),tap(()=>{this.context.internalEmitter.emit("login-request"),this.initKeepAliveSender(),this.initLoginReceiver(),this.connection.initConnection(),this.log("retryWhen---interval")})));throw S}),catchError(S=>throwError(S)))),optionalTimeout(this.context.connectionTimeoutSeconds),catchError(f=>f instanceof TimeoutError&&this.context.connectionTimeoutSeconds>0?(this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin(),this.clearSockets(),throwError(new RtmTimeoutError(OperationName.login,[LinkStateChangeReasonDescription.LOGIN_TIMEOUT],RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT))):throwError(f)),takeUntil(this.loginSubject$),tap(()=>{this.registerConnectionFailureListener(),this.manualShakeHand()}),finalize(()=>{e||this.connection.apClient.apFinish$.next(void 0),this.loginSubject$.next(void 0),this.connection.endLogin$.next(void 0)}))}getFallBackTimer(){return 1e3*(this.linkIntervals.length>=1?this.linkIntervals.splice(0,1)[0]:SUSPENDED_TIME_INTERVAL)}async connSyncInLogin(e,o){if(this.context.disablePresence)return;const d=this.syncEstablishState===SyncEstablishState.DISCONNECTED;if(this.info("ENV_%d(%s): First reg logged response received, need connect sync: %s, connSyncEnv: %d, isRetrying: %s, syncConnecting: %s",e.env,e.name,d,this.connSyncEnv,o),d)try{await this.establishSync(e,!0)}catch(f){var I;getParameter("DECOUPLE_SYNC")&&this.handleSyncDisconnected(e,(I=f==null?void 0:f.message)!==null&&I!==void 0?I:"")}}async logoutHandler(e){this.updateLoggedOut(!0),this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin();const o=this.getLoginSockets(),d=o.map(f=>(f.sendPacket("UserQuit2",{flags:e?new Long$1(1,0,!0):Long$1.fromNumber(0)}),this.connection.waitClosing(f)));setTimeout(()=>this.clearSockets(),LOGOUT_SOCKET_CLOSE_TIMEOUT);const I=o.map(f=>f.env);return[0,1].filter(f=>!I.includes(f)).forEach(f=>{this.connection.closeSocket(f)}),merge(...d).toPromise()}cancelSyncTimer(){this.syncInitTimer&&(clearTimeout(this.syncInitTimer),this.syncInitTimer=null)}cleanLoginSubs(e){var o,d;const I=this.loginSocketSubs[e];(o=I.keepAlive)===null||o===void 0||o.unsubscribe(),(d=I.pingTimer)===null||d===void 0||d.unsubscribe(),I.receivers.forEach(f=>f.unsubscribe()),this.loginSocketSubs[e]={receivers:[]}}initKeepAliveSender(){this.lastLoginSockets.map(e=>e.pipe(switchMap(o=>{this.log("initKeepAliveSender===============",o.env,o.name);const d=this.loginSocketSubs[o.env].pingTimer;return d&&(this.log("Env_%s(%s): new socket arrived, cancel old pingTimer",o.env,o.name),d.unsubscribe(),this.loginSocketSubs[o.env].pingTimer=void 0),this.lastPingTime[o.env]=0,o.loggedIn&&(this.log("Env_%s(%s): start keep alive sender for new socket",o.env,o.name),this.startPingTimer(o,!0)),EMPTY}))).forEach((e,o)=>{const{keepAlive:d}=this.loginSocketSubs[o];d!==void 0&&d.unsubscribe(),this.loginSocketSubs[o].keepAlive=e.subscribe({error:()=>{}})})}startPingTimer(e){let o=arguments.length>1&&arguments[1]!==void 0&&arguments[1];const d=of(e).pipe(delay(o?0:this.context.heartbeatInterval,isMobile$1()?void 0:getHackAsyncScheduler()),tap(()=>{!e.isActiveClose&&this.sendPing(e),d.unsubscribe()})).subscribe();this.loginSocketSubs[e.env].pingTimer=d}initLoginReceiver(){var e;(e=this.tokenPrivilegeSubscription)===null||e===void 0||e.unsubscribe();const o=race(...this.lastLoginSockets.map(d=>d.pipe(switchMap(I=>I.fromReceived("UserTicketNearlyExpire2").pipe(throttleTime(3e4),tap(f=>{if(f.ticket===I.ticket)try{const S=JSON.parse(f.resources);this.context.internalEmitter.emit("UserTicketNearlyExpire",{messageChannels:S.messageChannels.map(v=>{var L;return(L=Object.keys(v)[0])!==null&&L!==void 0?L:""}).filter(v=>v!=="")})}catch(S){this.logError("parse permission revoked resources failed, error: %o",S)}}))))));this.tokenPrivilegeSubscription=o.subscribe({error:d=>{this.logError("TokenPrivilegeWillExpireReceivers error: %o",d)}}),this.lastLoginSockets.map(d=>d.pipe(switchMap(I=>(this.log("initLoginReceivers=====================",I.env,I.name),merge(I.fromReceived("StateLockUpdate").pipe(tap(f=>{this.context.internalEmitter.emit("StateLockUpdate",f)})),I.fromReceived("StateLockSubscribeEvent").pipe(tap(f=>{this.context.internalEmitter.emit("StateLockSubscribeEvent",f)})),I.fromReceived("StateUpdate").pipe(tap(f=>{this.context.internalEmitter.emit("StateUpdate",f)})),I.fromReceived("Message").pipe(tap(f=>{this.context.internalEmitter.emit("Message",Object.assign(f,{eventReportInfo:{env:I.env}}))})),I.fromReceived("GroupDrop").pipe(tap(f=>{this.context.internalEmitter.emit("GroupDrop",f)})),fromEvent(I,"reconnect").pipe(tap(this.onSocketReconnect(I))),I.fromReceived("UserDrop").pipe(tap(this.onUserDrop(I))),I.fromReceived("SyncFin").pipe(tap(this.onSyncFin(I))),I.fromReceived("GroupEnterNotice").pipe(tap(f=>{this.context.internalEmitter.emit("GroupEnterNotice",f)})),I.fromReceived("GroupLeaveNotice").pipe(tap(f=>{this.context.internalEmitter.emit("GroupLeaveNotice",f)})),I.fromReceived("GroupCountNotice").pipe(tap(this.onGroupCountNotice())),I.receivedSyncPacket.pipe(tap(this.onSyncPacket()))).pipe(mapTo(void 0)))))).forEach((d,I)=>{this.loginSocketSubs[I].receivers.forEach(f=>f.unsubscribe()),this.loginSocketSubs[I].receivers=[d.subscribe({error:f=>{this.logError("socketReceiver error: %o",f)},complete:()=>{this.log("socketReceiver complete: %o")}})]})}clearShakehandTimer(){this.shakeHandTimer&&(clearTimeout(this.shakeHandTimer),this.shakeHandTimer=null)}handleConfig(e){if(typeof e["presence.interval"]!==void 0&&isUintString(e["presence.interval"])){const o=Number(e["presence.interval"]);o>K_PRESENCE_INTERVAL_MAX?e["presence.interval"]=String(K_PRESENCE_INTERVAL_MAX):oK_INTERVAL_THRESHOLD_MAX?e["presence.occupancy"]=String(K_INTERVAL_THRESHOLD_MAX):oK_INTERVAL_THRESHOLD_MAX?e["presence.debounce"]=String(K_INTERVAL_THRESHOLD_MAX):o{this.context.internalEmitter.emit("login-request"),this.userJoinOptions=new UserJoinOptions(o),this.log("ENV_%d(%s): socket.isActiveClose: %s, isRejoin: %s",e.env,e.name,e.isActiveClose,o);const v=!e.isActiveClose;if(this.loggedOut)return this.log("close other socket, ignore this login request"),void this.connection.closeSocket(e.env);if(v){var L;const x=(L=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&L!==void 0?L:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT;if(o&&!this.canEmitUserJoined&&(this.canEmitUserJoined=!0),this.context.ticketVersionOutdated(e.env)){const F=I===0?1:0,Y=this.getOtherEnvTicket(F);Y&&(e.ticket=Y,this.context.updateTicketVersion(e.env,this.context.ticketVersionMap.get(F).version),this.log("update ticket version for env_%d(%s)",e.env,e.name))}e.sendPacket("UserJoin2",{account:this.context.uid,instance:this.instanceId,opt:this.userJoinOptions.toLong(),seq:d,ticket:e.ticket,detail:{[UserJoinDetailKey.kDetailKeyConsoleConfig]:new Uint8Array,[UserJoinDetailKey.kDetailKeyKeepAliveInterval]:new TextEncoder().encode(String(this.context.heartbeatInterval/1e3)),[UserJoinDetailKey.kDetailKeyKeepAliveBuffer]:new TextEncoder().encode(String(x/1e3))}})}}),S=e.fromReceived("UserResp2").pipe(first(v=>d.eq(v.seq)),map$1(v=>{if(this.loggedOut)return void this.log("ENV_%d(%s): other socket is closing, will close this socket, ignore this resp",e.env,e.name);if(v.code===RegServerErrorCode.kTimestampExpired&&this.context.ticketVersionOutdated(e.env))return void this.info("other env ticket is updated, ignore this error and reconnect this env");const{code:L}=v;if(L!==0){var x;let F=String(L);(x=this.curLoginSockets[e.env===0?1:0])!==null&&x!==void 0&&x.loggedIn||o?this.handleFailed():this.clearSockets();let Y=RTMErrorCode.RTM_ERROR_LOGIN_REJECTED;switch(L){case RegServerErrorCode.kCertificateInvalid:case RegServerErrorCode.kTicketParseError:case RegServerErrorCode.kTicketIllegalLength:case RegServerErrorCode.kTicketNotAuth:case RegServerErrorCode.kTicketUnknownVersion:case RegServerErrorCode.kTicketInvalid:Y=RTMErrorCode.RTM_ERROR_INVALID_TOKEN;break;case RegServerErrorCode.kTimestampExpired:this.warn("token expired when received userResp, isReJoin: %s",o),o&&this.context.internalEmitter.emit("tokenExpired"),this.connection.apClient.apFinish$.next(void 0),this.connection.stopLogin(),Y=RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED;break;case RegServerErrorCode.kUserRejectedByConsoleConfig:Y=RTMErrorCode.RTM_ERROR_LOGIN_NOT_AUTHORIZED,F="NOT_ENABLE_RTM";case RegServerErrorCode.kFail:case RegServerErrorCode.kServiceTooHeavy:}this.logError("Connected to gateway success but the Rtm server rejected login, server code is %s",F);const{code:j,reason:W}=getErrorInfoByCode(Y);throw new RtmUnavailableError(OperationName.login,[W+" userResp error, detail: ".concat(F)],j)}try{let F;const{detail:{1:Y}}=v;F=JSON.parse(new TextDecoder().decode(Y)),this.handleConfig(F);for(let W=0,re=Object.entries(this.context.consoleConfig);Wv!==void 0),tap(()=>{this.log("ENV_%d(%s): Login response received",I,e.name),this.curLoginSockets[I]=e}),concatMap(async v=>{const L=!v.isActiveClose;return o&&this.canEmitUserJoined&&L&&(this.context.internalEmitter.emit("userJoined"),this.canEmitUserJoined=!1),v}),catchError(v=>{var L;return v instanceof TimeoutError&&(L=this.curLoginSockets[e.env===0?1:0])!==null&&L!==void 0&&L.isActiveClose?(this.log("ENV_%d(%s): other socket is closing, will close this socket",e.env,e.name),EMPTY):v instanceof TimeoutError?(this.warn("ENV_%d(%s): sdk connect reg response timeout, rejoin: %s",e.env,e.name,o),e.emit("socketFailure"),EMPTY):(this.connection.banIP(e.ip),throwError(v))}))}getSocketLoginObservables(e,o,d){const I=Date.now();return this.loginObservableController$.next(void 0),e.map((f,S)=>f.pipe(switchMap((v,L)=>(this.context.incSeqIfNeeded(v.env),v.isActiveClose||this.loggedOut?EMPTY:(this.log("ENV_%d(%s): start reg login request, isRejoin: %s",v.env,v.name,L!==0),this.requestSocketLogin(v,L!==0,L===0?o:this.context.seq,S).pipe(catchError(x=>throwError(x)))))),tap(v=>{this.log("Env_%s: acquired socket %s",S,v.name);const L=Date.now();this.context.addReportEvents("Link",{ackedServerIp:v.address,destServerIp:v.ip,ec:0,sc:0,elapse:getElapse(this.context.startTime),lts:Long$1.fromNumber(L),responseTime:L-I,sid:getSid(this.instanceId),userId:this.context.uid,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),linktype:4,linkflag:Long$1.fromNumber(0),linkenv:v.env}),d&&this.connection.apClient.apFinish$.next(void 0),this.context.internalEmitter.emit("link-success",v.env)}),takeUntil(this.loginObservableController$),finalize(()=>{this.log("ENV_%d: Observable finalized (unsubscribed)",S)}),shareReplay(1)))}getLoginSockets(){return compact$1(this.curLoginSockets)}sendOperationPacket(e,o,d){const I=this.getLoginSockets();if(I.length===0){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[S],f)}I.forEach(f=>{f.sendPacket(o,d)})}sendOperationPacketUseOneEnv(e,o,d,I){const f=this.getLoginSockets();if(f.length===0){const{code:S,reason:v}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[v],S)}f.forEach(S=>{S.env===o&&S.sendPacket(d,I)})}onOperationPacket(e){return merge(...this.getLoginSockets().map(o=>o.fromReceived(e).pipe(map$1(d=>["UserRenewToken2Resp"].includes(e)?Object.assign(d,{eventReportInfo:{ip:o.ip,env:o.env}}):d))))}onSocketReconnect(e){return()=>{const o=[0,1].filter(f=>f!==e.env)[0],d=this.connection.curOpenSockets[o],I=this.connSyncEnv===e.env;this.log("ENV_".concat(e.env,"(").concat(e.name,"): received a reconnect event from ").concat(maskIp(e.address),", otherSocketState: ").concat(d==null?void 0:d.loggedIn,", connSyncEnv: ").concat(this.connSyncEnv,", syncEstablishState: ").concat(this.syncEstablishState)),I&&this.syncEstablishState===SyncEstablishState.CONNECTED&&this.handleSyncDisconnected(e,SyncDisconnectedReason.REG_SOCKET_RECONNECT),d&&!d.loggedIn&&(this.log("ENV_".concat(e.env,"(").concat(e.name,"): will emit connectionLost")),I||this.syncEstablishState!==SyncEstablishState.CONNECTED||this.handleSyncDisconnected(d,SyncDisconnectedReason.REG_SOCKET_RECONNECT)),d!=null&&d.loggedIn||this.context.internalEmitter.emit("connectionLost")}}onGroupCountNotice(){return e=>{let{group:o,size:d}=e;this.log("group count notice: %s, %s",o,d)}}async establishSync(e,o){if(this.context.disablePresence)return;this.cancelSyncTimer(),this.syncEstablishState=SyncEstablishState["SYNCINIT_".concat(e.env)];const d=this.context.incGetSeq();this.log("ENV_".concat(e.env," - ").concat(e.name,": request ").concat(o?"first ":"","sync physical connection, seq: ").concat(d.toNumber())),e.sendPacket(getParameter("DECOUPLE_SYNC")?"SyncInit2":"SyncInit",{seq:d});const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT);try{await race(e.fromReceived("SyncInitAck").pipe(first(v=>v.seq.eq(d)),map$1(async v=>{if(v.code!==0){this.connSyncEnv=void 0,this.warn("change connSyncEnv %d to undefined in requestFirstSyncInit",e.env);const L=o?SyncDisconnectedReason.REQUEST_FIRST_SYNC_PHYSICAL_CONNECTION_ERROR:SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_ERROR,x=L+". code is ".concat(v.code),F=new RTMBaseError("syncInit",[x+f],RTMErrorCode.RTM_ERROR_LOGIN_REJECTED);throw F.message=L,F}this.log("sync physical connect success, virtual socket env: %d",this.connSyncEnv),this.connSyncEnv=e.env,this.emit("syncConnected")}),timeout(5e3))).pipe(catchError(v=>{if(v instanceof TimeoutError){const L=o?SyncDisconnectedReason.REQUEST_FIRST_SYNC_PHYSICAL_CONNECTION_TIMEOUT:SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_TIMEOUT,x=new RtmTimeoutError("syncInit",[L+f],I);return x.message=L,throwError(x)}return throwError(v)})).toPromise()}catch(S){throw S}await this.connSyncDB(e.env)}onSyncFin(e){return o=>{let{code:d}=o;this.syncEstablishState===SyncEstablishState.CONNECTED?e.env===this.connSyncEnv?(this.warn("ENV_%d: reg and sync conn is fin, connSyncEnv is %d, code is %d, %s, syncEstablishState is %s",e.env,this.connSyncEnv,d,e.name,this.syncEstablishState),this.emit("syncDisconnected","sync fin"),this.handleSyncDisconnected(e,SyncDisconnectedReason.SYNC_FIN)):this.log("not current env, outdated fin, wont handle sync fin"):this.log("status is not connected, outdated fin, wont handle sync fin")}}retrySyncEstablish(e){this.cancelSyncTimer(),this.syncEstablishState===SyncEstablishState.DISCONNECTED&&this.establishSync(e,!1).catch(o=>{var d;getParameter("DECOUPLE_SYNC")?this.handleSyncDisconnected(e,(d=o==null?void 0:o.message)!==null&&d!==void 0?d:"",isTimeout(o)?0:5e3):e.forceReconnect()})}handleSyncDisconnected(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(!isNil$1(this.connSyncEnv)&&this.connSyncEnv!==e.env)return void this.warn("Now connSyncEnv is not equal to socket env, can't handle disconnected");if(this.emit("syncDisconnected","handle handleSyncDisconnected, reason: "+o),this.connSyncEnv=void 0,this.syncEstablishState=SyncEstablishState.DISCONNECTED,this.cancelSyncTimer(),this.clearShakehandTimer(),this.loggedOut)return;o!==SyncDisconnectedReason.REG_SOCKET_RECONNECT&&o!==SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_TIMEOUT&&o!==SyncDisconnectedReason.REQUEST_RETRY_SYNC_PHYSICAL_CONNECTION_ERROR&&this.context.internalEmitter.emit("presence-backoff");const I=[0,1].filter(S=>S!==e.env)[0],f=this.connection.curOpenSockets[I];f&&f.loggedIn?(this.info("use another env to connect sync, env: %d(%s)",f.env,f.name),this.syncInitTimer=setTimeout(()=>{this.retrySyncEstablish(f)},d)):!getParameter("DECOUPLE_SYNC")||f!=null&&f.loggedIn||(this.info("use same env to connect sync, env: %d(%s), loggedIn: %s",e.env,e.name,e.loggedIn),this.syncInitTimer=setTimeout(()=>{const S=this.connection.curOpenSockets[e.env];this.retrySyncEstablish(S||e)},d))}onSyncPacket(){return e=>{getSyncPacketUri(e)===102&&this.clearShakehandTimer(),this.emit("syncPacket",e)}}onUserDrop(e){return o=>{let{code:d}=o;d!==RegServerErrorCode.kConnectionTimeout?(this.context.addReportEvents("KickedOff",{code:0,elapse:getElapse(this.context.startTime),linkId:parseInt(e.name.split("-")[1],10),lts:Long$1.fromNumber(Date.now()),server:e.address,serverCode:d,sid:getSid(this.instanceId),userId:this.context.uid}),this.handleFailed("userDrop",d)):this.warn("connection timeout")}}clearSockets(){[0,1].forEach(e=>{this.cleanLoginSubs(e),this.connection.closeSocket(e)})}handleHeartbeatTimeout(e){var o;const d=this.context.heartbeatInterval+((o=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&o!==void 0?o:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT)-2*SOCKET_RETRY_INTERVAL;this.warn("ENV_".concat(e.env,"(").concat(e.name,"): registrar forceReconnect, the last received packet is the same as it was ").concat(d/1e3,"s ago ")),e.forceReconnect()}sendPing(e){var o;if(Date.now()-this.lastPingTime[e.env]<=this.context.heartbeatInterval||!e.loggedIn)return;this.context.incSeqIfNeeded(e.env);const d=this.context.seq,I=this.context.heartbeatInterval+((o=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&o!==void 0?o:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT)-2*SOCKET_RETRY_INTERVAL;this._lastPingSequences[e.env]=d,e.sendPacket("Ping3",{ms:Long$1.fromNumber(Date.now(),!0),seq:d,flags:new Long$1(3,0,!0)}),this.lastPingTime[e.env]=Date.now(),e.env===this.connSyncEnv&&(this.manualShakeHand(),this.shakeHandTimer=setTimeout(()=>{this.loggedOut||(this.warn("not received shakeHand response in heartbeat interval"),this.context.internalEmitter.emit("presence-backoff"))},SHAKEHAND_TIMEOUT));const f=e.fromReceived("Pong3").pipe(filter(S=>{let{seq:v}=S;return v.eq(d)}),take(1),tap(S=>{let{serverMs:v}=S;this.context.pongTime=v.toNumber(),this.context.offsetTime=this.context.pongTime-new Date().getTime(),this.startPingTimer(e)}),timeout(I),catchError(S=>(e.loggedIn===!1||this._lastPingSequences[e.env].greaterThan(d)||(this.warn("ENV: %d, loggedIn: %s, received pong error, seq: %s, e: %o",e.env,e.loggedIn,d.toNumber(),S),S instanceof TimeoutError&&(e.env===this.connSyncEnv&&this.clearShakehandTimer(),this.handleHeartbeatTimeout(e))),EMPTY)),finalize(()=>{f.unsubscribe()})).subscribe()}notifyNetworkChange(e){this.networkOnlineSubject.next(e)}notifyLoginInDisconnected(){this.loginInDisConnectedSubject$.next(!0)}updateRegTicket(e){this.curLoginSockets.filter(o=>o!==void 0).forEach(o=>o.ticket=e)}updateLoggedOut(e){this.loggedOut=e}}class CollectionEvent{constructor(e,o,d,I){this.document=e,this.path=o,this.type=d,this.value=I}}var CollectionEventType;(function(n){n.Put="Put",n.Insert="Insert",n.Delete="Delete",n.DocSyncEnd="DocSyncEnd"})(CollectionEventType||(CollectionEventType={}));var CollectionEventType$1=CollectionEventType;class SyncCounter{constructor(e,o,d,I,f){this.docInstance=e,this.path=o,this.documentIn=d,this.collectionIn=I,this.client=f}Set(e){if(Math.round(e)!=e)throw new TypeError("The value is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");counterCheckAndReplace(d,o,this.docInstance),Module._rte_crdt_document_batch_write_begin(this.docInstance),setValue(this.docInstance,null,e,o,!0),Module._rte_crdt_document_batch_write_end(this.docInstance),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),this.client.connected&&tickLoop(this.client)}Inc(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;if(Math.round(e)!=e)throw new TypeError("The delta is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");counterCheckAndReplace(d,o,this.docInstance),Module._rte_crdt_document_batch_write_begin(this.docInstance),Module._rte_crdt_document_increment(this.docInstance,null,o,BigInt(e)),Module._rte_crdt_document_batch_write_end(this.docInstance),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),this.client.connected&&tickLoop(this.client)}Dec(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;if(Math.round(e)!=e)throw new TypeError("The delta is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");counterCheckAndReplace(d,o,this.docInstance),Module._rte_crdt_document_batch_write_begin(this.docInstance),Module._rte_crdt_document_increment(this.docInstance,null,o,-BigInt(e)),Module._rte_crdt_document_batch_write_end(this.docInstance),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),this.client.connected&&tickLoop(this.client)}Value(){if(!checkAll(this.documentIn,this.collectionIn.readable))throw new Error("The current collection is forbidden to read the Document : "+this.documentIn);let e;const o=Module._rte_crdt_path_create();parsePath(this.path,o);const d=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,o,d)!==0)throw Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),new Error("The counter no longer exists.");return counterCheckAndReplace(d,o,this.docInstance),e=getScalarValue(d),Module._rte_crdt_nested_value_destroy(d),Module._rte_crdt_path_destroy(o),e}}class List{constructor(e,o,d,I,f){this.docInstance=e,this.path=o,this.documentIn=d,this.collectionIn=I,this.client=f}Insert(e,o){if(Math.round(e)!=e)throw new TypeError("The index is expected to be an int, but a double was got.");if(!checkAll(this.documentIn,this.collectionIn.writable))throw new Error("The current collection is forbidden to write the Document : "+this.documentIn);const d=Module._rte_crdt_path_create();parsePath(this.path,d);const I=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,d,I)!==0||!Module._rte_crdt_nested_value_is_list(I))throw Module._rte_crdt_nested_value_destroy(I),Module._rte_crdt_path_destroy(d),new Error("The list no longer exists.");{const f=Module._rte_crdt_nested_value_iterator_create(I);let S=0;for(;Module._rte_crdt_nested_value_iterator_next_value(f,null)!==305;)S+=1;if(Module._rte_crdt_nested_value_iterator_destroy(f),e<0||e>S)throw Module._rte_crdt_nested_value_destroy(I),Module._rte_crdt_path_destroy(d),new Error("The index is out of bound.");Module._rte_crdt_document_batch_write_begin(this.docInstance);for(let v=0;vL.indexOf(S)===v),d=o.sort();const I=Module._rte_crdt_path_create();parsePath(this.path,I);const f=Module._rte_crdt_nested_value_create();if(Module._rte_crdt_document_get(this.docInstance,null,I,f)!==0||!Module._rte_crdt_nested_value_is_list(f))throw Module._rte_crdt_nested_value_destroy(f),Module._rte_crdt_path_destroy(I),new Error("The list no longer exists.");{const S=Module._rte_crdt_nested_value_iterator_create(f);let v=0;for(;Module._rte_crdt_nested_value_iterator_next_value(S,null)!==305;)v+=1;Module._rte_crdt_nested_value_iterator_destroy(S);for(let x=0;xv)throw Module._rte_crdt_nested_value_destroy(f),Module._rte_crdt_path_destroy(I),new Error("The index is out of bound.")}let L=0;Module._rte_crdt_document_batch_write_begin(this.docInstance);for(let x=0;x{const x=getPtrWithStr(this.name),F=getPtrWithStr(e),Y=getPtrWithStr(o);Module._sync_client_keepalive(this.client.clientPtr,x,F,Y,d),releasePtr(x),releasePtr(F),releasePtr(Y),tickLoop(this.client)},1e3*d/2);this.keepAliveTimers.set(I,L)}}RemoveAutoKeepaliveRPC(e,o){let d=e+" "+o;if(this.keepAliveTimers.has(d)){let I=this.keepAliveTimers.get(d);clearInterval(I)}}GetAutoKeepaliveRPC(){return Array.from(this.keepAliveTimers.keys())}}function checkIfContainsStart(n){for(let e=0;e0&&arguments[0]!==void 0?arguments[0]:{};return new Promise((o,d)=>{n(Object.assign(Object.assign(Object.assign({},e),{success:o,fail:d})))})}}function isDict(n){return!(typeof n!="object"||n===null||n instanceof Array||n instanceof Date)}function toRegex(n){let e="";for(let o=0;o0&&!e.includes(n)&&!checkRegex(n,e))}function logger(n,e,o){if(e!==null)switch(o){case"info":e().handleInfoLog(n);break;case"warn":e().handleWarnLog(n);break;case"error":e().handleErrorLog(n)}else{let d=new Date;console.log(d+d.getMilliseconds().toString()+" : "+n)}}function releasePtrs(n){for(let e=0;e4&&arguments[4]!==void 0&&arguments[4];const f=Module._rte_crdt_value_create(),S=Module._rte_crdt_path_clone(d);if(typeof o=="object"&&o!=null&&o!=null)if(Array.isArray(o)){Module._rte_crdt_value_set_list(f),constructPathAndPut(e,n,S,f);let v=0;for(let L=0;L1&&arguments[1]!==void 0)||arguments[1]?Module._rte_crdt_nested_value_get_scalar(n):Module._rte_crdt_value_get_scalar(n),Module._rte_crdt_scalar_value_is_i64(o)){const d=Module._malloc(4);Module._rte_crdt_scalar_value_get_i64(o,d),e=Module.getValue(d,"i64"),e=Number(e),releasePtr(d)}else if(Module._rte_crdt_scalar_value_is_double(o)){const d=Module._malloc(8);Module._rte_crdt_scalar_value_get_double(o,d),e=Module.getValue(d,"double"),e=Number(e),releasePtr(d)}else if(Module._rte_crdt_scalar_value_is_bytes(o)){const d=Module._malloc(4),I=Module._malloc(4);Module._rte_crdt_scalar_value_get_bytes(o,I,d);const f=Module.getValue(I,"i32");e=Module.UTF8ToString(f).valueOf(),releasePtr(d),releasePtr(I)}else if(Module._rte_crdt_scalar_value_is_bool(o)){const d=Module._malloc(1);Module._rte_crdt_scalar_value_get_bool(o,d),e=Module.getValue(d)==1,releasePtr(d)}else if(Module._rte_crdt_scalar_value_is_counter(o)){const d=Module._malloc(4);Module._rte_crdt_scalar_value_get_counter(o,d),e=Module.getValue(d,"i64"),e=Number(e),releasePtr(d)}else e=null;return e}function parsePath(n,e){if(arguments.length>2&&arguments[2]!==void 0&&arguments[2]){const I=getPtrWithStr(n);return Module._rte_crdt_path_add_property(e,I,getRealLenWithStrBI(n)),void releasePtr(I)}let o="",d=!1;for(let I=0;I0&&(addPropertyOrIndex(o,e,d),o=""),d=!1):(addPropertyOrIndex(o,e,d),d=!1,o=""):(o.length>0&&(addPropertyOrIndex(o,e,d),o=""),d=!0)}o.length>0&&addPropertyOrIndex(o,e,d)}function addPropertyOrIndex(n,e,o){if(!isNaN(n)&&o){const d=Number(n);Module._rte_crdt_path_add_index(e,BigInt(d))}else{const d=getPtrWithStr(n);Module._rte_crdt_path_add_property(e,d,getRealLenWithStrBI(n)),releasePtr(d)}}function getAll(n,e,o,d){const I=Module._rte_crdt_nested_value_iterator_create(e),f=Module._malloc(4),S=Module._malloc(4),v=Module._malloc(4);let L=0;for(;;)if(d){if(L=Module._rte_crdt_nested_value_iterator_next_value(I,v),L===305)break;const x=Module.getValue(v,"i32");if(Module._rte_crdt_nested_value_is_scalar(x))o.push(getScalarValue(x));else if(Module._rte_crdt_nested_value_is_map(x)){let F={};o.push(F),getAll(n,x,F,!1)}else if(Module._rte_crdt_nested_value_is_list(x)){let F=[];o.push(F),getAll(n,x,F,!0)}}else{if(L=Module._rte_crdt_nested_value_iterator_next_key_value(I,f,S,v),L===305)break;const x=Module.UTF8ToString(Module.getValue(f,"i32")).valueOf(),F=Module.getValue(v,"i32");if(Module._rte_crdt_nested_value_is_scalar(F))o[x]=getScalarValue(F);else if(Module._rte_crdt_nested_value_is_map(F)){let Y={};o[x]=Y,getAll(n,F,Y,!1)}else if(Module._rte_crdt_nested_value_is_list(F)){let Y=[];o[x]=Y,getAll(n,F,Y,!0)}}releasePtr(f),releasePtr(S),releasePtr(v),Module._rte_crdt_nested_value_iterator_destroy(I)}function getPtrStringList(n){const e=n.length,o=e===0?0:Module._malloc(4*e);let d=o,I=[];for(let f=0;f{try{const d=new Uint8Array(o),I=d.length*d.BYTES_PER_ELEMENT,f=Module._malloc(I);Module.HEAPU8.set(d,f);const S=Module._sync_client_on_recv(n.clientPtr,f,BigInt(I),n.tickBufferPtr);if(Module._free(f),S===101)Module._sync_client_reset_connection(n.clientPtr);else{const v=new Uint8Array(Module.HEAPU8.buffer,Module._sync_buffer_data(n.tickBufferPtr),Number(Module._sync_buffer_length(n.tickBufferPtr))).slice();v.length!=0&&n.ws.send(v)}}catch(d){logger("recvError : ".concat(d),n.getLogger,"error")}})}async function fetchHelper(n,e){n.tickBufferPtr=Module._sync_buffer_create();try{let o="ws://60.191.137.101:6390/ws";e&&(n.ws=new WebSocket(o)),n.ws.onopen=()=>{n.manualTick||(tickLoop(n),n.connected=!0,n.timer=setInterval(()=>{n.ws.readyState==3?(n.connected=!1,logger("The connection is time out...",n.getLogger,"info")):(n.connected=!0,tickLoop(n))},2e3))},recvMsg(n,e)}catch(o){logger("fetchError : ".concat(o),n.getLogger,"error")}}const createCollCallBackMap=new Map,dbConnectCallBackMap=new Map,dbDisConnectCallBackMap=new Map;function initFunc(n){n!==null&&(Module.rtejsLog=(e,o)=>{switch(e){case 0:n().handleDebugLog(o," ----------rtejslog");break;case 1:n().handleInfoLog(o," ----------rtejslog");break;case 2:n().handleWarnLog(o," ----------rtejslog");break;case 3:n().handleErrorLog(o," ----------rtejslog")}})}async function createCollection(n){const{client:e,db:o,coll:d,readable:I,success:f,fail:S}=n;let v=Module.addFunction((ee,he,ue,Ee)=>{const{resolvePromise:_e,rejectPromise:De}=createCollCallBackMap.get(Ee);releasePtr(Ee),ee===0?(logger("init success",e.getLogger,"info"),_e(ee)):De(ee),Module.removeFunction(v)},"viiii");const L=getPtrWithStr(d),x=getPtrWithStr(o),F=getPtrWithStr(d),[Y,j]=getPtrStringList(I),W=uuid_1.v4(),re=getPtrWithStr(W);createCollCallBackMap.set(L,{resolvePromise:f,rejectPromise:S}),Module._sync_client_create_coll(e.clientPtr,x,F,Y,I.length,re,getRealLenWithStrBI(W),v,L),releasePtr(x),releasePtr(F),releasePtr(re);for(let ee=0;ee{const{resolvePromise:re,rejectPromise:ee}=dbConnectCallBackMap.get(W);releasePtr(W),x===0?(logger("db connect success",e.getLogger,"info"),re(x)):ee(x),Module.removeFunction(f)},"viiiji");const S=getPtrWithStr(o),v=S;dbConnectCallBackMap.set(v,{resolvePromise:d,rejectPromise:I});let L=getPtrWithStr("");Module._sync_client_connect_database(e.clientPtr,S,L,getRealLenWithStrBI(""),f,v),releasePtr(L),e.connected&&tickLoop(e)}async function disconnectDatabase(n){const{client:e,databaseName:o,success:d,fail:I}=n;let f=Module.addFunction((L,x,F)=>{const{resolvePromise:Y,rejectPromise:j}=dbDisConnectCallBackMap.get(F);releasePtr(F),L===0?(logger("db disconnect success",e.getLogger,"info"),Y(L)):j(L),Module.removeFunction(f)},"viii");const S=getPtrWithStr(o),v=S;dbDisConnectCallBackMap.set(v,{resolvePromise:d,rejectPromise:I}),Module._sync_client_disconnect_database(e.clientPtr,S,f,v),e.connected&&tickLoop(e)}async function queryDoc(n){const{client:e,database:o,coll:d,option:I,buffer:f,success:S,fail:v}=n,L=Module.addFunction((W,re,ee,he,ue,Ee)=>{if(W===0){f.SetCount(Number(he)),ue===1&&f.SetMore(!0);for(let _e=0;_e{const ee=Module.UTF8ToString(F),he=Module._rte_crdt_path_iterator_create(Y);let ue,Ee=0,_e="";for(;;){const De=Module._malloc(4),Fe=Module._malloc(4);Module.setValue(Fe,0,"i64");const Ve=Module._malloc(4),Ge=Module._malloc(4);if(Ee=Module._rte_crdt_path_iterator_next(he,De,Fe,Ve),Ee===305){releasePtr(De),releasePtr(Fe),releasePtr(Ve),releasePtr(Ge);break}if(_e.length===0){if(De!=0){const He=Module.getValue(De,"i32");_e+=Module.UTF8ToString(He).valueOf()}}else{const He=Module.getValue(Fe,"i64");if(Number(He)>0){const At=Module.getValue(De,"i32");_e+="."+Module.UTF8ToString(At).valueOf()}else{const At=Module.getValue(Ve,"i64");_e+="["+Number(At).toString()+"]"}}releasePtr(De),releasePtr(Fe),releasePtr(Ve),releasePtr(Ge)}switch(ue=Module._rte_crdt_value_is_list(W)?[]:Module._rte_crdt_value_is_map(W)?{}:getScalarValue(W,!1),j){case 0:d.push(new CollectionEvent(ee,_e,CollectionEventType$1.Insert,ue));break;case 1:I?d.push(new CollectionEvent(ee,_e,CollectionEventType$1.Put,ue)):e.listenerCount("document-events")!=0&&(d=[new CollectionEvent(ee,"",CollectionEventType$1.Put,null)],e.emit("document-events",d));break;case 2:I?d.push(new CollectionEvent(ee,_e,CollectionEventType$1.Delete,ue)):e.listenerCount("document-events")!=0&&checkAll(ee,n.readable)&&(d=[new CollectionEvent(ee,"",CollectionEventType$1.Delete,null)],e.emit("document-events",d));break;case 6:d=[],I=!0;break;case 7:e.listenerCount("document-events")!=0&&e.emit("document-events",d),I=!1;break;case 8:e.listenerCount("document-events")!=0&&e.emit("document-events",[new CollectionEvent(ee,"",CollectionEventType$1.DocSyncEnd,null)])}},"viiiiiii");let d=[],I=!1;const f=getPtrWithStr(n.dbIn),S=getPtrWithStr(n.name),v=Module._sync_client_subscribe(n.client.clientPtr,f,S,o,0);if(releasePtr(f),releasePtr(S),v===0)return logger("The Collection : ".concat(n.name," has been subscribed successfully!"),n.getLogger,"info"),o;logger("The Collection : ".concat(n.name," has not been subscribed successfully!"),n.getLogger,"info")}function exceptionCallback(n){n.exceptionCb=Module.addFunction((e,o,d)=>{let I=Module.UTF8ToString(e).valueOf(),f=Module.UTF8ToString(o).valueOf();n.exceptionChan.listenerCount("exception")!=0&&n.exceptionChan.emit("exception",[I,f])},"viii"),Module._sync_client_set_exception_callback(n.clientPtr,n.exceptionCb,0)}var createModule=function(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};var e,o,d=n;d.ready=new Promise((Me,ot)=>{e=Me,o=ot});var I=Object.assign({},d),f="./this.program",S=typeof window=="object",v=typeof importScripts=="function";typeof process=="object"&&typeof process.versions=="object"&&process.versions.node;var L,x="";(S||v)&&(v?x=self.location.href:typeof document<"u"&&document.currentScript&&(x=document.currentScript.src),x=x.indexOf("blob:")!==0?x.substr(0,x.replace(/[?#].*/,"").lastIndexOf("/")+1):"",v&&(L=Me=>{var ot=new XMLHttpRequest;return ot.open("GET",Me,!1),ot.responseType="arraybuffer",ot.send(null),new Uint8Array(ot.response)})),d.print||console.log.bind(console);var F,Y,j=d.printErr||console.error.bind(console);Object.assign(d,I),I=null,d.arguments&&d.arguments,d.thisProgram&&(f=d.thisProgram),d.quit&&d.quit,d.wasmBinary&&(F=d.wasmBinary),d.noExitRuntime,typeof WebAssembly!="object"&&Yt("no native wasm support detected");var W,re,ee,he,ue,Ee,_e,De,Fe,Ve=!1;function Ge(){var Me=Y.buffer;d.HEAP8=W=new Int8Array(Me),d.HEAP16=ee=new Int16Array(Me),d.HEAPU8=re=new Uint8Array(Me),d.HEAPU16=new Uint16Array(Me),d.HEAP32=he=new Int32Array(Me),d.HEAPU32=ue=new Uint32Array(Me),d.HEAPF32=Ee=new Float32Array(Me),d.HEAPF64=De=new Float64Array(Me),d.HEAP64=_e=new BigInt64Array(Me),d.HEAPU64=new BigUint64Array(Me)}var He=[],At=[],Bt=[];function Tt(Me){He.unshift(Me)}function rt(Me){Bt.unshift(Me)}var ye=0,lt=null;function Yt(Me){d.onAbort&&d.onAbort(Me),j(Me="Aborted("+Me+")"),Ve=!0,Me+=". Build with -sASSERTIONS for more info.";var ot=new WebAssembly.RuntimeError(Me);throw o(ot),ot}var ct,ht,vt="data:application/octet-stream;base64,";function ar(Me){return Me.startsWith(vt)}function jt(Me){if(Me==ct&&F)return new Uint8Array(F);var ot=function(Ct){if(ar(Ct))return function(Kt){try{for(var Xr=atob(Kt),Lr=new Uint8Array(Xr.length),Jr=0;Jrjt(Kt))}(Me).then(Kt=>WebAssembly.instantiate(Kt,ot)).then(Kt=>Kt).then(Ct,Kt=>{j("failed to asynchronously prepare wasm: ".concat(Kt)),Yt(Kt)})}ar(ct="data:application/octet-stream;base64,AGFzbQEAAAABiwZXYAJ/fwBgAX8AYAF/AX9gAn9/AX9gA39/fwBgA39/fwF/YAR/f39/AGAEf39/fwF/YAZ/f39/f38Bf2AFf39/f38Bf2AFf39/f38AYAJ/fgBgBn9/f39/fwBgCH9/f39/f39/AX9gA39/fgBgB39/f39/f38Bf2AAAGAAAX9gBX9+fn5+AGABfwF+YAV/f39/fgF/YAV/f35/fwBgAn9/AX5gB39/f39/f38AYAR/fn5/AGACf34BfmAEf39/fwF+YAJ+fwF/YAR/f35/AGAIf39/f39/f38AYAV/f39/fAF/YAt/f39/f39/f39/fwF/YAZ/f39+f38AYAABfGACfn8AYAJ/fgF/YAR/fn5/AX9gAn98AGAKf39/f39/f39/fwF/YAABfmAIf39/fn5/f38Bf2ABfgF/YAF+AX5gDH9/f39/f39/f39/fwF/YAN/fn8AYAZ/f39/fn8Bf2APf39/f39/f39/f39/f39/AGAKf39/f39/f39/fwBgBX9/f35/AGAHf39/f39+fgF/YAZ/f39/fn4Bf2ADf39+AX9gC39/f39/f39/f39/AGAEf39+fgBgBH5+fn4Bf2AHf39/f35/fwBgCH9/f39+f39/AX5gDn9/f39/f39+f39/f39/AGAHf39+fn9/fwF/YAJ+fgF8YAF/AXxgBX9/f39+AGAIf35+fn9/f38Bf2AHf35+fn9/fwBgBX9/fn5/AX9gAnx/AGADf39/AXxgA39/fwF9YAR/f39+AX5gBn98f39/fwF/YAJ8fwF8YAJ+fgF9YAN+fn4Bf2AGf39/f35/AGAIf39/f39+f38Bf2AJf39/f35+f39/AX9gEX9/f39/f39/fn5/f39/f39/AX9gEH9/f39/f39/fn5/f39/f38Bf2AKf39/f39+f39/fwF/YAl/f39/f35/f38Bf2ALf39/f39+f39/f38Bf2AGf39/fn9/AX9gCX9/f39/f35/fwBgBH9/fn8Bf2AKf39/f39+fn9/fwBgBn9+f39/fwBgBH9/f34BfwI9CgFhAWEABgFhAWIAEAFhAWMACQFhAWQAAwFhAWUAAwFhAWYAIQFhAWcAEQFhAWgAIQFhAWkAAgFhAWoAAAPmD+QPAgMBAgMCAAMDAiICAQIBEAIDAAUFAAIDAQMDAAICEgIBAgAAAwMBBAIDABEDAQMSAQICAwEBBBMCBAEBBQIBAgACAgEAAgICAAEAAgIFAAACAAICAAQDAAQDAwYKABgAAwMQAAMCAgIHBQACAAACAAsTAwMAEgMjJAEDAwMDAAMFAAkCEwACNAECAgMACgMAAAQAAwAEAwEGAAACDgACAgAABQUHAhUBAgMBAgMAAQgAAgEDAgsCBAEGAwEABwQBFgACCAMEAwAJBwkHBQMCJQQBAgMAAQEDAwAAAQABAQADIgsAAQANDQYDByMDACQKBAQDAAILBQADAgMEAAQIAA8AAwcCAAAAAwICBgIEAgQDBwEAAAEHAgIDNQsBAgMAAwQAAAABAQsAAAMCAgMAAAgBBwMCAwACAQMAAhg2AgA3AQABAwICAgMEBQUFAAYAAAEBBwQLAgAHAAcBABYCABEHAQADBAQBBQAOAAEAAQIDBwEIAAMEAgAEAwMmAgMmAgIbAgAAJwACAwMBBwYCAxYAAygDAQADAQEFBhwAAAIAAwMoAgAAAwMDBwcBAQEBAwABBQMEAAAEAwAADgEBAwQAAwAAAAADAwMCAQAAAAMAAwkBAQEEAwQCAwYDAgEFAAEEAAMEBAQEBAQGAAAABAABAgQBAAAAOAALAQAHAwQAAAMAAwMEAAADAQMDCwQEBAYBAgABAAEZAAMKAAQAAQYEAAMDBAEEAAUAAAABAQAAAQAEAQADCgQdAgQCAAYCAwIBDgAAAwICAgAFAAYDDwMPBwUHBAQDAgIABAADAxYHGykBAAAABAACAQQDAAEAAgICAgI5HQAEAgUCAwUDHBUKAAAACQcJBwYDAwYACQcGAAA6BAAKAQABAgcEAAUYGQEDBgYGBgEAAAADAAMABAcAAAADAwMGAAABAAADAQMDAwMEAwEBAAcBAQABAAAEAwAAAAAAAAAEAQEDAQABAQAAAAADAwAAAAYMAQQDAQMAAwkHBgEAAA4qAA4BCw4AGQMAAAICAAEAAAAFAAUAAwAGDAQGAwQBAwMDAAoaAgICAgUBAwIDAgAFKwoFKwoABgMDAgU7EjwCAwoEBwUAAwIAAwsCAgMnAAUGAwQFAykCAgIABAMAAgICAgMDBAIAAAEQAQAFAQAECwABAAIBAAADAwMAAwAABAAEAwMDAAc9AAAAAAAABgQFAQQAAwEABwAEAwUFAQACBAEAAwUCAgMDAwEBAAACAwQDAAEDAQAAPgEACwIABD8AAwQAAAYAAAQFBgoAAAQBEQEBAAEAAAEEAAEAAQAKCwoEBBUEBQdABgAAAAAGAAYEAAQCBAQKBAMAAwUGBQAEBQMEBQYBAAAEAAQBAgAGBgMAAwMDBAAGDAMBAQUBAQMABgMDAAYTBAYEBAEABwEAAQYGAgkDBwIAAQEFAQABAAEABgMBAAADAwADAgIAAAEAAAABAQUAAQECAAEAAwEBAAAAAAEBAQEFAgAAAQsZBAUDAAACAAIBAgABDAUACgYDAQEGBgADAAABAQUEAQADAwIDAQECBAEABAcBAQAABAMDAAYAAEEqEwEAAAQCAQICAAABAQAHASwAAQABAAAAAAABBAQEBgQECC0ILQcHBQUFAAAFBQAIAAAAAAYABgAKHQAEGgECAQIBBAABAAQCAgIEAAQDAQAAAAICCQ0ADQkNDQIJDQIBAAECAgABAAIFBS4vBS4vAgIAHwACAgIEAB8AAAwKAAwMCgwMAgUXFwEXFwgFBkJDGgcIBxoHBAMERAIHAQMDAwMARQQCCUYDAgIDBQ4ERxYGEhIYEgACAgMDBQMCAAUFAAECBAEABAACAgAAAQMCAgIAAgMFAQICAwUCAwMEAwAJBQgMCkgEAAUDAAUEGwMDBAMBAQEBAQEBAQEBAQABAQEBAQQBAQEEAAQAAgEBAgIEAAEBAg0CBAQEBAQDBAIBBAEAAAADBAAABAAEBgAEAREAAgIEBAAAAAAEAAACBAMfAAsABAABAQQAATACAwECCgIKAgICAgICAgIBBAEDAQEBAQEBAQYBAQABBAQEBAAAAAAABAAAAAABAQAEBAQEAAEBBAQBAQAAAAEBAwEBAAEBAAwMDAoKCgYGBgUQAQECAQIBAgECAQIBAgECAQIBAgECAQIBAgECAQIAAAAAAAACAgEBAgkCCQ0NAQkJBQcFAwUDAQkFBwUDBQMHBwcFAQEBDAwIMQgxDw8PDw8PDQgICAgIDQgICAgICTIeFAEJFAkJCTIeFAkUCQkICAgICAgICAgICAEICAgICAgIBQYJBQYJBQUDAQECBgEVAwMCAgIBAgUCAgUGFQUBAAMBAQQBAQEBAQEBAQEBAQEBAAACBAACCgACCgACAAIAAgACAAIAAgACCgACAAACAQQAAgEEAAIGAAIKAAIBAAACAQAAAgQEAAACCAACAAACBAACAAACBAACEwACBA9KSw1MTQhOT1AHUQkFBAEQAwMGBwQFCVICAQFTAwNUARMCAQYKBAAAAAEBBQoAAgACBAQEBQUFMzMODlYFBwcCAgcHAQcCCw4BAgMHAgICAgIBAREDBQMDAwMCAgICAgICCwEOACULCwEAAQICAgICBAECEQEEAAIEAAIEAQEBAQQAAgEEAAIBBAACAQQAAgEAAgEAAgEAAgEAAgEAAgEEAAIBAQEBAQQFAXAAmwYFBwEBgAKAgAIGCAF/AUGw1wYLB5IFdgFrAgABbADsBgFtAQABbgAMAW8ARwFwALoPAXEAuQ8BcgC4DwFzALYPAXQAtQ8BdQC0DwF2ALMPAXcAsg8BeACxDwF5AK8PAXoArg8BQQCtDwFCAKwPAUMAqw8BRACqDwFFAKkPAUYAqA8BRwCnDwFIAKYPAUkApQ8BSgCkDwFLAKMPAUwAog8BTQChDwFOAKAPAU8Anw8BUACeDwFRAJ0PAVIAnA8BUwCbDwFUAJoPAVUAmQ8BVgCYDwFXAJcPAVgAlg8BWQCVDwFaAJQPAV8Akw8BJAAYAmFhAJIPAmJhAJEPAmNhANsLAmRhAJAPAmVhAI8PAmZhAI4PAmdhAI0PAmhhAIwPAmlhABgCamEAiw8Ca2EAig8CbGEAiQ8CbWEAiA8CbmEAhw8Cb2EAhg8CcGEAhQ8CcWEAhA8CcmEAgw8Cc2EAgg8CdGEAgQ8CdWEAgA8CdmEA/w4Cd2EA/g4CeGEAGAJ5YQD9DgJ6YQD8DgJBYQD7DgJCYQDyDgJDYQDxDgJEYQDwDgJFYQDvDgJGYQDuDgJHYQDtDgJIYQDrDgJJYQDqDgJKYQDTBwJLYQDpDgJMYQDoDgJNYQDnDgJOYQDbCwJPYQDmDgJQYQDlDgJRYQDkDgJSYQDjDgJTYQDiDgJUYQDhDgJVYQDgDgJWYQDfDgJXYQDeDgJYYQDdDgJZYQDcDgJaYQDbDgJfYQDaDgIkYQDZDgJhYgDYDgJiYgDXDgJjYgDWDgJkYgDVDgJlYgDUDgJmYgDTDgJnYgDSDgJoYgDRDgJpYgDQDgJqYgDPDgJrYgDODgJsYgDNDgJtYgDMDgJuYgDLDgJvYgDKDgJwYgDJDgJxYgDIDgJyYgDHDgJzYgDGDgJ0YgDFDgn7CgEAQQELmgY0NPgDNNcCNDQ0NNcCNDQ09APzA/ID+gHxA/oB+gGVB/AD8QPvA/QD8APXAjTxA+8D7wvpC8IP5Qu3D9kL1gvUC9EL7A7LC8gLxgvsDZsLNDQ0qAk0NDQ0NKgJNDQ0NDS9DNcC1wL4AzS0DLMMrwyuDDTXAjSrDPoBmASqDKkM+gHxA/oB+gGVB/ADmATvA/QD8AOoDKcM+AM08gOfDDSeDPgDnQycDDSbDJoM8gOjB6MH9APzA4IH+gGYBJgE7wPvC+kLmQzlC5gM2QvWC9QL0QuXDMsLyAvGC5YMmwvyBjSUDNECkwzPAv4EkgzPAk8YURhRGFH9BO0PUfwE7A9R+wTrD1H6BOoPUYUM6Q/oD+cP4AHfAeYPhAzlD+QP4w/gAd8B7AODDOIP4Q/gD+AB3wHsA4EM3w/eD90P4AHfAewDgAzcD9sP2g/gAd8B7AP/C9kP2A/XD+AB3wHsA/4L1g/VD9QP4AHfAdMP/AvSD9EP0A/gAd8Bzw/6C84PzQ/MD+AB3wHLD/cLyg/JD8gP4AHfAccPGJgD5AbGD88C4wbFD88C4gbED88C4QbDD88CTxjBD8APSBi/Dxi+D70PSBi8D/IGuw+CB/MD+g75DvgOTxj3DvYOSBjJAk8Y9Q70DkgY8w7yA/MDTxjEDsMOSBjCDk8YwQ7ADkgYvw5PGL4OvQ5IGLwOTxi7DroOSBi5Dk8YuA63DkgYtg5PGLUOtA5IGLMOGLIOsQ5IGLAOrw6uDk8YrQ6sDkgYqw6/C6oOqQ6oDr4LvQunDroLpg6lDqQOvgu9C6MOTxiiDqEOSBigDk8Ynw6eDkgYnQ65C5wOmw6aDrgLtwuZDrYLmA6XDpYOuAu3C5UOTxiUDpMOSBiSDhiRDpAOSBjJAhiPDo4OSBjJAhiNDowOSBjJAhiLDooOSBjJAhiJDogOSBjJAhiHDoYOSBjJAk8YhQ6EDkgYgw5PGIIOgQ5IGIAOTxj/Df4NSBj9DRj8DfsNSBj6DbEL+Q34DfcNsAv2DfUNrwv0Da0LrAurC/MNqgvyDfEN8A3tBKkLpwumC6UL7w3uDaQLowuiC+0NoQugC+sNnwvqDZ4LnQvpDegNHs4G5w005g3lDeQNUVHjDeIN4Q3+CuAN/grKBvcK3w3eDY4G1w3YDdYN2w3aDdkNzAHsCtUN1A3CBtMN0Q3NCswK0A0MSIwNigrkDOIM4AzeDNwM2gzYDNYM1AzSDNAMzgzMDMoMjgqNDYsNiQr/DP4M/Qz8DPsMiQv6DPkM+AySCvYM9Qz0DPMM8gxR8QzwDP4J7wztDOwM6wzpDOcM/QnuDN0N3A3qDOgM5gxPGBiKDYkNiA2HDYYNhQ2EDYMNiQuCDYENgA0YiAqICtwDzwbPBvcMzwYYhQqECtwDUVGDCskEGIUKhArcA1FRgwrJBBiCCoAK3ANRUf8JyQQYggqACtwDUVH/CckETxjPDc4NzQ1PGMwNyw3KDRjJDcgNxw3GDb0KvQrFDcQNww3BDcANGL8Nvg29DbwNtgq2CrsNug25DbgNtw0Ytg21DbQNsw2yDbENsA2vDRiuDa0NrA2rDakNqA2nDaYNTxivCqUNpA2jDaINoQ2gDeUM4QzdDNEMzQzZDNUMTxivCp8Nng2dDZwNmw2aDeMM3wzbDM8MywzXDNMMqgb5CZkNqgb5CZgNGNME0wSnAacBpwGmClGRApECGNME0wSnAacBpwGmClGRApECGNIE0gSnAacBpwGlClGRApECGNIE0gSnAacBpwGlClGRApECGJcNlg0YlQ2UDRiTDZINGJENkA0YkwqPDTQYkwqODTRPyQzIDE8YSEjHDL4MwQzGDBi/DMIMxQwYwAzDDMQMDAK3AwqQ2xfkDxsAIAAQkAEEQCAAIAAoAgAgABCYAhDfBAsgAAsPACAAIAEgARDcARBDIAAL9QsBB38CQCAARQ0AIABBCGsiAiAAQQRrKAIAIgFBeHEiAGohBQJAIAFBAXENACABQQNxRQ0BIAIgAigCACIBayICQcTBAigCAEkNASAAIAFqIQACQAJAQcjBAigCACACRwRAIAFB/wFNBEAgAUEDdiEEIAIoAgwiASACKAIIIgNGBEBBtMECQbTBAigCAEF+IAR3cTYCAAwFCyADIAE2AgwgASADNgIIDAQLIAIoAhghBiACIAIoAgwiAUcEQCACKAIIIgMgATYCDCABIAM2AggMAwsgAkEUaiIEKAIAIgNFBEAgAigCECIDRQ0CIAJBEGohBAsDQCAEIQcgAyIBQRRqIgQoAgAiAw0AIAFBEGohBCABKAIQIgMNAAsgB0EANgIADAILIAUoAgQiAUEDcUEDRw0CQbzBAiAANgIAIAUgAUF+cTYCBCACIABBAXI2AgQgBSAANgIADwtBACEBCyAGRQ0AAkAgAigCHCIDQQJ0QeTDAmoiBCgCACACRgRAIAQgATYCACABDQFBuMECQbjBAigCAEF+IAN3cTYCAAwCCyAGQRBBFCAGKAIQIAJGG2ogATYCACABRQ0BCyABIAY2AhggAigCECIDBEAgASADNgIQIAMgATYCGAsgAigCFCIDRQ0AIAEgAzYCFCADIAE2AhgLIAIgBU8NACAFKAIEIgFBAXFFDQACQAJAAkACQCABQQJxRQRAQczBAigCACAFRgRAQczBAiACNgIAQcDBAkHAwQIoAgAgAGoiADYCACACIABBAXI2AgQgAkHIwQIoAgBHDQZBvMECQQA2AgBByMECQQA2AgAPC0HIwQIoAgAgBUYEQEHIwQIgAjYCAEG8wQJBvMECKAIAIABqIgA2AgAgAiAAQQFyNgIEIAAgAmogADYCAA8LIAFBeHEgAGohACABQf8BTQRAIAFBA3YhBCAFKAIMIgEgBSgCCCIDRgRAQbTBAkG0wQIoAgBBfiAEd3E2AgAMBQsgAyABNgIMIAEgAzYCCAwECyAFKAIYIQYgBSAFKAIMIgFHBEBBxMECKAIAGiAFKAIIIgMgATYCDCABIAM2AggMAwsgBUEUaiIEKAIAIgNFBEAgBSgCECIDRQ0CIAVBEGohBAsDQCAEIQcgAyIBQRRqIgQoAgAiAw0AIAFBEGohBCABKAIQIgMNAAsgB0EANgIADAILIAUgAUF+cTYCBCACIABBAXI2AgQgACACaiAANgIADAMLQQAhAQsgBkUNAAJAIAUoAhwiA0ECdEHkwwJqIgQoAgAgBUYEQCAEIAE2AgAgAQ0BQbjBAkG4wQIoAgBBfiADd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAwRAIAEgAzYCECADIAE2AhgLIAUoAhQiA0UNACABIAM2AhQgAyABNgIYCyACIABBAXI2AgQgACACaiAANgIAIAJByMECKAIARw0AQbzBAiAANgIADwsgAEH/AU0EQCAAQXhxQdzBAmohAQJ/QbTBAigCACIDQQEgAEEDdnQiAHFFBEBBtMECIAAgA3I2AgAgAQwBCyABKAIICyEAIAEgAjYCCCAAIAI2AgwgAiABNgIMIAIgADYCCA8LQR8hAyAAQf///wdNBEAgAEEmIABBCHZnIgFrdkEBcSABQQF0a0E+aiEDCyACIAM2AhwgAkIANwIQIANBAnRB5MMCaiEBAkACQAJAQbjBAigCACIEQQEgA3QiB3FFBEBBuMECIAQgB3I2AgAgASACNgIAIAIgATYCGAwBCyAAQRkgA0EBdmtBACADQR9HG3QhAyABKAIAIQEDQCABIgQoAgRBeHEgAEYNAiADQR12IQEgA0EBdCEDIAQgAUEEcWoiB0EQaigCACIBDQALIAcgAjYCECACIAQ2AhgLIAIgAjYCDCACIAI2AggMAQsgBCgCCCIAIAI2AgwgBCACNgIIIAJBADYCGCACIAQ2AgwgAiAANgIIC0HUwQJB1MECKAIAQQFrIgBBfyAAGzYCAAsLFQAgABCQAQRAIAAoAgQPCyAAEOMECw4AIAAgASABENwBEJcGCzcBA38jAEEQayIBJAAgASAANgIMIAEoAgwiAygCACICBEAgAyACNgIEIAIQDAsgAUEQaiQAIAALhQECBH4DfyABKAIEIQYgAAJ/AkADQCAGRSACQj9Wcg0BIAEoAgAiBywAACIIrUL/AIMiBCAChiIFIAKIIARSDQEgASAGQQFrIgY2AgQgASAHQQFqNgIAIAJCB3whAiADIAV8IQMgCEEASA0ACyAAIAM3AwBBAQwBCyAAQQA6AABBAAs6AAgLKAEBfyAAIAEoAgAgASABLQALIgDAQQBIIgIbIAEoAgQgACACGxCXBguzAQEDfyABLAALQQBOBEAgACABKQIANwIAIAAgASgCCDYCCCAADwsgASgCACEEIAEoAgQhAiMAQRBrIgMkAAJAAkACQCACEOMDBEAgACEBIAAgAhB3DAELIAJB7////wdLDQEgA0EIaiAAIAIQvgJBAWoQlwIgAygCDBogACADKAIIIgEQmgEgACADKAIMEJkBIAAgAhBtCyABIAQgAkEBahCbASADQRBqJAAMAQsQbAALIAAL7AEBAn8gAEHM4QE2AjggAEG44QE2AgAgAEHY4QEoAgAiATYCACAAIAFBDGsoAgBqQdzhASgCADYCACAAIAAoAgBBDGsoAgBqIgJBADYCFCACIABBBGoiATYCGCACQQA2AgwgAkKCoICA4AA3AgQgAiABRTYCECACQSBqQQBBKBAeGiACQRxqEIwKIAJCgICAgHA3AkggAEG44QE2AgAgAEHM4QE2AjggAUH43QE2AgAgAUEEahCMCiABQgA3AhggAUIANwIQIAFCADcCCCABQgA3AiAgAUHo3gE2AgAgAUEQNgIwIAFCADcCKCAACysBAX8DQCABIACnQf8AcSAAQv8AViICQQd0csAQpAEgAEIHiCEAIAINAAsLQAECfwJAAn8gACAAKAIQIgFGBEAgACEBIAAoAgBBEGoMAQsgAUUNASABKAIAQRRqCyECIAEgAigCABEBAAsgAAuuAQEGfyMAQRBrIgIkACAAKAIAIQMgAkEEaiIEIABBCGoQwAIgAigCBCAEIAIsAA9BAEgbIQVBgMECKAIABEBBiMECKAIAIQYjAEEQayIBJAAgASAFNgIIIAEgAzYCDCABIAY2AgRBgMECKAIAIgNFBEAQGQALIAMgAUEMaiABQQhqIAFBBGogAygCACgCGBEGACABQRBqJAALIAQQChogAEEEahDMARogAkEQaiQACwwAQfC/AigCACAATAsGACAAEAwLBQAQAQALNgEBf0EBIAAgAEEBTRshAAJAA0AgABBHIgENAUGo1wIoAgAiAQRAIAEREAAMAQsLEAEACyABC48BAQR/IwBBEGsiAyQAIAEoAgAhBCADIAEoAgQgAS0ACyICIALAQQBIIgIbNgIMIAMgBCABIAIbNgIIIAAoAgAgACAALQALIgTAQQBIIgIbIAMoAgggAygCDCIBIAAoAgQgBCACGyIAIAAgAUsiBBsQswQiAkF/IAQgACABSRsgAhshBSADQRBqJAAgBUEfdgs2ACAALAALQQBIBEAgACgCABAMCyAAIAEpAgA3AgAgACABKAIINgIIIAFBADoACyABQQA6AAALMwEBfyACBEAgACEDA0AgAyABLQAAOgAAIANBAWohAyABQQFqIQEgAkEBayICDQALCyAACykBAX8gAgRAIAAhAwNAIAMgAToAACADQQFqIQMgAkEBayICDQALCyAACyoBAX8CQCAAEA0iAiABSQRAIAAgASACaxDlCQwBCyAAIAAQICABEPcJCwsSACAAEJABBEAgACgCAA8LIAALCQAgABAgIAFqCwoAIAAoAgAQzAQLPgAgAEEANgIIIABCADcCACAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAALkAEBBX8CQCAAKAIEIgUgAC0ACyICIALAIgZBAEgbIAEoAgQgAS0ACyIEIATAIgRBAEgbRw0AIAEoAgAgASAEQQBIGyEBIAZBAE4EQANAIAJFIQMgAkUNAiAALQAAIAEtAABHDQIgAUEBaiEBIABBAWohACACQQFrIQIMAAsACyAAKAIAIAEgBRCzBEUhAwsgAwsMACAAIAFBHGoQiwoLGwEBfyMAQRBrIgEkACAAEO8KIAFBEGokACAACxsBAX9BCiEBIAAQkAEEfyAAEJgCQQFrBUEKCwt1AQF+IAAgASAEfiACIAN+fCADQiCIIgIgAUIgiCIEfnwgA0L/////D4MiAyABQv////8PgyIBfiIFQiCIIAMgBH58IgNCIIh8IAEgAn4gA0L/////D4N8IgFCIIh8NwMIIAAgBUL/////D4MgAUIghoQ3AwALEwAgAEE4ahDJASAAQRhqEEQgAAsLACAAQbjZABDWCQuLAgIDfwJ+AkAgACkDcCIEUEUgBCAAKQN4IAAoAgQiASAAKAIsIgJrrHwiBVdxRQRAIwBBEGsiAiQAQX8hAQJAIAAQggsNACAAIAJBD2pBASAAKAIgEQUAQQFHDQAgAi0ADyEBCyACQRBqJAAgASIDQQBODQEgACgCBCEBIAAoAiwhAgsgAEJ/NwNwIAAgATYCaCAAIAUgAiABa6x8NwN4QX8PCyAFQgF8IQUgACgCBCEBIAAoAgghAgJAIAApA3AiBFANACAEIAV9IgQgAiABa6xZDQAgASAEp2ohAgsgACACNgJoIAAgBSAAKAIsIgAgAWusfDcDeCAAIAFPBEAgAUEBayADOgAACyADC3IBA38CQCABEOkJIgIgABCvBiIDTQRAIAAQICIDIAEgAkECdCIEEFcaIwBBEGsiASQAIAAgAhC4AiABQQA2AgwgAyAEaiABQQxqEIsBIAFBEGokAAwBCyAAIAMgAiADayAAEA0iAEEAIAAgAiABEOQJCwsJACAAIAEQlwULEAAgABDhCiABEOEKc0EBcwsQACAAEOIKIAEQ4gpzQQFzC3gCA38BfSMAQRBrIgIkACAAQQFBwAAgAC0AHmt0IgE2AhAgACABEOgGNgIMIAAoAhAiAUGAgICAeEYhAyAAQYCAgIB4An8gACoCGCABs5QiBEMAAIBPXSAEQwAAAABgcQRAIASpDAELQQALIAMbNgIUIAJBEGokAAtgAgF/AX4DQCAAKAIMIAJBA3RqIgMoAgAEQCADKQIAIQQgAyABKQIANwIAIAEgBDcCACABIASnQYACajYCACACQQFqIgJBACACIAAoAhBHGyECDAELCyADIAEpAgA3AgALEQAgAC0ADARAIAAQChoLIAALaAEGfyMAQRBrIgMkACAAQSBqIQQgAUEgaiEFA0ACQCABIAVGDQBBASECIAAgBEYNACAALQAAIgYgAS0AACIHSQ0AQQAhAiAGIAdLDQAgAUEBaiEBIABBAWohAAwBCwsgA0EQaiQAIAILAgAL7wIBBn9B0MgCLQAABEBBzMgCKAIADwsjAEEgayICJAACQAJAA0AgAkEIaiIEIABBAnQiA2oCf0EBIAB0Qf////8HcSIFQQFyRQRAIAMoAgAMAQsgAEH/zQBBqNgAIAUbENUKCyIDNgIAIANBf0YNASAAQQFqIgBBBkcNAAtBABDUCkUEQEH45wEhASAEQfjnAUEYEOkDRQ0CQZDoASEBIARBkOgBQRgQ6QNFDQJBACEAQaTHAi0AAEUEQANAIABBAnRB9MYCaiAAQajYABDVCjYCACAAQQFqIgBBBkcNAAtBpMcCQQE6AABBjMcCQfTGAigCADYCAAtB9MYCIQEgAkEIaiIAQfTGAkEYEOkDRQ0CQYzHAiEBIABBjMcCQRgQ6QNFDQJBGBBHIgFFDQELIAEgAikCCDcCACABIAIpAhg3AhAgASACKQIQNwIIDAELQQAhAQsgAkEgaiQAQdDIAkEBOgAAQczIAiABNgIAIAELDQAgACkDACABKQMAVAtAAQJ/IwBBEGsiASQAIAAtABAiAkH/AUcEQCABQQ9qIAAgAkECdEGUCGooAgARAAALIABB/wE6ABAgAUEQaiQAC08BAX8gASgCECICRQRAIABBADYCECAADwsgASACRgRAIAAgADYCECABKAIQIgEgACABKAIAKAIMEQAAIAAPCyAAIAI2AhAgAUEANgIQIAALwwoCBX8RfiMAQeAAayIFJAAgBEL///////8/gyEMIAIgBIVCgICAgICAgICAf4MhCiACQv///////z+DIg1CIIghDiAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIgtCgICAgICAwP//AFQgC0KAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEKDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQogAyEBDAILIAEgC0KAgICAgIDA//8AhYRQBEAgAiADhFAEQEKAgICAgIDg//8AIQpCACEBDAMLIApCgICAgICAwP//AIQhCkIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQCABIAuEIRlCACEBIBlQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rEGhBECAGayEGIAUpA1giDUIgiCEOIAUpA1AhAQsgAkL///////8/Vg0AIAVBQGsgAyAMIAMgDCAMUCIIG3kgCEEGdK18pyIIQQ9rEGggBiAIa0EQaiEGIAUpA0ghDCAFKQNAIQMLIANCD4YiC0KAgP7/D4MiAiABQiCIIgR+IhAgC0IgiCITIAFC/////w+DIgF+fCIPQiCGIhEgASACfnwiCyARVK0gAiANQv////8PgyINfiIVIAQgE358IhEgDEIPhiISIANCMYiEQv////8PgyIDIAF+fCIUIA8gEFStQiCGIA9CIIiEfCIPIAIgDkKAgASEIgx+IhYgDSATfnwiDiASQiCIQoCAgIAIhCICIAF+fCIQIAMgBH58IhJCIIZ8Ihd8IQEgByAJaiAGakH//wBrIQYCQCACIAR+IhggDCATfnwiBCAYVK0gBCAEIAMgDX58IgRWrXwgAiAMfnwgBCAEIBEgFVStIBEgFFatfHwiBFatfCADIAx+IgMgAiANfnwiAiADVK1CIIYgAkIgiIR8IAQgAkIghnwiAiAEVK18IAIgAiAQIBJWrSAOIBZUrSAOIBBWrXx8QiCGIBJCIIiEfCICVq18IAIgAiAPIBRUrSAPIBdWrXx8IgJWrXwiBEKAgICAgIDAAINQRQRAIAZBAWohBgwBCyALQj+IIRogBEIBhiACQj+IhCEEIAJCAYYgAUI/iIQhAiALQgGGIQsgGiABQgGGhCEBCyAGQf//AU4EQCAKQoCAgICAgMD//wCEIQpCACEBDAELAn4gBkEATARAQQEgBmsiB0H/AE0E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AgggBiABNgIMIAEgADYCDCABIAY2AggLQcjBAiAENgIAQbzBAiADNgIACyACQQhqIQALIApBEGokACAACwIAC1oBAn8jAEEQayIBJAAgAEIANwIAIABBPjoAHiAAQc2Zs/oDNgIYIABCADcCECAAQgA3AgggABAwIAAoAgwiAgRAIAJBACAAKAIQQQN0EB4aCyABQRBqJAAgAAskAQF/IAAoAgQgAC0ACyICIALAQQBIG60gARAUIAEgABDqARoLCgAgACgCABD0CgsLACAAKAIAEPoKwAsgAQF/IAAoAgwiAQRAIAEQDCAAQQA2AgwLIABCADcCEAuwAQICfwF+IwBBIGsiAiQAIAJBEGogARAQAkAgAi0AGEUEQCAAQQA6AAwgAEEAOgAADAELIAIpAxAiBCABKAIEIgOtVgRAIABBADoADCAAQQA6AAAMAQsgASADIASnIgNrNgIEIAEgASgCACIBIANqNgIAIAIgASADEEMgACACKAIINgIIIAAgAikDADcCACACQQA2AgggAkIANwMAIABBAToADCACEAoaCyACQSBqJAALBAAgAAsJACAAQQEQ/wILBABBAAskAQF/IAAoAgAhAiAAIAE2AgAgAgRAIAIgABCYAygCABEBAAsLNwEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIABEAgABC8CCABKAIMKAIAEAwLIAFBEGokAAswAQF/IAAoAgQiAiAAKAIISQRAIAIgASkDADcDACAAIAJBCGo2AgQPCyAAIAEQuQYLDQAgACgCABDzChogAAsNACAAKAIAEPkKGiAAC0oBAX8gACABSQRAIAAgASACEB0PCyACBEAgACACaiEDIAEgAmohAQNAIANBAWsiAyABQQFrIgEtAAA6AAAgAkEBayICDQALCyAAC0wBAX4gACkDACECIAAgASkDADcDACABIAI3AwAgACkDCCECIAAgASkDCDcDCCABIAI3AwggACkDECECIAAgASkDEDcDECABIAI3AxALYgEDfyMAQRBrIgIkACAAQSBqIQMDQCAAIANHBEAgAC0AACEEIAAgAS0AADoAACABIAQ6AAAgAUEBaiEBIABBAWohAAwBCwsgAiABNgIMIAIgAzYCCCACKAIMGiACQRBqJAALGAAgAEHUAGoQChogAEHIAGoQDxogABAKCyYBAX4gACgC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CyABKAIAIARBBHRqIQRBAQs6AAQgACAENgIAIAVBEGokAAtZAQJ/IABB/wE6ABggAEEAOgAAIwBBEGsiAiQAIAAQRCABLQAYIgNB/wFHBEAgAkEPaiAAIAEgA0ECdEG0CGooAgARBAAgACABLQAYOgAYCyACQRBqJAAgAAu4AgEIfyMAQRBrIgMkACADIAE2AgwgAUHv////B00EQAJAIAAQJyABTw0AIAMgABANNgIIIANBDGogA0EIahC/AigCABC+AiIBIAAQJ0YNACMAQRBrIgIkACAAECchBSAAEA0hBgJAAn8gARDjAyIJBEBBASEEIAFBAWohByAAIQEgACgCAAwBCyABQQFqIQQCfyABIAVLBEAgAkEIaiAAIAQQlwIgAigCCCEBIAIoAgwMAQsgAkEIaiAAIAQQlwIgAigCCCIBRQ0CIAIoAgwLIQcgABCQASEEIAAQIAshCCABIAggABANQQFqEJsBIAQEQCAAIAggBUEBahDfBAsCQCAJRQRAIAAgBxCZASAAIAYQbSAAIAEQmgEMAQsgACAGEHcLCyACQRBqJAALIANBEGokAA8LEGwAC78BAQN/IAAtAABBIHFFBEACQCABIQMCQCACIAAiASgCECIABH8gAAUgARCBCw0BIAEoAhALIAEoAhQiBWtLBEAgASADIAIgASgCJBEFABoMAgsCQCABKAJQQQBIDQAgAiEAA0AgACIERQ0BIAMgBEEBayIAai0AAEEKRw0ACyABIAMgBCABKAIkEQUAIARJDQEgAyAEaiEDIAIgBGshAiABKAIUIQULIAUgAyACEB0aIAEgASgCFCACajYCFAsLCwsRACAAIAEgACgCACgCHBEDAAsRACAAIAEQEiIAQQE6ABAgAAuhAQECfwJAIAAQDUUgAiABa0EFSHINACABIAIQ1AQgAkEEayEEIAAQICICIAAQDWohBQJAA0ACQCACLAAAIQAgASAETw0AIABBAEwgAEH/AE5yRQRAIAEoAgAgAiwAAEcNAwsgAUEEaiEBIAIgBSACa0EBSmohAgwBCwsgAEEATCAAQf8ATnINASACLAAAIAQoAgBBAWtLDQELIANBBDYCAAsLbQEBfyMAQYACayIFJAAgBEGAwARxIAIgA0xyRQRAIAUgAUH/AXEgAiADayIDQYACIANBgAJJIgEbEB4aIAFFBEADQCAA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lQYQugQLBSADQfgAaiACEK4CIAJByABqIQIMAQsLCwUgBSACEKgEIAJB8ABqIQIMAQsLIANBCGogCCgCEEHwAGsQPSEIIAYQrgggAyADKAKIASADKAKEAWtB8ABtrSIBNwOwASADKAJ8IQYgAygCeCECA0AgAiAGRwRAIAMgASACKQM4fCIBNwOwASACQcgAaiECDAELCyAJIApByABsIgZqIgIgAikDOCABQn+FfDcDOCAEENsCIANB+ABqIgIQ2wIgACAAKAIAIAZqQcgAaiACENEHIABBDGogACgCDCAKQfAAbGogCBDBASAIECkaIAIQXRogA0HAAWokAAtoAgF/BH4jAEEgayIBJAAgAUEQaiAAKQMAQgBC6drg2Y7B+u+df0IAECggASAAKQMIIAEpAxggASkDEIV8QgBC6drg2Y7B+u+df0IAECggASkDCCEFIAEpAwAhBCABQSBqJAAgBSAEhQsMACAAIAFByAgQ1AkLjgEAIAAgASkDADcDACAAIAEoAgg2AgggAUIANwMAIAFBADYCCCAAQRBqIAFBEGpBOBAdGiAAQcgAaiABQcgAahAjGiAAIAEoAlw2AlwgACABKQJUNwJUIAFCADcCVCABQQA2AlwgACABKQN4NwN4IAAgASkDcDcDcCAAIAEpA2g3A2ggACABKQNgNwNgIAALnwECA34EfyABKAIEIQUgAAJ/AkADQCAFRSAEIgJCP1ZyDQEgASgCACIILQAAIgZB/wBxIgdFIAJCP1JyRSAHQf8AR3ENASABIAVBAWsiBTYCBCABIAhBAWo2AgAgAkIHfCEEIAetIAKGIAOEIQMgBsBBAEgNAAsgACADQoB/IAKGQgAgBkHAAHEbhDcDAEEBDAELIABBADoAAEEACzoACAvGCQIEfwZ+IwBB8ABrIgYkACAEQv///////////wCDIQkCQAJAIAFQIgUgAkL///////////8AgyIKQoCAgICAgMD//wB9QoCAgICAgMCAgH9UIApQG0UEQCADQgBSIAlCgICAgICAwP//AH0iC0KAgICAgIDAgIB/ViALQoCAgICAgMCAgH9RGw0BCyAFIApCgICAgICAwP//AFQgCkKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEEIAEhAwwCCyADUCAJQoCAgICAgMD//wBUIAlCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhBAwCCyABIApCgICAgICAwP//AIWEUARAQoCAgICAgOD//wAgAiABIAOFIAIgBIVCgICAgICAgICAf4WEUCIFGyEEQgAgASAFGyEDDAILIAMgCUKAgICAgIDA//8AhYRQDQEgASAKhFAEQCADIAmEQgBSDQIgASADgyEDIAIgBIMhBAwCCyADIAmEUEUNACABIQMgAiEEDAELIAMgASABIANUIAkgClYgCSAKURsiCBshCiAEIAIgCBsiC0L///////8/gyEJIAIgBCAIGyICQjCIp0H//wFxIQcgC0IwiKdB//8BcSIFRQRAIAZB4ABqIAogCSAKIAkgCVAiBRt5IAVBBnStfKciBUEPaxBoIAYpA2ghCSAGKQNgIQpBECAFayEFCyABIAMgCBshAyACQv///////z+DIQQgB0UEQCAGQdAAaiADIAQgAyAEIARQIgcbeSAHQQZ0rXynIgdBD2sQaEEQIAdrIQcgBikDWCEEIAYpA1AhAwsgBEIDhiADQj2IhEKAgICAgICABIQhASAJQgOGIApCPYiEIQ4gAiALhSENAn4gA0IDhiICIAUgB0YNABogBSAHayIHQf8ASwRAQgAhAUIBDAELIAZBQGsgAiABQYABIAdrEGggBkEwaiACIAEgBxDGAiAGKQM4IQEgBikDMCAGKQNAIAYpA0iEQgBSrYQLIQkgDkKAgICAgICABIQhDCAKQgOGIQoCQCANQgBTBEBCACEDQgAhBCAJIAqFIAEgDIWEUA0CIAogCX0hAiAMIAF9IAkgClatfSIEQv////////8DVg0BIAZBIGogAiAEIAIgBCAEUCIHG3kgB0EGdK18p0EMayIHEGggBSAHayEFIAYpAyghBCAGKQMgIQIMAQsgCSAKfCICIAlUrSABIAx8fCIEQoCAgICAgIAIg1ANACAJQgGDIARCP4YgAkIBiISEIQIgBUEBaiEFIARCAYghBAsgC0KAgICAgICAgIB/gyEBIAVB//8BTgRAIAFCgICAgICAwP//AIQhBEIAIQMMAQtBACEHAkAgBUEASgRAIAUhBwwBCyAGQRBqIAIgBCAFQf8AahBoIAYgAiAEQQEgBWsQxgIgBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIAKnQQdxIgVBBEutIARCPYYgAkID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zgEBBH8jAEEQayIIJAACQCAARQRADAELIAQoAgwhByACIAFrIglBAEoEQCAAIAEgCSAAKAIAKAIwEQUAIAlHDQELIAcgAyABayIBa0EAIAEgB0gbIgFBAEoEQCAIQQRqIgcgASAFEMIEIAAgCCgCBCAHIAgsAA9BAEgbIAEgACgCACgCMBEFACEFIAcQChogASAFRw0BCyADIAJrIgFBAEoEQCAAIAIgASAAKAIAKAIwEQUAIAFHDQELIARBADYCDCAAIQYLIAhBEGokACAGC2IBAn8jAEEgayICJAACQCABIAAoAgggACgCACIDa0EDdUsEQCABQYCAgIACTw0BIAAgAkEMaiABIAAoAgQgA2tBA3UgAEEIahC8AiIAELIGIAAQuwILIAJBIGokAA8LEAEACzsBAX8gACAGNgIAAkACQCAAKAIEIgcEQCAHKAIAIAVHDQEgB0EAEPcBCwwBCyAEIAMgAiABEAAACyAAC04BAX8gACgCBCICIAAoAghHBEAgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAAgAkEgajYCBA8LIAAgARCaBgsLACAAIAE2AgAgAAsVACAAIAEgAiADQcgAQeTxuBwQzQELDwAgACAAKAIAKAIkEQIACxEAIAAgASABKAIAKAIgEQAACxEAIAAgASABKAIAKAIsEQAACwwAIABBgoaAIDYAAAscACAAIAFB4P///wdBBEH///8/QYCAgMAAEP0CCxEAIAAQICAAEA1BAnRqELEGCw4AIAAQICAAEA1qELEGCxYAIAAgASACIAMgACgCACgCIBEHABoLEAAgAEEgRiAAQQlrQQVJcgsZACACQQEQ4wohASAAIAI2AgQgACABNgIACw4AIAAoAghB/////wdxCxIAIAEgASACQQJ0aiAAEOoKGgsOACAAIAEpAwA3AwAgAAtKAQF/IABBADYCDCAAIAM2AhAgAQRAIAEQggwhBAsgACAENgIAIAAgBCACQQR0aiICNgIIIAAgBCABQQR0ajYCDCAAIAI2AgQgAAsSACAALQAoBEAgAEEIahCDAQsLZgECfyAAQf8BOgAYIABBADoAACMAQRBrIgIkACAAEIMBIAEtABgiA0H/AUcEQCACQZjaACkDADcDCCACQQdqIAAgASACQQhqIANBAnRqKAIAEQQAIAAgAS0AGDoAGAsgAkEQaiQACw4AIAAgARDMBUEBOgB4Cz0BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQUBqIgE2AgggARCUARoMAQsLIAAoAgAiAARAIAAQDAsLFAAgACABIAIgA0EGQYCAgCAQ2gkLEAAgAC0AEEUEQBAZAAsgAAsgAQF/IAAtADBBAkYEfyAAQRBqEKUBLQAQQQVGBUEACwsNACAAIAFByNkAENcJC8ABAgR/A34jAEEgayIEJAAgASgCACEGIAQgASgCBCABLQALIgUgBcBBAEgiBxsiBTYCHCAEIAYgASAHGzYCGANAIAUEQCAEIARBGGoQECAEIAQpAwAgA0IAIAIgCFEbfCIJNwMQAkAgACgCBCAAKAIAIgFrQQN1rSAIVgRAIAEgCKdBA3RqIgEgCSABKQMAIgogCSAKVhs3AwAMAQsgACAEQRBqEKMBCyAIQgF8IQggBCgCHCEFDAELCyAEQSBqJAALRwECfyMAQRBrIgIkACACIAE3AwggACABpxDEASIDIAMpAxBCAX0iATcDECABUARAIAIgAEEYaiACQQhqEJ8BCyACQRBqJAAL4QICB38BfiMAQTBrIgEkACAALQAhRQRAIABBAWohAyABQQA2AiggAUIANwMgQgEgAUEgahAUA0AgAC0AACECIAAoAjQgACgCMCIEa0Esba0gCFgEQAJAIAJFDQAgACgCKCICQQRrLQAARQ0AIAJBQGoQpgIgAUEgaiAAKAIoQT9rQSAQcxoLIAEgASgCICABQSBqIAEsACsiAkEASCIEGyABKAIkIAJB/wFxIAQbrRD0AiAALQAhIQcgAyABKQAYNwAYIAMgASkAEDcAECADIAEpAAg3AAggAyABKQAANwAAIAdFBEAgAEEBOgAhCyABQSBqEAoaBSAIpyEFAkAgAkUNACAFQQZ0IgIgACgCJGoiBi0APEUNACAGEKYCIAFBIGogACgCJCACakEBakEgEHMaIAAoAjAhBAsgAUEgaiAEIAVBLGxqQQxqQSAQcxogCEIBfCEIDAELCwsgAUEwaiQACw4AIABBGGoQDxogABAPCzEBAn4Cf0EBIAApAwAiAiABKQMAIgNUDQAaQQAgAiADVg0AGiAAQQhqIAFBCGoQGwsLhwEBBH8jAEEQayICJAACQCAALQDgBkUNACAAQcAGaiEDIABB5AZqIQQgASgCBCEFIAEoAgAhAANAIAAgBUYNAQJAIAAoAgAiASkDmAFQRQRAIAJBCGogBCABQZgBahCfAQwBCyACQQhqIAMgAUGQAWoQnwELIABBBGohAAwACwALIAJBEGokAAsbAQF/IAAgARDaBSECIAFBEGoQ1gUgARAMIAIL9QEBBH8jAEEQayIEJAAgBCABNgIMIAAoAogDBEAgAEH4AmogASgCuAMQ5gELIABBvANqIgMgBEEMahDDAyIBIAAoAsADRwRAIABBsANqIAEoAgQQpgQgAyABEIoJCyACKAIEIQUgAigCACEAA0AgACAFRgRAIARBEGokAAUgACgCACIBIAQoAgwiAygCuAMQvgMhAiABKAKEASACQdACbGohASMAQRBrIgIkACACIAM2AgwgAUGkAmoiBiACQQxqEMMDIgMgASgCqAJHBEAgAUGYAmogAygCBBCmBCAGIAMQigkLIAJBEGokACAAQQRqIQAMAQsLCw8AIAAgARCSCUEBOgDAAQtNACAAAn8gAS0APEUEQCAAQQA6AABBAAwBCyABEKYCIAAgASkAATcAACAAIAEpABk3ABggACABKQARNwAQIAAgASkACTcACEEBCzoAIAuBAQECfyAAKAIEIAAoAghJBEAgACABEMQJDwsjAEEgayIDJAAgA0EMaiAAIAAoAgQgACgCAGtByABtQQFqEMwDIAAoAgQgACgCAGtByABtIABBCGoQjQIiAigCCCABEGoaIAIgAigCCEHIAGo2AgggACACEPsJIAIQvgQgA0EgaiQACwsAIABB2NgAENcDC40CAgN/AX4jAEEwayIBJAAgAEEIaiECAkACQAJAAkACQCAALQAgQQJrDgQAAwECBAsgACgCACICKAIEIAItAAsiAiACwEEASBtFDQMgACAAKQMIEOwBDAMLIAFBADYCLCABQgA3AiQgAUEkaiIDIAIQVCABIAEoAiQ2AhggASkCKCEEIAFBADYCLCABIAQ3AhwgAUIANwIkIAAgAUEYaiIAENADIAAQDxogAxAPGgwCCyAAIAIgACkDEBCIBgwBCyAAQRBqIAIQVCABIAAoAhA2AgwgASAAKAIUNgIQIAEgACgCGDYCFCAAQQA2AhggAEIANwMQIAAgAUEMaiIAENADIAAQDxoLIAFBMGokAAuTBAIEfwF+IwBBQGoi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ASgCAEEMaygCAGooAkgiAQRAIwBBEGsiAiQAIAEgASgCAEEMaygCAGooAhgEQCACQQhqIAEQwwIaAkAgAi0ACEUNACABIAEoAgBBDGsoAgBqKAIYEPsKQX9HDQAgASABKAIAQQxrKAIAakEBEMQCCyACQQhqEMICCyACQRBqJAALIABBAToAAAsgAAsJACAAIAEQtAkLCAAgAEH/AXELUAEBfgJAIANBwABxBEAgAiADQUBqrYghAUIAIQIMAQsgA0UNACACQcAAIANrrYYgASADrSIEiIQhASACIASIIQILIAAgATcDACAAIAI3AwgL2wECAX8CfkEBIQQCQCAAQgBSIAFC////////////AIMiBUKAgICAgIDA//8AViAFQoCAgICAgMD//wBRGw0AIAJCAFIgA0L///////////8AgyIGQoCAgICAgMD//wBWIAZCgICAgICAwP//AFEbDQAgACAChCAFIAaEhFAEQEEADwsgASADg0IAWQRAQX8hBCAAIAJUIAEgA1MgASADURsNASAAIAKFIAEgA4WEQgBSDwtBfyEEIAAgAlYgASADVSABIANRGw0AIAAgAoUgASADhYRCAFIhBAsgBAsoACAAQRFPBEBBi88AQZHHAEHwCUGdChAAAAsgAEECdEGg2AFqKAIACxQAIAEoAgAgACgCCCAAKAIEEQAAC6gCAQJ/IAYoAgQhCCAGLQALIQcgAEEANgIIIABCADcCACAAQRNBEiABGyAIIAcgB8BBAEgbahBhIABB6zEQ6gMgACACEOoDAkAgAUUEQCAAIAMQ7gsgACAEEO0LIAAgBRDqAwwBCyAAIAQQ7QsjAEEQayIBJAAgASAFNgIMIAAgAUEMakEEEHMaIAFBEGokAAsgBigCBCAGLQALIgEgAcBBAEgbrSIEpyEBAkAgBEL//wFYBEAgACABQf//A3EQ6gMMAQsgACABQYCAAnJB//8DcRDqAyAEQg+IIQQDQCAEUA0BIAAgBKdB/wBxIARC/wBWQQd0chDuCyAEQgeIIQQMAAsACyAAIAYoAgAgBiAGLQALIgDAQQBIIgEbIAYoAgQgACABGxBzGgu5BAELfyMAQeABayIDJAAgAC0AhANFBEAgAEEBIAAtAGRBAWpB/wFxIgEgAUEBTRs6AGQLIABBADsBNCAAQYgDaiEIIANBtAFqEPMEIQkCfyADQagBaiIBIABB2ABqIgIoAgA2AgAgASACKAIEIgQ2AgQgASACKAIIIgU2AgggAUEEaiEGIAVFBEAgASAGNgIAIAEMAQsgBCAGNgIIIAJCADcCBCACIAJBBGo2AgAgAQsiBkEEaiEEIAYoAgAhAiADQRxqIQUDQAJAIAIgBEYEQCADQQxqIgFBADYCCCABIAE2AgQgASABNgIAIAAoAlQiBQRAIAAoAlAiBCgCACIHIAAoAkwiAigCBDYCBCACKAIEIAc2AgAgASgCACIHIAQ2AgQgBCAHNgIAIAEgAjYCACACIAE2AgQgASABKAIIIAVqNgIIIABBADYCVAsgASgCBCECIANBHGohBANAIAEgAkYNAiACLwEIIQBBAhAXBEAgBBATIQogA0ECNgIYIAogCBARQa7WABAOIAAQbhogA0EYahAWCyADQRhqIAJBGGoQOCEAIAMoAigEQCAAQeUAIAkQ8QQLIAAQFRogAigCBCECDAALAAtBAhAXBEAgBRATIQsgA0ECNgIYIAsgCBARQZTWABAOIAIpAxAQgQEaIANBGGoQFgsgA0EYaiACQShqEDghASADKAIoBEAgAUHlACAJEPEECyABEBUaIAIQtQEhAgwBCwsgARDyCyAGEPELIANB4AFqJAALmAEBAn8CQCAAKAIEIAAoAghJBEAgACAAKAIEIAEoAgAQC0EMajYCBAwBCyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0EMbUEBahDSAyAAKAIEIAAoAgBrQQxtIABBCGoQ+wIiAigCCCABKAIAEAsaIAIgAigCCEEMajYCCCAAIAIQvAQgAhC7BCADQSBqJAALIAAoAgQaCwkAIABBEBD+AgsdACAAIAFB8P///wdBA0H/////AEGAgICAARD9AgsHACAAKAIEC+IBAQZ/IAAoAgAgACAALQALIgPAQQBIIgQbIQIgAiAAKAIEIAMgBBtqIQUjAEEQayIEJAAgBSACayIBIQMDQCADQQRPBEAgAigAAEGV08feBWwiAEEYdiAAc0GV08feBWwgAUGV08feBWxzIQEgA0EEayEDIAJBBGohAgwBCwsCQAJAAkACQCADQQFrDgMCAQADCyACLQACQRB0IAFzIQELIAItAAFBCHQgAXMhAQsgASACLQAAc0GV08feBWwhAQsgAUENdiABc0GV08feBWwiAEEPdiAAcyEGIARBEGokACAGC2MBAX8gAEGI3AA2AgAgACgCBCEBAkAgAC0AIARAAkAgAQRAIAEoAgBBkJYBRw0BIAFBABD3AQsMAgtB+hhB+8cAQZwDQc/BABAAAAsgARAMCyAAQRRqEAoaIABBCGoQChogAAshACAAQQA6ACggAEEAOgAAIAEtACgEQCAAIAEQ7gYLIAALzQECBH8BfiMAQZABayIDJAACQCAALQBADQAgACgCACABIAIQpAMNACADQQA6AIgBIANB8ABqIQQCQCACLQAQQQFGBEAgAyACKAIINgJgIAMgAikCADcDWCACQgA3AgAgAkEANgIIIANBOGogBBBgIQUgACABIANB2ABqIgAgA0EwakEAEIsFIAUQRCAAEAoaDAELIAIQsgEpAwAhByADQRBqIAQQYCEGIAAgASAHIANBCGpBABCKBSAGEEQLIANB8ABqEEQLIANBkAFqJAALeAECfiACKQMAIQMCfwJAIAEpAwAiBCAAKQMAWgRAQQAgAyAEWg0CGiABIAIQXkEBIAEpAwAgACkDAFoNAhogACABEF4MAQsgAyAEVARAIAAgAhBeQQEPCyAAIAEQXkEBIAIpAwAgASkDAFoNARogASACEF4LQQILC3gBAn4gAikDACEDAn8CQCABKQMAIgQgACkDAFoEQEEAIAMgBFoNAhogASACEFhBASABKQMAIAApAwBaDQIaIAAgARBYDAELIAMgBFQEQCAAIAIQWEEBDwsgACABEFhBASACKQMAIAEpAwBaDQEaIAEgAhBYC0ECCwtqAQJ/IAEgABAzIQQgAiABEDMhAwJ/AkAgBEUEQEEAIANFDQIaIAEgAhBZQQEgASAAEDNFDQIaIAAgARBZDAELIAMEQCAAIAIQWUEBDwsgACABEFlBASACIAEQM0UNARogASACEFkLQQILCwcAIAEQChoLIQEBfyABKAKwAyIEIAQoAgA2AgQgACABIAQgAiADEKAFC04BAX8gACgCBCICIAAoAghJBEAgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAAgAkEgajYCBA8LIAAgARCaBgt/AQJ/IAAoAgQgACgCCEkEQCAAIAEQgQgPCyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0EGdUEBahCrAyAAKAIE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AgRAIAYpA4ADIRYCfyADLQAwBEAgBkEAOgAwIAYgFjcDICACIAcgBkEgaiIFIAMQqwggBQwBCyAGQQA6ABggBiAWNwMIIAIgByAGQQhqIgMQqgggAwsQKgsgBikDOCAGKQNAhFANACAAIAZBOGoQsAMLIA4QOgsgB0GAAWohBwwBCwsLIAZB5AJqEKEBQQAhBwsgBkGABGokACAHC4oBAQJ/IAAoAgQgACgCCEkEQCAAIAAoAgQgARDKBUEcajYCBA8LIwBBIGsiAyQAIANBDGogACAAKAIEIAAoAgBrQRxtQQFqEMkFIAAoAgQgACgCAGtBHG0gAEEIahC0AyICKAIIIAEQygUaIAIgAigCCEEcajYCCCAAIAIQsgggAhCxCCADQSBqJAALFAAgACABIAIgA0EHQYCAgBAQ2gkLCQAgAEEYEL8EC7IBAQN/IAAoAgQhAiAAKAIAIQQgASgCBCEDA0AgAiAERwRAIANBGGsiAyACQRhrIgIpAwA3AwAgAyACKAIINgIIIAJCADcDACACQQA2AgggAyACKQMQNwMQDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIAC5AIAgt/An4jAEGgAWsiAyQAIANBADYCACMAQRBrIggkACABEEEiDadB/wFxQYACciEJIA0gAEE4aiICMQAeiKchCwNAAkACQAJAIAIoAgwgC0EDdGoiBSgCACIEIAlGBEAgASACKAIAIAUoAgRBGGxqECRFDQIgAigCACECIAUoAgQhASADQQA6AJwBIAMgAiABQRhsajYCmAEMAQsgBCAJTw0BIAggATYCDCAIIAM2AgggCEEMaiEGIAhBCGohASMAQRBrIgckAAJAIAIoAgQiBSACKAIISQRAIAEoAgAhASAFIAYoAgAiBCkCADcCACAFIAQoAgg2AgggBEIANwIAIARBADYCCCAFIAE0AgA3AxAgAiAFQRhqNgIEDAELIwBBIGsiBSQAIAVBDGogAiACKAIEIAIoAgBrQRhtQQFqEIcBIAIoAgQgAigCAGtBGG0gAkEIahByIQogASgCACEBIAooAggiBCAGKAIAIgYpAgA3AgAgBCAGKAIINgIIIAZCADcCACAG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IAUQnwIgBEEgaiQACyACKAIEGiADIAMpAIgBNwMIIAMgAykAkAE3AxAgAyADKQCYATcDGCADIAMpAIABNwMAIAAgAy0AfCABIAMQugUaIAYQvAMLIANBoAFqEAoaIANBsAFqJAALZgECfyMAQRBrIgMkACAAIAEoAgQgAS0ACyIAIADAQQBIGyIAQQFqEIkJIgQoAgAgBCAELAALQQBIGyABKAIAIAEgASwAC0EASBsgABBXIABqIgAgAjoAACAAQQA6AAEgA0EQaiQACxAAIAAtAMABBEAgABDoAQsLjQMBBH8jAEEQayIDJAAgASAAEBshBSACIAEQGyEEAn8CQCAFRQRAQQAgBEUNAhogAyABKAIINgIIIAMgASkCADcDACABIAIoAgg2AgggASACKQIANwIAIAIgAygCCDYCCCACIAMpAwA3AgBBASABIAAQG0UNAhogAyAAKAIINgIIIAMgACkCADcDACAAIAEoAgg2AgggACABKQIANwIAIAEgAygCCDYCCCABIAMpAwA3AgAMAQsgBARAIAMgACgCCDYCCCADIAApAgA3AwAgACACKAIINgIIIAAgAikCADcCACACIAMoAgg2AgggAiADKQMANwIAQQEMAgsgAyAAKAIINgIIIAMgACkCADcDACAAIAEoAgg2AgggACABKQIANwIAIAEgAygCCDYCCCABIAMpAwA3AgBBASACIAEQG0UNARogAyABKAIINgIIIAMgASkCADcDACABIAIoAgg2AgggASACKQIANwIAIAIgAygCCDYCCCACIAMpAwA3AgALQQILIQYgA0EQaiQAIAYLCwAgASAAQSAQcxoLigoBJn8jAEHwAGsiBCQAIARBIGpBAEHMAPwLACAEQSA2AmwgBEKrs4/8kaOz8NsANwIYIARC/6S5iMWR2oKbfzcCECAEQvLmu+Ojp/2npX83AgggBELnzKfQ1tDrs7t/NwIAAkAgAqciA0UNACAEIANBA3Q2AiAgBCADQR12NgIkAkAgA0HAAEkEQCADIQUMAQsgBCABIANBBnYQ1gYgA0E/cSIFRQ0BIAEgA0FAcWohAQsgBCAFNgJoIARBKGogASAF/AoAAAsgAEGQwQIgABsiKCEDIAQiAEEoaiIFIAAoAmgiAWpBgAE6AABBASEHIAFBAWoiBkE5TwRAIAUgBmpBAEE/IAFr/AsA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QRBrIgUkACABEOkJIQIjAEEQayIDJAACQCACQe////8DTQRAAkAgAhDGBARAIAAgAhB3IAAhBAwBCyADQQhqIAAgAhCBA0EBahCAAyADKAIMGiAAIAMoAggiBBCaASAAIAMoAgwQmQEgACACEG0LIAQgASACEJkCIANBADYCBCAEIAJBAnRqIANBBGoQiwEgA0EQaiQADAELEGwACyAFQRBqJAALxwEBBn8jAEEQayIEJAAgABCYAygCACEFAn8gAigCACAAKAIAayIDQf////8HSQRAIANBAXQMAQtBfwsiA0EEIAMbIQMgASgCACEGIAAoAgAhByAFQYYERgR/QQAFIAAoAgALIAMQ5wQiCARAIAVBhgRHBEAgABDRBBoLIARBhQQ2AgQgACAEQQhqIAggBEEEahBGIgUQngogBRBFIAEgACgCACAGIAdrajYCACACIAAoAgAgA0F8cWo2AgAgBEEQaiQADwsQGQALEwAgACABQQAgACgCACgCNBEFAAsTACAAIAFBACAAKAIAKAIkEQUAC/ICAQJ/IwBBEGsiCiQAIAogADYCDAJAAkACQCADKAIAIAJHDQBBKyELIAAgCSgCYEcEQEEtIQsgCSgCZCAARw0BCyADIAJBAWo2AgAgAiALOgAADAELIAYQDUUgACAFR3JFBEBBACEAIAgoAgAiASAHa0GfAUoNAiAEKAIAIQAgCCABQQRqNgIAIAEgADYCAAwBC0F/IQAgCSAJQegAaiAKQQxqELMGIAlrIgZB3ABKDQEgBkECdSEFAkACQAJAIAFBCGsOAwACAAELIAEgBUoNAQwDCyABQRBHIAZB2ABIcg0AIAMoAgAiASACRiABIAJrQQJKcg0CIAFBAWstAABBMEcNAkEAIQAgBEEANgIAIAMgAUEBajYCACABIAVBgIUCai0AADoAAAwCCyADIAMoAgAiAEEBajYCACAAIAVBgIUCai0AADoAACAEIAQoAgBBAWo2AgBBACEADAELQQAhACAEQQA2AgALIApBEGokACAACwsAIABBuMkCEPMBCx0AIAAgAUH4////B0ECQf////8BQYCAgIACEP0CC+4CAQN/IwBBEGsiCiQAIAogADoADwJAAkACQCADKAIAIAJHDQBBKyELIABB/wFxIgwgCS0AGEcEQEEtIQsgCS0AGSAMRw0BCyADIAJBAWo2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IAMoAgBrQfgAbSADQQhqELkJIgUoAgggBxCLBhogBSAFKAIIQfgAajYCCCADIAUQuAkgBRC3CSAGQSBqJAALIAcQjwYaQQALIQcgBEEYahC6CQwBCyAJQQA6AAwgCUEAOgAAQQEhBwsgBEHIAGoQyQELIClCAXwhKSAEQeAAahAyGiAHRQ0BCwsgAxDFCQsgBEGQAmokAAwSCyAop0EBaw4EAwwDCw0LICinQQFrDgMEAgMFCyAop0EBaw0NDAwLICinQQFrDQUMBAsgCUEAOgAMIAlBADoAAAwNC0IAISYgAkIANwM4IAJBADoAMCACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENDCACQUBrIAJBEGoQlgYCQCACLQBABEAgAi0AUA0BCyAJQQA6AAwgCUEAOgAADA4LIAIgAikDSDcDACAeIAIQVCACKQMoISYgAigCFCEDDAALAAsgAkEAOgAwQgAhJiACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENCyACQUBrIAJBEGoQswICQCACLQBABEAgAi0AUA0BCyAJQQA6AAwgCUEAOgAADA0LIB0gERCjASACKQMoISYgAigCFCEDDAALAAsgAkEAOgAwQgAhJiACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENCiACQUBrIAJBEGoQswICQCACLQBABEAgAi0AUA0BCyAJQQA6AAwgCUEAOgAADAwLIBwgERCjASACKQMoISYgAigCFCEDDAALAAsgAiADNgJcIAIgBDYCWAwICyACQQA6ADBCACEmIAJCADcDKCACQQA6ACAgAkEAOgAYIAIgBK0gJ0IghoQ3AxAgJ6chAwNAIANFICZQcQ0IIAJBQGsgAkEQahCzAgJAIAItAEAEQCACLQBQDQELIAlBADoADCAJQQA6AAAMCgsgGyAREKMBIAIpAyghJiACKAIUIQMMAAsACyACQQA6ADBCACEmIAJCADcDKCACQQA6ACAgAkEAOgAYIAIgBK0gJ0IghoQ3AxAgJ6chAwNAIANFICZQcQ0HIAJBQGsgAkEQahCzAgJAIAItAEAEQCACLQBQDQELIAlBADoADCAJQQA6AAAM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BS0ADEUNASAEIAUpAgA3AgAgBCAFKAIINgIIIAVCADcCACAFQQA2AgggBEEBOgAMDAELCyADIAQ2AgQgBygCACEFIAcgBDYCACADIAU2AgQgBygCBCEEIAcgAygCCDYCBCADIAQ2AgggBygCCCEEIAcgAygCDDYCCCADIAQ2AgwgAyADKAIENgIAIAMoAgQhBANAIAQgAygCCCIFRwRAIAMgBUEQayIFNgIIIAUQMhoMAQsLIAMoAgAiAwRAIAMQDAsgBkEgaiQACwsgDxAyGiAKDQALIBYQMhoMBgsgFhAyGgwEC0IAISYgAkIANwM4IAJBADoAMCACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQA0AgA0UgJlBxDQQgAkFAayACQRBqEJYGIAItAEAEQCACQQA6AAggAkEAOgAAIAItAFAEQCACQQE6AAggAiACKQNINwMACwJAIBMoAgQiAyATKAIISQRAIAMgAikDADcDACADIAIpAwg3AwggEyADQRBqNgIEDAELIBMgAhDBCQsgAikDKCEmIAIoAhQhAwwBCwsgCUEAOgAMIAlBADoAAAwECyACQQA6ADBCACEmIAJCADcDKCACQQA6ACAgAkEAOgAYIAIgBK0gJ0IghoQ3AxAgJ6chAwNAIANFICZQcQ0DIAJBQGsgAkEQahCzAiACLQBABEAgGSAREJIGIAIpAyghJiACKAIUIQMMAQsLIAlBADoADCAJQQA6AAAMAwsgAkEAOgAwQgAhJiACQgA3AyggAkEAOgAgIAJBADoAGCACIAStICdCIIaENwMQICenIQMDQCADRSAmUHENAiACQUBrIAJBEGoQswIgAi0AQARAIBggERCSBiACKQMoISYgAigCFCEDDAELCyAJQQA6AAwgCUEAOgAADAILIAJBADoAMEIAISYgAkIANwMoIAJBADoAICACQQA6ABggAiAErSAnQiCGhDcDECAnpyEDA0AgA0UgJlBxDQEgAkFAayACQRBqELMCIAItAEAEQCAXIBEQkgYgAikDKCEmIAIoAhQhAwwBCwsgCUEAOgAMIAlBADoAAAwBCyABIBIoAggiAyABKAIAajYCACABIAEoAgQgA2s2AgQgEkEQaiESDAELCyACQeAAaiQAICAQDxoCQCAILQC8AUUEQEEDEBcEQCAIQRRqEBMhJSAI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NgIMIAQoAgQhACAEQQA2AgQgAARAIAQtAAwEQCAAQQhqEAoaCyAABEAgABAMCwtBAQs6AAwgCCAFNgIIIARBEGokACAIKAIIIQsgCEEQaiQAIAtBGGoLFgAgASACKQMANwMAIAEgAikDCDcDCAsMACABIAItAAA6AAALJAAgASACKQMANwMAIAEgAigCCDYCCCACQgA3AwAgAkEANgIICwkAIAEgAhB8GgsMACABIAIoAgA2AgALAgALNgAgACgCBCEDA0AgASACRkUEQCADIAEpAwA3AwAgA0EIaiEDIAFBCGohAQwBCwsgACADNgIECzMBAX0gACABRwRAIAAQTSAAIAEQ9wMgASoCGCECIABBPjoAHiAAIAI4AhggACABENIGCwupAgEFfyAAIAFHBEACQCABKAIEIgMgASgCACIBa0EFdSIEIAAoAgggACgCACICa0EFdU0EQCACIAEgASAAKAIEIAJrIgVqIgIgAyAEIAVBBXUiBUsbIAFrIgEQVyEGIAQgBUsEQCAAKAIEIQEDQCACIANHBEAgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIAFBIGohASACQSBqIQIMAQsLIAAgATYCBAwCCyAAIAEgBmo2AgQMAQsgABDoAyAAIAAgBBCSAhDGByAAKAIEIQIDQCABIANHBEAgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAJBIGohAiABQSBqIQEMAQsLIAAgAjYCBAsLCwYAIAEQNwu9AQEDfyMAQZABayIDJABBAxAXBEAgA0EIahATIQUgA0EDNgIEIAUgAUG8A2oQEUGVMRAOGiADQQRqEBYLIABBADoAcCAAQgA3A2ggAEEAOgBIIABBAEEkEB4iAEIANwA1IABCADcDMCAAQgA3AyggAEIANwNQIABCADcDWCAAQQA2AmACQCAAQTxqIgEtAAwEQCABQajYABCXBQwBCyABQajYABALQQE6AAwLIAAgAikDKDcDaCADQZABaiQAC7gBAgR/AX0jAEEQayIEJAAgAEEANgIIIABCADcCACABKAIEIgIgASgCACIDRwRAIAAgAiADa0EEdRD8CSAAKAIEIQIgASgCBCEFIAEoAgAhAwNAIAMgBUcEQCACIAMpAwA3AwAgAiADKQMINwMI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ahCDBAwBCwJAAkADQCAHIAhNDQEgACgCKEFAaiIDLQA8BEAgAC0AIQRAIABBADoAIQsgAy0AACEHIAMhAAwBCwsgAyACEOMBDAELIAcgCEYEQCACIAAQ7AcMAQsgBUHEAGogABC6AyECIAAgBCgCACAJQQZ0ahDbBSAAQSRqIAAoAiQgBUEEaiACEIwEIgMQggggAxCUARogAEIAEIQEIAIQvAMLIAAtACEEQCAAQQA6ACELIAQgBCgCACAGQQZ0akFAaxCDBAsgBUGAAWokAAsJACAAQSIQ/gILCwAgACABQSIQywkLFAAgACABIAIgA0EiQYiPnjwQzQELCwAgACABECRBAXMLgQEBAn8gACgClAMhBCAAKAKQAyEDA0AgAyAERgRAAkAgAigCACACKAIERg0AIABBEGogARD9ByEAIAIoAgQhBCACKAIAIQMDQCADIARGDQEgAygCACABIAAQ9wcgA0EEaiEDDAALAAsFIAMoAgBBpANqIAEQ/AcgA0EEaiEDDAELCws1AQF/AkAgAC0ADCICIAEtAAxGBEAgAkUNASAAIAEQeQ8LIAIEQCAAEOgFDwsgACABEIwGCwtNAQF/IAAgARB5IABBDGogAUEMahCKBCAAIAEoAiw2AiwgACABKQIkNwIkIAAgASkCHDcCHCABKAIwIQIgAUEANgIwIABBMGogAhCeBAsSACAAIAEQugMiAEEBOgA8IAAL1AEBA38gASgCBCEDIAAoAgAhBCAAKAIEIQIDQCACIARGRQRAIANBLGsiAyACQSxrIgIpAgA3AgAgAyACQQhqKAIANgIIIAJCADcCACACQQA2AgggAyACKQIkNwIkIAMgAikCHDcCHCADIAIpAhQ3AhQgAyACKQIMNwIMDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACxoAIAAgAUGu9KIXQSxB3ejFLkHe6MUuELkBCxcAIAAgARAjIgBBDGogAUEMahC7BSAAC0ABAX8gACgCCCIDIAIgAWtqIQIDQCACIANGRQRAIAMgASgCADYCACABQQRqIQEgA0EEaiEDDAELCyAAIAI2AggLtQIBBX8jAEEgayIFJAACQCAAKAIEIgIg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aiEADAELCyABENsBIAIQDxoLIAIQDAsLFgAgAC0APARAIAAQvAMgAEEAOgA8CwsuAQF/IAAgACgCACICIAEgAmtByABtQcgAbGoiAUHIAGogACgCBCABEJUGELoECzcBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiACgCAARAIAAQ6QUgASgCDCgCABAMCyABQRBqJAALNwECfiAAKAIAIQADfiABIAJRBH4gAwUgAyAAIAKnQcgAbGopAzh8QgF8IQMgAkIBfCECDAELCwuaAQICfwF+IwBBEGsiAyQAQSAQGiECIAMgAEEIajYCCCADQQE2AgwgAiABKAIINgIQIAIgASkDADcDCCABQQA2AgggAUIANwMAIAEpAxAhBCACIAA2AgAgAiAENwMYIAIgACgCBCIBNgIEIAEgAjYCACAAIAI2AgQgACAAKAIIQQFqNgIIIANBADYCBCADQQRqELQBIANBEGokAAsMACAAIAEQqAJBAXMLJQAgACgCECIARQRAEBkACyAAIAEgAiADIAQgACgCACgCGBEKAAsuAQF/IAEoAgAiAiABKAIENgIEIAEoAgQgAjYCACAAIAAoAghBAWs2AgggARAMC6QDAgh/AX4jAEEgayIDJAACQCABKAIEIgQgASgCCEkEQCAEIAIoAgA2AgAgASAEQQRqIgI2AgQMAQsgASACEPwKIAEoAgQhAgsgA0EIaiACQQRrKAIAIgetQgBClfip+pe33puef0IAECggAykDECADKQMIhSILp0H/AXFBgAJyIQIgCyABMQAeiKchBCABKAIQIQggASgCACEGIAEoAgwhCSAAAn8DQCAJIARBA3RqIgUoAgAiCiACTwRAAkAgAiAKRw0AIAcgBiAFKAIEQQJ0aiIFKAIARw0AIAEgASgCBEEEazYCBEEADAMLIARBAWoiBEEAIAQgCEcbIQQgAkGAAmohAgwBCwsgASgCBCAGa0ECdSIFQQFrIQYCQCABKAIUIAVJBEAgASgCFEGAgICAeEYEQCABIAEoAgRBBGs2AgQQGQALIAEgAS0AHkEBazoAHiABEE0gARAwIAEQuQwMAQsgAyAGNgIcIAMgAjYCGCADIAMpAhg3AwAgASADIAQQMQsgASgCACAGQQJ0aiEFQQELOgAEIAAgBTYCACADQSBqJAALgQEBAn8gACgCBCAAKAIISQRA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AAtBAQvBAQECfyAApyECIABCIIinIgNFBEAgAiABEN0BDwsgASACQYABcjoAACABIAJBFXZBgAFyOgADIAEgAkEOdkGAAXI6AAIgASACQQd2QYABcjoAASADQQR0IAJBHHZyIQIgA0EHTQRAIAEgAjoABEEFDwsgASACQYABcjoABCADQQN2IQJBBSEDA0AgAkGAAUlFBEAgASADaiACQYABcjoAACACQQd2IQIgA0EBaiEDDAELCyABIANqIAI6AAAgA0EBagtSAQF/IABCIIinIgFFBEAgAKcQrwEPCwJ/QQUgAUEISQ0AGkEGIAFBgAhJDQAaQQcgAUGAgAhJDQAaQQggAUGAgIAISQ0AGkEJQQogAEIAWRsLCw0AIABB6JUBQSgQHRoLIwAgACABKAIANgIAIABBBGogAUEEahASGiAAIAEoAhA2AhALHwAgACABEBIiAEEMaiABQQxqEBIaIAAgASkCGDcCGAsMACAAIAFBjAkQyAkLJwEBfyMAQRBrIgMkACADIAE7AQ4gACADQQ5qIAIQggUgA0EQaiQACx8AIAEoAhAiAUUEQBAZAAsgACABIAEoAgAoAhgRAAALFQAgAEGk4AA2AgAgAEEEahCxCyAAC10BA38jAEEQayIBJAAgASAANgIMIAEoAgwiACgCAARAIAAoAgAhAyAAKAIEIQIDQCACIANHBEAgAkEYaxBvIQIMAQsLIAAgAzYCBCABKAIMKAIAEAwLIAFBEGokAAsnAQF/IwBBEGsiAyQAIAMgATYCDCAAIANBDGogAhCCBSADQRBqJAALUwEBfyABKAIQIgJFBEAgAEEANgIQIAAPCyABIAJGBEAgACAANgIQIAEoAhAiASAAIAEoAgAoAgwRAAAgAA8LIAAgAiACKAIAKAIIEQIANgIQIAALJwAgAQRAIAAgASgCABD3BCAAIAEoAgQQ9wQgAUEQahCGDCABEAwLCxsBAX8gACgCACEBIABBADYCACABBEAgARAMCwvxAwIIfwF9AkACf0ECIAFBAUYNABogASABIAFBAWtxRQ0AGiABEIULCyIBIAAoAgQiAk0EQCABIAJPDQEgAkEDSSEFAn8gACgCDLMgACoCEJWNIgpDAACAT10gCkMAAAAAYHEEQCAKqQwBC0EACyEDIAEgBSACaUEBS3IEfyADEIULBSADQQFBICADQQFr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cRCwBQsgB0EQaiQACz0BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQRxrIgE2AgggARD5CBoMAQsLIAAoAgAiAARAIAAQDAsL1AEBA38gACgCBCECIAAoAgAhBCABKAIEIQMDQCACIARHBEAgA0EcayIDIAJBHGsiAi0AADoAACADIAIoAgw2AgwgAyACKQIENwIEIAJCADcCBCACQQA2AgwgAyACKAIYNgIYIAMgAikCEDcCECACQgA3AhAgAkEANgIYDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACycAIAEEQCAAIAEoAgAQswUgACABKAIEELMFIAFBGGoQ+AIgARAMCws6AQF/IAAoAgQiAiAAKAIIRwRAIAIgASkDADcDACACIAEpAwg3AwggACACQRBqNgIEDwsgACABEKcFC0YBBH8jAEEwayIDJAAgAEGAAWoiBCABEGsiAiAAKAKEASIFRwRAIAAQ7AggACABEL8DIAQgAhDrBQsgA0EwaiQAIAIgBUcLJQAgACABRwRAIAAgASgCRBC2BSAAIAEoAkgQtgUgARCpAxAMCwscACAAIAEQuAgiASAAKAIERgRAEBkACyABQRBqCz8AIAAQnwQgAS0AACEBIABCADcCJCAAQQA6ACEgAEEAOgABIAAgAToAACAAQgA3AiwgAEIANwI0IABBAToAPAvmAQIDfwF+IwBBEGsiBCQAAkAgACgCACIDIAAoAgQiBUcEQANAIAYgBSADa0HIAG2tWg0CIAMgBqciBUHIAGxqIAEgAhC5BQJAIAYgACgCECAAKAIMIgNrQfAAba1aDQAgAyAFQfAAbGoiAy0AMCACckUNACAEIAM2AgggASAEQQhqEJ4BCyAGQgF8IQYgACgCACEDIAAoAgQhBQwACwALIAAoAhAhAyAAKAIMIQADQCAAIANGDQEgAC0AMCACcgRAIAQgADYCDCABIARBDGoQngELIABB8ABqIQAMAAsACyAEQRBqJAALzRACC38BfiMAQfAAayIIJAAgCCABOgBvAkACQCABIAAtAAAiBEkEQAJAIABBJGogACgCMCAAKAI0IAIQvQMgACgCMGtBLG0iBRCECC0A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HCAAIAEpAhQ3AhQgACABKQIMNwIMCwsAIAAgAUEsEL0EC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQhrIgIgA0EIayIDKQIANwIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACxsBAX8gACgCACECIAAgATYCACACBEAgAhAMCwtZAQF/AkAgAC0AECICIAEtABBGBEAgAkUNASAAIAEpAwA3AwAgACABKQMINwMIDwsgAgRAIABBADoAEA8LIAAgASkDADcDACAAIAEpAwg3AwggAEEBOgAQCwvWAQEEfyAAIAEQ9wIgAEEYaiEFIAIoAhghAyACKAIcIQYjAEEQayIEJAADQCADIAZHBEAgBEEIaiAFIAMQXyADQRBqIQMMAQsLIARBEGokACAAIAApA0AgAikDQHw3A0AgAEEMaiIDIAEQqAQgAigCECEEIAIoAgwhAQNAIAEgBEYEQAJAIAIoAgQhAyACKAIAIQEDQCABIANGDQEgACABEK4CIAFByABqIQEMAAsACwUgAyABEKgEIAFB8ABqIQEMAQsLIAAgAikDOCAAKQM4fEIBfDcDOAszACAAKAIUQYCAgIB4RgRAIAAQ5AUQGQALIAAgAC0AHkEBazoAHiAAEE0gABAwIAAQ5gULDwAgACAAKAIEQShrEPwICwwAIAAgARCFAUEBcwsJACAAQSgQ2gMLYQECfyMAQSBrIgIkAAJAIAEgACgCCCAAKAIAIgNrQShtSwRAIAFB58yZM08NASAAIAJBDGogASAAKAIEIANrQShtIABBCGoQxwEiABDtAiAAEOwCCyACQSBqJAAPCxABAAsWACAALQAMBEAgABAPGiAAQQA6AAwLCwwAIAAgACgCABD8CAvxAQIBfwF9AkAgACABRg0AIAAQTSAAKAIABEAgABDpBSAAKAIAEAwgAEEANgIIIABCADcCAAsgACABKAIANgIAIAAgASgCBDYCBCAAIAEoAgg2AgggAUEANgIIIAFCADcCACABEOkFIAEoAgwhAiABQQA2AgwgACACNgIMIAEoAhAhAiABQQA2AhAgACACNgIQIAEoAhQhAiABQQA2AhQg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CxsAIAAgARBrIgEgACgCBEYEQBAZAAsgAUEQagsqACAALQAYRQRAIABBDGoiABDoBSAAQQE6AAwgAEEANgIIIABCADcCAAsLIwAgAEEAOgDAASAAQQA6AAAgAS0AwAEEQCAAIAEQrAILIAALUAAgACgCAARAIAAQtgkgACgCABAMIABBADYCCCAAQgA3AgALIAAgASgCADYCACAAIAEoAgQ2AgQgACABKAIINgIIIAFBADYCCCABQgA3AgALGwAgACABQcmkkglB8ABBksmkEkGTyaQSELkBC98CAQJ/IwBBEGsiBSQAIAAgASACIAMQ/QUhBgJAIAQgAxAbRQ0AIAUgAygCCDYCCCAFIAMpAgA3AwAgAyAEKAIINgIIIAMgBCkCADcCACAEIAUoAgg2AgggBCAFKQMANwIAIAMgAhAbRQRAIAZBAWohBgwBCyAFIAIoAgg2AgggBSACKQIANwMAIAIgAygCCDYCCCACIAMpAgA3AgAgAyAFKAIINgIIIAMgBSkDADcCACACIAEQG0UEQCAGQQJqIQYMAQsgBSABKAIINgIIIAUgASkCADcDACABIAIoAgg2AgggASACKQIANwIAIAIgBSgCCDYCCCACIAUpAwA3AgAgASAAEBtFBEAgBkEDaiEGDAELIAUgACgCCDYCCCAFIAApAgA3AwAgACABKAIINgIIIAAgASkCADcCACABIAUoAgg2AgggASAFKQMANwIAIAZBBGohBgsgBUEQaiQAIAYLjgIBAn8jAEEQayIEJAAgACABIAIQ8gIhBQJAIAMgAhAbRQ0AIAQgAigCCDYCCCAEIAIpAgA3AwAgAiADKAIINgIIIAIgAykCADcCACADIAQoAgg2AgggAyAEKQMANwIAIAIgARAbRQRAIAVBAWohBQwBCyAEIAEoAgg2AgggBCABKQIANwMAIAEgAigCCDYCCCABIAIpAgA3AgAgAiAEKAIINgIIIAIgBCkDADcCACABIAAQG0UEQCAFQQJqIQUMAQsgBCAAKAIINgIIIAQgACkCADcDACAAIAEoAgg2AgggACABKQIANwIAIAEgBCgCCDYCCCABIAQpAwA3AgAgBUEDaiEFCyAEQRBqJAAgBQuQDgEIfyMAQRBrIgckAANAIAFBDGshCQNAIAAhBANAAkACQAJAAkACQAJAAkACQCABIARrIgVBDG0i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NgIQIAIgACgCGDYCFCAAQQA2AhggAEIANwMQIAAgAkEMaiIEEMsDIAQQDxogAkICNwMgIAIgBzcDGCADIAJBGGoQpwkMAwsgAEEQaiADEFQgAyAHNwMADAILIAAgACkDCBDsASACIAc3AxggAyACQRhqELQEDAELIAAgACkDCBDsASACIAc3AxggAyACQRhqELQECyACQUBrJAAgACABNwMoCywBAX8jAEEQayIDJAAgAyACNwMIIAAgA0EIahDpASAAIAEQgQYgA0EQaiQACwsAIAAgAUECEMYJCzECAX8BfiMAQRBrIgIkACACIAE3AwggAEE0aiACQQhqEPwBKQMAIQMgAkEQaiQAIAMLZAAgACABKQMANwMAIABBCGogAUEIahDtASAAIAEpAyg3AyggACABKQMgNwMgIABBOGogAUE4ahBgGiAAIAEtAHA6AHAgACABKQNoNwNoIAAgASkDYDcDYCAAIAEpA1g3A1ggAAsNACAAIAEQI0EBOgAMCw0AIAAgARASQQE6AAwLGAAgAEHo3gE2AgAgAEEgahAKGiAAEM4GCxMAIABBOGoQRCAAQQhqEMkBIAALHwAgAEEAOgAMIABBADoAACABLQAMBEAgACABEIwGCwtfAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAEQCAAKAIAIQMgACgCBCECA0AgAiADRwRAIAJB+ABrEI8GIQIMAQsLIAAgAzYCBCABKAIMKAIAEAwLIAFBEGokAAs6AQF/IAAoAgQiAiAAKAIIRwRAIAIgASkDADcDACACIAEpAwg3AwggACACQRBqNgIEDwsgACABEMEJC7YBAQN/IAAoAgQiAiAAKAIIRwRAIAIgASkDADcDACACIAEpAxA3AxAgAiABKQMINwMIIAAgAkEYajYCBA8LIwBBIGsiBCQAIARBDGogACAAKAIEIAAoAgBrQRhtQQFqEIcBIAAoAgQgACgCAGtBGG0gAEEIahByIgIoAggiAyABKQMANwMAIAMgASkDEDcDECADIAEpAwg3AwggAiADQRhqNgIIIAAgAhDWAyACENUDIARBIGokAAthAQJ/IwBBIGsiAiQAAkAgASAAKAIIIAAoAgAiA2tBGG1LBEAgAUGr1arVAE8NASAAIAJBDGogASAAKAIEIANrQRhtIABBCGoQciIAENYDIAAQ1QML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AEEEaiACQQhqEIsBIAJBEGokAAvPAQEDfyMAQRBrIgUkACACQe////8HIAFrTQRAIAAQICEGIAVBBGoiByAAIAFB5////wNJBH8gBSABQQF0NgIMIAUgASACajYCBCAHIAVBDGoQvwIoAgAQvgJBAWoFQe////8HCxCXAiAFKAIEIQIgBSgCCBogBARAIAIgBiAEEJsBCyADIARHBEAgAiAEaiAEIAZqIAMgBGsQmwELIAFBAWoiAUELRwRAIAAgBiABEN8ECyAAIAIQmgEgACAFKAIIEJkBIAVBEGokAA8LEGwACw0AIAAgASACQn8QxAoLBwAgAEEMagsrAQJ/IAAoAgAhASMAQRBrIgAkACAAIAE2AgwgACgCDCECIABBEGokACACCxcAIAAoAggQNUcEQCAAKAIIEMcKCyAACwkAIABBBxD/Ags6AQJ/IwBBEGsiAyQAIAMgAjYCDCADQQhqIANBDGoQvQEhBCAAIAEQvAYhACAEELwBIANBEGokACAACw8AIAAgACgCBEEBajYCBAs3AQJ/IwBBEGsiAiQAIAIgACgCADYCDCACIAIoAgwgAUECdGo2AgwgAigCDCEDIAJBEGokACADCxsBAX9BASEBIAAQkAEEfyAAEJgCQQFrBUEBCws0AQJ/IwBBEGsiAiQAIAIgACgCADYCDCACIAIoAgwgAWo2AgwgAigCDCEDIAJBEGokACADCykBA38jAEEQayIBJAAgAUEMaiICIAA2AgAgAigCACEDIAFBEGokACADC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQhrIgIgA0EIayIDKQMANwMADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACzEAIAIoAgAhAgNAAkAgACABRwR/IAAoAgAgAkcNASAABSABCw8LIABBBGohAAwACwAL9QMBAX8jAEEQayIMJAAgDCAANgIMAkACQCAAIAVGBEAgAS0AAEUNAUEAIQAgAUEAOgAAIAQgBCgCACIBQQFqNgIAIAFBLjoAACAHEA1FDQIgCSgCACIBIAhrQZ8BSg0CIAooAgAhAiAJIAFBBGo2AgAgASACNgIA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BEBBAA8LAkAgACABIABrIgVqLQAADQBB6MYCKAIAIgNFDQAgAygCACIBRQ0AA0ACQAJ/IAAhAkEAIAUiBkUNABogAi0AACIEBH8CQANAIAQgAS0AACIHRyAHRXINASAGQQFrIgZFDQEgAUEBaiEBIAItAAEhBCACQQFqIQIgBA0AC0EAIQQLIAQFQQALIAEtAABrC0UEQCADKAIAIAVqIgEtAABBPUYNAQsgAygCBCEBIANBBGohAyABDQEMAgsLIAFBAWohCAsgCAveAQECfyACQQBHIQMCQAJAAkAgAEEDcUUgAkVyDQAgAUH/AXEhBANAIAAtAAAgBEYNAiACQQFrIgJBAEchAyAAQQFqIgBBA3FFDQEgAg0ACwsgA0UNASABQf8BcSIDIAAtAABGIAJBBElyRQRAIANBgYKECGwhAwNAIAAoAgAgA3MiBEF/cyAEQYGChAhrcUGAgYKEeHENAiAAQQRqIQAgAkEEayICQQNLDQALCyACRQ0BCyABQf8BcSEBA0AgASAALQAARgRAIAAPCyAAQQFqIQAgAkEBayICDQALC0EAC9IDAgJ+An8jAEEgayIEJAACQCABQv///////////wCDIgNCgICAgICAwIA8fSADQoCAgICAgMD/wwB9VARAIAFCBIYgAEI8iIQhAyAAQv//////////D4MiAEKBgICAgICAgAhaBEAgA0KBgICAgICAgMAAfCECDAILIANCgICAgICAgIBAfSECIABCgICAgICAgIAIUg0BIAIgA0IBg3whAgwBCyAAUCADQoCAgICAgMD//wBUIANCgICAgICAwP//AFEbRQRAIAFCBIYgAEI8iIRC/////////wODQoCAgICAgID8/wCEIQIMAQtCgICAgICAgPj/ACECIANC////////v//DAFYNAEIAIQIgA0IwiKciBUGR9wBJDQAgBEEQaiAAIAFC////////P4NCgICAgICAwACEIgIgBUGB9wBrEGggBCAAIAJBgfgAIAVrEMYCIAQpAwhCBIYgBCkDACIAQjyIhCECIAQpAxAgBCkDGIRCAFKtIABC//////////8Pg4QiAEKBgICAgICAgAhaBEAgAkIBfCECDAELIABCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgBEEgaiQAIAIgAUKAgICAgICAgIB/g4S/C0QBAX8jAEEQayIFJAAgBSABIAIgAyAEQoCAgICAgICAgH+FEH8gBSkDACEBIAAgBSkDCDcDCCAAIAE3AwAgBUEQaiQAC6kBAQF8RAAAAAAAAPA/IQECQCAAQYAITgRARAAAAAAAAOB/IQEgAEH/D0kEQCAAQf8HayEADAILRAAAAAAAAPB/IQFB/RcgACAAQf0XThtB/g9rIQAMAQsgAEGBeEoNAEQAAAAAAABgAyEBIABBuHBLBEAgAEHJB2ohAAwBC0QAAAAAAAAAACEBQfBoIAAgAEHwaEwbQZIPaiEACyABIABB/wdqrUI0hr+iC2oBAn8gAEHo4gE2AgAgACgCKCEBA0AgAQRAQQAgACABQQFrIgFBAnQiAiAAKAIkaigCACAAKAIgIAJqKAIAEQQADAELCyAAQRxqECIgACgCIBAMIAAoAiQQDCAAKAIwEAwgACgCPBAMIAALCQAgACABEOEECz0AIwBBEGsiASQAIAEgAzYCDCABIAQgAiADIAJrIgIQVyACajYCCCAAIAFBDGogAUEIahDaASABQRBqJAALMQEBfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIAAgA0EMaiADQQhqEOAEIANBEGokAAsdACMAQRBrIgMkACAAIAEgAhDuCiADQRBqJAAgAAsTACAAIAEgAiAAKAIAKAIwEQUAC5EBAQN/IAEoAgQhAiAAKAIAIQQgACgCBCEDA0AgAyAERkUEQCACQQRrIgIgA0EEayIDKAIANgIADAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACx0AIAAgAUH8////B0EBQf////8DQYCAgIAEEP0CCwwAIABBBGoQgAsgAAsNACAAIAEQakEBOgBICygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsUACAAQfjdATYCACAAQQRqECIgAAsEAEEBCwkAIAAgARCDCwuFAgIHfwJ+IwBBMGsiACQAQQEgAEEYahCHCwRAQbDBAigCABChBgALIABBCGogAEEYahCaAiEEIAAgAEEgahCGCyEFIwBBIGsiASQAIwBBEGsiAyQAIwBB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QShrIQMgAkEoayECDAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACz0BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQThrIgE2AgggARCpBxoMAQsLIAAoAgAiAARAIAAQDAsLtQEBA38gACgCBCECIAAoAgAhAyABKAIEIQQDQCACIANHBEAgBEE4ayIEIAJBOGsiAikDADcDACAEIAIoAgg2AgggAkIANwMAIAJBADYCCCAEQRhqIAJBGGoQnQIMAQsLIAEgBDYCBCAAKAIAIQMgACAENgIAIAEgAzYCBCAAKAIEIQMgACABKAIINgIEIAEgAzYCCCAAKAIIIQMgACABKAIMNgIIIAEgAzYCDCABIAEoAgQ2AgALmQEBAn8gACgCBCAAKAIISQRAIAAoAgQiAkEIaiABQQhqEJ0CIAAgAkEoajYCBA8LIwBBIGsiAyQAIANBDGogACAAKAIEIAAoAgBrQShtQQFqEIICIAAoAgQgACgCAGtBKG0gAEEIahDHASICKAIIQQhqIAFBCGoQnQIgAiACKAIIQShqNgIIIAAgAhDWByACENUHIANBIGokAAteAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAEQCAAKAIAIQMgACgCBCECA0AgAiADRwRAIAJBOGsQqQchAgwBCwsgACADNgIEIAEoAgwoAgAQDAsgAUEQaiQACz4AIABB2ABqIAEQ4gEiASAAKAJcRwRAAkAgAUEQahBwIgAtAEhFDQAgAiAAEKwHQQFHDQAgACACEKsHGgsLCx0AIABBCGogAUEIahCdAiAAQQE6ACggAEEBOgAwCz8BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQYABazYCCCABQfAAaxApGgwBCwsgACgCACIABEAgABAMCwupAQEDfyAAKAIEIQMgACgCACEEIAEoAgQhAgNAIAMgBEcEQCACQYABayICIANBgAFrIgMpAwA3AwAgAiADKQMINwMIIAJBEGogA0EQahA9GgwBCwsgASACNgIEIAAoAgAhAyAAIAI2AgAgASADNgIEIAAoAgQhAiAAIAEoAgg2AgQgASACNgIIIAAoAgghAiAA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EGsiAiQAAkAgASgCBCIDIAEoAghJBEAgBigCCCEEIAMgBigCDCIFKQIANwIAIAMgBSgCCDYCCCAFQgA3AgAgBUEANgIIIAMgBCkDADcDECADIAQoAhA2AiAgAyAEKQMINwMYIARBADYCECAEQgA3AwggASADQShqNgIEDAELIwBBIGsiCiQAIApBDGogASABKAIEIAEoAgBrQShtQQFqEIICIAEoAgQgASgCAGtBKG0gAUEIahDHASEDIAYoAgghBCADKAIIIgUgBigCDCIJKQIANwIAIAUgCSgCCDYCCCAJQgA3AgAgCUEANgIIIAUgBCkDADcDECAFIAQoAhA2AiAgBSAEKQMINwMYIARBADYCECAEQgA3AwggAyADKAIIQShqNgIIIAEgAxDtAiADEOwCIApBIGokACABKAIEGgsgASgCBCABKAIAa0EobSIEQQFrIQMCQCABKAIUIARJBEAgARDjBQwBCyACIAM2AgwgAiAHNgIIIAIgAikCCDcDACABIAIgCBAxCyABKAIAIQEgAEEBOgAEIAAgASADQShsajYCACACQRBqJAALIAZBEGokAA8LIAhBAWoiBEEAIAQgASgCEEcbIQggB0GAAmohBwwACwALYQECfyMAQSBrIgIkAAJAIAEgACgCCCAAKAIAIgNrQSJtSwRAIAFBiI+ePE8NASAAIAJBDGogASAAKAIEIANrQSJtIABBCGoQhwQiABCGBCAAEIUECyACQSBqJAAPCxABAAs2ACAAKAIEIQMDQCABIAJGRQRAIAMgASgCADYCACADQQRqIQMgAUEEaiEBDAELCyAAIAM2AgQLTAEBfyACIAEoAkw2AkwCQCAAIAEoAkwiA0YEQCAAIAI2AlQMAQsgA0HEAEHIACADKAJEIAFGG2ogAjYCACADIAAQ/QELIAEgAjYCTAtqAQN/IwBBIGsiAyQAIANBDGogACAAKAIEIAAoAgBrQQJ1QQFqEMkGIAAoAgQgACgCAGtBAnUgAEEIahD0ASICKAIIIgQgASgCADYCACACIARBBGo2AgggACACEMgGIAIQ2wEgA0EgaiQAC50BAgN/AX4jAEEQayIEJAAgBCACNAIAQgBClfip+pe33puef0IAECggBCkDCCAEKQMAhSIGp0H/AXFBgAJyIQIgBiABMQAeiKchAyABKAIQIQUgASgCDCEBA0Ag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QShrIgMgAkEoayICKQMANwMAIAMgAkEIaigCADYCCCACQgA3AwAgAkEANgIIIAMgAikDIDcDICADIAIpAxg3AxggAyACKQMQNwMQDAELCyABIAM2AgQgACgCACECIAAgAzYCACABIAI2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACz4BAn8gACgCBCECA0AgAiAAKAIIIgFHBEAgACABQYABayIBNgIIIAEQzwgaDAELCyAAKAIAIgAEQCAAEAwLC7cBAQN/IAAoAgQhAiAAKAIAIQMgASgCBCEEA0AgAiADRwRAIARBgAFrIgQgAkGAAWsiAikDADcDACAEIAIoAgg2AgggAkIANwMAIAJBADYCCCAEQRBqIAJBEGoQPRoMAQsLIAEgBDYCBCAAKAIAIQMgACAENgIAIAEgAzYCBCAAKAIEIQMgACABKAIINgIEIAEgAzYCCCAAKAIIIQMgACABKAIMNgIIIAEgAzYCDCABIAEoAgQ2AgALgQEAIwBBEGsiACQAIAIoAgAhAiAAIAMpAgA3AwAgACACNgIMIwBBMGsiAiQAIAEgACgCDCIDKQMANwMAIAEgAykDCDcDCCAAKAIAKAIAIQMgAkEAOgAoIAJBADoACCABQRBqIAMgAkEIaiIBEM0FIAEQnAQgAkEwaiQAIABBEGokAAviAQIFfwJ+AkAgACgCACICIAAoAgQiA0cEQANAIAcgAyACa0HIAG2tIghUIQMgByAIWg0CAkACQCABIAIgB6ciBEHIAGwiBWoQzQhBAWsOAgAEAQsgACgCACAFaiABEMYIDQMLIAAoAhAgACgCDCICa0HwAG2tIAdWBEAgASACIARB8ABsahDLCkECRg0DCyAHQgF8IQcgACgCACECIAAoAgQhAwwACwALIAAoAhAhAiAAKAIMIQADQCAAIAJHIQMgACACRg0BIAEgABDLCiEGIABB8ABqIQAgBkECRw0ACwsgAwsQACAAIAAoAgRB+AFrENQIC/EBAgF/AX0CQCAAIAFGDQAgABBNIAAoAgAEQCAAENQFIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAEQ1AUgASgCDCECIAFBADYCDCAAIAI2AgwgASgCECECIAFBADYCECAAIAI2AhAgASgCFCECIAFBADYCFCAAIAI2AhQgAS0AHiECIAFBPjoAHiAAIAI6AB4gASoCGCEDIAFBzZmz+gM2AhggACADOAIYIAEQMCABKAIMIgBFDQAgAEEAIAEoAhBBA3QQHhoLC/EBAgF/AX0CQCAAIAFGDQAgABBNIAAoAgAEQCAAENMFIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAIAEQ0wUgASgCDCECIAFBADYCDCAAIAI2AgwgASgCECECIAFBADYCECAAIAI2AhAgASgCFCECIAFBADYCFCAAIAI2AhQgAS0AHiECIAFBPjoAHiAAIAI6AB4gASoCGCEDIAFBzZmz+gM2AhggACADOAIYIAEQMCABKAIMIgBFDQAgAEEAIAEoAhBBA3QQHhoLC2kAIABBADoASCAAQQA6AAAgAS0ASARAIAAgARDLBgsgAEHQAGogAUHQAGoQIxogAEHcAGogAUHcAGoQIxogAEHoAGogAUHoAGoQuwMgACABKQOIATcDiAEgAEGQAWogAUGQAWoQuwMgAAuXAQECfyMAQRBrIgIkACAAQgA3AgAgAEE+OgAeIABBzZmz+gM2AhggAEIANwIQIABCADcCCCAAIAEQyQggAkEQaiQAIwBBEGsiAyQAIABBIGoiAkIANwIAIAJBPjoAHiACQc2Zs/oDNgIYIAJCADcCECACQgA3AgggAiABQSBqEMgIIANBEGokACAAQUBrIAFBQGsQuwMgAAtVACAAQQA6ACAgAEEAOgAAIAEtACAEQCAAIAEpAwA3AwAgACABKQMINwMIIAAgASgCGDYCGCAAIAEpAxA3AxAgAUIANwMQIAFBADYCGCAAQQE6ACALC0MBAX9BASECIAFBGGogACgCABC7BiABKAIcRgR/IAAgACkDECABKQM4fDcDECAAIAApAwggASkDQHw3AwhBAAVBAQsLfAEDfyAAQgA3AgAgAEIANwIQIABCADcCCCAAQRhqEEkaIwBBEGsiAiQAIABBOGoiAUIANwIAIAFBPjoAHiABQc2Zs/oDNgIYIAFCADcCECABQgA3AgggARAwIAEoAgwiAwRAIANBACABKAIQQQN0EB4aCyACQRBqJAAgAAsOACAAQRBqECkaIAAQCgsrAQF/IAAoAgQhAgNAIAEgAkZFBEAgAkGAAWsQzwghAgwBCwsgACABNgIECwsAIAAgAUEoEL0ECxMAIABBwAFqEJwEIABBCGoQtgMLIQACQCAALQBIRQ0AIAEgABDNCEEBRw0AIAAgARDGCBoLCzEBAX8gACgCBCECA0AgASACRkUEQCACQegBaxDSCCACQfgBayECDAELCyAAIAE2AgQLKQEBfyAAKAIEIQIDQCABIAJGRQRAIAJBDGsQDyECDAELCyAAIAE2AgQLMgECfyAAQThqIgEoAgwiAgRAIAIQDAsgARCdBBogAEEYahA6IABBDGoQDxogABCdBBoLXgEDfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIABEAgACgCACEDIAAoAgQhAgNAIAIgA0cEQCACQSBrEOgCIQIMAQsLIAAgAzYCBCABKAIMKAIAEAwLIAFBEGokAAsxAQF/A0AgAQRAIAIgASABQRBqIAAQGyIDGyECIAFBBGogASADGygCACEBDAELCyACCysBAX8gACgCBCECA0AgASACRkUEQCACQcgAaxDcCCECDAELCyAAIAE2AgQL2wEBA38jAEEQayICJAAgAkEIaiAAENgFIAIgABDXBSACKAIMIQEDQAJAIAIoAgQgAUYEQCAAQQA2AhQgACgCBCEBA0AgACgCCCABayIDQQlJDQIgASgCABAMIAAgACgCBEEEaiIBNgIEDAALAAsgARBaGiACIAIoAgxBgAFqIgE2AgwgASACKAIIIgMoAgBrQYAgRw0BIAIgA0EEajYCCCACIAMoAgQiATYCDAwBCwtBECEBAkACQAJAIANBAnZBAWsOAgEAAgtBICEBCyAAIAE2AhALIAJBEGokAAsJACAAQQAQngQLDgAgAEEQahC3AyAAEAoLSgEBfyAAIAEQIyIAQQxqIAFBDGoQkAYgACABKAIsNgIsIAAgASkCJDcCJCAAIAEpAhw3AhwgASgCMCECIAFBADYCMCAAIAI2AjALPgECfyAAKAIEIQIDQCACIAAoAggiAUcEQCAAIAFByABrIgE2AgggARDcCBoMAQsLIAAoAgAiAARAIAAQDAsLtwEBA38gACgCBCECIAAoAgAhAyABKAIEIQQDQCACIANHBEAgBEHIAGsiBCACQcgAayICKQMANwMAIAQgAigCCDYCCCACQgA3AwAgAkEANgIIIARBEGogAkEQahDdCAwBCwsgASAENgIEIAAoAgAhAyAAIAQ2AgAgASADNgIEIAAoAgQhAyAAIAEoAgg2AgQgASADNgIIIAAoAgghAyAAIAEoAgw2AgggASADNgIMIAEgASgCBDYCAAtqAQF/IwBBEGsiAiQAIAIgATYCDCAAIAIoAgwQEiIBQRBqQQBBOBAeIgBCADcDACAAQn83AyggAEEAOgAiIABBATsBICAAQQA2AhwgAEEAOgAYIABCADcABSAAEOoCNgIwIAJBEGokACABCxAAIAAgACgCBEHIAGsQ2QgLMwAgACgCFEGAgICAeEYEQCAAEOEIEBkACyAAIAAtAB5BAWs6AB4gABBNIAAQMCAAELYMC6YBAgJ/AX4CQCAAKAIAIgIgACgCBCIDRwRAA0AgBCADIAJrQcgAba1aDQIgAiAEpyIDQcgAbGogARDjCCAAKAIQIAAoAgwiAmtB8ABtrSAEVgRAIAEgAiADQfAAbGoQ6QILIARCAXwhBCAAKAIAIQIgACgCBCEDDAALAAsgACgCECECIAAoAgwhAANAIAAgAkYNASABIAAQ6QIgAEHwAGohAAwACwALC1AAIAAoAgAEQCAAEOgIIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIAC1AAIAAoAgAEQCAAEOcIIAAoAgAQDCAAQQA2AgggAEIANwIACyAAIAEoAgA2AgAgACABKAIENgIEIAAgASgCCDYCCCABQQA2AgggAUIANwIACw4AIAAgARC6A0EBOgA8CwwAIAAgACgCABDcBQsMACAAIAAoAgAQ3gULNwEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIABEAgABDnCCABKAIMKAIAEAwLIAFBEGokAAs3AQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAEQCAAEOgIIAEoAgwoAgAQDAsgAUEQaiQAC5UBAQV/IwBBEGsiBCQAIwBBEGsiAyQAIAAhBSACIQYDQCABIAVHBEAgBiAFEN0FIAZBLGohBiAFQSxqIQUMAQsLIAMgBjYCDCADIAE2AgggAygCCCEBIAQgAiADKAIMIAJrQSxtQSxsajYCDCAEIAAgASAAa0EsbUEsbGo2AgggA0EQaiQAIAQoAgwhByAEQRBqJAAgBwsQACAALQA8RQRAEBkACyAACxgAIAAgASkDADcDACAAQQhqIAFBCGoQHAsLACAAIAFBMBDKCQsPACAAIAAoAgRBMGsQ7ggLRAAgACABIAApAwB8Qrnz3fEJfCIBIAFCIIiFQt3C6dj51ZHMDn4iAUIgiCABhULdwunY+dWRzA5+IgFCHIggAYU3AwALqAECAX8BfiMAQRBrIgIkACACQgA3AwgDQCABQgRURQRAIAJBCGogADUAABDwCCABQgR9IQEgAEEEaiEADAELCyACQQhqAn5CASABQgF9IgFCAlYNABoCQAJAAkAgAadBAWsOAgECAAsgADEAAEKAAoQMAgsgADMAAEKAgASEDAELIAAzAAAgADEAAkIQhoRCgICACIQLEPAIIAIpAwghAyACQRBqJAAgAwudAQIDfwF+IwBBEGsiBCQAIAQgAjUCAEIAQpX4qfqXt96bnn9CABAoIAQpAwggBCkDAIUiBqdB/wFxQYACciECIAYgATEAHoinIQMgASgCECEFIAEoAgwhAQNAIAIgASADQQN0aigCAE9FBEAgA0EBaiIDQQAgAyAFRxshAyACQYACaiECDAELCyAAIAM2AgQgACACNgIAIARBEGokAAs7AQF/IwBBEGsiAyQAIAMgAjYCCCADIAE2AgwgACADKAIMEBIiAEEQaiADKAIIEO4CGiADQRBqJAAgAAsYACAAIAEQEiIAQRBqIAFBEGoQ7gIaIAALaQECfyMAQSBrIgMkACADQQxqIAAgACgCBCAAKAIAa0EobUEBahCCAiAAKAIEIAAoAgBrQShtIABBCGoQxwEiAigCCCABEPQIGiACIAIoAghBKGo2AgggACACEO0CIAIQ7AIgA0EgaiQACxQAIAAgACgCBCABEPQIQShqNgIECxYAIABBKGoQ5wEgAEEYahAKGiAAEAoLYQEBfyAAQYCAgIB4IAEgAUEASBsiARDnBSAAIAEgACgCBCAAKAIAa0EobSICIAEgAksbENINIQECQCAAKAIQBEAgASAALQAeTw0BCyAAIAE6AB4gABBNIAAQMCAAEOYFCwsUACAAQRBqEAoaIABBBGoQChogAAswAQJ/IAAoAgAhAiAAKAIEIQEDQCABIAJHBEAg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ASAJQQA6AAAMBQsgAkEANgL8AiACQgA3AvQCIAIoAoADIRAjAEEgayIDJAACQCAQIAJB9AJqIg0oAgggDSgCACIBa0EcbUsEQCAQQcqkkskATw0MIA0gA0EMaiAQIA0oAgQgAWtBHG0gDUEIahC0AyIBELIIIAEQsQgLIANBIGokAAwACyACQQhqIRADQCBPIAIpA4ADWg0DIAJBwAFqIAsQECACLQDIAUUEQCAJQQA6AMABIAlBADoAAAwFCyACQeACaiALEBAgAi0A6AJFBEAgCUEAOgDAASAJQQA6AAAMBQsgAkHQAmogCxAQIAItANgCRQRAIAlBADoAwAEgCUEAOgAADAULIAJBADYCzAJCACFOIAJCADcCxAIgAkHEAmogAigC0AIQ5wUCQANAAkACQAJAIAIpA9ACIE5WBEAgAkHgAWogCxBOIAItAOwBRQ0BIAJBsAJqIAsQECACLQC4AkUNASACQaACaiALEE4CfyACLQCsAkUEQCAJQQA6AMABIAlBADoAAEEBDAELIAIgAikDsAI3AwAgECACKQOgAjcCACAQIAIoAqgCNgIIIAJBADYCqAIgAkIANwOgAgJAIAJBxAJqIhEoAgQiASARKAIISQRAIAEgAikC4AE3AgAgASACKALoATYCCCACQgA3AuABIAJBADYC6AEgASACKQMANwMQIAEgAigCEDYCICABIAIpAwg3AxggAkEANgIQIAJCADcDCCARIAFBKGo2AgQMAQsjAEEgayIBJAAgAUEMaiARIBEoAgQgESgCAGtBKG1BAWoQggIgESgCBCARKAIAa0EobSARQQhqEMcBIg0oAggiAyACKQLgATcCACADIAIoAugBNgIIIAJCADcC4AEgAkEANgLoASADIAIpAwA3AxAgAyACKAIQNgIgIAMgAikDCDcDGCACQQA2AhAgAkIANwMIIA0gDSgCCEEoajYCCCARIA0Q7QIgDRDsAiABQSBqJAAgESgCBBoLIBAQChpBAAshAyACQaACahAyGgwCCyACQbACaiALEBAgAi0AuAJFBEAgCUEAOgDAASAJQQA6AAAMAwsgAkEANgKcAkIAIU4gAkIANwKUAiACQZQCaiACKAKwAhDxBwJ/AkADQCBOIAIpA7ACWg0BIAJBoAJqIAsQEAJAIAItAKgCRQ0AIAJBADoAISACQQA6AAAgAikDoAJQRQRAIAJBgAJqIAsQECACLQCIAkUNASALKAIEIgNBIEkNASALKAIAIg0tAAAhASACIA0pABg3APcBIAIgDSkAETcD8AEgAiANKQAJNwPoASACIA0pAAE3A+ABIAsgA0EgazYCBCALIA1BIGo2AgAgAiABOgABIAIgAikDgAI8AAAgAiACKQD3ATcAGSACIAIpA/ABNwASIAIgAikD6AE3AAogAiACKQPgATcAAiACQQE6ACELIE5CAXwhTgJAIAJBlAJqIg0oAgQiASANKAIIRwRAIA0gASACQSIQHUEiajYCBAwBCyMAQSBrIgEkACABQQxqIA0gDSgCBCANKAIAa0EibUEBahCsBSANKAIEIA0oAgBrQSJtIA1BCGoQhwQiAyADKAIIIAJBIhAdQSJqNgIIIA0gAxCGBCADEIUEIAFBIGokAAsMAQsLIAlBADoAwAEgCUEAOgAAQQEMAQsgAiACKQPgAjwAASACKALEAiEBIAJBADYCxAIgAiABNgIEIAIpAsgCIU0gAkIANwLIAiACIE03AgggAigClAIhASACQQA2ApQCIAIgATYCECACKQKYAiFNIAJCADcCmAIgAiBNNwIUIAIgAikDwAFCAFI6AAAgAkH0AmogAhDjAiACEIMCGkEACyEDIAJBlAJqEA8aDAQLIAlBADoAwAEgCUEAOgAAQQEhAwsgTkIBfCFOIAJB4AFqEDIaIANFDQELC0EBIQMLIE9CAXwhTyACQcQCahChBCADRQ0ACwwDCyAJQQA6AMABIAlBADoAAAwDCyAJQQA6AMABIAlBADoAAAwCCyACQeACaiALEBAgAi0A6AJFBEAgCUEAOgDAASAJQQA6AAAMAQsgAkHgAWoQSSIRIAIoAuACEPgIIAJBCGohAUIAIU4DQAJAAkACQCACKQPgAiBOVgRAIAJBwAFqIAsQTiACLQDMAUUNASACQdACaiALEBAgAi0A2AJFDQEgAkGwAmogCxBOAn8gAi0AvAJFBEAgCUEAOgDAASAJQQA6AABBAQwBCyACIAIpA9ACNwMAIAEgAikDsAI3AgAgASACKAK4AjYCCCACQQA2ArgCIAJCADcDsAIgAkGgAmogESACQcABaiACEPAHIAEQChpBAAshAyACQbACahAyGgwCCyACQdACaiALEBAgAi0A2AJFBEAgCUEAOgDAASAJQQA6AAAMAwsgAkHAAWoQSSINIAIoAtACEPgIIAJBCGohAUIAIU4DQAJAAkACQCACKQPQAiBOVgRAIAJBsAJqIAsQTiACLQC8AkUNASACQaACaiALEBAgAi0AqAJFDQEgAkGAAmogCxBOAn8gAi0AjAJFBEAgCUEAOgDAASAJQQA6AABBAQwBCyACIAIpA6ACNwMAIAEgAikDgAI3AgAgASACKAKIAjYCCCACQQA2AogCIAJCADcDgAIgAkHEAmogDSACQbACaiACEPAHIAEQChpBAAshAyACQYACahAyGgwCCyACQbACaiALEBAgAi0AuAJFBEAgCUEAOgDAASAJQQA6AAAMAwsgAkEANgLMAkIAIU4gAkIANwLEAiACKAKwAiEQIwBBIGsiAyQAAkAgECACQcQCaiITKAIIIBMoAgAiAWtBHG1LBEAgEEHKpJLJAE8NESATIANBDGogECATKAIEIAFrQRxtIBNBCGoQtAMiARCyBSABELEFCyADQSBqJAAMAAsCQANAIAIpA7ACIE5WBEAgAiALEBAgAi0ACEUEQCAJQQA6AMABIAlBADoAAAwDCyACQaACaiALEE4CQCACLQCsAkUEQCAJQQA6AMABIAlBADoAAEEBIQMMAQsgAkGAAmogCxBOAn8gAi0AjAJFBEAgCUEAOgDAASAJQQA6AABBAQwBCwJAIAJBxAJqIhMoAgQiASATKAIISQRAIAEgAikDAEIAUjoAACABIAIoAqgCNgIMIAEgAikCoAI3AgQgAkIANwKgAiACQQA2AqgCIAEgAigCiAI2AhggASACKQKAAjcCECACQgA3AoACIAJBADYCiAIgEyABQRxqNgIEDAELIwBBIGsiASQAIAFBDGogEyATKAIEIBMoAgBrQRxtQQFqEMkFIBMoAgQgEygCAGtBHG0gE0EIahC0AyIQKAIIIgMgAikDAEIAUjoAACADIAIoAqgCNgIMIAMgAikCoAI3AgQgAkIANwKgAiACQQA2AqgCIAMgAigCiAI2AhggAyACKQKAAjcCECACQgA3AoACIAJBADYCiAIgECAQKAIIQRxqNgIIIBMgEBCyBSAQELEFIAFBIGokACATKAIEGgtBAAshAyACQYACahAyGgsgTkIBfCFOIAJBoAJqEDIaIANFDQEMAgsLIAJBoAJqIAsQECACIAIpA9ADNwARIAIgAikD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1QBPBEAQGQALIABBGGwQGgssAQF/IwBBEGsiASQAIAEgADYCDCABKAIMKAIAIgAEQCAAEAwLIAFBEGokAAsYACAAQdaq1aoBTwRAEBkACyAAQQxsEBoLOgEDfyMAQRBrIgEkACABQQxqIgIgABAlIAIQcSIAQSAgACgCACgCHBEDACEDIAIQIiABQRBqJAAgAwsmACAAIAAoAhhFIAAoAhAgAXJyIgE2AhAgACgCFCABcQRAEBkACwsLACAAIAFBDBC9BAsMACAAIAAoAgAQtQkLPgECfyAAKAIEIQIDQCACIAAoAggiAUcEQCAAIAFB+ABrIgE2AgggARCPBhoMAQsLIAAoAgAiAARAIAAQDAsLjwEBA38gACgCBCEDIAAoAgAhBCABKAIEIQIDQCADIARHBEAgAkH4AGsgA0H4AGsiAxCLBiECDAELCyABIAI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACxUAIAAgASACIANB+ABBo8SIERDNAQsRACAALQAoBEAgAEEIahBECwuzAwECfyMAQUBqIgMkAAJAIAFCBVgEQAJAAkACQAJAAkACQCABp0EBaw4FAQIDBAUACyADQQE6ADggA0EANgIgIAAgA0EYahCyAiADQSBqEEQMBgsgA0EgaiADIAIQfCICEHwiBEECOgAYIAAgA0EYahCyAiAEEEQgAhA3DAULIANBAToAOCADQQE2AiAgACADQRhqELICIANBIGoQRAwECyADQQA6ADggACADQRhqELICIANBIGoQRAwDCyADIAIQ1AMiAigCCDYCCCADIAIpAgA3AwAgAkIANwIAIAJBADYCCCADQQQ6ADggAyADKAIINgIoIANBADYCCCADIAMpAwA3AyAgA0IANwMAIAAgA0EYahCyAiADQSBqEEQgAxAKGgwCCwJAIAJFDQACQAJAIAItABAOAgABAgsgAikDACEBIANBAzoAOCADIAE3AyAgACADQRhqELICIANBIGoQRAwDCyACKQMAIQEgA0EDOgA4IAMgATcDICAAIANBGGoQsgIgA0EgahBEDAILIABBADoAKCAAQQA6AAAMAQsgAEEAOgAoIABBADoAAAsgA0FAayQACwsAIAAg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AiAAQQJ0aiAIQQxqEIsBIAhBEGokAA8LEGwAC24BA38jAEEQayIEJAAgAQRAIAEgABAnIgMgABANIgJrSwRAIAAgAyABIANrIAJqIAIgAhCmBgsgAiAAECAiA2ogAUEAEOYJIAAgASACaiIAELgCIARBADoADyAAIANqIARBD2oQdgsgBEEQaiQACz0BAX8jAEEQayIDJAAgAyACOgAPA0AgAQRAIAAgAy0ADzoAACABQQFrIQEgAEEBaiEADAELCyADQRBqJAALFgAgACABIAJCgICAgICAgICAfxDECgsJACAAEDU2AgALIwECfyAAIQEDQCABIgJBBGohASACKAIADQALIAIgAGtBAnULDwAgACAAKAIAQQRrNgIACwoAIAAoAgBBBGsLLAAgACgCABogACgCABogABC1AhogACgCABogABC7ARogACgCABogABC1AhoLMAAjAEEQayICJAACQCAAIAFGBEAgAUEAOgB4DAELIAJBD2ogARD2CQsgAkEQaiQACywBAX8gACgCBCECA0AgASACRwRAIAAQtgIaIAJBBGshAgwBCwsgACABNgIECwkAIABBADYCAAsmACAAKAIAGiAAKAIAGiAAELUCGiAAKAIAGiAAELUCGiAAKAIAGgtLAQF/IwBBEGsiAyQAAkACQCACQR5LDQAgAS0AeA0AIAFBAToAeAwBCyADQQ9qIAIQ+AkhAQsgA0EQaiQAIAAgAjYCBCAAIAE2AgALRAECfyMAQRBrIgEkACAAELYCGiABQf////8DNgIMIAFB/////wc2AgggAUEMaiABQQhqEOQDKAIAIQIgAUEQaiQAIAILCwAgAEEANgIAIAALJwECfyMAQRBrIgEkACABIAA2AgwgAUEMahCpBiECIAFBEGokACACCzcBAX8jAEEQayIDJAAgAyABEPQJNgIMIAMgAhD0CTYCCCAAIANBDGogA0EIahDgBCADQRBqJAALCQAgAUEEEOgKCy4BAX8jAEEQayIDJAAgACACELgCIANBADoADyABIAJqIANBD2oQdiADQRBqJAALGwAgAUH/////A0sEQBAZAAsgAUECdEEEEOMKCwkAIAAQqgYQDAuJBgIEfwF+IwBBgAJrIgIkACABKAI4IQMgAiABKAI8IAEtAEMiBCAEwEEASCIEGyABKAIQIgVrNgL8ASACIAUgAyABQThqIAQbajYC+AEgAkHoAWogAkH4AWoQEAJAIAItAPABRQRAIABBADoAgAEgAEEAOgAADAELIAJBADYC5AEgAkIANwLcASACQdwBaiACKALoARDvAQJAAkADQCAGIAIpA+gBWg0BIAIoAvwBIgRBIE8EQCACIAIoAvgBIgMpAAg3AxAgAiADKQAQNwMYIAIgAykAGDcDICACIAMpAAA3AwggAiAEQSBrNgL8ASACQQE6ACggAiADQSBqNgL4ASAGQgF8IQYgAkHcAWogAkEIahCLAgwBCwsgAEEAOgCAASAAQQA6AAAMAQsgAkHMAWogAkH4AWoQTgJAIAItANgBRQRAIABBADoAgAEgAEEAOgAADAELIAJBuAFqIAJB+AFqEBAgAi0AwAFFBEAgAEEAOgCAASAAQQA6AAAMAQsgAkGoAWogAkH4AWoQECACLQCwAUUEQCAAQQA6AIABIABBADoAAAwBCyACQZgBaiACQfgBahB+IAItAKABRQRAIABBADoAgAEgAEEAOgAADAELIAJBiAFqIAJB+AFqEBACQCACLQCQAQRAIAIpA4gBIgYgAigC/AEiA61YDQELIABBADoAgAEgAEEAOgAADAELIAIgBqciBCACKAL4AWo2AvgBIAIgAyAEayIENgL8ASABKAI8IQUgAS0AQyEDIAIgASgCQDYCECACIAEpAzg3AwggAUIANwM4IAFBADYCQCACQRhqIAFBOBAdGiACIAIpAuABNwJUIAIgAigC3AE2AlAgAkEANgLkASACQgA3AtwBIAJB3ABqIAJBzAFqEBIaIAIgBSADIAPAQQBIGyAEa603A4ABIAIgAikDuAE3A2ggAiACKQOoATcDcCACIAIpA5gBNwN4IAAgAkEIaiIAEH1BAToAgAEgABBaGgsgAkHMAWoQMhoLIAJB3AFqEA8aCyACQYACaiQAC2wBAn8gASAAKAIEIAAoAgAgASgCBBDlCiICNgIEIAAoAgAhAyAAIAI2AgAgASADNgIEIAAoAgQhAiAAIAEoAgg2AgQgASACNgIIIAAoAgghAiAAIAEoAgw2AgggASACNgIMIAEgASgCBDYCAAszAQF/IAFBgICAgAFPBEAQAQALIAAgARCCDCICNgIEIAAgAjYCACAAIAIgAUEEdGo2AggLFQAgAEGgkAI2AgAgAEEQahAKGiAACxUAIABB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ahCKCwsgAiABIAEgAigCABDkCiAGQQxqIAMgACgCABACIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQ0gEhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASBsgAUHFAEgbQewOazYCAAsLrwEBA38gASgCBCECIAAoAgAhBCAAKAIEIQMDQCADIARGRQRAIAJBIGsiAiADQSBrIgMpAwA3AwAgAiADKQMYNwMYIAIgAykDEDcDECACIAMpAwg3AwgMAQsLIAEgAjYCBCAAKAIAIQMgACACNgIAIAEgAzYCBCAAKAIEIQIgACABKAIINgIEIAEgAjYCCCAAKAIIIQIgACABKAIMNgIIIAEgAjYCDCABIAEoAgQ2AgALQAAgAiADIABBCGogACgCCCgCBBECACIAIABBoAJqIAUgBEEAENkEIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQIAIgAgAEGoAWogBSAEQQAQ2QQgAGsiAEGnAUwEQCABIABBDG1BB282AgALC0IAIAEgAiADIARBBBDUASEBIAMtAABBBHFFBEAgACABQdAPaiABQewOaiABIAFB5ABIGyABQcUASBtB7A5rNgIACwtAACACIAMgAEEIaiAAKAIIKAIEEQIAIgAgAEGgAmogBSAEQQAQ2wQgAGsiAEGfAkwEQCABIABBDG1BDG82AgALC0AAIAIgAyAAQQhqIAAoAggoAgARAgAiACAAQagBaiAFIARBABDbBCAAayIAQacBTARAIAEgAEEMbUEHbzYCAAsLBABBAgvdAQEFfyMAQRBrIgckACMAQRBrIgMkAAJAIAFB7////wNNBEACQCABEMYEBEAgACABEHcgACEEDAELIANBCGogACABEIEDQQFqEIADIAMoAgwaIAAgAygCCCIEEJoBIAAgAygCDBCZASAAIAEQbQsjAEEQayIFJAAgBSACNgIMIAQhAiABIQYDQCAGBEAgAiAFKAIMNgIAIAZBAWshBiACQQRqIQIMAQsLIAVBEGokACADQQA2AgQgBCABQQJ0aiADQQRqEIsBIANBEGokAAwBCxBsAAsgB0EQaiQAIAALvwUBC38jAEEQayILJAAgBhB4IQogC0EEaiAGEIcDIg4QdCAFIAM2AgACQAJAIAAiCC0AACIG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BEAgBEGBgICABGohAgwCCyAEQYCAgIAEaiECIAAgBUKAgIAIhYRCAFINASACIARBAXFqIQIMAQsgAFAgBUKAgICAgIDA//8AVCAFQoCAgICAgMD//wBRG0UEQCABQhmIp0H///8BcUGAgID+B3IhAgwBC0GAgID8ByECIAVC////////v7/AAFYNAEEAIQIgBUIwiKciBEGR/gBJDQAgA0EQaiAAIAFC////////P4NCgICAgICAwACEIgUgBEGB/gBrEGggAyAAIAVBgf8AIARrEMYCIAMpAwgiAEIZiKchAiADKQMAIAMpAxAgAykDGIRCAFKthCIFUCAAQv///w+DIgBCgICACFQgAEKAgIAIURtFBEAgAkEBaiECDAELIAUgAEKAgIAIhYRCAFINACACQQFxIAJqIQILIANBIGokACACIAFCIIinQYCAgIB4cXK+C40EAgR/AX4CQAJAAn8CQAJAAn8gACgCBCICIAAoAmhHBEAgACACQQFqNgIEIAItAAAMAQsgABArCyICQStrDgMAAQABCyACQS1GIAFFAn8gACgCBCIDIAAoAmhHBEAgACADQQFqNgIEIAMtAAAMAQsgABArCyIDQTprIgFBdUtyDQEaIAApA3BCAFMNAiAAIAAoAgRBAWs2AgQMAgsgAkE6ayEBIAIhA0EACyEEIAFBdkkNAAJAIANBMGtBCk8NAEEAIQIDQCADIAJBCmxqIQUCfyAAKAIEIgIgACgCaEcEQCAAIAJBAWo2AgQgAi0AAAwBCyAAECsLIQMgBUEwayECIAJBzJmz5gBIIANBMGsiAUEJTXENAAsgAqwhBiABQQpPDQADQCADrSAGQgp+fCEGAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABArCyIDQTBrIgFBCU0gBkIwfSIGQq6PhdfHwuujAVNxDQALIAFBCk8NAANAAn8gACgCBCIBIAAoAmhHBEAgACABQQFqNgIEIAEtAAAMAQsgABArC0Ewa0EKSQ0ACwsgACkDcEIAWQRAIAAgACgCBEEBazYCBAtCACAGfSAGIAQbIQYMAQtCgICAgICAgICAfyEGIAApA3BCAFMNACAAIAAoAgRBAWs2AgRCgICAgICAgICAfw8LIAYLlDIDEX8HfgF8IwBBMGsiDiQAAkAgAkECTQRAIAJBAnQi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Bg0BDAQLDAELA0AgGEIAWQRAIAEgASgCBEEBazYCBAsgBkEBayIGDQALDAILQbDBAkEcNgIAIAFCABC/AQtCACEVCyAAIBY3AwAgACAVNwMIIA5BMGokAAvKBgIFfwR+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAEMcCRQ0AAn8gBEL///////8/gyELAn8gBEIwiKdB//8BcSIGQf//AUcEQEEEIAYNARpBAkEDIAMgC4RQGwwCCyADIAuEUAsLIQkgAkIwiKciCEH//wFxIgdB//8BRg0AIAkNAQsgBUEQaiABIAIgAyAEEDkgBSAFKQMQIgIgBSkDGCIBIAIgARDdCiAFKQMIIQIgBSkDACEEDAELIAEgAkL///////////8AgyILIAMgBEL///////////8AgyIKEMcCQQBMBEAgASALIAMgChDHAgRAIAEhBAwCCyAFQfAAaiABIAJCAEIAEDkgBSkDeCECIAUpA3AhBAwBCyAEQjCIp0H//wFxIQYgBwR+IAEFIAVB4ABqIAEgC0IAQoCAgICAgMC7wAAQOSAFKQNoIgtCMIinQfgAayEHIAUpA2ALIQQgBkUEQCAFQdAAaiADIApCAEKAgICAgIDAu8AAEDkgBSkDWCIKQjCIp0H4AGshBiAFKQNQIQMLIApC////////P4NCgICAgICAwACEIQwgC0L///////8/g0KAgICAgIDAAIQhCyAGIAdIBEADQAJ+IAsgDH0gAyAEVq19IgpCAFkEQCAKIAQgA30iBIRQBEAgBUEgaiABIAJCAEIAEDkgBSkDKCECIAUpAyAhBAwFCyAKQgGGIARCP4iEDAELIAtCAYYgBEI/iIQLIQsgBEIBhiEEIAdBAWsiByAGSg0ACyAGIQcLAkAgCyAMfSADIARWrX0iCkIAUwRAIAshCgwBCyAKIAQgA30iBIRCAFINACAFQTBqIAEgAkIAQgAQOSAFKQM4IQIgBSkDMCEEDAELIApC////////P1gEQANAIARCP4ghDSAHQQFrIQcgBEIBhiEEIA0gCkIBhoQiCkKAgICAgIDAAFQNAAsLIAhBgIACcSEGIAdBAEwEQCAFQUBrIAQgCkL///////8/gyAHQfgAaiAGcq1CMIaEQgBCgICAgICAwMM/EDkgBSkDSCECIAUpA0AhBAwBCyAKQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALqg8CBX8PfiMAQdACayIFJAAgBEL///////8/gyELIAJC////////P4MhCiACIASFQoCAgICAgICAgH+DIQ0gBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyIMQoCAgICAgMD//wBUIAxCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDQwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCENIAMhAQwCCyABIAxCgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDQwDCyANQoCAgICAgMD//wCEIQ1CACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDIRQBEBCgICAgICA4P//ACANIAIgA4RQGyENQgAhAQwCCyACIAOEUARAIA1CgICAgICAwP//AIQhDUIAIQEMAgsgDEL///////8/WARAIAVBwAJqIAEgCiABIAogClAiBht5IAZBBnStfKciBkEPaxBoQRAgBmshBiAFKQPIAiEKIAUpA8ACIQELIAJC////////P1YNACAFQbACaiADIAsgAyALIAtQIgcbeSAHQQZ0rXynIgdBD2sQaCAGIAdqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABAoIAVBkAJqQgAgBSkDqAJ9QgAgBEIAECggBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQKCAFQfABaiAEQgBCACAFKQOIAn1CABAoIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAECggBUHQAWogBEIAQgAgBSkD6AF9QgAQKCAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABAoIAVBsAFqIARCAEIAIAUpA8gBfUIAECggBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQ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QCACIAQQNkUNACADIAMoAhQpAwA3AwggAyAENgIEIAMoAhQhAgNAAkAgAiADKAIEKQMANwMAIAAgAygCBCICRgRAIAAhAgwBCyADIAJBCGsiBDYCBCADQQhqIAQQNg0BCwsgAiADKQMINwMAIAZBAWoiBkEIRw0AIAMoAhRBCGogAUYhBQwCCyADKAIUIgRBCGohAgwACwALIANBIGokACAFC80BAQF/IwBBIGsiBiQAIAYgATYCGCAGIAA2AhwgBiACNgIUIAYgAzYCECAGIAQ2AgwgACABIAIgAyAFEIsLIQUCQCAEIAMQNkUNACAGQRBqIAZBDGoQWyAGKAIQIAIQNkUEQCAFQQFqIQUMAQsgBkEUaiAGQRBqEFsgBigCFCABEDZFBEAgBUECaiEFDAELIAZBGGogBkEUahBbIAYoAhggABA2RQRAIAVBA2ohBQwBCyAFQQRqIQUgBkEcaiAGQRhqEFsLIAZBIGokACAFCxIAIAAgASACIAMgBCAFEI0LGgsQACAAIAEgAiADIAQQiwsaC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLcgEBfyMAQRBrIgMkAAJAIAAtABBBAUYEQCABIAIpAwA3AwAgASACKQMINwMIDAELIAMgAjYCDCADIAA2AgggAygCDCEBIAMoAggiABDJASAAIAEpAwg3AwggACABKQMANwMAIABBAToAEAsgA0EQaiQACxMAIABBACABQYDAAigCABEFABoLhAUBC38gASgCACIEKAIcIQsDQAJAIAQoAhggCk0EQEEBDwsCQAJAAkACQCALIApBMGxqIgMoAghBAWsOAwEAAQILIAAgAygCECIGaiIEKAIAIghFDQEgASADKAIUIgVqIQcgACAFaiEFAkAgASAGaiIGKAIABEAgAygCDBDIAiEDIAIoAgggAyAGKAIAIAQoAgBqbCACKAIAEQMAIghFDQQgCCAFKAIAIAQoAgAgA2wQHSIIIAQoAgAgA2xqIAcoAgAgBigCACADbBAdGiAHKAIAIgMEQCACKAIIIAMgAigCBBEAAAsgBSgCACIDBEAgAigCCCADIAIoAgQRAAALIAcgCDYCACAGIAYoAgAgBCgCAGo2AgAMAQsgBiAINgIAIAcgBSgCADYCAAsgBEEANgIAIAVBADYCAAwBCyABIAMoAhAiBmohCCAAIAZqIQYgAy0AIEEEcQRAIAgoAgANASAEKAIkIAQoAiggBigCABDXBiIDQQBIDQMgBCgCHCADQTBsaiEDCyABIAMoAhQiBGohByAAIARqIQQgAygCHCEFAkACQAJAAkACQAJAIAMoAgwiDEEOaw4DAgEAAwsgBCgCACIFRQ0FIAcoAgAiCUUNBCAFIAkgAhCTC0UNBgwFCyAEKAIEIg1FDQQgBygCBCEJIAVFDQIgDSAFKAIEIgVGDQQgCUUgBSAJRnINAwwECyAEKAIAIAVGDQMgBygCACAFRg0CDAMLIAYoAgBFDQIgCCgCAA0CDAELIAkNAQsgByAEIAwQyAIiBxAdGiAEQQAgBxAeGiADKAIQRQ0AIAggBigCADYCACAGQQA2AgALIApBAWohCiABKAIAIQQMAgsLC0EACy4BA38DQCAAIAJGBEBBAA8LIAEgAmohBCACQQFqIQIgBC0AAEH/AHFFDQALQQELMAAgABDJASAAIAEoAgg2AgggACABKQIANwIAIAFCADcCACABQQA2AgggAEEAOgAQC5cFAQJ/IwBBIGsiAyQAIAAoAgQgAxDYBiEEAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCDA4RAAsEAwIFAQQDBQQFBgAHCAkKCyACIAEoAgAgAyAEahCaCyAEaiIAIAMgAigCABEEAAwLCyACIAEoAgAgAyAEahDdASAEaiIAIAMgAigCABEEAAwKCyACIAEpAwAgAyAEahCYCyAEaiIAIAMgAigCABEEAAwJCyACIAEpAwAgAyAEahDrBCAEaiIAIAMgAigCABEEAAwICyADIAMtAABBBXI6AAAgAyAEaiABKAIANgAAIAIgBEEEaiIAIAMgAigCABEEAAwHCyADIAMtAABBAXI6AAAgAyAEaiABKQMANwAAIAIgBEEIaiIAIAMgAigCABEEAAwGCyADIARqIAEoAgBBAEc6AAAgAiAEQQFqIgAgAyACKAIAEQQADAULIAEoAgAiAQR/IAEQ3AEFQQALIQAgAyADLQAAQQJyOgAAIAIgACADIARqEN0BIARqIgQgAyACKAIAEQQAIAIgACABIAIoAgARBAAgACAEaiEADAQLIAEoAgAhACADIAMtAABBAnI6AAAgAiAAIAMgBGoQ3QEgBGoiBCADIAIoAgARBAAgAiAAIAEoAgQgAigCABEEACAAIARqIQAMAwsgASgCACEAIAMgAy0AAEECcjoAACAARQRAIAMgBGpBADoAACACIARBAWoiACADIAIoAgARBAAMAwsgAiAAEFwiASADIARqEN0BIARqIgQgAyACKAIAEQQAIAAgAhBpIAEgBGohAAwCC0GLzwBBkccAQekMQfYjEAAACyACIAEoAgAgAyAEahCZCyAEaiIAIAMgAigCABEEAAsgA0EgaiQAIAALQwEBfyMAQRBrIgMkAAJAIAAtABBFBEAgASACEBwMAQsgAyACNgIMIAMgADYCCCADKAIIIAMoAgwQlQsLIANBEGokAAsSACAAQgGGIABCP4eFIAEQ6wQLEgAgAEEBdCAAQR91cyABEN0BC2UAIABBAEgEQCABQQE6AAkgAUF/NgAFIAEgAEGAAXI6AAAgASAAQRx1QYABcjoABCABIABBFXZBgAFyOgADIAEgAEEOdkGAAXI6AAIgASAAQQd2QYABcjoAAUEKDwsgACABEN0BCw4AIAAoAgAgASACEJELC4UBAQF/QQEhAgJAAkACQAJAAkACQAJAAkAgACgCDA4RAQEBAgICAQECAgMEAAEFBgYHCyABKAIARQ8LIAEoAgBFDwsgASkDAFAPCyABKgIAQwAAAABbDwsgASsDAEQAAAAAAAAAAGEPCyABKAIAIgBFDQEgAC0AAEUPCyABKAIARSECCyACCw0AIABB1KIBQSQQHRoLDQAgAEHgoQFBOBAdGgsNACAAQZigAUEwEB0aCzIAIABBhJ8BKAIANgIYIABB/J4BKQIANwIQIABB9J4BKQIANwIIIABB7J4BKQIANwIACw4AIABB6J0BQcgAEB0aCw0AIABBqJwBQSgQHRoLJgAgAEHkmwEpAgA3AhAgAEHcmwEpAgA3AgggAEHUmwEpAgA3AgALDQAgAEH0mgFBJBAdGgsNACAAQdCYAUE4EB0aCyYAIABBiJgBKQMANwMQIABBgJgBKQMANwMIIABB+JcBKQMANwMACyYAIABBtJcBKAIANgIQIABBrJcBKQIANwIIIABBpJcBKQIANwIACy8AIAAQRCAAIAEoAgg2AgggACABKQIANwIAIAFCADcCACABQQA2AgggAEEEOgAYCzIAIABB5JYBKAIANgIYIABB3JYBKQIANwIQIABB1JYBKQIANwIIIABBzJYBKQIANwIACzIAIABBmJMBKQMANwMYIABBkJMBKQMANwMQIABBiJMBKQMANwMIIABBgJMBKQMANwMACw4AIABBiJEBQcAAEB0aCyYAIABBxJABKAIANgIQIABBvJABKQIANwIIIABBtJABKQIANwIACw0AIABBwI8BQTgQHRoLRQEBfyMAQRBrIgMkAAJAIAAtABhBBEYEQCABIAIQHAwBCyADIAI2AgwgAyAANgIIIAMoAgggAygCDBCoCwsgA0EQaiQACw0AIABB8O8AQTAQHRoLDgAgAEH47ABB4AAQHRoLDQAgAEHY6QBBKBAdGgsNACAAIAEgAkEHEMkJCz0BAX8jAEEQayICJAAgAC0AEEEGRwRAIAIgATYCDCACIAA2AgggAigCCCIAEDcgAEEGOgAQCyACQRBqJAALcQEBfyMAQRBrIgMkAAJAIAAtABBBBUYEQCABIAIpAwA3AwAgASACKQMINwMIDAELIAMgAjYCDCADIAA2AgggAygCDCEBIAMoAggiABA3IAAgASkDCDcDCCAAIAEpAwA3AwAgAEEFOgAQCyADQRBqJAALLwAgABA3IAAgASgCCDYCCCAAIAEpAgA3AgAgAUIANwIAIAFBADYCCCAAQQQ6ABALFQAgAEGw5gA2AgAgAEEIahAKGiAACw4AIABBCGoQChogABAMCwoAIABBCGoQChoLFQAgAEGM5gA2AgAgAEEIahAKGiAACxUAIABBoOUANgIAIABBBGoQbxogAAtFAQF/IwBBEGsiAyQAAkAgAC0AEEEERgRAIAEgAhAcDAELIAMgAjYCDCADIAA2AgggAygCCCADKAIMELULCyADQRBqJAALbAECfyABIAAoAgQgACgCACABKAIEEOkKIgI2AgQgACgCACEDIAAgAjYCACABIAM2AgQgACgCBCECIAAgASgCCDYCBCABIAI2AgggACgCCCECIAAgASgCDDYCCCABIAI2AgwgASABKAIENgIACw4AIABBBGoQbxogABAMCwoAIABBBGoQbxoLFQAgAEH85AA2AgAgAEEEahBvGiAAC2IAIAAgASgCADYCACAAQQRqIAIQIxogACADKAIINgIYIAAgAykCADcCECADQgA3AgAgA0EANgIIIAAgBCkDADcDICAAIAUoAgA2AiggACAGKAIANgIsIAAgBy0AADoAMCAACxMAIABBEGoQChogAEEEahA/IAALDQAgACABIAJBAxDJCQtjAgJ/AXwjAEEQayIDJAACQCAALQAQQQJGBEAgASACKwMAOQMADAELIAMgAjYCDCADIAA2AgggAygCDCEEIAMoAggiABA3IAQrAwAhBSAAQQI6ABAgACAFOQMACyADQRBqJAALYwICfwF+IwBBEGsiAyQAAkAgAC0AEEEBRgRAIAEgAikDADcDAAwBCyADIAI2AgwgAyAANgIIIAMoAgwhBCADKAIIIgAQNyAEKQMAIQUgAEEBOgAQIAAgBTcDAAsgA0EQaiQAC2ECAn8BfiMAQRBrIgMkAAJAIAAtABBFBEAgASACKQMANwMADAELIAMgAjYCDCADIAA2AgggAygCDCEEIAMoAggiABA3IAQpAwAhBSAAQQA6ABAgACAFNwMACyADQRBqJAALDgAgACgCACABIAIQsgsLxgEBB38CfyABENACIQQCQCAAKAKMBCIDRQ0AIAAoAogEAn8gA0EBayAEcSADaSICQQFNDQAaIAQgAyAESw0AGiAEIANwCyIGQQJ0aigCACIFRQ0AIANBAWshByACQQFLIQgDQCAFKAIAIgVFDQEgBSgCBCICIARHBEACQCAIRQRAIAIgB3EhAgwBCyACIANJDQAgAiADcCECCyACIAZHDQIMAQsgBUEIaiABECRFDQALIAUMAQtBAAsiAUEUaiAAQawPaiABGwsMACAAKAIAIAIQswsLQQEDfwJAIAAtALABDQAgACgCqAMhAiAAKAKkAyEAA0AgACACRiIBDQEgACIDQcgAaiEAIAMpAzhCAFUNAAsLIAELzwUBDn8jAEGQAWsiBSQAAkAgAC0ArAJFDQBBARAXBEAgBUEIahATIQwgBUEBNgIEIAwgAEHoA2oQEUG0ERAOGiAFQQRqEBYLIwBBkAFrIgMkACAAQRBqIgEoAqQBIQQgASgCoAEhAgNAIAIgBEYEQCABIAEpA+ABNwPoAUEBEBcEQCADQQhqEBMhDSADQQE2AgQgDSABQYACahARQaHSABAOIAEpA+gBEIEBGiADQQRqEBYLIANBkAFqJAAFIAJBAToALCACQTBqIQIMAQsLIABBpAJqIQggACgCoAIhAANAIAAgCEYNASMAQaABayIDJAACQCAAQSBqIgEtAKgDRQ0AIAEoAoQBIAEoAoABayABKAKAAyABKAL8AmtGDQBBABAXBEAgA0EYahATIQ4gA0EANgIUIA4gAUG8A2oQEUHg0wAQDiABKAKEASABKAKAAWtBBXUQbhogA0EUahAWCyABQZgCaiIHIAFB0AFqEPYDIAEgASgCwAI2AsQCIAEgASgChAEgASgCgAFrQQV1rTcDuAIgAUHAAmohCSABKAK8ASEKIAEoArgBIQIDQCACIApGBEAgA0EUaiICIAEgB0EBIAEpA4gCEIoHIAFBzAJqIAIQHCACEAoaIAIgASAHQQAgASkDiAIQigcgAUHYAmogAhAcIAIQChogASgCXCEEIAEoAlghAQNAIAEgBEcEQAJAIAFBEGoiAi0AuAFFBEAgAkEIahCUBwwBCyACEHAQ3wcLIAFB+AFqIQEMAQsLBSADQRRqIgRBADYCCCAEQgA3AgAgAigCBCIGIAIoAgAiC0cEQCAEIAYgC2tBA3UiBhCbByAEIAIoAgAgAigCBCAGEPUDCyADIAMoAhggBCgCAGtBA3WtNwMIIAkgA0EIahBUIAQQDxogAkEMaiECDAELCwsgA0GgAWokACAAELUBIQAMAAsACyAFQZABaiQACw4AIAAoAgAgASACELQLC14BA38jAEEQayIBJAAgASAANgIMIAEoAgwiACgCAARAIAAoAgAhAyAAKAIEIQIDQCACIANHBEAgAkE4axDBCyECDAELCyAAIAM2AgQgASgCDCgCABAMCyABQRBqJAALsAEBA38CQCAALQAoIgIgAS0AKEYEQCACRQ0BIwBBEGsiAiQAAkAgAUEIaiIBLQAYIgNB/wFGIgQgAEEIaiIALQAYQf8BRnENACAEBEAgABCDAQwBCyACIAA2AgQgAkHI5AApAwA3AwggAkEEaiAAIAEgAkEIaiADQQJ0aigCABEEAAsgAkEQaiQADwsgAgRAIAAtACgEQCAAQQhqEIMBIABBADoAKAsPCyAAIAEQ7gYLC7QBAQJ/IAAtAOADBEAgABDrBiAAQQA6AOADCyMAQRBrIgIkACABKAIAIQMgAkEEakGo2AAQCyEBIABBADYCACAAIAEoAgg2AgwgACABKQIANwIEIAFCADcCACABQQA2AgggAEEQahCIDCAAQQA6AKADIABBADoAgAMgAEGkA2oQ7gEgAEIANwPQAyAAQgA3A8gDIABBATsB2AMgACADEIAHIAEQChogAEEBOgDgAyACQRBqJAALmgEBA38gAEEANgIIIABCADcCACABKAIEIgIgASgCACIDRwRAIAIgA2tBDG0iAkHWqtWqAU8EQBABAAsgACACELIJIgM2AgQgACADNgIAIAAgAyACQQxsajYCCCAAIQQgASgCACECIAEoAgQhASAAKAIEIQADQCABIAJHBEAgACACEBJBDGohACACQQxqIQIMAQsLIAQgADYCBAsLDQAgACABQcDiABDYCQsOACAAKAIAIAEgAhDCCwsSACAAEMIBIAAgARB8QQA6ABgLFgAgAC0ArAIEQCAAQcgCaiABEN4BCwsOACAAKAIAIAEgAhDDCwsXACAALQCsAkUEQCAAQbACaiABEN4BCwsOACAAKAIAIAEgAhDECwu7AQEBfyMAQYABayIEJAAgBCACKQMINwM4IAQgAikDADcDMCAEQRhqIAMQowIhAiAEIAQpAzg3AxAgBCAEKQMwNwMIIARBQGsiAyABIARBCGogAhDDASACECoCQAJAIAQtAHhFDQAgAxDAASIBLQAoRQ0AQQEhAiABLQAgQQFHDQAgACABKQMYNwMIIAAgASkDEDcDAAwBC0EAIQIgAEEAOgAACyAAIAI6ABAgBEHIAGoQsQEgBEGAAWokAAtcAQN/IwBBEGsiAiQAAkAgAS0AGCIDQf8BRiIEIAAtABhB/wFGcQ0AIAQEQCAAEMIBDAELIAIgADYCDCACQQxqIAAgASADQQJ0QejhAGooAgARBAALIAJBEGokAAsOACAAKAIAIAEgAhDFCwsJACAAQQAQ3QYLGAEBf0EMEBoiAEEANgIIIABCADcCACAACxEAIAAQRCAAIAEQfEECOgAYCwkAIABBAxD/AgsJACAAQQIQ/wILRgEBfyMAQRBrIgMkAAJAIAAtABhBAkYEQCABIAIQ8AQMAQsgAyACNgIMIAMgADYCCCADKAIIIAMoAgwQ3AsLIANBEGokAAthAQJ/IwBB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EAoaIAYQChogAEHAAmokACAIC9EDAgF+AX8jAEGAA2siACQAIAAgAjYC+AIgACABNgL8AiAAQdwBaiADIABB8AFqIABB7AFqIABB6AFqELUGIABB0AFqECYiASABECcQHyAAIAFBABAhIgI2AswBIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABB/AJqIABB+AJqEC4NACAAKALMASABEA0gAmpGBEAgARANIQMgASABEA1BAXQQHyABIAEQJxAfIAAgAyABQQAQISICajYCzAELIABB/AJqIgMQSyAAQRdqIABBFmogAiAAQcwBaiAAKALsASAAKALoASAAQdwBaiAAQSBqIABBHGogAEEYaiAAQfABahC0Bg0AIAMQVRoMAQsLAkAgAEHcAWoQDUUNACAALQAXRQ0AIAAoAhwiAyAAQSBqa0GfAUoNACAAIANBBGo2AhwgAyAAKAIYNgIACyAAIAIgACgCzAEgBBC4CiAAKQMAIQYgBSAAKQMINwMIIAUgBjcDACAAQdwBaiAAQSBqIAAoAhwgBBBlIABB/AJqIABB+AJqEC4EQCAEIAQoAgBBAnI2AgALIAAoAvwCIQcgARAKGiAAQdwBahAKGiAAQYADaiQAIAcLugMBAX8jAEHwAmsiACQAIAAgAjYC6AIgACABNgLsAiAAQcwBaiADIABB4AFqIABB3AFqIABB2AFqELUGIABBwAFqECYiASABECcQHyAAIAFBABAhIgI2ArwBIAAgAEEQajYCDCAAQQA2AgggAEEBOgAHIABBxQA6AAYDQAJAIABB7AJqIABB6AJqEC4NACAAKAK8ASABEA0gAmpGBEAgARANIQMgASABEA1BAXQQHyABIAEQJxAfIAAgAyABQQAQISICajYCvAELIABB7AJqIgMQSyAAQQdqIABBBmogAiAAQbwBaiAAKALcASAAKALYASAAQcwBaiAAQRBqIABBDGogAEEIaiAAQeABahC0Bg0AIAMQVRoMAQsLAkAgAEHMAWoQDUUNACAALQAHRQ0AIAAoAgwiAyAAQRBqa0GfAUoNACAAIANBBGo2AgwgAyAAKAIINgIACyAFIAIgACgCvAEgBBC5CjkDACAAQcwBaiAAQRBqIAAoAgwgBBBlIABB7AJqIABB6AJqEC4EQCAEIAQoAgBBAnI2AgALIAAo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cjYCAAsgACgC/AEhCCADEAoaIAYQChogAEGAAmokACAIC9EDAgF+AX8jAEGQAmsiACQAIAAgAjYCiAIgACABNgKMAiAAQdABaiADIABB4AFqIABB3wFqIABB3gFqELgGIABBxAFqECYiASABECcQHyAAIAFBABAhIgI2AsABIAAgAEEgajYCHCAAQQA2AhggAEEBOgAXIABBxQA6ABYDQAJAIABBjAJqIABBiAJqEC8NACAAKALAASABEA0gAmpGBEAgARANIQMgASABEA1BAXQQHyABIAEQJxAfIAAgAyABQQAQISICajYCwAELIABBjAJqIgMQTCAAQRdqIABBFmogAiAAQcABaiAALADfASAALADeASAAQdABaiAAQSBqIABBHGogAEEYaiAAQeABahC3Bg0AIAMQVhoMAQsLAkAgAEHQAWoQDUUNACAALQAXRQ0AIAAoAhwiAyAAQSBqa0GfAUoNACAAIANBBGo2AhwgAyAAKAIYNgIACyAAIAIgACgCwAEgBBC4CiAAKQMAIQYgBSAAKQMINwMIIAUgBjcDACAAQdABaiAAQSBqIAAoAhwgBBBlIABBjAJqIABBiAJqEC8EQCAEIAQoAgBBAnI2AgALIAAoAowCIQcgARAKGiAAQdABahAKGiAAQZACaiQAIAcLCQAgAEEDENwJC7oDAQF/IwBBgAJrIgAkACAAIAI2AvgBIAAgATYC/AEgAEHAAWogAyAAQdABaiAAQc8BaiAAQc4BahC4BiAAQbQBahAmIgEgARAnEB8gACABQQAQISICNgKwASAAIABBEGo2AgwgAEEANgIIIABBAToAByAAQcUAOgAGA0ACQCAAQfwBaiAAQfgBahAvDQAgACgCsAEgARANIAJqRgRAIAEQDSEDIAEgARANQQF0EB8gASABECcQHyAAIAMgAUEAECEiAmo2ArABCyAAQfwBaiIDEEwgAEEHaiAAQQZqIAIgAEGwAWogACwAzwEgACwAzgEgAEHAAWogAEEQaiAAQQxqIABBCGogAEHQAWoQtwYNACADEFYaDAELCwJAIABBwAFqEA1FDQAgAC0AB0UNACAAKAIMIgMgAEEQamtBnwFKDQAgACADQQRqNgIMIAMgACgCCDYCAAsgBSACIAAoArABIAQQuQo5AwAgAEHAAWogAEEQaiAAKAIMIAQQZSAAQfwBaiAA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ADcCECAAQYyhASkCADcCCCAAQYShASkCADcCAAsmACAAQdSfASgCADYCECAAQcyfASkCADcCCCAAQcSfASkCADcCAAsOACAAKAIAIAEgAhCXCwsyACAAQaSdASgCADYCGCAAQZydASkCADcCECAAQZSdASkCADcCCCAAQYydASkCADcCAAsyACAAQbCaASkDADcDGCAAQaiaASkDADcDECAAQaCaASkDADcDCCAAQZiaASkDADcDAAsmACAAQdSZASkCADcCECAAQcyZASkCADcCCCAAQcSZASkCADcCAAsmACAAQaCVASkCADcCECAAQZiVASkCADcCCCAAQZCVASkCADcCAAsyACAAQcyUASkCADcCGCAAQcSUASkCADcCECAAQbyUASkCADcCCCAAQbSUASkCADcCAAsyACAAQfSTASgCADYCGCAAQeyTASkCADcCECAAQeSTASkCADcCCCAAQdyTASkCADcCAAsNACAAQYiSAUE4EB0aCw4AIABB4PAAQdAAEB0aCxoAIABBrO8AKAIANgIIIABBpO8AKQIANwIACw4AIABBmO4AQdAAEB0aCw0AIABBlOwAQSgQHRoLDQAgAEGw6wBBKBAdGgsNACAAQcDqAEEwEB0aC2gBAn8jAEEQayICJAAgAiABKAIINgIIIAIgASkCADcDACABQgA3AgAgAUEANgIIIAIoAgAgAiACLQALIgHAQQBIIgMbIAIoAgQgASADG60gACgCCCAAKAIEESwAIAIQChogAkEQaiQACxUAIAFBvOkANgIAIAEgACkCBDcCBAsLACAAQbzpABCJAQtxAQJ/IwBBEGsiAyQAIAEoAgAhBCADIAIoAgg2AgggAyACKQIANwMAIAJCADcCACACQQA2AgggBCADKAIAIAMgAy0ACyIBwEEASCICGyADKAIEIAEgAhutIAAoAgggACgCBBEcACADEAoaIANBEGokAAsVACABQZjpADYCACABIAApAgQ3AgQLCwAgAEGY6QAQiQELzAIBAn8jAEFAaiIFJAAgASgCACEGIAUgAkEIaigCADYCKCAFIAIpAgA3AyAgAkIANwIAIAJBADYCCCAFIAMoAgg2AhggBSADKQIANwMQIANCADcCACADQQA2AgggBSAEKAIAIgI2AgQgBSAEKAIEIgM2AgggBSAEKAIINgIMIARBADYCCCAEQgA3AgAgBUEANgI8IAVCADcCNCAFQTRqIAMgAmtBDG0QxgEDQCACIANGRQRAIAUgAigCACACIAIsAAtBAEgbNgIwIAJBDGohAiAFQTRqIAVBMGoQngEMAQsLIAYgBSgCICAFQSBqIgIgBSwAK0EASBsgBSgCECAFQRBqIgMgBSwAG0EASBsgBSgCNCIBIAUoAjggAWtBAnWtIAAoAgggACgCBBFJACAFQTRqEA8aIAVBBGoQPyADEAoaIAIQChogBUFAayQACxUAIAFB9OgANgIAIAEgACkCBDcCBAsLACAAQfToABCJAQu2AQECfyMAQSBrIgUkACACLQAAIQIgASgCACEGIAUgAygCCDYCGCAFIAMpAgA3AxAgA0IANwIAIANBADYCCCAFIAQoAgg2AgggBSAEKQIANwMAIARCADcCACAEQQA2AgggBiACIAUoAhAgBUEQaiIDIAUtABsiAcBBAEgiAhsgBSgCFCABIAIbrSAFKAIAIAUgBSwAC0EASBsgACgCCCAAKAIEESAAIAUQChogAxAKGiAFQSBqJAALFQAgAUHQ6AA2AgAgASAAKQIENwIECwsAIABB0OgAEIkBCxUAIAFBrOgANgIAIAEgACkCBDcCBAsLACAAQazoABCJAQsVACABQYjoADYCACABIAApAgQ3AgQLCwAgAEGI6AAQiQELFQAgAUHk5wA2AgAgASAAKQIENwIECwsAIABB5OcAEIkBCxUAIAFBwOcANgIAIAEgACkCBDcCBAsLACAAQcDnABCJAQsVACABQZznADYCACABIAApAgQ3AgQLCwAgAEGc5wAQiQELFQAgAUH45gA2AgAgASAAKQIENwIECwsAIABB+OYAEIkBC8QCAgN/AX4jAEEwayIFJAAgASgCACEGIAUgAigCACIBNgIIIAUgAigCBCIHNgIMIAUgAigCCDYCECACQQA2AgggAkIANwIAAkAgBgRAIAZBAEEAQgBBACAAKAIIIAAoAgQRIAAMAQsgBC0AACECIAMpAwAhCCAFQQA2AiwgBUIANwIkIAVBADYCICAFQgA3AhggBUEkaiAHIAFrQRhtIgMQxgEgBUEYaiADEMYBA0AgASAHRgRAQQAgBSgCJCAFKAIYIAggAiAAKAIIIAAoAgQRIAAgBUEYahAPGiAFQSRqEA8aBSAFIAEoAgAgASABLAALQQBIGzYCFCAFQSRqIAVBFGoiAxCeASAFIAEoAgwgAUEMaiABLAAXQQBIGzYCFCABQRhqIQEgBUEYaiADEJ4BDAELCwsgBUEIahD0BCAFQTBqJAALFQAgAUHU5gA2AgAgASAAKQIENwIECwsAIABB1OYAEIkBCykAIAEoAgAgAEEIaiIBKAIAIAEgACwAE0EASBsgACgCFCAAKAIEEQQACxgAIAFBsOYANgIAIAFBBGogAEEEahDuBAsgAQF/QRgQGiIBQbDmADYCACABQQRqIABBBGoQ7gQgAQsJACAAELYLEAwLhgEBAn8jAEEQayIDJAAgASgCACEEIAMgAigCCDYCCCADIAIpAgA3AwAgAkIANwIAIAJBADYCCCAEIABBCGoiASgCACABIAAsABNBAEgbIAMoAgAgAyADLQALIgHAQQBIIgIbIAMoAgQgASACG60gACgCFCAAKAIEETAAIAMQChogA0EQaiQACxgAIAFBjOYANgIAIAFBBGogAEEEahDuBAsgAQF/QRgQGiIBQYzmADYCACABQQRqIABBBGoQ7gQgAQsJACAAELkLEAwLlAEBAX8jAEEgayIDJAAgAyABKAIINgIYIAMgASkCADcDECABQgA3AgAgAUEANgIIIAMgAigCCDYCCCADIAIpAgA3AwAgAkIANwIAIAJBADYCCCADKAIQIANBEGoiASADLAAbQQBIGyADKAIAIAMgAywAC0EASBsgACgCCCAAKAIEEQQAIAMQChogARAKGiADQSBqJAALFQAgAUHo5QA2AgAgASAAKQIENwIECwsAIABB6OUAEIkBCw4AIAEoAgAgAigCABAJCwsAIAFBxOUANgIACxEAQQgQGiIAQcTlADYCACAAC98BAQJ/IwBB0ABrIgUkACAFIAEoAgg2AkggBSABKQIANwNAIAFCADcCACABQQA2AgggBSACKAIANgI0IAUgAigCBDYCOCAFIAIoAgg2AjwgAkEANgIIIAJCADcCACADKAIAIQEgBUEQaiAEQQhqENALIQYgACgCBCAAQQRqIAAsAA9BAEgbIABBEGoiAygCACADIAAsABtBAEgbIAUoAkAgBUFAayIDIAUsAEtBAEgbIAVBNGoiBCABIAVBCGogACgCICAAKAIcERcAIAYQPiAEEFMgAxAKGiAFQdAAaiQACxgAIAFBoOUANgIAIAFBBGogAEEEahDvBAsgAQF/QSQQGiIBQaDlADYCACABQQRqIABBBGoQ7wQgAQsJACAAELoLEAwLPAAgASgCACAAKAIEIABBBGogACwAD0EASBsgAEEQaiIBKAIAIAEgACwAG0EASBsgACgCICAAKAIcEQYACxgAIAFB/OQANgIAIAFBBGogAEEEahDvBAsgAQF/QSQQGiIBQfzkADYCACABQQRqIABBBGoQ7wQgAQsJACAAEL8LEAwLhAEBAn8jAEEQayICJAAgAiABKAIINgIIIAIgASkCADcDACABQgA3AgAgAUEANgIIIwBBEGsiASQAIAAoAgQhAyABIAIoAgg2AgggASACKQIANwMAIAJCADcCACACQQA2AgggA0HAD2ogARDmASABEAoaIAFBEGokACACEAoaIAJBEGokAAsVACABQdjkADYCACABIAAoAgQ2AgQLCwAgAEHY5AAQ2QMLjQEBAX8gACgCACEDIwBBEGsiACQAAkAgAy0AGEEBRgRAIAEgAigCADYCACABIAIpAwg3AwggASACKQMQNwMQDAELIAAgAjYCDCAAIAM2AgggACgCDCECIAAoAggiARCDASABIAIpAxA3AxAgASACKQMINwMIIAEgAikDADcDACABQQE6ABgLIABBEGokAAtaAQF/IAAoAgAhAyMAQRBrIgAkAAJAIAMtABhFBEAgASACEPAEDAELIAAgAjYCDCAAIAM2AgggACgCDCEBIAAoAggiAhCDASACIAEQfEEAOgAYCyAAQRBqJAALngcBEn8gASgCBCECIwBB0ABrIgUkAAJAIAIoAoQERQRAIABBqNgAEAsaDAELIAJB/ANqIQYgAkGABGohDyAFQSRqIgFCADcCHCABIAFBFGoiAzYCGCABIAM2AhQgAUIANwIkIAEQpwsgAigC/AMhBANAIAQgD0YEQCAAQgA3AgAgAEEANgIIIwBBEGsiAiQAIAEoAgBBuJcBRwRAQYgdQfvHAEHVA0HuNhAAAAsgACABEFwQYSACIAA2AgwgAkH8ATYCCCABKAIAQbiXAUcEQEGIHUH7xwBB4wNBqigQAAALIAEgAkEIahBpIAJBEGokACAGIAYoAgQQ9wQgBiAGQQRqNgIAIAZCADcCBCABQSBqEA8aAkAgAUEUaiICKAIIRQ0AIAIoAgQiACgCACIBIAIoAgAiAygCBDYCBCAD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QYiZAUcEQEGCGkH7xwBBvQRB4yYQAAALIAAgBkEIahBpIAZBEGokACALQcgAaiAJEDghBkEgEBoiCEGA4AA2AgAgCEEIaiAGEDgaIAsgCDYCcCAUQbICIAcgC0HgAGoiCEEBIAtBPGpBqNgAEAsiCiALQTBqQajYABALIhAgC0EkakGo2AAQCyIRIAtBGGpBqNgAEAsiEiALQQxqQajYABALIhNBABCRASATEAoaIBIQChogERAKGiAQEAoaIAoQChogCBAVGiAGEBUaIAcQChogDxAKGiAOEAoaIA0QChogAEE4ahAKGiALQbACaiQAIAkQFRogBBAKGiADEAoaIAIQChogARAKGiAMQdAAaiQAQQALwgMBCn8jAEFAaiIEJAAgBEE0aiABEAshByAEIAI2AgQgBEEIaiABEAshAiAEIAM2AhRBGBAaIgFBsOYANgIAIAEgBCgCBDYCBCABIAIoAgg2AhAgASACKQIANwIIIAJCADcCACACQQA2AgggASADNgIUIAQgATYCKCMAQbABayIBJAAgAUIANwKYASABQgA3AqABIAFCADcApQEgAUIANwKQASABQYjcADYCjAEgAUGMAWoiAyABQYABaiAHEBIiBRD0BiAFEAoaIAMQkANC6Ad/EPMGIAFBADYCeCABQgA3A3AgAyABQfAAaiIFEOILIAFBQGsgBEEYaiIJEDghCEEgEBoiBkHg3QA2AgAgBkEIaiAIEDgaIAEgBjYCaCAAQbECIAUgAUHYAGoiAEEBIAFBNGpBqNgAEAsiBiABQShqQajYABALIgogAUEcakGo2AAQCyILIAFBEGpBqNgAEAsiDCABQQRqQajYABALIg1BABCRASANEAoaIAwQChogCxAKGiAKEAoaIAYQChogABAVGiAIEBUaIAUQChogAxDRAhogAUGwAWokACAJEBUaIAIQChogBxAKGiAEQUBrJABBAAv/BAEKfyMAQdAAayIIJAAgCEHEAGogARALIQwgCEE4aiIJIAIgA6cQQyAIIAQ2AgwgCEEQaiABEAshCiAIIAU2AhxBGBAaIgFBjOYANgIAIAEgCCgCDDYCBCABIAooAgg2AhAgASAKKQIANwIIIApCADcCACAKQQA2AgggASAFNgIUIAggATYCMCAIQSBqIQ0jAEHAAWsiBiQAIAZCADcCqAEgBkIANwKwASAGQgA3ALUBIAZCADcCoAEgBkGI3AA2ApwBIAZBnAFqIgcgBkGQAWogDBASIgEQ9AYgARAKGiAJKAIEIAktAAsiASABwEEASBsEQCAGIAkoAgg2AogBIAYgCSkCADcDgAEgCUIANwIAIAlBADYCCCAGQYABaiILIQIgBygCBEUEQCAHQSgQGiIBNgIEIAEQ7QQLIAdBFGoiASACEBwgBygCGCEFIAcoAgQiBCAHKAIUIAEgBy0AHyICwEEASCIBGzYCICAEIAUgAiABGzYCHCALEAoaCyAGQZwBaiIOEJADQugHfxDzBiAGQQA2AnggBkIANwNwIA4gBkHwAGoiDxDiCyAGQUBrIA0QOCEHQSAQGiIBQbzdADYCACABQQhqIAcQOBogBiABNgJoIABBrwIgDyAGQdgAaiILQQEgBkE0akGo2AAQCyIFIAZBKGpBqNgAEAsiBCAGQRxqQajYABALIgIgBkEQakGo2AAQCyIBIAZBBGpBqNgAEAsiAEEAEJEBIAAQChogARAKGiACEAoaIAQQChogBRAKGiALEBUaIAcQFRogDxAKGiAOENECGiAGQcABaiQAIA0QFRogChAKGiAJEAoaIAwQChogCEHQAGokAEEAC/EDAQd/IwBBMGsiCSQAIAlBJGogARALIgshBSAJQRhqIAIQCyEGIAlBDGogAxALIQcjAEEQayIIJAAgCCAENgIMIwBBEGsiBCQAIwBBEGsiAyQAQTgQGiECIAMgAEH8A2oiCkEEaiIBNgIIIAMgAjYCBCACIAUoAgg2AhggAiAFKQIANwIQIAVCADcCACAFQQA2AgggAiAGKAIINgIkIAIgBikCADcCHCAGQgA3AgAgBkEANgIIIAIgBygCCDYCMCACIAcpAgA3AiggB0IANwIAIAdBADYCCCACIAgoAgw2AjQgA0EBOgAMIAMoAgRBEGohBQJAIAooAgQiAkUEQCABIQAMAQsDQCAFIAIiAEEQaiICEPgLBEAgACEBIAAoAgAiAg0BDAILIAIgBRD4C0UNASAAQQRqIQEgACgCBCICDQALCyADIAA2AgAgBCABKAIAIgIEf0EABSAKIAMoAgAgASADKAIEEJsEIAMoAgQhAiADQQA2AgRBAQs6AAwgBCACNgIIIAMoAgQhACADQQA2AgQgAARAIAMtAAwEQCAAQRBqEIYMCyAABEAgABAMCwsgA0EQaiQAIAggBCgCCDYCBCAIIAQtAAw6AAggBEEQaiQAIAhBEGokACAHEAoaIAYQChogCxAKGiAJQTBqJABBAAvjAQICfwF+IwBBIGsiAyQAIANBADYCHCADQgA3AhQgA0EUaiACELoBA38gAiAERgR/IAMgAygCFDYCCCADKQIYIQUgA0EANgIcIAMgBTcCDCADQgA3AhQjAEEQayIBJAAgASADQQhqIgIoAgA2AgQgASACKAIENgIIIAEgAigCCDYCDCACQQA2AgggAkIANwIAIABByANqIAFBBGoiBBD6BSAAQQE6AOADIAQQPyABQRBqJAAgAhA/IANBFGoQPyADQSBqJABBAAUgA0EUaiABIARBAnRqEMwCIARBAWohBAwBCwsLRwEBfyMAQSBrIgMkACADIAI2AhAgAyABNgIMIANB6OUANgIIIAMgA0EIaiIBNgIYIABB2A9qIAEQ3gEgARAVGiADQSBqJAALCwBB8L8CIAA2AgALswMBB38jAEEgayIDJAAgA0HE5QA2AgggAyADQQhqIgQ2AhgjAEEgayIFJAAgBUEIaiAEEPYEIQAjAEEQayICJAACQCAAQfDAAkYNAEGAwQIoAgAhASAAIAAoAhAiBkYEQCABQfDAAkYEQCAAIAIgACgCACgCDBEAACAAKAIQIgEgASgCACgCEBEBACAAQQA2AhBBgMECKAIAIgEgACABKAIAKAIMEQAAQYDBAigCACIBIAEoAgAoAhARAQBBgMECQQA2AgAgACAANgIQIAJB8MACIAIoAgAoAgwRAAAgAiACKAIAKAIQEQEAQYDBAkHwwAI2AgAMAgsgAEHwwAIgACgCACgCDBEAACAAKAIQIgEgASgCACgCEBEBACAAQYDBAigCADYCEEGAwQJB8MACNgIADAELIAFB8MACRgRAQfDAAiAAQfDAAigCACgCDBEAAEGAwQIoAgAiASABKAIAKAIQEQEAQYDBAiAAKAIQNgIAIAAgADYCEAwBCyAAIAE2AhBBgMECIAY2AgALIAJBEGokACAAEBUaIAVBIGokAEGIwQJBADYCACAEEBUaIANBIGokAAs/AQF/IAAoAgAiAiAAKAIERgRAQbECDwsgASACKAIIIAJBCGogAiwAE0EASBs2AgAgACAAKAIAKAIANgIAQQALWgEEfyMAQSBrIgIkAEEIEBoh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CCACIAQgByADIAggCSALEMALGiABIAEoAghBOGo2AgggACgCBCECIAAoAgAhCCABKAIEIQMDQCACIAhHBEAgA0E4ayIDIAJBOGsiAigCADYCACADQQRqIAJBBGoQIxogAyACKAIYNgIYIAMgAikDEDcDECACQgA3AxAgAkEANgIYIAMgAikDIDcDICADIAIoAig2AiggAyACKAIsNgIsIAMgAi0AMDoAMAwBCwsgASADNgIEIAAoAgAhAiAAIAM2AgAgASACNgIEIAAoAgQhAiAAIAEoAgg2AgQgASACNgIIIAAoAgghAiAAIAEoAgw2AgggASACNgIMIAEgASgCBDYCACABKAIEIQIDQCACIAEoAggiA0cEQCABIANBOGsiAzYCCCADEMELGgwBCwsgASgCACIBBEAgARAMCyAMQSBqJAALIAAoAgQaIAcQChogBBA/IApBQGskAAUgCkEYaiACIAFBAnRqEMwCIAFBAWohAQwBCwsLEAAgAARAIAAQzAsLIAAQDAsWACAAKAIEIAAtAAsiACAAwEEASButCxIAIAAoAgAgACAALAALQQBIGwsQACAABEAgABAKGgsgABAMC7oEAQV/IwBBIGsiByQAIAdBFGogARALIQYgB0EIaiACEAshAiMAQfADayIEJAAgAEHQBmoiASAGEIYBIABB1AZqRgRAIABBsARqIARB5ANqIAYQEiIAEJsDIAAQChoLIARB+AJqIAEgBhCYASIBEJ0BIQUgBEIANwPwAiAEQgA3A+gCIARB4AFqQZQvEJkDIQggBEFAa0IANwMAIARCADcDOCAEQfgBaiIAIAEgBEE4aiAIEMMBIARBuAJqIAAQwAEQ0gIhASAEQYACahCxASAIECoCQCABLQAoRQRAIARByAFqQZQvEJkDIQAgBEEBOgDAASAEQgA3AzAgBEEANgKoASAEQgA3AyggBSAEQShqIAAgBEGgAWogBEHoAmoQ+QEgBEGoAWoQPiAAECoMAQsgBCABEJMBIgApAwg3A+gCIAQgACkDEDcD8AILAkAgAwRAIAQgBCkD8AI3A4ACIAQgBCkD6AI3A/gBIARBiAFqIAIQZCEAIARBADoAgAEgBEEBOgB4IAQgBCkDgAI3AyAgBCADrTcDaCAEIAQpA/gBNwMYIAUgBEEYaiAAIARB4ABqQQAQ+QEgBEHoAGoQPgwB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BEEANgIsIARCADcCJCAEQSRqIAIQugEDfyACIANGBH9B+A8QGiEBIARBGGogABALIQggBEEIaiAEQSRqIg4Q+gIhByMAQZABayIDJAAgA0GEAWogCBASIQkCQCAHLQAMBEAgA0H4AGogBxDPCwwBCyADQQA2AoABIANCADcCeAsjAEEQayIKJAAgCkEEakGo2AAQCyELIwBBEGsiDCQAIAFCADcDACABQgA3AAUgAUEQakEAQSYQHhogAUHcAGoiAEIANwIAIAFBADYCVCABIAFBzABqIgI2AlAgASACNgJMIAFBCjYCSCABQriXgICA9wI3A0AgAUEBOgA8IAFBDzYCOCABQQA2AsgBIAFBADYCsAEgAUEANgKYASABQQA6AGQgASAANgJYIAFCADcDaCABQgA3A3AgAUIANwN4IAFCADcDgAEgAUEANgLwAiABQQA2AtgCIAFBADYCwAIgAUEANgKoAiABIAFBgAJqNgKQAiABQZjjADYCgAIgASABQegBajYC+AEgAUH04gA2AugBIAEgAUHQAWo2AuABIAFB0OIANgLQASABQgA3A4gDIAFBADYCkAMgAUEANgKoAyABQQA2AsADIAFBADYC0AMgAUIANwPYAyABQgA3A8gDIAFBADoA4AMgAUIANwD9AiABQgA3A/gCIAxBBGogCxASIg8hAiMAQZABayIFJAAgASIAIAIQiAECQCACKAIEIAItAAsiASABwEEASCIBGyIGRQ0AIAYgAigCACACIAEbakEBay0AAEEvRg0AIwBBEGsiECQAQY3PABDcASEBIAVBBGoiAiABIAAoAgQgAC0ACyIGIAbAQQBIGyIGahCJCSINKAIAIA0gDSwAC0EASBsgACgCACAAIAAsAAtBAEgbIAYQVyAGakGNzwAgARBXIAFqQQA6AAAgEEEQaiQAIAAgAhAcIAIQChoLQQEQFwRAIAVBCGoQEyERIAVBATYCBCARQeDQABAOIAAQERogBUEEahAWCyAFQZABaiQAIA8QChogDEEQaiQAIAsQChogAEEBOgCEAyAAQYgDaiAJEBwgAEHIA2ogA0H4AGoiARD6BSAKQRBqJAAgARA/IAkQChogAEGsAjYC6AMgAEHsA2ogCBASIQEgAEIANwOIBCAAIABBgARqNgL8AyAAQgA3A4AEIABCADcDkAQgAEIANwKcBCAAQYCAgPwDNgKYBCAAQgA3AqQEIABBgICA/AM2AqwEIABBsARqIANB7ABqIAEQEiICEIkMIQEgAhAKGiAAQgA3AqwPIABBADoAqA8gAEGgD2pBADoAACAAQQA6AMALIABBtA9qQgA3AgAgAEEAOgDwDyAAQegPakEANgIAIABB0A9qQQA2AgAgAEG8D2pBgICA/AM2AgAgAyAANgJUIANBvOMANgJQIAMgA0HQAGoiAjYCYCAAQZgDaiACEN4BIAIQFRogAyAANgI8IANB4OMANgI4IAMgA0E4aiICNgJIIABBsANqIAIQ3gEgAhAVGiADIAA2AiQgA0GE5AA2AiAgAyADQSBqIgI2AjAgAEGIAWogAhDeASACEBUaIAMgADYCDCADQajkADYCCCADIANBCGoiAjYCGCAAQZgCaiACEN4BIAIQFRogACAHLQAMIgI6AKgPIAIEQCADIAE2AgQgAEHAC2ogA0EEahDOCyAAQZgPakEAOgAAIAFBpAJqIQUgASgCoAIhAgNAIAIgBUYEQCABQQE6AKwCBSACQQE6AMgDIAIQtQEhAgwBCwsgAEGTDGpBgAI7AAAgAEHzC2pBADoAACAAQfALakGAAjsBACAAQdALakEAOgAACyADQZABaiQAIActAAwEQCAHED8LIAgQChogDhA/IARBMGokACAABSAEQSRqIAEgA0ECdGoQzAIgA0EBaiEDDAELCwvHAQEDfyMAQdAAayIFJAAgBSABKAIINgJIIAUgASkCADcDQCABQgA3AgAgAUEANgIIIAUgAigCADYCNCAFIAIoAgQ2AjggBSACKAIINgI8IAJBADYCCCACQgA3AgAgAygCACEBIAVBEGogBEEIahDQCyEHIAUoAkAgBUFAayIGIAUtAEsiA8BBAEgiBBsgBSgCRCADIAQbrSAFQTRqIgMgASAFQQhqIAAoAgggACgCBBFVACAHED4gAxBTIAYQChogBUHQAGokAAsVACABQaDiADYCACABIAApAgQ3AgQLCwAgAEGg4gAQiQELFQAgAUH84QA2AgAgASAAKQIENwIECwsAIABB/OEAEIkBC3sBAX8gACgCACEDIwBBEGsiACQAAkAgAy0AGEECRgRAIAIoAgAhAyACQQA2AgAgASADEM8HDAELIAAgAjYCDCAAIAM2AgggACgCDCEBIAAoAggiAhDCASAB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AC0AGBsLCgAgAC0AGEECRgsKACAALQAYQQFGCwgAIAAtABhFC1gBBX8jAEGgAWsiASQAQQEQFwRAIAFBGGoQEyEEIAFBATYCFCAEQeTUABAOIQUgAUEIaiIDIABBABDeBiAFIAMQERogAxAKGiABQRRqEBYLIAFBoAFqJAALEAAgAARAIAAQwgELIAAQDAsfAQF/QSAQGiIAQQA6ABggAEEAOgAQIABCADcDACAACycBAX9BsgIhAiAALQAQQQVGBH8gASAAEP4BKQMINwMAQQAFQbICCwtNAQF/QbICIQMgAC0AEEEERgR/IAEgABDUAyIAKAIAIAAgACwAC0EASBs2AgAgAiAAKAIEIAAtAAsiACAAwEEASButNwMAQQAFQbICCwsnAQF/QbICIQIgAC0AEEEDRgR/IAEgABDdCy0AADoAAEEABUGyAgsLJwEBf0GyAiECIAAtABBBAkYEfyABIAAQ3gsrAwA5AwBBAAVBsgILCyYBAX9BsgIhAiAALQAQQQFGBH8gASAAEFApAwA3AwBBAAVBsgILCyQBAX9BsgIhAiAALQAQBH9BsgIFIAEgABCyASkDADcDAEEACwsKACAALQAQQQVGCwoAIAAtABBBBkYLCgAgAC0AEEEERgsKACAALQAQQQNGCwoAIAAtABBBAkYLCgAgAC0AEEEBRgsIACAALQAQRQspAQF/IwBBEGsiAiQAIAIgATcDCCACIAE3AwAgACACEIsHIAJBEGokAAsLACAAQczhABCzCwsuAQJ/IwBBEGsiAyQAIANBBGoiBCABIAKnEEMgACAEEIwHIAQQChogA0EQaiQACyUBAX8jAEEQayICJAAgAiABOgAPIAAgAkEPahCNByACQRBqJAALJQEBfyMAQRBrIgIkACACIAE5AwggACACQQhqEI4HIAJBEGokAAslAQF/IwBBEGsiAiQAIAIgATcDCCAAIAJBCGoQjwcgAkEQaiQACyUBAX8jAEEQayICJAAgAiABNwMIIAAgAkEIahCQByACQRBqJAALCQAgAEEBENsJC2EBAn8jAEEQayICJAACQCAALQAYQQFGBEAgACABKAIANgIADAELIAIgATYCDCACIAA2AgggAigCDCEDIAIoAggiABA+IAMoAgAhASAAQQE6ABggACABNgIACyACQRBqJAALCQAgAEEAENsJC5MBAQd/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bmNfX0JhdGNoUmVxdWVzdABjcnN5bmMuQmF0Y2hSZXF1ZXN0AENyc3luY19fVXBkYXRlUmVxdWVzdABjcnN5bmMuVXBkYXRlUmVxdWVzdABDcnN5bmNfX0RhdGFiYXNlUmVxdWVzdABjcnN5bmMuRGF0YWJhc2VSZXF1ZXN0AEdhbGFjdHVzX19TaGFrZUhhbmRSZXF1ZXN0AGdhbGFjdHVzLlNoYWtlSGFuZFJlcXVlc3QAQ3JzeW5jX19RdWVyeURvY1JlcXVlc3QAY3JzeW5jLlF1ZXJ5RG9jUmVxdWVzdABDcnN5bmNfX1B1dERvY1JlcXVlc3QAY3JzeW5jLlB1dERvY1JlcXVlc3QAQ3JzeW5jX19HZXREb2NSZXF1ZXN0AGNyc3luYy5HZXREb2NSZXF1ZXN0AENyc3luY19fRGVsRG9jUmVxdWVzdABjcnN5bmMuRGVsRG9jUmVxdWVzdABCZXN0AENSU1lOQ19fVVBEQVRFX01FVEhPRF9fTGlzdEluc2VydABTdGFydAByZWNlaXZlZCBlbXB0eSBzbmFwc2hvdABmYWlsIHRvIHJlY3Ygc25hcHNob3QAc2VuZGluZyBzbmFwc2hvdABDb25uZWN0aW9uQ291bnQAU3RyZWFtQ291bnQAIGNyZWF0ZSBjaGVja3BvaW50AEVuZHBvaW50AENyc3luY19fVGlja2V0RXZlbnQAY3JzeW5jLlRpY2tldEV2ZW50AENyc3luY19fUGVybWlzc2lvbkV2ZW50AGNyc3luYy5QZXJtaXNzaW9uRXZlbnQAQ3JzeW5jX19LZWVwYWxpdmVFdmVudABjcnN5bmMuS2VlcGFsaXZlRXZlbnQAQ29udGVudABzaG91bGQgaGF2ZSBvbmx5IHVzZWQgaGFzaGVzIHRoYXQgYXJlIGluIHRoZSBkb2N1bWVudABDcnN5bmNfX0RvY3VtZW50AGNyc3luYy5Eb2N1bWVudABTdGF0ZW1lbnQASW5zdGFudABMaW1pdABDUlNZTkNfX1VQREFURV9NRVRIT0RfX0NvdW50ZXJTZXQAQ1JTWU5DX19VUERBVEVfTUVUSE9EX19TZXQAQ1JTWU5DX19WQUxVRV9UWVBFX19EaWN0ACBjb21wYWN0AE9jdABDUlNZTkNfX1ZBTFVFX1RZUEVfX0Zsb2F0AFNhdABnYWxhY3R1cwBEb2N1bWVudHMAQ2xpZW50cwBHcmFudHMAUmVzdWx0cwBUaWNrZXRzAFN1Y2Nlc3MAQ2x1c3RlcnMAc2hvdWxkIG1lZXQgZGVwcwBPcHRpb25zAFBlcm1zAEl0ZW1zAFBhcmFtcwBQYXRocwBkaWZmcwBVcGRhdGVzAEZvcmJpZHMATG9hZHMARG9jcwBUcwAlcwBBcHIAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX24xX3FscXVlcnlfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fcmFuZ2VfZG9jc19yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmZ2FsYWN0dXNfX2VzdGFibGlzaF9yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19lc3RhYmxpc2hfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fYmF0Y2hfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fdXBkYXRlX3JlcXVlc3RfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX2RhdGFiYXNlX3JlcXVlc3RfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fc2hha2VfaGFuZF9yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19xdWVyeV9kb2NfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fcHV0X2RvY19yZXF1ZXN0X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19nZXRfZG9jX3JlcXVlc3RfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX2RlbF9kb2NfcmVxdWVzdF9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fdGlja2V0X2V2ZW50X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19wZXJtaXNzaW9uX2V2ZW50X19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19rZWVwYWxpdmVfZXZlbnRfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fZXh0X2hlYWRlcl9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fbjFfcWxxdWVyeV9yZXNwb25zZV9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmdhbGFjdHVzX19yZW5ld19rZXlfcmVzcG9uc2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX3JhbmdlX2RvY3NfcmVzcG9uc2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fZXN0YWJsaXNoX3Jlc3BvbnNlX19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19lc3RhYmxpc2hfcmVzcG9uc2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZnYWxhY3R1c19fc2hha2VfaGFuZF9yZXNwb25zZV9fZGVzY3JpcHRvcgBtZXNzYWdlLT5iYXNlLmRlc2NyaXB0b3IgPT0gJmNyc3luY19fcXVlcnlfZG9jX3Jlc3BvbnNlX19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19nZXRfZG9jX3Jlc3BvbnNlX19kZXNjcmlwdG9yAG1lc3NhZ2UtPmJhc2UuZGVzY3JpcHRvciA9PSAmY3JzeW5jX19zeW5jX21lc3NhZ2VfX2Rlc2NyaXB0b3IAbWVzc2FnZS0+YmFzZS5kZXNjcmlwdG9yID09ICZjcnN5bmNfX3NoYWtlaGFuZF9fZGVzY3JpcHRvcgB2ZWN0b3IAQ2x1c3RlcgBwcm90b2J1Zl9jX21lc3NhZ2VfcGFja190b19idWZmZXIAcmVwZWF0ZWRfZmllbGRfcGFja190b19idWZmZXIAcmVxdWlyZWRfZmllbGRfcGFja190b19idWZmZXIAY3JzeW5jX19uMV9xbHF1ZXJ5X3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fcmFuZ2VfZG9jc19yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBnYWxhY3R1c19fZXN0YWJsaXNoX3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fZXN0YWJsaXNoX3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fYmF0Y2hfcmVxdWVzdF9fcGFja190b19idWZmZXIAY3JzeW5jX191cGRhdGVfcmVxdWVzdF9fcGFja190b19idWZmZXIAY3JzeW5jX19kYXRhYmFzZV9yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBnYWxhY3R1c19fc2hha2VfaGFuZF9yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3F1ZXJ5X2RvY19yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3B1dF9kb2NfcmVxdWVzdF9fcGFja190b19idWZmZXIAY3JzeW5jX19nZXRfZG9jX3JlcXVlc3RfX3BhY2tfdG9fYnVmZmVyAGNyc3luY19fZGVsX2RvY19yZXF1ZXN0X19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3RpY2tldF9ldmVudF9fcGFja190b19idWZmZXIAY3JzeW5jX19rZWVwYWxpdmVfZXZlbnRfX3BhY2tfdG9fYnVmZmVyAGdhbGFjdHVzX19leHRfaGVhZGVyX19wYWNrX3RvX2J1ZmZlcgBjcnN5bmNfX3N5bmNfbWVzc2FnZV9fcGFja190b19idWZmZXIAY3JzeW5jX19zaGFrZWhhbmRfX3BhY2tfdG9fYnVmZmVyAGNvbHVtbnMgb3V0IG9mIG9yZGVyAF9mb2xkZXIATGVhZGVyAEdhbGFjdHVzX19FeHRIZWFkZXIAZ2FsYWN0dXMuRXh0SGVhZGVyAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAHBhcnNlX21lbWJlcgBwYXJzZV9wYWNrZWRfcmVwZWF0ZWRfbWVtYmVyAERlY2VtYmVyAExvY2FsQWRkcgBSZW1vdGVBZGRyAGlvc19iYXNlOjpjbGVhcgBNYXIARGlmZlNlcQBtZWRpYV9zZXJ2ZXJfbGlicmFyeS9jcmR0L21lcmtsZV9zZWFyY2hfdHJlZS5jcHAAU2VwAENyc3luY19fVXBkYXRlT3AAY3JzeW5jLlVwZGF0ZU9wACVJOiVNOiVTICVwAEdhbGFjdHVzX19QZWVySW5mbwBnYWxhY3R1cy5QZWVySW5mbwBTdW4ASnVuAFJlYXNvbgBQZXJtSnNvbgBCaURpcmVjdGlvbgBUcnkgdG8gZXN0YWJsaXNoIGNvbm5lY3Rpb24AIFRyeSB0byBlc3RhYmxpc2ggbmV3c3luYyBjb25uZWN0aW9uAENvbGxlY3Rpb24AQ3JzeW5jX19PcGVyYXRpb24AY3JzeW5jLk9wZXJhdGlvbgBDcnN5bmNfX1Blcm1pc3Npb24AY3JzeW5jLlBlcm1pc3Npb24AVmVyc2lvbgBNb24AdG1wID09IHBheWxvYWRfbGVuAG5hbgBKYW4AUXVvcnVtAENyc3luY19fS2VlcGFsaXZlSXRlbQBjcnN5bmMuS2VlcGFsaXZlSXRlbQBDcnN5bmNfX0l0ZW0AY3JzeW5jLkl0ZW0ASW5zZXJ0RWxlbQBKdWwAVHRsAEdhbGFjdHVzX19QZWVyUHJvdG9jb2wAZ2FsYWN0dXMuUGVlclByb3RvY29sAG51bGwAQ29sbABBcHJpbABFeGlzdHNGYWlsAF9pbnRlcnZhbABfZXBoZW1lcmFsAExvY2FsAHByb3RvYnVmX2NfbWVzc2FnZV91bnBhY2sARnJpAGdldF9wYWNrZWRfcGF5bG9hZF9sZW5ndGgAUGF0aABvcCBmaWVsZCBjb3VudCBkb2VzIG5vdCBtYXRjaABtYWdpYyBudW1iZXIgZG9lcyBub3QgbWF0Y2gAY2hlY2tzdW0gZG9lcyBub3QgbWF0Y2gATWFyY2gALi9tZWRpYV9zZXJ2ZXJfbGlicmFyeS9jcmR0L21lcmtsZV9zZWFyY2hfdHJlZS5oAEF1ZwBnZW4gcmVzZXQgbXNnACByZWN2IGVyciBtc2cAZ2VuIGVyciBtc2cAYmFzaWNfc3RyaW5nAENSU1lOQ19fVkFMVUVfVFlQRV9fU3RyaW5nAEZsYWcAaW5mAEdhbGFjdHVzX19JbnRlcmVzdERpZmYAZ2FsYWN0dXMuSW50ZXJlc3REaWZmACUuMExmACVMZgBwcm90b2J1Zl9jX21lc3NhZ2VfZ2V0X3BhY2tlZF9zaXplAHJlcXVpcmVkX2ZpZWxkX2dldF9wYWNrZWRfc2l6ZQBjcnN5bmNfX24xX3FscXVlcnlfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fcmFuZ2VfZG9jc19yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAZ2FsYWN0dXNfX2VzdGFibGlzaF9yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19lc3RhYmxpc2hfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fYmF0Y2hfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fdXBkYXRlX3JlcXVlc3RfX2dldF9wYWNrZWRfc2l6ZQBjcnN5bmNfX2RhdGFiYXNlX3JlcXVlc3RfX2dldF9wYWNrZWRfc2l6ZQBnYWxhY3R1c19fc2hha2VfaGFuZF9yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19xdWVyeV9kb2NfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fcHV0X2RvY19yZXF1ZXN0X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19nZXRfZG9jX3JlcXVlc3RfX2dldF9wYWNrZWRfc2l6ZQBjcnN5bmNfX2RlbF9kb2NfcmVxdWVzdF9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fdGlja2V0X2V2ZW50X19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19rZWVwYWxpdmVfZXZlbnRfX2dldF9wYWNrZWRfc2l6ZQBnYWxhY3R1c19fZXh0X2hlYWRlcl9fZ2V0X3BhY2tlZF9zaXplAGNyc3luY19fc3luY19tZXNzYWdlX19nZXRfcGFja2VkX3NpemUAY3JzeW5jX19zaGFrZWhhbmRfX2dldF9wYWNrZWRfc2l6ZQB0cnVlAFZhbHVlAFR1ZQBSZW1vdGUAQ1JTWU5DX19PUEVSQVRJT05fX1dyaXRlAENSU1lOQ19fVVBEQVRFX01FVEhPRF9fRGVsZXRlACwgcmVzZXQgY29ubmVjdGlvbiBzdGF0ZQBDcmVhdGUAQ1JTWU5DX19VUERBVEVfTUVUSE9EX19VcGRhdGUAVHJhdmVyc2UAQ3JzeW5jX19OMVFMUXVlcnlSZXNwb25zZQBjcnN5bmMuTjFRTFF1ZXJ5UmVzcG9uc2UAR2FsYWN0dXNfX1JlbmV3S2V5UmVzcG9uc2UAZ2FsYWN0dXMuUmVuZXdLZXlSZXNwb25zZQBDcnN5bmNfX1JhbmdlRG9jc1Jlc3BvbnNlAGNyc3luYy5SYW5nZURvY3NSZXNwb25zZQBHYWxhY3R1c19fRXN0YWJsaXNoUmVzcG9uc2UAQ3JzeW5jX19Fc3RhYmxpc2hSZXNwb25zZQBnYWxhY3R1cy5Fc3RhYmxpc2hSZXNwb25zZQBjcnN5bmMuRXN0YWJsaXNoUmVzcG9uc2UAR2FsYWN0dXNfX1NoYWtlSGFuZFJlc3BvbnNlAGdhbGFjdHVzLlNoYWtlSGFuZFJlc3BvbnNlAENyc3luY19fUXVlcnlEb2NSZXNwb25zZQBjcnN5bmMuUXVlcnlEb2NSZXNwb25zZQBDcnN5bmNfX0dldERvY1Jlc3BvbnNlAGNyc3luYy5HZXREb2NSZXNwb25zZQBmYWxzZQBEYXRhYmFzZQBjaGFuZ2UgaXMgZWFybGllciB0aGFuIHBlZXIgYmFzZQBTY29yZQBNb3JlAENsaWVudFR5cGUAQ3JzeW5jX19WYWx1ZVR5cGUAY3JzeW5jLlZhbHVlVHlwZQBKdW5lAE5hbWUAQXZhaWxhYmxlAElnbm9yZVByaXZpbGVnZQBDcnN5bmNfX1ByaXZpbGVnZQBjcnN5bmMuUHJpdmlsZWdlAENyc3luY19fU3luY01lc3NhZ2UAY3JzeW5jLlN5bmNNZXNzYWdlAHJlY3YgZXJyLCB0byBwcm9iZSBtb2RlAEdhbGFjdHVzX19QZWVyTW9kZQBnYWxhY3R1cy5QZWVyTW9kZQBBc3luY01vZGUAQWRhcHRvciBzdWdnZXN0IGRpc2Nvbm5lY3QgZm9yIG5hbWVzcGFjZQBOYW1lc3BhY2UAQ3JzeW5jX19VcGRhdGVNZXRob2QAY3JzeW5jLlVwZGF0ZU1ldGhvZABjaGVja3BvaW50IG5vdCBmb3VuZABwZWVyIG5lZWQgbm90IGZvdW5kAFVwdGltZUluU2Vjb25kAENyc3luY19fU2hha2VoYW5kAGNyc3luYy5TaGFrZWhhbmQARW5kAFJlbW92ZWQAIGNvbm5lY3Rpb24gdGltZW91dGVkAElnbm9yZUV4cGlyZWQAZGVjb2RlIG9wcyBmYWlsZWQAcGFyc2UgZm9sZGVyIG1zZyBmYWlsZWQAY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSkgZmFpbGVkAGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDKSBmYWlsZWQAcHJvdG9idWZfY19tZXNzYWdlX2ZyZWVfdW5wYWNrZWQAY3JzeW5jX19kYXRhYmFzZV9yZXF1ZXN0X19mcmVlX3VucGFja2VkAGNyc3luY19fcGVybWlzc2lvbl9ldmVudF9fZnJlZV91bnBhY2tlZABjcnN5bmNfX24xX3FscXVlcnlfcmVzcG9uc2VfX2ZyZWVfdW5wYWNrZWQAZ2FsYWN0dXNfX3JlbmV3X2tleV9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX3JhbmdlX2RvY3NfcmVzcG9uc2VfX2ZyZWVfdW5wYWNrZWQAZ2FsYWN0dXNfX2VzdGFibGlzaF9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX2VzdGFibGlzaF9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABnYWxhY3R1c19fc2hha2VfaGFuZF9yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX3F1ZXJ5X2RvY19yZXNwb25zZV9fZnJlZV91bnBhY2tlZABjcnN5bmNfX2dldF9kb2NfcmVzcG9uc2VfX2ZyZWVfdW5wYWNrZWQAY3JzeW5jX19zeW5jX21lc3NhZ2VfX2ZyZWVfdW5wYWNrZWQAc3VjY2Vzc2Z1bGx5IHN5bmNlZABXZWQAcGFja19idWZmZXJfcGFja2VkX3BheWxvYWQAR2FsYWN0dXNfX1F1b3J1bUxvYWQAZ2FsYWN0dXMuUXVvcnVtTG9hZABUb3RhbExvYWQAQ1JTWU5DX19PUEVSQVRJT05fX1JlYWQATGVhc2VJZABBdXRvQ3JlYXRlRG9jAGNyc3luYwBzdGFydCBhIHJvdW5kIG9mIHN5bmMAc3RhcnQgYSByb3VuZCBvZiB0b21ic3RvbmUgc3luYwBDUlNZTkNfX1VQREFURV9NRVRIT0RfX0NvdW50ZXJJbmMARGVjAG1lZGlhX3NlcnZlcl9saWJyYXJ5L3RoaXJkX3BhcnR5L2V0Y2QtYy9wcm90b2J1Zi1jLmMAbWVkaWFfc2VydmVyX2xpYnJhcnkvdGhpcmRfcGFydHkvZXRjZC1jL3Byb3h5LnBiLWMuYwBtZWRpYV9zZXJ2ZXJfbGlicmFyeS90aGlyZF9wYXJ0eS9ldGNkLWMvY3JzeW5jLnBiLWMuYwBGZWIAXQByZW1vdmUgaW50ZXJlc3Q6IFsAYWRkIGludGVyZXN0OiBbAEFaAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9QUk9YWQAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWABHQUxBQ1RVU19fUEVFUl9NT0RFX19QRUVSX01PREVfQ0xVU1RFUl9DTElFTlQAR0FMQUNUVVNfX1BFRVJfTU9ERV9fUEVFUl9NT0RFX0NMSUVOVABTcGxpdE9mZkxUAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9TSURFQ0FSX0RJUkVDVABHQUxBQ1RVU19fUEVFUl9NT0RFX19QRUVSX01PREVfRU1TACVIOiVNOiVTAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9NSUdSQVRPUgBHQUxBQ1RVU19fUEVFUl9NT0RFX19QRUVSX01PREVfQ09PUkRJTkFUT1IAR0FMQUNUVVNfX1BFRVJfTU9ERV9fUEVFUl9NT0RFX1NZTkNfQ0VOVEVSAEdBTEFDVFVTX19QRUVSX01PREVfX1BFRVJfTU9ERV9TSURFQ0FSAEdBTEFDVFVTX19QRUVSX1BST1RPQ09MX19QUk9UT0NPTF9UQ1AATkFOAFBNAEFNAFRUTABydi0+ZGVzY3JpcHRvciAhPSBOVUxMAExDX0FMTABMQU5HAElORgBJRABHQUxBQ1RVU19fUEVFUl9QUk9UT0NPTF9fUFJPVE9DT0xfR1JQQwAoKG1lc3NhZ2UpLT5kZXNjcmlwdG9yKS0+bWFnaWMgPT0gUFJPVE9CVUZfQ19fTUVTU0FHRV9ERVNDUklQVE9SX01BR0lDAChkZXNjKS0+bWFnaWMgPT0gUFJPVE9CVUZfQ19fTUVTU0FHRV9ERVNDUklQVE9SX01BR0lDAElEQwAsIGVycjoAIHJlY3YgdXJpOgAsIHNlcWlkOgAwMTIzNDU2Nzg5AEMuVVRGLTgAbm9kZS5jaGlsZHJlbl8uc2l6ZSgpID09IG5vZGUuZWxlbWVudHNfLnNpemUoKSArIDEAY2hpbGRyZW5fLnNpemUoKSA9PSBlbGVtZW50c18uc2l6ZSgpICsgMQAwAC8AIGFscmVhZHkgdGltZW91dC4ALCBpZ25vcmUuAC4qKioqKi4ALAAqAChudWxsKQAhZWxlbWVudHNfLmVtcHR5KCkAZ3RfZWxlbXMuc2l6ZSgpICsgMSA9PSBndF9jaGlsZHJlbi5zaXplKCkALCAoACAgICAiACBjb2xsIG1zZyB0eXBlIGRvZXMgbm90IG1hdGNoIQBzeW5jIG1zZyB0eXBlIGRvZXMgbm90IG1hdGNoIQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBTZXQgbmFtZXNwYWNlIGFzIAAgcHVyZ2VkIHRvIAAgd2l0aCBlcnJubyAAIEZhaWxlZCB0byBlc3RhYmxpc2ggY29ubiAAUmVjZWl2ZSB3cm9uZyB0ZXJtIABVbmtub3duIHVyaSAAIG9uIHVyaSAAY29tcHJlc3NpbmcgACBjb21tYW5kIABSZWNlaXZlIHVua293biBzZXFpZCAAXSAAZG9jIG5vdCBleGlzdDogAHJlYWRhYmxlIGV4aXN0OiAAIGNoZWNrcG9pbnQ6IAAgcmVjdiByZXNldDogAGRlcCBub3QgbWV0OiAAIHVwZGF0ZSBmb2xkZXI6IAAsIGxvY2FsX2FkZHI6IAAgZXN0YWJsaXNoIGNvbm5lY3Rpb24gc3VjY2Vzc2Z1bGx5LCByZW1vdGVfYWRkcjogAGludmFsaWQgb3AgYWN0aW9uOiAALCBnZW5lcmF0aW9uOiAALCBjdXJyZW50IHZlcnNpb246IAAsIHZlcnNpb246IABzbmFwc2hvdHRpbmcsIG51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APsBAAD8AQAAyP///8j///9UcQAA/QEAAP4BAAC4cAAA8HAAAARxAADMcAAAOAAAAAAAAABEcAAA8AEAAPEBAADI////yP///0RwAADyAQAA8wEAAE5TdDNfXzIxOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAACifAAAMcQAARHAAAAAAAACEcQAA/wEAAAACAABOU3QzX18yOGlvc19iYXNlRQAAAACfAABwcQAAAAAAANF0ngBXnb0qgHBSD///PicKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BRgAAAA1AAAAcQAAAGv////O+///kr///wAAAAAAAAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAQIEBwMGBQAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNsAAAAA3hIElQAAAAD////////////////AcwAAFAAAAEMuVVRGLTgAQZDoAQsC1HMAQbDoAQtHTENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMA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")||(ht=ct,ct=d.locateFile?d.locateFile(ht,x):x+ht);var ai,pi=Me=>{for(;Me.length>0;)Me.shift()(d)},yi=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,fi=(Me,ot)=>Me?((Ct,Kt,Xr)=>{for(var Lr=Kt+Xr,Jr=Kt;Ct[Jr]&&!(Jr>=Lr);)++Jr;if(Jr-Kt>16&&Ct.buffer&&yi)return yi.decode(Ct.subarray(Kt,Jr));for(var zr="";Kt>10,56320|1023&Oa)}}else zr+=String.fromCharCode((31&ci)<<6|ro)}else zr+=String.fromCharCode(ci)}return zr})(re,Me,ot):"",Jn=Me=>{var ot=(Me-Y.buffer.byteLength+65535)/65536;try{return Y.grow(ot),Ge(),1}catch{}},xr={},pr=()=>{if(!pr.strings){var Me={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:f||"./this.program"};for(var ot in xr)xr[ot]===void 0?delete Me[ot]:Me[ot]=xr[ot];var Ct=[];for(var ot in Me)Ct.push("".concat(ot,"=").concat(Me[ot]));pr.strings=Ct}return pr.strings},ei=Me=>Me%4==0&&(Me%100!=0||Me%400==0),_i=[31,29,31,30,31,30,31,31,30,31,30,31],Gr=[31,28,31,30,31,30,31,31,30,31,30,31],oi=Me=>{for(var ot=0,Ct=0;Ct=55296&&Kt<=57343?(ot+=4,++Ct):ot+=3}return ot},Oi=(Me,ot,Ct,Kt)=>{if(!(Kt>0))return 0;for(var Xr=Ct,Lr=Ct+Kt-1,Jr=0;Jr=55296&&zr<=57343&&(zr=65536+((1023&zr)<<10)|1023&Me.charCodeAt(++Jr)),zr<=127){if(Ct>=Lr)break;ot[Ct++]=zr}else if(zr<=2047){if(Ct+1>=Lr)break;ot[Ct++]=192|zr>>6,ot[Ct++]=128|63&zr}else if(zr<=65535){if(Ct+2>=Lr)break;ot[Ct++]=224|zr>>12,ot[Ct++]=128|zr>>6&63,ot[Ct++]=128|63&zr}else{if(Ct+3>=Lr)break;ot[Ct++]=240|zr>>18,ot[Ct++]=128|zr>>12&63,ot[Ct++]=128|zr>>6&63,ot[Ct++]=128|63&zr}}return ot[Ct]=0,Ct-Xr},_o=(Me,ot,Ct,Kt)=>{var Xr=ue[Kt+40>>2],Lr={tm_sec:he[Kt>>2],tm_min:he[Kt+4>>2],tm_hour:he[Kt+8>>2],tm_mday:he[Kt+12>>2],tm_mon:he[Kt+16>>2],tm_year:he[Kt+20>>2],tm_wday:he[Kt+24>>2],tm_yday:he[Kt+28>>2],tm_isdst:he[Kt+32>>2],tm_gmtoff:he[Kt+36>>2],tm_zone:Xr?fi(Xr):""},Jr=fi(Ct),zr={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var ci in zr)Jr=Jr.replace(new RegExp(ci,"g"),zr[ci]);var ro=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],Ho=["January","February","March","April","May","June","July","August","September","October","November","December"];function Oa(_r,rn,dn){for(var Io=typeof _r=="number"?_r.toString():_r||"";Io.length0?1:0}var Io;return(Io=dn(_r.getFullYear()-rn.getFullYear()))===0&&(Io=dn(_r.getMonth()-rn.getMonth()))===0&&(Io=dn(_r.getDate()-rn.getDate())),Io}function Ns(_r){switch(_r.getDay()){case 0:return new Date(_r.getFullYear()-1,11,29);case 1:return _r;case 2:return new Date(_r.getFullYear(),0,3);case 3:return new Date(_r.getFullYear(),0,2);case 4:return new Date(_r.getFullYear(),0,1);case 5:return new Date(_r.getFullYear()-1,11,31);case 6:return new Date(_r.getFullYear()-1,11,30)}}function w1(_r){var rn=((N1,Ic)=>{for(var Sa=new Date(N1.getTime());Ic>0;){var Wc=ei(Sa.getFullYear()),Ll=Sa.getMonth(),mA=(Wc?_i:Gr)[Ll];if(!(Ic>mA-Sa.getDate()))return Sa.setDate(Sa.getDate()+Ic),Sa;Ic-=mA-Sa.getDate()+1,Sa.setDate(1),Ll<11?Sa.setMonth(Ll+1):(Sa.setMonth(0),Sa.setFullYear(Sa.getFullYear()+1))}return Sa})(new Date(_r.tm_year+1900,0,1),_r.tm_yday),dn=new Date(rn.getFullYear(),0,4),Io=new Date(rn.getFullYear()+1,0,4),b1=Ns(dn),u1=Ns(Io);return ua(b1,rn)<=0?ua(u1,rn)<=0?rn.getFullYear()+1:rn.getFullYear():rn.getFullYear()-1}var qc={"%a":_r=>ro[_r.tm_wday].substring(0,3),"%A":_r=>ro[_r.tm_wday],"%b":_r=>Ho[_r.tm_mon].substring(0,3),"%B":_r=>Ho[_r.tm_mon],"%C":_r=>da((_r.tm_year+1900)/100|0,2),"%d":_r=>da(_r.tm_mday,2),"%e":_r=>Oa(_r.tm_mday,2," "),"%g":_r=>w1(_r).toString().substring(2),"%G":_r=>w1(_r),"%H":_r=>da(_r.tm_hour,2),"%I":_r=>{var rn=_r.tm_hour;return rn==0?rn=12:rn>12&&(rn-=12),da(rn,2)},"%j":_r=>da(_r.tm_mday+((rn,dn)=>{for(var Io=0,b1=0;b1<=dn;Io+=rn[b1++]);return Io})(ei(_r.tm_year+1900)?_i:Gr,_r.tm_mon-1),3),"%m":_r=>da(_r.tm_mon+1,2),"%M":_r=>da(_r.tm_min,2),"%n":()=>` -`,"%p":_r=>_r.tm_hour>=0&&_r.tm_hour<12?"AM":"PM","%S":_r=>da(_r.tm_sec,2),"%t":()=>" ","%u":_r=>_r.tm_wday||7,"%U":_r=>{var rn=_r.tm_yday+7-_r.tm_wday;return da(Math.floor(rn/7),2)},"%V":_r=>{var rn=Math.floor((_r.tm_yday+7-(_r.tm_wday+6)%7)/7);if((_r.tm_wday+371-_r.tm_yday-2)%7<=2&&rn++,rn){if(rn==53){var dn=(_r.tm_wday+371-_r.tm_yday)%7;dn==4||dn==3&&ei(_r.tm_year)||(rn=1)}}else{rn=52;var Io=(_r.tm_wday+7-_r.tm_yday-1)%7;(Io==4||Io==5&&ei(_r.tm_year%400-1))&&rn++}return da(rn,2)},"%w":_r=>_r.tm_wday,"%W":_r=>{var rn=_r.tm_yday+7-(_r.tm_wday+6)%7;return da(Math.floor(rn/7),2)},"%y":_r=>(_r.tm_year+1900).toString().substring(2),"%Y":_r=>_r.tm_year+1900,"%z":_r=>{var rn=_r.tm_gmtoff,dn=rn>=0;return rn=(rn=Math.abs(rn)/60)/60*100+rn%60,(dn?"+":"-")+("0000"+rn).slice(-4)},"%Z":_r=>_r.tm_zone,"%%":()=>"%"};for(var ci in Jr=Jr.replace(/%%/g,"\0\0"),qc)Jr.includes(ci)&&(Jr=Jr.replace(new RegExp(ci,"g"),qc[ci](Lr)));Jr=Jr.replace(/\0\0/g,"%");var ag,du,D1,oA,xA,Mo=(du=oi(ag=Jr)+1,D1=new Array(du),Oi(ag,D1,0,D1.length),D1);return Mo.length>ot?0:(oA=Mo,xA=Me,W.set(oA,xA),Mo.length-1)},$n=(Me,ot)=>{Me<128?ot.push(Me):ot.push(Me%128|128,Me>>7)},gs=(Me,ot)=>{if(typeof WebAssembly.Function=="function")return new WebAssembly.Function((Lr=>{for(var Jr={i:"i32",j:"i64",f:"f32",d:"f64",p:"i32"},zr={parameters:[],results:Lr[0]=="v"?[]:[Jr[Lr[0]]]},ci=1;ci{var zr=Lr.slice(0,1),ci=Lr.slice(1),ro={i:127,p:127,j:126,f:125,d:124};Jr.push(96),$n(ci.length,Jr);for(var Ho=0;HoFe.get(Me),Kn=void 0,Tn=Me=>(Kn||(Kn=new WeakMap,((ot,Ct)=>{if(Kn)for(var Kt=ot;KtFe.set(Me,ot),Fs={a:(Me,ot,Ct,Kt)=>{Yt("Assertion failed: ".concat(fi(Me),", at: ")+[ot?fi(ot):"unknown filename",Ct,Kt?fi(Kt):"unknown function"])},g:()=>!0,b:()=>{Yt("")},h:()=>Date.now(),f:()=>performance.now(),i:Me=>{var ot=re.length,Ct=2147483648;if((Me>>>=0)>Ct)return!1;for(var Kt=(zr,ci)=>zr+(ci-zr%ci)%ci,Xr=1;Xr<=4;Xr*=2){var Lr=ot*(1+.2/Xr);Lr=Math.min(Lr,Me+100663296);var Jr=Math.min(Ct,Kt(Math.max(Me,Lr),65536));if(Jn(Jr))return!0}return!1},d:(Me,ot)=>{var Ct=0;return pr().forEach((Kt,Xr)=>{var Lr=ot+Ct;ue[Me+4*Xr>>2]=Lr,((Jr,zr)=>{for(var ci=0;ci{var Ct=pr();ue[Me>>2]=Ct.length;var Kt=0;return Ct.forEach(Xr=>Kt+=Xr.length+1),ue[ot>>2]=Kt,0},j:function(Me,ot){d.rtejsLog(Me,fi(ot))},c:(Me,ot,Ct,Kt,Xr)=>_o(Me,ot,Ct,Kt)},bt=function(){var Me,ot,Ct,Kt={a:Fs};function Xr(Lr,Jr){var zr,ci=Lr.exports;return Y=(bt=ci).k,Ge(),Fe=bt.m,zr=bt.l,At.unshift(zr),function(){if(ye--,d.monitorRunDependencies&&d.monitorRunDependencies(ye),ye==0&<){var ro=lt;lt=null,ro()}}(),ci}if(ye++,d.monitorRunDependencies&&d.monitorRunDependencies(ye),d.instantiateWasm)try{return d.instantiateWasm(Kt,Xr)}catch(Lr){j("Module.instantiateWasm callback failed with error: ".concat(Lr)),o(Lr)}return(Me=ct,ot=Kt,Ct=function(Lr){Xr(Lr.instance)},vr(Me,ot,Ct)).catch(o),{}}();function Es(){function Me(){ai||(ai=!0,d.calledRun=!0,Ve||(pi(At),e(d),d.onRuntimeInitialized&&d.onRuntimeInitialized(),function(){if(d.postRun)for(typeof d.postRun=="function"&&(d.postRun=[d.postRun]);d.postRun.length;)rt(d.postRun.shift());pi(Bt)}()))}ye>0||(function(){if(d.preRun)for(typeof d.preRun=="function"&&(d.preRun=[d.preRun]);d.preRun.length;)Tt(d.preRun.shift());pi(He)}(),ye>0||(d.setStatus?(d.setStatus("Running..."),setTimeout(function(){setTimeout(function(){d.setStatus("")},1),Me()},1)):Me()))}if(d._free=Me=>(d._free=bt.n)(Me),d._malloc=Me=>(d._malloc=bt.o)(Me),d._rte_crdt_value_create=()=>(d._rte_crdt_value_create=bt.p)(),d._rte_crdt_value_clone=Me=>(d._rte_crdt_value_clone=bt.q)(Me),d._rte_crdt_value_destroy=Me=>(d._rte_crdt_value_destroy=bt.r)(Me),d._rte_crdt_value_is_scalar=Me=>(d._rte_crdt_value_is_scalar=bt.s)(Me),d._rte_crdt_value_is_map=Me=>(d._rte_crdt_value_is_map=bt.t)(Me),d._rte_crdt_value_is_list=Me=>(d._rte_crdt_value_is_list=bt.u)(Me),d._rte_crdt_value_get_scalar=Me=>(d._rte_crdt_value_get_scalar=bt.v)(Me),d._rte_crdt_value_set_scalar=Me=>(d._rte_crdt_value_set_scalar=bt.w)(Me),d._rte_crdt_value_set_map=Me=>(d._rte_crdt_value_set_map=bt.x)(Me),d._rte_crdt_value_set_list=Me=>(d._rte_crdt_value_set_list=bt.y)(Me),d._rte_crdt_scalar_value_set_i64=(Me,ot)=>(d._rte_crdt_scalar_value_set_i64=bt.z)(Me,ot),d._rte_crdt_scalar_value_set_u64=(Me,ot)=>(d._rte_crdt_scalar_value_set_u64=bt.A)(Me,ot),d._rte_crdt_scalar_value_set_double=(Me,ot)=>(d._rte_crdt_scalar_value_set_double=bt.B)(Me,ot),d._rte_crdt_scalar_value_set_bool=(Me,ot)=>(d._rte_crdt_scalar_value_set_bool=bt.C)(Me,ot),d._rte_crdt_scalar_value_set_bytes=(Me,ot,Ct)=>(d._rte_crdt_scalar_value_set_bytes=bt.D)(Me,ot,Ct),d._rte_crdt_scalar_value_set_null=Me=>(d._rte_crdt_scalar_value_set_null=bt.E)(Me),d._rte_crdt_scalar_value_set_counter=(Me,ot)=>(d._rte_crdt_scalar_value_set_counter=bt.F)(Me,ot),d._rte_crdt_scalar_value_is_i64=Me=>(d._rte_crdt_scalar_value_is_i64=bt.G)(Me),d._rte_crdt_scalar_value_is_u64=Me=>(d._rte_crdt_scalar_value_is_u64=bt.H)(Me),d._rte_crdt_scalar_value_is_double=Me=>(d._rte_crdt_scalar_value_is_double=bt.I)(Me),d._rte_crdt_scalar_value_is_bool=Me=>(d._rte_crdt_scalar_value_is_bool=bt.J)(Me),d._rte_crdt_scalar_value_is_bytes=Me=>(d._rte_crdt_scalar_value_is_bytes=bt.K)(Me),d._rte_crdt_scalar_value_is_null=Me=>(d._rte_crdt_scalar_value_is_null=bt.L)(Me),d._rte_crdt_scalar_value_is_counter=Me=>(d._rte_crdt_scalar_value_is_counter=bt.M)(Me),d._rte_crdt_scalar_value_get_i64=(Me,ot)=>(d._rte_crdt_scalar_value_get_i64=bt.N)(Me,ot),d._rte_crdt_scalar_value_get_u64=(Me,ot)=>(d._rte_crdt_scalar_value_get_u64=bt.O)(Me,ot),d._rte_crdt_scalar_value_get_double=(Me,ot)=>(d._rte_crdt_scalar_value_get_double=bt.P)(Me,ot),d._rte_crdt_scalar_value_get_bool=(Me,ot)=>(d._rte_crdt_scalar_value_get_bool=bt.Q)(Me,ot),d._rte_crdt_scalar_value_get_bytes=(Me,ot,Ct)=>(d._rte_crdt_scalar_value_get_bytes=bt.R)(Me,ot,Ct),d._rte_crdt_scalar_value_get_counter=(Me,ot)=>(d._rte_crdt_scalar_value_get_counter=bt.S)(Me,ot),d._rte_crdt_nested_value_create=()=>(d._rte_crdt_nested_value_create=bt.T)(),d._rte_crdt_nested_value_destroy=Me=>(d._rte_crdt_nested_value_destroy=bt.U)(Me),d._rte_crdt_nested_value_print=Me=>(d._rte_crdt_nested_value_print=bt.V)(Me),d._rte_crdt_nested_value_is_scalar=Me=>(d._rte_crdt_nested_value_is_scalar=bt.W)(Me),d._rte_crdt_nested_value_is_map=Me=>(d._rte_crdt_nested_value_is_map=bt.X)(Me),d._rte_crdt_nested_value_is_list=Me=>(d._rte_crdt_nested_value_is_list=bt.Y)(Me),d._rte_crdt_nested_value_get_scalar=Me=>(d._rte_crdt_nested_value_get_scalar=bt.Z)(Me),d._rte_crdt_nested_value_iterator_create=Me=>(d._rte_crdt_nested_value_iterator_create=bt._)(Me),d._rte_crdt_nested_value_iterator_destroy=Me=>(d._rte_crdt_nested_value_iterator_destroy=bt.$)(Me),d._rte_crdt_nested_value_iterator_next_key_value=(Me,ot,Ct,Kt)=>(d._rte_crdt_nested_value_iterator_next_key_value=bt.aa)(Me,ot,Ct,Kt),d._rte_crdt_nested_value_iterator_next_value=(Me,ot)=>(d._rte_crdt_nested_value_iterator_next_value=bt.ba)(Me,ot),d._rte_crdt_path_create=()=>(d._rte_crdt_path_create=bt.ca)(),d._rte_crdt_path_clone=Me=>(d._rte_crdt_path_clone=bt.da)(Me),d._rte_crdt_path_destroy=Me=>(d._rte_crdt_path_destroy=bt.ea)(Me),d._rte_crdt_path_add_property=(Me,ot,Ct)=>(d._rte_crdt_path_add_property=bt.fa)(Me,ot,Ct),d._rte_crdt_path_add_index=(Me,ot)=>(d._rte_crdt_path_add_index=bt.ga)(Me,ot),d._rte_crdt_path_iterator_create=Me=>(d._rte_crdt_path_iterator_create=bt.ha)(Me),d._rte_crdt_path_iterator_destroy=Me=>(d._rte_crdt_path_iterator_destroy=bt.ia)(Me),d._rte_crdt_path_iterator_next=(Me,ot,Ct,Kt)=>(d._rte_crdt_path_iterator_next=bt.ja)(Me,ot,Ct,Kt),d._rte_crdt_document_destroy=Me=>(d._rte_crdt_document_destroy=bt.ka)(Me),d._rte_crdt_document_get=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_get=bt.la)(Me,ot,Ct,Kt),d._rte_crdt_document_obj_size=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_obj_size=bt.ma)(Me,ot,Ct,Kt),d._rte_crdt_document_batch_write_begin=Me=>(d._rte_crdt_document_batch_write_begin=bt.na)(Me),d._rte_crdt_document_batch_write_end=Me=>(d._rte_crdt_document_batch_write_end=bt.oa)(Me),d._rte_crdt_document_put=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_put=bt.pa)(Me,ot,Ct,Kt),d._rte_crdt_document_insert=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_insert=bt.qa)(Me,ot,Ct,Kt),d._rte_crdt_document_delete=(Me,ot,Ct)=>(d._rte_crdt_document_delete=bt.ra)(Me,ot,Ct),d._rte_crdt_document_increment=(Me,ot,Ct,Kt)=>(d._rte_crdt_document_increment=bt.sa)(Me,ot,Ct,Kt),d._rte_crdt_collection_put_doc=(Me,ot,Ct)=>(d._rte_crdt_collection_put_doc=bt.ta)(Me,ot,Ct),d._rte_crdt_collection_delete_doc=(Me,ot,Ct)=>(d._rte_crdt_collection_delete_doc=bt.ua)(Me,ot,Ct),d._rte_crdt_collection_ref_doc=(Me,ot,Ct)=>(d._rte_crdt_collection_ref_doc=bt.va)(Me,ot,Ct),d._rte_crdt_collection_iterator_create=(Me,ot,Ct)=>(d._rte_crdt_collection_iterator_create=bt.wa)(Me,ot,Ct),d._rte_crdt_collection_iterator_destroy=Me=>(d._rte_crdt_collection_iterator_destroy=bt.xa)(Me),d._rte_crdt_collection_iterator_next=(Me,ot,Ct)=>(d._rte_crdt_collection_iterator_next=bt.ya)(Me,ot,Ct),d._rte_crdt_collection_init=(Me,ot,Ct)=>(d._rte_crdt_collection_init=bt.za)(Me,ot,Ct),d._rte_crdt_collection_subscribe=(Me,ot,Ct)=>(d._rte_crdt_collection_subscribe=bt.Aa)(Me,ot,Ct),d._sync_client_create=(Me,ot,Ct)=>(d._sync_client_create=bt.Ba)(Me,ot,Ct),d._sync_client_destroy=Me=>(d._sync_client_destroy=bt.Ca)(Me),d._sync_client_enable_dynamic_readable=Me=>(d._sync_client_enable_dynamic_readable=bt.Da)(Me),d._sync_client_set_shakehand_interval=(Me,ot)=>(d._sync_client_set_shakehand_interval=bt.Ea)(Me,ot),d._sync_client_set_connection_timeout=(Me,ot)=>(d._sync_client_set_connection_timeout=bt.Fa)(Me,ot),d._sync_client_set_request_timeout=(Me,ot)=>(d._sync_client_set_request_timeout=bt.Ga)(Me,ot),d._sync_client_set_doc_ttl=(Me,ot,Ct,Kt,Xr)=>(d._sync_client_set_doc_ttl=bt.Ha)(Me,ot,Ct,Kt,Xr),d._sync_client_set_sync_interval=(Me,ot,Ct,Kt)=>(d._sync_client_set_sync_interval=bt.Ia)(Me,ot,Ct,Kt),d._sync_buffer_create=()=>(d._sync_buffer_create=bt.Ja)(),d._sync_buffer_destroy=Me=>(d._sync_buffer_destroy=bt.Ka)(Me),d._sync_buffer_data=Me=>(d._sync_buffer_data=bt.La)(Me),d._sync_buffer_length=Me=>(d._sync_buffer_length=bt.Ma)(Me),d._batch_ops_create=()=>(d._batch_ops_create=bt.Na)(),d._batch_ops_destroy=Me=>(d._batch_ops_destroy=bt.Oa)(Me),d._batch_ops_add=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro)=>(d._batch_ops_add=bt.Pa)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro),d._sync_client_tick=(Me,ot)=>(d._sync_client_tick=bt.Qa)(Me,ot),d._sync_client_shakehand=(Me,ot)=>(d._sync_client_shakehand=bt.Ra)(Me,ot),d._sync_client_on_recv=(Me,ot,Ct,Kt)=>(d._sync_client_on_recv=bt.Sa)(Me,ot,Ct,Kt),d._sync_client_reset_connection=Me=>(d._sync_client_reset_connection=bt.Ta)(Me),d._sync_client_compact=Me=>(d._sync_client_compact=bt.Ua)(Me),d._sync_client_synced=Me=>(d._sync_client_synced=bt.Va)(Me),d._sync_client_create_coll=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci)=>(d._sync_client_create_coll=bt.Wa)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci),d._sync_client_subscribe=(Me,ot,Ct,Kt,Xr)=>(d._sync_client_subscribe=bt.Xa)(Me,ot,Ct,Kt,Xr),d._sync_client_get_coll=(Me,ot,Ct)=>(d._sync_client_get_coll=bt.Ya)(Me,ot,Ct),d._sync_client_delete_coll=(Me,ot,Ct)=>(d._sync_client_delete_coll=bt.Za)(Me,ot,Ct),d._sync_client_add_readable=(Me,ot,Ct,Kt)=>(d._sync_client_add_readable=bt._a)(Me,ot,Ct,Kt),d._sync_client_remove_readable=(Me,ot,Ct,Kt)=>(d._sync_client_remove_readable=bt.$a)(Me,ot,Ct,Kt),d._sync_collection_iterator_create=(Me,ot)=>(d._sync_collection_iterator_create=bt.ab)(Me,ot),d._sync_collection_iterator_next=(Me,ot)=>(d._sync_collection_iterator_next=bt.bb)(Me,ot),d._sync_client_enable_js_logging=()=>(d._sync_client_enable_js_logging=bt.cb)(),d._sync_client_set_log_level=Me=>(d._sync_client_set_log_level=bt.db)(Me),d._sync_client_set_exception_callback=(Me,ot,Ct)=>(d._sync_client_set_exception_callback=bt.eb)(Me,ot,Ct),d._sync_client_renew_tickets=(Me,ot,Ct)=>(d._sync_client_renew_tickets=bt.fb)(Me,ot,Ct),d._sync_client_keepalive=(Me,ot,Ct,Kt,Xr)=>(d._sync_client_keepalive=bt.gb)(Me,ot,Ct,Kt,Xr),d._sync_client_connect_database=(Me,ot,Ct,Kt,Xr,Lr)=>(d._sync_client_connect_database=bt.hb)(Me,ot,Ct,Kt,Xr,Lr),d._sync_client_disconnect_database=(Me,ot,Ct,Kt)=>(d._sync_client_disconnect_database=bt.ib)(Me,ot,Ct,Kt),d._sync_client_query_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho)=>(d._sync_client_query_doc=bt.jb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho),d._sync_client_put_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci)=>(d._sync_client_put_doc=bt.kb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci),d._sync_client_put_doc_ex=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro)=>(d._sync_client_put_doc_ex=bt.lb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro),d._sync_client_delete_doc=(Me,ot,Ct,Kt,Xr,Lr)=>(d._sync_client_delete_doc=bt.mb)(Me,ot,Ct,Kt,Xr,Lr),d._sync_client_update_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1)=>(d._sync_client_update_doc=bt.nb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1),d._sync_client_update_doc_ex=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1,qc)=>(d._sync_client_update_doc_ex=bt.ob)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci,ro,Ho,Oa,da,ua,Ns,w1,qc),d._sync_client_batch_update=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr)=>(d._sync_client_batch_update=bt.pb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr),d._sync_client_n1ql_query=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci)=>(d._sync_client_n1ql_query=bt.qb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr,ci),d._sync_client_range_docs=(Me,ot,Ct,Kt,Xr,Lr,Jr,zr)=>(d._sync_client_range_docs=bt.rb)(Me,ot,Ct,Kt,Xr,Lr,Jr,zr),d._sync_client_get_doc=(Me,ot,Ct,Kt,Xr,Lr,Jr)=>(d._sync_client_get_doc=bt.sb)(Me,ot,Ct,Kt,Xr,Lr,Jr),d._sync_client_set_permission_callback=(Me,ot,Ct)=>(d._sync_client_set_permission_callback=bt.tb)(Me,ot,Ct),d.___start_em_js=40968,d.___stop_em_js=41062,d.addFunction=(Me,ot)=>{var Ct=Tn(Me);if(Ct)return Ct;var Kt=(()=>{if(Zn.length)return Zn.pop();try{Fe.grow(1)}catch(Lr){throw Lr instanceof RangeError?"Unable to grow wasm table. Set ALLOW_TABLE_GROWTH.":Lr}return Fe.length-1})();try{hc(Kt,Me)}catch(Lr){if(!(Lr instanceof TypeError))throw Lr;var Xr=gs(Me,ot);hc(Kt,Xr)}return Kn.set(Me,Kt),Kt},d.removeFunction=Me=>{Kn.delete(Bs(Me)),Zn.push(Me)},d.setValue=function(Me,ot){let Ct=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"i8";switch(Ct.endsWith("*")&&(Ct="*"),Ct){case"i1":case"i8":W[0|Me]=ot;break;case"i16":ee[Me>>1]=ot;break;case"i32":he[Me>>2]=ot;break;case"i64":_e[Me>>3]=BigInt(ot);break;case"float":Ee[Me>>2]=ot;break;case"double":De[Me>>3]=ot;break;case"*":ue[Me>>2]=ot;break;default:Yt("invalid type for setValue: ".concat(Ct))}},d.getValue=function(Me){let ot=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"i8";switch(ot.endsWith("*")&&(ot="*"),ot){case"i1":case"i8":return W[0|Me];case"i16":return ee[Me>>1];case"i32":return he[Me>>2];case"i64":return _e[Me>>3];case"float":return Ee[Me>>2];case"double":return De[Me>>3];case"*":return ue[Me>>2];default:Yt("invalid type for getValue: ".concat(ot))}},d.UTF8ToString=fi,d.stringToUTF8=(Me,ot,Ct)=>Oi(Me,re,ot,Ct),d.lengthBytesUTF8=oi,lt=function Me(){ai||Es(),ai||(lt=Me)},d.preInit)for(typeof d.preInit=="function"&&(d.preInit=[d.preInit]);d.preInit.length>0;)d.preInit.pop()();return Es(),n.ready};const getUTCTimestamp=()=>{const n=new Date;return"".concat(n.toISOString().split("T")[1].replace(/\..+/,""),".").concat(n.getMilliseconds())};let wasmReject,wasmResolve;const wasmPromise=new Promise((n,e)=>{wasmReject=e,wasmResolve=n});let Module,isBrowser;async function initWasm(n){Module=await wasmPromise,initFunc(n)}function setBrowser(n){isBrowser=n}createModule({rtejsLog:(n,e)=>{switch(n){case 0:console.debug(e," ----------rtejslog");break;case 1:console.info(e," ----------rtejslog");break;case 2:console.warn(e," ----------rtejslog");break;case 3:console.error(e," ----------rtejslog")}}}).then(n=>{wasmResolve(n),console.log(getUTCTimestamp(),"wasm-module initialized")}).catch(n=>{wasmReject(n)});class QueryDocBuffer{constructor(){this.docs=new Map,this.count=-1,this.more=!1}SetDocs(e,o){this.docs.set(e,o)}SetCount(e){if(!isInteger(e))throw new TypeError("The num is expected to be an integer, but a double was got.");this.count=e}SetMore(e){this.more=e}}class SyncClient{constructor(e){this.appId=e.appId,this.logLevel=e.logLevel,this.shakehandInterval=e.shakehandInterval,this.manualShakehand=e.manualShakehand,this.manualTick=e.manualTick,this.uuidPrefix=e.uuidPrefix,this.getLogger=e.getLogger,this.reuseConn=e.reuseConn,this.tickets=new Map,this.exceptionCb=null,this.exceptionChan=new eventsExports.EventEmitter;const o=getPtrWithStr(this.uuidPrefix+"_"+uuid_1.v4()),[d,I]=getPtrStringList(Array.from(this.tickets.values()));this.clientPtr=Module._sync_client_create(o,d,this.tickets.size);for(let f=0;f{this.connected=!0,this.manualTick||(tickLoop(this),this.timer=setInterval(()=>{tickLoop(this)},2e3))}),this.reuseConn().internalEmitter.on("disconnected",()=>{this.connected=!1,this.manualTick||clearInterval(this.timer),Module._sync_client_reset_connection(this.clientPtr)}),this.reuseConn().internalEmitter.on("received-packet",f=>{try{const S=f.length*f.BYTES_PER_ELEMENT,v=Module._malloc(S);Module.HEAPU8.set(f,v);const L=Module._sync_client_on_recv(this.clientPtr,v,BigInt(S),this.tickBufferPtr);if(Module._free(v),L===101)Module._sync_client_reset_connection(this.clientPtr);else{const x=new Uint8Array(Module.HEAPU8.buffer,Module._sync_buffer_data(this.tickBufferPtr),Number(Module._sync_buffer_length(this.tickBufferPtr))).slice();x.length!=0&&(this.reuseConn().sendPacket(x),logger(new Date().toString()+" : recv and send packet",this.getLogger,"info"))}}catch(S){logger("recvError : ".concat(S),this.getLogger,"error")}}))}async Login(){if(this.reuseConn===null){if(!(this.tickets.size>0))throw new Error("Tickets should be set before logging in.");await fetchHelper(this,isBrowser),logger("Open the WebSocket successfully",this.getLogger,"info")}}Logout(){this.tickBufferPtr&&this.tickBufferPtr!==0&&(Module._sync_buffer_destroy(this.tickBufferPtr),this.tickBufferPtr=0),this.reuseConn===null&&clearInterval(this.timer),this.manualShakehand&&this.shakehandBufferPtr&&this.shakehandBufferPtr!==0&&(Module._sync_buffer_destroy(this.shakehandBufferPtr),this.shakehandBufferPtr=0),this.exceptionCb!=null&&Module.removeFunction(this.exceptionCb),this.connected=!1,logger("Logout successfully",this.getLogger,"info")}async ConnectDatabase(e){try{if(await promisify(connectDatabase)({client:this,databaseName:e}),!this.databaseConnected.has(e)){const o=new SyncDatabase(e,this);this.databaseConnected.set(e,o)}}catch(o){throw logger("Database connection failed by the error : ".concat(o),this.getLogger,"error"),new Error("Database connection failed by the error: ".concat(o))}}async DisConnectDatabase(e){if(this.databaseConnected.has(e))try{await promisify(disconnectDatabase)({client:this,databaseName:e}),this.databaseConnected.delete(e)}catch(o){logger("Database disconnection failed by the error : ".concat(o),this.getLogger,"error")}}Database(e){return this.databaseConnected.has(e)?this.databaseConnected.get(e):null}SetTicket(e,o){this.tickets.set(e,o);const[d,I]=getPtrStringList(Array.from(this.tickets.values()));Module._sync_client_renew_tickets(this.clientPtr,d,this.tickets.size),this.connected&&tickLoop(this),releasePtr(d);for(let f=0;f=0)return d.countOnly?[null,I.count,I.more]:d.keysOnly?[Array.from(I.docs.keys()).sort(),I.count,I.more]:[new Map([...I.docs].sort()),I.count,I.more];throw new Error("The query doc operation is failed")}Shakehand(){if(!this.manualShakehand)throw new Error("The manualShakehand is set to false for this client.");shakehandOnce(this)}Tick(){if(!this.manualTick)throw new Error("The manualTick is set to false for this client.");tickLoop(this)}SetConnectionTimeout(e){if(!isInteger(e)||e<=0)throw new TypeError("The seconds is expected to be a positive integer.");Module._sync_client_set_connection_timeout(this.clientPtr,e)}GetConnectionState(){return this.connected}ExceptionCallback(){return this.exceptionCb!=null&&Module.removeFunction(this.exceptionCb),exceptionCallback(this),this.exceptionChan}EnableDynamicReadable(){Module._sync_client_enable_dynamic_readable(this.clientPtr)}Synced(){return Module._sync_client_synced(this.clientPtr)}}class SyncConfig{constructor(e,o,d,I,f,S){let v=arguments.length>6&&arguments[6]!==void 0?arguments[6]:null,L=arguments.length>7&&arguments[7]!==void 0?arguments[7]:null;if(!isInteger(o))throw new TypeError("The logLevel is expected to be an int, but a double was got.");if(!isInteger(d))throw new TypeError("The shakehandInterval is expected to be an integer, but a double was got.");this.appId=e,this.logLevel=o,this.shakehandInterval=d,this.manualShakehand=I,this.manualTick=f,this.uuidPrefix=S,this.getLogger=v,this.reuseConn=L}}class QueryOption{constructor(e,o,d,I,f){let S=!(arguments.length>5&&arguments[5]!==void 0)||arguments[5],v=arguments.length>6&&arguments[6]!==void 0&&arguments[6],L=arguments.length>7&&arguments[7]!==void 0&&arguments[7];if(!isInteger(f)||f<0)throw new TypeError("The limit is expected to be an int greater than or equal to zero, but a double or a negative int was got.");this.start=e,this.end=o,this.keysOnly=d,this.countOnly=I,this.limit=f,this.startIncluded=S,this.endIncluded=v,this.ignoreExpired=L}}async function CreateClient(n){return await initWasm(n.getLogger),typeof process=="object"?setBrowser(!1):typeof window=="object"&&setBrowser(!0),new SyncClient(n)}class VirtualSyncSocket{get env(){var e;return(e=this.getSockets()[0])===null||e===void 0?void 0:e.env}constructor(e){_defineProperty$1(this,"getSockets",void 0),_defineProperty$1(this,"internalEmitter",new eventsExports.EventEmitter),this.getSockets=e,this.internalEmitter.setMaxListeners(512)}sendPacket(e){var o,d;(o=this.getSockets()[0])===null||o===void 0||(d=o.sendSyncPacket)===null||d===void 0||d.call(o,e)}}class RTMSession extends EventBase{get syncTicket(){return this._syncTicket}get endLogin$(){return this.connectionController.connection.endLogin$}constructor(e,o,d,I,f){super(o,"RTMSession"),_defineProperty$1(this,"context",void 0),_defineProperty$1(this,"connectionController",void 0),_defineProperty$1(this,"syncClient",void 0),_defineProperty$1(this,"virtualSocket",void 0),_defineProperty$1(this,"_syncTicket",void 0),_defineProperty$1(this,"dbObj",void 0),_defineProperty$1(this,"cacheCrdtState",void 0),_defineProperty$1(this,"exceptionCallback",void 0),this.context=e,this.cacheCrdtState=I,this.exceptionCallback=f,this.connectionController=new ConnectionController(e,d,o,this.manualShakeHand.bind(this),this._initSync.bind(this)),this.connectionController.on("syncTicketUpdated",S=>{this.updateSyncTicket(S)}),this.connectionController.on("syncConnected",()=>{this.emitSyncConnected()}),this.connectionController.on("syncDisconnected",S=>{this.warn("virtual socket disconnected, reason: %s",S),this.emitSyncDisconnected(),this.connectionController.syncEstablishState=SyncEstablishState.DISCONNECTED}),this.connectionController.on("syncPacket",S=>{this.handlePacket(S)})}release(){var e;this.stopLogin(),this.connectionController.release(),this.removeAllListeners(),(e=this.virtualSocket)===null||e===void 0||e.internalEmitter.removeAllListeners("connected"),this.syncClient=void 0,this.virtualSocket=void 0,this._syncTicket=void 0,this.dbObj=void 0}getOtherEnvTicket(e){return this.connectionController.getOtherEnvTicket(e)}sendOperationPacketUseOneEnv(e,o,d,I){this.connectionController.sendOperationPacketUseOneEnv(e,o,d,I)}sendOperationPacket(e,o,d){this.connectionController.sendOperationPacket(e,o,d)}onOperationPacket(e){return this.connectionController.onOperationPacket(e)}recoverEdges4RenewToken(){this.connectionController.connection.apClient.recoverEdges4RenewToken()}clearEdges4RenewToken(){this.connectionController.connection.apClient.clearEdges4RenewToken()}genApEdgeInfo$(e){return this.connectionController.connection.apClient.genApEdgeInfo$(e)}updateRegTicket(e){this.connectionController.updateRegTicket(e)}cancelLogin(){this.connectionController.emit("cancel-login"),this.connectionController.loginSubject$.next(),this.stopLogin()}async logoutRegistrar(e){return await this.connectionController.logoutHandler(e)}loginHandler(){return this.connectionController.loginHandler()}stopLogin(){this.connectionController.connection.apClient.apFinish$.next(void 0),this.connectionController.connection.stopLogin()}resetLinkIntervals(){this.connectionController.resetLinkIntervals()}getVirtualSyncSocket(){return this.connectionController.getVirtualSyncSocket()}notifyNetworkChange(e){this.connectionController.notifyNetworkChange(e)}notifyLoginInDisconnected(){this.connectionController.notifyLoginInDisconnected()}validateSyncConnected(e){if(this.connectionController.syncEstablishState!==SyncEstablishState.CONNECTED){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_NOT_CONNECTED);throw new RtmUnavailableError(e,[d],o)}}updateSyncTicket(e){const{ticket:o}=e;this._syncTicket=o}handlePacket(e){var o;const d=e.length,I=getSyncPacketUri(e);var f;I!==102&&this.log("env_%s: received packet, uri: %d, length: %d",(f=this.virtualSocket)===null||f===void 0?void 0:f.env,I,d),(o=this.virtualSocket)===null||o===void 0||o.internalEmitter.emit("received-packet",e)}emitSyncConnected(){var e;(e=this.virtualSocket)===null||e===void 0||e.internalEmitter.emit("connected")}emitSyncDisconnected(){var e;(e=this.virtualSocket)===null||e===void 0||e.internalEmitter.emit("disconnected")}async _initSync(){if(this.context.disablePresence)return;if(this.log("start logging sync..."),this.syncClient!==void 0)return this.log("not firstInit"),await this.connectDatabase(),this.cacheCrdtState(),this.manualShakeHand(),void this.emitSyncConnected();let e=0;switch(this.context.rtmConfig.logLevel){case"debug":e=0;break;case"info":e=1;break;case"warn":e=2;break;default:e=3}const o=new VirtualSyncSocket(this.getVirtualSyncSocket.bind(this));this.virtualSocket=o,o.internalEmitter.on("connected",()=>{this.log("virtual socket connected, env: %d",o.env)});const d=new SyncConfig(this.context.appId,e,3e3,!0,!0,this.context.uid,()=>({handleDebugLog:this.log,handleInfoLog:this.info,handleWarnLog:this.warn,handleErrorLog:this.logError}),()=>o);try{var I,f;const S=this.context.heartbeatInterval+((I=getParameter("RTM_LINK_KEEP_ALIVE_TIMEOUT"))!==null&&I!==void 0?I:CONFIGURABLE_KEY_RTM_LINK_KEEP_ALIVE_TIMEOUT),v=await CreateClient(d);this.log("create sync client success");const L=v.ExceptionCallback();L==null||L.addListener("exception",async x=>{let[F,Y]=x;if(this.logError("exception info: %o",{db:F,coll:Y}),F!==PRESENCE_DATABASE)return;const{prefixChannelName:j=""}=extractPrefixChannelName(Y),W=this.context.getChannelLastRealSubOrJoinOptions(j);this.exceptionCallback(j,W)}),v.SetConnectionTimeout(S/1e3),this.emitSyncConnected(),this.syncClient=v,v.SetTicket("rtm",(f=this._syncTicket)!==null&&f!==void 0?f:this.context.appId),await this.connectDatabase()}catch(S){throw this.logError("init sync error: ".concat(S)),S}}async connectDatabase(){var e,o;if(this.context.disablePresence)return;this.sendTick(),this.log("send tick success, will connect sync database"),this.log("".concat(SYNC_RPC_START,": syncClient connectDatabase")),await timeoutPromise(this==null||(e=this.syncClient)===null||e===void 0?void 0:e.ConnectDatabase(PRESENCE_DATABASE),DEFAULT_RPC_TIMEOUT_TIME,"connectDatabase",RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT),this.log("".concat(SYNC_RPC_END,": syncClient connectDatabase")),this.sendTick();const d=this==null||(o=this.syncClient)===null||o===void 0?void 0:o.Database(PRESENCE_DATABASE);this.dbObj=d,this.connectionController.cancelSyncTimer()}renewSyncTicket(e){if(this.context.disablePresence)return;const o=OperationName.renewToken;try{var d;this.log("".concat(SYNC_RPC_START,": ").concat(o)),(d=this.syncClient)===null||d===void 0||d.SetTicket("rtm",e),this.sendTick(),this.log("".concat(SYNC_RPC_END,": ").concat(o))}catch(I){this.logError("".concat(SYNC_RPC_END,": ").concat(o," by rpc failure. error is ").concat(I))}return!0}leaveColl(e){var o;const d=this.getChannelCollName(e);(o=this.dbObj)===null||o===void 0||o.DestroyCollection(d),this.sendTick()}delChannelDoc(e){try{var o;const d=this.getChannelCollName(e),I=this.getColl(e,!0,"delChannelDoc");I&&((o=this.dbObj)===null||o===void 0||o.CancelAutoKeepalive(d,this.context.uid)),I==null||I.DelDoc(this.context.uid),this.sendTick(),this.log("Delete channel(".concat(replaceRangeWithAsterisk(e),") document succeed."))}catch(d){this.logError("Delete channel document failed, error: %o",d)}}async createColl(e,o,d){var I;return(I=this.dbObj)===null||I===void 0?void 0:I.CreateCollection(this.getChannelCollName(e),o,d)}async logoutSyncHandler(){var e;if(!this.context.disablePresence){this.log("".concat(SYNC_RPC_START,": disconnectDatabase, establishState: %s"),this.connectionController.syncEstablishState);try{var o;this.connectionController.syncEstablishState===SyncEstablishState.CONNECTED&&await timeoutPromise((o=this.syncClient)===null||o===void 0?void 0:o.DisConnectDatabase(PRESENCE_DATABASE),DEFAULT_RPC_TIMEOUT_TIME,OperationName.logout,0)}catch{this.warn("disconnectDatabase timeout")}this.log("".concat(SYNC_RPC_END,": disconnectDatabase")),(e=this.syncClient)===null||e===void 0||e.Logout(),this.sendTick(),this.log("virtual socket disconnected, reason: logout"),this.emitSyncDisconnected()}}async requestRpc(e,o){var d;if(this.context.disablePresence)return;const I=new QueryOption(o.start,o.end,o.keysOnly,o.countOnly,o.limit,o.startIncluded,o.endIncluded,o.ignoreExpired);return(d=this.syncClient)===null||d===void 0?void 0:d.QueryDoc(PRESENCE_DATABASE,e===K_GLOBAL_PRESENCE_COLLECTION?K_GLOBAL_PRESENCE_COLLECTION:this.getChannelCollName(e),I)}getColl(e){var o;let d=arguments.length>1&&arguments[1]!==void 0&&arguments[1],I=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"";const f=this.getChannelCollName(e),S=(o=this.dbObj)===null||o===void 0?void 0:o.Coll(f);return S===null&&d&&this.warn("coll(".concat(f,") is null in ").concat(I,".")),S||null}getChannelCollName(e){return getChannelQueryString(this.context.vid,e)}manualShakeHand(){var e;this.context.disablePresence||this.getSyncConnected()&&((e=this.syncClient)===null||e===void 0||e.Shakehand())}sendTick(){var e;this.context.disablePresence||this.getSyncConnected()&&((e=this.syncClient)===null||e===void 0||e.Tick())}getSynced(){var e;if(!this.context.disablePresence)return(e=this.syncClient)===null||e===void 0?void 0:e.Synced()}getSyncConnected(){var e;if(!this.context.disablePresence)return(e=this.syncClient)===null||e===void 0?void 0:e.GetConnectionState()}isSyncEstablished(){return this.connectionController.syncEstablishState===SyncEstablishState.CONNECTED}getDocByUid(e,o){const{funcName:d="",uid:I=this.context.uid}=o,f=this.getColl(e,!0,d);return f==null?void 0:f.Doc(I)}setAutoKeepalive(e){var o;const d=this.getChannelCollName(e);(o=this.dbObj)===null||o===void 0||o.SetAutoKeepalive(d,this.context.uid,this.context.rtmConfig.presenceTimeout)}updateLoggedOut(e){this.connectionController.updateLoggedOut(e)}}function genGetRTMSession(n){return()=>{const e=n();if(!e){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError("Client is not logged in. Cannot do the operation",[d],o)}return e}}class LocalTopic extends EventBase{constructor(e,o,d,I){super(o,"LocalTopic"),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_topicName",void 0),_defineProperty$1(this,"_localDatachannel",void 0),this._context=e,this._topicName=d,this._localDatachannel=I}getDataChannel(){return this._localDatachannel}async publishTopicMessage(e,o,d){const I=this._localDatachannel,f=this._topicName;if(!I){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_JOINED);throw new RtmUnavailableError(e,[re],W)}if(I.readyState!=="open"){this.log("send topic(%s) message failed. readyState of datachannel is ".concat(I.readyState),f);const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_FAILED);throw new RtmUnavailableError(e,[re],W)}const{initEncryption:S,iv:v,key:L,keyLength:x}=this._context.encryptionInfo,F=S,Y=typeof o=="string"?new TextEncoder().encode(o):o,j=Y.byteLength;try{const W=F?encrypt(Y,L,v,x):Y,re=typeof o=="string"?1:0;I.send(this._encodeMessage(W,j,F,re,d==null?void 0:d.customType))}catch{const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_ENCRYPT_MESSAGE_FAILED);throw new RtmUnavailableError(e,[ee],re)}}_encodeMessage(e,o,d,I,f){return StreamMessageProtocol.encode(_objectSpread2({messageType:I,payload:e,encrypted:d,payloadLength:o},f?{customType:f}:{})).finish()}}class RemoteTopic extends EventBase{constructor(e,o,d,I,f){super(o,"RemoteTopic"),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_topicName",void 0),_defineProperty$1(this,"_channelName",void 0),_defineProperty$1(this,"_emitTopicMessage",void 0),_defineProperty$1(this,"_internalEmitter",new EventEmitter$1),_defineProperty$1(this,"_users",new Map),this._context=e,this._topicName=d,this._channelName=I,this._emitTopicMessage=f}addUserWithDc(e,o){this._users.set(e,o)}addUserWithoutDc(e,o){this._users.set(e,{subscribedState:"PRE_SUBSCRIBE",meta:"",id:0,user:o})}updateUserDatachannelInfo(e,o){if(this._users.has(e)){const d=this._users.get(e);if(d){const{subscribedState:I,datachannel:f}=d,{meta:S,id:v,user:L}=o;this._users.set(e,{meta:S,id:v,subscribedState:I,datachannel:f,user:L})}}else this.warn("update user datachannel info failure, not pre_subscribe the user in the topic.")}removeUser(e){this._users.delete(e),this._internalEmitter.emit("unsubscribeTopicMessage",{topicName:this._topicName,userId:e})}removeUserDatachannel(e){const o=this._users.get(e);o&&this._users.set(e,_objectSpread2(_objectSpread2({},o),{},{datachannel:void 0}))}handleSubscription(e,o){this._fillUserDatachannel(o,e),this._addMessageEvent(e,o),this._updateSubscribeState(o,"SUBSCRIBED")}handleUnsubscription(e){this._internalEmitter.emit("unsubscribeTopicMessage",{topicName:this._topicName,userId:e}),this._updateSubscribeState(e,"UNSUBSCRIBE")}getUsers(){return this._users}getSubscribedUsers(){return Array.from(this._users.keys()).filter(e=>{var o;return((o=this._users.get(e))===null||o===void 0?void 0:o.subscribedState)==="SUBSCRIBED"})}getPreSubscribedUsers(){return Array.from(this._users.keys()).filter(e=>{var o;return((o=this._users.get(e))===null||o===void 0?void 0:o.subscribedState)==="PRE_SUBSCRIBE"})}getAllSubscribedUserCount(){return this.getSubscribedUsers().length+this.getPreSubscribedUsers().length}release(){this._internalEmitter.removeAllListeners()}_updateSubscribeState(e,o){const d=this._users.get(e);if(d){const{subscribedState:I,id:f,meta:S,datachannel:v,user:L}=d;let x=!1;switch(I){case"PRE_SUBSCRIBE":o==="UNSUBSCRIBE"?this.removeUser(e):o==="SUBSCRIBED"&&(x=!0);break;case"SUBSCRIBED":(o==="UNSUBSCRIBE"||o==="PRE_SUBSCRIBE")&&(x=!0);break;case"UNSUBSCRIBE":x=!0}x&&this._users.set(e,{subscribedState:o,id:f,meta:S,datachannel:v,user:L})}}_fillUserDatachannel(e,o){const d=this._users.get(e);d&&this._users.set(e,_objectSpread2(_objectSpread2({},d),{},{datachannel:o}))}_decodeMessage(e){return StreamMessageProtocol.decode(e)}_addMessageEvent(e,o){const d=f=>{var S;if(((S=this._users.get(o))===null||S===void 0?void 0:S.subscribedState)!=="SUBSCRIBED")return void this.warn("Received a message from %s(topic: %s), but not subscribed.",o,this._topicName);const v=this._decodeMessage(new Uint8Array(f)),{encrypted:L,payloadLength:x,messageType:F,payload:Y,customType:j}=v,{key:W,iv:re,keyLength:ee}=this._context.encryptionInfo;if(L&&!W)return void this.warn("Received a message with encryption but the key is not ready yet.");if(!L&&W)return void this.warn("Received a message without encryption but the key is ready.");let he;he=F===1?new TextDecoder().decode(L?decrypt(Y,W,re,ee).slice(0,x):Y):L?decrypt(Y,W,re,ee).slice(0,x):Y,this._emitTopicMessage({channelName:this._channelName,channelType:"STREAM",topicName:this._topicName,message:he,publisher:o,messageType:F===1?"STRING":"BINARY",customType:j,timestamp:getUTCTimeBaseREG(this._context.offsetTime)})};e==null||e.on("open",()=>{this.log("".concat(this._channelName,"(").concat(this._topicName,") remote dc opened."))}),e==null||e.on("close",()=>{this.warn("".concat(this._channelName,"(").concat(this._topicName,") remote dc closed."))}),e==null||e.on("error",f=>{this.logError("error occurs in ".concat(this._channelName,"(").concat(this._topicName,") remote dc. error is %o"),f)}),e.on("message",d),this.log("".concat(this._channelName,"(").concat(this._topicName,") msg event added"));const I=f=>{let{userId:S,topicName:v}=f;S===o&&v===this._topicName&&(e.off("message",d),this._internalEmitter.removeListener("unsubscribeTopicMessage",I))};this._internalEmitter.on("unsubscribeTopicMessage",I)}}class ApiRateLimiter{constructor(){_defineProperty$1(this,"operationsTimeCache",{})}canMakeOperation(e,o){var d,I;let f=(d=getParameter("API_RATE_LIMIT").get(e))!==null&&d!==void 0?d:0;o!=null&&o.times&&(f=o.times);const S=Date.now();if(this.operationsTimeCache[e]||(this.operationsTimeCache[e]=[]),this.operationsTimeCache[e]=this.operationsTimeCache[e].filter(F=>F>S-API_QPS_SECOND),this.operationsTimeCache[e].length{if(this.log("rtc state: pre(%s), now(%s), reason: %s.",re,W,ee),re==="RECONNECTING"&&this._controlReconnectTimer&&clearTimeout(this._controlReconnectTimer),this._isJoinedChannel&&W==="DISCONNECTED"){if(this._firstSnapshot4topic=!0,this._privatePermitUseMessageChn){try{await this._unsubLockAMeta(this._prefixChannelName)}catch{}ee==="LEAVE"||ee==="UID_BANNED"?this._absent(this._prefixChannelName):this._absent(this._prefixChannelName,!1),this._context.deleteChannelOptionsCache(this._prefixChannelName)}if(this._handleLeaveEffects(),ee&&ee!=="LEAVE"){this.warn("streamChannel connection state change to DISCONNECTED, reason: %s",ee);let ue=LinkStateChangeReasonDescription.KICKED_OUT_BY_SERVER,Ee="KICKED_OUT_BY_SERVER";ee===AgoraRTC.ConnectionDisconnectedReason.TOKEN_EXPIRE&&(ue=LinkStateChangeReasonDescription.TOKEN_EXPIRED,Ee="TOKEN_EXPIRED"),this._updateLinkState("FAILED","SERVER_REJECT",Ee,ue)}}W==="RECONNECTING"&&(this._updateLinkState("CONNECTING","AUTO_RECONNECT","AUTO_RECONNECT",LinkStateChangeReasonDescription.AUTO_RECONNECT),this._controlReconnectTimer=setTimeout(async()=>{this.warn("streamChannel reconnect timeout, force leave."),await this.leave()},RECONNECT_STREAM_CHANNEL_TIMEOUT)),W==="CONNECTED"&&this._isJoinedChannel&&this._updateLinkState("CONNECTED","RECONNECTED","RECONNECT_SUCCESS",LinkStateChangeReasonDescription.RECONNECT_SUCCESS);const he={channelName:this._channelName,state:W,reason:ee??W==="CONNECTED"?"OK":"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",he)}),_defineProperty$1(this,"_handleUserPublishedList",W=>{const re=[];if(W.concat(this._rtcClient.remoteUsers).forEach(he=>{re.find(ue=>ue.uid.toString()===he.uid.toString())||re.push(he)}),!this._firstSnapshot4topic)return void this._handleUpdatedTopicsInOffline(re);const ee=[];if(re.forEach(he=>{var ue;(ue=he.dataChannels)===null||ue===void 0||ue.forEach(Ee=>{Ee.getConfig()&&ee.push({user:he,config:Ee.getConfig(),dc:Ee})})}),this._firstSnapshot4topic=!1,ee.length===0){const he={eventType:"SNAPSHOT",channelName:this._channelName,publisher:"",topicInfos:[],totalTopics:0,timestamp:getUTCTimeBaseREG(this._context.offsetTime)};return this._emitRtmEvent("topic",he),void this._reportTopicUpdate("SNAPSHOT",{})}this._handleReceivedDcs(ee,"","SNAPSHOT")}),_defineProperty$1(this,"_handleUserPublished",(W,re,ee)=>{var he;if(re!=="datachannel"||ee===void 0)return;const ue=(he=W.dataChannels)===null||he===void 0?void 0:he.find(Ee=>Ee.id===ee.id);this._handleReceivedDcs([{user:W,config:ee,dc:ue}],W.uid.toString(),"REMOTE_JOIN")}),_defineProperty$1(this,"_handleUserUnPublished",(W,re,ee)=>{if(re!=="datachannel")return;const he=ee==null?void 0:ee.metadata;if(he===void 0)return;const ue=this._decodeMetadata(he),Ee=ue.topic,_e=ue.metadata;this._emitTopicLeft(Ee,W,_e)}),_defineProperty$1(this,"_handleTokenPrivilegeWillExpire",()=>{this._emitRtmEvent("tokenPrivilegeWillExpire",this._channelName)}),_defineProperty$1(this,"_handleUserJoined",W=>{const re=this._prefixChannelName;this._context.internalEmitter.emit("presence-user-joined",{channelName:re,userId:W.uid.toString()})}),_defineProperty$1(this,"_handlerUserLeft",W=>{const re=this._prefixChannelName;this._context.internalEmitter.emit("presence-user-left",{channelName:re,userId:W.uid.toString()})}),_defineProperty$1(this,"_emitTopicMessage",W=>{this._emitRtmEvent("message",W)}),_defineProperty$1(this,"_emitTopicLeft",(W,re,ee)=>{const he=re.uid.toString(),ue=this._getInitTopicEventData("REMOTE_LEAVE",this._channelName,he,1);ue.topicInfos.push({publishers:[{publisherUserId:he,publisherMeta:ee}],topicName:W,totalPublisher:1}),this._emitRtmEvent("topic",ue),this._reportTopicUpdate("REMOTE_LEAVE",{[W]:{publishers:[{publisherUserId:he,publisherMeta:ee}],publisherCount:1}});const Ee=this._remoteTopics.get(W);Ee!=null&&Ee.getSubscribedUsers().includes(he)?Ee==null||Ee.addUserWithoutDc(he,re):this._deleteRemoteDc(W,he)}),(Y=e.rtmConfig.logLevel)!==null&&Y!==void 0?Y:"none"){case"debug":AgoraRTC.setLogLevel(0);break;case"info":AgoraRTC.setLogLevel(1);break;case"warn":AgoraRTC.setLogLevel(2);break;case"none":AgoraRTC.setLogLevel(4);break;default:AgoraRTC.setLogLevel(3)}this._channelName=d.channelName,this._prefixChannelName=getChannelNameByType(this._channelName,"STREAM"),this._context=e,e.rtmConfig.useStringUserId?this._userId4RTC=e.userId:this._userId4RTC=Number(e.userId),this._emitRtmEvent=I,this._getStreamChannelList=f,this._validateRtmConnection=function(W){S(W,arguments.length>1&&arguments[1]!==void 0&&arguments[1])},this._getRTMSession=genGetRTMSession(v),this.setMaxListeners(512),this._updateOptionsReJoinOrSub=L,this._unsubLockAMeta=x,this._absent=F,e.rtmConfig.privateConfig&&!e.rtmConfig.privateConfig.serviceType.includes("MESSAGE")||(this._privatePermitUseMessageChn=!0),AgoraRTC.setParameter("ENABLE_DATASTREAM_2",!0),AgoraRTC.setParameter("DATASTREAM_MAX_RETRANSMITS",0),AgoraRTC.setParameter("AP_RTM",!0),this._context.rtmConfig.logUpload&&AgoraRTC.setParameter("UPLOAD_LOG",!0);const j=[];this._isReuseRtcClient=j.length>0,this.log("Create streamChannel, isReuseRtcClient: ".concat(this._isReuseRtcClient)),this._rtcClient=this._isReuseRtcClient?j[0]:AgoraRTC.createClient({codec:"vp8",mode:"rtc"}),this._rtcClientSid=this._rtcClient._sessionId,this.info("rtcClientSid: ".concat(this._rtcClientSid)),this._rtcClient.setRTMConfig({apRTM:!0,rtmFlag:3})}async leaveVosWeb(){this._isJoinedChannel&&(this.removeAllListeners(),await this.leave(!1))}async join(e){var o;const d=getParameter("AREA_CONFIG");if(d){const{areaCodes:Fe,excludedArea:Ve}=d;AgoraRTC.setArea({areaCode:Fe,excludedArea:Ve})}const I=OperationName.join,f=linkStateCodeMap[this._linkState],{currentResolve:S}=await this._context.operationControl.awaitPromise(I+this._prefixChannelName);this._privatePermitUseMessageChn||this._context.initReportEvent();let v=(o=this._rtcClient._sessionId)!==null&&o!==void 0?o:"";try{if(this._linkState==="CONNECTING"){const{code:Ve,reason:Ge}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_DUPLICATE_OPERATION);throw new RtmUnavailableError(I,[Ge],Ve)}const Fe={timestamp:0};this._isJoinedChannel||this._updateLinkState("CONNECTING","JOIN",this._linkState==="IDLE"?"JOIN":"REJOIN",this._linkState==="IDLE"?LinkStateChangeReasonDescription.JOIN:LinkStateChangeReasonDescription.REJOIN);try{var L,x,F,Y;this._updatePrivateSettings(),this._apiRateLimit.canMakeOperation("join"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(I),this._validateSessionExist(I),this._validateJoinOptions(e,I)),(L=e)!==null&&L!==void 0&&L.token&&validateToken(e.token,this._context.appId,I,Ge=>{this.warn(Ge)}),((x=e)===null||x===void 0?void 0:x.token)!==""&&((F=e)===null||F===void 0?void 0:F.token)!==void 0||(e=_objectSpread2(_objectSpread2({},e),{},{token:this._context.appId}));const Ve=(Y=getParameter("STREAM_CHANNEL_COUNT"))!==null&&Y!==void 0?Y:SUB_STREAM_CHANNEL_LIMITATION;if(this._getStreamChannelList().length>=Ve){this.log("exceed join channel limit ".concat(Ve));const{code:Ge,reason:He}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INSTANCE_EXCEED_LIMITATION);throw new RtmUnavailableError(I,[He],Ge)}}catch(Ve){var j;this.logError(Ve);const{reason:Ge}=Ve;throw this._handleJoinFailedState((j=Ve==null?void 0:Ve.errorCode)!==null&&j!==void 0?j:Ge),Ve}try{if(!this._isJoinedChannel){this._addAllRtcListeners();let Ve=!1;const Ge=AgoraRTC.__CLIENT_LIST__.map(He=>"channel(".concat(He.channelName,"), state: ").concat(He.connectionState,"}"));this.log("FusionSDK: ".concat(FUSION,". clientList of rtc: ").concat(Ge));try{var W;this.log("Join streamChannel, isReuseRtcClient: ".concat(Ve)),this._context.internalEmitter.emit("stream-channel-joined",this._channelName);const He=this._rtcClient.connectionState;if(!(FUSION&&Ve)){if(!(He==="CONNECTED"||He==="CONNECTING"||He==="RECONNECTING")){var re,ee,he;const At=(re=e)===null||re===void 0?void 0:re.token;this._context.rtmConfig.cloudProxy&&((ee=(he=this._context.rtmConfig.privateConfig)===null||he===void 0||(he=he.accessPointHosts)===null||he===void 0?void 0:he.length)!==null&&ee!==void 0?ee:0)===0&&this._rtcClient.startProxyServer(5),this._firstSnapshot4topic=!0,await timeoutPromise(this._rtcClient.join(this._context.appId,this._channelName,At||null,this._context.userId),JOIN_TIMEOUT,I,RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED,!0)}}v=(W=this._rtcClient._sessionId)!==null&&W!==void 0?W:""}catch(He){var ue,Ee;if(v=(ue=this._rtcClient._sessionId)!==null&&ue!==void 0?ue:"",this._context.internalEmitter.emit("stream-channel-leaved",this._channelName),await this._validCancelJoin(I),isRtmError(He))throw isTimeout(He)&&await this._rtcClient.leave(),He;this.logError(He);const At=(Ee=He==null?void 0:He.code)!==null&&Ee!==void 0?Ee:AgoraRTCErrorCode.UNEXPECTED_ERROR;if(At===AgoraRTCErrorCode.CAN_NOT_GET_GATEWAY_SERVER){const{code:rt,reason:ye}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmUnavailableError(I,[ye],rt)}if(At===AgoraRTCErrorCode.OPERATION_ABORTED){const{code:rt,reason:ye}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_CANCELED);throw new RtmUnavailableError(I,[ye],rt)}if(At===AgoraRTCErrorCode.UNEXPECTED_RESPONSE&&He.message.includes("DATASTREAM2_NOT_AVAILABLE")){const{code:rt,reason:ye}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_AVAILABLE);throw new RtmUnavailableError(I,[ye],rt)}const{code:Bt,reason:Tt}=convertDataChannelJoinCodeToSdkCode(At,RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED);throw new RtmUnavailableError(I,[Tt+"Join channel failure, server code is ".concat(At)],Bt)}await this._validCancelJoin(I),this._updateLinkState("CONNECTED","JOIN","JOIN_SUCCESS",LinkStateChangeReasonDescription.JOIN_SUCCESS),this._isJoinedChannel=!0}return this._privatePermitUseMessageChn&&(this.log("stream channel joined success, start sub other options"),await this._subscribe(e)),this._joinedAndSubscribed=!0,S(Fe),Fe}catch(Ve){var _e;S(!1);const{reason:Ge}=Ve;throw this._joinedAndSubscribed===!1&&this._handleJoinFailedState((_e=Ve==null?void 0:Ve.errorCode)!==null&&_e!==void 0?_e:Ge),Ve}}catch(Fe){throw S(void 0),Fe}finally{var De;const{sid:Fe,elapse:Ve,opid:Ge}=this._getSidAndElapse4Report(),He=this._privatePermitUseMessageChn?(De=this._context)===null||De===void 0?void 0:De.getNewJoinFlag(handleJoinOptionsAsDefault(e)):0;this._context.addReportEvents("StreamChnJoin",{lts:getReportLts(),userId:this._context.uid,elapse:Ve,sid:Fe,seq:Long$1.fromNumber(Ge),vid:Long$1.fromValue(this._context.vid||"0"),channelName:this._channelName,joinOptionsFlag:He,rtcSid:v,preState:f})}}async leave(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];const o=OperationName.leave,{sid:d,elapse:I,opid:f}=this._getSidAndElapse4Report();this._context.addReportEvents("StreamChnLeave",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:d,seq:Long$1.fromNumber(f),userId:this._context.uid,elapse:I,channelName:this._channelName,preState:linkStateCodeMap[this._linkState]}),this._privatePermitUseMessageChn&&e&&(this._validateRtmConnection(o),this._validateSessionExist(o));const S={timestamp:0};if(this._linkState==="FAILED")return this._updateLinkState("IDLE","LEAVE","LEAVE",LinkStateChangeReasonDescription.LEAVE),this._localLeave(),S;if(this._linkState==="CONNECTING")return await this._rtcClient.leave(),this._updateLinkState("IDLE","LEAVE","LEAVE",LinkStateChangeReasonDescription.LEAVE),this._localLeave(),S;let v;this._checkIsJoinedChannel(o);const L=new Promise((F,Y)=>{v=F});this.log("Leave streamChannel, isReuseRtcClient: ".concat(this._isReuseRtcClient));const x=[];try{const F=this._isReuseRtcClient&&FUSION,Y=(await Promise.allSettled([F?this._fusionSdkLeave():this._rtcClient.leave(),...x.map(j=>this._rtcClient.unpublish(j)),...this._isReuseRtcClient&&FUSION&&this._privatePermitUseMessageChn?[this._unsubLockAMeta(this._prefixChannelName),this._handleLeaveEffects(),()=>{this._firstSnapshot4topic=!0}]:[]])).find(j=>j.status==="rejected");if(Y)throw Y.reason;this._context.rtmConfig.cloudProxy&&!F&&this._rtcClient.stopProxyServer(),v(S)}catch(F){if(this.logError(F),isRtmError(F))throw F;const Y=(F==null?void 0:F.code)||AgoraRTCErrorCode.UNEXPECTED_ERROR,{code:j,reason:W}=convertDataChannelJoinCodeToSdkCode(Y,RTMErrorCode.RTM_ERROR_CHANNEL_LEAVE_FAILED);throw new RtmUnavailableError(o,[W+"Leave channel failure, server code is ".concat(Y)],j)}finally{this._context.deleteChannelOptionsCache(this._prefixChannelName),this._updateLinkState("IDLE","LEAVE","LEAVE",LinkStateChangeReasonDescription.LEAVE),this._privatePermitUseMessageChn||this._context.forceReportEvents()}return L}async renewStreamChannelToken(e){const o=OperationName.renewToken;this._checkIsJoinedChannel(o);try{await this._rtcClient.renewToken(e)}catch(I){var d;this.logError(I);const f=(d=I==null?void 0:I.code)!==null&&d!==void 0?d:AgoraRTCErrorCode.UNEXPECTED_ERROR,{code:S,reason:v}=convertDataChannelJoinCodeToSdkCode(f,RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmUnavailableError(o,[v+"RenewToken of streamChannel failure, server code is ".concat(f)],S)}}async joinTopic(e,o){const d=OperationName.joinTopic,I={timestamp:0,topicName:e};let f=0;const S=!1,v=(()=>{const Y=Array.from(this._localTopics.values()).filter(j=>j!==void 0).filter(j=>(j==null?void 0:j.getDataChannel())!==void 0).map(j=>{var W;return j==null||(W=j.getDataChannel())===null||W===void 0?void 0:W.getConfig().id});for(let j=0;jW===j)===-1)return j;return-1})();try{var L;if(this._apiRateLimit.canMakeOperation("joinTopic"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(d),this._validateSessionExist(d)),validateTopicName(e,d),this._checkIsJoinedChannel(d),this._localTopics.has(e))return this.log("topic(%s) already exists",e),I;if(this._localTopics.size>=JOIN_TOPIC_LIMITATION){this.log("exceed create topic limit");const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_EXCEED_TOPIC_LIMITATION);throw new RtmUnavailableError(d,[re],W)}o={meta:null};const Y=TopicMetadata.encode({metadata:(L=o)===null||L===void 0?void 0:L.meta,topic:e}).finish();this._localTopics.set(e,void 0);const j=await fromPromise(this._rtcClient.publish({id:v,ordered:S,metadata:String.fromCharCode(...Y)}),W=>W);if(j.isErr()){var x;this._localTopics.delete(e);const W=j==null||(x=j.error)===null||x===void 0?void 0:x.code;throw new RtmUnavailableError(d,["JoinTopic failure, code of rtcClient.publish api is ".concat(W)],RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_TOPIC_FAILED)}{const W=j.value,re=new LocalTopic(this._context,this.logger,e,W);W==null||W.on("open",()=>{this.log("".concat(this._channelName,"(").concat(e,") local dc opened."))}),W==null||W.on("close",()=>{this.warn("".concat(this._channelName,"(").concat(e,") local dc closed."))}),W==null||W.on("error",ee=>{this.logError("error occurs in ".concat(this._channelName,"(").concat(e,") local dc. error is %o"),ee)}),this._localTopics.set(e,re)}}catch(Y){var F;throw Y instanceof RTMBaseError&&(f=(F=Y.errorCode)!==null&&F!==void 0?F:0),Y}finally{const{sid:Y,elapse:j,opid:W}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicJoin",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:Y,userId:this._context.uid,elapse:j,channelName:this._channelName,topicName:e,qos:Number(S),priority:0,syncWithMedia:0,streamId:v,errorCode:Long$1.fromNumber(f),seq:Long$1.fromNumber(W)})}return I}async publishTopicMessage(e,o,d){var I;const f=OperationName.publishTopicMessage;this._apiRateLimit.canMakeOperation("publishTopicMsg"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(f),this._validateSessionExist(f));const S={timestamp:0,topicName:e};if(validateTopicName(e,f),this._checkIsJoinedChannel(f),d!=null&&d.customType&&validateCustomType(d==null?void 0:d.customType,f),typeof o=="string"&&!o){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);throw new RtmInvalidArgumentError(f,[x],L)}if((typeof o=="string"?new TextEncoder().encode(o).buffer:o.buffer).byteLength+new Blob([(I=d==null?void 0:d.customType)!==null&&I!==void 0?I:""]).size>TOPIC_MESSAGE_SIZE){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_MESSAGE_LENGTH_EXCEED_LIMITATION);throw new RtmInvalidArgumentError(f,[x],L)}if(this._rtcClient.connectionState!=="CONNECTED"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_JOINED);throw new RtmUnavailableError(f,[x],L)}const v=this._localTopics.get(e);if(!v){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_JOINED);throw new RtmUnavailableError(f,[x],L)}return await(v==null?void 0:v.publishTopicMessage(f,o,d)),S}async leaveTopic(e){var o,d;const I=OperationName.leaveTopic,f=(o=this._localTopics.get(e))===null||o===void 0?void 0:o.getDataChannel(),S=(d=f==null?void 0:f.id)!==null&&d!==void 0?d:0,{sid:v,elapse:L,opid:x}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicLeave",{sid:v,elapse:L,lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),userId:this._context.uid,channelName:this._channelName,topicName:e,streamId:S,seq:Long$1.fromNumber(x)}),this._privatePermitUseMessageChn&&(this._validateRtmConnection(I),this._validateSessionExist(I));const F={timestamp:0,topicName:e};if(validateTopicName(e,I),this._checkIsJoinedChannel(I),!this._localTopics.has(e)){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_JOINED);throw new RtmUnavailableError(I,[W],j)}try{await this._rtcClient.unpublish(f),this._localTopics.delete(e)}catch(j){var Y;this.logError(j);const W=(Y=j==null?void 0:j.code)!==null&&Y!==void 0?Y:AgoraRTCErrorCode.UNEXPECTED_ERROR,{code:re,reason:ee}=convertDataChannelJoinCodeToSdkCode(W,RTMErrorCode.RTM_ERROR_CHANNEL_IN_ERROR_STATE);throw new RtmUnavailableError(I,[ee+"LeaveTopic failure, server code is ".concat(W),re])}return F}async subscribeTopic(e,o){var d,I,f;const S=OperationName.subscribeTopic,{currentResolve:v,currentReject:L}=await this._context.operationControl.awaitPromise(S+STREAM_CHANNEL_PREFIX+e),x=(d=o==null||(I=o.users)===null||I===void 0?void 0:I.filter(Ve=>!isValidId(Ve)))!==null&&d!==void 0?d:[];o!=null&&o.users&&(o.users=o==null||(f=o.users)===null||f===void 0?void 0:f.filter(Ve=>isValidId(Ve))),o!=null&&o.users&&(o.users=[...new Set(o.users)]);let F=!1,Y=!1,j=0;const W={failedUsers:x,failedDetails:x.map(Ve=>({user:Ve,errorCode:SubscribeTopicErrorCode.INVALID_PARAMS,timestamp:0,topicName:e})),succeedUsers:[],timestamp:0,topicName:e},re=new Set;try{var ee,he,ue,Ee,_e;if(this._apiRateLimit.canMakeOperation("subscribeTopic"),this._privatePermitUseMessageChn&&(this._validateRtmConnection(S),this._validateSessionExist(S)),validateTopicName(e,S),this._checkIsJoinedChannel(S),Array.from(this._remoteTopics.values()).filter(Bt=>Bt.getAllSubscribedUserCount()>0).length>SUB_TOPIC_LIMITATION){this.log("subscribed topic(%s) failed, exceed subscribe topic limit ".concat(SUB_TOPIC_LIMITATION),e);const{code:Bt,reason:Tt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_EXCEED_TOPIC_LIMITATION);throw new RtmUnavailableError(S,[Tt],Bt)}const Ge=this._remoteTopics.get(e);if(((ee=Ge==null?void 0:Ge.getAllSubscribedUserCount())!==null&&ee!==void 0?ee:0)>=SUB_TOPIC_USER_LIMITATION){this.log("subscribe topic(".concat(e,") exceed user limit: ").concat(SUB_TOPIC_USER_LIMITATION));const{code:Bt,reason:Tt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_EXCEED_TOPIC_USER_LIMITATION);throw new RtmUnavailableError(S,[Tt],Bt)}if(!(this._remoteTopics.has(e)||o!=null&&o.users&&o.users.length!==0)){if(this._localTopics.has(e))return v(void 0),W;const{code:Bt,reason:Tt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_EXIST);throw new RtmUnavailableError(S,[Tt],Bt)}if(!this._remoteTopics.has(e)&&((o==null||(he=o.users)===null||he===void 0?void 0:he.length)||0)>0){this.log("createTopicHere");const Bt=new RemoteTopic(this._context,this.logger,e,this._channelName,this._emitTopicMessage),Tt=SUB_TOPIC_USER_LIMITATION-(Bt==null?void 0:Bt.getAllSubscribedUserCount()),rt=shuffle$1((o==null?void 0:o.users)||[]).filter((ye,lt)=>(lt+1>Tt&&(F=!0,W.failedDetails.push({user:ye,errorCode:SubscribeTopicErrorCode.SUB_USER_EXCEED_LIMITATION,timestamp:0,topicName:e}),W.failedUsers.push(ye)),lt+1<=Tt));return this.log("shuffle pre subscribe topic(%s), users: %o",e,rt.map(ye=>replaceRangeWithAsterisk(ye))),rt.forEach(ye=>{re.add(ye),Bt.addUserWithoutDc(ye),this._remoteTopics.set(e,Bt)}),this.log("".concat(e," not existent in channel ").concat(this._channelName,".")),W.succeedUsers=[...re],this.log("subscribed ".concat(this._channelName,"(").concat(e,"), resp is %o"),W),v(void 0),W}let He=[];var De,Fe;o!=null&&o.users&&o.users.length!==0?He=(o==null||(De=o.users)===null||De===void 0?void 0:De.filter(Bt=>{const Tt=Ge==null?void 0:Ge.getPreSubscribedUsers().includes(Bt),rt=Ge==null?void 0:Ge.getSubscribedUsers().includes(Bt),ye=!(Ge!=null&&Ge.getUsers().has(Bt));return Tt||rt?this.log("subscribe ".concat(replaceRangeWithAsterisk(Bt)," in topic(").concat(e,") already.")):ye&&(re.add(Bt),Ge==null||Ge.addUserWithoutDc(Bt),this.log("pre subscribe user(".concat(replaceRangeWithAsterisk(Bt),")"))),this.log("can't sub the user ".concat(Bt,", isPreSubscribed: ").concat(Tt,", isSubscribed: ").concat(rt,", isUserNotPublishTopic: ").concat(ye)),!Tt&&!rt&&!ye}))||[]:((Fe=Ge==null?void 0:Ge.getUsers())!==null&&Fe!==void 0?Fe:new Map).forEach((Bt,Tt)=>{Bt.subscribedState==="UNSUBSCRIBE"&&He.push(Tt)}),He.length>SUB_TOPIC_USER_LIMITATION-((ue=(Ee=this._remoteTopics.get(e))===null||Ee===void 0?void 0:Ee.getAllSubscribedUserCount())!==null&&ue!==void 0?ue:0)&&(F=!0);const At=await this._patchSubscribeTopic(e,He);return this.log("".concat(S," result: preSubUsers(").concat([...re],"), subUsers(").concat(At.succeedUsers,")")),W.succeedUsers=[...re,...At.succeedUsers],W.failedUsers=[...W.failedUsers,...At.failedUsers],W.failedDetails=[...W.failedDetails,...At.failedDetails],W.failedUsers.length===(o==null||(_e=o.users)===null||_e===void 0?void 0:_e.length)||W.failedUsers.length,v(void 0),W}catch(Ve){throw v(void 0),Ve}finally{Y=re.size>0,j=W.succeedUsers.length,this.log("subscribe topic(".concat(e,"), randomSubscribe: ").concat(F,", containPreSubscribeUsers: ").concat(Y,", preUsersCount: ").concat(re.size,", succeedUsersCount: ").concat(j,", failedUsersCount: ").concat(W.failedUsers.length));const{sid:Ve,elapse:Ge,opid:He}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicSubscribe",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:Ve,userId:this._context.uid,elapse:Ge,channelName:this._channelName,topicName:e,seq:Long$1.fromNumber(He),randomSubscribe:Number(F),preSubscribe:Number(Y),userCount:j})}}async unsubscribeTopic(e,o){var d,I,f;const S=OperationName.unsubscribeTopic,{sid:v,elapse:L,opid:x}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicUnsubscribe",{lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),sid:v,userId:this._context.uid,elapse:L,channelName:this._channelName,topicName:e,seq:Long$1.fromNumber(x)}),this._privatePermitUseMessageChn&&(this._validateRtmConnection(S),this._validateSessionExist(S)),validateTopicName(e,S),this._checkIsJoinedChannel(S);const F=this._remoteTopics.get(e);if(F==null||!F.getAllSubscribedUserCount()){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_SUBSCRIBED);throw new RtmUnavailableError(S,[ee],re)}const Y=(d=o==null||(I=o.users)===null||I===void 0?void 0:I.filter(re=>!isValidId(re)))!==null&&d!==void 0?d:[],j={failedUsers:Y,failedDetails:Y.map(re=>({user:re,errorCode:SubscribeTopicErrorCode.INVALID_PARAMS,timestamp:0,topicName:e})),timestamp:0,succeedUsers:[],topicName:e};let W=[];o!=null&&o.users&&o.users.length!==0?W=o.users.filter(re=>isValidId(re)).filter(re=>{const ee=F.getPreSubscribedUsers().includes(re),he=F.getSubscribedUsers().includes(re);return ee?(this._deleteRemoteDc(e,re),j.succeedUsers.push(re)):he||(j.failedDetails.push({user:re,errorCode:SubscribeTopicErrorCode.NOT_SUBSCRIBED_USER,timestamp:0,topicName:e}),j.failedUsers.push(re)),he}):(F.getSubscribedUsers().forEach(re=>{W.push(re)}),F.getPreSubscribedUsers().forEach(re=>{this._deleteRemoteDc(e,re),j.succeedUsers.push(re)}));try{(await Promise.all(W.map(ee=>{const he=F==null?void 0:F.getUsers().get(ee);if(!he)throw this.warn("unsubscribe topic(".concat(e,")-user(").concat(replaceRangeWithAsterisk(ee),") failed, user not in remoteTopic users.")),new Error;const{id:ue,user:Ee}=he;return fromPromise(this._rtcClient.unsubscribe(Ee||this._userIdToRTCRemoteUser(ee),"datachannel",ue),_e=>_e)}))).map((ee,he)=>({userId:W[he],result:ee})).forEach(ee=>{let{userId:he,result:ue}=ee;if(ue.isErr()){var Ee,_e,De;this.logError(ue.error);const Fe=(Ee=ue==null||(_e=ue.error)===null||_e===void 0?void 0:_e.code)!==null&&Ee!==void 0?Ee:AgoraRTCErrorCode.UNEXPECTED_ERROR;j.failedDetails.push({user:he,reason:"Unsubscribe topic failure, web_rtc code is ".concat(Fe,", the reason of web_rtc is that ").concat(ue==null||(De=ue.error)===null||De===void 0?void 0:De.toString()),timestamp:0,topicName:e}),j.failedUsers.push(he);const{code:Ve,reason:Ge}=convertDataChannelJoinCodeToSdkCode(Fe,RTMErrorCode.RTM_ERROR_CHANNEL_IN_ERROR_STATE);throw new RtmUnavailableError(S,[Ge+"unsubscribeTopic failure, server code is ".concat(Fe)],Ve)}j.succeedUsers.push(he),F.handleUnsubscription(he)})}catch(re){throw re}return j.failedUsers.length===(o==null||(f=o.users)===null||f===void 0?void 0:f.length)||j.failedUsers.length,this.log("".concat(S," success. sdk resp is %o"),j),j.succeedUsers.forEach(re=>{const ee=this._remoteTopics.get(e);ee==null||ee.handleUnsubscription(re)}),{timestamp:0}}getSubscribedUserList(e){const o=OperationName.getSubscribedUserList;this._privatePermitUseMessageChn&&(this._validateRtmConnection(o),this._validateSessionExist(o)),validateTopicName(e,o),this._checkIsJoinedChannel(o);const d=this._remoteTopics.get(e);if(d==null||!d.getAllSubscribedUserCount()){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_TOPIC_NOT_SUBSCRIBED);throw new RtmUnavailableError(o,[S],f)}const I={subscribed:[],timestamp:0,topicName:e};return I.subscribed=[...d.getSubscribedUsers(),...d.getPreSubscribedUsers()],I}setStreamChannelParameter(e,o){AgoraRTC.setParameter(e,o)}async _handleLeaveEffects(){this._clearLocalCache4topic(),this._isJoinedChannel=!1,this._joinedAndSubscribed=!1,this._context.internalEmitter.emit("stream-channel-leaved",this._channelName),this._removeAllRtcListeners()}_handleUpdatedTopicsInOffline(e){const o=new Map;this._remoteTopics.forEach((I,f)=>{o.set(f,I)});const d=new Map;e.forEach(I=>{var f;(f=I.dataChannels)===null||f===void 0||f.forEach(S=>{if(S.getConfig()){var v;const{metadata:L}=S.getConfig(),x=this._decodeMetadata(L),{topic:F}=x,Y=(v=d.get(F))!==null&&v!==void 0?v:[];Y.push({user:I,dc:S.getConfig()}),d.set(F,Y)}})}),d.forEach((I,f)=>{var S,v;const L=(S=(v=o.get(f))===null||v===void 0?void 0:v.getUsers())!==null&&S!==void 0?S:new Map,x=I.filter(F=>{var Y;let{user:j}=F;return!L.has(j.uid.toString())&&((Y=L.get(j.uid.toString()))===null||Y===void 0?void 0:Y.subscribedState)!=="PRE_SUBSCRIBE"});x.length>0&&this.log("joined topic: %s, users: %o",f,Array.from(x.values()).map(F=>{var Y;return(Y=F.user)===null||Y===void 0?void 0:Y.uid})),x.forEach(F=>{let{user:Y,dc:j}=F;this._handleUserPublished(Y,"datachannel",j)})}),o.forEach((I,f)=>{var S;const v=I.getUsers(),L=(S=d.get(f))!==null&&S!==void 0?S:[],x=Array.from(v.values()).filter(F=>F.subscribedState!=="PRE_SUBSCRIBE"&&!L.find(Y=>{var j;let{user:W}=Y;return W.uid===((j=F.user)===null||j===void 0?void 0:j.uid)}));x.length>0&&this.log("left topic: %s, users: %o",f,Array.from(x.values()).map(F=>{var Y;return(Y=F.user)===null||Y===void 0?void 0:Y.uid})),x.forEach(F=>{this._emitTopicLeft(f,F.user,F.meta)})})}_removeAllRtcListeners(){this._rtcClient.off("connection-state-change",this._handleConnectionStateChange),this._rtcClient.off("published-user-list",this._handleUserPublishedList),this._rtcClient.off("user-published",this._handleUserPublished),this._rtcClient.off("user-unpublished",this._handleUserUnPublished),this._rtcClient.off("token-privilege-will-expire",this._handleTokenPrivilegeWillExpire),this._rtcClient.off("user-joined",this._handleUserJoined),this._rtcClient.off("user-left",this._handlerUserLeft)}_addAllRtcListeners(){this._rtcClient.on("connection-state-change",this._handleConnectionStateChange),this._rtcClient.on("published-user-list",this._handleUserPublishedList),this._rtcClient.on("user-published",this._handleUserPublished),this._rtcClient.on("user-unpublished",this._handleUserUnPublished),this._rtcClient.on("token-privilege-will-expire",this._handleTokenPrivilegeWillExpire),this._rtcClient.on("user-joined",this._handleUserJoined),this._rtcClient.on("user-left",this._handlerUserLeft)}async _handleReceivedDcs(e,o,d){const I=new Map;for(let S=0;S{I.topicInfos.push({publishers:S,topicName:v,totalPublisher:S.length})}),I.topicInfos.length===0&&this.log("length of topicInfos is 0 in emitTopic."),this._emitRtmEvent("topic",I);const f={};d.forEach((S,v)=>{f[v]={publishers:S,publisherCount:S.length}}),this._reportTopicUpdate(o,f)}_getInitTopicEventData(e,o,d,I){return{eventType:e,channelName:o,publisher:d,topicInfos:[],totalTopics:I,timestamp:getUTCTimeBaseREG(this._context.offsetTime)}}_userIdToRTCRemoteUser(e){return{uid:typeof this._context.userId=="number"?parseInt$2(e):e,hasAudio:!1,hasVideo:!1,dataChannels:[]}}_addOrUpdateRemoteDc(e,o,d,I,f,S){if(!this._remoteTopics.has(e)){const L=new RemoteTopic(this._context,this.logger,e,this._channelName,this._emitTopicMessage);this._remoteTopics.set(e,L)}const v=this._remoteTopics.get(e);v.getUsers().has(o)?v.updateUserDatachannelInfo(o,{meta:I,id:f,user:d}):v.addUserWithDc(o,{subscribedState:"UNSUBSCRIBE",meta:I,id:f,datachannel:S,user:d})}_deleteRemoteDc(e,o){const d=this._remoteTopics.get(e);var I;d==null||d.removeUser(o),(d==null?void 0:d.getUsers().size)===0&&(this._remoteTopics.delete(e),(I=this._remoteTopics.get(e))===null||I===void 0||I.release())}_decodeMetadata(e){return TopicMetadata.decode(new TextEncoder().encode(e))}async _handlePreSubscribeTopic(e,o){const d=this._remoteTopics.get(e),I=d==null?void 0:d.getUsers().get(o);if(!I)return void this.log("handlePreSubscribeTopic failed. remoteDcInfo is undefined. topicName: ".concat(e,", userId: ").concat(replaceRangeWithAsterisk(o)));const{id:f,user:S}=I,v=await fromPromise(this._rtcClient.subscribe(S||this._userIdToRTCRemoteUser(o),"datachannel",f),x=>x);if(v.isErr()){var L;const x=v==null||(L=v.error)===null||L===void 0?void 0:L.code;this.log("subscribe predictive user(".concat(replaceRangeWithAsterisk(o),") in topic(").concat(e,") failed, code is ").concat(x))}if(v.isOk()){const x=v.value;this.log("pre-subtopic ".concat(this._channelName,"(").concat(e,") succeed.")),d==null||d.handleSubscription(x,o)}}async _patchSubscribeTopic(e,o){var d;const I={succeedUsers:[],failedUsers:[],failedDetails:[],timestamp:0,topicName:e},f=this._remoteTopics.get(e),S=SUB_TOPIC_USER_LIMITATION-((d=f==null?void 0:f.getAllSubscribedUserCount())!==null&&d!==void 0?d:0),v=shuffle$1(o).filter((x,F)=>(F+1>S&&(I.failedDetails.push({user:x,errorCode:SubscribeTopicErrorCode.SUB_USER_EXCEED_LIMITATION,timestamp:0,topicName:e}),I.failedUsers.push(x)),F+1<=S));return this.log("subscribe topic(%s) users: %o",e,v.map(x=>replaceRangeWithAsterisk(x))),(await Promise.all(v.map(x=>{const F=f==null?void 0:f.getUsers().get(x);if(!F)throw this.warn("subscribe topic(".concat(e,")-user(").concat(replaceRangeWithAsterisk(x),") failed, user not in remoteTopic users.")),new Error;const{id:Y,user:j}=F;return fromPromise(this._rtcClient.subscribe(j||this._userIdToRTCRemoteUser(x),"datachannel",Y),W=>W)}))).map((x,F)=>({userId:v[F],result:x})).forEach(x=>{if(x.result.isErr()){var F,Y;const j=(F=x.result.error)===null||F===void 0?void 0:F.code,W=SubscribeTopicErrorCode.UNKNOWN_ERROR;I.failedDetails.push({user:x.userId,errorCode:W,reason:"Subscribe topic failure, web_rtc code is ".concat(j,", the reason of web_rtc is that ").concat(x==null||(Y=x.result)===null||Y===void 0||(Y=Y.error)===null||Y===void 0?void 0:Y.toString()),timestamp:0,topicName:e}),I.failedUsers.push(x.userId),this.warn(x.result,"WEB_RTCerror"),this.log("subscribe user(".concat(x.userId,") in topic(").concat(e,") failed, code is ").concat(j))}else{I.succeedUsers.push(x.userId);const j=x.result.value;this.log("subtopic ".concat(this._channelName,"(").concat(e,") succeed.")),f==null||f.handleSubscription(j,x.userId)}}),I}_clearLocalCache4topic(){this._remoteTopics.forEach(e=>{e.release()}),this._localTopics=new Map,this._remoteTopics=new Map}_checkIsJoinedChannel(e){if(!this._isJoinedChannel||this._linkState!=="CONNECTED"){this.warn("".concat(this._channelName," have not joined stream channel when ").concat(e));const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_NOT_JOINED);throw new RtmUnavailableError(e,[d],o)}}_updatePrivateSettings(){const e=this._context.rtmConfig.privateConfig;if(e!=null&&e.accessPointHosts){var o;const d=e.logUploadHosts,I=e.eventUploadHosts,f=443,S=getPrivateSettingsPortAndDomains(e.accessPointHosts);this._rtcClient.setLocalAccessPointsV2({accessPoints:{serverList:S.hostname,domain:(e.domainMode===2?"edge.":"")+sample$1((o=e.originDomains)!==null&&o!==void 0?o:["agora.io"]),port:S.port},log:d?_objectSpread2({},getPrivateSettingsPortAndDomains(d,f)):void 0,report:I?_objectSpread2({},getPrivateSettingsPortAndDomains(I,f)):void 0})}else e&&this.warn("use private settings but apHosts is set to empty")}_updateLinkState(e,o,d){let I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"";if(this._linkState===e)return;this._privatePermitUseMessageChn&&this._context.sendReport("LinkStateChange",{elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),reason:LinkStateChangeReason4Report[d],sid:getSid(this._context.instanceId||Long$1.fromNumber(0)),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),userid:this._context.uid,currentState:linkStateCodeMap[e],previousState:linkStateCodeMap[this._linkState],operation:linkOperationCodeMap[o],serviceType:1,streamChannelName:this._channelName}),e!=="FAILED"&&e!=="IDLE"||(this._firstSnapshot4topic=!0);const f={currentState:e,previousState:this._linkState,serviceType:"STREAM",operation:o,reason:I,reasonCode:d,affectedChannels:[this._channelName],unrestoredChannels:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime),isResumed:e==="CONNECTED"&&this._isJoinedChannel};this._linkState=e,this._emitRtmEvent("linkState",f)}async _subscribe(e){const o=OperationName.join,d=handleJoinOptionsAsDefault(e);this._context.setLastCustomSubOrJoinOptions(this._prefixChannelName,d);const I=getRandomInt(0,Number.MAX_SAFE_INTEGER),{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED),v=this._context.getChannelLastRealSubOrJoinOptions(this._prefixChannelName),L=this._context.getSubOrJoinActions(this._prefixChannelName,_objectSpread2(_objectSpread2({},d),{},{withMessage:!1}));try{await this._updateOptionsReJoinOrSub(this._prefixChannelName,L)}catch(F){throw new RtmUnknownError(o,[S+F],f)}finally{var x;(x=this._context)===null||x===void 0||x.reportChnJoin(this._prefixChannelName,v,d,I)}}_localLeave(){this._isJoinedChannel=!1,this._joinedAndSubscribed=!1,this._removeAllRtcListeners(),this._clearLocalCache4topic(),this._context.internalEmitter.emit("stream-channel-leaved",this._channelName)}async _fusionSdkJoin(){const e={channelName:this._channelName,state:"CONNECTING",reason:"OK",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",e),await this._rtcClient.setRTMConfig({apRTM:!0,rtmFlag:1}),this._isJoinedChannel=!0;const o={channelName:this._channelName,state:"CONNECTED",reason:"OK",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",o),this._handleUserPublishedList(this._rtcClient.remoteUsers)}async _fusionSdkLeave(){const e={channelName:this._channelName,state:"DISCONNECTING",reason:"LEAVE",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",e),await this._rtcClient.setRTMConfig({apRTM:!0,rtmFlag:0}),this._isJoinedChannel=!1;const o={channelName:this._channelName,state:"DISCONNECTED",reason:"LEAVE",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitRtmEvent("status",o)}_validateSessionExist(e){if(this._getRTMSession()===void 0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[d],o)}}_handleJoinFailedState(e){if(typeof e=="string")return void this._updateLinkState("FAILED","JOIN","JOIN_FAILED",e);if(e===RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_CANCELED)return;let o=LinkStateChangeReasonDescription.JOIN_FAILED,d="JOIN_FAILED";switch(e){case RTMErrorCode.RTM_ERROR_CHANNEL_INSTANCE_EXCEED_LIMITATION:o=LinkStateChangeReasonDescription.CHANNEL_INSTANCE_EXCEED_LIMITATION,d="CHANNEL_INSTANCE_EXCEED_LIMITATION";break;case RTMErrorCode.RTM_ERROR_OPERATION_RATE_EXCEED_LIMITATION:o=LinkStateChangeReasonDescription.OPERATION_RATE_EXCEED_LIMITATION,d="OPERATION_RATE_EXCEED_LIMITATION";break;case RTMErrorCode.RTM_ERROR_INVALID_TOKEN:o=LinkStateChangeReasonDescription.INVALID_TOKEN,d="INVALID_TOKEN";break;case RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID:o=LinkStateChangeReasonDescription.INCONSISTENT_APP_ID,d="INCONSISTENT_APP_ID";break;case RTMErrorCode.RTM_ERROR_DUPLICATE_OPERATION:case RTMErrorCode.RTM_ERROR_NOT_CONNECTED:case RTMErrorCode.RTM_ERROR_NOT_CONNECTED:o=LinkStateChangeReasonDescription.CHANNEL_IN_ERROR_STATE,d="CHANNEL_IN_ERROR_STATE";break;case RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE:o=LinkStateChangeReasonDescription.LOCK_NOT_AVAILABLE,d="LOCK_NOT_AVAILABLE";break;case RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE:o=LinkStateChangeReasonDescription.STORAGE_NOT_AVAILABLE,d="STORAGE_NOT_AVAILABLE";break;case RTMErrorCode.RTM_ERROR_CHANNEL_NOT_AVAILABLE:o=LinkStateChangeReasonDescription.STREAM_CHANNEL_NOT_AVAILABLE,d="STREAM_CHANNEL_NOT_AVAILABLE"}this._updateLinkState("FAILED","JOIN",d,o)}async _validCancelJoin(e){if(this._linkState==="IDLE"){this._isReuseRtcClient,await this._rtcClient.leave(),this._context.rtmConfig.cloudProxy&&this._rtcClient.stopProxyServer();const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_CANCELED);throw new RtmUnavailableError(e,[d],o)}}_validateJoinOptions(e,o){const d=getParameter("STORAGE_CHANNEL_SUB_ENABLED"),I=(d!==void 0?String(d):this._context.consoleConfig["storage.channel_subscribe_enabled"])==="true";if(e!=null&&e.withMetadata&&!I){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}const f=getParameter("LOCK_ENABLED"),S=(f!==void 0?String(f):this._context.consoleConfig["lock.enabled"])==="true";if(e!=null&&e.withLock&&!S){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}}_getSidAndElapse4Report(){return{sid:this._privatePermitUseMessageChn?getSid(this._context.instanceId||Long$1.fromNumber(0)):"",elapse:this._privatePermitUseMessageChn?getElapse(this._context.startTime):Long$1.fromNumber(0),opid:getRandomInt(0,Number.MAX_SAFE_INTEGER)}}_reportTopicUpdate(e,o){const d=JSON.stringify(o),{sid:I,elapse:f}=this._getSidAndElapse4Report();this._context.addReportEvents("TopicUpdateEvent",{sid:I,elapse:f,lts:getReportLts(),vid:Long$1.fromValue(this._context.vid||"0"),userId:this._context.uid,channelName:this._channelName,topicEventType:topicEventTypeMap[e],topicInfo:d})}}var _class$5;let StreamChannel=(_class$5=class extends EventBase{get _streamChannelImpl(){return this.streamChannelImpl}constructor(n,e,o,d,I,f,S,v,L,x){super(e,"StreamChannel",!0,!0),_defineProperty$1(this,"streamChannelImpl",void 0),this.streamChannelImpl=new StreamChannelImpl(n,e,o,d,I,f,S,v,L,x)}async join(n){return this.streamChannelImpl.join(n)}async renewStreamChannelToken(n){return this.streamChannelImpl.renewStreamChannelToken(n)}async leave(){return this.streamChannelImpl.leave()}async joinTopic(n,e){return this.streamChannelImpl.joinTopic(n,e)}async publishTopicMessage(n,e,o){return this.streamChannelImpl.publishTopicMessage(n,e,o)}async leaveTopic(n){return this.streamChannelImpl.leaveTopic(n)}async subscribeTopic(n,e){return this.streamChannelImpl.subscribeTopic(n,e)}async unsubscribeTopic(n,e){return this.streamChannelImpl.unsubscribeTopic(n,e)}getSubscribedUserList(n){return this.streamChannelImpl.getSubscribedUserList(n)}},_applyDecoratedDescriptor(_class$5.prototype,"join",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"join"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"leave",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"leave"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"joinTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"joinTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"publishTopicMessage",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"publishTopicMessage"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"leaveTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"leaveTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"subscribeTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"subscribeTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"unsubscribeTopic",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"unsubscribeTopic"),_class$5.prototype),_applyDecoratedDescriptor(_class$5.prototype,"getSubscribedUserList",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$5.prototype,"getSubscribedUserList"),_class$5.prototype),_class$5);class PresenceImpl extends EventBase{constructor(e,o,d,I,f,S){super(e,"PresenceImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_getRTMSession",void 0),_defineProperty$1(this,"_getRtmLinkState",void 0),_defineProperty$1(this,"_requestChannelMemberList",void 0),_defineProperty$1(this,"_getBackoffEventsMap",void 0),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),this._context=o,this._getRTMSession=genGetRTMSession(d),this._getRtmLinkState=I,this._getBackoffEventsMap=f,this._requestChannelMemberList=S}async _whoNowUseReg(e){const o=await this._requestChannelMemberList(e),d={totalOccupancy:o==null?void 0:o.totalSize,occupants:[],nextPage:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};return o.memberInfos.forEach(I=>{var f;d.occupants.push({userId:(f=I.account)!==null&&f!==void 0?f:"",states:{},statesCount:0})}),d}async _requestWhoNow(e,o,d){const I=this._getRTMSession().getColl(e,!0,"requestWhoNow"),f=[];if(this.log("".concat(OperationName.whoNow," by crdt")),I){var S;((S=I==null?void 0:I.Docs())!==null&&S!==void 0?S:new Map).forEach((v,L)=>{const x=v.Get(),F=x[K_PRESENCE_EXPIRED];delete x[K_PRESENCE_EXPIRED],F||f.push({userId:L,states:d?x:{},statesCount:d?Object.keys(x).length:0})})}return{occupants:o?f:[],totalOccupancy:f.length,nextPage:"",timestamp:0}}async _requestRpcGetState(e,o){const d=this._getRTMSession(),I=Date.now(),f=this._context.incGetSeq();let S=0;try{d.validateSyncConnected(OperationName.presenceGetState);const v={start:o,end:"",keysOnly:!1,countOnly:!1,limit:1},[L]=await timeoutPromise(d.requestRpc(e,v),COMMON_REQUEST_TIMEOUT,OperationName.presenceGetState,RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT);let x={};return L.forEach((F,Y)=>{if(Y===o){try{x=JSON.parse(F)}catch(j){this.logError("parse doc error: %o",j)}delete x[K_PRESENCE_EXPIRED]}}),x}catch(v){const{serverCode:L,errorCode:x}=v;throw S=L??x,v}finally{this._reportRpcEvent("getState",{requestts:I,reqSeq:f,errCode:S,target:o})}}async _requestRPCWhoNow(e,o,d,I){const f=Date.now(),S=this._context.incGetSeq();let v=0;try{var L;const x=d&&!I,F=!d&&!I,Y=Number(getParameter("PRESENCE_THRESHOLD")||((L=this._context.consoleConfig)===null||L===void 0?void 0:L["presence.occupancy"]))||0,j=F;F&&o&&this.warn("countOnly and page is not compatible. page of param will be ignored.");const W={start:j?"":atob(o),end:"",keysOnly:x,countOnly:F,limit:j?0:Y,startIncluded:!o,endIncluded:!0,ignoreExpired:!0},[re,ee,he]=await timeoutPromise(this._getRTMSession().requestRpc(e,W),COMMON_REQUEST_TIMEOUT,OperationName.whoNow,RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT),ue=[],Ee={timestamp:0,occupants:ue,nextPage:"",totalOccupancy:ee};if(F)return Ee;{let _e="";if(x)re.forEach(De=>{ue.push({userId:De,states:{},statesCount:0}),ue.length===re.length&&he&&(_e=De)});else{let De=0;re.forEach((Fe,Ve)=>{let Ge={};try{Ge=JSON.parse(Fe)}catch(He){this.logError("parse doc error: %o",He)}Ge[K_PRESENCE_EXPIRED]?De++:(delete Ge[K_PRESENCE_EXPIRED],ue.push({userId:Ve,states:I?Ge:{},statesCount:Object.keys(Ge).length}),ue.length===re.size&&he&&(_e=Ve))}),Ee.totalOccupancy-=De}if(he){const De=btoa(_e);Ee.nextPage=De}return Ee}}catch(x){const{serverCode:F,errorCode:Y}=x;throw v=F??Y,x}finally{this._reportRpcEvent("whoNow",{requestts:f,reqSeq:S,errCode:v,target:e})}}async _requestRpcWhereNow(e){const o=this._getRTMSession(),d=Date.now(),I=this._context.incGetSeq();let f=0;try{o.validateSyncConnected(OperationName.whereNow);const S=!1,v=!1,L=getGlobalPresenceString(this._context.vid)+"/"+e,x={start:L,end:"",keysOnly:S,countOnly:v,limit:1};this.log("whereNow query options: %o",x);const[F]=await timeoutPromise(o.requestRpc(K_GLOBAL_PRESENCE_COLLECTION,x),COMMON_REQUEST_TIMEOUT,OperationName.whereNow,RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT,!0),Y={channels:[],totalChannel:0,timestamp:0};return F.forEach((j,W)=>{if(W===L){let re=null;try{re=JSON.parse(j),this.log("whereNow doc: %o",re)}catch(he){re={},this.logError("parse doc error: %o",he)}const ee=Object.keys(re).filter(he=>he[0]!==K_SYNC_INTERNAL_KEY_PREFIX);this.log("whereNow channels: %o",ee),ee.forEach(he=>{const{channelName:ue,channelType:Ee}=getChannelDetailByName(he);Y.channels.push({channelName:ue,channelType:Ee})}),Y.totalChannel=ee.length}}),Y}catch(S){if(S instanceof RTMBaseError){const{serverCode:v,errorCode:L}=S;throw f=v??L,S}{const{reason:v,code:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_FAILED);throw new RtmUnavailableError(OperationName.whereNow,[v+String(S)],L)}}finally{this._reportRpcEvent("whereNow",{requestts:d,reqSeq:I,errCode:f,target:e})}}_reportRpcEvent(e,o){let{requestts:d,reqSeq:I,errCode:f,target:S}=o;this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(d),replyts:Long$1.fromNumber(Date.now()),target:S,eventtype:e,revision:Long$1.fromNumber(0),uuid:"".concat(I,"_").concat(this._context.instanceId),sdktype:4,flags:Long$1.fromNumber(0),code:f,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""})}async _getOtherStateByRPC(e,o,d){const I=await this._requestRpcGetState(o,e);d.states=I,d.statesCount=Object.keys(I).length}_getStateByCrdt(e,o,d){var I;const f=this._getRTMSession(),S=OperationName.presenceGetState,v=f.getDocByUid(o,{funcName:"requestGetState",uid:e});if(isNil$1(v)){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_USER_NOT_EXIST);throw new RtmUnavailableError(S,[F],x)}const L=(I=v==null?void 0:v.Get())!==null&&I!==void 0?I:{};delete L[K_PRESENCE_EXPIRED],d.statesCount=Object.keys(L).length,d.states=L}_getLocalState(e,o,d){const I={},f=this._getLocalStateCache().get(e);f==null||f.forEach((S,v)=>{I[v]=S}),this._logSdkStateInOperateState(o),d.states=I,d.statesCount=Object.keys(I).length}async whoNow(e,o,d){var I,f;const S=OperationName.whoNow,v=getChannelNameByType(e,o);if(this._context.enablePrivate&&((I=this._context.rtmConfig.privateConfig)===null||I===void 0||!I.serviceType.includes("MESSAGE"))){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(S,W,j)}if(this._getBackoffEventsMap().has(v)&&o==="MESSAGE"){if(this._getRtmLinkState()!=="CONNECTED"){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(S,[W],j)}return await this._whoNowUseReg(e)}this._apiRateLimit.canMakeOperation("whoNow"),validateChannelType(S,o);const L=(d==null?void 0:d.includedUserId)!==!1,x=(d==null?void 0:d.includedState)===!0,F=(f=d==null?void 0:d.page)!==null&&f!==void 0?f:"";if(this._validateRtmConnection(S),validateKey(e,S,"channel"),(d==null?void 0:d.includedUserId)===!1&&(d==null?void 0:d.includedState)===!0){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_INVALID_ARGUMENT);throw new RtmInvalidArgumentError(S,[W+"include uid is false but include state is true"],j)}const Y=this._getRTMSession();return this._context.getChannelOptionsByKey(v,"withPresence")?Y.getColl(v)===null?await this._requestRPCWhoNow(v,F,L,x):await this._requestWhoNow(v,L,x):await this._requestRPCWhoNow(v,F,L,x)}async getOnlineUsers(e,o,d){try{return await this.whoNow(e,o,d)}catch(I){throw I instanceof RTMBaseError&&(I.operation=OperationName.getOnlineUsers),I}}async whereNow(e){const o=OperationName.whereNow;return this._apiRateLimit.canMakeOperation("whereNow"),this._validateRtmConnection(o),e===""&&(e=this._context.uid),validateKey(e,o,"uid"),await this._requestRpcWhereNow(e)}async getUserChannels(e){try{return await this.whereNow(e)}catch(o){throw o instanceof RTMBaseError&&(o.operation=OperationName.getUserChannels),o}}async setState(e,o,d){const I=OperationName.presenceSetState;this._apiRateLimit.canMakeOperation("modifyState"),validateChannelType(I,o),this._validateRtmConnection(I,!1),validateKey(e,I,"channel");const f=getChannelNameByType(e,o),S=Object.keys(d).length,{states:v}=await this.getState(this._context.uid,e,o,!0),L=new Set([...Object.keys(v),...Object.keys(d)]).size;if(S===0){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_INVALID_ARGUMENT);throw new RtmInvalidArgumentError(I,[F+"state of parameter is empty"],x)}if(S>MAX_STATE_COUNT||L>MAX_STATE_COUNT){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_COUNT_OVERFLOW);throw new RtmLimitExceededError(I,[F],x)}if(this._getLocalStateCache().size>K_PRESENCE_MAX_CHANNEL_COUNT){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_CACHED_TOO_MANY_STATES);throw new RtmLimitExceededError(I,[F],x)}if(validStateOfPresence(d,I),this._needOperationByCrdt(f)){const x=this._getRTMSession();this.log("".concat(I," by crdt"));const F=x.getDocByUid(f,{funcName:"requestSetState"});F==null||F.Set(d),x.sendTick()}return(this._needOperationByLocal()||this._context.getChannelOptionsByKey(f,"beQuiet")||this._context.notInChannel(f))&&this._logSdkStateInOperateState(I),this._updatePresenceStateCache(f,I,d),{timestamp:0}}async getState(e,o,d){let I=arguments.length>3&&arguments[3]!==void 0&&arguments[3];const f=OperationName.presenceGetState;if(I||this._apiRateLimit.canMakeOperation("getState"),validateChannelType(f,d),this._context.uid!==e&&this._getRtmLinkState()==="FAILED"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(f,[x],L)}this._validateRtmConnection(f,this._context.uid!==e),validateKey(o,f,"channel"),validateKey(e,f,"uid");const S=getChannelNameByType(o,d),v={statesCount:0,states:{},userId:e,timestamp:0};return this._context.notInChannel(S)?e===this._context.uid?(this.log("not in channel, get self state by local cache"),this._getLocalState(S,f,v)):(this.log("not in channel, get other state by rpc api."),await this._getOtherStateByRPC(e,S,v)):this._context.isInChannel(S)&&(e!==this._context.uid?this._context.getChannelOptionsByKey(S,"withPresence")?(this.log("in channel with presence, get other state by crdt"),this._getRTMSession().validateSyncConnected(OperationName.presenceGetState),this._getStateByCrdt(e,S,v)):(this.log("in channel without presence, get other state by rpc api."),await this._getOtherStateByRPC(e,S,v)):this._needOperationByCrdt(S)?(this.log("in channel, has doc, get self state by crdt"),this._getStateByCrdt(this._context.uid,S,v)):e===this._context.uid&&(this.log("in channel, get self state by local cache"),this._getLocalState(S,f,v))),v}async removeState(e,o,d){var I,f,S,v,L,x,F;const Y=OperationName.presenceRemoveState;this._apiRateLimit.canMakeOperation("modifyState"),validateChannelType(Y,o),this._validateRtmConnection(Y,!1),validateKey(e,Y,"channel");const j=!(d!=null&&(I=d.states)!==null&&I!==void 0&&I.length);if(!j&&d!=null&&(f=d.states)!==null&&f!==void 0&&f.length&&new Set(d.states).size!==((S=d.states)===null||S===void 0?void 0:S.length)){const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_DUPLICATE_KEY);throw new RtmInvalidArgumentError(Y,[ue],he)}if(((v=d==null||(L=d.states)===null||L===void 0?void 0:L.length)!==null&&v!==void 0?v:0)>MAX_STATE_COUNT){const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_PRESENCE_STATE_COUNT_OVERFLOW);throw new RtmLimitExceededError(Y,[ue],he)}d==null||(x=d.states)===null||x===void 0||x.forEach(he=>{validStateKeyOfPresence(he,Y)});const W=getChannelNameByType(e,o),re={};if(d==null||(F=d.states)===null||F===void 0||F.forEach(he=>{re[he]=""}),this._needOperationByCrdt(W)){var ee;this.log("".concat(Y," by crdt. isClear: ").concat(j));const he=this._getRTMSession(),ue=he.getDocByUid(W,{funcName:"requestRemoveState"}),Ee=(ee=ue==null?void 0:ue.Get())!==null&&ee!==void 0?ee:{};ue==null||ue.Del(Object.keys(j?Ee:re)),he.sendTick()}return(this._needOperationByLocal()||this._context.getChannelOptionsByKey(W,"beQuiet")||this._context.notInChannel(W))&&this._logSdkStateInOperateState(Y),this._updatePresenceStateCache(W,Y,re),{timestamp:0}}_validateRtmConnection(e){var o;let d=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._context.enablePrivate&&((o=this._context.rtmConfig.privateConfig)===null||o===void 0||!o.serviceType.includes("MESSAGE"))){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(e,S,f)}const I=this._getRtmLinkState();if(I==="IDLE"||d&&I!=="CONNECTED"){this.log("The client state is ".concat(I,", cannot do the operation(").concat(e,")"));const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[S],f)}d&&this._getRTMSession().validateSyncConnected(e)}_needOperationByLocal(){var e;const o=this._getRtmLinkState();return o!=="IDLE"&&o!=="CONNECTED"||!!this._noRTMSession()||!((e=this._getRTMSession())!==null&&e!==void 0&&e.isSyncEstablished()||!getParameter("DECOUPLE_SYNC"))}_needOperationByCrdt(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._context.uid;return!this._noRTMSession()&&!!this._getRTMSession().getDocByUid(e,{funcName:"needOperationByCrdt",uid:o})}_getLocalStateCache(){return this._context.localStateCache}_updatePresenceStateCache(e,o,d){var I;const f=(I=this._getLocalStateCache().get(e))!==null&&I!==void 0?I:new Map;if(o===OperationName.presenceSetState)for(const S in d)f.set(S,d[S]);else if(o===OperationName.presenceRemoveState)if(Object.keys(d).length===0)f.clear();else for(const S in d)f.delete(S);this._getLocalStateCache().set(e,f)}_noRTMSession(){try{this._getRTMSession()}catch(e){const{errorCode:o}=e;if(o===RTMErrorCode.RTM_ERROR_NOT_CONNECTED)return!0}return!1}_logSdkStateInOperateState(e){var o,d,I;const f=!this._noRTMSession()&&(o=(d=this._getRTMSession())===null||d===void 0?void 0:d.getSyncConnected())!==null&&o!==void 0&&o,S=f&&((I=this._getRTMSession())===null||I===void 0?void 0:I.isSyncEstablished());this.log("reconnecting, quiet or not in channel, ".concat(e," by local cache. decouple: ").concat(getParameter("DECOUPLE_SYNC"),", virtualSocketConnected: ").concat(f,", established: ").concat(S))}}var _class$4;let Presence=(_class$4=class extends EventBase{constructor(n,e,o,d,I,f){super(n,"Presence",!0,!0),_defineProperty$1(this,"presenceImpl",void 0),this.presenceImpl=new PresenceImpl(n,e,o,d,I,f)}async whoNow(n,e,o){return await this.presenceImpl.whoNow(n,e,o)}async getOnlineUsers(n,e,o){return await this.presenceImpl.getOnlineUsers(n,e,o)}async whereNow(n){return await this.presenceImpl.whereNow(n)}async getUserChannels(n){return await this.presenceImpl.getUserChannels(n)}async setState(n,e,o){return await this.presenceImpl.setState(n,e,o)}async getState(n,e,o){return await this.presenceImpl.getState(n,e,o)}async removeState(n,e,o){return await this.presenceImpl.removeState(n,e,o)}},_applyDecoratedDescriptor(_class$4.prototype,"whoNow",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"whoNow"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"getOnlineUsers",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"getOnlineUsers"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"whereNow",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"whereNow"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"getUserChannels",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"getUserChannels"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"setState",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"setState"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"getState",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"getState"),_class$4.prototype),_applyDecoratedDescriptor(_class$4.prototype,"removeState",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$4.prototype,"removeState"),_class$4.prototype),_class$4);class LockImpl extends EventBase{get localAcquiredLocks(){return this._localAcquiredLocks}constructor(e,o,d,I){super(e,"LockImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_getRTMSession",void 0),_defineProperty$1(this,"_validateRtmConnection",void 0),_defineProperty$1(this,"_setOperationNoRes",new Set),_defineProperty$1(this,"_removeOperationNoRes",new Set),_defineProperty$1(this,"_releaseOperationNoRes",new Set),_defineProperty$1(this,"_revokeOperationNoRes",new Set),_defineProperty$1(this,"_acquireOperationNoRes",new Map),_defineProperty$1(this,"_notifyAcquireRetryReject",new Subject),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),_defineProperty$1(this,"_localAcquiredLocks",new Map),_defineProperty$1(this,"_notifyLockReAcquire",new Subject),_defineProperty$1(this,"_lockSubscriptions",{lockAcquires:new Map}),this._context=o,this._context.internalEmitter.on("StateLockUpdate",f=>{this._onLockUpdate(f)}),this._getRTMSession=genGetRTMSession(d),this._validateRtmConnection=I}hasLock(){return this._acquireOperationNoRes.size>0||Array.from(this._localAcquiredLocks.values()).some(e=>e.size>0)}release(){this._clearLocalAcquiredLocks(),this._clearLockOperationsWithRetry()}notifyLockReAcquire(e){this._notifyLockReAcquire.next({env:e,allReAcquire:!0})}async setLock(e,o,d,I){const f=OperationName.setLock;this._apiRateLimit.canMakeOperation("setLock"),validateChannelType(f,o),this._validateLockOperation(f);const S={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,f),(I==null?void 0:I.ttl)!==void 0&&(I.ttlMAX_LOCK_TTL&&(I.ttl=MAX_LOCK_TTL));const{prefixChannelName:v,operationKey:L}=this._getLockOperationKey(e,o,d);this._checkAndAddOperation(this._setOperationNoRes,L,f);try{var x;await this._requestSetLock(v,d,{ttl:(x=I==null?void 0:I.ttl)!==null&&x!==void 0?x:getParameter("LOCK_TTL")}).toPromise()}catch(F){this._handleLockOperationError(F,f)}finally{this._setOperationNoRes.delete(L)}return S}async removeLock(e,o,d){const I=OperationName.removeLock;this._apiRateLimit.canMakeOperation("removeLock"),validateChannelType(I,o),this._validateLockOperation(I);const f={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,I);const{prefixChannelName:S,operationKey:v}=this._getLockOperationKey(e,o,d);this._checkAndAddOperation(this._removeOperationNoRes,v,I);try{await this._requestRemoveLock(S,d).toPromise()}catch(L){this._handleLockOperationError(L,I)}finally{this._removeOperationNoRes.delete(v)}return f}async acquireLock(e,o,d,I){var f,S;const v=OperationName.acquireLock;this._apiRateLimit.canMakeOperation("acquireLock"),validateChannelType(v,o),this._validateLockOperation(v),this._validateChannelAndLock(e,d,v);const{prefixChannelName:L,operationKey:x}=this._getLockOperationKey(e,o,d);if(!((f=this._localAcquiredLocks.get(L))===null||f===void 0)&&f.get(d)){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_PERFORMING);throw new RtmUnavailableError(v,[re],W)}let F,Y;this._acquireOperationNoRes.has(x)&&this._throwInvalidOperationError(v);const j=new Promise((W,re)=>{F=re,Y=W});this._acquireOperationNoRes.set(x,{retry:(S=I==null?void 0:I.retry)!==null&&S!==void 0&&S,reqSeq:void 0,resolve:Y,reject:F});try{await this._requestAcquireLock(L,d,{retry:I==null?void 0:I.retry,reject:F,resolve:Y}),Y({lockName:d,channelName:e,channelType:o,timestamp:0})}catch(W){if(this.logError(W),isRtmError(W))throw W;this.logError("acquireLock not match rtm error, %o",W)}finally{this._acquireOperationNoRes.delete(x)}return j}async releaseLock(e,o,d){var I,f;const S=OperationName.releaseLock;this._apiRateLimit.canMakeOperation("releaseLock"),validateChannelType(S,o),this._validateLockOperation(S);const v={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,S);const{prefixChannelName:L,operationKey:x}=this._getLockOperationKey(e,o,d);if(!((I=this._acquireOperationNoRes.get(x))!==null&&I!==void 0&&I.retry||(f=this._localAcquiredLocks.get(L))!==null&&f!==void 0&&f.get(d))){const{code:F,reason:Y}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_ACQUIRED);throw new RtmUnavailableError(S,[Y],F)}this._checkAndAddOperation(this._releaseOperationNoRes,x,S);try{await this._requestReleaseLock(L,d).toPromise()}catch(F){this._handleLockOperationError(F,S)}finally{this._releaseOperationNoRes.delete(x)}return v}async revokeLock(e,o,d,I){const f=OperationName.revokeLock;this._apiRateLimit.canMakeOperation("revokeLock"),validateChannelType(f,o),this._validateLockOperation(f);const S={timestamp:0,channelName:e,channelType:o,lockName:d};this._validateChannelAndLock(e,d,f),validateKey(I,f,"uid");const{prefixChannelName:v,operationKey:L}=this._getLockOperationKey(e,o,d);this._checkAndAddOperation(this._revokeOperationNoRes,L,f);try{await this._requestRevokeLock(v,d,I).toPromise()}catch(x){this._handleLockOperationError(x,f)}finally{this._revokeOperationNoRes.delete(L)}return S}async getLock(e,o){const d=OperationName.getLock;this._apiRateLimit.canMakeOperation("getLock"),validateChannelType(d,o),this._validateLockOperation(d);const I={timestamp:0,totalLocks:0,lockDetails:[],channelName:e,channelType:o};validateKey(e,d,"channel");const f=getChannelNameByType(e,o);try{const S=this._requestGetLock(f),v=await S.toPromise();I.totalLocks=v.length,I.lockDetails=v.map(L=>{var x,F,Y,j;let W=null;try{L!=null&&L.lockState&&(W=JSON.parse(L.lockState))}catch(re){this.logError("parse lockState error, %o",re)}return{lockName:(x=L.lockName)!==null&&x!==void 0?x:"",ttl:(F=W)===null||F===void 0?void 0:F.create_ttl,owner:(Y=(j=W)===null||j===void 0?void 0:j.user)!==null&&Y!==void 0?Y:""}})}catch(S){this._handleLockOperationError(S,d)}return I}async _requestAcquireLock(e,o,d){const I=OperationName.acquireLock,f=getPrefixLockName(o),S="".concat(e).concat(f),v=d==null?void 0:d.resolve,L=d==null?void 0:d.reject,x=this._context.incGetSeq(),F=Long$1.fromNumber(Date.now());this._context.addReportEvents("SyncLockAcquireEvent",{code:0,target:e,lock:o,ttl:Long$1.fromNumber(0),flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,lockrev:Long$1.fromNumber(0),leaseid:this._context.uid,eventtype:"Acquire",sdktype:4,requestts:F,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""});const Y=fromEvent(this,"lockReleasedOrExpired").pipe(filter(ee=>ee===S),take(1)),j=this._notifyLockReAcquire.pipe(filter(ee=>(ee==null?void 0:ee.prefixChannelLockName)===S||(ee==null?void 0:ee.allReAcquire)===!0),switchMap(ee=>{var he,ue;const Ee=!(!((he=this._localAcquiredLocks.get(e))===null||he===void 0)&&he.has(o))&&(d==null?void 0:d.retry),_e=x;this._sendLockPacket(I,"StateLockAcquire",{target:e,requestUuid:"".concat(_e,"_").concat(this._context.instanceId),lock:o,ttl:new Long$1(0,0,!0),flags:new Long$1(Ee?LockImpl.ENABLE_LOCK_BLOCKING|LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP:LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)},ee.env),v&&L&&this._acquireOperationNoRes.set(S,{retry:(ue=d==null?void 0:d.retry)!==null&&ue!==void 0&&ue,reqSeq:_e,resolve:v,reject:L});const De=Ve=>{let{code:Ge,target:He,lock:At,lockRev:Bt,reason:Tt}=Ve;const{code:rt,reason:ye}=convertLockServerCodeToSdkCode(Ge);if(rt!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[ye],rt);return this._updateLocalAcquiredLocks(e,o,"add",Bt.toNumber()),{target:He,lock:At,lockRev:Bt,reason:Tt,code:Ge}},Fe=Ve=>{var Ge;let{lock:He,code:At,target:Bt,lockRev:Tt,eventReportInfo:rt}=Ve;this.log("acquire lock with lock(".concat(o,"), channel: ").concat(replaceRangeWithAsterisk(e),", retry: ").concat(Ee,", serverCode is ").concat(At));const{code:ye}=convertLockServerCodeToSdkCode(At);this._context.addReportEvents("SyncLockAcquireEvent",{code:ye,target:Bt,lock:o,ttl:Long$1.fromNumber(0),flags:new Long$1(Ee?LockImpl.ENABLE_LOCK_BLOCKING|LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP:LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:(Ge=rt==null?void 0:rt.ip)!==null&&Ge!==void 0?Ge:"",userid:this._context.uid,sid:this._context.sid,lockrev:Tt,leaseid:this._context.uid,eventtype:"AcquireResult",sdktype:4,requestts:F,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),ye!==RTMErrorCode.RTM_ERROR_OK||He===o&&Bt===e||(this.log("RTM service Error: acquired unexpected lock on channel '%s', lock '%s', member '%s'",replaceRangeWithAsterisk(e),replaceRangeWithAsterisk(He),replaceRangeWithAsterisk(this._context.uid||"")),this._requestReleaseLock(Bt,He).toPromise()),this._clearReAcquireEffect(e,o,{lockRev:Tt,code:At})};return Ee?this._onOperationPacket("StateLockAcquireResult").pipe(first(Ve=>{let{requestUuid:Ge}=Ve;return"".concat(_e,"_").concat(this._context.instanceId)===Ge}),tap(()=>{this._acquireOperationNoRes.delete(S)}),tap(Fe),map$1(De),takeUntil(this._notifyAcquireRetryReject.pipe(filter(Ve=>Ve===S)))):race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockAcquireResult").pipe(first(Ve=>{let{requestUuid:Ge}=Ve;return"".concat(_e,"_").concat(this._context.instanceId)===Ge}),tap(()=>{this._acquireOperationNoRes.delete(S)}),tap(Fe),map$1(De)))}),takeUntil(Y),share()),W=()=>{this._lockSubscriptions.lockAcquires.delete(e)};return this._lockSubscriptions.lockAcquires.set(e,j.subscribe({error:W,complete:W})),this._notifyLockReAcquire.next({env:void 0,prefixChannelLockName:S}),await j.pipe(take(1),catchError(ee=>(ee instanceof TimeoutError&&this.warn("acquire channel lock timeout"),throwError(ee)))).toPromise()}_requestSetLock(e,o,d){var I;const f=OperationName.setLock,S=this._context.incGetSeq();return this._sendLockPacket(f,"StateLockCreate",{target:e,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:o,ttl:Long$1.fromNumber((I=d==null?void 0:d.ttl)!==null&&I!==void 0?I:getParameter("LOCK_TTL")),flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockCreateResult").pipe(first(v=>{let{requestUuid:L}=v;return"".concat(S,"_").concat(this._context.instanceId)===L}),map$1(v=>{let{code:L}=v;const{code:x,reason:F}=convertLockServerCodeToSdkCode(L);if(x!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(f,[F],x)})))}_clearReAcquireEffect(e,o,d){var I;const{lockRev:f,code:S}=d,v=(I=this._localAcquiredLocks.get(e))===null||I===void 0?void 0:I.get(o);if(v&&v.revision!==f.toNumber()){this.log("newRev: ".concat(f,", rev: ").concat(v==null?void 0:v.revision,", code: ").concat(S," for reacquire."));const{channelName:L,channelType:x}=getChannelDetailByName(e),F={channelType:x,channelName:L,eventType:"EXPIRED",lockName:o,ttl:0,publisher:"",snapshot:[],owner:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitLockExpired(F),this._requestReleaseLock(e,o).toPromise()}}_requestReleaseLock(e,o){const d=OperationName.releaseLock,I=this._context.incGetSeq(),f=Long$1.fromNumber(Date.now());return this._context.addReportEvents("SyncLockReleaseEvent",{code:0,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:this._context.uid,eventtype:"Release",sdktype:4,requestts:f,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),this._sendLockPacket(d,"StateLockRelease",{target:e,requestUuid:"".concat(I,"_").concat(this._context.instanceId),lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockReleaseResult").pipe(first(S=>{let{requestUuid:v}=S;return"".concat(I,"_").concat(this._context.instanceId)===v}),map$1(S=>{let{code:v}=S;const{code:L,reason:x}=convertLockServerCodeToSdkCode(v);if(this._context.addReportEvents("SyncLockReleaseEvent",{code:L,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:this._context.uid,eventtype:"ReleaseResult",sdktype:4,requestts:f,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),L!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(d,[x],L);{const F={channelName:e,lockName:o};this._updateLocalAcquiredLocks(e,o,"delete"),this.emit("lockReleasedOrExpired","".concat(F.channelName).concat(getPrefixLockName(F.lockName)))}})))}_requestRemoveLock(e,o){const d=OperationName.removeLock,I=this._context.incGetSeq();return this._sendLockPacket(d,"StateLockDelete",{target:e,lock:o,requestUuid:"".concat(I,"_").concat(this._context.instanceId),flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockDeleteResult").pipe(first(f=>{let{requestUuid:S}=f;return"".concat(I,"_").concat(this._context.instanceId)===S}),map$1(f=>{let{code:S}=f;const{code:v,reason:L}=convertLockServerCodeToSdkCode(S);if(v!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(d,[L],v)})))}_requestRevokeLock(e,o,d){const I=OperationName.revokeLock,f=this._context.incGetSeq(),S=Long$1.fromNumber(Date.now());return this._context.addReportEvents("SyncLockDisableEvent",{code:0,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:d,eventtype:"Disable",sdktype:4,requestts:S,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),this._sendLockPacket(I,"StateLockDisable",{target:e,requestUuid:"".concat(f,"_").concat(this._context.instanceId),lock:o,userId:d,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockDisableResult").pipe(first(v=>{let{requestUuid:L}=v;return"".concat(f,"_").concat(this._context.instanceId)===L}),map$1(v=>{let{code:L}=v;const{code:x,reason:F}=convertLockServerCodeToSdkCode(L);if(this._context.addReportEvents("SyncLockDisableEvent",{code:x,target:e,lock:o,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0),uuid:"",lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(this._context.vid||"0"),ip:"",userid:this._context.uid,sid:this._context.sid,leaseid:d,eventtype:"DisableResult",sdktype:4,requestts:S,replyts:Long$1.fromNumber(Date.now()),usersid:this._context.sid,sdkip:""}),x!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[F],x)})))}_requestGetLock(e){const o=OperationName.getLock,d=this._context.incGetSeq();return this._sendLockPacket(o,"StateLockList",{target:e,sequence:d,flags:new Long$1(LockImpl.LOCK_REVISION2|LockImpl.IS_GROUP,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT),this._onOperationPacket("StateLockListResult").pipe(first(I=>{let{sequence:f}=I;return d.eq(f)}),map$1(I=>{let{code:f,lockStates:S}=I;const{code:v,reason:L}=convertLockServerCodeToSdkCode(f);if(v!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[L],v);return S})))}_validateChannelAndLock(e,o,d){validateKey(e,d,"channel"),validateKey(o,d,"lock-name")}_validateLockOperation(e){this._validateRtmConnection(e),this._validateEnableLock(e)}_getLockOperationKey(e,o,d){const I=getChannelNameByType(e,o),f=getPrefixLockName(d);return{prefixChannelName:I,prefixLockName:f,operationKey:"".concat(I).concat(f)}}_throwInvalidOperationError(e){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_PERFORMING);throw new RtmUnavailableError(e,[d],o)}_handleLockOperationError(e,o){if(isRtmError(e)){if(this.logError(e),isNoLogged(e))throw e;if(isTimeout(e)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_OPERATION_TIMEOUT);throw new RtmUnavailableError(o,[I],d)}if(e.code!==void 0){const{code:d,reason:I}=getErrorInfoByCode(e.code);throw new RtmUnavailableError(o,[I],d)}this.logError("error code is undefined, %o",e)}else this.logError("not rtm error, %o",e)}_checkAndAddOperation(e,o,d){e.has(o)&&this._throwInvalidOperationError(d),e.add(o)}_sendLockPacket(e,o,d,I){I!==void 0?this._sendLockPacketUseOneEnv(e,I,o,d):this._getRTMSession().sendOperationPacket(e,o,d)}_sendLockPacketUseOneEnv(e,o,d,I){this._getRTMSession().sendOperationPacketUseOneEnv(e,o,d,I)}_onOperationPacket(e){return this._getRTMSession().onOperationPacket(e)}_onLockUpdate(e){const{target:o,flags:d,code:I,lock:f}=e,{channelName:S,channelType:v}=getChannelDetailByName(o);if(this._context.addReportEvents("SyncLockUpdateEvent",{vid:Long$1.fromValue(this._context.vid||"0"),code:I,sid:this._context.sid,lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,replyts:Long$1.fromNumber(Date.now()),target:o,eventtype:I===SyncServerErrorCode.kLockWatching?"Watch":"Expire",sdktype:4,flags:d,lock:f,usersid:this._context.sid,ip:"",sdkip:""}),I===SyncServerErrorCode.kLockWatching)this._onLockWatching({prefixChannelName:o,lockName:f});else if(I===SyncServerErrorCode.kLockExpired){const L={channelType:v,channelName:S,eventType:"EXPIRED",lockName:f,ttl:0,publisher:"",snapshot:[],owner:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this._emitLockExpired(L)}}_onLockWatching(e){const{prefixChannelName:o,lockName:d}=e;this.info("lock is watching: ".concat(o).concat(getPrefixLockName(d)))}_emitLockExpired(e){var o;const d=getChannelNameByType(e.channelName,e.channelType);(o=this._localAcquiredLocks.get(d))!==null&&o!==void 0&&o.get(e.lockName)&&(this._context.internalEmitter.emit("lock",_objectSpread2(_objectSpread2({},e),{},{ttl:0})),this.emit("lockReleasedOrExpired","".concat(d).concat(getPrefixLockName(e.lockName))),this._updateLocalAcquiredLocks(d,e==null?void 0:e.lockName,"delete"))}_updateLocalAcquiredLocks(e,o,d,I){var f;const S=(f=this._localAcquiredLocks.get(e))!==null&&f!==void 0?f:new Map;d==="delete"?S.delete(o):(S.set(o,{revision:I}),this._localAcquiredLocks.set(e,S))}_validateEnableLock(e){const o=getParameter("LOCK_ENABLED");if((o!==void 0?String(o):this._context.consoleConfig["lock.enabled"])!=="true"){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE);throw new RtmUnavailableError(e,[I],d)}}_clearLocalAcquiredLocks(){this._localAcquiredLocks.forEach((e,o)=>{e.forEach((d,I)=>{this.emit("lockReleasedOrExpired","".concat(o).concat(getPrefixLockName(I)))})}),this._localAcquiredLocks.clear()}_clearLockOperationsWithRetry(){this._acquireOperationNoRes.forEach((e,o)=>{const{reject:d}=e,{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_ACQUIRE_FAILED);d&&d(new RtmUnavailableError(OperationName.acquireLock,[f],I)),this._notifyAcquireRetryReject.next(o),this.emit("lockReleasedOrExpired",o)}),this._acquireOperationNoRes.clear()}}var _class$3;_defineProperty$1(LockImpl,"LOCK_REVISION2",1<<20),_defineProperty$1(LockImpl,"IS_GROUP",1),_defineProperty$1(LockImpl,"ENABLE_LOCK_BLOCKING",1<<18);let Lock=(_class$3=class extends EventBase{constructor(n,e,o,d){super(n,"Lock",!0,!0),_defineProperty$1(this,"lockImpl",void 0),this.lockImpl=new LockImpl(n,e,o,d)}async setLock(n,e,o,d){return await this.lockImpl.setLock(n,e,o,d)}async removeLock(n,e,o){return await this.lockImpl.removeLock(n,e,o)}async acquireLock(n,e,o,d){return await this.lockImpl.acquireLock(n,e,o,d)}async releaseLock(n,e,o){return await this.lockImpl.releaseLock(n,e,o)}async revokeLock(n,e,o,d){return await this.lockImpl.revokeLock(n,e,o,d)}async getLock(n,e){return await this.lockImpl.getLock(n,e)}},_applyDecoratedDescriptor(_class$3.prototype,"setLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"setLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"removeLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"removeLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"acquireLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"acquireLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"releaseLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"releaseLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"revokeLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"revokeLock"),_class$3.prototype),_applyDecoratedDescriptor(_class$3.prototype,"getLock",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$3.prototype,"getLock"),_class$3.prototype),_class$3);var StatePrefixEnum=function(n){return n.STATE_REVISION_KEY_PREFIX="_rev_",n.STATE_TIMESTAMP_PREFIX="_t_",n.STATE_AUTHOR_PREFIX="_m_",n.STATE_REVISION="_rev",n.STATE_INTERNAL_PREFIX="_",n}(StatePrefixEnum||{}),_class$2;class MetadataItem{constructor(e){var o,d,I,f,S;_defineProperty$1(this,"key",void 0),_defineProperty$1(this,"value",void 0),_defineProperty$1(this,"revision",void 0),_defineProperty$1(this,"updateTs",void 0),_defineProperty$1(this,"authorUserId",void 0),this.key=(o=e==null?void 0:e.key)!==null&&o!==void 0?o:"",this.value=(d=e==null?void 0:e.value)!==null&&d!==void 0?d:"",this.revision=(I=e==null?void 0:e.revision)!==null&&I!==void 0?I:-1,this.updateTs=(f=e==null?void 0:e.updateTs)!==null&&f!==void 0?f:0,this.authorUserId=(S=e==null?void 0:e.authorUserId)!==null&&S!==void 0?S:""}setKey(e){if(typeof e!="string"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_KEY);throw new RtmInvalidArgumentError(OperationName.storage,[d],o)}this.key=e,this.key=e}getKey(){if(typeof this.key=="string")return this.key;throw new RtmInternalError("Cannot get MetaDataItem key")}setValue(e){if(typeof e!="string"&&!isNull$2(null)){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_VALUE);throw new RtmInvalidArgumentError(OperationName.storage,[d],o)}this.value=e}getValue(){if(typeof this.value=="string"||isNull$2(null))return this.value;throw new RtmInternalError("Cannot get MetaDataItem value")}setRevision(e){if(typeof e!="number"||e%1!=0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_INVALID_REVISION);throw new RtmInvalidArgumentError(OperationName.storage,[d],o)}this.revision=e}getRevision(){if(typeof this.revision=="number")return this.revision;throw new RtmInternalError("Cannot get MetaDataItem revision")}getUpdateTs(){return this.updateTs}getAuthorUserId(){return this.authorUserId}}function getRequestInfo(n,e){const o={[StatePrefixEnum.STATE_REVISION]:e!==void 0&&e>=0?e:void 0};for(let d=0;d=0||I.getRevision()===-2?I.getRevision():void 0}return omitBy$1(o,isUndefined$2)}function covertStateStringToMetaData(n){const e=JSON.parse(n),o={majorRevision:e[StatePrefixEnum.STATE_REVISION],items:[]},d=omit$1(e,StatePrefixEnum.STATE_REVISION),I=Object.keys(d).filter(f=>f[0]!=="_");return o.items=I.map(f=>new MetadataItem({key:f,value:d[f],revision:d["".concat(StatePrefixEnum.STATE_REVISION_KEY_PREFIX).concat(f)],updateTs:d["".concat(StatePrefixEnum.STATE_TIMESTAMP_PREFIX).concat(f)],authorUserId:d["".concat(StatePrefixEnum.STATE_AUTHOR_PREFIX).concat(f)]})),o}class StorageImpl extends EventBase{_handleStorageOperationError(e,o){if(isRtmError(e)){if(this.logError(e),isNoLogged(e))throw e;if(isTimeout(e)){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);throw new RtmUnavailableError(o,[I],d)}if(e.code!==void 0){const{code:d,reason:I}=getErrorInfoByCode(e.code);throw new RtmUnavailableError(o,[I],d)}this.logError("error code is undefined, %o",e)}else this.logError("not rtm error, %o",e);throw e}_convertMetadataInfoToItems(e){const o=new Map;return e.forEach(d=>{var I;const f=new MetadataItem;f.setKey(d.key),f.setRevision((I=d.revision)!==null&&I!==void 0?I:-1),f.setValue(d.value),o.set(d.key,f)}),Array.from(o.values())}constructor(e,o,d,I,f,S){super(e,"StorageImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_channelMetaEventInfos",new Map),_defineProperty$1(this,"_userMetaEventInfos",new Map),_defineProperty$1(this,"_getRTMSession",void 0),_defineProperty$1(this,"_validateRtmConnection",void 0),_defineProperty$1(this,"_emitStorageEvent",void 0),_defineProperty$1(this,"_getLockRevision",void 0),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),_defineProperty$1(this,"_notifyUserMetaReSub",new Subject),_defineProperty$1(this,"_metadataSubscriptions",{userMetadataSubs:new Map}),_defineProperty$1(this,"_userMetadataSub",new Set),_defineProperty$1(this,"_onChannelMetaDataUpdated",v=>{var L;let{channelId:x,data:F}=v;if(((L=this._channelMetaEventInfos.get(x))!==null&&L!==void 0?L:-1)>=F.majorRevision||!this._context.getChannelOptionsByKey(x,"withMetadata","real"))return void this.log("channel(".concat(x,") meta not changed or not subscribed, ignore."));const{channelName:Y,channelType:j}=getChannelDetailByName(x);let W="UPDATE";this._channelMetaEventInfos.has(x)||(W="SNAPSHOT"),this._channelMetaEventInfos.set(x,F.majorRevision),this._emitStorageEvent(F,{channelName:Y,channelType:j,publisher:"",storageType:"CHANNEL",eventType:W})}),_defineProperty$1(this,"_userMetaDataUpdatedHandler",v=>{var L;let{uid:x,data:F}=v;if(((L=this._userMetaEventInfos.get(x))!==null&&L!==void 0?L:-1)>=F.majorRevision||!this.isSubedUserMetadata(x))return void this.log("user(".concat(replaceRangeWithAsterisk(x),") meta not changed or not subscribed, ignore."));let Y="UPDATE";this._userMetaEventInfos.has(x)||(Y="SNAPSHOT"),this._userMetaEventInfos.set(x,F.majorRevision),this._emitStorageEvent(F,{channelType:"USER",channelName:"",publisher:x,storageType:"USER",eventType:Y})}),this._context=o,this._getRTMSession=genGetRTMSession(d),this._validateRtmConnection=I,this._emitStorageEvent=f,this._getLockRevision=S,this._context.internalEmitter.on("StateUpdate",v=>{this._onStateUpdate(v)})}isSubedUserMetadata(e){return this._userMetadataSub.has(e)}unsubAllUserMetadata(){this._userMetadataSub.forEach(e=>{this.requestUnsubscribeUserMetadata(e)})}release(){this._userMetadataSub.forEach(e=>{this.emit("unsubUserMetadata",e)}),this._userMetadataSub.clear(),this._userMetaEventInfos.clear(),this._channelMetaEventInfos.clear()}deleteChannelMetaEventInfos(e){this._channelMetaEventInfos.delete(e)}requestUnsubscribeUserMetadata(e){const o=OperationName.unsubscribeUserMetadata,d=this._context.incGetSeq(),I=Date.now();this._sendStoragePacket(o,"StateUnsubscribe",{sequence:d,target:e,subTarget:"",flags:Long$1.fromNumber(0)}),this._userMetaEventInfos.delete(e),this._userMetadataSub.delete(e),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(I),replyts:Long$1.fromNumber(Date.now()),eventtype:"UnSubscribe",sdktype:4,flags:Long$1.fromNumber(0),code:0,seq:d,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid}),this.emit("unsubUserMetadata",e)}notifyUserMetaReSub(e){this._notifyUserMetaReSub.next({env:e,allReSub:!0})}async setChannelMetadata(e,o,d,I){var f,S;const v=OperationName.setChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaModify"),validateChannelType(v,o),this._validateRtmConnection(v),this._validateEnableStorage(v);const L={totalCount:0,timestamp:0,channelName:e,channelType:o};this._validateSessionExist(v);const x=getChannelNameByType(e,o);validateKey(e,v,"channel");const F=this._getLockRevision(x,(f=I==null?void 0:I.lockName)!==null&&f!==void 0?f:"",v),Y=this._convertMetadataInfoToItems(d),j=(S=I==null?void 0:I.majorRevision)!==null&&S!==void 0?S:-1;validMetaDataItem(v,{items:Y,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:j,type:"Set"});const W=JSON.stringify(getRequestInfo(Y,j));validateMetaDataSize(v,W);try{await this._requestSetChannelMetadata(W,{majorRevision:j,enableRecordTs:I==null?void 0:I.addTimeStamp,enableRecordUserId:I==null?void 0:I.addUserId},x,I==null?void 0:I.lockName,F).toPromise()}catch(re){this._handleStorageOperationError(re,v)}return L}async removeChannelMetadata(e,o,d){var I,f;const S=OperationName.removeChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaModify"),validateChannelType(S,o),this._validateRtmConnection(S),this._validateEnableStorage(S);const v={totalCount:0,timestamp:0,channelName:e,channelType:o},L=getChannelNameByType(e,o);this._validateSessionExist(S),validateKey(e,S,"channel");const x=d==null?void 0:d.data,F=!x||x.length===0,Y=x?this._convertMetadataInfoToItems(x):[];var j;F?d!=null&&d.majorRevision&&validMetaDataMajorRevisionForRemove(S,d.majorRevision):validMetaDataItem(S,{items:Y,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(j=d==null?void 0:d.majorRevision)!==null&&j!==void 0?j:-1,type:"Delete"});const W=this._getLockRevision(L,(I=d==null?void 0:d.lockName)!==null&&I!==void 0?I:"",S),re=JSON.stringify(getRequestInfo(cloneDeep$1(Y).map(ue=>(ue.setValue(null),ue)),(f=d==null?void 0:d.majorRevision)!==null&&f!==void 0?f:-1));validateMetaDataSize(S,re);try{var ee,he;await(F?this._requestClearChannelMetadata({majorRevision:(ee=d==null?void 0:d.majorRevision)!==null&&ee!==void 0?ee:-1,enableRecordTs:d==null?void 0:d.addTimeStamp,enableRecordUserId:d==null?void 0:d.addUserId},L,d==null?void 0:d.lockName,W).toPromise():this._requestRemoveChannelMetadata(re,{majorRevision:(he=d==null?void 0:d.majorRevision)!==null&&he!==void 0?he:-1,enableRecordTs:d==null?void 0:d.addTimeStamp,enableRecordUserId:d==null?void 0:d.addUserId},L,d==null?void 0:d.lockName,W).toPromise())}catch(ue){this._handleStorageOperationError(ue,S)}return v}async updateChannelMetadata(e,o,d,I){var f,S,v;const L=OperationName.updateChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaModify"),validateChannelType(L,o),this._validateRtmConnection(L),this._validateEnableStorage(L);const x={timestamp:0,totalCount:0,channelName:e,channelType:o},F=getChannelNameByType(e,o);this._validateSessionExist(L),validateKey(e,L,"channel");const Y=this._convertMetadataInfoToItems(d);validMetaDataItem(L,{items:Y,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(f=I==null?void 0:I.majorRevision)!==null&&f!==void 0?f:-1,type:"Update"});const j=this._getLockRevision(F,(S=I==null?void 0:I.lockName)!==null&&S!==void 0?S:"",L),W=JSON.stringify(getRequestInfo(cloneDeep$1(Y).map(ee=>(ee.getRevision()===-1&&ee.setRevision(-2),ee)),(v=I==null?void 0:I.majorRevision)!==null&&v!==void 0?v:-1));validateMetaDataSize(L,W);try{var re;await this._requestUpdateChannelMetadata(W,{majorRevision:(re=I==null?void 0:I.majorRevision)!==null&&re!==void 0?re:-1,enableRecordTs:I==null?void 0:I.addTimeStamp,enableRecordUserId:I==null?void 0:I.addUserId},F,I==null?void 0:I.lockName,j).toPromise()}catch(ee){this._handleStorageOperationError(ee,L)}return x}async getChannelMetadata(e,o){const d=OperationName.getChannelMetadata;this._apiRateLimit.canMakeOperation("channelMetaGet"),validateChannelType(d,o),this._validateRtmConnection(d),this._validateEnableStorage(d);const I={totalCount:0,majorRevision:0,metadata:{},timestamp:0,channelName:e,channelType:o};this._validateSessionExist(d),validateKey(e,d,"channel");try{const f=this._requestGetChannelMetadata(getChannelNameByType(e,o)),S=await f.pipe(map$1(v=>covertStateStringToMetaData(v))).toPromise();I.majorRevision=S.majorRevision,I.totalCount=S.items.length,S.items.forEach(v=>{var L;I.metadata[v.getKey()]={value:(L=v.getValue())!==null&&L!==void 0?L:"",revision:v.getRevision(),updated:v.getUpdateTs(),authorUid:v.getAuthorUserId()}})}catch(f){this._handleStorageOperationError(f,d)}return I}async setUserMetadata(e,o){var d;const I=OperationName.setUserMetadata;this._apiRateLimit.canMakeOperation("userMetaModify"),this._validateRtmConnection(I),this._validateEnableStorage(I);const f=o==null?void 0:o.userId,S={timestamp:0,totalCount:0,userId:f||this._context.uid};this._validateSessionExist(I),f&&validateKey(f,I,"uid");const v=this._convertMetadataInfoToItems(e),L=(d=o==null?void 0:o.majorRevision)!==null&&d!==void 0?d:-1;validMetaDataItem(I,{items:v,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:L,type:"Set"});const x=JSON.stringify(getRequestInfo(v,L));validateMetaDataSize(I,x);try{await this._requestSetUserMetadata(x,{majorRevision:L,enableRecordTs:o==null?void 0:o.addTimeStamp,enableRecordUserId:o==null?void 0:o.addUserId},f).toPromise()}catch(F){this._handleStorageOperationError(F,I)}return S}async removeUserMetadata(e){const o=OperationName.removeUserMetadata;this._apiRateLimit.canMakeOperation("userMetaModify"),this._validateRtmConnection(o),this._validateEnableStorage(o);const d=e==null?void 0:e.userId,I={timestamp:0,totalCount:0,userId:d||this._context.uid};this._validateSessionExist(o),d&&validateKey(d,o,"uid");const f=e==null?void 0:e.data,S=!f||f.length===0,v=this._convertMetadataInfoToItems(f??[]);var L;S?e!=null&&e.majorRevision&&validMetaDataMajorRevisionForRemove(o,e.majorRevision):validMetaDataItem(o,{items:v,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(L=e==null?void 0:e.majorRevision)!==null&&L!==void 0?L:-1,type:"Delete"});try{var x,F,Y;const j=JSON.stringify(getRequestInfo(cloneDeep$1(v).map(re=>(re.setValue(null),re)),(x=e==null?void 0:e.majorRevision)!==null&&x!==void 0?x:-1));validateMetaDataSize(o,j),await(S?this._requestClearUserMetadata({majorRevision:(F=e==null?void 0:e.majorRevision)!==null&&F!==void 0?F:-1,enableRecordTs:e==null?void 0:e.addTimeStamp,enableRecordUserId:e==null?void 0:e.addUserId},d).toPromise():this._requestRemoveUserMetadata(j,{majorRevision:(Y=e==null?void 0:e.majorRevision)!==null&&Y!==void 0?Y:-1,enableRecordTs:e==null?void 0:e.addTimeStamp,enableRecordUserId:e==null?void 0:e.addUserId},d).toPromise())}catch(j){this._handleStorageOperationError(j,o)}return I}async updateUserMetadata(e,o){var d,I;const f=OperationName.updateUserMetadata;this._apiRateLimit.canMakeOperation("userMetaModify"),this._validateRtmConnection(f),this._validateEnableStorage(f);const S=o==null?void 0:o.userId,v={timestamp:0,totalCount:0,userId:S||this._context.uid};this._validateSessionExist(f),S&&validateKey(S,f,"uid");const L=this._convertMetadataInfoToItems(e??[]);validMetaDataItem(f,{items:L,maxMetaDataCount:MAX_METADATA_COUNT,maxMetaValueSize:RTM_METADATA_VALUE_MAX_LENGTH,majorRevision:(d=o==null?void 0:o.majorRevision)!==null&&d!==void 0?d:-1,type:"Update"});const x=JSON.stringify(getRequestInfo(cloneDeep$1(L).map(Y=>(Y.getRevision()===-1&&Y.setRevision(-2),Y)),(I=o==null?void 0:o.majorRevision)!==null&&I!==void 0?I:-1));validateMetaDataSize(f,x);try{var F;await this._requestUpdateUserMetadata(x,{majorRevision:(F=o==null?void 0:o.majorRevision)!==null&&F!==void 0?F:-1,enableRecordTs:o==null?void 0:o.addTimeStamp,enableRecordUserId:o==null?void 0:o.addUserId},S).toPromise()}catch(Y){this._handleStorageOperationError(Y,f)}return v}async getUserMetadata(e){const o=OperationName.getUserMetadata;this._apiRateLimit.canMakeOperation("userMetaGet"),this._validateRtmConnection(o),this._validateEnableStorage(o);const d=e==null?void 0:e.userId,I={timestamp:0,totalCount:0,majorRevision:0,metadata:{},userId:d||this._context.uid};this._validateSessionExist(o),d&&validateKey(d,o,"uid");try{const f=covertStateStringToMetaData(await this._requestGetUserMetadata(d||this._context.uid).toPromise());I.totalCount=f.items.length,I.majorRevision=f.majorRevision,f.items.forEach(S=>{var v;I.metadata[S.getKey()]={value:(v=S.getValue())!==null&&v!==void 0?v:"",revision:S.getRevision(),updated:S.getUpdateTs(),authorUid:S.getAuthorUserId()}})}catch(f){this._handleStorageOperationError(f,o)}return I}async subscribeUserMetadata(e){const o=OperationName.subscribeUserMetadata;this._apiRateLimit.canMakeOperation("userMetaSub"),this._validateRtmConnection(o),this._validateEnableStorage(o),this._validateEnableStorageSub(o);const d={timestamp:0,userId:e||this._context.uid};if(this._validateSessionExist(o),validateKey(e,o,"uid"),this._userMetadataSub.has(e))return d;if(this._userMetadataSub.size>=MAX_SUBSCRIPTION_USER){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_SUBSCRIBE_USER_EXCEED_LIMITATION);throw new RtmLimitExceededError(o,[f],I)}try{await this._requestSubscribeUserMetadata(e),this._userMetadataSub.add(e)}catch(I){if(isRtmError(I)){if(this.logError(I),isNoLogged(I))throw I;if(I.code){const{code:f,reason:S}=getErrorInfoByCode(I.code);throw new RtmUnavailableError(o,[S],f)}this.logError("error code is undefined, %o",I)}else{if(isTimeout(I)){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT);throw this.emit("unsubUserMetadata",e),new RtmUnavailableError(o,[S],f)}this.logError("".concat(o," occurs error not of rtm, %o"),I)}}return d}async unsubscribeUserMetadata(e){const o=OperationName.unsubscribeUserMetadata;this._validateRtmConnection(o,!1),this._validateEnableStorage(o);const d={timestamp:0,userId:e||this._context.uid};if(this._validateSessionExist(o),validateKey(e,o,"uid"),!this._userMetadataSub.has(e)){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_SUBSCRIBE);throw new RtmInvalidStatusError(o,[f],I)}try{this.requestUnsubscribeUserMetadata(e),this._userMetadataSub.delete(e)}catch(I){if(isRtmError(I))throw I}return d}async _requestSubscribeUserMetadata(e){const o=OperationName.subscribeUserMetadata;this.emit("unsubUserMetadata",e);const d=fromEvent(this,"unsubUserMetadata").pipe(filter(L=>e===L),take(1)),I=this._context.incGetSeq(),f=Date.now(),S=this._notifyUserMetaReSub.pipe(filter(L=>(L==null?void 0:L.userId)===e||(L==null?void 0:L.allReSub)===!0),switchMap(L=>{const x=I;return this._sendStoragePacket(OperationName.subscribe,"StateSubscribe",{sequence:x,target:e,subTarget:"",flags:Long$1.fromNumber(0)},L.env),this._onOperationPacket("StateSubscribeResult").pipe(first(F=>{let{sequence:Y}=F;return x.eq(Y)}),tap(F=>{let{code:Y}=F;const{code:j,reason:W}=convertServerCodeToSdkCodeForSub(Y);if(this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:Long$1.fromNumber(0),code:j,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[W],j);this._userMetadataSub.add(e)}))}),takeUntil(d),share()),v=()=>{this._metadataSubscriptions.userMetadataSubs.delete(e)};this._metadataSubscriptions.userMetadataSubs.set(e,S.subscribe({error:v,complete:v})),this._notifyUserMetaReSub.next({env:void 0,userId:e}),await S.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(L=>(L instanceof TimeoutError&&(this.warn("subscribe user metadata timeout"),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:Long$1.fromNumber(0),code:RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid})),throwError(L)))).toPromise()}_sendStoragePacket(e,o,d,I){I!==void 0?this._sendStoragePacketUseOneEnv(e,I,o,d):this._getRTMSession().sendOperationPacket(e,o,d)}_sendStoragePacketUseOneEnv(e,o,d,I){this._getRTMSession().sendOperationPacketUseOneEnv(e,o,d,I)}_onOperationPacket(e){return this._getRTMSession().onOperationPacket(e)}_requestSetChannelMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0;const S=OperationName.setChannelMetadata,v=this._context.incGetSeq(),L=Date.now(),x=o==null?void 0:o.majorRevision;return this._sendStoragePacket(S,"StateModify",{sequence:v,target:d,requestUuid:"".concat(v,"_").concat(this._context.instanceId),value:e,lock:I??"",lockRev:Long$1.fromNumber(f??0),baseRevision:Long$1.fromNumber(x>=0?x:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(F=>{let{sequence:Y}=F;return v.eq(Y)}),map$1(F=>{let{code:Y}=F;const{code:j,reason:W}=convertMetadataServerCodeToSdkCode(Y);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(L),replyts:Long$1.fromNumber(Date.now()),target:d,eventtype:"Set",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(v,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:j,seq:v,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:I??"",lockrev:Long$1.fromNumber(f??0),subtarget:this._context.uid,sdkip:""}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(S,[W],j)})))}_requestGetChannelMetadata(e){const o=OperationName.getChannelMetadata,d=this._context.incGetSeq(),I=Date.now();return this._sendStoragePacket(o,"StateGet",{target:e,subTarget:"",lock:"",sequence:d,flags:new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2,0,!0),lockRev:Long$1.fromNumber(0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateGetResult").pipe(first(f=>{let{sequence:S}=f;return d.eq(S)}),map$1(f=>{let{code:S,allStates:v}=f;const{code:L,reason:x}=convertMetadataServerCodeToSdkCode(S),F=L===0?covertStateStringToMetaData(v).majorRevision:0;if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(I),replyts:Long$1.fromNumber(Date.now()),target:e,eventtype:"Get",revision:Long$1.fromNumber(F),uuid:"".concat(d,"_").concat(this._context.instanceId),sdktype:4,flags:new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2,0,!0),code:L,seq:d,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),L!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[x],L);return v}),filter(f=>{var S;return covertStateStringToMetaData(f).majorRevision>=((S=this._channelMetaEventInfos.get(e))!==null&&S!==void 0?S:0)})))}_requestRemoveChannelMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0;const S=OperationName.removeChannelMetadata,v=this._context.incGetSeq(),L=Date.now(),x=o==null?void 0:o.majorRevision;return this._sendStoragePacket(S,"StateModify",{sequence:v,target:d,requestUuid:"".concat(v,"_").concat(this._context.instanceId),lock:I??"",lockRev:Long$1.fromNumber(f??0),value:e,baseRevision:Long$1.fromNumber(x>=0?x:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(F=>{let{sequence:Y}=F;return v.eq(Y)}),map$1(F=>{let{code:Y}=F;const{code:j,reason:W}=convertMetadataServerCodeToSdkCode(Y);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(L),replyts:Long$1.fromNumber(Date.now()),target:d,eventtype:"Delete",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(v,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:j,seq:v,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:I??"",lockrev:Long$1.fromNumber(f??0),subtarget:this._context.uid,sdkip:""}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(S,[W],j)})))}_requestClearChannelMetadata(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},o=arguments.length>1?arguments[1]:void 0,d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0;const f=OperationName.removeChannelMetadata,S=this._context.incGetSeq(),v=Date.now(),L=e==null?void 0:e.majorRevision;return this._sendStoragePacket(f,"StateSet",{sequence:S,target:o,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:d??"",lockRev:Long$1.fromNumber(I??0),value:JSON.stringify({}),baseRevision:Long$1.fromNumber(L>=0?L:0),author:e.enableRecordUserId?this._context.uid:"",flags:e.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(x=>{let{sequence:F}=x;return S.eq(F)}),map$1(x=>{let{code:F}=x;const{code:Y,reason:j}=convertMetadataServerCodeToSdkCode(F);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(v),replyts:Long$1.fromNumber(Date.now()),target:o,eventtype:"Clear",revision:Long$1.fromNumber(e.majorRevision),uuid:"".concat(S,"_").concat(this._context.instanceId),sdktype:4,flags:e.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(L>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:Y,seq:S,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:d??"",lockrev:Long$1.fromNumber(I??0),subtarget:this._context.uid,sdkip:""}),Y!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(f,[j],Y)})))}_requestUpdateChannelMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0,I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0;const S=OperationName.updateChannelMetadata,v=this._context.incGetSeq(),L=Date.now(),x=o==null?void 0:o.majorRevision;return this._sendStoragePacket(S,"StateModify",{sequence:v,target:d,requestUuid:"".concat(v,"_").concat(this._context.instanceId),lock:I??"",lockRev:Long$1.fromNumber(f??0),value:e,baseRevision:Long$1.fromNumber(x>=0?x:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(F=>{let{sequence:Y}=F;return v.eq(Y)}),map$1(F=>{let{code:Y}=F;const{code:j,reason:W}=convertMetadataServerCodeToSdkCode(Y);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(L),replyts:Long$1.fromNumber(Date.now()),target:d,eventtype:"Update",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(v,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.IS_GROUP|StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.IS_GROUP|StorageImpl.LOCK_REVISION2|(x>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:j,seq:v,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:I??"",lockrev:Long$1.fromNumber(f??0),subtarget:this._context.uid,sdkip:""}),j!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(S,[W],j)})))}_requestSetUserMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0;const I=OperationName.setUserMetadata,f=this._context.incGetSeq(),S=Date.now(),v=o==null?void 0:o.majorRevision;return this._sendStoragePacket(I,"StateModify",{sequence:f,target:d??this._context.uid,requestUuid:"".concat(f,"_").concat(this._context.instanceId),value:e,lock:"",lockRev:Long$1.fromNumber(0),baseRevision:Long$1.fromNumber(v>=0?v:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(L=>{let{sequence:x}=L;return f.eq(x)}),tap(L=>{let{code:x}=L;const{code:F,reason:Y}=convertMetadataServerCodeToSdkCode(x);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(S),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Set",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(f,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(v>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:F,seq:f,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),F!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[Y],F)})))}_validateSessionExist(e){if(this._getRTMSession()===void 0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[d],o)}}_validateEnableStorage(e){const o=getParameter("STORAGE_ENABLED");if((o!==void 0?String(o):this._context.consoleConfig["storage.enabled"])!=="true"){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(e,[I],d)}}_validateEnableStorageSub(e){const o=getParameter("STORAGE_USER_SUB_ENABLED");if((o!==void 0?String(o):this._context.consoleConfig["storage.user_subscribe_enabled"])!=="true"){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(e,[I],d)}}_requestUpdateUserMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0;const I=OperationName.updateUserMetadata,f=o==null?void 0:o.majorRevision,S=this._context.incGetSeq(),v=Date.now();return this._sendStoragePacket(I,"StateModify",{sequence:S,target:d??this._context.uid,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:"",lockRev:Long$1.fromNumber(0),value:e,baseRevision:Long$1.fromNumber(f>=0?f:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(L=>{let{sequence:x}=L;return S.eq(x)}),tap(L=>{let{code:x}=L;const{code:F,reason:Y}=convertMetadataServerCodeToSdkCode(x);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(v),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Update",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(S,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:F,seq:S,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),F!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[Y],F)})))}_requestGetUserMetadata(e){const o=OperationName.getUserMetadata,d=this._context.incGetSeq(),I=Date.now();return this._sendStoragePacket(o,"StateGet",{target:e,subTarget:"",lock:"",sequence:d,flags:new Long$1(StorageImpl.LOCK_REVISION2,0,!0),lockRev:Long$1.fromNumber(0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateGetResult").pipe(first(f=>{let{sequence:S}=f;return d.eq(S)}),map$1(f=>{let{code:S,allStates:v}=f;const{code:L,reason:x}=convertMetadataServerCodeToSdkCode(S),F=L===0?covertStateStringToMetaData(v).majorRevision:0;if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(I),replyts:Long$1.fromNumber(Date.now()),target:e,eventtype:"Get",revision:Long$1.fromNumber(F),uuid:"".concat(d,"_").concat(this._context.instanceId),sdktype:4,flags:new Long$1(StorageImpl.LOCK_REVISION2,0,!0),code:L,seq:d,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),L!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(o,[x],L);return v}),filter(f=>{var S;return covertStateStringToMetaData(f).majorRevision>=((S=this._userMetaEventInfos.get(e))!==null&&S!==void 0?S:0)})))}_requestRemoveUserMetadata(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},d=arguments.length>2?arguments[2]:void 0;const I=OperationName.removeUserMetadata,f=o==null?void 0:o.majorRevision,S=this._context.incGetSeq(),v=Date.now();return this._sendStoragePacket(I,"StateModify",{sequence:S,target:d??this._context.uid,requestUuid:"".concat(S,"_").concat(this._context.instanceId),lock:"",lockRev:Long$1.fromNumber(0),value:e,baseRevision:Long$1.fromNumber(f>=0?f:0),author:o.enableRecordUserId?this._context.uid:"",flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(L=>{let{sequence:x}=L;return S.eq(x)}),tap(L=>{let{code:x}=L;const{code:F,reason:Y}=convertMetadataServerCodeToSdkCode(x);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(v),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Delete",revision:Long$1.fromNumber(o.majorRevision),uuid:"".concat(S,"_").concat(this._context.instanceId),sdktype:4,flags:o.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(f>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:F,seq:S,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),F!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(I,[Y],F)})))}_requestClearUserMetadata(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{majorRevision:-1,enableRecordTs:!1,enableRecordUserId:!1},o=arguments.length>1?arguments[1]:void 0;const d=OperationName.removeUserMetadata,I=this._context.incGetSeq(),f=Date.now(),S=e==null?void 0:e.majorRevision;return this._sendStoragePacket(d,"StateSet",{sequence:I,target:o??this._context.uid,requestUuid:"".concat(I,"_").concat(this._context.instanceId),lock:"",lockRev:Long$1.fromNumber(0),value:JSON.stringify({}),baseRevision:Long$1.fromNumber(S>=0?S:0),author:e.enableRecordUserId?this._context.uid:"",flags:e.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT),this._onOperationPacket("StateRequestResult").pipe(first(v=>{let{sequence:L}=v;return I.eq(L)}),tap(v=>{let{code:L}=v;const{code:x,reason:F}=convertMetadataServerCodeToSdkCode(L);if(this._context.addReportEvents("SyncOperateEvent",{lts:Long$1.fromNumber(Date.now()),ip:"",userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),target:this._context.uid,eventtype:"Clear",revision:Long$1.fromNumber(e==null?void 0:e.majorRevision),uuid:"".concat(I,"_").concat(this._context.instanceId),sdktype:4,flags:e.enableRecordTs?new Long$1(StorageImpl.ENABLE_RECORD_TS|StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0):new Long$1(StorageImpl.LOCK_REVISION2|(S>=0?StorageImpl.CHECK_AND_SET:0),0,!0),code:x,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},lock:"",lockrev:Long$1.fromNumber(0),subtarget:this._context.uid,sdkip:""}),x!==RTMErrorCode.RTM_ERROR_OK)throw new RtmUnavailableError(d,[F],x)})))}_onStateUpdate(e){let{flags:o,allStates:d,target:I}=e;const f=covertStateStringToMetaData(d);var S,v;!o.and(new Long$1(0,StorageImpl.IS_CLEAR,!0)).isZero()&&this.log("metadata is cleared."),o.and(new Long$1(StorageImpl.IS_GROUP,0,!0)).isZero()?f.majorRevision>=((S=this._userMetaEventInfos.get(I))!==null&&S!==void 0?S:0)&&this._userMetaDataUpdatedHandler({uid:I,data:f}):f.majorRevision>=((v=this._channelMetaEventInfos.get(I))!==null&&v!==void 0?v:0)&&this._onChannelMetaDataUpdated({channelId:I,data:f})}}_defineProperty$1(StorageImpl,"ENABLE_RECORD_TS",1<<19),_defineProperty$1(StorageImpl,"IS_GROUP",1),_defineProperty$1(StorageImpl,"LOCK_REVISION2",1<<20),_defineProperty$1(StorageImpl,"CHECK_AND_SET",1<<17),_defineProperty$1(StorageImpl,"IS_CLEAR",2);let RStorage=(_class$2=class extends EventBase{constructor(n,e,o,d,I,f){super(n,"Storage",!0,!0),_defineProperty$1(this,"storageImpl",void 0),this.storageImpl=new StorageImpl(n,e,o,d,I,f)}async setChannelMetadata(n,e,o,d){return await this.storageImpl.setChannelMetadata(n,e,o,d)}async getChannelMetadata(n,e){return await this.storageImpl.getChannelMetadata(n,e)}async removeChannelMetadata(n,e,o){return await this.storageImpl.removeChannelMetadata(n,e,o)}async updateChannelMetadata(n,e,o,d){return await this.storageImpl.updateChannelMetadata(n,e,o,d)}async setUserMetadata(n,e){return await this.storageImpl.setUserMetadata(n,e)}async getUserMetadata(n){return await this.storageImpl.getUserMetadata(n)}async removeUserMetadata(n){return await this.storageImpl.removeUserMetadata(n)}async updateUserMetadata(n,e){return await this.storageImpl.updateUserMetadata(n,e)}async subscribeUserMetadata(n){return await this.storageImpl.subscribeUserMetadata(n)}async unsubscribeUserMetadata(n){return await this.storageImpl.unsubscribeUserMetadata(n)}},_applyDecoratedDescriptor(_class$2.prototype,"setChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"setChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"getChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"getChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"removeChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"removeChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"updateChannelMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"updateChannelMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"setUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"setUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"getUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"getUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"removeUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"removeUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"updateUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"updateUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"subscribeUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"subscribeUserMetadata"),_class$2.prototype),_applyDecoratedDescriptor(_class$2.prototype,"unsubscribeUserMetadata",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$2.prototype,"unsubscribeUserMetadata"),_class$2.prototype),_class$2);const TextMessageDstType={PeerTextMessage:0,ChannelTextMessage:1,VendorTextMessage:2},RawMessageDstType={PeerRawMessage:3,ChannelRawMessage:4,VendorRawMessage:5},MessageDstType=_objectSpread2(_objectSpread2({},TextMessageDstType),RawMessageDstType),InvitationType={CallInvite:101,CallAccept:102,CallReject:103,CallCancel:104},MessageType=_objectSpread2(_objectSpread2({},MessageDstType),InvitationType),CompressionMethod={Uncompressed:0,Zlib:1};class MessageOption extends Struct{constructor(e){if(super(),this.define("MessageType",MessageType,8),this.define("BroadcastJumps","number",2),this.define("ToCache","boolean",1),this.define("FromCache","boolean",1),this.define("CompressionMethod",CompressionMethod,2),this.define("IterationNumber","number",4),this.define("BufferedMessage","boolean",1),this.define("ToArchive","boolean",1),this.define("FromArchive","boolean",1),this.define("kDelegate","number",1),this.define("kSecurity","number",1),this.define("kBypassGroupMemberCheck","number",1),this.define("enableEncryption","boolean",1),this.define("encrytionComplement","number",5),this.define("kHistory","number",1),this.define("undefined","number",33),isLongNum(e))this.from(e);else if(e!==void 0)for(let o=0,d=getEntries(e);othis.assert("MessageType",o))}isPeerMessage(){return this.assert("MessageType",["PeerTextMessage","PeerRawMessage"])}isChannelMessage(){return this.assert("MessageType",["ChannelTextMessage","ChannelRawMessage"])}isZlibCompressed(){return this.assert("CompressionMethod","Zlib")}isFromCache(){return this.assert("FromCache",!0)}isBufferedMessage(){return this.assert("BufferedMessage",!0)}getInvitationType(){if(!this.isInvitation())throw new TypeError("cannot get InvitationType of a normal message type");return this.typeOf("MessageType")}isEncryption(){return this.assert("enableEncryption",!0)}getEncrytionComplement(){var e;return(e=this.fields.get("encrytionComplement"))===null||e===void 0?void 0:e.val}}const{inflate}=UZIP;class HistoryImpl extends EventBase{constructor(e,o,d,I){super(e,"HistoryImpl",!0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"getRTMSession",void 0),_defineProperty$1(this,"_validateRtmConnection",void 0),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),this._context=o,this.getRTMSession=genGetRTMSession(d),this._validateRtmConnection=I}async getMessages(e,o,d){var I,f,S,v;const L=OperationName.getMessages;if(this._apiRateLimit.canMakeOperation("getMessages"),validateHistoryChannelType(L,o),this._validateRtmConnection(L),this._validateEnableHistory(L),validateKey(e,L,"channel"),o==="USER"&&e!==this._context.uid){this.warn("operation not permit");const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_NOT_PERMITTED);throw new RtmInvalidArgumentError(L,[ue],he)}const x=(I=d==null?void 0:d.start)!==null&&I!==void 0?I:0,F=(f=d==null?void 0:d.end)!==null&&f!==void 0?f:0;if(x>0&&F>0&&(x<=F||x-F>GET_MESSAGE_TIME_LIMIT)){this.warn("invalid start or end timestamp}");const{code:he,reason:ue}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_INVALID_TIMESTAMP);throw new RtmInvalidArgumentError(L,[ue],he)}const Y=(S=getParameter("HISTORY_MSG_COUNT_LIMIT"))!==null&&S!==void 0?S:GET_MESSAGE_MAX_COUNT;let j=(v=d==null?void 0:d.messageCount)!==null&&v!==void 0?v:Y;(j===0||j>Y)&&(j=Y);try{var W,re,ee;const he=this._requestGetMessages({channelName:e,channelType:o,count:j,startTime:x,endTime:F}),ue=await he.toPromise();return{messageList:(W=ue.messageList)!==null&&W!==void 0?W:[],count:(re=(ee=ue.messageList)===null||ee===void 0?void 0:ee.length)!==null&&re!==void 0?re:0,newStart:ue.newStart,timestamp:0}}catch(he){if(isRtmError(he)){if(this.logError(he),isNoLogged(he))throw he;if(isTimeout(he)){const{code:ue,reason:Ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_TIMEOUT);throw new RtmUnavailableError(L,[Ee],ue)}if(he.code!=null){const{code:ue,reason:Ee}=getErrorInfoByCode(he.code);throw new RtmUnavailableError(L,[Ee],ue)}this.logError("error code is undefined, %o",he)}else this.logError("not rtm error, %o",he)}return{timestamp:0,messageList:[],count:0,newStart:0}}_sendHistoryPacket(e,o,d){this.getRTMSession().sendOperationPacket(e,o,d)}_onOperationPacket(e){return this.getRTMSession().onOperationPacket(e)}_requestGetMessages(e){let{channelName:o,channelType:d,startTime:I,endTime:f,count:S}=e;const v=OperationName.getMessages,L=this._context.incGetSeq()+"_"+this._context.instanceId;return this._sendHistoryPacket(v,"StateHistoryGet2",{dst:o,uuid:L,startTime:Long$1.fromNumber(I),endTime:Long$1.fromNumber(f),count:S,flags:new Long$1(d==="MESSAGE"?1:0,0,!0)}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_TIMEOUT),this._onOperationPacket("StateHistoryGetResult2").pipe(first(x=>{let{uuid:F}=x;return L===F}),map$1(x=>{if(x.code!==RTMErrorCode.RTM_ERROR_OK){const{code:F,reason:Y}=getErrorInfoByCode(x.code===SyncServerErrorCode.kNoPrivilege?RTMErrorCode.RTM_ERROR_HISTORY_PERMISSION_DENIED:RTMErrorCode.RTM_ERROR_HISTORY_OPERATION_FAILED);throw new RtmUnavailableError(v,[Y],F)}{const{messages:F,oldestTime:Y,more:j}=x;let W=0;const re=F.filter(ee=>{const{options:he}=ee,ue=new MessageOption(he).isEncryption();return!(ue&&!this._context.encryptionInfo.key||!ue&&this._context.encryptionInfo.key)||(W++,!1)}).map(ee=>{var he;const{options:ue,payload:Ee,src:_e,ms:De,details:Fe}=ee,Ve=new MessageOption(ue),Ge=Ve.isZlibCompressed(),He=Ve.isEncryption(),At=(he=Ve.getEncrytionComplement())!==null&&he!==void 0?he:0,Bt=Ve.isTextMessage(),{customType:Tt=new Uint8Array}=Fe,rt=new TextDecoder().decode(Tt);if(Bt){const ye=Ge?inflate(concatenateUint8Array(Ee,Uint8Array.of(0,0,0,0))):Ee,lt=ye.byteLength-Long$1.fromValue(At).toNumber();return{message:new TextDecoder().decode(He&&this._context.encryptionInfo.initEncryption?decrypt(ye,this._context.encryptionInfo.key,this._context.encryptionInfo.iv,this._context.encryptionInfo.keyLength).slice(0,lt):ye),customType:rt,messageType:MessageType$1.STRING,publisher:_e,timestamp:De==null?void 0:De.toNumber()}}{const ye=Ge?inflate(Ee):Ee,lt=ye.byteLength-Long$1.fromValue(At).toNumber();return{message:He&&this._context.encryptionInfo.initEncryption?decrypt(ye,this._context.encryptionInfo.key,this._context.encryptionInfo.iv,this._context.encryptionInfo.keyLength).slice(0,lt):ye,customType:rt,messageType:MessageType$1.BINARY,publisher:_e,timestamp:De==null?void 0:De.toNumber()}}});return W>0&&this.warn("ignore %d messages because of encryption mismatch",W),{messageList:re,newStart:j?Y.toNumber():0}}})))}_validateEnableHistory(e){if(this._context.consoleConfig["history.enabled"]!=="true"){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_NOT_AVAILABLE);throw new RtmUnavailableError(e,[d],o)}}}var _class$1;let History=(_class$1=class extends EventBase{constructor(n,e,o,d){super(n,"History",!0,!0),_defineProperty$1(this,"historyImpl",void 0),this.historyImpl=new HistoryImpl(n,e,o,d)}async getMessages(n,e,o){return await this.historyImpl.getMessages(n,e,o)}},_applyDecoratedDescriptor(_class$1.prototype,"getMessages",[loggedSensitive],Object.getOwnPropertyDescriptor(_class$1.prototype,"getMessages"),_class$1.prototype),_class$1);var name="agora-rtm",exports$1={".":{require:"./dist/bundle.umd.js",import:"./dist/bundle.mjs",types:"./dist/types/index.d.ts"}},version="2.2.4",description="JavaScript SDK for Agora RTM",keywords=["agora","rtm","real-time-messaging","sdk","javascript","signaling","stream","messaging"],homepage="https://bitbucket.agoralab.co/projects/WEBRTC/repos/rtm.js",bugs={url:"https://agora-ticket.agora.io",email:"support@agora.io"},license="Apache",author="Agora Lab.",main="dist/bundle.umd.js",types="dist/types/index.d.ts",directories={lib:"src"},repository={type:"git",url:"git+ssh://git@git.agoralab.co/webrtc/rtm.js.git"},scripts={"test:coverage":"rm -rf ./coverage && vitest run --config ./vitest.config.ts","test:coverage:ui":"rm -rf ./coverage && vitest --ui --coverage --config ./vitest.config.ts",postinstall:"touch ./.env && node --experimental-import-meta-resolve ./scripts/patch.mjs","proto-gen":"npm run proto-gen:js && npm run proto-gen:ts","proto-gen:js":"pbjs -t static-module --no-create --no-decode --no-verify --no-service --no-convert --force-long --no-delimited -w es6 -o ./src/lib/compiled_proto/report.js ./src/third_party/report.proto && pbjs -t static-module --no-delimited --no-convert --no-verify --no-service --no-create --force-long -w es6 -o ./src/lib/compiled_proto/gateway.js ./src/third_party/gateway.proto && pbjs -t static-module --no-delimited --no-convert --no-verify --no-service --no-create --force-long -w es6 -o ./src/lib/compiled_proto/metadata.js ./src/third_party/metadata.proto","proto-gen:ts":"pbts --main --out ./src/lib/compiled_proto/report.d.ts ./src/lib/compiled_proto/report.js && pbts --main --out ./src/lib/compiled_proto/gateway.d.ts ./src/lib/compiled_proto/gateway.js && pbts --main --out ./src/lib/compiled_proto/metadata.d.ts ./src/lib/compiled_proto/metadata.js","build:types":"run-s dts:tsc dts:gen","dts:tsc":"tsc -p ./tsconfig.json","dts:gen":"rollup -c ./rollup.types.config.mjs",dev:"FUSION=false NODE_ENV=development BASE_VERSION=106 rollup -c rollup.config.mjs -w","dev-fusion":"FUSION=true NODE_ENV=development BASE_VERSION=106 rollup -c rollup.config.mjs -w",build:'NODE_OPTIONS="--max-old-space-size=8192" npm run build:web && NODE_OPTIONS="--max-old-space-size=8192" npm run build:cdn',"build:web":'cross-env GIT_COMMIT=$(git describe --tags --long --match "v*" --dirty) npx cross-env NODE_ENV=production BASE_VERSION=106 npx rollup -c rollup.config.mjs',"build:cdn":'cross-env GIT_COMMIT=$(git describe --tags --long --match "v*" --dirty) npx cross-env NODE_ENV=production BASE_VERSION=106 npx rollup -c rollup.config.web.mjs',prepublishOnly:"FUSION=false npm run build && npm run build:types && node ./prepublish.js",prepublishOnlyOversea:"cross-env FUSION=false OVERSEA=true npm run build && npm run build:types && cross-env OVERSEA=true node ./prepublish.js",prepublishOnlyFusion:"cross-env FUSION=true npm run build && npm run build:types && cross-env FUSION=true node ./prepublish.js",beautify:"concurrently -P 'npm:lint:*' -- --fix",lint:"npx eslint src/ --format codeframe","lint:test":"npx eslint '__test_rtm__/**/*.ts' 'vitest.config.ts' 'vitest.setup.ts' --config .eslintrc.test.js --no-ignore --format codeframe","beautify:all":"npm run lint -- --fix && npm run lint:test -- --fix",wb:"node white-brand-cli"},config={scripts:{commit:"npx git-cz"}},dependencies={"@thi.ng/cache":"^1.0.94","agora-rtc-sdk-ng":"4.23.0","cross-env":"^7.0.3",debug:"^4.4.0",events:"^3.3.0","format-util":"^1.0.5",gud:"^1.0.0","is-mobile":"^3.1.1","is-what":"^3.14.1",lodash:"^4.17.21",long:"^5.3.1",neverthrow:"^5.1.0","node-forge":"^1.3.1",protobufjs:"^7.4.0",rxjs:"^6.6.7","rxjs-etc":"^10.6.2","rxjs-websockets":"^8.0.1","safe-json-stringify":"^1.2.0",uuid:"^3.4.0"},devDependencies={"@ampproject/rollup-plugin-closure-compiler":"^0.27.0","@babel/core":"^7.26.0","@babel/eslint-parser":"^7.25.9","@babel/plugin-proposal-class-properties":"^7.18.6","@babel/plugin-proposal-decorators":"^7.25.9","@babel/plugin-syntax-import-attributes":"^7.26.0","@babel/plugin-transform-for-of":"^7.25.9","@babel/preset-env":"^7.26.0","@babel/preset-typescript":"^7.26.0","@playwright/test":"^1.41.2","@rollup/plugin-alias":"^5.1.1","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^25.0.8","@rollup/plugin-json":"^6.1.0","@rollup/plugin-node-resolve":"^15.3.1","@rollup/plugin-replace":"^5.0.7","@rollup/plugin-terser":"^0.4.4","@types/node":"^14.18.63","@typescript-eslint/eslint-plugin":"^6.21.0","@typescript-eslint/parser":"^6.21.0","@vitest/browser":"^3.1.1","@vitest/coverage-istanbul":"^3.1.1","@vitest/ui":"^3.1.1","agora-rte-extension":"^1.2.4","babel-plugin-annotate-pure-calls":"^0.4.0","babel-plugin-const-enum":"1.0.1","babel-plugin-istanbul":"^6.1.1","babel-plugin-polyfill-corejs3":"^0.2.5","babel-plugin-polyfill-regenerator":"^0.2.3",concurrently:"^7.6.0","core-js":"^3.39.0","cross-zip":"^4.0.1",decomment:"^0.9.5","dotenv-extended":"^2.9.0",eslint:"^8.57.1","eslint-config-airbnb-typescript":"^17.1.0","eslint-formatter-codeframe":"^7.32.1","eslint-plugin-eslint-comments":"^3.2.0","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.1","eslint-plugin-simple-import-sort":"^10.0.0","fast-check":"^4.0.0","fs-extra":"^9.1.0",jsdom:"^20.0.3","@mswjs/interceptors":"^0.39.4",msw:"^2.8.2",nodemon:"^2.0.22","npm-run-all":"^4.1.5",path:"^0.12.7",prettier:"3.2.3","protobufjs-cli":"~1.1.3","regenerator-runtime":"^0.14.1",rollup:"^4.28.1","rollup-plugin-dts":"^6.1.1","strict-event-emitter-types":"^2.0.0",touch:"^3.1.1",typedoc:"^0.23.28",typescript:"^5.7.2","utility-types":"^3.11.0",vite:"^5.1.0","vite-plugin-istanbul":"^7.0.0",vitest:"^3.1.1"},optionalDependencies={"@fast-csv/parse":"^4.3.6","@types/debug":"4.1.5","@types/format-util":"^1.0.4","@types/google-closure-compiler":"^0.0.18","@types/lodash":"^4.17.13","@types/node-forge":"^1.3.11","@types/pako":"^1.0.7","@types/safe-json-stringify":"^1.1.5","@types/uuid":"^3.4.13","browserslist-useragent":"^3.1.4","rollup-plugin-livereload":"^2.0.5","rollup-plugin-serve":"^1.1.1","rollup-plugin-visualizer":"^5.12.0","typedoc-plugin-no-inherit":"^1.4.0"},pkg={name,exports:exports$1,version,description,keywords,homepage,bugs,license,author,main,types,directories,repository,scripts,config,dependencies,devDependencies,optionalDependencies},_getParameter;const QUERY_INTERVAL=(_getParameter=getParameter("CONFIG_QUERY_INTERVAL"))!==null&&_getParameter!==void 0?_getParameter:3e5,LOCAL_STORAGE_KEY="_agora_rtm_custom_config";function getDeviceInfo(n){let e="Unknown",o="Unknown";return n.includes("Chrome")?e="Chrome":n.includes("Firefox")?e="Firefox":n.includes("Safari")&&!n.includes("Chrome")?e="Safari":n.includes("Edge")?e="Edge":(n.includes("Opera")||n.includes("OPR"))&&(e="Opera"),n.includes("Windows NT")?o="Windows":n.includes("Mac OS X")?o="Mac OS":n.includes("Android")?o="Android":n.includes("iPhone")||n.includes("iPad")?o="iOS":n.includes("Linux")&&(o="Linux"),{deviceName:e,osName:o}}class CustomConfig{get domains(){var e,o;const d=(e=getParameter("TDS_DOMAINS"))!==null&&e!==void 0?e:[];return d&&(o=d==null?void 0:d.length)!==null&&o!==void 0&&o?d:this._domains}constructor(e,o){var d;_defineProperty$1(this,"_appid",""),_defineProperty$1(this,"_sid",""),_defineProperty$1(this,"_timer",null),_defineProperty$1(this,"_device",""),_defineProperty$1(this,"_system",""),_defineProperty$1(this,"_systemGeneral",""),_defineProperty$1(this,"_domains",["ap-web-1.agora.io"]),_defineProperty$1(this,"_useBackup",!1),this._appid=e,this._sid=(d=o==null?void 0:o.sid)!==null&&d!==void 0?d:"",this._systemGeneral=navigator.userAgent;const{deviceName:I,osName:f}=getDeviceInfo(this._systemGeneral);this._device=I,this._system=f}init(e){this._sid=e;const o=this._getStorageConfig();if(o)for(const d in o)this._updateSdkConfig(d,o[d]);this._start()}stop(){this._timer&&(clearInterval(this._timer),this._timer=null)}async _query(){let e={};const o=this.domains,d=this!=null&&this._useBackup&&o.length>1?this.domains[1]:this.domains[0];try{const I=await postWithAbortSignal("https://".concat(d,"/api/v1"),{headers:{"X-Packet-Service-Type":"0","X-Packet-URI":"54","Content-Type":"application/json"},body:{flag:64,cipher_method:0,features:{device:this._device,system:this._system,system_general:navigator.userAgent,vendor:this._appid,version:pkg.version,install_id:this._sid,session_id:this._sid,detail:"",sdk_type:"web_rtm"}}}),f=JSON.parse(I.responseText),{code:S,test_tags:v}=f;if(S!==0)return;e=v;const L={};for(const x in e)if(x.includes("web_rtm")){const[F,Y]=JSON.parse(e[x]);for(const j in Y)Object.hasOwn(MUTABLE_PARAMS,j)&&(L[j]=Y[j])}this._setStorageConfig(L),this._useBackup=!1}catch{this._useBackup=!0}}async _start(){await this._query(),this._timer=setInterval(async()=>{await this._query()},QUERY_INTERVAL)}_getStorageConfig(){var e,o;const d=atob((e=localStorage.getItem(LOCAL_STORAGE_KEY))!==null&&e!==void 0?e:"");return((o=JSON.parse(d||JSON.stringify({})))===null||o===void 0?void 0:o[this._appid])||null}_setStorageConfig(e){var o;const d=JSON.parse(atob((o=localStorage.getItem(LOCAL_STORAGE_KEY))!==null&&o!==void 0?o:"")||"{}");d[this._appid]=_objectSpread2({},e),localStorage.setItem(LOCAL_STORAGE_KEY,btoa(JSON.stringify(d)))}_isExpectedType(e){return typeof e=="boolean"||typeof e=="number"||typeof e=="string"||Array.isArray(e)}_updateSdkConfig(e,o){o&&this._isExpectedType(o)&&setParameter(e,o)}}const implementsFunction=(n,e)=>n!=null&&typeof n[e]=="function",isArrayLike=n=>n!=null&&typeof n!="function"&&n.length!==void 0,isIterable=n=>n!=null&&typeof n[Symbol.iterator]=="function",compare=(n,e)=>n===e?0:n==null?e==null?0:-1:e==null?n==null?0:1:typeof n.compare=="function"?n.compare(e):typeof e.compare=="function"?-e.compare(n):ne?1:0,OBJP=Object.getPrototypeOf({}),FN="function",STR="string",equiv=(n,e)=>{let o;return n===e||(n==null?n==e:typeof n.equiv===FN?n.equiv(e):e==null?n==e:typeof e.equiv===FN?e.equiv(n):typeof n!==STR&&typeof e!==STR&&(o=Object.getPrototypeOf(n),o!=null&&o!==OBJP||(o=Object.getPrototypeOf(e),o!=null&&o!==OBJP)?typeof n!==FN&&n.length!==void 0&&typeof e!==FN&&e.length!==void 0?equivArrayLike(n,e):n instanceof Set&&e instanceof Set?equivSet(n,e):n instanceof Map&&e instanceof Map?equivMap(n,e):n instanceof Date&&e instanceof Date?n.getTime()===e.getTime():n instanceof RegExp&&e instanceof RegExp?n.toString()===e.toString():n!=n&&e!=e:equivObject(n,e)))},equivArrayLike=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv,d=n.length;if(d===e.length)for(;--d>=0&&o(n[d],e[d]););return d<0},equivSet=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv;return n.size===e.size&&o([...n.keys()].sort(),[...e.keys()].sort())},equivMap=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv;return n.size===e.size&&o([...n].sort(),[...e].sort())},equivObject=function(n,e){let o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:equiv;if(Object.keys(n).length!==Object.keys(e).length)return!1;for(let d in n)if(!e.hasOwnProperty(d)||!o(n[d],e[d]))return!1;return!0},defError=function(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:o=>o!==void 0?": "+o:"";return class extends Error{constructor(o){super(n(o)+e(o))}}},IllegalArgumentError=defError(()=>"illegal argument(s)"),illegalArgs=n=>{throw new IllegalArgumentError(n)},OutOfBoundsError=defError(()=>"index out of bounds"),outOfBounds=n=>{throw new OutOfBoundsError(n)},ensureIndex=(n,e,o)=>(n=o)&&outOfBounds(n),INV_MAX=1/4294967295;class ARandom{float(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return this.int()*INV_MAX*e}norm(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return 2*(this.int()*INV_MAX-.5)*e}minmax(e,o){return this.float()*(o-e)+e}}const random=Math.random;class SystemRandom extends ARandom{int(){return 4294967296*random()>>>0}float(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return random()*e}norm(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;return 2*(random()-.5)*e}}const SYSTEM=new SystemRandom,SEMAPHORE=Symbol(),NO_OP=()=>{},ensureTransducer=n=>implementsFunction(n,"xform")?n.xform():n;class Reduced{constructor(e){this.value=e}deref(){return this.value}}const isReduced=n=>n instanceof Reduced,unreduced=n=>n instanceof Reduced?n.deref():n;function*iterator1(n,e){const o=ensureTransducer(n)([NO_OP,NO_OP,(d,I)=>I])[2];for(let d=0;d[n[0],n[1],e];function map(n,e){return isIterable(e)?iterator1(map(n),e):o=>{const d=o[2];return compR(o,(I,f)=>d(I,n(f)))}}class DCons{constructor(e){this._length=0,e&&this.into(e)}get length(){return this._length}copy(){return new DCons(this)}empty(){return new DCons}clear(){this.release()}release(){let e,o=this.head;for(;o;)e=o.next,delete o.value,delete o.prev,delete o.next,o=e;return delete this.head,delete this.tail,this._length=0,!0}compare(e){const o=this._length;if(oe._length)return 1;if(o===0)return 0;{let d=this.head,I=e.head,f=0;for(;d&&f==0;)f=compare(d.value,I.value),d=d.next,I=I.next;return f}}equiv(e){if(!(e instanceof DCons||isArrayLike(e))||this._length!==e.length)return!1;if(!this._length||this===e)return!0;let o=this.head;for(let d=0;d0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.length;if(e>=o||e<0)return;let d=this.nthCell(e);const I=this.nthCell(o-1),f=S=>({first(){return S.value},next(){return S!==I&&S.next?f(S.next):void 0}});return d?f(d):void 0}*cycle(){for(;;)yield*this}$reduce(e,o){let d=this.head;for(;d&&!isReduced(o);)o=e(o,d.value),d=d.next;return o}drop(){const e=this.head;if(e)return this.head=e.next,this.head?delete this.head.prev:delete this.tail,this._length--,e.value}cons(e){const o={value:e,next:this.head};return this.head?this.head.prev=o:this.tail=o,this.head=o,this._length++,this}insertBefore(e,o){e||illegalArgs("cell is undefined");const d={value:o,next:e,prev:e.prev};return e.prev?e.prev.next=d:this.head=d,e.prev=d,this._length++,this}insertAfter(e,o){e||illegalArgs("cell is undefined");const d={value:o,next:e.next,prev:e};return e.next?e.next.prev=d:this.tail=d,e.next=d,this._length++,this}insertBeforeNth(e,o){return e<0&&(e+=this._length),e<=0?this.cons(o):(ensureIndex(e,0,this._length),this.insertBefore(this.nthCellUnsafe(e),o))}insertAfterNth(e,o){return e<0&&(e+=this._length),e>=this._length-1?this.push(o):(ensureIndex(e,0,this._length),this.insertAfter(this.nthCellUnsafe(e),o))}insertSorted(e,o){o=o||compare;let d=this.head;for(;d;){if(o(e,d.value)<=0)return this.insertBefore(d,e);d=d.next}return this.push(e)}find(e){let o=this.head;for(;o;){if(o.value===e)return o;o=o.next}}findWith(e){let o=this.head;for(;o;){if(e(o.value))return o;o=o.next}}concat(){const e=this.copy();for(var o=arguments.length,d=new Array(o),I=0;I0&&arguments[0]!==void 0?arguments[0]:0,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.length,d=e<0?e+this._length:e,I=o<0?o+this._length:o;(d<0||I<0)&&illegalArgs("invalid indices: ${from} / ${to}");const f=new DCons;let S=this.nthCell(d);for(;S&&++d<=I;)f.push(S.value),S=S.next;return f}splice(e){let o,d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,I=arguments.length>2?arguments[2]:void 0;typeof e=="number"?(e<0&&(e+=this._length),ensureIndex(e,0,this._length),o=this.nthCellUnsafe(e)):o=e;const f=new DCons;if(d>0)for(;o&&d-- >0;)this.remove(o),f.push(o.value),o=o.next;else o&&(o=o.next);if(I)if(o)for(let S=0;S=this._length))return this.nthCellUnsafe(e)}rotateLeft(){switch(this._length){case 0:case 1:return this;case 2:return this.swap(this.head,this.tail);default:return this.push(this.drop())}}rotateRight(){switch(this._length){case 0:case 1:return this;case 2:return this.swap(this.head,this.tail);default:const e=this.peek();return this.pop(),this.cons(e)}}map(e){const o=new DCons;let d=this.head;for(;d;)o.push(e(d.value)),d=d.next;return o}filter(e){const o=new DCons;let d=this.head;for(;d;)e(d.value)&&o.push(d.value),d=d.next;return o}reduce(e,o){let d=o,I=this.head;for(;I;)d=e(d,I.value),I=I.next;return d}shuffle(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:SYSTEM;if(this._length<2)return this;for(e=e??Math.ceil(1.5*Math.log2(this._length));e>0;e--){let d=this.head;for(;d;){const I=d.next;o.float()<.5?this.asHead(d):this.asTail(d),d=I}}return this}sort(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:compare;if(!this._length)return this;let o=1;for(;;){let d=this.head;this.head=void 0,this.tail=void 0;let I=0;for(;d;){I++;let f=d,S=0;for(let L=0;L0||v>0&&f;){let L;S===0?(L=f,f=f.next,v--):f&&v!==0?e(d.value,f.value)<=0?(L=d,d=d.next,S--):(L=f,f=f.next,v--):(L=d,d=d.next,S--),this.tail?this.tail.next=L:this.head=L,L.prev=this.tail,this.tail=L}d=f}if(this.tail.next=void 0,I<=1)return this;o*=2}}reverse(){let e=this.head,o=this.tail,d=(this._length>>>1)+(1&this._length);for(;e&&o&&d>0;){const I=e.value;e.value=o.value,o.value=I,e=e.next,o=o.prev,d--}return this}asHead(e){return e===this.head||(this.remove(e),this.head.prev=e,e.next=this.head,e.prev=void 0,this.head=e,this._length++),this}asTail(e){return e===this.tail||(this.remove(e),this.tail.next=e,e.prev=this.tail,e.next=void 0,this.tail=e,this._length++),this}toString(){let e=[],o=this.head;for(;o;)e.push(String(o.value)),o=o.next;return e.join(", ")}toJSON(){return[...this]}nthCellUnsafe(e){let o,d;for(e<=this._length>>1?(o=this.head,d="next"):(o=this.tail,d="prev",e=this._length-e-1);e-- >0&&o;)o=o[d];return o}}class LRUCache{constructor(e,o){const d=Object.assign({maxlen:1/0,maxsize:1/0,map:()=>new Map,ksize:()=>0,vsize:()=>0},o);this.map=d.map(),this.items=new DCons,this._size=0,this.opts=d,e&&this.into(e)}get length(){return this.items.length}get size(){return this._size}[Symbol.iterator](){return this.entries()}entries(){return map(e=>[e.k,e],this.items)}keys(){return map(e=>e.k,this.items)}values(){return map(e=>e.v,this.items)}copy(){const e=this.empty();e.items=this.items.copy();let o=e.items.head;for(;o;)e.map.set(o.value.k,o),o=o.next;return e}empty(){return new LRUCache(null,this.opts)}release(){this._size=0,this.map.clear();const e=this.opts.release;if(e){let o;for(;o=this.items.drop();)e(o.k,o.v);return!0}return this.items.release()}has(e){return this.map.has(e)}get(e,o){const d=this.map.get(e);return d?this.resetEntry(d):o}set(e,o){const d=this.opts.ksize(e)+this.opts.vsize(o),I=this.map.get(e);return this._size+=Math.max(0,d-(I?I.value.s:0)),this.ensureSize()&&this.doSetEntry(I,e,o,d),o}into(e){for(let o=0;othis.set(e,I))}delete(e){const o=this.map.get(e);return!!o&&(this.removeEntry(o),!0)}resetEntry(e){return this.items.asTail(e),e.value.v}ensureSize(){const e=this.opts.release,o=this.opts.maxsize,d=this.opts.maxlen;for(;this._size>o||this.length>=d;){const I=this.items.drop();if(!I)return!1;this.map.delete(I.k),e&&e(I.k,I.v),this._size-=I.s}return!0}removeEntry(e){const o=e.value;this.map.delete(o.k),this.items.remove(e),this.opts.release&&this.opts.release(o.k,o.v),this._size-=o.s}doSetEntry(e,o,d,I){e?(e.value.v=d,e.value.s=I,this.items.asTail(e)):(this.items.push({k:o,v:d,s:I}),this.map.set(o,this.items.tail))}}class TLRUCache extends LRUCache{constructor(e,o){super(e,o=Object.assign({ttl:36e5},o))}empty(){return new TLRUCache(null,this.opts)}has(e){return this.get(e)!==void 0}get(e,o){const d=this.map.get(e);if(d){if(d.value.t>=Date.now())return this.resetEntry(d);this.removeEntry(d)}return o}set(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.opts.ttl;const I=this.opts.ksize(e)+this.opts.vsize(o),f=this.map.get(e);if(this._size+=Math.max(0,I-(f?f.value.s:0)),this.ensureSize()){const S=Date.now()+d;f?(f.value.v=o,f.value.s=I,f.value.t=S,this.items.asTail(f)):(this.items.push({k:e,v:o,s:I,t:S}),this.map.set(e,this.items.tail))}return o}getSet(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.opts.ttl;const I=this.get(e);return I?Promise.resolve(I):o().then(f=>this.set(e,f,d))}prune(){const e=Date.now();let o=this.items.head;for(;o;)o.value.te||this.length>=o);)I.value.t{this._onMessage(S)})}release(){this._dialPendingMsgSubjectMap.clear(),this._dialogueSequenceLru.empty(),this._msgDedupLru.empty(),this._chatManager.release()}_encryptMessage(e){const o=OperationName.publish;try{const{key:d,iv:I,keyLength:f}=this._context.encryptionInfo;return encrypt(e,d,I,f)}catch{const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_ENCRYPT_MESSAGE_FAILED);throw new RtmUnavailableError(o,[f],I)}}_validateMsgSize(e){const o=OperationName.publish;if(e>TEXT_MESSAGE_MAX_TEXT_BYTES){const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_MESSAGE_LENGTH_EXCEED_LIMITATION);throw new RtmLimitExceededError(o,[I],d)}}_genMessageParams(e,o,d,I){let f=arguments.length>4&&arguments[4]!==void 0&&arguments[4];const S=OperationName.publish,v=_objectSpread2({},d?{customType:new TextEncoder().encode(d)}:{}),L=this._context.encryptionInfo.initEncryption;let x,F,Y,j=!1;switch(e.messageType){case"TEXT":const{text:he}=e,ue=new Blob([he]).size+new Blob([d??""]).size;this._validateMsgSize(ue),F=new TextEncoder().encode(he),x=L?this._encryptMessage(he):F,j=!getParameter("DISABLE_MESSAGE_COMPRESSION")&&(L?new Blob([new TextDecoder().decode(x)]).size:new Blob([he]).size)>=MESSAGE_MIN_COMPRESSION_LEN,Y=f?"PeerTextMessage":"ChannelTextMessage";break;case"RAW":const{rawMessage:Ee,description:_e=""}=e,De=Ee.byteLength+new Blob([_e]).size+new Blob([d??""]).size;this._validateMsgSize(De),v.description=new TextEncoder().encode(_e),F=Ee,x=L?this._encryptMessage(Ee):F,j=!getParameter("DISABLE_MESSAGE_COMPRESSION")&&x.byteLength>=MESSAGE_MIN_COMPRESSION_LEN,Y=f?"PeerRawMessage":"ChannelRawMessage";break;default:const{code:Fe,reason:Ve}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);throw new RtmInvalidArgumentError(S,[Ve],Fe)}const W=this._context.instanceId,{dialogue:re,sequence:ee}=this._chatManager.getChatInfo(f?K_P2P_MESSAGE_PREFIX+o:o);return this.debug('A%s %s %s message is sending to %s: "'.concat(W,"-").concat(re,"#").concat(ee,'"'),j?" compressed":"",f?"peer":"channel",e.messageType,replaceRangeWithAsterisk(o)),he=>({MiscMap:v,sequence:ee,dialogue:re,instance:W,dst:o,ms:Long$1.fromNumber(Date.now(),!0),options:new MessageOption({IterationNumber:he,CompressionMethod:j?"Zlib":"Uncompressed",MessageType:Y,ToCache:!1,ToArchive:!1,enableEncryption:L,encrytionComplement:x.byteLength-F.byteLength,kHistory:I?1:0}).toLong(),payload:j?deflate(x):x,src:this._context.uid})}async commonSendMessage(e){let{message:o,peerId:d,diff:I,customType:f,storeInHistory:S,toPeer:v=!1}=e;const L=OperationName.publish,x=this._genMessageParams(o,d,f,S,v),F=(v?P2P_MESSAGE_SEND_TIMEOUT:MESSAGE_SEND_TIMEOUT)-I,{code:Y}=await from(this._sendMessageToRetry(x,!0,v)).pipe(timeout(F===void 0?MESSAGE_SEND_TIMEOUT:F),catchError(W=>(W instanceof TimeoutError&&this.warn("Send message timeout"),throwError(W)))).toPromise(),j=Y===0;if(Y!==0){const{code:W,reason:re}=getErrorInfoByCode(Y===AckCodeType.kAckPeerOffline?RTMErrorCode.RTM_ERROR_CHANNEL_RECEIVER_OFFLINE:RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_FAILED);throw new RtmUnavailableError(L,[re],W)}return{hasPeerReceived:j}}_onMessage(e){var o;const{dialogue:d,instance:I,sequence:f,options:S,src:v,eventReportInfo:L}=e,x=d.toString(),F=this._dialPendingMsgSubjectMap.get(x),Y="".concat(I,"-").concat(d,"#").concat(f),j=this._dialogueSequenceLru.get(x),W=new MessageOption(S);if(F)return F.next(e),void this.log("Env_%d: The dialogue has pending messages, next: %s",L==null?void 0:L.env,Y);const re=!j&&f.eq(1),ee=j!==void 0&&f.sub(j).eq(1);if(re||ee)return void this._emitMessage(e,L==null?void 0:L.env);if(j){if(f.lte(j))return;this.log("Env_%d: The message pended, the sequence is not continuous with the last: %s",L==null?void 0:L.env,Y)}else this.log("Env_%d: The message pended, the first sequence is not equal to 1: %s",L==null?void 0:L.env,Y);const he=new Subject;this._dialPendingMsgSubjectMap.set(x,he);const ue=he.pipe(observeOn(asyncScheduler),scan((_e,De)=>[..._e,De],[]),map$1(_e=>[..._e].sort((De,Fe)=>{let{sequence:Ve}=De,{sequence:Ge}=Fe;return Ve.eq(Ge)?0:Ve.gt(Ge)?1:-1})),shareReplay(1)),Ee=!W.isFromCache()&&!W.isBufferedMessage();ue.pipe(takeUntil(timer((o=W.isChannelMessage()?getParameter("CHANNEL_MSG_REORDER_TIMEOUT"):getParameter("P2P_MSG_REORDER_TIMEOUT"))!==null&&o!==void 0?o:Ee?ONLINE_MESSAGE_DEDUP_DELAY:OFFLINE_MESSAGE_DEDUP_DELAY)),first(_e=>{if(_e.length<2)return!1;for(let De=j===void 0?Long$1.fromNumber(1,!0):j.add(1),Fe=0;Fe<_e.length;De=De.add(1),Fe++)if(!_e[Fe].sequence.eq(De))return!1;return!0}),finalize(()=>{this._dialPendingMsgSubjectMap.delete(x)})).subscribe(_e=>{_e.forEach(De=>{this._emitMessage(De,L==null?void 0:L.env),this.log("Env_%d: The message queue has fully ordered, emitting: %s",L==null?void 0:L.env,"".concat(De.instance,"-").concat(De.dialogue,"#").concat(De.sequence))})},_e=>{_e instanceof EmptyError&&ue.pipe(take(1)).subscribe(De=>De.forEach(Fe=>{this.log("Env_%d: The message pending queue expired, emitting: %s",L==null?void 0:L.env,"".concat(Fe.instance,"-").concat(Fe.dialogue,"#").concat(Fe.sequence)),this._emitMessage(Fe,L==null?void 0:L.env)}))}),he.next(e)}_emitMessage(e,o){const{options:d,payload:I,src:f,dst:S,instance:v,dialogue:L,sequence:x,ms:F,MiscMap:Y={}}=e;this._dialogueSequenceLru.set(L.toString(),x);const j="".concat(v,"-").concat(L,"#").concat(x);if(this._msgDedupLru.has(j))return void this.warn("Env_%d: Messages out-of-order or not start with 1: %s",o,j);this._msgDedupLru.set(j,void 0);const W=new MessageOption(d);(W.isInvitation()||W.isPeerMessage())&&this._sendMessageAck(e);const re=W.isZlibCompressed(),ee=W.isEncryption(),{customType:he=new Uint8Array}=Y,ue=new TextDecoder().decode(he);if(ee&&!this._context.encryptionInfo.key)return void this.warn("Received a message with encryption but the key is not ready yet, %s",j);if(!ee&&this._context.encryptionInfo.key)return void this.warn("Received a message without encryption but the key is ready, %s",j);if(!W.isPeerMessage()&&!this._context.getChannelOptionsByKey(S,"withMessage"))return void this.warn("Received a message but the channel is not subscribed, %s",j);const{message:Ee,messageType:_e,fromPeer:De}=this._decodeMessage(W,I),Fe={channelName:S,publisher:f,message:Ee,messageType:_e,customType:ue,channelType:De?"USER":"MESSAGE",topicName:"",timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.debug("Received a %s %s %s message from %s to %s, %s",re?" compressed":"",De?"peer":"channel",_e,replaceRangeWithAsterisk(f),replaceRangeWithAsterisk(S),j),this._emitMessageEvent(Fe)}_decodeMessage(e,o){var d;const I=e.isZlibCompressed(),f=e.isEncryption(),S=(d=e.getEncrytionComplement())!==null&&d!==void 0?d:0;if(e.isTextMessage()){const v=I?inflate$1(concatenateUint8Array(o,Uint8Array.of(0,0,0,0))):o,L=v.byteLength-Long$1.fromValue(S).toNumber(),{key:x,iv:F,keyLength:Y}=this._context.encryptionInfo;return{message:new TextDecoder().decode(f?decrypt(v,x,F,Y).slice(0,L):v),messageType:"STRING",fromPeer:e.isPeerTextMessage()}}if(e.isRawMessage()){const v=I?inflate$1(o):o,L=v.byteLength-Long$1.fromValue(S).toNumber(),{key:x,iv:F,keyLength:Y}=this._context.encryptionInfo;return{message:f?decrypt(v,x,F,Y).slice(0,L):v,messageType:"BINARY",fromPeer:e.isRawPeerMessage()}}return{}}}const resetIntervalInfo=()=>({joined:new Set,left:new Set,timeout:new Set,stateChanged:new Set});class ChannelPresence extends EventBase{constructor(e,o,d,I){super(o,"ChannelPresence"),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"channelsUsersStates",new Map),_defineProperty$1(this,"userJoinEvents",new Set),_defineProperty$1(this,"userLeftEvents",new Set),_defineProperty$1(this,"getRTMSession",void 0),_defineProperty$1(this,"timeoutInSnapshot",new Map),_defineProperty$1(this,"timeoutUsersWithoutInterval",new Map),_defineProperty$1(this,"intervalMode",new Map),_defineProperty$1(this,"intervalTimerId",new Map),_defineProperty$1(this,"intervalSnapshot",new Map),_defineProperty$1(this,"intervalInfos",new Map),_defineProperty$1(this,"backoffEventsTimer",new Map),_defineProperty$1(this,"backoffEventsMap",new Map),_defineProperty$1(this,"pendingPresenceEvent",new Map),_defineProperty$1(this,"_decoupleChannels",new Map),_defineProperty$1(this,"_decoupleChannelPromises",new Map),_defineProperty$1(this,"_intervals4CreateColl",[...CREATE_COLL_INTERVALS]),_defineProperty$1(this,"recoverPresenceTimer",null),_defineProperty$1(this,"requestChannelMemberList",void 0),_defineProperty$1(this,"_controlInterval",(f,S)=>{var v,L,x,F,Y;const j=(v=(L=this.channelsUsersStates.get(f))===null||L===void 0?void 0:L.size)!==null&&v!==void 0?v:0,W=Number(getParameter("PRESENCE_THRESHOLD")||((x=this._context.consoleConfig)===null||x===void 0?void 0:x["presence.occupancy"]))||0;switch(this.log("occupancy: %d, channelOccupancy: %d",W,j),this.log("(%s) is intervalMode: %s",f,(F=(Y=this.intervalMode)===null||Y===void 0?void 0:Y.get(f))!==null&&F!==void 0&&F),S){case"open":var re,ee;j>=W&&!this.intervalMode.get(f)&&(this.log("open interval mode in channel: ".concat(replaceRangeWithAsterisk(f))),this.intervalMode.set(f,!0),this.intervalSnapshot.set(f,this._getIntervalSnapshot(f)),this.intervalTimerId.set(f,setInterval(()=>{this.emit("presence-interval",f)},1e3*((re=getParameter("PRESENCE_INTERVAL"))!==null&&re!==void 0?re:Number((ee=this._context.consoleConfig)===null||ee===void 0?void 0:ee["presence.interval"])))),this.intervalInfos.set(f,resetIntervalInfo()));break;case"close":jthis._context.localStateCache),_defineProperty$1(this,"_handlePresenceEvent",f=>S=>{!getParameter("SENSITIVE_LOG")&&console.log({events:S,prefixChannelName:f,uid:this._context.uid},"events");const v=this.backoffEventsMap,L=v.has(f)||this.backoffEventsTimer.has(f),x=v.get(f),F=!(L&&x);L&&(this.recoverPresenceTimer&&clearTimeout(this.recoverPresenceTimer),this.recoverPresenceTimer=setTimeout(()=>{var xr;if(this.recoverPresenceTimer=null,(xr=this.getRTMSession())!==null&&xr!==void 0&&xr.getSynced()){const pr=Array.from(new Set([...this.backoffEventsTimer.keys(),...this.backoffEventsMap.keys()]));this.log("synced, recover presence for channel: %o",pr),pr.forEach(ei=>{this._recoverPresence(ei)})}},0));const{channelName:Y,channelType:j}=getChannelDetailByName(f),W={eventType:"SNAPSHOT",channelType:j,channelName:Y,publisher:"",stateChanged:{},interval:null,snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)},re=S.length;try{for(let xr=0;xroi.type==="Put"&&oi.path===K_PRESENCE_EXPIRED)){var vr,ai;W.eventType="REMOTE_STATE_CHANGED";const oi=(vr=(ai=this.channelsUsersStates.get(f))===null||ai===void 0?void 0:ai.get(pr))!==null&&vr!==void 0?vr:{};if(delete oi[_i],W.stateChanged=_objectSpread2({},oi),pr===this._context.uid)this.log('"'.concat(replaceRangeWithAsterisk(pr),'" receive self presence event in channel("').concat(j,'"-"').concat(replaceRangeWithAsterisk(Y),'"), type is ').concat(W.eventType,", state is ").concat(W.stateChanged));else if(_i[0]!==K_SYNC_INTERNAL_KEY_PREFIX){var pi;this.intervalMode.get(f)?(pi=this.intervalInfos.get(f))===null||pi===void 0||pi.stateChanged.add(pr):xr===findLastIndex$1(S,Oi=>{let{type:_o}=Oi;return _o===S[xr].type})&&this.pendingPresenceEvent.set(f,{type:"state-changed",value:W})}if(xr===re-1)return}if(ei==="Put"&&_i&&Gr){var yi,fi;const oi=(yi=(fi=this.channelsUsersStates.get(f))===null||fi===void 0?void 0:fi.get(pr))!==null&&yi!==void 0?yi:{};if(W.eventType="REMOTE_STATE_CHANGED",oi[_i]=Gr,W.stateChanged=_objectSpread2({},oi),pr===this._context.uid)this.log('"'.concat(replaceRangeWithAsterisk(pr),'" receive self presence event in channel("').concat(j,'"-"').concat(replaceRangeWithAsterisk(Y),'"), type is ').concat(W.eventType,", state is ").concat(W.stateChanged));else if(_i[0]!==K_SYNC_INTERNAL_KEY_PREFIX){var Jn;this.intervalMode.get(f)?(Jn=this.intervalInfos.get(f))===null||Jn===void 0||Jn.stateChanged.add(pr):xr===re-1&&this.pendingPresenceEvent.set(f,{type:"state-changed",value:W})}if(xr===re-1)return}}}catch(xr){this.logError("handlePresenceEvent error: %o",xr)}}),this._context=e,this.getRTMSession=d,this.requestChannelMemberList=I,this.on("presence-interval",(f,S)=>{var v,L,x,F,Y,j,W,re;const{channelType:ee,channelName:he}=getChannelDetailByName(f),ue={eventType:"INTERVAL",channelType:ee,channelName:he,publisher:"",stateChanged:{},interval:{join:{users:[],userCount:0},leave:{users:[],userCount:0},timeout:{users:[],userCount:0},userStateList:[]},snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)},{alreadyJoinedUsers:Ee,alreadyTimeoutUsers:_e}=this.intervalSnapshot.get(f);(v=this.intervalInfos.get(f))===null||v===void 0||v.timeout.forEach(Ve=>{var Ge;Ee.includes(Ve)&&((Ge=ue.interval)===null||Ge===void 0||Ge.timeout.users.push(Ve),ue.interval.timeout.userCount++)}),(L=this.intervalInfos.get(f))===null||L===void 0||L.left.forEach(Ve=>{var Ge;Ee.includes(Ve)&&((Ge=ue.interval)===null||Ge===void 0||Ge.leave.users.push(Ve),ue.interval.leave.userCount++)}),(x=this.intervalInfos.get(f))===null||x===void 0||x.joined.forEach(Ve=>{ue.interval.join.users.push(Ve),ue.interval.join.userCount++});const De=Ee.filter(Ve=>{var Ge,He;return!((Ge=this.intervalInfos.get(f))!==null&&Ge!==void 0&&Ge.left.has(Ve)||(He=this.intervalInfos.get(f))!==null&&He!==void 0&&He.timeout.has(Ve))}).concat([...(F=(Y=this.intervalInfos.get(f))===null||Y===void 0?void 0:Y.joined)!==null&&F!==void 0?F:new Set]),Fe=_e.filter(Ve=>{var Ge,He;return!((Ge=this.intervalInfos.get(f))!==null&&Ge!==void 0&&Ge.joined.has(Ve)||(He=this.intervalInfos.get(f))!==null&&He!==void 0&&He.left.has(Ve))}).concat([...(j=(W=this.intervalInfos.get(f))===null||W===void 0?void 0:W.timeout)!==null&&j!==void 0?j:new Set]);if((re=this.intervalInfos.get(f))===null||re===void 0||re.stateChanged.forEach(Ve=>{if(De.includes(Ve)){var Ge,He,At;(Ge=this.intervalInfos.get(f))===null||Ge===void 0||Ge.stateChanged.delete(Ve);const Bt=(He=(At=this.channelsUsersStates.get(f))===null||At===void 0?void 0:At.get(Ve))!==null&&He!==void 0?He:{};ue.interval.userStateList.push({userId:Ve,states:Bt,statesCount:Object.keys(Bt).length})}}),ue.interval){const{join:Ve,leave:Ge,timeout:He,userStateList:At}=ue.interval;(Ve.userCount>0||Ge.userCount>0||He.userCount>0||At.length>0)&&this.emit("presence",ue)}this.intervalSnapshot.set(f,{alreadyJoinedUsers:De,alreadyTimeoutUsers:Fe}),this.intervalInfos.set(f,resetIntervalInfo()),S&&this.timeoutUsersWithoutInterval.set(f,new Set(Fe))}),this._context.internalEmitter.on("presence-backoff",this._startAllBackoffEventsTimer.bind(this)),this._context.internalEmitter.on("GroupEnterNotice",this._onGroupEnter.bind(this)),this._context.internalEmitter.on("GroupLeaveNotice",this._onGroupLeave.bind(this)),this._context.internalEmitter.on("presence-user-joined",f=>{let{channelName:S,userId:v}=f;this._emitBackoffPresenceEvents("join",S,v)}),this._context.internalEmitter.on("presence-user-left",f=>{let{channelName:S,userId:v}=f;this._emitBackoffPresenceEvents("left",S,v)}),this._context.internalEmitter.on("connectedDatabase",()=>{this._decoupleChannels.forEach(f=>{var S;const v=Date.now();((S=f==null?void 0:f.createTs)!==null&&S!==void 0?S:v)-v<1e3*this._intervals4CreateColl[0]&&(f.forceCall=!0,f.retryCnt=0)})})}releaseChnPresence4Failed(){this.channelsUsersStates.clear(),this.userJoinEvents.clear(),this.userLeftEvents.clear(),this.timeoutInSnapshot.clear(),this.timeoutUsersWithoutInterval.clear(),this.intervalMode.clear(),this.intervalTimerId.forEach(e=>{e&&clearTimeout(e)}),this.intervalTimerId.clear(),this.intervalSnapshot.clear(),this.intervalInfos.clear(),this.clearBackOffChannels(),this.recoverPresenceTimer&&clearTimeout(this.recoverPresenceTimer),this.recoverPresenceTimer=null,this.pendingPresenceEvent.clear(),this._decoupleChannels.clear(),this._decoupleChannelPromises.clear()}releaseChnPresence(){this.releaseChnPresence4Failed()}clearBackOffChannels(){this.backoffEventsTimer.forEach(e=>{clearTimeout(e)}),this.backoffEventsTimer.clear(),this.backoffEventsMap.clear()}leave(e){const o=this.getRTMSession();o==null||o.leaveColl(e),this._cancelBackoffEventsTimer(e)}delChannelDoc(e){const o=this.getRTMSession();o==null||o.delChannelDoc(e),this._context.updateRealSubOrJoinOptions(e,"beQuiet",!0)}cacheAllChannelCrdtState(){this._context.disablePresence||this._context.getAllChannelNames().forEach(e=>{this._context.getChannelOptionsByKey(e,"beQuiet")||this._cacheState(e)})}async exceptionCallback(e,o){if(this._context.disablePresence)return;const{withPresence:d,beQuiet:I}=o,f=(await Promise.allSettled([d?this.unsubPresence(e,!1):this.unsubscribeSelfPresence(e,!1),I?Promise.resolve():this._cacheStateAndDelDoc(e)])).find(S=>S.status==="rejected");if(f)throw f.reason;this.leave(e),await this._join(e,d,!1),I||this._putChannelDocAndSetState(e),d&&this._subPresence(e)}unsubPresence(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const d=this._decoupleChannels.has(e),I=this.getRTMSession();if(!getParameter("DECOUPLE_SYNC")||!d){const f=I==null?void 0:I.getColl(e,!0,"unsubPresence");f==null||f.UnSubscribe(),I==null||I.sendTick()}this._clearIntervalById(this.intervalTimerId.get(e)),this._clearIntervalCacheOfChannel(e),this.recoverPresenceTimer&&clearTimeout(this.recoverPresenceTimer),this.recoverPresenceTimer=null,o&&this._getLocalStateCache().delete(e),this._context.updateRealSubOrJoinOptions(e,"withPresence",!1)}leaveRetryChannels(e){this.info("leaveRetryChannels: %o",e),e.forEach(o=>{this._decoupleChannels.delete(o),this._decoupleChannelPromises.delete(o)})}unsubscribeSelfPresence(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const d=this._decoupleChannels.has(e),I=this.getRTMSession();if(!getParameter("DECOUPLE_SYNC")||!d){const f=I==null?void 0:I.getColl(e,!0,"unsubPresence");f==null||f.UnSubscribe(),I==null||I.sendTick()}o&&this._getLocalStateCache().delete(e)}intervalCreateColl(){this._context.disablePresence||this._decoupleChannels.forEach((e,o)=>{const d=Date.now(),{createTs:I=d,retryCnt:f=0}=e;(e.forceCall||d-I>=this._getExpectedRetryTs(f)&&!e.creating)&&(this.info("intervalCreateColl, channel: %s, diff: %d, retryCnt: %d",o,d-I,f),this.joinPresenceColl(o,e,!1))})}async joinPresenceColl(e,o){var d;let I=!(arguments.length>2&&arguments[2]!==void 0)||arguments[2];const f=["withPresence","beQuiet","needCreateColl","needDelDoc","needSub","needPutDoc"],S=this._decoupleChannels.get(e);let v=(d=S==null?void 0:S.createTs)!==null&&d!==void 0?d:Date.now(),L=!1;if(S&&I){if(!f.some(he=>S[he]!==o[he]))return;L=!0,v=Date.now(),S.creating&&this.leave(e),this._decoupleChannels.set(e,_objectSpread2(_objectSpread2(_objectSpread2({},S),o),{},{createTs:v,retryCnt:0,creating:!0,forceCall:!1}))}else this._decoupleChannels.set(e,_objectSpread2(_objectSpread2({},o),{},{createTs:v,creating:!0,forceCall:!1}));this.info("joinPresenceColl: %s, customOperation: %s, optionsChanged: %s, withPresence: %s",e,I,L,o.withPresence);const{withPresence:x,beQuiet:F,reJoinCauseReconnect:Y=!1,needCreateColl:j}=o;try{if(j){const ee=this._join(e,x,Y);this._decoupleChannelPromises.set(e,ee),await ee,this._cancelBackoffEventsTimer(e)}this._context.updateRealSubOrJoinOptions(e,"withPresence",x),this.info("onCreateCollection: %s, needCreateColl: %s",e,j),this._onCreateCollection(e,o),this._context.updateRealSubOrJoinOptions(e,"beQuiet",F),this._decoupleChannels.delete(e)}catch(ee){if(!getParameter("DECOUPLE_SYNC"))throw this._decoupleChannels.delete(e),this.info("(%s) joinPresenceColl error, need to reset withPresence false and beQuiet true",e),ee;{var W;const he=this._decoupleChannels.get(e);var re;if(v!==(he==null?void 0:he.createTs))return void this.logError("outdated error, wont handle joinPresenceColl error: %s, retryCnt: %d, withPresence: %s, error: %o",e,(re=o.retryCnt)!==null&&re!==void 0?re:0,o.withPresence,ee);const ue=(W=he==null?void 0:he.retryCnt)!==null&&W!==void 0?W:0;this.logError("joinPresenceColl error: %s, retryCnt: %d, withPresence: %s, error: %o",e,ue,o.withPresence,ee),he!=null&&he.creating&&(this._decoupleChannels.set(e,_objectSpread2(_objectSpread2({},he),{},{createTs:v,creating:!1,retryCnt:ue+1})),he.needCreateColl&&this._handleCreateCollError(e))}}finally{this._decoupleChannelPromises.delete(e)}}_cacheState(e){try{this._getStateAndSetByLocal(e)}catch(o){this.logError("cacheState error: %o",o)}}_cacheStateAndDelDoc(e){this._cacheState(e),this.delChannelDoc(e)}_clearIntervalById(e){clearInterval(e)}_getIntervalSnapshot(e){var o,d;const I=[...(o=this.timeoutUsersWithoutInterval.get(e))!==null&&o!==void 0?o:new Set],f=[];return(d=this.channelsUsersStates.get(e))===null||d===void 0||d.forEach((S,v)=>{I.includes(v)||f.push(v)}),{alreadyJoinedUsers:f,alreadyTimeoutUsers:I}}_clearIntervalCacheOfChannel(e){this.timeoutInSnapshot.delete(e),this.intervalMode.delete(e),this.intervalTimerId.delete(e),this.intervalInfos.delete(e),this.timeoutUsersWithoutInterval.delete(e),this.intervalSnapshot.delete(e)}_emitPresenceSnapshot(e){this.timeoutInSnapshot.set(e,new Set);const o=this._getCollUsers(e,!0),d=new Map;this.log("presence snapshot: %o",o),o.forEach(v=>{let{userId:L,states:x}=v;d.set(L,x)}),this.channelsUsersStates.set(e,d);const{channelName:I,channelType:f}=getChannelDetailByName(e),S={eventType:"SNAPSHOT",channelType:f,channelName:I,publisher:"",stateChanged:{},interval:null,snapshot:o,timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",S)}_recoverPresence(e){this.backoffEventsMap.get(e)&&this._emitPresenceSnapshot(e),this._cancelBackoffEventsTimer(e)}async _join(e,o){let d=arguments.length>2&&arguments[2]!==void 0&&arguments[2];const I=Date.now();try{const f=d?"re-":"",S=e.includes(STREAM_CHANNEL_PREFIX),v=S?OperationName.join:OperationName.subscribe,L=this.getRTMSession();if(L==null||L.validateSyncConnected(v),(L==null?void 0:L.getColl(e))!==null)return void this.log("".concat(f).concat(v," channel(").concat(replaceRangeWithAsterisk(e),") already."));this.log("".concat(SYNC_RPC_START,": ").concat(f).concat(v," channel(").concat(replaceRangeWithAsterisk(e),")"));const x=Date.now();await timeoutPromise(L.createColl(e,o?["*"]:[this._context.uid],o?["*"]:[this._context.uid]),COMMON_REQUEST_TIMEOUT,v,S?RTMErrorCode.RTM_ERROR_CHANNEL_JOIN_FAILED:RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_TIMEOUT);const F=Date.now();this.log("".concat(SYNC_RPC_END,": ").concat(f).concat(v," channel(").concat(replaceRangeWithAsterisk(e),") succeed. cost: ").concat(F-x,"ms.")),this._context.updateRealSubOrJoinOptions(e,"withPresence",o),o||this._withoutPresenceSubSelf(e)}catch(f){throw this._context.updateRealSubOrJoinOptions(e,"withPresence",!1),this._context.updateRealSubOrJoinOptions(e,"beQuiet",!0),f}finally{if(!d){const{channelName:f,channelType:S}=getChannelDetailByName(e),v=this._context.incGetSeq();this._context.addReportEvents("ChannelPresenceSnapshotEvent",{channelName:f,channelType:ChannelTypeEnum[S],userId:this._context.uid,sid:this._context.sid,lts:Long$1.fromNumber(Date.now()),elapse:Long$1.fromNumber(Date.now()-I),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),reqId:v})}}}_onCreateCollection(e,o){const{needDelDoc:d,needPutDoc:I=!1,needSub:f=!1,reJoinCauseReconnect:S=!1}=o;d&&this._cacheStateAndDelDoc(e),I&&this._putChannelDocAndSetState(e,S),f&&this._subPresence(e)}_withoutPresenceSubSelf(e){const o=this.getRTMSession(),d=o==null?void 0:o.getColl(e,!0,"withoutPresenceSubSelf"),I=d==null?void 0:d.Subscribe();I==null||I.addListener("document-events",f=>{const S=f.length;for(let v=0;v{const F=L.Get(),Y=F[K_PRESENCE_EXPIRED];var j;this._delKeyExpired(F),Y&&((j=this.timeoutInSnapshot.get(e))===null||j===void 0||j.add(x)),Y||v.push({userId:x,states:o?F:{},statesCount:o?Object.keys(F).length:0})}),v}async _emitBackoffPresenceEvents(e,o,d){if(this.backoffEventsMap.has(o)&&this._context.getChannelOptionsByKey(o,"withPresence")){switch(e){case"join":this._emitUserJoinUseReg(o,d);break;case"left":this._emitUserLeftUseReg(o,d);break;case"snapshot":await this._emitSnapshotUseReg(o)}this.backoffEventsMap.set(o,!0)}}_emitUserJoinUseReg(e,o){const{channelName:d,channelType:I}=getChannelDetailByName(e),f={eventType:"REMOTE_JOIN",channelType:I,channelName:d,publisher:o,stateChanged:{},interval:null,snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",f)}_emitUserLeftUseReg(e,o){const{channelName:d,channelType:I}=getChannelDetailByName(e),f={eventType:"REMOTE_LEAVE",channelType:I,channelName:d,publisher:o,stateChanged:{},interval:null,snapshot:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",f)}async _emitSnapshotUseReg(e){try{const o={eventType:"SNAPSHOT",channelType:"MESSAGE",channelName:e,publisher:"",stateChanged:{},interval:null,snapshot:(await this.requestChannelMemberList(e)).memberInfos.map(d=>{var I;return{userId:(I=d.account)!==null&&I!==void 0?I:"",states:{},statesCount:0}}),timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("presence",o)}catch{}}_handleCreateCollError(e){[...this.backoffEventsMap.keys()].filter(o=>o!==e).length>0?this._changeSourceToReg(e):this._startBackoffEventsTimer(e)}_changeSourceToReg(e){var o;if(this.backoffEventsMap.has(e))return;this.log("".concat(e," change source to reg")),this.backoffEventsMap.set(e,!1);const{channelType:d}=getChannelDetailByName(e);d==="MESSAGE"&&((o=this.getRTMSession())===null||o===void 0?void 0:o.getColl(e))===null&&this._emitBackoffPresenceEvents("snapshot",e)}_getPresenceBackoffEventInterval(){const e=getParameter("PRESENCE_BACKOFF_EVENT_INTERVAL");return 1e3*Number(e??0)||PRESENCE_BACKOFF_EVENT_INTERVAL}_startBackoffEventsTimer(e){if(this.backoffEventsTimer.has(e)||this.backoffEventsMap.has(e)||!this._context.getChannelOptionsByKey(e,"withPresence"))return;this.log("start backoff events timer for ".concat(e));const o=setTimeout(()=>{this._changeSourceToReg(e)},this._getPresenceBackoffEventInterval());this.backoffEventsTimer.set(e,o)}_startAllBackoffEventsTimer(){this.log("start backoff all channels timer"),this._context.getAllChannelNames().forEach(e=>{this._startBackoffEventsTimer(e)})}_cancelBackoffEventsTimer(e){(this.backoffEventsTimer.has(e)||this.backoffEventsMap.has(e))&&(this.log("".concat(e," change source to sync")),this.backoffEventsTimer.has(e)&&(this.log("cancel backoff events timer for ".concat(e)),clearTimeout(this.backoffEventsTimer.get(e)),this.backoffEventsTimer.delete(e)),this.backoffEventsMap.delete(e))}_getExpectedRetryTs(e){let o=0;const d=this._intervals4CreateColl.length;if(e>d)return 1e3*(this._intervals4CreateColl.reduce((I,f)=>I+f,0)+(e-d)*this._intervals4CreateColl[d-1]);for(let I=0;I{d.set(I,o[I])}),this==null||this._getLocalStateCache().set(e,d)}_putChannelDocAndSetState(e){var o,d;let I=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];const f=this.getRTMSession(),S=f==null?void 0:f.getColl(e,!0,"putChannelDocAndSetState"),v={};((o=this._getLocalStateCache().get(e))!==null&&o!==void 0?o:new Map).forEach((j,W)=>{v[W]=j}),this.log("local states: %o, reJoinCauseReconnect: %s",v,I);const L=S==null?void 0:S.Doc(this._context.uid),x=!!L,F=(d=L==null?void 0:L.Get())!==null&&d!==void 0?d:{};this.log("remote doc exist: ".concat(x,", remote state: %o"),F),x&&F[K_PRESENCE_EXPIRED]&&(S==null||S.DelDoc(this._context.uid)),x&&!F[K_PRESENCE_EXPIRED]||(S==null||S.PutDoc(this._context.uid),this.log("Put channel(".concat(replaceRangeWithAsterisk(e),") document succeed.")));const Y=S==null?void 0:S.Doc(this._context.uid);if(f==null||f.setAutoKeepalive(e),f==null||f.sendTick(),I||this._getLocalStateCache().has(e)){if(this.log("update user state in channel(".concat(replaceRangeWithAsterisk(e),") local cache.")),!x||F[K_PRESENCE_EXPIRED])this.log("remote doc not exist or expired, directly set"),Y==null||Y.Set(v);else{const j=Object.keys(F).filter(re=>!v.hasOwnProperty(re)&&re!==K_PRESENCE_EXPIRED);j.length>0&&(Y==null||Y.Del(j));const W=Object.keys(v).filter(re=>!F.hasOwnProperty(re)||F[re]!==v[re]);W.length>0&&(Y==null||Y.Set(v)),this.log("diff state: %o",{addOrChangedKeys:W,needDelKeys:j})}f==null||f.sendTick()}else this.log("first join presence and without local state");this._context.updateRealSubOrJoinOptions(e,"beQuiet",!1)}}var _exec,_window;const chromeVersion=(_exec=/Chrome\/([0-9.]+)/.exec((_window=window)===null||_window===void 0||(_window=_window.navigator)===null||_window===void 0?void 0:_window.userAgent))===null||_exec===void 0||(_exec=_exec[1])===null||_exec===void 0?void 0:_exec.split(".")[0];if(chromeVersion&&parseInt(chromeVersion,10)>=88&&!isMobile$1()){var _hiddenCanvas$getCont;const n=document.createElement("video"),e=document.createElement("canvas");n.setAttribute("style","display:none"),n.setAttribute("muted",""),n.muted=!0,n.setAttribute("autoplay",""),n.autoplay=!0,n.setAttribute("playsinline",""),e.setAttribute("style","display:none"),e.setAttribute("width","1"),e.setAttribute("height","1"),(_hiddenCanvas$getCont=e.getContext("2d"))===null||_hiddenCanvas$getCont===void 0||_hiddenCanvas$getCont.fillRect(0,0,1,1),n.srcObject=e==null?void 0:e.captureStream()}class RTMImpl extends EventBase{constructor(e,o,d){super(e,"RTMImpl",!0),_defineProperty$1(this,"presence",void 0),_defineProperty$1(this,"storage",void 0),_defineProperty$1(this,"lock",void 0),_defineProperty$1(this,"history",void 0),_defineProperty$1(this,"_context",void 0),_defineProperty$1(this,"_processId",void 0),_defineProperty$1(this,"_rtmSession",void 0),_defineProperty$1(this,"_channelPresence",void 0),_defineProperty$1(this,"_customConfig",void 0),_defineProperty$1(this,"_suspendedTimer",null),_defineProperty$1(this,"_createCollInterval",null),_defineProperty$1(this,"_streamChannelList",[]),_defineProperty$1(this,"_stChannelInstances",new Map),_defineProperty$1(this,"_lastLoginTime",void 0),_defineProperty$1(this,"_connectionState","DISCONNECTED"),_defineProperty$1(this,"_linkState","IDLE"),_defineProperty$1(this,"_suspended",!1),_defineProperty$1(this,"_apiRateLimit",new ApiRateLimiter),_defineProperty$1(this,"_lockSnapshotLastTime",new Map),_defineProperty$1(this,"_lockEventInfos",new Map),_defineProperty$1(this,"_notifyLockReSub",new Subject),_defineProperty$1(this,"_notifyChannelMetaReSub",new Subject),_defineProperty$1(this,"_notifyChannelReSub",new Subject),_defineProperty$1(this,"_rtmSubscriptions",{lockSubs:new Map,metadataSubs:new Map,channels:new Map}),_defineProperty$1(this,"_msgManager",void 0),_defineProperty$1(this,"_reconnectTimeoutTimer",null),_defineProperty$1(this,"_tokenPrivilegeWillExpireHandler",I=>{this.emit("tokenPrivilegeWillExpire",""),this.emit("token",{eventType:"WILL_EXPIRE",reason:TokenEventReason.WILL_EXPIRE,affectedResources:I,timestamp:getUTCTimeBaseREG(this._context.offsetTime)})}),_defineProperty$1(this,"_userDropHandler",async I=>{if(this._connectionState==="FAILED")return;let f="INTERRUPTED",S=LinkStateChangeReasonDescription.UNKNOWN,v="UNKNOWN";switch(I){case RegServerErrorCode.kTimestampExpired:this.logError("Server banned because of token is expired, ticket expired."),f="TOKEN_EXPIRED",S=LinkStateChangeReasonDescription.TOKEN_EXPIRED,v="TOKEN_EXPIRED";break;case RegServerErrorCode.kRejoined:this.logError("Kicked off by remote session"),f="SAME_UID_LOGIN",S=LinkStateChangeReasonDescription.SAME_UID_LOGIN,v="SAME_UID_LOGIN",this._context.instanceId=null;break;case RegServerErrorCode.kJoinTooFrequently:this.logError("login too frequent"),f="REJECTED_BY_SERVER",S=LinkStateChangeReasonDescription.LOGIN_TOO_FREQUENT,v="LOGIN_TOO_FREQUENT",this._context.instanceId=null;break;case RegServerErrorCode.kUserBannedByAuth:this.logError("Kicked off by authorization"),f="KICKED_OUT_BY_SERVER",S=LinkStateChangeReasonDescription.KICKED_OUT_BY_SERVER,v="KICKED_OUT_BY_SERVER",this._context.instanceId=null;break;default:this.logError("User kicked off for unknown code: ".concat(I))}this._updateLinkState("FAILED","SERVER_REJECT",this._getUsedMessageChannelIds(),v,S),this._onConnectionStateChanged("FAILED",f)}),_defineProperty$1(this,"_onChannelLockEvent",I=>{const{channelName:f,channelType:S}=I,v=getChannelNameByType(f,S);this._context.getChannelOptionsByKey(v,"withLock")&&this.emit("lock",I)}),this._context=d,this._processId=o,this.setMaxListeners(512),window.addEventListener("offline",()=>{this.warn("network-state-change: ONLINE -> OFFLINE")}),window.addEventListener("online",()=>{var I;this.log("network-state-change: OFFLINE -> ONLINE"),(I=this._rtmSession)===null||I===void 0||I.notifyNetworkChange(!0)}),this._addEventsFromContext(),this.lock=new Lock(e,this._context,()=>this._rtmSession,this._validateRtmConnection.bind(this)),this.presence=new Presence(e,this._context,()=>this._rtmSession,()=>this._linkState,()=>{var I;return(I=this._channelPresence)===null||I===void 0?void 0:I.backoffEventsMap},this._requestChannelMemberList.bind(this)),this.storage=new RStorage(e,this._context,()=>this._rtmSession,this._validateRtmConnection.bind(this),this._emitStorageEvent.bind(this),this.getLockRevision.bind(this)),this.history=new History(e,this._context,()=>this._rtmSession,this._validateRtmConnection.bind(this)),this._channelPresence=new ChannelPresence(this._context,e,()=>this._rtmSession,this._requestChannelMemberList.bind(this)),this._channelPresence.on("presence",I=>{this.emit("presence",I)}),this.log("rtm use private config: %s, enable cloud proxy: %s",this._context.enablePrivate,this._context.rtmConfig.cloudProxy),this._context.enablePrivate||(this._customConfig=new CustomConfig(this._context.appId)),this._msgManager=new MsgManager(e,this._context,this._sendMessageToRetry.bind(this),this._sendMessageAck.bind(this),this._emitMessageEvent.bind(this))}getLockRevision(e,o,d){var I;if(!o)return;validateKey(o,d,"metadata-lock");const f=(I=this.lock.lockImpl.localAcquiredLocks.get(e))===null||I===void 0?void 0:I.get(o);if(f==null||!f.revision){const{code:S,reason:v}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_LOCK_NOT_ACQUIRED);throw new RtmUnavailableError(d,[v],S)}return f==null?void 0:f.revision}async login(e){var o,d;this._linkState==="IDLE"&&this._clearEffectsByLogout();const I=this._linkState==="FAILED";I&&this._channelPresence.cacheAllChannelCrdtState();const f=Array.from((o=this._context.getAllChannelNames())!==null&&o!==void 0?o:[]),S=[],v=OperationName.login;let L=e==null?void 0:e.token;if(this._linkState==="CONNECTING"){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_DUPLICATE_OPERATION);throw new RtmUnavailableError(v,[ee],re)}const x=this._context.instanceId===null,F=(d=this._context.instanceId)!==null&&d!==void 0?d:getRandomUInt64();this._context.instanceId=F,this._context.sid=getSid(F),this._linkState==="IDLE"?this._updateLinkState("CONNECTING","LOGIN",[],"LOGIN",LinkStateChangeReasonDescription.LOGIN):this._linkState==="FAILED"&&this._updateLinkState("CONNECTING","LOGIN",[],"RELOGIN",LinkStateChangeReasonDescription.RELOGIN);const Y={timestamp:0};if(this._linkState==="CONNECTED")return Y;try{if(this._context.rtmConfig.privateConfig&&!this._context.rtmConfig.privateConfig.serviceType.includes("MESSAGE")){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(v,[ee],re)}if(this._apiRateLimit.canMakeOperation("login"),L&&validateToken(L,this._context.appId,v,re=>{this.warn(re)}),validateKey(this._context.uid,v,"uid"),(e==null?void 0:e.token)===this._context.appId&&(L=void 0),!isNil$1(L)&&typeof L!="string"){const{code:re,reason:ee}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmInvalidArgumentError(v,[ee],re)}this._context.enablePrivate&&areaConfig&&throwInvalidPrivateConfig(v," Use private config, not permit setArea")}catch(re){const{errorCode:ee}=re;throw this._handleLoginFailedState(ee),re}this._context.token=e==null?void 0:e.token,this.info("RTM Client logging in as ".concat(replaceRangeWithAsterisk(this._context.uid))),x&&this._context.sendReport("Session",{appId:this._context.appId,did:navigator.userAgent,elapse:getElapse(this._context.startTime),index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},installId:this._processId,lts:Long$1.fromNumber(Date.now()),os:WEB_PLATFORM_TYPE,sid:getSid(F),token:L||"",userId:this._context.uid,ver:VERSION,buildno:100*VERSION_NO+SUBVERSION,subVersion:SUBVERSION,version:VERSION_NO});const j=Date.now();try{var W;let re="first";["SUSPENDED","DISCONNECTED"].includes(this._linkState)&&(this.log("custom reLogin, need retry right now"),this._updateLinkState("CONNECTING","LOGIN",[],"RELOGIN",LinkStateChangeReasonDescription.RELOGIN),re=isBusy?"logging":"reconnecting"),changeBusyStatus(!0),await this._genLoginImpl(re),this._onConnectionStateChanged("CONNECTED","LOGIN_SUCCESS"),this._context.addReportEvents("LoginResult",{lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),sid:this._context.sid,code:(W=this._rtmSession)!==null&&W!==void 0&&W.isSyncEstablished()?0:RTMErrorCode.RTM_ERROR_PRESENCE_NOT_CONNECTED,elapse:getElapse(this._context.startTime),userId:this._context.uid}),this._updateLinkState("CONNECTED","LOGIN",[],"LOGIN_SUCCESS",LinkStateChangeReasonDescription.LOGIN_SUCCESS);try{I&&(await Promise.allSettled([...f==null?void 0:f.map(he=>{var ue,Ee;const{channelName:_e,channelType:De}=getChannelDetailByName(he),Fe=this._context.getChannelLastCustomSubOrJoinOptions(he);let Ve="";if(Fe&&De==="MESSAGE")Ve=_e;else{if(!Fe||De!=="STREAM")return Promise.resolve();Ve=getChannelNameByType(_e,"STREAM")}if(this._context.notInChannel(Ve))return Promise.resolve();const Ge={withPresence:(ue=Fe.withPresence)!==null&&ue!==void 0&&ue,beQuiet:(Ee=Fe.beQuiet)!==null&&Ee!==void 0&&Ee,coll:{create:!(Fe.beQuiet&&!Fe.withPresence),destroy:!1,sub:Fe.withPresence,unsubSelf:!1,unsub:!1},doc:{put:!(Fe!=null&&Fe.beQuiet),del:!1}};return this._attend(Ve,Ge,!0,!1)})])).forEach((he,ue)=>{ue>=f.length||he.status==="rejected"&&isRtmError(he.reason)&&S.push(f[ue])})}catch(ee){this.logError("restore failed ".concat(JSON.stringify(ee)))}return Y}catch(re){if(isRtmError(re)){const{errorCode:ee}=re;if(ee===RTMErrorCode.RTM_ERROR_LOGIN_CANCELED)throw re;this._context.addReportEvents("Link",{ackedServerIp:"",destServerIp:"",ec:re.code||1,sc:re.serverCode,elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),responseTime:Date.now()-j,sid:getSid(F),userId:this._context.uid,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),linktype:4,linkflag:Long$1.fromNumber(0),linkenv:0}),this._handleLoginFailedState(ee)}throw re}finally{this._context.socketUseProxy=!1,changeBusyStatus(!1),this._context.socketUseProxy&&this.log("port fallback to 443"),this._clearLinkTimers()}}async logout(){try{var e;const d={timestamp:0};if(this._connectionState==="DISCONNECTED"&&this._linkState==="IDLE")return this.warn("Already in logout state: ".concat(this._connectionState)),d;this._rtmSession&&getParameter("VID").get(this._context.appId)&&this._context.addReportEvents("Logout",{elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),sid:getSid((e=this._context.instanceId)!==null&&e!==void 0?e:Long$1.fromNumber(0)),userId:this._context.uid,version:VERSION_NO,subVersion:SUBVERSION,connectionsequence:Long$1.fromNumber(0),linktype:4,linkflag:Long$1.fromNumber(0),linkenv:0});let I="logout";if(this._connectionState==="FAILED"||this._linkState==="FAILED")I="failed";else if(this._connectionState==="RECONNECTING"||["DISCONNECTED","SUSPENDED","CONNECTING"].includes(this._linkState)){var o;this.warn("logout: cancel login"),(o=this._rtmSession)===null||o===void 0||o.cancelLogin(),this.info('Reset connection state from "RECONNECTING" to "DISCONNECTED"'),I="connecting"}else I="logout";return await this._genLogoutImpl(I),d}finally{this._updateLinkState("IDLE","LOGOUT",this._getUsedMessageChannelIds(),"LOGOUT",LinkStateChangeReasonDescription.LOGOUT),this._clearEffectsByLogout()}}_handlePermissionRevoked(e){e.forEach(o=>{this._absent(o),this.storage.storageImpl.deleteChannelMetaEventInfos(o),this._lockSnapshotLastTime.delete(o),this._context.deleteChannelOptionsCache(o),this._channelPresence.leaveRetryChannels([o]),this._channelPresence.clearBackOffChannels()}),this._clearChannel(e)}async renewToken(e,o){var d;const I=OperationName.renewToken;this._apiRateLimit.canMakeOperation("renewToken"),this._validateRtmConnection(I,!1),validateToken(e,this._context.appId,I,Y=>{this.warn(Y)});const f={timestamp:0};this._context.addReportEvents("RenewToken",{sid:this._context.sid,userId:this._context.uid,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),cname:(d=o==null?void 0:o.channelName)!==null&&d!==void 0?d:"",token:e});let S=0;try{if(o!=null&&o.channelName){if(validateKey(o.channelName,I,"channel"),this._streamChannelList.some(j=>j===o.channelName)||this.warn("renewToken: channel(".concat(o.channelName,") not join.")),!this._stChannelInstances.has(o.channelName)){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_NAME);throw new RtmInvalidArgumentError(I,[W],j)}const Y=this._stChannelInstances.get(o.channelName);return await(Y==null?void 0:Y.renewStreamChannelToken(e)),f}{if(typeof e!="string"||e.length===0){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmInvalidArgumentError(I,[W],j)}if(!["CONNECTED","RECONNECTING"].includes(this._connectionState)||this._linkState!=="CONNECTED"){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(I,[W],j)}if(this._validateRTMSessionExist(I),e===this._context.token)return{timestamp:0};try{var v=this._context.token;this._context.token=e,this._rtmSession.clearEdges4RenewToken();var{ticket:L}=await merge(this._rtmSession.genApEdgeInfo$(!0),this._rtmSession.endLogin$.pipe(mapTo(EMPTY))).pipe(retryWhen(j=>j.pipe(tap(W=>{if(isRtmError(W))throw W}),delay(2500),take(4))),take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(j=>throwError(j))).toPromise()}catch(j){if(this._rtmSession.recoverEdges4RenewToken(),this._context.token=v,isTimeout(j)){const{code:W,reason:re}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_RENEW_TOKEN_TIMEOUT);throw new RtmTimeoutError(I,[re],W)}{const{code:W,reason:re}=getErrorInfoByCode(j.code);throw new RtmUnauthenticatedError(I,[re],W)}}const Y=await this._requestUpdateEdgeTicket2(L).toPromise();if(Y.code!==0){const{code:j,reason:W}=getErrorInfoByCode(Y.code);throw new RtmUnavailableError(I,[W],j)}var x;(x=this._rtmSession)===null||x===void 0||x.updateRegTicket(L);try{const j={messageChannels:JSON.parse(Y.revoked).messageChannels.map(W=>{var re;return(re=Object.keys(W)[0])!==null&&re!==void 0?re:""})};Object.values(j).some(W=>W.length>0)&&(this._handlePermissionRevoked(Object.values(j).flat()),this.emit("token",{eventType:"READ_PERMISSION_REVOKED",reason:TokenEventReason.READ_PERMISSION_REVOKED,affectedResources:j,timestamp:getUTCTimeBaseREG(this._context.offsetTime)}))}catch(j){this.logError("parse permission revoked resources failed, error: %o",j)}return this._updateSyncTicketByRenewToken(L),f}}catch(Y){const{serverCode:j,errorCode:W}=Y;throw S=j??W,this._context.token=v,Y}finally{var F;this._context.addReportEvents("RenewTokenRes",{lts:Long$1.fromNumber(Date.now()),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),sid:this._context.sid,userId:this._context.uid,elapse:getElapse(this._context.startTime),cname:(F=o==null?void 0:o.channelName)!==null&&F!==void 0?F:"",token:e,apErrCode:S,regErrCode:S})}}async publish(e,o,d){const I=OperationName.publish;if(this._apiRateLimit.canMakeOperation("publish"),d!=null&&d.channelType&&(d==null?void 0:d.channelType)!=="USER"&&(d==null?void 0:d.channelType)!=="MESSAGE"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_CHANNEL_TYPE);throw new RtmInvalidArgumentError(I,[x],L)}if(this._validateRtmConnection(I),validateKey(e,I,"channel"),validateMessageSize(o,I),d!=null&&d.customType&&validateCustomType(d==null?void 0:d.customType,I),d!=null&&d.storeInHistory&&this._context.consoleConfig["history.enabled"]!=="true"){const{code:L,reason:x}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_HISTORY_NOT_AVAILABLE);throw new RtmInvalidArgumentError(I,[x],L)}const f={timestamp:0,channelName:e},S=o instanceof Uint8Array?{rawMessage:o,messageType:"RAW"}:{text:o,messageType:"TEXT"},v=(d==null?void 0:d.channelType)==="USER";validMessage(S,RTMErrorCode.RTM_ERROR_CHANNEL_INVALID_MESSAGE);try{await this._msgManager.commonSendMessage({message:S,peerId:e,diff:0,customType:d==null?void 0:d.customType,storeInHistory:d==null?void 0:d.storeInHistory,toPeer:v})}catch(L){if(isTimeout(L)){const{code:Y,reason:j}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_TIMEOUT);throw new RtmTimeoutError(I,[j],Y)}if(isRtmError(L))throw L;const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_MESSAGE_FAILED);throw new RtmUnknownError(I,[F],x)}return f}async subscribe(e,o){var d;const I=OperationName.subscribe;this._apiRateLimit.canMakeOperation("subscribe"),this._validateRtmConnection(I),this._validateRTMSessionExist(I),validateKey(e,I,"channel");const f=this._context.notInChannel(e),S=this._getUsedMessageChannelIds(),v=(d=getParameter("MESSAGE_CHANNEL_COUNT"))!==null&&d!==void 0?d:MAX_JOINED_CHANNELS;if(f&&(this._context.getAllChannelNames().length>=v||S.length>=v)){const{code:Ee,reason:_e}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_INSTANCE_EXCEED_LIMITATION);throw new RtmLimitExceededError(I,[_e],Ee)}this._validateJoinOptions(o,I);const L=handleSubOptionsAsDefault(o),x={timestamp:0,channelName:e},F=this._context.getSubOrJoinActions(e,L),{message:Y}=F,{currentResolve:j}=await this._context.operationControl.awaitPromise(OperationName.subscribe+e),W=this._rtmSession,re=getRandomInt(0,Number.MAX_SAFE_INTEGER),ee=this._context.getChannelLastRealSubOrJoinOptions(e);try{if(Y.sub)try{await this._subMessage(e,I)}catch(De){throw this._context.internalEmitter.emit("channelLeft",e),this._context.isInChannel(e)&&this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),De}this._context.setLastCustomSubOrJoinOptions(e,L);const{code:Ee,reason:_e}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);try{const De=(await Promise.allSettled([Y.unsub?this._unsubMessage(e):Promise.resolve(),this._updateOptionsReJoinOrSub(e,F)])).find(Fe=>Fe.status==="rejected");if(De)throw De.reason}catch(De){throw isRtmError(De)?De:new RtmUnknownError(I,[_e+De],Ee)}}catch(Ee){j(void 0);const{errorCode:_e,serverCode:De}=Ee;var he;throw W&&this._context.addReportEvents("ChnJoinRes",{cname:e,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:_e,sid:getSid((he=this._context.instanceId)!==null&&he!==void 0?he:Long$1.fromNumber(0)),serverErrCode:De??_e,userId:this._context.uid,seq:Long$1.fromNumber(re)}),Ee}finally{this._context.reportChnJoin(e,ee,L,re)}var ue;return W&&this._context.addReportEvents("ChnJoinRes",{cname:e,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:0,sid:getSid((ue=this._context.instanceId)!==null&&ue!==void 0?ue:Long$1.fromNumber(0)),serverErrCode:0,userId:this._context.uid,seq:Long$1.fromNumber(re)}),j(void 0),x}async unsubscribe(e){const o=OperationName.unsubscribe;validateKey(e,o,"channel");const d={timestamp:0,channelName:e};if(this._linkState==="IDLE"||(this._validateRtmConnection(o,!1),this._validateRTMSessionExist(o),this._context.notInChannel(e)))return d;try{this._reportChannelLeave(e,0);const I=await Promise.allSettled([this._unsubMessage(e),this._unsubLockAMeta(e),this._absent(e)]);this._context.deleteChannelOptionsCache(e);const f=I.find(S=>S.status==="rejected");if(f)throw f.reason}catch(I){let f;const S=RTMErrorCode.RTM_ERROR_CHANNEL_LEAVE_FAILED;if(this.logError(I),isRtmError(I))(I==null?void 0:I.code)===void 0&&(I.code=RTMErrorCode.RTM_ERROR_CHANNEL_LEAVE_FAILED),f=I;else{const{code:v,reason:L}=getErrorInfoByCode(S);f=new RtmUnknownError(o,[L],v)}throw f}return d}createStreamChannel(e){const o=OperationName.createStreamChannel;if(this._context.rtmConfig.privateConfig&&!this._context.rtmConfig.privateConfig.serviceType.includes("STREAM")){const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(o,[S],f)}validateKey(e,o,"channel");const d=this._stChannelInstances.get(e);if(d)return this.log("channel already exists ".concat(replaceRangeWithAsterisk(e))),d;const I=new StreamChannel(this._context,this.logger,{channelName:e,appId:this._context.appId,userId:this._context.rtmConfig.useStringUserId===!1?parseInt(this._context.uid):this._context.uid},this.emit,()=>this._streamChannelList,this._validateRtmConnection.bind(this),()=>this._rtmSession,this._updateOptionsReJoinOrSub.bind(this),this._unsubLockAMeta.bind(this),this._absent.bind(this));return this._stChannelInstances.set(e,I),I}addEventListener(e,o){this.on(e,o)}removeEventListener(e,o){this.off(e,o)}async _updateOptionsReJoinOrSub(e,o){const{lock:d,metadata:I,presence:f}=o,S=getParameter("STORAGE_CHANNEL_SUB_ENABLED"),v=I.sub&&(S!==void 0?String(S):this._context.consoleConfig["storage.channel_subscribe_enabled"])==="true";try{const L=(await Promise.allSettled([v?this._subMetadata(e):void 0,I.unsub?this._unsubMetadata(e):Promise.resolve(),d.sub?this._subLock(e):void 0,d.unsub?this._unsubLock(e):Promise.resolve(),this._attend(e,f)])).find(x=>x.status==="rejected");if(L)throw L.reason}catch(L){throw L}}_sendRtmBasePacket(e,o,d,I){var f;I!==void 0?this._sendRtmBasePacketUseOneEnv(e,I,o,d):(f=this._rtmSession)===null||f===void 0||f.sendOperationPacket(e,o,d)}_sendRtmBasePacketUseOneEnv(e,o,d,I){var f;(f=this._rtmSession)===null||f===void 0||f.sendOperationPacketUseOneEnv(e,o,d,I)}_onOperationPacket(e){return this._rtmSession.onOperationPacket(e)}async _internalLogoutHandler(){let e=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0],o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];try{await this._logoutVosWeb(),await this._logoutSync(o)}catch(d){throw this.logError("internalLogoutHandler error: ".concat(JSON.stringify(d))),d}finally{e&&await this._logoutRegistrar(),this._context.forceReportEvents()}}async _logoutVosWeb(){await Promise.allSettled([...this._stChannelInstances.values()].map(e=>{e._streamChannelImpl.leaveVosWeb()}))}async _requestSubscribeChannelMetadata(e){const o=OperationName.subscribe;this._context.internalEmitter.emit("unsubChannelMetadata",e);const d=fromEvent(this._context.internalEmitter,"unsubChannelMetadata").pipe(filter(L=>e===L),take(1)),I=this._context.incGetSeq(),f=Date.now(),S=this._notifyChannelMetaReSub.pipe(filter(L=>(L==null?void 0:L.prefixChannelName)===e||(L==null?void 0:L.allReSub)===!0),switchMap(L=>{const x=I;return this._sendRtmBasePacket(o,"StateSubscribe",{sequence:x,target:e,subTarget:"",flags:new Long$1(1,0,!0)},L.env),this._onOperationPacket("StateSubscribeResult").pipe(first(F=>{let{sequence:Y}=F;return x.eq(Y)}),tap(F=>{let{code:Y}=F;const{code:j}=convertServerCodeToSdkCodeForSub(Y);this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:new Long$1(1,0,!0),code:j,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid}),j!==RTMErrorCode.RTM_ERROR_OK?j===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED?this._handleNoPrivilege(e,"metadata"):(this._context.updateRealSubOrJoinOptions(e,"withMetadata",!1),this.warn("Subscribe channel metadata failure. The response code from the RTM service is ".concat(Y))):this._context.updateRealSubOrJoinOptions(e,"withMetadata",!0)}),timeout(COMMON_REQUEST_TIMEOUT),catchError(F=>F instanceof TimeoutError?(this._context.updateRealSubOrJoinOptions(e,"withMetadata",!1),EMPTY):throwError(F)))}),takeUntil(d),share()),v=()=>{this._rtmSubscriptions.metadataSubs.delete(e)};this._rtmSubscriptions.metadataSubs.set(e,S.subscribe({error:v,complete:v})),this._notifyChannelMetaReSub.next({env:void 0,prefixChannelName:e}),await S.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(L=>(L instanceof TimeoutError&&(this.warn("subscribe channel metadata timeout"),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(f),replyts:Long$1.fromNumber(Date.now()),eventtype:"Subscribe",sdktype:4,flags:new Long$1(1,0,!0),code:RTMErrorCode.RTM_ERROR_STORAGE_OPERATION_TIMEOUT,seq:I,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid})),throwError(L)))).toPromise()}async _requestSubscribeLock(e){const o=OperationName.subscribe;this._context.internalEmitter.emit("unsubChannelLock",e);const d=fromEvent(this._context.internalEmitter,"unsubChannelLock").pipe(filter(v=>e===v),take(1),tap(v=>{this._lockSnapshotLastTime.delete(v)})),I=this._context.incGetSeq(),f=this._notifyLockReSub.pipe(filter(v=>(v==null?void 0:v.prefixChannelName)===e||(v==null?void 0:v.allReSub)===!0),switchMap(v=>{const L=I;return this._sendRtmBasePacket(o,"StateLockSubscribe",{sequence:L,target:e,flags:new Long$1(1048577,0,!0)},v.env),this._onOperationPacket("StateLockSubscribeResult").pipe(first(x=>{let{sequence:F}=x;return L.eq(F)}),tap(x=>{let{code:F}=x;const{code:Y}=convertServerCodeToSdkCodeForSub(F);Y!==RTMErrorCode.RTM_ERROR_OK?Y===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED?this._handleNoPrivilege(e,"lock"):(this._context.updateRealSubOrJoinOptions(e,"withLock",!1),this.warn("Subscribe lock failure. The response code from the RTM service is ".concat(F))):this._context.updateRealSubOrJoinOptions(e,"withLock",!0)}),timeout(COMMON_REQUEST_TIMEOUT),catchError(x=>x instanceof TimeoutError?(this._context.updateRealSubOrJoinOptions(e,"withLock",!1),EMPTY):throwError(x)))}),takeUntil(d),share()),S=()=>{this._rtmSubscriptions.lockSubs.delete(e)};this._rtmSubscriptions.lockSubs.set(e,f.subscribe({error:S,complete:S})),this._notifyLockReSub.next({env:void 0,prefixChannelName:e}),await f.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(v=>(v instanceof TimeoutError&&this.warn("subscribe channel lock timeout"),throwError(v)))).toPromise()}_unsubLockAndMeta4MessageChn(){this._context.getAllChannelNames().forEach(e=>{const{channelType:o}=getChannelDetailByName(e);o==="MESSAGE"&&(this._unsubLockAMeta(e),this._unsubMessage(e))}),this.storage.storageImpl.unsubAllUserMetadata()}async _logoutRegistrar(){const e=this._hasLock();return this._unsubLockAndMeta4MessageChn(),await this._rtmSession.logoutRegistrar(e)}async _attend(e,o){let d=arguments.length>2&&arguments[2]!==void 0&&arguments[2],I=!(arguments.length>3&&arguments[3]!==void 0)||arguments[3];if(this._context.disablePresence)return;const{withPresence:f,coll:S,doc:v,beQuiet:L}=o;S.unsubSelf&&this._channelPresence.unsubscribeSelfPresence(e,!1),S.unsub&&this._channelPresence.unsubPresence(e,!1),S.destroy&&(v.del&&this._channelPresence.delChannelDoc(e),this._channelPresence.leave(e)),await this._channelPresence.joinPresenceColl(e,{withPresence:f,beQuiet:L,needCreateColl:S.create,needDelDoc:v.del,needPutDoc:v.put,needSub:S.sub,reJoinCauseReconnect:d},I)}_absent(e){let o=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._context.disablePresence||this._context.notInChannel(e))return;const{withPresence:d,beQuiet:I}=this._context.getChannelLastRealSubOrJoinOptions(e);d?this._channelPresence.unsubPresence(e,o):this._channelPresence.unsubscribeSelfPresence(e,o),!I&&this._channelPresence.delChannelDoc(e),this._context.isInChannel(e)&&this._channelPresence.leave(e),this._channelPresence.leaveRetryChannels([e])}async _logoutSync(){var e;let o=!(arguments.length>0&&arguments[0]!==void 0)||arguments[0];this._context.disablePresence||(await Promise.allSettled(this._context.getAllChannelNames().map(d=>this._absent(d))),o&&await((e=this._rtmSession)===null||e===void 0?void 0:e.logoutSyncHandler()))}async _unsubLockAMeta(e){this._unsubLock(e),this._unsubMetadata(e)}_handleNoPrivilege(e,o){const d=this._context.operationControl.operationIsRunning(OperationName.subscribe+e);if(this.log("".concat(d?"":"re-","subscribe channel ").concat(e," ").concat(o," failed, no privilege")),d){this._context.deleteChannelOptionsCache(e);const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED);throw new RtmUnavailableError(OperationName.subscribe,[f],I)}switch(this._absent(e),o){case"message":this._context.internalEmitter.emit("channelLeft",e);break;case"metadata":this.storage.storageImpl.deleteChannelMetaEventInfos(e),this._context.internalEmitter.emit("unsubChannelMetadata",e);break;case"lock":this._lockSnapshotLastTime.delete(e),this._context.internalEmitter.emit("unsubChannelLock",e)}this._context.isInChannel(e)&&(this._context.deleteChannelOptionsCache(e),this.emit("token",{eventType:"READ_PERMISSION_REVOKED",reason:TokenEventReason.READ_PERMISSION_REVOKED,affectedResources:{messageChannels:[e]},timestamp:getUTCTimeBaseREG(this._context.offsetTime)}))}async _requestChannelJoin(e){const o=OperationName.subscribe,d=fromEvent(this._context.internalEmitter,"channelLeft").pipe(filter(v=>e===v),take(1)),I=this._context.incGetSeq(),f=this._notifyChannelReSub.pipe(filter(v=>(v==null?void 0:v.prefixChannelName)===e||(v==null?void 0:v.allReSub)===!0),switchMap(v=>{const L=I;return this._sendRtmBasePacket(o,"GroupEnter",{account:e,seq:L},v.env),this._onOperationPacket("GroupReply").pipe(first(x=>{let{seq:F}=x;return L.eq(F)}),tap(x=>{let{code:F}=x;if(F!==0){if(F!==RegServerErrorCode.kGroupUserNoPrivilege){const{code:Y,reason:j}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);throw this.warn("channel join failed, server code is %d",F),this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),new RtmUnavailableError(o,[j],{code:Y,serverCode:F})}this._handleNoPrivilege(e,"message")}else this._context.updateRealSubOrJoinOptions(e,"withMessage",!0)}),timeout(COMMON_REQUEST_TIMEOUT),catchError(x=>x instanceof TimeoutError?(this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),EMPTY):throwError(x)))}),takeUntil(d),share()),S=()=>{this._rtmSubscriptions.channels.delete(e)};this._rtmSubscriptions.channels.set(e,f.subscribe({error:S,complete:S})),this._notifyChannelReSub.next({env:void 0,prefixChannelName:e}),await f.pipe(take(1),timeout(COMMON_REQUEST_TIMEOUT),catchError(v=>{if(isRtmError(v))return throwError(v);!(v instanceof TimeoutError)&&this.logError(v);const{code:L,reason:x}=getErrorInfoByCode(v instanceof TimeoutError?RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_TIMEOUT:RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);return throwError(new RtmUnavailableError(o,[x],L))})).toPromise()}async _subMessage(e,o){try{this.log("Joining the channel %s",replaceRangeWithAsterisk(e)),await this._requestChannelJoin(e),this.info("The channel %s joined successfully",replaceRangeWithAsterisk(e))}catch(d){if(this.logError(d),isRtmError(d))throw d;const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_FAILED);throw new RtmUnknownError(o,[f],I)}}async _unsubMessage(e){this._context.getChannelOptionsByKey(e,"withMessage","real")&&this._sendRtmBasePacket(OperationName.leave,"GroupLeave2",{account:e,flags:Long$1.fromNumber(0)}),this._context.updateRealSubOrJoinOptions(e,"withMessage",!1),this._context.internalEmitter.emit("channelLeft",e)}async _subMetadata(e){try{await this._requestSubscribeChannelMetadata(e)}catch(o){if(this.logError("sub channel metadata failure when sub channel(".concat(replaceRangeWithAsterisk(e),"), error is %o."),o),o.errorCode===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED)throw o}}_unsubMetadata(e){const o=this._context.incGetSeq();this._context.getChannelOptionsByKey(e,"withMetadata","real")&&(this._sendRtmBasePacket(OperationName.unsubscribe,"StateUnsubscribe",{sequence:o,target:e,subTarget:"",flags:new Long$1(1,0,!0)}),this._context.addReportEvents("SyncSubscribeEvent",{lts:Long$1.fromNumber(Date.now()),userid:this._context.uid,vid:Long$1.fromString(this._context.vid||"0"),sid:this._context.sid,usersid:this._context.sid,target:e,requestts:Long$1.fromNumber(Date.now()),replyts:Long$1.fromNumber(Date.now()),eventtype:"UnSubscribe",sdktype:4,flags:new Long$1(1,0,!0),code:0,seq:o,index:{index1:this._context.uid,index2:this._context.appId,index3:"logUpload=".concat(this._context.rtmConfig.logUpload)},subtarget:this._context.uid})),this.storage.storageImpl.deleteChannelMetaEventInfos(e),this._context.updateRealSubOrJoinOptions(e,"withMetadata",!1),this._context.internalEmitter.emit("unsubChannelMetadata",e)}async _subLock(e){try{await this._requestSubscribeLock(e)}catch(o){if(this.logError("sub lock info failure when sub channel(".concat(replaceRangeWithAsterisk(e),"), error is %o."),o),o.errorCode===RTMErrorCode.RTM_ERROR_CHANNEL_SUBSCRIBE_PERMISSION_DENIED)throw o}}_unsubLock(e){const o=this._context.incGetSeq();this._context.getChannelOptionsByKey(e,"withLock","real")&&this._sendRtmBasePacket(OperationName.unsubscribe,"StateLockUnsubscribe",{sequence:o,target:e,flags:new Long$1(1048577,0,!0)}),this._lockSnapshotLastTime.delete(e),this._context.updateRealSubOrJoinOptions(e,"withLock",!1),this._context.internalEmitter.emit("unsubChannelLock",e)}_emitMessageEvent(e){this.emit("message",e)}_emitStorageEvent(e,o){var d;const I={};e.items.map(v=>{var L;I[v==null?void 0:v.getKey()]={value:(L=v.getValue())!==null&&L!==void 0?L:"",revision:v.getRevision(),updated:v.getUpdateTs(),authorUid:v.getAuthorUserId()}});const f={totalCount:e==null||(d=e.items)===null||d===void 0?void 0:d.length,majorRevision:e==null?void 0:e.majorRevision,metadata:I},S=_objectSpread2(_objectSpread2({},o),{},{data:f,timestamp:getUTCTimeBaseREG(this._context.offsetTime)});this.emit("storage",S)}_clearLinkTimers(){var e;this._suspended=!1,this._suspendedTimer&&(clearTimeout(this._suspendedTimer),this._suspendedTimer=null),(e=this._rtmSession)===null||e===void 0||e.resetLinkIntervals()}async _loginImpl(e){var o;let{uid:d,instanceId:I,forceLoginTime:f=0}=e;const S=OperationName.login,v=I;if(this._lastLoginTime!==void 0&&Date.now()-this._lastLoginTime<1e3/LOGIN_QPS_LIMIT&&f>0){const{code:x,reason:F}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_ABORTED);throw new RtmInvokeTooOftenError(S,[F],x)}f===0&&this._onConnectionStateChanged("CONNECTING","CONNECTING"),(o=this._rtmSession)===null||o===void 0||o.release();const L=new RTMSession(this._context,this.logger,v,this._channelPresence.cacheAllChannelCrdtState.bind(this._channelPresence),this._channelPresence.exceptionCallback.bind(this._channelPresence));return this._rtmSession=L,this._context.internalEmitter.on("connectionLost",()=>{var x;this._connectionState!=="CONNECTED"&&this._linkState!=="CONNECTED"||(!this._reconnectTimeoutTimer&&((x=this._context.connectionTimeoutSeconds)!==null&&x!==void 0?x:0)>0&&(this._reconnectTimeoutTimer=setTimeout(()=>{this._reconnectTimeoutTimer=null,this._handleReconnectTimeout()},1e3*this._context.connectionTimeoutSeconds)),this._updateLinkState("DISCONNECTED","HEARTBEAT_TIMEOUT",this._getUsedMessageChannelIds(),"KEEP_ALIVE_TIMEOUT",LinkStateChangeReasonDescription.KEEP_ALIVE_TIMEOUT),this._onConnectionStateChanged("RECONNECTING","INTERRUPTED"),this._context.internalEmitter.removeAllListeners("userJoined"),this._context.internalEmitter.once("userJoined",async()=>{if(this.log("received reconnected userJoined event"),this._linkState==="CONNECTED")return;const F=isBusy;this._updateLinkState("CONNECTED",F?"LOGIN":"AUTO_RECONNECT",this._getUsedMessageChannelIds(),F?"RELOGIN":"RECONNECT_SUCCESS",F?LinkStateChangeReasonDescription.RELOGIN:LinkStateChangeReasonDescription.RECONNECT_SUCCESS,!this._suspended),this._onConnectionStateChanged("CONNECTED","LOGIN_SUCCESS"),this._clearLinkTimers()}),this._lockSnapshotLastTime.clear())}),this._context.internalEmitter.on("tokenExpired",async()=>{var x;this.warn("reg session listen the token expired"),(x=this._rtmSession)===null||x===void 0||x.stopLogin(),this._userDropHandler(2)}),this._context.internalEmitter.once("userDrop",this._userDropHandler),this._context.internalEmitter.on("login-request",()=>{["DISCONNECTED","SUSPENDED"].includes(this._linkState)&&this._updateLinkState("CONNECTING","AUTO_RECONNECT",[],"AUTO_RECONNECT",LinkStateChangeReasonDescription.AUTO_RECONNECT)}),this._context.internalEmitter.on("login-timeout",x=>{this.log("login - timeout"),this._suspended?this._updateLinkState("SUSPENDED","AUTO_RECONNECT",[],"RECONNECT_TIMEOUT",LinkStateChangeReasonDescription.RECONNECT_TIMEOUT):this._updateLinkState("DISCONNECTED","SERVER_TIMEOUT",[],x?"RECONNECT_TIMEOUT":"LOGIN_TIMEOUT",x?LinkStateChangeReasonDescription.RECONNECT_TIMEOUT:LinkStateChangeReasonDescription.LOGIN_TIMEOUT),isNil$1(this._suspendedTimer)&&(this._suspendedTimer=setTimeout(()=>{this._suspended=!0},115e3))}),this._context.internalEmitter.on("net-change-abort-reconn",()=>{this._updateLinkState("DISCONNECTED","NETWORK_CHANGE",[],"NETWORK_CHANGE",LinkStateChangeReasonDescription.NETWORK_CHANGE)}),this._lastLoginTime=Date.now(),this._rtmSession.loginHandler().toPromise().catch(x=>{if(x.name==="loginRespTimeout"&&f<2)return this.log("loginRespTimeout: internal re-login..."),this._clearEffectsOfLogin(),this._loginImpl({uid:d,instanceId:I,forceLoginTime:f+1});throw this._handleConnectionFailed(x)})}_handleConnectionFailed(e){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:OperationName.login;if(this.log("Login failed when connecting"),this._connectionState!=="CONNECTING")return e;if(isTimeout(e)){this._onConnectionStateChanged("DISCONNECTED","LOST");const{code:f,reason:S}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT);throw new RtmTimeoutError(o,[S],f)}if((e==null?void 0:e.code)===RTMErrorCode.RTM_ERROR_TOKEN_EXPIRED)throw this._onConnectionStateChanged("DISCONNECTED","TOKEN_EXPIRED"),e;if((e==null?void 0:e.code)===RTMErrorCode.RTM_ERROR_LOGIN_CANCELED||(this._onConnectionStateChanged("DISCONNECTED","REJECTED_BY_SERVER"),isRtmError(e)))throw e;const{code:d,reason:I}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOGIN_ABORTED);throw new RtmUnavailableError(o,[I],d)}_getUsedMessageChannelIds(){return this._context.getAllChannelNames().filter(e=>!e.startsWith(K_STREAM_CHANNEL_PREFIX))}async _requestChannelMemberList(e){var o;const d=OperationName.whoNow,I=this._context.incGetSeq();return(o=this._rtmSession)===null||o===void 0||o.sendOperationPacket(d,"GroupAllUsersList",{group:e,pageNumber:0,pageSize:200,seq:I}),race(genTimeoutError(RTMErrorCode.RTM_ERROR_PRESENCE_OPERATION_TIMEOUT),this._onOperationPacket("GroupAllUsersResult").pipe(first(f=>{let{group:S,seq:v}=f;return S===e&&I.eq(v)}))).toPromise()}_onConnectionStateChanged(e,o){var d;this._connectionState=e,(e==="FAILED"||e==="DISCONNECTED")&&(this._context.releaseOfLogin(),this._rtmSession&&((d=this._rtmSession)===null||d===void 0||d.release(),this._msgManager.release(),this._context.resetTicketVersionMap()));const I={state:e,reason:o,timestamp:getUTCTimeBaseREG(this._context.offsetTime)};this.emit("status",I)}_updateLinkState(e,o){let d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],I=arguments.length>3?arguments[3]:void 0,f=arguments.length>4?arguments[4]:void 0,S=arguments.length>5&&arguments[5]!==void 0&&arguments[5];if(this._linkState===e)return;["CONNECTED","IDLE","FAILED"].includes(e)&&this._clearReconnectTimeoutTimer(),e==="CONNECTED"&&(this._context.notifyLoginResultSubject$.next(!0),this._setIntervalCreateColl()),this._context.sendReport("LinkStateChange",{elapse:getElapse(this._context.startTime),lts:Long$1.fromNumber(Date.now()),reason:LinkStateChangeReason4Report[I],sid:getSid(this._context.instanceId||Long$1.fromNumber(0)),vid:Long$1.fromString(getParameter("VID").get(this._context.appId)||"0"),userid:this._context.uid,currentState:linkStateCodeMap[e],previousState:linkStateCodeMap[this._linkState],operation:linkOperationCodeMap[o],serviceType:0,streamChannelName:""}),this._linkState==="CONNECTED"&&e==="DISCONNECTED"&&this.log("link disconnected"),e==="FAILED"&&this._clearEffectsOnSessionEnd();const v={currentState:e,previousState:this._linkState,serviceType:"MESSAGE",operation:o,reason:f??o,reasonCode:I,affectedChannels:d,unrestoredChannels:[],timestamp:getUTCTimeBaseREG(this._context.offsetTime),isResumed:S};this._linkState=e,this.emit("linkState",v)}_clearChannel(e){e.forEach(o=>{this._context.internalEmitter.emit("channelLeft",o),this._context.internalEmitter.emit("unsubChannelLock",o),this._context.internalEmitter.emit("unsubChannelMetadata",o)})}_hasLock(){return this.lock.lockImpl.hasLock()}_validateRtmConnection(e){var o;let d=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];if(this._context.enablePrivate&&((o=this._context.rtmConfig.privateConfig)===null||o===void 0||!o.serviceType.includes("MESSAGE"))){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED);throw new RtmUnavailableError(e,f,I)}if(this._linkState==="IDLE"){this.log("The client state is ".concat(this._connectionState,", cannot do the operation(").concat(e,")"));const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[f],I)}if(d&&this._linkState!=="CONNECTED"){const{code:I,reason:f}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmInvalidStatusError(e,[f],I)}}_validateRTMSessionExist(e){if(this._rtmSession===void 0){const{code:o,reason:d}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_NOT_CONNECTED);throw new RtmUnavailableError(e,[d],o)}}_reportChannelLeave(e,o){this._context.addReportEvents("ChnLeave",{cname:e,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:o,sid:getSid(this._context.instanceId||Long$1.fromNumber(0)),userId:this._context.uid})}_setIntervalCreateColl(){this._createCollInterval&&clearInterval(this._createCollInterval),this._createCollInterval=setInterval(()=>{this._channelPresence.intervalCreateColl()},MONITOR_INTERVAL)}_deleteIntervalCreateColl(){this._createCollInterval&&(clearInterval(this._createCollInterval),this._createCollInterval=null)}_handleLoginFailedState(e){let o=LinkStateChangeReasonDescription.LOGIN_REJECTED,d="LOGIN_REJECTED";switch(e){case RTMErrorCode.RTM_ERROR_INVALID_USER_ID:o=LinkStateChangeReasonDescription.INVALID_USER_ID,d="INVALID_USER_ID";break;case RTMErrorCode.RTM_ERROR_INVALID_TOKEN:o=LinkStateChangeReasonDescription.INVALID_TOKEN,d="INVALID_TOKEN";break;case RTMErrorCode.RTM_ERROR_INCONSISTENT_APPID:o=LinkStateChangeReasonDescription.INCONSISTENT_APP_ID,d="INCONSISTENT_APP_ID";break;case RTMErrorCode.RTM_ERROR_SERVICE_NOT_SUPPORTED:o=LinkStateChangeReasonDescription.SERVICE_NOT_SUPPORTED,d="SERVICE_NOT_SUPPORTED";break;case RTMErrorCode.RTM_ERROR_OPERATION_RATE_EXCEED_LIMITATION:o=LinkStateChangeReasonDescription.OPERATION_RATE_EXCEED_LIMITATION,d="OPERATION_RATE_EXCEED_LIMITATION";break;case RTMErrorCode.RTM_ERROR_LOGIN_TIMEOUT:o=LinkStateChangeReasonDescription.LOGIN_TIMEOUT,d="LOGIN_TIMEOUT"}this._updateLinkState("FAILED","LOGIN",[],d,o)}_validateJoinOptions(e,o){const d=getParameter("STORAGE_CHANNEL_SUB_ENABLED"),I=(d!==void 0?String(d):this._context.consoleConfig["storage.channel_subscribe_enabled"])==="true";if(e!=null&&e.withMetadata&&!I){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_STORAGE_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}const f=getParameter("LOCK_ENABLED"),S=(f!==void 0?String(f):this._context.consoleConfig["lock.enabled"])==="true";if(e!=null&&e.withLock&&!S){const{code:v,reason:L}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_LOCK_NOT_AVAILABLE);throw new RtmUnavailableError(o,[L],v)}}_updateLockCache(e){var o;const{lockName:d,prefixChannelName:I}=e,f=(o=this._lockEventInfos.get(I))!==null&&o!==void 0?o:new Map;f.set(d,e),this._lockEventInfos.set(I,f)}_onLockEvent(e){var o;const{target:d,lockStates:I,eventType:f}=e;if(!this._context.getChannelOptionsByKey(d,"withLock"))return;const{channelName:S,channelType:v}=getChannelDetailByName(d);if(f===LockEventType.LockUnknown)return void this.log("RTM service Error: lockEvent type is 0 on channel '%s', channelType 's%', member '%s'",replaceRangeWithAsterisk(S),v,replaceRangeWithAsterisk(this._context.uid||""));const L=getUTCTimeBaseREG(this._context.offsetTime),x=new Date().getTime();if(f===LockEventType.LockSnapshot&&I.length===0){var F;if(this._lockSnapshotLastTime.has(d)&&x-((F=this._lockSnapshotLastTime.get(d))!==null&&F!==void 0?F:0)<=LAST_PONG_RECEIVED_TS_FIELD_NUMBER)return;const ht={channelType:v,channelName:S,eventType:"SNAPSHOT",lockName:"",ttl:0,publisher:"",snapshot:[],owner:"",timestamp:L};return this.log("received snapshot lockEvent is empty on channel(".concat(d,"), emit channelLockEvent")),this._lockSnapshotLastTime.set(d,x),void this._onChannelLockEvent(ht)}let Y="SNAPSHOT",j=0,W=!1,re="",ee=null;try{var he,ue;!((he=I[0])===null||he===void 0)&&he.lockState&&(ee=JSON.parse((ue=I[0])===null||ue===void 0?void 0:ue.lockState))}catch(ht){this.logError("parse lockState error: %o",ht)}switch(f){case LockEventType.LockAdded:var Ee;Y="SET",j=(Ee=ee)===null||Ee===void 0?void 0:Ee.create_ttl;break;case LockEventType.LockModified:var _e,De,Fe,Ve;(_e=ee)!==null&&_e!==void 0&&_e.user?(Y="ACQUIRED",j=(De=ee)===null||De===void 0?void 0:De.create_ttl,re=(Fe=ee)===null||Fe===void 0?void 0:Fe.user):(Y="RELEASED",j=(Ve=ee)===null||Ve===void 0?void 0:Ve.create_ttl);break;case LockEventType.LockRemoved:Y="REMOVED",j=0;break;case LockEventType.LockSnapshot:Y="SNAPSHOT",W=!0}const Ge={channelType:v,channelName:S,eventType:Y,lockName:W?"":(o=I[0].lockName)!==null&&o!==void 0?o:"",ttl:j,publisher:"",snapshot:[],owner:re,timestamp:L};if(this.log("received lockEvent: %o",Ge,ee),W){var He;(!this._lockSnapshotLastTime.has(d)||x-((He=this._lockSnapshotLastTime.get(d))!==null&&He!==void 0?He:0)>LAST_PONG_RECEIVED_TS_FIELD_NUMBER)&&(this.log("received snapshot lockEvent, emit channelLockEvent"),this._lockSnapshotLastTime.set(d,x),Ge.snapshot=I.map(ht=>{var vt,ar,jt,vr,ai,pi,yi,fi,Jn,xr,pr;let ei=null;try{ht.lockState&&(ei=JSON.parse(ht.lockState))}catch(Gr){this.logError("parse lockState error: %o",Gr)}const _i={prefixChannelName:d,lockName:(vt=ht.lockName)!==null&&vt!==void 0?vt:"",owner:(ar=(jt=ei)===null||jt===void 0?void 0:jt.user)!==null&&ar!==void 0?ar:"",ttl:(vr=(ai=ei)===null||ai===void 0?void 0:ai.create_ttl)!==null&&vr!==void 0?vr:getParameter("LOCK_TTL"),revision:(pi=(yi=ei)===null||yi===void 0?void 0:yi._rev)!==null&&pi!==void 0?pi:0};return this._updateLockCache(_i),{lockName:ht.lockName,owner:(fi=(Jn=ei)===null||Jn===void 0?void 0:Jn.user)!==null&&fi!==void 0?fi:"",ttl:(xr=(pr=ei)===null||pr===void 0?void 0:pr.create_ttl)!==null&&xr!==void 0?xr:getParameter("LOCK_TTL")}}),this._onChannelLockEvent(Ge))}else{var At,Bt,Tt,rt;this.log("received incremental lockEvent, emit channelLockEvent");const ht=ee._rev||0,vt=((At=this._lockEventInfos.get(d))===null||At===void 0||(At=At.get((Bt=I[0].lockName)!==null&&Bt!==void 0?Bt:""))===null||At===void 0?void 0:At.revision)||0;let ar=!1;if((Y!=="RELEASED"&&ht>vt||Y==="RELEASED"&&ht>=vt&&(Tt=this._lockEventInfos.get(d))!==null&&Tt!==void 0&&(Tt=Tt.get((rt=I[0].lockName)!==null&&rt!==void 0?rt:""))!==null&&Tt!==void 0&&Tt.owner)&&(ar=!0),ar){var ye,lt,Yt,ct;this._onChannelLockEvent(Ge);const jt={prefixChannelName:d,lockName:(ye=I[0].lockName)!==null&&ye!==void 0?ye:"",owner:(lt=ee.user)!==null&<!==void 0?lt:null,ttl:(Yt=ee.create_ttl)!==null&&Yt!==void 0?Yt:null,revision:(ct=ee._rev)!==null&&ct!==void 0?ct:null};this._updateLockCache(jt)}}}_sendMessageAck(e){this._sendRtmBasePacket("onMessage","Ack",{code:0,dialogue:e.dialogue,instance:e.instance,sequence:e.sequence})}async _sendMessageToRetry(e,o,d){let I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;this.debug("Attempt to send the message ".concat(o?" with retrying, %o":"without retrying"),{retryTimes:I});const f=e(I);this._sendRtmBasePacket("publish","Message",f);const{dialogue:S,sequence:v,instance:L}=f,x=this._onOperationPacket("Ack").pipe(filter(F=>S.eq(F.dialogue)&&v.eq(F.sequence)&&L.eq(F.instance)&&F.code!==AckCodeType.kAckMiss),tap(F=>{let{code:Y}=F;if(Y===AckCodeType.kAckNoPrivilege){const{code:j,reason:W}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_CHANNEL_PUBLISH_PERMISSION_DENIED);throw new RtmUnavailableError(OperationName.publish,[W],j)}}));try{const{code:F}=await x.pipe(timeout(MESSAGE_RETRY_TIMEOUT+(d?500:0)),catchError(Y=>(isTimeout(Y)&&this.warn("Message send timeout, retry times %d",I),throwError(Y))),take(1)).toPromise();return this.debug("The message has been acked, %o",{code:F}),{code:F,retryTimes:I}}catch(F){if(F instanceof TimeoutError&&o)return this._sendMessageToRetry(e,!1,d,I+1);throw F}}_requestUpdateEdgeTicket2(e,o){const d=this._context.incGetSeq();return this._sendRtmBasePacket(OperationName.renewToken,"UserRenewToken2Req",{instance:this._context.instanceId,seq:d,account:this._context.uid,ticket:e},o),race(genTimeoutError(RTMErrorCode.RTM_ERROR_RENEW_TOKEN_TIMEOUT),this._onOperationPacket("UserRenewToken2Resp").pipe(tap(I=>{I.code===0&&this._context.updateTicketVersion(I.eventReportInfo.env,this._context.ticketVersionMap.get(I.eventReportInfo.env).version+1)}),first(I=>{let{seq:f}=I;return d.eq(f)}),tap(I=>{let{code:f}=I;if(f!==0){const{code:S,reason:v}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_TOKEN);throw new RtmUnavailableError(OperationName.login,[v],{serverCode:f,code:S})}})))}_onGroupDrop(e){let{account:o}=e;this._context.addReportEvents("ChnLeave",{cname:o,lts:Long$1.fromNumber(Date.now()),elapse:getElapse(this._context.startTime),errCode:RTMErrorCode.RTM_ERROR_CHANNEL_IN_ERROR_STATE,sid:getSid(this._context.instanceId),userId:this._context.uid}),this._rtmSubscriptions.channels.delete(o),this.logError("the user is kicked out of the channel: ".concat(o))}_addEventsFromContext(){this._context.internalEmitter.on("StateLockSubscribeEvent",e=>{this._onLockEvent(e)}),this._context.internalEmitter.on("UserTicketNearlyExpire",e=>{this._tokenPrivilegeWillExpireHandler(e)}),this._context.internalEmitter.on("lock",e=>{const o=getChannelNameByType(e.channelName,e.channelType);(e.eventType==="EXPIRED"||this._context.getChannelOptionsByKey(o,"withLock"))&&this.emit("lock",e)}),this._context.internalEmitter.on("GroupDrop",e=>{this._onGroupDrop(e)}),this._context.internalEmitter.on("stream-channel-joined",e=>{this._streamChannelList.push(e)}),this._context.internalEmitter.on("stream-channel-leaved",e=>{this._streamChannelList=this._streamChannelList.filter(o=>o!==e)}),this._context.internalEmitter.on("link-success",async e=>{var o;const d=e===0?1:0,I=(o=this._rtmSession)===null||o===void 0?void 0:o.getOtherEnvTicket(d);try{if(this._context.ticketVersionOutdated(e)&&I){this.log("this env ticket is outdated, need update.");var f;(await this._requestUpdateEdgeTicket2(I,e).toPromise()).code===0&&((f=this._rtmSession)===null||f===void 0||f.updateRegTicket(I),this._context.updateTicketVersion(e,this._context.ticketVersionMap.get(d).version))}}catch{}this.lock.lockImpl.notifyLockReAcquire(e),this.storage.storageImpl.notifyUserMetaReSub(e),this._notifyLockReSub.next({env:e,allReSub:!0}),this._notifyChannelMetaReSub.next({env:e,allReSub:!0}),this._notifyChannelReSub.next({env:e,allReSub:!0})})}_updateSyncTicketByRenewToken(e){if(!this._context.disablePresence){var o,d;const I=atob(e);(o=this._rtmSession)===null||o===void 0||o.renewSyncTicket(I),(d=this._rtmSession)===null||d===void 0||d.updateSyncTicket({ticket:I})}}_clearReconnectTimeoutTimer(){this._reconnectTimeoutTimer&&(clearTimeout(this._reconnectTimeoutTimer),this._reconnectTimeoutTimer=null)}async _clearEffectsOfLogin(){var e;this._clearLinkTimers(),(e=this._rtmSession)===null||e===void 0||e.updateLoggedOut(!0),this._clearReconnectTimeoutTimer(),this._context.releaseOfLogin()}async _clearEffectsOnSessionEnd(){var e;(e=this._customConfig)===null||e===void 0||e.stop(),this._deleteIntervalCreateColl(),this._clearEffectsOfLogin(),this._channelPresence.releaseChnPresence4Failed(),this._context.releaseOnSessionEnd()}_clearBusinessEffects(){this.lock.lockImpl.release(),this._lockSnapshotLastTime.clear(),this._lockEventInfos.clear(),this.storage.storageImpl.release(),this._msgManager.release(),this._context.instanceId=null,this._clearChannel(this._context.getAllChannelNames()),this._channelPresence.releaseChnPresence(),this._context.releaseOnLogout()}async _clearEffectsByLogout(){this._clearEffectsOnSessionEnd(),this._clearBusinessEffects()}async _genLogoutImpl(e){const o={logout:{clearReg:!0,syncConnected:!0,errorMsg:"logout error"},failed:{clearReg:!1,syncConnected:!1,errorMsg:"logout error when FAILED"},connecting:{clearReg:!0,syncConnected:!1,errorMsg:"logout error when RECONNECTING"}}[e];try{await this._internalLogoutHandler(o.clearReg,o.syncConnected),this.log("logout success")}catch(d){throw this.logError("".concat(o.errorMsg,": ").concat(d)),d}finally{this._onConnectionStateChanged("DISCONNECTED","LOGOUT")}}async _genLoginImpl(e){var o,d,I;switch(e){case"first":(o=this._customConfig)===null||o===void 0||o.init(this._context.sid),await this._loginImpl({uid:this._context.uid,instanceId:this._context.instanceId});break;case"logging":(d=this._rtmSession)===null||d===void 0||d.cancelLogin(),this._clearEffectsOfLogin(),await this._loginImpl({uid:this._context.uid,instanceId:this._context.instanceId});break;case"reconnecting":(I=this._rtmSession)===null||I===void 0||I.notifyLoginInDisconnected(),await this._context.notifyLoginResultSubject$.pipe(take(1)).toPromise()}}_handleReconnectTimeout(){var e;this.warn("reconnect timeout, need stop retry"),(e=this._rtmSession)===null||e===void 0||e.cancelLogin(),this._clearEffectsOfLogin(),this._updateLinkState("FAILED","AUTO_RECONNECT",this._getUsedMessageChannelIds(),"RECONNECT_TIMEOUT",LinkStateChangeReasonDescription.RECONNECT_TIMEOUT)}}class OperationControl{constructor(){_defineProperty$1(this,"promiseMap",new Map)}setPromise(e,o){this.promiseMap.set(e,o)}getPromise(e){return this.promiseMap.get(e)}deletePromise(e){this.promiseMap.delete(e)}async awaitPromise(e){let o,d;const I=new Promise((S,v)=>{o=S,d=v}),f=this.getPromise(e);try{f&&await f}catch{}return I.finally(()=>{this.deletePromise(e)}),this.setPromise(e,I),{currentResolve:o,currentReject:d}}operationIsRunning(e){return this.promiseMap.has(e)}}const DEFAULT_TICKET_VERSION_MAP=[[0,{version:0}],[1,{version:0}]],defaultConsoleConfig={"-":0,app_key:"",region:"CN",enabled:String(getParameter("RTM2_ENABLED")),"presence.occupancy":String(K_DEFAULT_INTERVAL_THRESHOLD),"presence.interval":String(K_PRESENCE_INTERVAL_DEFAULT),"presence.debounce":String(K_DEBOUNCE_DEFAULT),"storage.enabled":String(!0),"storage.channel_subscribe_enabled":String(!0),"storage.user_subscribe_enabled":String(!0),"lock.enabled":String(!0),"history.enabled":String(!0)};class Context extends EventBase{get ticketVersionMap(){return this._ticketVersionMap}get disablePresence(){var e;return(e=getParameter("DISABLE_PRESENCE"))!==null&&e!==void 0?e:this._disablePresence}get consoleConfig(){return this._consoleConfig}set consoleConfig(e){this._consoleConfig=e}get seq(){return this._seq}get userId(){return this._uid}set pongTime(e){this._pongTime=e}get pongTime(){return this._pongTime}set offsetTime(e){this._offsetTime=e}get offsetTime(){return this._offsetTime}set heartbeatInterval(e){this._heartbeatInterval=typeof e=="number"&&e?eMAX_HEARTBEAT_INTERVAL?MAX_HEARTBEAT_INTERVAL:e:CONFIGURABLE_KEY_RTM_HEARTBEAT_INTERVAL}get heartbeatInterval(){var e,o;return(e=(o=getParameter("HEART_BEAT"))!==null&&o!==void 0?o:this._heartbeatInterval)!==null&&e!==void 0?e:CONFIGURABLE_KEY_RTM_HEARTBEAT_INTERVAL}set socketUseProxy(e){e!==this._socketUseProxy&&(this.log("socketUseProxy is set to %s",e),this._socketUseProxy=e)}get socketUseProxy(){return this._socketUseProxy&&getParameter("ENABLE_EDGE_AUTO_FALLBACK")}set token(e){this._token=typeof e=="string"&&e?e:void 0}get token(){return this._token}set uid(e){if(this.log("The user ID is set to %s",replaceRangeWithAsterisk(e)),!isValidId(e))throw new RtmInternalError;this._uid=e}get uid(){if(typeof this._uid=="string"&&this._uid)return this._uid;throw new RtmInternalError("Cannot get illegal uid")}set vid(e){if(typeof e!="string")throw new RtmInternalError;this._vid=e}get vid(){return typeof this._vid=="string"?this._vid:(this.warn("Cannot get illegal vid"),"")}get key(){if(typeof this._token=="string"&&this._token)return this._token;if(typeof this.appId=="string"&&this.appId)return this.appId;throw new RtmInternalError("Cannot get illegal key")}get sid(){if(typeof this._sid=="string"&&this._sid)return this._sid;throw new RtmInternalError("Cannot get illegal sid")}set sid(e){if(this.log("sid is set to %s",e),typeof e!="string"||!e)throw new RtmInternalError;this._sid=e}get startTime(){return this._startTime}set startTime(e){if(this.log("startTime is set to %s",e),typeof e!="number"||!e)throw new RtmInternalError;this._startTime=e}get rtmArea(){if(typeof this._area=="string"&&this._area)return this._area;throw new RtmInternalError("Cannot get illegal area")}set rtmArea(e){this.log("area is set to %s",e),typeof e=="string"&&e?this._area=e:this.warn("set area failed")}get operationControl(){return this._operationControl}get connectionTimeoutSeconds(){const e=getParameter("MIN_RECONNECT_TIMEOUT_IN_SECONDS");return typeof e=="number"?e<15?15:e>3600?3600:e:0}constructor(e,o,d,I,f){var S,v;super(d,"Context"),_defineProperty$1(this,"appId",void 0),_defineProperty$1(this,"localStateCache",new Map),_defineProperty$1(this,"enablePrivate",!1),_defineProperty$1(this,"encryptionInfo",{key:"",iv:"",keyLength:0,initEncryption:!1}),_defineProperty$1(this,"rtmConfig",void 0),_defineProperty$1(this,"reportIntervalId",null),_defineProperty$1(this,"instanceId",null),_defineProperty$1(this,"internalEmitter",void 0),_defineProperty$1(this,"notifyLoginResultSubject$",new Subject),_defineProperty$1(this,"_token",void 0),_defineProperty$1(this,"_uid",void 0),_defineProperty$1(this,"_sid",""),_defineProperty$1(this,"_vid",void 0),_defineProperty$1(this,"_startTime",void 0),_defineProperty$1(this,"_area","CN"),_defineProperty$1(this,"_socketUseProxy",!1),_defineProperty$1(this,"_seq",Long$1.fromNumber(1,!0)),_defineProperty$1(this,"_seqSentStatuses",[!1,!1]),_defineProperty$1(this,"_pongTime",new Date().getTime()),_defineProperty$1(this,"_offsetTime",0),_defineProperty$1(this,"_heartbeatInterval",CONFIGURABLE_KEY_RTM_HEARTBEAT_INTERVAL),_defineProperty$1(this,"_operationControl",void 0),_defineProperty$1(this,"_couldReportEvent",!1),_defineProperty$1(this,"_consoleConfig",defaultConsoleConfig),_defineProperty$1(this,"_lastRealSubscribeOrJoinOptions",new Map),_defineProperty$1(this,"_lastCustomSubscribeOrJoinOptions",new Map),_defineProperty$1(this,"_disablePresence",!1),_defineProperty$1(this,"_ticketVersionMap",new Map(cloneDeep$1(DEFAULT_TICKET_VERSION_MAP))),this.appId=e,this.uid=o,this.rtmConfig=I,f&&(this.encryptionInfo=f),this.heartbeatInterval=I.heartbeatInterval?1e3*I.heartbeatInterval:void 0;const L=new OperationControl;if(this._operationControl=L,this.rtmConfig.privateConfig){this.enablePrivate=!0;const F=this.rtmConfig.privateConfig.domainMode;F&&[1,2].includes(F)||(this.rtmConfig.privateConfig.domainMode=1)}(!this.rtmConfig.privateConfig||((S=(v=this.rtmConfig.privateConfig.eventUploadHosts)===null||v===void 0?void 0:v.length)!==null&&S!==void 0?S:0)>0)&&(this._couldReportEvent=!0);const x=new eventsExports.EventEmitter;x.emit=(F,Y)=>super.emit(F,Y),x.on=(F,Y)=>super.on(F,Y),x.once=(F,Y)=>super.once(F,Y),x.removeListener=(F,Y)=>super.removeListener(F,Y),x.removeAllListeners=F=>super.removeAllListeners(F),x.setMaxListeners(512),this.internalEmitter=x}updateTicketVersion(e,o){this._ticketVersionMap.get(e).version=o}resetTicketVersionMap(){this._ticketVersionMap=new Map(cloneDeep$1(DEFAULT_TICKET_VERSION_MAP))}ticketVersionOutdated(e){return this._ticketVersionMap.get(e).version2&&arguments[2]!==void 0?arguments[2]:"custom-cache")==="real"?this.getChannelLastRealSubOrJoinOptions(e):this.getChannelLastCustomSubOrJoinOptions(e),o){case"withPresence":return(d=(I=W)===null||I===void 0?void 0:I.withPresence)!==null&&d!==void 0&&d;case"withLock":return(f=(S=W)===null||S===void 0?void 0:S.withLock)!==null&&f!==void 0&&f;case"withMetadata":return(v=(L=W)===null||L===void 0?void 0:L.withMetadata)!==null&&v!==void 0&&v;case"withMessage":return(x=(F=W)===null||F===void 0?void 0:F.withMessage)!==null&&x!==void 0&&x;case"beQuiet":return(Y=(j=W)===null||j===void 0?void 0:j.beQuiet)!==null&&Y!==void 0&&Y;default:return!1}}getAllChannelNames(){return[...this._lastCustomSubscribeOrJoinOptions.keys()]}releaseOfLogin(){["login-request","login-timeout","userJoined","connectionLost","userDrop","tokenExpired","net-change-abort-reconn"].forEach(e=>{this.internalEmitter.removeAllListeners(e)})}releaseOnSessionEnd(){this.releaseOfLogin(),this.reportIntervalId&&clearEventReportTimer(this.reportIntervalId),this.reportIntervalId=null,this._socketUseProxy=!1,this.resetTicketVersionMap()}releaseOnLogout(){this.releaseOnSessionEnd(),this.localStateCache.clear(),this.clearLastSubOrJoinOptions()}}var _class;let RTM=(_class=class extends EventBase{constructor(n,e,o){var d,I,f,S;const v=OperationName.initRTM;let L=getParameter("PRESENCE_TIMEOUT"),x=!0,F="",Y="",j=0,W=!1,re="none";if(!isValidAppId(n)){const{code:Tt,reason:rt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_APP_ID);throw new RtmUnavailableError(v,[rt],Tt)}if(validateKey(e,v,"uid"),(o==null?void 0:o.useStringUserId)===!1){if(!isUintString(e)){const{code:Tt,reason:rt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_USER_ID);throw new RtmInvalidArgumentError(v,[rt],Tt)}x=!1}else x=!0;let ee=(d=o==null?void 0:o.logUpload)!==null&&d!==void 0&&d;const he=(I=o==null?void 0:o.cloudProxy)!==null&&I!==void 0&&I,ue=validatePrivateConfig(o);var Ee,_e;if(ue&&(he&&throwInvalidPrivateConfig(v," Use private config, not permit cloudProxy "),areaConfig&&throwInvalidPrivateConfig(v," Use private config, not permit setArea"),ee&&((Ee=o==null||(_e=o.privateConfig)===null||_e===void 0||(_e=_e.logUploadHosts)===null||_e===void 0?void 0:_e.length)!==null&&Ee!==void 0?Ee:0)<=0&&(ee=!1)),(o==null?void 0:o.encryptionMode)==="AES_128_GCM"||(o==null?void 0:o.encryptionMode)==="AES_256_GCM"){var De,Fe;const Tt="detail: ";let rt=Tt;if((o==null?void 0:o.cipherKey)===void 0)rt+="not provide cipherKey but set encryptionMode.";else if(o.salt&&(o==null||(De=o.salt)===null||De===void 0?void 0:De.byteLength)>0&&(o==null||(Fe=o.salt)===null||Fe===void 0?void 0:Fe.byteLength)>SALT_LENGTH)rt+="salt should be ".concat(SALT_LENGTH," bytes");else if(rt===Tt){var Ve;j=o.encryptionMode==="AES_128_GCM"?16:32;const ye=new Uint8Array(SALT_LENGTH);ye.set((Ve=o.salt)!==null&&Ve!==void 0?Ve:new Uint8Array([]));const lt=o==null?void 0:o.cipherKey;try{const Yt=util$6.createBuffer(ye),ct=pkcs5$1(lt,Yt.getBytes(Yt.length()),KEY_ITERATIONS_COUNT,IV_LENGTH+j,"sha256");F=ct,Y=ct.slice(-IV_LENGTH),ct?W=!0:console.warn("generate crypto key failure using pbkdf2.")}catch(Yt){const{code:ct,reason:ht}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_ENCRYPTION_PARAMETER);throw new RtmUnavailableError(v,[ht+Yt],ct)}}if(rt.length>Tt.length){const{code:ye,reason:lt}=getErrorInfoByCode(RTMErrorCode.RTM_ERROR_INVALID_ENCRYPTION_PARAMETER);throw new RtmUnavailableError(v,[lt+rt],ye)}}if(re=(f=o==null?void 0:o.logLevel)!==null&&f!==void 0?f:"error",typeof(o==null?void 0:o.presenceTimeout)=="number"){let Tt=o.presenceTimeout;o.presenceTimeout>K_PRESENCE_TIMEOUT_MAX?Tt=K_PRESENCE_TIMEOUT_MAX:o.presenceTimeout1e12?n:n*1e3}function mapAgentVisualizerState(n,e,o){if(o==="DISCONNECTED"||o==="DISCONNECTING")return"disconnected";if(o==="CONNECTING"||o==="RECONNECTING")return"joining";if(!e)return"not-joined";switch(n){case"listening":return"listening";case"thinking":return"analyzing";case"speaking":return"talking";case"idle":case"silent":default:return"ambient"}}function toMessageListItem(n){return{turn_id:n.turn_id,uid:Number(n.uid)||0,text:typeof n.text=="string"?n.text:"",status:n.status,createdAt:typeof n._time=="number"?normalizeTimestampMs(n._time):void 0}}function normalizeTranscript(n,e){return n.map(o=>{const d=o.uid==="0"?e:o.uid,I=typeof o.text=="string"?normalizeTranscriptSpacing(o.text):o.text;return{...o,uid:d,text:I}})}function getMessageList(n){return n.filter(e=>e.status!==TurnStatus.IN_PROGRESS).map(toMessageListItem)}function getCurrentInProgressMessage(n){const e=n.find(o=>o.status===TurnStatus.IN_PROGRESS);return e?toMessageListItem(e):null}const API_BASE_URL="/api";async function getConfig(n){const e=new URLSearchParams;(n==null?void 0:n.uid)!==void 0&&n.uid!==""&&e.set("uid",String(n.uid));const o=e.toString(),d=await fetch(`${API_BASE_URL}/get_config${o?`?${o}`:""}`);if(!d.ok)throw new Error(`HTTP ${d.status}`);const I=await d.json();if(I.code!==0||!I.data)throw new Error(I.msg||"Failed to get configuration");return I.data}function TranscriptPanel({transcript:n,localUid:e,agentUid:o}){const d=reactExports.useMemo(()=>normalizeTranscript(n,e),[n,e]),I=reactExports.useMemo(()=>getMessageList(d),[d]),f=reactExports.useMemo(()=>getCurrentInProgressMessage(d),[d]),S=f?[...I,f]:I;return jsxRuntimeExports.jsxs("div",{className:"transcript",children:[S.length===0&&jsxRuntimeExports.jsx("div",{style:{color:"#555",alignSelf:"center",marginTop:"40px"},children:"No transcript yet…"}),S.map((v,L)=>{const x=String(v.uid)===e;return jsxRuntimeExports.jsx("div",{className:`msg ${x?"msg-user":"msg-agent"}`,children:v.text},`${v.turn_id}-${L}`)})]})}function MetricsStrip({metrics:n}){return n.length===0?null:jsxRuntimeExports.jsx("div",{className:"metrics",children:n.slice(-4).map((e,o)=>jsxRuntimeExports.jsxs("div",{className:"metric",children:[jsxRuntimeExports.jsxs("span",{className:"metric-label",children:[e.name,":"]}),jsxRuntimeExports.jsxs("span",{className:"metric-value",children:[e.value,"ms"]})]},o))})}function StatusBar({connectionState:n,agentState:e,isAgentConnected:o}){const d=n==="CONNECTED",f=`status-dot ${d?"connected":n==="CONNECTING"||n==="RECONNECTING"?"connecting":""}`;return jsxRuntimeExports.jsxs("div",{className:"status",children:[jsxRuntimeExports.jsx("span",{className:f}),jsxRuntimeExports.jsxs("span",{children:["RTC: ",n]}),o&&e&&jsxRuntimeExports.jsxs("span",{children:["· Agent: ",e]}),!o&&d&&jsxRuntimeExports.jsx("span",{style:{color:"#ff9800"},children:"· Waiting for agent to join…"})]})}function ConversationInner({config:n,rtmClient:e,onTokenWillExpire:o}){const d=Sn(),I=X8(),[f,S]=reactExports.useState(!1);reactExports.useEffect(()=>{const He=setTimeout(()=>S(!0),0);return()=>{clearTimeout(He),S(!1)}},[]);const{isConnected:v}=N8({appid:n.app_id,channel:n.channel_name,token:n.token,uid:Number(n.uid)},f),{localMicrophoneTrack:L}=F8(f);M8([L]);const[x,F]=reactExports.useState("CONNECTING"),[Y,j]=reactExports.useState(null),[W,re]=reactExports.useState(!1),[ee,he]=reactExports.useState([]),[ue,Ee]=reactExports.useState([]),[_e,De]=reactExports.useState(!0);reactExports.useEffect(()=>{const He=I.some(At=>String(At.uid)===n.agent_uid);re(He)},[I,n.agent_uid]),d8(d,"user-joined",He=>{String(He.uid)===n.agent_uid&&re(!0)}),d8(d,"user-left",He=>{String(He.uid)===n.agent_uid&&re(!1)}),d8(d,"connection-state-change",He=>{F(He)});const Fe=reactExports.useCallback(async()=>{const He=d.uid;if(He)try{const{rtcToken:At,rtmToken:Bt}=await o(String(He));await d.renewToken(At),await e.renewToken(Bt)}catch(At){console.error("Token renewal failed:",At)}},[d,e,o]);d8(d,"token-privilege-will-expire",Fe),reactExports.useEffect(()=>{if(!f||!v)return;let He=!1;return(async()=>{try{const At=await AgoraVoiceAI.init({rtcEngine:d,rtmConfig:{rtmEngine:e},renderMode:TranscriptHelperMode.TEXT});if(He){try{At.unsubscribe(),At.destroy()}catch{}return}At.on(AgoraVoiceAIEvents.TRANSCRIPT_UPDATED,Bt=>{he([...Bt])}),At.on(AgoraVoiceAIEvents.AGENT_STATE_CHANGED,(Bt,Tt)=>{j(Tt.state)}),At.on(AgoraVoiceAIEvents.AGENT_METRICS,(Bt,Tt)=>{Ee(rt=>[...rt,Tt].slice(-8))}),At.subscribeMessage(n.channel_name)}catch(At){He||console.error("[AgoraVoiceAI] init failed:",At)}})(),()=>{He=!0;try{const At=AgoraVoiceAI.getInstance();At&&(At.unsubscribe(),At.destroy())}catch{}}},[f,v,d,e,n.channel_name]);const Ve=reactExports.useCallback(async()=>{const He=!_e;if(L)try{await L.setEnabled(He)}catch(At){console.error("Mic toggle failed:",At)}De(He)},[_e,L]),Ge=reactExports.useMemo(()=>mapAgentVisualizerState(Y,W,x),[Y,W,x]);return jsxRuntimeExports.jsxs("div",{className:"app",children:[jsxRuntimeExports.jsx(StatusBar,{connectionState:x,agentState:Y,isAgentConnected:W}),jsxRuntimeExports.jsxs("div",{className:"app-body",children:[jsxRuntimeExports.jsxs("div",{className:"left",children:[jsxRuntimeExports.jsx(AgentVisualizer,{state:Ge,size:"lg"}),I.map(He=>jsxRuntimeExports.jsx("div",{style:{display:"none"},children:jsxRuntimeExports.jsx(fY,{user:He,playAudio:!0})},He.uid)),jsxRuntimeExports.jsx("div",{style:{display:"flex",justifyContent:"center",marginTop:12},children:jsxRuntimeExports.jsx(MicButtonWithVisualizer,{isEnabled:_e,setIsEnabled:De,track:L,onToggle:Ve})}),!W&&v&&jsxRuntimeExports.jsx("div",{style:{color:"#ff9800",fontSize:12,textAlign:"center"},children:"Waiting for agent to join…"})]}),jsxRuntimeExports.jsxs("div",{className:"right",children:[jsxRuntimeExports.jsx(TranscriptPanel,{transcript:ee,localUid:n.uid,agentUid:n.agent_uid}),jsxRuntimeExports.jsx(MetricsStrip,{metrics:ue})]})]})]})}function App(){const[n,e]=reactExports.useState(null),[o,d]=reactExports.useState(null),[I,f]=reactExports.useState(null),[S,v]=reactExports.useState(!0),L=reactExports.useRef(null);L.current||(L.current=TY.createClient({mode:"rtc",codec:"vp8"})),reactExports.useEffect(()=>{let F=!1;return(async()=>{try{const Y=await getConfig(),j=new AgoraRTM.RTM(Y.app_id,Y.uid);await j.login({token:Y.token}),await j.subscribe(Y.channel_name),F||(e(Y),d(j))}catch(Y){F||(console.error("Startup failed:",Y),f(Y instanceof Error?Y.message:"Failed to initialize"))}finally{F||v(!1)}})(),()=>{F=!0}},[]);const x=reactExports.useCallback(async F=>{const Y=await getConfig({uid:F});return{rtcToken:Y.token,rtmToken:Y.token}},[]);return S?jsxRuntimeExports.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",color:"#888"},children:"Connecting…"}):I||!n||!o?jsxRuntimeExports.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:"100vh",color:"#f44"},children:I||"Configuration error"}):jsxRuntimeExports.jsx(p8,{client:L.current,children:jsxRuntimeExports.jsx(ConversationInner,{config:n,rtmClient:o,onTokenWillExpire:x})})}clientExports.createRoot(document.getElementById("root")).render(jsxRuntimeExports.jsx(App,{}));export{commonjsGlobal as c,getDefaultExportFromCjs as g}; diff --git a/internal/cli/playground/webassets/assets/index-9L6p1D6X.js.gz b/internal/cli/playground/webassets/assets/index-9L6p1D6X.js.gz deleted file mode 100644 index f7293b9c555a771cc120943d73772d6cb1a5ebd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1508296 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
hG|(ai~!)M^K&ED5M$xXuaL?PTgrzX4XDJ8q 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
{gF!b%)+q_x2;?cQ>aJsl(_s~Zc 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 -!AZHWmb5Hdts9jyJK|)l^4$M>^>w; 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 cz=2Wz`!Y#n3j~%GHaf74(?xo)+ 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

^HYvAtA6F~OL|EC4}rfi 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

h7DC%Bmr03i``J}00IXo(<; zZehz+f*Ma5PUTmxYP&EJ^4o!piMw`z?BvqfQx6R24RqNog3A z8Ec@Q(jLS;(D_EDRQ~lY(7w_G`#-!0_4SonkIqC}l(-&C6IztN-iqZVSL#?xl*`J| z7V@uhoyx`g*#IQ!Xlq;5v19{CxymtdhR`-XV-C>saBQ+-ULlpMn{3P&e}N@Bz(l_V?W;p#Ec}j+WQzZN@B@E3(x@Vevz%j zmw3Cmj3p1DTAD*a&9?y=s5PZQZ0>2VKO@l%B?QQFIiFSL4CEtuC2PpSD@CW);*|yz zUS*7SOfoF+9ydReDoOkP^1V3Pz^Ldohkj0G5tY^$<}-tRmJORJI~fV4vl9K9MHe`b z&*&pq`BI^NZWXJAa#$tbsKm{H}J5efp6c_!v9UT@PC)IK)!It!DNX# z4l7ZJ5Hdr80 zCY2jjJmJM)Bl=lJ>NPk_z-|-%$|bz4_OezL)@Wwn>JnjOfwYYrVh0b6<~A$5q)Hl+bi?wR{Dfm(IKVI2N7>=5P2-2Pn> z*lpBz!5-gVQ<>v-iK`?$VZU86fE>4%9XmKPwX5cYb5`Hkc}l(sFrF`-!Wa8l+f~2o z+YXi@9}`)Me)3ZEyS{y{W3vBfOgNM*WY!=@L12`@Qk9w|fC+c>NRMpFbL4Zfrxk?Z z0RKS)?wCY@M@Kxo5%t^a78#jT=@a;Y4#`oPL`K zeJ=4$3@cU{#qe*Z1hR&-pZv_%uUR5|!Tv`df|QqkzEj1Q>BTfmihDYqVrHc`h9K5d zFC?wq^F!U%gTtf)O^H&AkPNwsb<_jptfJa`4g*57C0+X_aoS zeDsGGwU`M7651S!mgk^P+b=bY-F?WwutG;LG6#RgB~=S{uu&K%g`?BH*X`hik&o>j z{Vdii^~!e9*+2D;58dJ|eQs7aFDCwOb^NmSqUcQH!{8R{d}{9xPmWuIqi*m0aPax0 z?LHT9hMlfkt2+CwetRfD*Q&ct|8!q`>Uqv__s#Ic>%c$V&Krb{3H{HV10%IL3-Dcx z{hRm>%fPO98n(VbhYq4JnMX7ECXJb zjnQIq3fLOO%j$$^SYEKfX4jhmjSfCia*wWEy}|oNk^d;N{xpj8hrXhlgg)VK(U}L( z${_kHfFkO5(Yd+y>B-M#IEb#N<3>^bWT`Ac;zl|A;ZcdFp2#6{VCr{K z54=u!=C{!+ULu`RbTH1nyj67?2XhQR)hJq%p~WEK{e2%KBN*usw33es} zLASfN?N)EF-);?tUT4tmeQX`OI{{?1ez#@SUIaT%|847C`)#XpI2?HI+uhTFTf-{Q z#F6*rwAb1{ZV%tJKM#Sa4v)RgJNRgy3|q$-F-+D7w(S)xjoQ(4`rU(fZS2mV_gNL* z0!*k;kagS2JQEKN)d3_@QAXz0B6wteIT2`N|dnwdC=~|4)OW! z3#Z$G5p2scFi@u_@b7W!v-^Cf>U58ea`S6D)vEKp|Ar?bcpQ;Bq@JAaAA9|`s)ybm zZQkIZd*U6K8MP`XMK* zczSZ&Z5&3R2i;G1ok*-Xx zv{?|xFfK4JN3GLipu52__J9guI(~1#EFHIiC{f=7$~kDmk_9U450AX|@gZ`Jedxh9 zjF|UP!mc}m)*IE5gUG?q_Gpy)yni^#J@|!0vF{DoY;HUK7NDYffpaiq#GnoI3z~>b zGM^xpjzga^YqirRHV=X)myf-vYWQ3o#JcIN=-8O9K`V^F_?(2wSuG2^*3 zp8&tD=1e7FuLX&!R5la5d7OiHL)i?L5_H1{sfr{;T{-9;AGZ&vE5&DAf@pOGojvq_swy4zjZuhs~7T4xZuD%(U8pKf=rar0mxQ#B!+(l!S!f1y$yy2CX5-uR%Hmg zpeels_>S!yh^=-29uAE_m?{f~I~=?PFmJoZv>u6V+A}>Q0!6#oB1jAxQnCPo-Kyr~ zd3+6Lvv@-&5VUMTF&3aQ3t;ZpG8Durbz~nV97&BQ*PR34BLg<%y66G~>s4o~dhUSG z@CMzUCX02N-ESSd1HL?Le?$>4%j|+AXq}u4y+du4i9Mo7ff63cwtgG$&=O#_5_R$3 z!^{qlLz?HwQgzS`-n5l$A>qp8<%`|zR3=fsqy2Au3BUktK$5@wdsvpz zICqdero?TQD1cJh3zoLu9)39WphX68mo~5cyKvlwKJP7(w*FOg z!V3R@ov~X~zqK5!WYoX~fss;&Rkx^q8#y&Cr&h!$7xxQcC!qC&ObfV5ZvX|M8-*Tw zG#P_9&0%jO%YfpLD$x#MRbtBFGzNenJsQ*l#X1Vzd!dLNc|G`-?fKt+?t2FdV#D~>gBmBylPB95@x0n^#|Q|ZO}v!0{nv!8>ppVd^4XW zci2{mYLvxbQ-t=S!|F*IJ5)#)q~K>|xJJM*Bv|xPuq<@|VxxC@QMO{V#^6z!)ymaX_Q?C4dHCkAHm~_!S1G zgW8n$(K~LxX+!U5fMqW(N4NO;+g;&$KD`C9M9TnF!tKF|O4zunw9uCCLFB{Q-GSw5 zEZ?H@TqSX`EIKc-N7||>I<+b^s8bIl)fz?1T8E6f0x2mKlD7m1PF#?*4Mb>P{E)e$ zGVQAo%DjL%OwB5!0{%G!S_DmubxxlFNUc$-F~pF%g+0lTBV_C{AU0}%VLuJ0$6w-3 z6!uV#AeWGH5TiO+*p~|n~kem-$|wKpY}oX2fj@w1@&FZ?!Iq% zut)2(Ke=bcufdniT4i)yiT%xaLZOa|4yD#pspooSuM2fY*PFchMKm8(rV-TSX?2xG z^-xtkwY9xvZF}3+b_#}$!j=VvZ4Cv|17WfhY1=fwv#^2_O5%9fedkus-J+fV3Yt*_ z2?nRz1JVVmcQ;|Csx_lhs)!8&nVDGKdZsRArfZo?l2zR@s-_pMy*}GFpi%D_cK8Hl z+X}`gmhD_XOLminfTji5`gpiO0Lm9L@jL}3Q!Eb`vB^O* z0t5BJijZC|4a?wM49H6ZNQ$+YwVCM=I0hmNy@vfy_p}EZ7(uF;gqd5|4pnU32vW@g zNpfsk?Oyvgw%4KRbxU(Rt1R?0{C+2s=#u&oTqcp`^@a4=7iR(b_QfApN1`m zW!S?}YX5%F1`R+n4-$Nn;8)d2w;}ikQbzyu=z*!JXt8QBoqD1bR z=#eTlWM?Z3PR_zGO4_86GG-8%os2}%O&mt;UK^zP&`|mq40AzPilre*z6#AT3q1g; zrA2GD)G|2SCciIW)pKE~l6mkrnb?ic1bxd2eObM{wuqrZSq6983RjfLhryS+ZB5kD z;(B$hCAf0xM>{x!y_<)zRx%GBne?PYucalrrC2^@LIn}W0}SAc9PHAiSHb1BNCx!f zQlPwO9z(*V>3r>>#0c)hTv>&qYvQ^jm2-AXFF$OVz(aC~&(D+dB-d??wSC6oE#--77Z6}|e^}?&iMB|dR-4)}poL8!H?cXIOJYNBl zimtcz@Vt@%U1#lK={&e{UNvb`ODiS0h1Y=E?GBH~AlzY~>(y1DwHmA8YlKj*t$@6o z4o*9EsP^TSEuFhAnAW9ES~S=>63$v94}RJ?K!WPC5*# zeTAmWE|pl?)&u}<=S!=+9ZFuS+%VhiwSmbUpePlM?5u^gt^V3=qZ1petC9cK?s^TU zE3eYy4%_Gg*ORvBbhFQwYI6CtSIZaJ+P?Rgf7)TYvB4=?&tVRr6X@%D+~fwX3b&I z>gl~=UfESJd+m>2Uk=L7QkbIb%5l#MiF$gcxT?-7yveVGZ}jTvonvm{JgBSy?o$pv zoN|k9J-vO*ExZcXckRy%-pi#}(h1gbNGzTv!b)ustp)R-;mMJ0ifZ;{XDOZsnYqSU zVcXZ6wL%_rWg-rrr$CLdK-^BVBWuAG&{V&-)9lDzas@p2fj45&JC{IiEd!|vTcL^r zQ8C@yX%>_%WrZWwBG*E<)0`$#$Oy-PI`Uh7EZa_`$00A z&fdot+g?cSuP3AV=*lflxw~?Fcl9Njp{r&RMeH%Tq9a_&4g>kHyL*48JDM3DW#^4z zCt|+lP&uz$%4ZBJoy>ztG`}iD;x;=y8W-IprJ$HIF?xh@U(_WK zP5&|g%g2nIx~G1nP^`eHjz>w!KCI=HkPVkJt%2Y+2+?^p^f5@lY7EKIK&wx#y=&Ct z&SqLo^1J@QzGYm{2)>xY0y!*7S77F1z6P$kADV{nnBDd&grlqA2e39A)y{<<@l-l@ zFF`QZGmR|->?n-sJcy&4`8bGILgM@jY9FVGRa|vg2}8K2S%G{V;k$=_(p{N?e?#u* z9LrU!*6?1-1x`^d6zrQ2?_B_Rx}>nGiHv)jHrdxWi9r&~*O(67tL>cm%IkRYI{@Ok z0=`I;bxP02G41bmZg}G}*vN9Hae|Mb=7X|$yaB8}bh98s5jX`5Y=Jm3_Qf6Xm*JP= z_C{mLUQ#TKX7ga=-xYWy0vZE+4|X2i1-?@V`OB9qBnQO?io#(1b&6+1mUT++rxoJp z3I}US;}qXqW9%51n#3qpfC)iKnw zkg78P8YP!Bf4s>7O<(Bq>mw&XzRBAtPT~~;T-te1hzIkO5NEPNuocT{mRA7tTd{cN zL0df;_C{-NHM7ln=UMR<$_K6Dn1b5~LSGZOa_?E%faDm3D|RvM5zQ>~+rzn+pv_re zR1d$dr(>o)DEcpaPj`i%AI%DJrot!%rSSD~I=;_pE5&XfUTFLYKgLZ%8+*S=I zYQtA}`G~hb596}iMSvLKveu%vI|gbqD*Bfp`FM&PTV&I%eWZCvjplQFta5dunggNe zVro=Zs$%)BgIXULC784ch%!b@TH1FjX*pho*f@*sB-`QSzeZnHxf5!@#g^z1&@+C7 z>kbrON%6YeM{Xl=shZPDHxF-Nph^8=4?yGXJ+_Hi4c_KtxS|^dFM2HRF~Cyv`VWTaO~L{)G}2 z=sqLHI*8EL0G9D8G^9aF&^$tD+Fc5l1BXeUkoFrUv%5#NA*Vba`q~tbbuI+Br(yi# zknOI80KLsLSP6M;h<0Z}jjR1I#MJDi;XZoKay$lYpdY26Jw~_G!WxWcQM}f;=uU*F zhGRUz$5X%(e?h+OV2?WDRq^o+Y*nw=UJ3WtlUelj5!^v*ij@0M%1u)iY0a#;IBfoc z)+R9C9&K;}m9b_!S5-3(VCfGT$efwdRbYHvfWc|X8-P;=D0Z)gWQxtY!G>_f0N220!znW+#a_i7r` z!$xS5`+?0|t_Py6p=*<^F0)$X_#l$fNzocJ9CZz7E8GofT38&;!ZZo4U^DdhW34UA z91b(^*V2yiTn)Jmhb+EmV$}wO^B%!gNAruDtL4VQJm13%$_Brl2kdpM#|-@{QFEm? z7q262a@`ND#A0+{7LEVB>)OFnr2=6W`za69Xbd&avlA2cYP7=lQ*#UP}f0fqnbs-8jNC4QiTO6gH>_=k~R$^?v z&Zih_FmMVO6K*zIexQ=;DyerRZ!h);dAY)E68F)}TrK-G9*t4XtwW7VeI_lSnU$7a zDSKoC8P7@m2-F0>oV6|Un9PT{N}{atlQig4U@7=K(2wR?vSt$&C&_FhhB*1IX3~Ns zpETL(fPZE;_|Vs~KmmJLNLOm!4T#oGIz(5;U;y zhogH=7=YGso5*pV%mM?_x@P7hnECbiU)GmWfE9=Et8|5o8)X)+>_N--YtJ^V`S=m) zvBl3)_L$XPb8_`1A`w_?u+l=FYJZ1>w|iGE5$`jtp(Sv0-61u`9Ag070!7vIiHITL z>Us^JmbLYkn=2l%ymEajt>9KKvK9W6R;YZYXrz;5Ep*c}FMxi>A|rbly$Je+7PbGHKMFS5?Vg5JN)EIk*hbnh3w^;y26M!cQ_- z!^bv$yuoKS@O3TB-Z4{Hon1_1DZkN?9Hc#0Y54RYq`YuG+ywKxlK|?mM?={ANRah1 zCyT(ps5;6g13qgG(@=v}lEAj&CIL)e>}C>K-RBhIlYFG$>je$tU@XS<#Y;*cHyK&# zWz{*5Hh&7AeLycdK~Bx-C0Bj_FFu$wgN>b9mEulw1Q_U-yEvDSDtA9Jz2@-t;+q*X zSFO@?7=h~h;pjTPj1rC}6sZ!T1~yfUKdeTE`U`2SS!8i7#$I{D&$p{GhkH}VoSMuz zr3ZCnMqOqcPGgGG$#Z}@#nVijkg9c{9ht@{2okp)I&GANcG$Nnu*(wUKv6I1EKxg2 zqq5I=vW6ulzgXay9!+Pkp4@wU0prL!9*|nqX*cf4&#>{N=6oH^L;O1pClUTl=A-dn z_`?sr++4tqg`-twVX8&#>LY7^YV|sq%GEV1d!3_hZsqEV%7^X!(>JSYS4HjWV&Tjr zbph9VKe~4By~E>nqw1*8@4%?!zOzwx^my@&E%n??W7}bZrm?ed=oFmh3EjX5E=>uL zVyAV|f7=}Z)L#327Zhzg?Etv^i;mD5TMRR~C6(Bbt6QVWUqflISo%<#S97ETE;_#g zO0CmDSBnI`qaytSqPvcIc}E0)el9?WgcnYyJ^0k^v1caUv>PuM&a#J5+J|r2!*=K6 z5D&oI`)cFm4)Bi}{@Gfv2lkTb?3d^6J%3rRaS!tVy5vRh%M15@;f$`Q_y^;fcYdk4 z@aYWa!7Z@Jpf$U`9DNCr7z(I|=Z3&KV0=D-@`tZG?%zx%!MqeY{BhUFg&B8)3fmSr z9{e0%j^?eTR4qFb_pEwOkHbT;X7noL#Y*Mo#zs`W7thA`0m!WzRzQ)A%FX_(2`>kw z`sLdV_y1?_UAx=JjYZM#_g7e49;MraXm;}=Gb#hPrSWpT8CCQC3&Q7 zMU-fIi(Kpcw)@L&6`lojlaeRNPO{HgnOJN*3WWktC=?1+v+)QcKQjEw7e6FWc=0@0 z)dlF@;;7yWXSM6Q`FQ}Dq0U_+=pnCE3Z^=i7rZI1$#6%Z&= zCqe1}^vo#g0Pe3B*=^^=&CT?i9O40t&dd(+$Qj~=8Dc2b8yK1bJqLDxhX7*9v+-ck z8y+rfkzu&3^2K;4Mi>9`UC7ae%uwg9b(;uPj;L*2jOQRss(hqy zTiBd|98Zy*ju%jUvQ97ODNtkcWEW!~>2WNACcaJ2UM;VKO6@*km1kzLv10B&+w5!_p z5WY*cJUZeXGEYZxo{G#+=B_o|V=-5cajwpGcaPnPM+Kp57#HYBOjNy0<@&*pws;i)tWCzTMg<6rsa{x|t_WQ=>j@43^(8TC z7jr>N1A4V8%lPv}`V}%myWs3_L2oHnl^L{2jP)%L2`Zm2vgyq?nC*y#n71kS1~m(N zw>RJJZGBl+%!Ze0de^4c*OyTA?(!12$@&zzkm12{3nt4jm&gDYK~e@OY;56La6)%K z@Cm(I5mM%#@e;aXHl<7=XJ||^#5mY3Yj-!G#K1pfykv3cGp3w~$Avd{c=sSN8H!Hu z`Z^#nk?km4-{g2ymcyVvYFWCxeFq2F-Q69X^cm(M9HSKrc%p__7vz3Th8#n;F;8y? zS669rfuWE{=;^+K;^fnhZdn1ZY0ASlHRNIK6e|XNr`c+rNdCw4y~jLU%MSWvFu+Eo z&>(p&@ZE|C)P;<9Qil_aSlx#2{(6xm`BynuPEzeUpX+FxPS5W}L@En>AqIa@lTYA) z!^--*y9+fPIWPyvhLgiDH~IDSY$}PcZ(ed$)NJA0@PAj(2Sj%wgY6fGw0_!c_;MdvwVJsB-Ud4PdE><{A&<`{0_&q0oPY>HTfdz)uo6T z6I7Cm1#%|n6+@on0}Z^W7C~EZsr`Izm5_SVM5F>ve1_;;aeS*rgf^G`}`1Lxb<1=2usF_GSJ@QRZpXHT>gpc7*bSoIqXt zX6|mr#lQM%wJM40@kTKE8en&u3kyoUd(}>-mzPiw$W|H4?cj+3GpVdu*``?*HAJCG zN|kJ(B)1$gZpWoDNp^S3xAod*xhq3Mwa>84$!*0PwM;AaFu?uYkQSlog@R%ttKfaF z;f(()Y6&nRAcl!o0R@}&gSHi|V6sl>c{}AP%3frbOvRr!vl-02)v7LY&R|m;UHli6 zHa}M@bOx)W`3({dOz$lsjyV6UR*Bwp?AD$4kt-mss%Y2!Ry1ak!V*_T$sMX~6(Qoa zf66Q3k1Pu3oF{2Nt&yazX`Djo5oy9f03+O!p4P*Vk+$j#gi@54VDBN~&>SgJz(dO{ zvZ{krxZW@k$dWn9uWv7|U_4&>@{BWUx5_+Kp0TY3j<(M+Dt6US4|)qEVNu8)khH=z zd$@y&ffl6?+oU@5m^u6yuov@JSJ$`SHo?_eoI_rJ3^X;urEJKV0VNVP3j2>~V|H(>tn=7`0tkcbHfsOQ*>H5!*@e@7SS`y% zHNbbF5jTG~8gRvHX0q8170ywX;n~Y@vZwmQNYmwI4?85!lCN*f+ihd&<-wjeXpF4E7KA zF@8)R8)bcLeor4=p8v>RK5Bga`nmJ>!t61mkJ^9z?D@yy|M1+w$@%}_ zZ(kQ12M4~|L&yyNYs zurYT71wvjZK&k=Q-3VHNJH1S&H?W&MuCJdr9egr#d)VLHV)t?Vd<-Jf+pWj1^11am z&_c^uE^pWqWr@aswo@verF8PEYNS#%di+7~ayq~LE}?>I8lp#$;WWSgR^(u+o>Yh{ z{gG+FELC;2WrsI=T#HxN)6UpfkIr2;R^MUfZ^beR^e$0 zOOkwHy3{ksSm2Z?GB(d2mWIC%v;0r#l6F}uT{7$|;VZrL(4R@YYSkD$l}o!O=2c}Sm0$QMMUMMOcMN_5)QD$5?z<`(^C zq0N-4HiZp>H9m0haCyL^dOa`Bh;4=%YWW6*fqKL>MMysO5>l+UiP|u}kD6S9^r4s% z3B8=CDpl@!vt5epQBq5Lu86@YyNmFKikq+1N_^c+zi#fPy*c??^$VKQof;JT z5w$nt5}g4}*x<&2fL*^8QFv)5a_9+dcTecFCe<*d&K5kUQayVYv6 ziX}TSN z?-{*EqW$pr6|i{x5I%T!R1_N0=bg}8ByA%o3f>P~C_T(EVe5tSroxjU< z!ZtSXKj$K$w3q+AR|w_mvj;8@&Kxz+qd-39(txOSSo#=o`9UrJSy5j_wfm(&eZ9V> zJ{&9x)dbuJ;T5#@S_vsN_L^Nh>YyekR9d2pB6h8U+(EWcSLhtA_ISw@;q~>S<%owb z1s-QzYp+DKo$bSIm);u`)X&@Q5J=lD4s08}uoR#Kx8I=YI?*HskN3hEp$U(9B{rm3h0Dwg-OKBXF&Vl9cS zTSu!GI$GJ`mM40SqCUdbc$6xFa7=nzSk5D*t`6yl#^>f;_apR3Qt?=Ll@O5TQ8izf z57@X>!dEKaV_2LU(98U$sB>rJAwRw+X9N6ahX2TS{qF^cpHJ3@6>m-QVYq!BbJu8 zbv?bAr$YJ}*Cz}XXc!W&20b8T96nf8-(}_uPWlL=D4YqQ;hoEVGXL(+xs=XA$*uxB z4=zwdE$hDm^N%snl`rQ`DBQc|1|iwe;@w*`pqx@@7vM4U;q66KR*2D z^z&(w&d$y+zWjE1mF3rextZVIExs~`%K_+NQd7HtN0j-<{iE$FN*xym<4-U4{&TwbU-i9%kJXRQKk|uk zd7xJOn|>VSR{G4$l&238(4FS)X&9;C9uu4n?TSF zMRByu2*VT@JXF3R2DiN$gqHr6_;$}MWuRF)Kb>9!g0k4#!Ap?p^DGtT+Rz)qO;A)W zt*pRO7*cHE_psS_@7D~rq^@$m({Actt&aYMzMTY4UGb&*!DLe^O@6Gs7KrTiNM=u+ z1!Q3vxDpp7EY}y#X)jr=%I?wC?U0?u1D^97UnkCRzoi~xW??cORI3x0H_Ysg*dOfW z-NeVuijBOmVX{p(jo;Ue@(WPyjRdW@V&s#NqE`;pC)(YHb=GiK9W zG)U~<#q_2788y3xgyC;y)x(EbwJ9=txX9??B8%}7r){DJuE}PaU#lD(*MXP|Gng!F zz}8$oKA>k;)8onSZKi51AHIXCdLW0 z`@WTeHLlZa9OiuPi?(p83H2+3^pSF&-l{kY(p5znX?C)r@2U6cXC0rx^V+MHns9xf zagd&guJT1XxJ~g6wHxHz@4>%~-n_0!B3;bB1$ijXM0o2fDlw5lG(U;xFeL2Mwa-0^ zVN#PJ&6S%Mt&kejF3{DS%)5a7sfIqeO$vUn0dSj>vu%X=-DJUo-i`2J21E#1 zfj@t8+@f++$U3lei|3=;hq5GMEVC%GdOB zg;jv_%+D(m?OkXmf*nAV*Iip+*8mt0dAyhi*K0^0)X>VhtCje`z~mLlc0tJ3Q@*g8 zjec*wJmnJ}6oiuoY=o86VkUah_yobo_Ax%X5%R<3M&!_V@Uo&)6mfqZc z!~Iaw1s0k5VINFjms-i?1c2!2@uzv(gLrl}2fb&Dec`y_K17GPijRtF%SqH_QEVwoneU|CcTt5E!yFZIYY`ugV&jc(oeCawm@ zkYSF+$6<8=?Sxg6b{yJsY49<*Z>+Su?)NgiL`|XXDMXpox zXH#=ao6s5(_sPFw;nG4fU#OcZ?sd&E$nt|4^pXbfO??6CY<_9!!^e=hUc99bZz)m`RaZX2 zDT>mBRscC|n3p>!x$83naWqldqjoui1E!Yq_*u}|qdf$|;U(xTbxmkJSB|WgKj3K9 zYRb^dpe9K*C4SJn-b)A99pPCT`Sf@&+1VT?k*rbHbY zwYK21P`RUaURl8k&gBT0CuEz5_AcKv5lz>deZPX9f7SQ4}eLU8|Jz+nXvb8c};29%Iyg)|uzWT&QWyl$#Yb&SGS%@J}_u0hUr= zr4B+GD#hSOFC>b{NUV&RETSD|=HuMFR-T}WQ8zx?-9<;$BREy z#P2!E$H_z_h#w+N9uMpj=&+khqTY+_?t(%2?qUs7O{UL;-_YD__7b%rN07atfId{s zp(LG(#Rj}zB{HW-HA1e-)R$aoY3(kXpI^*w1DS;#;d~!6azrDB; zp(Jj~9{rIAPsU9w;tAVyCXQvorsaOkDyIklz4=MNySqDC?M{UL(32yTS{Tg*usrq0 zn@txNXHyXVq>IW5Ow#1*^afp?o!;Htq}k~=1aFD~lh8kFC1sE5o)L;@kZ-NS9zgMZ ze)C&;gHAt7VMhays>s%URx>!etkPsd{ds@;9J;;A;e%@2`Y^Gi$zzY+Z@`O zqDJbX4qW-5+UyAs)Lkyj@a}-6APcUgZ&_ne6|zbggp~=q$8L5jctXOUdeFf0FK`mW zkTBP`71#}W2FWK$AQb;%lHszgYrpbBD4Jd77+wJ6sN@b-gTZ&mmWJ&PtIIXW4bKN! zH`yzrsxfMd*dk;|#+!7J|3=6N?7xigYp+%7Zyp%h2mI#?aI`OnL*T7nB=YZt0!B^} zjJWasQDbl;SK0@;UT;$Q%94GsTgH&=&1kTkrlQp}4UflZI;q`aII9eGeqnDZyYd0# z^N<}&nD0a3EuZ3hJpM9qhW85$DI8MVJ`WTV(}~9b*P!wRY49FkzCSz$nD0ZKag*{7 z5J?#Db_UI1(-Q5)*hwy<;SVh{= zjm!}rhc}oL0;f}~4!~(n_oXm%UZw2BUOAXqA(Hh3!s)aIA}mpji1TwVVk0rx1Ly;q zr-U{b%q!*3-*xXV=TMu24DpjZJIQh=aJ~E@9V)7tp^6{VHsJ$KFRst=WF(VorJpiN zfRj|4UY_MQAkSRQ`NkZBr~4?HnAN_)Q^F(vle_z^?&NpypITPZI{)U|^({tN3ODrir}XrH zTyN_oy}e1#kmKAKBn!?`F-*d**VpOI%P9u5U>hgSIGgaa&;TVsiA)?68VF(Q-q=Qe zTkBFV7VD0Xgm0!+(dn;&hx$AHTUzK|;Z>4bNTkW!&j?i2X4GmX&ge3Hh zfsh?N>nXuiq|7eai?nc%$}@~$!SMjvGdOYwqpgI{E7qlZWOUN>#g{!pBqeghBKq2E0nWJ5Nj9ykOW@m18L z`0ixNxr*p8Ue4gj=he#}E28Wi0*hplm!<}O8KaQ?hvYqf8!aU{*+VO`)d~|+O&V);+f9~SoWXfmeK%sJgmslr z2kH3o@@FSaVB!?RiQ5IT34H+RPf~M=VSK+@0Uq~CwVO2J*TB!lww^bY0m?vHo)m%l z5wNxs4vzKbb&LsnP;WH$>kW1ubsJH$88w<1((^p-M)jz1P;bV~n4LGekl1K;>icc@ zYIdVW>!5Sch@t~_-s;Bfdc70J2XT{~x4W&l14Y}77CYa^@VQa5br8p`HA~iO;=oDp zb=2JX92^94;NkQ!$H46gvF8~mqrwp%nAl}5?W%l)an451oAE*OpuHa-w2zLC>THDn zTAD9-8AVNqv4sqJwP&?z;l^TXD4(6y!GTRqkg(o$+Q2fWdgKZP5H?Rn##-o~K zIpW@{*t2bvpHxfM!fsL{D;i@G+BQ#sd*iDjdvoI!9ueE71@Am7L#RGsLyqQyTjvCZ zwOdqqFxvoSh#F0Q+6|0LhF~G5z=F@j_|Y6muccU`S?#=zixd7vxGdqXSdj3yflCqo zHgOTc-xe-E_}j*n2Y>h1Jv{-IFaZVjNRM1Df-Cp7$ork~LA z6WV^lJ|rO9kQPd6VCAkrw+$3UPkvJd2qv(e+)3_DwaWkZzbj0CRb3j`M_)nZW4*#~ zCjp4#D2jlO#m#z$MV*6#W^*4HBx}^02aUMV+=rhBaa6A#wDue9pdB4__MtqBTJ_Gs ze*NG8U$nFu0Aat`VZarEdp6=2YPI8LqZ8FT_?D#(oU~bwSi8OtTr%E=rkZiP(?Mt~ zI*42K{Z69;^`mwSKjV6v#qFrsffB&A8*vjjZ`?vqokj~8Ho$7uAuVq1?>C`r6EKB} z(17IM9k#z;k6X|zpc*$10Np5#0qYjv9kmbO=fOd{-fkXrps7}?8OQZbCx#BhQKtdW z4p@B9ilIyg=+XcJG@?cuiP31ZTl+vL_}S_-aUZ~kKd_6$Z6rpc(TSUo-D2%_y8+#; zw*Zv}g2LB9uu%4ako)*h2#ARr3e;{Nw4l}fdL6LpKs}&W1hl{|0AcG$VJOnBH}+Y) z-@vQO1AI>ebZXS0HGC@6I)IE0Kxj0Yt^GET1rdy(i>*$y52I190}`Ej6X^6=OixEpeJ8H35G*bt{vA6*QfQg3}xXrlJYyj3x#HkH< zUXg31)#i6##W<$1Q$Ls_9!rrr+l%**u^Ku(; z_&h!0?PgC^6}FyHTUdFfxMStktwX5d3Lipo%ujd_Bp51oFP?Z1Ksa(EcE!cReh zp9kWz5q=V1c!Lzcj*sP|mZ-458XO+RSbl&dI`|ni!%z6tV50e?isknw)q(gCwI}Lv z!H^67x#WU<9&^DxKXAc3zi`1j-*dq_Z&EH;XDa^gD|=SehZzrs&|1729v(L8fC+v@ z4g8D_)MqSmBN111xVu~(?*_w9OB6}dv>F6oph$c51$xqk3iuU8;xkg8aSK29!>}6M zq@TX*2Jb)Jz{#O{@*7GR*iFO@#s)Bb4_JSJ4t%I4Vq5vZkI|$7`ZPBM#G#l&abAY>Z4IBe25bU{wO&qIA;R!M;b6PX)p)#=H8RW&BcSV z%OinCXVkSH+HVB`UNhe2!~APem(_63Heo^c_lIAz-?IE`_T(H5)lA7Jl|NKx)jw4J zfB^tYL5*h<)zv`VTSGxqP>!@Q+(<=NCD(K#g8az9E$-%{(8OhR3MrqDXuqRwV@ADg zaGd8AehBK3xrfIH)Zto6E+fl1urNSh6*j zqN1d_r4-#DV|p750leu!tNCd`j0u8+7`|~dmWK}h@(zSMX?sfrej&h9pf1R;m%*6? z4Q^F;S)%+|qA5ZNU4#vs_(`TV#=unhGsp+-`}6d)>n)cVA){`=9ux`sCU0+#nh(}SFsRhH);A`X>fmXBD7;CC-Ri7 zZPAKV*CDXJzuaBiq)(qVQGN2_?hLKo(&Y6N&Is3NiB;C1R;9#-30?noI@gMoxK{Ed z)G9(*ls}DnI!i4c888y&ur9zYT2jQm{`^}qi!Dg`DIn{QqA@5Qd+iz@cvtZ=K2S!v zraL}9JN4aNjgo3c9G)d3F^*#gJH~NrNIIcvjJ{>3+Ki#OTI~#0D};cml&E5Ckq9Vz zeKOFcSjK6v?Tk_9oiryUIkWy|OoYjemu(1VD0z~ypX4R$i7`eHzk4%zTl!O45;Qto zhuuw}2Y(0P4|EH&jjdz}#O{{zaKbB#iVZjqh?Tt_Br?(5opA8PY<%%U8(*b-%Ip_({hL4Rb<%dKZ4y*rWSeoAjH7HRV2xAfbSi}{n=Jb!YT!)af3 zb7n_oq2EF*)^g*r?+cUXBit8~ydO9JSC&tb#JWA!%rzyy-Nj72P6PlY1j+6_KekNV8m*Z<8RYaBFWq@AZ{4>w z{5}Msu@oFMk}j`P4Bm-emUV{WQ9B#DsCBDjd}W+IZwmY+?lXb( zK-+cNlQxQy1MB9>497)w3fXw)JI<^sl{;V6XxH*uTNU@^cJo~>>r2q%jHof;d}r(J zW|Os;4z=|3bJ=aPyonR9&%}+Ua{ni1Vy1rhm++bWy;?4=Wfa8O_L{XTghdR zt)pY}<}l=&3$2;y$JSf)@^b11zwFT@nOH9Jc&C`#i5-MTb@NoE?#*6{sF(^)r(p*3 z%vZky0t(PSo>J6>o6iz?|=yV2?W>uek^w9>#d4 z$c!&SJX50WfWqhW^XWre0__|A>A3{-V=I@C?|B#W4X-kBxV}jjTlW{^eING=)%1ef z%IeinU8;+u#9p~r2%G8f_dupwH{k4%SHhI-*2U+afX&Vx6vkd2|NVtAVhXvHt7;YlT=Zgk`RIag zq($MDGk^zJ_;RchB0a>z|64e#CRc&Eeh2oO7_N2}Vy3ftgv_?(%F3e#L1CI+0TrT8uh{1#vn2D__uR4_0+p}NXOMH_1B&hR3s%J4PXkYW`$ z%ww$`qh%qcNn1h9_DX=2&bb*dz20NNCXWVNUze}4O?&je@+#Z5riyd+pM916jx|-* z$^W~`{##dB{;;_6=ATwv`75Q6{9jrM$$z&LlDWpG{}hapu)^(Iw?{O)%1N1j9!}}A z!3X;G_uzh%F8`PFIh?OVzSy$1v|Ms~^WXvR-P`|}925HfuY7KEu>Ti5w>_Rw{;P9A zp=BxKgJrb*Ka7dVTSjNXh2_)SWo)HOK-D`ty?ThT{qg0`|GXCje-lop65sO1{(iHw zj|S>%OP{|B^HU!0w%yJHCk*Z8ElF-3xxu*L%L+tedWm6{1OokS;N0?I_hBmCPR~?> z74uWJlhsT@H;Oy9yxgPAQ)=^66tlJ=2lx}L`|CWB+R>|8e#&stCHz@$o<#lidjHt-< zGP%;R472nGi1sI_^$xvo20oM$AldY)b2d(0oz`PM z?6tkiRsVT~virwMWd(WW6L;-~icGxfHMahjmfQ|`eYKL;r@8hMm-tAR5n)t{ths0N z`ZiLJHXbHt?|~yT=>gv$q3PS%vg|Sub^UicX_t${>|aQB{T|-puh(sIuggik>%yS? zazAnI^uM3EY}q1=n1N5qOSI@VKYAcPejvY5n*Tl2H?U}AitputK3d2ue6sh;ma@+| zx{qL=r4xd92q`sL5VPILs@7rvjXXB-AX|z^hT9BdLKg!uSf8JS%W}DA~{k{B$PPiMjfU@e~GR`OHkyTDv@*L6fQxosx5&E&Qj95KCe2?d1HtI{_8bJxak>pV|k(3;P3pg`1y zKQnST9E2(=B6^fDZ*44rha7g)Xm9jG5@{I}|4y|j~?oKm8Tiq(oZG1ShF zaY^=aspW;1q|Zj2P-$>)MX#u>9H@$5p8^5v=NLn(X!Pa#Eg|UzdF|w@c+V+Z;AzCa zryklmuTk40Tx`JhU)oi|%4`P<3R*4MT->T~+UUuk1_Y*_N$t~GILJ~b?7O?&wh1J#RxL|<@KjL9A=yX1jE48&Ec1`5|3n|3JgQraDc&Sp(JzEmx! z+GpH#?1(PPq)D!{bdk5W;;Lg}Vp_~(L<=Q;f8{6X@_L#j|DFP>RK>kBvR9NiRq?vn z&Q)8heAyS5CnF6BK2D*L)xzlqEAAJS7q3Qp;t`m$v6z=C;ifv`Nk~bZ)6b`y>l~N2 zb2{7H&YKN&@-215K$W#~d$X~QxWOu^1G12u9*V`V*PnTl%|GW$b|L<~fg>8bx`0pk zr$?Uq*}=M3V=l^~NPz*_o2-LD*BdbgYsdSMc%QYJ*85#X1gN+rA{D|xR2@Z9IEthb zo*o`XAXubTNQE!_11X>4PD6k}{Cp@EWr=_}Ny0$4g%sI(Q?w14*t!q7G`UCO^=hX^ zyv~lfd<-GMLO}ueeul2wjz1k^FW{dT|7qYq&G6``^C@n%c4was4g~$j%L$*!{-F4^ zWD6dQ;J7iv15e!iGy@=Q{I~OI_GyHoGscC2TIl3RIMqe(MdG{^${NA)6GnK2TJS3o zzdN6npYl%wGb$ed-w%Qe9|RdbOc0HQ>^yt`B11rAf$&!7O|AnC55*VyBkJ^)s7LNE z`7w{W!II~nvN8S-+L%lx?D!Kt2pu0!kUv{TQSMr&VUUSTjpqrJQWXaT_VxPnvtU+j zS0mxkuD3WG3CBq}oJ1EQEXNPR{eK_mBB&@N_x3JOc_Qdx5<4mlC?nEv9P$ZL#}tX1 zlTSFk#{*H94XV|!J39iFEL&-c6FM#KHeuS;ZP0c*wAqj)!o3vqVK(`c<9hgG1H`WwBL|3I4fLO%SlZpB96e~UU}Ojw?!EpT3ZgBlKuRdG2Y=9C5xya- zuT~=y*|$f%09?OQFi~odU+#ch2 z-jOrh@CZU|#LNC}Nuif+kx-r}J?~MT*Iub3k&ZY)DuE)|sqnUDg=;(%NTDAi&%>rV z6Y+)6`T@)JK|GkichV2Sk7o-%ZEl@cEZ^Vb+Fo@Y-KBr1%oD}AFq6h5*HTuxeG+4S~e zksf0#91<2sCBKEuIKPtVH{!QN6Jw^!{HL)a!)H|jGoXNi@L7=VWw1?4Cp;$>2B+W{ z`G`0vWm})0!!TZ^qx5p7n=c^~ND9ebq~x#EhHy-}si0Qc)2_;BivfD8Wm3ZG;Xi_! z4FBPywI7fzWtr>@L5Vx)F-z~5+hJg|5OkA#+I~*4^cOdh?J7(Yo9P z6ADA;6aAZL6fF`(YifqiIECl7^6uiwHsbYNJ4X@S%z9xWyP4a7&bA=|hZBel zJ_GXFfq)vxp_r}@=Yo_(2{bmI(dch}D=rqomnaIT!#6-%%a+bX9B5NtRpBa+30 zRS054E{YU>%YTcFV=BAJ^V_Efq^;FT!(6RQc-;!Q9K$$X>;&s^Sy{s9aFNDF->yFA zmrwU)W~U~<*@^tib+#_o<|>CtoPR+T*wdMI^Jg?-%ni)@^prd0y|}%K{YfD2lv6Vp zF1L>McE;x4u5_VyQ!J;E>+2t;EaZ136SDIVwuZOUucD^ece#(R+=#M5TOta<*iV&F zuS?Pu2UORvJ9QaW`hKnA;+A$>HEpLoUa9rVfahHmbG#%ImBC`UnC^1YacB6_;_#JW z<_w2*fM*GtdmW)0b_qP)Pl;w;)|Q2(Ct%A=K-(|dMdm^ApbB?iSfetQ8BbnA!lc6P zvLu~dWNG4L{;E@85>`qA$=_+iyZri{KoNsjC zr^CO8eM1TiKkD}0klLcdDP}~+G?xH}7r&)X4=Bbv%C#Wz_obMZlErLAA(Bxzj5OBb z1PkVr>u?te1_+;HorWEm7di&^q~cO}FgIDw{Bv6nPR1xUkifZV$5M%a;|1`{FX2~l z`?c@)i!P_+K@R%aS$>JnL9f-1!TePQt>55fs>eZ-T3I1>LHgA6dl?jO{Y?Dvbr6Pq zuY9*8maa<$L3_V%n%h?JZoKu)CXL6wlq=OhjR|$r(t_GmJN{S^!=$=;t-ru;N5QgV`U|G(IXhT&fWbpdkt3SSa3p75c*Y~4?gSge)Z`KbE zB6b6_=GTktmOuX#^t<)dINCdyd`zB&PoGmhG{EZ+kUj~uH0#k0Q+DvI(eD=C(`8HTP3$%fUTZQi zJ>;rwQBcd|N*X}!O?n0s*{l0DJ%b64a)92yOx7sHT5}_Mky>)!h1{>{^tYcSuB0RH zWvV8sTt|hS&g4iMPXBz7e)VwwNhKq_F7qk+O!Y`6Q}sBBLhWW*p>|Ujg0<1{N(>;0 zWJm2{e$*xf3V4WHSY6<*qy=1&9jCy{%jwm%kcSH8R2D5>KDiql;gQomkMtZ;2g zkWg&SspC_**S#|ZHcJ?7vCG-jXI{YL#P^;OJ{{5tFUwRzS;#a5F3VA* zD$Cl`*xhD;g|R9vv8l~F+9-zfbF&RgDpa)Gs630TsX_t6tqM8LGAqkX%j;Q2RvahI z#|k-`hZQmi6D#Bq7FNh346Kl+*;g^c@~=W3rnp`+ zMi?U6Otgfw0=THdNo^Tr;Md!WOIJiQ$=f9@qKipNB&-2X$|Niycnyezm7qZg2&kv& ze2(&$6_Qa8po|5viV7A$eg+j(jiVwTfY0?Af3aE#A@1`vPM+QL9p^Bcrc(hmKArhFKE zf=A$IhTQ_%6r2#6D0F63iB_xV9Ecj+IbE3ZM9Rqt!ph1G?uo}t3ynZD_0#QP%v}tf zQ{m}@r^2ao!aMa&g`V0Ox2Atjzs+3@zUdMyOjr~7y$vX*V>8@h>%%txO zFpqW&^G7^~GsbE)fawi~kWt@I+3bi+3Q1vij5o0hdf_5WVP(AH9bBt^-}PB=2?v=G z2>VNrr)6~z_6I5~hUPj8@8l~AlUk^NcpMrEV@|4;+a32!6-sAI-5Sh8UV z2@7dpwlu1`1<}B3YIBeF&Io@lj4(Yq{Gt=(=|O5LGkhO%nrFbV?@n*?o1WDsacxkT zx&cK}3m#5EwE0jUaZFR(X_hGW7U>Pl3h(l%G@vl*>@^ct)wrq7^sk8POr>oUi$+MXTpV!E>P)MG-!HQZIo&Of$h<{Y&!oYWG8Yc!W420)WTI%dPqD=GcWUx^5sE( zLrTHGFTXjh{DLV|!FVy(<)s=|4z5Ppj;xZ9QmS2T5QRPv%U~=>r!f>Cy1U{-W2Gpn z+gCKT=rHop;%-5!1&D|ifOhMJ=1@X4T2S`d`p!9qHmP;X1lEbstVzhs<%1D-*(5Vl z(@auE>+f?1wnZP=gHS8llNhOmI&rUI)QsyUG~NgV5SFkQxymHhnoQ)jxh!iDSjd~s zxJ0u*o^)+}SgaC)xiXeDpKNcOy|vozS-g z$gk23x7Ed)dVM{Qc7yhE-oEE`6vih8J|`{N<}WYiw=bus=jls)IuAI&(L$JcpWxy2 zqJb-L~OCC0l9WJ+v^e;e0EX&}ZCdW@gp!qyM z9Y}L^t)aCvGDOMu_9RLEf`#x+9=?z>n_#ZUvZu*HpmMhf=6u55LBHix6dSEl_1m3% zevQ_c+?J@xloD$HB<@q`#jrzlmb*ALg4Ehy>;(B?T`8SY6MLnPuPv{Guq)ft22MGH zCA_z1hEO~@aR*W2!V9>$bckI#l=KO9phtHorX6|${priAf-YJ)jiZT&B7o*@J1%n3 zgUJ19>R!~j)dLsVEIiWlgaY6$GzWzT5g1A8koyIv$;6>gK+SCupiWS&+96c$O~wFh z5{6w2H-xY0Q?XDzv`3V30te=;UT-xse_r?#g*l_*j1hCF< z1Y9sLy~V&pz8t)#GqDRR!X0Grnqu^8#swJgqt{VP&kmXi~ahHWWVd zrtXGf=ic<%P;BlEr&PR{vYgZ+5P*l74|>TsJ^gJH+s8)`1VC{Qu(de_A%hK4h5roikxxf&f`w?zg_I(c6wIoXiqVhCw2CxHInfPq+af(HHH&8@ z)p0`tdoKO#o=Xix*yZ$Zc9Y7h!j~{>V7xzm{PeW;tlAI4@yE&idNp}|Ca%8!l*1B+ z11Nv~>7zbx)~fxN_7MMZ^7J_&c~nMns*yM-YA_u7MPx)GYfI;;6*`WV0Rks~EPCneQc9ULTV$@zrAy)bL@#${GWC2cdNHmC4AwYX^ij{tXCK(lUnUSX0r<904qB|GiGVQYzwt0IH^Q? zDPA$iK+(FCQXjI4eBw|sxL`PiLcw72DZ%s1Yvboj&Nvof4|RDUJJ` z(F-ou&klSH_3;fj0>W~ZfkKNL^jtzl9wBL8_aCH9+o8?=R@xZZsEjs_@>!!MI2Y>LUTiK#~|&U==t>2;azOfp^Oa_xI;yNkyv z(F#<>k3fK3tw^Jxvhgxy)eV=^826f{f;dRn(uQ^O?MljtBaoEZE{Ys!yC^?COT)TK zA0%g7Qi7ncgt{3gkK;~Evz#EnY^p8bNCwb-akOc=G4}kmXDSCN2nAzu`>1-+*FU-y zq;qA`&1*m+BR8maIBk-Vj|L~DiUVBS7inFwJb-C!ImvoEq6?S%%}~tZ?U?yzU0T!N zMUT9sB6on$Mx*VG`iEj#(=-^Oj{e zPXz0>oS3x4omQE<^4x{UyrJ}lmQiw3+A~TLN*_k?ph#Jo{Hzk`ZT;Vzd)r0|9NZ;9 zX~CpyVwV>^b0=bXp>ucQloy)2BPY4MF3D{b!r~*J#Ww_txA0?bAh6+!w|{(f^5X5= z7avYWga3R5wc~o-Qy4uUOrY;z`ihyLqQ@k6O794)Rx9n*;joCsUZih15~>*{CxB{I z&Uz-@Vez7_&vrOSj6=P$1;hy?qWBtVC7N6^RwGI1OH_tLeaNUS8w5=*k@gxqqT zi!xl5^n~HZiNXL=5aLCWY*Bg28R5bY>1?o2xC61+(0AxoZ4K_!whJ{P3zgzP5n>b$ z1xjX2s^zfn;H~8=Dbl=Fl$j<;fZR4*+a{6m_&CkEQc>C%E{&_ceF+4dQzWC$Q z7LQEEudm;{{pr=)S3k+D29N1|^4;`OT)Qf~nexn}-9+TOCOUAQnq#=oi=U_AX`bC)WOr%r3))_PhJ);H=*8~6G(a-LN?+*TrR5ap0p}G`vKG<&j%z^5I z0^yX_YJ4kyGxHmW_(jfTGIzK$kEE)wrBsFXWe7|?nNzcA?8N@&w5TJozRStG4Z=f| z=K-;`&?w;f%`2c@;JS{?$G|=&d^}*u1f4`0DOEw|v>}JN>eR;XZQeAV*oG}!PMgs0 zrJLrxG@%LzPlR;oUx1=$+rcRLfj5v(M*2tk%1DzjC%BZeljdf267$$RAB(p=AB#6X zAB&35$JFDB=H>@tamfQQ`+_3g`~$8XA~f@S|~6yDFjUfiCdDeC>{ z6u5`egRTe;YR#^9U<GS#|T%>yegsAjC1DhPH8cg^w_u5r0^8Hy&~SLu8{ zJrhalr>sjRt89?W!>+wgN~@KMtf1FKSH4rRt6662=`FH{JSpF~n_`b%t%3z*J2B8n zu(2H_sKX91^tbMj+PcMlO*iXavf`WA0~?v$SAaQo_KGN2;214%ThS9wGtv>+evVZa z?OMbc=&b;al9#OSpE)nhFz(K^fuCIyoGuT~!tfW^X|>}i&%!XZ9)Nrk!)!dLqH`SL zbt)rfg$R@r@XY>>xh-N$F;B})F_ro9i_1&F&+T)D9)kto8 zR5mIAb;$-VR_>QLdLUNMLB`F~1xkXT2uX;A#fN}pozQO{gkZYv5(=^ti!Z0BGjEPX z+?#~7qf)1acIF^zzskj_26tym>%m*Z zmNQdY8*dQ>!;-+}?vDPzfvy1ux-*9gA$`>a%yzir7Dz*tDSTO*t-`$j;=|q&O^EL$ z*I$g6;#>s>!~QWEET#T!WlP^y9*6eSxRxhCb87tJoEksu?tal+|ARO+e$l7K_ZX(9 z{N$%mgyR(Yzg-><6_zO;10|{xbYq&1kI7l^PM!tN#j)wwo&|-=Q%JC9!5uiq+3U&_ zf1is}n=C4iT-`emMDE|)W7iG(DFmG0;OjgJ60XnR1C?)-3iK6vjwB`63Cd6OWf_!! zQvirWfdfgr$SX@tAywT0z4D%*y-KNe^;K$I2%UHZPn?3-dVrk^A39CGC%dkix!j$` z#Dt_-ut;gDW2Tm*fftbC(k!LPDmojjN%U`S>yRcIg(e!R37Dx@7xUC_;!?mg(4CoVm;=@MvDrhJ#_o&=VRp}2%9DI$m(YV6BO z7+Qxy*;-OUkUrFXDJx+{B*d8`&%ks@dIZ(o-819T0!~ggBQS2*|mIzDrL&gX|4D*9Qn^Cm9gVN}Fx zJ}4449g(oP^<6W_;z+um()7AqDm1hcr*ZO`q8K>p+fH@Q?7LXDDMD~yf5U#+y<2!iN)U{^vH7=+ynMckXTpPCe7=utusS9sNT1Uoxl z@L*mnPM4}fD#ys$%t~IErOYqkS8=_ewLEWVrSqR&arrMO19b=%Mq2X6j@yE;*!9!W zuy5a9c0CkLYYq<3c996&Eh6a{Yqm)-90v-VOi|vG*q3odExeLy0}_ zAv_GNc{o#Gh8TwfA%$p6vxM414D*1n2yC(Nm*&ug7m&jz9%vIQ`vaM)u|42@;YonO zEQaDJ_d%`QFZLwo3`20tmK&(Q+C+Pp3LnDm7lM;sM|ChH+9~2T zeR}&czrsjXXfNo$Y$wzA>D1T)6f5#FSga&5;w81E`lMN=e-WKgW^GQyP+3LESI!G$ zt+d2v*)ldyPdM%$BReTWDHwz#9;mffR4sEC4SLN8iD@YjxBE@WwYvpjwJfv{fxQe~ ztuo>d#QIm+&>Y{02BUL>P88;J&*?1N1TEs55OA5p&$3X#P*cIDzA;Q(IuN`u9t$q` zjm?Wtvohpr9pBo9-7>3K8S?6A1$d(gDk3vuzP&sk~8 zU3s}{P-E`vw&pu8j>w&aXj3`jkidl(4&9ECZKs}WYn*G_YT~UI?mj3T@aG?EtB>QL z-yMG%f1FI7t%7mo50elQg8t6OC>($K_;IrO_^}o~>%-^A$#YTvm&@rzCINi<`1P6V z+x6d56LJGMq(QCVN2TcUH9&_q#&fFU))harY4q-{abdD!`-t#Sm?79{AF!}j(_Y); zRKuZ*Fb#=`HCO#HhEK%o>G;>zFHc^*ef#F^$-7to@eU<=I6DA{Gkz{*hx-l+&rTzVi4{?8oc}_O?s2C zo5+|-c}qOf zvAjnaHFF<0IuKN*zf4$jpz2j1?Cv>Ev)n_1xw&p(Sb#W*U*k10K0L;CTa}AA*z12x zs_^4u4gQAxP%me-o?~Y{hwu#_L7$5n0OF%q`ReEDX&8!Et*_>%)9X||eEs+_`1mpG zL%O<+&VQK-2Sg5vK~YaKwilYUQvmfcPtq5+K|RD!Z*Ak)3g0PrDSeRHA z4Q;W}*krL`f*d&Y9fJ+~&bKrqfg7oTa2fl4!}u!e5f*(woS50(!vb)DhE=Jqvb`qt z+&=W(Pkq&n`Yz@44q=f;GIe0?(en&Lq&~0rD|_`ymv}fcq;U~)@Z(NN=ViKja9(n= zS*dhsEiL=%I>2CTbu$M#-WN1F$1txCy^sQvih!E270*(%<1&}@SYIPFY2c=L3pRZ)jt5DT0 zH|=YwlDKMj4mbJ)ZJvU-Z^2D%=Ye)&PnUUD#z_KDC&J~GZ_@Fn>3op+56*QjQ^)I| z?SiPpNp(y8CZRs{92#%%ox1O>2kBHZrVdi2Ef)1zFNxkP3@Zp7k}+$d*+A8M7)61O zY||N8bY6<4;214h>n~L+GLW@Ax6inp0no-M3`23xigst?kvSsHRx1Ft!(p50?(AUr z*MfZt@dyrb5q_wi2O~C+J_i(mltThSO1nH&hq>uEv%_OYis@pyyhE|g!>>vUVj5tw zWl;}il&VjaNvn2$3#)CDk{zwY0g)oFDTOjY&zg>I(Vv?(oi#{RJF2Et>r7V z)KSnVNF$HciVi7X?>-`^)7yY!pm0P*Me3ee<N>RG*b9G?F*ucGE`d#6Fe#H z@di~=$q`uhm6!IPoZk|dnHRUNLvLw>rnB(uX-c_-r4-%f4m@?4A3jqjC_A`XkcPuH zN;oVnsxLCOVPIg%_wU8Vjo#UX${Ylp8mv&g08lO#y;S6Mi3`l{x{QjV3U2-srkZhr zk97UUG^5wxVBD@xoWe=~#Mm)hk3qI0v%ED+lhkP{7`ipM0D%IwBFhgDU5Dr7YI(DK^ z+X<<2rV{%oQrtt4xw&p(F%hs>>{i3LgDQ)gBBroXs9}AfwQUp>y(;_7*UWzlCG}s5 zcuZ-E8)OJ%HBKQo&Scx0oXOe_;L{6_-_x_DkaTnB7UPKs8NTDRgPL077aObf?2wX+ zk+eVP!U&JJ(eL(xv_IS1gF&1fqHvG|qw#Da44Zdw5PMdIQW!u)o%=mugcz3g@Ws4} z9w1Rqg79Dl6rvhy0m0V5w;LGz=+C#>Vn~5<2{95S})Z0sjb3{gm1+-sQ_t4FS}I<4fw@R)|oaIa})++nfEoQIe3!!8R2IGNh ze!>^Vs&PPgmjuQgz-AS4v&@_o)!f9;sA~*#;dxaE{vsxuG0oGbB{|xl55(xl_tc*aiLjVAOq2NG; z=76*5LMA}Xk^G}yTtGW(b?$U%8iNp$J3bhI}{`v0m_Tu_7-FQ&XYNt0Bz#A{7 zxF6b&5!dSlh?(1WFo{`~!vc!1$P(Bq^&x&}+%O#RMSs{GJ`2z{FL3ZAou5|vdr{Zg z7iYB#WcPci{Ob@!cY+r>WwpRD(E{tUgEdxVj!f9*j=;$Dn$e4gk$Fw#IElp*(^xz{ zmOk265Rc0Q@#f}NKyPl6^hPgN9K6(AulH@w=?mmpVf$!8nte4gDjcv-4Kg#gzdY*C zK80FhozNw42_4FNsDWljl#>D90_LpHxz`h~Ti&ms!Fve( z0d^;535aQl^t%tpt{u0Da>$T9lJ*P`Z-fLccn@LOnj$@ShJiek!do>vF8Z;hX5!L5 zv~FJ&s<&#=HZ$_mSq?N;nQ>_*{1fRCjm;(CpLjynl)U^y6xCZR{N@UICck8&dZ_gC z6jg$7)H<(SO_y#Mnz!lv)(U(^Q$Q*PcW*297Lbcc3sk78PSnKXYiY;j5@znkmSd1zQE4^!Rm1ih|AunLe{`BVE$;&st zzJA9$^}6^P{qo{9kJ@VCyw1gg6pU;4l}6P7HuUDs@tIj?Ij{GMb4Fb|XlMb3|I+R3 z1<776Hr1SijC&-VR8*_!5jTj1exPVz3es~#YTMH+LCHy`te*86VQw+^hmZTzVy2R* zE*%sYr_?$*@M_|nF9GaSGINQ}B(oM(6f6Agv=wm*(cMig|FQvCXw|?%7fepK3oEBu zsgS)vumuZ|(IbOCW0 zuHdU(DO}Cf;bC*M7*#>G@OGLd`IVxb`0dA#nOsyvU z;to_szw~)oeyTt~o5BF8Dm3;61*PHuc~O8Q2DCm!z-^vXAeD`{+1L>ON0cfF|I@JH ze?*b4g=vHTh)*0#+16asW#d??3TP1j{v0H~`StWP<f*Lc>1)RR27#M>hS<>Fx9qlR*~U+n4DW z_4SwO4IBtSjJQ@msQH5Q{8DBIqx6EF9gIev7&8FwGEa9{JR@=4ylVd`?lpx@#kUl_ zj1vec@IK)9-E{4m0Q$x`Anbyi+pS`CO?n+uFz1$9+Mv*K-e!MhLm$l!Th7~iQt_dMD^*l!;+ zqDHgRjvG;HKaCG!I$XyW*~P8PyRtrPI2t^X9%y2lSgnvodo}?|AJ*l;{~2jo+!z5R z>s?LLy6To}QglnV?&&y$!31Fo8@$u81O%^v^ip9xe$J%FPmD@B7$@kSV&>@vRU1Nd z7r&VLyM?=%I(}R;db#n)xMsV%B&eBp1wnm}2qh(H#FN#1N!?{sFXr=$vrGmyXj)wZ z^>2*c?kRx2`zb1ImB{N#BF|kpTm)I*x#eyI7hb@P`6=qEnIz%eM(L z&WpUp=9s>;dCz7DCzB7>de0CS6%o2-5#h?nBZKsbdfZ>=pK8EFX*0BO&|vgSh9)!g z@Il4}lF=1){Y|mKw*R1LC+|t6J)9-YQCq3@Q#)s=-af^DpVi64SaS@1+gMI<&Acu;>usbbDH2zt&)=+nX)BZ5>ftG9LOWtF~r5B+R2j6T5 z;{;h)fw~Dry)vUW(y}tAa4d8ihE|#d5ldVWmuEv%+D&n0DNydVU}b`RUna0|a-&TV ze9_8@emQF^esFEY&f1C}jN+?F;@m3kmj>}2WHyYi(-rv~iA45Ig<-CJ zjPF-HvO-MGHWM$gdNjYPd6;;ObBQxv5aLyc`wR|hiiYgydYMj`Gh^kAoM z1Fs5dnb51kuuOxb>!Vp%AA?N23Bx*NYhWI$JnpyJ8tWuB$-F)+VR z<-70h{d(P_IW?8R+@rAETctCN1YdRSpl&8f@lggaVvq$Aab3ETkz~A98tm>4G)#_$ zrFl&@r0u{*eAb`UV0PrEzh?94%v|bbrkX(o+0#9}3t1@1E>vFGw2vNk%t!rEuna|< zg9Y_UKm(oEkfgzJ$d1?RfKq{#kwm@fCpqfzJTE068Loyi0nVuVD&nij-8hJADKZTx zP{=s*Tu>R;x)uO;fa$>HHf%Y7AfeKA;PSw_)iSwnW;TF1P3JBMd-Y8(zMV4C?~CP( z#O)RJU1eNjIj+Tg=Ub2U00xU7F8Ba*Jb+oT7x-M(3k~)GMG^TX%iK=K^zk3@=|w$y z4KnT`LuW|5VTKGcca99Q(pgeq7ZkKJPt;yeHd6pW52WXJY>U@1zOI+v$|GVZ`l#9pIju(``+P7PO zQD}@uZEt*xjK2eMF;@`+uDr_S>S~wa_x0Va_=dm6m9C2=_mQR^bR+6Pm&_|uTzQTl zu6~Q%qh3huS<3Y@DjcKcc14i!j$jC(B)7j}bs+_O1^>C(x5T zLY~fV2Wrxo-wwHDL)>YU8KsuC<|41Lv{_c9&9b5geDTtUUG!PkMlZYq7owWFFLPwt zSHioKs2^NmfI8AgWl!e7El#B9!HGotpTrMLrRcAlN|%LcWZUKiTnc?D_Jp}}(Vd!% z&ICFw7$qO2CG&C6#Is4p4R*B64R%y;gRNXR#hYDSM_XN8N1I(;$D3VUM_XN8M-RKY zjvnLcIx2OVHoMHHw~g2nZBn3s#~>qE z+?BLoxw$Uz@^X3w)1a)J%A&;!DE)dtak?u*>emZ`RmuMB`0zH`B*!VFGBHV&ZHYge z+9t$bNGRqx-m)XtTeh`DfmNOaRbAYf1`cpN69Cy<6{a(yYg5$l%M>#b=2H>Ud^-T{ zyz+&CvdIn{LVgEp*B6w*T(4e-3O&z(c;q|y_K2owMi#Zxwu;%Si|N%}(k5BL4g?i* z+B}4DCl2@Lk=6CIU0siyjw)WHk}{=rxe%O9$V_UiV-!~Ku`YSAm z+>g1V3sAGn&N25q?46I9$NRm#fcXp};yw>CrXX>-tIepy)g~@BwK(kN(kd7iz|>I# zF0Vu)b*ZBDBC%1fu$RL(uV0<~^y<|w);Fh2gU@%y+nq`qefasuH^Y%G+SG15w>$AH zy6{v|&=wJYW1O2}lp9>uPKJ(M4|!*4=4Aab&Cr4>zaeEL&)j%$C^pTleQcc`QR;mg@{#PTnV5r=POb_(RmLFr zz`0tws}=l~OI2DCS#^lP$k{*u?n1^cpgwIQ0Y|Z<)e4={4ivsa_(V~!z?NOqhka)o z3EV9$7@-4=E-B&^klC`gBK91e3gZtG-N>Mybzx$Ryz>IU`XKDyeMhj$OWAu9zd?AU zHR0+^e1=gddB1RdQ;eUM!XaTK0zT52n5JSXrZNyixDLBwe-YA8DG+up;9!&I>bT;9 zIyaztDn7)qc3==J`@_Dw2Y2mfci7kaQ&(@b0h0=}i7>ThbFy;gX znswwC7@UXDWuvt_WNIc&xSuSywbFFMZ~a`tXZ zyOQ+M2INlZr<$G8&mb$)&oX%3mJNM^fT@@blKYu%CbvIa%X9>Q+K)i zSc@iw@sQljPqw@EgsXSiCuU-DGDXRBRfjV1QIOdpBeOZ%LByN>m4iuj8Z= z*{@5_>)HAq2wCz46rVgm^;#m{eEqsswX4(vlPJ9)#v%_j404!BR<0 zC_)A?nH;jv*BmqTxK}?55kkFm*!%e=p@f_<_vW1wdc_aCqNfDD#FIb& zf9BqWt!*Vq82&4uox@6T~YW1bMy1Kf$y1I%vqZ8%EF6T1?ho>0m1g~xjlVV*x9pbQ4%=wYhn9LQt9Two59liUWOjxD-Q+Sw`#u54wceoCp(*w?TDM}E zU<&L$FlqfOCL07HT#QAFWb1d( z(i3lrxL@tYMUFOJ?8}WY0OmNEf%ldV@Yv)kAaTYIp)phhZ{+jaP#mPdrm~$swt(6J z4uo=fhH3-a)pb}K1C?L|hlGZl=@_z*ovj$jw&P4skx!H(CZTuMTIakJQDhFvgO>J| zJCOwAGD=UyH`UZAA%2_igM0FaqWx|;o*r;c06_|$IeOC`Sg`mY8ai-N z%@~l?YK_`4lVMKQ`Vu^`w}+P0yoj~k{@k|PpGU*u_+VjDD@ZH^xnYWIAoR7`RhMD& zS7GzM!-T-dUB7OsF5hs=&7SuF#beZ`#d5xs!zzE*7x3@}5xUU_rZAKpnbZjIu?? z!GfwLGW8iRPxYLaCxJ#wLuE$S478!mhDDp!Eirq$k{_b{m@y5XhSWXWt>+GRbK0%q zDQD>!XSB^SXi_7=FT30#ENs%eH%!5>)*UxZ^>QasLo=%yAW^_bps&0nQVyZ^U?Ca; z?=}eX(_DAyniZ5oj%Rd;ewOd}L$2E;O1?bu1KVw+M*yTD;?~Qp|E&Lj?eu%X|Z%X8^_@9%_ayyVvdiLY!ATHddlRmveM3pHp$kH*uMbmi(knLT4k5 zgjI;yZ>t-3Y6$XSd!7o~lk&@fx|F^mV$X9z@&qe9@^Is$N}FJod-+BHBY{x+P`-<<1ZJB~ozjU&*FhLB~B0pr#3=LQ}mIDFy`Y!Q){ zV7zT?DYhOSD8bc=QIb}Cx-KZ<^+;+WFoa>J-}D!>U&1}>T*>=^y){}yR!7^ge-0%U z5wHrn*@3tzX2{L?W?b#LZ1(ek@!m#FEE% zBh|1XxbEI&y%qO{E#B+)!>-=^+6n^fL}d3T0DnM$zvs|-q}(BG8QyIebZXc_R`HWo zJ%sIHGco?tn*pAy_^I%qZn*rgsh!{&_sgoSDAzJmo?jy44aPn~0HK9n%J|XB?~lwV z1Cstyx1t>JR@UO1S;)1E8Ce0HBIwGP3xy;ao#2vGJx5Ze9;;4$4;YY` z<6+ryn7L{oxfJ4RL5__heZ?Wkk+@THlxru4{dy^}5!9vw%&pOFAcv5Af9%=dl#?04 z96X8|sNKvCxglG3T4DAVJ6p~fQk-7g%o3jS7qGtW7ql5tl(2!U1$zp$PGwQ9>J@DY zh2tuh*k!Jm)Iet_grbLQb55+IK^MUxb!kb<*7haK(A9BpFGO{CLqVMqnJ~3KM+uHn z#0PoLAk!x6=1qI|BHvzOdWlNtFNSxsi_+z0A)5EtCde28Y$%NXF2~b=byrDUUs#3$ zDt4}0imWyfd>N8eJu!EzTwJjt=8DK<6s+^t0h;8?C)3Z!0AiuYK~QJ^jPy znFu!8sMYey$I(AZmA@{q<`e*ftE0#H9=bZ3lO=4>#q+ngIP!GPvW8(>_o6%~qOk?c zNu<6|cSYJKECO4lCbY(jpeb9@$mm3JhzQ}r|7!>8gk8qG$wL{RJ<;2wHU;HoXBcc2 z_9tPRjBTUr;i0{buGrckonM?q(V3Yj*HK5!jBC`!;LfUdjSTQCfX&o&l+O4XZ}N?e zj&PiF2137hY70Bnwb<{lGcp76J7^$OnpN);=CPY=&K z@yGa-CLit&dp&Q=Z?ie?WEbB()~NMa&x4t3zYZ?`F&m9#jyffc`3;9Y+quSko_%*x zF5PNo6F&aPr-P4KG8+EOr^2Q@pVXawQ%M(BgEZwg#p2cntA?BGa+DgtptGj{n@;(0 zl^tb2%o`tb>;0A*=uTlUt)4jVli9b)#d!2hCtPQyJ$ydRU{hMi?WEq#zTJ!_S03B3 zUn$GS$tC7eO@HK*$>5StsANB2)Vl+6VHn--e>#7E{Bb`%f`RRxD&9aeAk$Af?~C8! zPsKDvGhr!Rv6I6OP~v3&mFb-*pb(qbtSE@xfp9 zyEF;`~Kzs#M9Vfh4QqHDQS^hC)% zem;1{$!7OQM{phdff5iiu{Z9PF z42f*v*Ta1v(|3paI^|3JK9n2|i00&Q|Dz@=Y9~bE$$cOM@1H^kneMbx24Ve=HDr^6re12=}%Qz3UadIeFNAbHNECn1w{t@zMI@OZ}61$lAUW4_i@rf{fa!5f+ z^K_twYju_!zj9b9EUGty$z<)*U_7|xu$bSYJg(n-6+KSYP=%uYe{_$Js^aPeEE)d& zcm6Zv%75%KU>;EKnq7+*uytv&OnNhSE(g_-l)*{ords+j7^l8xR}-RF#I?}`_F+>r zM|Z37q4^XsCj4Gzd~0uPWP9~m ztp)$W;@4L8_+)OnxT%)49wki?vzg#4o&8>ztEV(qR0>}S;}9*a;2wpxR^%&ht(5iH z{d1QTFQof~N9d0Lqao&+&WVlXi&azK=<^+;adcYnI2pV3tkKL-bUncGE-lB3mWTiQ zv^?yiV)0(kDH`NK*6|3YYS5%jZgmL4x*rGTN?^2if5WG}E}QqGVN(v)+$QWtkxjOy zWSJN&mty=9u{p@mhj2{2q?;FpUFm&fA@j1x*VILTtI?!dWP8gMHH+-IkISV%(H-qE z^cQB=8r@ax*XlP^t=;OlE+el^68gRVw$GCvuHbu9H2aq2Y`?=c?}dcXp_Qc z?4~(7!T3Xh4$6Z+8{aPnnDzKh+?hv3euBr4qv6z2XlK=n!R+#C8YSXX!zr`EhYd7B z=$*h$3lDrFzAQSKp@a6wH5%1z>TQRw;q0m;99O4$@g~3wf+b7QYfY|9116;fh0R9!ni=Zh&%lZmpO<5pkk5@BQqLr0E7aAS1!?Cy>y zN--eKU@;OEEGc$J0b0AOBGi->ZjMT(`DU$7b%Uj#`&p_nyq_i~{Nm@ujq;Z(4V_0A zJtT$=>e#}(u)Cl-@UC$zN(`fslaCHpo5S@8{ru|8Lo`$7OJCG{Je%4z2Tt5C=$Hs( zXXY!}r^-ZDx9DB+m3Vk~dq>f#i#9YH8-6Mdnps&Kc0uyk>Gw`u*36J6faTwxm<19* zVF~gFXMzhraZ1>2>8Y@)&?9p~9j!h#BVxB_Fy=tZ)CB5k<7dr_^AtWh^Fq!ESx;Sc zYcd_7Dl1E?SOPLG-Fh$_1lpuJvD~bxBpntiDq^kJqN>{u1pSr~?P!9YOl<12g$evd zmo|`(< zJt(ENUt@)OCEr(2VO$7#&Oqtbk^&=>7&PT(sw!Wc^{PazI0bS2FbMGtMr|Uw7g!8w zXsyy=zB;Bci#y#MD^cH$EWG7cZmLj@J;sZvskPgsQzn*DqEe{{^%H^2iUoHjF-s#a zj%8xWh9pWbB#q=?8hv;oi(1n5Y<8)HMgE`fxr(B8sUqv0z;Xeq@#dAW!K3#ncgDY#eGP zXqdAsVx$g>Kj*$Z$)dmWpIt3{3vh=wKv;b8huO3QrO2tRHk}p?w=NX@6BxGLQ)JsR zFrYl3WgvhKiF@QE)R?Una)&_>JX5YG8u)qS%sV**0+1@m)q`=K(nYbu@|kt6Cd{*D zx7GialS^zhcF>;M*o!aoE7SK%Q-C(a|3RcpWF5(<-60S+?x#Dy-6&Y z!BFi(9GH?KO!jvRA|s$$sD@SXYB2HXxH}drMzBJBOoHH9TM<&VJh`)w;v)@bdw>Y| z`P4?^)T+3+%_#fqAVjsMY2hTVK|n%gbusa;;=4{tD>Uf~7<23YJi&>-WF>@ZA4 zwLh}OP_lrkF0i#r<$DMz(ObLxEGi(@R}%;jl|{*N<)XTJM^ZwSzGGrUgGHasc4RvE z&R3|7oPdm+W<(I$Bn?GNNZCqVO~ML|fa<}GTCnJ4w`N@|QCd!zu*bubL3$~!nfyU& z2MCK)PK_J#cJlmTvKHM$dcMeJ=`{NNyJbu2q)LHDSA=LuH8*pE|@MK^6Ma8tqsb03~yfQavJ=zic2GC$dBks?$BnkWi6|1e$PnnhxX zsPc~7J2Y^$dW=9;4#apewQn-&J63Af7d0ML8{Cc1Z%=DDx|!M+(8*VpLNUJ4&2tm! z{S_l7Qpc#OIo%vbQN&tNiz0W9FCi%y70YD`JC4H}F8pMai0P&pLte2{N)eMJvGR{k zdS?H9l;t*N6PPBcRasV1mTi5l?Rl-+X(sf%AhqAgWmeC29BMS~diHETl?BRI3j53d z-PHo2e9nsD=KB*@4Z1lix=04ef95hmj>ckpNf}0FL8(-liSl9)w-Oa0GfaBJUt&DT zds<`?%&4G}Nvu{-HU8{hc$cb{*q6_qR^o%2Y9l?!}YLivq<2m zy`lgVnVl1RI~SRI`4o{`n@2*m0}gBqr9!q@poypVsbL|Q_e>9T3xa+Qj1m}o$4DI_4V z9n+}}KE3B+;{Xz_VaDQE1c)a_rhv6rDisTQC@}u{^@^v@UgJ(wi87^i;p3B9YoSr+ zh7U@>{}}7ja1{BUYS3;@bG(vre}cYR_mR#RMF;;CRwPEHG*NRN$9F{6s_a*Lvq^`7 zfmKvRf?8ETsj%lcAM9on}$}%x^gIz)ws_noU40`S{w@D1t=-Yw|acs49c_2GfpzB4%mHc z7E);U$)16Ar%+~3JZsw0AU;b&Ke-x=dDr1;t~Nn_Te>A4)gFxb@BlXwe&8F1UeZt? zq-pnt)fx1DYuWOjbv*4Rm6e= zTkUE7o2-J!+KGr8{3w-1Dhw$?gw_XIMs103IMq+b(k@?JSPc`pmT6!|A2H7;HbgHn zRn<$pLTR0oqkPv!o&K36uIr9p3y8lqL11C){NbUEUQ;2r2!Jd4Cx-@jLzj`W*aAJV zEV{PR?r|!c1$T@VIAVH_X?uZ_&i&j*0Z?)%kxA_u?REPMb1D5k>_Vsn#y&CU6*I!xcj#yZqH-`H57a=wI(7;se6ONUIz$USdy_xN#jSCuJl zaSNZG*yaKgA{TLgaHFf6Ew1yj1+$qcX8prkUeyb-gOhufKctU&L{yh;`L1wopR_(9 zsGqA9RY>JFFzU-H1(CfLi-ijoq}+P+JUdb)h}Z|pLupsa%G=6I0*HVWS%vkfsINRn z@Y}Ri#g5~|%c>VQ*@Pz#4{2Flmb>Vb+dV;%h;q$Boa-*DHHuHo6VPfg6bHJ?Rj8+Wgm3+}^9arq+ zk6P7OwMnXVG`G*13ePkBkf!EYk(SDBYqN3%;rr})>OnEO(BBv zLh!U~opjr`T6f#FPC4%WWS!tS;GG7Z+@5SPks>UmoFqN4B^hI2#-(|O`h(>^|1}I~ z%kLteOQ+a$msxNmFgM71zW$szp9yEV_5>7(K;0@>5{*ukBX~r|`GmS0L<6Zd6mS_F zYq(iv*_1p(R7is5GnI`c7NRyhhwhI4PX%a&sa&ZcsSVRXVM)_qDWI}v0hMX@DZk;` zfYMB&)zoxqJP_RQK{84&QI|X&4@NiiTwl8OXjlOET}4Mz#oGhS4*vxEj?#9YI{Y}b z8g+SGRRRo83SQfUEnny{28il2fx+2WTGSTq7l;JerqbJ}hNJk88@(xjOKu@ZsB$nl z5V`O;rg6oJpJ0|I7RzJoa&EAdu(@+%VXpB68*hW8F1(yy4JM~DK`+d6JTtJjB6Mb0c`K$9+tP#!F=@E)mvR z#r48J+Kp$MyBA8g{6`K%T?ih%zZ8Uzb18e~pxv^f-4#0`Jr1P1%%P{eCo7H7R(GY0 zFjpZNt&Yl7qv$6{8w48yqFaHF7*SeugflfYTx0B_$hUVQFx9i!RC&d+xsJ<^C6~7O zuh=>3`(79`1@C-itM7c-tlBiJIrR{O7#exBB+Ik-@{hr2+BQej077;H!n3SS(ftps zR-Z;G9&ItEKggsF@Fj=YE=bG?pOsytNFLdVX2GhXnxDX5EJq$hC)8@-@9c z$Rev&hXP`Xv=Th;_C;42H1ln|hgeBs*Qb9{8V)j-c4(RSnQ_S>D;jkmAZ=1bCZ9Jp-X)01;y0bOwd*Oix-Vby;j4dIwsXs5~egTr6E%=VG9$sD8T~%29Tj5 z*Tlmk&J*sU;D%2or&ojYczpPe+2F>Pr%U8{YridgrF}R&!HDS7OadQ-HtLi^k1-#P z7G3@ibaXGR;#?P&GyaM4@FY%LOnP2bxFo>vAo2=+aziR_9gCL;2DeT3zF6@gR| zAU9T4Wujn(TF~QtWcgY`=OTx~Ws6Fd9$bWLk&;-hNN9i&3!Rq9iFD%f@F2*sDzc-y zS(@Ez#-Js;`2J~}-Hs;wy}7Aw(X;#rvdrE+I!%@QBZKv48Q7*J6jg<+aE+Vu9AN8_ zC;U-)Ew9(*>12eLU)Rt{PTvcK=p}{~U4&MWik)P;K)D@EzQ=bmSc&UR#c?#|1!|Oe z^wR%Za$jd#%iwR-Cm#J)7{W^>2wE>M_2kx(V>mNX0hnyoO2Hjl0W~9!PZ zGpSSpjMirgVCX)q2kR8}zbXPDnE|JjDC>3mDoHs-!pbd>K)%NELkZK0x+Hq%RAV!y zIX-7Y5Zf!!TxL`Q78@)K?(RTP`_CC4|8#r+q3EleiKW1lQ4jUf@BO{?Z~aQ(|E<;g z`@i*H1TFt>|5k;cmw`C4CpWS(2pTeC*fSJT8-29x8LH~L(NNAEzaFTCV8auAo{Ld{ z-p+Tss<(6KE!5EM&HE~U|tgwQ^qhHsf!L4;e$;>$K#mx&d+fujq zf$-OgW#9cgrKr|9F-iJ|^Q;M<^V#<4J6c^j}kZKJeK@vpeLmF3D*sEfM32AcL4kHDT z@?}AeErxq>_1n)W@2D73l)00i(Arn_j7r2aHHe zZl3OcIPV-DeK`F!pn)-&hlR{FX4RzvU)eRVPRYo==NG?YY&-VAG8mh%i+=_Eh4sc8 z80?N3?6Ugi0cKDXASb~h>L>z$f&-v0pfCBtGjOcv$As3N?6p{f>6*_%#w#*dS@YhV)y(8Ua5pNn%W+cOk zpr}i?yVj#Dza)H08jU}^4?&s7Jh8w4V-NOcZFiQ2pR%5y-@L=>i4;)iU2Rg4# zcZGq`Tm*lZ0@Y1EL6-eAc~38mibs%S zssgBGPzqERc3+kYO|WJF;KL39VAX}aSz_%h-@{QR1hu&f_Q zyH6U=IGxsad|Mjy~{{U(0m?&kkKao!49P?2YE7YLA3FWHLH!-4BSl+7o80br? z+zMpC8Gc76_{h9Mz*T7lDub!Sj)ss?C5kJBeo|hE$`C|4lCf59!87~D|8q9t)6kEL z<>fcier&aGU!xGn>(0Kd#GM+ZC)}Se*`wnClVQp31#ZZN(MsgY@21z>>NQ^$PcGE1 zUM}8v2!QdIf|8BDkGgL?6Xubn1n_mb;6)w9ix#CGaFd|f^`%=|TY(6>>E5E^Nzm4^ zi;LNK%oDHAI;5oynrU^4w^lmX9G%HX0OlZ8_?=)0yqFj*W2! z(1l-drGcWw*j{|wst;#R^x^a)vQgcEvx@J-I_-{5r+O<#MibRS6IE*wdS1|H7@=i} z$`q{~I^oDVI@3vn7?vs=WDSyIBBz!v+t?*fZCpmg*rL4*giK)wEUx(rH-rbrA3q+W zJM;hieAv~_%ma2y!HsD+9p}T&D2dY~AR=6=s^jS`>y<7~Re`{V2k(UcW5%INII_ta zj_qIw8{sv*0+++{vd*`dH$mK>k||(=B>BY0qbyN6M3@D8WgChro{rGo36-9$)Kayi z43k2s$(CM~AhS5UQ`(`ZdRA|+vs7z5*^1J*(pTu882m0YhH1)Zq#0aOO3u4V@)jT%sn?i?Me6%9yv z`{tp&3aAX04iHV}6CE)~Uzx)!+6i^BSZ;Bt3R5=3o*4~0Rn;F`dS0`#v^?t58s;=~ znW2)-C~mFXY)#ahE09nDp-|G-8%p-P8yjh>K+U+{70bU2Z3zjw=P7Amtn%<)QU&Y= zK-R>A2NV`yL#u=ckf{(hOCyagVLa4eShFK$-rD9GNUbVi2<(U=4%mEdO`boBt>C>C z@z;shDbX;Q0mJa~RD;<9cJAKg1-R*?%*)23OZ2)zMLec1H?7K!^z(EsLkmym<JV z%#QVVM80-Uk?=C2kNPD=y>5GW&%OyL=Zf`T$ zlxovg@lSFxiGjf4Qcmj%eK6+6SI#rgX1C%6&d?Q?+G|P@b-c0}XXvsI`0P{H=%m&%PqJ&+ zvmF0O6*6%1huqsllCf@JY1@<@?>DXWUFbbLq0$k{r`2MHJ~w1zLj{CHDFq>uk-9$a ze~PSPxlezo<3|600;j?-Dx|Dks1&-FJpPGc*DxQwU@qCR@GoiF!wA8gTVovI*)qQQmm> z^D7@={1U`M6_b6E7^1xad=}p(T4~FJ&9dZ-)C*Lh(3;A9a;mjKT)Sb;qC(q9Bua<7 z6%;h8x#7bzeRNKtdluw&x|V$5dm};KYX~-m8`F`PkgzcTQ_OVmLDUBbl@}5)jzetb zf>z~n8N!5hm!!Z}RseY6`cY62gvr{)AjPmy-}oANPW6HnDnJ6T3)^azRi#fH3Z?>x zQ3pCh^o3-T4FEYb=k!BumC&2BPCx4QhW%!O$Md!dSqzIf--K`Sh*KY{C+K<6F}}-> zGGgrzku)(Hk$dWE$eF?(77DXvM1DoM!B`zO<|LU%m;+fg+DC~)B47f!^n+jHqy4~` zqU1sGdv@;QFNY`H!~K3B+SD_o*iv9@Eu_g+o@e0fBj=ZKw1@J18MOIy**-OI@f(~i znzl4H}PDtJh~)zxhay69rf|+FKu*PIl4YRyIsEJI$8zBrDX@qb&`iJq+lR zZER3nA5==_8hUuh_4ko#`E$dVVM$n1<@Yt4vc&8bPPbr@#knz{fxrYO)YiUEMoKlA zqExTU8UXW6@Z2@dWC=iUn7Oo_0Bw`z2*z%`jzeDDie^;~^2kpdsxB@#idce{y#r4y zqL;MQ0-UdtV(L(~DSNDW$t9h|dUQiEGgN@r8J{XTO4oF+L10SJdFb zX@AW6sJedyBae31IW!f}8MXYn|7^uPFfBWs4&{{{=S%-;I=!2;!oR)z+e?^IKYskE z2CbJP=9%T2KRf_(GuxC}$TUupJfLm_(txc>=l|wV{G}Jrd3Z~gdP$~r&{KWrqj2}` z=l z05=Op@BRFA&QB-D|8;i0|H;lE=TdK2MVY8CMU!4ZGGN73xi5U?jnm6_zs#(1IW-rkZ~1gHVwWj{$kU74qn#z zHsYYYTSEsy8cgd@ryF%E^$mhMV3_gYp|fWy46qzEYZqF;4w^0YBB(ydnUnh749KE7 z2h@gZ2ZQwAr)$C-a_u%7W8Aqxx>m1!T*F+GmryaR%oe?LYb$hL9Kf)lK~POxmleNe)>in^gouK{NG+K-04uYF6jaVDxC3)-94VWQ)V!}~`n2HD9+^%-3ewk+`sGiac2K z2IHT?E?loQA>DbD(Osq6F*DW0+JVbT6##vBfIopRLLb7Uit4X6@b_V78!+^yAMI>y z;4h(!Ywz=P1q4^AN@W;;cvKnoqZqX+rHImK+D0@%N7)?F1*~np9bqCvVuh!sByIS} z#3O#EF3bcs#UJ_vToUCt8PJFD+#YAQ2iFr{WCb~Ujv}lp=bR|X=7bM1FqhG^wq%OH zo_yKIxDnBb7FA9}Bnihuu}ll?(0JB;ZRJzPy3I=Y#cfxScd6Pt{*j{8YRKZ#IJ@AJ z$>Hs2`gJf)rD3t$5rOPw#bS5gQ2psv>U1NMX>LbkYFMhq?*6>}mfcKRCEh_FS9?qQ zh{q}=Cu8Antyze)!on-YII_|{wn{-|L7Fa!f&v1zwJknG5<%qRUMsk_UqS93O>OsX zf}FJUX6I$@w<>g)NBD<1HQFz3c_*9gMo5sb+%P|$>p%v)Se5H`u;`2?Q=W3|IG6Az z9pHSlKi4fu;^K;5d{>|31w!k3qNX2fp~AZ|VzK)7(<{E_-N@3O_F%qtJDZTw1!}>{ z%rt?SdBI0>o{02+uc)@H4KBv0x8ZfJ1Gyd5i@SrCl0JvIl2&VjBr*MGw%rciXGGTN z;wXcK9v#BUfe8!{c5=>pxroJ`=0+1$NmW3ps@pafNvr%8H^$ayPq-kGZ!Pl}W&yK7 zLJzgDZy+&C?fXSil(9<11%vE9*UYeY9kwBhC9Ph@y8W=%Wm!K=T3z%xLh*L9AndBB zD9n$elFliOij(yAT`EWGO zMNXK)wBu9h@kNuV_=K?_gntC6shvtg7ODevn0d7kg}M{Ifn+_FzcA5`^gN-zo8U__ zgB63xnq{gtt`u}nke~->0iUu>6g8o7D&EWE%nbrdt} zD(d--Ax#?=JuB$CMqb0&>q}WH!J}N&nwk5(zA`_Ho%xfsdIqM4hZv?1{L5Oi6k#)D z7YE@0MZANXEJc6s`gWh?JV0g^uDX?Jz4TRXKsQEbdL!OTNttCGKpVa;yF$8rV+I-+ z|Hsai-kNo#*MLi#ekDDwxV2oVB;wX`iYJ?@ddnsA9jXzJ?b@2WQr}g#T}Wk;k~X9V z>HQ|iT-lxNgeZ^F)WF0om{NWFI|I-%qZO=FGLUvNY#{4fV}`F<^mXUwO78$}cC3v5zva3y_AadSe6FC~@dt>9)o=9y*d%%3`aet-5}yoCu7ex}BwNSDyq~ zb)AH6b06;Mp3)#$f={mLAR(ErmC_H{4TShiPvY8yT^M_bZJJg6Sz?r2J06ju93f}5 zB-Jc}fFx#Ua2VW+9vSk<=O*eIlGF6^U_*|8>y=1c9=msg1(k;)Dk+(ZNmP(YwJ(np z)h*Tr0Ywe#kW~l369^`I7Q|&Kv}>aYUC4m%V=P!*i_HKG*3vB9O!?)2{BsBZtP%M4 zN?O4)j%Jy(ouU`~!rr6k0#9&o`-Xs${P;{%xF){4Vgz71ZrHC`n%WVQ=NqTdKtJ_*2e@?@VckA>yPe(g6VT;I;cIK=j zP8Nmy&>_LWsceD9EwVl-IjygrHr56-veit6lI$%iRZHHq>Z^$f)~}}@`6d3%)UXjA)S{lpMd@t%01qL@>X-5|6L&DlkVL#MjyCIT7^xk|X1zJwL&fywCc5Rxdc(f#9Xz=m zyzfR%BJjSU^v8p2Z`Z|BOr6iFLY)zWW+OteHZsSG&&R$;8L_!M2J%byDpYh41GW?G z)l+6TjGjefk5l6Q%}x2Dtnal;YI+{oWrYn%!5FAStML0IlQ08(+iJ1jO}vtJu|Clh zcBKqbt^9MY=VXHAi{0$dY#EaP2z7{-Ke$244YnkN;wZp&-w{1Za^&lB@$*~+3Pz>p zna`t4a13Wlq9L$%MP`m#8U=v^Zsufyb25QBxuO=tO!GOkep5=JYPGp>q$rp~kF7N0 z!H>>wtgWz?I?9&v1w?Q7+`LYFOZOYbgLe}2F;Va&UPR^2+e%Rqlj#^GS{3`%B9gsY z%RNeRW@-@jq;ZjWSB53-nTP|)BZqfR9RY)x6?y09!m9IJIHf!vCFkcJyPPE@z+cc^ zxa*1V$@7z2}C zH2Iv09kcD<(^QXwxz6F)<&I`IH!F+aM<@5Eo53g*Fs>|gtS+0N?{j_CCsI4gjg9i1 zB^Azh-)@_N%of_t!=$U1w;U}_Yge|P{(N3H>_R%CNu%8Br=Ey*p@Ih|w;Ay{HzdL@ z&&olOck|aratmu0ewSr8e2}gzEx)@U(z)qs5b3i^2V*>_fW56V5~gi5RhN{7k2Z0N zPqK&jq7g(d3KZICO$I~$ACoNYDjQvxShFDcS7dtX6FtYZ^qJ4a=B>&G6g+Bcv$hZIAa0 zaZp^~Oym>FY&rOw%*NchPNP-xy?#El<67nmRb!&>E~#7V>)KdB$x(^A(IKp66JawO zC=4Bp#uu}j!MN{3vEk89?FDQH@rSb{YHYuNZC3R91x8uj z+IdxNyn2zC_PR(7Y{A-sw$7r?UR1BXda-cab(2d>fBte2(AjUh;-9s=2`P=18mP!6 zuujxLlPLmiq3nj{IFm4@s4>QxYYkVB4~y0o$FjcPR?ddoL7)xrYqdZD{qpbrX3KAd z=t8;mw`vQ2*IxLyqZ^RtI4sJ^r1e17jQI1QlSIno;dYeHrW`+xQvCaHmCeTRa7BL} zlEF{-O&)%5{v95EJpAMX{PL6j1g*ck90ASn3jh!McP7BP7CzkCH`!q7pP@VRrieG_ z!&?KyC+~LRq4{qo`vC&yV8Y1*C;WO;zZdFf^=J}xk{3#>UB4JMDT$zzpYd5eS~+8p z6Z<8_{}2JvQItaSBc zRgo$v3@PX)b&^W4YP&Vn-CFgj69}2Gg#Q7v)>N(C2!ZT`rx3`=6a7HrJ5lS*lI4ND-8 z#(dKsK0J(h(EM6WM#EvmIs1yb)Oj?72lQVDnSjH?pEJA&i>|Kt7*_o=Ql&}ui!Zig zt21q7$Zd0pbM8n`^4`#U4((q-MyUH-p09sp?*SiYRiQ!j zuQ;m*?22!0szqqV=_;LQYJYq=QRU78=6}U2a1Rf36E2WuHTXppUXTgW5FwbcE4ye7sxJA_o$6Y;rK!43JuH^n9%HR>hQH`^okV`(X@^jt=^CUGC z4s^wZ$C-Su(*ZB}=aW7STAk4E!ZSC3Psn86PGEC*l`T-5jyc_t3)?Vqov4jxr^@A- zI5%}o0w~R2K<6yO44;B;D(}@Qj;w03;#<+%K}HCNLB*)!x`=+E2!#ib9gRx}QLXfg z4{+CDCT`X-lsl;go84Vyw9`Zl^<1k7@n{V1qeoHP>%zh+U%VGy5SZtd--+f>8%%MS znt-}Wg`Tv5K_{}r|8)?mqD}>xhiu(wL3eB#rJ80z*{!qSWAXiq@K{4utAzb~{K%|HP$1 zZy1>7HF;XlX6;@qscP+(Pp`6M?SF_cRXIQSA6#w|4l4_}##tMru(oCtSBH<+l8jFv z=_gFz^pXq$et-~#1_44bP4~U0S9}cvQmx$%u3?3q1IH(>F_ew{PZf3zET^7(hp3U7PKitN~ZNC-%`g2n1psO9}~ zLA$R?p7rMQtx?7`$cgn-O6pmY-#z#*)w^m%Uoy5Lh#Uc1cMH4HOB{KG3REabXKwJ; zOw?jsXEhcxm1mS*@i7_xnz>MGCa%DtIKuW^qpQ$O zY9TU}T)Hg;D1#Kfy+3^S`Gcul&hUI;nFPrOC+`1k5p{_Xn+?N(qPkDOO4Buh}OZzlO}0vVJ8?Pvt6biTOY zi}llS)%<;FDV zEMiMNsj`R}^`y!wSP(0!EcQ-3A^hq|r74*4Nu;&g3TAvVX`)?x67AxXXcwPEyY04u z8J|>H1v5UWvI=H=Qe_p)_@v4znDI%aDVXsI()zR}Uq)(@CW2{NE^uHP(|lgyWifR; zAw)BDAtije8R3#V`lx)(ta@D#CCZO761k9@9i7+v472!-E>mIVPslB4W7kKKN$=^F zIF;q0fjT@;00^_wZ>|T5TpsqGcABdWD%`><-p{9#<6q-<@#*1v?HV5gVV->1@8BhR z=?nKby#Wd1J>3W^xV2p6!t#7H5hdsb7lzYbnGTKA$At z?4QAoF&l zD)6mnN2@#G8h~5qM?=i@b-$#S4-Y2X#OC90?>$1e=xeOBcK-=n*ugH)3Q7de>L%ai z*zpqVl+gy)Zdx;E;*h%7ol9(Xhg*pbur8XuKKkAY<(8nSKWbeBwmc_h@R`1$*HvC- ziIw)!s>p&v2pdUHzj+KlqHEKr4(a&dVYqUuMsj%|CqFbVzVMvK@JFV;035N4c9~>C zw<@p5D#zpLi99nvJ~#6T2I@)3BJ1fQ(A$H-#T9>6&dF)^DSHmoa$6K9&j=xqeE%XO zy{GfSvi6)RFK)6~0;!9i&w-TUl;}anKva{Qw|3o|h?{2_KwLwQ+hF}7y}WBU@RUNo zh>s2(pyJ(rx3dV6w}_QU*{wtmxU|!(s$oSPl1h-Hr;`Yqsz50osJ|uYOVO@yqVKe) z?{6165EZ(xvEj0ds#-KQHr%MWU*h*3x#aOFNPrs$!RnX`iBMGSc8))sfBw`t-hYn) z#m|9*e(bi~oKlsNL!G+Z8Lr4&R~8QAD-3f&B*xRx z_C(FWkHKiVR-7b&vV`e~5qdhUh${97Su5R>(wdh~rAlSD(Q5Fm5amL3w&k7Do< zi=pzbJ@ZOHn(iY1Jy!rT~)3ak3Jl$P)mRrp! z$%gj(xv=V3AqDFG26BCObeRs6cO3Fq`YlU-h6%gkxPDK<7?tKS@=`cN5uZ({OxUHc zcL!sRnzYg2W)jXptXxK%E+)8)DJKrXSb%t6IKof)^hY-SPS**AgvIDQUzA?M0U)a< zs3TmPjcwaH(o|5|Vmz?>*@V9%Cr&VucaV*T3j!Cq*CsjZzdm+;olfs0kj*wm zOi6w3({cCI6ISl5T^-B9XaX87S{~g+6X6WK(8HT>9^}d)CYnQ<#9=g)K%Pa3eQ?)? zjU+}*WY=!Gah}M&I@WrzKHwU|?qtke^%p8z>1tj&-9)vThm2DU(0TBN(gYD~d6Ic`Hvw>4~W?bJVNgUzZ-JgMW;+qFf@4GD)7l9U>7*eLNCoWFND~3 zVN-C+lU_h!G$%kinTO=$7t6kKTiFZKI{xrIyuL1%ku`#WCsmJm zv>wW+DXxHX$n9&=rNx8hA(wuMta<=0{}4C#xSFJN1Zc%2m2+?gyrA7wrct%v3fQ;4 z?=@5GVJ6wb%&-UF%==kx-kXKW%=KAru3L*4ye_42i__!ZHQ{GC;SZgeM+RVe=9z|{ zF{|6Mo-FAd#_kRp)d6`?+VNzlTP4g2igi7kgCg27#}9j?QQ-784M z0!X8zS=#SLmZ}s`Hgiy>J^(uZ1jONFrv4DYivC~^mP-oqGPt?<={ucVr;E5xE(K%3joPjV|KoA8uwC|o*xYe5$kRWvjc+PlrJqJC1#Ib^yc2^A5SR^AYWcVg z&6SfPID7iyCdg7{(893wis|ZJjCFNh9q$so!II^9CMuo^st#j%d-s>R#eCM%NSTeY z9?1UvCJ2~;N46jiU&dyyGkGqd4I0$SCqn(2L{cYR*{&s0x-0gly1_$e_)FyZVtGm~5 z?O5i~eSQbDUSlMEa=m40z=lc5j`wre(64TSY4P|ly~s%M8hV%i9Noc)vJSchc`|Z* zg6@_Jfu2?Dc-ZK`?tkHaUMMxqs_2nt#R~C62sSE)=GX5gnxc}*KT_j$09rHY-3|RX?YZ-A$<8# zPXm7#Jp&XGbKvMheDq%kghu_)pne#7Klr!t^kS1VHJf*+s<9az^IqOeUbe0xGmT(z z@iy+PgtJy_dwUBKlSs^^m-D(8ghjAH2s34X?DUHW(EHLVE!9h9Y6Ot5=PKSgh+%sr zoUKyHO=}(Jy<5SEr%QHYjt_)ye~gM|B}P(PA?(TR+<3E*uDLpiVscqqYU_L=$TMhD zps52iAq-X-|6Z%(LZzqQG@6Kj8AV>`?c-v0j-j)=@BexZBK!GQ{_R}ne)l=&ajF&mY-1K{F7cyYQrf z5uV0_AM%bNyiBiVx8G6_HQ;$Lg*D>aY|1fGI0#T4ZcgBbTtdMwR5Zr8Nz>8AcRuy{ z45au8-H5fC8(dt7^A(kid9x8VD|SPeo_*)A@%Dxw-yDhPh8Hr*A=>=F&*eCq-HG-+ z6`xstMR+FT3#<>1TRc3%`%J>gXZVU|Al}8*AWb>8bir{S;{6z;=c7AW0cFA1kJNOATtw(nXH+}Zw zYBc4A@e!dVmD{XSEQ_~jxk-Z*DJhbAMco!S%BG{CRI;3A2LjBG9IuW{9LzwS)>s`1 z=N3IxCw6L#O3(|UhwN^2A(4Sy6sA(}BuR#DhH~nD2W_e1bUvCA2q%09_)Ur*_AhXU zMqf@~JBj3_J{{o9rF#z^Rw_?9L;y+b&?SA^S9CcM{YeNM?B{=EbhqE?9h%Qd*M}6% z#4+@tsNsm?PSzz~- zF@OgES&~;$00Oh!qzGb<T-gMPH~<4|iW__FBcKt~fz)yZBF zp;r`@z1%`~z%RF6G}sVtx}eClBimCW)>A7+K+|$Py6&w*55>ns?&ojKBak3*d#dm%? z2utXyosW6n4q9!Ap)kSE)Y@orG`jgqoxW1CBHN*QSTPT%79C_)oN;J6KxUmMjSF-I z_@47S4D1oG-@`ASC{z$&ki{@HO%bLd3uxuNue5SqfuzuJ1C#R#L+ZpZWx~V|ilLeg z_Ieu52}#0I4o-`X9?dc%*5sz^_%pZ2<+Q9tU;~RA$bfrE@#?JH3SpVpeE^Py zXC^c$JfXGe-@i zEoqiGHBgs{&x)6cudU0(XM6S5*=9Yg1+W>fH^1(lHNOJax$b?1J-KzQ_^XJdSJj(? zz$ncJN%9GnxGaf>N90T&FLzTYGajv`K|CtBwltyEw!=@@oDFS519r$GqcNIsVL^iz zD`(1n2M_Qd^&I4rTeN>TmJX_`))*c5 z`E{T_s#{)ruUj4vf=8QPr})AsvvOa?+VN`R)lLiERQ(vTEyU9e#mhL4a93h_Sj#~CpiOwOq=;Xm5bKV!0exr1redni$LR`jv znON(f4#ZSLF?0=2lh9+Yn+2s{Jh(%-74-oiuS(NEI@94eOd?mAb}I<9VQ43ctq?)1 zt1ce3m1T=EYLb2FOgx$0OsyG#m($Ud2X-33R_A!r zRT^lZeFkUNC7*?~CjU)!ur-k#4NCzXxf)BA!stFOv|XXL19B>AZ|U2?s{UBbQ3u*I zRq;Y0@O*oZA86N;X9h{~xbTb$1uHw8?^CNJ?-K z!Ct4)foVJLoF1N>9~~bZDnUAxg0zqs!xbe+-n2zk5?)v3MlrD=1BC~SHwjw798%DV+Z!^(3$U6)`CtNm7)?5e6?iD8;!;Hk}xF~uwY|*1(`%|}* zS#jyv+p@E4m6zP=HzzZSQpZH(g2!$GNgK7NF8DYL*wfh^LVY^B%{ZQsn*vBZH#bq- zlevi0o^x~R=}clqT|NgkwZC|7&ZqNYU-->Y9{bzZkQ^#FAeR2D8hnsd6xaZW6yimn}cqL;672 zAb|(K{etz@mvVknKrPOfL)fmB`!*EJ$qHoTv3uH=sW7BJ#-pk7ZkY3SxD421mFAY1!x*3$sqYW zxk4klB$ql$r!0=hW|BQ?KFe==4LaF<}9v6 zBA$CE${-iM22J_YkP4(IQSYp+o*@_h1t8i@qh6>r&vrY_Gd#$od;t@g^dDWCEv%Y^ zZ)5ZAtAPa#1;tB4*wfLoXnm(CC$}v5M!{5xzE;M(!nr{AIiifLNFd)8M#)?N7v$DS zV?JM$w;mqqyK(LZ?@vkUr7mL`1Kb%Bto;?5d|mJ#kOYod-^ zzH6CJo@sDsF9|F+nCk#L=?=VE`W^OD6cz-{gvjxbyeYNjRXWt4ulefZph-Q1rT7MR zWG90k{x$mw91lVHx?IZfGoQ<&zfh*O$|hsD*d@!0rD(gFq6exx5Ua2S4?m~;csQK! zX{Etb_}Wb*Vbvt?ppquJvhehIB+pHDmV#b{VN9;cSG5Y=EgjxuFbV6``U@Q^7gipO zj9YI&v0hfG!{e(RmI2W)$z$3I2~!F?2EzX4r}$L6qtlV4-S z3L9+Ini+r-1ujR^?8ioTy>1Vyp1`=yaLL|tiGtH;s}f>HWQZjg(>z)iTrAD-6wvRY zCW52uX|y9*h}tg37x>TbFgkjcqlw;3qx*}yF^Kdt;tJ{;gUle%qitn4Z{-HU?*w6I zxpaU59#bLjsCesC2{)CkT4j5u(s-eJgpClN>cVORBq#Y0bxvDQbU*JUG|mLgt|%HgFDODC@N#mtE|qhdw5k&2JVDK=xmc4 zWijQ`%Pmwz>k_8o!x)wY`O=`5M7>;@mu1`{t{Sqs|Gah4(D1yRhC5M0F@7IkSnqlw z*jZ>EnDv+yNjD4J_UYGxQzXbLckozBFYGz2s0ACyJr>udQ#xVnp!@*Y4S-w@3Una4 z7XoR?ekaxQXsaP65)mP8aQH5Ye{{#wNSs`Te1FqKBa8Y**2H4m2Y`tR@m&fAq9sfavV#C|zk3kJ;p*}6FfKBZQ%2+jIG4fQ zhUkw@`dTLFV-v`p*`ILrUp|@@zChr%oqS?e98ax3g!@jZntnbJ(J9N~G!p7&5_yDBpEQS3w z+Q^El$+qmPb_j$93C1#qqQ^niv0ddXL68#ySuO$&riQd@kW;a~^Jb$P==WE^+pYIn z{q;@_-tR?1#@Olrty^N{${#2ndwBP7;GC=5(P;*T5%sU z>h)?&{?}){ZMMzcz(4W)iq&`ERlMxr3;bWa)ob{?)u7im^4Wd`+|xgi0AKJ0);>zm zuaKwKfZ9YFzT>~`+FPig-|r=O!Xo?fnRV6U`DKQn(PZJ_6FLaR-@_iH zQr|s;-S2&|9DEWIbem&rjE$|v>z&sCcCQT!2{zPc^fzjAykgScjXJ?SdPAvi^R0)6 zE56s**?IdK_BwzdjNk?EwRbz{d8WsqSZA{h{UZ4pN?Ld$X7>*7C81j5Y_tCG(3a>$ z>Nr2bp+gBxajgGV&;qK-#0#)ejEr_GaW!OYCH9i#&~vz zBg*35R$rR$z?gsGv~Om=@`y%#;|p11f8py$Cw3|p*q=sS-zqh%X2TkYBh{O$$rR+O z*OmQgzfz&R?=bJL9P%V0Pl9>g;dkgMY}u-O@vVpX;S)T;7bYTVP3NDP* z>y1S-SeT$HVoI>Wa6P)kA?n=Vu&>E*tJsOUoAU}LzLA8BL1dz+`|yyg=P8}z1eT50 z^xks;01CdKiGylFjaz3oI@{RT+#Igso?yNnp(HBef&tcWC0X>Nh<-OaeH9{3H=F(F zWO$ngy3wH};d*aDk-E%B~LHXTi9&Gvon}JN=$%QyP$B21AH8xC7OLpjTYT`|6Fr2&WZrHwN-W zF;_O#47i~xzL{9C!oZiR6bV!*PXmyFk+!#k4VvPz5)3tgo+FEMpp;BStT8b_3x+C) zYxb3q-y24*dXT5<?bzialtwzP~RJJx=x87`uhX9tiir1vjH9r6))VC{JFMv^% z#BFZ5dv8%95-qmi!N@MJ zH#*G#mi%U?L@Y6Mxzq;@ux6Z2=_=h+=u2REGGlrwUI^&{H3XuAtoU~DouiyPF$32Q z)cgP;X5}}hpcv1y(t`PKPC+rW*QEvZH_;ipFQU%(0-awsVQCKJTP1o0^JKGbzXJ>1 zCM<7jdKjZO$?0Z5pU}WQD+#64E>mC3_;a~xsGJ9weemY9= z)LWOO@hQtQ%jMD9-k%^gvKs{JW(vF3n<;AMjHU53;=LP?AuguT*%Xflw%FA)`pGN) zo2@r*c51IT&R`<_ARTv+?~H(IdOuOS3b>?Zkyb9IBn6R>Evg6J$p+(SJ|*$z zdP+}1+b|!K8e%?e3RD$aK>6r;su}=5HxYTmTJL(=C+r_`l8N9|l7F#|`4|RRlpl<- zJP234`B;}nNeW&W^d-8O!kSkG#*TtPEqWcZgy?Bh!tYh=W;{sQGAA;_egvO;L#ce( zdqXb`Qp;@OXL{e#?})^q(0S6WhE*qksGS_*fv%rbwvjb!DAigJm8v53dSl7{vmqA1 zMHcuG9xD-j)n5hXXv)fzh)jvjl%Q+nSm%V5T1-M!5ni3ZEZwp!q8e?Kt#6gjk$_Xd zA(P&mZj#b#YhTVSmqtZr_~ zQAN*7z&K*yqYD`MVc$l5mpmaw<%$D9g1GUYn#=P5zjPm+(qWyscCD*Tv-H3DI9pMv z=ap6}Y9m<{MI|3KeL=;E0;n5M%jHTV2(9L@wQBF+-RR8y-TSe|!9Pbs7| z_+;B4XA?$=LyL+YYH*rKal#H|WpcMagavG;)d=zTb!#hp-5l=KUjYgnQOYOJHE8CQ zR6ypnlx}$nU5OEc?DeRDB4~!UGLTTR&8X4LDKP>Q5FD*Kv>k` zG>8tH3GPx^ed|pS?AGfoNrUy*Y_Yk85z@r#8+fhP2~Uj|i_OMTxi|zU=0zwTg+Oeu zN`Tl2nyS4WYChMT{21ezp&~FWXvy|sf*1B7VhD&m=`F-i`$eFbbO^SLE!phSY{cVN z*s}Jz$g}MXF*yam16-O`i2&>VW;6}EY#8E)r6R;cyOV}TdABr>8`7HD>xhK9+$2O4 zAP?$O^QeP(P9(-VEB&^?HQ6Nhlr7 zVW-`@?pKGq3Hm6l4uclFgWwP*;&>LC{7u=D-dFfp4U33A&-Ge1!KgTQ(<|r#-jZT9 zxmDzQnc)Fr4Bj=mkU2YOXCb06!;&fndQJl^aEyoN(7Zr3z3Dh}+;C9U@Cut1tN{;k z|3CKLg{_TTSrq*%;5&!gJv7AKegGyNE+Ho4Jq~a%OjZtIa~#}GoS1HwZ9HUQ@85o_ zN{^QMVH#{+8Go}@a7(3<@GlRGHd}LG?G7w%W#nOK1%UW)PN!C}O_$fH?FM_O|U6Y_qr009Cxw z;%oY5>kYPGWyR#^UDzqLU(*3CC9JGic=oZ$EHuhmtpSsw&kNB&Fzn~!{+s398SY4Zfwet&^9RPv0<7Bub4+CWy$btM zgO{`Z0I^zEzOYe164OFDNiq?YV0;<|%eIiNP!#0-HxFGC5S?~c2V{T{=JOWYjqP9I z8%D~qkOu&+%iw_Si0JJA5K*C{#6rvvx6Ae+CTvfs)Df1Vp0F*<+X3r|_(Hn^=C-(1 zf#r%X>mw6&o12WXy@C7v3WArQTqZ@7;U2DKC=OFykklAAnYdhc3AI z{q*F`&7a6Ur82h?W7#g6jFx|TD^7`u|HKoRBC8g5{m|l;*FK^AwbM-oZIB6|U@mhO zq|HCE7ye?gj0f&V+2VI$i_ck$zYSpjj4if?SVs%%_%@*3zcHi?b6LzU-1W0L%W(_` z*6mYjbJu&_9c-HHzgvJbeVJvwO zvSHWT@+zTcl3h<(yQuO+!LFWYdapsL5lRRb;1QF8)I$OwJw3UWj|rGtg**io7WIb0 zJ>_UdUgHbT-e_qEPhy$OXJ?barcizTlc9lTlqKM{8ZpW>*Hy2@+}M2$$tL-!+O^QY zDJ_`nT4H{4m$rW(hYQOM#D?-5x0A58Krzq=&B`wA3>A<9ffQKII!STc=6P$Bx27J! z)R(_QyFYHSc6`EijFqbcs;OxIYA|`%Yq7xCt#FC6>C%a~LW=j7fE=xpHm>rx3rAVp zW+HfK4d1}#3wC0#j|IJli5$8hm0Tc?P@A!)%Jn&IuPaV7Lfg?W+)dTp#_E^u8My_u z&|mlUYuDSnhDD`*axJz`*RbwfgI0Zw>s0;3ha7Pdx(nqo`YqWB2pFvmbyP>t=wO4! z=`sy7aD(MK?Shd}chT2jKn0ljV94wSMw=T8OlJB(1A@DYb~gM6&?rU^u8B;ze&&bw zYeeVK$ZVIC%QjFcDNt=@ZZX3N(8kRz8%3LrCttrVj)p)bZ)J$#YoI}|Uta@n?vmiU zHu358r%f|Bsh#YeA~%#)@C?@4h0%@LxFO_e zvWf+(WLqUb4A2E@1K<%3GVL-H*(g~Kz~aTD4anpF2esn*OC`J<#s9PUe-8hz!2c`q z|4RHnd8G=~G1=(?tWGU#zD-3D96O8+#|BshNP}jUtPSXd0~s684cIIc)&VC#t(CE_ z0BDyAP#_P$h5T9pFHEgjWxH6i*0G4~IO`kOIVk27OKXrvcbMqkQ>&$ROms$cqC{jx z!XjyrxQx7v!Zr>F{*MNQI@ppOEI8Cb+7HPtmuyNxMHwA9(iTah2RmoPysn%fyOHKhQmP)AL$H=qm%i7=t$fjWT~xg=_& zG9bb$U6Ja>rghs94c-tZ;7z$r3t%}6T%+i$tviT1zhvNNzUUMj$L61fVxhFLR#-2T z=@YtAC;*oi@=F0uV|!%S#exk@TPv3!3H1X^cSgo~X?QkJTLC=B zpo^5e4p_=-Hn12=13vq+)^aE zPkr~*l4Yx8?_}|}bi(fPy6Dup;==y&(yPeiH`Yi~r zX}|jKlh3W~mH*RR`OoQ1!5RPdYIQ&n1{A--yrf!eA@2EmX=%~NNI1PgADurNxifrW z4fp{yRFGfUSopm7`TzO++vorFdFiw9+5Eix+4{Wlx$=4Q^Xt#<=Qp3XKL3B8Pd=Z1 z{_oFcpKm^oK94{D&*_bAm5Y;Fb%b8kZ)upcV&#(?sdg}|V2Ekx;~i^2AN6c0XJn^E zHNXq){lKrZ#^_y=-hQJ?g||QH;{D;#2TH<^RrJnB-crtX{@C8ztJcqIdw*@$YwymE z_77@1XM5Wps={-*)-g5g;NYU>Q?s`DOMLd++_Ug@Za~F-CFUSAAHMAdUyKufYb%#K zHR;LDo3P5WM(zJp?@)zGe^fQ%jO<|D!qRy+NgKk(3_0w`lk-WxX`=depe zL@sscHh<*(7S6Q5eZwmVO#NE_qK%hgy)fKcaWwMCuqq9zi}t4OTHQ-_rH&rY(2qKf zMy&NUb2O^G2HMu%z!D%a^Ihm-KEgmByg?J=i`53+1!EwL7>cf1`@lc2^%npXC$-WN zNq^ys`v!ZRe9`vFMN9gM(G?lL8>R_e(3*ZNn!fvpP2WAW zt}*zVWi-$aHj9@51g5Wd9?WVF*OK-FF~)rfJ-M}V7@{N({kG)I=h7P?yP5G)#tNv1 zu>!8GU5ph_$D{6W>AO~zKJMg`W$Y>$il_JM(9=6}GKcr_qanaB1{Kos3}6;R1>#z# z)<;3Do;MA-{;Yn=NU0t^5}|?r^ak-sc>*XXqISKy_x|XQSvC?eGpuL(e^n26>-!(? z+*k~mD%f&qNkm;xJnlaLQQ_a?>YZEq{Y`C_jiE-|LcZh`i8pB+S6GEcL3gl8G{q_Nmo)uczxw~}5*GC||6o)Jh+XRZlB!dJ7p$FNZqRITQI?zd# z8e8aZp!No*L<96hF;i)~q|&S{Xx6w3%?=K$jq2V`HHP~R(*w3-jZ>=~7Xb;q33smC z5lnnjNO6jk{-Riq^|mE?TbrV{0`r}g3+Qd_6n)BIGufKFsP5Zm*-XL7vblF^U^p6d zObi1-t?UebCcKVcr2C|J0SJEmdDi%}w*%E5RS);J>qIDM)NbuxNkX3DM`$vB(I1WC z(Q1~K7E|LoJ%BmmL$%QWagdQ@QW_=1lG{pV)CxP*uQN9wZw`*%)@zMFM7?pIovvE~ zEnmHE+dWS1XM7lUuKI)E0)r2x&QZ2A4%m9Va}474!`acNgX*kir|7AQ`X2h6Izi)1 zI2y4I#MYeY+ANq(Y5P6rsvM9oCZ#f6CtC=4nQ#R<}RoX26}Y z-<%FvJMO1*;vXH1Ncl5sUyd6XIOqBGgv&*JHtk=c16Y8;VO`~cMy*T?=*e)BT4b^e zCewg38MDeNVMe9fa=N;(8U~F`5z;p?1i8cQk2%X<#Q?NYv$;c)#^O$!n5Z0++-^jul;7dc&nu_DD;ehJ zRdbntpWZmucmzm3w{C2!Fovuf_?LZ{kj^qnV{CSYGg0r{>o%6H+tjp@CHVGP{~ zAZ+tC3^#AXO5SA3|927B`+I1rlxvikk}nou=p69JLL(eqj0w@{cD=97?rP2g4$7Mr z+NE!8Ts>@D9U3S4b?tuCOMZ-%ybeoV^KPNT7FP8~(fp6A{Qy*vE6;tis7g4D(}q4@ z1l%`oB4AGf_9g>*6409jX!53_KgQewG0#HKTWGP-*QjY)yBHM(n5APpz8PM)a?-LSYipS~?9i>-#%@$_`CK$_sDMgz;{! zP;m8!Xlm5TMNPkRlgDEgA?46(w%)=f_AT90*W;m>H)(+=h8^$k+rw1^blp9KBX{yx zls1)UIQCcGb{OO5q&cRKD?{sk(zzZn}q<_}zRJ zjVCV)XvjQrhm1i!-_gbQo?))CEATMu$Gk-aXHt71H`?B$nu?Y;4tsdF{wLvc0N-Wv z{D+|jxKjGh9~LO3RE?MQ5<}>ei|XZy<{%BN(8+@_v({ z(Z(ZZ)in3CDJ30ID=#V(2Dh{?8Qf_AP2y2CU5YIM-#LrY%aQbQZZqMg&<{^}Yrt*n zKG#k|_?n>!q@fT<^}DS^JNtW$TH~m?cXS5yuf5A6iC}kCKedMHn9Qaz;x5yl)xA5l zgOR@B#q;Z1>g_7oRMQ1jFV#4xv#7`B2(irR=8pxq=f;3nS$57jGUsB_{|CGFPS z5HTS07&!|6L;Sojz)?qy=l_-ANrqPL|FstUV6bq3HbkY!pJcK4>z$*7Boo_9cO10W6$fwUa-P=7y<2p4p`tf(+r;> zv*$wsNyE4{Z;^onw(LQ~Twg4Yq8o}X-9ueJi;+o~DYETp7a z0j-k%wszI-2V1)p_PR?p`IC9`2{D@{R0e6le%Fv)C8Op*>8)JH4HvD$XvBf#D@$=$K&;@oB6$3*W?Gu)~ieroIK2?3pD60(K zY*u8G5-L~1U&oVnsc(T|puues4`(AIC?T6SyXZIf=Yn_bonH;m-EfYrI-8A66S;s+ zXl$!R&!e2BU7*%hYn6ADe^E6U-4CBKvn<$B)K)Q64u<>9n-#`*=(!(&M2@u!M1~*3RYItiO8`)9p28vlQLa1&wpPJ6R=^9)`@GdyMgCwPA*hJ5N3J~>h_z@? zx5JyOwG;7$Pw7UZU3O?xURvV69ME&og@Qm!PD0rY$O2Ghv4&;r(>KVzSjawo&0KEY z@UBod7)6w_Pyx?>jT|0AgmD|AY<7R%1a1w!pfx2T4CmMgeium!1>msvn!GWJ8WV21QwePNJz>=>6j4l$JW0OGao8gH8F$%EFsGO@)@* z7V?ZH!KT?@B;`SQl@+As-cazc%5W@+Lr$^*Pm2npCj`JJ=O1rO+m!G)s6y1SP-ODG zWkaP-|B{?(Ge23<4P`Xan2SuR`uff*4q-NHuiNCud=VO0!xMfC|JfpI8@uCr*$V~% z(w!*>tg-m?yoOpJzMS(;6i?^A3?DukO+sL@U>JN7a`gt+X!izVk2MCM$YaPdn*G)} zbadeDc|)&vgmhtX?NYq*2Wr&iz>Qa7S~s|Ft$3@Q{yuCMwr=QhZ*KnwY~YAZJvOf6 z3eSPUVHO(^i<{pozSYOZR)ST%;dGM9WVyM@Kv=8BV~a(b+s0_Un$t2dwm$AiX`6D! z0!R}zp9dFTU`L(Q37(}83!|eMo>~r7%Iz)-^xMylL@UNIhK#B`kqw0pjK`)% z4sC=|NfRoE0k;o`Kg!V4`{+$sB2<*fz90eH(gfFLQeG~va>v!_BZf9sw50<3NLFexmAgntw$|}f=Z4f z$gljrd(F%JUeZ9{GQ?u3lQ>X@MbHm)9-7>AYM({nbbv;YmC4umPZ6aCUo%#DG;>3+ znQtN`)m23)rLH!c(R5{DBOZkb;;EKW%pGN2P+kx6DnL007!U+&7DS~&y45}f(1H4RX+?y zTw~iN=1;@p%N&>0X#{Q&X+!Jx58U)HWw8-X9GoRv0i;wKxEs8Kia4!yn5Y$MjCZxqA-T>$28`U|+%CaujA zYDa`g6J`QQ_dCr5`(b7R%BZkKndbo(^VEWOmc0-EJ4e-b>`2hfMN{xfsFHSAZ5-_HHL4n*NJQA9+K1}?@sXS3KQK+4GahUoZhvUF zIsF?U_V$ke%l5nNw{<|Reu>=1@xj6VA=JjQ<)?~&|DbwE*ZadNWD>&3kF)K!99Jv} z;XYR1o;9jF$A`6}PuRJm!`cq?C@~q~tN+4_Mfi&0-ND)JcCC(>6A}@2``x>|1)SH7Eo+9u6 zSq%}#(}+fU#~+Z?)w6fiziKwq(oqCvf@HvT-?KLCOs933B456|9LfuZ(~53z3Ed&AI$rjVry?})_=j49u4cTe?$wa!u_S5@ zH0$VayS8^k^)+B(Ge=@3yV^cA1jw=f5o=7zz%uaTj9no;tM2XWzpL%N7d574QC-j+ znM$IndIaOoi%!Z7slwi(9q&OEFl9-&rDUjb>=@~M3_o^(1+alw$1#rZZ4fky+l*b1 zoCk;d|M~<%>+r8Cv^gy&TIxNt?c;WGIXw?c{*M-S4aicfziq_C(1c9Fd_cnUsJ8Pbv{Oizq*NLoyz_DfOIYm?2Sxc(N20#J zvt2)?VnMEk_-NcnwO&~`|2 zF|{BGNeT?L{P=BS=dkuxX>=roX)+XpNIYSkGsP{`G3S@Ckaht>am3}W`v+0p*~*&ns{e?*JNArQ-M^=Ri0 zz8vfVYFT$m2J7#(nA=J|mpv0QnVteGK{ctuv>ehi8%*m2)sp|>sW5z;*C{Lf(1Z-md@Rgm^f#ah;_77|S2S?;C&`H!f1Ubvs{m8~7D`W!Jop*aFy_Pu> zXn(jZ^q5rYhad@fK5ifGNdg?>+ybqHJ(rFloB*4KnQ=T!ADBb658Lmn$w*^hsrcBO z$4w&qZKSj@3dMJJ@9QBWaf&CUBJ|rTZ~{K&-v?#CK^JEAg0}#$b$!3lkPlBjZr6@T z_dAw5javZXI5?U9Yag}+jl-QN1}(d~Gr9abqTb~ER162(q*FDJ#z*^;a3w&-v8uCL z-9Oz9#CAm7VGZmzL16-Z-$Oo2OlG?RlI7K%a4(=GXm$(QgDG|k`X;$AB{Ql8Anmnp zzNdl)AJJ4qo~FhC4c^xG--avV?LZM+Y+c{QZO0^R>0qpXz-+2HLGIzxauiKf&6TX2 zoD;QVD0-Z%adJNCtcUx5)ZW(6;G`IOl2WN}AIOanti9a6b9_L8Me4&7^Qk`2^MoG> zQ7WF6LqpsR4-(eF$VeYLe&?dub#KPj1^fA%jUUZEKQFhwHT#F&zppwyueB`_!@Ivd zmL+q-3kyl*Mk6CB*|o#^(gX5&e=o2jw&;N!hI3_cupF!HE+(Go;lmURwxS&A!KZp@ zL!4pA`th#!4ZUZPNp-qy(#A*iZF~V-H}UQ>3sVt>7@yqIT?}LK`dT*Z`eavc*zW0O zLtHMu>UPN`Ae}z?JQZU$VMZX16QNmcyuOW1!Umai(I%uR-97w5uUXjWDucitxmfh# z*SqKp23}9iuBz$nZqOX4xx19m@#*W#RF~%wUQB4w?uq>TNSQ;>hY7u5}G5t*$ zNhKUJ5m}?51W8#O#sk5lgTIxP;r}YWvGHy&zE|2F7(?>6=jJxe<>k6y4ho=h?sd9G z;dg=7d{tbjk2jOJvs@I&u;OAh>6v*A}6 zeytQMwUyGws8|3fjDfQ1`RAHVoQEBk42Pj6kRLwbnKlddhcQ&^B07=hHcp1f?ffd( zM|lbC6Gh{5gOi^3=8bb|UAsnMspp{waEutJ-dwjs;Oh~B7YQ7r93i{|@Qw=aMB&S) zmP{#QEf}~wKmPt^-QK|1TE;Gn{H{x{Dd@H_dqhLW1v~sX8J_?w$NFSqq^U4wB!(Rf zE0xuiZK#OF?~*A{a(B!4zO=NPwJ!Ns=sN}k+g<%0bbKS1GtJ7~%Cd-tZ8z6pZw_Q%ebq4%HO*gUWl`a=5XwoX2h ze@V@420IpNn}Sz9NnW{jKSI?Jo*16gk)YSW03)NgzVy+=pivAo!VVl1Ip!J}Y-E)4 z1n+S8f(l=d@C5=dj}Rn3CbyF~n$h-(@P;e9W6L9N6q-~}oMD_WU*!3fjpbLTH^s5} zdo0lzyY5I&DvaIG&jnu9FoZw_b`U?uQE8`&PxiDYMYhU#d`jA;awshBM|V5@0p0`b zgBTyjMW~7rqll`XzJ7|TUzQ8sa2b(`PP|i?nDInqrrxyuN?@H2t}Ct4h`$e_KYESr zcH~r(zh0CK813Mu2u2&ELa~N0!0>KQ9EeL`>4}>z_^h^lKpbqf$OSme(3)kNmF4A{ z`ruaY1QIjl2B=;kIn;{XH?k9T6CP+**G)_%_EDgyG1P1>U;=_%1gZ>`bl(8t)4 z*6kQSQmSA?TI*E~Y)Ady6F83p^E!8x+lpLIZqOpALK!D3`BRJp9(h^Z5D#gsx;s26 z;EN#JSr03}HqZqsMsdAq;DaIjI`KU8!<#>4zcC2n5FZP%F9*LI@l`k_v>_RG(-9Ul zgpP*L))3|ugr5kZq|lI%lK)gJML#h_6e46F4t^B)2h`cn(0z}hD}?AA6`if3%SX|z zQpiynfqK=gZ(Ub*Ej95iChk_QEqtHTY=wZID&N&Kg8N?iG&ami(w&utQMX`if(4ld z{yVG(6w?^z0IadbwYzeSq1e$eTivi&jGzz@(5oZpR4Z{8Gaj5Yev{e;0^3QJC@gnofUrJsbHLlpt? zwtC(c(7y8hcNnC+S;1r&$OH=f{{8o!2XIPDKd#uNJglX_fTF=s4s6g<0=BF1%qT0W zxq%ts$)S?jG9%2XX4WupiKU9DaxsgD;!xQ{)Y?OdDE?K%ucG)W;a5p~mGP@AzSd5u zIhjP;n%0oA){v6ckfPR*g4Pg6Yly8iWTqk!o54Pc_)+2?CHyG!k1~F&@sG7z#pqht zgtFR%lG=o#+Ju7I1V?Rxtu`SaZ31KMcfr+{t{0WPEHxs070^)nDv(*kul3#fDEEAy zLK)n{SD2sNl~1Pii3{O8!Y*H9TwD9qr>H!}yxpio{$%Rq0KU9Y+9;IsQFz#CtZl57 zHwt#4xL$S&c4^IXHXOY;w2I4Wlq{wEn#1Iqf{ShR$!+kb*C43@2&DZw!shLww*vAA zrM3s1eN|$g5`|WW=e;UA8^w+CnzK<(uI8JUD8E0c^7|WVt9ITg0y*I~{3>8A#Ztad z+Sn*NYlXEuRPsBuNR#5YSfAd!CJaprC;|k_bgidB`nrI7zg>kWCb4FVwtRhCPicBDF zsSrrC*`%!(gag-%c1T{&AjgC#LWifgGA_aQ$q)r6hPPj*g%lGUmSC4g=tT;3DUTI z)i-bCEo|VK1WNGk04-!sT>dLeAv5gNpuPT^6EVUbL!xyV1YO;RdH^X_H}Jn=pi(uX zo{+{Z`7whl;!ZTTVuo&P#gxpZR&8^e=MU{MX0F_NakmH`!5P`GGT;NOCL(uoEjobO6o z(d!DaU~Q%K+U6si%Si(+I%FYnFvNX&o%~wWHZj;RJ2zmB<|e6jrTvC%mTg#+id)i9 zWiPeKQdKT2u~Go%6gCj9P%do&GQ(IS7<+wWNGSYv^lt@+xk3RZEnW-JX4$~V!yx%Y zB9dd-z;y)Bo2sd;JsG=Im*&?7x#PTp`E_WbG8}p*Yit>Hw54Y(EsdgeG^jT2Vo=q} z;%L(n5gTr0aA90)A|iRno^={vmA~qOJ;|_wBh6UU5D9PIlt=c4WASewWP1b!Ou@hH z823e8pI362Je!+;bA2ETCGAmKsV8#}caTOzy4nl|J#GG6(@e+(i>qzyQ+rsq{ z1Px8rhTGbVKJnvjtzO%s(eO=8z6Xc&&BpTZO^eRS@X0ci&a;Eix^Vo0jM7+khqB9S zON}KQKzrF(8#R#M$K&`KC!}#~krNrB6+)D6Ccpp*M7GPG0{bq<&n3HIZt4mOw+VLx z(i!s1-Ql;6+o0u|$C6$BkJn?zQ#fCs$HD3#U=arsoIB;mRVXqI+M+f)X;mUCE(DuA>iX;aW`l-trOgI# z$O%w)jrPjWRCIkzmhuV8)ZPE76X?+WpCSEN2BwhkB>)+^m{`{nQO?2eGcw|t3`!kr zceKSKKAtP%<4McD(oa0FAgAV?K6elZVw;86SVe|NEOXiH^+BJ4MbH8X0nFes;MLIM z9KJ9W69V|+@6o6Y4Dt2b7Hc@AQLkAt{xmBA_C}HD@0IK5R`NTk@wR%}tm9i;gS_WDc1{DM{aINlJh=>&=ydDq_}ayRuNh)|{t;bTkb93y3lb zn*|L0-)%FLqaalc{sREjtY{nJ5|XuH#jpi^bPukG+E6Gok`0PB0-LK4B)t`JA*|2= z#;4&b6*}u-jhv5$u1aRn+97T48}x7cH3pb3;$P5@?21FG(Z-rxa<&SUVx__J8{mtn8(w_(7hH)F`nwS+22q*(xRU$*10yjNQ4rU#z1vA)7Bi;Fvv~bGTrqucf8EK zaOJFKQaVf<)6?Rh2b290l03yjS4ui}Cu3G7RZJeea>7|*%-7dwl*^6D&nSDM zY7LczNV2IQI(v(1u=dDYOZ8D*;Wf1_)a~)5Xk{^Pd9bE>J@#c=%**K&|3)_eu-UJq zP^LDv`jEkWHr#?}5HNu!Tal>!tYUr3xynLrnLhd8jPKB7bfh`Px5dJ5O#D6_%yV|V zz>VCXf($zDuk!Q##487=rjT_;Kl!!L4L&njL=82Ng{r-)nGaCdpq{QN`H+YU>|0b> zW2!LL(BDJBxVVU}JuU+Od;fhm_<}bKl{pp7il-olU~G%@oYf(7zncYQ)rU4=>%J0% zE1DTEDg&MU-SJz&-*|qsw8VbPtiIQ6vkd$-8bxtfcw^vl@RJUa1pBvpp7$SbOZ!51 zE9lad!?V1J1#ZTm!HkK_JZ`uf4I~cgU))I)Z+R`$P%%3FE=EQ00BmVVF@vKu#;vhR z*o<%|W0aw|YO0uHMHw32vjj9X8I=_=1q7F4h0uFEwZT(MqB~)xgVs*k;x6YRMkD4S zTxzSZRP6ulOIg;Ypc2BZ=Ax_xykTyM%T*P1rD#YiA=jOlD{yt;6*kJ6E9aPz zV~2-1lf%nJL-h~<6YV3~F}7+IvNEcX=b7D++*PffF&t;K{a~hYnFb18aDGg0^FS!Y;F~gSV(^eu@D9d!$RYs^9dLN1vz@}jqM<1S}zQIG-S|xJ0S|d`jIT9;E=eFTz zh5qHD#}(6fwS_uZZGUMgnnG}+kxUk!a%fN)$st`~fSp6nef8h41bL%&v)lJZ`H}tG zE0$ManJZhy7VHuz0MZG@aQfX85al94;BB(cpRe=z75KN^KD}8Vj}l6;Vp#i8MC(?j z#8xO`S2YEfJiAt!9S%7urC1;ocG>+gv8Q_g z@>cg|{SExHvQnp;;ao$cE2jt>(<8M+oTjEcp{}2f$D%WhcxR$bY=>=3=o)qmYJiP< zi{f6B*220=wG4v)YV7arUm~i$dxMPA=hj!!TjU1@!;~N2(RDv+Nig4qJ`>yip!DOi zuC`@FgjS8%3R)IUYf3@y-1t{nx0ItQ(vjKW)i_1u)mD`+6-yL{ImYRuH7Z?*g4~sF zBTO@VCqX7QGClWPlH5I5@UI4)?r+7I>CR%fC776jzu7J;A?GB&Oe&Ju7qhlXSo{ii zH~W{uT1skY+jo7whxL5dV?WWKGv_}`xIc20fE<2+&aiL71d8yBn<=(2#N!m7{;=YM zW~U1Y_$RE3BF-xH`M5a%&Iz%K{)_vpSW4`5sS0!^2HkV4R+yK9?-OhLqOFuqVI?N8tZFR>XI8b)mf z$bY>Ruqv>IkX6HH28OkfPsRm@-(T>VVF4P-u>e%8KN=>1Xp=+Wccg*4oolZZk}0I8 zg=K6gBW+5U;IIU4RKk=3OL2e&9O!3NuM{j9zDC$;^Ga*_xfw#b;+2g&pX&5FFqEmc0ZOgZo?v{=FK@_MmQDwfJy#Y)LSPn1G> zjguOf+CKkvev7-9#gk8M_E>ga5%sDyAL^@6sVhF)&BR*!lgYvh8$Q}7eX?S5vu+BB zVPT0|$|5bqfHk`7+<3o)$q{!XW*WVqveagzbv9!IrR~?4MO(k1Z6l4w3Q82ih0 zkwCQ@#z@QL*0kvE*PZc-OJ&wNBHok=A2LGUO%u}IU@IzwDHT2fRcla|R(_3Uv-R2! zHTV`SkS$oJPFknq%_PR9b|l!oMNk(!gG1A^ylIuf(s??Nk!kN*(Nd6Y!$6JQO6B6;l#RoUSG9+B~`vz;13{#9cs4@ZC`XYJ) z{ZXjlDGE<8p^0tS$mu7eV%93nWXO42mBS1^X+%vJYcRj*Z<;=6MxZl;`ptB&V3}{B zeBRK_&_k$fQ_`LrW`w>y0abs3Qmex%7!6g%_0E{p(pAAZTBgtSHVri|RY8nqgQ}%a zN5j9#?nr_dDonWkqLzT6;P~lyo910)tH7igkJ`wEu8@$gi}@{9AML7{bl^Z0)hes} zCOKa5BrFJZjSk6X5e-Dy02Go8584>5hEkH7a(O}awX~#thICeK@S&+C6&#l+I@7{O z@EG6qPOBK*XE_fpf12zMy(-1MpNJY7d84VVbz&#z)2+nu*h=QBg!PX1MOm_7*85S) zGF8XQu{A2k9hyhh$;5Ta^7yqEwoFVM7Ftxe3`yz0gtbf^6YOU_x~xrXSd7tA8>3G5 zP4-x%*#e$Aq(8!h<)oRgB$zz=WALE?i;fR@qHd`omm~XEgZ=hl)Box*^Mvp#jw#$L zF~KbaR|5=Y*~1JxWc6XE++WTuEW>Yff?=ER@rE)`s)mzZG*OzbK#&RJ2cQrZCuy<* zGAlNuv*v_@2zB6)6kT7MXgpy-D{b*$z*t3y5DZ zA>DO^rI=~Ia_L_|rB#Mq;S+YRk%49`!EPr4 z6<)Yr``uG6^{BZZ?9fUf$1!yFehXT5lUpM8$Gk5^>dWjKmbtG`M%w%k_**9x_|2Q* z9cuTKX{!#S7{yZ9^IL1Co-Y@&4vJj4WHt9?mRYw zw^RXa_$S^<@pOcL3iS8~fAPme_|r~$Oe7JKPalOU%j<74ki`nGmus^(+D<_UDZ}yA zhm{G+97lx~*Gf%GW+*09dRZV=uQc=PXp{zkrIYY-^QOVVn}m0ZEj{or%TAv#6PN;T z*s{{}XA+0q!d=-h*~OWma_l>!DovI^shH$xE3GQ%3@7B5k{M-NsWpgnE0K}y@F5I~ zERx7x5o>OE?|!5zcNFU=R<<82tZY9;NjaP7z9?Qn^^>vbCeK8xvbpHG`NYC8E2lp7 ziA!p4+~7iNi6{2;`eqwfw_`#>E?YGBj`dLMb6 z-a=t2&D6y8lqN>@cZn=63@m_1*n$uzDG5QQPWZGMhpq7~U9lEDFg2qoB=C1)X$nMklp4*5o}pAA3kQ!f zt!&Mc@&4#sx{>_{-xK-D>lTfN{H)|xXwS5(RK@Km5N_Y)E24y2bc>s&M1c*&J)Kgt zq*PE8IU>M&qDuHTY~<;(AMTc6*WARNb-V8k#NB0_rsHIKO*A+PD40X3YL*Tew?BBQ z1z{`4-uC1wIdR78ww3jqbyrl8ZpJN!m*;q!vhVeVNV5j}ONPS<JJvacni&i5ST=R_6|Z}c-A9cTo?eceO`a? z4v(BV1Fz*SE_x!Te+dlhsae6;;LT3u`*;h|rhuSR3?sG?BeA(^7(k1jv0ME0Wi5d& ztS6E#{Y&q>)9!e!oXMZcQebL&yJ;%cx$wCO3`N7@6_G~M5Y#g98oPK@BoeVrCyf{d zw{pxwtxN#f%~Eowcww2HouP*n`AFMho|L6y-Uc~VG;$O!E@utNJs7^(2B5mQB+K4V z)m4*g%cO?Z-4?YgGJab*b{MTTjHN)s>cV^Sb@+NpZ^boh#kE`*MSiO}Xy&Xs%cg7g zfDAHWyMU5eAReY6rtZ-NJXnE`Iu~AWH89kpMJPJPQ)p6+(qK3jG`lFJe=b1nIP$Du z0*gU@>h%XczIbxN9C*qRr{2kbqB9E9S(rc8Js%o?em+5o;U^DztX|$KmkW-u0hqW% z34#H+{4{QP$cKke#Kfvlvb@#!;fA(~=@)lS?iLq&@KHSYsk~L&RbFVI1 z)$7Zk2jzHITorbcCo)n}3H(REu0{nuPd~F={)^Z3o7Dd#1Sf&@8$Vxmlq`OR{2M=E z3NtXl`VIT3B~!;&xn?^W87Vm!qS!hLE<5KRyg?IZr^|7z>Zyidx^E(}R&gI^qAHG& zCd+u+M?F9^uNx?&FZs;9&i>~@rJW^-^bQ1zw?nG8#H<1Yt z9sS%OCVUwqRW)1;@vT00nay{F=vt$|cZPPQ%?DMee@0{**bc`x1|qg=;V#rzTSC9m z;)w^6=_`nS$T{wH6XV9Z;gb@eP>wk2YY=?xdd*9^fpUQ_W0rHTw65nc9IFX}29!jv zdGUe0S``m!V0+FHgrsCdBz^?WKxp^z}^%$5bT$qjRx zUqn!G(mP>B;cVzRa7=D6yOl(y;AJCsC+w_MU- zWGKu!*gia}ZP)9c&Kk!%7)fpSxbE5jmXyJYK%xlBGZZxm}*UG*v;~3O5{x}Ai`p;ohpIUS-&w7CDMb3EPcnY zIr)6vCPF0Uv%-+bT3P+qP8B2VVbDGnM+?g%nbJWR3KqvOUU%_S#AT1x%c5h!M)m4T z|Gd}v;*sVQ#-;aw&C(eRBvX1OZc=#Qt^SALOQ-9h8&HpJ(keIO@n)F5%9CA@WX1DV zMbbndu|pDBeBX9KABR=s*3gU36NPql*jpKNVSBZo}5N9bAumZveWJKN#V1 z(_FYPf-j?vZ+1pd?S-)r^v$i&C1JlbI@g_1&oiN+m))!LAJDwZ0R9X{m;K98-|Ka} z{z7yT>$>z7{eHzbexKQF#?n*IpJFBn~2eqJ?1PPgO#Fh|3n)of!Ge>X2j z%n?X`!8rF=#pdX`)f`=SI)3n~WBI}0gQW3JZ@=-%B9|}&{1zndTsB+K#^z5Dx<5w! zPWQ*Fj&fO&4;h(GfVF(&piL&W{MD-_oj^)YBz|+)`Pv)=J#?`^OQcL$y@Eb$fA#zU zT^jZ1uDaLjOMe?OoHWwK@dT7}B-ZvsxV86tm#M;(JhqOHHqxYpxoV?pad-BgntUUDzviGGykdy<< zW6-;3c6Yi#A85r_PmqC>x^T{tb0O8zF7J$(^Oi%To1v*-s$ps5~@sh-%^``niDbYvlvmn}D6R9Ik77g{`FN zQTaw*r2BzyVgnSad`D{3mzL_QSAIxiU=Gokj~G`@5DSl6HDhVIsnkw0mDVY=ZgMaK) zN0ry>efWpZc0q-#O=HmMb6!9^)wB+%;yel`>LVTAYu^8tW4 zB?&L>&Q!9aH~MtxKGdYUlvk>RZ*U1;k4X4>T*B8i2|t`D;fEwk(nS0)6c))KMF0`f zAo)^E2_U#&NCqfZZiYfgxJhCHL$rj_nbGrFp~5l|NCeM@l@h~)6V0wU&309qaU$(% zM5?I}`VyFJ3yaYjMJs`w+%^LqCj!^Qg>X2_g-|k%wiq6I{Y!l@WGTPOVwkcT(Y#I4 zg^#Atrl0j8E802t#4pC-F4}nHVhrB5iD={OZp@>v zJh%e>N-GZuheug?CNCVg`Va+@C3BI`^ZA@yM`^yY%yMNR#?V%l|9#aN=qn3Lc}hde zqnb9SG9s=&6C0u&x4Rk?$dcf?_Ey{g7~A+i#J*oPTw}_2KzWTPDd8zuQfeaiWwR;P z-}Tt?`(!+Z<1ht_Mb?5x<1lQt#$ZRZo7wZ4z3$KI^(BT>QoEUu{glk-Q4^-oc~!H{ zeK}aPBIAW+4xK741;7jp7@E#23>Z%~N8-#gBP*|DgLG4G+AjT3ZMn%rxMlu1w@g6i z7n*^Zhv498HLt=?Qu5If{pvJzf2WV{mYkoZDs0x?<|euQ|zII_;?PRXq`76 z^FT1n^vhz>_K(iVcGC&@-FhiZ1fL7hGLdeRLBhXsIN<*!iq! z4$oooKF~#%Cz)&^gFMO{OI=1EbrOZ0*5^*$YYshq?y#h%oI5jN|LIva|GZe1#$}4* z+&CjX%872+_5{vz5?If9KD_rtms}o*b*H>NqwVjW^7@RzDl?Mcleap~GkI^P^jn`w zhu&rPr#_Qd(yyTaJyZMU3%UIJbW@ag@M(1{xs`baCe@H82@By~FhH-(aS_KeUhGUp zKSt4M{1tl_O`L(Tw)3CoBOS2c8J%GCG001rT)NZZkU-N-9h5yIBeM1=K(ivl zSY)InK*l_9N*RW^Pp)RLIru1&jHXMv7-KUh-6DI7(U&|`;w*Uvl2D;+f;lHi9;z90 zc{rDcb9wkgcC)!Wd?@2wL>>w^f?^27_oRoUA3FW>56#O*dr3OIoN9HN-QerhbjS3n zTlxF>cK}LG7VWrLvg>K<`P55@3eJ(NCG;|AI6Ymb#m?+*1> zCF9=jo>R=%cX{_LSX_DdOlUTM4i{NX;1BgGnscXAkhaf%NaYBBzwFzF&p{EI+QdFr z6=JHw6b5~vBs{f2A12r1-AlZ6Noe1`Bs>d~KTu7#ZD~*C!<1)u;61e*c(6n4U*KJV z9Qj8(zkV*~U)tM#O4;sq@rGZ&-T@U%BaoK!Vhz5D#@$O$Vj99ct0%L7?9aw-JC&VP zv)oEMtLS{zeI$cUKj#(@0ym>zcI*s3ec26Ro>E+>v*A%puaj)6EOr{_;WT$qZIz#& zf$UK!m@I=1y*>tTNTfT@n`C;u@UW{jza3CWnHMUX;7_xgBAjlQS!yiNkQ&;ic)QnY z{(J`B`yN2FN!n!%70kiYg_{JKk>rd?wi!!K?X*gjoEk%jDzrpC8x*@9PLd=LnlKY) z>FNhrgmampp@G?CB{;HuV84L(68Ee_&qCmbf?=}6p8!(2Wl@mvGL^wvT52b-08qLe z5xAzM172SBzZn_1gpDx_ZP+C9=~pV&PF$;$wyM#i2|P3N!N(fj2HhpeM)O@q5?Sey`hJFoj$FZHu_FonrR>4O3@V8el$hxsjvMg zbLLT>r%$r+X1V|KTrT%0^piVJj9cuJU{i`oW$r)3Nqep#Z z#d?=6=Rl^3carQ@sw;ZnHe)>o9%(%t%`CnUHQ@4<|+X z{wc$m)pK}erV~&XSI3tv_*a)zJnaPuDqv!2dH+dYdA>;bBT1L>Tu*>caOxvKelZcm zrp0rTKOx(vD@@Nu05S5VC`%DLePZTZaeBl{KXYB`p>?UL?mcKm`6s;hkTg+$4Gm3N zx1Yg9izF&X)HuJNyzf*q<^puC`OSBpcUJqt88qK}-c$7pNf^=pyr|CSJx4vSc{TVJ z#2)z$o82ofn%E7_f5f9qz) zo#6b1@)0X>Nj9Ven!c~5Y($CF&V~^o)7|7^E_1vo`7^8YO<5rQy_y0vqt&Lk{t&B8 zshp&ntMeioX0?P?L0MfSRVXo*@SS})0XY4k83%aM&4Bl48vrhr)7MBQq0?<6B&^e7 zF1Izgo%Yb|)`fWOmMz9QW7S6NvAV<)>E$W54s#reULIUVXUokvlqsxm*{>0 z=cRFmosm4dU7TdR_V!#388jm4vfzExR`=d}QD?GAn*5Wi>%WAe{lMoGQ>e$9zAe<_ z83;@5gkolzt2orvHP@*%N=?mv1{&pi?^zuYPtX{Pw+rvmExKU&c`14Cy|`3Q((c0K zU*Q(u{5sCBc(w3_$?<7!`>a1BJz9!}mv$3!29o@_sOfSHbYWhHg=YKw-&dVpGByepHiACGxM?J z=>&zhkjbWz<<=z5vS*<0D&&oe%0mwd^%F#;$oOZ9%DJ?Ae$wt~1r(nTzk+~z8WF?^ zn5wNMZNcN&|8&jmp2pH!qG~t$fj?bf(z)P!NHuSI`)5AM{yFOnxnQNNv_;sMD}9Bm znEy-^)5qQJKZ<&qYLdNWt1r+0x!ic#7|_WB6<=kN9(gP2FJoQ#HBGRymhw{xVC^~2 zEDV>=#o2j;|W%}CCHP!;QQrn zw>*{m!u!4oe4bZa(%chL-atKm3{##`JfZrz*Stt{_`zB?)twN5KKoV)q0=RWfDpK; ziP@18_~gwPfjrS%lq@l$$tMSQ^7ey`^V6Q;%dSsY?yE!3pS0Su{7HcfWp5uZj$yhD zg*PNIgkT8iVW*J954PCf5}EMf>?iuGC^aoDVqOeF3z#Q)D2$C47SKZD;jB*!ji-=2 zTc;&>Ol1%ngM|2%)dre2Wy zQb}lp60Sw1IZcjc&aEzUtINx_x;%vw;}>RkNp(_;nL9K9aVf#mU&dM0JzhS}kNfX; zs&((TiJIu3w~6yp{`&|#HZh;cSytj>$d`P=�RwCey6bTJFmbnTaok=7KQ0Ae^=B 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 z z^0+7A8*TF$Jk|rX4YcO0M*^pMNxlxjEAGVdX2=183|Y7@E^&L`#qn>S9dK4?T?ezH zc#aO6)o85vj4cm2V>-}!>zy=l4`!vf$vM|4w{y#U-akvOt*iPkhc_=*hSt+c9TI$u zgjuBiSFJ1Lnos1-pr)+F&VOmj(Y4k~05_lO167X3wI{n3vOLZlW6;81h<)29em=#r zDOHDCGPX3YCt(y*o|+F|iC+P^5au0ejnz(hO>@y1Hf#86l}Au~qo_L+{QB(Z$)etw zxKUSfX16N?J;T=tgZ^hzCTz-GGaLP&OeN?H%x}aTg;wfm*(Y@g{S|)Jg{f0LE$UaI zO{6i1uxZM1e2=)3?pUwsA(#A8YPM+3R|T-BIse~R{g1tx>K{C~2Ky4*@aJ^*)pSZH z;pSq7`U#4W!(T?aI_58&P+kXNVp^YgVU;Tu82+f69or52S!xR$l_A%}O1;dYsa*C* zen-K62+VylaKaC?sKxGH)fw0DkNhZ3TC~-;e!f$SjJcZw>*5>apt*S3W}f0VZGABF zarhnKT;Eyola9mf{T0`Vlr%37#DSYF&4n+#jqfucT@UZ0K4ry~65dBXXGN=1F!u@Y zM0dou!g9%q-IQ>bSYD}|MBWyBD}q;$DK|WFUIkBl7*{B@?|H2ipnbcuMtjd-r-A4`T%ouDUss7$@@R*zYd*J);8H1bec0 z`bHK{R2J7Ni_@6YX0$vfl6z((R&&MoP|u6JCRwcU-8hzqB#S?azYBFLtP2FSo%^jW z@OEwryQd4RTFfZqd-eJ=@~x~XkG3au=Z!JWnVRog~net$*vrE#(C?q)jOg=il= z(@%rkr!(aYZK5sIc=TZzAHqi&^3ccmWE?%u_6}hYH&TBdZ7DvA zM2oF{qPSS4#*=)l_TDMt;H_+aG7r&aerP0iH;i`a&}%*C1>Y}6W(ABRiis2n2j-Bu zMCE&R{9dhk!YAf*}V4ZOcmEXlDp9b=S8je9kea(n|!SN2_-RXII zaOg5u;{7>^b5iHZ<7U%( zSIW)GpMBCX96=Xa8{t0WcOb4n&D#oyZE#*k(e=B$i|u`(et%wn`}vOa`bDbY4O$=W zfN{;Wyiq1Ab~V?Fqh26{!D2n?_;xLLbmDsf3u%sgl6Vs~h1+iQ92d?T7e#yitokVpV*ID-yo`2CHKJ7OP^QSQYOOUn;JB$xh~8H>WAuF(dS!zy+WNK`;}NvLTvy@yGey)fz;efbTRkw_K<^88|`mKZ~~G zs!#hVVYQQPx<9V(N4E9@!Vvc(%JZ9P9=Z{E3Jf%{ZDEs={@9*H!eSJD^LSq}maUQd zmF9ASe7mRv9mdba2LXIF_My7MBkzog_Ji=)vHnZ739+vz$HQD~z(VQ;8UG>GoFxA! zVSJ!1D;SaRNwI8C9C;o#{EjdyOc`}H#tq<_a3^&NOM9txAozRDci|o3@;oP*wdB1V zWi7{+l8h<@8>*1_hvqLM=ZgJiyPnAy2Z#4lT$jm$FbYwFXeOVBx!~px1mDd9FDL}b zP4Rq3QQSg&cDxUAD;PnnHxL%ZHr|&z$tiNmiI)?OwB}?)-G9^N=v3Z3FWl}W*8OZ44He<0W;I<^YfmbFTp9m`7KWRaGm}#c~143lJl%M zSH;CWAouo2<$nA(;3_5VJ)R4f+9BPc0UVu)KNJ4{z$--($}QJNisZg;Dj`vbP_8s` z<(zv%j@(yn!jjxfax+`bxtCk6F>G#Tm>Ju*-|z8wJs$7J`}H5ZuIJN#4m~n6@Rf8( zCO8Jd$JKX7V%82~dF`!sr*dk%GO_Vt4l3qPNEKEqECX~Qr(KSQrGlVonQR_=_1B`c znLBzjLW>I-i;5S{nI$BMkL`cB8-s|}hJC}l^vou0E>u))^H}TfkG%(@RD~1GZ5jAT z1xE21^OhV3?ar5yW{p8!TNzy6+F!_o4S+qpN$}%l%L%Gr;n68b`9si%Jl2uKP7)w(u&(i|mZ%uu7rJLlmELd=c8J|_BlLU@opnZ2eN)@VQ zTWpvG&IRaU`H;Nvv0U_}%&?+X{RYL^v2 z364I^h;(=UjI{5S`Ko0fdY7}_!y5)udCe3fj?eKWDBEl0m5WkN9U_QbDXf~ZTI-2` z(`#TmOmQv)DtgW;ky})Ttq&S)P1~#rILgR#f~r0s;E!`q;y3dEomt}C*=fqr-H;1` zwUqbP@2Ak$mNqsgQWM_%#)KCg* za$5SjCGb~nf7>-fLBFiz&KhUfSVOP`Nif#*hdmmYGrdwSsVCQ4y1gvv^0C+D=9fdw zvIL9dMeNDN=3d)Q!JsYo!@}GiGt!&hy}yc@&%<}v^9^vrL@|XO&It6eKK|fG^6nMN ztt@1*QZT7PPV2gU&yo^JZ{^R=VfS}kB^#0pFHi2N_&H>Ya@ZCHHE-3Hq0&=A^DxqU z(lO#;Cw#t&^84ueCD>RFXpYuWL`1T;{ z)iAt@@m|1-g)I($WlWn+W!-7-%pb6Tw~bDG8N27IOElgkEUxTLGp7-d`d=Y7jMb<( z*rUfx6)&%murmQ>HKH*$h%fuxjBlvsF`D2_4&ygsxMMWbhHsEhZpO&1OXPpJxto_*GNqM>S2r|$jA(aKo?g?_8e zm@xi?6u(5vk_Cg1cjsQ`Sq=>3oZVpg)P;bsC4ZS3I8YroN!L{_)@>Cg z`m~8R2MaoF=W-_@IEp1Gh}*@xdld%c?ZUPO7o$uB+LR~WXlK9Tz~4wAY{|4_p)no3 zTjBBYQ%E}N&*n0Ut81K9&gDL91k|#bB{U@qm$>a&eueJv>lV{+&EdoqPM;N6kvhxz zLxt`KG!9zTv`f;-^5=FqJXG+4o5+BB;8e4u%-d4TI`9U=m3LcHsPoV3;gQb;@wSjX zautVK+7{X%+3(`1$MGMi3O0L4qu=iVF0nni1v44tUY?|X_o_yfnF>ALlnysl<*UPEthoGo@o`Bf=sna=T%IV0>&x zs$DrfzouZ=>si6~@=^HJ>RgVZGWSB$ucUjGW<3{7JG08fE#`lE+_wQ4=o9wy-XR8X6m*I5;Og+XZ}9N|5LmO$;{^h*ZzFY zOeTNiLUjkjWJ7-D+SouCgk*YouF&aP8D+MR)?Ol|Xe_@f&7^ z`0bGBF$m>}9f+U=?O92|%pu?D-`hr4vx6Q7#zAt7z%nI)uG5i>d-U2VA$r4lCbI)M zNA~}mdwSn#deJd@@x;!Bn}vrg^ku@KxSK7v(=$Mt8Q{izBu7jjh~=rsu1dy8uFto7Bt;b_k7b$v=Z>XV(hg+Zsb{>Af`rbQvZ zWIJ%y;imALScuWvMBxSyVg6*>V$IdNfPDaC+|G}vmofq-6RX*_Ka>YWF_A9md^ydb z50D@TEz)?~O3q3$`_U#Ii)}FniNxl<^!;e`3XtH(yMuG?_}4)*JZw!%It~r1g*fln z>mJR4WZF*O#erlNf!aygts#qk<#^d_jAO=b39)HS_5q}O|Gi&gC(z^`?8&<;SM*|K zs9eQ#$_6`H&Dwp9+jYs*Vp^z;@ZnKLi`c9Ded#IIZ@WZYd{X(xxFy!mv(2Z{R}dN| z3*)8>X=m4oNfVTV3!Yz(xmP!C!{2iA0F`g^PtqdfY>PE{UbMf$%`he%y2>RlijubC zKyF_(baRj5_C#g|P(=Yl0@ybr%I1*sYg1Ck2Z=_gkACiCSlBI#$HVZS`7^g)lv#Dw zVDf=kKwY05{p?$?hlg86T%5y`iQ6wM*;ctp4Ob(1DY1c-iU-=QW?DXrb*t=3j6_dC zxW@AB!=;NA8`F$GD#gQ|xAd$Ux!8Ey{~NxGY!&~#NMxDc2J)5(L(n%G`;`+c-a^ct z@+{Rc9<#&64Dh@Me$Q;=dNo!Xqlxx*F%}2_xa?-#3zYWAmp8)>rfNh z>8OLW5Zc67+d($)f4^m%AWlF9BNiACJebqSMs2uyKl3nMcJl7H98eut47h*OD#&SA zoFr&PGya~$S;asVN5D_w*;bImz_ z&$C5|KILN{rCA2B&}VUA(1#TcTZjf|Ul8VM?guQ#{di*cO8-dzpFoVsr3pP!WXg{;sLK>Lw( z;R|<%s=t=fe{M?K3GeZF1A8?v9(*e|_5QXqWo?5%D}469`>xn|fNYtb~{4dna;X^{^P0Xq;Am6XJKn&~aVUDwEo-re~( zy6Dgr>JkhZpLTw@9Xu(NXA-CB=ZbZi zswfJ$^<52J2VH7?tmfq|`6@KEYJI^}Q*pJ@#`$7WyIh4|MmSVw(55~@4MqALRW^pD zu~ON;=XNJcp(p5NApAvO%3N@MHf_+QsK`t3;I0ILs{=#ZOFF(Hcb1JtuI+zRlS|V> zs>pF(g%9APx<2Y^b$d#eI72(^+UhmbDwugrWJ#*Ovh?acfS-*{4Znhl&R|vJR_lzA za(kC&?i-9SzVCO8zg9Pl<6@}^%NL$5dlOKqF|t6ThQIJXlzAKaLo(o5*YEH3=4Zf) zs!+EfFMgxZV++cQB+aC+ZZE^~4wWFs8FKgLd~}4tw|`a{8HRN8MmRWy51A00WwkU* z-X3@@)X1dGdWQXzX5ULD`9D|gTXvkzaV}BsGm#YktOreJy^?6txoxK+0xM9~HUXx> zZ*Co@z3f$avcU{caNi3`(DUz<8CWZ0VKP0IuuG7T1GIh%`Y=2oq)e3?Tt_Gl`w4h# zjnwxDf2gE$SPt%=_MeL@qTI1s&QsmE&uuSXx%5dnZ~{{v#kmnFZ2O*N^_F^`Mdx9n z|I-R^>r4D2*EqV}sTh)?KoH6(V>@6SXhjz5U8mp z2X1B9&5A6s2wA>xRKA|MTyVRLjkFuA8+5niL?Y(pkHB~}sQtRkZAGHMRtq1Yt8VwT zKR9A$xYv9;S8Q(IFuWGPB7pIzr6ePb9=`;jK78Sro zO&)Gl7#r2#a)z!Kb10Yf0Q$1uH@W<=HV0dC!MeJ0Vg?f)2GOgm0Ft>y zV5wZ={;c~aCE71;EFwguVo2uQCz+&8n9jNU%G)m;y#(CJ+VczDrq57o{I1Ha(W-{* ztrOly)1QArErcpKJpsNBv zd%B&pt?6B3JAqx6Iivb(gj4m*WjPz}C9&VX>+WdZ>FqFkt}aGM^pxu|8Z{ynpuXD} zy=~1r#LZ=?&9H{4xQ6>IA=n+R0HiEHr|dO`EwA1bFeo z(|3e(X?}gNqSCL+d5{)bZ2wsT?l@vMgTK_r%)QSlsFS**JsZ38P7UMnIh1qsX~Dh0 z^zQb;R?#pVu`F%L&cXHFNjl#1Q3gdxZ^lngb$Yig6ZkgW|xDk$@ z4j#66GpE+Rsx1yvqSKqX@7h;Pl3Kd_+r8|}5W1L3co*BA(yDrco4JLRVTZ2YZ9F~B zE(<4*KZTknY8w!}Xkf(9d8rYrG_8<<IYmzu3WLNXI(O z%SMa&k25PYqgI;l(nz(5C9P$0qwMp#%I#ZFrne1%>h^z@BEY1K3Gc`6>S?URU5uhTx4wU^Dl^o}lO#vweuth}wczp^tJ2`F<$vslpgE8vPzM+#YPH%IqS+ z)1Mfn(~(WqRUIt9|xTo!f}7g=E;TQrBQ6{HP`Y=WJGJWXK=BbX^UhQ;E=Dy zmaSpQMH9a1GyNNS;%bq=_>h#C-)#A34qVM}QX#~7e{hEG6zdH6qx#MK&D!yYS_%)I zP!7^~kfKIT()@9*H;CsJGvA+`l;FSbV^(V2y=hF>QHI8JTz_*?s)CQ+fPT@sn^T=u z-*vj|z4JASc{He@=dx$LvU!iCa!j(ctjdSx?`j|V12PCff7Ji7BY9TOq)dz!LQ}S` zd{W62F??Ckd(SG&!C1toQRDs;HWgNWZ79O)QSlFZtJ@&w+%x$uEjw3!vqBlV+DQ;_ zNnpE74$pUe`Ux~NdQxeLkVZU9r(Y8)4snu+Uc?CD-u$-P=Hg^m*Z=GJk)e?6Y{d1P zBTjGWZg%HQF4iwwy5A)cUMBt8NKR;=+6wGz#HcQ##t}|^yL)<7J+JJ;>nj$Ss}W^) z=J|w(5r@p*8Byo9J)~RE7U=4L`s8n_E7JHD)A(KcHO*zYK_Iko1h^LeslD87=muIE z&y_^}w@E~z{Q{h1wL$r)$kKZ-sw+Fz!Q0imm$ zO3R$$GgNc_8MFEyhk-^*sOY^i5z+$wzFSD%%(-vZ^e2SoR$P`h$KcBaSfY>0`tJmO z$6U9|@Tnbz^`U*&K;-tORk|}OANGp!$#T`4ymmgD;4%Tn(KuM;&LkpE%(;K&phmBS)gvucI2DxoDX?o z2Kfr9=;dnBAJbLsbVHJgMoq**18jjlyi4bVp19od#6tx52q8JyY_-!XdNn|Ie?{mH z1HnJwz=M)c)N&zEa0ZoxA7=noChfl~yPA&4>%_0h`xbOIJ6jTeGRM~p(E*04hOa7p}fs=8r9(Pe6pB68U%kF14 zc``3H!um3xrKy*s#68sX+-=jfMh+12<9kPU@JQGOE5KuJt~FxyM&reT5NR~{7ABq6 zFM0GC%)oVyEN&XH=388AroEBae`#;t4P83zJ#y+Hn4cC{Yg>Ba+PTUcTfzL&wX*qQ z(V7;2%#HnYmv`e4tX7Aw1#&;|X9+}bY0S@2A9NBfm}E^mN{p8v(M}lzUF$z)1`n10Q-sTT7qrDXZ#*#gQLZ1qM8F{It!WnuQA<(M^DT*}8)e>L0qgD&ncyqv;R(K@osyTK} zb+-~UTbWAL`g!ApjqlNeR^VIBgYU=tA94+X{)`>PO6>f-k7xTFNcbnsdeW-0#SnYJ z@2x3YV={=!=E@cM9{gNub%7uE(zPn!Z&=1mB96!_!A~@|wd(pB1sj#DU{YOq*K``{ z!Ho9&+e;K{I}Oe4*KY*Lg(WYbym&vQ3+JSmDAXd&jF|X6Cb-EQIcvj1%Q0?Vosl%w ztuoJSuMD{`n+}VWTAmw9_i||mvfw+E4yQ`?qGyKyGBn)?O&o-YU_){H2eFa&sJ!_l2f#&){y2tlTm zRH?HKPlZz2`JpZ?TVTl7YP(G7=QwY7?&5sHEgX~-3V1TOt!8Fz*rp}?LTWuKsZnE) z&2lq0C4bM&DX@JbJ*U{TCwPz(wK zKUDO;4Hqnn3~3I1rkMP0GL`aI#1L*f=yW}$%-(HUX#QD&^weV1%Hys|ePw;!!?a!; zmQAY}SoRU8>-`xSAs8i-0X!u2g<2%4G>tHQhaVSx1&p1|zcX+I+oc5A()^^@(@>Tz z(}~4>{#!_;YIfg2pE zzqE&kjgzwy+NJ^NkRl^n(6Zx|cBvY=UB>0#TQrPAN_g-U_uL?v6WSU?* z?xHaNNnSoY-QYC~slVQh`yzNVJ$H3>BlE&%r}*ie;UAK+OJY$L1_AGKvGESCPQec? zYe)=@D-4G=oIKh^5z@&40ljr2@hH)h5Dxdt{Ax(oXho>upi*sdwC!+E>EG`J^AIhn#i?#RI{3Dw*(9Iqri& zlSN>SQ={6P@$fTu!(FimEhq)WK^0&}3<;d2i4 zTP~ffXG5DDruZznm0Nrd>I3~k6dbOV@JAm-zflL>cde=ThqsM5YWsKXa9$AcHMNS_ zY`S-&EoZbXr$N&6E$2LxVS9uH_yKlhb>fZEV*N{Ch6VMQP`{|9wHLp8{7`&?WWpq+ zs^vyN5`YcU?JX}ggRpFJp6>R*;r#aorvC1rN)6OrDF(=|@bV(hAJuI8vnHp7|N8wP zT>zCK^hHG#%=3Zypn{#-B=|BSjikuG++CkoB2!1SUfph;-i~*jWl~P5j0oLDew7`3v$aR3MQ4dj@+>!`BjgU1Kv>jHav+BtIf=jrfjZ)&rDib^E|G4l)emwpct z_swYlnw&7iCmlWrzCl115Dc8Ob00o^Z~GeIhSXPc{8)zdzh|dxE%13LB_qre=WF{A z(wWUaUnQ!yNm*XT5CKC!MmG7T63=bE8pMS$L5WKeQC^RaBfgHeOTT$6yr^VhrWN=F z{O$<8LRRL#h&Xyh2psguJ%~=}@cJ+K;7rG=V5dAKU2jr#KFR>RgS1o{m@k8AVAF>-L&2%8UX%r`ILvu_!-mt5 zbyFF24_&UiudTugi>sSdi{IN;B!sI)l`;dTT~O5b8xV-scjr3_EdVkX_=qqCNn zY9#+5Vp02`$~c7e{8HgLr(mL920#b&sP3%AbD%N*2J#kJSTaAkVE)@%?U;R}pO-+w z@ML#Dn$SPyB2w{O*_k@iBEH9G!5L+-UjB}JR0!sFqqIxbN0!zJ)V@RGMmgl-4Iq*X zeLcHPnFSg5Ue`3SU!yRR32IdHJHY+x49Vx#?ud-hP_565OQhxpKZ`*Bq57tgjDUB2 zp<>NieUY@)4!a<0Uf!O0qr-{z)xwsOMbx}v{EqzSXWZ$!n_6^23{9UsPuYI2#i-%S zg%{RZe8_2WR4k}bi!?hccsQcGmkd7!af%e+Z;R8B#;V{+=%6@@q@L>UysaYYU#d6- zP>N_5hD5XvqnEt8fA1B*4K`#Cg18FGJx|2=?~?iQZ6`%mh;F~GWY_oS*X1wCH`bhfEoi|>{>({5`MW3Xg1 zUAoG7-U^&Z^1s)bi>yO%Jopr_6Gf+ORu_R{@_nc7YX(9)v zq~OS&l;|}Oy@lGz{We9aK2Y4F;bopLLiScl!rAH|`%KzeyD;a$^qP7DAI2jnHetzPnJR(3kyl&VpbKs*Dm+#9HJ&uV`qC{{Z}%iY~p| ze*kh3hott1gg(V)?W=S$Y&yu>JtK1=6*Nj$H+cW?IXl|5>)@XP@Lg}{6HN(R%x%pA zOw1VXBk03_r}Wq;V2&)mRH;1uB=N0v18wUUUTcAxEg*z*&rPXW}$+a@^b zMPP$K?M9(DR^fRoA9EXZ)urdGsA(tG;atNjP(%grgthD`>R5;W+fw@IO4rhR$PU-` zxYLi?SG!|5>!_Zk_?Hqb!ShaI3f*POZ^v~0(EtvPlTdL1GWPm0GMgjmehC6up1R@E z3EEQwA{DymZC0GTg}W=!eNLz5+!P31zis$5Ek(^P7EUqX<36FqU+X-PjDDlRGus!4 zNwPr46?c5~qC8BT`Oe|S@R56v{(RC|Vs?qpdPs8+GIVmLUH_Qr0d6MEt^mkFuN1e+ zZDBoRS7e)rFh%YgCp&t2eSFyUWPAAwW!&fsiEv|zH5h>+(*oOtG%$-sRE1gB48DQMI4Fz~gUCHHHmf z`zaYScjq*8`W6t@tKHU#Cbwr}86Tupc77%_a;bG|qG1-mQ1EVf-$u(@XU4dSX&C2Q-cOJ1`%gHly?gpC z02OwkZ<P6z-lVaT$BR$D9QOMc0J~NG zYkj}ylr6fim3gf2850LS+b)bE&O4sUO<(A>FlM7+YHN8ekoWH6ZSd;zWQL0q}n!4@pn< zc8Ej7K^odU7edhc;ur9%b~k+H_FGOquJoCBrupUF_Sz_^QSzm8ipczS-hbK8g_qMY zKSk$1?wzUT_kKpZHwIkTLOm>Q2HE}C2i-{*q7tqE#4$nE4#OI}53+@Y4pR9?WiG5# zD(D|vX$0v-)bbg}7< zlZZb$`CW1R{t04yGknRpDe7L5WrZDFMOJ5om3ATFlsQbU9P^Qxu4pL zZnpc?@9*vBZ6Qy&3#2w4-j}AM1X8~q6b7nq_f)9hEX$yDGX?gPQWy9ye@e4H-N4Cu zL}KSNH8JS?4%Dq!nMS^pHkfV3>b#A4U6S{)x$~0EgxiI$1NwAo!)3f)`*3~YjRUwy zXYj?>z{bB1*ChutS%ZG1Er^8;r~)n53T-I^Ku)Bh4>dQpR7Xq$_weaRbZB7*@lR46)K2$P+; z??JIaSbK_~-T%ENdzwFpyBF=DN_z2;>Cp0qq?nyA}h&eA`Ab#C?XZ^Or{~)}>_Z zGPSx$7TWF`VIaXdNCoKb(hN4h3B{Wkg0&!0Q`(Z%k}}2-8vt9OYP%K zSvKbh>-!yVTeLv863`I!)O7bts1KFULU%xrt3eB{nDkN$8zA;z&$FPu3w3=hqdC<1 zV(`IY=)Abx#{Egu)3e-XTIB;@jkQkoFD&1pPCbroa3OzCpUAE0p?g0d6oY!o!81yD z{?DU7sKz6p#KrJ(cSfi>kx@UAvWt4d9lt{Tt?O$8jWQTiQUq@i*++K0<`N zvg3#^7KH4J?v6>p^pL;wAP1}}ZD z$t8>KLduZO}b@#SzXur**_irgP(W*J>UQHE%4I z9d(f$Lp?uxqpvkfW!-d&2$fwdgA+72oH{T1gM5Seahzf9 z9$V@sa-|y2E_zgSwD2NlGS!e*TDE8r5$k8;7A^&)r4Hb6u|=h*$WIWMC)5FLy-C># zq2hPrf8OsP&tLq_4w=9K55AlT|7B?K2ktr95L13;T{MJ!AB};C?LgrFVh?iWl8s;p z@TSV&<8-Fpbol?UOdg|zs~2C$-ACNsg-jZ$$IO_|c_HUqv)&v#J?z}G}&)lLRmh}>A1D_o6CH?Q05W|fU<`N4hv&kHd0M-js^l8 zNTP$R$y$-N)!ywP%HXRgyh;AHlgqYxli!ky8}~6K;S}6Z!L&&_C5UPY5S5U2-x-7M zUTA0_sh9#Shf(ie^EqO>>V|NBR?Xn(Rx(w}`YHl64`2F{j6JF21CU0vl0(XX)0lO&12(6J^ywxRDh zgE!fZ4ZDM*Xa8XJN$uN4gu?dkYeDEim}k%uqQoyQBxDVxMZoQSnJ#&tLS%8r5$;cw z@(#9fWV|xwgxa9t3G+E;MdFfM$hS6jh4Y`+TZytn+nEVp>`AbN_$FDl*}%@pp#G5u zZ?jxkNVvk=fjc!0Nxp>^IY?kGk|3XwT@a)$nbkdL_ai7#R{wxM7yM2sxJTCj~+teb9;<4rR%eAaV_SJfpwZS)EsCjdho5g;YkTsBLlr+c+uZ zc5KIb@1g*3NB8RLBpvuRD>n7WFt6-8(H|}Xj!7L=Eb(Sr^_5bUD}`{Q5rAAm-7ra3 zi0|`0ixgqk5l+(hCNOR^Ox)T9ryFIRyE1vFr`TAP7?D>~ng-K+B;qflhy}y{LTM+O zm+(T%1zr%MhIX(J-$>@T2>iQMR*#r63W9Uyc!~s9uy$m~wC}CKJG#NlRm}uGcSb@X z`OSMcwTM50Wb5!V1;cg4myo_W8OAy+F!=W@%M13Mk!K!07HIVm#6c}|sR8V$&6W0w zjCLwC;EETmtbZYRT1;l}`)((wyI5~_Dtvq)=@k0#tDZ}w-eW2DC5m@*T;%xQLIKZlu6037d; z@YcoYL%+M4Wxm;p6szvz1K9y)-Y2|3IrU}r8xc3+2~H4WJwuY<<~|?Q=4<}pj0Z-? zCA@e*<(|K)V4)avB>B~sIRt`i9i82mGT7Hb=Evy-q219@E*rU&_(R?5q}>g)x5UFl zI;yVwekB5@v3}}ldAU9RyzT2)N^q8Aq$$V_SLV*7g0u{O0Werz_Q!10_D$m^MYp^v zDN5LqgA(i_&CCbaC#*BlG)+Q;NE6$KflrJHJFQHg2<9=bCd5gQdvqTXUxV83upmEU z8u=bb^-UXg?cC+!+28z&(Af>8I0 z9+3^!jXCxd*3FmzlU${|m3eg$cEv$MgeRKhe3^_)p{HIV^=2U3C_p^gSR*R2HkH@@ zj==lwqAxk@0P#D6Dy_6cT40Iy;+bQ{Tf|7MbkzeV|3s(9PBVRS&Xs@NbyGEp`eT3h zD0Y!F;yhmlB`B)Nr~A3^EQ?q|c;Z*0RZmZC>u-;WPeBxWa3ytaUT@#5blp9V=1IPw zae6-t3Fl0odupp>zx=q_I;Zw%hFtn1utSfZJ<#q0H!z_iNOOss@_zjWR_V6&^L}5< z@3cEygV&DiZsH(8cEKwHE9wlBe_m+@HE{0S^SB5uZUr;7p0ExCT{5>sgzb?#7zVj{ ziMknO3+VBs^fSJ{|8O!fW4;HkwYKrWah$;QSN0Q$H0dYHm>&dXa6)iEWOYbyBfB{)+f+ zsIF4>ZES86==RVE0X=F(MJ~O&u;A@RDWNWY;5?KR7pSqQiG3>Fc!F;>^zMT3CRV)uuza}O#P8~o zaGDxubA9#w_Z%zc5gF1yKdfml3i3elbY`}1CTj6@;@7&vD^8}n+FB_ONiF=N#|2P~ znoWsQLyCRLYD?V3!iIA4u#C9?D$$J(nUuV0Wk!aZNdCc^AN;)Tw%m8uNu&%0Pc>co z8+FdvyV1k}9%z|C?8Ki}==m|3*~u+$m(Id29ia0NwwG}N<3D-`p4?5e^;?;A`29*!r{4)?7GQnamDMJ=B*{3+Bzbx z3XWCbXTj1d_bS?zU|qkpIQH;tp=Lq~a1|qk;hbJggI?GrJyBlU`Cw`kXAEz@95no% zt@iS_IS-1+sydN|&$73rMX#xqFsK&5O@A8z(cUE^)H z$)%L*ZCml9)JMvC(TPD1H7lZ|G))U@N|sl@QKD2x>bOdC!hE^bL_7Y@CTKTGplryk z-PG0!8`#fFxHMoJtLiBsbLJ|#&|&azWEgD%A;eFK2RRw^M!e%g#I`Xf`2p|omi`D( z!!GoIX)$ESlGHH_&S@$D;tb3yvN#ShhrxuJh^EFXX$xQ zy3S(o`e`r%985e~KRw+fXM@H|oL4Zg?4a4&_%+y;dlQ@@GMZ@4(GwqQlVdlSoXPp;#K% z28@k9RXG21an$N%$y)0R_gJy!Q2rc%p@CyS?5jQ(WyKlk5Bf_YW{oU37M9Q>5vILfB8e zvM5gT>qMDd+_x5uG244!^G>er1tXsoUuzH#Q31i}eLomlU?nX)cU7IGf|BcviS_op z344DS(=y=?lb&O)Z6uUk~!{L)mg?4c%q zS9x(wTS%ol4PgX&SKfHX0Q={&`*NV<)d}xP^;O3q&IZ8V16#2rV)C{CeY$JDG{5#O z>y^7S9@#!CBidxLj$TJ0ulES|hM}KxnxuRWh>7^~^CC1uv z#kcsv=o}iV!`qM{MeVYT*yLwDmqocp`wGvU@n<^y4twyrw*Gy$jIPa61$}4e8f>&p zzXjGm##=ZWHT4(sf^PlB&{fa>3~(OP6)K-RWX~)?>pIMX3H)8u?xlABvLs)tVyy=P zPgq2D!PO5lqb}KVTE6U8qC-Zca;ddgE!$D2t+Ug97VL$N{>{cG1N-DoJdp2fwtl(V zVDlzotWV$YZ5I=`L7jM8OE6+BC$W|Ct@gV6=q@svz{Z8l%w>0rtJ`_vE(WZ9ScJNQ|0H3^ z0ccTjV1-_B?NZ#^zFQC^LBz&iY;H5wmk#R<(-R-^#fr6GAKwo9yGbWlNgJAi2g~pl zf@7TuLju%C7s9ON55_)`Pu9Cw0w7X~*nfq;SM9LV(a{Mu;^L95#W%eIH*lgg^YPW% zVUhLPhWy$hjh{D4PL4RbZoj->>)F4!p-drzbGdEMmKmNqIGgJ1Hyne1)h)HY5*tS73o6P?a9nBZjB&R z9#Bn@n2(;~s@MH;v4Yrl)v^>%HAzoy#YZ=*b@2lgOUE>PZ_V?}W zXV&NcxK%$nYx|uThmC?5J1il$%V^x5R4i&&JHGz6hX9CPdImK*Gsxf2?7O^PU(mXP zA!H;OX%G$qreke1i0fC#Y6m>y9p4Mv+`O!G(f-^sC%+Rl4yCFgg$>K*W+-EgwpXOB zr0tfo;Jmv-g{9Z~q-MDKroW5MuCnxT{mE5827ZBGuxIasR1j zr&H8|atQ9vpV`>L)8}W=-$1wabjXCRqOzc;t+YpF^`2s+s*RNcWx6A-g}kQY4AaOHJtRj{L(?2ZD_>7zW+=$L(o zvd9CPtxI8LJQKGr05S@ny<$F4OFkOV5BqX7uvr$&AQX9)GO1$4Sxy4OHrO?+jO2mgFr?aTiU>^_9Wh zj=s!<=JJ>q0p5}M$qQAo#d(#7LUK~=lRqDDo-(M;+PQ69PG`zs*m8?6tz6Z-`L$(? zrB+tCSgJ^4F#o*EZfJq|9HeENSdMh736sO*xn6i15p|4$hhPU@UI0LIU&$%(DywwM>|Z%EaQ%}G2X!^moGr|r#E0qX9v($TaI(*FJt?`ZCzvE zl6r~O-bV5TDV{n+Gt3w0sPI`I3)SWP$^H@PUjB3oXR^Vw^i|JU)!ZH(b`JKY7qiw+HX%tKF7bRI8`{?KWJ zY2kOuwBv8%c^nu}%;++{f9{amPO~le80E+_$Q~%rs^qDCX4}6ilX4RuDKqoT_F?jW zFcBL__!wMt3zFi5;l`i>g-xhZo3dWDnSx8ZX~za7p6Pyo#u-R!I&KZ*tNJbd-CT8C z7GsdylzDDz{l@-ads!XV;;=p|yw3B9wGyKXRC&d+J)C2NcP^mE(J173i$C%Lmc;yg zjtej?6^Hxf+=wKd_P7-)U%3I+`c(h?)FNs^l2&6^jnMKd`usr;VI-q9?L6kR-gzk1 zv*DKbz;)QQ@2p8J8GfiYLwEZ=#Kx@p$qM;h;%=t_`VGyxe@>wVwr0ufx*+{|WsZ1r z_0QxrHwin*zIHF~pzauql-CEj#^h}p`(B}Ut5#(}U>$?>tvQGK*5@mnZS`vxnyofo zX{+(7Tf?otGap*erba=HPD3^pb6UHaA`Q>_BM$CYC(TCNjZxb_ei(d#nc{$UHI{%G zNi{taayzbfM5)=nPgF!~9;VbC?c7mPyH3513yrn2XU|$j%C&HALqh9%a^qmnd25wj zIe2-!!6e(|%HOIyv!=gZ&zc53(qwYON435(EIkv=;E9^PjJ;bJ-gRI6Jctdg0KM2Y zLTA)}^*@WB?)g#I<{xhI>*qSUJk;|lYvgSHFON#l@$?!PKGWK&`cv~kq5CbQEVUE7 zUHv-c<|ciCQ+le7_BZwAu8EPhO}BOq=)VopwZ8o})&ZhMj{O2%qc!0Qo<_bH({Me7 zc{5wS{h+GmEDzEXl027C@2yd*xyX{uxh2$m|4d72HKIge&{_p9-@A;oRqU_DRB zDa9|oRcKgD;$_dwjg1&Q%L>~BkXKp3-t)w^uwM1~Ri0-a)F=pyCB^x)3tLf0q ziPR5H1uF+!>Hz-inM=F@J#$L9mi^jSQ)+=#{wng%9(e9{+9L{t^M5Q!lm3mI}%Yu4(?syWJK*e z-s6*SVexvO)1IS!`e=kxhP5gj>B+?32T$C3(Pu;ayX@}g`F_wUgO(S)58ITJbk>jt zVtL7DTioxn>~+#$u}kIxTH}1QHU}Q^m^)$=?b15Gy0)*|9DJ2-xsKyz<68Od&2YQE zjrYuY`rTZ|MV~m;Y?%W#i!m<8kQ-WyhI^-de4kw$;|+LfcwZRp_4YuoNn8+Q4UFjf z$nElc$N7Ih#rs3!mVL3N$&&sk?J3=tBiWY)pJjpfAN%RhF!kk(di$*!a6~ zr`LJsI*nMPn(dc&F}9a8nKVS)I&rSVllIb;<@y#FAJ!luEs`zs)Z;zW7eB#xpK(2K zLC`C#&o`hsibS>fRNcLpa zwij-}R7lkjNok+W~2Woe-BEa)MsCNvPL8oVDh1%l71g zxGWN{!6x2SuDg}%#-Ht${f!gM!N77}(U25LVEog#Zv!){Hf+(iVWrqG(e4a(_}-D` zwdAx_ix9rIhu5E*75T2Pc|rKP)_!`-|J(rAb9s#G*)(}P0~LoLXG#FR+flsWFGat7 zmFsyk^WsPNdEdA2(QY026|00-{ajkFK1EKr5AyYhSNBqQDCZg1!9`y%t~;tR${My) zvR&xmP|l7lVOEZ8*Rf9_XTI33qG!8`WV@6f2evE4S)s|VM3b3#FwJFHyXa3Pjj~*{ z@}Bx4Q(BkxZ+wx@?2Bxg@~MB2CtqY*S@^!ty0$d_tUKz~`pl>4nStT&o_Txp%<;3Q z&z$@i)sF%nh#zmjZ%z79S)Fp5cZFw)_3L<>tcy_$;aUwwE+6AtvNoldpl--woWl6t(SeA53#W>?VFZu4#gfA zBe^c&(&RJf958QDm2&o!hmU{1=I@N--;ay8{lDMo-;a;}p8P?2#`s_6?ZtCNKc^s! z9p$R{-MNMWe?Q!|RKMNA_vW#ub&u~&sE>^HTa9}RF;Bejh+i$*FZ9<@EEaa2|`KHBY*Q(Z^dy zU%a_qAV2(a9|wK6yaOj!dot{LHw<0haX&hyHQL{S@s#hK*`M^BbsXqr0S~@q*&L}6R&rRw4kY$LZPAT(E8{#W(R<@O;ji zY)kxU{4R05HHgio(f7}#PWNQaHaez=aL*`j6~`34#wic|WDF?ZEI2zy4nj0C{`QS&-oV`3xFOLCpx>LTUThCROhkbeO;HQjf-0Ald8h6E= z^!FgY&!y}SS$h|hgU7xJYg_-lEdc(Dc>C5eUZdqi*KzcIfZ3axz+8_{*Y@w;fw*b0 z{`&7cCj7C~hK^!5%t71(*{Re@Mp8eT#0`VF9SIhV*Wd}SL3-}^-!<0YWW&$*rO_Cd z*78<*-hMNOuyqUgr+S^94GreE<5o?;ACLX92Brc%fK;7Ln#KR&IK{KC=#5j!+{@CJm!dK4 zzAv+HhIj=hoSO;sJLFv$mo|%MV;tYYT;XTbuiywFX8S|5!FgQc-(4)TD~hR_CR+sR z#fhI+Z1XJV6TNUgXK$!>hOzK&bCn79{iVI|eD1nuI0Rn9WQQi(k*tBZpUpe^`37fs zFz%EzIz<0BX*_d{1$}hz!`UaMpVek*-5b84aDM-CbNN2!KC|Z>(v-)r=I8D#p6ziZ zh6!tToJL1FdZVr(u9ooEsjX)_V6f^J&R5ENj15|{d^}q>xoH;Im#j-3U+qI1{6jZ*0%kjN_c^-^ZVeM#q_+;YxJ8$6>mVdy+08u$?--xqSZYKBH6X zIvxATC-aiNLa8_an|k!P2gr7qvrd!1u_nCWu~Ll6eS6?3w&r7TthMlvu=ne*5-c;= zV6)Kg<>I_$BY8H(=uI-|T^YBPIYZv;eVp6o`gOE9-?_HX!whggJ#5;vv!z&=$(CB? z`V)+N{Qc_s)!onA)sXPGd-GZJYaG$uZhdBa%+$%P}Bwl*b4Sz6hmH*8+K`Dg0NTk#;%OpJ2FD|EHuH3)W>p+8A{2(WM!1UT#e_PSUuSbJ&s3(;DU002lF4 zVr-0Ae2>#f;`XQhq7JW+#tq-)v6x_P&sp0`dy6v0`WnV@i3T&~VT5PoymCB4mhNwQ zrlzbx@gMX|&1b)W4X1nT-MMwCKko`TG>JMDyhd~ z1RP(Z_hiin{4QNb`dQp##rLR>`gg5i{7^hsn}V+sdVOHrLrir9^m~~Sy2+L2lSC*D*Gpt#*vvE_vNU4+c1APdtqNf_y~U z6KwAWwBE9`PgrwhQ8ssVj32%#M|-p-)br{{n{(5+AB(T<5Z5^2bxGd=tOky?Sq2&V zOeNVO=^vnah~SSL-ES{-hq)QDhA6Fnd+o3v@&o#e3c^$388GKNcSGmG7t$cGo0fI) zLM1kI%KJk7DcJnD7Yo?@XbZR>o47FWb58HU`K(Vx8-47{W~zAEOl!4fKo~6XrHyO< z`V{9XziDT$UeXznxjVB>okyz`{Y2vEV7tIMO4Q=br)I!9J2SiZjXh*LI4XZ<2Rp0* z*#S4Rv%8mVZ&QUgq~{`78?_C{#Xuv3;!0jGHjUltiglGYaU2l4m5h~x{~UtMFF5yU zeu4j7_wZ#tX@2YlOT}6_sz2wb_CviJ;6|6VmxrnH1!3K=KFL-wa6`7uU$_>s@g-wY zFU1xv&WTe6<3oM?z|0HxN*XslgD@6UkA1W0Yp!wcT++^}8k6)ND#o47Q?1;j{*k76 zsb9n}-#TmG+&0zKkv{$Z(0zXp-n4h$$DQaB%~;QFxH`fjqYuT8{ZRO6q(AdL>R_T- zWT&ckgr-t=*e1>)>`&>>cS-Auu2&9^xDU`fXJQN`&l;n2!qvr?=d+y8M)VlFeniq* z-hKRcJ;79avVzkM+h%#Cbu7{SrgM<^4yY$;+Ff(q>)9p$I365aaTw8hh=CN7Z>Z;%`%`INsm8=S0>9uIe!UvN z7GXTWw;1hU+1dAKhwct>ui$$zX1Q9qo#lKv-q@yf2A$S8e)sK?aHyk_- z^JXD^0m$2P|9~HFhw-e3)-mwkRFk!O-B2cNz0SUoeuDUVt>^}kmb@)HA7o^)9&$BZpdU1~$b8ybZ1OL2- z_AY4?PtIEI&&h@7=813t=n7={R5y$gG_{NW0Gepm&AE;(p_!al=x%qd#Zr1m8 z&FSxL!AW~;3l2Rk!+FoX9h6rDy^TB8SBy5?yNb^?-qY^+o-SYB)9Yt@+8yob^|L+g zUf9#WIB$@nU;Nnr?E3b*XAtf@+=u%{qhD}#zCZIv+%uc6;GTKhh=0p`c+^umV2(Xm zlk%*vhs15SW`3Obe4EWz(&;3v*y(xE{uO-i2Uayix=2 zuji$3?R+8Z1kVw11%rQQEZiYf7w4LX8Tu^xpWqLnJPzu}@n_avi94y9GUhbebIaH^ z(mM-rMNmv#Q`{}SO`hWO)+9d{wj_Q(p2vn))?s6c7^fHN>srL~!s8N5j4KV{;hf)! zAOD5NZbN>2+>@7sE7J1AIFj$~<_(`g!1gombU=;vF~$R5X$*+d6F(!rP+{!=(-JD; z_}Fock~udF=d`;hDbWw zn76E1{eh3OkbK}T%<(6>lWXl8$#I|XGt|O$_w;jMys zuc^bEhW+1@BmZ~N_kU3%dSot@isrjuJQ2rIR(x5?CmG2L@b~nr@B77ej{JeHhoILp zh5E*_9<0;rnNoTU*mkkc)UY0B#r>FvGN-jFKC(Haxs-TH=91Q!&Lw}3<`Ot*+Bb0< z_$6x~Q9U3p2nXE~?g%(#U@cZQ@dBptr1|sHg`@L!pg5}Kq%uc*BhvH6IRWX%QrkmZ z2-NG=ij6uCL*~XbR43v5gT0FPnD{2~q9wk#aDXp6V7=eI@3|Ix)O4IzVL^Qm$sha# zzC89txtE3g5aPr9-uO5x>6)3^Z|N=5bB4IRIQI!`$c{8nD7U(|AOAObV19x!_VZ~; z+L>QXcC0}wx}ef4H^DiJew0(;7}-B?uJyjn*q%{N<}2r1$6MkFnddw5_>sGURBeSC~KBA^(3B=kFKuUJT49aG?|+@A$@CAO1u1%zDpQy`%e4evmj) zeRTSXx9Sh7xmRJ(q6gDtFar~l=aMxPx5vEvAYYW2B!E0epdWL?~ z=FC}OkV|)57e~TiM7UzqU=8=+3KkEzEwIn{3Hig(Hn5))2+NZ3{8`c+9R;#U*@tC( z1kw|V>;2l)a6rkIUe@CxW$(mR!^haKl?3{JC&@&# zs9m|X&Ej__cLUUjTkWw0cQo}{mNO&!=B#BL_O9`_Z37H+ZFjPkHaM4o-)aite8*hJ zIep96tUm~I!PjMe=jy@a%?ESdh^G9&ECFevHH!0Mx{dcM&05Y9@GhP(hsQ0|&@Z{> z!adx`!T%ATZ9-hSIH&gJj$>NZi_^dJV^8(J*SHUlH@MI6^AbN}OykdO{F!igsOR#& zi}M`gg5h8wy5ZoqX>16oPQ&|@>JT_Tb*wy}t$)aS&iNc~jf@AK$*>3bE_|uZ<{9`o zwAZJISw6rGBHU`6KiAnWUPr6!i}?GKHY}~9JP2{--TEq6@O?;s=N7osn@7UF!nYv* zlFkCrp2mKz2#X6|w+;CzZw&Ltlm}>=sGn1Za=(>)_GpLSpVIFa`2BZC;bIL5Z!7e~ zPb5DU=5zF_QtvO-n8s#Q!(X`}Kk`RG@f>|xF=3(T?7#F==G<6u-%1=i!otqnQ1}r*@3c_E{e4=}gA4igOHI;1lW-I5h4Yewi7)COl}o z=3R_ozd|DeeU{Cb`z+CSL%m)2+mRPessRIC`YsXPOr;c%hA8GL$0-DPTs)~wwZY~-AnhO z_07*5!bHAL96W)wN9jHp^KYU~i}x&+YwCd|{3G{u;QmkEtA9V{SJV5*JNOaDAJ4u| z9M5hYrJm7qyUH4PZ++m;N`J{Tw?603=d=Ov6l?MzE`Z51? z?Xm3VW6qlY;@YGA#r)<}d%U#s|HaxP2t>c|^w?>V7xTSFO313LKBnHMpVJinVn$PZ+p&%Xs1jlN`T0 z8Mt2FOXnfGf=!r{9YwF5V%#&qxWkwImEyd_b&`{vx?ryF#M>2rhni$pA7~`^OZ|>@ z4;zzfor5^3l)px6d&DKiy)Dw$v421wD|%Vk(ev|}B|P8JPvKszlJX84vURd{@b9Ja z=sl~c5Es7cWV@7?16SK$$iMjU$&fUSnD_0R*V$+!v1i8D*vIFqOV|Dtn18f_6L(LT zBEvkDZ|My8aYOqx@Qo+Zn@?C+!f8Mos0^+2rN2RpgC73Yqwl_8-nN~@+FS#*-18s4 zz#}SY%|_3fafaj@gCl&P{NGc>!pLVvF;0u_`RZ_j?l<-wmNVfb1n2Y;e>bC^u97vL z40HH!EwSPAiMRnQVXfSj<}(z#I0k<{x~4q4Y3~xRi6efUxPF0^V9og;Tts$xfKOfA zB0p9(Cp6y;V_mtYpZiBAgmbN0O>t~4PU5W>;iOVXEVf?QT!+2lR zdE$}Pf5uE=i6PawH#{UjgoHS{IZ@ftDEAu@T3Q8=e!4`^wdpdbfYx;^5@Ef%$Sn zK63o|$Kq=_8=yZHoH*aaMqk%tqvJlip*k1$i?8sGE#(6WotHnTrwo7d?Z%m}rF{s+ zBj;hFwWtUW2b{6>^xSc-##hYu_`u`XP~7UEnHbmZr)Y;>8RByvNB_Q!;~fn3V{N04 zPdIT$JRIvywupPF!P&|03N62e^usvLAN%v26(0sM`vJ~p><}$x`nPmv}JbL41uGd ze*O^VYZL89{;^zr35b=5e`3R!L&A^G;-}1!^BMOq(EmA)!35&^Spz~n^ev9`xjBbX zVmxcuIO>TH4&U8?3zzth`594r!_T|;GxskpB`$$oioW^m4UT)CF_9VZB62Rn zCwnHgE4)oPU9scNT!|fz^K$nw+S{zA_yha}o6K{as9-G0LjCrMVvGM`u3_curX25F z^-=hD)|aO~%u}Ac?|=3G4*1N?SJeqve*b=YLA_CNWIC6tS5G~fs1?n!G4sxN(lbYnl=W4pugabAyl2ee zYQ(>S4;2{4V`filtz4%)fX&Pgqkqag-^ur?8s>PJ?c(g*D;7dHJS3kBEe);tW9@3J z<>`HhQ;#&>{9Sy8e!jR?JUVGbJ@28mti@SVtWzL97mN)w52+S4!Co@*xqLtRi9ec} zcr!+fFR)n09T#Oqc%C6?j%t1knpt;vLF3I1m?g^P*G_y%Pdv+pxqqhQkA}F&;^<9~ zZ;xl*miQnB+EY>y&i2Zok9`T=Wsf=_)?UTD_?C3p;?9H~hw>z|5B_4koU~-LPv1Q* z`}i# z_#4i_Aul$S7)r2Fad&o1ASXJ;EhIVe24GaY6F zIke0DmboZ5%A?tFX2$1iobXymZ-#POn8azpT*PZDb4WchN4SxoHDhB^Etu=JQVW*4 zZBWdCah%&=T%$a{*tk6LawpwC;`_-ZXCiqRsaFp843WGy@VKVK0)+G&hI;5shXru* z9LfcqFf6t7`KLLiH5f1dxl9~lf`OsFhFWWtoS*LFVAAJ|gOSfW98CJWRZb7-!Qp2h z91OTQroQma9zoM^>d7Nc`2_Fr=OT6xDshKv>l|8`Em3$8A zE>+8+J2i!AerOL`tK4;Q{S#lduQo&Ca%3z)K|V7u&l}~%j`zQlI_@_5Q3Kz8<=*`* z#dPZ#?eVJ*gB5AoP)>L1*4t>m&W&h+MSJ%M{29*42gi7uS232qdlj1N)6kricZbqR z4n=eqNs9-XpwZ6ECcPYw@?tsC)@)d-$BCX3uxp&(sgni})}z$lg%`RaUKGmhY`E7a z<*yQt0&CAPPL4H%qPI6xEhv4yE8q zY10FTkPGLR`Y4XEp6NQdjvc>8-P0uz9LPH5CFO4$nV;@+$xAxr#1d^o;l3@E`-grO7YzP3;{^Oe`XziXLZi~&fE{OB;7Ntd2rL|y$$0bSMCjA`)ThG zmZa#NS=#S7S+t_Xcl3^_hhnAtwPmO&rzBj)&@ATM1#1mAtf4XDUJ+oj_qL9E?kmLv z#Q%*NBK~b;J@+v2FIaC8c1aOw;D9>|t+k3*GssK{2#R>I-!Cy6Uu zG-f1st(qGggUwdV&0Q|-(^#uWu~v+IDWI6q(xD0c#VzQ7@HT8XXJAkI-P6L%ph)o{4s7Mt_9BrX5xGO^`?E& z>zUi{Tys^MRwV6T!Sh??v7s0W_oEnU$$6>9{Ux~9KTWPR(FxZ?YmS4MQxzw~aeu{} zbK~Nl!=I<|@A>EO-{GHMz`sd7xipr0+P|*|LrD9SYj?y^6kmC~%@KdFjhg@{JHdGy z?Ns!;DPJ(YnU~U^8TZn!#uD}lwFo+Y5{3=u?zom5u%$YvEtcF*f%!08PeIQNaa)nS zWZlEAk0!>n<4=^2s1e_eZ@3?n>%oCE?7^E?(wxeC=|`9H7fP!j8myjNz0w zJJIPtos)Y3Y%S-CoFWwMuIkZoE=f$vpULY5l>YJ;$1On+WOT1o5Uwb9mg?HR< zLO;XC)YOYi`J}?(~Z**+fAMaow@j#siyXP3D+ITolj*2ubermsiKpNnlS zd!LtyA3RIfuX>+XDK_VImix(xzS~N0FY)w8eV~#vhk99gEhb!fH`ijb!~3x9V>NQU zrq=UqoiOL&Y9ssr>!fLA)d%fkI)J%SE)N|K)|yH8NuNvXC7&luNcvo2FZsOX8hDDm zs_<76CX#!C{TZ?Lsfl}YIVpglkNz|D>?Ho>4)5#Q4gcF_!M6XpA98yonk$6eFDv`o z9;o-r|F{RLETj)$@2)9!oJT)|@wwX=yZ`UuZ~kq6zyv^@~qnr!h`vq}P)4Zhg{8BTYTU@Qrk?z4lxd+;f?1r0mCjPl12Ar=WV? zQ}EdDDX5htoy7uFohG=}d zzCWjV(ckzzk0(cXpQm^lIA&xnQF{T6lZ5Mj5uZ$g61?tpD;kOMT0d1+W)!HmHjcq1#z5A-6JLb-dBkvEO`xm!aFCVm%O?q{5r@WRKuLCjkqcCo`5`H)V0$WG(E>FX?& z-53*oi|Y2o8<04NnS+3M-so8o8&#tH<*oDwQJo+6yn4G`;{caF>Je+)>otxzw0ue0 z4844D!jbJr!;-%n`p@h2dAqYaovq@B5KltKb%5N+JjICY7aS5dh2?kkq80Cld|iD` zzu{VHtu-=7wXbfC7EjhF=Dy%-E{=M?*p}9^w&HnZx5*YLuXo0LB_qv&hcJ5+$MxP< zCr-Grxb`%xMQhf5HS5yyzGaU0IR0JS!2VC(e`ewWPR~sGC@bb3#xvJPXAAi*tkI!; zK_0v>rmJI#?|I3b`cV>3pd>Kf=N5w4N7_Hr(z?;qN; zwPn2*ueHKqdKbG2A24rGqD5$dG} ze;?~C819GuE0m1ix>~~j&93|P?+!noU0=Pqf|fS-uL1K{9$~l2W=6f5Wi##9U-Pd1 zI{n3(aed4O|IHD`o@#c~FOnr6RdY~}T8Hgo4BGd-I;`-z3wMX=9>l+SyNwsGp5o22 zgm;*>~=`;2r{TUa1~qk2k|OPo;LAA4mOetBVFR`nsd!5hQ)c~ zq7S0nTEhQg{(qbHUu4rnTcvN)#JBpt(x%C?_idVJY5srLroC&)U+C!;SAE^$jPZlg zZ+=Mr)03VZqjeY8>4F*N7<{%qM3+JGyiaV*Le|Gn@_$D)Q{``7a^0$AjAG(Q%m0BR zEl)n?-e`WV?AJ@pKKn_1DrdFy2p`u=e}#V>D?TH|hn4fcl(7i^;aJ325Mz;@b^6by z7c1~s{A|m${DGK#pG~QjJJ*^gX**8b$?lx6P48eond8Dz z&V+fP)@Jlc@&=B2$D34}8TNEXRqLlB&Vf1gNvf_($>-EHK!P zKN;lD@P>n0@-$SZ&N{7U@OT#$;f)S@?@f2_=odq8SNvk|OJp_>Z;Q;|BJ5y$4tj0+ zuMrzA^}bSS6b;qnD88hcobK-h)%fHZfp})zi`Q#@cRj7~2`5Xzv6N?>f@QFb%a6~$ z3$_ejsD@@XChNGyLC4^!mSKmV9;jc6wOxtN;J&Fv%Lw(=@olPCqkn+*-2}M!g4W>G zV3jr0cYjs~j{mTqg6i3PZ@4EpJ}2wQ7bj$UcrE)bZx}>dHO{G{eBjf%aY=P!!Y!+o z7yk|S^>H0&&{R$D+J^fTMc?3j=eWnKferm$Q2)r1G{G{hF@O_le2U+PU(GUUa06q< zcpQGevxG&UeyBot5W@SwSin87O{80B+}#0n+S!14OpwE{qTy_0+y)#&ZdzH3rH{|u z%-R9*dJr}O*Rt`l%prV6d~1I+j=B9e%tzB`O%YfF-}Sb|amwzm84~~wS2LQ6A7Qu- zO|_}rQLWmQ=To3}P@ls*7o`2eoWtNj{ctUqtOe(P=Rx+6pH;-mnGKXTv>hzzKWXv-{LX$b9UC8(1~^*)sY%&?i|^F3mC)mcHjm zDe*WX%(0F<}cj9+9gl(;+)OT1no^{f-H$wf*JM#{n&xZON#sTwF-raE26>g{gwD8Zj`2B{e!%K0trPNlu9<&<)iYguy%Ij*7vD2Ji{Pt)=aD`3k$qM2>l)@zTM-`%bAqrvI%%1| zE5>=iv$(Fthkeg|XIas%9eM&8!(6iOvKn$P63Tph&tqG#vQ!sKHbl5D;+ccIBG=HHn|Be)-MNL@O? z8pV5_P_H!jtK)ud1RvxUQse8mU)2Y#*@iY+yU(0xfE)Ct$8#RM4e*yFSGka0+8mj#7HtUP7TznJ=7D>R z2bS4g9`npv(%1QeadwkZdX*G2jlZ|7sWUIuiR(Cc@Cli}K9~lzsQCKV#2c9l?$5__ zKBMyk`YpBM3zS#;lCrYy4FF z^Ga(#alKgX(Jeow-(!=ZH;wB8(VrN^?+%(q`E~pl{x+i6I2_PG8u*(F#Saj6FT|7BGiD$0aXj}) z+t5a99(IJer0e8^E73aCeuq5uJJf0)*k1jC^-jN=mim1j(@WBsGqbF~e#AAOJjaT2 zRx!4aSlqn_ck8H!;eENMk~s*nyZC;~=P?*zUi06?U`viivypukkM2`E`am4_+7Bc5 z0;XGauxI-oCf6NEmv#aSOQ)Hru@|rgWS0rgC;S%QIX_p$GiZXkc(h|v&M~y{8Fycy z-_){SI#rIM?>%g7(l~{d!B%<4wzPMt&*aOSQgWDMe)mnhZgGw4HcRC`%9B2gUbm*R zm12sw$U$wuL6k6wx!Cmw!i3NFN3|O}eiMDXU zd6e}(f@vc)^7jvo8;=C;VsrXVOu3x4-!Qa*Q-kSK{*4*&-GhnjMw?9u!Bup$hT zVnmWQQNLH2V~I)eX2SUY;kOS}{pSV6Oq9#57>_Rb_qVb)7&CHhpi5Q~&ukp5aw6J6 zlpmwM&)4z)K_jWl5mWzGjIyFl|MMt6Y>DSE<%i3s`Qbh(%PC9x8P})$O64(lO&JB_9rs02=>7bBOWmXC8RPwH#|aWzxUF{S51_R|r2x-#zd4 zRmJ^$ih-7OYSX@|nC~s&z60=!-0OTub@~POPtlp?=^8C_(F;E3s6T@Bgzt169p{3N za6vxx1T+OI@wMsS_fJBFNR?R^gqYNW0*xnLe+CwZC}ueUB}ztpCUF{Sd>m#E{5hR)EF z77MMt5wwD0h`3dJBhK#dn)rYiOK@Qx?iGjjkJz{{dP94l+7wT*aptyGJ2y~lT&a5` z^$=2jn(7!iUxCvwp3~^N7$~pzz{a!unT{fHUP;F8$Ibfg)!nyu@9zHmb~A`?;u_JC zrF~&m^Rl=b4C6I&@YNj%M-gYO3g+8-yi|;2AS?;x420*9Z1*&t`_#u`E;y$v{O(iB z<99h^?Vgcv;q~-H9*=wVS!W~kw4XYh#QAsD5(vw;Uv{sznebcDx$Bb;-Kfq0_Y(wO zuQD$IHBN6&u82GBL#cRK)OKE(gW$oof!=9gMmy?_WlnS_HQrQ*6rVJn&5iWrXw4Hm z#qN!*iMPFrr@;&KbI*0;^(Nb(wu=1Xd!s!DWltZ%Fps2hf(6D|%IjxP#B*|g&pMjm z-)@HzTO}>QJ5xC~JhjvlHW&O>I_oIUWBWN>()Z02&r55Lc@#uP5bybsc!C&z$UI?; zaka&carhthSWTC&#asWPR@-TaL(3rZkt=e*I{2W4pYvnXj4eXn7CWid4CojEEjGx2W+`ElsE<^Yzp=meLPw4r+ ze2#Ux%okf@pXf5jdo{#;1$#HDEpfNR@w!v}%md%gj~mz1)AUbtgmdMELoZiFdDwI0 z(38$C#Wbi{5l3J2moDNp%ixHs&#>;-BXK9AkG}~mdeBh!I6KJ;t`m9D8(>`4e3PA; z{1fF&MPD=8g#qhp65n&i8krj&&!5}i>*3=Y;L}MTIk&G)PoqP7!rA~9(2wH#TmGDT z>hPTC@ zJo%9oCjY?%l3jVXjZ13raD?i_!Zz=%7XnF*iqH)F&+1y=YA;f zC?}sQ*52`&=KPT07X-_~H67*w^0OA0kr+2IrxW;Zh#!dhJy%xFLGFpOPBa9$f3%R^ zpp0}_-oaK$e^d0=tUr~W&Rjn8so#aqp=+G2zj#ku^8FA`v*wZde!?%nxrIJACO^j} z#pj%VS3R#rd&R(kpuFg!r&Ld?#;)+x0DLosjSBx<0Ts zWIsENPp{9K`W0pVhO%C?M?Who5nL9u-f3`P}oE z5!QmwU>Y;her%NkEZ4O=Y^X-ske2$)T|#dFpM|uh$D3#yzq-fmf1(xF%cHUe+`G^) z=72G(lT`>V?hQWI3Aei>PK7wWYxm*WzHak9^FD*qBCg2`9rHTt>$~tezLd2Tc%7ws zzQ(nj$ELYw&g5x|g{ePI`)JtivL6RLQR*oae+YOLiWP<_<~^wP*){WX6VDOy-W zf2R4kUQdB)ou$4%6HZ#6a*$YCq1dewfAv8zb-Z^Hk3-Y2@1OPxakj1OJZXYAHtcHS zdi+2$_h`VkP8iF-PHlM7L(IH&>@OesIcd}fQydA&b@p3ClaBpW<_`|V!!P3hP5kuN z=Tc)K+ob0u@l5E?#BW!v2n&_s;i+hclSY7H{$0{>_};VQqLUkx=cXVWgN%*FR=jV} zZ}BBzbS&yflgg6bQha{vY5aY!{}1!R+*)4orpu07>-Lgx9rta&ztTyt-)K@aY~@9ib-FZl39 zaVRN|Z*CX#cRp@t13eFVzQq#`rP;64%e&To3c|ngdOC1_G}f){IJZV!uZs~KvpVT2 zNe$m59-{PlP(Cf?QcHQVj&G~c&$XAP_j$|qmOqE@5^mcvaSkb;!LIeaUS8f4;Mq-> zvP0)5(YV@pY-Rm^Mdg`FJmJC*RCfD}_H)krIUMchCp=?S*QarKiD#_pdcqDb@r+en zPuM|u#;T+KV995fnoEyQDfKIfF<^gKe~h?8;`nrZg222y$BgrOuaEVkL-;bdYIYyH zyb#q&ZQ_k{+}9>}*CqRFjCal1mJ8;$PbqW`nqCiOujXNIYtmAr zGozO)lp2ZSK1#FI-e?O>P+CI+-_0fAvy1B^&ih^tvk5t4W4GpHS2Cn zPlqm({?JtSJ;?r9Wy^SWPj=kP+^zF|eNl38EAD~RbH)oMP0p+1{Od%ph~HE1dao{+ zI3Z&^*GPZoEPDBkPg;N@-Jhfd*y=up7GSOW82I+gDSysN>XW<=xUN;9t|h#X%k@604T&5?4Uw92J z_*KpR4CN1?cW`1*E1>g2_t~(boYR`l-7WhOmDl^e6@3%F#nF^KWi1?sOY)n)D_$dh#{7pR;b_*H!{q0`Y?uo;FsEtm&rXTAFul*r zdF*{(E}iT@!Rx^8axAC}o%LUnZ5YK>1oWj8lnxUVq(r(@L{v(pTUt6s$525!l#a29 zDBVcI29i>v8wLzEdW^v~R=oTJ&u{nVxvuM+^F1vnKfU+We-Z$d_IzhR-!~z}<8ZQL zr0c!AUK&94-70t~dV?cqQU4?VmNL_X@>uO!ZI1#S;jU%XmSajS{PbZMsK(>7%g?~g zj+0OI0KcDM@o98`iW2;cSoiMjs%6-^V0f=;cA@6{M(J!C_M>F7S)aXev2+6Vx!3Tw z7~SUIxKS^g+X#NOKa2lx-lv-dWu?Z&4&i@|rw(ts$&d z-Ucq$b(?)X)P8!zlzkr%TB`8hs^ryB?n=`KP!3?Gw|w`drN)9(!HUi4XhqZrI+p}? z7E8V!D|X1Ajk|6WNm`Zk$k|?Kk`sC4@wRI2P4k~lmY_k3eDsQyg6ewouxeCt=xJOK4yxuVFGbz?}RvK<#37EfY*6o&P$ zZi@4d$e7JOdfU!cp3(E4m1^?tn1)(b2`uP}r%~m8@0nW98DCFuYcb%!!%|;8@XPPz z=pn7}{#5BEucpC~e-zgz`r3ch#w>dk=v6eLNB6c>0W29kvd7~=;nthC;x0B!c^Te4 z9-G!qL^9l*>evI94*v4__L;g$cAhj+qQQ~Z-r`zj-jhg;x z(`m#f#Th;7m&W@XXYYZRt93)&`*29bgPTPl53;;?omM#MS1V(2yCKgx%S8G8=7>;q$g{?#r2cl-1;qE>GxRQq zlW&ckdB-G@4Il6KFDK&rQP3_>kj)gP9>LrDWh_@d&yel|3zExDev|*cCnBopriWXl zR*|$bjTsVn;@;h0v~%*xIcNq=lhSWdj|v>wk4vEo9(mb}sHkSxfUWpe`wRiniI?Cv zt0~Sy+%~&eX^^*09s9F`+g9HuRbIJ&hHhx?TudZaUhW%s`zRLdGOtW$&^vc6G;_2& zM_HrlB#lR*>uj92-8PKf{({9!IhUYtKJ1X^gmpsZs(I*#73O2n(YmC=SYMT=60B!uE;ex^P!Cv#gLz$jHg{R>IV|E$W-Xl92z@ofECpMy;@Vt9HFakx~@2hZGSz z`xTa~lvk|ERdz&FRJM540UVPYOd|cuv`=s2ol~VOW{F@`F?#CX#W!1>G~FD!arZ5M zd?}`fs(6DfpcbKwDoh~*OS#oC;FKU$RJI{VweL$f#{1)QF2vpI5f?I(LRMO|O6xT= z)^yikF*wfZMITrOTal?xl}PgT%}r0yQ9}D?Jll4@?mW0t=|e{)YM8NSH;7qR#w59! z3lzbH4t(KuK4*NjNd zkGGIpS;Aek?`QMIp46kj#NO=3T&cFInJk-uK@pTy1@ilug=hHhr`UZLDd z@P6Oo+)=ak8HqYDNv(8~TPQ^R%DhZ@dHh`gC|r3*>FzqOK;z)Jc7zZlYvu{CUulG| zLO?LZI{Bg6?8d!?(8147cw=(>cSbx*MpJ7W--Jo7U8mke?rX;@XO7!0>G@ZBKceh& zI;$$E4WW)!QZn!F1eq=Q7|-7JrC5q3TSPsPP$-(hy(bv}M@A0cOFthlTH-G2pnako zI7#0RV+RPb86-C7&AnC?BQB&Ohe@V&kv)2Re<|I4{ciGN=K8A%7NLDi9+?I+7psL$ zbb0zkQyLfhW4LQMU7bwZ;(}O1@w2V!+=zx?Lh3k3MOS zlJVbb0jt?yG*=+XH{{KBUOAT#@t4W1Da&6t9|LAmMnA4#*-i&{1x&e;4zm-Kh= z#;(hr5u$F_PhHBXN&HMoBaC+$B7vEG?O&fs4#>~YgFA8K^uZqQu zQ)s8s56@7i{gHzm3z`_e>3(fzRclWaG<)8e@_f9imk7THD#NE7OF6~AV_!0?47p;p zpB_qRQdLRXL#G$kmZ67EZ=x=s6w#pTJBTIqdPB;!et5x5U`_CE4}df@eOD zMF14C(V!|zc^B}Ztq)t&ly2GY&9DcA-IoYihWm>MpN{v*aFc=G6=3{Chd0}@*KeqO z6QZImK)}f?_-n${q_jRc$%j8NZ6EdNi5<&q!s{lt-{Gc>yY+89Ir=_5o(XqSgnhVy z)(Trm3^cKRUA5c>R{I)R=|QVt$8%=ok>A5F{WWec_W`DNH1zMfXx7#rSCkoZ=bL@e z2Dx~!*24DfH{Me_)cz_FeB#x72tvu;@h$6ECD6~+ez~i~*(W~nQ5@O|y^?2_in-bG z)hPx#aBQGLuQxS%Cc1_HKjTML8E$*8%L1jGE3bB^YyVh!8gv15C3GcSsqf2V`jY5K z_a;UvzRV>3M5^d&;egV?7y2ZCK2nnOd=;z1t?AB;=c-!j7Y_X!j%tH8LiEWCFVEr$ zi9Sc0IH+7-|Du8ooV>7uz&EUst&*?vKcedj*G?X%S|!&aBEB5~e_A{R`K>it*+Ri? zN7rJ;H;14X;1S1NT(pN^IJCS0?QWkQ8t-G5h^Rk^c2CEDDX=D3DGrv`FhUm8?8P~I zlU~s!?qawy1pF8f`Rpg8J1xqHXOTMCBhU zZf*k1XY2pCTP9FrAe1wm&v{?HfrhJ2WyRM=23sPxgkSPn9)0 z+xtaHqR6kH5Wm}n`#sijU(AX_SY4;;MKDH!`$n5e12?)OWeO%ADUyJF++Az*Cy&N* zfTM8yrVu2FME}+8;0hzkWj{ZVu-hk)UH=g&s5>Z)I+7SfbnRv%{nrnRcOR&$>>XJh zt~q}cP8pvc`XdPVPHL^E`D^ZK@34Hv1^yI!LCQNUnWgaq{$tfW(7ZKV`{6E?m~8?5 z55ejfw7{hWm9@W;i0_|&f>BPM1+fj5Z}=ZPF9*o(laqP!-%(ehIC_c0CD88htI{u@ zi8Hs4aVn~)Fk+tr1h&kj=QOH*^EOC2a}8TePcpu$9gW>}(jFhUPd2R;d}?V^X!SZw z7S?}R|1ulpkNgh*!kR;*#IM=H{Y?;unnZHiysqxwq);x5Su-KQTK#U&of{m=^`Tw- z-UqHjO5ensl|ge~{P}vIJw}aouty80x{0tELrJ=nrMKiyl3TdVHtvg8W|=~smS$}m z`}#JclEWVm6A$X&Rn_fX26of0Gp$<{K%4_U5IeqNAn>6avTI%;;p7;qRXbXfgyCCx zVte$_bvGKm?%J)YHQeI-V^){Ku1FysR$a6~-O7D6Gvjp7Zr*~+wn;{j>Mk^K@BM&) zHVoxC#LFfqPt^kNEKCgeTrQSvtKxj4aB0HAbY9KrxewXrt^Vg~6-=+dMe^Gd^&G%B zS*+BAZQD!l%^Lj$YdhhFpu3b}0d>jk1p!<1V0o7wQCf6!G*Ex%AM1&Ox}BxWNui+a zgO{CeE0FE*O7PW0`R$#Nnf!+$-O)QsATq`~Fea6wGlg)5w z*B8X$kBxJ+C{gEZ!uCH$B5vAc^GHjHO2IgRiJS?1$!1SX2zyjfD7-X0-lWj5l_qUyvl69W zt~_L#5aKEedkB5lCwC!lQ0@8`v9-v>HL#G!1?!*~({S@t%tFtu2OpP*9uWqp9^ zWEU=zp!M`bX}@QnRQ%_iZxt8ONYaNT=U$ckwrZ2k#l4>*(z>$VGwv&c)Wk5%$jvI` zLDmF3{NKq4G5>l<{^!@$X`IIoA-(<+B1v#AL7lsVX!(b=I zSl6;)(OAp-)0WwbnbPJn?onyd`r*Hp(2qf@!wj?l9(BTq2{tYUE1J2RBG&dBh`JCa zIhys{)qkVjiztKtYLXmc>Yt=-Eti5BBJD-#&J__1RmnMhoVzy(BE8aT@^l+Yqsu>n zPPq5i)DqU79h=B;{Z`es zA5#f<9`xe%#UC`>MIOf*uw8R!1E%`iA5V#v&%d$#NV0hT(sx z|Kc(I(9En{0aXZO>i1Eg*}wVdQ=o~Q%tW%eZJlbL$!y7O0bC(as#HLcBsk6K+e;}p zjdisHC6r}L%74S4S!=#F^>CU0sW|ccT*(q8ppc6*ScfCe*OtgCd=J@~r#lO^eCD(Q z$O$|+qB7EYuZG z4*bNNvm$^20=wC#^Dl$!QROy2E8D+H1{gx_C*J5kzZvAegJp%%W)eq4jS@ae5=Hxd za-f}NCrwXeS@Ms@xdST#i8jS9K}Q(br4U+|{UT*WorsJ>AzK3*>mycEPE?#y=@`|L z71z#WtTaNaxf^iv_z2zEnyV`m_|&}1asd>!=`)ur$og)^;gqep8#W{C9WG)U&8~hY zDA~T^O)al&7eDTHd-#JqBi(Q>MuSU`q7L$nvvAX@oboS}_`_Il%;W)c8~k2-=D({$ zT)KLkWpNvfC(AyN%me!>_1DSYNlJPJMs0(_o=B@>*yEkN`)#m2%*{3BgU!n(R}8kM&m?b4RCi5Eg>#nnk~}S75;|;VI-bZAf2Z+dA@8Il|){&o?P1 zB6zJ7BfQ*CwCc@@-s6#Udnjv%IJxH+Vo%FSnuX~q-B4?nj-wkYmC(#2VaQrX4H6G%_5(?EEO+Qjeu>q<1E zq7(zdx&C@Lr9RsIs<^|m*g#S-7{6wm6m zxHf0%{Gzrt(Oz2(Z0o+I678t*QS*hed#tmYuYI#*b6x`4UQY!M1WZ?dx2xzXU73Y` zuWjtN&)+p&d@>{BjR+q7JRYpiABMk5$oGBu7ou$NC@U~eY|vi5%_gyS7cKp*n)dfZ z7|*wwb=&|b)mNv1{L1b3HkYA42`=N#uZYrX=AP@pH+0tbP{hxp3~z-NqXa;XUn4U| z3b%yu;UcTlIWNC83;RNhk_haus8)4jgM)hgvpWt0jk?35JFjLXC5q!VYSa#g ztvK|)h99$~%8M*(t-kAIq_%7Wegy4jylRvH_g8#H>Dt(n6;hsj1IhVy!g&doQtr%4 z9PJl+J&=8}ai5T_&s+b4qPEkW{g!{Q;+iMJkn9Q3t4emrR3UJVN+oJQ!c#P zCw<)F}lq`FIX@yBj=dppPES#Uw_iLJkZ^Km$u1`8{xBt)l6;{Y@CDBWhxqy%(i&i z6EH3Iq1g(5My|)m`Ly|?oqwazfij9-@AWGWu4jc9wXlKq-Z4W$T6cMBtYEWNUS|f& z{wVhP)~e+7PVXr$k_rRJC*sm*jZvSe6zb+7+`qVcsC6>Nxpi{>djG&$&Ve7^GLVlpVNx1q^Ouj)1Db^XvnuZ*z64G!$_GWdRb^q^bMVj0ArIL^|J+DYUsOWz z@Nb*BL8iE+p=%yQK9$X!v%sLie?NVN-c}0~STACa@4MeZzF=?4=aHVhxoP^Eyo|8L zJQli%y{AmDaBs)hB4v8}B7Oifc|vX&TQTPb8P@+n=abU?mIX0dF<;M~l9FQ+Vzo2u z_y{lUuVa(oxks=ec_6TQGXl|}#7t)FQU$ki!?%^<LztQCR%?=3wjex_I}~<9pla)5N=G&6C*C(98fHZC$-&8w7VlK~PqczDLf?=b>liU73x9?Hn})38hg$Om{qKZp zC1*LEUJ`yR%BM!?wB$ymeO8xE448@asB)JJD1hf&(4Dj*7P<(_6b4-;R^p#fTEoKv zky`S@Cs#ejR8-mlLRBzW1kTaau}S1mBhR0bXQbNVdDd>#-b#BC`UGQ>p?eVR7zWW~ z;ZtdeA#I`6G1j!4*PH1k;Jby0*Ukso9el5NnP;mIg`$6d(pf9mT{ zl-5#xz~WkUb=3*T|Ie(9{txeZN43joM#mTi`hbIf!N0Ou5R2)y4f)?Q-&)?{i12)~ zzbqGS(?Z29^vGO4DYLJV^In{?{MSwn^Nj$UovtBcs+*dG)?(ZnA`(f1gCQQ66jHwc zHuM(_`^Fw&8QPQdv4R8Bw(6a9mVJI5`boRwzP-jH*zb3~y%I+J*l5_Z|C%BK);p6X z5=1!RvY(?gjQu`WB@tS9p1ea$#wmPSkg8Wu976R{ycq@Pvdh`i> zHLyUJ7XjN(_`-UOI23B{j1#1N%zJz7VEFtl2%=8`5e|VrT9UZERr~bNQCo{@_&IJO1YLcXptVIdpFO_N?ybd{1uW%El;CO|skP1L_@_HKzG_@oAfT`hoPy zBcQkCedYU&gKiymAbPCgd=J`?$;RZu8Ene`(ZYp;hDJQ6k*@@%50@V3o*OB^?dZL5xMWY662#`Bd4D zuf1XMhKpZmmxHD^TYQW`g?+h^8W$IW25}nZ(B#uSGjtYQT*x}+_taefnCm7<`Hy)E zLU`9ZJ!y(XgLs9d`r@fn$D9VbAu8ZLb_r}-5epEnYB4eTV^}|nYAl{!LPuqQ8P)2w zo*<$&e-QJC#VtZa>(ibREtjMg+^ev6mbz4@&eP~nnLA`>`K2~b*(PR*dY^~<-&BE3 zEk|wNM{&)_K#K>k#jR|_e!nzq5#>c(=HGsB21e|!Uxh8wpX7v2Tm}we7<8EI>xZ~b zm+KHmZ7gRwh|1s`M3U6;H}-`ZtE1Oq&rr!h$6@_GIyi3hC;WpN4puDVuAQiGA*=MG zl0RDDLmlzyOUU{?CGh2SJffzuK*sBw(HFM}f#GUvhb4WWw+^!JZ~N>h_^@#DGe8>G z{1+>bZQ;d&W=9V>l^VT9JR)V7?N7O|n;*qf(E%geSt$e>Kle)S4CU$Qt5X&2nOCtm z(%=S!Jq!Dpz46U7^!F^xkN>`_Qg%`3ktfK%-oSy#}WKOF&PeRx26 z-ZB>X)uDpO)&7f8w6>`r)KAyO(N2x~qTRPty`e26X9@v#1h6dh>zI&m z(S^k~iX6RJ*@$VyJV(@Wk` zHQKVsP^*~ogxd{WO`Fq1|FAlBj}o)~+SlP}QOY#+r4FmWg~16~Ql#(o^>2^Pmk8IV z+_t=l9AW2OxYtrwxkVnIo)n`hTyKLMDjNvFD`-{Zo;2Q+^-Afqm6a6)@Y6b3&UDLb zOejsvx+t-&%Od+1saI`hwrEkmOx;|ers69Dcvh3ERtl`SF)WyW=U@{73kAu@KgJ{S zNbR&s6#ACzR9j2O9;m=HaIp37W4zKv*}(PwRV5BBy}faNBl;d*wW-F@<*e3Gdy+!O zn_Y8Vy<7xg3!+GaW;FmK2&DIv#RNMg`DD)-cdzBhfsnnfm5>yin?|Vf#n57}IuWJd z!)Fv4*p9tv@BIumK_FtXG^CodNOH5q%d0^|d-T=|;fPv!C$Y=ky)Gn*_E@mv$VB0crw|xjIFU2 z2eTrK_MtHF|IUIhQWs6Y`*}+RP=CTn-p8 zb7V=5w4EygGHqNOt&hr@3xmld1_IRwAF=rp&rM{}>E@Cm(6iEZt-brq9KmP30>R5K zio^ClQu(MadN~y^Uj9^LUrvDd!H?ib z)u|8kbtWZUeGFi$hDKTIOX`8ot5VlAKvja(%DxkyCCAp~sKtAQ_&QUybW@4L$fm}K z7`7>ajoO4`lM;=UxWrNOuzyuuQWM0yHQ8S)2E8^*<2J?B64nR5H=j{eu%%m+kkx#c zKHd*_RjpfU=bHT~W9=flmhXNNu9jWEA0W>(OQLP;bdn`mrOV2J6R(X5MPhoC{`U5I7+t$iAUo*KPd@*{mOqrbb0#j3j&nXZkda?(OY8l1kQS z58r3=oWA4Sv3SSRW|Vb zYH&lDN>4}cO*>+OwEWYKSpOh(Rt23B|Jl{q_cA1Hy#Fa)b|ToP=?CY&zh??Qjcnb~ zz+jdEZ4E|4^*TPyA6rj5>@H*`I?JJ>*6)X{o7bBtZJmlY<|pm{Jha)+VXh6(#=kD{ zGW;{D*MzTeWCRdnwZg8@I(e4cZZi%&W8@KfE~OS#krPXm8pbNlP<% zLgl~IyVQ%Q&Ua+?)Q95PRh}OSCd#^Cf|6(m`duN`VEw*LQ!?5Juc7ae-c?X6yw>8o z5-^wbRFoa@3a+#W(VrJ_&ZbK?1=|(`n4S-m0xy@JTo zq#|5(M;@!y5GGN08oVwQf#+*E>qy*|4QXK(TkflBC=HJ1tNv+c=tjv>ywf}DnS}6L zfpMS3s)oOFd&!O4=av`VbwJr=HAle}>_7}Yh)MH5z3B8aS3u?sR7C8(j!=p+EBXij zXs@erVoI%OW@qL{1yChe_I)%2`E8bk^>pi#hMwn;>|w7V3YAC|WmSYz0lgy_7375_ zIUb%`m{xe_4nGSQOg@Pt^nG%8${+h*#Y%?iWeQ4pd9{Vut53xfcmog8* zcK5RsAHJjQK@`6xoP9EA&TET+zs8uHb-rfHA%0B*x(1wWKUf7LX{>{5$Yny#Vb%@*)48PQ}C}FUyTNYy{AyzLd$|0Cw0_5m@dzlTg1`}Z|n#yvp zw5?iuRU>$R7a%!|y3gjNB*U$JC;Hjov$=I4xy&;4NbFIc)<}fwD6YrFYa#3{EdA^>dC)A8 zV2?BfCNnyQY22~5Tm-{y`1-~Nmw%~M6|wF+=MEKU-Xt(WMdu}Jc$|82_a7E_xE%(wHtRV4U40$y!%{4Pl9?9cUz_m1RqWIx zaDra&-^l3-cfs`;Moxan{6i7dKkx-9E4Y@N6?2xIR z^C&iAcdpuX&jm*?!j#&`zA~jREqYG28_(nU18p*cd#^r7$6;-0#k>!?ca-NA@Q-#b zRi>ENtL<=sSHB6Yyrxc+tpVYNUTss0uc+*Ps_k}H7sy_*)i1%Q257>d(K z8BuD>$&v>aJnM5Md#DYBS9CW=8QoeOD-rdRV{KY8wusv^L33ks3(<@Ge@!wr`7XoCN6iRC#|8Dr&S z@LZ6P3n0>_OpDd8MJr&KE9>h;(vUXt=?0KlNpBRkMR&?4_jwCi3pDwR?1A1D(U4F& zeGXgvCSwX)lmgyH=(?){Mw0OCjM0!{@Q~O-2)&=%@3~&+HahN{8zEVX-UKa*+QiLy zbs}7Y_T>57@HtOpGrEJA+TBb?B-B2q=mA#U*0Dpizp}ALU9!M8&1boH_YxHQmiDI3 zjCAPWu;_XRVc=ISglnpOudT5jHxm6seW{v5vc+z-cTZ750C{1)fU~XxJ!CBYrquM> zKH1UMf&VuhEn05*y+`ZV2Y)=9X+USPE8wweLyb~sKV^;_HC^f>IbK|1>q7dR>+^(a zHzQUct=GNN{F_6!TV!prP;3b>01BbIx&z&t=c^&$mkY&*d4&Zm}?TZQ9 z9rFe<*bi3otB$;oE7;X1dIsHiNw$E)(%$11HF(X97By;AsBv?Cugja>$q5Br&sO^E z(;fyUuDnN^^1j{haj;15d;dOyz0XK>V$Vd;YPdORZ8pF-tSg2lTcaW zqStc!v`B@*J`7VzSfSQJpk0Cb9miOY-nq}ywUff7UZ#jiM=0e5Qspy{M*1|{R#F+E zE&a<}r4$JUH<`PENE=L>)z)nygf8Mcwsx@px|aAmqtj=*>861#t|3e16E(PoOo3Jr za*MXgp-}?k%0p+z??kaRcm%Fgy|&_}Htu1YbCL#Bb*eG|rK@iI%HLx^^H!05;^!M2 zF^|l|qh^$Y1?ovd9kc+$9y+K)>_u66$Qd+HQ@VfUfqdygN;PVRAaD9FI3htY4EYC7 zU~#N#cOi9b%24D%Zt6eQM~{h!cdYtZ>#0YlzkYgrfy0!2 z$#_SMk~&{9dQjXqgCYgPBVWtzeAF!?(y3QSXj7UDxaR1@)VPjt8kOoGSL*HEfsbbu z^&KZWhl%82^h`;^1YpkYyYi&20Q&FKCsXX)axK$L9|f1Q%CGyY@7k1)7e&Aqm^Mab zz0@|y8Rt&`AL=HE&-dw;ZW?n_sFY)ER#Xm(t_kPtt3E0YEtruQXiwp`u?Tb+Gw1q+ zNmE8W_~T{a)+iUr%MV*mc;UOCQwGaV&`5!RUQ3SmO3^pH(?>t}8(8ABtE%vZKW>$3oZ`oad^`q7$Y^?egY zh0t-?li0|iMcnan(wTz3opM^9=0;6Gbr1LkjFJ0C87>5Rg>Nc9k(cIxHV$6Tzc71p zS{Gb=3-iZ+gv{1|(z||0yHoFVP2*gW`T{OUXWO*L#g7!pW}IS`&PIqWqc!SU#j%)4 zFy*>T`Sx%^soSn|yIT(kTu_zS!dq+5@RB|_Zj*5&sjr#RIKL-1kd(Q)Q*T;8nK@F% z2=>0(jZI>*FyjAjT&6BBcE2vcD5RQ&JW_$s?7Jfu3waA|m54C$_q9T-U`eBA%}~{q z-Mc#pY&hHu%b6{Z;dbE#VK9Xr68?^C$k^V^%a4!9lJ$_8f$xyNN{kYRcb0+bBDbdt zq#83YoyrFF_E#Q@14XFoB_}Q!K7L!|a3r}iQmo zfPaF0%u3wqxbx*Ey;;`B=8EO*!?w8w&k&eY)b>-&LqUE<7)bi$r zG)NekFvu%m*2^ba6XVsyZr6Vw+WzXuj zZ=0^~Zlc&es9|5i_Ug@2VMI;$1}U3_EVIv%)IsSYk|EoRtS6Ot6+c6SUgn>NxSX9u zgUSqna;Rp&~g#e*WOiVkM^mO`7?}-xKGV2<*hE4~vj? zb$9}~&7%w##jH4b7kR5rsGAReV7&k(Ep1sGluP3?`lOYN7j1gFR4O7i*{7`yM|R7Y z|Ai*%R?W_6H{wFzKS(?s4&7SqV!mzVxnZ3%Y%-Tajw{2wu-5pYW7U>LbRr+GN!+O} zY-gYZ+tl3_QC2zo;RgS1ts&!En<|5LLzK6PV{f~?uSnBNaf7XPy%sEdpm5Y3v(*1+ z9$hx{7BI_K9De$hfVanXqg`}eH-3kH9b9%AD*#(>LgpmjrJLDos4u#)NX~S-4%3d4 z#m-v?XQr^shgNg@iX^o@)erhk0(Js}=8$c3dwmH;P*E(^Q^AB`L2xEuMZEq@6XWI2VJ!%6~kIkik9q?T)RG@Dw!O3 zv!{}HH&qiVJ+)poEJrKU z(8v2&ka0i2oPT5+FI8+bRQ1n!q~+*5LrT#HJu5sSGJjdAsduiF9{m|nA|i6Yj-PIA z{>6&>O%nR^%qHou{Tc(B&^Wyo5c(@#YFl$T7S;9&6VxvXQX!ekEBj0)D zJS9y~k2QI@9a9l-Ld7T5SGVXPzT?U#J?--fT@Rh&pAZzz+7Ur|= z8EE$<(pA+8(ovZrZ^>(R7ax$B2L=k`^Lv%nyrT4wUN5@qgK3_p*tU$b_2ofi;Nn?A zAV*$qutB)`fCGJs(Z<8);9S7eMm1a2qz!%ydwQv@%pdwg-__5-%Q5L-xR*1h2!QFy zsLn_5k0K%33m@9?c5!Y^!~SAyH9#5z;V@|*M^Cu2Ey&g0udMk;(0 zLv{hb%*< z3>Dj*{UWgQY0NYg2K*T4l8EOA&5m>g`Uh;lORZO)OX?Ev2Ll^ny3#EyA%K8Cw`F)C}};)%VenEX|(znr;j9!y>WEHq9jUX2#K0XTp{Ceu;TyETBO;C&x8^x(MOO z{4uv+)R9}b$LZ;#2TwX=|7cWqaa`|KqkKp_5DEP+qGyvW2FM+Zk|Op#=sg*0%l1lz zTP9vJd9h!j;5??9h%{U7$p~|nj!f6OKsz&?@nOw*NvUbf9!2z?N3-rIc#kxY2XjZ? zgw6S8IQF0WZ+?4{w1d5lBBcYtM>0%@u8;fP^`sPr89{V?!?JgJ^L@#;ff1A2TnASD zM?Ui&avcBo4&K__fO&&c?D)gCE}{O*0Bo>N8)ls}kGuohfi0Q{91Yj2s3OB(iSZo| z!^F+E0k$Il)~gxw*w++@;l{3K{J_(N+H6v`bZaFyt-18b$>+_@ zze&To5Tp4h*>I+VdY}`e`U%(Ob>*-oE5{JMdXrH;xhnvb`0L7UX#U58ba+B|=)RK@ zA=V_+#$+{xPNN{Sn%YLawR^dxJZG1)rQE?|Xbka-TdXBlZ?2xu@B9Z@VY{4M|C4Y7 zVA`YqT^04rebGQU0d9Z^YINz3Dz@7_JIY&Drxw}6u7*(8Ayu>72DTKHKcC+MMDg|y zz>80FW^Oqf*L(Uaxze$WFg$<>#DJeIxPch{+*E~BC!24DfI8UKC&FNt1d5-FN}aPs$@@+Ie66_M)< z)fz5)8h*y0^x+NphU!%%tvXdFVf|*WX#TF?TV8j4FIyCIbIdb5ezCHz+}{615&ETl zzP_g+!T);XU@KI<0AbZ( zr*{kD?0G1RtA;$Dt(?i~v`WxyE>p5rTu$dJxguiYxW73pG&C33XK&7I#3}chvo8}c z`j0F9IJ-h-Bl?t_!xyJ+aNN6cKkH?R{|ov}MoSsrB)gt$=$Z>>AnyauoQ*mtYmCrnczqGxglcn|HJBhPj*HL=K2LCc%JgQ+@=C0R)S#=e8 zK0(-QG1Nszi@?0Y;jZsLXA;>Qd6M5ZzBF=8`G<;QHE1w-?&>!IU#H5o#gqWmO(ZYS zKnIJJ$6vTW{vfI~+QlX+8}Kwy?gX0~4p%r3!iUfAkz&4Xm;sHE8ii|Op$lXBWHpTP3o!>P^}U?vRn z#la5t`F6t<#Xk4eZ_v_z@^1S+0;>hwmtFX6f;YO_5dH zazEp&i0L>yXhdv1sVpB~Xf{mq$#CroVUgo^{UW@0o9LMiXI9|Z5DJb09J8TK>gD(e zqU2RGx6f+EISA3Wg898SG(DaFAq-g!Bf8YAu>O;Z_}Esjp_cP5&Y7C`D<_X0aODla zf0SzP+&iUS3li=w3M%DqvLj(Bf$}cP;t<{&Y|jn^S~DTv0uS`hXyF(lA9Y_eFlT4! zhf?U9iuB0#V%|F){dfL_ug@?=3e4U>6{}~u4dCuOs3phIr-a%ZpMb`cQj;mRb(FML zABJV(=yi=9c`{SL$M1Xm1KUi#kdGry9?lxpPTfB122naD73F+mS+{I1A1{MLONlt^ znT~3uJ5-w5Kj&L)nRF79XE7T@`+cBTKcviG$z;R{vaQnSj*k>d1x9>XxZ}NpT}i*$ z_w}eSViFjJw3^V3ji{~aN9k>BB|rAQ-P$TY9a!pHSsqFC2+*kR56PnmLhCGLqLR>z z=}8hbPbuy^rFlj+;asq4Xe=HhPEk{2t3ZLnRY!t-cH+@!O)dM8R>UYV9ALdlFd`F{ zyD{2f)h#vI_boQA0uS;;&(cQvvEhY~R+qjZV(%&b&?`BjpIk1P{`-7hrDiYAV;_C4 zNOlbcw<~Q};Mq@uQ`I8G185p`S#t^T3T`reWwkAzB4qAEr`W(YBt2~s{5SR&OCZv9 zBeym@DGuP<57-c)Xj<+{_MKclA4$|~gnq6>JoCKE#cO7@2`Od7q`E(YT+6xx9VZS{ z*U`!mkLs?#6fxJ^dMHlw)v3i)77tssR;pQbAr_(UqQwtnK-x8}&li9h}8w2uN7D4e!&ZnJrJ3eIH z%z>Qih_gXrAv2`(AugjCB51NGI@* z!eXw-r9eG(6*xUk-rC0#+Q+in`xw>bb`0vcEz*eBl10vfDu~Zd81O4Bdu!1gi+m!D zl8e|wHMc)ACACL4Jusznuz`FRIPy#O3!zWX(qLGbITfbW4;%LBug3JUA|mKeizO-) z<#oh6McIg?(2bJ3Jok_i{rO26FAipIFoU$d(>P@ikfk}(Loq&R)^}J&m@mDfPS_xo zbtMv2>pEViLJBSCRver%!k_5e?a5z%=#%(a)z@+E?ttUPgxC|0!)Kn+Rb4R=F-k3= z11R^n>_}o#n?D;dpJraW>aUPc&pfsI^GL%aQ%Uj*n`#ljb>Xe<${xtwXxH0fhMZY@ zlg4|CVOz^#UEuU>x1EJl>AXhhfZQ0Dy0qL@LTC=!7t{F6;be{3^zX7LmzJS>B*88) zWSWnKVImt)f=TIk8*R5{8!_Pg^W0bu0Kwx<5`j87aC0|lLLR@VUDg0y;mlQZp3S|m zHfsfhOXAt6B6;+6C;hb{A(O00?YzwFBIN7 zQ=3(q95o(&Jmrw|Z@DP!_s@ufxV140`RpkBP3i@_;?YobbId3<*zz0U?yU8M!D%u% z2o$#`!PAXAvG=u)!ll=rSu#?D2T8C_*#R=P3%;-tr zV$V4vP_;m_FJ8BQ+L5Tc|G}oiMeJKw+NzcM*c%QpwUEzDC)e(VpjP@*v>6jc zHWtixA3`P>Nq3HLTf(?7Gykx`wI3sI_6%07*L182PlR1-t*~$9oUaF|WQD57L9ChM zM_yN7sdfmI#4HN}6NQ@88AS@W=AwLLnpo0WQsmR~k@Z3P<rSN7qovrn(q}<8|rN4Qf9OgCMd5_2dBA_FT?lHrb&)$7=M*uCKI=KY>&lwL?>D) z(ecIJm4TGG3p0z;xkD1Z4w5G1wV?aB0Qt$lM{>mqDXb71BfFfgS$tNaq`oY4sowO< z))I#bhcpYeLT`P)_&M5nFJko(2bFwe?AH#8Xj@FhF)OwV9JeB9&3 zYZD>s41n#M{RWD=jBX!nnqfU!$I(xv=>;^NCzQiCX&eg! z$cqR$jkfcVG=`noI&Dea9h>L6e024$*oJklS1&AKl3QLZSR=GZh_k$EDF*E*jNZJA zcC6}XHd2o=Pz0!%R=7`0L8NCR;&Z1ewt`V4vbl0{uF6sMMkt}nb>a`}{(Zll(wTyP zygydnRXr0hw^hjCsMG+IgmUKl8xqI`Rxz0d0Y?(RZm9g+j6iQym{nYW2*Yzp9~Hf) zDdJ>K%x(DI!1u2TZD=K~10B2r8%4YPPVdenIe$=LkLqjp`Q{z1VX-00W^;UaCnj#w z*uPB8%~)T^il<{e_taL-0#%=g#q}(s5 z+%F5s{eF)bVeUqlxz2U2GmH&0e*QV1zt7`*9`DEJ{WC5pGB|?W#(VZ_+x4{ zG+a%z7faUIoaBhCF&pqYwDnbG{toNig{ug{2X`-4ghBn@*$TGl-69TRWl=r7h8s}K*PC415#NmNl0|!N|rAs6(-|9 zs_Mq_F_5R%7j<*iXQ|WmcbxF1`Jww7hs=ne+PwZ!@AuoU<$JyWOb7%ArlyDd2pPvU zeYq%DalsE4_8$e(6GvbDKH`ND)C>#@ea7ao*OEZRbyA)|#WC44&LzIV_x0ykA;`5& zbn?Ti@Tw)8DY&K8P_8P$SjX77Bh5l#Ldt$A3Mn#V zo2>FZ0EN-jObm$)X~FDWD??-@Ij3ZO>quyNFaoTu_Yqh*3ABm+n^Kp&YZ=ga8S>J( z^XexL=cClA%70(kOPiZYxH=zx&zk9{0OUPkEBj`GnnFgi9D^Yv2eO=Ds;lW+k~rI1 z*=Hsnayra0EnTOVRTtqdiyRW&Cm(m0z5)7lr~Jkk`TBWfe4ayo^cUYQtrmAP<1DDQ zl{vkp_*h^u;==TPCy}+}Q^5BX2Cu#6%SROw>htk^kc8JzLm^h6XS#Z)A}h&tKLS)K zw%2&)z7%M%r%sVo#UXibvhis4t#7~%vifRf{hpy+XzL0imHBwE_EaQ$2Wi&uQRT1R zepz&OlQzB*cg)hoSW(=%w>+j&qi28bh^0z~>9E0vK_=ISFE3lxGO}!ebJ~k^Yl0Sq z%N#XfPwC7|TWnZM>oZB?76@XHQOaBiPO!=+p<<$~@-=;9ZlxqMHg`e~6vftkWDg%& zy}k{bs!(w;j$-FXO*1XP2+9T9ue)3LyCdbylW_E`w+HX@?c7UTCS805v{ zBf4X5FBMXyC;L8yt5#3;bVvrtf~wN<8yqz+2I6qVA{$ddDekEJMZbsjxjc-wC-#=1 zzmUdGuL+O0l2nPC2Kt9J_7kiuUD1CC8j4D@XmP{clvy?H+00n42b;H?zwE~P-P|6$ zoLaimbnClcX^2(+CbHVEB9rofoK;^B3>o{QHAj2~zvXY$d)9i%I?wX#r{8t+lmy`t z81Z9?I$3?W0XZ#ITkm7%myk#Nc(hc;V`kKy30{eQ_dny$YjMM_RtYK<_D@#};fvOL zPA%G87pRnK`<>k+e0le6=>E$Okr~p|&o*v{&jvI}r|S(O^N-1@BO5cT0$o+3Gru?D z%80bjih-j=GIbc-rbpkk|dGOnwr;KJimEmA_9wg&QC*y%#e#at)lKqn_#z2*w(`z)Q z%&c4!1$)!N6H6YY2H;Wf@nB`>`|p4W?vt&NEH6`x4*WsuuII`e$ROFC6yXczJ7+=x`x4rW1k&({de=kq)WM-7zi zT68EGO}1R)_T|NJY&mwV+B7G0X7VKkvhl|wX*_*S7{aOXlG>h`0+qoRb-Rs1iXyVV zO6>><%l>@A`fB!BX@Dlj5#A)Kg4gF~WB^zkWL(jS?YqUU`FQ9SI~^Q>>a8(aZZ?+s z1s}<%HrzFa`YWPCkJ;vlH%7HOCh1E-(7c#2$UR0gQi*2Wa(-*Bw29y)M7=v{yf(;FG7q63FxO_o7*jmg9 zY+K#T2t91-oGpEWg9nhAX%)UHQGKvBBZD^ z6uTmKI;y5ER)!mL#Hy)lwPH0UoVbq*-iAa6Y9uvfN8TvlSxPSfbOHsDV63gpTh$5V zsBBSpl0q0R%X(K?#*{4Y%N;w?F=y!{R$XBuEF*kM{;!s%SGW6-WpwQAa;8_4*1pHd zd$|{KX8!RZ^R(CdHj3dOmw9c`>fWMXBLyFYw+=O&d3Zm1`D0pIlk|^AoTNCWtKyCciA<1$s4u7!^@DT8Ez8*n|ev(&r-Q31IJFqMzOF{4s zxt@W&2ilo1DVr9vEg}{_&d*<|pc26ktp6Ig)mWo4cjg?N0PZt74XXa#U%JW~6L!|R zJKyeF=_6sEAi-`ZyF33t$*@ZL0%$ELiaA0qWN+S5V0Ye;Kz`)l1i$2PPlcnL4-h&q ztKBNH*!I0{`WYtCD1F?@}HnH!J>cB#QeXu(T zJClsGQ~m=;y82|nOfNsU@gJQb^Oxtwcl2!urXMcbl~*HLxm5G?y3C%zG>%ALN7srC zjKo7gzv~HKuojS&sV2J@QGz-ej;vD59f`u_12<32uh0`UR|GJpKR@?Q`!wN;SbNRe zq`{wVC^>Q}55O{&o7l4%_a-xEZVf~6Z`HOtNUjv z_f^xJcfJ@KY`Qo|vuv`)rfp#D{m3J)#jqaL3QZ=9Y*Z2aq-MNbUT`&v z@8BVw)MCI%j<WGg0wZ==J3oW7NPKnNz3LqRerpq{0D;DzY!mNV*qY9yw1KZ|%iXpi z#tG73g!+_UA*6>jW9R8o9xu`0P=AyaL%K?G%0w%3(z{t~NA%AF-J!>NLzi*ymig}( zAL^7gHV~BgF7>VqbD0eX#Y1mhXrA{Euu-k)9W{}k+fweECP0}jPm#@I!CWg?LXPrx zMPTX$BT8@N3|{qsBqz4B-i7{{aIYgPBt{wW70Aa~!is)Zi`F@9i%v~b#PpoL#he#o z4vjU5!|>=Xzq_e|IC-^Snd=G;z#J}5A}r7jqZ zSwuX*PgHkNbtVg!Et@_Lepa*Ey>Ghu`fo__0Qbl2_TX$p_Q_(4rKD`Iqzh)8_lK6V01OFoi z7`*(?Q5&Ps#q-%x%yRT9puoQI-GRt4uFYqvyyUgTv2n}aI0gN$7cf1*fH}6E=|e%L zheL=;EKkLZgXrmBlez*YXAb5&J6E20v06VBtMSqrpT90^7#Ob+#Niyxip2$ksw!&B z3Dv2xC8zh7OIfmxLKn)b1sPkZDc$*m>4M2;XkTq>?c@1E1;BXYgENZ`s`rjrsBU^N z_Vl^O^F&nc4z-lpo~EuaHxr)WUKRWgx1`zBH3ot0tAg~^9f(FFnL78u2lI{F@v5@K z3}0iT1Pxb>utAjr?XKMGXEqF-@FpO~`5jK62EJ=X)eb#twj7MQ^D8@ZO#KbO6U7dY1Mq-=r)mz}EN zCXFa?qAE^GY`v69lDt)|Ft=P8;WKEVoB7gy`6f$ZAPu^6F^Z^Ji0nCH ztm^b*&-zp1Wp_DiC!=n%VZxc}?s2RPeBC{xo0V~7$t%aeGC@daXnJbtxMAB72>IgM zP|@hpX>bDyiliC@_y_Bjh56eBsNIus7bBYOzP9syr95`1?y@aBhUv!XA)_?QM*dFv z=hyuleqzx94>{>+y2tEsZ?2Z2L)&VD$aWmPDIgVpR<-$!&q0{`#>?5UhF3Pd^mv1?(5jzvSMw&wI{v!{AD+c_@nL`d zWpWSRU|9NOY+(T-m=pQjQ$_SyLY(XVWYfQjZ(Hl^<0yn5bme`_voDIgfR&Kr53br_xGl(Gy&3c{#o2?L)zJ;9{o|Djb-wft2p9XC zxeJ}>0U@(Hlw*O2cnZWF_Gi0bm!1wxMw@&ldsgCH%l#QE0y`B04CO?01KS~OGmgM$ z=zm%Ra2Tbz^;AaP#j0{(a5^&3!e_`kJdS`Gcv7j_*e8tPp)mbbPJ$$2{JnH+dl?dg z?|T789SK8hfYCQc?y~A=S0-9Z>HU;W)&AZtyVe}gQPOg;Wi?aP?zk;#?mj?kEjE6S z9pgOQ?11g~xh;m6R1`TZ>yz9QSRzjfXVk!hZD%lj%K9NyI_1c_6Swgk95AK`JaD@5d7h8#6X*{Z{t#;n&6+Q+w9VHbbAgsVCK|=nz!oFp#fS2FI0cp*ti{Y6D}?Qr31k_zYTfBGHKK@B zjG2o1KB}@}Umsi9PhSr_W$uLB(v?6r#O7Nn2D}NG+vc|TcBZSE1ALu=*MsK6WcxgQ zlOGE9&slbPUhd7lybLtqAN(a`!Z^32{mdZP25R(Lui`|}-lmL4ea*B?Vt?$sUl-U5 zLz&>^9?H1}vYqKJg0!qBw=Qk_MFouZWU+U`HWO@Mn$8b}4@+X1yh zRvxYy$I!CClphe}IJ8=@vP12@Zph85E3{C>s*8h0QqsUDnr!^tEvaAbYt7km^pKc- zUrbvn>p4@r%z;zrRHwbzT8PQ-YE4cUnh5Z826#lWkZ(8_42!4vY|~Z7;;hf!DE~Q~ z)ST!1Wm>iCoM&>0cJlHFwD)jJxSJn8cK6_=f96yU-CJfcSB;ZrZMRo?;+!Vt2Psys zL!XF%1}x~w<}uzWK`4MDmK_U`4u%pz=St%$+f&5Z?0wJG{DWHc{*L$7&#PK?tr`ZA z!Ko#B<0vJQ1N`9lhWLqdITI(@h!1-jxm~E63^HSlofxsuoa2PLe#q?idtLAFpJzpr z&peCWY}#2#WXeyRpgH`zNO{;);K(jf!|o&!`Mg}30CY+i(lvm^_ZYuIo!Xp)%xRqM zK*x}OzD)U=JB(;s#V+1bTbX>*D!=mJxsW*R5ka|BJR}#>`h``-q4zyh-0-H{rsh$t zeCCxjq{AYsf=2FBVwlCoa_i#YB>#HA_M0;y-go_Q6#uoBvQOTFyw z)pP~Fes96O+}mQ-5=#?h90jYEtK&68Onb=ZsPXRy6PTw%!Rw+&yvFo_q)}e)5vdg3 zk075&9ZtS&mgVS0le93)3FkJKud)$GXFo`;y>5#hKT831P9K^x)mOe6({n=bDk}+q zpC)a4#epqO!7s3-C$Ay_9|np(MX(0`4ZMBvI45;!K)z!~*MOl);HhUI$Dq$&X86lbKs>cgijo4Z$3hwcp8^uQ)*fkf0| zmTnJ?wTpX$f1`b6)`U=zv?VUu8m^mQw4wbK5`>L-xQ6-*pIC4i6=R!i{wCB;ahx;6 zlEf>zxK5*x{|*Z`Kc4z)y>70$#xV&IRy~i0b53n40Fi+2r&G()yT(QooK1uRBU;^U z=h^*_9f|O|DN7=dzV!y~mN*pCs*qv!fuORkuSy*#pXD_+$m`cZN5$j@`yFw(rF=jb z7?f9-!9@YivJ1%f$k!&AF4+ic1r2gOx^mto65erqVJ*83&0^eEtE*)qL^CC6QDl$s zZzUflXqAXQv~{CY0c(7{m2(Q-Au6cDzH7#QOV(7`Al9doqIgmfRtK%P-^&5Dm1Aa< z^PS=$#i|O~MJPj`f}Ry`U37w(0(&bga_8a@n7`jlZ#~%ml~vQ1I}zZOgZvZHlP(9A z3?KISzK*7v1{hz5%9*{bC1cQGtW@1beqb((?=e>eJVc|b^p#t%$o^FNiU@HVH>x?twH z4YrBYRzGLOqS0{?_h7tb!iiU%=qZX)y%MFJwigDi*lSpp`pn88IFn7{6?{{9@MqsV zCdzs>dwl;FsrSmw7HEl*hH941^KTXZN;gAeeAKvkFNvibGF2Ok?wQ8&-rCla;czI7AUq5@MR45K))V42mCw)R1f<6djb0294Jrq9c54yCQSYx>8 z2-QF22CHQSvvL>2ngPo{c!-teg?brZSc=jhce!mbXT?uB54Mh+V|_};)hzna7>|mk zvaLC$e%guUmV6hZxTK|v+#mkb9D5Tb(&uz1@76rDHOSb1IB6nE?8VTuIjCRQTLb?y zxy>#8wbsE?G;4Xo_-DH56Iv$l+ibClhnlkml^2@hC?jMJIy`FMxzi*5(fXBH_uXS0 zN)_7y+PX}Jg$b@N@*fv$$*WQ(xuvpA|PaUYi;2mj&f1R6Hy1I4QAL9--Q5!B5i< zzsaZABznzdw9HH_Ct~W946%`Nxi$B+%`HBeUh$?+#@zMwPj|F00z->cwxIJh)kCjV z7Bd!8qGaj-P846WQukQ%MK7HPq2Q9#xa#M)6g%8HXNk@UZ+~$^-}Ve((y_otuhk-H z{ZxXlsqQe^E+`BlP(Ew$z<-fButISrCw&X%FD7Vu1HEMzrt!uLZT0Q!&~VwMn#~1F zq5RAn?%uyEdEas=$+FqpJMQ;7^3>krJhUq`71xfNt{pc0rFVF}p8a-4Wa;Wb!+q_*7da)C5?K|hxO4DA&L*;Ca z4pZua+Vtn<{=y?!95eov%NQ1eYe?#;D@kwaqfFTxS>b(usRb>50QgVYywv>k=OM8o zcz!PBAUB&U>kd?d_VR&%rm}pWI85k-JJ2&Tu#e&SR#WzFWoQYzYB}d(K-buD`N{QG zGSkSLY%}}jYm?va`}duLNbKsO{2Mc?{a?^$%PC7idlzdPjmpl(hor~6xl)%BfvNP@ ztHUliE>-GPB16aWCZ!z@ejCk@CG4IG7r>fj=5|{p>om!wjYx(w@t{jxA?szc#B+>s z+a`oW-?Vm7W$`Wlg6N;@Rn4?{yY(gD2i!LpJmk{GQDuuV+SJGEdj~s(56eU66i;Csm^{C`1|RKUP!PRLz5QmR)t;N`S-wCsDD7vkieJ&(AJghR&$oFI7|#N8=d%*rm6 z00M&r8cWTq*jH}X;dH5_#Sdb@E-myUo5)tWwtmek4J{n%)WBKpf3Zf`j7GVglH&nU z6V`$;4bxI4e_;okLID)jQ(|@J&n~I2!)pz1b?MsuF0=sW0cYP-_#$c3v;w)dt(=7Y+_C*?Sah=n?G*XeKuw2@&5?Mv%Kq~ZY z=Bqe3IS07X`t0SMx*$_ykx2{|`ujGnYW9pMAV|HY2wmVL#BC0Lj|*3HjL;~HWoHYI zH`e);vM(n$bpUIHOFI})YelyE+E_l3x zXr^q<=@h!I_?#zFk9Zo4P5@CQ-=GT6=8>;2+wdNB{~PMn9x%-oLchbf!FSJDx7Rb8 z=FRGgn@m(m!sJR-#d2Q_u~3*@y4QbD^?9i~6uXJVd{-}7ML~UwDzvYb8?xA9z;<%85EYoW(@GpQeUJa{ zX&t^lhX9xwIT{SMjW;F0$$;Gys`yzARTT$r(oNvq6!U{6c7F{G&b&Jm6g1kiCDHZr zb&0Zpq9l%)g|Zg8Wh1aSp}FKI3b55$P})3r0@^x+L^L6pMjshR9}S)aQWERa(9ZzE zLU92+w1+xkrMLuJ2a$3Y!-1~Pywde@2<{joFljJk7JB94TlcF|vudrm$+QnqyjR^j zVbxmjf;^r)>D$4^;7hMa{FR)*<*A4%G50P$@LffXk?BV%F>k$I$*=O=Olh_@>3pO- z`^XS$a8ru~&Rwa=zRAH0{ik**Zu7QKa=h;+>N@{WVe*jDHFqNEN-6x`;ql67gLmtd z+Yp)FhW=EY=qN@18}8D(MxB_S8n2BV-szJE3e>KxDBqx^tIEYucd|KQr^A_4qeX}! zDoZc~M2W`+ScK#xPFUCvtu<=>;j+F*E_O~a%*dVz#`*|FS>$9^ErSj+0*oi2M8595s8-O0N9e-uLpC z?uh zV2nh4IcPC@sq{c|v9M3H#BwzWd^9Nj9gQs8jjz)?P-oFd2}Hzq`4xnld^~#FD$l1( z{FS|TeXV5@(%#yUjVPfP;4QQQMvg;rmars0fSirFx(oT+hleDwy&O}owDPPTYv8J% z%$}7fe|B4X^nY}x+sa8oD9!qp*itRipYh(j6*rj(0k>c&yNBX??&{#JcgA6H z=?<#!?W?HT)H+D+XbH|D_yM7O!_QO!(TGO!Kb~Ta5}dIp3%$!cw$&DPH5S9VyD}1{ zrb=!*#$ZYn9%9|cpD4~L;HYY*b{t>Yk!N+DBwn*ZjZTW51WJ&(R`L}V_ zPi-yy(AX|i|0T4fBi|%@KW$GUCj{~>F|7JATXbXnxZy5q_V}!poFH2^7*|(l@!*x@ zKaPyO-Wn5$adl5ql&o+11|VsoSs}IEbEsEQ$$7SQvl6v)<%C#_iNTGcV)h}tR#~S^ z=pVbLIxF0gz2bK!AnX(0g?h?O^v7e7wq=_FL&N9qk@ih?gMmjZvaa89&M{RXnA>FT zn6=KC_1Hcv`?+<)J)5;&2LyZ@%}+ zoT}sMi$xO6gZH~q^6-PBq`$JLj87T5a}g&E)`SmEsEZBM=sh@Z8>}nPyA$U@=nvaW zJXoX&xPx;!UPrYDx)| ztU(%+=2baOkX@5Z6QMoiZ2m`HBb^q}L4tInRxMbvyBdwBMqpb+8^bZH55diGXyE}G;rw@)#cttF}iQ` z8B{qhkDf=ZPM9ops8?nV)*K?YoU(YCS?J^9tL&*!Wq1ky$!Up7c9upbo{nj?9c#Vj zlntJt*Dpxl2EXHv)BKTWZf_>zfdZ|MLM%K|NBpZF$PmowkaLhAcRjVsS;8~>1c*!9 z>bhKuP!{If8;C1Yr#yaW#sfl}<7Uo>HG>!Ka%GA?f1JvG6;G8kttWBaqzN8iKnYA69rBnSLAQqIhi2xC*?JvolT(R|KjBtAaOVS0&@jW23&qQ&ztojX9rLxZqg zqg(Zb4OGMvAK^2~F8!9YJa}GJM9}9-qGMR{B)?#*tjG2t%ut};Pbb8^mb0w=JoPOA zwf;~Z9D;xaQCiX{140;RKt&xR$M(?fv8yIcBeMrjLI^5!fnw)x&qQD_r8M`Z6%^w^#EAnR^%a|C%TTe*g zkUO-V+xnw?iYo9O$wyyGy96Az;{9)KJ;24+Z59a>pOhO?pJ;~0S7#@O zmH5c>o@T)gqS1^NUbi&=XmmkHy0WXA>G(Pu%H1tQ2%np~u6C$veYG=dKc=@O$z??z7?(O7A@W)XFYZRP!6|Hk{0*ztG zrIN(86t(L7;0dWj^ZlM|9@ilMv}|3vxOdvq-%xRM$Uo6d=dEI!$%5n$E(>oe{G2Ju zs)ofEK%Yn-5V)pJT00uY9SVL9d$#>(Y|Kr+SbOO5{$&f|87JuP4Q6TkM*?WfvK6;v zg%7Z%gDWqD=zgmA-2@m6FGziZ7*>=5qnYx zK2=gHU8X1O%VIA>J6$#BoAY*yG^?;De`qV}6u$d>Tqu-WYjd2oA!F62lcX%6QVWKO zw!U$44R*%kAz3 zPsvhTCbn9tn8x~SmaQU<4ZHlAU*xuS!r#mujX|@9=pfeRxu`7L<3spM<3Ij_XHYX$ z@hMnEB>XXRZueN@&~@gI|LNCBei>SrBkc5K%Qn;(eB2G?aS+eDNIm3qdpFW$bx33IFA8o~Es+o z4wLV@^q!?;)J7_Gf=c9!GT{Kn11h2%ZTY*!Yw`8A(`oTlkLe!p#HpYQc$OG7)Qik$X7ZKwvL_}@ z=FN{z*I2uU&mEW^-}_wCj{N6hLl4lLy1L*1CL^v#(;Gp(>08spO56PQv= z;QwZ4jx(P{_dtL7wFMp&fWXtJ-6YA0v#Iihn!LFQx7t_inQo5{sLrFrjFwPZNALrP z0pkqIz|pJC{IQUbXVOe9%w5aRLZrWHUC(sm4mKQiIXR;DsP@+sbAZ$EG8lTlleITI z*6w0ok-eg*r2C@%5AVxE?@-G0FX1|s2KbVp|5TvrFx^huAz;KLW)>AAq;FD2kMcX! z-uh`F)Xhdgb+T3eU{1Sz3PeDS2>g}}VaM}lgPHb`^})Kcz~~t8p`pVqW(&Y?{B5kx z_;D*1GEC|pD`A-i64tYb$T##SSc9pVzGnK&#^mb8hwZLV1-MWB%hT~H;7Dgp(97*x z4cgnfHel~`aDpZpLfGKLL5mD;YIU=JBv!>~-M!eyy8OtC=kIxcKmTyXDIH#j?NoU` z1SCq=ryuKMtn8zdSF1|qZaoq3)L=4Nlb&Y z&=OmX0G>lsv|^C1E|4ldf>Sn zNv*7RLmN*QNAr$^cXg}^Pwh@_@}R#Qo9(O))OTl`-pSCWaBt>%NImfoX@*4F<)IQ4 zd_z7zik>Wq`2JtI$8PV2)R_Bp6O7V4InVcsF( zLVE^2BTqa)-GZ2aJhePuBL zzm6MuRiTx-p?Z5ZofiEzOW(8*M_rin1sv#5S*+U%NS^AKDs7eqvZ$6)As0%eyK$j_(l@7h2vuc zA8BHN)`V}d$sxI%3enzOwGY|vO=!?3O_=Dvhib)!X_EDzD8{|}jB^FHGneqnKH~G> zc{&p%1a`o;Pd_G7EjZ2w+;SW8JoGmwI$G3^@8leoHVO#xkDi4PofG7(#}YzE9iq~& zHF1I=>zaFzc=AG;5xM7vbL{sujR!#cHfk)eoq$e{Bdiu;q_EL<^Hh1i8=+Cl2iP9c z;oAb`fw>_kFRPK&(Z=fzx-#WD@a(p3e)rzVL$8TAm5?)CEOA_`Y$9#pYAJXIB7Kx*}J7peXi_vE4X0* zA8B3fX-^(aHPB|2@rEFTwvk@S!C%~Qy&1mr!0E|B z{bC{KXo0{<*-1TW9551yKYEf5q0~!o{h8w?frsXTur~2^1mN6SGO`_=bm{ckv1W;D z^r-Q65Ku#-Yrtj8#s^&%zxgn}t~?B#Wk#)Xp3Rw(u~Ah9dueGS4V4^*np3+CJ(qq! z)?#NDq+SVzsW#!;2Avw8uB_?1^Pe4z;qzx4oLr1dnFfhHl0(r8Fx{bjs$E=@k4;Ri z=R&|Ny56(UjJ)oSrI~yDr0wlXJNmdIQo!MHr81%>*#%V-mZD3-xf#hq|6m7z)b4d_ zj|$uB&i5Ib>ZjYPH#*U3gzL93Zo&6hjx#Ng%!`<>p%pqC2@Nm?P49y(WFMCNyYEV( zsCo?Pf29Sby9?$MtBTNfF?v|>QJJhYoadR3yQwa|G>`D4ZV2rpbUfX=5Ev1td**Ab zC1ZIBuDt)^RfaCz6fzdUnBf6;#Is7VD<0*|{s!=#>^F2W8!D9sXJ@^|5Org^{u*1l zWzk=ssCKE9U=<=dHNvHzPp7!t2tgeVuSrzYY4!T6x44W~i^H{&ckl_Kr!EdYWmN-; zGPZ|h3)dY~1Q8ItyXQnJZ$Xzco5MM4?k<3bc00Z5q~n-BA@6L}r)3!W_Uz(PVWmv> z(&40Q_sciZ1zj)0#SMi)pVThLTq)l}$)ByN5Z;whn$d(!M}>>{ez(SQb2+EP%_p&R zzctBn!c)u}taAUlx-HVS&w+Aqyx#Bw`d=NxWUE{EphCY56gdR;+%YgQ%WByBAHwQI zwV5Ky$SPy{v<6p|vMGFAuiGtmZG=o(m8@vA69<5f0=nj%1$8!azn%U71qtl-BQq6v z9jZ!t)PN;TaT{S?)jzA^K8qQkg6BhdpTVYz)T>PADi|rDQ>8sP4Xn?~dk_ogUzNT|z>l9)Y=ivh}e_Q}nc%;;ldK z)tNfB&9O8bca6hmbgeLZtxa&~#fp$$U$0=Z4Br5os!uug)vhhH zP$mAL`gh99Q<%6z7S)ZB%{cO%Jb@^{&V2&pZP@Za%DF807vhY3@Y19z%O-kKU?qDu zkfP%pc9fo4UPb+EUE10w;j{=s@(46qxW@`}Y&9`^eZt-7UoX#6=eW4qJv?r=qi5+8 zq$Bj!_r8wTe>3jzs(VyzN7i}<5Wz*M20#YK=FT-Glboh4 z`ay3VsT0%8gRth@+U4NALf?RDKH{rYZk>GVpgbENU_3~ZH90D&+WYT7OiR)W&i>5n zdYH~O%}h(1z7~)o*=iWdpPA`BU~qWoqdI&$>H=!EF$5y*GR@pQGdYa%34xHuEHQt^ zpbanT>9Yj^vl=4StK1kkO1ybn8xA>SMT4y=<1TAQDFtEFy!bfkc2~KD0Xx;g*=}$9 zFvRZ$#vA1^+iK&}h|lQl04W1z91>kBC@%QdXW%y}<`zE@3rK7@^h?dG$;uji?Gomq zZ3O_R1r2IbsD}MdZ2pCxU2l4Vn*F>a4M^nGnf44xzI(813+9JhNpZO?HbV%*&!O#Noq#SvR5|+YDovwRUcaEio{= zV3)&3GAyFzqWZ)cEKMs_FgAzA0!7`5nj+shjNGsdI{JTxJHhB*7CZCYA?cL?RV z-PWH@4t~tP3M8wY&|8cLTZ&Jt`Zc{!cPVF2j(9W7IqKp(*rElR)D$UjwF~@j{Qr4W zT!gM#79)3d(0V5jDavj~X?^A;>e}HGd{J9tYrt%tX^CQ>-)j4pn68H_JvW4|8(djv9N3%SLMhJSMv zy6;oC^pqGdCnrN@GBK%Y^o_GilX7{zRI!k&hM~;bko1xlCG-xpnzD=Vr3k6Ha(1fy zAR)L-+$YOwQP_b_mQG)j?ek4y;6}Y;*$qVX+nIg-(Omj|^I- zm*s!&SJrAnmRU(pTKYtZq0{Mf^VJ6j2!htfGgo>P49#O5c~va_6+@|W0`Bb%Ln42h zOOi?RpML=6x{^GKT%lDQAR@P_MA|u&=L;@v9hM{;j#!P(dbDv9$dPIqDeB3j2lHC2 zOi0%(nsIH@KmRv6`9Lr@y`aC3;A%-<(h%384WsT*A|1S5d06_xL#)pNtmKzpIHe54 zi7-!aeO1My|JS>yxZ717z&xis-_IGYc}8`x6iP_^qn*ut!2i{6)82|}A87Mwbd6Z@ z1>JS_0ayiXm7dtg&lL9036+*DK4;Dht2dVD-jRK#+ocKGUi%(uqw(u-7FYst%(@J= zF&E2KGX!PGYE*42#8aEsut6%oI_8R;4uJY*39rZbY<5&oscS~-eQfVn)6*j7C(wVl zK-CFyC{aYcGG0K%I=$pm%f$&2xVMiBaK^gB&^`M!kbE_JFwA5OnM8Rt`*Wgi`D$aR zh=8u_!v7q_*;BK|id=rb^BvhA3?9OEo%z!-z-;A8vJbjhaLFs)MF|AHVe``AKgCZ3 z?l0aY2al!{L_#L-$0>e=6D&cv)gKewT}4M-1F90v)ifW`Rwo-W-|&}GgI*W=6sbDd zr5gch@Nwjm#n(5^He@@55)T~XFZkf4Lhi^;G(1In1~^9I6Y5%t?iDDP_&5z)z0Ig_ z1MinopnX>`=}1M0Z4$0Y;#IONqOb%HDk8)}QptLqXL8ALnKtMYDb$hAeug1AL*LhP zkF99?cJPLfI{JnWv6+n&waO+zZH;Kvm`_N`rjBDItT~8g7a@nG_hbv#^2BVH^f%+z zhQNM>%+EbAwQc73@NP{+Sk+gNtK?GEz?O`y1%E3igo;gJ$t92%r~IPq9o;`qWX|1> z-V!XY3oz{D+`9Y7yr!o%_Mn-{sth@l4En1i`0WN)pU@-#Z@od}#CM;g_J zIdqzb#RRcxOiKzWXUM6xl@FoOKJnHL`{oDlW&h{!sMg6g8h;Z5*-JlH?^+xI;Iq>f zHUcX8?0ZLsD;$8DzSZzQe03M&W+!`AD-$tN8s9NN6T!x=aJEg?gl;7<1V|5Xae34s zP8O5>K7svr>mTorM=;S`#Qb$ zS6A4l%0H=bnGPk?F69gDS^ZljLZUEuMgU=H!HTlxU??9V2?cFwf-(WV0@d;59gim* z{UwVF(p4Y<7_mU$SXRSw0u6@#7uF1(#`B;=Noaf;n+CU%z z8_$EV^&1|oomO{iaEWpOi7|uRr~70k`!JM_{tq&1jRXS^m16<60IsDgE1C3nKgdaw zNVXOq%FsZJEVF#KND2@YEfZPqkJFCCGjPkxvpED7N{+a;4%D4qMMClW*KYAGS6Ai# zB#B9oSxU4e7c-JEiD<({*HGQiHF^kF(H1Y|w_aMZEKfo~ECn}3w{c`Km zG9P6v_9H}g3VR{#Y(0=ZJvgH9T_|ofkl0)PNaj-7%_hqbH^ToKQ*}K3@-f@$&0TYc z1yFRs_dJ>s*t86;3?CjGhbu+oeXts8y+!eqOb8USv$-YGH9L~dILoJpgcQeBpT-Z+ zuTQA#pJFDtCOoEvM_cZ@d(D_QyI{SD1AZawdV7b$0}qo z91BY5p)?x;VYO-uIMzm?V^giY(>2{6zNw7@>k5F;W_;$v!EPX{#@mrAM+OHaRz8HF zJkhG}-F8z|)ct3R#4%ku&=ppoP=)FBgdO`QT{s6JMW? zNObsV%_fc1(E8VpthcVO3Hn9y9Sj!S>|fl^STjA}b9Ka6k`3(E5sgHQ4bK29NIgy{ zE(Oc>9)UIQp0N-a`|b=qo-`9F6JhE6+9$K|b2k?Lh`BukMn%PdE z0`|$&X4x(^sU&wYK^OXZ`8B!8H8$(9kT$-7$DaML!Y9k`Hm~g6C948TGF$*#tIO0u zf8&0BX3fvwz5lD!_bZvHp2vPmAaj(5n>;NK;aPPY?jX(do6mXN<>~}||Dq2ijGD!+ zLbn>I+N#qfndEX8r(Vr{GOm0ixYLW6E|tZ2gM51v?#H#f-K{J%?bCB+E9+bYDDR0a zFoYI@_JndMk{A`zODdNZ|8-1)d-74D$4{mHlZl!`{G`+Z{GW5XiqN+>@FTR3o&Pu) z`omuK?U}o*FSt5a-1QO3k z)4!TOSQX)J&qU0Sc0vV$ZR0E=<30tE;Y%Iv&v%vS?PZqQJ`OW;4E(=#MjXA+PIJ1J zugNdWGpriOGsOe1Bd8k8KoxaGplP`OR93SB+_Ar-Ek48?S7rj)yUb zf9ma!Z#6A*9*Xx@=>_)xr|8_{nSS3t{*9s&DmkAjpNK+;Ic-9ygi6lmbIc*cFo#mk zr%H0RBsrgRW+Uh0l*63oJcrq^+00HqzyI#X`_KFF{^Po@>v}z(PndGE|5IT0y||RK z^Mq1coRIOKgsDk&#*X@Lz113w58B(h!)NUNxlrQ@fMgK&&QgwAz`l7gNR}{_JJx~} z4L_nQlsljY{3Cz_-{FLg)1lDP0D6S3WgL0d^xwW~JKgezT}tRfr%ZzCz6o{Fyf%(| z5{|B@ECeXV8xP&EKogCIE1I?aor|v{oOkO2FA0g68mBq& z7yHJHi}HG)rA%}304RnN*2+sE7t zap#@s{4q6BF-anY@M?-Ikq?(Q(^4$Lw}6XL0S10g6^<$KbN6MQ&E3p*za5i z_qyvapUc*N!auU*Yz;Cj4m9LLX(*$Jw#A#d)SjHp%?rh4r~wi0tMr^Bx2fil)x3(u zA^L6We&2QU&B#N!7+vo9#r^E|md!+4f(L&Nct2}v)v?uW80?vw)m!{vvlN=1-?niC z%ie_qA@|-aEpWqnce{azd8OTzx)wHAZ%(&TgDoMX`E^xk2&}uF6f`X=hdR{^LB6lv5! zRj}6V$Mkdyc&Q(aN6MYbxf0EpTo8QYRO9LOYCe~}-!=Fk!}R5oZ^qA+Sw=)MZ>SsH zcepkiauP`dmAT~n2R^LqAV*r2kFv?vy(;TgNnPTYZfiT$PFW%u3zbb=sOzclmcF&@ zQCxPZT^dppLe5&vwr>NMy-Bv-!<7{C8NpA-ogXAlU#+a$(} zDRod@494~UKa)bq_r{RBIKe!z+>ZJ6fRZ!Ufxm4ZU1no`N7R#X!>DVjV}>H6;SV%x za^m7;vnLw${o!bAdI-X63>*8IkGbW27B=QShzDXQ|eVO0nlMfMR zaw2t%_uYwEUl&iYNTLU;fW2x2>d2njaYUX;o${d{W&7LiRU-N$yf#Z0Zei5^DH_ph z|4XgeIc-PTJ$Dx^{Ldrp@*_}HqZWLqUG4yC&FI6Ma8)))0FT+L*PN=famY7---Kf~lKbsPr%$hR*H@=^*T0x&?MBl4#~mbUWg`Ur41CBDt8??3 z;j$-N%B8!DHnT+iRePqR{hr`v+$w5rS-OB3&mGwHMr-A zufTFPg8PqbOoT40_a?ye>r*i9+L|{fFoo!)v-b=N-Ql16YlH21b+q31bBsmEaoItNEo=qTNv%_>j8=hm)@e2r9j;S*{xM*E$J^j_< z09Z90P;9YKhYUftIE%2M!7H-Ol4F<3F$0DREr)4G!H7?5StZC2=UBC-v>G{ zfQZCeR(xDsnLK8;lyOjDD2!he3LKd3Ro(OGa4=Q{S}lBNLA(>!743YN>d2b{Y&wT} z2sbwByx+uHQMi{sq$)SKw|#BXll?vWp0Jh1_%-0dHcteC-gG+gO_Zl{!ktooF|;W z#opj{mC^W&8*IdtA1=02>MOXQ0HXF@nOI(q@b3=lgxsT%F9x2$miJQklI0J1-~!Hn zFQCH{RHphk=8ZxuEsdSE+q*Q)n>m}cwr8$<5Kx<1Te@55erIjwh}_{m&%37ROpU9p z*NY*1uv(wZp$ae?q}im4^P_BN2Zv0yjt#a=X2qCVo-0-Dt^uQ@zRID{^%nbY{gw?~ zAL}{KX&td-!Dk|u+Rfjz+-_*cKPH-d6=zs?yj&Cy_^n54yCyQ}FqZ0d6GOT=0LK3P z=cj-MLAy&TfM0bSg*=q)zjkxpcajBnAuF16PRY@;<$b0T0f6D&zKGoz|EuRFN zznQW-Y<+`i2XV0pK8Jaz)^vyBu_1-m6!{qQbKbji;cF^#pO)Z%2e)Tl>j z48Ol)vT6`lCH66CxU;aDbB2qb56W#^@IjVEbd=vFFZf$~n>n=MuUOk#z`7uBX)uVth zaeGTqFIj*Cv;TI#q8V;*{r58xc!@iCLjh*g=9)i}7Cpg#hx{j>wkO|rl0)NBw-4OP z&p+k~?nQ5vxZA}BJAh1R)V!sYwzD1GXr^Q+Mq&#{7jkWwyG&SLVM^i&dgMFGzhDV4 zka47=HwB-Qc#LOH2A9L;O3k54WfBfXp6z#41@ncNJ;2%rHM;Rithl{YH&a#roJ1_c zGi(bV++cs|IrYFFSE%b`2s9(!!ELQU;^^%=Dcf=ZXVl}@%&O!- zLJ^Tw#6>&nUnmGMr`(>z1>Ky7%5=-OvqhD;ND!elh2G>E2srd zvMv}WfM^51U6_*LL$0gsvq*J1%aHgRj$3nYB6tV+!d3vON@*FXso!Dg#=5JwSCQfY7Iheh)t_){`!aur0h zCgC+{^B}`7YSaEA8e&04=4&b{a<{fm8ctAx-GN^()V=j|H|xy&f;Z1ho%{qzI{v^) zT4EDLjk}A4y9({p^{GhKi78Y%bJK5w-)>t7-8pP<-;h?zYlen=hn_if zoW*{yefH1%X3YK9OB7EIn=g*buEsN(1;@7+#6Dxl#?BWry)L*YdwO3xN?ryK-@+@IS9ZaTtbM0%IaUENYXy47@&}80s#HSmQt?V#_L+%$ z{qVC@aU3(AHGqZLk#k0MBgVzDB%R?3Y1H2Dx3$J2(xTXl*Vi#A z_F=JOZDFwh_+Wh)8M{x|TB{hDQa({Rq^^d8#&Co_-%N(sfzS>U7||VVXjh0{p7cEy zq{S#*Nr5F%ed#eUY6L5co6go3t2=<&0mMBdR^j*TX)y&Pvs?J<0YZNxGa0G$*h~FO zs-sP}#1 zXeCcx3>veFVl}!BKnvofPjxU=Nm`6EM3i|9?z3#6dZf9stpd6)dx;af`)mv+ z0R8yR`-AAolfh8?jStPWQZ)_VaL>l{?7`>a0Q~;p+X@BwiyHd5KDCPDV*A3o?koVk ze{X(WOPo*K*jeT(8j+(MxC#4}3{^?uUe4MUqdknRa{tD=$~~1xg%j*|>a9l$8ThWC zBpdIcC&0z-?@!*(&pN0}^UX7zXHu3PY2I1>SGOrPbK~Yjywz(b?)3fIBq5piD@>Mq zC;hE}q~Mw5H=mgio?h!ycZ~4&S7`yyM*5{frFIqHzbI_}+!y%>&9ynck@~Abr%I?< zq<=aBTjD$Kxi4;V5~3{g9(>ASQ;|Ev#|}MO%B?4}><-b>Z&sbX$Ghu(s6_Q-%ERm! zuI)a)?FmwR{nmiB@GEGnL%WA)zt9_l#?Lxwfss8z8x?C|i`N2TXVUA)_!@W#`%#l3 z^eR|Qq$Qvg;u!hEZv2%do@-au4Qi9k;hRN|wXhoLu1o1Vm2{1L-u(d?RXs}AmSX{N z@rTuodn{MCm}&s_4Bi0OBZz3J8ZrwKpJ$KQGrth--IG%LI$wM5Rp-Z%AmCfTNCRtA zMucm3{{pe-z9VVXoZc!#Ex{g&ki@!wAW{L4K5z7bAXdB2CzGG;itA7mJ|Bs?ksclorF&U zZ|~c(h}DcZN8GKWL^XSw;LrtgxvJDU$)H`aGKUFZZ)>AZVaAsqGrbt;N`YqshBbPW z>z)%><(+FGv9`IqG~Qac_)SD~l|dBa@T(*=tFY)m;LQ%S_IT3#Nbqv^!iQHE3u zs70pe@+B{R=dk|AAmtUs%O6QLTs0pMz&M7%OenEI(dyBj4yXlpiF-q-?*Dv0!BE}NVM|Vi zr>5T0z|L5)zS<&n;m7_aXQ2to0fHwB4@AvJ;|gwI);Ah`#4S9v;RPjV28by}TNY;+59bs0eqMy`3;KQ3?;xRu7=sy%U4vCiZh~VjL()~y> zx2ixKR{_`aF=n?J5^>o13B27Da6Lc$;NGs)fM~V$NYQ2YczJ;QjU~T)*&iBZoMR@d zt07kGmc;oGwfV(j5u`~KK@+H9Z0$q=b4l;cXOo>OBNFIiie&6;Fy_)+F+`D)O;a#zZK%yZU$65X9`^hIhlLO73e?IyMG&B`b{o2wQDpfOqNt@yE8 zh>g{W_tDoEk{;pa6(Tbe=0@blt9|}J`ga(QlLT%L@`b<2O-7lJHv=^hff>rC-)&C{ ziMq9ZA*KK>r7t6}3iS^fyY!B29HDo)o+tRe^guSIWFq2tb=1X#$1JE#@Te`7T5(C%L-3#Pg$i-Iiz=#*Ub8a@LZi zf-heHsi?>^u`*;DmR38vNJz9A5oxEaVFD?S!cTzLrn> z#I;?7HSG2Pj=UN9+=PaH{yIWOa>zLUd4d4;AnZ2eR9^GQNbqp8FSuowb7l8OBnMgK z)fw=9FCl**d_h)#kXAUJU2YdR61`xp!POA3`Pb4Z=jU9G&!+CVux}9tlr&0G^z3(D zw=#<@h$wu2%-pU}0t7FfqNVvKytS1#6ktcs3|}cM62Z8O(v#(3g~9RG;i&m<$2%LI zE-VrCa|40h^4Cwg>t-~MpXQsb-XRu>LGJTzNWYbpW8Qan-rM*qiu@@5s8E9s@eY=b zRlx&#yreZRK9*MSc@2k@EUUjHLF zJHO+$l}f#}YW`%Ed_Ve~&>c|B@a|l!oiw9rX0*+s+y8>SAIi9OE>WjPSjDf}t!dS_ zwd?8Fkl=xQ&&0_|+bTiglDy)eAwiJNfFH7j=DO4D?qm!r_yb5n*oF&~w|UcdrK*z) z7l@(wUvfV~6@)--o%D;59w;5Y(CtZ|hqUrU3xxyQr(4(i^V?pIWr_E_{t;qWO?toO zxuD~syAS(AF8{XJX5@8oSux?>E2w;;hK5;4Si*oaEujMQL^33p8|e|o!e?La0hOv@7UlLo9c48HaN|~%vH;KOw$7Tg4;=N zh!sv$mb>xPXcavUw`eE#y($x!GmLuIn30v>uA!!oTB(!2(#KHh**%1;O1<{A>_cZH zP>tsC-`#X6ehp%;hz3d=xx--)RlZ?R_~y7`eVec2g9!OooR+=4!z~P)13e9mvfs;a zgTJMxxzVTiJjT9PMr=Bz7jXsRyU(y+JAR-8PZkD`3Xca3(AF&i{>`oR(?5lda$`w7 zqm29;T)J_k!;HtGu5v-6{*jeg&^L}9*SRzC>gV+Arz^lENAs2CV)tX@LQ`5K$NHBL zV(R>SD4OGsusa|8Lo>!3U!RmGtiP4m)m*}~N}v^Mu5*#YoefGwtXj>F}xVhUg7t(|=fKxxZjb!OO1@8~k?vKnMS{`qUD>1}Wkh z{3$U@a>(P28c>B@R{f=o{AU6BY*d(INno}xCd4rR8VZ|!5)1f@a(EiC1q^$&I&l}p z^5(!bS+mTr>g0Y8*%m966l03KM zSlD4R02!zGSQUEbPstI@k*K}SxvK`2<~&6fu;JH|HgrUf(bm>6Pfp}>=Ax0xKYpCp z-bd+~3ylobG|K?0&5^W@8e(uPIORdgy8wPaeffSp*SuA6B{j4xIS}rcEKFrr-kdpd zzr|PXg48>|kQgDUE~#bys`7HXd1#;0GX*=qxlN3N)#GhZ+M=J7vx&ep246LyT*TaHYHz%;Cb?34 zzWkSrqZlu{aHKx|_wA)E4mg?l$oHo&_C2uUMZ2x<)?^ht)jQ*uUOfHP&MwWQh58B= z#8iJT`AhpZ_F8+ua4uoLw}Oln*qRk1m$`Ex&o@kId$F(^Y_-y9`(gCZ6AJF&;JPZt zv?g`Z=gv@cxS6cy09t_J+~eDFp4R`>clm2fvOed>77Hge9q#E)DfTk;Q5MKLh#8=) z$6?t$U(*f#d;A_f%-SzF6=+XD$GQ8Q4$utRQWJkLSUkB*eED>{0c;xo>l^9!s1kNQ zUd$grws;4J|F)k`>819mVAk&x%4F0t0w0F~4y0JnJl;hEko5RCQDJ}nkmc#imjj9i z@RTOnI+fC)xqigLH!Z0eFh&2o*GLW-B<)Wxz6|))rTkr_pL{XM0~u5b$+9+AzwHPV zUX9Ocr>AS#&YWc*z7zAS&-x0LceXhtP(pTSoNiHp&=d0>M_co$_WMb2_kP4#qV@_h zgs8K7t4cj?{)axZ@oXP0|`XI%9pgM7!_rqp>5B3amPi=Yk2eaTxTiF)k*}|tl zNgi4VSof0KoVpEIl%P#YTKz+kEXio02lYT~gD?Z>Z&FiXq5LS9D0-MP7#)Ujd)cJz zwaccOE^XPUFIYHtU;k$LE;T`GXenT3zOIhjKiX$>-|@w1rB1ba1^W_9+TZ~hOKxIs zzL)6Ts6y;w>ArbIR?yB`=g#j{Q9guvTo=4o5PSYEx&!EcvFgMv&)GT!Kb` z7X8EFczS^6?#hD!YgNTg$+Hscb=F?LeYywi{w;i*$>y@Iw4dQL=t*aj3oHt&Du}>+ zhXZI{Shum^$Kdk~APw`J{xV@F@9{U^ZC-^Te?AY}J!|2fQx+Hg^nE}ahBeSkCn#6Z z2S2Fpc#COM4kgx$djF7lL66%J9|CKhP=5q813vtS?# zb5-%~n@l$vgOfdr{7O{a*z5Hh_NdtF7#+I?ZMsYis&cjbLFV9l_bWj9k9zmkYRxLP zuOH@iVb=n_$?GO}4IXuB1<7MrpKTQ;1TS~_XkP|3O%3riS*NkiH)N9*Gpf>rlA;!$ z=B@s=dtKIH_0{zdO2b{)`g7>Alt<`T8MgGVxKcj7)YvMjF7v0WYB+Md zRc_&I=a4z-y|eb~(8x_TXl2xF+H@&!A-@z9heyo-J{=i~UC5^@`L}C{a!rwnf!nvH zXEe4-`5Xc)-ne(-Rx`KPFjhH2eaPcx_=l57i8&p;qk`ES#r+Qn3|@hp?2Slygrk@@ zL~SVd8DB-LqaC?#Gc^NQU$m>8!Y)v&&K|rpX@QmUFX#-~Cp~M4P)fBGu;pImGbvV# zH9u%WgcqMoK=|2fQrEo4Yo$~|y}L1v*#UnCQv2k#XEkQNjGjW0U06Uum3~R?hNO_m z4ZSr(z@+!rXg4p$4air(;o1ppw4R^)W!Tr}0LY>$n%YFO$Nq0pE4AIp-cs>v{clj* ziY$xUi0*zdB6!)sYndJPUC*;E7HL%tW2`}nH+a$NY`?}=$W`gqwH!V!n-?zDs?Lq0 z8NUGK5xL{`74H%qUZuow6DFEeo!R1#>v;Ex0F?wYXm)UBp4`3cFk6*1t!h3IdVjpsa?Cu(?mH9>?RX z`k^aqd9-JJ8DZImqi+8l{xI6oS^OO7^Ee5zk!wSss=0Z}@K(UBi7gyWKeT1)o_~A*`={mLLnO^u=teINC{9CrAhU zqQGoxf*e@($tklj?b7rQgOy;;oFE541MWPK9K1mL(Uy|ZoXKW zUs6EEzcBdNa811|1UI*l_{W_c{aGmu?}fb|sl8Y}HFpL2Ez(Bj|!;u!LUlAXVm%f+8{1pw%*3alTMmm9}cMY{_i9@O!fQS zyvD8~TkWOAQL)|VnTIn08<+{T$}c}C^p)D9o0D9t_XaFBG3yHr$ke)^-%6Ig&AN*R zuc$&+6?b=s(9p@XVUb2*WSzh9wpvshKOy=EW8>&;HeUOo#t7TCzvhcvili0AlXrEhj>~GuLY7@hs1hFVluzi8zKw^5w}G|3DsMz@>+PBUnc${g^*y+P zU~@MogA)nLX0kicG|*sEGu~slEZ@`kuAjgN#bs-tPUnUKdMP+?4a+Sd^rZqrsD`&LB5CE59}DJeUa%j9H&i;LA;YRS~tuN~YQ z!Hm#-ft}FxJPb>w4_AFgtL*_g&UlMlJ~ zOTS+oPY%PUFBxyNH#07G*r|~sD(s)}&GZ}pU`I?52cM_@cUo-9m%rQ>0@@9!mR!Ai z#(b?WF-u!RX|k~Kri}-E0oeG7`$L z^gY9jAzyD}y>NdS&k?=;OE$NNOx=#4m$Lu+;e%iX>sF%86_b>bw0OsZI@M7X%-X6` zvzvG?T|ANrkGVYX8}vAQS8Lnu2gemeM#NX@Jr~4TuMd`BUD+35dh7lOokW zuf`EJjMe?wDo$;5!K2Y20=u$sr)0_xiz%CF&++YyQFt5KQfmN=!r3kS+c zj*;z|Yd5j`Pd=&3gL>SBrk!FC<-&i%TV83LW$xX>SlHE~3aHvLZO4V51VRlF{N^>c zd-O^lq*zxr@Yx;x7iLZu?Z1#!N1GQ+3Tl8=4l#aoJn)a6;hZwGQO5!uvVVZ?y~uG~ z;t10Z<0JjY*lnBc>Tg-G!5wrCf`S)gRPt?+YWu2>{I?d~*q~b=fik_yv7@QYJu-Xq z)H^y*z7cPPwD0%777L#mP4Tm=IWuMG{|P_)+ac#K)~Bgst3+1Z)Ex`vqRi)bE*{_b znrLz`)TR?zf1dJ^qFM{Cgw3-csQ)%oomEk{kX4qj+}9P`f$xq3o(hd^B-`d%IYc^f zEn*`Ze=J>cN37bpbUbi6$Ryi@W#KOc)VCV?2raG0)2wmz*)@C?OVxJqqwyib^kbsM zG=VSpoV|n_E%pf5-||GW%7S(4Q(G_NhwtiU$%HA)P=l zH~%vv9}&jv1=J3PIO(;jl=B`2qeS87eM{_KlLqP!4JnUQQ4ipOTS%>M&yBw>nhXW4 zLKBQS;WSzJBoDU#DFMkn)N^$M4OqFc|>G%=oI;+naG85s|a*w^kXd0)MAye^}g$~ZzV+S zKOd*lFg<~Ua7qU()77nf)`3fC8W$?`wb(Y`QXaydbuTKknHfB~FM?XWN1s>1k-?-j zsR%fL6zKWSwfP&*$L^n2F#Os;wk`T1*2IP5FMtZGQf1HuU-XE-b(4voOX(kQ?}<>tsUWVyG0*|u-(ga zlT9KKT|P;bP8Y{eE+6v`wA@>K3GPx@H{V=mK3IOA)^a4YZqc7m{c;Ehh!Y@tq+JWJ zSeJk{Db9OWHgIY7)VmlxY8uRMCM{d;k$73xQI;8e%B0q?5&@CS$?=Taaq`F1E8y38X(1ESMaY>fgObGeTvB6xOX zSTatDJ_->Mo8RVyoR<$j;y187Q!Rqd$fEo}RRqkC=#{J!HdRr;`~v|yZQI0!Ct1Z3 z6C!uZZJ$3v-#rzxXaM;PAH2-*k_xcC&9{8zd#b;OSYt|9mRb0o*iQH8W{EcnsP4?r z7;)S(eB%gn&QEaT3`sT1)oIGn*|8iARPN|oEk0+%(I8||&byLour& z-$*gPy3Z`sSj4}dSb9ooxye2y^ygQE%6ph%GHt0K<5FZ>E#h6g3YIwdq>>=+{F$0M zXrIR8Oz~NLXW20D01czWHne!VQhJ(B-lsvv0=)G}SnB31TBI_ncPBd~C_^(Qa9o7PP39a}UdqO!hXucm&LtoXyESxHVmlj>`*`ntOpA)e{q=%NWB6 z-49@uaOpmYp!xU_YjCK35+!--U7flT<>Xmzj6(g2=7j7-Xy`Yyy? z(Ra3fVEXmr;1GM&N6oyd% z#d_-4rM;*VmS+9mgFW9m_z7Xeso2muvFE8D6u)4-HtuP`pS+!=P3cG~l6q(`EH`!S zYS>SzviG!Ujf>Yuxo^DxCJ#XZi~btL2=SN61}=R2jI-2ag!)(yUj?90r+e9cyK>iX`d^22K6 zYBa~uVF+4wu*)}w2hrjPTWV^cdu463c?U(yL-ibe~V&VUWGX~=~ z4IrwpF9&9C&L)Nx(LeI*?aZ@A{>?7_efv9gXIZDoLGftiw5pE^|68vlB?18@Xrie(w?b8|7`*u3YzGcR(#GDDfE$0NYI-lpB1(Lpkm6O8Wv;|mo)m) zq+`*#V_!6myTbwga;*2_QB2{_(o30LTr;BxdC3Z@Hs?A2r|SUEXjk|^U{&C`n%JQ@ zjzA+@2dl+D+A#7PiMmev&mNKFsuX)9h^Pcr)Ph6{7&y}q*+JmQ3S1h7un@xD+upZo27t13y>d!-R zy0qMNtKTZk{t1}bas%%DM^H!~HijwhBs*wVMlZCrM*c|bNMd|1t4x_i!Wo2A?HS<^8pB-(GyDS_j5SM7;(DLepM z#BY=)zmsYMTA1v>jWENMm!qb`0L011@EqosYWkz~_kL;ns#LMX{jrTB_emmGk6p#@ zs;lyMC(l!62ghgDUzv?b_g!-p**Pm3*=4M2_`jpCtg@fyd{P=7X!2m@=8}}|14jq% zEjHl%D%;p1nh@bCI-|Wp&_AAw&yk$pCO%K|r@{hlh^}3UKE0+}o-*8r#@HNZA5!Ur zGOog3Fh_XSH}5vHG7=T20?M(R4u73`$Wx`qR0-XzCY~$EXr-{V^8{06`)~_BvZj@ zbUW>N=r*O`6Y|J}B>U<> z(ckGi!?$3;7n{}YY;SB%6-a#bcJ_WXY3=cPg$t+sy$Y==4NF;$h$kgktc)=b$ZKv= zKcfOlKxelcB`%w*FXqs4`XsHE$F^_iakK}6*y~dS|5FSGn=_m!r<3 zU-6qA>F(S|{1qLR>GC@E1O-pbB}wYR*-EWqxdmd<-t*)LKnM%2`xjB^PMr-ow6N2%$*$L&=o8Bc(hrKwtE`GeXYb z5Bqt#RzdcZuY0H5yIg%gnLEtFNP-vJyXFYnHOJtl+~T9gzUX>tZnY|V0Rax-)W<&oqBogmG$9~ z#KJII$-J*suQ&H$e;;_+d`;k~@?iR34dc1xn?4!a&#KxF*Gd34U}sK`yTeTyTQe{K`5fGm-CQG-YQi(hg8u6diCnr{{f$64l7Lj9Au z5$|Ma^5qI|TE`8xOsvSH9=d6ipE8BUdj$HLh??_4TRlUk_W_s0B$*{asg7LxnSN+) zW13ly1$+R$E{e+TvZQ%A%9(9yuccJzfJ!T{xWoGGMs~+!_UP2yC}{&1xoCIdBR6ff zAp8qx=4*V{T`~-gdUM&D33u&F#ah=FRIxgX?Wk9FH(Q!(Uha@7O+~S^T_z;kWIC+w8;)PgLNjl&J?6B0l17?A2l`?p+k6!6JlA^5X)%&s2vT`M6d4_Ka`HLPX-*qZ_o!TRyD@O04uLC7+x_M;<%zbA*g0{rmN+Dwol9PQP%Aq6}=Crrf zKfkCE1)g4ESX(m7e`HdJM5xcZgLyWu%~Hz4^1t&r*y}w*=f>vbC0Wqe1wLOFkk{IK zUO~2)FcZdBCVtBKI7Wlv3s5>)S8HU)yTxiZCSKx(RgVFx=PF`F51$Qo`!&XgZ;p0| z&d*Uh)xM`XMH;Tp9Z2E5h4P~j^V0C>R_UHp@BXtPMpbJo?5lN?NxdQa0AbYK%F_+8 z-YP7>m{RMCH)t8A^H1prN9tz%uOd^?D3@+GnsN5c{b2gpaSan zs6xTsTtdH^ZUL?#q{bx=A$(nZ$0p>O5r|WuhrX(oU7Nd@mB~8uS?A}VGsfHvwECGs z(UbhUlNQdgNyZm(w|nzkk?|e+9S@xU94@VgYKy^+8;-!iyy4eH43t1lNmR=v%dp0u zKGE$v3O&8RlNr|(N0{N7O%e5Ev0atb4Z`-N31hz}{TI^KtRC8{V^SXb?m_;^Cj8pfV+m!)r2+P~i44T-mBV{8f8sBNSdj4jp>_P_15rrx z>-*hz_jS(R8>Op;IC8R&gK$ z_1{X>NQaC){Vb+9U4M_Y|Ksd|>+eTgDt&i!_MXlp4%^y>o(35L*%ScA@{Im45!Bkl zs!5_aBCh&myb?3Z!vAhScTp28tdR)Z7X0vVqze^2-Sk?71$tkV%lLi&B?YGow2iM8 z=|sMH@xwyzMFIbpf^xPYM3U->Jvm6^zTLCC%$7Cd*7D0@=k$i< z00QQAm176o)UJ*V)pa(vwX0kV_vWz#JO5E^vqbN6ukR69uwr0nsC1A$_k1n zSeTk#-^a#lu7bNJti?gR)f0ZAB7rVnZ*@BxFWm=f8`~}Y6OMyL%H>;?aPQW@Y~X~h z{Og{QjmP+u#Z^kiXc&#Azoe8#H>9va3rjY_9qm(7rH2_TI=Rq*`>7ac%O}BecS;Jr zlE2~Go7-=tT=m-CIny4s#@F8rXu0$5ZNDlg-6nkJ!SQ~aAQPz;T}OVoVWR(bpqrE z@GQ0V58K52wF&DM*F*LbZV>T%JMJ*?5X}m`Po7o|X=_~T-i>#a7YQ>+oV10sa+ywR zElO^x+8*;4K9*&HC52qKZO3vtPAH1SSdi<$LChd6-?rEDGkHrvk+t5rbIOD(>aI4y zJVbpwnSbOFQpd<=kqj*Uoa)@;kf2pz9vw+2WRQ~PtPeNdLPM7SJ2Te#Fd*@O*1DK& z6rqmz+tgSWi>W9qNOFX+`F~L{nZr!{WAITl_~vs|G0OcYxp&F=aKvdgI+~%bAc<#g(GkvuRz4^ z^`?d{s)jhJY(dku2G6{x{BP`AyqYn^iI%Z_w?+Equw;Z4r%v%Etf%!imz zv^L|*O-M4GziH|$4LI*!FUmgFR%0CNOWJbJ$XZ2TrN4dr!oh z_UzXiOKjI#j7m^&L5iq(?Wu`Mx$*C$u(ItLxWcw8QdSN<((KTV)E67cCPd z_Ygg~|HsgIhb8&70r*!|R<6w4D|1y&GPlB4mS(1AmV2b;$}KJgq%!x)EVq(bnWo|h z_a3-V+_-ULE}VcO`1#*?pX+_!>-=@jbFSw+_dQ6`X6NHe3+MOPcZ0G%+#3Af2^k`C z{Etp&RW2;9)|MFxw|JfV7&v3kd}fHGRXrbhTzhx#Th_(gMV5Kv50r7v`u}-WPPffT zxR6+dZ39mDLtUd^SpqZccWhJt@fXVs^>o5I5tNk0-k%1Ys(KCQ@!myur!xidTRWK& z4+y6ES}U?01CPwOW4Qu)GIQEWi#)H4e$#ak%JIQUpUg7x>TjFwP3F5hxV{2b={30i z$s|gSqZgHdet3UG2J?{Zk^wf$m{EohtwKySJ6o7{lJws}JS<&>cYjfw^s6S*`o5)b zi{IW}l7OiUY8Zs27Hyk(x|FE)Jj@nKk6uO;e@>${TK#ylpli?|9c+lQ?YiQjEuD_3Kg1qUCNY$YgSNVa-9DCP-`8 zC0qv|{8>ti)V`6?d``8ZR(|s{&N@SEyIp{FmqKcT{-oCPqv+weF{T)659*d#c&c&DI^dI{61yb=PoW zKf`CyZle>P@$t~0ZH@)>=i@zYupjy=*zzOYtmRj2if!6PeIINfuvm1^wfxQDXTqpe zaP=7|+V+$;movF!IPZbZLqp%5Kc0tubCmH$0BqD!Oc7Skzkt->*_i{=G!O}u^y zW2@ZS0ZQ+4GHvXaVk~*I9yG zav~CQAzdp!FL@y zbqY@OMWD+MZ(0MY>Uw<2MFW7WyBn&mFZ@KAQXielyQ{^vT$#wXH-N$f)-%P4ync7& zk?+JDjaU}%ennPMOJ$H%g}DoM9XCte|BSs=sQG3e(0qjArme`(W!JJVXy_qI+l_}5 z9OiH>AV?2|ThnA;yv4JK+v(LIymGs!p5CkVz5v}Hn#ta^6wV-z5>6)BPrc)S_}Vl- zF%GBD4iW!)zA10}2&gb8j@I=@`pcQm<3rB)KECTy#P4v! z6DrqES}@V%WQL}`;Zs(S(yrYvFrXOK8us*qaOwrkc-$~jbWF;>)n#3bup-(NtNiy? zl9>ha?py&oVLB4Iv9qsN!-01kDt>%@y)K9ruX1P6qBoDf>`VNroMy~+zYi$x?G2i3 ziiQ1Cpyz3V(5v4`%-d1^?DtVi))ihHDxcpERjjyo^_(MhzUr*Jhji3RF}TJQ6v9ZXa4N8nSWIBoE|jVf(jS zi>5nbd3qH-Og-qI%tK9?$4~{{Gv6PjUG&Dt%n!d)@N87|9^bwfcCD-n8g|b`p(Ng^ zP)k#Z-14_cE3Be4pJ6w7mU|;w0-PFezRm0>j_2BZ@-UjY#TMeX`u(F+4Rfx&8F{O^ z5~&2)1^OWX3VrleeQVMQ&VdOCpZ;2eZ)7&Us^Fd>;M*Iv_ow0& z4aM*FrO5efo;y0`j&Je^gNYNB-z-F0a&jxSAK?1R{G~@~bx_&D=o^3J$ZtEe-WSX4 z?zwhP>dJO$%|ARZy|E}l)1s#|WXc4+VA(4Q6-PzuGtI;&+ibi#Wr9j<*E-AxKJct! zt=*JPXm$ii7mKpPWM#H^-PLZFOf9{&XRlH9ezWzy{w}b4OA4(r@#T9`g&WJ{YZlAn zQ&YqX)Q5pP#9BMkzD&Yz?`9Y#Gn%c57s)rxJw83~x?m}kYuj?dPh)8k_P?fF3bE1r zm(808$Vq*`D|@)-bVW61!4NSwyq6y|{mz@EZWa*qAZLS^G4*))+eF&qLRT2cn8>4^ zHMfyg#a3G%Ke6G*SgDWIWY2m`9&9oM-qRbB;;p|qrt~TTti(!mnaJka%_vyN{!xKq zBI$TnDd0f@uw&>z-wt~0z^rrt#LLL%AW9KyGa|uDZMA;!@SPbdq!cXCB@ASFvqt{G zhkxI-{DSy1Ti2Qmm$l_vNS<@=ZB{1z{eg_4rgM-aHZnd2zwNVV(`;?(P^;fICVetz zChZu9L?MDmJ2MUKmJz`>QP{M^-&afQy&Z%*n6a}>C5h=Z+j1E5fPsQF@sSCmJbx$; z-aU+O>={FH*b1#08}A9gvj z2ALRQVW>bamN<0VgG=2*<=#wn1{%!=md zuFf<6z2Ys6FP6S`C$#cR{jG3()Tz%?Zpsu~HKAAHf;9gPcC-ummy5yXInB5vpTg&E z8$)nc>0M#h;PIzBIogTWUccZ8r&GJ+QSA-gk{j5~8+=l~&()6F>`QA(1P|hxN@6$j zM7UfHAeVdLKtpPZVSHwdQ461cxNoe6-q#7#G5b-|YVpRD`-Vv^K>In^)s zCG0KwiXlH+BqbBQz6bh*nEQTuEgau>U)5oA6V8i+wSQP!e{3~O-$OqHYInS#89#7jg{iLQwW6V~ zg_ZK@QyxdRhTSZHR(A&0!+=1!qJs31P1E(9zdTiZ(0&}?jL4uxUefYbPvQqS7YUJ{ z`On#XM1O4rT`Vy0`+NK3U2X8te_*mdK_)06-s{ChA!*P^rsa+Tr$I36(0|rS;(g_} z{}R8Bk8LI?jju&CsE|{7y={>WnrF*QC6TeMvf>=VzE!7t0+QuyH?fzf=A=DhYmI4 zUZQ>wpHnK4HZBMeH$}6;AvD*bV@xxlYVXH-n1(Cs1LwXti-ua)!krT3{;mhIz> zJA^~C8-U+v6YHxbB6;Gw8f3gPlL)Ww%deI*P$QsXn&b9ei69BAU&$ zB^Tc0n4P=%p%|<#gI)65FAgf!Q7bC$wd~(LMu{$8Wa&DtafVf`zA2e16En}vQNc~E zxFxe(yqb)vfEZ&&cRl;Zwi8H5Mc}vvcYScy)G?}o8GzjwvYj2(|mEG%D zvw0~PrYoc>qv3Uany~2l3-08fApEaMv0x882U+v}gtD#SX}aw_>XZOTRG`UGSzK%E zoHM!?)EA{If|if3*#aBc_DaF*Suq5<6!_6;U)Ug0T$Xj9WDXh!&1d(w`WfN^*uGgU zkJI2SNdrlAW=ve&t@I}`D!6h(6f#m;x9#NS{gC<0&zCV#EwdHAc%;VTz`LPvaS*5n zCqOylIrS?`GurqlWyK|Wvnq;(_^+DDq<*>8WTz&W_ri~7yFy2kT@%k)?%Vg&$k_iR zNF6stY8fv@U38S#xVy1ih)f#{qdwk_T-jW(IB7~IF#B~z7d=*6dl>NL z{qHn4DAj!kV{k+Il8M?fA}%2pHFV%`eN#Pv&6$pmim3^oIK`LL?v>NQ5;R1OJmn6)+JiM|u_8-7% zZ6$8q{!O#1@HGg}@A|Ya{7hf9KP@c5p?MXpr6%<+OB1MtBO~Iz$nAf*uf@4H&oL#| zk|8#23g__yk_S(iL%u_}y@tLB-6=kl`2c?@_aYZQdgpDw0pW42%7r8@TPQhrC{Iyt>=URV_KH#V%7VJAAvct+{fCXp{&;jhk8j_l-JQV{Fe zQQSuUVZT7AOCqHCrDrDFS;w=@3Q^CpAeC%kTL!w3eNKA$Mx@9Q`{_Yfa^Ya`u$70_e3#3W9l7PVJkZI=8Vp(@?I4G{#SHBHsdQ$*&5~*+ zRMeGh3q6jUWk<%_q_Cj#qDWVIlEbs7CqvO5qrF~Z+FO;Y6J{aZu#(Ub9Yb>B~z%y7_LAHs4Xs)c2*w%bTy^ADX-nNSmvxNojBpz&Hh zBG@ePg;tdECOF=}3S7@Wnj1*W=RRa&;0W~R zjl_CTX-V+Kw;yLGi<7j<48IV@>&AumU16XjqZkA(2y*{G%D(X~ig(Yl<52ZIlN%Q1 zzijaAvtof<+CalNU(egbFSMB{F(-HNk4Q*UcGg+LoSNo)>(O$TXg|`N9(nneZs4Ns zuK?wmC9R`7@l3e|5H0loDq86e{2n8}ubgy-G~OJapGdrsrUMWgMcw@}{h2R!&&dB2 zns~0tx+9c-Nqx0y%>C_)$U;YNk5b#*F5oiW6`@VI7MG815cht-_y~U(-!QnJ90Ed! z$*Uacb&9GsD)Oju9R4rHA0ziwboksf61tsH`+W5GDoSv!;1&)eumTxR6rfp; ziacdJ&G)VU6aP`JWwFA+d)X=PBt>gjzsY=6jdImqs@vK|!ODMM znP)V@hM@PI*baTRUl$)p;eI9Z{Rv}a-vq|l&Fx-A+yCZ&we8*gawtQix|?(SYq>{Q z?x(cKlWlSF4<|M37MnF3$5CAZrx6@EHh=FcX}!|@Wy4NAh*qXs8n@a>1{AT|7tk=KGE`4;^H^+K5)z=-@(>rqE_C(>_3l{;VW909t`Q& z$}h;2yi_@p?aH*QVl>0XNLnJFD7GAHj;;0z56!)Mx6bGZJ5mFoELl|?pi%pBLrY4~Y z8!dZrbl!LNdF>(baZOCfjBmzn3`}Hp>*J8b`#aws*nM7(xh0y8o|C);ZczSYRFRZs}88mRE#AcSp&RbKTf5#R+ z-meJ!aGoC*Xe`g##qPzyC+2BvH6so_YifR5=DrU(jU91e-JW6R8D;*TUTOr5Lykqa zpBH@jG8;=DO0)=eSHM=g4L3aZ))4f48o%8ocKEmmdLUkw{v66fz6;CApVT|9`GP9* zPNctlBLj`0X6*I0YFIK``w06AHkb&8hjvOJt=%Hs0{%M|yA6HJxJ_icZCuIexjNt$ zk-3wxhw{no91{BN#T{y6JAN*ypwb|}M!KUWH~kN}O@7yO85g{qN(|C2DnUFU9om8C z;wUb1F8m>pUpz$cZ)aIN0p()aiZ6A~rF76Gm{;h7JiyU*epO);-WCFE~M)Odv$bSQgg4yx$y?|>F7v4dYt=HzLshk=?(6?)I*qTNq7o4u%Ll3 zVeh5~>Dr$nLFSgVaWrZ!u{?Oe9$5{;?E_z(1=qE4*3Cpn4y8eKzxedHfrA9GyC{N2 zK?YodHLCFfF5W5WuF($D+G@^zXg}j3*KIYb?-RnpjZHlM6K9a45lq~?f{qK~O zf_&o!Q=7|PAJ>>}s*^RBL$-yXveC1V6Hm*;V;@)*%IRG4a`a1YRd@pz@t~Dq(;Q91 zWwIN2jVtf@xg7I1xEebuK}qMOGIekcu6VH9fUK-CiFMJ5Dze@;FQ}fMzNlGj;qe~4 zg!O#>Qk%DSq`B%d>TzHd&NlOI@IQWNHoJ$YMho*e^)BrWCrF@pvxjK>=iX>|-SP~D zW4rlw5ks`bgcddPySYO&N}E>uwflV2F520vSyxlWw8^bAGt8tuNnH*@Y!nqXerC{| zPmSto`Qwa;2H$yGF9$!(EhPr~GbUKZLzK02Y}4l48r(hV)@88i&CEdnfCF*WiK@Bv zWW`u8bI{}3rs46PVX=md_3s>;c6qrkSsIDT9^3*+=OY!m-nLoroBJ+%f3$^TTs<0g zCV!e9JYQ?HL>M7V0lzb$ii~R*`~SduPHS6(<#(el0i3_+1h_IwD=!I$d$)XJ36Yz@ zQEhAMavbF|MJW}cDb-clwd*Z3t(Yokk1{&b>BVV$d0kuey8C>Oh=1-FzF7j9B0Q~G zg3y~`LI`F>LM`{bGB6e)jm-~@o-C2WegMAN)G{+giI&~r`E6hKquIUHL?g|qVGPE% z^lS_#`s=*jKZlvPkf{BHJwbXTe^N;9#G3R*d{VE zCAo(>4l!$?v^M2t0G$$DcYyubp0`|m=k0ZcD%{xio-Rf9f*rb#8h+!e^_kVuCX*p2 z7g+mW(v8*8aqpNQ&y&b1Nt&~NG~*84HijMmQAgV=Bmz8~W&x~wce*O0nNv0w*U*N2 z|6#7GmD}KHzq6g2ada3@*)<*5r4#60DdB0OUDr=ibDjT*riWQnxFuFFiL!gY|IayG zIN9}e(q=&TjKb#1yBxs)yDv(Ee(`}fPk#U$oknso(XBsi{?+P;6sTM86~}#@I1jCW zaRH+k7jQDru18^$W3RoRW@QIFB;;nBm}0Lsv#SGf@Gr8~#b1p#4uJ~X>g-YKFoSrn zM846CLWi^);Zozs8)Yfk0YtN>Iq_C zqmZBg*katQWc)6F$HPN@k=iWJV7Bk?(Ilg9T#L=`QO^>AxpLi=nkzrn*Da#3DZfSd z?6-_QaWT^5ErdGkKin z)be})op{M+3)~+?_#ZO4@{cdTu4@j>2_+b|_FmveHX#jBB@=VKN%xjR>OP@(JCY59 zaXWD>plHusCH3;E8nW?mA|&?l-KnK2?}G0NY>G`K80|{H7NsTpHaTXUE_pC`F@&>( zyr{Zh;Xi@%QEwVvLOu+XS|#k+ zwY*pS#a(8s;{|f^LlXqbn^kNOT}{Mrp ztNfydST!@Ovm2t9SX0XefR=EbYl2d`12Xn6V5VNXrRT>Ig`psf)k;Hq!R1EYf3gSa z%o$?PC!0!0Sf+Dx*M!aqEX8Q+q5KKUY5zHM=Dkb54XSUti@Ywl3CGnnl&h{H` zb8=-eaMO?v)QXXY%3R^_1h4g068>%WJ_jB{176e=pyV)Cni>fxL;FE%YLo{HTIn6P z%!ebZT92cgvdH|W;JMoZ)OJcejiBn&Y^**5Yd(7d(}9kIy?@+ho{`F>ThKXnb$r}={lL+AOAGX8WmvWcwYifcj zm=8P^_c}NL-?Pf6sxpI^<{W-|_}|^|*b=^GqqA4#86zBPz$?$9eaE%F%E4w5hzl z{@{s0ljIM;$0`Z2La}BBR#~aSFf)Jz2hrf;5L_+A3d;RKu5Z}wzEWmwDO+KO)5Nu( z6VVH>i_J+t^1utZ>6B4ZBpj$o)#Q@Ox8P zGsKFc0eF~_#VFaWfp`v)LRp1wA7!p;`(%*3iC-g ztY6inEEFDjI|_m>J%;gmJI%s4?(uZC)~EGTLYvH(jQ5?NL0N;Dz=|TxmsYy(D%rh4#%&%NF8VHSw>&;#A2nMo8iytp9Y3bCY^ZE04N@EC{5VcJZ!O(2oi#q7 zlmfhJkqFjtcI$ijho}sNaVE-WD?dbw5a{1D-TLyUze-LeGN&vI4|$U%pss(-A6X$M zZsTAxjlPVcS(5GdE3wdB=4ticP3|MKCbG=xSiCM33Kwk*Ujx@FtWILz9-)g!4}km0 z+k%G>t&w#dtnGZmC8bA+&%a16f391(gu7#dc0ZMyvu_AFH6p+7-+e}B=_{}36Gl6W z90M4fOQ`QqNG>cPr|y0nC;_=`8zI`SyX9B=h&78IXSN-=EHeDTmg6h*(do9N@iRrI z;*KlftNoWn9|>7cW;rt6FP|YdxcIHD`x+f9@7ZM~I@1{?<)h92EL<8neu)@Noo*?J z^yTvj7Shj&t6%(^8l2tS2CZ2WUVZ!8c13uUbZ!yAI_#Fls_%0p zX;>5=1G14`5DDpmv2*!%-=iJ4705Az?=_P!P3ZP$hnL zc0T_=oVVtvA_AEN?Mb@5Q1BG{L(569dz^0}P_@)ZrKM%hOs#-A)5Y_9`Vvxcqw_*wFnH;=Pl|8ykm`;&q_w-R z(NMYIGffBFlzQyelLMSh=XAVQuyx{C(V0$r9Izg_zaSYr0mzlH4QkceK(jAcr4NJB z9SZ%Ql4`De_GoNH4>syJQ3)ovlaOnSdooTkuA+R?-lK6!qjMRSQz_;By++Ot+ZacK zaq#yE3kFnJX^g+K}5gn;7qO}y=dvcDXNbnWSt?^Fx1dxMNc|&z` z{07SB`J=dff4AuGIJMJcOI;g{;IzA1GlKh#Hkmio9C<=&Lsi!O=Bn4z^+u9}KoWnv zUAPf*u2Kys9_-{E=02ot-kz0<+MVJSM-4?-J+{;DaSm>qJ!g|JEWFE)@0FkZ*@4?L z1amYLT7CyyPZXU_|8vCX3!mum=-<+1v$%YPj72NlQb?ZoZsXCn5xIG#55QE(ed1DD z$hNAA^uM9IE!;J;2y|s$A9)-0ZTZMw$oD$wqH(Ipz}p;r`RW2qUJ?DSd}PP9Q2V?f z(^gB+J8Yph;Y0o+Tw%LJuyuiyo>%PEm44)R8W*TrEDFy4GqCUPNid^-S>h1@wGr9_ zaYoBF?O=jz;GIWwj~~VxvZw#CXNQPX>z))A1uc>C0Bow^&Sl;!`HzilvFQLP}8vE5-N-S%36N+PD7p<~ug?T{@IQc;(&)G-V^2W=SrFdAl?M$q5FoDYr1HO7?{`j@JY9=B8G zjkvJ2->=)=KS#toRm?ruOh4{9?szQ!Yv*;v*|%)Ep@JiRH(Q+$(bfDLM`FVEA@!Dx zWm4V7yIU4UHRL(J_(%^C*^`v&U-4e63tnH7q*gY{6QVP&$PFtk_;fxeWCgJvI`HEj z<fSr@#D~}J7(DBX&Hy^n%U43SdS#vB zvk8=8j{2&xApYs9)x6*xqd&*lt`|WU$y=1`Xy@@JOZlxVk(klL@rce}`F`Hi$%Q}Y zz920r8*{U{z?-#PCipKlX|43AL>9c@6f(^DAp6{U1hawD%W4zE_@T(s94;*B;y-?t zB|Prj`*SCyo}ca2p4>OVi$8``nDGj#^otJ|zja_Np58E5q zt~wYntzb5H{-k7;N}f(FMtG4$7B~d?F}M0h3Tg#2qcnH(>J77RB?cFJ%~rBXqNwG+ zQpJXLt<16aeh4A$-rPPeS3*X!9$}IWO(Gk-Lb5Y!qPnlvkbm2=e9fOFNAEvy3=>Ci z5+z_;yOWY6B`g!GT}7`%nX=yOm!o&J zrQ}WEH=s+c^Y+5+(`>wMm?Q;>40f3$Dd&8B-2Y?cm~Huj#EEQvNDCB*N3YkH?mSy3 zI2E&{1cnAF9C;rg)QuuUGXRIbOK=(EjTQ2HeTGE_9+^ zM6Nu}Uiz<|{1floJ^!JO0}0ogY3hx!bqaARvCh*f=4T8M0Scj4=?%wzdr1-**w42Z z2&Z0&7x%jxq=)hN=_4O>9jD{SGfW)$08ZSGxqcpjJ< zlvDgVHwv7cRVF{Zy0OU>V0q+Ip0)08pYu=%2yP~=W zRB6>~+F|Ti{JPnpn(uI1=S!;SD5dEXpsEW_2JPs=3-9^098X?%gX zbL}hn1qr-CD9iFDE?fKae&Ur**LB>uajTsx)r7f$t9yHXUhBTOyrn2O&B7jeQe^H&W z5wn%j*x@mFs<+l7>wi{I%&mevRafwdIr_+kSX|FGNoBU5w(h6@j>)ngsNqrbP!#_= z=T`xX_M>+emAbQb1&xd6HlI@jto!O`rBW~t2C8ySMCf3KF1uN zyxhZwz#5mwyxY2pT7bGFKE+?z_Upi#qU)@o6y1YQqa3=^@Xaxb7?Ir-bjPt!lR2#7 zgrY@dBb$kWA)tG@lM_xN}>dDfY8p;&pOM#RvJj)w^c}{(-Eyh;co$ z&me?S<+Hw3`&)e?Riqm7XT90Wo#jq z;KjX(9CX(}q|eV7C+2Ck&}@v+hS>%&arDxBB_?&it3;Daq)$;J<~VGs^y2LfN^S+v zqQ&L!l|E&nhKr;1ZILnlKC;*4*zgDoLMpv;j}PdDuS)_?m+~)6%~1LMPLN3MYE0A( zS1}Kt`y|F^oc<#E&#G0S$K%bkEp*4U92HWsDyXly%yeP5b=7g?5F%O-yc86^?4({B z+-f8OK_YNP_vkzpf%Pb9+UKjEY_<6WA$da&hqmH%)yGR2M> z=<^h5OIix+P^SrWWzDR1yXOX8AjSDX27&^^fIWYGg;RuF%a9)SjS2v>9tShK^p7VO z$0S>J{v-V8*v?a$9eq=wr|>3eg|O}_{h2~8i{rD=-ARxDCFb@Y`K${nLnVj`aZOh* zB4-!kpL_f}g7ftLl%|e&l>AG7nTa#n*AV@KxKYccWG5pJ4Bz-EFVRH?ZB);<-3;d4 z`c0C92_-j2Ay?kc-9#I#Xf;2#tGcz?XwcMIhml?k6Ln{3{>#$ru@x8OXlg$3y1q14 z8tqr>d{TmWa`bv#jjG4B6g-L!8PAe;thZaT?@2ngWZ(2PPTl3mT?vnFC?rvz!l0d6 zKSUFJKYl}K_lR=Fb1>xo@TFj3lOO-R0k2iFc>jC48GzA5OTRIFQ#Qn_N1U$CdgRZ2 z31HkBkuI%U`GY*uE3hCE2YhhZY0ssex1`bwBOqih4aRabx9eO>oVPUd740T(?_>zB zy1Yy;e4Vhxx})pn@kYobl&rEtcz=;at7PcoetD*;|SZ9 z#C_dNo4=+<*g52jTCiG=HS{l+FbB;+?VmEPsEsA6c!mSJC;!{BZtoR32K?|S`baDo zAnp3Ng*ENg5{{AzRHHW(`qC*}i$ayQS#G6IizVknO*uSyJm#W4p(&HMqX;e4QhSHV zI92Mi@TJcSb+GX?B2G&y&Y>~n9&Wc1v7NI>G$Yb@m{h7yxJScR>gp2&hZRxDz z;52-*&oeqrZxfvBoVLNOqtEz9tiVA&s@X#o>C|HBCKc;x(T4GZ#;Aw{;?u1EgtV@2 z3n)lqJ}OgU)gSnkrpb^v20Y>}_+9VZ&c}&Us?y35!W&G$ok4#Nh$jQmLIlP50u^Tw z?j};rjVw0!2AGhJG61=Lr4Jv=TG-B)q#rFA#?nX+{lwC*cJrt25>@A)ns}p>HWFXA zA1!DsDDNk{F#=;l>g z^v`D90jgqA+*NiLRZKP_qM#BHpMfG`8ybtm}fYnrHL<`&9 zdj|IRNz3ymP*Gg-MT02MpL)_~TR&uP)0~n&=LcJ@l0a9cr6-DBSpKR;$NLuhn_uC1 zF@qW~#3=Kr;rptih06)g*Fn|U;MV=MxgCu>>9>1cF z5nEEqda$y1BxH#-Z$@6Jx0lzNsaDiW>u+)!4VIG-t^OJ(1X&!DPYJoD_}@Cb2W6gcZwAiL#B<6Zjg@eY;4pZ=v0`=0hhOR(_z zn$|M8PDrcWZ*BVCGV*tVTYc$b7_!r*T6<}x)^}g3uTSh?inz0HXz%zEICEiucke^^ zyYH9}_zP#3wgfR5J^EAgf{D+0+`@v83+ChHTIdXaplOA2@DqltC>AA4OoKzHFTl@7 znh?Q{5jq2-&(<|0^{zLi<(~6TwAQ13)8%gT3LV<*8SAWP=}-OvCsU<8i7eS1SCIy7 zCj>T3Md9JcQ5v*I0jT2z3wg+TZlXKW;|>Kglc=9f0{2uZKJLiP@5hfTt3#v%_0$Kh ziYkQ@n+Y{2fI@9YBePYDApLp|e8@m^aMpStSnA+8<4e zTHSgHAew?TGeEif-+g(et$bd%{z6|UOAOe6?AUAA?c_}S3siz^c*c5p;LHn|T^@Q0^m|k|>#INl7 z0-H-Gq~Wl4GYv#=$GKA$VI9VXE>(j{DAQ#Z+~`~qve=U$`$Z(p6d&2!?8gGlSq=MN z`3}zJL%yFl=yX9<8(rOUD9!exe7UF<5l<(Ebn~=^`BBufuVsYnWB(A;|3a5Rn}qHd z(ZGpj4i;MQ=6fFYHo^oV&ZU{fj`H8XtmehLQ;~@$ z-t1)lngaTXrh&M+8vw8Tsy=;bb7$+Vr)!~!Z#-w&vw^Lb8}6xM7{cm{=1Ap+pr+E4 zb$pPAOTW?1m@23Ju|0%?7DmPq#BBoCv?D)nP(TO{-u=X$XZn3xisRtTKYMNP^iv!K zy)kTO1aG4*S&6^a=;fCq+uGwqdoe)Kn_YtYha;topOh~)3ALg=*MpZ&OZyd@<5k)_ zQI+*k8AmDopMD9W`8P#s14Mn|8Q95K=1N4A2A4p4*)+akM(k3sf@ z+SA=iMD!u9DJgTZ>l=-ALno1cus$i!t!8ik6}Y|97N@cH>xTmHuRrxY1a$upc*ivo)OQpU z2l%#k&8Y~(X&-rIpclVvIz?%0hLw&U24l|zQO?bQyPgsmJw5_XI;_Dqc&ArUeCFYI zzk(@c{xT_YZVH)-xH}9LCX{6n!azCdKVl2h=m+&qfq*8})XY0G;Y#->Kv~_@0O=#w zVu58L&DVApc6JuATMxi5sidHD&p>OS3FfaP-&w2=JZA$+%%4zreYJemkm7RnC;usm18-&h`g5Z8Hd8i;JX~> z_m;$>Y(VC{+30|7E}HZU)vEKkqn859cAo{=67f3t!I~?pSrcFa?e-T&NN>?r<+f@>ULLvnP!;G2 zNVhjW_v{RQ+a>XWBBOru%G;`?^?3)70ly#%7XL$*@rrJk+s16>=Iilk;r z@TlDjC)1~M|JibNfO0(7z<|%{xqTXlDkOWOZ#2i5EVO!spt46091GJ;Xl`;lh%hW3 zv$?!;?R}gDM$s5x#_7=sXmjcZjdpV?F4zcFHoUa|-+|Bj8jL0O^y%Z~Xa$KS#pDyO zHHn4W_#pm~YQmi0-5%*4Nl}_mU}ww7z1}W~;{dB9J%PjcQEx@mxIJ1=rK{a+WBh`_ zyAw;KkLN*7t#|h*^kwTVR2~0&n%osOIDGn<`FgpF2c7U2|CrTuj_}r7I^eyzt=8Ql zUHiPM)ky&vFYRVI;R;l(rkh`X!n7CGzG0*rPL8?a>feIa4MLkq;Fty7#z zZxHoZm=k@UCyUg5(%N~s^!d7Y=KAD?aa144p)nl5;YAJ|8^gEnnD>7V%I> z|0Q%<1@Qh}?$SefsU1!kcpfi>HthZ#4-hJ#eu@q6LZqFjtO|ZPQTabd=NZ*R*R^3g zDgr7>FDe2ey%S2Jq9R35QF@c!TcjsMML}vP(n}seKommnz4rtJ5_+hK5FkK+5Fp9N z_x_uoDZG zrp};yJvYm*648d|GF74?68|#%rtdZ;seh4W7~xvKQ3`Kw1q3rn4``_nPyjQUG10=P zXlZo^FKt|>P4cvnGqLTwVO^U4G z*41oB5F3-*L_D4NWzY6tUUK+>rBgHXde&KQmVoMTr z*pReOyzkM6{~nC@EA0h!Ha*F99~0x9-GeVTX|x*hsF7cgly;|bHGRG1?*V+&jw5p< zv7;J?F>dKt5$16LYW7Ol8*^DvjW2T={hYroAG(SzLznqquGfy89psU5XdP{=AUzLZ zoFly*w25=-rOfBTIh8M(im@&3UV)y_pTfC@EBrKo@gYa2rxg5`cx3D;eOG)O)NS*K zelI;m9GT4QILt*6vVZ-T$N9+5Z)}fv&t;$4Ly>kaH@MEKSxBRdg)HhSoekQa%qO!_ zb6TH+1scsQ0u(iti1DjByFak|-lrf(PdE`Z7t*q|ervNt@L^8$P3*h8uR|A+$2EyW zq?flP-MLN!_d~W$Fc~rzys=h~9K>dWUjD1kx2kRT(`ep0iyfY0YVl0a%b+`4M4H1f zkhvSk#t~vm_Fq4jeXhfXtJrtJbLK%v3+2L~ZZNgsL--DH&5vX*=l2Dj#-37i%Xv@2 zusN6VS*n!ruA?ECRPcI#o1wivgwikgZ+&Yu(=ca?$AX^rp7`wJ#v+ zo&DYuDsL@Jc?r0^-`Lz2NQvy(D47`{jDy~tKYp*=N%)9vj$*X55%ya;2rNL71t&u7 z@Pzt(M)vSTWo`-l2_2C15e+_N;+{|xfj9|{D)H7zk{Nj{K@k+^Mi={+A*~ugUIrIa zcl-aH>^;=Qa+Xm0&B;liY8Ac_BVA+8c!uO4tO06El{WDdh>kj{fZYtzkbKqo5c|6I zU&GAnSJYf0M^&Jym6!M2(Wg}qaiL+txd)pZxE0hKCrij=N-#E?P;d;MlSG>T^GlTg zft!&LMBuugL5a`Ivi$tBm5iQeJ)2DXn-}W~ps#y34cV6Q=F5&5K6#<(j8}g%wrvV>nejec40#>L*_S4wjjCzypXL?tNw=L42t$J7Lize z_2H${Jgr$Ec-~#wb}K|t#+}fm@^80b#Vq=%oktAAvtK`I|IDwKk2dZ4sXPxvxL?Ge z+}E7y(ISYs`%4)+&_$0(b=|nThzTdx{Fv4&9qbJf%6ZibuY{{f^Xc+V-C}_O?dGV! zxtMB<7xtA5JiM#iu)Ogi;gnR<)sfdhk2=qBee)|fg#IBFQaQ9*&(dlGLlRX*L<0}Q z8h_p|{jv8vP~zkJ%3Dnicpkcb=za##%WWe~BUY>MZK!(pm*|~?BHutA8lorvxEwLd zWQeu>RoZ=AU_5V>+Mswc)Vp&xbq+GOV$2;d_c&Ivm7%llQdi>bg&z{ttEtb7f(rvy ze>rf#l9zX5=HA7%S1*;WHGd7!^brrde|(eIFjS-cgkL6y6FV}le$J_l>xb;)6Oww4 zmi-o4NpTUJUAP=%v6~;=Zctfln5 zcm?QNs;6Rny~UugOL459gRoqbcVqaauzAPa`NfZ%d^8Xs^!^jo zu)EN7S3P>38n~NGuz7(MxnZ3;Ehvk@TyT>Wv>hI0*!6_i@wXk~dkeC75C252h}`Zl z$9dU}a~`2iAC~D4t1!IHor)Jw%@QI|PkxLriL3`duxNk9OK(=VW{GE zmtXNU%F3#C(Di(lYQSrMA3Z`9J;JZq7Hp_yp_TcBO`D$$JE^PpBRG_HZ)u#Z+UN!L zx(Wbq$1c06Nry<{Z{m1N`n@7)jn5!~x1Ly?ar%U@7Xhl1ZLhLjva=2J_6AThivzkY zC4)8Y!b{siRN8@;N{yt*#?Ln-CwwO51L?M)i`E62M?rGZ(D5HBcFyS-VO?HCRLd2T z>s(SX-HdX%rShLZ%$oIDP8!>t<)9Wq)4Z>dT&P97ncq-zDfkpd(Yk!0{;~-;5x$$g z{79QA1bOUU5c=FhDtjHS{-4qar-ufQn|BdYUgWws%D|lUh#8-`6xMy(Qto`(OBzuCF0(bhO3@IA{Hl5(VEu4#3teid4LpTwlnBwX@C zwxsYbDkf2yw>!!@Dd#iacFv^_&$^6sZ?4PsOE#0jVx&KCtk0#?+X^FZAA5+G3z!qa z(I>wuxJ3JZ0J^sH?|2E@+JlGeEW)Zi?#clKb)mm(``#OrdAcQN>IWx*H}bCeAde+5 z^GBE*LCX9S0RP^RB~*j-m@fpm+FadpiV);T+S6Db{$p|YJ~{W&c0<@9B}`F#C5kh6 z&QYvBs|iEWR$_`=$$gOnfOyt;ESaI1f`MU23Khw9{^A55)|h@9Hk{~F{)#se7KL2d z_M*-?ycFJ}pKs%skA5W2ly|>+Y1u_YE7Y>UFGZ1#uQ3_dDwIQc z#Zv|yi{pru=f*FgFsaE?^BP`is84-(lj%ti;X7JOdt%|LoyAF-`=+HaZZHl3=L}2- zXoVjL>|IFK6y0#@7E-thHUJSw>O5eX+0-&)j^58|lBvZ3w%`F) z#6wxDh5y(&q~t+La&gwj3!Lw1jI4-kqiUONoq2pB{(ZFM>7}i6p8+R~hlYDkL>JGG zt1j(SUcm#9A8>3j*$g|3jEXksUyZt6b*DqMfNp(tCyc=*h zVCk|sb!XBhI;8y>A~zI1`w{xi?{1)O)V|#0-sF~16HBgj-^{Niv3S|`hodcPJj_KD>_%ns)8$*nIuh{+Sh zsDseE%=BTMLzlq{vK7Y8Cm?^!V z$RYP6bWCIBnr}EM+P6=Z6LC;ZLY6xnDZu@&ZX@DhD>S~)yPM4NH}l^wRMG*o9&!U~ z((Oo2_c8q%rJNlt+_SCfzJ6z~`+^D&Fa9gCLgx09*y3dw8DKF-XC6N=cYXD#I0HSY^iLEn#_#nI03>S z?j_sjG+r?bF0d8!)}1Kyydj7&{P%D=49h=55h@H5-V@Jg9c+)$`s1|*(rSSKuH#B? z$YmDbHMnHy#dZ1gS3%lxvx|_wHwNXYSWbQ~Q@s0kkKlcwgKSeY!0f+3%1ZRO`>5o0 zC5eyPwaDvh_e1%P~iF-5At?xxdtK*~O!>*tN<-94*-%Ygnf zNbQsqVxBgto<5S=oKSmz%W^~;N>D6wkoaJFejp(Gp7i@iHT7uqlhA)0s~rk=BUqRO zgQl;LSvP&GkAJ34a)<$Hzs$6?=F=NTV1!)~fR;^Yu(i7Ok9-z1_IdD|!)NT2pF`SA zkrn8kvJ_GlmET_;?i=T^S&vY+!qV&Y`Sx~4&cbF*Akw?MucRIE`?J=Cu@-%P=+KbI zg7n^oZQVSk^a#Fiy7&84T)oCf80gP-XO(^K;`;R*gWWOqlrZk2*oNM>d)E1Kk3)tz zQ?A$?nUxV02Hv&f+c~)z!_rQ>85iArL;p!SB4PWb zWwO$ix#aCh9X`9oPwg8L2jG0pk@lrsHU1yiFDsv z_I}^;)D*^K$~4c`d+#lVIbr{?wQYC|xf~yG9(QJ$bO{56u-Y`oMaT5^-H-XB#VFYG zIs?mF0gr-3J-3Y3Ij;bd7H2t7N#F&ZXD3Q}1^?t%8tthEMn0@E2fA;SJiUiyF=2g5 zq+`Qzu`{**$}_}T)_=@)B4F+^&w`iG!_6yn(;~ukey`;+D&sTZ*diH+tBKh4i{)mY?=r}?%L?V0rllIlbGx}(l@olS>rS4$0e!e z&sy6qi;A7x*}kgWG95WS76lTiZ({<^-%Xjj8CWw;$Un|+N`-hn1-fTwNkj;Lz}s9C zd<8_ing1;g+0cwMFsuNDj!vzIyl7tjIw{*{%{q6r2Ccr*VG6f+SE|SnwSVhB{!^I2 z0$1Ql=AP9ud*pcVJ^w#^0#uAnOKtn1|5w=Re@5A*gBMd}$ zs=t|lRh9Z23Mo1Gt=!I#atGA8P|g!2n^pn4M`V8~SsA>%Ffr_?DypvbHm0COjb5`% zXPzI=g5~)|n{}xTN8o`fnZ-ZkJwyj|7u54RRh!>#w%+pB=PEyyp-T7jB}Uc0bURKJ zONrcCEJJ5ci{0)A^#%`@%I{8nA@HXujyf#|Hrq^jODzdS7g(l@I^C-#f8D%OM0_>N zJQ>wwAX&!HZc&(02Gn147xdQX_~j%VpfEFi+5#DKC_39}efwa&`tWS@9aS1H_>~o4 zkzG`cu#z@EIx?-mcAKmsm7@c8yGF$#WLk))@fHSJZ;iPzVF$cW9@OlsQ8qjna^Ln= z!*f18V`*8vt}{+;hg%O@IBnIPMiyNeoIDZVvz|$LEf_Qf}A&A&iP6~qJ` zyTfb*bLR!k{9;Qt*zkqEUWBr)4xxuXo|?B|kP_;1J zh9TkU1i=Yom3LrH3nkoI-WEmdaQ>_HZPZ4@Tf*WIekeYHeg)erE_~r`D?XnS_lOO5 zO=lLCdA`vsrK-1FAFG1ahx^*cI2%DP_~j9jqth1Bx0I7{vFNIh{FpzJzf@8s_ubc~ zCS#OqzJ7JfMc_RWCwUsPY3G0;dLLe%OC^5W%;@XZAn@^RXedfytZZ)*6Nx%rT>?>A zVqD3^cDC8I7|lKl&T`K=vW4WFfoS#37b4&6I{0`}cJ_s(@06lnPLwVO7n%NU@DNjc zqt7hA*$bMl4V;5&D4TN~d~qAuSayX>!)XRrqu z^NzKLpmT6`GaU~G6$H}CoAq!mb6}|{=Gg_to^?j*P$Ehd$l7!8XL~}Qqi9aD<>1dS z7D&td-uw|p^X$RxfYw9w-i;{I|5Qeou4F=9ZrIM2*6cMR4$_Si(BAkBf?hyH&I_%> zMgO!(Il4e71FG37ts?mA-B|Z-enoH4<(Pn*hsK9V;hWdpdN#}@ldcjy?SD(Vi&sx; zy@V9*>6XvkS7zPMV?NM4qP*XI|5IfLI`R6(OxoVb(+@uHvV9tj|C}~uY2N@f`tAq7 zNzwR#UR);5!3u#5l7321q9Jy`NQ4IAXbRk-5rV3Pon(!{6!eq+EG}{-OUI7x3BsX) zT(nq!(bih?runVfxJ>$Y^=IOQ>H+Lf6NeRT>0Hnq1rhUqN+*|;V~wO#I4qr4)28+6 z3KkG27+ii(QL8A!nNMFZC)OjdXn46{*d}NBzUoAnK9$>~Fji;S@S^p1TzE*4-A_e3 z^xr@_8vS2$kDp?#n0h5x(bM*~4;ezbC!M>se+aubbl(JShQ84H$lEMKJ*T+e;O}AZ z9^pdXs0g7$(O!N^x; z>L8nn>?3~^A0FDv2cr8+m)Dq14ag?*adHp7w#Cez7NDfT5RwwEo}`67ny0Ek3!x=z zA=D6@Xenh5$#$I6GD+$F7hpMIV?DymY2?etwoVpKnMrJQkc2ISCDGcO>>A6~K)zk5 z>(VL~6pV+3DHVrxk5|;)9du&bv)VsCbk976ZOZh2RjUpA#$MVWgtSbVAebnZ;hGGB zB+K;|d@TC`9J~8hty;ewaib7JMQ*IUpK*(wNkCIM{2N#}c|}Wucfv0mlG=pSirslK zSluuqj7YkQFk0)-9L2wjQM^`Q+4=D(2v}(~q7-I9yNIee;!8?B2~B1?Wz=7~uk>oZ z;*&2Hu#k8AxD4L~NX?)&XTl@Z?ukAlrY9Kxv zouF*Pr?+w_*w#9>1Nx{6ABfld*fw)+(ovkFlVE35&aKGQj4V9vK4mI-Eem;3+Dxv- zljtY8i*%#oH)v8-K`y{6qg%aQpA3oBeqQX@OWm}RODi|fk^qyptkwnA{U@vll(EWn zu2L~T9HG~IF;he>9xM@*eLe^>ZsUK?3V9N4wxqATH$QacJf1`zYpT(V)H-4J0}30R=v~pkfk%6NsoOhC zgb%HUDw}U%)^L@b?5Gsdg`o}XX^cq+DZ%;$E7#$C|7I_7Mp@+#{0v>92J#QQ<5|`D zAU6}%pISg#cyMnHbZkj6)+};SvxvY9sM^!r@HXpM(#@84y_{_~&oYd=`5xnvVgG~? zg!t&!J64)$2SXZX&58~FJjeYYG+UYoHo0l=H zQC0yNE|DV+@X$l!jo~@@5HP*5c?#M+KMTZAPfCwO7KL$NDDSYc9=v+X1)U_~vS4lY zCVF{avx=NEcv9a*#0JlYF0r{clG@!YI0?H;0p4+`-UB*PjZ0F~&BY|(JaJ|zhddo? zy~DN0=c!&B)OqnUkMNKI!Y--r-BaLMMES+-f~|ZJub!Rn;&^G4uyq*3kDRn3)Ld;o z9=mw7e^SwtxOB4QF(llk9%m7-_|l{$Syo4Pg{>%i<5J;5O74zHAs8i23T!lS$`ci$ z%2a(uNeo_eU$~|&YQcVdW%kUZG3>yZE|L(yPD;EgRkhMKY7)eAEJbjc_153GqZdzc ztBb3%31w~fOmXXdyxz*$&l$5??ZfHDh;`68`WAXYh!R_u5+qsAB#ebRxsk)j!*3RO z667}%6>Nsa4TP{#{y%jTMq+<1to3NlQS0spD zhupG2koV>Be4%T>aaTq(Sa)QG&p(yCgE|pri^uc}dEanVQx)R2(GL$;F{l(2p-zQ^ z^N_kigfN0{j)|0QoLK3mfk~M9rCJM;@JWJIS<1YfRNdABFao`}RxFfdpJATHADp&URr zc7CbVpMcAtiiE$CaBiVXb;7zy91~R8eW)C+(Jz9MsMo zU?CkvO6KjSY%p_#=J*P*W4CoPcc9(R^Pw|OA+56O3Lld`0^6Rq*ZaYoo#%~0+Z0s` zzY&MtvAzzAYB(E;bfTWea{4}eu0qNd5_xYoH`4V(vis&_Jv^NFma|VeUVVj|cp1qc z9Pwqz8_)DF&Ufuh_=Me7XC`$9uOPZ*K4H$My}{wdg|?-H3km!i1!W zt2u5fIj}2U;Ol@1zfj|$XK-}`v)7K&E!wCG4p-LWMxFh#!@X~8rbRb6x$AGtNZ-gb znW^5o<)hLI?1-yx<`VKrha{^@uG(eeZ&;5UCh>te=2I80#alG$?aBi{aALXB&a5I+ zp~q}Q`tji^l#9&T7_mv`{xA@svFv_pZ^Poy>S=&dT8eyfo~eo6U1@pb;{~O%lnft7S7H2+H@iMDQpAITe9 zUK~P=)#xX=Ir-p%jR%0os~E=$d_H`ZtscH%O+RhVj$Ncox`e84_Gj^`EP@%6l-Tu8 zxIOdvzh0)ZjOLY2xfZ7NtM{Eq7J*~-q_umb9;qaG!)3|8`yuQU(r`4EIpX4+X2pt~ zgEBkMMW!_Lj277`(yd&gih^9Rz0Q$k2^Ubk#cT~Mb{|3=& zP=oIX-Gojj;gAYB+p)@F6?@3P=AnKkp#unQ<0QJ@{SVO zcgk{0mXprTDzT%1<6=WJAC}c{chhfMEy&k!Qvylcgc78)dcUK+C!uCIZKov<^5fUk ziMAcD$Me(t;JKCc;`tdJ!yerSi}F#k!_PRkL(PhSxo(J<)0srRcAd2eaoc0YTZF6- z7OKi-w(KMFzbPagh`MBt7)+mCIlo(IweiPtjV!+P2cM8Lg?Qa#uV>SV;NJ`Ag_?Tj zaLuq-n77dZqRrv%i&UsS#t$0rF7%Zgg8u^VSF$%+S-Ie(fdQA zPZddWNwk_HXse&}MyQMp<~d{|V=<5e`_jUC(1vwikMPEuL8ed@G0 zK6I9x&Wo)ruq+YQIn2qf#}hs@?V!Z1kzPJWlNr5+L65uf&(uImrW%`1hb&K>1|AFq zb@*LX_qw<)^8&L|e9p-P)a;<=+k4oKks#lsLOSDoF_b!i_bys|pVH*EGGY&JeO}`w z3zT%d>!Pp@R@fll;1Jz)UVryWVQ92)^CP<0hu97ILO%5OrZ>cSU8{x_`zxgr2VW_n z!r>cTo&+;lq((+>ux_5eCyEQ@z=$pWv{yTwtGo|^+qaa~8A&AYedsr){bYnb^;~_i zJF05N8Lo24r2leUaLZsr@yrEJsr3>Zl03hwJVOz6(Y={6no;1aP8UKeXQ|b zvK)}xi=lW`oqez23xLU?KMnvTy5fIq76yic+`Xl*c{Ah@sQPLgi75*;;gwy#=GYKa;*9OwAJZa&fLaU_Y(lSPQnETCLF)L7Tx#>4yirck?EDoe6BUj;rpG@?^qohT7bF^U#euHFrlC3J zb6-Ymg}>?G^b-e<(-2BjWcv`8^(Wj5_Pu&3z1X3;IQgMllCgbBv4fTPCe2C0x*2>XDiM9-=oGDl@|gT+WD>f+07vJL|KGn!$!MY9~nP8Fd9bh=;zT znc3Tk_i-hg)C9ftD)FNuDy@0T@Ln!7-S6yhe4LzIUS>0?m#} zn4JJ5E*VFbsL++|S3VI@*9kMM!ly5-v_Arm;4}0k2~b%Tvq2C&B3c` z(fC|vjyjbhgFf)b9X}fqm~73DhCmJY)bw6(9>4Xwbj&vQO2S;RF*1f_t=^7$a+rGj zHqZm{oAOh10&(1_QAGCI&}M58)ldw1^Kg>cMT_tV-2S}fKp3&9=^ybO%SjQy&4+v; zmBk0pc5Glqv>$!&@$zV?+b2AQq2FUC@2l&d^@*;Pn(ktP0%pNEu~WnlRt#vHi>M*0 z5Q2I)3m#x>0T{KLfUn#=M>~vW4Fc9E@VVWvr8vpXR2D9S(h$<(uWAG-w3& z=Pqo%J*ESTc4@vrP37v{E44MFaoU<~U4wWt^!3DvVjLH0<$u!+x~dMjzq#CIC=^s* zl`T+Yq}rLGamV}nyO_h%!`IwoOInfKt#Yl$Uz6$P9nunG!IpH{0tb3t8YXs2RD9kb z`2W{pHR}Fq96qNk7*gKo4L;4vbL$2iiO5QlgY|SzIw;lFb?TFuos7sdqkXuo8Ga%S zQ@IlgWz4I?UD6#HK=?7`p6~46c?*`=!k0IF;syyyxYEDRGf9#k&McLU(&04Ay*->% zPp#WB@X!hNU+}P?4ed#T*+w7t`u^CoR-IAnQ3mbwZ_fNYT^#uNhTtc}S;0@o-y`Dy zt%ho^w(XrA5g!3zut7{6-y!q5;V*ZMx8Qw#JX4FN--6nQn9UR3gS*StUwg}_ZFQdL zqksiXb>1=1;dPC23Y0ym6#C69HJ_1O$Y2{ZtY6dF8ertAL(hcc7fAhvn@IwP9Hc2_ zNrobBiR}Q@iZ}n(Tv^#I-qMZ9x(pojYUx&09E{g$Bq&o4K{x&c7Auk7p$}o&QWdFo zx2rAe8OhNM%3wDx>OIX^ip~(_WK3|LZsT0Zl^Y-)w2E=b-I5FJ}?4e7Q^@^-C zy3()>3?o|?rfPson6=GE>+5cf7G2DGKd-*9eZAl)I~0a7-qOO~i<12#f_k+)HKDTj zD|;mHdk<2@deC`G<>-^TBy!lyd&t%9EAxQ#PorqJ&i0v{2c+s%GaYcwKqVoj)xIMQ zYT>=5+H#<7XjP%GB;e!17t62GAA8nG@DPY^yKFztzWCvhB%e&F^V}-x`xL>_D$e6- zRx73Is(f6zY5S+!Ew{Jt3+{5bN;&h6O{fo*_I!VTxs(rtb5 zYvUi8t}K_o_UxR}RTpAa7kLw++PB+A-+#d6RjM|mmS{2PB?c~dl=4ZVdnf6N%CO#l zYvSNzf7#(A8B>8#lPwpCoV3cH!`+4+(uj$*9tb1*9jl(rt48i!C~I!jH~poJQkT8(3N3lw z5@*q+<0j*!zAd&Jc5!#Zbq@*yU&d;!0R#Su=A7@w<@s;Z#CBU{jAWL1GIu{=&WK4L$4fJsoX|Q0k4Q4 z%}p_qxKY^?p|}Dj#78)!2ql#)?PsjO2bet1Me%0`rVsZq1DkGWG&c6Oat>Y~?&n5M zm7ZX{VW`l&dm!{bf0ft_`M*}pY7Tl!kQ}zMq_K>RSSQW`Z6Dpy5a;wAEUn$s@l&!*-WaWP*8=)#TLCZg9#bR4etg2U3K93c6o9% zeB!UskRo=^4e(ek9m6M4vi;W{D;4mgs<27F1>pnwxLlid^o2qpg;R!)xcgEg;tIvg zUSuU8esD=?6X(F8Qoi7=>y)m^w~Lx*SUWFF)>s|3jMTPyI4MnCDLCFP1j%aR2QPmP zSag@GS+%p(0lB++M^}&A?rrW%0pv2oivvShdP^1rcPZDJd~)g&1%B0zvn}YXawKtFDu-f)W{KUPl)ttxU}lzs{MdqT zl*jB{9#`p$Ph;=wgyQUgBL}wHcs|rOXK8+Ii`w6WIc-Ffym+4C(7|9>mlbiRfXE@z zB->&9UZg)vympYoUt-+>|J>uhw>{qChqXt_>N9;)IYW{gU$Pg-s3R|0|7;JvDzrB^ z*{7;MU^0|mCvPucg*_{)J#yk{zSeX$;E8V`!N}pEFDVMzW8(N11XI^t;+Abj*yu&f zKY(n;q8Rwbu5$OKmEYzxGjg{%+J6|_tz_r^tf4nY;Xuev`QW7(tt^>7cNr_+gIA>O z)d#-=v1lK_M(0;~rw}DCtJ+%1KIT7SsmL= z>Ii9|*R@Q4HgBaC_2vY5h!nitcx%>p4BtA9cdY6Q***R?K(Y8znk_HulzqeCl>7bsU0-S;l1Zv%{ zlNi#MXe@lX$y2la(+gXVt3B19n}<*4OvVKG-j(I8aXSs%ZsxC+F+T2abL3xp{x{o9 znOe!2(*d#Hk?2&9xz9Ow%Sn84%)Osr`SlO}bC87xrQ>zA^{&-r2?aVZpX7Gba(#nJ zZK0$1UXt+v!6>%X*R63L+Zxfd{dSG$H9um`avkfTW$Myf*RP zIs;c^>9YLSas+qpxo~y;?^ZA`=P+ruCx{$EgreAT8YdB;5Cj?5v(S;vf8gim?~Oj) zHHYmEaIy zhrZk18{(s&xqLx2SKZ5{SqR_kUxy1(Y)k&~z$Cg~lM$P5HA~R8u|65ThWyf4LVgC&n>ZQPi^f%0?shv7t1v_l#kaH+=I7Y z|MgPG(4alL$7l~q-tiAev!GWT;V)dEB+FNi9;CeVm4Ouel823wN+DrBDYLp6wWyWf zc7<~8Um^@ACwfK5@19ZHZlhdYD15sigWvI&fF~zR+f~*6{^;`g0CN+aHF)%8=n2zs z+8+tc(A(5awz4_@H>}}2sjGwkR%TIY=>>*oHwEG`XUFX%RduBHugAo)YECU?6&8Gl zR0$d;HLA28R~H=*QoHI)JQVG(Rb$LR$m%oAh7}OcBK`z}xOcfMlf&?#*iR-KKd*@$ zE=wl~zE=7wlt3Nt6x|q(y11l8zTu7)o}A+ex#QBG$tjhb(Wz2I$zAVm?sLoO(AiS% zsCMoxCMEZt4*~l+E3c#`jIow~a#kKE!3L*0R|6<9INf9F_ za6Apn(1qx32r+V@d+?rXHP2s}pQ{i4hPA3t-)z~U>QhpuNqV>m?wP59tBq8p#uZJ zuW5duEyEgz)Tcw6`Xyt(Xm;hWpV^sF^?&VS+%olhUSQm=3&gHw3noGC3L4er+%tGE zC4hLxk!#`*tT;(Q!7MbVhSR z`B$F$xqoTEq#5h#S^coS&1bu`XZ0o1zK!qeHHxqvD?T-UmDZB)55)O8RQu^qC;mCo zI8*Th3Ju|-TUnPPFt9mn&Og3oh7+)Fk$Rn6ILPfX$dpE(Vv@-o`p6j6dtt0^2MihJ z{4;m_EMsB+O=!1dbklM1;WvD@TN z2Q!I2_AC5RXF^)y{Km`m%cq3(b0Gc~{8m;mM~ zHV-bW(Z3;496NPEI`nJzV#AJO$X&GHWti&fry_?@P*V51J*^TbpM;82R)gjm;S<&R7%pIT&RNu>ZPFDr{B9@lu}>ZmfKOLk9zPLF~cCMM@gbZ*`gDwjBn(hV^m z6ziSA$8_)2U+wU@Lxsj5zR50tpLMnLhuWIjTa0JPrr*yQ1fC2$pqCvT7mNQ$ng}@f zyy)VZJ*1SqOzy2yN(n8kzqHB~EWfqLJFKhUVP9A+BoaTHCD+1SWQ&)-bv!7Kj~RY# zj)BW|#!T;8j45euT;F`jtvuRJV6Sh_Qprh*9dP)*yqQ6?D6a3j;g;&B9Ob+CKJ|*@ zm8rxSmzy3t&dm0|3zhg%=c024K9PB8EBbcKD#pkD3k}6kHA0?bS+U32Md}|ruCV7Y zDE!Fn`hF_=wYL?q0k+`97zF;@k&5{z_ye{8m0FXKEN#Kgp1z$>-O70IyO?BvBSM|Z z2ld^(tLo~s+BCQ{%aLA;^-~$MR$WPnS+C@ovUZHu zO3wuLIIA~Zi6&j|zGLssShD)x-93Bt%r|BythLYCGw7qH7gE2a zc3FzWnEAX3HCZf&5T&EUisw499%=0g^l∓q=2>m=&>>{`tz>9l$k5X};zZ;?@gQ ztwgPfE7Y&vzw~S&CexPOP!ZQQ5m}Tjeq{Jb(0`lv6|(FUoODHNWW>Y@I!5uD1@TvQ@j-(q$$OgP?1L zP2-1Z<;rJ{($UC5Wtks3L9?8NI~u~ZF2dFBZJ~vf8+;xW;B_C^!F(Wc!9{l?zISV8 z%*(EpJDB%#(I$9@Njud|FY1&zC>kekdGwxhC$7zDCW7|4*|41E|98j5bdB0l{GP{{ z3{+1_h@MDZ@#oqB@b|*{(TBh3|2E!u2=)MV1Ga7)%hl!4WzZU@EDu zI&s=3p~;yKf3Z|mQC9ER=~Wqlwn9l-0kkI|nYd}TnXL%Gzuu4T73hG&l4KaCv&5bR z`{brlyI=BIO7LaD>x{DzO)+f!7P|>O%*Vtx_7B%#d4S*>AjnE;t#<0RvPZ1#qC-Faury`4Z~Hv5oS2rzhqddJJs4@vJaYRP1f{P~a zt)`H&69}BLlI&wX?n&nnlNkv}v6_k9HmdJJ;Lz8w1dlG@RBT)?;e(w%Wycb|k^Pue z7YBT|@XeAfPyjR8>Ebq@r|;M0Cbg;_*0R8tBk^V>>chQo^0fozmu17o3aZtca?7+h z_ta2mPT8m8@)Mh;fXCt8ZWNA$=!pKnN%tT zDIhEeQA9tJSzv6Fr7m%PeLE^CV}3V@U5ZvY-blQ_E(^-l+tghlb^R*WzWBb|6ZMc~ zYAVDf`}hg@Vc*t_M^_a3Q$A3eTCmR5ePkBV!ZQ7w9J7f(Fiq86ue}vMDoe@x5k9FRkQ8t+nWddQ&_=@ zbTDz?Y8P;`8L+XSb5cIt9y?wWD=$53Y8{Q2nryyHF9%&hEK`}&|J*3aduW}5cp};! z0r!ABjIMxZn65~gUyAplULfM}Q^4u>wr|u$A^BbO z+hV;{ej_4CnCuzf5HDMawW9BkF2jw0`<=>Gi`d6I&ML_~k&P zWDxPbxacq0?PcUD;B_XbM=!f)J`jW?ySz%(*H{SY8{-Iyn?&w53*qJ>viOEcCE!bo z3T)9fTyPHch{Mo%vh&m(cXRNmSaovX=lMoJ z2`$UcgK$8rbGj#`ipVw@d)ZyMRGswU&EY~80cx+{#6|K`t&curMEF2ykfZ}x2L(MBXu6lJ;$)YNi&y;=(@4!go^csll?P|IUp>D)|}xi zC+7Za6#tpt@r>g?{CA0QIysBW_D;D;D_WKoASa3L2Zo?$8_Fz zc`ZSvS4;$Y$2x5@KYg&fm~*+KVC1h_vT}1)u;Dti%EN&L&iFlvHCfe zDft$2e6Psnme}~O{#s(=Yv9YH!iHnxWBZ2XXAXXtg-@|gvbPwMg;RO^shHTL6Mq_6 zC-=K^T_@c%T=v$wPI!!9=dw-QVa@{UlX3~&=`DDO((ZfRGel>g(xBuT6-)1b;Yhh% z&bj`I`Y|^Wuf==WaZ7G7Ch%Jtxve0#ino|@Z|?bwJo^ca--*aymt`^$ znJnaQ;#ZUIJL4QyJ8Q6MI*d!eK8XB1wAaK??qAE_Jo~6?NWc3qC;fcI`Z=T#J{W07B8h%8qna?Bf9u9!n1k@Hd-(@tBKA$ue7NlLUak~XM4$ra2rMv_3b?~HIE z(S2RRIP)aapA5GzG1&rbqV7Rr_Z!GN$Mcg?W5GC&*r*JC+?|OGUen+%wtJPqfpRq* zH@f<}>T2%eG3n}F)Ybc;`gq^AXX@jx!vjx67$=`tXaqJ_cjyyO!dM$a)(0Bm@keTHp0=81Py4#y7rG02y^C)?!# zd*1E&XfW_SaE`FA%IB=ZGLt+_$*--?63Aww`?h*!CHbAG^^=&skFhVqxfi+A3)cCv zYUgqdB>eu#oiBPL%|{Xce`%(&N9VWnEXhON%lS?`1A`AYk~$k)_dpKANBSS_cBQs* zfUzP=OKZ@i|ETfHd7UrWW=h2dTgH6A9DACRJSoRESj9N*Qp1Ejo^f&AmDpZu*?VZ6 zwfCMQ8Ka@BVVb8^OAkCi4{T!&G4EN5SJ-D9X0g3Wu6xz?y3(H2Gf=EIowwPMc?>q@ zYVO%KLyQO5SS=j9h+l{OjpZ`;lIte&V2>WK9v`Ik=FEOLNxPZvjipXnxDe~SU2}Dh zlB>(9=Dp0URvKl?R^mJF0m;?ZBw$&QaeH9 zN$yP_XkIzzmt!3}V8?PC1@G+p5|ftu{GdCMdTEKTe3x--z5C=ogq@7zZCQ_FS&!qO zTkq>;COL&Ja*PFu?{eKT>U-xZ<%y_&L&ou<#ujw*|q$@7uUBO|-b)}JS6#m?pxk)6)u^-#8I%kkCoNM|5 zah2bH)3|B43Hi!0&k-4)r)9`y?Pt#!gORCo{vXz^wk>U?>;9mAD5AFdaVBpB0Sy=s zz6sQTpxB~D{PoXXYtMwx+V-6LIp?~L1u~gT=4HR{wY82eYs^GfSdVdbCf7r!%fTOt zJ(u8Kb0+$BH|BgP|BV@AwT}yLxLhf&mCljs06rGe*-%5>vqP;nr~1l?uPdXrYR)z0 z_QV{-m1~~x5-|)fAMLds_Zn+46^ga?=^|C0dbhoCJoQB0{cG3jKl%*#aw2Dom9d{W zUfCtC;M`*s+%1XTadyb?4DV;S?_@9G zeVqS6)=(t(N62Pnz|X=zB9)~&8vtuOp4mH`oo}=$0DYv0=>KicQcD|UFoX^|r>!iB zIvZlyD(#Ttzk{Rv4C~bIBlg7FN+$?V4@$mYRr8*r@6yk^fq%ft*<5E$vy^!aR>3I1 zzEr=~O@Qm^vGBS0#(lRqtc!(y z+FHLVKG;w2?^|7q=)i7ce#z}|anm|C3&VFmsq8hmj9K>}*CT5;hW-xx?9(WQGX-Y+hW>>wwQ0bspDm>q~YTf zhxYM(?08w**h$JxB`xVOc$_qLdotDjo8#pKE6 z*y%OQ*QjhUDd+fB^nE#3TDN@VY%w`_SNqTwgLgi##n2yGx5Zp&+~xir%>SV+=FQt; z9537|&v1IF{+9cFIIQzW&68w3LdJFK@9NhG)c@Sl`zNrqD*yQ+9MItzt*9q$R<*jD z7ui_-nLM|!zo=}*Jt=$RLTfj=b6r;T-!4?Y2X7tWtdceds}}2e`xsoUZM$M!UDzyz z_AqAdkvUcHts~Zs^qcno(E--?6VF_#IcumZ4hKj}S5u<|i7dpxH=@sYHKxZDFLR|*Ui&VNzQd2=!1iZKnKX?*6MhPKsCp|VFc@7C=_zF)U)b8&I<>$*+*)p~ppwP|;$dmPxbBkC`; zz1FSSv_r(O)@|CN8#z0lyodUsy4n2t!P!!}KIS#3Y}%RHv>$K=L3^LIzNYkeiCU-3 zeLf-mf5QA#`8>p}hHq2j9KV7N{+geH_+ZvKS*E=x1vW}U*Iex&sl%Y{RJlI1X@8J& zpmVYe5tn+){xrsxw6q;DURLPxbuGr$*|0iQp6_?89c-o=cl=Q4EC+d_#?`aF#9TaZ zF3u36t8s5~Mnhs~+i5NL&Do2$s#k~Vw+ePX$5gr+)N+Aq7`w+t<)T3Kt!2bG9gXi3 z{(r^%n#9}o;q!HNya03peojL>dCKvP6<0g(HF2LS-7N6BnU9TK`uq?0r&i8CmEJo4 z)T=aF_WG)y1zta6tx)P`i9aiLA1k9gZM>W~|3Z*B|H7*%2PZqv(|BH7?ES>Y1$U@t zfUXNag53rDC=k)=#M`g6hDf6PXv;GzJ0#Dhum{dCM#|0s@G9iJuj;%-_5kG1inqXK z))3ma=SO|qlhp2sa8Fj#p7BY zA96Vh``n;~spSS8G)m?YcaZq#Nc5I<{WVc-_Sg z-)o#gm$Dk-sc6p^9*(%Se%P>;jM~jsrYB0_{Bv~GO?-UDH*Z5ecDVU>Jm0Zs8a}=Z za|7PR{TFz7Nci-z%K_w`g^is1FQUKjmKX~Waq&#<3u>Czpe*b;sZ@oCEk)Zp}+4Fs_Ipe7@k6u4->-F>?79aK!&h z+;82$`46&2<==8T1@HaNI^Nu4C2a@T7sx+w*EhWG;^UvRo;Pg-1@sWgDMe@z6B%Xa zrm8d7R-5wbFc#Quwf3^lO`$D#EHcHa@?izJ=Ra%De|&9m%4o#W z`E1*S*-O#7dkfz+FG_u9I*%Cr3HU%s{`?j$c`xm54cOgU&hBQj>HB=2=eS^PFxcI2 zKD^!SN0}mSEpc`?#5v>a)$MMq9dlrJb2{PvtfaW7Zg=B4+CTZl`gOTfbqHr;>v%d& zznG`vy(j>U-}}cJ>K{AMPs(5IT%V)R`+B>{-uK$}XR4q*rmZr#vrEyZ=jGd(&p*-g zDC{pC_19a!!?VoL0FpT|UR<#w?4Ea$^FG1u8Y3t3hnnuE&#&VB5~1t86saZly8e zuD-dep`9*$J)h{RP<+HHml9FS4XZJKDeAYM1c;FvxLoJVSPcbcwE#p z0-mX?(?yk=?=U^1HZWnk>Ni|^{FuH-ZQC!#5Z5bk^R8_wj2U@X+Ge{#LrTq;ME+hn zrhS#~09z}3fK^O?QOTQ@@hSk8E#*0d^S`L?)yY_`I*)LCqpesBr1$qGOM|;I{^T)z zeT)m%r4=}T)`Dx2Qy=MUP|u8baI}3n-$3m1^D~iGHSXOgZYXT|GmVYYzWiQR*?@5? z(6zjOHS@8;k_jEBrVBak`wCj2N(c98+tm`bgFm-6+sAq_wzQ9C$a% zfcGVwb?I|wqY4+=WO`rb@fZT*Y!7XF)+IKQwk^uO(R}z|U;8Z5euY1kl!FyB8g+!r ze=~kRHrNU{NBV5YFY2p}`JK2dn4_he(`Bvy{oF2Hj^yDO6}u&?aI*0%wc}`=Q8$0; zgHijSJKN6oHH0l-h4@8`&+*zwul4kr*?z9&s4v|!BaT~S*-&E)0`)DoHP&!h;j2{h z@5WB~4SL9^a9EK8mxm#`hRD#cantS?SNu)1suFPn1^Aq)p22Gd*KR${QEakYpJ`pL zsKXXW^}WO3b1^b+Pr&`LcU2zc8LnL^h7D|A={0;FVS{xnIEGM^-X2jg!!a%%7_;}H+qNoIQrJ01F?NdTV4oUfR?N66-HfQ z6+IbmpY4f}zXeZQh^DnNMHDndS;&FmEqi+&GvBSz(wOjF#F$IS17|{OMSpJ`WiGG5 zMz=1n0sFB9JH)CKEqS>LBN-><=AFk%xE#~(RpBTUwQImvnAG1_=GhVG za^I}5mclEtnAd7+y2F}AZcU%<`Z?G9i2mW4VqW-}xf`-C`ka&2MJ5u=HE|tVthJcx zd$jIn7;%g8&}m_rZ)Wu#r=tc@uS?9|3p{5A8*@64HW}lW`$236QJ^)>u-C`gXT$iF zuXZU?JKhyI88+1#3s<0(bM>tZWY?uxoG!)-v)9o(lqsvam>SQg7+tcCr_f)lpXaI; zx@(_H`|ZAcd91lM+P39%{T}POI?MHf7;Y;Ne9c-0e&!o6y!bMr;@H z?wB7ATX5vDRpW}5MKkz(!7nq-i?bScmT7HE(7GrE$X=wivygY|zr%K$Z9Q**tsS`E zFewUM>LuZxXQqxegqqtlR-X}YcOur7N>#UkZWta}=3&S#6kXZH3|YmQU`~3X*wGEu ze*@T&3(`hYXv|qi`K3o30-T9{33?-X2%i@PbIoxnXmg_s=yBImT^r83+H*B7;H{PH zNVmJ{)Aw-$rRE~AE%RG-oC_=M$#XP@An@a1jNAot8Nsn}&vD<&Zp$!Fgb?|fd)8eu z6+V&WSdLgz#AD=;wh;$i=QE0CQ=VVNYkl2un)0>1(q-vYbBIZD`zijKC8Ck6p z!Ty@^|Nbnaf0Z#~%025$al}`m!r*MG>?!T~Ndg?AYmal0XP+~Nr_=DUnnosou{&K~ z6HZ=^aZ4`W%jh}ox8y7{o-~RY#QNhrsxH{|F@`|`EX*7>JtrgSeh(h-`>;p96K!3E z!xuCcLNhKD>!XCN;{y9KEuK2US5nZED4sDtQ}(9ns!QYB2D*1rjg^%9Zr{S4!`g?Q zT!ar*{2F9|jp6U(Y?qBi&rb|O9Be%v7Pi7m;FdO2zmjL^`6I2lpr8J}(!=3TN}{W@ zrDtvf+tM9q%+>wIw2;SZ&rY1ZAQHJFQGHq0f&53-P1Ok>oin82$~deuYh*;1Lo8r29p>W*pu*^+nh8xLLRTsf|jc{0KaNR{FrOz zrN{73es}d3u7lLwkMo86y$t!ztWBezGuUV2K5O-qGBz9gdJ4JFM8$F7evh&$hj`Po zie&*?R~DMQqx;MElc67La7H{1>6(5It7FZvnH~+X?b_Y6C^!zQ^%30J$?E5w&kfx= zXxuB_$zV`3QdEKz~^^*0l1BZ*}@n~e?M8-A5q>tr!WAGHY7lF#1>=tnWQL>jCpP`dM zmY&o9rasttHoZ%kqiLDHdf(Li)dcyrpJr!}CvQ_b6Zx8J+3sXv!w{!>tu`Dvx1Ta{4B6I)4~`M?O)|wrsz8GUv!+j?a4K)z}h0 zsGEH+Qpk60)?z}|y)|Eg(#c@{ofBXUKijR#A&VFG)yIQTr}DO|Agkt%zWTc&=( zC&)+0|H>28m7%@$!icOZ>+diNBBeWHm&Y#>_vM-5wk?7qd0L>l>xweC#$iO+a|S(| zu`b1});%ZA0qiJIx{5R}Y!x)tMcH`Y!P{)hOOPG&a1dP?l|>r2>vaF92o}M$@Uuv93NK5=(aIFVkZ}<3!>WF*czf>J z8*{Bui*2d7fW%(Ro(k4@YDtH&#$J0L*504HAx?+KDrauh9`m}w)tF@))b|p)vO!(~ zZB>Y66M{~Dt+;-|TbGvlNCrI`GE7A55X7M@!W^X0%<&!`uVibYV{_y%%d*Q2^z?zN3&?!; z_9jI9tkHO0$XK6+PxSr$xz=m2jDu+uiuZ-@)VVbdeVOHm6ZnKa85@eT0PGX^?9x1@ zjXWX_hn$h{40&Ec+mlr5g~TpKANJ4e%+<7KJgwF{i|jz2es#hccGEW(W2JT)wS8Y@ z#CD3>DP?Z@^%mhL@I2XrGo$k(yP%HWxvIz8rj?%{N{&#+DJfsR%9nI+^K&`neQ$G% zn3EdpV~!DLlp)TDeyNII_T&+2X9?&piCnBCYY%Q^Ou*OpdQ^HlRBX>3j)SwQh4h!I z{ROy@k;b5j7GC6v=Wr=Hcd{Vs7=klrY5??OydgMq?3-n_JoJEwKmYAZg-x08~VA&ZQlFIOyx78e>rfz82WI9 zbEmVIJgM(;Ib1HhvtviW$tLjm4>c@k=CSQ_CsSf4SGki#nk|Ix+FcDZx~OADcmISL zood_!eE%zNqYEmG*2=CbvbOsFVvQGCAd3DL_M|-)v+iN%mxEmaxcA45IjXR|hZPow z)>WwDDdA`CIzKb@gxF)^E8a@%@K$CVtNM^z&etKc9bQvLcd;&{e+TiF!+N~sWmKf2 zyRv=0kMrGX{261ku?L755-b=q$D9kC^)Fi26Sf%I2s$qQ*Sa|Vj*I^d96mf?R0!>)`g4LyNHOxsrJqsW0te!V`3exgPkV_ ztpooR3O@$@4E^4WAir6|HH?u9AoA~nL9N>qc>$1tjcIBu-4;LLXD6wfi=R zS;?I5F2(bZ%Ms{)zeYd*FT@D8Gva&)SRW zMTPk-zXi(*^ZUY|;lQ6^TNKeEXoo>G@o|fZ@O#Tx5KkuLgNk!#-O9-?nYy~ z%_Wu?^LCqss1?9Ccs%Qzap=5%r)}+J*&0jRf%mn?xwl!Kd!J=rYxr_rl#bXgYktBH z09yibn>>!}c9)6*eexZ?Xp!T4+tdEHgll_(cHA>Fp*8&-KKI(QC4XzomT4FHU#*=f z*5k&q)#xIz>gr}-?nKa+|7f3}~VAeU#EVxGu8=?&ht*(b=dy4QMcZ!g1E>}9g< zY!JCxYTVmubIeMwoAhRKjc*f0Hl z^!GR%e#jU&7bRm#0^+4Lkjn#~PS@2uypS=-+0dGdB5U;q#H`-%Yy`#DKSynVOU;w# zySef4SvtOOKR)BHLw@V~SQep0mj@WYmbM9ztKKvg#+Jxiy3m;B3Ol~de5eItwF~OY z@K?5E5B@+7T%81o@@-6PtC!(3z}IUm3XL0nx3`B-F>Fk-$xB+6yjN36ES@`ja7zUymc ztDM-UoEWK`2pd{WP9%P7unC>7O7-Lh?m5(x8D|QNH`7+EOcUezBKuE`%gL(gM{UuM zLe-Bp$ahfvXeTsHo&nrH$k4m(Q&2kSyFg6(mylbpd0 zG4*3DKbfBfX$JIT6oV6V0`$EIx-Q2^&sdaLbHBCsw0-x~ zS6kWc*0x|=mYnU^B6PC55t)hgo<&cx{u=VWV4u@?GUno(8I92pJ)+DWWL`qGU8#Oh z=0zyHdjp%E%%jY2_LxO#^K-dZ&<8@rfB$0Q0(&jKENn(B8P)f74+C31Pp#HkS$lrS zJqbOQeOxbyLHmh#EwQNB`BAIuK5jqLd>f7D?0yut4?Gc#(c3bg zB#ELGV&D-oTHyr;#Pe}A?hq%yS{Q+?@Z-JQs`X|A7YoQdBgngm3DDdNqq@g)6&v8N zEsv4E0(oBZkWbLIK>mHy%i-5^7&Nr`9_Em#td2Ooj?hTP zT&!s9?VI3D($BUBJ)U*O%jd7u`Ml0tbh8DpjrAF@Y6rf4toGGbx#KOo2)IWh^#VhjDnk-OdIzXO7PfV>NBqq3=|& zo1NX9{U{!?_8;>1otJgcf3Ly<_1KZr%cG>UiL0xtbFOv97U3oBI+Jeqb|tjyervQ= zV7JE4fo=2r9k$)eGIG3>SkYReIZDQ1Q)OA|!LDY?aladcH!lC1GJUaPEXwWENX{kUwL!| zAMP9NzRZs(RE~>-AkG{fj?fO1DQ4-aeO5HmZcZ6e_LM1IpOnj*W}C5J%q#h|P1_{6alGJ9)}9V|Rr`t67eE^Btl{sV+13;lYiJu_GV#x^jI z?s=4@rJrFzjNeWn_ZGL$j1!Ula9y~%nXAs{&*dffXv(+=wTA}T>*vpA++E22yh=0T zdPf(TsAz+Jj21*MjwprrkaaB&|uPHqUUZw58+7UL$Wa`_yr zSKSAqV|HLqNNRh-y}JqSuA#fh`wgOYy*74`=jxAEj8#7C)%g?PCsDgbg#1X_Thyn0 zW}_gDvu|V5hkbRnvHi!ir`W^u*!kca>H{d9Ul+NICGFs9^G(ushpF5tkxqDOS7#?G zv&y?CR@B5ivA)d(B8rm}@&m}NcF(I)#i6S7V_*xpnl~6H0!n~IM0_LoV#ZvbDlg%A zk1>8%%VQfr&b!(mCO~DcBIpEZqIG~!KTT~^pFf|4vw_AnU_4Pa1DzG#kvds3W)3Lq z-|&7gc62SWUfvp9EetX1qP*2=XdGq>^YHoEIN9C45NjB@GS2=Tb>VYd2tP@E-egqE zcUHaBhJAa_{G$)+jKI#h6MZ@?WX>|t$BS`ji_GBcaeW)D2a{|sMebrYg8 zuUdbCv9+|J-II@M*ScK9g*~jFTdOl# z<@MO}OXFfOhjx3#dNf!AX>PxuzIo>2P-P5S7e?e_ zt&6b?P^(z&JF@pTzAj8xa|>35Vh7I^V_NIN#L;CpaTwsvw&C(i>6^JQu+@!y4c}Mj zxxKN+_5K9kWaRLbvG#Ye_Kps%MQ6hr6JH`vsB<7nyR#a1>A zUo}Q{tTb>*8hDYyLPi?6nY#F5#v1w>JfXubrB=Wk1;t!q4IUdV?Ln;=mm^lq%^{7_ zIIX$uHpYnO3sm2@7@MqL<&HZ{4UJiFez<*nL4VIvJ+`Cf$%O zy%t^RgnU+Xe4P(#Cagz+Jl_84cjS1s;ICOJ_F$Hse)qWPfve4pI>|Wvz;N{Vj^5WD z77fH11YSlFIyy5N%XLM)TI<_fWz!#hwU^DZDRZhxZ#B*!a(Up`Bj13{7JgSAg?Otc zjlBzSw#GbLzn|mi4}5j2u?3pP9aXVU!2c{iVP=k zWR*9V1@GBMHAhW!S^8Rv5p{IdymNIseO~RVvWs?p2#t$x&Vs$ZRjR%TKfjl*be-vxh^SLZN;uHf*Q*EE? znbCMV&4ti)d!s(v-Sg$QU)KZpO!OJD&P+gzu|@cfICx)|nCD6J%ZYP|v?Gl>116%w zR@^a8l(|nW)IchGHQCGfxKYDe9(FOIE+MjNpmn81RxOu7M4g{Gg~G$OZv8-m`nH7L zpR!hJ5A9ai(~6bLx{;7IiCLS{2OF-utl6#0n$cd?JhdH5Su@zz^yp^0Qe)4KE6hlh zI|BEdls=FGm}bt-z*yH1{wO0dd{Q}&=lFcM%z^T zV!!Tft!>G(+O}F}LC)$t{Z!R5ncek$EY@_@`qV%S<|^8%-q5DqquLALDU7AIkPC<( zNqgGD=sXgG2Kkhxqcnr_+hI+WU_ZA}pfR53^GNN+i04w>uT6kbJPdDmvx`l z*Zuy?#iZ8fMeRgwSO0D4^Ee##fy&cLXH$)lRg4?pp?)d5%wHCMfOjJ{g^O&PzJG3%-6^7VLxV0VP9*# z$X0JS-ZSvA*dj#?>U8XVS91SI+p^+6nlFEZd(NoySYN+PYo;L9jeNMrz4o2;w4%i4 zBWJ9~i`s*kV#k7hA!@0}_ZUc;LkA3`3L~!_s4W{<5ov#hJ}=dtY>K$i+1TSV*w;M| zVNSB}$}Vw*mc%{oYCN}0XA`l-du-%)(_Lu2ce%E!Vsulj0j;|CbwHf!hX0<+THMOH zoGT`Xw`at@M!M#Uq;>4vE^*6fb7W1^fN`x^>egQEm; zRhkwa_x2gM=pOghI$42dysAN#|6GGiag}DvzQa{I@wm62XgV4TQi4zt#R^gtG1rQnjx$cyvNc=wT|!szEX5pGlY2#^_n4VUo#}| zm>P$8Nx#$#ao8Ki>CIRC?CPk|<~UZoB+r+TN9NAF;|={p3l_S<^i5kg! zM{8ASZ9}EOA>$IloH^n~Yu1N+-Xh#--Wh6OFg7XFm=D&Fi7G4z>7$Mxss0b*I=C1k zQ{fcRhss!Tx%a+sc#ZeI;^atS*bY-Yq@+t*Lhy;vOXMa5ulUN($kFn34U zY>K_u5*~D4VK7IEpH;(P{%9{M2J`&>8M&5O)OwFstpt1VD2wfvWwys){&g>EZSxgv zeBBdYYmxPji1iYv-KS@FC36n~+9INZnh4B`tJg$ee&az+1ji2!u$AmVO@tu#*e|OO zFqDdV+-p$BP=XwC1s--VzwiTa?p$40#^%ITjn9Fv-I6QLx{saKe8h)_& zjPi6E=sItfdz;0$POCE~_nbL9l~GLf+8J4}#;*2%Id*cA)+zl>pM`5v{GrXtwNYQK z#+w@EAi?$!cQJ2?!+x4Zmzn1HN9wCTDLsDrD!dKS8_j>|q4s7GzbhW0bu}BjtRVfO zMm6Vd5||r)AC*;~yMp>Wv7Z?CxT@knw63twyf|<b z7aX_o<4IhbuZA`z>LwfbRvd<()}39TCe=ZVb&UO{7>cl6Ws- zYrP!o?~*n+%5=o=Q4AEtrFH&q)ooL+>p_mye9Z>J*{H)qR}lWyak#N5f1n(OY zaz3^Wv!<%c%Y5&6u=lydS|bp7oYkBYZ%OeJQb$vrog;O1<5KtBKI?0F%x00h-EX89 z%vzUySW3-U)GMYZ4h1E zoZg7O+41`HSxFhcr8SCJw*fIk*%@);AsLQcj;@@aMYv*q60re19#ogOvTBc#^|zoGl$al(}hDc@5nnaTv^XtS_ZasJ93^$_)A_@zT0G(3a5E z+I2GgrSbOQhUgt}gAWr+Awz1FR81A+>p2X$8sG3BG`yQ~BAm2-#Tse929*E3ZaMs`D8 zhEba+Yp9?W1om$iet(~%#yxV*xTW#lzUSzFd6@6uYU~v&hgZF{Z;Dqvo52s$ba>U# zzFt$x_+`eY-<1xxOl9m%yX&w^imN1wb(#hLRc7JCzsB?v4U1b+r?PVlRZyO@Vq}i)qaX9 z`Qq386#cZH7;pI1C>{cIQt$6H!78u^I31<0n;f~^PmHy$ySlTI;jBdUvog~-ubM56 z=UnAt#5}273|excwB)Q#OME?P2|; zY1j|nNxL|2hWat)jhLWV&mDZi#FBqci@vK@+@~y|^XTW7ap}(Ps2Gl2-S1su!|c=# z;rvhK0XC34+v!BDTCFY@r>ZvDQ0oVdyiK->Rkh>JXPGFC?IC{b1^sWp%xA2oVk=zv znsPG7icgN(Rl=)q0#$%F}px&9o z9QU~88YeO4nNaNV1>?_we~tQbtP6m8Vo$c+gdMf*bZ^DP52Dqc1}fG;MEoGy*;XR= zhmaRf5D%fTjNTtXER?S1wHjw{Q$74v+D{Qzy$Bxc&fC7szLu4&>U7a?RtU3vsnaHeebTz%U-lxjj0phziDkS=pp;KZ054b?>OJ- z+s4-$8>@W>^~N-xH1fGVZ&j{Obv;$yq;<|vqiI?AezqD5)uqhS4L1PRIjBqK$F4c% zUGJ|B_SZ6Z&F3p+{<@>-MeTa&FsN&_UCKDSh`JPt5v+W+-CUh@E@5!M}6??MueVWm4oJeh;c1X z+tt%_xbci%34L4}>`?ZBxUq@G---@zCg0Vj=5zS^_LOnEW7LO+TpaG{aNmAn%x&Z_ z%+e~qP;FvYCGCjVW1k9QC!UC0noY9Ts4aU8wdX-|s(4ZQNkiJ!?uhxMzC^{oPc=uo zZ(sOKQ{`w=$E0nBIoheq(Y8KE8~5xEo~t+#!kZjx zeBY(3Pc)&wsLvS2Lgz)^!Jhbg3f!}!Z7=+BP5v6u_xhQ*Vq;g6jdpZh3tPo8^PPZ! z>10&B&uHBG(tZB~|NfQMW1G3!7n*0O*H6$Ma=VV_6Y{D{H;0+>#|HgH%)4}J%=+}q zyL==Tt58R@zjIgx9-CTiF)e>aKMRYrH}prAdt7SPvhbMaX$?P@^(OcDxhZV#g&ny# zMYr!+yU?Er;iWtiS;Sfreec&s4k~Nc%@AjfJil14!B*Y{tG~Ga{DbLgjqQsLW%){WHeS)b|)|7bVB%F}O8%_WS;~jbiC&t~YIgns*U1 z7H1KjvhQ1bMh*klHg@rE^?YchYv2=gy7swH+m`U04+$X^H zb5GiX^=}@o|LE5_9oObG@jT#N@udFoTrxLV)_A`^bI{0un3X%Om1P|YrERfd2N#E9 zJu)t@8Ih!}k5lNrz0}QlTFv=P>D-QD0 zJXzD1>rr4m)Rs4RcK(XmJ0k`W?a8N&u5rBQEjcmsJ&*kG{6fBXq%V7DH)iOunQJ)e zGarvsvLO{2wl z>#H5KdZf1{c+sK?(;XuU9Qcn*nghZexKBSAJ=|oY?S+~=fT}u`~9}| z`?%ho@v(2r3!#57+&Puq*w6Ij*#x$1M>=gh`Fwq9esSq}yE7hsniXDyA9n`wQN!#uSi*DBW7 zDDRJ^zSkxWR3N(f0R8@0-T=$+ycAy2P~0D(OlN2lzSAeK_!e8%q1wk{Y5hvAHv>AC zP~UVh<~r`%dVQGO*RYNEb>@}Um&~!kGoFjUKZ6+Jxzin%`Yr|W6)rNipWNST4W?A% z-?8uIoj$SOR^tR1O)rY|B;PaUm%L~{jmy;Y80&IuL;u{B;#cW&cmCZ?b-lss)WgQc z$Kap&`!~WK{PpmhW#XuG-hK!e>5;PeO_9`y5;q{C#Ws5tK~ve z@fOka7Uyx-kOLCE68F$!8^}J&#>ZD8>&;Z29I9=9=`ccR(_yS@RdX885WTM*4AP$Z z02@U(sCftln@U&RRPo1^XYl^=iac2M;dj}TnsZs@ z=NYa=SN+`2!gni7nuvDwGTf1WT-~mG>@4#A&c9cFx+pnAf7SRjCc`N1O3%Jtb{+O3 z>M^i33;iSGpvwQK`_$aM=^5@l;k~ePchwH3aSN%wzv?!u<)FMuYlkf91B;kPyVUp) z_3a3~yEmHiG$OXxH?8BtdXg{Y%a*eo) z0{M?>b9xWz>wE`H2Ih2XjfMFhqk%lBIyW<46Qvb}XB{7-5wdLN_#VK zWwLkB-3Bn1qfqneUR!cP!&+Ud*!iMeUBfmpkBqC)lzHAzc+616MDjM*p4OXDER6dD zY^5{rCl2bkN;{7MK2#sB#yo(hw&)9HZYX4L(7F8CL_$~3G>1cW7~@I$s;^IfK$o~? z-Y~IpotApR!O;rqe?tD3~PHSRJ<_QI=A3m*R&(KS|nXx537;;=k9CTXup~7mo)J1eenwo z^fgT7*dJj$2laD+_w_tKsCBaYu+|A<_$s`+U1^eft&^qCrH?kOeKe4LOB}YA${=4F ziof9eLx|P(HBrWeqchx7nfml;gNZb^P;+|18s4zRO%k6})>3i9h^PIjoKd%TST8BD z8L&ryjd$;Br9@4a(^lnNJd_8y`%X9DGotDl$m@JmK1@te$S$ZvdVFrpA&$YV%P-fs z48)0W{xj5D_*~%+XL8s@K4*<2#$g)ujWk?Mn1SL8LRWrJ%y?VXz#6C@RCSX6caM|j zeAKe9PwKfSAHUB|#{|qlUq{oQrA`qA`!&&;O^W}heyFE68`9pdcEaf3`Q~LHY$)OV zS}z_tU2xY(8dV(~V4V?v$;VMtbs^mO&FLe^<{{r3d&$N1j1>ofm>TfUc{@8}sJJ&5 z!41aL$?VwW#Hc@Q;Ny97+TL@Q=S;giFiGF3Ga^=v@_N=^{D>~P>Z8`2a-(rYYP-MW z{gvGBYeZRjuJJhM+CLu9?J520ele-5h5pXECV|#4iDHjUBU{@#dawT3kTO?L)fYMP zF{~=nRlJk6o^ugJ!6TWs9=NzM)*eSZsO*dm^4g-vVJy1%2%sJ?E==imMxR5XzE#fm zPUAyhuUZzs0=LNLi=`jdS6VroX_4*GMkeLiJ|or%`QsWZNZhL6T+U0@|ExJeZf^~YFCvdO-ql9Y@jdz=v}dv90S^KfzI9S(=XImg|(`Rn)3 z^E|KD^ZfOBy`InOGv1%~nX*vX5O^ntC4=-b|&Q(#6v_*1!Yqc z!3CFawV(QLdE|j}*+Jm<2UstOS21ipSG*5c1e39ts4`xJ9ZH{yqiXS46HbQ9_fHw^ z!TEv=gsb~c6Yskrmo*c)b}CZJ_2>4+r{1Soft0^P$1V#TRU+*?IbeX@$G`qj_|ZQq zx`x@~Z8o}yR^O|A^KWJBJtY3)a@E{0ANVA2y<^U`f3saG+I+J?XC0~+MUAMsxUV>C;YDV~sSSDA1HT?JVgk@GeZ16AV~gc^q`pS#A8!$<|OPh5xrA-sN@xe3uG9|=VNv*WxnFR zY;&SHbiJ>#^r;Zs67KHISqq8)=tVi^QUO7&@%__V-#z*EWAugdI`?)FllaZ-)%ozq z8Jo)GH=j}}cN_G-HEHH2uD$$ue_IB`UQn>RZPKO9?suS_UNWfgix}C!>FxHOlmAC# ziioXGYfW%#On;6-1@Y?{5M~g=tR^XvRoi*yfLl?pVtknvFb=&C3Xg(xU%^RCfyA6t z?b%d(HVpR*wU1h9*zzzP`*CXQazxwtb}Dh!yY6D9^mJHqCWTg@2fiV_qHBI9 z<1Y+r;|l4ls226@Otwzwbx?Zn?NzfVW$JwY9I?$g3aW*%YVC(ujGePLTCss>hK1&- z$kb{-q*=$vM^9Yv!Yi)bHTCmMKbWsU?}@0j7%@AbcYAdk!>I>0-gETr|X7$*2$ z!@51_8000$_xF9jw}-xx9G@<)kWA?RQ}Pc|kxw)|GnX6ewu0J@aIg}X`yFMEG*Wf8 z^L^?%6wnJD({9Z;+}|RuY{ul=Q*zT=uFv{r= zxKPTblP}wu_-0=8Q)GL+8s%?gX+^%bMSil|kX!F2Qnf;Mt_XB=Z7L zOMc<^0@1@yyKyi2g#L;>ep~;flBeTC>~(RrIEqT2!vgL0iw!@c%Dzhoo8OLw{>U71 z+N60rMDQuPens7QuC?MwSw&&IxGZ*qJ}@eGvg-SQMn-R&TOvkuW??$YMjPN`-?(r( zYSCI?|F>Via;qUb`U^h8eeTXRj{BpC>5rK!NeAsJ{|#fsXi$mwWw?;XHc>emQf+gk z$>pw0z@oBvKTr$+qP51DZ9{ox3Y58)d)|t6G{?`^B2?Fuy^mcWZe}*FI}uaIm=`ny z(%LQe=w&%RFX`DNy{!0fJ+8XI#>!}O(unRp|43MquwD5lm+I@(3I=mU#GCzHGQ7Hf z+8NPS*|ICzs2cBUn29dy_SIVe5Gq+;g|{{(!7(T^DWR$6kSB<@nuU0_CqO~mr_8!y zdyb%r<8xOip%#Cqb&4B(tl9)QJEUf+PIzk>RTqDKZmu8{wno-9kY|;_rKlqUJmz z)rm){*$~KckY0#tFI%RiP#mZ5m01O-BkJG}#eS<7>%s`)p=*it5b{C|L0NcjmjKTB z!`&Mww8a&wvudL6gmj;sRdj2M6KKM&b9eq{Rrd|9fF`t;F+bI9Is;%}V!;MT(k@lN z6gn?3#zY#<*?$X?B>B8-VKZJDz%bYH-$mb=F;IJcyz?^MGCC>)j##c*p$i1T=4$}T zF&&A6I1_+}Z`QIeEj~2yI&M&qfGzzD&rD~$4W%s`l9+|73x{kLENQ$MyC>VB;fk*P zNIoXrdRw#{O*Ikj6?YP6zNlpFoUvwd*6F+`XR(mhikK zuB@LQDn8!MOS`0|IkQv5;Ef(N@gB2oE3M)5mYnLGIu|m>joftLjNc%;9F$ zT*Y0JLGe>&UrMg;ce&5q+P=OEUaCt8$h~eJC1k}YlBK?^R%NY?Hcme%jxd^8Xbd

Q86L@MM_2Yx9I!F&hfCX_~Gcj7w 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

Jh)6JmU-Xn%&8O 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

hG|(ai~!)M^K&ED5M$xXuaL?PTgrzX4XDJ8q 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
{gF!b%)+q_x2;?cQ>aJsl(_s~Zc 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 -!AZHWmb5Hdts9jyJK|)l^4$M>^>w; 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%0DFe`m?3e$!3O~4 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

kP6ppq)bVMpoHNJhL%`dKqJm5s= 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

a4 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�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

Ly(-}M>%vxsZWEpr4UF~toCHedM@ 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ަ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�PBmWmJ^`yJJ?IH#^X1N3_{t7_mb3sNmY3D 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 z%0D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�Z^e(_TV?KSu*Lw*+(ZQ?JskR(W=d$LZlCAWXg5gMYx}ACEU+v)31d7 zMvmpk7zG@hqOmB?Rq3XvQvBt1LDvxIhTGAZrO`9T3a^H@A+#zN_o^<7#Wu% zC3&pNUbL*)|CX0cpIYKkgKlxJX+pVwHU+3o9$odBGC7nk_56bO`t+>V=oGcWKx=8T zAEei|y9zK0&oaac_%Ukq30P5oG4+?s{??t0{Ad-BpC?xYsF5ogA0Gl`Dyvy#2U#G( zgh@}tZF$7YgSSlDx|d;-ZDAyDSjC9_gH_pf`bJgj4E%vnvewf1(}-EgiiEELJFCA4 zub6P3gVkgNvaE-wwY!B;%`ECN^Q)U~L1@~bjV}*xLl)lHiqhyoJFg$!jxN5jCH1ZZ zE&clNmUQvWBWGB+Lt}3rF??nX8{4z2@}a@s9^Rl`#TK(>cJR$(=Iw#~>su}U@wguL zAJQsth_tE@+Wy-k)=p+s+fZPK6@%9Q@~GAm)og4z3HkyJ|NY?&r)t^QuDE1c4ZnMM z!|7_a8EdYW?aZe*&c8ouoQ*0rwisCXc}&R&TK@L%mb0tcrq2e3Ej0bpqdINYu}zyj z_4o!&{`sgTjViX<#~>~tJU+V&Cy&~^qWtEz=#|nM)8!*tOxChRyYpMS*~Md;wJX_< zL&7DZNgVbRcUgf?;z(f zbYz9j1u_PYA|tc1ZK!A{J7s!!Q{sm@k3GWn})?aZ<@x;&b>u znh!tXB_Ow0Rvvfd;+u|h(Q(R0Y#;p>?(gd#)DJ{~S@H>^S0ZhMlt7x$TJ~t9GIi?n@Yo z*RV6+beiXl-Cgmz9hG45pvR&6%769(2I=qB67ZDCETl5{Sobb`|J!6)yuUX9TcjNt zwKDnOv_Ci;R}aX<7uQ)-I+1amHiKmdFtPP;axuRot*ZL`=$CkKNMXU&q z1w3o{aCbMpEMFN3iOvNdM{QRTr;C_l=P~OTRQkAH0#yC-5snWkqu>zbU zgOGNcb|=P5X3N!Zinu*rf8mp{h=+J);lugefP=%a;snk*$g6&b(-4o8qJY*mQqX;` zHJB_ilF0VzOI9J;ldUOAp^e;{DHFYD>%_0W06&Rm%RRr$pBX13Uw-2s1f{+J7Zo)4 z!xb8bps%BHg_M;0m&gY?y%XCLl4X9qVpdsLcd$q4jopuwSJ}`X&4+Xb3yT@iN$C|2 z9H^1+y%JG-M>(}qh@nex3M^L=z- zH}O(5Z1u4;sNvK%@uMTXy5!gDEc%R}B`=eyQt>9`A%3{C7@abJv5rG@KUAiC!}-lE z#-%PE$J~U$D8}QDED-|ZE{0)-3a(`Z^qk7UQ7O#t-KP3?cWX|%2{f}DdKg(dbFh-FHvHPZXe#ZSP zc%=xD3}@yo)FE^t$BEyt;Lv#F+ll=VXA9OsnWDTRB@ z&`lo0`2#x698lbULw8eIjQu+z=vTCJ`8*D11zMej0Z5suGQ+`*n-k!zqpF4*m>Hs> zWzU5lvlvZS9ss$B>i8Gy^42HN8q-o$b`cMG=F_-pP++ZsPvRMI+nh6N_ z;(We4o1Jg3 zeG(-sIl>Ska5V7_f3-#?Si$uN#a~3hSjRcPyy^cP|W_EAh|?WFC9Pv6;}oZg+QB zGWQsUEm3D;1QkY9%hz9|kDI7lOf;{J&?F;{gqOV$_0@^vMvKk>=aK!vnM*HewVL@- z#{aHzhg0$gB|YvKVl14LwoOasyuoyT-bO|8?e#X5xy;OmzYOijr%A|7y~yg;0v%t{ z#UYc1?$?|5^QkDMpvp7zU^Nki-ioD3rMeD{)nIMv=@O1;xL(ERT=sq%V$c~5ABqOg z)344DB!QK@59%vk9ed}Jb3R8FE?1(LNhMGv+S`-;*J_{WYKOa7n4i46RVDhjgJT>u zPBJn~xDY5tr1}=~Juu;`bSyHALf99f$bbOy%S{UbU5{MPA}X7rtQNi! zk((x9NWg|_jF-ZT`|CHs5AW}#w653Idp`Pn+ox1-WmEN5&c-M$Uy&X7*KbMm=XYp~ z8r_mz^cyl?T+r)uxS;DY-1;nsA1pSXh60Xth{^*g5{yNN2WO0EyYHu{u^IL8!s)!D z$Zg>;UQCu>Tl48;`1S2%&RN3!{ksHe^aP=nPM~D(kD%2&J3aX$czfDBBZFLx9qqby zSI}l(H%h3NC*4+1Z}d2TJ_bm*sGc_jJ|~Z{1G0Q$3HJf6F9}$U^hWE*g>#b!tXr4K z3|zOnyDlfHQXbcTs#h7MuPcMtV5V0n{z;@dFHlPiJN%(s2_#R zSy=lD_d&v6!6105l%qk_bnzzwEMI0)C;Q8DxNDYfA)V)2`s`&E6w+o0yMJk&6FD8TOFoq=DKVGQYdlD7K!^yC zzkKA>*!pRD`Lg`%J~NA4`jF%Behq;H(^uQ`514BA=|Nt*a;wNfhb)^|a|`JPjD?^# zhS-8)Yb!)SbJe(&G3}MaIJTi$s<~}0Aq=^fm0PVFSt@HGu^I?O>t>T{M)<=Lv&MnYgUU#C%TdiX|#4@MN# zCQ5;=*L|6yA+!nb7-pjm(qYec%DdJ?)_Hs!*#+2Z{0Y+c%kHY?_l^bKiow=guf`dp zrtXDWX|+{W2le?FmBeX5P(q@c2q8pN3r1uvK$v30{YmVe0Ao#B{Rrd$?ep;wY~Y2{ z+uK7~F!2SLp2nW5qwfAVS*T9e{M1LuM{8NTT8t*^!T#{Bu9wxwy{z;l?8C>^ zyMph)DsZs!Sc04l&KwxJT&q>xV?}(bR1SMskDAh8mAz{9q;Aa_Uf?>8_x2Q1$V;Jc z;XcT*O3IZneeAZ_0dKAD^LRX!`pclgFPlw&pS9rs`hEsas~yAM=;_AmE~~?Aw9?;T z%9?)p*{+?C$oT5jA?0N)3OCV*R4yNh{ZR)#1^>6#!Yci~Ide?LNFmp0!6RE-%IdF3 z173%@3G8{j9V{XhBShk(NjYpRs|kdB)n2WP4IC-?`1SMTI*Sk$kt)=R8(`pkNy6@IZ9 zN%L9r7R{VB$`(eQaEkL=GG5kF{Ttc-$v7N-BrUd4$qA~qi)?IHLJDtL%V-kaO8vJ{ zQdwD=aUJL|qoo8g3NaXtihq9}kjw#hRb&f1n4UD@fUEOPP*TGu1&08G5{W{-Duj=R zaa6=K^F#8tEGWW`@NPxCEVHu;5Ph95yQX9*8C`V7& zBYv~OVk)li$|JG4jq`&?3zfqUhk(=!=#MbobTiiDUa~6#7J)BTe7X(RB_6&>b!lML zil-X%n1YQykC!|eNNfbKl%a!*{7IQAE-ZO&CVm@|VT94j*|YGecxRiVDgq^%S9hYZ z;S@HvY;KGOWHd&!83csF{;^5HNvGNE5*))t<1BbrJte%;UcW2fJx$8Qv7SknH+1A9 zk;^o7MZqitU&IxH^y0x&Op^JyZOuO}l~Ee70P51{L;9M5q{vAF;oaO2 zM6_Otn6sTpoVj*I5w#a;?n=y%Byz`Eq|%#z=p=x=66;OeqcxRMUqWMD3uH8Rp2E^I0^5j9l|m;;mNwe_@L?@UJXurJ&e|-*1r@H&=SYQR z6+5TMmyUu69h*lE!CM^c@2A#^y%V~P&f7+ZZvupUYBevq4Ls6?k>T3wnigyM>XpU{ z5`p1!=BUxQwEK;2FSuyD3;Lb2ZkmzX=?o+K4tWe_<2C&=f6~YA>Z}&F0l4v!0)WZy z<#rVx^Py)x>sN4GwJo%&crd@s<+GWB3h#m~KJD(BEaen6-k$~ny4%hv=(ax^Oj?yS zU`l1j?!=Mr6>rI>h=Uecr?&t^;?PBQ3I|AvC&?1<#jr>rv?DtM;wdd7Z%vtM5>;N4jXyfZIWxnQb)+*$PicAPZD!)WU;e0<*F9OT7LLNV^Qj$9xgWQ#t-q#4+ z(PZ>6F`Pf=3zx(BtaPG(mm+SyWWI8Io-aOz3z2=@4Z9s#t9tTV12F(k8mDg? zbqU$iX`Tn&&IxK&teQET?xSkvR`aKzKgQAYN|~%(|b^(bv&mY+G^rPsX(lY24eYxR|&aB6m&2{R=5Hdk9;ae>SFt&tQh zIC~@6_s^ji8-+b+&$YbjCis~@7AJ*fVt!!SPNtkn&6~xV0p1LWrqIqZ2F4J24QWk5 z__J-6b~gE*lraktcTkZigQksT=E{pw*t|p1)1ajsseoJJHv@z8v7gaG5_01r}#O7^j4&2UTnprtIn)l(Be8|U*@&_5udr+oTJJh zo8#hU9avIbq;CVh^^2v~t5PbUsTe+{;1zv?ERzysR2)mC3Ku#csR>VJvqUGES;=W? zjprOSck8!kcl1$g8y5Wox2V;Ud0<+)xHNUzo^sGoaEF-13U)nE~i`+=1O|B$p!vg3W+}GM}D?1$bUvERNcoR>TlR#pjuUM^O)@~js9*FxrUpifN7ejN06DqaKc6uq% zzJJm9y~Vu}#3Q5(xPTUC1upy*h61LjvQ;mv3n@)^algn!CoTvRrDXh)K?k_VCL$r( zt0}YN{FwSz>o=#0ce{rxd#{+BH-niV^=(DHkzkSEekl3mJ)0!HZ5hbL+)k-(&IB6K ziLab+0&U?R@+Sv1PiqIp=$5?;Fk_(2MDMn@pIs^t&#?_+>m^E^}U6)k@ELSp_lhc0Rk#v)Qx^=_tesTGE-c zaAZ54ob}L~eB>2uqmxeIVKm-_@A=bK((H4MO&txCW>HZDZ}M_m$(46OJ>Ki<|*nnp__&-wdOD8I;|QRuW`GD+UP8>mRE zo>E(J?K}mLs*#ls6WTM(B^_?$1b{UCF-Cy9i!MTw9hbd>m3ez>#U&Y+g}ZPFn>h4; zl^Ky7`FyqH3Okl+M?6ERg{2HR5#R1fq(N$x$)?PiZC{x&^Em~RHkaAcn^QPtW<;*P zun>Nl^VI?aWag>X>m6uJn1%)F#ZudgrW(jLNLAVFHJo17XtmBQoNSv=Re`jBN|+By zRv|B9bakW%RMOT$y=I&H4>BbbPG%~r`MN%`HLKm<@7M%w6pdv4Z6A&jB{M|!#nZS3 z9*cV)T}R<+Su<{)HGQ*;%}XzBA%5XCF3I$jUy${^R&KV~`jWU5!_AlcS3gYWz=!oE z_~$YjCc)iZg=p0i^EjK$o@KMyXKymrOor*^o3*B!>5^)<^|b}3O?kE8UP$y}Dnno$5U^j%MyC?U5D!&+hIqGEkfDehC$f}ATD-V2cAs{GN)aWjP$ zk*Ub?&ILzh(ST7>xtYf&D>m29olUj9kDWD(M&IkyqRnQi*$j9sV>Ot5l);ouRpRMr zJsZwYNFq(Pwo!EjFTjiW*LSoKi>vhc&BuDDOb(o0PNIBGHDzYthxs}mRZQ{WtxG)^>GMP!}8IS?dxL!YoG)qd|yvvc}qqrPz{6Bh=% z^kc_W7z>>>VF^%BRnKyW%_QVqwR4d!=vt_Q@|J^nQ9|IJPu5h$iz!-$tszd{0D8@4 z(0tu%Tx?AomAvT58vX&a;qbq1_AlykUc7&)b)^8ZH!draYgi>8yQI#mzpFLcKi_uB zbP1@bdh#YXJ3T-BM@(GiJZ!7BQv?b-GP-c&E@ z-8a?W8rv6<%zo3>j8WABvcKV}Fm^uqScu`g{=xAoKCGR9FQD5z9)aRn8 zVmkkP20v%RuTXqCwZ5pL`jae1806gnM%)lhSEKZ2JF1rcUSyX~55lMH@DP>?JA4s7 zy)x@f42t>9uF)KngBNBM!ipub2$LTZ!M?;-Agas`7*NHYU6}*?>-^RlTKH`bDtsuK z1molK4(l9X)^k{Gj~Iq69NHzQE|C%@0)C8Du9VsI$_r^27aKj_7=;W$gPMYB2d7 zQKbJ?&PY&gB@>ES)hpr0X|o=R&aDHdjky?Y2S0qC~r=ggE1_Kp?MZYjuznWc$L3u~aI_Z&@c@ z{~&qN9Xxxs;_#n|-r+@y*O{y!mDQ>cA4l0J#28D3jGRL~6YE;g^Oq)8*KXvJy#`q< zM>sG9i1l&-G+3h%QM@uMzd-#|w4@l2a&WTSzQ4b`a%F1*)V+or1@7N73h7on?h6yg zPoYCet`~mee`#6tLB4-<|91ErF;tFF`(xu~r@)^~LQ$$TeqOe(lEVm}h;VI%lakD( z{gS@6xH8yhpiI2dp6Y0Ys&o(P@$)Y4O);%zV<}3!Yywv+;2UghRfd^YS-y4FzTzaK zj%zs?d4wie`mmVaIJK%H?04*|lnij-^0{yOuiB+0-9TKjigk+r3&HOyTTAQQN4r2; z;Iz~(yaq^{}WsIC!rEP-dQ17Oj2FTEli0yG;JrfQiJ$eG@R0VZPEjVC62{X#gF8Zu^X|;4!n9Z}c#|J!;SV8&^fi$KCj3x>gq)|+4;e2TD!Ad?ro1dcYyOYGw75UnLaP*NozGs}OK ztaizn{Po%CNzZtyfWsp}gAt=ke91Uau#)HIBecK~ftFrd?j8K$qW$RaGO=L+CH>@q0 z%0-i9A-uetnWm$HQMP>Lek&AXVkYIoZ0p!b<={dQdT=(KmO`y1u%4c;q>#m67&?~^ zKK93OV(+s%zQOV~qj6>rGi* z2@z90N{t5(+CCI4hYJ;64bdqbW6fg>3}@5Yf=g6e9_wx6SiirI1@CQZC#v)Tf9z~L z;7xzu{Bxo0%ILD2bK*1F{5B(X6MAkwmm*d-mKN5A?3#M@+vHGbogye z!bz-*ON00G1?^}5VS)r9uOt_lh$JpdNy0C9wqQ4kIqOUB+aW9+_B|4L;=P;}=NN?p zA#f+QZ-17*frBkJFqgxf6i0NeEzQ|o?FWr(o@~8wa5J~|&A$>Km-LW5E_XBTxBuN zZT^mpNj!{cu}caS4*d2~Ca(qqMyw1{?vgiRIdZx9KXxyD@!+$OM<&lZyWrNKLdLmo zg>`-W)ThCKr7&jRzc+f&CYHM{TNn=_Wtysu1vD-e=h@PS=gU{+!y~MP&Z`&IU(vki zwA*8mZQNxJM@nlzL%f)V&d|avN@zo@2RIg`h6#Ox4D&G&-#fL)#G`J;@)Ie}m?_BV zRPEV*U9o6~TNhi*u1n@XPJWFUj!=^Jy9}XRo>F6Hn{x^QZZThC(gorZe2x(9y0Z10 z3J)#0sm)mpSnLEAmXu;s;{?96F$UykHOzpZ(s@?-qiRL%v7ZfpEejJj z5|o^=hSlSYp=%E{hK9{)F}H`Ym(7$u%1l$JUGrH+Ws~@>uAUFlcp5T78)bx=+tzaK zvGKR#dd>qhd{TiWj9^6w30#0hjBL&IoZqk6`(B&iM=1uidd{@-RXRY?iA+u44^rUC z1-x1TdyV>wY0?!o!5ASEy2A>rh?&NUu!eUNPQ)aM6Y(%`2n!ElJ~e_iwjd2agWXWzobij&4n|)|=7A{dT#2aI!pKAO0fhM&tNqqyw z<`I>6lPd9IUzd0zOZ)^Sl($>ur&OU|`cZQNvK ze<7y#MrLng_D_(#oss>iTn%lRy@}b$RH4$$C~#UVG;wvdqD&aDtpd5#ADW_(smkq79D5KbO zIUbQL_B$4fhVw<(n#0-rdq$xb&sfZ0wXb7S6)T=^~?m9EnreP&}b67rh2H)LMieCSNM?Bwes9 zH$^;=bGFda{5G78<_i>KE_9irVYk(O7wrzhv_dAAp5pByKG4Nizz#FpyG8kIle5yAuPklmjuuel68N z4A%{W85ZaZxhhcE#GpjxKIOGTrTg~CM0!{HpS~dhM)ILd#{HL0ekPN}PD|%F(nNG| zYh_dMoa)I+Hs@jqb1~F&VT>>C0`k`2qE~RHY;n4b6<{w|UiK)^mIT0DPKbxQxEV?0t zqXL0q7K(c)T@#N7*%~vyp3Vo$rw2TiY1yqLqMJfC5x`X($KQ0RqeEGW{biVpOWgjZ z%Bk@|Swpg_yXpM1x4id(qk&}TEn(M{Sv*7h)^G$r{e4d7$4Q7rYN`(6zv4!{^dYr$ zJHORJ`SRG2b0g;tnpnD?;2#Mpk6604QT#-`1P-b zQX0PF_lm@D9Q=EL$XF3qPl-zX+A2YgAF$xn7+)DA3x{)0llJ+WO&TwR1Ps@WP$wLW z>=8;d3j<~Dwl5Ql`-oOy2>88~6bmQg0bz#FXz(El{Nn%n|NP$=%Bfha$OFIa?^oI{ zqe>f{ujp39>a59HtnZI6+k3+++PwW^=iuOQw~ryge>pgA@0DNq(Q$3h4?MU$Q^vjW z6>}hQx99HoP)4M-eCKHy3ch@Kbbs`8x5rv9bt3#XM$i##+;u(Y;BcSXfVQBGgUmMS z;?DzU?(mnVhljgP@4o)>1|A`~yMS3r^bMK9Kfw6KPHH=TjV%gQKSh2hWZqq4!M;R*&Sq zI6Npn+dtFymVsnU_b;o;^K6+RJb=f&Y`mpZJu*h<57Mp3{2u3h&>~ zfP(!!r@VjgbQi9D*sZ77EhqD8R0|D`3S*rqtIb$M+U7fHzfyZStkmTCX+yrD zSbSB)EU&cHAh%(VkDiu)+1;(}m0u1Kg2{K<(93;y&nmUIS96~{J31;qeenVg(0I>p z)3PahZJN2`1Neh_d;HWpT*2A4gdzFS!z*Ti8hU&10ys`;zQ|e$Ue+oB3}bv50F!{#9$e`*UMF}tRdh*ws_Yv1ex0Og zDdYLT3qZZb0YRdk5K=yKL4Ya#FFEF4hL`(S{_rw_?!(!9SvG$hm_MGHKMu_w&&(f3 z=8xy<`QyO+@znfrX#RL+{x~v!JU0j< z(TWcm4Awqv-O(IIkWUdCzI=LsmgM)qEDxUVM!;wAg0km7uY4Y(HW9hMerhz%I@)s) zcj}EmfQE{rSIGD)E}vGak1t0`e_oN(ZODzc2?jI&jIub8>Bt`kFYcofN=h$Z9+IF= zOA|j};vwvEye;k@$MoMJaMq_U4)I@N7Y82v_44IG8To`4i`1A>pLs|4g;Jk;FT62* z{lzQeI;S~=)4i?cP>8mH5N*r*Ui-4P_Y16jAmsUOnG31E(AO7NJ__Hz97B!wV-JU7 z%+p^``g5NC;yA`mlyQ_i{^u^_m3I`(dBk%*r<~&vL z*LTDA`o_0t{rc3+3cH#}UPT#2%qU=qG}vO1jW8<$b0jlXvWrIshUY7eb~3}49nvNwdtxL}FU+iRiBznt1YGyF>L8y%CxY021;b7+(y@Dgzwe4C zx1qESi1)@apsi6m97#yp-{Zk_vizDPOME7hWEL4!S|<9@D_G)Q^s-bwE|onoC?YWn zi%kY%PvvvdMF}iHk}VQ|ElV?BE2{>$kS%C@3rVY0(a&a52Nx*fSRA5pu#Gs7^7_X& zoFXe$ujh+Fr+4y}`(wiWe6~F0V{2kDCl^kUHRmM_m}%ymKt}Yav9qT=^Tm^Z4b&{A zl^(-!2(n!M$zJAsFdJN(?d0a%B8vbhJR@QHj6)8kvI^29^2qsQHo1v!GBTR8krfD7 z3}sIEtPaZy6c8p_9?&D0>qmyWsM18YQ8fHhuY~i-A`i&uSw29 z|Ca0DhC49#Qi@nvV`dEMU>1fW#Bl5{rp?*(YXbg379}@HChf};)&*UGcB^+rqn@%( zQ=T0hkQPzNhJ4pahFK7rOVdtGm;y|qLLzXG-MF-8G$(B>ilmuQ+EN>zOx9(6Ukk*O zKBCMKIW~cKdh=6bWF6PbvnSA#hsFe=P=V^lQ9;8mWxrQog<{I2ijU9A>WifPW!6Wr zzmM0Xd0AKBa z0XJ84*&6yY>LL@6x7D-Y{Pg1VynkM_4>aOw8O7TD>e*@UkARkTPNP14;eQGv4wHNM ziQhslkqpE){|9VD_I>R{ssA>8d$IPKqrqAg*(sFpWN^aPl|iV_1K*&qZAaO zEV)UV=*u$clhGfthpl;(Zb=X=c-m0=^$@P+tZ0~S$M^TeqQ>4AVD@HT2{c*xC??O! zWdGOn+pJqwDlB(7raT)8c}t3!))>7WO6Cw$TXK6CXQUt5Q6|#|qhe$U7a}PC>Gz~ZcIZ<`tjfH%w05lZY zb?D!T6D=V7sVHQBiy-y=eDpPmwJjpiwU{Kt>kBaGH`=#CBK0>$co=K2=6R1`p7Ec_ z$ook|9{Mxs$cQeCA%^pESHcK{wL{hn{r2Vlm0U!lsY4S&ry6h%0~MWj_;V_fSYRo!0N1!l$Eham8*2i@^;P zgu}J21PL%u+r#RLp62;kt^)Mi+f=g1Pdfe z0tUffA5zj|o&bTJkHx&}@X$oWCkp_q`2_t!zx;oVFK;P11gkd;2j+~`jeGpZ?BM}g zgBwChyI=@AJMT09kt?`laMIA^D|~?|f`)T5VZsx3FB2EQxlZE%vla+keI`(~Y_OeV z!||kuui+G1ehlx&i!{3sZJv<>SaC=qd&0>)=wF>B|J4_;e+_pkvRoSucOQofy(8M) z-4$O5)E^#J%wmHv?06cBy7)EfO}}>>&4-85z<4YPV8!T~0W|P*-`CwzW&pU5mq4HJ zYrnaYTsrI-X~~rdyXA>u5ks2$fBKZQY^N%lIN3flrTtjQ_X^Ckbbne${@Lf$@}H@o z(nZoDir(a!7fz_uO0oJ?dM&dgI0@wYl_Mx-ozi5($~hNsQXy+qRcG4Jzp8|lZ^Ov0 zVN%rPEF0F_LbeU-9nT(VX4{ZiLv+#&tAdq$LjxibWe$!^6LUs-j{Ri+`CsVw0yb%O zM}n{FJiv-hM5FsUy65ictXiu#QKvy#!LfY@yZ5S7x>e-q-`(AgpA*i^g15}9;46|V%yJWi|h?Xev19aPmzmz z9aE~ATuFh{%Kfe8%llY0WlOZ+B$zp&3>0a_DzJ$B00e;>{J)#0|L@C#Cto5(D~bpzfyiHOb^za;oSsGs!7w3*!Mw_7>%Jj+ zDkg(O5tvRkDn&e{+mfvmaIunPO9-4&DNu@0kmM4_-Mh)3PorI&G>em1DQW~vf!eY{ z0J#buQkDwDJ9yV*xLN?{#9_C%o$tNGROpgWFf0`qi_ScP{>5?kO|(j)UiUY>B;)~+ zxg%v^ZhE{1VNc!qBi^umWCL z`!1IQ5X|N2Kq$?m?u=u6&gSq>?L}ZeLB|36iSQMWMgb}m8Q_&^P;3my$6r4N#RdTt zQX7Gz-6bFpLY*tvI zmcL9Uu>BjX;%ZFJVE`%Z`e2kSNXIpt8W_Ar&_A21EG7Qu@0uKHWV>5mbMgqFvA=oO zsaQRqGRXRP`pa+v1?Bx|bXFp@*3BN zsJ#0`y5D$)qD45%81*MN6H2a|-l_|64b^ERTCKkNa~!0{^NFzE>6*<~>UDC?XUZ@| z7?+C&D=MgViW=d2kpf!^Xr#gGvx1wi6bz6Yvit^~E-9}RkBy13E_##UN4W8}y?Iu~$wVp<8lm8^@z21BA@c>K z=|?2F0e8MrvT}^@qj?#FV!TbJsJcpoC;?q*2~eAE*fvEixcdYE+auwP=fdMBxThmv ztZD|z%aa4eNILN|;rY*6+_RbWxzjZp2*+rdXxUJpb;XiV=$NB?u>ewr5-f0l=6Z=Q z|2a=?>z3_+&t!_=_m^Iml8Up-(1!l{v-;DB{toDGoBrlgZ~r-~!{vM|!96F?jRbgO z*lHeSAb@*|M-T|SCrao4%xMzfGjjZTq8z`T*p6RM(D4gp+C0QS&?B>BZi~Szzv$U2PLaZX1a?9wy6cP>@b3|sm79gTc0!w78+V2EMkZsTTbaNn-517+nJh! z-`fx)UmO$3`PSHk?^asM5W3lrz*k;;NvPE1X`=IE-6r9F^EN4G$hu8rimbcD$dPrM zl#^t^Gt828oBY@FgCBH8DuhF4o~(XCiLz2sPv0e1{p8bQpSSAQUaE%Mx%k9U7(+? zHInOQu22WY#MHsMI++)RmJ5aHUvVu1ZJ`(ay4h$!Bdbe8&|!`9hVtYiQ`q2Kp*6xV zM{|uB^FpXw%=)2ppL@^0-f~@48#Uer(ri5Sahw1Jhb`8~iK$L8G>9DROcDw>Mc3>1 zW4MaEx6{T-7aDc~AbT=pNAU4s0F%2(e(kp{1ohljo3Xp-m$OA%M&Jaq<-}<(9{siwp?Y&RxgCxu@@elp+79rB<*mo z+5S$(oocp$2pNREtM)aH$Los|gkmnBVILm6?$zKrY{4JpH`wK&VDLNwsPT1(!tZ%V z2 z9Z{5pf5M8AHx;>0p_+GcG@K9Ljp2qxI!5{T+=>YBQK<~~Ra#{8H5Cgbcr`ewH)G62 z;;Nxv3V*0L>7k__5G@N=dFwr|a+6Kcm38a_wkJ=4W(6a6)LPi zg+GdzveQk&oS>_KJsYPZP?paf&tuM7z8>G4;E{8c5I#(^FUR{|=iko%zWDY0`@=Lh z9hcsZfs>g1dXX+-XzBHEuJd3jNlO;u+M_T9#YT6tEIBb}#d7t$ZB2&!UiI<-GcC)V z4|?XZaxd-TelYZPzk%@)766u;!olTp)`o97KOUU^ROIZ#pFAj?hzN?s!vUZM6i#;z zQS#Tpn2z1E)1MAL484E+67GF53!l~Y;J=fz+DY&0+WzyuHTK}Y{V&pxyuV&?tI{vB z5K4V93^BjeJZN2>wNE=xZ66-p0bTkmP40%%Y#ax*H?J??A>46y!}&8b#rW{-Zv1O< z^Tl1r6Kj53yKMKq9GqT!2`lmC#o-UVm(X+^mWD747g;#@~#Mxd%FAZ#w z2J>&d#iBv-4tB|oS=(oCSJl<1MbjT%eh zYZ^HJOZ0yj*3kic9COA4g9zDe#M!(zTV!GVn?20?ThRtBzNpP#zrTZ#KOr09Gznjz z#l-OAWH!7Z?W{7i-bb@fyGv0HY8PH`bdZLZe6Ks`WS-LESIrE!wLGe~pERnsm7}8W z^r+aB$MTf-l%iC^p5WN++dXuEl^{Kz?Ju=yx+Io<-1mwtqvb;i?HO@S3Yv5OAZsMQ zB#Vz;s-o9ZjnwypVsno1q_evOtET1>++n7}F!Psqn2@GsMBV%Mv1uGr6UN^vLCVRu zo^Uhgf_M^C{&aQ}y*lq+_UisY97uWxO?y+IUyxwn-(KMzk^;p*4WNR$w@7e@Udu6i zJh=FP_=?l1C#?iZjZ;Ikj85#|Be&s2AF4{dzH70nA4a@H@m-ftX zZ4ZALjwi^z&=?3@VV_$vyir%qsts`PZ2!RP3Oy}}jJk{SB>osr5;X~`+ef;W6B~7| z3gOuWC<$UKM++Xx} z!aSG4%9Z;4Zz&$SnI-A;zq8sMYL9Esw0`wrluT>LIHMBqoY)Ikg@!R#6v*kck})Md zEp77E^|BJkmLi!XM_<}{>grm@y)#95I?Gc;Q{vIk2dJ!U{0xi5T8`5L=inFP1Vti< zBVe(e{boy?9r&?_5q=y8NY(d7?CKhg9XUB!r!lWMKm85QPwN`P(7Vr%>J06(DE=a0 zl)ek29MQOW%2iy|1k<%Y@BBl1~EUsAO z@f5use@W^qAa!_i!@E3^w4b?-IJfh`5wP#(YhvsvLnaY=#LttUDxOVFqNZdM5r?bU4`-qY{-BA!99MtRRxH_LrDHB3a-xsNT zv6~>L_p)-(K4?F!*8{2|^%_>U#VC+!>!2lm!l4hG_V zBFVGhez|PQU%RI1_8P;{+SZN{esV^Dv-GRY^ zD^wrE)cWiES8^zaujeQLl9ZhWIn>QIyPCXIN2#4ANM2@zw5~{SyhI<=Bl4l*r!Jxk zu_w>ms)%oNC^bi1>|pZ8|l)YHp;H%^gyu4DI+eH3v%t^c==#bPqQ) z7*BK~T2%;VhMpFAiFGleBQ%9HgTxx3u?#P zfod2IvsgqbFn9KqCbQfQ3_mVzT7f0X9=BOX6 ziX}~*OS-#@>oH%zz~W4CMMUNsCmrMMi*Uy=?0@`S){LJ%^#vOBToeh0{`PH}L5&bo z$D;k`$x#P;k(xi34k6oyGQ~YeokH+T6Ar0E2A+v8uoNog7sP?i<<`#reuV==$F z)orPg+@*4%G#*^!b#H};bFAU|ZHuqb9%`e4VZL0JWmEU1y2hAE?N77_VAyFkelN6+ z1H2+Ore-sg{uQrs9tnv&Q6tY=&=7-#J?cpI-HvJC|9%{e{ z%fPfq~U%uExSad(j&r%B6O9O{UK6vhe-eH`N7|{!$Dl( z43TrYH;l5#o%|l}2a&CJgNS`Uum*MRXt!1H-x8{WGsEsX{_54vrOrCQXaUDg%xzSvqJ{=G1&+^UUo zd1Yuhkg|5!3;`}vh%5~~aTyibyiEj8LN=Ne2u$EOCD31kB;n5urG0#ZFtp2r>K@#0Cdrfew{ndY#? zqsG8^;fb9KIbc0VIDG@JnEcRQQiwo_nJcJ`J^@2#a5`N2Ww zuyN5jYm+4$e~l0v77CKloGN!fG7oEd^?-yW_A`}=UBX-V=FoFYnj8HL4hI*}Wv`8{ zNizI)-IspCM7Qie-`i8>K-ADXB_L^V9-(K%=v%MkYVzEmHJ(dX6ILo_MKIjcfejDLr$DK&jYA^ZE-p}03qjH2 zxj5&lNfuV6Fz4gX)XtO7(+&d1_}1&OE~^(_*U6IfiO;O}ytUH1Lg()Hg}Qi(&JRy6 zI??g-zkVIH4lg>VCug0gcYe}6KN>o1DxX_dNd+)FoJIDRO$U)HdkL7b0x32s?QfQbR>T^Nq$Kt&&D@( zio)|X9PIt~+|BQ;#mT~es>UjeH|1E)(e zpQs%0F3pC*%fbo~JA})#<9*r!Q6;{a=|-EmV{E3c5)|K)jrb)a>+WMFCFa4CCHXtU z|1#98A_C|l{3q}p_YO~#U}TFGnae8$3faQKf|Swep%O%_gw_K$wl}18_H8NTdi7zP z&4Gid8)zdiE}od2TJ%9S-|44IEBtGkIJlI1F3z2CS`aRrz+OrtqO~Le1T7Tq?5VK1 zMlVIygyivu)AR#oP9o3M7T#-Rt>6)N?nJtKNX2VVjH~_NF2z%o&GZ#pvx%IBI#d1d zr;*3IXjTsk)}q7$wqz3nF`o#S9S&ilz3Q8L;5RLk*D@nyn6hzRNQnb?1TWK;)?W+r zyJn1p`6nz!3(%M%+61BEs^PPr=N|kIGwAy`k9*u;nhfyG_pXr+Z*Gi{dcrQB-D`N& z7xB_bg_fG&M)XxpxMIjSVTjlj0Ydp&5Hfk3#-jjfgn-05vP`bcmcv}H@JO$4E>?Ic zBMRQ@p=KF6K4ZL59*M}vox#1JBM}fQHiOA8?ZC{Ez{IsE4XScoj5(X6cJ0GB8_jaH zW;H?vxDeZ&pYlMOTBC}jERwV~>P5T30-lXZhcDg^z2_AO{ZGK)Xn^qtA#jc|*JALd zrTN?hOSL3=YLT)7k(2zkDQYU0_p47v=SLn|B7&jIqhNExQrsmXAvbk`3hT(IGvly! z6~`wP<1R@ExJD^;gRsSa>5Y;=rTyGmxkl z&CnhaHjj2h60?mo5Le&w%lLrhr$0mC#cljh9rrFEc;w86i@>(qQeNF0dn+UN_4|reOZVbP@B2p~XHL+Scghj~HwU*YXk=|K4RQIv@PVgS;GvEgG?gd<9km+&G!} zh3>_Ri}R!45+AeiO>moFh>_|wbkPoFHl({0n1DBQEU+CcfnLCo^Oh4?c|OMg*vdvW zx{TAL(2nU}HQ-rGvSe8axgEi7ryOuusUS2}C?jC|NyYlGxA0;zyM?FHBh2eEIdv`$ zuXA~u29>u`Df8BQVoztob$Eiy@M$n5K%gZryp|ccI?E1P!B%7h-4mrduVvqPa30}? z`FJ0Bh<#K}K64W-!;)C4stmeq-LnYqqPbdp#Y4N>pTZf0a3~XQY2JY81G<)vJT?tePVN$$>D=Xg3E=Giv6w zF@+!0)#}N%p~7r))98UFv7=2HTIr-xIFS+FB4}9cIGGl}Y{#TUDzdNX1F8M#QY}ZR zWFwj_xdbh*|0oWnuMYF*Q5=8?;-wQja-ZNFLoO?(z#{d~m*~^aooG@IBxQB`02=47 zp~L4!#g*1%HVPHca~(h*&sWqaxbaH7GpODy)^>u|K!X*pMPFzFHcV|OH5@Fp-QcFu zK-RM?&9HC&3aO|rQBioGHQVaMc|CG9VB5jG0|0wK;#3936b!o1v|@0~D{G^#Yig%` zYpXwEWI9}41WVk7x(@vQdApj37YD>r+Cak-;!4X@55bz(f`+I5HN*66w#v)gXz=Br5Jd z4_T|4tR`#`(Ksj^MXVRnc{vY8?mQT=<6u~WderfVmzomaSdErTxX+OT<8djhIBFc`*-T1Q9c7@z#m#v(Wfx<(%+h?0PkTofNoH9( zDLHR(Rcw2xYD+0)t;H%v;`@rQmNsE8zLEpi&%(VweWXl#8WoJxa1J}tB2tg}>C=MV zcfV;HHmzfE(CznM*NwhLI`b1Dp1FvM~W}C0=?rwL=V)PFA!w{c5O{PfOIB{(IiJQUhT#)fu?F%-B zE6biB{semh4Vhbj&m$n<^J?*mb{KyoBA3zh$p*aX+#)kfec|0~3M;Ai!49dsJfEo&>|zR?ng zpoC}98k%h*JP|2bTE5x&&s~Nke7?8=Mp$i2vb~j5ghYXdNwONt_wRuXn6Wi7GJQ-X8g?D_ zZ@do&8@+5)jqY)^JYT!LKCV8)%w2T4DRURc4wl9#P^MfThuoG+T~y?Xo%3jBGUyrn zR`JiIe|D~-pz+XTl|(x>31EQns1jnXgfVWH@{#J+D*AssWDbnbZcE3r`}MS(j85n90Sosw zp#@b=V)aO-wlyBP4h+-ypNyJ_K7$Fh@?>4Ws#>4WtAI@r@GmSJ>UY{K1kcv2=6zem447#Tl8^GyJJg%ZA?|GfUy zz%)+i3ITK@Vu;_yp7olikx%_% z;n3jn{4BcYod3`{kGe0TSBHbno5P>b)x_@K)fC!8i0lrZaezjvVyrw}*5Rmeo=o7O zlpE?iSv;MNMNRZ(lX3hJBRN5pI-l>$?)j0J@!$wUjIXK^xW=Z<7FLe?;o<69d(5{0 zIkp;77-DzXO+p`Op!fV_dQxN$kd3QcI;_MFRo1w2e z>L%e2Po^+Nv>#76DVl~mdxoaOmMNI>M$70ghH;JLQC+>QpYgz6T~kzA!JA+j@;t;l3drrU`t9UhfE(I2AnNk`Gz<$5mZp}H#P<DNnM4j2+#K?bx?XH zNU~S(U3oK=E-IY$CDtI9tU-HldSM4JDY8+y!6f7slfZ+G0I!4%ahf$3y^fmR$k_!6 zRCVJcqw$d`v!>?i<7q8F$Q$${$o-|^F=bxw%^2nsyH-F23*a3}>r=ZrpGcFBJICc2 z8Qk>h)v205PN4!f^R~;gGQ;l zyGF!EB|v!!K>C!+Pbejf`8cA-KpKpv?`NNd*;}y=f#3vn1BKMe$7u5GBi$hc?yE}n zebUn4SzA^sLJG%A$|1B+t%?gYOB9*7Dk-72;;o}2-&SgzXJosPEVO8sNJD<~5qv0s zP=%zES5>0dZup|h&CO6S?GUZ{Y$q0}LxI`r+%sJs!3kgs2?OQp@~{5+hDc%Bta^JMBe&&O}gc$BHyt|-Crb`>cL2g zx%pUHi`fUbFi6=h+C(Eiocl8_wXSK`e#5jJj%5^LfHF?>!ir;jnY;0C#FW1VzJim% zb%1LM1Tz9^{B|+qsUI+ZeFB7boP_ne;dq+Czi02U8%zjZH)yWd8*loNUXE@~7!(Z7Y{G>UY!vl5c+b2zxe}eISh*{>77)-@%vB_;#d3!hP2DX&}=i!*u68nKYv-GPc$R9PyjE zURgVY>wTaCQKYV`Twa7ZvNzmkY^SaHS*#XbMc2^S?yd+l2PDq;c1j^onf-{eWjSPj zWqeR|go0|MZBE3O3c(oFP{yPO5-B<~U6!JE{jo<`v2xRhrJDxF1u9H5Ph6auiHlWC z^Az(JMyZZEPDmEDW{RTJXPBYvPXLO8_AixPPdW3poIOkW*4AfmlAMo1b3K~HSy^iXJ_q&N zt434s6W??=?rNVfp3+(m#&^jq&(^@7U3ep?SURkMHavY*MncYmv!<{G^P4ohzU*oU zTVJmN7Pc6i+%#Ury4D=t+H|=YHVUC}XUWTI0GHK3UseMdJC}m}W1dLme~?}cu2~nZ zuE90M5iZ?cK)&Qal3CPMUZ$=_SjHv;RY=m25=Wy#LsNdpc1PuU3LK*n?GhQa{TI*o z(8IljEg;#(1Ce|r8d~+;GWu>crup5)e27Av)8R+bz<5BMIqIu1^h;ytms;^LW?%8z zq7=UK|EcSU@Id-shWAMA1xUGi#fckpd-lzq&p3e?e3N{=Z1zkd?S6sTjDU3Hu9y_Y zUQxxtWrJ5_PEt1bddYbGQDuD`;__O6$Z^<~W;g|^Q`ml~*EW4-(~HNfM@+a2whMF{ z(rlbOT?OH*$T6bBP|i^VW)~$k@^xSiqT^b)QGIixMq6xD%i1Wtz`#V!@p})LJ$SIs z3iN%z*#MojPy9AErq4HqZPhCA8gu)n)#e&txmIBzqSas!Z2|@ZAR7@3N>TuRSuug1 zWI~-CFD-6iAnUq>OvJ5;*!!Pn*$dLyu*xTx2BleFk{(%u;8ErE+BRz;@@Svic!{;L=Ai%H!aoNCRW1nc2=dW@I{NK6V@>ZT7?({@uOo9R7V@20aKg+ zu7`IgT6?VJb73R%YR7-Iwp*Jb=Owp)BPU$Cf#q~_qz-$*YQPeHEs{$#u|SHAh%K<{_g;D6Ua6Mbmd2aF>{LAkuW|uQ0maC zv=b{OsN@MH0=}sg^hjD3`&BY9g65J8EcI6t4aKa5QWh84+RezwZzCO!UE3omt>%_q z7Ac9@DsFFq1LP+-p#7evw0f}cMH%6kXoWn=N zZr$CT4)8c|x#W`dGOs`5#_43SURRMt>+CAMyPFUG+lh>J z@R&|iq=a>y7@;N})sb0$ZD+Qd`eV8)IJ&Q2LTN?*$W>I;*MkH)|2+;MsOH)ZT&`e` z>CWj=wpr)4U)Cq|UTA28ebl~4kK9S4f%S(%-TjX`5}I;YyR6es>&hZi3Z3<5zRqQq z-WF32W>+c6Yp^h|`M`76W$Ah)HHr@K6h^KFZO&+@m{x!WX#{kP8@~)Ec@pwFv6L%B zxmrR)D$w$%Ix?MBbc$GvGHY3@WRuJK6qWgKu^4{zT4-pBGT9ahWBXTwYa@->;M#Vi z&PBd762A8fA@^8JX}u0RI`fHnpYfyhkhPscF zB=i9A!nordb~FV02#Mu~zww7Y!l!s^#biL3bv_3;c0SK4o-Zn%k1L)}r($5UiUQxu zEPOHr-_ev(@THDqbP+wI3~l^%F;6`&&@{fw+|tS27l;%`73vM}i0(bp6IC2%H?}tLxWxkG#Oi6p-yNNEVcO<}%>R z>3lMt{!Bqrur&)}coEbmtSrOd!TwS465M;1OLN=(g~we8*JK<+A)CuXc{9=OG!@7emFcm z0R-6VoF8Il3|11#ts0P&&DjId*)OaRdjpx}8t>S_>>agr!@(VH1iZ@!S~0h0jXC#p zWV-?9x{t#b$5(rlmWuK|oX$STMQZQvwy*ZDx%p`$nk~k+y0V)Oi@d|<`a~fI< z>hX}`(BpXF9kb^?Hcrvh@s{agm?k3CQ2ot2eQk2~Jh96Gltaymb~=?v2X8g6pEam2 zGDHv-vJQ>Q!^2KX&I`wP1NU}_y5=>_l375pS(graOlBkeXVc0#&c%(mX|Izs9b#lt zDK<=bFf0al!+G+r9QI$q3G2z7y9`$>&SlDX_lJ`Sg&oB3v|MyJ@bB?YA^LRjpkHbx!?n zJnpjVwZVM8wo;3dT2rIlY_BCdqJG-`$NK9=z740BX5^!LwR; zej{AetOW0!!NbFV?+qHyZVK=AMKQi%-B7fGw}Q6-*6A)UT2M}6t|9uJ|z&auz3_{ULvu~M5ZvqE> z%rLU;IX$-odKD*hbE9ix7i#4WYJiw)S2Vw8;~T?8DlQt%*D?CWqwvB@H!xW96qvyD zTxf?Rs%juCc@Btx87@$a;A_tzTAW@87`-bnI^Q`dK!L;1Tdsnc_QOM)Uj)Xv*&J}7 zVOj@8SlJz{rl72#QZZ}G3kkjvxmt#PJ3v4?A5J)(Dh=3l0^&^$lq7_?bWEEG#$_ig z3?Mj7V8Y$aXk}Hb*ihJGYnp%(9JG)gxrCLyWXHZVuqgwQCz_+AxjTC(+F9xY*v13c zwlU_Q=?zSbIWTs9;5?wOgkqcHF=YGd3=@XMo;I#kJU6a$VcSG-LBG0XBIY-4S(E-N zTQ82~%HOd+d$Bi5S@`^sLtGg(Seq|TMu@|~9^08;k(U8o{UTA)JbEEMM4bnHt zNwE-#!-2r_vSMa&S)!0(T;eq=1-w9N;vk> z;G;j&uD~{MH%~Mj+2&er$gVK35_)`E%{J=3?*all z1}t}`&~F9cJL;i=!o2JiWV$tf%%S zyC2&*N(*^V?Hs7^x{wrACzV}lHYSf<&z0=OB&c=MQq*F;E#tnLO2M#d(W_TaV@$`j%KPKLtiToeBCRUkK{Zqg zJzS!cqf{rcsPF3Bv4nCF(YgYpf7XSMt5@BTy|qzaC7g0iMC1!KjAAWJ_s5U9fJfb9 zUe0rVwuD^;SEjE`L_5-1J@d7AMs#5&qs>eFT<&Ju?(+t%+{t^QJW+giHp^b~?3G5E zc&XP1&N6S5wQ?&K!4em&i1(P86mxcIrp zr_PUQUc4);O4^<_HzcZ}0VPxA+r*O;x#g;!u`{sTgBh2I67}w3W{qZ~h|0F$!!Z&X z=f!&X4Hj7m^xGKKb2|Hgc~bOn31qsq+@WVMzM5A!5LS4-`BafVlLIO|!1RWeg>9P#g^&ja|II~o*a9LIZA9fhXnBa>iJL2dxW|DQ z-HIHgC^}V-uQDed9P7;5%komN3dlfs$Q_IuwaZa|m-knBU3By89R_rf7ey}Ix{QI- z3bQ{KIECl!rJ9W#|D{$lds-+lvh$ecQ-w|aPt@vonQ^=i%(Ug^R*NEgK}CVEs-g}o zkDhLsu)szOC#6+M%gUX35gAzl&kaOm1m03X+A9>fNO);QuAqFIRv>umRH{+PbD3&c zp7XA@@>LPm7?C1rWGIq2-ST0ajcyjh4<<~e78PDPNUA}C)F>3~s^om=(17;!jHl^~ z)J!p^6w@iu3oY#X7-+>ME=PaycKYbeidK;~2jT*1`#~(f zEfLg>tO(ZNRv8v>vqcsgmE$#)4TZL-zHBPCv~txe1$9t$$-YXyLMU>ciTg?bktfd$ zJo~>3@c5FR2Mo(4^M-+Mfs%i;0Ik>sO49TtxJcwBr~;~2+*`Pv-sak|&fVDLjyMLE z+kP%7Wz0jRhEU6Re{~fK>dCAKFsdf27;QnjTxe&r~z&vU@C0e>PLKbxuH z+jRgnqoF1ttzV6ZE0?=Y1)10K1G_c}*@jcE#b`M2H_FG;YQq9wXAGcaQ%k9ab5QKIU#VF#RP9-(W|i>7@wu^yC))9VQ$=rZh4 ztY&r$Uw($yQVev7?UeUS%JG((D4Ix%Qf%HSmq(*cWBw{AZ%& zYD{Wp@?MEe)eTp;c}mH>T>C{#X(TOY014A(AyzgwE7d6qTIGG~2i8MwLy{}1F;YZz zt9m4o)rkD&x}9$kkKt07Jv_uH)-*eo)1ujM0~)lDG;S9k%~34m=(Z1QL@H0BjZCFo zFJ;)#jgw)cudOI-?BKSjDD+{VR1xw7=IsPl>xLec

TWrHWs8;rvjXZ=Ra&qTWFNx>i2jkkbx;HzQX>h{rdHF8_EL%m~9BF zvGv7Fs>ImC7fvtVjx|ndET23%>tFhBJTj+2nZJOEHBx`MIE5JB#c0Y)uOA$x^goRG zIMfp39D7z@4-3v>mK$qrfvHD~IfNLRb&8e-JYzU|GtBKZW$vcCP|bdRQ|&&yzlJC0 z--Sebid|>GB4HuF;<4+7FxPJF#kp`~9Lp5Dr4nl(sK2HNR%x4PP^!HqpFYxe;5 ztj;N#Cqc(XMCSVl%AQPGTj^U5gpNnH_wVf5hIvuR+&dGie17ScLdH-_UrADUU+d;9 zQ9g7w7dep=nXon6_g&EuU>q7;QeR^~fha=Mxe6DStu@I19z|5@;#^p*?&1pDjGLC< zqOUjg0%I*3>4T>-)~cEnOZJ=fp59P|o^Q@KVRWDa|MMgJfX;>a*Rv*YzR-bCg&yQz zWi7M|HC8!2l3Zz-HxpYDXq6&-A)M(W&jj`PSrd5PYUZc89Y^`U@bG_^%r%;?`JCyWKo+Y0z3+IzW|CsJ()M|i@iqb*8jE!d}Gr3`S(i7(*1S! zRws)buVrKJE75rZ$1`@bsp+CrOJ5$By`Ysk8Pxs)L=tkWUak}0`myp&)9iKC@v%}G zJ5@ABZabC+3NByj4l<3OhA()BYk>PQRdX&OnOiipap*>-oxZYXWzWpE<*i(I`hM@^ zzhgv2Hw3)Lo(S!9YKG>V6@p;XLCT)DFL1m6j<&1so z*@nezAJF0u)gfww#le6=IDHp})W{jz3eb*Y4INd z6frm{O$g!u*lH0-^PobB9(Km^o+SjPjIzb*81)yu#^8iZ8u^d!>42ar0BB=UKg@Ng z6Q8hCUN)NDG<9d}<6d^-K|Lv}Gmr+>;fupsOM367HhHXFn#AB11(DUE$VEZn`IRq} z^ul1+iXbGZV!komOGMwumFy&xhrbvu#Pl*Pr|+6s1#q7JBk_2YzU6XWx73H_m!XW$Hyz7^%65QZbxBQ<)gB*!aD< zupp2DtGq9Uc;Y#npxE`|w>P)O3J%n-Ln=HAsk($Mul=Cc^6BK?YAUnIITNMbjIty6 znKC6BEDotq6q7eDubnw;iMymHKi+h`^Xt_0D2DI?M1RfhMy6|{ku^xh>N6mkP&-hIi^T}1Ao0a(p$YWtMNNQ(&^j5mG*O?0o7sQu_&QQ z&asQ4VeZbmf0-(p{D5X-X3=aG6*W8Q?69VBJ?MRc-i70K*cjq;$y%>RIp)~=N99(n zP6C^8TcfduW*5Oz^{k_9+w>xUHRNyu!am$_9Vh*0S_ z9t3Y6LGlzk>d(J6{Rga83a=D(m46Pac*dH~HARgK^kEHs6EKN>V1Hflqobf|-pz4{ z4WSe!)OP>q_uO`eGfo!!3HcV@v|0NgtE#~BPv|6Ohm^9Or*0QXXeiaiI3M)~b~4%~ zXv^Axc45!70^8|G&&qjSydcqquzii@ZFBD%~zuK=FE}v24{W#7KrcgHP{r)h=jy3l9ehpeZ%01WxL=4;#z$osf@4t0B143%4g}9G9N>3_* zv@tTT{ew7oq~d=r`rVN0-C(|ZW4x<_E|cZ@+U`GdrypPG_5()jInGB9zHl9so;Z9P zpRO29HH; zm%0vle_J14P`!+E!jj^V-4a;f{F}~J%l72!n*yDWH z)qe|6!N&^%p#-tRmQs_!tE;3zmIVho*?7Hq;`C;tYxNbAcW8;iET799ORJ@2ZLkx2 z9_ny_ZftIUhge_7l+Uor$(Qef$-WVD522c15h5rCIn}cIccVI?=qK%yt5$_!*^RDO zQBnuDYYv8wu@QBb4Kf>HlE2)ZLXbDI-tE8(%iizx+@w$6yZ(9e;EJRXZn?2ovWGgb z@Ul9*sv*c}bx31-!dEkR^sZ~LO#J3X&XdqDyTz#DTNO!GQ<@m|(9@ePQ0)TZbfd_roiIm9-Js;Vj zl32E9I4DnXfhkgbY|nA;S2^)f#Fsx6IRX1?pdo*>>nV@?K=;xKb2l-rifA5O$_s9T zOuz&4^RqOr)4GmKeQ=e@r~@j9VaW5=5MjlU zgUNUj>Cb`qe9S_u7GuiZ#eE@HaV^Xr@nskIDwy-7xyV%*NtssuiFl@WA&~nQ7k`j( z=>iEQlIWE{U!u88Myyyn3aPtFji4WpEExLpYt!?3cO_4<`af^UOchEXJyg+xhLj63 z#6;~7@B99i9ELSJ_7k2*zB<`=Q9}P<9Hwr`q^!Kx)yz5H6Dx07GY(r8?rnR9Jzzf= zKHJ2h2m;W2l+~KFaW>yukU?~c&o|23XTK<>cbg36f^4f+GCOF8Xdjk9 zeJ`KhT#fyNoCV8pKoZ3oJsU-ecgPOC^Jc(nv3S2H)NE4ZbB(Im3~*@>sy5y z^4K7odXC{bO;TMWs))2tHKPoiQE({{-`cHG!ZKxoYn0v=juXd!o|vnxEL4%vw<6M7 zH$Ie^QD%8ip2N&Eq{}%n_&7A0puojh>kzB{2NP<%2CX?!MtU9^D-8wkppz6qc=Q@-+neumFaa~eJWB~ zN|PrqT78$=U|%-sQsNalc{d3qXT9KDQo?K4rKRH}sT{=N<9OI(7eb_u$0-}K+0x*Q z0Tp@tTxQcC-pX%B$$zm$y*^~Uura+=JmRar?4sptl>xKw9n>k}KGc;?ik6`FLA3<( zj=v>WP`fNwM1$p^jgsBD>LlZfJtD8?3yeA3=OnM67Y?2oAE}bw|G~|=Aczk@zMXdXL2L5Vp~_&9p~7AU>y7X|-#TUgSi} zOy&R#mGdk9}jBvhNG_MmXR(mRpg7o4oeM!p|B1GJ}`xb_Flz3xg4>ffvB z%}mGj3s9oVs1~tmCBReHkix$3YV8IkodfU>=Gm;lvYNyQ=dX>%>Y@pQV?P_NynB8Lt*k)a>)V(-1yq-x>VhKuJYVDXnllJ(91hu zl&1oyi6o5^+kehEEM1EjEb_$tewtc8k#)<7@;_q5wnHPOIEE2#)~TF@!F{cd$DD01}xGAgeR4gC5|#g%ahH=0)uTS|Pd~ab7t-NAT@WxaVf)Tmk44!6M`;T=238 zKkT|Sl~bTG9}I8v8g$2SU_yJ+K>-V$L-eQJ9z!ef1Db~f1%Q}64lV18ZVy7T28>?V z+=uH}1?Rq()vf_F=<`in5RNL1UUIn|Q{61kgU^2VJ6wObi7a!Fa0 ztjfH3m%AbR2Wr*Y9&(EUeJAg3rv?r*{&#F2)OEG#vA!+}YPE!DCOGI~gDLOOrg@xn zjU#!lTtU0%m^tdP_vRU3e$nBUK-R;Gbtg3-XIdWOpDI)Y z=??rf`TLYX4TxG8modx)%HFU;ZUSNVIJx)f4YqO=qEpRJmM`gh5?mO&Z?&#lz+A0q znQ^7DV;fD~f2dynY3Dd}hff|z{!lUkv`lq^c(^Hc_@4u-5b;)E6R-VTQQ{eYY4y%h zTY|Xfl8c^fPJqNI+p%S2bzGFdrIQDno2aDvypCF4tM}Mvtij`rle&}Dpm@YcW)WFPBPUQIu82F zCnfg-FEQ`&hYZB=980We2RyTMN5tN^b4ghj+K7M&3ia&!hKA3T9+w~cd-JY1 ziF$s(9Cq4Gq)_);2UlBRi>-t8T!^hmuLq!Erq~p{%v1UGQv<`~Ob!isKgxCUL#cC(ri-t1l+6Hem~*S+_mn)33kK?KwqZ zoNdmZN~x3>-RpY1A)0``x>4_35KyW44@9xV|DU0A|7XJg;`p~Dl~Bq3mK2Fx zbBk@2P`TwJ_xp9Z-*O#WQj}{Y_pwU3--fx*h`BSu=1y+I#xQ1#`S#2E{0HapKJWK= zJ)ggGd-KTAFb}hzmQfKHQ-L_NgOP02| z7SuQjm)U-!9cju}+Am;TXGiY*0tP_N2B;<+a)^1$5gn`LHJDu8OO+bXg<${6ic145 zVILO(^B==}vr;1CFn243>%dHQDu>6hfJV>CNA9E=;VsPH6X`f^WYinJ2Tr(QXF;x@ zXcC&BUfmM3B~XLI`aaO}IitWO5x!;dL(>@b3r)`74+SRqE7Xz#950wiJ6~jbj#uwtA9t{ zo1)rWIbHu6G!7Oy57Cz-W3HWKgkGQLrbKXRI=i0?doAi1-=DKg{OwrZ+M=;|m43^m zD85rdA;;qV?giT^=swmK!B9*^f* z%*T}H4DQTg>_j=boZxw0K;({E61gXPCm^Bx@TQRQ4f#cMie>1Rj}G5ZBcw42N!mzB zPoJlHkk@Lqj<*&vv{PW<8u%LJ;IK&QPs&KjfmPo3{hFFTrJ$LR5d6oW-4SZxEmd;7CQcx-@Q5&GC8N$RbB}P_U98_N+3Tb z<(rtloE3<+sZp##iM01?@p7*%Nm=z1V&Zzo6obgeE16;nP}@IxhfkZ6n;cyElwCvH9e zZ?9ocTtmTMKoZlRgZ4y}uk)Q-xjnCF6L)KY0|GW)Z$Iegw3jM1VQd|*kt-pU!$R_xSoeky7 zX8p?+&Mx!o`45+@^CDAf2_>?9!XMB|g;D5_7h&e)Ca3R~CIon4SHZM8R+?FD11`!* z-QjS{{avPzhcx<)7C4j21I%!)P9Co;eT}xL+e#Z1b!#2P(|S{^54xLk*HV60$Q;gR zw0V6ciPdsGCheNIqAErFgTc_a=umHaL+9VhCs*dCHeT7G-%xeDy7UQ|)DAy>n=t{KFLhJNY_wTfaK`l9J9=W$ z4;pUJwW4!+gYYX{UlU{+D#2|_00MJlM;m$fE1%we!5ZA6Sl-#EWo{(G!XhTbIIXAu zVZgbe72BWkw@6wwE$d2`A0)DC$A$FvUs=@bd<9-3B}>qO0*v=#2lL}Anc#PoOQrw^ za9SRyed8kA9Kvb-O^xZEr|xC;Gz5FcDoq+;j1f@1;`4`i^cDeV`ZxDBu5n@2=E`Rv z<-Pxr0Xv5Ci+&vq;nTEdpz_tS=u1M_eLTO#Nz`bf2|%8lxfC?vH=OzjbEYKc15YLR<|*Uuj*0~5^{d8mZi5?X6V_Ra-`RTp z9S&RDYT+UAk%aj7d-4&ccdQ)xudeVs5H%CwbRbj$h3tNe<-Ci8U@Wf;n#n75+?UZu%sxZ=)}1O0h*Z z(mj~V;}#~Djj{4+D#J}$T`+6#+E1S8tO08 z9!KxZw-^#6C)_1Ag&y7BZwPe1(mX1|>|*t@ci(!e7%`DkN`6Ay*YDKngxP-#ffcKY z`a5N3$HS@j4&qvq#O|G!mh2xI;fe&sGfTVtH!nvPJpmy&O>-aYeCiRZyESB*{7?I| z+WE%idD)vLIfA*(a|8AcN9h}|Vf6Cc6_IrzUo8u}w-k3(_$SaKTfQ-(?a=YN8Hrs# z{H}z1d8A@3E-p#5xE6ysAJ=VuXxc*Fsa#CG=?;-@>_f_x`_(~REUt5^3unSp=!%TnK_gMioyhDMmXPzrPfNYLN+}|tyxolXM2d+~ zc%OqY{&m)Vi&Mb%yqc(%I)|!}4%uX-ef_qmFt$s&PREhMPJU-Wq03klUMe99ABfCz zFC(WoCY}TT4(^cp)ClPbeIm@i%fXC&@seoo%IJ_v^Xc5XdP>?;+jiqWr857U!_+qY z{rCg=6c2 zOW60(&OCvRe8W3+=Z`+0J>IZc{di4Gu_1&wDSJniWFPJ)#{-*DsV0V&Z9c9nrAN7J zif1byoMEEPw)1NJIh!?NAw)%t_68d$^6C;ONjH@tH8fhO&FF z9-V)oJY_=8&PyV~nPT0yq((2d4wv-i(kDkIYzR!JW5&{aP##!BHU)o9@zgN#iUtwY z?buIM+fRYjJ+SOr(h7*a?q}l0(P*;K5nh57tUCW_^Y58W_uY0`omZ}N$LD7QOD_za z$8y-lT`_MDeInWN_eELQdEO%Z>t2r8`)7eNMql!zE0$!dRQ*dxRxc{!)c-s#UMTsbjYJmf;YB6rOYB|t=bzMRFRHICI&MxeQaviwU2#e#H?+1$mE+5bt&h_!|A zV-3jSW9aqplZzf9P{uf&j*q1v%F*mW58L2hX z5oLK}NGHuieM&EoNGRNH&bOt0nQ_{l{mc!ZD6~drzNnx^<22X}IkUCpIdd-~soQ+Q0_OBxE=c6woJevL<+Wkc*j?xQ$oQ9o| z&GulI(R=~x6*$uz4`=DTg!#a8fIoJRxzQ**b(7s17m)JUk#B~RA_G--C3gPg0_U0r^+bExxn+b-X?9uF=0I}x8()Tyeo zruQkHtN4u$n%DrW5^M7jbSg;JF{v_L~Q zW~o_}?v<3*{rh%aaAFngeu})3dfF04(CKH}7`KKiGS>L|k_4gFxD}LBjwc)v6U+j# zkA$B8XnU9U9huO%c_HVI{~uHVJN5aYjVH$IoKbB;3R2J`Y9ccto^emVss4uAI0g-~ zX-&!dTQVZAbT@*Y6S(s+#Wve}Exdp~<`e0imvuYw<>mSk=o2v^b))HE6;J*7c#DRB z*o*%y2pnF-O`m}Z&3F8->yR5SxReGd>vW)(&}s*~7yow-7`;~BuD|9=+bk3mUc^e{ zKI{4YHbAxu=J?&CrQyeId8uyW^Y7rn-<3fMGiLbwwgcvF!&oHaeojxAZ;#hgG2!5@ zLP5S2m=|4?6DYI&G!-{BUo?1U*Wx-eZy)%N(A1SP?Voxt-B=LPB2}MxRFMJ%CwYL& zqV8tb^gO8$6(-Co5`RSn4S8;S{|T=01urM0;AS+fSohiH#3FouucY!i;jL|I zm02HB8}V@h8daXvVnCx@IbN04DS>n&jrj z|7ohDW50xlD2l3dQldypPSj$*e+o2R{_tC?WX7qYHmZ_#)T5*wtQ{Wx}7FXECZMZv>zmyP2(-*5f|$N=wpb8f^6!iWQQ z?~V@nA;oIQLKSQE>55w3>knRe(Qzqa8X3#qk~(wnt*;Ow^es1ahmAeEGzDV+p5~sZ z*N~!QS^E`LwTmvp%&wCeiJg8cuJ=%IR=(-1)WedSM2^?O{y`nqUf1<^+l-JYb9_C| zSeFixxfT}bjRy2&WV`(r3WxHWi844J_FA$$M+~SNY;W%bYbzBdEbtf;-#bs;*$VZ+ zNWTn0Iz%#6P2nA1BId^>mTczlu!T`>Z*sR}Owo$uioaYo);=2Wij>yIMac7x**NV* zwD!og<|ThXhII(OoOqLD3~;m^_Vg;n*_KAda0I>cXvdYA6Kceiu(PEfM5pKA)u*vc z4ama}&*G=d_Xu_B-0OVT*Mw#tEZuHnXF-_H{8EF)x?cb!nDoQYTx9w1k~e^lQv}Ge z;E3t2VU$dHF-F&$8(?Mj5bgazOf6ZZH^}i^v0v~U(q5eW4;u_s2(N)v6*L3)BCT`Z z+hc6Mg;c=kLyM34Y~D;{9!jux+GCc6N0`aw#)Ommtq#=QKlFJ2ISyXU!SRX(m6V3_ zIBECgJMwhS%pCHw0OR$z!%7^KK$v$Uma(Tdh6^eB$qWe$RgD~HXk1Wbv#?qg=$Ly* zFW8mao!lzFAggiX3vPK3oINlz*$%e8i`aDQRv&akWQ;F=Q3q=@st>5WzK8i@o2HMy zq1q})CQNq{*>Xorn13fPM}!VU@Qu8J!s&W%VwrtBv4F(IHPvih^kVt?iIGL5;54+ zF>kxVN}3U9w!GgW@ijFFHTy;D0hXBwuDRJ}j1<*ciD@<#9#O>Ck~{i%Jw88cZ>gjW68WL%BgM<_uIG9hMweX5 zd7K>{dAvtX55I<_wh z&$0l3jVloo^oA{?;6i*R%rz;zbpAiDt6Tq32yp{P?MD^w{VJn;EcRr02TrM&>CVlT z+Pn~OIR9Y(opiNUQe9&PS5R>A5n;82+1zLict1Zd{>>Tc*)b(HBC_8Tc&{{i=Rrhi zceAs6QgTqETwjPm@1}|xXQX(UCKblBbM5-HHpwrrGx&w3{Dan9sYEd(p$COME+&s0 z78T>JPF~s|oF>fUa)@HklqQS%7Z4*a*@&V9lYfa`Et@`z0%7c$gd3vkI93H~yf;~2 z)$S%M;3JQHcGDd#g)om*7Ox34XmN_wds!6aub(?((W3D$oQJd9ICb&8YRh$Km_7*^ zXk%p&Cfam%StdjksyulVRNyNxq;3ClsZ-zWxG8vX4^C={z)wDGC9Ks)R5OpPda~rv zw?G{wh{nJNEOOZ^N-X~OIFUup9Z}J?CdYS!K9Qy_(=YF?D4Zg80r#v7TR6Us7uF^E zW&{-q|0w~DQG^PQN7(i*S=y_l)F*QFW~Yf=8i`BRFx##YH&!=xc?h~51h;bMXBJ7{ zsMGGb=l4Uyh`wOl6TsVdJG?TJcvZ^=MZ2(dnIXAzi?1&=k^Vq2qMf}rj3}!6$_W4z z?-uxZ$lfRq0acz@v`{aEW4_ZL=V}8QS{QxDs4swDorLYRfag&cc8zdHSI(bU&?yg& zy^lJ-Lo9YBCh`WRdyfDssEOYoq=leZu*mTImXxPjy31E(mbd1q!?khVSMjT_(-U`a>9_XRIW5JZxW^1QR4Bs zu}3|?=O8G3ssMtw(?Df(~|LaM?T;ZRY z|9Kju9r#x48?`wq4*Zg}^xh0i#smcluTt^Qt<%U~kloG*aRD)QK4;i!!qP-$9}mti zHEvfR#6nOCf2F~@DV@@0Gy7L?w0@{eGPo(?T@odS^!c>BuJe>&U#Ast#}w*MF=M8~ z-&cvZ#Y|HH9om=b>@)1W6h}xiHQ9N40F6g)L;c2Mr3!0$p6;4u2Lt>Sjfgj67M8Eg zKg5?j5lv8xc?+ElUsSAW-Fy={bXOj*Lk5pw1 z{5SjnbFS$*r%!;_mT1FskGAsPeJ(h#Pcu{BFA}$nE7U`LH@4GI?_DoL_*jwp8i2Uy zdq=8Q9F}2LDK~(D_-AnMl#8d2jS5pM|1N%2B=x3MY`zP=zdiWeQR_3f)iUYi+o;KO z*`!)i%GVr}HP~yC-ngk!pEf(~7>+oEIWlKK-dhFW(-SdxfStKYDM9X#J&tUm!l(}nTus=>t{557D(o}bZtErZSEohAl;j`|CD(zwMl6( z(x(O9#3iup*hjl*N-xRuGn{8EnmDW*egcvqX`aW9OP| zs`Rc+E^bD1ujQjhn5iqzicTb=cQDr0Kjki>!Ov_(YFg#Ucdl1}@t7EXQ`Pfcpl}Wl zo_a~ka;ioO;`!M>PmzuC0sJDsNTdFyW@_#Pt&(0*&B?v(Gg84)FCQ!j>kc0<*YL7i zQt^K?5$9C>xLM1B$+OxOPt?`b_(h31y@^XwHr8nS03axf zs`~GXccUH)S7utzr-}Uzox5S(r>yUtArAS|X=IhKrCO#s!kJ-;=Pbrdk3(&Zp>KFY zOZG8Sjqe4A&IW1iUaSFa2p`Gr$%aUUbXqyA#s~9bU&ll2ZyP*auJt2eHRnQq)q(SP z>eUuNIw{{K(pU1@nS{Ef2pYl^D;Xrd%0ZHh2I&@l9#CxlY6JslgsG2a)@Vq$yjkWvagcE10 z1U?o&Xw`$A54>?=H#0U;p$5|S@!hM*Ek@gwp2W6VqgbT|l8iggDja~^bG^$|9Fq5Hux6S8etTFB2Tg%1t?#xy8k$Tt%58ikp8-sx9 zl|BC^pf7@3?L5>B(YRdl_iHv=!g!mJE14a&bTDVQB5be5v+0K z1eM_;zS{loGz(QiWj$!Gq*i-$%g-Orwv2&{Pn*NVQ*ODae+atXwIrO$erRZ*7XVyo z0(HL5WLR3P=P8j~aLj*;F9tUJ&6F}+r}X)=c|k~zqrXR(y^eeRqYf^Pr_Z#|j}v*2 z?yy*RumGFlzm>{R-Ej1EaM{3Rc^?NWgMu=;QH~%|$uZ$0Q^ruQY~jGe2dp|yuO%-% zCUJ30SH+S)6{hX9w|_$ZhKKXd8wLbvhMpg!OZK;XWVI@@b9vYY4li|CFWGcM3l*sh zXQykeD62>YHGsK;rfwP3E{-{KiQVUH_TF|uV5d&RD_9Mb7KA>GH_MNu7iEWSh}*;c znViU~hRSq_gwl4s-hhI4R5!fCbc1=YAYq1P`T<7|*o5kA9E@4AD_;65BXMdur4jx? zpr6{&uwk_+pLa4R=B&)8RcfwsaF=N3Dymx86`V}GRV8mgHT3XfgR^!5$<{6RH#dKE z#dyfz!?yIwErRv!BmfC$pYbke^f^^d-Rs`uX4GF6|BAEVO;h0?%W^v*qEu1k5yfzItM)8LQhsg9!aPM93*>M<+EH(}$q_?mfwcP(*?dt^?8=Xd*mIyjQf5p>Fl5^ zRj?yESMviWmQDSKq^nr1AMNlPoEs7J>zBX38=*fSAabBb_?_TtKTiJRF`Al#d$1)D zAoEo@J+d6ijoWAp>nSQ+fR_bMRUyiGUwz-<-~070X~%#Bj#|9-1EB=*30NY|1V=00 z$5w2~!1yX4zl6tfnS)!{A1z<0th~DTb%&+-2pC{K+NGpN0EULGGBT=-FH~hTKHx1T_eCx(6Y#$y?9Mzn(cl4@s@+dl9|uzi_Ue zJON%O-5W)5Pm-*s?Xnwk_l6sm-bcAgaMF4cFd_Ga(1v5#GqTQd9ICY2yDmS4agXJmX#z+jLR7GL= zO}0qbi|Cz3@m8&f;jRJJ2FDYAW1FQxr%mrzdW^kAg_3i|H6l)?UYtQ^EYE&n$kWOy zC!28l8)s1oWz9UN>J}B6yRwj@8VPK%o_uM}HN8uRZn)!Mhi)6U`P|(XO#hBE-Y<@$ zoDpc>sJb8>!D-Hh-{v_0_?K>x;J7`PmZy>j*juLdx5p?(N`WtUdmddS)J;jZw%0T< zq`ErVO*xx+gV|X0^KA{*<)f{?5xXpt`|-uuNWQXQbcaCGWRtw-}=U%J-2QH^x7>(MSHurni;~lbLaNcf|bPw2cKn&9@pz96m z1{Ub%rrMQLZrPaQz&&r3t!_bmKvA%5Sh?zG-uEzRPRb{e_4Wa;R5wvt7d65Z-nlM+ zcOhlAdj1(H6W7|_`lx(WP8TqWXWer=eixKxd3NpZ8f_xz(&>5RI?(@u!s;8ad*_{p zmFJi6KklH+$Cm5g7}_;T;}avBQ1G1jH>GR9=w{KV%b(F@%1e&lF%MRb&nP4JZLo3> z8&;arnfl8vVK!`YULFVkiF9aOTDPkX-?agaRuJfChuY!~_t>^w&cxhCEWv%5Ta)vX z2Dqi)wAKj&>|pBYMa@(+e>9D%>#CjChz#x)y&%c%vRU&8Cj>c{C9l=_RvCNY0`*aQ z_ITT=XHsMre}$jtvI?K(ONN>EZQ2>$-DG@fTn$MYb}!Zw4=?xau)c-1FwLiw={l4x z9AEsoTlP^8M!;2okL`o4baQ_KBy~*oYwK^<*nf|5YUve+RtgGr9L2(EHXo8cqd(Zw z*7P@LKLyy}F43x-+Lmc>1(bc3icib6NIzDemSC5q6+BzH>YU_cSV!4@l*^KUL(urD z*H-;uHi5%|dKUL9se2}hcBgLG=^jtVj)L#e_xBsQEr{UU&WsBm|1tc5CCe$`s|W(^OzFdH0!)TdqLf?V zQ5nA8C#bJNJu4->BcyEBWpiJ7V-!gmoGj z0zhe}&5y4Gi=>84@S{rp`_f0v!!GqPN!jB^M&y8t(<3E!TTZ81sE$RpV+-MOpn=D} zQ8#~hJ}4^;ap+`5Vjc=>5OBiO$$G1i1Z2H@NimLLT;lhEc&6-EY0%(bWnBV6tMOlt zty_$zMH(|iL!AAtfb@n?B1_*l(W}LfMhn|T)7KtiW@Z&&wGBJ=L%{KMi-Ef$63*n) z4j18bQ!8T{RzhNM)K7fO-fxk?$_W&3lEelDCfh8V4b`{IH*Tl#BaB`=5^!JT24PRv4T!1>g8;aq4$9(DSWm=C?>KS+Tq%Oul{OZHRAB&^bH+j{|5dX5=2eAiAWS($zL*$g` z7BWRWm0#@!P=;|&Pu|Y2y++Dh%xy~q;^O27xB+~zZ{KhL7JyW6Md(8KYHs$+ypBkp z^Zs=fnHCrR*J6DAj`^rTfMdZ4Gzpg9El4kGPNoHa2PpfR^IBAW!ZwpTt5AbvZc-UN zqlx4;5IdFceNGr!g2~HB=`>S#cDU9a?qv!R1Q!4I;$v~huVIauX<^Yx>I$BAT>*H- zMb_>0f+*%~;wz4FKhLvY=KhOXKB=z>owwKF%7ahnmER5y5y28CzH`-u^Fqp8ZQVfy zbCY$Ovm4*-{AYdrTG36DN9JXGN+@=yW>e8OQZgeLg}($XXIz#ExJawATJ*gN>q(fC zuurvgBo!Q3&^opf^5WLU?ThWt+G82t;ir#~GWS)<8O0cz*B_a>L+Xg!&!$pd5v@xu zGl`OBJzG%ZA-tmb=+W^B`^NCMUByAk)}8(`!rV~?mMIif!eR3;Do<-NeU9t|;S8%D zsC&Y-IuxN8+EbeNB&9yG;>S+oYhPg>ClsWARTH-rf+8vJi<9f)D?g!HaYD`Q%f2C1 z<28kixh{f*si6ncqgGc7G=}iS`_KJU+~cXZxH2YlbUd^F>w%$GA9}#S?7NSU)z;Mf zl0ii?U__%aG>G81wPIL?R)SoQjDX-128WwP_2-vwH-;|eu07J2!>`pe7roJl+|zt9 z*wzHgZPp-xKS3~#w!k8syCT=O92-RH)2rbrwVdje%-4p#47Jw4l_Q5~mB^4WhIJC} zMzkqM5p&MFDJoUXAC}3rQc?T{60ITTiT*l;ODV#>Irx?d@2OjDdeBE3X^4ec_f`u z#CR59!a47exaip5y=T+WRAfC*IO05t%8CefV)SaEYtR-Ypq{2@IX2<-2pa&yHg^cE z?!PKOq}q#lK$Ff6GnenpT@2|tS<~k(b`p61eW-bgsJo zB;}~AFk(%o7$pzq^lV7;^-5t)pOxLy$cXz6w_1zX$3ck>XFD2RfY_PvNm|&bm}^iE z)7h>z>2{Hi>j9^t_numy`w$n{{fXATkRt0|b1zcM-E^cs-wXLX#k(h}KlYsY(`xZl z#Ml@m)VO*=1}*zS$E zB>7^m3^m%f#h&vu9bYI{UP=u$($)ta$)9}Ypm~laKl-J3gLv&~eVEn3(Exy@m*4Uw zl_Z7#S&ZZB4$cv$r>xa>==gI{f4IjonhC5bt28W)$_#tD}kU*a`!Ah5hy)$v9LVgQ44k@Pob)U3KHA!b|R3#6RZsGndV$kwc5P@V_kmgKv?78IIlD8Ph*lK^ zW~x;Z2UHJXQ2_m{eio4K`#zySq2BPvzCTJ_p;F4Cx5gsOd>bstN#*#V9eB4oJATAt zGw7A)dbK^j&Acip2h}QDG-oc1az3h!!KBU8>Zhb0P&7eLsY7$-*vACMqTSG>4eqEP zi9hZYnyprwX!z2Gc!U9~7zRxB*-<{m6=ohLp2!R}j0cExA@RY(4ay`SzD)Dw^ok5o zcWV<|MCf%N2pxd zX%*oo8_3!)O${xI0%Z+0w9)-OVSy4WdeM_wBt}X;s&cH^Od&T%uY8w;)lQE|#UPmJ z^tRsEG+a&UM&rpVq~%1set8Wj9#m)v9*zL?j`D0&fw;h+EVSrfRlGjt!gKmi-WduI?NKW z6tH)ymCP5BvH^1x=E1Lo34=5@)t{BD)T;L?V4t}fzF>1wY&T9f;KUqO*^Zjp%&f#TzQBaKNHwIMw&X^@gvAg?s& zPcn}`TE$%9rGaWvC}=oV8&|gxYs+Z73KQ1@M4$siU27#q*ycKqlRZDd4|lCh5qnfv zD{%d89aUekIe$hOh->ZfR&d}RRiWh#CyZNI{W6Fw=gVgaO-M3veG52PFubDatTBrU z0y{4p^EW-X4E-o$RJj)8IrMYQ@MF%VeEKr<1NoQm?YT$rtBOUrcAHmn+__p2?Ko}t z3LYHfERxs0diQ{JbQy5E`+6HXhTNG$ zPXw2)|AqF;8qA5zSIR94Y}J=fAINYXK$OG7HoM{=vb*GQCRuaC!RTK+i+xYIg)rq` z>0iev5k`yUE`er&(5|GoLRBLI!`ewz~!UUBC#SmTzi`0OnD?N4f`V zZ5siLDcKX}k?~`L=sh_3nQA`mSs>=esj@caqp8(Hiax)uQWC<*H2L9c>El&##_yAh z;eIg#OQ=4UD18A_7v*;IkH(6gqHbxkuV%Q_FPa@+i`hXwk%B%uzR|P|O9Sr!x=AvtC4z`428s z{C%xBU2pMAaKgzv8a~a09ej-|o8p*M{)7t`d=va4euTnk9=S8=0EN&iarQ{j?QIIivJ`fFQlv$HX4Pl%b0Vn*3K>t( z-sH<(m0FO}8Z#Zw#4R2Ba~B5fe74OC>$Yq5wV+A) zpfdm+bYrE>j$53;wnZX1%`UgOg^jzsp%sdHWX?MPjMh6R6{o5Q(y*gY%IfM-{ItAsymxtpdnWOELXOuwn^G!$cs0pKT)8z@uw(3 z?u9gCyON}$O#O@H!nydAmcM`x7L7jv{x&rZB;jAo(POr4P&o*Rw#rccX3!VPlM`udODvl1gE4sTHu;5nrch0GXpCsecQHBZ*b& z#|jsdzcdCcFHD_PB2M$)uxgQPwdAF=G0sOe{;ndPLK8_#ivNZ7P=DmHRQuYM^}l7V z>-!6$qfo;Qbi|f)2(Er5o0%gNJjsYbna!-d2^z*fU*TuIUn^<=4~j%7Z70NC$1pth zlgqdtZRwMqyzKVyp}v>GM|JH$`DU%Th{d!8mDdwsaFj|uhub+7lN1%7Q9|bffouJs zaoJbK+0KSE#nt-dQQB%VOSk?%vrOp1k)52?nz(dYW_c$)@}>GkzF}cllowPpw?3^yEO|p*+ieOI6ds8o(};Ig%Mni2X_YC4doVP zJPe9;hmU_;@kQn7Lfkv$r+*^P@8aNI91QsG(GPVMOs0k&)*u8_(OFOSg0eJyLP;MQ zkiYz*xoMr1r&czpJ=MCq=y2jjm#EGgFuAdngXLOYIWq5=;7GZ=!$9Keb2s-729TfG zygdLTRTt$xx+MV(w*X?q4sk{$5zrAUGY*ZeY+R*was@#@(m`F-pQ-)yFDq)GWay{| zG}U9sa87*OF2?x8rCa@GMHJyLU}xsh%G|+l2HP?654H8k3hVU);I+VsNLyy*iP}5o z4fmM6I%`$Ix!+c_nZ;{Kn%-_81}X3cK5@!ZkxB_o1ai2bmCvP#oKb5<1F41P#@ z@rtauDWG@x{lKKagg;_@t+`j8^i{2-jX)s4;&Sg$QFNmoLiu&RwdbO<&QikV;wN)*k`qiz9!7%@1c@gyx5QLuv{g3ajpBy$A1FQL=G&H*rpY&7FzW40%(#Qm&pWLyqQ5Vn7b8ZiU!rj~FNHou zbNrhe?C4K#$>A%mWwgL>@Q{{0?NsD4Y7(4T8cUJFdb)b&RXB$ zHJJFoR;6Y_wA#>IR`|}!!_~0m-G2mn))71>*@&jg=>0F|(2jR^PM{2i@Iz+_t2`x~Y=Gy07Oh5yG_(^Fot zHyH)4pAb5IjibK~d_AwrS-MYI~Z3_&w*dqDZ+#PH_I&plMz64dPOK zV1zQk&wp+dTNI3&JJpz8Z1S;j%_h9tOk(sU-irpzi72Zoin;o>iqo`P0Q;wX1;b%u z_18Pn0t%EL&TG4^*ArDMQ_Q9Q*L>zcTa2VPCwB57kdwP!BB~15rs#MV!WJSAl|!3+A|%D##@Q z(`PEXs>jvklbr7YYbj(@|jbWiW(z{rQ5D8q_Mf( z%8qPWk7I*F{JqoN+Ske*@4g0e2F|tdYA2#&f&`bGp*E|WOYqAP^jwHlfAhW0w_!fj zpFD7p4-$4FQ%-2mJ77p!(A<8RY-1c$bXp}lgN zlDpL91}Y+;DgTk*Zy+|`lVCpbwLb49!H0w|Q5)O+Dp2Lf7eeR5fQ2_ftZU-UoEV<0 zx0vYxGlv5f&m&h+w!0k%BIrD(%CbphjX&pP92D_7#09+XdKb2jm@DrNbxHae$>f1Q z#|$u#_nJPVuRr#IJcB}L@2uBgnH`T2G3dJ_nN|~N#%4WL!*6x8lyX3d?DOpdU#$+h zWn3k(dm5GVI-^2{$0mmHi6H{4is32?U`Lv~@MHQ#W)9wA7JwSkyzclWPHVpTKSO68 z&xHTS@k;S4A*tLXl_Z3(+o*)fO>$F&m?P$%ZA$Jtx!FRQa^=1^a^J~)Z5ZYlb8R!5 z?bm;w$NR6(KcC0v^Lf8tuh%o;nr04RxN(RUBjq9T9LRHS-+Z1LVc-+ zzv26Fj?xm~h{u)en#;-dF*-y(l=aVE{ilNYA=H=9<`##%u_8g{YZM&z@wBh^euFF8 zayPq-I~u;SKf+}Md}!TpL8RR9nD1^^m6^ep1jrD_tIxnK!FG29n=x!Dj_Lu3ZjXdd z&zAKIzbO;#yrR^dQsq2BQN%_vez)59$Tip`ar-t`>R_Cy{C5j?)2vHX%G&{QN{2&=)A31nKg zrq$Utq2F#FC(_kdjTzm)-Z`}hI;1I2hgAVJIh;WpnmqOz2GgD)hKUL_$6tCh0xJK4 z8d@3Vpwp4vCgG7>@JdZEq!Ay~;tH@+nqI021~nGf12wsLhZPlxpx`M?MaVy`0i2?0 zH}2kpWkOf-W*+tVTy7q2F;Q-mC6u=f%Ptl>5_Q&P;ZKJlbbm>TYGjy}r^3q&Qcqn) zXW&Loz?mDElwg$zFQmu`aqVuo%l;N~d3UjX?p3|_GTXp~yDHi1)i3V%A6y*J4R2!M zdE0xD)!>%8F*6yXm+qPN)(}-kVHgAJW^d|dya?dKkF|7!22sf8HMeIGEhO@C&dQkb zbg*5`ti8e{@L(3Vt7&d`2n;g3Ug2B12)S;adIQ#VB!HT23KhD8EVc?ggq`GBH?uqpQU_Ed(&wk)= zYWUE56}ud=agmXrnO3b1p2Lbe(2Gw=lx7AH-M|o`Rn3*79n33A+enm|{~<5Uv7JS{?OMusnlngO}PX08N?n#whHQ|zOgaeN!{qV%Yw8h z(!=?}ANIlW1r;w>@vZz4gqZM1H6zA{k?aW$#z5>=oieljhtoUh?93Pyp(s^{^?pv8 zP%YxKn&;y-&+&k(CnE=Uz12LALp~;%T>kts#%>`r-|pZ(=rq}pQ()-!RJXCXcmEE? z*bYoXj_Qam-VJEWmC9v2qi<^wN*7D{IqTZu!xxKQu>jrUYBvM0KaFQ+a>IBqt)`CV@Xc7#2#^1ONw-@gBUXwC}P+!2;2=k_L9XXznnRovaP`sTQU#kRRE@4q7J z)my^?&0g)X9DzwQ1aGCY$>RVI>N@{JKzUh}pJ9SfqyB&*6n)QN5Jut%9FIJBB93@? zf%R0UBv-itPb;I%ea;*lxqD$~3Rh>dgwLMipENs+j7ODhD$@T4 z0r}wd;&~J<+?jXlufGpw=G@uyS2>Yl63##Ufz6H4Js}>}#+EK?-`DMVT{kXuT?L}cIze7$=adzuV0%#9ofSb# z!sKbv2;7e*5<=KW=Kza0P+&8#inbRKDKh_mer;whc3#d9v0Ox<^Qv+X~a zb5#n}I~lrrE#8)_N>mRj>s$g$FI=E>g}fmNHN~o1LaRlHynY%yBvl`R2|n=Z)NA+@ zFb_E5BNwxv6{TAxJS^IJKx!bQui5)Z>ba_?M?Om$s{6E_9ArA0_E4q?TE5*Z-Q0{< z1OJm|jIt^tP_oW#@>nsEav(Mxj5!m1z^6#e05l#x=zF%$Mm~f<)=g#*&xF$&G0l$m z+;Ut*31*=GQY`e-HzDbx1=yjxcrl;(X`8oU8E{G7&KETPk95%Kb=8o9QX3V~cNgD? zJYM}e_24%)!`*3kv!jNn4Imjt*!H-g`J4oV7L2`TIFFMenGOXq;gGsubeo(m>bJ7< z1GVKAV{YVJKGE1!0@W!@LQlo1sfP(jM6_Zg;2 z35@G3wyT85i|m_>4Nnba^QfipD|M~+$w4c8e**w@bbDinLL$7G5f9%o`C!AUPXCdp9(L zCZsJ>CfB=LkS^R0oh~iPHbb^zmz5XsVe(`8` z4#_j~W)>tj%?E1^&`c=u6I>Kz6gcmRFl=_c3cUrk8n3d24Ml`tu@ThW+3{a&Qb_1X z$g0#}#PAv`f!Vkk+%o{k&dcbB4ucD;?AFKK8-~(Cs^1H+tU1i2p#eQsur#z2zLaxu zoCkfb@>o##-+<~0*N|Hr3_Y$Mmiaa4n8ticTsYr`gcX&&%6$XZpfgt?m<^Hco+I=9 zar~xinKTmu;%1(H_4Oi|tCKt`btlgcJx>g}qt^+-AsQtzSnKaqxwf~Rj+Ncl^9H3Z zIwo?R3RjX#Q>*Um2s4F4pEnDLrT~OSFs1q0NLi^FOBSY1-h3qeHYT2ao-=zW8Z@r+ zQ-#NAkd(1Xc36jNV6gnTbk2WTu3pZS&_3VUjzo4*I1fQ+mgn#{x>h{PA{!5d9HW4(Top56rC zYTT)!S1bsCs$$E)K%P4uJd-|{rWjhaC;1NT_s@Khfc7uGhY8g;6g5+)b-x`!0Wa7C zBb+)V%ESIAviyNA7zk+k!WD4Rj-8&-cE?48wrghqc82-aet61EeE-bil2%3{pgpj0 zhOYhRss;Cd%xQ(};LaO8+en+!MLaq3Mz!Gm+pBQY@wt9YTI$K>GHBrH+v^eGEE}S} z;j5ue4Dz5x-@De%?BjzR^XgYq%{%NpU9}=hc42Zo0n0Us=@Yc1BG8y{{m{04w54{Z);P`lo!z3i zP|-|n<>0cDCiKZl3EdX8na1H~7Lym1TQDG+;`s zim4CheK?p5lnCU-pTTRb3Mw+z>&3W!(2zvkoohOF>ATW$gx?7 zh7K}Lqha&N=VrY&6%qK(kxdUFHoVSld-N-&jdNp?{NoIxouNy7<_D*j4pRjVlDJ{- z+cER)IDwP0qDoI~`zb#BQ?hn(fM+54ZK8}YkVQu%23~qp^P`76vhR(UF+O|&54OB) zo`i2fMDs;XTJigT3*#MSEgQ-py<=2&=!XsbrhHW&kz3z)PIk)}O>0x;^!@rR5(+L0 zX*h?{w%`gGHe8vIQ52gxSnP!etULxDC<;W!?g|fhb^CuQC=aQWS}LHT2c};(b*n%f zxa`GPn;6RN7qPXc%j7a9Z zx_Ny(!68;|Emn?|65B0 zbLW-%gPdX|p+B}Q+zB<44l~|tO|?cltWE1Dh8BJKV^aJyy^d1v;c_Pn+u;vzF0a4Y zVrMCL(M~z|4-I*WqU`01UyaW2HvHRxgacJ=s16^dF|i?e7d3y+4F(^l{TF7b@H%I0 zCbRu|)md8(a+G>*Q~UD_>gGf@^j)^aT62De3^~@iJ1s#)7TS7Gei}%L)z_{-ho{v) zT%1qd5(f_bBTo?y_bVt4A!ll3Z4cidx~i!~%tu2rftyTqX2GEmvw#uLG+}a`Mh`7` z3or}n@LFYLdh{%_9hQY2gw0T+qLrw-pcD2Z{+hZu{2qVJYj6-?WR*zyAsqUOti_Bc z{t3w>?)4~#WDw!PP!UL8defY)s2)6v6}DXEq=l^&a7g-U!GA% zQtQuGA$v4iPMBXs}tW=pD&?yHxJZp5z(Eu69^_ z-Pl<4YXgMlQ!4Cl^y{*d_UL!yl;bPHB(W_D^-8}tiX7IUb#kQ>BD!L`q!J4{nhH|a zP-dfHdV)+m?W)A;lnSilhtfCh9Cv~y5buk!EgW&O^)Ks^PLXT}k-;|QGTR^XOFPzh z-gbZXwV{c6j#$)P3cM?44L*yoTytoD6K$7pD$a@5o(c-H{}Yq~01xKusLl6*=K;2& zO7#l99AsSOumFA6I%64ZmCLy^nmuj{q=dP@%ays{Qg;h zbMlp6UVpT;B&~_1VONxuF4Rx`{a4=rmY>;Y)vl1WzdKQri;o$X4rD!HfjgfXEcHAS z7vuJP^%*7^skNuG4vsUr6Chcz)VtV zsiEo*B$)3%$@l7lo_cFeG}z_&vD^)|3wAbBbQZzeZ`DlM4Lu95YG(Kr-FZlN4A)^= zQKGoH1chV{u*QjrtpeSf!n%2|q*$toj;ssh?n94j%72fOH)tI~&GfM^0et~14Y--P zWMPt*EeG`N3$4-OJMX2x@Ur3WEUmn*#N>j=4zKN-(DGgB;oVNB1}Im@9j*28L3G0O zPNJpU+Dh=YYb)1Eu5g0#FfN$IyI;xgUG;8qa8X`BUZt(m?v)lZGDCQZm-Lkp=ql@E zh!hVpqR0@8C)jhg@TYGUyFHWjYnG*Jm{;`UL#(F88vjAMRQ>FaDpZjuvkjeg{MiWO z8)_VM#fCV1G2~)J^g=R2{Q}uxiQ0C!-EexppfYhr?#8frN&cm*l-Y{t-KeI(CGy`& z&*Q9IO!`Zle3yUSSp``a@06^NDqUlLQcp#!bW7(gL3){fF5%%3tI+&H{cJJ}Zr|u!1 zc;zhW+TSAniXZ=oy)_kdd$r+D!1F(j@T=R89-IXxExw-=ttl?rRJ^+$wxKsvU`Yyb zl_AeoZ4_1s*1pl7!=h^blPhL?Q(C#Ciql9K4Z7cutG(xOrNtO)OmVva&on+*P?(lB z4d2k%wktv64GgsddR%YADE8orO(cQSK|Gfm`rpFK;f?aM>YhlHm+8iPc!3wlQ01W9w++0(j-F+e%cjz|fMQso3S ztzl9YLC$P8yvLb<#?sMFp=iy?VoMDj`bU6sH26nJ1{-!P1b^}s>ljvL9jv$Fjj~pl zRTd2xj{BJq7*^c+PWMo^smHGew03Xo^lKI3oo(39x5ywa;5ky6Qr-WSI1Ua&8&gJY z%VKA{0Ck+ldz~uv{?RPYz2jaRkGUFYBXWCiKl$aZt>(2ZOnIHxH|$fsMxu?tFK(;; z&u(<_k9vF)Rtvj`9i;#@u-#a)!-i}I6`_b%e@-3=n$7d+O7Umds$k1HZa4hp8nqc0 zStmkoNwDmT9i1JZ!e+LpmLhz9(x-t*ziZ^-F81uRIE$F3FUt?)*6*@*sgI27e9@ci z2zg`J=YGI5Un&}IYUU>@2m^^ zKT$9_Nnamb4wv7$T~3UvV*#HGY>GTzu&O|c9@RV<>S{YRx{8}B>vl!)fPH@AYWn|0 z3uVd~n|#vfcsQZFR&qx>%y?uZd$fMUa&qC3Yg<^Y*m$#F85*A)Wqqk zLnaoJuix0vjk< z{=EoNPp`6?^Xx_f^bbE?K&u(o!W>k2d)Zfu-YQoo#RwM3J=y2?O!_c;<3ROLY0;JF z8R3PFrA0OVRIp-AWvjgC#!e~}Ls&Gv* z$7`tP<@beBYo<@>_n*^6im$w9>F#|WVo&>{-;KTA62c3#l3AA8J$Y^k_KnG6k=UIi zyrLT_TlHI8i)%&&+c?53!!U2fT<zJgK-okYywfalR4CLnkRqMXBO5g!R@xY>I*k=BgB{RL zN>Bd|WmdrcmZ48>4fEGdj@p$~9~JCERF)o{L%8-eq&k;pv&?a3BZPoPHehDkj6m7{b~ zXJ`~>Hrz^%mcbV;7ZW4m)wvsnFpJc@k+-M4G`s0lFl)xjGRntOvQAr{@>8?e0`qhc z8OKsHFGXcITqHgDBQ6=1Ao1^4fS$*)bQQnIf%sS$i7UU1J4o6FobomCc7`J7Xu{+s zZ4NF!xx=Tb97aese7lQYoYYCpAEC1QJeP``hN8u{&d%ZF)QQtif#t&{M8YrkFv$XbZ; zdhVG1iR^+Ht9<~yJfeLHeC&eKaxV+=)E#o!J9M6iS`LXOU))wRMVqFm<0tQFY9LHG zPIZ=+cxc5sp0q1S(X69S)M)Ep!dB`|lG{HEuWf_)cRrOeGiNRe3!|M5xwg>r7xe@> zPmA(RE~s}*X}QS*y%D7jF3<4Fv;3o}J>2g(#drVl7)#2`!@lX_=hsjp%4Mm}%=Vst z9ZrK)r*y*X|2}}nh;Q+?H{yP#f1tb=wMuy2vt8Uy7b3j$L(Xadv@1)EHx^)q0%Xc%gTJ_wf~~+`}iSxa`MJ6a7mz2dj2u3@Z zPVPS+@E^K=lwf>d-m``28}*dXil!0s2?uhC75>%gGA^F?wSO~L0-$xcfgjDnb2sX% z0^WirYwr*`SHf|`jr{s9!L|+x1F?~KlnD5RRE}%d=E$F$q*U!(MKdRI{{EBu-48-+ z&F#V@_PSoiWY~WU^3Dc{pt4AC01JSIb086x`3vf8VhopFU$k#Ph{7u!jkT}m_pP9EVQRuh9V=4yw91Ea6z1_X9KQfFtkkul>Fc4|(+s+}`~bP+5BvfV5spTEN3b zdP>BA!GeLo(gIq0;E*M&qUK#7LvVj+7(mcsID)Czg-u?THWaju1&4{vs_ zQ31>hM3@$u65Z;s^!wztTSc>0^&(kQc2)$_Z0j-d-wbOl?%1J2W@lE0Bm>&^K;ABk z*4B_qYe37Fu;(tl=I{P95zOv{y(KtZHPWTS-z*wWn%*elI00|p!mEtDEzJ4@*lq?K z`8jK~*tbRn)7yo<__~qLg9#{kT%Q{&$}L)C&gsuWS{7glZO``aD$%;;WO@BGGgh#A z_uEG;pYnGd2H@!ZKJE*NaR zit$>!i8Q-2NPg!0QgHp=+W?58+_PCQC)oB?;FF3!<@}lt;!NLoJH~IBAN)bJ{>E>1 zD-dM}wN%kFFsw6+P%*kT;z-c_>-}p=cq^AzuX1(tm zZQ-XOydU-|#OByWb6zuU$7pkRE`Ik=~ zcW&OLJcFuM!Hm2Bd8{E)Zmh?j+CSL^#wSjB@y+Vz)Pw z#HjEDB?^(aI26L~&QUNGjrTaTO4lyq5a9e0A4kl-7Uz?HX4}*JdX=%{d(Qo^uOl9P zNuZt`K!}9FDgqdg44o=6tc~m&)&+dtCn#jpOUEGdUTr__bnIC`#nw@&UW;RD#nL#K zyb&j|)KKQcA zHPu56C)W#{;|W;o^36l|fHOXpgJbv6Udl>XU+Jq7^aXOWMOZqkg6iJoLZqWV*?>ao zoecLg0iT*XjmQ_5$f-1msPxIKhlO8+yyWK6m@$m$z}MSQR|0{4uUlS?qiBBv{31+$ z+5Rxkn_@Stvy87cfF@%BXYH-vLoFbba+s=q(sifFx%pQV?Ik%w(qeR?!R2c8!j8ElcNZ)6uLl8=@s z`!I5M`a?s(cNCw?!b?p5P`6C$>_GECOVYf;B-{R}0FAX8wJF{KLhB|e_u&fW7_}1i zT>`mm0Ma>6PWIi)GxkCX5V{=@)OpM=Ivr%f9DNGzE7AN93}S_vjA3s%o7d1~*OduH zJ4SlhX`3HO4~MofGxYs~ka~anzWtlxf%r3{xdQP39hqx0oEW&|bme-LR1xqA-D%5z zeeXV$(m;F(JK@BgA^Wy+s3~30tMoe7FaXI2P{)q%0CL%Et5yGnBpbB56)7g|m-TBV zH!r+v-Hd8Ztp1ZQEV`O>pbND_phIprKZ#4ey0u=Rjt4U{nDN5lY8$DR1Sw#YU&a)h z+=5PfLeu{kN4#7@2^{n#o{48(ls)Th(m0I1Tf49V?rp!OM#t3oN!52G4rx3VQ_>SW zna3WvPA2o5#9x2UoiM;%^?_$fRjtcqnGK)7^$Hg|S9uIhO)r35^+hU#I1}R!zj4-Q z_O*(QVXeoOnYFetP5o-PE=-uVL7J98(C6S zIAF}aqwivz+^82fCR4cjoZMCzDLM5#niPn~MsJEY2za;5rywoU>BGZrsu3Gy_I z7~%cul~x|V7L62m-WrkBinbeRefb;k_h(nV&4I9adOGf1^lQvo4QWS1SYk+j&BD}W zJBS6=D*v*X>jBHJ!8L%C6SMA;gghkxs* z`XrCyKhLyB?5|f&dWxg=En%j|geCQA*Ms~-;dSE@aGi~y)968Rsm>)VuUb@K=dPx3 zCS;M>&^k)t-%dTqyn+?HHu-R_$mnpRnwM!k)Ej!*;8^3_^0|qh=zYtk`T9u$!lbmA zRk(&?&NP z{@=%y8f*3YT3V>iZC3>U2d<{zGeN)N6h^d7O8Fe~_M+*FvV6P9@df-R5X0 zQHOiLwBrL@?5W`7(6FY?44n0=T}gYr_q@)iUyMAdvf)c=fmfztA-quf&MeJGYodbi zvRV{12)#M=IV`D8KUMFwmlWPP`(4{o9_izp?bpUgC-J?-ONTqoaw47UyNfM^cl805 zN8bZUQTFh&b>Ay}A$`{!ualwTQjO~Zbx!4ThQ`zwsYIlg`}V!w-<4Jk=LKI6wB-zB zv93%n5w@USzL=f?owk&J$hI340EgYA`HuS?nFv+H5I^l%hk7htUbmPQP81F+|2Uml z5tP|Ze(Uvy8?uyo*4i82;2`)ZCc+1#at+N-$EG+jp=N8xxj zX#71&9`H3gV!g#B)7lBL!Q~Q(#!b? zW=&v~(WM)8Le9i(cc9q%HoqdR1hV2~rODL0}%#`Y& zLZMMdE=_IwzL#v{1 zqAzF_2)dW=UDm+I|Kb`CW^GsaeK@zO|8p-%$I&<1)UjC?5_hp`59P!gC1lWw?Tlt$ zFeVtBTxWvG`Q#%T^7BHn2gLFd#%%CVNwmMM8o-}M?B^pVoyaN_`TnRfG$HZ?fA8~x zCBo&(>K1tO>ZIRmxG@bx7H?(8GZ?5GiE=`pV}sPc=hnr!_CrI{*aW}X*aWuGO~sj# z`%)vd%Fj`wq02w=c&8Bs)B3%bWK#U*Iok2_qosx%P5!Oax1RUKT`ev_i+c4{*%Y1b zEO{&h%bCX@qvmdq%?4FlLq7wjN+$mbfE!lS3wm$(-HMg-H`ch_hjQ!kU!}L1u$e2( zLXG&7LDE<@$DRN;BZHJ^o*uW;PAz(W&Tg91@_Ho%9xokwyL`sx$Z}+3I(;@`Mj+F- zHRb!J8MS<;zr?sgCvkQo_=El@2D)V0XyC%5i5-e)WeJJq5mgl>*LQA?GZ>#k(wefM zt9yKFgsl>>(lL=rN?y&eL~`|iYzzO$X>i$F0IfBdJ% z=XD!7laZu!^?jVqCxcW(^B)Ww0r0KdO_0_WJ3gb|@}rE*{Wt0(0Dv_^Jh1oC9g*H* z87u8&vCf2VKsUZQebT&M^E+%vIz-F#@Zq?CW|f;A5ysE&z} zBP8>JG(HJyUi6dbi9Yu1v>Dn9N*8aI&5Vm)Lg%ju4N8&K{2fbNcwyJ%wJSGyahK{p z&D=}x@hz<*|1O1pBL2kURK(0PV73us733O=S;yK;-HI#o1418v4CDb2U<7gOFD|`W9x(|%AhG}Y&grn3@tn{)SazF5^)co)6>9ts@ivTE4CW^V%8|k zcW|T2Z)s>l_w6OnT+MRgu2}!=CRN=n0YNac_Hgo?noC- z>MHs(Gq2GbC5xu;)C_ql3KHIQ&e{7!9Ml563l1s3ul6Qf|4tG=3MY{F9oEuw3LS=O zbdOScP)3H$m#3>gzR!BOeFzbEB2xt#p8}~X{Ub!2IQ(+l*r4R zyWy}>l3sr8{Fs zOMlZxjeADB7RpR_ zVc!Q*#~!x{8-bu_fYPRs;%O^-ZFp%xAPaEv2_U)^SSVMIe`l$J9UzHx z?cYDgfPF#I0Pp8)`!$tUzlLhhOmIo;fr?YH>PLRdKFVa?huqQmnyNnnpl=`eG3BVh zYNrQSL!pPIH?r4h3d~BAB==l?DWAQSPfcBk;O0GCnKZRdFt>us(ws| z5_Gc0F++THUmQ#HPWF0Y5T}|aHmc!VD!AwjeW!a1XyN^}p0D22)w?cZg!%K895mtd zFESzbA?2^(z07$V7Af*t0`cHm)z0$*6#lasI8DK!E0iQyWiG3u9@jRzfh$6<^#?(- z)@vp$yJxz*)l)-&hQt^-G`FxxAo8vwB6i%wRf+C4=VD_#`uC^(oT`?7ndkt1(9EH* zmb8y`>05Y*LN7y9(!?!ed3!kwi9du#VQ6bnammMM$3JLT_MpoF)#l?G zhz%*QH*q{eiBZa)spfTtC!gp@)i2kKs3bgkx;(RFo%mItzkWP|0&Tnkp1|>QW0~*Cxc~7JQKrPsCRF$ z)o<-L^4{(Xf=ds#%w%R(Rtqv?`=hq%`>z=47UL&h-Bmt?hNr<&u`;J_uGLvLw)B zR=IeqPCm)kdaduU-R<#kf{RE|xZUvf6m@suOe?Zco9^cGfG73w2ZY`T2gP2|fCGG! z_=3!hLcLq;+=YC0CHA#o0C`26F9`m}(}wvXV4)`u)}D-*$Qx-|Veq6#fUxt3@>I0O z-<348Bv2SnpXt#4<^A#mRj!T4<7)aGzoN2umN1{fVyjtD7ifpWFT%{H_}2eflE@dx zy{h}BCOnVn7=yRcAs7ERN*@%J*1sx|{bPl>=_K@PIwZ~LYEQYB>C5dumZ4O6)v>Tm z8N9hX=2Ft@)XG}KmCk1n@RF>};g|aJ|MH{4Hg0$pYldB!dj3nc`K89q9bC_Bf@UH4 za=jHIt(Wf^-+Xvg+l%$aw+zUrTk~`%>%fvv#Cxbe<{k~+jsspnUc#l0Cb6ehS$q6! z0GIM&SbPh4hb#x0tO_vizx)?)R^j+;3srgjQ-EV%!6Tzsx^DTeA>O8ux{5Po6aK1# zkss^^rM6ZZhaw|SZyZa>?+`JQ``fe8DA&>Ajcf@!*bPrhKlx)up#-azmO#^*o!*HT2ezy>z{9&2H|BbXC+1 zLCgi%e>j_AMb5MWW+v5kU*s3!rtMkRGP#TmY+w+oddp~?^5>?JhJ_WH>j zUIhk@SI!mPggGy~47;|bROyiX_V&hP$x$nF zo@X_zR;_>sQtmriyj=~3R?fJMacbE0V-bUrx)iV_MfPO&oh8>I!%1YW=-ZD7O=Z2q z$82GGENdE^^;SpPz0Z4JZL=o=X1tcRYDyqOnS(8F)yL3k|;l-2G}4lxQY&>wW@cu6Rnv`GB#3EhWhCSn_I!vW+%(Y|65K}V#2*{eMtmoOjReEbU(mx8TwX`sK1A5A`fYF)*q1Ib_`O5+q9UjrJKGy=n0vDE zIlzZutIz=Drh6d4X|VC*r|b)=!d)dFct`QCr%bg&OYL5|&)C`^jNo1*N&9M%M$CU> ztqljBg$_np&E^QkehJg50=y&3T~Y9dcV;zW5<0DI|fa zk(>>?C>QVHL-#>}jx~3OX>VI7*+QsfyZNDE=&5tCmeb|I(DDfhVUN})RSQQN-C2h{ zt?#_2#xpnqzWd;#aGmt8GNy9G0_9m_Sxsy3ZKZSD>r@fGPN&0zLW(;tx%e>UruX@w zu%p+1qQ*ll$d62Qcfyw6YQeuMZX8AC!nxPvUlJNQM=bo3PdL{%Lzh-sJ5|}CUfgo1 zbT_Y~vcrj3gd}efaYN%3@Pv3_TX9A6znHX0zyJ(4$FOH~`9`YNtsM3=UU~T1+0*L^ zs^;0?ZfW29uG2DUZMeB-$$o~$cCGZami`UMPtvWuwSkt)Z?wo+gOE;IHY;_8iM z=Eg?1W<_*y1yzBAS-*_lQ?CHMyY>j;I)L48%5$XV_N^6=>(2m3H$(2XNa3Ca4aw=v zvaJ^Hw}fF&m*+^kHd8#k!13Z&0$I1%XS`(QdfR9IId!_Nth+MI95X3?U(}UL8a}pV z{3%8|b{bo7PQ0Q-j~y!PIYyO@t(?|sg0gDXoA}N(=DMwB-T~X)e)0}22i2zum0w& zOa{`R+?Zj3QN)>mg`x6qZ#?LBX}sYlws$)wEKO|Kkc99%Ur8>ilHL5h7VCKTz|ojd z6DuoJ|6*kj4pq7gqX3lH#n7st_RC+Ay&E&iE|LRT$`+nh?Oh^=fApCw4(fk`#YQ{0 zloDG|r>&~evq(#xAd$BF`8J1R3C=P#;$zOS8;!Pphs9;%LdR?sU=giD4;WPGd2Um= z=^Fe)T_T#d>r7f(#M}n0o?je&LIafVdJW(PoQy3EM+F$J%eYn1$z3_ZSrLU@@JcK; zj&G26Hgf@Iqo5LxkS25w*u7gw4d|0dPhYf$DlL+4mhFGtOEoufi6wmBOMv$o^tJB- zJh*sv0KsdFaf(3Fn{8~v&~YjRs5BAqnxG9q2Jk6wZ$%e0+#&7Tyv}@sN@X`suoLtR zx(s}K6IXoL&Nkm>F*F&%GtW*UIXU#T7Et<0B>p2oo|Sh=u@VSV&MP(FH(Nw&ka4O> zW%1OFCfsm^XwUF1rG)|+lF!IM8(mY-@rKqMf z5ljOJZ?m!SQT6*EQ_njyf;L)iK^1^lY!LG+5rV!UI_$!w&~>K2V7qmQ2vg;Co@dBk z%hwjv8M1yY#B{T+PRs9_=2e%fDZwULU5*`azsXNn1RJ*OI}#GEwb^QI8-O46l9D<@ zf1qS``-QAFLwR$wa&5OZ<+f@~xbA?`uw_~c9EMHwN>9CY;7|SBFTH|wViJ|zR@+dX zF4^`&djRB7-XNxaJ)0^U&{zNdq)f2Mhh2r1$@ScK83BhuY<#Gk)bA_*EAk$^l6jmv zfG8P*3G+^E6*?^Y!Y?jHQGvzT+|p!c^3_P1cxakGuTxje(^t7Thf& z1kUSK0QSK&zkOFnnOsOV6D5n)#Mx$bmOhL=>uk8XGT3D=j#{o?S3^ZJB`fyp@15eJ z{{h;cZkH08;e(3(7$LmRx(ar9|A?Z>_DV~7&A8vp;EL_q}7OM?Y-TVAPq7SJVLyaoi^#(XK0|R#&$+@M;V72|9V@& zExCH{ht(EfQrj?#YaquaXHgHn%HMXk)M4qPJV)mUgE5=Ahwp3BxZ{~O#XsK?zgr?4 zM-lqS`-?CtGve(ejVf*7rw@=$$ly}RzG|#`5D}vRfA|bzZeDAd!Ie| zOKz*>4-Y#7YX|&eD){SVk~kKqT4nqvVu3E^wtH? zaEtZrfz^#VQ6NVkgS*O+X;s^>xt6fwJHe_yt=PUoozK8gwh;8_w6Q_o#8_ zpurcQG2!2vwDf#DZ`Ra&7|KW{G<8zA1-8fPmYa5C zWG=kAGioh);M^0M;j)zVP#u+!v2nJS&!xovBG|X7RG&*xvufng`nqHfGpiC8D%6*r z16}3aw-9Y6Y1p1&xzbcZb4!eHtCFyHz7nH)-2CU{M!EKDuDkeU$-Usmx(_~}^RAYD zW;lVLLTk&_wT)ijzDp%zH1(Li&K}?-OimjN(ws?q zveR{gxmabZ!K}_sMlkzYT&vNNu-87<>RM$9+xw<2vyQK0Kt7!7`(d)YW<_T%D1JG> z9OUz6T6W2Ol(q+iTfV2S@KNsaUP#&fmj~VOd+#uDIlGU2NRJtiZ+!Tn@@8vZCr^B% z^Y)f@&3JUb<57VHF{+=AWPIW>drcL`L}4zAbjE*bt$>F@h* z3m;sux^Y(S2%lNU+q4258S^RN;`p=#G~(Em< zgw~~jWEXY5)~~aaCYM|opSdXJ8M@wiW!oWeco!?P;l=AE*fKu9D_fsvKJO~xgiK(s z{K(ii6^Y2+2#S z1s-Y{Vz{|k`M`4Q4%LC!psMvFU<8qz78Y8Qc8dRlEHUOhxp4ZB92?Ab7I%B?^fk~S z7Hb;VyY#HZ@FRhj`9D7`Uv+?6oPNt!OrL|pQ_*2dC%1&zn!q2y#XI*|3VpxKHuT== z^vPeTR|-bBbvdNdknH4B#}3`OS$R{uq+&Rc4icW<0+M*!m8={l@VIbt-? zp~_!~=H&#h@=*WgVX(%!>^X&N58)+m?hR`S?~>iy(g4nV@HVT0^^o!QRF)<$!6tzF zYW->aLjC;)q)qS4CH(&xI?J%8-am~0El?>Dr9(kMr355KO(YZ%P?0WSz@%f6gQ3#h zT|Y!Z>25|hOe97R7;N-_!NwRHf8L#QJ=Zzcd3m1ad*7cAw%bb;F7SMA$raDs)EJm{ ztEY>Mb;43%>Ab@P_o~KIuJT*s}*) z5DA{xHw3eAgp{nbZh%qa<74B8j)%V}Y3VFy?E_b?p*^01oOzw&R7!X_!%@lzRbV?j zFJCa_qyhZc?+)E)?O+&rr_(&x55?-x^2AV`_iJsZp8u6|&4XomYqoG_FVoqq-rb!1 zf~Z)aDvrMT*@zIHu46<}Dd>`9(wts-ii3SLYySHC6ccW^GOw*~YYIWP@K_{0+Jruf zD9#R<%^3Xi%Ke9!ajo90ev0UK&Z)uZ0(=Z97!F$ z4BGmI_D%N1@ef)Y{UdzwLwp2W4?&mQNWb&vRO!}pSJ9m^f#qYE$dC-#gX3$B_4U4h z>|g|q33v$cae66otn5V4I6UbZOTu}a{*edVFe+JO@rymFg3p%PkR7CNrUxCZ^%-g} zl3o@)elch^PixF&IVM!?1za!kAgnEC{av^XTR)aD9;~O8iz#LyG;bS6;glo~m@=}i z%+$?@`}Cu%;vVGTya*cgRCDY>>uBxo$^zIN3Pt+mi*4wDgq+o=EI&&my*jrvo~AwC z9tL=z0^2O8u@R{x(`$><9m4WuQKol^pY|zpn^MY#Gr-(^f6h}M1ER(KO3J+o%5kIP zhO6^B8N3)q$FjYfX3nt@S6?>mIrt$n>RIoPkv2&_Lq%cbQ=w-H%G^p$Hi4i#S*odZ zEX?!#UsV`CUUo%81{q?0;wm_wPT{TDMQJe8xY-u;9a)YM9$D3u_>N_HN zAHxk10CDValppNcuDi6w#oB1%$T%8VI(Qsu*iE? z7{l8}NK+z_zqvfm{4pO=?txNxczR{~OFryn{)LC--k7o+;f8_Kh8e&SYs|I{Zg_^> ztOZ|>{`q%PN*{E#6{c3_z6>c%p1c`UT}L<+02hw*Frkn*CH4;BKyETgu;Ug~8Lz$Q z*xn?bR0Y$Vg|32A-WOSmRTx-_MOC40&%W@k+3^VQ&OkKBo?JT%0xR{i7^KUYC3?O~;6%PC)$}=--iCwX!!q(;E1v`afs9C>~-vF zcwaH!is>})TS<7;?WqY7;8`V7%y;1ZqRlj7fZ~0lA zL_C77gW>%9&Ws|c;&D5gJoYz0r>dP#!n({VO8&{_+ zOe81(?nWpDQ6)b^ji*U8O7V?VjoWum!SjYP?!9&Tj1@nmeKntgH24Oudu*N<@2Zs> z(&KmzD}{v!r=EusWlsCJ#u_ZoK_7JiK#{=Uanh;P_fQumjv9S4J-!5hU(o229%-ad z#?on#;L9B}c4`R;-*Nd|ki0fpQlXPbX}5F_+`|O`gpo`Uty7EN6%h)1B$?jl!ms?# ze-Ig^7 zE`n8hNh2eo9GT0*8X-r94y)~)>Y1bHr#(6IH5Sfu!3|{vqEU#3`|EO4 zr5J?g#0+6>AT6RZ&M(%t!SY;f z)LzA`@Mw}1<+(8_GcC0k#ojCJTyL^>gY7tKU-qKj8tz}1cOxh1C3X|xdHVG1@hF+& zR7jlEVJ+kUyPmFHZ(a7M!*#~ov(Yj`=%B8_Sa)*O$Nw)X_bdyzu!?e?z{(RP#n!Ff z#m%a^u&FNWmAX|5tO2?kCi3{Y;lM#>jZN8PlQp0tO7&`$}P#~fmrq%X4-x?m=@i@)ZV*Q=IK#`5^Yy${@(PG!AOWsuq|BGU_T1+ zhppLp|Ankv*Bj+9d;LykrF3ZojP>9#)Npr+^L*63qP=ky51ZXMj-9oB_g^r z!(b3X-igWJo;3xWAQk6$pp6YY^4d?iknZKLv!DTOPEtczI9LU{Ia*)F+UTQP8PdXZ^;eIu8; z#kmL!3VfFl-61oKiAEH+315nwewI}n;>rO;rtx_EJmFK(Q<~(mhX;XbscHA!mV06M zau{HnZ=*$yx#pRntoKH)HBIWxC~f+380_1~dvB)H7NlC&_gTcG3&ndrwxH4j7Q#2u zY0ciO*qASZ@`?i!4IzCx4k{M`0%SaHcCkcI?fzgK0>o;>|i8ii|1&2g@<|zcYxUE z$<6YXD?MObPa*wd*3Ul~5iJWk{notDIL*w0Z0|db94Fliu;E;I`pE^cCO^gmI)lr* z=S14&$eRfbS4!s%QKCsJ_0&}2n(tq1PW=W}+sd$m(c{Q?{k7b+@C-8+;v_Ru=~m$- z`w`_9Kj7+MuhT0=qhpXl$s9TtuFwyUve+9?FU604NX{9lB6ei8=gxN-9=MT%>#tgX zV!ei2&gc$n)oCq4Jl`GW9uRAtJK3Gbe3pJKEWE&197;~S+3Xkk4em`QtBnNh4cF4;tVxq_}qZ1V0K2OHRutTp`IE->zTW zThBbX&adv;0P?4*1L1N*{9X<#0SJ7Pn}UZ@ukUhz}M&nks~;QYvU=-IR9dn z>1W&_Uq|f#^VN65)>V8Lvm2i2Y|S<~897&bu1h~i%XFmLgsn54%{A&LC{2OZoSrhN zG$V>{1=d7-U_stuS9Q6g^8s6Om#hy|rQ9d=cJ9R|h0%K;Z&Z9gWa&@;hq8|g;PrV$ zhwn)VSBS`!(JEiPo3{4Gz3~{vNoyMW!muw>Oe;s+WAy>8k^MV)@E#o$gJbCr?y~(8 zxZoacWl2wX^lIQ!=cjz`(>**ae1b{U#en3Fu}6LpbL91K%$PZq7%0Z4I^?d?Ic7*# z-fQ~RTdiHU&w#tlc(*LbJp&^sLS{>7oF7_U&zpa)++&tK`(@~k^k=4&W_@Mf-awjR z0X+xh^;~pQ1mXPCs%WPA*!mO zhFHAv^=T|?2;Xy}80Y74i+yNcMMAaqpKs`Ou!$5M^|AF)ujfKHUrD+4k~IJQ+-`3U+fCoFD&MW(m4&%H%fK>I9=A7AoJIOl z1}BVK1AXA6d*I0Phz8$csW!bJV_A8B!|Xk@8tDBqmWxTH6V5O-VW7ekDm)}yBy<$j zk|3lU=5d`3BN9zIbvB<-6s7CCQS!~VVL`}HL&Cr@hJk;^ngc?zWA&n*MKr0#B_V02 zu8J>__B81GtFK^O;~lMop3yvX`m2V10447mIbu}lB_5{&eMc-dULf{64zic)EGin~ z{_1WGNIP`9QFD!3X#nH?Rw}!iV3ySFnTh{ zJl<0b9OA3!k~pE=;Zn^{_8CDYQ9naZ;7u@Jg;i5na4DM%6~XYU8wH8=g87s>b*3J1tPND3BrCnCq$cLW+7Wdrp)?4$uE4a!a8yr+>}KnW@hg+)KeUD42wbH{mWr?d6kngK z&BU7V{TwN7R9W^Mw~{(+McKq|2F@{^L4rfNnx~;X;85*$s>J@AaIbhN9S-raYiL5`$Djl2;H0av>KTx7} ziDlRL5m!BliISlIYG@_>+g!yz$;?VSqz%_I13mrxuJ2DOEwMQL`l0l>Qv#_Rr**2n zGT$7`yY)Za7nMInGZO_u>S5|taevf@YvbhA%YC<6pCCh5+}Gy*k@#kI1Bw@g%XUe6 z*2E!2WuLW%;LHK5jZ}3`TZ2T(m5}e)rR{*t|N0pPje^&8DHggb)ONr}C zuPJwL7|Nxz8xAy&*fJT`^(EPwJc?axo(*J~cRA;w>Tv>WhO`*r7Y}HDop`OBJpazJ zvzeb{Hfp&yfzVk&Bx6{RFv7~wn75xQGpH2jep*kZoqlE|K!yh8C zRiOc~?)K#`6UYB`QrN3|n7xlQ0BLd8Dtyqi+-LNl6a8wJII+{SE*PA#D0lQ_z_$9$;DC6>naSS>pLryj~j@#XyfB6(0wsvNQIgYmK9cR zo_O>a{A}0m#VP2@Y##nkb~X0e^OZ@G9^QseW^3TRs`U%h!kl~EPgv&#sg>^!(VsX_ ze^T)>rb;2}B!RXe;%LDH*#e?Qv1aiPoWrG^_Puau*jsDf_)i^cfAmx1IIFdj?r$TL;25pfPakV2$Er1s_*!9s3P@-y@j`%C1(T(jO1oyEcA3L5Wh zAz+AmC;mlTG3y(dCg78bO})BoIC~{qFDLgx!kWhu!QeCf5D(M4J$lQU`+*3FPOm5< zaggG`VuQT4_V9E4QRlJx5&Ue}`PptImdo0`F4enNbTF?@BkU#bQ{N(c1IIC{@6~lG1sv2#_d%^D` z2E<@zxwsU>;#1vkLlF;M_)(e@$Dpx_2|E23+?$Pc(zjz`EOxNB$aSd?EmNFr%Nr7K zx0})5IKngkIBznP?kZAvt&{Ryb#fthtJbfjUHMvgggGb!n>8*`Qp8!MuPnmT#Qoyz z%JQjWJkcr3>vL1gplL)NOD}k0M8P7TKqp-=yu^_4OkNMm3g~W;^cq939Q}(&1=y&? z^C7Q9@eoxm4vf(7gZ#-%iff~$(xjZD82Ptd1*hW_LsLYEKVzBJ`MqYVJa7Mnz6TS; zH2kyeW&@|u-f~(-Nw;ie!8-S7-TFKuSOxqUjYg1b+H<>bZ;Wnli^=>z$e}*)e=(^a zX=`MM#UsMl$-((_1H+o)h>=0tR|?j_?L1Y)$fwY8thA3{_FAkXQ@aoDH|6bl%O}tu z{lvMiE_z4j@*AyKU)u3?QAF$T+nIx35hFjwdyQ&rOo#m(nD`I4I4htruRqEJ@x>^1 zD=s+ZsAe(tsc{KrkE3zC$LM0(Q#g+o7 z2A+kaPDrJqodtF{Hi>DJZZv7(p0OB(DHnubd^eW$ zh8@aXt2;Bjv3gvjlvh;y=f~QC=kfJIw_?{`lr>L~#n+#I>MgZ(jvq4|<|}Wz8K=;$ zslZG;G6Aun3g7z0V-&S|KX4yA_=-tz1$CGoWeZI;D+H9A$$uY^n>#hP6drdO=7kYV z9-ky)Jx#UU4Ro_4#e}4^k-G??74QrLj*}51B4vC|(<6aOp z$M3%$e>B!^@Hc+dqT1EF#Eib*)n8)M5SQV~hh0cS-aw!h^cD@X5y-S_Sy5QWUoxMj zuCxjH_4*C4$8m{4D5E>=9#cj6VL2W@Z3WeT5;FDZjW^1%U;-2B$m>o$N8I+bR9~Skb!|Nslfqyv=+|WqUL-%W98cl1&ANX zp98+J?hC= ztz71{`tnzCr6ckyhhM$y?-7I9kt~o)G}xs(`laaM`vbvo8fa0{m+Pwf@p6uslWkgTzb!tLOi zZOn#C&ollmuLyn3+gO%%)iT1*uWqL0sz)-GhLE#sJf#*MSLo^HQL&#)ZI*V39-ofU=L2);#7w(we@=}v{BV2Dg_@A~2qtt0g83N?YmrDBR8uaz3nmjqz8Rvs`aaM+cOLqQo#mG8q8wP}M;EA1Lf`Yq?{`7&xJipKF zRayKPeza>^c0}lhInvc9InEY_c<2pO+m*jUf9O2eFw$lhM&FKIjHxO`oI1s@DYt%& z=r05N*DIAFWDdBn zVWZxtIv#C703FRV2pRJDIhq;4!bSO|SgW6LgW9OFlJ}%j;WxEemHrNH@bn#JD%>62B+JE$mMj8g(pZns#AejF+BMuebb)+(}9 zCjt_C$ZGWzUd*{*EgEt*6wXniD;CHyw{a?4dHCzsZ>BM`@ADtmhONcc{5M+cWTP)E z6B;Z3x8t{1pr9kVRIsu43XYcC@EBp2ZMkK{A5S;T^Bszry%cJ4gKZ;cKg@zmTGgof ze2Ckp%CktRN$_P{eYrRzNqe21@q8p)m9<>O!hZ3+uNXZbkL~14X6t`gNd?Kcyl?p# ze=eRDdojB`VA`Ho#<&+lJ;Bwy&PwuwSZP%IIi=Orjc?>N+X2eowwPrGnqZg?c>i}n zrpa3K_oaGt@74t3Dywxk;#;8Z@`>qhuYPY!A4u7U)OM|sf5$5u10=e^Kya+;rHmuN~BR`MQ1zW{6HdRE^x{j8hn+Kv62 zx8iGyOCJ<()?f+cAfpoH9s%#9y$Y2VRfMHmUtgWe9;6IS4AkE6^(xN(WX`h_?|XMzK()VG z)PC|?b$9by>C~9)pj#kS$5?uXZAiF7hdUaoNfZk6j6A6?(`{tXom;$w){{0=d^`# zF{uMokyU8%Kfb@VG^i`tVQ0jV?48@^+Yws{BL#w9q5GmiaHeZ~zlK)yO2&K7O_%B9 z?)2APCD@njfki3^rUC?H=nig{*d}3lH80K3^wB8D2+58VLI|B1vq_}ArT=ioIMg88 z@KR`<@U4;^fE#3%ZG31~>B-;ejpNM_gXDG^anUnCJ{`7!a05oA+1{u3@`?O8A1kt)(NAvPY z$YZ>(g6Y4br9e}0Ybn1nAj63O*jbbfRfZqE5$G*#B> z&n<<$Md2(nZlCPOxzw)(p2EB@$e2Ci)37WY+vQya>NUNI@BNspEhSdwRx|fz{UYC_ zOi4`c`-Shh0`7z1e9BLL0Iz0o`ySLj!|a@Jxb#{KfHz*wElHWN;N8}~J@HcX|5C4# zA|*2GdsY#r&Rslnsnv!2;O+D;l=dSNO?s7fym7f|89&YbcSTqg`x?-j)Vbx@|6OVr zqdRK*$5lDDur<} z_V~O@gi}5%Cf8H6ctC0jKgj)vZzTTW_p3_4+HL-zp@=tp4DP&>yXaf!t%1&uT_#^d zL+H=XXzKfCEq}uXa+bu=#M_iy_ys#$h^hm`+yyX>6>gcWQJ^mIbz1XFok{0(Y)Bo# zw_FB|+|!2|U!@Ed3?^MV73e*+b!-F5+k*u4vMS^JO~+Z3=}>&U!jJBTxqjZ` zlE|)HAtt=|Dz?ai&z;}+uUMW2_Fug#?NZ6eHGH}Z3gUk;5w0{*^Sm)c#TD11Wq*W{u~LJ$0RS+R94%fhMj|CI9~){ra^NQV{sj%fS1RhQ3<{b*z-_whzP$z_e( z&=(P^mx0#w(H;;PdRHD06Q8kZsCBN1_@ECj3A9=&3ZUW4Ln`clha1_L+590#P?x2P zM2Yygu6ZjhyE>{gzRzzZS6)sa4%@0T?yZpi=hJu*giy;egOiVQ(i0H6^=e!;&`!%b`=OAqzP8MXn}LYFjQ|87{7Rl+~5Z}IyM_R8T30&R+pjR(y3>%JR@bqt|^cv8BXZ~`Q8Hw z)B`_1D*iTe6pJ_XVPb3VF=HqzZ38LGCIrRGO7Mlaqu%s;q^4vX@zr){>A!X&$Caadxace2s{B;QHkkDd7jHRf|SUaq+n&8u=#&+|`^a@KP~Ug>x_Q;g;y?hcmSN zVc5>2#cQ~9gw-oXW4k=wy}FIhIz>d!=|FsB_MFMMfdnr_Xh~nxxh~}kPb^1e{vC@4 z4s?!51G~q@X5^b#@nPr@Em>syAW)96aZE1VkK2aNsb6J0I4 ztzVV3Y&gKXi<6iipMQ$TNCrDyo8uJlPkbu-vI6k0FaT$o?T7xJt6h~mf*P+?gILOS zbX+w!`z3y=BDLD_V$@!uH6D*(F-tO7;K%$roc&~a+C7ZcfxO_4lN&s}5~b>~8tPa} z{K28_dNW(IdiChKS7J6DYa_;9(^W1iyVnMfa5`dvvbbGu6jpFvKg{)2A9Be}ujF(M z5mQpnVeenmk#=jf5qmbz^5{f%=R7w(`K@$5=PDMRJe1Z7(Chl z%Zz~%`{udT`~A~HH0(ypx3Tx~$g@{H7gkv8+SC8rcX8o9alR`ic}4?!B+l;J-1r;w z$s_Q~IPxQ(X!B$-m((lzwYnV3cMa?ic(~4zn{wMawCXRUhJwJ{A2NU|JQ%M19u_1+l4$?(KIRpoL~0zs zs)(+-%6MPy7R<>fukWM``P$yj5e7oY)w8j?y%qg zE-S6|LZkZ-#08N?1^V7m@GWm%D!D@Uuq(HjpuYb2u4%HPv+q*8k`=)2bHfkRsC0eT zIYuwGd$1jyZn}uweHmaf#+0mR8GB7WFF&K`kGfIB`rM0?DpLRYGw45_ zS;lz4^q#5Pr#4()yQhHMIgeCw{T{m%a6hnmJp2R{3z_z{h}~QGljpJc3jO*N+O$6x zk?rWSpH(OpQW6+*Y@f5i*ZG|Vfu0GsoF>RYbYy4UIU9{eItF3Y*?mfXPknx?tL$4@ zJ;wT}g6gIf9r%<}@CoF5W$V}fDh>R2sya_vuK0RU0B@exK_H7NWS{n~vOm8bsSZIpDgl_4dI{9fT$mjKe-d3gRw;xC>9+JI*0sR!6jiBAOSe+W}& z?f*syH!4mH58!Pkd6}+LYWVV@p;ih=x;)D=*`#xwS$}CnYNJ_FL-OK*xz>OdV`*W) z^Z7`tD|>G*xyWd{iw!^8*Ep*XA-Km)MD*hi#bVgN0f#_u~`wU-#S|MyIu z*K{;vwyJqu^tJJw_QA6U{;kIUARxsQK&kZdslV9S3*fbK$D6nw|73pPFEpL2Y$@B! zb<)!go{?L~Wrf%Yx3Qp*z@wSu>M_N(@}r4g{z?tZ5>ol%Hb; z2ZDEohg%sRdGl{)ChkZ!UHo-l^;0EJRz~May=*`DY#+TXvyEt31}&23aMcf#Kvw5x zfCtaNp;8!Xj8pdylyi=Ee2Vw90sVZKM9U}m>T$o#N=PExD=ay2J zecuvR{?L19jQoQwB%V}`Eeo7m3G^8K@;!Uut%`ROQvTW)q1SsDTVD=M&0oI{oSBk* zByX`3X&jo2o{XYb2YO*x5+0&XtCff28yVvCScrFwuON9(9P>Tu7I@v2-;BDh3??lPh#tLPfK)c;4f-+aHW!R>v}+_@3$^3gN*A9n360>zURp4 z+$Gwn0g=X0CGL$p{QO|$Iu(x}7a_M7)z*|`)S1D*XMYRMv%SaUgTS^J1R(F{YEq!l z^;R`Hi2cW?7^?Wd?*jp;BHsEFz+{Wzj5@42qFDx#*rhzM{=8OwD}hdG1tJP#f+7nZ zdmZis69#V#jp^&8|i$@vscv0>3`9-Hk z4TPYX|9rW*`X46yeEQ7yj9pUX?zpBgnPJR$Eex^>!9Bp%6M56QG)|+n`d_~39Qap} zbbl1@77JmSv0d=b3HTu<+{JZK_nsp4a-8+(Jk3; z>oh+H5Z_5AOMiH2bxfMlZ(jtRDI2(v--y8taAO~Scl^&o<&2>Ew4t|oPmXzlvs8>gICHa^{w+uyve&hc<(hhc^v?|}C2?l?<2_q;lP zIpIp~!$EJ%8UF=-jKb-P&8*+H?NiqZgO_grPkkyA+#f7C)fH)5`wC);-|ou2-j;zV zRR`3h`7oSa+*Ha?kJX!)o|Msjiro;E$g5h_HOrA2K3Z{vmNxTAyW>YVkXOMBcEK|W zI;l(&6>y_z>6q17mrOs68rLkPM{0Zq1O`HnePFnJ5+z>w#8tSO^&j>UJ&+#>NZ~{{ zoLg~lMQlmKBjEYIM#GQ6PLpvpC(uGL;Jnp(@ICyVZtF&EFTtQ%#+=;pPx|GWa_jqx z1x^2d;m#v%i%CXs;}_YL55JE2A4~h7rndf2DirH8(fUZ?ow;xQlCOR%-e_SQHp-y3f*M6qFzPP$8q%Pu#?bJ=Z z$fbpMEpLOwaIgEHa4iI%&;Jq0-775=xEK(f5wAm3XBLvbR4o7VTT-(S;6p3x`&OYQ ze{^;Xf_TMV3S13HC48(OTmE#7%pt<8@q9IBQ>yq(B;suJt3yEQ)R|M?S=lZ}^#p7V zXI(Ic)NIPW_;Ms}l=m3EQ)^p*7{uL-s-IP|fB8Xj{6jadk-=Z}4VjM10l)8L>)*4% zw+Wz`y!c_k0WCLNnc zMw>q^UE(JXIsya}N)f8Kq<4>su+j!K3s1)77RE{ntwbCH6QM)(7>L|daQ1^x8@h%o z;*L6Iysfo_*|~%A7w)^CTUFvFXYH39D2oa6|MQ=j{nuRX3GN1QXb62k=`Pg&FXVJt zZ-$m`Hd@B28Dlo^&WWzC;1Yk`!Jy(^b!TUx25!XLQ@m$Fbaz>h7BI`=0t&=l;A_`r zPUF`^Z1!R>OO{6f%{H%TGhxs2a7s;ks!!_;VCA&GfPI+%w+G6zW=<{2IP|g0qD#EL zh!D}m2u}YjnNH26w2{k)S|w=o|J2nc=+@i<^DJ&jZTQQ`p5btk}rBflekK z@{bO_uf0{f6R;R32ew4}BrR|Q#%g0%0wlx`a~0zVp$ygvP$HV10NE=gKJI@87#*fd ziiiK#a-E%bB`bMW>1$C|<~zb>$ZqwyDP>pfXqnfGIcVf&N5cBRL@nS#JD|WWZvEVL z!Z3fORw0|&K~xEjc-4G-JncFvs3Gt`s5({5b4_+ujEyW{77!&v9a;cy)=IN92tA6cd7-BI#w$);9ggUP*5% zx*uSkHr>JZeo39mH8mDk1WgFtw0gJfMEvR5FlH2l-nNM)t$O?1>}FORxxIgFZkb0J z(z6(STk3vUbdG>B*l4fa$v!nBjFt9`!n=Xcf>~L~!B|>|mq-XXTwpc6EDiOF9)tePNO1y)$ zy2khV^fPseEuh2FvbVub2g}PYSgTBW6V?nHa5wiC_oe6o!S1=OB|~fVsq71*wwxO_ zdKddgXT+G_ffwNcv~rJ*QBWDG-gkS_dM;E zn4RQ+W_qksb`&XVQKY`xdcK=~rT^(44wY&yMk{Qmb zx4V?EXRQLO;L?>8(ebfh9uf3E=`n@0a)d7)P;Qc!k;l|9BRV!U@I1~BY437l?)J6) zNfu;o*nD0c;(W-6{O>fWwgI?hN_{k*HBYr+rD!(jo>ExLiCj;x0$bMqVql-#7zaYh z0-kcBbG|TY4tI7S4ozzOycJ)5ylKPtOinkKvJIP3h(#=>{_-N+ojeTs)^@k}f-_cs z|5?|oNb+>^P!r8HtRIQBT7bZHd+A!COLGWLDyBJ5l16s0d{yE}rd)`2iw$jFxFutB zj?Uyh(A04NUS3~Z-s{uW>tMN+cM%Z#Y7+kV1hM7QCVm+*+%!=8pnPZDNs|Z;~H+Uon=(f$<-qpQM^Riu> zR38C;_+wg-baB4#>(kl(({bCME{3b}hVE|VS?&4dsU4V#rP$|zQ>_mD0*m0pfoaNj zlS|$zXbCeIQWu#vyB#;arz!hkcgXFNn1;b~f#QaLsDX!3aKl2rzRcO8j!)zDZn=9q zijEbkJUL;D7HL6XImQ6f&~ui0W@n`SBCa-lrvaR;z~-`S;|mD3AalbywzQ&$!?HR_ zuPof|yq_{U$m|3FoqOb@0GeF>JI0X=FzJRr{2!MwM08_0eL*4uA0Xz-S`EXT9#ph#6LU{ihpQbGM z@C2icwm8i;)}}|xO-%XybL*Ua_KK}V0g;Fgv@&Z)_2)6DgDWXmy(*w4>pFcyC1S01 zs(JmDeaCEOz~})7SZUG-DGted`|gts#D1I8vG4JXBKs#ro_j@Z5`Q{GoILisD`V^l z0P!Xc_lv)6InOZu4lY9Y0f@!Dack2Z?d{RJ)Xr(iwsBK9a_7VLn!z9+lJnJ&YQ}5m zv$&3>ifB)FE7T5V$3YT(mg}Xu#^NtESht}8hA=M&}?gf0O`P;e0 zlo=@7@zBxX6_ihW9xNB#rF`3lVeFBvK>xquAL3`9&p+ZNG7OVExAh9EX;*FO7XBpT z!u8k|k|D(8k#85~^GxwsME_X1mB4(^VBpeCOWF&rnL#U1yHEBtE!ZUxGn30ZoUjJW%6 z;?Bb;T!6y@Ml#XL>LOO@Z@0=R7uj`U*Sl+n_dx(Y72i_k{UZz2``#xo(*2$xId3OD zYl_W3Se~u1qTFeDqhyNnJ8#6~EN<0$St8@9eKSwLUu=NB zMH3VLg4E$hfP%h`ogI?u+${Fmx(}!WHa`tN&P^#Qm(wtLsI zChONeV}5Nx4SQkA?!{W(sL_B{c8!g{^ZMfkkJs=7R}*Y(hd8o;=_}k?($uZQZ^3xF zDYulJIM}oB-hra*f2vXz7*6hcf|<;jL?H_Hj)I)B_)Nl_XcpW7vl^Bd$$qiG>#^n4 z%A^*>&V>}I7ev9~Xl#J+9OQfSHl9r09Tk;*F}0XYAA*88@G+kxlfsFW*>kWUtjYTs=MKkCLeE zK;v~bR9?aq*W-7vZ!>CB8GWrU)VBK#I+N!AW0c7qs@OUA+vMbw?eb@Vx`?2!=UMOk zvBXhpi3i(QEs;*LdUh?x_OnNM3C9~w5_avuoNfBO_l0BSLLVYshb(oQD^C_VhTJ0q zj0!N1r_xVtn%E-CPj&Xv)wW@eX&3*=Yszb_Q}mEN`x2K*LP{- z<;gSiPM~9^gyN&x+aGa9aA0bUPyy9UVz+&rjRQbbKko%QaZM=MBsKllg#D`R#c3-r zH(#xn&C);q$hgtPs?ZMoW+QdL+>x!Cu;7@2PoiJ2;`RBDTdU}B@o_Xn1M#4lCu2F> zQH5|wq{hx`IXJx?;`-0=$7yjALx7luk9dDIt^-79YxX)|OEk0pJi zz(!Nn&cCd7GBZB=r^=Q{o9kfq(OOMUDXa4=1;4=HW49W|cDQ)8iT7y1tjU2L{Nh#` z88OHdFP9qE9JFBhFit{X>iTD0OOs_i#9r}-f%<-}?Vql1$Ay3U2HW|^t({A^7=la~&b$_1s{eHg|jq)7tjM_!V z1-IYuOP&3o3HnDnMnx{aD_|I*LNU*9-Vj%VF#6rLStmc@uxd#2`_ppN;_sl{C4mnU zUz^wkvXtU**Tt*?caKRKSR~|a2G%gcyOK??^wy=hCiWl$ryos@K36!UVDHRQ{4MnR zMLC09p*A}sF;1L81TcAfZ$AG>PC0Scar`JOKo9fe0=~bI#NEPVcnK}+Oe4yP;@P1s zUq0(s=b>Lc@ywG~FFDtE@EG%V++qJaR;T)>+AqU0;_t0vH|czPrwzS~rzGZY1T%v~ z@LQpF%^kT+ALVQlu+5~dWx77(6iPo$q@DhZIz=Bc2rYU-B-4ohKRsZuk)kIN(c?#% z{|r(5=Z?_Cy~@LfFz(Bhu8RxNMQP5XOYNlsrNpXc?l&rb)%1uu5kkMd?pib(Guaco zS*cCDX6_eh5fl&V&7DQVhghP-z!<1teC^w zQZHj^<@}ciT_h)i1{#BUsswOR@8nDzSj@X>{PLrmB&(x7SC_dw_?H_~8TOT}>BZ^e z?NSPxXnXL|Ei47|YTPX>kyuk^1QDqN8Uyy*L~9}|G24NQt&wPqQ_+{s1N{N8{9)%?M9@aE#jC6B%xs7P3T(Kp_6x%R^2)(a7>TY ziDEzqh=Qc3x&Q=Fxk)yu%txBR z+Xq58I(IVGKsA_yfJLLuoeEXINC>k1J#eyRu!Zpn(RmZopt#ur-F&eC@m?@f@tabd zOcI*=j@r&Yg89ppV`k{}B=LH6yqgDmG(c~Fa5Wn7FlQN0tTh%E zhITx*EdXtSp|&2Z3@RJL3DDa)KjHwg2%374XTphmt+%}bjzPDJj1>8A_`OBz&dJ(` zxljNVRN5Ke`Qbn}f#oYkA6>9*FbaiVjN2~cXLDNm2=q>WRh7Jlm7g`P75%G`{TozH z(}iU~k|kjxPo5!nG>fkIzke6rs(j{^I!LvUv>!#7!^zI^Y`$KllS+yJE|z%wq3 z3g%=>u-;)N{rRTD<%7m>?Edilrd4wsjH&^^*A>7EPVVArw7=D^9l03mayIksj1^Mf z4XK4$@6}3{3pb9g!h?Xtwe7=7EjA~roy`IMxBXaCU%I%u4Z~$}yI7EvRl)pxqvgx| z68ELwGmB7^_oL9IGHFN+C0Hlb6cL=R?&lw*$#y$?_*RBdO5W=eRikbzrX*V7Zx2|* z%GaHzYalNxBr(*(ih!_H^}v4GVH?-4x>Gc0xlFBX$}Ty*PW5?9*MW5B4g9m)*c|~} z>AW-$>axL*wAHS;)0DZbT;a7q>v=~_K)ww7N~~)G zpnA*oA?gPbJw`iO?1W3bM;jkoJhWz4Avz)VzqD3JUhI^qpwsMsbQOt}6fb7+u0Fyo zkOjsP_9<$nN7OA>66#euNmI`~FHOf<@5xiKTteO!!M#pdzb$7y-1@xH;wSC~u50;X zyF<7We#Tc&(tqmjKoiEdpI#k<5e$c&|gB}Q(v zW1icR{-I%u!YjY4@e_g{#S04xG2e>z@(&QD>ieAwZOm-&V=Wy*-jw(yq#BNz{btd1 z#6cm~`w~e0Yl-ym>?o|i#Ee8kJ3gE062aMh7TmMUKx-Ta1znb( zY1-tbrCY z7DxAk@yypXs{MjprH0cv4SZyKlH#0fM&97PU_;mN4z_T0C6=lxqe8)De-zp;u)!^_O$l z6=u{Ak67T|Blx_WR8A&_raQELGaYz+NF^RU)?^MOQXil}|G*5Ju3`MvbjD+p1h!V_ z@4o5Ve267pFUj1xFb2j&>BBw_2lh0g`ExqfOWdlorx=Ra%kPX`w<}b;;O33Im^JCM z4Kr6jjH*kIbggK^?b!OJsSc_gML0t+@zZ)=LGqJaaYOsN1dgO&SrnK1eAf~#pa*vWG^ssXOQ?mciVX0ah>bFb7Ega&~K}(lP$l^%E0!t(E zaZ8$I=EFmzzuQ32Y|`&QsLg+K-Lteh<@t7kFG};utgxvNolr=o-mVY?zDP|)g&jM(UB-O+k4rO(vI#*th0ibBxg3K46iJp%ruCaZO}!PNt1E! z?ndAmM>%jLNX-JALgC7Yu{@iB#pH>1ee+6HnUB6((A)U#&>|1*7Bqu+(aw0{{i3!w zlW+Y{8^zcg_ZHDZatH_a_PVd543T@@VkhENOc>?IU`&(6!>tO)0$hTBu{?+O?Ejcc7Rp6$71ri(_Xn4|?tb#abT z^vmO`G-6g(W;M!f?K%m!%OV2R&MpOK215Ozt)c!y#E$l zE`W3P9;th5_FQ?PI;lSjQG$5x&vTNVw8I)YX-5vRaVVV6TAN zi@&f=L6lPGUylq2{o6nV565?*mRy?atCN7kMb$$y*!slNbEiDy)DBpm;#cSk!!P$Q zL#Fl0vEj~`7j@!$Z+z#5rjaVAf7%B-Z=7|J$@sT%iFaAbZful`Odq!|+cvQ{UiUT& z=>L|QDar{5(J@^R_gk#5<;L8MiSBKu zqt1mXoTJ7{IQQqC_?6nV#s^Sop1X?1aoU9zT4!oCllBECKT?=nXAY0*N2m}rjX188 ziXrLw@@=e9heZ-F4T!#W2PAW&0uJyI*V#8rwS#K45C;z2Sz)J>BNR~ zj@F%7f5kt2Ogp|P&;6T}w7#EW3RNfC&1|oCLA+79*=F~FBE1yjsMozg_w>6gk8(ep zR{ksf3Qp}+K4<148yX$9|LTpoGCm1}6mC3uZ(U>mXv=OhUBlUrzrCpTR*Oq-V6A$u z@okFAHAF?_FC?^b1aXVlihJ!Jd3`j6%k9Zeji*20z8a#}5vO2;eYvT?i=Uq%us>*Mm=T2m|m<_30 zuR``_0C^CpTA%)c=?3W-)hAKr703Ab59sN>{WBpGRmVLl`O8fl$C1T|9X@^J&a`re z9fjrbWiWu#-v$Bj&y-<6Cd1^O)U!hi?^#7xGe-HI>>R274nfYp_6StnsRutgogZ#G zjGE3$juKWF&ACk^-6VF?SM1&mzrIxm_+vVn76_O=@mm&pezMrzmWn=Cg$YdGJ`77C8LzrH;Ou1db%q&;7{MLgCT zFStjjEX=983xMC6*nA>7DK~99=9bL(n>z3lXPeP1h<+xTw4o%UK7C`pjps-t&?tj` zX<75zK~Uu%KK>QSSg{MvD@a@I^w$o1C`rEKZj^R^o#T0QHmxJL>*G-dI(abOobrC{ z$GdUiq!pH7LWHkren=|x_MWH7Axcrp5z1W=)^SDqB6Z}mW6xn;JWzv}Ub)$bd{kR} zzM=0u?xHYDDkO8s8zP?WVA1cF)hB^<7&=np$JXq^g{Qt#LRy!VJrK9!u+53eu}!-y0yPFx!@EWuGlnc-%Wahy|{&OyZmZtTB@tB=d0 z-MEHjWgx3B&&aBi+JX)R>z`dkQ3KYVe#y6(G#+G_h_~4;$%v7o^yT$v{7p5uZ4Fyf zL`3T2q(_+dZ#Ooj;u84JwnkW|ful!Bgv(mMZRR6fT1Nfg0B0fh_L2$bV1J6_&K;fd zq{)u7*OoQ@DndQbUlf@h)2q%VTO-4cNR1vffnEEmT|~U`w~k7W(vXS6G=72g3k+f9 zny$!4OGm7`0|=kAoL#x7&`)}H@%5aEn#VQ~d2g@jIHp#K#TMj7*dF*?QtO%4n)uC2 zs@L>kDV{9O`!U)|-jmVPyfd<(NfBsxnc`RUebo2v{2=fr5ZA&?SNZUoE0OAeA(xXq zURZEklv=9g+jhxPjlSv4UM)33NP3UUFg79wjvU;TU+mR#6`g)l{$(b#z^?uEd7<|J z7*KBe>UjRc7q`8gHhr&6^GNzh%Gy?T)ho^jajS<~wBbIM1)&LX;x`mvz|SRnI=c%JLI4FA!nxsy_J&&NE*_Ln$c4ZT z7>S*~@5^<1glOm*WI%)X4OTECvz&Ds5&jD)-}-{t{p(uH0vWh3rGQ%K$|rDeDQArQ zbLZ&N)+g1in>-N_gQ0@kmFL5?daDm`KM(Ei9NoKDKNEd*J|0>lHW#0KI&#QG{Ay73 z`HbOlWBXM)bgBgQq=?PREDQhQf1=|~{y=(& zB+!JE%v5e*$Yn^|!+o)cDii7v*qA=@eBC*vGGfM`9mXRxAc2T2o;*`x{M)m1Q)O-QTi~xRbp6r#+>$qGQ?WsWzKdmFDD1{q31{l^K2wMf`CpIps-*ky45P`1d>A zaTQDAIlTdNK=uMilQNrbS@q+JU*5>(xmtr|I_XW8c;~zPE@^HEBUBkFYAoebuz@vkq)K4GM=#MPRzlZJ#B-4) z*L5(m$S=H$8r;piQ6pKTkgMSMpk(%Y3m{$%%Q zr1bH!N^L}Tp`Pnz;WygJ=$!XdR3(;F=qh}QS2;b;u<=vh;He{Wlk3Ox`XurU>_2Vl8>tC1R%UkY`C7c2mM zcDEE2*UefwgDwpo=r|`Q<=I(Z9}IiqZN@b;kugFiuv1e?hW#&l6sl(?iWf0A zB;MFQfQf3P&Xq@J*75Dav17;Dr$*4!ic4+C=#bF8EJ!9i!6}LUJ3H!V5ADO8u65T{D6<&$UZLi@irsnGpl@Q0>xEc$%!Iaban<(M z1}OK|V7@GXJE{yMcWC%pJzBg?V+8`2bzB2ub|+nCjUe!d9r#ug)zA5t%V5u=tvb)J zzU`Ec`tJ#BW=+=EvpVS@<>FA-9jR$GSx3#X44k-|rpajj{K?F|dkSfBUHgdf#~!O4 zT~2C%t3nl{Np$=HV*cO-c9M^d;AhlS3T|<{Ugb#Vl1uiNSm`#d^i0TLTE8R{~d`h4nX%)X{{A z7Y_@L?!cv{*>!4UHBpZc&OJmvOT9j7re?_4irua@B>b0*DH6De4k$kP1}bSAPa|bu z4!$WlziPD!YsZ7FRwnN{h2Ng*_)r_y)8Nhjj~*H{%`xYZR@v1(YXfs5XJFyv%zDv#TzTah&(>nq24 z5V7@;|9tQ2xQh#UtnLiOnGGQ19SeC&mlYYa&UuUpXLfGebof1gs!Tlb_+(ZK5Z#o5 zhE?MT-kvFd9N|n|C97uTtbF`4x5PM5)2qEY`AsIN!9ah0dh66LQS@YqDmMG&K3sc` zImN{puhy+iQJno8=AszobP^2vfZ8Z{emr`}Dl!BBob-rNzS zyceZj12~@)?(m6~7j2S=S7i{^6Xc@*@)-G~j{pj4U6JZ$!$@Z-nqPi2QTcD)l!cBM zT))+%1eoyDBk~^g*S?6b!B;w{i+JjFTh%w7_|w5Yel&Va*o;AQ>TTXUK5r+!%>14! z@u!{4-HE3N2PxfM^8Op_ES8bOuW8k~#0_z1kgnitvhLP*^C&GC^BGpM17EO<*wiZXee1ap zd<=!2;F{_g5gk$QLzlpLdO6_?2lTwfNsRB2Zg?_r73h4zHNJQ4sr`_~pR4!=TKvO4DCUQ=L=zF^%G&fs=t&ymuPh zFDe7_wK+7gO$pdl>@sa|8#HuOw5xz(7txO{!V>b@v3csycF z#GjAov;R_3EY9XAi(jSXEiCTv|oHKF*NbLhf^S921aZC5{g3? zC#+*EeSotsN_|5FBchOneTq(KrE_hlTcTwV|9xZa&+EdU`=u3eLE(|F5lE6{bZ9r_ z#PhIEQg1%MZz{wS57`Bd^NbjbDy=m#*uB$G%h|-vcY41#rhi3lz1s8n@z|&G;DnRD z21|17mS3UxnharAYr6&F8yR)MB*UJFYmU({9GeM{9L&> zy{tkZ3aXpG)NpmhlMq2$3i~*jbT(Prcd&sq!G~uQZ;E9-2>8sm2LFQhBz420ivibuvd!GqXx`!G z9Gf5JZZRZW4=idOzUB3grFu8|KrVWj_UP%r--J$ZzobuQ(VM>P5d){aWbeZ=sri{9lSeI z_3wp?n4+;3wd-2%z<#@ayU-^#in)#~hm#TcJKjD9czTLtJkYmbQ>i|9HbhG4`?Xvi zuliWtZEpXVN(fisf%f=An${1xGcWb6r&C<%mM)<%@~PJ9ppPt_j9}FrCBs8B>i9$` z41CVwKhYlFEB~8~n49(t+LqgKB$>>Dx)$clraSi2>9>y386(kz#xA83QSGtRa@{;I ziwtB(jE=C>-7Sb3aiqy7(z|jXcF3a#PBHkcA`bujEnO%4;*5KchgXL|Ta^FmX=lXV z>y;m$BA;YKstg<`q6d$O&yk_($CA)(+0Vt7LR4H)&(OXpHJcs(QZA_c(UFPp8*Fb5 zy!@CT@1O<8PDiwEb{s>Ft6o~z82Y?!5{OUY?#$7o`t%o*_PRKNYSg^mMmDKG!G^r# zzF`&`L>75E@%1zbTy3>pnpq!G6+K=X=>LRuTCHTJtCs_Erj3b`ba5TOd6Q*klSa1} zngmpq!agcqS1r)<^eGv8b=DsY5@jLJ9X*G`*`*+c>Fuq5&M#TW{x%BU&YU=_q~deE zF-P@Ze1*ne7JK}(AUyQe8Gro05~8!BXaCy*Yi1Te9-K}kLK|hFQ3KH5I=@utD#N)+ z>^{f!Z%=nx6gkGvB9UXfIcCJ@V_bOXrAF2teI7vi11L`QgJvm$t3&~(TkGzUcGqj3 zPj=*x^oHo%I#z*z2gFYJzfO4)dC6-aXsp%XM0|&F-yazHi1IU2OE$aj+-6r{3S<0l zOz4yJ)IVCgEP_I5OD{xPsz0gS#4vAi?SSqkf;s?_scp6ATo!CAZ4c+kSs8J~*cA1ph_#Ue`KMxzl<>QX-)1^q5sY*y z%Ztuj@|UKr8E9IxJdGh#KM=V%q*eTE`7*J*Imvj3UvDPg-B}#wKVvyg6U9i#ZNHbe zVvTgFzY2SF59+p5lGXCzcO*(Y_BQ7t))@w0x z$TX)=Zl!S!vAYECPb-?)2FfBEjVN~ho>Svv0)4GpUFoW6r#6oJWyPfQ(IZ~W2dRv= z3e@kgeQfGrwXiY3!HC#<1@)Kg!=}{SpJ%%5lf%an)DZPitW4qS5oNM@)S5#uzHq)3 zIb+GxZs8G~Jx7*DzJZG`pn*mer`35k*$N^WwUyUn>C?W? zEpFz0RC!~0&xO_P4du`Vh&J$b4*unBRpPd1z;DY!kX1tYiGrQnqHvind}s>$^#S@y zp@IOyHI9P7FsLE=r zTD$Abxb5BbcpA`B&^S2xklC{BP+Xk6K_vIrmPbffBxdV48AXPix^-?-E zyIkzqXOQTuf1@;!A%s5FN8c}2!! z58MmlktarddQq<^;WIiyOxpF$=zCB6f-VKCty)v6*B+1U#s{amUtt;ODpolsB?2paldoj z)kIcbB)Z5>)>Tx|yc85*E1ctpiCFh2RSlc};JYHxr&Rv6DKP~quKFYo6#dVpvdB;> zB<0|6tq1sOH6xpZq5DMe@D=RM8!yxc@%IZTkr2c{y?v7-UHSD8h)tKmyA zJFw!poG zRpFRf}OXvYfw4a^{dEM5PtBH z8UKk+*V?lxuj2A$eNWe&U>zAXPVO@!=$e#_QOi=&b5$6-jV=ZsE3LlyS7r(kW~-A^ zD5JwY^4-p48$8a~?UP3hWL`e0+8H;Kl99+v+EKZk+PT7Mk?ABXX+}ckF zP`!gazrnu(o%I@5z%?|xI&AnWRjZ3LuiwKknfD$XT&-b*l`M02PW4Q1IYu0Er&r!rsmAgM-Ld? zTb0;VS(XTZDNiU7!o1in6<;3P;<*Rf^`8~YVTpbSy_8iQ?^T27JLwMl#s!H_sV$1` z1H3$`+~rpjZr@^YnnIW6gHu9s=Z7M<>!^Oc__+ z)Zgo!n*vP5A%nx9sxR4zTU|kW%&695N2My}@BovEU+to;p51!`{MRsI@l<_n)!eo*eS0-Uybm2p0&;< zpsDA$b;M!eUXB@meJaPe6ADud8aB-~T#!&mE~#aaX;oU@V!@(>`C~>S#S6K<#j>pP zR<|$YDbqVfMrzGtC`ZLMFOW)VvKl{no6i^H^_L!vvHH5T<;M$5*OR~8MC-Dk2M?BH zNrS=*0mDKn)@I{6MS{CGU+Aa}`)Wicfcj%lkG(9|>_um~L|Jj$A@LDL8QxTR_wnn4 z%0J3AqLj~-=ds_1y8B@j$|9~wk4OlP=q3;FfU_G~!@qB@)oU&0lDg`LW7v~=;Xr*< zXt-yJXm{YBH$l1fU7x~k32=#L_8#DyC2dFBZwc$$PF>9|xO_Y(874Do%M{YP0{){k z{-Nj=DQEwE!~*~8ZdG_?PtwWzd{S}XF|TYV>AFmH$D@uM%s}uX@4K#3U&ebv73^S_ z*no4pUA$NObXgICl72diS`6_ z%Ac^rx-wRX47;8pwM@+tOr$*Zcq3P@5P7`aOE+ca0D`8~M`*_Oi80SKDmsW$CbQI`$; zZ)P`zh|IzD@7T3uN^K<915ojxLN{I5$rdSsnMW>E(|GU=8gzKNM4eJy$YG~c2(AOp zb1ghAMuBdIdqnNkI?R1&UC)n_mw6>Kng6zw*ExS{ZcX9i;YZBSk;)ERz{w43*zW1+ z;x58okA+J9xp&`yBSD3%a=lN=vorFn*YFz`SuN%-xC{Ba`$g_w^V1wyKH80z?NMp% zo?x-leHo8Ih`_^Lg+g;=6U5AHBi@|TuQuBu3DLPEWn>7BeycU4DxWhhrVJ1^=;)9N52aUHD=c`Yps~ zc0i#*5>znn3V5F=;hUOC_0@3E6Lwh4L%)`AQ zZZ;|+ZN^)7DR{B>ox0)i-BHPifVI%s-V}q*(S>iEABXwPZHchgFE2pSYx#rPgVR55^Rk;`A5uX zgjA5RjzrlJPtwLup;&n51QiR((a1J01cp?)cq77zvo#SlGagCRPmX3Xkx?(Vkcc~_ zVokrggjQZ7XFAGY09*KG`K_T-#kqEf1iij7K}};@wp{wK3+O2fJA_ksig?!JC_U`7Q#*8lNCk%_l0UIux-nta<=pVG?(01 z_i_mztCCoJ(q>JRjy~+Q&P|mocF&DZ$A2kU^#Z*=vr7;IjN=hDejH1)I2CZ?7X0jli+w1AX4{T9K(m~&mkU(k?RMZU?( zKExKBixvdv)Y>woXgA9G0^2xfj{V=hs@Wcd`Qg4$i{>@_qx?J3)E+P&opQ#SIGyJQ zw$%3_YR0*CH2tIC^tKuFD%Q#~Ec7SRoub_wID6vU9H^_S%U|zLpM0x^Ft^~IYw?OI zS9@3a9Fd<9^`{pQ{LEG(^6Bwt-!3*(=yaYDh`zmZ6Xv+EstrCo-)^u&4_xrwv7SFW z8bsO))D0O%+??E$s9yZ+4ghZSiMO(x%3;I)ZQ7GrcyJThL~g^|_uY(q*;leC)-^o5V!*wJ3w}t@udWo#a8H6NLb~4l z+&olL`6$?QB=EuMx&ks_M*XFZnp!w z+Lx8frta)h;`#b$5s+6T_kDb91)A*boT4IHPAPC4IC`kFk&TQ&%BQ8Gz{*ViZt$j& z#q&>Vd!&-5b&BD|qXIpRXNu6Y3jLtLRD67K&xtzvzc7bnKY} z?isr+=N5o$DkjIdUAimJc|q2TcRu~~Aj}=_Tm)v=?p&DsE7zj?Of$}9W=B)5%ETRt zpJX>h32}g=x99IiFH6v=YqO9;HbZPr!4hk+1>Hwu7NvP3B1?;5=&YBiPyOEEjO)Hi zriDLliuVrsgEb{z!B|}#ssg4v8FHHjV`x@jLVID&nYuZlQ zR;ifRmjfL>m#c=w4(L>kS|PtH9>nDweK1z+P|ga}DvtNI*U*oU=MZyn!96Mg%s1H| zzY;wCceAAYXt#l{c6{^aF%{yA3twV->L?Zm>x2}I`Kv|Sfv83jL^FEr=|7!Isobc< zw^9G@Gk!7Cm?J@q-9bXDMZ^R@o{t>ClGvp83xu zht)i=JuJ=s&nE$Jmir)Fyo+(JY5wUZAU!ej*wrtO+sjLNJ)HYZn9_2-%S@X)UflP{ zc*iB5CtcMZ?&>e=PyV=laP{!ZegaMlQndQ4dUPDBa&VBfjIBN{hF3?*;YMR^qS+St zD-)X{<7-bWxbe`#aw?RM5Z0v@60Hf-Xl|^IOZq(RKtwg(_!MT6jh1heAP?1=G@NUv zrnf3xNi6z!i#7Vhoh&h279gn%dwu+_)4uk>$t%E{?Y0Z;j&9tN@)4BYQY$dO%z^X2 zoh^J3W7c*<48xWi+qnmw40=|nKuF__$NT|E)A)t6S+Ope|wqUwB_ELGtEXp=M5taxZ{5&CF7w| z=>6Sw{ctA*JyG;yg;~VEt?#00U*6wSg|?S?9|PTuXyUu!845a#8l2|>p*T6z9yLWT ztWlXOpYE`*pDn*qzk`AfH*ICSZ(Xbi5p0Z>J4|f=TPxY-Ck6UW4)G7Y=Ikx0?Vz}2 zDB}ArVXX1&QuDa_;V)$3mIO)$zyB~=pV2j;3p*OA-rH+d(Y}#%KM`H)CyAM9hRGev zt-qtK&<*OwGbi1d@p#s< zrmAV&*fHo?7uy512DpD}AC^cwn54n!b38?EC(KbcO&u}U(_l>rU+Q0zdi1}_G6i;{ z^Vm0rJx4)sO_m~vnDE@OtvYeKIF%r(8X2X=eDEdo`X%IF;v!!H*=icjZ#`xxcMN`cLOB_G5p#p!?8ALjFv6$(K#v)j`_vEX=grz9!IGNkcXIo%MUnz z+Ut$P9zeL>hM1D3rtiFoZB!~)9)SPQ0IDzfDB`IsEAz-Um-35ybuZy+5AJBm;P$o? zb$9y@o7NEG+0OI#0SiHeVy*K7zsQ=7w|Q1n?={NNKy@u2PQNv#zGWpOS=-k19>9}c z;*#*&fgSzE$vQM~IJZZd%_A!lUDkD2x7$dR@#W0ygZp2cHz7TT|$HVe+TKQn&x zQZk#>CD7B~TXQXZzOXhIVEa&mOR_6NZrAM? zS}N#lDfh_Ta?DUN{~|By8)J4b6^E;foUqmmh$?|Cc>0_pcwxDKIgS1VNCRtjqx?;s z=#a~9KmWiIcT*Ie@Vyb)CM zp;j5Sl_>)&v3Lr2Y_wfSBRxWs_hkj zLCEy$?&T5|*Da;*uAyZ+2kkzCfQ1$kwQo0{`1U_Ke$!bPy+O4=QlvU+xj;12_=OBh zsEq`DWboSn5u@rJ!?LrGU4IUSHgvI?eo|4(sgjGt1}x>TlS+0zQts(m-}@{i8Q-%N zTY?E%6fq_|A%D}l)pdm{%Q%VKv|Y9Y{g`t`5*aZh+-859yP@b^95`v+X9I7hVX0sO z*D!iW9?VRz_q(9&c$oNKWb`kV$7T27gXN22?pU=ZA&rMIFFa_1Ia}p)eheFmp|+57 z2Bk_RQJW+=GN?Avp^kc#*@OLy(*NE`rLW#cl;hQ^zh-mJkoEy@O3Xu_>h7SIgwVV? zz6m1a8E7QUcS}v*U;kbsRN?gIMo_Zx1ifOrKd{VHZ%cgX>ah>~hs%$!yG_`qS^#-j zU2Kl38P01d9;6&p+m^AwB>^bM9V=1=Tz-ocIep*mn*nW%>$LZv}0a{Zu)9 zUEGzbjb7I*U{;+nBBHEW8)LE$5yCH%5~ep%izLRM8kaw8NK5*QdB#0927j9QA(gAE zkxV+D99!&uzI{=;rAB$#nR|t0Rc|>hXYW>?Dd1Q5i)g10W(ExZ`$meZ@rsX8(}goC z2j14q&mu1O^Hsh^ZD#~mi@|v?+lMh6w?pmi=6KyGXRfP6UqsKF5VBl>5=LfQ%H<1s zPvSNjzG$d$Y>&4(=8_`@pVQ{C8(dik5EUSN{oVRjQb|O!lCN+BESSkQB^M{Qtb4uC zR{K(DKjflgHq*4JniqToRy9gFPjQT`T%C3+4&?%k36^9-1MX_sLpDS1&~5oEPeF8B z92o#n;C1}EK<-o_pNN;ayK1HQ1}*bAs{B$NXmSwMaN!b8Z4J0rmpmiWKCyRP=r_6n zKoIjfRR&*d%$Hvht|gvB_X$R7_>M(RRiuQEl@@}2@)h=F8hikzKkW}F?uq)$-bDRi zSl;C1(Sc3h{sl+#sHLf9izQ)#Bgz4^4~Kv5Y@2?*P+Yjia5$ue49yI!+H&=)=htN3 zBov6V^g1a9KAibI=$ok~>_&5F{?GhRYI{Nu`QO#9&{0ni5@H$N{2$O{N~8|T;i9us zo-YKPFQ+;UtI#$c2DT)eed+J)$f*j!)|Gl7(=&|QiNK9V0aynNM zRT^df9^|jX%uuWbyS#E{orSh1A5S?HJk>gUin9eb9q{X^trxwK;Um7fdAg!Y9%D== zy;f87KZ^$Kdh5$B@bm%)C0OIuTVTsh2~!HBv2hWWIx2#()#t8B$DG7%^<1Dm|L3xX zn1QdALyqyW;UVaz9taguy{q&F+vor3;4WbILQ@sYy_sY}?t4D6u3Iy?Gcw2Ba`qOrIt9}Xj zcWs1X{YUb6w>H_r-SW^FU-*|5bo&-oI5#$7N=Z}}#Elotm6No5 z{Z!9Xou<2|>7$vDfKfAwr_|TouCz?m{X@9mj>jif_)gF>x#+wh{Pd9Qqu&u#Ma*-6 z^R^R>5@YNwSGkN1D7%YoU`Icad6JZFRz_<02S&=vW9e6&dgCbhZ6R(YE|WML|LZt1 zEESwE;@!1dbT~8h>?{@4EW_u0O`+)kzZ4>KTS+YInaEpT7+9lLAaM|u6L4xE0^>KW zTDce`jBb?jFM7FlLG@zPLZgn17X_7DF*zedLWKZ0H-A;ILAWF4#L-vhpCQ8V?ew(F z5^872_|3xg7gsOiCf*RPU@h`6+K&-J>op52IyZxg^c9*11%`4{pAQ|cG6tni^@A*f z20REVS`$Q%yuYz+)u_tM*EO{dmlG(xriVh^eM^8upqtJW^oz)RpSX1(V{qYvLRf}` z(&$)OmV{EFX-$5BPVcl|Go5EUs45{s^;&lMQR(`VGEJ%=kgpa9m{IR!9m0xpU?^e5 zp|6`Zy8C)g6r>@gBlo)eZ_)n`VL+b0KUo%NOn}ENcEf7W)0pP`QtXEGyX~a!1}z(e zZEKE4ju~5-bYM59wV!jW?cBZ}_e{h^=d%-Qx~ce7ympdK3Ll*FypN3L4CB2{CwI{v zWj+PO5Cy}V<{5f#Y_s$>#)DTZx8(LT_jIJrqq*l8HaKbKG7()j7M)PB-f*&irZESE z<tDV{D=Q8F-|9Eak>2MitVKV>^$?hqKO?S790GKoMTg7_#mjQ z5#pH6`!25~$n=VdK<`+m?ZwAK+{)s;0_Q|$vS!H+lK6YhIViH`a$L`AR`wo~PrxON z+Vhx0H3m%h9e52l@CW`!a=I1y-<#2MITd~?xSjP=LsW%k~DEUo(Vo^3H{k8{Xa zr!rPQ=Q1VVVvg?>+1wHv|J7ehY8!y53}$o)=BmjW3q56Z$A|i zn{?t&BkSaTcdqNCn}*BYTGt7W5$s&Hi95_$V0}_9p*y_=4^i5EuX~2*3{)DFT%%&? z{VyCTx63)#Ur|5iM&h-2FFS6@Eye_XOCz@xn4|o*1}L^9lDs~kG0R> z*k|}oav-w&lYA`l%L|d^szi=?Bg++YC?s-TN@Ln-%Q9qdBtA)rHb&A0wI{iPnZ`&G z$o8EPE+o3IYZzyqWcrig_9Z4;piR_0NbG(CdFOb3Qfe$1=Mfu~!H>H$k-=*k+{JdU zGB{AKhT}$8e^*`2eLN;z-HW<GTkHbAl>mJCL9|$hJ$}OKCwK0`64xfw6ZdhllZXZND7Vn6^t1KVre4{yjG)E)U zP}N*&I7ebUrls-*c(pB-_BiFfux;Ty^GheJv-i;1&_DecE3eP6Eyq0Zj>_TKVLt}> zlJ{i0JYdheJs%AQz6Z_`_Eq_uby#MSrz!ch^;rVhY;@mN&#WZB6SaO4)Aup0Gs;{PwrRQBlnmYyYfsCzlziDzK&;YLztgXZt+V#tb0lLllr>EAv});r2k3!q%pvAIOYsW(jKeIpSIKp++Fn=Mvw8-K^``SS zJ2H>K#$3%k+h&OI02`}?gBS7Zu)ncf=3a8$L>}zX1J>h%)ZU!g4<~6i^S!auNedTZ zowsYQ?oo1eIn}(Eoczr)gdVV_Y*H}?mg34WN0gDeK+$d8I?qe%JE*-6g54!HWvFdR z)>&#Nh&;)?=>yFx=lpW4V+ZV5j-%k6eP3eIa-Sb`M^Y~>@s;l~j;(i}+=sA}al9?- zaV+a`9CYh_-OMDX&_#~1An{$UTSk5FTxGo2kbYEsAK*`O-Ku;Joa318!4Yz)vHy8( zd+6CR^N^>}??rz@QI4zQO>LL2$|J$Zk$1y7c+hK6C#Cy>XTJoonNAAMl_lG#Y=0}q zUxzVpR+e)gI2SUPnwlApcjCE*0Q@yw#*lQyg}f^`%($*J@{Piu8#6bFBG z@`ZCvUm&jX`)?XI4L2cQS>`z+Q;pL;f*5h7dEv7=T);?XN%2V&QH;$*C$h&{-di_VA0bfq! zY_T%-Gsi2t#1))-tb)7cQsvjy*SMkb>!MiOGRU3$ihaTwh1o6op*=kXe~uh~PO`i3 zo8!+~<6d?!_%nP&^2`k}cfkj6|D1Xr^1gAl8#P{w{49I%vkWS7*-tWP_OlFX>oVxd z^XK2on$}^_d6^P?*!q~oG3{Sh$+8w}x<(#&2%cb_y;bFq0lsTJ zC)zv`d|xSU3BJdvm1hlz2P?9t5IGw?(FQHDZA8BZG5ui!Ryuz$M%~k_Z)m$&wv%>N z?Oc)Q7qZV*c;1ryx?S*DIqKf2jR;v#sU_|J@)q#Uw3mcCCm%1d*Gt&0Ve`yBBUW$_ z;WJ~!8J^+& z4ELSvCA^RGKgb%2B_(!C&RA&QVjmI;4hqLpIHU*%M6cPQu?OAGRqYQ@7 zLFcrUB~fQXEL)`=a{PC2l%HXp`hCQnSX=1?0qQ}?_p55&Q}kW>c{lJ6SUH>PtZ9}q zufZx91=yGB*SZOCJv|maSw!@CwR2oclvc`uE+0AP0rr!~0#^9eJ!62f?Ax`^vB3}?I2eYKu+Wzz|@h9KqlL~BICx7;#5cLi~LmEJq3Y>*l^ zyCRQ+4f0;&BW7wV+?iHg4qhv+a;kE$$khk>aN*|E$3u7P`Y`Hm1bbUd`_LBiZ8vqi ztd%r;oZ`?vzK$aFY*&I8)hWQ$mEhgn0--^C3=Su6AubeF=2k&Yh+G6m|2eugcL+iGf3yr(n--G!- zw8gx6Ta4p{Tjd!}FV)|2zYm9X{-}A9tVhVWPW@f|8iD$sTYCQlwpQgoUxWiXJfju$ zq|K^Uck?0}t3Q+H7WNmFt+*#;Z(L~YMt82us{Y%B>i6KSBb-&z=3v!gU2h+QtF>)c ztg8!~rO+P6%sn!v3chv3+L3OEqT=b;aQzDy(84U9gU>r$y4XTcbt6 ziup#rj=4{nNCb;nmX)rb{(e2-7YbHBMrM!a6evED))1F_;N(hyfx`JO>N#&NMqDwb zf>n}v+8ul~6|R)}Dprgetotfx58C@GX!F?nD!SCi=r7CFXK^t1_|5ObH`Kgd6)xwi zt#-3g+W4F^+K1Z8pE8Zl+|$su+9_1_sOH_ey~y|L)@?2>PJUgtX}?;JFQPW>E_IIs zn|4I~rMB0)HJf&b7}mN?TXZ95=actPKU6oHUq3ioO4rA{29-@aQ=9e!&LC*-v)0#? z9xqYrl)29*r2kKtzbc=HxYh7&YMkR&(7|8xQxG4_Iw#At7p1^PY3Q1(9VB%aw4Ex~ zhc@jGat?G(mLcL&Z`q&5*pimEBgV@LUB0fx*g6|lr^@sFj@2 z)|Z%z2hPPAVstg`P0naY3~f8D<-R$4@mBTfQ2kcH&gYm)SA$wEa1CSk*r;3-sJ^v~ z7^kE0eZv2*m|v54+dh20&W;y=PQcG;XeUoOzOmwJ2filmbETUFUN`fxu}h!-0sqv> z`KQub=bw6&M$2Ab^|Qe1XRH-U{Vefk#qMKel&6iC6X#zD66ard73JV$=Xn~>i;KOV z__*K>^$gH;;YYB$fFA`STAg_Nwbl?xlpk$*W@U%u*%bD`8OBK2IRIXTy!Ta|x5yrV z{8{l9*vuM2`}X{(k9(5ZJrVB7YP#H_=lRifJ^ng!GSGn!OKE`PJ2NlC?qj#z88A54 zZjWYDk2Ahf{m$0yvlv@R*x`GPQ|MAwLp&Aj`NG2y*VYdkwvti1*~;`pDV%?fuDXej&-mtT$j1&h|BmN7 z7EQy)mtk(eySV=XFAoWyK6W{P+_SKebN@y37v2(MAtElG$(=mJ{TCm~LoTLnFWb;p zKRfip#)rNsmkYMP=g9BBkNm9{2Q?CO|2ccU&oyT}HRjRl=WV^79>n6qUZT9|^|KJ2 zi$D8YOXqJ*+vJH~X3%p}mBV>0tKtim_#H8QZ`FRgukAPFdW6+}+tl~l#eTm%`TcfL z+i$V%w}Shv8#w<#)~NhjPN(3#-&x0-d#t4G0Q&;@2k!cY*Ij)4lh*U5ji7)YLOG=f zEn*_0?A%m!=GtmgULD2)+pX4K_PHsv1&>9hSXDl(Aou)d?fH+dElwE?IR!Ri9Bd0% zC5gsVz6%@C(F*PJZ)IfNggeL@Vf8FP^kt3iA*yw|Q_TB7?@amva!B8Mr;@5lwg zUZUN8QYxQqn=pGRT6b^ZyXHly?@Z?rqdx&3D9NAS!X@ve-K_z;Tg%zqY&LzL@ADiN ztPKXc8_tKfyZtCr#H}UH?uIyLoV~i;jkRMA>~2mc+@F;c_tfofTu1vSzgWL6m#Plo zY-}A*$LSaIbi5Y@pz(YESVR3|2l`3*tDWm}6nbB8H`)7M+x|=yw8ykn26uKT`t-bf zJM;M`dLCu{XydD4PStT>`lSS(yxZId!@lkF}ps_%u#&b1@?b`KtvJq_C8FZD6 z=Gv_^M%>jmcQv%rrLX4`T@{LtSmjb8YPn%G<}XG4_LBfHas!v^oVgq$IT;SOHB6lh zVgrwhnnu7gm36wPa`PRgXVeBJY*+n;OOGGZ7pZOg#Tepx1#aH8O@%Qd?@HTjS7=D7 z`I5-rOUJaY@*QAng%7Zb=`SjI(=uKKz_O)0r*Qrk^}RY7t5xR_j&HOTi-Gk1-ehTT zSH_<_rmv52!Md~p=g(SjO>*iZoek=l5f6^GFXtPGeSUr>@~XzY8^sNUEq|u5aoU&P z%PJc%ZUwrQ_pfF?Ryfi*izd~H4 zKR?zQ9m6^fK>(j^=gh^Wo6ffEI^TLN?y%8{PW?RW{QOZ@J*;)F_M9lX8b@+g>iOfY zrblRq{VOtenWdV)Jn;CDX6gKb*0pn3g=vK!2Ov(D6O$1Gc8_CfO;sPs+M*i;dWN(X zmx}}MMj7zFgtIPv?rc=yLYqwQ%RC-KV4UrtZO^*IM$)!L**BUGAM9(NMcS|Mr;>88 zVn(BmaQSb>@5csP0q01c4f#cVwK2aFmj!dQbaT3_^}nCnrOS~#9HU~lWED;}o~3pi ztuyN8Pkk_IA9QEi*}jIb1*{Oii19gI8|k&4UNhUzwH)=OduGIOi!2*zj6tBj<+jEe zE-QSMYX05WDZfDv85IsIa^UhXMAr}*8a8g)9pj3>iB?r2ZlD04Gu1PA&EVRtr#XsE zmg_UE%N2Fl0;#@t78&m(LwFB*1~Wz6`F^F3c( z+qBz_!89Vsg z#W-f&xVKp0w=?!T4Uh~v~sS#m4WQKG>g;4cwzQBdWSM)RTop^`4po|*6|ej zi}mwd)k1geb7{Zbw=a)1*GAh{HE9>jF?TtY&&)%Ocg$%OzS^cN{0Tg~$b-9`>0}ey z`o@UuBHkVI!(j`KJhp0F(Xwa;pD*}jrg?Ez$~OCr>Aen$4@Wc?nFO{f}#k670z!L zd5VjHNxGT&w!D}jX3MQ_-ktJW<-Jp>n9!ML?dYYs&Hx2=~aVOPFzv3-df zU(>}eWoqw>7QhY)D%rlTbwsH1Q~#KuCaRB-W8UH_Te`iW=VZ0OI7H5GE54-cJ79N$ z9%{ZOFpk<0b?AI11XF7|XwItdqm({nud5vz?bH4;nsI#sGjn>A@QGAy^I60kDE60a z-7_Prbt2ebQ~uwdW%REyW=y$fohgp^N>mt}O_e>RT|Y^HLv-zNF7oVi=J0eHK33Dn z1Tc1|>ubWv%Q0@r<$D=D$NiR^WyX_6QG-~2oJZ9KyFSJ+NPvZz!=~qCB;D`91AZU& z=y#&6t8n;&=0a%3g<^e_uytHuU#7)VNBBw#dJ@Gm=4Z;@R9$sxeA__xPO7nza^LM+ zxN}(h(36Ysp^9IFEU+>BeVpyGvFQ1UL5PE`$HT%_cnRFnhU!=HEIoguH5c^L-&cA# z{7Ff4mA3TEZD3ov1C6=5-pGDC$QmlIrSF96Z#6aru{u9v zTj<$kJU7pWyEoE%nRA_n$_GJ{BJLH?&VIn0I>cZSBLjO9esi0XCP&EQ6ksI{=#*Ty8CgykiVB9-(^m7LLY}{w9o>InUV_#1p7n-Oz4&3ii zR^WI8vyYHlLN_N}so;$3pSGsUAc zsn9e(cGp*x|Ic}TD!a;$^PF?ypXqZYZ9WJ8xkxnszw771*5<hkux;k#&Dz)gJvpx%*1le{9(Lex@jM=lOq|HLhM4rRJZ}u1BKIOtxs%-@E+9(w za^o{}GRV?%`rp(CJI|(fDRVR}^H=Yin!lPL-}ck&4D#e{YG)!}b1mDQENmF!RIk{u$-&NOF9#r8EQ!f~3 zE|}28>}#28Eox%*K)zPlP3t|2Zp65G#7E^Z>`G4GL{8@q!|%u^3fh+KS5M{~dCc)y zue=&t;sD-mg1R!aw_X^Lb!Gh>Wtf2_G!_hgQ(J@f!~oTc2HMiF&ID7)7(~9_qt&ws_QL+MC(mw32U^W zma@}9flDH5fpgRK`Sk^OQk29lw?0uFG^TtT*|G9G#4xoHtH_*w=)1xU>`H4(5W{KX zF+7;3J?0sTUENvDY3+8cVl%{yk1v69BzqCKS9smqMexSjNy7gSAJfUq26#MKCi<}2 zj-_2D?SRA9aQWF6umSb5yX&FmX0NhH<940y9~HqOxE6jEDNf;KsW@7hVi+>@59>rb2r54@L1){t=eN=SGXFpY=in< zLRU7(OQ5X^v1~%n$*&dHPk8InQXk2nM?;2*h#i7Bltq|B7KsANsGX1J>a0FjSJ?zr z?=_w^Vm>q9QEd*53b$Z?e_v~Yx%;#1_I~*B{agPT_Juj#!{e1~O>}II9A;T|xq+TO zaCHHh@7~^oh@UkY&kGsrv+#+&zdzS{4VG~*jY9Fh@SQrh#-T5>9B~4l&?jRNq9k%UAi5?rnZ9 zr@ZfNZV_`*gMG{~;*2uH8PP9Q@ynh(LhUR8{Uwo$m1OO~t&9oy8efk}Z-0R)9 zscaq*w@B9ywCD09RD1C%L{#ma*6W~OE=tFUukR{$R{^^W&=#?t2l%aw%eTxKigX6X_KNqrnO;Q?gDhu$3S(* zK36yjG>@ElZ2j;WzG0z#xUa?g`nq@VOySA)OHWRboRi$B&1FklRF64+mcDY6ePTYb z!<6U?*T{5#UYO2_jI-d`)b$1~S)%w6a!qtdk+D$IlXbyd?1xcVNXAvYSLE;xWK9z1 zS0nyj;or~a{28^W8Q9cBmzZf>VViW)@z!KL4SH1$70q!?EG@DD**TYm@!8c zw)e2Y;?TMZRXip9%w6Yark)UcOnk*#i5=d`jAKw3Z#LmNTI#s69t$KP@Bzk$QY z=(xPz5$Eqa<6=6@m)s!70`(2IPmBkFfT1~qUA3K#kIlMp@p=~#aX8i9nPbdywtP&i zqjj+JnkTDGu9YP|H3)?ho1ig2`AhQhb6KVdg@6w6|d@{t;r#VY3sSi+cw;R`6@6u6UK&_M6BRlnq6i zxEfH0IxE5(;oPvXNt=F2oVE*}`_+aH4P6a7P$Nl2+Ph8rUF7LpR+y*A&td&7&qL^A z%CvUh1~Ds{^WCL*9&$MX-S1baar3MA23PcVTGI4|$aVPca*sEjFAS;M3}_GBuLI?G z(coEoF}}w5Q&Wq9! z+hxs9_yJ%`KyH)Ak=^c6QJ_!0!xt@bd~bW&|CVrVPtcBgW+t?zzr*KVd$#0njoC8o zBLAzkGsSw`ShgBnBvxJB49uMf`tqMGX5i2E(-Y+KEK|%A*(bfh+cx_ISyuO2&+YAH z*owVO)}0L^S4)k1TWyY6>2;IdOwN(ketsiXTBzs7IJ~ZqvVqmS;L!QCh}WdQkzR+2 z8v^^K-;e$thr@_aWpK0Zsw7w*Sr{B_80eILsrwCM5x1K83wA#&B5#=_VVc}o`>(_CT4x0w&M zK&*B_eHs4Bmh8bF$bpMACl=>D7&PQJwSNb49=^lO+ekLHN!+8c=xoLkkL6;6wG+9a zbG!2OY}fXYGD-$4>z)K zvdMRSt!$MO`;-$Sl@nn@tI3JPZw)q~^Hr&y+`v7DdNSiof$?VAij`?%JYQu0sc|`3 zHT|e9`cbI*(FXYrsvqryrpYsa`v)0%cb=*Y-Iq1Hy&9|Dlu>VTJb`+Xd>-??2k>cn zS*vt$iX3~I@f_WHcdmnbln8xdk`BKF>0^e~>n^u0sSvf{IW$faPJL#L#sLM(bD8fSG!v4+O`wT3*q|}q3U2==tZzS z?sbwg*deBVtc9HI1hy39i}vyg8;|i*u&b!OdA;CF^@5OkWxwIi z24sVI?cJBEYpFgNGH(a(QdnJsjR?^BQgrxF7JHpGw~b1ux;DC5OuErhW1Xv3ruoZs1ms_>oY~W%6nP&uf7cl{vdtp@f zc&=gt9Jb{#@>d|wYaa3m+7`&ak9s-$dJcnzHs8Y>GL_X4$JY@W$(URV*;(`ULgl|c zj_-|ee4&fu8zGLbY=7n%ijpF1Zk|OhP@hiJGJ(*-UH0t0i`>N6fSzIkXsrhWyvl@j zc3`Noj-QJajlF#nyh-}m_MpeJ&UpF!l{%l-nTu|=0JgC{16J+8*N@e{+A4Rvg%<($ zXr%t@oVcM5ztx19uVY$ReKzd13*4jUk$ynrV`>b=!8>3q!v8Q1kGI>|pytf+*0Q&e$Tnq+Msy?cT10 zcHM7{)(Y&__&Km`p1;Gkds#+~ml7*lYcxm6IBcpcOFh`tOgZj%gYd@Xe^aI}R*Z$2 zGZx0@(qJ!cJ*ItIeRCqe01pWHlk~4~jk2PjYhC7sZ1XPcrV(olnDndZvxZf4H;DRL zBZ)FuKQ|4{rxkg|B8m#0i{j`!dz_C#^{I$1&wQ>i&TV+ySejM)d|2Q<^xbgJNsmSC zuAbb7%*^Ijj z*`HTwMqKacA`=yDkoNN^KOCEgnt*3G7~ANBvE5X2(FYn#T1@oZ4N4OZ(hFdj%x*=l z`_dG~-#&A>xBIc)3!j0Vpb@ozY2$0=8K*OGzo>2uTS&^-41M;9{_H^UgLGXl9@Apn zL{%=IgY~NWKy=Iw>w9jl5q;d9bZ2GXT&NjCHnD!KVcpf_+d_#QzrSt0|m$9TBTy4Hd`tC55J0;Qy zPwndLL}gZa_r!{tm?ze^xj;m5azcIpxz+A@RjN2tm3|CtAy@MT<3vCSu!x9n1YgXU z>r>?=Jnu2a?`nB$1IT$-8^i>t>{SGvAWgIm5bCF?jq3B~vv4-hxCV?T%4VRm!aGtY zYsSn0h5Z}e55|tJMb^t(gR6xhW?huGS`CfEY+)WgKN}~z+ZSRDBUi@RzoRaEjtk)@ zsn45?YWdEpm)fvz@0ow}VVx1!Id`H@hlR{pCi-|W4sDScoIS2@qxE2t?WM>aExF$D zb$B%PtzXL%FH`y(d_4fX-<&aw2{BKcZE~u%$uEp_Rloe$=h)qN%rDH@Ob!FLV@YWaSR$K(WGI{;BX8_=!ytb<>dRiuwRb7g8U89;gmz z8HWOlH>E8p@WRy|x~S(G-Et1J?ZrQ8%k>P8gl4sZswRN1U8`|p&c1u{QSDlni@30d z^>b@=MytFYdwywLEauQ|uUL-;Yk-`-L}QP}%xOa&yvrMFCp#afBYKF|w_rYbr16_t zC!=w==a4%ra}4>IwWu(^fvZauiH1?DgX`i(6l(+XKUTYPN}hF8(5~$EiQhxv=rF%U zV_Eh!nM>zO^)b~SfFBQyuq&R-nS*%8sjDp=WS^& z+`L^J%-h1%1u06#s|EC@g~V-sFMLg7^)1cq7t}Y;TpX&5 zLF>YZTAmH}!Nt9?iI{>ImZ>1uAls!;6UxnfLfU6?q!>?RHa+}SoCeio(!HPi&{#_I|9p0&ag6SKE)UM<_~Y{leH%#{^*U9x_5BuB>zmz)ymA~Z zoxIq}rs1o`$c~i;E=dC~Qdr1H12k1y!&d8)^D)I3>{s~f~I5t;BC z`RG0Uk)YS2E1i(fijJ@IVahaVV@ z9^cXXy2GM@ID^2;C_+bPMq|0Is8?%!o2zX4qp$X|SvF-(HR-L!8AL7*9DC#&u-U@z z%A*i(^`xZZ)<*^SGlb_6hi(<%fK~Af=bNnZ2D9Kj`>5uqi7rcDOEIF3&YE|wZl}+yT~&6`&JUq+@y%JV*SAX5w`P>9 zkaLqYvhgDE^+!Z!6gt*WnM!EP32DudS;548{o~m5KHUXoJUWo4=J1bV&3ZnUrAM4% zU}>uDb3HQ}Z>PBsx^8dOXS;j8{Pyd50H29IL)MuIh%vSZ-w_Az>k{)kX?{6zE|GSm zac96pbl8eJ#)&fbsf8LyWv?cC86P)lSj)pMCe$TFRt>bSw8*OEGKi@2GpA5^*w(Ed zXi(pl(EC%?O6{TD3VT|ya#=SLvL-QWQ~F@Tm6tWUby+jo%bKUQV<~F}`Qy#sd7i)o|DoCQUKG;*%=t?8p0oCM21h{6!P_+nzAwou{9wS|+o*zK_M4u3DcOh{0S%Th$xdw0l&00X&7V z)E069@gr$ZTNs^3V$dL;(sYz&aDF?isS@nxHVQPx^L!qu-5Bv)s=HjhBc?^q$k@s6 zsN0^M7RbrbygkGjYRskSID3h&IcR(iv)Xr1FF<3?Bct=7`D8_QX11OEJZ)VKn`(~w zp!c%w^ZL5qpShUS`n;%}sO{>%Eqxw`!#+@XTIp=6F|vwr13c6(WtaKO!VmCn#HMiZ zje+ovt;S@@{CkBX*F*1kwEFK3_=iz_E z!5rVdnW3*uN%`!)dS~LJqb74z{}=22O>K|9R&h`F>d}lb-d!(CA{NRZ7K-`$_&w~$ z%qi?^trywq4aa*1J{DV~h(Vo>z3)oyA8A`w{73WUk8sZ!bsp>Mmubxu#JZ6W_qf-- zvz}Iz_|TxFjMSU&@V(S75N?mNpt9cfmC7SwF9+f11lo!&(PZW0=4_}?5KICpL$1KX4(1nr0M4DO>&n=ixT^6v@U>fV#aZ{U)0&SMaeu#s zo8Tji<>dj!a^U?Ic%MS!6S?;{-20iv-y;6H_yDg(XxGqa4cV$gqAA5{bxffU%Th{W_wGMwU-rJPUrb78w?JT0zd49MsT~|xi#c`r; zg4K8#;*(LHP6J)%&2n$E7}sfa=H#9;XQwiXsa`uH3)a}x{x8Q)PSQH1zv;7ZZHhm% zS-CdqtJQc@!yF{o9^x+MEpgaS)95nO9REmt^(UprPhW+%L3*S4FFn-WEaG>?Bebq& zgO?SgU(~4P+)V;=!|$WA>T_36pC|Sc;~rO49EjEx7Md3aF2_suK^#;(y`PPbbCrkr z4Ao_w9r=ReHhw&bYxC96#zfs@1K*0n@YA}p3)G}Kh_Q~b-xNa;w#)3NxaSIAo%&PA zd?X>4B4euma;rEyz;;H=Ddk(lC-uL(eOb78DavoG?=7;2)2UBHhxK_Mu-$$&eda^o zCUBNHv6`>hKsXz9c<2hkzd8;#HidkM z*qq>fV?xfy)?wCEb$OZZ9S`GC zQML`DtDDms(KkC@pFS%ox!NyQk???3bw~zVhQBo49^4SUBd)NkgPPp0K7+XC3sGNbe=n1#9ur~7+K1owy31JOdk2c^ z>tta5yF;y;?Cm+~B4$SD@U{#Qf2!BI6>dOKVf3Kxsv)L)RDG9qV7_whFg$fHTH<=9 zD#OTbsLL>F6J-q*)PlhN?ZWTxbJVy;&Kb8f-rM&a{Vxym9bApQV&(9vm-bEZs%JC! zVVVxFI@;H3N*TY*`1HHd;g+e4y=iwHc4;wlGWJm9n)pvOc|YDuL+Iqs$mQ!~c9mM@ zphi)56I6Qy@rRH_Dc@?%BkaKo#`(d9=CBqUh)W0y1MK9|**8|us%X0y>v^*0sR^F< z=cn3FQ6*pex}Tz-_7md`zZ%6ufKKZDohDcX_5i1&^mUUXm-~sa)^%5RRx+HGsD4&v z8s}BB#qpf0T#T3}m5V`3PL!6M)oF>ZC-Y>QLPHuF`*>T?2jn~_<;U}`bF21A|6zjQzPncNp?`hF@^@{tHC3GJB{4y@x*&P+bv8(&N zOKg~(`XQYEsXV|2l4m=es8y@g<>FM;CL3z~z>&AfRJi=2-E`QM*cbweZijj0w3nF4ny87@bLlBi_wk3azzCT&HL=b@7 z(h}4=bC}~Ew_M{S#yk^>UA|!aIq;+nD{}o+S5SAI*5oL zL_6C`}{%t-%9%_;;I+HgWY-Cm)X~{a`vvLEMGEK zPjUJS&C}GHcu`l*udkzCuojxb%BEc}aCkP0psMfPb$Qu~ma8#!0{l0v4F)}AAD7Ks zHu)XrJAK>udShd?@1Wk8=95M~*XOOu^{K9>%A2EP~w3*XOHW1+f~dAi{Sz&ZzY z$^6(g$Gq$P)xrK+=C1jCrOaPNmz0l*4STVz0gP!&(exS$1d+C;{W zuxBU_8q~gF++t|9BU9N*jpD>sH1g#+cuUNFXigO`NLeu4`ed zIA*>RFfg5rs`nX7^E|EL=d#}99zQpQ z?Y*!g7pLgGGam=?YbG_%#r68i~b5b=eN#VFflu)ve zeY_3!5&XkV_KTWpPNpGlUo7t$9pLui+@cPY=E1%ZJ3{w#qIPr^znI=AGCAq2}{DKMT*=7=ADzV_^^R4N*t2l4b2` z<6s^;^6BkAA5*WkpKD`!I~C-eHDwO4%1qT-5?79SEck6$#jtQK9-i#u@+^DEx(lwEwzIz7H{A!JlPz(N zVg>XM*4TWo#){3@S8PVaa$KmKPZ^bY47h*B*qQnsqwS*P_&f%;=FWcK|F%&q9nJNo zEl~3=V#eYu!c+Eri_gem;M&G6{;i%5t#l21qE6R77m9oD=vu*;5M58^t9)^FAP1lY zX|?`K(r@lbd$9h^!}TBiI;Z2>oF<+Jyepp6Kb}kGCd(S{_h$|o84$B_$F;JoL!q=S zR_x&7aI8nh>JzoV?y zMPdEEB9

`f@!AtcTk22G7o4QF~{^Afi3_w9z$=_q-)1X1?c5R)0eTA44a|wDwuAke|y9X+GZb z%$#*fU@G67IeAU-nAPTwI)wYrKkzwiboKXV#6nkgAlZ{Y7;mUK4B4_Qef}TwGer@x z^jT(opR)npK@5Bm#)vl&f{$iZjm_*6WCq0q`F$S)*GGEd`-p$-gP8BsE#&6xyv!yT4~9Euvo29#Pvw7?AG;D=?OpNhJsV0)CWR8y;73%J1_@h*O+GPYxBoRP^H3 zxyaXN!0x9Un5Z43qjIxid28*(lkAho!Ho5tFpkRMf-81GU>WNU`JpA$s;l~=@+bQi zUIkj;E8N$pBL+zD&1}8RPHh6Kx<6NauKS$X*vHmutT*eSp#B2vvg53!F>*7lk8+r& zHso5x8XM*P(bV_a#DNM#Hy@ziAIlqH8J?HIOB#y%Bb4b3ZNhi@&llvOB@xIQy()yA)R(Qs95%^~iLp*o7!&2X+Ailyy#`cr@ zd#%BgYWzF)y}Z*W_SdLCn4j&10lyHflreeTY`yQ!`> zc%6FK*!URyGk^a^*n__wo^zbIPX6+yxNyw3JX5_<_m#$M4Cs#rrl!wJi&(e3UiSpG zMRv7Zh$`M9n%?3(?izAHqF3S`dTayPN7?xJN@Ts6%9BI2?JpfhC~Z27b**Yn;~Ap& zwSz(0Qy*ZX2nUr9(8Vj!{!{tzz-xvgFUnr-y(4e3Z*NlNSIiZQsyuG;pqbM_YPrE$ z-&td*hK$Q$ebaAY=6q?2^OehaQD0i@^AV9(e3&b~_4EVzw2|34S_{5sOHZ4t`pCj( zP|x6^s$bBDZDQr~&9|`ef6+Q0pzrSNN6zkhnJVTke8=#gbRL&kah3>(k)GOFYLe06v=5qwkWs+%hQxbh6%UtW<1%Rc-r zn^JQwtNc8}wdks!`&syIg-H|9u3m;a@{gCk6@8~ObA#7v= z&r4}<2Chu@4!YX_=5iEjUfpX;PH0%GYZW_Rw5w~_CgzcGHJUQd8w!sZs+dUL=GxPG zGm3?Ae}JuY=KaJ$9am}RF~EoF!_}Av@YEK4!ORVX>Y3(n$PQyXNniE# z=?~}<*UTFxR<5(NY${u_jfbrJLfiy&n@f!Z5gy^*@F zeE^%tSxa?#!x}}Qk0EmJ7gjZWilsq@zmwAx3)0gD#JP$JO#ah#bu*mL%OL-{s)ZrX zuf>jPT=KKA3u|=G2UXt{-HBi$$!zI;acR?GR)u?ecDc}enG|`OSy|N+4}Pa{t_YO&jeu^Zk+r z-n}n=p@F`JsT}(wjOU0YdOGEJ&oPP+h+P)^rxNvladn!|(K5a0O<`!yBPguhn*0@RHlge5uZW!^jKb14; z_73YMB{l>02(a<)eXW$J>2lhtoQsF@Aa~#C27E?TJp*~2kIILMDGJ#Il}L}ztvSRo zxOMsE8kd1M5zc>xdJCT`{NYRvyU6FPk;FJmqrQ=bs|hnud_m~S4~iLYs~T7X^@FNT z(*N#p@|=%a_Vr0U7voIq2(X`m@w2qF}!!TC+* z41^6OykG0ZL#GSw8cCz7qXVon;xG9)imEPzJHI)71lc^~dt)!TxSp}%01#6H{yA@F zXABkh<|4Skm^zsqyPO#Hrwx2OZ%*5L?(&>zmj@>4J9S3Hs!?9g`imdYMOS^)np18x zu1Ib7m%P7{`+bclE6+6^=Un^81G+t>U)?Vzb+ypnS=S`c8YWTfv1w#$TSxEJKO0i! z3aa`dM?QvCWx9%Yvet7hq9}MI^VS0wH^$oIhzFIO(Lr8Y6giAV7asxC1IC3Z-OlK9 zNYuB=`QB-K2<%nM0$AV{`FyeT!yJ8QP!rDA^$I={j$5WyE8jGcV_3_z2}}o))kGE z7OPR2?fa!X2kcV33$u2-9Bsv!JqYe6|I-KQ+ZD@$TS^FQzbGrQiqA2FymU*l)0zFE zF-dv98egaZ;$M`YRZf+2xN-V8$r?V(r($x$*USzyK$ySjL!h*3@jF}9$5O}jZq&i& zG_S|8zNn6os$n_j7Gv^1kgQ{IefQeGk`EX(D!+OBd$eaJqh)244*e#sWaYRkDsD-# z03DYf-b2}vB`jMw>Fe=c2$|^{e5=YfxuIdzW@A^> z@mTeL=x%dzAFWyAgKOtx;QQRD9bV^z9+=2f=DiFO*^&^o|VwvX6;e!7~Qy z`#ea21AB3S_6Yicxg&?Qn)uYG9WOg=JU2d9?)a9J$ zn7&IomCNdrOVeKcYJTq-bIY21+1Nj<#;Wac-^))Io)^0ftC6{U&$HT6Y=ynNRVq+@ z1)yw!m2cu2E6jhUDiGi6-|DV{x0;6rFPuC<_O4hsZ_M$rU9hSsSFjgy7=ZCu(hSiUT6s4WLE7x6UpH+Immf z#}ADz3z-s<7-CsTerzPPInmiK_uG;uKX@KHsk)BT4iKVVTwdv|gC97wDh5^NORYyAS_CyP`EueEaJbr;`Krq#mb- zs;nMGH)_>AeppFNmTc;#DK~A{CLcmZc?CLPgKfC1A`s;&$D1vj0eF4h+xJvNtDby-+o9f zk-(26B)e$Ifs_Y&wKFsvbKGUQ8HxhPys>{NpYukQW;7o`Ua0h`g+XjztsP0_1?c<= z*h;_F7b%R?hRjCmnw$;Y>6K>z;EzHqG0h=RR|C8+cqC@Qt+l3xpHL)Ep|6?oA%M>Iu5GFaov)O=7BPYWD&D2c_ml#S zw#mPHL`x0a^%X1ps38lwT^#0stoQu6&qrl!bsl*r>XMTaeu8CKfE;gWnKc3-$y}-~ zQ-d&Gk<^x^Gs)vhnZsx6skuM>lpD+_-z9^0X|I2a@U7(BZ3JoozZTo5uS=WGh?wSZ z`=7i7aox-N6k3!Vo-S$JdhZ6af8iNDlj|)`r7#Zo>zvlVdpT+5y^cLZRn@2`?LkIj zBjqDJka}B(%e`4eZ5tQ9g==S1;Kn5i##q}|LcPGAe|sG zm5uj*&%DdM(;}ZD`KdTqDR=EDXFQ(IzP_j`aRC`)oc!<&MZYPjc=jTgp+SE2Xtngm zjpl=X;!Xp{t;yOjXmy)$nR(c(<}2gdF@6qQJ|EW{^RB}S13iN6w1(z)qw2XG$dA9X z9PL^Xp;F|{DhbUkD>B3T4!qJBwQO~`Q1gUO_*ZBYxJB_m3h~-D{fhe8yd&MDYxGl_;ikJ0 zNAG?4*1rdzhOm*r>z${Aop?_G3H^!&>X-$sUkEX;a>Se%^ZB<#gt&+S$`Xe*-Q!e@ z6k*n$u)bX7f+2Q9fza-y)&oZ3bprmbTteC;pJcK|mWe=cIhV_GtGQqsyF%XiviF0~Hin)f~qtvnsTy|h~pzxZ&}RMlAt zS)QDY3ItR1p!l?5mqUYTtR0f=eE>vgNiD%{k>Sv-|MbuGjHd?nK4L zH6n!d+K74Jxqfw<-4>@J1hkc@eVN z0L?u!$|P{zJN*VYr@yz1l>^~LA5HLa5>U8zj<|JrR#Rg)`T>CGTLiof$%5Y9qOUDP zU+@Y=K1AqvG=s8V6Ru6W$ptFiGiVx}mDf(((m5^3HU?0nlytwK;?Dr(v zYr@9VXDg$Ya>0btNA`6%=w^p-Z>CBeydyEgt$gNj|mG7rZ$i^p1T998kl}aZ!K7iKTjPgs=Qnc)b>(}Ag84a^9 zWe9yiS+_^t8y$CktGnjk#n>aK`c!zNyO11`yCfzefwi5Y8dl_{%UY42NsV3of}i!| z6?aD}M~+FX_S}oU8^StU^NIaOK z@yc71n0u8|VLmG1J?1H|!$37!Pt3#6aej2yq1kVyMh{t<=OdUgDce55O@bu4lS&T( zWswL+!vaO{aG%&en!gYg;4;0|r#4*J?>Q-seHIlqJ^q9GN2-aAAvQ$W&;+-gbfwN7 zTsYsluYz&|CptY*Grus_a(QTMc*LL(Upt`2eXqy>bU&?Y@OAM2a38zMWUPmQ*^kN( z80NcKhCFxA|E6@27ZdHvr|*?@d$`sbq`+}P=tlR|*Yh~7hhLfp+^V)ZYlr%0wl5bD zOGy@`<2V!C+5;9%6jw$4D^XX*y3E8j*H&_^m;}~De!+BlyPR3AX4&zg(9}L#-3Xg| zV6hPc7?*0~xD4T~P9BEr+E#j#&08yGe}lSh{zE+gr=9#(tLeYp)%!!7zcst=;O`k7 z=Vi0Vb8;{g9~xxrkr=5&B7g8mWDn)7KnlM#Q~d3&QDCZ);YzOviI^x3`?D(Ir?RNk z+ih3VBSD!!lwFeJd_VBD;wtMbn()2)#s_HUW80sZc5Q;&RN=qzp(2SYnEj>`m2yBm z`jwsx;R)&BGMiQB-^0mU>7D$4M+d0KfAM%irI~`;G66Jh-Nuxj>{2?r$}x>he}{jf zZgV+ZZ8xNhx3%Q^8zZC~H$KfgbRd|2q*yPcbm9Pi~5ogF5!;x@04iI8tp`fb3WRtZB|gIt2M5;RnBz269e}F zl)E34h8|`yb7*gO-w3-?x+^j@aV>keU{JBjtgDnnXjNR&(R!d6C+po#Lq0txRg}`s zP1=TsX6l_`X7xSU^ljB%s5dK1xj-!nPFI-16Q`-{7ie^I@-` zO^nCEUhL2n!Fj^WVbineTB@xF{jBI@0X`eRJ~!wz6GU+WP1~X{vvcrS9ku#Is5?Ng z!JD&prakbqZA#UFvU-S_W>N80>rX6+Em=hN+T1)l>Dvt81tm>7M1?BV-MR9shf8pU ze}l(LW3?u4U}mWGnFDSA+&)fc<4~n$lVZJo&U|)#9!|Dd9O^f6TP*Lluq#^_w15wI zN&s!zb>G%2Vf-uMYCxu4sTx@&tfOWZlX-XC=893*mc#QdDMzZ?ve6%HQEKy2z|@^p zxZwF01pOK;5cmc4l|R0@2mU>0{Zwg%^zFgWzRzbhCe>Ln)sa)!~ zgeJA6{HfE49@+)(g^ypGZtbtKuhJ*f)rg={`wu!r?1%ITM7o|TKldVZq`$1z-Zc$uQC2+Po&D+5DiAUk#jfRDRi+HN6URpNH-`cLU*iwx>A z)it-wPMEbhcV_t?^i2-HdOUkTb}mDqu#3v&MZ^6IPDfKsZWVSP66Uroq^yUMm$wRe z2rldg#nF_kGXo0b+dgq@t+0_-PpxzPqb!8G1sfa-_GkjZ6ARgC;YZjkIir~d`ZRQ< ze&Z!netUDtQ-x{dX@v1C;+l3*X}^Je1z-iZiQ-QT@}OG*tF&JFDlj{%f7VuDZa74R zq@%HGMENu7@N{d|`XC|d>1sDs*UXT4^mEsqO(F0^;1Y=V?ja6DUQ4V zgM`TW`Lh=JX4~Vv4++92ih@1zI@YtDi0CxZ}YdPqo zNl^cT!;p^V{lbN7#10TJe0am&z?X{8+1Pj*mHo2+1) zSWho4KjUaDU9~s=oijWn#QWsBe9v%qBtZ>PT_Zx?PTZp`S^l%o<$vMy1Z95_deaf%dnKYCKf*O} zADP~EChidc$?8%QK6AKBscrD5$mRHXOAD%0GDerFdo8+eW7F|_NE{7wFm_I!wjq>_ z0V#FxY%J`QP3Oc_khZsIS2>wGmpOk_EuuOLLfMuM2dMFUfbkl6jX;}kH&GbR#>i5g zL9AXWtds+T)rW%Gv8B)uXn+{SU9jBFsUpA^U0=p>zF@F6zqqKs<~etK)FX#v-Ju-a z6%YSMsdgNB;M!(jMZ?rh+9oFUc9(%$zSjq36(dTIj-@UP&kD?IlJC&uKIq^jbSYAK z_7Lzp>JF+%itDgVl4qJS=M)GF_OuIc7zlm|7o#^fFeV?10)KsN34{LZuo60aCqMAy7V;8Az zGNlyV_`P*&as4cI)V?klWw54_T=tbVml6YuH0^>vWQ;91GHD$ta zB<-kWEd4yV60~Wxz82(rkKp?kDTph|8|r+TNcMkNcdQ6l58F`gXr>kqKODqHjN7U5 zTIO}*$I8o4OgpqX@TJ8&+rCgbutn?>ibuXLJq}Xl3Unh8rf(`B&Q884e8pNx@7tUi zjC8c_+faoOKS`P+Q%ZreO*6^T{lN(?y^uVDO{a=tkX1qdnB`*L_xqi1_F6OR$woEa zI8{;Qjg5sD9zze15^D-h zFr-_X2HP!5y-+WLb%q)UbRl#9Q&bG<;+(;P0ySA}4Ra!;GFt&7Cdki`akIy)K zvZ>Pp{)8lcdO5ZCUSE6N&41oXKl6+@$>8dD?z_KJpn&529;pKFXxc{X(6OXIm~a6E zCJDVRh_$8`5hdT9li()`0f;0i-m|dm+Vyr7dS~u5@h|-cwznlt2-I?&H#k7gmJF|$ z;{)&S^VjX77JAF``r4P;>6?Lo@Q8g+YOhCQZV#QtKP2Ft0@4vA0T3_?d_3JArRJ`D z{6PbGhTU1{AJ$leRSPEmsywE{42wty3!X>oq+K>ew$o0hQ`8CM4kl&?)ROC{`r#!8 z3+z{Ls-@Efl|IClDcceC`AO%oNLVJmEup>kuJ7E@Yu7QD(Hwokhpsz!j@q`!S5Htg zJ6b_yC2J}kVUJ7cax@6N8)>34G)zE)X1}QZ2Nks_tHSLpBP6{V5{0*kVbxLA5Lobi zOu|SyD5+jpzBq|y{Kk&EKSa3hJ4ZCb5Mnx5!S`?%)y#M}@(*Eg zN?2cIuj$nxO`YUeHQG7-|PqjvN{`5xrS|aF*GE$M&8`dec67 zG9seno{i~nNsTOEdkg6Aj_gk{K5Y{b(mz@80ia_=FIIR_;=)CLq>KXWD?NZaF&Ygh z9B$+!Bm5ny{o1z%PfhYzJwdJ#Rx(#6Rer*R@p>o3kK#ugQE=kA@y5(PIL@c;1%?5_ zX(=O6|0=(yDxb~I@VUv>ravYU&9|A@nm+tr- zrVLVwD8+FGvqwEr3DBCfjN1@dj&td6^?+Q|Ao9ZiJ>aK~SoqWqlJ(1o@)4iF=s+ZX z_mY?P0UJJO(Y-QU8;iD#ARHyp_Q=zJcZ3fGtGL$i1xyjUgSaXYx?RzQJ(cfR{gcTL zPZc5G)9R&JDE;T8?X!)pYl4vy!XGMeG~1%^0*Lc|AG+OZ5%#S)S@s`jNHy4+lekv) zd!qIhWoh}77%f&D>M-6UL3l!S1$xw|zt#st^t#jkgV=j}d<%f)2zyV`WUWRf^-umA zx&W(Of3Kwwu-x;u@vQyI{(b636^*=4$}5xi(!0E~F5;5QpSl)XlZcFW0=!SWFD25y zsWEFE=bUhuwY?z+)Ou6kv zrM&D(kvs(<7K7Wq2CiQh{s=w@4%kMAXG`vyjGP+~|4ZOE0I2gd9I0H5zqmUGZ@sUY z)6sAf?ycny%@+Ac?~b=}v;&4hngm!IIi|A`!rxt~%45Y&tR0!EstvYa^;&^Ro4HQ^ zSo4l|xHNh((r2nFBQcv-snt&%H?9xkNoT(gmXAGh8#_Lw;puQtOP+-0$b{3UH_xZS z#oU7?f@Lmv)%@e%-1c;X1BWxp2KNij1*pgV_d~XuP_3!W&#Gt@D|=4?i>#}DQ(Uvz zW?sTI4btQ)=q#gG1&^oezLiQG`$_wAug}k5H+F1=`|MiAvZzWshUa%W4Spm({#TWd zIp*zbxt8&Rp)_lK%}pvO83wb&uagJw*V2csoQz4IXM||08X_lCs{6p_CttH*uASul zMVM1Qc`#6|PMwC!P4v=-WldmbzN#V!@BueiRyua>zw?F!z+B+@2?9I)@mx_JFz0&S zz=oQAe=di_PHUVaub`$C&*flb?*hzuShc`_Cm^x-ZiuIsL*B6%bx!RYHXD(QfiReX zW%!*sp_CS%#|S@hMHd)N9>z(v=BQ&Ch*4z*1Z4#AIJjXq3I9_I`H!wd&q8<1Y=f4= zJBal|;=&7!d}jl(`{Wp-(X2@-yesV1SeOzW3YB2A+_#B{8s1@Pyc(xp1Sh za5ee;);^d=A6Lb0{m$INrD{%%$ggjGS?u1;tK~dk^pO09=QoHTQ*77&5@kKh2br9k zO*S>x`jh5^r7h+ias(IG8jn|x)N`fle38ONLIJ9Rd&OZ`67hlWJk?%IYLfafmk0D_ zCe?k_9;RZX7e{0n%$WAOII#7VDJ?k^k}Kyk0!vk>)WMg+Pt0inN)teo;ZwEza}6(Z z-$fmw&gi+!4V#~ve&J=``+|$UR^QbdsQr~VD7j`h-W8^BqN>CLgGqb205&vr{-N*! zbG~b$>XIJ-?$`~~-&{?_PVM6d5QE1|)FM$1O}Mq1(cy9IhW)6~J4Rv&)#Rj^io^zB zf`hU$R4F$Ur9S8C+JS8(9#7M+9%yu$*6*F|JEi^EOXV30AV`vaYNiXJ#v>E4&L5r= zpW0b%bh-H+sTSJ+iRx-x%~F;ma#-p-z!6|iwNemO>jNyQ z3E;BI4*XMPbHn#??Q8+Zl@(^&`wqr@VOxAv9P!?-&d~Te6nyWUqb-ro-2o{*JlL#UL`AC(!z}`-Z4~OE$izBNp*ZqvZ^LQoc zDldiBcdf$GU;#BsG`d?y1D{yfY^$_HF(d)w{;O`@XpeRKwF{MyV1lG>S3&xf8gZ&h zs7(~JftBW7WSsHt**B>%!;QZ}-3lCv8dkj6Vvj$)z(gS()*oRk0xUb*F9N6Pz;!7e z8jgn@$3!DXt=SDTr~2U2JHq`zcWdq+!TJh1@UyMeWdZmmRCAjfXv8IvHjyxz?js#6 zNEjiJR}VLk_aIEHb_)qBN%ZU7&Ba=hDe4>z@ds1M@gg{m>FAsrFu zmAZe~`JC5WtMud#;>wmA_t$2!{56p*ZG`eQBqoMyhw@4||L?rhXunoP>REI7(ejQS zuXlXkl4#f7Rk0rE2W#=&x1T6h%fTm#F`f3xh%4A_d}nB1qZy>Dg@2|=%`;3}TdL9m zsn~n7vX|iu<~Ei5r;Ksg1p;Zaz$?`XI?J`HZq@7bG}KUsU36&nY_>O9S3@9+$+FQf zXvC)epAnK9hYML!SUE zj!S=&b*fk!I+q|4msNE9|F`&Pb!$a_25{z=AK)hd$Im25N{#4o%;oOX=5E-W)mOKk z)f{Y!z_Bat?E;A* z4XsB}ru{RGhN47ICB^yawa(CbPEWi4Mbeu!|9pFmBJJ(e5b;*bX6w=DP8(N|@D}n~ zB<&Z-hC8YBT~#ql+qB`@`6hWMyoK;1@Mn&hlSa~OJK?HYDb?}-4EUFLTQm1}fE#yv z?!%g!4gjNV%!sqsl#r%muDAc&ZTacj3qvWw&p4Wm)~=6viIh*;uCo}%_01S1uWxSe z+=WTD_mg6A+UIKOV&w!Wm;`Zb?nFpB_TP8rHMp}~w(TWRX@x!PLFWFiF#J}NU^r$E z3kK^3U)AJyZ3r;A;%!g#LwQ2+0fo zM1C>H*o83Hi9KO;U?Pa*%R0y5akomJ_zkmi7;RnG$2pcj$KeZrFD2>&vb#n%k*e_Z5P=4Qe!f7!3}M(;zy zGv($7uy#-|-zFilPu*xjXIV2aU|K8fwzBJRaPoQ3?ZCNXV}gf*fXryscIx-Qf@IpR?3qOS%^RMbORe)IJxH{d@1S`3&6atebc0LjKBK;pGxBQ6;rVpY)$ zJt-YZa?akjm6$p^g(ziDvd>;EFA@~NYn|ifN7;mqR$up8jd`6urL~qnkHtrC;G%Qe z&KyZvvlU;?Q>5c7VVoIof2f5wf?=N>btSysncbMbgK-VTHlC{CBHAXY#G+t$7gWcq zkI+ak>EkbVq&7PV-3HYm_mv31kqL!!>w|OYWP=VSUlG~YEDEM+n>PQcEuOp+e#R>` zR+4z-2Dx$Q0$-KN|L=ZmM@3r?U1-&&k6EOuq^(LkE{>j$CTI#n?=lWaF?vQ>ISNA! z{$pX5w^q|0N$Z<^c}9uK_N0q<+`zd;wItsqgF!Bzg?u@$Nw>q_f~QcG)8p zQRukBJKxU>+wuypiOWEvX8u#fn8kp5tG&*DK`9xpCe?kwy4$*;widKA zEl7(L$Ur4K&cK-DU-wB9M^1L&+hc#QwvV?-&`7-ez}64qDSsZs`<(#QrSRvU0jZur5+pFLbn zxA!gGGSHd!4g0hqDfr|B=hVVYsfVPWJxR)VUW|is@1epysE%D4I^)M~b3 zwgR$opMMa4%a!tRMr-bJ#Rbm3OE!aDbJu!rVtdni^=FapbF39M`?EcVQBJ=*WB*ZC zz|`kByjb)vO?20PCDg12#623?r(N~pO8*lxBjZ!v>k*P}5`yab-cjycQ&~q#XlRwB zv~_TIa9C5~2t2tQ%L*NKRDSJ1z>kNPb8Dbn2kY&8tgB0g%o8l*hG++6I-x>z&fjM@ z6SL1B98OTk)+hOZMiRv}L?>jrbaUfPI=`fBSezPLv{|F^{D zHCWHHYS|I6Jgfh-@REmPvm7biu?{yof5?js_mJ-XezPndH|tq1hW{AhA%(%0p^_Sk>KjNKjqxGGABhCfqq!dbD+;sX zT40hF=HKkuE#y5cVAT8H1sh!{`BNvMG>3(Y6?69}-7S~Hb4}}LBYtyBvzOuhe!(3e z@zZP_l~T_^Kgx(lhJ)T9U1xKc}Ckhz)=p7OzXrmRz{g& zAD6Y^)Lp4awHI1W92ZEhCn&G&O#*ZHJ9#!v<-RXx1W>7mn{(*|E;H8stV=61>EWMv zyd*+8)Fw_sH^tx&9p7k6cBqAc7SLb46;}nZeDDb#havxZv_Z%sM1@9%)GAmomm=oH z+c_pK`r;z=@c;Plmv7Tds+>NnIn5^Q;2!p)KL1@vH&}{VskJ#hYp)&L;;|!-V>vGs zfBgDA3~2mw{wG=x=cKxNZKwEN@I&{UeIE4X+$1L0Hn*~7;3HKGoCKZu-DZ~`bW-xQ z*T02n&3qf1Xyo@csf_Je2HEpHnJKA<5|4^O2x&}7I&neQYpwV~_7D!cTxxd`7D=Jo z8ED!phua0*s`1ZDM~}B!>e=5DITW;~&QHjk9w=6za8|^r^4hH3ZRvfFt26>_yb{9o zU9JPI^t0X3Ru^jfliBJ`c80sMo|Q&LZfI^JHLzuJ`^x29HR0!%a9cHr@elA1C=ptJ z0-59R<+HIlyZqN!2xq5LA6H)sglR|{gYznHo!^jC58mmn742iNGxC(3ThKKfrw?p# zpl8KO>bxSs&4<4^QivUp+H1!RS_zwVx4{UmYmW?eO`~WGO@J8DeQa{V@VpRRnT-P5 zX$uC;4jeutliJ`NdH!#z%HQvcvf19htnuHqi^Q6E&>L0du1@6__n$6(AwXM$W%3y> zuGXKNPb!!O?9NJ#4;>ACA{}`IX(N5=q~D_~TNLi__3-G}y#+xFqD8KlJx>fNXeaFM zV*uc7{Nq16T8K}PL;*_WvNb96d`WCkBL9wrtv$^;JS5Z&NoX%x?-A)s;+{=Fxkkyc zrDh*;VhlM^wB%?0acO{f?_B~?eLW@6uRQ4Es?Y<-#BI-h zhXxPXOA2X=x|e?pc8hJje6TtXUg^*QY)&l`G02s+dC0dS@R>1m%V{LLxG1{KY+B|Yv@K@&tvr?H}XcZ;svr3A8k>bA7}E=Xbc16{-GbR{BU)hcPZ7;5-XFP zV2%~}jdF*qX+6P!?w69)9cx2s9{a77C1%}O91B4>F8nlFtXjKeMpU(2@zYf#e|_ii z%Iu28XFMl1T)T0}-RxagRk8W!+@UMigl=j^6 zD%BsIu8Gp*3G5puL{(N^{MaRK;yYG3-s>&kuWisStyh`ZROAgWIaQH<@IdIfWOdm_c4l=ub__=Jj&AO%I(BDhBFs)O)7>Cn9RkbY=XAjYUXXk_gj2zw?2rG=l+=6!q zQA~?k$myZaL!Yd-f3IJ~gfjd}uegO!t^}`j+zh!3c3xCcu8fgXOt*LLTWsrS8GIFb zgkUWlFAH7pE|5);bZ2;PbFGFm!5e=5@os3p*HQZuh_Pf7bHMuA%4?G41z7p_T36T0 z>Wy{xN=k-)s0aH;`_)dKOBaE!qjF1!>!>Ba+1R;1Grk#7vFGWHD{j&%tbLwh4XpZ7 zy(}X2hUeQ|ae+*q$u2NHY0uNEWU+qp=Y#TLVRFHg4Lt2j!-OEWQ2E?x=%p;k#hp+P z;-!B z7q29)`{&0iJo7jxc!+=s)pG6+YDE!5F`b@R_%CZ1>a*97z!Nq^(oXcO=$|6_>rL zp#_aS4J?_y%UcyS1FEYus8^jy3XXwvq1ZaF?S7_%$>uZFJBzCoE3}+$5S6Bj%8-C; zk|A*@FI0=UmVEu^mWD(cXXL*+Q;jL9SRakq;GflU{}2)Y0`eOUJ?PXPl6N6Wj`7D<8CWs~MA=CWtE-?N@lsw(ZJk ziYHtmU6uK->nHs^(Dt3!UnAeLwVh9W{2|=*|Y` z0b>*rKk!B|g-axK0-S-{7#a4#>>EX9hv&(>S| z@b*?^u;hsjdAKL{u1t0TlS^dc!gWW~E47=dO@hO}tm-Pi_)oKL?BL>Ght+?ILD`{m zs%yE0XgaiCPkx!PVn#6~f0FKnq{{4yEr3*Ct)6>EthClMZB)jNVkcG(dTou=aaAqyjoXD8t^m)hph zTF*^KyLTTANH^46G6!u6S8F_n;rF~xPN&OvIQQ&@y!beN?K+rh*nCC}hW!Zir(a0= zN|?wrW0>N^U6k?td~z!_+C(2T-QFyd0!m@e$*J2L5K#9hh_0Tw`4eUC7Bt0E?Wt;z z21}l>?52hdsq7NxyIyMlr9|DM?)F{f)-yXwvh{xjaHOaY)%NVv$5Ep?r(=*BaK}?yIYX$s|dBu}WZ~y#cMXr^t`>nSRmNxa+Gcku)gzbBEO_*HTE`XbTw;$~aOh{u*B*6EA zLyFF?L1b@N4qiHQw@4|!d^BhgGKvGtx8z*<3Uu5_?B?ZFrzLqmEBy-lcH9$_bDakY zAR+!kQqCS6;HBPI_+phXI^fTc+Gj7-`i!hELQ;4}BfEDOAf>9<-gmvai$BTt`Ebpv zno5$V ztCUoaSTKf--~6cWQY5ad5cyXjZ=tXPC7=FJiX#J+Pxs<*?gfNaGaC*FrSnY+%DC!T zTbbR9%CWhlai7FlqsowLa~y4g&fEVBS{9Vw^YCLUz?fbLIhm|1ezJkvUylEw-l8t| z>B1+>mT!cAp{T$0$pU&W0W$0}1dhS`eLh)9<0eQk^|AsCMUmGFR@$pAo-rzve&gR& z^x=;Lyg@!sYl{qpI4cQw>-Tb|_t~qOFUL$&dJCQRi(8=X5F`Q3CLd3}BRXQWlge-Z zmWa!Ei-tgKz)nlQzu$ydJR0M=gXX=t6PFiEddP3-5>ltEV=h|zB*c$POkh2=AHd70 z4lH-!C}};K8fIclp0u%FaDK9jt$zU@?PxNCJ4hJ7*&c!YUIxwlgqrGLFC7@qHWDV= zL$2x3wLD(3%zEtij-}roeP&aAcHwkzMaHwj?!wf)3A}E5tl4n4+YheT%u&wv)g8*Q zPzN&WO_?^!$}!t`VD4d@mjYhKyVCIm5l3-_nwBBh;bKETFqf(*=ts46t#E?=t0IY* z4J%QDE&~64`CIGl2_DAoIQ%cdW5$hEnX^`WcVV0G;q3;Mm)LrobljLph2agFdFq`s zMttO+w>bWf$eA1Ne3WL8A62~;+p>eps|kiph_It?kbK4bmU3;`K(R3vG~JoTA|U5$ zylUKp5=rG1%KEFAri;BuUz((`ow%{;R2fo!r1jHXR!l^w&tjc-%sDMAyOU)t%UTG= zQNg^`PW8GaHt!+2-WKAwz2Na1vRtPoVfi`W_Di%Xj_ki!RojP=kNM3)fSyeu)@LgB z2F#*#l6M;av@u(9NN`$nh9qT%uDNVU!G7;9bW@*H!Nv^;NGrA9Ts>+MkQ(d< zf7}Bn8l|Ee6iUdEYZeFGV~gNM`QaOWDa(Oz&OG}EAozRb zNk#pPo#|quoTFu!r(axti>u|~xJ-`wa${bd@a$H)YAZAV`dTSjlRQ{jAW!$)98hB* zR~oC;jhI#gH)?Z?)#7B1%tVgsJQ5M(C9BYnE&4KhOUjvGWI7Jc=$E;4U$NuOPE-bx=Y|IXcz(mMP+%?mhQBcpuRqmbTUXD#3 z1skuNX^&hFzReA)()}Ut7=LYLIrb~b_X0TYo|C0zC;p9}+bR=vn0e0xG$T4VZ5F%U zp_&kt<93VB^UjBl*nmaAq3@Jx_sF#W>9l(>va0e$lZC9}{7KZR>h;}-YU{5|>z{9> z2xZNTV$4+inW;i9L`a@FN}HYLlfvT8t#6CJpD8&YuhXj>^ow0|L~{isCaZXfS5_C2 zH22*A>IOIVua6yZDxTl2-&aFtX zJ@F|l5y?Nx$(4ALi6XbTY<)<2Jv3PMt`r!QI%y*x95fGZw$9->lu@y3Y;9~lsY%W; zNbqRhN|%r*ov}~^)eAbUZRu4jXVRrgs%Jw~YHKRXmv>L=B;O^7G}mTN1-%~nO+xsoQi@xMCaP&kL;c7-M9JbW%S5028)(GabnTJfPUZ6t&3McU zCc~%VkBf*WK^BkQEmft(shR8p$E9{Tl;m+epF_k3Um)NuxU8rY??L_BT;S0w(c7DU zIPZRI3)s`YcIvKZUQVvaCKfz3I5aeWCj4e#ItlbG{Zmis(RJLXncnEljFn$Lcz)%a zdm_kR4+ci6lkH}IfHv;=RAirUfdr7^Z+2szF+f+c#|lG42Qr+1zucn71FtD|>Z3nV zr!8Zo`$R@~R<7jS`;j4bd5%+y`JvMIn*d}gFGp|xBSw9}=+)7k-2Y{&<=7(&%58=f z8trc251AHKh7;GN{YUz(R<4Cat}D$dV1cuhAF8C6zXNp6oQ8z|0R3H**0b9S+blgu zQ~?7mks|a#h&2y-!+9fa@iN)cSvfyFV}kw9DBk!ftzgx^3CLgj*Z2>E09_7$p`!@g0+>B?7J^@$t zl|`9iJoZ<@%~tkp6;B!kJxB$<_n`ITdwSZ$(_4Se|X` z22}^1UEWx;`bCwd66-?|Pz~xwL%d`)jWZr_kaZXON#S}*bzt}rN((NMFGRnN;6C8W zp&>M&#^PHG`o*OEl8S*NgTDvF&f@Q)MPq8&5@lSat6huvU>y31vuafR(v zJL#u9UQD_oCJt_iKn7Eu+NU*u=uapXkYaZ5>K}BEHKRfTR@7^i07h1%1aXq59wq0U zS_81DB?0pCfk;mHCe$YD_FJ_R)6&(2EY4Qwsz-B>nSp%IJxT^PG!m$7oIW(s%q*zK zt+M{umTTBB?4e>QbDEpwqqUO!-oH0x(=Pgz2|K49i^X^pFz#gX|7MU25Cq-5A}*QH zfs``cD(wmczHOj9PUe2=+pPzUz*m!4XrIE%w_5~OCai-U18tw_9Ulw<<&BOr0Cv?R z25rvt%9!dHj(32N&+9Df(i^(n3cCM0_E>59A4LsUuzp3GWp>~_<1J~1Lj}v`(B)ry z56>`q17ZKepaLA;M*b1Ij zE>8gHSTx@(bt#=tudPau;A=iG2>!&jx4m&#c%v23JVBOcKcNkMN0-Psomsz1PBd@? zBL3uxE&_S2+@FNFD+uS#A@Mrxv73A@hOzi>gyy{`zqJQIl9z(tHO`8j4g9FQ4Tw}4 zU|5nCvzc%$KlUjv?u&3RBU~ZG>G4S=-58YQy4#i#T~6-PJ`H&=F}uAwYvQxpUw5)E zs9Aq+P^3CeG+{ll^s<^+R}Py6F!+a0AO%IwZU-A%M(E-brXeBp{bmi4W$_AISy(Rn zXZX))oji#>+AQ?8)W}Pk863;&t?jqRn@{O%$Q9rj+@fQ08G0j0R-fD(i_Zs@osIv4 z{yzXmK)Anzyl_(yYl5yKxj`RA?#rY4Nd>#8_ z$Xvt?+4IQveDS8t*(Foh^S~#=hQ8;K?^%7POnmh9_kNkG7}(*1bVl*2p6^o;Noipiw$ zxq`G+&_4y6wU0I{J~w5uS@Di29IZ0)#BfUYCAx3B_R!5%EACib`nikW6S{N7cW`_f zUJt`!a&vX$iV46ZRerxwrZcR#_axKj!@i9V#Sr+Y(KF%)aEth%@uU0)361B8X#67P zb=ExnI>I}CyUO^v`KqiQ;$P>@X(`6OZCCY;|AxMA(>!~OJ)B~!?9TRcDModV;~C(5 zGPQzd&oD>$X6NNp!;_u<1)npxHq$kszp{ky20q`>GvS-`-#xa?`tW^Pdckk+bf?vu zYQFTW)w8_^_H7ONj&fIVVxDW&*n!{la@hCaw~u$U5`MD|e(&j-@Jssj0r8t9{E~ic z?#8duiB;o)V^eEr$6XDV?%a&@NYFbk7d)9frCO2mZ&S#w^fNv`V%r?brZmaIM;vbs zWnp^eT`yfh%UYv43#PqI&!SvBl%6%*0A%$1CFq%>XOg{bdOnxw-rhcXB`WUO?51aK ztaR%^V`KEZQI~JiGngJ{yXMU3kv5)FZ_^`4{ygA5!9&`SKLylPti2ciD+~LjxO|1} z8N}!SCF0kMk9KZ_{BqNc0l!d8IkSA`^L6GIZ=T_I%Ijr|k-(sF4R{mvYGxnj^4 zaTtHRJt@WPv57s6D%zXA@p|Z83a)9+!TrYBto|oSB z+n(Od={rauA2H6a)yFfw&%(Z?JC3n$8Gl{BweN!aIIcY741V{QzHJ7)LHH@(kKKD;J^U^uev_bmb_4t! zywB35eXu)^J}Te2a0Kg_?US*2SJkV%cu6_se!0fbQVhS%(!Qr}AJ4k%`{KCgcE;9c7QYd>23fvt-j8FQ z81e06@_&I{*V=mF7MZSoM^>1;{^NQM=SYAXPl~-79VR;elBRPi8bFaN|PT#8$GKJv`zhANgXU{uu z_8f#W8@7-|$UkR~o;}pHmZfj<@-g&i-xy>gerwRtC1@{Z&PUw7xEWSG>2ogqbakU} z`=T@Idy?`hcnAKR@ZsQhfpv?7-%ENX{1JXhAG|pDrS>nhpGEs`WbZHgw7(@&KoQSb z@4;{PZT!B6C->uy^C;r0d|%^o%(ziKX|^tZVL1|fIjnn9!HYF`&XB%aExEqTs9t$B zh_&wHV=hx{-S_gJ(S6Di)}ISL+t$JPj2|^_e-V8G*I8lholgcYUdr5H*;?4cnc|-L zoV__8TUTw(2kFpoax#d2%j^0s`^vo0JjZd@7?31=lF@`d(NIoi%J}?>^e7QO(%qFY zoKK1Pk@Qd8%a1E97k_C_?k+%%;WwLL&98=?U41B(P1HWB?U$*|n zH;rBXItwVf?)4pWf4%JZlb7^N_#yfKg~o&U$t>~t3deJcdNT9sAjg z_ZQE^(>ZlTGKJ}Lb=*IYp4#x9)AOsapEG2Sf9-qlabfq#>^Wh_jQ=BcjO`l}zPZh9 z+jPjElQEAkKYBh%1<&ihVRw4w<+43({k{m(X;;5niyZ&8DBO< z_dnqHI=jaw{Cy@5+c&%7m#NW&_s{mgeEK#O8?S3GG_XG92(Z1~nb=Qcd$Ufgp3Q&Y+xuO=QQyH= zAbx`J!PFOGdxcXHC# zJLwUKZ#zEh?1fpr_HmKp&f3?V_37lkQBF@N%TP?6#kWPi=czibHEDWiQ~ykhyA=s%J@Pxczc7gtzcbLx-in`@M# zdy}I3-?WrJ?uXxb2Y+((aLT^-?UwIdXkTg7KvusL(v-uKwm&3@avMMECin3>Kov#3 zO{wxd>VWfJBb(BGwaTvCUeGv8t)5zI8Esk0q~cnpxh%b=&b7=4^D|aj9cQoRx{)f=a!dM94aG%iZd zsZ*`qT$i4;(^94xFFiL;LF=8Do=0a|rn4%&s%P43CsulGoRywI8@=|=%Ju%ToKeoT z=l*LsQ#miy`={kh=e(ThUzF>q3#~p{m+RU^DKm&=VO>*%~(AD6-Z0DWIN*K^rn z>!AsAf9yS+l??C~d-i_atUY;ramTeMH+c6f<+2B~@8UCl! zWBcM-7yDrNoU$k<7WpDmL7qL&PlFR^|sLpfY@f`abx z%#cdJTv_6?^A*MznrDOa=KamAi?k$u8~2*0s{vqf=X`6-&lTf+C3}^|`w%qV9J3=b zq+&47mihe8dVVlyPR6ImU+{d|zTeX~?Q_T@?4R(HEyc{C@F+rWBT4^!?|p`_gM+`E}lX zVBY{P-gm9`>CK>>*G&2JCf?3j^Y;DS9PG-A!gBD6->xm*-<@|;$z&+<=TCSrPj==~ zXP)dv$3~|$*R#X1{@wimRisrUu{s{iBiAo2^QbkHX2YbWC%^sf8D{ue)1za3+Mf@; z#jYdpU=4=7c{md8MmExVn4GU?y3sqT>#KQ2?-*U({42BweV^(}_q%XtG4EZ4B8eAc z*gc9#y5?&zB)@6;_i$LAONF`gU`Fh2aU?}ES(qO`n9>dYxR&QXZp@#bK79z^ znBS5`Gjbg{KE5%phdp@lxiJ40zx?z`o=4k@UQahaeOeDAraoVo)1&n;+NE(oH&JWR zZkc9l9ftmH%t+*#clT;0L!s-!{4anR`HgQn!z6SHV>teay~IziK6Qqy$TX6dXP?}q z;nUM|EdG!LW@44{+m!%h`1Cx66_ZJ5@jV>Bz=yy7il6>5jlcf7{F65l;V<^PD|!b- zc`9;2i~MzYadCDTc{PudwYfQ*_M<)1n8<^cDdS9`{k1-}bQ(yxmFx^ZQ-kYW4K6ND zzh3?+x4wOg$E1tPv(wn0cIP4?e$zQ5+5GpJT4+9Y&vsu{o4lEjP^}q83tfdP7g<< z_y(A~Gx)vPNGmh>dn3)vWEdF?2=QTNMlBkj#b^Z`|8CTjY9h4M+fNHiH$zgfoGYa? z#r^6wRnI3vC-CDwLx1yStZ*_gCi;o1WvY}*gzdF4ZM_Wpt+`>sqBPpidS@Q`^hvyo zj$2c3Is3X5`0_{W=bt|zITVSS`fS|l=;6@kkQ90fMUF$!Mm_uaDkME6dQc~NG9L`B z=*%?wW@{4K2*x(%N5kpS%8abcAIAJ=GMQwn@OxJu>vJ8Zj;|B!Pm)z4Q6SHgKYsea zXnF(|(QIK2!l6*KV@v_ZfO07W0*5~`NU*dVB*Q}Dba!5EB%MhbP5*eFOvXNaf~Fti zvDk-X?9U&38H>T|i1ai}{y2+Er(Y%b_blf6*Yo&O%9*U<)ms$}mx#03EhfQyV<2Y! z5+d*V_*kAZ{wU0$L9}D@acT~tB!a>s89)8<-GCLDz=zY=IXxv$;qhCN*3_p@SaR{@ z?ELI|7|YHj0-M0!XB;cWd?S^)RFp^@a#jUN^(_|R!Yn2T@?Zj1r6T@&T$q23qnwOg z-TMp#UY)t0{*0YTCmDIzV+=U&rAvNr6`r#ZfH6WP%qGbrO-VIUpl~ zW0vP6q1&e38eJRnA2N!pB&>K64%96}mR&g+<^$U7qdg!G?Jj2=hF~U|wy*jGt}+-Pe`F1yJ;pSn>0NxsjfXEsn4$ zztB++oX5U>JN=0~@OwUavh+@3fbZ!gyqFB9?8Wgpe>E@`rv2_pRO`0Z_PhA0cxmvq z@k{=0t+#mN(-?obbXuQ^Zq}}sqMxDFwdVHQGtp6hGBS2TY4NtIifY*}0LmxY#MCfDd=wtinWB2G|KJigYe5@UPY=V6Jn8C8i$;a-=$2C4@ z@wxf=ihx9@pe)^j! zTkY2Pf|WICwD_~!#h*0fvW`D>`kAN3^i!qr)6WU@K|eM8N#ifq@F#UqUf|CK{cPaR z2K~IlpLg_gi9eV0^B#ZR(@%S3j!NkaQ5S$v0FvC8LN%e)SJnH3I6;kXe3#`u(4^cU6~A?mZaK53)Q4wXA|gZ(NQFZ?AK zuR9~x6Ir@~LBWKN~-G$J&JYH(Zl2^IZxL9M<&nbEnyETM2D@nnLc4qdB; zEujB0r`Hi^*`0!(KUR%vTMnqkM)cOTdy8;8M|2;Gg(6P9g{bE=orc?S(XJi;EB5_! zJkgGSi+ztLVjDJWyU#EU13*Ok`aHWBkDIXA!;#PC)cYa=hAXLRcYUDcd>|^@Pk}Wv z;CG0M>;ZI#d%h(Lsz!cW%OMzVqSYGe{qD3t=EoBDe307+!q%AMQXH*?$Tc;H^9D~Q zdvW?E1PQDJyY<;2l~3);=Z92|+m$a4oX8n(aCvBh7?|t=pUXJmlNR7K84j1?lG<_m zS+!PD04&83V0}12x?HOrbo!|2eJ808!?l)=8KmMk$zIw-mnNxX_`dV~X_&~Fksrk| z`8^-P0BVx@%&Ky-+p~d}mi^LQehj0OYAqPV=cKRcaa?jWisLB$ipRgRcWfZV@o_wo z2)kd!B6ce=e*bi!iEvM9EpSiVh_?0Lar|p6MpTsSmmrWLAPO8L`j-sUK1UwkT>~aW zb=vVHus?_uX+ghKBf>=jEbn$4m-k=E*mrnXh=*-p3ID6D7oX#_`hRs$kG4V}n3CU2 z;|H4&YV@DzC^I`fjEe!(Kq{!3gj$r|=lOfE90FRW18PaA9O*R(IX{jgC*TSE!L=o! z0_4@~*3dUA(OF5^TOx&yLRi{orECqjB(ZCJ1SRLLC!uQf_J?K@>rZ7Rd_6hEoKWzR zhyvyvpdBs2PeAX_@CaPef}a3q1Av|brUd3TQ!B3J349Yn#)w^m00%(|+T%EBPJguH z7zS`@j7S((s2_=JAxZ-0pMh_Q9ut4}#uT`arl|RghErBB4JFWl{@?%a|AvPdtK}fz z8wz{p@vr#l_fQJ$kXy1tYCfo7tum-{1~v5mV6BB4DstGLKVKv?R06P$EARNrXQwVl z2K1q|=7VT&Yyc9?>B*Ofjr2P&99ONd2WHp-dVCrA_$2}$D1hU7fA%H**=h9o6smz! z^XZd0Jw7Hq4E2#2F3y+;1rf2kIW)e83d!?7fAA0ZU>;&(Fb`SEj>Y_j-xsIXHhZ|C zesK>ej!;qkB3S%$;RA~vHq?r+L2n%N2`*jw=^>#}xSJS$#Jx?DHG{UrxqDV?(>*9h zD2G12291n47$~7(Il?k>)@hitK&x%R@5sqz4FCUc5Io1`^y6hr0$Kb$bPPQFITSe# zhhp$w2#R1t;~^NlpU-IukM8lH;{xwK+Fbo{%WU@A%qJf|p7f>A|BC%Du;!#+9Wbe* z!)a%{=;{`R%RqX(X=MNEpphL07ZsGY4?F_K4nBtL_-Qk;+(zO=9qmZMjC^rw~3Gw`ac@^Y5`l*hnQc1E43tcfCiA z8>Y@8lBftww~_ueb)vw(H5~-T)px@VE@?UjNciuM=qkhiB~AbK?F%&RTdt!?3k>%0I-0c&ATY+cEfk8l45*;GVZfnF^a3h>4-=u`*=b06hQF8RA*q)L_3*h1 zfAM+7$~WYb&RS+`qR(~HO8odKnYy(Y&#gq!1nVA#@e=y}<7eW>jroJ#{QS9*I>TiA zx-rEH*f;4CPN1=i$xOrCzv(Hk5}_&gyts6_O?U;rWTXFegXUTLW;+} zO3005hyA>U5y^8tq5|Nfz!)dmn$5-(=$D9?Nv-AictW)q3(tC?ZWt!Qr}r7em^ zW_2{ukoBd))DF^0bruv47p9;B3R8PPt&!H6Nnsm9Yz-8q5l#xgmNCchq%l91@yGFT zgh!6j77q9N!Tj{8Fr~!_1A{j(CSZ>&j~zyE5PUp;{($lPI86dm4?51ugUS|Fz(*-- zC4aXP{&-b$9u6TcOmaqgt>IYjCXPhtxHqKvhNPp`99~C`e}D*qm$W6Yn2x5#5?Vo{ zDXfMN1B>MaPdQ)TKT$N0-2DJH6aAn8fS)W4=n>8DC^Q1Ayhkr)x(QgDAcgGr!-RVm z!sH0S@bGE;{LA^(+2#2a83QPdK%+#y0Sy@SKg6$HGzh<%67KYTdo_7`+4G0-Skcf<$!Nu^@F~DC%y!qVE0&Mo}>w3I(pHGHzh8vY*Kq zux4RS^O5Jr$pT;O$MFp~R~t#+9zPD7jf;jP5=UOM#*7$?z)|e9$e2Red^pin zK;y7A9=_^bL~GFdu%8LK(V1b*p(1G%+qe=h-4+#?r_TEy;wR{M@td!_h&gxa@;rjb zH4HlqO92Byo3;Ke1~b_jjHz#rh2Cusg}wg4f3bnkPce@ATvYT7Bd_ByBzq8D)NQqS zYre3)yC1?KXg9^3?PwHiZ;OS?jK$nN?BKT^D5#U-XuE~!M0l-*$z)V`RJut8o0L=FQ7!R%a z9tcznAQrnofK~OzTwFB((914B)|-GV51{2fKzq=_ivh%HABcU35#<16y$ys7(p49{ zEyvOfzgZQazDBqyy0`Y?aKH-&ICU7{uCZv3^+RFXwE=wkFz{`|7#|9p>H=u_K+x;C zZaG`cZ-b}$06!CP8tv}_ZGdgo2(AWzl><1WV}K^p%|mg*s{{1x+h~DxjBK@k#C9cs zn0sTqP;+qzIGf}0Z-cY>=S_$XpQ&#HCBAtRBWk-A1=ZAjsz>c&6oYdC0O5)VCBOAA1=ZA9tn1P82CdaSl=bVDhGmo zhXm`pC0O+!3D$p~xaoVvO)YQ^Q!sk;?i=P=P$hs^_giV6dONMHz*+#VvCYk%sxxyq zoxcH&)d664Zvfk4$nB^HK=0oM8fd=+RRVAiZ-WcAWddsfz~&nO_nCaVDgxNYx5fz^ zh6$sbHQpGnuQqh>bZ7^M@zhpz=;B|8b}`jg^QV!%X7Bx(Z{c?XfWBL;hzHD}qi~Pl z9es;_+pWMQKWohgJD0k<5I}TV{x!}j1Uq7`GHBavZR4D3?4+Wn6d>rkAhfz&Sn9@1 zH|Oi!@^-r_!0fel$y!l;IPL1I9eDRu0)YKJSblS51l9tegIzO!dnp801DL}%VIuqN z<@kW=0Qh+ye|L?}Vxmvyy9c~g13-=f#wzN8blN*gPelwi9yC6q{rqGNU-iR4i`p2} zJP3XpV{A`L6VUh6*89Wh9!zZ4#lXuxoVZ)))9!(=u_nfA_CcO44#YNA#MsS2*ceW6 zH|8+Fc3lkZ9LQ;Sq+qvP@K?lu&rYe}8U-v*{B`J{d36i~?HhN;7>{*|&LIjB!tS95 z)WtB-&e6N-v&kL|-c=o=NQd-b>b--(^ST&VIs~>~Mjp~ffLvX^tFN6RYhPsyPX(-} zpe9~akLmD0@K_OJSBF5wG?cJne{y?fS&sDiPeosdXv zc3$4%RbCBaKD#*7u4?MuwI3+twkl!hCs?|5jLEFknFoU5Wf(o+|MK5z2o#CXvU2Jf$qF`u11yk%E<;O{jkTkY-Dy5G`!3pO|L z+U;F(z_vP`t*5ck2j{TwRWUnjVLYep);2EX26aHlzv$!O<>#q^v7Po#>qcL7^chWw z=dtW%w;fF|`qSRSd8R(qmn41lxwW?gZ%vEKKWZ=c&Hs9q_$W5(AwK&(Bcnhf}x}K{m`$!0=pM>l~QZKj)(p=G^Gr3JOYNS$BzJUvi1BC42`3?afEG;mYBji$5+v#nm#{D6^rHjr+O+~RGxCx z@_juY4JC>uKj$TK{XfSy5qlVe4yMb(bX=pL1H9fr)YmgMhDd~uk)N38TQ-8O8LS79 zCVOO`H-KVxN@D|JtjKCX#^I*vj^f>5HTg_A{9t_SGp~ zwG(ky>Wz)oJd{v&z+f2~p+rW2@s|HPlvr#x?drYOVmwda$%*0g1?;Tu5$4?<^$hcf zqu!Mdjd{!)BuhVlEQ}^b08Qd?nq- zI$rc8v7eSPe$nlb;+tF301c(n!0g}Q@Kn-q&`#r|?rxr(ZXyJoom`NHRvP54rJL6+ zRDj|P)Di9|(6NVU^%HW=^+#_U$)6?vmhR zwwLEr+|YqjH9!k>_4cA4)}_$VXYn7k29Gx67Gy_p(PlX983#2v6-|~cb9zvdGtq?3 zbnI-i!2^2pfj$jS1xbhsFh_}lfSO?+-vMKWu=eK(p^9i>pRoX-{IJK=LuMpFa&xP@Y-xbDTX*3{y{jh;Kms0~`xx zXt-LE`o&jRE@Q*6&h-1x0_~#rf%H08>2!x9*YmI{2Kv!-F*zDqNBU|81J}D~c(nDS z7BU?*mX6ws`BCeLNj>Daqdo|2AcAYCI(DwXII(YM(E4V>kWd45mdTv+Ab?kH&1Pyh zsk6Uq(m;tKg-3MplNE^QuFCfg^zC;x;_xn^aZQASb^jZ8wK|5Lb=LzcTr7s&TT|~1 zS5W9YutH!JSTlg6r0)D?MW(*6bQzp~C=$O}5f7etNG^gla+{s4^1X%OQUgE)Xi>#J zXsY0oG8xWc+O{wkS5kl4jhNUh4y}2Z zPQlVmk74(yqm&PYf{`--krmn|?ekXw;oz_#bv<*BVzLK2W{mQ$myBKa{!;mAp5E~> z*wbSjmN&o+t3P^lKw7*2FWv?=K~W~K#bYcoi@E4sFN(2mwhD2yF}~Dz-4AgoXa-w> zzi=e5o+qdm_V92dkR88=cY)d7p$vObEyW_f#o)}#1JtuW1~g0jgFb^--|m6%F$(Sn zYY=G#CPM%@_6^$y2edkkaoQT&tRDrlG$be)lE_r>lQ-sH?O^cW7>WkiB3R_%D!>V! zBJ=jVRX5V9eg?+Dfn#$5fjfs6-yU8EINnq}wefXkxKhIjY zRzp$`M+<%=lP|So&t9kh?nTqhx>9?(RjN-)QPGrAU3w9eWCz&7waB&oCagbhENZpR@x4mhAA zM;P++^6fQozV2Vz#?GZJxt8OBfIV?o#) zrW%d}6mxYt`$u@(Y~0hfLnV8s{(VO&-ua?O61ZZ}Q)4pH~_LGFQX$%4S~T5B$kp!+UgVpAny!Li_Q6z`rdH_uB!cpEw3)BF!1$M|Q+F&yNm zfE@KN9vZw>y~yeQP=AWG$Kw{r4^o$l9+gCoH>PnNwBCN%Rd%ehgf3yWM#7K`lF*5+ z#B@YL-SCywb5<60cm&`uRPn}o>g`@nKxdUjEbxjSak&V+DNo1i??1?ywCliMjAHyu zbfY7EZLtb2`l>Acf@NW}%D^KBU&Y_}hwX!ge?+5E*5s#McdPRCwlxDYBvc+j!y`O* z(_#@pjs}>O(ACU@`VgeXBY}{8l@KZ#OLGH&<6Z0+o&WUgbQiA zZ+yG2TP#1MN1x+GQ7$f9`Gp(-5wAag^uK_}JL6t~fs9 zQ+@r*7gR;gJ!rfw1Y_@Rfi4#EMiEAfz0v8b`43DWeG9b9?e&D3HVQ>OGAt9jYG;9k zdGz_9wCyebvqo8m&U6AX%If%=y2FUZv^VT~!-y!MBvtB3HMTYNvb{5P>E4;T4BVNz z{7DKDJjSioU)-&~1h)RdT3>tl(AX1s<>8^7;n&@vS8pfXJ)LX?Z2n2G*N)TrBDBV? zz-%`-46AO1U3*)x)|x-S`r>zIikvA(H~i{RCY0Hmy=va2C`q-L?8C2pdFRfY-qyE zBDYY)CYMZeWBUtX=Td!Uk~n*34mW|wV|$ulub|K8e8uOxYs2hAJd&{MEr-*tv2=gz z$6YVRJRWD01NVOzbKVWjIWj*KvADr+7{rl2eX*~G;~SV^J;@oK)dQ2_N9Sg2GP5~FYH=OFX_7UBG#aT!riU9$A!+}KOZp3R%f8gW|wYg)8DSYWg$6DI582soWs4~xs2Na!sT5M%E_OS0}6lzy4>?~ zY0x}q&}bXPk=u5oBZtWSu9C>^J}J!aV7oy{k=>9~?Q!T6 zHa1ZhJ`7mKvu7g4Mu`EOw~j0pjCJp?NJpR!EO050K7z300cbu7H`MUHVc-xH3p4MA z)_~Esw)HBSQEPI!R8r)+k~wHrw{~1z%m+=Pv2Ke%#Pi1X$c2Wmb)_-0kd*0J3x8IC^DOk-2nMYsSbM-3ezyyA1yr{thU>3)9pL->cJ}@vnpM z5Cnb;%!Wz6s@`{4Y&Xd5%9{=*(~kLu*6yY#j$q|b?ayPZ9@@9AsYY!<#^=AHc&3Rj zahF`M&Ehd_XTYdng_gSR-Gj<`>1?Hx)`b(A|>R($v{$rI3SGd1SJ-nyjEmxejQSW92u&t<_4 zY&bMgb?Vh>ZvqQ!wV}LJTkku{+7%u@P)~wG8=xtLnzTd7zwzt62}81#b$5fYbn<6$ zF{an_ZCNmR=@mXi;o(WCR?F3=+p1DiO0x1)D%YPJz^?FVbv|iKTQ9BQ7(-Etof-I} z`;#`ow(J|74~oUu6UHWK>s_~MGBzG%&HWWSkpc6|>}%y!oQva)G|XYx{+vVaTK$0e z2&eY;DJC3-z>jm^%$Ew*|S_D2xPo zCgDh+9|5na$6aPRb7R^1lpq{RU_1BG2i!l0mvQ$?wB_;T zsqd76o;=&Qx4O6GD31j1OUkc`8##|Zg8SHtCJz_MaX(!do)DZjQP5aA%g zkQZ?*$yJxm^fT#0O!^S>xR%kyuuCHd|7OA_gXqM}Y(651y+&)Io;;9`WC+F-X8nDlDUF5Q&h^NE2ixYOj0wIZsgcWcIERG*psrfUxaxZr~ zA}d-PA!&e1jF9xZ+fHQJwr3OYo&_WbMV3j`Q|VMq;R1wdqZtLmQRh$fF(oEECqp67 zO)IeMI`dn9akv?g?!8n4`q&kUEeotdSO|-D*}O4^Qx-F~!p}DLwzr3#rF-<%U!sAV zZncxRe&%zpWxsFj_5~RrTjhp8fH=y`rDh#A={aoDOKh*9{c_MrP-9ksk3cBX8ISn$ zPim2fRO2z`EwD`2NXGSnnt&kzoI18iD!J4GrrDvr!P!$fS`No!-X$9x-!BijTRKB+ zmgJ}Et^8E0r>b=+lsIzG?H@XtD##zyaG?zk{He${?ls&O9^{AacGPGRPRPo8!53$WyZ@uU;kZ9Z9=SGMv zV6hTOVX*Z%{}9=C8Q2+?4k?RkOYk!r}kNBHz9P@TP7a&PCDzDJ9BB`hP56tnrxy<@SBT0U}cG!GDh+wD=89j36+ z;pLg=d)D1Sn<{LIp}pHGe7)GW6jo;)mTSs1&bxG&E8&pYt6_uX4Up5-g@1X@0sIu{ z2Jo9Q4J5;xWWXA^o;;}q{5bMq`i-+tH!4ykw-`r48Wf&##d11Tbi!70xmW}qR?DUD z`wA2L1Um&Ly?P1V_3q(^^1ZJ?X8+wQ7D6_ydiyj{E%~O3aTX=bt0#_!*Tmrkejb6X zDfFcr_0U5l0E!%I;zxO13Y|`Q!x;Yjp%m!A5%P$xQ%H2R&&YT<_62-&J+j#fr?@xl zc5wHfKO(Wg>n@=VK6o*^Qa;%}lbwS3Kh;0$j#yA+^&O~)y!kGNIvTu}&Gx|myB!B* zZf=H_M=`mR8vla|4(EzV*6YTw%j74E3Siz71p~UtP)Gt>DxoI*=G7)?NWB2tPslh} ztTbyUNQ?rEb}i>#1Mfd>_SXD8Y@3kMj!@&wCZ-*N;QMuy)zvL84%)ACSKc@`CG_c1;NTvY>6V+Ab}MID-Y0^)4P|I|92L-*gSi zh!_kuSVfnPer5C8rO~4uoIB=6p)7GNyEK+ zw0>->-Itv6!Z-3lK!a(> z?LDxt6^=gq(TW^R*z9e;DSG6zKEgX=oSBo0Eflh=mx$D}V=(`b+21zOMYWcH(v(^) zl~bOwDYf_>9I%mKcu<*k%r!fmQj>-+i5Ce>%|sFZEwcT%)h6lTJTNYK6CALVP1dAl z(#|0TAsAw}_k_Mv{w_3tE?^e;IcA-Hg^dWvlILVIiXXFLy<9tIukVxD?{*jArc{(( zq*Wx*1bhYc5l_UfRWkIM@$$sF;Ou%YJxf`z{&C%IIg7<2s{a@L#f z>9qcz7quN{Q{jNx=molE;Q>tolZ@SI#s7-$X}z#?(_(G3*6eWk@0u3R*4!F=vbSk< zyA9|8V@#Qj>zE|#*Evn=st4A{?yA4VUDaI{L*>4(F4M+9D zMpXp6@;YFC?uu^!=73<8;Oz=WE_aU2_XsO^H3v+Y2W%y>ePHoA_kWYoLyd;)kUr5J z9KH?9Rzw5}!_XeLILs*$XoJ!L7E{rQm%V=r)=KzTji#q|@dUA}dl&sguE~)RL?Xj> za6S0-$t=GJ+eq}Sap|`k(RS7(h;X+5TVpd}F%%b{_J-rJe~5+%)Z;zl_N-}fQcJtY z&Z6NMV$Kl=F2UEC5bwOf5oveNJO6K>ec$MGDby%A>yF$>oV?|?`w08wYzl7n)$=9f>`WHwutmBQ6W^j6uVm`Kg4;ijcRAp zc(Ip2q)5CwuKer zZLFZF7bKnDB1ZRbiO}x02sKc8f(_!aHs7!^S#1n01d2{E?w-BcYREg`aBXWMhHI(S zww79LYpH$k(wrxeISF1&$5wfcVasvdKrkGAw8A7zaepVm&I6*Nb$W@0_-PbJ>hitw z7kl(xRQc{p>O}yP+2G-)>$N@uWK??(VMwmlbHP2um&HLWxjXEv2f>kcTa#Ilrzm;auN|URG7fg}qE+ z^m-O%B>?w=gt^v5@R!m6Dcs@D02E=1?dgWX&Mt$0ZlTDLNj}_Bm#%J@+FQ~Q$=7LT zY+(9}(<@_^|3tS0dPleHRt$E%n=gBfaw3dQXJJ~jlk(3;;!3pmXoN84g9D;*Ot^X1 z4a^34cb^lh&yK4efds}p-iX*s?6JJP-?p__b8+U&CfU12K?@f63;gi`2HmG4?*t5Y zhhgEQ5AL*QG125Y7zQF{PdgrBNX>>-jA`R$=hp4AyWD3HAhvKB$e1b&wl&?mGSylm zUF>PQc5Nl~n%%Aw?)q{*Q@83iO@7OMt9{0KR&Hxg zHAOC$GJB!g7U*BSZ9TA~0o{aObM)zsAX@oW0aUBy62rLiAS+6SA)a1KEJj!4A-Yvy zgf6Tm4R6p7x6Zrzjs)EoB7v9aN{P~S{j`U5^TB;b!H!Vg>Zeph7AAYS=HYQM>kZ<7 z*;saLp6!KTnSHggr&OKH#)n4Pq?+_16{VGwW!&B5R<{VgZGjF+AO3UkvaP({Ln3kq z$NBp1ZL9;McR(n@*2s7jl8_U7CH?U+Ai=PFlqN?bO9XAWtK^0R1k zMkx*4i~}09+SXw>VEW^{T9*$Aby_%Ry({xws}K7^o6l4?HSIcn?Heu3`N2o>ow~JQ z_n@Iy@xqm=)5G48jK$`lJ2<<0FiwQ~p!#$KrZ#QOtbs8B|uIl!FHD&(7K=IPk-K|(m&6k$I zP6pZs6vEu3XP>EYtSX@Yk;U@(KnR7&*F!B!Kb&*(;Os&BdxU_yOW;~o6?>-|jd1Q@ z2M*u9VYKeP3@f;%u%EmO1pFuL(S5W&#EV2ML&5r28T78b9z>)67OjECLB76@bPQp7xF zrPl-G<1GL>ShPCr@Uj_2+@6Q!mhbMHJBf8DX|_+FD00)td+!2p4jGIKJz3-ng0X0o zYGrg04vrR7xd3Ji=2WJeU|&`5l&YlY$xu*1=$cTU>KkSY&?r1_Lf-hY02dCijZ9edY@AP3IELSBd zlxoz=PoiPKi#O-wZQ$mutu>jnonu_OOqBS%QZH|qyfIH^mGBC`j($XG^HJ|vMS2&G zY$P$1Cl(=aQWxw)9(ariu;r|OE^)R*#eM`5Jw$Kbr>9y&mX%uV0Q_yW;fDG^PreZk zVZ!#_*)#wC-8Z%Gp>iRFn}2^VhH>r0X}A$bM^3?14oL$Ha=fKTFurckbDfS+T0`V0POW^_TCYU;IiFa|?eOu_5*X6o%9FQ>Zzl;3& z18v9`Vk7^sQ{-=ZR(v+>HXCMDsMB(<2MSpan<7}L^BLjr+`~mrV4+{*aA9O!Cn?Bs zBC!j19^}FSpdbK6XUTSS<}-rwmCc314H)9;P*K8LPwIBy%?6`Ud}RizxH!mE+p&Z( z#CRwfS&*U~cF3)ix~=8QAQkrWr4wxn+3`7a5Us?IpYSy2R$LHTkE3Srb2z#bLaECuzn9}flG|EBCK%|9Jy1Kk_5--q z_ngwUnF{yDPV`9q%qxrlt65F5dbsPb#G7sW`h7jK)k=(JJ<&CIoN|c@Ad&}gCYR+ zFRU`+80m?A3y{9}bW!ik0hwU5J{={a+jOn1KIBhP<7Y zbiaeNBBpzP7(j*r_Yx7S!1OCMN$_`HrwbfdoC`a~UCl6Gsmu=F<|Po6Qap0amjQ`s zTdxQq4szRhXfRy4w^VRV;Re}HSHSz83Hn>12;xHj1j_4$$O#D$)!sS${&D{^@pnci zUQs>(j7Z$6pl~F*g9a38zK>ihI*%zc)w-P$Fl0x5EEFo=6|oTl)wgoE2AJT;9W~~6 zu~fVay4B1s2{-YxUfVZdhyZHS37|F;p{X&|L*DB#g#TjErKHq6?A=;tS7roOj7PSw z(Fm+~>ZwTM2(EY@@!i1@SnG_dVRs^3H|plr9g-mF92mgI^cu~TpuHV?&u}}Z&y8>p z2W)vUZu;(Qp0lVNeyfe~*;a}D(H&kPh~-6UU{I)&U*;Gb&~!eNdLQ{+1Ah6Nr?J3E z5<_r;xyh|V3NPY3-}c?A9!GUMfSN2yL2;1eN^-|2l35Sp?f43N`t<3;&N3L0`7-R# z7Ou1ULUz_~D8jdG_C#!OD?xIz;r9Lmp0l%E$Ws;y+)>|EQA<65FI=ytN;OTbgZsC; zRq7TmBVmBOn#{BI8#ByQ`1EN9l*VnboXX%e1_a3#XwT?{aHrNAWlcVdZ>G97L}mM4 z6E{OjNB*`6|7NYfLPSV$(Oq!G@6SJCKOHg9abLJX+f1EA=w)^lk|wz2gptM2W(#(0 z$WwG2hw;f`%*#LZNM8pHxtnZF!d=fmEqomoErJ@@#~6-O-whBrMyZz+A!=-|wPru;!z%psPq4ohrU|IE zzmb}#ZIbTLsc`u?bo-Q5lq&I~*y{1F;Nq(+5TW6`GZox#A&PIJ1b9sJ@-b%H)CelK5;-~4eL2K1kk3e)Vy|2 z<(6?tO`p#}<6B{on(W%jiEgDXgpk*T8L^wwL=ZMmpNG|mPu<&^S6SiLezr>8_bTa_ z-ywyIN!P}D(WUQ;QSvB1ed3MT?WQ_=?Nd1H)-YAd>7H9fTedykc*2!*k=`lI)VnC!)iGp7V>}VG?ZGZ z)l+!te=C*a04b3NDUs8~N8Rph<@0>)P3OAfq0iqg33jJnyY9uZy?f-|EFI)yq9gna z^}IoyJNrA^vL|2U*&)p{fRBLi+SoGoL!hwY$``yZP_bZhxU?*Z_B;IKwaqNR^FsYS zJ;_B?Db)c}wffUjbkdrI^ROmDTerpJb&p>HqJZywI@x1b$GeRxg*Ksx`#QPo0+)L& zQ*aq2*+vbMZ9-A|f;k*K9(M#K*Vs~4oQ7H; zd6#q(a8B9T-UBelZS85X)q7{m(_^GiP3p7bCA`JOUY`-8d}F7 zs|n)vRuH!d^Y;iVVY~?|HQ>a6|Af(f$MR>1#C_*kGL-@@2k*|?eUJho3|w9;aIZ9+of1zxc_md9qyjdwR;IJ zc#CntWAb;%nXvYn+eN(XDvVu-U%9B=)CZ8$^md~j0GMyvap+m>uR<(%Ya9~7k6;)e6D_blj zte&xEgjSS=5~^$10AxhTNOL6EGgeZBJu@ie8IwY+m~D&6G_sK@MgU9c_JD2lxqP=P zgqgchFD8>rANV!d4S-+Av?8sN^l%}2)Zzs?a7VY46bvGr_XklbGD~#;YZOA_R zN?_@qf39jM2`zPJw95_txPy(&lyC*&xnXqyf+Llw0S@8$cm44Q{Q`KSHhGp=hIcck zkA{c<(TM%C(M|@Rf7qhnRAHG%$WNhx@#Z5I&rL}&(B%H!+XRFxc67MXYb9ggThQ3X z7ZHW3gXYSk5xaAhvraJGJD&U8Q8Uo8)Nkh04BR};$-zp)`-CJ4A|XeS?jj5+y*cFT z=iZ&AAj@az-lp#2oemfIph)m9v`5a%*m2kbQ%+K7%1LTE_{6rhxebNF-LGbcji*@v z8Owa(W2ydKNcX8-%}iR<7P4T}Tx_?@mV0psmA~GE$x|y%WZx>2 zXUp%9OHR<5n;JQdyn=fW@zEJw#HbuQt(@zS^>v~3cY-R1te9sVSOD54f#+0DTH-3Q z%dH0S7XgMw-Zs?h^%)s4u7a28Hj{z453gR;sAciYBquCjA16zBKKlj!!-kiPTRokh zHcn1Yc~+blS9ewCUWtgULv|%xup?Nlp11Byvl(_@&B=*H-CjG2gmLSA<1gXKcw&s9s3k(xC^Y z_pB;w#*EzNc5Zf|!qilr)oL7sHe!Y;h2ILgERC#@MAm6JWbOK^P~rhgr%yax;0;Zw zwww7vO|1(k8z~tMWj^u{vU4tE??S1OA6g9GaFJqj5%jvLM1!?0e;QPcl#rbulU~IL zgQ`zaz%tXUASKi?qwy5}XYJ@!J)N4cX7m#*LztEYB44TU1;>G-yHXX7Gn&G&>5*LT z#lUdkz*KSdSFrl4pSksqG7B2_ELTsS)R2G^kq-wko57b~;_#IHb7M=&B3ELH8(Z^Q z)wu4{(oBilJedpakymD-fU*DZ{_-$0%L85WEox$NY`3Cdji;19AKE9>{oRkzs946(F!$~xrf$o+u(s5J~Ld#sGv%KQ; z5n~K-iaNQht&%D)sLyQZGeDr`u_9%UPTN5_BM9`FJRPa8JT6a%{T(YYN9sEwF$ZHS z%gkYYJDrMyF&%l5JtISX!QA2K+7d|Bfe8T599&@LQP_8k3ZZFIMhB3bJ1#q0OA98g z#%9g$C^=J`&pOhAaK$Yn$B(s)(2DX+R!bX2Ity(dR|{+(hLGX^GZ{66RVAwVz}J#t zZ+r`q2nsXknEZ~#y>t9cLQ#mMM?uzYnsM7~j(K@$Vn^ZPRK~oxiIh2Q>B-TpS&ETc z9Y>!Z&(6Dr?7W*}*0H5LyiauS{B9x7hqtlxJ2$iDYKNZJ>RGiQ%PxH;lfM@<+{C)W zS&-CYp`!^G$b|#0JKOkkjC{sVu-~hG@~L`K z4TGZW!|rq>o_AW~;t*#lGLdi;{_oxj0VaoS@9n=idb`j+XCVX^I9jY(?i4FrNBKP9 zYPNP#H&+4{* zS9_jj;ZvL=Gp&|kWfaT@m@3E6i}Nxl@!Nx`@OSWKprS+U@C&*YrY}=OQ2wK{dI@;yff_99E3&b(_> zTT#_1xtY&Mfv+unMkQm{CwyjE0&TafU(FO4p*t4$tx`VTIq|(*-Xw?KHz`k^H>?QQ z1s=FB0}Y!G(ca;rJrG;qS@smM2~>H2AaDA9=a2vGz@Pq7`8^LJ}iKSH2Z|s{E&pR|y9#*zElyjEf->M0ajKpmp8Gh1`bKN{zw`UX-g>p&G#FOWsX!RQh+`ab(%OF>4f zHXJth_a~={CRT45Xb&~uUH$Qst(Qk*0BH;T0gvkzmoqcv+?L^QxGGvtHVJAjuTvi- zUdKOqi=K-(x1WO}bPCDb)`$gTzPvQSU) z*^)pf!=M%kZ_(M>~9g*i$|Zz)F;cdPVUtXYQsY(ppGuv>C^jRNYgDVPJgG$N zopJGD2q7)jkm*hp5x~V9A*H;7C2e#fZNvSC4 zFZ+6DY!Nn&b8c#fZg;8Xr#2g*hSn3&$9Qs@W_MO6@yzNbo~6E}^S>FC?#w~y&axYL zW{4%OK`kPzo%FdNrQdzjZtopTc0`u=P0(g-@X0|-3e&(6&IfUFtuVnne=R(vCP-D7@a3okO?uw{(2PRs0D%p#oHUh%3`^KXnDm5)2zWXvIdrJeKB6%oo=zS6zE zr2+ke{?>~2Xu5EV+K=9$RoKqIjSZ%0du8WX2U?Qut+fid)G7;^YL!!$T`Hk>$}*

9Tr(dfk0bE#!kw}*deuLsEv%n)fySiR~dt2+TrpzaGG%)GXJpzm)Z4Se%E>{-tPH+)T~9#=o*TB*||$!^S0py}!y=h)eB-jfo`w z6==d&Sxp$H0t=qk8r7UNOHq|Td8~TDaQWc0`YaEexk#aqjky3ej3~>PnSC+iu5V~j zL@vbb^(Ctr!G)sy=%7$U+2Be{ZJ`!}N%K8zt0j#Eb#PF*4D!Xz2Bc08`KAwmGr zpK!*EiGhPlCh@DtGtrnm2>B`*5V4M<ii`958Ef;~o6vM5$ zvqmi?`V@N5Q0YNKCa+?z7V2dsuNak5<{Ht@QGZ38cD*u+zu4Bas|+c%D6nFH`SKLg zb>f&CHk{^LQIgqOxs+-tH+06?y!l8GbYX<2Qv^*4MNk!-7#EA6u@XV!(jsVAo~r2A z5bpeA=#1eIzK)1r2H1=I1IZ{`3jd+Im$P6Lk41Owjh>DJA z&jYKOKXa#kZ`VYv??!7L%rNA38W28VjHcq|Q_ak$==jkwxpRoQ@vV;m$%+XW7*{-> z^WSN3QB7WdssfT>b?|NS+CyJr1&V2gl24sh-$>6fk~Uvhb!Ze96b?~Rc)}vLEpgt~ z+GP8`O4rH2d&y4FrdefP>PdDolk7O_2B%AOH)lq&1I>X%ju2HR*t+`an%)vK!#M&) zNxe!@Tf75m6?QJ3>jVSQ07=v?wG1H>R9M(y0+v<(!>sLq7C}qSz2Yh36ZgKW@{6Id zmp&muEHS{nvp_m$W+31+>m7n+B-7B(0)KrS_MAedJ7QK>8Z(aPfrMa%QsJY(QN7B* z@+t#MLK0G@+*^xT_kZh+brp2z`g}O}2Z;#n-aLTTS}sumkx zd;R_fv+7zD7tAP{o1K6#UH77>C$9ow_EVK7cxCkxn?G3b-Vau^^@GRl{NV8$KlnEL zK6vQ156bMiCHPqdfOxc$lxU@FBjcB&V6z$hEHA&B(UT`NA?a}8gedD&*3@YuQ<=>J zhH`Q%XxsLrwpGza=gl=;e6R)T@&?~Q<*dg8MCz%#@F`t>spO?aE*a1+Ht*}({N56m zG42f}OqrCY=?WxQZYisUk%w2Jx(;ZES88<_dze{zFK&h;jvRxs8j>V+>|=dpk{Ed@ zjyzd0Rj))80qLY_fDD!yg$n`qBei>-TwwPTFb6?b#Tdb%gm)4*OrsuYZx_B_7| zO@fMT4unPR=h_{YQ;d>n_WfpJR7Q&n3ZsP&EQ~hKGs&u%!P#wyXggOTR*)D6bZO^p z-<%IeEF6q~cm~~J9dI^xCUGxmfZ7Uwf9%DK{x+34SjT+sJY7b0?Al$SSER)0_P6m_ zZ05STWn$A@wwP(!b1JEA14X38;^SRSmvLtSYj`e#(8nBX-0Tk0Dd=;Ci_G3VK<4-s}%%jf$29L5@iq&W7Z#k&>j^NVNZBW85gTibv zNg{nY-xoJKb#a@sO9TQ*;$*-JhrugNfGg%D5?8E3+X*f29x16QrxJ~s(L4zKX^Bh~ z`Zg#kz6?szcR^h=%eVx>p74R1jvDsbdxN252RhXmDCe3^v&3L*>33oA`D__k8wW)BP zcVl)}aJ__g$xO?Ct^`8T65|M4k+0_NJ6BfAuN)&OfXaTG&YV#)GgIXflVT#}lBv(_ zgy>%{*}&M_RNbFMp0)Vf=Hy`hNqkCzLS8W}d81#h(h0H#WfO6fHc3^lW4gQ{y$6|^ z)k$?WA9jNmFP?+cKn50TdhbC)-xoWjBmZ#Jd>dY^+St`B3~pl2+`Wlh27_ zN}y|H)^h4k2EgFQ$OJcHQX4hP zdgSA`+PL!Nzp(eIT)JN5_7Ug`$}L6k-r>L7)b~--}L$Esbf9g zXs5Mz7VaPIz1cgg`KxfQGE2+&(-d>nwXAVLKnD6{mxJB}nXy#oor_{vEG)nn^8$=t zDQ6&&&Bof6bfGq{Hu8!>=YG0vq)|_aEMI^~4zzpOlNLFcnYB@7&FU<#Y{|?}7f>Qb zS}N*`L4%2wnXCJ&z~9Y7$^^4(o=kPokIXcc>v>fpgI z-UDwdnl6&T)A&=eVs}cY1?8Bx=J}Q^`Ao|fud6k~4dBr#BC3XJ z!R{QB5luCtAG!-*iD~ouM5eQMX0JT51sa4DW*0A$54qPf3L{I^#}lGHDiTRhuKt;* zA{htP1ezn@a%hMEpu?6|9$aX*QDPp8N5SbWZsj#U0aAQv7R^{!D?G%q;SZYcqA_r` zi`tZ#t5xQq%*3n?I1B4Rxlh9Jh{EUyivaJue;@9a`>x&VEZpT^&pa+O2S-u&Mp1j~ zP%qJPDa4pX-;`Ni`{4C2cFD&wGs*VCS!ADPBhJJ5qRdpB zB{0iP#ma=}m{IF9 zB9B(N&)5K`9DAoIS9s&$gn22eEm!ZjKgIg`T4;$KQ)R4L2B6O4Q6iYAed1nZdrG@=ziBTKYOgJPbWK0^9;jg)n+pitYxtcY0K zT9`e{d|`oIwBh;&&y`Wq5;LDWy!5Pd_TSOLew~Y?z3we~b`X3*xs2{=l5)_O>5-TI zz;Bw{dQW*F+CPOwR=FRN^Vpo~|Gp$n?=T|oa61EVIl)bmM{w9|W>RqvdzZCeI&~T9s_;PGenSfsP(|seww2=IoOb$-HoZdEMr7 z|LpwcrhmK3E`aBc(Vc@!iEy0ck*(hhlW~G-x=&$to_|7)vvI@*qaHfPo%#o4?ZxjL zd>zQcRAwwVftgpeB`4MAg#lJGD?ZpNrlrfmtq@=`DfQ#0=Qu&Dny72&m2LD&L28V+ ziV3E2hp%XonT+I*pJ;{_d_;fDD(o2b%->k zY+^+)D4E0@z$=tTr1Yl6kldD*1-NAU@pW5Ywl3^3WdEG7k-TSo$56uNds60Oug)*N zB;78TfxaE+#jiT-`P@S*_`Pgqb4~-e^qs z_yYjKd%R)w9()lY1d617O>^R5SlNsWab11bZ~+CKg97i)FD}s4TKg^;T6PyFM>i>> z#@$@}#RIA~c>)9pM**W_0%vaMntAKNQ!DiQ&=}-=&lrcrR)@W!(}3HT2B zUggtmm+M7me?U-B@>;>{&mHp?HpuEN$F%`5Uu!_t$9 zDmjC}P;%W^(zWKlK6v*IZ#DM*=fhrfbaoWJ+dKGh4YV#t@L{HwC7*UmG z<6e@yN~GZ^KAQ(qVb6+!_V)J7pQehvbE^$NRNRh!7Etp1I|1$Sh+Lxn3AoYd;@CV4 z!-su^#*IYhY*l#q{4mMvcx&M+V;H0`8fH62DJ2% zni(gmB@Wcp_GY8wQ|FLJKgW$VI*t10rq4gf!~OBW9P2mxloc@NFuECqbwH0x9#Fv+ zmOqyM1d9jwd(5uUrpfGt*`(Aaw~Uu?Ysm}pJ=P?**E1Gy2i6(9Q3rh&{op6eW(m72 zpXb8tbfEQ6{*CeJ>+6`;a2HdnH7SY!zY61THjVFLUcHZ)lab!OVMu-OIKW>fZBgac z-m-Gk1=`KuFc)Fj-epgoG^&F3xZC(?2z*o!2)Ey`G#E^#_=eR~KzbTB7`mz`F=*DM~q&l#)3p<;}(MB^xrLm0F~A^Y7TCp5X%O*%j0?DaF6Pib?1S zy1;Vi0Cd^*b$CsIE<%JoTS z6%e`!hCCUPofIru`utx30p)_lF&vUMcge@XY`~&uYljvkxH6-j6d2*~bKngXp|~Vt zDUcJt47s>e39K0l%;O9L%1F*jAdQ#oWD~;yemRRe`>*L<=x`sP|I1!Slm@K1wpoFP zhfgxBQLaF6snS?l9%K`h$ARus_IOTj0aqSC_v)51K4Nauj=Xr48ddR7NO(GRbEg8v zjEoc=0Y#oUA<8R^?w~bRCGU9<30l()rrXj5B!^0E$uKSG!OLqP-2C&@pZx=330?(%quQAV#g5eX$Yuwkt6HHg4 zRr}EQ&N4}iGS}Czy!Z7OkJZaV%8z;MqMV>UVTvQvY_657m_uMS#I$8au4sd{w_s!`hH z;;>(tihbf!ULY=21)(qhBmv8!$f1(2&ZHIx^kNu~`#FlaQ8pY1f+(=8<}Zn39KXL>RzyOu+~O=k&zlm6+7lk1 zuWk{(Q{O}HL8-=iwe60&*_cX#vF&2V%APs(TjX=paI{iQ@)~4^5kwSagaIc0=E+?I zG36>=`qWqiSLh<44Acwr)DcRrqhejN3HpuCW10v>+_R<$x2j<8!@?sh)P!^n|4fR1 za$@#i^68uhnBq8fb`sx%r(P@-iCq)1^zg+VZ z3GtC}onuM@Zka3+t(&F5ex1a_th*q=M)Y4VUVN0=&am7?fF=wb*0 z=@XBWJ$Vg)x+Bs+o}z)oRh;fia=OLH4q(6^_K)uG+v!KET#Yg8*}=!X!&dv?IJF|e zv^}bg&SJeDIpYG!l}bq(@-wbOy4v~+(#G6?<#Fq=YDF$^{#P`eM7;%>z~ZXCRoHTy6zR(EF|%}rr2w9m#*OIN~Lsi7Tj>3`x@vQIOAqc+*L8B z$-Mw;quMr#AelvM8@?_gBc51*k9Y`dyx$eFESzOZT~N6|1ojLUDMRm%V4c%it+8O( z1Pw`g+~Lhd1(2?ul6jmKr-;T+S?NaRN>R#MbFH-$A&4@vwXqhX5mx z$vAYG!wGwY%&23gf7$Dl5rRAZ$%LKKRU-hUiWQ)YoWt4mxRMTw^|&iWZPp4U;Lo|gYb#xi9;{t_@u7a(ycGZ?+4lQF2Eqe|_hQ&ey zy!9xMhL1%?RmNOmZ%2#0bi8AzaY3e$i(0UhmsHtgQVbM`hX7}5O-p6G{@8dF}cW0sKjU_p- z7K|->=a5b&(@UZh9s_~Q$l+V2z`dpAa9E4^yu^(_vh0mOV%`WO%iRb(EY;Y9ZUj(f zFv>UPC;_B`1UhwI%-KygPb!_aqf1t~pjdrvYBg0)9~k=pMb9{)9KnfZs8$YI&(4wh zFsLk_0EZW}j7^Pbv2+OJHRq&pdeqE%UD*(pzWXXcAx|1=fEe&dq_7<%=8WKZwVFe( z4ANroc&wX@)8B*bk(KRm7~8L4cMo{Y`}Q9B+IY3>0=b0CmEa^OefYM`r`hXmS*p;r z)b(`<0!Q$GqR7mo$c{Pl3uAOCcG`{ZoGM%2ZZ^-SVa|K-YPk50HRm>17NCMNh(x8> zN?XG+RYHwL)h@1esn|*6$AH+}6SPt|lEJ%b(9mf}C8K7yPI>IAVo=A2MKO>_M%BBm zbX1B3EA7~OO?GnUW()hcyf3)Z9#6?UU=mKH=z+ksO~EqPw&n%wOY$3ZHdh;)gQqZs zYEFoR<`Hp5#N_2~Ey_}JWf6wI{V3>~ch$LH2{T^_UFY946b_lJbT|0ySN@6ozmllD z{7P>#6aJ^Pwt58%vrKOK%oMN+2@EoZX>T~50D>eJU#QS3hk-dn7n?CXar0eNv$Gn! zAjv=;QI*i(MQ%caoXi9=`fs44{}v`AxUs?ntvm$gE4o)OLkg|$+WrrAkiB6HFbAw# zjoo*D%nw(?;FWaB&P`njgxIlkHI^wEu+} z2rGTV9~@Te8coH_zE~>!_eCl~*T9`sO)xd;DkiGENmm6!b?v+oD4J-$LNHpxu41Yq z<&3wQIga#2#!BG0(#d^Z<>U-9u&Vi)L*`6TJd;uJnCvPiA|8#ieO^HU1c4!ovF#`= zCTCmB9ij9_7`^=BZx%xDv?-M62bie^=j4!$cyK!i;DyomxFZkgM+H$H(s7!6c|gB& zzJ;!i7zLf*5oE(&_f}xQAp_z4kRj%Zk4^}UAC)d3w`&&n%1;=ZA2QLo>|D`v+bn@I zLRWuyCWaYFm2IAv;~+1^H=01`*y6N!mNC!os#@mBKtHc`b&;I1DHEJ1AB6ME^AQf5 zKGRNI;9eD*_xDB>_dF6{6n7sb*9?pNFwq~4l%m$pT{_!dSkblD6vkJ*V}ogf`RDz!g$=T8Ompsp8V{{&v>v?$D_*<`A`lSm=BftFO#vqG1WCSeqpy5z+_q&G`OVKUaS)PVSOlA?oO<&LIQs? zgxzlgFjRE-tm*Liiv)sT1%W%5f1^4J@_@&6_?b5C%o=$Rn%C;%L9 zc-b-wCFCqh8fDtbTRO5d7>)0Fj)A&eIfU2k%X2TnC6lO z{3*^NU01`pPon8Y@C65Qv=<^r8%tcIL+i5hkoYlG_|X;kA=rUU5GkXKAE`_nHmVq1 z%HfL9AqQEei;!iSe(l)rY5snNBrobo02m-LQ}=x|vbah~;oMZa zFK{~-N7^bb4_?Eq{r+ ztjEn%ptW(7$Z&g&BUXmvYaV#*Q!Mmxnk2Y4K+uGlq6t@uXOIwQGL7Q!ETcnN?x8vq z#N!lFgvdw~^i9}D^bN>~H0!%Jgcs(`bN(TGyuU9&l5$*t1Vyq)QcIGg&cjk)zy6;O z7`<2`c(QZqx1`HwAs2P%#{LXneBLKQ13wTwj1uw%m^5$Nevt7}Q9rbG5_zr7dn2HRxF-UC zB6I(mVO`HSn969Oux?B};FZ(cB8%e82O-J7q6@}joh_v;{Vdzmmuxwp+a8-aRE$?O zi8{l)yh^I6$+a=fipch-&K@Y9d|)d6=2kZ`I~D4vt>Ab;RdFEoV|E6O{p9O_4I9-? zP`xsHU1fS*Q4whU<&OSx2a^>jp(a{*Oi;&>m>;H+8SSLCkUTZjkbit$N`fd$TY#ua zVPe`hkm(y{#F9+7s}Sn^w(AuNe*P>!S(4uh3NvMtNiEXW21c1)g!uBN%5%aqOC+?% z&ZH7NHwJQE{<3iD?WLv{|PbCGz;?5op<=)5Pbl1WbTbExP%9m?+<$KVNQxGA|$CP|uXd@vNL z@w{67riaX$Cq80mHbsZ}2s5gDVbv}8>Q#_$*-UrF|5zx?$lFJ=S$QV#ct;>NI@+5S zQW5O!^NMMhGk`Hc7B87Uk-lzwELcNHR{7HAh@s5Tj4zp~8ecL}H52qLtvZe!Dt-PL zql{|Y*u@2n_vh$7g06GzVumaEO~0@nC*%Urf?{MFG;OEU(=41rafUn4%8KupO}7y6DF1IGp4lQ zsZ@;H>KyE1_C20+kkha?OcJrTf{N{oeSS8kjaOr-c^r-B(9!e>9jbS?Y#zXiDH{^6 zk5o#mqa=#Ikc#q#*BBg**K)nX4t}W>t0$pDav zLlBT!O(Eif75f4}^SR#=V8es>o#e z=Q4~MOP2S?-=1Cjx2%Xn+~2=NHkGWezXCV~OqP&e`pFD*-{qX#vbC&z=ZPCjNxB&q$Q+lqw1P%xcXlhN?#jFwz z_NbCQk-a;E1_=T+*IDY}^vGLn#e@Xo&aiE<@k%Zlj>c8RK}IF?7aVqi#BD$Zr@06iRjDe(P7d zgjAI~qBo9x%)O0cHjd}&loY!lh|3A5RNlbUYTRmZ#WzQ20Y2%|B5sAt`DUgV6Kkxb z;ga1;+Cx-FWVxkiTM&TcsECJ_sVjZ+?TmJCxk=ah9j1EPj$#o3BA`9qk(OBwnEU`rgfP& z6;{_Z6$vBo4pxQJ&~X`EE`?7`89bATQVvXkc{qPFqQdtuum{EvM5As5)YcnRl?E}`7S+u!N3nH&`Dmbj18$C&EWiIbeW9NxXi7U53iuZU$N^R z;h3<;R9gjd5n7%t0y)oXm1D0rE;x(wt^3^tCPZh{TCO%ECbz(n_-|$~ETd`&z_^u+ z?kbfGC$EbQUZfUFt-(zn@5TB8!y&m7dG?BjkrzB&=%Q$((9;_I;;jWs=zxTMoH$B6Hv%W2)v{ z8u%LLTXo~3R`8{L1=i9Rh8Q_XGEdgyu#k7jR)wWPiiCTU;O+9o8uU(J{o}~qABNuX z^}EPj*Fo+;%oy!a9i`^2MQgDK`nR@WKAkYI0wM#KhinJHMkCW zD9)i;Q+FPO5;Ace;6zb`{LqHxq3!z0^K67NLHIzKp!;Z@5@qsJ=ec~>VhIh0yKE?K z5!CfT*Y=+^WJSZ}Z9XrG<6xF2cp|qy{#9aAn12$VVs?ythe1+NsQQlzi~yA;8#}=; zc49wiQ;?5pkwZP3iwRvo>F}oj_zEih%5YvusTTw*0wKoroN3yg_kqs~epkYda- zM}zi&6WETVQ%X{6R3maVNzf}-RL%^I zT6>wVale$vl#wlQRH;-Be+BNvxa$!~uWH=b7P@Pa&hBrOwm+eL6uEO_@09AoQH`xt z$x{?a_;Dv}<1|aijacD)Ma3 z7vw-G^rT9!N7ex**X)>cf6igW?sS*l9TDQG$^pmg>v6SQHDEJX=cIcI0Ji<69DZ}; zJe8CoBZ&sC8#WTYX70%6&20J~spk8ht^a%e*3Umbb0&?_U8HFM8W%Toxf0VCw*Jbi zu47Y`%<}m%$t;aTmK654D2ZiXCF!yfSjxu%H;wQg>Km!tIqK8dbck}Cdb({kBS~&b zMKwmIu_J9onYp;yJEGmoOeozt8~ureT;DH~QXMHSV)vKbn2@{gb3 z=hYsO&&5YXJgYU4Taks93lw{U$#sB<&&kN5lj;uYymE+SS6DCwtBSP3e*}~$@XYgN z8#GhFU+>=Q24my(&WEG7yd(*KcWu0r!}Brq^Kk!Y?{I&ot$V?{c{Mfh`}@1OTH7;` zmGT`MpM(5*9*)_y#m>x3+*seIna9Asu-nBc9VtuQ;$~9(Ufhx^4@aZLEzc+8%Vfw) z?WUM4Og#WiE~Bo%bC>$Iosfo%J!w6demv8c-ss-3?j5V%a+&DAni)X8%yEI<*y3YI z0H9iw8AHCzQHVDA5GG`TYLp$uY~V`$vmK$W1lSE(+qp3q4p7pqu(iM&kwW9Gz^)w~ z9UK5xK&Zd&ywQa@OO_)_xyS=npMO@CZiN6$;{uz1=4&yRqTcEinf5|>lb(uD;JMZI zHLt^gDPHlc?TWKj!DCZH*m09w9`x4N*LtIUfcp>6stEqtHvlL6_ru<50Lsq=!I7^k z14-UOt?&LmwLBBH)b>Hp<@AQ&dnnFR7Q_RxLBbT+e{HR$O31DTvXWr02DplB5Pa3T zG9Xs%)DkVI%GVD9tfJ60oWln}XHscRCHcW7I|dC&H8aV}d@k8)h1N!w)Ch1cc}s)J z-ARh6r8whh!z#k^GT7W^BJyY6#PS)uj?rc_{&^sBkTl~bPxK|>007=hPAD{hD8Xq! ze+z8(lM^Ejqi`yQ44^C%dRRHG-bI+}{e9|L5Cj{~wo?z~dSp2p(92&TyG#7u=!3jT z`r%nkL-ZoS`(v6ew=x|ia#K-=;cI7R0+j)*G`PDyze=Hwz9 z|Kaz$;`?lVCcHotuESK162$nCX>pdeZgE_+Ni`N(4Ri!y`s6gJj1f|&m?U7Iek-~| z6)_hIr=k}pm$8tB{e(>BG^|hVFh*wUM5nNJ<+DfK!^mlGAoYcfhM%H<$bFU2WqQ|b_bSU}=uJ`RuWm{Yp<$66-xzGEa61(XmI@(dpPNyk>{lHfzj+_t?*bq6nngh4DRb}dtI$5$-+3RsJvdU8 zjon>%*4q>;Wta5%skZ#0RirN0c}IRB|N8CD{{CLuGcM_m={jm5QX0thmiYHDjbrF4 zn~Pmp0`+jz>W$!Zu=s;!Xzz0YBhav;t z;}6l^p=bGI02XMJnAsS?TWfUa7`Kz@N*0eSJ(073plj9qRy03|$`;U&#WSWx@eJby zrZ)#6%z-s&kE;{~ri}v`X)*u=*y;DJzVZe(-A9T!Oio5R-47HNrRFft*2h>lD8B=x ziJ7C3NSDSeIf%IV%*Q*sftygt>r?Kt@Y>Zzd(gUv&^b63f+oi$eB$m<c#oZO(-8A-66iFtKnELv(<3m zVX6|2aj^MOELQ^}+p}D1VuMh;OJbOC`GOF(cmCAvoi9$gu2Ikq?kEfJ>tr$*<26LN z^w;T}*Mjx!&3YJRB?q4s-<#P%E%92jND)KOM^FE+dHD%82_*XT(A98~D zZJ7IUZgTJ_dpM5$yYzgxU)&+yDaS{nY!wNh;b^3a5aq1K!V>4|Aneor%+EywzvaqR zt`bfcn%;)Y*L7gpmRF9G8Z55<;OM$qau6*d2T?IOu!==IgdF(oq7>!%q$09Ilb9c6 z3BfFzkBWqxRY^x#57%wih1pS*>w$N`3@a&DM4-lb6T#5no@oj`BP6T?_xj zO~s_$Daz2uQh?}JqyW{cEVOb+*Oew+S9FQZ<0!c|u0cKAWVr3S5`|^Suw{(|G8~~m zvw$L9^pgSGWefxKIyJgim|&{63DcHLx|{ST3`8H`2W8i6F$K`AbLbvMis~Y0jQN+0 z7ecGHwk;y~8nu8lRY(y*OjB2Oe#}TR${6lSihyPYT0}ry9V7v5`?(tkgx@5f4M%0J z^s<3&rdNJhe&v_O$}fLME0?@uQi^v>&oRNO8R)P?&8MY7G1Zft7EtrHlw$Fu4VkN? zD!dEU?n3bYu!1{DOo|*Q*b`Z0I(mao)U2oX9 ze6b#zaK*)h%c|vL5-WS(;kTH3<8HnZ9XU=DF01U1F6z_G6!l4iK9_D{)*p`QU7j96 zr70=$KAEO+-!@YS9z^zUUz8Cdz`;u*nX;IW{3*@0`l19z6$?0-8lF9O+)1R`4yJ~W zPtM(l=V?chsZC>qTS&~GYo{pb=Ft;xY+oo{uBTh(aC99Ndqx!GJhTr6E;(+x6F8+h zlsg;JLaLa0(GduXkAP8UHnB-aQs>Ek{HTDdi~K;{`}?fTuIK>3thz$S5@(?6hgMZI zP(~LrZdL=$vl?e-o8SxC)09B&DoHM1ysq^K~kl7p^?K{)Kx|w=#*ZTRT=PCU6!P_ zS7oT}75cWPWEw6@<%l(YUIBz`uWvwiyTx?ZDD0Xi+e{bJ-Dp|53$u!Bx*Me`zE;{L zWE)9L(=@LuX283b>3y5IZc`YD03d)gBFew)cm#J01L}TC{|wCWlzTT+);O5ZDT3T+mW3x92^G{gM%^kA)!Agu04V`?pR ztlc5O$Yv)a$N4Si)4a%~wczxMqnXBsMZ{uxu2X>PYR}U(ytA$C`rYl|C6;t-8`Zmu z>pW>+R#h_3<+7Rj2K>(w-r7QVtBDe&nb*?IGh5EPE%SqciV|iMY1{tMIj|L8(~-+( zdbYgJwBP0>tc!DDtFO6|VYkxBusidhC094YWY`^5X3|WBP0fsRb|uf*vC4k!$b8*O zhA2C9%4SFXH*?nRKEPS~L9W_Y~QvF2U$!tB;sji1QP1i%sb3zyOP$frI1yCcq0IDcjT77-+?j1-khkO6? zVJ|w;ne&YTsYD_3%cE9}`lxCJ75sihuHPz=`u#kAqw~D1sQUXp{#G^JcD9&qmYo)- zGq>8VETehusK2MA=J~$%Fdl|oCc(MLStAWJFSpj$)w7eWQw>q`X(MHu%-R^&wp@n9 zwJl5~lKJK{WAJCEl9GklhR=2w&4q-;S1R?$HP7wZDU?mW`xbQDQwOb*kl(; zf{~E<#C3%s@J%I=iE}D3O-oi{;`T97%qQI5_IMs~ta|I9S=-w{RX$PeKzXyDX*9z$ zJhR58w2i@{vwOXrIoeuWwc8(!wvBo*MnVWx8s^@7D000X?!7)Z+&w#rte2@GGkmIM zgV%5OFzxRC?pd^VgiD}ou8n0T@W5{@S=lDv(6B(DKa>}cON#STCC+nCuVn>#CD}Mi z+LRXQ`I43p02Y*h`nF;~5%+J`mMfEBm7_wJ9&M@4_D|pZ$O>D_(uTB*@gI3GO{Hl1 z8%jkf0zE7s&;X|yqHy0862n*J? z(dlcu*j2cmx(EG_;}PMKJc5}#;>`jc(aLaz_<>yE(I-Y=(Qlm~K$3)f>RO((wjXDs z;uWuz^Fz(oNfPP0TNY(6O!e4JouHRNwHhtVLuHm#vEp<#YmRc(-xbGv#nBm>{coi^ zE}=6@HS@df_+5AWt~>sQx}$It|E@lMS08_G>Z3E?0T(D(mKATB0>!3NpxAtrK;aT% zY-vTv2`iU8a-81X0!36HP)tpMVo`v}B7veS9S}&Z);grF<_->o{&1@4g#rSvI#CO}o@60w4 zWg}02@4`g6oIrlJfaymj)1N+)>4&*YzpJRhc9wtU$N}Al__q}b1B*S|rg*HTzk&p? z6hWD;RvnrCVfcDG&DUr1pe?bmi+p`1!%x~KSEptMS8qwK-YLb^Xa9LzJzA2hXXm~` z@3rnXX7PW3!{-aUMaJFzH*uM0J%VM2{z>Q5ZwZ#|j0a^pU^(p`A2g46 z2r1{83S>I_eZnh0Vay*_V9n-w^1BN}(bAV<50_b^2gs~T-GnWYRZCi}y2w$wzc-n+ zyIQu{{r8Yrqwg~7Z+DGVD6_7>G8O%v#Ma;D{F!2F^j&OCiLE&qwaVr=`(1}me2yf>4F;O4oO# ztBlf>tugTXk2`3(OJX@V_Y%nw9~UAJyF&y*YG&~9ndIZGQhdDqpU20$tK{P)VgicmoTRyW z_>DsZ{s5=Z7l`~@=jvM}SD!tCtH=IH>(rkKuAU5tlyIxP(8BM8WM|mtRHnvo9j&W!7F|KwPp$KCEOZPy6%?HXd1swb|U12cY0^$Uj8J3Nx1PjxA}^IF64{prGF z6JcH@20evjU_>bx^Qhj5VMB8o^Z6Oi^!|RB05Kll+TioO^wIYGt)GA1`diIk&`-i0 z+AnNtA8Go+v(1IQtaHw%^_Mc!A|&(tXSF5@tcT)tP(8copN~dAJPYXG3Y<3(*G3iE zfma~*@LPr933^)qX~Qq9(iIc4^WM0PIfXpU-w8)$@7IP4d?R4n*cG| zn7s8(UEneuwIf=o1eZo-17q-dLC^fcve07DxH-M7Qi0A7FB-V0Yhh{ck^m|0oKsM= z1VCI}a;ozTN&q+2A-@FUpd3Km<2j0ql~`&{ufoDC3#XaaZ9zeXh2!RToX`C;;Pw66 zT@-tecJ4Bsb{Y=8q!RU;VKPooT7u)8!FkU==~GpYhz&-)ac{~_{ew?e>|%_2c<^-~ zNy73Y169d1tSvd=&);mqpTEt7orix_b9N8DifKD(%BrUA9()zkPLZq?BC}niVl|lj zEvEYU8%#AzZ&!=JE1z(doUayjS3Y4UL0=j6ItO0~oCn`@;(5d8OkF&a#b%B`4t~c* zBVe1mqcN7V5ANPGHZ-0$Hhn>b%!gb4N06TrtKqY`e|Y}YHJpCjcrHgXp1lx*8IOLN z`>BD>5`s>2Gi2xSvuf(+-Q3TvrIwvf%?}6D-k9uce15M%0j6iLsLd@Of9_mdu$wXb zd`3SH8GZ?VKBu3r(Vo(WpD)xL%T2I&CN=+cat)2i3m>-eGKqt`4}%Nwkj1bO|J(0< zYHZD$T!#_k9ZQeQL1$gFa{J*9ez8WUy@x}RQ{NI!7 zn~~>x1F~nJre!xgN?xB|T*7GHrz8P2en2{+)uc5{t`|1SK*P%dDD&}fEN%Z{c50e0 z((9RYyKKl}vF4(g93?x$i%U46i`G=4*%!RU`%KQ0YHFD_5xbZSd*j=pHm`1P00-U- zlgZ6HhHYM7vWqVTJ-DrJZ*VcZC4?!OCBs(O=rt8qxh4ay8u_R6T;BFj^e&pNsyJt~ zdHx&=YXz zGkNkv_z0eWE`1urC&?+VG&3S^3Q(`-y^%pJs&=^u04vbl)X_NcQe+Vpk|m4qFhdr- z(;9qE6QXio%MeKz+NPxHTgD^#DQvmK=h7pKQIzmmexU5MajX>RN>9mzB94;<_%f49 zkEY45Q80w1ilR72WVHq_sXD5rXn1{;T(fEtyv*;M)FenAiGHa~J2fEm5L9#Gc6xkd zK(7@?${F85xjpPiP*=1+r?bHu@RqGNN)hUuZW(fpone#g{izZold-_;QtTLvy#s`Y|^wI|+IXBmL0We1FdZZETizPSf-Le9mtPdxLHtSk^rF@W0`E zA$$m$kH(e-##B}1hYKJevl@N9LQAT=8qsFdyp~oB8>E*zpd#3>l(bVVlLyt0>eS5Es6q>MxwkDZ9K3vAFp6!wfl@;yzHd!Z5Px&Hu`wF zaH!ZeNiXm`wf&^HHgelt=~N7bukEs=ZQm0Y8F=*rXz5|(qPM<|ggIME`_8DUmdN>2 zsaN=cTU0YIx-Xf$>7KAuu8+p&!?C^uGD>uXApW<4YB$>lj-Kw()jhi0^L>UcIxYN9b@p@6y1$=o zv|hg1J34!}7e(ljfQ|^fv~taYXOFL=LUXDlKwt)OMU|tSuNJi7{>PnmxJ#3Xj&|O? ze-KbRK{ZMRz{(H2i{6~QKKQVI#Fy&j-S(M~!7A6(hwhTDg6cF2eL?)Ge0$FAU8h;S z!mx$=`>U6o8tlVW(BW0)@$?=8;Cv?UTQ3FiHo{-jk(XC|c&r=DztHEfk@y!l0Zd+l zyM-PpjhPP{Mt`;DHGjeaZYsZIW`#JxGw#GP+Hfu#)#G5o>c$hju4BEfLJfXLElT3uIPKoTm`w|sacWx zl1Z+A$(mN}>&sN(w7@#JwWUUAT~@4b_}PnMsQkgVxsF3-&>|| zI37IG(^8#~{tn02yzsVeDp1X=XlwBTKqvo0t_xUf>-QiTG| zqbYnU%mbQO2Q)SgW~dHkSFAYF4j0pW_U*Ux9T%T?XWo-M*PpDPq7Bcf@KY2|Va#Wq ze;1E1nJM`iwT;<3!;R#EoUT)1joGN582P&(w%+y@Z2Uu9>+(<80@pgdT<%@>%$;PH zAYdlg#Tc}fm0lOwtT>|uE<1NQzVnWA%SVInP^DLL!qbC(*$4XFoA&zbGuvJO6cSP* z^t?FR-P;fMb{nOk*xCu(8Q~^FI;PTpSgcN*=nBn$P2roMRbpkZ~3ZaO+^f-|I zy1+VGbrHG*d_vR(ze{)(V2~@|XfWhnI04JziDbHNt5RZz)~XY>zP@H32d3H~oa03jBJaKwr&diD2=dMOEjoh%MfOL-i^duAuSbnt z=ErOdfCISj6@7HA2newMh6Nv4J*#T_Z^a99!T!!T065@_Jl#+;*h_=KULu2iHRdB) z1{MGAVgl#ln#k7Cm}dE*HyHnQXE;2+od+%8Is7Sh!&{IT&C2zd{;D30$vyPdSjOqz zvfvHd7AjQffEI275NeHE zzz<`0KpeW(hJ}V#)nbHvJ*wwD!Q2|Dkmq-1U^Ond?wzj91TgDC79F zm2#6%R-lL9R_6|>ZlkvxH`H6)vv>d^aNwPPhWT!QM&bEvhEWE%X?I@TYuuqM-UG?P zt3Qol^-n)d&>y!xxsK~sFzenmHc!93##i{ck$OYFo|5->J+6;O9zbh~p#sSu@SfG5 z)n9nP!TH+g*?$AZMf9^0?fz2ff|j&{)2smIdOnbnugNeT1t)y+p6}80JvagV4I~L0 z{B-sPpW*2!#+$n<7?OVhAHkuA^T=P1p&RzreNO$$n0(n{d3C!^6NtOfr1JN(ZA$XE7hIKB`NsAI3W z&%q8~@Ww!_8|3qj*9Z-7cwN~Tb}RL#@>ykly@K8XD7#Jum5q%HqJq$ZKdtlMGSSbk46-43I~Vvk4eYt!;;6z4 z?a37`L9W?c!Qv^S!@yUNjGc3qFMn^7mhl|!S*y3y*g~8!N1QP%Vgtzr{F6+^3pW($ zMVVbE2$ddOLbrHyV}q6(UV))_d;^x~w=wDU;|9@6Bq)=?#;6jHM*z4B`WFwb?};bS z0-tZ(!07M?ryp0NL^k24e3} zMUSN*1qc&Q=<+QKDC|-IEHzP>^zV0~07X988#vQk(>fURZ&R3Q?Sjd#jKiZCW&Noh zi;kE*^Z`nO?7ZRWRaoCTz^U);aFi|kVLg`Jy~KQ4bW|MEdEf-B-p=oTVj$B2cYtpu zgNw;<28G|R-FQ}yKb@W7!!r=n&d#3x_~X+bfkghP@~5;Uq#unyBf6m{T5#fn4KM1{0to`L zG@(&Dr=!*if|Viv(46D~O|Yuz8_WL+awm^KWKx-`H0yKXrrLpli=(99e8Jb@cHQlN!ShV|F-Iz^}m5qqLibH4bUPs zKs9K1FY3>p*Eivv+G6bS7wGXEi8#po@bg9e1-7BUWYB~D?|Gf~;SkvX5cK7De)9a! zlUV$~HoXx@6`z1VdDL;MzQrGYy*wX_M=$VMKZ(yl4#$se{iXhlo(%BgKf%Yg(0>BO z57gx8*%l3saKnB1EY?Xai4A_5bgxFV5}NvOM!)`C|8xB>s9M3#4K}`@UYqdnnS2No zW0asegY5GE{tAo0`Hs%JYy%nLhDw6KKlls>=P}l>68scy$8wzj?mzz`rmW| z@eTMg$p0YJle$bl0g^ou2%yi_U+aI)?-O$aKr$Q^d|`A8O2bSl4d-Kk(Wl8+e!!l! z=rRU0A0htW_H86x=jfn$u(8I;)Ij_#(I~D7Ta9k|=eJ*nz0a4RDRO!N+x23LcKYvp z6XaY#cRr`N{v^;d^`5@x5&CSRa-V*Wr!pCk4)cGog3bD0vu#LA;7N9PY$NE;-N6#3zS zjJypKm!Dz`-8_`5N*=;QH36hj&_%9*x9sKYl@_todiGa>lg)i%z7Gb|!9dW!y_KpXtpZ>|)+2p1@pYVB za6E5_MXhbE4ebKQny^g~P)CeApv@ z#iPB$k2~$4YPCr@AHF`=Z-sBp>@KG3q19R6&RdTg&)H9Y`{4CXTV;{@Wv>%>XT(5B zJ>vJ1XMCYvvpX4Zy&8tuWoXF5Yc>p;=SkeW4}&j*o)#QGWs(0`mva z9H>ui8~TX98|M2K0KS{dcmw&vY7w1x&xbv)w!XfWH?U}8b=!+Si?{SwqiVh+Zyv99 ze{Vf}e+YnGU#~(R(ZDy~ANK|^oSMr15sVAV7QgM!zB|9D97L6W@Fx71-C}1D4`GjZ z1Np;h(R+WH3|M-4z4zy$Q!hPayEmB35JFXWD}MNQG3}dh^-MhHnUKoSdrU-ZZU@*K68$Q`eD! zzqe(2EitQkDjI-KGHw<)+28aqXv8aU#2+nefsAtqEE}CB^ILH^FZ$T+Xw0rlHF`t5 zyT72VfDDG;oZp~+y0N9N+D;2P0=0j2e(_~;$N!KGD@&LNGX=_CBK+LdAY|kjDsjCj&V{iJV=!)HleDW5`-lAO^JxLhG|ZcaEMP z=y0GHBHbdBK-H=eNpm>%SIOHbq1Zry@|E78lGH@TCJIHT%yrZ{_LGzNR8E7O8mqNA z9HyJ9{3@XhU_GUv3Q;JWp7*Q9I|+6A!F_VYCH>hyCv14Da%JAl?a7Nx7nKRt#7?Nx zQhZQdqmSEpwx86YMB9C6oQ`yuz-qxuf!A@p?=X#hc9HvtfP8*l!ql2%5>bnm|l>h7f&f(6x$iG4+ z)IPa74La~2;R}8?N*_5D)1#0!Sli;h_;;BXn{#Tqe3dUMS$OVQ5cmO)AJHGhmc! zR)1`i_c8y|I61GTU=owVS#PvAyMbX@Ou=M^Gd}!8&$b{?G3xjC#zPT8Zaw3J!!zzg z+8c4#Qgql)a{-b;5=nYfvq<0&j7*7%`%ZD7_oQF#s3m0VfRbPZF9(XA^C=BZ*eT3P zisGIxCe-eIVZp%Be$8mSzCI94Ky457r{o5o`tI&0(e3r8q+joix#__EI4ZU07^Nd7 z3rNVeHyZ;XBS^=@&Bn%7L;e`3hg%K#mAV|r7<^kj1z^jT%-M27JqBf@G5DEn!}kU+ z8TtMny!!9=fp#i;FMYxex|Ex^wQnvcIyzKa?xPRbRIZJem{8gbuJr!CI?#(^dNsUb z5VZEU#SdHpbF^h0x``_s8z_dn;RSP%K+7>>HvLN8Og26ML7O> zQ%n&yVdaz4wgB>Lz^UOMIGK}ry*@x!X;3y#>u81r_Kgo&>Y)T7?D?-gKYL>78S#x? z{iI+U#o;AL3~KtYna`PgE=0ezt)|RuLb}TUWxX{fWHhM)0?WL=Uo(+GcNc$b;x%QL z9H5QG2Vp{I=ybohXNC`11*JSM09Bv zft-951wOCGn^fd%s-qexD?Qb5glzCmyMeog#B`7T!DM{UeU(gLg3j-tvuOpLw18}U zqGlL+t~;f^lOB$~!3JnM4sobJxLXG=tH9tuntK_bNMQ_!v_IVch~dS-*3%cy{`TT; zfBws}zx^aKE9@Meg9396N>g$^er(}|Ei3k~hXFx9if{kO=9s`@WnXyqV>SDcjrvbD z_|SE4aD6_jnttm%M+INwkJV&@0eVO=Ye*0X-kpyx>-=v4n~2mu4j_ef5@7UUIlKbv zpMT^dRBJC^zTBLz7OHaSZvaa42H!mU~1wsFf~c&ew2dm7N_UZ@{(RS9KPxafrbOf zuVQYJ;AMDP14^zbaj@Bpf0i7%8DmZ#f!d$IUeRe>D(^Z0QwziL;~=1MnEtEqP7 ztZNhnQpHpaY7CGRZ!up>1^PDg-bfgt41Fl&-ID=ejz0ie?Xy#D`o9*UmfQ)gKER%B zYhY2k8p>pe48DZLCkP8wKMuZDO?*n76}*h$-vKVMCauxCpjM5XSaHU|7i{`6<_pef zf;t%*t@+CovWPCQ(wkfT3h|vjLnNj)XV*7l*Xuc1?W8Sl$lw=dIhd=z`1$mOMGh@r zwB^mDSz|#`9{^1OCW?iYDhWqi{S%bmss2Sx0l$<)#$Tv$ee(etko*)#fM099>CQHD zYQZo8Bs{a^g^ewG{xbc%!k-7)s8rc(-f?8svjPO>e{=!EY3cF$dKdaMYnbbw&nFg3 z5Ba|}5LRQp;4ld354q~@d@l7SO0872#dzG4`+Gz6#XN7Iwi}CFGX!5H(Wop zKolbDCK0%kg%$BD4K?VznV!hD{lOq zy-ttXmHaRY;*;)alX00WlKFWmY%YYfJ0sz0GtnG1ks|;dRJm0N#xcl*Jaqnd!R-KE zfcV?&iHWyBslp(E$BF$oX;$N(H}CJmpRwAGMP_6sG}wDs+o)0b;SQ4>%qvgfuW_PM zp#i9sB--R4wzy}^H@6wBuRnPb{~UxMb8)~$k~2j?l#;JTHv~|LZ>~zln>RY zIeXQzUCkpQg(M;goHPNI4d#Fu8bV+4M8C~seLddTsJsNhR0#8!1|QL0z)T)6U!E(T zGdLlmJAXoYSy)pZ0(?(4o6*mqMCM2$^E3!gB7w{nT}k|@NOQH!5H!W9I#k`cn7@%~ zHp?41yJ=+P3PL%MsL4 zGOubcv|AFyc*`5czN8xB=R`yLGH*Cy2(;X4 z>T~u8k}<*vN@9?Rk=6%vli!GiH%6$m*0nxFM%=KHsU^gXN z!xx~~*fLGc!ih8?nhz{wtzxkGpD|Xu#b)-(IQ9908JD-7D}3Lzdbu`RF#>PkI2Z#c>H3Bt2+B*gm{8Z z^~dW0?EIYu{j=M!8f(&{H}<1C?X(OP(H?1nfI3)==Z&0PB7A!2`T?h>=+6m;xcnD& z$k|DPYMuQ``;9pSml6n;+4t_DS0uxwK*EqR(V=C!Q2bJ~5aPgNboYqtrPO zglX;jq&;;F$ZCC@SrGFqY-P=6esJc{lnxW-5Rg)hPy+3kX#lyoDJ0~W_2diu-G#rq zzoH-kM>`vaLvacZgJu_w`ldMQ6DiBR1)j6SfevM-y3HQy;P(7(I5d@)upo`0K!yd8 zRIAvA=4yjAVxwy7VU2=D@};cfEpxuqxC6%VL9W&1Rk0RaUPwe?eTg+fww7M+lF`KXSj`KdarE!f;tpEf zvE{2Yd)}%$jNoa%hAv&~?)g@ifNnheq6Z}Jl9Pv1;W6$iFZlLufPAlpn=wJ1ANu+l z<}a-k-IFuQFYuW2O4kYGg|QwAk8URZYiHQYmaKYhb}= zX^~RfF2!YP6}b7Rztnp={KL1Gy#9spD{Cl0Dm*|k1+ko6h$yP4*wQH`4M2`~BF#Ri zv!J=N1}&8*;*^l@vy=^Aq8u=is-a&=0bv&zmlV^_!~tvWmCnPiJB zcAvpC3yL=D`!Zc9&r;4pgL-Zc4Pm(`;_ww)TzGiOE#Co?|98R!@XSxL% zx`0V?4XPWN<*;a^C5$rK_J@1J^^8)@V9%PJ*Kj!Q`9n>62^(6pr~aOYy#hKMme3&w zI!urb8N%9UXptAtqMmb`z5ZF#?sDlU$E72SDGwc{JcJ`9NbjeMiOmvfscc%-HjLGmCc`s7ZJ3Oa!F41ZG1CTTD zti!0)J$`rA?zjK>F*<3hqycF_;t_tIq8PI$u=UC8#%kAF1JP`)F;mm6N3PudQ9RxilsUQTXP` z37;d@^;0UfFdym03W!M}D-aoEFtW3m)Czi~-80;8>+s_27s8=x+Dr#s!!4$xB|R&h z3S5;ZgK=A6sMIk}n$9-ZBNuUzY(!;J=mly1epp7C>Y~U@u?!Ka%dae9(NgA(H7e^u z*q1Qzs&^J&a}&-;*gq3n{0O&t5G_Yb;4T^>A9>e0FnxWS7Eh5&&`y?Nq82KAq)_39 zPeFx0c;7lYYIpnXql1%+k0xbTwWK8pyBuDD=$#tSdt416jcu40@}N6y|IABy~Cl%gdwOv>ihUR`q@^H>iwx)3@SL#qvn_1>d}Rfd*^iq_tSp=@IMVW=qw$`dVnik9Xirpf4o-ieJl?>- zzi#-1Y!M{)tXPL#u)7ehjM9Rp6O&PvRx+V^xMZF%e?4NuBG-&cHM2iXKKqxq{3@W( zqSxkGytn6h@^RBmZm5U|jYgfYbYz%_Y!!C*Bztl8<^PQ{$+3!Zd5QDd&rs(L%{s0mny9kGSxh%AeqU^EF&#=^A$QtRL zw9eHWPfd3BHn#zP8hsvm9?tzC58HNX5o^}_&s&K@nCfNSM(!_Nl|C&Rbggu0+Rs{= zl{KJ>Q*5Q(Z4{*9l@sh(aAjI4oe=I5e-6h{X&7ZMt0ZCUvCB{Vigk1n#`CZ&51A#X zPPq{~IoD^2b#&Q6_;By{{>L{T^$f$Tb)tX1P8x};LnQn!|Hsx}W;OBuDmCwDR-1`a zw>D4UMWg2ZsC*R8nYZl)>KAm(`@hUj&e@ONj{&>e^C%EPWMlFW3)A zHp3*YBS_mfoG>|NKrW-%7Yu@9w;X+_Ka6JAaQZiv_G~bFmelMu&Y4Ka_H|Yur<;o( zr6N)3sPY-69w`ch*fiC|#GSc(%?%hWC2VeZXA^7G%*uAtxL~IV39pTU>b-xW*x6;5Q(%?nIu+*afD*x<@M{ix2go{2tqX(;_+fZwY?y+rOwhZ& zNBdzZpq)=B?*YzKql-uEDvYflc%Zxu_Y%}`tO7WiJnhsKISey)_~j7SvHT7rTRShv zeb*yJN=IpIJEUI1YZ%d|$}sAC?a8wLm$*?oz2!Cai5g5~?Orl?l_QJQ$h8l+y$3R+ z1BTVbG%4&NFgXaf?q0nb*7?6s4a0eOXGy!m`fTypzYD}$?BtYVPFvMe(?9#BiMgx` zK1%iPNMSv!kAZ*PDIImQc!+8f5iDWM;6uEo)*O#D%(aS4Z!}pXi&+iC-CHU%9?aH{ z-Ob#(`J?3enEN#R9E|Zy-K{dww?ej-T++*xPAf{>3@{z1!H{MQzROb};29C;>bG)dZ{!GnQ^KUhgOT&`EWB?7aiNc6@ROY)$fW zFKD=B>C7oASAr1K=6lCS$RIW66Kbl%cDHrWkj%5_9n666oyEyV>hCKvtaf&@a1h`g zaA!`Y618OGPU%fM9FC0+|5dlyga!_|dHwn|VJh_bWe3+>t|u&OE+aRio+64!Pf6h7=vVdL#X;tOQslJ44aie zexZ+RHl*R@hg{3&4p)cgin%)c{gCVF3sAqsCFSMfxs#LE)^5oY z&rYCwp;SzTDw)0xtxTbx7jrt*p%rzMqkit8_Q2GNw3U$NjLTV&L8|9^YD90Z4x}8pQ=;xYOm%< zbFWzU&`EoZnk_p$EXW>sY|(Y`P^&q_Qmf&dvxtr`CwqL)N+LUC<*i$!28_$jIDg3Z zyt7{W1TOI^#X4ME??>0vK0?0g#I!JdXQu~vnL``gN&8(U-D@%&&II;WkTxwvi#>5U zl?#p=f0MpN%+{3WwJ6xltQw`iMt1@ijM8^KxO@a9Mjsy)RGFE#u!xPbals}ZhPk}k zJ%re;l62bv+NH~FF5|YcI4r|R5uCqeBPRFwA zTvW2_Y)-8`)OnkijP&s)sd6`HfOKOMvL}*NduFq6x#yjUN>e#~Mi*K(d&z&(d~6uD zJ8F?GIx}h*o5So>xCNZ+3LS}C5UJP+0{QVD(IK11v?M*?;$uFX>mO1Fqkm&=NRB-7 z#?(lIrgquDjrb8igm=A4W_o3$Pnegf@4bZWS~7>(874mHVee-Ztoeuv{2NRQ^;}kf zk*=?R(O{J;pgYCshn`TMZXSkQhiKB94DM&Q$-KfKWE~p$xi~-7>Q|^el0`pYs-Wt{ zk=swB_z5+hFrtw~yj7O*^Wgdm971AIP9?7UlPXnn{*V_8MYz%*p@Po{@Vo^ue@XbW zXVj5;&`MR+^v!-gpwz4f$rvaBRT>8;?baz;pt@ZRi`-j-CqLzsxJeE8v zL2Dt9ePWLJD*h+1+o#FcP_I8^J-lG!A-rT=!7}xA#9xNKwEh-se^Mq6EokL#4qCY@ z44e8eUYf&r+1O#{p=ACUrN~LU*FHLE_fOx$U+<5*hlq>p`>V`JfZa^S5}w&~W0mX1 z>e9QHGh9!uuNU`lpL_7G5D96gX~%fd%~zLz3lNBza^%PMQ;(f%Nr&qAf0+d+quQHY z+@FTb?}YwEr~*jzYt!M2T!$~z-0GR@SPIb&h(FSX4huZ-8n}8>4tJsE-P`b7N$2** zWP8f-P>d7m>JHbwVz$K5L=D%9AzmX21{#FK`V?LbhhzqG-YNDZ-|KV&QRY21>(-R4 zP*$|z$&GRd#Z6zY^7cqm_%KM>F8}GTK8zzQp|hgQFjEU|e99Y=P~l!!jR-leVV}c1>_g{-A%%GZF9#wZAFe zJf#N2)?QpVnut5H*h;!Oq+}ZV4_FS@`aBc_DDQzst&ecxo_cNr%x&DLMldIbeUo`i zncAKWTBe!g>W#~*XDU2^1%^FkS3svoWuyQC*lDh&zfL*)7emRUnKrp5@0iB@l+u$m z_()^}?2nkhvv@a6!`|g;N?3&Fbv>F8YQU6-p?8>EBdN3}v8UY;M+%`KFQUqQ)3nrE zK9E)z=63F0GD3Kq5hZsA^7Jryn_ytE_v%&Vg)-bLz{V;6xS03&cnJN|e73Mdh9@@Q zYne<$;v;xgd9--j*JAac1Aa%IA};s#7*vvA3{^fFkfMO55_$~nZuMc@Tkoba9SCop z*EQ9J-bwqzF-Xn79Y;rA)1B_Vly=`?HV*VR8R90vh0{lI717i>j`0T_uCUt42=`mj zLIryJ{%AavN>4=Gw?BHg!BHJoo52#9T}}hFj#%IOQLFOrpxU4HdW_JA{y~=I;LkhP>%VXu8duV_3(EcbZ;vwC3>r>nNAG)bc z6>DhBtJnS*jmNbK=W&g%`1JxdGz zj{oTyWc0~i(NE5bW?YSAt54xxz;#gX%4(yV38r`tjIFeQ%?PS|$Ju+%TJxs=t`cW? zXV1wyy^%Fzd0&Ygytk*}y>7+kE3J8zhM<&bs0CLT7{B5w<(xp=8>JUgIV&mO*?s)^ zdtYCoMHt_qn9}|EOPuig^XhzJ-=2m2`TzVA{-m8h<4@;oI%f}@jpyHc#!vab!zn+V zSJ`mWxwYY@^ZZf%P-(|K*gNi__$VJ&+Hzx?*v9kBQQq*s>u5fmKb@zZ+8sKbuREHB zK)!bOUd-9`oOa;F6L#Q*-G__$rjuH^y8RE`p0fLOP2YuABB8{46geyHD_tsfbxj>k z&)>-EkQ~hadpENno!dEE&e>qv^lvL|?OS_m-_CPq>9W#(T-v0!oEM#?gK3q922-n{ z!Bn$|ryZxbbFQDUi?8irY+Y*xC#Loe1eCjHw0dW^dS}K`>CoT0zU9|ne&-LLF!E?L zfAIUG%blwNS018Z=|f}yo7YhjLzg2%==~8$Z&F~($r^NtfdBOBv*asBoyJ?K$1pq% z9-yM9n6ZgDTu#|wR4AJCPRVfhzIF7jeQ3!j{&E`ngHd%hI2h$L|AP^g!j&|pFe}~s za@u%I2}wmJHyK^_M_0f#ZQWWyAm{&F;ilxK!)i2QEa6!t>}d!L<0MMl!qx6w932QN z&QYt2Nl#^jnppJvQL|hExgS;G3-=>y58aQP9_eF$g-d||_1(d2PKew;?D{=+Jd%#> zbPDv7G&~+DRbd~~#gHzNXgO7Wked$^S92#do98KM-l!u}#N#VF{NdgrujCISHXK>x z{s8|QK7rhad2$~Xko&{Pko&_(lKbX;$i!9%-%bC|Zg`>H@Y`g~Zuo6dWjFjbv3A36 zlQp{miSW-M=~N&Yz>7e8t&1oxufQ@_J#S)fLmX3;GqGLmCVQn(gn4i^gG0+A>R z?3{(Z73_{-D4lDwAtMXtj+Nz>ud~`LxMQ}_25h#r#fpX-a%5{fq8K_uyAA$vkSr$i z#!kw{e6ZwYFO`>D$!q*UYy@Wy-li{M9(o*%$z}OBlKF^Lp`WgNdTI$ujlS{#&iN!r z1CGC}ByHNlrWO&E(e4wMYyOTm+uWp#|AY|PKB|}&#{6#@eP>@z-1&C}my$O#!?2t17);S)W=dao_2`{ULn6t|R)r z>_@81>H-fz;-XvA!rrSWv@QRcN<*4)l<%Q4-@dKa8R|yf+l{<;Z5p2_AV?h(Xu~dW zJSv{eA_pWfr$r7(dmZJldPRQo{Xc1jtgGPn%#l6O*$KJ}{qrglbe@}_b2azo!zN~R z@6OB+sZpkt^ixxN15LSmtUAOEZ63NC^GTZQ(k<(JQQn?E=@^{-d5CME)zVeOLrXcW zrmiK}Eq1zS(e~bR6c6qF>6{x9=@6eqapMyg=h&>VFP*Aq;<&LhKJU*}%IB1hew%$s zuK_yppfPd0!91#?4Cd24wp#Pl=6_8Xh~XV?#XLH{-)DZ4ie8}e2PIeV1srVaoac(p zyu;!%ufx+Px|gw@N|Lfh$snpLkC_f_tqOo$T1=9TGoC^Y!??57c)XwYxcQ7p!zgD; zl@Gj|CX4$vzBo$eBb-YG3ufLtr^znTMPZZl=7~+}X+Xl*7L1OZ$LOBu#vw^UU#8)( zX+mq{L^(q4%=fSfri+JYkn{o zkHf7UHiR3(eEM)OnTI>*m8DVV4sIuEYJTp3{En_?kEN{BL7;O3C-U!1jD-6x7vE6$ zx^PQ71)bYr;Tz?Csh!neIe5k;kOyf=t->aY`|R>9=N0`xB0L@r6@B8AaWYlk2B^CtESYrWW@IVs^rTCKsQNX(!6aRs=!) z%>S_%abR%>&U%f0!ft$nmKDzDdg7b zozC-2JrsSyC6%a5e09yK=7Chl>kM^kyRFbtgxG}Pz3NRPX7baBwwS;{;tOCT1@a8v z0byZ|M0zPR8!RTX#b@Kx%C>f8#v^(m>;>r5;uc|f;OL-{9cyb6AF9>83ScVngzklJ zdnDy9FqySC<#%-OcqFC|0|6g|{2Z~4q={XUFcX6jpP}3Z&k@As5T z117`L5$^VYgETV(DxcMsUpb>yfR-xryy+md=Q)r7eP>be7D1Cw23@axaD4W$+a|Rl z64h3$w%IU@+#@z3vZURMa95r)IGE(2)*9E(COwTrfxVG0qB}ZP%nH!`e9fTz4GCwM2 zg+k0&jer0t08e*<0`C$ApJmGV9r>^tHcd^!=!7uGT&{!#Iv_Cm3#hRy&w)dYZ?1F( z-OJ3@G!lY`UYmB5C_NAdll%dsBLDihnB(Is)+?iLiFhwE;Q4Xbb4j#UaK&)|5UiE% zB0Mkb2)OM>bnI^pg>4;?F?$G0i-~Fpo>ratUA*ns*DTi4>no{QpOz&95Qy~|hiEh^6vpCE048KTiD z#X|{0r0g;D%#p4rnv}DMby-rk-vmXn*hE7vj;=M_Zx=O2VCeNn_Y2Z2_P2nMPrI5So`of@ws zUyV4$^X>(mQu;T1U6?PqNU6L2Sdwz-rY7xKpn&8o`3Wnim z*W_So^XY;Md4V^HZ=M@4!S!59ge4=7!MJbaD-N@|<%U}ox)VurF34dx>9OklAFviR zVdE_sp;&PH+{o`GW}AdLLlu3Z^*E(rz&n|}heU4B5&iS9V37Gn&rO@>jh$v@ye~E; z%F&taExUygN#8qeac}?oSR{tZmh#A5!>bqkHNi6yFq^$0l{6$4);t%Jg8Jo@FagI8 zkCh}*Oq1;1d>@gsX>mo}5#f%u|3LDW*_27nrNA^~PjTXY!@hAo7F@lVgl=**4{5;# z2NfCiLn>AjE3Y7GnL$t@!&XwwO^}!2Oe*sgT;eZP3Qs>?Z}#Dq*(bK_N=8NKqe>X$ z&d8XqmI2DkWYQsRagk+XSZLUY(saWu@3BN9nq!#xAa=e!)|?lrCNnSBO@2u``7R3B zLbZYIbuSs5*slsUr|Ia!`tkxpU7}kICX|+VCssg#@!3@F8Is(ApQyE5N;82p40M$l zZk2}1rod|GvX#~#77>lgUQ`gk9663G!%|lmj!0me1DJ=*ZTvX_%*l5Fwq-4RJy_XX zOm~rv_JdA9r#NH@K~xa2#EnP^a!*h5=04UO$1=O6}>$d!JTZf?jx;OP+3U|uJ~Q;;!;=HC@`4&Kv|i9(J()U8LIF0nkAOF zIC}K*iegac-@J0asdbJ#OB$(bxePm z%W-mz@q_$dYJv5eK^zMRer24_fa56+Dgj*9bm+kR-JUGIUiPk(RXj)WY?gy^be z4T2byWKc3P+TP-JJ=E^TZq2xEDSw-m@)t-EJ&5=Omq)>rY)d2`^1D#EyoL(zL}8sQ z!=2{x*Isj3fOFCnFefX4a?+80(-&ztyj)(%1F^s-9{1s@1nlH)1J((5u}<#b`gm6Y zX>wN`(WDBv2uE;{l?i3&6h`}OayjS4A$e@IWulJ0ed~Ptc2Uw%*e*b88OxnW7NW@# zXtou{&d2rga~meNRG8c3fW=wnqG#O$s$B2N;@P;0Mx{$9^*oA!$+(%Ixdmdb$RV+w zy^d4I?Mh|+L8b}P^bNkil-c}WAdzd7^BfHadrqP30BuutOG$!lYPF#SXWL9@t@ z2JJ(=V6W(vB(Rf(lu!f$!YHK~PVoJvCxQP9?4c~GV$`0RpRWy9-b=Bbu*DpEz zjho;*dGh-9UywK3swwANq?pPf7!=@I7Y=ZkO<5(IRt>?uX@dVab(-lS%6b3j_!PKr)H~gjglWhwJ6EU~P-(mTI9$42 zUe;kir6AsqZa(BbQ10*ip)Ime_}zeY)66pFGc8W$# z>iN57(HwT55=MI5Z8%&^h_M}EOuS+R!t4cx$2i{FE2Sk$_ByC)u^qOPJ=9(5uAg8-^jC$@Ah2rQRFN zF6ZEM5@XC1NB&w;T&bPBhV6EQ71biBiqdkH8!ie633;fcMg6lRd;7{0J6E1)-5qS` zDBf&@7q<=Owr_NA$)AoLSgd;+25Hd}{7Ew+5vl&|r^MP{84{DG6LnT^R=1jj7xp;$ zv(&D>MgL`in8=IjU+JgN#D5*!1H%^X;gL!aAbAjQ-MBuuzDA}~!e>?QW?3G!LxH0& zIPZx{$PJsc%<}bkxe0Al#a|`iTNLwopaV?ybY54O=3cUxUQ@96>>82>M4ktjo0kQCZ5Tf7V$t!HXPzf?hsFG z#c-&oWuq9Z**BAxJ5|7*X?@?)t`=ng)%&f3-;X<;e*07V=+uI%Rzd&$|4Gv z?|{^Rkgs1Jd6_Dh4?&tqkgkbf@`J~+5e>#;rBs&V^0F${if-X+wlQwxa--1WcdfMx zExvw_?F6rVz8wea0+-_L-K#+B6C>zf^eb;huU`kr z>or}xjIL}ZlcZTqm_^&C(}x_aoJA2q?T=eNArx$Bi4(Rj?UnJQ&<4N2TzyU6GAob> zq`wz>IAQYW8r+SN3Q30#9|b=(@IGf2`|{}7SAOnt+^dQ%_{GcF=!?k0}< z!@UU>LnCsQ*9ln`{N&Xu`wo>DMiBv{5JvfkC9tN-F0T&0HJ-@IN}sL^Z_r*Sr7pEk zbMPJ(D@+Pv`rJEqSrDbGSKZ*I3CPRtP^M-_tP2 z1tdVv#?`A=g$f1W+&x84&~IVU$#H<)_ka75jP10J-lixYNAB;y!c^kA|E4P0WEL2E<@>G3vU;%}dm0$rCBGBZ? zqZSlNMmMrLZ>_$4D_n%2kUl8aG|~uW3e}lkWBBKKK7OdpkSVhZ4Jc8^sPLskE>$+A zjDAO6TBabxY*Chq<3A=U%?3OTr1NC~mRs{qUvPlvtgiymVFpy4kJSF+(*0tm;EOmT zQ}TOX;=e)jyyQD#bT%PkxPrA&*yA9MkEil_3#Zqtan7U#m3{%cNDB!hn-*N8{iZ`z zA24{5sYIR@r}473@2ckcT{xtWf%g$zn)Uw}P2%JaIf>V|)8s4v#HWOasPOXzt!=D@5{=e_{Rc2m(Pu!P#2Z|)+dAI=w<*%X?ZQRD^(TT60IB9 z%MQ#s_R#(gJ)r->0aI2`H;qs0v->e#)M2Mw?vM@DnTA)d?g!HuhYN!HobB!eZ^Qri z58!X3*@xsahyg$B`VyO?e>;j}4ky55Ihg%G$JS&nCwUSorX>As+A@))w;aVB`7SRl zaZL@v+E0iJ&F9n6=LHb%BOj=Fuzqfl(gWQUl;_ z*orEseixO+=d;mdJeqJ(oLB2vw%8w|czz4Tb_?F!^3l!hT)y-R=T@W#JrH}r_uj;w zO(lgjEPVc=_sBrTaC*-v?dLArrP-Wb3pNvGT)%n!dTW-=<*6f2^ zH5%fD@XHCOKtOWMSP(tv34x-;^2}d-F%j2=IeZD6hJk*ce#DZnz z#rc*k2(x0@NY0~fSBkElGPIv!F`|?cdQi6tvB7XCbxJ~cHfu!BG&%(9rWu8&LwKsk zEG$5gz!%ev+B+Kc>B1M+Q_5Pr@DD?QKzVZZ5%)P<)4OUv3kg^Z@{nu7sh=JFesp|( z1h;Ze{^_YqoRKiF)=v0M54a(p8s~#Ar)nCcsk)Jg(-9SFpOM%wgzXyd+qGm^qjf=L zkG{LiLEPqZ^&2ETxUhMr$G^9a)IFopK%5#l9JdL}rdv3m6E3qxX9n^+_AaiW*7Ng& zzKF{sj=I`weQ5X3qC?Cnh&I;>eRZo~XS0oDy=ui_5yd3fY#IyRFHV!BLt3i|Tnn>< z8sk|4OOe!uvWytYN&7cCA^Q6l{a*XzQ~RXSaH!Ay)8pfQhaAg~PH{;2r{6g&G!yR= zLG3@lCI5E)Qh{K6n@mUlNnSl-c)v#nzr)~;&rY8>z@myc#Nr043=(+3U@@L&hk!$@ zeKF%e-TGqkWs>|csgZ|}Q4B?a3e^?2OFal*aR%mz9`(htddA8EpNVB&btR6(h}X1a zJu3{?WjXQ+ZCW3$Wol4g3PtKD7QDQIw|N9pYgErzX8!@-5sq)Ol8SmMOj`JD&&Bo= zVsw-PL{k{UM%oP%@dTLohrvoYrOo_bcHaa{-g^ge?7Gr}Lgv(rzX%S4a3vKQm)K3jbuvR`(v z8gsI#^&)VL5YPiu8rSYYZbhx}HQirjp!ftmGHci4WD!GwWc4775iXk(r9O)KnRnB< zyb#x^k&oC$u&%zc**UjqF{##r!e|xMuDKZqo0tBXTYhO3hkK$taM0*KpFZTt(JIrr z{!&b?@_m+EgET{`N^2u_GX^>(N={ZpC!7mo=BaDaHXRLt@idjYA0N|yQ0*h~Qn#-E zwLoDNKbeoYE@BE;CUK1wTL^C^y6ZRr_tf2F`4lJM-s$m4>m4SxKKPw{fLjOuI1@_x z^=`m1yIfvj7_77|=L~zQlhQGbWJlZ5m|>%MH6hJ`cJM@ZfHqyFW@vK7e2ISGI%K=m zrG(McAxPP6SPu24SIgM&0bji`KS?=JZ z8YVh==Q+zhmq|Ne6>BGCFuhvkCwa0+@O@_{a+u)Pxb*P3GH$qN-Mq58Ah zeMb4^6;Y<5%gSFqX;=NWENSeZk4EFLldh*JqYbECDEOeVvqGLl;@7KJTb0UzEIeI~ zt~pBMCXQTt_609O(0FNy4%)=TdS@R$9-o|U=3*8}>p|OkM_?I~4}&jUZ(?}~24T4S z>XkYZNE_sLS;5iA5a-H~=%)nBY9A;0@Kd;lz&|K)7xRc97hOajd-cliDz^-_rGiDe zc$0ydPlmPb7N!ix@UE9(BGJ*ORyR8Alg=bF*OAB}){@R4x%plrX`rhKA1E55R%L4+ zZL*@6?z5bL#K_nU3x-LU(dqoL>FZ!0mK)KTZa5 zsHdTfr|6Gp-(>PG<#_hgQF=Zx9 z_8*Rqg9A95a=yGdECTw_37;*-2tBZw@?I?NzZjo@c)7}mVk>D1kjvoj`e;UhN$G?vnbm~=_b-LD`UxHdXXy1WvaZ`N^nJ318!Zf*K^ky3`x0F z`EeGUwRr*TQJ*_X$;0v-V2HP-^0^miCDCXpZq+%@pIeC^`U!Y|hk{)P&dWn?he`yW zFsqMn-oi_42k!2N6vHpDd$hQhL*Z_I;>9{t7@4k|=Hx>-a3iI-rNl6$?F-iSj)yMX zrN7`|hr6(tnrIhxMj)7ag^cO9sgnF@%D3(EZCDb-i^>m@)Q_{9n{oL@$K6!FG4|o^=dQ&$xDb@gj|SQ0hoPHgmDfp7aU!OE$qsS zAwl^<3m0f3nf%r}KB^1JaWs6unt{IgUs$3Q#VG48OnFc$ZK2OR5^V{$5qtKa1q=sn zP7*+qgtYYx8F&H8JZK3KhM?#k!@+P>?ce+wWZpXR%WvOcq3PF*-eW(Wz|=PLe3;UE zm;%BUxA1$n?=m9CIx!<7B9zDy#@IU}>)dq_5DlD`C=brtV`6tf-k4I7< zXM&j@q(%uvTBJuMPH`ROQF31{FrYg!mXg8qT86;h>B5%N5|Cji_KTh!b=5xCDQsDUi3)?(8Aci$y4e8Ll}>oqI*VJLU< zB7IQ+O$koyx!LB6+B<1mlK8i8moA+$=bB)ZTysfq5OD+ri-9$2GO$bOLbR&1$S{~# zhQXvRY7z(WZN%drPYBG|3{1Mp<6PI=!QpmyNB1K_g?QFIL3m+XDEgfHQuN&p!}*&qg=XXs*_ zxb{KyFWDtTIGp8(X58OQ(ug8=x?E-noy@>)Q3|ahJR&JGj}>IWxJ<6fN*AX`N}b6w zAhMG4Px*xZA@pRJ`UEO8QTh=%Ji1y#UZ^#U*oC7sya-Zbqi~O^ z4UGN7bdEh1UmHt#YGu5;3a7>O1TRQ_0Va@jfhw^GfWRgcGF-CQUbv$a)rpd}-G=a$ zW3sc~!t{Fbr(Us~N3KYwa2LKsa1^(3$+K1Xpqk)DKB&k2tQU}KlG4>u43GMB*11<; zojBig^tE?NU3>lPpCb5;mpoRD}OE|-!5_p+!)vrwVVvLc1x{O$OL z&we&+&8I{KkHQ_a(M>~f#)II0qu7zv1RVOUdu#%y?gvsH=E}g8oaB=q>i462?tdNJ zpC*3$!^hJLxb=!>q#ZrKg|8!n5YOg=d;eTG-&%LzbCvz!JS8o_;K6_M%MN}P4iW!n zROHiNyMans>lcIV0t>}!wrKSZy;Pu8`3w6sPZa2{y5HYf+2E|xoS1qNJy;p;B*5+(fIU%CcT4aJ$LX zRS@Bg=s5J-LixT6AHO<+>#RYl9*U3ikw24wiRe5|DN=`?OKs>>r3%N$Ogm)r9HZ|_ zb8&cH8l+8GohkIdpZz-+RZ6Af zC(FK_in4FVY?F>9`?A43P{M)o^}5kNQmx;T0A0$Bt@wH)3pJ}cJjn7eL9vpx9k(sxIBcI^r{rpCJdW{cGZSleUG?{X5Na@-Rg>Ui)0}8Hs^YAWNsDemDCIL zM*j&HU>3QPNERM3hpPO6epWD9`dy|WQrbro=}Vhc_Tfw>W9c+;sbW2)%SG&Ayu3$Q zqF!Lq-$&?Ccp+Q~KeeK6Yrp%nSueWfx;S(x>xD^8DG=dua5kFE|ARdD_8zB$Kjf4* z5++YA$?aR`UfOuXDapP%ZU6JsOBto)TSK6sqGaI>D!=3R*oMRgiV`Jpiv!peGK^m= zEY{bra6K?it-d;;Vb|Yt;zgWMc14&LO%RQB#Nv`izNq^i_{~T74x!46qo6AdJ4z1h zx^m!!qLjO*P>RkUa<<=%dhgZbR1^vCuGj_bP)pSADp9-J{BCgEvfc^JY))FEP#fJj zfsd;kVH7QnxO9ZLWKU|V-YlpZ#e-7D1N4?XQfIK;9 zLpQt8hv>A($(Gi%y+Rxt>q63p3rSo1$f-54y#Nv$bV!KB=qVuHwq}PSP7GD9tF@f8 zlXpST9tW*!g*5_lq2@vtY1m^q~12HF8n30Aad@zgt4B>9X*=a8!3B;Z%*_gyCqKsqte7Min83YF8L!1zb>V({x_QK9cQu^RVLf=nA%%Zo9vzE&9kOx zwvuv=l|9~uNOYOKRjBET97$f}h}WH9C7}&us?`x|#qv;MWyC5IiE`%6jJ%^=-C_#} zQ_+~@_LMw??U>l5a_(2i^_cY(L&sWZr!~)|m6rpbYgRSIawE<~f;aZUx4lx%IFyWW z=<>x#fTa#~LX!=r0zs+E6QOBAFpIrLLEz_-XON~eG|qj#c=VL-Vnlyr;o6Dw zZmEvDZsBRy3!1~Qh|?$RvU|mr%KK@kg#I`c?uL$Ot9&~Y6mI?(1>q>CPDlJ5s_E$c z=@B?EgS{&R1*pIV*4iC8QEKeCT?zMgQCcNzlmN4}D!_~6d8KwOA?!HoSrD>{e(QYd zrlCX4U0Do9A=5Q02(N`c^Nh*?>2K}sY4EyySV)0)wb6lF!Ob~qchwN^HSy79GFUz& z*X3mS_kyF@fx52SYykxblv`jSQJRB4p!+t}lo|0-#A8|V(o(~rC?-=XtPw7C#tC$h zX~Y^k33Jpc-{xT&CU7lwFT5)5))JWe?ITo{9TL`UgqILRWHkr5RBZRMi=0vKDK8&M zfqi|@_O-%~6j`M4v&8c5I;niQXWfFt5K$Z#J!4Uk%x+5Mh4#2^ic33N>8+|QWd!;T2~4B-87}ha@YuHwD~w7+ZpNAfyzjGGi+K(Crm85 zQvs9dR>`=?x zTvS-?EOkv5E^ZRY$`?`vFG8VqQW)=)piu8zvE+Lotg}~t;Y0W-nVs{`z8h>LUZFM3 zSE)eY2(ncI#(q~gSY@g!^R%Z(KjWB)p^>@IpYR)CV$;DiXTl#QQ#jb{Yl}7&Wk&V5 zHX5ds?MjPla76}T43FWN!$qJUpbV@&g*Hyv2Wec_Io&KjM9Dl#1g5NpbiLk%SV*RA zRKRG#0ZlB-n7~ z3`Z+V--#O?fje>~2V(&ohy~CIMqsynfJN-;6lAL~%AC77h6rLBUAgoMqLZO=t6sqj zOySrA0SIR8RQ&CE3|*-Okf69#`nzn05?!%wollk~VlT@$GT)MccY6A#a9``lwD!6a zsIF9_Sk+<5FUVCC2C9k*8wM7$oi@@Ce!=}%hK-=8dz$p(FZf3%q2vEzW3FOk47$52 zL-A%E0SbkqLMQh^Q@2|V%51b}7r)V~CAVc^KZh96azB39tmweuiY%=bb(hD<;lirdM>(+8)Mv<}WHIIS+UYH?sZb`uloOu$b9jt_?ecO-={VFZ zqq|(=J31-g!m2yP!G`YGW?|cAxc8m2CEWiSmeXAaL*N9HKby=)V>qhW>~=8ah0<%m)he)7Mv9=Dn$xuL$^av(o zsqss?X_z#7bqy&}23u(v%dwb+Sd5H9Hn6sGu8KrC0a{ujPbjMluS_~VLt%ySyA-qM zIDutKVc4VkAyfWkr%BHY<=Qe?EE_#(B2_uK4sjx}d-OnLnnTfJF{cN>fEsi~Vufk@ z;*`|b+HfvYetw6_coT7`K)*6Cf^yo4^`u1Uv%K2ky=sJ!=p(Z-`6U6{ik?b4>%HAd zDC-G<_5mY~jW+#iu1n<@5?x0O4ouU@=;ysV> z;kG?iaJqv;Ze=qzzu>l@C@{qp5eV}rQI-E$;PvQCi2YTX=WU&Cv+ugY`*_KOrIaJ=xS7Cqr$;*qdtW_K_Oz3;09gDQd# zvbb;KbP&4Pb+VX{Sq(iiH!Cfu_6e#HOVt!l(oi7ipa^r8e-)+Op^xId!a5>eFl?y6 z!`v9%#f?v$1eAPLv3%k6DijH$S?w>e$2wVF@I+txHLh)US4<7oa_{b>iiwoictqoN zF4<@G?Y~!-;mpyCsxwqFx(ezHUG!P%42LoN*J(5|5E9G4I5k=-isn|i<|8mzdAfM@ z*v`^s_bP8nIkLu+cX58CYql3fjN%DYq~CWUb`pX4XQW6ZScKq4J)&Y1m_TKnHz+Fr zhHwu%8}IwnX}Koy#EGQkv)K?1iih=IGwwt=SLxVsm5x>1WBg}`q?;oi6D4gr_X?wd zdaRUtE6X)Nupf+d7OsM0F_TyWuY&TRB$xX)&Pgfs{zZWh>34GfXNb-Yg&J3hPij_)s%hvYv;>`;3Fcf(;Q#A7jOn{94U&kHG|k;MwG3G* z(KVk&W9sstiOjD?WtJ{P8lBF}6WipJJk|H<|BuFP7bf?KR_?ROGwj?uBr+%e&W7uk zxIaJ37wDO{Z;P2J3;HHTCd+N&USyxav-E!y+se8TybQ|{%7-VOiFs~?&1~ja8;s;t zU_qZjk{PS;b2Kx#WN%vf5S7%;N|&|s7#86&Jf=-vAI2|10e({J+U8$a!^Kh9Orb$vDA#SuYkymg0%+JRZ_aXfEk!lQ|tAA=*D=b;2hneZ}IN;Ifu5)BA*>}rJ64)il~%&;<@iAtY`W{gKTF&Z&5;lCj9lfOS< z7ZTe1Fx*K)uA?&xGSOkAkrhD;n^@PjjHniBeL=xrcll3$6L|gq_}CLr7q4Co-?}Jx z&x2tR&9?T7LJ6Y@!k?Wc$?PJjk#Y$@)|qE-cum0r@-z?Bh*#=x6)liA!# zH@s>V;-9)`r#UEn_cidXEhSFKcI3uXo7K+8*9Oek0Aw#_96h+UD%t-ZR( zl)N@ESR6}1eBab&f)CclM0=z*r1~{38-OFDIw&iMDfdnegg(;O;WW8dX8Jc(#-Ioq zD|*EZRhbA91-9iaO|tDZ`6Jfmm8+5^E=$*#)GPaJBmKD*s;#&fsB-yZE5*TS+tbV1 zb}rmN({owgSUa;u(a_9Jsm@w+b(D9`Chm_Q4DA#1CFsCvub>MJx#4ud)!x%P)u@ZaAeAGTY zKR)@L6a??uVx6lm_MTT-0bT`}|x5-iR$2t!lg*adR zmRD8+UU3w_!D-+jHO6`_5v^eJ&r|jfb zBC~vUyu3S{)Rkn92s^Kx@5gHvHMSNtHmVnv15(buGCd%90;gAIheL-fm=~k;6wBA{LZto#d9JX_UxyPON?#EM>g!)0SwA(WtcDcvsLhCU9gug_>0|} zUy9=_ez_`!Sj#t574l3$?@)pC?9W+f#uWOT)}-#C>$Hg4sjd~(Gsm^(E0+E_H?qlIZl z)~jw_y(-P~DMVwaR*Oe7tsL?s8A>8{=vK+Z69p?diM67589q7_#52>8>7_F?9S>$r zNuphT_V(1@2f`Ofxd3a2-nluS_ypgYXYg<#C75WG)Z8GDi9Z6g$ z`7n=R0#r=p7bm0%Obi&m9d#0T!3#u*JTZlvj{QJ1%nde`7g(X^_AV`j+~tL7%QWdZ zebyW=eyKheP}606gfp;xbn ztE-=WSvk#eb8kZHleW$;Yug+ZbSq^aj*p^KN&s{U?4#9%AqcOOCyv7Z?qQG{Kw6qL zT`8$5YEhNGfyJTcKJl6|(2I+}uG)r_NSMT?A00L-d^%GFznyvHS@Bo3Dk(Of@>!~2 zf0Q0n`y_1fUer5nAD#AFA3s(du3JkFIrq3q9}17JD%~ioh#e_>QKc(J=>Y!}mDEcZcS4! z^oO}=8g7^-lCG=G2+G|s8@(5p4eI&xrb26fpf@TE)K-NOkTl&>qHHfTJLWE6 z0}8bTFt47S8akNc(&pe(f6Y88&kEEW+sU>?4o`EnDssZWeXu7_dDU5 zf=I7%P?Gp^C-^n&wtA=ikH<&v(4^juKEX+H+Us|scK5JRcFau z`mutmdq=I0z4ynb9@9GxQ*F-2sOlFPFZmQ7&1A1pIRca;9vUr4H*Mx@r`mx?)wQSy z2#9~ZpFdbcWW3m8;j8|2G*|ER%6P$A#}~1uS3pmiqEWS`R4`FPa({kvP-M5@Acyo*L{6v`0SL*|AjSp*p8Gh=T8-VZ(%~+{~F>j4qd69>! zSXeFS_&4ZsaVA_{)J}Jc1C+AxP|Cu2;%>z;I#t8i+PsNV(WY7O+dSml^st@pVO!LPRMmHZqQdg z9DfoY*;!vn5qZO*)^qgt5ZnD7ue#kY%q~Ai)DSp9ks9mjX~~%>Il|p0jxgmeM<{kD z)J#B->N`w66|i%`RNn((Y;9z!-@YMJeb1l5Ro`35px$%za;?Btl^tahKP%-{m6+8# z_*=dVBZ{y94lW$5Sx9au=Q`;b@$kks$YlD%~8vM+*HW=Ca*Ywe9b2)7k$n2-5T`w>}EB^f`^dH>M zJ>)<4FhWP^rTNhP$b9I2)YwUz1&PXyoZKG;%t*)9^r|@=LN|V!INkVdlIzBAlgu0r zt!@lQdJb1Ghxb#bHTaor?S5J~hbwCiSLJhu_zU?reS>JEX%WoFIQ}k4{=9Vb{YqdzY_x=5O8DrhI zXn!ARzqmOyvn{mL3kn0Sw?o?nz4vr*d4=(s50#aZSazikpL`h*FWa;z)J^;BbQZKcGgKUCi0FT-_3akP8Q_ zVFLqt;AP!?uug*qZn2;-QG>fT#@5)z^M;6Mz};~{g^Ni4!m4s1s~A>stx3+*xVCCs ziyCROm5$JK zOe?fWV96*;et{n!MzdL2+7Hb68|JH&;TGK~ozeOCBozNnq&K-7?DG7I-QhuEW!Tk7 zO(F(+C821ff2m5febPQXxlk(7*M7YB%g#;%O+gkG%|-au@=U!596()32a+g7872sg zehP4<$N|>Hln@%B%XUO_&VEVwrxu}u_*?tT`J{$46BBVWHO@f&#T?3(QeH=(RFz`{ zCqWK>E4QcNavZbh^{!f^4p{@qxlx4WwqqzxPGxV_;UMNc7;Du+xu+cHf&kx`hrWO( z`uCd?{x6sdz1zwxf8-e$GX;r~_tlwG_c1AW@-)ZBllD>jT)Opc_GrxYes-^RKW@(m zwx`VMX+?0lQRI&Io*&h@z`#SBD{e$YL(6z`%rpLeLRDH+F{m#^DOhZvEa7AsSwLyS z)F8IS$bg0lC@r!%3l&54ngB|(HfB%pkL6SNhhzVG8m|zMzL(1@jP}u_DZFY}7U4H&OvJ>}>>~y5Kj5M4Yik(Y`t&b+ z7c}9mR`=j7Km`Y6k(WzM5Q$@gkZebKtSNMfDnrp*$enw8XH{xP_$_YBA#UHvh*i^O zE`uwG1hd;`Hc#ML>zfbDJ}X7GBz%jiv#KjTnta)oP-rsrvc{$6#{>n?5wN!l(s~qD z^z>KP#{?Jp81~wUd3@PIb6o%gmbvAUJt(Ap+X6MWMht{ro2+?^FmYH*&a9F$9Zyc=9R-WvmZH;8H@Y zdQ1zv8|@qrt?Pd+fD>pSm?BIgQC{U9Ae2P|98;c9f-?oI+SuAjD`&c@P;En%R6Fk@ z7?+sH{Rbn=NY}Nk^?3pWkz0wS2lE8S-Fy<{1bowU0@wNpQ4`rQ_>WTdi%=L?>u>+K z9)h6&FQu@kK3PkV6Z9RsFtX4Aa>>PrKLvP2sTgi!v@3>w#;F864w5RsYnqm%sy5l%h&Sq4&;jno;8B$@ri3{I)pOn%hY z%+ux(*|3~-Vf@7o3eL+Sw(^XiAR`XiupN$b`sO&f>a$xuts*&aF$L{EsJD-s0u1Z{ zjb zb=7I+HLUyuv6Jxm$&tYC(BaKMv5Ga$z(=7jBjYjZ(M6XGqw5%wdkT#vqik3ZT)1)> zvhCpSBB(_j3|_V;(+tG_%?)ZY8&5d#uCbwUh6xrj$UnF5`n(eZh}H}svIY>@VQkUl z(270Eba`{wn~h8D#)77$I7Rkxs~}Ni8Ke0l5g5-Xp#$`ubPQKtpiRDz zDJenClOVmZ3cB$}R%sOF;eIA02dj9toIzC=OoZsmDo;-9mi&s{Rj>UXTcW>y682ae zE>oRq!Ra9};GxQ8KU7x=+3%<>xu50wpY60xYG%(+gqmOxP=~25#!FN}=?8Zr^;24q zdZv8N(Cvcb+R|7L+nv@~7uWpY_x5T3Q~QJz_#avy!^_JZ_9$;jjh*z0UG6%+uNW-+ z05;-*?ZFy8dfOh{ZwL4H{V)7MfI;4174P5(?&HFzcADyI#ycCkyz)`QZNX8P+q! zm9VB9c2!}Nxhr@)7Zyh)+orOPm$35&RvX%RD0-PT#eSB0xElPAPvTjPBvI7UKf-d< z=D9#}7gr(s9(QUjb0gIJRbm?OjH5K1@wmu(C2R|`WzAKp|4i%jMaONr0Qu`q$^sUp)KPvW6Ss#y;?{>Qui$?R`DD6$>fH-P<8X_iELRH$TXmyQ!B>D)wE-t z$(F1_nYPRuYV8&docU+CO6i~<-DvJri2lIIumUq3`geS^WLcFkV# z;|72Gq4m$g@`aBZya5MKCwg~wLNxJv`=XCp@O()cd452W)>vYw%}+7}M~(HdHLuK@ zykt^J2(xOJaSdh(?ie_%fv>L~C?*)1l9c7Vb9~g?SE!uB#^wnnbK`tq!wGF*(Z#5iLk{W6Tm4|w|G-&>isLX74|`NK@7*dw}z!3 z23ao9EdP}69f6ZD&Pm zJIk)^?CEPe(`!2`AZ&P6u%UBH|Lxlr-@N=Yz5Lp`nA`E{h3Jtkmg|>#v$l8gaH!Zj z)uikr+?-l)eJogu0X)tx20nFH1D`x~Ik1jg57hx~n?mq?`Iud2IrQ;? z1W}W8mrWFzJFqkFm2^`GnQJ91cA54Eik;2e;Lvv5!-t1G&v<9#4tY4?cYoR2{RK|$ zpZ>nHvxonIQ(5|?%X=PqfiVoDqT?1WMa|g)x{eVZQlJDzQFa%kz3VX>1w;+*!>3uSr zTS-rrIk%CebksKY*q#-WP8kAhOhb3Op-aDo+;?sb8&yB-xHTNa{SMXvuJ~cF zG7o>*eWOz!I%jLRN{hWtG-^(v!wJ_8Ct;G705+D?51+cD(=zv;^@_YqKYv|UO1UxV z(kQj+G)S%M0)PpnGgqEghS_FvCn3JX<81M{k<_i!gs)z0A?So4;n;o?Fv2ivY&qpq zHndxjSP9uC@NuR-KEg~tP8T%vM7|H=Rjw1_amtpVAG;{Nas4y@$700iltg)#bqh*h z8``}Fwl!OYiSrQl@P=Bflc_=oXY$kRB3!+C)nRubaI~#1hM>BIU%fJAr#!s-_U%Gm zAXK95Mnus$jiJeq)MHA0-gvYdYq)JQ*>J;r;yM|R8;>IT24hcwvjSItXmo)!t-gIb z513gE)5Y9sn8DL(^!RuPt-X5H-CWixrAznC}7OhN~@mM}X3^cl`D zYu-}$KTLsS%LLgpVVY@dk{levn6-t+G6W+hwVBz zrq-?hAo=<=k-3TS~9KedZ`J`apd1ieq|-E{8y;| zLI-Vs*MOTkwL&d4mog1WPQhROLzpw}%Dhdpj^hSrm_^OvgZ0&`Y$YRvF}!Lk zPXHqV0QX3b~80AEVC?{x$LF*ivsRbQdY0y^r{}JO2 zQo{0g7Rs0#Y{y7 zhm5YG8A}Yjwh1s1o`cGDC|iR*pQ0+onixN@ot3lXu~pcRnQ+xZ($8f3@$WmklF{WR zC{B@?AMrns5qHLe8-t&>qqKDy$R~65`N_BNx8vx@ShG9b*1LceVnpe}6scWU(8xHt zu!6`cDKEt`U0j9X<%*k=QWf2A_y2Jgf!r#}qC_lkC?_K8xX?8!+0po0*mD&Vz*geQ zKuP^hzQ>gvHXU&PVrc(w-+IdAP!IrwpL-I@r5$>M4pqhRKm}nyJGs!F%@~(zuy$tC zq0A19kzM&(5xRT}_u|29o|7AFaim-olJ#cYBwWbisgvkyCR^C4wb9`36%7|p3m&sKlb{vOnLe??L8^$gqz>S@Y#5Xl*3{$ufj%Lxs!lcg0 zhHE}6{e?hsD`-M+Y`68a(#*)f7}=BjFbpEx`tAwAwZx|XnA*L`WFa>43LCN>Te2=& zu@1XncLdFFE`V61Q|Wo=KQohoC;U#gDFLQOfPR$oc&|DYH42KB3jTEGM$b(9yzm;* zHzE!}KssM91v!_VVlk_!zd-S2s`X*$_w3etxz>B;+HLSktd@tSWsOFzT8FE2*KWO= zYrX5<$qfRG^@XMV1rhhJKClY?j{Sj79$m^&JQO6|gug}m^3c<5Uxfah-S%A`3rFh( z4D^K6?nP6ovt^50yCgp3eD>weysX#j6?xHImd=mH3N zQ!x6HT~6m$>~v0$^a@&6oGMEod-9pdi>9z0gfphdYcAA(Lc=neosCe(FcrSLFFGa( zYF&(E-;zgFZeXw$y9Cx$!&MR3WE^#lxnTiM5SN|OvqE4qaXfl*wTtdzkySln3m&Q| z{%Bvq{6s{hwm~Q&Xx0VZMs7Ju^Dt03K(`94P7P+iCU0}-X915H>7{^j30z8dsOBM_ z5g&-U-`Ol|`WE@1Fixo|+FZ@Ww{M7_n3UZx`*v6Xmh5vg zzL3;sgE3uD^^zRolHk)#2$i27=3ID=h-BNQiB7(WV!%qfiC(LF+V8fH-krV|L&64X zvs+Y_)IMAINLE3hK5Sy<1$snN#2 z7sDZ(9}ghuUeCk(FW0kQ;MPlEV<;l;<3#xIx1f5wlB2UibSgpId;Npsv!hcMeUhVj zeaF1n?EokfrmquTqiy7RUZ0Ie*WBOM#qeu;h}7ATP6pEH>jp&-+VeQK2|65-|JP!Q zuB*V#YxkeO#KSjr9Y=RDci8*2X79JpV()N)UD=J{pIxXLFbMe|5x^MJb#S`(gT;hgfnDVcmj3#l8=k76nn#lC&Dz1oBWr5Eh-ot3EaNocLD3dHaF<8 z3lKhFI|S@Kr=Zsx(ng^i)|Ef}cOblJ9@Q&9c#1A>?!m)uVG{zo#V}F$3N%a_*TzI? z!8lV(gGN1FxxqOz$86)4r_z`3J!cpMq&W@Hq>PA!ugjOs|^?Cm&c@U2J4*RKS8!N9J<^?GRy%hz2ibq%)~;_Vi551&8#+v<0;k} z%^F%N@NVbx`^Mk?1_id!sLt`iwhh2GoJ#{`?* zLml_*egL!i2mky^_NhOLL;2^n3F$^CS8E_YV&~qW@SJ=_VONa9`%x9&Ka0AD>__j% zAUFKai_th%qo#6Bk)z|oHky-F35+U@7o=qHoPvZGfyeD&LQA8R=U(oMaB;LI+72WE zlKz?P?lAAK9^UMsLI3YTzRPDOB1QU%pUZ_3WsvAca7p-2M<|ft^mPnqi7ipI_7zS{ zJpp#kx{M4hV^iTJ$_7Y>0~hCYHB}i?MW`g!SFv#(B%Gtt6|AY~ zmXy_X{Nu(!x+P_Ga_LZy*H(8+rb5Q-*_cpP18&vgvZ=y6({5=r0=H^mnN+B@HdZbx zmZq!^2k`jekY6V#lg28(8-yvL-oZfNd4hrvx}z)V@IcTaxR@TF%z$>6{E8iuLY^?E z{+Ouat!jI4E@oZ_PwEUW)s2kL@Ck550~9sf`moJ0*m@VuM(nRbHaa4{iytTsueUrFpaoem~q274e* zqDtEwp_96lxctBQm-Vf^tH8f(ZT~-m?f<+A{&vH>A9ia$ya7Q|mtyXFR{LSse*M2^ zk8fCtZxC?^u2o+_1S#l}N@nt5W_RZ8F5i8#H)%}%y32nu)xHkyTQ{)4pGLC z7Aee(NQscir!9PetY-+$Bpty#C%1M})wc@D+77als*I+5j6Edlhe|q+s!j!>sf^SU zY55%!T@oOVENq?#>m&#ilP`9G!DKLg_)k+{2GXxnU_KasF|SAQn0pOTax})koQ7+i z^afu)V+LX`HM2TTq~R3zO*H3U%}PAtf8eUonAGK84DpGi)5-)rX)tF3!;5D_MleEA z_+-R~R-beagc=?&gbWoe>L8M}&Koy3H&D!&<) zep7qG?d9nQR))L`CF}Ya_4ix7cK__88+v%X^_t>3;Pg+JZ0z2kj{2nAYeK1pY0z4jU~kbdcx1dMk)o}Hcf&HkD3YmYVf8$E(rM~_tA?!+$nKa?HV zVzTtH+3nsJKCJCnpm=kVj+35dm!^U5i4u91tSW$Y&#e;eme{0dm0p7J+nXlxCgQ2+ z_+&CLwh)WF>8WBtBUOY{ZSRK|7p=qOg6T0@x&AW23Bn=TS^Vfn=~)pNuA@+%GJ<&d z7JM$HPRbj0tPg(&cyc7S>BbPS4XlEVd$RVm$W><9yi;{*xYfd9&cIBvs854cd*Pw! zkaXcnpo1G&;$}hw2BJP+Diw{5o+qviPc!=+r9k27=}uyjRuI0r+yue7{@m1l{rK^t z#y~)0kIp`5Bks|8;FsYX!l14{Gqv;bY=wyk<le5@*^k}sOhSv!G|Kw6Kf`YBt-xnPdQtXfr}Unkfn4BQSrmN z1-cy>1J%CWa$su|AagT){UW}ZUZmK$RHQW=*yfS^YB4dTe>}N3bS?}c?Io*T9Np=H zqT1nkO@rCc+ts${4xcbaNGb3V&fYPQCCG)no8EHhE_jw6U1HERNO6EA6bx13!ct!j z=lXh-&EyE|ARR z6WA~pj`Mq^T+Ubnp!)#c0%uYkAEO2;6zdldY6`=U8F;a76tVt5Rsos>snRZ^>Rm-&Lj+1F71P@RfRkkpyd=pR z4MW=PhFF%$n`|N3h&iJ2+t9t8j3DTI_C54yqaRpVs8P`!vLRk%DV%k!}?$tuJ_+TaID655&NBb zC>;;<0qQ0tVghQ|h0u2vQ?3Ieb_ElZpqoi54m5FVVN9;ccaS?hofD5yrn$?V@aV>8 zY2(y77SXQoc;918szH29sMg?H61y6@?h|N+PDnN@9vh#Ja1LmswUXxHh{l>($J%-? z;`3!FizoSd!am?r2@RE{f_f+uu&PCR^vh6gV5r9%7;qB=7a4cx7O^xjbmROtrpD?a z4JbO|1-dK*LW80>lQlMqKfxvxd0dI3!LbfwzG@);bpW$2qbW06ZBlvQ)Okr08y0UL#?`z%?=vDPk_r+*2DpnQny{d>s+<1`|kHI_n+(FAaM=$ zV*Lz*3^3t) zqYLC?j@Jef6jh9vUh?)y0GKh7sx~$G+uMdl^;KR51?;O0y)rN@KC;rJR1TTm&h#_j zcq?8Fgy^S^`@HscPtrfAyAE42)ZZ-g(l8gkzHh{yh@FZpBhA;{!r<{*Wa}hjkUPl0 zSAZuTk6oUX#Aj*z!03X@U^hHJrpcSx>ahnbU)!hu1LNJ03H;$JqBWLH5PXM(5q|+5s?*ge#2P+-+{^)Lnu)J7!Ca~L7Y7aX72FS z6nmW&P`10V(_^@mWNtP&!*=zBJ@G|V4;H(o9GT@k*KzquW79=I1w?S02Vl1yG342A z2blw1yEb~+fS`hoO}B1O;0{oyS;cRT%di3ztK@@;8-=P$Tl*y<*WkZVZUof zPu@7-$a}FLPv`NV6KDcYu3O;VL%k>Qd5?xcjB=*&wuZHU=RE<>BZ+pV%2tA2)>W|v zyf9n^Os7wiYTG?yjn_A!)7{93J7l9@D=DYkU)hz8G*H51@5 zOA(zUPOpLa43uD{usYy~3XQ}OZA+1=0W>0M_frfR3n>MXQflJSv76}B{)3&NX)2t? z4N@DEXM3JGj%rgoE0>qgs8u3zsYjgM&)U_mFvYz8HXJ8Dms;gLUT#qPm$TYZd{U=P&85Bk=XU!3R97msi`4{9Y J5S3%@RsiIFweN[w]})}}}return Object.freeze(Object.defineProperty(ct,Symbol.toStringTag,{value:"Module"}))}function yt(ct){throw new Error('Could not dynamically require "'+ct+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var zt={exports:{}};/*! - -JSZip v3.10.1 - A JavaScript class for generating and reading zip files - - -(c) 2009-2016 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/main/LICENSE -*/(function(ct,wt){(function(_){ct.exports=_()})(function(){return function _(N,w,u){function o(g,y){if(!w[g]){if(!N[g]){var p=typeof yt=="function"&&yt;if(!y&&p)return p(g,!0);if(n)return n(g,!0);var b=new Error("Cannot find module '"+g+"'");throw b.code="MODULE_NOT_FOUND",b}var i=w[g]={exports:{}};N[g][0].call(i.exports,function(d){var r=N[g][1][d];return o(r||d)},i,i.exports,_,N,w,u)}return w[g].exports}for(var n=typeof yt=="function"&&yt,h=0;h>2,i=(3&g)<<4|y>>4,d=1>6:64,r=2>4,y=(15&b)<<4|(i=n.indexOf(h.charAt(r++)))>>2,p=(3&i)<<6|(d=n.indexOf(h.charAt(r++))),c[l++]=g,i!==64&&(c[l++]=y),d!==64&&(c[l++]=p);return c}},{"./support":30,"./utils":32}],2:[function(_,N,w){var u=_("./external"),o=_("./stream/DataWorker"),n=_("./stream/Crc32Probe"),h=_("./stream/DataLengthProbe");function g(y,p,b,i,d){this.compressedSize=y,this.uncompressedSize=p,this.crc32=b,this.compression=i,this.compressedContent=d}g.prototype={getContentWorker:function(){var y=new o(u.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new h("data_length")),p=this;return y.on("end",function(){if(this.streamInfo.data_length!==p.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),y},getCompressedWorker:function(){return new o(u.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},g.createWorkerFrom=function(y,p,b){return y.pipe(new n).pipe(new h("uncompressedSize")).pipe(p.compressWorker(b)).pipe(new h("compressedSize")).withStreamInfo("compression",p)},N.exports=g},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(_,N,w){var u=_("./stream/GenericWorker");w.STORE={magic:"\0\0",compressWorker:function(){return new u("STORE compression")},uncompressWorker:function(){return new u("STORE decompression")}},w.DEFLATE=_("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(_,N,w){var u=_("./utils"),o=function(){for(var n,h=[],g=0;g<256;g++){n=g;for(var y=0;y<8;y++)n=1&n?3988292384^n>>>1:n>>>1;h[g]=n}return h}();N.exports=function(n,h){return n!==void 0&&n.length?u.getTypeOf(n)!=="string"?function(g,y,p,b){var i=o,d=b+p;g^=-1;for(var r=b;r>>8^i[255&(g^y[r])];return-1^g}(0|h,n,n.length,0):function(g,y,p,b){var i=o,d=b+p;g^=-1;for(var r=b;r>>8^i[255&(g^y.charCodeAt(r))];return-1^g}(0|h,n,n.length,0):0}},{"./utils":32}],5:[function(_,N,w){w.base64=!1,w.binary=!1,w.dir=!1,w.createFolders=!0,w.date=null,w.compression=null,w.compressionOptions=null,w.comment=null,w.unixPermissions=null,w.dosPermissions=null},{}],6:[function(_,N,w){var u=null;u=typeof Promise<"u"?Promise:_("lie"),N.exports={Promise:u}},{lie:37}],7:[function(_,N,w){var u=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",o=_("pako"),n=_("./utils"),h=_("./stream/GenericWorker"),g=u?"uint8array":"array";function y(p,b){h.call(this,"FlateWorker/"+p),this._pako=null,this._pakoAction=p,this._pakoOptions=b,this.meta={}}w.magic="\b\0",n.inherits(y,h),y.prototype.processChunk=function(p){this.meta=p.meta,this._pako===null&&this._createPako(),this._pako.push(n.transformTo(g,p.data),!1)},y.prototype.flush=function(){h.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},y.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},y.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var p=this;this._pako.onData=function(b){p.push({data:b,meta:p.meta})}},w.compressWorker=function(p){return new y("Deflate",p)},w.uncompressWorker=function(){return new y("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(_,N,w){function u(i,d){var r,l="";for(r=0;r>>=8;return l}function o(i,d,r,l,a,c){var v,S,x=i.file,D=i.compression,O=c!==g.utf8encode,j=n.transformTo("string",c(x.name)),I=n.transformTo("string",g.utf8encode(x.name)),W=x.comment,V=n.transformTo("string",c(W)),m=n.transformTo("string",g.utf8encode(W)),B=I.length!==x.name.length,e=m.length!==W.length,T="",J="",U="",$=x.dir,L=x.date,q={crc32:0,compressedSize:0,uncompressedSize:0};d&&!r||(q.crc32=i.crc32,q.compressedSize=i.compressedSize,q.uncompressedSize=i.uncompressedSize);var E=0;d&&(E|=8),O||!B&&!e||(E|=2048);var C=0,X=0;$&&(C|=16),a==="UNIX"?(X=798,C|=function(H,nt){var ot=H;return H||(ot=nt?16893:33204),(65535&ot)<<16}(x.unixPermissions,$)):(X=20,C|=function(H){return 63&(H||0)}(x.dosPermissions)),v=L.getUTCHours(),v<<=6,v|=L.getUTCMinutes(),v<<=5,v|=L.getUTCSeconds()/2,S=L.getUTCFullYear()-1980,S<<=4,S|=L.getUTCMonth()+1,S<<=5,S|=L.getUTCDate(),B&&(J=u(1,1)+u(y(j),4)+I,T+="up"+u(J.length,2)+J),e&&(U=u(1,1)+u(y(V),4)+m,T+="uc"+u(U.length,2)+U);var G="";return G+=` -\0`,G+=u(E,2),G+=D.magic,G+=u(v,2),G+=u(S,2),G+=u(q.crc32,4),G+=u(q.compressedSize,4),G+=u(q.uncompressedSize,4),G+=u(j.length,2),G+=u(T.length,2),{fileRecord:p.LOCAL_FILE_HEADER+G+j+T,dirRecord:p.CENTRAL_FILE_HEADER+u(X,2)+G+u(V.length,2)+"\0\0\0\0"+u(C,4)+u(l,4)+j+T+V}}var n=_("../utils"),h=_("../stream/GenericWorker"),g=_("../utf8"),y=_("../crc32"),p=_("../signature");function b(i,d,r,l){h.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=d,this.zipPlatform=r,this.encodeFileName=l,this.streamFiles=i,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}n.inherits(b,h),b.prototype.push=function(i){var d=i.meta.percent||0,r=this.entriesCount,l=this._sources.length;this.accumulate?this.contentBuffer.push(i):(this.bytesWritten+=i.data.length,h.prototype.push.call(this,{data:i.data,meta:{currentFile:this.currentFile,percent:r?(d+100*(r-l-1))/r:100}}))},b.prototype.openedSource=function(i){this.currentSourceOffset=this.bytesWritten,this.currentFile=i.file.name;var d=this.streamFiles&&!i.file.dir;if(d){var r=o(i,d,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},b.prototype.closedSource=function(i){this.accumulate=!1;var d=this.streamFiles&&!i.file.dir,r=o(i,d,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),d)this.push({data:function(l){return p.DATA_DESCRIPTOR+u(l.crc32,4)+u(l.compressedSize,4)+u(l.uncompressedSize,4)}(i),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},b.prototype.flush=function(){for(var i=this.bytesWritten,d=0;d=this.index;h--)g=(g<<8)+this.byteAt(h);return this.index+=n,g},readString:function(n){return u.transformTo("string",this.readData(n))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var n=this.readInt(4);return new Date(Date.UTC(1980+(n>>25&127),(n>>21&15)-1,n>>16&31,n>>11&31,n>>5&63,(31&n)<<1))}},N.exports=o},{"../utils":32}],19:[function(_,N,w){var u=_("./Uint8ArrayReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.readData=function(n){this.checkOffset(n);var h=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(_,N,w){var u=_("./DataReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.byteAt=function(n){return this.data.charCodeAt(this.zero+n)},o.prototype.lastIndexOfSignature=function(n){return this.data.lastIndexOf(n)-this.zero},o.prototype.readAndCheckSignature=function(n){return n===this.readData(4)},o.prototype.readData=function(n){this.checkOffset(n);var h=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./DataReader":18}],21:[function(_,N,w){var u=_("./ArrayReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.readData=function(n){if(this.checkOffset(n),n===0)return new Uint8Array(0);var h=this.data.subarray(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(_,N,w){var u=_("../utils"),o=_("../support"),n=_("./ArrayReader"),h=_("./StringReader"),g=_("./NodeBufferReader"),y=_("./Uint8ArrayReader");N.exports=function(p){var b=u.getTypeOf(p);return u.checkSupport(b),b!=="string"||o.uint8array?b==="nodebuffer"?new g(p):o.uint8array?new y(u.transformTo("uint8array",p)):new n(u.transformTo("array",p)):new h(p)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(_,N,w){w.LOCAL_FILE_HEADER="PK",w.CENTRAL_FILE_HEADER="PK",w.CENTRAL_DIRECTORY_END="PK",w.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",w.ZIP64_CENTRAL_DIRECTORY_END="PK",w.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(_,N,w){var u=_("./GenericWorker"),o=_("../utils");function n(h){u.call(this,"ConvertWorker to "+h),this.destType=h}o.inherits(n,u),n.prototype.processChunk=function(h){this.push({data:o.transformTo(this.destType,h.data),meta:h.meta})},N.exports=n},{"../utils":32,"./GenericWorker":28}],25:[function(_,N,w){var u=_("./GenericWorker"),o=_("../crc32");function n(){u.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}_("../utils").inherits(n,u),n.prototype.processChunk=function(h){this.streamInfo.crc32=o(h.data,this.streamInfo.crc32||0),this.push(h)},N.exports=n},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(_,N,w){var u=_("../utils"),o=_("./GenericWorker");function n(h){o.call(this,"DataLengthProbe for "+h),this.propName=h,this.withStreamInfo(h,0)}u.inherits(n,o),n.prototype.processChunk=function(h){if(h){var g=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=g+h.data.length}o.prototype.processChunk.call(this,h)},N.exports=n},{"../utils":32,"./GenericWorker":28}],27:[function(_,N,w){var u=_("../utils"),o=_("./GenericWorker");function n(h){o.call(this,"DataWorker");var g=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,h.then(function(y){g.dataIsReady=!0,g.data=y,g.max=y&&y.length||0,g.type=u.getTypeOf(y),g.isPaused||g._tickAndRepeat()},function(y){g.error(y)})}u.inherits(n,o),n.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},n.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,u.delay(this._tickAndRepeat,[],this)),!0)},n.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(u.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},n.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var h=null,g=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":h=this.data.substring(this.index,g);break;case"uint8array":h=this.data.subarray(this.index,g);break;case"array":case"nodebuffer":h=this.data.slice(this.index,g)}return this.index=g,this.push({data:h,meta:{percent:this.max?this.index/this.max*100:0}})},N.exports=n},{"../utils":32,"./GenericWorker":28}],28:[function(_,N,w){function u(o){this.name=o||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}u.prototype={push:function(o){this.emit("data",o)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(o){this.emit("error",o)}return!0},error:function(o){return!this.isFinished&&(this.isPaused?this.generatedError=o:(this.isFinished=!0,this.emit("error",o),this.previous&&this.previous.error(o),this.cleanUp()),!0)},on:function(o,n){return this._listeners[o].push(n),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(o,n){if(this._listeners[o])for(var h=0;h "+o:o}},N.exports=u},{}],29:[function(_,N,w){var u=_("../utils"),o=_("./ConvertWorker"),n=_("./GenericWorker"),h=_("../base64"),g=_("../support"),y=_("../external"),p=null;if(g.nodestream)try{p=_("../nodejs/NodejsStreamOutputAdapter")}catch{}function b(d,r){return new y.Promise(function(l,a){var c=[],v=d._internalType,S=d._outputType,x=d._mimeType;d.on("data",function(D,O){c.push(D),r&&r(O)}).on("error",function(D){c=[],a(D)}).on("end",function(){try{var D=function(O,j,I){switch(O){case"blob":return u.newBlob(u.transformTo("arraybuffer",j),I);case"base64":return h.encode(j);default:return u.transformTo(O,j)}}(S,function(O,j){var I,W=0,V=null,m=0;for(I=0;I"u")w.blob=!1;else{var u=new ArrayBuffer(0);try{w.blob=new Blob([u],{type:"application/zip"}).size===0}catch{try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(u),w.blob=o.getBlob("application/zip").size===0}catch{w.blob=!1}}}try{w.nodestream=!!_("readable-stream").Readable}catch{w.nodestream=!1}},{"readable-stream":16}],31:[function(_,N,w){for(var u=_("./utils"),o=_("./support"),n=_("./nodejsUtils"),h=_("./stream/GenericWorker"),g=new Array(256),y=0;y<256;y++)g[y]=252<=y?6:248<=y?5:240<=y?4:224<=y?3:192<=y?2:1;g[254]=g[254]=1;function p(){h.call(this,"utf-8 decode"),this.leftOver=null}function b(){h.call(this,"utf-8 encode")}w.utf8encode=function(i){return o.nodebuffer?n.newBufferFrom(i,"utf-8"):function(d){var r,l,a,c,v,S=d.length,x=0;for(c=0;c>>6:(l<65536?r[v++]=224|l>>>12:(r[v++]=240|l>>>18,r[v++]=128|l>>>12&63),r[v++]=128|l>>>6&63),r[v++]=128|63&l);return r}(i)},w.utf8decode=function(i){return o.nodebuffer?u.transformTo("nodebuffer",i).toString("utf-8"):function(d){var r,l,a,c,v=d.length,S=new Array(2*v);for(r=l=0;r>10&1023,S[l++]=56320|1023&a)}return S.length!==l&&(S.subarray?S=S.subarray(0,l):S.length=l),u.applyFromCharCode(S)}(i=u.transformTo(o.uint8array?"uint8array":"array",i))},u.inherits(p,h),p.prototype.processChunk=function(i){var d=u.transformTo(o.uint8array?"uint8array":"array",i.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var r=d;(d=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),d.set(r,this.leftOver.length)}else d=this.leftOver.concat(d);this.leftOver=null}var l=function(c,v){var S;for((v=v||c.length)>c.length&&(v=c.length),S=v-1;0<=S&&(192&c[S])==128;)S--;return S<0||S===0?v:S+g[c[S]]>v?S:v}(d),a=d;l!==d.length&&(o.uint8array?(a=d.subarray(0,l),this.leftOver=d.subarray(l,d.length)):(a=d.slice(0,l),this.leftOver=d.slice(l,d.length))),this.push({data:w.utf8decode(a),meta:i.meta})},p.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:w.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},w.Utf8DecodeWorker=p,u.inherits(b,h),b.prototype.processChunk=function(i){this.push({data:w.utf8encode(i.data),meta:i.meta})},w.Utf8EncodeWorker=b},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(_,N,w){var u=_("./support"),o=_("./base64"),n=_("./nodejsUtils"),h=_("./external");function g(r){return r}function y(r,l){for(var a=0;a>8;this.dir=!!(16&this.externalFileAttributes),i==0&&(this.dosPermissions=63&this.externalFileAttributes),i==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var i=u(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=i.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=i.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=i.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=i.readInt(4))}},readExtraFields:function(i){var d,r,l,a=i.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});i.index+4>>6:(i<65536?b[l++]=224|i>>>12:(b[l++]=240|i>>>18,b[l++]=128|i>>>12&63),b[l++]=128|i>>>6&63),b[l++]=128|63&i);return b},w.buf2binstring=function(p){return y(p,p.length)},w.binstring2buf=function(p){for(var b=new u.Buf8(p.length),i=0,d=b.length;i>10&1023,c[d++]=56320|1023&r)}return y(c,d)},w.utf8border=function(p,b){var i;for((b=b||p.length)>p.length&&(b=p.length),i=b-1;0<=i&&(192&p[i])==128;)i--;return i<0||i===0?b:i+h[p[i]]>b?i:b}},{"./common":41}],43:[function(_,N,w){N.exports=function(u,o,n,h){for(var g=65535&u|0,y=u>>>16&65535|0,p=0;n!==0;){for(n-=p=2e3>>1:o>>>1;n[h]=o}return n}();N.exports=function(o,n,h,g){var y=u,p=g+h;o^=-1;for(var b=g;b>>8^y[255&(o^n[b])];return-1^o}},{}],46:[function(_,N,w){var u,o=_("../utils/common"),n=_("./trees"),h=_("./adler32"),g=_("./crc32"),y=_("./messages"),p=0,b=4,i=0,d=-2,r=-1,l=4,a=2,c=8,v=9,S=286,x=30,D=19,O=2*S+1,j=15,I=3,W=258,V=W+I+1,m=42,B=113,e=1,T=2,J=3,U=4;function $(t,R){return t.msg=y[R],R}function L(t){return(t<<1)-(4t.avail_out&&(A=t.avail_out),A!==0&&(o.arraySet(t.output,R.pending_buf,R.pending_out,A,t.next_out),t.next_out+=A,R.pending_out+=A,t.total_out+=A,t.avail_out-=A,R.pending-=A,R.pending===0&&(R.pending_out=0))}function C(t,R){n._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,R),t.block_start=t.strstart,E(t.strm)}function X(t,R){t.pending_buf[t.pending++]=R}function G(t,R){t.pending_buf[t.pending++]=R>>>8&255,t.pending_buf[t.pending++]=255&R}function H(t,R){var A,f,s=t.max_chain_length,k=t.strstart,F=t.prev_length,P=t.nice_match,z=t.strstart>t.w_size-V?t.strstart-(t.w_size-V):0,Z=t.window,K=t.w_mask,M=t.prev,Y=t.strstart+W,rt=Z[k+F-1],tt=Z[k+F];t.prev_length>=t.good_match&&(s>>=2),P>t.lookahead&&(P=t.lookahead);do if(Z[(A=R)+F]===tt&&Z[A+F-1]===rt&&Z[A]===Z[k]&&Z[++A]===Z[k+1]){k+=2,A++;do;while(Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&kz&&--s!=0);return F<=t.lookahead?F:t.lookahead}function nt(t){var R,A,f,s,k,F,P,z,Z,K,M=t.w_size;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=M+(M-V)){for(o.arraySet(t.window,t.window,M,M,0),t.match_start-=M,t.strstart-=M,t.block_start-=M,R=A=t.hash_size;f=t.head[--R],t.head[R]=M<=f?f-M:0,--A;);for(R=A=M;f=t.prev[--R],t.prev[R]=M<=f?f-M:0,--A;);s+=M}if(t.strm.avail_in===0)break;if(F=t.strm,P=t.window,z=t.strstart+t.lookahead,Z=s,K=void 0,K=F.avail_in,Z=I)for(k=t.strstart-t.insert,t.ins_h=t.window[k],t.ins_h=(t.ins_h<=I&&(t.ins_h=(t.ins_h<=I)if(f=n._tr_tally(t,t.strstart-t.match_start,t.match_length-I),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=I){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=I&&(t.ins_h=(t.ins_h<=I&&t.match_length<=t.prev_length){for(s=t.strstart+t.lookahead-I,f=n._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-I),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=s&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(A=t.pending_buf_size-5);;){if(t.lookahead<=1){if(nt(t),t.lookahead===0&&R===p)return e;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var f=t.block_start+A;if((t.strstart===0||t.strstart>=f)&&(t.lookahead=t.strstart-f,t.strstart=f,C(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-V&&(C(t,!1),t.strm.avail_out===0))return e}return t.insert=0,R===b?(C(t,!0),t.strm.avail_out===0?J:U):(t.strstart>t.block_start&&(C(t,!1),t.strm.avail_out),e)}),new et(4,4,8,4,ot),new et(4,5,16,8,ot),new et(4,6,32,32,ot),new et(4,4,16,16,Q),new et(8,16,32,32,Q),new et(8,16,128,128,Q),new et(8,32,128,256,Q),new et(32,128,258,1024,Q),new et(32,258,258,4096,Q)],w.deflateInit=function(t,R){return ht(t,R,c,15,8,0)},w.deflateInit2=ht,w.deflateReset=lt,w.deflateResetKeep=it,w.deflateSetHeader=function(t,R){return t&&t.state?t.state.wrap!==2?d:(t.state.gzhead=R,i):d},w.deflate=function(t,R){var A,f,s,k;if(!t||!t.state||5>8&255),X(f,f.gzhead.time>>16&255),X(f,f.gzhead.time>>24&255),X(f,f.level===9?2:2<=f.strategy||f.level<2?4:0),X(f,255&f.gzhead.os),f.gzhead.extra&&f.gzhead.extra.length&&(X(f,255&f.gzhead.extra.length),X(f,f.gzhead.extra.length>>8&255)),f.gzhead.hcrc&&(t.adler=g(t.adler,f.pending_buf,f.pending,0)),f.gzindex=0,f.status=69):(X(f,0),X(f,0),X(f,0),X(f,0),X(f,0),X(f,f.level===9?2:2<=f.strategy||f.level<2?4:0),X(f,3),f.status=B);else{var F=c+(f.w_bits-8<<4)<<8;F|=(2<=f.strategy||f.level<2?0:f.level<6?1:f.level===6?2:3)<<6,f.strstart!==0&&(F|=32),F+=31-F%31,f.status=B,G(f,F),f.strstart!==0&&(G(f,t.adler>>>16),G(f,65535&t.adler)),t.adler=1}if(f.status===69)if(f.gzhead.extra){for(s=f.pending;f.gzindex<(65535&f.gzhead.extra.length)&&(f.pending!==f.pending_buf_size||(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending!==f.pending_buf_size));)X(f,255&f.gzhead.extra[f.gzindex]),f.gzindex++;f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),f.gzindex===f.gzhead.extra.length&&(f.gzindex=0,f.status=73)}else f.status=73;if(f.status===73)if(f.gzhead.name){s=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending===f.pending_buf_size)){k=1;break}k=f.gzindexs&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),k===0&&(f.gzindex=0,f.status=91)}else f.status=91;if(f.status===91)if(f.gzhead.comment){s=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending===f.pending_buf_size)){k=1;break}k=f.gzindexs&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),k===0&&(f.status=103)}else f.status=103;if(f.status===103&&(f.gzhead.hcrc?(f.pending+2>f.pending_buf_size&&E(t),f.pending+2<=f.pending_buf_size&&(X(f,255&t.adler),X(f,t.adler>>8&255),t.adler=0,f.status=B)):f.status=B),f.pending!==0){if(E(t),t.avail_out===0)return f.last_flush=-1,i}else if(t.avail_in===0&&L(R)<=L(A)&&R!==b)return $(t,-5);if(f.status===666&&t.avail_in!==0)return $(t,-5);if(t.avail_in!==0||f.lookahead!==0||R!==p&&f.status!==666){var P=f.strategy===2?function(z,Z){for(var K;;){if(z.lookahead===0&&(nt(z),z.lookahead===0)){if(Z===p)return e;break}if(z.match_length=0,K=n._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++,K&&(C(z,!1),z.strm.avail_out===0))return e}return z.insert=0,Z===b?(C(z,!0),z.strm.avail_out===0?J:U):z.last_lit&&(C(z,!1),z.strm.avail_out===0)?e:T}(f,R):f.strategy===3?function(z,Z){for(var K,M,Y,rt,tt=z.window;;){if(z.lookahead<=W){if(nt(z),z.lookahead<=W&&Z===p)return e;if(z.lookahead===0)break}if(z.match_length=0,z.lookahead>=I&&0z.lookahead&&(z.match_length=z.lookahead)}if(z.match_length>=I?(K=n._tr_tally(z,1,z.match_length-I),z.lookahead-=z.match_length,z.strstart+=z.match_length,z.match_length=0):(K=n._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++),K&&(C(z,!1),z.strm.avail_out===0))return e}return z.insert=0,Z===b?(C(z,!0),z.strm.avail_out===0?J:U):z.last_lit&&(C(z,!1),z.strm.avail_out===0)?e:T}(f,R):u[f.level].func(f,R);if(P!==J&&P!==U||(f.status=666),P===e||P===J)return t.avail_out===0&&(f.last_flush=-1),i;if(P===T&&(R===1?n._tr_align(f):R!==5&&(n._tr_stored_block(f,0,0,!1),R===3&&(q(f.head),f.lookahead===0&&(f.strstart=0,f.block_start=0,f.insert=0))),E(t),t.avail_out===0))return f.last_flush=-1,i}return R!==b?i:f.wrap<=0?1:(f.wrap===2?(X(f,255&t.adler),X(f,t.adler>>8&255),X(f,t.adler>>16&255),X(f,t.adler>>24&255),X(f,255&t.total_in),X(f,t.total_in>>8&255),X(f,t.total_in>>16&255),X(f,t.total_in>>24&255)):(G(f,t.adler>>>16),G(f,65535&t.adler)),E(t),0=A.w_size&&(k===0&&(q(A.head),A.strstart=0,A.block_start=0,A.insert=0),Z=new o.Buf8(A.w_size),o.arraySet(Z,R,K-A.w_size,A.w_size,0),R=Z,K=A.w_size),F=t.avail_in,P=t.next_in,z=t.input,t.avail_in=K,t.next_in=0,t.input=R,nt(A);A.lookahead>=I;){for(f=A.strstart,s=A.lookahead-(I-1);A.ins_h=(A.ins_h<>>=I=j>>>24,v-=I,(I=j>>>16&255)===0)T[y++]=65535&j;else{if(!(16&I)){if(!(64&I)){j=S[(65535&j)+(c&(1<>>=I,v-=I),v<15&&(c+=e[h++]<>>=I=j>>>24,v-=I,!(16&(I=j>>>16&255))){if(!(64&I)){j=x[(65535&j)+(c&(1<>>=I,v-=I,(I=y-p)>3,c&=(1<<(v-=W<<3))-1,u.next_in=h,u.next_out=y,u.avail_in=h>>24&255)+(m>>>8&65280)+((65280&m)<<8)+((255&m)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new u.Buf16(320),this.work=new u.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function v(m){var B;return m&&m.state?(B=m.state,m.total_in=m.total_out=B.total=0,m.msg="",B.wrap&&(m.adler=1&B.wrap),B.mode=d,B.last=0,B.havedict=0,B.dmax=32768,B.head=null,B.hold=0,B.bits=0,B.lencode=B.lendyn=new u.Buf32(r),B.distcode=B.distdyn=new u.Buf32(l),B.sane=1,B.back=-1,b):i}function S(m){var B;return m&&m.state?((B=m.state).wsize=0,B.whave=0,B.wnext=0,v(m)):i}function x(m,B){var e,T;return m&&m.state?(T=m.state,B<0?(e=0,B=-B):(e=1+(B>>4),B<48&&(B&=15)),B&&(B<8||15=U.wsize?(u.arraySet(U.window,B,e-U.wsize,U.wsize,0),U.wnext=0,U.whave=U.wsize):(T<(J=U.wsize-U.wnext)&&(J=T),u.arraySet(U.window,B,e-T,J,U.wnext),(T-=J)?(u.arraySet(U.window,B,e-T,T,0),U.wnext=T,U.whave=U.wsize):(U.wnext+=J,U.wnext===U.wsize&&(U.wnext=0),U.whave>>8&255,e.check=n(e.check,k,2,0),C=E=0,e.mode=2;break}if(e.flags=0,e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&E)<<8)+(E>>8))%31){m.msg="incorrect header check",e.mode=30;break}if((15&E)!=8){m.msg="unknown compression method",e.mode=30;break}if(C-=4,t=8+(15&(E>>>=4)),e.wbits===0)e.wbits=t;else if(t>e.wbits){m.msg="invalid window size",e.mode=30;break}e.dmax=1<>8&1),512&e.flags&&(k[0]=255&E,k[1]=E>>>8&255,e.check=n(e.check,k,2,0)),C=E=0,e.mode=3;case 3:for(;C<32;){if(L===0)break t;L--,E+=T[U++]<>>8&255,k[2]=E>>>16&255,k[3]=E>>>24&255,e.check=n(e.check,k,4,0)),C=E=0,e.mode=4;case 4:for(;C<16;){if(L===0)break t;L--,E+=T[U++]<>8),512&e.flags&&(k[0]=255&E,k[1]=E>>>8&255,e.check=n(e.check,k,2,0)),C=E=0,e.mode=5;case 5:if(1024&e.flags){for(;C<16;){if(L===0)break t;L--,E+=T[U++]<>>8&255,e.check=n(e.check,k,2,0)),C=E=0}else e.head&&(e.head.extra=null);e.mode=6;case 6:if(1024&e.flags&&(L<(H=e.length)&&(H=L),H&&(e.head&&(t=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Array(e.head.extra_len)),u.arraySet(e.head.extra,T,U,H,t)),512&e.flags&&(e.check=n(e.check,T,H,U)),L-=H,U+=H,e.length-=H),e.length))break t;e.length=0,e.mode=7;case 7:if(2048&e.flags){if(L===0)break t;for(H=0;t=T[U+H++],e.head&&t&&e.length<65536&&(e.head.name+=String.fromCharCode(t)),t&&H>9&1,e.head.done=!0),m.adler=e.check=0,e.mode=12;break;case 10:for(;C<32;){if(L===0)break t;L--,E+=T[U++]<>>=7&C,C-=7&C,e.mode=27;break}for(;C<3;){if(L===0)break t;L--,E+=T[U++]<>>=1)){case 0:e.mode=14;break;case 1:if(W(e),e.mode=20,B!==6)break;E>>>=2,C-=2;break t;case 2:e.mode=17;break;case 3:m.msg="invalid block type",e.mode=30}E>>>=2,C-=2;break;case 14:for(E>>>=7&C,C-=7&C;C<32;){if(L===0)break t;L--,E+=T[U++]<>>16^65535)){m.msg="invalid stored block lengths",e.mode=30;break}if(e.length=65535&E,C=E=0,e.mode=15,B===6)break t;case 15:e.mode=16;case 16:if(H=e.length){if(L>>=5,C-=5,e.ndist=1+(31&E),E>>>=5,C-=5,e.ncode=4+(15&E),E>>>=4,C-=4,286>>=3,C-=3}for(;e.have<19;)e.lens[F[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,A={bits:e.lenbits},R=g(0,e.lens,0,19,e.lencode,0,e.work,A),e.lenbits=A.bits,R){m.msg="invalid code lengths set",e.mode=30;break}e.have=0,e.mode=19;case 19:for(;e.have>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=Q,C-=Q,e.lens[e.have++]=st;else{if(st===16){for(f=Q+2;C>>=Q,C-=Q,e.have===0){m.msg="invalid bit length repeat",e.mode=30;break}t=e.lens[e.have-1],H=3+(3&E),E>>>=2,C-=2}else if(st===17){for(f=Q+3;C>>=Q)),E>>>=3,C-=3}else{for(f=Q+7;C>>=Q)),E>>>=7,C-=7}if(e.have+H>e.nlen+e.ndist){m.msg="invalid bit length repeat",e.mode=30;break}for(;H--;)e.lens[e.have++]=t}}if(e.mode===30)break;if(e.lens[256]===0){m.msg="invalid code -- missing end-of-block",e.mode=30;break}if(e.lenbits=9,A={bits:e.lenbits},R=g(y,e.lens,0,e.nlen,e.lencode,0,e.work,A),e.lenbits=A.bits,R){m.msg="invalid literal/lengths set",e.mode=30;break}if(e.distbits=6,e.distcode=e.distdyn,A={bits:e.distbits},R=g(p,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,A),e.distbits=A.bits,R){m.msg="invalid distances set",e.mode=30;break}if(e.mode=20,B===6)break t;case 20:e.mode=21;case 21:if(6<=L&&258<=q){m.next_out=$,m.avail_out=q,m.next_in=U,m.avail_in=L,e.hold=E,e.bits=C,h(m,G),$=m.next_out,J=m.output,q=m.avail_out,U=m.next_in,T=m.input,L=m.avail_in,E=e.hold,C=e.bits,e.mode===12&&(e.back=-1);break}for(e.back=0;et=(s=e.lencode[E&(1<>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>it)])>>>16&255,st=65535&s,!(it+(Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=it,C-=it,e.back+=it}if(E>>>=Q,C-=Q,e.back+=Q,e.length=st,et===0){e.mode=26;break}if(32&et){e.back=-1,e.mode=12;break}if(64&et){m.msg="invalid literal/length code",e.mode=30;break}e.extra=15&et,e.mode=22;case 22:if(e.extra){for(f=e.extra;C>>=e.extra,C-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=23;case 23:for(;et=(s=e.distcode[E&(1<>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>it)])>>>16&255,st=65535&s,!(it+(Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=it,C-=it,e.back+=it}if(E>>>=Q,C-=Q,e.back+=Q,64&et){m.msg="invalid distance code",e.mode=30;break}e.offset=st,e.extra=15&et,e.mode=24;case 24:if(e.extra){for(f=e.extra;C>>=e.extra,C-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){m.msg="invalid distance too far back",e.mode=30;break}e.mode=25;case 25:if(q===0)break t;if(H=G-q,e.offset>H){if((H=e.offset-H)>e.whave&&e.sane){m.msg="invalid distance too far back",e.mode=30;break}nt=H>e.wnext?(H-=e.wnext,e.wsize-H):e.wnext-H,H>e.length&&(H=e.length),ot=e.window}else ot=J,nt=$-e.offset,H=e.length;for(qO?(I=nt[ot+l[B]],C[X+l[B]]):(I=96,0),c=1<>$)+(v-=c)]=j<<24|I<<16|W|0,v!==0;);for(c=1<>=1;if(c!==0?(E&=c-1,E+=c):E=0,B++,--G[m]==0){if(m===T)break;m=p[b+l[B]]}if(J>>7)]}function X(s,k){s.pending_buf[s.pending++]=255&k,s.pending_buf[s.pending++]=k>>>8&255}function G(s,k,F){s.bi_valid>a-F?(s.bi_buf|=k<>a-s.bi_valid,s.bi_valid+=F-a):(s.bi_buf|=k<>>=1,F<<=1,0<--k;);return F>>>1}function ot(s,k,F){var P,z,Z=new Array(l+1),K=0;for(P=1;P<=l;P++)Z[P]=K=K+F[P-1]<<1;for(z=0;z<=k;z++){var M=s[2*z+1];M!==0&&(s[2*z]=nt(Z[M]++,M))}}function Q(s){var k;for(k=0;k>1;1<=F;F--)it(s,Z,F);for(z=Y;F=s.heap[1],s.heap[1]=s.heap[s.heap_len--],it(s,Z,1),P=s.heap[1],s.heap[--s.heap_max]=F,s.heap[--s.heap_max]=P,Z[2*z]=Z[2*F]+Z[2*P],s.depth[z]=(s.depth[F]>=s.depth[P]?s.depth[F]:s.depth[P])+1,Z[2*F+1]=Z[2*P+1]=z,s.heap[1]=z++,it(s,Z,1),2<=s.heap_len;);s.heap[--s.heap_max]=s.heap[1],function(tt,ut){var pt,ft,mt,at,gt,kt,dt=ut.dyn_tree,xt=ut.max_code,Et=ut.stat_desc.static_tree,At=ut.stat_desc.has_stree,It=ut.stat_desc.extra_bits,St=ut.stat_desc.extra_base,_t=ut.stat_desc.max_length,bt=0;for(at=0;at<=l;at++)tt.bl_count[at]=0;for(dt[2*tt.heap[tt.heap_max]+1]=0,pt=tt.heap_max+1;pt>=7;z>>=1)if(1&rt&&M.dyn_ltree[2*Y]!==0)return o;if(M.dyn_ltree[18]!==0||M.dyn_ltree[20]!==0||M.dyn_ltree[26]!==0)return n;for(Y=32;Y>>3,(Z=s.static_len+3+7>>>3)<=z&&(z=Z)):z=Z=F+5,F+4<=z&&k!==-1?f(s,k,F,P):s.strategy===4||Z===z?(G(s,2+(P?1:0),3),lt(s,V,m)):(G(s,4+(P?1:0),3),function(M,Y,rt,tt){var ut;for(G(M,Y-257,5),G(M,rt-1,5),G(M,tt-4,4),ut=0;ut>>8&255,s.pending_buf[s.d_buf+2*s.last_lit+1]=255&k,s.pending_buf[s.l_buf+s.last_lit]=255&F,s.last_lit++,k===0?s.dyn_ltree[2*F]++:(s.matches++,k--,s.dyn_ltree[2*(e[F]+p+1)]++,s.dyn_dtree[2*C(k)]++),s.last_lit===s.lit_bufsize-1},w._tr_align=function(s){G(s,2,3),H(s,v,V),function(k){k.bi_valid===16?(X(k,k.bi_buf),k.bi_buf=0,k.bi_valid=0):8<=k.bi_valid&&(k.pending_buf[k.pending++]=255&k.bi_buf,k.bi_buf>>=8,k.bi_valid-=8)}(s)}},{"../utils/common":41}],53:[function(_,N,w){N.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(_,N,w){(function(u){(function(o,n){if(!o.setImmediate){var h,g,y,p,b=1,i={},d=!1,r=o.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(o);l=l&&l.setTimeout?l:o,h={}.toString.call(o.process)==="[object process]"?function(S){process.nextTick(function(){c(S)})}:function(){if(o.postMessage&&!o.importScripts){var S=!0,x=o.onmessage;return o.onmessage=function(){S=!1},o.postMessage("","*"),o.onmessage=x,S}}()?(p="setImmediate$"+Math.random()+"$",o.addEventListener?o.addEventListener("message",v,!1):o.attachEvent("onmessage",v),function(S){o.postMessage(p+S,"*")}):o.MessageChannel?((y=new MessageChannel).port1.onmessage=function(S){c(S.data)},function(S){y.port2.postMessage(S)}):r&&"onreadystatechange"in r.createElement("script")?(g=r.documentElement,function(S){var x=r.createElement("script");x.onreadystatechange=function(){c(S),x.onreadystatechange=null,g.removeChild(x),x=null},g.appendChild(x)}):function(S){setTimeout(c,0,S)},l.setImmediate=function(S){typeof S!="function"&&(S=new Function(""+S));for(var x=new Array(arguments.length-1),D=0;D"u"?u===void 0?this:u:self)}).call(this,typeof vt<"u"?vt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(zt);var Ct=zt.exports;const Rt=Ot(Ct),Dt=Bt({__proto__:null,default:Rt},[Ct]);export{Dt as j}; diff --git a/internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js.gz b/internal/cli/playground/webassets/assets/jszip.min-Cbpz4e27.js.gz similarity index 99% rename from internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js.gz rename to internal/cli/playground/webassets/assets/jszip.min-Cbpz4e27.js.gz index b6c2fa359a54ae3cd6433edf83baaa62cfa49659..4e54a65e3c3eaca25a08a5e880a13200cc67e85a 100644 GIT binary patch delta 29 lcmaF&it+6$#tCKY;)@FmEqLy2tb0+yVd497NkeD-F7#RQzIuB?7 diff --git a/internal/cli/playground/webassets/index.html b/internal/cli/playground/webassets/index.html index 50596bc..f597318 100644 --- a/internal/cli/playground/webassets/index.html +++ b/internal/cli/playground/webassets/index.html @@ -4,7 +4,7 @@ Agora Convoai Playground - + From 951977a847ef9f85c205b445efe6fc20547f249a Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 17:39:38 -0700 Subject: [PATCH 16/18] test(convoai): playground build/check make targets and embedded-app integration test - Add playground-build and playground-check Makefile targets matching the docs-commands pattern - Wire playground-check into the lint aggregate target alongside docs-commands-check - Add TestConvoaiPlaygroundServesEmbeddedApp: verifies real embedded assets are served (not the placeholder) and /api/get_config returns a 007 token - Re-stamp webassets/SOURCE_HASH (prior task deleted frontend/src/types/conversation.ts without updating the hash) Co-Authored-By: Claude Sonnet 4.6 --- Makefile | 15 ++++- internal/cli/integration_convoai_test.go | 55 +++++++++++++++++++ internal/cli/playground/webassets/SOURCE_HASH | 2 +- 3 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 internal/cli/integration_convoai_test.go diff --git a/Makefile b/Makefile index 7ba4c84..f7a43af 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -.PHONY: build test lint lint-go lint-fmt snapshot snapshot-error-codes release release-snapshot docs-commands docs-commands-check docs-preview +.PHONY: build test lint lint-go lint-fmt snapshot snapshot-error-codes release release-snapshot docs-commands docs-commands-check docs-preview playground-build playground-check # Build a local agora binary with stripped paths. build: @@ -11,7 +11,7 @@ test: # Aggregate lint target. Runs gofmt, golangci-lint (if installed), the # error-code coverage audit, and the docs/commands.md drift check. Use # this in CI and pre-commit. -lint: lint-fmt lint-go snapshot-error-codes docs-commands-check +lint: lint-fmt lint-go snapshot-error-codes docs-commands-check playground-check lint-fmt: @unformatted="$$(gofmt -l .)"; \ @@ -73,3 +73,14 @@ docs-commands-check: # Uses an empty local baseurl so assets resolve from http://localhost:4000/. docs-preview: ./scripts/preview-pages-site.sh + +# Build the embedded playground frontend and stamp the source hash. +# Requires Node/npm (only needed to regenerate the committed webassets). +playground-build: + cd frontend && npm ci && npm run build + go run ./cmd/playgroundhash -write + +# Drift guard (pure Go, runs in lint): fails if frontend/ changed without +# rebuilding the committed webassets. Fix by running `make playground-build`. +playground-check: + go run ./cmd/playgroundhash -check diff --git a/internal/cli/integration_convoai_test.go b/internal/cli/integration_convoai_test.go new file mode 100644 index 0000000..aed4e9b --- /dev/null +++ b/internal/cli/integration_convoai_test.go @@ -0,0 +1,55 @@ +package cli + +import ( + "io" + "net/http" + "net/http/httptest" + "strings" + "testing" + + "github.com/AgoraIO/cli/internal/cli/playground" +) + +func TestConvoaiPlaygroundServesEmbeddedApp(t *testing.T) { + assets, err := playground.Assets() + if err != nil { + t.Fatal(err) + } + sess := &playgroundSession{ + appID: "970CA35de60c44645bbae8a215061b33", + appCert: "5CFd2fd1755d40ecb72977518be15d3b", + channel: "smoke", + uid: 12345, + agentUID: 87654321, + ttl: 3600, + } + srv := httptest.NewServer(newPlaygroundHandler(sess, assets)) + defer srv.Close() + + // Index page: httptest server binds 127.0.0.1, so the loopback guard passes. + resp, err := http.Get(srv.URL + "/") + if err != nil { + t.Fatal(err) + } + body, _ := io.ReadAll(resp.Body) + resp.Body.Close() + if resp.StatusCode != http.StatusOK || len(body) == 0 { + t.Fatalf("index not served: status=%d len=%d", resp.StatusCode, len(body)) + } + // The real built SPA has a #root mount point; the placeholder had a + // "not built" message. Assert we're serving the REAL app. + if !strings.Contains(string(body), "root") { + t.Fatalf("served index does not look like the built SPA: %.120q", body) + } + + // Token endpoint returns a 007 token in the {code,data} envelope. + tok, err := http.Get(srv.URL + "/api/get_config") + if err != nil { + t.Fatal(err) + } + tbody, _ := io.ReadAll(tok.Body) + tok.Body.Close() + if tok.StatusCode != http.StatusOK || !strings.Contains(string(tbody), "\"007") { + t.Fatalf("get_config not served correctly: status=%d body=%.160q", tok.StatusCode, tbody) + } +} diff --git a/internal/cli/playground/webassets/SOURCE_HASH b/internal/cli/playground/webassets/SOURCE_HASH index a45c40e..1d23b37 100644 --- a/internal/cli/playground/webassets/SOURCE_HASH +++ b/internal/cli/playground/webassets/SOURCE_HASH @@ -1 +1 @@ -2f93a0c87a475c61d485372d3a7b488b2a9a9d52971c51a69d073df43792f76e +a45feb30a7a7d8fbbff9229beb3d419d913bce993ed47123cb7ba86b4c4a97ef From b645bf4207b26c798a83bf35d380314a3c871f7f Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 17:44:22 -0700 Subject: [PATCH 17/18] docs: document convoai playground command and error codes Co-Authored-By: Claude Sonnet 4.6 --- docs/commands.md | 19 +++++++++++++++++++ docs/error-codes.md | 8 ++++++++ 2 files changed, 27 insertions(+) diff --git a/docs/commands.md b/docs/commands.md index 8a49931..1403bbc 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -88,6 +88,25 @@ Update persisted CLI defaults | `--output` | `output` | `pretty` | persist default output mode (pretty or json) | | `--telemetry-enabled` | `bool` | — | persist telemetry preference; use --telemetry-enabled=false to disable | +### `agora convoai` + +Conversational AI developer tools + +_No local flags. Inherited parent and global flags still apply; run `agora --help` for the full flag set._ + +### `agora convoai playground` + +Start a local frontend to talk to your Conversational AI agent + +| Flag | Type | Default | Description | +|------|------|---------|-------------| +| `--agent-uid` | `int64` | — | reserved agent uid printed in the wire block (0 = generate) | +| `--channel` | `string` | — | RTC channel to join (required; use the same value for your agent) | +| `--no-open` | `bool` | — | do not open the browser automatically | +| `--port` | `int` | `8787` | local server port (auto-increments if busy unless explicitly set) | +| `--ttl` | `string` | `1h` | token lifetime | +| `--uid` | `int64` | — | browser RTC uid (0 = generate a non-zero uid) | + ### `agora doctor` Diagnose the local Agora CLI install (PATH, version, network, auth, MCP host) diff --git a/docs/error-codes.md b/docs/error-codes.md index c622205..b2acc09 100644 --- a/docs/error-codes.md +++ b/docs/error-codes.md @@ -81,6 +81,14 @@ These codes appear inside `data.checks[].issues[].code` and (for blocking issues | `APP_CREDENTIALS_MISSING` | 1 | The selected project has no app ID / app certificate yet. | Run the command from `suggestedCommand` (`agora project show --project `) to re-fetch credentials; if still missing, enable the app certificate in Console (`agora open --target console`). | | `TOKEN_CAPABILITY_DISABLED` | (warning) | The project has token issuance disabled. | Enable token issuance in Console. | +### Conversational AI (`convoai playground`) + +| Code | Exit | Meaning | Recovery | +|------|------|---------|----------| +| `CHANNEL_INVALID` | 1 | The `--channel` value is empty, exceeds 64 bytes, or contains an unsupported character. | Pass a non-empty channel name using only alphanumeric characters, hyphens, and underscores, up to 64 bytes. | +| `TTL_INVALID` | 1 | The `--ttl` value is not a valid positive Go duration (e.g. `1h`, `30m`). | Pass a positive duration such as `1h` or `30m`. | +| `CONVOAI_NOT_READY` | 1 | The selected project does not have Conversational AI enabled. | Run `agora project feature enable convoai` and retry. | + ### Skills (curated workflows) | Code | Exit | Meaning | Recovery | From 8c99f7c841bbc948d1f23996ec35ce1bdaa12253 Mon Sep 17 00:00:00 2001 From: plutoless Date: Mon, 6 Jul 2026 18:31:25 -0700 Subject: [PATCH 18/18] chore: ignore playgroundhash build artifact Co-Authored-By: Claude Opus 4.8 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ded97cb..9ce5516 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ coverage.out # Built CLI binaries agora agora-cli-go +playgroundhash # IDE and editor files .idea/

Jy4XLKz9O-Zjd$t{40UGUe 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�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

^c@w^itr{TDKuD(CihtV&$k2)MCxi<2)>ef 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

!v0={TUKU6 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≧%voh=fI`fcTOzkYm(|H=? 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

^c@w^itr{TDKuD(CihtV&$k2)MCxi<2)>ef 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

Jh)6JmU-Xn%&8O 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 U=pGjX0Gz)41$57J*G~li09)`I2LJ#7 literal 0 HcmV?d00001 diff --git a/internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js b/internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js new file mode 100644 index 0000000..87577c0 --- /dev/null +++ b/internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js @@ -0,0 +1,12 @@ +import{g as Ot,c as vt}from"./index-9L6p1D6X.js";function Bt(ct,wt){for(var _=0;_N[w]})}}}return Object.freeze(Object.defineProperty(ct,Symbol.toStringTag,{value:"Module"}))}function yt(ct){throw new Error('Could not dynamically require "'+ct+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var zt={exports:{}};/*! + +JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/main/LICENSE +*/(function(ct,wt){(function(_){ct.exports=_()})(function(){return function _(N,w,u){function o(g,y){if(!w[g]){if(!N[g]){var p=typeof yt=="function"&&yt;if(!y&&p)return p(g,!0);if(n)return n(g,!0);var b=new Error("Cannot find module '"+g+"'");throw b.code="MODULE_NOT_FOUND",b}var i=w[g]={exports:{}};N[g][0].call(i.exports,function(d){var r=N[g][1][d];return o(r||d)},i,i.exports,_,N,w,u)}return w[g].exports}for(var n=typeof yt=="function"&&yt,h=0;h>2,i=(3&g)<<4|y>>4,d=1>6:64,r=2>4,y=(15&b)<<4|(i=n.indexOf(h.charAt(r++)))>>2,p=(3&i)<<6|(d=n.indexOf(h.charAt(r++))),c[l++]=g,i!==64&&(c[l++]=y),d!==64&&(c[l++]=p);return c}},{"./support":30,"./utils":32}],2:[function(_,N,w){var u=_("./external"),o=_("./stream/DataWorker"),n=_("./stream/Crc32Probe"),h=_("./stream/DataLengthProbe");function g(y,p,b,i,d){this.compressedSize=y,this.uncompressedSize=p,this.crc32=b,this.compression=i,this.compressedContent=d}g.prototype={getContentWorker:function(){var y=new o(u.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new h("data_length")),p=this;return y.on("end",function(){if(this.streamInfo.data_length!==p.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),y},getCompressedWorker:function(){return new o(u.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},g.createWorkerFrom=function(y,p,b){return y.pipe(new n).pipe(new h("uncompressedSize")).pipe(p.compressWorker(b)).pipe(new h("compressedSize")).withStreamInfo("compression",p)},N.exports=g},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(_,N,w){var u=_("./stream/GenericWorker");w.STORE={magic:"\0\0",compressWorker:function(){return new u("STORE compression")},uncompressWorker:function(){return new u("STORE decompression")}},w.DEFLATE=_("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(_,N,w){var u=_("./utils"),o=function(){for(var n,h=[],g=0;g<256;g++){n=g;for(var y=0;y<8;y++)n=1&n?3988292384^n>>>1:n>>>1;h[g]=n}return h}();N.exports=function(n,h){return n!==void 0&&n.length?u.getTypeOf(n)!=="string"?function(g,y,p,b){var i=o,d=b+p;g^=-1;for(var r=b;r>>8^i[255&(g^y[r])];return-1^g}(0|h,n,n.length,0):function(g,y,p,b){var i=o,d=b+p;g^=-1;for(var r=b;r>>8^i[255&(g^y.charCodeAt(r))];return-1^g}(0|h,n,n.length,0):0}},{"./utils":32}],5:[function(_,N,w){w.base64=!1,w.binary=!1,w.dir=!1,w.createFolders=!0,w.date=null,w.compression=null,w.compressionOptions=null,w.comment=null,w.unixPermissions=null,w.dosPermissions=null},{}],6:[function(_,N,w){var u=null;u=typeof Promise<"u"?Promise:_("lie"),N.exports={Promise:u}},{lie:37}],7:[function(_,N,w){var u=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",o=_("pako"),n=_("./utils"),h=_("./stream/GenericWorker"),g=u?"uint8array":"array";function y(p,b){h.call(this,"FlateWorker/"+p),this._pako=null,this._pakoAction=p,this._pakoOptions=b,this.meta={}}w.magic="\b\0",n.inherits(y,h),y.prototype.processChunk=function(p){this.meta=p.meta,this._pako===null&&this._createPako(),this._pako.push(n.transformTo(g,p.data),!1)},y.prototype.flush=function(){h.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},y.prototype.cleanUp=function(){h.prototype.cleanUp.call(this),this._pako=null},y.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var p=this;this._pako.onData=function(b){p.push({data:b,meta:p.meta})}},w.compressWorker=function(p){return new y("Deflate",p)},w.uncompressWorker=function(){return new y("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(_,N,w){function u(i,d){var r,l="";for(r=0;r>>=8;return l}function o(i,d,r,l,a,c){var v,S,x=i.file,D=i.compression,O=c!==g.utf8encode,j=n.transformTo("string",c(x.name)),I=n.transformTo("string",g.utf8encode(x.name)),W=x.comment,V=n.transformTo("string",c(W)),m=n.transformTo("string",g.utf8encode(W)),B=I.length!==x.name.length,e=m.length!==W.length,T="",J="",U="",$=x.dir,L=x.date,q={crc32:0,compressedSize:0,uncompressedSize:0};d&&!r||(q.crc32=i.crc32,q.compressedSize=i.compressedSize,q.uncompressedSize=i.uncompressedSize);var E=0;d&&(E|=8),O||!B&&!e||(E|=2048);var C=0,X=0;$&&(C|=16),a==="UNIX"?(X=798,C|=function(H,nt){var ot=H;return H||(ot=nt?16893:33204),(65535&ot)<<16}(x.unixPermissions,$)):(X=20,C|=function(H){return 63&(H||0)}(x.dosPermissions)),v=L.getUTCHours(),v<<=6,v|=L.getUTCMinutes(),v<<=5,v|=L.getUTCSeconds()/2,S=L.getUTCFullYear()-1980,S<<=4,S|=L.getUTCMonth()+1,S<<=5,S|=L.getUTCDate(),B&&(J=u(1,1)+u(y(j),4)+I,T+="up"+u(J.length,2)+J),e&&(U=u(1,1)+u(y(V),4)+m,T+="uc"+u(U.length,2)+U);var G="";return G+=` +\0`,G+=u(E,2),G+=D.magic,G+=u(v,2),G+=u(S,2),G+=u(q.crc32,4),G+=u(q.compressedSize,4),G+=u(q.uncompressedSize,4),G+=u(j.length,2),G+=u(T.length,2),{fileRecord:p.LOCAL_FILE_HEADER+G+j+T,dirRecord:p.CENTRAL_FILE_HEADER+u(X,2)+G+u(V.length,2)+"\0\0\0\0"+u(C,4)+u(l,4)+j+T+V}}var n=_("../utils"),h=_("../stream/GenericWorker"),g=_("../utf8"),y=_("../crc32"),p=_("../signature");function b(i,d,r,l){h.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=d,this.zipPlatform=r,this.encodeFileName=l,this.streamFiles=i,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}n.inherits(b,h),b.prototype.push=function(i){var d=i.meta.percent||0,r=this.entriesCount,l=this._sources.length;this.accumulate?this.contentBuffer.push(i):(this.bytesWritten+=i.data.length,h.prototype.push.call(this,{data:i.data,meta:{currentFile:this.currentFile,percent:r?(d+100*(r-l-1))/r:100}}))},b.prototype.openedSource=function(i){this.currentSourceOffset=this.bytesWritten,this.currentFile=i.file.name;var d=this.streamFiles&&!i.file.dir;if(d){var r=o(i,d,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},b.prototype.closedSource=function(i){this.accumulate=!1;var d=this.streamFiles&&!i.file.dir,r=o(i,d,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),d)this.push({data:function(l){return p.DATA_DESCRIPTOR+u(l.crc32,4)+u(l.compressedSize,4)+u(l.uncompressedSize,4)}(i),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},b.prototype.flush=function(){for(var i=this.bytesWritten,d=0;d=this.index;h--)g=(g<<8)+this.byteAt(h);return this.index+=n,g},readString:function(n){return u.transformTo("string",this.readData(n))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var n=this.readInt(4);return new Date(Date.UTC(1980+(n>>25&127),(n>>21&15)-1,n>>16&31,n>>11&31,n>>5&63,(31&n)<<1))}},N.exports=o},{"../utils":32}],19:[function(_,N,w){var u=_("./Uint8ArrayReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.readData=function(n){this.checkOffset(n);var h=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(_,N,w){var u=_("./DataReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.byteAt=function(n){return this.data.charCodeAt(this.zero+n)},o.prototype.lastIndexOfSignature=function(n){return this.data.lastIndexOf(n)-this.zero},o.prototype.readAndCheckSignature=function(n){return n===this.readData(4)},o.prototype.readData=function(n){this.checkOffset(n);var h=this.data.slice(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./DataReader":18}],21:[function(_,N,w){var u=_("./ArrayReader");function o(n){u.call(this,n)}_("../utils").inherits(o,u),o.prototype.readData=function(n){if(this.checkOffset(n),n===0)return new Uint8Array(0);var h=this.data.subarray(this.zero+this.index,this.zero+this.index+n);return this.index+=n,h},N.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(_,N,w){var u=_("../utils"),o=_("../support"),n=_("./ArrayReader"),h=_("./StringReader"),g=_("./NodeBufferReader"),y=_("./Uint8ArrayReader");N.exports=function(p){var b=u.getTypeOf(p);return u.checkSupport(b),b!=="string"||o.uint8array?b==="nodebuffer"?new g(p):o.uint8array?new y(u.transformTo("uint8array",p)):new n(u.transformTo("array",p)):new h(p)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(_,N,w){w.LOCAL_FILE_HEADER="PK",w.CENTRAL_FILE_HEADER="PK",w.CENTRAL_DIRECTORY_END="PK",w.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",w.ZIP64_CENTRAL_DIRECTORY_END="PK",w.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(_,N,w){var u=_("./GenericWorker"),o=_("../utils");function n(h){u.call(this,"ConvertWorker to "+h),this.destType=h}o.inherits(n,u),n.prototype.processChunk=function(h){this.push({data:o.transformTo(this.destType,h.data),meta:h.meta})},N.exports=n},{"../utils":32,"./GenericWorker":28}],25:[function(_,N,w){var u=_("./GenericWorker"),o=_("../crc32");function n(){u.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}_("../utils").inherits(n,u),n.prototype.processChunk=function(h){this.streamInfo.crc32=o(h.data,this.streamInfo.crc32||0),this.push(h)},N.exports=n},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(_,N,w){var u=_("../utils"),o=_("./GenericWorker");function n(h){o.call(this,"DataLengthProbe for "+h),this.propName=h,this.withStreamInfo(h,0)}u.inherits(n,o),n.prototype.processChunk=function(h){if(h){var g=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=g+h.data.length}o.prototype.processChunk.call(this,h)},N.exports=n},{"../utils":32,"./GenericWorker":28}],27:[function(_,N,w){var u=_("../utils"),o=_("./GenericWorker");function n(h){o.call(this,"DataWorker");var g=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,h.then(function(y){g.dataIsReady=!0,g.data=y,g.max=y&&y.length||0,g.type=u.getTypeOf(y),g.isPaused||g._tickAndRepeat()},function(y){g.error(y)})}u.inherits(n,o),n.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},n.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,u.delay(this._tickAndRepeat,[],this)),!0)},n.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(u.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},n.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var h=null,g=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":h=this.data.substring(this.index,g);break;case"uint8array":h=this.data.subarray(this.index,g);break;case"array":case"nodebuffer":h=this.data.slice(this.index,g)}return this.index=g,this.push({data:h,meta:{percent:this.max?this.index/this.max*100:0}})},N.exports=n},{"../utils":32,"./GenericWorker":28}],28:[function(_,N,w){function u(o){this.name=o||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}u.prototype={push:function(o){this.emit("data",o)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(o){this.emit("error",o)}return!0},error:function(o){return!this.isFinished&&(this.isPaused?this.generatedError=o:(this.isFinished=!0,this.emit("error",o),this.previous&&this.previous.error(o),this.cleanUp()),!0)},on:function(o,n){return this._listeners[o].push(n),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(o,n){if(this._listeners[o])for(var h=0;h "+o:o}},N.exports=u},{}],29:[function(_,N,w){var u=_("../utils"),o=_("./ConvertWorker"),n=_("./GenericWorker"),h=_("../base64"),g=_("../support"),y=_("../external"),p=null;if(g.nodestream)try{p=_("../nodejs/NodejsStreamOutputAdapter")}catch{}function b(d,r){return new y.Promise(function(l,a){var c=[],v=d._internalType,S=d._outputType,x=d._mimeType;d.on("data",function(D,O){c.push(D),r&&r(O)}).on("error",function(D){c=[],a(D)}).on("end",function(){try{var D=function(O,j,I){switch(O){case"blob":return u.newBlob(u.transformTo("arraybuffer",j),I);case"base64":return h.encode(j);default:return u.transformTo(O,j)}}(S,function(O,j){var I,W=0,V=null,m=0;for(I=0;I"u")w.blob=!1;else{var u=new ArrayBuffer(0);try{w.blob=new Blob([u],{type:"application/zip"}).size===0}catch{try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(u),w.blob=o.getBlob("application/zip").size===0}catch{w.blob=!1}}}try{w.nodestream=!!_("readable-stream").Readable}catch{w.nodestream=!1}},{"readable-stream":16}],31:[function(_,N,w){for(var u=_("./utils"),o=_("./support"),n=_("./nodejsUtils"),h=_("./stream/GenericWorker"),g=new Array(256),y=0;y<256;y++)g[y]=252<=y?6:248<=y?5:240<=y?4:224<=y?3:192<=y?2:1;g[254]=g[254]=1;function p(){h.call(this,"utf-8 decode"),this.leftOver=null}function b(){h.call(this,"utf-8 encode")}w.utf8encode=function(i){return o.nodebuffer?n.newBufferFrom(i,"utf-8"):function(d){var r,l,a,c,v,S=d.length,x=0;for(c=0;c>>6:(l<65536?r[v++]=224|l>>>12:(r[v++]=240|l>>>18,r[v++]=128|l>>>12&63),r[v++]=128|l>>>6&63),r[v++]=128|63&l);return r}(i)},w.utf8decode=function(i){return o.nodebuffer?u.transformTo("nodebuffer",i).toString("utf-8"):function(d){var r,l,a,c,v=d.length,S=new Array(2*v);for(r=l=0;r>10&1023,S[l++]=56320|1023&a)}return S.length!==l&&(S.subarray?S=S.subarray(0,l):S.length=l),u.applyFromCharCode(S)}(i=u.transformTo(o.uint8array?"uint8array":"array",i))},u.inherits(p,h),p.prototype.processChunk=function(i){var d=u.transformTo(o.uint8array?"uint8array":"array",i.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var r=d;(d=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),d.set(r,this.leftOver.length)}else d=this.leftOver.concat(d);this.leftOver=null}var l=function(c,v){var S;for((v=v||c.length)>c.length&&(v=c.length),S=v-1;0<=S&&(192&c[S])==128;)S--;return S<0||S===0?v:S+g[c[S]]>v?S:v}(d),a=d;l!==d.length&&(o.uint8array?(a=d.subarray(0,l),this.leftOver=d.subarray(l,d.length)):(a=d.slice(0,l),this.leftOver=d.slice(l,d.length))),this.push({data:w.utf8decode(a),meta:i.meta})},p.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:w.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},w.Utf8DecodeWorker=p,u.inherits(b,h),b.prototype.processChunk=function(i){this.push({data:w.utf8encode(i.data),meta:i.meta})},w.Utf8EncodeWorker=b},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(_,N,w){var u=_("./support"),o=_("./base64"),n=_("./nodejsUtils"),h=_("./external");function g(r){return r}function y(r,l){for(var a=0;a>8;this.dir=!!(16&this.externalFileAttributes),i==0&&(this.dosPermissions=63&this.externalFileAttributes),i==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var i=u(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=i.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=i.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=i.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=i.readInt(4))}},readExtraFields:function(i){var d,r,l,a=i.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});i.index+4>>6:(i<65536?b[l++]=224|i>>>12:(b[l++]=240|i>>>18,b[l++]=128|i>>>12&63),b[l++]=128|i>>>6&63),b[l++]=128|63&i);return b},w.buf2binstring=function(p){return y(p,p.length)},w.binstring2buf=function(p){for(var b=new u.Buf8(p.length),i=0,d=b.length;i>10&1023,c[d++]=56320|1023&r)}return y(c,d)},w.utf8border=function(p,b){var i;for((b=b||p.length)>p.length&&(b=p.length),i=b-1;0<=i&&(192&p[i])==128;)i--;return i<0||i===0?b:i+h[p[i]]>b?i:b}},{"./common":41}],43:[function(_,N,w){N.exports=function(u,o,n,h){for(var g=65535&u|0,y=u>>>16&65535|0,p=0;n!==0;){for(n-=p=2e3>>1:o>>>1;n[h]=o}return n}();N.exports=function(o,n,h,g){var y=u,p=g+h;o^=-1;for(var b=g;b>>8^y[255&(o^n[b])];return-1^o}},{}],46:[function(_,N,w){var u,o=_("../utils/common"),n=_("./trees"),h=_("./adler32"),g=_("./crc32"),y=_("./messages"),p=0,b=4,i=0,d=-2,r=-1,l=4,a=2,c=8,v=9,S=286,x=30,D=19,O=2*S+1,j=15,I=3,W=258,V=W+I+1,m=42,B=113,e=1,T=2,J=3,U=4;function $(t,R){return t.msg=y[R],R}function L(t){return(t<<1)-(4t.avail_out&&(A=t.avail_out),A!==0&&(o.arraySet(t.output,R.pending_buf,R.pending_out,A,t.next_out),t.next_out+=A,R.pending_out+=A,t.total_out+=A,t.avail_out-=A,R.pending-=A,R.pending===0&&(R.pending_out=0))}function C(t,R){n._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,R),t.block_start=t.strstart,E(t.strm)}function X(t,R){t.pending_buf[t.pending++]=R}function G(t,R){t.pending_buf[t.pending++]=R>>>8&255,t.pending_buf[t.pending++]=255&R}function H(t,R){var A,f,s=t.max_chain_length,k=t.strstart,F=t.prev_length,P=t.nice_match,z=t.strstart>t.w_size-V?t.strstart-(t.w_size-V):0,Z=t.window,K=t.w_mask,M=t.prev,Y=t.strstart+W,rt=Z[k+F-1],tt=Z[k+F];t.prev_length>=t.good_match&&(s>>=2),P>t.lookahead&&(P=t.lookahead);do if(Z[(A=R)+F]===tt&&Z[A+F-1]===rt&&Z[A]===Z[k]&&Z[++A]===Z[k+1]){k+=2,A++;do;while(Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&Z[++k]===Z[++A]&&kz&&--s!=0);return F<=t.lookahead?F:t.lookahead}function nt(t){var R,A,f,s,k,F,P,z,Z,K,M=t.w_size;do{if(s=t.window_size-t.lookahead-t.strstart,t.strstart>=M+(M-V)){for(o.arraySet(t.window,t.window,M,M,0),t.match_start-=M,t.strstart-=M,t.block_start-=M,R=A=t.hash_size;f=t.head[--R],t.head[R]=M<=f?f-M:0,--A;);for(R=A=M;f=t.prev[--R],t.prev[R]=M<=f?f-M:0,--A;);s+=M}if(t.strm.avail_in===0)break;if(F=t.strm,P=t.window,z=t.strstart+t.lookahead,Z=s,K=void 0,K=F.avail_in,Z=I)for(k=t.strstart-t.insert,t.ins_h=t.window[k],t.ins_h=(t.ins_h<=I&&(t.ins_h=(t.ins_h<=I)if(f=n._tr_tally(t,t.strstart-t.match_start,t.match_length-I),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=I){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=I&&(t.ins_h=(t.ins_h<=I&&t.match_length<=t.prev_length){for(s=t.strstart+t.lookahead-I,f=n._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-I),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=s&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(A=t.pending_buf_size-5);;){if(t.lookahead<=1){if(nt(t),t.lookahead===0&&R===p)return e;if(t.lookahead===0)break}t.strstart+=t.lookahead,t.lookahead=0;var f=t.block_start+A;if((t.strstart===0||t.strstart>=f)&&(t.lookahead=t.strstart-f,t.strstart=f,C(t,!1),t.strm.avail_out===0)||t.strstart-t.block_start>=t.w_size-V&&(C(t,!1),t.strm.avail_out===0))return e}return t.insert=0,R===b?(C(t,!0),t.strm.avail_out===0?J:U):(t.strstart>t.block_start&&(C(t,!1),t.strm.avail_out),e)}),new et(4,4,8,4,ot),new et(4,5,16,8,ot),new et(4,6,32,32,ot),new et(4,4,16,16,Q),new et(8,16,32,32,Q),new et(8,16,128,128,Q),new et(8,32,128,256,Q),new et(32,128,258,1024,Q),new et(32,258,258,4096,Q)],w.deflateInit=function(t,R){return ht(t,R,c,15,8,0)},w.deflateInit2=ht,w.deflateReset=lt,w.deflateResetKeep=it,w.deflateSetHeader=function(t,R){return t&&t.state?t.state.wrap!==2?d:(t.state.gzhead=R,i):d},w.deflate=function(t,R){var A,f,s,k;if(!t||!t.state||5>8&255),X(f,f.gzhead.time>>16&255),X(f,f.gzhead.time>>24&255),X(f,f.level===9?2:2<=f.strategy||f.level<2?4:0),X(f,255&f.gzhead.os),f.gzhead.extra&&f.gzhead.extra.length&&(X(f,255&f.gzhead.extra.length),X(f,f.gzhead.extra.length>>8&255)),f.gzhead.hcrc&&(t.adler=g(t.adler,f.pending_buf,f.pending,0)),f.gzindex=0,f.status=69):(X(f,0),X(f,0),X(f,0),X(f,0),X(f,0),X(f,f.level===9?2:2<=f.strategy||f.level<2?4:0),X(f,3),f.status=B);else{var F=c+(f.w_bits-8<<4)<<8;F|=(2<=f.strategy||f.level<2?0:f.level<6?1:f.level===6?2:3)<<6,f.strstart!==0&&(F|=32),F+=31-F%31,f.status=B,G(f,F),f.strstart!==0&&(G(f,t.adler>>>16),G(f,65535&t.adler)),t.adler=1}if(f.status===69)if(f.gzhead.extra){for(s=f.pending;f.gzindex<(65535&f.gzhead.extra.length)&&(f.pending!==f.pending_buf_size||(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending!==f.pending_buf_size));)X(f,255&f.gzhead.extra[f.gzindex]),f.gzindex++;f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),f.gzindex===f.gzhead.extra.length&&(f.gzindex=0,f.status=73)}else f.status=73;if(f.status===73)if(f.gzhead.name){s=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending===f.pending_buf_size)){k=1;break}k=f.gzindexs&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),k===0&&(f.gzindex=0,f.status=91)}else f.status=91;if(f.status===91)if(f.gzhead.comment){s=f.pending;do{if(f.pending===f.pending_buf_size&&(f.gzhead.hcrc&&f.pending>s&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),E(t),s=f.pending,f.pending===f.pending_buf_size)){k=1;break}k=f.gzindexs&&(t.adler=g(t.adler,f.pending_buf,f.pending-s,s)),k===0&&(f.status=103)}else f.status=103;if(f.status===103&&(f.gzhead.hcrc?(f.pending+2>f.pending_buf_size&&E(t),f.pending+2<=f.pending_buf_size&&(X(f,255&t.adler),X(f,t.adler>>8&255),t.adler=0,f.status=B)):f.status=B),f.pending!==0){if(E(t),t.avail_out===0)return f.last_flush=-1,i}else if(t.avail_in===0&&L(R)<=L(A)&&R!==b)return $(t,-5);if(f.status===666&&t.avail_in!==0)return $(t,-5);if(t.avail_in!==0||f.lookahead!==0||R!==p&&f.status!==666){var P=f.strategy===2?function(z,Z){for(var K;;){if(z.lookahead===0&&(nt(z),z.lookahead===0)){if(Z===p)return e;break}if(z.match_length=0,K=n._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++,K&&(C(z,!1),z.strm.avail_out===0))return e}return z.insert=0,Z===b?(C(z,!0),z.strm.avail_out===0?J:U):z.last_lit&&(C(z,!1),z.strm.avail_out===0)?e:T}(f,R):f.strategy===3?function(z,Z){for(var K,M,Y,rt,tt=z.window;;){if(z.lookahead<=W){if(nt(z),z.lookahead<=W&&Z===p)return e;if(z.lookahead===0)break}if(z.match_length=0,z.lookahead>=I&&0z.lookahead&&(z.match_length=z.lookahead)}if(z.match_length>=I?(K=n._tr_tally(z,1,z.match_length-I),z.lookahead-=z.match_length,z.strstart+=z.match_length,z.match_length=0):(K=n._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++),K&&(C(z,!1),z.strm.avail_out===0))return e}return z.insert=0,Z===b?(C(z,!0),z.strm.avail_out===0?J:U):z.last_lit&&(C(z,!1),z.strm.avail_out===0)?e:T}(f,R):u[f.level].func(f,R);if(P!==J&&P!==U||(f.status=666),P===e||P===J)return t.avail_out===0&&(f.last_flush=-1),i;if(P===T&&(R===1?n._tr_align(f):R!==5&&(n._tr_stored_block(f,0,0,!1),R===3&&(q(f.head),f.lookahead===0&&(f.strstart=0,f.block_start=0,f.insert=0))),E(t),t.avail_out===0))return f.last_flush=-1,i}return R!==b?i:f.wrap<=0?1:(f.wrap===2?(X(f,255&t.adler),X(f,t.adler>>8&255),X(f,t.adler>>16&255),X(f,t.adler>>24&255),X(f,255&t.total_in),X(f,t.total_in>>8&255),X(f,t.total_in>>16&255),X(f,t.total_in>>24&255)):(G(f,t.adler>>>16),G(f,65535&t.adler)),E(t),0=A.w_size&&(k===0&&(q(A.head),A.strstart=0,A.block_start=0,A.insert=0),Z=new o.Buf8(A.w_size),o.arraySet(Z,R,K-A.w_size,A.w_size,0),R=Z,K=A.w_size),F=t.avail_in,P=t.next_in,z=t.input,t.avail_in=K,t.next_in=0,t.input=R,nt(A);A.lookahead>=I;){for(f=A.strstart,s=A.lookahead-(I-1);A.ins_h=(A.ins_h<>>=I=j>>>24,v-=I,(I=j>>>16&255)===0)T[y++]=65535&j;else{if(!(16&I)){if(!(64&I)){j=S[(65535&j)+(c&(1<>>=I,v-=I),v<15&&(c+=e[h++]<>>=I=j>>>24,v-=I,!(16&(I=j>>>16&255))){if(!(64&I)){j=x[(65535&j)+(c&(1<>>=I,v-=I,(I=y-p)>3,c&=(1<<(v-=W<<3))-1,u.next_in=h,u.next_out=y,u.avail_in=h>>24&255)+(m>>>8&65280)+((65280&m)<<8)+((255&m)<<24)}function c(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new u.Buf16(320),this.work=new u.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function v(m){var B;return m&&m.state?(B=m.state,m.total_in=m.total_out=B.total=0,m.msg="",B.wrap&&(m.adler=1&B.wrap),B.mode=d,B.last=0,B.havedict=0,B.dmax=32768,B.head=null,B.hold=0,B.bits=0,B.lencode=B.lendyn=new u.Buf32(r),B.distcode=B.distdyn=new u.Buf32(l),B.sane=1,B.back=-1,b):i}function S(m){var B;return m&&m.state?((B=m.state).wsize=0,B.whave=0,B.wnext=0,v(m)):i}function x(m,B){var e,T;return m&&m.state?(T=m.state,B<0?(e=0,B=-B):(e=1+(B>>4),B<48&&(B&=15)),B&&(B<8||15=U.wsize?(u.arraySet(U.window,B,e-U.wsize,U.wsize,0),U.wnext=0,U.whave=U.wsize):(T<(J=U.wsize-U.wnext)&&(J=T),u.arraySet(U.window,B,e-T,J,U.wnext),(T-=J)?(u.arraySet(U.window,B,e-T,T,0),U.wnext=T,U.whave=U.wsize):(U.wnext+=J,U.wnext===U.wsize&&(U.wnext=0),U.whave>>8&255,e.check=n(e.check,k,2,0),C=E=0,e.mode=2;break}if(e.flags=0,e.head&&(e.head.done=!1),!(1&e.wrap)||(((255&E)<<8)+(E>>8))%31){m.msg="incorrect header check",e.mode=30;break}if((15&E)!=8){m.msg="unknown compression method",e.mode=30;break}if(C-=4,t=8+(15&(E>>>=4)),e.wbits===0)e.wbits=t;else if(t>e.wbits){m.msg="invalid window size",e.mode=30;break}e.dmax=1<>8&1),512&e.flags&&(k[0]=255&E,k[1]=E>>>8&255,e.check=n(e.check,k,2,0)),C=E=0,e.mode=3;case 3:for(;C<32;){if(L===0)break t;L--,E+=T[U++]<>>8&255,k[2]=E>>>16&255,k[3]=E>>>24&255,e.check=n(e.check,k,4,0)),C=E=0,e.mode=4;case 4:for(;C<16;){if(L===0)break t;L--,E+=T[U++]<>8),512&e.flags&&(k[0]=255&E,k[1]=E>>>8&255,e.check=n(e.check,k,2,0)),C=E=0,e.mode=5;case 5:if(1024&e.flags){for(;C<16;){if(L===0)break t;L--,E+=T[U++]<>>8&255,e.check=n(e.check,k,2,0)),C=E=0}else e.head&&(e.head.extra=null);e.mode=6;case 6:if(1024&e.flags&&(L<(H=e.length)&&(H=L),H&&(e.head&&(t=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Array(e.head.extra_len)),u.arraySet(e.head.extra,T,U,H,t)),512&e.flags&&(e.check=n(e.check,T,H,U)),L-=H,U+=H,e.length-=H),e.length))break t;e.length=0,e.mode=7;case 7:if(2048&e.flags){if(L===0)break t;for(H=0;t=T[U+H++],e.head&&t&&e.length<65536&&(e.head.name+=String.fromCharCode(t)),t&&H>9&1,e.head.done=!0),m.adler=e.check=0,e.mode=12;break;case 10:for(;C<32;){if(L===0)break t;L--,E+=T[U++]<>>=7&C,C-=7&C,e.mode=27;break}for(;C<3;){if(L===0)break t;L--,E+=T[U++]<>>=1)){case 0:e.mode=14;break;case 1:if(W(e),e.mode=20,B!==6)break;E>>>=2,C-=2;break t;case 2:e.mode=17;break;case 3:m.msg="invalid block type",e.mode=30}E>>>=2,C-=2;break;case 14:for(E>>>=7&C,C-=7&C;C<32;){if(L===0)break t;L--,E+=T[U++]<>>16^65535)){m.msg="invalid stored block lengths",e.mode=30;break}if(e.length=65535&E,C=E=0,e.mode=15,B===6)break t;case 15:e.mode=16;case 16:if(H=e.length){if(L>>=5,C-=5,e.ndist=1+(31&E),E>>>=5,C-=5,e.ncode=4+(15&E),E>>>=4,C-=4,286>>=3,C-=3}for(;e.have<19;)e.lens[F[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,A={bits:e.lenbits},R=g(0,e.lens,0,19,e.lencode,0,e.work,A),e.lenbits=A.bits,R){m.msg="invalid code lengths set",e.mode=30;break}e.have=0,e.mode=19;case 19:for(;e.have>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=Q,C-=Q,e.lens[e.have++]=st;else{if(st===16){for(f=Q+2;C>>=Q,C-=Q,e.have===0){m.msg="invalid bit length repeat",e.mode=30;break}t=e.lens[e.have-1],H=3+(3&E),E>>>=2,C-=2}else if(st===17){for(f=Q+3;C>>=Q)),E>>>=3,C-=3}else{for(f=Q+7;C>>=Q)),E>>>=7,C-=7}if(e.have+H>e.nlen+e.ndist){m.msg="invalid bit length repeat",e.mode=30;break}for(;H--;)e.lens[e.have++]=t}}if(e.mode===30)break;if(e.lens[256]===0){m.msg="invalid code -- missing end-of-block",e.mode=30;break}if(e.lenbits=9,A={bits:e.lenbits},R=g(y,e.lens,0,e.nlen,e.lencode,0,e.work,A),e.lenbits=A.bits,R){m.msg="invalid literal/lengths set",e.mode=30;break}if(e.distbits=6,e.distcode=e.distdyn,A={bits:e.distbits},R=g(p,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,A),e.distbits=A.bits,R){m.msg="invalid distances set",e.mode=30;break}if(e.mode=20,B===6)break t;case 20:e.mode=21;case 21:if(6<=L&&258<=q){m.next_out=$,m.avail_out=q,m.next_in=U,m.avail_in=L,e.hold=E,e.bits=C,h(m,G),$=m.next_out,J=m.output,q=m.avail_out,U=m.next_in,T=m.input,L=m.avail_in,E=e.hold,C=e.bits,e.mode===12&&(e.back=-1);break}for(e.back=0;et=(s=e.lencode[E&(1<>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>it)])>>>16&255,st=65535&s,!(it+(Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=it,C-=it,e.back+=it}if(E>>>=Q,C-=Q,e.back+=Q,e.length=st,et===0){e.mode=26;break}if(32&et){e.back=-1,e.mode=12;break}if(64&et){m.msg="invalid literal/length code",e.mode=30;break}e.extra=15&et,e.mode=22;case 22:if(e.extra){for(f=e.extra;C>>=e.extra,C-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=23;case 23:for(;et=(s=e.distcode[E&(1<>>16&255,st=65535&s,!((Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>it)])>>>16&255,st=65535&s,!(it+(Q=s>>>24)<=C);){if(L===0)break t;L--,E+=T[U++]<>>=it,C-=it,e.back+=it}if(E>>>=Q,C-=Q,e.back+=Q,64&et){m.msg="invalid distance code",e.mode=30;break}e.offset=st,e.extra=15&et,e.mode=24;case 24:if(e.extra){for(f=e.extra;C>>=e.extra,C-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){m.msg="invalid distance too far back",e.mode=30;break}e.mode=25;case 25:if(q===0)break t;if(H=G-q,e.offset>H){if((H=e.offset-H)>e.whave&&e.sane){m.msg="invalid distance too far back",e.mode=30;break}nt=H>e.wnext?(H-=e.wnext,e.wsize-H):e.wnext-H,H>e.length&&(H=e.length),ot=e.window}else ot=J,nt=$-e.offset,H=e.length;for(qO?(I=nt[ot+l[B]],C[X+l[B]]):(I=96,0),c=1<>$)+(v-=c)]=j<<24|I<<16|W|0,v!==0;);for(c=1<>=1;if(c!==0?(E&=c-1,E+=c):E=0,B++,--G[m]==0){if(m===T)break;m=p[b+l[B]]}if(J>>7)]}function X(s,k){s.pending_buf[s.pending++]=255&k,s.pending_buf[s.pending++]=k>>>8&255}function G(s,k,F){s.bi_valid>a-F?(s.bi_buf|=k<>a-s.bi_valid,s.bi_valid+=F-a):(s.bi_buf|=k<>>=1,F<<=1,0<--k;);return F>>>1}function ot(s,k,F){var P,z,Z=new Array(l+1),K=0;for(P=1;P<=l;P++)Z[P]=K=K+F[P-1]<<1;for(z=0;z<=k;z++){var M=s[2*z+1];M!==0&&(s[2*z]=nt(Z[M]++,M))}}function Q(s){var k;for(k=0;k>1;1<=F;F--)it(s,Z,F);for(z=Y;F=s.heap[1],s.heap[1]=s.heap[s.heap_len--],it(s,Z,1),P=s.heap[1],s.heap[--s.heap_max]=F,s.heap[--s.heap_max]=P,Z[2*z]=Z[2*F]+Z[2*P],s.depth[z]=(s.depth[F]>=s.depth[P]?s.depth[F]:s.depth[P])+1,Z[2*F+1]=Z[2*P+1]=z,s.heap[1]=z++,it(s,Z,1),2<=s.heap_len;);s.heap[--s.heap_max]=s.heap[1],function(tt,ut){var pt,ft,mt,at,gt,kt,dt=ut.dyn_tree,xt=ut.max_code,Et=ut.stat_desc.static_tree,At=ut.stat_desc.has_stree,It=ut.stat_desc.extra_bits,St=ut.stat_desc.extra_base,_t=ut.stat_desc.max_length,bt=0;for(at=0;at<=l;at++)tt.bl_count[at]=0;for(dt[2*tt.heap[tt.heap_max]+1]=0,pt=tt.heap_max+1;pt>=7;z>>=1)if(1&rt&&M.dyn_ltree[2*Y]!==0)return o;if(M.dyn_ltree[18]!==0||M.dyn_ltree[20]!==0||M.dyn_ltree[26]!==0)return n;for(Y=32;Y>>3,(Z=s.static_len+3+7>>>3)<=z&&(z=Z)):z=Z=F+5,F+4<=z&&k!==-1?f(s,k,F,P):s.strategy===4||Z===z?(G(s,2+(P?1:0),3),lt(s,V,m)):(G(s,4+(P?1:0),3),function(M,Y,rt,tt){var ut;for(G(M,Y-257,5),G(M,rt-1,5),G(M,tt-4,4),ut=0;ut>>8&255,s.pending_buf[s.d_buf+2*s.last_lit+1]=255&k,s.pending_buf[s.l_buf+s.last_lit]=255&F,s.last_lit++,k===0?s.dyn_ltree[2*F]++:(s.matches++,k--,s.dyn_ltree[2*(e[F]+p+1)]++,s.dyn_dtree[2*C(k)]++),s.last_lit===s.lit_bufsize-1},w._tr_align=function(s){G(s,2,3),H(s,v,V),function(k){k.bi_valid===16?(X(k,k.bi_buf),k.bi_buf=0,k.bi_valid=0):8<=k.bi_valid&&(k.pending_buf[k.pending++]=255&k.bi_buf,k.bi_buf>>=8,k.bi_valid-=8)}(s)}},{"../utils/common":41}],53:[function(_,N,w){N.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(_,N,w){(function(u){(function(o,n){if(!o.setImmediate){var h,g,y,p,b=1,i={},d=!1,r=o.document,l=Object.getPrototypeOf&&Object.getPrototypeOf(o);l=l&&l.setTimeout?l:o,h={}.toString.call(o.process)==="[object process]"?function(S){process.nextTick(function(){c(S)})}:function(){if(o.postMessage&&!o.importScripts){var S=!0,x=o.onmessage;return o.onmessage=function(){S=!1},o.postMessage("","*"),o.onmessage=x,S}}()?(p="setImmediate$"+Math.random()+"$",o.addEventListener?o.addEventListener("message",v,!1):o.attachEvent("onmessage",v),function(S){o.postMessage(p+S,"*")}):o.MessageChannel?((y=new MessageChannel).port1.onmessage=function(S){c(S.data)},function(S){y.port2.postMessage(S)}):r&&"onreadystatechange"in r.createElement("script")?(g=r.documentElement,function(S){var x=r.createElement("script");x.onreadystatechange=function(){c(S),x.onreadystatechange=null,g.removeChild(x),x=null},g.appendChild(x)}):function(S){setTimeout(c,0,S)},l.setImmediate=function(S){typeof S!="function"&&(S=new Function(""+S));for(var x=new Array(arguments.length-1),D=0;D"u"?u===void 0?this:u:self)}).call(this,typeof vt<"u"?vt:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(zt);var Ct=zt.exports;const Rt=Ot(Ct),Dt=Bt({__proto__:null,default:Rt},[Ct]);export{Dt as j}; diff --git a/internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js.gz b/internal/cli/playground/webassets/assets/jszip.min-CQVN0a9q.js.gz new file mode 100644 index 0000000000000000000000000000000000000000..b6c2fa359a54ae3cd6433edf83baaa62cfa49659 GIT binary patch literal 30062 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 V)0@A!UDf~V{{T0qCzptP0RY27_Ok#0 literal 0 HcmV?d00001 diff --git a/internal/cli/playground/webassets/index.html b/internal/cli/playground/webassets/index.html index ba0bee0..50596bc 100644 --- a/internal/cli/playground/webassets/index.html +++ b/internal/cli/playground/webassets/index.html @@ -1,2 +1,13 @@ -Agora Convoai Playground -

!v0={TUKU6 zlVa4RoyC4Kfx2mnT`cX1fVJiYQRFPJb)3lBgHa1%{RwcS)1fgKZ89!m$!$kmHnIJd z#EUK3vgB|_gP?}pslaBk5^e$u*wYAoxyZtf3q^jsnqeG1;X2$*8=CuivfXqsZc47$ zW!LYyExk?q%TCrzSA(qpV%0_#>HrgO!nvh|+Hw{kj1|p&Lx@HS+H{Ctk_c5PXY<;g)>_}!dVuzhz z)@gUUTF;FZll@$37a$5$b7b3Ow7jA4(sqPTjm1`=1KQ4Ewps5q+jUqNH61>-a&gDA z+MKAHG!r6%Yf7QAq2`*6(aVnC!-b}VH}z(LdfPBxr6f7@L8#;yBORtyid#Hba&kWgZVI_J(g1b9p$7;C#Gm$}KkRC3FbF3^yIkM~#A5bom8{ z3>%8O0Y+eh@^)YW>609`i91sOo%Ak_iGtxchHuVVNF;;|=!*y84?wqG+{-wJ46vmT z589E`Y7P6;Kwh{xADaNF?=`B8#)fINFf-#?32?oeU56O9THQ>D^EN9YjVda>K|B7J5wK@>*MwcgO_ck5CbOMXQ57HMSDjfjrh1C^mB zdeLh5%}B{+Ac*XCBgUs^og~k__KJ{(WKZSB%|$Zg3wAS<8fGuBtxlAVxqu@Wvoip| zG2@onFkWm&gH;cY(CsErJ!3qM%QJzpIPE*q1Z&Y&YqIZjCM-fv{Waf&a-^_!i`+Bg z?Ec(XpNkN0`EG25!*Tvg_4H=4`sHlb}}bA@z=PTCEeIlm&d z4jyd!iyfOrk$~VafcFigvy_lw!O3~Zv!k6?xI}@_aHHE5>_yk?iP&J(H3mkJL*8z{ zQlis!VxrhuQJt8srH01(J4oNm7Y4f+tCRj37Xx``67p<-c*Z~rN8L6EB=%M~9eCzw z>dmA87C3be?TBEjK=Bgdai!5^1$-Ul?Jbi6<0Bx&gl~9^EDS-^P#^SFz_`dxR#G}B z1`yxWw!@ii?t3`BhoSa9;gw|^7fl4KXIP++W7iV{qfbYBqpP6vUcdaB+d%4hhHRq9 zQ0a>)!7WnMfJ84{Qy#ZKu-)2j38NN<(te+ku_T9qSM=p#J`$C9*c-Nbe#q9T-BN4G zMU1yMi`@64x<>Zqh*bWR_Bz2S4kFg80lOnqpsAgyX`9nIx`OMgFq8&?<+S;Jd)_ma zdk47dvDyq(pl?l7Z8^Q^KJU$!6e?`C3wYThaDpXVppaI`Izwc=TtxG@X~c0IABL*I zj=M`lBG^Vc)UAv#oUEHO?jWo8J5Hgg%B)VUF~{XOB<{k&%(S=j3`xmw;P1q3y(grc zwJ0i_w!Jo>;#@!J&1%CTHg(Ki!G3bGzZ=VS}s;y#cn7LEjBuk*b?)8 z2GPACF0q)v8wLdR`wAz?A;!;jcx$|yV2WE^Yo@pUeHT6%QA;*Rs;;xS zeSWSrH(Lgx~#_CJn+LfdNBMjlS6H)8+Ugr&|{=)A8fj z(gis-qes7{mh<9eSAW!M4-XIQbIrJa`gci56yMCAE(G+=`(8_*u6XfH|6b#s?);}G zFL9i&sc&gF$fFNx-hci2Mq@$omr#$B(7Umte42Q%&W#o8ZuD6NY|z6SJBeb;C{DK&oW?^nuL)behz?TD0>0~%L-7t$78`~ zJq1HVphHi8d3bD88XVAvpXu7mGanFO#l>d=x%u|#N0e^9zuVX0S!s9gzExuQ-%tOm zTpXYO*Z2GHkJVNECNe|I+kSrO>0IC^amAXduabG6EiVOp)gD2G&1X%I;xJK5Cc+qU zqsig+@%Odr$aOc0A8LT)iz+~0(xaFjPgjpWkGA;nR@rRq1?p6zA#os^^XAM}P>^Pl5FVjbyb{jhn-L)$UMo+2~-I zFQ#CAMzNb92aFF2@TaP!YoAN2XMsVh3J6$U;LpV~U{Q}fEZ(r^_W0!XFx2_>8LSl} z@zhccZ(7w7xVu=5UhUL@erV{|!itaqJhkx7WW=3hUz*;<--}FiQ zIs@kVUpU}nHO4J4x9^*SwDz;g4t6@(#+9UT|ny9w#0WFFuF9fd3 z2G>4Q1$VK2d~{d(vin*R>6h)E?q1xYcis9>vugUzNcUeXi$i8qRV1Io3V%!*CRyQ2K|EC}!UHFYJQqW=Mjr;fk=luH|b(13^Ybvayk zEIeI4KVH;5xQ5%8dbe|MRj#Zn9)1i|E|-p}TN^Vj;fneBTOC1y{5t@0=dt{!H=}7! zhw#nHtKX>*2gCfWm?(VN2`u+3s7e|k8LcKzVUk)Sd;0~;TQ4&`wF;;-wfPx%| z3-wQ*RM}H?=ZqSe5D54#)bDGcpHSZ=z~j7n$lSl!C>!ug*B|^tw|6$MBc(|wBZ3lZ zMTruJx(+S@w6Y&$P3x8}{SYt!DsB&xy{$>W`c))>&R$}JyON6EkO)S%A41&)PV2*d z!J7ES03jXNv3jEiBhb9!#@$g2Kw%$em->I9_h1&^{F?Ut{yM$}kjkTZJru zF+RW|K=!}oNhtvBx8YFOZZ{^1-e+@;rID|RZ= z&HFdNRYgFZqnkpHD@dt^R#0|c+Huf#7~jY@>ZNOp{hLVFUmBWvs9zfU|1z9BhFgCe zRpK|n=f-7Jb^DGw>mLSe@1vyGf#ta;y);pO3b+nYQ&CF&Z&#Lyzapayt|HyF6yMP< z+WQ|7@EV|ffX+^Nke42{YK47&t&T5B^|402)Oo9vm&^GN)e;Czf3Epwk9c8gwdbc- z=<4oo%YwwfATnhQ7|SwT z0eW>ZOO+eaF7SZ%4j#}x!UN?*|1Lk#HuW_0y^f!GS7J2*wHYu>?-<2PmVYd?%UTDq zjSfrr52a*;z6*?pcW`?zYV-!@T|m*9NF`V+uvNd+47C;#i$JML@x zIQttx|D8cOCT>dUMR5TP-p}LeKHAeq?(4yg>0X)QtS+O{;N3pIG9&+Gq*YoeGZuGR1)2yiIRhPW<2<^wQp4&*j}opPlYGv7q{H;7126 z*_X?7Y8c&lz^?;TtE*ea4?Bl^gb-G#sWN-@1hDPX&*%G}M@>F;cE{eA7~ebOYJdGI z3u-=C06jp$zXgAxzkdD2mj6F!uX?*b_Mu-Vcy-Y9`T2#)%jkKg`hi~3_yi)6pC$hH z!PU!@v^%3Vdr5HoCJYCQF}>oG0o@*--5$|1_vAk~y0?kVFJP1s>C|T5kI(X_6|fGa z8YTLdlZ^+oJ=!n&D3#&~K?t*|fw<)EF43Rt>#5phF8jJD(Z6xu?|=PDL7@6EdJpy5 zSg}FO@KC|)sEiN(#=3w|<25KZFKo92R?V0EHAhY@F0_WZTh(k3)|E)AcIbVd^KvG4=9(_Se(Xp_^0rtV)Uimb}i2{OAAv=U+cp&;R#7 z@1{e_hX#1~pZn)SN8j=q^ZofCaP~6)VF1l=<=}2sO5!&vb{5HbnWQJ>9v8lt_CW3r%8bBz9HXBZhOa-0#-bFUf0L9;$N~(d-5vQvE@9< zgh;h&Sl~6!G(KL?`}__Mjr()@MFZWKr5FPN7D<{i5~ zun_!Nfe`xVOUVCcQqV6b2J)DdLYQ5Oz`qc|Mdg}br4T{CoLu-xe8{C>PaDTqWJffu z=&wpgK7D#AdC+_{ae)Q>`kJ=OJ`TXHO69R003sF2t)4th%VyZO+ncw~Zf+mq&~oqY zA7XzNm%9LW_uqg0dQIPpH8?KM5{Q-i8;A7P&mi;z;4IGuAKd9B;xuJ%Q^sjW+Em#A zKBvU(2LXL!YruSeFJaZ(Q;*&1+OgA*dMm^7C+}2K>ifLH{qLa*E!0ubI$9PP&QucTJK>;km7>Z0-$0EmS*v8mrUmZ6uf<;FLvd-X)!!+-8;XD&UZ z&!rX8z!Et5%MUY>%+ZmqN;`74kM@%lF-I-?7k06` zt(_Y@`6c808vFf_2CNwu47(DJcZP$KkjsAPv36k+uC{a=zx`Pfo6dy z{?^3GKREbfxtsE@7bG$Gx7x%i|Fys$PcB>d<$VDDk8}r2x4a1Cvco7XTPDu!_nH9A zm{leXpQ@qHega^}mv!ww9Xxiq4R-gRbCU;P(4T=iYaa&%>{WPp+2N(AOn?XAnn3M8k3g}F419arORbWst>?c@o6)QTR^u!G( ziOgBysg<@J!t}C_Ln{DB-$Hn&lve4%F9AdeyH5|!aPyFNetHM{>p&R+^S?j&cV(b* zZd&G6ejYXVvDE74TA6Sg$zbW0I|6c09(Q;Gkn|-dQ(}cn44eS0uIsg~{+n%`A0IqC zjB$T<6TijcZ0%+A6O}&zAy>2MUQ-6(`Rq!-CwP@!^RU$AawGRbv(q=bO_!<+W^C&B zuh^1Y4BkDk1hR{m=fm=OA>nh$+S{6a$qMEkgf9ORR+LNp$AKZ8-{}eSE{i&Vd5e;d zOv%TOFy@67zgy@JM-6$1^!N^N>%_GKA%~5m3d&qm)qr6HP6!Nl|B)H7Yd^oOzCYgH zR)&OmD+TFF3e1bO2=y`)JFZ}}oXwSBz;cZMJ_UuG% z6!?8RMd3gtn_(yy4*^1?L=THuJ+|7mDsbUp(qvKPvs^>zUME2K#=FFMpm49&jC{dOqg0 zlUjp-90;b&XO-@=V})nt{@nqC6Rf=iH|O@3ruU;b`}JTi8~DF|>A!y6I&pY=1)Wa9 z1k?N%`nwUT z&PMEP)@*UzA6#?Qo&MmPqwZ6ARMWMh>gW~-fJ&Wik9o1X6o1TxPE!Omv{yAAl0YlB z5o*Gi1vRHXI%A3dF`kPvw)0-~Yx|)ELJrw! z`C1_ydaHbJRC`VRA1KdHr>q!NK69qWwZpAs#pZFms}VY4mv8lj6K7K|^)UmoOUR9;Q_5SG~59Q&re zz#gTK6}4tXo$?t7Ti!k{(IIe9@2xH7;hoajA#ZTV@xL?Lht9d0b?JJ+)r|#~UU@VH z1Tws@0c3Howtt~VXB@^y;h&5E5U=m*cLjjlg?>8F9F@E}y8uT2^y#lKE)T7on*m9E zFV80TD_LAF!81MDr%#I)6MyLIg$f{uSPnOO{N-JG9MFjqzt9r`dVc)^aq%e_{;z}! zq$}OmnlaGUALZ^JP}xI9^fUShj7}?ldgCao*?^9>dQol{9;{Ls8nUN;*=p>+-WmMU zCk|8u4}wF$X4)jy!-f-}FF2YEsRw zF~65yHJ#PPbp9K1Uz)sT*L_9D-_URbpkRR=Hp}iV68b0q_g3AnpIeh_oLq+~QJtr9YM6@7tV^0=jbB@YngeP#5ox8?gBw~q%6d^~2k%Vf?$hR-LU z(mt-W_xE)lu4@7F`l_Tn6Vh^$@Nc`hsC4M%qTv1-O#N+NZ|edd{BHSSTmLnHx{6WX zNAcBWe{0(0+x-tveXDX1x3%}n{|uDg`2QUAX}`%Iu@VbsNAEz@Dq(xv zlD~qR{?k7Q4}Kp*{T(`G-vy_}-vQCt({ZZLPdY$g@1z!L+=tjb|L_U(+mvl>_3q=t z9_1e?#91IV(9Qguxd41(FK^DfV-KpM%i-NchFrQkZ=qa;R;LD+=_vqVTfPr^@Gd$4 zKJJHJ9l`l4e;*ik%J}C5j63>kIREKW36_l`Mg}3$zZVyny-Xzj`t?FjnTjlXD+0Y% z?o=GFOBkz`#|i<8J?w9kHAP@B{N%{1{NU3F#M##lv^uuH>s(vssdfHwz%gG&< z=6RAJvf$3FsLl!j7Mu?e+yj&ME_^-EUpo_bI!g~&0;Kc>h!_NrzkZpO4mUlma|9@t zdnWJYerhQQY-(lhqS|6PAmS>oIeVe`{?Ey(m6UK7`gPRQBS%2E`|||ns;(Y?=;Z;Q zbA9AOIYBr9NI2}vl_>G8s@DDj@y@xM^_b=r( z-6{24?tmxy{X0|np_i%Ka$UUtu*{2}Q{Eq}llM4ur2jy*saLD!l=Cdx9J{JScIvEK zLbCVy_PV>;AFqga+3;T5OHO?7TtE0gAFL0pb~pfXUyA-66j@I4LafO1RTlaxQ&1ie z{3pqesQ={g-nf zcD>bn=>~tx%JOKdf5EQvxg#JQ|KW*AuH$-{0pGu+tR1=kHox{6YCCDk?|I&2e zEuHd2(ih-Q*|!3y4%eQoT21@+aaq&&vKi9`*%Zx&b}_*ur;;pYKlxV5@dsRZV|>I&}9Y?5>gz zh80F}*U`(8>g>efP|tNGt2zVI)NHwYd*xXB?p8K{Sy1#%si5WJylUgfZ~E2$uwO+l z4_8Y>hgcGU@)mz})Q-!$Vmw17j`?=JVxtHuAhq768{ z+j|h3#InMc>35)R$DG5%@dE?LwAf4W;p+xZx5!Hwh+wPlDLma8R$hK@#rsWyt>#tw z-JFZ#qvhj&jK*_bd^%XA>JZ37nGiXcdv8=S>9%&&V9x)x$=q`fjk=32Fa8({B0J`1 zPam%9=i`RltUVUG#}oo{?)kR%a{Y(RtDUJMu`h+k zxA@D0yuW$F_@GqzTX)8m;n15>mV}HMX{gwVE0!pufo3EGX^s!Q#y9*$C zIA?ZDVw?Yb%<2VJT@z2i*I!S^Q@wZBWc>Q|yP@wZ82ftcmwaaRp^W2#2Zrj(=-t0S zHl~7Xpfz)H|5_OUM#ue%e#I24n9 z`qX`S)jIv%tJa5i*nXF${eakytDfksb+6yhelAV12C(W$3A&u|pA9p6a$r z5J~qhFRi~X#40+x&=5fT$T|TZA>8dTTmGk$WA=ei^H`VhtB!N1vnYpl-BHH z#W#TpB^d9p3dRzuAk2@G4lsPd~rEi>2bXKav!2% zj`q^ohgP6GuYOds7vTFw)E9@%-nTjBtIkh`azvfbICw;BVYA?9{$_+n*SPoi@-%mva_v1ztYJvmIDy)!>m7+essC+2$-1K&+^k#L0mot zIPfK5paH0|sRRU870U~A5v(iioM$yHP1C*GtHa;b=IO6r+QZ@DuV3ufi%}VtE0dD5 zAuBv;XHfs|C*++<&33yhh>!2Lu0Br%g!{#R@btW*{OA%AU@?+-R3?L>%jRFZD{(2^6P9≧%voh=fI`fcTOzkYm(|H=? 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

^c@w^itr{TDKuD(CihtV&$k2)MCxi<2)>ef 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